当前位置:首页 期刊杂志

Xen虚拟机动态增量迁移的研究实现

时间:2024-04-25

姜涛

摘要:Xen虚拟机现有迁移机制中,源主机和目的主机需要连接共享存储服务,共享存储是动态迁移的必要条件。针对这一局限性提出了一种包括外存迁移在内的动态增量迁移方法,可以在动态迁移过程中,把虚拟机磁盘文件从源主机迁移至目的主机,从而降低了动态迁移的成本,扩大了动态迁移的应用范围。并通过实验进行了性能分析。

关键词:虚拟机;Xen;增量迁移

1 引言

目前,虚拟机产品主要应用于大规模数据中心,其在线迁移都依赖于物理主机之间采用集中式共享外存设备。对于拥有独立本地外存的服务器和个人计算机,迁移技术在这种场合下受到限制,所以实现一个包括外存迁移在内的虚拟机增量迁移方案将使迁移技术得到更广泛的应用。

2 虚拟机迁移技术分析

为了拓宽现有迁移技术的应用范围,有必要实现一个包括外存迁移在内的迁移方案,使得在采用分散式本地存储的计算机环境下,仍然能够利用迁移技术转移计算环境,并且保证迁移过程中操作系统服务的可用性,这就需要动态增量迁移技术。

3 Xen虚拟机动态增量迁移的设计

对于VM(Virtual Machine)的内存状态的迁移,Xen采用了主流的预拷贝(pre-copy)的策略。结合内存迁移的策略,动态增量迁移主要分为三个阶段:PUSH阶段、停机拷贝阶段和PULL阶段。

在PUSH阶段源VM仍在运行,其外存访问被VMM监控。在内存pre-copy之前采用与内存迁移同样的原理先进行外存的pre-copy。外存pre-copy结束后,进入Xen的内存pre-copy阶段,在此期间VM对外存的访问仍然被监控记录,作为后续阶段同步剩余不一致外存状态的依据。在停机拷贝阶段,源VM被挂机,传输剩余的内存状态、CPU状态等,并将VMM所记录的外存状态信息发送给目的VM。

4 Xen虚拟机动态增量迁移的实现

4.1 PUSH阶段

在迁移开始之前,用户通过迁移命令(xm migrate)向源主机VMM发出迁移请求,收到请求后VMM通知块设备即将开始迁移。然后检查内存是否够用,如果不够用则先释放部分内存,以保证有足够的内存进行迁移。接着源主机与目的主机建立socket连接,源主机请求迁移,当收到目的主机的响应之后,进入PUSH阶段[5] 。

在迁移过程中,源主机需要监控VM对外存的访问。在设备后端初始化一个bitmap用于记录外存块的状态变化。如果某个外存块在循环期间被写脏,就将块标志位置1。每轮循环首先获取此bitmap记录,根据该记录发送前一轮发送过程中被VM写脏的外存块。

4.2停机拷贝阶段

进入至停机阶段,源VM被挂起,目的VM尚未启动,剩余内存脏页和外存脏块以及运行状态等信息被拷贝到目的主机。在外存pre-copy结束至源VM被挂起的过程中,源VM外存访问产生的脏块仍然被设备后端记录在bitmap中。

加入外存迁移的停机拷贝阶段,与之前的区别主要体现在将源主机设备后端所监控记录的bitmap发送给目的主机,目的主机启动后将根据该bitmap确定本地外存数据是否已经与源VM的外存数据一致[6]。通常情况下,外存的脏块生成率相对内存产生脏页的机率是比较低的,因此理论上对停机拷贝阶段时间的影响不大。

4.3 PULL阶段

PULL阶段由源主机和目的主机的迁移进程合作完成,包括目的VM外存访问按需向源主机请求以及源主机VM外存主动向目的主机post-copy。

进入至PULL阶段,源主机向设备后端请求监控外存状态的bitmap,并根据此bitmap确定从最后一轮外存pre-copy至源VM被挂起的过程中哪些外存部分被源VM写脏,并将脏块发送至目的主机。当bitmap中标记的所有脏块都被传输至目的主机后,目的主机已经获得了所有最新的外存数据,外存迁移结束[7]。

5 性能测试

第一轮测试在两台物理主机A和B之间进行,两物理主机均通过网卡连接到局域网,VM从一台物理主机迁移至另一台物理主机。通常文件系统的块大小为4KB,也就是8个扇区[8]。在对VM进行外存迁移时,首先以8个连续的扇区组成的磁盘块作为bitmap中一个监控单位,逐渐递增,在无工作负载情况下进行多次迁移实验,得到各阶段迁移时间:

第二轮测试在两台物理主机A和B之间设置共享存储C,利用未修改过的Xen虚拟机进行试验,同样是在无负载条件下进行迁移,得到各阶段迁移时间:

从两组实验结果,可以看出,动态增量迁移在总体迁移时间上明显大于共享存储的迁移,其中停机阶段时间相差很少,主要体现在Pre-copy阶段和Pull阶段,其主要原因是这两个阶段中加入了外存迁移。在对实时性要求不是特别严格,而需要全系统迁移的情况下,动态增量迁移的实现摆脱了对共享存储的依赖,使虚拟机迁移更加自由。

参考文献

[1] C Clark,K Fraser,S Hand,J G Hansen,E Jul,C Limpach,I Pratt,A Warfield.Live migration of virtual machines[A].In Proceedings of the 2nd USENIX/ACM Symposium on Net-worked Systems Design and Implementation(NSDI2005)[C]. Berkeley,CA,USA:USENIX Association,2005:273-286.

[2] R Chandra,N Zeldovich,C Sapuntzakis,MS Lam.The collec-tive:a Cache-based system management architecture[A].In Proceedings of the Second USENIX/ACM Symposium on Net-worked Systems Design and Implementation(NSDI2005)[C].Boston,MA,2005:259-272.

[3] 刘鹏程.面向云计算的虚拟机动态迁移框架[J].计算机工程,2010,36(5):37-39

[4] 石磊,邹德清,金海.Xen虚拟化技术[M],华中科技大学出版社,2009:38.

[5] 江雪.虚拟机动态迁移的研究[J].计算机应用,2008,28(9):2375-2377.

[6] 张彬彬,罗英伟,汪小林.虚拟机全系统在线迁移[J].电子学报,2009,37(4):896-899.

[7] C P Sapuntzakis,R Chandra,B Pfaff,J Chow,M S Lam,M Rosenblum.Optimizing the migration of virtual computers[A]. In Proceedings of the5th Symposium on Operating Systems Design and Implementation(OSDI2002)[C].New York,NY,USA:ACM,2002,Volume36:377-390.

[8] R Bradford,E Kotsovinos,A Feldmann,H Schioberg.Live wide-area migration of virtual machines including local persistent state[A].In Proceedings of the3rd International Conference on Virtual Execution Environments(VEE07)[C].NewYork,NY,USA:ACM,2007:169-179.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!