存儲(chǔ)極客
這是一群存儲(chǔ)偏執(zhí)狂
為存儲(chǔ)而生,跟存儲(chǔ)死磕
各具獨(dú)家秘笈
有觀點(diǎn),有碰撞,有干貨
從2015年8月18起
做客存儲(chǔ)極客欄目
與你分享存儲(chǔ)里的那點(diǎn)事兒
最近業(yè)內(nèi)有本很火的書《軟件定義存儲(chǔ):原理、實(shí)踐與生態(tài)》,其主要作者葉毓睿(Peter Ye)先生現(xiàn)任VMware存儲(chǔ)架構(gòu)師,曾任職于EMC、Compellent和戴爾公司,在書中撰寫了包括VSAN在內(nèi)的多個(gè)VMware相關(guān)章節(jié),以及“內(nèi)存虛擬化與SDS及Dell Fluid Cache”。
從這個(gè)技術(shù)背景來看,我覺得書中或許可以做些進(jìn)一步的分析?比如VSAN與Dell SC(Compellent)之間有沒有共通之處?軟件定義存儲(chǔ)與傳統(tǒng)陣列之間有哪些互相借鑒等。而恰好我之前對這方面有過一點(diǎn)思考,在此整理下自己的心得,希望能拋磚引玉吧。
再談SSD緩存 vs. 自動(dòng)分層存儲(chǔ)
去年我們曾經(jīng)撰寫過《存儲(chǔ)極客:自動(dòng)分層存儲(chǔ) PK. SSD緩存》一文,算是個(gè)初步的討論。前不久又看到有同行朋友在評價(jià)孰優(yōu)孰劣,當(dāng)然技術(shù)只是一方面,有時(shí)也會(huì)存在商業(yè)立場的因素。本文我想更多從設(shè)計(jì)取舍的角度來談,每種技術(shù)都有其不足或者說代價(jià),只看對具體的用戶環(huán)境哪種更合適罷了。
首先以VSAN為例,在它的SSD+HDD混合存儲(chǔ)配置中,默認(rèn)的讀/寫緩存比例為7:3。其中SSD寫緩存也被稱為日志,進(jìn)入的數(shù)據(jù)除了被覆蓋寫入所合并的那些,最終都是要落到HDD層的。
自動(dòng)分層存儲(chǔ)則會(huì)有個(gè)優(yōu)先寫入位置,比如像Dell SC為了保證寫性能,會(huì)一直寫入高性能Tire1分層的RAID 10區(qū)域,然后再生成Replay(快照)后臺(tái)定期將數(shù)據(jù)轉(zhuǎn)存為RAID 5/6或者移動(dòng)到Tier2/3容量分層。
這里還是先討論SSD+HDD自動(dòng)分層,Dell SC是個(gè)讀寫分離的設(shè)計(jì),一旦數(shù)據(jù)“下沉”移動(dòng)到Tier2/3,再有讀操作訪問就要依賴所在分層的磁盤性能。為了進(jìn)一步實(shí)現(xiàn)冷熱數(shù)據(jù)自動(dòng)調(diào)度的智能,它還包含一個(gè)數(shù)據(jù)回遷的策略,也就是會(huì)長期統(tǒng)計(jì)頁面(數(shù)據(jù)塊)的活躍度。
表面上看SSD緩存的機(jī)制相對簡單,但也有不足之處——比如閃存容量不計(jì)入用戶總存儲(chǔ)空間,并且通常不能配置太大。自動(dòng)分層存儲(chǔ)在這些方面要好一些,而用戶在實(shí)踐中也有需要注意之處,特別是初次做配置應(yīng)該聽從專業(yè)人員的建議,這里也體現(xiàn)出存儲(chǔ)顧問經(jīng)驗(yàn)的重要性。
而到了全閃存時(shí)代,有人說不再需要分層存儲(chǔ)了,而我卻看到自動(dòng)分層的設(shè)計(jì)也可以因?yàn)锳ll-Flash而變得更加簡單高效。
VSAN和Dell SC全閃存殊途同歸?
也許有讀者朋友會(huì)問:一個(gè)是軟件定義的分布式存儲(chǔ),一個(gè)仍屬于傳統(tǒng)雙控陣列,它們之間有可比性嗎?
從前我也不這樣認(rèn)為,而在去年撰寫的《vForum隨筆:全閃存VSAN和Nimble CASL的創(chuàng)新》一文中,可以看出有些變化了。
VSAN的第一個(gè)版本隨同vSphere 5.5發(fā)布,從vSphere 6.0開始,新的VSAN正式支持全閃存配置。所有寫入數(shù)據(jù)一律進(jìn)入寫性能/壽命相對較高的緩存層SSD,然后逐漸“下沉”至相對廉價(jià)的容量層SSD;由于兩種SSD的讀性能并沒有明顯的差距,因此不再需要專門設(shè)計(jì)讀緩存,容量層的數(shù)據(jù)直接讀就好了。
講到這里,如果是對Dell SC系列存儲(chǔ)比較熟悉的朋友,估計(jì)也會(huì)有和我一樣的感覺,是不是比較相似呢?
上面這張圖,冬瓜哥在《淺析固態(tài)介質(zhì)在存儲(chǔ)系統(tǒng)中的應(yīng)用方式》一文中也曾引用,我在這里不做過多講述,有興趣的讀者可以點(diǎn)擊上述文章鏈接。
Compellent數(shù)據(jù)分級的精髓在于和Replay(快照)技術(shù)緊密集成。當(dāng)然Dell SC不只支持2個(gè)分層,在寫密集型 + 讀密集型SSD基礎(chǔ)上還可以加入磁盤來存儲(chǔ)更“冷”的數(shù)據(jù)。
根據(jù)上圖中的5種配置文件,在同一臺(tái)SC陣列當(dāng)中也可以混合使用不同的自動(dòng)分層存儲(chǔ)策略。比如第三種是比較常用的全閃存SLC+MLC(資料有點(diǎn)老了,現(xiàn)在的寫密集型SSD不一定都用SLC);而像Oracle redo log這樣的寫密集型數(shù)據(jù)采用第二種配置(或者全硬盤RAID 10)不做數(shù)據(jù)調(diào)度顯然更合適一些。
至于VSAN呢,我覺得更多考慮的是簡單易用,支持虛擬化環(huán)境中的大多數(shù)應(yīng)用即可,因此目前全閃存還只能分層。不過也有同行朋友看了我當(dāng)初寫的這些之后,認(rèn)為將來VSAN也可能支持“單一分層”的全閃存配置。
類似的情況還出現(xiàn)在Peter在《軟件定義存儲(chǔ):原理、實(shí)踐與生態(tài)》一書185頁所寫:“全閃存配置中的持久化層是SSD,被頻繁寫的數(shù)據(jù)(也即熱數(shù)據(jù))仍然停留在緩存層,而那些較少訪問的數(shù)據(jù)才會(huì)被刷進(jìn)持久化層(也即提供容量的SSD)。”
而就像我在《為什么說全閃存VMAX替代不了XtremIO?》一文中寫的,Dell SC全閃存分層的建議是每天業(yè)務(wù)不繁忙時(shí)段執(zhí)行一次數(shù)據(jù)遷移(時(shí)間和頻率可調(diào)),將寫密集型SSD分層中的數(shù)據(jù)盡量轉(zhuǎn)移到讀密集型SSD,從而保證第二天新的寫入獲得最好的性能。
這里我們可以看到全閃存陣列與大多數(shù)Server SAN/超融合存儲(chǔ)之間的設(shè)計(jì)理念有些不同。同樣是數(shù)據(jù)在不同存儲(chǔ)介質(zhì)之間的“刷盤”動(dòng)作,VSAN等的執(zhí)行策略不算積極,這樣在長時(shí)間持續(xù)寫入壓力后容易出現(xiàn)與后臺(tái)調(diào)度任務(wù)的性能爭用;而Dell SC則會(huì)盡可能避免這種情況,可以說各有側(cè)重吧。
重刪/壓縮時(shí)機(jī):再次不謀而合
隨著時(shí)間的發(fā)展,在《全閃存專享:VSAN 6.2重復(fù)數(shù)據(jù)刪除、糾刪碼淺析》一文中,我介紹過VSAN 6.2的“近線”重刪和壓縮設(shè)置在disk group這一級別,只在全閃存配置VSAN從緩存分層“下沉”數(shù)據(jù)到容量分層時(shí)執(zhí)行,并在重復(fù)數(shù)據(jù)刪除之后進(jìn)行壓縮。
這一點(diǎn),又讓我想起了Dell SC存儲(chǔ)的數(shù)據(jù)壓縮和重刪功能。
與戴爾SC存儲(chǔ)陣列相比,VSAN 6.2的數(shù)據(jù)縮減功能 只是相當(dāng)于圖中右上方這一種全閃存分層配置
作為一款“軟件定義”的雙控存儲(chǔ)陣列。戴爾在SCOS存儲(chǔ)軟件——Storage Center 6.7版本中引入數(shù)據(jù)壓縮:除了單層、RI(讀密集型)/ WI(寫密集型)SSD分層全閃存陣列之外,在全HDD陣列和混合陣列配置上也可以打開壓縮功能,如上圖。
而到了前幾個(gè)月推出的SCOS 7.0軟件版本,重復(fù)數(shù)據(jù)刪除也成為一個(gè)選項(xiàng)。即打開重刪時(shí)一定有壓縮,而壓縮則可以單獨(dú)開啟。
除了“智能重復(fù)數(shù)據(jù)刪除之外”,SCOS 7的增強(qiáng)特性中還包括Live Migrate – Federation(可以理解為建立在Live Volume雙活基礎(chǔ)上的存儲(chǔ)聯(lián)邦)、QoS和VVoLs;另外Dell Storage Manager統(tǒng)一管理平臺(tái)加入了SC(Compellent)和PS(EqualLogic)之間跨產(chǎn)品家族的雙向存儲(chǔ)復(fù)制,而不只是一次性遷移。
VSAN 6.2中的數(shù)據(jù)縮減特性,和戴爾SC陣列的增強(qiáng)型壓縮有些類似,都是通過與自動(dòng)分層存儲(chǔ)(Tier)/緩存分層(Cache)機(jī)制相結(jié)合,其重刪/壓縮動(dòng)作成為定期執(zhí)行的后臺(tái)任務(wù),從而有效避免了數(shù)據(jù)寫入高性能分層時(shí)的性能影響。
VSAN 6.2為什么只在全閃存配置上支持重刪和壓縮?除了閃存更需要提高利用率之外,我覺得這個(gè)問題從技術(shù)原理上不難回答:因?yàn)閭鹘y(tǒng)SSD+HDD的VSAN配置中閃存和硬盤的容量配比官方建議1:10,由于讀寫性能都比較依賴SSD,緩存中讀/寫緩存默認(rèn)比例又是7:3,此時(shí)SSD寫緩存只有大約卷容量的3%。一旦占滿導(dǎo)致數(shù)據(jù)向后落硬盤時(shí),如果加入重刪/壓縮很可能會(huì)影響到性能體驗(yàn)。
相比之下,Dell SC存儲(chǔ)的配置靈活性要大許多,不同分層的盤數(shù)、容量比例可以按需設(shè)計(jì),而且Tier1也是優(yōu)先保證寫入數(shù)據(jù)的。正如我以前表達(dá)過的,這些是產(chǎn)品定位和設(shè)計(jì)理念上的不同,沒有絕對的好壞之分。
總之,傳統(tǒng)集中式存儲(chǔ)也罷,分布式的軟件定義存儲(chǔ)也罷,為了應(yīng)對需求而采用類似的技術(shù)是很正常的。站在這個(gè)角度來就會(huì)發(fā)現(xiàn)它們之間存在一些有意思的聯(lián)系。