CN106254033B - 一种阵列式存储系统的编码容错方法 - Google Patents
一种阵列式存储系统的编码容错方法 Download PDFInfo
- Publication number
- CN106254033B CN106254033B CN201610640565.5A CN201610640565A CN106254033B CN 106254033 B CN106254033 B CN 106254033B CN 201610640565 A CN201610640565 A CN 201610640565A CN 106254033 B CN106254033 B CN 106254033B
- Authority
- CN
- China
- Prior art keywords
- verification
- array
- data
- err
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
Abstract
本发明属于计算机信息存储技术领域,具体是一种用于任意多节点的阵列式存储系统的编码容错方法。本方法针对的错误类型为节点错误,即一旦某节点出现任意错误就认为该节点的数据全部不再可靠或全部丢失,该方法适用于任意多节点的阵列式存储,不仅能够提高存储系统的可靠性,适于公司或机构等数据量大且对数据稳定性要求高的情况,能够广泛的应用于服务器系统中。
Description
技术领域
本发明属于计算机信息存储技术领域,具体是一种用于任意多节点的阵列式存储系统的编码容错方法。
背景技术
随着网络和服务器的迅速成长,数据的容量越来越大,数据的重要性和安全性也更加得到重视。为了应对由数据量的快速增长而带来的数据存储可靠性问题,同时也为了提高数据访问的并发效率和降低成本,通常有效的做法是使用多个存储节点共同构建一个存储系统,该存储系统通常是基于网络的分布式存储系统,其雏形可以追溯到集中式的RAID (Redundant Array of Inexpensive Disk,廉价冗余磁盘阵列)系统。RAID 技术的提出,是希望用多块小型磁盘按照一定条件组合成一块大容量的逻辑硬盘,在多块硬盘中按照一定规则,如分条、分块、交叉存取等方式对数据和校验数据进行各种组合处理,用冗余数据的方式提高可靠性,使得单个硬盘发生故障时不会影响数据的正常访问,从而保证重要数据的安全;另外也希望以此种多块小型磁盘按一定条件组合成大容量的逻辑磁盘,替代昂贵的单块大容量硬盘,从而降低数据储存费用。
虽然当前单个硬件设备的稳定性已经较高,但是对于由众多节点构成的分布式存储系统,节点故障事件仍然会频繁发生。尤其在数据量巨大的情况下,单个节点平均失效概率一定的情况下,总的节点数目增加就意味着一个系统在任意时间段内可能同时失效的节点数目也随之增长;黑客攻击或操作失误等突发行为也可能造成一个存储系统中多个节点同时失效。采用常见的基于镜像备份的可靠性增强策略虽然提高了存储系统的可靠性,但显然需要浪费巨大的存储空间,随着容错能力提升而存储效率不断下降、更新成本不断增加。
发明内容
本发明的目的就是针对现有技术的不足,提供一种用于任意多节点的阵列式存储系统的编码容错方法,能够有效提高容错能力。
为实现上述目的,本发明所述阵列式存储系统的编码容错方法的具体技术方案为:所述阵列存储系统由n个数据节点和k个校验节点构成,每个节点同一个条带中的每个条块包含m个元素纵向排列,m为大于2 的正整数,每个元素由一个比特表示,形成一个m*(n+k)的阵列,数据节点存储的元素为数据元素阵列,校验节点存储的元素为校验元素阵列;所述方法的具体步骤为:
S1、设存储系统所需最大容错数量为err,则err,m,n需要满足如下条件:n≥m*err-err+1;
S2、对数据元素阵列内每个元素进行二维编号,即用D(i,j)表示数据元素阵列的第i行第j个元素;对于校验元素阵列中的每个元素按照列优先进行一维编号,即用C(h)表示校验元素阵列中的第h个元素;基于已知的数据元素进行err轮的校验元素计算,每一轮进行n次计算,产生n 个校验元素,校验元素的计算公式为:
以上式中,x、y表示第x轮的第y次码链部署,1≤x≤err,1≤y≤ n,其中j可由公式(二)计算得出:
以上公式(二)中,%为取模运算,为上取整数;
每一次的计算所涉及的所有数据元素及校验元素构成一个校验链;
S3、当有不大于err个节点发生错误时,该节点上所有元素称为失效元素,遍历所有校验链,寻找仅有一个失效元素的校验链,对该链上所有非失效元素进行异或运算,其结果就是该失效元素的值,重复遍历校验链计算失效元素,直至找回所有失效元素。
每个节点包括PC、服务器或磁盘。
以上方法执行步骤S3可以看出,本方法针对的错误类型为节点错误,即一旦某节点出现任意错误就认为该节点的数据全部不再可靠或全部丢失,该方法适用于任意多节点的阵列式存储。
本发明的有益效果是提供了一种阵列式存储系统的编码容错方法,能够提高存储系统的可靠性,适于公司或机构等数据量大且对数据稳定性要求高的情况,能够广泛的应用于服务器系统中。
附图说明
附图用来提供对本发明的进一步理解,并不构成对本发明的限制。
图1为本发明适用的多节点存储系统的逻辑结构示意图;
具体实施方式
下面结合实施例,对本发明的实施作进一步的描述。
如图1所示,一个阵列存储系统由n个数据节点和k个校验节点构成,每个节点可以是但不限于是一台PC、服务器或磁盘;将每个节点分为数目相等的多个存储区域,称为条块,每个节点上对应的条块组成条带;每个条带可以采用不同的存储方式。
设某条带内,每个条块包含有m个元素,m为3,每个元素由一个比特表示;将3个元素纵向排列,则形成一个3*(n+k)的阵列。
S1、设存储系统所需最大容错数量为err,则err,m,n需要满足如下条件:n≥m*err-err+1=3*3-3+1=7,取n为7;数据元素阵列的尺寸为 3*7;假设数据元素阵列中各元素值如下所示:
1 | 1 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 1 |
S2、对数据节点的条块内每个元素进行二维编号,即用D(i,j)表示数据元素阵列的第i行第j个元素;对于校验元素阵列中的每个元素按照列优先进行一维编号,即用C(h)表示校验元素阵列中的第h个元素;基于已知的数据元素进行3轮的校验元素计算,每一轮进行7次计算,产生 7个校验元素,采用公式(一)计算:
以上式中,x、y表示第x轮的第y次码链部署,1≤x≤err,1≤y≤ n,为D(i,j)的异或运算,其中j可由公式(二)计算得出:
以上公式(二)中,%为取模运算,为上取整数;
详细地,各校验元素值计算过程如下:
第x=1轮:第y=1次计算,
的所有数据元素及校验元素构成一个校验链,即D(1,1)、D(2,2)、D(3,3)、 C(1)构成一个校验链;
第y=2次计算,
即C(2)=1,本次计算D(1,2)、 D(2,3)、D(3,4)、C(2)构成一个校验链;
依次得出校验元素C(3)=0+1+1=0;C(4)=0+0+1=1;C(5)=1+0+1=0; C(6)=0+0+1=1;C(7)=1+0+1=0以及校验链。
第x=2轮:第y=1次计算
即C(8)=0,本次计算所涉及的D(1,1)、D(2,7)、D(3,6)、C(8)构成一个校验链;
第y=2次计算,
即C(9)=0,本次计算D(1,2)、 D(2,1)、D(3,7)、C(9)构成一个校验链;
依次得出校验元素C(10)=0+1+1=0;C(11)=0+0+1=1;C(12)=1+1+1=1; C(13)=0+0+0=0;C(14)=1+0+1=0以及校验链;
第x=3轮:第y=1次计算
即C(15)=0,本次计算所涉及的D(1,1)、D(2,3)、D(3,5)、C(15)构成一个校验链;
第y=2次计算,
即C(16)=1,本次计算所涉及的D (1,2)、D(2,4)、D(3,6)、C(16)构成一个校验链;
依次得出校验元素C(17)=0+0+1=1;C(18)=0+0+1=1;C(19)=1+0+1=0; C(20)=0+0+1=1以及校验链;
直至第x=err=3轮y=n=7次计算,
即C(21)=0,本次计算所涉及的D (1,7)、D(2,2)、D(3,4)、C(21)构成一个校验链。
按列优先一维排列出校验元素C(h)阵列如下:
C(1) | C(4) | C(7) | C(10) | C(13) | C(16) | C(19) |
C(2) | C(5) | C(8) | C(11) | C(14) | C(17) | C(20) |
C(3) | C(6) | C(9) | C(12) | C(15) | C(18) | C(21) |
即:
1 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 0 | 1 | 0 |
最终整个存储阵列如下所示:
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
S3、当有不大于err个节点发生错误时,该节点上所有元素称为失效元素;本实施例中,假设3个节点发生错误,如第1、3、9个节点发生错误,则1、3、9列上的数据全部丢失,即元素D(1,1)、D(2,1)、D(3,1),元素D(1,3)、D(2,3)、D(3,3),元素C(4)、C(5)、C(6)失效,如下表:
x | 1 | x | 0 | 1 | 0 | 1 | 1 | x | 0 | 0 | 0 | 1 | 0 |
x | 1 | x | 1 | 0 | 0 | 0 | 1 | x | 0 | 1 | 0 | 1 | 1 |
x | 1 | x | 0 | 1 | 1 | 1 | 0 | x | 0 | 1 | 0 | 1 | 0 |
数据恢复:遍历所有校验链,寻找仅有一个失效元素的校验链,对该链条上所有非失效元素进行异或运算,其结果就是该失效元素的值,重复遍历校验链计算失效元素,直至找回所有数据,过程如下所示:
首先找到仅有一个失效元素的校验链D(1,3)、D(2,4)、D(3,5)、C(3),则D(1,3)=1^1^0=0;赋值如下表所示:
x | 1 | 0 | 0 | 1 | 0 | 1 | 1 | x | 0 | 0 | 0 | 1 | 0 |
x | 1 | x | 1 | 0 | 0 | 0 | 1 | x | 0 | 1 | 0 | 1 | 1 |
x | 1 | x | 0 | 1 | 1 | 1 | 0 | x | 0 | 1 | 0 | 1 | 0 |
重复遍历校验链找到仅有一个失效元素的校验链D(1,2)、D(2,3)、 D(3,4)、C(2),则D(2,3)=1^0^1=1;
继续重复遍历校验链找到仅有一个失效元素的校验链D(1,1)、 D(2,7)、D(3,6)、C(8),则D(1,1)=0^1^0=1;
继续重复遍历校验链依次计算失效元素D(3,3)=1、D(2,1)=0、D(3,1)=1、C(4)=1、C(5)=0、C(6)=1,最终所有失效数据完全恢复。
本发明在当有不大于err个节点发生错误时,能够找回所有失效元素,有效提高存储系统的可靠性。
以上结合对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
Claims (2)
1.一种阵列式存储系统的编码容错方法,所述阵列存储系统由n个数据节点和k个校验节点构成;每个节点同一个条带中的每个条块包含m个元素纵向排列,m为大于2的正整数,每个元素由一个比特表示,形成一个m*(n+k)的阵列,数据节点存储的元素为数据元素阵列,校验节点存储的元素为校验元素阵列;其特征在于:所述方法的具体步骤为:
S1、设存储系统所需最大容错数量为err,则err,m,n需要满足如下条件:n≥m*err-err+1;
S2、对数据元素阵列内每个元素进行二维编号,即用D(i,j)表示数据元素阵列的第i行第j个元素;对于校验元素阵列中的每个元素按照列优先进行一维编号,即用C(h)表示校验元素阵列中的第h个元素;
基于已知的数据元素进行err轮的校验元素计算,每一轮进行n次计算,产生n个校验元素,校验元素的计算公式为:
以上式中,x、y表示第x轮的第y次码链部署,1≤x≤err,1≤y≤n,其中j可由公式(二)计算得出:
以上公式(二)中,%为取模运算,为上取整数;
每一次的计算所涉及的所有数据元素及校验元素构成一个校验链;
S3、当有不大于err个节点发生错误时,该节点上所有元素称为失效元素,遍历所有校验链,寻找仅有一个失效元素的校验链,对该链上所有非失效元素进行异或运算,其结果就是该失效元素的值,重复遍历校验链计算失效元素,直至找回所有数据。
2.根据权利要求1所述的阵列式存储系统的编码容错方法,其特征在于:每个节点包括PC、服务器或磁盘。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610640565.5A CN106254033B (zh) | 2016-08-07 | 2016-08-07 | 一种阵列式存储系统的编码容错方法 |
PCT/CN2016/110614 WO2018028107A1 (zh) | 2016-08-07 | 2016-12-18 | 一种阵列式存储系统的编码容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610640565.5A CN106254033B (zh) | 2016-08-07 | 2016-08-07 | 一种阵列式存储系统的编码容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106254033A CN106254033A (zh) | 2016-12-21 |
CN106254033B true CN106254033B (zh) | 2019-07-19 |
Family
ID=58078062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610640565.5A Active CN106254033B (zh) | 2016-08-07 | 2016-08-07 | 一种阵列式存储系统的编码容错方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106254033B (zh) |
WO (1) | WO2018028107A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419684B (zh) * | 2021-07-09 | 2023-02-24 | 深圳大普微电子科技有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103533A (zh) * | 2011-02-25 | 2011-06-22 | 华中科技大学 | 一种双盘容错磁盘阵列中单盘重构的方法 |
CN104111880A (zh) * | 2013-04-16 | 2014-10-22 | 华中科技大学 | 一种容三盘失效纠删码的单数据盘失效快速重建方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020803B2 (en) * | 2002-03-11 | 2006-03-28 | Hewlett-Packard Development Company, Lp. | System and methods for fault path testing through automated error injection |
US7519629B2 (en) * | 2004-09-30 | 2009-04-14 | International Business Machines Corporation | System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree |
CN103593253A (zh) * | 2013-11-22 | 2014-02-19 | 华中科技大学 | 一种基于异或的垂直raid-6编码方法 |
-
2016
- 2016-08-07 CN CN201610640565.5A patent/CN106254033B/zh active Active
- 2016-12-18 WO PCT/CN2016/110614 patent/WO2018028107A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103533A (zh) * | 2011-02-25 | 2011-06-22 | 华中科技大学 | 一种双盘容错磁盘阵列中单盘重构的方法 |
CN104111880A (zh) * | 2013-04-16 | 2014-10-22 | 华中科技大学 | 一种容三盘失效纠删码的单数据盘失效快速重建方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
Non-Patent Citations (1)
Title |
---|
一类多容错的阵列纠删码;唐聃 等;《中国科学:信息科学》;20160413;第46卷(第4期);全文 |
Also Published As
Publication number | Publication date |
---|---|
WO2018028107A1 (zh) | 2018-02-15 |
CN106254033A (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiang et al. | Optimal recovery of single disk failure in RDP code storage systems | |
Jin et al. | P-Code: A new RAID-6 code with optimal properties | |
Huang et al. | Pyramid codes: Flexible schemes to trade space for access efficiency in reliable data storage systems | |
EP2470992B1 (en) | N-way parity technique for enabling recovery from up to n storage device failures | |
Baek et al. | Reliability and performance of hierarchical RAID with multiple controllers | |
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
US7934120B2 (en) | Storing data redundantly | |
CN101888398B (zh) | 基于(d,k)摩尔图的网络存储结构的数据存储方法 | |
US20140310571A1 (en) | Local Erasure Codes for Data Storage | |
CN104881370B (zh) | 协同使用纠删码和纠错码的可靠闪存存储系统构建方法 | |
CN101719086B (zh) | 磁盘阵列容错处理方法和装置及容错系统 | |
CN107656832A (zh) | 一种低数据重建开销的纠删码方法 | |
CN101546249A (zh) | 磁盘阵列在线容量扩展方法 | |
JP2009514056A (ja) | データ・ストレージ・アレイ | |
US20120089799A1 (en) | Data backup processing method, data storage node apparatus and data storage device | |
US10521304B1 (en) | Multidimensional RAID | |
CN102981927A (zh) | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 | |
Goel et al. | RAID triple parity | |
US20120198195A1 (en) | Data storage system and method | |
CN103412799A (zh) | 数据恢复方法、数据恢复设备和分布式存储系统 | |
CN104516679B (zh) | 一种raid数据处理方法及装置 | |
CN106254033B (zh) | 一种阵列式存储系统的编码容错方法 | |
US6792391B1 (en) | Method and system for three disk fault tolerance in a disk array | |
CN104932836B (zh) | 一种提高单写性能的三盘容错编码和解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |