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


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


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



圖 1-9 XOR 的校驗原理


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


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



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


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


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



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


    1.6 RAID-4 等級


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


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



圖 1-12  RAID-4 圖解


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


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



圖 1-13 RAID-4 特點4


    1.7 RAID5 等級


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


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


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

分享到

多易

相關(guān)推薦