数据存储阵列的制作方法

文档序号:6489467阅读:235来源:国知局
专利名称:数据存储阵列的制作方法
技术领域
本发明涉及存储系统。特别地,本发明涉及用于配置存储单元的阵列的方法,其用于增加该阵列能够容许的存储单元失效的数量而不会丢失阵列上存储的数据。
背景技术
如下定义在这里被使用并且被提供用于说明性而非限制性的目的“元素(element)”是存储单元上的数据块。
“基本阵列”是元素集,这些元素包括用于ECC的阵列单元。
“阵列”是存储单元集,该集保持一个或多个基本阵列。
“条带(stripe)”是阵列内的基本阵列。
n是基本阵列中数据单元的数量。
r是基本阵列中冗余单元的数量。
m是阵列中存储单元的数量。
d是基本阵列的最小汉明距离。
D是阵列的最小汉明距离。
在常规阵列中,阵列中存储单元的数量等于基本阵列中数据单元的数量加上基本阵列中冗余单元的数量。也就是m=n+r。大多数常规存储阵列使用最大距离分隔(MDS)码,比如用于容忍失效的奇偶校验或者镜像技术。使用MDS码的基本阵列的最小汉明距离等于一加上基本阵列中冗余单元的数量(即d=1+r)。对于镜像配置,基本阵列中冗余单元的数量等于基本阵列中数据单元的数量(r=n=1),且最小汉明距离是d=2。
有可能对m个存储单元之上的阵列进行变形地编码,上述存储单元的数量m大于阵列中数据单元的数量n加上阵列中冗余单元的数量r,也就是m>n+r。在文献中,当变形编码被用来排列针对性能的奇偶校验块时,这样的编码一般称为“去集群(de-clustering)奇偶校验”。正如这里所用到的,这样的编码方案被称为变形编码方案,因为它更准确地识别该编码方案能够提供用于阵列的新属性。
变形(anamorphism)通过在阵列内选择性地排列基本阵列集来实现。例如,考虑图2中示出的示范阵列200,其使用了四元素的码。阵列200包括以列形式绘出的六个存储单元D1。对于阵列200,m=6。阵列200还包括数个基本阵列,这些基本阵列每个都是由n个数据单元加上r个冗余单元形成的。也就是说,对于每个基本阵列,n+r=4。各基本阵列以如图2中的条带那样来连续地编号,以指示阵列200的四元素的码跨过存储单元D1来展开。在每个条带中有四个块,每个条带充当独立的基本阵列。阵列的最小距离相应地是各条带的所有最小汉明距离的最小值,也就是D=min(di),其中Di是条带i的最小距离。
如所配置的,变形阵列200能够容许m个存储单元集中的至少r个存储单元丢失而不会丢失数据,替代了n个存储单元集中的正好r个单元。这样,当r=2且所用码是MDS时,则任何两个存储单元可失效而无数据丢失。当其元素的任何三个丢失时,则条带将失效。然而,有一些能够被变形阵列200容许的三个单元失效的组合。例如,如果存储单元D1、D3和D5每一个都失效,则条带1的两个元素、条带2的两个元素、以及条带3的两个元素丢失,但是没有条带已经丢失三个元素。这样变形阵列200是合乎规定(over-specified)的,并且可有利地加以利用。
需要一种技术,当其与存储单元的变形阵列一起使用时,能提高ECC的最小汉明距离,由此增大阵列的有效最小距离。

