4月14日,中國計算機學會信息存儲專委會主任委員、清華大學計算機科學與技術(shù)系教授、廈門大學信息學院院長舒繼武在“2022分布式存儲線上論壇”開場發(fā)表《存儲系統(tǒng)發(fā)展趨勢的思考》主題演講,分享存儲系統(tǒng)發(fā)展的最新趨勢,以及基于這些趨勢對存儲系統(tǒng)與技術(shù)發(fā)展的方向思考。

存儲系統(tǒng)發(fā)展的三大趨勢

1、存儲金字塔架構(gòu)層級逐漸模糊

傳統(tǒng)存儲系統(tǒng)硬件從硬盤到NVMe SSD,再到上面的DRAM甚至緩存的存儲金字塔架構(gòu),不同層級之間容量和性能都存在數(shù)量級差異。但隨著一些新型硬件的產(chǎn)生和應用,如英特爾AEP等使得這些層級逐漸模糊,傳統(tǒng)金字塔架構(gòu)改變?yōu)轭愃拼笱闼軜?gòu)。

2、數(shù)據(jù)中心進一步的極致追求

第二個問題是數(shù)據(jù)中心,從前追求吞吐量,現(xiàn)在追求極致,包括性價比、能耗、用戶體驗等,在這種情況下傳統(tǒng)機架式數(shù)據(jù)中心資源利用率低下,擴展不靈活、調(diào)度不靈活等缺點暴露無遺。

數(shù)據(jù)中心業(yè)務有高扇出的特點,導致很多服務器延遲高于均值,因此尾延遲越來越受重視。例如天貓購物,一個請求發(fā)出需要后端上千臺服務器響應,必然涉及尾延遲。傳統(tǒng)CPU有流水線能做一些延遲隱藏,可以達到微納秒級延遲,操作系統(tǒng)現(xiàn)在來說還是微毫秒級延遲,想讓整個系統(tǒng)維持微秒量級的延遲還很困難,目前沒有很好的解決機制。

3、計算任務從主機端卸載到設備端

第三是新型硬件的出現(xiàn)為整個系統(tǒng)設計帶來的問題。例如可編程SSD,里面包含ARM/FPGA,能夠處理專用數(shù)據(jù),可編程交換機里包含ASIC,能處理專用數(shù)據(jù)包,還有智能網(wǎng)卡等,新的器件/設備的產(chǎn)生能很好地應對數(shù)據(jù)密集型和計算密集型應用。與此同時,新設備的產(chǎn)生也使得我們在設計軟硬件時要考慮協(xié)同關(guān)系,包括IO棧如何重新設計,分布式協(xié)議如何重構(gòu)等問題。

存儲系統(tǒng)與技術(shù)發(fā)展帶來的思考

1、低延遲高吞吐的軟件設計思考

基于以上三個發(fā)展趨勢,再談談這些存儲系統(tǒng)技術(shù)發(fā)展所帶來的思考。由于時間關(guān)系主要講兩點。第一就是多級存儲介質(zhì)下的存儲軟件要如何考慮——新器件的到來讓存儲器變成多級架構(gòu),還有傳統(tǒng)數(shù)據(jù)中心變成了硬件池化架構(gòu),其軟件系統(tǒng)需要考慮哪些問題。

首先,隨著NVMe SSD的產(chǎn)生,帶寬變化很大,傳統(tǒng)HDD帶寬約為80MB到100MB/s,現(xiàn)在傲騰SSD能達到7GB/s,延遲也有數(shù)量級變化。硬件性能激增的同時也要求穩(wěn)定性,因此請求帶寬和延遲抖動相對來說較小。另一方面硬件并發(fā)度增加,讓你能同時處理更多請求數(shù),以上是硬件變化。

還有接口變化,像傳統(tǒng)閃存系統(tǒng)提供軟硬件交互,支持4KB塊接口訪問,是普通的單接口SSD,軟件性能相對效率較低,優(yōu)化也比較難。然后像英特爾又推出了一種雙接口SSD,里面除了提供塊接口外還同時提供直訪字節(jié)接口,這樣在軟件和可靠性上有所提升,我們也曾經(jīng)在這方面做了相關(guān)一套軟件,確實性能比傳統(tǒng)要高的多。

