虚拟机合并方法、装置、电子设备及存储介质与流程

专利2022-06-29  71


本发明涉及云数据中心技术领域,尤其涉及一种虚拟机合并方法、装置、电子设备及存储介质。



背景技术:

云数据中心可以利用虚拟化技术使得不同的虚拟机共享同一物理服务器或主机,以此提高服务器的资源利用率。基于虚拟化技术,云数据中心可以动态地进行虚拟机合并,以降低数据中心的能耗。即通过虚拟机的迁移和合并将虚拟机部署至最少数量的物理主机上,使得处于活动开启状态下的主机数量达到最小,同时将闲置主机转换为节能休眠模式。动态虚拟机合并具有虚拟机在线迁移能力,即可以使处于运行状态下的虚拟机在不同主机间迁移,这对于低负载主机和高负载主机均是有利的。通过虚拟机的迁移操作,数据中心内的资源管理也更加灵活。然而,在线迁移对于执行于虚拟机上的应用任务的性能具有负面影响,可能导致无法提供云服务提供方与用户间的服务质量需求,即可能导致服务等级协议(servicelevelagreement,sla)的违例。因此,在考虑数据中心的能效的同时,还需要降低动态虚拟机合并过程中的虚拟机迁移量,在数据中心能效与服务性能之间取得均衡。

动态的虚拟机合并类似于装箱问题,是np难问题(non-deterministicpolynomial),但又不同于装箱问题。传统的装箱问题仅仅是在给定物品的前提下,最小化使用箱子的数量。但这种思想无法直接应用于云数据中心内的动态虚拟机合并,因为传统装箱问题中箱子是同质的,但数据中心内的物理主机是异质的,即拥有不同的资源配置。仅仅使得物理主机的使用数量最小,并不代表能效是最优的。以传统的装箱问题的求解方式通过最小化物理主机使用数量的方式去解决动态的虚拟机合并问题,势必会带来很多不必要的虚拟机迁移,并增大服务等级协议sla违例的风险。



技术实现要素:

本发明的主要目的在于提供一种虚拟机合并方法、装置、电子设备及存储介质,旨在实现低能耗、低sla违例概率的虚拟机合并。

为实现上述目的,本发明提供了一种虚拟机合并方法,所述虚拟机合并方法包括:

获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;

获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;

按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;

对各物理主机进行负载预测,根据预测结果选取预测超载主机;

按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

优选地,所述获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机的步骤,具体包括:

获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果;

获取各物理主机对应的可容纳负载;

根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;

根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。

优选地,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤,具体包括:

获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;

分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;

对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;

根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。

优选地,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤之后,所述方法还包括:

在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤;

在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。

优选地,所述对各物理主机进行负载预测,根据预测结果选取预测超载主机的步骤,具体包括:

根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载;

在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。

优选地,所述按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移的步骤,具体包括:

根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;

将不属于所述超载列表的物理主机作为待选物理主机;

对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;

获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;

分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;

对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;

根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。

优选地,其特征在于,所述负载需求包括:

cpu需求、内存需求、网络带宽需求及存储需求。

此外,为实现上述目的,本发明还提出一种虚拟机合并装置,所述虚拟机合并装置包括:分配模块、选取模块、迁移模块及预测模块;其中,

所述分配模块,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;

所述选取模块,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;

所述迁移模块,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;

所述预测模块,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机;

所述迁移模块,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

此外,为实现上述目的,本发明还提出一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机合并程序,所述虚拟机合并程序配置为实现如上所述的虚拟机合并方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储虚拟机合并程序,所述虚拟机合并程序被处理器执行时实现如上所述的虚拟机合并方法的步骤。

本发明通过获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;对各物理主机进行负载预测,根据预测结果选取预测超载主机;按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。实现了提升资源利用率,降低能耗,避免sla违例风险的技术效果。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的电子设备结构示意图。

图2为本发明虚拟机合并方法第一实施例的流程示意图;

图3为本发明虚拟机合并方法第二实施例的流程示意图。

图4为本发明虚拟机合并装置一实施例的功能模块图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

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

另外,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的电子设备结构示意图。

如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及虚拟机合并程序。

在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在电子设备中,所述电子设备通过处理器1001调用存储器1005中存储的虚拟机合并程序,并执行本发明实施例提供的虚拟机合并方法。

本发明实施例提供了一种虚拟机合并方法,参照图2,图2为本发明一种虚拟机合并方法第一实施例的流程示意图。

需要说明的是,本发明的实施基于多台物理主机及多台虚拟机。