发明内容
本发明提供了一种技术,当其与存储单元的变形阵列一起使用时,该技术提高了ECC的最小汉明距离,由此增大了阵列的最小距离。
本发明的优点通过第一实施例来提供,该第一实施例是用于提高m个存储单元的变形阵列的容错性的方法和系统,其中k个条带跨过m个存储单元的阵列来存储。每个条带具有n+r个元素,这些元素对应于具有最小汉明距离d=r+1的对称码,其中n是m个存储单元的阵列的基本阵列中数据存储单元的数量,r是基本阵列中冗余单元的数量。此外,n=r,n≥2,m>n+r,jm=k(n+r),j和k是整数。条带的每个分别的元素被存储于不同的存储单元上。在施主(donator)条带的最小距离与受主(recipient)条带的最小距离之差大于或等于2时选择一个元素。所选元素在不具有受主条带的元素的存储单元上被重建。在丢失元素被重建之前,使得存储施主条带的存储单元知悉所选元素已被捐赠,使得数据不作为施主条带的一部分而从所选元素读取或写入到所选元素。受主条带的丢失元素然后在所选元素上被重建。按照本发明,在施主条带中的元素被选择之前,受主条带的最小汉明距离是d≥1。施主条带的所选元素可进一步基于对该阵列的最小性能影响来选择。此外,受主信息是基于该阵列的改进性能来选择。存储系统的阵列包括基于擦除或错误纠正码的冗余,擦除或错误纠正码比如奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生码。可选择地,该阵列包括以多个擦除或错误纠正码的乘积为基础的冗余,其中擦除或错误纠正码的至少一个是奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生码。
当在所选元素上重建来自受主条带的至少一部分受主信息的步骤期间该施主条带中的元素失效时,在所选元素上重建来自受主条带的至少一部分受主信息的步骤被终止。当第二施主条带的最小距离与第二受主条带的最小距离之差大于或等于2时,从多个条带中选择第二施主条带。在第二施主条带中选择施主元素。来自受主条带的至少一部分丢失受主信息在第二施主条带中的所选元素上被重建。当备用元素变得可用时,该备用元素被分配给所选存储单元。
本发明的第二实施例提供了用于提高m个存储单元的阵列的容错性的方法和系统,该阵列易于受到所选失效图案的影响。按照本发明的该实施例,k个条带跨过m个存储单元的阵列来存储。m个存储单元的阵列是变形阵列。每个条带具有n+r个元素,其中n是基本阵列中数据元素的数量,r是基本阵列中冗余元素的数量,m>n+r,jm=k(n+r),j和k是整数。每个条带具有多个元素,并且每个条带形成具有最小汉明距离d的擦除或错误纠正码。条带的每个分别的元素被存储于不同的存储单元上。元素失效之后,选择受主元素。选择施主条带中的元素,使得该阵列的容错性在重建操作之后提高。受主条带的丢失元素在该施主条带的所选元素上被重建。在该元素在施主条带中被选择之前,该受主条带的最小汉明距离是d≥2。而且,在完成在施主条带的所选元素上重建受主条带之时,该阵列的最小汉明距离被增大。该受主元素可基于阵列的失效图案来选择。此外,该施主元素可基于预定的目标图案来选择。在受主条带的丢失元素在所选元素上被重建之前,使得存储施主条带的存储单元知悉所选元素已被捐赠。存储单元的阵列包括基于擦除或错误纠正码的冗余,擦除或错误纠正码比如奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生码。可选择地,存储单元的阵列包括以多个擦除或错误纠正码的乘积为基础的冗余,使得擦除或错误纠正码的至少一个是奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生码。
本发明的第三实施例提供了用于提高具有多个存储单元阵列的存储系统的容错性的方法和系统,使得每个阵列包括m个存储单元,k个条带跨过m个存储单元的每个分别的阵列来存储。每个条带具有n+r个元素,这些元素对应于具有最小汉明距离d的对称码,其中n是m个存储单元的阵列的基本阵列中存储单元的数量,r是基本阵列中冗余单元的数量。此外,n=r,n≥2,m>n+r,jm=k(n+r),j和k是整数。条带的每个分别的元素被存储于阵列中的不同存储单元上。当施主条带的最小距离与受主条带的最小距离之差大于或等于2时,在施主条带中选择元素。所选元素被存储于不具有受主条带的元素的存储单元上。施主条带可被存储于与受主条带的阵列不同的阵列上。可选择地,施主条带可被存储于与受主条带相同的阵列上。在丢失元素被重建之前,使得存储施主条带的存储单元知悉所选元素已被捐赠,使得数据不作为施主条带的一部分而从所选元素读取或写入到所选元素。受主条带的丢失元素然后在所选元素上被重建。按照本发明,在选择施主条带中的元素之前,受主条带的优选最小汉明距离是d≥2。施主条带的所选元素可进一步基于对施主条带的最小性能影响或者基于对于存储系统的最小性能影响来选择。此外,受主信息是基于受主条带的改进性能或者基于存储系统的改进性能来选择。存储系统的阵列包括基于擦除或错误纠正码的冗余,擦除或错误纠正码比如奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生码。可选择地,该阵列包括以多个擦除或错误纠正码的乘积为基础的冗余,其中多个擦除或错误纠正码的至少一个是奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或EVENODD码的派生。


