摘 要: 针对云平台的虚拟资源的负载均衡问题,为了实现虚拟资源的合理分配和保持用户桌面的稳定性,提出一种基于动态改变算法权值的自适应粒子群算法,并利用Eucalyptus平台进行实验。实验证明,该方法比贪婪算法和基本粒子群算法具有更好的调节效果,能够有效地控制负载均衡和保持系统的稳定性。
关键词: 虚拟桌面;负载均衡;服务器
0 引言
目前已有许多高校将云计算、虚拟化技术应用到实验实训中心的服务器管理和用户桌面系统的部署控制,搭建各种内部云计算平台进行资源管理和提供服务。通过一段时间的部署体验发现,当用户的桌面需求快速增加时,服务器需要部署更多的虚拟机,负载压力以几何级陡增。服务器配置存在差异,服务器所承载的负载极限各不相同,如果不能对虚拟机进行实时迁徙,就会出现部分服务器的负载过大,有些服务器的负载小,造成负载不平衡和影响平台的稳定性[1-2]。因此,怎样对云服务器进行负载调节管理,有效提高资源利用率是当前云计算研究的一项热点。通过对相关参考文献的研究[3],本文利用一种基于粒子群算法的动态改变权值的自适应变异的方法对实验云平台的虚拟资源进行负载均衡调节。
1 系统模型定义
将实验中心的云服务器资源定义为的四元组,分别代表了服务器的处理器资源、内存资源、网络资源和磁盘存储资源。采用同样的方法将虚拟资源定义为的四元组。虚拟资源的负载均衡控制实际上就是将M个虚拟机分配到N台服务器上的NP问题。每个虚拟桌面只能部署到一台物理服务器上,每台服务器上需要同时运行多个虚拟桌面,针对这种情况,利用一个矩阵来描述这种NM组合的部署情况:
SV=D11 D12 D13 … D1mD21 D22 D23 … D2mD31 D32 D33 … D3m… … … … …Dn1 Dn2 Dn3 … Dnm(1)
SV矩阵中每个Dnm元素的取值范围为{0,1}。当Dnm=1时,表示第M个虚拟桌面部署到第N台服务器上;如果Dnm=0时,则表示该服务器上没有部署虚拟桌面。
1.1 服务器负载能力
利用式(2)计算云中一台服务器的负载能力C,并对整个实验云的服务器负载能力求平均值Cavg,将Cavg作为每个节点的基本负载能力基础。式(2)中,表示每个虚拟桌面需要的处理器资源数,表示所部署服务器所能提供的处理器资源总量,并且。
1.2 集群负载计算
观察某个时间段的虚拟机用量,假设t时刻为实验云的某个运行时间,利用参考文献[4]提供的方法计算该时刻前的T时间内的服务器负载情况。利用T时间作为实验云的负载观察区间,计算每个虚拟桌面的平均资源利用率作为第j台虚拟机的负载,以此计算第k台服务器t时间内的负载情况。利用式(3)定义第k台服务器的负载LkS。
其中,Ck表示第k台服务器的负载能力,n表示在T时间区内第k台服务器上部署的所有的虚拟桌面数量,t表示第j台虚拟桌面在T时间区内总运行时间。部署虚拟桌面需要考虑服务器的负载均衡情况,利用式(3)预测计算每台服务器上的虚拟桌面的负载量。通过方差公式(式(4))估算云服务器集群的负载能力,选择负载能力较强的服务器作为部署需要的优先考虑节点。
其中,N是实验云的服务器节点数量,是实验云中第j台服务器的固有负载量,是实验云中第j台服务器在t时间预测计算的平均负载量。的值越大,表示服务器集群的负载能力越大,将其作为负载极限的判断参考条件。
1.3 目标函数
为实现本文提出的目标,定义函数fmax(S,V)用于计算实验云资源利用率最大化,函数fmin(m)用于计算虚拟机的迁徙次数。目标函数为:
约束条件为:<ε,即通过式(4)计算得到负载方差必须小于服务器固有预定的阈值ε;<Cε,即通过负载均衡后云的负载总量必须小于固有的负载能力Cε。
2 负载均衡设计
2.1 动态自适应算法
为了实现动态自适应负载均衡目标,在标准粒子群算法的基础上进行自适应变异处理和动态改变权值,克服原有算法收敛过快的现象。具体算法使用的公式如下。
(1)算法的粒子速度和位置更新公式:
为了提高算法的全局搜索能力,使粒子能够随群体规模的大小而变化,根据参考文献[5]对式(6)中w进行动态设置[5],具体公式如下:
w=wmin-hvwh+svws(8)
其中,wmin为w的初始值;hv为进化速度因子,hv=,用当前迭代f(Gn)与上一次迭代f(Gn-1)间的最小值和最大值计算进化速度hv;sv为粒子聚集因子,。Ft为当前迭代粒子适应度值的平均值,,计算规模为N的粒子群迭代到第t次时的适应度平均值。
(2)计算群体的自适应公式:
其中,f(Gi)表示利用目标函数计算第i群体的适应度, f(Gavg)表示N个群体的平均适应度,f(G)表示从i到N不断演变的群体适应度值。f(G)的取值范围是{1,fmax(f(Gi)-f(Gavg))}。根据参考文献[4]的方法定义随机因子Pm,Pm的取值范围是{K,0},同时满足且f(P)<fd[4]。是预期的方差阈值,fd是预期的适应度最优值,K的取值范围是{0.1,0.55}。利用式(10)对群体的N各粒子进行自适应变异,提高算法的全局求优能力。
其中,Zk是表示粒子Z的第k维数值,是呈正态分布的随机变量。对群体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 实验分析
3.1 实验环境搭建
为了验证本文提出算法的有效性和可行性,利用Eucalyptus系统作为实验测试环境。根据参考文献提供的方法,基于Eucalyptus平台并结合KVM与QEMU的虚拟架构搭建算法实验需要的运行平台[6-7]。
3.2 实验结果分析
分别利用Eucalyptus自带的贪婪算法、基本粒子群算法与本文设计的算法进行实验。根据实验需要,设置了所需虚拟机桌面的数量规模分别为50、100、150、200、250和300等数量级。根据云控制器显示的服务器与虚拟机的运行分析视图,分别记录了各个算法对服务器虚拟资源利用率的情况,结果如图1和图2所示,并对结果进行分析。
如图1所示,三种算法在不同规模用户压力下的服务器资源利用率的执行结果各不相同,很明显动态自适应粒子群算法比其他两种能更好地进行资源的负载均衡调节,提高服务器的资源利用率。随着虚拟桌面数量的不断增加,为了保持服务器间资源利用率的平衡,利用三种算法进行虚拟资源负载调节。如图2所示,动态自适应粒子群算法的迁徙数明显少于基本粒子群算法和贪婪算法作用下的迁徙数,在稳定性方面具有较好的表现。
4 结论
本文研究了实验云虚拟资源的负载均衡问题,利用基于动态改变权值的自适应变异的粒子群算法对服务器上的虚拟机进行负载均衡调节。以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.