云计算机环境资源配置技术研究

2016-07-09 14:27郑伦川
现代电子技术 2016年7期
关键词:云计算神经网络

郑伦川

摘 要: 针对云计算机资源管理过程中如何减少人工操作,达到资源自适应管理这一问题,提出了基于负载相似度的神经网络负载预测算法和基于混合分组编码的多目标遗传算法的资源管理策略。针对不同神经网络和不同规模物理节点,分别在Matlab和CloudSim环境下进行了仿真实验。实验结果表明,基于负载相似度的Elman神经网络负载预测算法适应云计算机系统的动态特点,可以有效提高资源负载预测的准确性; 基于混合分组编码的多目标遗传算法的资源管理策略能在减少虚拟机迁移次数的同时优化物理机使用数量。

关键词: 云计算; 负载预测; 神经网络; 虚拟机迁移

中图分类号: TN711?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)07?0024?05

Abstract: For the problem of how to reduce the manual operation in the process of cloud computer resources management to achieve resource adaptive management, a resource management strategy of neural network load forecasting algorithm based on load similarity and multi?objective genetic algorithm based on hybrid grouping encoding is proposed. The simulation experiments for physical nodes of different scale and different neural networks were conducted in the environments of Matlab and CloudSim respectively. The experimental results show that the Elman neural network load forecasting algorithm based on load similarity adapts to the dynamic characteristics of cloud computer system, and can effectively improve the accuracy of resource load forecasting. The resource management strategy of multi?objective genetic algorithm based on hybrid grouping encoding can reduce the frequency of the virtual machine migration, and optimize the use quantity of physical machines.

Keywords: cloud computing; load forecasting; neural network; virtual machine migration

0 引 言

云计算具有复杂性、大规模性和动态特性等特点给云计算机资源的管理带来了很多挑战性问题,其中虚拟机迁移策略和物理机使用数量的优化最为关键。目前,国内外学者对云计算资源管理的研究主要包括虚拟资源管理、资源负载预测和资源合理分配三方面。在虚拟资源管理方面,大部分是研究如何对内存、CPU及存储资源进行虚拟间的分配,只有少量研究是基于虚拟机负载变化进行虚拟机动态迁移和资源分配的文献[1?2];在资源负载预测方面,文献[3]无法对突发的负载进行预测,文献[4]中没有考虑短期历史记录中无相似的就会影响预测效果;在资源合理分配方面,文献[5]不能进行自适应的云计算机资源管理。

针对上述问题,本文提出了一种基于负载相似度的神经网络负载预测算法和基于混合分组编码的多目标遗传算法进行虚拟机资源的管理,得出虚拟机最优迁移策略,从而达到资源的自适应优化配置管理。

1 总体思路

基于混合分组编码的多目标遗传算法进行虚拟机资源的管理由3个模块组成,如图1所示。

具体来说,该模型首先从云计算机资源全局监控器模块获取资源的负载情况,然后把这些负载序列发送给资源配置策略生成器。策略生成器的负载预测模块先根据负载进行负载预测,通过负载预测器和虚拟资源优化器得到优化的虚拟机资源配置策略,最后资源配置器根据生成的资源配置策略进行虚拟机的迁移和资源的配置工作,从而达到资源的自适应管理。

2 具体实现方法

2.1 资源负载的特征聚类

2.1.1 资源负载特征提取

(1) 负载数据的选取及预处理

云计算机数据中心的短期负载预测要求一定的实时性,从而适应动态变化的负载。因此历史数据的选取要综合考虑准确度和实时性,本文选择过去3天的负载数据进行预测,如图2所示。

受突发因素和数据测量系统影响,获得的负载数据存在一定的异常数据,需采用水平处理法和垂直处理法对数据进行修正[6]。

(2) 云计算机资源负载特征提取

由神经网络研究可知,每个神经网络具有d个输入及ε个输出,分别记为d维输入向量X{X1,X2,…,Xd}和ε维输出向量Y{Y1,Y2,…,Yε}。为了满足神经网络对数据的格式要求,本文采用基于滑动窗口的资源负载特征提取方法,如图3所示。

图3中给定长度为L的云计算机资源负载时间序列,依次取d(x1,x2,…,xd)个相邻的样本为滑动窗,并将它们映射为ε维预测值Yi(i=1,2,…,n),这N组数据即为负载特征向量,如表1所示,N组负载特征,每组前d个数据为输入的负载特征数据,作为网络输入;后ε个为当前数据的输出负载特征,作为网络训练输出比较值。

2.2 资源负载的预测算法

在处理历史数据时,首先对样本数据进行聚类,根据相似度将样本分为[C]类。要根据当前提取的[d]个时间点负载预测接下来[ε]个时间点的负载,则将这[d]个时间序列值和聚类后[C]个样本集进行比较,找到相似度最高的聚类作为神经网络的训练样本,基于此本文提出了基于负载相似度的神经网络预测算法,即LSNN(Load Similarity Based Nero Network)算法。

LSNN算法预测流程如图4所示,首先需要获取历史负载数据,预处理后提取负载特征,然后采用KFCM?2聚类算法对负载特征进行聚类,得到[C]个聚类集,由式(4)找到相似度最高聚类集作为训练样本。然后构建合适的神经网络开始进行训练。初始化各个参数后计算各层神经元的输入与输出。当精度达到要求时,结束训练,否则根据误差值进行权值修正,继续迭代。直到最后输入待预测序列得到预测结果,算法结束。

综合云计算机负载数据选取及预处理、负载特征提取、基于KFCM?2均值聚类的负载特征分类及负载相似度的计算等方法,设计出云计算机负载预测模型,实现负载的自动预测,如图5所示。

选择Elman神经网络作为负载预测网络,由图5可以看出,该模型主要包括5个模块:云计算资源全局监控器、历史数据选取和预处理模块、历史负载特征提取模块、KFCM?2聚类器以及LSNN预测器。基于负载相似度的Elman云计算机资源负载预测模型首先从云计算机资源全局监控器获取过去3天的负载数据,同时提取出当前12个时间点的负载序列[X0]为预测基准值;接着利用滑动窗口技术提取出云计算机资源负载特征;然后使用KFCM?2聚类算法将云计算机资源负载特征分成[C]个聚类簇;最后基于[X0,]挑选出最优聚类簇[C*,]作为Elman神经网络训练样本进行训练,将[X0]作为输入,预测出接下来6个时间点(1 h)的云计算机资源负载预测值。

2.3 资源的配置管理

2.3.1 云计算机虚拟机资源的配置管理

2.3.2 基于混合分组编码的多目标遗传算法

(1) 多目标优化方法

云计算机中虚拟机资源管理问题实际是在寻求物理机使用个数最少的同时使虚拟机迁移次数最少,但实际上这两个目标是相互矛盾的。此时需要确定一组均衡解,其数学描述如下[7]:

(2) 混合分组编码的多目标遗传算法的实现

① 编码:由于一个物理机[pmj]可以虚拟出多个虚拟机[vmi,]虚拟机和物理机之间具有从属关系,这种分组问题需采用混合分组编码[9]方法解决。假设有编号分别为ABCD的四个物理机,其排列顺序为CADB;有12台虚拟机分成四组分别分配到四台物理机上,组成四组基因,四组基因构成一个染色体CADB(C{2,4,7},A{1,9,6},D{8,10,11,12},B{3,5})。染色体具体表示如图6所示。

② 译码:如图7所示,3个坐标轴分别表示物理机的CPU、存储、内存三种资源,将每个基因所包含的虚拟机依次放入空间的左下角,直到物理机没有足够空间或虚拟机放完为止。

③ 初始染色体种群的生成:首先随机地生成[M]个虚拟机请求序列,接着对每一个虚拟机请求序列[Mi]进行如下操作生成初始染色体种群:

Step1:对当前请求序列[Mi,]依次遍历[Mi]中的虚拟机请求[RVj;]

Step2:从当前物理机中寻找下标最小且满足[RVj]所需资源的物理机PM,将该虚拟机分配到物理机PM上;

Step3:检查此次分配是否满足约束公式(6),如满足,将虚拟机请求[RVj]从请求序列[Mi]中删除,此次分配成功;

Step4:若[Mi]中虚拟机请求全部处理完,则处理[Mi+1]虚拟机请求策略,直到处理完所有虚拟机请求策略。

通过以上处理,就生成了[M]个虚拟机请求序列配置方案,作为染色体初始种群。

④ 适应度:适应度函数是根据目标函数变换而来的,Fit(X)=Φ(·),其中Φ(·)是从目标函数转换为适应度的变换函数。

⑤ 个体选择:本文采用PAES算法的比较策略,从随机选择出来的两个个体中,择优选择适应度好的作为下一代,重复选择直到达到期望的种群规模。

⑥ 交叉:每个分组虚拟机的个数不固定,因此交叉操作要能够处理不等长的基因,方法如下:

Step1:在父染色体中随机选择两个交叉点,并确定交叉部分,每个交叉部分即为一个分组;

Step2:把第一个父染色体的交叉部分注入到第二个父染色体的交叉点;

Step3:消除第二个父染色体中重复的基因,即删除重复的虚拟机;

Step4:删除重复虚拟机后,如有需要,根据适应度调整染色体,这样就可得到一个后代染色体;

Step5:以同样的交叉方法应用到父染色体中,得到第二个后代。

⑦ 变异:选择一个父个体,从中删除一个虚拟机组,然后将删除的虚拟机重新分配到各个物理机中,从而得到变异染色体。

3 仿真实验

3.1 资源负载的特征聚类仿真

试验数据来自NASA数据中心,以10 min为间隔进行一次资源重新配置,统计每10 min内数据中心的负载请求,并以过去3天的负载数据作为训练数据,预测接下来12个时间点(2 h)的资源负载。

数据处理后,利用滑动窗口方法对负载数据进行负载特征提取,生成训练样本。设窗口大小为1,每个窗口有12个数据点(2 h),如此3天共计36组训练样本,每组包含12个输入值和12个预测值。

