知识卡片
三种I/O虚拟化方式的取舍
内容
客户机用I/O设备有三条路:全虚拟化在软件里彻底模拟一个假设备,客户机完全无感知,但每次访问都要陷入宿主机处理,开销最大;半虚拟化(如virtio)让客户机知道自己是虚拟机,装专门前端驱动,通过共享内存和后端驱动协商,数据传输不必每次陷入宿主机,性能更好但仍达不到物理速度;I/O透传直接把物理设备整个划给客户机独占,几乎是本机性能,但设备数量有限,且宿主机看不到设备内部状态,动态迁移会失效。三者本质是”透明度”与”性能”之间的一条光谱。
参考来源
《深入浅出DPDK》第10章《X86平台上的I/O虚拟化》