CN100388221C - 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 - Google Patents
磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 Download PDFInfo
- Publication number
- CN100388221C CN100388221C CNB2005101267256A CN200510126725A CN100388221C CN 100388221 C CN100388221 C CN 100388221C CN B2005101267256 A CNB2005101267256 A CN B2005101267256A CN 200510126725 A CN200510126725 A CN 200510126725A CN 100388221 C CN100388221 C CN 100388221C
- Authority
- CN
- China
- Prior art keywords
- data
- parity
- disk
- new data
- status indicator
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000002159 abnormal effect Effects 0.000 title 1
- 230000001360 synchronised effect Effects 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 32
- 238000012423 maintenance Methods 0.000 claims 3
- 238000011084 recovery Methods 0.000 abstract description 13
- 230000002547 anomalous effect Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000000541 tocopherol-rich extract Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了在磁盘阵列系统中用于从奇偶校验更新操作的异常中断中恢复的系统和方法。在执行操作期间存储与诸如RAID-6系统之类的磁盘阵列系统中的奇偶校验更新操作的状态相关联的数据,从而如果操作被中断,则可以使用所存储的数据启动恢复。所存储的数据可以包括指示奇偶校验更新操作的状态的状态指示符以及在奇偶校验更新操作期间捕捉的快照数据(例如,指示新数据与旧数据之间差的增量值)。
Description
本申请涉及下述由Carl Edward Forhan、Robert Edward Galbraith和Adrian Cuenin Gerhard于同一天提交的美国专利申请:“METHOD AND SYSTEMFOR ENHANCED ERROR IDENTIFICATION WITH DISK ARRAY PARITY CHECKING”,“RAID ENVIRONMENT INCORPORATING HARDWARE-BASED FINITE FIELDMULTIPLIER FOR ON-THE FLY XOR”,“METHOD AND SYSTEM FOR IMPROVED BUFFERUTILIZATION FOR DISK ARRAY PARITY UPDATES”和“METHOD AND SYSTEM FORINCREASING PARALLELISM OF DISK ACCESSES WHEN RESTORING DATA IN A DISKARRAY 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-6环境中,奇偶校验更新操作通常包括下述操作:读入将被新数据覆盖的旧数据、对旧数据与新数据执行XOR运算以创建增量(delta)值、将新数据写到磁盘阵列中、将增量值乘以常数K1、读取旧的P奇偶校验值并且对其与该增量值与常数K1的乘积执行XOR运算以产生新的P奇偶校验值、将新的P奇偶校验值写到磁盘阵列中、将增量值乘以常数K2、读取旧的Q奇偶校验值并且对其与该增量值与常数K2的乘积执行XOR运算以产生新的Q奇偶校验值、将新的Q奇偶校验值写到磁盘阵列中。在上述步骤完成之前中断奇偶校验更新操作常常导致奇偶校验和数据变得不同步(out of sync),以及具有使数据、奇偶校验或者两者出错的危险。
此外,当一个磁盘阵列处于暴露(expose)状态,即,其中存储在至少一个磁盘上的数据或者奇偶校验不再可信或者不再可用时,则从中断中恢复变得更麻烦。例如,如果在RAID-6磁盘阵列中一个磁盘暴露,则从针对另一磁盘的奇偶校验更新操作中断中恢复不能依赖于存储在暴露的磁盘上的数据,这是因为这些数据不可信或者不可用。
发明内容
本发明通过在执行操作期间存储与奇偶校验更新操作的状态相关联的数据从而可以使用所存储的数据启动恢复,来解决现有技术相关的上述以及其它问题。特别地,与本发明一致的实施例在奇偶校验更新操作期间维护指示奇偶校验更新操作的状态的状态指示符,并且在奇偶校验更新操作期间捕捉快照数据并且将该快照数据存储在非易失存储器中。然后,如果奇偶校验更新操作被中断,则关于从被中断的奇偶校验更新操作中恢复,状态指示符和快照数据可以用来使磁盘阵列中的奇偶校验和数据同步。
附图说明
图1是根据本发明的原理的可以实现RAID-6存储控制器的示例性计算机系统的框图。
图2是图示图1的RAID控制器的主要组件的框图。
图3描绘了执行奇偶校验操作的四磁盘RAID-6阵列的示意图。
图4图示了根据本发明的原理在RAID-6环境下用于从奇偶校验更新操作的异常中断中恢复的示例性方法的流程图。
具体实施方式
下文中讨论的实施例在奇偶校验更新操作执行期间存储与奇偶校验更新操作相关联的状态数据,以便在中断奇偶校验更新操作的异常事件发生的情况下便利于恢复。所存储的数据包括状态指示符,其指示在操作进行期间在各个点处奇偶校验更新操作的当前状态。所存储的数据还包括在奇偶校验更新操作期间捕捉并且存储于非易失存储器中的快照(snapshot)数据。该快照数据可以包括在将中断的奇偶校验更新操作前推或者后退过程中可能有用的许多类型的数据,例如,增量数据、乘以常数之后的增量数据、旧数据、旧的奇偶校验、新的奇偶校验等等。
虽然可以捕捉其它类型的快照数据,但下文中讨论的实施例捕捉并存储增量值,该增量值代表新数据与旧数据之间的差,该新数据正通过奇偶校验更新操作写到磁盘中,该旧数据是以前存储在磁盘上的并且正被有关奇偶校验更新操作的新数据覆盖。在下文讨论的实施例中,该差是通过新数据与旧数据之间的XOR运算产生的。
下文中给出了与本发明一致的、实现奇偶校验更新操作和恢复技术的磁盘阵列环境的多个实施例。不过,在讨论这样的实施例之前,首先提供RAID-6的背景简述,随后是对可以实施这样的操作和技术的示例性硬件环境的描述。
一般RAID-6背景
这里用来描述RAID-6存储系统的专用术语符合本领域最易于接受的标准。特别地,存在N个驱动器,其中任何两个将被认为是奇偶校验驱动器,P和Q。利用伽罗华域算术,可以写出两个独立公式:
α0d0+α0d1+α0d2+...+α0dN-1=0 (1)
α0d0+α1d1+α2d2+...+αN-1dN-1=0 (2)
其中,这里所采用的“+”运算符表示异或(Exclusive-OR,XOR)操作。
在这些公式中,αX是有限域的元素,dX是来自第X个磁盘的数据。虽然P和Q盘对于数据的任意特定带区可以是N个磁盘的任一个,但是它们通常用dP和d0表示。当更新磁盘之一的数据(即,dX)时,上面的两个公式分解为:
Δ=(旧dX)+(新dX) (3)
(新dP)=(旧dP)+((αQ+αX)/(αP+αQ))Δ (4)
(新dQ)=(旧dQ)+((αP+αX)/(αP+αQ))Δ (5)
在最后两个公式的每个中,加号右边的项是常数乘以数据中的变化(即,Δ)。公式(4)和(5)的这些项通常分别表示为K1Δ和K2Δ。
在一个磁盘丢失或不可用的情况下,可以采用简单的XOR运算来恢复该磁盘的数据。例如,如果d1失效则可如下恢复d1:
d1=d0+d1+d2+... (6)
在两个磁盘失效或者被“暴露”的情况下,上面的公式可以用来恢复磁盘的数据。例如,给定磁盘0到X并且假设磁盘A和B失效了,则该两个磁盘的任一磁盘的数据可以从剩余的磁盘中恢复。例如,如果要恢复磁盘A,则上面的公式变为:
dA=((αB+α0)/(αB+αA))d0+((αB+α1)/(αB+αA))d1+...+((αB+α0)/(αB+αA))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系统有效地提供针对两个磁盘失效的保护,但是存在一些异常事件,其可能引入其中不确定奇偶校验信息和数据信息是否正确同步的情况。例如,影响数据同步的意外掉电或者介质错误可能不时发生。最脆弱的时刻之一是当已将新数据写到磁盘中并且正在更新P和Q奇偶校验数据的时候。
在RAID 6中,对于每个标准的奇偶校验更新操作产生六个I/O操作:
1)读旧数据dX
2)写新数据dX
3)读旧奇偶校验dP
4)写新奇偶校验dP
5)读旧奇偶校验dQ以及
6)写新奇偶校验dQ
如果在此过程期间在任何时刻发生异常事件,诸如意外掉电,则数据和奇偶校验信息的状态可能是未知的。在电力恢复后,控制器被配置成自动检测先前更新操作的异常状态并且启动恢复处理。这样,根据本发明的原理,RAID-6控制器即使在异常中断之后也能够自动使数据和奇偶校验信息重新同步。
图3描绘了具有两个数据驱动器304、306(D、E)和两个奇偶校验驱动器308、310(P、Q)的示例性磁盘阵列。本领域普通技术人员应该理解,该阵列本质上是示例性的,并且具有许多不同数目磁盘的阵列都被认为落入本发明的范围之内。
当没有磁盘暴露时,从异常事件中恢复相对直接。例如,如果当异常事件发生时磁盘D 304完全用新数据302更新了而P处于正被修改的过程中,则关于该数据下面的事实是已知的:
1)磁盘304上的D是新数据;
2)P可疑,其可能是正确的,也可能不是;
3)Q仅对于曾经在磁盘D上的旧数据而言是正确的;以及
4)E是已知的并且没有改变。
利用该新D和未经改变的E,控制器可以将P和Q视为暴露并且使用公式(7)来计算新的P和Q好象该异常事件从未发生一样。但是,如果磁盘之一暴露,则该任务变得更复杂。在上面的示例中,如果磁盘E 306暴露,则计算P和Q不再是同样直接的练习。据此,本发明的实施例涉及下述RAID-6控制器,该RAID-6控制器即使在一个或多个磁盘暴露时,在奇偶校验更新期间发生异常事件之后也允许数据和奇偶校验的同步。
为了从异常事件中恢复,控制器使用两条非易失信息:奇偶校验更新期间的数据快照以及“奇偶校验更新足迹”。常规的RAID-6实现已经包括一般的奇偶校验更新足迹的功能,其在正执行更新操作时将关于特定更新操作的信息存储在非易失存储器中。该典型的足迹包括关于更新的逻辑块地址、更新的长度、设备ID等等的信息。除了该信息以外,本发明的实施例有利地将关于正在进行的更新操作的信息包括在足迹中。
根据本发明的一个实施例,存在四个有效的奇偶校验更新操作状态:
1)数据可疑-数据可疑并且P和Q是旧的;
2)P可疑-D是新的,Q是旧的,P可疑;
3)P可疑及Δ-D是新的,Q是旧的,P可疑,但是增量值(Δ)已知;
4)Q可疑-D是新的,P是新的,Q可疑。
回到图3,根据本发明的原理在奇偶校验更新操作期间发生如下序列的事件:
a)当新数据D,302要被写入数据盘D 304中时,控制器获得足迹和增量值(Δ)的信号灯(semaphore);这样在持有信号灯时这些值不可以由另一进程改变;
b)控制器对旧D与新D进行XOR运算并且将该增量值(Δ)存储在缓冲器中;
c)控制器设置足迹状态为数据可疑;
d)控制器将新数据写到数据盘D 304中;
e)最好,如果存在暴露的磁盘,则将增量值写到非易失存储器例如写到磁盘D中,该位置最好为缺省位置,从而在恢复操作期间,控制器可以自动检索到所保存的增量值;
f)控制器将Δ乘以常数K1;
g)控制器对旧P与K1Δ执行XOR运算并且将该新P存储在缓冲器中;
h)控制器设置足迹状态为P可疑(或者如果存在暴露的驱动器的话,则设置为P可疑及Δ);
i)控制器将新P写在磁盘308上;
j)控制器设置足迹状态为Q可疑;
k)控制器将Δ乘以常数K2;
l)控制器对旧Q与K2Δ执行XOR运算并且将该新Q存储在缓冲器中;
m)控制器将新Q存储在盘310上;
n)控制器释放信号灯。
下面的表I总结了给定奇偶校验处理的步骤时可以发生的可能失效情景以及为更新处理定义的不同“状态”。特别地,该表参考了涉及将新数据写到盘D 304的更新处理。这样,在表中标号“其它的”指的是除了D 304、P 308、Q 310外的某个磁盘(例如,磁盘E 306)。表的列指示不同状态而行指示RAID阵列中可以存在的不同情况。表的每个元素的值表示将使数据和奇偶校验信息重新同步的校正过程。“重新同步P和Q”指的是使用数据设备(例如,D和E)以重新产生P和Q奇偶校验。“重建D”指的是使用设备(磁盘D除外)来重新产生D数据。“重建Q”指的是使用除磁盘Q之外的设备来重新产生Q(也可以以类似的方式重建P)。
表I
暴露的设备(一个或多个) | 数据可疑 | P可疑,或者如果E暴露则P可疑及Δ | Q可疑 |
无 | 重新同步P和Q | 重新同步P和Q | 重新同步P和Q |
D | 无 | 重新同步P和Q | 重建Q |
P | 重新同步P和Q | 重新同步P和Q | 重新同步P和Q |
Q | 重新同步P和Q | 重新同步P和Q | 无 |
其它的 | 重建D | ACTION | 重建Q |
D和P | 无 | 重新同步P和Q | 重新同步P和Q |
D和Q | 无 | 重新同步P和Q | 无 |
P和Q | 无 | 重新同步P和Q | 无 |
D和其它的 | 无 | 重新同步P和Q | 重新同步P和Q |
P和其它的 | 重新同步P和Q | 重新同步P和Q | 重新同步P和Q |
Q和其它的 | 重新同步P和Q | 重新同步P和Q | 无 |
两个其它的 | 重新同步P和Q | 重新同步P和Q | 重新同步P和Q |
在几乎所有在奇偶校验更新操作期间可能发生的失效情景中,关于数据已知足够的信息使得可以容易地重新同步奇偶校验信息或者可以使用计算P和Q的常规公式重建数据驱动器的数据,从而数据和奇偶校验重归于同步。但是,在一个特定的失效情景中,恢复并不是直接的。如果在图3中磁盘E 306暴露,则如果P可疑的话重新同步所有的数据和奇偶校验是复杂的。
如果发生这样的失效,则E不可用,D的新值已知,Q是旧值并且P不确定。这种值的组合不允许使用任何常规的奇偶校验公式来重新同步数据和奇偶校验信息而不丢失E的数据。在表1中,该恢复解决方案用“ACTION”标记。在这种情况下,恢复根据下面的步骤来实现:
a)将新数据值D从磁盘读到缓冲器中;
b)将新数据值D与被写入到磁盘D并且恢复了的Δ(或者,可以将Δ写到各种不同的非易失存储区域,例如,写到另一磁盘上,或者写到控制器、适配器或者其它组件的非易失存储器中)进行XOR运算;
c)缓冲器现在包含了旧的数据值D;
d)然后将旧的D写到数据盘D中;以及
e)然后重建奇偶校验P。
这样,再次使奇偶校验和数据同步。从这点起,控制器可以再次尝试以新数据值更新磁盘D。
在许多RAID控制系统中,存在视需要而执行P和Q的重新同步的例程。这样,在一些情况下,如果只有P需要被重新同步,控制器仍然执行P和Q两者的重新同步。上面的表采用了类似的惯例;在一些恢复情景下实际上仅P和Q值中的一个需要重新同步。但是,该表指示P和Q都要重新同步。即使在P或Q可能是暴露的驱动器的情况下,RAID控制系统通常执行“重新同步P和Q”,这导致产生P和Q但是暴露的驱动器的任何数据却没有被写出。本领域普通技术人员将认识到上面的表依赖于这些常规控制器例程中的一些,但是在不背离本发明的范围的条件下可以单独执行P和Q的重新同步。
应该理解,在两个磁盘暴露的情况下,在本发明的一些实施例中P和Q的重新同步可能潜在地导致已知数据丢失。但是,与常规设计形成对比,当进一个磁盘暴露使,在与本发明一致的实施例中可以重新同步P和Q而不存在数据丢失的危险。
图4图示了用于提供上述的RAID-6恢复能力的示例性算法的流程图。在步骤402中,将新数据写入数据盘中启动了奇偶校验更新操作。在步骤404中,在奇偶校验更新操作期间,维护一个状态指示符,该状态指示符随着奇偶校验操作进行到完成指示奇偶校验操作的状态。此外,在步骤406中,如果Δ值的非易失性拷贝为恢复处理所需,例如如果磁盘暴露,则存储该Δ值的非易失性拷贝。在一些实施例中即使当没有磁盘暴露时也存储Δ值的非易失性拷贝,而在其它实施例中,仅当已知一个磁盘暴露时才存储Δ值的非易失性拷贝。
如果发生了使得奇偶校验更新的完成中断的异常事件,则控制器将需要将数据和奇偶校验信息恢复到它们被同步的状态。
这样的同步可以发生的容易程度取决于磁盘阵列是否具有暴露的磁盘。如果没有暴露的磁盘,则在步骤408中,控制器使用状态指示符来确定哪个信息已知为良好并且使用该信息来重新同步数据和奇偶校验。但是,如果存在暴露的磁盘,则在步骤410中,控制器使用状态指示符和所保存的Δ来重新同步数据和奇偶校验信息。一旦数据和奇偶检验被恢复到同步的状态,则如必要在步骤412中控制器可以再次尝试执行D的更新。
Claims (23)
1.一种在磁盘阵列系统中存储数据的方法,所述方法包括下述步骤:
与存储新数据相关联地启动奇偶校验更新操作;
在奇偶校验更新操作期间维护状态指示符,该状态指示符指示奇偶校验更新操作的状态;
在奇偶校验更新操作期间捕捉快照数据;以及
将快照数据存储在非易失存储器中;
所述奇偶校验更新操作包括更新该新数据;更新与该新数据相关联的第一奇偶校验值;以及更新与该新数据相关联的第二奇偶校验值;
其中,所述状态指示符包括至少三个状态,其第一状态指示新数据可疑,其第二状态指示第一奇偶校验值可疑,以及其第三状态指示第二奇偶校验值可疑。
2.如权利要求1所述的方法,其中,启动奇偶校验更新操作是在除正被写入新数据的磁盘之外的盘暴露时执行的。
3.如权利要求2所述的方法,其中,所述状态指示符包括指示奇偶校验值可疑但是快照数据可用的状态。
4.如权利要求1所述的方法,其中,所述维护步骤还包括下述步骤:
将状态指示符存储在非易失存储器中;以及
随着奇偶校验更新操作进行将状态指示符更新为多个状态之一。
5.如权利要求1所述的方法,其中,所述快照数据包括增量值,该数据值指示该新数据与正被该新数据覆盖的旧数据之间的差。
6.如权利要求1所述的方法,还包括下述步骤:
获得信号灯以保护该状态指示符和快照数据。
7.如权利要求1所述的方法,其中,所述维护步骤包括在非易失存储器中创建奇偶校验更新足迹的步骤,该足迹包括状态指示符。
8.如权利要求1所述的方法,其中,所述快照数据被存储在其上正执行该奇偶校验更新操作的磁盘上的预定位置中。
9.如权利要求1所述的方法,还包括下述步骤:
确定所述奇偶校验更新操作在完成之前被中断;以及
基于该确定,使用状态指示符和快照数据中的至少一个来使磁盘阵列系统中的数据和奇偶校验信息同步。
10.如权利要求9所述的方法,其中,所述同步的步骤包括下述操作中的至少一个:
使用磁盘阵列系统中的其它磁盘重新生成数据盘;以及
使用磁盘阵列系统中的其它磁盘重新生成奇偶校验值。
11.如权利要求1所述的方法,还包括下述步骤:
确定奇偶校验更新操作是在第一磁盘暴露并且奇偶校验值可疑的状态下被中断的;以及
基于该确定,使用状态指示符和快照数据使磁盘阵列系统中的数据与奇偶校验同步。
12.如权利要求11所述的方法,其中所述快照数据包括指示新数据与正被新数据覆盖的旧数据之间的差的增量值,并且所述同步的步骤还包括下述步骤:
基于该增量值和新数据计算旧数据;
将旧数据写到磁盘阵列系统的盘中;以及
使用该旧数据重建奇偶校验值。
13.如权利要求12所述的方法,还包括下述步骤:
基于状态指示符确定奇偶校验更新操作的状态;以及
从非易失存储器中恢复该增量值。
14.如权利要求1所述的方法,其中,所述磁盘阵列系统包括RAID-6系统。
15.一种装置,包括:
一种接口,被配置成耦接到磁盘阵列中的多个磁盘;以及
一种耦接到该接口的磁盘阵列控制器,该磁盘阵列控制器被配置成:
与将新数据存储在磁盘阵列系统中的磁盘上相关联启动奇偶校验更新操作;
在奇偶校验更新操作期间维护状态指示符,该状态指示符指示奇偶校验更新操作的状态;
在奇偶校验更新操作期间捕捉快照数据;以及
将快照数据存储在非易失存储器中;
其中所述磁盘阵列控制器还被配置成通过更新该新数据、更新与该新数据相关联的第一奇偶校验值、更新与该新数据相关联的第二奇偶校验值来执行奇偶校验更新操作,并且所述状态指示符包括至少三个状态,其第一状态指示新数据可疑,其第二状态指示第一奇偶校验值可疑,以及其第三状态指示第二奇偶校验值可疑。
16.如权利要求15所述的装置,其中所述磁盘阵列控制器还被配置成:
在非易失存储器中创建奇偶校验更新足迹,该足迹包括状态指示符;以及
随着所述更新操作进行将状态指示符改变为多个状态之一。
17.如权利要求15所述的装置,其中,所述磁盘阵列控制器还被配置成:
确定所述奇偶校验更新操作在完成之前被中断;以及
基于该确定,使用状态指示符和快照数据中的至少一个来使磁盘阵列系统中的数据和奇偶校验信息同步。
18.如权利要求15所述的装置,其中,所述快照数据包括增量值,该增量值指示新数据与正被新数据覆盖的旧数据之间的差。
19.如权利要求15所述的装置,其中所述磁盘阵列控制器还被配置成在除正被写入新数据的磁盘之外的盘暴露时启动奇偶校验更新操作,以及其中所述状态指示符包括指示奇偶校验值可疑但是快照数据可用的状态。
20.如权利要求15所述的装置,其中,所述磁盘阵列控制器包括RAID-6控制器。
21.如权利要求15所述的装置,其中,所述磁盘阵列控制器包括程序代码,该程序代码被配置成执行启动奇偶校验更新操作、维护状态指示符、捕捉快照数据、存储快照数据中的至少一个。
22.如权利要求15所述的装置,还包括耦接到所述接口的多个磁盘。
23.一种磁盘阵列系统中从正被执行的奇偶校验更新操作中的中断中恢复的方法,所述方法包括下述步骤:
检索在奇偶校验更新操作期间所维护的状态指示符,该状态指示符指示奇偶校验更新操作的状态;
从非易失存储器中检索在奇偶校验更新操作期间所捕捉的快照数据;以及
使用该状态指示符和快照数据中的至少一个使磁盘阵列系统中的奇偶校验和数据同步;
所述奇偶校验更新操作包括更新新数据;更新与该新数据相关联的第一奇偶校验值;以及更新与该新数据相关联的第二奇偶校验值;
其中,所述状态指示符包括至少三个状态,其第一状态指示新数据可疑,其第二状态指示第一奇偶校验值可疑,以及其第三状态指示第二奇偶校验值可疑。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/994,097 US7392428B2 (en) | 2004-11-19 | 2004-11-19 | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
US10/994,097 | 2004-11-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776637A CN1776637A (zh) | 2006-05-24 |
CN100388221C true CN100388221C (zh) | 2008-05-14 |
Family
ID=36575777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101267256A Expired - Fee Related CN100388221C (zh) | 2004-11-19 | 2005-11-21 | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7392428B2 (zh) |
CN (1) | CN100388221C (zh) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418646B2 (en) * | 2004-03-02 | 2008-08-26 | Intel Corporation | Integrated circuit using wireless communication to store and/or retrieve data and/or check data |
US7743308B2 (en) * | 2005-02-09 | 2010-06-22 | Adaptec, Inc. | Method and system for wire-speed parity generation and data rebuild in RAID systems |
TWI285313B (en) * | 2005-06-22 | 2007-08-11 | Accusys Inc | XOR circuit, RAID device capable of recover a plurality of failures and method thereof |
US8239735B2 (en) * | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US7818609B2 (en) * | 2006-11-27 | 2010-10-19 | Emc Corporation | Methods and systems for managing corrupted meta-data in a computer system or network |
US8595573B2 (en) | 2006-12-03 | 2013-11-26 | Apple Inc. | Automatic defect management in memory devices |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US7730347B1 (en) * | 2007-01-03 | 2010-06-01 | Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Data recovery system and method including a disk array architecture that provides recovery of data to any point of time |
US8239706B1 (en) * | 2007-01-03 | 2012-08-07 | Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Data retrieval system and method that provides retrieval of data to any point in time |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8300478B2 (en) | 2007-09-19 | 2012-10-30 | Apple Inc. | Reducing distortion using joint storage |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) * | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) * | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US7849356B2 (en) * | 2008-01-17 | 2010-12-07 | International Business Machines Corporation | Parity data management system apparatus and method |
JP4675984B2 (ja) * | 2008-02-29 | 2011-04-27 | 株式会社東芝 | メモリシステム |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8493783B2 (en) | 2008-03-18 | 2013-07-23 | Apple Inc. | Memory device readout using multiple sense times |
JP5335779B2 (ja) * | 2008-05-12 | 2013-11-06 | パナソニック株式会社 | 半導体記録装置 |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8874464B2 (en) * | 2008-11-21 | 2014-10-28 | Sap Ag | Implementation of business models in a complex runtime system landscape |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) * | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8238157B1 (en) * | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8037391B1 (en) * | 2009-05-22 | 2011-10-11 | Nvidia Corporation | Raid-6 computation system and method |
US8296515B1 (en) | 2009-05-22 | 2012-10-23 | Nvidia Corporation | RAID-6 computation system and method |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9116759B2 (en) | 2011-02-18 | 2015-08-25 | Ab Initio Technology Llc | Restarting data processing systems |
US9021299B2 (en) * | 2011-02-18 | 2015-04-28 | Ab Initio Technology Llc | Restarting processes |
US8886881B2 (en) * | 2011-05-24 | 2014-11-11 | International Business Machines Corporation | Implementing storage adapter performance optimization with parity update footprint mirroring |
US9053809B2 (en) | 2011-11-09 | 2015-06-09 | Apple Inc. | Data protection from write failures in nonvolatile memory |
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 |
CN102589577B (zh) * | 2012-03-02 | 2014-06-04 | 北京经纬恒润科技有限公司 | 一种对磁场强度传感器位置计数进行补偿的方法及系统 |
US9311181B2 (en) * | 2012-11-15 | 2016-04-12 | Samsung Electronics Co., Ltd. | Memory controller changing partial data in memory device and method for changing partial data thereof |
WO2014167717A1 (ja) * | 2013-04-12 | 2014-10-16 | 株式会社日立製作所 | ストレージシステム、及びストレージシステムの記憶制御方法 |
US9104332B2 (en) | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Managing metadata and data for a logical volume in a distributed and declustered system |
US9104597B2 (en) * | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Destaging cache data using a distributed freezer |
US9298617B2 (en) | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Parallel destaging with replicated cache pinning |
US9298398B2 (en) | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Fine-grained control of data placement |
US9329938B2 (en) | 2013-04-16 | 2016-05-03 | International Business Machines Corporation | Essential metadata replication |
US9619404B2 (en) | 2013-04-16 | 2017-04-11 | International Business Machines Corporation | Backup cache with immediate availability |
US9423981B2 (en) | 2013-04-16 | 2016-08-23 | International Business Machines Corporation | Logical region allocation with immediate availability |
CN106528330A (zh) * | 2016-10-29 | 2017-03-22 | 华为技术有限公司 | 一种数据备份方法、节点及数据备份系统 |
KR102703983B1 (ko) | 2016-11-07 | 2024-09-10 | 삼성전자주식회사 | Raid 방식으로 데이터를 저장하는 스토리지 장치 |
CN108228081B (zh) * | 2016-12-21 | 2021-03-02 | 伊姆西Ip控股有限责任公司 | 用于数据保护的方法和设备 |
US10776202B1 (en) * | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10379950B2 (en) * | 2017-11-30 | 2019-08-13 | Western Digital Technologies, Inc. | Updating write-in-place storage devices |
CN109634771A (zh) * | 2018-10-31 | 2019-04-16 | 华为技术有限公司 | 一种数据保护方法、装置及系统 |
CN111857560B (zh) * | 2019-04-30 | 2024-06-28 | 伊姆西Ip控股有限责任公司 | 用于管理数据的方法、设备和计算机程序产品 |
CN112003815A (zh) * | 2019-05-27 | 2020-11-27 | 阿里巴巴集团控股有限公司 | 通信系统、方法和装置、定位系统、计算设备和存储介质 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488731A (en) * | 1992-08-03 | 1996-01-30 | International Business Machines Corporation | Synchronization method for loosely coupled arrays of redundant disk drives |
US6282671B1 (en) * | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
US20010037425A1 (en) * | 2000-03-09 | 2001-11-01 | Hiroyuki Yanagi | Interrupt processing method in an operation processing device and the device using the same |
CN1093964C (zh) * | 1996-01-31 | 2002-11-06 | 株式会社东芝 | 输入/输出装置的检查点恢复方法 |
JP2003296047A (ja) * | 2002-03-29 | 2003-10-17 | Fujitsu Ltd | Raidファイルシステム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE34100E (en) * | 1987-01-12 | 1992-10-13 | Seagate Technology, Inc. | Data error correction system |
US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage 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 |
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 |
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 |
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
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 | 富士通株式会社 | ディスクアレイ装置 |
US6101615A (en) * | 1998-04-08 | 2000-08-08 | International Business Machines Corporation | Method and apparatus for improving sequential writes to RAID-6 devices |
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 |
US6480944B2 (en) * | 2000-03-22 | 2002-11-12 | Interwoven, Inc. | Method of and apparatus for recovery of in-progress changes made in a software application |
US6567891B2 (en) * | 2001-03-14 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Methods and arrangements for improved stripe-based processing |
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 |
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 |
US6944791B2 (en) * | 2002-07-18 | 2005-09-13 | Lsi Logic Corporation | Method of handling unreadable blocks during write of a RAID device |
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 |
JP2005115771A (ja) * | 2003-10-09 | 2005-04-28 | Hitachi Ltd | ディスクアレイ装置 |
JP4288486B2 (ja) * | 2003-11-17 | 2009-07-01 | 日本電気株式会社 | ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路 |
-
2004
- 2004-11-19 US US10/994,097 patent/US7392428B2/en not_active Expired - Fee Related
-
2005
- 2005-11-21 CN CNB2005101267256A patent/CN100388221C/zh not_active Expired - Fee Related
-
2008
- 2008-04-21 US US12/106,856 patent/US7487394B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488731A (en) * | 1992-08-03 | 1996-01-30 | International Business Machines Corporation | Synchronization method for loosely coupled arrays of redundant disk drives |
CN1093964C (zh) * | 1996-01-31 | 2002-11-06 | 株式会社东芝 | 输入/输出装置的检查点恢复方法 |
US6282671B1 (en) * | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
US20010037425A1 (en) * | 2000-03-09 | 2001-11-01 | Hiroyuki Yanagi | Interrupt processing method in an operation processing device and the device using the same |
JP2003296047A (ja) * | 2002-03-29 | 2003-10-17 | Fujitsu Ltd | Raidファイルシステム |
Also Published As
Publication number | Publication date |
---|---|
CN1776637A (zh) | 2006-05-24 |
US20060123270A1 (en) | 2006-06-08 |
US20080201608A1 (en) | 2008-08-21 |
US7487394B2 (en) | 2009-02-03 |
US7392428B2 (en) | 2008-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100388221C (zh) | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 | |
CN101059751B (zh) | 磁盘阵列恢复数据时增加磁盘访问并行性的方法和系统 | |
CN100385405C (zh) | 利用磁盘阵列奇偶校验的增强错误标识系统和方法 | |
CN100390746C (zh) | 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统 | |
CN100345098C (zh) | 磁盘阵列控制器及磁盘阵列环境中的运行方法 | |
US8839028B1 (en) | Managing data availability in storage systems | |
CN102483686B (zh) | 数据存储系统和用于操作数据存储系统的方法 | |
CN103793182B (zh) | 用于可扩展存储保护的系统和方法 | |
KR100928882B1 (ko) | Raid 장치 및 갈로아체를 이용한 데이터 복원 장치 | |
US20090055682A1 (en) | Data storage systems and methods having block group error correction for repairing unrecoverable read errors | |
US6282671B1 (en) | Method and system for improved efficiency of parity calculation in RAID system | |
EP2470992B1 (en) | N-way parity technique for enabling recovery from up to n storage device failures | |
US20070050543A1 (en) | Storage of computer data on data storage devices of differing reliabilities | |
US20110238936A1 (en) | Method and system for efficient snapshotting of data-objects | |
US6332177B1 (en) | N-way raid 1 on M drives block mapping | |
CN102880525A (zh) | 用于独立磁盘冗余阵列(raid)系统的文件服务器 | |
CN104598162A (zh) | 用于跨存储设备写入数据的方法和系统 | |
US20190235781A1 (en) | Determining an Effective Capacity of a Drive Extent Pool Generated from one or more Drive Groups in an Array of Storage Drives of a Data Storage System that uses Mapped RAID (Redundant Array of Independent Disks) Technology | |
US6871317B1 (en) | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array | |
JP2000259359A (ja) | Raid装置および記録媒体 | |
JP2002278707A (ja) | ディスクコントローラ | |
US20050278476A1 (en) | Method, apparatus and program storage device for keeping track of writes in progress on multiple controllers during resynchronization of RAID stripes on failover | |
US9256490B2 (en) | Storage apparatus, storage system, and data management method | |
Thomasian et al. | A performance evaluation tool for RAID disk arrays | |
TWI309364B (en) | Method and controller for processing data multiplication in raid system |
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 |
Granted publication date: 20080514 |
|
CF01 | Termination of patent right due to non-payment of annual fee |