虚拟机的调度方法、装置、存储介质及设备与流程

文档序号:29046918发布日期:2022-02-25 22:21阅读:182来源:国知局
虚拟机的调度方法、装置、存储介质及设备与流程

1.本公开涉及虚拟机技术领域,具体而言,涉及一种虚拟机的调度方法、装置、存储介质及设备。


背景技术:

2.云数据中心广泛使用虚拟化技术实现将单一物理主机的资源分配给多个虚拟机,从而提高资源利用率,同时减少运营和维护成本。如何合理、均衡、批量部署虚拟机已成为云计算平台运营与维护过程中的重要任务。当前,确定在物理主机上批量部署虚拟机的最佳分配策略的方法主要是基于资源阈值的判断法和部分启发式智能算法。虽然,这些方法能够确定出一种或多种批量部署虚拟机到物理主机的分配策略,但是却无法保证云计算平台中资源的合理利用与负载均衡。
3.因此,提供一种能够使物理主机间达到最佳负载均衡的虚拟机部署方案已成为本领域技术人员亟待解决的技术问题。


技术实现要素:

4.本公开提供了一种虚拟机的调度方法、装置、存储介质及设备,以对虚拟机进行动态调度,实现物理主机的负载均衡。
5.根据本公开实施例的第一方面,提供了一种虚拟机的调度方法,该方法包括:根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合;其中,待调度物理主机集合中包括至少两个待调度物理主机;对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值;根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值;将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度。
6.在一些实施例中,根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合,包括:根据获取到的物理主机的资源配置参数以及物理主机上运行的虚拟机的资源使用参数,得到物理主机的资源使用参数;获取物理主机的资源配置参数对应的上限参数以及下限参数;将物理主机的资源使用参数与上限参数以及下限参数进行比较,根据比较结果确定出待调度物理主机集合。
7.在一些实施例中,对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值,包括:根据待调度物理主机上所运行的虚拟机的类型信息,对待调度物理主机上所运行的虚拟机进行分类,得到各类型的虚拟机子集合;根据虚拟机子集合中各个虚拟机的资源使用参数,得到虚拟机子集合对应类型的虚拟机的第一资源使用总值,将第一资源使用总值作为单资源使用参数值。
8.在一些实施例中,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值,包括:根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值,将资源使用平均值作为总标准资源使用参数值。
9.在一些实施例中,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值,包括:获取各待调度物理主机的资源配置参数,得到待调度物理主机集合对应的资源配置总值;根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机对应的第二资源使用总值;根据资源配置总值以及第二资源使用总值,得到各类型虚拟机的资源使用平均值。
10.在一些实施例中,将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度,包括:对属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较;若单资源使用参数值大于或等于总标准资源使用参数值,则将单资源使用参数值对应的虚拟机子集合作为待迁出虚拟机集合;从待迁出虚拟机集合中选取资源使用参数值大于或等于预设均衡标准参数值的待调度虚拟机,并对待调度虚拟机进行调度。
11.在一些实施例中,对待调度虚拟机进行调度,包括:根据待调度虚拟机的类型信息,获取各待调度物理主机对应的属于同一类型的虚拟机的单资源使用参数值;若单资源使用参数值小于总标准资源使用参数值,则将单资源使用参数值对应的虚拟机子集合作为待迁入虚拟机集合;计算待调度虚拟机迁入至待迁入虚拟机集合后,待迁入虚拟机集合的单资源使用参数值;若待迁入虚拟机集合的单资源使用参数值小于总标准资源使用参数值,则将待迁移的虚拟机迁移至待迁入虚拟机集合对应的物理主机。
12.根据本公开实施例的第二方面,提供了一种虚拟机的调度装置,装置包括:
13.主机选择模块,用于根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合;其中,待调度物理主机集合中包括至少两个待调度物理主机;第一参数计算模块,对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值;第二参数计算模块,用于根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值;调度模块,用于将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度。
14.根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如上述的虚拟机的调度方法。
15.根据本公开实施例的第四方面,提供了一种电子设备,包括:处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述的虚拟机的调度方法。
16.本公开的示例性实施例具有以下有益效果:
17.本公开实施例提供的虚拟机的调度方法,通过对各个待调度物理主机运行的各个类型的虚拟机进行资源使用参数的采集,以计算每个待调度物理主机中运行的每个类型的虚拟机的单资源使用参数值,进而根据单资源使用参数值计算得到每个类型的虚拟机的总
标准资源使用参数值,以根据总标准资源使用参数值对属于同一类型的虚拟机进行选择,得到待调度虚拟机并对待调度虚拟机进行调度。本公开实施例中通过对待调度虚拟机进行调度,实现了物理主机集群的负载均衡,且根据不同类型虚拟机的不同的资源需求设置总标准资源使用参数值,进而根据总标准资源使用参数值选择待调度虚拟机进行调度,优化了物理主机集群的业务分布,保证了业务处理质量的稳定性。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
19.图1示出本公开实施例中一种系统结构的示意图;
20.图2示出本公开实施例中虚拟机的调度方法的流程图;
21.图3示出本公开实施例中物理主机与虚拟机的部署示意图;
22.图4示出图2所示实施例中步骤s22在一示例实施例中的流程图;
23.图5示出图2所示实施例中步骤s24在一示例实施例中的流程图;
24.图6示出本公开实施例中虚拟机的调度装置的结构示意图;
25.图7示出本公开实施例中电子设备的结构示意图。
具体实施方式
26.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
27.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
28.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
29.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
30.下面结合附图,对本公开的一些实施方式作详细说明,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
31.图1示出了本公开示例性实施例的运行环境的一种系统结构示意图,参考图1所示,该系统可以包括物理主机集群,该物理主机集群由多个物理主机组成,每个物理主机上可以运行一个或多个虚拟机。
32.虚拟机的迁移是指运行该虚拟机的物理主机发生改变,例如,如图1所示,物理主
机集群中包括物理主机1与物理主机2共两个物理主机,虚拟机vm1、vm2与vm3运行在物理主机1中,虚拟机vm4与vm5运行在物理主机2中。现在将虚拟机vm2迁移到物理机2上,那么vm2将运行在物理机2上,而物理机1上将不存在vm2。虚拟机vm2迁移后,虚拟机vm1与vm3运行在物理主机1中,虚拟机vm2、vm4与vm5运行在物理主机2中。
33.物理主机在本公开实施例中指的是承载了虚拟机业务的物理服务器。虚拟机指的是运行于物理主机上的一种特殊的程序,对下层物理机表现为特殊的进程,对上层用户表现为一个虚拟的服务器环境,每个虚拟机会配置若干个虚拟中央处理器和若干容量的虚拟内存等资源。虚拟中央处理器指的是虚拟机对上层业务展示的处理器,在物理主机上表现为一个线程。虚拟内存指的是虚拟机对上层业务展示的内存设备,在物理主机上表现为一块被虚拟机进程占用的内存空间。虚拟中央处理器的数量以及虚拟内存的大小在虚拟机启动前得到配置。
34.相关技术中,物理主机集群需要运行大量不同类型的应用,并根据不同类型的应用采用不同配置参数和类型的虚拟机。例如,在网络功能虚拟化(network function virtualization,简称nfv)场景中,网络功能虚拟化网元(virtualised network function,简称vnf)通常会采用对外通信组件、核心业务组件、数据处理组件等。不同组件所用虚拟机的配置参数以及类型不相同,例如,虚拟机的虚拟中央处理器(virtual central processing unit,简称vcpu)的数量不同、虚拟机的虚拟内存(virtual memory,简称vmem)的参数不同、虚拟机的类型不同,其中,虚拟机的类型包括但不限于linux虚拟机以及java虚拟机等。因此,物理主机很容易受虚拟机负载动态变化的影响,导致物理主机集群负载不均衡。基于此,在本公开示例性实施例提供了一种虚拟机的调度方法。
35.请参阅图2,图2为本公开实施例中虚拟机的调度方法的流程图,下面结合图2,对本公开示例性实施例中的虚拟机的调度方法进行说明。
36.步骤s21、根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合;其中,待调度物理主机集合中包括至少两个待调度物理主机。
37.物理主机的资源使用参数用于衡量该物理主机当前的工作状态,是反映该物理主机的繁忙程度的指标。
38.在本公开示例性实施例中,可以是根据物理主机的中央处理器(central processing unit,简称cpu)的使用情况以及内存的使用情况,计算得到该物理主机的资源使用参数。也可以是根据服务器上所有进程的资源占用情况,以计算得到该物理主机的资源使用参数。还可以是根据物理主机上运行的所有虚拟机的资源占用情况,以计算得到该物理主机的资源使用参数。其中,资源占用情况包括但不限于cpu的占用情况或内存的占用情况。可以理解的是,物理主机的资源使用参数的获取方法可以根据实际应用场景进行灵活选择,本公开实施例对此不做限定。
39.其中,获取物理主机的资源使用参数可以是周期性获取,具体的获取周期可以根据具体应用场景进行设置,如1分钟、5分钟、10分钟等。还可以是由外部触发以进行物理主机的资源使用参数的获取,如检测到物理主机出现卡顿,数据处理效率下降等事件时,则对物理主机的资源使用参数进行获取。
40.根据物理主机的资源使用参数在物理主机集群中确定出待调度物理主机,得到待调度物理主机集合,其中,待调度物理主机指的是繁忙程度大于预设指标的物理主机。
41.在一些实施例中,根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合,包括:根据获取到的物理主机的资源配置参数以及物理主机上运行的虚拟机的资源使用参数,得到物理主机的资源使用参数;获取物理主机的资源配置参数对应的上限参数以及下限参数;将物理主机的资源使用参数与上限参数以及下限参数进行比较,根据比较结果确定出待调度物理主机集合。
42.物理主机的资源配置参数指的是为该物理主机配置的资源情况,其取决于物理主机自身的物理性能,例如,该物理主机封装的cpu的数量以及频率、内存的数量以及容量、硬盘的数量以及容量、支持的操作系统等参数。
43.虚拟机的资源使用参数用于衡量该虚拟机当前的工作状态,是反映该虚拟机的繁忙程度的指标。例如,可以获取虚拟机在启动之前被配置的资源配置参数,然后获取该虚拟机当前的资源占用情况,如vcpu以及虚拟内存的占用情况,根据虚拟机的资源占用情况和资源配置参数,得到该虚机当前的资源使用参数。其中,虚拟机当前的资源使用参数可以是在指定时间段内,该虚拟机的平均资源使用率,如在第一时间到第二时间内,周期性获取该虚拟机的vcpu的占用情况以及虚拟内存占用情况,根据该虚拟机被配置的vcpu以及虚拟内存,计算得到各周期vcpu以及虚拟内存的使用率,以得到在该时间段内的平均资源使用率。
44.通过计算物理主机上所有虚拟机的资源使用参数,得到该物理主机被虚拟机占用的资源数据,然后根据该物理主机的资源配置参数以及被虚拟机占用的资源数据,可以计算得到该物理主机的资源使用参数。
45.示例性地,请参阅图3,图3为本公开实施例中物理主机以及虚拟机的部署示意图。如图3所示,物理主机包括h1,h2...hm,各个物理主机中运行的虚拟机的类型包括t1,t2...ts,n
tj
表达的是tj类型的虚拟机在各个物理主机中运行的最大数量。vm(hi,tj)表达的是物理主机hi中运行的所有tj类型的虚拟机。vm(hi,tj,k)表达的是物理主机hi中运行的tj类型的虚拟机中的第k号虚拟机。其中,i=1,2,...,m;j=1,2,...,s;k=1,2,...,n
tj

