虚拟机调度方法及装置与流程

文档序号:32438841发布日期:2022-12-06 20:33阅读:49来源:国知局
虚拟机调度方法及装置与流程

1.本发明涉及计算机技术领域,尤其涉及一种虚拟机调度方法及装置。


背景技术:

2.目前,云计算已广泛渗透和应用于各个行业。云计算的显著特征之一是计算、存储和网络资源的虚拟化。通过虚拟化技术,多个业务系统(对应虚拟机)可以运行在同一台物理服务器上,虚拟机可以部署和运行在宿主机集群内的任意宿主机上并可自动迁移,用户无感知。
3.根据虚拟机的不同资源需求,将其合理分布到宿主机集群内的各个宿主机上。并且根据各个宿主机的资源使用情况,对虚拟机进行动态调度迁移,可以大大提高数据中心的资源利用率,显著降低使用云计算服务客户的资源拥有成本。因此,合理调度虚拟机尤为重要。
4.现有的虚拟机调度方法主要是将虚拟机调度到cpu(central processing unit,中央处理器)剩余量最多或剩余内存最多的宿主机节点上,或综合剩余cpu和剩余内存加权平均的综合指标计算后的剩余资源最多的宿主机节点上。
5.但是,仅以cpu剩余量进行排序选择最空闲的宿主机节点时,有可能选择到的宿主机的内存剩余量很少,导致本次虚拟机调度完成后宿主机的剩余内存低于安全冗余值,而无法作为下一次调度的目的宿主机节点,从而造成cpu资源无法得到充分利用。同理,仅以内存剩余量进行排序计算也会导致部分宿主机的内存资源无法充分利用。
6.即使采用cpu剩余量和剩余内存加权平均的综合指标来排序,对于cpu剩余量与剩余内存都为50%的宿主机和cpu剩余量为75%而剩余内存为25%的宿主机,或者类似的情况,这种调度方法无法进行区分,同样也会导致部分宿主机的内存资源或cpu资源无法充分利用,造成数据中心整体的资源利用效率低。


技术实现要素:

7.本发明提供一种虚拟机调度方法及装置,用以解决现有技术中对虚拟机进行调度时,存在部分宿主机节点的内存资源或cpu资源无法充分利用,造成整体宿主机节点的资源利用效率低的缺陷,实现提高宿主机的cpu和内存资源的均衡分配程度,提高数据中心整体的资源利用效率。
8.本发明提供一种虚拟机调度方法,包括:
9.计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;
10.计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;
11.计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总
数量和总内存容量;
12.根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
13.根据本发明提供的一种虚拟机调度方法,根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:
14.若所述待调度虚拟机对应的第一比值小于所述第二比值,则从所述宿主机集群中选择所述第四比值最小的宿主机作为所述目标宿主机。
15.根据本发明提供的一种虚拟机调度方法,根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:
16.若所述待调度虚拟机对应的第一比值大于所述第二比值,则从所述宿主机集群中选择所述第四比值最大的宿主机作为所述目标宿主机。
17.根据本发明提供的一种虚拟机调度方法,根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:
18.若所述待调度虚拟机对应的第一比值等于所述第二比值,则从所述宿主机集群中选择所述第四比值与所述第一比值之间的差值的绝对值最小的宿主机作为所述目标宿主机。
19.根据本发明提供的一种虚拟机调度方法,根据所述第一比值和第四比值,以及第三比值,从所述宿主机集群中选择目标宿主机,包括:
20.将每个宿主机对应的第四比值和第三比值相减后求绝对值;
21.将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较;
22.根据每个宿主机对应的绝对值结果和比较结果,从所述宿主机集群中选择所述目标宿主机。
23.根据本发明提供的一种虚拟机调度方法,所述将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较,根据每个宿主机对应的绝对值结果和比较结果,从所述宿主机集群中选择所述目标宿主机,包括:
24.按照每个宿主机对应的绝对值结果从大到小的顺序,对所述宿主机集群中的所有宿主机进行排序;
25.按照所述排序依次将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较,直到比较结果满足预设条件;
26.将所述比较结果满足预设条件的宿主机作为所述目标宿主机;
27.其中,所述预设条件包括所述第四比值大于第三比值,且所述第一比值大于所述第三比值;或者所述第四比值比小于第三比值,且所述第一比值小于所述第三比值。
28.根据本发明提供的一种虚拟机调度方法,在所述计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值之前,还包括:
29.计算每个宿主机的cpu核的总数量与剩余cpu核百分比之间的乘积,将乘积结果作为每个宿主机的剩余cpu核的数量。
30.本发明还提供一种虚拟机调度装置,包括:
31.第一计算模块,用于计算待调度虚拟机所需的cpu核的总数量和总内存容量之间
的第一比值;
32.第二计算模块,用于计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;
33.第三计算模块,用于计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;
34.调度模块,用于根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
35.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述虚拟机调度方法的步骤。
36.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述虚拟机调度方法的步骤。
37.本发明提供的虚拟机调度方法及装置,通过联合用于表征待调度虚拟机的资源需求不平衡度的第一比值、用于表征每个宿主机的剩余资源不平衡度的第四比值,以及用于表征宿主机集群整体的资源分布情况的第二比值,或用于表征每个宿主机的资源分布情况的第三比值,从宿主机集群中选择最优的目标宿主机,综合考虑了待调度虚拟机的资源需求不平衡度和每个宿主机的剩余资源不平衡度,以及资源需求不平衡度和剩余资源不平衡度之间的匹配程度,可以有效提高宿主机的cpu资源和内存资源均衡的程度,进而提高数据中心整体的资源利用效率。
附图说明
38.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1是本发明提供的虚拟机调度方法的流程示意图;
40.图2是本发明提供的虚拟机调度装置的结构示意图;
41.图3是本发明提供的电子设备的结构示意图。
具体实施方式
42.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.下面结合图1描述本发明的虚拟机调度方法,该方法包括:步骤101,计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;
44.其中,待调度虚拟机为云计算中新创建的需要进行部署的虚拟机或根据宿主机的
负载情况需要动态迁移的虚拟机。本实施例对此不进行具体地限定。
45.需要动态迁移的虚拟机为,在对宿主机集群中各宿主机的资源占用情况进行监测时,存在任一宿主机的资源占用率超出了设定阈值时,需要对该宿主机上进行迁移的部分虚拟机。
46.其中,计算第一比值的公式为:
47.rv=cv/mv;
48.其中,rv为待调度虚拟机对应的第一比值,可以将第一比值命名为虚拟机的资源需求比;cv和mv分别为待调度虚拟机的cpu核的总数量和总内存容量。
49.本实施例通过计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的比值,可以表征待调度虚拟机对cpu资源和内存资源需求量之间的不同。
50.步骤102,计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;
51.其中,计算第二比值的公式为:
[0052][0053]
其中,ra为宿主机集群对应的第二比值,可以将第二比值命名为平均资源比,用于表征宿主机集群整个的资源分布情况;c
hi
为宿主机集群中第i个宿主机的cpu核的总数量,m
hi
为第i个宿主机的总内存容量,n为宿主机集群中所有宿主机的总数量。
[0054]
其中,计算第三比值的公式为:
[0055]rhi
=c
hi
/m
hi