在相似标号指示相似元素的附图中,通过实例和非限制性地说明了本发明,在附图中图1A示出了存储系统的典型配置,其具有连接至公共存储控制器的多个阵列;图1B示出了存储系统的典型配置,其具有连接至分离的存储控制器的多个阵列;图2描绘了具有六个存储单元的示范变形阵列;图3描绘了具有九个存储单元的示范变形阵列,用于说明按照本发明的实施方式的闪避(dodging)操作的益处;图4描绘了图3中描绘的变形阵列的第一“三个存储单元失效”的配置;图5描绘了图3中描绘的变形阵列的第二“三个存储单元失效”的配置;图6描绘了按照本发明实施例进行闪避操作之后的图5的阵列;图7描绘了图3中描绘的变形阵列的第三“三个存储单元失效”的配置;图8描绘了按照本发明实施例进行闪避操作之后的图7的阵列;图9描绘了利用(3+3)对称码的具有八个存储单元的示范阵列;图10描绘了具有三个“八个存储单元”阵列的系统;图11描绘了按照本发明实施例进行外部闪避操作之后的图10的阵列系统;以及图12描绘了继一组闪避操作之后具有三个失效的存储单元的十个存储单元的阵列。
具体实施例方式
本申请涉及了题为“Automatic Parity Exchange”的美国专利申请序列号10/619,649(代理案卷号ARC92003015US1)、题为“Multi-pathData Retrieval From Redundant Array”的美国专利申请序列号10/619,633(代理案卷号ARC9)、以及题为“RAID 3+3”的美国专利申请序列号10/619,648(代理案卷号ARC9)。本申请还涉及共同未决和共同转让的美国专利申请序列号10/600,593(代理案卷号YOR9-2003-0069US1)。
诸如奇偶校验码、Winograd码、对称码、Reed-Solomon码、EVENODD码或者EVENODD码的派生码的擦除或错误纠正码(EEC)所能容许的阵列失效码的最小数量至少是ECC的最小汉明距离d减去1,也就是d-1。本发明通过利用在这里称为“闪避”操作的操作来提高ECC的最小汉明距离,用于提供比ECC的汉明距离更大的“有效距离”。这样,无论失效是器件失效或是硬差错,阵列所能容许的失效数量都增大到超出由ECC提供的最小距离。正如这里所用到的,术语“有效距离”和“有效最小距离”是指一加上利用根据本发明的一个或多个闪避操作的阵列所能容许的失效数量。
在下文中,闪避操作是这样的过程,其中选择阵列内的条带用于将元素捐赠给受主条带,并且受主信息被重建到所捐赠的元素上,由此增大阵列的最小距离。闪避操作可在距离di≥di+2时在条带对(i,j)上进行。在闪避操作之后,施主条带将在距离上减少1。相反地,受主条带将在距离上增大1。当闪避操作可在处于最小阵列距离的所有条带上进行时,则总体的最小阵列距离将增大。闪避操作能够根据阵列配置以变化的距离来实现。
图1A示出了整体指示为100的示范存储系统,包括连接至公共阵列控制器101的两个存储阵列102和103。存储阵列102和103包括多个存储单元104,且通过接口105与阵列控制器101通信。阵列控制器101通过接口106与其他控制器和主机系统通信。这样的配置允许阵列控制器与多个存储阵列通信。
图1B示出了整体指示为150的示范存储系统,包括分别连接至不同阵列控制器152和151的两个存储阵列153和154。存储阵列153通过接口157与阵列控制器152通信,存储阵列154通过接口156与阵列控制器151通信。阵列控制器151和152通过接口158和159分别与其他阵列控制器和存储系统通信。图1B中还示出了允许阵列控制器151和152相互通信的通信连接160。
图1A和1B中示出的阵列控制器可设计为硬件或软件控制器。术语“控制器”在这里一般用来指代上述配置的任一个。
许多变形阵列可受益于闪避。变形阵列受益于闪避操作的能力可通过检查阵列的失效组合来验证。例如,图3示出了具有九个存储单元D1的示范变形阵列300。对于此例,阵列300使用了(3+3)对称码,其为n=3、r=3和d=4的码MDS。阵列300被安排为具有三个冗余元素,它们可纠正条带内的六个元素之中的任何三个失效元素。分别指示为1、2和3的三个独特的条带被排列在阵列300内。任何三个存储单元的失效将不会影响任何一个条带中的多于三个元素。于是,阵列300具有最小距离D=4。
为了说明进行按照本发明的闪避操作可用来增大阵列300的有效最小距离,仅需要考虑三种“三个存储单元失效”的安排。第一“三个存储单元失效”的安排如图4中所示,其中框内的X指示存储单元失效。在该特定的失效安排中,每个条带1的两个块已经失效。结果,每个条带仍具有最小距离d=2,因此阵列300具有最小距离D=2。于是,如图4中所示的阵列300可容许多于一个存储单元失效而不可能丢失数据。
第二“三个存储单元失效”的安排如图5中所示,其中框内的X指示存储单元失效。在第二“三个存储单元失效”的安排中,条带1已经丢失三个元素,条带2已经丢失两个元素,条带3已经丢失一个元素。于是,条带1具有最小距离d=1,不能在没有数据丢失的情况下容许更多的存储单元失效。条带2具有最小距离d=2,条带3具有最小距离d=3。结果,阵列300具有最小距离D=1。
闪避操作可通过以公知的方式将条带1中的丢失元素之一的内容重建到条带3的未失效元素之一上,针对第二“三个存储单元失效”的安排来进行。图6描绘了在进行闪避操作之后的图5的阵列。图6中的重建数据加了下划线。这里,单元D9上的条带3的元素已被捐赠给条带1。继闪避操作之后,所有条带具有最小距离d=2,因此阵列300具有最小距离D=2。阵列在闪避操作之后的配置现在可容许再多一个失效而无数据丢失。
第三“三个存储单元失效”的安排如图7中所示,其中框内的X指示存储单元失效。在第三“三个存储单元失效”的安排中,条带1和2的每一个已经丢失三个元素,具有最小距离d=1。然而,条带3尚未丢失任何元素,因此具有最小距离d=4。闪避操作可通过以公知的方式将来自条带1和2(d=1)中每一个的一个丢失元素的内容重建到条带3(d=4)的不同元素上,针对第三“三个存储单元失效”的安排来进行。例如,存储单元D1上的元素1的内容可被重建到盘D9的元素3上,盘D1上的元素2的内容被重建到盘D4的元素3上。
图8描绘了在进行闪避操作之后的图7的阵列。图8中的重建数据加了下划线。结果又将是所有条带具有最小距离d=2,结果阵列300具有最小距离D=2。在闪避操作之后,重要的是没有存储单元包含来自同一条带的两个元素。也就是说,存储单元D4上存储的条带3的元素未被选择用于重建条带1的任一丢失元素,因为存储单元D4的每一个已包含条带1的元素。类似地,存储单元D7上存储的条带3的元素未被选择用于重建条带2的任一丢失元素。
闪避于是提供了这样的技术在任何三个存储单元失效之后,将图3的阵列300的最小距离从D=1恢复至D=2。此外,阵列300的有效最小距离已经从d=4增大到d=5,即使阵列300的系统对于具有距离d=4的码仍具有写入的能力。
用于(3+3)码的最小变形阵列是九个存储单元的阵列,在最小变形阵列中有效距离有所增大。大于九个存储单元的所有阵列在(3+3)码被使用时也将具有增大的有效距离的属性。用于(3+3)码的八个存储单元的阵列不具备拥有增大的有效距离的属性。在十二个存储单元上利用的(4+4)码也具有增大的有效距离的属性。然而,闪避操作应当在最小阵列距离是d=2时发生。结果,可容许在闪避操作期间的更多存储单元失效。
按照本发明的实施例,闪避操作可在阵列内、在分离的阵列之间、或者在阵列与备用池之间来进行,这里称为外部闪避操作。尽管对备用池进行闪避操作是可能的,但是通常更好的是对备用池进行完整的重建操作以及仅在备用池耗尽之时进行闪避操作。这是因为闪避操作仅将来自失效存储单元的一些元素重建到所捐赠的存储单元上,而备用(sparing)操作将来自失效存储单元的所有元素重建到备用存储单元上。
外部闪避操作不同于奇偶校验交换操作,正如共同未决申请序列号10/619,649(代理案卷号ARC9-2003-0015-US1)所公开的,这里通过参照将其引入。也就是说,闪避操作是在条带的基础上进行的,而奇偶校验交换操作是在存储单元的基础上进行的。
为了说明由按照本发明的外部(阵列至阵列)闪避操作提供的优点,考虑图9中示出的示范阵列900。阵列900包括八个存储单元D1并使用(3+3)对称码。阵列900还包括由标号1指示的四个条带。每个条带具有六个元素并具有距离d=4。如前所述,对于使用(3+3)码的八个存储单元的阵列,比如阵列900,表现为内部的闪避操作并不增大阵列的有效最小汉明距离,因为剩余的未失效条带太少以致于无法补偿受到多个单元失效影响的条带的数量。
相对照地,考虑图10中所示的示范阵列系统1000,其包括三个“八个存储单元”阵列1001。具体来说,阵列1001包括存储单元D1,阵列1002包括存储单元D9,阵列1003包括存储单元D17。每个分别的阵列1001还包括排列于阵列内的四个条带。例如,阵列1001包括条带1,阵列1002包括条带5,阵列1003包括条带9。
假设在任何三个存储单元失效之后,正如共同未决申请序列号10/619,649(代理案卷号ARC9-2003-0015-US1)所公开的,奇偶校验交换操作被用来确保每个阵列1001具有一个失效存储单元。奇偶校验交换操作的结果例如通过存储单元D1、D9和D17来描绘,它们被示出为在存储单元的框内具有Xs。进一步假设第四个存储单元失效发生于奇偶校验交换操作之后。第四个存储单元失效例如通过阵列1001中的存储单元D2来描绘,其被示为在存储单元D2的框内具有Xs。在第四个存储单元失效之后,阵列1001、1002和1003分别具有距离D=(2,3,3)。应当理解,不同于存储单元D2的另一存储单元可能作为第四存储单元失效而失效,与下述过程类似的过程将被进行用于增大存储系统的有效距离。
阵列1001中的条带1、2和3现在距离仅为d=2。对于阵列1001是内部的闪避操作将失效,因为需要至少三个具有距离d=4的元素用于将阵列1001的最小距离从2增大到3。阵列1001中只有条带4具有距离d=4。然而,阵列之间的外部闪避操作允许阵列1001的最小距离从2增大到3,而不改变阵列1002和1003的最小距离。为了实现这一点,每个条带1的丢失元素之一的内容是以公知的方式重建到距离仍为d=4的其他条带的元素上,这些其他条带比如阵列1001上的条带4、阵列1002上的条带8和阵列1003上的条带12。
图11描绘了在进行按照本发明的外部闪避操作之后的图10的阵列系统1000。图11中的重建数据加了下划线。具体来说,选择条带3的元素用来重建到存储单元D3内的条带4上。选择条带2的元素用来重建到存储单元D10内的条带8上。最后,选择条带1的元素用来重建到存储单元D17内的条带12上。
当在施主条带中选择元素时,包含所选元素的存储单元不能包含受主条带的元素。例如,可选择存储单元D7或存储单元D8中包含的条带4的元素用于重建来自条带1的失效元素,因为存储单元D7和D8二者不包含条带1的元素。类似地,可选择存储单元D5或存储单元D6中包含的条带4的元素用于重建来自条带2的失效元素,因为存储单元D7和D8二者不包含条带2的元素。最后,可选择存储单元D3或存储单元D4中包含的条带4的元素用于重建来自条带3的失效元素,因为存储单元D3和D4二者不包含条带3的元素。出于该实例的目的,假设选存储单元D3中包含的条带4元素为施主元素,用于重建条带3的元素。
可选择具有d=4的条带8的任一个元素用于重建每个具有d=2的任一个剩余条带的失效元素,可选择具有d=4的条带12的任一个元素用于重建具有d=2的最后剩余条带的失效元素。出于该说明性实例的目的,假设存储单元D11中包含的条带8的元素被选为施主元素,用于重建条带2的元素,并假设存储单元D19中包含的条带12的元素被选为施主元素,用于重建条带1的元素。对于在闪避操作之前的该说明性实例的每一个闪避选择,施主条带具有距离d=4,受主条带(即条带1)具有距离d=2。
外部闪避操作的净结果是,阵列系统1000在四次失效之后具有最小距离D=3。相对照地,仅使用奇偶校验交换操作,最小距离将仅为2,比如共同未决专利申请序列号10/619,649(代理案卷号ARC9-2003-0015-US1)所公开的。结果,当外部闪避操作被用于阵列系统1000时,对于阵列系统1000需要五个失效,以便具有最小距离d=2。这对于被排列为六个单元的四个阵列的24个单元的阵列系统是同一结果,其中每个阵列仅使用如共同未决专利申请序列号10/619,649(代理案卷号ARC9-2003-0015-US1)所公开的奇偶校验交换操作。于是,与奇偶校验交换操作相组合的闪避操作提供的系统可靠性与阵列配置无关。
与奇偶校验交换操作相组合的通用闪避操作的过程可针对每一个进一步的存储单元失效来继续。失效元素被重建到继续存在的元素上,使得用于每个阵列的最小距离被最大化,如前所述。在图9和10示范的24个单元的阵列系统中,针对系统的所有阵列,对于最小距离d=2,需要八个存储单元失效。一旦对于每个阵列的最小距离是d=2,就不再可能进行奇偶校验交换操作或闪避操作以增大系统的有效距离。结果,两个进一步的失效可能造成数据丢失。
随着时间的推移,通用的闪避操作使得条带不再局限于给定阵列。于是,施主条带的选择可在选择施主元素时实现。
一旦备用单元变得可用,比如经过维护变得可用,则它可被分配以取代任一个失效单元。优选的是将具有最少的最小距离的条带的元素重建到备用单元上。考虑图12的实例。阵列1200包括十个存储单元D1-10,使用(3+3)对称码。阵列1200还包括由标号1指示的五个条带。每个条带具有六个元素并具有距离d=4。三个存储单元D1、D2和D4被示为失效,条带1的元素已经通过闪避操作来重建到存储单元D10的条带5的元素上,条带4的元素已经通过闪避操作来重建到存储单元D8的条带5的第二元素上。在这一点,条带1、2、4和5都具有距离d=2,条带3具有距离d=3。当备用随后变得可用于阵列1200时,则来自距离为d=2的条带的信息应当重建到该备用上。待重建到备用上的元素应当从条带中当前不存在的元素集中选择。例如,假设存储单元D2的条带1的元素被重建到单元D10上,来自单元D1的条带4的元素被重建到单元D8上。待重建到备用上的元素不能包括条带1和4的这些重建元素。一旦待重建的元素已被选择,则该信息以公知的方式重建到备用上。
用于选择施主元素的首要标准是基于选择对于施主条带可靠性具有最小影响的施主元素。第二标准是基于选择对于性能具有最小影响的存储元素,比如具有最昂贵的冗余计算的元素。在图12的实例中,条带5的元素,首先因为条带5具有最高距离,其次因为D8和D10具有最昂贵的奇偶校验计算。不能选择D9用于重建条带4的元素,因为D9已经包含条带4的元素。用于选择待重建的信息的首要标准是基于提供最大可靠性增长的信息集。次要标准是选择继重建操作之后提供最佳阵列性能的信息集。在图12的实例中,主要基于条带1和4的剩余距离来选择条带1和4的元素进行重建,其次因为重建这些所选元素能最大化闪避操作之后的性能。
通用闪避还有另一个重要效果。在图9和10的实例中,通用的闪避操作是在受主条带距离为d=2时在阵列之间进行的,而内部的闪避操作是在受主条带距离为d=1时在九个单元的阵列上进行的(图6和7)。这样,在外部的闪避操作期间,在针对数据丢失的外部闪避操作中所涉及的条带内将需要两个失效。
将来自施主条带的元素捐赠给受主条带,要求存储系统能够将来自一个条带的元素分配给另一条带。当施主和受主条带连接至公共阵列控制器101时,如图1A中所示,则控制器101可在内部进行该操作。当施主和受主条带连接至分离的控制器151和152时,如图1B所示,则控制器151和152交换信息。例如,比如以简单磁盘捆绑(JBOD)阵列配置的方式,这些控制器可通过通信连接160暴(expose)各个驱动。可选择地,这些控制器可交换与从所涉及的存储单元上的位置将要读和写的数据有关的信息。
闪避技术已经针对变形阵列加以描述。闪避可与具有最小距离d=3或更大距离的阵列类型一起使用。不过通用的闪避对于对称阵列最为有效。
闪避的使用不仅仅简单地增大存储系统的最小距离。在确定是否进行闪避以及选择施主和受主时可包括许多其他因素。例如,组件在不统一时的单独失效概率、造成数据丢失的失效的组合、以及对于系统性能的影响都可被考虑。在这样的情况中,系统的最小距离可在闪避之后保持不变。
尽管本发明已经根据HDD存储单元形成的存储阵列加以描述,本发明仍适用于其他存储装置的阵列形成的存储系统,这些存储装置比如随机存取存储器(RAM)存储装置(易失性的和非易失性的)、光存储装置以及磁带存储装置。此外,本发明还适于虚拟化的存储系统,比如从网络附加存储器构建的阵列。另外本发明还适用于任何冗余系统,其中有一些将冗余组件与特定的组件子集相关联的状态信息,且该状态信息可利用捐赠(donation)操作来传送。
尽管前述发明已经出于理解清楚的目的在一些细节上加以描述,但是很显然,可以实现落入所附权利要求书的范围之内的某些变化和改型。因此,这些实施例应当被看待为说明性和非限制性的,并且本发明不囿于这里给出的细节,而是可在所附权利要求书的范围和等效方案之内加以改型。
权利要求
1.一种用于提高m个存储单元的阵列的容错性的方法,该方法包括步骤跨过所述m个存储单元的阵列来存储k个条带,每个条带具有多个元素,每个条带形成具有最小汉明距离d的擦除或错误纠正码,条带的每个分别的元素被存储于不同的存储单元上;在施主条带的最小距离与受主条带的最小距离之差大于或等于2时选择该施主条带中的元素,所述选择的元素被存储于不具有所述受主条带的元素的存储单元上;以及在所述选择的元素上重建所述受主条带的丢失元素。
2.根据权利要求1的方法,其中在选择所述施主条带中的所述元素的所述步骤之前,所述受主条带的所述最小汉明距离是d≥2。
3.根据权利要求1的方法,在所述选择的元素上重建所述受主条带的所述丢失元素的所述步骤之前,进一步包括向存储所述施主条带的所述存储单元指示所述选择的元素已被捐赠的步骤。
4.根据权利要求1的方法,其中所述m个存储单元的阵列是变形阵列,每个条带具有n+r个元素,其中n是基本阵列中数据元素的数量,r是所述基本阵列中冗余元素的数量,m>n+r,jm=k(n+r),j和k是整数。
5.根据权利要求1的方法,其中所述施主条带是进一步基于对所述阵列的最小性能影响来选择的。
6.根据权利要求1的方法,进一步包括基于所述阵列的改进性能来选择所述受主信息的步骤。
7.根据权利要求1的方法,其中所述擦除或错误纠正码是奇偶校验代码、Winograd代码、对称代码、Reed-Solomon代码、EVENODD代码或EVENODD代码的派生码中的一个。
8.根据权利要求1的方法,其中当在所述选择的元素上重建来自所述受主条带的至少一部分受主信息的所述步骤期间所述施主条带中的元素失效时,所述方法进一步包括步骤终止在所述选择的元素上重建来自所述受主条带的至少一部分受主信息的步骤;当所述第二施主条带的最小距离与所述第二受主条带的最小距离之差大于或等于2时,从所述多个条带中选择第二施主条带;选择所述第二施主条带中的施主元素;以及在所述第二施主条带中的所述选择的元素上重建来自所述受主条带的至少一部分丢失的受主信息。
9.根据权利要求1的方法,其中当备用元素变得可用时,所述方法进一步包括将所述备用元素分配给选择的存储单元的步骤。
10.一种提高m个存储单元的阵列的容错性的方法,所述阵列易于受选择的失效图案的影响,该方法包括步骤跨过所述m个存储单元的阵列来存储k个条带,每个条带具有多个元素,每个条带形成具有最小汉明距离d的擦除或错误纠正码,条带的每个分别的元素被存储于不同的存储单元上;元素失效之后,选择受主元素;选择施主条带中的元素,使得所述阵列的容错性在重建操作之后提高;以及在所述施主条带的所述选择的元素上重建所述受主条带的丢失元素。
11.一种数据存储系统,包括m个存储单元的阵列,k个条带跨过所述m个存储单元的阵列来存储,每个条带具有多个元素,每个条带形成具有最小汉明距离d的擦除或错误纠正码,条带的每个分别的元素被存储于不同的存储单元上;以及系统阵列控制器,其在施主条带的最小距离与受主条带的最小距离之差大于或等于2时选择所述施主条带中的元素,所述选择的元素被存储于不具有所述受主条带的元素的存储单元上,所述系统阵列控制器在所述选择的元素上重建所述受主条带的丢失元素。
12.根据权利要求11的数据存储系统,其中在所述系统阵列控制器选择所述施主条带中的所述元素之前,所述受主条带的所述最小汉明距离是d≥2。
13.根据权利要求11的数据存储系统,其中在所述受主条带的所述丢失元素在所述选择的元素上被重建之前,所述系统阵列控制器向存储所述施主条带的所述存储单元指示所述选择的元素已被捐赠。
14.根据权利要求11的数据存储系统,其中所述m个存储单元的阵列是变形阵列,每个条带具有n+r个元素,其中n是基本阵列中数据元素的数量,r是所述基本阵列中冗余元素的数量,m>n+r,jm=k(n+r),j和k是整数。
15.根据权利要求11的数据存储系统,其中所述系统阵列控制器进一步基于对所述阵列的最小性能影响来选择所述施主条带。
16.根据权利要求11的数据存储系统,其中所述系统阵列控制器基于所述阵列的改进性能来选择所述受主信息。
17.根据权利要求11的数据存储系统,其中当在所述系统阵列控制器正在所述选择的元素上重建来自所述受主条带的至少一部分受主信息,所述施主条带中的元素失效时,所述系统阵列控制器终止在所述选择的元素上重建来自所述受主条带的所述受主信息,在第二施主条带的最小距离与第二受主条带的最小距离之差大于或等于2时,从所述多个条带中选择所述第二施主条带,选择所述第二施主条带中的施主元素,以及在所述第二施主条带中的所述选择的元素上重建来自所述受主条带的至少一部分丢失的受主信息。
18.根据权利要求11的数据存储系统,其中当备用元素变得可用时,所述系统阵列控制器将所述备用元素分配给选择的存储单元。
19.一种数据存储系统,包括m个存储单元的阵列,k个条带跨过所述m个存储单元的阵列来存储,每个条带具有多个元素,每个条带形成具有最小汉明距离d的擦除或错误纠正码,条带的每个分别的元素被存储于不同的存储单元上;以及系统阵列控制器,其在元素失效之后选择受主元素,以及选择施主条带中的元素,使得所述阵列的容错性在重建操作之后提高,所述系统阵列控制器在所述施主条带的所述选择的元素上重建所述受主条带的丢失元素。
20.根据权利要求19的数据存储系统,其中在所述系统阵列控制器选择所述施主条带中的所述元素之前,所述受主条带的所述最小汉明距离是d≥2。
21.根据权利要求19的数据存储系统,其中当完成在所述施主条带的所述选择的元素上重建所述受主条带的所述丢失元素之时,所述阵列的所述最小汉明距离被增大。
22.一种数据存储系统,包括存储单元的多个阵列,每个阵列具有m个存储单元,k个条带跨过m个存储单元的每个分别的阵列来存储,每个条带具有多个元素,每个条带形成具有最小汉明距离d=n+1的擦除或错误纠正码,条带的每个分别的元素被存储于所述阵列中的不同存储单元上;以及系统阵列控制器,其在施主条带的最小距离与受主条带的最小距离之差大于或等于2时选择所述施主条带中的元素,所述选择的元素被存储于不具有所述受主条带的元素的存储单元上,所述系统阵列控制器在所述选择的元素上重建所述受主条带的丢失元素。
全文摘要
m个存储单元的阵列的容错性是通过利用称为“闪避”的技术来提高的。多个的k个条带跨过存储单元的阵列来存储,其中每个条带具有n+r个元素,这些元素与具有最小汉明距离d=r+1的对称码相对应。条带的每个分别的元素被存储于不同的存储单元上。当施主条带的最小距离与受主条带的最小距离之差大于或等于2时选择元素。所选元素还被存储于不具有受主条带的元素的存储单元上。受主条带的丢失元素然后在所选元素上被重建。
文档编号G06F11/00GK1898650SQ200480020400
公开日2007年1月17日 申请日期2004年7月7日 优先权日2003年7月14日
发明者史蒂文·罗伯特·赫茨勒, 丹尼尔·费利克斯·史密斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1