• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 27
    • 下载费用:30 金币  

    玩重庆时时彩输钱了能报警吗: 在存储系统中实现丢失?;さ氖莘胖玫姆椒ê拖低?pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201310516112.8

    申请日:

    2013.10.28

    公开号:

    CN103793336A

    公开日:

    2014.05.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 12/16申请日:20131028|||公开
    IPC分类号: G06F12/16 主分类号: G06F12/16
    申请人: 国际商业机器公司
    发明人: D·D·钱布利斯
    地址: 美国纽约
    优先权: 2012.10.29 US 13/663,299
    专利代理机构: 北京市中咨律师事务所 11247 代理人: 于静;张亚非
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310516112.8

    授权公告号:

    ||||||

    法律状态公告日:

    2017.03.01|||2014.06.11|||2014.05.14

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明涉及一种在存储系统中实现丢失?;さ氖莘胖玫姆椒ê拖低?。一个实施例包括构造多个逻辑分区。每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则。所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠。所述第一逻辑分区的数据丢失独立于所述第二逻辑分区。将多个存储卷中的每个存储卷与一个逻辑分区关联。将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。

    权利要求书

    权利要求书
    1.  一种用于在存储系统中实现丢失?;さ氖莘胖玫姆椒?,所述方法包括:
    构造多个逻辑分区,每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则,其中所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠,并且所述第一逻辑分区的数据丢失独立于所述第二逻辑分区;
    将多个存储卷中的每个存储卷与一个逻辑分区关联;以及
    将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。

    2.  根据权利要求1的方法,其中所述第一逻辑分区的大部分容器与所述第二逻辑分区重叠。

    3.  根据权利要求1的方法,其中所述第一逻辑分区的全部容器均与所述第二逻辑分区重叠。

    4.  根据权利要求1的方法,还包括将用于条带的存储符号迁移或重构到新物理存储容器中,所述迁移或重构遵循应用于所述条带的放置策略。

    5.  根据权利要求4的方法,还包括将用于条带的存储符号迁移或重构到新物理存储容器中以便遵循应用于所述条带的所述放置策略中的更改。

    6.  根据权利要求1的方法,其中所述第一逻辑分区与第一多个分离容器子集关联,并包含所有容器子集的子集内放置作为分区策略,并且所述第二逻辑分区与第二多个分离容器子集关联,并包含所有其容器子集的子集内放置作为分区策略,并且其中所述第一逻辑分区包括与所述第二逻辑分区具有有限交集的属性。

    7.  根据权利要求6的方法,通过网格分段构造所述第一多个分离容器子集和所述第二多个分离容器子集。

    8.  根据权利要求1的方法,还包括生成和存储放置图。

    9.  一种用于存储系统中的丢失?;さ淖爸?,所述装置包括:
    被配置为构造多个逻辑分区的???,其中每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则,其中所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠,并且所述第一逻辑分区的数据丢失独立于所述第二逻辑分区;
    被配置为将多个存储卷中的每个存储卷与一个特定逻辑分区关联的???;以及
    被配置为将表示数据条带的所述存储符号放置到物理存储容器中的???,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。

    10.  根据权利要求9的装置,其中所述第一逻辑分区的大部分容器与所述第二逻辑分区重叠。

    11.  根据权利要求9的装置,其中所述第一逻辑分区的全部容器均与所述第二逻辑分区重叠。

    12.  根据权利要求9的装置,还包括被配置为生成和存储放置图作为元数据的???。

    13.  根据权利要求10的装置,还包括被配置为将用于条带的存储符号迁移或重构到新物理存储容器中的???,所述迁移或重构遵循应用于所述条带的放置策略。

    14.  根据权利要求9的装置,还包括被配置为将用于条带的存储符号迁移或重构到新物理存储容器中以便遵循应用于所述条带的所述放置策略中的更改的???。

    15.  根据权利要求13的装置,其中所述第一逻辑分区与第一多个分离容器子集关联,并包含所有容器子集的子集内放置作为分区策略,并且所述第二逻辑分区与第二多个分离容器子集关联,并包含所有其容器子集的子集内放置作为分区策略,并且其中所述第一逻辑分区包括与所述第二逻辑分区具有有限交集的属性。

    16.  根据权利要求15的装置,其中通过网格分段构造所述第一多个分离容器子集和所述第二多个分离容器子集。

    17.  一种存储系统,包括:
    存储控制器,所述存储控制器在一个或多个存储设备中构造多个逻辑分区,每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到所述存储系统中的一组物理存储容器内的一组存储放置规则,其中所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠,并且所述第一逻辑分区的数据丢失独立于所述第二逻辑分区;所述存储控制器还将多个存储卷中的每个存储卷与一个逻辑分区关联,并将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。

    18.  根据权利要求17的存储系统,其中所述第一逻辑分区的大部分容器与所述第二逻辑分区重叠,并且进一步所述第一逻辑分区的全部容器与所述第二逻辑分区重叠。

    19.  根据权利要求18的存储系统,所述存储控制器还将用于条带的存储符号迁移或重构到新物理存储容器中,所述迁移或重构遵循应用于所述条带的放置策略。

    20.  根据权利要求19的存储系统,其中所述存储控制器还将用于条带的存储符号迁移或重构到新物理存储容器中以便遵循应用于所述条带的所述放置策略中的更改,所述第一逻辑分区与第一多个分离容器子集关联,并包含所有容器子集的子集内放置作为分区策略,并且所述第二逻辑分区与第二多个分离容器子集关联,并包含所有其容器子集的子集内放置作为分区策略,并且其中所述第一逻辑分区包括与所述第二逻辑分区具有有限交集的属性,并通过网格分段构造所述第一多个分离容器子集和所述第二多个分离容器子集。

    说明书

    说明书在存储系统中实现丢失?;さ氖莘胖玫姆椒ê拖低?
    技术领域
    本发明的实施例涉及存储系统丢失?;?,具体地说,涉及具有分区(compartmentation)的数据放置,其防止因存储设备故障而导致的数据丢失。
    背景技术
    存储系统结合了某种形式的数据丢失?;?。一种形式的数据丢失?;な侨哂嗍荽娲?,例如独立磁盘冗余阵列(RAID)方案。如果存储在一个磁盘上的物理位丢失,则其它磁盘上的幸存物理位或者包含丢失数据的副本,或者足以对丢失数据进行数学重算。因此,即使当某些物理位丢失时,系统存储的数据也不会丢失。如果丢失大量物理位以致超过冗余数据存储提供的?;こ潭?,则可能发生数据丢失。
    当发生某种数据丢失时,丢失对数据所有者的影响取决于数据的哪些部分尚未丢失。数据丢失的某些分布比其它分布对数据所有者造成更大的损害,并且系统的目标是使这种损害保持较小。另一个目标是最大化提供的性能,以便在没有任何数据丢失事件时以及在数据丢失事件之后存储和检索数据。
    发明内容
    本发明的实施例涉及用于在存储系统中实现丢失?;さ氖莘胖?,其中将数据存储为遍布于多个物理容器的物理位。一个实施例包括构造多个逻辑分区。每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则。所述多个逻辑分区中 的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠。所述第一逻辑分区的数据丢失独立于所述第二逻辑分区。将多个存储卷中的每个存储卷与一个逻辑分区关联。将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。
    另一个实施例包括一种用于在存储系统中实现丢失?;さ募扑慊绦虿?。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码。所述计算机可读程序代码被配置为构造多个逻辑分区,每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则。所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠。所述第一逻辑分区的数据丢失独立于所述第二逻辑分区。所述计算机可读程序代码还被配置为将多个存储卷中的每个存储卷与一个逻辑分区关联,以及将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。
    一个实施例包括一种存储系统。所述存储系统包括存储控制器,所述存储控制器在一个或多个存储设备中构造多个逻辑分区。每个逻辑分区包括放置策略,所述放置策略包括用于将存储符号放置到一组物理存储容器中的一组存储放置规则。所述多个逻辑分区中的第一逻辑分区的容器与所述多个逻辑分区中的第二逻辑分区重叠。所述第一逻辑分区的数据丢失独立于所述第二逻辑分区。所述存储控制器还将多个存储卷中的每个存储卷与一个逻辑分区关联,以及将表示数据条带的所述存储符号放置到物理存储容器中,所述放置遵循与包含所述数据条带的逻辑分区关联的放置策略。
    通过参考以下描述、所附权利要求和附图,将理解本发明的这些和其它特性、方面和优点。
    附图说明
    图1示出根据本发明的一个实施例的使用数据放置实现丢失?;さ南?统的框图;
    图2示出根据本发明的一个实施例的使用数据放置实现丢失?;さ氖道?0磁盘系统的框图;
    图3示出根据本发明的一个实施例的使用数据放置实现丢失?;さ挠胛甯龉收嫌蚬亓氖道?0磁盘系统的框图;
    图4示出根据本发明的一个实施例的使用数据放置实现丢失?;さ拇娲⑾低车目蛲?;
    图5是示出根据本发明的一个实施例的用于在存储系统中实现丢失?;さ氖莘胖玫墓痰牧鞒掏?;
    图6是示出根据本发明的一个实施例的用于在存储系统中实现丢失?;さ氖莘胖玫牧硪桓龉痰牧鞒掏?;
    图7是示出根据本发明的一个实施例的用于实现丢失?;さ氖莘胖玫耐缁肪车囊桓鍪道目蛲?;以及
    图8是示出根据本发明的一个实施例的包括使用数据放置实现丢失?;さ南低车姆衿鞯囊桓鍪道目蛲?。
    具体实施方式
    下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
    现在参考附图,图1示出根据本发明的一个实施例的用于在物理存储容器中进行数据放置以实现数据丢失?;さ南低?00。在一个实施例中,系统100实现的用于丢失?;さ氖莘胖霉贪ㄕ攵月呒智械木淼娜魏翁醮?,根据分区策略将数据存储限制在多个物理存储容器中,并且根 据用于多个物理存储容器的平衡策略,选择特定物理存储容器以便存储卷的特定条带。分区指通过数据分布来最小化数据丢失的影响。如果要发生给定量的数据丢失,则优选地将丢失集中在少量存储卷中,其中每个卷丢失其较大部分数据,并且其它卷根本没有发生数据丢失,而不是在所有卷内均匀分布数据。在一个实例中,在一个或多个物理存储容器发生故障之后,根据新分区策略和新平衡策略来迁移数据。
    数据放置过程实现数据?;?、分区和平衡的目标。数据?;ひ馕蹲乓桓鑫锢泶娲⑷萜鞯墓收匣蚨Р换岬贾孪低?00存储和检索的任何用户数据丢失。数据放置的容错级别是可以承受其丢失而不丢失任何用户数据的物理存储容器的数量。更确切地说,在包括一个或多个物理存储容器丢失(其导致无法通过编码方案操作恢复的数据丢失)的所有情况下,编码方案的距离是这些情况下的最少数量的容器丢失,并且容错级别是距离减去1。在一个实施例中,容错级别是一(1)。在其它实施例中,容错级别可能大于1。
    在一个实例中,在系统100的数据放置中使用错误纠正代码以实现容错。用户数据包括一组用户符号。在某些实施例中,用户符号包括任何值,该值可以使用一位(二进制数字)表示,或者使用包含固定数量的位(例如8、16、32、64或128位)的字表示,或者使用包含较大数量的位(可以是固定或可变数量的位)的页表示。在一个实例中,将用户符号分组成条带,每个符号包含在至少一个条带中。在一个实施例中,只有一个条带包含每个符号。每个条带可以表示为一组存储符号,并且这些存储符号存储在物理存储容器中。在某些实施例中,存储符号可以是任何值,该值可以使用一位(二进制数字)表示,使用包含固定数量的位(例如8、16、32、64或128位)的字表示,或者使用包含较大数量的位(可以是固定或可变数量的位)的页表示。
    在一个实例中,系统100提供指定的过程,针对这些过程从条带的用户符号获得存储符号,并且可以通过这些过程从条带的部分或全部存储符号获得用户符号。这些过程称为条带的编码方案。在一个实施例中,编码 方案可以纠正疑符(erasure),意味着可以在并非所有存储符号都可用时提取所有用户符号。在一个实例中,编码方案能够检测和纠正错误,意味着可以在部分可用存储符号具有错误值时提取所有用户符号。
    在一类错误纠正代码实例中,用户符号和存储符号包括具有位的页,所有页包含相同数量的位。在一个这种实例中,条带包含一个用户符号,并且存储为两个或更多存储符号,每个存储符号分别足以重新产生用户符号。当存储符号的数量是2时,该编码方案称为RAID-1或复制。当存储符号的数量是3时,该编码方案称为三次重复。作为另一个实例,条带包含数量为n的用户符号,并且用于条带的存储符号包括n个用户符号以及根据用户符号在数学上计算的k个奇偶校验符号。在一个称为RAID-5的这种实例中,k的值是1。在另一个称为RAID-6的实例中,k的值大于1。在某些实施例中,可以在系统100的条带存储中使用上述或任何其它编码方案以便实现数据?;?。
    在一个实例中,表示一个条带的存储符号没有全部存储在同一物理存储容器中。在一个实施例中,系统100规定来自一个条带的每个存储符号存储在不同的物理存储容器中。在另一个实施例中,允许将存储符号的某些组合存储在同一物理存储容器中,但系统100的操作确保未将存储符号的某些组合存储在同一物理存储容器中。在一个实例中,编码方案与规则关联,这些规则限制允许将哪些存储符号存储在同一物理容器中。在一个实施例中,错误纠正代码的数学属性是容错级别小于用于存储一个条带的存储符号的物理存储容器的数量。
    物理存储容器是系统100的标识的容量子集,用于存储和检索存储符号。在某些实施例中,物理存储容器可以是一个磁盘驱动器、一组磁盘驱动器、一个磁盘驱动器中的一部分空间、磁带、存储???、一组存储???、闪存器件、一组闪存器件、其它用于数据存储的单元等。为了实现最大优势,在一个实施例中,如果物理存储容器具有称为故障域的属性,则这是有利的。这意味着存在可能的事件,这些事件将导致存储在一个物理存储容器中的大量符号丢失或损坏,而未存储在该物理存储容器中的符号保持 完整。在一个实例中,磁盘驱动器具有该属性,因为具有以下故障模式:它们使一个驱动器中的所有数据不可访问,而不影响其它驱动器。当故障域已知时,如果存储在该故障域中的所有符号同时丢失,则确保该数据受到?;ぞ哂兄卮蠹壑?。
    数据?;ぬ峁┑谝挥攀?,即如果丢失的物理存储容器数量和丢失的其它存储符号数量的总和不大于容错级别,则当事件导致某些存储符号丢失时,确保用户数据不会丢失。在某些实施例中,系统100扩展第一优势,以便针对损坏但未丢失的存储符号?;な?。当事件导致的存储符号丢失超过系统范围的容错级别时,数据?;ぬ峁┑诙攀?,即减少丢失的数据量。产生第二优势的原因是如果用户数据中丢失的存储符号数量不超过条带的容错级别,则不会丢失任何用户数据。当存储符号丢失时,某些条带将比其它条带丢失更多的存储符号,因此,系统中的某些条带将能够保留其所有的用户符号。
    与使用错误纠正的现有数据?;は低诚啾?,使用系统100的本发明实施例通过实现分区和平衡而提供额外优势。在一个实例中,分区提供额外优势,因为在导致某些用户数据丢失的许多情况下,大多数卷被保留以便使用,而没有本发明实施例的额外优势的系统将导致在每个卷中丢失某些数据,并且在所有卷中丧失优势。
    在一个实例中,系统100通过以下方式实现分区的目标:将存储的每个用户符号与逻辑分区关联,将逻辑分区与放置策略关联,以及确保用于包含用户符号的条带的存储符号的放置遵循放置策略。在一个实施例中,放置策略结合?;げ呗?,?;げ呗园ū嗦敕桨负陀氡嗦敕桨腹亓墓嬖?,根据这些规则,必须将存储符号放置在单独的物理存储容器中。在一个实例中,放置是规范,其中使用特定的物理存储容器存储每个存储符号。放置策略是确定允许哪些放置的过程或规则。在某些实施例中,放置策略例如可以使用以下项实现:表格式放置列表、从中可以生成放置列表的放置组列表、函数(如果允许提供的放置或放置组,则计算为真值,如果不允许提供的放置或放置组,则计算为假值)、生成一个或多个允许的放置的 过程,或者其它对象(多个)。
    在一个实施例中,在系统100中使用多个逻辑分区,其中每个逻辑分区与放置策略关联。在一个实例中,一个逻辑分区的容器与另一个逻辑分区重叠,并且具有数据丢失独立的属性。容器重叠属性意味着两个逻辑分区的策略能够利用至少某些相同的物理存储容器。在一个实例中,如果用于条带的存储符号的第一放置遵循第一逻辑分区的放置策略,并且用于条带的存储符号的第二放置遵循第二逻辑分区的放置策略,则第一逻辑分区的容器与第二逻辑分区的容器重叠。在该实例中,存在以下物理存储容器:其中的第一放置导致在该物理存储容器中放置至少一个存储符号,并且另外使得第二放置导致在该物理存储容器中放置至少一个存储符号。在一个实施例中,容器重叠属性是实现系统100的平衡目标必需的。
    在一个实例中,单个容器上的重叠足以提供容器重叠,并使某些平衡改进(与非容器重叠情况相比)成为可能,但是,更大的容器重叠导致更好的平衡。在一个实施例中,第一逻辑分区和第二逻辑分区的容器大部分重叠,这意味着具有两个分区的策略允许的使用的物理存储容器数量,大于具有第二逻辑分区的放置策略允许但第一逻辑分区的放置策略不允许的使用的物理容器数量。
    在一个实施例中,第一逻辑分区和第二逻辑分区的容器完全重叠,这意味着具有第一逻辑分区的放置策略允许的使用的物理存储容器集合,等于具有第二逻辑分区的放置策略允许的使用的物理存储容器集合。在一个实施例中,资源重叠的程度随着时间改变,因为调整策略以便适应硬件更改。
    数据丢失独立性属性意味着导致使用一个策略存储的数据丢失的事件不会始终导致使用另一个策略存储的数据丢失。在一个实例中,系统100规定:如果存在包括物理存储容器丢失的可能情况,则第一逻辑分区的数据丢失独立于第二逻辑分区,以便遵循第一逻辑分区的放置策略存储的条带确实发生数据丢失,但遵循第二逻辑分区的放置策略存储的条带不会发生任何数据丢失。在一个实施例中,为了实现数据丢失独立性的最大优势, 如果给定情况的数据丢失独立性的属性强大,则这是有利的,意味着仅一个逻辑分区发生数据丢失,而任何其它逻辑分区的条带不会发生数据丢失。如果将数据丢失独立性的强大属性应用于导致数据丢失的所有最可能的情况,则这也是有利的。在某些实施例中,针对给定逻辑分区提供的放置策略可以根据系统情况改变或变得有所改变。在一个实例中,数据丢失独立性可以意味着数据的实际存储遵循策略,或者在数据遵循策略的情况下应用什么。
    为了最大化分区优势,在一个实施例中,如果系统100规定将用户数据组织成卷并且将单个放置策略应用于卷中的所有用户符号,则这通常是有利的。在一个实例中,有时可能必需或需要将同一卷中的不同用户符号与不同放置策略关联。该实例可以描述为将卷作为一个整体与组合后的放置策略关联,该组合后的放置策略是应用于其不同符号的多个策略的组合。组合后的放置策略允许多个策略的任何一个允许的所有放置。与仅应用一个原始策略相比,以这种方式组合策略通常降低分区的强度。如果组合相对少的策略,则这种降低会更小。但是,不同系统准则可以规定用于接受降低的分区强度的要求(例如,延迟、存储成本、性能等)。
    卷是系统100存储和检索的用户符号子集的标识的逻辑容器。在某些实施例中,系统100提供协议以便执行存储和检索用户数据的操作,包括传送处理的每个用户符号的标识符。在一个实例中,卷可以包括小型计算机系统接口(SCSI)逻辑单元、文件、文件系统中的目录、文件系统、计数键数据(CKD)卷、SCSI存储对象,或者任何其它逻辑数据容器。在一个实施例中,从处理的符号的标识符或属性推断符号的卷标识。在一个实例中,卷可以是以下各项中的盘区或地址范围的集合:文件、SCSI逻辑单元、SCSI存储对象、用于保存有关内容的分类规则选择的数据的存储池等。
    在一个实施例中,为了最大化分区优势,如果卷具有用于隔离的属性,则这是有利的。在一个实例中,这意味着即使在从其它卷丢失数据的情况下,如果未从该卷丢失用户数据,则获得重大价值,如果从该卷丢失数据, 则丧失该价值的很大一部分。在一种实现中,系统100可以用于在系统(例如数据中心)中存储多个文件系统。从第一文件系统丢失小部分数据可以致使该文件系统无用或者明显降低该文件系统中未丢失的任何数据的价值,但第二文件系统的价值可以不受第一文件系统中的任何或全部数据丢失的影响。当卷中的每个符号与同一第一放置策略关联时,则存在潜在的数据丢失情况,它们导致第二放置策略中的数据丢失,但未导致第一放置策略中的数据丢失。在这些情况下,卷没有发生数据丢失,并且使用卷的优势也没有丧失。
    在另一个实例中,两个卷可以分别用于实现基本上类似的目标,例如一个卷可以是另一个卷的备份。在一个实例中,一个卷可以包含数据库表,另一个卷可以包含从中能够重建这些表的日志。尽管丢失一个卷可能有害,但丢失一个卷而未丢失另一个卷的损害小于丢失两个卷的损害。在一个实施例中,将卷存储在数据丢失独立的单独逻辑分区中具有相当大的优势。
    在一个实施例中,当存储用户符号时,用户系统100规定将与同一放置策略关联的符号收集在条带中。条带可以包含一个用户符号或多个用户符号。包含在放置策略中的?;げ呗匀范ū匦胧褂枚嗌俨煌奈锢泶娲⑷萜骼创娲⒈嗦敕桨赣糜诒硎咎醮莸拇娲⒎?。放置策略确定允许使用物理存储容器的哪些子集来存储这些存储符号。在一个实例中,对于给定放置策略,不允许使用物理存储容器的某些组合。在该实例中,这种不允许是放置策略具有数据丢失独立性属性的必要条件。
    在RAID系统中,将物理存储容器(磁盘驱动器)分成阵列组(rank),其中每个磁盘驱动器仅属于一个阵列组。根据用于单个阵列组的?;げ呗?,在该阵列组上独占地存储每个卷。如果在超过容错级别的一个阵列组上发生磁盘故障,则仅存储在该阵列组上的卷受影响。当存在其中在多个阵列组上发生丢失的情况时,每个最可能发生数据丢失的情况仅影响一个阵列组。与传统的系统不同,在一个实施例中,系统100结合了容器重叠的放置策略。传统系统(例如RAID系统)不会实现平衡目标及其优势,后者需要容器重叠属性。
    平衡目标是基本上均匀分布物理存储容器的使用,与每个容器的容量成比例。物理存储容器的使用指容量使用和性能使用。容量使用指占用物理存储容器的部分或全部存储容量。性能使用指任何给定时间,使用在物理存储容器中存储和检索符号所需的资源部分。容量使用中的平衡是有利的,因为在总系统容量几乎用尽之前,存储写入操作将不会失败,这是由于全部物理存储容器均可用所致。性能使用中的平衡是有利的,因为在总操作负载接近于总系统性能容量之前,操作的性能将不会遭受资源饱和。在典型的计算机系统中,使用不同数据集的不同应用可以在不同时间独立启动和停止,因此在一个时间点,性能使用中的平衡本身不会保证在其它时间的平衡。一种用于在所有时间实现性能使用中的平衡的有效方式是在所有物理存储容器之间大致均匀地分布每个卷。以平衡方式分布每个卷的优势是集中于单个卷的单个应用有机会实现所有物理存储容器的全部可能吞吐量。这种优势可以描述为完全扩展性能。
    RAID系统通过使用单个大型阵列组、宽条带化或分簇RAID,实现平衡的属性和优势。如果将所有数据存储在单个跨越所有磁盘的大型阵列组上,则实现平衡,但未实现分区,并且在大型系统中,很少选择该方案,因为存在很多其它劣势??硖醮附醋悦扛鼍淼氖荼椴加诔9鍾AID系统的多个阵列组,使用RAID的另一个层或阵列组之上的虚拟化。该方法实现平衡但未实现分区,并且具有其它劣势。在分簇RAID中,从所有磁盘集的许多重叠子集组装虚拟阵列组,以便每个磁盘可以是许多虚拟阵列组的成员;以及一种形式的宽条带化跨越所有虚拟阵列组分布来自每个卷的数据。虚拟阵列组并不是在常规RAID中使用的阵列组,但它具有某些相同的属性和使用。分簇RAID实现平衡但未实现分区。这些典型的系统未结合系统100提供的具有数据丢失独立性的多个放置策略。
    在一个实施例中,每个放置策略可以包括平衡策略,该平衡策略用于确定使用允许的放置中的哪个放置来存储给定条带的存储符号。平衡策略在放置策略的分区方面允许的放置集中进行选择。在一个实例中,如果构造平衡策略以便在可用于放置策略的所有物理存储容器中,针对每个卷实 现平衡,则这是有利的。
    在一个实施例中,根据?;げ呗?,将条带中的所有页存储在物理存储容器中。在一个实例中,将每个分区与应用于分区中的每个卷的数据放置策略关联。在另一个实例中,分区策略包括限制一个分区仅使用一对物理存储容器。在一个实施例中,在磁盘丢失之后,通过放置策略的有序重新形成和数据的移动,提供存储属性的有序恢复。有序恢复将恢复先前级别的数据?;?、平衡分布和分区。
    如图1中所示,在一个实施例中,系统100包括数据?;つ??10、分区???20、平衡???30、放置图???40和数据恢复???50。在一个实例中,数据?;つ??10、分区???20和平衡???30针对一组物理存储容器(也简称为容器,例如存储磁盘、存储磁带等)生成一组数据放置策略,其中每个策略被视为单独的逻辑分区。在一个实例中,每个数据放置策略包括数据?;げ呗?、数据分区策略和数据平衡策略。在一个实施例中,容器的每个卷仅与单个逻辑分区关联。在一个实例中,每个逻辑分区包括系统中的所有容器,意味着逻辑分区的放置策略包括将存储符号放置在容器中的允许的放置。在一个实例中,分区???20针对每个逻辑分区使用一个分区策略,平衡???30使用平衡策略以便将来自每个逻辑分区的卷的数据均匀地遍布于所有容器。放置策略规定可以将哪些容器组合用于存储数据条带,这些容器通过数据?;つ??30应用的一个或多个?;ぜ扑憷戳?。
    在一个用于双向复制的实例中,放置策略指定允许哪些容器对保存卷数据的给定片段的主副本和辅助副本。
    在双向复制实例中,构造两个单独逻辑分区的放置策略,以便两个单独逻辑分区没有共用的磁盘对。即,如果分区P的放置策略允许平衡???30将给定片段的主副本和辅助副本放置在容器d和d’中(以任何顺序),则没有其他分区P’允许该相同放置。这将针对两个单独逻辑分区产生强大的数据丢失独立性属性。在该实例中,如果上述容器d和d’发生故障,导致数据丢失,则仅来自分区P的数据将丢失。对于所有其它分区P’,提供 所有数据的至少一个幸存副本。这实现完全扩展性能,因为根据分区和平衡策略,任何卷的存储工作负载都以平衡方式跨越所有容器分布。因此,实现分区,并且如果发生数据丢失,则与仅将数据均匀地遍布于所有容器而不使用分区???20应用的限制相比,影响较少的存储卷部分。
    在一个实施例中,分区???20将每个卷分成固定大小的页。在一个实例中,固定大小可以是4兆字节。在其它实例中,页的固定大小可以是其它大小,例如6兆字节、8兆字节等。卷页是用户符号,并且根据数据?;つ??10实现的编码方案,将它们分组并映射到多组容器上(on-container)(例如,磁盘上、磁带上等)页,这些页是存储符号。在一个实例中,对于简单的复制,组仅具有一个卷页,该页映射到两个容器上页,即该组的主页和辅助页。根据一个实例,对于基于奇偶校验的RAID,数据?;つ??10将一组n个卷页映射到N=n+q个容器上页,其中q是?;ば云媾夹Q橐车氖浚ɡ?,在RAID-5中q=1)。在一种实现中,组被视为条带。对于复制(也称为RAID-1),大小N=2的条带与n=q=1一起使用。
    在一个实施例中,数据放置是表格式放置,因为放置图???40将每个容器上页在其特定容器中的位置记录在表(称为放置图)中。在一个实例中,作为系统元数据维护放置图。在一种实现中,规定在系统100的操作期间改变页放置,其中平衡???30从一个容器读取数据并将数据写入到另一个容器。放置更改反映为放置图中的更改,并且放置图中的更改可以用于控制影响更改的数据移动。在一个实例中,表格式放置可以不受限制(例如,可以独立地将每个页分配给容器),或者可以是类限制的(例如,永久地将页分成等价类,并且通常将一个类中的页全部分配给同一容器中的位置)。
    其它实例存储系统可以规定具有类限制页的表格式数据放置。为了便于讨论,将页称为区(partition),将等价类称为片(slice)。在一个实例中,将放置图分解成规定哪些容器保存每个类的容器上页的分布表,以及规定每个页位于容器中的位置的一组区表(每个容器一个区表)。
    在一个实施例中,分区???20将卷分成逻辑分区。在一个实例中,每个卷仅属于一个分区,并且每个分区与分区???20提供的数据分区策略关联,该策略应用于该分区中的所有卷。放置策略应用于该分区中的新卷的存储放置、向这些卷中添加的存储增量,以及通过数据恢复???50对这些卷执行的数据迁移。例如响应于设备或容器丢失,数据恢复???50执行数据迁移。在一个实例中,系统100的正常操作模式是按照策略执行所有数据放置,意味着遵从放置策略。
    在一个实施例中,某些操作可以允许数据放置暂时不按照策略(即,可以暂时不遵从放置策略)。一个实例是可以将指定片视为放置策略的暂时例外。另一个实例是在容器之间迁移数据时,放置策略本身可能改变,并且仅可由放置图???40执行使数据放置图按照策略所需的对应更改。不按照策略放置可以用于折衷实施例的分区优势,以便改进其它上述更改的暂时处理。
    在一个实施例中,?;げ呗?、分区策略和平衡策略描述放置数据中的行为属性,并且可以不对应于系统100中的可单独标识的组件。在一个实例中,?;げ呗蕴峁┮韵乱螅焊菔荼;つ??10实现的数据?;し桨傅囊?,放置用于条带的一组容器上页。在一个实例中,数据?;し桨傅囊蟀ㄒ筇醮械乃幸吃诘ザ赖娜萜髦?。在另一个实例中,如果实现系统100的存储系统具有多容器故障域(即,其中单个组件故障导致多个容器同时丢失),则实现另一个要求,即条带中的所有页属于单独的故障域。
    在一个实施例中,分区???20针对分区实现分区策略,该策略限制可以共同用于在该分区中存储卷的任何条带的存储符号的容器对。在一个实例中,分区策略可以具体化为此类允许的对的列表。如果放置图???40实现类限制的表格式放置图,则分区策略可以另外在每个类的容器分配中具体化,以便满足约束。在该实例中,系统100提供以下操作优势:不需要针对每个放置操作直接查询分区策略。
    在一个实施例中,分区???20实现的分区策略的一个重要特性是用 于两个分区的允许的对是分离的。在一个实例中,允许由一个分区使用的磁盘对可能无法由另一个分区使用。因此,针对放置按照策略的所有数据实现分区,其防止因容器对故障而导致的数据丢失。
    在一个实施例中,平衡???30实现的平衡策略选择应使用哪些容器来存储给定条带,或者针对类限制放置选择应使用哪些容器来存储其成员在相同等价类中的给定条带组。在一个实例中,当使用按照策略的放置时,可能需要平衡策略粗略达到跨越系统所有容器的最佳使用平衡。在一种实现中,构造用于分区的允许的对组(pair set),以便可以针对每个分区实现所有容器的平等使用,直到要放置的条带或类数量确定的量化限制。在另一个实例中,可能不提供平等使用,因为可能具有以下情况(例如,在多个容器故障之后):其中允许的对组可能达到不可能实现平等使用的状态(例如,如果没有包括指定容器的对)。
    在一个实施例中,系统100不仅规定跨容器故障保留数据,而且还规定在此类故障之后恢复到等效操作状态。一个或多个容器丢失意味着这些容器中的容器上页丢失。这还意味着丢失的容器是其一个成员的任何容器对不再可用。在一个实例中,更新数据对象以便反映由于容器故障而对实现系统100的存储系统的更改。在一个实例中,系统100从放置图删除丢失的容器上页,并且从用于分区的允许的对组删除丢失的容器对。由于删除页,因此更新的数据放置不按照数据?;つ??10实现的?;げ呗?。删除磁盘对导致改变分区策略,并且还必须相应地改变放置策略。
    在一个实施例中,针对数据恢复???50实现的恢复的要求是:通过重新复制,使放置按照有关?;げ呗缘牟呗?;通过重新分区,使放置按照有关分区???20实现的新分区策略的策略;以及通过重新平衡,平衡???30根据更新后的平衡策略来重新平衡放置。在一个实例中,重新复制、重新分区和重新平衡包括从容器读取数据并将数据写入到容器,并且可以包括数据?;つ??10针对数据执行的计算。
    在一个实施例中,用于重新复制、重新分区和重新平衡的过程取决于逻辑分区的构造。在一个实例中,通过以不同方式将容器组分成分离集合, 提供逻辑分区的构造。在该实例中,逻辑分区包括多个彼此分离的容器子集,以及放置策略,该策略包括基于容器子集的分区策略和平衡策略。容器子集的成员是物理存储容器。在该实例中,分区???20针对逻辑分区提供的分区策略是使得用于条带的存储符号必须完全包含在属于该逻辑分区的任何单个容器子集中。对于给定容器子集,子集内(intra-subset)放置是以下这些放置:仅将用于条带的存储符号放置在包含在子集中的物理存储容器中。在该实例中,分区策略允许逻辑分区的所有容器子集中的所有子集内放置,并且不允许任何其它放置。存储符号的放置还遵循放置策略的?;げ呗苑矫?。
    在该实例中,平衡???30提供的平衡策略管理根据每个允许的放置来放置多少条带。在一种实现中,将条带分配给与每个容器子集关联的放置,条带数量与该容器子集中的容器数量成比例;以及容器子集可以具有不相等的大小。遵从数据?;つ??10提供的?;げ呗灾械娜魏卧际?,以均匀的频率将条带的存储符号分配给容器。
    在一个实施例中,每个逻辑分区对相对于彼此具有有限交集的属性。有限交集的属性意味着来自一个分区的容器子集和来自另一个分区的容器子集之间的交集中的最大物理存储容器数量不超过容错级别。在一个实例中,如果对于与第一逻辑分区关联的任何第一容器子集以及与第二逻辑分区关联的任何第二容器子集,包含在第一容器子集与第二容器子集的交集中的物理存储容器数量不超过容错级别,则第一逻辑分区与第二逻辑分区具有有限交集。在一个实施例中,如果所有逻辑分区对具有有限交集,则这是有利的,因为对于最重要的物理存储容器丢失情况,它在分区对之间提供强大的数据丢失独立性。
    在一个实施例中,数据?;つ??10从容器子集构造每个逻辑分区L,这些容器子集针对?;げ呗允前踩娜萜髯蛹?。安全的含义是?;げ呗栽市砣萜髯蛹械拿扛鲎蛹诜胖?。在一个实例中,如果?;げ呗缘贾率褂肕个存储符号表示条带,则以任何顺序从容器子集中任意选择M个不同容器将构造?;げ呗栽市淼姆胖?。
    在一个实例中,?;げ呗栽市硎褂靡桓龇掷爰疶中的容器的任何组合。
    在一个实例中,对于仅包括安全容器子集T的逻辑分区L,当且仅当容器子集T没有重叠对时,才满足分离条件。即,任何两个不同的分离集T的交集可能不包含任何容器,或者仅包含一个容器,但必须不能包含多个容器。
    在一个实施例中,如果容器子集T是安全的容器子集T,则平衡???30针对安全容器子集T中的容器上页提供的平衡策略使得以相同频率在安全容器子集T中的容器的所有可能n元组内分布条带,其中n是条带大小。
    在另一个实施例中,逻辑分区可以包含不是安全容器子集的容器子集。这意味着?;げ呗园ㄎ赐ü繁C扛龃娲⒎旁诓煌锢泶娲⑷萜髦械靡月愕墓嬖?。在一个实例中,系统包括多容器故障域,并且?;げ呗园ㄔ谝桓龆嗳萜鞴收嫌蛑锌梢苑胖玫奶醮拇娲⒎挪怀桓龅囊?,并且进一步,至少一个容器子集具有来自一个多容器故障域的两个容器。在一个实例中,分离集T中具有某些这样的容器组合:不允许它们作为数据?;つ??10提供的?;げ呗缘囊徊糠郑ɡ?,特定的容器组合可以在同一故障域中;它可能无法通过放置全部条带实现容器的平衡使用等)。在一个实例中,由于数据?;つ??10提供的?;げ呗?,如果结果是重叠中的容器无法成对用于数据放置,则可允许不安全容器子集T在多个容器中重叠。
    在一个实施例中,通过网格分段构造逻辑分区L,如在此描述的那样。逻辑分区基于将容器分配到具有r行和p列的网格中,其中p是素数,r小于或等于p。在一个实例中,将每个容器分配给单元,并且分配给单元的容器数量最多为容错级别。每个单元分配的数量可以在整个网格内有所变化,并且可以存在空单元。在该实例中,根据分区???20对行i和列j进行的分配,通过i、j引用容器。p2个容器子集T的集合通过定义,其中q是0和(p-1)之间的数(包含),k是0和(p-1)之间的数(包含),d表示容器。例如,对于q=0和k=3,容器 子集T0,3包括在网络的第3列中记录的容器。q的值(0除外)标识属于通过网格的对角线片的子集,其中斜率由q的值确定。
    将容器子集T分组成逻辑分区L通过Lq={Tq,k:k=0,...,p-1}来定义。
    在一个实施例中,分区???20针对每个逻辑分区提供的分区策略从这些容器子集的子集内放置来构造,如上面描述的那样。在一个实例中,可以在数学上示出,通过单个标记为Lq的逻辑分区包含的多个容器子集彼此分离。当比较来自两个不同逻辑分区的容器子集时,通常这些容器子集不同,但它们的交集仅包括分配给网格的单个单元的物理存储容器(这基于p是素数的事实)。交集中的成员数量不大于容错级别。这意味着通过这种方式构造的逻辑分区全部具有有限交集的属性。
    在另一个实例中,可以通过网格分段构造逻辑分区(如在上一个实例中),并且添加另一个逻辑分区。额外的逻辑分区(在此称为水平逻辑分区LH)包括水平分离集TH,k={dk,j}(即,每个水平分离集TH包含网格的给定行中的所有容器)。水平逻辑分区包括与其它逻辑分区具有有限交集的属性。
    在一个实施例中,存储系统中没有多容器故障域,并且通过网格分段构造的所有逻辑分区(包括水平逻辑分区)的容器子集是安全的容器子集。
    在另一个实施例中,存储系统中具有多容器故障域,并且系统100通过网格分段构造逻辑分区L(不包括水平逻辑分区)。此外,使用以下额外条件组装网格:将单个故障域中的所有容器分配给网格的同一行的单元。如果执行该操作,则通过这种方式构造的所有容器子集(不包括水平容器子集)都是安全的。
    在一个实施例中,系统100可以使用不同特性执行r和p的选择以及将容器分配到网格中。例如,选择可以基于实现系统100的存储系统。在一个实例中,在包括二十(20)个容器(例如,20个磁盘驱动器)的存储系统中,一个实例是选择p=5和r=4,并且将容器分配给4×5网格400,如图2中所示。如图所示,实例4×5网格包括基于行和列位置的网格单元410,这些单元使用数字(例如,标识号、名称等)标记。实例4×5网格 400产生以下六个逻辑分区L,其中一个是水平逻辑分区LH:
    (00 10 20 30)(01 11 21 31)(02 12 22 32)(03 13 23 33)(04 14 24 34)
    (00 11 22 33)(01 12 23 34)(02 13 24 30)(03 14 20 31)(04 10 21 32)
    (00 12 24 31)(01 13 20 32)(02 14 21 33)(03 10 22 34)(04 11 23 30)
    (00 13 21 34)(01 14 22 30)(02 10 23 31)(03 11 24 32)(04 12 20 33)
    (00 14 23 32)(01 10 24 33)(02 11 20 34)(03 12 21 30)(04 13 22 31)
    LH=(00 01 02 03 04)(10 11 12 13 14)(20 21 22 23 24)(30 31 32 33 34)。
    在一个实例中,如果不考虑故障域,则上面列出的六个逻辑分区L组成有效分区,其中逻辑分区L包括安全集。如果容器与四个故障域关联,每个故障域包含5个容器,则上面的布置有效,并且前五个逻辑分区L(不包括LH)是安全集的逻辑分区。应该指出,例如可以通过存储系统设计确定与故障域的关联,通过这种关联,容器使用公共电源或通信总线。因此,在一个实例中,系统100可能无法自由选择故障域。
    在另一个实例中,如果容器与五(5)个故障域关联,每个故障域包含四(4)个容器,则可以进行选择以便选择p=5和r=5,并且将容器分配给5×5网格500,如图3中所示。如图所示,根据列和行放置引用网格单元510,其中五(5)个故障域被示出为空网格单元510。该布局产生以下逻辑分区L:
    (00 10 20)(11 31 41)(02 12 22 32 42)(03 23 33 43)(04 14 24 34 44)
    (00 11 22 33 44)(12 23 34)(02 24 41)(03 14 20 31 42)(04 10 32 43)
    (00 12 24 31 43)(20 32 44)(02 14 33)(03 10 22 34 41)(04 11 23 42)
    (00 34 42)(14 22 43)(02 10 23 31 44)(03 11 24 32)(04 12 20 33 41)
    (00 14 23 32 41)(10 24 33 42)(02 11 20 34 43)(03 12 44)(04 22 31)
    需要指出,在该实例中,数据?;つ??10实现的?;げ呗耘懦褂盟铰呒智鳾LH=(00 02 03 04)(10 11 12 14)(20 22 23 24)(31 32 33 34)(41 42 43 44)]作为逻辑分区。
    在用于图3中所示网格的实例中,容器子集具有不相等的大小,这不会干扰分区???20的成功分区操作。在某些实例中,可以优选容器子集 大小的更接近相等的分布。
    图4示出根据一个实施例的实现数据放置系统100的存储系统600的框图。在一个实例中,存储系统600包括数据放置系统100、存储容器6101-n,以及存储服务器620(包括存储控制器630)。在一个实施例中,如果存储系统600中的数据使用分区分布(使用通过仅包含安全容器子集的逻辑分区L定义的逻辑分区),并且从系统丢失容器610(例如,发生故障),则数据放置系统100定义新的一组逻辑分区,这些分区通过以下操作定义:从包含已丢失容器610的容器子集删除已丢失容器610,以及从每个逻辑分区L中的允许的对删除包括已丢失容器610的所有对。所述新的一组逻辑分区保留一个仅包含安全容器子集的集合。在一个实例中,可以以类似于分区???20和平衡???30提供一组原始逻辑分区的方式,分别提供新分区策略和新平衡策略。在一个实施例中,新放置策略与原始放置策略相关,以便它仅允许在原始放置策略中允许的那些条带放置,但使用已丢失容器610的那些不被允许的条带放置除外。在一个实施例中,系统100可以在系统600中的存储服务器620、存储控制器630中实现,或者在系统600中的任何其它设备或存储器中实现。在一个实施例中,数据?;つ??10、分区???20、平衡???30、放置图???40和数据恢复???50的功能可以在存储控制器630或存储服务器620中以硬件、软件、固件等实现。
    在一个实施例中,每个分离集具有至少两个幸存成员。在一个实例中,新平衡策略可以在所有逻辑分区L中实现所有容器的平衡使用。新平衡策略需要将条带的不同部分放置在每个分离集T中,因为从每个逻辑分区L中的一个分离集T丢失一个分区,而同一逻辑分区L中的其它容器子集保持其成员资格。每个分离集T中(跨越所有组合均匀地放置条带的)平衡策略保持不变。
    在一个实例中,在容器丢失数据之后,放置不按照数据?;つ??10提供的?;げ呗?,因为页的冗余副本由于容器丢失而丢失。因此,在一个实施例中,需要重新复制幸存容器上页,并且还可能需要重新平衡和重新 分区。在一个实例中,可以使用分离集T内重新复制、条带向外迁移和拆分向外迁移的类别中的数据移动组合,实现重新复制、重新平衡和重新分区。
    在一个实例中,分离集T内重新复制通过数据恢复???50提供,并且包括在已丢失容器的分离集T的另一个幸存成员中,创建位于已丢失容器的分离集T的幸存成员上的幸存容器上页的新副本。这在其最初所在的同一分离集T中产生完整的条带。在一个实例中,条带向外迁移通过数据恢复???50提供并且包括:在两个幸存容器中创建幸存容器上页的副本,这两个幸存容器彼此在同一分离集T中,但不在已丢失容器的分离集T中;以及从原始分离集T删除幸存副本。这在不同于其最初所在的分离集T中产生完整的条带。在一个实例中,拆分向外迁移通过数据恢复???50执行,并且包括将条带向外迁移分成两个部分的过程。第一部分是执行分离集T外重新复制(即,在未位于已丢失容器的分离集T中的幸存容器上,创建幸存容器上页的一个副本)。此时,条带按照?;げ呗?,但不按照分区策略。第二部分是在新分离集T中的第二容器上创建第二副本,并且从原始分离集T删除副本。
    在一个实施例中,数据移动的最佳序列取决于存储系统目标。在一个实例中,可能必需执行向外迁移以便实现重新平衡,可能需要重新平衡以便确保系统使用中的执行平衡。在另一个实例中,简单的重新复制(分离集T内或分离集T外)比完全向外迁移需要更少的写入输入/输出(I/O)操作,因此是一种恢复数据冗余的更快方式。在一种实现中,如果首先执行重新复制,则可以在稍后执行其它I/O操作以便完成向外迁移。
    在一个实施例中,系统100可能在容器发生故障之后需要重新划分。例如,如果任意分离集T仅具有一个幸存成员、没有允许的容器对,或者无法跨所有容器实现平衡分布,则必需重新划分(即,需要重构逻辑分区L成员资格)。在一个实例中,对于通过上述网格对角线方法构造的初始逻辑分区L集合,如果在初始分配中没有太多空位,并且如果没有太多容器故障,则在少量容器与空位交换之后,计算来自同一网格的新逻辑分区 集合L便可足够。该过程使容器子集和逻辑分区L保持基本完整,但将这些特定容器移动到不同的容器子集。新逻辑分区集合承载具有新策略和政策的新逻辑分区,并且旧分布将不按照新策略的策略。因此,在一个实施例中,重新分区和重新平衡将需要一组条带向外迁移和其它类似的操作。在该实施例中,产生的数据移动量与重新分配的容器数量成比例。
    在一个实施例中,分区优势可以与逻辑分区数量成比例。在一个实例中,分区???20规定分区具有足够多的分区。在另一个实例中,容器子集足够大以便容纳至少一个容器丢失而无需重新划分。这意味着每个分离集T的大小可以是至少条带大小加上1(例如,对于简单的复制为3)、加上2(例如,对于简单的复制为4)等。
    在一个实施例中,如果不考虑故障域限制,则确定网格对角线方法的参数的方法是选择p的候选值作为最小素数,以便(p2)大于或等于存储系统中的容器数量,然后将r选择得尽量小以便容纳容器。在一个实例中,还可能值得的是,考虑更大的素数作为p的候选值,前提是它们产生具有更少空位的网格,并且因此产生更小的分离集T大小分散。在一个实例中,更大的p值产生更大数量的分区,但产生更小的分离集T大小。
    在一个实施例中,如果考虑故障域限制,并且故障域具有均匀大小,则根据最小分离集T大小变得足够大以便支持故障域限制的约束,选择在网格每行中容纳少量的全部故障域的p值。
    图5示出根据一个实施例的用于数据放置的实例过程700的流程图。在过程方框710,例如通过图1中所示的系统100的分区???20,将存储容器的多个存储卷分成固定大小的页。在过程方框720,例如根据系统100的分区???20提供的分区策略,限制物理存储容器。在过程方框730,例如根据系统100的平衡???30提供的平衡策略,选择物理存储容器。在过程方框740,在一个或多个存储容器发生故障之后,例如通过系统100的数据恢复???50,向/从其余存储容器迁移数据。在一个实施例中,数据迁移基于新分区策略和新平衡策略。
    图6示出根据一个实施例的用于数据放置的实例过程800的流程图。 在过程方框810,例如通过图1中所示的系统100的分区???20,构造多个逻辑分区。在一个实施例中,构造的逻辑分区包括第一逻辑分区和第二逻辑分区。在一个实例中,第一逻辑分区的容器与第二逻辑分区的容器重叠,并且第一逻辑分区的数据丢失独立于第二逻辑分区。在过程方框820,例如通过系统100,针对每个逻辑分区关联放置策略。在过程方框830,例如通过系统100的分区???20,将多个存储卷的每一个与逻辑分区关联。在过程方框840,例如通过系统100的放置图???40,将表示数据条带的存储符号放置到物理存储容器中,所述放置遵循与包含该数据条带的逻辑分区的关联放置策略。
    图7示出根据本发明的一个实施例的使用实施分区和平衡策略的实现丢失?;さ氖莘胖孟低?00的信息技术系统10的基本组件的一个实例。信息技术系统10包括服务器11以及远程设备15和17-20,它们可以使用本发明的系统100。
    远程设备15和17-20的每一个都具有应用,并且可以具有本地数据库16。服务器11包含应用并且连接到数据库12,远程设备15和17-20可以通过网络13分别经由连接14(A-F)访问数据库12。服务器11执行用于计算机网络的软件,并且控制对它本身和数据库12的访问。远程设备15和17-20可以访问数据库12,方式为:通过网络13(例如但不限于:因特网、局域网(LAN)、广域网(WAN))、通过使用调制解调器(POTS)的电话线路、蓝牙、WiFi、WiMAX、蜂窝、光、卫星、RF、以太网、磁感应、同轴电缆、RS-485等或其它类似的网络。服务器11还可以连接到组织中的局域网LAN。
    远程设备15和17-20可以各自位于远程站点。远程设备15和17-20包括但不限于PC、工作站、膝上型计算机、手持式计算机、袖珍PC、PDA、寻呼机、WAP设备、非WAP设备、蜂窝电话、掌上型设备、打印设备等。每个远程设备15和17-20包括通过对服务器11进行搜索查询,从大型文档集合请求相关材料的能力。因此,当远程设备15和17-20之一处的用户需要访问系统100和服务器11处的数据库12时,远程设备15和17-20通 过网络13通信以便访问系统100、服务器11和数据库12。
    服务器11可以访问第三方计算机系统21和数据库22,以便访问其它文档集合和/或搜索索引。从第三方计算机系统21和数据库22获得的数据可以存储在服务器11和数据库12中,以便随后为远程设备15和17-20处的用户提供访问?;菇瓜?,对于某些类型的数据,远程设备15和17-20可以直接使用网络13访问第三方计算机系统21和数据库22。
    根据本发明的一个实施例,系统100使用实现丢失?;さ氖莘胖玫墓?。图8中示出显示根据本发明的一个实施例的使用系统100的服务器11(如图7中所示)的一个实例的框图。服务器11包括但不限于PC、工作站、膝上型计算机、PDA、掌上型设备等。第三方计算机系统的处理组件类似于针对服务器11的描述的组件(图8)。
    通常,在硬件体系架构方面,如图8中所示,服务器11包括处理器41、计算机可读介质(例如存储器42)以及一个或多个输入和/或输出(I/O)设备(或外围设备),它们在通信上通过本地接口43耦合。本地接口43例如可以是但不限于一条或多条总线或其它有线或无线连接,如所属技术领域公知的那样。本地接口43可以具有其它元件(为简单起见而被省略),例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以便实现通信。进一步,本地接口43可以包括地址、控制和/或数据连接,以便在上述组件之间实现适当的通信。
    处理器41是用于执行可以存储在存储器42中的软件的硬件设备。处理器41可以是几乎任何定制或商用处理器、中央处理单元(CPU)、数据信号处理器(DSP),或者是与服务器11关联的多个处理器之间的辅助处理器,并且可以是基于半导体的微处理器(以微芯片形式)或微处理器。
    存储器42可以包括以下各项的任何一个或组合:易失性存储元件(例如,随机存取存储器(RAM),例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)和非易失性存储元件(例如,只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、紧凑盘只 读存储器(CD-ROM)、磁盘、软盘、盒带、卡带等)。此外,存储器42可以包括电、磁、光和/或其它类型的存储介质。应该注意,存储器42可以具有分布式体系架构,其中各种组件彼此远离,但可以由处理器41访问。
    存储器42中的软件可以包括一个或多个单独程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图8中所示的实例中,存储器42中的软件包括合适的操作系统(O/S)51和本发明的搜索系统100。系统100包括下面进一步描述的功能组件和过程方框。
    操作系统51基本上控制其它计算机程序(例如系统100)的执行,并且提供调度、输入/输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。但是,本发明的系统100适用于所有其它商用操作系统。
    系统100可以包括源程序、可执行程序(目标代码)、脚本,或者任何其它包括一组要执行的计算机程序指令的实体。当系统100是源程序时,则程序通常通过编译器、汇编器、解释器等转换,这些组件可以包括也可以不包括在存储器42中,以便与O/S51结合而正确运行。此外,系统100可以被编写为:(a)面向对象的程序设计语言,其具有数据类和方法类,或者(b)过程程序设计语言,其具有例程、子例程和/或函数。计算机程序指令可以完全地在服务器11上执行、部分地在服务器11上执行、作为一个独立的软件包执行、部分在服务器11上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
    也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
    也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、 或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
    I/O设备可以包括输入设备,例如但不限于鼠标44、键盘45、扫描仪(未示出)、麦克风(未示出)等。此外,I/O设备还可以包括输出设备,例如但不限于打印机(未示出)、显示器46等。最后,I/O设备可以进一步包括传送输入和输出的设备,例如但不限于NIC或调制器/解调器47(用于访问远程设备、其它文件、设备、系统或网络)、射频(RF)或其它收发器(未示出)、电话接口(未示出)、桥接器(未示出)、路由器(未示出)等。
    如果服务器11是PC、工作站、智能设备等,则存储器42中的软件可以进一步包括基本输入输出系统(BIOS)(为简单起见而被省略)。BIOS是一组必需软件例程,可在启动时初始化和测试硬件,启动O/S51,并且支持在硬件设备之间传输数据。BIOS被存储在某种类型的只读存储器(例如ROM、PROM、EPROM、EEPROM等)中,以便可以在激活服务器11时执行BIOS。
    当服务器11操作时,处理器41被配置为执行存储在存储器42中的软件,以便将数据传送到存储器42并从存储器42传送数据,并且总体上根据软件控制服务器11的操作。系统100和O/S51由处理器41全部或部分读取,可能在处理器41中被缓冲,然后被执行。
    在本文档的上下文中,“计算机可读介质”可以是任何能够存储、传送、传播或传输由指令执行系统、装置或器件使用或者与其结合使用的程序的装置。计算机可读介质例如可以是但不限于电、磁、光、电磁、红外线或半导体系统、装置、器件、传播介质,或者其它能够包含或存储由计算机相关系统或方法使用或者与其结合使用的计算机程序的物理设备或装置。
    当系统100以软件实现时(如图8中所示),应该注意,系统100可 以包含在任何计算机可读介质中,以便由指令执行系统、装置或器件(例如基于计算机的系统、包含处理器的系统,或者其它能够从指令执行系统、装置或器件中取回指令并执行指令的系统)使用或者与其结合使用。
    所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“??椤被颉跋低场?。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
    在本文档的上下文中,“计算机可读介质”可以是任何能够存储、传送、传播或传输由指令执行系统、装置或器件使用或者与其结合使用的程序的装置。计算机可读介质例如可以是但不限于电、磁、光、电磁、红外线或半导体系统、装置、器件、传播介质,或者其它能够包含或存储由计算机相关系统或方法使用或者与其结合使用的计算机程序的物理设备或装置。
    计算机可读介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接(电)、便携式计算机盘(磁或光)、随机存取存储器(RAM)(电)、只读存储器(ROM)(电)、可擦式可编程只读存储器(EPROM、EEPROM或闪存)(电)、光纤(光)以及便携式紧凑盘存储器(CDROM、CD R/W)(光)。应该注意,计算机可读介质甚至可以是程序被打印或穿孔(与在纸带、穿孔卡等中一样)在其上的纸张或其它合适的介质,因为程序可以通过例如光扫描纸张或其它介质被电子地捕获,然后被编译、解释或另外以合适的方式被处理(如果必要),然后被存储在计算机存储器中。
    计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的带有计算机可读程序代码的数据信号。这样一种传播信号可以采取任何适当的形式,包括—但不限于—电磁的、光的或其任何适当的组合。计算 机可读信号介质可以是不同于计算机可读存储介质的、可以传达、传播或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的任何一种计算机可读介质。
    计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
    在备选实施例中,如果系统100以硬件实现,则系统100可以使用以下技术的任何一种或组合实现,每种技术都是所属技术领域公知的:具有用于针对数据信号实现逻辑功能的逻辑门的离散逻辑电路(多个)、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(多个)(PGA)、现场可编程门阵列(FPGA)等。
    远程设备15和17-20使用例如但不限于因特网浏览器,在服务器11和数据库12中访问本发明的系统100。在服务器11和数据库12中访问的信息可以以多种不同的形式提供,这些形式包括但不限于ASCII数据、网页数据(即,HTML)、XML或其它类型的格式化数据。
    如图所示,远程设备15和17-20类似于针对图8描述的服务器11的组件的描述。为简洁起见,远程设备15和17-20可以称为远程设备15。
    在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指?;菇斫?,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
    附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个???、程序段或代码的一部分,所述???、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上 可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
    应强调的是,本发明的上述实施例(具体地说,任何“优选”实施例)只是可能的实现实例,仅为了明确理解本发明的原理而给出。
    可以在基本不偏离本发明的精神和原理的情况下,对本发明的上述实施例(多个)做出许多变型和修改。所有这些修改和变型在此旨在被包括在本公开和本发明的范围内,并由以下权利要求?;?。

    关 键 词:
    存储系统 实现 丢失 ?;?数据 放置 方法 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:在存储系统中实现丢失?;さ氖莘胖玫姆椒ê拖低?pdf
    链接地址://www.4mum.com.cn/p-6156842.html

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03