CN111124309A - 一种分片映射关系确定方法、装置、设备及存储介质 - Google Patents
一种分片映射关系确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111124309A CN111124309A CN201911332545.1A CN201911332545A CN111124309A CN 111124309 A CN111124309 A CN 111124309A CN 201911332545 A CN201911332545 A CN 201911332545A CN 111124309 A CN111124309 A CN 111124309A
- Authority
- CN
- China
- Prior art keywords
- storage unit
- fragmentation
- coefficient
- determining
- weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013467 fragmentation Methods 0.000 title claims description 78
- 238000006062 fragmentation reaction Methods 0.000 title claims description 78
- 239000012634 fragment Substances 0.000 claims abstract description 188
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 abstract description 13
- 238000009827 uniform distribution Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分布式存储系统的分片映射关系确定方法、装置、设备及计算机可读存储介质;本方案利用CRUSH算法确定每个分片与存储单元的分片对应关系之后,还需要计算每个存储单元中的均衡系数,如果某一存储单元的均衡系数未在预先设定的均衡范围内,则说明存储单元中的分片分布不均匀,这时便需要通过设置例外映射表的方式来强行改变分片与存储单元的对应关系,以保证分片的均匀分布,从而提高数据分布的均匀性。
Description
技术领域
本发明涉及数据访问技术领域,更具体地说,涉及一种基于分布式存储系统的分片映射关系确定方法、装置、设备及计算机可读存储介质。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。目前,分布式存储系统面临着的首要问题,就是如何将大量的数据分布在不同的存储节点上,一个数据分布算法需要考虑两个基本的目标:其中一个为均匀性,即:数据需要分布的尽量均匀,使不同存储节点的负载均衡;另一个为稳定性,即:在集群节点拓扑发生改变时,重新分布的数据量尽可能小。
为了实现稳定性的目标,并且兼顾扩展性,实践中一般使用分片的方式组织数据,集群一般保持分片的数量不变,分片是一组数据对象的集合,作为最小的数据迁移和备份单位。计算数据分布位置时,需要进行两次映射:第一次映射是数据对象到分片的映射,第二次映射是分片到节点磁盘的映射。这样分片的划分和分片的分片被解耦。只要集群的分片数量保持不变,第一次映射的结果就是绝对稳定的,可以保证数据不会在分片中迁移,因此研究对象从计算数据的位置简化为计算分片的位置。
现有的分布式存储系统一般使用一致性Hash和CRUSH算法来实现计算分片的位置(即第二次映射),因为两种算法的结果都有随机性,可以保证数据在一定程度上的均匀性。具体来说,如果使用一致性Hash算法,则需要服务器维护分片到节点磁盘的映射表,客户端对数据进行访问前,需要先给服务器发送请求查询数据的位置,然后再向对应的数据节点发送访问请求,即每次访问数据需要两次请求,效率低。如果使用CRUSH算法,服务器只需维护拓扑和映射规则,客户端对数据进行访问前先获取物理拓扑和映射规则,通过CRUSH算法自行计算出数据位置然后向对应的数据节点发送访问请求,即:每次访问数据只需向数据节点请求一次即可,效率高。但是因为CRUSH随机算法,会出现数据分布不均匀的问题。
发明内容
本发明的目的在于提供一种基于分布式存储系统的分片映射关系确定方法、装置、设备及计算机可读存储介质,以确定分片与存储单元的映射关系,使分片在存储单元中均匀分布,提高数据分布的均匀性。
为实现上述目的,本发明提供的一种基于分布式存储系统的分片映射关系确定方法,所述分片映射关系确定方法包括:
利用CRUSH算法确定每个分片与存储单元的分片对应关系;
根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,所述分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
其中,所述根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,包括:
计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
其中,若所述分片总指标为分片总数,则所述根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标,包括:
根据每个存储单元的分片对应关系确定每个存储单元的分片数量;
计算每个存储单元的分片数量与每个存储单元的权重系数的商值,得到每个存储单元的单位权重分片数量。
其中,若所述单位权重分片指标为单位权重分片数量,则所述利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数,包括:
计算每个存储单元的单位权重分片数量与所述分片平均值的商值,得到每个存储单元的均衡系数。
其中,客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系,包括:
客户端在查找与目标分片对应的存储单元时,判断所述例外映射关系中是否存在与所述目标分片对应的存储单元;
若是,则通过所述例外映射关系确定与所述目标分片对应的存储单元;若否,则通过所述CRUSH算法确定与所述目标分片对应的存储单元。
其中,所述若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,包括:
判断所有存储单元的均衡系数是否均在预定均衡范围内;
若否,则从均衡系数最大的存储单元内分配预定数量个分片至均衡系数最小的存储单元,生成例外映射表;
通过所述例外映射表及所述CRUSH算法确定每个分片与存储单元的分片对应关系,并根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,并继续执行所述判断所有存储单元的均衡系数是否均在预定均衡范围内的步骤,直至所有存储单元的均衡系数均在预定均衡范围内为止。
为实现上述目的,本发明进一步提供一种基于分布式存储系统的分片映射关系确定装置,所述分片映射关系确定装置包括:
对应关系确定模块,用于利用CRUSH算法确定每个分片与存储单元的分片对应关系;
均衡系数确定模块,用于根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,所述分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
对应关系调整模块,用于存在存储单元的均衡系数不在预定均衡范围内时,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
其中,所述均衡系数确定模块包括:
第一计算单元,用于计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
指标确定单元,用于根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
第二计算单元,用于利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
为实现上述目的,本发明进一步提供一种基于分布式存储系统的分片映射关系确定设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的分片映射关系确定方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分片映射关系确定方法的步骤。
通过以上方案可知,本发明实施例提供的一种基于分布式存储系统的分片映射关系确定方法,分片映射关系确定方法包括:利用CRUSH算法确定每个分片与存储单元的分片对应关系;根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
可以看出,在本申请中,利用CRUSH算法确定每个分片与存储单元的分片对应关系之后,还需要计算每个存储单元中的均衡系数,如果某一存储单元的均衡系数未在预先设定的均衡范围内,则说明存储单元中的分片分布不均匀,这时便需要通过设置例外映射表的方式来强行改变分片与存储单元的对应关系,以保证分片的均匀分布,从而提高数据分布的均匀性;本发明还公开了一种基于分布式存储系统的分片映射关系确定装置、设备及计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于分布式存储系统的分片映射关系确定方法流程示意图;
图2为本发明实施例公开的一种分片对应关系示意图;
图3为本发明实施例公开的一种例外映射表示意图;
图4为本发明实施例公开的的调整后的分片对应关系示意图;
图5为本发明实施例公开的一种具体的分片映射关系确定方法流程示意图;
图6为本发明实施例公开的另一具体的分片映射关系确定方法流程示意图;
图7为本发明实施例公开的一种基于分布式存储系统的分片映射关系确定装置结构示意图;
图8为本发明实施例公开的一种基于分布式存储系统的分片映射关系确定设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的分布式存储系统一般使用一致性Hash和CRUSH算法来实现计算分片的位置(即第二次映射),因为两种算法的结果都有随机性,可以保证数据在一定程度上的均匀性,在此对这两种方式分别说明:
1、一致性Hash算法,服务器维护分片到节点磁盘的映射表,并在拓扑变化,数据迁移时更新映射表。客户端对数据进行访问前,需要先给服务器发送请求查询数据的位置,然后再向对应的数据节点发送访问请求。映射表的大小取决于分片的数量,在一个分布式存储集群中映射表可能会很大,因此不能全量发给客户端,只能客户端在每次访问数据前进行查询,相当于每次访问数据需要两次请求,效率低。但是因为服务器拥有整个映射表,可以调整映射关系将数据分布的很均匀;
2、CRUSH算法,服务器只维护服务器集群的物理拓扑和CRUSH算法的映射规则,并在拓扑变化时更新。客户端对数据进行访问前先获取物理拓扑和映射规则,通过CRUSH算法自行计算出数据位置然后向对应的数据节点发送访问请求。由于拓扑和映射规则信息不多,客户端可以一次性获取全量信息(发生变化时服务器向客户端推送增量信息),数据分布客户端自己计算即可,不用每次都向服务器请求,所以每次访问数据只需向数据节点请求一次即可,效率高。但是因为CRUSH随机算法,有时候数据分布的可能不太均匀。
本申请基于上述两种算法各自的优缺点,提出了一种基于分布式存储系统的分片映射关系确定方法、装置、设备及计算机可读存储介质,通过在CRUSH算法的基础上增加例外映射表,可以解决随机算法导致的数据分布不均匀的问题。
参见图1,本发明实施例提供的一种基于分布式存储系统的分片映射关系确定方法流程示意图;该分片映射关系确定方法包括:
S101、利用CRUSH算法确定每个分片与存储单元的分片对应关系;
在本申请中,分片对应关系是通过物理拓扑及CRUSH算法的映射规则确定的,该分片对应关系表示每个分片与不同存储单元的对应关系,参见图2,为本发明提供的一种分片对应关系示意图,通过图2可以看出,分片14、分片12、分片8、分片3与存储单元1具有对应关系,分片1、分片15、分片5、分片13、分片4、分片11与存储单元2具有对应关系,分片10、分片7、分片6、分片9、分片2与存储单元3具有对应关系。
需要说明的是,现有方案通过CRUSH算法确定分片映射关系时,服务端仅仅维护物理拓扑和CRUSH算法的映射规则,客户端通过从服务端获取物理拓扑及映射规则后,可自行确定分片与存储单元的分片对应关系。因此,本申请所述的分片映射关系确定方法可以基于服务端的角度执行,也即:服务端执行S101-S103后,若生成了例外映射表,则客户端从服务端获取物理拓扑及映射规则时,需要一通获取该例外映射表,并在物理拓扑、映射规则及例外映射表中任意一者更新时,将更新后的再次发送给客户端。当然,如果客户端具有自主计算例外映射表的能力,客户端也可自行执行S101-S103生成例外映射表,而不需要从服务端获取。这两种方式均可,可根据实际应用环境的不同进行适应性变化。
S102、根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
其中,所述根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,包括:
计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
需要说明的是,在本实施例中,每个存储单元的权重系数可以根据不同存储单元的优先级等因素自行设定的,例如图2所示的三个存储单元,可以设置这三个存储单元的权重系数分别为1.1.1,也可以设置为1.2.1,在此并不具体限定。在本申请中,指标为可体现均匀程度的指标,例如:分片数量、分片容量等等,用户可根据实际情况进行选择,例如:如果选择指标为分片数量,则分片总指标即为分片总数量,如果选择指标为分片容量,则分片总指标即为分片总容量。在本申请中,分片平均值便是通过计算分片总指标(分片总数量/分片总容量)与所有存储单元的权重系数总和的商值确定。
在本申请中,通过每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标时,若指标为分片数量,则根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标的过程,具体包括:根据每个存储单元的分片对应关系确定每个存储单元的分片数量;计算每个存储单元的分片数量与每个存储单元的权重系数的商值,得到每个存储单元的单位权重分片数量,通过这种方式,计算出的单位权重分片指标便为单位权重分片数量。但是,若指标为分片容量,则该过程具体包括:根据每个存储单元的分片对应关系确定每个存储单元的分片容量;计算每个存储单元的分片容量与每个存储单元的权重系数的商值,得到每个存储单元的单位权重分片容量,通过这种方式,计算出的单位权重分片指标便为单位权重分片容量。
进一步,无论指标为分片数量还是分片容量,计算出分片平均值及单位权重分片指标(单位权重分片数量/单位权重分片容量)后,便可通过计算每个存储单元的单位权重分片指标与分片平均值的商值,确定每个存储单元的均衡系数。例如:若单位权重分片指标为单位权重分片数量,则利用每个存储单元的单位权重分片指标以及分片平均值,计算每个存储单元的均衡系数的过程,具体包括:计算每个存储单元的单位权重分片数量与分片平均值的商值,得到每个存储单元的均衡系数。若单位权重分片指标为单位权重分片容量,则该过程为:计算每个存储单元的单位权重分片容量与分片平均值的商值,得到每个存储单元的均衡系数。
S103、若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
需要说明的是,本申请预先设定了均衡范围,如果所有存储单元的均衡系数均在预定均衡范围内,则说明各个存储单元之间分片分布均匀,这时便不需要设置例外映射表。否则,需要设置例外映射表来调整分片与存储单元的分片对应关系,如果根据调整后的分片对应关系再次计算出存在某一存储单元的均衡系数不在预定均衡范围内,则需要继续调整例外映射表,直至根据调整后的分片对应关系计算出各个存储单元的均衡系数均在均衡范围为止。也即:该例外映射表起到的作用为:在CRUSH算法计算出分片与存储单元的对应关系后,如果分片分布不均匀,通过例外映射表强行调整分片与存储单元的对应关系,该调整方式可以为:将具有分片数量多的存储单元中的分片,调整至具有分片数量较少的存储单元中。
例如:图2所示的分片对应关系示意图中,若假设数据没有冗余,分片总数量为15个,存储单元数量为3个且权重相同,这时调整分片对应关系时,可以将存储单元2中的分片1强制映射到存储单元1上,从而生成例外映射表,参见图3,为本发明实施例提供的一种例外映射表示意图,图3中的映射表便体现了对分片映射关系的调整。参见图4,为本发明实施例提供的调整后的分片对应关系示意图,可以看出,通过例外映射表,已经将存储单元2中的分片1强制调整至存储单元1,从而使分片在三个存储单元上均匀分配。
可以理解的是,通过上述步骤得到例外映射表后,客户端在查询分片位置时,可以通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系后,实现对分片位置的查询。该过程具体可以包括:客户端在查找与目标分片对应的存储单元时,判断例外映射关系中是否存在与目标分片对应的存储单元;若是,则通过例外映射关系确定与目标分片对应的存储单元;若否,则通过CRUSH算法确定与所述目标分片对应的存储单元。
也就是说,客户端在查询目标分片的位置时,优先从例外映射表中查询分片位置,如果存在则直接返回结果,如果不存在,则需要通过CRUSH算法,根据拓扑和映射规则计算出分片对应的存储单元。当然,本申请并不仅仅限定这一种确定映射关系的方法,也可通过其他方法,例如:可以先通过CRUSH算法计算出分片与存储单元的映射关系,再通过例外映射表中的对应关系替换通过CRUSH算法计算出的映射关系,并将该映射关系作为最终的映射关系。这样后续再查询分片的位置时,便可直接通过最终的映射关系来查找分片的位置。可以理解的是,本方案查询分片的位置,即为查询与该分片具有映射关系的存储单元,该查询的存储单元即为查询的分片位置。
综上可以看出,本方案在CRUSH算法基础上,增加例外映射表来记录例外映射关系,削峰填谷,使得每个存储单元映射的分片个数更加平均,从而使数据分布的更均匀,使各个存储单元的负载更均衡,提高存储系统的空间利用率。
参见图5,本发明实施例提供的一种具体的分片映射关系确定方法流程示意图;该分片映射关系确定方法包括:
S201、利用CRUSH算法确定每个分片与存储单元的分片对应关系;
S202、根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
S203、判断所有存储单元的均衡系数是否均在预定均衡范围内;若是,则结束流程;若否,则执行S204;
S204、从均衡系数最大的存储单元内分配预定数量个分片至均衡系数最小的存储单元,生成例外映射表;
S205、通过例外映射表及CRUSH算法确定每个分片与存储单元的分片对应关系,并根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,并继续执行S203,直至所有存储单元的均衡系数均在预定均衡范围内为止。
综上可以看出,在本方案中,如果判定存在有存储单元的均衡系数不在预定均衡范围内,则从均衡系数最大的存储单元内分配预定数量个分片至均衡系数最小的存储单元,生成例外映射表,该预定数量可以根据实际情况进行设定,例如可设定为1或者2等等。在生成例外映射表后,为了保证调整后存储单元中分片均匀,需要再次通过例外映射表及CRUSH算法确定每个分片与存储单元的分片对应关系,并根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,并继续执行S203,直至所有存储单元的均衡系数均在预定均衡范围内为止。
参见图6,为本实施例提供的另一具体的分片映射关系确定方法流程示意图,在该流程中,以指标为分片数量为例对本方案进行具体描述,该过程包括如下步骤:
S1、使用存储集群的分片总数量除以所有存储单元的权重系数总,计算得出存储集群单位权重的平均分片数量;
S2、利用CRUSH算法和例外映射表计算出每个分片与存储单元的对应关系;该例外映射表在系统初始时为空,在执行S6后会添加映射关系;
S3、根据所有分片与存储单元对应关系计算出每个存储单元上单位权重分片数量;
S4、使用存储单元上单位权重分片数量除以平均分片数量得到该存储单元的均衡系数;
S5、判断是否所有存储单元的均衡系数都在设定的范围(比如0.95~1.05);若是,则执行S6;若否,则结束流程,并生成最终的例外映射表;
S6、通过在映射表中增加条目的方式从均衡系数最大的存储单元强制分配N个分片到均衡系数最小的存储单元(N可配置),然后转到步骤S2。
综上可以看出,本方案利用CRUSH算法确定每个分片与存储单元的分片对应关系之后,还需要计算每个存储单元中的均衡系数,如果某一存储单元的均衡系数未在预先设定的均衡范围内,则说明存储单元中的分片分布不均匀,这时便需要通过设置例外映射表的方式来强行改变分片与存储单元的对应关系,以保证分片的均匀分布,从而提高数据分布的均匀性。
下面对本发明实施例提供的确定装置进行介绍,下文描述的确定装置与上文描述的确定方法可以相互参照。
参见图7,本发明实施例提供的一种基于分布式存储系统的分片映射关系确定装置,所述分片映射关系确定装置包括:
对应关系确定模块100,用于利用CRUSH算法确定每个分片与存储单元的分片对应关系;
均衡系数确定模块200,用于根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,所述分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
对应关系调整模块300,用于存在存储单元的均衡系数不在预定均衡范围内时,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
其中,所述均衡系数确定模块包括:
第一计算单元,用于计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
指标确定单元,用于根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
第二计算单元,用于利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
其中,指标确定单元包括:
确定子单元,用于根据每个存储单元的分片对应关系确定每个存储单元的分片数量;
计算子单元,用于计算每个存储单元的分片数量与每个存储单元的权重系数的商值,得到每个存储单元的单位权重分片数量。
其中,第二计算单元具体用于:计算每个存储单元的单位权重分片数量与所述分片平均值的商值,得到每个存储单元的均衡系数。
其中,对应关系调整模块包括:
判断单元,用于判断所有存储单元的均衡系数是否均在预定均衡范围内;
映射表生成单元,用于存在存储单元的均衡系数在预定均衡范围内时,从均衡系数最大的存储单元内分配预定数量个分片至均衡系数最小的存储单元,生成例外映射表;
所述对应关系确定模块,还用于通过所述例外映射表及所述CRUSH算法确定每个分片与存储单元的分片对应关系,以使所述均衡系数确定模块根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,并触发所述判断单元,直至所有存储单元的均衡系数均在预定均衡范围内为止。
参见图8,本发明实施例还公开了一种基于分布式存储系统的分片映射关系确定设备结构示意图;该设备包括:
存储器11,用于存储计算机程序;
处理器12,用于执行所述计算机程序时实现如上述任意方法实施例所述的分片映射关系确定方法的步骤。
在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
该设备可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器11在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备的应用软件及各类数据,例如执行映射关系确定方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行映射关系确定方法的程序代码等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图8仅示出了具有组件11-14的设备,本领域技术人员可以理解的是,图8示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的分片映射关系确定方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于分布式存储系统的分片映射关系确定方法,其特征在于,所述分片映射关系确定方法包括:
利用CRUSH算法确定每个分片与存储单元的分片对应关系;
根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,所述分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
2.根据权利要求1所述的分片映射关系确定方法,其特征在于,所述根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,包括:
计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
3.根据权利要求2所述的分片映射关系确定方法,其特征在于,若所述分片总指标为分片总数,则所述根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标,包括:
根据每个存储单元的分片对应关系确定每个存储单元的分片数量;
计算每个存储单元的分片数量与每个存储单元的权重系数的商值,得到每个存储单元的单位权重分片数量。
4.根据权利要求3所述的分片映射关系确定方法,其特征在于,若所述单位权重分片指标为单位权重分片数量,则所述利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数,包括:
计算每个存储单元的单位权重分片数量与所述分片平均值的商值,得到每个存储单元的均衡系数。
5.根据权利要求1所述的分片映射关系确定方法,其特征在于,客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系,包括:
客户端在查找与目标分片对应的存储单元时,判断所述例外映射关系中是否存在与所述目标分片对应的存储单元;
若是,则通过所述例外映射关系确定与所述目标分片对应的存储单元;若否,则通过所述CRUSH算法确定与所述目标分片对应的存储单元。
6.根据权利要求1至5中任意一项所述的分片映射关系确定方法,其特征在于,所述若存在存储单元的均衡系数不在预定均衡范围内,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,包括:
判断所有存储单元的均衡系数是否均在预定均衡范围内;
若否,则从均衡系数最大的存储单元内分配预定数量个分片至均衡系数最小的存储单元,生成例外映射表;
通过所述例外映射表及所述CRUSH算法确定每个分片与存储单元的分片对应关系,并根据分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数,并继续执行所述判断所有存储单元的均衡系数是否均在预定均衡范围内的步骤,直至所有存储单元的均衡系数均在预定均衡范围内为止。
7.一种基于分布式存储系统的分片映射关系确定装置,其特征在于,所述分片映射关系确定装置包括:
对应关系确定模块,用于利用CRUSH算法确定每个分片与存储单元的分片对应关系;
均衡系数确定模块,用于根据所述分片对应关系、每个存储单元的权重系数及分片平均值,确定每个存储单元的均衡系数;其中,所述分片平均值通过分片总指标,以及所有存储单元的权重系数总和确定;
对应关系调整模块,用于存在存储单元的均衡系数不在预定均衡范围内时,则通过设置例外映射表对所述分片对应关系进行调整,直到每个存储单元的均衡系数均在预定均衡范围内为止,以使客户端通过CRUSH算法及例外映射关系确定分片与存储单元的映射关系。
8.根据权利要求7所述的分片映射关系确定方法,其特征在于,所述均衡系数确定模块包括:
第一计算单元,用于计算分片总指标与所有存储单元的权重系数总和的商值,得到分片平均值;
指标确定单元,用于根据每个存储单元的分片对应关系及每个存储单元的权重系数,确定每个存储单元的单位权重分片指标;
第二计算单元,用于利用每个存储单元的单位权重分片指标以及所述分片平均值,计算每个存储单元的均衡系数。
9.一种基于分布式存储系统的分片映射关系确定设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的分片映射关系确定方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的分片映射关系确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332545.1A CN111124309B (zh) | 2019-12-22 | 2019-12-22 | 一种分片映射关系确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332545.1A CN111124309B (zh) | 2019-12-22 | 2019-12-22 | 一种分片映射关系确定方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124309A true CN111124309A (zh) | 2020-05-08 |
CN111124309B CN111124309B (zh) | 2022-02-18 |
Family
ID=70501361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911332545.1A Active CN111124309B (zh) | 2019-12-22 | 2019-12-22 | 一种分片映射关系确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124309B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835848A (zh) * | 2020-07-10 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
WO2022048356A1 (zh) * | 2020-09-04 | 2022-03-10 | 苏州浪潮智能科技有限公司 | 一种云平台的数据处理方法、系统、电子设备及存储介质 |
CN114707478A (zh) * | 2022-06-06 | 2022-07-05 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160349993A1 (en) * | 2015-05-29 | 2016-12-01 | Cisco Technology, Inc. | Data-driven ceph performance optimizations |
CN106991170A (zh) * | 2017-04-01 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种分布式文件容量均衡的方法与装置 |
CN107317864A (zh) * | 2017-06-29 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种存储设备的数据均衡方法及装置 |
CN107562531A (zh) * | 2016-06-30 | 2018-01-09 | 华为技术有限公司 | 一种数据均衡方法和装置 |
CN109933285A (zh) * | 2019-02-26 | 2019-06-25 | 新华三技术有限公司成都分公司 | 分布式存储的数据均衡方法及装置 |
CN109992206A (zh) * | 2019-03-27 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据分布存储方法及相关装置 |
CN110427160A (zh) * | 2019-08-09 | 2019-11-08 | 济南浪潮数据技术有限公司 | 归置组分布的均衡方法及装置 |
-
2019
- 2019-12-22 CN CN201911332545.1A patent/CN111124309B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160349993A1 (en) * | 2015-05-29 | 2016-12-01 | Cisco Technology, Inc. | Data-driven ceph performance optimizations |
CN107562531A (zh) * | 2016-06-30 | 2018-01-09 | 华为技术有限公司 | 一种数据均衡方法和装置 |
CN106991170A (zh) * | 2017-04-01 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种分布式文件容量均衡的方法与装置 |
CN107317864A (zh) * | 2017-06-29 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种存储设备的数据均衡方法及装置 |
CN109933285A (zh) * | 2019-02-26 | 2019-06-25 | 新华三技术有限公司成都分公司 | 分布式存储的数据均衡方法及装置 |
CN109992206A (zh) * | 2019-03-27 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据分布存储方法及相关装置 |
CN110427160A (zh) * | 2019-08-09 | 2019-11-08 | 济南浪潮数据技术有限公司 | 归置组分布的均衡方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835848A (zh) * | 2020-07-10 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
CN111835848B (zh) * | 2020-07-10 | 2022-08-23 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
WO2022048356A1 (zh) * | 2020-09-04 | 2022-03-10 | 苏州浪潮智能科技有限公司 | 一种云平台的数据处理方法、系统、电子设备及存储介质 |
US11960506B2 (en) | 2020-09-04 | 2024-04-16 | Inspur Suzhou Intelligent Technology Co., Ltd | Data processing method and system for cloud platform, and electronic apparatus and storage medium |
CN114707478A (zh) * | 2022-06-06 | 2022-07-05 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
CN114707478B (zh) * | 2022-06-06 | 2022-09-02 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111124309B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6880131B2 (ja) | データ処理用の方法、装置及びシステム | |
US10831735B2 (en) | Processing device configured for efficient generation of a direct mapped hash table persisted to non-volatile block memory | |
CN111124309B (zh) | 一种分片映射关系确定方法、装置、设备及存储介质 | |
CN109327550B (zh) | 一种访问请求的分配方法、装置、存储介质和计算机设备 | |
CN106161120B (zh) | 动态均衡负载的分布式元数据管理方法 | |
US10579272B2 (en) | Workload aware storage platform | |
US9800575B1 (en) | Assigning storage responsibility in a distributed data storage system with replication | |
KR100954624B1 (ko) | 개인 선호도에 따라서 콘텐츠를 제공하기 위한 방법 및시스템 | |
CN103905503A (zh) | 数据存取方法、调度方法、设备及系统 | |
US11095715B2 (en) | Assigning storage responsibility in a distributed data storage system with replication | |
US10366110B2 (en) | Load balancing for multi-tiered querying | |
US11442632B2 (en) | Rebalancing of user accounts among partitions of a storage service | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
US20120296871A1 (en) | File managing apparatus for processing an online storage service | |
CN110633053B (zh) | 存储容量均衡方法、对象存储方法及装置 | |
CN103440182A (zh) | 自适应分配方法及装置、自适应副本一致性方法 | |
CN112422611A (zh) | 基于分布式对象存储的虚拟桶存储处理方法和系统 | |
CN113407108B (zh) | 一种数据存储方法和系统 | |
CN107797758B (zh) | 数据存储方法、数据访问方法及装置 | |
US9805109B2 (en) | Computer, control device for computer system, and recording medium | |
WO2020057226A1 (zh) | 算法下载方法、设备以及相关产品 | |
US20150046399A1 (en) | Computer system, data allocation management method, and program | |
US20160117107A1 (en) | High Performance Hadoop with New Generation Instances | |
CN115981848B (zh) | 一种内存数据库分片调整方法、设备 | |
CN113312328B (zh) | 控制方法、数据处理方法、数据访问方法及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |