知识卡片

虚拟化I/O路径的演进历程

专业/工作 · 549.l

内容

虚拟机I/O性能优化的历史是一条不断缩短路径、减少特权级切换的演进链:完全虚拟化下,虚拟机以为自己在操作真实硬件,每次I/O都要触发VM-Exit把控制权交还给宿主机的虚拟机监控器(VMM)去模拟指令,路径最长、开销最大;半虚拟化(virtio)让客户机主动配合、走一套标准化的前后端接口,减少了VM-Exit触发次数;VHost进一步把处理逻辑下沉到宿主机内核里的模块,让客户机直接和内核模块通信,绕开VMM;再往后干脆把VHost也搬到用户态,减少内核态与用户态之间的上下文切换。发散:每一步优化本质都在回答同一个问题——”这次I/O到底要跨越几次特权级边界”,边界越少,性能越好,这条思路和[[用户态I/O栈缩短路径提升性能]]完全同源。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第1章《Linux开源存储》