據(jù)說很久很久以前,L國王有個美麗的D公主(代表數(shù)據(jù)庫DB),特別喜歡吃西瓜果盤(代表主機看到的LUN),飯量驚人,一次可以吃2個。D公主吃水果有一個懶習慣,就如泰國人一樣,水果都是切成小塊(Extend)后拼成果盤(LUN),用牙簽吃。D公主還有一個小脾氣,這個果盤如果有一小塊是壞的,就整個果盤扔掉(代表數(shù)據(jù)丟失)。L國王特別寵愛D公主,找了EMC/IBM/HDS來做長工,專門負責做果盤。瓜地和宮殿有一段距離,他們每天都摘3個西瓜,2個用來吃,1個用來備份,萬一那個瓜壞了就補上(代表RAID 5)。就這樣,他們每天辛苦在宮殿和瓜地奔波,碰到壞瓜還得回去瓜地拿備瓜(重構(gòu)),非常辛苦。D公主一天天長大了,飯量也越來越大,瓜也越來越大。但問題來了,每次碰到壞瓜,他們?nèi)グ醾涔闲枰?0個小時,因為西瓜太沉了,路上走不快。D公主后來受不來了,讓L國王把他們撤了,換成了3PAR和HW,3PAR和HW比較聰明,他們想,為什么我到宮殿再切瓜呢,我可以每個瓜切成20大塊(Chunk),找20個人搬到宮殿后再切小塊(Extend)后拼成果盤(LUN)不就可以了嗎?到宮殿后如果發(fā)現(xiàn)瓜壞了,派人回來拿1小塊換上不就可以了嗎?這樣需要搬的瓜只有原來的1/20,瓜輕了,路上可以跑,因此就算瓜壞了,半小時也就換回來了。D公主很滿意,日子相安無事,直到有一天HW加班病倒了,而3PAR正好和HP談戀愛請假了,無奈找了個年輕人叫XIV做臨時監(jiān)工,這家伙比較浪費,每次都挑4個瓜,在瓜地全部切成小塊(Extend),找一群小孩直接送給宮殿。對于D公主當然好了,但每次也只能吃一半,另外一半就倒掉了,很是可惜。后來XIV由于長得漂亮,被IBM包養(yǎng),這是后話。
好來,故事講完了,大家知道RAID 2.0是怎么回事了吧?我來好好給大家講一講,剛才是講故事呢。
大家知道,傳統(tǒng)的RAID 5過程是這樣的:
選幾個硬盤—》做成RAID 5—》根據(jù)容量創(chuàng)建LUN—》映射給主機(為了方便,我們稱這個為RAID 1.0吧)
話說當時主流的高端廠商,EMC/IBM/HDS全是這個方案。這種方式就是如果有盤壞了,只能這個磁盤組的硬盤參與重構(gòu)。當時的硬盤一般都是幾十G,而且全部是FC磁盤,問題并不嚴重。
但是現(xiàn)在高端都引入了SATA磁盤,現(xiàn)在的西瓜,不對,是硬盤越來越大,因此,當一塊硬盤壞了,只有這幾塊硬盤參與重構(gòu),重構(gòu)的時間1TB需要10小時,如果是4TB的SATA盤,更加不可想象。
除了重構(gòu)時間外,RAID 1.0還有一個大問題,就是性能。一個LUN的讀寫只能在一個磁盤組進行,讓后面加入的SSD等新的介質(zhì)發(fā)揮不了作用。但EMC/IBM/HDS在RAID 1.0已經(jīng)積累了十幾二十年,RAID又是所有軟件的基礎(chǔ),他們輕易不敢重寫代碼。怎么辦?
有了,可以把多個RAID組再組成一個池,再切一次(條帶化):
選幾個硬盤—》做成RAID 5—》選多個RAID 5組成一個池—》切分為相等的小塊Extend—》選擇Extend組成LUN,映射給主機(為了方便,我們稱這個為RAID 1.5吧)
RAID 1.5很好地解決了性能的問題,因為一個LUN的讀寫同時跨越了很多的硬盤,而且這個LUN里面可以包含多個RAID組,也就可以有多種磁盤介質(zhì),可以做到自動分層存儲。但是,由于RAID組還是基于硬盤的,這塊硬盤壞了,只有一個RAID組的幾個硬盤參與重構(gòu),因此重構(gòu)速度依然和RAID 1.0一樣。
3PAR和華為,歷史包袱不大,因此采用塊的虛擬化技術(shù)RAID 2.0來解決這個問題(3PAR內(nèi)部叫FAST RAID)。RAID 2.0的思路就是,在做RAID前先切幾刀,把西瓜(別打了,玩游戲玩多了不行嗎),哦,是硬盤切成很多的相等大塊(Chuck),然后以Chunk為單位來做RAID 5(形成CKG),然后再把CKG切成更小的小塊(Extent),隨機或者按照一定規(guī)則抽取很多的Extend組成LUN,映射給主機。
選所有個硬盤—》全部切成做大塊Chuck—》以Chuck為單位做成RAID 5(CKG)—》把CKG切分為相等的小塊Extend—》選擇Extend組成LUN,映射給主機(這個就是RAID 2.0)
RAID 2.0由于RIAD的單位是大塊Chunk,因此當一個硬盤故障,和這個硬盤相關(guān)的MINI RAID組(CKG)牽涉的硬盤都參與重組,同樣的數(shù)據(jù)量,干活的人多了,肯定就快了。
這就是RAID 2.0的本質(zhì)。
一句話,如果基于硬盤來做RAID,就是RAID 1.0,如果基于硬盤的大塊Chunk來做RAID,就是RAID 2.0。
至于IBM XIV,他不做RAID,把所有硬盤全部切為1MB大小,利用偽隨機算法在不同的節(jié)點間保留2個拷貝(有點像RAID 10),因此硬盤故障恢復(fù)時間和性能和RAID 2.0是一樣的,只是容量利用率最多只有50%,因此我們就稱為"RAID 2.0-"把。至于華為為什么叫"RAID 2.0+",據(jù)說是基于RAID 2.0上有很多增值的功能,也不知道我的解釋是否正確。當然,華為的RAID 2.0比3PAR的切的硬盤大塊Chunk更小,因此靈活性和隨機分布性更好些。
不知道我這么一說,大家了解Raid 2.0沒有,了解了就轉(zhuǎn)發(fā)給其他需要了解的人吧。
化腐朽為神奇,千言萬語道不盡RAID 2.0
繼續(xù)分享RAID 2.0細節(jié)的東西
塊虛擬化和和LUN虛擬化:這兩個術(shù)語大家可能聽說過,一般來說,塊虛擬化就是指RAID 2.0這樣的技術(shù),而LUN虛擬化就是指昨天我們說的傳統(tǒng)廠商的RAID 1.5改良技術(shù);
和上層應(yīng)用的相關(guān)性:RAID技術(shù)其實和目前流行的自動分層存儲和自動精簡配置關(guān)系最大。我們來看一下HW HVS的RAID 2.0實現(xiàn):
這是華為HVS實現(xiàn)的RAID 2.0全景圖。大家發(fā)現(xiàn)沒有,比我們昨天說的RAID 2.0又多切了一刀Grain(谷粒),這個我們不妨叫為微刀Grain。經(jīng)過我對比分析總結(jié),我發(fā)現(xiàn)RAID 2.0是硬盤拿到后,先用大刀切成CHUNK,HW HVS是64M,而3PAR 10000是1G,這個CHUNK就是構(gòu)成RAID的基礎(chǔ);第二步就是用小刀切成小塊EXTEND,HW HVS最小可以做到256K,而3PAR 10000只能做到128M,這個EXTEND是分層存儲檢測和遷移的單位;最后要切一刀就是用匕首切成Grain(谷粒一樣細),HW HVS最小可以做到8K,而3PAR 10000是16K,這個是精簡配置分配的單位。當然,不是每個LUN都需要做自動精簡配置,因此如果是THICK LUN,也有叫FAT LUN,這一刀就不用挨了。從這個分析大家就可以看出,RAID 2.0確實是軟件功能基礎(chǔ)的基礎(chǔ),有了這個基礎(chǔ),上面的各種軟件功能才能更加高效和快速。類似EMC/IBM/HDS在傳統(tǒng)RAID基礎(chǔ)上改進的RAID 1.5,雖然能夠?qū)崿F(xiàn)類似的功能,但在資源的利用率和效率、靈活性等等就差很多。有些功能就不能在THIN LUN上面做或者只能在THIN LUN上面做,THIN的時候必須預(yù)留空間,不能像RAID 2.0一樣按需實時分配。
華為HVS對3PAR 10000的改進:這兩天很多人問這個問題,我也說一下我的理解。華為居然敢叫RAID 2.0+,這個”+“可不是白加上去的。
首先是更細的粒度。上面的分析大家也看到了,華為的3刀切的粒度都比3PAR的小。CHUNK粒度小的好處是重構(gòu)的數(shù)據(jù)量比較少,因為分配數(shù)據(jù)的時候可以知道那個CHUNK沒有數(shù)據(jù),不用重構(gòu),粒度小總數(shù)據(jù)量就少,比如只有64M數(shù)據(jù)的時候,華為只需要重構(gòu)一個64M的CHUNK,但3PAR需要重構(gòu)一個1G的CHUNK,數(shù)據(jù)差別還是比較大的。EXTEND粒度小在做熱點數(shù)據(jù)監(jiān)測和遷移的時候更加準確和高效,EXTEND過大可能把冷數(shù)據(jù)也遷移到SSD了,浪費容量。GRAIN粒度過大和過小都不合適,要和應(yīng)用匹配效率最高。但大家知道ORACLE常用8K作為I/O單位,因此HW針對ORACLE這種場景應(yīng)該比3PAR有更好的THIN效率和性能;
第二是華為的塊標簽技術(shù),這個好像3PAR沒有。華為RAID 2.0能夠把盤切為片后,再把每個片打上一個標簽(TAG),標簽標明此片的容量、性能、成本等QoS屬性,據(jù)此也就自然而然地使得HVS具備了面向不同業(yè)務(wù)、不同主機、不同應(yīng)用提供不同SLA響應(yīng)等級的能力。這才是RAID 2.0+中”+“的含義,這也是昨天HW的一位高人微信回復(fù)我才知道的。
從我的分享大家可能發(fā)現(xiàn),RIAD 2.0還是很神奇的,特別是RAID 2.0+,學起來真是一個頭八個大。希望我這兩個的分享讓你成為RAID 2.0高手。但我昨天總結(jié)的一句話還是對的:針對物理磁盤做RAID就是傳統(tǒng)的RAID 1.0,針對硬盤切片CHUNK做RAID就是RAID 2.0。
覺得我寫到不錯就分享給其他人吧,讓大家一塊成為RAID 2.0高手。
總的來說,大家都認可區(qū)分RAID 2.0和RAID 1.0的區(qū)別,也就是說,基于硬盤切片CHUNK來創(chuàng)建RAID,這個就是RAID 2.0;基于物理硬盤來創(chuàng)建RAID組,這個就是傳統(tǒng)的RAID。這個區(qū)別可能不是根本的,但可以幫助大家理解和辨別。
還有很多人混淆CHUNK,Extent,Grain的關(guān)系,不知道后面再切幾刀有啥用。我分析3PAR和HW的實現(xiàn),這里再給大家解釋一下。
CHUNK是創(chuàng)建RAID的單位,它的主要作用就是用來創(chuàng)建RAID組(CKG)。CKG是有屬性的,可以是RAID 5,RAID 1,RAID 6啦。我查閱各種文檔,3PAR高端的CHUNK(它叫CHUNKLET)粒度是1GB,而中端的粒度是256MB(今天微信公眾號“高端存儲知識”的訂閱量也是這個數(shù),哈)。而HW HVS是64MB。3PAR沒有看到說可以用戶可以調(diào)整這個數(shù)值,HW的我不清楚。按照我的理解,這個CHUNK和應(yīng)用關(guān)系不大,一般都無需調(diào)整(估計廠商要調(diào)整也是底層命令行來做,用戶應(yīng)該輕易不會去調(diào)整這個值的),就像切瓜器,每臺陣列選好了一個切瓜器,規(guī)格就定下來了,所有的西瓜,哦不對是硬盤都切成一樣的大小。當然,CHUNK也是硬盤失效重構(gòu)的最小單位。
至于Extent,這個一個可變的值。也就是用戶要在上面創(chuàng)建LUN,映射給某個主機。主機不同的應(yīng)用可能有不同的要求,如ORACLE,這個塊可以小些,如對視頻數(shù)據(jù),這個塊可以大些。我們以后說的分層存儲都是基于這個粒度,系統(tǒng)會檢查每個Extent的I/O情況,然后把熱數(shù)據(jù)遷移到SSD上,提升性能。
而Grain,這就不是必須的。如果這個LUN是Thin LUN,這一刀一般就是要挨的。挨著一刀就是和應(yīng)用每次I/O平均分配的數(shù)據(jù)量有關(guān),如果匹配,那么分配的效率是最高的。我詳細分析了3PAR的文檔,它系統(tǒng)后端設(shè)計的每個I/O是16K,因此,它理論上最小只能到16K了。
總結(jié)一下切西瓜刀法:切瓜器是隨高端陣列贈送的,因此規(guī)格就固定了。但用戶自己要想吃西瓜,估計還得拿把西瓜刀再切分成Extent,男同胞嘴大,喜歡切大塊吃,向我這樣的櫻桃小口(喂,又別扔臭雞蛋,再扔,我一口一個臭雞蛋....),我喜歡切小一些。如果家有BB,比較瘦小(thin),那么還需要用匕首再切成顆粒狀Grain,用牙簽去喂他。當然,不同的BB要求而已不同。
哎,不說了,口水都流了一地了。我們再來回答大家的幾個問題:
CHUNK\Extent\Grain的粒度越小越好嗎?這個有技術(shù)門檻嗎?
答:不是的。前面的分析也可以看到,后面兩刀的粒度和應(yīng)用密切相關(guān),也是用戶創(chuàng)建LUN的時候可以選擇調(diào)整的,而CHUNK主要和RAID的管理和重構(gòu)有關(guān)聯(lián),小的好處我昨天也提了。但我想事務(wù)總是有兩面性的,太小,管理的開銷必然大,我個人設(shè)想3PAR把高端的CHUNK定義得比中端大,就是由于高端要支持的硬盤更多,但3PAR目前高端的CPU還是老一代的CPU,中端的CPU已經(jīng)更新了。還有就是3PAR的內(nèi)存比HW HVS要少。這是我的猜想。這些粒度都沒有太多的技術(shù)門檻,應(yīng)該是每個廠商根據(jù)自己的硬件資源和軟件的算法選擇的一個最優(yōu)值而已;
華為HVS真的比3PAR好?3PAR真的不支持每個塊打標簽嗎?
答:這個昨天我收到最多雞蛋的地方,大家都說我有傾向。老實說,我也不知道3PAR是否支持塊打標簽,但3PAR有元數(shù)據(jù),也會記錄這些塊的屬性,這是必須的,因為后面你要做RAID,要做分層,你必須知道這些塊是SSD,還是SATA,在那個框里等等。只是HW做網(wǎng)絡(luò)出身的,而且是后做的,是否把MPLS那套思路拿來,標簽的屬性更加豐富,說不定還可以嵌套,哈哈?偟膩碚f,光從RAID 2.0的對比看,HW HVS畢竟是后來者,因此在粒度方面做得更靈活(至于實際的用處有多大,就是仁者見仁智者見智的事情了),而3PAR的優(yōu)勢應(yīng)該在ASIC上,它的RAID用ASIC做的,理論上速度會更快(因此也叫Fast RAID),3PAR曾經(jīng)和ORACLE以前做過一個測試,它的FAST RAID 5的性能可以做到基本和RAID 10持平(91%),3PAR經(jīng)常用來告訴用戶,用RAID 5就可以了,性能差不多,還省空間。但HW HVS雖然沒有ASIC做RAID加速,但畢竟是后發(fā)布的產(chǎn)品,可以利用更新的平臺和更快的CPU,因此整體上性能如何我暫時沒有拿到對比結(jié)果。至于應(yīng)用層的功能差別,以后我們再談。
HVS到底是啥縮寫?
有知情人士告訴我,HVS縮寫是hyper virtual storage,不再是榮耀。很抱歉,百度上搜索hyper virtual storage,看不到和HVS相關(guān)的結(jié)果。再次說明華為的宣傳是不夠的。還有RAID 2.0+這個名字,感覺有點俗氣,主要是搜索不好搜,這個小數(shù)點和+號一般都被搜索引擎過濾掉了,反正相關(guān)的文章也不多,如果叫UltraRAID,這種專業(yè)名稱就比較容易宣傳了。
RAID 2.0提升了性能和效率,可靠性如何?重構(gòu)速度真的比傳統(tǒng)RAID快20倍?
這個問題比較復(fù)雜,包括重構(gòu)時間,我搜集了很多的數(shù)據(jù)和資料,明天打算作為一個專題和大家分享。也是,我一個LUN的數(shù)據(jù)你給我打散到100塊盤上去了,萬一壞了兩塊盤,我的數(shù)據(jù)不是完了嗎?要知道RAID 2.0(包括fast RAID)如何解決這個問題,請看下一頁分解。
通過上述大家應(yīng)該基本掌握了RAID 2.0的原理。今天我們就來聊聊RAID 2.0的可靠性問題。
可靠性是一個非常復(fù)雜的問題,我不是這方面的專家,我只是從我收集的資料整理一下分享給大家。
可靠性和性能也經(jīng)常是矛盾的,作為用戶,有時需要平衡,這個是一個藝術(shù)問題,哈,你別不信,看完我今天的分析,估計你也有同感。
我們先從理論上分析一下RAID 2.0的可靠性。
大家知道,系統(tǒng)的可靠性=MTBF / ( MTBF + MTTR ) * 100%
RAID 2.0(3PAR叫FAST RAID),通過把數(shù)據(jù)分散到更多的磁盤,重構(gòu)時間縮短,MTTR應(yīng)該大大縮小了。但有一個問題,就是針對某一個LUN來說,由于數(shù)據(jù)分散到更多的盤,因此數(shù)據(jù)丟失的風險大大提高,即MTBF變大了。比如我采用傳統(tǒng)的RAID 5(3+1),4個盤同時壞兩個的概率是很小的,但如果用RAID 2.0, 假設(shè)這些數(shù)據(jù)分散到100個盤上,100個盤同時壞2個盤的概率大多了。雖然重構(gòu)速度很快,但雙盤失效的概率也提高了。那么到底重構(gòu)減低的風險是否能夠平衡掉雙盤失效帶來的風險呢?(什么,你一直想問這個問題,說明你入道了,很多童鞋是問不出這個問題來的。對RAID不了解的可以找度娘補習一下。老實說,我剛學習RAID 2.0的時候第一個問題就是這個,問了很多人,今天還未能完全解決)。
Markov模型是經(jīng)典的可靠性預(yù)計模型,采用Markov模型可以根據(jù)系統(tǒng)當前狀態(tài)及轉(zhuǎn)移條件,來預(yù)計系統(tǒng)的可靠性指標。
馬爾科夫是俄羅斯著名的數(shù)學家,計算公式復(fù)雜(我很佩服數(shù)學家,這么復(fù)雜的計算怎么算出來的),我想大家和我一樣都是俗人,不會自己去算了,對吧。好,我從非官方渠道拿到一份可靠性技術(shù)的白皮書,在這里第一時間分享給大家計算結(jié)果:
我來解讀一下這個結(jié)果。這個結(jié)果說明,從理論上來說,RAID 2.0系統(tǒng)比RAID 1.0系統(tǒng)丟失數(shù)據(jù)的風險要小很多。但是別急,這個是對整個系統(tǒng)來說的。也就是說,針對這個高端陣列的管理員,他覺得不錯,整個系統(tǒng)的可靠性提高了。但針對這個高端陣列的某個最終用戶(比如ERP系統(tǒng)這個應(yīng)用的IT人員帥鍋小L)來說,好像不是這么回事。小L只關(guān)心ERP的數(shù)據(jù),原來采用RAID 1.0,數(shù)據(jù)存放在5塊盤上,同時壞兩塊盤的概率比地震都小,現(xiàn)在你把小L的數(shù)據(jù)均衡分布到100塊盤上了,小L他晚上能睡著嗎?
我也在尋求這個答案,谷歌和度娘都找不到答案。有可靠性專家和我說,其實,這種情況下RAID 2.0的可靠性并不比RAID 1.0有優(yōu)勢,對于傳統(tǒng)RAID和RAID2.0,發(fā)生數(shù)據(jù)丟失的概率和丟失的數(shù)據(jù)量均近似有“隨著系統(tǒng)盤數(shù)和硬盤容量的增加而成比例增大”(因此,性能夠用就好,西瓜池也不要搞太大了)。雖然出現(xiàn)故障丟失的數(shù)據(jù)量要比RAID 1.0少,這對文件系統(tǒng)和歸檔來說問題不大,但對于數(shù)據(jù)庫來說,丟一點都不行。因此,重構(gòu)速度雖然快了,半小時搞定,但萬一半小時內(nèi)再壞第二塊盤怎么辦?用RAID 10或者RAID 6,或者做容災(zāi)。對頭,可靠性要匹配你的需求,這個世界上沒有完全可靠的東西,包括愛情,哈。
注意:上面的分析沒有考慮RAID 1.0重構(gòu)負載重可能導(dǎo)致的加快硬盤過勞死的風險,因為這個沒法算。
RAID 10和RAID 6哪個更可靠?
大家知道,RAID 6最多可以壞任意兩塊盤數(shù)據(jù)不丟失,RAID 10可能壞一半的盤數(shù)據(jù)也可能不會丟失。那個的可靠性高?我估計80%以上的人認為是RAID 10可靠,如果你也是這么認為的,請馬上回復(fù)微信告訴我,我看看我的判斷對不對。其實我也和你們一樣,我一直認為RAID 10更可靠,直到某天一個可靠性專家給我一份材料,IBM的紅皮書,圣經(jīng)啊。在IBM的一本DS5000的紅皮書里,IBM經(jīng)過計算,結(jié)論就是RAID 6的可靠性最高,其次才是RAID 10,最差是RAID 5。
但你知道為什么現(xiàn)在無數(shù)的數(shù)據(jù)庫都推薦用RAID 10了嗎?因為性能。RAID 10的讀寫性能好很多。我說性能和可靠性的平衡是一個藝術(shù),這回你相信了吧?
網(wǎng)上一直有傳說說IBM XIV容易丟數(shù)據(jù),我一直不信,現(xiàn)在想想,信了。為什么呢?它全部用SATA盤(現(xiàn)在它也叫SAS盤,其實是假的,是NL-SAS,也就是SAS接口,SATA的盤體),采用偽隨機算法把數(shù)據(jù)以1M大小的CHUNK平均分布到所有的磁盤上。SATA盤的可靠性本來就比較差,你分布到180塊盤,就算你重構(gòu)速度塊,同時壞2塊盤必然會造成數(shù)據(jù)丟失(因為肯定有某1個CHUNK就在這兩塊盤上)。
對于RAID 2.0來說,已經(jīng)好多了,RAID可以選擇RAID 6。對于傳統(tǒng)的高端陣列廠商IBM DS8000/EMC/HDS,他們由于歷史原因,底層代碼不能變,還是用傳統(tǒng)的RAID,但為了實現(xiàn)自動分層和性能不變,必須要直接切第二刀Extend,對不對? 但在這種RAID 1.5的改良對可靠性更加是個噩夢,我們來欣賞一下IBM DS8000的紅皮書里面的描述:
看到?jīng)]有,由于DS8000的第二到必須在存儲池里面切,而這個存儲池底層是由多個傳統(tǒng)的RAID組(RANK)組成,因此,如果一個RAID組失效,一個池的數(shù)據(jù)都丟失了。因此,你害怕丟失,請容災(zāi)。為了控制這個,我記得DS8000一個pool下最多放4個RAID組,而HDS直接建議用RAID 6。你看看,RAID 1.5限制是否很多,RAID 2.0真正從底層解決這些問題就好多了。再一次說明,可靠性和性能功能的平衡,真是一個藝術(shù)活。
最后,我們再談一下重構(gòu)時間。
先說一下我收集到的各個廠商宣傳的數(shù)據(jù):
HW:1TB重構(gòu)時間30分鐘,比傳統(tǒng)RAID需要10個小時快20倍;
IBM XIV:1TB重構(gòu)時間30分鐘;
3PAR:在老的膠片上寫的是重構(gòu)速度快2倍;
我喜歡刨根問底,我們來分析一下:大家知道,7200RPM的SATA盤寫的帶寬大約115MB/s,因此,如果采用RAID 1.0,理論上需要2.5小時寫1TB的數(shù)據(jù)。因為重構(gòu)的時候只能寫一個熱備盤,這是瓶頸。但一般的系統(tǒng)都是有負載的,重構(gòu)的優(yōu)先級一般都是最低的,因為用戶要保證業(yè)務(wù)的運行,因此,一般的重構(gòu)時間基本都是理論時間的2-5倍。因此,如果RAID 2.0參與的盤很多,那個30分鐘是可以達到的。而如果傳統(tǒng)的RAID 1.0有較高的負載,重構(gòu)需要10個小時也是正常的。因此,HW的宣傳雖然稍微有點夸大,但基本屬實。最關(guān)鍵就是RAID 2.0重構(gòu)的時候?qū)I(yè)務(wù)基本沒有影響,因為沒有熱點盤。而RAID 1.0重構(gòu),對業(yè)務(wù)的影響是巨大的,反過來也影響到重構(gòu)的速度。
為了驗證我的想法,我再從互聯(lián)網(wǎng)上找一下3PAR的用戶發(fā)布的重構(gòu)數(shù)據(jù)。
http://storagemojo.com/2010/02/27/does-raid-6-stops-working-in-2019/
這個用戶分享了采用3PAR的fast RAID,SATA盤重構(gòu)時間只化了4分鐘(這個發(fā)揮了RAID 2.0的最大好處,只重構(gòu)用過的CHUNK,而不用整盤重構(gòu),估計數(shù)據(jù)量比較小),而原來采用老的陣列,重構(gòu)時間是24小時(SATA盤)和4-6小時(FC盤)。我也看到另外一個用戶說說他采用3PAR的陣列,重構(gòu)750GB的數(shù)據(jù)用了3個小時(業(yè)務(wù)負載特別重),不過對業(yè)務(wù)性能沒有任何影響(怪不到3PAR宣稱它是唯一一個可以在業(yè)務(wù)期間換盤的高端存儲廠商,不過現(xiàn)在HW HVS把它的唯一去掉了,呵呵)。這說明重構(gòu)時間也是一個藝術(shù)活,和數(shù)據(jù)量和業(yè)務(wù)負載,硬件特性等等都有關(guān)系。
最后分享一個我想了很長時間才想明白的事情,為什么RAID 2.0的重構(gòu)的總數(shù)據(jù)量少?RAID 1.0也不是全盤重構(gòu)的啊?(我估計你們肯定也想不明白)。后來在我上周苦練切西瓜刀法后恍然大悟,RAID 1.0能夠感知的是LUN,也就是說,從一個RAID組里劃分出LUN后,雖然主機還沒有寫任何東西,但是系統(tǒng)不知道,因此重構(gòu)的時候都重構(gòu)了,一般陣列初始化的時候,肯定把LUN都劃了,因此相當于整盤重構(gòu)了。但RAID 2.0劃分為CHUNK,每個CHUNK上都有標簽,沒有分配的CHUNK,或者分配了沒有被寫過的CHUNK系統(tǒng)都清楚,當然只會重構(gòu)有數(shù)據(jù)的CHUNK了,而不是整個LUN。
最后問大家一個問題,采用哪種RAID級別,RAID 2.0相比RAID 1.0重構(gòu)時間提升最大?哈哈,RAID 10。假設(shè)不考慮做奇偶校驗的時間,所有的RAID 1.0的重構(gòu)時間是一樣的,因為只能同時寫1塊熱備盤,瓶頸在熱備盤上。但采用RAID 2.0后,瓶頸不在寫盤上了,RAID 5和RAID 6多了很多讀數(shù)據(jù)的動作,而RAID 10就不用了,因此重構(gòu)的速度提升是最明顯的。
通過這些分析,大家估計得出的結(jié)論和我一樣,RAID 2.0確實是一個顛覆性的技術(shù),優(yōu)點很多,而且有出色的性能和不遜于傳統(tǒng)RAID的可靠性(帶來業(yè)務(wù)的靈活性我們后面還會談到),并且業(yè)界采用了十幾年(3PAR 1999年就用了),應(yīng)該是一個經(jīng)過市場檢驗的RAID方法,應(yīng)該也是高端存儲以后的發(fā)展方向。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標題:一句話說清RAID 2.0
本文網(wǎng)址:http://www.oesoe.com/html/consultation/10839610625.html