本实施例中,所述虚拟机合并方法包括以下步骤:

步骤s100:获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机。

需要说明的是,所述负载需求包括:cpu需求、内存需求、网络带宽需求及存储需求。所述负载需求对应了物理主机拥有的四种资源类型,cpu、内存、存储及网络带宽。

需要说明的是,步骤s100具体包括:获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果。获取各物理主机对应的可容纳负载;根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。

具体实施中,例如:云数据中心拥有m台异质物理主机,表示为h={h1,h2,,…,hm}。每一台物理主机hi拥有四种资源类型:cpu、内存、存储和网络带宽。通过虚拟化技术,多台虚拟机可以同时部署在同一物理主机上,每台虚拟机可以运行不同的任务。云用户为了执行应用任务,可以在任意时刻向云数据中心以虚拟机的形式提交负载执行需求,假设此时虚拟机请求数量为n台,表示为v={v1,v2,…,vn}。即,现在需要将n台虚拟机部署在m台物理主机上。

易于理解的是,由于物理主机和虚拟机上的资源需求会随着提交负载的变化而发生变化,为了优化虚拟机部署方案,需求根据负载动态的进行虚拟机合并,进而实现能效与性能的综合优化。将虚拟机合并的目的是提升物理主机的资源利用率,使用更少的物理主机实现虚拟机的负载需求,降低实现虚拟机需求的总能耗,因此分配时需要对虚拟机进行按需分配。对虚拟机的负载需求进行降序排序,再依次根据资源利用率分配至物理主机,可提升分配效率及实际资源利用率。

具体实施中,例如:云数据中心内现有三台异质物理主机h={h1,h2,h3},五台虚拟机v={v1,v2,v3,v4,v5}。三台物理主机资源能力分别为9、10、12,五台虚拟机请求的资源分别为5、2、3、8、6。虚拟机按请求的资源利用降序排列为:v4(8)、v5(6)、v1(5)、v3(3)、v2(2)。首先为虚拟机v4寻找部署的物理主机,其负载值为8,部署在三台主机中得到的利用率分别为8/9、8/10、8/12。因此,主机h1的利用率最大,故虚拟机v4部署在主机h1上。下一步部署虚拟机v5,主机h1的剩余能力为1,无法满足虚拟机v5的资源请求,仅剩下主机h2和h3,部署在这两台主机上的利用率分别为6/10和6/12,前者利用率更高,故虚拟机v5部署在主机h2上。根据这种方式计算可知,虚拟机v1部署在主机h3,虚拟机v3部署在主机h2,虚拟机v2部署在主机h3。

易于理解的是,在对所述虚拟机分配后,还需对物理主机进行负载检测,获得当前的物理主机负载。

步骤s200:获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机。

易于理解的是,为进一步提升物理主机的资源利用率,可从资源利用率最小的主机,即从所述负载最小主机上的虚拟机开始进行迁移。将所述负载最小主机上的虚拟机迁移到其他物理主机上。

步骤s300:按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机。

需要说明的是,所述步骤s300具体包括:获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。

易于理解的是,所述负载最小主机上的虚拟机数量大于等于一,对所述负载最小主机上的虚拟机进行遍历,然后依次迁移到其他物理主机上。为保证虚拟机迁移到的物理主机不超载,需要使预测负载总量和负载总量满足第一迁移条件。而所述第一迁移条件包括两项约束条件,即,对负载总量和对预测负载总量的约束条件。

具体实施中,例如:根据虚拟机初始的部署方案,按主机负载的降序排列,得到更新后的主机列表h。将列表中最后的一个主机,即负载最小的主机定义为hsou。然后,根据部署在主机hsou上的虚拟机自身负载的降序排列,得到主机hsou上的虚拟机列表,定义为vcur。依次选择vcur中的每一个虚拟机v,在除了主机hsou之外的主机列表h(即h-hsou)中依次寻找该虚拟机的迁移目标主机hdes。由于主机按负载降序排列,因此该步骤将优先利用负载更高的主机作为迁移目标主机。虚拟机迁移的目标主机需要满足两类约束条件,以避免出现sla的违例以及多次重复的虚拟机迁移。第一类约束条件需要确保迁移目标主机hdes的剩余资源能力可以满足虚拟机的资源请求。在多维度资源条件下,需要同时满足四种资源类型的能力约束。同时,为了避免资源利用接近于满载100%,增大sla违例的风险,可以设置迁移虚拟机的负载与迁移目标主机已被使用的负载总和小于其能力的预设负载,所述预设负载可以设置为其能力的80%,具体实施中以预防超载为目的进行设置,具体数值不加以限制。第二类约束条件需要确保迁移目标主机hdes不会在部署迁移虚拟机后变为可预测的超载主机。此时,由于负载的动态变化,需要同时对迁移目标主机hdes和迁移虚拟机v的负载作出预测。同时,为了减小预测准确性的影响,可以设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设超载负载,所述预测超载负载可以设置为其能力的60%,具体实施中以预防超载为目的进行设置,具体数值不加以限制。

步骤s400:对各物理主机进行负载预测,根据预测结果选取预测超载主机。

需要说明的是,将所述最小负载主机上的虚拟机迁移后,完成了合并的第一阶段,即,降低物理主机的使用个数,从而降低能耗;随后进行合并的第二阶段,防止物理主机超载而出现sla违例的风险。

步骤s500:按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

需要说明的是,所述步骤s500具体包括:根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;将不属于所述超载列表的物理主机作为待选物理主机;对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。

具体实施中,例如:确定主机为预测超载主机后,将所有预测超载主机放入超载列表hoverload,按序遍历所述超载列表hoverload中的每一台主机,根据该主机上部署的虚拟机的负载的降序排列对虚拟机进行排序,得到该主机上排序后的虚拟机集合vover,选择vover的第一个虚拟机v,即负载最大的目标虚拟机。在除了超载列表hoverload之外的待选物理主机列表h-hoverload中依次寻找该虚拟机的迁移目标主机hdes,迁移目标主机同样需要满足前文所述的两个约束条件。如果无法找到任意一个可以满足要求的迁移目标主机,则重新开启一个新的物理主机用于部署该迁移虚拟机。虚拟机迁移过程直到其负载降低至预测阈值th之下为止。

本实施例通过上述方法,使得虚拟机按需分配到物理主机,使得物理主机能够具有最大的资源利用率,又通过迁移最小负载主机上的虚拟机,将资源利用集中,随后对工作中的物理主机进行负载预测,防止物理主机超载,实现了提升资源利用率,降低能耗,避免sla违例风险的技术效果。

基于本发明虚拟机合并方法第一实施例,提出本发明虚拟机合并方法第二实施例,参考图3,图3为本发明一种虚拟机合并方法第二实施例的流程示意图。

易于理解的是,所述负载需求包括:cpu需求、内存需求、网络带宽需求及存储需求。对应物理主机四种资源,将每一台物理主机hi的四种资源类型的总体能力定义为矢量其中,表示物理主机hi的cpu能力,表示物理主机hi的内存能力,表示物理主机hi的存储能力,表示物理主机hi的网络带宽能力。将每一台物理主机hi已经被使用的四种资源类型的能力定义为矢量其中,表示物理主机hi已被使用的cpu能力,表示物理主机hi已被使用的内存能力,表示物理主机hi已被使用的存储能力,表示物理主机hi已被使用的网络带宽能力。对于一台物理主机而言,其已被使用的资源能力为该主机上所部署的所有虚拟机利用该资源的总和。将每一台虚拟机vj的四种资源类型的总体能力定义为矢量其中,表示虚拟机vj的cpu能力,表示虚拟机vj的内存能力,表示虚拟机vj的存储能力,表示虚拟机vj的网络带宽能力。将一台虚拟机vj已经被负载使用的四种资源类型的能力定义为矢量其中,表示虚拟机vj已被使用的cpu能力,表示虚拟机vj已被使用的内存能力,表示虚拟机vj已被使用的存储能力,表示虚拟机vj已被使用的网络带宽能力。

主机hi的负载定义为四种资源类型的资源利用总和,令loadi表示主机hi的负载,则:

其中,表示虚拟机在物理主机hi上分配的cpu能力与主机hi的总体cpu能力之比,表示虚拟机在物理主机hi上分配的内存能力与主机hi的总体内存能力之比,表示虚拟机在物理主机hi上分配的存储能力与主机hi的总体存储能力之比,表示虚拟机在物理主机hi上分配的网络带宽能力与主机hi的总体网络带宽能力之比,即:

虚拟机vj的负载定义为四种资源类型被执行负载占用的资源总和,令loadj表示虚拟机vj的负载,则:

需要说明的是,表示虚拟机vj已被负载利用的cpu能力与虚拟机vj的总体cpu能力之比,表示虚拟机vj已被负载利用的内存能力与虚拟机vj的总体内存能力之比,表示虚拟机vj已被负载利用的存储能力与虚拟机vj的总体存储能力之比,表示虚拟机vj已被负载利用的网络带宽能力与虚拟机vj的总体网络带宽能力之比,即:

需要说明的是,所述步骤s300之后,所述方法还包括:

步骤s301:在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤。

易于理解的是,基于上述四种资源,第一实施例中第一迁移条件包括的两个约束条件实际为被使用的负载总和小于其能力的预设值。本实施例以所述预设值为能力的80%为例进行说明,即:

易于理解的是,设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设值,本实施例以预设值为能力的60%为例进行说明。即:

其中,表示迁移目标主机cpu资源上的预测负载,表示迁移虚拟机cpu资源上的预测负载,表示迁移目标主机内存资源上的预测负载,表示迁移虚拟机内存资源上的预测负载,表示迁移目标主机存储资源上的预测负载,表示迁移虚拟机存储资源上的预测负载,表示迁移目标主机网络带宽资源上的预测负载,迁移虚拟机网络带宽资源上的预测负载。

易于理解的是,最小负载主机随着迁移的过程会变为无负载状态,而次最小负载主机会成为新的最小负载主机,依次选取最小负载主机进行虚拟机迁移,使得虚拟机逐渐合并到了其他物理主机上,在预防迁移后出现超载的情况下,提升了资源利用率。

易于理解的是,在完成低负载主机上虚拟机v的迁移后,需要更新该主机的负载以及迁移目标主机上的负载,并保留迁移方案,方案中包括源主机、迁移目标主机以及迁移的虚拟机。若可以找到满足两类约束条件的迁移目标主机,且可以将低负载主机上的全部虚拟机进行迁移,则完全虚拟机迁移过程,并将该低负载主机转换为节能休眠模型,节省主机能耗;否则,维持该主机上所有虚拟机部署不变,不作迁移,维持该主机的负载。低负载主机的虚拟机迁移过程的结束标志是按序遍历的当前主机无法完成所有虚拟机的迁移。

步骤s302:在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。

易于理解的是,所述无负载状态即为所述负载最小主机上没有虚拟机,即所述最小负载主机被闲置。由于虚拟机对于资源的利用会随着动态的负载状况而发生变化,为了更好实现能效和性能优化,需要通过虚拟机迁移的方式进行虚拟机合并,使得物理主机资源能够更高效的利用,同时关闭闲置主机,达到节能目标。

步骤s400具体包括:

步骤s401:根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载。

易于理解的是,步骤s400的目的是防止物理主机出现超载现象而对物理主机进行负载预测,所述后续负载为物理主机在运行中会出现的负载,所述后续负载可能高于当前负载也可能低于当前负载。

需要说明的是,超载主机预测采用最小中位数平方回归法,该方法可以用于最小化平方冗余的中位值。令x表示输入数据值(即主机历史资源利用率),y表示输出数据值(即资源利用预测值),为了得到最小中位数平方回归模型,需要计算输出值与输入值间的线性表达式,将其定义为:

y=α βx ε

其中,α和β表示回归因子,ε表示冗余量。估算回归模型如下:

y'=a bx

εi=yi-yi'

其中,a和b分别用于表示α和β的估算值,εi表示预测输出值yi’与实际输出值yi间的差值,实际输出值yi可视为第i个资源利用率。模型的目标是最小化冗余差值ε。若所有冗余差值εi均为0,即可视为在给定的资源利用率集合下回归模型达到最优。令物理主机数量为m,ru表示m台主机的资源利用率集合,模型目标是对a和b作出估算,这两个参数分别为给定的主机资源利用率数值集下对资源利用率作出预测的拟合直线的截距和斜率。通过估算a和b值,在主机资源利用率数据集合下实现直线拟合,从而最小化平方冗余sr值,即:

令最小平方估算α和β分别代表a和b。为了最小化α和β的取值,求上式关于α和β的偏微分并令结果为0,则:

简化第二个等式,可以得到a的值,即:

同样可以根据上式得到b的取值:

其中,xavg和yavg分别表示观察变量xi和yi的均值,i=1,2,…,m。最小中位平方拟合由a、b值确定后的冗余中位值决定,即:

lr=medi(yi-(a bxi))2

因此,主机是否决定为超载,可以下式计算的阈值th(%)决定:

th=1-s×lr

其中,s表示安全系数,取值范围为(0,1),决定虚拟机合并的紧迫程度。若s取较小值,则能耗更小,但sla违例更高;反之亦然。

得到阈值th之后,即可判断主机是否出现超载。利用该阈值乘以主机的资源能力,即可获得主机的预测负载值。若预测负载值大于主机资源能力,即可认为出现超载。同时,四类资源类型中只要有一类资源能力出现超载,即认为发生超载。

