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

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

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

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

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

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

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

3、計(jì)算任務(wù)從主機(jī)端卸載到設(shè)備端

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

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

1、低延遲高吞吐的軟件設(shè)計(jì)思考

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

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

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

還有像三星推出一種專門針對(duì)鍵值接口的SSD,能進(jìn)行定向優(yōu)化鍵值存儲(chǔ),因?yàn)槭嵌ㄏ驅(qū)S?,所以只支持鍵值存儲(chǔ),無法支持文件系統(tǒng)。

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

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

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

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

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

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

2、高速存儲(chǔ)和網(wǎng)絡(luò)協(xié)同設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

CXL科普

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

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

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

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

總結(jié)

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

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

分享到

崔歡歡

相關(guān)推薦