12月9日,以“新存儲,新常態(tài),新應用”為主題的中國存儲峰會于北京悠唐皇冠假日酒店召開。下午超融合技術論壇上,中國計算機學會存儲專委會主任委員,華中科技大學計算機學院院長馮丹女士在發(fā)表的《面向服務的異構融合存儲系統(tǒng)與技術》主題演講中指出,異構融合是將新的存儲技術和傳統(tǒng)硬盤融合,構成一個智能存儲節(jié)點,再通過多個智能存儲節(jié)點互聯(lián)來構成系統(tǒng)。區(qū)域之間相互協(xié)作,滿足不同應用的需求。
馮丹表示:“量變導致質變,存儲模式需要變更,不能用一堆硬盤或者SSD摞起來。而存儲逐漸從服務于單個機器,單機外設慢慢變?yōu)榉毡姸嗟膽?。無論是超級計算,還是網絡應用都在呈現(xiàn)服務化趨勢?!?/p>
因此,在大會上,她主要從存儲器件融合,系統(tǒng)融合還有面向服務的保障技術三部分詳細介紹了面向服務的異構融合存儲系統(tǒng)與技術。主要包括三點:
1.形成異構融合非易失性存儲控制器及設備,針對PCM、Flash等器件特性進行優(yōu)化,提高性能及壽命;
2.形成面向服務的異構融合對象存儲體系;
3.形成服務等級目標保障技術,精確保障用戶I/O帶寬、訪問延遲等。
以下為馮丹女士的演講實錄:
今天我給大家?guī)淼难葜v報告是面向服務的異構融合存儲系統(tǒng)與技術。
主要是從這存儲器件融合以及系統(tǒng)融合還有面向服務的保障技術三部分來介紹。
大數(shù)據時代,我們面臨數(shù)據存儲能力不足的巨大挑戰(zhàn)
應該說當前大數(shù)據時代使得數(shù)據爆炸式的增長的趨勢,導致數(shù)據的摩爾定律每年60%的增長率。也就是導致我們的數(shù)據量越來越大。據IDC統(tǒng)計,2013年,全球數(shù)據量是4.4ZB,2020年將達到40ZB。這么多數(shù)據怎么樣存下來,首先就是一個挑戰(zhàn)。量變導致質變,存儲模式也需要變更,不能用一堆的硬盤或者SSD摞起來。
它的發(fā)展趨勢,存儲慢慢從服務于單個機器,單機外設慢慢變成服務眾多的應用。無論是超級計算,還是網絡應用都是呈現(xiàn)服務化的趨勢,比如說中國的神威太湖之光還有美國Cray超級計算機系統(tǒng)Titan。包括氣象分析、天氣預報、生物醫(yī)藥、新材料、工程設計等等眾多的應用,每種應用對存儲的需求是不一樣的。如何滿足不同應用這種需求,就是一個問題。
除了高性能計算之外還有我們接觸最多的,比如網絡的存儲服務,國外的亞馬遜,谷歌,國內的阿里、騰訊云都面對這樣的問題,每個月數(shù)據的增量,無論是微信朋友圈,還是QQ空間,2到3PB,怎么樣靠低能耗方式存起來,都是問題。我可能最近一段時間朋友圈里的照片大家都來點贊,過一段時間可能你還保存著,多少年之后還希望能看一看。怎樣在存儲這一級實現(xiàn)我隨時能夠訪問,系統(tǒng)這一級又能夠以最低成本,最低功耗,最省容量的方式存儲,這些都是難題。也就是說各種各樣的應用對于存儲的需求多種多樣,需要按需服務。
具體來說就是存儲資源種類非常多,如何構建海量存儲系統(tǒng)?用戶數(shù)據的種類也是多種多樣,結構化、半結構化、非結構化數(shù)據,如何以最合適的方式放在存儲上面?還有我上面的應用也是種類非常多,無論高性能計算類型還是網絡應用對這個需求都不一樣。高性能計算大部分是我要高的聚合帶寬,對網絡應用來說需要的是IOPS要高等等這些需求導致了我們怎么樣來構建一個能夠滿足不同需求的存儲系統(tǒng)的方式成為一個難題。
我們總結兩個問題,一個就是我怎么樣來構建一個存儲系統(tǒng)。第二怎么樣來服務于不同的應用。它的表現(xiàn)就是高性能,高可靠、高可用,低能耗等等能夠最終實現(xiàn)按需服務。
異構融合的概念
我們應該說是在從2010年開始就提出異構融合的概念,開始做相應的研究。今天給大家匯報一下我們做的一些工作??傮w思路就是將新的存儲的技術和傳統(tǒng)的硬盤來融合一起,構成一個智能存儲節(jié)點。
通過多個智能存儲節(jié)點互聯(lián)來構成系統(tǒng)。區(qū)域之間能協(xié)作,來滿足不同應用的需求,也就是我們所說的分布式系統(tǒng)。
多個數(shù)據之間可以構成一個多云的系統(tǒng),利用每個云的不同特點,亞馬遜的云肯定要收費,但服務可靠。360的云已經關閉了,它是免費的,但過一段時間可能不服務了。我怎么樣來構建一個多云的系統(tǒng)來滿足應用的不同需求,使得合適的數(shù)據放置在合適的地點做一些相應的工作。也就是說我們在系統(tǒng)一級都要做相應的融合技術,滿足這種按需存儲的需求。
存儲器件的融合
在這里我首先跟大家分享的就是在器件一級的融合,我們看一下左邊是傳統(tǒng)體系結構,現(xiàn)在如何把新的器件技術加入進來?我們認為它可以融合在一起完成,我們就叫做異構融合。在硬件上FPGA向主機提供的是PCI-E的接口,這里提供了四個DMA的接口卡,做得是PCM卡。在這里面我們?yōu)榱颂剿鱌CM到底是用來代替外存還是代替內存,貼了PCM的芯片。在PCM芯片用作內存使用的時候,是怎么樣的一個使用方式。
我們做了設備原型,也是一個PCIE的卡,對主機實現(xiàn)就是支持NVME協(xié)議。子卡是Flash,可將它作為擴展內存使用。當我全部配成Flash卡的時候,可以把它當成SSD使用。我們探索當兩種融合的時候,有什么可做的工作呢?
我們針對PCM的特性做了一些工作,它的主要特點就是阻值在晶態(tài)和非晶態(tài)之間存在一個不對稱,讀快寫慢。寫0和寫1不對稱,由原點決定。寫1就是再結晶的過程,它的能耗要求比較低,中溫,再結晶的過程時間比較長,寫1慢,能耗低。寫0是高溫淬火的過程,能耗比較高,寫0要快。利用這個我們做了相應優(yōu)化,而它整體來說PCM相對Flash要快4-10倍的量級。基本上可以達到DRAM的訪問速度,幾十納秒的量級。我們利用這個發(fā)揮所長,我們傳統(tǒng)Flash構成的SSD存在的問題是通道里有很多閃存芯片,但只有一部分是真正存數(shù)據的。在查表時,需要查詢數(shù)據所在位置,真正數(shù)據的讀寫還要征用數(shù)據通道,導致閃存效率較低。
而我們的原型系統(tǒng)中采用PCM和Flash,各取所長。用PCM做查詢時要進行很多次操作,讀完改寫次數(shù)比較多,用它來做內存。數(shù)據在閃存上外存,可以提高性能。
最終,異構融合結構的固態(tài)盤在性能、壽命上基本接近或等于理想的純內存頁級映射結構。我們采用這種混合結構之后,基本和最理想的頁級映射性能差在百分之零點幾,基本可以接近最理想的頁級映射性能,比普通使用的要好很多。因為它和最理想性能差,最多會有57%這樣的性能差距。同時壽命的影響大大降低了Flash擦除的次數(shù),映射表放在PCM上去,得到這樣的結果。
再一個針對PCM做一些性能優(yōu)化,剛才講了原理,它的電源模塊實際支持寫入的Bit數(shù)有限,比如16位或者更少。我們知道一個總線四位,最高16位為1單元(unit),我要一次寫一個unit,8個unit才能寫下去,導致性能較低,個中原因是寫入的高能耗,電源線干擾,受限的電源模塊。
然后我們對負載特征進行分析,發(fā)現(xiàn)實際上數(shù)據是有一定規(guī)律。我們對這個多線程進行分析,發(fā)現(xiàn)它的數(shù)據全0,一半0,一半0一半任意數(shù),還有任意寫,我們發(fā)現(xiàn)寫全0占非常高的比例。隨著線程數(shù)的增加,寫全0比例非常高。但PCM不管是寫0還是寫1都有能耗,寫比讀要慢。那么只能減少寫入,做優(yōu)化工作。如何減少寫入?這么多寫0,可不可以不寫,我們相當于針對它進行相應優(yōu)化。
第一步是根據數(shù)據規(guī)律做壓縮。類型一全0不寫,用兩個標志位表示就行。類型二,三一半0一半1,都可以壓縮成32bits。類型四11就表示任意。
第二步是重調度,把它拼接來寫,開始的條件是只能寫16bits,重調度第一步是類型四任意都得寫。第二步是類型二三的數(shù)據并行寫入,一次能耗供電能夠寫最多的bits數(shù),就是這樣的思路。
而8個Units,第一步壓縮就是0都不寫入,壓縮掉。第二步是重新調度或者拼接,首先寫XX,然后再把這兩個進行拼接,把已經壓縮的部分進行拼接。我們要寫8個Units,最后變成三個Units就可以寫下去了。
之后我們發(fā)現(xiàn)還可以采用部分數(shù)據反轉。先判斷寫下去的8位或者16位是寫0多還是寫1多。變化的位數(shù)哪個多,再將它進行反轉。之后讓寫的位數(shù)假設16位,反轉之后減少為只寫8位,這也是減少寫的量。相當于進一步做壓縮,可以從原來要寫已壓縮的3個units,變?yōu)?個Units。對負載進行測試也是有效果的。
這就是器件一級做的工作,器件的融合,如何發(fā)揮每一種器件的特點,如何將其優(yōu)點發(fā)揮出來,再克服缺點,主要做這些工作。
基于對象的異構融合存儲系統(tǒng)優(yōu)化
系統(tǒng)一級我們做的工作就是基于對象的一個融合的存儲系統(tǒng)。主要從體系結構,高效低能耗,高可靠和高安全這三個方面來做相應的方法探索以及優(yōu)化,最后形成一個基于對象的異構融合的存儲系統(tǒng)。
首先我們最主要的特征就是做了一個主動對象,它的主要特點是什么?我們要按需服務于不同的應用,其實傳統(tǒng)存儲并不知道用戶有什么樣的需求。從兩部分可以知道它的需求,第一部分我們增加兩個功能對象,第一個是用戶功能對象,是否需要安全,可靠性都可以通過需求提供接口。第二個是系統(tǒng)功能對象,我們可以采集以前的對象進行分析,它是小的請求量居多的訪問,還是大的請求量居多的訪問。最簡單存儲的策略肯定不一樣,我們一個要去測其聚合帶寬,一個要去測多少IOPS,不可能兩個應用同時都是這樣,我們可以在系統(tǒng)內部做自我優(yōu)化。
存儲原來是傻存儲,響應主機請求變成智能存儲,能夠主動服務于不同應用,自適應于復雜的應用環(huán)境。
我們相應對OSD(對象存儲設備)擴展做了相應的標準,在2015年終于頒布。我們也形成了自己的系統(tǒng),這個系統(tǒng)具體是在武漢光電實驗室搭建的平臺,128個節(jié)點,互聯(lián)構成這個系統(tǒng),我們做的就是整個文件系統(tǒng)。整個系統(tǒng)可以達到百GB的聚合帶寬以及5000次并發(fā)訪問,還有單目錄下文件數(shù)量級達到百萬量級等等。
主要特點,第一個智能性方面,我們做了一個比較有效的工作,可以根據歷史負載預測未來趨勢,觸動相應存儲策略的執(zhí)行,服務不同的應用。高性能方面,我們也做了自己的硬件,這個硬件也是用FBGA做加速,和現(xiàn)在的超級計算,提高性能的方式相同,只不過更早一點做了這個工作。包括支持異或、壓縮、加密、RDMA等操作加速。
元數(shù)據服務器,每個數(shù)量都達到百萬量級,快速查找數(shù)據位置就成為了瓶頸。我們基于語義的特征,首先把查詢范圍縮小,讓它落在一個區(qū)域內,在這個區(qū)域內用傳統(tǒng)目錄數(shù)的方式往下查。
我們結合一些新的發(fā)展,軟件定義網絡,分布式系統(tǒng)中間肯定要用網絡互聯(lián)。為了提高可靠性,需要更多的副本提高可靠性的性能。導致網絡上有大量的冗余數(shù)據傳輸,效率更高。利用軟件定義網絡的優(yōu)勢做了擁塞感知的可靠組播協(xié)議。很多冗余的數(shù)據,這個數(shù)據節(jié)點傳進來傳出去,通過網絡進來只傳一遍,一下可以寫兩個副本,三個副本,可以提高性能。
具體結果,我們把這個組播的方式用在HDF上面,可以增加一倍以上,大大提高性能。我把一些新的進展放在我們系統(tǒng)中間去。
另外高可靠性方面,我們也是做了容雙盤錯的編碼,特點是我用簡單的異或運算,計算編碼放在什么位置,計算非常簡單,效率非常高。這是可靠性方面做的工作。
安全性方面存儲,加入一些傳統(tǒng)的安全方式在上面,包括訪問控制,數(shù)據完整性、數(shù)據機密性等等。訪問控制做的是分布式訪問控制方式,可以比集中訪問方式快1.3-16倍。
另外比較特色的是做溯源入侵檢測,把存儲系統(tǒng)中間訪問相應進程的日志信息都存下來,不僅僅是簡單日志,還有相互之間的依賴關系,關系圖也建立起來。第一可以做圖形檢測,第二做適度的審計分析,數(shù)據修改后也可以追溯它從哪里來的。還有基于閃存的安全刪除,這個也是根據它的原理來的。閃存的主要辦法如果想寫入,原來的數(shù)據就沒了,實際上它存在大量復制在里面,安全性較差。我們可以在閃存寫入的同時后臺對原來的數(shù)據進行覆蓋寫,寫完之后寫1,后來變成寫全0,是可以改變的。
服務等級目標保障技術
最后一方面提一下服務等級目標保障技術——SLO。用戶面向服務的時候,我需要多少帶寬你要滿足。對服務提供商來說,我希望盡量把我的資源用起來,不是資源過量供給。我有100兆服務能力,我調度不好,有可能我100兆并沒有充分發(fā)揮。怎么樣達到相互之間既滿足用戶服務質量保障,同時我的資源沒有浪費,我們就做了一些相應的工作。這個主要是在我們存儲系統(tǒng)上面的虛擬機來做。
主要涉及兩個點,一個是請求到達率,還有一個就是整個帶寬的保障,我們用PI(比例積分)和V-Cup控制器??刂破鞯睦碚摼褪遣捎帽壤e分控制模型動態(tài)調整I/O到達率,采用V-Cup模型對I/O請求大小波動進行有效控制,實現(xiàn)對I/O帶寬的精確控制。
第二方面,資源利用最大化。就是進一步在存儲服務器上又加了一個控制,兩層虛擬機這端和存儲服務器這端連接在一起,使得資源利用最大化,最大限度滿足不同用戶需求。另外還要利用高尾延時,保證99%或99.9%的百分位的I/O延時目標。做虛擬機的保障精度,還有I/O延遲最大偏差是2%。
以上是我們在器件、系統(tǒng)、I/O保障這三個層面做的一些工作。