[0056]
其中,r
hi
为第i宿主机对应的第三比值,可以将第三比值称为宿主机的总资源比,用于表征每个宿主机的资源分布情况。
[0057]
步骤103,计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;
[0058]
具体地,在对待调度虚拟机进行调度之前,需要根据待调度虚拟机的配置,如cpu核的数量和内存容量,以及硬件需求,从宿主机集群中筛选可以满足待调度虚拟机需求的宿主机形成新的宿主机集群。
[0059]
可选地,筛选时为保证其已承载的虚拟机可能的资源扩张需求,会考虑剩余资源的安全冗余。
[0060]
可选地,筛选的宿主机至少满足每个宿主机的剩余cpu核的数量和剩余内存容量分别大于待调度虚拟机所需的cpu核的总数量和总内存容量。
[0061]
其中,宿主机的剩余内存容量可以通过将宿主机的总内存容量减去宿主机中被占用内存容量和预留安全冗余容量获取。
[0062]
同理,宿主机的剩余cpu核的数量也可以按照上述方式计算获取。
[0063]
本实施例通过每个宿主机的剩余cpu核的数量与剩余内存容量之间的比值,可以表征每个宿主机的剩余cpu资源与剩余内存资源之间的不同,和剩余资源分布不平衡程度。
[0064]
步骤104,根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主
机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
[0065]
其中,目标宿主机为从宿主机集群中选择的最合适的宿主机。
[0066]
通常宿主机集群中各宿主机的配置可能相同也可能不同。如部分宿主机的配置相同或相似,而部分宿主的配置存在较大的差异。
[0067]
在宿主机集群中各宿主机的配置差别不大时,各宿主机的cpu核的总数量与总内存容量之间的第三比值差别不大,可以直接根据第一比值、第二比值和第四比值,从所述宿主机集群中选择目标宿主机。
[0068]
可选地,将待调度虚拟机对应的第一比值与宿主机集群对应的第二比值进行比较,根据比较结果,确定待调度虚拟机的资源需求比与宿主机集群的平均资源比之间的关系。根据待调度虚拟机的资源需求比与宿主机集群的平均资源比之间的关系选择相应的第四比值对应的宿主机,以使宿主机集群中各宿主机的第四比值逐渐趋近于第二比值,进而提高宿主机集群中各宿主机的cpu资源和内存资源的均衡分配的程度。
[0069]
在宿主机集群中各宿主机的配置差别较大时,由于各宿主机的cpu核的总数量与总内存容量之间的第三比值存在较大的差别,需要将待调度虚拟机对应的第一比值与每个宿主机的第三比值进行一一比较,和将每个宿主机的第三比值和第四比值进行一一比较,以选择合适的目标宿主机。
[0070]
可选地,通过将每个宿主机的第三比值和第四比值进行一一比较,可以表征每个宿主机使用资源的不平衡程度。
[0071]
将待调度虚拟机对应的第一比值与每个宿主机的第三比值进行一一比较,可以表征待调度虚拟机所需资源比与每个宿主机的剩余资源比之间的关联关系。
[0072]
通过待调度虚拟机所需资源比与每个宿主机的剩余资源比之间的关联关系,以及每个宿主机使用资源的不平衡程度,从宿主机集群中选择目标宿主机,以逐渐缓解每个宿主机的使用资源的不平衡程度。
[0073]
现有技术中对宿主机集群中各宿主机的剩余cpu资源、剩余内存资源或剩余cpu资源和剩余内存资源加权平均的结果相关的空闲度指标进行排序后,从中选择最空闲的宿主机。但该方法本质上还是依赖于宿主机的空闲度,而无法兼顾cpu和内存资源使用不平衡的因素。
[0074]
而本实施例中通过引入用于表征待调度虚拟机的资源需求不平衡度的第一比值和用于表征每个宿主机的剩余资源不平衡度的第四比值,并将这两个比值的匹配度作为选择目标宿主机的重要依据,可使虚拟机调度到最合适的宿主机上,以使宿主机的cpu和内存资源使用更加均衡,并最终提高数据中心整体的资源利用效率。
[0075]
本实施例联合用于表征待调度虚拟机的资源需求不平衡度的第一比值、用于表征每个宿主机的剩余资源不平衡度的第四比值,以及用于表征宿主机集群整体的资源分布情况的第二比值,或用于表征每个宿主机的资源分布情况的第三比值,从宿主机集群中选择最优的目标宿主机,综合考虑了待调度虚拟机的资源需求不平衡度和每个宿主机的剩余资源不平衡度,以及资源需求不平衡度和剩余资源不平衡度之间的匹配程度,可以有效提高宿主机的cpu资源和内存资源均衡的程度,进而提高数据中心整体的资源利用效率。
[0076]
在上述实施例的基础上,本实施中根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:若所述待调度虚拟机对应的第一比值小于所
述第二比值,则从所述宿主机集群中选择所述第四比值最小的宿主机作为所述目标宿主机。
[0077]
具体地,当待调度虚拟机对应的第一比值小于所述第二比值时,则表明待调度虚拟机所需的cpu核的总数量相对于所需总内存容量较小,则可以将待调度虚拟机调度到剩余cpu核的数量与剩余内存容量之间的比值最小的宿主机上,以使完成调度后的宿主机的剩余cpu核的数量与剩余内存容量之间的比值更加趋近于第二比值。
[0078]
在上述实施例的基础上,本实施例中根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:若所述待调度虚拟机对应的第一比值大于所述第二比值,则从所述宿主机集群中选择所述第四比值最大的宿主机作为所述目标宿主机。
[0079]
具体地,当待调度虚拟机对应的第一比值大于第二比值时,则表明待调度虚拟机所需的cpu核的总数量相对于所需总内存容量较大,则可以优先将待调度虚拟机调度到剩余cpu核的数量与剩余内存容量之间的比值最大的宿主机上,以使完成调度后的宿主机的剩余cpu核的数量与剩余内存容量之间的比值更加趋近于第二比值。
[0080]
本实施例中可以将cpu需求更高的待调度虚拟机调度到cpu剩余量更多的宿主机节点上,从而使宿主机两种资源的负载趋于均衡。
[0081]
在上述实施例的基础上,本实施例中根据所述第一比值和第四比值,以及第二比值,从所述宿主机集群中选择目标宿主机,包括:若所述待调度虚拟机对应的第一比值等于所述第二比值,则从所述宿主机集群中选择所述第四比值与所述第一比值之间的差值的绝对值最小的宿主机作为所述目标宿主机。
[0082]
具体地,当待调度虚拟机对应的第一比值等于第二比值时,则表明待调度虚拟机所需的cpu核的总数量相对于所需总内存容量比较均衡,则可以将待调度虚拟机调度到剩余cpu核的数量与剩余内存容量之间的比值最接近的宿主机上,使完成调度后的宿主机的剩余cpu核的数量与剩余内存容量之间的比值依然趋近于第二比值。
[0083]
本实例以第二比值为参考,以将待调度虚拟机调度到合适的宿主机上,以使调度后的宿主机的剩余cpu核的数量与剩余内存容量之间的比值趋近于第二比值,从而提高宿主机的cpu资源和内存资源的均衡分配的程度。
[0084]
在上述实施例的基础上,本实施例中根据所述第一比值和第四比值,以及第三比值,从所述宿主机集群中选择目标宿主机,包括:将每个宿主机对应的第四比值和第三比值相减后求绝对值;将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较;根据每个宿主机对应的绝对值结果和比较结果,从所述宿主机集群中选择目标宿主机。
[0085]
具体地,在集群内各宿主机的配置差别较大的情况,可以计算每个宿主机的每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的比值,并通过相应的调度方法,为待调度虚拟机选择最优的目标宿主机。
[0086]
可选地,选择最优的目标宿主机的步骤可以为,首先,计算每个宿主机对应的第四比值r
ri
和第三比值r
hi
的差值后求绝对值,即|r
ri-r
hi
|。
[0087]
其中,|r
ri-r
hi
|用于表征每个宿主机使用资源的不平衡程度。
[0088]
然后,将每个宿主机对应的第四比值r
ri
与第三比值r
hi
进行比较,以及将所述每个
宿主机对应的第三比值r
hi
与所述待调度虚拟机对应的第一比值rv进行比较,从宿主机集群中选择比较结果满足预设条件的宿主机,并从选择的宿主机中进一步选择|r
ri-r
hi
|值最大的宿主机作为目标宿主机;
[0089]
或,根据|r
ri-r
hi
|的值对宿主机集群中各宿主机进行排序,按照排序顺序从中选择排序最靠前且比较结果满足预设条件的宿主机作为目标宿主机。本实例不对此作具体地限定。
[0090]
本实施例中采用|r
ri-r
hi
|表征每个宿主机使用资源的不平衡程度,优先选择使用资源的不平衡程度最大,且比较结果满足预设条件的宿主机,以使调度后的宿主机的使用资源逐渐趋于平衡。
[0091]
在上述实施例的基础上,本实施例中所述将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较,根据每个宿主机对应的绝对值结果和比较结果,从所述宿主机集群中选择目标宿主机,包括:按照每个宿主机对应的绝对值结果从大到小的顺序,对所述宿主机集群中的所有宿主机进行排序;按照所述排序依次将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较,直到比较结果满足预设条件;将所述比较结果满足预设条件的宿主机作为目标宿主机;其中,所述预设条件包括所述第四比值大于第三比值,且所述第一比值大于所述第三比值;或者所述第四比值比小于第三比值,且所述第一比值小于所述第三比值。
[0092]
具体地,按照每个宿主机的排序,依次判断宿主机集群中是存在满足预设条件r
ri
>r
hi
且rv>r
hi
,或r
ri
<r
hi
且rv<r
hi
的宿主机,若存在,则停止判断,将该宿主机作为目标宿主机。
[0093]
其中,r
ri
>r
hi
表征第i个宿主机的剩余cpu核的数量与剩余内存容量之间的比值大于cpu核的总数量与总内存容量之间的比值,表明剩余资源比大;rv>r
hi
表征待调度虚拟机所需的cpu核的总数量和总内存容量之间的比值大于第i个宿主机的cpu核的总数量与总内存容量之间的比值,表征待调度虚拟机所需的资源比大。当r
ri
>r
hi
且rv>r
hi
时,待调度虚拟机所需资源比与第i个宿主机的剩余资源比均比较大(待调度虚拟机所需的cpu核的总数量与第i个宿主机的剩余cpu核的数量均比较大),表明待调度虚拟机所需资源比与第i个宿主机的剩余资源比相匹配。此时,优先选择使用资源的不平衡程度最大,即|r
ri-r
hi
|最大的宿主机,将待调度虚拟机调度至该宿主机上。
[0094]
其中,r
ri
<r
hi
表征第i个宿主机的剩余cpu核的数量与剩余内存容量之间的比值小于cpu核的总数量与总内存容量之间的比值,表明剩余资源比小;rv<r
hi
表征待调度虚拟机所需的cpu核的总数量和总内存容量之间的比值小于第i个宿主机的cpu核的总数量与总内存容量之间的比值,表征待调度虚拟机所需的资源比小。当r
ri
<r
hi
且rv<r
hi
时,待调度虚拟机所需资源比与第i个宿主机的剩余资源比均比较小(待调度虚拟机所需的总内存容量与第i个宿主机的剩余内存容量均比较大),表明待调度虚拟机所需资源比与第i个宿主机的剩余资源比相匹配。此时,优先选择使用资源的不平衡程度最大,即|r
ri-r
hi
|最大的宿主机,将待调度虚拟机调度至该宿主机上。
[0095]
另外,若宿主机集群中不存在满足预设条件的宿主机,则从宿主机集群中选择剩余内存容量最大、剩余cpu核的数量最多或剩余内存容量最大和剩余cpu核的数量构成的综合指标值最大的宿主机作为目标宿主机。
[0096]
在上述各实施例的基础上,本实施例中在所述计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值之前,还包括:计算每个宿主机的cpu核的总数量与剩余cpu核百分比之间的乘积,将乘积结果作为每个宿主机的剩余cpu核的数量。
[0097]
其中,计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值的公式为:
[0098]rri
=(c
hi
×
p
ri
)/m
ri

