Freebsd

如何正確地將 bhyve vm 遷移到另一台主機?

  • January 12, 2022

我被困在這裡,找不到更多關於它的資訊。

將 VM 的快照/備份複製到另一台主機:

zfs send disk/vmName | pv | ssh hostname "zfs recv diskDest/newVmName"

然後什麼?我嘗試使用以下方法創建它:

vm create newVmName

但似乎不是這樣,因為它說數據集已經存在。

需要做的第一件事是配置新主機執行bhyveFreeBSD 手冊的第 22.6 節對此進行了介紹。

接下來,我建議安裝Matt Churchyard 的vm-bhyve軟體包

# pkg install vm-bhyve

及其必要的配置。在嘗試遷移現有 VM 之前,請完成vm手冊頁中的所有設置步驟,以確保正確設置新機器。我建議您甚至在新主機上創建和測試虛擬機,以確保正確配置新主機。我認為您會發現嘗試將現有 VM 遷移到bhyve未在新主機上正確設置的實例是一項令人沮喪的練習。bhyve在嘗試將 VM 遷移到新安裝之前,請幫自己一個忙並打下堅實的基礎。

此外,我們不要在傳輸時修改 VM 名稱。一旦你讓它在新主機上工作,重命名虛擬機就像vm rename vmName newVmName.

一旦你擁有bhyvevm工作,那麼你應該能夠在舊主機上停止你的虛擬機,對其進行快照,並將該快照傳輸到新主機。為避免複雜化,我們將保留文件系統的名稱,並且我們不會(還)將文件系統掛載到新主機上:

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.

引用自:https://unix.stackexchange.com/questions/686070