一种虚拟机部署方法、装置、设备及可读存储介质与流程

文档序号:24183966发布日期:2021-03-09 13:04阅读:77来源:国知局
一种虚拟机部署方法、装置、设备及可读存储介质与流程

1.本申请涉及计算机技术领域,特别涉及一种虚拟机部署方法、装置、设备及可读存储介质。


背景技术:

2.云平台中的虚拟机可以在不同主机上进行调度。一般地,可以选择负载较小的主机部署新虚拟机,或者将负载较大的主机上的虚拟机迁移至负载较小的主机,从而使各主机的负载尽可能均衡。如此调度虚拟机,虽然可以避免个别主机的负载过大或过小,但没有考虑到整个云平台的对外服务能力,难以保障云平台中所有主机的运行性能。
3.因此,如何在调度虚拟机的同时,使云平台中所有主机的运行性能最大化,是本领域技术人员需要解决的问题。


技术实现要素:

4.有鉴于此,本申请的目的在于提供一种虚拟机部署方法、装置、设备及可读存储介质,以在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。其具体方案如下:
5.第一方面,本申请提供了一种虚拟机部署方法,包括:
6.随机设置各个萤火虫的位置,并初始化各个萤火虫的目标参数;所述各个萤火虫的位置即各个待选主机的位置;
7.将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值;所述函数计算步骤包括:根据所述处理对象的位置计算目标函数,所述目标函数能够表示:假定虚拟机部署至所述处理对象后,所有待选主机的平均性能大小;
8.判断是否达到最大迭代次数;
9.若是,则将所有目标函数值中的最大目标函数值对应的萤火虫确定为目的萤火虫,将所述目的萤火虫对应的待选主机确定为目的主机,并部署所述虚拟机至所述目的主机;
10.若否,则更新每个萤火虫的目标参数,根据更新后的所述目标参数更新每个萤火虫的位置,并执行将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值的步骤。
11.优选地,所述目标函数的计算公式为:
[0012][0013]
其中,f为所述目标函数;f
p
为假定所述虚拟机部署至所述处理对象后,所有待选主机的平均电源消耗;f
cpu
为假定所述虚拟机部署至所述处理对象后,所有待选主机的平均cpu利用率;f
load
为假定所述虚拟机部署至所述处理对象后,所有待选主机的平均资源均衡度;k1、k2、k3均为预设权重值。
[0014]
优选地,所述平均资源均衡度是假定所述虚拟机部署至所述处理对象后,根据所
有待选主机的平均cpu利用率、平均内存利用率、平均磁盘利用率和平均带宽利用率计算获得的;所述平均资源均衡度的计算公式为:
[0015][0016]
其中,f
load
为所述平均资源均衡度,u
cpu
为所述平均cpu利用率,u
mem
为所述平均内存利用率,u
hw
为所述平均带宽利用率,u
disk
为所述平均磁盘利用率。
[0017]
优选地,所述目标参数包括荧光素和步长,所述更新每个萤火虫的目标参数,包括:
[0018]
利用第一公式更新每个萤火虫的荧光素,所述第一公式为:
[0019]
l
i
(t+1)=(1-ρ)l
i
(t)+γf
i
(t+1)
[0020]
利用第二公式更新每个萤火虫的步长,所述第二公式为:
[0021][0022]
其中,l
i
(t+1)为萤火虫i在第t+1次迭代时的荧光素,ρ(0<ρ<1)为萤火虫i的荧光素挥发速度,l
i
(t)为萤火虫i在第t次迭代时的荧光素,γ为萤火虫i的荧光素更新率,f
i
(t+1)为萤火虫i在第t+1次迭代时的目标函数值;s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,s
min
为预设最小步长,s
max
为预设最大步长,t+1为当前迭代次数,t
max
为所述最大迭代次数。
[0023]
优选地,所述根据更新后的所述目标参数更新每个萤火虫的位置,包括:
[0024]
利用第三公式更新每个萤火虫的位置,所述第三公式为:
[0025][0026]
其中,x
i
(t+1)为萤火虫i在第t+1次迭代时的位置,x
i
(t)为萤火虫i在第t次迭代时的位置,s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,x
j
(t)萤火虫j在第t次迭代时的位置,||x
j
(t)-x
i
(t)||为萤火虫i与萤火虫j位置的欧式距离;
[0027]
其中,萤火虫j为基于轮盘赌法则,在萤火虫i第t次迭代时的决策域内选择的邻居萤火虫,且萤火虫j的荧光素大于萤火虫i的荧光素。
[0028]
优选地,所述目标参数还包括决策域,利用第四公式更新每个萤火虫的决策域,所述第四公式为:
[0029][0030]
其中,为萤火虫i在第t+1次迭代时的决策域,r
s
为预设感知域,为萤火虫i在第t次迭代时的决策域,β为动态决策域更新率,n
i
为邻域集合阈值,n
i
(t)为萤火虫i在第t次迭代时的邻域集合。
[0031]
优选地,所述平均电源消耗、所述平均cpu利用率和所述平均资源均衡度均经过归一化处理,归一化公式为:
[0032][0033]
其中,f
p
为归一化后的所述平均电源消耗,f
p_o
为归一化前的所述平均电源消耗,f
p_min
为最小平均电源消耗,f
p_max
为最大平均电源消耗;f
cpu
为归一化后的所述平均cpu利用率,f
cpu_o
为归一化前的所述平均cpu利用率,f
cpu_min
为最小平均cpu利用率,f
cpu_max
为最大平均cpu利用率;f
load
为归一化后的所述平均资源均衡度,f
load_o
为归一化前的所述平均资源均衡度,f
load_min
为最小平均资源均衡度,f
load_max
为最大平均资源均衡度。
[0034]
第二方面,本申请提供了一种虚拟机部署装置,包括:
[0035]
初始化模块,用于随机设置各个萤火虫的位置,并初始化各个萤火虫的目标参数;所述各个萤火虫的位置即各个待选主机的位置;
[0036]
函数计算模块,用于将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值;所述函数计算步骤包括:根据所述处理对象的位置计算目标函数,所述目标函数能够表示:假定虚拟机部署至所述处理对象后,所有待选主机的平均性能大小;
[0037]
判断模块,用于判断是否达到最大迭代次数;
[0038]
部署模块,用于若达到最大迭代次数,则将所有目标函数值中的最大目标函数值对应的萤火虫确定为目的萤火虫,将所述目的萤火虫对应的待选主机确定为目的主机,并部署所述虚拟机至所述目的主机;
[0039]
迭代模块,用于若未达到最大迭代次数,则更新每个萤火虫的目标参数,根据更新后的所述目标参数更新每个萤火虫的位置,并执行将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值的步骤。
[0040]
第三方面,本申请提供了一种虚拟机部署设备,包括:
[0041]
存储器,用于存储计算机程序;
[0042]
处理器,用于执行所述计算机程序,以实现前述公开的虚拟机部署方法。
[0043]
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的虚拟机部署方法。
[0044]
通过以上方案可知,本申请提供了一种虚拟机部署方法,包括:随机设置各个萤火虫的位置,并初始化各个萤火虫的目标参数;所述各个萤火虫的位置即各个待选主机的位置;将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值;所述函数计算步骤包括:根据所述处理对象的位置计算目标函数,所述目标函数能够表示:假定虚拟机部署至所述处理对象后,所有待选主机的平均性能大小;判断是否达到最大迭代次数;若是,则将所有目标函数值中的最大目标函数值对应的萤火虫确定为目的
萤火虫,将所述目的萤火虫对应的待选主机确定为目的主机,并部署所述虚拟机至所述目的主机;若否,则更新每个萤火虫的目标参数,根据更新后的所述目标参数更新每个萤火虫的位置,并执行将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值的步骤。
[0045]
可见,本申请利用萤火虫算法确定虚拟机的部署位置,并且以所有待选主机的平均性能大小作为目标函数,各个萤火虫的位置即各个待选主机的位置,因此萤火虫算法的迭代寻优过程即为:寻找虚拟机部署完成后,能使云平台中所有主机的运行性能最大化的主机。由于目标函数为虚拟机部署后,所有待选主机的平均性能大小,因此选择最大目标函数值对应的待选主机,就能使虚拟机部署到目的主机后,所有待选主机的平均性能最大化,从而实现了在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。
[0046]
相应地,本申请提供的一种虚拟机部署装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
[0047]
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0048]
图1为本申请公开的一种虚拟机部署方法流程图;
[0049]
图2为本申请公开的一种利用萤火虫算法求解目标函数的方法流程图;
[0050]
图3为本申请公开的一种虚拟机部署装置示意图;
[0051]
图4为本申请公开的一种虚拟机部署设备示意图。
具体实施方式
[0052]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0053]
在介绍本申请之前,先就相关背景技术进行如下介绍。
[0054]
一般在下述三种场景中需要进行虚拟机调度。一:用户创建新虚拟机,选择将该虚拟机部署到哪台物理主机上。二:一个物理主机上的虚拟机过多,负载过重,需要将该物理主机上的部分虚拟机迁移至其他物理主机上;或者一个物理主机上的虚拟机过少,负载较低,为了实现负载均衡,需要将其他物理主机上的虚拟机迁移至当前物理主机。三:物理主机故障,需要疏散该物理主机上的虚拟机至其他物理主机上。不合理的调度策略会引起虚拟机的多次跨物理主机迁移,严重影响整个云平台的稳定性。并且,使用云平台的每个用户所申请的资源及应用不尽相同,每个物理主机上的负载也不尽相同,也导致云平台的资源使用具有不稳定性。
[0055]
目前可以使用蚁群算法寻找部署虚拟机的目的主机,但由于蚁群算法存在求解速度慢且所得解的质量难以保障的问题,导致计算量大,收敛速度慢,易陷入局部最优,不能
在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。为此,本申请提供了一种虚拟机部署方案,能够在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。
[0056]
参见图1所示,本申请实施例公开了一种虚拟机部署方法,包括:
[0057]
s101、随机设置各个萤火虫的位置,并初始化各个萤火虫的目标参数。
[0058]
其中,各个萤火虫的位置即各个待选主机的位置。萤火虫的位置和待选主机的个数相等,但萤火虫的个数与待选主机的个数可以相等,也可以不等。若萤火虫的个数大于待选主机的个数,那么一个萤火虫的位置可能聚集有多个萤火虫。
[0059]
s102、将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值。
[0060]
其中,函数计算步骤包括:根据处理对象的位置计算目标函数,目标函数能够表示:假定虚拟机部署至处理对象后,所有待选主机的平均性能大小。
[0061]
在一种具体实施方式中,目标函数的计算公式为:
[0062][0063]
其中,f为目标函数;f
p
为假定虚拟机部署至处理对象后,所有待选主机的平均电源消耗;f
cpu
为假定虚拟机部署至处理对象后,所有待选主机的平均cpu利用率;f
load
为假定虚拟机部署至处理对象后,所有待选主机的平均资源均衡度;k1、k2、k3均为预设权重值。预设权重值越大,表明当前云平台侧重关注其对应的参数(电源消耗、cpu利用率或资源均衡度)。
[0064]
例如:针对萤火虫a,认为其对应待选主机a,那么假定虚拟机部署至待选主机a,此时基于虚拟机的电源消耗、cpu利用率、带宽利用率、内存利用率等相关参数调整待选主机a的电源消耗、cpu利用率、资源均衡度。然后计算某一时刻所有待选主机(包括部署有虚拟机的待选主机a)的平均电源消耗、平均cpu利用率以及平均资源均衡度。f越大,表明所有待选主机的平均性能越好。
[0065]
在一种具体实施方式中,平均资源均衡度是假定虚拟机部署至处理对象后,根据所有待选主机某一时刻的平均cpu利用率、平均内存利用率、平均磁盘利用率和平均带宽利用率计算获得的;平均资源均衡度的计算公式为:
[0066][0067]
其中,f
load
为平均资源均衡度,u
cpu
为平均cpu利用率,u
mem
为平均内存利用率,u
hw
为平均带宽利用率,u
disk
为平均磁盘利用率。
[0068]
在一种具体实施方式中,平均电源消耗、平均cpu利用率和平均资源均衡度均经过归一化处理,归一化公式为:
[0069][0070]
其中,f
p
为归一化后的平均电源消耗,f
p_o
为归一化前的平均电源消耗,f
p_min
为最小平均电源消耗,f
p_max
为最大平均电源消耗;f
cpu
为归一化后的平均cpu利用率,f
cpu_o
为归一化前的平均cpu利用率,f
cpu_min
为最小平均cpu利用率,f
cpu_max
为最大平均cpu利用率;f
load
为归一化后的平均资源均衡度,f
load_o
为归一化前的平均资源均衡度,f
load_min
为最小平均资源均衡度,f
load_max
为最大平均资源均衡度。归一化后的平均电源消耗、平均cpu利用率和平均资源均衡度取值在0~1之间。
[0071]
s103、判断是否达到最大迭代次数;若是,则执行s104;若否,则执行s105。
[0072]
s104、将所有目标函数值中的最大目标函数值对应的萤火虫确定为目的萤火虫,将目的萤火虫对应的待选主机确定为目的主机,并部署虚拟机至目的主机。
[0073]
s105、更新每个萤火虫的目标参数,根据更新后的目标参数更新每个萤火虫的位置,并执行s102。
[0074]
在一种具体实施方式中,目标参数包括荧光素和步长,更新每个萤火虫的目标参数,包括:
[0075]
利用第一公式更新每个萤火虫的荧光素,第一公式为:
[0076]
l
i
(t+1)=(1-ρ)l
i
(t)+γf
i
(t+1)
[0077]
利用第二公式更新每个萤火虫的步长,第二公式为:
[0078][0079]
其中,l
i
(t+1)为萤火虫i在第t+1次迭代时的荧光素,也就是当前更新后的荧光素,ρ(0<ρ<1)为萤火虫i的荧光素挥发速度,l
i
(t)为萤火虫i在第t次迭代时的荧光素,γ为萤火虫i的荧光素更新率,f
i
(t+1)为萤火虫i在第t+1次迭代时的目标函数值;s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,也就是当前更新后的步长;s
min
为预设最小步长,取值为接近于0的值;s
max
为预设最大步长,取值为接近于1的值;t+1为当前迭代次数,t
max
为最大迭代次数。
[0080]
需要说明的是,每个萤火虫的步长会随着迭代次数的递增而变化,从而可保障萤火虫的步长保持在合理范围内。
[0081]
在一种具体实施方式中,根据更新后的目标参数更新每个萤火虫的位置,包括:
[0082]
利用第三公式更新每个萤火虫的位置,第三公式为:
[0083]
[0084]
其中,x
i
(t+1)为萤火虫i在第t+1次迭代时的位置,x
i
(t)为萤火虫i在第t次迭代时的位置,s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,x
j
(t)萤火虫j在第t次迭代时的位置,||x
j
(t)-x
i
(t)||为萤火虫i与萤火虫j位置的欧式距离;
[0085]
其中,萤火虫j为基于轮盘赌法则,在萤火虫i第t次迭代时的决策域内选择的邻居萤火虫,且萤火虫j的荧光素大于萤火虫i的荧光素。
[0086]
在一种具体实施方式中,目标参数还包括决策域,利用第四公式更新每个萤火虫的决策域,第四公式为:
[0087][0088]
其中,为萤火虫i在第t+1次迭代时的决策域,r
s
为预设感知域,为萤火虫i在第t次迭代时的决策域,β为动态决策域更新率,n
i
为邻域集合阈值,n
i
(t)为萤火虫i在第t次迭代时的邻域集合,即萤火虫i在第t次迭代时的决策域内的邻居萤火虫的个数。
[0089]
可见,本申请实施例利用萤火虫算法确定虚拟机的部署位置,并且以所有待选主机的平均性能大小作为目标函数,各个萤火虫的位置即各个待选主机的位置,因此萤火虫算法的迭代寻优过程即为:寻找虚拟机部署完成后,能使云平台中所有主机的运行性能最大化的主机。由于目标函数为虚拟机部署后,所有待选主机的平均性能大小,因此选择最大目标函数值对应的待选主机,就能使虚拟机部署到目的主机后,所有待选主机的平均性能最大化,从而实现了在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。
[0090]
本申请实施例公开了一种虚拟机部署方案,包括:定义目标函数、求解目标函数和部署虚拟机。
[0091]
1、假定虚拟机部署在各个待选主机上,定义目标函数f:
[0092][0093]
其中,f
p
为所有待选主机的平均电源消耗;f
cpu
为所有待选主机的平均cpu利用率;f
load
为所有待选主机的平均资源均衡度;k1、k2、k3均为预设权重值。
[0094]
其中,
[0095][0096]
其中,f
load
为平均资源均衡度,u
cpu
为平均cpu利用率,u
mem
为平均内存利用率,u
hw
为平均带宽利用率,u
disk
为平均磁盘利用率。
[0097]
其中,f
p
、f
cpu
、f
load
均为归一化后的值,归一化公式为:
[0098][0099]
其中,f
p
为归一化后的平均电源消耗,f
p_o
为归一化前的平均电源消耗,f
p_min
为最小平均电源消耗,f
p_max
为最大平均电源消耗;f
cpu
为归一化后的平均cpu利用率,f
cpu_o
为归一化前的平均cpu利用率,f
cpu_min
为最小平均cpu利用率,f
cpu_max
为最大平均cpu利用率;f
load
为归一化后的平均资源均衡度,f
load_o
为归一化前的平均资源均衡度,f
load_min
为最小平均资源均衡度,f
load_max
为最大平均资源均衡度。
[0100]
2、参见图2所示,利用萤火虫算法求解目标函数:
[0101]
(1)参数初始化:
[0102]
初始化各个萤火虫的位置;各个萤火虫的位置即各个待选主机的位置。
[0103]
初始化各个萤火虫的目标参数,如:荧光素、步长、决策域。
[0104]
设定各个预设值,如:荧光素挥发速度ρ(0<ρ<1),荧光素更新率γ,最小步长s
min
、最大步长s
max
、最大迭代次数t
max
、感知域r
s
、邻域集合阈值n
i

[0105]
(2)分别假定虚拟机部署在各个待选主机上,以基于萤火虫的当前位置计算各个萤火虫对应的目标函数值。目标函数值越大,则所有待选主机的平均性能越好。
[0106]
(3)更新每个萤火虫的荧光素:
[0107]
萤火虫的荧光素与其所在位置有直接关系。荧光素越大,则其所位置的适应度值越高。荧光素的大小还与上一次迭代中荧光素的大小及其挥发速度,以及目标函数值有关,其更新公式为:
[0108]
l
i
(t+1)=(1-ρ)l
i
(t)+γf
i
(t+1)
[0109]
其中,l
i
(t+1)为萤火虫i在第t+1次迭代时的荧光素,也就是当前更新后的荧光素,ρ(0<ρ<1)为萤火虫i的荧光素挥发速度,l
i
(t)为萤火虫i在第t次迭代时的荧光素,γ为萤火虫i的荧光素更新率,f
i
(t+1)为萤火虫i在第t+1次迭代时的目标函数值。
[0110]
(4)每个萤火虫的步长:
[0111]
在算法迭代的初期,步长保持较大值。为避免算法过早的成熟,陷入局部最优;在算法迭代的后期,逐渐减小步长,以避免在算法迭代后期因为步长太大而跳过最优解。步长更新公式为:
[0112][0113]
其中。s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,也就是当前更新后的步长;s
min
为预设最小步长,取值为接近于0的值;s
max
为预设最大步长,取值为接近于1的值;l
i
(t)为萤火虫i在第t次迭代时的荧光素;t+1为当前迭代次数,t
max
为最大迭代次数。
[0114]
(5)更新每个萤火虫的位置:
[0115]
每个萤火虫按照步长移动位置之前,需要先找到一个符合条件的邻居萤火虫。找邻居萤火虫的条件为:该邻居萤火虫的位置在当前萤火虫的决策域范围内,且邻居萤火虫的荧光素大于当前萤火虫的荧光素。将满足上述条件的邻居萤火虫组合为邻域集合,并按照下述公式计算邻域集合中每个邻居萤火虫的概率:
[0116][0117]
其中,j∈n
i
(t),n
i
(t)是在第t次迭代中,任一个萤火虫i的邻域集合,d
i,j
(t)=||x
j
(t)-x
i
(t)||是在第t次迭代中萤火虫i与萤火虫j的欧式距离。
[0118]
基于每个邻居萤火虫的概率,用轮盘赌法则选出邻居萤火虫j,然后根据下式更新萤火虫i的空间位置:
[0119][0120]
其中,x
i
(t+1)为萤火虫i在第t+1次迭代时的位置,x
i
(t)为萤火虫i在第t次迭代时的位置,s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,x
j
(t)萤火虫j在第t次迭代时的位置,||x
j
(t)-x
i
(t)||为萤火虫i与萤火虫j位置的欧式距离。
[0121]
(6)更新每个萤火虫的决策域:
[0122]
萤火虫的位置更新完成之后,会进一步更新其决策域,更新公式为:
[0123][0124]
其中,为萤火虫i在第t+1次迭代时的决策域,r
s
为预设感知域,为萤火虫i在第t次迭代时的决策域,β为动态决策域更新率,n
i
为邻域集合阈值,n
i
(t)为萤火虫i在第t次迭代时的邻域集合,即萤火虫i在第t次迭代时的决策域内的邻居萤火虫的个数。
[0125]
(7)判断此刻的迭代次数:
[0126]
若当前迭代次数大于最大迭代次数t
max
,则结束迭代,并用最新的萤火虫位置计算目标函数值,选择最大目标函数值以及相应的萤火虫位置输出;否则,返回步骤(2)进行下次迭代,直至满足迭代次数的约束条件。
[0127]
3、部署虚拟机:最大目标函数值对应的萤火虫位置即虚拟机的部署位置,将虚拟机部署至此位置,可使所有待选主机的运行性能最大。
[0128]
可见,本实施例考虑了由cpu利用率、内存利用率、带宽利用率和磁盘利用率而得的资源均衡度,并结合cpu利用率和电源消耗进行归一化,定义了能够表示所有待选主机的平均性能大小的目标函数。使用改进的萤火虫算法求解目标函数,考虑了荧光素大小以及步长大小对于迭代过程的影响,使算法具有较强的局部搜索能力,能够在一个较小的区域内找到该区域的最优解,操作方便,实现简单。并且萤火虫算法的参数较少,参数对算法的影响也小。本实施例使用的萤火虫算法可以避免个体在峰值附近发生震荡现象,通过迭代寻优之后输出最佳物理主机位置作为该虚拟机的目的物理主机,使虚拟机部署后,云平台保持cpu高利用率,耗能较低,资源均衡,以提升系统整体性能。
[0129]
下面对本申请实施例提供的一种虚拟机部署装置进行介绍,下文描述的一种虚拟
机部署装置与上文描述的一种虚拟机部署方法可以相互参照。
[0130]
参见图3所示,本申请实施例公开了一种虚拟机部署装置,包括:
[0131]
初始化模块301,用于随机设置各个萤火虫的位置,并初始化各个萤火虫的目标参数;各个萤火虫的位置即各个待选主机的位置;
[0132]
函数计算模块302,用于将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值;函数计算步骤包括:根据处理对象的位置计算目标函数,目标函数能够表示:假定虚拟机部署至处理对象后,所有待选主机的平均性能大小;
[0133]
判断模块303,用于判断是否达到最大迭代次数;
[0134]
部署模块304,用于若达到最大迭代次数,则将所有目标函数值中的最大目标函数值对应的萤火虫确定为目的萤火虫,将目的萤火虫对应的待选主机确定为目的主机,并部署虚拟机至目的主机;
[0135]
迭代模块305,用于若未达到最大迭代次数,则更新每个萤火虫的目标参数,根据更新后的目标参数更新每个萤火虫的位置,并执行将每个萤火虫分别作为处理对象,并执行函数计算步骤,以得到每个萤火虫对应的目标函数值的步骤。
[0136]
在一种具体实施方式中,目标函数的计算公式为:
[0137][0138]
其中,f为目标函数;f
p
为假定虚拟机部署至处理对象后,所有待选主机的平均电源消耗;f
cpu
为假定虚拟机部署至处理对象后,所有待选主机的平均cpu利用率;f
load
为假定虚拟机部署至处理对象后,所有待选主机的平均资源均衡度;k1、k2、k3均为预设权重值。
[0139]
在一种具体实施方式中,平均资源均衡度是假定虚拟机部署至处理对象后,根据所有待选主机的平均cpu利用率、平均内存利用率、平均磁盘利用率和平均带宽利用率计算获得的;平均资源均衡度的计算公式为:
[0140][0141]
其中,f
load
为平均资源均衡度,u
cpu
为平均cpu利用率,u
mem
为平均内存利用率,u
hw
为平均带宽利用率,u
disk
为平均磁盘利用率。
[0142]
在一种具体实施方式中,迭代模块具体用于:
[0143]
目标参数包括荧光素和步长,利用第一公式更新每个萤火虫的荧光素,第一公式为:
[0144]
l
i
(t+1)=(1-ρ)l
i
(t)+γf
i
(t+1)
[0145]
利用第二公式更新每个萤火虫的步长,第二公式为:
[0146]
[0147]
其中,l
i
(t+1)为萤火虫i在第t+1次迭代时的荧光素,ρ(0<ρ<1)为萤火虫i的荧光素挥发速度,l
i
(t)为萤火虫i在第t次迭代时的荧光素,γ为萤火虫i的荧光素更新率,f
i
(t+1)为萤火虫i在第t+1次迭代时的目标函数值;s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,s
min
为预设最小步长,s
max
为预设最大步长,t+1为当前迭代次数,t
max
为最大迭代次数。
[0148]
在一种具体实施方式中,迭代模块具体用于:
[0149]
利用第三公式更新每个萤火虫的位置,第三公式为:
[0150][0151]
其中,x
i
(t+1)为萤火虫i在第t+1次迭代时的位置,x
i
(t)为萤火虫i在第t次迭代时的位置,s
i
(t+1)为萤火虫i在第t+1次迭代时的步长,x
j
(t)萤火虫j在第t次迭代时的位置,||x
j
(t)-x
i
(t)||为萤火虫i与萤火虫j位置的欧式距离;
[0152]
其中,萤火虫j为基于轮盘赌法则,在萤火虫i第t次迭代时的决策域内选择的邻居萤火虫,且萤火虫j的荧光素大于萤火虫i的荧光素。
[0153]
在一种具体实施方式中,目标参数还包括决策域,利用第四公式更新每个萤火虫的决策域,第四公式为:
[0154][0155]
其中,为萤火虫i在第t+1次迭代时的决策域,r
s
为预设感知域,为萤火虫i在第t次迭代时的决策域,β为动态决策域更新率,n
i
为邻域集合阈值,n
i
(t)为萤火虫i在第t次迭代时的邻域集合。
[0156]
在一种具体实施方式中,平均电源消耗、平均cpu利用率和平均资源均衡度均经过归一化处理,归一化公式为:
[0157][0158]
其中,f
p
为归一化后的平均电源消耗,f
p_o
为归一化前的平均电源消耗,f
p_min
为最小平均电源消耗,f
p_max
为最大平均电源消耗;f
cpu
为归一化后的平均cpu利用率,f
cpu_o
为归一化前的平均cpu利用率,f
cpu_min
为最小平均cpu利用率,f
cpu_max
为最大平均cpu利用率;f
load
为归一化后的平均资源均衡度,f
load_o
为归一化前的平均资源均衡度,f
load_min
为最小平均资源均衡度,f
load_max
为最大平均资源均衡度。
[0159]
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0160]
可见,本实施例提供了一种虚拟机部署装置,该装置能在调度虚拟机的同时,使云平台中所有主机的运行性能最大化。
[0161]
下面对本申请实施例提供的一种虚拟机部署设备进行介绍,下文描述的一种虚拟
机部署设备与上文描述的一种虚拟机部署方法及装置可以相互参照。
[0162]
参见图4所示,本申请实施例公开了一种虚拟机部署设备,包括:
[0163]
存储器401,用于保存计算机程序;
[0164]
处理器402,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
[0165]
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种虚拟机部署方法、装置及设备可以相互参照。
[0166]
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的虚拟机部署方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0167]
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
[0168]
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
[0169]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0170]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。
[0171]
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1