当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在分布式存储系统中分配索引并重新定位对象片段的方法和装置制造方法及图纸

技术编号:19396925 阅读:47 留言:0更新日期:2018-11-10 05:05
公开了用于在分布式存储系统中动态地分配和重新定位对象片段的方法和装置。在一些示例中,这些方法和装置利用纠错编码对对象进行编码以将该对象分成片段,创建指示对象的片段将被存储在的存储节点的第一索引,将第二索引编码到对象的片段的标识符中,该第二索引基于第一索引,并且基于第一索引将对象的片段以及对应的第二索引编码的标识符存储在存储节点中。

【技术实现步骤摘要】
【国外来华专利技术】用于在分布式存储系统中分配索引并重新定位对象片段的方法和装置
本专利要求2016年3月25日提交的题为"MethodsandApparatustoAssignIndicesandRelocateObjectFragmentsinDistributedStorageSystems(用于在分布式存储系统中分配索引并重新定位对象片段的方法和装置)"的美国专利申请序列号15/080,843的权益和优先权,该申请通过引用被整体结合在此。
本公开总体上涉及数据管理,并且更具体地涉及用于在分布式存储系统中分配索引并重新定位对象片段的方法和装置。
技术介绍
近年来,基于对象的存储或分布式存储系统已经被实现为文件层级结构或数据块存储的替代。此类分布式存储系统通常提供冗余和专用策略。在一些实例中,结合基于对象的存储使用擦除编码或纠错编码以将对象分割成片段并根据其他存储策略分发这些片段。附图说明图1是图示出示例分布式存储系统中的示例对象管理器的框图。图2A-图2B是图示出图1的示例分布式存储系统的示例拓扑改变的框图。图3A是图示出将对象存储在示例分布式存储系统中的示例对象管理器的框图。图3B-图3C是图示出图3A的示例分布式存储系统的示例拓扑改变的框图。图4是图示出图3A-图3C的示例对象管理器的示例实现方式的框图。图5-图7是表示可被执行以实现图4的示例对象管理器的示例机器可读指令的示例流程图。图8图示出被构造成用于执行图5-图7的示例机器可读指令以实现图4的示例对象管理器的示例处理器平台。具体实施方式分布式存储系统被实现成用于跨任何数量的计算设备分发数据(例如,以对象的形式)和/或分发数据的处理,这些计算设备可以或可以不位于同一物理位置中(例如,分散在相连计算机的网络上,诸如例如,互联网)。在一些示例中,分布式存储系统将多个计算设备集群化为存储设备或存储节点。在一些示例中,集群是一起工作以使得它们被视为单个系统的一组相连的计算设备(例如,节点)。在一些此类示例中,每一个计算设备或存储节点被用作服务器。在一些示例中,存储节点是具有本地存储的物理机器(例如,硬盘驱动器、固态驱动器等等)。在一些示例中,存储节点是具有对一个或多个存储驱动器的访问的虚拟机。在一些示例中,将存储节点物理地集群化在单个位置中。在一些示例中,将存储节点跨网络(例如,互联网)分散并数字地集群化(例如,将来自不同位置的不同服务器数字地指定为单个集群)。在一些示例中,存储节点的集群是物联网网络的部分。在一些示例中,组成集群的节点与对象管理器(例如,代理服务器)进行通信。通常,由该对象管理器将对象分发给一个或多个集群中的多个存储节点。分布式存储系统试图基于该分布式存储系统的结构来提供(1)一致性,(2)可用性,以及(3)分区容错性(partitiontolerance)。如本文中所使用,一致性被定义为其中所请求的对象将跨众多的源而相同的属性(例如,存储在第一位置中的对象1应当匹配存储在第二位置中的对象1)。在一些示例中,通过设计,一致性取得高于分区容错性和/或可用性的优先级。这些分布式存储系统通常被称为强一致系统。在强一致系统中,直到对象在所有位置中一致才将该对象确认为完整的(例如,可用的)。在一些示例中,通过设计,分区容错性和/或可用性取得高于一致性的优先级。此类示例分布式存储系统通常被称为“最终一致”系统。在最终一致示例中,位置(例如,节点)通信以确保每一个位置具有一致的信息(例如,在初始存储、升级、降级等等期间)。如本文中所使用,可用性被定义为其中即使不能实现一致性所存储的对象也将是可访问的的属性。如本文中所使用,分区容错性被定义为其中尽管由于网络故障导致任意分区但系统将继续操作(例如,如果节点之间的通信被切断,则系统将工作)的属性。通过耐久性策略、结构设计和执行一个或多个任务的服务的组合来提供可用性和分区容错性,该任务诸如例如,跨集群平衡数据(例如,与集群内的存储设备的容量成比例地重新分配数据)。例如,如果存在跨7个节点存储的8个对象(例如,一个节点具有两个对象)并且向集群添加第8个节点,则可重新分配8个对象以使得在每一个节点中存在单个对象。因此,如果最初存储两个对象(例如,但在重新分配之后仅存储一个对象)的节点出故障,则仅单个对象不可用而不是两个对象不可用。在一些示例中,考虑到一致性、可用性和分区容错性属性,数据的耐久性是重要的。如本文中所使用,耐久性被定义为其中一旦已经将对象提交到分布式存储系统则该对象将继续存在的属性。因此,为了实现、维持和/或检查一致性、可用性和/或分区容错性而执行的任何任务不应当导致对象变成丢失的、损坏的或以其他方式不存在的。在一些示例中,为了避免任何对象变成不可恢复的/不可用的(例如,增加数据耐久性和/或可用性),对象管理器利用纠错编码或擦除编码来对对象进行编码,以将对象分割成对象管理器跨各存储节点存储的一个或多个片段。通过利用纠错编码来对对象进行编码,当对象的一个或多个片段(例如,位、字节等)丢失、损坏或以其他方式不正确时,对象管理器可以在纠错解码期间重新构建对象。例如,纠错编码使用一个或多个纠错方程(例如,里德-所罗门编码)基于具有m个数据片段的对象来确定p个校验片段。在此类示例中,对象管理器创建具有m+p个片段的码字。换言之,示例对象管理器利用纠错编码对对象进行编码以形成码字。如本文中所使用,码字被定义为对象的原始数据片段与基于用于对对象进行编码的纠错代码根据原始数据片段确定的校验片段的组合。在一些示例中,通过根据m个数据片段计算p个校验片段来利用纠错编码对对象进行编码允许对象管理器在解码期间纠正多达p个错误(例如,不正确的数据、数据降级、缺失数据等等)。在一些示例中,只要来自码字的任意m个片段(例如,数据和/或校验)是可用的,就可以重新构建原始码字并且可以恢复利用纠错编码所编码的对象。例如,常用的里德-所罗门编码技术可以为具有10个数据片段和4个校验片段(例如,具有14个片段的长度)的码字纠正多达4个错误。可由纠错编码纠正的错误的数量在各种纠错编码技术之间不同。在一些示例中,可以使用任何数量的具有用于纠正各种数量的错误的不同数量的校验片段的纠错编码技术而不背离本公开的范围。对象可能由于许多原因而具有错误。例如,对象可能受制于噪声、数据损坏、硬件故障、错误指令的执行等。纠错编码提供了通过创建数据片段和校验来恢复对象的能力。然而,由于故障(例如,服务器和/或网络中断)和/或管理重新配置(例如,服务器的添加或移除),分布式存储系统可改变拓扑,潜在地重新定位由纠错编码创建的片段(和校验)。因此,除了易受来自噪声、数据损坏、硬件故障、错误指令的执行等的错误的影响之外,对象片段和校验还由于服务器或网络中断、拓扑改变或重新配置而易于变成丢失的(例如,如未应用纠错编码时的对象本身)。如果多于p个片段出错或丢失,则即使利用纠错编码也无法恢复对象。分布式存储系统的前述结构造成了对对象和/或对象的片段位于分布式存储系统中的何处的跟踪的困难。跟踪在系统故障、存储节点切换和/或拓扑重新配置之后由哪些存储节点来存储哪些片段通常是困难的。图1是图示出示例分布式存储系统100的框图,其包括用于将对象的片段存储在该分布式存储本文档来自技高网...

