CN1776598A - 并入实时异或的有限域乘法器的独立磁盘冗余阵列环境 - Google Patents

并入实时异或的有限域乘法器的独立磁盘冗余阵列环境 Download PDF

Info

Publication number
CN1776598A
CN1776598A CNA2005101267222A CN200510126722A CN1776598A CN 1776598 A CN1776598 A CN 1776598A CN A2005101267222 A CNA2005101267222 A CN A2005101267222A CN 200510126722 A CN200510126722 A CN 200510126722A CN 1776598 A CN1776598 A CN 1776598A
Authority
CN
China
Prior art keywords
xor
galois field
field multiplier
data value
product
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
Application number
CNA2005101267222A
Other languages
English (en)
Other versions
CN100345098C (zh
Inventor
卡尔·E·福汉
罗伯特·E·盖尔布雷斯
阿德里安·C·格哈德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
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 CN1776598A publication Critical patent/CN1776598A/zh
Application granted granted Critical
Publication of CN100345098C publication Critical patent/CN100345098C/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
    • 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/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • 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/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Abstract

本发明提供了一种在包括多个磁盘驱动器型的磁盘阵列环境中用于执行暴露模式操作的方法、磁盘阵列控制器及电路配置。当在RAID或其它磁盘阵列环境中执行再同步、重建以及其它暴露模式的读操作时,使用基于硬件的有限域乘法器对来自磁盘驱动器的进入数据执行缩放以及对该经缩放的数据与工作缓冲器的内容进行XOR运算。结果是,依赖于并入一个或多个比例系数的奇偶校验带区方程式的RAID设计能够交迭对多个驱动器的读操作,从而增加并行性、减少所需缓冲器的数目并且提高性能。

Description

并入实时异或的有限域乘法器的独立磁盘冗余阵列环境
本申请涉及下述由Carl Edward Forhan、Robert Edward Galbraith和Adrian Cuenin Gerhard于同一天提交的美国专利申请:“MEHTOD AND SYSTEMFOR ENHANCED ERROR IDENTIFICATION WITH DISK ARRAY PARITYCHECKING”,“METHOD AND SYSTEM FOR IMPROVED BUFFER UTILIZATION FOR DISKARRAY PARITY UPDATES”,“METHOD AND SYSTEM FOR INCREASING PARALLELISMOF DISK ACCESSES WHEN RESTORING DATA IN A DISK ARRAY SYSTEM”和“METHODAND SYSTEM FOR RECOVERING FROM ABNORMAL INTERRUPTION OF A PARITY UPDATEOPERATION 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设计,例如,RAID-5设计,再同步奇偶校验或重建数据仅需要将奇偶校验带区中的所有数据一起读入并且进行XOR。假定XOR运算是符合结合性的(associative),并因而不依赖于次序,则一些常规的RAID-5设计已经能够并入“实时(on the fly)”XOR运算以提高性能以及减少所需的缓冲量。
具体地,并入“实时”XOR运算的RAID设计向RAID阵列中的相关驱动器发出读请求,然后当被请求的数据由每个驱动器返回时,将该数据直接读入基于硬件的XOR引擎并且与工作缓冲器的内容进行XOR运算。一旦所有驱动器都返回了所请求的数据,则工作缓冲器就包含了XOR运算的结果。公知地,给定XOR运算的结合性,每个驱动器返回其数据的精确顺序的事实是无关的。结果是,驱动器能够并行处理该读请求,并且对于该操作仅需要单个工作缓冲器。
与之形成对比,对于RAID-6设计,关于再同步和重建所使用的方程式(本文称之为“奇偶校验带区方程式”)并不是简单的XOR运算。相反,每个奇偶校验带区方程式通常包括多个对从每个驱动读取的相应数据进行缩放(scale)的比例系数(scaling coefficient),这要求在与来自其它驱动器的数据进行XOR运算成为乘法结果缓冲器的最终总和之前、将从RAID-6设计中的驱动器读取的许多或者所有数据值以常数进行缩放或者相乘。
由于该缩放要求,通常只有对每个驱动器使用了单独的缓冲器,才可以交迭(overlap)对多个驱动器的读请求。或者,如果希望最小化所使用的缓冲器的数目,则必须串行化读请求以便确保用适当的常数对每个进入的数据值进行缩放。
结果是,依赖于利用比例系数的奇偶校验带区方程式的常规RAID-6设计以及其它磁盘阵列环境常常受到下述困扰,即,由于缺乏可用的缓冲器和/或减少的并行性(parallelism),因此与再同步、重建以及其它暴露模式的操作相关的性能降低。
发明内容
本发明通过利用基于硬件的有限域乘法器对来自磁盘驱动的进入数据进行缩放以及将该经缩放的数据与工作缓冲器的内容进行XOR运算而解决了与现有技术相关联的上述以及其它问题。结果是,依赖于并入一个或多个比例系数的奇偶校验带区方程式的RAID和其它磁盘阵列设计能够交迭对多个驱动器的读操作并且由此增加并行性、减少所需缓冲器的数目、提高性能。
本发明的一个方面涉及一种在包括多个磁盘驱动器型的磁盘阵列环境中用于执行暴露模式操作的方法。该方法包括从磁盘驱动器的每个读取来自奇偶校验带区的相应数据值,其中来自奇偶校验带区的数据值根据奇偶校验带区方程式彼此相关,在该奇偶校验带区方程式中,相应数据值的至少一部分被按比例系数进行缩放。该方法还包括使用至少一个基于硬件的有限域乘法器对相应数据值的至少一部分进行缩放以生成多个乘积,以及对该多个乘积执行XOR运算。
本发明的另一方面涉及一种磁盘阵列控制器,该磁盘阵列控制器包括:在磁盘控制器的XOR引擎与多个磁盘驱动器的每个之间的相应数据路径,以及与每个数据路径通信的相应有限域乘法器电路,其中每个有限域乘法器电路包括用于从相应的数据路径接收数据值的第一相应输入、用于接收相应常数的第二相应输入、用于向XOR引擎传送相应数据值与相应常数的乘积的相应输出。
本发明的另一方面涉及一种电路配置,该电路配置包括:被配置成从多个磁盘驱动器接收数据值的多个数据路径;多个基于硬件的有限域乘法器电路,其中每个有限域乘法器电路与该多个数据路径之一通信,并被配置成在第一输入从相应的数据路径接收数据值,以及在第二输入接收相应常数,以及其中每个有限域乘法器电路被配置成输出相应数据值与相应常数的乘积。该电路配置还包括XOR引擎,其耦接到每个数据路径并且被配置成接收由每个有限域乘法器电路输出的乘积。
本发明的另一方面涉及一种依赖于两组有限域乘法器电路的磁盘阵列控制器和方法。第一组中的每个有限域乘法器电路连接到多个磁盘驱动器中的相应一个并且被配置成从该相应磁盘驱动器接收数据值、将该数据值乘以第一相应常数、将第一相应乘积提供给第一XOR引擎。第二组中的每个有限域乘法器电路同样也连接到多个磁盘驱动器中的相应一个并且被配置成从该相应磁盘驱动器接收数据值、将该数据值乘以第二相应常数、将第二相应乘积提供给第二XOR引擎。
附图说明
图1是根据本发明的原理的可以实现RAID存储控制器的示例性计算机系统的框图。
图2是图示图1的RAID控制器的主要组件的框图。
图3图示了支持实时XOR运算的RAID-5奇偶校验生成电路。
图4图示了包括多个用于每个数据磁盘驱动器的缓冲器的RAID-6奇偶校验生成电路。
图5图示了根据本发明原理的示例性RAID-6奇偶校验生成电路,其对于每个数据磁盘驱动器具有内嵌(in-line)的相应的硬件乘法器,从而可以实时执行XOR运算。
图6图示了根据本发明原理的示例性RAID-6环境,其中对于数据磁盘驱动器内嵌了单独的乘法器,从而两个奇偶校验计算可以并发地发生。
图7图示了用在图2的RAID-6控制器中的示例性的硬件实现的有限域乘法器。
具体实施方式
下文中讨论的实施例利用一个或多个基于硬件的有限域乘法器以对来自磁盘阵列的磁盘驱动器的进入数据进行缩放并且将经缩放的数据与工作缓冲器的内容进行XOR运算。下文中给出了与本发明一致的实现有限域乘法的磁盘阵列环境的多个实施例。但是,在讨论这样的实施例之前,首先提供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中所示的实施例本质上仅是示例性的。例如,应该理解,本发明可适用于其中奇偶校验带区方程式要求来自一个或多个磁盘的数据按常数比例缩放的其它磁盘阵列环境。还应该理解,与本发明一致的磁盘阵列环境可以利用驻留于计算机的主存储器中的完全软件实现的控制算法,或者计算机或控制器中通过程序代码操纵的某些功能可以以硬件逻辑电路实现,反之亦然。因而,本发明不应限于这里所讨论的具体实施例。
用于实时XOR的基于硬件的有限域乘法器
如上所述,在RAID-5系统中,重建数据或再同步奇偶校验数据要求读取来自所有其它驱动器的数据并且然后一起对之进行XOR运算。图3中描绘了实时XOR引擎的框图,并且该实时XOR引擎易于在RAID控制器上实现。当执行再同步时,将数据磁盘306-312读入XOR引擎302并且对之一起进行XOR运算以生成被写入缓冲器304并且然后被写入奇偶校验驱动器P314中的奇偶校验数据。除了将奇偶校验盘和其它的数据盘都读入并且一起进行XOR运算以生成要写入重建磁盘中的数据之外,数据驱动器的重建操作将是类似的。当执行暴露模式的读操作时,通过读取奇偶校验数据和其它磁盘的数据并且执行XOR运算来生成丢失磁盘的数据。因为XOR运算可以以任何次序来实现,所以从不同的磁盘306-312读取数据可以被执行为交迭的或并发的I/O操作,并且可以利用单个XOR引擎302和缓冲器304。如果XOR引擎302既担当输入缓冲器也担当目的缓冲器,则因为XOR引擎302仅将进入的数据值与其内部缓冲器的当前内容进行XOR运算,所以甚至可以省略单独的缓冲器304。
如上所述,在RAID-6中,需要对从每个磁盘驱动器读取的数据进行乘法或者缩放操作。因此,通常使用类似于图4的缓冲器和XOR运算配置。来自不同驱动器432-436的数据被读入单独的缓冲器426-430中、在通常由RAID控制器的软件微码执行的乘法步骤420-424中被乘以适当的比例系数、被写入额外的缓冲器406-410中。然后在XOR引擎402中对缓冲器406-410的内容一起进行XOR运算。然后将奇偶校验数据P通过缓冲器404写到奇偶校验盘414中。除了将奇偶校验盘P或Q和其它的数据盘都读入、进行乘法运算并且一起进行XOR运算以生成要写入重建磁盘中的数据之外,数据驱动器的重建操作将是类似的。
对于N个磁盘的阵列,通常必须从N-2个不同的磁盘读入数据以执行再同步、重建或暴露模式的读操作。为了使这些读I/O操作交迭,需要N-2个缓冲器。如果可用的缓冲器少于N-2个,则一些读I/O操作中将不得不等待直到其它读操作结束。对于任何重建、再同步或暴露模式的读,仅需要N-2个磁盘,因此在图4的配置中可以不利用诸如Q磁盘的一个磁盘。
本发明的实施例包括有限域乘法器,该有限域乘法器被作为插入到当由RAID控制从磁盘检索数据时的数据路径中的硬件来实现。特别地,图5图示了控制器中这样的配置的示意图。当将数据从每个驱动器526-530读入控制器中时,乘法器520-524将每个字节乘以预先由RAID控制器的软件微码确定的常数。可以将该乘法器逻辑重复n次以便处理那么多个不同的驱动器,或者对于所有的驱动器可以使用单个乘法器。然后,与参考图3描述的类似,可以将每个乘法器的结果输入到实时XOR引擎502中。这样,以诸如图3中所示的RAID-5实现中大体相同的方式,不同乘法器520-524的结果在引擎502中被一起执行XOR操作并且通过缓冲器504写入奇偶校验驱动器P514中。
结果,当将数据从驱动器读出时,将其乘以常数而不使用中间缓冲器。然后将该乘积输入到XOR引擎中而不管它们被读入的次序如何。据此,可以以交迭或者并发的方式执行不同磁盘的I/O读取操作。用于每个磁盘数据的常数乘法器的特定值是根据相关的奇偶校验带区方程式(例如上面的方程式(7))来确定的。这些常数是由RAID控制器的软件微码基于正执行的暴露模式的操作的类型预先确定的。
图7中描绘了有限域乘法器的一个示例性基于硬件的实现,其使用互相电耦接的基本逻辑门来执行乘法步骤。该特定乘法器在具有本原多项式x4+x+1的伽罗华域中在4位的字大小上操作。将来自磁盘的数据作为输入A0-A3 702读入以及将相应的常数作为输入B0-B3 704读入乘法器。作为结果得到的乘积输出为C0-C3 708。本领域普通技术人员应认识到,图7的乘法器本质上是示例性的,可以使用不同的本原多项式和字大小而不背离本发明的范围。同样可以利用其它的硬件实现。例如,在下面的表I中提供了8位乘法器的VHDL实现,其中本原多项式是x8+x4+x3+x2+1。这样的乘法器可以以各种硬件实施方式实现。
表I 8位乘法器
architecture rs8 of mult issignal terms:std_ulogic_vector(0 to 63);signal tems2:std_ulogic_vector(0-15);beginfillterms:for i in 0 to 63 generateterms(i)<=(oprl(i/8)and opr2(i-((i/8)*8)));end generate fillterms;terms2(14)<=terms(0);terms2(13)<=terms(1)XOR terms(8);terms2(12)<=terms(2)XOR terms(9)XOR terms(16);terms2(11)<-terms(3)XOR terms(10)XOR terms(17)XOR terms(24;)terms2(10)<=terms(4)XOR terms(11)XOR terms(18)XOR terms(25)XOR terms(32);terms2(9)<=terms(5)XOR terms(12)XOR terms(19)XOR terms(26)XOR terms(33)XOR terms(40;)terms2(8)<=terms(6)XOR terms(13)XOR terms(20)XOR terms(27)XOR terms(34)XOR terms(41)XOR terms(48);terms2(7)<=terms(7)XOR terms(43)XOR terms(21)XOR terms(28)XOR terms(35)XOR terms(42)XOR terms(49)XOR terms(56);terms2(6)<=terms(15)XOR terms(22)XOR terms(29)XOR terms(36)XOR terms(43)XOR terms(50)XOR terms(57);terms2(5)<=terms(23)XOR terms(30)XOR terms(37)XOR terms(44)XOR terms(51)XOR terms(58);terms2(4)<=terms(31)XOR terms(38)XOR terms(45)XOR terms(52)XOR terms(59);terms2(3)<=terms(39)XOR terms(46)XOR terms(53)XOR terms(60);terms2(2)<=terms(47)XOR terms(54)XOR terms(61);terms2(1)<=terms(55)XOR terms(62);terms2(0)<=terms(62);prod(0)<=terms2(7)XOR terms2(1)XOR terms2(12)XOR terms2(13;)prod(1)<=terms2(6)XOR terms2(10)XOR terms2(11)XOR terms2(12;)prod(2)<=terms2(5)XOR terms2(9)XOR terms2(10)XOR terms2(11);prod(3)<=terms2(4)XOR terms2(8)XOR terms2(9)XOR terms2(10)XOR terms2(14);prod(4)<=terms2(3)XOR terms2(8)XOR terms2(9)XOR terms2(11)XOR terms2(12);prod(5)<=terms2(2)XOR terms2(8)XOR terms2(10)XOR terms2(12XOR terms2(13);)prod(6)<=terms2(1)XOR terms2(9)XOR terms2(13)XOR terms2(14);prod(7)<=terms2(0)XOR terms2(8)XOR terms2(12)XOR terms2(13)XOR terms2(14);end rs8
上述内嵌的硬件乘法器电路也可以被配置成这样的方式,即允许两个奇偶校验编码P和Q的并发再同步,或者允许两个暴露的磁盘被重建。图6图示了这样的配置。在该示例性配置中,数据被分别从磁盘618的每个中读出,经过两个不同的硬件乘法器库(bank of hardware multiplier)606、608。来自这些相应乘法器的相应乘积然后在相应的XOR引擎602、604中一起进行XOR操作以生成要通过相应的缓冲器614、610写回到阵列中的其它两个磁盘-磁盘P616和磁盘Q612中的数据。据此,可以利用仅两个缓冲器以及一组交迭的读来再同步两组奇偶校验,或者在重建的情况下,可以以与重建一个驱动器相同的时间来重构两个暴露的驱动器。
这样,本发明的实施例提供了一种方法和系统,其在磁盘驱动器的数据路径中利用基于硬件的有限域乘法器,以便以数目减少了的缓冲器来执行实时XOR计算。在不背离本发明的精神和范围的条件下可以对所示的实施例进行各种修改。因而本发明在于所附的权利要求书。

Claims (23)

1.一种在包括多个磁盘驱动器类型的磁盘阵列环境中执行暴露模式操作的方法,该方法包括下述步骤:
从每个磁盘驱动器读取来自奇偶校验带区的相应数据值,其中来自奇偶校验带区的数据值根据奇偶校验带区方程式彼此相关,在该奇偶校验带区方程式中,相应数据值的至少一部分被按比例系数进行缩放;
使用至少一个基于硬件的有限域乘法器对相应数据值的至少一部分进行缩放以生成多个乘积;以及
对该多个乘积执行XOR运算。
2.如权利要求1所述的方法,其中,所述有限域乘法器本质上由多个电耦接的逻辑门组成。
3.如权利要求1所述的方法,其中,所述从每个磁盘驱动器读取来自奇偶校验带区的相应数据值的步骤包括:发出多个交迭的读请求从而由所述多个磁盘驱动器并发地处理该读请求。
4.如权利要求1所述的方法,其中,所述暴露模式的操作包括重建操作、再同步操作和暴露模式的读操作之一。
5.如权利要求1所述的方法,其中,所述执行XOR运算的步骤包括执行实时XOR运算。
6.如权利要求1所述的方法,还包括,与使用所述基于硬件的有限域乘法器对该相应数据值的一部分进行缩放以生成多个乘积并发地使用至少一个额外的、基于硬件的有限域乘法器,对相应数据值的至少一部分进行缩放以生成第二多个乘积,并且对该第二多个乘积执行XOR运算。
7.一种在磁盘阵列环境中用于从第一和第二奇偶校验方程式计算相应的第一和第二结果的方法,该方法包括下述步骤:
从多个磁盘驱动器的每个读取相应数据值;
经由第一相关联的硬件实现的有限域乘法器对该相应数据值的每个执行乘法以生成第一多个乘积;
与经由第一相关联的硬件实现的有限域乘法器执行乘法并发地经由第二相关联的硬件实现的有限域乘法器,对该相应数据值的每个执行乘法以生成第二多个乘积;
对该第一多个乘积执行第一XOR运算以生成该第一结果;以及
对该第二多个乘积执行第二XOR运算以生成该第二结果。
8.如权利要求7所述的方法,还包括下述步骤:
基于该第一和第二结果并发地再同步第一和第二奇偶校验值。
9.一种磁盘阵列控制器,包括:
在磁盘控制器的XOR引擎与多个磁盘驱动器的每个之间的相应数据路径;以及
与每个数据路径通信的相应有限域乘法器电路,每个有限域乘法器电路包括用于从相应的数据路径接收数据值的第一相应输入、用于接收相应常数的第二相应输入和用于向XOR引擎传送该相应数据值与该相应常数的乘积的相应输出。
10.如权利要求9所述的控制器,其中,所述XOR引擎被配置成对来自相应乘法器电路的乘积执行XOR运算以生成奇偶校验带区方程式的结果。
11.如权利要求10所述的控制器,其中,所述XOR引擎被配置成经由相应的数据路径传送所述结果到磁盘驱动器之一。
12.如权利要求9所述的控制器,其中,所述有限域乘法器电路的每个是以硬件实现的。
13.如权利要求9所述的控制器,其中,所述控制器是RAID-6控制器。
14.一种电路配置,包括:
多个数据路径,每个数据路径被配置成从多个磁盘驱动器之一接收数据值;
多个基于硬件的有限域乘法器电路,每个有限域乘法器电路与该多个数据路径之一通信,并被配置成在第一输入从相应的数据路径接收数据值,以及在第二输入接收相应常数,并且每个有限域乘法器电路被配置成输出该相应数据值与该相应常数的乘积;以及
XOR引擎,其耦接到每个数据路径并且被配置成接收由每个有限域乘法器电路输出的乘积。
15.如权利要求14所述的电路配置,其中,所述XOR引擎被配置成,在接收到来自有限域乘法器电路之一的乘积后,对所接收到的乘积与存储在缓冲器中的工作值执行XOR运算并且将其结果存储在该缓冲器中。
16.如权利要求15所述的电路配置,其中,所述XOR引擎被配置成在接收来自所有有限域乘法器电路的乘积之后输出奇偶校验带区方程式的结果。
17.一种包括如权利要求14所述的电路配置的集成电路元件。
18.一种包括如权利要求14所述的电路配置的RAID控制器。
19.一种程序产品,包括定义如权利要求14所述的电路配置的硬件定义程序;以及承载该硬件定义程序的计算机可读信号承载介质,其中该信号承载介质包括传输型介质和可记录型介质中的至少一个。
20.一种控制多个磁盘驱动器的磁盘阵列控制器,包括:
第一组有限域乘法器电路,第一组中的每个有限域乘法器电路连接到相应一个磁盘驱动器,并且被配置成从相应磁盘驱动器接收数据值、将该数据值乘以第一相应常数、以及将第一相应乘积提供给第一XOR引擎;和
第二组有限域乘法器电路,第二组中的每个有限域乘法器电路连接到相应一个磁盘驱动器,并且被配置来从相应磁盘驱动器接收数据值、将该数据值乘以第二相应常数、以及将第二相应乘积提供给第二XOR引擎。
21.如权利要求20所述的控制器,其中:
第一XOR引擎被配置成基于第一相应乘积生成第一奇偶校验带区方程式结果;以及
第二XOR引擎被配置成基于第二相应乘积生成第二奇偶校验带区方程式结果。
22.如权利要求20所述的控制器,其中,第一和第二组有限域乘法器电路被配置成并发地操作。
23.如权利要求20所述的控制器,其中,每个有限域乘法器电路本质上包括逻辑门。
CNB2005101267222A 2004-11-19 2005-11-21 磁盘阵列控制器及磁盘阵列环境中的运行方法 Expired - Fee Related CN100345098C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/994,099 US20060123271A1 (en) 2004-11-19 2004-11-19 RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US10/994,099 2004-11-19

Publications (2)

Publication Number Publication Date
CN1776598A true CN1776598A (zh) 2006-05-24
CN100345098C CN100345098C (zh) 2007-10-24

Family

ID=36575778

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101267222A Expired - Fee Related CN100345098C (zh) 2004-11-19 2005-11-21 磁盘阵列控制器及磁盘阵列环境中的运行方法

Country Status (2)

Country Link
US (5) US20060123271A1 (zh)
CN (1) CN100345098C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880525A (zh) * 2006-07-24 2013-01-16 马维尔国际贸易有限公司 用于独立磁盘冗余阵列(raid)系统的文件服务器
CN111104093A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 有限域运算方法、系统、运算设备和计算机可读存储介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015397B2 (en) 2012-11-29 2015-04-21 Sandisk Technologies Inc. Method and apparatus for DMA transfer with synchronization optimization
US7743308B2 (en) * 2005-02-09 2010-06-22 Adaptec, Inc. Method and system for wire-speed parity generation and data rebuild in RAID systems
US20060195657A1 (en) * 2005-02-28 2006-08-31 Infrant Technologies, Inc. Expandable RAID method and device
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
US8099549B1 (en) * 2007-12-31 2012-01-17 Emc Corporation System and method for erasure encoding
US8099550B1 (en) * 2007-12-31 2012-01-17 Emc Corporation System and method for single instance storage
US8200734B1 (en) * 2008-02-07 2012-06-12 At&T Intellectual Property Ii L.P. Lookup-based Galois field operations
US8370717B1 (en) * 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
JP5502883B2 (ja) * 2008-11-19 2014-05-28 エルエスアイ コーポレーション Raid情報のメモリ効率検査
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
US8583987B2 (en) * 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
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
US9405626B1 (en) * 2013-12-20 2016-08-02 Emc Corporation At risk data caching (ARDC)
KR102248207B1 (ko) * 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
TWI656442B (zh) 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器

Family Cites Families (48)

* 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
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
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 インターナショナル・ビジネス・マシーンズ・コーポレイション 冗長ディスクドライブアレイに対する同期方法
US5412661A (en) * 1992-10-06 1995-05-02 International Business Machines Corporation Two-dimensional disk array
WO1994029795A1 (en) * 1993-06-04 1994-12-22 Network Appliance Corporation A method for providing parity in a raid sub-system using a non-volatile memory
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
CN1124376A (zh) * 1994-12-06 1996-06-12 国际商业机器公司 改进的数据存储设备及操作方法
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
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 富士通株式会社 ディスクアレイ装置
US6112255A (en) * 1997-11-13 2000-08-29 International Business Machines Corporation Method and means for managing disk drive level logic and buffer modified access paths for enhanced raid array data rebuild and write update operations
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
US6351838B1 (en) * 1999-03-12 2002-02-26 Aurora Communications, Inc Multidimensional parity protection system
US6360348B1 (en) * 1999-08-27 2002-03-19 Motorola, Inc. Method and apparatus for coding and decoding data
AU2001250952A1 (en) * 2000-03-22 2001-10-03 Interwoven, Inc. Method and apparatus for storing changes to file attributes without having to store an additional copy of the file contents
US6665773B1 (en) * 2000-12-26 2003-12-16 Lsi Logic Corporation Simple and scalable RAID XOR assist logic with overlapped operations
US6687765B2 (en) * 2001-01-16 2004-02-03 International Business Machines Corporation System, method, and computer program for explicitly tunable I/O device controller
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
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
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用パリティデータ生成回路およびガロア体乗算回路
US7290199B2 (en) * 2004-11-19 2007-10-30 International Business Machines Corporation Method and system for improved buffer utilization for disk array parity updates
US7392458B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
US7707165B1 (en) * 2004-12-09 2010-04-27 Netapp, Inc. System and method for managing data versions in a file system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880525A (zh) * 2006-07-24 2013-01-16 马维尔国际贸易有限公司 用于独立磁盘冗余阵列(raid)系统的文件服务器
CN102880525B (zh) * 2006-07-24 2016-01-06 马维尔国际贸易有限公司 用于独立磁盘冗余阵列(raid)系统的文件服务器
CN111104093A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 有限域运算方法、系统、运算设备和计算机可读存储介质

Also Published As

Publication number Publication date
US20080040646A1 (en) 2008-02-14
US20080040542A1 (en) 2008-02-14
US20060123271A1 (en) 2006-06-08
CN100345098C (zh) 2007-10-24
US20080040415A1 (en) 2008-02-14
US20080040416A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
CN100345098C (zh) 磁盘阵列控制器及磁盘阵列环境中的运行方法
CN100345099C (zh) 磁盘阵列恢复数据时增加磁盘访问并行性的方法和系统
CN100390746C (zh) 提高磁盘阵列奇偶校验更新的缓冲器利用率的方法和系统
CN100385405C (zh) 利用磁盘阵列奇偶校验的增强错误标识系统和方法
CN100388221C (zh) 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统
CN102880525B (zh) 用于独立磁盘冗余阵列(raid)系统的文件服务器
US6453428B1 (en) Dual-drive fault tolerant method and system for assigning data chunks to column parity sets
KR100928882B1 (ko) Raid 장치 및 갈로아체를 이용한 데이터 복원 장치
US6282671B1 (en) Method and system for improved efficiency of parity calculation in RAID system
EP2096542A2 (en) System and method of redundantly storing and retrieving data with cooperating storage devices
US20050102548A1 (en) Method and apparatus for enabling high-reliability storage of distributed data on a plurality of independent storage devices
EP1960883A2 (en) Triple parity technique for enabling efficient recovery from triple failures in a storage array
US6871317B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US9594631B2 (en) Method and controller for processing data multiplication in RAID system
Hafner et al. Performance metrics for erasure codes in storage systems
Thomasian et al. A performance evaluation tool for RAID disk arrays
Curry et al. Arbitrary dimension reed-solomon coding and decoding for extended raid on gpus
US7398460B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
Wu et al. Code 5-6: An efficient mds array coding scheme to accelerate online raid level migration
Mishra et al. Dual crosshatch disk array: A highly reliable disk array 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: 20071024

Termination date: 20151121

EXPY Termination of patent right or utility model