论文部分内容阅读
虚拟化技术自诞生以来就受到人们的关注,由于其在资源利用率、安全性、管理便捷性方面的优势,它被越来越多的企业所采用。虚拟机热迁移技术,是虚拟化技术的一大亮点,它允许在虚拟机运行时进行平滑迁移,迁移过程中服务不中断,因此被广泛应用于负载均衡、能耗控制、服务器在线维护领域。KVM(kernel-based Virtual Machine),一种开源的基于硬件虚拟化的虚拟化软件,由于其简单性、高效性,被越来越多的云厂商用于构建云平台。本文基于KVM虚拟机,深入研究了KVM虚拟机及其热迁移技术的实现。在研究过程中,我们发现现有的KVM热迁移算法存在两个缺点:对脏页的过度重复拷贝和热迁移有时不能终止。针对上述两个缺点,本文提出了两种相应的优化方案,即基于局部性原理的内存拷贝策略优化和自适应降低VCPU热度优化算法:1.基于局部性原理的内存拷贝策略优化。在热迁移的迭代拷贝阶段,需要重复拷贝内存脏页,而程序的运行都具有局部性原理,本轮被修改的内存页下一轮很可能再被修改,因此很多脏页的拷贝其实是无意义的。基于局部性原理的内存拷贝策略优化,根据前两轮的脏页信息,为本轮脏页拷贝提供参考,对于连续两轮写脏的内存页不予以拷贝,从而有效减少了拷贝数据量。实验结果表明,当虚拟机修改内存频繁时,该优化可以显著提高热迁移效率。2.自适应降低VCPU热度优化算法。对于一些内存高负载的虚拟机,如正在执行编译内核任务的虚拟机,由于其脏页产生速率高于内存传输速率,因此迁移可能无法有效终止。对此我们提出了自适应降低VCPU热度的优化算法,通过往VCPU线程周期性插入sleep任务,减少虚拟机运行时间,从而达到降低脏页产生速率的目的,使热迁移顺利结束。实验结果表明,即使在内存高负载情况下,该优化仍然可以顺利结束迁移。