CN100570573C - 大规模磁盘阵列存储系统的磁盘容错方法 - Google Patents

大规模磁盘阵列存储系统的磁盘容错方法 Download PDF

Info

Publication number
CN100570573C
CN100570573C CNB2008101122759A CN200810112275A CN100570573C CN 100570573 C CN100570573 C CN 100570573C CN B2008101122759 A CNB2008101122759 A CN B2008101122759A CN 200810112275 A CN200810112275 A CN 200810112275A CN 100570573 C CN100570573 C CN 100570573C
Authority
CN
China
Prior art keywords
code
band
data
stick
disk array
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.)
Expired - Fee Related
Application number
CNB2008101122759A
Other languages
English (en)
Other versions
CN101339524A (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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CNB2008101122759A priority Critical patent/CN100570573C/zh
Publication of CN101339524A publication Critical patent/CN101339524A/zh
Application granted granted Critical
Publication of CN100570573C publication Critical patent/CN100570573C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

大规模磁盘阵列存储系统的磁盘容错方法属于存储系统的磁盘容错技术领域,其特征是:首先,通过执行计算机可读媒体里面的初始化程序,将所有磁盘进行条带化处理,并将每个条带中的所有条块在逻辑上配置成多维(包括二维)网格结构,同时将网格上同一个平面内排列成一行或一列的所有条块配置成一个子条带;然后,通过执行计算机可读媒体里面的数据编码程序,选择一组由奇偶阵列码和单奇偶校验码这两类纠删码组成的匹配码,对每个方向的子条带进行编码;最后,当磁盘阵列中单个或多个磁盘的部分数据丢失或整个磁盘出错时,通过执行计算机可读媒体里面的数据重构程序,采用一种迭代的数据重构方法对磁盘阵列中丢失的数据进行重构恢复。

Description

大规模磁盘阵列存储系统的磁盘容错方法
技术领域
大规模磁盘阵列存储系统的磁盘容错方法属于存储系统的磁盘容错技术领域。
技术背景
随着磁盘阵列(disk array)存储系统规模的不断扩大,存储容量急剧增长,然而单个磁盘的数据出错率却一直未得到显著的改善,于是,磁盘容错就成为磁盘阵列存储系统设计中一个十分重要的方面。目前,已有的RAID技术中容错能力最强的RAID6只能容忍最多2个磁盘的数据丢失;多镜像技术虽然可以容忍很多个磁盘的数据丢失,但存储空间的有效利用率很低,只有1/N(N表示镜像副本个数)。于是,各种具有较高容错能力的纠删码(erasure code)技术被提出,以适应未来存储业发展的需要。
目前,已有的纠删码技术包括四类:
1)里得-所罗门码(Reed Solomon code),主要包括两种:基于范德蒙矩阵(Vandermondematrix)的标准里得-所罗门码(standard Reed Solomon code)和基于柯西矩阵(Cauchymatrix)的柯西里得-所罗门码(Cauchy Reed Solomon code)。它们可以提供任意高的容错能力和最优的存储利用率,但由于它们是基于有限域代数运算,所以实现起来十分复杂,会严重影响存储系统性能。
2)奇偶阵列码(parity array code),又可以分为三类:①水平奇偶阵列码(horizontal parityarray code):数据和校验分布在不同的磁盘上,如EVENODD码及其推广形式,RDP码,STAR码,等等;②垂直奇偶阵列码(vertical parity array code):一个磁盘上同时存放数据和校验,如X码,BCP码,ZZS码,WEAVER码,等等:③混合码:是水平码和垂直码的混合形式,如HoVer码。其中,EVENODD码,STAR码和X码等完全基于异或运算,且具有最优的存储利用率,但最多只能容忍3个磁盘的数据丢失;EVENODD码的推广形式虽然可以提供3~8的容错能力和最优的存储利用率,但它们是基于环的代数运算,实现比较复杂;WEAVER码完全基于异或运算且能够提供高达12的容错能力,但其存储利用率不高超过50%。
3)奇偶校验码(parity check code),是单奇偶校验码(single parity check code,SPC)的多维扩展,如二维的水平垂直奇偶校验码(horizontal and vertical parity check code.HVPC)。它们完全基于异或运算,可以提供较高的容错能力,但存储利用率不是很高。
4)低密度奇偶校验码(Low Density Parity Check code,LDPC),是一种基于Tanner图设计的编码。它们完全基于异或运算,较好的低密度奇偶校验码能够提供较高的容错能力和接近最优的存储利用率,但具有十分不规则的图结构,不易在存储系统中实现。
目前,尽管已有大量的纠删码被提出,但每种编码各有优缺点,分别适用于不用的应用需求,还没有一种编码能够作为通用的适应所有需求的容错技术。
这些已有的纠删码技术都有一个共同特点:在磁盘阵列的一个条带(stripe)中,所有条块(strip)在逻辑上配置(configure)成一维的线性结构。与已有的纠删码技术不同的是,本发明提出的大规模磁盘阵列存储系统的磁盘容错方法是将磁盘阵列中每个条带的所有条块在逻辑上配置成多维(包括二维)网格(grid)结构。它完全基于异或运算且具有规则的编码结构,实现容易;它的容错能力能够高达15,甚至更高;在编码方式固定的前提下,随着一个条带中条块数目的增加.它能够提供高达80%,甚至更高的存储利用率。它的这些特征使得它非常适合于大规模磁盘阵列存储系统。
发明内容
本发明的目的在于提供一种大规模磁盘阵列存储系统的磁盘容错方法,并且这种方法具有实现容易和存储利用率高的优点,从而保证磁盘阵列存储系统在采用较少冗余磁盘的情况下,当多个磁盘同时发生数据丢失时,能够高效地将丢失的数据恢复过来。本方法的核心在于:它首先将存储阵列中的所有磁盘进行条带化(striping)处理,并将每个条带中的所有条块在逻辑上配置成多维(包括二维)网格结构,同时将网格上同一个平面内排列成一行或一列的所有条块配置成一个子条带(sub-stripe),然后,它选择一组由奇偶阵列码(parity arraycode)和单奇偶校验码(single parity check code)这两类纠删码(erasure code)组成的匹配码(matching codes),对每个方向的子条带进行编码。
本发明的特征在于:它是在由磁盘阵列(disk array)、存储适配器(storage adapter)、内存(memory,包括存储操作系统(storage operating system))和处理器(processor)共同组成的磁盘阵列存储系统中实现的,它将磁盘阵列的初始化程序、数据编码程序和数据重构程序存储在计算机可读媒体(computer readable media)中,所述的数据编码方法包含以下三个步骤:
步骤1:对磁盘阵列进行初始化处理
通过执行计算机可读媒体里面的初始化程序,它将磁盘阵列中的所有磁盘进行条带化处理,并将每个条带中的所有条块在逻辑上配置成多维(包括二维)网格结构,同时,它将网格上同一个平面内排列成一行或一列的所有条块配置成一个子条带;
步骤2:对磁盘阵列中的数据进行编码
通过执行计算机可读媒体里面的数据编码程序,它首先选择一组由奇偶阵列码和单奇偶校验码这两类纠删码组成的匹配码,它按照以下两条规则来构造匹配码:
1)网格上同一平面内的两个不同方向上的子条带采用的纠删码不能同时是垂直码(vertical code);
2)网格上同一平面内的两个不同方向上的子条带采用的纠删码的条块大小(strip size)必须相等;
然后,它利用选择的一组匹配码,对磁盘阵列中的每个条带的所有条块根据以下不同情况进行编码:
1)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2都是水平码(horizontal code)时(code1和code2的一个条带中的数据条块个数分别为d1和d2,校验条块个数分别为p1和p2),它采用以下两种编码方式中的任意一种对这一平面内的(d1+p1)×(d2+p2)个条块进行编码:①它首先将网格上这一平面内垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一个平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照code1的编码方式进行编码;②它首先将网格上这一个平面内水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一个平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码;
2)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2中包含一个垂直码时,它根据以下不同情况,采用相应的编码方式对这一平面内的所有条块进行编码:①当网格上这一平面内水平方向上的行子条带采用垂直码时(垂直码code1的一个条带中的条块个数为v1,水平码code2的一个条带中的数据和校验条块个数分别为d2和p2),它首先将水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码;②当网格上这一平面内垂直方向上的列子条带采用垂直码时(水平码code1的一个条带中的数据和校验条块个数分别为d1和p1,垂直码code2的一个条带中的条块个数为v2),它首先将垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照code1的编码方式进行编码;
步骤3:对磁盘阵列中丢失的数据进行恢复
当磁盘阵列中单个或多个磁盘的部分数据丢失或整个磁盘出错时,通过执行计算机可读媒体里面的数据重构程序,它采用一种迭代的数据重构方法对磁盘阵列中丢失的数据进行重构恢复,过程如下:
1)首先,确定丢失的数据所对应的条块所在的子条带;
2)然后,对每个对应的子条带,它利用子条带所采用的编码所对应的数据重构算法,按照设定的次序迭代地对丢失的数据进行恢复,直到所有丢失数据都恢复或不能再恢复为止。
本发明提出的大规模磁盘阵列存储系统的磁盘容错方法,是完全基于异或运算并且具有规则的编码结构,易于实现;它的容错能力能够高达15,甚至更高;在编码方式固定的前提下,随着一个条带中条块数目的增加,它能够提供高达80%,甚至更高的存储利用率。它的这些特征使得它非常适合于大规模磁盘阵列存储系统。
附图说明
图1:磁盘阵列存储系统的结构示意图:1.磁盘,2.磁盘阵列,3.存储适配器,4.内存,5.存储操作系统,6.处理器,7.系统总线;
图2:存储操作系统的结构示意图:8.虚拟化系统,9.文件系统,10.虚拟磁盘模块,11.SCSI目标模块,12.磁盘驱动,13.磁盘存储,14.FC,15.介质访问,16.IP,17.TCP,18.UDP,19.VI,20.DAFS,21.NFS,22.CIFS,23.HTTP,24.iSCSI;
图3:大规模磁盘阵列存储系统的磁盘容错方法的流程图;
图4:磁盘阵列的初始化程序的流程图;
图5:二维网格结构中一个条带的所有条块的逻辑分布示意图:25.条带,26.行子条带,27.列子条带,28.条块;
图6:两种<EVENODD,SPC>编码方式示意图:(a)先对列子条带进行编码,后对行子条带进行编码的编码方式,(b)先对行子条带进行编码,后对列子条带进行编码的编码方式,其中,29.EVENODD,30.SPC;
图7:<STAR,X-code>编码方式示意图:31.STAR,32.X-code;
图8:<code1,code2>编码方式对应的数据重构流程图;
图9:<code1,code2>编码方式对应的矩形出错模式示意图:33.丢失的条块,34.t1+1个条块,35.t2+1个条块;
图10:<STAR,SPC>和<STAR,STAR>的存储利用率变化图:
Figure C20081011227500071
<STAR,SPC>,
Figure C20081011227500072
<STAR,STAR>。
具体实施方式
本发明的具体应用环境是由磁盘阵列、存储适配器、内存(包括存储操作系统)和处理器共同组成的磁盘阵列存储系统(如图1所示)。磁盘阵列存储系统中各组成部分通过系统总线连接起来,它们的具体功能如下:
1)磁盘阵列:由若干个具有相同容量的同构磁盘组成,磁盘的个数为合数(即,能够分解成若干个自然数的乘积的数),并与所选择的数据编码方式有关,主要用于数据存储,并同时存储各种程序;
2)存储适配器:又称存储控制器,主要功能是对磁盘阵列中数据块的存储和访问进行控制;
3)内存(包括存储操作系统):主要作为磁盘阵列的高速缓冲存储器,并存储包括存储操作系统在内的存储系统程序和一些其他程序;
4)处理器:为整个磁盘阵列存储系统提供高速的运算和处理能力,执行各种程序。
在实际应用中,本发明可以应用在(但又不局限于)包括直接附属存储(directly-attachedstorage,DAS)、网络附属存储(network-attached storage,NAS)和存储区域网络(storage areanetwork,SAN)等在内的各种存储系统结构中。
上述的存储操作系统是指计算机中用于数据访问管理的可执行程序,它既可以作为一个系统程序在操作内核中实现,如
Figure C20081011227500081
Data ONTAPTM存储操作系统,也可以作为一个应用程序在通用操作系统(如
Figure C20081011227500082
或Windows
Figure C20081011227500083
等)之上实现。本发明采用的是(但不局限于)
Figure C20081011227500084
Data ONTAPTM操作系统(它实现了一个
Figure C20081011227500085
文件系统)。实际上,任何一个合适的存储操作系统都可以在本发明中使用。图2是存储操作系统的结构示意图。其中,磁盘驱动层主要实现磁盘访问协议,如SCSI协议;磁盘存储层主要实现磁盘存储协议,如RAID协议,本发明提出的数据编码方法主要就是在这一层实现;虚拟化系统主要是在磁盘软件与网络协议栈之间起桥梁作用,从而确保本发明能够在网络存储系统中使用,它主要是由文件系统、虚拟磁盘模块和SCSI目标模块组成。
本发明将磁盘阵列的初始化程序、数据编码程序和数据重构程序存储在计算机可读媒体(泛指计算机中可以用于存储程序的任何可读媒体)中,所述的数据编码方法包含以下三个步骤(如图3所示):
步骤1:对磁盘阵列进行初始化处理
通过执行计算机可读媒体里面的初始化程序(流程如图4所示),首先,将磁盘阵列中的所有磁盘进行逻辑上分块;然后,将磁盘阵列中的所有数据块配置成条带;其后,将每个条带中的所有条块在逻辑上配置成多维(包括二维)网格结构;最后,将网格上同一个平面内排列成一行或一列的所有条块配置成一个子条带。以排列成二维网格结构的情况为例,排成一行的条块定义成一个行子条带(row sub-stripe),排成一列的条块定义成一个列子条带(column sub-stripe),如图5所示。
步骤2:对磁盘阵列中的数据进行编码
通过执行计算机可读媒体里面的数据编码程序,它首先选择一组由奇偶阵列码和单奇偶校验码这两类纠删码组成的匹配码,它按照以下两条规则来构造匹配码:
1)网格上同一平面内的两个不同方向上的子条带采用的纠删码不能同时是垂直码(vertical code);
2)网格上同一平面内的两个不同方向上的子条带采用的纠删码的条块大小(strip size)必须相等。
以排列成二维网格结构的情况为例,部分匹配码实例见表1。其中:X-code和X-code、由于都是垂直码,不满足上述条件1),所以不能构成匹配码;EVENODD和STAR,及EVENODD和X-code,由于条块大小始终无法相等,不满足上述条件2),所以也不能构成匹配码。
表1匹配码
Figure C20081011227500086
Figure C20081011227500091
如果选择的匹配码为code1,...,codem(m≥2),其对应的编码方式记为<code1,…,codem>。
然后,利用选择的一组匹配码,对磁盘阵列中的每个条带的所有条块根据以下不同情况进行编码:
1)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2都是水平码(horizontal code)时(code1和code2的一个条带中的数据条块个数分别为d1和d2,校验条块个数分别为p1和p2),它采用以下两种编码方式中的任意一种对这一平面内的(d1+p1)×(d2+p2)个条块进行编码:①它首先将网格上这一平面内垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一个平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照code1的编码方式进行编码;②它首先将网格上这一个平面内水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一个平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码。以<EVENODD,SPC>为例,两种编码方式如图6所示。
2)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2中包含一个垂直码时,它根据以下不同情况,采用相应的编码方式对这一平面内的所有条块进行编码:①当网格上这一平面内水平方向上的行子条带采用垂直码时(垂直码code1的一个条带中的条块个数为v1,水平码code2的一个条带中的数据和校验条块个数分别为d2和p2),它首先将水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码:
②当网格上这一平面内垂直方向上的列子条带采用垂直码时(水平码code1的一个条带中的数据和校验条块个数分别为d1和p1,垂直码code2的一个条带中的条块个数为v2).它首先将垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照code1的编码方式进行编码,以<STAR,X-code>为例,编码方式如图7所示。
步骤3:对磁盘阵列中丢失的数据进行恢复
当磁盘阵列中单个或多个磁盘的部分数据丢失或整个磁盘出错时,通过执行计算机可读媒体里面的数据重构程序,它采用一种迭代的数据重构方法对磁盘阵列中丢失的数据进行重构恢复,过程如下:
i)首先,确定丢失的数据所对应的条块所在的子条带;
2)然后,对每个对应的子条带,它利用子条带所采用的编码所对应的数据重构算法,按照设定的次序迭代地对丢失的数据进行恢复,直到所有丢失数据都恢复或不能再恢复为止。
以<code1,code2>编码方式为例,对应的数据重构算法如图8所示,具体步骤如下:
1)确定丢失的数据所对应的条块所在的子条带。
2)对于所有包含丢失数据的行子条带,利用code1的数据重构算法对丢失数据进行重构。
如果这一步没有一个丢失数据能被重构,则令Flagrow=0;否则,令Flagrow=1。
3)对于所有包含丢失数据的列子条带,利用code2的数据重构算法对丢失数据进行重构。
如果这一步没有一个丢失数据能被重构,则令Flagcolumn=0;否则,令Flagcolumn=1。
4)如果所有丢失数据都被重构,则返回TRUE;否则继续下一步。
5)如果Flagrow=0,并且Flagcolumn=0,则返回FALSE;否则,回到2),继续。
如果最后返回TRUE,则所有丢失数据都被重构;如果返回FALSE,则还有一些丢失数据无法被重构,此时,数据出错模式中必定包含一个大小为(t2+1)×(t1+1)(其中,ti表示codei的容错能力,i=1,2)的矩形出错模式(如图9所示)。所以,<code1,code2>编码方式的容错能力为T=(t2+1)×(t1+1)-1。一些<code1,code2>编码方式的容错能力见表2。
表2<code1,code2>编码方式的容错能力
 <code<sub>1</sub>,code<sub>2</sub>>   容错能力
 <SPC,SPC>(HVPC码)   3
 <SPCF,EVENODD>,<EVENODD,SPC>   5
 <SPC,STAR>,<STAR,SPC>   7
 <SPC,X-code>,<X-code,SPC>   5
 <EVENODD,EVENODD>   8
 <STAR,STAR>   15
 <STAR,X-code>,<X-code,STAR>   11
