Kvm
在主動/被動系統之間共享 KVM 虛擬磁碟是否安全
我有兩個在 Linux 來賓作業系統下執行 DB2 數據庫的 VM。一次只有一個數據庫處於活動狀態,但我希望兩個虛擬機同時執行。
數據庫將儲存在由 SAN 支持的虛擬磁碟映像(考慮為 .img,但對其他格式開放)上,並且該磁碟映像將附加到兩個 VM
如果虛擬磁碟僅由“活動”機器安裝,那麼在每個 VM 中配置虛擬磁碟文件是否安全?
這是我最終在 VM1 和 VM2 之間共享驅動器時所做的事情
創建共享文件系統
qemu-img create -f raw sharetest.img
- 啟動 VM1
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
- 啟動 VM2
virsh attach-disk VM2 <full-path-to-sharetest.img> vdb
- 登錄到 VM2 並
mount /dev/vdb /mnt
這行得通,我已經多次在 VM1 和 VM2 之間來回移動 sharetest.img 文件。
出於好奇,我決定看看如果同時將 sharetest.img 附加到兩個 VM 會發生什麼。我在想我會把它附加到兩個虛擬機上,然後只需要協調掛載/解除安裝命令。不幸的是,雖然我能夠
virsh attach-disk
在兩個 VM 上使用它來連接它,但它導致 SELinux 出現錯誤,並且 KVM 非常困惑,即使它將驅動器列為已分離,它也不允許來賓作業系統看到驅動器。即使在從兩個系統中分離驅動器之後,如果我再次嘗試重新連接驅動器,它也會說 vdb 已經在使用中。總之,只要您小心確保磁碟一次只附加到一個 VM,就可以在 VM 之間共享一個磁碟。
那麼問題是如果
active
系統弄亂了數據庫,那麼你的passive
系統就不會有任何好處。