邱鑫:大家好,我是華為公司的邱鑫,今天很高興能有這個(gè)機(jī)會(huì)跟大家分享。大家如果能理解這些年隨著存儲(chǔ)介質(zhì)不斷演進(jìn)導(dǎo)致存儲(chǔ)協(xié)議和存儲(chǔ)交換接口的變化,對(duì)我們理解存儲(chǔ)系統(tǒng)架構(gòu)未來(lái)的演進(jìn)和未來(lái)如何更好的測(cè)試存儲(chǔ)系統(tǒng)都會(huì)有一些幫助。談到存儲(chǔ)市場(chǎng),大家第一反應(yīng)會(huì)是這個(gè)市場(chǎng)空間有多大,我們花了時(shí)間精力人力物力在存儲(chǔ)市場(chǎng)領(lǐng)域是不是合理是不是合適,性價(jià)比有多高。圖中是業(yè)界的公認(rèn)的統(tǒng)計(jì)數(shù)據(jù),可以給大家也是一個(gè)很好的信心,到2025年數(shù)據(jù)增將增長(zhǎng)10倍,有10倍的數(shù)據(jù)就意味這有10倍數(shù)據(jù)存儲(chǔ)市場(chǎng)的增長(zhǎng)。
存儲(chǔ)市場(chǎng)有一個(gè)非常明顯的變化,這種變化是數(shù)據(jù)的產(chǎn)生源已經(jīng)從人轉(zhuǎn)向了智能設(shè)備。此前的存儲(chǔ)市場(chǎng)空間更多來(lái)與人產(chǎn)生的數(shù)據(jù),例如:我拍攝了視頻,我把這個(gè)視頻存在了系統(tǒng)里,傳統(tǒng)存儲(chǔ)系統(tǒng)來(lái)自于人。未來(lái)的數(shù)據(jù)產(chǎn)生源是機(jī)器。最簡(jiǎn)單的一個(gè)例子,智能駕駛、無(wú)人駕駛技術(shù),都需要通過(guò)無(wú)數(shù)攝像頭探頭收集數(shù)據(jù),數(shù)據(jù)在智能設(shè)備之間高速交互而且這個(gè)變化還有一點(diǎn)意味著數(shù)據(jù)存儲(chǔ)速度要求比以前高很多,傳統(tǒng)的的存一張照片不關(guān)心延遲是多少,但是智能交通下延遲是非常關(guān)鍵的,如果慢了的話會(huì)產(chǎn)生交通事故。
存儲(chǔ)有一個(gè)很好的未來(lái)的前提下,那么存儲(chǔ)領(lǐng)域的創(chuàng)新點(diǎn)在哪里?最簡(jiǎn)單的一個(gè)是我們要在架構(gòu)上做一些優(yōu)化,能夠滿足大量數(shù)據(jù)產(chǎn)生帶給我們存儲(chǔ)系統(tǒng)的沖擊。第一是Scale-Out的Server SAN,我們從傳統(tǒng)的架構(gòu)在向Server SAN演進(jìn),要做橫向的擴(kuò)展?jié)M足海量數(shù)據(jù)的存儲(chǔ)。同時(shí),要把計(jì)算和存儲(chǔ)做解耦,要把各種類型的memory做成Pool供上層應(yīng)用,有一個(gè)更智能的Pool可以做????活配置,系統(tǒng)怎么管理,我們需要更好的更全面的設(shè)備管理的調(diào)度系統(tǒng)。物理層面,剛才三星的同事介紹了很多,包括新興的存儲(chǔ)介質(zhì),這部分對(duì)存儲(chǔ)系統(tǒng)設(shè)計(jì)也很關(guān)鍵,會(huì)改變存儲(chǔ)架構(gòu)的設(shè)計(jì)。
我們有了新的存儲(chǔ)介質(zhì),做成了池化,具體的連接技術(shù)上怎么滿足?我們要有高性能fabric,100G、200G以太的連接技術(shù),高效和智能的Protocol,有一些高性能的物理層支撐高效的Protocol層,把存儲(chǔ)資源真正做到池化和解耦和隔離。有了新的存儲(chǔ)介質(zhì)之后我們需要更好的編程模型,當(dāng)把我們的存儲(chǔ)我們的SSD盤(pán)看成存儲(chǔ)的時(shí)候,我們的訪問(wèn)模型是以塊的模式來(lái)訪問(wèn)的,未來(lái)當(dāng)我們的SCM介質(zhì)出現(xiàn)的時(shí)候我們需要一個(gè)新的Byte-address的編程模型。
下面看一下存儲(chǔ)協(xié)議具體有哪些,哪些值得我們真正重視和關(guān)注。傳統(tǒng)架構(gòu)下,一個(gè)數(shù)據(jù)包從CPU傳到一個(gè)盤(pán)上經(jīng)過(guò)多層個(gè)協(xié)議,CPU要通過(guò)PCIe協(xié)議把數(shù)據(jù)分到HBA上,HBA再把數(shù)據(jù)傳到SAS,通過(guò)擴(kuò)展接口再送到真正的盤(pán)上,這個(gè)協(xié)議站比較長(zhǎng)。當(dāng)我有高速傳輸介質(zhì)的時(shí)候是不是還需要這么長(zhǎng)的數(shù)據(jù)流,我們希望減少數(shù)據(jù)流,把協(xié)議站變短一些,第一步大家想到是不是????以把HBA, Expender的協(xié)議站做簡(jiǎn)化. 所以標(biāo)準(zhǔn)組織做NVMe的標(biāo)準(zhǔn)第一步是NVMe PCIe。第一步是利用PCIe高速性能的傳輸能力和NVMe輕量級(jí)的協(xié)議棧來(lái)實(shí)現(xiàn)低延時(shí),。在NVMe over PCIe之后,大家想到了Fabric,把storge和計(jì)算拉遠(yuǎn),擺脫P(yáng)CIe的Scale-out的局限性。, 有了NVMe協(xié)議,NVMe有這么好的生態(tài)鏈之后,NVMe對(duì)存儲(chǔ)系統(tǒng)有哪些影響?分兩塊,一塊是NVMe協(xié)議對(duì)傳統(tǒng)存儲(chǔ)架構(gòu)的影響,????NVMe對(duì)新興的Server-SAN(音)的影響。有一個(gè)server跑一些程序,訪問(wèn)存儲(chǔ)服務(wù)器,大量存儲(chǔ)資源存儲(chǔ)在后面的部分,傳統(tǒng)存儲(chǔ)架構(gòu)下,計(jì)算型服務(wù)器和存儲(chǔ)之間通過(guò)一大堆傳統(tǒng)協(xié)議進(jìn)行連接,NVMe出現(xiàn)之后對(duì)傳統(tǒng)架構(gòu)產(chǎn)生了什么影響?存儲(chǔ)前端利用高速的NVMe over fabric連接計(jì)算型服務(wù)和和傳統(tǒng)型服務(wù)器,另外把NVMe over fabric用在存儲(chǔ)后端,這兩個(gè)架構(gòu)都有一個(gè)共同的缺陷,最大的缺陷是???后??????致。第一個(gè)如果沒(méi)有后端高速的NOF的JBOD可以做前端的優(yōu)化。
這張圖是NVMe落地的時(shí)候有幾種形態(tài),我要用NVMe over fabric,架構(gòu)怎么改,放在一個(gè)JBOD里,整框出fabric接口,這是最常見(jiàn)的最省成本的做法,很多企業(yè)和公司都買(mǎi)了PCIE,只要把現(xiàn)有的設(shè)備放到框里,通過(guò)框出NVMe over fabric,就可以做系統(tǒng)的連接,這是比較務(wù)實(shí)的做法。還有個(gè)比較挑戰(zhàn)的做法,把每一個(gè)物理的盤(pán)直接出NVMe over fabric,這意味著我在這個(gè)架構(gòu)下完完全全的沒(méi)有PCIE的protocol,第一個(gè)架構(gòu)雖然簡(jiǎn)單可以快速實(shí)現(xiàn)。最簡(jiǎn)單的現(xiàn)實(shí)是要有一些SSD盤(pán)直接出NVMe的接口,這是NVMe在系統(tǒng)級(jí)落地的方向。
這是對(duì)新興的Serve影響,有了NVMe以后可以簡(jiǎn)單多少,傳統(tǒng)是一個(gè)CPU掛一個(gè)PCIE SW,再到HBA、Expander,要連一個(gè)很長(zhǎng)的硬件線路出來(lái),還要在各個(gè)芯片上做Protocol的轉(zhuǎn)化。它會(huì)帶給存儲(chǔ)系統(tǒng)一個(gè)革命性的變化,因?yàn)樗谟布浖鱾€(gè)維度都在幫大家省錢(qián),幫大家提升性能。
下面說(shuō)一下NVMe標(biāo)準(zhǔn)組織的進(jìn)展,Technical WG和Management Interface全心全意的做工作,IC做兼容性的測(cè)試,Driver基于工作組產(chǎn)生的技術(shù)干貨做代碼的實(shí)現(xiàn)。
NVMe版本的演進(jìn),2010左右年就有了,最開(kāi)始只是工作組幾個(gè)成員的交流,最后變成今天成為一個(gè)真正的產(chǎn)業(yè)。通過(guò)一個(gè)很長(zhǎng)的歷史過(guò)程,每個(gè)版本上不斷加新的feature,完成這樣一個(gè)標(biāo)準(zhǔn)。
這是NVMe over fabric帶給整個(gè)產(chǎn)業(yè)的價(jià)值。為什么要做NVMe over fabric,如果想在單層PCIE想過(guò)256個(gè)節(jié)點(diǎn)是過(guò)不去的,沒(méi)有動(dòng)態(tài)靈活的配置,都綁在一個(gè)硬件服務(wù)器內(nèi)有問(wèn)題,基于這些原因大家想能不能把它拉遠(yuǎn)做成fabric,所以變成了NVMe over fabric的協(xié)議。標(biāo)準(zhǔn)阻止做NVMe over fabric協(xié)議的時(shí)候,NVMe1.3的標(biāo)準(zhǔn)中沒(méi)有涵蓋NVMe over fabric的內(nèi)容,要真正了解NVMe over fabric怎么做,要???????看NVMe over fabric1.0,它是兩個(gè)獨(dú)立的協(xié)議。大家都明白fabric好像是很時(shí)髦的東西,它包含了很多,包括FC、IB、ROCE,這些都可以在NVMe over fabric中找到一些支撐,要實(shí)現(xiàn)具體每個(gè)協(xié)議的時(shí)候要看NVMe如何承載在FC、IB上。新興的未來(lái)技術(shù)方向,產(chǎn)業(yè)界說(shuō)得比較熱,如果現(xiàn)在有個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)沒(méi)有支持DCB的swage,就要改造你的設(shè)備,要花更多錢(qián),業(yè)界有個(gè)聲音,是不是可以把NVMe跑??TCP??,??國(guó)公司都在要求這個(gè)方向,特別是互聯(lián)網(wǎng)公司在做Scale-out的架構(gòu)。Major Feature-Virtualization這個(gè)最大的價(jià)值是可以刪除Hypervisor。
這是現(xiàn)在標(biāo)準(zhǔn)組織重點(diǎn)做的一件事情,我跟三星美國(guó)的同事和很多公司在談的一件事情,我們?yōu)槭裁匆鯧V,現(xiàn)在上層很多非結(jié)構(gòu)化的數(shù)據(jù)、log的數(shù)據(jù)怎么存下來(lái)的,有兩種方式,一種方式是我就是一個(gè)一個(gè)key寫(xiě)起來(lái)的,第一種做法是用文件系統(tǒng)來(lái)做,把文件名作為key,把食品內(nèi)容作為V寫(xiě)下來(lái),調(diào)用存儲(chǔ)的文件系統(tǒng)的內(nèi)容把它存下來(lái),意味著你用文件系統(tǒng)來(lái)實(shí)現(xiàn)KV到block的轉(zhuǎn)換,這個(gè)性能會(huì)非常差,不但性能差,還大量消耗了CPU占有率,CPU意味著錢(qián)。如果你買(mǎi)了一臺(tái)X86服務(wù)器,你可以跑這個(gè)協(xié)議站,可以分析這個(gè)部分對(duì)你的CPU的消耗有多大。我舉個(gè)不恰當(dāng)?shù)睦?,這個(gè)數(shù)據(jù)不一定真實(shí),你用這個(gè)東西,比如一個(gè)X86CPU是1千美元,這個(gè)部分就能花掉3百美元。你可以不用這個(gè)文件系統(tǒng)來(lái)做,你自己寫(xiě)一個(gè)(英文),這個(gè)地方要有大量開(kāi)發(fā)的工作量???????很多工程師去維護(hù),能不能保證KV到Block的轉(zhuǎn)化是最高效的。我可以把內(nèi)核里最復(fù)雜的block接口全部去掉,代碼量會(huì)節(jié)省非常多。傳統(tǒng)的drive要收到Table Based LBA轉(zhuǎn)成PBA。KV Drive是Table Based KV轉(zhuǎn)成PBA,通過(guò)架構(gòu)最基本的變化可以減少CPU的消耗,你可以省錢(qián),你可以買(mǎi)更便宜的CPU,除了錢(qián)的成本之外很多維護(hù)的成本、代碼維護(hù)量的成本都可以減少,革命性的變革。性能會(huì)上升,延時(shí)??降??,??是未來(lái)NVMe最大的革新點(diǎn)。最難的是如果把NVMe的block的protocol換成KV的protocol。未來(lái)在storage server,未來(lái)是不是會(huì)把更好的特性放上去,是不是有可能減少server數(shù)量,是不是有更激進(jìn)的想法,這個(gè)架構(gòu)會(huì)有很多演進(jìn)的方式和變種。
這是已經(jīng)在NVMe討論的大家比較關(guān)心的話題,多路徑,NVMe可以做(英文)意味著可能出現(xiàn)多個(gè)(英文),如何做到智能的選路,如何做到性能最好,NVMe標(biāo)準(zhǔn)組織都在討論。
大家比較關(guān)心的是IO Determinism,為什么要做IO Determinism,但是想要高速的可靠的穩(wěn)定的性能,可以做到99.9999%。出現(xiàn)了很多客戶在刷APP的時(shí)候發(fā)現(xiàn)延時(shí)會(huì)出現(xiàn)一些跳動(dòng),有時(shí)候很好有時(shí)候很不好,真正落實(shí)到標(biāo)準(zhǔn)落實(shí)到產(chǎn)品中如何解決這個(gè)問(wèn)題,大家想到的一點(diǎn)是如何做并行化。不要把一個(gè)SSD盤(pán)想成一個(gè)物理實(shí)體,它內(nèi)部有很多channl,真正想要的效果是把盤(pán)內(nèi)部的物理之間可以隔離的特性都做成邏輯單元,讓你在上層軟件的時(shí)候可以基于這些邏輯單元做并行的讀和寫(xiě),做并行的操作,減少串行的工作避免時(shí)延的出現(xiàn),達(dá)到你的目標(biāo)99.9999%。具體實(shí)驗(yàn)還有更復(fù)雜的,把時(shí)間窗設(shè)置成穩(wěn)定時(shí)延,這個(gè)很好理解,可以想象汽車,當(dāng)你的汽車在5千公里行駛以內(nèi)的時(shí)候,你這個(gè)時(shí)延是穩(wěn)定的,性能跟說(shuō)明書(shū)上一樣,當(dāng)汽車開(kāi)到4S店做保養(yǎng)換機(jī)油的時(shí)候,????沒(méi)有穩(wěn)定的時(shí)延,它的性能指標(biāo)和說(shuō)明書(shū)上說(shuō)的完全沒(méi)有關(guān)系。NVMe在(英文)完全借鑒了汽車保養(yǎng)的特性,在SSD盤(pán)或者SSD板里面設(shè)置了一個(gè)時(shí)間窗,這個(gè)時(shí)間窗是穩(wěn)定時(shí)延的模式,汽車在5千公里正常行駛過(guò)程中,這個(gè)階段的時(shí)延是非常穩(wěn)定的,跟99.9999%要求是一樣的。當(dāng)SSD盤(pán)需要做老化回收的時(shí)候會(huì)切換到非穩(wěn)定模式,可以理解為汽車在4S店保養(yǎng),這個(gè)階段性能是不穩(wěn)定的,在并發(fā)操作內(nèi)有一些物理資源處在穩(wěn)定時(shí)延有些處在非穩(wěn)定時(shí)延,通過(guò)這樣做到IO Determinism。
我的演講完了,謝謝大家。

