CN102667727B - 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术 - Google Patents

用于实现从多达n个存储设备失效恢复的n路奇偶校验技术 Download PDF

Info

Publication number
CN102667727B
CN102667727B CN201080053524.7A CN201080053524A CN102667727B CN 102667727 B CN102667727 B CN 102667727B CN 201080053524 A CN201080053524 A CN 201080053524A CN 102667727 B CN102667727 B CN 102667727B
Authority
CN
China
Prior art keywords
equipment
parity check
diagonal
data
diagonal parity
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.)
Active
Application number
CN201080053524.7A
Other languages
English (en)
Other versions
CN102667727A (zh
Inventor
A.格尔
P.F.科尔贝特
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.)
NetApp Inc
Original Assignee
NetApp Inc
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 NetApp Inc filed Critical NetApp Inc
Publication of CN102667727A publication Critical patent/CN102667727A/zh
Application granted granted Critical
Publication of CN102667727B publication Critical patent/CN102667727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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)
  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种n路奇偶校验保护技术实现存储阵列的奇偶校验组中的上至n个存储设备(例如盘)失效的恢复,存储阵列被编码成防范n路盘失效。通过先配置具有m个数据盘的阵列来创建存储阵列,其中m=p-1并且p为质数,并且然后向阵列添加行奇偶校验盘,n-1个对角线奇偶校验盘。每个对角线奇偶校验集合(将对角线)与斜率关联,该斜率定义阵列的在对角线中包括的数据和行奇偶校验块。将奇偶校验组内的具有共同斜率的所有对角线组织为对角线奇偶校验类。对于每个对角线奇偶校验类,提供对角线奇偶校验存储盘用于存储对角线奇偶校验。

Description

