一種存儲系統(tǒng)構(gòu)建方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種存儲系統(tǒng)構(gòu)建方法及裝置,該存儲系統(tǒng)具有節(jié)點(diǎn)可動態(tài)調(diào)整以及高容災(zāi)的特性,方案包括:確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù);將信息節(jié)點(diǎn)以及校驗(yàn)節(jié)點(diǎn)按順序編號;分別針對各校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成{0,1}隨機(jī)向量;以及分別針對各校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與信息節(jié)點(diǎn)建立編碼關(guān)系,包括:確定出校驗(yàn)節(jié)點(diǎn)對應(yīng)隨機(jī)向量中值為1的各元素;確定出分別與值為1的各元素在該隨機(jī)向量中所在位置對應(yīng)的各信息節(jié)點(diǎn);將對應(yīng)的各信息節(jié)點(diǎn)依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的校驗(yàn)節(jié)點(diǎn)的數(shù)據(jù)。采用本發(fā)明實(shí)施例提供的方案,在構(gòu)建存儲系統(tǒng)時(shí),降低了運(yùn)算的代價(jià),提高了計(jì)算效率,以及以低冗余消耗實(shí)現(xiàn)高可靠性,并具有卓越的節(jié)點(diǎn)動態(tài)調(diào)整能力。
【專利說明】
一種存儲系統(tǒng)構(gòu)建方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及電子信息文件的編碼組織與存儲技術(shù)領(lǐng)域,尤其涉及一種存儲系統(tǒng)構(gòu) 建方法及裝置。
【背景技術(shù)】
[0002] 近些年,隨著互聯(lián)網(wǎng)、云計(jì)算、移動終端和物聯(lián)網(wǎng)的迅猛發(fā)展,全球數(shù)據(jù)量在2010 年已進(jìn)入ZB時(shí)代,并且每年還在持續(xù)增長。全球早已邁入以數(shù)據(jù)為中心的信息時(shí)代,而如何 高效、可靠、安全的保存數(shù)據(jù)已成為信息時(shí)代的基石,同時(shí)也成為存儲領(lǐng)域的首要問題。
[0003] 當(dāng)前,分布式存儲系統(tǒng)正以互聯(lián)網(wǎng)為媒介的新型存儲模式,逐步取代傳統(tǒng)單點(diǎn)存 儲模式。它能以低成本架構(gòu)系統(tǒng),并取得高可靠的海量數(shù)據(jù)存儲效果,現(xiàn)已成為各"大數(shù)據(jù)" 公司首選方案。
[0004] 當(dāng)前分布式存儲系統(tǒng)仍主要以復(fù)制容災(zāi)方法保證數(shù)據(jù)可靠性。它有存儲操作簡 單、讀取操作快速等優(yōu)點(diǎn);但數(shù)據(jù)冗余度高,尤其當(dāng)容災(zāi)參數(shù)或數(shù)據(jù)存儲量不斷增加,基于 復(fù)制策略的存儲系統(tǒng)成本將不斷增加。
[0005] 針對復(fù)制策略高冗余度的缺陷日益明顯,分布式存儲系統(tǒng)容災(zāi)方法正逐步轉(zhuǎn)為采 用基于Reed S〇lomon(RS)糾刪碼策略。RS碼由于自身編碼特性可實(shí)現(xiàn)任意容災(zāi)參數(shù)的需 求,并能使冗余數(shù)據(jù)量遠(yuǎn)低于復(fù)制策略。
[0006] 然而,RS碼的計(jì)算是建立在有限域上,運(yùn)算代價(jià)大,限制了它的推廣。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實(shí)施例提供一種存儲系統(tǒng)構(gòu)建方法及裝置,用以解決現(xiàn)有技術(shù)中存在的存 儲系統(tǒng)中節(jié)點(diǎn)間進(jìn)行運(yùn)算的代價(jià)大,計(jì)算效率低的問題。
[0008] 本發(fā)明實(shí)施例提供一種存儲系統(tǒng)構(gòu)建方法,所述存儲系統(tǒng)包括信息節(jié)點(diǎn)和校驗(yàn)節(jié) 點(diǎn),所述信息節(jié)點(diǎn)用于存儲數(shù)據(jù),所述校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且所述存儲系統(tǒng)中各節(jié)點(diǎn)的 存儲容量相同,所述方法包括:
[0009] 確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為所述存儲系統(tǒng)的節(jié)點(diǎn)總數(shù),k為所述存 儲系統(tǒng)的信息節(jié)點(diǎn)數(shù),n-k為所述存儲系統(tǒng)的校驗(yàn)節(jié)點(diǎn)數(shù),T為單個(gè)元素在{0,1}中取值為1 的概率;其中 n,k均為正整數(shù),0<T<1;
[0010] 將k個(gè)信息節(jié)點(diǎn)按順序編號為,以及將n-k個(gè)校驗(yàn)節(jié)點(diǎn)按順序編號為 {P^Ph…,Pn-k},其中,n-k個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零;
[0011] 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k的{0,1}隨機(jī)向量gj = (aji,a」2,···,ajk),1彡j<n_k,ae {〇,1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中,向量中各 元素#以概率T取值為1;
[0012] 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟:
[0013] 確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj中值為1的各元素 aji;
[0014] 確定出分別與值為1的各元素 aji在向量gj中所在位置對應(yīng)的各信息節(jié)點(diǎn)Di;
[0015] 將校驗(yàn)節(jié)點(diǎn)匕和所述對應(yīng)的各信息節(jié)點(diǎn)Di依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的 Pj〇
[0016] 進(jìn)一步的,還包括:
[0017]在所述存儲系統(tǒng)的第i個(gè)信息節(jié)點(diǎn)Di的存儲數(shù)據(jù)發(fā)生變化△ Di后,針對n-k個(gè)校驗(yàn) 節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn)Pj,若該校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj的第i個(gè)元素 aji的值為1,則將該校驗(yàn) 節(jié)點(diǎn)h與該信息節(jié)點(diǎn)的變化量A Di進(jìn)行異或運(yùn)算,結(jié)果作為更新后的匕,否則,保持校驗(yàn)節(jié) 點(diǎn)Pj不變。
[0018] 進(jìn)一步的,還包括:
[0019] 當(dāng)需要在所述存儲系統(tǒng)中添加存儲容量相同的1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2, 一1+1} 時(shí),分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0,1}隨機(jī)向量hj = (bji,!^,…,bji),l彡j$n-k,be{〇,l},hj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中,向量中各元 素 b#以概率T取值為1;
[0020] 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟:
[0021]確定出校驗(yàn)節(jié)點(diǎn)匕對應(yīng)向量h中值為1的各元素 bJ1;
[0022] 確定出分別與值為1的各元素 b#在向量匕中所在位置對應(yīng)的各信息節(jié)點(diǎn)Dk+1;
[0023] 將校驗(yàn)節(jié)點(diǎn)匕和所述對應(yīng)的各信息節(jié)點(diǎn)Dk+1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后 的Pj;
[0024] 將1個(gè)信息節(jié)點(diǎn){01{+1,01{+2,~,01{+1}添加到所述存儲系統(tǒng)中,以及分別將隨機(jī)向量 hj對應(yīng)添加到隨機(jī)向量的尾部,得到更新后的隨機(jī)向量gj。
[0025] 進(jìn)一步的,在所述分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟之 前,還包括:
[0026] 確定將要添加的1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,H_,Dk+i}是否均未存儲數(shù)據(jù),如果不是,則 執(zhí)行所述分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟這一步驟;以及
[0027] 如果是,則直接將1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,…,Dk+1_加到所述存儲系統(tǒng)中,以及分 別將隨機(jī)向量h對應(yīng)添加到隨機(jī)向量的尾部,得到更新后的隨機(jī)向量 gj。
[0028] 進(jìn)一步的,還包括:
[0029] 當(dāng)需要在所述存儲系統(tǒng)中刪除1個(gè)信息節(jié)點(diǎn){&,&,···,(M時(shí),確定待刪除的1個(gè)信 息節(jié)點(diǎn){&,&,···,&}在信息節(jié)點(diǎn)集合中的編號;
[0030] 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0,1}向量fj = (Cji,Cj2,…,Cji),K j彡n_k,fj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的向量,其中,Cji為信息節(jié)點(diǎn)Ci在信息節(jié) 點(diǎn)集合中的編號在U中對應(yīng)位置的元素;
[0031 ]分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟:
[0032]確定出校驗(yàn)節(jié)點(diǎn)匕對應(yīng)向量t中值為1的各元素
[0033] 確定出分別與值為1的各元素 Cjl在向量灼中所在位置對應(yīng)的各信息節(jié)點(diǎn)C1;
[0034] 將校驗(yàn)節(jié)點(diǎn)匕和所述對應(yīng)的各信息節(jié)點(diǎn)Q依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的 Pj;
[0035] 將1個(gè)信息節(jié)點(diǎn){C^Cs,···,&}從所述存儲系統(tǒng)中刪除,以及分別從隨機(jī)向量g沖 刪除各信息節(jié)點(diǎn){&,&,···,&}的編號對應(yīng)位置的元素,得到更新后的隨機(jī)向量 gj。
[0036] 進(jìn)一步的,在分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0, 1}向量灼=(?!?,(^2,--.,(^1)之前,還包括:
[0037] 確定將要刪除的1個(gè)信息節(jié)點(diǎn){&,&,···,&}是否均未存儲數(shù)據(jù),如果不是,則執(zhí)行 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0,1}向量f j = (cji,Cj2,…, Cjl)這一步驟;以及
[0038] 如果是,則直接將1個(gè)信息節(jié)點(diǎn){&,&,···,(Μ從所述存儲系統(tǒng)中刪除,以及分別從 隨機(jī)向量U中刪除各信息節(jié)點(diǎn){&,(: 2,···,(Μ的編號對應(yīng)位置的元素,得到更新后的隨機(jī)向 量gj。
[0039] 進(jìn)一步的,還包括:
[0040] 當(dāng)需要在所述存儲系統(tǒng)中添加存儲容量相同的1個(gè)校驗(yàn)節(jié)點(diǎn){Pn-k+1,Pn- k+2,…, Pn-k+i}時(shí),分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k的{0,1}隨機(jī)向量 gn-k+j - (Sin-k+j, 1,Sin-k+j, 2,…,Sin-k+j, k),l^ij^il,aG {〇,1},gn-k+j為 驗(yàn) 點(diǎn)Pn-k+j 對應(yīng)的隨機(jī) 向量,其中,向量中各兀素 an-+j,i以概率T取值為1;
[0041 ]分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟:
[0042]確定出校驗(yàn)節(jié)點(diǎn)Pn-k+j對應(yīng)向量gn-k+j中值為1的各元素&1^+j, i;
[0043] 確定出分別與值為1的各元素 an-k+u在向量gn-k+沖所在位置對應(yīng)的各信息節(jié)點(diǎn) Di;
[0044] 將校驗(yàn)節(jié)點(diǎn)Pn-k+j和所述對應(yīng)的各信息節(jié)點(diǎn)Di依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后 的 Pn-k+j。
[0045] 進(jìn)一步的,還包括:
[0046] 確定待刪除的校驗(yàn)節(jié)點(diǎn),從所述存儲系統(tǒng)中刪除所述待刪除的校驗(yàn)節(jié)點(diǎn)。
[0047] 進(jìn)一步的,所述存儲系統(tǒng)還具有容災(zāi)參數(shù)Η,δ},其中,t+δ為所述存儲系統(tǒng)的校驗(yàn) 節(jié)點(diǎn)數(shù),所述存儲系統(tǒng)容許至多t個(gè)節(jié)點(diǎn)完出錯,δ為所述存儲系統(tǒng)保證高容災(zāi)能力所需額 外節(jié)點(diǎn)數(shù),且t+δ < k、?+δ+k = η,所述方法,還包括:
[0048] 當(dāng)所述存儲系統(tǒng)的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)丟失時(shí),從所述存儲系統(tǒng)剩余的η-1個(gè) 節(jié)點(diǎn)中任意選取k+δ個(gè)節(jié)點(diǎn),且其中包括δ'個(gè)校驗(yàn)節(jié)點(diǎn){凡巧,…,辦,},k+δ-δ'個(gè)信息節(jié)點(diǎn),1 ^t;
[0049] 將δ'個(gè)校驗(yàn)節(jié)點(diǎn)各自對應(yīng)的lXk的{0,1}隨機(jī)向量取出,排列為δ' Xk的{0,1}矩 陣fez xk,其中矩陣第j行為校驗(yàn)節(jié)點(diǎn)g對應(yīng)的1父1^的{0,1}隨機(jī)向量,1<_]_^^/;
[0050] 構(gòu)造矩陣ft/ x(k+〇,矩陣x(k+f/)左部分為矩陣Xk,右部分為單位陣L·' Xf/ ;
[00511基于已知的k+δ-δ'個(gè)信息節(jié)點(diǎn)和δ'個(gè)校驗(yàn)節(jié)點(diǎn),構(gòu)造向量0(k+f/)xl,其中0( k+f/)xl& 起k位為信息節(jié)點(diǎn)池,D2,…,Dk},其中未知的信息節(jié)點(diǎn)用變量X代替,右端為{^,Ρ 2,···,&}; [0052]針對關(guān)系式Hs'x(k+f/) · 0(k+f/)Χ1 = 0進(jìn)行求解,得到丟失的1個(gè)信息節(jié)點(diǎn)的存儲數(shù) 據(jù);
[0053] 將得到的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)恢復(fù)到所述存儲系統(tǒng)中。
[0054] 本發(fā)明實(shí)施例還提供一種存儲系統(tǒng)構(gòu)建裝置,其特征在于,所述存儲系統(tǒng)包括信 息節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),所述信息節(jié)點(diǎn)用于存儲數(shù)據(jù),所述校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且所述存儲 系統(tǒng)中各節(jié)點(diǎn)的存儲容量相同,所述裝置包括:
[0055] 參數(shù)確定單元,用于確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為所述存儲系統(tǒng)的節(jié) 點(diǎn)總數(shù),k為所述存儲系統(tǒng)的信息節(jié)點(diǎn)數(shù),T為單個(gè)元素在{Ο,1}中取值為1的概率;其中η,k 均為正整數(shù),〇<Τ<1;
[0056] 編號單元,用于將k個(gè)信息節(jié)點(diǎn)按順序編號為{01,02,一,015},以及將11-1^個(gè)校驗(yàn)節(jié) 點(diǎn)按順序編號為{Pi,P2,…,P n-k},其中,n-k個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零;
[0057] 向量生成單元,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k 的{〇,1}隨機(jī)向量gj = (aji,aj2,···,ajk),1彡j彡n_k,ae {〇, 1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī) 向量,其中,向量中各兀素 aji以概率T取值為1;
[0058]編碼關(guān)系建立單元,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步 驟:
[0059] 確定出校驗(yàn)節(jié)點(diǎn)匕對應(yīng)向量g沖值為1的各元素 aJ1;
[0060] 確定出分別與值為1的各元素^^在向量中所在位置對應(yīng)的各信息節(jié)點(diǎn)D1;
[0061] 將校驗(yàn)節(jié)點(diǎn)匕和所述對應(yīng)的各信息節(jié)點(diǎn)Di依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的 Pj〇
[0062] 本發(fā)明有益效果包括:
[0063] 采用本發(fā)明實(shí)施例提供的上述存儲系統(tǒng)構(gòu)建方法,在構(gòu)建存儲系統(tǒng)的過程中,只 需要系統(tǒng)中各節(jié)點(diǎn)之間進(jìn)行簡單的異或運(yùn)算即可,從而降低了運(yùn)算的代價(jià),提高了計(jì)算效 率。
[0064] 本申請的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實(shí)施本申請而了解。本申請的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【附圖說明】
[0065]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施 例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0066] 圖1為本發(fā)明實(shí)施例提供的存儲系統(tǒng)的架構(gòu)圖;
[0067] 圖2為本發(fā)明實(shí)施例提供的存儲系統(tǒng)構(gòu)建方法的流程圖;
[0068] 圖3為本發(fā)明實(shí)施例中構(gòu)建存儲系統(tǒng)的示意圖;
[0069] 圖4為本發(fā)明實(shí)施例提供的在存儲系統(tǒng)中添加信息節(jié)點(diǎn)的流程圖;
[0070] 圖5為本發(fā)明實(shí)施例中在存儲系統(tǒng)中添加信息節(jié)點(diǎn)的示意圖;
[0071] 圖6為本發(fā)明實(shí)施例提供的從存儲系統(tǒng)中刪除信息節(jié)點(diǎn)的流程圖;
[0072] 圖7為本發(fā)明實(shí)施例中從存儲系統(tǒng)中刪除信息節(jié)點(diǎn)的示意圖;
[0073]圖8為本發(fā)明實(shí)施例提供的在存儲系統(tǒng)中添加校驗(yàn)節(jié)點(diǎn)的流程圖;
[0074] 圖9為本發(fā)明實(shí)施例中從存儲系統(tǒng)中添加校驗(yàn)節(jié)點(diǎn)的示意圖;
[0075] 圖10為本發(fā)明實(shí)施例中恢復(fù)存儲系統(tǒng)中丟失的存儲數(shù)據(jù)的流程圖;
[0076] 圖11為本發(fā)明實(shí)施例提供的存儲系統(tǒng)構(gòu)建裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0077] 為了給出降低存儲系統(tǒng)中各節(jié)點(diǎn)之間的運(yùn)算代價(jià),以及提高計(jì)算效率的實(shí)現(xiàn)方 案,本發(fā)明實(shí)施例提供了一種存儲系統(tǒng)構(gòu)建方法及裝置,以下結(jié)合說明書附圖對本發(fā)明的 優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不 用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互 組合。
[0078] 本發(fā)明實(shí)施例提供一種存儲系統(tǒng)構(gòu)建方法,如圖1所示,所構(gòu)建的該存儲系統(tǒng)包括 信息節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),信息節(jié)點(diǎn)用于存儲數(shù)據(jù),校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且存儲系統(tǒng)中各節(jié) 點(diǎn)的存儲容量相同。
[0079] 并且,該存儲系統(tǒng)在應(yīng)用過程中對存儲介質(zhì)或存儲工具并無限制,存儲數(shù)據(jù)的信 息節(jié)點(diǎn)可以是扇區(qū)、U盤、硬盤甚至為獨(dú)立的機(jī)架等等。
[0080] 進(jìn)一步的,該存儲系統(tǒng)中各節(jié)點(diǎn)可通過大規(guī)模的互聯(lián)網(wǎng)連接,亦可通過小范圍的 局域網(wǎng)連接,連接各節(jié)點(diǎn)的網(wǎng)絡(luò)類型沒有限制。并且,存儲系統(tǒng)中各節(jié)點(diǎn)可放置于不同地 域,亦可為同一機(jī)架中的不同位置,同樣沒有限制。
[0081] 如圖2所示,本發(fā)明實(shí)施例提供的存儲系統(tǒng)構(gòu)建方法,可以包括如下步驟:
[0082]步驟21、確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為存儲系統(tǒng)的節(jié)點(diǎn)總數(shù),k為存儲 系統(tǒng)的信息節(jié)點(diǎn)數(shù),n-k為存儲系統(tǒng)的校驗(yàn)節(jié)點(diǎn)數(shù),T為單個(gè)元素在{0,1}中取值為1的概率; 其中n,k均為正整數(shù),0<T<1。
[0083] 步驟22、將k個(gè)信息節(jié)點(diǎn)按順序編號為{01,02,-_,0 1{},以及將11-1^個(gè)校驗(yàn)節(jié)點(diǎn)按順 序編號為{Pi,P2,…,Pn-k},其中,n-k個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零。
[0084]步驟23、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k的{0,1}隨 機(jī)向量gj=(aji,aj2,···,ajk),1彡j彡n_k,ae {〇,1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中, 向量中各元素 a#以概率T取值為1。
[0085] 步驟24、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與信息節(jié)點(diǎn)建立編碼關(guān)系, 具體可以執(zhí)行如下步驟:
[0086] 步驟A1、確定出校驗(yàn)節(jié)點(diǎn)匕對應(yīng)向量中值為1的各元素 aJ1;
[0087] 步驟B1、確定出分別與值為1的各元素 a#在向量中所在位置對應(yīng)的各信息節(jié)點(diǎn) Di;
[0088] 步驟C1、將校驗(yàn)節(jié)點(diǎn)匕和該對應(yīng)的各信息節(jié)ADi依次進(jìn)行異或運(yùn)算,結(jié)果作為更新 后的Pj。
[0089] 具體的,以圖3所示存儲系統(tǒng)的架構(gòu)為例,對上述圖2所示的存儲系統(tǒng)構(gòu)建方法進(jìn) 行詳細(xì)描述。
[0090] 其中,假設(shè)存儲系統(tǒng)參數(shù)指標(biāo)為{n=10,k = 6},即其中共有6個(gè)信息節(jié)點(diǎn)和4個(gè)校 驗(yàn)節(jié)點(diǎn)。
[0091] 按照上述步驟22,將6個(gè)信息節(jié)點(diǎn)按順序編號為{Di,D2,D3,D4,D5,D 6},以及將4個(gè)校 驗(yàn)節(jié)點(diǎn)按順序編號為{?1,內(nèi),?3,?4},其中,4個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零。
[0092] 按照上述步驟23,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 6的 {〇,1}隨機(jī)向量gj = (aji,aj2,···,a」6),1彡j彡4,ae {〇,1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量, 其中,向量中各元素 a#以概率T取值為1。
[0093] 例如,具體的,如圖3中所示,gl = (l,0,l,l,l,0),g2=(0,l,l,0,0,0),g3=(0,l, 0,0,l,0),g 4=(l,l,0,0,l,l)〇
[0094] 然后按照上述步驟24,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與信息節(jié)點(diǎn)建立 編碼關(guān)系,具體的,下面以校驗(yàn)節(jié)點(diǎn)Pi為例進(jìn)行描述:
[0095] 按照步驟A1,校驗(yàn)節(jié)點(diǎn)P!對應(yīng)的隨機(jī)向量81 = (1,0,1,1,1,0),其中值為1的各元素 包括第1、3、4、5個(gè)元素;
[0096] 按照步驟B1,分別與值為1的各元素在向量81中所在位置對應(yīng)的各信息節(jié)點(diǎn)包括: Di、D3、D4PID5;
[0097] 按照步驟C1,將校驗(yàn)節(jié)點(diǎn)PjP該對應(yīng)的各信息節(jié)點(diǎn)01、03、〇4、0 5依次進(jìn)行異或運(yùn)算, 即巧=巧?Z)3 ?Z)4 ?Z)5,由于各校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零,所以,校驗(yàn)節(jié)點(diǎn)Pi的最 終運(yùn)算結(jié)果也可以表示為A = Α φ Φ Φ ,結(jié)果作為更新后的Pi,從而完成了針對Pi 的編碼關(guān)系的建立。
[0098] 本發(fā)明實(shí)施例中,節(jié)點(diǎn)之間的異或運(yùn)算可以是兩節(jié)點(diǎn)中相同存儲位置上的二進(jìn)制 比特符號的模2加法。
[0099] 采用相同的方法完成針對P2、P3和P4的編碼關(guān)系的建立,從而完成該存儲系統(tǒng)的構(gòu) 建。
[0100]在完成該存儲系統(tǒng)的構(gòu)建之后,當(dāng)該存儲系統(tǒng)的第i個(gè)信息節(jié)點(diǎn)Di的存儲數(shù)據(jù)發(fā) 生變化A Di后,針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn)Pj,若該校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj的第i 個(gè)元素的值為1,則可以將該校驗(yàn)節(jié)點(diǎn)匕與該信息節(jié)點(diǎn)變化量ADi進(jìn)行異或運(yùn)算,即 A = Λ ? ΔΜ ?結(jié)果作為更新后的h,從而完成節(jié)點(diǎn)編碼關(guān)系的更新,否則,保持校驗(yàn)節(jié)點(diǎn) Pj不變。
[0101] 例如,針對圖3所示的存儲系統(tǒng),若將數(shù)據(jù)存入信息節(jié)點(diǎn)D2,則針對各校驗(yàn)節(jié)點(diǎn){Pi, P2,P3,P4}對應(yīng)的隨機(jī)向量,第二位元素值為1的隨機(jī)向量包括g 2、g3和g4,貝1J相應(yīng)的,針對校 驗(yàn)節(jié)點(diǎn)P2、P 3和P4均需要進(jìn)行更新,具體更新過程詳見上述內(nèi)容,在此不再進(jìn)行詳細(xì)描述。
[0102] 采用本發(fā)明實(shí)施例提供的上述存儲系統(tǒng)構(gòu)建方法,在構(gòu)建存儲系統(tǒng)的過程中,只 需要系統(tǒng)中各節(jié)點(diǎn)之間進(jìn)行簡單的異或運(yùn)算即可,從而降低了運(yùn)算的代價(jià),提高了計(jì)算效 率。
[0103] 本發(fā)明實(shí)施例中,針對構(gòu)建的上述存儲系統(tǒng),還可以根據(jù)實(shí)際需要對其中的信息 節(jié)點(diǎn)數(shù)量進(jìn)行調(diào)整,包括添加信息節(jié)點(diǎn)和刪除信息節(jié)點(diǎn),下面結(jié)合附圖進(jìn)行詳細(xì)描述。
[0104] 當(dāng)需要在存儲系統(tǒng)中添加信息節(jié)點(diǎn)時(shí),如圖4所示,可以包括如下步驟:
[0105] 步驟41、確定需要在存儲系統(tǒng)中添加的存儲容量相同的1個(gè)信息節(jié)點(diǎn){Dk+1, Dk+2,. · ·,Dk+l} 〇
[0106] 步驟42、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0,1}隨 機(jī)向量hj=(bji,bj2,···,bji),1彡j彡n_k,be {〇,1},hj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中, 向量中各元素 b#以概率T取值為1。
[0107] 步驟43、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與新的信息節(jié)點(diǎn)建立編碼關(guān) 系,具體可以執(zhí)行如下步驟:
[0108] 步驟A2、確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量hj中值為1的各元素 bji;
[0109] 步驟B2、確定出分別與值為1的各元素 b#在向量h中所在位置對應(yīng)的各信息節(jié)點(diǎn) Dk+i ;
[0110] 步驟C2、將校驗(yàn)節(jié)點(diǎn)Pj和該對應(yīng)的各信息節(jié)點(diǎn)Dk+i依次進(jìn)行異或運(yùn)算,結(jié)果作為更 新后的Pj。
[0111] 步驟44、將1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,…,Dk+1}添加到該存儲系統(tǒng)中,以及分別將隨機(jī) 向量hj對應(yīng)添加到隨機(jī)向量gj的尾部,得到更新后的隨機(jī)向量gj。
[0112] 具體的,仍然以圖3所示存儲系統(tǒng)的架構(gòu)為例,對上述圖4所示的在存儲系統(tǒng)中添 加信息節(jié)點(diǎn)的方法進(jìn)行詳細(xì)描述。
[0113] 在圖3所示存儲系統(tǒng)的基礎(chǔ)上,需要添加3個(gè)信息節(jié)點(diǎn){D7,D8,D9}。
[0114] 按照上述步驟42,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 3的 {〇,1}隨機(jī)向量11產(chǎn)(13」1,13」2,13」3),1彡衫4,1^{〇,1},11」為校驗(yàn)節(jié)點(diǎn)?」對應(yīng)的隨機(jī)向量,其 中,向量中各元素 b#以概率T取值為1。
[0115] 例如,具體的,如圖5中所示,hi = (1,0,0),h2 = (0,1,1),h3 = (0,1,0),h4= (1,1, l)〇
[0116] 按照上述步驟43,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與新的信息節(jié)點(diǎn)建立 編碼關(guān)系,具體的,下面以校驗(yàn)節(jié)點(diǎn)Pi為例進(jìn)行描述:
[0117]按照步驟A2,校驗(yàn)節(jié)點(diǎn)Pd#應(yīng)的隨機(jī)向量b = (1,0,0),其中值為1的各元素包括第 1個(gè)元素;
[0118] 按照步驟B2,分別與值為1的各元素在向量In中所在位置對應(yīng)的各信息節(jié)點(diǎn)包括: D7;
[0119] 按照步驟C2,將校驗(yàn)節(jié)點(diǎn)Pi和該對應(yīng)的信息節(jié)點(diǎn)D7進(jìn)行異或運(yùn)算,即A = A ? A, 基于上述圖2所示流程中A = A Φ^3 Φ^5,本步驟中,校驗(yàn)節(jié)點(diǎn)Pi的最終運(yùn)算結(jié)果也 可以表示為巧=ΑΦΡ3ΦΡ4ΦΡ5ΦΡ7,結(jié)果作為更新后的Pi,從而完成了針對Pi的編碼 關(guān)系的更新。
[0120] 然后按照上述步驟44,如圖5所示,將3個(gè)信息節(jié)點(diǎn){D7,D8,D9}添加到該存儲系統(tǒng) 中,以及分別將隨機(jī)向量h對應(yīng)添加到隨機(jī)向量的尾部,得到更新后的隨機(jī)向量 gj,即更 新后分別為:gi=(l,0,l,l,l,0,l,0,0),g2=(0,l,l,0,0,0,0,l,l),g3=(0,l,0,0,l,0,0, l,0),g4=(l,l,0,0,l,l,l,l,l)〇
[0121] 本發(fā)明實(shí)施例中,在向存儲系統(tǒng)中添加信息節(jié)點(diǎn)時(shí),如果將要添加的1個(gè)信息節(jié)點(diǎn) {Dk+1,Dk+2,…,D k+1}均未存儲數(shù)據(jù),由于待添加信息節(jié)點(diǎn)不影響存儲系統(tǒng)的原有節(jié)點(diǎn)間的編 碼關(guān)系,所以可以不執(zhí)行上述步驟43,直接將1個(gè)信息節(jié)點(diǎn){D k+1,Dk+2,…,Dk+1}添加到存儲系 統(tǒng)中,以及分別將隨機(jī)向量h對應(yīng)添加到隨機(jī)向量的尾部,得到更新后的隨機(jī)向量 gj。
[0122] 當(dāng)需要從存儲系統(tǒng)中刪除信息節(jié)點(diǎn)時(shí),如圖6所示,可以包括如下步驟:
[0123] 步驟61、當(dāng)需要從存儲系統(tǒng)中刪除1個(gè)信息節(jié)點(diǎn){&,C2,…,Ci}時(shí),確定待刪除的1 個(gè)信息節(jié)點(diǎn){&,C 2,…,Ci}在信息節(jié)點(diǎn)集合中的編號。
[0124] 步驟62、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 1的{0,1}向 量fj = (Cfi,Cj2,…,Cji),1彡j彡n-k,fj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的向量,其中,Cji為信息節(jié)點(diǎn)Ci在 信息節(jié)點(diǎn)集合中的編號在U中對應(yīng)位置的元素。
[0125] 步驟63、分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),更新與信息節(jié)點(diǎn)的編碼關(guān) 系,具體可以執(zhí)行如下步驟:
[0126] 步驟A3、確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量f j中值為1的各元素 c ji;
[0127] 步驟B3、確定出分別與值為1的各元素Cjl在向量灼中所在位置對應(yīng)的各信息節(jié)點(diǎn) Ci;
[0128] 步驟C3、將校驗(yàn)節(jié)點(diǎn)匕和該對應(yīng)的各信息節(jié)點(diǎn)匕依次進(jìn)行異或運(yùn)算,結(jié)果作為更新 后的Pj。
[0129] 步驟64、將1個(gè)信息節(jié)點(diǎn){&,C2,…,Ci}從存儲系統(tǒng)中刪除,以及分別從隨機(jī)向量gj 中刪除各信息節(jié)點(diǎn){&,&,···,&}的編號對應(yīng)位置的元素,得到更新后的隨機(jī)向量gj。
[0130] 具體的,仍然以圖3所示存儲系統(tǒng)的架構(gòu)為例,對上述圖6所示的從存儲系統(tǒng)中刪 除信息節(jié)點(diǎn)的方法進(jìn)行詳細(xì)描述。
[0131] 在圖3所示存儲系統(tǒng)的基礎(chǔ)上,需要刪除2個(gè)信息節(jié)點(diǎn){Di,D4},對應(yīng)為{&,(:2}。
[0132] 按照上述步驟62,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X 2的 {〇,1}向量fj = (Cjl,Cj2),l彡j$4,fj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的向量,其中, Cji為信息節(jié)點(diǎn)Ci在信 息節(jié)點(diǎn)集合中的編號在U中對應(yīng)位置的元素。
[0133] 例如,具體的,如圖7中所示,{DU4}在信息節(jié)點(diǎn)集合中的編號分別為1和4,則分別 從校驗(yàn)節(jié)點(diǎn){Pi,P2,P 3,P4}的1 X 6的{0,1}隨機(jī)向量gl、g2、g3和g4中提取出第1、4位元素,得到 fi=(l,l),f2=(0,0),f3 = (0,0),f4= (1,0) 〇
[0134] 按照上述步驟63,分別針對4個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),更新與信息節(jié)點(diǎn)的編 碼關(guān)系,具體的,下面以校驗(yàn)節(jié)點(diǎn)Pl為例進(jìn)行描述:
[0135] 按照步驟A3,校驗(yàn)節(jié)APi對應(yīng)的向量f i = (1,1),其中值為1的各元素包括第1、2個(gè) 元素;
[0136] 按照步驟B3,分別與值為1的各元素 Cji在向量fj中所在位置對應(yīng)的各信息節(jié)點(diǎn)包 括:{&,&},對應(yīng)為{Di,D4} ;
[0137] 按照步驟C3,將校驗(yàn)節(jié)點(diǎn)PjP該對應(yīng)的各信息節(jié)點(diǎn){C^Cs}依次進(jìn)行異或運(yùn)算,即 和信息節(jié)點(diǎn){D^DU依次進(jìn)行異或運(yùn)算,即巧,基于上述圖2所示流程中 A = Α Φ A ? A ? A,本步驟中,校驗(yàn)節(jié)點(diǎn)P i的最終運(yùn)算結(jié)果也可以表示為 A = Α φΑ Φ Α ΦΑ ΦΑ ΦA(chǔ) = Α ΦA(chǔ),結(jié)果作為更新后的Pi,從而完成了針對Pi的編 碼關(guān)系的更新。
[0138] 然后按照上述步驟64,如圖7所示,將2個(gè)信息節(jié)點(diǎn){C^Cd,即{D^Dd從存儲系統(tǒng) 中刪除,以及分別從隨機(jī)向量U中刪除各信息節(jié)點(diǎn){&,&}在信息節(jié)點(diǎn)集合中的編號對應(yīng)位 置的元素,得到更新后的隨機(jī)向量幻,即更新后分別為4: = (0,1,1,0)42 = (1,1,0,0)43 = (l,0,l,0),g4=(l,0,l,l)〇
[0139] 本發(fā)明實(shí)施例中,在從存儲系統(tǒng)中刪除信息節(jié)點(diǎn)時(shí),如果將要刪除的1個(gè)信息節(jié)點(diǎn) {&,&,···,&}均未存儲數(shù)據(jù),由于待刪除信息節(jié)點(diǎn)不影響存儲系統(tǒng)的原有節(jié)點(diǎn)間的編碼關(guān) 系,所以可以不執(zhí)行上述步驟62和步驟63,直接將1個(gè)信息節(jié)點(diǎn){&,&,···,&}從存儲系統(tǒng)中 刪除,以及分別從隨機(jī)向量^中刪除各信息節(jié)點(diǎn){&,&,···,&}在信息節(jié)點(diǎn)集合中的編號對 應(yīng)位置的元素,得到更新后的隨機(jī)向量gj。
[0140] 目前,現(xiàn)有技術(shù)中,有部分分布式存儲系統(tǒng)應(yīng)用RAID(Redundant Arrays of Independent Disks,磁盤陣列)編碼技術(shù),它能實(shí)現(xiàn)各存儲數(shù)據(jù)的直接異或操作,使得冗余 數(shù)據(jù)量遠(yuǎn)低于復(fù)制策略。然而,由于RAID編碼技術(shù)限制,系統(tǒng)參數(shù)十分受限,并不適合數(shù)據(jù) 存儲規(guī)模不斷擴(kuò)大的趨勢。
[0141] 另一方面,大數(shù)據(jù)時(shí)代不僅存儲數(shù)據(jù)量基數(shù)大,它同時(shí)也呈現(xiàn)出爆炸式增長態(tài)勢。 然而,現(xiàn)有基于編碼方式的分布式存儲方法,系統(tǒng)參數(shù)可調(diào)性差,一旦確定,難以更改;數(shù)據(jù) 存儲方式復(fù)雜,按先分塊再編碼后存儲方式,使得存儲系統(tǒng)規(guī)模擴(kuò)展性差,導(dǎo)致無法適應(yīng)待 存儲數(shù)據(jù)的動態(tài)快速增長。
[0142] 而基于本發(fā)明實(shí)施例提供的存儲系統(tǒng),采用上述圖4所示的向存儲系統(tǒng)中添加信 息節(jié)點(diǎn)的流程,以及上述圖6所示的從存儲系統(tǒng)中刪除信息節(jié)點(diǎn)的流程,可以根據(jù)實(shí)際需 求,靈活快速的對存儲系統(tǒng)進(jìn)行擴(kuò)展,從而更好的適應(yīng)待存儲數(shù)據(jù)的動態(tài)快速增長。
[0143] 本發(fā)明實(shí)施例中,針對構(gòu)建的上述存儲系統(tǒng),還可以根據(jù)實(shí)際需要對其中的校驗(yàn) 節(jié)點(diǎn)數(shù)量進(jìn)行調(diào)整,包括添加校驗(yàn)節(jié)點(diǎn)和刪除校驗(yàn)節(jié)點(diǎn),從而實(shí)現(xiàn)對存儲系統(tǒng)的容災(zāi)能力 的調(diào)整,下面結(jié)合附圖進(jìn)行詳細(xì)描述。
[0144] 當(dāng)需要在存儲系統(tǒng)中添加校驗(yàn)節(jié)點(diǎn)時(shí),如圖8所示,可以包括如下步驟:
[0145] 步驟81、確定需要在存儲系統(tǒng)中添加存儲容量相同的1個(gè)校驗(yàn)節(jié)點(diǎn){P n - k+i, Pn-k+2,. · ·,Pn-k+l} 〇
[0146] 步驟82、分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k的{0,1}隨機(jī) 向里 gn-k+j - (Sin-k+j, 1,Sin-k+j, 2,…,Sin-k+j, k){〇,l},gn-k+j 為 僉 點(diǎn) Pn-k+j 對白勺 隨機(jī)向量,其中,向量中各元素3"^,1以概率T取值為1。
[0147] 步驟83、分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與信息節(jié)點(diǎn)建立編碼關(guān)系,具 體可以執(zhí)行如下步驟:
[0?48]步驟A4、確定出校驗(yàn)節(jié)點(diǎn)Pn-k+j對應(yīng)向量gn-k+j中值為1的各元素 ank+j, i;
[0149] 步驟Μ、確定出分別與值為1的各兀素 an-k+j, i在向量gn-k+j中所在位置對應(yīng)的各信 息節(jié)點(diǎn)Di;
[0150] 步驟C4、將校驗(yàn)節(jié)點(diǎn)Pn-k+j和該對應(yīng)的各信息節(jié)ADi依次進(jìn)行異或運(yùn)算,結(jié)果作為 更新后的Pn-k +j。
[0151] 具體的,在圖3所示存儲系統(tǒng)的基礎(chǔ)上,存儲系統(tǒng)將新增2個(gè)校驗(yàn)節(jié)點(diǎn){P5,P6}。
[0152] 按照上述步驟82,分別針對2個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1X6的 {〇,1}隨機(jī)向量8』=(3」1叫 2,~,&」6),5彡」彡6,&^{〇,1}必為校驗(yàn)節(jié)點(diǎn)?」對應(yīng)的隨機(jī)向 量,其中,向量中各兀素 aji以概率T取值為1。
[0153] 例如,具體的,如圖9中所示,g5=(0,l,0,l,0,l),g6=(l,l,0,0,0,l)。
[0154] 然后按照上述步驟83,分別針對2個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),與信息節(jié)點(diǎn)建立 編碼關(guān)系,具體的,下面以校驗(yàn)節(jié)點(diǎn)p5為例進(jìn)行描述:
[0155] 按照步驟A4,校驗(yàn)節(jié)點(diǎn)?5對應(yīng)的隨機(jī)向量g5 = (0,1,0,1,0,1),其中值為1的各元素 包括第2、4、6個(gè)元素;
[0156] 按照步驟M,分別與值為1的各元素在向量@中所在位置對應(yīng)的各信息節(jié)點(diǎn)包括: D2、D4m6;
[0157] 按照步驟C4,將校驗(yàn)節(jié)點(diǎn)內(nèi)和該對應(yīng)的各信息節(jié)點(diǎn)D2、D4、D 6依次進(jìn)行異或運(yùn)算,即 A =巧Θ仏Θ/Λ θ/;6,由于新增的2個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零,所以,校驗(yàn)節(jié)點(diǎn)P5的最 終運(yùn)算結(jié)果也可以表示為A = θ Ζ)4 Θ從,結(jié)果作為更新后的P5,從而完成了針對P5的編 碼關(guān)系的建立。
[0158]采用同樣的方式針對P6建立編碼關(guān)系,結(jié)果為:巧=Α θ Ζ)2 Θ /?。
[0159] 本發(fā)明實(shí)施例中,當(dāng)需要刪除校驗(yàn)節(jié)點(diǎn)時(shí),確定待刪除的校驗(yàn)節(jié)點(diǎn),然后從存儲系 統(tǒng)中刪除該待刪除的校驗(yàn)節(jié)點(diǎn)即可,在此不再舉例進(jìn)行描述。
[0160] 本發(fā)明實(shí)施例中,上述存儲系統(tǒng)還可以具有容災(zāi)參數(shù)Η,δ},其中,t+δ為存儲系統(tǒng) 的校驗(yàn)節(jié)點(diǎn)數(shù),存儲系統(tǒng)容許至多t個(gè)節(jié)點(diǎn)完出錯,δ為存儲系統(tǒng)保證高容災(zāi)能力所需額外 節(jié)點(diǎn)數(shù),且 ?+δ<1?、?+δ+1? = η。
[0161] 基于上述容災(zāi)參數(shù)Η,δ},當(dāng)存儲系統(tǒng)中存儲數(shù)據(jù)丟失的信息節(jié)點(diǎn)的數(shù)量不大于t 時(shí),可以恢復(fù)出丟失的存儲數(shù)據(jù),下面結(jié)合附圖,對恢復(fù)丟失數(shù)據(jù)的處理流程進(jìn)行詳細(xì)描 述,如圖10所示,具體可以包括如下步驟:
[0162] 步驟101、當(dāng)存儲系統(tǒng)的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)丟失時(shí),確定丟失的1個(gè)信息節(jié)點(diǎn) 在信息節(jié)點(diǎn)集合中的編號,l<t。
[0163] 步驟102、從存儲系統(tǒng)剩余的n-1個(gè)節(jié)點(diǎn)中任意選取k+δ個(gè)節(jié)點(diǎn),且其中包括δ'個(gè)校 驗(yàn)節(jié)點(diǎn){習(xí),巧,…,辦,},k+δ-δ'個(gè)信息節(jié)點(diǎn)。
[0164]步驟103、將δ'個(gè)校驗(yàn)節(jié)點(diǎn)各自對應(yīng)的1 X k的{0,1}隨機(jī)向量取出,排列為δ' X k的 {0,1}矩陣Rv xk,其中矩陣第j行為校驗(yàn)節(jié)點(diǎn)g對應(yīng)的1 X k的{0,1}隨機(jī)向量,1彡j彡δ'。
[0165] 步驟104、構(gòu)造矩陣m/x(k+f/),矩陣m/ x(k+f/)左部分為矩陣Rf/Xk,右部分為單位陣 Ιδ7 χδ7 Ο
[0166] 步驟105、基于已知的k+δ-δ'個(gè)信息節(jié)點(diǎn)和δ'個(gè)校驗(yàn)節(jié)點(diǎn),構(gòu)造向量)X1,其中 i3(k+v )X1左起k位為信息節(jié)點(diǎn){Di,D2,…,Dk},其中未知的信息節(jié)點(diǎn)用變量X代替,右端為 巧,戶2,·?}。
[0167]步驟106、針對關(guān)系式Η?/x(k+f/) · P(k+f/)χι = 0進(jìn)行求解,得到丟失的1個(gè)信息節(jié)點(diǎn)的 存儲數(shù)據(jù)。
[0168] 步驟107、將得到的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)恢復(fù)到所述存儲系統(tǒng)中。
[0169] 具體地,在圖3所示存儲系統(tǒng)的基礎(chǔ)上,已知當(dāng)前存儲系統(tǒng)的各參數(shù)為{η = 10,k = 6,5 = 1,丨=3},其中,有1^ = 6個(gè)信息節(jié)點(diǎn),5+丨=4個(gè)校驗(yàn)節(jié)點(diǎn),可保證任意丨=3個(gè)節(jié)點(diǎn)損壞, S = 1為保證高概率恢復(fù)的必要冗余節(jié)點(diǎn)數(shù)。
[0170] 假設(shè)信息節(jié)點(diǎn){D^Dd存儲的數(shù)據(jù)丟失或損壞,按照步驟102,從剩余的8個(gè)節(jié)點(diǎn)中 取出7個(gè)節(jié)點(diǎn),例如,分別為{D2,D 3,D4,Pi,P2,P3,P4}。
[0171 ]按照步驟103,將4個(gè)校驗(yàn)節(jié)點(diǎn){Pi,P2,P3,P4}的{0,1}隨機(jī)向量取出,構(gòu)造矩陣
,其中矩陣第j行為校驗(yàn)節(jié)點(diǎn)$對應(yīng)的1 X k的{0,1}隨機(jī) 向量,1彡j彡4。
[0172] 按照步驟104、構(gòu)造矩陣
[0173] 按照步驟105、基于已知的3個(gè)信息節(jié)點(diǎn)和4個(gè)校驗(yàn)節(jié)點(diǎn){D2,D3,D4,Pi,P2,P 3,P4},構(gòu) 造向量^ = {XhDhDs,D4,X2,X3,Ρι,Ρ2,Ρ3,p 4},其中,{Χι,χ2}對應(yīng)丟失的{D!, D5},X3對應(yīng)D6 ;雖然D6存儲數(shù)據(jù)未丟失,但是D6未被選中進(jìn)行恢復(fù)操作,其值仍然未知。
[0174] 按照步驟106、H4X1Q與β?οχ?滿足關(guān)系H4X1Q) · βιοχι = 0,針對該關(guān)系進(jìn)行求解,既可 以得到丟失的2個(gè)信息節(jié)點(diǎn){DhDd的存儲數(shù)據(jù),進(jìn)而將得到的2個(gè)信息節(jié)點(diǎn){DhDd的存儲 數(shù)據(jù)恢復(fù)到存儲系統(tǒng)中。
[0175] 本發(fā)明實(shí)施例中,針對上述步驟106中的關(guān)系式x(k+^ ) · 0(k+^ )xi = 0,當(dāng)T = 0.5 時(shí),有解的概率大于1_2S,所以,當(dāng)Τ = 0.5,δ = 20時(shí),能保證高于0.999999的概率有解,隨著 S不斷增大,有解的概率也不斷增大,所以,較佳的,當(dāng)T = 0.5時(shí),δ = 20。
[0176] 并且,在實(shí)際應(yīng)用中,當(dāng)k、t取值遠(yuǎn)大于δ時(shí),δ個(gè)冗余校驗(yàn)節(jié)點(diǎn)的存儲空間,相對整 個(gè)存儲系統(tǒng)而言,是可忽略不計(jì)。
[0177] 基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例提供的存儲系統(tǒng)構(gòu)建方法,相應(yīng)地,本 發(fā)明另一實(shí)施例還提供了一種存儲系統(tǒng)構(gòu)建裝置,其結(jié)構(gòu)示意圖如圖11所示,所述存儲系 統(tǒng)包括信息節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),所述信息節(jié)點(diǎn)用于存儲數(shù)據(jù),所述校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且 所述存儲系統(tǒng)中各節(jié)點(diǎn)的存儲容量相同,所述裝置包括:
[0178] 參數(shù)確定單元111,用于確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為所述存儲系統(tǒng) 的節(jié)點(diǎn)總數(shù),k為所述存儲系統(tǒng)的信息節(jié)點(diǎn)數(shù),Τ為單個(gè)元素在{0,1}中取值為1的概率;其中 n,k均為正整數(shù),0<T<1;
[0179] 編號單元112,用于將k個(gè)信息節(jié)點(diǎn)按順序編號為{01,02,一,015},以及將11-1^個(gè)校驗(yàn) 節(jié)點(diǎn)按順序編號為{Pi,P2,…,P n-k},其中,n-k個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零;
[0180] 向量生成單元113,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為1 X k的{0,1}隨機(jī)向量gj = (aji,a」2,…,ajk),1彡j<n_k,a e {〇,1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨 機(jī)向量,其中,向量中各元素 a#以概率T取值為1;
[0181] 編碼關(guān)系建立單元114,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如 下步驟:
[0182] 確定出校驗(yàn)節(jié)點(diǎn)匕對應(yīng)向量中值為1的各元素 aJ1;
[0183] 確定出分別與值為1的各元素^^在向量中所在位置對應(yīng)的各信息節(jié)點(diǎn)D1;
[0184] 將校驗(yàn)節(jié)點(diǎn)匕和所述對應(yīng)的各信息節(jié)點(diǎn)Di依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的 Pj〇
[0185] 進(jìn)一步的,上述各單元的功能可對應(yīng)于圖1至圖10所示流程中的相應(yīng)處理步驟,在 此不再贅述。
[0186] 本申請的實(shí)施例所提供的存儲系統(tǒng)構(gòu)建裝置可通過計(jì)算機(jī)程序?qū)崿F(xiàn)。本領(lǐng)域技術(shù) 人員應(yīng)該能夠理解,上述的模塊劃分方式僅是眾多模塊劃分方式中的一種,如果劃分為其 他模塊或不劃分模塊,只要存儲系統(tǒng)構(gòu)建裝置具有上述功能,都應(yīng)該在本申請的保護(hù)范圍 之內(nèi)。
[0187] 本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序 指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn) 生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí) 現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0188] 這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。
[0189] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一 個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0190] 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項(xiàng)】
1. 一種存儲系統(tǒng)構(gòu)建方法,其特征在于,所述存儲系統(tǒng)包括信息節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),所述 信息節(jié)點(diǎn)用于存儲數(shù)據(jù),所述校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且所述存儲系統(tǒng)中各節(jié)點(diǎn)的存儲容 量相同,所述方法包括: 確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為所述存儲系統(tǒng)的節(jié)點(diǎn)總數(shù),k為所述存儲系 統(tǒng)的信息節(jié)點(diǎn)數(shù),n-k為所述存儲系統(tǒng)的校驗(yàn)節(jié)點(diǎn)數(shù),T為單個(gè)元素在{0,1}中取值為1的概 率;其中n,k均為正整數(shù),0<T<1; 將k個(gè)信息節(jié)點(diǎn)按順序編號為(D1 ,D2,…,Dk},以及將n-k個(gè)校驗(yàn)節(jié)點(diǎn)按順序編號為(P1, P2,…,Pn-k},其中,n-k個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零; 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I Xk的{0,1}隨機(jī)向量gj = (aji,a」2,···,ajk),Kj彡n_k,ae {0,1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中,向量中各元 素^^以概率T取值為1; 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟: 確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj中值為1的各元素 a ji; 確定出分別與值為1的各元素 aji在向量gj中所在位置對應(yīng)的各信息節(jié)點(diǎn)Di; 將校驗(yàn)節(jié)點(diǎn)Pj和所述對應(yīng)的各信息節(jié)點(diǎn)D1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的Pj。2. 如權(quán)利要求1所述的方法,其特征在于,還包括: 在所述存儲系統(tǒng)的第i個(gè)信息節(jié)點(diǎn)D1的存儲數(shù)據(jù)發(fā)生變化△01后,針對n-k個(gè)校驗(yàn)節(jié)點(diǎn) 中的每個(gè)校驗(yàn)節(jié)點(diǎn)Pj,若該校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj的第i個(gè)元素 aji的值為1,則將該校驗(yàn)節(jié)點(diǎn) Pj與該信息節(jié)點(diǎn)的變化量A D1進(jìn)行異或運(yùn)算,結(jié)果作為更新后的Pj,否則,保持校驗(yàn)節(jié)點(diǎn)Pj 不變。3. 如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)需要在所述存儲系統(tǒng)中添加存儲容量相同的1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,…,Dk+i}時(shí),分 別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I X 1的{0,1}隨機(jī)向量hj = (bji, bj2,···,bji),1彡j彡n-k,be {〇, 1},hj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向量,其中,向量中各元素 bji 以概率T取值為1; 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟: 確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量hj中值為1的各元素 bji; 確定出分別與值為1的各元素 bji在向量hj中所在位置對應(yīng)的各信息節(jié)點(diǎn)Dk+i; 將校驗(yàn)節(jié)點(diǎn)Pj和所述對應(yīng)的各信息節(jié)點(diǎn)Dk+1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的Pj; 將1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,…,Dk+i}添加到所述存儲系統(tǒng)中,以及分別將隨機(jī)向量hj對應(yīng) 添加到隨機(jī)向量U的尾部,得到更新后的隨機(jī)向量gj。4. 如權(quán)利要求3所述的方法,其特征在于,在所述分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校 驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟之前,還包括: 確定將要添加的1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,^_,Dk+1}是否均未存儲數(shù)據(jù),如果不是,則執(zhí)行 所述分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟這一步驟;以及 如果是,則直接將1個(gè)信息節(jié)點(diǎn){Dk+1,Dk+2,…,Dk+1:^加到所述存儲系統(tǒng)中,以及分別將 隨機(jī)向量hj對應(yīng)添加到隨機(jī)向量gj的尾部,得到更新后的隨機(jī)向量gj。5. 如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)需要在所述存儲系統(tǒng)中刪除1個(gè)信息節(jié)點(diǎn)IC1,C2, ···,&}時(shí),確定待刪除的1個(gè)信息節(jié) 點(diǎn)IC^C2,···,&}在信息節(jié)點(diǎn)集合中的編號; 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I X 1的{0,1}向量fj = (cji, cj2,…,cji),1彡j$n-k,fj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的向量,其中,Cji為信息節(jié)點(diǎn)C i在信息節(jié)點(diǎn)集 合中的編號在U中對應(yīng)位置的元素; 分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟: 確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量fj中值為1的各元素 Cji; 確定出分別與值為1的各元素 Cji在向量fj中所在位置對應(yīng)的各信息節(jié)點(diǎn)Ci; 將校驗(yàn)節(jié)點(diǎn)Pj和所述對應(yīng)的各信息節(jié)點(diǎn)C1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的Pj; 將1個(gè)信息節(jié)點(diǎn)IC1,C2, ···,&}從所述存儲系統(tǒng)中刪除,以及分別從隨機(jī)向量中刪除各 信息節(jié)點(diǎn)IC1,C2,···,&}的編號對應(yīng)位置的元素,得到更新后的隨機(jī)向量 gj。6. 如權(quán)利要求5所述的方法,其特征在于,在分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié) 點(diǎn),生成長度為I X 1的{〇, 1}向量f j= (Cjl,Cj2,…,Cjl)之前,還包括: 確定將要刪除的1個(gè)信息節(jié)點(diǎn)Ic1, c2, ···,〇}是否均未存儲數(shù)據(jù),如果不是,則執(zhí)行分別 針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I X 1的{0,1}向量f j = (Cji,Cj2,…,Cji) 這一步驟;以及 如果是,則直接將1個(gè)信息節(jié)點(diǎn)ICllC2, ···,&}從所述存儲系統(tǒng)中刪除,以及分別從隨機(jī) 向量幻中刪除各信息節(jié)點(diǎn){&,C2, ···,&}的編號對應(yīng)位置的元素,得到更新后的隨機(jī)向量gj。7. 如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)需要在所述存儲系統(tǒng)中添加存儲容量相同的1個(gè)校驗(yàn)節(jié)點(diǎn){Pn-k+1,Pn-k +2,…,Pn-k+i} 時(shí),分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I Xk的{0,1}隨機(jī)向量gn-k+j = (an-k+j,I,an-k+j,2,…,an-k+j,k),Kj^il,aG {0,1},gn-k+j為枚驗(yàn) 點(diǎn)Pn-k+j 對應(yīng)白勺隨機(jī)向里, 其中,向量中各元素 &η_+Μ以概率T取值為I; 分別針對1個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟: 確定出校驗(yàn)節(jié)點(diǎn)Pn-k+j對應(yīng)向量gn-k+j中值為1的各元素 &1^+j, i; 確定出分別與值為1的各元素 an-k+j, i在向量gn-k+j中所在位置對應(yīng)的各信息節(jié)點(diǎn)Di ; 將校驗(yàn)節(jié)點(diǎn)Pn-k+j和所述對應(yīng)的各信息節(jié)點(diǎn)D1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的 Pn-k+j 〇8. 如權(quán)利要求1所述的方法,其特征在于,還包括: 確定待刪除的校驗(yàn)節(jié)點(diǎn),從所述存儲系統(tǒng)中刪除所述待刪除的校驗(yàn)節(jié)點(diǎn)。9. 如權(quán)利要求1所述的方法,其特征在于,所述存儲系統(tǒng)還具有容災(zāi)參數(shù){t,δ},其中,t +S為所述存儲系統(tǒng)的校驗(yàn)節(jié)點(diǎn)數(shù),所述存儲系統(tǒng)容許至多t個(gè)節(jié)點(diǎn)完出錯,δ為所述存儲系 統(tǒng)保證高容災(zāi)能力所需額外節(jié)點(diǎn)數(shù),且t+δ < k、?+δ+k = η,所述方法,還包括: 當(dāng)所述存儲系統(tǒng)的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)丟失時(shí),從所述存儲系統(tǒng)剩余的η-I個(gè)節(jié)點(diǎn) 中任意選取k+δ個(gè)節(jié)點(diǎn),且其中包括δ'個(gè)校驗(yàn)節(jié)點(diǎn)彳斤巧,,··,&! ,k+δ-δ'個(gè)信息節(jié)點(diǎn), 將δ'個(gè)校驗(yàn)節(jié)點(diǎn)各自對應(yīng)的IXk的{0,1}隨機(jī)向量取出,排列為δ' Xk的{0,1}矩陣 for xk,其中矩陣第j行為校驗(yàn)節(jié)點(diǎn)^對應(yīng)的I X k的{0,1}隨機(jī)向量,I < j<δ ' ; 構(gòu)造矩陣Hs'χ(1?+δ'),矩陣Hs'χ(1?+δ')左部分為矩陣Rs'xk,右部分為單位陣Is' XS' ; 基于已知的k+δ-δ '個(gè)信息節(jié)點(diǎn)和δ '個(gè)校驗(yàn)節(jié)點(diǎn),構(gòu)造向量0(k+fi,)xl,其中0(k+fi,) xl左起k 位為信息節(jié)點(diǎn)(D1,D2,…,Dk},其中未知的信息節(jié)點(diǎn)用變量X代替,右端為{??, A,…,辱,}; 針對關(guān)系式Hfrxik+o · β^+〇χι = 0進(jìn)行求解,得到丟失的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù); 將得到的1個(gè)信息節(jié)點(diǎn)的存儲數(shù)據(jù)恢復(fù)到所述存儲系統(tǒng)中。10. -種存儲系統(tǒng)構(gòu)建裝置,其特征在于,所述存儲系統(tǒng)包括信息節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),所 述信息節(jié)點(diǎn)用于存儲數(shù)據(jù),所述校驗(yàn)節(jié)點(diǎn)用于恢復(fù)數(shù)據(jù),且所述存儲系統(tǒng)中各節(jié)點(diǎn)的存儲 容量相同,所述裝置包括: 參數(shù)確定單元,用于確定存儲系統(tǒng)節(jié)點(diǎn)參數(shù){n,k,T},其中,η為所述存儲系統(tǒng)的節(jié)點(diǎn)總 數(shù),k為所述存儲系統(tǒng)的信息節(jié)點(diǎn)數(shù),T為單個(gè)元素在{0,1}中取值為1的概率;其中η,k均為 正整數(shù),〇<Τ<1; 編號單元,用于將k個(gè)信息節(jié)點(diǎn)按順序編號為{D^Ds,以及將n-k個(gè)校驗(yàn)節(jié)點(diǎn)按 順序編號為{?1,?2,-_少^},其中,11;個(gè)校驗(yàn)節(jié)點(diǎn)的初始數(shù)據(jù)均為零; 向量生成單元,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),生成長度為I Xk的 {〇, 1}隨機(jī)向量gj = (aji,aj2,…,ajk),1彡j<n_k,ae {〇, 1},gj為校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)的隨機(jī)向 量,其中,向量中各兀素 aji以概率T取值為1; 編碼關(guān)系建立單元,用于分別針對n-k個(gè)校驗(yàn)節(jié)點(diǎn)中的每個(gè)校驗(yàn)節(jié)點(diǎn),執(zhí)行如下步驟: 確定出校驗(yàn)節(jié)點(diǎn)Pj對應(yīng)向量gj中值為1的各元素 aji; 確定出分別與值為1的各元素 aji在向量gj中所在位置對應(yīng)的各信息節(jié)點(diǎn)Di; 將校驗(yàn)節(jié)點(diǎn)Pj和所述對應(yīng)的各信息節(jié)點(diǎn)D1依次進(jìn)行異或運(yùn)算,結(jié)果作為更新后的Pj。
【文檔編號】H04L29/08GK105933386SQ201610211840
【公開日】2016年9月7日
【申請日】2016年4月6日
【發(fā)明人】陳亮, 張景中, 滕鵬國, 袁德砦, 王子偉, 徐志強(qiáng), 王曉京, 崔喆
【申請人】中科院成都信息技術(shù)股份有限公司