一種提高raid-6可擴(kuò)展性的數(shù)據(jù)遷移方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)存儲(chǔ)領(lǐng)域,具體設(shè)及一種提高RAID-6可擴(kuò)展性的數(shù)據(jù)遷移方 法。
【背景技術(shù)】
[000引隨著多盤故障的可能性的增長(zhǎng),RAID-6也受到了越來越多的關(guān)注。目前存在著大 量的基于多種可擦除編碼技術(shù)的RAID-6的實(shí)現(xiàn),MDS(MaximumDistanceS巧ar油le,最大 距離可分碼)編碼便是其中的一種傳統(tǒng)編碼。MDS編碼通過提供一定量的冗余來實(shí)現(xiàn)應(yīng)對(duì) 磁盤故障的保護(hù)。根據(jù)數(shù)據(jù)與檢驗(yàn)的分布,MDS編碼可W分為水平編碼與垂直編碼。
[000引然而,目前磁盤陣列中的已有的解決方案并不適用于RAID-6的擴(kuò)展(向已有的磁 盤陣列中添加新的磁盤)。在尋找有效的解決方案,W有效地對(duì)基于MDS編碼的RAID-6系統(tǒng) 進(jìn)行擴(kuò)展的問題上,研究人員面臨著極大的挑戰(zhàn)。首先,目前已有的針對(duì)RAID-0或RAID-5 的通用性的方案并不適用于多種多樣的RAID-6的編碼。例如,RDP與P-code中數(shù)據(jù)與檢 驗(yàn)有著不同的布局,如圖1與圖2所示。因此擴(kuò)展方案需要根據(jù)RDP或P-code的特性分別 進(jìn)行設(shè)計(jì)。其次,傳統(tǒng)的擴(kuò)展方案是基于round-robin順序的,但其較高的校驗(yàn)遷移、修改 與計(jì)算的代價(jià)使其不適用于RAID-6。原因之一在于RAID-6編碼的校驗(yàn)布局十分復(fù)雜。另 一個(gè)原因在于擴(kuò)展之后條帶會(huì)發(fā)生戲劇性的變化。例如,任意數(shù)據(jù)元素的移動(dòng)將會(huì)在與其 相關(guān)的校驗(yàn)元素上導(dǎo)致可達(dá)8次的額外的I/O操作。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種提高RAID-6可擴(kuò)展性的數(shù)據(jù)遷移方法,能夠加速 RAID-6的擴(kuò)展過程,減少遷移時(shí)間。
[0005] 為解決上述問題,本發(fā)明提供一種提高RAID-6可擴(kuò)展性的數(shù)據(jù)遷移方法,包括:
[0006] 為擴(kuò)展前編碼矩陣的單個(gè)數(shù)據(jù)塊與校驗(yàn)塊定義不同的優(yōu)先級(jí);
[0007] 比較擴(kuò)展前后的編碼矩陣的陳列布局并尋找一個(gè)代價(jià)最小的方式改變擴(kuò)展前的 使用中的條帶的陳列布局,確定移動(dòng)擴(kuò)展前的使用中的條帶中具有最高的移動(dòng)優(yōu)先級(jí)的數(shù) 據(jù)塊與校驗(yàn)塊;
[0008] 根據(jù)編碼矩陣的條帶中數(shù)據(jù)塊的分布,確定選擇一組條帶中的一小部分條帶W進(jìn) 行后續(xù)平衡工作負(fù)載;
[0009] 根據(jù)確定的移動(dòng)擴(kuò)展前的使用中的條帶中具有最高的移動(dòng)優(yōu)先級(jí)的數(shù)據(jù)塊與校 驗(yàn)塊和確定選擇的一組條帶中的一小部分條帶為每個(gè)條帶進(jìn)行數(shù)據(jù)遷移。
[0010] 進(jìn)一步的,在上述方法中,當(dāng)所述編碼矩陣為水平編碼矩陣,比較擴(kuò)展前后的編碼 矩陣的陳列布局并尋找一個(gè)代價(jià)最小的方式改變擴(kuò)展前的使用中的條帶的陳列布局,確定 移動(dòng)擴(kuò)展前的使用中的條帶中具有最高的移動(dòng)優(yōu)先級(jí)的數(shù)據(jù)塊與校驗(yàn)塊包括:
[0011] 標(biāo)記擴(kuò)展后的校驗(yàn)盤,其中,校驗(yàn)盤保留,擴(kuò)展的磁盤均作為數(shù)據(jù)盤使用;
[0012] 標(biāo)記擴(kuò)展后的磁盤,其中,將m塊磁盤添加到磁盤陣列中,新添加的磁盤被插在所 有數(shù)據(jù)磁盤的中間,m為正整數(shù);
[0013] 進(jìn)行行標(biāo)記,其中,如果一個(gè)擴(kuò)展前的使用中的條帶包含了n,個(gè)數(shù)據(jù)行,則會(huì)在擴(kuò) 展后的使用中的條帶標(biāo)記上相同的行標(biāo)記,n,為正整數(shù);
[0014] 進(jìn)行特殊校驗(yàn)處理,W確定移動(dòng)擴(kuò)展前的使用中的條帶中具有最高的移動(dòng)優(yōu)先級(jí) 的數(shù)據(jù)塊與校驗(yàn)塊。
[0015] 進(jìn)一步的,在上述方法中,進(jìn)行特殊校驗(yàn)處理,W確定移動(dòng)擴(kuò)展前的使用中的條帶 中具有最高的移動(dòng)優(yōu)先級(jí)的數(shù)據(jù)塊與校驗(yàn)塊包括:
[0016] 如果水平校驗(yàn)塊參加構(gòu)成了斜向或反斜向校驗(yàn)塊,那么水平鏈中數(shù)據(jù)塊或校驗(yàn)塊 有著比斜向或反斜向校驗(yàn)鏈中更高的優(yōu)先級(jí);
[0017] 相反地,如果斜向或反斜向校驗(yàn)塊參與構(gòu)成了水平校驗(yàn)塊,那么斜向或反斜向校 驗(yàn)塊中的數(shù)據(jù)塊與校驗(yàn)塊移動(dòng)有著比水平鏈中更高的優(yōu)先級(jí)。
[0018] 進(jìn)一步的,在上述方法中,當(dāng)所述編碼矩陣為垂直編碼矩陣,比較擴(kuò)展前后的編碼 矩陣的陳列布局并尋找一個(gè)代價(jià)最小的方式改變擴(kuò)展前的使用中的條帶的陳列布局,確定 移動(dòng)擴(kuò)展前的使用中的條帶中具有最高的移動(dòng)優(yōu)先級(jí)的數(shù)據(jù)塊與校驗(yàn)塊包括:
[0019] 進(jìn)行原始盤標(biāo)記,其中,原始磁盤標(biāo)識(shí)(ID)被保留,而擴(kuò)展磁盤將用作數(shù)據(jù)盤;
[0020] 進(jìn)行擴(kuò)展盤標(biāo)記,將m塊盤加入一個(gè)陣列中,新加入的m塊盤被標(biāo)記為最后的m 列。
[0021] 進(jìn)一步的,在上述方法中,所述條帶中數(shù)據(jù)塊的分布根據(jù)數(shù)據(jù)塊分布的統(tǒng)計(jì)信息 得到。
[0022] 進(jìn)一步的,在上述方法中,確定選擇一組條帶中的一小部分條帶W進(jìn)行后續(xù)平衡 工作負(fù)載中,水平編碼矩陣的一小部分條帶因?yàn)檩^高的遷移代價(jià)而進(jìn)行平衡工作負(fù)載犧 牲。
[0023] 進(jìn)一步的,在上述方法中,確定選擇一組條帶中的一小部分條帶W進(jìn)行后續(xù)平衡 工作負(fù)載中,垂直編碼矩陣的一小部分條帶為不作遷移的保留的條帶。
[0024] 與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)對(duì)單個(gè)/多個(gè)條帶的全局,實(shí)現(xiàn)數(shù)據(jù)遷移最小化和 校驗(yàn)的修改與計(jì)算,該方法通過減少修改校驗(yàn)的次數(shù),異或計(jì)算的次數(shù),總共的I/O操作的 次數(shù)W及遷移時(shí)間來加速RAID-6的擴(kuò)展過程;該方法使I/O在磁盤陣列中的磁盤上均勻分 布,減少了遷移時(shí)間。
【附圖說明】
[00巧]圖1顯示了畑P編碼磁盤數(shù)從6到8的擴(kuò)展示意圖,其中,圖1 (a)顯示P= 5時(shí)RDP編碼的行校驗(yàn)示意圖,圖1 (a)顯示P= 5時(shí)RDP編碼的斜校驗(yàn)示意圖,圖1 (C)顯示P =7時(shí)RDP編碼的行校驗(yàn)示意圖,圖1 (d)顯示P= 7時(shí)RDP編碼的斜校驗(yàn)示意圖;
[0026] 圖2說明了P-Code編碼磁盤數(shù)從6擴(kuò)展到7的示意圖,其中,圖2 (a)顯示P= 7,p-1塊磁盤時(shí)P-Code的垂直校驗(yàn)示意圖,圖2化)顯示P=7,P塊磁盤時(shí)P-Code的垂直 校驗(yàn)示意圖;
[0027] 圖3為總結(jié)不同優(yōu)先級(jí)的數(shù)據(jù)的校驗(yàn)修改開銷的示意圖;
[002引圖4是BlockO的數(shù)據(jù)移動(dòng)情況示意圖,其中,圖4(a)為行校驗(yàn)示意圖,圖4(b)為 斜松驗(yàn)不意圖;
[0029] 圖5為總結(jié)擴(kuò)展盤標(biāo)記開銷情況的示意圖;
[0030] 圖6是本發(fā)明一實(shí)施例(RDP編碼)的基于優(yōu)先級(jí)的遷移過程示意圖,其中,圖 6(a)為邏輯地址示意圖,圖6(b)為行校驗(yàn)示意圖,圖6(c)為斜校驗(yàn)示意圖;
[0031] 圖7是本發(fā)明一實(shí)施例(P-Code編碼)的基于優(yōu)先級(jí)的遷移過程示意圖,其中,圖 7(a)為邏輯地址示意圖,圖7(b)為垂直校驗(yàn)示意圖;
[0032] 圖8是本發(fā)明一實(shí)施例(RDP編碼)的條帶集中的數(shù)據(jù)分布示意圖;
[0033] 圖9是本發(fā)明一實(shí)施例(P-Code編碼)的條帶集中的數(shù)據(jù)分布示意圖;
[0034] 圖10是本發(fā)明一實(shí)施例伽P編碼)的在負(fù)載平衡步驟中基于優(yōu)先級(jí)的遷移過程 示意圖,其中,圖10(a)為邏輯地址示意圖,圖10化)為行校驗(yàn)示意圖,圖10(C)為斜校驗(yàn)示 意圖;
[00巧]圖11是本發(fā)明一實(shí)施例(P-Code編碼)的在負(fù)載平衡步驟中基于優(yōu)先級(jí)的遷移 過程示意圖,其中,圖11(a)為邏輯地址示意圖,圖11(b)為垂直校驗(yàn)示意圖;
【具體實(shí)施方式】
[0036] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0037] 本發(fā)明提供一種提高RAID-6可擴(kuò)展性的數(shù)據(jù)遷移方法,包括:
[0038] 步驟S1,優(yōu)先級(jí)定義;為擴(kuò)展前編碼矩陣的單個(gè)數(shù)據(jù)塊與校驗(yàn)塊定義不同的優(yōu)先 級(jí);根據(jù)圖3中總結(jié)的校驗(yàn)修改次數(shù),我們定義了該方法中數(shù)據(jù)塊與