发明内容
发明目的:为了克服现有技术的不足,本发明提供一种面向朵云资源管理的多目标虚拟机调度方法,该方法可以解决由于负载不均衡导致的资源分配不均,指标得不到优化以及迁移策略效率低的问题。
技术方案:本发明所述的面向朵云资源管理的多目标虚拟机调度方法,该方法包括:
(1)实时收集朵云分配记录,并从朵云分配记录数据集R中获取运行的朵云列表P以及特殊虚拟机集合PV;
(2)通过遍历朵云分配记录数据集R,获得运行的朵云列表P中每个朵云的空闲空间;
(3)计算所有朵云对应的虚拟机调度策略集合,根据所述朵云的空闲空间评估虚拟机调度策略引起的迁移成本及执行后的朵云负载均衡方差;
(4)根据所述执行后的朵云负载均衡方差和迁移成本,计算负载均衡方差集合和迁移成本集合;
(5)通过简单加权法和多标准决策算法,寻求联合优化效果最优的虚拟机调度策略。
优选的,所述步骤(2)中,所述朵云列表P={p1,p2,…,pN}的形成过程为:根据朵云分配记录数据集,可以获得当前时刻t处于运行状态的朵云,在朵云分配记录rm中,如果rsm<t<rsm+rdm,该朵云分配记录中朵云编号rcm的朵云被加入到运行朵云列表P中,在遍历所有虚拟机实例后,可以获得所有运行朵云的编号,即得到运行朵云列表P,其中,rdm代表虚拟机实例的占用持续时间,1≤m≤M,M表示朵云分配记录数据集R中朵云分配记录的数量,N代表当前时刻运行的朵云的数量。
优选的,所述步骤(3)中,根据所述朵云的空闲空间评估虚拟机调度策略引起的迁移成本及执行后的朵云负载均衡方差,具体包括:
(31)根据特殊虚拟机pv
z的部署情况
计算每个朵云的资源使用率re
n;
(32)根据每个朵云的资源使用率ren,计算所有朵云的平均资源使用率REw;
(33)计算每个朵云的负载均衡方差lbn,进而计算所有朵云的平均负载均衡方差LBw;
(34)根据所述特殊虚拟机pv
z的迁移方向
和特殊虚拟机pv
z的部署情况
的计算接入点之间的虚拟机迁移时间T
mid、接入点与朵云之间的虚拟机迁移时间T
edge和虚拟机实例的开关时间T
switch;
(35)计算虚拟机调度所引起的迁移成本MCw,计算公式为:MCw=Tmid+2Tedge+Tswitch。
优选的,所述虚拟机迁移时间Tmid表示为:
其中,S
z为从源物理机迁移到目标物理机的虚拟机镜像大小,
为接入点之间的带宽,K为迁移过程中经过的接入点的数量,Z表示当前时刻朵云中执行的移动服务个数,1≤n≤N,N代表当前时刻运行的朵云的数量;
所述接入点与朵云之间的虚拟机迁移时间Tedge,表示为:
其中,θ为接入点与朵云之间的带宽;
虚拟机实例的开关时间Tswitch,表示为:
其中,σz表示虚拟机开关时间。
优选的,所述步骤(5)中,通过简单加权法和多标准决策算法,寻求联合优化效果最优的虚拟机调度策略,具体包括:首先对所述负载均衡方差集和迁移成本集分别进行归一化,计算虚拟机调度策略的效用值UV,比较各个虚拟机调度策略的效用值,选取效用值最高的策略为最终的虚拟机调度策略。
另一方面,本发明还提供一种面向朵云资源管理的多目标虚拟机调度系统,所述系统包括:
表示模块,用于实时收集朵云分配记录,并从朵云分配记录数据集R中获取运行的朵云列表P以及特殊虚拟机集合PV;
空间计算模块,用于通过遍历朵云分配记录数据集R,获得运行的朵云列表P中每个朵云的空闲空间;
第一计算模块,用于计算所有朵云对应的虚拟机调度策略集合,根据所述朵云的空闲空间评估虚拟机调度策略引起的迁移成本及执行后的朵云负载均衡方差;
第二计算模块,用于根据所述执行后的朵云负载均衡方差和迁移成本,计算负载均衡方差集合和迁移成本集合;
调度策略生成模块,用于通过简单加权法和多标准决策算法,寻求联合优化效果最优的虚拟机调度策略。
优选的,所述表示模块还包括朵云列表生成单元,用于生成所述朵云列表P={p1,p2,…,pN},具体包括:根据朵云分配记录数据集,可以获得当前时刻t处于运行状态的朵云,在朵云分配记录rm中,如果rsm<t<rsm+rdm,该朵云分配记录中朵云编号rcm的朵云被加入到运行朵云列表P中,在遍历所有虚拟机实例后,可以获得所有运行朵云的编号,即得到运行朵云列表P,其中,rdm代表虚拟机实例的占用持续时间,1≤m≤M,M表示朵云分配记录数据集R中朵云分配记录的数量,N代表当前时刻运行的朵云的数量。
优选的,所述第一计算模块,还包括:
第一生成单元,用于根据特殊虚拟机pv
z的部署情况
计算每个朵云的资源使用率re
n;
第二生成单元,用于根据每个朵云的资源使用率ren,计算所有朵云的平均资源使用率REw;
负载均衡方差生成单元,用于计算每个朵云的负载均衡方差lbn,进而计算所有朵云的平均负载均衡方差LBw;
中间量计算单元,用于根据所述特殊虚拟机pv
z的迁移方向
和特殊虚拟机pv
z的部署情况
的计算接入点之间的虚拟机迁移时间T
mid、接入点与朵云之间的虚拟机迁移时间T
edge和虚拟机实例的开关时间T
switch;
迁移成本生成单元,用于计算虚拟机调度所引起的迁移成本MCw,计算公式为:MCw=Tmid+2Tedge+Tswitch。
优选的,所述中间量计算单元中,虚拟机迁移时间Tmid表示为:
其中,S
z为从源物理机迁移到目标物理机的虚拟机镜像大小,
为接入点之间的带宽,K为迁移过程中经过的接入点的数量,Z表示当前时刻朵云中执行的移动服务个数,1≤n≤N,N代表当前时刻运行的朵云的数量;
所述接入点与朵云之间的虚拟机迁移时间Tedge,表示为:
其中,θ为接入点与朵云之间的带宽;
虚拟机实例的开关时间Tswitch,表示为:
其中,σz为虚拟机开关时间。
优选的,所述调度策略生成模块,还包括:
归一化单元,用于对所述负载均衡方差集和迁移成本集分别进行归一化;
效用值计算单元,用于计算虚拟机调度策略的效用值UV;
最佳调度策略生成单元,用于比较各个虚拟机调度策略的效用值,选取效用值最高的策略为最终的虚拟机调度策略。
有益效果:本发明与现有技术相比,其显著优点是:1、本发明所述的虚拟机调度方法是根据实时的朵云分配记录数据集,实现了朵云资源的动态管理,使得迁移更加符合实际,精准度更高;2、迁移成本计算过程考虑了内存镜像传输所产生的时间,以及接入点与朵云之间的传输时间,更贴切云数据中心的实际能耗;3、综合考虑执行虚拟机迁移产生的时间和迁移后朵云的负载均衡方差,在满足迁移的成本要求之余,减少了资源空闲的可能性,节省了能耗,符合绿色计算的主题。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
实施例1
如图2,本发明所述的面向朵云资源管理的多目标虚拟机调度方法,包括以下步骤:
步骤1:实时收集朵云分配记录,并从朵云分配记录数据集R中获取运行的朵云列表P以及特殊虚拟机集合PV。
为了方便朵云的资源管理,虚拟化技术被采用并使用虚拟机实例来表示朵云的资源。在朵云中,系统日志文件实时保存朵云分配记录日志。当移动服务请求虚拟机实例进行资源托管时,根据请求的虚拟机实例的数量,后台将产生相同数量的朵云分配记录。假设在时刻t,朵云分配记录数据集共有M条朵云分配记录,记作R={r1,r2,…,rM}。
R中每条朵云分配记录可以用多属性元组分别表示。将朵云分配记录rm(1≤m<M)表示为rm=(rem,rcm,rvm,rsm,rdm),其中,rem代表所分配的移动服务的编号,rcm代表占用的朵云的编号,rvm代表占用的虚拟机的编号,rsm代表虚拟机实例的占用起始时间,rdm代表虚拟机实例的占用持续时间。
通过对朵云分配记录的分析与统计,可以确定t时刻运行的朵云列表。例如:在朵云分配记录rm(1≤m<M)中,如果rsm<t<rsm+rdm,该朵云分配记录中编号rcm的朵云被加入到运行朵云列表P中,在遍历所有朵云分配记录后,运行朵云列表表示为P={p1,p2,…,pN},其中,N代表当前时刻运行的朵云的数量。
对于同一移动服务请求的虚拟机实例,在虚拟机调度过程中将进行同批次迁移,以免造成不必要的通信开销。因此,需要对朵云分配记录进行分析以选择出可调度的虚拟机列表。若当前朵云中正在执行Z个移动服务,那么分析后得到的可调度虚拟机数量同样为Z,表示为PV={pv1,pv2,…,pvZ}。对于pvZ(1≤z≤Z),将其需求的虚拟机实例的数量记为nmz。
步骤2:通过遍历朵云分配记录数据集R,获得运行的朵云列表P中每个朵云的空闲空间。
为了判断每个虚拟机是否可以被迁移,以及如果可以迁移哪些朵云可以作为迁移目标,需要获得每个朵云的空闲空间。
记朵云pn(1≤n≤N)的容量为cn,遍历朵云分配记录数据集后,得到当前时刻pn上虚拟机实例的使用量为un,所以pn的空闲资源量为cn-un。
步骤3:将虚拟机调度策略的数量表示为W,记虚拟机调度策略集合为S={s1,s2,…,sW};虚拟机的调度策略可通过配置参数后,计算机直接生成,对于虚拟机调度策略sw,评估其引起的迁移成本及执行后的朵云负载均衡方差。
首先,计算虚拟机pv
z的部署情况
如公式(1)所示。
然后,计算每个朵云的资源使用率ren,如公式(2)所示,其中,cn表示朵云pn的容量,nmz表示特殊虚拟机pvZ需求的虚拟机实例的数量。
接着,计算所有朵云的平均资源使用率REw,如公式(3)所示,其中,N代表运行朵云的数量。
进一步,需要计算每个朵云的负载均衡方差lbn,如公式(4)所示。
lbn=(ren-REw)2 (4)
最后,计算所有朵云的平均负载均衡方差LBw,如公式(5)所示。
另一方面,将迁移成本表示为虚拟机迁移时间,迁移成本被分化为接入点之间的虚拟机迁移时间Tmid,接入点与朵云之间的虚拟机迁移时间Tedge以及虚拟机实例的开关时间Tswitch;因此虚拟机调度所引起的迁移成本MCw如公式(6)所示。
MCw=Tmid+2Tedge+Tswitch。 (6)
首先,计算虚拟机pv
z的迁移方向
如公式(7)所示。
然后,计算接入点之间的虚拟机迁移时间T
mid,如公式(8)所示,其中,pv
z镜像的大小为S
z,接入点之间的带宽为
以及迁移过程中经过的接入点的数量为K。
接着,计算接入点与朵云之间的虚拟机迁移时间Tedge,如公式(9)所示,其中接入点与朵云之间的带宽为θ。
最后计算虚拟机实例的开关时间Tswitch,如公式(10)所示,其中虚拟机开关时间为σz。
步骤4:不同的虚拟机调度策略导致不同的虚拟机放置状态,根据步骤3的负载均衡方差和迁移成本评估方法,计算负载均衡方差集合和迁移成本集合。
在遍历S中所有的虚拟机调度策略后,获取sw对应的虚拟机迁移过程和迁移后的虚拟机放置状态,根据步骤3计算对应的负载均衡方差和迁移成本。
步骤5:通过简单加权法和多标准决策算法,寻求联合优化效果最优的虚拟机调度策略。
对于虚拟机迁移而言,其所导致的负载均衡方差和迁移成本越低越好。因此负载均衡方差和迁移成本均为消极标准,分别可以被归一化为如公式(11)(12)所示。
其中
和
分别代表虚拟机迁移产生的朵云最大平均负载均衡方差和最小平均负载均衡方差;
其中
和
分别表示虚拟机迁移产生的最大迁移成本和最小迁移成本。
虚拟机调度策略的效用值表示为UV,如公式(13)所示。
UV=V(LBw)·ρLB+V(MCw)·ρMC(ρLB+ρMC=1) (13)
根据每个虚拟机调度策略的效用值,选择效用值最大的虚拟机调度策略。
实施例2
另一方面,如图3所示,本发明还提供一种面向朵云资源管理的多目标虚拟机调度系统,包括:
表示模块1,用于实时收集朵云分配记录,并从朵云分配记录数据集R中获取运行的朵云列表P以及特殊虚拟机集合PV;
为了方便朵云的资源管理,虚拟化技术被采用并使用虚拟机实例来表示朵云的资源。在朵云中,系统日志文件实时保存朵云分配记录日志。当移动服务请求虚拟机实例进行资源托管时,根据请求的虚拟机实例的数量,后台将产生相同数量的朵云分配记录。假设在时刻t,朵云分配记录数据集共有M条朵云分配记录,记作R={r1,r2,…,rM}。
R中每条朵云分配记录可以用多属性元组分别表示。将朵云分配记录rm(1≤m<M)表示为rm=(rem,rcm,rvm,rsm,rdm),其中,rem代表所分配的移动服务的编号,rcm代表占用的朵云的编号,rvm代占用的虚拟机的编号,rsm代表虚拟机实例的占用起始时间,rdm代表虚拟机实例的占用持续时间。
所述表示模块1还包块:
朵云列表生成单元11,用于生成所述朵云列表P={p1,p2,…,pN},具体的,通过对朵云分配记录的分析与统计,可以确定t时刻运行的朵云列表。例如:在朵云分配记录rm(1≤m<M)中,如果rsm<t<rsm+rdm,该朵云分配记录中编号rcm的朵云被加入到运行朵云列表P中,在遍历所有朵云分配记录后,运行朵云列表表示为P={p1,p2,…,pN},其中,N代表当前时刻运行的朵云的数量。
特殊虚拟机表示单元12,用于表示特殊虚拟机,具体的:对于同一移动服务请求的虚拟机实例,在虚拟机调度过程中将进行同批次迁移,以免造成不必要的通信开销。因此,需要对朵云分配记录进行分析以选择出可调度的虚拟机列表。若当前朵云中正在执行Z个移动服务,那么分析后得到的可调度虚拟机数量同样为Z,表示为PV={pv1,pv2,…,pvZ}。对于pvZ(1≤z≤Z),将其需求的虚拟机实例的数量记为nmz。
空间计算模块2,用于通过遍历朵云分配记录数据集R,获得运行的朵云列表P中每个朵云的空闲空间;
为了判断每个虚拟机是否可以被迁移,以及如果可以迁移哪些朵云可以作为迁移目标,需要获得每个朵云的空闲空间。
记朵云pn(1≤n≤N)的容量为cn,遍历朵云分配记录数据集后,得到当前时刻pn上虚拟机实例的使用量为un,所以pn的空闲资源量为cn-un。
第一计算模块3,用于将虚拟机调度策略的数量表示为W,记虚拟机调度策略集合为S={s1,s2,…,sW};对于虚拟机调度策略sw,评估其引起的迁移成本及执行后的朵云负载均衡方差;如图4所示,具体包括:
第一生成单元31,用于根据特殊虚拟机pv
z的部署情况
计算每个朵云的资源使用率re
n;
首先,计算虚拟机pv
z的部署情况
如公式(1)所示。
然后,计算每个朵云的资源使用率ren,如公式(2)所示,其中,cn表示朵云pn的容量,nmz表示特殊虚拟机pvZ需求的虚拟机实例的数量。
第二生成单元32,用于根据每个朵云的资源使用率ren,计算所有朵云的平均资源使用率REw;
其中,N代表运行朵云的数量。
负载均衡方差生成单元33,用于计算每个朵云的负载均衡方差lbn,进而计算所有朵云的平均负载均衡方差LBw;
首先,每个朵云的负载均衡方差lbn,如公式(4)所示。
lbn=(ren-REw)2 (4)
计算所有朵云的平均负载均衡方差LBw,如公式(5)所示。
中间量计算单元34,用于根据所述特殊虚拟机pv
z的迁移方向
和特殊虚拟机pv
z的部署情况
的计算接入点之间的虚拟机迁移时间T
mid、接入点与朵云之间的虚拟机迁移时间T
edge和虚拟机实例的开关时间T
switch;
然后,计算接入点之间的虚拟机迁移时间T
mid,如公式(8)所示,其中,pv
z镜像的大小为S
z,接入点之间的带宽为
以及迁移过程中经过的接入点的数量为K。
接着,计算接入点与朵云之间的虚拟机迁移时间Tedge,如公式(9)所示,其中接入点与朵云之间的带宽为θ。
最后计算虚拟机实例的开关时间Tswitch,如公式(10)所示,其中虚拟机开关时间为σz。
迁移成本生成单元35,用于计算虚拟机调度所引起的迁移成本MCw,计算公式为:MCw=Tmid+2Tedge+Tswitch。
将迁移成本表示为虚拟机迁移时间,迁移成本被分化为接入点之间的虚拟机迁移时间Tmid,接入点与朵云之间的虚拟机迁移时间Tedge以及虚拟机实例的开关时间Tswitch;因此虚拟机调度所引起的迁移成本MCw如公式(6)所示。
MCw=Tmid+2Tedge+Tswitch。 (6)
第二计算模块4,用于根据所述执行后的朵云负载均衡方差和迁移成本,计算负载均衡方差集合和迁移成本集合;
在遍历S中所有的虚拟机调度策略后,获取sw对应的虚拟机迁移过程和迁移后的虚拟机放置状态,根据第一计算模块计算对应的负载均衡方差和迁移成本。
调度策略生成模块5,用于通过简单加权法和多标准决策算法,寻求联合优化效果最优的虚拟机调度策略。
优选的,所述调度策略生成模块5中,如图5所示,还包括:
归一化单元51,用于对所述负载均衡方差集和迁移成本集分别进行归一化;
对于虚拟机迁移而言,其所导致的负载均衡方差和迁移成本越低越好。因此负载均衡方差和迁移成本均为消极标准,分别可以被归一化为如公式(11)(12)所示。
其中,
和
分别代表虚拟机迁移产生的朵云最大平均负载均衡方差和最小平均负载均衡方差;
其中
和
分别表示虚拟机迁移产生的最大迁移成本和最小迁移成本。
效用值计算单元52,用于计算虚拟机调度策略的效用值UV;
虚拟机调度策略的效用值表示为UV,如公式(13)所示。
UV=V(LBw)·ρLB+V(MCw)·ρMC(ρLB+ρMC=1) (13)
最佳调度策略生成单元53,用于比较各个虚拟机调度策略的效用值,选取效用值最高的策略为最终的虚拟机调度策略。
为了验证本发明中方法和系统的有效性,做了一下模拟实验:
如图1所示,本实施例模拟朵云环境下进行虚拟机调度的实验,并选择LENOVOTS250作为朵云服务器在,各个接入点的连接形式为城域网连接,源接入点、过程接入点以及目的接入点之间进行数据传输。一个朵云上可能运行多个虚拟机。
模拟实验环境中涉及的参数如表1所示。
表1模拟实验环境中涉及的参数设置
虚拟机迁移通常会导致部分朵云的空载,造成了额外的能耗,违背了绿色云计算的思想。因此需要对调度后运行朵云的数量进行统计,并与调度前运行朵云数量进行对比,如表2所示。从表2可以发现,在经过本发明提出的方法进行虚拟机调度后,能实现运行朵云数量的减少。对于五种不同数量的移动服务数据集(1000、2000、3000、4000、5000),经过本方法的调度后,朵云使用量分别缩小了9、15、23、32、39。
表2调度前后运行朵云数量对比(单位:个)
数据集 |
1000 |
2000 |
3000 |
4000 |
5000 |
调度前 |
79 |
168 |
274 |
342 |
407 |
调度后 |
70 |
153 |
251 |
310 |
368 |
经过发明提出的方法进行虚拟机调度后,统计了不同数据集下朵云的资源使用率,可以发现,调度后的朵云资源使用率较之调度前更高,如表3所示。
表3调度前后朵云资源使用率对比
数据集 |
1000 |
2000 |
3000 |
4000 |
5000 |
调度前 |
74.79% |
75.75% |
77.85% |
78.16% |
78.63% |
调度后 |
82.19% |
82.015% |
83.08% |
83.13% |
83.79% |
虚拟机迁移会对朵云负载造成变化,因此要评估虚拟机迁移对负载均衡方差的影响。表4显示了调度前后朵云的平均负载均衡方差的对比。从表4可以看出,无论数据集规模多大,经过调度后均能实现负载均衡方差的减少。对于五种不同数量的移动服务数据集(1000、2000、3000、4000、5000),经过本方法的调度后,朵云负载均衡方差分别缩小了0.04、0.06、0.07、0.11、0.16。
表4调度前后朵云负载均衡方差对比
数据集 |
1000 |
2000 |
3000 |
4000 |
5000 |
调度前 |
3.79 |
4.23 |
4.38 |
4.45 |
4.59 |
调度后 |
3.75 |
4.17 |
4.31 |
4.34 |
4.43 |
对于虚拟机迁移,迁移成本是评估迁移是否值得的重要指标。表5显示了最优策略和次优策略分别调度后产生的迁移成本。从表5可以看出,无论数据集规模多大,最优策略的迁移成本总是小于次优策略。对于五种不同数量的移动服务数据集(1000、2000、3000、4000、5000),执行最优虚拟机调度策略后,迁移成本分别缩小了0.8、0.6、0.6、0.7、0.6。
表5虚拟机迁移成本对比(单位:秒)
数据集 |
1000 |
2000 |
3000 |
4000 |
5000 |
次优策略 |
6.8 |
8.6 |
9.1 |
9.8 |
10.5 |
最优策略 |
6 |
8 |
8.5 |
9.1 |
9.9 |
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。