RAID6和Reed-Solomon編碼
筆者本來想寫成“李德-所羅門編碼”,但那樣就不方便大家一邊看帖子一邊google了。
Reed-Solomon編碼是通訊領(lǐng)域中經(jīng)常碰到的一個算法,已經(jīng)有15年以上的歷史了。
其實很多校驗算法都是通訊領(lǐng)域最先研究出來,然后才應(yīng)用到其他領(lǐng)域的。前面說到的XOR算法對一組數(shù)據(jù)只能產(chǎn)生一個校驗,搞通訊的工程師們覺得不夠可靠,于是就研究出很多能對一組數(shù)據(jù)產(chǎn)生多個校驗的算法。Reed-Solomon編碼是其中應(yīng)用最廣泛的一個,咱們以前經(jīng)常用的ADSL、xDSL、高速Modem都有采用。后來手機、衛(wèi)星電視、數(shù)字電視、CD唱片、DVD、條碼系統(tǒng)、還有……連高級點兒的服務(wù)器內(nèi)存也用這個算法做校驗和糾錯。
現(xiàn)在存儲的工程師也覺得RAID5中只能容忍一顆磁盤離線不夠理想,需要一種容忍多顆磁盤離線的技術(shù),自然就會想到Reed-Solomon編碼啦。把這種算法應(yīng)用到存儲中,就可以讓N顆磁盤的空間裝應(yīng)用數(shù)據(jù),M顆磁盤的空間裝校驗碼(對一組N個數(shù)據(jù)生成M個校驗,但實際上校驗碼是分散在所有磁盤上的),這樣只要離線的磁盤不大于M顆,數(shù)據(jù)就不會丟失。
Reed-Solomon編碼理論中有一個公式:
N + M + 1 = 2的b次方
其中b是校驗字的位數(shù)。(校驗字是生成校驗過程需要用的一個東東,不是最后的校驗碼。)舉例來說,如果用8位的字節(jié)做校驗字,那么M + N = 255,而RAID6是特指M = 2,這樣N = 253。
就是說,用8位字節(jié)做校驗字的話,理論上一個RAID6的磁盤組可以容下253顆磁盤。
當(dāng)然啦,實際應(yīng)用中,太多的磁盤一起做運算會嚴(yán)重影響性能,所以陣列控制器和芯片的設(shè)計者都會把磁盤組的容量限制在16顆左右。
賣了這么多關(guān)子,實在是因為RAID6這個概念所指的意義太混亂。從功能上講,能實現(xiàn)兩顆磁盤掉線容錯的,都叫RAID6。(至少我認識的銷售們都這么認為。)但是實行這一功能的方式卻有很多很多。
Intel的P+Q RAID6,NetApp的RAID-DP,HP的RAID5-DP,還要很多實驗室中的原型機都能實行這個功能。但是由于機制不同,各種所謂的RAID6,其性能表現(xiàn)、磁盤負載分布、錯誤恢復(fù)方式都完全不同。
三、基于P+Q的RAID6
在Intel的80333IOP芯片中,有一個新的引擎叫P+Q單元,是專門用來處理RAID6加速的。詳情請查閱Intel官方網(wǎng)站
Intel的P+Q RAID6是這樣寫磁盤的:
這里每個條帶中的P,跟RAID5里面的P意義完全一樣,就是同一條帶中除Q以外其它數(shù)據(jù)的XOR運算結(jié)果。
而Q呢,就是理解這個技術(shù)的關(guān)鍵所在了。
Q是同一條帶中各數(shù)據(jù)的Galois Field進行XOR運算的結(jié)果。
“找到條帶中每個數(shù)據(jù)的GF,然后這些GF再XOR一下,就得到Q。”
(GF是Galois Field的縮寫,是法國著名數(shù)學(xué)家伽羅瓦發(fā)明的一種數(shù)學(xué)變換。)
這個GF變換呢,就是這個淘氣的伽同學(xué)當(dāng)年為了逃避老師點名,而發(fā)明的一種教室換座位方法。按照這種方法,每個人都不會坐在自己的座位上,而且每個人都肯定會有座位。而且任意個同學(xué)的座位號進行XOR運算之后,仍然跑不出這個教室里的座位號。
在Intel 80333IOP中存著兩個表格,分別對應(yīng)GF正向變換和反向變換。任何一個8位二進制數(shù),都可以直接在表格中查到對應(yīng)的GF變換結(jié)果。
這兩個表格分別在Intel 80333IOP研發(fā)手冊的第445頁和446頁,不過我估計大部分人會懶得去看。也是,看了又能怎么樣呢?反正Intel已經(jīng)把那玩意固化到芯片里了。
如果一顆磁盤掉線,根本不需要Q用P直接就搞定了,跟RAID5一樣。
如果兩顆磁盤掉線,又分做兩種情況:
A)壞的地方有Q。這種情況跟RAID5壞一顆磁盤一樣,用XOR就恢復(fù)了。
B)壞的地方?jīng)]有Q。用GF變換加XOR一起搞定。按照Intel的官方說法,是用“恢復(fù)矩陣”進行恢復(fù)。
結(jié)合上面表格的例子,如果磁盤5和磁盤6掉線。那條帶1和條帶2就屬于情況A;而條帶3、4、5和6屬于情況B。
其實P+Q只是一種算法,Intel IOP里面的硬件加速引擎并不是必須的。有一些產(chǎn)品就采用了PowerPC等不含P+Q引擎的CPU,一樣不耽誤P+Q RAID6功能。
GF轉(zhuǎn)換表在軟件里完成就是了。
簡單的說,RAID6主要是比RAID5更加安全,允許兩塊硬盤出現(xiàn)離線,陣列還可以正常運行。
假如服務(wù)器陣列無法進入系統(tǒng),或者陣列信息丟失了等,千萬不要重新初始化配置陣列信息或者強制上線同步操作,或陣列重新可以聯(lián)系我們?nèi)A軍行,我們有更加專業(yè)的服務(wù)器陣列工程師為您服務(wù)!
1.查看磁帶中的目錄 #tar tvf /dev/st0 2.查看磁帶中的目錄,并輸出到一個文件中 #t...
日立移動硬盤打不開怎么辦,日立移動硬盤打不開的解決方法,日立移動硬盤故障解決
錯誤操作導(dǎo)致高級格式化分區(qū)后的數(shù)據(jù)恢復(fù)在 DOS 時代有一個非常不錯工具稱為 UnFormat...
在本系列的第一部分,我們討論了存儲虛擬化是如何實現(xiàn)不停機操作,并使用戶能夠通過改造...
隨著電腦在人們工作和生活中的逐步普及,越來越多的數(shù)據(jù)存在了電腦硬盤中。但相關(guān)統(tǒng)計卻...
1.查看磁帶中的目錄 #tar tvf /dev/st0 2.查看磁帶中的目錄,并輸出到一個文件中 #t...
從事數(shù)據(jù)恢復(fù)的人士,必須非常熟悉各種文件系統(tǒng)類型,例如:FAT,NTFS,HFS+,EXT2/3,ReFS,...