在主动/被动系统之间共享 KVM 虚拟磁盘是否安全

在主动/被动系统之间共享 KVM 虚拟磁盘是否安全

我有两个在 Linux 来宾操作系统下运行 DB2 数据库的 VM。一次只有一个数据库处于活动状态,但我希望两个虚拟机同时运行。

数据库将存储在由 SAN 支持的虚拟磁盘映像(考虑为 .img,但对其他格式开放)上,并且该磁盘映像将附加到两个虚拟机

如果虚拟磁盘仅由“活动”计算机挂载,那么在每个虚拟机中配置虚拟磁盘文件是否安全?

答案1

问题是,如果active系统搞乱了数据库,那么你的passive系统就没有任何用处。

答案2

这是我在 VM1 和 VM2 之间共享驱动器时最终做的事情

创建共享文件系统

  • qemu-img create -f raw sharetest.img
  • 启动虚拟机1
  • virsh attach-disk VM1 <full-path-to-sharetest.img> vdb
  • 以 root 身份登录 VM1,使用 gparted 将文件系统放在 /dev/vdb(或 mkfs)上
  • mount /dev/vdb /mnt 此时,您可以使用 /mnt 将文件读取/写入到共享驱动器。

要移动此文件系统,请执行以下操作

  • umount /mnt 从 VM1 卸载文件系统
  • virsh detach-disk VM1 vdb
  • 启动虚拟机2
  • virsh attach-disk VM2 <full-path-to-sharetest.img> vdb
  • 登录 VM2 并mount /dev/vdb /mnt

这有效,我已在 VM1 和 VM2 之间来回移动 sharetest.img 文件多次。

出于好奇,我决定看看如果我同时将 sharetest.img 附加到两个虚拟机会发生什么。我想将它附加到两个虚拟机,然后只需要协调安装/卸载命令。不幸的是,虽然我能够virsh attach-disk在两个虚拟机上使用它来连接它,但它导致了 SELinux 的错误,并且 KVM 非常困惑,不允许来宾操作系统看到该驱动器,即使它将驱动器列为已分离。即使从两个系统分离驱动器后,如果我尝试再次重新连接驱动器,它也会说 vdb 已在使用中。

总之,只要您小心确保磁盘一次仅附加到一台虚拟机,就可以在虚拟机之间共享磁盘。

相关内容