跨多个区的纠删编码的制作方法

文档序号:9635152阅读:379来源:国知局
跨多个区的纠删编码的制作方法
【专利说明】跨多个区的纠删编码
[0001]背景
[0002]数据中心可以使用容错存储技术来实现专业且可靠的数据存储。具体地,纠删编码技术可被用于提供降低的存储开销。纠删编码可以跨存储节点(例如盘、服务器和机架)来实现。然而,常规的纠删编码技术无法容适由于大规模中断(例如,建筑物崩塌、数据中心烧毁、或对整个区域的天气相关的破坏)而导致的故障。
[0003]概述
[0004]提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。该
【发明内容】
不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。
[0005]本发明的各实施例提供了一种用于跨多个存储区对数据进行纠删编码的方法和系统。这可以通过将数据块划分成多个子片段来实现。多个子片段中的每一者与一个区相关联。区包括提供存储服务的建筑、数据中心和地理区域。多个重构奇偶校验被计算。多个重构奇偶校验中的每一者使用来自多个子片段中的至少一个子片段来计算。多个重构奇偶校验包括至少一个跨区奇偶校验。跨区奇偶校验提供对数据块的一部分的跨区重构。另夕卜,本发明的各实施例提供了一种用于至少部分地基于每一纠删编码方案的折衷或各维度(dimens1n)来跨多个区进行纠删编码的方法和系统。具体地,维度(诸如成本、性能和可靠性)定义与跨区的不同纠删编码方案相关联的实现约束。每一纠删编码方案指定经纠删编码数据的放置以达成容错的特定目标。
[0006]附图简述
[0007]下面参考附图详细描述本发明,其中:
[0008]图1是适用于在实现本发明的各实施例中使用的示例性计算环境的框图;
[0009]图2是其中可以使用本发明各实施例的示例性分布存储系统的框图;
[0010]图3是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
[0011]图4是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
[0012]图5是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
[0013]图6是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
[0014]图7是示出根据本发明的各实施例的比较纠删编码方案的各实现约束的图表;
[0015]图8是根据本发明的各实施例的示出用于跨多个区对数据进行纠删编码的方法的流程图;以及
[0016]图9是根据本发明的各实施例的示出用于跨多个区对数据进行纠删编码的方法的流程图。
[0017]详细描述
[0018]本文中用细节来描述本发明各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人已设想所要求保护的主题还可结合其它当前或未来技术以其它方式来实施,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。
[0019]出于本公开的目的,单词“包括”(including)具有与单词“包含” (comprising) —样广义的含义。另外,诸如“一(a)”和“一(an)”包括复数以及单数,除非另外相反地指明。这样,例如,“一个特征”的要求在存在一个或多个特征的情况下被满足。同样,术语“或”包括合取、析取及这两者(a或b由此包括a或b任一,以及a和b)。
[0020]出于下文详细讨论的目的,参考基于被示意性地描绘为用于三个区的纠删编码方案来跨多个区对数据进行纠删编码来描述本发明的各实施例;然而,本文描绘的三个区仅仅是示例性的且设想了多个区可以与本文描述的纠删编码方案一起使用。此外,尽管本发明的各实施例可一般引用在本文描述的分布式存储系统和图表,但设想了所描述的技术可被扩展到其他实现上下文。
[0021]—般而言,容错指的是系统在其组件中的一些出现故障(或一个或多个故障)的情况下继续工作的能力。例如,容错技术包括复制和纠删编码。纠删编码指的是用来从所存储的数据的故障中恢复的纠错算法。数据可以用不同类型的存储服务存储在不同类型的存储硬件中。纠删编码可被实现以向所存储的数据提供容错。另外,纠删编码还可提供降低的存储开销。例如,代替复制数据流,数据可被分成各片段并与一个或多个奇偶校验相关联,且随后各片段以从剩余片段中重构丢失片段的能力来被存储。如此,纠删编码提供硬件、数据中心占用的成本节省以及因不必运行附加硬件的功率节省。
[0022]然而,伴随跨各区(例如,数据中心、建筑、或地区)对数据进行纠删编码而来的是折衷或维度,如下文更详细地讨论的。例如,在对数据进行编码以及从跨多个存储区进行纠删编码的数据的失败中恢复数据时,成本、性能、以及可靠性具有特定实现约束。这些折衷可以与不同的纠删编码方案相关联,尤其是在纠删编码针对存储在不同区的数据执行时。
[0023]—般而言,纠删码使用特定类型的代码来对数据进行编码。例如,Reed-Solomon是用于对数据进行纠删编码的常规办法。Reed-Solomon实现可包括6个数据片段和用于恢复6个数据片段的3个代码(奇偶校验)段。另一类型的纠删编码是局部重构代码(LRC)。与Reed-Solomon相比,LRC降低了在重构离线的数据片段时需要读取的纠删编码片段的数量,同时将存储开销保持得很低。例如,对于6个数据片段,LRC生成4个奇偶校验片段,而非3个。两个局部奇偶校验片段(每一个与6个片段中的3个数据片段的不同集合相关联)以及针对6个数据片段的两个全局奇偶校验片段。所以,与使用奇偶校验和5个数据片段来重构失败的数据片段的Reed-Solomon形成对比,LRC使用局部奇偶校验和同一集合中的2个数据片段来重构失败的数据片段。在平衡存储开销对重构成本时,LRC相比Reed-Solomon提供了更多的灵活性。对于以上示例,LRC比Reed-Solomon增加了一个奇偶校验,同时将重构成本减半。或者,LRC可保持与Reed-Solomon相同的重构成本,同时显著地降低了存储开销。
[0024]局部重构代码可在形式上定义。(k,l,r)LRC将k个数据片段分成1组,其中每一组有k/Ι个数据片段。纠删编码方案计算每一组内的一个局部奇偶校验。另外,它根据所有数据片段来计算r个全局奇偶校验。令η是片段总数(数据+奇偶校验)。则η = k+1+r。因而,归一化的存储开销是n/k = l+(l+r)/k0在该示例中,LRC是(6,2,2)LRC,具有存储成本 1+4/6 = 1.67 倍。
[0025]此外,LRC代码可以基于所选择的编码方程来确定,使得LRC达到最大可恢复(MR)属性,这意味着它可解码信息理论上可解码的任何故障模式。例如,参考以上示例,如果3个数据片段和与数据片段相关联的奇偶校验的集合发生故障,则该模式是不可解码的,因为其余两个奇偶校验不能解码3个数据片段,因而它在信息理论上是不可解码的。否则,可能重构的故障模式被称为在信息理论上是可解码的。LRC可与达到最大可恢复属性的单个编码方程组相关联。
[0026]本发明的各实施例基于跨多个存储区对数据进行纠删编码来提供针对大规模中断的容错,同时确保可靠性和可用性。区指的是提供存储服务的特定的建筑、数据中心和地理区域。跨多个区的纠删编码涵盖在该区中存储服务所定义的任何容错水平处提供纠删编码。如此,跨各区实现纠删编码创建实现考虑和机会的不同集合。具体而言,跨各区的纠删编码可基于唯一性跨区特性来被优化,如各区之间的带宽,因为各区之间的带宽比区内的带宽稀缺和昂贵得多。同样,区故障的概率是相关因子。基本上,与存储节点相比,整个区发生故障的可能性低得多。预期一区将发生故障,或各区可能离线以便于维护。这允许各区被构建得比传统数据中心更便宜,从而向存储服务提供显著成本节省。
[0027]由于涉及跨区特性,取决于各区的目标,各区在实现跨区的数据纠删编码时引入各种折衷。折衷是指纠删编码方案维度,如定义与不同纠删编码方案相关联的实现约束的成本、性能以及可靠性。每一纠删编码方案指定经纠删编码数据的放置以达成容错的特定目标。如此,纠删编码可以用包括以下各项的目标的组合来实现:开销/跨区带宽消耗的最小化、性能的最大化、同时维持所需耐久性。
[0028]示例性纠删编码方案包括可使用LRC以及常规纠删编码方案来提供区内的局部重构以及跨区容错的第一纠删编码方案(例如,XLRC)。可通过联合选择区内和跨区的编码系数来提供区内的局部重构以及跨区容错两者的第二纠删编码方案(例如,BLRC)以及可通过以跨区网络带宽换取存储效率来达到高存储效率同时提供跨区容错的第三纠删编码方案。
[0029]三个维度可以与跨区容错数据存储相关联。它们包括:成本(例如,开销/跨区带宽消耗的最小化)、性能(例如,性能最大化)、以及可靠性(例如,离线耐久性)。成本是与跨多个区的分布式存储系统相关联的度量。分布式存储系统可包括若干子存储系统,每一个在单个区内。子系统中的每一者可以由跨各区的网络中枢链接在一起。就此,总成本可以基于单区子存储系统和跨区网络中枢来被确定。单区子存储系统可以是存储开销的函数一一存储指定量的用户数据所需的物理存储空间的总量。跨区网络中枢可以是要被供应以支持存储系统的网络带宽量的函数。
[0030]性能度量可以指从不同类型的故障场景恢复的能力。不同类型的故障对系统性能具有不同影响。每一类型的故障可被不同地处理。例如,在区内的存储节点或错误域发生故障时,该系统以降级模式来运行。然而,在整个区发生故障时,该系统以灾难模式运行。为了表征性能,例如,在降级模式中,降级的读取成本(即,从发生故障的存储节点读出一个单位的用户数据所需的盘I/O的数量)可被定义。类似地,灾难读取成本可被定义为读取处于故障区中的一个单位的用户数据所需的盘I/O的数量。盘I/O被设想为包括用于传达数据的网络传输成本。此外,可靠性与数据存储系统可容忍的故障类型和故障量相关联。因而,可靠性基于在一个或多个机器发生故障或变得不可用之后重构数据的能力。例如,可靠性可基于平均数据丢失时间(MTTDL)来评估。
[0031]特定编码方案可包括异或-LRC或XLRC方案,采用两种类型的纠删码。每一区内的LRC以及跨所有区的异或(XOR)。LRC向单个区内的任意(r+Ι)且上至(r+Ι)个故障提供数据片段的恢复,而无需跨区恢复。使用三区部署作为示例,对于XLRC,数据块在两个区之间被均匀地分成子片段。在每一区内,子片段由多个局部奇偶校验和区奇偶校验来保护。局部奇偶校验是从每一区中的子片段生成的且允许该区内的高效故障重构。区奇偶校验是从每一区中的所有子片段生成的且提供最大容错。如所讨论的,最大容错包括使用特别确定的编码方程达到最大可恢复属
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1