本发明涉及分布式存储,特别是涉及一种元数据负载均衡方法、装置、设备及可读存储介质。
背景技术:
1、分布式文件存储系统已被广泛应用于大数据服务计算等许多关键领域,在分布式文件存储系统中,元数据与数据分开管理。这种解耦方式支持元数据和数据相互独立,采用不同的存储介质,例如,采用nvmessd(nvm express solid state disk,非易失性内存主机控制器接口规范固态硬盘)存储元数据,使用hdd(hard disk drive,机械硬盘)存储数据。在这种架构中,必须先获取元数据,然后再进行实际数据访问。最近的研究表明,许多文件系统工作负载是元数据密集型的,即超过60%的文件系统操作集中在元数据上。此外,绝大多数文件都很小,字节级占比较高,元数据请求压力不均衡,元数据密集访问是造成文件系统服务性能瓶颈重要原因,所有这些趋势使元数据负载均衡变得至关重要。
2、为了提高海量分布式文件系统元数据访问性能,扩展和提高分布式mds(metadataserver,元数据服务)集群的性能具有挑战性。该挑战主要是因为元数据包含文件系统结构信息,并且表现出更高程度的相互依赖性,当前技术下,通常采用动态子树分区的方法,将文件系统的目录分解为几个子目录,然后根据文件访问热度情况进行动态调整。动态调整是指在多个元数据服务之间进行迁移,该方法通过拆分以及分层命名空间方式在多个元数据服务之间分发子树来提高元数据扩展特性。然而,这种方法存在严重的不均衡问题,分布式元数据服务不平衡、预测不准确。究其原因,该方法对业务负载特征辨识度低,易产生对元数据进行不必要、无效的迁移,导致分布式文件系统性能不佳。
3、综上所述,如何有效地解决现有的元数据负载均衡方法对业务负载特征辨识度低,易产生对元数据进行不必要、无效的迁移,导致分布式文件系统性能不佳等问题,是目前本领域技术人员急需解决的问题。
技术实现思路
1、本发明的目的是提供一种元数据负载均衡方法,该方法提升了对业务负载特征的辨识度,较大地降低了产生对元数据进行不必要、无效的迁移的概率,具有较好的元数据负载均衡特性,提升了分布式存储系统的稳定性;本发明的另一目的是提供一种元数据负载均衡装置、设备及计算机可读存储介质。
2、为解决上述技术问题,本发明提供如下技术方案:
3、一种元数据负载均衡方法,包括:
4、获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息;
5、根据各所述元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量;
6、获取各所述目标元数据服务中各子树分区分别对应的迁移参数;
7、根据各所述迁移参数确定导出子树分区和导入子树分区;
8、当达到所述元数据迁移时刻时,将所述待迁移元数据数量的元数据从所述导出子树分区迁移至所述导入子树分区。
9、在本发明的一种具体实施方式中,获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息,包括:
10、通过部署于所述分布式文件存储集群中各所述元数据服务的负载监视器获取各所述元数据服务分别对应的元数据负载压力信息。
11、在本发明的一种具体实施方式中,根据各所述元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量,包括:
12、通过设置于预选元数据服务的元数据迁移启动程序,根据各所述元数据负载压力信息确定所述元数据迁移时刻、待元数据迁移的各所述目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量。
13、在本发明的一种具体实施方式中,获取各所述目标元数据服务中各子树分区分别对应的迁移参数,包括:
14、通过部署于各所述元数据服务的负载分析组件获取各所述目标元数据服务中各子树分区分别对应的迁移参数;
15、根据各所述迁移参数确定导出子树分区和导入子树分区,包括:
16、通过部署于各所述元数据服务的子树选择组件根据各所述迁移参数确定所述导出子树分区和所述导入子树分区。
17、在本发明的一种具体实施方式中,通过部署于各所述元数据服务的负载分析组件获取各所述目标元数据服务中各子树分区分别对应的迁移参数,包括:
18、通过部署于各所述元数据服务的负载分析组件获取各所述目标元数据服务中各子树分区分别对应的迁移参数和所述分布式文件存储集群的工作负载i/o 模式;
19、通过部署于各所述元数据服务的子树选择组件根据各所述迁移参数确定所述导出子树分区和所述导入子树分区,包括:
20、当确定所述工作负载i/o模式为元数据密集型io时,通过部署于各所述元数据服务的子树选择组件根据各所述迁移参数确定所述导出子树分区和所述导入子树分区。
21、在本发明的一种具体实施方式中,通过部署于各所述元数据服务的负载分析组件获取各所述目标元数据服务中各子树分区分别对应的迁移参数,包括:
22、通过部署于各所述元数据服务的负载分析组件统计各所述子树分区分别对应的历史工作负载;
23、根据各所述历史工作负载确定各所述子树分区的元数据访问差异;
24、根据所述元数据访问差异确定各子树分区分别对应的迁移参数。
25、在本发明的一种具体实施方式中,根据所述元数据访问差异确定各子树分区分别对应的迁移参数,包括:
26、获取预设的元数据最大吞吐量;
27、当确定存在大于所述元数据最大吞吐量的历史工作负载时,根据所述元数据访问差异确定各所述子树分区分别对应的迁移参数。
28、在本发明的一种具体实施方式中,在根据各所述迁移参数确定导出子树分区和导入子树分区之后,还包括:
29、当分别在各所述元数据服务中维护的历史元数据访问请求表中存在体现空间局部性的历史元数据访问请求表时,从与所述导出子树分区同级的子树分区中选取目标子树分区;
30、将所述目标子树分区的迁移参数增加预设值。
31、在本发明的一种具体实施方式中,获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息,包括:
32、获取所述分布式文件存储集群中各所述元数据服务分别对应的单位时长内处理的元数据请求数;
33、根据各所述元数据服务分别对应的单位时长内处理的元数据请求数确定各所述元数据服务分别对应的元数据负载压力信息。
34、在本发明的一种具体实施方式中,根据各所述元数据服务分别对应的单位时长内处理的元数据请求数确定各所述元数据服务分别对应的元数据负载压力信息,包括:
35、根据预设时长内统计的各所述元数据服务分别对应的单位时长内处理的元数据请求数确定各所述元数据服务分别对应的元数据负载压力信息。
36、在本发明的一种具体实施方式中,根据各所述元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量,包括:
37、根据各所述元数据负载压力信息确定各所述元数据服务分别对应的元数据负载均衡值;
38、根据各所述元数据负载均衡值确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量。
39、在本发明的一种具体实施方式中,根据各所述元数据负载均衡值确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量,包括:
40、判断是否存在超出预设阈值的元数据负载均衡值;
41、若是,则执行所述根据各所述元数据负载均衡值确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量的步骤。
42、在本发明的一种具体实施方式中,根据各所述元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量,包括:
43、获取各所述元数据服务分别能承受的负载差异;
44、结合各所述元数据负载压力信息和所述负载差异确定所述元数据迁移时刻、待元数据迁移的各所述目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量。
45、在本发明的一种具体实施方式中,获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息,包括:
46、分别获取分布式文件存储集群中各所述元数据服务每秒进行读写操作的次数;
47、根据各所述元数据服务每秒进行读写操作的次数确定各所述元数据服务分别对应的元数据负载压力信息。
48、在本发明的一种具体实施方式中,根据各所述迁移参数确定导出子树分区和导入子树分区,包括:
49、根据各所述迁移参数对各所述子树分区进行排序,得到排序结果;
50、根据所述排序结果从迁移参数大的一端选取第一预设数量的子树分区作为所述导出子树分区,并从迁移参数小的一端选取第二预设数量的子树分区作为所述导入子树分区。
51、在本发明的一种具体实施方式中,在根据所述排序结果从迁移参数大的一端选取第一预设数量的子树分区作为所述导出子树分区之后,还包括:
52、将除所述导出子树分区之外的其余子树分区确定为无效迁移的候选项。
53、在本发明的一种具体实施方式中,从迁移参数小的一端选取第二预设数量的子树分区作为所述导入子树分区,包括:
54、统计各子树分区中备用容量大于等于预设容量值的子树分区数量;
55、当所述备用容量大于等于预设容量值的子树分区数量大于等于所述第二预设数量时,则从迁移参数小的一端选取第二预设数量的子树分区作为所述导入子树分区;
56、当所述备用容量大于等于所述预设容量值的子树分区数量小于所述第二预设数量时,则将所述备用容量大于等于所述预设容量值的子树分区确定为所述导入子树分区。
57、一种元数据负载均衡装置,包括:
58、负载压力获取模块,用于获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息;
59、迁移信息确定模块,用于根据各所述元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各所述目标元数据服务之间的待迁移元数据数量;
60、迁移参数获取模块,用于获取各所述目标元数据服务中各子树分区分别对应的迁移参数;
61、子树分区确定模块,用于根据各所述迁移参数确定导出子树分区和导入子树分区;
62、元数据迁移模块,用于当达到所述元数据迁移时刻时,将所述待迁移元数据数量的元数据从所述导出子树分区迁移至所述导入子树分区。
63、一种元数据负载均衡设备,包括:
64、存储器,用于存储计算机程序;
65、处理器,用于执行所述计算机程序时实现如前所述元数据负载均衡方法的步骤。
66、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述元数据负载均衡方法的步骤。
67、本发明所提供的元数据负载均衡方法,获取分布式文件存储集群中各元数据服务分别对应的元数据负载压力信息;根据各元数据负载压力信息确定元数据迁移时刻、待元数据迁移的各目标元数据服务及各目标元数据服务之间的待迁移元数据数量;获取各目标元数据服务中各子树分区分别对应的迁移参数;根据各迁移参数确定导出子树分区和导入子树分区;当达到元数据迁移时刻时,将待迁移元数据数量的元数据从导出子树分区迁移至导入子树分区。
68、由上述技术方案可知,根据获取到的各元数据服务分别对应的元数据负载压力信息,准确地确定出元数据迁移时刻、待元数据迁移的各目标元数据服务及各目标元数据服务之间的待迁移元数据数量,并根据各目标元数据服务中各子树分区分别对应的迁移参数准确确定导出子树分区和导入子树分区,实现对元数据的准确迁移。提升了对业务负载特征的辨识度,较大地降低了产生对元数据进行不必要、无效的迁移的概率,有效提高了元数据吞吐量,改善高并发元数据密集型文件系统业务中元数据造成的性能瓶颈,具有较好的元数据负载均衡特性,提升了分布式存储系统的稳定性。
69、相应的,本发明还提供了与上述元数据负载均衡方法相对应的元数据负载均衡装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。