4月14日,中國計算機學會信息存儲專委會主任委員、清華大學計算機科學與技術系教授、廈門大學信息學院院長舒繼武在“2022分布式存儲線上論壇”開場發(fā)表《存儲系統(tǒng)發(fā)展趨勢的思考》主題演講,分享存儲系統(tǒng)發(fā)展的最新趨勢,以及基于這些趨勢對存儲系統(tǒng)與技術發(fā)展的方向思考。
存儲系統(tǒng)發(fā)展的三大趨勢
1、存儲金字塔架構層級逐漸模糊
傳統(tǒng)存儲系統(tǒng)硬件從硬盤到NVMe SSD,再到上面的DRAM甚至緩存的存儲金字塔架構,不同層級之間容量和性能都存在數量級差異。但隨著一些新型硬件的產生和應用,如英特爾AEP等使得這些層級逐漸模糊,傳統(tǒng)金字塔架構改變?yōu)轭愃拼笱闼軜嫛?/p>
2、數據中心進一步的極致追求
第二個問題是數據中心,從前追求吞吐量,現在追求極致,包括性價比、能耗、用戶體驗等,在這種情況下傳統(tǒng)機架式數據中心資源利用率低下,擴展不靈活、調度不靈活等缺點暴露無遺。
數據中心業(yè)務有高扇出的特點,導致很多服務器延遲高于均值,因此尾延遲越來越受重視。例如天貓購物,一個請求發(fā)出需要后端上千臺服務器響應,必然涉及尾延遲。傳統(tǒng)CPU有流水線能做一些延遲隱藏,可以達到微納秒級延遲,操作系統(tǒng)現在來說還是微毫秒級延遲,想讓整個系統(tǒng)維持微秒量級的延遲還很困難,目前沒有很好的解決機制。
3、計算任務從主機端卸載到設備端
第三是新型硬件的出現為整個系統(tǒng)設計帶來的問題。例如可編程SSD,里面包含ARM/FPGA,能夠處理專用數據,可編程交換機里包含ASIC,能處理專用數據包,還有智能網卡等,新的器件/設備的產生能很好地應對數據密集型和計算密集型應用。與此同時,新設備的產生也使得我們在設計軟硬件時要考慮協(xié)同關系,包括IO棧如何重新設計,分布式協(xié)議如何重構等問題。
存儲系統(tǒng)與技術發(fā)展帶來的思考
1、低延遲高吞吐的軟件設計思考
基于以上三個發(fā)展趨勢,再談談這些存儲系統(tǒng)技術發(fā)展所帶來的思考。由于時間關系主要講兩點。第一就是多級存儲介質下的存儲軟件要如何考慮——新器件的到來讓存儲器變成多級架構,還有傳統(tǒng)數據中心變成了硬件池化架構,其軟件系統(tǒng)需要考慮哪些問題。
首先,隨著NVMe SSD的產生,帶寬變化很大,傳統(tǒng)HDD帶寬約為80MB到100MB/s,現在傲騰SSD能達到7GB/s,延遲也有數量級變化。硬件性能激增的同時也要求穩(wěn)定性,因此請求帶寬和延遲抖動相對來說較小。另一方面硬件并發(fā)度增加,讓你能同時處理更多請求數,以上是硬件變化。
還有接口變化,像傳統(tǒng)閃存系統(tǒng)提供軟硬件交互,支持4KB塊接口訪問,是普通的單接口SSD,軟件性能相對效率較低,優(yōu)化也比較難。然后像英特爾又推出了一種雙接口SSD,里面除了提供塊接口外還同時提供直訪字節(jié)接口,這樣在軟件和可靠性上有所提升,我們也曾經在這方面做了相關一套軟件,確實性能比傳統(tǒng)要高的多。
還有像三星推出一種專門針對鍵值接口的SSD,能進行定向優(yōu)化鍵值存儲,因為是定向專用,所以只支持鍵值存儲,無法支持文件系統(tǒng)。
從硬件變化到接口變化再看架構變化。傳統(tǒng)軟硬件分層設備有一個FTL(Flash Translation Layer)轉換層,存在比如性能問題——功能冗余、語義隔離(包括里面存在的寫放大),還有耐久性問題,但它是標準硬件。
之后還有開放通道SSD,我們在軟硬件協(xié)同設計方面做了十多年的工作,主要克服普通SSD的性能和可靠性系列問題,尤其在云/數據中心里面得到很多應用,能進行性能隔離和定向優(yōu)化,其存在問題在于硬件改動較大。
近兩年,西部數據還推出了一種分區(qū)SSD,基于Open-channel SSD開放架構,主要是把Zone分出來做一個抽象,緩解普通SSD的可靠性,其性能介于前面第一類和第二類之間,優(yōu)勢是硬件改動相比開放通道SSD較少。
硬件接口和架構產生變化之后還要考慮系統(tǒng)設計,旨在實現低延遲高吞吐軟件設計。這種設計用于內核態(tài)、用戶態(tài),或者兩者優(yōu)勢兼具的新操作系統(tǒng),在業(yè)界還一直有爭論,內核態(tài)提供標準化抽象和封裝,但里面有很多場景切換,性能相對較低,還存在內核開銷等問題,優(yōu)勢是兼容性強,安全性高。
用戶態(tài)支持直訪,性能較高但存在安全和兼容性問題。還有一種內核態(tài)和用戶態(tài)協(xié)同,包括清華等很多單位在這方面都在做探索。
另外,隨著硬件變快以及CPU核數的增加,很多傳統(tǒng)串行技術,現在變?yōu)椴捎貌⑿屑夹g降低延遲,提高吞吐率。比如Linux的NVMe,軟件和硬件串行操作,延遲較高,如清華采用ccNVMe,通過軟硬件操作并行來降低延遲。在吞吐率方面,通過做多任務/應用聚合吞吐來彌補傳統(tǒng)像三星F2FS在擴展性上的不足。
2、高速存儲和網絡協(xié)同設計
另一個是高速存儲和網絡協(xié)同設計。存儲介質要與網絡介質匹配,存儲介質性能才會發(fā)揮到最大,因此像NVMe SSD,基本上是與RDMA網絡構建系統(tǒng),NVMe over RDMA在業(yè)內比較熱門。我們在NVMe over RDMA方面有很多研究,特別是輕量存儲池化軟件的設計,其核心是繞開服務器網絡棧,節(jié)省網絡棧開銷,尤其是能讓數據從智能網卡直達SSD,提供高吞吐和低延遲便利。
除此之外,如斯坦福大學還提出硬件輔助虛擬化來加速IO路徑,華盛頓大學通過智能網卡卸載存儲功能以便提升硬件性能。
硬件資源池化下的系統(tǒng)軟件
傳統(tǒng)數據中心的架構缺陷
大家知道傳統(tǒng)數據中心是由很多的單一服務器互聯起來,處理器和內存按照不同趨勢發(fā)展(剪刀差),導致數據中心內存不足就要加服務器,CPU也跟著增加,其實我們只想增加內存,計算能力是足夠的,同理,CPU不足,增加服務器也就增加了多余的內存,這樣會導致資源利用率低下,部署不夠靈活。
當然還有采用一些分布式技術讓多個服務器進行協(xié)同處理,但目前基本上這種計算存儲任務執(zhí)行還是局限于單個服務器,分布式技術還解決不了這些問題。
解耦數據中心架構
解耦數據中心的架構,即做硬件資源池化是一個理想化的想法,也是一種趨勢。硬件資源池化就是在數據中心里構建不同池子,CPU計算池,內存池,存儲池,這些資源池用高速網絡連接起來,現在英特爾、惠普都有這方面一些研究。
當然這些池子通過高速互聯網連接,對網絡存在很大的挑戰(zhàn)。但這樣的部署設計,CPU計算能力不足就擴展CPU池,內存不足就擴展內存池子,升級簡單,硬件資源利用率更高。
當然理想很豐滿,最大的問題是高速網絡,網絡傳輸性能會對Rack-Scale落地有制約,當然現在有很多公司在這方面進行努力研究。還有一個全新的開放協(xié)議——CXL,近年來發(fā)展勢頭很猛,也成為解耦互聯的主流協(xié)議,國內很多企業(yè)也加入其中。英特爾去年成立CXL聯盟,發(fā)布了從1.0到1.1,到現在2.0的CXL規(guī)范,正在努力緩解解耦數據中心的網絡。
CXL科普
CXL不同于無線網及數據中心網絡的連接模式,是全新的網絡協(xié)議,支持三種模式——訪問外存設備、處理器訪問內存、設備訪問內存,在物理層和協(xié)議層做了很多重新設計,能提供高吞吐和低延遲。
系統(tǒng)設計對應要考慮如何使用,這里涉及到操作系統(tǒng)和運行時系統(tǒng),資源池化的操作系統(tǒng)設計要考慮怎么將操作系統(tǒng)里的任務切分給不同硬件組件去做,組件還要去中心化,還要做好局部性,讓網絡有更好的支持。另外需要提供這種虛擬機抽象給應用層兼容現有軟件,這是操作系統(tǒng)層要考慮的。
運行時系統(tǒng)則要首先考慮支持高級語言比如java,還要應對傳統(tǒng)垃圾回收效率低的問題,進行分布式動態(tài)內存垃圾回收,還有一些公司在把垃圾回收卸載到內存節(jié)點上去做。
純硬件方面由于網絡問題無法快速落地。清華團隊是基于軟件、邏輯的角度來構建一個分布式持久性內存存儲系統(tǒng)TH-DPMS,通過RDMA把持久性內存統(tǒng)一進行互連,構建具有全局地址空間的內存共享池,對外可以提供內存訪問接口,對象接口等服務,具有高性能和擴展性,編程簡單易管理,安全性也比較高。
總結
隨著新硬件的產生,存儲不再是從前的存儲金字塔架構,而是類似大雁塔架構,另外一個數據中心原來追求規(guī)模到吞吐力,現在追求資源利用率到尾延遲的方向,而在這個方面思考了多級存儲介質下存儲軟件設計,以及硬件資源池化下的系統(tǒng)軟件發(fā)展方向。
(速記整理未經演講者審核)