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

文档序号:18939482发布日期:2019-10-23 01:02阅读:339来源:国知局
虚拟机的调度方法和装置与流程

本发明涉及云计算领域,具体而言,涉及一种虚拟机的调度方法和装置。



背景技术:

虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在创建虚拟机时,需要调度系统为虚拟机分类宿主机,在虚拟机创建之后,还可以更换虚拟机运行的宿主机,这些分配宿主机的过程和更换宿主机的过程都为虚拟机的调度过程。

目前,业内的云计算调度通常使用不同的方法来进行敏感服务和批处理作业的混部调度,以降低互相影响。通过用户画像来归类出应用所属于的类别:计算密集型、内存密集型、存储密集型,从而为不同类型的虚拟机制定不同的调度策略。

但现有的混部调度方案基于批处理应用可以降低优先级的前提,在遇到问题时及时降级,但是虚拟机调度是不具有优先级的,虚拟机创建时都是同等优先级的,并且任何一个迁移对用户都是有一定的影响,因此宿主机需要为每个虚拟机的波峰预留资源,这样势必造成很大的资源浪费。

针对现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种虚拟机的调度方法和装置,以至少解决现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的技术问题。

根据本发明实施例的一个方面,提供了一种虚拟机的调度方法,包括:预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种虚拟机的调度方法,包括:预测虚拟机在下一个时间周期内所需的处理器资源,得到预测结果;获取候选宿主机的已利用处理器资源和可用处理器资源;将预测结果与每个候选宿主机的已利用处理器资源叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个候选宿主机的可用处理器资源进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种虚拟机的调度装置,包括:预测模块,用于预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取模块,用于获取候选宿主机的已利用资源数据和可用资源数据;叠加模块,用于将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;比对模块,用于分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种虚拟机的调度装置,包括:预测模块,用于预测虚拟机在下一个时间周期内所需的处理器资源,得到预测结果;获取模块,用于获取候选宿主机的已利用处理器资源和可用处理器资源;叠加模块,用于将预测结果与每个候选宿主机的已利用处理器资源叠加,得到每个候选宿主机的叠加结果;比对模块,用于分别将每个候选宿主机的叠加结果与每个候选宿主机的可用处理器资源进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行如下步骤预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

根据本发明实施例的另一方面,还提供了一种系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

在本发明实施例中,通过预测调度虚拟机在未来一个周期内使用的资源数据,并通过获取的候选宿主机当前的已用资源数据和可用资源数据,来判断应该将虚拟机迁移至哪个候选宿主机,即确定目标宿主机,从而能够较准确的为虚拟机选择宿主机,而无需每个宿主机为每个虚拟机的波峰预留资源,减少了资源的浪费,尽可能地将虚拟机均匀地调度分布在不同宿主机上,以达到实体机的负载平稳均衡。

由此,本申请上述实施例解决了现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了一种用于实现虚拟机的调度方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本申请实施例1的一种虚拟机的调度方法的流程图;

图3是根据本申请实施例1的一种虚拟机迁移的示意图;

图4是根据本申请实施例1的一种可选的虚拟机迁移前后宿主机的已利用资源的变化示意图;

图5是根据本申请实施例2的一种虚拟机的调度方法的流程图;

图6是根据本申请实施例3的一种虚拟机的调度装置的示意图;

图7是根据本申请实施例4的一种虚拟机的调度装置的示意图;以及

图8是根据本发明实施例6的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

虚拟机:是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

虚拟机(vm)调度:在创建虚拟机时,需要调度系统为虚拟机分类宿主机,在虚拟机创建之后,还可以更换虚拟机运行的宿主机,这些分配宿主机的过程和更换宿主机的过程都为虚拟机的调度过程。

实施例1

根据本发明实施例,还提供了一种虚拟机的调度方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现虚拟机的调度方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的虚拟机的调度方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的调度方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。

在上述运行环境下,本申请提供了如图2所示的虚拟机的调度方法的流程图。图2是根据本发明实施例1的虚拟机的调度方法的流程图。

步骤s21,预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率。

具体的,上述虚拟机可以是新创建的虚拟机,也是可需要被迁移的虚拟机,例如,在运行虚拟机的宿主机出现故障,或运行虚拟机的宿主机超负荷的情况下,需要对虚拟机进行迁移,以保证虚拟机的稳定运行。

以上的处理器可以为cpu,cpu资源可以根据cpu利用率来确定,cpu利用率用于cpu被利用的程度,可以使用百分比来表示。对于虚拟机来说,处理器资源为虚拟处理器(vcpu)资源,对于宿主机来说,处理器资源为实体cpu资源。处理器争抢次数是指虚拟机的线程在宿主机的内核等待的时间超过预定时长的次数;缓存未命中次数即为cpucachemiss,用于指虚拟机读取宿主机的缓存时未命中的次数。

在一种可选的实施例中,上是时间周期可以是七天,可以通过获取虚拟机的历史资源数据,来预测虚拟机在下一个时间周期内所需的资源数据。

以企业的应用场景为例,企业为每个员工分配一个虚拟机账户,员工通过账户登录自己的虚拟机办公,在这种情况下,每个员工使用虚拟机的时间、所使用的cpu资源等数据具有一定的规律,因此可以通过虚拟机的历史资源数据确定该虚拟机的资源数据规律,根据得到的规律预测虚拟机在下一个时间周期内所需的资源数据。

