洪文圳(广东农工商职业技术学院 计算机系,广东 广州 510507)
实验云虚拟资源动态自适应负载均衡研究
洪文圳
(广东农工商职业技术学院 计算机系,广东 广州 510507)
针对云平台的虚拟资源的负载均衡问题,为了实现虚拟资源的合理分配和保持用户桌面的稳定性,提出一种基于动态改变算法权值的自适应粒子群算法,并利用Eucalyptus平台进行实验。实验证明,该方法比贪婪算法和基本粒子群算法具有更好的调节效果,能够有效地控制负载均衡和保持系统的稳定性。
虚拟桌面;负载均衡;服务器
目前已有许多高校将云计算、虚拟化技术应用到实验实训中心的服务器管理和用户桌面系统的部署控制,搭建各种内部云计算平台进行资源管理和提供服务。通过一段时间的部署体验发现,当用户的桌面需求快速增加时,服务器需要部署更多的虚拟机,负载压力以几何级陡增。服务器配置存在差异,服务器所承载的负载极限各不相同,如果不能对虚拟机进行实时迁徙,就会出现部分服务器的负载过大,有些服务器的负载小,造成负载不平衡和影响平台的稳定性[1-2]。因此,怎样对云服务器进行负载调节管理,有效提高资源利用率是当前云计算研究的一项热点。通过对相关参考文献的研究[3],本文利用一种基于粒子群算法的动态改变权值的自适应变异的方法对实验云平台的虚拟资源进行负载均衡调节。
SV矩阵中每个Dnm元素的取值范围为 {0,1}。当Dnm=1时,表示第M个虚拟桌面部署到第N台服务器上;如果Dnm=0时,则表示该服务器上没有部署虚拟桌面。
1.1 服务器负载能力
1.2 集群负载计算
1.3 目标函数
为实现本文提出的目标,定义函数fmax(S,V)用于计算实验云资源利用率最大化,函数fmin(m)用于计算虚拟机的迁徙次数。目标函数为:
2.1 动态自适应算法
为了实现动态自适应负载均衡目标,在标准粒子群算法的基础上进行自适应变异处理和动态改变权值,克服原有算法收敛过快的现象。具体算法使用的公式如下。
(1)算法的粒子速度和位置更新公式:
其中,Zk是表示粒子Z的第k维数值,Rη是呈正态分布的随机变量。对群体N个粒子进行升序操作,利用式(10)将升序后的前一半数量的粒子与全局最优的粒子进行变异计算。将变异前后的粒子适应度值进行比较,选取最大值作为新的全局最优,值小的作为新的局部最优。
2.2 粒子编码设计
由于服务器负载均衡涉及多种资源的控制分配,因此算法需要的粒子编码采用多维向量的方式来处理,每一维代表一种资源情况。为了使算法更易于实现,将粒子编码统一转为整数编码。假设第Zi粒子的编码形式为{2,1,2,3,5,3,4,8,1},在矩阵SV中对应的值是D21=D12=D23=D34=D55=D36=D47=D88=D19=1,表示第1和第3虚拟桌面部署在2号服务器上,第4和第6虚拟桌面部署在3号服务器上,其他的虚拟桌面与服务器的映射部署以此类推。在算法的实现过程中,由于对于粒子的位置和速度进行计算会出现粒子编码为非整数情况,在这种情况下,采用四舍五入的规则对粒子编码进行转换操作。
2.3 算法步骤设计
将目标函数作为适应度函数,设置预期的阈值ε,约束条件作为判断条件,具体实现步骤如下:
(1)根据用户需求创建虚拟桌面集合,利用式(4)计算云负载能力β,将虚拟桌面分配到合适的服务器。
(2)利用式(5)的目标函数作为算法的适应度函数,初始化算法中粒子的位置和速度,设置粒子当前的局部最优P和群体中的全局最优G的位置。
(3)迭代进行计算,判断当前的实验云负载极限β是否达到约束条件的ε(预定阈值),如果达到跳到步骤(11),否则继续执行步骤(4)。
(4)利用式(6)和(7)计算更新后的粒子的位置和速度,并且利用式(9)计算群体更新后的负载情况β。
(5)根据式(8)计算调节算法的权值w,动态更新w,保持权值的动态更新。
(6)判断更新后的群体变化是否达到约束条件,如果是执行步骤(8),否则执行步骤(7)。
(7)保留上次计算的局部最优P值,迭代更新并重新初始化,继续循环计算,直至达到约束条件,停止迭代。
(8)计算更新后的适应度,如果更新后的适应度优于上一次的P的适应度,则更新当前的P值;假如更新后的群体适应度优于上一次的G的适应度,则更新当前的G值。
(9)根据式(9)计算当前的粒子群体的适应度的自适应情况,并计算自动变异因子Pm。
(10)判断式(6)中的随机数是否小于Pm,如果小于Pm,利用式(10)进行自适应变异操作,并且更新当前的P值和G值;否则跳转到步骤(3)。
(11)迭代计算结束,输出负载均衡的组合结果。
3.1 实验环境搭建
为了验证本文提出算法的有效性和可行性,利用Eucalyptus系统作为实验测试环境。根据参考文献提供的方法,基于Eucalyptus平台并结合KVM与QEMU的虚拟架构搭建算法实验需要的运行平台[6-7]。
3.2 实验结果分析
分别利用Eucalyptus自带的贪婪算法、基本粒子群算法与本文设计的算法进行实验。根据实验需要,设置了所需虚拟机桌面的数量规模分别为50、100、150、200、250和300等数量级。根据云控制器显示的服务器与虚拟机的运行分析视图,分别记录了各个算法对服务器虚拟资源利用率的情况,结果如图1和图2所示,并对结果进行分析。
图1 服务器资源利用率比较
图2 虚拟机迁徙数比较
如图1所示,三种算法在不同规模用户压力下的服务器资源利用率的执行结果各不相同,很明显动态自适应粒子群算法比其他两种能更好地进行资源的负载均衡调节,提高服务器的资源利用率。随着虚拟桌面数量的不断增加,为了保持服务器间资源利用率的平衡,利用三种算法进行虚拟资源负载调节。如图2所示,动态自适应粒子群算法的迁徙数明显少于基本粒子群算法和贪婪算法作用下的迁徙数,在稳定性方面具有较好的表现。
本文研究了实验云虚拟资源的负载均衡问题,利用基于动态改变权值的自适应变异的粒子群算法对服务器上的虚拟机进行负载均衡调节。以Eucalyptus作为实验平台进行测试,实验结果验证了本文提出负载均衡算法具有更好的优越性。但本文的方法还处于实验测试,没有应用到实际的用户桌面负载调节中,这将是以后研究的重点。
[1]陈小娇,陈世平,方芳.云计算中虚拟机资源分配算法[J].计算机应用研究,2014,31(9):2584-2587.
[2]常德成,徐高潮.虚拟机动态迁移方法[J].计算机应用研究,2013,30(4):971-976.
[3]何丹丹.云环境下基于节能和负载均衡的混沌粒子群资源优化调[J].计算机控制与测量,2014,22(5):1626-1628.
[4]刘卫宁,高龙.异构云中面向集群负载均衡的任务调度策略[J].计算机应用,2013,33(8):2140-2142.
[5]张选平.一种动态改变惯性权的自适应粒子群算法[J].西安交通大学学报,2005,39(10):1039-1042.
[6]杨子夜,周逸勋,陈海波,等.利用虚拟机动态迁移技术整合虚拟和模拟环境[J].小型微型计算机系统,2010,31(3):423-429.
[7]洪文圳,陈玉琴,黄晓峰.基于Eucalyptus的实验云平台搭建[J].微型机与应用,2014,33(17):59-61.
Research of dynamic adaptive load balancing experimental Cloud virtual resources
Hong Wenzhen
(Department of Computer,Guangdong AIB Polytechnic College,Guangzhou 510507,China)
For load balancing of virtual resources for Cloud platforms,in order to realize reasonable distribution of virtual resources and maintain the stability of the user′s desktop,this paper presents an algorithm based on dynamically changing weighting adaptive particle swarm optimization algorithm and experiments using Eucalyptus platform.Experiments show that this method has a better effect than the greedy algorithm and particle swarm optimization,and can effectively control the load balance and maintain the stability of the system.
virtual desktop;load balancing;server
TP393
A
1674-7720(2015)20-0054-03
洪文圳.实验云虚拟资源动态自适应负载均衡研究[J].微型机与应用,2015,34(20):54-56,60.
2015-05-28)
洪文圳(1981-),通信作者,男,硕士,实验师,主要研究方向:云计算虚拟化、实验室建设与管理。E-mail:hwz-507@163.com。