還有像三星推出一種專門針對鍵值接口的SSD,能進行定向優(yōu)化鍵值存儲,因為是定向?qū)S茫灾恢С宙I值存儲,無法支持文件系統(tǒng)。

從硬件變化到接口變化再看架構(gòu)變化。傳統(tǒng)軟硬件分層設備有一個FTL(Flash Translation Layer)轉(zhuǎn)換層,存在比如性能問題——功能冗余、語義隔離(包括里面存在的寫放大),還有耐久性問題,但它是標準硬件。

之后還有開放通道SSD,我們在軟硬件協(xié)同設計方面做了十多年的工作,主要克服普通SSD的性能和可靠性系列問題,尤其在云/數(shù)據(jù)中心里面得到很多應用,能進行性能隔離和定向優(yōu)化,其存在問題在于硬件改動較大。

近兩年,西部數(shù)據(jù)還推出了一種分區(qū)SSD,基于Open-channel SSD開放架構(gòu),主要是把Zone分出來做一個抽象,緩解普通SSD的可靠性,其性能介于前面第一類和第二類之間,優(yōu)勢是硬件改動相比開放通道SSD較少。

硬件接口和架構(gòu)產(chǎn)生變化之后還要考慮系統(tǒng)設計,旨在實現(xiàn)低延遲高吞吐軟件設計。這種設計用于內(nèi)核態(tài)、用戶態(tài),或者兩者優(yōu)勢兼具的新操作系統(tǒng),在業(yè)界還一直有爭論,內(nèi)核態(tài)提供標準化抽象和封裝,但里面有很多場景切換,性能相對較低,還存在內(nèi)核開銷等問題,優(yōu)勢是兼容性強,安全性高。

用戶態(tài)支持直訪,性能較高但存在安全和兼容性問題。還有一種內(nèi)核態(tài)和用戶態(tài)協(xié)同,包括清華等很多單位在這方面都在做探索。

另外,隨著硬件變快以及CPU核數(shù)的增加,很多傳統(tǒng)串行技術(shù),現(xiàn)在變?yōu)椴捎貌⑿屑夹g(shù)降低延遲,提高吞吐率。比如Linux的NVMe,軟件和硬件串行操作,延遲較高,如清華采用ccNVMe,通過軟硬件操作并行來降低延遲。在吞吐率方面,通過做多任務/應用聚合吞吐來彌補傳統(tǒng)像三星F2FS在擴展性上的不足。

2、高速存儲和網(wǎng)絡協(xié)同設計

另一個是高速存儲和網(wǎng)絡協(xié)同設計。存儲介質(zhì)要與網(wǎng)絡介質(zhì)匹配,存儲介質(zhì)性能才會發(fā)揮到最大,因此像NVMe SSD,基本上是與RDMA網(wǎng)絡構(gòu)建系統(tǒng),NVMe over RDMA在業(yè)內(nèi)比較熱門。我們在NVMe over RDMA方面有很多研究,特別是輕量存儲池化軟件的設計,其核心是繞開服務器網(wǎng)絡棧,節(jié)省網(wǎng)絡棧開銷,尤其是能讓數(shù)據(jù)從智能網(wǎng)卡直達SSD,提供高吞吐和低延遲便利。

除此之外,如斯坦福大學還提出硬件輔助虛擬化來加速IO路徑,華盛頓大學通過智能網(wǎng)卡卸載存儲功能以便提升硬件性能。

硬件資源池化下的系統(tǒng)軟件

傳統(tǒng)數(shù)據(jù)中心的架構(gòu)缺陷

大家知道傳統(tǒng)數(shù)據(jù)中心是由很多的單一服務器互聯(lián)起來,處理器和內(nèi)存按照不同趨勢發(fā)展(剪刀差),導致數(shù)據(jù)中心內(nèi)存不足就要加服務器,CPU也跟著增加,其實我們只想增加內(nèi)存,計算能力是足夠的,同理,CPU不足,增加服務器也就增加了多余的內(nèi)存,這樣會導致資源利用率低下,部署不夠靈活。