步骤s402:在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。

易于理解的是,所述预测超载负载优选地可设置为主机资源能力,或约为主机资源能力的值,均以防止物理主机超载为目的进行设置,本发明实施例不对此加以限定。本发明实施例以主机资源能力为预设超载负载进行说明。

本发明实施例通过上述方法,对物理主机的负载状态进行预测,将物理主机上的负载最大虚拟机迁移,降低了物理主机的超载风险,降低了sla违例风险。

此外,为实现上述目的,本发明还提出一种虚拟机合并装置,参考图4,图4为本发明虚拟机合并装置功能模块图。所述虚拟机合并装置包括:分配模块10、选取模块20、迁移模块30及预测模块40。

所述分配模块10,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机。

需要说明的是,所述负载需求包括:cpu需求、内存需求、网络带宽需求及存储需求。所述负载需求对应了物理主机拥有的四种资源类型,cpu、内存、存储及网络带宽。

需要说明的是,分配模块10具体用于:获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果。获取各物理主机对应的可容纳负载;根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。

易于理解的是,所述负载需求包括:cpu需求、内存需求、网络带宽需求及存储需求。对应物理主机四种资源。

具体实施中,例如:云数据中心拥有m台异质物理主机,表示为h={h1,h2,…,hm}。每一台物理主机hi拥有四种资源类型:cpu、内存、存储和网络带宽。通过虚拟化技术,多台虚拟机可以同时部署在同一物理主机上,每台虚拟机可以运行不同的任务。云用户为了执行应用任务,可以在任意时刻向云数据中心以虚拟机的形式提交负载执行需求,假设此时虚拟机请求数量为n台,表示为v={v1,v2,…,vn}。即,现在需要将n台虚拟机部署在m台物理主机上。

将每一台物理主机hi的四种资源类型的总体能力定义为矢量其中,表示物理主机hi的cpu能力,表示物理主机hi的内存能力,表示物理主机hi的存储能力,表示物理主机hi的网络带宽能力。将每一台物理主机hi已经被使用的四种资源类型的能力定义为矢量其中,表示物理主机hi已被使用的cpu能力,表示物理主机hi已被使用的内存能力,表示物理主机hi已被使用的存储能力,表示物理主机hi已被使用的网络带宽能力。对于一台物理主机而言,其已被使用的资源能力为该主机上所部署的所有虚拟机利用该资源的总和。将每一台虚拟机vj的四种资源类型的总体能力定义为矢量其中,表示虚拟机vj的cpu能力,表示虚拟机vj的内存能力,表示虚拟机vj的存储能力,表示虚拟机vj的网络带宽能力。将一台虚拟机vj已经被负载使用的四种资源类型的能力定义为矢量其中,表示虚拟机vj已被使用的cpu能力,表示虚拟机vj已被使用的内存能力,表示虚拟机vj已被使用的存储能力,表示虚拟机vj已被使用的网络带宽能力。

主机hi的负载定义为四种资源类型的资源利用总和,令loadi表示主机hi的负载,则:

其中,表示虚拟机在物理主机hi上分配的cpu能力与主机hi的总体cpu能力之比,表示虚拟机在物理主机hi上分配的内存能力与主机hi的总体内存能力之比,表示虚拟机在物理主机hi上分配的存储能力与主机hi的总体存储能力之比,表示虚拟机在物理主机hi上分配的网络带宽能力与主机hi的总体网络带宽能力之比,即:

虚拟机vj的负载定义为四种资源类型被执行负载占用的资源总和,令loadj表示虚拟机vj的负载,则:

需要说明的是,表示虚拟机vj已被负载利用的cpu能力与虚拟机vj的总体cpu能力之比,表示虚拟机vj已被负载利用的内存能力与虚拟机vj的总体内存能力之比,表示虚拟机vj已被负载利用的存储能力与虚拟机vj的总体存储能力之比,表示虚拟机vj已被负载利用的网络带宽能力与虚拟机vj的总体网络带宽能力之比,即:

易于理解的是,由于物理主机和虚拟机上的资源需求会随着提交负载的变化而发生变化,为了优化虚拟机部署方案,需求根据负载动态的进行虚拟机合并,进而实现能效与性能的综合优化。将虚拟机合并的目的是提升物理主机的资源利用率,使用更少的物理主机实现虚拟机的负载需求,降低实现虚拟机需求的总能耗,因此分配时需要对虚拟机进行按需分配。对虚拟机的负载需求进行降序排序,再依次根据资源利用率分配至物理主机,可提升分配效率及实际资源利用率。

