中國工程院院士、清華大學(xué)計(jì)算機(jī)系教授鄭緯民發(fā)表主題演講:應(yīng)鼓勵(lì)從頭研發(fā)先進(jìn)的存儲(chǔ)系統(tǒng)軟件

現(xiàn)在是時(shí)候!其中大概有幾個(gè)原因:

第一,現(xiàn)有很多設(shè)計(jì)是基于傳統(tǒng)硬件的,如機(jī)械硬盤,其隨機(jī)訪問性能差、延遲高,外存帶寬比內(nèi)存帶寬要差兩個(gè)數(shù)量級(jí)別。過去很多系統(tǒng)軟件都是基于硬盤做的。當(dāng)今的主流是NVMe SSD閃存,其隨機(jī)讀/寫性能和連續(xù)讀/寫是一樣的,外存帶寬與內(nèi)存帶寬只差一個(gè)數(shù)量級(jí)了,這就給我們帶來機(jī)會(huì),系統(tǒng)軟件應(yīng)該重寫。

第二,原來寫軟件主要有兩種語言:C和Java,兩種語言的表達(dá)能力應(yīng)該說不是太好,內(nèi)存管理需要要手動(dòng)進(jìn)行。如今, C++、Rust,這兩種新語言的表達(dá)能力更好,內(nèi)存管理也做得更好,邊緣優(yōu)化也很好,這就為從頭寫先進(jìn)存儲(chǔ)軟件創(chuàng)造了條件。

那么先進(jìn)存儲(chǔ)軟件從哪里來呢?

相當(dāng)一部分系統(tǒng)軟件開始時(shí)是0到1,發(fā)源于少數(shù)軟件天才,比如Linux是赫爾辛基大學(xué)的學(xué)生做的,Spark是美國Berkley分校的博士做的,開始時(shí)這些軟件功能簡(jiǎn)單一點(diǎn),慢慢的就由1變成100、1000。中國當(dāng)前的問題是從0到1的例子太少,更多人做的工作是從100到1000,這也不是不好,但是中國更需要0到1。

中國能不能做0到1呢?特別針對(duì)存儲(chǔ),沒有可能做0到1的事情?

在此,我舉2兩個(gè)例子來說明。

一是高性能分布式文件系統(tǒng),它屬于存儲(chǔ)系統(tǒng)軟件的范疇,被應(yīng)用在深圳鵬城國家實(shí)驗(yàn)室的超級(jí)計(jì)算項(xiàng)目中,榮獲IO500性能排行榜第一名。IO500測(cè)什么?測(cè)寫入數(shù)據(jù)、再讀出,創(chuàng)建、刪除、寫入文件、查找,非常復(fù)雜,例如小文件只有3901個(gè)字節(jié),就是這么怪的數(shù)據(jù)讓你測(cè)性能。因此IO500的冠軍,意味著存儲(chǔ)系統(tǒng)設(shè)計(jì)非常優(yōu)秀。

英特爾的DAOS系統(tǒng)以及劍橋大學(xué)的Lustre文件系統(tǒng)都參加過該測(cè)試,美國象樹嶺國家實(shí)驗(yàn)室也參加過,長(zhǎng)沙的天河、廣州超算中心、阿貢實(shí)驗(yàn)室、Oracle等都參加過比賽。

初期我們也想基于國外原型系統(tǒng)做,后來發(fā)現(xiàn)開源軟件問題很大,后來我們從頭開始構(gòu)建,用Rust語言,基于更通用、更穩(wěn)定的庫,其性能很好,其中就涉及到RDMA、NVMe SSD等新技術(shù),并全面采用旁路技術(shù),降低軟件棧開銷,最終用Rust語言寫出了一個(gè)高性能分布式文件系統(tǒng),并把IO500沖到了7043的分?jǐn)?shù),相比第二名就有2000分不到,最后測(cè)試的情況,我們達(dá)到36850分。

最后,我們得了6個(gè)冠軍,因?yàn)?0個(gè)節(jié)點(diǎn)一比,全系統(tǒng)一比,比帶寬、比延遲,我們都拿了6個(gè)冠軍。

第二個(gè)例子,基于NVMe SSD來做數(shù)據(jù)庫系統(tǒng),此前一代數(shù)據(jù)庫是基于硬盤的,數(shù)據(jù)存在硬盤上,用內(nèi)存作為緩存,MySQL,Oracle都是這樣思路,但是其中只有6.8%的指令是業(yè)務(wù)需要的,也就是讀、寫數(shù)據(jù)庫只有6.8%,剩下的都在做內(nèi)存緩存管理。相比,內(nèi)存數(shù)據(jù)庫數(shù)據(jù)全都放在內(nèi)存,但是內(nèi)存不是持久性設(shè)備,斷電數(shù)據(jù)就會(huì)丟失,因此為了保證持久性,要把日志、檢查點(diǎn)數(shù)據(jù)放在硬盤中,造成了延遲增加,從10微秒增加到100毫秒。

有沒有可能做一個(gè)NVMe SSD數(shù)據(jù)庫,也就是基于閃存的數(shù)據(jù)庫?答案是可以的,但不是簡(jiǎn)單地把內(nèi)存、硬盤替換成閃存就可以的,要做一系列優(yōu)化,有很多東西要做,我們做完以后覺得還是可以的。

基于以往的實(shí)踐,不難得出三點(diǎn)以下體會(huì):

1.從頭構(gòu)建先進(jìn)的存儲(chǔ)系統(tǒng)軟件沒有想象的那么難,因?yàn)镾SD、RDMA、Rust給了我們重新做系統(tǒng)軟件的機(jī)會(huì);

2.外國大學(xué)生能做到,中國大學(xué)生也能做到。外國年輕人能做到的,中國年輕人也能做到;

3.關(guān)鍵是你要開始做,不要等著。

我們需要涌現(xiàn)一批沒事就想寫個(gè)系統(tǒng)的年輕人,要對(duì)寫軟件有興趣,有了這個(gè)興趣,你就行,就可以行。

我覺得我們國家的存儲(chǔ)系統(tǒng),應(yīng)該說經(jīng)過大家的努力,會(huì)越來越好。

 (以上基于2021年全球閃存峰會(huì)演講整理,未經(jīng)過本人審閱)

分享到

songjy

相關(guān)推薦