本地生成的简单纠删码的制作方法

文档序号:9620862阅读:348来源:国知局
本地生成的简单纠删码的制作方法
【专利说明】本地生成的简单纠删码
[0001]背景
[0002]现代服务器计算设备经常被以一种方式物理配置以提升有限空间(诸如机架)内的多个此类服务器计算设备的安装和维护。服务器计算设备的多个机架随后可被容纳在专用设施(常被称为“数据中心”)中。通过将计算资源聚集在一起,数据中心可提供规模效率,同时提供提高的计算能力和可用性。例如,数据中心可包括数以千计的计算设备,其组合的处理能力可以无数种方式来分割和共享,由此使得实体能够以与这些实体如果自己购买计算设备相比更低的成本访问远远大得多的处理能力。作为另一示例,数据中心可实施对于个人而言贵的离谱的冗余机制,但是在冗余机制的成本被分摊到数据中心的所有用户上时,可提供并不昂贵的风险降低。这样的冗余机制可包括将数据中心内的计算设备划分成各个故障域,故障域可包括物理上不同的位置、独立的网络连接和功率源、以及其它类似的属性,使得大部分潜在地故障应当仅影响单个故障域。
[0003]经常,为了维持可靠性,数据的冗余副本被维持在一个数据中心内、或跨多个物理上不同的数据中心的多个这样的故障域。然而,这样的数据集可能足够大,导致对于这样的数据集的跨网络的数据通信可能是耗时和高成本的。结果,冗余常常以网络资源消耗以及因此的性能降级为代价来实现。另外,冗余机制常常需要对数据执行计算上昂贵的数学运算。因此,除了增加网络资源消耗,冗余还可能增加处理能力的使用。由于网络资源和处理能力两者都可能由昂贵的计算硬件以及其它类似的资本投资来支持,因此网络资源和处理能力两者的高效利用同时维持冗余性可以是合乎需要的。
[0004]概述
[0005]在一个实施例中,数据的冗余副本可以编码状态来维护,该编码状态仅使用了存储该数据的不经编码的副本所需的存储容量的一小部分。为了减少处理资源的消耗,数据可使用X0R函数来编码,X0R函数可由现代处理硬件高效地执行。
[0006]在另一实施例中,冗余可通过由以编码状态维护的数据冗余副本来提供,数据冗余副本可仅从本地数据副本中生成,由此避免了对于网络资源的消耗。
[0007]在进一步实施例中,可维护至少一个未经编码的数据副本,并且对于该数据的请求可从该未经编码的数据副本中提供。假如这一未经编码的副本遭受故障(包括毁坏性故障以及不可用性故障),可由另选的计算设备生成新的未经编码的副本,该另选的计算设备能够访问与所请求的数据一起被编码的其它数据的经编码的副本以及未经编码的副本两者。
[0008]在又一实施例中,通过递归地应用对编码数据的解码,可从多个故障中幸存。
[0009]提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本
【发明内容】
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0010]当参考附图阅读以下详细描述时,将使得其它特征和优点是显而易见的。
[0011]附图简述
[0012]以下详细描述在结合附图参考时可得到最佳的理解,附图中:
[0013]图1是示出其中可实现本地生成的简单纠删码机制的示例性环境的框图;
[0014]图2是示出简单纠删码机制的示例性本地生成的框图;
[0015]图3是示出实现本地生成的简单纠删码机制的示例性系统的操作方面的框图;
[0016]图4是示出实现本地生成的简单纠删码机制的系统中的示例性错误恢复的框图;
[0017]图5是示出实现本地生成的简单纠删码机制的系统中的另一示例性错误恢复的框图;
[0018]图6是示出简单纠删码机制的示例性本地生成的流程图;
[0019]图7是示出示例性的利用简单纠删码来提供冗余数据的流程图;以及
[0020]图8是示例性计算设备的框图。
[0021]详细描述
[0022]以下的描述涉及用于实现本地生成的简单纠删码的机制。纠删码可以是对多个不同数据集的编码。数据的冗余副本可以这样的纠删码以编码状态来维护,该编码状态仅使用了存储该数据的不经编码的副本所需的存储容量的一小部分。为了减少处理资源的消耗,并且实现更高效且更快速的纠删码生成,就如“异或”或X0R —样简单的纠删码可被用于所描述的机制。另外,纠删码可从本地地存储在生成这一纠删码的计算设备上的数据中生成,由此避免网络资源的消耗。数据集的至少一个不经编码的副本应当被维护,而该数据的其余冗余副本可与其它的正交数据编码成一个或多个纠删码。对数据的请求可从这一未经编码的副本来提供。假如未经编码的副本遭受故障(包括毁坏性故障以及不可用性故障),可由另一个运作的并且可用的计算设备生成新的未经编码的副本,该计算设备能够访问纠删码以及也被压入该纠删码的其它数据的未经编码的副本两者。通过递归地应用对编码数据的这一解码,可从多个故障中幸存。
[0023]处于解说的目的,此处所描述的技术在对于数据中心而言典型的基础结构的上下文内来提出。具体来说,此处所描述的技术提及多个计算设备、多个故障域、以及它们之间的网络通信。然而,对这类环境和实施例的提及和说明是严格地示例性的,且不旨在将所描述的机制限于所提供的特定示例。事实上,此处所描述的技术同样可适用于其中数据的冗余副本被存储在诸如多个独立的存储介质上、或多个独立计算设备上的任何计算环境,无论这一存储介质或计算设备的物理表现是什么。
[0024]另外,虽然未作要求,但以下描述将处在诸如程序模块等正由一个或多个计算设备执行的计算机可执行指令的一般上下文中。更具体而言,除非另外指明,否则描述将参考一个或多个计算设备或外围设备所执行的动作以及其所执行的操作的符号表示。由此,应当理解,有时被称作计算机可执行的这种动作和操作包括处理单元对以结构化形式表示数据的电信号的操纵。这种操纵转换了数据或将其维持在存储器的位置中,这就以本领域技术人员所熟知的方式来重新配置或更改计算设备或外设的操作。数据被维护在其中的数据结构是具有由数据形式所定义的特定属性的物理位置。
[0025]—般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会认识到这些计算设备不必限于常规个人计算机,并且包括其他计算配置,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机等等。类似地,这些计算设备不必限于独立计算设备,因为各机制也可以在通过通信网络链接的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备中。
[0026]参考图1,示出了示例性系统100,为以下的描述提供上下文。示例性系统100可以位于数据中心(诸如示例性的数据中心120)的上下文中,该数据中心通过网络(诸如网络101)提供数据中心能力和功能。客户端计算设备(诸如客户端计算设备110)可由数据中心120的客户使用来利用通过网络101提供的数据中心能力和功能。例如,为了说明此处所描述的冗余机制的操作,示例性客户端计算设备110可通过网络101向数据中心120传送客户端计算设备110请求由数据中心120存储和保持的数据180。这一数据提供由图1中示出的通信181来解说。
[0027]在一个实施例中,当经由通信181接收到数据180之际,数据中心120可标识要在其上存储该数据180的一个或多个计算设备。更具体地,名称服务器计算设备(诸如示例性名称服务器计算设备130)可维护与存储在数据中心120的计算设备(诸如示例性计算设备 141、142、143、151、152、153、161、162、163、171、172 和 173)上的数据有关的元数据。因此,在这一实施例中,名称服务器计算设备(诸如示例性名称服务器计算设备130)可知晓数据中心120的计算设备中的哪个计算设备已在其本地存储介质上存储了任何给定的数据集合。名称服务器计算设备还可维护其它元数据,诸如与数据中心120的服务器计算设备存储附加数据的可用性有关的信息。元数据(诸如什么数据被存储在哪个设备上的位置图)的维护可由名称服务器计算设备使用事务和冗余技术来可靠地维护,事务和冗余技术可使得该名称服务器计算设备在被需要时可靠地可用,在考虑了在此处所描述的各机制的程度上。
[0028]在图1中示出的示例中,名称服务器计算设备130可已将计算设备143、162和171标识为数据中心120中要在它们之间维护通过通信181接收的数据180的三个冗余副本的计算设备。名称服务器计算设备130可恰当地指令计算设备143、162以及171,并且这些计算设备中的至少一个可接受正由客户端计算设备110所发送的数据180。例如,如图1中所解说的,通过通信181和191,数据180可被最初定向到服务器计算设备162,在此数据180可被存储为数据196。虽然数据180可与数据196是相同的,但是图1中使用的不同的附图标记表示数据196是数据180的分开且独立的副本。类似的,在本发明及相关联的附图的全文中,不同的副本标记将被用来指相同数据的不同副本。
[0029]在接收到数据180并将其本地地存储为数据196之际,在一个实施例中,服务器计算设备162可将数据196重传给其它计算设备(在本示例中,即服务器计算设备143和171)。图1的系统100中所示的通信192和193解说了数据196从服务器计算设备162被分别重传到服务器计算设备143和171,其中该数据可分别被存储为数据198和197。在其它实施例中,数据196、197和198的副本可通过数据中心120的计算设备间的另选通信来生成。在考虑此处所描述的机
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1