步骤s23,获取候选宿主机的已利用资源数据和可用资源数据。

具体的,候选宿主机是允许运行虚拟机的宿主机,可以为多个。仍以企业的应用场景为例,企业的宿主机允许运行企业的每个虚拟机,因此在进行企业虚拟机的调度时,企业的宿主机均为候选宿主机。

候选宿主机的已利用资源数据可以是候选宿主机已利用的cpu资源、cpu争抢次数、缓存未命中次数和/或功耗利用率,其中,候选宿主机已利用的cpu争抢次数、缓存未命中次数和/或功耗利用率可以通过检测得到,候选宿主机已利用的cpu资源可以通过运行在宿主机上的所有虚拟机所使用的vcpu资源来确定。

候选宿主机的可用资源数据是指候选宿主机允许虚拟机使用的资源数据。候选宿主机具有一定的资源数据,可以包括:cpu资源、预定的cpu争抢次数、预定的缓存未命中次数和预定的功耗利用率。每个资源数据可以具有对应的使用阈值,即允许使用的部分占所有资源数据的比例,例如,预定阈值为80%,则虚拟机可以使用该宿主机所有资源数据的80%。

步骤s25,将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果。

在上述方案中,将预测结果叠加在候选宿主机的已利用资源上,用于预测将虚拟机迁移至候选宿主机后,候选宿主机所需的资源数据。

在一种可选的实施例中,在获取到候选宿主机的已利用资源数据后,分别将虚拟机的预测结果与对应的候选宿主机的资源数据相加,得到叠加结果。更具体的,虚拟机的资源数据包括:虚拟机所需的cpu资源a1、cpu争抢次数b1、缓存未命中次数c1和功耗利用率d1,候选宿主机的已利用资源数据包括:已利用cpu资源a2、cpu争抢次数b2、缓存未命中次数c2和功耗利用率d2,得到的叠加结果为:a1+a2、b1+b2、c1+c2以及d1+d2。

步骤s27,分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

在上述步骤s27中,在一个候选宿主机的叠加结果超过该候选宿主机的可用资源数据的情况下,则可以确定,如果将虚拟机迁移至该候选宿主机上,该候选宿主机并没有足够的资源支持虚拟机运行,可能会导致候选宿主机超负荷;在一个候选宿主机的叠加结果未超过该候选宿主机的可用资源数据的情况下,则可以确定如果将虚拟机迁移至该候选宿主机上,该候选宿主机具有足够的资源支持该虚拟机运行。因此,可以通过将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对的方式,从候选宿主机中筛选出能够支持该虚拟机运行的目标宿主机。

在一种可选的实施例中,结合上一实施例,以一个候选宿主机为例进行示例,候选宿主机的可用资源数据为:可用cpu资源a3、cpu争抢次数b3、缓存未命中次数c3和功耗利用率d3,如果能够满足a1+a2<a3、b1+b2<b3、c1+c2<c3以及d1+d2<d3,则确定该宿主机为目标宿主机,如果上述任意一个条件没有满足,则确认该宿主机不为目标宿主机。

在上述实施例中,首先需要注意的是,该方案通过预测调度虚拟机在未来一个周期内使用的资源数据,并通过获取的候选宿主机当前的已用资源数据和可用资源数据,来判断应该将虚拟机迁移至哪个候选宿主机,即确定目标宿主机,从而能够较准确的为虚拟机选择宿主机,而无需每个宿主机为每个虚拟机的波峰预留资源,减少了资源的浪费,尽可能地将虚拟机均匀地调度分布在不同宿主机上,以达到实体机的负载平稳均衡。

由此,本申请上述实施例解决了现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的技术问题。

图3是根据本申请实施例1的一种虚拟机迁移的示意图,结合图3所示,nc1和nc2分别为两个宿主机,vm为等待被迁移的虚拟机,需要确定将虚拟机vm迁移至哪个宿主机。

根据上述实施例提供的方案,再结合图3所示可知,将虚拟机vm在未来一个时间周期的预测结果分别叠加在nc1和nc2的已利用资源数据上,再分别与nc1和nc2的可利用资源数据比对,即可确定将虚拟机vm迁移至哪个宿主机。

但为了使预测的更加准确,可以将时间周期分为多个预设时间段,仍结合图3所示,时间箭头表示时间周期内的时间走向,nc1和nc2后的矩形表示nc1和nc2在每个时间段的已利用资源数据,虚拟机vm后的圆形表示虚拟机vm在每个时间段的预测结果,将每个时间段对应的预测结果与nc1和nc2在每个时间段内的已利用资源数据进行叠加,再分别与nc1和nc2的可利用资源数据比对,即可更精确的确定将虚拟机vm迁移至哪个宿主机。

下面就以将时间周期分为多个预设时间段的方式,对虚拟机在未来的一个时间周期内所需的资源数据进行预测进行说明。

作为一种可选的实施例,时间周期包括多个预设时间段,预测虚拟机在下一个时间区间内所需的资源数据,得到预测结果,包括:获取预测模型,其中,预测模型用于表征具有不同属性参数的虚拟机的预测结果与预设时间段的对应关系,属性参数包括:虚拟机的标识、规格和应用类型;将虚拟机的属性参数输入至预测模型;接收预测模型输出的虚拟机的预测结果。

