磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统技术方案

技术编号:2853078 阅读:250 留言:1更新日期:2012-04-11 18:40
提供了在磁盘阵列系统中用于从奇偶校验更新操作的异常中断中恢复的系统和方法。在执行操作期间存储与诸如RAID-6系统之类的磁盘阵列系统中的奇偶校验更新操作的状态相关联的数据,从而如果操作被中断,则可以使用所存储的数据启动恢复。所存储的数据可以包括指示奇偶校验更新操作的状态的状态指示符以及在奇偶校验更新操作期间捕捉的快照数据(例如,指示新数据与旧数据之间差的增量值)。

【技术实现步骤摘要】

本专利技术涉及用于数据存储的数据保护方法,尤其涉及实现RAID-6以及类似的数据保护和恢复策略的系统。
技术介绍
RAID代表独立磁盘冗余阵列(Redundant Array of Independent Disks),是这样一类冗余磁盘阵列存储模式,其中冗余磁盘阵列存储模式定义了众多配置和使用多个计算机磁盘驱动器,以获得各种级别的可用性、性能、容量和成本的方式,同时作为单个大容量驱动器呈现给软件应用程序。典型的RAID存储子系统(subsystem)可以用硬件或者软件来实现。在前者的情况下,RAID算法被封装到耦接到计算机输入/输出(“I/O”)总线的单独控制器硬件中,并且虽然增加很少或者没有增加中央处理单元(“CPU”)开销,但是所需的额外硬件仍然增加了整个系统的成本。另一方面,软件实现将RAID算法并到与操作系统一起由主处理器执行的系统软件中,从而避免了单独的硬件控制器的需要和成本,然而增加了CPU开销。从RAID-0到RAID-6已经定义了各种RAID级别,每个都在前述因素中进行权衡。RAID-0只不过是常规的分带(striping),其中将用户数据分成块(chunk),这些块被存储在带区组上,该用户数据散布在多个磁盘上而不存在数据冗余。RAID-1等价于常规的“影像(shadowing)”或“镜像(mirror)”技术,并且是获得数据冗余最简单的办法,其通过对于每个磁盘都具有容纳相同数据的另一磁盘并且同时向两个磁盘写数据来获得数据冗余。RAID-0和RAID-1的组合通常被称作RAID-0+1,是通过分带影像组实现的,从而得到该两种RAID级别的相对的性能优点。RAID-2采用了被写在RAID组的成员上的汉明码(Hamming Code),其现在被认为并不很重要。在RAID-3中,数据被分带在一组磁盘上,其中添加了用于保存奇偶校验数据的单独的专用盘。随着将用户数据写到其它盘而动态地计算奇偶校验数据,以便如果盘失效允许重构初始的用户数据而无需一个比特一个比特地复制数据。错误检验和纠正码(“ECC”)诸如异或(“XOR”)或者更复杂的里得-所罗门(Reed-Solomon)技术之类可以用来对二进制数据执行必要的数学计算以得到RAID-3和更高级别实现中的奇偶校验信息。虽然奇偶校验在盘失效的情况下允许重构用户数据,但是这种重构的速度是系统负载和所使用的特定算法的函数。与RAID-3类似,称作RAID-4的RAID方案由N个数据盘和一个奇偶校验盘组成,其中奇偶校验盘扇区包含每个数据盘上相应扇区的逐位XOR。这使得在任一个盘失效的情况下RAID组中的数据内容可以保存。RAID-5是RAID-4的变型,其将奇偶校验分带在阵列中的所有磁盘上,以便使盘上的负载在统计上均衡。RAID-6的名称用来通俗地描述下述冗余和复杂的ECC技术的RAID方案,其通过使用两个奇偶校验驱动器(通常称为“P”和“Q”驱动器)可以容忍两个磁盘失效而不丢失数据。尽管术语“奇偶校验”用于描述RAID-6技术中使用的码,但是这些码更恰当地说是一种ECC码而不仅仅是奇偶校验码。数据和ECC信息被分带在RAID组的所有成员上并且写性能通常低于RAID-5,这是因为在写操作期间三个单独的驱动器必须每个都被访问两次。不过,取决于所使用的“奇偶校验”驱动器的数目,RAID-6的原理可用于恢复多个驱动器失效。某些RAID-6实现是基于里得-所罗门算法的,该算法依赖于伽罗华域(Galois Field)算术。对伽罗华域算术及RAID-6背后的数学的全面解释可以在各种资源中找到,因而,下面仅提供简单概述作为背景。RAID-6实现中所使用的伽罗华域算术发生在GF(2N)中。这是具有GF(2)中的系数的多项式对某N阶生成多项式取模得到的域。该域中的所有多项式为N-1或者更小阶,并且它们的系数都是0或者1,这意味着它们可以用全部在{0,1}中的N个系数的向量表示;即,这些多项式“看”起来就象N位的二进制数。该域中的多项式加法只是N比特XOR运算,其具有该域的每个元素是其自身的加性逆元(additive inverse)的属性,所以加法和减法是相同的运算。但是,该域中的多项式乘法可以利用基于对数的查表技术或者利用简单的组合逻辑来进行。每个RAID-6校验码(即,P和Q)表示RAID-6阵列的数据盘上的数据与校验盘之一或者两者上的数据之间的不变关系或者公式。如果存在C个校验码并且一组F盘失效,F≤C,则可以通过选择这些公式中的F个公式并且在GF(2N)中同时对这些公式求解F个丢失的变量而重构失效磁盘。在目前所实现或者构思的RAID-6系统中,仅有2个校验盘,即校验盘P和校验盘Q。值得注意的是,校验盘P和Q对于阵列上数据和奇偶校验的每个带区都发生变化,从而校验数据并不写入专用盘而是相反分带在所有的盘上。即使在不同系统中通过不同方式以不同成功程度地实现了RAID-6,仍然存在改进提供数据存储的RAID-6保护的效率和成本的持续需求。实现RAID-6的数学涉及重复性的复杂计算。据此,在现今和未来,努力改进实现RAID-6所需的电路的简易性、电路的成本、电路的效率仍是优先考虑的问题。例如,与现有RAID-6系统相关联的一个缺点涉及到从异常事件(诸如意外掉电、介质错误或者存储设备失效等)中恢复,这使保持数据和奇偶校验同步变得复杂。特别是,在奇偶校验更新操作期间,其中将新数据写到磁盘阵列中的盘中并且据此更新该相关联的奇偶校验带区的奇偶校验,存在下面的危险,即该操作可能在完成之前在中间点被中断。例如,在RAID-6环境中,奇偶校验更新操作通常包括下述操作读入将被新数据覆盖的旧数据、对旧数据与新数据执行XOR运算以创建增量(delta)值、将新数据写到磁盘阵列中、将增量值乘以常数K1、读取旧的P奇偶校验值并且对其与该增量值与常数K1的乘积执行XOR运算以产生新的P奇偶校验值、将新的P奇偶校验值写到磁盘阵列中、将增量值乘以常数K2、读取旧的Q奇偶校验值并且对其与该增量值与常数K2的乘积执行XOR运算以产生新的Q奇偶校验值、将新的Q奇偶校验值写到磁盘阵列中。在上述步骤完成之前中断奇偶校验更新操作常常导致奇偶校验和数据变得不同步(out of sync),以及具有使数据、奇偶校验或者两者出错的危险。此外,当一个磁盘阵列处于暴露(expose)状态,即,其中存储在至少一个磁盘上的数据或者奇偶校验不再可信或者不再可用时,则从中断中恢复变得更麻烦。例如,如果在RAID-6磁盘阵列中一个磁盘暴露,则从针对另一磁盘的奇偶校验更新操作中断中恢复不能依赖于存储在暴露的磁盘上的数据,这是因为这些数据不可信或者不可用。
技术实现思路
本专利技术通过在执行操作期间存储与奇偶校验更新操作的状态相关联的数据从而可以使用所存储的数据启动恢复,来解决现有技术相关的上述以及其它问题。特别地,与本专利技术一致的实施例在奇偶校验更新操作期间维护指示奇偶校验更新操作的状态的状态指示符,并且在奇偶校验更新操作期间捕捉快照数据并且将该快照数据存储在非易失存储器中。然后,如果奇偶校验更新操作被中断,则关于从被中断的奇偶校验更新操作中恢复,状态指示符和快照数据可以用来使磁盘阵列中的奇偶校验和数据同步。附图说明图1是根据本发本文档来自技高网
...

【技术保护点】
一种在磁盘阵列系统中存储数据的方法,所述方法包括下述步骤:与存储新数据相关联地启动奇偶校验更新操作;在奇偶校验更新操作期间维护状态指示符,该状态指示符指示奇偶校验更新操作的状态;在奇偶校验更新操作期间捕捉快照数据;以 及将快照数据存储在非易失存储器中。

【技术特征摘要】
US 2004-11-19 10/994,0971.一种在磁盘阵列系统中存储数据的方法,所述方法包括下述步骤与存储新数据相关联地启动奇偶校验更新操作;在奇偶校验更新操作期间维护状态指示符,该状态指示符指示奇偶校验更新操作的状态;在奇偶校验更新操作期间捕捉快照数据;以及将快照数据存储在非易失存储器中。2.如权利要求1所述的方法,其中,所述奇偶校验更新操作包括更新该新数据;更新与该新数据相关联的第一奇偶校验值;以及更新与该新数据相关联的第二奇偶校验值。3.如权利要求2所述的方法,其中,所述状态指示符包括至少三个状态,其第一状态指示新数据可疑,其第二状态指示第一奇偶校验值可疑,以及其第三状态指示第二奇偶校验值可疑。4.如权利要求1所述的方法,其中,启动奇偶校验更新操作是在除正被写入新数据的磁盘之外的盘暴露时执行的。5.如权利要求4所述的方法,其中,所述状态指示符包括指示奇偶校验值可疑但是快照数据可用的状态。6.如权利要求1所述的方法,其中,所述维护步骤还包括下述步骤将状态指示符存储在非易失存储器中;以及随着奇偶校验更新操作进行将状态指示符更新为多个状态之一。7.如权利要求1所述的方法,其中,所述快照数据包括增量值,该数据值指示该新数据与正被该新数据覆盖的旧数据之间的差。8.如权利要求1所述的方法,还包括下述步骤获得信号灯以保护该状态指示符和快照数据。9.如权利要求1所述的方法,其中,所述维护步骤包括在非易失存储器中创建奇偶校验更新足迹的步骤,该足迹包括状态指示符。10.如权利要求1所述的方法,其中,所述快照数据被存储在其上正执行该奇偶校验更新操作的磁盘上的预定位置中。11.如权利要求1所述的方法,还包括下述步骤确定所述奇偶校验更新操作在完成之前被中断;以及基于该确定,使用状态指示符和快照数据中的至少一个来使磁盘阵列系统中的数据和奇偶校验信息同步。12.如权利要求11所述的方法,其中,所述同步的步骤包括下述操作中的至少一个使用磁盘阵列系统中的其它磁盘重新生成数据盘;以及使用磁盘阵列系统中的其它磁盘重新生成奇偶校验值。13.如权利要求1所述的方法,还包括下述步骤确定奇偶校验更新操作是在第一磁盘暴露并且奇偶校验值可疑的状态下被中断的;以及基于该确定,使用状态指示符和快照数据使磁盘阵列系统中的数据与奇偶校验同步。14.如权利要求13所述的方法,其中所述快照数据包括指示新数据与正被新数据覆盖的旧数据之间的差的增量值,并且所述同步的步骤还包括下述步骤基于该增量值和新数据计算旧数据;将旧数据写到磁盘阵列系统的盘中;以及使用该旧数据重建奇偶校验值。15.如权利要求14所述的方法,还包括下述步骤基于状态指示符确定奇偶校验更新操作的状态;以及从非易失存储器中恢复该增量值。16.如权利要求1所述的方法,其中,所述磁盘阵列系统包括RAID-6系统。17.一种程序产品,包括程序代码,被配置成在执行时与将新数据存储在磁盘阵列系统中的磁盘上相关联启动奇偶校验更新操作;在奇偶校验更新操作期间维护状态指示符,该状态指示符指示奇偶校验更新操作的状态;在奇偶校验更新操作期间捕捉快照数据;以及将快照数据存储在非易失存储器中;以及承载程序代码的计算机可读信号承载介质。18.如权利要求17所述的程序产品,其中,所述程序代码还被配置成在非易失存储器中创建奇偶校验更新足迹,该足迹包括状态指示符;以及随着所述更新操作进行将状态指示符改变为多个...

【专利技术属性】
技术研发人员:卡尔E福汉罗伯特E盖尔布雷斯阿德里安C格哈德
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有1条评论
  • 来自[天津市电信IDC机房] 2015年02月17日 18:12
    磁盘阵列(RedundantArraysofIndependentDisks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
    0
1