一種基于異或的垂直raid-6編碼方法
【專利摘要】本發(fā)明公開了一種基于異或的垂直RAID-6編碼方法,包括以下步驟:從API接口獲取請求隊(duì)列信息,判斷該請求隊(duì)列信息是否是構(gòu)建請求,如果是構(gòu)建請求,則根據(jù)該構(gòu)建請求獲取RAID-6系統(tǒng)中的一個(gè)未構(gòu)建條帶,以獲取該未構(gòu)建條帶的條帶信息,根據(jù)所獲取的條帶信息對該未構(gòu)建條帶中所有塊進(jìn)行編號,以得到所有塊的標(biāo)識,根據(jù)塊標(biāo)識,選擇一個(gè)未構(gòu)建的校驗(yàn)塊Cm-1,j,以獲取該校驗(yàn)塊Cm-1,j標(biāo)識,其中m表示RAID-6系統(tǒng)中一個(gè)條帶的總行數(shù),根據(jù)獲取的校驗(yàn)塊Cm-1,j標(biāo)識,得到該校驗(yàn)塊Cm-1,j的值。本發(fā)明在磁盤失效的情況下保障了失效磁盤的快速重構(gòu),同時(shí)具有構(gòu)建靈活的RAID陣列大小,具有均勻負(fù)載的特性。
【專利說明】—種基于異或的垂直RAID-6編碼方法
【技術(shù)領(lǐng)域】[0001]本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)存儲領(lǐng)域,更具體地,涉及一種基于異或的垂直RAID-6編碼方法。
【背景技術(shù)】[0002]為了提升計(jì)算機(jī)網(wǎng)絡(luò)存儲系統(tǒng)的性能和可靠性,現(xiàn)有數(shù)據(jù)中心普遍采用獨(dú)立磁盤冗余陣列(Redundant Array of Independent Disk,簡稱RAID)技術(shù)。研究表明網(wǎng)絡(luò)存儲系統(tǒng)中磁盤失效發(fā)生的概率隨著存儲系統(tǒng)規(guī)模的擴(kuò)大而增加。由于RAID-6編碼方法能夠容任意的兩磁盤失效,因而該編碼方法在企業(yè)數(shù)據(jù)中心得到廣泛使用?;赗AID-6規(guī)范的陣列編碼主要分為水平編碼(如,Reed-Solomon, EVENODD、RDP和Liberation)和垂直編碼(如,X-Code> Cyclic code、P-Code 和 Code-Μ)?[0003]然而,現(xiàn)有的RAID-6陣列編碼存在以下問題:在磁盤陣列失效的情況下,失效磁盤的重構(gòu)性能不高;構(gòu)建存儲系統(tǒng)的陣列大小受素?cái)?shù)的限定,即構(gòu)建RAID陣列大小不靈活;在寫密集的負(fù)載情況下,磁盤陣列負(fù)載不均衡。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于異或的垂直RAID-6編碼方法,其目的在于在磁盤失效的情況下保障了失效磁盤的快速重構(gòu),同時(shí)具有構(gòu)建靈活的RAID陣列大小,具有均勻負(fù)載的特性。[0005]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于異或的垂直RAID-6編碼方法,包括以下步驟:[0006](1)從API接口獲取請求隊(duì)列信息;[0007](2)判斷該請求隊(duì)列信息是否是構(gòu)建請求,如果是構(gòu)建請求,則進(jìn)入步驟(3),否則進(jìn)入步驟(9);[0008](3)根據(jù)該構(gòu)建請求獲取RAID-6系統(tǒng)中的一個(gè)未構(gòu)建條帶,以獲取該未構(gòu)建條帶的條帶信息;[0009](4)根據(jù)所獲取的條帶信息對該未構(gòu)建條帶中所有塊進(jìn)行編號,以得到所有塊的標(biāo)識;[0010](5)根據(jù)塊標(biāo)識,選擇一個(gè)未構(gòu)建的校驗(yàn)塊Cm_u,以獲取該校驗(yàn)塊Cm_u標(biāo)識,其中m表示RAID-6系統(tǒng)中一個(gè)條帶的總行數(shù),η表示一個(gè)條帶的總列數(shù),且有O≤j≤n_l ;[0011](6)根據(jù)獲取的校驗(yàn)塊Cm_u標(biāo)識,利用以下公式進(jìn)行計(jì)算,以得到該校驗(yàn)塊CniM的值:
【權(quán)利要求】
1.一種基于異或的垂直RAID-6編碼方法,其特征在于,包括以下步驟: (1)從API接口獲取請求隊(duì)列信息; (2)判斷該請求隊(duì)列信息是否是構(gòu)建請求,如果是構(gòu)建請求,則進(jìn)入步驟(3),否則進(jìn)入步驟(9); (3)根據(jù)該構(gòu)建請求獲取RAID-6系統(tǒng)中的一個(gè)未構(gòu)建條帶,以獲取該未構(gòu)建條帶的條帶信息; (4)根據(jù)所獲取的條帶信息對該未構(gòu)建條帶中所有塊進(jìn)行編號,以得到所有塊的標(biāo)識; (5)根據(jù)塊標(biāo)識,選擇一個(gè)未構(gòu)建的校驗(yàn)塊Cm_u,以獲取該校驗(yàn)塊Cm^標(biāo)識,其中m表示RAID-6系統(tǒng)中一個(gè)條帶的總行數(shù),η表示一個(gè)條帶的總列數(shù),且有OSjSn-1; (6)根據(jù)獲取的校驗(yàn)塊Cm_y標(biāo)識,利用以下公式進(jìn)行計(jì)算,以得到該校驗(yàn)塊Cm_y的值:
2.根據(jù)權(quán)利要求1所述的垂直RAID-6編碼方法,其特征在于,步驟(12)包括: (12-1)獲取該未重構(gòu)條帶中第一個(gè)失效塊的標(biāo)識i=0 ; (12_2)判斷失效塊的標(biāo)識i是否等于m_l,如果等于m_l,則表不該失效塊是校驗(yàn)塊,然后進(jìn)入步驟(12-3),否則表示該失效塊是數(shù)據(jù)塊,然后進(jìn)入步驟(12-4); (12-3)根據(jù)所獲取的失效塊標(biāo)識,利用步驟(6)的公式進(jìn)行計(jì)算,以重構(gòu)該校驗(yàn)塊C111U.,然后進(jìn)入步驟(I2-5); (12-4)根據(jù)所獲取的失效塊標(biāo)識,利用以下公式進(jìn)行計(jì)算,以重構(gòu)數(shù)據(jù)塊Cu:
3.根據(jù)權(quán)利要求1所述的垂直RAID-6編碼方法,其特征在于,步驟(12)包括:(12-1)獲取該未重構(gòu)條帶中第一個(gè)失效塊的標(biāo)識i=0 ; (12_2)判斷失效塊的標(biāo)識i是否等于m_l,如果等于m_l,則表不該失效塊是校驗(yàn)塊,然后進(jìn)入步驟(12-3),否則表示該失效塊是數(shù)據(jù)塊,然后進(jìn)入步驟(12-4); (12-3)根據(jù)所獲取的失效塊標(biāo)識,利用步驟(6)的公式進(jìn)行計(jì)算,以重構(gòu)該校驗(yàn)塊C111U.,然后進(jìn)入步驟(I2-5); (12-4)根據(jù)所獲取的失效塊標(biāo)識,利用以下公式進(jìn)行計(jì)算,以重構(gòu)數(shù)據(jù)塊Cu:
【文檔編號】G06F3/06GK103593253SQ201310595326
【公開日】2014年2月19日 申請日期:2013年11月22日 優(yōu)先權(quán)日:2013年11月22日
【發(fā)明者】黃建忠, 曹強(qiáng), 謝長生, 謝平 申請人:華中科技大學(xué)