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