引用自張委在2015中國數(shù)據(jù)加速峰會上的演講資料,以下同
如上圖,在外部存儲陣列中使用閃存,其性能會受制于存儲網(wǎng)絡(luò)瓶頸,此外還有RAID保護、陣列本地管理等方面的抵消。因此,最終的服務(wù)器實際訪問性能與SSD理論計算性能的差距很大。
如何更好地發(fā)揮閃存性能?Fluid Cache for SAN不只是把SSD/PCIe閃存卡放到服務(wù)器中那么簡單。在存儲介質(zhì)I/O上,它利用了高效的NVMe協(xié)議;集群互連網(wǎng)絡(luò)目前采用10GbE或者40GbE(未來換用100GbE沒有難度);在以太網(wǎng)上的RDMA傳輸還能夠?qū)崿F(xiàn)跨節(jié)點直接內(nèi)存訪問,避免用戶態(tài)-內(nèi)核態(tài)轉(zhuǎn)換所造成的性能損失。
正如上面的架構(gòu)圖,F(xiàn)luid Cache集群能夠從3個節(jié)點擴展到8個節(jié)點,其中“Cache貢獻者服務(wù)器”限定為戴爾品牌服務(wù)器,而訪問高速緩存池的“Cache客戶端服務(wù)器”則不限品牌。
關(guān)于“與Compellent存儲完美集成”這一點包括2個方面:和SC8000/9000陣列在Enterprise Manager界面中一體化管理;還有快照整合,也就是在陣列生成Replay回放點之前,服務(wù)器端閃存中的寫Cache數(shù)據(jù)將會刷回到后端陣列,以保證數(shù)據(jù)一致性。
Fluid Cache for SAN與其它服務(wù)器閃存緩存方案相比,重要的不同點在于與陣列的無縫整合。它的緩存層對用戶訪問來說是透明的。
這里總結(jié)了Fluid Cache for SAN的三大優(yōu)勢。
1.多個服務(wù)器上的PCIe/NVMe SSD可以整合為一個閃存池。
2.不只加速讀,而且還有寫緩存,也就是說寫策略為write-back而不是write-through。為了保證高可用,避免單點故障,寫緩存中的數(shù)據(jù)會在服務(wù)器節(jié)點間鏡像存儲。
3.SSD高速閃存模塊為2.5英寸,從機箱前端熱插拔維護,戴爾是業(yè)界第一家將SFF-8639的規(guī)格引入到服務(wù)器上的。
讓我們來看一下Fluid Cache for SAN的擴展性,當(dāng)OLTP測試環(huán)境從3節(jié)點架構(gòu)增加到8節(jié)點,并發(fā)用戶數(shù)提高至7.4倍,每秒交易數(shù)增加到6.4倍,同時平均響應(yīng)時間下降87%達到6ms。為什么延時也會下降呢?我覺得可能是該用例在3節(jié)點的緩存池空間只能容納下一部分熱數(shù)據(jù),由此產(chǎn)生的后端陣列訪問限制了性能。
混合分層
讓不同閃存最大發(fā)揮價值
接下來我們再看看戴爾新發(fā)布的旗艦級SC9000陣列、經(jīng)濟型全閃存陣列,以及獨特的混合全閃存配置。
關(guān)于存儲系統(tǒng)的硬件形態(tài),一直有“控制器”和“服務(wù)器”這兩種路線之爭,在以往,前者在以往“控制器”多代指RISC專用架構(gòu),而EMC、NetApp等則是后者——開放架構(gòu)居多。早在10年前,一位在存儲圈已經(jīng)很資深的朋友曾經(jīng)對我說,國內(nèi)有些“迷信”控制器架構(gòu),而服務(wù)器架構(gòu)在國外更受歡迎。
上圖引用自《戴爾SCv2000:入門級陣列硬件設(shè)計功力》一文,中端的SC4020在硬件外型上也與之相仿。
后來,隨著IA架構(gòu)CPU的性能不斷加強,以及在低功耗/嵌入式領(lǐng)域的發(fā)力,“控制器”和“服務(wù)器”的界限已經(jīng)模糊。比如上圖中的SBB結(jié)構(gòu),里面放x86還是RISC CPU,從外面已經(jīng)看不出來。這種小尺寸、盤/控一體機箱的限制是,CPU的功耗不能太高(不能超過50W)、內(nèi)存容量和接口擴展能力也都有限。
相比之下,像戴爾SC8000/9000的這類高端控制器,可以采用雙路多核高主頻Intel Xeon處理器(存儲的應(yīng)用特點決定了頻率比核心數(shù)更重要),支持較大的內(nèi)存和較多的I/O擴展卡。在今天,“存儲即軟件”更大程度上決定了不同品牌陣列之間的差異性,而出現(xiàn)在某些采購招標(biāo)參數(shù)中的“控制器架構(gòu)”、“非x86 CPU”等,并非是為用戶考慮,而只不過是一種商業(yè)手段罷了。
從另一個方面來看,同樣在2個控制器下,SC8000/9000支持多達960個驅(qū)動器,SCv2000和SC4020不超過192個。相應(yīng)地,它們基于各自定位,在性能、軟件功能上也有所不同,比如只有SC4020及以上型號支持跨不同類型驅(qū)動器的自動分層存儲。
戴爾除了率先推出“重新定義存儲經(jīng)濟性”的TLC 3D NAND企業(yè)級SSD的全閃存陣列之外,還將多年來的存儲技術(shù)精華——讀寫分離自動分層存儲技術(shù)引入全閃存配置。其具體技術(shù)特點我們在《向Gartner全閃存魔力象限說“不”》一文中有過介紹,在這里就不詳細展開了。
總的來說,這種閃存優(yōu)化的自動分層,能夠讓來自主機的寫操作永遠寫入高耐久度/性能的SLC或者eMLC閃存,廉價的MLC或者TLC分層則充分發(fā)揮其讀性能以及容量(性價比)優(yōu)勢。在不顯著提高成本的情況下,兼顧了用戶對“有一定比例寫操作”的需求。
服務(wù)器端
緩存、全閃存陣列怎么選?
現(xiàn)在到了方案設(shè)計討論部分。
首先,F(xiàn)luid Cache for SAN有點像將陣列中最上層閃存移動到服務(wù)器,至少實現(xiàn)的功能類似,當(dāng)然性能肯定是Fluid Cache更好。
那么,如果使用了Fluid Cache for SAN,后端還需要用閃存,或者分層存儲嗎?
這里面的關(guān)鍵點在于,有沒有相對固定的熱數(shù)據(jù)集,因為主要是未命中的讀I/O會直接訪問后端陣列。我個人的思路是:
1、如果是新購系統(tǒng),SSD/磁盤的分層不建議與Fluid Cache混用;
2、如果絕大多數(shù)讀I/O都能夠在服務(wù)器閃存命中的話,后端用全磁盤即可;
3、如果讀的范圍較為分散且隨機,此時后端可以考慮用TLC一類的廉價全閃存方案,F(xiàn)luid Cache層主要保證寫入速度。
以上的簡要分析,希望對大家有參考意義。
流動數(shù)據(jù)架構(gòu)4.0
Live Volume不只是復(fù)制保護
最后我再簡單談?wù)劥鳡柕牧鲃訑?shù)據(jù)架構(gòu)4.0。上圖中“T1存儲內(nèi)部”和“Fluid Cache for SAN”無需再交待;“T0服務(wù)器內(nèi)部”緩存方案用于加速本地硬盤,無法在服務(wù)器故障時提供高可用性;最后是陣列之間流動的Live Volume,作為一個可以實現(xiàn)高可用和容災(zāi)的技術(shù),大家是否關(guān)心它有哪些超越傳統(tǒng)同步/異步復(fù)制的地方?
關(guān)于Live Volume,我們在《深入DellWorld2015:SC9000存儲軟硬件更新解密》一文中,介紹了最新SCOS 6.7版本支持的自動切換與VMware vMSC(vSphere Metro Storage Cluster)認(rèn)證。上圖引用自戴爾存儲顧問李英文的一次演講資料,主要介紹Live Volume的另一個關(guān)鍵點。
如果是站點級故障,應(yīng)用服務(wù)器和數(shù)據(jù)存儲一起切換是一種情形。另一種情況,是正在運行的本地/遠程數(shù)據(jù)中心之間遷移工作負(fù)載。比如對于虛擬機遷移,希望底層看到的是同一個共享存儲,也就是所謂的“雙活”。按照傳統(tǒng)陣列復(fù)制的方式,控制器和盤同時切換至遠程數(shù)據(jù)中心,會有一個時間上的中斷(少則數(shù)秒);而戴爾Live Volume還支持另一種方式——先切換控制器,臨時透過遠程控制器訪問本地陣列中的數(shù)據(jù),再依靠Replay和同步技術(shù)將兩端數(shù)據(jù)追平。