杨斐
(阜阳职业技术学院工程科技学院,安徽阜阳236031)
基于Xen的虚拟机动态迁移技术研究
杨斐
(阜阳职业技术学院工程科技学院,安徽阜阳236031)
Xen是一种开源的虚拟化软件,在虚拟机动态迁移技术领域有着广泛的应用.在分析了Xen虚拟机动态迁移技术原理及迁移架构的基础上设计并开展相关实验,将实验结果中不同负载情况对迁移性能的影响做了对比分析后发现Xen能够较好的完成虚拟机在线迁移工作,为虚拟环境下的服务器负载平衡提供了保障.
Xen;云计算;虚拟机;动态迁移
随着云计算时代的来临,出现了大量由服务器端集中提供,对不同用户保持独立的虚拟化的资源.这些资源与具体的硬件特征无关,从而降低对使用者的影响.
为了加快这些资源的响应时间,提高服务质量,需要在云环境下通过负载均衡将计算任务分摊到多个资源中执行.虚拟化技术的进步使得系统和各种计算任务在不同的虚拟化平台之间进行分摊迁移时变得更加简单和高效.虚拟机动态迁移技术是虚拟化技术的一个非常重要的内容,通过这项技术可以实现服务无缝地在不同的计算资源之间流动.虚拟机动态迁移技术被用于容灾备份、负载均衡、服务器资源整合等多个领域,体现出其良好的商业价值[1].开源的Xen提供了较好的虚拟机迁移技术.
图1 动态迁移原理
1.1 虚拟机动态迁移的概念
虚拟机的动态迁移,是指将某个宿主机硬件平台上处于运行状态的虚拟机1的运行状态封装起来后完整、快速地迁移到另外一个宿主机硬件平台上,从而形成一个新的虚拟机2[2].这个过程是内存信息的移交与转换的过程,响应时间短,并且在迁移过程中虚拟机始终保持连续的工作状态,对用户是透明的,几乎不会对用户的服务质量造成影响.
1.2 虚拟机动态迁移的原理
虚拟机动态迁移在VMM(虚拟机监控器)的协助下,由源主机、目标主机以及VMM相互配合,完成客户操作系统的内存和其他状态信息的复制.动态迁移开始以后,内存页面被不断的从源虚拟机VMM拷贝到目标VMM.这个过程不会对源虚拟机造成任何影响,源虚拟机仍然处于正常运行状态中.当最后一部分内存页面被拷贝到目标VMM之后,目标虚拟机开始运行,VMM将源虚拟机与目标虚拟机进行切换,源虚拟机停止运行,整个动态迁移过程结束[2].
在迁移过程中,需要向目标主机源源不断地发送源虚拟机各种实时的状态信息.源主机的CPU状态信息量很少,可在停机拷贝时一次性发给目标主机.虚拟机内存则循环迭代的将每轮拷贝后产生的脏页发送给目标主机,因此如果源虚拟机内存负载较大时,产生的脏页就会越多,将会延长迁移所需的时间[1].源虚拟机的磁盘中存储着整个虚拟机文件系统的镜像,规模较大,如果直接迁移,将会是一个非常耗费时间和占用网络带宽的过程.Xen采用NFS(网络文件系统)存储磁盘文件,并在网络中共享这些文件,而不是直接迁移.网络状态也是迁移过程中非常重要的状态信息,诸如网络连接状态和IP地址等,通过ARP广播可以完成与目标主机MAC地址的重新绑定,保证网络始终处于连通状态.
1.3 虚拟机动态迁移的性能指标
影响虚拟机动态迁移性能的因素主要有两个:宕机时间和迁移总时间[3].
宕机时间是指在迁移过程中源虚拟机和目的虚拟机停止服务中断运行的时间.迁移总时间是指从迁移过程开始到结束所经历的时间.理想的迁移过程应该是尽量缩短宕机时间和和迁移总时间,使源虚拟机上运行服务受到的影响降至最低.
2.1 Xen迁移架构
Xen是基于GPL授权方式的开源虚拟机软件.从技术角度来说,Xen属于混合模型.在这种模型下,VMM将大部分I/O设备控制权交给一个运行在特权虚拟机中的特权操作系统(Domain0)来控制.Xen通过修改Linux内核实现处理器和内存的虚拟化,采用分离设备驱动模型来实现I/O虚拟化,由位于DomU(非特权虚拟域)的前端驱动和运行在Dom0(特权虚拟域)的后端驱动组成,前端驱动与后端驱动通过共享内存和事件通道的方式建立通信,最后后端驱动再通过原始设备驱动程序访问物理设备[4].Xen虚拟机的性能接近物理机.
图2 动态迁移架构
2.2 环境搭建及实验过程
为了验证Xen的动态迁移架构以及不同负载条件下动态迁移的性能指标特征的变化,设计了以下实验.实验中需要局域网环境下处于同一网段的三台物理机器(都支持Intel Vt-x),两台用作客户端,一台作为NFS服务器,为迁移过程提供网络共享存储.
表1 实验设备配置信息
实验过程按如下步骤进行:
(1)修改三台主机的/etc/xen/xend-config.sxp文件,确保开启动态迁移服务,因为它们默认是关闭的.
(Xend-relocation-Server Yes)
(Xend-relocation-port 8002)
(Xend-relocation-address'')
(Xend-relocation-hosts-allow'').
(2)执行命令#sudoapt-get install nfs-kernel-server为三台主机安装NFS服务.
(3)执行命令sudo gedit/etc/exports修改配置文件,添加语句:
/var/lib/libvirt/images*(rw,sync,no_root_squash).
完成后使用命令#sudo/etc/init.d/nfs-kernel-server restart重启NFS服务器.
(4)修改源主机和目标主机共享存储目录,使它们指向HostC中的公共存储区:sudo mount 192.168.1.60:/ var/lib/libvirt/images/var/lib/libvirt/images.
(5)在HostC上创建一个源虚拟机VM1,在源主机HostA上恢复出VM1.
(6)执行命令sudoxm migrate-l vm1 192.168.1.55,将VM1从HostA迁移至HostB中.
2.3实验结果及性能分析
实验分四组进行,第一组实验迁移过程中被迁移虚拟机VM1没有启动任何的服务,CPU负载很小,内存中脏页量很低.第二组实验迁移的进行的同时,在源虚拟机中运行一个需要大量占用CPU资源,同时对I/ O需求比较低的应用7-Zip来压缩一个大文件,保持CPU处于较高的利用率从而模拟CPU密集负载的情况.此时内存中脏页量升高,迁移过程中循环迭代拷贝内存页的次数也迅速增加.第三组实验在被迁移虚拟机上运行一个用C编写的小的测试程序,通过这个小程序,不断地向虚拟机内存中写入数据,迅速占用内存空间.第四组实验在迁移过程中,被迁移虚拟机运行Netperf这样一个网络性能测试工具,通过不断发送/接收测试数据包来模拟网络密集吞吐.
通过四组实验可以看出,CPU的负载状况对动态迁移性能的影响最大,当CPU使用率较高时,迁移总时间和宕机时间显著变长.内存密集负载和网络密集吞吐情况下对迁移性能的影响相对较小.无负载迁移只是一个理想的情况,在本实验中主要用来对比分析,因为虚拟机动态迁移的目的就是保证在被迁移虚拟机上运行服务不中断的情况下迁移到另外一台物理机,以便对虚拟机原先所在的物理机进行维护.
图3 不同负载情况下的迁移时间和宕机时间
Xen的动态迁移技术可以提供一个永不间断的连续工作系统,主要用于数据中心资源的整合.当一台物理机无法继续运行时,Xen可以在保证任务不中断的前提下将处在工作状态的虚拟机迁移到另外一台物理机上,从而使得在多个服务器之间实现负载均衡成为可能.实验表明,在局域网环境下,Xen虚拟机动态迁移的性能主要受CPU负载的影响,但整体性能仍可得到保障.广域网环境下的动态迁移需要保证被迁移虚拟机跨网络时仍能保持网络连接状态,在这种情况下,如何保证迁移的性能是今后需要研究的内容.
[1]杨坤.基于Xen的虚拟机迁移的研究及应用[D].兰州:西北师范大学计算机科学与工程学院,2013.
[2]虚拟化与云计算小组.虚拟化与云计算[M].北京:电子工业出版社,2011.
[3]彭安鑫.面向云计算的虚拟机动态迁移研究[D].济南:山东师范大学信息科学与工程学院,2012.
[4]梁华,梁凯.Xen虚拟服务器的动态迁移技术研究[J].洛阳理工学院学报:自然科学版,2010,20(1):50-52.
[5]英特尔开源技术中心,复旦大学并行处理研究所.系统虚拟化:原理与实现[M].北京:清华大学出版社,2009.
[6]刘鹏程,陈榕.面向云计算的虚拟机动态迁移框架[J].计算机工程,2010,36(5):37-39.
[7]佚名.Xen虚拟机在线迁移的搭建与调试[EB/OL].(2013-04-16)[2014-02-03].http://blog.csdn.net/hjskl/article/details/8809323.
[8]Pratt I,Fraser K,Hand.Xen3.0 and the Art of Virtualization[C].Ottawa,Ontario Canada:Proceedings of the Linux Symposium,2005.
Research on live migration technology based on Xen virtual machine
YANG Fei
(Institute of Engineering Technology,Fuyang Vocational and Technical College,Fuyang 236031,Anhui,China)
Xen is an open source virtualization software.The live migration technology has been widely applied in the field of virtual machine design.The experiments,which were on the basis of the analysis of Xen virtual machine live migration technology principle and migration architecture have been conducted,and a comparative analysis of performance which was based on the experimental results in different load that impacted on the migration situation,has found Xen virtual machines was better able to complete the online migration,providing a guarantee for server load balancing virtual environments.
Xen;cloud computing;virtual machine;live migration
TP393
:A
:1007-5348(2014)10-0013-04
(责任编辑:欧恺)
2014-07-15
2013年安徽省优秀青年人才基金重点项目(2013SQRL136ZD).
杨斐(1983-),男,安徽阜阳人,阜阳职业技术学院工程科技学院讲师,硕士,主要从事虚拟化与云计算方面的研究.