类似地,对于<code1,…,codem>编码方式,容错能力为T=(t1+1)×…×(tm+1)-1(其中,t表示codei的容错能力,i=1,…,m)。
对于<code1,code2>编码方式,其存储利用率为 Eff = 1 - t 1 s 2 + t 2 s 1 - t 1 t 2 s 1 s 2 (其中,ti表示codei的容错能力,si表示codei编码方式中一个条带所包含的条块个数,i=1,2),以<STAR,SPC>和<STAR,STAR>为例,其存储利用率如图10所示。从图10可以看出,在编码方式固定的前提下,随着一个条带中条块数目的增大,存储系统的存储利用率将会高达80%,甚至更高。类似地,对于<code1,…,codem>编码方式,也有这样的结论。
所以,本发明的特色如下:
1)数据编码方法完全基于异或运算,且具有规则的编码结构,易于实现:
2)对于<code1,…,codem>(m≥2)编码方式,容错能力为T=(t1+1)×…×(tm+1)-1(其中,ti表示codei的容错能力,i=1,…,m),可以提供很高的容错能力,高达15,更高甚至;
3)在编码方式固定的前提下,随着一个条带中条块数目的增大,存储系统的存储利用率将会高达80%,甚至更高。

Claims (1)

1.大规模磁盘阵列存储系统的磁盘容错方法,其特征是:它是在由磁盘阵列、存储适配器、包括存储操作系统在内的内存和处理器共同组成的磁盘阵列存储系统中实现的,它将磁盘阵列的初始化程序、数据编码程序和数据重构程序存储在计算机可读媒体中,它包含以下三个步骤:
步骤1:对磁盘阵列进行初始化处理
通过执行计算机可读媒体里面的初始化程序,将磁盘阵列中的所有磁盘进行条带化处理,并将每个条带中的所有条块在逻辑上配置成至少二维的网格结构,同时,将网格上同一个平面内排列成一行或一列的所有条块配置成一个子条带;
步骤2:对磁盘阵列中的数据进行编码
通过执行计算机可读媒体里面的数据编码程序,首先选择一组由奇偶阵列码和单奇偶校验码这两类纠删码组成的匹配码,然后根据选择的匹配码,按照设定的编码方式,对磁盘阵列中的每个条带的所有条块进行编码,其中:
所述的匹配码,要同时满足以下两个条件:
1)网格上同一平面内的两个不同方向上的子条带采用的纠删码不能同时是垂直码;
2)网格上同一平面内的两个不同方向上的子条带采用的纠删码的条块大小必须相等;
所述的编码方式,在以下两种不同情况下,具体的编码过程分别如下:
1)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2都是水平码时,所述code1和code2的一个条带中的数据条块个数分别为d1和d2,校验条块个数分别为p1和p2,采用以下两种编码方式中的任意一种对这一平面内的(d1+p1)×(d2+p2)个条块进行编码:①首先将网格上这一平面内垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一个平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照code1的编码方式进行编码;②首先将网格上这一个平面内水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一个平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码;
2)当网格上同一平面内的水平和垂直两个不同方向上的子条带采用的纠删码code1和code2中包含一个垂直码时,根据以下不同情况,采用相应的编码方式对这一平面内的所有条块进行编码:①当网格上这一平面内水平方向上的行子条带采用垂直码时所述垂直码code1的一个条带中的条块个数为v1,水平码code2的一个条带中的数据和校验条块个数分别为d2和p2,首先将水平方向上的前d2个行子条带分别按照code1的编码方式进行编码,然后将这一平面内所有垂直方向上的列子条带中的后p2个条块作为校验条块,并对所有垂直方向上的列子条带分别按照code2的编码方式进行编码;②当网格上这一平面内垂直方向上的列子条带采用垂直码时,所述水平码code1的一个条带中的数据和校验条块个数分别为d1和p1,垂直码code2的一个条带中的条块个数为v2,首先将垂直方向上的前d1个列子条带分别按照code2的编码方式进行编码,然后将这一平面内所有水平方向上的行子条带中的后p1个条块作为校验条块,并对所有水平方向上的行子条带分别按照coed1的编码方式进行编码;
步骤3:对磁盘阵列中丢失的数据进行恢复
当磁盘阵列中单个或多个磁盘的部分数据丢失或整个磁盘出错时,通过执行计算机可读媒体里面的数据重构程序,采用一种迭代的数据重构方法对磁盘阵列中丢失的数据进行重构恢复,过程如下:
1)首先,确定丢失的数据所对应的条块所在的子条带;
2)然后,对每个对应的子条带,利用子条带所采用的编码所对应的数据重构算法,按照设定的次序迭代地对丢失的数据进行恢复,直到所有丢失数据都恢复或不能再恢复为止。
CNB2008101122759A 2008-05-22 2008-05-22 大规模磁盘阵列存储系统的磁盘容错方法 Expired - Fee Related CN100570573C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2008101122759A CN100570573C (zh) 2008-05-22 2008-05-22 大规模磁盘阵列存储系统的磁盘容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2008101122759A CN100570573C (zh) 2008-05-22 2008-05-22 大规模磁盘阵列存储系统的磁盘容错方法

