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