Parallel transfer with parity (并行傳輸及校驗(yàn))


    RAID 2 等級(jí)的缺點(diǎn)相信大家已經(jīng)很明白了,雖然能進(jìn)行即時(shí)的ECC,但成本極為昂貴。為此,一種更為先進(jìn)的即時(shí)ECC 的RAID 等級(jí)誕生,這就是RAID 3。


    RAID 3 是在RAID 2 基礎(chǔ)上發(fā)展而來的,主要的變化是用相對(duì)簡單的異或邏輯運(yùn)算(XOR, eXclusive OR )校驗(yàn)代替了相對(duì)復(fù)雜的漢明碼校驗(yàn),從而也大幅降低了成本。XOR 的校驗(yàn)原理如下圖1-9:



圖 1-9 XOR 的校驗(yàn)原理


    這里的A 與B 值就代表了兩個(gè)位,從中可以發(fā)現(xiàn),A 與B 一樣時(shí),XOR 結(jié)果為0,A 與B 不一樣時(shí),XOR 結(jié)果就是1,而且知道XOR 結(jié)果和A 與B 中的任何一個(gè)數(shù)值,就可以反推出另一個(gè)數(shù)值。比如A 為1,XOR 結(jié)果為1,那么B 肯定為0,如果XOR 結(jié)果為0,那么B 肯定為1。這就是XOR 編碼與校驗(yàn)的基本原理。


    RAID 3 的結(jié)構(gòu)圖如下:



圖 1-10 RAID-3 結(jié)構(gòu)圖解


    從圖中可以發(fā)現(xiàn),校驗(yàn)盤只有一個(gè),而數(shù)據(jù)與RAID 0 一樣是分成條帶(Stripe )存入數(shù)據(jù)陣列中,這個(gè)條帶的深度的單位為字節(jié)而不再是bit 了。在數(shù)據(jù)存入時(shí),數(shù)據(jù)陣列中處于同一等級(jí)的條帶的XOR 校驗(yàn)編碼被即時(shí)寫在校驗(yàn)盤相應(yīng)的位置,所以彼此不會(huì)干擾混亂。讀取時(shí),則在調(diào)出條帶的同時(shí)檢查校驗(yàn)盤中相應(yīng)的XOR 編碼,進(jìn)行即時(shí)的ECC。由于在讀寫時(shí)與RAID 0 很相似,所以RAID 3 具有很高的數(shù)據(jù)傳輸效率。


    RAID 3 在RAID 2 基礎(chǔ)上成功地進(jìn)行結(jié)構(gòu)與運(yùn)算的簡化,曾受到廣泛的歡迎,并大量應(yīng)用。直到更為先進(jìn)高效的RAID 5 出現(xiàn)后,RAID 3 才開始慢慢退出市場(chǎng)。下面讓存儲(chǔ)工程師總結(jié)一下RAID 3 的特點(diǎn):



注:主軸同步是指陣列中所有硬盤的主軸馬達(dá)同步
圖1-11 RAID 3 的特點(diǎn)


    1.6 RAID-4 等級(jí)


    Independent Data disks with shared Parity disk (獨(dú)立的數(shù)據(jù)硬盤與共享的校驗(yàn)硬盤)


    RAID 3 英文定義是Parallel transfer with parity ,即并行傳輸及校驗(yàn)。與之相比,RAID 4 則是一種相對(duì)獨(dú)立的形式,這也是它與RAID 3 的最大不同。