具体的,虚拟机的标识可以为用户id,即user_id,用户通过user_id以及对应的密码登录虚拟机;虚拟机的规格用于表示虚拟机包括多个vcpu以及具有多少内存;虚拟机的应用类型可以根据虚拟机的用途来确定,应用类型可以为在线服务类(例如:作为网站服务器使用)或离线运算类(例如:进行大数据运算)等。

上述预测模型可以是通过对已有的数据(例如:虚拟机的历史资源数据)进行训练得到的神经网络模型。

上述几个属性参数均为对虚拟机所使用的资源数据具有较大影响的参数,例如:对于用户标识来说,不同用户对虚拟机具有不同的使用习惯,所使用的资源数据具有较强的个人特点;对于规格来说,不同规格的虚拟机运行时所占用的资源数据相差较大;对于应用类型来说,不同应用类型的虚拟机在运行时所使用的资源数据也具有较大的差异。

因此,上述方案将这几个属性参数作为虚拟机的特征,输入至预测模型,预测模型根据输入数据进行预测,并返回虚拟机的预测结果。

作为一种可选的实施例,在将虚拟机的属性参数输入至预测模型之前,上述方法还包括:获取预测模型的置信度和预设的置信度阈值;如果预测模型的置信度大于或等于置信度阈值,则进入将虚拟机的属性参数输入至预测模型的步骤;如果预测模型的置信度小于置信度阈值,则根据虚拟机的虚拟处理器资源和虚拟处理器利用率预测虚拟机在下一个时间周期内所需的资源数据。

对于具有一定规律的虚拟机,其预测模型具有较高的置信度,因此对于置信度较高的虚拟机,通过其预测模型预测的资源数据的准确度较高;而对于规律不明显的虚拟机,其预测模型的置信度较低,因此对于置信度较低的虚拟机,通过预测模型预测的资源数据的准确度较低。

在上述方案中,预设一个置信度阈值,根据该置信度阈值来确定是否还用预测模型来预测虚拟机的资源数据。

在一种可选的实施例中,虚拟机的预测模型置信度为90%,置信度阈值为85%,则允许使用该虚拟机的预测模型来预测该虚拟机在下一个时间周期内的资源数据。

在另一种可选的实施例中,虚拟机的预测模型置信度为80%,置信度阈值为85%,则确定该虚拟机的预测模型预测的准确度较低,抛弃该预测模型,而使用虚拟机的虚拟处理器资源和虚拟处理器利用率,根据预定的公式,计算虚拟机在下一个时间周期内所需的资源数据。

作为一种可选的实施例,获取预测模型,包括:获取样本数据,其中,样本数据包括多个样本虚拟机的属性信息和样本虚拟机在预设时间段的历史资源数据;根据样本数据进行模型训练,得到预测模型。

具体的,上述预设时间段可以是6个小时,每个时间段连贯但不重合,例如,一天中的0:00~6:00,6:00~12:00,12:00~18:00和18:00~24:00即为这一天中的四个时间段。

样本虚拟机可以是与虚拟机处于相同运行环境的虚拟机,为了保证训练的预测模型的准确性,样本虚拟机的数量可以较多,并在不同属性信息上均有分布。

在一种可选的实施例中,由于用户行为通常跟周有关系,比如工作日利用率高,周末利用率低,因此以一个时间周期为7天为例,如果预设时间段为6个小时,则一个时间周期包括28个时间段。首先挑选样本虚拟机,选择多个不同标识、不同规格以及不同应用类型的虚拟机作为样本虚拟机,然后获取样本虚拟机在一个周期的28个时间段的资源数据,则得到历史资源数据。

然后获取空模型,使用样本数据对空模型进行学习训练,得到训练后的模型。再使用验证数据(包括已知属性信息的虚拟机和虚拟机在不同时间段的历史资源数据)对训练后的模型进行验证,验证通过后得到预测模型。

作为一种可选的实施例,获取预测模型,获取样本虚拟机在预设时间段的历史资源数据,包括:按照预设的采样时间采集虚拟机的多个虚拟处理器的平均资源数据,其中,预设时间段包括多个采样时间;确定一个预设时间段内的最大平均资源数据为预设时间段的历史资源数据。

具体的,上述采集时间可以为5分钟,一个虚拟机的cpu可以具有多个vcpu,因此获取多个vcpu的平均值。

在一种可选的实施例中,对于一个具有4个vcpu,每个vcpu为4核的虚拟机,5分钟采集一次所有核的资源数据,求取16个核的平均值,则得到该虚拟机在该采集点的平均资源数据。如果预设时间段为6小时,即360分钟,则预设时间段包括72个平均资源数据,确定这72个平均资源数据中的最大值为该时间段的历史资源数据。

作为一种可选的实施例,在资源数据为cpu资源的情况下,获取候选宿主机的已利用资源数据,包括:获取运行于候选宿主机上的每个虚拟机在预设时间段所使用的资源;确定每个虚拟机在预设时间段所使用的资源之和为宿主机在预设时间段的已利用处理器资源。

