转载:原文如下
Disk Images — QEMU documentation
QEMU中的用户空间驱动程序可以直接访问NVM Express(NVMe)存储控制器。这绕过了主机内核文件系统和块层,同时保留了QEMU块层功能,如块作业、I/O节流、图像格式等。磁盘I/O性能通常高于使用线程池或linuxaio的-drive-file=/dev/sda。
一旦启动,控制器将由QEMU过程专用。为了能够在主机上的多个虚拟机和其他应用程序之间共享存储,请使用基于文件的协议。
在启动QEMU之前,将主机NVMe控制器绑定到主机vfio pci驱动程序。例如:
# modprobe vfio-pci
# lspci -n -s 0000:06:0d.0
06:0d.0 0401: 1102:0002 (rev 08)
# echo 0000:06:0d.0 > /sys/bus/pci/devices/0000:06:0d.0/driver/unbind
# echo 1102 0002 > /sys/bus/pci/drivers/vfio-pci/new_id
# qemu-system-x86_64 -drive file=nvme://HOST:BUS:SLOT.FUNC/NAMESPACE
使用属性的替代语法:
qemu-system-x86_64 -drive file.driver=nvme,file.device=HOST:BUS:SLOT.FUNC,file.namespace=NAMESPACE
主机:总线:插槽FUNC是主机上NVMe控制器的PCI设备地址。
NAMESPACE是NVMe命名空间编号,从1开始。
没有实际测试过;
留个坑,测试完再填。