如何正確地將 bhyve vm 遷移到另一台主機?
我被困在這裡,找不到更多關於它的資訊。
將 VM 的快照/備份複製到另一台主機:
zfs send disk/vmName | pv | ssh hostname "zfs recv diskDest/newVmName"
然後什麼?我嘗試使用以下方法創建它:
vm create newVmName
但似乎不是這樣,因為它說數據集已經存在。
需要做的第一件事是配置新主機執行
bhyve
。FreeBSD 手冊的第 22.6 節對此進行了介紹。接下來,我建議安裝Matt Churchyard 的
vm-bhyve
軟體包:# pkg install vm-bhyve
及其必要的配置。在嘗試遷移現有 VM 之前,請完成
vm
手冊頁中的所有設置步驟,以確保正確設置新機器。我建議您甚至在新主機上創建和測試虛擬機,以確保正確配置新主機。我認為您會發現嘗試將現有 VM 遷移到bhyve
未在新主機上正確設置的實例是一項令人沮喪的練習。bhyve
在嘗試將 VM 遷移到新安裝之前,請幫自己一個忙並打下堅實的基礎。此外,我們不要在傳輸時修改 VM 名稱。一旦你讓它在新主機上工作,重命名虛擬機就像
vm rename vmName newVmName
.一旦你擁有
bhyve
並vm
工作,那麼你應該能夠在舊主機上停止你的虛擬機,對其進行快照,並將該快照傳輸到新主機。為避免複雜化,我們將保留文件系統的名稱,並且我們不會(還)將文件系統掛載到新主機上:開
oldhost
:# vm stop vmName # zfs snap disk/vmName@xfer # zfs send disk/vmName@xfer | pv -Wbfart | \ ssh newhost "zfs recv -Fuv diskDest/vmName"
在 上
newhost
,將新文件系統的掛載點設置為與舊主機上的基本名稱相同。因此,如果舊主機的 VM 掛載在/foobar/vmName
,並且您要移動到/bhyve/
新主機上的目錄,則新的 VM 文件系統需要掛載在/bhyve/vmName
. 設置掛載點後,可以將新文件系統掛載到newhost
:# zfs set mountpoint=/bhyve/vmName diskDest/vmName # zfs mount diskDest/vmName
我建議您利用 ZFS 的分層性質並創建一個
diskDest/bhyve
掛載的父文件系統,/bhyve
並為每個 VM 創建一個單獨的子文件系統,例如diskDest/bhyve/vmName
,但這取決於您。此時,遷移的 VM 應顯示在 的輸出中
vm list
,您可以啟動它並解決出現stderr
在/bhyve/vmName/vm-bhyve.log
.