在 Debian bullseye 中,我通过命令行使用 QEMU / KVM 启动虚拟机(即,没有virsh
或其他帮助器 / 包装器)。其中一个虚拟机从声明如下的块设备启动:
-blockdev driver=file,node-name=q1,filename=/dev/loop0 \
就在今天,我无意中注意到 QEMU 在启动该 VM 时发出以下警告:
Opening a block device as a file using the 'file' driver is deprecated
一些研究表明这个警告是已知的,并且有解决方案,例如@Stephen Kitt在这里接受的答案提出了以下blockdev
声明:
-blockdev node-name=q1,driver=raw,file.driver=host_device,file.filename=/dev/loop0 \
这个解决方案无疑是有效的,但我找不到任何有关file.driver=host_device
. 因此,我测试了一些其他选项,并得出了以下似乎也有效的解决方案:
-blockdev driver=host_device,node-name=q1,filename=/dev/loop0 \
有人可以简单解释一下这两个声明之间的区别吗?值得注意的是,其中一个在延迟或吞吐量方面是否会优于另一个?
作为一个额外的问题,有人知道文档在哪里吗host_device
?在上面链接的其他问题/答案中,有一个指向可能实现该驱动程序的提交的链接。但是,我也找不到该链接背后的任何文档。