CN101073066A - 生成奇偶数据的方法、系统和程序 - Google Patents

生成奇偶数据的方法、系统和程序 Download PDF

Info

Publication number
CN101073066A
CN101073066A CN200480039319.XA CN200480039319A CN101073066A CN 101073066 A CN101073066 A CN 101073066A CN 200480039319 A CN200480039319 A CN 200480039319A CN 101073066 A CN101073066 A CN 101073066A
Authority
CN
China
Prior art keywords
data
odd
logic engine
new
sent
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
CN200480039319.XA
Other languages
English (en)
Other versions
CN101073066B (zh
Inventor
M·施米索伊尔
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN101073066A publication Critical patent/CN101073066A/zh
Application granted granted Critical
Publication of CN101073066B publication Critical patent/CN101073066B/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

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

提供了当升级以利用奇偶数据的数据组织类型存储在存储设备的阵列中的旧数据时生成奇偶数据的方法、系统和程序。在一个实施例中,逻辑引擎具有若干寄存器或存储队列,存储在读操作中获得的新数据于其中。使用在另一个读操作中获得的旧数据对若干寄存器中的每个的新数据执行逻辑操作,例如异或操作。使用在另一个读操作中获得的第一类型的旧奇偶数据对若干寄存器中的其中一个的中间数据执行逻辑操作,例如异或操作,以生成第一类型的新奇偶数据。使用在另一个读操作中获得的第二类型的旧奇偶数据对若干寄存器中的另一个的中间数据执行逻辑操作,例如异或操作,以生成第二类型的新奇偶数据。

Description

生成奇偶数据的方法、系统和程序
背景
领域
[0001]实施例涉及生成用于组织系统的奇偶数据的方法、系统和程序,例如RAID系统。
[0002]已经提出了用于组织存储在例如盘驱动器等数据存储设备中的数据的各种技术。一种上述的数据存储组织被称为冗余阵列盘机(廉价盘阵列)或(RAID)。在RAID组织方式中,使用两个或更多硬盘驱动器的结合以改善容错性或性能,或改善两者。存在不同类型的RAID数据存储组织方式,并且上述不同的类型通常被称为RAID级0、1、2...。
[0003]在RAID级0数据组织方式中,例如,用户文件的数据被“划分成带”,也就是说,用户数据块分散在多个盘上以改善性能。然而,如果RAID级0数据组织方式中的一个驱动器在出现故障,通常无法提供修复数据的冗余。数据的RAID级3组织方式与RAID级0相似,但是典型地保留一个硬盘以存储纠错数据,通常称为“奇偶数据”。如果一个驱动器故障,该奇偶数据可以用于重构丢失的用户数据。在RAID级5数据组织方式中,为盘驱动器阵列上的每个数据带提供奇偶数据,而且没有存储该奇偶数据专用的硬驱动器。作为代替,关于用户数据带的奇偶数据块遍及该阵列的所有盘而分布,以进一步改善性能。
[0004]在一个RAID-5组织方式中,有一个用于盘驱动器上的每个数据带的奇偶数据的块。如果一个驱动器故障,上述配置提供迅速的数据重构。如果不止一个驱动器故障,某些存储应用能够从更稳健的数据保护中受益。已经开发了附加的RAID模式方案,其通常对于每个数据带具有两个奇偶数据块。已知的一种奇偶模式方案包括“水平”奇偶块和“对角线”奇偶块。在存储工业中已经使用了术语例如RAID-5DP(双重奇偶)或RAID-6用于上述或相似的数据组织排列。
[0005]图1示出了逻辑操作,当使用新数据升级RAID系统中的带例如带n上的旧数据时,执行该操作以生成新奇偶数据。如图1所示,对带n的新数据30和旧数据32执行异或逻辑操作。异或操作的结果被用带n的旧奇偶数据34异或以生成带n的新奇偶数据36。新奇偶数据36被用于在适合的RAID存储单元上覆盖旧奇偶数据34,并且新数据30被用于在适合的RAID存储单元上覆盖旧数据32。
[0006]图2示出了RAID存储处理器的逻辑引擎50的现有技术的实例,在其用根据图1的逻辑操作当向RAID存储单元写入新数据时生成新奇偶数据。该逻辑引擎50具有存储队列52,其能够对如箭头54所示的存储队列52的内容以及箭头56表示的逻辑引擎输入端的输入数据进行异或逻辑操作。英特尔80303集成电路芯片具有被称为应用加速单元(AAU)的相似逻辑引擎。
[0007]图2的逻辑引擎50生成新奇偶数据的操作如图3所示。当复位存储队列52(框60)之时,可以从逻辑存储器64(图2)读取新数据30(框62),并存储到存储队列52中。由于存储队列52之前被复位了,所以可以通过用从本地存储器64读取的新数据30和存储队列52的复位内容执行异或操作,来将新数据30存储在存储队列52中。读操作的大小将典型地取决于存储队列52的容量。因而,如果,例如,存储队列52的容量是1K字节,通常继续读操作直到存储队列52充满了1K字节的新数据30。
[0008]还可以从本地存储器64读取将要被新数据30取代的旧数据32(框64),并且与先前存储在存储队列52中的新数据30异或(框66),作为中间结果存储在存储队列52中。在第三个读操作中,从本地存储器64中读取旧奇偶数据34(框68),并且与先前存储在存储队列52中的中间结果异或(框70)。最后一个异或操作的结果将会是新奇偶数据36,其可以存储在存储队列52中,随后传送到本地存储器64和存储驱动器的带n。
[0009]尽管如此,在技术中存在改善数据存储组织的处理器性能的持续需求。
附图简述
[0010]现在参照附图,其中自始至终相同的参考数字表示相应的部分:
图1示出了现有技术中RAID奇偶数据的生成;
图2示出了现有技术中生成RAID奇偶数据的逻辑引擎;
图3示出了现有技术中使用图2的现有逻辑引擎生成奇偶数据的操作;
图4示出了实施各方面的计算机环境的一个实施例;
图5示出了依据各方面生成RAID奇偶数据的存储处理器的一个实施例;
图6示出了用于图5中依据各方面生成RAID奇偶数据的存储处理器逻辑引擎的一个实施例;
图7A、7B示出了生成奇偶数据的操作的一个实施例;
图8A、8B示出了生成奇偶数据的操作的一个实施例中图6的逻辑引擎的存储队列的内容;并且
图9示出了用于上述实施例的体系结构。
所示实施例的详细描述
[0011]在下面的描述中,随附图给出了部分标号并成为附图的一部分,其示出了数个实施例。应当理解的是可以利用其他实施例并且可以做出结构上和操作上的改变。
[0012]图4示出了实现各方面的计算机环境。计算机102包括一个或更多中央处理单元(CPU)104(仅示出一个)、存储器106、非易失存储器108、存储处理器109、操作系统110和网络适配器112。应用程序114此外在存储器106中执行并且能够从存储器108读取数据以及向其中写入数据。计算机102可以包括现有技术中任何计算设备,例如大型机、服务器、个人计算机、工作站、膝上型电脑、手持型计算机、电话设备、网络应用设备、虚拟设备、存储处理器、存储控制器等。可以使用现有技术中公知的任何CPU104和操作系统110。存储器106中的程序和数据可以被交换进入存储器108作为存储器管理操作的一部分。
[0013]设备驱动器120在存储器106中执行,并包括存储处理器特定命令,用以与存储处理器109以及操作系统110和存储处理器109之间的接口通信。例如,存储器108包括若干盘驱动器150a、150b...150n,其中数据最初以RAID组织类型存储在盘驱动器150a、150b...150n中的一个或多个中。存储处理器109可以是计算机102的一部分,或者例如经由网络适配器112通过网络152连接到计算机102,就像所示的存储处理器154和具有另一组盘驱动器150a、150b...150n的存储器156。对于上述网络连接的存储处理器154,设备驱动器120包括网络适配器特定命令,用以与网络适配器112通信,以将要在网络存储器156上写入的数据传送到存储处理器154。
[0014]在某些实现方式中,存储处理器109实施某些功能以支持计算机102从存储器108中读取数据或向存储器108写入数据。例如,存储处理器109包括奇偶数据管理器130,其管理数据升级和其他数据操作过程中奇偶数据的生成。因而,数据奇偶管理器130能够用于当升级盘驱动器150a...150n上的用户数据时升级该奇偶数据。存储处理器109可以具有软件、固件或硬件或其组合以执行上述和其他功能。
[0015]合适的存储处理器109的实例如图5所示。存储处理器109便于主机102和存储器108之间巨大数量数据的快速移动。存储处理器109包括主机102的第一级总线162和连接到存储器108的附件控制器166的第二级总线164之间的桥160。桥160允许附件控制器166与第一级总线162物理地隔离开,附件控制器166可以是例如串行高级技术附件(SATA)控制器。
[0016]第一级地址转换单元168经由本地总线174提供从第一级总线162到处理器170和本地存储器172的高吞吐量数据路径。也连接到本地总线174的是逻辑引擎176,其提供异或计算以生成用于RAID算法的奇偶块。第二地址转换单元178提供从处理器170和本地存储器172到第二总线164的高吞吐量数据路径。在所示实施例中,总线162、164是PCI总线,但是其他类型的外围总线也可以使用。
[0017]本地存储器172具有存储控制器180。在所示的实施例中,本地存储器172是易失性的、RAM类型存储器,并用于缓存数据。也可以使用其他类型的存储器。直接存储器存取(DMA)控制器182、184允许从主机计算机102到本地存储器172以及从本地存储器172到驱动器150a...150n的直接存储器传送。
[0018]如上所述,某些RAID模式方案利用两个奇偶数据块,例如用于每个数据带的水平奇偶块和对角线奇偶块。如果向带写入新数据,新水平奇偶数据和新对角线奇偶数据两者都可以被生成。为了利用上述的逻辑引擎50和奇偶生成操作,相信要利用六个读操作,三个读操作用于生成水平奇偶数据,以及三个读操作用于生成对角线奇偶数据,采用上述方式,以生成新奇偶数据。
[0019]根据上述实施例的一个方面,在某些应用中,存储处理器109的逻辑引擎,例如逻辑引擎176,能够显著地便于多个奇偶数据块的有效生成。例如,在一个应用中,当升级RAID组织数据时,生成若干奇偶块的读操作的数量能够被显著地减少。
[0020]图6采用示意形式示出了逻辑引擎176的一个实例,包括存储队列对200a、200b,其在这里也分别称为存储队列1、存储队列2。存储队列1能够对如箭头202所示的存储队列1的内容和箭头204表示的其输入端上的数据进行异或逻辑功能。相似地,存储队列2能够对如箭头206所示的存储队列2的内容和箭头208表示的其输入端上的数据进行异或逻辑功能。根据所示实施例的一个方面,在一个读操作210中从源例如本地存储器172读取的数据,可以选择生地与存储队列1、2的一个或两个的内容异或,而没有额外的读操作。如后面要更详细地解释的,上述安排能够便于奇偶数据的生成。
[0021]在上述实施例中,所示的逻辑引擎176包括存储队列。可以使用的其他类型的电路,包括寄存器和其他类型的存储器和逻辑电路。
[0022]图7a、7b和8a、8b示出了奇偶数据管理器130的操作的一个实例,其包括处理器170和逻辑处理器1/6,当用新数据升级存储在存储器108中的数据时生成双重奇偶数据。在该实例中,为每个带生成水平和对角线奇偶块以便用新数据升级。可以理解同样可以利用这里描述的方法和结构生成其他类型的若干块。
[0023]在该实例中,要替代盘驱动器150a...150n上的带n的一个块中的旧数据的新数据由主机102存储在本地存储器172中。从主机102到本地存储器172的上述数据传送,在某些实施例中,是使用DMA控制器182的DMA传送。一次存储在本地存储器中的新数据的量取决于本地存储器172的容量。在该实施例中,除新数据之外,由该新数据取代的旧数据被从存储器108传送并存储在本地存储器172中。类似地,要被将按如下所述生成的新水平奇偶数据代替的旧水平奇偶数据也从存储器108传送并存储在本地存储器172中。此外,要被将按如下所述生成的新对角线奇偶数据代替的旧对角线奇偶数据也从存储器108传送并存储在本地存储器172中。
[0024]当存储队列1和存储队列2都复位(框220)之时,存储队列1和存储队列2的内容都是空的,如图8a所示,相对图7a的框220。可以从存储处理器109的本地存储器172中读取新数据(框222),并可以将其存储在存储队列1和存储队列2中,如图8a所示,相对图7a的框222。
[0025]由于先前复位了存储队列1,所以通过用从本地存储器172读取的新数据和存储队列1的复位内容执行异或操作(图6),就可以将该新内容存储到存储队列1中。关于在存储队列1中存储新数据,通过用存储队列2的复位内容执行异或操作(图6),相同的新数据可以存储在存储队列2中。可以理解,利用从本地存储器172的单个读操作,相同的新数据可以存储在存储队列1、2这二者中。从本地存储器172的新数据读操作的大小将典型地取决于存储队列1、2的容量。因而,如果,存储队列1、2中的每个的容量是1K字节,读操作将会继续直到存储队列1、2中的每个都填满了用于盘驱动器150a、150b...150n的带n的一个块(例如块n)的1K字节的新数据。
[0026]也可以从本地存储器172读取要被新数据代替的旧数据(框224)。该旧数据可以与预先存储在存储队列1中的新数据异或,并将其作为中间结果存储在存储队列1中,如图8a所示,对应于图7a的框226。关于旧数据与存储队列1的内容的异或操作,该旧数据还可以与先前存储在存储队列2中的新数据异或(框226),并且将其作为中间结果存储在存储队列2中,如图8a所示,对应于图7a的框226。可以理解,利用从本地存储器172的单个读操作,相同的旧数据可以与存储队列1、2的内容异或。
[0027]在第三读操作中,从本地存储器172读取旧水平奇偶数据(图7b,框228),并且将其与预先存储在存储队列1中的中间结果异或(框230)。上述关于队列1的最后的异或操作的结果将是新水平奇偶数据,其存储在存储队列1中,如图8b所示,对应于于图7b中的框230。该新水平奇偶数据可以被从存储队列1写入本地存储器172,如箭头231所示(图6),用于随后由存储处理器109传送到存储驱动器150a...150n的带n的水平奇偶块。
[0028]在第四读操作中,从本地存储器172读取旧对角线奇偶数据(框232),并且将其与存储队列2中先前存储的中间结果异或(框234)。上述关于存储队列2的最后的异或操作的结果将是新对角线奇偶数据,其存储在存储队列2中,如图8b所示,对应于图7b中的框234。该新对角线奇偶数据可以被从存储队列2写入本地存储器172,如箭头235所示(图6),用于随后由存储处理器109传送到存储驱动器150a...150n的带n的对角线奇偶块。
[0029]关于向盘驱动器150a、150b...150n的带n写入新水平奇偶数据和新对角线奇偶数据,该新数据也可以被写入带n的块。重复图7a、7b的操作,直到为所有新数据生成新水平和对角线奇偶数据,并且所有的新数据以及新水平奇偶和对角线奇偶数据都已被写入盘驱动器150a、150b...150n的带n的相关联块中。
[0030]在所示实施例中,新数据、旧数据和旧奇偶的读操作包括从本地存储器172到逻辑引擎176的数据传送。可以理解的是,在可替换实施例中,数据能够直接地从存储器(例如存储器108)传送到逻辑引擎(例如逻辑引擎176),这一点在转让给本申请的受让人的、共同待审的(copending)、申请日2003年12月29日、代理人文档号No.P17732的题为“METHOD,SYSTEM,ANDPROGRAM FOR MANAGING DATA ORGANIZATION”的申请中有所描述。
附加的实施例细节
[0031]上述管理奇偶数据生成的技术可以通过使用标准编程和/或工程技术被实现为方法、装置或制造物品,以生成软件、固件、硬件或其任何组合。这里使用的术语“制造物品”指的是代码或在硬件逻辑中实现的逻辑电路(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等),或计算机可读介质,例如磁性存储介质(例如,盘驱动器、软盘、磁带等)、光学存储器(CD-ROM、光盘等)、易失性和非易失性存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)。计算机可读介质中的代码被处理器访问并执行。此外其中实现优选实施例的代码可以通过传输介质访问或经过网络从文件服务器访问。在这种情况中,其中实现了该代码的制造物品包括传输介质,例如网络传输线、无线传输介质、传播通过空间的信号、无线电波、红外信号等。因此,“制造物品”可以包括其中包含该代码的介质。此外,“制造物品”可以包括硬件和软件部件的组合,其中包含、处理并执行了该代码。当然,本领域的技术人员将会意识到可以对该配置作出很多修改,制造物品可以包括本领域已知的任何信息承载介质。
[0032]在某些实施例中,存储处理器109包括奇偶数据管理器130,其在数据升级和其他数据操作过程中管理奇偶数据的生成。存储处理器109可以具有软件、固件、或硬件或它们的组合,以执行上述和其他功能。例如,在一个实施例中,处理器170和逻辑引擎176可以在与主机处理器分离的存储处理器109的硬件中实现。在其他实现方式中,该奇偶数据管理器可以在主机软件中实现,包括驱动器、操作系统或应用程序或它们的组合。
[0033]在某些实现方式中,计算机系统可以包括驱动器和存储控制器,例如串行高级技术附件(SATA)控制器、串行附加SCSI(SAS)、独立硬盘的冗余阵列(RAID)等,控制器,其管理对非易失性存储设备的访问,例如磁性硬盘驱动器、磁带介质、光盘等。在可选实现方式中,存储控制器实施例可以包括在不具有驱动器的系统中。此外,用于设备和扩展器的SAS体系结构上的细节在技术说明书“Information Technology-Serial Attached SCSI(SAS)”中有描述,参见no.ISO/IEC 14776-150:220x以及ANSI INCITS.***:200x PHYlayer(2003年7月9日),ANSI公开。SATA体系结构的细节在技术说明书“SerialATA:High Speed Serialized AT Attachment”Rev.1.0A(2003年1月)中有描述。
[0034]在某些实现方式中,设备驱动器和存储处理器实施例可以在包括视频控制器以呈现要在监视器上显示的信息的计算机系统中实现,该监视器连接到该计算机系统,该计算机系统包括设备器和网络适配器,例如包括桌上型电脑、工作站、服务器、主机、膝上型电脑、手持型电脑等的计算机系统。可选地,存储处理器和设备驱动器实施例可以在不包括视频控制器的计算设备中实现。
[0035]在某些实现方式中,所示的逻辑引擎具有两个存储队列1、2或寄存器200a、200b。可选地,该逻辑引擎可以具有附加的存储队列或寄存器,特别是在要生成多于两种类型的奇偶数据的情况下。
[0036]在某些实现方式中,网络适配器可以被配置成经过连接到网络适配器上的端口的电缆来传送数据。可选地,网络适配器实施例可以配置成经过无线网络或连接传送数据,例如无线LAN、蓝牙等。
[0037]图7a-7b、8a、8b所示的逻辑示出了特定的事件以特定的顺序发生。在可替换的实施例中,特定操作可以以不同的顺序执行,修改的或消除。而且,操作还可以添加到上述的逻辑上并且仍然符合所描述的实施例。此外,这里所描述的操作可以顺序地发生,某些操作也可以并行地处理。此外,操作可以由单个处理单元执行,也可以由分布式处理单元执行。
[0038]图9示出了网络部件的计算机体系结构500的一种实现方式,例如图4所示的主机和存储设备。体系结构500包括处理器502(例如,微处理器)、存储器504(例如,易失性存储设备)和存储器506(例如,非易失性存储器,例如磁盘驱动器、光盘驱动器、磁带驱动器等)。存储器506可以包括内部存储设备或附连的或网络可访问的存储器。存储器506中的程序被装载入存储器504并由处理器502以现有技术中已知方式执行。存储处理器或控制器507能够控制存储器506。该体系结构还包括网络适配器508,以便能够与网络通信,例如以太网、纤维管路仲裁环等。纤维管路体系结构上的细节在技术说明书“Fibre Channel Framing and Signaling Interface”、文档号ISO/IEC AWI 14165-25中有描述。
[0039]此外,在某些实施例中,体系结构可以包括视频控制器509以在显示监视器上呈现信息,其中视频控制器509可以在视频卡上实现,或集成在主板上装配的集成电路部件上。如所述,某些网络设备可以具有多个存储卡或控制器。输入设备510用于向处理器502提供用户输入,并且可以包括键盘、鼠标、触笔、麦克风、触摸感应显示屏或现在技术中已知的任何其他激活或输入机构。输出设备512能够呈现从处理器502或其他部件例如显示监视器、打印机、存储器等传送的信息。
[0040]存储控制器506和网络适配器508中的每个都可以在卡上实现,例如外围组件互连(PCI)卡或某些其他I/O卡,或主板上装配的集成电路部件。PCI体系结构的细节在PCI-SIG公开的“PCI Local Bus,Rev.2.3”中有描述。
[0041]上面给出的各种实施例的描述是为了解释和描述的目的。上述说明书、实例和数据提供了该产品的完整描述以及特定实施例的组合的使用。其意图并不是穷尽的,并且也没有限定到所公开的精确形式。按照上述的教导,很多修改和改变都是可能的。

