论文部分内容阅读
系统模拟和虚拟化技术对当今计算机科学研究和相关产业有着重要的影响,整合模拟和虚拟这两个计算环境是一项具有挑战性和有意义的工作。利用两者环境各自所具有的优势,一方面可以为上层操作系统和应用软件更多重要的服务;另外一方面,也可以为新处理器的设计提供新的模拟和检验方案。
系统软件模拟技术不仅给上层操作系统提供了相对成熟的模拟环境,而且提供了细粒度的指令监控策略,给代码的调试,分析以及错误数据追踪带来了极大的方便。系统模拟软件还可用于设计新的指令级架构(Instruction SetArchitecture),辅助新处理器的设计。然而在模拟环境下运行的操作系统性能比较差。
系统虚拟化技术利用软件和硬件可创建若干个和底层硬件同体系架构的虚拟环境。运行在虚拟环境下的操作系统,相对于原生环境下的同类操作系统,性能损失可基本忽略。然而在此环境下进行系统级的错误调试以及错误数据追踪比较困难。
由系统虚拟化提供的虚拟机动态迁移技术作进一步扩展后,可整合这两个计算环境。为此我们提供了一个通用的虚拟机动态迁移框架,Roam,来整合这两种环境。Roam采用了通用的迁移协议,对虚拟机的各类资源(CPU,内存,I/O设备)作了抽象。在发送端,Roam会截获由VMM/Emulator发出的迁移命令,然后把数据转化成Roam定义的格式,最后选择合适的内存传输策略把虚拟机的数据传送到接收端。在接收端,经过协议沟通后,Roam模块会把接收到的数据从Roam定义的通用格式转化为本地VMM/Emulator可识别的格式。
我们实现了一个基于Xen和Qemu的虚拟机迁移原型系统。在实验中,通过虚拟机的停机时间和迁移的整体时间等方面测量了Roam系统的性能。实验结果表明,Roam一个是实用的系统。相对于原有的迁移系统,Roam的开销主要在于CPU,内存,I/O设备状态的转化,其平均时间不会超过5毫秒。