论文部分内容阅读
随着系统虚拟化技术的不断发展,处理器虚拟化和内存虚拟化在功能上逐步完善,性能也日益提高。但设备虚拟化仍然是制约虚拟化整体性能的瓶颈所在,因此为VMM提供高效的设备虚拟化模型是目前系统虚拟化中亟待解决的问题之一。设备虚拟化的目标是为客户机提供可复用的虚拟设备,需要在满足客户机对设备透明访问的同时,保证设备访问的可靠性、高效性和安全性。现有的设备虚拟化模型面临的主要问题在于驱动程序给VMM本身带来的安全风险,设备更新和系统升级的不便性,IO处理延迟等。针对上述问题,本文采用了另一种形式的分离驱动模型,借助多核平台将特权域从虚拟机中转移到了一个IO处理机中。该IO处理机以对等的形式与VMM同时运行在一台机器上,能够消除由于调度引发的IO处理延迟,同时避免频繁的特权级切换。在此基础上,本文设计了通用的设备虚拟化模型,主要内容包括以下四个方面:1、虚拟设备构造。利用客户机启动对其BIOS的依赖,按照真实系统配置以及用户的要求完成客户机BIOS数据配置为客户机提供一套虚拟的设备映像,使得客户机可以通过虚拟BIOS完成对设备的检测。2、IO操作截获与解析。利用处理器或内存虚拟化技术截获客户机向虚拟设备发起的IO请求,并进一步对IO请求信息进行解析,以获得具体的IO请求内容,向设备模型提供IO信息来源。3、数据地址空间转换。IO请求处理过程中,涉及到数据在客户机地址空间、VMM地址空间、IO共享数据区之间的传递,完成了三者之间的地址转换。4、关键设备模拟。采用软件模拟方式完成了设备模拟的一般实现方法并实现了DMA控制器和网卡的基本功能。通过对DMA和网卡的模拟,VMM可以响应客户机的DMA请求并完成部分网络传输功能,具有较好的性能。测试表明,本文实现的DMA虚拟化操作相较于非虚拟化环境下DMA操作性能有将近15%的损耗,实现的网卡虚拟化性能比非虚拟化环境降低了22%左右,略高于目前的DMA和网卡实现,但与非虚拟化环境相比也有一定的差距。这表明本文设计的设备虚拟化模型一定程度上能够提高IO性能,具备通用、稳定特性,可以为下一步的系统虚拟化设计与改进提供指导意义。