一种元数据管理方法、装置、及电子设备、存储介质与流程



1.本技术涉及计算机网络领域技术领域,尤其涉及一种元数据管理方法、装置、及电子设备、存储介质。


背景技术:



2.随着信息技术的进一步发展,以及网络的大规模应用,带来了数据的爆炸性增长,同时给网络存储带来了巨大的发展。其中,在分布式存储系统中,随着系统数据存储量的不断增加,元数据服务器承受的文件元数据的数据量也随之快速增长,因此需要将元数据尽可能均匀地分散到系统里的各个存储节点,即保证各个存储节点负载均衡,以避免负载不均衡导致的节点性能下降。
3.相关技术中,通过一致性哈希算法实现负载均衡,但这种一致性哈希算法仅从概率上实现均衡,因此负载的均衡度有限。


技术实现要素:



4.本技术实施例提供一种元数据管理方法、装置、及电子设备、存储介质,提高了分布式存储系统中的多个存储节点的负载分布的均衡度。
5.第一方面,本技术实施例提供一种元数据管理方法,应用于包括多个存储节点的分布式存储系统中的主存储节点,该方法包括:确定多个存储节点中的各个存储节点的目标值;存储节点的目标值,用于表征多个存储节点负载分布均衡时该存储节点预估承载的存储组的个数,该存储组包括至少一组元数据;基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点;n为正整数,目标存储节点用于存储目标存储组的副本;目标存储组为待迁移的存储组;将目标存储组迁移至该n个目标存储节点。
6.本技术实施例提供的技术方案至少带来以下有益效果:相比于相关技术中在基于哈希算法实现负载均衡时仅依赖于概率进行负载均衡,本技术实施例提供的技术方案在进行负载均衡时综合考虑存储节点已承载的存储组数量,以及负载分布均衡时各个存储节点预估承载的存储组的个数,因此提高了多个存储节点的负载分布的均衡度。
7.在一些实施例中,上述确定多个存储节点中的每个存储节点的目标值,包括:若多个存储节点不满足负载均衡条件,执行预估迁移步骤;该预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点;该负载均衡条件用于衡量多个存储节点中的负载分布的均匀程度;重复执行预估迁移步骤直至多个存储节点满足负载均衡条件,则确定多个存储节点满足所述负载均衡条件时每个存储节点预估承载的存储组的个数为该存储节点的目标值。
8.基于此,可以通过执行预估迁移步骤使得多个存储节点负载分布均衡,进而获取多个负载分布均衡时每个存储节点预估承载的存储组的个数。
9.在一些实施例中,上述第一存储节点,为多个存储节点中剩余容量参数最大的存
储节点;上述第二存储节点,为多个存储节点中剩余容量参数最小的存储节点;上述负载均衡条件包括:第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值;其中,剩余容量参数包括:剩余容量,和/或剩余容量比例。
10.应理解,若第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值,则意味着多个存储节点中的剩余容量参数的极差较大,因而存在部分存储节点的剩余容量过小或剩余容量比例过小的问题。因此,可以根据第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差衡量多个存储节点中的负载分布的均匀程度,进而根据负载分布的均匀程度执行预估迁移步骤,以确定多个存储节点负载分布均衡时各个存储节点预估承载的存储组的个数。
11.在一些实施例中,上述基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点,包括:基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点;其中,m为正整数,所述未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点;在m大于或者等于n的情况下,确定多个存储节点中每个存储节点的优先值;存储节点的优先值用于表征存储节点被选择为目标存储节点的概率,且优先值与被选择为目标存储节点的概率正相关;将m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点;从排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点。
12.基于此,可以使得每个目标存储组所映射的目标存储节点均为非满载节点,且使得各个目标节点最终承载的目标存储组数量尽可能接近且不超过各个目标存储节点的目标值,以提高负载分布的均衡度。
13.在一些实施例中,上述基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点,包括:基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点,并确定多个存储节点中的满载节点;其中,m为正整数,所述未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点,所述满载节点为多个存储节点中承载的存储组的个数大于或者等于目标值的存储节点;在m小于n的情况下,获取m个未满载节点的剩余存储次数;剩余存储次数为未满载节点的目标值与未满载节点承载的存储组的个数之差;若m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至多个存储节点中存在n个未满载节点;将n个未满载节点作为目标存储组映射的n个目标存储节点;其中,均衡迁移步骤包括:确定m个未满载节点中剩余存储次数大于1的目标未满载节点;从多个存储节点中选择一个满载节点向目标未满载节点中迁移一个存储组。
14.应理解,若多个存储节点中的非满载节点的个数m小于n,则目标存储组可能在同一个存储节点多次存储。因此,为避免同一存储组在同一存储节点多次存储导致的数据存储可靠性下降,从多个存储节点中选择一个满载节点向剩余存储次数大于1的非满载节点迁移一个存储组,非满载节点迁移存储组后的可以成为新的非满载节点以便目标存储组存储,使得目标存储组有更多的选择空间,避免了目标存储组在同一个存储节点多次存储,提高数据存储的可靠性和稳定性。
15.在一些实施例中,上述将目标存储组迁移至n个目标存储节点,包括:对于n个目标存储节点中的各个目标存储节点,将目标存储组对应的数据库表的磁盘文件拷贝至目标存储节点。
16.这样,由于目标存储组包括至少一组元数据,因此可以将目标存储组看做多条元数据的集合;相比于将单条元数据拷贝至目标存储节点,本技术通过目标存储组将元数据的集合拷贝至目标存储节点,提高了元数据迁移效率。
17.第二方面,本技术实施例提供一种元数据管理装置,该装置包括:预估模块,用于确定多个存储节点中的各个存储节点的目标值;存储节点的目标值,用于表征多个存储节点负载分布均衡时存储节点预估承载的存储组的个数,存储组包括至少一组元数据;映射模块,用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点;n为正整数,目标存储节点用于存储目标存储组的副本;目标存储组为待迁移的存储组;迁移模块,用于将目标存储组迁移到n个目标存储节点。
18.在一些实施例中,上述预估模块,具体用于若多个存储节点不满足负载均衡条件,执行预估迁移步骤;预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点;负载均衡条件用于衡量多个存储节点中的负载分布的均匀程度;重复执行预估迁移步骤直至多个存储节点满足负载均衡条件,则确定多个存储节点满足所述负载均衡条件时每个存储节点预估承载的存储组的个数为存储节点的目标值。
19.在一些实施例中,上述第一存储节点,为多个存储节点中剩余容量参数最大的存储节点;上述第二存储节点,为多个存储节点中剩余容量参数最小的存储节点;上述负载均衡条件包括:第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值;其中,剩余容量参数包括:剩余容量,和/或剩余容量比例。
20.在一些实施例中,上述映射模块,具体用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点;其中,m为正整数,未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点;在m大于或等于n的情况下,确定多个存储节点中每个存储节点的优先值;存储节点的优先值用于表征存储节点被选择为目标存储节点的概率,且优先值与被选择为目标存储节点的概率正相关;将m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点;从排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点。
21.在一些实施例中,上述映射模块,具体用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点,并确定多个存储节点中的满载节点;其中,m为正整数,未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点,满载节点为多个存储节点中承载的存储组的个数大于或者等于目标值的存储节点;在m小于n的情况下,获取m个未满载节点的剩余存储次数;剩余存储次数为未满载节点的目标值与未满载节点承载的存储组的个数之差;若m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至多个存储节点中存在n个未满载节点;将n个未满载节点作为目标存储组映射的n个目标存储节点;其中,均衡迁移步骤包括:确定m个未满载节点中剩余存储次数大于1的目标未满载节点;从多个
存储节点中选择一个满载节点向目标未满载节点中迁移一个存储组。
22.在一些实施例中,上述迁移模块,具体用于对于n个目标存储节点中的各个目标存储节点,将目标存储组对应的数据库表的磁盘文件拷贝至目标存储节点。
23.第三方面,本技术实施例提供一种电子设备,包括:存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;其中,当处理器执行计算机指令时,使得电子设备执行如第一方面及其任一种可能的设计方式的元数据管理方法。
24.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行第一方面以及可能的实现方式中提供的元数据管理方法。
25.第五方面,本技术实施例提供一种包含计算机指令的计算机程序产品,当该计算机指令在计算机上运行时,使得计算机执行上述第一方面以及可能的实现方式中提供的元数据管理方法。
26.本技术中第二方面到第五方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述。第二方面到第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式的有益效果分析,此处不再赘述。
附图说明
27.图1为根据一些实施例的一种分布式存储系统的结构示意图;
28.图2为根据一些实施例的一种元数据管理方法的流程示意图一;
29.图3为根据一些实施例的另一种元数据管理方法的流程示意图二;
30.图4为根据一些实施例的又一种元数据管理方法的流程示意图三;
31.图5为根据一些实施例的又一种元数据管理方法的流程示意图四;
32.图6为根据一些实施例的又一种元数据管理方法的流程示意图五;
33.图7为根据一些实施例的一种剩余容量的确定方法的流程示意图;
34.图8为根据一些实施例的一种元数据管理装置的结构示意图;
35.图9为根据一些实施例的一种电子设备的结构示意图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.需要说明的是,在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非
另有说明,“多个”的含义是两个或两个以上。
38.首先,对本技术涉及的分布式存储系统进行简单介绍。
39.分布式存储系统用了分布式存储技术,分布式存储技术是一种数据存储技术,应用于分布式存储系统,通过网络使用系统内每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散地存储在系统的各个部分。图1中示出了一种分布式存储系统的结构示意图。
40.参照图1,分布式存储系统10中包括至少一个域(例如图1中的域11),每个域中包括多个存储节点(如图1所示的111b和111a),多个存储节点中存在至少一个主存储节点(例如图1所示的主存储节点111a)和多个非主存储节点(例如图1所示的非主存储节点111b)。每个存储节点中包括多个存储组(例如图1所示的多个存储组112),存储组用于存储分布式存储系统的元数据。此外,主存储节点111a与各个非主存储节点111b之间存在连接。可选地,各个非主存储节点111b之间也可以存在连接(图中未示出)。为进一步说明分布式存储系统的结构,下面对图1所示的分布式存储系统10中的各个部分作详细说明。
41.域11是多个存储节点的集,一个分布式存储系统10中可以划分多个域以完成不同的数据处理功能。本技术对分布式存储系统中的域的数量不作具体限制。一个域11内可以存在至少一个主存储节点111a,以便维护管理该域内多个存储节点的元数据存储。在一些实施例中,在将多条元数据存储进一个域之前,可以指定该域包括的存储组个数,使得该多条元数据按照一致性哈希算法被分配至该域的各个存储节点中的各个存储组内。
42.存储节点是一种数据存储装置,在本技术中存储节点主要用于存储元数据。参照图1,每个存储节点(如图1所示的111b和111a)包括多个存储组112。可选地,每个存储节点中的元数据被划分进该存储节点内的多个存储组中。本技术对存储节点的个数不作具体限制。
43.主存储节点111a是从多个存储节点中被选举的存储节点,用于管理和维护各个存储节点的元数据。本技术对主存储节点的选举方法及数量不作具体限制。可选地,主存储节点111a可以读取主存储节点111a和/或非主存储节点111b的剩余容量参数,该剩余容量参数包括:剩余容量,和/或剩余容量比例。可选地,主存储节点111a还可以控制主存储节点111a和/或非主存储节点111b中存储组112的迁移。可选地,主存储节点111a还可以确定主存储节点111a和/或非主存储节点111b的目标值。
44.存储组112是分布式存储系统10中的一种逻辑分组,是多条元数据的集合,相同存储组内的元数据存放在相同的存储节点上。同一个域中的全部元数据被划分进指定数量的存储组,本技术对存储组的数量不作具体限制。在一些实施例中,一个存储组内的元数据被复制多份存储进不同的存储节点,也即多副本映射,以提高数据存储的可靠性。
45.以上是本技术实施例中所涉及到的分布式存储系统的相关概念介绍,以下不再赘述。
46.如背景技术所述,在分布式存储系统中,需要将元数据尽可能均匀地分散到系统里的各个存储节点,也即保证各个存储节点负载均衡,以避免负载不均衡导致的节点性能下降。相关技术中,通过一致性哈希算法实现负载均衡,但这种一致性哈希算法仅从概率上实现均衡,因此负载的均衡度有限。
47.对此,本技术实施例提供一种元数据管理方法,该方法的核心思路在于在进行负
载均衡时综合考虑各个存储节点已承载的存储组数量,以及负载分布均衡时各个存储节点预估承载的存储组的个数,使得在对各个存储了元数据的存储节点进行负载均衡时,并非仅依赖概率分配进行均衡,进而提高了分布式存储系统中的多个存储节点的负载分布的均衡度。
48.为便于理解,以下结合附图对本技术提供的元数据管理方法作具体介绍。
49.图2为本技术提出的一种元数据管理方法的流程示意图,该元数据管理方法应用于包括多个存储节点的分布式存储系统中的主存储节点。如图2所示,元数据管理方法包括以下步骤s101至步骤s103:
50.s101、确定多个存储节点中的各个存储节点的目标值。
51.其中,存储节点的目标值用于表征多个存储节点负载分布均衡时该存储节点预估承载的存储组的个数。存储组包括至少一组元数据。示例性地,图1中的存储组112包括多条元数据。存储组的概念已在图1所示的实施例中作详细说明,这里不再赘述。
52.在一些实施例中,如图3所示,上述步骤s101可以具体实现为以下步骤s1011至步骤s1012:
53.s1011、若多个存储节点不满足负载均衡条件,执行预估迁移步骤,预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点。
54.其中,负载均衡条件用于衡量多个存储节点中的负载分布的均匀程度。应理解,上述将预估迁移步骤(也即将第二存储节点中的至少一个存储组预估迁移至第一存储节点)不是实际执行的迁移操作,而是假设完成的迁移操作,属于逻辑运算而非真实发生的事件。
55.在一些实施例中,第一存储节点,为多个存储节点中剩余容量参数最大的存储节点;第二存储节点,为多个存储节点中剩余容量参数最小的存储节点;可选地,负载均衡条件包括:第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值;其中,剩余容量参数包括:剩余容量,和/或剩余容量比例。应理解,这里的剩余容量比例为预估的剩余容量比例,剩余容量为预估的剩余容量,以下不再赘述。
56.可选地,剩余容量参数为剩余容量比例时,第一存储节点,为多个存储节点中剩余容量比例最大的存储节点;第二存储节点,为多个存储节点中剩余容量比例最小的存储节点;第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值,具体实现为:第一存储节点与第二存储节点的剩余容量比例之差大于第一阈值。一个存储节点的剩余容量比例为该存储节点的剩余容量与该存储节点的总容量的比值。
57.作为一个具体的示例,以下用dsd表示存储节点,sg表示存储组,对本技术实施例所示的方法作具体说明。若分布式存储系统的一个域里包括五个存储节点,这五个存储节点分别用dsd1、dsd2、dsd3、dsd4、以及dsd5表示,且dsd1的剩余容量比例为10%,dsd2的剩余容量比例为30%,dsd3的剩余容量比例为50%,dsd4的剩余容量比例为70%,dsd5的剩余容量比例为90%,则以剩余容量比例最大的dsd5为第一存储节点,以剩余容量比例最小的dsd1为第二存储节点。若第一阈值为15%,由于第一存储节点与第二存储节点的剩余容量参数之差为90%-10%,即为80%,大于15%,因此存储节点中的负载不满足均衡条件,预估将dsd1中的一个存储组迁移至dsd5。
58.应理解,若多个存储节点中的剩余容量比例差异较大,则意味着多个存储节点的负载分布差异较大,因此可以通过比较多个存储节点中剩余容量比例最大的存储节点和剩
余容量比例最小的存储节点的差值,来确定负载是否均衡。
59.可选地,剩余容量参数为剩余容量时,第一存储节点,为多个存储节点中剩余容量最大的存储节点;第二存储节点,为多个存储节点中剩余容量最小的存储节点;第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值,具体实现为:第一存储节点与第二存储节点的剩余容量之差大于第二阈值。
60.作为一个具体的示例,若分布式存储系统的一个域里包括五个存储节点,这五个存储节点分别用dsd6、dsd7、dsd8、dsd9、以及dsd10表示,且dsd6的剩余容量为10g,dsd7的剩余容量为30g,dsd8的剩余容量为50g,dsd9的剩余容量为70g,dsd10的剩余容量为90g,则以剩余容量最大的dsd5为第一存储节点,以剩余容量最小的dsd1为第二存储节点。若第一阈值为15g,由于第一存储节点与第二存储节点的剩余容量参数之差为90g-10g,即为80g,大于15g,因此存储节点中的负载不满足均衡条件,则预估将dsd6中的一个存储组迁移至dsd10。
61.应理解,若多个存储节点中的剩余容量比例较大,则意味着多个存储节点的负载分布差异较大,因此可以通过比较多个存储节点中剩余容量最大的存储节点和剩余容量最小的存储节点的差值,来确定负载是否均衡。
62.s1012、重复执行上述预估迁移步骤直至多个存储节点满足负载均衡条件,确定多个存储节点满足负载均衡条件时每个存储节点预估承载的存储组的个数为该存储节点的目标值。
63.应理解,由于步骤s1011中的预估迁移步骤并非实际的迁移操作,对应地,步骤s1012中所述的多个存储节点满足负载均衡条件也并不意味着多个存储节点实际满足负载均衡条件,而是说明假设该预估迁移步骤完成后多个存储节点满足负载均衡条件。
64.可以看出,上述步骤s1011和步骤s1012实际上为一个循环过程,目的在于通过执行预估迁移步骤使得多个存储节点负载分布均衡,进而获取多个负载分布均衡时每个存储节点预估承载的存储组的个数,也即各个存储节点的目标值。
65.示例性地,仍以剩余容量参数为剩余容量比例为例,若第一阈值仍为15%,且上述dsd1中的一个存储组迁移至dsd5后,dsd1的剩余容量比例变为40%,dsd5的剩余容量比例变为60%,则此时以剩余容量比例最大的dsd4为第一存储节点,以剩余容量比例最小的dsd2为第二存储节点,由于第一存储节点与第二存储节点的剩余容量参数之差为70%-30%,即为40%,大于15%,因此存储节点中的负载仍不满足均衡条件,则主存储节点预估将dsd2中的一个存储组迁移至dsd4,若预估迁移后多个存储节点不满足负载均衡条件,则以此类推重复执行上述步骤直至多个存储节点满足负载均衡条件,则确定多个存储节点满足负载均衡条件时每个存储节点预估承载的存储组的个数为该存储节点的目标值。
66.或者,仍以剩余容量参数为剩余容量为例,若第二阈值仍为15g,且上述dsd6中的一个存储组迁移至dsd10后,dsd6的剩余容量比例变为40g,dsd10的剩余容量比例变为60g,则此时以剩余容量比例最大的dsd9为第一存储节点,以剩余容量比例最小的dsd7为第二存储节点,由于第一存储节点与第二存储节点的剩余容量参数之差为70g-30g,即为40g,大于15g,因此存储节点中的负载不满足均衡条件,主存储节点将dsd7中的一个存储组迁移至dsd9,若预估迁移后多个存储节点不满足负载均衡条件,则以此类推重复执行上述步骤直至多个存储节点满足负载均衡条件,则确定多个存储节点满足负载均衡条件时每个存储节
点预估承载的存储组的个数为该存储节点的目标值。
67.应理解,若第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值,则意味着多个存储节点中的剩余容量参数的极差较大,因而存在部分存储节点的剩余容量过小或剩余容量比例过小的问题。因此,可以根据第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差衡量多个存储节点中的负载分布的均匀程度,进而根据负载分布的均匀程度执行预估迁移步骤,以确定多个存储节点负载分布均衡时各个存储节点预估承载的存储组的个数。
68.s102、基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点,n为正整数。
69.其中,目标存储节点用于存储目标存储组的副本;目标存储组为待迁移的存储组。
70.在一些实施例中,根据多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,可以将各个存储节点划分为满载节点或未满载节点。其中,未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点。满载节点为多个存储节点中承载的存储组的个数大于或等于目标值的存储节点。
71.在一些实施例中,如图4所示,上述步骤s102具体实现为以下步骤s1021a至步骤s1024a:
72.s1021a、基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点。
73.其中,m为正整数。
74.s1022a、在m大于或者等于n的情况下,确定多个存储节点中每个存储节点的优先值。
75.其中,存储节点的优先值用于表征存储节点被选择为目标存储节点的概率,且优先值与被选择为目标存储节点的概率正相关。
76.s1023a、将m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点。
77.s1024a、从排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点。
78.应理解,所述n个非满载节点中每个非满载节点的优先值大于或等于上述m个未满载节点中的其他非满载节点的优先值。
79.示例性地,当n为3时,若分布式存储系统的一个域中包括10个存储节点:dsd21、dsd22、dsd23、dsd24、dsd25、dsd26、dsd27、dsd28、dsd29、以及dsd30,且根据步骤s21计算出上述dsd21至dsd30的优先值依次为:45,134,267,44,115,78,168,24,423,580。则主存储节点根据上述优先值以及各个存储节点的目标值和各个存储节点实际承载的存储组个数,确定上述10个存储节点中优先值最大的3个非满载节点为dsd30、dsd29、以及dsd23。
80.基于此,可以使得每个目标存储组所映射的目标存储节点均为非满载节点,且使得各个目标节点最终承载的目标存储组数量尽可能接近且不超过各个目标存储节点的目标值,以提高负载分布的均衡度。
81.在另一些实施例中,如图5所示,上述步骤s102具体实现为以下步骤s1021b至步骤s1024b:
82.s1021b、基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点,并确定多个存储节点中的满载节点;其中,m为正整数。
83.s1022b、在m小于n的情况下,获取m个未满载节点的剩余存储次数。
84.其中,剩余存储次数为未满载节点的目标值与未满载节点承载的存储组的个数之差。
85.s1023b、若m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至多个存储节点中存在n个未满载节点。
86.其中,均衡迁移步骤包括:确定m个未满载节点中剩余存储次数大于1的目标未满载节点;从多个存储节点中选择一个满载节点向目标未满载节点中迁移一个存储组。
87.s1024b、将n个未满载节点作为目标存储组映射的n个目标存储节点。
88.应理解,若多个存储节点中的非满载节点的个数m小于n,则目标存储组可能在同一个存储节点多次存储。因此,为避免同一存储组在同一存储节点多次存储导致的数据存储可靠性下降,从多个存储节点中选择一个满载节点向剩余存储次数大于1的非满载节点迁移一个存储组,非满载节点迁移存储组后的可以成为新的非满载节点以便目标存储组存储,使得目标存储组有更多的选择空间,避免了目标存储组在同一个存储节点多次存储,提高数据存储的可靠性和稳定性。
89.s103、将目标存储组迁移至n个目标存储节点。
90.在一些实施例中,上述步骤s103具体实现为:对于n个目标存储节点中的各个目标存储节点,将目标存储组对应的数据库表的磁盘文件拷贝至目标存储节点。这样,相比于将单条元数据拷贝至目标存储节点,本技术通过目标存储组将元数据的集合拷贝至目标存储节点,提高了元数据迁移效率。
91.在一些实施例中,上述步骤s103具体实现为:主存储节点从多个存储节点中确定目标存储组所在的存储节点;主存储节点向目标存储组所在的存储节点发送存储组迁移指令;目标存储组所在的存储节点接收到存储组迁移指令后,根据存储组迁移指令,将目标存储组迁移至n个目标存储节点。
92.图2提供的技术方案至少带来以下有益效果:相比于相关技术中在基于哈希算法实现负载均衡时仅依赖于概率进行负载均衡,本技术实施例提供的技术方案在进行负载均衡综合考虑到存储节点已承载的存储组数量,以及负载分布均衡时各个存储节点预估承载的存储组的个数,因此提高了分布式存储系统中的多个存储节点的负载分布的均衡度。
93.在一些实施例中,上述步骤s1022a中所述的多个存储节点的优先值可以是主存储节点通过一致性哈希算法确定的。例如,如图6所示,上述步骤s1022a可以具体实现为以下步骤s10221a至s10222a:
94.s10221a、在m大于或者等于n的情况下,根据目标存储组的标识以及多个存储节点中每个存储节点的标识,确定每个存储节点的随机值。
95.在一些示例中,目标存储组的标识,存储节点的标识,以及存储节点的随机值,满足以下关系:
96.sg_rand(i)=hash(string(sg_id)+string(dsd_id(i)))
97.其中,string(sg_id)为目标存储组的标识,string(dsd_id(i))为多个存储节点
中第i个存储节点的标识,sg_rand(i)为多个存储节点中第i个存储节点的随机值。
98.s10222a、根据多个存储节点中每个存储节点的随机值和每个存储节点的权重,确定每个存储节点的优先值。
99.在一些示例中,存储节点的随机值,存储节点的权重,以及存储节点的优先值,满足以下关系:
100.w(i)=dsd_w(i)*g_rand(i)
101.其中,dsd_w(i)为多个存储节点中第i个存储节点的权重,sg_rand(i)为目标存储组对应的多个存储节点中第i个存储节点的随机值,w(i)为多个存储节点中第i个存储节点的优先值。
102.在一些示例中,各个存储节点的权重与各个存储节点的剩余容量参数有关。
103.示例性地,存储节点的权重与存储节点的剩余容量比例成正比。例如,若分布式存储系统的一个域中包括5个存储节点:dsd11、dsd12、dsd13、dsd14、以及dsd15。其中,dsd11、dsd12、dsd13、dsd14,以及dsd15的剩余容量比例依次为30%、36%、39%、50%以及44%,则将dsd11、dsd12、dsd13、dsd14,以及dsd15的权重分别设置为:0.3、0.36、0.39、0.5、0.44。
104.或者,存储节点的权重与存储节点的剩余容量成正比。例如,若分布式存储系统的一个域中包括5个存储节点:dsd16、dsd17、dsd18、dsd19、以及dsd20。其中,dsd16、dsd17、dsd18、dsd19、以及dsd20的剩余容量依次为30g、36g、39g、50g以及44g,则将dsd16、dsd17、dsd18、dsd19、以及dsd20的权重分别设置为:30、36、39、50、44。
105.应理解,上述各个存储节点的权重与各个存储节点的剩余容量参数的关系仅为示例,例如,还可以是指数关系,对数关系等,本技术对此不作限制。
106.在一些实施例中,为判断执行上述步骤s1011所述的预估迁移步骤后,多个存储节点是否满足负载均衡条件,还应确定多个存储节点的剩余容量,以便根据多个存储节点的剩余容量判断多个存储节点中是否满足负载均衡条件。示例性地,在第一次执行预估迁移步骤前,预估的存储节点的剩余容量参数与实际的剩余容量参数一致,因此可以从各个存储节点中直接读取并记录第一次执行预估迁移步骤前各个存储节点的剩余容量,这样,便于在第一次预估转移后,计算各个存储节点的剩余容量参数(例如剩余容量和/或剩余容量比例)。或者,在执行过至少一次预估迁移步骤后,预估的存储节点的剩余容量参数相对于实际的剩余容量参数已经发生改变,主存储节点不能直接从各个存储节点上读取各个存储节点在执行至少一次预估迁移步骤后的剩余容量。为进一步确定执行至少一次预估迁移步骤后的多个存储节点是否满足负载均衡条件,图7中示出了一种剩余容量的确定方法,用于确定最近一次执行预估迁移步骤后第一存储节点和第二存储节点的剩余容量。参照图7,该方法包括以下步骤s201至s203:
107.s201、确定第二存储节点的平均存储组容量。
108.在一些示例中,第一存储节点的平均存储组容量根据第一存储节点的已存容量除以第二存储节点的存储组数量得到。这样,可以算出准确的第一存储节点的平均存储组容量。
109.在一些示例中,第二存储节点的平均存储组容量根据第二存储节点的已存容量除以第二存储节点的存储组数量得到。这样,可以算出准确的第二存储节点的平均存储组容量。
110.在另一些示例中,第一存储节点的平均存储组容量和第二存储节点的平均存储组容量相同,均为同一个域中的已存总容量除以该域中的存储组总个数的商。应理解,所有元数据按照一致性哈希算法被比较均衡地分散在各个存储组中,因此可认为各个存储节点的容量相同,这样,可以不必每次预估迁移前都计算一次存储节点的平均存储组容量,节省运算量。
111.s202、确定最近一次执行预估迁移步骤前的第一存储节点的剩余容量和第二存储节点的剩余容量。
112.在一些示例中,若最近一次执行预估迁移步骤是主存储节点第一次执行的预估迁移步骤,则直接从第一存储节点和第二存储节点中读取第一存储节点和第二存储节点的剩余容量。若最近一次执行预估迁移步骤不是主存储节点第一次执行的预估迁移步骤,则以上次执行预估迁移步骤后确定的第一存储节点的剩余容量,为此次最近一次执行预估迁移步骤前的第一存储节点的剩余容量;并以上次执行预估迁移步骤后确定的第二存储节点的剩余容量,为最近一次执行预估迁移步骤前的第二存储节点的剩余容量。
113.s203、根据第二存储节点的平均存储组容量,以及最近一次执行预估迁移步骤前的第一存储节点的剩余容量和第二存储节点的剩余容量,确定最近一次执行预估迁移步骤后的第一存储节点的剩余容量和第二存储节点的剩余容量。
114.其中,最近一次执行预估迁移步骤后的第一存储节点的剩余容量,为最近一次执行预估迁移步骤前的第一存储节点的剩余容量与第二存储节点的平均存储组容量之和;最近一次执行预估迁移步骤后的第二存储节点的剩余容量,为最近一次执行预估迁移步骤前的第二存储节点的剩余容量与第二存储节点的平均存储组容量之差。基于此,可以判断执行至少一次预估迁移步骤后的多个存储节点是否满足负载均衡条件。
115.在一些实施例中,若分布式存储系统中加入新的存储节点,则主存储节点执行上述步骤s101至s103以使得新加入的存储节点上也存储元数据负载,进而使得加入了新的存储节点后的分布式存储系统满足负载均衡条件。
116.在另一些实施例中,分布式存储系统中的主存储节点每隔一定时间检测分布式存储系统中的多个存储节点是否满足负载均衡条件,若不满足,则执行上述步骤s101至s103,以提高负载均衡度。
117.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
118.如图8所示,本技术实施例提供了一种元数据管理装置,用于执行图2所示的元数据管理方法。该元数据管理装置包括:预估模块301、映射模块302和迁移模块303。
119.预估模块301,用于确定多个存储节点中的各个存储节点的目标值;存储节点的目标值,用于表征多个存储节点负载分布均衡时存储节点预估承载的存储组的个数。
120.映射模块302,用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的n个目标存储节点;
n为正整数,目标存储节点用于存储目标存储组的副本;目标存储组为待迁移的存储组,存储组包括至少一组元数据。
121.迁移模块303,用于将目标存储组迁移到n个目标存储节点。
122.在一些实施例中,上述预估模块301,具体用于若多个存储节点不满足负载均衡条件,执行预估迁移步骤,预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点;负载均衡条件用于衡量多个存储节点中的负载分布的均匀程度;重复执行预估迁移步骤直至多个存储节点满足负载均衡条件,则确定多个存储节点满足所述负载均衡条件时每个存储节点预估承载的存储组的个数为存储节点的目标值。
123.在一些实施例中,上述第一存储节点,为多个存储节点中剩余容量参数最大的存储节点;上述第二存储节点,为多个存储节点中剩余容量参数最小的存储节点;上述负载均衡条件包括:第一存储节点的剩余容量参数与第二存储节点的剩余容量参数之差大于阈值;其中,剩余容量参数包括:剩余容量,和/或剩余容量比例。
124.在一些实施例中,上述映射模块302,具体用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点;其中,m为正整数,未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点;在m大于或等于n的情况下,确定多个存储节点中每个存储节点的优先值;存储节点的优先值用于表征存储节点被选择为目标存储节点的概率,且优先值与被选择为目标存储节点的概率正相关;将m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点;从排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点。
125.在一些实施例中,上述映射模块302,具体用于基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,确定多个存储节点中的m个未满载节点,并确定多个存储节点中的满载节点;其中,m为正整数,未满载节点为多个存储节点中承载的存储组的个数小于目标值的存储节点,满载节点为多个存储节点中承载的存储组的个数大于或者等于目标值的存储节点;在m小于n的情况下,获取m个未满载节点的剩余存储次数;剩余存储次数为未满载节点的目标值与未满载节点承载的存储组的个数之差;若m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至多个存储节点中存在n个未满载节点;将n个未满载节点作为目标存储组映射的n个目标存储节点;其中,均衡迁移步骤包括:确定m个未满载节点中剩余存储次数大于1的目标未满载节点;从多个存储节点中选择一个满载节点向目标未满载节点中迁移一个存储组。
126.在一些实施例中,上述迁移模块303,具体用于对于n个目标存储节点中的各个目标存储节点,将目标存储组对应的数据库表的磁盘文件拷贝至目标存储节点。
127.在采用硬件的形式实现上述集成的模块的功能的情况下,本技术实施例提供了上述实施例中所涉及的一种电子设备的结构示意图。如图9所示,该电子设备400包括:处理器402,通信接口403,总线404。可选的,该电子设备还可以包括存储器401。
128.处理器402,可以是实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器402可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和
电路。处理器402也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
129.通信接口403,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,wlan)等。
130.存储器401,可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
131.作为一种可能的实现方式,存储器401可以独立于处理器402存在,存储器401可以通过总线404与处理器402相连接,用于存储指令或者程序代码。处理器402调用并执行存储器401中存储的指令或程序代码时,能够实现本技术实施例提供的元数据管理方法。
132.另一种可能的实现方式中,存储器401也可以和处理器402集成在一起。
133.总线404,可以是扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
134.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
135.本技术实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机指令来指示相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的或内存。上述计算机可读存储介质也可以是上述电子设备的外部存储设备,例如上述电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述电子设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述电子设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
136.本技术实施例还提供一种计算机程序产品,该计算机产品包含计算机程序,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例中所提供的任一项元数据管理方法。
137.尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
138.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
139.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。

