CN100390746C - 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统 - Google Patents

提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统 Download PDF

Info

Publication number
CN100390746C
CN100390746C CNB2005101267237A CN200510126723A CN100390746C CN 100390746 C CN100390746 C CN 100390746C CN B2005101267237 A CNB2005101267237 A CN B2005101267237A CN 200510126723 A CN200510126723 A CN 200510126723A CN 100390746 C CN100390746 C CN 100390746C
Authority
CN
China
Prior art keywords
parity
stored
impact damper
value
constant
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
CNB2005101267237A
Other languages
English (en)
Other versions
CN1776636A (zh
Inventor
卡尔·E·福汉
罗伯特·E·盖尔布雷斯
阿德里安·C·格哈德
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1776636A publication Critical patent/CN1776636A/zh
Application granted granted Critical
Publication of CN100390746C publication Critical patent/CN100390746C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Abstract

本发明提供提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统,其中在对磁盘阵列中的奇偶校验带区进行奇偶校验更新期间,对有限域算术中所使用的常数值进行代数组合,以便减少在数据中发生变化时为更新多个奇偶校验值所需的缓冲器和步骤的数目。例如,在一种实现中,存储与数据变化相关联的增量值与第一常数的乘积的缓冲器的内容,被乘以代表第二常数与第一常数的比率的值,其中该第一常数用于更新第一奇偶校验值,该第二常数用于更新第二奇偶校验值。

Description

提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统
本申请涉及下述由Carl Edward Forhan、Robert Edward Galbraith和Adrian Cuenin Gerhard于同一天提交的美国专利申请:“MEHTOD AND SYSTEMFOR ENHANCED ERROR IDENTIFICATION WITH DISK ARRAY PARITYCHECKING”,“RAID ENVIRONMENT INCORPORATING HARDWARE-BASED FINITE FIELDMULTIPLIER FOR ON-THE FLY XOR”,“METHOD AND SYSTEM FOR INCREASINGPARALLELISM OF DISK ACCESSES WHEN RESTORING DATA IN A DISK ARRAY SYSTEM”和“METHOD AND SYSTEM FOR RECOVERING FROM ABNORMAL INTERRUPTION OF APARITY UPDATE OPERATION IN A DISK ARRAY SYSTEM”。这些申请的每个并入本文以供参考。
技术领域
本发明涉及用于数据存储的数据保护方法,尤其涉及实现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-5设计中,奇偶校验更新操作通常需要首先将待更新的旧数据从适当的磁盘中取出并且将其与新数据比较(例如,通过对新数据和旧数据进行XOR运算)来计算增量值Δ。该增量值Δ然后用于例如通过对旧奇偶校验值与增量值Δ进行XOR运算来更新该奇偶校验。
公知地,在RAID-5奇偶校验更新期间所执行的两个XOR运算可以仅使用两个缓冲器来实现。具体地,第一缓冲器可以用于最初存储待写入的新数据,而第二缓冲器用于存储增量值Δ,该增量值Δ是由存储在第一缓冲器中的新数据与从适当的磁盘中取出的旧数据(数据可以直接输入到XOR逻辑,从而不需要被缓冲)的XOR运算生成的。一旦将新数据写入适当的磁盘,该第一缓冲器然后可以重新用于存储存储在第二缓冲器的增量值Δ与从适当的磁盘取出的旧奇偶校验值(也可以直接输入到XOR逻辑而无需缓冲)之间XOR运算的结果。在该第二XOR运算之后,该第一缓冲器存储新奇偶校验值,该新奇偶校验值然后可以从该第一缓冲器中读出并且被写入到适当的磁盘中。
另一方面,在其中两个磁盘包括每个奇偶校验带区的奇偶校验数据的RAID-6环境中,奇偶校验更新操作通常需要至少一个额外的缓冲器来存储与这样的操作相关联的中间数据。具体地,在RAID-6奇偶校验更新仍然需要计算增量值Δ的同时,对给定的奇偶校验带区更新两个奇偶校验值要求该增量值Δ乘以或缩放(scale)下述不同的常数,该不同的常数分别与不同的奇偶校验带区方程式相关联,该方程式将奇偶校验值与该奇偶校验带区方程式中的数据相联系。这些不同的常数通常表示为常数K1和K2,同样地,奇偶校验带区的一个奇偶校验值P通常通过对旧奇偶校验值P与常数K1和增量值Δ的乘积(即,K1Δ)进行XOR运算来计算得到,而同一奇偶校验带区的另一奇偶校验值Q通常通过对旧奇偶校验值Q与常数K2和增量值Δ的乘积(即,K2Δ)进行XOR运算来计算得到。
在常规的RAID-6实现中,使用了三个或者更多的缓冲器,其中第一缓冲器最初存储待写入的新数据,第二缓冲器用于存储增量值Δ,该增量值Δ由存储在第一缓冲器中的新数据与从适当磁盘取出的旧数据的XOR运算生成。由于两个奇偶校验值都需要该增量值Δ,所以使用第三缓冲器来存储存储在第二缓冲器中的增量值Δ与常数K1的乘积K1Δ。同样,与RAID-5实现类似,在将新数据写入适当的磁盘之后,该第一缓冲器重新用于存储存储在第三缓冲器中的乘积K1Δ与从适当的磁盘取出的旧奇偶校验值P之间XOR运算的结果,该结果然后作为新奇偶校验值P被写回到该适当的磁盘中。为了更新奇偶校验值Q,在更新奇偶校验值P后,然后重新使用第三缓冲器来存储存储在第二缓冲器中的增量值Δ与常数K2的乘积K2Δ,然后重新使用第一缓冲器来存储现在存储在第三缓冲器中的乘积K2Δ与从适当磁盘取出的旧奇偶校验值Q之间的XOR运算的结果。然后将现在存储在第一缓冲器中的该结果作为新奇偶校验值Q写回到适当的磁盘中。
但是,为RAID-6奇偶校验更新使用三个缓冲器比RAID-5设计所需的两个缓冲器增加了50%的缓冲器需求。结果是,在缓冲器的数目受限的情况下,与RAID-5设计相比RAID-6设计通常只有2/3数目的奇偶校验更新操作处于进行中,从而减少了吞吐量并且限制了总体性能。
发明内容
本发明通过下述操作解决了与现有技术相关联的上述及其它问题,该操作为代数上组合在更新奇偶校验带区的多个奇偶校验值中所使用的多个常数值从而在生成一个奇偶校验值的过程中所使用的乘积可以有效地从在生成其它奇偶校验值中所使用的乘积中得出。通过这样做,无需为计算每个乘积在缓冲器中单独存储为两个乘积共有的增量值,从而消除了对这样的缓冲器的需求。结果是,可以利用较少数目的所需缓冲器来执行对多个奇偶校验值进行的奇偶校验更新,从而限制了与缓冲器相关联的瓶颈,并提高了总体吞吐量和性能。
作为示例,在一个其中通过将旧P值、旧Q值与单独的乘积K1Δ、K2Δ进行XOR运算计算得到P值、Q值的、与本发明一致的示例性RAID-6实现中,乘积K2Δ是通过将乘积K1Δ乘以代表K2和K1的比率(即,K2/K1)的值(本文用K3表示)而从乘积K1Δ中得到的。结果是,消除了对存储用在计算每个乘积K1Δ、K2Δ的增量值的单独缓冲器的需要。
因而,与本发明一致,与将新数据存储在奇偶校验带区中相关联地更新磁盘阵列中奇偶校验带区的奇偶校验值,其中该磁盘阵列属于其中奇偶校验带区至少包括第一奇偶校验值和第二奇偶校验值的类型,该第一奇偶校验值和第二奇偶校验值通过至少一个奇偶校验带区方程式与存储在奇偶校验带区中的数据相关,其中该第一奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第一常数而被更新,以及其中该第二奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第二常数而被更新。通过下述操作更新该奇偶校验值:将第一值存储在第一缓冲器中,该第一值代表第一常数与增量值的乘积,该增量值代表该新数据与先前存储在奇偶校验带区中的旧数据之间的差,使用存储在第一缓冲器中的第一值更新该第一奇偶校验值,将第二值存储在第二缓冲器中,该第二值代表存储在第一缓冲器中的第一值与第三常数的乘积,该第三常数代表第二常数对第一常数的比率,以及使用存储在第二缓冲器中的第二值更新该第二奇偶校验值。
附图说明
图1是根据本发明的原理的、可以实现RAID-6存储控制器的示例性计算机系统的框图。
图2是图示图1的RAID控制器的主要组件的框图。
图3是与本发明一致的示例性奇偶校验更新操作的流程图。
具体实施方式
下文中讨论的实施例通过下述操作减少了在RAID-6和类似的环境中执行奇偶校验更新所需的缓冲器的数目,即,代数上组合(algebraicallycombined)在更新奇偶校验带区的多个奇偶校验值中所使用的多个常数值从而在生成一个奇偶校验值的过程中所使用的乘积可以有效地从在其它奇偶校验值的生成中所使用的乘积中得出。通过这样做,通常消除了单独存储增量值的需要,从而减少了缓冲器需求并且提高了性能,该增量值代表奇偶校验带区中新数据与旧数据之间的差。
下文中给出了与本发明一致的奇偶校验更新操作的磁盘阵列环境的多个实施例。但是,在讨论这样的实施例之前,首先提供RAID-6的背景简述,随后是对可以实现与本发明一致的奇偶校验更新操作的示例性硬件环境的描述。
一般RAID-6背景
这里用来描述RAID-6存储系统的专用术语符合本领域最易于接受的标准。特别地,存在N个驱动器,其中任何两个将被认为是奇偶校验驱动器,P和Q。利用伽罗华域算术,可以写出两个独立方程式:
α0d00d10d2+...+α0dN-1=0       (1)
α0d01d12d2+...+αN-1dN-1=0    (2)
其中,这里所采用的“+”运算符表示异或(Exclusive-OR,XOR)操作。
在这些方程式中,αX是有限域的元素,dX是来自第X个磁盘的数据。虽然P和Q盘对于数据的任意特定带区可以是N个磁盘的任一个,但是它们通常用dP和dQ表示。当更新磁盘之一的数据(即,dX)时,上面的两个方程式分解为:
Δ=(旧dX)+(新dX)      (3)
(新dP)=(旧dP)+((αQX)/(αPQ))Δ     (4)
(新dQ)=(旧dQ)+((αPX)/(αPQ))Δ     (5)
在最后两个方程式的每个中,加号右边的项是常数乘以数据中的变化(即,Δ)。方程式(4)和(5)的这些项通常分别表示为K1Δ和K2Δ。
在一个磁盘丢失或不可用的情况下,可以采用简单的XOR运算来恢复该磁盘的数据。例如,如果d1失效则可如下恢复d1
d1=d0+d1+d2+...(6)
在两个磁盘失效或者被“暴露”的情况下,上面的方程式可以用来恢复磁盘的数据。例如,给定磁盘0到X并且假设磁盘A和B失效了,则该两个磁盘的任一磁盘的数据可以从剩余的磁盘中恢复。例如,如果要恢复磁盘A,则上面的方程式变为:
dA=((αB0)/(αBA))d0+((αB1)/(αBA))d1+...+((αB0)/(αBA))dX    (7)
示例性硬件环境
在脑海中有了RAID-6的一般背景知识之后,可以将注意力转向附图,其中在几个附图中相同的附图标记表示系统的部件。图1图示了可以实现RAID-6或其它磁盘阵列的示例性计算机系统。为了本发明的目的,装置10可以实际上代表任何类型的计算机、计算机系统或者其它可编程的电子设备,包括客户端计算机、服务器计算机、便携式计算机、手持式计算机、嵌入式控制器等。此外,装置10可以采用例如集群式或分布式计算系统中的一个或多个联网的计算机来实现。下文中将称装置10为“计算机”,不过应该理解术语“装置”也可以包括与本发明一致的其它适当的可编程电子设备。
计算机10通常包括至少一个耦接到存储器14的处理器12。处理器12可以表示一个或多个处理器(例如,微处理器),存储器14可以表示随机存取存储器(RAM)设备,包括计算机10的主存以及任何辅助级别的存储器,例如高速缓存存储器、非易失或者备用存储器(例如,可编程或者闪存存储器)、只读存储器等。此外,存储器14可以视为包括物理上位于计算机10中别处的存储器存储,例如,处理器12中的任何高速缓存存储器以及用作虚拟存储器的任何存储容量,例如存储在磁盘阵列34上或者经由网络18存储在耦接到计算机10的另一台计算机(例如,客户端计算机20)上。
计算机10通常还接收多个输入和输出以与外部交换信息。对于与用户或者操作员的接口,计算机10通常包括一个或多个用户输入设备22(例如,其中有键盘、鼠标、跟踪球、操纵杆、触摸板和/或麦克风)以及显示器24(例如,其中有CRT显示器、LCD显示面板和/或扬声器)。此外,用户输入可以经由在网络上与计算机10连接的另一台计算机(例如,计算机20)或者经由专用工作站接口等接收。
对于额外的存储设备,计算机10还可以包括经由存储控制器或者适配器16存取的一个或多个大容量存储设备,例如,其中有可移动磁盘驱动器、硬盘驱动器、直接存取存储设备(DASD)、光盘驱动器(例如,CD驱动器,DVD驱动器,等等)和/或磁带驱动器。此外,计算机10可以包括与一个或多个网络18(例如,LAN、WAN、无线网和/或因特网)的接口以允许与耦接到网络的其它计算机交换信息。应该理解,如本领域公知的,计算机10通常包括处理器12与组件14、16、18、22、24的每个之间的适当的模拟和/或数字接口。
根据本发明的原理,大容量存储器控制器16有利于实现磁盘阵列34中的RAID-6存储保护。
计算机10在操作系统30的控制下运行,并且执行或者反之依赖于各种计算机软件应用程序、组件、程序、对象、模块、数据结构等等(例如,软件应用程序32)。此外,各种应用程序、组件、程序、对象、模块等等也可以在例如分布式或者客户机/服务器计算环境下在经由网络18耦接到计算机10的另一台计算机中的一个或多个处理器上执行,由此为实现计算机程序的功能所需的处理可以被分配到网络上的多台计算机上。
通常,为实现本发明实施例所执行的例程(不管被实现为操作系统的一部分或者特定应用程序,组件,程序,对象,模块或者指令序列,或者甚至为其子集)本文中都称之为“计算机程序代码”或者简称“程序代码”。程序代码通常包括一个或多个指令,其在各个时间驻留于计算机中的各种存储器或者存储设备中,并且当被计算机中的一个或多个处理器读取并执行时使得该计算机执行下述步骤,这些步骤是执行具体化本发明各个方面的步骤或者元件所必需的。此外,虽然本发明是在并且将继续在完全运行计算机和计算机系统功能的语境下描述的,但是本领域的技术人员将理解,本发明的各种实施例能够作为各种形式的程序产品而分发,并且不管用于实际携带该分发的计算机可读信号承载介质的具体类型如何本发明都同等适用。计算机可读信号承载介质的示例包括但不限于可记录型介质和诸如数字和模拟通信链路的传输型介质,可记录型介质例如其中有易失和非易失存储设备、软盘和其它可移动盘、硬盘驱动器、磁带、光盘(例如,CD-ROM,DVD,等等)。
此外,下文中描述的各种程序代码可以基于其中在本发明的特定实施例中实现的应用程序来标识。但是,应该理解,跟随的任何特定程序专用术语仅出于便利而使用,因而本发明不应限于仅用于由这样的专用术语标识和/或暗示的任何特定应用程序中。此外,给定通常无数的藉之可以将计算机程序组织成例程、过程、方法、模块、对象等等的方式,以及给定藉之将程序功能分配于驻留于特定计算机的各种软件层(例如,操作系统,库,API,应用程序,java应用小程序(applet),等等)中的各种方式,应该理解,本发明并不限于这里所描述的程序功能的特定组织和分配。
图2图示了磁盘阵列系统(例如RAID-6兼容系统)的控制子系统的框图。特别地,更详细地示出了图1的大容量存储控制器16包括RAID控制器202,该RAID控制器202通过系统总线208与处理器12耦接并且通过存储总线210耦接到各个磁盘驱动器212-218。如一名普通技术人员所熟知的,这些总线可以是本质上专有的或者遵循诸如SCSI-1、SCSI-2等工业标准的。RAID控制器包括执行下述程序代码的微处理器204,该程序代码实现用于数据保护的RAID-6算法并且通常驻留于位于RAID控制器的存储器中。特别地,要存储到磁盘212-218上的数据被用来产生奇偶校验数据,然后被拆开(break apart)并且分带于磁盘212-218上。磁盘驱动器212-218可以是直接通过总线210耦接到控制器202的单独磁盘驱动器或者可以包括其自身的磁盘驱动适配器,其允许一串单独磁盘驱动器连接到存储总线210。换言之,磁盘驱动器212可以在物理上实现为耦接到单个控制器的4或8个单独磁盘驱动器,该单个控制器连接到总线210。当数据在任一方向上在磁盘驱动器212-218和RAID控制器202之间交换时,提供缓冲器20以帮助数据传输。缓冲器206的使用有时可能在数据传输上产生瓶颈,并且众多缓冲器的引入可能增加RAID控制202的成本、复杂性和尺寸。这样,本发明的某些实施例涉及以经济有效的方式提供及利用这些缓冲器206。
应该理解,图1和图2中所示的实施例本质上仅是示例性的。例如,应该理解,本发明可适用于其中多个奇偶校验值与每个奇偶校验带区相关联的其它磁盘阵列环境。还应该理解,与本发明一致的磁盘阵列环境可以利用驻留于计算机的主存储器中的完全软件实现的控制算法,或者计算机或控制器中通过程序代码操纵的某些功能可以以硬件逻辑电路实现,反之亦然。因而,本发明不应限于这里所讨论的具体实施例。
减少用于RAID-6奇偶校验更新的缓冲器
在RAID 6系统中,对于每个普通的奇偶校验更新操作产生六个I/O操作。这些I/O操作可以总结如下:
1)从磁盘读旧数据dX
2)向磁盘写新数据dX
3)从磁盘读旧奇偶校验dP
4)向磁盘写新奇偶校验dP
5)从磁盘读旧奇偶校验dQ
6)向磁盘写新奇偶校验dQ
该新数据和奇偶校验值是根据方程式(3)、(4)、(5)计算得到。通常,这些操作需要如下面的表I所示的多个缓冲器。列表示三个不同的缓冲器A、B、C,而行是更新奇偶校验操作的不同的顺序步骤。
表I
  缓冲器A 缓冲器B   缓冲器C
  得到新数据d<sub>X</sub>
