CN110532128B - 一种降低数据更新代价的纠删码编码及数据重构方法 - Google Patents

一种降低数据更新代价的纠删码编码及数据重构方法 Download PDF

Info

Publication number
CN110532128B
CN110532128B CN201910759978.9A CN201910759978A CN110532128B CN 110532128 B CN110532128 B CN 110532128B CN 201910759978 A CN201910759978 A CN 201910759978A CN 110532128 B CN110532128 B CN 110532128B
Authority
CN
China
Prior art keywords
data
check
bits
bit
diagonal
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
Application number
CN201910759978.9A
Other languages
English (en)
Other versions
CN110532128A (zh
Inventor
张兴军
武旭瑞
董小社
梁宁静
赵英交
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201910759978.9A priority Critical patent/CN110532128B/zh
Publication of CN110532128A publication Critical patent/CN110532128A/zh
Application granted granted Critical
Publication of CN110532128B publication Critical patent/CN110532128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种降低数据更新代价的纠删码编码及数据重构方法,为每个编码条带增加一个额外的对角线校验位,并设计各对角线校验位的编码规则,消除阵列纠删码中各校验位间存在的依赖关系,减少与每个原始数据位相关联的校验位个数,降低阵列纠删码在原始数据更新时引起的相关校验位更新代价;分别对单盘故障或双盘故障情况下的数据进行重构,在少于两个数据或校验盘故障时完成失效数据的恢复,实现数据容错的功能。本发明通过增加少量校验位的存储开销,拥有了更高的数据编码、数据重构速度,而且降低了纠删码系统在数据更新时对校验盘的额外更新代价,有利于减缓新型NVM/SSD等高速存储设备的磨损。

Description

一种降低数据更新代价的纠删码编码及数据重构方法
技术领域
本发明属于计算机存储系统技术领域,具体涉及一种降低数据更新代价的纠 删码编码及数据重构方法。
背景技术
RS、RDP等纠删码能够容忍多个磁盘同时发生故障,通常被用于保障RAID、 分布式存储等系统的可靠性和持久性。不同于传统副本容错技术保存原始数据的 多个镜像副本,纠删码编码技术会对原始数据进行编码,得到多份冗余校验数据 并将其和原始数据一同保存。当原始数据丢失时,通过读取剩余健康的原始数据 和校验数据,并利用相应的数据重构方法来解码恢复失效数据。
纠删码在编码时先以条带为单位划分原始数据,其中每个条带包含固定大小 的k个数据块,通常同一条带上的各数据块被存放在不同磁盘以支持数据的并发 访问、提高系统性能。针对每一个条带,纠删码可使用多种编码方法来计算生成 冗余校验块,用于磁盘故障后失效数据的重构。目前常用的纠删码可分为容两错 的阵列码(如RDP、EVENODD等)和容多错的RS类编码(如RS、CRS等)。 相较于RS类编码使用基于矩阵运算的编解码方法来实现容错,阵列码的编解码 过程中只执行简单的异或和运算和数据拷贝,因此,阵列码的编码速度远优于 RS类编码,受到广泛的关注和研究。
但RDP等阵列码拥有较高的数据更新代价。为了保证存储系统的数据一致 性,纠删码在执行对原始数据的更新操作时,需要同时重新编码更新相关的校验 块。而RDP、EVENODD等阵列码的编码条带中一个数据位会参与2到3个校验 位的编码过程。因此,传统阵列码更新一个原始数据位后平均会对相关的多于2 个的校验位同时更新,比如RDP码在更新一个数据位时平均会对相关的
Figure BDA0002169957180000021
个校验位同时更新。较高的数据更新代价不仅会影响一些写密集型存 储系统的性能提升,还会因频繁更新校验盘而降低SSD/NVM等擦写次数有限的 存储设备的使用寿命,不利于高性能SSD/NVM在存储系统的大量使用。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种降低 数据更新代价的纠删码编码及数据重构方法,相较于RDP等阵列码,仍可容忍 任意少于两个磁盘同时故障,且通过增加少量冗余校验有效地降低了数据更新代 价。
本发明采用以下技术方案:
一种降低数据更新代价的纠删码编码及数据重构方法,为每个编码条带增加 一个额外的对角线校验位,并设计各对角线校验位的编码规则,消除阵列纠删码 中各校验位间存在的依赖关系,减少与每个原始数据位相关联的校验位个数,降 低阵列纠删码在原始数据更新时引起的相关校验位更新代价;分别对单盘故障或 双盘故障情况下的数据进行重构,在少于两个数据或校验盘故障时完成失效数据 的恢复,实现数据容错的功能。
具体的,每个编码条带由一个(p-1)×(p-1)的数据阵列和一个p-1行的水平校 验列、一个p行的对角线校验列组成,p为一个大于2的质数;di,j表示编码条带 中第i行第j列的数据位,第p-1列的di,p-1为水平校验位,第p列的di,p为对角线 校验位。
进一步的,水平校验位di,p-1的编码计算规则为:
Figure BDA0002169957180000031
其中,0≤i≤p-2,
Figure BDA0002169957180000032
表示d0,d1,...,dk执行异或和运算的结果。
进一步的,令ap-1,j=0,用a mod b表示a对b取模后的结果,对角线校验位di,p的编码计算规则为:
Figure BDA0002169957180000033
其中,0≤i≤p-1。
更进一步的,单磁盘diskj故障时,0≤j≤p,重构过程为:
如果j=p,即对角线校验发生故障,则
读取全部p-1个数据盘上的相关数据位,利用对角线校验位di,p重新编码计算 出全部对角线校验位di,p,并结束数据重构;
否则,从前p个磁盘中未故障的p-1个磁盘读取相关数据位,前p个磁盘包 括p–1个数据盘和1个水平校验盘,利用水平校验位di,p-1计算故障盘上全部数据 或校验位di,j,并结束数据重构。
更进一步的,双磁盘
Figure BDA0002169957180000034
故障时,0≤j0<j1≤p,如果有校验盘故障, 重新执行水平校验位或对角线校验位的编码过程即可修复校验盘;
当双数据盘
Figure BDA0002169957180000035
失效时,0≤j0<j1≤p-2,重构过程为:
对角线校验位
Figure BDA0002169957180000036
只受一个故障盘影响,读取剩余未故障数据和对角线校验盘的相关数据位,利用对角线校验位di,p恢复出故障数据位:
Figure BDA0002169957180000037
然后读取未故障数据盘和水平校验盘的相关数据位,利用上一步恢复出的数 据位和水平校验位di,p-1计算恢复出与其同行的故障数据位;
如果全部故障数据位都已经被恢复,则结束数据重构,否则转到下一步;
读取未故障数据盘和对角线校验盘的相关数据位,利用上一步恢复出的数据 位和对角线校验位di,p计算恢复出与其同对角线的故障数据位,然后转回重新读 取未故障数据盘和水平校验盘的相关数据位。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种降低数据更新代价的纠删码编码及数据重构方法,为每个编码条 带增加一个额外的对角线校验位,并设计各对角线校验位的编码规则,在保证阵 列纠删码容两错能力的同时,通过增加少量冗余校验,拥有远低于RDP等阵列 码的数据更新代价;与一个数据位关联的校验位数减少到阵列码理论最优的2位, 减少了数据编解码时执行的异或运算次数,拥有更高的数据编码和数据重构速 度。
进一步的,水平校验位di,p-1的计算不涉及跨行访问数据位,编解码的实现过 程简单。
进一步的,对角线校验位di,p依赖的数据位比水平校验位少,因此,编解码 执行的异或运算次数也得以减少,从而降低了数据更新时校验盘上的额外更新代 价。
进一步的,单磁盘diskj故障的数据重构方法不同于传统阵列纠删码,优先使 用对角线校验盘代替水平校验盘来参与失效数据的解码过程,减少了数据重构恢 复时执行的异或运算次数,拥有更高的重构速度。
进一步的,双数据盘
Figure BDA0002169957180000041
故障的重构方法具有并行度高的特性,可从 两个故障位开始,通过并行解码两条对称且互补的数据恢复链来恢复全部失效数 据,便于使用多线程等技术来加速其重构过程。
综上所述,本发明通过增加少量校验位的存储开销,拥有了更高的数据编码、 数据重构速度,而且降低了纠删码系统在数据更新时对校验盘的额外更新代价, 有利于减缓新型NVM/SSD等高速存储设备的磨损。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明中降低数据更新代价的纠删码编码示意图;
图2为水平校验位的生成示意图;
图3为对角线校验位的生成示意图;
图4为单盘故障的数据重构流程;
图5为双数据盘故障的数据重构流程。
具体实施方式
本发明提供了一种降低数据更新代价的纠删码编码及数据重构方法,通过牺 牲少量存储利用率换取远低于RDP码等阵列纠删码的数据更新代价。通过为每 个编码条带增加一个额外的对角线校验位,并设计各对角线校验位的编码规则, 可消除阵列纠删码中各校验位间存在的依赖关系,从而减少与每个原始数据位相 关联的校验位个数,降低阵列纠删码在原始数据更新时引起的相关校验位更新代 价。此外,为该编码设计了在不同故障情况下的数据重构方法,能够在少于两个 数据或校验盘故障时完成失效数据的恢复,实现数据容错的功能。
条带:纠删码技术中编解码操作的基本执行单位,由多个数据块和相关校验 块组成。
数据块:原始数据被划分为大小相同的数据块,每个数据块包含固定个数的 (原始)数据位。
校验块:原始数据块经过编码后生成对应的校验块,每个校验块包含固定个 数的校验(数据)位。
EaR:本发明设计的降低数据更新代价的纠删码编码。
p:每个EaR编码条带都由一个(p+1)×(p-1)的数据位阵列组成,其中,p为 一个大于2的质数。
di,j:表示EaR编码条带中第i行第j列的数据位或校验位,其中,0≤i≤p-1, 0≤j≤p。
diskf:表示编号为f的磁盘(数据盘或校验盘),用于保存EaR编码条带中 的第f列的原始数据或校验数据。
水平校验位:由处于同一行的原始数据位执行异或和运算得到,被保存在 EaR编码条带中第p-1列。
对角线校验位:由处于同一对角线(斜率为1的斜线)的原始数据位执行异 或和运算得到,被保存在EaR编码阵列中第p列。
Figure BDA0002169957180000061
表示对x0、x1、...、xt这t+1个数执行异或和运算的结果。
x mod t:表示取模运算,返回x对t取模后的值,其取值范围为[0,t-1]。
数据重构:读取健康(未失效)的原始数据或校验数据,并根据相应的解码 计算公式来恢复故障盘上的失效数据。
本发明一种降低数据更新代价的纠删码编码及数据重构方法,包括以下步 骤:
EaR码的编码实施方法
S1、水平校验位di,p-1(0≤i≤p-2)的编码过程为:
S101、置i、j为0,全部水平校验位di,p-1(0≤i≤p-2)为0;
S102、读取与水平校验位di,p-1在同行的数据位di,j,计算两者的异或和并 将结果赋值给校验位di,p-1
S103、置j=j+1;
S104、如果j<p-1,则返回步骤S102,否则转到下一步;
S105、置i=i+1,j=0;
S106、如果i<p-1,则返回步骤S102,否则结束数据编码。
请参阅图2,水平校验位由处于同行的各原始数据位执行异或和运算得到, 用
Figure BDA0002169957180000071
表示d0,d1,...,dk执行异或和运算的结果,则水平校验位di,p-1的编码计算规 则为:
Figure BDA0002169957180000072
其中,0≤i≤p-2;
S2、对角线校验位di,p(0≤i≤p-1)的编码过程为:
S201、置i、j为0,全部对角线校验位di,p(0≤i≤p-1)为0;
S202、令id=(i-j)mod p;
S203、如果id<p-1,则转到下一步,否则转到步骤S205;
S204、读取与对角线校验位di,p在同一对角线的数据位did,j,计算两者的 异或和并将结果赋值给校验位di,p
S205、置j=j+1;
S206、如果j<p-1,则返回步骤S202,否则转到下一步;
S207、置i=i+1,j=0;
S208、如果i<p,则返回步骤S202,否则结束数据编码。
请参阅图3,对角线校验位由处于同对角线(斜率为1)的各原始数据位执行异 或和运算得到;令ap-1,j=0,用a mod b表示a对b取模后的结果,则对角线校验位 di,p的编码计算规则为:
Figure BDA0002169957180000081
其中,0≤i≤p-1。
EaR码的数据重构实施方法
EaR码可容忍任意少于两个的磁盘发生故障。针对不同的故障情况,EaR编 码采用各自对应的数据重构方法来恢复失效数据,由于校验盘故障时的重构过程 等同于重新执行水平或对角线校验位的编码过程,在此不再赘述,具体的数据重 构方法为:
S3、单个盘diskf故障(即数据位di,f失效),如图4所示,重构过程如下:
S301、确定故障磁盘的编号f;
S302、置i、j为0,全部故障位为0;
S303、如果f=p,则转到下一步,否则转到步骤S311;
S304、令id=(i-j)mod p;
S305、如果id<p-1,则转到下一步,否则转到步骤S307;
S306、读取与故障校验位di,f在同一对角线的数据位did,j,计算两者的异 或和并将结果赋值给故障位di,f
S307、置j=j+1;
S308、如果j<p-1,则返回步骤S304,否则转到下一步;
S309、置i=i+1,j=0;
S310、如果i<p,则返回步骤S304,否则结束数据重构。
S311、如果j=f,则转到步骤S313,否则转到下一步;
S312、读取与故障位di,f在同行的数据位或校验位di,j,计算两者的异或和 并将结果赋值给故障位di,f
S313、置j=j+1;
S314、如果j<p,则返回步骤S312,否则转到下一步;
S315、置i=i+1,j=0;
S316、如果i<p-1,则返回步骤S311,否则结束数据重构。
S4、两个数据盘(即0≤f0、f1≤p-2)同时故障(即数据位
Figure BDA0002169957180000091
失效), 如图5所示,数据重构过程如下:
S401、置i、j为0,全部故障位为0;
S402、令i=(f1-f0-1)modp;
S403、如果j=f0、f1或p-1,则转到步骤S407,否则转到下一步;
S404、令id=(i+f0-j)modp;
S405、如果id<p-1,则转到下一步,否则转到步骤S407;
S406、计算故障位
Figure BDA0002169957180000092
与同对角线数据位或校验位did,j的异或和并将结果 赋值给故障位
Figure BDA0002169957180000093
S407、置j=j+1;
S408、如果j<p+1,则返回步骤S403,否则转到下一步;
S409、置j=0;
S410、如果j=f1,则转到步骤S412,否则转到下一步;
S411、计算故障位
Figure BDA0002169957180000101
与同行数据位di,j的异或和并将结果赋值给故障位
Figure BDA0002169957180000102
S412、置j=j+1;
S413、如果j<p,则返回步骤S410,否则转到下一步;
S414、置j=0;
S415、令i=(i+f1-f0)modp;
S416、如果i<p-1,则转到步骤S403,否则结束数据重构。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然, 所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图 中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。 因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护 的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。
下面以图1中p=5的EaR码为例来说明本发明的编码和数据重构方法。
根据公式(1)、公式(2)编码计算图1中的两校验盘中的各校验位值。由 图2可知,Disk4上的水平校验位d0,4通过计算同行的d0,0、d0,1、d0,2、d0,34个数据位 的异或和得到。同理,其它水平校验位d1,4、d2,4、d3,4也分别通过计算与各自同行的 4个数据位的异或和得到。由图3可知,Disk5上的对角线校验位d0,5通过计算同 对角线的d0,0、d3,2、d2,33个数据位的异或和得到。同理,其它对角线校验位 d1,5、d2,5、d3,5、d4,5也分别通过计算与各自同对角线的数据位的异或和得到。特殊的 是,与校验位d3,5同对角线的有d3,0、d2,1、d1,2、d0,34个数据位。
由于EaR码在校验盘故障时的数据重构过程等同于上述校验盘的编码过程, 这里只举例说明EaR码在单数据盘故障、双数据盘故障时的数据重构过程。假设 图1中数据盘Disk1发生故障,故障位d0,1能够通过计算同对角线的健康数据位 d1,0、d3,3和对角线校验位d1,5的异或和恢复出来。同理,其它故障位d1,1、d2,1、d3,1也 通过计算各自同对角线的健康数据位和对角线校验位的异或和得到。假设图1中 数据盘Disk1、Disk3都发生故障,则故障位d1,1将作为起点被首先恢复,通过计 算与d1,1同对角线的健康数据位d2,0、d0,2和对角线校验位d2,5的异或和即可恢复故 障位d1,1;然后,开始利用行校验公式恢复与d1,1同行的另一个故障位d1,3,通过计 算与d1,3同行的健康数据位d1,0、d1,2和健康校验位d1,4以及已恢复出的数据位d1,1的 异或和即可完成故障位d1,3的恢复;之后,继续交叉地使用公式1、公式2来恢复 剩余全部的故障数据位,各故障位的恢复次序为: d1,1、d1,3、d3,1、d3,3、d0,1、d0,3、d2,1、d2,3
本发明通过为每个条带增加一个额外的校验位,减少了平均与一个数据位相 关联的校验位数,从而降低了数据更新时为保障数据一致性而对校验盘执行的额 外更新代价。在上述p=5的实例中,纠删码系统只增加了1/24的额外校验位存 储开销,却使数据更新代价由原来的2.5625降低为2。此外,由于校验位生成规 则的改变,纠删码的数据编码、数据重构速度都高于现有RDP等阵列码,而且 本发明的数据重构方法具有可并行执行的能力,在多核处理器上有进一步加速的 潜力。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡 是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发 明权利要求书的保护范围之内。

Claims (3)

1.一种降低数据更新代价的纠删码编码及数据重构方法,其特征在于,为每个编码条带增加一个额外的对角线校验位,并设计各对角线校验位的编码规则,消除阵列纠删码中各校验位间存在的依赖关系,减少与每个原始数据位相关联的校验位个数,降低阵列纠删码在原始数据更新时引起的相关校验位更新代价;分别对单盘故障或双盘故障情况下的数据进行重构,在少于两个数据或校验盘故障时完成失效数据的恢复,实现数据容错的功能;
每个编码条带由一个(p-1)×(p-1)的数据阵列和一个p-1行的水平校验列、一个p行的对角线校验列组成,p为一个大于2的质数;di,j表示编码条带中第i行第j列的数据位,第p-1列的di,p-1为水平校验位,第p列的di,p为对角线校验位;
水平校验位di,p-1的编码计算规则为:
Figure DEST_PATH_RE-FDA0002684875120000011
Figure FDA0002927989560000011
其中,0≤i≤p-2,
Figure FDA0002927989560000012
表示d0,d1,...,dk执行异或和运算的结果;
令ap-1,j=0,用a mod b表示a对b取模后的结果,对角线校验位di,p的编码计算规则为:
Figure DEST_PATH_RE-FDA0002684875120000013
Figure FDA0002927989560000013
其中,0≤i≤p-1。
2.根据权利要求1所述的降低数据更新代价的纠删码编码及数据重构方法,其特征在于,单磁盘diskj故障时,0≤j≤p,重构过程为:
如果j=p,即对角线校验发生故障,则
读取全部p-1个数据盘上的相关数据位,利用对角线校验位di,p重新编码计算出全部对角线校验位di,p,并结束数据重构;
否则,从前p个磁盘中未故障的p-1个磁盘读取相关数据位,前p个磁盘包括p–1个数据盘和1个水平校验盘,利用水平校验位di,p-1计算故障盘上全部数据或校验位di,j,并结束数据重构。
3.根据权利要求1所述的降低数据更新代价的纠删码编码及数据重构方法,其特征在于,双磁盘
Figure FDA0002927989560000021
故障时,0≤j0<j1≤p,如果有校验盘故障,重新执行水平校验位或对角线校验位的编码过程即可修复校验盘;
当双数据盘
Figure FDA0002927989560000022
失效时,0≤j0<j1≤p-2,重构过程为:
对角线校验位
Figure FDA0002927989560000023
只受一个故障盘影响,读取剩余未故障数据和对角线校验盘的相关数据位,
S401、置i、j为0,全部故障位为0;
S402、令i=(f1-f0-1)mod p;
S403、如果j=f0、f1或p-1,则转到步骤S407,否则转到下一步;
S404、令id=(i+f0-j)mod p;
S405、如果id<p-1,则转到下一步,否则转到步骤S407;
S406、计算故障位
Figure FDA0002927989560000024
与同对角线数据位或校验位
Figure FDA0002927989560000025
的异或和并将结果赋值给故障位
Figure FDA0002927989560000026
S407、置j=j+1;
S408、如果j<p+1,则返回步骤S403,否则转到下一步;
S409、置j=0;
S410、如果j=f1,则转到步骤S412,否则转到下一步;
S411、计算故障位
Figure FDA0002927989560000027
与同行数据位di,j的异或和并将结果赋值给故障位
Figure FDA0002927989560000028
S412、置j=j+1;
S413、如果j<p,则返回步骤S410,否则转到下一步;
S414、置j=0;
S415、令i=(i+f1-f0)mod p;
S416、如果i<p-1,则转到步骤S403,否则结束数据重构;
利用对角线校验位di,p恢复出故障数据位:
Figure FDA0002927989560000031
然后读取未故障数据盘和水平校验盘的相关数据位,利用上一步恢复出的数据位和水平校验位di,p-1计算恢复出与其同行的故障数据位;
如果全部故障数据位都已经被恢复,则结束数据重构,否则转到下一步;
读取未故障数据盘和对角线校验盘的相关数据位,利用上一步恢复出的数据位和对角线校验位di,p计算恢复出与其同对角线的故障数据位,然后转回重新读取未故障数据盘和水平校验盘的相关数据位。
CN201910759978.9A 2019-08-16 2019-08-16 一种降低数据更新代价的纠删码编码及数据重构方法 Active CN110532128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910759978.9A CN110532128B (zh) 2019-08-16 2019-08-16 一种降低数据更新代价的纠删码编码及数据重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910759978.9A CN110532128B (zh) 2019-08-16 2019-08-16 一种降低数据更新代价的纠删码编码及数据重构方法

Publications (2)

Publication Number Publication Date
CN110532128A CN110532128A (zh) 2019-12-03
CN110532128B true CN110532128B (zh) 2021-04-20

Family

ID=68663491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910759978.9A Active CN110532128B (zh) 2019-08-16 2019-08-16 一种降低数据更新代价的纠删码编码及数据重构方法

Country Status (1)

Country Link
CN (1) CN110532128B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930552A (zh) * 2020-06-17 2020-11-13 深圳佰维存储科技股份有限公司 坏块数据的恢复方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012792A (zh) * 2010-11-02 2011-04-13 华中科技大学 一种快速重构的raid-6编码及重构方法
CN107395207A (zh) * 2017-07-12 2017-11-24 东莞理工学院 多容错性的mds 阵列码编码以及修复方法
CN107656832A (zh) * 2017-09-18 2018-02-02 华中科技大学 一种低数据重建开销的纠删码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250427B2 (en) * 2008-06-18 2012-08-21 Hewlett-Packard Development Company Selecting erasure codes for a fault tolerant system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012792A (zh) * 2010-11-02 2011-04-13 华中科技大学 一种快速重构的raid-6编码及重构方法
CN107395207A (zh) * 2017-07-12 2017-11-24 东莞理工学院 多容错性的mds 阵列码编码以及修复方法
CN107656832A (zh) * 2017-09-18 2018-02-02 华中科技大学 一种低数据重建开销的纠删码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
纠删码存储系统中数据修复方法综述;杨松霖 等;《计算机科学与探索》;20170621;第11卷(第10期);第1536页 *

Also Published As

Publication number Publication date
CN110532128A (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
US8645798B2 (en) Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method
US9552258B2 (en) Method and system for storing data in raid memory devices
US8086937B2 (en) Method for erasure coding data across a plurality of data stores in a network
US5351246A (en) Method and means for coding and rebuilding that data contents of unavailable DASDs or rebuilding the contents of DASDs in error in the presence of reduced number of unavailable DASDs in a DASD array
JP2514289B2 (ja) デ―タの修復方法およびシステム
CA2532766C (en) Data storage array
US7188270B1 (en) Method and system for a disk fault tolerance in a disk array using rotating parity
US7934120B2 (en) Storing data redundantly
CN104160452B (zh) 用于存储数据和对擦除进行纠正的方法、系统和装置
CN104503706B (zh) 一种基于磁盘阵列的数据存储及读取方法
Park et al. Reliability and performance enhancement technique for SSD array storage system using RAID mechanism
CN109086000B (zh) 一种raid存储系统中的三容错数据布局方法
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN107885620B (zh) 一种提高固态盘阵列性能和可靠性的方法及系统
JP6260193B2 (ja) ストレージシステム、及びストレージプログラム
CN110532128B (zh) 一种降低数据更新代价的纠删码编码及数据重构方法
US20050278568A1 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
JP4756704B2 (ja) データ・ストレージ・アレイ
US7356757B2 (en) Fault tolerance system and method for one or two failed disks in a disk array
JP2012518231A (ja) 複数のディスクアレイのi/o動作を実行する方法及びシステム
JP2750316B2 (ja) データのコーディング及び再生方法
US7398460B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
Li et al. Ps-code: A new code for improved degraded mode read and write performance of raid systems
US7788525B2 (en) Fault tolerance system and method for multiple failed disks in a disk array
CN113094213B (zh) GPyramid-Code布局及该布局单盘故障的数据恢复与存储方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant