CN102012792A - 一种快速重构的raid-6编码及重构方法 - Google Patents

一种快速重构的raid-6编码及重构方法 Download PDF

Info

Publication number
CN102012792A
CN102012792A CN 201010529032 CN201010529032A CN102012792A CN 102012792 A CN102012792 A CN 102012792A CN 201010529032 CN201010529032 CN 201010529032 CN 201010529032 A CN201010529032 A CN 201010529032A CN 102012792 A CN102012792 A CN 102012792A
Authority
CN
China
Prior art keywords
over
stripe cell
change step
formula
reconstruct
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
Application number
CN 201010529032
Other languages
English (en)
Other versions
CN102012792B (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.)
Jiangxi diejia Information Technology Co.,Ltd.
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2010105290322A priority Critical patent/CN102012792B/zh
Publication of CN102012792A publication Critical patent/CN102012792A/zh
Application granted granted Critical
Publication of CN102012792B publication Critical patent/CN102012792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种快速重构的RAID-6编码及重构方法,可以容忍双盘失效,且满足RAID-6特性。这种编码方法是一种具有最优化恢复时间的非MDS RAID-6型编码。磁盘的读写性能和重构性能是纠删码设计者最关心的问题,现有的RAID-6编码存在着一定的局限性。有的RAID-6编码生成校验元素时需要大量数据元素的参与,约束了单盘失效或者双盘失效情况下的重构性能,有的编码存储效率或者空间利用率低,进而影响了读写性能。本发明不但在重构性能有很大的提高,而且有着很好的读写性能,与目前主流的RAID-6型编码相比较,在许多方面都有着明显的优势。本发明具有高可靠性、高扩展性、低计算量和低I/O复杂度,以及快速恢复丢失数据的功能,这些优势使它有着实用性和推广潜力。

Description

一种快速重构的RAID-6编码及重构方法
技术领域
本发明属于计算机存储领域,具体涉及一种可以容忍双盘失效,且满足RAID-6特性的新型编码方法。
背景技术
磁盘冗余阵列RAID(Redundant Array of Independent Disk)是一种在较低的成本下,能够提供高可靠性、高性能服务的常用方案。在前期的RAID方案中,从RAID-0到RAID-5,都只能容忍单盘失效。但是最近几年来,RAID系统的基本单位——磁盘,在容量上有了显著的提升。同时,随着存储的数据量的增加,大型磁盘阵列的使用越来越普遍。然而,大型磁盘阵列有更大的可能性造成双盘失效,这使得RAID-5无法满足人们的需求。
RAID-6是一种能够容忍双盘同时失效的编码规范,并且越来越受到人们欢迎。根据网络存储工业协会(SNIA)的定义,RAID-6是“在任何形式下,两个磁盘同时失效的情况下,仍可以继续执行读写请求的RAID编码”。目前,已经有很多基于RAID-6的纠删码技术,如Reed-Solomon编码,Cauchy Reed-Solomon编码,EVENODD编码,RDP编码等等。这些都是极大距离可分MDS(Maximum Distance Separable)编码。其中,X-编码和P-编码是垂直编码,其它的都是水平编码。当然也有非MDS RAID-6编码,例如WEAVER编码,HoVer编码和Pyramid编码。
然而,上面提到的所有编码都存在着一定的缺陷。图1是一种典型的水平MDS RAID-6编码的结构。它由K+2个磁盘组成,前K个磁盘用来存储数据,最后两个盘是校验盘,分别叫做P盘和Q盘。水平MDS RAID-6编码存在一个共同的局限性:生成校验元素时需要大量数据元素的参与。这一缺陷约束了单盘失效或者双盘失效情况下的重构性能。X-编码,循环编码和P-编码是垂直编码,但是它们存在着同样的局限性。
磁盘的读写性能和重构性能是纠删码设计者最关心的问题,在这个问题上已经有了很多的研究。许多研究者关心如何通过改变结构来提高RAID的重构性能,而非MDS编码正是另一种能够打破重构性能瓶颈的方法。这种编码方式把校验信息部署到更多的校验元素中,大大降低了构建一个校验元素的元素数量。例如,WEAVER编码的设计核心是如何容忍多个磁盘并发失效。然而,这些方法的缺陷都是存储效率很低,它的存储效率低至50%。这是WEAVER编码一个很大的缺陷。在某些单盘失效和双盘失效的情况下,HoVer编码有着很高的重构性能,但是,在其它的情况下,它的重构性能甚至比传统的MDS编码还低。而且,HoVer编码存在空闲的元素,空间利用率低。
发明内容
为了弥补目前各种RAID-6编码方法存在的局限性,本发明提供了一种快速重构的RAID-6编码方法,利用该方法所得到编码能够容忍双盘失效,并且具有高可靠性、高扩展性、低计算量和低I/O复杂度,以及快速恢复丢失数据的功能;本发明还提供了该编码的重构方法。
本发明提供的一种快速重构的RAID-6编码方法,设Code-M(N,K)表示一种RAID-6编码,其中,N为大于等于2的正整数,K+1为大于等于3的素数,在Code-M(N,K)中,一个条带有N个条带单元集,每个条带单元集由位于相邻磁盘上的K个条带单元组成,每个条带单元由同一磁盘上连续K个的元素组成;
一个Code-M(N,K)的条带由N个独立的K行K列的条带单元集组成,每一个条带单元集拥有同样的结构,主对角线上的元素被设计为校验元素,其它的都是数据元素;
设<s-1>N表示s-1对N求模,对于Code-M(N,K)中的任意一个校验元素(s,r,c),它在Code-M(N,K)编码中是由同一条带单元集中的一组水平数据元素和序号为<s-1>N的条带单元集中的一组对角线元素通过异或运算得到,一个条带中所有校验元素(s,r,c)的形式化编码规则,如下:
Figure BDA0000030538930000031
式I
式I中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<K-2-r-i>K+1表示K-2-r-i对K+1求模,其中,r+c=K-1,即所有校验元素(s,r,c)都在条带单元集的对角线上。
上所述RAID-6编码的重构方法,其特征在于,根据不同的失效情况分别采用相应的过程进行重构;
情况一、单盘失效:
假设失效的条带单元为(s,c),其重构过程为:
(1.1)遍历条带单元(s,c)中的每一个元素,如果该元素(s,r,c)满足r+c=K-1,转入步骤1.2;否则,转入步骤1.3;所有元素遍历完后结束此过程;
(1.2)使用式I重构该元素,转入步骤1.1;
(1.3)使用式II重构该元素,转入步骤1.1;
Figure BDA0000030538930000032
式II
式II中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s-1>N表示s-1对N求模,同理,<K-2-r-i>K+1表示K-2-r-i对K+1求模;
情况二、双盘失效,失效的两个条带单元在同一条带单元集上:
假设失效的条带单元为(s1,c1)、(s1,c2),其重构过程为:
(2.1)设r的初值为1;
(2.2)把<r+c2-c1>K+1的值赋予r;
(2.3)(s1,r,c1)一定是数据元素,使用式III进行重构;
Figure BDA0000030538930000041
式III
式III中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s+1>N表示s-1对N求模,同理,<K-2-r-c>K+1表示K-2-r-i对K+1求模,<r+c-i>K+1表示r+c-i对K+1求模
(2.4)如果r+c2≠K-1,(s1,r,c2)一定是数据元素,使用式II进行重构,否则,(s1,r,c2)一定是校验元素,使用式I进行重构;
(2.5)如果r+c2≠K-1,那么转入步骤2.1,否则,转入步骤2.6;
(2.6)设r的初值为1;
(2.7)把<r+c1-c2>K+1的值赋予r;
(2.8)(s1,r,c2)一定是数据元素,使用式III进行重构;
(2.9)如果r+c1≠K-1,(s1,r,c1)一定是数据元素,使用式II进行重构,否则,(s1,r,c1)一定是校验元素,使用式I进行重构;
(2.10)如果r+c2≠K-1,那么转入步骤2.6,否则,结束此过程;情况三、双盘失效,失效的两个条带单元在相邻的两个条带单元集上:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+1>N=s2,其重构过程为:
(3.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤3.2,否则,转入步骤3.3;
(3.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤3.4;
(3.3)(s1,r,c1)是数据元素,使用式II重构该元素,转入步骤3.4;
(3.4)如果遍历结束,转入步骤3.5,否则,转入步骤3.1;
(3.5)遍历条带单元(<s1+1>N,c2)上的所有元素(<s1+1>N,r,c2),如果r+c2=K-1,那么转入步骤3.6,否则,转入步骤3.7;
(3.6)(<s1+1>N,r,c2)是校验元素,使用式I重构该元素,转入步骤3.8;
(3.7)(<s1+1>N,r,c2)是数据元素,使用式II重构该元素,转入步骤3.8;
(3.8)如果遍历结束,结束此过程,否则,转入步骤3.5;
情况四、双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距为2:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+2>N=s2,其重构过程为:
(4.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤4.2,否则,转入步骤4.3;
(4.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤4.4;
(4.3)(s1,r,c1)是数据元素,使用式III重构该元素,转入步骤4.4;
(4.4)如果遍历结束,转入步骤4.5,否则,转入步骤4.1;
(4.5)遍历条带单元(<s1+2>N,c2)上的所有元素(<s1+2>N,r,c2),如果r+c2=K-1,那么转入步骤4.6,否则,转入步骤4.7;
(4.6)(<s1+2>N,r,c2)是校验元素,使用式I重构该元素,转入步骤4.8;
(4.7)(<s1+2>N,r,c2)是数据元素,使用式II重构该元素,转入步骤4.8;
(4.8)如果遍历结束,结束此过程,否则,转入步骤4.5;
情况五、双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距大于或等于3:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s2-s1>N>=3,其重构过程为:
(5.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤5.2,否则,转入步骤5.3;
(5.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤5.4;
(5.3)(s1,r,c1)是数据元素,使用式II重构该元素,转入步骤5.4;
(5.4)如果遍历结束,转入步骤5.5,否则,转入步骤5.1;
(5.5)遍历条带单元(s2,c2)上的所有元素(s2,r,c2),如果r+c2=K-1,那么转入步骤5.6,否则,转入步骤5.7;
(5.6)(s2,r,c2)是校验元素,使用式I重构该元素,转入步骤5.8;
(5.7)(s2,r,c2)是数据元素,使用式II重构该元素,转入步骤5.8;如果遍历结束,结束此过程,否则,转入步骤5.5。
同时考虑到RAID-6系统大部分时间工作在正常模式下,单盘失效情况是次要的,而双盘失效的概率更低这一实际情况,本发明设计了上述新的方案来构建RAID-6编码,称之为Code-M。为了能够容忍双盘失效,并且希望各方面的性能都有所提高,Code-M将校验信息部署到更多的校验元素中。具体而言,Code-M有以下几个主要特点:
(1)Code-M是一种新的基于集合的RAID-6编码方案。同时,我们提出了一种新的概念——条带单元集,来构建编码方案。这样的RAID-6编码能够在较低的成本下获得较高的性能。
(2)Code-M极大地降低了单盘失效模式下重构的I/O量和计算复杂度。
(3)在大部分情况下,Code-M降低了双盘失效情况下的I/O量和计算复杂度。
附图说明
图1是一种典型的水平MDS RAID-6编码;
图2是一种典型的Code-M(N,K)编码的结构,其中N=3,K=4;
图3是Code-M(N,K)构建的流程图;
图4是Code-M(N,K)重构的总体流程图;
图5是在重构的第一种情况下,单个条带重构流程;
图6是在重构的第二种情况下,单个条带重构流程;
图7是在重构的第三种和第五种情况下,单个条带重构流程;
图8是在重构的第四种情况下,单个条带重构流程。
具体实施方式
首先,定义一下与Code-M相关的一些概念:
●<M>n:<M>n表示M模n的值,值的范围是0到n-1。
●元素:编码时的基本单位。一个元素可以是磁盘上的1Bit,也可以是一个连续的数据块。有两种形式的元素,分别是数据元素和校验元素。
●条带:在纠删码中,条带是可以独立的恢复丢失的数据元素或校验元素的元素集合。
●条带单元:一个条带中,同一磁盘上的所有连续数据叫做条带单元。
●条带单元集:一个条带中,相邻磁盘上的若干条带单元组成的集合。
●条带单元间距:两个条带单元集之间的最小距离。如果有两个条带单元集,它们的编号分别为s1和s2,那么这两个条带单元集之间的距离就是min(<s1-s2>N,<s2-s1>N)。
●校验链:一条校验链包括校验元素和所有创建校验元素的数据元素。
●校验链长度:一条校验链上,所有元素的数量。
●水平编码:一种纠删码,所有数据元素和校验元素在同一条带单元上。
●垂直编码:一种纠删码,所有数据元素在一个条带单元中,或者所有校验元素在一个条带单元中。
一、Code-M(N,K)的构建
本发明使用Code-M(N,K)来表示某一特定的Code-M结构,其中,N为大于等于2的正整数,K+1为大于等于3的素数。在这样结构的Code-M中,一个条带有N个条带单元集,每个条带单元集由位于相邻磁盘上的K个条带单元组成,每个条带单元由同一磁盘上连续K个的元素组成。Code-M(N,K)表示一个K行、K*N列模型的编码,共有K*N个条带单元。
I.数据/校验元素标记
一个Code-M(N,K)的条带由N个独立的K行K列的条带单元集组成。每一个条带单元集拥有同样的结构,主对角线上的元素,即图2中标记着p的元素,被设计为校验元素,其它的都是数据元素。我们用二元组(X,Z)来表示在一个条带中的某一条带单元。X表示条带单元集的序号,0=<X<=N-1。Z表示该列在这一条带中的列号,0=<Z<=K-1。我们使用三元组(X,Y,Z)表示每一个元素。X表示该元素所在的条带单元集的序号,0=<X<=N-1。Y表示该元素所在的行号,0=<Y<=K-1。Z表示该元素所在列在该条带单元集中的列号,0=<Z<=K-1。图2是一种典型的Code-M(N,K)编码的结构,其中N=3,K=4。
II.Code-M的构建
设<s-1>N表示s-1对N求模,对于任意一个校验元素(s,r,c),它在Code-M(N,K)编码中是由同一条带单元集中的一组水平数据元素和序号为<s-1>N的条带单元集中的一组对角线元素通过异或运算得到。一个条带中所有校验元素(s,r,c)的形式化编码规则,如下:
Figure BDA0000030538930000081
式(I)中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<K-2-r-i>K+1表示K-2-r-i对K+1求模。其中,r+c=K-1,即所有校验元素(s,r,c)都在条带单元集的对角线上。
具体流程如图3所示。通过此式,可以构建出磁盘阵列中的所有校验数据。
二、Code-M的重构
Code-M可以根据实效磁盘的个数分为单盘失效和双盘失效,双盘失效的重构又可以分为四种情况,而重构的算法用到式(I)、式(II)和式(III)。总体流程如图4所示。下面,逐一描述以上五种情况下的重构算法。
Figure BDA0000030538930000083
式(II)中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s-1>N表示s-1对N求模,同理,<K-2-r-i>K+1表示K-2-r-i对K+1求模。
式(III)中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s+1>N表示s-1对N求模,同理,<K-2-r-c>K+1表示K-2-r-i对K+1求模,<r+c-i>K+1表示r+c-i对K+1求模。
情况一:单盘失效
假设失效的条带单元为(s,c),此情况下的重构流程如图5所示,具体步骤描述如下:
(1.1)遍历条带单元(s,c)中的每一个元素,如果该元素(s,r,c)满足r+c=K-1,转入步骤1.2;否则,转入步骤1.3;所有元素遍历完后结束此过程;
(1.2)使用式(I)重构该元素,转入步骤1.1;
(1.3)使用式(II)重构该元素,转入步骤1.1。
情况二:双盘失效,失效的两个条带单元在同一条带单元集上
假设失效的条带单元为(s1,c1)、(s1,c2),此情况下的重构流程如图6所示,具体步骤描述如下:
(2.1)设r的初值为1;
(2.2)把<r+c2-c1>K+1的值赋予r;
(2.3)(s1,r,c1)一定是数据元素,使用式(III)进行重构;
(2.4)如果r+c2≠K-1,(s1,r,c2)一定是数据元素,使用式(II)进行重构,否则,(s1,r,c2)一定是校验元素,使用式(I)进行重构;
(2.5)如果r+c2≠K-1,那么转入步骤2.1,否则,转入步骤2.6;
(2.6)设r的初值为1;
(2.7)把<r+c1-c2>K+1的值赋予r;
(2.8)(s1,r,c2)一定是数据元素,使用式(III)进行重构;
(2.9)如果r+c1≠K-1,(s1,r,c1)一定是数据元素,使用式(II)进行重构,否则,(s1,r,c1)一定是校验元素,使用式(I)进行重构;
(2.10)如果r+c2≠K-1,那么转入步骤2.6,否则,结束此过程。
情况三:双盘失效,失效的两个条带单元在相邻的两个条带单元集上
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+1>N=s2,此情况下的重构流程如图7所示,具体步骤描述如下::
3.1遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤3.2,否则,转入步骤3.3;
(3.2)(s1,r,c1)是校验元素,使用式(I)重构该元素,转入步骤3.4;
(3.3)(s1,r,c1)是数据元素,使用式(II)重构该元素,转入步骤3.4;
(3.4)如果遍历结束,转入步骤3.5,否则,转入步骤3.1;
(3.5)遍历条带单元(<s1+1>N,c2)上的所有元素(<s1+1>N,r,c2),如果r+c2=K-1,那么转入步骤3.6,否则,转入步骤3.7;
(3.6)(<s1+1>N,r,c2)是校验元素,使用式(I)重构该元素,转入步骤3.8;
(3.7)(<s1+1>N,r,c2)是数据元素,使用式(II)重构该元素,转入步骤3.8;
(3.8)如果遍历结束,结束此过程,否则,转入步骤3.5。
情况四:双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距为2
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+2>N=s2,此情况下的重构流程如图8所示,具体步骤描述如下:
(4.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤4.2,否则,转入步骤4.3;
(4.2)(s1,r,c1)是校验元素,使用式(I)重构该元素,转入步骤4.4;
(4.3)(s1,r,c1)是数据元素,使用式(III)重构该元素,转入步骤4.4;
(4.4)如果遍历结束,转入步骤4.5,否则,转入步骤4.1;
(4.5)遍历条带单元(<s1+2>N,c2)上的所有元素(<s1+2>N,r,c2),如果r+c2=K-1,那么转入步骤4.6,否则,转入步骤4.7;
(4.6)(<s1+2>N,r,c2)是校验元素,使用式(I)重构该元素,转入步骤8;
(4.7)(<s1+2>N,r,c2)是数据元素,使用式(II)重构该元素,转入步骤4.8;
(4.8)如果遍历结束,结束此过程,否则,转入步骤4.5。
情况五:双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距大于或等于3
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s2-s1>N>=3,此情况下的重构流程如图7所示,具体步骤描述如下:
(5.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤5.2,否则,转入步骤5.3;
(5.2)(s1,r,c1)是校验元素,使用式(I)重构该元素,转入步骤5.4;
(5.3)(s1,r,c1)是数据元素,使用式(II)重构该元素,转入步骤5.4;
(5.4)如果遍历结束,转入步骤5.5,否则,转入步骤5.1;
(5.5)遍历条带单元(s2,c2)上的所有元素(s2,r,c2),如果r+c2=K-1,那么转入步骤5.6,否则,转入步骤5.7;
(5.6)(s2,r,c2)是校验元素,使用式(I)重构该元素,转入步骤5.8;
(5.7)(s2,r,c2)是数据元素,使用式(II)重构该元素,转入步骤5.8;如果遍历结束,结束此过程,否则,转入步骤5.5。
三、实例
下面,我们以Code-M(3,4)为例,描述一下Code-M的具体实施方案。图2是Raid-6型Code-M(3,4)编码的具体结构,图中任何一个数据块表示Code-M(3,4)编码中的一个元素。标记了“d”的元素为数据元素,标记了“p”的元素为校验元素。所有的校验元素都在条带单元集的对角线上。从图2中,我们可以看到,一个Code-M(3,4)编码的条带包含3个条带单元集,12个条带单元,或者48个元素。在Code-M(3,4)编码中,一条校验链的长度为7,其中包括有6个数据元素和一个校验元素。
根据Code-M的构建规则,如果要得到校验元素(1,0,3),只需要将(1,0,0)、(1,0,1)、(1,0,2)、(0,0,2)、(0,1,1)、(0,2,0)这六个元素,做异或运算即可。用同样的方法可以计算出剩下的校验元素。如果发生单盘失效或者双盘失效,通过本发明所提出的重构算法即可恢复丢失的数据。
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (2)

1.一种快速重构的RAID-6编码方法,设Code-M(N,K)表示一种RAID-6编码,其中,N为大于等于2的正整数,K+1为大于等于3的素数,在Code-M(N,K)中,一个条带有N个条带单元集,每个条带单元集由位于相邻磁盘上的K个条带单元组成,每个条带单元由同一磁盘上连续K个的元素组成;
一个Code-M(N,K)的条带由N个独立的K行K列的条带单元集组成,每一个条带单元集拥有同样的结构,主对角线上的元素被设计为校验元素,其它的都是数据元素;
设<s-1>N表示s-1对N求模,对于Code-M(N,K)中的任意一个校验元素(s,r,c),它在Code-M(N,K)编码中是由同一条带单元集中的一组水平数据元素和序号为<s-1>N的条带单元集中的一组对角线元素通过异或运算得到,一个条带中所有校验元素(s,r,c)的形式化编码规则,如下:
Figure FDA0000030538920000011
式I
式I中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<K-2-r-i>K+1表示K-2-r-i对K+1求模,其中,r+c=K-1,即所有校验元素(s,r,c)都在条带单元集的对角线上。
2.一种权利要求1所述RAID-6编码的重构方法,其特征在于,根据不同的失效情况分别采用相应的过程进行重构;
情况一、单盘失效:
假设失效的条带单元为(s,c),其重构过程为:
(1.1)遍历条带单元(s,c)中的每一个元素,如果该元素(s,r,c)满足r+c=K-1,转入步骤1.2;否则,转入步骤1.3;所有元素遍历完后结束此过程;
(1.2)使用式I重构该元素,转入步骤1.1;
(1.3)使用式II重构该元素,转入步骤1.1;
Figure FDA0000030538920000021
式II
式II中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s-1>N表示s-1对N求模,同理,<K-2-r-i>K+1表示K-2-r-i对K+1求模;
情况二、双盘失效,失效的两个条带单元在同一条带单元集上:
假设失效的条带单元为(s1,c1)、(s1,c2),其重构过程为:
(2.1)设r的初值为1;
(2.2)把<r+c2-c1>K+1的值赋予r;
(2.3)(s1,r,c1)一定是数据元素,使用式III进行重构;
Figure FDA0000030538920000022
式III
式III中,符号“+”和“∑”均表示异或运算,&表示逻辑与,i表示该元素所在列在该条带单元集中的列号,<s+1>N表示s-1对N求模,同理,<K-2-r-c>K+1表示K-2-r-i对K+1求模,<r+c-i>K+1表示r+c-i对K+1求模
(2.4)如果r+c2≠K-1,(s1,r,c2)一定是数据元素,使用式II进行重构,否则,(s1,r,c2)一定是校验元素,使用式I进行重构;
(2.5)如果r+c2≠K-1,那么转入步骤2.1,否则,转入步骤2.6;
(2.6)设r的初值为1;
(2.7)把<r+c1-c2>K+1的值赋予r;
(2.8)(s1,r,c2)一定是数据元素,使用式III进行重构;
(2.9)如果r+c1≠K-1,(s1,r,c1)一定是数据元素,使用式II进行重构,否则,(s1,r,c1)一定是校验元素,使用式I进行重构;
(2.10)如果r+c2≠K-1,那么转入步骤2.6,否则,结束此过程;
情况三、双盘失效,失效的两个条带单元在相邻的两个条带单元集上:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+1>N=s2,其重构过程为:
(3.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤3.2,否则,转入步骤3.3;
(3.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤3.4;
(3.3)(s1,r,c1)是数据元素,使用式II重构该元素,转入步骤3.4;
(3.4)如果遍历结束,转入步骤3.5,否则,转入步骤3.1;
(3.5)遍历条带单元(<s1+1>N,c2)上的所有元素(<s1+1>N,r,c2),如果r+c2=K-1,那么转入步骤3.6,否则,转入步骤3.7;
(3.6)(<s1+1>N,r,c2)是校验元素,使用式I重构该元素,转入步骤3.8;
(3.7)(<s1+1>N,r,c2)是数据元素,使用式II重构该元素,转入步骤3.8;
(3.8)如果遍历结束,结束此过程,否则,转入步骤3.5;
情况四、双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距为2:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s1+2>N=s2,其重构过程为:
(4.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤4.2,否则,转入步骤4.3;
(4.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤4.4;
(4.3)(s1,r,c1)是数据元素,使用式III重构该元素,转入步骤4.4;
(4.4)如果遍历结束,转入步骤4.5,否则,转入步骤4.1;
(4.5)遍历条带单元(<s1+2>N,c2)上的所有元素(<s1+2>N,r,c2),如果r+c2=K-1,那么转入步骤4.6,否则,转入步骤4.7;
(4.6)(<s1+2>N,r,c2)是校验元素,使用式I重构该元素,转入步骤4.8;
(4.7)(<s1+2>N,r,c2)是数据元素,使用式II重构该元素,转入步骤4.8;
(4.8)如果遍历结束,结束此过程,否则,转入步骤4.5;
情况五、双盘失效,失效的两个条带单元所在的条带之间的条带单元集间距大于或等于3:
假设失效的两条失效的条带单元分别为(s1,c1)、(s2,c2),其中<s2-s1>N>=3,其重构过程为:
(5.1)遍历条带单元(s1,c1)上的所有元素(s1,r,c1),如果r+c1=K-1,那么转入步骤5.2,否则,转入步骤5.3;
(5.2)(s1,r,c1)是校验元素,使用式I重构该元素,转入步骤5.4;
(5.3)(s1,r,c1)是数据元素,使用式II重构该元素,转入步骤5.4;
(5.4)如果遍历结束,转入步骤5.5,否则,转入步骤5.1;
(5.5)遍历条带单元(s2,c2)上的所有元素(s2,r,c2),如果r+c2=K-1,那么转入步骤5.6,否则,转入步骤5.7;
(5.6)(s2,r,c2)是校验元素,使用式I重构该元素,转入步骤5.8;
(5.7)(s2,r,c2)是数据元素,使用式II重构该元素,转入步骤5.8;
如果遍历结束,结束此过程,否则,转入步骤5.5。
CN2010105290322A 2010-11-02 2010-11-02 一种快速重构的raid-6编码及重构方法 Active CN102012792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105290322A CN102012792B (zh) 2010-11-02 2010-11-02 一种快速重构的raid-6编码及重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105290322A CN102012792B (zh) 2010-11-02 2010-11-02 一种快速重构的raid-6编码及重构方法

Publications (2)

Publication Number Publication Date
CN102012792A true CN102012792A (zh) 2011-04-13
CN102012792B CN102012792B (zh) 2012-08-15

Family

ID=43842968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105290322A Active CN102012792B (zh) 2010-11-02 2010-11-02 一种快速重构的raid-6编码及重构方法

Country Status (1)

Country Link
CN (1) CN102012792B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521067A (zh) * 2011-12-01 2012-06-27 华中科技大学 优化部分条带写性能的raid-6编码和重构方法
CN103593253A (zh) * 2013-11-22 2014-02-19 华中科技大学 一种基于异或的垂直raid-6编码方法
CN104765660A (zh) * 2015-04-24 2015-07-08 中国人民解放军国防科学技术大学 一种基于ssd的raid6系统的单盘快速恢复方法器
CN104866243A (zh) * 2015-05-31 2015-08-26 上海交通大学 优化输入输出负载的raid-6横向斜向校验编码及解码方法
CN104881365A (zh) * 2015-05-31 2015-09-02 上海交通大学 基于纠删码相似性的raid-6可扩展方法
WO2016058289A1 (zh) * 2015-01-20 2016-04-21 北京大学深圳研究生院 一种能修复多个节点失效的mds纠删码
CN106227463A (zh) * 2016-07-11 2016-12-14 苏州科达科技股份有限公司 Raid模型、数据读写及其重建方法
CN107562569A (zh) * 2016-06-30 2018-01-09 杭州海康威视数字技术股份有限公司 一种数据重构方法及装置
CN108182126A (zh) * 2018-01-02 2018-06-19 联想(北京)有限公司 一种硬盘处理方法及电子设备
CN110231999A (zh) * 2019-05-29 2019-09-13 华中科技大学 提升基于局部修复编码的存储系统可靠性的方法及装置
CN110532128A (zh) * 2019-08-16 2019-12-03 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
US10644726B2 (en) 2013-10-18 2020-05-05 Universite De Nantes Method and apparatus for reconstructing a data block
CN112256478A (zh) * 2020-10-16 2021-01-22 山东云海国创云计算装备产业创新中心有限公司 一种单磁盘故障的修复方法、系统、设备及存储介质
CN112905387A (zh) * 2021-03-04 2021-06-04 河北工业大学 一种raid6编码及基于该编码的数据恢复方法
CN114090345A (zh) * 2022-01-21 2022-02-25 苏州浪潮智能科技有限公司 一种磁盘阵列数据恢复方法、系统、存储介质及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557123B1 (en) * 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
CN1801105A (zh) * 2004-11-24 2006-07-12 国际商业机器公司 容许存储系统中的多个存储设备故障的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557123B1 (en) * 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
CN1801105A (zh) * 2004-11-24 2006-07-12 国际商业机器公司 容许存储系统中的多个存储设备故障的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《计算机科学》 20090331 姜国松等 《一种高性能阵列研究》 第36卷, 第3期 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521067B (zh) * 2011-12-01 2013-07-24 华中科技大学 优化部分条带写性能的raid-6编码和重构方法
CN102521067A (zh) * 2011-12-01 2012-06-27 华中科技大学 优化部分条带写性能的raid-6编码和重构方法
US10644726B2 (en) 2013-10-18 2020-05-05 Universite De Nantes Method and apparatus for reconstructing a data block
CN103593253A (zh) * 2013-11-22 2014-02-19 华中科技大学 一种基于异或的垂直raid-6编码方法
WO2016058289A1 (zh) * 2015-01-20 2016-04-21 北京大学深圳研究生院 一种能修复多个节点失效的mds纠删码
CN104765660A (zh) * 2015-04-24 2015-07-08 中国人民解放军国防科学技术大学 一种基于ssd的raid6系统的单盘快速恢复方法器
CN104765660B (zh) * 2015-04-24 2017-04-05 中国人民解放军国防科学技术大学 一种基于ssd的raid6系统的单盘快速恢复方法器
CN104881365A (zh) * 2015-05-31 2015-09-02 上海交通大学 基于纠删码相似性的raid-6可扩展方法
CN104866243A (zh) * 2015-05-31 2015-08-26 上海交通大学 优化输入输出负载的raid-6横向斜向校验编码及解码方法
CN107562569A (zh) * 2016-06-30 2018-01-09 杭州海康威视数字技术股份有限公司 一种数据重构方法及装置
CN106227463A (zh) * 2016-07-11 2016-12-14 苏州科达科技股份有限公司 Raid模型、数据读写及其重建方法
CN106227463B (zh) * 2016-07-11 2019-06-14 苏州科达科技股份有限公司 Raid、数据读写及其重建方法
CN108182126A (zh) * 2018-01-02 2018-06-19 联想(北京)有限公司 一种硬盘处理方法及电子设备
CN108182126B (zh) * 2018-01-02 2020-11-20 联想(北京)有限公司 一种硬盘处理方法及电子设备
CN110231999A (zh) * 2019-05-29 2019-09-13 华中科技大学 提升基于局部修复编码的存储系统可靠性的方法及装置
CN110231999B (zh) * 2019-05-29 2020-05-19 华中科技大学 提升基于局部修复编码的存储系统可靠性的方法及装置
CN110532128A (zh) * 2019-08-16 2019-12-03 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
CN110532128B (zh) * 2019-08-16 2021-04-20 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
CN112256478A (zh) * 2020-10-16 2021-01-22 山东云海国创云计算装备产业创新中心有限公司 一种单磁盘故障的修复方法、系统、设备及存储介质
CN112256478B (zh) * 2020-10-16 2023-05-26 山东云海国创云计算装备产业创新中心有限公司 一种单磁盘故障的修复方法、系统、设备及存储介质
CN112905387A (zh) * 2021-03-04 2021-06-04 河北工业大学 一种raid6编码及基于该编码的数据恢复方法
CN112905387B (zh) * 2021-03-04 2022-05-24 河北工业大学 一种raid6编码及基于该编码的数据恢复方法
CN114090345A (zh) * 2022-01-21 2022-02-25 苏州浪潮智能科技有限公司 一种磁盘阵列数据恢复方法、系统、存储介质及设备
CN114090345B (zh) * 2022-01-21 2022-04-26 苏州浪潮智能科技有限公司 一种磁盘阵列数据恢复方法、系统、存储介质及设备

Also Published As

Publication number Publication date
CN102012792B (zh) 2012-08-15

Similar Documents

Publication Publication Date Title
CN102012792B (zh) 一种快速重构的raid-6编码及重构方法
CN102521067B (zh) 优化部分条带写性能的raid-6编码和重构方法
CN101387975B (zh) 一种磁盘阵列系统
Xiang et al. Optimal recovery of single disk failure in RDP code storage systems
CN1801105A (zh) 容许存储系统中的多个存储设备故障的系统和方法
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN109086000B (zh) 一种raid存储系统中的三容错数据布局方法
CN108228382A (zh) 一种针对evenodd码单盘故障的数据恢复方法
CN107395207A (zh) 多容错性的mds 阵列码编码以及修复方法
CN105703782B (zh) 一种基于递增移位矩阵的网络编码方法及系统
US20040078642A1 (en) Method and system for disk fault tolerance in a disk array
Jin et al. Approximate code: a cost-effective erasure coding framework for tiered video storage in cloud systems
Wan et al. Code-m: A non-mds erasure code scheme to support fast recovery from up to two-disk failures in storage systems
CN101901115B (zh) 一种磁盘阵列raid6级别的构建方法
CN102103533A (zh) 一种双盘容错磁盘阵列中单盘重构的方法
US20050086575A1 (en) Generalized parity stripe data storage array
CN104866243A (zh) 优化输入输出负载的raid-6横向斜向校验编码及解码方法
CN102033717B (zh) 基于磁盘阵列的数据存储方法及系统
CN110268397B (zh) 应用于数据仓库系统的高效优化数据布局方法
US6792391B1 (en) Method and system for three disk fault tolerance in a disk array
CN112905387B (zh) 一种raid6编码及基于该编码的数据恢复方法
CN104932836A (zh) 一种提高单写性能的三盘容错编码和解码方法
Lee et al. Efficient parity placement schemes for tolerating up to two disk failures in disk arrays
CN114756175A (zh) 一种用于磁盘阵列的解码方法、系统、设备及介质
US7062604B1 (en) Method and system for five-disk fault tolerance in a disk array

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170823

Address after: Qixia District of Nanjing City, Jiangsu province 210000 Yao Jia Lu No. 7 city scenery Beiyuan 16 room 1203

Patentee after: Nanjing Jia Jia Mdt InfoTech Ltd

Address before: 430074 Hubei Province, Wuhan city Hongshan District Luoyu Road No. 1037

Patentee before: Huazhong University of Science and Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210720

Address after: 335000 no.67-1, Zhichuang street, high tech Industrial Development Zone, Yingtan City, Jiangxi Province

Patentee after: Jiangxi diejia Information Technology Co.,Ltd.

Address before: Room 1203, building 16, shangchengjingjing Beiyuan, No.7 Yaojia Road, Qixia District, Nanjing City, Jiangsu Province, 210000

Patentee before: NANJING SUPERSTACK INFORMATION TECHNOLOGY Ltd.