亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

獨立磁盤冗余陣列構(gòu)建方法及裝置的制作方法

文檔序號:6484098閱讀:135來源:國知局
專利名稱:獨立磁盤冗余陣列構(gòu)建方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及獨立》茲盤冗余陣列(RAID , Redundant Array of Independent Disks)技術(shù)領(lǐng)域,具體涉及RAID構(gòu)建方法及裝置。
背景技術(shù)
RAID簡稱為"磁盤陣列",RAID技術(shù)已廣泛應(yīng)用于數(shù)據(jù)存儲的各種 場合,它的原理是利用多個硬盤的組合連成一個陣列,實現(xiàn)以快速、準確和 安全的方式來讀寫磁盤數(shù)據(jù),從而達到提高數(shù)據(jù)讀寫速度和安全性的 一種手 段;當一塊或多塊磁盤出現(xiàn)故障時,數(shù)據(jù)能夠依靠其它的磁盤計算出來,從 而不會造成數(shù)據(jù)的丟失。
以下對RAID中常用的幾個概念進行說明
條帶又稱為Stripe;是陣列的不同分區(qū)上的位置相關(guān)的分塊的集合, 是組織不同分區(qū)上條塊的單位。
分區(qū)又稱為Extent;是一個》茲盤上的地址連續(xù)的存儲塊。 一個^f茲盤可 以劃分為多個分區(qū),每個分區(qū)可以大小不等,有時也稱為邏輯磁盤。
分塊又稱為Strip;將一個分區(qū)分成多個大小相等的、地址相鄰的塊, 這些塊稱為分塊。分塊通常被認為是條帶的元素。虛擬磁盤以分塊為單位將 虛擬;茲盤的地址映射到成員》茲盤的地址。
XOR運算即異或運算,用于奇偶校驗,通常用符號"④"表示,其運算 規(guī)則為
0 0=0, 0同0異或,結(jié)果為0 0 1=1, 0同1異或,結(jié)果為1 1 0=1, 1同0異或,結(jié)果為11 1=0, 1同1異或,結(jié)果為0
另A @ B=C <=> A C=B <=〉 B C=A
比較常用的RAID有RAID0、 RAID1、 RAID5、 RAID6、 RAID10等。 其中RAID0不具有冗余能力,RAID1只是對磁盤做了鏡像。其它3種陣列 分別由多個磁盤組成,它們以條帶的方式向陣列中的磁盤寫數(shù)據(jù),奇偶校驗 數(shù)據(jù)存放在陣列中的各個磁盤上。RAID5的每個條帶含有1個校驗塊,支持 任意損壞其中一個磁盤、通過其它磁盤上的奇偶校驗塊來重建數(shù)據(jù);RAID6 的每個條帶含有2個校驗塊,支持任意損壞其中兩個磁盤、通過其它磁盤上 的奇偶校驗塊來恢復(fù)數(shù)據(jù);RAID10是先對磁盤組進行鏡像,再對磁盤進行 條帶化,所以其不含奇偶校驗塊,當一個磁盤損壞后通過其對應(yīng)的鏡像盤恢 復(fù)數(shù)據(jù),理想狀態(tài)下最多允許不同位置下50%的磁盤損壞,最糟糕的情況是 同 一對鏡像磁盤同時損壞。
奇偶校驗數(shù)據(jù)是對每個條帶中的數(shù)據(jù)塊使用XOR運算得出,這樣在一 個磁盤發(fā)生損壞時,可以通過條帶中的數(shù)據(jù)塊+奇偶校驗塊使用XOR運算來 還原丟失的那部分數(shù)據(jù)。
圖1給出了 RAID5存儲數(shù)據(jù)過程,如圖5所示,RAID5由3個磁盤組 成,有6塊數(shù)據(jù)需要寫入RAID5,將所有數(shù)據(jù)塊分成3個條帶寫入磁盤中, 其中數(shù)據(jù)塊P即為奇偶校驗數(shù)據(jù),每個數(shù)據(jù)塊P分別由每個條帶中的數(shù)據(jù)使 用XOR運算得到,如P1=A@B, P2=C@D, P3-E@F,這樣假設(shè)磁盤1損 壞,那么條帶1中的數(shù)據(jù)A,可以由B④P1運算得到。
目前,允許多個磁盤損壞的技術(shù)主要有RAID6、 RAID10等。
從功能上講,能實現(xiàn)兩個磁盤掉線容錯的,都叫RAID6。實現(xiàn)這一功能 的關(guān)鍵技術(shù)是在RAID5奇偶校驗塊的基礎(chǔ)上,再加入一個校驗塊,通過兩 個校驗塊和數(shù)據(jù)塊的運算來恢復(fù)損壞磁盤上的數(shù)據(jù)。
以下介紹一下狹義上的RAID6——基于P+Q的RAID6:
基于P+Q的RAID6其每個條帶中的P和RAID5中的P意義完全一樣, 即,對同一條帶中除Q以外的數(shù)據(jù)使用XOR運算可得到P。而Q指的是,對同一條帶中各數(shù)據(jù)對應(yīng)的伽羅瓦域(GF, Galois Field)進行XOR運算的結(jié)果。
圖2給出了基于P+Q的RAID6的數(shù)據(jù)存儲形式,如圖2所示,如果一 個磁盤掉線,則只需要使用P進行XOR運算就能恢復(fù)數(shù)據(jù)。如果兩個磁盤 同時掉線則可以分為兩種情況
一、 損壞數(shù)據(jù)包含Q,此時,使用P進行XOR運算就可以恢復(fù)損壞數(shù)據(jù)。
二、 損壞數(shù)據(jù)不包含Q,此時,需要使用P和Q的XOR運算組成一個 2元一次方程組,來恢復(fù)損壞的數(shù)據(jù)。
如圖2所示,如果磁盤5和磁盤6掉線,則條帶1和條帶2就屬于第一 種情況,條帶3、 4、 5、 6就屬于第二種情況。
可以看出RAID6最多只能支持兩個磁盤同時掉線,當有3塊以上磁盤 同時掉線時數(shù)據(jù)將無法恢復(fù)。
RAID10是RAID1和RAID0的結(jié)合,也稱為RAID ( 0+1 ) , RAID10 對磁盤先作鏡像處理然后作條帶化,既提高了系統(tǒng)的讀寫性能,又提供了數(shù) 據(jù)冗余保護,RAID10的磁盤空間利用率和RAID1相同,為50%。圖3給 出了 RAID10的數(shù)據(jù)存儲形式,RAID10中只要不是鏡像組的一對^f茲盤同時 損壞,就可以支持多個磁盤同時掉線。如圖3所示,如果磁盤l、 4、 5同時 掉線,則磁盤2、 3、 .6仍然可以保證數(shù)據(jù)不丟失。但是如果磁盤1、 2同時 損壞,則損壞的數(shù)據(jù)就無法恢復(fù)了。
可見對于RAIDIO,若一對鏡像磁盤同時掉線,則數(shù)據(jù)無法恢復(fù);另 外,RAID10需要消耗50%的磁盤進行數(shù)據(jù)冗余,磁盤利用率不高,且大大 增加了成本。

