摘要
利用虚拟机技术,分布式应用可以被部署到多个虚拟机环境中,而这些虚拟机有可能运行在同一个物理机上,这种情形需要提供一种高效的同一物理机上虚拟机之间的通信(inter-VM通信)机制,并同时确保透明性和安全性。本文中我们实现了一种高效的inter-VM通信机制MemChannel,同时确保对用户层应用和网络协议栈的透明性,以及同一物理机上虚拟机之间的安全隔离性。 Memchannel在参与通信的虚拟机之间建立了一个双向的共享内存区用来承载网络数据包,采用静态共享内存方式避免了动态共享内存引入的hypercall和上下文切换的开销,在接收端虚拟机中我们减少了一次额外的拷贝开销,实验结果表明,MemChannel比原来Xen提供的前后端方式吞吐率有5倍的提升,与其他同类研究相比,对大网络包通信延迟下降了40%左右,吞吐率有大约45%的提升,对单个网络包的处理减少了大约3500个CPU Cycles。