云环境下基于性能向量的虚拟机部署算法(3)
时间:2012-01-26 13:06来源:网络(转载) 作者:杨星 马自堂 孙磊 点击:次
将服务器池中所有物理服务器某一性能特征的平均值称为负载基点值?q??i。将某一服务器性能与对应基点值的差值称??p??ij?=q??ij?-?q??j为负载偏差,负载偏差的计算主要由性能监控服务器完成。整个服务器池中服务器的
将服务器池中所有物理服务器某一性能特征的平均值称为负载基点值?q??i。将某一服务器性能与对应基点值的差值称?Δ?p??ij?=q??ij?-?q??j为负载偏差,负载偏差的计算主要由性能监控服务器完成。整个服务器池中服务器的各个性能负载偏差组成负载偏差矩阵:?
?Δ?P=[U ?Δ?P?1]=
u?1?Δ?p??11??Δ?p??12?…?Δ?p??1l?u?n?Δ?p??n1??Δ?p??n2?…?Δ?p??nl??
矩阵中的负值项说明其负载已经超过此性能系统平均负载,不宜再进行部署;而正值说明服务器此性能还有部署空间。?
考虑不同性能的负载情况对于服务器影响不同,云服务提供商可以根据实际情况制定相应权值向量Y=(y?1,y?2,…,y?l),其中∑li=1y?i=1(0 R=?Δ?P•(y?1,y?2,…,y?l)??T?=(r?1,r?2,…,r?n)??T??
每个r?i下标对应一个服务器?UUID?。?
3)匹配向量与负载向量综合分析。?
最后,从虚拟机与服务器匹配情况和服务器池整体的负载均衡情况两方面综合考虑,以确定部署方案。这就需要参照以上得出匹配判断向量S=(s?1,s?2,…,s?m)??T?和负载判断向量R=(r?1,r?2,…,r?n)??T?,进行综合处理。?
首先提取出可用服务器的r?i值,组成可用服务器负载判断向量R′=(r?1,r?2,…,r?m)??T?。并引入γ、η两个调和参数,其作用是平衡性能匹配与负载均衡对部署影响的比重,可由云计算提供商根据系统情况灵活配置。?
如前文所述,s?i为非负数,其值越小匹配度越高,越适合在此服务器上部署该虚拟机。而r?i为负值时说明其负载过大,不宜再部署虚拟机,但若所有服务器r?i均为负值时,绝对值越小的越适合部署虚拟机;r?i为正值时,其值越大说明剩余性能空间越大,越适宜部署虚拟机。于是,综合分析公式如式(2)所示:?
E???best??=??MAX??mi=1(ηr?iγs?i)(2)?
其中E???best??所对应的服务器便是虚拟机部署的目标物理服务器。??
3 分析与实验?
本文采用澳大利亚墨尔本大学的网格实验室和Gridbus项目提出的云仿真平台CloudSim[11]对本算法进行仿真实验。?
1)实验环境。?
实验机操作系统为Windows XP SP3;JDK版本为jdk ?1.6.0_10;?CloudSim版本为CloudSim?2.1.1;编译工具Ant版本为Ant 1.8.1。?
2)CloudSim扩展编译。?
图3为CloudSim所包涵基本类的总体设计图。?
为了实现本文算法,本文在基本类基础上编写相应的继承类,对CloudSim进行扩展,主要工作如下。?
①对Host类扩展,在其中加入服务器(Host)可用性能的规范化处理。?
②编写DatacenterCharacteristics继承类Datacenterbalance,计算服务器集群的负载向量,得出负载矩阵。?
③选择目标服务器创建虚拟机的过程主要由Datacenter对象负责。VmAllocationPolicy这个抽象类代表虚拟机在选定物理服务器上的部署过程,其中的allocateHostForVm(Vm vm)作用是为指定虚拟机分配目标物理机。编写VmAllocationPolicy继承类VmAllocationPMLBPolicy,在方法allocateHostForVm(Vm vm)中计算待部署虚拟机(Vm)的匹配向量,并进行匹配向量与负载向量的综合分析,选取目标服务器(Host)。?
3)实验仿真。?
在完成CloudSim扩展编译后,编写仿真程序进行实验仿真。?
本实验通过两个参数比较算法性能。?
①运行有虚拟机的服务器(视为已开启的服务器)数量?N???act?。其值越小,说明开启服务器数量越少,越节省能源。?
②负载均衡系数,通过求负载判断向量方差来判断负载均衡情况。如式(3)所示:?
?D???LB??=∑ni=1(r?i-?r?)?2(3)?
其中?r?为负载判断向量内所有元素平均值,其值越小越稳定,说明系统负载状况越良好。??
编写仿真程序,分别模拟一个具有40台服务器(Host)的数据中心(Datacenter),使用本文算法,添加10,15,20,30,40,50个虚拟机(Vm)的场景,并输出?N???act?值和?D???LB?值。?
为了对本算法效果有所比较,本文使用CloudSim ?2.1.1?里VmAllocationPolicy继承类VmAllocationPolicySimple中所给出的部署算法做同样场景的模拟,输出相应的?N???act?值和?D???LB?值。?
4)仿真结果。?
实验结果如图4~5所示。?
通过实验结果可以看出:PM?LB算法可以大大减少系统服务器开启数量,从而减少系统资源成本;同时能够使系统负载稳定保持在较低范围,达到良好的负载均衡效果。因而可以得出结论,本文算法可以很好地满足云计算环境下虚拟机部署对于资源使用率和系统负载的需求。?
4 结语?
本文提出了一种虚拟机初次部署的方案和算法。首先将物理服务器和虚拟机抽象为性能向量,之后基于性能向量,分别计算出性能匹配判断向量和负载均衡判断向量,通过将上述两向量进行综合运算得到最终部署结果。并通过实验与分析证明,本算法能够良好解决云计算环境下的虚拟机部署中的系统负载均衡和节省资源问题。?
本文算法的特点有:1)加入用户应用需求权值向量,充分考虑了用户对于不同应用的不同需求;2)依据系统工程整体最优思想,不对单个虚拟机选择性能最好的服务器,而从系统角度考虑虚拟机部署的负载均衡和资源最大利用问题。
?参考文献:?
[1]
雷葆华,饶少阳,江峰.云计算解码[M].北京:电子工业出版社,2011.
?[2]
“虚拟化与云计算”小组.虚拟化与云计算[M].北京:电子工业出版社,2010.
?[3]
Amazon. Elastic compute cloud [EB/OL]. [2011-06-20]. http://aws.amazon.com/ec2. (责任编辑:南粤论文中心)
------分隔线----------------------------