买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种针对EVENODD码单盘故障的数据恢复方法_成都信息工程大学_201810027966.2 

申请/专利权人:成都信息工程大学

申请日:2018-01-11

公开(公告)日:2021-08-10

公开(公告)号:CN108228382B

主分类号:G06F11/10(20060101)

分类号:G06F11/10(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.08.10#授权;2018.07.24#实质审查的生效;2018.06.29#公开

摘要:本发明公开了一种针对EVENODD码单盘故障的数据恢复方法,属于计算机信息存储及恢复技术领域。本方法在现有EVENODD编码的基础上,对包含p个数据磁盘的EVENODD,取其中的前个数据磁盘进行异或计算,将异或的结果保存到一个新的冗余磁盘中,该冗余磁盘定义为局部冗余磁盘;当数据磁盘发生故障时,则根据数据磁盘所处的位置进行相应的数据恢复;当冗余磁盘发生故障,则根据冗余磁盘的类型进行相应的数据恢复。本方法利用新增的局部冗余磁盘,使得与单一数据磁盘相关的磁盘数目减少。数据恢复时降低了磁盘读取的数目,数据读取开销小,数据恢复效率高,是一种优于传统的EVENODD码单盘故障恢复算法。

主权项:1.一种针对EVENODD码单盘故障的数据恢复方法,其特征在于,包括如下步骤:⑴、对包含p个数据磁盘以及两个冗余磁盘的EVENODD编码,取其中的前个数据磁盘进行异或计算,其中,p为素数,两个冗余磁盘分别是水平冗余磁盘及对角冗余磁盘;⑵、将步骤⑴异或的结果保存到一个新的冗余磁盘中,该冗余磁盘定义为局部冗余磁盘;⑶、当单个数据磁盘发生数据故障时,根据故障数据磁盘的位置进行数据故障恢复;⑷、当单个冗余磁盘发生数据故障时,根据故障冗余磁盘的类型进行数据故障恢复;其中,所述步骤⑶包括如下子步骤:①首先判断发生数据故障的数据磁盘位置,将情况分为数据故障发生在前个数据磁盘和后个数据磁盘两种情况;②如果发生数据故障的数据磁盘位于前个数据磁盘中,则读取前个数据磁盘中完好的数据磁盘及局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据;③如果发生数据故障的数据磁盘位于后个数据磁盘中,则读取后个数据磁盘中完好的数据磁盘及水平冗余磁盘和局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据;所述步骤⑷包括如下子步骤:①首先判断发生故障的冗余磁盘类型,分三种情况;②如果发生数据故障的磁盘是水平冗余磁盘,则读取后个数据磁盘以及局部冗余磁盘中的数据进行异或计算,得到的数据即为发生数据故障的水平冗余磁盘数据;③如果发生数据故障的磁盘是对角冗余磁盘,则读取所有数据磁盘中的数据进行异或计算,得到的数据即为发生数据故障的对角冗余磁盘数据;④如果发生数据故障的是局部冗余磁盘,则读取前个数据磁盘进行异或计算,得到的数据即为发生故障的局部冗余磁盘数据。

全文数据:一种针对EVENODD码单盘故障的数据恢复方法技术领域[0001]本发明涉及计算机信息存储及恢复技术领域,特别涉及一种针对EVENODD码单盘故障的数据恢复算法。背景技术[0002]近年来,随着社会和科技的快速发展,数据库中的数据量正以爆炸性的速度增长,因此存储系统的规模也日益增大。而随着规模的增大,存储系统的稳定性所面临的问题也逐渐增多。主要表现在随着磁盘数量的不断增加,磁盘故障所带来的数据丢失的概率也在增加。而为了保障数据即使在磁盘发生故障后仍保持完好,就需要对数据进行恢复。因此,数据恢复的时间和恢复过程所需读取的数据量就成为了系统稳定性的关键。[0003]文献【EVENODD:aneffcientschemefortoleratingdoublediskfailuresinRAIDarchitectures】提出的EVENODD码是存储系统中较为常用的一类容两错的阵列码。其原理主要是通过增加额外的两个冗余磁盘来保证数据的完整性。EVENODD码能够在任意的两个数据磁盘发生故障后仍正确地恢复出原始数据。对于EVENODD编码而言,其优点在于结构简单,编译码过程基于异或运算,因而速度很快。但是其主要缺点之一就是单盘故障恢复所需读取的数据过多,需要读取所有的剩余原数据,数据读取时间较长,数据恢复效率较低。发明内容[0004]基于上述所述,本发明要解决的技术问题是针对现有EVENODD码单盘故障数据恢复时间长,恢复效率低的不足,提供一种新的针对EVENODD码单盘故障时的数据恢复方法,该算法的存储开销略大于传统EVENODD编码,但是单盘故障恢复的读取开销仅约为现有EVENODD编码的50%,数据恢复时间短,恢复效率高。[0005]本发明所述的数据恢复方法的整体的原理是:在EVENODD编码的基础上,取其中的前个数据磁盘进行异或计算,将异或的结果保存到一个新的冗余磁盘中,该新的冗余磁盘定义为局部冗余磁盘。当单个磁盘发生数据故障时,依故障磁盘的位置或类型进行相应的数据恢复。即如果是数据磁盘发生故障,则根据数据磁盘所处的位置进行相应的数据恢复;如果是冗余磁盘发生故障,则根据冗余磁盘的类型进行相应的数据恢复。[0006]本发明所述的数据恢复方法步骤是:[0007]1首先对包含p个数据磁盘以及两个冗余磁盘EVENODD编码,取其中的前个数据磁盘进行异或计算,其中,P为数据磁盘的个数,P取值为素数,两个冗余磁盘分别是水平冗余磁盘及对角冗余磁盘;[0008]2将异或的结果保存到一个新的冗余磁盘中,该冗余磁盘定义为局部冗余磁盘,计算公式如下:[0009][0010]为该磁盘阵列中的数据块,i,j为该数据块的行列坐标;[0011]3当单个数据磁盘发生数据故障数据丢失时,根据故障数据磁盘的位置进行故障恢复;[0012]4当单个冗余磁盘发生数据故障数据丢失时,根据故障冗余磁盘类型进行故障恢复。[0013]具体地,上述步骤⑶的具体步骤为:[0014]①首先判断发生数据故障的数据磁盘位置,可将情况分为故障发生在前个数据磁盘和后-。个数据磁盘两种情况;[0015]②如果发生数据故障的数据磁盘位于前=个数据磁盘中,则读取前个磁盘中完好的磁盘及局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据,设发生数据故障的数据磁盘为e,数据恢复公式如下;[0016][0017]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标;[0018]③如果发生数据故障的数据磁盘在后-个磁盘中,则读取在后2个数据磁盘中完好的磁盘及水平冗余磁盘和局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据磁盘,设发生数据故障的数据磁盘为e,数据恢复公式如下:[0019][0020]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标[0021]具体地,上述步骤⑷的具体步骤为:[0022]①首先判断发生故障的冗余磁盘类型,分为三种情况:[0023]②如果发生数据故障的磁盘是水平冗余磁盘,则读取后_个数据磁盘及局部冗余磁盘的数据进行异或计算,得到的数据即为发生数据故障的水平冗余磁盘数据,数据恢复公式如下:[0024][0025]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标;[0026]③如果发生数据故障的是对角冗余磁盘,则需要读取所有数据磁盘中的数据进行异或计算,计算公式如下:[0027][0029]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标;[0028][0030]④如果发生数据故障的是局部冗余磁盘,则读取前个数据磁盘进行异或计算,得到的数据即为发生数据故障的局部冗余磁盘数据,计算公式同上述步骤2中公式,具体是:[0031][0032]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标[0033]本方法利用新增的局部冗余磁盘,使得与单一数据磁盘相关的磁盘数目减少。该恢复算法降低了磁盘读取的数目,时间和空间上均优于传统的EVEN0DD单盘故障恢复算法。[0034]通常,数据恢复方法可以从存储开销、恢复读取开销、系统稳定性、正确性四个方面来综合评价。存储开销可以通过比较编码所需的大小得出,虽然本算法较现有EVEN0DD多增加了一个冗余列(局部冗余磁盘),但是实际中P的取值往往较大,增加的存储开销几乎可以忽略不计;恢复读取开销指标可以由恢复同类型错误所需读取的文件块数目来观察得出,由于数据磁盘发生故障的概率大于冗余磁盘发生故障的概率,可以说是远远大于,当P趋于无穷时,单盘故障开销趋近于,因此,本发明读取开销理论上能够降低50%的读取开销,恢复效率高。磁盘阵列中的系统稳定性往往取决于单盘故障恢复时间,数据恢复时间越短,就意味着产生多个错误的几率越低;由于降低了读取的数据块数目,本算法的恢复时间也得以降低,因此系统稳定性有所提高;最后由于本算法的前P+2列保留了EVEN0DD编码,因此也能够恢复任意两个错误,保证了解码的正确性。因此本发明提出的数据故障恢复方法是极优的。[0035]由上述方法可知,本发明的有益效果是:[0036]1、解决了现有EVEN0DD码单盘故障恢复读取开销过高的问题;本发明是基于EVEN0DD单盘故障恢复的改进,EVEN0DD编码方法是一种算法简单,运算基于异或的效率很高的编码方式。但是EVEN0DD却有一个比较显著的缺点,对于单一磁盘发生故障,在恢复时需要用到全部的数据,读取开销极大。本发明所提出的数据恢复方法,由于加入局部冗余磁盘,使得单一数据盘相关的磁盘数目缩减至一半,有效降低了读取开销。[0037]2、提升了系统整体的稳定性;阵列存储系统中绝大多数的磁盘故障都是单盘故障,而系统稳定性就取决于单盘故障的恢复时间与读取开销。本发明所提出的数据恢复方法,由于降低了参与运算的磁盘个数,因此不仅降低了读取开销,也节省了运算时间,进一步提高了恢复的效率,进而间接地提升了系统整体的稳定性。附图说明[0038]图1是现有EVEN0DD5,7编码磁盘阵列模型示意图;[0039]图2是图1中水平冗余磁盘及对对角冗余磁盘数据算法示意图:[0040]图3是本发明改进后的EVEN0DD5,7编码磁盘阵列模型示意图;[0041]图4是EVEN0DD5,7编码磁盘阵列模型中第一个数据磁盘发生数据故障时的结构示意图;[0042]图5是EVEN0DD5,7编码磁盘阵列模型中第三个数据磁盘发生数据故障时的结构示意图;[0043]图6是EVEN0DD5,7编码磁盘阵列模型中水平冗余磁盘发生故障时的结构示意图;具体实施方式[0044]下面结合附图对本发明的实施例进行详细说明。[0045]本发明所描述的实施例仅是本发明的部分实施例,而不是全部实施例。为了便于描述,附图中仅示出与本发明相关的部分而非全部内容。[0046]下述实施例所述的数据故障也可称之为数据丢失,本说明书所出现的所有数据故障、数据丢失释义相同;同理,故障与丢失释义也相同。[0047]本发明以现有EVEN0DD5,7结构作为参照来说明,该EVEN0DD5,7结构含有5个数据磁盘,即P=5;2个冗余磁盘,2个冗余磁盘分别是水平冗余磁盘和对角冗余磁盘。[0048]通常,p值取值较大,往往在100以上,为便于描述本发明的工作方式,本实施例中仅以P=5为例说明,当p为其它取值时,工作方式可参照p=5的实施例。[0049]参见图1〜2,图1为现有EVEMDD5,7磁盘阵列结构示意图,图2是相应的算法示意图;DiskO〜Disk4为5个组合阵列在一起的数据磁盘,Disk5〜Disk6为2个组合真累在一起的冗余磁盘,其中,Disk5为水平冗余磁盘,Disk6为对角冗余磁盘。[0050]水平冗余磁盘的数据算法逼[0051]对角冗余磁盘的数据算法是[0052]其中[0053]i=0,l...3;[0054]为该磁盘阵列中的数据块,iJ为该数据块的行列坐标。[0055]图3是本发明改进后的EVEN0DD5,7磁盘阵列结构示意图,与图1相比,可知,改进后的EVEN0DD5,7磁盘阵列增加了一个冗余磁盘,即在现有水平冗余磁盘和对角冗余磁盘的基础上增加了一个局部冗余磁盘,也即是图3中所示的Disk7。[0056]局部冗余磁盘的数据由前2个数据磁盘中的数据进行异或计算而来,也即是利用DiskO和Diskl中的数据进行异或;[0057]计算公式为:[0058]i=〇,l..,3〇[0059]参见图4,该附图中,X表示发生数据故障,O表示数据完好。当磁盘阵列中前2个数据磁盘中的第一个数据磁盘,DiskO发生数据故障时,则读取第二个数据磁盘及局部冗余磁盘的数据,即读取Diskl及Disk7中的数据进行异或,从而恢复出DiskO中的丢失数据;[0060]数据恢复公式为〇.[0061]参见图5,该附图中,X表示发生数据故障,O表示数据完好。当磁盘阵列中后3个数据磁盘中的第三个数据磁盘,即Disk2发生数据故障时,先读取Disk3、Disk4中的数据,然后再读取水平冗余磁盘和局部冗余磁盘中的数据,即Disk5和Disk7中的数据,将所读取的数据进行异或计算,从而恢复出Disk2中的丢失数据;[0062]数据恢复公式为〃。[0063]参见图6,该附图中,X表示发生数据故障,O表示数据完好,当冗余磁盘发生数据故障时,首先判断发生数据故障的冗余磁盘的类型;[0064]如果是水平冗余磁盘发生数据故障,S卩Disk5发生数据故障,先读取后3个数据磁盘中的数据,即Disk2、Disk3和Disk4中数据,再读取局部冗余磁盘中数据,S卩Disk7中的数据,将所读取的数据进行异或计算。从而恢复出Disk5中的丢失数据;[0065]数据恢复公式为[0066]如果是对角冗余磁盘发生数据故障,S卩Diske发生数据故障时,依据现有EVEN0DD5,7阵列结构模型进行异或计算,由于这部分与现有计算无区别。这里省去公式。通常,由于P值较大,对角冗余磁盘发生数据故障的几率极低,因此,该数据恢复的情形应用很少,一旦发生,按照现有EVEN0DD5,7模型进行异或计算即可。[0067]如果是局部冗余磁盘发生数据故障,S卩Disk7发生数据故障时,则读取前2个数据磁盘中的数据,即DiskO和Diskl中的数据进行异或计算;[0068]数据恢复公式为:[0069]i=〇,l...3[0070]上述实施例只展示了p=5的情况,由于p的取值通常较大,无法一一列举多个典型的实施例,可以认为上述实施例是本发明的较佳实施例而非全部实施例,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

权利要求:1.一种针对EVENODD码单盘故障的数据恢复方法,其特征在于,包括如下步骤:⑴、对包含P个数据磁盘以及两个冗余磁盘的EVEN0DD编码,取其中的前个数据磁.2盘进行异或计算,其中,P为素数,两个冗余磁盘分别是水平冗余磁盘及对角冗余磁盘;⑵、将步骤⑴异或的结果保存到一个新的冗余磁盘中,该冗余磁盘定义为局部冗余磁盘;3、当单个数据磁盘发生数据故障时,根据故障数据磁盘的位置进行数据故障恢复;⑷、当单个冗余磁盘发生数据故障时,根据故障冗余磁盘的类型进行数据故障恢复。2.如权利要求1所述的一种针对EVENODD码单盘故障的数据恢复方法,其特征在于,所述数据磁盘发生故障的概率大于冗余磁盘发生故障的概率。3.如权利要求1所述的一种针对EVENODD码单盘故障的数据恢复方法,其特征在于:所述步骤⑶包括如下子步骤:①首先判断发生数据故障的数据磁盘位置,将情况分为数据故障发生在前个数据磁盘和后-个数据磁盘两种情况;②如果发生数据故障的数据磁盘位于前个数据磁盘中,则读取前·个数据磁盘中完好的数据磁盘及局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据;③如果发生数据故障的数据磁盘位于后个数据磁盘中,则读取后_个数据磁盘中完好的数据磁盘及水平冗余磁盘和局部冗余磁盘的数据,进行异或计算,得到的数据即为发生数据故障磁盘的数据。4.如权利要求1所述的一种针对EVENODD码单盘故障的数据恢复方法,其特征在于:所述步骤⑷包括如下子步骤:①首先判断发生故障的冗余磁盘类型,分三种情况;②如果发生数据故障的磁盘是水平冗余磁盘,则读取后个数据磁盘以及局部冗余磁盘中的数据进行异或计算,得到的数据即为发生数据故障的水平冗余磁盘数据;③如果发生数据故障的磁盘是对角冗余磁盘,则读取所有数据磁盘中的数据进行异或计算;,得到的数据即为发生数据故障的对角冗余磁盘数据;④如果发生数据故障的是局部冗余磁盘,则读取前个数据磁盘进行异或计算,得到的数据即为发生故障的局部冗余磁盘数据。

百度查询: 成都信息工程大学 一种针对EVENODD码单盘故障的数据恢复方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。