[0099]
其中,r
ri
为第i个宿主机的第四比值,c
hi
、p
ri
和m
ri
分别为第i个宿主机的cpu核的总数量、剩余cpu核百分比和剩余内存容量。
[0100]
下面对本发明提供的虚拟机调度装置进行描述,下文描述的虚拟机调度装置与上文描述的虚拟机调度方法可相互对应参照。
[0101]
如图2所示,本实施例提供一种虚拟机调度装置,该装置包括第一计算模块201、第二计算模块202、第三计算模块203和调度模块204,其中:
[0102]
第一计算模块201用于计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;
[0103]
其中,待调度虚拟机为云计算中新创建的需要进行部署的虚拟机或根据宿主机的负载情况需要动态迁移的虚拟机。本实施例对此不进行具体地限定。
[0104]
需要动态迁移的虚拟机为,在对宿主机集群中各宿主机的资源占用情况进行监测时,存在任一宿主机的资源占用率超出了设定阈值时,需要对该宿主机上进行迁移的部分虚拟机。
[0105]
其中,计算第一比值的公式为:
[0106]rv
=cv/mv;
[0107]
其中,rv为待调度虚拟机对应的第一比值,可以将第一比值命名为虚拟机的资源需求比;cv和mv分别为待调度虚拟机的cpu核的总数量和总内存容量。
[0108]
本实施例通过计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的比值,可以表征待调度虚拟机对cpu资源和内存资源需求量之间的不同。
[0109]
第二计算模块202用于计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;
[0110]
其中,计算第二比值的公式为:
[0111][0112]
其中,ra为宿主机集群对应的第二比值,可以将第二比值命名为平均资源比,用于表征宿主机集群整个的资源分布情况;c
hi
为宿主机集群中第i个宿主机的cpu核的总数量,m
hi
为第i个宿主机的总内存容量,n为宿主机集群中所有宿主机的总数量。
[0113]
其中,计算第三比值的公式为:
[0114]rhi
=c
hi
/m
hi