用于实现从多达N个存储设备失效恢复的N路奇偶校验技术
相关申请的交叉引用
本申请是Peter F. Corbett等人的于2005年12月15日提交的现公布为2007年4月19日的美国公开号US2007-0089045的美国专利申请系列号11/304,369、标题为TRIPLE PARITY TECHNIQUE FOR ENABLING EFFICIENT RECOVERY FROM TRIPLE FAILURES IN A STORAGE ARRAY的继续部分申请,其是Peter F. Corbett的于2001年12月28日提交的现颁布为2006年1月31日的美国专利号6,993,701的ROW-DIAGONAL PARITY TECHNIQUE FOR ENABLING EFFICIENT RECOVERY FROM DOUBLE FAILURES IN A STORAGE ARRAY的美国专利申请系列号10/035,607的继续部分申请,通过引用将两个申请的教导结合于此。
技术领域
本发明涉及存储系统并且更具体地涉及一种用于对奇偶校验数据编码以实现从存储阵列的多个失效存储设备恢复的技术。
背景技术
存储系统通常包括按照需要可以向其中录入数据并且可以从其获得数据的一个或者多个存储设备。可以根据多种存储架构(包括但不限于网络附着存储环境、存储区域网络和直接附着到客户端或者主机计算机的盘组件)实施存储系统。存储设备通常为盘驱动器,其中术语“盘”通常描述自足式(self-contained)旋转磁介质存储设备。术语“盘”在本上下文中与硬盘驱动器(HDD)或者直接存取存储设备(DASD)同义。
存储系统内的盘通常组织为一组或者多组,其中每组作为冗余独立(或者廉价)盘阵列(RAID)来操作。多数RAID实施通过跨RAID组中给定数量的物理盘的数据条的冗余写入和适当存储关于条式数据的冗余信息来增强数据存储的可靠性/完整性。冗余信息实现在存储设备失效时丢失数据的恢复。
在盘阵列的操作中,预期盘可能失效。高性能存储系统的目的是使平均数据丢失时间(MTTDL)尽可能长,优选地比系统的预计使用寿命长得多。当一个或者多个盘失效时可能丢失数据,从而使得不可能从设备恢复数据。避免数据丢失的典型方案包括镜像、备份和奇偶校验保护。镜像在存储资源(诸如盘)的消耗方面为一种昂贵的解决方案。备份未保护从创建备份起修改的数据。奇偶校验方案为常用,因为它们提供数据的冗余编码,这允许单次擦除(一个盘的丢失)而向系统添加仅一个盘驱动器。
奇偶校验在计算机系统中用来防范丢失存储设备(诸如盘)上的数据。可以通过跨越保持不同数据的多个相似盘对特定字大小(通常为一位)的数据求和(通常以2为模)并且然后在附加相似盘上存储结果来计算奇偶校验值。也就是说,可以对由每个盘上的对应位置的位组成的1位宽的矢量计算奇偶校验。当对1位宽的矢量计算时,奇偶校验可以是计算的和或者它的补码;这些分别称为偶奇偶校验和奇奇偶校验。对1位矢量的加法和减法均等同于异或(XOR)逻辑运算。然后保护数据以免丢失任何一个盘或者任何一个盘上的数据的任何部分。如果存储奇偶校验的盘丢失,则可以根据数据再生奇偶校验。如果数据盘之一丢失,则可以通过将幸存数据盘的内容相加到一起并且然后从存储的奇偶校验减去结果来再生数据。
通常,盘划分成奇偶校验组,每组包括一个或者多个数据盘和奇偶校验盘。奇偶校验集合是包括若干数据块和一个奇偶校验块的集合,其中奇偶校验块为所有数据块的XOR。奇偶校验组是从其选择一个或者多个奇偶校验集合的盘集合。盘空间划分成条而每条包含来自每个盘的一个块。条的块通常在奇偶校验组中的每个盘上的相同位置。在条内,除了一个块之外的所有块是包含数据的块(“数据块”),并且一个块是包含通过所有数据的XOR而计算的奇偶校验的块(“奇偶校验块”)。如果奇偶校验块都存储于一个盘上、由此提供包含所有(并且仅有)奇偶校验信息的单个盘,则提供RAID-4实施。如果奇偶校验块通常以旋转模式被包含于每个条中的不同盘内,则实施为RAID-5。术语“RAID”及其各种实施是公知的并且公开于D. A. Patterson、G.A.Gibson和R.H.Katz的1988年6月的Proceedings of the International Conference on Management of Data (SIGMOD)的A Case for Redundant Arrays of Inexpensive Disks (RAID)中,通过引用将其内容结合于此。
如这里所用,术语“编码”意味着在数据块的预定子集上计算冗余值,而术语“解码”意味着通过使用数据块子集和冗余值来重建数据或者奇偶校验块。如果一个盘在奇偶校验组中失效,则该的内容可以在一个或者多个备用盘上通过将剩余数据块的内容相加并且从奇偶校验块减去结果来解码(重建)。由于对1位字段的二的补码加法和减法均等同于XOR运算,所以这一重建由所有幸存数据和奇偶校验块的XOR构成。类似地,如果奇偶校验盘丢失,则可以用相同方式根据幸存数据重新计算它。
奇偶校验方案一般提供保护以防奇偶校验组内的单个盘失效。这些方案也可以防范多个盘失效,只要每个失效出现于不同奇偶校验组内。然而如果两个盘在奇偶校验组内同时失效,则遭受不可恢复的数据损失。两个盘在奇偶校验组内的同时失效是相当普遍的事件,特别是因为盘“磨损”以及由于与盘的操作有关的环境因素。在本上下文中,两个盘在奇偶校验组内同时失效称为“双失效”。
通常由于一个盘失效并且在尝试从第一失效恢复之时另一个盘随后失效而出现双失效。恢复或者重建时间依赖于存储系统的活动水平。也就是说,在重建失效盘期间,有可能的是存储系统保持“在线”并且继续服务于访问(即读取和/或写入)数据的请求(来自客户端或者用户)。如果存储系统忙于服务于请求,则用于重建的流逝时间增加。重建过程时间也随着存储系统中的盘大小和数量增加而增加,因为必须读取所有幸存盘以重建丢失的数据。另外,双盘失效率与奇偶校验组中的盘数量的平方成比例。然而具有小奇偶校验组是昂贵的,因为每个奇偶校验组需要专用于冗余数据的整个盘。
盘的另一失效模式是介质读取错误,其中不能读取单个盘或者盘的扇区。如果在存储阵列中维持奇偶校验,则可以重建不可读数据。然而如果一个盘已经失效,则在阵列中的另一个盘上的介质读取错误将造成丢失数据。这是第二双失效形式。
在某些存储环境中,普遍利用大量更低质量的盘驱动器(如例如用于在向带或者其他长期归档系统备份数据之前用作短期存储的近线(near storage)存储系统)。然而随着阵列中盘的数量增加,多个失效将出现的概率也增加。更廉价存储设备的更低平均失效时间(MTTF)加重该概率。因此有可能让存储系统经历三重或者更大失效,也就是说,存储阵列中的三个或者更多设备的同时失效。另外,诸如串行附着SCSI(SAS)、光纤信道(FC)等诸多存储协议已经造成用于盘架的越来越复杂的架构,这已经造成这样的架经历的失效数量随之增加并且又造成丢失对连接到失效盘架的每个盘的访问。
更一般而言,需要一种高效并且可以用于奇偶校验组中的n路失效(即,阵列中多达n个存储设备的失效)的广义擦除代码。针对n路失效的此类附加保护可能是保证服从受管制的产业、长期归档存储、灾难恢复等所需要的。
发明内容
本发明通过提供一种n路奇偶校验保护技术来克服现有技术的缺点,该技术实现存储阵列的奇偶校验组中多达n个存储设备(例如盘)失效的恢复,该奇偶校验组被编码成防范n路盘失效。配置阵列使得在阵列的存储设备失效的情况下可以使用用于求解线性方程组的任何技术(例如使用矩阵数学等)来重建阵列的内容。通过首先用m个数据盘配置阵列来创建存储阵列,其中m=p-1并且p为质数(即仅可由1和其本身除尽的数)。行奇偶校验可以例如以与RAID 4相似的方式存储于专用行奇偶校验盘上或者可以例如以与RAID 5相似的方式在数据盘之中存储和旋转。
然后向阵列添加n-1个对角线奇偶校验盘以提供共计n个奇偶校验位(即1个行奇偶校验位和n-1个对角线奇偶校验位)。每个对角线奇偶校验集合(即对角线)与斜率关联,该斜率定义在对角线中包括的阵列的数据和行奇偶校验块。也就是说,整个阵列内的落在相同斜率上的所有数据和行奇偶校验块与对角线关联。将奇偶校验组内的具有共同斜率的所有对角线组织为对角线奇偶校验类。对于每个对角线奇偶校验类,提供对角线奇偶校验存储盘用于存储对角线奇偶校验。如果对角线奇偶校验类的最大数量限于p-1,则添加的对角线奇偶校验盘的数量可以由系统管理员设置以实现所需保护水平。换而言之,根据这里描述的一个示例实施例,n≤p,因为n-1个对角线奇偶校验类的数量不能超过p-1以保证所得方程组可求解。一旦添加到阵列,就将每个对角线奇偶校验盘划分成块,以及数据盘的块并且如果适用则将行奇偶校验盘组织成条。然后通过XOR行奇偶校验集合(即行)的数据块来计算行奇偶校验,并且计算的奇偶校验然后存储于行奇偶校验盘或者适当数据盘上的行奇偶校验块中。
然后向n-1个对角线奇偶校验类的对角线分配所有数据和行奇偶校验块。选择对角线奇偶校验类之一,并且计算用于该类的每个对角线(即具有共同(相同)斜率的对角线)的对角线奇偶校验。计算的对角线奇偶校验然后存储于适当对角线奇偶校验盘上。如果有附加对角线奇偶校验类,则该过程针对每个附加类重复。
附图说明
通过结合附图参考描述可以更好地理解本发明的上述和更多优点,在附图中相同标号指示相同或者功能相似元素:
图1是包括根据本发明一个示例实施例的存储系统的环境的示意框图;
图2是根据本发明一个示例实施例的用于在图1的存储系统上使用的示例性存储操作系统的示意框图;
图3是详述根据本发明一个示例实施例的用于对奇偶校验编码的过程的步骤的流程图;
图4是根据本发明一个示例实施例的示出了奇偶校验条的盘阵列的示意框图;
图5是根据本发明一个示例实施例的示出了奇偶校验条的盘阵列的示意框图;并且
图6详述是根据本发明一个示例实施例的用于从一个或者多个盘失效中恢复的过程的步骤的流程图。
具体实施方式
A.存储系统环境
图1是环境100的示意框图,该环境100包括根据本发明一个示例实施例的可能是有利的存储系统系统120。这里描述的发明性技术可以应用于任何类型的专用(例如,文件服务器或者文件管理器)或者通用计算机(包括独立计算机或者其部分),计算机被具体化为或者包括存储系统120。另外,本发明的技术可以适应多种存储系统架构(包括但不限于网络附着存储环境、存储区域网络和直接附着到客户端或者主机计算机的盘组件)。术语“存储系统”因此应当广义理解为除了配置成执行存储功能并且与其他设备或者系统关联的任何子系统之外还包括这样的布置。
在示例实施例中,存储系统120包括系统总线132互连的处理器122、存储器124、网络适配器125和存储适配器128。存储器124包括处理器可寻址的存储位置以及用于存储与本发明关联的软件程序代码和数据结构的适配器。处理器和适配器又可以包括被配置成执行软件代码并且操纵数据结构的处理元件和/或逻辑电路。存储操作系统200(该系统的部分通常驻留于存储器中并且由处理元件执行)尤其通过调用由存储系统执行的存储操作在功能上组织系统120。本领域技术人员将清楚其他处理和存储器装置(包括各种计算机可读介质)可以用于存储和执行与这里描述的发明技术有关的程序指令。
网络适配器125包括适于通过点到点链路、广域网、通过公共网络(因特网)实施的虚拟私有网络或者共享的局域网将存储系统120耦合到一个或者多个客户端110的多个端口。网络适配器125因此可以包括将节点连接到网络而需要的机械、电和信令电路。作为示例,网络105可以具体化为以太网网络或者光纤信道(FC)网络。每个客户端110可以通过根据预定义协议(诸如TCP/IP)交换离散数据帧或者分组来通过网络105与存储系统120通信。
存储适配器128与在系统120上执行的存储操作系统200配合以访问用户(或者客户端)所请求的信息。信息可以存储于任何类型的可写入存储设备介质(诸如视频带、光的、DVD、磁带、磁泡存储器、电子随机访问存储器、微机电、闪存或者其他固态介质和/或适于存储信息(包括数据和奇偶校验信息)的任何其他类似介质)附着阵列上。然而,如这里示例描述的那样,信息存储于阵列140的盘150(诸如HDD和/或DASD)上。存储适配器包括通过I/O互连布置(诸如常规高性能、FC串行链路拓扑)耦合到盘的输入/输出(I/O)接口电路。
阵列140上的信息存储优选地实施为包括物理存储盘150的集群的一个或者多个存储“卷”,从而定义盘空间的总体逻辑布置。每个卷虽然未必但是一般与它自己的文件系统关联。在卷/文件系统内的盘通常组织为一个或者多个组,其中每个组作为冗余独立(或者廉价)盘阵列(RAID)来操作。多数RAID实施通过跨RAID组中的给定数量物理盘的数据“条”的 冗余写入和适当存储关于条式数据的奇偶校验信息来增强数据存储的可靠性/完整性。
本发明包括一种使用行奇偶校验和盘阵列中的多个对角线奇偶校验来提供多存储设备失效恢复的n路奇偶校验(nP)技术。发明性技术优选地由存储操作系统200的盘存储模块(在图2的240示出)实施以提供一种用于跨存储系统中的多个存储设备(诸如盘)构造条中的奇偶校验的方法和系统。本发明与先前已知的方案相比减少所需的奇偶校验信息的计算量而也减少用于从多个盘失效中恢复的计算。此外,本发明提供均匀条深度(每个盘包含每条相同块数量)和与n个盘相当相等的奇偶校验信息数量,该数量是允许从任何n个盘失效重建而需要的最小量。
广而言之,本发明包括m+n个存储设备,其中m=p-1并且p为质数而且n为可以恢复的失效数量。奇偶校验一般计算为数据块的异或(XOR)以形成奇偶校验块。一般对每个输入块中的相同1位字段执行XOR运算以产生单个对应位输出。如所言,XOR运算等同于两个1位字段的二的补码加法或者减法。冗余奇偶校验信息也可以被计算为所有输入中的相同大小的多位字段(例如8、16、32、64、128位)之和。例如可以通过对32位字段使用二的补码加法将数据相加以产生冗余信息的每个32位冗余信息来计算奇偶校验等同。这仅为如下情况,该情况假设未依赖于如下事实:涉及两次向块中的相同输入的XOR运算产生块的原始内容,因为块与其本身的XOR产生零。
本领域技术人员将清楚块(用于奇偶校验计算的目的)可以或可以不对应于文件块、数据库块、盘扇区或者任何其他合宜大小的单元。不存在对用于奇偶校验计算的块大小具有与系统中所用任何其他块大小的任何关系的要求。然而预计一个或者多个整数个奇偶校验块将适配成如下单元,该单元被定义为一个或多个整数个盘扇区。在许多情况下,某一数量的块将对应于文件系统或者数据库块并且将大小通常为4k(4096)字节或者两个字节的某些高次幂(例如8k、16k、32k、64k、128k、256k)。
这里示例性描述的示例系统执行全条写入操作。具体而言,通常为4k或者8k字节的个别文件块可以划分成仅用于奇偶校验计算的更小块,使得可以向阵列的盘写入例如4k字节大小的块的全条。当向盘写入全条时,在向盘写入结果之前可以在存储器中执行所有奇偶校验计算,因此减少计算和更新盘上的奇偶校验的负担。
B.存储操作系统
为了促进对盘的访问,存储操作系统200实施与虚拟化模块配合以提供如下功能的随处写入文件系统,该功能“虚拟化”由盘提供的存储空间。文件系统将信息在逻辑上组织为盘上的已命名目录和文件对象(下文为“目录”和“文件”)的分级结构。每个“盘上”文件可以实施为盘块集合,这些盘块被配置成存储信息(诸如数据),而目录可以实施为名称以及指向其他文件和目录的链接存储于其中的具体格式化的文件。虚拟化系统允许文件系统将信息进一步在逻辑上组织为盘上的已命名的vdisk的分级结构,由此提供一种用于通过实现对文件和目录的基于文件(NAS)的访问而又在基于文件的存储平台上进一步实现对vdisk的基于块(SAN)的访问来存储的集成NAS和SAN系统方式。
在示例实施例中,存储操作系统优选为可从NetApp, Inc., Sunnyvale, California获得的NetApp® Data ONTAP®操作系统,该操作系统实施Write Anywhere File Layout(WAFL®)文件系统。然而清楚地设想可以增强任何存储操作系统(包括在位(in-place)写入文件系统)用于根据这里描述的发明性原理来使用。这样,当运用术语“ONTAP”时,它应当被广义理解为指代以否则可适应本发明教导的任何存储操作系统。
如这里所用,术语“存储操作系统”一般指代可在计算机上操作的计算机可执行代码,该计算机可执行代码管理数据访问并且可以在存储系统的情况下实施数据访问语义(诸如Data ONTAP®存储操作系统),其实施为微内核。存储操作系统也可以实施为被配置用于如这里描述的存储应用的、在通用操作系统(诸如UNIX®或者Windows XP®)之上操作的应用程序或者实施为具有可配置功能的通用操作系统。
此外,本领域技术人员将理解这里描述的发明技术可以应用于具体化为或者包括存储系统的任何类型的专用(例如存储服务装置)或者通用计算机(包括独立计算机或者其部分)。另外,本发明的教导可以适应多种存储系统架构,包括但不限于网络附着存储环境、存储区域网络和直接附着到客户端或者主机计算机的盘组件。术语“存储系统”因此应当广义理解为除了被配置成执行存储功能并且与其他设备或者系统关联的任何子系统之外还包括这样的布置。
图2是可以与本发明有利地一起使用的存储操作系统200的示意框图。存储操作系统包括一系列软件模块和/或引擎,这些软件模块和/或引擎被组织以形成集成网络协议栈或者更一般地为多协议引擎,该引擎提供用于客户端使用块和文件访问协议来访问多协议存储系统上存储的信息的数据路径。协议栈包括网络驱动器(例如吉比特以太网驱动器)的介质访问模块210,该模块对接到网络协议模块,诸如IP模块212及其支持传送机制、TCP模块214和用户数据报协议(UDP)模块216。文件系统协议模块提供多协议文件访问并且为此包括针对DAFS协议218、NFS协议220、CIFS协议222和超文本传送协议(HTTP)协议224的支持。VI模块226实施VI架构以提供如DAFS协议218需要的直接访问传送(DAT)能力(诸如RDMA)。
iSCSI驱动器模块228提供通过TCP/IP网络协议层的块协议访问,而FC驱动器模块230与网络适配器一起操作以接收和传输去往和来自存储系统的块访问请求和响应。FC和iSCSI驱动器向lun(vdisk)提供FC特定和iSCSI特定访问控制,并且因此管理vdisk向iSCSI或者FCP或者替代地在访问多协议存储系统上的单个vdisk时向iSCSI和FCP两者的导出。此外,存储操作系统包括实施盘存储协议(诸如RAID协议)的盘存储模块240(诸如RAID系统)和实施盘访问协议(如例如SCSI协议)的盘驱动器模块250。
在本发明的示例实施例中,盘存储模块(例如RAID系统240)实施新颖的nP技术。作为示例,在写入操作期间,RAID系统240根据下文描述的编码技术对数据编码并且响应于检测到存储设备的一个或者多个失效来如下文进一步描述的那样重建数据。应当注意,在替代实施例中,新颖的nP技术可以由除了RAID系统240之外的存储操作系统的模块实施。这样,对实施新颖的nP技术的RAID系统240的描述应当理解为仅为示例性的。
桥接盘软件模块与集成网络协议栈层的是由文件系统265实施的虚拟化系统255,该文件系统265与示例地具体化为例如vdisk模块270和SCSI目标模块260的虚拟化模块交互。应当注意可以用软件、硬件、固件或者其组合实施vdisk模块270、文件系统265和SCSI目标模块260。vdisk模块270与文件系统265交互以响应于系统管理员向多协议存储系统120发出命令来实现管理接口的访问。实质上,vdisk模块270通过除其他之外来实施系统管理员通过用户接口发出的vdisk(lun)综合集合来管理SAN部署。将这些vdisk命令转换成与文件系统265和SCSI目标模块260交互以实施vdisk的原语文件系统操作(“原语”)。
SCSI目标模块260继而通过提供将lun转译成特殊vdisk文件类型的映射过程来发起盘或者lun的仿真。SCSI目标模块示例地布置于FC和iSCSI驱动器230、228与文件系统265之间以由此提供在SAN块(lun)空间与文件系统空间之间的虚拟化系统255的转译层,其中lun表示为vdisk。通过在文件系统265之上“布置”SAN虚拟化,多协议存储系统反转现有系统所采取的方式以由此提供用于实质上所有存储访问协议的单个统一存储平台。
文件系统265示例地是基于消息的系统;这样,SCSI目标模块260将SCSI请求改换成如下消息,该消息代表涉及文件系统的操作。例如,SCSI目标模块生成的消息可以包括操作类型(例如读取、写入)连同在文件系统中表示的vdisk对象的路径名(例如路径描述符)和文件名(例如特殊文件名)。SCSI目标模块260将消息传递到文件系统265中例如作为其中执行操作的函数调用。
文件系统265示例地实施WAFL文件系统,该文件系统具有盘上格式表示,该盘上格式表示是使用例如4千字节(KB)块并且使用inode以描述文件的基于块的。WAFL文件系统使用文件以存储如下元数据,该元数据描述它的文件系统的布局;这些元数据文件除其他之外包括inode文件以及其他文件。文件句柄(即包括inode编号的标识符)用来从盘取回inode。
在操作上,来自客户端110的请求作为分组通过计算机网络105来转发并且转发到存储系统120上,其中在网络适配器125接收它。网络驱动器处理分组并且如果适合则将它传递到网络协议和文件访问模块用于在向随处写入文件系统265转发之前的附加处理。这里,文件系统生成如下操作,这些操作用于如果请求的数据未驻留于“核中”(即存储器124中)则从盘150加载(取回)它。如果信息未在存储器中,则文件系统265使用inode编号来索引到inode文件中以访问适当条目并且取回逻辑卷块编号(vbn)。文件系统然后向RAID系统240传递包括逻辑vbn的消息结构;逻辑vbn映射到盘标识符和盘块编号(盘,dbn)并且发送到盘驱动器器系统250的适当驱动器(例如SCSI)。盘驱动器器访问来自指定盘150的dbn并且在存储器中加载所请求的(一个或多个)数据块用于由存储系统处理。在完成请求时,存储系统(和操作系统)通过网络105向客户端110返回答复。
应当注意可以替代地用硬件实施针对在存储系统接收的客户端请求来执行数据存储访问而需要的上文描述的经过存储操作系统层的软件“路径”。也就是说,在本发明的一个替代实施例中,存储访问请求数据路径可以实施为现场可编程门阵列(FPGA)或者专用集成电路(ASIC)内具体化的逻辑电路。这一类型的硬件实施增加存储系统120响应于客户端110发出的请求而提供的存储服务的性能。另外,在本发明的另一替代实施例中,适配器125、128的处理元件可以被配置成分别从处理器122卸下一些或者所有分组处理和存储访问操作以由此增加系统所提供的存储服务的性能。清楚地设想可以用硬件、固件或者软件实施这里描述的各种过程、架构和程序。
如这里所用,术语“存储操作系统”一般指代可操作的计算机可执行代码以执行存储系统中的存储功能,例如管理数据访问并且可以实施文件系统语义。在该意义上,ONTAP软件使此类存储操作系统的示例,该存储操作系统实施为微内核并且包括实施WAFL文件系统语义并且管理数据访问的WAFL层。存储操作系统额可以实施为在通用操作系统(诸如UNIX®或者Windows XP®)之上操作的应用程序或者实施为具有可配置功能的通用操作系统,其被配置用于如这里描述的存储应用。
此外,本领域技术人员将理解这里描述的发明技术可以应用于具体化为或者包括存储系统120的任何类型的专用(例如文件服务器、文件管理器或存储系统)或者通用计算机(包括独立计算机或者其部分)。另外,本发明的教导可以适应多种存储系统架构,包括但不限于网络附着存储环境、存储区域网络和直接附着到客户端或者主机计算机的盘组件。术语“存储系统”因此应当广义理解为除了被配置成执行存储功能并且与其他设备或者系统关联的任何子系统之外还包括这样的布置。
C.奇偶校验编码
本发明提供一种n路奇偶校验保护技术,该技术实现存储阵列的奇偶校验组中多达n个盘(或者其他存储设备)失效的恢复,该奇偶校验组被编码成防范n路盘失效。配置阵列使得在阵列的存储设备失效的情况下,可以使用用于求解线性方程组的任何技术来重建阵列的内容。通过首先用m个数据盘配置阵列来创建存储阵列,其中m=p-1并且p为质数。行奇偶校验可以例如以与RAID 4相似的方式存储于专用行奇偶校验盘上或者可以例如以与RAID 5相似的方式在数据盘之中存储和旋转。
然后向阵列添加n-1个对角线奇偶校验盘以提供共计n个奇偶校验位,即1个行奇偶校验位和n-1个对角线奇偶校验位。每个对角线奇偶校验集合(即对角线)与如下斜率关联,该斜率定义在对角线中包括的阵列的数据和行奇偶校验块。将奇偶校验组内具有共同斜率的所有对角线组织为对角线奇偶校验类。对于每个对角线奇偶校验类,提供对角线奇偶校验存储盘用于存储对角线奇偶校验。假如对角线奇偶校验类,提供对角线奇偶校验存储盘以存储对角线奇偶校验。如果对角线奇偶校验类的最大数量限制为p-1,则添加的对角线奇偶校验盘的数量可以由管理员设置以实现所需保护水平。换而言之,根据这里描述的一个示例实施例,n≤p,因为n-1个对角线奇偶校验类的数量不能超过p-1。一旦添加到阵列,将每个对角线奇偶校验盘划分成块,以及数据盘的块并且如果适用则将行奇偶校验盘组织成条。然后通过XOR行奇偶校验集合(即,行)的数据块来计算行奇偶校验,并且计算的奇偶校验然后存储于行奇偶校验盘或者适当数据盘上的行奇偶校验块中。
然后向n-1个对角线奇偶校验类的对角线分配所有数据和行奇偶校验块。选择对角线奇偶校验类之一,并且计算用于该类的每个对角线(即具有共同斜率的对角线)的对角线奇偶校验。计算的对角线奇偶校验然后存储于适当对角线奇偶校验盘上。如果有附加的对角线奇偶校验类别,则该过程针对每个附加类重复。
图3是图示了根据本发明一个示例实施例的用于实施n路奇偶校验技术的过程300的步骤的流程图。过程300在步骤305中开始并且继续步骤310,其中起初用等于数量m的多个存储设备(诸如盘)来配置阵列,其中m=p-1而p为质数。m个盘代表阵列内的数据盘。阵列可以例如由管理员手动配置或者可以由在存储系统120上执行的软件代理(诸如存储操作系统的盘存储模块240)自动配置。在步骤315中,添加附加的奇偶校验盘使得整个阵列由多达m+n个盘构成。作为示例,这些盘可以手动或者由软件代理(例如盘存储模块240)添加。在这一点,阵列包括p-1个数据盘、一个行奇偶校验盘和多达n-1个对角线奇偶校验盘。作为示例,对于每个对角线奇偶校验类,提供对角线奇偶校验盘以存储用于该对角线奇偶校验类的对角线奇偶校验。然而如下文进一步讨论的那样,并未要求在配置阵列时利用最大数量的对角线奇偶校验类。根据本发明的教导,阵列可以被配置成支持检测n个设备的失效而又能够支持纠正(例如重建)那些失效设备上包含的数据。根据本发明的一个示例实施例,n≤p,因为对角线奇偶校验类的数量不能超过p-1。
在步骤320中,盘例如由盘存储模块240划分成块,并且在步骤325中,将块组织成条。在步骤330中,盘存储模块240然后将行的每个数据块XOR成行的行奇偶校验块,该行的奇偶校验块包含每个数据盘上的相同位置的所有数据块的XOR。这作为示例是以与常规RAID 4行奇偶校验编码相似的方式执行的。应当注意,在替代实施例中,与RAID 5布置相似,行奇偶校验的位置可以移动。这样,RAID 4编码技术的描述应当理解为示例性。
所有数据块和行奇偶校验块然后在步骤335中例如由盘存储模块240分配给对角线奇偶校验类的对角线。如上文所言,为每个对角线奇偶校验类提供单独的对角线奇偶校验存储设备以存储该类内的对角线的对应对角线奇偶校验。应当注意,在本发明的一个示例实施例中,有具有可变斜率的三个或者更多对角线奇偶校验类。然而在替代实施例中,可以利用任何正整数数量(多达n-1)的对角线奇偶校验类。在上文并入的美国专利申请系列号11/304,369中,阵列可以配置有具有具体斜率值的每个对角线(例如斜率+1的对角线)和具有该对角线的反斜率的反对角线(例如斜率-1的反对角线)。作为示例,本发明通过使阵列能够配置有具有任何整数值斜率的对角线并且无需具有对角线的反斜率的反对角线来对上文并入的申请的技术进行改进。如上文描述的那样,并入的申请描述如下技术,其中阵列可以配置有具有具体斜率值的每个对角线(例如斜率+1的对角线)和具有对角线的反斜率的反对角线(例如斜率-1的反对角线)。因此,例如,本发明使管理员能够用例如具有斜率+1和+2的对角线奇偶校验类的对角线配置三重(例如n=3)奇偶校验阵列。
作为示例,可以将数据块和行奇偶校验块的阵列的每个成员编索引到它们的分配位置A[i,j],其中i代表行索引并且j代表列索引并且A[]代表阵列。作为示例,这些索引值中的每个索引值可以范围从0至p-1。
使用二维阵列的这一表示,具有斜率s的对角线编号x可以由下式定义:
A[(x+s*j) mod p, j],其中j={0…p-1}
可以在常规几何意义上理解术语斜率(即上/下移动位置的数量除以左/右移动位置的数量之比)。例如斜率+2将代表如下对角线,其中下一位置为向下两个位置并且向右一个位置,斜率-4将代表如下对角线,其中下一位置为向上四并且向右一,等等。作为示例,n路奇偶校验由盘存储模块240实施。然而这里可以实施于其他模块中或者可以分布于多个模块之中。
图4是根据本发明一个示例实施例的示例性条化布置的示意框图。该布置为示例性阵列,其中p=7并且s=+2。应当注意仅示出了数据盘和行奇偶校验盘,因为在其他对角线中未包括对角线奇偶校验盘。该布置中所示的每个编号代表向给定对角线分配的一个或者多个块。因此,图4内的每个0代表在具有斜率+2的对角线0上存在的一个或者多个块,等等。对角线从0到p-1编号,使得在这一示例中,它们从0到6编号。示例图4中所示的每个对角线具有相同斜率(即+2)并且因此是相同对角线奇偶校验类的部分,其对角线奇偶校验存储于单个对角线奇偶校验存储设备上。如将从图4理解的那样,对角线卷绕于阵列的边缘周围以保证阵列的所有数据和行奇偶校验块由至少一个对角线覆盖。假设最后一行(行p-1)包含预定义值(例如0)。这在图4中由虚线中的最后一行指示。让一行具有预定义值使对角线能够跨越(即覆盖)数据和行奇偶校验块的全部并且还保证在每个对角线中有一个已知值。这辅助重建,因为它从待求解的方程组去除潜在变量。图4的示例性条化布置可以由A[(x+2*j) mod 7, j]表示,其中j范围从0到p-1。
图5是根据本发明一个示例实施例的示例性条化布置的示意框图。该布置为示例性阵列,其中p=7并且s=-3。与图4相似,仅示出了数据盘和行奇偶校验盘,因为在其他对角线中未包括对角线奇偶校验盘。图5的示例性条化布置可以由A[(x-3*j) mod 7, j]表示。图4和图5的示例性条化布置可以与n=3阵列一起利用。在这样的示例性阵列中,三个奇偶校验位将由以下提供:(a)行奇偶校验、(b)如图4中所示对角线奇偶校验类内的具有斜率+2的对角线的对角线奇偶校验以及(c)如图5中所示对角线奇偶校验类内的具有斜率-3的对角线的对角线奇偶校验。如将理解的那样,这样的布置可以具有附加对角线奇偶校验类(具有对应的附加对角线奇偶校验/位)以增加奇偶校验保护;然而,本发明的示例实施例并未要求利用最大数量的对角线奇偶校验类。本发明的又一明显优点是可以向阵列添加附加对角线奇偶校验类而无需重新计算所有奇偶校验。也就是说,假设阵列尚未配置有最大数量的对角线奇偶校验类,可以通过添加对角线奇偶校验存储设备用于存储用于新对角线奇偶校验类的奇偶校验来向阵列添加新对角线奇偶校验存储设备。在这样的情况下,需要计算的仅有奇偶校验是将存储于新添加的存储设备上的对角线奇偶校验。这为管理员提供了在阵列已经投入使用之后增加阵列的保护水平而无需阵列内的所有奇偶校验的耗时和资源密集的重新计算的能力。应当注意,虽然数据盘数量必须满足条件m=p-1,其中p为质数,但是有可能构造具有更少数据盘的阵列。附加盘(即在盘的物理数量与m之间的那些盘)可以是用于满足m=p-1条件的假想零填充的盘。假想零填充的盘不影响奇偶校验计算。此外,必须以使得对角线奇偶校验类的斜率是用来构造阵列的质数p的不同模的方式选择斜率。例如,如果质数p=7,则斜率1、2和-3满足这一条件。然而斜率4和-3不满足该条件,因为-3 mod 7=(7-3) mod 7=4 mod 7。
再次参照图3,一旦已经向对角线分配所有数据和行奇偶校验块,对角线奇偶校验类之一就在步骤340中例如由盘存储模块240选择。例如通过执行沿着所选对角线奇偶校验类内的对角线的所有块的XOR运算来计算沿着该对角线奇偶校验类内的那些对角线的对角线奇偶校验。计算的对角线奇偶校验块然后在步骤350中存储于与所选对角线奇偶校验类关联的对角线奇偶校验盘上。这一存储可以例如由与盘驱动器器250结合工作的盘存储模块240执行以使计算的奇偶校验存储于盘150上。在步骤355中确定是否需要计算用于任何附加对角线奇偶校验类的对角线奇偶校验。如果需要计算用于附加对角线奇偶校验类的对角线奇偶校验,则过程300循环回到步骤340并且选择另一对角线奇偶校验类。过程300然后在步骤360完成。由于过程300,阵列被配置成实现从阵列内的n个存储设备(例如盘)的失效中恢复。随后可以使用用于求解线性方程组的任何技术来重建阵列(例如响应于错误条件)。
图6是图示了根据本发明一个示例实施例的用于在一个或者多个失效存储设备的情况下执行重建的示例性过程600的步骤的流程图。过程600在步骤605中开始并且继续步骤610,其中错误条件例如由盘存储模块240检测。错误条件可以例如包括一个或者多个存储设备的失效。可以例如由于对介质的物理损坏、失去连接等而出现失效。可以通过常规检错技术(诸如例如向设备的输入/输出(I/O)失效、检测到失去连接等)来检测错误。盘存储模块240然后在步骤615中确定失效数量是否小于或者等于n。如果失效数量小于或者等于n,则可以使用这里描述的nP技术来纠正失效。在该情况下,该过程继续步骤620,其中重建丢失的数据。如上文所言,用于求解线性方程组的任何技术可以用来执行nP阵列的重建。用于求解线性方程组的示例技术例如包括高斯消元、克莱姆规则、Cholesky分解、LU分解。在通过引用将内容结合于此的James Lee Hafner等人在FAST’05: 4th USENIX Conference on File and Storage Technologies的Matrix Methods for Lost Data Reconstruction in Erasure Codes中描述了另一示例性技术。一旦已经重建数据,过程600然后在步骤625中完成。
如果在步骤615中确定失效数量大于n,则过程600跳转到步骤630,其中错误条件在步骤625中过程完成之前被视为不可恢复。
前文描述已经涉及本发明的具体实施例。然而将清楚可以对描述的实施例做出其他变化和修改而达到一些或者所有它们的优点。例如尽管在盘方面撰写描述,但是可以根据替代实施例利用任何存储设备,包括但不限于闪存和其他固态介质。因此,所附权利要求书的目的是覆盖如落入本发明的真实精神和范围内的所有这样的变化和修改。

