论文部分内容阅读
近年来,虚拟化技术发展迅速,利用虚拟化技术可以有效地整合服务器资源,提高服务器资源利用率,并且在虚拟机之间提供很好的隔离性。然而,研究网络攻防原理的网络安全仿真技术,却因成本、对真实环境破坏性及检测系统可靠性等因素难以大规模应用。由此,基于虚拟化技术的网络安全仿真平台应运而生,利用虚拟化技术可以大幅降低仿真平台的成本以及破坏性。在网络仿真平台中,大部分实验为网络密集型,对虚拟机的网络性能要求比较苛刻,因此虚拟机的网络传输性能对平台的仿真性有重要影响。
本文对内核虚拟机(Kernel-based Virtual Machine,KVM)中网络I/O虚拟化存在的性能问题进行了实验分析,通过多种优化技术来提升其网络性能,同时对其进行功能扩展来满足网络仿真平台需求。本文的主要贡献如下:
1.分析KVM原理并度量了KVM网络I/O虚拟化的性能损耗。对KVM内部实现进行了深入分析,包括硬件辅助虚拟化技术、CPU虚拟化和内存虚拟化;并着重分析了KVM的网络I/O虚拟化的实现架构,度量了I/O网络虚拟化路径中各个步骤的性能损耗,分析其存在的问题,为网络I/O优化研究提供了基础。
2.提出了一种全内核态、高效的网络I/O虚拟化方法。针对KVM网络传输过程中频繁的上下文切换和多次数据拷贝问题,本文通过在内核态中实现物理网卡的模拟,并在内核态中捕获客户操作系统对模拟网卡的PIO和MMIO操作,来减少虚拟化网络I/O的上下文切换和数据拷贝次数。测试表明,该方法对于特定模式下的数据包传输性能提升了15%~20%。
3.提出了同一物理机上客户虚拟机间高效透明的直接通信机制。原始KVM上客户虚拟机间无法直接进行通信,网络数据包都需要经过虚拟网桥,导致inter-VM传输路径冗长。本文通过引入无锁化零拷贝发送环对网络包进行统一分发,一方面实现了inter-VM直接高效的通信,另一方面为用户态仿真程序提供接口。测试表明,inter-VM的传输性能提升20%左右。
4.提出了一种公平的、动态自适应的网络带宽分配算法。当同一台物理机上运行多个客户虚拟机时,物理网络带宽资源分配不均衡,波动较大。本文在KVM中实现了公平的、动态自适应的网络带宽分配算法,根据需求使用不同的配置策略来分配宿主机的有限的网络带宽,如平均分配、按优先级分配等。