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