磁盘阵列恢复数据时增加磁盘访问并行性的方法和系统技术方案

技术编号:2853079 阅读:215 留言:0更新日期: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设计对于每个奇偶校验带区依赖于两个奇偶校验值,所以对于每个奇偶校验带区前述处理通常必须执行两遍以生成两个奇偶校验值并且将其写到磁盘阵列中。同样,为重构暴露的磁盘,每个奇偶校验带区的数据必须从所有其它磁盘中读出并且用来以与用于再同步的乘法操作及异或运算类似的方式求解奇偶校验带区方程式。求解奇偶校验带区方程式的结果是被写回到暴露磁盘中的数据。此外,对于诸如暴露模式的读操作之类的其它暴露模式的操作,虽然无需将奇偶校验带区方程式的结果存储回磁盘阵列,但是必须执行与重构操作类似的处理。但是,在这些暴露模式的操作的每个中,从某些磁盘读数据以及向某些磁盘写数据的需求导致相当大的性能开销,相对于磁盘阵列上各种磁盘访问操作的顺序本性来说尤其如此。因而非常需要一种提高诸如RAID-6系统的磁盘阵列系统的性能以提高关于再同步、重构以及其它暴露模式的操作的性能的方式。
技术实现思路
本专利技术通过许多技术解决了与现有技术相关联的上述和其它问题,上述本专利技术的技术个别地或整体地增加关于访问磁盘阵列中的磁盘的并行性,并且由此降低了与诸如再同步、重构和暴露模式的读操作之类的暴露模式的操作相关联的性能开销。例如,在一个方面,出于求解奇偶校验带区方程式的目的对磁盘阵列中磁盘的访问(例如,关于重构,暴露模式的读或其它暴露模式的操作)可以通过仅选择求解该本文档来自技高网
...

【技术保护点】
一种访问包括N个磁盘的磁盘阵列的方法,该方法对于磁盘阵列中所定义的多个奇偶校验带区的每个执行下述步骤:从N个磁盘中选择要用于求解该奇偶校验带区的奇偶校验带区方程式的不同磁盘子集,其中每个磁盘子集包括至多N-2个磁盘;启动仅从 所选择的磁盘子集中检索与该奇偶校验带区相关联的数据的操作;以及使用所检索的数据求解奇偶校验带区方程式。

【技术特征摘要】
US 2004-11-19 10/994,0981.一种访问包括N个磁盘的磁盘阵列的方法,该方法对于磁盘阵列中所定义的多个奇偶校验带区的每个执行下述步骤从N个磁盘中选择要用于求解该奇偶校验带区的奇偶校验带区方程式的不同磁盘子集,其中每个磁盘子集包括至多N-2个磁盘;启动仅从所选择的磁盘子集中检索与该奇偶校验带区相关联的数据的操作;以及使用所检索的数据求解奇偶校验带区方程式。2.如权利要求1所述的方法,其中,所述选择步骤包括随机选择磁盘子集的步骤。3.如权利要求1所述的方法,其中,所述磁盘阵列属于其中由多个奇偶校验带区方程式使每个奇偶校验带区中的数据相关的类型。4.如权利要求1所述的方法,其中所述磁盘阵列包括RAID-6系统。5.如权利要求1所述的方法,其中,所述求解奇偶校验带区方程式的步骤包括重构数据值,该方法还包括启动将数据值存储到除了该磁盘子集外的磁盘之一的操作。6.如权利要求1所述的方法,还包括在启动检索与第二奇偶校验带区相关联的数据的操作的同时,启动存储对于第一奇偶校验带区的奇偶校验带区方程式的结果的操作。7.一种恢复N个磁盘的RAID-6系统中的数据的方法,该方法包括下述步骤标识多个数据值,每个数据值要被恢复到N个磁盘中的相应一个,其中每个数据值能够从取自其它N-2个磁盘的数据中恢复;以及对于该多个数据值的每个,从相应的其它N-1个磁盘中选择用于计算该数据值的N-2个磁盘;对于该多个数据值的每个,启动从相应的所选择的N-2个磁盘检索数据的操作,其中,对于该多个数据值的每个选择N-2个磁盘的操作平衡在数据恢复期间N个磁盘的利用率。8.如权利要求7所述的步骤,其中所述选择N-2个磁盘的步骤包括随机地选择N-2个磁盘。9.一种程序产品,包括程序代码,其被配置成在执行时通过下述操作访问包括N个磁盘型的磁盘阵列对于磁盘阵列中所定义的多个奇偶校验带区的每个,从N个磁盘中选择要用于求解该奇偶校验带区的奇偶校验带区方程式的不同磁盘子集;启动仅从所选择的磁盘子集中检索与该奇偶校验带区相关联的数据的操作;以及使用所检索的数据求解奇偶校验带区方程式,其中每个磁盘子集包括至多N-2个磁盘;以及承载该程序代码的计算机可读信号承载介质。10.一种装置,包括被配置成耦接到磁盘阵列中的至少N个磁盘的接口;以及耦接到该接口的磁盘阵列控制器,该磁盘阵列控制器被配置成执行下述操作对于磁盘阵列中所定义的多个奇偶校验带区的每个,从N个磁盘中选择要用于求解该奇偶校验带区的奇偶校验带区方程式的不同磁盘子集;启动仅从所选择的磁盘子集中检索与该奇偶校验带区相关联的数据的操作;以及使用所检索的数据求解奇偶校验带区方程式,其中每个磁盘子集包括至多N-2个磁盘。11.如权利要求10所述的装置,其中所述磁盘阵列控制器包括RAID-6控制器。12.如权利要求10所述的装置,其中,所述磁盘阵列控制器包括被配置成执行选择不同子集、启动数据的检索和求解奇偶校验带区方程式操作中的至少一个操作的程序代码。13.如权利要求10所述的装置,还包括耦接到该接口的多个磁盘。14.如权利要求10所述的装置,其中,所述磁盘阵列控制器被配置成通过随机选择磁盘子集来选择不同的磁盘子集。15.如权利要求10所述的装置,其中,所述磁盘阵列控制器被配置成通过重构数据值求解奇偶校验带区方程式,以及启动将数据值存储到除了该磁盘子集外的磁盘之一的操作。16.如权利要求10所述的装置,其中,所述磁盘阵列控制器还被配置成在启动检索与第二奇偶校验带区相关联的数据的操作的同时,启动存储对于第一奇偶校验带区的奇偶校验带区方程式的结果的操作。17.一种恢复包括多个磁盘的磁盘阵列中的数据的方法,该方法包括下述步骤从磁盘阵列中读取与第一奇偶校验带区相关联的第一组数据;向磁盘阵列中写入通过处理该第一组数据而生成的结果值;以及在将该结果值写入磁盘阵列的同时,从磁盘阵列中读取与第二奇偶校验带区相关联的第二组数据。18.如权利要求17所述的方法,还包括向磁盘阵列中写入通过处理该第二组数据而生成的第二结果值;以及在将该第二结果值写入磁盘阵列的同时,从磁盘阵列中读取第三组数据。19...

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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1