發(fā)明內(nèi)容
本發(fā)明提供RAID構(gòu)建方法及裝置,以提高RAID的冗余度。 本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種RAID構(gòu)建方法,應(yīng)用于磁盤陣列包含nxm個磁盤的場景中,其中, n>3, m>3,將n x m個磁盤構(gòu)造成一個n行x m列的磁盤矩陣,對每一行磁 盤進行條帶劃分,對于每一行》茲盤中的所有條帶,按照相同的規(guī)則對各條帶編 號,該方法包括
在每行磁盤的每個條帶中設(shè)置一個橫向校驗塊,在每列磁盤中所屬條帶 的編號相同的每n個分塊中設(shè)置一個縱向校驗塊;
所述橫向校驗塊由該橫向校驗塊所在條帶中的m - 1個數(shù)據(jù)塊通過異或
運算得出;
所述縱向校驗塊由所屬條帶編號與該縱向校驗塊所屬條帶編號相同的n -1個數(shù)據(jù)塊通過異或運算得到。 所述方法進一步包括
預(yù)先設(shè)定不同行磁盤所屬條帶編號相同的橫向校驗塊位于同一列磁盤上。
所述方法進一步包括
預(yù)先設(shè)定不同列磁盤所屬條帶編號相同的縱向校驗塊位于同 一行磁盤上。
所述方法進一步包括當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的 橫向校驗塊和/或縱向校驗塊,恢復(fù)該磁盤上的每個數(shù)據(jù)塊。
所述當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或 縱向校驗塊恢復(fù)該磁盤上的每個數(shù)據(jù)塊包括
當有一個磁盤損壞時,對于該磁盤的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的 橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)
塊;
或者,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與 該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號 相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
所述當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或縱向校驗塊恢復(fù)該磁盤上的每個數(shù)據(jù)塊包括
當發(fā)現(xiàn)同一行的兩磁盤同時損壞時,對于其中一磁盤,對該磁盤上的每 個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的其它磁 盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算, 來恢復(fù)該數(shù)據(jù)塊;對于另一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向 校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
或者,同時使用如下步驟同時恢復(fù)該兩磁盤上的數(shù)據(jù)塊
對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向 校驗塊、與該磁盤位于同 一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
所述當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或 縱向校驗塊恢復(fù)該磁盤上的每個數(shù)據(jù)塊包括
當有第一、第二、第三磁盤同時損壞,且第一、二磁盤位于同一行,第 一、三石茲盤位于同一列時,貝寸
對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該
磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
或者
對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
ii對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)
據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊; 或者
對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相
同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;
對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
一種RAID構(gòu)建裝置,應(yīng)用于磁盤陣列包含nxm個磁盤的場景中,其
中,n>3, m>3,該裝置包括
磁盤矩陣構(gòu)建模塊,將n x m個磁盤構(gòu)造成一個n行x m列的磁盤矩陣, 對每一行磁盤進行條帶劃分,對于每一行磁盤中的所有條帶,按照相同的規(guī)則 對各條帶編號;
橫向校驗?zāi)K,對于每行磁盤的每個條帶,對該條帶中的m-l個數(shù)據(jù) 塊進行異或運算,得到該條帶的橫向校驗塊;
縱向校驗?zāi)K,對每列磁盤中所屬條帶的編號相同的n- 1數(shù)據(jù)塊進行 異或運算,得到該列磁盤中所屬條帶的編號相同的n個分塊的縱向校驗塊。
該裝置進一步包括
數(shù)據(jù)恢復(fù)模塊,當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校 驗塊和/或縱向校驗塊,恢復(fù)該磁盤上的每個數(shù)據(jù)塊。 所述數(shù)據(jù)恢復(fù)模塊包括
損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)有一個磁盤損壞,將該磁盤標識發(fā)送給恢復(fù)模塊; 恢復(fù)模塊,接收損壞的磁盤標識,對于該磁盤的每個數(shù)據(jù)塊,使用該數(shù) 據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者,
對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤 位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的 數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
所述數(shù)據(jù)恢復(fù)模塊包括
損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)同一行的兩磁盤同時損壞,將該兩磁盤標識發(fā)送給 恢復(fù)模塊;
恢復(fù)模塊,接收同時損壞的兩磁盤標識,對于其中一磁盤,對該磁盤上 的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的其
運算,來恢復(fù)該數(shù)據(jù)塊;對于另一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù) 據(jù)塊;或者,
對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向 校驗塊、與該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
所述數(shù)據(jù)恢復(fù)模塊包括
損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)第一、第二、第三磁盤同時損壞,且第一、二磁盤 位于同一行,第一、三磁盤位于同一列,將該三磁盤標識發(fā)送給恢復(fù)模塊;
恢復(fù)模塊,接收同時損壞的三磁盤標識,對于第三磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同 一 列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁 盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的 其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者,
對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤
上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的 其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異
或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對 應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該 數(shù)據(jù)塊;或者,
對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同 一 列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
與現(xiàn)有技術(shù)相比,本發(fā)明對于包含nxm (n>3, m>3)個i茲盤的i茲盤 陣列,將n x m個石茲盤構(gòu)造成一個n行x m列的f茲盤矩陣,對每一行i茲盤進 行條帶劃分,對于每一行磁盤中的所有條帶,按照相同的規(guī)則對各條帶編號, 其中,每行磁盤的每個條帶中包含一個橫向校驗塊,每列磁盤中所屬條帶的 編號相同的每n個分塊中包含一個縱向校驗塊;所述橫向校驗塊由該橫向校 驗塊所在條帶中的m- 1個數(shù)據(jù)塊通過異或運算得出;所述縱向校驗塊由所 屬條帶編號與該縱向校驗塊所屬條帶編號相同的n- 1個數(shù)據(jù)塊通過異或運 算得到。由于本發(fā)明構(gòu)建的RAID中,每個數(shù)據(jù)塊都對應(yīng)兩個校驗塊,因此, 本發(fā)明可以達到任意3個磁盤同時損壞時,數(shù)據(jù)都能恢復(fù),提高了RAID 的冗余度;且,與RAID6相比,本發(fā)明構(gòu)建的RAID的校驗、恢復(fù)算法更 簡單,在同樣數(shù)量磁盤損壞時,本發(fā)明構(gòu)建的RAID的數(shù)據(jù)恢復(fù)速度更快, 讀寫性能也更好;在n》4、 m》4時,本發(fā)明比RAID10具有更高的磁盤利 用率,降低了成本,且隨著n、 m值的增大磁盤利用率會進一步提高;本發(fā) 明最多可允許n+m-l個磁盤同時損壞時,數(shù)據(jù)能夠得到恢復(fù)。