Claims (9)

1. 一种用于实现从存储阵列中的存储设备的多达n个同时失效恢复的方法,包括:
向所述存储阵列提供预定数量的存储设备,所述存储设备包括被配置成存储数据和行奇偶校验的多个第一设备,其中所述存储设备的预定数量m小于或者等于p-1,并且其中p为质数;
向所述存储阵列提供被配置成存储至少三个对角线奇偶校验类的至少三个第二设备;
将所述多个第一设备和所述至少三个第二设备的每个设备划分成块;
将所述块组织成包含所述多个第一设备和所述至少三个第二设备的每个设备中的块的条;
计算用于每行数据的行奇偶校验;
向对角线分配来自存储数据和行奇偶校验的所述多个第一设备的所有块;并且
对于所述至少三个对角线奇偶校验类中的每个对角线奇偶校验类,计算沿着具有共同斜率的所有对角线的对角线奇偶校验,并且在与所述对角线奇偶校验类关联的所述第二设备之一上存储计算的对角线奇偶校验,其中每个斜率是以p为模的不同值;以及
利用行奇偶校验和对角线奇偶校验针对小于或等于n的一个或多个存储设备的失效执行重建,其中n小于或等于p。
2. 根据权利要求1所述的方法,其中所述第一设备包括多个数据设备,并且其中并不是所有的所述数据设备都存在,并且没有存在的数据设备被视为包含用于计算行奇偶校验和对角线奇偶校验的所有零。
3. 根据权利要求1所述的方法,其中奇偶校验块的位置在不同条内随着所述多个第一设备和所述至少三个第二设备的每个设备移位。
4. 根据权利要求1所述的方法,其中所述条在大小上是位数为二的幂。
5. 根据权利要求1所述的方法,其中所述至少三个第二设备包括多达n-1个设备,并且其中n≤p。
6. 根据权利要求1所述的方法,还包括:
添加附加第二设备用于存储附加对角线奇偶校验类,其中仅计算沿着与所述附加对角线奇偶校验类具有共同斜率的所有对角线的对角线奇偶校验;并且
在与所述附加对角线奇偶校验类关联的所述附加第二设备上存储计算的对角线奇偶校验。
7. 一种用于实现从存储阵列中的存储设备的多达n个同时失效恢复的系统,包括:
向所述存储阵列提供的预定数量的存储设备,所述存储设备包括被配置成存储数据和行奇偶校验的多个第一设备,其中所述存储设备的预定数量m小于或等于p-1,并且其中p为质数;
向所述存储阵列提供的被配置成存储至少三个对角线奇偶校验类的至少三个第二设备,其中所述多个第一设备和所述至少三个第二设备的每个设备被划分成块,所述块被组织成包含所述多个第一设备和所述至少三个第二设备的每个设备中的块的条;
以及
包括设备存储模块的存储操作系统,被配置成:计算用于每行数据的行奇偶校验;向对角线分配来自存储数据和行奇偶校验的所述多个第一设备的所有块;对于所述至少三个对角线奇偶校验类中的每个对角线奇偶校验类,计算沿着具有共同斜率的所有对角线的对角线奇偶校验;并且在与所述对角线奇偶校验类关联的所述第二设备之一上存储计算的对角线奇偶校验,其中每个斜率是以p为模的不同值;以及利用行奇偶校验和对角线奇偶校验针对小于或等于n的一个或多个存储设备的失效执行重建,其中n小于或等于p。
8. 根据权利要求7所述的系统,其中条中的行奇偶校验块都存储于单个设备上。
9. 根据权利要求7所述的系统,其中所述第一设备包括多个数据设备,并且其中所述数据设备并未都存在,并且不存在的数据设备被视为包含用于计算行奇偶校验和对角线奇偶校验的所有零。
CN201080053524.7A 2009-09-25 2010-09-23 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术 Active CN102667727B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/536,063 US8402346B2 (en) 2001-12-28 2009-09-25 N-way parity technique for enabling recovery from up to N storage device failures
US12/536063 2009-09-25
PCT/US2010/002600 WO2011037629A1 (en) 2009-09-25 2010-09-23 N-way parity technique for enabling recovery from up to n storage device failures