Claims (39)

1、一种修改旧数据的方法,包括:
在第一传送操作中将新数据传送到逻辑引擎,在第二传送操作中将旧数据传送到逻辑引擎;在第三传送操作中将旧第一奇偶数据传送到逻辑引擎,并且在第四传送操作中将旧第二奇偶数据传送到逻辑引擎;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第三传送操作中传送到所述引擎的所述旧第一奇偶数据,在所述逻辑引擎中生成新第一奇偶数据;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第四传送操作中传送到所述引擎的所述旧第二奇偶数据,在所述逻辑引擎中生成新第二奇偶数据。
2、权利要求1所述的方法,其中所述旧数据、旧第一奇偶数据和旧第二奇偶数据存储在若干存储设备上的数据带中。
3、权利要求2所述的方法,其中所述若干存储设备以独立盘组织的冗余阵列的方式排列。
4、权利要求3所述的方法,其中所述新第一奇偶数据是水平奇偶数据。
5、权利要求4所述的方法,其中所述新第二奇偶数据是对角线奇偶数据。
6、权利要求1所述的方法,其中在所述逻辑引擎中生成一个新第一奇偶数据包括:将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的新数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据包括:将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的新数据执行异或逻辑功能操作。
7、权利要求6所述的方法,其中在所述逻辑引擎中生成新第一奇偶数据包括将在所述第二传送操作中将传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的所述第一存储队列,并且对所述第一存储队列的内容和所述应用的旧数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据包括:将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧数据执行异或逻辑功能操作。
8、权利要求7所述的方法,其中在所述逻辑引擎中生成新第一奇偶数据包括将在所述第三传送操作中传送到所述逻辑引擎的所述旧第一奇偶数据数据应用到所述逻辑引擎的所述第三存储队列,并且对所述第一存储队列的内容和所述应用的旧第一奇偶数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据包括:将在所述第四传送操作中传送到所述逻辑引擎的所述旧第二奇偶数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧第二奇偶数据执行异或逻辑功能操作。
9、权利要求1所述的方法,其中旧数据从易失性存储器传送到所述逻辑引擎。
10、权利要求2所述的方法,还包括用新数据覆盖所述带中的所述旧数据,用所述新第一奇偶数据覆盖所述旧第一奇偶数据,而且用所述新第二奇偶数据覆盖所述旧第二奇偶数据。
11、一种包括存储介质的物品,该存储介质包括存储在上面的机器可读指令,以便:
在第一传送操作中将新数据传送到逻辑引擎,在第二传送操作中将旧数据传送到逻辑引擎;在第三传送操作中将旧第一奇偶数据传送到逻辑引擎,并且在第四传送操作中将旧第二奇偶数据传送到逻辑引擎;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第三传送操作中传送到所述引擎的所述旧第一奇偶数据,在所述逻辑引擎中生成新第一奇偶数据;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第四传送操作中传送到所述引擎的所述旧第二奇偶数据,在所述逻辑引擎中生成新第二奇偶数据。
12、权利要求11所述的物品,其中所述旧数据、旧第一奇偶数据和旧第二奇偶数据存储在若干存储设备上的数据带中。
13、权利要求12所述的物品,其中所述若干存储设备以独立组织的冗余阵列的方式排列。
14、权利要求13所述的物品,其中所述新第一奇偶数据是水平奇偶数据。
15、权利要求14所述的物品,其中所述新第二奇偶数据是对角线奇偶数据。
16、权利要求11所述的物品,其中要在所述逻辑引擎中生成一个新第一奇偶数据的该计算机可读指令包括存储在该存储介质上的机器可读指令,其将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的新数据执行异或逻辑功能操作,并且其中该机器可读指令在所述逻辑引擎中生成新第二奇偶数据,包括存储在该存储介质上的机器可读指令,其将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的新数据执行异或逻辑功能操作。
17、权利要求16所述的物品,其中要在所述逻辑引擎中生成一个新第一奇偶数据的该计算机可读指令包括存储在该存储介质上的机器可读指令,其将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的新数据执行异或逻辑功能操作,并且其中该机器可读指令在所述逻辑引擎中生成新第二奇偶数据,包括存储在该存储介质上的机器可读指令,其将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧数据执行异或逻辑功能操作。
18、权利要求17所述的物品,其中要在所述逻辑引擎中生成一个新第一奇偶数据的该计算机可读指令包括存储在该存储介质上的机器可读指令,其将在所述第三传送操作中传送到所述逻辑引擎的所述旧第一奇偶数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的旧第一奇偶数据执行异或逻辑功能操作,并且其中该机器可读指令在所述逻辑引擎中生成新第二奇偶数据,包括存储在该存储介质上的机器可读指令,其将在所述第四传送操作中传送到所述逻辑引擎的所述旧第二奇偶数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧第二奇偶数据执行异或逻辑功能操作。
19、权利要求11所述的物品,其中旧数据从易失性存储器传送到所述逻辑引擎。
20、权利要求12所述的物品,存储介质还包括存储其上的机器可读指令,其用新数据覆盖所述带中的所述旧数据,用所述新第一奇偶数据覆盖所述旧第一奇偶数据,而且用所述新第二奇偶数据覆盖所述旧第二奇偶数据。
21、一种系统,包括:
至少一个存储器,其包括一个操作系统和一个应用程序;
连接到存储器的处理器;
包括若干存储设备的数据存储器;
适合管理对该数据存储器的输入/输出(I/O)访问的数据存储处理器,该数据存储处理器包括一个逻辑引擎;以及
在存储器中可由该处理器执行的设备驱动器,其中该操作系统、设备驱动器和存储处理器中的至少一个适合于:
在第一传送操作中将新数据传送到所述逻辑引擎,在第二传送操作中将旧数据传送到逻辑引擎;在第三传送操作中将旧第一奇偶数据传送到逻辑引擎,并且在第四传送操作中将旧第二奇偶数据传送到逻辑引擎;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第三传送操作中传送到所述引擎的所述旧第一奇偶数据,在所述逻辑引擎中生成新第一奇偶数据;以及
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第四传送操作中传送到所述引擎的所述旧第二奇偶数据,在所述逻辑引擎中生成新第二奇偶数据。
22、权利要求21所述的系统,其中所述旧数据、旧第一奇偶数据和旧第二奇偶数据存储在若干存储设备上的数据带中。
23、权利要求22所述的系统,其中所述若干存储设备以独立组织的冗余阵列的方式排列。
24、权利要求23所述的系统,其中所述新第一奇偶数据是水平奇偶数据。
25、权利要求24所述的系统,其中所述新第二奇偶数据是对角线奇偶数据。
26、权利要求21所述的系统,其中在所述逻辑引擎中生成一个新第一奇偶数据将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的新数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的新数据执行异或逻辑功能操作。
27、权利要求26所述的系统,其中在所述逻辑引擎中生成新第一奇偶数据将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的所述第一存储队列,并且对所述第一存储队列的内容和所述应用的旧数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述旧数据执行异或逻辑功能操作。
28、权利要求27所述的系统,其中在所述逻辑引擎中生成新第一奇偶数据将在所述第三传送操作中传送到所述逻辑引擎的所述旧第一奇偶数据应用到所述逻辑引擎的所述第一存储队列,并且对所述第一存储队列的内容和所述应用的旧第一奇偶数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第四传送操作中传送到所述逻辑引擎的所述第二旧奇偶数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的第二奇偶数据执行异或逻辑功能操作。
29、权利要求21所述的系统,还包括连接到所述处理器的视频控制器。
30、权利要求22所述的系统,其中该操作系统、设备驱动器和存储处理器中的至少一个还适合于用新数据覆盖所述带中的所述旧数据,用所述新第一奇偶数据覆盖所述旧第一奇偶数据,而且用所述新第二奇偶数据覆盖所述旧第二奇偶数据。
31、一种与具有若干数据存储单元的数据存储器一起使用的存储处理器,包括:
存储器;
逻辑引擎;以及
处理单元,适合于:
在第一传送操作中将新数据传送到逻辑引擎,在第二传送操作中将旧数据传送到逻辑引擎;在第三传送操作中将旧第一奇偶数据传送到逻辑引擎,并且在第四传送操作中将旧第二奇偶数据传送到逻辑引擎;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第三传送操作中传送到所述引擎的所述旧第一奇偶数据,在所述逻辑引擎中生成新第一奇偶数据;
使用在所述第一传送操作中传送到所述逻辑引擎的所述新数据、在所述第二传送操作中传送到所述逻辑引擎的所述旧数据、在所述第四传送操作中传送到所述引擎的所述旧第二奇偶数据,在所述逻辑引擎中生成新第二奇偶数据。
32、权利要求31所述的存储处理器,其中所述旧数据、旧第一奇偶数据和旧第二奇偶数据存储在所述若干存储设备上的数据带中。
33、权利要求32所述的存储处理器,其中所述若干存储设备以独立盘组织的冗余阵列的方式排列。
34、权利要求33所述的存储处理器,其中所述新第一奇偶数据是水平奇偶数据。
35、权利要求34所述的存储处理器,其中所述新第二奇偶数据是对角线奇偶数据。
36、权利要求31所述的存储处理器,其中在所述逻辑引擎中生成一个新第一奇偶数据将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第一存储队列,并且对所述第一存储队列的内容和所述应用的新数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第一传送操作中传送到所述逻辑引擎的所述新数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的新数据执行异或逻辑功能操作。
37、权利要求36所述的存储处理器,其中在所述逻辑引擎中生成新第一奇偶数据将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的所述第一存储队列,并且对所述第一存储队列的内容和所述应用的旧数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第二传送操作中传送到所述逻辑引擎的所述旧数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧数据执行异或逻辑功能操作。
38、权利要求37所述的存储处理器,其中在所述逻辑引擎中生成新第一奇偶数据将在所述第三传送操作中传送到所述逻辑引擎的所述旧第一奇偶数据数据应用到所述逻辑引擎的所述第三存储队列,并且对所述第一存储队列的内容和所述应用的旧第一奇偶数据执行异或逻辑功能操作,并且其中在所述逻辑引擎中生成新第二奇偶数据将在所述第四传送操作中传送到所述逻辑引擎的所述旧第二奇偶数据应用到所述逻辑引擎的第二存储队列,并且对所述第二存储队列的内容和所述应用的旧第二奇偶数据执行异或逻辑功能操作。
39、权利要求32所述的存储处理器,其中所述处理单元还适合于用新数据覆盖所述带中的所述旧数据,用所述新第一奇偶数据覆盖所述旧第一奇偶数据,而且用所述新第二奇偶数据覆盖所述旧第二奇偶数据。
CN200480039319.XA 2003-12-29 2004-12-20 生成奇偶数据的方法、系统和程序 Expired - Fee Related CN101073066B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/747,938 US7188303B2 (en) 2003-12-29 2003-12-29 Method, system, and program for generating parity data
US10/747,938 2003-12-29
PCT/US2004/043040 WO2005066760A2 (en) 2003-12-29 2004-12-20 Method, system, and program for generating parity data