Publications (2)

Publication Number Publication Date
CN101339524A CN101339524A (zh) 2009-01-07
CN100570573C true CN100570573C (zh) 2009-12-16

Family

ID=40213596

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2008101122759A Expired - Fee Related CN100570573C (zh) 2008-05-22 2008-05-22 大规模磁盘阵列存储系统的磁盘容错方法

Country Status (1)

Country Link
CN (1) CN100570573C (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478567B (zh) * 2009-01-09 2011-09-21 南京联创科技集团股份有限公司 基于网格划分的内存管理方法
CN101977300B (zh) * 2010-11-11 2014-11-05 浙江宇视科技有限公司 一种视频点播实现方法及其装置
CN102129354A (zh) * 2010-12-08 2011-07-20 北京航空航天大学 一种基于2d-raid阵列的自适应重组方法
CN103577274B (zh) 2012-07-31 2016-07-06 国际商业机器公司 管理存储器阵列的方法和装置
CN102843212B (zh) * 2012-08-03 2016-10-26 南京中兴新软件有限责任公司 编解码处理方法及装置
US8464095B1 (en) * 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
CN103309742B (zh) * 2013-07-04 2016-07-06 清华大学 云存储系统数据高效编码方法
CN103645964B (zh) * 2013-11-22 2017-05-10 中国电子科技集团公司第三十二研究所 嵌入式处理器的高速缓存容错机制
CN103955415B (zh) * 2014-05-07 2016-01-20 国家电网公司 一种具备n-3容故障性的智能电网大数据储存系统
CN103986476B (zh) * 2014-05-21 2017-05-31 北京京东尚科信息技术有限公司 一种用于二维图形码的级联纠错编码方法和装置
CN104503706B (zh) * 2014-12-23 2017-10-10 中国科学院计算技术研究所 一种基于磁盘阵列的数据存储及读取方法
US10055278B2 (en) 2015-10-30 2018-08-21 International Business Machines Corporation Autonomic parity exchange in data storage systems
WO2018119976A1 (zh) * 2016-12-30 2018-07-05 日彩电子科技(深圳)有限公司 应用于数据仓库系统的高效优化数据布局方法
CN107273048B (zh) * 2017-06-08 2020-08-04 浙江大华技术股份有限公司 一种数据写入方法及装置
CN108170555B (zh) * 2017-12-21 2021-07-20 浙江大华技术股份有限公司 一种数据恢复方法及设备
CN108595988A (zh) * 2018-04-27 2018-09-28 成都信息工程大学 一种可同时加密并容错的硬盘
CN112313628A (zh) * 2018-06-01 2021-02-02 微软技术许可有限责任公司 利用重叠的本地重构代码的擦除编码
CN109086000B (zh) * 2018-06-22 2021-08-03 浙江工业大学 一种raid存储系统中的三容错数据布局方法
CN110968450A (zh) * 2018-09-30 2020-04-07 长鑫存储技术有限公司 数据存储方法及装置、存储介质、电子设备
CN111679793B (zh) * 2020-06-16 2023-03-14 成都信息工程大学 一种基于star码的单盘故障快速恢复方法
CN113296999B (zh) * 2021-05-20 2022-11-11 山东云海国创云计算装备产业创新中心有限公司 一种raid6编码方法及编码电路
CN117075821B (zh) * 2023-10-13 2024-01-16 杭州优云科技有限公司 一种分布式存储方法、装置、电子设备及存储介质
CN117407209B (zh) * 2023-12-13 2024-03-12 苏州元脑智能科技有限公司 三盘容错存储方法、装置、设备、存储介质及磁盘阵列

Also Published As

Publication number Publication date
CN101339524A (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
CN100570573C (zh) 大规模磁盘阵列存储系统的磁盘容错方法
US10346056B2 (en) Declustered array of storage devices with chunk groups and support for multiple erasure schemes
CN101512492B (zh) 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术
CN104461781A (zh) 一种基于纠删码的数据块重建方法
CN103793182B (zh) 用于可扩展存储保护的系统和方法
EP2470992B1 (en) N-way parity technique for enabling recovery from up to n storage device failures
Hafner et al. Matrix Methods for Lost Data Reconstruction in Erasure Codes.
US7934120B2 (en) Storing data redundantly
US9823968B1 (en) Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
US9405623B2 (en) Method of, and apparatus for, layout rectification of erasure encoded storage systems
CN101719086B (zh) 磁盘阵列容错处理方法和装置及容错系统
Zhang et al. Tip-code: A three independent parity code to tolerate triple disk failures with optimal update complextiy
KR19990010106A (ko) 외부저장 서브시스템에서 패리티 저장및 디스크 페일시 데이터 복구방법과 그 장치
CN1801105A (zh) 容许存储系统中的多个存储设备故障的系统和方法
WO2008082584A2 (en) System and method for symmetric triple parity
CN103412799A (zh) 数据恢复方法、数据恢复设备和分布式存储系统
US20040078642A1 (en) Method and system for disk fault tolerance in a disk array
Miyamae et al. Erasure code with shingled local parity groups for efficient recovery from multiple disk failures
US20050086575A1 (en) Generalized parity stripe data storage array
CN100470489C (zh) 磁碟阵列中处理资料运算的方法及其控制器
US6792391B1 (en) Method and system for three disk fault tolerance in a disk array
WO2018029212A1 (en) Regenerating locally repairable codes for distributed storage systems
Li et al. A hierarchical RAID architecture towards fast recovery and high reliability
US7093159B1 (en) Method and system for four disk fault tolerance in a disk array
Yuan et al. A randomly expandable method for data layout of Raid Storage Systems

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091216

Termination date: 20170522