Δ=(旧d<sub>X</sub>)+A
  写新数据d<sub>X</sub>
  K<sub>1</sub>Δ=K<sub>1</sub>*B
  d<sub>P</sub>=(旧d<sub>P</sub>)+C
  写新奇偶校验d<sub>P</sub>
  K<sub>2</sub>Δ=K<sub>2</sub>*B
  d<sub>Q</sub>=(旧d<sub>Q</sub>)+C
  写新奇偶校验d<sub>Q</sub>
在上面的表中,加法(即XOR)步骤经由XOR引擎来执行,其中将不在缓冲器中的数据直接从驱动器读入XOR引擎中。与RAID-5相比,RAID-6的奇偶校验更新使用了额外的缓冲器,并且因而在缓冲器受限的环境中以约2/3的吞吐量运行。
据此,本发明的实施例包括不同的缓冲器配置,其改进了RAID-6环境中奇偶校验更新操作的吞吐量。特别地,不是在全部时间将增量值Δ保持在缓冲器B中,而是可以利用简单的代数学来在生成新奇偶校验dQ时计算增量值Δ。下面示出的表II表示对表I的修改,它图示了可以如何操纵乘积K1Δ和K2Δ的值或乘积(参考方程式(4)和(5))来减少RAID-6奇偶校验更新中对缓冲器的依赖。
表II
  缓冲器A   缓冲器B  缓冲器C
  得到新数据d<sub>X</sub>
  Δ=(旧d<sub>X</sub>)+A
  写新数据d<sub>X</sub>   未使用
  K<sub>1</sub>Δ=K<sub>1</sub>*B
  d<sub>P</sub>=(旧d<sub>P</sub>)+A
  写新奇偶校验d<sub>P</sub>
  K<sub>2</sub>Δ=K<sub>3</sub>*A
  d<sub>Q</sub>=(旧d<sub>Q</sub>)+B
  写新奇偶校验d<sub>Q</sub>