[0115]
其中,r
hi
为第i宿主机对应的第三比值,可以将第三比值称为宿主机的总资源比,用于表征每个宿主机的资源分布情况。
[0116]
第三计算模块203用于计算每个宿主机的剩余cpu核的数量与剩余内存容量之间
的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;
[0117]
具体地,在对待调度虚拟机进行调度之前,需要根据待调度虚拟机的配置,如cpu核的数量和内存容量,以及硬件需求,从宿主机集群中筛选可以满足待调度虚拟机需求的宿主机形成新的宿主机集群。
[0118]
可选地,筛选时为保证其已承载的虚拟机可能的资源扩张需求,会考虑剩余资源的安全冗余。
[0119]
可选地,筛选的宿主机至少满足每个宿主机的剩余cpu核的数量和剩余内存容量分别大于待调度虚拟机所需的cpu核的总数量和总内存容量。
[0120]
其中,宿主机的剩余内存容量可以通过将宿主机的总内存容量减去宿主机中被占用内存容量和预留安全冗余容量获取。
[0121]
同理,宿主机的剩余cpu核的数量也可以按照上述方式计算获取。
[0122]
本实施例通过每个宿主机的剩余cpu核的数量与剩余内存容量之间的比值,可以表征每个宿主机的剩余cpu资源与剩余内存资源之间的不同,和剩余资源分布不平衡程度。
[0123]
调度模块204用于根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
[0124]
其中,目标宿主机为从宿主机集群中选择的最合适的宿主机。
[0125]
通常宿主机集群中各宿主机的配置可能相同也可能不同。如部分宿主机的配置相同或相似,而部分宿主的配置存在较大的差异。
[0126]
在宿主机集群中各宿主机的配置差别不大时,各宿主机的cpu核的总数量与总内存容量之间的第三比值差别不大,可以直接根据第一比值、第二比值和第四比值,从所述宿主机集群中选择目标宿主机。
[0127]
可选地,将待调度虚拟机对应的第一比值与宿主机集群对应的第二比值进行比较,根据比较结果,确定待调度虚拟机的资源需求比与宿主机集群的平均资源比之间的关系。根据待调度虚拟机的资源需求比与宿主机集群的平均资源比之间的关系选择相应的第四比值对应的宿主机,以使宿主机集群中各宿主机的第四比值逐渐趋近于第二比值,进而提高宿主机集群中各宿主机的cpu资源和内存资源的均衡分配的程度。
[0128]
在宿主机集群中各宿主机的配置差别较大时,由于各宿主机的cpu核的总数量与总内存容量之间的第三比值存在较大的差别,需要将待调度虚拟机对应的第一比值与每个宿主机的第三比值进行一一比较,和将每个宿主机的第三比值和第四比值进行一一比较,以选择合适的目标宿主机。
[0129]
可选地,通过将每个宿主机的第三比值和第四比值进行一一比较,可以表征每个宿主机使用资源的不平衡程度。
[0130]
将待调度虚拟机对应的第一比值与每个宿主机的第三比值进行一一比较,可以表征待调度虚拟机所需资源比与每个宿主机的剩余资源比之间的关联关系。
[0131]
通过待调度虚拟机所需资源比与每个宿主机的剩余资源比之间的关联关系,以及每个宿主机使用资源的不平衡程度,从宿主机集群中选择目标宿主机,以逐渐缓解每个宿主机的使用资源的不平衡程度。
[0132]
现有技术中对宿主机集群中各宿主机的剩余cpu资源、剩余内存资源或剩余cpu资
源和剩余内存资源加权平均的结果相关的空闲度指标进行排序后,从中选择最空闲的宿主机。但该方法本质上还是依赖于宿主机的空闲度,而无法兼顾cpu和内存资源使用不平衡的因素。
[0133]
而本实施例中通过引入用于表征待调度虚拟机的资源需求不平衡度的第一比值和用于表征每个宿主机的剩余资源不平衡度的第四比值,并将这两个比值的匹配度作为选择目标宿主机的重要依据,可使虚拟机调度到最合适的宿主机上,以使宿主机的cpu和内存资源使用更加均衡,并最终提高数据中心整体的资源利用效率。
[0134]
本实施例联合用于表征待调度虚拟机的资源需求不平衡度的第一比值、用于表征每个宿主机的剩余资源不平衡度的第四比值,以及用于表征宿主机集群整体的资源分布情况的第二比值,或用于表征每个宿主机的资源分布情况的第三比值,从宿主机集群中选择最优的目标宿主机,综合考虑了待调度虚拟机的资源需求不平衡度和每个宿主机的剩余资源不平衡度,以及资源需求不平衡度和剩余资源不平衡度之间的匹配程度,可以有效提高宿主机的cpu资源和内存资源均衡的程度,进而提高数据中心整体的资源利用效率。
[0135]
在上述实施例的基础上,本实施例中调度模块具体模块用于:若所述待调度虚拟机对应的第一比值小于所述第二比值,则从所述宿主机集群中选择所述第四比值最小的宿主机作为所述目标宿主机。
[0136]
在上述实施例的基础上,本实施例中调度模块,还用于若所述待调度虚拟机对应的第一比值大于所述第二比值,则从所述宿主机集群中选择所述第四比值最大的宿主机作为所述目标宿主机。
[0137]
在上述各实施例的基础上,本实施例中调度模块具体模块,还用于若所述待调度虚拟机对应的第一比值等于所述第二比值,则从所述宿主机集群中选择所述第四比值与所述第一比值之间的差值的绝对值最小的宿主机作为所述目标宿主机。
[0138]
在上述实施例的基础上,本实施例中调度模块,还用于将每个宿主机对应的第四比值和第三比值相减后求绝对值;将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较;根据每个宿主机对应的绝对值结果和比较结果,从所述宿主机集群中选择目标宿主机。
[0139]
在上述实施例的基础上,本实施例中还包括选择模块具体用于:按照每个宿主机对应的绝对值结果从大到小的顺序,对所述宿主机集群中的所有宿主机进行排序;按照所述排序依次将每个宿主机对应的第四比值和所述第一比值与每个宿主机对应的第三比值进行比较,直到比较结果满足预设条件;将所述比较结果满足预设条件的宿主机作为目标宿主机;其中,所述预设条件包括所述第四比值大于第三比值,且所述第一比值大于所述第三比值;或者所述第四比值比小于第三比值,且所述第一比值小于所述第三比值。
[0140]
在上述各实施例的基础上,本实施例中第三计算模块具体用于:计算每个宿主机的cpu核的总数量与剩余cpu核百分比之间的乘积,将乘积结果作为每个宿主机的剩余cpu核的数量。
[0141]
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(communications interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行虚拟机调度方法,该方法包括:计
算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
[0142]
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0143]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的虚拟机调度方法,该方法包括:计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
[0144]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的虚拟机调度方法,该方法包括:计算待调度虚拟机所需的cpu核的总数量和总内存容量之间的第一比值;计算宿主机集群中所有宿主机的cpu核的总数量之和与所有宿主机的总内存容量之和之间的第二比值,或每个宿主机的cpu核的总数量与每个宿主机的总内存容量之间的第三比值;计算每个宿主机的剩余cpu核的数量与剩余内存容量之间的第四比值;其中,每个宿主机的剩余cpu核的数量和剩余内存容量分别大于所述待调度虚拟机所需的cpu核的总数量和总内存容量;根据所述第一比值和第四比值,以及第二比值或第三比值,从所述宿主机集群中选择目标宿主机,并将所述待调度虚拟机调度至所述目标宿主机。
[0145]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0146]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0147]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1