知识卡片

IVSHMEM共享内存的效率与代价

专业/工作 · 1116

内容

虚拟机间通信若走网络协议栈,要经过至少两次协议封装解封装外加虚拟化层转发开销。IVSHMEM的思路是把宿主机一段大页内存直接映射成虚拟机里的一个PCI设备(其中一块BAR空间就是这段共享内存本身),多个虚拟机只要拿到同一份映射信息,就能像访问本地内存一样直接读写同一块物理内存,实现真正零拷贝通信。但这种效率有代价:本质是在宿主机内存上开了后门,参与共享的虚拟机都必须被信任,一旦某个虚拟机出错或被攻破,会直接波及宿主机和其他共享内存的虚拟机。

参考来源

《深入浅出DPDK》第13章《DPDK与网络功能虚拟化》