作为一种可选的实施例,获取候选宿主机的可用资源数据,包括:获取宿主机的总处理器资源和预设利用率阈值,其中,宿主机的总处理器资源为宿主机的物理核数量与预设常数的乘积;确定宿主机的总处理器资源和预设利用率阈值的乘积为候选宿主机的可用资源数据。

上述方案提出了一种将处理器资源数值化的方式,具体的,将cpu的资源数值化可以采用如下方式,将宿主机cpu的一个物理核提供的资源作为一个常数x,如果一个宿主机具有y个物理核,则该cpu的资源为x乘以y。在一种可选的实施例中,一个宿主机的cpu包括56个物理核,认为一个物理核提供的资源为100,则该宿主机的cpu利用资源为5600。

在上述方案中,将cpu资源通过物理核数量与预设常数相乘的方式进行数值化,从而能够通过数值计算的方式对宿主机的资源进行计算。在这种方式中,预设常数可以为100,也即将每个物理核提供的资源作为100份来进行计算。

作为一种可选的实施例,获取运行于宿主机上的每个虚拟机在多个预设时间段所使用的处理器资源,包括:获取虚拟机的虚拟处理器数量、候选宿主机创建的总虚拟处理器数量、每个预设时间段的虚拟处理器平均利用率以及候选宿主机的物理核数量;获取虚拟机的虚拟处理器数量与候选宿主机创建的总虚拟处理器数量的比值;获取候选宿主机的物理核数量与候选宿主机创建的总虚拟处理器数量之间的最小值;求取比值、虚拟处理器平均利用率以及最小值的乘积;确定乘积为虚拟机在预设时间段的处理器资源。

具体的,上述vcpu平均利用率可以从历史数据中获取到,具体可以为:在每个时间段(每个时间段包括多个采样时间)中,多个采样时间对应的平均值中的最大平均值,其中,每个采样时间对应的平均值是虚拟机的所有核在采样时间的利用率平均值。

在一种可选的实施例中,虚拟机的vcpu数量为a,宿主机的总vcpu为b,vcpu的平均利用率为c,宿主机的物理核数量为d,则虚拟机的资源e=(a/b)*c*min(d,b)。更具体的,假设宿主机nc1具有56个物理核,创建出80个vcpu,其中虚拟机vm1具有8个vcpu,vm1的平均cpu利用率为50%,则vm1占用物理核的资源为(8/80)*50*56=280。

表一示出了一种计算宿主机已利用cou资源和可利用cpu资源的方式,结合表一所示,在该示例中,一个时间周期为7天,时间周期包括4个时间段,每个时间段为6小时,4个时间段相连但并不重合,表一仅示出了第一天的前两个时间段的计算方式,其他时间段的计算方式相同,下面结合表一进行具体说明。

先以第一天中的第一个时间段(0~6)对nc1进行说明。nc1具有56个物理核,创建有20个vcpu,分别应用于vm1(4核)、vm2(8核)和vm3(8核)。

vm1在第一个时间段内的vcpu平均利用率为5,则套用上述实施例的公式“e=(a/b)*c*min(d,b)”,可以得到vm1在第一时间段的使用的cpu资源为e1=(4/20)*5*min(56,20)=20。

vm2在第一个时间段内的vcpu平均利用率为20,同样套用公式得到vm2在第一时间段使用的资源为e2=160;vm3在第一个时间段内的vcpu平均利用率为30,同样套用公式得到vm3在第一时间段使用的资源为e3=240。因此nc1在第一时间段的已利用cpu资源为e1+e2+e3=420。在该示例中,预设常数为100,预设利用率阈值为80%,nc1的总cpu资源为56*100=5600,因此nc1的可利用资源为5600*80%=4060。

nc1在其他时间段的已利用cpu资源和可利用cpu资源,以及nc2在每个时间段的已利用cpu资源和可利用cpu资源均可通过上述方案计算。

表一

需要说明的是,在上述实施例中,虚拟机在每个时间段的vcpu平均利用率可以通过获取历史资源数据的方式得到,具体为:按照预设的采样时间采集虚拟机所有核的vcpu平均利用率,其中,时间周期中的每个预设时间段包括多个采样时间;确定一个预设时间段内采集到的最大平均利用率为预设时间段的vcpu平均利用率。

图4是根据本申请实施例1的一种可选的虚拟机迁移前后宿主机的已利用资源的变化示意图,结合图4所示,nc1具有56个物理核,cpu资源为5600,已利用资源为3000。nc1创建出80个vcpu(虚拟处理器),vm1包括8个vcup,平均利用率为50%,因此vm1占用宿主机的资源,即vm1所使用的cou资源为8/80*50*56=280。

nc2也具有56个物理核,cpu资源为5600,nc2的cpu平均利用率是10%,则nc2的已利用cpu资源为5600*10%=560。

因此将vm1由nc1迁移至nc2之后,nc1的已利用cpu资源为3000-280=2720,nc2的已利用cpu资源为560+280=840。

作为一种可选的实施例,时间周期包括多个预设时间段,分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的宿主机,包括:从候选宿主机中筛选出满足条件的候选宿主机,其中,该条件包括:每个预设时间段的叠加结果不超过宿主机的可用资源数据;确定满足条件的候选宿主机为虚拟机对应的目标宿主机。

