国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于再生碼的分布式存儲系統(tǒng)與處理方法與流程

      文檔序號:11233780閱讀:1368來源:國知局
      基于再生碼的分布式存儲系統(tǒng)與處理方法與流程

      本申請涉及數(shù)據(jù)存儲系統(tǒng)與處理方法,具體涉及一種基于再生碼的分布式存儲系統(tǒng)與處理方法。



      背景技術(shù):

      分布式存儲系統(tǒng)是將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲系統(tǒng)采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。

      在傳統(tǒng)分布式存儲系統(tǒng)中為提高系統(tǒng)可靠性,因此采用再生碼(regeneratingcodes)的數(shù)據(jù)恢復(fù)。再生碼是一種基于糾錯碼理論的分支。透過網(wǎng)絡(luò)在數(shù)據(jù)傳輸過程中發(fā)生錯誤后,數(shù)據(jù)接收端能透過糾錯碼自行發(fā)現(xiàn)錯誤或糾正。再生碼的修復(fù)過程中,新節(jié)點需要在剩下的存儲節(jié)點中連接d個存儲節(jié)點并分別從這d個存儲節(jié)點中下載p大小的數(shù)據(jù),所以再生碼的修復(fù)帶寬為d*p。同時給出了再生碼功能修復(fù)的模型并提出了再生碼的兩類最佳碼:最小帶寬再生碼(msr,minimum-storageregenerating)和最小修復(fù)帶寬再生碼(mbr,minimum-bandwidthregenerating)。

      但傳統(tǒng)的分布式存儲系統(tǒng)無法針對存儲數(shù)據(jù)的特性而對數(shù)據(jù)的可靠性進(jìn)行調(diào)整。由于傳統(tǒng)的分布式存儲系統(tǒng)中的存儲節(jié)點數(shù)量是固定的。所以遇到頻繁被存取的數(shù)據(jù)的情況時,該數(shù)據(jù)可能發(fā)生延遲傳輸?shù)膯栴}。



      技術(shù)實現(xiàn)要素:

      本申請所要解決的技術(shù)問題在于提供一種基于再生碼的分布式存儲系統(tǒng),其特征在于編碼數(shù)據(jù)傳輸至各節(jié)點后,可擴展至指定的節(jié)點。

      為了解決上述問題,本申請揭示了一種基于再生碼的分布式存儲系統(tǒng)包括數(shù)據(jù)源端與多個存儲節(jié)點。數(shù)據(jù)源端具有控制模塊與編碼器,該控制模塊對接收的輸入數(shù)據(jù)組切分成多個數(shù)據(jù)分塊,該數(shù)據(jù)分塊通過該編碼器時,該編碼器根據(jù)編碼向量輸出子數(shù)據(jù)條帶,且該些編碼向量彼此為非線性相關(guān)。存儲節(jié)點網(wǎng)絡(luò)連接于該數(shù)據(jù)源端,該數(shù)據(jù)源端根據(jù)該些編碼向量派送不同的該子數(shù)據(jù)條帶至對應(yīng)的該存儲節(jié)點。數(shù)據(jù)源端接收節(jié)點擴展命令用于擴展所指定的該存儲節(jié)點,該數(shù)據(jù)源端任意選取至少兩個該存儲節(jié)點,該數(shù)據(jù)源端根據(jù)所選取的該些子數(shù)據(jù)條帶與所屬的該些編碼向量進(jìn)行線性組合,并輸出擴展節(jié)點。

      為了解決上述問題,本申請更揭示一種基于再生碼的分布式存儲系統(tǒng)包括以下步驟:數(shù)據(jù)源端將輸入數(shù)據(jù)組切分為多個數(shù)據(jù)分塊;數(shù)據(jù)源端根據(jù)編碼向量將數(shù)據(jù)分塊編碼轉(zhuǎn)換為子數(shù)據(jù)條帶;數(shù)據(jù)源端根據(jù)子數(shù)據(jù)條帶與相應(yīng)的編碼向量發(fā)送至存儲節(jié)點,并將子數(shù)據(jù)條帶記錄于存儲節(jié)點;數(shù)據(jù)源端接收節(jié)點擴展命令,并指定任一存儲節(jié)點;數(shù)據(jù)源端另選取至少兩個以上的存儲節(jié)點,數(shù)據(jù)源端根據(jù)所選取的存取節(jié)點、編碼向量與子數(shù)據(jù)條帶生成擴展節(jié)點。

      與現(xiàn)有技術(shù)相比,本申請可以獲得包括以下技術(shù)效果:

      1)本申請相比傳統(tǒng)的由編碼控制器統(tǒng)一選擇固定的節(jié)點進(jìn)行拓展的辦法,具有消耗帶寬少、編碼效率高、計算成本低及適應(yīng)高動態(tài)變化的網(wǎng)絡(luò)狀況等優(yōu)點。

      2)本申請可以應(yīng)用于塊存儲、基于對象存儲的分布式存儲系統(tǒng)的編解碼和分發(fā)模塊。對應(yīng)的存儲系統(tǒng)更適合一次性寫入、讀頻率不高,但可靠性要求較高場景,例如歸檔系統(tǒng)。

      當(dāng)然,實施本申請的任一產(chǎn)品必不一定需要同時達(dá)到以上所述的所有技術(shù)效果。

      附圖說明

      此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。

      圖1a為本申請的硬體架構(gòu)示意圖。

      圖1b為本申請的數(shù)據(jù)傳輸架構(gòu)示意圖。

      圖2為本申請的運作步驟示意圖。

      圖3a為本申請的數(shù)據(jù)分塊與編碼的過程示意圖。

      圖3b為本申請的存儲節(jié)點的數(shù)據(jù)恢復(fù)示意圖。

      圖4為本申請的擴展存儲節(jié)點的示意圖。

      具體實施方式

      以下請配合附圖及實施例來詳細(xì)說明本申請的實施方式,藉此對本申請如何應(yīng)用技術(shù)手段來解決技術(shù)問題并達(dá)成技術(shù)功效的實現(xiàn)過程能充分理解并據(jù)以實施。

      請參考圖1a與圖1b所示,其系為本申請的硬體架構(gòu)與數(shù)據(jù)傳輸架構(gòu)示意圖。本申請的基于再生碼的分布式存儲系統(tǒng)100包括數(shù)據(jù)源端110與多個存儲節(jié)點120。本申請中數(shù)據(jù)源端110所指的是存儲系統(tǒng)對于數(shù)據(jù)輸入的前臺接口,數(shù)據(jù)源端110可以是但不限定為磁盤、因特網(wǎng)(internet)或人機輸入界面(interface)等。數(shù)據(jù)源端110透過網(wǎng)絡(luò)連接于存儲節(jié)點120。

      數(shù)據(jù)源端110包括控制模塊111與編碼器112??刂颇K111將接收的輸入數(shù)據(jù)組切分成多個數(shù)據(jù)分塊。編碼器112記錄編碼向量矩陣,編碼向量矩陣記錄多筆編碼向量。數(shù)據(jù)分塊通過編碼器112時,由編碼器112從編碼向量矩陣中選擇任一編碼向量。編碼器112根據(jù)編碼向量輸出相應(yīng)數(shù)據(jù)分塊的子數(shù)據(jù)條帶,且這些編碼向量彼此為非線性相關(guān)。數(shù)據(jù)源端110根據(jù)不同的編碼向量并派送子數(shù)據(jù)條帶至對應(yīng)的存儲節(jié)點120。存儲節(jié)點120的種類為硬盤、固態(tài)硬盤或閃存等。存儲節(jié)點120用于存儲子數(shù)據(jù)條帶。

      在圖1b中的左側(cè)系為數(shù)據(jù)源端110(datasource),最右側(cè)系為數(shù)據(jù)收集端130(datacollector)。在數(shù)據(jù)源端110與數(shù)據(jù)收集端130之間存在多個存儲節(jié)點120。數(shù)據(jù)收集端130包括譯碼器131。譯碼器131根據(jù)所接獲部分的子數(shù)據(jù)條帶反譯回指定的數(shù)據(jù)分塊。在圖1b中的存儲節(jié)點120以xi表示,其中i為編號。在圖1b中以存在的存儲節(jié)點120以短虛線表示,而欲擴展的存儲節(jié)點120以長虛線表示。

      假設(shè)輸入數(shù)據(jù)組的數(shù)據(jù)大小為b,d為擴展節(jié)點時所需的存儲節(jié)點120的個數(shù),α為每個存儲節(jié)點120所存儲的子條帶數(shù)據(jù)的數(shù)量。以b=4,α=2,d=3為例,意即輸入數(shù)據(jù)組b包括4個數(shù)據(jù)分塊。每一個存儲節(jié)點120可以存儲1個子數(shù)據(jù)條帶,而一個子數(shù)據(jù)條帶記錄2個數(shù)據(jù)分塊(意即為α)。產(chǎn)生一個新的擴展節(jié)點需要連接3個存儲節(jié)點120(意即為d)。

      為清楚說明輸入數(shù)據(jù)組的數(shù)據(jù)分塊與子數(shù)據(jù)條帶的產(chǎn)生過程,本申請以一個存儲節(jié)點120并可記錄兩個子條帶數(shù)據(jù)作為說明,但并非僅局限于說明中的數(shù)量或順序。請參考圖2所示,其系為本申請的運作步驟示意圖。

      步驟s210:數(shù)據(jù)源端將輸入數(shù)據(jù)組切分為多個數(shù)據(jù)分塊;

      步驟s220:數(shù)據(jù)源端根據(jù)編碼向量將數(shù)據(jù)分塊編碼轉(zhuǎn)換為子數(shù)據(jù)條帶;

      步驟s230:數(shù)據(jù)源端根據(jù)子數(shù)據(jù)條帶與相應(yīng)的編碼向量發(fā)送至存儲節(jié)點,并將子數(shù)據(jù)條帶記錄于存儲節(jié)點;

      步驟s240:數(shù)據(jù)源端接收節(jié)點擴展命令,并指定任一存儲節(jié)點;以及

      步驟s250:數(shù)據(jù)源端另選取至少兩個以上的存儲節(jié)點,數(shù)據(jù)源端根據(jù)所選取的存取節(jié)點、編碼向量與子數(shù)據(jù)條帶生成擴展節(jié)點。

      首先,數(shù)據(jù)源端110接收輸入數(shù)據(jù)組并將輸入數(shù)據(jù)組切分成多個數(shù)據(jù)分塊。在此假設(shè)共有k個存儲節(jié)點120,且存儲節(jié)點120記作nodei,其中i表示第i個存儲節(jié)點且i≦k(未避免所有的存儲節(jié)點均使用同一標(biāo)號,因此后文以存儲節(jié)點的標(biāo)號作為區(qū)分)。再以b=4,α=2,d=3為例,輸入數(shù)據(jù)組包括4個數(shù)據(jù)分塊,分別為u11,u12,u13與u14。此一說明中,存儲節(jié)點中可記錄1個子數(shù)據(jù)條帶,每一個子數(shù)據(jù)條帶包括2個數(shù)據(jù)分塊,請配合參考圖3a所示。前述的數(shù)據(jù)分塊u11,u12,u13與u14可兩兩組成一組向量,且作為第i個節(jié)點中u1向量的編碼向量,作為第i個節(jié)點中u2向量的編碼向量,作為第i個存儲節(jié)點中補償數(shù)據(jù)分塊的編碼向量。此外,中任意兩個向量,且各向量間保證線性無關(guān)。

      數(shù)據(jù)源端110再把經(jīng)過編碼后的子數(shù)據(jù)條帶與所屬的編碼向量發(fā)送至存儲節(jié)點,并令存儲節(jié)點記錄子數(shù)據(jù)條帶與編碼向量。當(dāng)數(shù)據(jù)收集端130發(fā)現(xiàn)份任一存儲節(jié)點毀損時,數(shù)據(jù)收集端130可根據(jù)現(xiàn)有的存儲節(jié)點與所存子數(shù)據(jù)條帶對已毀損的存儲節(jié)點進(jìn)行數(shù)據(jù)恢復(fù),請配合參考圖3b所示。當(dāng)存儲節(jié)點nodem發(fā)生毀損,數(shù)據(jù)收集端130從其它存活的存儲節(jié)點選擇至少兩個以上的存儲節(jié)點,在此分別定義存儲節(jié)點為nodei與nodej。存儲節(jié)點nodei與nodej各自存儲兩子數(shù)據(jù)條帶,而兩子數(shù)據(jù)條帶分別為。根據(jù)存儲節(jié)點nodei與nodej兩個中的所有編碼向量,我們可以將子條帶數(shù)據(jù)填到4x4矩陣中,如下述矩陣所示。

      前述的矩陣在符合滿秩的條件時,可以透過線性消去的方式進(jìn)一步得到u11,u12,u13與u14四個數(shù)據(jù)分塊。而由于,中任意兩向量線性無關(guān),從此可發(fā)現(xiàn)該矩陣的兩對角塊(2×2)均是滿秩的,所以該矩陣也滿秩。由此編碼的數(shù)據(jù)恢復(fù)功能同的取值沒有線性關(guān)系,因此可以任意取值。如此一來,就數(shù)據(jù)收集端130可根據(jù)前述計算得到已毀損的存儲節(jié)點的相關(guān)資訊。

      本申請除了存儲節(jié)點的數(shù)據(jù)恢復(fù)外,更可以針對指定的存儲節(jié)點進(jìn)行擴展。本申請的節(jié)點擴展的作用在于可透過其它存儲節(jié)點的資訊來克隆所指定的存儲節(jié)點與所屬資料,并請配合圖4。

      在此以存儲節(jié)點a、存儲節(jié)點b與存儲節(jié)點c作為新存儲節(jié)點的擴展依據(jù),而欲擴展的存儲節(jié)點則定義為存儲節(jié)點d。存儲節(jié)點a、存儲節(jié)點b與存儲節(jié)點c分別記錄數(shù)據(jù)分塊,。換言之,每個存儲節(jié)點所記錄的數(shù)據(jù)分塊是輸入數(shù)據(jù)組的線性組合。因此要擴展新的存儲節(jié)點d,數(shù)據(jù)收集端130需要三個(或更多)的數(shù)據(jù)分塊來得到。為清楚說明擴展的過程,系以下述算式的計算作為說明。假設(shè)方程組如下式:

      (1)

      (2)

      解(1),可以得到下述兩等式(3)與(4)

      (3)

      (4)

      由于中任意兩向量線性無關(guān),有:

      (5)

      代入(4)中,有:

      (6)

      方便起見,記作:

      (7)

      為2×2的對角陣,p是,r、q同理,下文也類似方法表示繼續(xù)化簡得:

      (8)

      (9)

      任意給定一對k3≠0,??3的值,即可通過該方程解出組合系數(shù)k1,k2,k3以及??1,??2,??3(其中向量中不會出現(xiàn)0元素,否則說明在中有兩個向量線性相關(guān))。

      接下來,解第二個方程:

      (10)

      (11)

      解(10)得到:

      任給一個l3≠0即可解出l1,l2。至此k1,k2,k3,??1,??2,??3,l1,l2,l3均得到,代入(11)即可求得,存儲節(jié)點d的擴展就完成了。新擴展的存儲節(jié)點d會記錄原本存儲節(jié)點的數(shù)據(jù)分塊與編碼向量。

      所述裝置與前述的方法流程描述對應(yīng),不足之處參考上述方法流程的敘述,不再一一贅述。上述說明示出并描述了本申請的若干優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其它實施例的排除,而可用于各種其它組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護(hù)范圍內(nèi)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1