libvirt-只能从 IDE 设备启动吗?

libvirt-只能从 IDE 设备启动吗?

我正在运行 Ubuntu 18.04 作为主机,运行 Windows 10 作为客户机,使用 QEMU/KVM 作为我的虚拟机管理程序,使用 libvirt 作为我的管理工具。

我有一个 nvme ssd /dev/nvmewin,我想将其传递给 Windows 客户机(客户机将从此设备启动)

我也使用 OVMF 以 UEFI 模式启动。

目前,它仅在设备作为 IDE 设备公开时才有效。如果设备在 SCSI、SATA 或 Virtio 下,客户机将无法启动(蓝屏,错误代码为 INACCESSIBLE_BOOT_DEVICE)

我使用不同总线的动机是我认为它将产生更好的 I/O 性能。

我的问题是:

  • 使用不同的总线确实会产生更好的 I/O 性能吗?
  • 如果是这样,我该如何在不同的总线下公开该设备并启动?

这是我的有关该设备的域配置部分:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/nvmewin'/>
  <target dev='hda' bus='ide'/>
  <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>

答案1

使用不同的总线确实会产生更好的 I/O 性能吗?

是的。我使用 virtio 总线时,在cache=none io=nativeHypervisor 默认属性下获得了接近本机的速度,使用 crystal disk mark 进行基准测试时cacheio设置似乎更快,但实际上缓存已启用,因此测试结果必须谨慎对待。

如果是这样,我该如何在不同的总线下公开该设备并启动?

只需安装 virtio 总线驱动程序。Windows 内核没有这些驱动程序,因此如果没有安装驱动程序,Windows 在启动时将无法找到磁盘。

更多信息请见这里

相关内容