上述方案可以由调度系统的过滤器来执行,通过上述方案,筛选出能够支持虚拟机运行的宿主机。在一个候选宿主机的叠加结果超过该候选宿主机的可用资源数据的情况下,则可以确定如果将虚拟机迁移至该候选宿主机上,该候选宿主机并没有足够的资源支持虚拟机运行,可能会导致候选宿主机超负荷;在一个候选宿主机的叠加结果未超过该候选宿主机的可用资源数据的情况下,则可以确定如果将虚拟机迁移至该候选宿主机上,该候选宿主机具有足够的资源支持虚拟机运行。因此,可以通过将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对的方式,从候选宿主机中筛选出能够支持该虚拟机运行的目标宿主机。

作为一种可选的实施例,在满足条件的候选宿主机为多个的情况下,确定满足条件的候选宿主机为虚拟机对应的宿主机,包括:获取每个资源数据对应权重值;根据权重值对叠加结果进行加权,得到满足条件的候选宿主机对应的加权结果;确定加权结果最小的候选宿主机为虚拟机对应的目标宿主机。

上述方案可以由调度系统的权重器来执行。在通过调度过滤器过滤后仍存在多个候选宿主机,即多个候选宿主机能够支持虚拟机运行的情况下,通过权重器对资源数据中的多种数据进行整合,得到的加权结果能够代表如果将虚拟机迁移至候选宿主机后,候选宿主机的资源使用情况。

在一种可选的实施例中,各个资源数据的权重值由大至小可以按照如下顺序排列:处理器资源、功耗利用率、处理器争抢次数和缓存未命中次数,分为别为50%、30%、10%和10%。结合步骤s25下的实施例继续进行说明,该候选宿主机的叠加结果为:a1+a2、b1+b2、c1+c2以及d1+d2,则该宿主机对应的加权结果为(a1+a2)50%+(b1+b2)10%+(c1+c2)10%+(d1+d2)30%。

上述实施例示出了一个宿主机的加权结果的计算方式,按照这种计算每个满足条件的候选宿主机的加权结果,并选择加权结果最小的候选宿主机作为目标宿主机。

在上述方案中,满足条件的候选宿主机的加权结果,能够说明当将虚拟机迁移至该宿主机后,该宿主机的资源利用情况,如果加权结果较大,则说明如果将虚拟机迁移至该候选宿主机,该候选宿主机的会被使用较多的资源,负荷较重;如果加权结果较小,则说明如果将虚拟机迁移至该候选宿主机,该候选宿主机的被使用的资源仍然较少,为了保持宿主机的负载均衡,因此将虚拟机迁移至加权结果最小的候选宿主机,即确定加权结果最小的候选宿主机为目标宿主机。

上述方案通过假设将虚拟机迁移至各个满足条件的候选宿主机,来预测如果将虚拟机迁移至各个候选宿主机,各个宿主机的资源利用情况,从而确定目标宿主机。

作为一种可选的实施例,在分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的宿主机之后,上述方法还包括:将虚拟机迁移至虚拟机对应的目标宿主机。

将虚拟机迁移至对应的目标宿主机,目标宿主机能够提供虚拟机运行时所需的资源数据,还能够达到对宿主机均衡负载的目的。

作为一种可选的实施例,在虚拟机为新创建的虚拟机的情况下,预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,包括:获取新创建的虚拟机的标识和/或规格;查找与新创建的虚拟机的标识和规格相同的目标虚拟机;确定目标虚拟机的预测结果为新创建的虚拟机的预测结果。

对于新创建的虚拟机,选择与新创建的虚拟机的标识和规格都相同的虚拟机的预测结果作为新创建的虚拟机的预测结果。

在一种可选实施例中,如果不存在与新创建的虚拟机的标识和规格都相同的目标虚拟机,而存在与新创建的虚拟机的标识相同且规格不同的目标虚拟机,以及规格相同且标识不同的目标虚拟机,则选择与新创建的虚拟机的标识相同的目标虚拟机的预测结果为新创建的虚拟机的预测结果。

实施例2

根据本发明实施例,还提供了一种虚拟机的调度方法的实施例,图5是根据本申请实施例2的一种虚拟机的调度方法的流程图,结合图5所示,该方法包括:

步骤s51,预测虚拟机在下一个时间周期内所需的处理器资源,得到预测结果。

具体的,上述虚拟机可以是新创建的虚拟机,也是可需要被迁移的虚拟机,例如,在运行虚拟机的宿主机出现故障,或运行虚拟机的宿主机超负荷的情况下,需要对虚拟机进行迁移,以保证虚拟机的稳定运行。

在一种可选的实施例中,上是时间周期可以是七天,可以通过获取虚拟机的历史资源数据,来预测虚拟机在下一个时间周期内所需的资源数据。

步骤s53,获取候选宿主机的已利用处理器资源和可用处理器资源。

具体的,上述候选宿主机的可用处理器资源是指候选宿主机允许虚拟机使用的处理器资源。候选宿主机具有一定的总处理器资源,以及对应的使用阈值,即允许使用的部分占所有资源数据的比例,例如,预定阈值为80%,则虚拟机可以使用该宿主机的总处理器资源的80%。

步骤s55,将预测结果与每个候选宿主机的已利用处理器资源叠加,得到每个候选宿主机的叠加结果。