【技术保护点】
1.一种用于对对象的片段进行索引的装置,包括:分段器,用于利用纠错编码来对对象进行编码,以将所述对象分成片段;节点索引分配器,用于创建指示所述对象的所述片段将被存储在的存储节点的第一索引;以及片段索引分配器,用于将第二索引编码到所述对象的所述片段的标识符中,所述第二索引基于所述第一索引,所述分段器用于基于所述第一索引将所述对象的所述片段以及对应的第二索引编码的标识符存储在所述存储节点中。

【技术特征摘要】
【国外来华专利技术】2016.03.25 US 15/080,8431.一种用于对对象的片段进行索引的装置,包括:分段器,用于利用纠错编码来对对象进行编码,以将所述对象分成片段;节点索引分配器,用于创建指示所述对象的所述片段将被存储在的存储节点的第一索引;以及片段索引分配器,用于将第二索引编码到所述对象的所述片段的标识符中,所述第二索引基于所述第一索引,所述分段器用于基于所述第一索引将所述对象的所述片段以及对应的第二索引编码的标识符存储在所述存储节点中。2.如权利要求1所述的装置,进一步包括片段编译器,所述片段编译器用于:向所述存储节点中的第一存储节点发送请求所述对象的所述片段中的第一片段的消息;以及接收来自所述存储节点中的所述第一存储节点的响应,所述响应指示:所述对象的所述片段中的所述第一片段未被存储在所述存储节点中的所述第一存储节点中,并且所述对象的所述片段中的第二片段被存储在所述存储节点中的所述第一存储节点中。3.如权利要求1或2中的一项所述的装置,进一步包括:片段编译器,所述片段编译器用于基于所述第一索引和所述第二索引从所述存储节点中的对应的存储节点检取所述对象的片段。4.如权利要求3所述的装置,其中,所述片段编译器用于:从所述存储节点中的第一存储节点请求所述对象的所述片段中的第一片段;当对于所述存储节点中的所述第一存储节点所述第一索引匹配所述第二索引时,从所述存储节点中的所述第一存储节点检取所述对象的所述片段中的所述第一片段;以及当对于所述存储节点中的所述第一存储节点所述第一索引不匹配所述第二索引时,从所述存储节点中的所述第一存储节点检取所述对象的所述片段中与所述第二索引相关联的第二片段。5.如权利要求3所述的装置,其中,所述片段编译器用于基于所述第一索引从所述片段重新构建所述对象。6.如权利要求3所述的装置,其中,所述片段编译器用于基于所述第二索引从所述片段重新构建所述对象。7.如权利要求1或2中的一项所述的装置,其中,所述存储节点是第一多个存储节点,并且所述装置进一步包括节点管理器,所述节点管理器用于在所述对象的所述片段被重新分配到第二多个存储节点中时:标识所述第二多个存储节点中存储所述对象的所述片段中的第一片段的第一存储节点;标识所述第一多个存储节点中对应于所述第二索引的第二存储节点,所述第二索引被编码在存储在所述第二多个存储节点中的第一存储节点中的所述对象的所述片段中的所述第一片段的标识符中;以及将所述对象的所述片段中的所述第一片段从所述第二多个存储节点中的第一存储节点移动到所述第一多个存储节点中的第二存储节点。8.如权利要求7所述的装置,其中,所述对象的所述片段用于由于网络中断或数据损坏中的至少一者而被重新分配到所述第二多个存储节点中。9.一种用于对对象的片段进行索引的方法,包括:利用处理器用纠错编码来对对象进行编码,以将所述对象分成片段;利用所述处理器创建指示所述对象的所述片段将被存储在的存储节点的第一索引;利用所述处理器将第二索引编码到所述对象的所述片段的标识符中,所述第二索引基于所述第一索引;以及利用所述处理器基于所述第一索引将所述对象的所述片段和对应的第二索引编码的标识符存储在所述存储节点中。10.如权利要求9所述的方法,进一步包括:利用处理器向所述存储节点中的第一存储节点发送请求所述对象的所述片段中的第一片段的消息;以及利用所述处理器接收来自所述存储节点中的所述第一存储节点的响应,所述响应指示:所述对象的所述片段中的所述第一片段未被存储在所述存储节点中的所述第一存储节点中,并且所述对象的所述片段中的第二片段被存储在所述存储节点中的所述第一存储节点中。11.如权利要求9或10中的一项所述的方法,进一步包括:基于所述第一索引和所述第二索引从第一多个节点中对应的节点检取所述对象的片段。12.如权利要求11所述的方法,其中,基于所述第一索引和所述第二索引从所述存储节点检取所述对象的片段的步骤包括:从所述存储节点中的第一存储节点请求所述对象的所述片段中的第一片段;当对于所述存储节点中的所述第一存储节点所述第一索引匹配所述第二索引时,从所述存储节点中的所述第一存储节点检取所述对象的所述片段中的所述第一片段;以及当对于所述存储节点中的所述第一存储节点所述...

【专利技术属性】
技术研发人员:P·E·卢斯J·迪金森S·梅瑞特C·吉拉德
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1