一種針對rs編碼存儲集群的存儲擴容方法
【專利摘要】本發(fā)明公開了一種針對RS碼存儲集群的高效存儲擴容方法,涉及數(shù)據(jù)重新分布和校驗更新兩個過程。具體包括:增加Δk個數(shù)據(jù)節(jié)點,并按照轉(zhuǎn)置式數(shù)據(jù)布局重新分布舊數(shù)據(jù),其中原始數(shù)據(jù)分塊只在舊數(shù)據(jù)節(jié)點和新數(shù)據(jù)節(jié)點之間遷移,新數(shù)據(jù)分塊直接填充到遷移后所空出區(qū)域;完成數(shù)據(jù)重新分布時,需要進行相應(yīng)校驗分塊的更新操作。上述數(shù)據(jù)重新分布支持多次擴容并保持數(shù)據(jù)分布的均勻性。由于數(shù)據(jù)重新分布采用轉(zhuǎn)置式數(shù)據(jù)布局,校驗分塊更新時,舊數(shù)據(jù)節(jié)點可直接計算校驗差異分塊ΔP,校驗節(jié)點利用此校驗差異分塊ΔP完成校驗分塊的更新,從而減少校驗更新開銷。本發(fā)明中存儲擴容方法不僅能提高存儲效率,而且能完成高效擴容。
【專利說明】一種針對RS編碼存儲集群的存儲擴容方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機存儲領(lǐng)域,更具體地,涉及一種針對RS碼存儲集群的存儲擴容 方法。
【背景技術(shù)】
[0002] 糾刪碼廣泛的應(yīng)用于分布式存儲,集群存儲按照糾刪編碼方式將多個存儲節(jié)點進 行連接,構(gòu)成具有一定容錯能力的存儲系統(tǒng)。糾刪編碼主要包括里德-索羅蒙編碼(Reed Solomon Codes,RS Codes)和奇偶校驗矩陣編碼。在相同容量條件下,RS編碼具有比奇偶 校驗矩陣編碼更高的容錯能力。
[0003] 隨著存儲集群的運行和使用,集群中存儲容量將逐漸減少,需要通過增加存儲節(jié) 點的方式完成擴容的目的。這里,集群擴容是主要是指對RS存儲集群進行數(shù)據(jù)節(jié)點的添 加。
[0004] 現(xiàn)有的磁盤陣列擴展方案主要針對RAID-0、RAID-4、RAID-5和RAID-6,它們都不 適合于集群存儲擴容。RAID-O只處理數(shù)據(jù)的遷移,不對數(shù)據(jù)進行校驗,數(shù)據(jù)安全性不高。 RAID-4要求在所有數(shù)據(jù)磁盤上有均勻的數(shù)據(jù)分布,這會導(dǎo)致大量的數(shù)據(jù)遷移。雖然有一種 可選的RAID-4擴展方案,它通過移動部分數(shù)據(jù)分塊到新的磁盤上來減少數(shù)據(jù)的遷移,但是 在填充新數(shù)據(jù)時,這種方案更新校驗分塊的代價很高。RAID-5采用基于輪詢的數(shù)據(jù)分布,應(yīng) 用于RS存儲集群時,由于數(shù)據(jù)移動和校驗更新,集群將面臨1/0開銷過高的問題。RAID-6 的擴展只用于特定的RAID-6編碼設(shè)計,不適用于糾刪碼存儲集群。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種針對里德-索羅蒙碼存 儲集群的存儲擴容方法,不僅可以提高存儲集群的存儲容量,而且能最小化數(shù)據(jù)遷移量和 校驗更新開銷。
[0006] 為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種針對RS編碼存儲集群的存儲擴容方 法,包括如下步驟:
[0007] (1)集群存儲空間的擴容與數(shù)據(jù)重新分布的過程,包括如下子步驟:
[0008] (I. 1)增加存儲節(jié)點,向存儲集群中添加新的數(shù)據(jù)節(jié)點在物理上增加存儲集群的 容量;
[0009] (L 2)舊數(shù)據(jù)分塊的重新分布,包括如下子步驟:
[0010] (1.2. 1)讀取舊數(shù)據(jù)分塊的邏輯塊號X,然后按行、列號計算數(shù)據(jù)分塊坐標 (row。, colQ),其中row。= x/k表示X除以k的商,col。= x% k表示求X除以k的余數(shù),k 是存儲集群的數(shù)據(jù)節(jié)點個數(shù);
[0011] (1. 2. 2)根據(jù)前面計算出的數(shù)據(jù)分塊坐標(r〇W(l,c〇U來判斷數(shù)據(jù)分塊是否需要 遷移;令p = roW(i% k',判斷的標準是:若0彡p < k,數(shù)據(jù)分塊不需要遷移,則該數(shù)據(jù)分塊 的地址仍舊為(r〇W(l,C〇U ;否則,該數(shù)據(jù)分塊需要進行遷移;
[0012] (I. 2. 3)當舊數(shù)據(jù)節(jié)點中的待遷移數(shù)據(jù)分塊完成遷移后,由當前數(shù)據(jù)節(jié)點計算校 驗差異分塊AP并傳送到校驗節(jié)點;由存放數(shù)據(jù)分塊DCi的節(jié)點N(DCi)為第row行數(shù)據(jù) 分塊計算r個校驗差異分塊(APrau, APmw,2,...,APmw,J并分別發(fā)送到r個校驗節(jié)點 (N(PC1),N(PC2),--,N(PCr)};其中1AP rOT, a j;i 是冗余矩陣中第 i 行、第 j 列的元素,Dyw代表地址為(i,row)的數(shù)據(jù)分塊,r代表校驗節(jié)點的個數(shù);
[0013] (1.2.4)重復(fù)執(zhí)行步驟(1.2. 1)、(1.2.2)、(1.2. 3),直到全部舊數(shù)據(jù)分塊處理完 成,使所有數(shù)據(jù)分塊均勻分布在存儲集群中,完成數(shù)據(jù)重新分布過程;
[0014] (1. 3)新數(shù)據(jù)分塊的填充;包括如下子步驟:
[0015] (1. 3. 1)根據(jù)新數(shù)據(jù)分塊的邏輯塊號X計算其填充目的地址(row,col);令y =
【權(quán)利要求】
1. 一種針對RS編碼存儲集群的存儲擴容方法,其特征在于,該方法包括以下步驟: (1) 集群存儲空間的擴容與數(shù)據(jù)重新分布的過程,包括如下子步驟: (1. 1)增加存儲節(jié)點,向存儲集群中添加新的數(shù)據(jù)節(jié)點在物理上增加存儲集群的容 量; (1.2)舊數(shù)據(jù)分塊的重新分布,包括如下子步驟: (1.2. 1)讀取舊數(shù)據(jù)分塊的邏輯塊號X,然后按行、列號計算數(shù)據(jù)分塊坐標 (row。,colQ),其中row。=x/k表示x除以k的商,colQ =x%k表示求x除以k的余數(shù),k 是存儲集群的數(shù)據(jù)節(jié)點個數(shù); (1. 2. 2)根據(jù)前面計算出的數(shù)據(jù)分塊坐標(r〇W(l,colj來判斷數(shù)據(jù)分塊是否需要遷移; 令P=rowO%k',判斷的標準是:若0彡p<k,數(shù)據(jù)分塊不需要遷移,則該數(shù)據(jù)分塊的地 址仍舊為(rowolj;否則,該數(shù)據(jù)分塊需要進行遷移; (1.2.3)當舊數(shù)據(jù)節(jié)點中的待遷移數(shù)據(jù)分塊完成遷移后,由當前數(shù)據(jù)節(jié)點計算校驗 差異分塊AP并傳送到校驗節(jié)點;由存放數(shù)據(jù)分塊DQ的節(jié)點N(DCi)為第row行數(shù)據(jù)分 塊計算r個校驗差異分塊{APM1U,APmw,2,...,APMwj并分別發(fā)送到r個校驗節(jié)點 {N(PC1),N(PC2),.. ,N(PCr)}
是冗余矩陣中第i行、第j 列的元素,代表地址為(i,row)的數(shù)據(jù)分塊,r代表校驗節(jié)點的個數(shù); (1. 2. 4)重復(fù)執(zhí)行步驟(1. 2. 1)、(1. 2. 2)、(1. 2. 3),直到全部舊數(shù)據(jù)分塊處理完成,使 所有數(shù)據(jù)分塊均勻分布在存儲集群中,完成數(shù)據(jù)重新分布過程; (1. 3)新數(shù)據(jù)分塊的填充;包括如下子步驟: (1.3. 1)根據(jù)新數(shù)據(jù)分塊的邏輯塊號x計算其填充目的地址(row,col);令y=x-kXC,其中
col=y%k',C表示存儲節(jié)點能容納的數(shù)據(jù) 分塊數(shù)量; (1. 3. 2)將新數(shù)據(jù)分塊填充到對應(yīng)的填充目的地址; (1. 3. 3)如果有一行數(shù)據(jù)分塊由新數(shù)據(jù)分塊填充完成,則利用RS編碼生成校驗分塊并 傳送到校驗節(jié)點; (1. 3. 4)重復(fù)執(zhí)行(1. 3. 1)、(1. 3. 2)、(1. 3. 3)直到新數(shù)據(jù)分塊全部填充完成; (2) 數(shù)據(jù)重新分布之后相應(yīng)校驗分塊更新的過程,包括如下子步驟: (2. 1)步驟(1. 2)會產(chǎn)生校驗差異分塊AP、步驟(1. 3)會生成全新的校驗分塊PnOT,用P表示原校驗分塊,當校驗節(jié)點接收到由數(shù)據(jù)遷移產(chǎn)生的校驗差異分塊△P時,校驗節(jié)點以 P+AP更新原校驗分塊;當校驗節(jié)點接收到由新數(shù)據(jù)填充產(chǎn)生的Pmw時,校驗節(jié)點用Pmw替 換對應(yīng)的原校驗分塊; (2. 2)重復(fù)執(zhí)行(2. 1),直到所有校驗分塊都完成更新。
2. 根據(jù)權(quán)利要求1所述的擴容方法,其特征在于,所述步驟(1.2. 2)中根據(jù)轉(zhuǎn)置式數(shù) 據(jù)布局來計算擴容后數(shù)據(jù)分塊的新地址(row,col),其中row= (rowO/k')*k' +colQ,col= row%k',k' =k+Ak,Ak是存儲集群新增數(shù)據(jù)節(jié)點個數(shù)。
【文檔編號】G06F3/06GK104407807SQ201410579759
【公開日】2015年3月11日 申請日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】黃建忠, 曹強, 謝長生, 梁先海, 黃文勝 申請人:華中科技大學(xué)