具体实施中,例如:云数据中心内现有三台异质物理主机h={h1,h2,h3},五台虚拟机v={v1,v2,v3,v4,v5}。三台物理主机资源能力分别为9、10、12,五台虚拟机请求的资源分别为5、2、3、8、6。虚拟机按请求的资源利用降序排列为:v4(8)、v5(6)、v1(5)、v3(3)、v2(2)。首先为虚拟机v4寻找部署的物理主机,其负载值为8,部署在三台主机中得到的利用率分别为8/9、8/10、8/12。因此,主机h1的利用率最大,故虚拟机v4部署在主机h1上。下一步部署虚拟机v5,主机h1的剩余能力为1,无法满足虚拟机v5的资源请求,仅剩下主机h2和h3,部署在这两台主机上的利用率分别为6/10和6/12,前者利用率更高,故虚拟机v5部署在主机h2上。根据这种方式计算可知,虚拟机v1部署在主机h3,虚拟机v3部署在主机h2,虚拟机v2部署在主机h3。

所述选取模块20,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机。

易于理解的是,为进一步提升物理主机的资源利用率,可从资源利用率最小的主机,即从所述负载最小主机上的虚拟机开始进行迁移。将所述负载最小主机上的虚拟机迁移到其他物理主机上。

所述迁移模块30,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机。

需要说明的是,所述迁移模块30具体用于:获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。

易于理解的是,所述负载最小主机上的虚拟机数量大于等于一,对所述负载最小主机上的虚拟机进行遍历,然后依次迁移到其他物理主机上。为保证虚拟机迁移到的物理主机不超载,需要使预测负载总量和负载总量满足第一迁移条件。而所述第一迁移条件包括两项约束条件,即,对负载总量和对预测负载总量的约束条件。

具体实施中,例如:根据虚拟机初始的部署方案,按主机负载的降序排列,得到更新后的主机列表h。将列表中最后的一个主机,即负载最小的主机定义为hsou。然后,根据部署在主机hsou上的虚拟机自身负载的降序排列,得到主机hsou上的虚拟机列表,定义为vcur。依次选择vcur中的每一个虚拟机v,在除了主机hsou之外的主机列表h(即h-hsou)中依次寻找该虚拟机的迁移目标主机hdes。由于主机按负载降序排列,因此该步骤将优先利用负载更高的主机作为迁移目标主机。虚拟机迁移的目标主机需要满足两类约束条件,以避免出现sla的违例以及多次重复的虚拟机迁移。第一类约束条件需要确保迁移目标主机hdes的剩余资源能力可以满足虚拟机的资源请求。在多维度资源条件下,需要同时满足四种资源类型的能力约束。同时,为了避免资源利用接近于满载100%,增大sla违例的风险,可以设置迁移虚拟机的负载与迁移目标主机已被使用的负载总和小于其能力的预设负载,所述预设负载可以设置为80%。即:

第二类约束条件需要确保迁移目标主机hdes不会在部署迁移虚拟机后变为可预测的超载主机。此时,由于负载的动态变化,需要同时对迁移目标主机hdes和迁移虚拟机v的负载作出预测。同时,为了减小预测准确性的影响,可以设置迁移虚拟机的预测负载与迁移目标主机预测的已被使用的负载总和小于其能力的预设超载负载,所述预测超载负载可以设置为60%。即:

其中,表示迁移目标主机cpu资源上的预测负载,表示迁移虚拟机cpu资源上的预测负载,表示迁移目标主机内存资源上的预测负载,表示迁移虚拟机内存资源上的预测负载,表示迁移目标主机存储资源上的预测负载,表示迁移虚拟机存储资源上的预测负载,表示迁移目标主机网络带宽资源上的预测负载,迁移虚拟机网络带宽资源上的预测负载。

易于理解的是,最小负载主机随着迁移的过程会变为无负载状态,而次最小负载主机会成为新的最小负载主机,依次选取最小负载主机进行虚拟机迁移,使得虚拟机逐渐合并到了其他物理主机上,在预防迁移后出现超载的情况下,提升了资源利用率。

易于理解的是,在完成低负载主机上虚拟机v的迁移后,需要更新该主机的负载以及迁移目标主机上的负载,并保留迁移方案,方案中包括源主机、迁移目标主机以及迁移的虚拟机。若可以找到满足两类约束条件的迁移目标主机,且可以将低负载主机上的全部虚拟机进行迁移,则完全虚拟机迁移过程,并将该低负载主机转换为节能休眠模型,节省主机能耗;否则,维持该主机上所有虚拟机部署不变,不作迁移,维持该主机的负载。低负载主机的虚拟机迁移过程的结束标志是按序遍历的当前主机无法完成所有虚拟机的迁移。

