两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種適用于磁盤陣列及分布式存儲系統(tǒng)的二容錯編碼方法

文檔序號:9597120閱讀:730來源:國知局
一種適用于磁盤陣列及分布式存儲系統(tǒng)的二容錯編碼方法
【技術領域】
[0001] 本發(fā)明涉及一種適用于磁盤陣列及分布式存儲系統(tǒng)的二容錯編碼方法,屬于編碼 論中的糾刪碼技術領域。
【背景技術】
[0002] 信息社會中數據量的爆炸式增長對大容量可靠存儲提出了更高的要求。為此,存 儲系統(tǒng)一方面不斷提高單個磁盤的容量,一方面通過磁盤陣列或者分布式存儲的形式將多 個磁盤整合起來提供大容量的可靠存儲服務。由于應用了大量的廉價磁盤,磁盤失效的情 況經常發(fā)生。為保障數據可靠性,系統(tǒng)需要存儲一定的冗余數據,以便能夠在某些磁盤失效 的情況下仍然可以恢復出所存儲的信息。每當有磁盤失效時,系統(tǒng)需要在一個替代磁盤上 重構失效磁盤上存儲的數據。這一過程稱為數據修復過程。
[0003] 二元有限域上的陣列碼,這類編碼將存儲的數據抽象為一個m行η列的陣列,陣列 中的每個元素為一個比特,即二元有限域上的一個元素。實際應用中陣列的元素可以為等 長的比特序列(通常稱為一個數據塊)。每個存儲節(jié)點存儲陣列中的一列,因而η即存儲節(jié) 點的個數。對于能夠容忍兩個磁盤失效的二容錯陣列碼,陣列中的前k = η-2列存儲未編 碼的原始數據,第k+Ι列和k+2列存儲冗余數據。存儲原始數據的列(節(jié)點)通常稱為系 統(tǒng)盤,冗余數據的列(節(jié)點)通常稱為校驗盤,校驗盤中的每個元素都由系統(tǒng)盤中若干個原 始數據元素經過異或運算所得,即奇偶校驗和。RAID-6系統(tǒng)是這類編碼的一個典型應用場 景。通常RAID-6編碼中第k+Ι列中的每個元素由系統(tǒng)盤中(即前k列中)位于同一行的 元素經過異或運算所得,因而又稱為行校驗。RAID-6系統(tǒng)規(guī)范并未限定第k+2列冗余數據 的生成方法。
[0004] 當有單個存儲節(jié)點失效時,傳統(tǒng)陣列碼的修復方法是:如果失效的節(jié)點為校驗盤, 則根據編碼的定義再次通過系統(tǒng)盤上的數據生成冗余數據;如果失效的節(jié)點為系統(tǒng)盤,則 利用剩余的k-Ι個系統(tǒng)盤與一個校驗盤恢復失效節(jié)點上存儲的數據。這兩種情況都需要從 k個盤中總共讀取m*k個元素來進行數據修復,消耗了大量的磁盤讀寫(I/O)資源。近年來 有學者針對已有的RAID-6編碼設計了特別的修復算法,允許從剩余的k+Ι個可用磁盤中讀 取數據,充分利用兩個校驗盤中的校驗數據,使得修復單個磁盤時平均所需讀取的數據量 降低了約25%。

【發(fā)明內容】

