● 摘要
近年来,虚拟化技术成为当前计算机界研究的热门方向之一。不同的应用环境,对虚拟化技术提出了不同挑战。在基于宿主机的虚拟机环境中,多个虚拟机如何从宿主机的网络高效地接收数据是一个值得关注的问题。本文基于内核虚拟机(Kernel-based Virtual Machine, KVM),研究针对内核虚拟机环境下的网络性能优化技术,实现了数据包从宿主机向虚拟机的广播发送、虚拟机与宿主机之间数据包的直接传输以及提高虚拟机对数据包处理的效率。本文主要的工作和贡献如下:1.针对目前宿主机向虚拟机无法广播发送数据包的问题,设计并实现了数据包的广播发送,可以将数据包发送至所有虚拟机。2.针对数据包在传递过程中多次数据拷贝以及过长传递路径的问题,设计了穿透式的数据传输方式,实现了宿主机内核与虚拟机内核之间数据的直接传输,减少数据包的拷贝次数。3.针对高速网络环境中宿主机与虚拟机频繁的上下文切换的问题,提出并实现数据包接收过程中类似NAPI的批处理方式,降低虚拟机占用的宿主机系统资源。对本文所提出的方法和优化后的系统进行功能验证和性能分析表明优化后的KVM对本文所提出的方法和优化后的系统进行功能验证和性能分析表明优化后的KVM中数据包传送的时延和虚拟机占用的宿主机资源均有明显降低。