CN1801103A - 利用磁盘阵列奇偶校验的增强错误标识系统和方法 - Google Patents
利用磁盘阵列奇偶校验的增强错误标识系统和方法 Download PDFInfo
- Publication number
- CN1801103A CN1801103A CN200510126726.0A CN200510126726A CN1801103A CN 1801103 A CN1801103 A CN 1801103A CN 200510126726 A CN200510126726 A CN 200510126726A CN 1801103 A CN1801103 A CN 1801103A
- Authority
- CN
- China
- Prior art keywords
- error
- parity
- amount
- raid
- byte
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000009885 systemic effect Effects 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
Abstract
当诸如RAID-6系统的磁盘阵列中的奇偶校验确定数据和奇偶校验信息不同步时,执行额外的计算以确定该错误是否可以归因于磁盘驱动器上的出错数据或归因于诸如出错的控制器之类的系统问题。特别地,对于所检测到的每个特定错误,分析奇偶校验生成信息以确定是否每个错误涉及一个共同的磁盘索引。如果是这样,则可以纠正该磁盘上的数据;如果不是这样,则实施其它纠正过程。
Description
本申请涉及下述由Carl Edward Forhan、Robert Edward Galbraith和Adrian Cuenin Gerhard于同一天提交的美国专利申请:“RAID ENVIRONMENTINCORPORATING HARDWARE-BASED FINITE FIELD MULTIPLIER FOR ON-THE FLYXOR”,“METHOD AND SYSTEM FOR IMPROVED BUFFER UTILIZATION FOR DISK ARRAYPARITY UPDATES”,“METHOD AND SYSTEM FOR INCREASING PARALLELISM OF DISKACCESSES WHEN RESTORING DATA IN A DISK ARRAY SYSTEM”,“METHOD AND SYSTEMFOR RECOVERING FROM ABNORMAL INTERRUPTION 0F A PARITY UPDATE OPERATIONIN 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-4及更高实现的一个方面是,一旦最初生成了奇偶校验带区的奇偶校验数据,在阵列上执行的后续写操作通常需要通过将新数据与旧数据以及现有奇偶校验数据结合以生成新奇偶校验数据来更新奇偶校验。在RAID-4和RAID-5实现中,通常称作增量更新的这些更新操作要求每个RAID写包括:从两个磁盘读(旧数据,旧奇偶校验),计算新数据与旧数据之间的差,将该差应用于旧奇偶校验以得到新奇偶校验,以及将新数据和奇偶校验写回到相同的两个磁盘上,这通常需要执行4个I/O操作。在RAID-6实现中,已知需要更新两个奇偶校验驱动器,则增量更新通常要六个I/O操作。
由于增量更新操作作为现有数据的修改而运行,单个增量更新操作出现问题可以导致奇偶校验数据与数据不同步,并且该错误被传播到后来的增量更新操作中。例如,如果关于旧数据或旧奇偶校验数据的读操作磁盘返回不正确的数据,如果磁盘写入不正确的新数据或新奇偶校验数据,或者如果数据的RAID硬件或软件XOR不正确,则许多问题可能出现在增量更新操作中。
如果奇偶校验脱离同步未被检测出来,则在磁盘失效时可能导致数据完整性问题并且需要该奇偶校验以重新生成该磁盘的数据。考虑到在相对短的时间段内可以执行成百万或上十亿的增量更新,单个增量更新出现问题从而奇偶校验脱离同步的风险对于许多实现来说是不可接受。
结果是,许多RAID实现采用奇偶检验检查,奇偶校验检查通常在前台或后台(例如,在不活动期间),以及其检查所有的奇偶校验带区以确保奇偶校验数据保持同步。仅对预期奇偶校验是有效的良好(未暴露)阵列执行奇偶校验检查。
然而,当在奇偶检验期间检测出无效的奇偶校验数据时,常规的RAID实现不能确定该问题起源于何处,例如什么特定驱动器导致该问题,或者是否硬件/软件而非特定驱动器才是问题的原因。结果是,这样的实现通常向用户或系统管理员警告该问题,而需要手动干预来确定问题的起因。
发明内容
为了解决与现有技术相关联的上述及其它问题,与本发明一致的实施例利用磁盘阵列环境中的一种奇偶校验检查算法,该奇偶校验检查算法能够有助于分离出特定的错误源头,例如,作为奇偶校验检查的结果,标识出特定磁盘驱动器或者标识出除磁盘驱动器外的源头作为检测到问题的根源。
本发明的一个方面涉及在下述磁盘阵列环境中执行奇偶校验检查,在该磁盘阵列环境中,多个磁盘驱动器上的每个奇偶校验带区具有相关联的第一值和第二值。根据该方面,对于多个数据值的每个验证相关联的第一奇偶校验值;以及如果确定相应的第一奇偶校验值有错,则分别对与第一和第二奇偶校验方程式相关联的第一和第二错误量进行分析。基于该分析,确定多个磁盘驱动器之一是否出错。
本发明的另一方面涉及在诸如RAID-6环境的磁盘阵列环境中执行奇偶校验检查,其中检查多个磁盘上的多个字节,每个这样的字节具有相关联的第一奇偶校验值和第二奇偶校验值。根据该方面,标识不满足第一奇偶校验方程式的每个字节。对于每个所标识的字节,使用第一奇偶校验方程式计算第一错误量,以及使用第二奇偶校验方程式计算第二错误量。基于每个所标识的字节的第一错误量和第二错误量,可以标识RAID-6环境中的出错磁盘驱动器。
附图说明
图1是根据本发明的原理的可以实现RAID-6存储控制器的示例性计算机系统的框图。
图2是图示图1的RAID控制器的主要组件的框图。
图3描绘了根据本发明原理的用于执行RAID-6环境中的附加错误分析的示例性方法的流程图。
具体实施方式
下文中讨论的实施例利用一种磁盘阵列环境(例如RAID-6环境)中的奇偶校验检查算法,该奇偶检验检查算法能够确定RAID环境中的多个磁盘驱动器之一是否有错。关于这点,本发明的某些实施例可能能够确定RAID环境中的磁盘驱动器之一是否有错,或者该错误是否在于环境的另一组件(例如,适配器或控制器)中。某些实施例可以附加地或替换地确定磁盘阵列环境中多个磁盘驱动器之中哪个特定磁盘驱动器有错。
下文中给出实现与本发明一致的奇偶校验检查和错误检测算法的磁盘阵列环境的多个实施例。但是,在讨论这样的实施例之前,首先提供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和dQ表示。当更新磁盘之一的数据(即,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中的奇偶校验检查和错误检测
与本发明一致的实施例实现奇偶校验检查算法中的错误检测,以帮助分离诸如RAID-6环境的RAID环境中的错误源。
如上面所提到的,在RAID-5系统中,根据采用四个I/O操作的公知过程更新奇偶校验P。首先,从磁盘读取旧数据d’;然后,将新数据d写到磁盘中;接下来从磁盘读取旧奇偶校验数据P;以及最终将新计算得到的奇偶校验P’写到磁盘中。如果在这四个步骤期间任何事情出错(例如,电源或控制器失效;不正确的XOR操作;写错误;等等),则磁盘的数据完整性就可能处于危险中。同样公知地,增量更新操作作为现有数据的修改运行,从而单个增量更新操作出现的问题可以引起奇偶校验数据与数据不同步,同时该错误被传播到以后的增量更新操作。
同样如上面提到的,在常规RAID-5系统中,可以利用后台奇偶校验检查以确保RAID系统的数据完整性。例如,在不活动期间检查数据和奇偶检验带区是否正确的后台进程将运行,但是,在RAID-5中,如果发现了错误,则存在的信息不足以确定是特定磁盘、适配器、控制器还是其它组件有错。或者如果磁盘有错,则不足以确定哪个具体磁盘有错。
类似地,在RAID-6系统中利用了后台奇偶校验检查来确保数据完整性。如上所述,利用RAID-6,对于每个奇偶校验带区可以写出两个独立方程式,并且该两个独立方程式通常用于在多个磁盘失效的情况下恢复数据。尽管如此,像RAID-5系统那样,常规的RAID-6系统仍不能够确定错误的潜在原因。
但是,已经发现,除了恢复数据之后,RAID-6系统中奇偶校验检查过程中所利用的独立方程式可以用于在奇偶校验检查期间识别关于可能找出的错误的额外信息,公知地包括,特定磁盘驱动器是否是在奇偶检验检查期间检测出的错误的源头。
例如,图3图示了籍之可以以与本发明一致的方式执行额外的错误检测的示例性奇偶检验检查过程。如步骤302所示,执行奇偶校验检查以确保磁盘驱动器上数据和奇偶校验内部一致。在不背离本发明范围的前提下可以在前台或后台执行该检查。但是,下面描述了其中奇偶校验检查作为后台进程被执行的特定示例性实施例。假定在步骤304中该奇偶检验检查发现不满足第一原理方程式(1),然后在步骤306中可以执行进一步的调查以确定特定磁盘是否显示有错。如果在步骤308中一个磁盘被确定有错,则控制可以转到步骤310以确定磁盘上的数据是否因为出现错误而被改变。如果没有,则在步骤312中可以生成正确的磁盘数据并且将之恢复到磁盘。如果磁盘上的数据曾被改变,则在步骤314中可以报告错误的存在,从而可由操作员执行其它纠正动作。此外,回到步骤308,如果特定磁盘没有出错,则在步骤314中可以报告错误的存在,从而可由操作员执行其它纠正动作。在其它实施例中,可以不进行试图纠正标识出的磁盘上的数据的任何尝试,由此执行进一步调查的位移结果是报告可能的错误源是特定磁盘或非磁盘出错。
下面通过举例解释允许执行额外的错误调查的RAID-6的方面。具体地,存在磁盘dF,假设其具有不正确的数据。结果是,不满足方程式(1)和(2)(即,其加起来不等于零)。相反,具有出错磁盘的方程式是
α0d0+α0d1+α0d2+...+α0dN-1=ΔF=S0 (8)
α0d0+α1d1+α2d2+...αFdF+...+αN-1dN-1=αFΔF=S1 (9)
其中,ΔF是错误磁盘预期数据与实际数据之间的差。
重新整理方程式(8)和(9),得出:
S1/S0=αF
因而,可以根据下式计算出错磁盘的索引f:
f=log(αF)=log(S1/S0)
因为伽罗华域算术中的加法属性(即,XOR运算),所以可由下面的方程式如步骤312中所示纠正dF:
(新dF)=(旧dF)+S0
在上述奇偶校验算法的一个示例性实施例中,磁盘上的数据或符号大小是8位。通过在多个字节上执行奇偶校验检查,可以以一定的置信度(confidence)确定一个磁盘出错与否。例如,奇偶校验检查每个可以在256个磁盘块上运行,每个磁盘块长520字节。这些值本质上是示例性的,并且其它的磁盘块大小、符号大小、块的数目都被认为落入本发明的范围之内。但是,使用上述示例性值,奇偶校验例程将检查133120字节并且从而求解主(primary)方程式(1)那么多次。如果这些检查中的至少一个指示故障,则在步骤306中对每个字节检查下面的条件:
1.对于每个字节,S0和S1必须都是零或者都不是零。如果它们都是零则该字节的奇偶校验是正确的。如果一个是零而另一个不是零,则该错误提示除特定磁盘外的某事出错。
2.对于每个其中S0不是零(即,存在错误)的字节,然后确定[log(S1/S0)]是否指示有效的磁盘索引。对于8位伽罗华域,该方程式的可容许值理论上可以在0-254之间。但是,例如在18个磁盘的磁盘阵列中,磁盘索引的范围是0到17。在该可容许值外的值提示除特定磁盘外的某事出错。
3.对于每个其中S0不是零的字节,则log(S1/S0)指示相同的磁盘索引。这个条件仅指示出现的每个错误看起来都位于相同的磁盘驱动器上。
如果满足了所有这三个条件,则该错误很可能是由一个磁盘上的错误数据引起的,可以报告该情况以进行进一步的纠正动作。此外,如上面所提到的,基于特定磁盘作为出错数据源的标识,在某些情况下,该磁盘上的出错数据也可以得到纠正。另一方面,如果这三个条件之一没有满足,则该错误可能是在奇偶校验编码操作期间引起的并且是RAID控制器或控制软件的错误。在这样的情况下,不应该纠正个别磁盘的数据。
这样,本发明的实施例提供了一种方法和系统,其利用RAID-6奇偶校验信息不仅来检测不同步的数据和奇偶校验而且用来执行进一步的分析,这有助于帮助标识磁盘上的数据出错或者该错误可能是不同于特定磁盘的RAID控制器或其它组件的结果。
可以对所示实施例进行各种修改而不背离本发明的精神和范围。例如,在某些实施例中可能希望在检测到奇偶校验错误之后重新同步奇偶校验。对于收益于本直接公开的本领域普通技术人员而言,其它修改将是清楚的。因而,本发明在于所附的权利要求。
Claims (21)
1.一种在磁盘阵列环境中执行奇偶校验检查的方法,在该磁盘阵列环境中,跨越多个磁盘驱动器的每个奇偶校验带区具有相关联的第一值和第二值,该方法包括下述步骤:
对于多个数据值的每个验证相关联的第一奇偶校验值;
如果相应的第一奇偶校验值有错,则分析分别与第一和第二奇偶校验方程式相关联的第一和第二错误量;以及
基于该分析,确定多个磁盘驱动器之一是否出错。
2.如权利要求1所述的方法,还包括下述步骤:
确定多个磁盘驱动器中的哪个出错。
3.如权利要求1所述的方法,其中,所述确定步骤还确定磁盘阵列环境的控制器是否出错。
4.如权利要求1所述的方法,还包括下述步骤:
如果多个磁盘驱动器之一出错,则纠正该磁盘驱动器上的数据。
5.如权利要求1所述的方法,其中所述磁盘阵列环境包括RAID-6环境。
6.如权利要求1所述的方法,还包括通过分别将第一和第二奇偶校验方程式应用于第一和第二奇偶校验值和多个数据值来计算第一和第二错误量的步骤。
7.一种在RAID-6环境中执行奇偶校验检查的方法,其中检查多个磁盘上的多个字节,每个这样的字节具有相关联的第一奇偶校验值和第二奇偶校验值,该方法包括下述步骤:
标识不满足第一奇偶校验方程式的每个字节;
对于每个所标识的字节,使用第一奇偶校验方程式计算第一错误量;
对于每个所标识的字节,使用第二奇偶校验方程式计算第二错误量;以及
基于每个所标识的字节的第一错误量和第二错误量,标识RAID-6环境中的出错磁盘驱动器。
8.如权利要求7所述的方法,还包括下述步骤:
纠正出错磁盘驱动器上的数据。
9.如权利要求7所述的方法,其中所述标识步骤包括下述步骤:
对于多个字节中的每个,作为第一条件确定第一错误量和第二错误量是否均非零或均为零;
对于所标识的字节的每个,作为第二条件确定第一错误量和第二错误量是否指示RAID-6环境中的有效磁盘索引;以及
对于所标识的字节的每个,作为第三条件确定该有效磁盘索引是否对于所有字节均相同。
10.如权利要求9所述的方法,其中所述确定是否指示有效磁盘索引的步骤还包括下述步骤:
计算log(第二错误量/第一错误量)的值;以及
确定该值是否小于多个磁盘。
11.如权利要求9所述的方法,其中,如果所述第一、第二、第三条件的每个都得到满足,则基于该有效磁盘索引标识出错的磁盘驱动器。
12.如权利要求9所述的方法,其中,如果所述第一、第二、第三条件中的一个没有得到满足,则确定因为解码错误所以第一奇偶校验方程式没有得到满足。
13.一种装置,包括:
至少一个处理器;
与该至少一个处理器耦接的存储器;以及
驻留于该存储器并且由该至少一个处理器执行的程序代码,该程序代码被配置成执行下述步骤:
将多个数据值及相关联的第一和第二奇偶校验值分带在多个磁盘驱动器上;
对于多个数据值的每个验证相关联的第一奇偶校验值;
如果相应的第一奇偶校验值有错,则分析分别与第一和第二奇偶校验方程式相关联的第一和第二错误量;以及
基于该分析,确定多个磁盘驱动器之一是否出错。
14.如权利要求13所述的装置,其中所述程序代码还被配置成:
标识多个磁盘驱动器中的哪个出错。
15.如权利要求14所述的装置,其中所述程序代码还被配置成纠正所标识的出错的磁盘驱动器上的数据。
16.如权利要求13所述的装置,其中,所述程序代码被配置成实现RAID-6环境。
17.一种程序产品,包括:
程序代码,其被配置成在执行时执行下述步骤:
将多个数据值及相关联的第一和第二奇偶校验值分带在多个磁盘驱动器上;
对于多个数据值的每个验证相关联的第一奇偶校验值;
如果相应的第一奇偶校验值有错,则分析分别与第一和第二奇偶校验方程式相关联的第一和第二错误量;以及
基于该分析,确定多个磁盘驱动器之一是否出错;以及
承载该程序代码的计算机可读介质。
18.一种装置,包括:
多个磁盘驱动器;以及
耦接到该多个磁盘驱动器的控制器,该控制器被配置成:
将多个数据值及相关联的第一和第二奇偶校验值分带在多个磁盘驱动器上,
对于多个数据值的每个验证相关联的第一奇偶校验值;
如果相应的第一奇偶校验值有错,则分析分别与第一和第二奇偶校验方程式相关联的第一和第二错误量;以及
基于该分析,确定多个磁盘驱动器之一是否出错。
19.如权利要求18所述的装置,其中,所述控制器包括RAID-6控制器。
20.一种装置,包括:
至少一个处理器;
与该至少一个处理器耦接的存储器;以及
驻留于该存储器中并且由该至少一个处理器执行的程序代码,该程序代码被配置成执行下述步骤:
检查在RAID-6环境中的多个磁盘上的多个字节,每个这样的字节具有相关联的第一奇偶校验值和第二奇偶校验值;
标识不满足第一奇偶校验方程式的每个字节;
对于每个所标识的字节,使用第一奇偶校验方程式计算第一错误量;
对于每个所标识的字节,使用第二奇偶校验方程式计算第二错误量;以及
基于每个所标识的字节的第一错误量和第二错误量,标识RAID-6环境中的出错磁盘驱动器。
21.一种程序产品,包括:
程序代码,其被配置成在执行时:
在RAID-6环境中检查多个磁盘上的多个字节,每个这样的字节具有相关联的第一奇偶校验值和第二奇偶校验值;
标识不满足第一奇偶校验方程式的每个字节;
对于每个所标识的字节,使用第一奇偶校验方程式计算第一错误量;
对于每个所标识的字节,使用第二奇偶校验方程式计算第二错误量;以及
基于每个所标识的字节的第一错误量和第二错误量,标识RAID-6环境中的出错磁盘驱动器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/994,088 | 2004-11-19 | ||
US10/994,088 US7392458B2 (en) | 2004-11-19 | 2004-11-19 | Method and system for enhanced error identification with disk array parity checking |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801103A true CN1801103A (zh) | 2006-07-12 |
CN100385405C CN100385405C (zh) | 2008-04-30 |
Family
ID=36575776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101267260A Expired - Fee Related CN100385405C (zh) | 2004-11-19 | 2005-11-21 | 利用磁盘阵列奇偶校验的增强错误标识系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (3) | US7392458B2 (zh) |
CN (1) | CN100385405C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储系统中计算奇偶校验的方法 |
CN102567151A (zh) * | 2010-12-24 | 2012-07-11 | 鸿富锦精密工业(深圳)有限公司 | Efi环境下sas硬盘测试系统及方法 |
CN103119563A (zh) * | 2010-09-29 | 2013-05-22 | 国际商业机器公司 | 在固态存储器设备中的解码 |
CN110600070A (zh) * | 2019-09-18 | 2019-12-20 | 南威软件股份有限公司 | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 |
CN113424262A (zh) * | 2019-03-21 | 2021-09-21 | 华为技术有限公司 | 一种存储校验方法及装置 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
TWI285313B (en) * | 2005-06-22 | 2007-08-11 | Accusys Inc | XOR circuit, RAID device capable of recover a plurality of failures and method thereof |
US7661058B1 (en) | 2006-04-17 | 2010-02-09 | Marvell International Ltd. | Efficient raid ECC controller for raid systems |
US8146102B2 (en) * | 2006-12-22 | 2012-03-27 | Sap Ag | Development environment for groupware integration with enterprise applications |
JP4935367B2 (ja) * | 2007-01-19 | 2012-05-23 | 富士通株式会社 | Raid装置及びガロア体の積演算処理方法 |
US10248483B2 (en) | 2007-10-19 | 2019-04-02 | Oracle International Corporation | Data recovery advisor |
US8112636B1 (en) * | 2007-11-06 | 2012-02-07 | Lockheed Martin Corporation | Protection of code or data from exposure by use of code injection service |
JP5286956B2 (ja) * | 2008-06-13 | 2013-09-11 | 富士通株式会社 | 制御方法、ディスクアレイ装置 |
US8296515B1 (en) | 2009-05-22 | 2012-10-23 | Nvidia Corporation | RAID-6 computation system and method |
US8037391B1 (en) * | 2009-05-22 | 2011-10-11 | Nvidia Corporation | Raid-6 computation system and method |
US8612680B1 (en) * | 2010-06-30 | 2013-12-17 | Emc Corporation | Data caching system and method |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8578208B2 (en) | 2011-01-13 | 2013-11-05 | Micron Technology, Inc. | Determining location of error detection data |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) * | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
KR101445025B1 (ko) * | 2012-02-09 | 2014-09-26 | 서울시립대학교 산학협력단 | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
US9141554B1 (en) | 2013-01-18 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques |
US9448877B2 (en) * | 2013-03-15 | 2016-09-20 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems using hash value comparisons |
US9853873B2 (en) | 2015-01-10 | 2017-12-26 | Cisco Technology, Inc. | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment |
US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
US10222986B2 (en) | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
US11588783B2 (en) | 2015-06-10 | 2023-02-21 | Cisco Technology, Inc. | Techniques for implementing IPV6-based distributed storage space |
US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
US9892075B2 (en) | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
CN105824578B (zh) * | 2016-03-11 | 2018-11-30 | 华中科技大学 | 一种减少raid-6解码i/o数据量的方程选择方法 |
US10140172B2 (en) | 2016-05-18 | 2018-11-27 | Cisco Technology, Inc. | Network-aware storage repairs |
US20170351639A1 (en) | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
US10664169B2 (en) | 2016-06-24 | 2020-05-26 | Cisco Technology, Inc. | Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device |
US10452477B2 (en) * | 2016-08-26 | 2019-10-22 | Netapp, Inc. | Multiple node repair using high rate minimum storage regeneration erasure code |
US11563695B2 (en) | 2016-08-29 | 2023-01-24 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
US10055292B2 (en) | 2016-10-03 | 2018-08-21 | International Buisness Machines Corporation | Parity delta caching for short writes |
KR20180051703A (ko) | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | Raid 방식으로 데이터를 저장하는 스토리지 장치 |
US10545914B2 (en) | 2017-01-17 | 2020-01-28 | Cisco Technology, Inc. | Distributed object storage |
US10243823B1 (en) | 2017-02-24 | 2019-03-26 | Cisco Technology, Inc. | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks |
US10713203B2 (en) | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10254991B2 (en) | 2017-03-06 | 2019-04-09 | Cisco Technology, Inc. | Storage area network based extended I/O metrics computation for deep insight into application performance |
US10303534B2 (en) | 2017-07-20 | 2019-05-28 | Cisco Technology, Inc. | System and method for self-healing of application centric infrastructure fabric memory |
US10404596B2 (en) | 2017-10-03 | 2019-09-03 | Cisco Technology, Inc. | Dynamic route profile storage in a hardware trie routing table |
US10942666B2 (en) | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
TWI661307B (zh) * | 2017-12-06 | 2019-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、主機裝置、以及資料寫入方法 |
US11074130B2 (en) * | 2019-03-28 | 2021-07-27 | International Business Machines Corporation | Reducing rebuild time in a computing storage environment |
RU2758943C1 (ru) * | 2020-12-07 | 2021-11-03 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ распределенного хранения данных с подтвержденной целостностью |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Family Cites Families (53)
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 |
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 |
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 |
US5303244A (en) * | 1991-03-01 | 1994-04-12 | Teradata | Fault tolerant disk drive matrix |
US5537379A (en) | 1991-05-10 | 1996-07-16 | Discovision Associates | Optical data storage and retrieval system and method |
JP2855019B2 (ja) * | 1992-02-10 | 1999-02-10 | 富士通株式会社 | 外部記憶装置のデータ保証方法及び外部記憶装置 |
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 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 冗長ディスクドライブアレイに対する同期方法 |
US5513192A (en) * | 1992-08-28 | 1996-04-30 | Sun Microsystems, Inc. | Fault tolerant disk drive system with error detection and correction |
US5412661A (en) * | 1992-10-06 | 1995-05-02 | International Business Machines Corporation | Two-dimensional disk array |
JPH08511368A (ja) * | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
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 |
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 |
CN1169785A (zh) * | 1994-10-21 | 1998-01-07 | 西尔拉斯逻辑公司 | 盘驱动器仿真器的纠错方法与装置 |
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 |
US5812438A (en) * | 1995-10-12 | 1998-09-22 | Adaptec, Inc. | Arithmetic logic unit and method for numerical computations in galois fields |
US5720025A (en) | 1996-01-18 | 1998-02-17 | Hewlett-Packard Company | Frequently-redundant array of independent disks |
US6076142A (en) * | 1996-03-15 | 2000-06-13 | Ampex Corporation | User configurable raid system with multiple data bus segments and removable electrical bridges |
US6018778A (en) * | 1996-05-03 | 2000-01-25 | Netcell Corporation | Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory |
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 |
US6148430A (en) * | 1998-05-15 | 2000-11-14 | Quantum Corporation | Encoding apparatus for RAID-6 system and tape drives |
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 |
US6351838B1 (en) * | 1999-03-12 | 2002-02-26 | Aurora Communications, Inc | Multidimensional parity protection system |
JP2003528392A (ja) | 2000-03-22 | 2003-09-24 | インターウォーヴェン インコーポレイテッド | ソフトウェアアプリケーションにおいてなされた進行中の変更を復旧するための方法及び装置 |
US6687765B2 (en) * | 2001-01-16 | 2004-02-03 | International Business Machines Corporation | System, method, and computer program for explicitly tunable I/O device controller |
KR20020065788A (ko) * | 2001-02-07 | 2002-08-14 | 삼성전자 주식회사 | 엠 또는 이엠 비트 데이터 처리 겸용 리드 솔로몬 복호기및 그 복호 방법 |
US6766480B2 (en) | 2001-03-14 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Using task description blocks to maintain information regarding operations |
US6687872B2 (en) | 2001-03-14 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Methods and systems of using result buffers in parity 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 |
US6931576B2 (en) * | 2002-01-07 | 2005-08-16 | Sun Microsystems, Inc. | Data integrity device providing heightened error protection in a data processing system |
US6836820B1 (en) | 2002-02-25 | 2004-12-28 | Network Appliance, Inc. | Flexible disabling of disk sets |
US6959413B2 (en) * | 2002-06-18 | 2005-10-25 | Lsi Logic Corporation | Method of handling unreadable blocks during rebuilding of a RAID device |
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 |
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 |
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 |
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用パリティデータ生成回路およびガロア体乗算回路 |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
US7707165B1 (en) * | 2004-12-09 | 2010-04-27 | Netapp, Inc. | System and method for managing data versions in a file system |
-
2004
- 2004-11-19 US US10/994,088 patent/US7392458B2/en not_active Expired - Fee Related
-
2005
- 2005-11-21 CN CNB2005101267260A patent/CN100385405C/zh not_active Expired - Fee Related
-
2008
- 2008-05-23 US US12/126,521 patent/US8196018B2/en not_active Expired - Fee Related
- 2008-05-23 US US12/126,503 patent/US7779335B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储系统中计算奇偶校验的方法 |
CN102346694B (zh) * | 2007-03-29 | 2015-02-11 | 提琴存储器公司 | 一种在存储系统中计算奇偶校验的方法 |
CN103119563A (zh) * | 2010-09-29 | 2013-05-22 | 国际商业机器公司 | 在固态存储器设备中的解码 |
US9176814B2 (en) | 2010-09-29 | 2015-11-03 | International Business Machines Corporation | Decoding in solid state memory devices |
CN103119563B (zh) * | 2010-09-29 | 2016-03-23 | 国际商业机器公司 | 在固态存储器设备中的解码 |
CN102567151A (zh) * | 2010-12-24 | 2012-07-11 | 鸿富锦精密工业(深圳)有限公司 | Efi环境下sas硬盘测试系统及方法 |
CN113424262A (zh) * | 2019-03-21 | 2021-09-21 | 华为技术有限公司 | 一种存储校验方法及装置 |
CN113424262B (zh) * | 2019-03-21 | 2024-01-02 | 华为技术有限公司 | 一种存储校验方法及装置 |
CN110600070A (zh) * | 2019-09-18 | 2019-12-20 | 南威软件股份有限公司 | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 |
CN110600070B (zh) * | 2019-09-18 | 2021-11-05 | 南威软件股份有限公司 | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 |
Also Published As
Publication number | Publication date |
---|---|
US7392458B2 (en) | 2008-06-24 |
US20080229148A1 (en) | 2008-09-18 |
CN100385405C (zh) | 2008-04-30 |
US20080229155A1 (en) | 2008-09-18 |
US8196018B2 (en) | 2012-06-05 |
US20060123269A1 (en) | 2006-06-08 |
US7779335B2 (en) | 2010-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100385405C (zh) | 利用磁盘阵列奇偶校验的增强错误标识系统和方法 | |
CN100345098C (zh) | 磁盘阵列控制器及磁盘阵列环境中的运行方法 | |
CN100345099C (zh) | 磁盘阵列恢复数据时增加磁盘访问并行性的方法和系统 | |
CN100390746C (zh) | 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统 | |
CN100388221C (zh) | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 | |
CN101652752B (zh) | 用于独立磁盘冗余阵列(raid)系统的文件服务器 | |
US7827439B2 (en) | System and method of redundantly storing and retrieving data with cooperating storage devices | |
US8839028B1 (en) | Managing data availability in storage systems | |
US20090055682A1 (en) | Data storage systems and methods having block group error correction for repairing unrecoverable read errors | |
Lee | Software and Performance Issues in the Implementation of a RAID Prototype | |
US7340672B2 (en) | Providing data integrity for data streams | |
US10198311B1 (en) | Cross-datacenter validation of grid encoded data storage systems | |
US20100161898A1 (en) | Method for preserving data integrity by breaking the redundant array of independent disks level 1(raid1) | |
US9645745B2 (en) | I/O performance in resilient arrays of computer storage devices | |
US9928141B1 (en) | Exploiting variable media size in grid encoded data storage systems |
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: 20080430 |
|
CF01 | Termination of patent right due to non-payment of annual fee |