Publications (2)

Publication Number Publication Date
CN101073066A true CN101073066A (zh) 2007-11-14
CN101073066B CN101073066B (zh) 2011-09-14

Family

ID=34749263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200480039319.XA Expired - Fee Related CN101073066B (zh) 2003-12-29 2004-12-20 生成奇偶数据的方法、系统和程序

Country Status (6)

Country Link
US (1) US7188303B2 (zh)
EP (1) EP1700200A2 (zh)
JP (1) JP2007524932A (zh)
CN (1) CN101073066B (zh)
TW (1) TWI283345B (zh)
WO (1) WO2005066760A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103824599A (zh) * 2012-11-15 2014-05-28 三星电子株式会社 改变存储器装置中的部分数据的存储器控制器及其方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206899B2 (en) * 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US7246259B2 (en) * 2004-03-18 2007-07-17 Aristos Logic Coporation Method of calculating parity for surviving dual drive failures in a disk array
US7318190B2 (en) * 2004-06-10 2008-01-08 Intel Corporation Storage device parity computation
US7467281B2 (en) * 2004-06-10 2008-12-16 Intel Corporation Mapping data blocks to storage blocks to wrap around storage devices
US7321905B2 (en) * 2004-09-30 2008-01-22 International Business Machines Corporation System and method for efficient data recovery in a storage array utilizing multiple parity slopes
US9043680B2 (en) * 2007-01-11 2015-05-26 Red Bend Ltd. Method and system for in-place updating content stored in a storage device
US9672106B2 (en) 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10248617B2 (en) 2015-12-22 2019-04-02 Spectra Logic, Corp. File-level array storage
US10339098B2 (en) 2015-12-22 2019-07-02 Spectra Logic, Corp. Container-level array storage
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
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
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5636359A (en) 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
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
US6151641A (en) 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6353895B1 (en) 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
WO2001031456A1 (en) 1999-10-28 2001-05-03 Connectcom Solutions, Inc. Caching techniques for improving system performance in raid applications
JP3458804B2 (ja) * 1999-12-27 2003-10-20 日本電気株式会社 情報記録装置およびその制御方法
US7698625B2 (en) * 2003-08-26 2010-04-13 Adaptec, Inc. System for improving parity generation and rebuild performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103824599A (zh) * 2012-11-15 2014-05-28 三星电子株式会社 改变存储器装置中的部分数据的存储器控制器及其方法
CN103824599B (zh) * 2012-11-15 2018-06-05 三星电子株式会社 改变存储器装置中的部分数据的存储器控制器及其方法

