我有两个在 Linux 来宾操作系统下运行 DB2 数据库的 VM。一次只有一个数据库处于活动状态,但我希望两个虚拟机同时运行。
数据库将存储在由 SAN 支持的虚拟磁盘映像(考虑为 .img,但对其他格式开放)上,并且该磁盘映像将附加到两个 VM
如果虚拟磁盘仅由“活动”机器安装,那么在每个 VM 中配置虚拟磁盘文件是否安全?
我有两个在 Linux 来宾操作系统下运行 DB2 数据库的 VM。一次只有一个数据库处于活动状态,但我希望两个虚拟机同时运行。
数据库将存储在由 SAN 支持的虚拟磁盘映像(考虑为 .img,但对其他格式开放)上,并且该磁盘映像将附加到两个 VM
如果虚拟磁盘仅由“活动”机器安装,那么在每个 VM 中配置虚拟磁盘文件是否安全?
那么问题是如果
active
系统弄乱了数据库,那么你的passive
系统就不会有任何好处。这是我最终在 VM1 和 VM2 之间共享驱动器时所做的事情
创建共享文件系统
qemu-img create -f raw sharetest.img
virsh attach-disk VM1 <full-path-to-sharetest.img> vdb
mount /dev/vdb /mnt
此时,您可以使用 /mnt 将文件读/写到共享驱动器。要移动此文件系统,请执行以下操作
umount /mnt
从 VM1 卸载文件系统virsh detach-disk VM1 vdb
virsh attach-disk VM2 <full-path-to-sharetest.img> vdb
mount /dev/vdb /mnt
这行得通,我已经多次在 VM1 和 VM2 之间来回移动 sharetest.img 文件。
出于好奇,我决定看看如果同时将 sharetest.img 附加到两个 VM 会发生什么。我在想我会把它附加到两个虚拟机上,然后只需要协调挂载/卸载命令。不幸的是,虽然我能够
virsh attach-disk
在两个 VM 上使用它来连接它,但它导致 SELinux 出现错误,并且 KVM 非常困惑,即使它将驱动器列为已分离,它也不允许来宾操作系统看到驱动器。即使在从两个系统中分离驱动器之后,如果我再次尝试重新连接驱动器,它也会说 vdb 已经在使用中。总之,只要您小心确保磁盘一次只附加到一个 VM,就可以在 VM 之间共享一个磁盘。