在上述方案中,将预测结果叠加在候选宿主机的已利用处理器资源上,用于预测将虚拟机迁移至候选宿主机后,候选宿主机所需的处理器资源。

步骤s57,分别将每个候选宿主机的叠加结果与每个候选宿主机的可用处理器资源进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

在上述步骤s57中,在一个候选宿主机的叠加结果超过该候选宿主机的可用处理器资源的情况下,则可以确定,如果将虚拟机迁移至该候选宿主机上,该候选宿主机并没有足够的处理器资源支持虚拟机运行,可能会导致候选宿主机超负荷;在一个候选宿主机的叠加结果未超过该候选宿主机的可用处理器资源的情况下,则可以确定如果将虚拟机迁移至该候选宿主机上,该候选宿主机具有足够的处理器资源支持该虚拟机运行。因此,可以通过将每个候选宿主机的叠加结果与每个宿主机的可用处理器资源进行比对的方式,从候选宿主机中筛选出能够支持该虚拟机运行的目标宿主机。

在上述实施例中,首先需要注意的是,该方案通过预测调度虚拟机在未来一个周期内使用的资源数据,并通过获取的候选宿主机当前的已用处理器资源和可用处理器资源,来判断应该将虚拟机迁移至哪个候选宿主机,即确定目标宿主机,从而能够较准确的为虚拟机选择宿主机,而无需每个宿主机为每个虚拟机的波峰预留资源,减少了资源的浪费,尽可能地将虚拟机均匀地调度分布在不同宿主机上,以达到实体机的负载平稳均衡。

由此,本申请上述实施例解决了现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的技术问题。

作为一种可选的实施例,获取候选宿主机的可用处理器资源,包括:获取预设常数、宿主机的物理核数量以及预设阈值,其中,预设阈值小于1;确定预设常数、宿主机的物理核数量以及预设阈值的乘积为宿主机的可用处理器资源。

上述方案提出了一种将处理器资源数值化的方式,具体的,将cpu的资源数值化可以采用如下方式,将宿主机cpu的一个物理核提供的资源作为一个常数x,如果一个宿主机具有y个物理核,则该cpu的资源为x乘以y。在一种可选的实施例中,一个宿主机的cpu包括56个物理核,认为一个物理核提供的资源为100,则该宿主机的cpu利用资源为5600。

作为一种可选的实施例,时间周期包括多个预设时间段,获取候选宿主机的已利用处理器资源,包括:获取运行于候选宿主机上的每个虚拟机在预设时间段的处理器资源;确定每个虚拟机的处理器资源之和为候选宿主机在预设时间段的已利用处理器资源。

作为一种可选的实施例,获取运行于候选宿主机上的每个虚拟机在预设时间段的处理器资源,包括:获取虚拟机的虚拟处理器数量、候选宿主机创建的总虚拟处理器数量、每个预设时间段的虚拟处理器平均利用率以及候选宿主机的物理核数量;获取虚拟机的虚拟处理器数量与候选宿主机创建的总虚拟处理器数量的比值;获取候选宿主机的物理核数量与候选宿主机创建的总虚拟处理器数量之间的最小值;求取比值、虚拟处理器平均利用率以及最小值的乘积;确定乘积为虚拟机在预设时间段的处理器资源。

在一种可选的实施例中,虚拟机的vcpu数量为a,宿主机的总vcpu为b,vcpu的平均利用率为c,宿主机的物理核数量为d,则虚拟机的资源e=(a/b)*c*min(d,b)。更具体的,假设宿主机nc1具有56个物理核,创建出80个vcpu,其中虚拟机vm1具有8个vcpu,vm1的平均cpu利用率为50%,则vm1占用物理核的资源为(8/80)*50*56=280。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

实施例3

根据本发明实施例,还提供了一种用于实施上述拟机的调度方法的虚拟机的调度装置,如图6所示,该装置600包括:

预测模块602,用于预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率。

获取模块604,用于获取候选宿主机的已利用资源数据和可用资源数据。

叠加模块606,用于将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果。

比对模块608,用于分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

此处需要说明的是,上述预测模块602、获取模块604、叠加模块606和比对模块608对应于实施例1中的步骤s21至步骤s27,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

作为一种可选的实施例,时间周期包括多个预设时间段,预测模块包括:第一获取子模块,用于获取预测模型,其中,预测模型用于表征具有不同属性参数的虚拟机的预测结果与预设时间段的对应关系,属性参数包括:虚拟机的标识、规格和应用类型;输入子模块,用于将虚拟机的属性参数输入至预测模型;接收子模块,用于接收预测模型输出的虚拟机的预测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:第二获取子模块,用于在将虚拟机的属性参数输入至预测模型之前,获取预测模型的置信度和预设的置信度阈值;进入子模块,用于如果预测模型的置信度大于或等于置信度阈值,则进入将虚拟机的属性参数输入至预测模型的步骤;预测子模块,用于如果预测模型的置信度小于置信度阈值,则根据虚拟机的虚拟处理器资源和虚拟处理器利用率预测虚拟机在下一个时间周期内所需的资源数据。