3.2 资源负载的预测算法仿真

从NASA数据中心负载请求日志中可以统计出数据中心的负载序列,进行试验验证预测的有效性。本文以10 min为单位对数据中心的负载进行统计,并以2 h(即[d=12]个数据点)为一组数据,并利用前3天的资源负载数据来预测接下来1 h(即[ε=6]个数据点)的云计算机资源负载,预测结果为判定节点低载或过载提供依据,从而选出相应的虚拟机迁移序列,为虚拟机实时配置决策提供支持。

对于Elman神经网络,d=win*ε,win表示一个窗口的大小,[ε]为输出向量的维数,[d]是输入向量的维数,win窗口的大小会对预测结果产生影响,因此需合理确定win的大小。根据试验要求,调整win的大小,固定其他参数不变,计算出不同win值对应的MSE,图9给出了不同win值的预测结果,表2给出了不同win值预测结果的MSE值。

从图10中可以得到如下结论:

(1) 当聚类簇为1时表示没有对负载特征进行聚类,即普通的BP和Elman算法,MSE误差在5%左右,能达到较好水平;

(2) 当聚类个数为2,应用基于负载相似度的预测算法,MSE误差分别为0.7%和0.9%,达到了预期效果,证明了基于负载相似度算法的有效性;

(3) 当聚类个数为3,预测结果偏差在20%以上,这是因为过度聚类导致实际预测的样本不足,从而导致较大偏差的出现;

(4) Elman算法的预测性能整体比BP好。

3.3 资源的配置管理仿真

本文选择CloudSim作为仿真平台。仿真实验中分别模拟了50,100,200个物理节点三种规模进行实验对比,每个物理节点装备2个处理器,频率为3 000 MIPS,1 Gb/s网络带宽,8 GB内存,7 200转512 GB硬盘。实验中使用的虚拟机是单核的,每个虚拟机的配置根据需要动态分配资源。

从中可以得出如下结论:

(1) 以最少物理机使用个数为目标的配置策略可使物理机使用个数最少,但虚拟机迁移次数较高。

(2) 以最少迁移次数为目标的配置策略可使虚拟机迁移次数最少,但物理机使用个数增多。

(3) 基于混合分组的多目标遗传算法配置策略的虚拟机迁移次数和物理机使用个数虽然都不是单个最优,但实现最优权衡,服务级目标(SLA)违背率最低,并且使用相对较少的虚拟机迁移次数和较少的物理机个数。

4 结 论

本文提出了基于负载相似度的Elman神经网络负载预测算法和基于混合分组编码的多目标遗传算法的虚拟机资源管理策略。并在CloudSim及Matlab环境下分别完成了仿真实验,证明了负载预测算法和资源管理策略的有效性。本文所提出的负载预测算法只考虑了过去3天时间内的负载情况,属于短期负载预测,对周度、月度等中长期负载预测还无法进行;提出的资源管理策略是以虚拟机为资源单位进行管理的,属粗粒度资源管理,对细粒度资源管理还无法进行,还需进一步完善。

参考文献

[1] SHIN D, AKKAN H. Domain?based virtualized resource ma?nagement in cloud computing [C]// Proceedings of 2010 6th International Conference on Collaborative Computing: Networ?king, Applications and Worksharing. Chicago: IEEE, 2010: 1?6.

[2] KUPFERMAN J, SILVERMAN J, JARA P, et al. Scaling into the cloud [EB/OL]. [2009?08?12] http://cs.ucsb.edu/jkupferman/docs/scalingintothecloudsPDF.

[3] 李强,郝汾沁,肖利民,等.云计算中虚拟机放置的自适应管理与多目标优化[J].计算机学报,2011,34(12):2253?2264.

[4] CARON E, DESPREZ F, MURESAN A. Forecasting for grid and cloud computing on?demand resources based on pattern matching [C]// Proceedings of 2010 2nd IEEE International Conference on Cloud Computing Technology and Science. Indianapolis: IEEE, 2010: 456?463.

[5] LI M K, CHEN M, XIE J. Cloud computing: a synthesis mo?dels for resource service management [C]// Proceedings of 2010 Second International Conference on Communication Systems, Networks and Applications. [S.l.]: IEEE, 2010: 208?211.

[6] 朱振伟.气象因素对电网负荷特性影响的研究[D].杭州:浙江大学,2008.

[7] 祁薇熹,李彬.多目标演化算法的进展研究[J].计算机与数字工程,2008,36(5):16?18.

[8] 赖红松,董品杰,祝国瑞.求解多目标规划问题的Pareto多目标遗传算法[J].系统工程,2003,21(5):24?28.

[9] FALKENAUER E. A Hybrid grouping genetic alogrithm for bin packing [J]. Journal of heuristics, 1996, 2(1): 5?30.

猜你喜欢
云计算神经网络
神经网络抑制无线通信干扰探究
志愿服务与“互联网+”结合模式探究
云计算与虚拟化
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
基于神经网络分数阶控制的逆变电源