从该表II可见,定义并存储了值K3使得K3=K2/K1。将值K3与乘积K1Δ相乘时,结果等于K2Δ。这样,通过根据表II的简单代数操纵,仅使用两个缓冲器实现了RAID-6奇偶校验更新,这应该可以理解为通过限制由于受限的缓冲器需求而导致的瓶颈可以提高性能和吞吐量。
与表II类似,图3图示了在示例性RAID-6环境中在执行奇偶校验更新操作中涉及的步骤。在步骤302中,将磁盘dx的新数据取入缓冲器A,以及在步骤304中,通过将从磁盘dX取出的旧数据与缓冲器A的内容进行XOR运算计算得到增量值Δ并且将之存储在缓冲器B中。在步骤306中,将新数据从缓冲器A写到磁盘dX,以及在步骤308中,通过将缓冲器B的内容乘以常数K1计算得到第一值或乘积K1Δ并且将之存储在缓冲器A中。
在步骤310中,通过将从磁盘dP取出的旧奇偶校验P与缓冲器A的内容进行XOR运算计算得到新奇偶校验值P,以及在步骤312中,将该新奇偶校验值P写到磁盘dP中。然后,在步骤314中,通过将缓冲器A的内容乘以常数K3(设置为等于K2/K1)而计算得到第二值或乘积K2Δ,并且将之存储在缓冲器B中。然后,在步骤316中,通过将从磁盘dQ取出的旧奇偶校验Q与缓冲器B的内容进行XOR运算计算得到新奇偶校验值Q,以及在步骤318中,将该新奇偶校验值Q写到磁盘dQ中。于是完成了奇偶校验更新操作。
这样,本发明的实施例在其中多个奇偶校验值与每个奇偶校验带区相关联的RAID-6或类型环境中提供了一种利用较少数目的缓冲器执行奇偶校验更新的方法和系统。在不背离本发明的精神和范围的条件下可以对所示的实施例进行各种修改。因而,本发明在于所附的权利要求书。

