CN103809919A - 高效容多错的快速恢复编码方法及其验证矩阵生成方法 - Google Patents
高效容多错的快速恢复编码方法及其验证矩阵生成方法 Download PDFInfo
- Publication number
- CN103809919A CN103809919A CN201310689402.2A CN201310689402A CN103809919A CN 103809919 A CN103809919 A CN 103809919A CN 201310689402 A CN201310689402 A CN 201310689402A CN 103809919 A CN103809919 A CN 103809919A
- Authority
- CN
- China
- Prior art keywords
- band
- data
- concentrated
- row
- return
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种高效容多错的快速恢复编码及其验证矩阵生成方法,该编码是基于XOR运算的一种编码。且该编码是以编码单元为单位的编码。在一个编码单元中存在多个条带集,每个条带集之间存在着一定的联系。在该种编码中一个编码单元的前面Rp行存放着校验码,后面的Rp行存放着数据,Rp行中的数据通过一个或几个条带集中的一些数据块进行异或得到。同时还提供了一种验证该编码的容错能力的方法,用一个变换矩阵来表示从原始的数据块生成全部数据的过程,然后把变换矩阵中与失效块有关的行去掉得到一个降级的转换矩阵,通过验证该降级的变换矩阵的秩可以得出该编码的容错度。本发明能够解决现有技术中存在的容错能力低、降级读与重构的性能差的技术问题。
Description
技术领域
本发明属于计算机存储领域,更具体地,涉及一种高效容多错的快速恢复编码方法及其验证矩阵生成方法。
背景技术
可靠性与可用性是衡量在线存储服务质量的重要标准。对于为商业与工业应用提供在线服务的系统,数据丢失以及时常间断的服务往往意味着经济损失。磁盘冗余阵列独立冗余磁盘阵列(Redundant Array ofIndependent Disk,简称RAID)是能够提供高可靠性与高可用性的主流选择之一。在早期的RAID规范中,例如RAID-0到RAID-5,其仅仅提供单盘容错能力。近年来,具有更高容错能力的各种RAID系统逐渐开始被采用,因其在两个或两个以上磁盘同时失效时仍然能够恢复所有丢失的数据,与此同时还能够提供不间断的在线服务。
但是现在很多存储系统中在发生磁盘失效后重构和降级读的速度都非常的慢。而且由于现在磁盘失效发生的概率越来越频繁,因此能够容一个或两个磁盘失效的RAIDs已经无法提供足够的安全性了。因此现在急需提出一种具有高容错性的编码。
Reed-Solomon编码是一种基于伽罗华域的编码,其主要的优势是能够容任意多的磁盘失效,但是由于伽罗华域上的运算开销非常的大,虽然现在Plank等人提出了一种采用Intel公式的SIMD指令来加速伽罗华域上的乘法运算的方法,但是其计算开销相比异或运算来说还是很大。因此最近许多研究都是在基于异或运算的编码上进行的。
存储系统的存储效率与纠删码的设计存在很大的关系。有一类编码叫做最大距离可分离(Maximum Distance Separable,简称MDS)编码,这种编码的存储效率是最高的。但是MDS编码存在很明显的缺点:容错能力差,且I/O开销和降级读与重构的计算复杂度很高。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种高效容多错的快速恢复编码方法及其验证矩阵生成方法。其目的在于,解决现有技术中存在的容错能力低、降级读与重构的性能差的技术问题。
为实现上述目的,按照本发明的一个方面,提供了高效容多错的快速恢复编码方法,包括以下步骤:
(1)获取用户输入的系统参数,包括磁盘的大小S*C、一个条带中数据块的个数Rd、一个条带中校验快的个数2个,其中S表示条带集的数量,C表示每个条带集中条带的数量;
(2)根据用户输入的系统参数建立快速恢复编码的第一行校验元素C(sp 0,rp 0,cp 0),C(sp 1,rp 0,cp 1),…,C(sp S-1,rp 0,cp C-1),其中s表示条带集在编码单元中的序号,r0表示校验元素在条带集中的第一行,且r0=0,c表示校验元素在条带集中的列序号,本步骤具体包括以下子步骤:
(2-1)初始化sp 0=0,cp 0=0;
(2-2)判断是否有cp 0<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)将第<sp 0+1>S个条带集中的第cp 0+2行的元素进行异或运算,以得到校验元素,并将该校验元素存放在C(sp 0,r,cp 0)中;
(2-4)将第<sp 0+2>S个条带集中以C(<sp 0+2>S,2,<cp 0+1>C)为第一个元素,斜率为-1的Rd个元素进行异或,以得到一个数据,并把该数据与步骤(2-3)得到的校验元素进行异或,以得到最终的校验数据,并将该校验数据存放在C(sp 0,r,cp 0)中;
(2-5)设置cp 0=cp 0+1,并返回步骤(2-2);
(2-6)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(2-2),否则步骤(2)结束。
(3)根据用户输入的系统参数建立快速恢复编码的第二行校验元素C(sp 0,rp 1,cp 0),C(sp 1,rp 1,cp 1),…,C(sp S-1,rp 1,cp C-1),其中r1表示校验元素在条带集中的第二行,且r1=0,本步骤具体包括以下子步骤:
(3-1)初始化sp 0=0,cp 0=0;
(3-2)判断是否有cp 0<C,若是则转入步骤(3-3),否则转入步骤(3-5);
(3-3)将第<sp 0-1>S个条带集中以C(<sp 0-1>S,2,<cp 0-1>C)为第一个元素,斜率为1的Rd个元素进行异或,以得到一个数据,该数据就是C(sp 0,rp 1,cp 0)的结果;
(3-4)设置cp 0=cp 0+1,并返回步骤(3-2);
(3-5)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(3-2),否则过程结束。
按照本发明的另一方面,提供了一种快速恢复编码方法的验证矩阵生成方法,包括以下步骤:
(1)设置一个变换矩阵m[S*C*(Rd+2),S*C*Rd],初始化该矩阵中全部的元素为0,同时设置数据元素C(sp,rp,cp)在全部数据元素中的位置为t=(rp-1)*S*C+(sp-1)*C+cp,其中s表示条带集在编码单元中的序号,r表示数据元素在条带集中的行序号,c表示数据元素在条带集中的列序号;
(2)根据数据元素C(sp,rp,cp)生成验证矩阵中的前S*C行,具体包括以下子步骤:
(2-1)设置sp=0,cp=0;
(2-2)判断是否有c<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)对第<sp+1>S个条带集中的第cp+2行的数据元素,计算其在全部数据元素中的位置t,同时置m[sp*C+cp,t]为1;
(2-4)对第<sp+2>S个条带集中以C(<sp+2>S,2,<cp+1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[sp*C+cp,t]为0;
(2-5)设置cp=cp+1,然后返回步骤(2-2);
(2-6)设置sp=sp+1,cp=0,并判断是佛有sp<S,若是则返回步骤(2-2),否则步骤(2)结束;
(3)根据数据元素C(sp,rp,cp)生成验证矩阵中的S*C行至2S*C行,具体包括以下子步骤:
(3-1)设置sp=0,cp=0;
(3-2)判断是否有cp<C,若是则转入步骤(3-3),否则转到步骤(3-5);
(3-3)对第<sp-1>S个条带集中以C(<sp-1>S,2,<cp-1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[S*C+sp*C+cp,t]为1;
(3-4)设置cp=cp+1,然后返回步骤(3-2);
(3-5)设置sp=sp+1,cp=0,并判断是否有s<S,若是则返回步骤(3-2),否则步骤(3)结束。
(4)根据数据元素C(sp,rp,cp)生成验证矩阵中剩下的Rd*S*C行,具体包括以下子步骤:
(4-1)设置sp=0,cp=0,rp=0;
(4-2)判断是否有rp<Rd,如果是则转入步骤(4-3),否则过程结束;
(4-3)判断是否有sp<S,如果是则转入步骤(4-4),否则转入步骤(4-8);
(4-4)判断是否有cp<C,若是则转入步骤(4-5),否则转入步骤(4-7);
(4-5)计算数据元素C(sp,rp,cp)在全部数据元素中的位置t,同时置变换矩阵m[2S*C+sp*C+cp,t]为1;
(4-6)设置cp=cp+1,然后返回步骤(4-4);
(4-7)设置sp=sp+1,cp=0,然后返回步骤(4-3);
(4-8)设置rp=rp+1,sp=0,然后返回步骤(4-2)。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、本发明容错能力高:因为该编码结构使其能够容3错以上,因此其容错能力高。
2、本发明能够提升降级读与重构的性能:因为该编码全部采用的最简单的异或运算,所以能够提升降级读与重构的性能。
附图说明
图1是本发明高效容多错的快速恢复编码方法的流程图。
图2示出本发明高效容多错的快速恢复编码方法的实例。
图3是本发明高效容多错的快速恢复编码方法的验证矩阵生成方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明的技术术语进行解释和说明:
元素(Element):元素是该编码中的基本单元,其大小可以从bit到许多连续的扇区。在该编码中有两种元素,即数据元素(data element)和校验元素(parity element)。
条带(Strip):一个条带是编码单元(Stripe)中一个盘上的连续元素集合。
条带集(Strip-set):一个条带集是连续几个编码单元的集合。每个条带集是一个R*C个元素的阵列。
编码单元(Stripe):一个编码单元是该纠删码中能够容错的独立单元,由连续的几个条带集组成。
校验链(Parity Chain):一个校验链包含校验元素和所有参与生成该校验元素的元素。
校验链的长度(Length of Parity Chain):校验链中的元素个数。
C(sp,rp,cp):编码中一个元素的位置,表示该元素处于第sp个条带集中,且位于在该条带集中的第rp行第cp列。
<m>p:表示m模p的值,m的取值范围是0到p-1。
斜率(slope):斜率同样也在其余的编码中用到了。如斜率0就是RAID-4,RDP,EVENODD中的水平校验。斜率1就是RDP,EVENODD中的斜向校验。斜率-1就是X-code,H-code和HDP-code中的反斜向校验。
如图1所示,本发明高效容多错的快速恢复编码方法包括以下步骤:
(1)获取用户输入的系统参数,包括磁盘的大小S*C、一个条带中数据块的个数Rd、一个条带中校验快的个数2个,其中S表示条带集的数量,C表示每个条带集中条带的数量;
(2)根据用户输入的系统参数建立快速恢复编码的第一行校验元素C(sp 0,rp 0,cp 0),C(sp 1,rp 0,cp 1),…,C(sp S-1,rp 0,cp C-1),其中s表示条带集在编码单元中的序号,r0表示校验元素在条带集中的第一行,且r0=0,c表示校验元素在条带集中的列序号,本步骤具体包括以下子步骤:
(2-1)初始化sp 0=0,cp 0=0;
(2-2)判断是否有cp 0<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)将第<sp 0+1>S个条带集中的第cp 0+2行的元素进行异或运算,以得到校验元素,并将该校验元素存放在C(sp 0,r,cp 0)中;
(2-4)将第<sp 0+2>S个条带集中以C(<sp 0+2>S,2,<cp 0+1>C)为第一个元素,斜率为-1的Rd个元素进行异或,以得到一个数据,并把该数据与步骤(2-3)得到的校验元素进行异或,以得到最终的校验数据,并将该校验数据存放在C(sp 0,r,cp 0)中;
(2-5)设置cp 0=cp 0+1,并返回步骤(2-2);
(2-6)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(2-2),否则步骤(2)结束。
(3)根据用户输入的系统参数建立快速恢复编码的第二行校验元素C(sp 0,rp 1,cp 0),C(sp 1,rp 1,cp 1),…,C(sp S-1,rp 1,cp C-1),其中r1表示校验元素在条带集中的第二行,且r1=0,本步骤具体包括以下子步骤:
(3-1)初始化sp 0=0,cp 0=0;
(3-2)判断是否有cp 0<C,若是则转入步骤(3-3),否则转入步骤(3-5);
(3-3)将第<sp 0-1>S个条带集中以C(<sp 0-1>S,2,<cp 0-1>C)为第一个元素,斜率为1的Rd个元素进行异或,以得到一个数据,该数据就是C(sp 0,rp 1,cp 0)的结果;
(3-4)设置cp 0=cp 0+1,并返回步骤(3-2);
(3-5)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(3-2),否则过程结束。
如图2所示,该图是本发明编码方法的一个实例,该图是整个存储系统中的一个编码单元,整个存储系统是由许多这样的编码单元组成的。可以发现该编码单元有4个条带集组成,每个条带集有5个条带组成。每个条带包含6个元素,其中2个为校验元素,其余为数据元素。同时我们可以发现校验元素在整个编码单元的前两行。
该编码实际上是一种循环的编码,其基本单元是条带集。并且以4个条带集为一个循环。在图1中条带集0中斜纹的区域的块就是斜率0,条带集1中斜纹的区域的块就是斜率-1,条带集2中反向斜纹的区域的块就是斜率1.对于该编码单元中的每个数据,我们用一组数字(s,r,c)来表示。其中s表示该数据在那个条带集。r表示该数据在这个条带集中的第几行,c表示第几列。如图1所示,行是从-2开始计数的。要注意的是在图1中0~3行的数据上标的3个数并不是表示其位置,而是表示其参与了哪几个校验码的生成。如图1所示,其中校验块16和36的位置分别为(3,-2,0)和(3,-1,0)。我们定义Ek(s,0,c)表示把从条带集s中第0行第c列的数据开始的斜率为的k的一组数据进行异或运算。如E0(0,0,0)就是图1中条带集0中的斜纹的区域的块进行异或运算,E-1(1,0,1)就是图1中条带集1中斜纹的区域的块进行异或运算,E1(2,0,4)就是图1中条带集2中反向斜纹的区域的块进行异或运算。有了如上定义,可以看到校验块16是由E0(0,0,0)和E-1(1,0,1)这两组数据进行异或得到的。校验块36是由E1(2,0,4)这组数据进行异或得到的。可以得到一个通用的公式。对于-2行的校验码,可以得到如下的公式:
(s,-2,c)=E0(<s-3>4,0,0)+E-1(<s-2>4,0,<c+1>5) 式Ⅰ
对于-1行的校验码,可以得到如下的公式:
(s,-1,c)=E1(<s-1>4,0,<c-1>5) 式Ⅱ
在这两个公式中的s都是模4的,c都是模5的。在式Ⅰ中的加号表示异或运算。
通过这两个公式就可以对一个编码单元中的数据块生成其校验元素。
以下描述本发明高效容多错的快速恢复编码方法的验证矩阵生成方法,其整体思路在于,使用矩阵来模拟该编码方法出错的过程,对于一个编码单元中的数据块我们可以把其按顺序写成一个长度为S*C*Rd的列向量。然后根据上面给出的生成校验元素的公式可以得到一个变换矩阵,该矩阵是S*C*(Rd+2)行S*C*Rd列的矩阵,该变换矩阵乘以数据元素就可以得到该编码单元中的数据块和校验块了。该变换矩阵用0和1来表示每一个元素是否参与了校验。并且在该模拟中我们只考虑数据元素的位置,并不具体的考虑其中的数据。因为我们最后要验证的只是变换矩阵的秩。相应于失效时的情况,就是把失效元素位置的数据置为0,然后根据上面的矩阵变换解出失效元素的数据。为了验证其是否能够解出来失效元素数据。可以通过把失效元素对应的行重变换矩阵中去除,得到一个降级的变换矩阵,然后验证该变换矩阵是否是满秩的,如果是满秩的就表示可以恢复失效的数据。
如图3所示,本发明高效容多错的快速恢复编码方法的验证矩阵生成方法包括以下步骤:
(1)设置一个变换矩阵m[S*C*(Rd+2),S*C*Rd],初始化该矩阵中全部的元素为0,同时设置数据元素C(sp,rp,cp)在全部数据元素中的位置为t=(rp-1)*S*C+(sp-1)*C+cp,其中s表示条带集在编码单元中的序号,r表示数据元素在条带集中的行序号,c表示数据元素在条带集中的列序号;
(2)根据数据元素C(sp,rp,cp)生成验证矩阵中的前S*C行,具体包括以下子步骤:
(2-1)设置sp=0,cp=0;
(2-2)判断是否有c<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)对第<sp+1>S个条带集中的第cp+2行的数据元素,计算其在全部数据元素中的位置t,同时置m[sp*C+cp,t]为1;
(2-4)对第<sp+2>S个条带集中以C(<sp+2>S,2,<cp+1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[sp*C+cp,t]为0;
(2-5)设置cp=cp+1,然后返回步骤(2-2);
(2-6)设置sp=sp+1,cp=0,并判断是佛有sp<S,若是则返回步骤(2-2),否则步骤(2)结束;
(3)根据数据元素C(sp,rp,cp)生成验证矩阵中的S*C行至2S*C行,具体包括以下子步骤:
(3-1)设置sp=0,cp=0;
(3-2)判断是否有cp<C,若是则转入步骤(3-3),否则转到步骤(3-5);
(3-3)对第<sp-1>S个条带集中以C(<sp-1>S,2,<cp-1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[S*C+sp*C+cp,t]为1;
(3-4)设置cp=cp+1,然后返回步骤(3-2);
(3-5)设置sp=sp+1,cp=0,并判断是否有s<S,若是则返回步骤(3-2),否则步骤(3)结束。
(4)根据数据元素C(sp,rp,cp)生成验证矩阵中剩下的Rd*S*C行,具体包括以下子步骤:
(4-1)设置sp=0,cp=0,rp=0;
(4-2)判断是否有rp<Rd,如果是则转入步骤(4-3),否则过程结束;
(4-3)判断是否有sp<S,如果是则转入步骤(4-4),否则转入步骤(4-8);
(4-4)判断是否有cp<C,若是则转入步骤(4-5),否则转入步骤(4-7);
(4-5)计算数据元素C(sp,rp,cp)在全部数据元素中的位置t,同时置变换矩阵m[2S*C+sp*C+cp,t]为1;
(4-6)设置cp=cp+1,然后返回步骤(4-4);
(4-7)设置sp=sp+1,cp=0,然后返回步骤(4-3);
(4-8)设置rp=rp+1,sp=0,然后返回步骤(4-2)。
为了验证该编码的可靠性,需要验证所有的失效情况下是否能恢复,由于失效的情况太多,我们需要对其进行分类。由于该条带存在对称性,因此很多种情况是重复的,我们只需要找出其中非重复的情况进行验证。对于图1中给出的编码我们可以发现其每个条带集中失效条带的数量存在3中情况,情况1是3个失效条带在同一个条带集中,情况2是2个失效条带在同一个条带集中,剩下的一个失效条带在另一个条带集中,最后一种情况3是每个失效条带只在一个条带集中。对于情况1,由于条带集的对称性,因此3个失效条带在那个条带集都是一样的,我们可以取其在第一个条带集的情况。在该条带集中取3个失效条带可以用排列组合的方法穷举,其有种情况。对于情况2,由于对称性其中存在2个失效条带的条带集和存在1个失效条带的条带集只存在相邻和中间隔着一个条带集这两种情况。对于存在一个失效条带的条带集,由于对称性,只存在一种情况。对于存在2个失效条带的条带集同样可以用排列组合的方法穷举。对于情况3可以发现只存在一种情况。通过如上的分析,就可以减少要验证的情况了。下面我们给出验证k从3~7时情况的分类:
该表格中括号中的数字表示一个条带集中失效的strip个数。通过该种分类我们可以验证该编码的正确性。
当在该编码中存在磁盘失效时,重构的方法和验证该编码的可靠性时用的方法相类似,都是首先生成其变换矩阵然后把变换矩阵中对应失效块位置的行去掉得到一个降级的变换矩阵,通过这个降级的变换矩阵就可以解出失效块的数据。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种高效容多错的快速恢复编码方法,其特征在于,包括以下步骤:
(1)获取用户输入的系统参数,包括磁盘的大小S*C、一个条带中数据块的个数Rd、一个条带中校验快的个数2个,其中S表示条带集的数量,C表示每个条带集中条带的数量;
(2)根据用户输入的系统参数建立快速恢复编码的第一行校验元素C(sp 0,rp 0,cp 0),C(sp 1,rp 0,cp 1),…,C(sp S-1,rp 0,cp C-1),其中s表示条带集在编码单元中的序号,r0表示校验元素在条带集中的第一行,且r0=0,c表示校验元素在条带集中的列序号,本步骤具体包括以下子步骤:
(2-1)初始化sp 0=0,cp 0=0;
(2-2)判断是否有cp 0<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)将第<sp 0+1>S个条带集中的第cp 0+2行的元素进行异或运算,以得到校验元素,并将该校验元素存放在C(sp 0,r,cp 0)中;
(2-4)将第<sp 0+2>S个条带集中以C(<sp 0+2>S,2,<cp 0+1>C)为第一个元素,斜率为-1的Rd个元素进行异或,以得到一个数据,并把该数据与步骤(2-3)得到的校验元素进行异或,以得到最终的校验数据,并将该校验数据存放在C(sp 0,r,cp 0)中;
(2-5)设置cp 0=cp 0+1,并返回步骤(2-2);
(2-6)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(2-2),否则步骤(2)结束。
(3)根据用户输入的系统参数建立快速恢复编码的第二行校验元素C(sp 0,rp 1,cp 0),C(sp 1,rp 1,cp 1),…,C(sp S-1,rp 1,cp C-1),其中r1表示校验元素在条带集中的第二行,且r1=0,本步骤具体包括以下子步骤:
(3-1)初始化sp 0=0,cp 0=0;
(3-2)判断是否有cp 0<C,若是则转入步骤(3-3),否则转入步骤(3-5);
(3-3)将第<sp 0-1>S个条带集中以C(<sp 0-1>S,2,<cp 0-1>C)为第一个元素,斜率为1的Rd个元素进行异或,以得到一个数据,该数据就是C(sp 0,rp 1,cp 0)的结果;
(3-4)设置cp 0=cp 0+1,并返回步骤(3-2);
(3-5)设置sp 0=sp 0+1,cp 0=0,并判断是否有sp 0<S,若是则返回步骤(3-2),否则过程结束。
2.一种如权利要求1所述快速恢复编码方法的验证矩阵生成方法,其特征在于,包括以下步骤:
(1)设置一个变换矩阵m[S*C*(Rd+2),S*C*Rd],初始化该矩阵中全部的元素为0,同时设置数据元素C(sp,rp,cp)在全部数据元素中的位置为t=(rp-1)*S*C+(sp-1)*C+cp,其中s表示条带集在编码单元中的序号,r表示数据元素在条带集中的行序号,c表示数据元素在条带集中的列序号;
(2)根据数据元素C(sp,rp,cp)生成验证矩阵中的前S*C行,具体包括以下子步骤:
(2-1)设置sp=0,cp=0;
(2-2)判断是否有c<C,若是则转入步骤(2-3),否则转入步骤(2-6);
(2-3)对第<sp+1>S个条带集中的第cp+2行的数据元素,计算其在全部数据元素中的位置t,同时置m[sp*C+cp,t]为1;
(2-4)对第<sp+2>S个条带集中以C(<sp+2>S,2,<cp+1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[sp*C+cp,t]为0;
(2-5)设置cp=cp+1,然后返回步骤(2-2);
(2-6)设置sp=sp+1,cp=0,并判断是佛有sp<S,若是则返回步骤(2-2),否则步骤(2)结束;
(3)根据数据元素C(sp,rp,cp)生成验证矩阵中的S*C行至2S*C行,具体包括以下子步骤:
(3-1)设置sp=0,cp=0;
(3-2)判断是否有cp<C,若是则转入步骤(3-3),否则转到步骤(3-5);
(3-3)对第<sp-1>S个条带集中以C(<sp-1>S,2,<cp-1>C)为第一个元素,斜率为-1的Rd个元素,计算其在全部数据元素中的位置t,同时置变换矩阵m[S*C+sp*C+cp,t]为1;
(3-4)设置cp=cp+1,然后返回步骤(3-2);
(3-5)设置sp=sp+1,cp=0,并判断是否有s<S,若是则返回步骤(3-2),否则步骤(3)结束。
(4)根据数据元素C(sp,rp,cp)生成验证矩阵中剩下的Rd*S*C行,具体包括以下子步骤:
(4-1)设置sp=0,cp=0,rp=0;
(4-2)判断是否有rp<Rd,如果是则转入步骤(4-3),否则过程结束;
(4-3)判断是否有sp<S,如果是则转入步骤(4-4),否则转入步骤(4-8);
(4-4)判断是否有cp<C,若是则转入步骤(4-5),否则转入步骤(4-7);
(4-5)计算数据元素C(sp,rp,cp)在全部数据元素中的位置t,同时置变换矩阵m[2S*C+sp*C+cp,t]为1;
(4-6)设置cp=cp+1,然后返回步骤(4-4);
(4-7)设置sp=sp+1,cp=0,然后返回步骤(4-3);
(4-8)设置rp=rp+1,sp=0,然后返回步骤(4-2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689402.2A CN103809919B (zh) | 2013-12-16 | 2013-12-16 | 高效容多错的快速恢复编码方法及其验证矩阵生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689402.2A CN103809919B (zh) | 2013-12-16 | 2013-12-16 | 高效容多错的快速恢复编码方法及其验证矩阵生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103809919A true CN103809919A (zh) | 2014-05-21 |
CN103809919B CN103809919B (zh) | 2016-06-22 |
Family
ID=50706763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310689402.2A Active CN103809919B (zh) | 2013-12-16 | 2013-12-16 | 高效容多错的快速恢复编码方法及其验证矩阵生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103809919B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765660A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104866386A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 具有最优更新代价的编码及解码方法 |
CN104932836A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 一种提高单写性能的三盘容错编码和解码方法 |
CN106021034A (zh) * | 2016-05-11 | 2016-10-12 | 华中科技大学 | 一种容多个设备和扇区错的编码的优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387975A (zh) * | 2008-10-20 | 2009-03-18 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
US20120079190A1 (en) * | 2010-09-28 | 2012-03-29 | John Colgrove | Offset protection data in a raid array |
-
2013
- 2013-12-16 CN CN201310689402.2A patent/CN103809919B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387975A (zh) * | 2008-10-20 | 2009-03-18 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
US20120079190A1 (en) * | 2010-09-28 | 2012-03-29 | John Colgrove | Offset protection data in a raid array |
Non-Patent Citations (1)
Title |
---|
万胜刚: "磁盘阵列高容错模式及重构技术研究", 《中国博士学位论文全文数据库.信息科技辑》, vol. 2010, no. 11, 15 November 2010 (2010-11-15), pages 137 - 9 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765660A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104765660B (zh) * | 2015-04-24 | 2017-04-05 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104866386A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 具有最优更新代价的编码及解码方法 |
CN104932836A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 一种提高单写性能的三盘容错编码和解码方法 |
CN104866386B (zh) * | 2015-05-31 | 2018-04-27 | 上海交通大学 | 具有最优更新代价的编码及解码方法 |
CN104932836B (zh) * | 2015-05-31 | 2018-06-26 | 上海交通大学 | 一种提高单写性能的三盘容错编码和解码方法 |
CN106021034A (zh) * | 2016-05-11 | 2016-10-12 | 华中科技大学 | 一种容多个设备和扇区错的编码的优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103809919B (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiang et al. | Optimal recovery of single disk failure in RDP code storage systems | |
US8719675B1 (en) | Orthogonal coding for data storage, access, and maintenance | |
US20140310571A1 (en) | Local Erasure Codes for Data Storage | |
CN107656832A (zh) | 一种低数据重建开销的纠删码方法 | |
CN101719086B (zh) | 磁盘阵列容错处理方法和装置及容错系统 | |
Baek et al. | Reliability and performance of hierarchical RAID with multiple controllers | |
CN101625652B (zh) | 多磁盘容错系统及生成校验块、恢复数据块的方法 | |
CN104111880B (zh) | 一种容三盘失效纠删码的单数据盘失效快速重建方法 | |
CN100570573C (zh) | 大规模磁盘阵列存储系统的磁盘容错方法 | |
Zhang et al. | Tip-code: A three independent parity code to tolerate triple disk failures with optimal update complextiy | |
Gomez et al. | Distributed diskless checkpoint for large scale systems | |
CN101084486B (zh) | 用于校验子生成以及数据恢复的方法和系统 | |
CN105335150A (zh) | 纠删码数据的快速编解码方法和系统 | |
CN103809919B (zh) | 高效容多错的快速恢复编码方法及其验证矩阵生成方法 | |
CN104461781A (zh) | 一种基于纠删码的数据块重建方法 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN104866244A (zh) | 一种平衡条带写的raid-6i/o调度方法 | |
CN103593253A (zh) | 一种基于异或的垂直raid-6编码方法 | |
CN104516679A (zh) | 一种raid数据处理方法及装置 | |
CN104932836B (zh) | 一种提高单写性能的三盘容错编码和解码方法 | |
US6792391B1 (en) | Method and system for three disk fault tolerance in a disk array | |
Li et al. | Tier-code: An XOR-based RAID-6 code with improved write and degraded-mode read performance | |
Lee et al. | Efficient parity placement schemes for tolerating up to two disk failures in disk arrays | |
CN102419697A (zh) | 垂直raid-6编码中单盘重构的方法 | |
Li et al. | Exploiting decoding computational locality to improve the I/O performance of an XOR-coded storage cluster under concurrent failures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |