戴爾 Fuild Cache for SAN,在服務(wù)器閃存緩存與SAN陣列的集成方面可謂獨(dú)樹一幟。相信一些讀者對(duì)該技術(shù)已經(jīng)不陌生,除了那500萬(wàn)IOPS的Demo之外,網(wǎng)上也能找到相 關(guān)資料和分析的文章,如:《性能與ILM的平衡:服務(wù)器閃存緩存的思考》。今天我們想回顧一下Fuild Cache for SAN的獨(dú)特技術(shù)優(yōu)勢(shì),以及在流動(dòng)緩存背后的功臣——RDMA高速低延時(shí)網(wǎng)絡(luò)。
如果說(shuō)PCIe/ NVMe打通了主機(jī)內(nèi)部CPU與閃存之間通道的話,那么RDMA over InfiniBand或者RoCE則能夠有效改善跨節(jié)點(diǎn)的閃存訪問(wèn)性能。
Fuild Cache for SAN的
1SAN整合
除了戴爾Fuild Cache for SAN之外,具備分布式緩存一致性和RAC支持的寥寥無(wú)幾。
盡管有多家廠商都宣稱他們的服務(wù)器閃存緩存軟件,可以配合后端SAN存儲(chǔ)使用,但許多也標(biāo)明了只是單機(jī)讀緩存。
這 里要強(qiáng)調(diào)一下,早期的Server Flash Cache軟件通常不支持像Oracle RAC這樣的雙活(Active/Active)集群訪問(wèn),簡(jiǎn)單說(shuō)就是當(dāng)一臺(tái)服務(wù)器向后端共享存儲(chǔ)中寫入數(shù)據(jù)時(shí)會(huì)鎖定整個(gè)LUN。而Oracle RAC需要的是傳統(tǒng)SCSI-3規(guī)范的細(xì)粒度鎖機(jī)制,一個(gè)LUN上的不同LBA允許同時(shí)接受來(lái)自多個(gè)服務(wù)器的寫操作。
分布式緩存一致性解決的就是協(xié)同,或者說(shuō)數(shù)據(jù)一致性。如果由一臺(tái)服務(wù)器改寫了后端LUN內(nèi)的數(shù)據(jù),在另一臺(tái)服務(wù)器上Flash Cache內(nèi)也有對(duì)應(yīng)的數(shù)據(jù)塊,需要做過(guò)期處理,也就是說(shuō)要維護(hù)一個(gè)同步的緩存元數(shù)據(jù)索引。
Server Cache Pool——戴爾將Fuild Cache for SAN稱為緩存池,是因?yàn)橐慌_(tái)服務(wù)器閃存緩存中的數(shù)據(jù)可以供集群中別的服務(wù)器加速存儲(chǔ)訪問(wèn),而后者并不是必須要作為這個(gè)閃存緩存池的貢獻(xiàn)者。
2Server Cache Pool
戴爾將Fuild Cache for SAN稱為緩存池,是因?yàn)橐慌_(tái)服務(wù)器閃存緩存中的數(shù)據(jù)可以供集群中別的服務(wù)器加速存儲(chǔ)訪問(wèn),而后者并不是必須要作為這個(gè)閃存緩存池的貢獻(xiàn)者。
3異構(gòu)服務(wù)器訪問(wèn)
既然Fuild Cache for SAN網(wǎng)絡(luò)中不是每個(gè)服務(wù)器節(jié)點(diǎn)都需要配置閃存緩存(最少2個(gè)貢獻(xiàn)節(jié)點(diǎn)+1個(gè)仲裁節(jié)點(diǎn)),那么也就允許第三方服務(wù)器加入集群。
4Write-back(寫回)緩存支持
盡管一家戴爾友商曾表示將支持write back寫緩存,但直到去年我們也沒(méi)有看到這一功能的發(fā)布。
閃存一旦用于讀&寫緩存,和自動(dòng)分層存儲(chǔ)已經(jīng)有相似之處。只是數(shù)據(jù)是否最終要持久化到后端的問(wèn)題,因?yàn)檫@時(shí)閃存中的待寫入數(shù)據(jù)必須保證可靠性和高可用性。
這就涉及到本文的重點(diǎn)——RDMA網(wǎng)絡(luò)。為了緩存池中的全局訪問(wèn),還有把每臺(tái)服務(wù)器的閃存寫緩存鏡像到其它節(jié)點(diǎn)以實(shí)現(xiàn)冗余,最好能有一個(gè)低延遲的專用高速網(wǎng)絡(luò)。
5低延時(shí)專用互連網(wǎng)絡(luò)
戴 爾Fuild Cache for SAN需要配置專用的40Gb或者10Gb RoCE(RDMA over Coverge Ethernet)緩存通信網(wǎng)絡(luò),RoCE在相同速率下的性能/延時(shí)表現(xiàn)可以媲美InfiniBand。我們看到部分多控制器的高端存儲(chǔ)陣列,其節(jié)點(diǎn)間就 是用IB網(wǎng)絡(luò)互連,而戴爾Fuild Cache for SAN的閃存緩存池更加靠近服務(wù)器,取得更好的性能也在情理當(dāng)中。
延時(shí)大跳水:
如上圖,我們看到40GbE和10GbE交換網(wǎng)絡(luò)的物理延遲(當(dāng)然不包括TCP/IP)分別只有0.6和0.8微秒,RoCE(RDMA over Coverge Ethernet)的延遲也不到1微秒。這里我理解的應(yīng)該是主機(jī)到交換機(jī)。
直行何必繞彎——
來(lái) 自去年閃存峰會(huì)資料的這張圖,簡(jiǎn)明的解釋了RDMA over IB和RoCE的好處:從User層(用戶態(tài))繞過(guò)Kernel層(內(nèi)核態(tài)),直接走InfiniBand HCA或者RoCE網(wǎng)卡從網(wǎng)絡(luò)發(fā)送數(shù)據(jù);即從應(yīng)用的buffer緩沖,繞過(guò)了OS的接收和發(fā)送buffer,甚至網(wǎng)卡上都可以不再做buffer。當(dāng)然, 我們前面提到的另外一點(diǎn)——繞開(kāi)TCP/IP也是改善性能的重要因素。
從RNA內(nèi)存虛擬化到
上圖來(lái)自Mellanox 2011年的資料,Mellanox是最大的InfiniBand網(wǎng)絡(luò)設(shè)備制造商,也是RoCE的主要發(fā)起者。戴爾與Mellanox在高性能計(jì)算和存儲(chǔ)方面有著緊密的合作。
RNA 這家公司已于同年被戴爾收購(gòu),上面的對(duì)比數(shù)字是他們之前的MVX內(nèi)存虛擬化產(chǎn)品在RoCE和TCP/IP網(wǎng)絡(luò)下的延時(shí)對(duì)比。注意這里是應(yīng)用級(jí) Benchmark和Round Trip延時(shí),當(dāng)時(shí)使用的ConnectX-2是10Gb萬(wàn)兆網(wǎng)卡。從測(cè)試結(jié)果來(lái)看,RoCE延時(shí)只有TCP/IP網(wǎng)絡(luò)的1/3多一點(diǎn)。
值得一提的是,F(xiàn)uild Cache for SAN正是RNA的技術(shù)融入戴爾之后推出的產(chǎn)品,將RoCE高速網(wǎng)絡(luò)與PowerEdge服務(wù)器上ExpressFlash NVMe PCIe SSD的優(yōu)勢(shì)結(jié)合起來(lái),相得益彰。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。