圖1為RAID5存儲數(shù)據(jù)過程示意圖2為基于P+Q的RAID6的數(shù)據(jù)存儲形式示意圖3為RAID10的數(shù)據(jù)存儲形式示意圖4為本發(fā)明實施例提供的構(gòu)建RAID的流程圖5為應(yīng)用本發(fā)明構(gòu)建的RAID的數(shù)據(jù)存儲形式示意圖6為圖5中構(gòu)建的RAID的一個磁盤損壞時的示意圖7為圖5中構(gòu)建的RAID有兩磁盤同時損壞時的示意圖8為圖5中構(gòu)建的RAID有三》茲盤同時損壞時的示意圖9為本發(fā)明實施例提供的構(gòu)建RAID的裝置的組成圖。
具體實施例方式
下面結(jié)合附圖及具體實施例對本發(fā)明再作進 一 步詳細的說明。 圖4為本發(fā)明實施例提供的構(gòu)建RAID的流程圖,如圖4所示,其具體 步驟如下:
步驟401:設(shè)磁盤陣列中包含nxm ( n23, mS3 )個石茲盤,將n x m個磁 盤構(gòu)造成一個n行x m列的磁盤矩陣,對每一行磁盤進行條帶劃分,對每一
行中的條帶依次編號為1、 2、 3、 4.......。其中,每行磁盤的每個條帶中
包含一個橫向校驗塊,每列磁盤中所屬條帶的編號相同的每n個分塊中包含 一個縱向校驗塊。
對每一行磁盤進行條帶劃分的方法與現(xiàn)有的對RAID5等陣列進行條帶 劃分的方法相同。例如對第nl (lSnl^n)行的m個》茲盤,將第1 m個 磁盤中的第1 ~ a ( a>l )個磁道劃分為條帶1 ,將第1 ~ m個磁盤中的第a + 1 ~ 2a個磁道劃分為條帶2,將第1-m個磁盤中的第2a + 1 3a個磁道劃分 為條帶3,.......,依次類推,直到將每個磁盤的所有磁道劃分完畢。
步驟402:對于每行磁盤的每個條帶,對該條帶中的m-1個數(shù)據(jù)塊進 行XOR運算,得到該條帶的橫向校驗塊。可見,若每個磁盤中有k個條帶,則整個磁盤陣列共有kxn個橫向校 驗塊。
步驟403:對同一列磁盤中所屬條帶編號相同的每n- 1個數(shù)據(jù)塊進行 XOR運算,得到該列磁盤的該n- 1個數(shù)據(jù)塊的縱向校驗塊。
可見,若每個磁盤中有k個條帶,則整個磁盤陣列共有kxm個縱向校 驗塊。
同時可見,對于每一個數(shù)據(jù)塊,該數(shù)據(jù)塊都同時對應(yīng)兩個校驗塊橫向 校驗塊和縱向校驗塊。
步驟404:若發(fā)現(xiàn)一磁盤損壞,則對該磁盤上的數(shù)據(jù)塊,使用該數(shù)據(jù)塊 對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶中的其它數(shù)據(jù)塊進行XOR運算,來 恢復(fù)該數(shù)據(jù)塊。
或者,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與 該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號 相同的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊。
步驟405:若發(fā)現(xiàn)同一行的兩磁盤同時損壞,則對于其中一磁盤,對該 磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一 列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進 行XOR運算,來恢復(fù)該數(shù)據(jù)塊;然后,對于另一磁盤上的每個數(shù)據(jù)塊,使 用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行XOR 運算,來恢復(fù)該數(shù)據(jù)塊。
或者,可同時使用如下方法同時恢復(fù)該兩》茲盤上的數(shù)據(jù)塊
對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向 校驗塊、與該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊。
步驟406:若發(fā)現(xiàn)有三石茲盤x、 y、 z同時損壞,且/f茲盤x、 y位于同一 行,》茲盤x、 z4立于同一列,貝'J:
對于磁盤z上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊;
對于磁盤y上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁
盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同
的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊;
對于磁盤x上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)
塊所在條帶的其它數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊。 或者
對于磁盤z上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù) 塊所在條帶的其它數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊;
對于磁盤x上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁 盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同 的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊;
對于磁盤y上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù) 塊所在條帶的其它數(shù)據(jù)塊進行X OR運算,來恢復(fù)該數(shù)據(jù)塊。
或者
對于磁盤y上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁 盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同 的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊;
對于磁盤x上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù) 塊所在條帶的其它數(shù)據(jù)塊進行XOR運算;
對于磁盤z上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁 盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同 的數(shù)據(jù)塊進行XOR運算,來恢復(fù)該數(shù)據(jù)塊。
需要指出的是,理論上每個條帶都會有兩個校驗塊 一個橫向校驗塊, 一個縱向校驗塊,則整個磁盤陣列的磁盤利用率為1 -丄-丄(m^3, n^3 )。
附 W為了提高磁盤利用率,可以將不同行磁盤中所屬條帶編號相同的橫向校
驗塊放在同一列磁盤上,例如對于第1 ~n行的n個條帶1,將該n個條 帶1的n個橫向校驗塊都放在每行的第ml ( KmKm)個即第ml列磁盤 上;或者,也可以將不同列磁盤中所屬條帶編號相同的縱向校驗塊放在同一 行磁盤上,例如對于第1 ~ m列磁盤中,對應(yīng)于條帶1的m個縱向校驗塊, 可將該m個縱向校驗塊都放在第nl ( lSnlSn)行》茲盤上,這樣就可以減少 一個縱向校驗塊或減少一個橫向校驗塊,從而可以提高整個磁盤陣列的利用
率,優(yōu)化后的磁盤利用率為i-丄-丄+ l (n^3, m^3)。同時,可以
n 附 ox w
看出隨著n, m數(shù)值的增大,磁盤陣列的磁盤利用率也隨之增大。 以下給出應(yīng)用本發(fā)明的實例
如圖5所示,設(shè)磁盤陣列中共有16個磁盤,所有磁盤構(gòu)成一個4 x 4的 磁盤矩陣,每行磁盤的每個條帶具有一個橫向校驗塊,同一列磁盤中所屬條 帶編號相同的n個分塊中具有一個縱向校驗塊,如P1=A B, P2 == C D E, P3 = F G, P4 = H I; AP1=C F@H, AP2 = A D G, AP4 =B E I。其中,為了提高磁盤利用率,每行磁盤的條帶1的橫向校驗塊 都位于第3列》茲盤上。
如圖6所示,當一個磁盤如磁盤2損壞時,則塊A可通過P1@B 來恢復(fù),也可通過AP2 D G來恢復(fù)。
如圖7所示,當兩個》茲盤如》茲盤2、 4同時損壞時,則可通過如下方 式之一恢復(fù)磁盤2、 4上數(shù)據(jù)
一、 先通過AP2@D G來恢復(fù)磁盤2上的塊A,然后通過P1 A 恢復(fù)》茲盤4上的塊B。
二、 通過AP2 D G來恢復(fù)》茲盤2上的塊A,同時通過AP4@E I 來恢復(fù)磁盤4上的塊B。
如圖8所示,當三個磁盤如磁盤2、 4、 6同時損壞時,則可通過如下 方式之一恢復(fù)石茲盤2、 4、 6上數(shù)據(jù)一、 通過P2 C E恢復(fù)》茲盤6上的塊D,同時通過AP40Eei恢 復(fù)》茲盤4上的塊B,然后通過PI B恢復(fù)石茲盤2上的塊A。
二、 通過P2 C@E恢復(fù)磁盤6上的塊D,然后通過AP2eD^G恢 復(fù)石茲盤2上的塊A,然后通過P19A恢復(fù)》茲盤4上的塊B。
三、 通過AP4④Eei恢復(fù)》茲盤4上的塊B,然后通過PleB恢復(fù)i茲 盤2上的塊A,然后通過AP2 A G恢復(fù)石茲盤6上的塊D。
圖9為本發(fā)明實施例提供的RAID構(gòu)建裝置的組成圖,該裝置應(yīng)用于磁 盤陣列包含nxm (n>3, m》3)個磁盤的場景中,如圖9所示,該裝置主 要包括磁盤矩陣構(gòu)建模塊91、橫向校驗?zāi)K92、縱向校驗?zāi)K93和數(shù)據(jù) 恢復(fù)模塊94,其中
磁盤矩陣構(gòu)建模塊91:將n x m個磁盤構(gòu)造成一個n行x m列的磁盤矩 陣,對每一行磁盤進行條帶劃分,對于每一行磁盤中的所有條帶,按照相同 的規(guī)則對各條帶編號。
橫向校驗?zāi)K92:對于每行磁盤的每個條帶,對該條帶中的m- 1個數(shù) 據(jù)塊進行異或運算,得到該條帶的橫向校驗塊。
縱向校驗?zāi)K93:對每列磁盤中所屬條帶的編號相同的n-1數(shù)據(jù)塊進 行異或運算,得到該列磁盤中所屬條帶的編號相同的n個分塊的縱向校驗 塊。
數(shù)據(jù)恢復(fù)模塊94:當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫 向校驗塊和/或縱向校驗塊,恢復(fù)該磁盤上的每個數(shù)據(jù)塊。 其中,數(shù)據(jù)恢復(fù)模塊94可包括
損壞發(fā)現(xiàn)模塊發(fā)現(xiàn)有一個磁盤損壞,將該磁盤標識發(fā)送給恢復(fù)模塊。 恢復(fù)模塊接收損壞的磁盤標識,對于該磁盤的每個數(shù)據(jù)塊,使用該數(shù)
據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來
恢復(fù)該數(shù)據(jù)塊;或者,
對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤
位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
或者,數(shù)據(jù)恢復(fù)模塊94可包括
損壞發(fā)現(xiàn)模塊發(fā)現(xiàn)同 一行的兩磁盤同時損壞,將該兩磁盤標識發(fā)送給 恢復(fù)模塊。
恢復(fù)模塊接收同時損壞的兩磁盤標識,對于其中一磁盤,對該磁盤上 的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的其 它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于另一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù) 據(jù)塊;或者,
對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向 校驗塊、與該磁盤位于同 一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
或者,數(shù)據(jù)恢復(fù)模塊94可包括
損壞發(fā)現(xiàn)模塊發(fā)現(xiàn)第一、第二、第三磁盤同時損壞,且第一、二磁盤 位于同一行,第一、三磁盤位于同一列,將該三磁盤標識發(fā)送給恢復(fù)模塊;
恢復(fù)模塊,接收同時損壞的三磁盤標識,對于第三磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同 一 列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁 盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的 其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者,
對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤 上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的 其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對 應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該 數(shù)據(jù)塊;或者,
對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均應(yīng)包含在 本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種獨立磁盤冗余陣列RAID構(gòu)建方法,應(yīng)用于磁盤陣列包含n×m個磁盤的場景中,其中,n≥3,m≥3,將n×m個磁盤構(gòu)造成一個n行×m列的磁盤矩陣,對每一行磁盤進行條帶劃分,對于每一行磁盤中的所有條帶,按照相同的規(guī)則對各條帶編號,其特征在于,該方法包括在每行磁盤的每個條帶中設(shè)置一個橫向校驗塊,在每列磁盤中所屬條帶的編號相同的每n個分塊中設(shè)置一個縱向校驗塊;所述橫向校驗塊由該橫向校驗塊所在條帶中的m-1個數(shù)據(jù)塊通過異或運算得出;所述縱向校驗塊由所屬條帶編號與該縱向校驗塊所屬條帶編號相同的n-1個數(shù)據(jù)塊通過異或運算得到。
2、 如權(quán)利要求l所述的方法,其特征在于,所述方法進一步包括 預(yù)先設(shè)定不同行磁盤所屬條帶編號相同的橫向校驗塊位于同一列磁盤上。
3、 如權(quán)利要求l所述的方法,其特征在于,所述方法進一步包括 預(yù)先設(shè)定不同列磁盤所屬條帶編號相同的縱向校驗塊位于同一行磁盤上。
4、 如權(quán)利要求1至3任一所述的方法,其特征在于,所述方法進一步 包括當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或縱 向校驗塊,恢復(fù)該磁盤上的每個數(shù)據(jù)塊。
5、 如權(quán)利要求4所述的方法,其特征在于,所述當有磁盤損壞時,根 據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或縱向校驗塊恢復(fù)該磁盤上的每 個數(shù)據(jù)塊包括當有一個》茲盤損壞時,對于該磁盤的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的 橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù) 塊;或者,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與 該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號 相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
6、 如權(quán)利要求4所述的方法,其特征在于,所述當有磁盤損壞時,根 據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或縱向校驗塊恢復(fù)該磁盤上的每 個數(shù)據(jù)塊包括當發(fā)現(xiàn)同一行的兩磁盤同時損壞時,對于其中一磁盤,對該磁盤上的每 個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的其它磁 盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算, 來恢復(fù)該數(shù)據(jù)塊;對于另一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向 校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊; 或者,同時使用如下步驟同時恢復(fù)該兩磁盤上的數(shù)據(jù)塊 對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同 一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
7、 如權(quán)利要求4所述的方法,其特征在于,所述當有磁盤損壞時,根 據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校驗塊和/或縱向校驗塊恢復(fù)該磁盤上的每 個數(shù)據(jù)塊包括當有第一、第二、第三磁盤同時損壞,且第一、二磁盤位于同一行,第 一、三,茲盤位于同一列時,貝'J:對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
8、 一種RAID構(gòu)建裝置,應(yīng)用于磁盤陣列包含nxm個磁盤的場景中, 其中,n>3, m>3,將n x m個f茲盤構(gòu)造成一個n《亍x m列的;茲盤矩陣,對 每一行磁盤進行條帶劃分,對于每一行磁盤中的所有條帶,按照相同的規(guī)則 對各條帶編號;其特征在于,該裝置包括磁盤矩陣構(gòu)建模塊,橫向校驗?zāi)K,對于每行磁盤的每個條帶,對該條帶中的m-l個數(shù)據(jù) 塊進行異或運算,得到該條帶的橫向校驗塊;縱向校驗?zāi)K,對每列磁盤中所屬條帶的編號相同的n - 1數(shù)據(jù)塊進行 異或運算,得到該列磁盤中所屬條帶的編號相同的n個分塊的縱向校驗塊。
9、 如權(quán)利要求8所述的裝置,其特征在于,該裝置進一步包括數(shù)據(jù)恢復(fù)模塊,當有磁盤損壞時,根據(jù)該磁盤上的數(shù)據(jù)塊對應(yīng)的橫向校 驗塊和/或縱向校驗塊,恢復(fù)該磁盤上的每個數(shù)據(jù)塊。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)恢復(fù)模塊包括 損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)有一個磁盤損壞,將該磁盤標識發(fā)送給恢復(fù)模塊; 恢復(fù)模塊,接收損壞的磁盤標識,對于該磁盤的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來 恢復(fù)該數(shù)據(jù)塊;或者,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤 位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的 數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
11、 如權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)恢復(fù)模塊包括 損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)同一行的兩磁盤同時損壞,將該兩磁盤標識發(fā)送給恢復(fù)模塊;恢復(fù)模塊,接收同時損壞的兩磁盤標識,對于其中一磁盤,對該磁盤上 的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的其 它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于另一磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù) 據(jù)塊;或者,對其中任一磁盤,對該磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向 校驗塊、與該磁盤位于同 一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在 條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
12、 如權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)恢復(fù)模塊包括 損壞發(fā)現(xiàn)模塊,發(fā)現(xiàn)第一、第二、第三磁盤同時損壞,且第一、二磁盤位于同一行,第一、三磁盤位于同一列,將該三磁盤標識發(fā)送給恢復(fù)模塊; 恢復(fù)模塊,接收同時損壞的三磁盤標識,對于第三磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁 盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的 其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;或者,對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù) 據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤 上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該磁盤位于同一列的 其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相同的數(shù)據(jù)塊進行異 或運算,來恢復(fù)該數(shù)據(jù)塊;對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對 應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或運算,來恢復(fù)該 數(shù)據(jù)塊;或者,對于第二磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng)的縱向校驗塊、與該 磁盤位于同一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù)塊所在條帶編號相 同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊;對于第一磁盤上的每個數(shù)據(jù)塊, 使用該數(shù)據(jù)塊對應(yīng)的橫向校驗塊、該數(shù)據(jù)塊所在條帶的其它數(shù)據(jù)塊進行異或 運算,來恢復(fù)該數(shù)據(jù)塊;對于第三磁盤上的每個數(shù)據(jù)塊,使用該數(shù)據(jù)塊對應(yīng) 的縱向校驗塊、與該磁盤位于同 一列的其它磁盤中所屬條帶編號與所述數(shù)據(jù) 塊所在條帶編號相同的數(shù)據(jù)塊進行異或運算,來恢復(fù)該數(shù)據(jù)塊。
全文摘要
本發(fā)明公開了獨立磁盤冗余陣列構(gòu)建方法及裝置。本發(fā)明應(yīng)用于磁盤陣列包含n×m個磁盤的場景中,其中,n≥3,m≥3,將n×m個磁盤構(gòu)造成一個n行×m列的磁盤矩陣,對每一行磁盤進行條帶劃分,對于每一行磁盤中的所有條帶,按照相同的規(guī)則對各條帶編號,在每行磁盤的每個條帶中設(shè)置一個橫向校驗塊,在每列磁盤中所屬條帶的編號相同的每n個分塊中設(shè)置一個縱向校驗塊;所述橫向校驗塊由該橫向校驗塊所在條帶中的m-1個數(shù)據(jù)塊通過異或運算得出;所述縱向校驗塊由所屬條帶編號與該縱向校驗塊所屬條帶編號相同的n-1個數(shù)據(jù)塊通過異或運算得到。本發(fā)明提高了RAID的冗余度。
文檔編號G06F11/10GK101504623SQ20091008060
公開日2009年8月12日 申請日期2009年3月20日 優(yōu)先權(quán)日2009年3月20日
發(fā)明者迪 周, 策 孫 申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1