今天看到EMC網(wǎng)站上已經(jīng)給出了DSSD的產(chǎn)品定位蜘蛛圖。EMC認(rèn)為DSSD的時延和聚合性能最有優(yōu)勢,給了滿分。
DSSD D5作為第一代RSF(rack-scale flash)產(chǎn)品,是如何做到極致的時延和極高的性能的呢?而且還要保證企業(yè)級的可靠性,有別于其他NVMe PCIe SSD卡/盤?今天,我們從硬件和軟件以及數(shù)據(jù)保護(hù)三個方面來揭開DSSD的神秘面紗。
先看一下D5的前視圖。D5高5U,這也是D5名字的來源我們看到DSSD的LOGO下面就是一個控制模塊(CM),CM下面是36個閃存模塊(FM),F(xiàn)M下面是另外一個控制模塊(CM)。D5現(xiàn)在支持半框配置(18個FM)或者全框(36個FM)兩種配置。FM目前有2TB和4TB容量,未來會支持更大容量和3D TLC。每個FM上有512個NAND die。FM都是設(shè)計成雙PCIe端口,這個也是區(qū)別普通NVMe SSD(一般是單端口)的一個重要的方面。FM是可以熱插拔的。
我們再來看D5的后視圖。最上面是4個PSU,PSU下面是第一個IO模塊(IOM)。然后下面是5個風(fēng)扇,風(fēng)扇下面是另外一個IOM。每個IOM上面有4個12口的PCIe交換機。從相關(guān)的資料看,EMC明確提到FM是熱插拔的FRU(Field Replaceable Unit),其他電源、風(fēng)扇、CM、IOM只是FRU,沒有提熱插拔這個詞。因此,西瓜哥推測,這個版本除了FM外,其他還不支持熱插拔(現(xiàn)在普通存儲的這些部件都支持熱插拔,這有點不太符合常理,也許我推測不正確)。還有IOM上面有一個黃色的子卡,這個是服務(wù)模塊(SM),上面有管理用的USB口和網(wǎng)口,SM和IOM是一個FRU。
DSSD和主機連接是PCIe的方式。這個業(yè)界沒有標(biāo)準(zhǔn),因此EMC自己開發(fā)了一塊DSSD客戶端卡(大家可以理解為和FC HBA類似的一個東西)。這塊卡是兩端口,需要插在服務(wù)器的PCIe 3.0 x4的插槽上,目前只支持Linux(必須是物理機,不能跑在Hypervisor上)。客戶端卡連接D5目前通過EMC專用的銅纜連接,以后會支持AOC光纜。據(jù)說EMC把這種連接方式已經(jīng)提交給了NVMe標(biāo)準(zhǔn)化組織,希望變成一個標(biāo)準(zhǔn)。還有一點要注意,客戶端卡通過一個NTB(non-transparent bridge)來進(jìn)行PCIe的地址翻譯(地址表保存在CM里),這樣就把各個主機做了隔離,避免相互影響。
DSSD客戶端目前只能連接一個D5,而且要求必須同時連接到兩個CM上。為了冗余,服務(wù)器可以插2塊DSSD客戶端卡。DSSD采用了多路徑,而且兩個路徑都是active-active的,可以捆綁在一起,因此,除了負(fù)載均衡,性能也是翻倍的。
DSSD的FM前面說過,也是定制的,電源功耗高達(dá)60w,要比一般的PCIe閃存卡(受限于PCIe插槽,一般功耗只有25W)高得多,因此容量可以做得更大,性能也可以更高。
DSSD FM和其他采用SSD的存儲最大的不同還在于把SSD里面很多功能放到CM上實現(xiàn),做成全局的。也就是FM里面只有最基本的ECC和Vaulting掉電保護(hù)功能,其他的垃圾收集,F(xiàn)TL等等全部放到CM里實現(xiàn)。這個思路和我們以前講的SDF(軟件定義閃存)很類似,全局的FTL和GC,其效率必定更好,性能也更好。畢竟SSD里面ASIC的CPU的處理能力和內(nèi)存都是有限的。
每個IOM有48口對外連接主機,對內(nèi)有36口連接FM。也就是說帶寬是有收斂的。48口其實是4個12口的PCIe交換機組成(圖中寫的是Hub,西瓜哥懷疑寫錯了)。這個也是沒有辦法,現(xiàn)在48口的PCIe交換芯片好像還沒有吧。
DSSD的CM也是采用X86架構(gòu),上面運行的軟件叫Flood,洪水啊,O(∩_∩)O哈哈~。全局的垃圾收集和FTL,還有立體RAID都是CM來實現(xiàn)。特別要注意的是,CM上面并沒有數(shù)據(jù)的Cache,這個和傳統(tǒng)存儲的思路是完全不同的。CM接受主機寫過來的數(shù)據(jù)只是為了做RAID計算。主機的數(shù)據(jù)是通過PCIe的多播技術(shù)直接寫到CM上,采用DMA的方式。也就是數(shù)據(jù)的路徑是不經(jīng)過CM的,這也是保證做到如此低時延和高性能的原因??吹竭@里,大家是不是覺得有點像軟件定義存儲那樣控制平面和數(shù)據(jù)平面分離的趕腳?
D5采用了無源的中置背板的設(shè)計方式,就像很多數(shù)通設(shè)備或者刀片服務(wù)器一樣。
NVMe存儲協(xié)議是未來存儲的發(fā)展方向,EMC估計2年內(nèi)很多AFA產(chǎn)品都遷移到這個技術(shù),但EMC說現(xiàn)在DSSD已經(jīng)實現(xiàn)了業(yè)內(nèi)三個第一:第一個共享的NVMe存儲平臺,第一個從用戶空間直接可以訪問,第一個支持多路徑鏈路聚合、熱插拔、透明的切換和恢復(fù)。
看完硬件,我們來揭秘一下軟件Flood。Flood包括客戶端的驅(qū)動/API,還有CM上的各種功能,都叫FLOOD。
其實DSSD實際上是一個對象存儲。通過API,可以支持很多對象,如卷(類似根目錄),目錄,key-value,塊和文件。
支持塊設(shè)備的方式,可以用API,也可以用DSSD的塊設(shè)備驅(qū)動。用API時延可用做到100us,如果用塊驅(qū)動(好處是應(yīng)用可以不修改),雖然需要OS內(nèi)核參與,但還是跳過很多層次,時延可做到120us,也就是只多了20us。
最后我們來揭秘一下DSSD的數(shù)據(jù)保護(hù)技術(shù)。EMC一共列出了12點,我們挑幾個大家不常見的來展開說明一下。
一個是PCIe多播寫。主機寫數(shù)據(jù)的時候,同時寫到三個位置,一份到CM的DRAM里用做RAID計算,兩份到不同的FM的DRAM里。由于CM和FM里面都有DRAM,因此寫的速度是很快的。注意不是直接寫到flash die上。其實同時寫到兩個FM,主要也是為了可靠性,因為系統(tǒng)采用立體RAID,不是兩副本的方式,落盤時數(shù)據(jù)應(yīng)該會重組的,因為還有RAID的計算值。
CM可以直接實現(xiàn)閃存的物理控制。主要是NAND隨著使用時間的增長,其保持電子的能力就下降,因此電壓也會下降。如果不能調(diào)整傳感器的檢測值,那么數(shù)值都讀不出來了。而CM通過自動的閃存物理控制,提高電壓的敏感度,這樣就可以延長NAND的壽命。
垃圾收集由于是全局的,因此可以根據(jù)應(yīng)用特點,在空間和時間上進(jìn)行優(yōu)化,比如只回收有用的數(shù)據(jù),熱點數(shù)據(jù)?;厥眨菬狳c數(shù)據(jù)就不用老回收了,目標(biāo)就是減少寫放大,延長閃存壽命。當(dāng)然,熱點和非熱點區(qū)域經(jīng)常要對調(diào)一下,這樣磨損會比較均衡。
大家記得主機數(shù)據(jù)用多播的方式寫到CM和兩個FM的DRAM里,就告訴主機寫完了。因為FM里面有數(shù)據(jù)的Cache,因此,需要掉電保護(hù)。CM里面的數(shù)據(jù)雖然不需要保護(hù),但元數(shù)據(jù)如FTL肯定也是要的。
因為FTL是全局的,因為,DSSD實現(xiàn)的是動態(tài)的超供,靈活動態(tài)的超供的空間可以提高性能和在FM重構(gòu)時使用。
當(dāng)FM模塊故障更換后,DSSD自動重構(gòu)數(shù)據(jù)并寫到新的FM上。這個過程叫Resilvering(西瓜哥暫時沒有找到合適的翻譯,叫重新銀化?)。這個術(shù)語其實是從ZFS的Z-RAID來的,大家知道DSSD的創(chuàng)始人就是ZFS的發(fā)明者,因此,用這個術(shù)語或者部分ZFS的技術(shù)應(yīng)該是理所當(dāng)然的了。
最后再提一下DSSD的專利技術(shù)多維/Cubic RAID。目前版本實現(xiàn)了兩維,據(jù)說以后會做三維。從相關(guān)資料看,應(yīng)該是用軟件來計算校驗P和Q的值,畢竟現(xiàn)在新的CPU指令計算RAID 6的值還是很快的。
【學(xué)習(xí)心得】
1、DSSD是一種全新的存儲形態(tài),很多技術(shù)是以前我們沒有碰到過的。比如NVMeF,跨設(shè)備的DMA(但不是RDMA),PCIe多播等等,我們要用全新的視野來看這個產(chǎn)品。
2、DSSD的優(yōu)點明顯,缺點也很明顯。目前它和高端存儲定位和場景都是很不同的,未來也許會融合,但目前還不會正面沖突,這個和AFA不同。DSSD需要物理服務(wù)器,需要跑Linux,需要有PCIe 3.0的插槽(很多刀片服務(wù)器就用不了),需要應(yīng)用利用API做開發(fā)(塊設(shè)備驅(qū)動的方式和特定應(yīng)用的Plug-in除外)。因此,我們說它是一個性能大“怪”獸,不能用通用存儲的標(biāo)準(zhǔn)來看它。
3、以前WIKIBON把DSSD也看成SERVER SAN的范疇,但西瓜哥學(xué)習(xí)完技術(shù)原理后,覺得DSSD不應(yīng)該是。因為其沒有利用標(biāo)準(zhǔn)的服務(wù)器+軟件的方式來構(gòu)建存儲產(chǎn)品,而是全新的定制的硬件形態(tài),我覺得可以叫SERVER SAN。
4、NVMe作為一種新技術(shù)引入到共享存儲里面來,DSSD的實現(xiàn)思路和架構(gòu)值得后進(jìn)入的廠商借鑒。EMC目前已經(jīng)把DSSD的硬件連接規(guī)范和API提交給相應(yīng)組織,也希望成為業(yè)界的標(biāo)準(zhǔn)。
5、從上周的調(diào)查看,有18%的調(diào)查者反映目前的AFA滿足不了性能要求,需要DSSD,這個比例還是蠻高的。DSSD會不會像XtremIO一樣,成為一個明星產(chǎn)品,還得看EMC配套的銷售策略了。
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。