圖 1-12  RAID-4 圖解


    與RAID 3 相比,存儲(chǔ)工程師發(fā)現(xiàn)關(guān)鍵之處是把條帶改成了“塊”。即RAID 4 是按數(shù)據(jù)塊為單位存儲(chǔ)的,那么數(shù)據(jù)塊應(yīng)該怎么理解呢?簡單的話,一個(gè)數(shù)據(jù)塊是一個(gè)完整的數(shù)據(jù)集合,比如一個(gè)文件就是一個(gè)典型的數(shù)據(jù)塊。RAID 4 這樣按塊存儲(chǔ)可以保證塊的完整,不受因分條帶存儲(chǔ)在其他硬盤上而可能產(chǎn)生的不利影響(比如當(dāng)其他多個(gè)硬盤損壞時(shí),數(shù)據(jù)就完了)。


    不過,在不同硬盤上的同級(jí)數(shù)據(jù)塊也都通過XOR 進(jìn)行校驗(yàn),結(jié)果保存在單獨(dú)的校驗(yàn)盤。所謂同級(jí)的概念就是指在每個(gè)硬盤中同一柱面同一扇區(qū)位置的數(shù)據(jù)算是同級(jí)。在寫入時(shí),RAID 就是按這個(gè)方法把各硬盤上同級(jí)數(shù)據(jù)的校驗(yàn)統(tǒng)一寫入校驗(yàn)盤,等讀取時(shí)再即時(shí)進(jìn)行校驗(yàn)。因此即使是當(dāng)前硬盤上的數(shù)據(jù)塊損壞,也可以通過XOR 校驗(yàn)值和其他硬盤上的同級(jí)數(shù)據(jù)進(jìn)行恢復(fù)。由于RAID 4 在寫入時(shí)要等一個(gè)硬盤寫完后才能寫一下個(gè),并且還要寫入校驗(yàn)數(shù)據(jù)所以寫入效率比較差,讀取時(shí)也是一個(gè)硬盤一個(gè)硬盤的讀,但校驗(yàn)迅速,所以相對(duì)速度更快??傊琑AID 并不為速度而設(shè)計(jì)。下面存儲(chǔ)工程師總結(jié)一下RAID 4 的特點(diǎn):



圖 1-13 RAID-4 特點(diǎn)4


    1.7 RAID5 等級(jí)


    RAID5 和RAID4 相似但避免了RAID4 的瓶頸,方法是不用校驗(yàn)磁盤而將校驗(yàn)數(shù)據(jù)以循環(huán)的方式放在每一個(gè)磁盤中,RAID5 的控制比較復(fù)雜,尤其是利用硬件對(duì)磁盤陣列的控制,因?yàn)檫@種方式的應(yīng)用比其他的RAID level 要掌握更多的事情,有更多的輸出/入需求,既要速度快,又要處理數(shù)據(jù),計(jì)算校驗(yàn)值,做錯(cuò)誤校正等,所以價(jià)格較高,其應(yīng)用最好是OLTP ,至于用于大型文件,不見得有最佳的性能。


    RAID5 在不停機(jī)及容錯(cuò)的表現(xiàn)都很好,但如有磁盤故障,對(duì)性能的影響較大,大容量的快取內(nèi)存有助于維持性能,但在OLTP 的應(yīng)用上,因?yàn)槊恳还P數(shù)據(jù)或記錄(record )都很小,對(duì)磁盤的存取頻繁,故有一定程度的影響。某一磁盤故障時(shí),讀取該磁盤的數(shù)據(jù)需把共用同一校驗(yàn)值分段的所有數(shù)據(jù)及校驗(yàn)值讀出來,再把故障磁盤的數(shù)據(jù)計(jì)算出來;寫入時(shí),除了要重覆讀取的程序外,還要再做校驗(yàn)值的計(jì)算,然后寫入更新的數(shù)據(jù)及校驗(yàn)值;等換上新的磁盤,系統(tǒng)要計(jì)算整個(gè)磁盤陣列的數(shù)據(jù)以回復(fù)故障磁盤的數(shù)據(jù),時(shí)間要很長,如系統(tǒng)的工作負(fù)載很重的話,有很多輸出/入的需求在排隊(duì)等候時(shí),會(huì)把系統(tǒng)的性能拉下來。但如使用硬件磁盤陣列的話,其性能就可以得到大幅度的改進(jìn),因?yàn)橛布疟P陣列如Arena 系列本身有內(nèi)置的CPU 與主機(jī)系統(tǒng)并行運(yùn)作,所有存取磁盤的輸出入工作都在磁盤陣列本身完成,不花費(fèi)主機(jī)的時(shí)間,配合磁盤陣列的快取內(nèi)存的使用,可以提高系統(tǒng)的整體性能,而優(yōu)越的SCSI 控制更能增加數(shù)據(jù)的傳輸速率,即使在磁盤故障的情況下,主機(jī)系統(tǒng)的性能也不會(huì)有明顯的降低。RAID5 要做的事情太多,所以價(jià)格較貴,不適于小系統(tǒng),但如果是大系統(tǒng)使用大的磁盤陣列的話,RAID5 卻是最便宜的方案。這一點(diǎn)后續(xù)章節(jié)將詳盡介紹。


    本文版權(quán)歸作者及存儲(chǔ)在線所有,如需轉(zhuǎn)載,請(qǐng)與本站聯(lián)系。

分享到

多易

相關(guān)推薦