基于Minio的盘组划分方法、装置、介质及相关设备与流程

未命名 08-02 阅读:181 评论:0

基于minio的盘组划分方法、装置、介质及相关设备
技术领域
1.本技术涉及数据存储技术领域,尤其涉及一种基于minio的盘组划分方法、装置、介质及相关设备。


背景技术:

2.minio是开源的对象存储平台。其中,对象是对象存储系统中基本存储单元,可以是任何类型的数据,比如文本、图片、视频等等。minio将一组服务器上的多块磁盘划分成多个盘组,每个盘组称为一个set,并且,minio要求一个set中的磁盘均匀的分布在各个服务器上,每个set中磁盘的大小可由配置指定,但约束一个set中的磁盘数必须大于等于4且小于等于16。
3.minio中的每个set都是一个独立的上传域,一个对象的数据只会存储于一个set中,不会跨set分布。目前,set中磁盘的划分方式,容易使得该set中的一块磁盘故障时,故障盘下载的压力会全部转移到同set的其它磁盘上,这样可能会导致同set中的非故障盘因为压力过大而出现过载以至于无法服务,从而降低系统的稳定性。


技术实现要素:

4.本技术的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中set中磁盘的划分方式,容易使得该set中的一块磁盘故障时,故障盘下载的压力会全部转移到同set的其它磁盘上,这样可能会导致同set中的非故障盘因为压力过大而出现过载以至于无法服务,从而降低系统的稳定性的技术缺陷。
5.本技术提供了一种基于minio的盘组划分方法,所述方法包括:
6.确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数;
7.按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区;
8.将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。
9.可选地,所述按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区,包括:
10.针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。
11.可选地,所述将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,包括:
12.将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果;
13.将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序;
14.按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。
15.可选地,所述按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组,包括:
16.针对第一个服务器的首块磁盘对应的初始盘组,将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中;
17.判断所述排序结果中是否有下下个服务器;
18.若有,则将所述下下个服务器替换为所述下个服务器后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述排序结果中没有下下个服务器为止;
19.若无,则针对所述第一个服务器的下块磁盘对应的初始盘组,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断所述第一个服务器中是否有下下块磁盘;
20.若有,则将所述下下块磁盘替换为所述下块磁盘后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器中没有下下块磁盘为止;
21.若无,则停止划分操作,并得到多个目标盘组。
22.本技术还提供了一种基于minio的盘组划分装置,包括:
23.信息确定模块,用于确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数;
24.磁盘分区模块,用于按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区;
25.盘组划分模块,用于将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。
26.可选地,所述磁盘分区模块,包括:
27.磁盘分区子模块,用于针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。
28.可选地,所述盘组划分模块,包括:
29.排序模块,用于将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果;
30.初始盘组划分模块,用于将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序;
31.目标盘组划分模块,用于按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。
32.可选地,所述目标盘组划分模块,包括:
33.第一分区划分模块,用于针对第一个服务器的首块磁盘对应的初始盘组,将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘
组中;
34.服务器判断模块,用于判断所述排序结果中是否有下下个服务器;
35.第二分区划分模块,用于若有,则将所述下下个服务器替换为所述下个服务器后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述排序结果中没有下下个服务器为止;
36.第三分区划分模块,用于若无,则针对所述第一个服务器的下块磁盘对应的初始盘组,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断所述第一个服务器中是否有下下块磁盘;
37.第四分区划分模块,用于若有,则将所述下下块磁盘替换为所述下块磁盘后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器中没有下下块磁盘为止;
38.停止划分模块,用于若无,则停止划分操作,并得到多个目标盘组。
39.本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于minio的盘组划分方法的步骤。
40.本技术还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
41.所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述基于minio的盘组划分方法的步骤。
42.从以上技术方案可以看出,本技术实施例具有以下优点:
43.本技术提供的基于minio的盘组划分方法、装置、介质及相关设备,首先确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数,这样便可以按照每个服务器的磁盘数来将每个服务器中的每块磁盘进行分区,并得到每块磁盘对应的多个分区,接着,本技术可以将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据,这样可以将同盘组中一块盘故障时的下载压力从少数几块盘转移到多个分区对应的逻辑盘上,从而有效避免因为一块盘的故障导致其他盘压力增长过大而无法提供服务,进而有效提升系统的稳定性。
附图说明
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
45.图1为本技术实施例提供的一种基于minio的盘组划分方法的流程示意图;
46.图2为本技术实施例提供的目标盘组划分过程的流程示意图;
47.图3为本技术实施例提供的一种基于minio的盘组划分装置的结构示意图。
48.图4为本技术实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.minio中的每个set都是一个独立的上传域,一个对象的数据只会存储于一个set中,不会跨set分布。目前,set中磁盘的划分方式,容易使得该set中的一块磁盘故障时,故障盘下载的压力会全部转移到同set的其它磁盘上,这样可能会导致同set中的非故障盘因为压力过大而出现过载以至于无法服务,从而降低系统的稳定性。基于此,本技术提出如下技术方案,具体参加下文:
51.在一个实施例中,如图1所示,图1为本技术实施例提供的一种基于minio的盘组划分方法的流程示意图;本技术提供了一种基于minio的盘组划分方法,所述方法可以包括:
52.s110:确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数。
53.本实施例中,在对minio集群中一组服务器上的多块磁盘划分成多个目标盘组时,可以先确定目标minio集群,接着确定目标minio集群接入的多个服务器,以及每个服务器的磁盘及磁盘数,这样便可以根据每个服务器的磁盘数来为每个服务器中的磁盘进行分区。
54.可以理解的是,minio是用于存储kubernetes元数据的对象存储,是一个开源组件。kubernetes元数据也称k8s元数据,是kubernetes集群资源,是无状态负载(deployment)、有状态负载(statefulset)、网络策略(networkpolicy)、普通配置(configmap)、集群角色(clusterrole)、卷声明对象(pv)等类型资源的统称。minio集群是基于分布式技术部署的minio,用于提高minio的可靠性及稳定性。
55.其中,一个minio集群可以根据业务需求等接入多个服务器,该多个服务器组成一组服务器,每个服务器都具有相应的ip地址,且每个服务器可以根据自身需求安装一个或多个物理磁盘。在使用过程中,需要对服务器中的物理磁盘进行分区,分区形成的新的盘(分区)就叫逻辑盘(分区)。逻辑盘和物理盘不同,它不是实际存在的形态,而是利用软件把一个物理磁盘中的容量划分成若干块进行使用和管理。本技术所述的磁盘即为服务器中对物理磁盘进行分区后形成的初始的逻辑盘。
56.s120:按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区。
57.本步骤中,通过s110确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数后,本技术可以按照每个服务器的磁盘数来对每个服务器中的每块磁盘进行分区,以便得到每块磁盘对应的多个分区。
58.具体地,由于现有的set中磁盘的划分方式,容易使得该set中的一块磁盘故障时,故障盘下载的压力会全部转移到同set的其它磁盘上,这样可能会导致同set中的非故障盘因为压力过大而出现过载以至于无法服务,从而降低系统的稳定性。因此,本技术可以对目标minio集群接入的每个服务器中的每块磁盘进行分区,以便得到每块磁盘对应的多个分区。也就是说,本技术可以将服务器中的物理磁盘重新进行分区,以便划分出更多的逻辑盘,这样同一个set中便可以出现更多的磁盘,当其中一个盘故障时,故障盘的下载压力可
以转移到同set中更多的磁盘上,从而避免因为一块盘的故障导致部分盘压力增长过大而无法提供服务,继而有效提升系统的稳定性。
59.进一步地,本技术在对每个服务器中的每块磁盘进行分区时,可以按照对应的服务器中的磁盘数来进行分区。如某一个服务器中的磁盘数为12,则可以将该服务器中的每块磁盘划分为12个分区,或者划分为10个分区、6个分区等,只要保证划分后的每个分区的存储空间不要太小即可。另外,为了保证对象存储的稳定性,以及对象存储的便捷性,本技术在对磁盘进行分区后,每个分区的规格相同,进而提升盘组划分效率。
60.s130:将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。
61.本步骤中,通过s120对每个服务器中的每块磁盘进行分区,并得到每块磁盘对应的多个分区后,本技术可以将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组来存储对象数据。
62.在一种具体的实现方式中,本技术为了将目标minio集群中原本的盘组所划分的磁盘数进行扩增,可以先对目标minio集群接入的每个服务器中的每块磁盘进行分区,以便划分出更多的逻辑盘,接着,本技术可以获取预先设置的盘组划分方式,并按照该预设的盘组划分方式来将各个服务器的各块磁盘中的各个分区划分成多个目标盘组。
63.其中,预设的盘组划分方式可以是在一个set中的磁盘均匀的分布在各个服务器,且一个set中的磁盘数大于等于4小于等于16的前提下,根据目标minio集群中接入的服务器的数量、每个服务器中的每块磁盘对应的分区数,即对每个服务器中的物理磁盘再次分区后的逻辑磁盘的数量,来确定相应的划分方式,并根据该划分方式来将各个服务器的各块磁盘中的各个分区划分成多个目标盘组,这样每个目标盘组相对于原本的盘组而言,拥有了更多的磁盘(分区)。
64.上述实施例中,首先确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数,这样便可以按照每个服务器的磁盘数来将每个服务器中的每块磁盘进行分区,并得到每块磁盘对应的多个分区,接着,本技术可以将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据,这样可以将同盘组中一块盘故障时的下载压力从少数几块盘转移到多个分区对应的逻辑盘上,从而有效避免因为一块盘的故障导致其他盘压力增长过大而无法提供服务,进而有效提升系统的稳定性。
65.在一个实施例中,s120中按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区,可以包括:
66.针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。
67.本实施例中,在对每个服务器中的每块磁盘进行分区时,可以将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。举例来说,当某个服务器中的磁盘数为六个时,可以将该服务器中的每块磁盘划分成六个分区,这样一个服务器中的分区数便为36个,相当于36个磁盘,相比于原先的六个磁盘,多出了30个磁盘,这样在划分盘组时,每个服务器中可以多划分一些磁盘至相应的盘组中,以便对盘组所拥有的磁盘数进行扩充。
68.在一个实施例中,s130中将各个服务器的各块磁盘中的各个分区按照预设的盘组
划分方式划分成多个目标盘组,可以包括:
69.s131:将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果。
70.s132:将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序。
71.s133:按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。
72.本实施例中,在将各个服务器的各块磁盘中的各个分区划分成多个目标盘组时,可以先对各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,以便得到与各个服务器的各个磁盘中的各个分区对应的排序结果,如第一个服务器的第一块磁盘的第一个分区,第一个服务器的第一块磁盘的第二个分区
……
第t台服务器的第i块盘的第j个分区。
73.接着,本技术可以将排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,这样便得到与第一服务器的磁盘数对应的多个初始盘组,本技术可以根据第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序,这样便可以按照预设的目标盘组划分方式来将排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,从而得到多个目标盘组。
74.例如,当本技术将第一个服务器的第一块磁盘中的所有分区作为一个初始盘组后,为了保证一个set中的磁盘均匀的分布在各个服务器,且一个set中的磁盘数大于等于4小于等于16,本技术可以继续按照排序结果中各个服务器的顺序,依次将其他服务器中与第一个服务器的第一块磁盘中的所有分区的数量对应的分区划分至该初始盘组中。进一步地,由于本技术中每个服务器的每块磁盘的分区数量是相同的,因此在划分时,可以按照预设的目标盘组划分方式进行划分,如按照其他服务器中每块磁盘的顺序,依次将与第一个服务器的第一块磁盘中的所有分区的数量对应的分区划分至各个初始盘组中,或者按照其他服务器中每块磁盘对应的每个分区的顺序,依次将与第一个服务器的第一块磁盘中的所有分区的数量对应的分区划分至各个初始盘组中,或者是其他可以实现将一个set中的磁盘均匀的分布在各个服务器,且一个set中的磁盘数大于等于4小于等于16的划分方式,均为本技术的保护范围。
75.在一个实施例中,如图2所示,图2为本技术实施例提供的目标盘组划分过程的流程示意图;s133中按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组,可以包括:
76.s1331:针对第一个服务器的首块磁盘对应的初始盘组,将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中。
77.s1332:判断排序结果中是否有下下个服务器;若有,则执行s1333;若无,则执行s1334。
78.s1333:将下下个服务器替换为下个服务器后,返回执行s1331中将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤以及后续步骤,直到排序结果中没有下下个服务器为止。
79.s1334:若无,则针对第一个服务器的下块磁盘对应的初始盘组,返回执行s1331中
将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤以及后续步骤,直到第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断第一个服务器中是否有下下块磁盘;若有,则执行s1335;若无,则执行s1336。
80.s1335:将下下块磁盘替换为下块磁盘后,返回执行s1331中将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤以及后续步骤,直到第一个服务器中没有下下块磁盘为止。
81.s1336:停止划分操作,并得到多个目标盘组。
82.本实施例中,如图2所示,在划分目标盘组时,可以从第一服务器的首块磁盘对应的初始盘组开始,将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中。举例来说,假设目标minio集群中服务器的个数为3,每个服务器的盘数为3,所有盘的规格相同,将每块盘划分为3个分区,所有分区的规格相同。此时将服务器标记为m,将磁盘标记为d,将分区标记为p,则第一个服务器为m1,第一块磁盘为d1,第一个分区为p1,第一服务器的首块磁盘对应的初始盘组包括《m1,d1,p1》,《m1,d1,p2》,《m1,d1,p3》。
83.接着,本技术可以将排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中,此时初始盘组包括《m1,d1,p1》,《m1,d1,p2》,《m1,d1,p3》,《m2,d2,p1》,《m2,d3,p1》,《m2,d1,p1》,接着本技术再判断排序结果中是否有下下个服务器,若有,则继续将下下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中,此时初始盘组包括《m1,d1,p1》,《m1,d1,p2》,《m1,d1,p3》,《m2,d2,p1》,《m2,d3,p1》,《m2,d1,p1》,《m3,d3,p1》,《m3,d1,p1》,《m3,d2,p1》,由于目标minio集群中服务器的个数为3,因此,第一个初始盘组划分完毕,并得到目标盘组,其他初始盘组也按照该划分方式依次进行划分。
84.由上述划分过程可见,本技术目标盘组中的磁盘数包括《m1,d1,p1》,《m1,d1,p2》,《m1,d1,p3》,《m2,d2,p1》,《m2,d3,p1》,《m2,d1,p1》,《m3,d3,p1》,《m3,d1,p1》,《m3,d2,p1》,若按照原本的划分方式,该目标盘组中的磁盘数包括《m1,d1》,《m2,d1》,《m3,d1》,此时m1中的d1盘故障后,故障盘的压力则只能转移到《m2,d1》,《m3,d1》中,而按照本技术的划分方式,此时m1中的d1盘的p1故障后,故障盘的压力则转移到剩余的《m2,d2,p1》,《m2,d3,p1》,《m2,d1,p1》,《m3,d3,p1》,《m3,d1,p1》,《m3,d2,p1》中。换句话说,当服务器的个数为m,每个服务器的盘数为n,优化之前,如果一块盘故障,故障盘的下载压力会被转移到m-1块盘上,而优化后,当一个盘故障时,故障盘的下载压力会被转移到(m-1)*n块盘上,从而避免了因为一块盘的故障导致部分盘压力增长过大而无法提供服务的现象发生,并有效提升系统的稳定性。
85.进一步地,针对上述目标盘组的划分过程,本技术可以通过如下代码实现:
[0086][0087][0088]
综上,第1台机器的第i块盘和第j台机器所有盘的第i个分区在一个set内,这样当一个盘故障时,故障盘的下载压力会被转移到(m-1)*n块盘上,而不是原先的m-1块盘上。
[0089]
下面对本技术实施例提供的基于minio的盘组划分装置进行描述,下文描述的基于minio的盘组划分装置与上文描述的基于minio的盘组划分方法可相互对应参照。
[0090]
在一个实施例中,如图3所示,图3为本技术实施例提供的一种基于minio的盘组划分装置的结构示意图,本技术还提供了一种基于minio的盘组划分装置,包括信息确定模块210、磁盘分区模块220、盘组划分模块230,具体包括如下:
[0091]
信息确定模块210,用于确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数。
[0092]
磁盘分区模块220,用于按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区。
[0093]
盘组划分模块230,用于将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。
[0094]
上述实施例中,首先确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数,这样便可以按照每个服务器的磁盘数来将每个服务器中的每块磁盘进行分区,并得到每块磁盘对应的多个分区,接着,本技术可以将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据,这样可以将同盘组中一块盘故障时的下载压力从少数几块盘转移到多个分区对应的逻辑盘上,从而有效避免因为一块盘的故障导致其他盘压力增长过大而无法提供服务,进而有效提升系统的稳定性。
[0095]
在一个实施例中,所述磁盘分区模块,包括:
[0096]
磁盘分区子模块,用于针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。
[0097]
在一个实施例中,所述盘组划分模块,包括:
[0098]
排序模块,用于将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分
区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果;
[0099]
初始盘组划分模块,用于将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序;
[0100]
目标盘组划分模块,用于按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。
[0101]
在一个实施例中,所述目标盘组划分模块,包括:
[0102]
第一分区划分模块,用于针对第一个服务器的首块磁盘对应的初始盘组,将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中;
[0103]
服务器判断模块,用于判断所述排序结果中是否有下下个服务器;
[0104]
第二分区划分模块,用于若有,则将所述下下个服务器替换为所述下个服务器后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述排序结果中没有下下个服务器为止;
[0105]
第三分区划分模块,用于若无,则针对所述第一个服务器的下块磁盘对应的初始盘组,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断所述第一个服务器中是否有下下块磁盘;
[0106]
第四分区划分模块,用于若有,则将所述下下块磁盘替换为所述下块磁盘后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器中没有下下块磁盘为止;
[0107]
停止划分模块,用于若无,则停止划分操作,并得到多个目标盘组。
[0108]
在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于minio的盘组划分方法的步骤。
[0109]
在一个实施例中,本技术还提供了一种计算机设备,包括:一个或多个处理器,以及存储器。
[0110]
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述基于minio的盘组划分方法的步骤。
[0111]
示意性地,如图4所示,图4为本技术实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图4,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的基于minio的盘组划分方法。
[0112]
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(i/o)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如windows server tm、mac os xtm、unix tm、linux tm、free bsdtm或类似。
[0113]
本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0114]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0115]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0116]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种基于minio的盘组划分方法,其特征在于,所述方法包括:确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数;按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区;将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。2.根据权利要求1所述的基于minio的盘组划分方法,其特征在于,所述按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,得到每块磁盘对应的多个分区,包括:针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。3.根据权利要求1所述的基于minio的盘组划分方法,其特征在于,所述将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,包括:将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果;将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序;按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。4.根据权利要求3所述的基于minio的盘组划分方法,其特征在于,所述按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组,包括:针对第一个服务器的首块磁盘对应的初始盘组,将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中;判断所述排序结果中是否有下下个服务器;若有,则将所述下下个服务器替换为所述下个服务器后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述排序结果中没有下下个服务器为止;若无,则针对所述第一个服务器的下块磁盘对应的初始盘组,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断所述第一个服务器中是否有下下块磁盘;若有,则将所述下下块磁盘替换为所述下块磁盘后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器中没有下下块磁盘为止;若无,则停止划分操作,并得到多个目标盘组。5.一种基于minio的盘组划分装置,其特征在于,包括:信息确定模块,用于确定目标minio集群接入的多个服务器、每个服务器的磁盘及磁盘数;磁盘分区模块,用于按照每个服务器的磁盘数将每个服务器中的每块磁盘进行分区,
得到每块磁盘对应的多个分区;盘组划分模块,用于将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据。6.根据权利要求5所述的基于minio的盘组划分装置,其特征在于,所述磁盘分区模块,包括:磁盘分区子模块,用于针对每个服务器中的每块磁盘,将该磁盘的磁盘空间划分成与该服务器的磁盘数一致的多个分区。7.根据权利要求5所述的基于minio的盘组划分装置,其特征在于,所述盘组划分模块,包括:排序模块,用于将各个服务器、各个服务器的各块磁盘以及各个磁盘中的各个分区进行排序,得到与各个服务器的各个磁盘中的各个分区对应的排序结果;初始盘组划分模块,用于将所述排序结果中第一个服务器的每块磁盘中的所有分区分别作为一个初始盘组,并根据所述第一个服务器的各块磁盘的顺序确定各个初始盘组的顺序;目标盘组划分模块,用于按照预设的目标盘组划分方式将所述排序结果中其他服务器的每块磁盘中的各个分区依次划分至各个初始盘组中,得到多个目标盘组。8.根据权利要求7所述的基于minio的盘组划分装置,其特征在于,所述目标盘组划分模块,包括:第一分区划分模块,用于针对第一个服务器的首块磁盘对应的初始盘组,将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中;服务器判断模块,用于判断所述排序结果中是否有下下个服务器;第二分区划分模块,用于若有,则将所述下下个服务器替换为所述下个服务器后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述排序结果中没有下下个服务器为止;第三分区划分模块,用于若无,则针对所述第一个服务器的下块磁盘对应的初始盘组,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器的下块磁盘对应的初始盘组划分完毕后,判断所述第一个服务器中是否有下下块磁盘;第四分区划分模块,用于若有,则将所述下下块磁盘替换为所述下块磁盘后,返回执行将所述排序结果中下个服务器的每块磁盘中与该初始盘组的顺序相同的分区均划分至该初始盘组中的步骤,直到所述第一个服务器中没有下下块磁盘为止;停止划分模块,用于若无,则停止划分操作,并得到多个目标盘组。9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至4中任一项所述基于minio的盘组划分方法的步骤。10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至4中任一项所述基于minio的盘组划分方法的步骤。

技术总结
本申请提供的基于Minio的盘组划分方法、装置、介质及相关设备,首先确定目标Minio集群接入的多个服务器、每个服务器的磁盘及磁盘数,这样便可以按照每个服务器的磁盘数来将每个服务器中的每块磁盘进行分区,并得到每块磁盘对应的多个分区,接着,本申请可以将各个服务器的各块磁盘中的各个分区按照预设的盘组划分方式划分成多个目标盘组,并通过各个目标盘组存储对象数据,这样可以将同盘组中一块盘故障时的下载压力从少数几块盘转移到多个分区对应的逻辑盘上,从而有效避免因为一块盘的故障导致其他盘压力增长过大而无法提供服务,进而有效提升系统的稳定性。进而有效提升系统的稳定性。进而有效提升系统的稳定性。


技术研发人员:胡江峰
受保护的技术使用者:广州文远知行科技有限公司
技术研发日:2023.04.28
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