[0005] 本發(fā)明的目的是,為了在單個磁盤失效時,能夠及時高效地恢復損壞磁盤上所存 儲的數據,本發(fā)明提出一種適用于磁盤陣列及分布式存儲系統(tǒng)的二容錯編碼方法。
[0006] 本發(fā)明的技術方案適用于磁盤陣列及分布式存儲系統(tǒng)的二容錯編碼方法包括編 碼方案和單個磁盤錯誤修復方案。所述方法除最后一個冗余節(jié)點失效的情況外,修復單個 數據節(jié)點過程中每一個正常工作的數據節(jié)點僅需讀取所存儲數據塊的一半,并且在傳輸前 無需對讀取的內容進行編碼運算;所述方法將一個磁盤陣列劃分為多個條帶,每個條帶由 各個磁盤中一塊相同大小的存儲空間組成,每個磁盤在不同條帶中的校驗盤與系統(tǒng)盤進行 輪轉循環(huán)。
[0007] 所述編碼方案包括冗余節(jié)點所存儲的校驗數據生成和構造編碼矩陣。
[0008] 所述冗余節(jié)點所存儲的校驗數據生成方法為,設系統(tǒng)中共有η個磁盤,其中有k = n-2個系統(tǒng)盤,令m = 2k,將待存儲的原始數據劃分為等長的mk個數據塊,每個系統(tǒng)盤中存 儲m個數據塊的原始數據。為了描述方便,我們用aii ]表示第i個盤中存儲的第j個數據 士夬。將每個盤中存儲的數據看作長度為m的列向量并記為&1= (a^ay,…,&1,"廣,這里上 標T表示矩陣轉置。第一個校驗盤采用行校驗編碼,即ak+1=ai+a2+-+a k。這里加法為異 或運算。第二個校驗盤的數據可以表示為ak+2= A化+六也+…+六!^,其中Ad A2,…,A^m 行m列的矩陣,其中的元素都取自二元有限域。通過給出矩陣A2,…,\的構造方法來給 出第二個校驗盤的編碼方案。
[0009] 對于任意給定的參數k,采用以下算法構造編碼矩陣:
[0010] 第1步:令
[0011] 第2步:若i = k,則輸出矩陣Ai,A2,…,Ak;否則進行下一步;
[0012] 第3步:令
::本步驟中〇,1 分別為21行2 1列的0矩陣和單位矩陣;
[0013] 第4步:令i - i+Ι,轉到第2步。
[0014] 所述單個磁盤失效的修復方案為:
[0015] 當第k+2個盤,即第二個校驗盤失效時,讀取前k個盤存儲的數據并按照編碼方案 重新生成第二個校驗盤存儲的數據;
[0016] 當第i (i〈k+2)個盤失效時,按如下步驟進行修復:
[0017] 第1步:構造下標集合R1:若i = k+Ι,令
4
[0018] 第2步:讀取未失效盤中由下標集民指定的數據塊,例如若1^= {1,2,5,6},則對 于每一個未失效盤aj,讀取其中第1、2、5、6個數據塊au, a^,ay, a^;將第j個盤中由下 標集民指定的若干數據塊看作一個列向量,并記為a , I R1;利用行校驗修復失效盤中由下標 集 Ri指定的數據塊,Bp a i I Ri = a ! I Ri+a21 Ri+··· +a; ! I Ri+ai+11 Ri+··· +ak+11 Ri;
[0019] 第3步:構造矩陣
:,其中0, I分別為2k節(jié)2 k 1列的0矩陣和單位矩 陣;對于下標i〈k,構造矩陣1= A i+Bk+1;
[0020] 第4步:將失效盤中下標不在民中的數據塊K.j/S/U看作一個列向量并記為x ; 令h |民表示矩陣B j中行下標和列下標都屬于R i的元素構成的子矩陣,令D表示矩陣B沖 行下標屬于民且列下標不屬于R i的元素構成的子矩陣,根據本編碼的構造方法,失效盤中 下標不在民中的全部數據塊X可以通過求解以下方程得出:
[0021] Dx+B ! iRp! | …+Bk+1 |R1〇
[0022] 本發(fā)明方法的實現對硬件環(huán)境的要求為可以并行讀寫的多磁盤存儲系統(tǒng),如磁盤 陣列或分布式存儲系統(tǒng)。本發(fā)明的實現需要與文件系統(tǒng)及磁盤驅動緊密結合:向下需要磁 盤驅動提供讀寫接口,向上為文件系統(tǒng)提供可靠存儲服務。本發(fā)明能夠以硬RAID卡或軟 RAID卡的形式實現。本發(fā)明對語言工具沒有特別要求,C語言、C++語言、Java語言等都能 實現。對操作系統(tǒng)平臺也沒有特別要求,Microsoft Windows系統(tǒng)、各種Linux系統(tǒng)、Mac系 統(tǒng)等都可以作為操作系統(tǒng)運行平臺。
[0023] 本發(fā)明在實現時,所涉及的一個數據塊通??稍O定為一次磁盤讀寫的最小單元, 如一個4KB大小的page。為了平衡多個磁盤間的負載,通常需要與傳統(tǒng)的RAID輪轉技術相 結合。將一個磁盤陣列劃分為多個條帶(stripe),每個條帶由各個磁盤中一塊相同大小的 存儲空間組成,每個磁盤在不同條帶中的身份(校驗盤/系統(tǒng)盤)進行輪轉循環(huán)。
[0024] 在實現中,不需要每次編碼操作或修復操作都按照說明中給出的算法進行矩陣的 乘法、求逆等運算操作??梢酝ㄟ^預先計算得出每個校驗數據塊所涉及的原始數據塊,以及 每個磁盤失效時的具體修復方案,然后以硬編碼的形式寫入代碼。
[0025] 本發(fā)明與現有技術比較的有益效果是,當單個系統(tǒng)盤或行校驗盤失效時,本發(fā)明 在未失效盤中讀取的數據量總計為M(k+l)/2,而傳統(tǒng)的編碼及修復方案所需讀取的數據量 為Mk,這里Μ為單個磁盤的容量。當k較大時,本發(fā)明對修復單個磁盤時所需讀取的數據量 降低約50%,從而可以較快的重構出失效磁盤上所存儲的數據,并且在熱修復時,對系統(tǒng)中 其他應用的不利影響降到最低。
【附圖說明】
[0026] 圖1是
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
炉霍县| 积石山| 临颍县| 大丰市| 赤峰市| 子洲县| 金秀| 泽州县| 库尔勒市| 长治县| 平舆县| 布拖县| 时尚| 乌拉特前旗| 昌黎县| 黎城县| 牙克石市| 曲靖市| 南漳县| 富顺县| 冕宁县| 酒泉市| 凤庆县| 阳泉市| 密云县| 临漳县| 东海县| 奎屯市| 龙山县| 扬中市| 浦北县| 保亭| 莱西市| 崇州市| 新平| 嘉鱼县| 敦煌市| 垣曲县| 梅州市| 扶沟县| 淳化县|