作为一种可选的实施例,第一获取子模块包括:第一获取单元,用于获取样本数据,其中,样本数据包括多个样本虚拟机的属性信息和样本虚拟机在预设时间段的历史资源数据;训练单元,用于根据样本数据进行模型训练,得到预测模型。

作为一种可选的实施例,第一获取单元包括:采集子单元,用于按照预设的采样时间采集虚拟机的多个虚拟处理器的平均资源数据,其中,预设时间段包括多个采样时间;确定子单元,用于确定一个预设时间段内的最大平均资源数据为预设时间段的历史资源数据。

作为一种可选的实施例,时间周期包括多个预设时间段,在资源数据为处理器资源的情况下,获取模块包括:第三获取子模块,用于获取运行于候选宿主机上的每个虚拟机在预设时间段所使用的资源;第一确定子模块,用于确定每个虚拟机在预设时间段所使用的资源之和为宿主机在预设时间段的已利用处理器资源。

作为一种可选的实施例,获取模块包括:第四获取子模块,用于获取宿主机的总处理器资源和预设利用率阈值,其中,宿主机的总处理器资源为宿主机的物理核数量与预设常数的乘积;第二确定子模块,用于确定宿主机的总处理器资源和预设利用率阈值的乘积为候选宿主机的可用资源数据。

作为一种可选的实施例,第三获取子模块包括:第二获取单元,用于获取虚拟机的虚拟处理器数量、候选宿主机创建的总虚拟处理器数量、每个预设时间段的虚拟处理器平均利用率以及候选宿主机的物理核数量;第三获取单元,用于获取虚拟机的虚拟处理器数量与候选宿主机创建的总虚拟处理器数量的比值;第四获取单元,用于获取候选宿主机的物理核数量与候选宿主机创建的总虚拟处理器数量之间的最小值;比值求取单元,用于求取比值、虚拟处理器平均利用率以及最小值的乘积;第一确定单元,用于确定乘积为虚拟机在预设时间段的处理器资源。

作为一种可选的实施例,时间周期包括多个预设时间段,比对模块包括:筛选子模块,用于从候选宿主机中筛选出满足条件的候选宿主机,其中,条件包括:每个预设时间段的叠加结果不超过宿主机的可用资源数据;第三确定子模块,用于确定满足条件的候选宿主机为虚拟机对应的目标宿主机。

作为一种可选的实施例,在满足条件的候选宿主机为多个的情况下,第三确定子模块包括:第五获取单元,用于获取每个资源数据对应权重值;加权单元,用于根据权重值对叠加结果进行加权,得到满足条件的候选宿主机对应的加权结果;第二确定单元,用于确定加权结果最小的候选宿主机为虚拟机对应的目标宿主机。

作为一种可选的实施例,上述装置还包括:迁移模块,用于在分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的宿主机之后,将虚拟机迁移至虚拟机对应的目标宿主机。

作为一种可选的实施例,在虚拟机为新创建的虚拟机的情况下,预测模块包括:第五获取子模块,用于获取新创建的虚拟机的标识和规格;查找子模块,用于查找与新创建的虚拟机的标识和/或规格相同的目标虚拟机;第四确定子模块,用于确定目标虚拟机的预测结果为新创建的虚拟机的预测结果。

实施例4

根据本发明实施例,还提供了一种用于实施上述拟机的调度方法的虚拟机的调度装置,如图7所示,该装置700包括:

预测模块702,用于预测虚拟机在下一个时间周期内所需的处理器资源,得到预测结果。

获取模块704,用于获取候选宿主机的已利用处理器资源和可用处理器资源。

叠加模块706,用于将预测结果与每个候选宿主机的已利用处理器资源叠加,得到每个候选宿主机的叠加结果。

比对模块708,用于分别将每个候选宿主机的叠加结果与每个候选宿主机的可用处理器资源进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

此处需要说明的是,上述预测模块602、获取模块604、叠加模块606和比对模块608对应于实施例1中的步骤s21至步骤s27,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

作为一种可选的实施例,预测模块包括:第一获取子模块,用于获取预设常数、宿主机的物理核数量以及预设阈值,其中,预设阈值小于1;第一确定子模块,用于确定预设常数、宿主机的物理核数量以及预设阈值的乘积为宿主机的可用处理器资源。

作为一种可选的实施例,时间周期包括多个预设时间段,获取模块包括:第二获取子模块,用于获取运行于候选宿主机上的每个虚拟机在预设时间段的处理器资源;第二确定子模块,用于确定每个虚拟机的处理器资源之和为候选宿主机在预设时间段的已利用处理器资源。

作为一种可选的实施例,第二获取子模块包括:第一获取单元,用于获取虚拟机的虚拟处理器数量、候选宿主机创建的总虚拟处理器数量、每个预设时间段的虚拟处理器平均利用率以及候选宿主机的物理核数量;第二获取单元,用于获取虚拟机的虚拟处理器数量与候选宿主机创建的总虚拟处理器数量的比值;第三获取单元,用于获取候选宿主机的物理核数量与候选宿主机创建的总虚拟处理器数量之间的最小值;比值求取单元,用于求取比值、虚拟处理器平均利用率以及最小值的乘积;确定单元,用于确定乘积为虚拟机在预设时间段的处理器资源。

实施例5

根据本发明实施例,还提供了一种系统,包括:处理器;以及存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:

预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将所述预测结果与每个候选宿主机的所述已利用资源数据叠加,得到所述每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从所述候选宿主机中选择所述虚拟机对应的目标宿主机。

实施例6

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行虚拟机的调度方法中以下步骤的程序代码:预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

可选地,图8是根据本发明实施例6的一种计算机终端的结构框图。如图8所示,该计算机终端a可以包括:一个或多个(图中仅示出一个)处理器802、存储器804、以及外设接口806。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的虚拟机的调度方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的调度方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

可选的,上述处理器还可以执行如下步骤的程序代码:获取预测模型,其中,预测模型用于表征具有不同属性参数的虚拟机的预测结果与预设时间段的对应关系,属性参数包括:虚拟机的标识、规格和应用类型;将虚拟机的属性参数输入至预测模型;接收预测模型输出的虚拟机的预测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:在将虚拟机的属性参数输入至预测模型之前,上述方法还包括:获取预测模型的置信度和预设的置信度阈值;如果预测模型的置信度大于或等于置信度阈值,则进入将虚拟机的属性参数输入至预测模型的步骤;如果预测模型的置信度小于置信度阈值,则根据虚拟机的虚拟处理器资源和虚拟处理器利用率预测虚拟机在下一个时间周期内所需的资源数据。

可选的,上述处理器还可以执行如下步骤的程序代码:获取样本数据,其中,样本数据包括多个样本虚拟机的属性信息和样本虚拟机在预设时间段的历史资源数据;根据样本数据进行模型训练,得到预测模型。

可选的,上述处理器还可以执行如下步骤的程序代码:按照预设的采样时间采集虚拟机的多个虚拟处理器的平均资源数据,其中,预设时间段包括多个采样时间;确定一个预设时间段内的最大平均资源数据为预设时间段的历史资源数据。

可选的,上述处理器还可以执行如下步骤的程序代码:获取运行于候选宿主机上的每个虚拟机在预设时间段所使用的资源;确定每个虚拟机在预设时间段所使用的资源之和为宿主机在预设时间段的已利用处理器资源。

可选的,上述处理器还可以执行如下步骤的程序代码:获取宿主机的总处理器资源和预设利用率阈值,其中,宿主机的总处理器资源为宿主机的物理核数量与预设常数的乘积;确定宿主机的总处理器资源和预设利用率阈值的乘积为候选宿主机的可用资源数据。

可选的,上述处理器还可以执行如下步骤的程序代码:获取虚拟机的虚拟处理器数量、候选宿主机创建的总虚拟处理器数量、每个预设时间段的虚拟处理器平均利用率以及候选宿主机的物理核数量;获取虚拟机的虚拟处理器数量与候选宿主机创建的总虚拟处理器数量的比值;获取候选宿主机的物理核数量与候选宿主机创建的总虚拟处理器数量之间的最小值;求取比值、虚拟处理器平均利用率以及最小值的乘积;确定乘积为虚拟机在预设时间段的处理器资源。

可选的,上述处理器还可以执行如下步骤的程序代码:时间周期包括多个预设时间段,从候选宿主机中筛选出满足条件的候选宿主机,其中,条件包括:每个预设时间段的叠加结果不超过宿主机的可用资源数据;确定满足条件的候选宿主机为虚拟机对应的目标宿主机。

可选的,上述处理器还可以执行如下步骤的程序代码:在满足条件的候选宿主机为多个的情况下,获取每个资源数据对应权重值;根据权重值对叠加结果进行加权,得到满足条件的候选宿主机对应的加权结果;确定加权结果最小的候选宿主机为虚拟机对应的目标宿主机。

可选的,上述处理器还可以执行如下步骤的程序代码:将虚拟机迁移至虚拟机对应的目标宿主机。

可选的,上述处理器还可以执行如下步骤的程序代码:在虚拟机为新创建的虚拟机的情况下,获取新创建的虚拟机的标识和规格;查找与新创建的虚拟机的标识和/或规格相同的目标虚拟机;确定目标虚拟机的预测结果为新创建的虚拟机的预测结果。

采用本发明实施例,通过预测调度虚拟机在未来一个周期内使用的资源数据,并通过获取的候选宿主机当前的已用资源数据和可用资源数据,来判断应该将虚拟机迁移至哪个候选宿主机,即确定目标宿主机,从而能够较准确的为虚拟机选择宿主机,而无需每个宿主机为每个虚拟机的波峰预留资源,减少了资源的浪费,尽可能地将虚拟机均匀地调度分布在不同宿主机上,以达到实体机的负载平稳均衡。

由此,本申请上述实施例解决了现有技术中宿主机需要为每个虚拟机的波峰预留资源,导致存在较大的资源浪费的技术问题。

本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端8还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例7

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的虚拟机的调度方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:预测虚拟机在下一个时间周期内所需的资源数据,得到预测结果,其中,资源数据包括如下至少一项:处理器资源、处理器争抢次数、缓存未命中次数和功耗利用率;获取候选宿主机的已利用资源数据和可用资源数据;将预测结果与每个候选宿主机的已利用资源数据叠加,得到每个候选宿主机的叠加结果;分别将每个候选宿主机的叠加结果与每个宿主机的可用资源数据进行比对,从候选宿主机中选择虚拟机对应的目标宿主机。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1