技术特征:


1.一种元数据管理方法,其特征在于,应用于包括多个存储节点的分布式存储系统中的主存储节点,所述方法包括:确定所述多个存储节点中的各个存储节点的目标值;所述存储节点的目标值,用于表征所述多个存储节点负载分布均衡时所述存储节点预估承载的存储组的个数,所述存储组包括至少一组元数据;基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,从所述多个存储节点中确定目标存储组映射的n个目标存储节点;n为正整数,所述目标存储节点用于存储所述目标存储组的副本;所述目标存储组为待迁移的存储组;将所述目标存储组迁移至所述n个目标存储节点。2.根据权利要求1所述的方法,其特征在于,所述确定所述多个存储节点中的每个存储节点的目标值,包括:若所述多个存储节点不满足负载均衡条件,执行预估迁移步骤,所述预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点;所述负载均衡条件用于衡量所述多个存储节点中的负载分布的均匀程度;重复执行所述预估迁移步骤直至所述多个存储节点满足所述负载均衡条件,确定所述多个存储节点满足所述负载均衡条件时每个所述存储节点预估承载的存储组的个数为所述存储节点的目标值。3.根据权利要求2所述的方法,其特征在于,所述第一存储节点,为所述多个存储节点中剩余容量参数最大的存储节点;所述第二存储节点,为所述多个存储节点中剩余容量参数最小的存储节点;所述负载均衡条件包括:所述第一存储节点的剩余容量参数与所述第二存储节点的剩余容量参数之差大于阈值;其中,所述剩余容量参数包括:剩余容量,和/或剩余容量比例。4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,从所述多个存储节点中确定目标存储组映射的n个目标存储节点,包括:基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,确定所述多个存储节点中的m个未满载节点;其中,m为正整数,所述未满载节点为所述多个存储节点中承载的存储组的个数小于目标值的存储节点;在m大于或者等于n的情况下,确定所述多个存储节点中每个存储节点的优先值;所述存储节点的优先值用于表征所述存储节点被选择为目标存储节点的概率,且所述优先值与所述被选择为目标存储节点的概率正相关;将所述m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点;从所述排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点。5.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,从所述多个存储节点中确定目标存储组映射的n个目标存储节点,包括:
基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,确定所述多个存储节点中的m个未满载节点,并确定所述多个存储节点中的满载节点;其中,m为正整数,所述未满载节点为所述多个存储节点中承载的存储组的个数小于目标值的存储节点,所述满载节点为所述多个存储节点中承载的存储组的个数大于或者等于目标值的存储节点;在m小于n的情况下,获取所述m个未满载节点的剩余存储次数;所述剩余存储次数为所述未满载节点的目标值与所述未满载节点承载的存储组的个数之差;若所述m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至所述多个存储节点中存在n个未满载节点;将所述n个未满载节点作为所述目标存储组映射的n个目标存储节点;其中,所述均衡迁移步骤包括:确定所述m个未满载节点中所述剩余存储次数大于1的目标未满载节点;从所述多个存储节点中选择一个满载节点向所述目标未满载节点中迁移一个存储组。6.根据权利要求1所述的方法,其特征在于,所述将所述目标存储组迁移至所述n个目标存储节点,包括:对于所述n个目标存储节点中的各个目标存储节点,将所述目标存储组对应的数据库表的磁盘文件拷贝至所述目标存储节点。7.一种元数据管理装置,其特征在于,包括:预估模块,用于确定所述多个存储节点中的各个存储节点的目标值;所述存储节点的目标值,用于表征所述多个存储节点负载分布均衡时所述存储节点预估承载的存储组的个数,所述存储组包括至少一组元数据;映射模块,用于基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,从所述多个存储节点中确定目标存储组映射的n个目标存储节点;n为正整数,所述目标存储节点用于存储所述目标存储组的副本;所述目标存储组为待迁移的存储组;迁移模块,用于将所述目标存储组迁移到所述n个目标存储节点。8.根据权利要求7所述的装置,其特征在于,所述预估模块,具体用于若所述多个存储节点不满足负载均衡条件,执行预估迁移步骤,所述预估迁移步骤包括:将第二存储节点中的至少一个存储组预估迁移至第一存储节点;所述负载均衡条件用于衡量所述多个存储节点中的负载分布的均匀程度;重复执行所述预估迁移步骤直至所述多个存储节点满足所述负载均衡条件,确定所述多个存储节点满足所述负载均衡条件时每个所述存储节点预估承载的存储组的个数为所述存储节点的目标值;所述第一存储节点,为所述多个存储节点中剩余容量参数最大的存储节点;所述第二存储节点,为所述多个存储节点中剩余容量参数最小的存储节点;所述负载均衡条件包括:所述第一存储节点的剩余容量参数与所述第二存储节点的剩余容量参数之差大于阈值;其中,所述剩余容量参数包括:剩余容量,和/或剩余容量比例;所述映射模块,具体用于基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,确定所述多个存储节点中的m个未满载节点;其中,m为正整数,所述未满载节点为所述多个存储节点中承载的存储组的个数小于目标值的存储
节点;在m大于或等于n的情况下,确定所述多个存储节点中每个存储节点的优先值;所述存储节点的优先值用于表征所述存储节点被选择为目标存储节点的概率,且所述优先值与所述被选择为目标存储节点的概率正相关;将所述m个未满载节点按照优先值从大到小的顺序排序,得到排序后的m个未满载节点;从所述排序后的m个未满载节点中选择前n个未满载节点作为目标存储组映射的n个目标存储节点;所述映射模块,具体用于基于所述多个存储节点中的各个存储节点的目标值和所述各个存储节点中已承载的存储组的个数,确定所述多个存储节点中的m个未满载节点,并确定所述多个存储节点中的满载节点;其中,m为正整数,所述未满载节点为所述多个存储节点中承载的存储组的个数小于目标值的存储节点,所述满载节点为所述多个存储节点中承载的存储组的个数大于或者等于目标值的存储节点;在m小于n的情况下,获取所述m个未满载节点的剩余存储次数;所述剩余存储次数为所述未满载节点的目标值与所述未满载节点承载的存储组的个数之差;若所述m个未满载节点的剩余存储次数之和大于或等于n,则重复执行均衡迁移步骤直至所述多个存储节点中存在n个未满载节点;将所述n个未满载节点作为所述目标存储组映射的n个目标存储节点;其中,所述均衡迁移步骤包括:确定所述m个未满载节点中所述剩余存储次数大于1的目标未满载节点;从所述多个存储节点中选择一个满载节点向所述目标未满载节点中迁移一个存储组;所述迁移模块,具体用于对于所述n个目标存储节点中的各个目标存储节点,将所述目标存储组对应的数据库表的磁盘文件拷贝至所述目标存储节点。9.一种电子设备,其特征在于,包括:存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;其中,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1至6任一项所述的元数据管理方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令;其中,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至6任一项所述的元数据管理方法。

技术总结


本申请实施例公开了一种元数据管理方法、装置、及电子设备、存储介质,涉及计算机网络技术领域,可以提高分布式存储系统中的多个存储节点的负载分布的均衡度。该方法包括:确定多个存储节点中的各个存储节点的目标值;存储节点的目标值用于表征多个存储节点负载分布均衡时该存储节点预估承载的存储组的个数,存储组包括至少一组元数据;基于多个存储节点中的各个存储节点的目标值和各个存储节点中已承载的存储组的个数,从多个存储节点中确定目标存储组映射的N个目标存储节点;N为正整数,目标存储节点用于存储目标存储组的副本;目标存储组为待迁移的存储组;将目标存储组迁移至该N个目标存储节点。N个目标存储节点。N个目标存储节点。


技术研发人员:

夏伟强

受保护的技术使用者:

杭州海康威视系统技术有限公司

技术研发日:

2022.10.08

技术公布日:

2022/12/30

本文发布于:2024-09-23 06:21:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/50356.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   多个   所述   剩余
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议