libvirt VM 之间的共享磁盘

Shared disk among libvirt VM

所以,我正在尝试在两个 libvirt VM 之间共享一个磁盘。我使用 qemu-img create 创建了一个磁盘,然后使用 virsh attach-disk 将该磁盘附加到 VM。现在,我也想将同一个磁盘附加到另一个 VM。当我尝试附加到下一个 VM 时,出现以下错误:

error: Failed to attach disk
error: internal error: unable to execute QEMU command 'device_add': Failed to get "write" lock

这可能吗?如果没有,还有其他更好的选择吗? TIA.

所有硬盘默认设置为独占访问,只允许CDROM介质被多个VM共享。要覆盖此默认行为,您需要在 <disk>...</disk> 配置中设置 <shareable/> 元素。 https://libvirt.org/formatdomain.html#elementsDisks

中有关于磁盘设置的更多文档

可共享标志导致 SELinux/AppArmor 策略允许共享访问,并告知 libvirt 和 QEMU 锁管理器使用共享锁。

注意,这仅适用于由原始卷支持的磁盘。您永远不能将 qcow2 映像用于共享写入磁盘,因为它会导致 qcow2 元数据损坏。