Publications (2)

Publication Number Publication Date
CN102667727A CN102667727A (zh) 2012-09-12
CN102667727B true CN102667727B (zh) 2015-07-29

Family

ID=43530596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080053524.7A Active CN102667727B (zh) 2009-09-25 2010-09-23 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术

Country Status (5)

Country Link
US (1) US8402346B2 (zh)
EP (1) EP2470992B1 (zh)
JP (1) JP5518201B2 (zh)
CN (1) CN102667727B (zh)
WO (1) WO2011037629A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
US8959389B2 (en) 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
EP2672387B1 (en) 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
US9176818B2 (en) 2013-03-14 2015-11-03 Microsoft Technology Licensing, Llc N-way parity for virtual disk resiliency
US9081753B2 (en) 2013-03-14 2015-07-14 Microsoft Technology Licensing, Llc Virtual disk recovery and redistribution
CN103744750B (zh) * 2014-01-13 2017-02-15 杭州华为数字技术有限公司 一种数据恢复方法及装置
JP2015210658A (ja) 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法
JP6369298B2 (ja) 2014-11-13 2018-08-08 富士通株式会社 ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置
WO2016093797A1 (en) * 2014-12-09 2016-06-16 Hitachi Data Systems Corporation A system and method for providing thin-provisioned block storage with multiple data protection classes
US9672106B2 (en) 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
US9529676B1 (en) * 2014-12-31 2016-12-27 EMC IP Holding Company LLC Optimizing spare capacity and spare distribution
WO2016058289A1 (zh) * 2015-01-20 2016-04-21 北京大学深圳研究生院 一种能修复多个节点失效的mds纠删码
US10146618B2 (en) * 2016-01-04 2018-12-04 Western Digital Technologies, Inc. Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US10452477B2 (en) * 2016-08-26 2019-10-22 Netapp, Inc. Multiple node repair using high rate minimum storage regeneration erasure code
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
US10601546B2 (en) * 2018-04-03 2020-03-24 SK Hynix Inc. Dynamic interleaver change for bit line failures in NAND flash storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
CN101512492A (zh) * 2005-12-15 2009-08-19 网络装置公司 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3876978A (en) * 1973-06-04 1975-04-08 Ibm Archival data protection
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4201976A (en) 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
US4205324A (en) * 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
JPS5637883A (en) * 1979-09-04 1981-04-11 Fanuc Ltd Information rewrite system
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
GB2061575B (en) * 1979-10-24 1984-09-19 Matsushita Electric Ind Co Ltd Method and apparatus for encoding low redundancy check words from source data
US4435807A (en) * 1980-06-26 1984-03-06 Scott Edward W Orchard error correction system
US4547882A (en) * 1983-03-01 1985-10-15 The Board Of Trustees Of The Leland Stanford Jr. University Error detecting and correcting memories
US4825403A (en) * 1983-05-16 1989-04-25 Data General Corporation Apparatus guaranteeing that a controller in a disk drive system receives at least some data from an invalid track sector
JPS60142418A (ja) * 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4667326A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
DE3689899T2 (de) 1985-04-08 1994-09-15 Amgen Verfahren und hybridpromotor zur steuerung der exogenen gentranskription.
US5202979A (en) * 1985-05-08 1993-04-13 Thinking Machines Corporation Storage system using multiple independently mechanically-driven storage units
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
JPH0675329B2 (ja) * 1986-02-18 1994-09-21 ソニー株式会社 ディスクプレーヤ
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
USRE34100E (en) 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4796260A (en) * 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
US5257367A (en) * 1987-06-02 1993-10-26 Cab-Tek, Inc. Data storage system with asynchronous host operating system communication link
US4849974A (en) * 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4849976A (en) * 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4837680A (en) * 1987-08-28 1989-06-06 International Business Machines Corporation Controlling asynchronously operating peripherals
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US4847842A (en) * 1987-11-19 1989-07-11 Scs Telecom, Inc. SM codec method and apparatus
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4989205A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5077736A (en) * 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5128810A (en) * 1988-08-02 1992-07-07 Cray Research, Inc. Single disk emulation interface for an array of synchronous spindle disk drives
US5218689A (en) * 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5101492A (en) * 1989-11-03 1992-03-31 Compaq Computer Corporation Data redundancy and recovery protection
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5166936A (en) * 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5375128A (en) 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5235601A (en) * 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US5274799A (en) 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5271012A (en) 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) * 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
EP0519669A3 (en) * 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5305326A (en) * 1992-03-06 1994-04-19 Data General Corporation High availability disk arrays
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5513192A (en) * 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
US5574851A (en) * 1993-04-19 1996-11-12 At&T Global Information Solutions Company Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations
DE69425658T2 (de) * 1993-06-03 2001-04-19 Network Appliance Inc Anordnung eines dateisystems zum beschreiben beliebiger bereiche
WO1994029796A1 (en) * 1993-06-03 1994-12-22 Network Appliance Corporation A method for allocating files in a file system integrated with a raid disk sub-system
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6138126A (en) * 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
US5644695A (en) * 1994-01-03 1997-07-01 International Business Machines Corporation Array combinatorial decoding with multiple error and erasure detection and location using cyclic equivalence testing
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US5771643A (en) * 1995-05-10 1998-06-30 Parker; Alton F. Concrete slab-wall spacer with water and radon removal features
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US5774643A (en) 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
US5862158A (en) * 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US5884098A (en) * 1996-04-18 1999-03-16 Emc Corporation RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
KR100208801B1 (ko) * 1996-09-16 1999-07-15 윤종용 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6041423A (en) * 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US5950225A (en) * 1997-02-28 1999-09-07 Network Appliance, Inc. Fly-by XOR for generating parity for data gleaned from a bus
KR100267366B1 (en) * 1997-07-15 2000-10-16 Samsung Electronics Co Ltd Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
JPH11134235A (ja) * 1997-10-31 1999-05-21 Hitachi Ltd 外部記憶装置故障時の回復支援方法
JP3616487B2 (ja) * 1997-11-21 2005-02-02 アルプス電気株式会社 ディスクアレイ装置
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US6233323B1 (en) * 1998-04-10 2001-05-15 Lucent Technologies, Inc. DTMF download technique for digital telephone devices
US6138201A (en) * 1998-04-15 2000-10-24 Sony Corporation Redundant array of inexpensive tape drives using data compression and data allocation ratios
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US6453428B1 (en) * 1998-07-17 2002-09-17 Adaptec, Inc. Dual-drive fault tolerant method and system for assigning data chunks to column parity sets
US6223323B1 (en) 1998-07-17 2001-04-24 Ncr Corporation Method for storing parity information in a disk array storage system
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6198413B1 (en) * 1999-07-01 2001-03-06 International Business Machines Corporation Partitioned DC balanced (0,6) 16B/18B transmission code with error correction
US6557123B1 (en) * 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
US6532548B1 (en) * 1999-09-21 2003-03-11 Storage Technology Corporation System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
US6826580B2 (en) * 2000-01-20 2004-11-30 Emc Corporation Distributed storage resource management in a storage area network
US6581185B1 (en) * 2000-01-24 2003-06-17 Storage Technology Corporation Apparatus and method for reconstructing data using cross-parity stripes on storage media
US7072256B2 (en) 2000-03-08 2006-07-04 Matsushita Electric Industrial Co., Ltd. Information recording medium, information recording method and information reproduction method
US6694479B1 (en) * 2000-05-23 2004-02-17 Hewlett-Packard Development Company, L.P. Multiple drive failure recovery for a computer system having an array of storage drives
US6779095B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data using pointers to new and original data in a data location
US7072916B1 (en) * 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6671772B1 (en) 2000-09-20 2003-12-30 Robert E. Cousins Hierarchical file system structure for enhancing disk transfer efficiency
US6275410B1 (en) * 2000-11-09 2001-08-14 Hewlett-Packard Co. Data recording systems and methods for facilitating data recovery with emitter failure
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6571326B2 (en) * 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US6871317B1 (en) * 2001-11-13 2005-03-22 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US6851082B1 (en) * 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7073115B2 (en) * 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7873700B2 (en) * 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US6826661B2 (en) * 2002-08-30 2004-11-30 Veritas Operating Corporation Methods and systems for storage architectures
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7945729B2 (en) * 2004-11-24 2011-05-17 International Business Machines Corporation System and method for tolerating multiple storage device failures in a storage system using horizontal and vertical parity layouts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
CN101512492A (zh) * 2005-12-15 2009-08-19 网络装置公司 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术