所述迁移模块30还用于在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。

易于理解的是,所述无负载状态即为所述负载最小主机上没有虚拟机,即所述最小负载主机被闲置。由于虚拟机对于资源的利用会随着动态的负载状况而发生变化,为了更好实现能效和性能优化,需要通过虚拟机迁移的方式进行虚拟机合并,使得物理主机资源能够更高效的利用,同时关闭闲置主机,达到节能目标。

所述预测模块40,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机。

需要说明的是,将所述最小负载主机上的虚拟机迁移后,完成了合并的第一阶段,即,降低物理主机的使用个数,从而降低能耗;随后进行合并的第二阶段,防止物理主机超载而出现sla违例的风险。

所述预测模块40具体用于根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载。在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。

易于理解的是,所述预测模块40的目的是防止物理主机出现超载现象而对物理主机进行负载预测,所述后续负载为物理主机在运行中会出现的负载,所述后续负载可能高于当前负载也可能低于当前负载。

需要说明的是,超载主机预测采用最小中位数平方回归法,该方法可以用于最小化平方冗余的中位值。令x表示输入数据值(即主机历史资源利用率),y表示输出数据值(即资源利用预测值),为了得到最小中位数平方回归模型,需要计算输出值与输入值间的线性表达式,将其定义为:

y=α βx ε

其中,α和β表示回归因子,ε表示冗余量。估算回归模型如下:

y'=a bx

εi=yi-yi'

其中,a和b分别用于表示α和β的估算值,εi表示预测输出值yi’与实际输出值yi间的差值,实际输出值yi可视为第i个资源利用率。模型的目标是最小化冗余差值ε。若所有冗余差值εi均为0,即可视为在给定的资源利用率集合下回归模型达到最优。令物理主机数量为m,ru表示m台主机的资源利用率集合,模型目标是对a和b作出估算,这两个参数分别为给定的主机资源利用率数值集下对资源利用率作出预测的拟合直线的截距和斜率。通过估算a和b值,在主机资源利用率数据集合下实现直线拟合,从而最小化平方冗余sr值,即:

令最小平方估算α和β分别代表a和b。为了最小化α和β的取值,求上式关于α和β的偏微分并令结果为0,则:

简化第二个等式,可以得到a的值,即:

同样可以根据上式得到b的取值:

其中,xavg和yavg分别表示观察变量xi和yi的均值,i=1,2,…,m。最小中位平方拟合由a、b值确定后的冗余中位值决定,即:

lr=medi(yi-(a bxi))2

因此,主机是否决定为超载,可以下式计算的阈值th(%)决定:

th=1-s×lr

其中,s表示安全系数,取值范围为(0,1),决定虚拟机合并的紧迫程度。若s取较小值,则能耗更小,但sla违例更高;反之亦然。

得到阈值th之后,即可判断主机是否出现超载。利用该阈值乘以主机的资源能力,即可获得主机的预测负载值。若预测负载值大于主机资源能力,即可认为出现超载。同时,四类资源类型中只要有一类资源能力出现超载,即认为发生超载。

易于理解的是,所述预测超载负载优选地可设置为主机资源能力,或约为主机资源能力的值,均以防止物理主机超载为目的进行设置,本发明实施例不对此加以限定。本发明实施例的上述讲解皆以主机资源能力为预设超载负载进行说明。

所述迁移模块30,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

所述迁移模块30具体用于根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;将不属于所述超载列表的物理主机作为待选物理主机;对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。

具体实施中,例如:确定主机为预测超载主机后,将所有预测超载主机放入超载列表hoverload,按序遍历所述超载列表hoverload中的每一台主机,根据该主机上部署的虚拟机的负载的降序排列对虚拟机进行排序,得到该主机上排序后的虚拟机集合vover,选择vover的第一个虚拟机v,即负载最大的目标虚拟机。在除了超载列表hoverload之外的待选物理主机列表h-hoverload中依次寻找该虚拟机的迁移目标主机hdes,迁移目标主机同样需要满足前文所述的两个约束条件。如果无法找到任意一个可以满足要求的迁移目标主机,则重新开启一个新的物理主机用于部署该迁移虚拟机。虚拟机迁移过程直到其负载降低至预测阈值th之下为止。

