论文部分内容阅读
近年来互联网技术和应用的不断发展,推动了对软件兼容性和可移植性的需求,使得虚拟机日益成为研究热点。一般来说,虚拟化技术可以被分为两类:泛虚拟化(Para-virtualization)和完全虚拟化(Full-virtualization)。泛虚拟化的实现需要修改操作系统,系统的性能较高,但对操作系统的修改也导致其兼容性较差。与此相对,完全虚拟化实现不需要修改操作系统,可以直接运行各类主流的操作系统,但缺点是性能较差。Xen作为英国剑桥大学研究组提出的一个虚拟化实现方案,最初采用泛虚拟化的实现,具有极好的性能表现。日益成为虚拟化技术的一个研究热点。但泛虚拟化实现对操作系统的兼容性较差,而其完全虚拟化实现则比较困难。而Intel和AMD近年来推出了硬件虚拟化技术使这一情况得到改善,其中Intel的支持x86体系架构的硬件虚拟化技术被称为VT-x。该技术能极大地提升VMM(Virtual Machine Monitor)对虚拟机控制的灵活性和粒度。在硬件虚拟化技术的支持下,Xen3.0版本开始实现了完全虚拟化。这极大的提高了Xen的兼容性和可移植性。但Xen完全虚拟化的实现性能表现还较差,其中I/O的性能更是一个薄弱的环节。完全虚拟化的Xen通过虚拟设备模型的方式为虚拟机提供设备访问的接口,设备模型提供了对PC平台设备的模拟,即用软件的方法模拟硬件级的编程接口,从而使得无需修改虚拟机的操作系统即可通过这些接口访问物理设备。论文选择Ne2000虚拟网卡作为研究对象,对虚拟设备模型进行了深入的研究和分析。Ne2000作为一个功能相对简单的网卡,易于理解Xen对它虚拟化实现的原理和方法。而Ne2000虚拟网卡和其他的虚拟网卡在模型上是相似的,对Ne2000虚拟网卡的研究可以容易的推导到一般的虚拟网卡,同时其结论也容易被应用到其他的虚拟设备。论文对Ne2000网卡和Ne2000虚拟网卡的体系结构和工作原理进行了细致的分析和研究,并在模型分析和实验数据分析的基础上,指出了其模型中的性能瓶颈。即I/O请求所引起的Hypervisor(虚拟机监视器)、Domain0、DomainU之间的频繁切换,是影响系统性能的重要原因。针对这一分析结果,论文提出了将Ne2000虚拟网卡的状态信息放入I/O共享页中,使得Hypervisor和Domain0都可以直接访问该状态信息,通过在Hypervisor中处理部分网络I/O请求,减少Hypervisor和Domain0之间的切换开销来提高系统性能。在模型改进的基础上,论文介绍了对模型改进的具体实现。并分析了模型改进后的I/O请求处理流程和中断传递流程的变化。通过搭建实验环境对改进后的系统进行测试,验证了改进后的模型可以稳定的运行,其性能比原有模型有较大的提高。论文的模型改进可以被推广到一般的虚拟网卡,也可以被推广到其他的虚拟设备。同时论文指出减少Hypervisor和DomainU间的切换开销也可能会极大地提高系统性能,这些工作将是下一步的研究目标。