Also Published As

Publication number Publication date
WO2011037629A1 (en) 2011-03-31
US8402346B2 (en) 2013-03-19
JP5518201B2 (ja) 2014-06-11
EP2470992A1 (en) 2012-07-04
EP2470992B1 (en) 2016-04-13
JP2013506191A (ja) 2013-02-21
CN102667727A (zh) 2012-09-12
US20110010599A1 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
CN102667727B (zh) 用于实现从多达n个存储设备失效恢复的n路奇偶校验技术
US7613984B2 (en) System and method for symmetric triple parity for failing storage devices
JP5102776B2 (ja) ストレージアレイにおける三重故障からの効率的な復旧を可能にする三重パリティ技術
CN101410783B (zh) 内容可寻址存储阵列元件
CN102349053B (zh) 用于冗余性保护的聚集体的系统和方法
US9021335B2 (en) Data recovery for failed memory device of memory device array
US8468304B1 (en) Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
JP4703945B2 (ja) ストレージアレイにおける複数の記憶装置故障を訂正する方法
US7752389B1 (en) Techniques for determining physical data layout of RAID devices
US6871317B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US7346831B1 (en) Parity assignment technique for parity declustering in a parity array of a storage system
US7398460B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array

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
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: NETAPP incorporated company

Address before: American California

Patentee before: Netapp Inc.