Claims (20)

1.一种与将新数据存储在奇偶校验带区中相关联地更新磁盘阵列中的奇偶校验值的方法,其中该磁盘阵列属于其中奇偶校验带区至少包括第一奇偶校验值和第二奇偶校验值的类型,该第一奇偶校验值和第二奇偶校验值通过至少一个奇偶校验带区方程式与存储在奇偶校验带区中的数据相关,该第一奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第一常数而被更新,并且该第二奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第二常数而被更新,该方法包括下述步骤:
将第一值存储在第一缓冲器中,该第一值代表第一常数与增量值的乘积,该增量值代表该新数据与先前存储在奇偶校验带区中的旧数据之间的差;
使用存储在第一缓冲器中的第一值更新该第一奇偶校验值;
将第二值存储在第二缓冲器中,该第二值代表第三常数与存储在第一缓冲器中的第一值的乘积,该第三常数代表第二常数对第一常数的比率;以及
使用存储在第二缓冲器中的第二值更新该第二奇偶校验值。
2.如权利要求1所述的方法,还包括:
生成增量值;以及
用新数据更新奇偶校验带区。
3.如权利要求2所述的方法,还包括在将第一值存储在第一缓冲器中之前将增量值存储在第二缓冲器中的步骤,其中将第一值存储在第一缓冲器中的步骤包括从第二缓冲器中取出增量值并且将该增量值乘以第一常数。
4.如权利要求2所述的方法,其中,所述生成增量值的步骤包括对奇偶校验带区的新数据和旧数据进行XOR运算。
5.如权利要求1所述的方法,其中,所述更新第一奇偶校验值的步骤包括将第一奇偶校验值与存储在第一缓冲器中的第一值进行XOR运算。
6.如权利要求1所述的方法,其中,所述更新第二奇偶校验值的步骤包括将第二奇偶校验值与存储在第二缓冲器中的第二值进行XOR运算。
7.如权利要求1所述的方法,其中所述更新第一奇偶校验值的步骤是在将第二值存储在第二缓冲器中的步骤之前执行的。
8.如权利要求1所述的方法,其中,所述第一常数和第二常数是有限域常数。
9.如权利要求1所述的方法,其中,所述磁盘阵列包括RAID-6磁盘阵列。
10.一种与将奇偶校验带区的新数据存储到数据磁盘dx中相关联地更新与磁盘阵列中的奇偶校验带区相关的第一和第二奇偶校验值的方法,其中该第一和第二奇偶校验值分别存储在磁盘阵列中的第一和第二奇偶校验盘dP、dQ上,该方法包括下述步骤:
将奇偶校验带区的新数据存储在第一缓冲器中;
将增量值Δ存储在第二缓冲器中,该增量值Δ是通过将存储在第一缓冲器中的新数据与从数据磁盘dX取出的奇偶校验带区的旧数据进行XOR运算而计算得到的;
将奇偶校验带区的新数据从第一缓冲器写到数据磁盘dX中;
在将新数据写到数据磁盘dX之后,将第一值K1Δ存储在第一缓冲器中,该第一值K1Δ是通过将存储在第二缓冲器中的增量值Δ乘以第一常数K1而计算得到的,其中该第一常数K1是从至少一个与奇偶校验带区相关联的奇偶校验带区方程式中得到的;
在将第一值K1Δ存储在第一缓冲器中之后,将新的第一奇偶校验值存储在第二缓冲器中,该新的第一奇偶校验值是通过将存储在第一缓冲器中的第一值K1Δ与从奇偶校验磁盘dP取出的奇偶校验带区的旧的第一奇偶校验值进行XOR运算而计算得到的;
将存储在第二缓冲器中的该新的第一奇偶校验值写到奇偶校验盘dP中;
通过将第二常数K2除以第一常数K1计算得到第三常数K3,第二常数K2是从至少一个与奇偶校验带区相关联的奇偶校验带区方程式中得到的;
在将该新的第一奇偶校验值写到奇偶校验盘dP中之后,将第二值K2Δ存储在第二缓冲器中,该第二值K2Δ是通过将存储在第一缓冲器中的第一值K1Δ乘以第三常数K3而计算得到的;
在将该第二值K2Δ存储在第二缓冲器中之后,将新的第二奇偶校验值存储在第一缓冲器中,该新的第二奇偶校验值是通过将存储在第二缓冲器中的第二值K2Δ与从奇偶校验磁盘dQ取出的奇偶校验带区的旧的第二奇偶校验值进行XOR运算而计算得到的;以及
将存储在第一缓冲器中的该新的第二奇偶校验值写到奇偶校验盘dQ中。
11.一种装置,包括:
第一和第二缓冲器;以及
耦接到该第一和第二缓冲器并且被配置成与将新数据存储在奇偶校验带区中相关联地更新磁盘阵列中的奇偶校验值的磁盘阵列控制器,其中该磁盘阵列属于其中奇偶校验带区至少包括第一奇偶校验值和第二奇偶校验值的类型,该第一奇偶校验值和第二奇偶校验值通过至少一个奇偶校验带区方程式与存储在奇偶校验带区中的数据相关,该第一奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第一常数而被更新,该第二奇偶校验值能够基于该新数据使用从该至少一个奇偶校验带区方程式得出的第二常数而被更新,并且该磁盘阵列控制器被配置成执行下述操作:将第一值存储在第一缓冲器中,该第一值代表第一常数与增量值的乘积,该增量值代表该新数据与先前存储在奇偶校验带区中的旧数据之间的差;使用存储在第一缓冲器中的第一值更新该第一奇偶校验值;将第二值存储在第二缓冲器中,该第二值代表存储在第一缓冲器中的第一值与第三常数的乘积,该第三常数代表第二常数对第一常数的比率;以及使用存储在第二缓冲器中的第二值更新该第二奇偶校验值。
12.如权利要求11所述的装置,其中,所述磁盘阵列控制器包括RAID-6控制器。
13.如权利要求11所述的装置,还包括耦合到所述磁盘阵列控制器的多个磁盘。
14.如权利要求11所述的装置,其中,所述磁盘阵列控制器还被配置成生成增量值和用新数据更新奇偶校验带区。
15.如权利要求14所述的装置,其中所述磁盘阵列控制器还被配置成在将第一值存储在第一缓冲器中之前将增量值存储在第二缓冲器中,其中所述磁盘阵列控制器被配置成通过从第二缓冲器中取出增量值并且将该增量值乘以第一常数来将第一值存储在第一缓冲器中。
16.如权利要求14所述的装置,其中,所述磁盘阵列控制器被配置成通过对奇偶校验带区的新数据和旧数据进行XOR运算来生成增量值。
17.如权利要求11所述的装置,其中,所述磁盘阵列控制器被配置成通过将第一奇偶校验值与存储在第一缓冲器中的第一值进行XOR运算来更新第一奇偶校验值。
18.如权利要求11所述的装置,其中,所述磁盘阵列控制器被配置成通过将第二奇偶校验值与存储在第二缓冲器中的第二值进行XOR运算来更新第二奇偶校验值。
19.如权利要求11所述的装置,其中,所述磁盘阵列控制器被配置成在将第二值存储在第二缓冲器中之前更新第一奇偶校验值。
20.如权利要求11所述的装置,其中,所述第一常数和第二常数是有限域常数。
CNB2005101267237A 2004-11-19 2005-11-21 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统 Expired - Fee Related CN100390746C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/994,086 US7290199B2 (en) 2004-11-19 2004-11-19 Method and system for improved buffer utilization for disk array parity updates
US10/994,086 2004-11-19

