1.本发明涉及虚拟机技术领域,具体涉及一种云计算平台宿主机硬件虚拟化资源分配方法。
背景技术:2.随着企事业单位数字化转型工作的快速推进,业务系统部署在云平台中的资源需求数量也随之快速增长。将业务系统部署在云平台之前需要首先创建虚拟机(虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。),而虚拟机允许分配的硬件资源量取决于物理机(物理机是相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。)的硬件资源总量。在不创建虚拟机而直接应用物理机的情景下,一台物理机可能只能支撑一套业务系统,常造成大量硬件资源的浪费,同时物理主机也不利于进行统一管理。通过构建虚拟机的方式,一台物理机可以创建出多台虚拟机,将众多的虚拟机构成一个云主机集群,在大幅提高物理机硬件资源利用率的同时也便于管理人员对云主机进行统一管理。
3.在物理机上创建虚拟机时,需要对物理机硬件资源进行计算分配。物理机硬件资源主要包括处理器资源、内存资源与存储资源。当前常用的分配方式有两种。一种是均匀分配,即将物理机划分成多台配置一致的虚拟机。另一种是通过人工统计与计算的方式,将物理机硬件资源根据虚拟机实际需求进行分配。
4.均匀分配的方式虽然分配速度快,但是无法精细化分配物理机硬件资源,导致硬件资源浪费。例如,在分配一批待部署计算密集型业务(大部分时间在做数值计算、逻辑判断、循环等cpu占用率很高的业务称为计算密集型业务。)系统的虚拟机时,物理机的处理器资源可能提前分配完而剩余较多存储资源,这将导致硬件资源大量浪费。通过人工计算分配的方式虽然可以精细化分配物理机硬件资源,但是当物理机硬件资源量巨大且待分配的虚拟机需求数量很大时,人工计算分配方式效率低下,无法满足分配需求。
技术实现要素:5.为了解决上述问题,本发明提供一种云计算平台宿主机硬件虚拟化资源分配方法,解决了大规模物理机集群硬件资源采集与分配流程复杂、易疏漏的问题,为大规模物理机集群硬件资源采集提供了解决方案,为物理机集群硬件资源分配提供了新思路。
6.本发明采用以下技术方案:
7.一种云计算平台宿主机硬件虚拟化资源分配方法,包括以下步骤:
8.(1)采集各台物理主机的硬件资源信息,包括处理器资源信息、内存资源信息与存储资源信息;
9.(2)采集待分配虚拟机硬件需求列表;
10.(3)根据步骤(1)采集的资源总量信息与步骤(2)获取的待分配虚拟机硬件需求信息,利用穷举法计算所有潜在的资源分配方案;
11.(4)计算物理机处理器资源、内存资源与存储资源在各分配方案下的利用率;
12.(5)输出所有的潜在的物理机硬件资源分配方案与对应的处理器资源利用率、内存资源利用率与存储资源利用率。
13.各台物理机的硬件资源采集方案使用了bash shell自动化方式,避免了人工采集可能出现的疏漏。当物理机数量众多时候,该方法相比较人工方式在采集数据速度与数据完整性方面效果更加明显。步骤(1)具有采集数据全、采集数据快的特点。
14.虚拟机硬件需求列表可以通过excel导入的方式。这极大的便利了虚拟机硬件需求的收集,避免了重复劳动。一份需求excel列表可以重复使用,提高了生产力。同时提供手动输入的方式,增强需求输入方式的可拓展性,满足个性化需求的快捷输入。
15.通过步骤(1)采集的物理机硬件资源与步骤(2)的收集的需求列表,自动化的计算出所有的分配方案,相比较人工计算的方式,自动化计算分配的方式具有分配速度更快、资源利用率更高、分配方案更全面及资源分配粒度更细的特点。
16.各个分配方案下的处理器资源利用率、内存资源利用率与存储资源利用率排序后分类别组合输出,结果清晰明了,能较好提高管理人员的生产效率。
17.本发明的进一步说明,还包括一种云主机硬件资源自动化分配系统,包括物理主机硬件资源采集模块、待分配虚拟机硬件需求采集模块、资源自动化分配模块、资源利用率统计模块、信息输出模块;
18.所述的物理主机硬件资源采集模块采集各台物理主机的硬件资源信息;所述的待分配虚拟机硬件需求采集模块采集待分配虚拟机硬件需求列表;所述的资源自动化分配模块根据待分配虚拟机硬件需求列表进行资源分配;所述的资源利用率统计模块计算物理机处理器资源、内存资源与存储资源在各分配方案下的利用率;所述的信息输出模块输出所有的潜在的物理机硬件资源分配方案与对应的处理器资源利用率、内存资源利用率与存储资源利用率。
19.本发明的进一步说明,所述的物理主机的硬件资源信息使用bash shell方法进行采集。bash是一个为gnu项目编写的unix shell。bash是bourne-again shell的缩写。
20.本发明的进一步说明,所述的处理器资源信息通过访问物理机/proc/cpuinfo获取;所述的内存资源信息通过访问物理机/proc/meminfo获取;所述的存储资源信息通过访问物理机bash命令df-hl获取。
21.在cpuinfo信息中的“cpu cores”为物理机处理器核心数,该步骤主要获取物理机处理器核心数量。在meminfo信息中心的“memtotal”为物理机内存总量,该步骤主要获取物理机总内存资源量。通过访问物理机bash命令df-hl获取物理机存储资源信息,该步骤主要获取物理机存储资源量。
22.本发明的进一步说明,当待分配虚拟机类型大于5类时,所述的步骤(2)采集待分配虚拟机硬件需求列表通过excel表格导入的方式;通过excel表格导入待分配虚拟机硬件需求列表,包括以下步骤:
23.(2-1)首先将待分配虚拟机需求信息按照字段,即处理器资源数、内存资源数、存储资源数、此类别虚拟机数量,依次填写入excel表格中;
24.(2-2)将该excel表格导入待分配虚拟机硬件需求采集模块,该模块分析导入的excel表格,从中提取虚拟机硬件需求列表。提取的虚拟机硬件需求列表与步骤(1)采集的
物理机硬件资源信息共同支撑步骤(3)的硬件资源分配工作。
25.本发明的进一步说明,当待分配虚拟机类型小于等于5类时,所述的步骤(2)采集待分配虚拟机硬件需求列表通过人工输入的方式;通过人工输入待分配虚拟机硬件需求列表,包括以下步骤:
26.(2-1)进入待分配虚拟机硬件需求采集模块,依次输入处理器资源数、内存资源数、存储资源数与此类别虚拟机数量信息,待分配虚拟机硬件需求采集模块采集虚拟机硬件需求列表。此虚拟机硬件需求列表与步骤(1)采集的物理机硬件资源信息共同支撑步骤(3)的硬件资源分配工作。
27.本发明的进一步说明,步骤(3)利用穷举法,计算出所有的潜在的资源分配方案,包括以下步骤:
28.(3-1)根据步骤(1)采集到的物理机处理器资源信息、步骤(2)接收的待分配虚拟机处理器资源信息,依次按照待分配虚拟机硬件需求中的信息分配处理器资源,并记录该物理机可分配的每类虚拟机数量xi;xi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。
29.(3-2)对每台物理机执行步骤(3-1),计算出每台物理机按照待分配虚拟机处理器需求要求可分配的每类虚拟机数量;
30.(3-3)根据步骤(1)采集到的内存资源信息与步骤(2)接收的待分配虚拟机内存资源信息,依次按照待分配虚拟机硬件需求中的信息分配内存资源,并记录该物理机可分配的每类虚拟机数量yi;yi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。
31.(3-4)对每台物理机执行步骤(3-3),计算出每台物理机按照待分配虚拟机内存需求要求可分配的每类虚拟机数量;
32.(3-5)根据步骤(1)采集到的物理机存储资源信息与步骤(2)接收的待分配虚拟机存储资源信息,依次按照待分配虚拟机硬件需求中的信息分配存储资源,并记录该物理机可分配的每类虚拟机数量zi;zi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。
33.(3-6)对每台物理机执行步骤(3-5),计算出每台物理机按照待分配虚拟机存储需求要求可分配的数量;
34.(3-7)对于每类虚拟机,依次取xi、yi与zi中的最小值,此最小值即为该类虚拟机可分配的最大数量。
35.本发明的进一步说明,步骤(4)计算每台物理机在各个硬件资源分配方案下的处理器资源利用率、内存资源利用率与存储资源利用率,包括以下步骤:
36.(4-1)对于每一台物理机,基于步骤(3-1)计算出的分配数据,通过累加每类虚拟机分配方案中的处理器核心数计算出各个分配方案中物理机处理器资源利用率;处理器资源利用率计算公式如下:
[0037][0038]
其中是指i类虚拟机分配方案的处理器资源利用率;
[0039]
(4-2)对于每一台物理机,基于步骤(3-3)计算出的分配数据,通过累加每类虚拟
机分配方案中的内存分配量计算出各个分配方案中内存资源利用率;内存资源利用率计算公式如下:
[0040][0041]
其中是指i类虚拟机分配方案的内存资源利用率;
[0042]
(4-3)对于每一台物理机,基于步骤(3-5)计算出的分配数据,通过累加每类虚拟机分配方案中的存储资源计算出各个分配方案中物理机存储资源利用率;存储资源利用率计算公式如下:
[0043][0044]
其中是指i类虚拟机分配方案的存储资源利用率;
[0045]
(4-4)将步骤(4-1)、步骤(4-2)与步骤(4-3)计算出的物理机的处理器资源、内存资源与存储资源在各分配方案下的利用率进行组合,并对每台物理机的处理器资源利用率、内存资源利用率与存储资源利用率分别按照从高到低的顺序排序;得到各台物理机按照三类硬件资源排序后的分配方案列表;
[0046]
步骤(5)输出步骤(3)计算出的各类虚拟机分配方案与步骤(4)计算并排序好的各台物理机按照各类虚拟机资源需求分配后的处理器资源利用率、内存资源利用率与存储资源利用率。
[0047]
本发明的优点:
[0048]
1、解决了大规模物理机集群硬件资源采集流程复杂、易疏漏的问题,为大规模物理机集群硬件资源采集提供了解决方案,为物理机集群硬件资源信息分配提供了新思路。
[0049]
2、设计了物理机硬件资源智能分配算法,通过自动化程序将物理机硬件资源分配给虚拟机,避免了人工分配效率低的问题;极大的提高了物理机硬件资源分配效率,提高了硬件资源利用率,有效降低企业云主机集群建设成本。
[0050]
3、各个资源分配方案与对应资源利用率组合输出,结果一目了然,提高管理人员生产效率。
附图说明
[0051]
图1是本发明的结构示意图;
[0052]
图2是本发明的物理主机硬件资源采集模块流程图;
[0053]
图3是本发明的待分配虚拟机硬件需求采集模块流程图;
[0054]
图4是本发明的资源自动化分配模块流程图;
[0055]
图5是本发明的资源利用率统计模块流程图;
[0056]
图6是本发明的信息输出模块流程图。
具体实施方式
[0057]
下面结合具体实施例和附图对本发明进一步说明。
[0058]
实施例1:
[0059]
一种云计算平台宿主机硬件虚拟化资源分配方法,包括以下步骤:
[0060]
(1)采集各台物理主机的硬件资源信息,包括处理器资源信息、内存资源信息与存储资源信息;
[0061]
(2)采集待分配虚拟机硬件需求列表;
[0062]
(3)根据步骤(1)采集的资源总量信息与步骤(2)获取的待分配虚拟机硬件需求信息,利用穷举法计算所有潜在的资源分配方案;
[0063]
(4)计算物理机处理器资源、内存资源与存储资源在各分配方案下的利用率;
[0064]
(5)输出所有的潜在的物理机硬件资源分配方案与对应的处理器资源、内存资源与存储资源利用率。
[0065]
实施例2:
[0066]
该实施例与实施例1的不同之处在于:还包括一种云主机硬件资源自动化分配系统,包括物理主机硬件资源采集模块、待分配虚拟机硬件需求采集模块、资源自动化分配模块、资源利用率统计模块、信息输出模块;
[0067]
所述的物理主机硬件资源采集模块采集各台物理主机的硬件资源信息;所述的待分配虚拟机硬件需求采集模块采集待分配虚拟机硬件需求列表;所述的资源自动化分配模块获取待分配虚拟机硬件需求信息;所述的资源利用率统计模块计算物理机处理器资源、内存资源与存储资源在各分配方案下的利用率;所述的信息输出模块输出所有的潜在的物理机硬件资源分配方案与对应的处理器资源利用率、内存资源利用率与存储资源利用率。
[0068]
实施例3:
[0069]
该实施例与实施例2的不同之处在于:所述的物理主机的硬件资源信息使用bash shell方法进行采集。bash是一个为gnu项目编写的unix shell。bash是bourne-again shell的缩写。
[0070]
实施例4:
[0071]
该实施例与实施例3的不同之处在于:所述的处理器资源信息通过访问物理机/proc/cpuinfo获取;所述的内存资源信息通过通过访问物理机/proc/meminfo获取;所述的存储资源信息通过访问物理机bash命令df-hl获取。
[0072]
在cpuinfo信息中的“cpu cores”为物理机处理器核心数,该步骤主要获取物理机处理器核心数量。在meminfo信息中心的“memtotal”为物理机内存总量,该步骤主要获取物理机总内存资源量。通过访问物理机bash命令df-hl获取物理机存储资源信息,该步骤主要获取物理机存储资源量。
[0073]
实施例5:
[0074]
该实施例与实施例4的不同之处在于:当待分配虚拟机类型大于5类时,所述的步骤(2)采集待分配虚拟机硬件需求列表通过excel表格导入的方式;通过excel表格导入待分配虚拟机硬件需求列表,包括以下步骤:
[0075]
(2-1)首先将待分配虚拟机需求信息按照字段,即处理器资源数、内存资源数、存储资源数、此类别虚拟机数量,依次填写入excel表格中;
[0076]
(2-2)将该excel表格导入待分配虚拟机硬件需求采集模块,该模块分析导入的excel表格,从中提取虚拟机硬件需求列表。提取的虚拟机硬件需求列表与步骤(1)采集的物理机硬件资源信息共同支撑步骤(3)的硬件资源分配工作。
[0077]
实施例6:
[0078]
该实施例与实施例5的不同之处在于:当待分配虚拟机类型小于等于5类时,所述的步骤(2)采集待分配虚拟机硬件需求列表通过人工输入的方式;通过人工输入待分配虚拟机硬件需求列表,包括以下步骤:
[0079]
(2-1)进入待分配虚拟机硬件需求采集模块,依次输入处理器资源数、内存资源数、存储资源数与此类别虚拟机数量信息,待分配虚拟机硬件需求采集模块采集虚拟机硬件需求列表。此虚拟机硬件需求列表与步骤(1)采集的物理机硬件资源信息共同支撑步骤(3)的硬件资源分配工作。
[0080]
实施例7:
[0081]
该实施例与实施例6的不同之处在于:步骤(3)利用穷举法,计算出所有的潜在的资源分配方案,包括以下步骤:
[0082]
(3-1)根据步骤(1)采集到的物理机处理器资源信息、步骤(2)接收的待分配虚拟机处理器资源信息,依次按照待分配虚拟机硬件需求中的信息分配处理器资源,并记录该物理机可分配的每类虚拟机数量xi;xi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。例如按照处理器资源分配,第二类虚拟机可分配3台,则x2=3;
[0083]
(3-2)对每台物理机执行步骤(3-1),计算出每台物理机按照待分配虚拟机处理器需求要求可分配的每类虚拟机数量;
[0084]
(3-3)根据步骤(1)采集到的内存资源信息与步骤(2)接收的待分配虚拟机内存资源信息,依次按照待分配虚拟机硬件需求中的信息分配内存资源,并记录该物理机可分配的每类虚拟机数量yi;yi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。例如按照内存资源分配,第五类虚拟机可分配5台,则y5=5;
[0085]
(3-4)对每台物理机执行步骤(3-3),计算出每台物理机按照待分配虚拟机内存需求要求可分配的每类虚拟机数量;
[0086]
(3-5)根据步骤(1)采集到的物理机存储资源信息与步骤(2)接收的待分配虚拟机存储资源信息,依次按照待分配虚拟机硬件需求中的信息分配存储资源,并记录该物理机可分配的每类虚拟机数量zi;zi中i的取值范围是1至待分配虚拟机类别总数(该类别总数由步骤2的待分配虚拟机硬件需求采集模块收集)。例如按照存储资源分配,第三类虚拟机可分配4台,则z3=4;
[0087]
(3-6)对每台物理机执行步骤(3-5),计算出每台物理机按照待分配虚拟机存储需求要求可分配的数量;
[0088]
(3-7)对于每类虚拟机,依次取xi、yi与zi中的最小值,此最小值即为该类虚拟机可分配的最大数量。
[0089]
例如:分配某类虚拟机需要4个处理器核心、8gb内存(gb也叫吉字节,常简写为g,是一种十进制的信息计量单位。)与200gb存储。对于某个物理机,拥有12个处理器核心,32gb内存与512gb存储。将该物理机分配资源给虚拟机时,按照处理器资源分配,该物理机可以分配此类虚拟机三台;按照内存资源分配,该物理机可以分配此类虚拟机四台;按照存储资源分配,该物理机可以分配此类虚拟机两台。根据步骤(3-7),取三项的最小值,故该物
理机可以分配此类虚拟机两台。
[0090]
步骤(4)通过步骤(3)计算出的各类虚拟机资源分配方案来计算每台物理机在各个硬件资源分配方案下的处理器资源、内存资源与存储资源利用率。
[0091]
实施例8:
[0092]
该实施例与实施例7的不同之处在于:步骤(4)计算每台物理机在各个硬件资源分配方案下的处理器资源、内存资源与存储资源利用率,包括以下步骤:
[0093]
(4-1)对于每一台物理机,基于步骤(3-1)计算出的分配数据,通过累加每类虚拟机分配方案中的处理器核心数计算出各个分配方案中物理机处理器资源利用率;处理器资源利用率计算公式如下:
[0094][0095]
其中是指i类虚拟机分配方案的处理器资源利用率;
[0096]
例如:
[0097]
有a与b两类虚拟机硬件需求,a类虚拟机需要4个处理器核心、8gb内存与200gb存储。b类虚拟机需要5个处理器核心、4gb内存与100gb存储。
[0098]
待分配硬件资源的物理机为8核心、32gb内存与512gb存储。
[0099]
根据步骤(3-1)按照处理器资源分配则可分配a类虚拟机两台,b类虚拟机一台。
[0100]
则
[0101][0102]
物理机总共8个处理器核心,a类虚拟机分配方案能分配2台,占用8个处理器核心,故物理机处理器核心利用率为100%。
[0103][0104]
物理机总共8个处理器核心,b类虚拟机分配方案能分配1台,占用5个处理器核心,故物理机处理器核心利用率为62.5%。
[0105]
(4-2)对于每一台物理机,基于步骤(3-3)计算出的分配数据,通过累加每类虚拟机分配方案中的内存分配量计算出各个分配方案中内存资源利用率;内存资源利用率计算公式如下:
[0106][0107]
其中是指i类虚拟机分配方案的内存资源利用率;
[0108]
(4-3)对于每一台物理机,基于步骤(3-5)计算出的分配数据,通过累加每类虚拟机分配方案中的存储资源计算出各个分配方案中物理机存储资源利用率;存储资源利用率计算公式如下:
[0109][0110]
其中是指i类虚拟机分配方案的存储资源利用率;
[0111]
(4-4)将步骤(4-1)、步骤(4-2)与步骤(4-3)计算出的物理机的处理器资源、内存资源与存储资源在各分配方案下的利用率进行组合,并对每台物理机的处理器资源利用率、内存资源利用率与存储资源利用率分别按照从高到低的顺序排序;得到各台物理机按照三类硬件资源排序后的分配方案列表;
[0112]
步骤(5)输出步骤(3)计算出的各类虚拟机分配方案与步骤(4)计算并排序好的各台物理机按照各类虚拟机资源需求分配后的处理器资源利用率、内存资源利用率与存储资源利用率。
[0113]
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。