本实施例通过上述装置,使得虚拟机按需分配到物理主机,使得物理主机能够具有最大的资源利用率,又通过迁移最小负载主机上的虚拟机,将资源利用集中,随后对工作中的物理主机进行负载预测,防止物理主机超载,实现了提升资源利用率,降低能耗,避免sla违例风险的技术效果。

此外,为实现上述目的,本发明还提出一种电子设备,由于本电子设备采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。

此外,为实现上述目的,本发明还提出一种存储介质,由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的虚拟机合并方法,此处不再赘述。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

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

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种虚拟机合并方法,其特征在于,所述虚拟机合并方法包括:

获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;

获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;

按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;

对各物理主机进行负载预测,根据预测结果选取预测超载主机;

按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

2.如权利要求1所述的虚拟机合并方法,其特征在于,所述获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机的步骤,具体包括:

获取虚拟机的负载需求,并根据所述负载需求对所述虚拟机进行降序排序,以获取排序结果;

获取各物理主机对应的可容纳负载;

根据所述可容纳负载及所述负载需求计算各物理主机的最大资源利用率;

根据所述最大资源利用率和所述排序结果为所述虚拟机分配对应的物理主机。

3.如权利要求1或2所述的虚拟机合并方法,其特征在于,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤,具体包括:

获取所述负载最小主机上各虚拟机的实时负载及其他物理主机的当前负载;

分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;

对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;

根据各负载总量和获得的预测负载总量将所述负载最小主机上的虚拟机迁移至其他物理主机。

4.如权利要求1所述的虚拟机合并方法,其特征在于,所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤之后,所述方法还包括:

在所述其他物理主机不满足所述第一迁移条件时,停止执行所述按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机的步骤;

在所述负载最小主机为无负载状态时,将所述负载最小主机的当前工作模式调整为节能工作模式。

5.如权利要求1所述的虚拟机合并方法,其特征在于,所述对各物理主机进行负载预测,根据预测结果选取预测超载主机的步骤,具体包括:

根据最小中位数平方回归法对各物理主机的后续负载进行预测,并获取预测负载;

在所述预测负载大于等于预设超载负载时,将对应的物理主机作为预测超载主机。

6.如权利要求5所述的虚拟机合并方法,其特征在于,所述按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移的步骤,具体包括:

根据所述预测负载对所述预测超载主机进行降序排序,并根据排序结果生成超载列表;

将不属于所述超载列表的物理主机作为待选物理主机;

对所述超载列表进行遍历,并根据遍历结果确定所述预测超载主机中负载最大的目标虚拟机;

获取所述目标虚拟机的实时负载及各待选物理主机的当前负载;

分别将所述实时负载与所述当前负载相加,并根据相加结果构建负载总量集合;

对所述负载总量集合中的各负载总量对应的后续负载总量进行预测,获得预测负载总量;

根据各负载总量和获得的预测负载总量将所述目标虚拟机迁移至其他物理主机。

7.如权利要求1~6任一项所述的虚拟机合并方法,其特征在于,所述负载需求包括:

cpu需求、内存需求、网络带宽需求及存储需求。

8.一种虚拟机合并装置,其特征在于,所述虚拟机合并装置包括:分配模块、选取模块、迁移模块及预测模块;其中,

所述分配模块,用于获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;

所述选取模块,用于获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;

所述迁移模块,用于按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;

所述预测模块,用于对各物理主机进行负载预测,根据预测结果选取预测超载主机;

所述迁移模块,还用于按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。

9.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机合并程序,所述虚拟机合并程序配置为实现如权利要求1至7中任一项所述的虚拟机合并方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储虚拟机合并程序,所述虚拟机合并程序被处理器执行时实现如权利要求1至7任一项所述的虚拟机合并方法的步骤。

技术总结
本发明涉及云数据中心技术领域,尤其涉及一种虚拟机合并方法、装置、电子设备及存储介质。所述虚拟机合并方法包括:获取虚拟机的负载需求,根据负载需求为所述虚拟机分配对应的物理主机;获取虚拟机分配后各物理主机的当前负载,并根据所述当前负载从所述物理主机中选取负载最小主机;按照第一迁移条件将所述负载最小主机上的虚拟机迁移至其他物理主机;对各物理主机进行负载预测,根据预测结果选取预测超载主机;按照第二迁移条件对所述预测超载主机上的虚拟机进行迁移。实现了提升资源利用率,降低能耗,避免SLA违例风险的技术效果。

技术研发人员:张小庆
受保护的技术使用者:武汉轻工大学
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28266.html

最新回复(0)