论文部分内容阅读
虚拟化技术源于上世纪60年代,近年来重新受到重视并得到快速发展,其核心思想是在一个物理主机上虚拟出多个虚拟计算机并在其上同时运行多个客户操作系统。虚拟化平台允许用户方便地复制、迁移、修改和回滚一个虚拟机的执行状态。虚拟机复制是指在虚拟化平台上,复制已经存在的给定的虚拟机,得到一个完全相同的新虚拟机。虚拟机复制给用户带来了很大便利,然而某些应用场景要求虚拟机的复制能快速完成且不影响源虚拟机的执行,否则用户使用时将没有足够灵活性而受到限制。写时复制技术(Copy-on-Write,COW)在操作系统中被广泛应用,在虚拟化平台上也有重要作用,是做到虚拟机快速复制不影响源虚拟机执行的关键技术。
开源虚拟化平台Xen对X86体系结构能进行很好的虚拟化,但最新版本的Xen平台仍未实现内存写时复制,因而目前已有的 Xen 虚拟机复制无法做到快速。本文分析了相关场景下对虚拟机复制的要求,分析了 Xen 虚拟化平台内核的实现,在Xen平台上实现了内存写时复制,并基于内存写时复制实现Xen虚拟机快速复制。所实现的虚拟机复制包括内存复制、辅助运行环境复制以及子虚拟机设备安装等步骤。在源虚拟机不间断运行无需挂起或关机的情况下,能通过一条命令或一个函数调用在几百毫秒的时间内,复制出一个完全相同的且能立刻投入运行的子虚拟机,其中对源虚拟机的影响仅为暂停几十毫秒。由于内存写时复制,初始状态下子虚拟机大部分内存与源虚拟机相同,随着它们的运行各自会逐渐占用独立的实际内存资源,但当子虚拟机存在时间较短时,子虚拟机占用的额外实际内存仅为运行所需全部内存的一部分。不管源虚拟机还是予虚拟机,其上运行的程序不受影响。此外,本文还根据实验结果分析并指出了改进潜能和下一步工作。