當然還有采用一些分布式技術(shù)讓多個服務器進行協(xié)同處理,但目前基本上這種計算存儲任務執(zhí)行還是局限于單個服務器,分布式技術(shù)還解決不了這些問題。

解耦數(shù)據(jù)中心架構(gòu)

解耦數(shù)據(jù)中心的架構(gòu),即做硬件資源池化是一個理想化的想法,也是一種趨勢。硬件資源池化就是在數(shù)據(jù)中心里構(gòu)建不同池子,CPU計算池,內(nèi)存池,存儲池,這些資源池用高速網(wǎng)絡連接起來,現(xiàn)在英特爾、惠普都有這方面一些研究。

當然這些池子通過高速互聯(lián)網(wǎng)連接,對網(wǎng)絡存在很大的挑戰(zhàn)。但這樣的部署設計,CPU計算能力不足就擴展CPU池,內(nèi)存不足就擴展內(nèi)存池子,升級簡單,硬件資源利用率更高。

當然理想很豐滿,最大的問題是高速網(wǎng)絡,網(wǎng)絡傳輸性能會對Rack-Scale落地有制約,當然現(xiàn)在有很多公司在這方面進行努力研究。還有一個全新的開放協(xié)議——CXL,近年來發(fā)展勢頭很猛,也成為解耦互聯(lián)的主流協(xié)議,國內(nèi)很多企業(yè)也加入其中。英特爾去年成立CXL聯(lián)盟,發(fā)布了從1.0到1.1,到現(xiàn)在2.0的CXL規(guī)范,正在努力緩解解耦數(shù)據(jù)中心的網(wǎng)絡。

CXL科普

CXL不同于無線網(wǎng)及數(shù)據(jù)中心網(wǎng)絡的連接模式,是全新的網(wǎng)絡協(xié)議,支持三種模式——訪問外存設備、處理器訪問內(nèi)存、設備訪問內(nèi)存,在物理層和協(xié)議層做了很多重新設計,能提供高吞吐和低延遲。

系統(tǒng)設計對應要考慮如何使用,這里涉及到操作系統(tǒng)和運行時系統(tǒng),資源池化的操作系統(tǒng)設計要考慮怎么將操作系統(tǒng)里的任務切分給不同硬件組件去做,組件還要去中心化,還要做好局部性,讓網(wǎng)絡有更好的支持。另外需要提供這種虛擬機抽象給應用層兼容現(xiàn)有軟件,這是操作系統(tǒng)層要考慮的。

運行時系統(tǒng)則要首先考慮支持高級語言比如java,還要應對傳統(tǒng)垃圾回收效率低的問題,進行分布式動態(tài)內(nèi)存垃圾回收,還有一些公司在把垃圾回收卸載到內(nèi)存節(jié)點上去做。

純硬件方面由于網(wǎng)絡問題無法快速落地。清華團隊是基于軟件、邏輯的角度來構(gòu)建一個分布式持久性內(nèi)存存儲系統(tǒng)TH-DPMS,通過RDMA把持久性內(nèi)存統(tǒng)一進行互連,構(gòu)建具有全局地址空間的內(nèi)存共享池,對外可以提供內(nèi)存訪問接口,對象接口等服務,具有高性能和擴展性,編程簡單易管理,安全性也比較高。

總結(jié)

隨著新硬件的產(chǎn)生,存儲不再是從前的存儲金字塔架構(gòu),而是類似大雁塔架構(gòu),另外一個數(shù)據(jù)中心原來追求規(guī)模到吞吐力,現(xiàn)在追求資源利用率到尾延遲的方向,而在這個方面思考了多級存儲介質(zhì)下存儲軟件設計,以及硬件資源池化下的系統(tǒng)軟件發(fā)展方向。

(速記整理未經(jīng)演講者審核)

分享到

崔歡歡

相關(guān)推薦