一种分布式存储系统的数据布局方法

文档序号:9375678阅读:339来源:国知局
一种分布式存储系统的数据布局方法
【技术领域】
[0001]本发明涉及数据存储技术,并且尤其涉及分布式存储系统的数据布局方法。
【背景技术】
[0002]现有技术中存在多种数据布局(即实现数据从逻辑空间到物理存储空间的映射)方案。其中一种方案(例如,HDFS分布式文件系统)采用随机分布的方法实现数据布局。该方法根据每个存储节点的存储空间利用情况,随机选择空闲空间较多的存储节点,然后将文件写入该节点,并在控制节点的内存的映射表中记录该文件的存储节点地址,在读取文件时,根据文件名或ID号查找映射表,得到存储节点的地址,然后从该存储节点读取文件。然而该方法存在可扩展性问题,能够管理的最大文件数量将受内存容量限制,而且当文件数量达到上千万或亿级时,其文件查找操作也会成为性能瓶颈。

【发明内容】

[0003]本发明公开一种分布式存储系统的数据布局方法,包括:
创建逻辑存储空间,
创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点,
创建多个物理存储节点,
对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。
[0004]优选地,每一个虚拟域具有相同数量的虚拟节点,
每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点,
所述映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。
[0005]优选地,每一个虚拟域的所有虚拟节点根据虚拟节点的数量按序被标记。
[0006]优选地,向所述逻辑存储空间写入文件包括:
根据所述文件产生哈希值,
将该哈希值映射到第一虚拟域的第一虚拟节点,
根据设置的文件副本数量,将该文件分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
[0007]本发明的方法具有良好的可扩展性,可适用于EB级存储系统。本发明能够根据数据的可靠性要求设置不同的复制策略,并可动态修改复制策略,当调整复制策略时,不会产生额外的数据迁移。
【附图说明】
[0008]在参照附图阅读了本发明的【具体实施方式】以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合【具体实施方式】说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。
[0009]图1是根据本发明实施例的分布式存储系统的数据布局方法的示意图。
[0010]图2是根据本发明实施例的分布式存储系统的数据布局方法的一个实例。
【具体实施方式】
[0011]图1是根据本发明实施例的分布式存储系统的数据布局方法的示意图。
[0012]如图1所示,在101中,创建逻辑存储空间,用户通过逻辑存储空间写入和读取数据。在一个示例中,可以为创建的一个或多个逻辑存储空间根据数据的可靠性要求设置相应的数据副本数量,使得当在该逻辑存储空间写入数据时,在该数量的物理存储节点上分别写入数据副本。
[0013]在102中,创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点。虚拟域的数量可以和最大副本数量相同。每一个虚拟域可以具有相同数量的虚拟节点。在一个示例中,每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点。在一个示例中,可以根据虚拟节点的数量按序标记每一个虚拟域的所有虚拟节点。例如,将虚拟域A中的各个虚拟节点标记为1、2…M,将虚拟域B中的各个虚拟节点标记为
1、2…M。
[0014]在103中,创建多个物理存储节点。
[0015]在104中,对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。在一个示例中,映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。
[0016]根据本发明的一个实施例,向所述逻辑存储空间写入文件包括:
根据所述文件产生哈希值,例如可以根据文件名产生哈希值,
将该哈希值映射到第一虚拟域的第一虚拟节点,
根据期望的文件副本数量,将该文件的多个副本分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
[0017]图2是根据本发明实施例的分布式存储系统的数据布局方法的一个实例。如图所示,数据布局的实现包括3个层次:逻辑存储空间、虚拟域、物理存储节点。在该实例中,创建了 4个逻辑存储空间,分别为Volumel、Volume2> Volume4> Volume 4,并将其副本数分别设置为1,2,3,1。设置的存储系统的数据副本数最大为3,则可以据此创建3个虚拟域,分别为虚拟域1、虚拟域2、虚拟域3。每个虚拟域中的虚拟节点数为M。虚拟节点的数量可以根据存储系统的物理存储节点数量来设置,例如可以为物理存储节点的数量的几十倍。每个虚拟域中的虚拟节点的编号从1开始,依次递增。物理存储节点为实际存储数据的物理存储设备。存储系统中的物理存储节点可以在线、渐进扩展,并且不同物理存储设备的容量可以不同。在该实施例中,物理存储节点数量为N。
[0018]然后,可以分别针对每个虚拟域,将其中的虚拟节点映射到物理存储节点,即依次针对虚拟域1、虚拟域2、虚拟域3,分别执行将虚拟节点映射到物理存储节点的过程。在映射过程中,判断要被分配虚拟节点的物理存储节点的存储空间是否足够,如果存储空间不足则尝试将待分配虚拟节点映射至另一物理存储节点,以及判断要被分配虚拟节点的物理存储节点上的虚拟节点的标记是否与待分配的讯节点相同,若相同则尝试将待分配虚拟节点映射至另一物理存储节点,如此使得不同虚拟域的同一标记的虚拟节点不会被分配到同一个物理存储节点。
[0019]以下示例性地描述依次针对虚拟域1、虚拟域2、虚拟域3,分别执行将虚拟节点映射到物理存储节点的过程。
[0020]对于虚拟域I,对于虚拟域I的虚拟节点VN i,判断是否将其映射到存储节点SN j。如果SN j已经分配的虚拟节点的数量小于阈值,则将虚拟节点VN i分配到SN j并且开始分配下一个虚拟节点VN i+Ι,否则尝试下一个存储节点SN j+Ι,如此直至虚拟域I的所有虚拟节点已分配完成。
[0021 ] 然后,执行将虚拟域2的虚拟节点映射到物理存储节点的过程,对于虚拟域2的虚拟节点VN i,判断是否将其映射到存储节点SN j。如果SN j已经分配的虚拟节点的数量小于阈值,并且虚拟域I的虚拟节点VN i未被分配到该节点则将虚拟节点VN i分配到SN j并且开始分配下一个虚拟节点VN i+Ι,否则尝试下一个存储节点SN j+Ι,如此直至虚拟域2的所有虚拟节点已分配完成。
[0022]然后,执行将虚拟域3的虚拟节点映射到物理存储节点的过程,对于虚拟域3的虚拟节点VN i,判断是否将其映射到存储节点SN j。如果SN j已经分配的虚拟节点的数量小于阈值,并且虚拟域1、虚拟域2的虚拟节点VN i未被分配到该节点则将虚拟节点VN i分配到SN j并且开始分配下一个虚拟节点VN i+Ι,否则尝试下一个存储节点SN j+Ι,如此直至虚拟域3的所有虚拟节点已分配完成。
[0023]在完成上述将每个虚拟域的虚拟节点映射到物理节点的过程后,就可以向逻辑存储空间写入文件或数据。
[0024]在该实例中,向Volume I写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H ;
第二步:根据H将其映射到虚拟域I的虚拟节点,VN i ;
第三步:将数据写入虚拟域I的虚拟节点VN i所对应的存储节点。
[0025]在该实例中,向Volume 2写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H ;
第二步:根据H将其映射到虚拟域I的虚拟节点,为VN i ;
第三步:将数据写入虚拟域I的虚拟节点VN i所对应的存储节点。
[0026]第四步:将数据写入虚拟域2的虚拟节点VN i所对应的存储节点。
[0027]在该实例中,向Volume 3写入文件的过程如下:
第一步:根据文件名或文件号计算哈希值H ;
第二步:根据H将其映射到虚拟域I的虚拟节点,为VN i ;
第三步:将数据写入虚拟域I的虚拟节点VN i所对应的存储节点。
[0028]第四步:将数据写入虚拟域2的虚拟节点VN i所对应的存储节点。
[0029]第五步:将数据写入虚拟域3的虚拟节点VN i所对应的存储节点。
[0030]通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的【具体实施方式】作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
【主权项】
1.一种分布式存储系统的数据布局方法,其特征在于,包括: 创建逻辑存储空间, 创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点, 创建多个物理存储节点, 对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。2.如权利要求1所述的方法,其特征在于, 每一个虚拟域具有相同数量的虚拟节点, 每一个虚拟域的所有虚拟节点被标记,使得不同虚拟域之间具有相同标记的虚拟节点, 所述映射使得所述多个虚拟域的具有相同标记虚拟节点被映射到不同的物理存储节点。3.如权利要求2所述的方法,其特征在于, 每一个虚拟域的所有虚拟节点根据虚拟节点的数量按序被标记。4.如权利要求2或3所述的方法,其特征在于, 向所述逻辑存储空间写入文件包括: 根据所述文件产生哈希值, 将该哈希值映射到第一虚拟域的第一虚拟节点, 根据设置的文件副本数量,将该文件分别写入多个物理存储节点,所述多个物理存储节点分别对应于包括所述第一虚拟节点的多个虚拟节点,所述多个虚拟节点具有相同的标记。
【专利摘要】本发明公开一种分布式存储系统的数据布局方法,包括:创建逻辑存储空间,创建多个虚拟域,在所述多个虚拟域的每一个中设置多个虚拟节点,创建多个物理存储节点,对于所述多个虚拟域的每一个,将其中的多个虚拟节点的每一个映射到相应的物理存储节点。
【IPC分类】G06F17/30
【公开号】CN105095290
【申请号】CN201410204711
【发明人】刘磊, 何朔, 李晓勇
【申请人】中国银联股份有限公司
【公开日】2015年11月25日
【申请日】2014年5月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1