Publications (2)

Publication Number Publication Date
CN1776636A CN1776636A (zh) 2006-05-24
CN100390746C true CN100390746C (zh) 2008-05-28

Family

ID=36575775

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101267237A Expired - Fee Related CN100390746C (zh) 2004-11-19 2005-11-21 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统

Country Status (2)

Country Link
US (2) US7290199B2 (zh)
CN (1) CN100390746C (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2503886A1 (en) * 2002-11-01 2004-05-13 Alk-Abello A/S Recombinant protein variants
TWI310497B (en) * 2004-02-06 2009-06-01 Hon Hai Prec Ind Co Ltd System and method for disk fault tolerance
TWI307836B (en) * 2004-07-02 2009-03-21 Hon Hai Prec Ind Co Ltd System and method for a plurality of disks fault tolerance efficienctly
US7392458B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US7343546B2 (en) * 2004-12-23 2008-03-11 Intel Corporation Method and system for syndrome generation and data recovery
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
WO2007012920A1 (en) * 2005-07-27 2007-02-01 Adaptec, Inc. Method and system for improving the performance of reed-solomon parity operations in redundant array of inexpensive disks
US9201939B2 (en) * 2006-06-02 2015-12-01 Salesforce.Com, Inc. Method and system for pushing data to a plurality of devices in an on-demand service environment
US7930586B1 (en) * 2008-02-07 2011-04-19 At&T Intellectual Property Ii, L.P. Error rate reduction for memory arrays
US8370717B1 (en) * 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
KR101562794B1 (ko) * 2009-08-04 2015-10-26 삼성전자주식회사 데이터 저장 장치
US9229808B2 (en) * 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
US8954668B2 (en) 2011-05-23 2015-02-10 International Business Machines Corporation Writing of data of a first block size in a raid array that stores and mirrors data in a second block size
US9043543B2 (en) * 2011-05-23 2015-05-26 International Business Machines Corporation Writing of new data of a first block size in a raid array that stores both parity and data in a second block size
US9213486B2 (en) * 2012-02-22 2015-12-15 International Business Machines Corporation Writing new data of a first block size to a second block size using a write-write mode
US10164655B2 (en) * 2015-09-25 2018-12-25 Western Digital Technologies, Inc. Cache oblivious algorithm for butterfly code
US9793922B2 (en) * 2015-09-25 2017-10-17 HGST Netherlands B.V. Repair-optimal parity code
KR20180040767A (ko) 2016-10-12 2018-04-23 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10152379B1 (en) * 2016-12-27 2018-12-11 EMC IP Holding Company LLP Efficient garbage collection for distributed storage with forward error correction
JP2020177501A (ja) * 2019-04-19 2020-10-29 株式会社日立製作所 ストレージシステム、そのドライブ筐体、およびパリティ演算方法。
KR20220142521A (ko) * 2020-02-20 2022-10-21 인텔 코포레이션 단방향 커맨드들을 이용한 온-ssd 소거 코딩
CN113296999B (zh) * 2021-05-20 2022-11-11 山东云海国创云计算装备产业创新中心有限公司 一种raid6编码方法及编码电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US6101615A (en) * 1998-04-08 2000-08-08 International Business Machines Corporation Method and apparatus for improving sequential writes to RAID-6 devices

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3688265A (en) * 1971-03-18 1972-08-29 Ibm Error-free decoding for failure-tolerant memories
USRE34100E (en) * 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5673412A (en) * 1990-07-13 1997-09-30 Hitachi, Ltd. Disk system and power-on sequence for the same
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5537379A (en) * 1991-05-10 1996-07-16 Discovision Associates Optical data storage and retrieval system and method
US5448719A (en) * 1992-06-05 1995-09-05 Compaq Computer Corp. Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure
JP2888401B2 (ja) * 1992-08-03 1999-05-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 冗長ディスクドライブアレイに対する同期方法
DE69434381T2 (de) * 1993-06-04 2006-01-19 Network Appliance, Inc., Sunnyvale Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US5754563A (en) * 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
US5720025A (en) * 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
JP3618529B2 (ja) * 1997-11-04 2005-02-09 富士通株式会社 ディスクアレイ装置
US6279050B1 (en) * 1998-12-18 2001-08-21 Emc Corporation Data transfer apparatus having upper, lower, middle state machines, with middle state machine arbitrating among lower state machine side requesters including selective assembly/disassembly requests
CA2403044A1 (en) * 2000-03-22 2001-09-27 Interwoven Inc. Method and apparatus for storing changes to file attributes without having to store an additional copy of the file contents
US6687872B2 (en) * 2001-03-14 2004-02-03 Hewlett-Packard Development Company, L.P. Methods and systems of using result buffers in parity operations
US6766480B2 (en) * 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
US6567891B2 (en) * 2001-03-14 2003-05-20 Hewlett-Packard Development Company, L.P. Methods and arrangements for improved stripe-based processing
US20020194427A1 (en) * 2001-06-18 2002-12-19 Ebrahim Hashemi System and method for storing data and redundancy information in independent slices of a storage device
US6836820B1 (en) * 2002-02-25 2004-12-28 Network Appliance, Inc. Flexible disabling of disk sets
US6944791B2 (en) * 2002-07-18 2005-09-13 Lsi Logic Corporation Method of handling unreadable blocks during write of a RAID device
US7028136B1 (en) * 2002-08-10 2006-04-11 Cisco Technology, Inc. Managing idle time and performing lookup operations to adapt to refresh requirements or operational rates of the particular associative memory or other devices used to implement the system
US7065609B2 (en) * 2002-08-10 2006-06-20 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including selectively determining which associative memory blocks to use in identifying a result and possibly propagating error indications
US7082492B2 (en) * 2002-08-10 2006-07-25 Cisco Technology, Inc. Associative memory entries with force no-hit and priority indications of particular use in implementing policy maps in communication devices
US6918007B2 (en) * 2002-09-09 2005-07-12 Hewlett-Packard Development Company, L.P. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US7426611B1 (en) * 2003-08-18 2008-09-16 Symantec Operating Corporation Method and system for improved storage system performance using cloning of cached data
JP2005115771A (ja) * 2003-10-09 2005-04-28 Hitachi Ltd ディスクアレイ装置
JP4288486B2 (ja) * 2003-11-17 2009-07-01 日本電気株式会社 ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US6101615A (en) * 1998-04-08 2000-08-08 International Business Machines Corporation Method and apparatus for improving sequential writes to RAID-6 devices

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于DSP的信道译码算法优化. 闫冬,王建国.单片机与嵌入式系统应用,第2期. 2004
基于DSP的信道译码算法优化. 闫冬,王建国.单片机与嵌入式系统应用,第2期. 2004 *

Also Published As

Publication number Publication date
US7290199B2 (en) 2007-10-30
US20080022150A1 (en) 2008-01-24
CN1776636A (zh) 2006-05-24
US20060123268A1 (en) 2006-06-08

Similar Documents

Publication Publication Date Title
CN100390746C (zh) 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统
CN100385405C (zh) 利用磁盘阵列奇偶校验的增强错误标识系统和方法
CN101059751B (zh) 磁盘阵列恢复数据时增加磁盘访问并行性的方法和系统
CN100388221C (zh) 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统
CN100345098C (zh) 磁盘阵列控制器及磁盘阵列环境中的运行方法
US20200295784A1 (en) Accelerated erasure coding system and method
JP3587667B2 (ja) 外部記憶サブシステムのパリティ記憶及びデータ修復方法
EP1953920B1 (en) RAID system and data recovery apparatus using galois field
US6282671B1 (en) Method and system for improved efficiency of parity calculation in RAID system
JP2000259359A (ja) Raid装置および記録媒体
Thomasian et al. A performance evaluation tool for RAID disk arrays
Thomasian Clustered RAID arrays and their access costs
US20190213076A1 (en) Systems and methods for managing digital data in a fault tolerant matrix
Wu et al. Code 5-6: An efficient mds array coding scheme to accelerate online raid level migration
Wu Improve the Performance and Scalability of RAID-6 Systems Using Erasure Codes

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
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120428

Address after: American California

Patentee after: Google Inc.

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080528

Termination date: 20191121

CF01 Termination of patent right due to non-payment of annual fee