vhost架构
kvm
qemu
通过在host上创建一个tap字符设备,kvm-qemu打开这个字符设备进行读写
virtio
QEMU模拟I/O设备的基本原理
当客户机的设备驱动程序(Device Driver)发起I/O请求时,KVM模块中的I/O操作捕获代码会拦截这次I/O请求,然后经过处理后将本次I/O请求的信息存放到I/O共享页(sharing page),并通知用户控件的QEMU程序。QEMU模拟程序获得I/O操作的具体信息后,交给硬件模拟代码(Emulation Code)来模拟出本次的I/O操作,完成后把结果放回I/O共享页中,并通知KVM模块中的I/O操作捕获代码。最后由KVM模块中的捕获代码读取I/O共享页中的操作结果,把结果返回给客户机中。当然,这个操作过程中客户机作为一个QEMU进程在等待I/O时也可能被阻塞。
vhost-usr
spdk.io
spdk中文文档
基于SPDK的UDisk全栈优化
北京峰会系列二|基于SPDK的UDisk全栈优化
阿里云解决大规模高性能存储可靠性问题再次被系统领域顶会认可!
阿里云PolarDB及其共享存储PolarFS技术实现分析(下)
新型存储设备介绍
io路径对比
- virtio
- vhost
- vhsot-usr
virtio的io路径 vhost的io路径 和vhost-user
说一说虚拟化绕不开的io半虚拟化
使用 SPDK 技术优化虚拟机本地存储的 IO 性能
可实现RSSD云硬盘120万IOPS的SPDK IO路径优化实践