46.基于图3所示的物理主机以及虚拟机的部署示意图,计算物理主机的资源使用参数的计算公式可以为公式(1):
[0047][0048]
其中,u(hi)代表物理主机hi的资源使用参数,r(hi)代表物理主机hi的资源配置参数,r(tj)代表tj类型的虚拟机的资源配置参数,u(vm(hi,tj))代表物理主机hi中tj类型的虚拟机的资源使用参数,s代表物理主机hi中运行的所有虚拟机的类型的总量。
[0049]
进一步地,物理主机hi中tj类型的虚拟机的资源使用参数的计算公式可以为公式(2):
[0050][0051]
其中,u(vm(hi,tj,k))代表物理主机hi中运行的tj类型的虚拟机中的第k号虚拟机的资源使用参数,例如第k号虚拟机的资源使用率。通过计算物理主机hi中运行的所有tj类型的虚拟机的资源使用参数的和,得到tj类型的虚拟机的资源使用参数。
[0052]
通过虚拟机的资源配置参数与虚拟机的资源使用参数的乘积,得到物理主机运行的属于同一类型的虚拟机占用的资源数据,然后将属于同一类型的虚拟机占用的资源数据除以该物理主机的资源配置参数,以得到该物理主机的资源使用参数,即得到该物理主机的资源利用率。
[0053]
可以根据物理主机的资源配置参数,设置该物理主机的上限参数以及下限参数。选择资源使用参数大于上限参数的物理主机,以及选择资源使用参数小于下限参数的物理主机,以得到待调度物理主机集合。待调度物理主机集合中包含有待调度物理主机,待调度物理主机可以是资源使用率过高的物理主机,也可以是资源使用率过低的物理主机。
[0054]
步骤s22、对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值。
[0055]
虚拟机的单资源使用参数值指的是各个待调度物理主机上运行的各类型虚拟机中,属于同一类型的所有虚拟机的资源使用参数的总和。
[0056]
待调度物理主机集合属于物理主机集群中物理主机集合的子集,待调度物理主机集合ph可以为ph=p1,p2,...,pn,n代表该物理主机集群中需要进行负载均衡的物理主机的数量。可以理解的是,当待调度物理主机集合ph为空集时,表明该物理主机集群已经实现负载均衡。获取待调度物理主机集合ph中每个待调度物理主机运行的属于同一类型的虚拟机,并获取各虚拟机对应的资源使用参数,得到单资源使用参数值。
[0057]
在一些实施例中,请参阅图4,步骤s22中对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值的过程,可以包括:
[0058]
步骤s221、根据待调度物理主机上所运行的虚拟机的类型信息,对待调度物理主机上所运行的虚拟机进行分类,得到各类型的虚拟机子集合;
[0059]
步骤s222、根据虚拟机子集合中各个虚拟机的资源使用参数,得到虚拟机子集合对应类型的虚拟机的第一资源使用总值,将第一资源使用总值作为单资源使用参数值。
[0060]
根据虚拟机的类型信息对待调度物理主机集合ph运行的虚拟机分类,得到各类型的虚拟机子集合的计算公式可以为公式(3):
[0061]
vm(ph,tj)=vm(p1,tj)+vm(p2,tj)+...+vm(pn,tj)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0062]
vm(ph,tj)表达的是待调度物理主机集合中tj类型的虚拟机,vm(p
x
,tj)表达的是待调度物理主机p
x
中运行的tj类型的虚拟机,其中,x=1,2,...,n。可以理解的是,当vm(p
x
,tj)为空集时,代表待调度物理主机p
x
上没有运行tj类型的虚拟机。
[0063]
获取各待调度物理主机运行的各类型虚拟机中各个虚拟机的资源使用参数,得到该类型虚拟机对应的第一资源使用总值。
[0064]
示例性地,待调度物理主机p
x
中tj类型的虚拟机的第一资源使用总值的计算公式可以为公式(4):
[0065][0066]
其中,u(vm(p
x
,tj,k))代表的是待调度物理主机p
x
中tj类型的虚拟机中的第k号虚拟机的资源使用参数。
[0067]
将第一资源使用总值作为单资源使用参数值,以根据单资源使用参数值计算对应
类型虚拟机的总标准资源使用参数值。
[0068]
步骤s23、根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值。
[0069]
总标准资源使用参数值代表各个待调度物理主机针对总标准资源使用参数值对应类型虚拟机的负载均衡的目标值。根据各类型虚拟机子集合的总标准资源使用参数值,对各个待调度物理主机各类型虚拟机进行调度,以实现待调度物理主机的负载均衡。
[0070]
在一些实施例中,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值,包括:根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值,将所述资源使用平均值作为总标准资源使用参数值。
[0071]
示例性地,可以根据同一类型的虚拟机的单资源使用参数值,计算该类虚拟机的资源使用平均值,以将资源使用平均值作为该类型虚拟机的总标准资源使用参数值。可以理解的是,不同类型虚拟机对应的总标准资源使用参数值可以不同。
[0072]
需要说明的是,还可以通过其它计算方法获取总标准资源使用参数值,例如,还可以将各类型虚拟机的单资源使用参数值的中位数作为总标准资源使用参数值。具体的获取总标准资源使用参数值的方法可以根据实际应用情况进行选择,本公开示例性实施例对此不做限制。
[0073]
对各类型虚拟机分别设定不同的总标准资源使用参数值,即设定不同的均衡目标,以对各个待调度物理主机上运行的不同类型的虚拟机的资源需求进行分别考虑,为后续根据总标准资源使用参数值进行虚拟机调度提高可靠性。
[0074]
示例性地,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值,包括:获取各待调度物理主机的资源配置参数,得到待调度物理主机集合对应的资源配置总值;根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机对应的第二资源使用总值;根据资源配置总值以及第二资源使用总值,得到各类型虚拟机的资源使用平均值。
[0075]
待调度物理主机集合对应的资源配置总值指的是待调度物理主机集合中,所有待调度物理主机可以使用的资源的总值,例如,所有待调度物理主机封装的cpu的数量以及频率、内存的数量以及容量、硬盘的数量以及容量等。
[0076]
各类型虚拟机的第二资源使用总值指的是各个待调度物理主机中,运行的所有属于同一类型的虚拟机的资源使用参数的总值,例如,各类型虚拟机的vcpu以及虚拟内存的占用情况。
[0077]
示例性地,待调度物理主机集合ph中tj类型的虚拟机的资源使用平均值的计算公式可以为公式(5):
[0078][0079]
其中,r(p
x
)代表的是待调度物理主机p
x
的资源配置参数,r(tj)代表tj类型的虚拟机的资源配置参数,u(vm(p
x
,tj))代表的是待调度物理主机p
x
中tj类型的虚拟机的单资源使用参数值。
[0080]
其中,代表的是tj类型的虚拟机的第二资源使用总值。
[0081]
可以理解的是,还可以采用其它方法获取各类型虚拟机的资源使用平均值,例如,可以根据各类型虚拟机的资源配置参数以及各类型虚拟机的资源占用情况,计算得到各类型虚拟机的资源使用平均值,还可以根据各类型虚拟机的资源占用情况以及各类型虚拟机的数量,计算得到各类型虚拟机的资源使用平均值。具体的获取各类型虚拟机的资源使用平均值的方法可以根据实际应用情况进行选择,本公开示例性实施例对此不做限制。
[0082]
通过将各类型虚拟机的资源使用平均值作为对应类型虚拟机的总标准资源使用参数值,以根据不同的总标准资源使用参数值对各类型虚拟机进行筛选,得到待调度虚拟机。
[0083]
步骤s24、将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度。
[0084]
单资源使用参数值是用于反映在单个待调度物理主机上同一类型虚拟机的资源使用情况,每个类型虚拟机均对应一个总标准资源使用参数值。当虚拟机的单资源使用参数值大于该类型虚拟机对应的总标准资源使用参数值时,则表明运行该类型虚拟机的待调度物理主机负载高于标准值,因此需要对该待调度物理主机上运行的该类型虚拟机进行调度。
[0085]
在一些实施例中,请参阅图5,步骤s22中将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度的过程,可以包括:
[0086]
步骤s241、对属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较;
[0087]
步骤s242、若所述单资源使用参数值大于或等于所述总标准资源使用参数值,则将所述单资源使用参数值对应的虚拟机子集合作为待迁出虚拟机集合;
[0088]
步骤s243、从所述待迁出虚拟机集合中选取资源使用参数值大于或等于预设均衡标准参数值的待调度虚拟机,并对所述待调度虚拟机进行调度。
[0089]
示例性地,根据属于同一类型的虚拟机的单资源使用参数值的大小,对单资源使用参数值进行排序。确定虚拟机的单资源使用参数值大于该类型虚拟机的总标准资源使用参数值的虚拟机,得到待迁出虚拟机集合。
[0090]
例如,根据单资源使用参数值的大小,对tj类型的虚拟机进行排序得到:
[0091]
u(vm(p1,tj))》=...》=u(vm(p
x
,tj))》u
target
(tj)》u(vm(py,tj))》=...》=u(vm(pn,tj))
[0092]
其中,待调度物理主机集合ph=p1+p2+...+p
x
+py+...+pn,则表明待调度物理主机集合中包含有n个待调度物理主机。u(vm(p
x
,tj))代表的是待调度物理主机p
x
中tj类型的虚拟机的单资源使用参数值,vm(p
x
,tj)表达的是待调度物理主机p
x
中运行的tj类型的虚拟机。
[0093]
因此,根据排序结果得到待迁出虚拟机集合可以为:
[0094]
svm={vm(p1,tj},...,vm(p
x
,tj)}
[0095]
待迁出虚拟机集合svm中包含有多个待迁出虚拟机子集合,例如,待迁出虚拟机子集合vm(p1,tk)。可以理解的是,当待迁出虚拟机集合svm为空集时,则表明物理主机集群已经实现负载均衡。
[0096]
在待迁出虚拟机子集合中选择需要进行调度的待调度虚拟机,以对该待调度虚拟机进行调度。
[0097]
进一步地,可以根据每个待迁出虚拟机子集合对应的单资源使用参数值的大小,设定虚拟机迁移的优先级,以优先选择优先级最高的待迁出虚拟机子集合进行虚拟机的迁移。例如,根据对tj类型的虚拟机的单资源使用参数值的排序结果,得到单资源使用参数值最大的待迁出虚拟机子集合为vm(p1,tj)。因此,优先对待调度物理主机p1中运行的tj类型的虚拟机进行待调度虚拟机的选择,得到待调度虚拟机,以进行待调度虚拟机的调度。通过优先对单资源使用参数值较高的待调度物理主机进行虚拟机的调度操作,以防止负载较高的待调度物理主机因为业务量集中而造成处理业务的效率以及质量下降的情况,进而保证物理主机集群处理业务的效率以及质量。
[0098]
示例性地,从待迁出虚拟机集合中选取资源使用参数值大于或等于预设均衡标准参数值的待调度虚拟机。其中,预设均衡标准参数值可以是总标准资源使用参数值;预设均衡标准参数值还可以是待调度物理主机中运行的与待调度虚拟机属于同一类型的虚拟机的资源使用平均值,如对待调度物理主机p1中运行的tj类型的虚拟机进行待调度虚拟机的选择,预设均衡标准参数值则可以是待调度物理主机p1中运行的tj类型的各个虚拟机的资源使用平均值。可以理解的是,预设均衡标准参数值可以根据实际应用情况进行选择,本公开示例性实施例对此不做限定。
[0099]
例如,将总标准资源使用参数值作为预设均衡标准参数值,以从待迁出虚拟机子集合vm(p1,tj)中选取待调度虚拟机。获取待调度物理主机p1中tj类型的各个虚拟机的资源使用参数,将资源使用参数大于或等于总标准资源使用参数值的虚拟机作为待调度虚拟机。如待调度物理主机p1中tj类型的虚拟机中的第k号虚拟机的资源使用参数可以为u(vm(p
x
,tj,k)),若u(vm(p
x
,tj,k))>=u
target
(tj),则将第k号虚拟机作为待调度虚拟机。
[0100]
在一些实施例中,根据待调度虚拟机的类型信息,获取各待调度物理主机对应的属于同一类型的虚拟机的单资源使用参数值;若单资源使用参数值小于总标准资源使用参数值,则将单资源使用参数值对应的虚拟机子集合作为待迁入虚拟机集合;计算待调度虚拟机迁入至所述待迁入虚拟机集合后,待迁入虚拟机集合的单资源使用参数值;若待迁入虚拟机集合的单资源使用参数值小于总标准资源使用参数值,则将待迁移的虚拟机迁移至待迁入虚拟机集合对应的物理主机。
[0101]
示例性地,根据与待调度虚拟机属于同一类型的虚拟机的单资源使用参数值的大小,对单资源使用参数值进行排序。确定虚拟机的单资源使用参数值小于该类型虚拟机的总标准资源使用参数值的虚拟机,得到待迁入虚拟机集合。
[0102]
例如,待调度虚拟机是tj类型的虚拟机,因此,根据单资源使用参数值的大小,对tj类型的虚拟机进行排序得到:
[0103]
u(vm(p1,tj))》=...》=u(vm(p
x
,tj))》u
target
(tj)》u(vm(py,tj))》=...》=u(vm(pn,tj))
[0104]
因此,根据排序结果得到待迁入虚拟机集合可以为:
[0105]
dvm={vm(py,tj),...,vm(pn,tj)}
[0106]
待迁入虚拟机集合dvm中包含有多个待迁入虚拟机子集合,例如,待迁入虚拟机子集合vm(py,tj)代表的是待调度物理主机py中tj类型的虚拟机对应的资源占用参数小于标准参数值,即该待调度物理主机py针对tj类型的虚拟机的负载较低,因此可以向该待调度物理主机py迁入tj类型的虚拟机,以防止待调度物理主机py中针对tj类型的虚拟机配置的资源被浪费。
[0107]
示例性地,可以优先选择待迁入虚拟机集合dvm中单资源使用参数值最小的虚拟机作为待迁入虚拟机子集合,以优先对空闲资源最多的待调度物理主机进行虚拟机的迁入,进而优化物理主机集群中的各个物理主机的业务分布。例如,根据对tj类型的虚拟机的单资源使用参数值的排序结果,得到单资源使用参数值最小的待迁入虚拟机子集合为vm(pn,tj)。因此,将待迁入虚拟机子集合vm(pn,tj)对应的待调度物理主机pn作为待调度虚拟机进行迁移的目标物理主机,以完成对待调度虚拟机的调度。
[0108]
在确认待调度虚拟机对应的待调度物理主机之后,需要预先计算该待调度虚拟机迁入该待调度物理主机之后,待迁入虚拟机子集合对应的单资源使用参数值。若单资源使用参数值仍然小于总标准资源使用参数值时,则对该待调度虚拟机执行调度操作;若单资源使用参数值大于总标准资源使用参数值时,则对该待调度虚拟机重新选择待调度物理主机。通过预先计算待调度虚拟机迁入待调度物理主机后对应类型虚拟机的单资源使用参数值,避免执行虚拟机迁入操作后导致该待调度物理主机的负载高于标准值,从而需要对该待调度物理主机重新进行虚拟机迁出行为,进而提高了虚拟机调度的准确性。
[0109]
本公开实施例提供的虚拟机的调度方法,通过对各个待调度物理主机运行的各个类型的虚拟机进行资源使用参数的采集,以计算每个待调度物理主机中运行的每个类型的虚拟机的单资源使用参数值,进而根据单资源使用参数值计算得到每个类型的虚拟机的总标准资源使用参数值,以根据总标准资源使用参数值对属于同一类型的虚拟机进行选择,得到待调度虚拟机并对待调度虚拟机进行调度。本公开实施例中通过对待调度虚拟机进行调度,实现了物理主机集群的负载均衡,且根据不同类型虚拟机的不同的资源需求设置总标准资源使用参数值,进而根据总标准资源使用参数值选择待调度虚拟机进行调度,优化了物理主机集群的业务分布,保证了业务处理质量的稳定性。
[0110]
进一步的,本示例实施方式中还提供了一种虚拟机的调度装置600。参照图6所示,该虚拟机的调度装置600包括:主机选择模块610,第一参数计算模块620,第二参数计算模块630,调度模块640。
[0111]
主机选择模块610用于对待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值。
[0112]
第一参数计算模块620用于根据身份信息进行数据发送端的身份认证,若身份认证通过,则开放认证服务。
[0113]
第二参数计算模块630用于根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值。
[0114]
调度模块640用于将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度。
[0115]
在一些实施方式中,基于前述方案,主机选择模块610可以用于:
[0116]
根据获取到的物理主机的资源配置参数以及物理主机上运行的虚拟机的资源使用参数,得到物理主机的资源使用参数;
[0117]
获取物理主机的资源配置参数对应的上限参数以及下限参数;
[0118]
将物理主机的资源使用参数与上限参数以及下限参数进行比较,根据比较结果确定出待调度物理主机集合。
[0119]
在一些实施方式中,基于前述方案,第一参数计算模块620可以用于:
[0120]
根据待调度物理主机上所运行的虚拟机的类型信息,对待调度物理主机上所运行的虚拟机进行分类,得到各类型的虚拟机子集合;
[0121]
根据虚拟机子集合中各个虚拟机的资源使用参数,得到虚拟机子集合对应类型的虚拟机的第一资源使用总值,将第一资源使用总值作为单资源使用参数值。
[0122]
在一些实施方式中,基于前述方案,第二参数计算模块630可以用于:根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值,将资源使用平均值作为总标准资源使用参数值。
[0123]
在一些实施方式中,基于前述方案,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,计算各类型虚拟机的资源使用平均值时,第二参数计算模块630可以用于:
[0124]
获取各待调度物理主机的资源配置参数,得到待调度物理主机集合对应的资源配置总值;
[0125]
根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机对应的第二资源使用总值;
[0126]
根据资源配置总值以及第二资源使用总值,得到各类型虚拟机的资源使用平均值。
[0127]
在一些实施方式中,基于前述方案,调度模块640可以用于:
[0128]
对属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较;
[0129]
若单资源使用参数值大于或等于总标准资源使用参数值,则将单资源使用参数值对应的虚拟机子集合作为待迁出虚拟机集合;
[0130]
从待迁出虚拟机集合中选取资源使用参数值大于或等于预设均衡标准参数值的待调度虚拟机,并对待调度虚拟机进行调度。
[0131]
在一些实施方式中,基于前述方案,对待调度虚拟机进行调度时,调度模块640可以用于:
[0132]
根据待调度虚拟机的类型信息,获取各待调度物理主机对应的属于同一类型的虚拟机的单资源使用参数值;
[0133]
若单资源使用参数值小于总标准资源使用参数值,则将单资源使用参数值对应的虚拟机子集合作为待迁入虚拟机集合;
[0134]
计算待调度虚拟机迁入至待迁入虚拟机集合后,待迁入虚拟机集合的单资源使用参数值;
[0135]
若待迁入虚拟机集合的单资源使用参数值小于总标准资源使用参数值,则将待迁移的虚拟机迁移至待迁入虚拟机集合对应的物理主机。
[0136]
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
[0137]
应当注意,尽管在上文详细描述中提及了虚拟机的调度装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0138]
此外,在本公开的示例性实施例中,还提供了一种能够实现上述虚拟机的调度方法的电子设备。
[0139]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
[0140]
下面参照图7来描述根据本公开的这种实施例的电子设备700。图7所示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0141]
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
[0142]
其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,处理单元710可以执行如图2中所示的步骤s21,根据获取到的多个物理主机的资源使用参数,从多个物理主机中确定出待调度物理主机集合;其中,待调度物理主机集合中包括至少两个待调度物理主机;步骤s22,对各待调度物理主机上所运行的属于同一类型的虚拟机的资源使用参数进行计算,得到待调度物理主机对应的各类型虚拟机的单资源使用参数值;步骤s23,根据各待调度物理主机针对同一类型的虚拟机的单资源使用参数值,得到各类型虚拟机的总标准资源使用参数值;步骤s24,将属于同一类型的虚拟机的单资源使用参数值与总标准资源使用参数值进行比较,并根据比较结果从待调度物理主机中确定出待调度虚拟机进行调度。
[0143]
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(rom)723。
[0144]
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0145]
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0146]
电子设备700也可以与一个或多个外部设备770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调
器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0147]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
[0148]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
[0149]
以上具体地示出和描述了本公开示例性实施方式。可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1