Also Published As

Publication number Publication date
JP2007524932A (ja) 2007-08-30
CN101073066B (zh) 2011-09-14
TW200532447A (en) 2005-10-01
WO2005066760A2 (en) 2005-07-21
EP1700200A2 (en) 2006-09-13
WO2005066760A3 (en) 2007-05-18
US7188303B2 (en) 2007-03-06
US20050160307A1 (en) 2005-07-21
TWI283345B (en) 2007-07-01

Similar Documents

Publication Publication Date Title
CN1965298B (zh) 用于管理奇偶raid数据重建的方法、系统和设备
US9652343B2 (en) Raid hot spare system and method
US5720027A (en) Redundant disc computer having targeted data broadcast
US8762672B2 (en) Storage system and storage migration method
US5101492A (en) Data redundancy and recovery protection
US5893919A (en) Apparatus and method for storing data with selectable data protection using mirroring and selectable parity inhibition
US5333305A (en) Method for improving partial stripe write performance in disk array subsystems
CN101452373B (zh) 输入输出处理器
CN100356310C (zh) 储存虚拟化控制器、子系统及系统与方法
US9842024B1 (en) Flash electronic disk with RAID controller
US20030233596A1 (en) Method and apparatus for fast initialization of redundant arrays of storage devices
EP1700199B1 (en) Method, system, and program for managing parity raid data updates
KR20090096406A (ko) 전역 핫 스패어 디스크를 이용한 연결단절된 드라이브의 재구성 및 카피백 시스템 및 방법
CN101073066B (zh) 生成奇偶数据的方法、系统和程序
US20060064568A1 (en) Integrated circuit capable of mapping logical block address data across multiple domains
CN107957850A (zh) 具虚拟区块及磁盘阵列结构的数据存储系统及其管理方法
CN101859232A (zh) 一种可变长度数据存储接口
Gibson et al. RAIDframe: Rapid prototyping for disk arrays
CN101968754A (zh) 磁盘阵列重建方法
CN116401063A (zh) 一种raid的资源分配方法、装置、设备及介质
CN113687978A (zh) 用于存储阵列控制器的数据处理方法
JPH0713700A (ja) ディスクアレイ装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110914

Termination date: 20181220