文献标识码: A
DOI:10.16157/j.issn.0258-7998.2015.11.036
中文引用格式: 吴军,张轶君,白光伟. Xen下虚拟机动态迁移优化策略的研究[J].电子技术应用,2015,41(11):128-131.
英文引用格式: Wu Jun,Zhang Yijun,Bai Guangwei. Dynamic optimization research strategy based on Xen virtual machine migration[J].Application of Electronic Technique,2015,41(11):128-131.
0 引言
在虚拟化环境中,动态迁移的虚拟机[1]是一个强大的管理工具,它促进系统维护、负载平衡、容错及电源管理。由于动态工作负载使得有些节点利用率低下而有些节点却不堪重负,为了解决虚拟机物理节点之间的负载平衡问题,提出虚拟机迁移策略。
预复制技术[2-3]在高带宽低负载的环境中性能优越,但处于低带宽高负载的情况时性能却表现较弱,导致停机切换时间和总迁移时间较长,影响了虚拟机的正常服务。而本文将传统预复制技术与相关预测算法、趋势判断算法结合,并利用自适应停机阈值机制取代预复制技术固定阈值机制,从而有效减少了迁移过程中的总时间及停机时间。
1 相关工作
最近几年,国内外很多学者针对预复制技术在低带宽高负载环境下的运行效率问题提出了很多完善和优化方法。例如Chen Yang[4]等人在2011年提出一个基于内存混合复制方式的动态迁移机制HybMEC,结合按需和内存推送两种复制方式来提高实时迁移性能;Hai Jin,Li Deng[5]等学者在2014年提出一个适应性压缩方法模型MECOM,针对不同内存页面的特征使用相应的压缩算法来降低页面传输大小。不同于以上各类优化方法,本文从预复制技术如何在低带宽高负载的环境下有效判断最优停机时机的角度对虚拟机实时迁移性能进行研究,旨在达到更好的迁移水平。
2 传统预复制技术介绍及其优劣性分析
随着虚拟化技术不断发展,Clark、Nelson等人[2-3]相继提出了预复制动态迁移技术,预复制的迁移过程如图1所示(主机A为源主机,主机B为目的主机)。
虽然预拷贝技术在对应用及用户影响较小的情况下极大减少了停机时间,适合迁移写操作不频繁的负载,但该技术仍存在以下问题:例如迭代过程中,进行多次迭代会增加迁移总时间,迭代不足又会增加不必要的停机时间,所以迭代次数的确定受到网络传输带宽及负载类型的影响;当脏页率大于或等于页面传输速率时,迭代过程可能进入不收敛状态等情况。
3 基于Xen虚拟机改进后的迁移机制
在Xen[6]整个迁移过程中,最复杂的部分当属内存迁移。本文在研究传统Xen内存迁移机制的基础上对传统迁移方案进行了优化。传统Xen内存迁移机制如图2所示。
由图2可知,迁移执行模块实际负责了整个迁移过程的大部分工作,因而该模块尤为重要,但在其实现过程中仍有不足之处:(1)在脏页率较高的情况下,增加了脏页重复传输的概率。(2)在第1轮迭代过程中,不需要传输所有的内存页,因为许多页在以后的迭代过程中被再次修改,需要再次迭代传输。
针对以上不足,本文提出一种改进机制,如图3所示。除了对内存页进行信息监控,还通过先使用预测模型对后轮脏页率进行预测,在此基础上对脏页率的变化趋势进行分析,使之与数据传输率进行比较,结合自适应停机阈值机制使虚拟机在低带宽高负载的环境下也能有很好的表现。
4 改进后Xen迁移算法的实现
4.1 马尔科夫脏页预测
预测概率算法使用马尔科夫模型[7]。本文设定状态E1表示内存页没有被读、写,设定状态E2表示内存页只读,设定状态E3表示内存页被修改,默认迁移开始前的状态为E1。相关概念和计算公式如下:
(1)状态转移概率矩阵:假定内存页有n个可能的状态,即E1,E2,E3…En,本文使用pij表示内存页的状态从Ei变成Ej的状态转移概率,状态转移概率矩阵为:
(2)状态概率:状态概率表示内存页的初始状态已知,内存页的状态转移k次后变成状态Ej的概率,且:
由马尔科夫假设和贝叶斯条件概率公式得:
设定行向量π(k)=[π1(k),π2(k),…πn(k)],由公式得到状态概率的递推公式:
由于只需要预测脏页的状态概率,本文设置初始状态行向π(0)=[0,0,1]。
4.2 Mann—Kendall趋势变化检验
当预测出后轮的脏页率高于网络传输带宽时,改进后的迁移机制利用Mann—Kendall检验模型[8]对脏页率时间序列进行趋势分析,以确定停机时间。该模型是一种非参数检验类型的时间序列趋势分析方法,其优点是不要求时间序列符合一定的分布,受异常值的影响较小,而且计算简便。采用Mann—Kendall模型检验脏页率变化趋势的过程如下:
(1)假设脏页率时间序列D={d1,…,dn}无趋势;
(2)如下计算统计量S:
S为正态分布,其均值为0,方差为:
其中Median为取中值函数,当β>0时说明有上升的趋势,当β<0则表示下降的趋势。
4.3 自适应阈值机制的引入
根据上述脏页率的预测及趋势分析方法,本文在预拷贝算法固定阈值的基础上引入了自适应停机阈值机制[8],具体实现如下所述:迭代拷贝过程中,统计每个迭代轮中的脏页率以构成一个时间序列,在每轮结束时首先对后轮的脏页率进行预测。若预测出脏页率大于等于数据传输率,则进一步对脏页率时间序列进行趋势判断,若判断结果为上升或平稳趋势,则判定后面的迭代轮会进入到“无法收敛”状态,那么就立即进入停机拷贝阶段;否则,说明脏页率的变化不会导致“无法收敛”状态,则按原算法继续进行。通过加入该机制,迁移过程中可以实时监测脏页率的变化情况,一旦发现有进入“无法收敛”的趋势就能在达到固定迭代次数阈值之前进行停机拷贝,有效避免拖延总迁移时间,及时控制停机时间。
5 实验及分析
为了保证实验环境的稳定性,测试出更精确的实验结果,测试中构建了一个小的私有云平台,基本可以满足Xen虚拟机动态迁移的实验要求。其中使用两台普通PC分别做为源主机Host A和目的主机Host B,另一台PC作为连接源主机和目的主机的NFS服务器,为动态迁移提供NFS文件共享服务,并且使用了一台100 M交换机连接这几台PC。该实验环境为3台PC配置相同的物理主机,CPU是Intel Core i5-3210 M,其工作频率是2.50 GHz,内存是2 048 M,硬盘是320 G,虚拟平台为 Xen 4.3.1。
本实验采用开源系统测试软件Lmbench为虚拟机测试写操作任务,使用其bw_mem命令对CPU性能进行测试,同时,修改bw_mem.c的wr函数,通过库函数usleep对内存写速度进行调整,借此测试程序为实时迁移中的虚拟机提供如下三种负载:(1)脏页率上升的写操作;(2)脏页率下降的写操作;(3)脏页率平稳的写操作。实验分为两种情况:
实验1:在原配置上启动虚拟机,其分别运行上述三种负载,从停机时间和总迁移时间两方面对比传统算法与改进算法的优劣,如图4、图5所示。
实验2:启动虚拟机(其运行脏页率上升负载),利用 Linux流量控制工具TC限制网络带宽分别为20 M、30 M、40 M…70 M,在此配置下进行迁移算法对比实验,结果如图6、图7所示。
6 总结
本文在对后轮脏页率利用马尔科夫模型进行预测的基础上,结合Mann-Kendall验模型对迁移中脏页率的变化趋势进行判断,最后根据判断结果采用自适应阈值机制确定最优停机时间,更好地解决虚拟机中网络传输带宽的大小和运行负载的高低对传统预拷贝技术的影响。同时实验结果表明,本文提出的优化机制能有效提高虚拟机基于预拷贝算法实时迁移的性能。
参考文献
[1] 江雪,李小勇.虚拟机动态迁移的研究[J].计算机应用,2008(9):2375-2377.
[2] CLARK C,FRASER K,HAND S,et al.Live migration of virtual machines[C].Proceedings of the 2nd Symposium on Networked Systems Design and Implementation,2005:273-286.
[3] NELSON M,LIM B,HUTCHINES G.Fast transparent migration for virtual machines[C].Proceedings of the USENIX Annual Technical Conference,2005:391-394.
[4] Chen Yang,Huai Jinpeng,Hu Chunming.Live migration of virtual machines based on hybrid memory copy approach[J].Chinese Journal of Computers,2011,34(12):2278-2291.
[5] Hai Jin,Li Deng,Song Wu,et al.MECOM:Live migration ofvirtual machines by adaptively compressing memory pages[J].Future Generation Computer Systems,2014:23-35.
[6] 石磊,邹德清,金海.Xen虚拟化技术[M]. 武汉:华中科技大学出版社,2009.
[7] 孙国飞,谷建华.基于预拷贝的虚拟机动态内存迁移机制改进[J].计算机工程,2011,13(37):36-39.
[8] 崔勇,林予松.虚拟机实时迁移中自适应阈值机制的研究[J].小型微型计算机系统,2015(3):466-470.