论文部分内容阅读
出于隔离性和安全性等考虑,虚拟机间的通信过程在通信路径上引入了前后端设备驱动,导致虚拟机间的通信性能与传统的进程间通信相差甚远,而虚拟机间通信的结果仅把数据从内存一处拷贝到另一处。优化的域间通信使用静态的共享缓冲区来传输通信数据,而网络流量的实时性导致通信性能的下降和共享区域的不合理占用。当并行的多个虚拟机同时进行通信时,共享区域的不合理利用现象尤其突出。此外共享内存编程接口和传统网络接口并不一致,这就要求应用程序事先指定通信方式,虽然保证了通信的高效性,却破坏了共享内存通道对上层应用的透明性。基于并行多虚拟机域间共享内存的域间通信系统AdaptIDC有效的解决了上述问题。通过在网络层截获报文并分析目的地址来判断通信双方是否位于同一台物理机上,并对同一物理机上的通信流量使用共享内存通道,在通信过程中实时监测网络报文流量,使用合适大小的共享内存通道来增大缓存命中率以提升通信效率,同时提高共享内存利用率。当虚拟机发生迁移时,根据迁移前后虚拟机硬件共享情况自动选择共享内存或传统通道,对迁移过程中的网络包进行标记并通过传统网络通道重新传输以保证应用报文的完整性。系统AdaptIDC最终实现了对上层应用透明且具有兼容性的域间通信共享内存通道,使得上层应用在不修改代码的情况下直接使用快速共享内存通道,此外通过实时监测网络报文流量和频率并选取合适大小的共享内存通道以在合理利用共享内存的同时保障通信带宽和时延性能,在此基础上最后实现了虚拟机音频案例以验证系统AdaptIDC的高效能。系统测试与结果分析表明,诸如TELNET、Firefox、FTP、PING和SAMBA等应用能在未经修改的情况下透明使用基于共享内存的域间通信机制来提升通信性能。即使虚拟机发生了迁移,系统AdaptIDC也能自动感知并切换数据通道以保证数据的正确和实时传输。相对于基于共享内存的传统域间通信模式,系统AdaptIDC能够保持通信带宽性能相当的情况下将共享内存的利用率提升至50%,同时虚拟机音频应用案例验证了系统AdaptIDC对上层应用的透明性并取得了较好的音画同步效果。从上述结论可以看出,基于透明截获、共享内存管理和迁移管理等技术实现的系统AdaptIDC能有效提升虚拟机的通信性能和共享利用率。