如何正确地将bhyve虚拟机迁移到另一台主机?

如何正确地将bhyve虚拟机迁移到另一台主机?

我被困在这里,无法找到有关它的更多信息。

将虚拟机的快照/备份复制到另一台主机:

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

然后什么?我尝试用以下方法创建它:

vm create newVmName

但似乎不是这样,因为它说数据集已经存在。

答案1

需要做的第一件事是配置新主机来运行bhyve。这涵盖了FreeBSD 手册第 22.6 节

接下来我建议安装马特·丘奇亚德的vm-bhyve包裹

# pkg install vm-bhyve

及其必要的配置。在尝试迁移现有 VM 之前,请完成vm联机帮助页中的所有设置步骤,以确保新计算机设置正确。我建议您甚至在新主机上创建并测试虚拟机,以确保新主机配置正确。我认为您会发现尝试将现有虚拟机迁移到bhyve新主机上未正确设置的实例是一项令人沮丧的工作。bhyve在尝试将虚拟机迁移到新安装上之前,请彻底测试新安装,这对您自己有帮助并奠定坚实的基础。

此外,在传输时不要修改虚拟机名称。一旦让它在新主机上运行,​​重命名虚拟机就像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,将新文件系统的安装点设置为与旧主机上的基本名称相同。因此,如果旧主机的虚拟机安装在/foobar/vmName,并且您要移动到/bhyve/新主机上的目录,则新的虚拟机文件系统需要安装在/bhyve/vmName。一旦设置了挂载点,新的文件系统就可以挂载到newhost

# zfs set mountpoint=/bhyve/vmName diskDest/vmName
# zfs mount diskDest/vmName

我建议您利用 ZFS 的层次结构性质,创建一个diskDest/bhyve挂载的父文件系统/bhyve,并为每个 VM 创建一个单独的子文件系统,例如diskDest/bhyve/vmName,但这取决于您。

此时,迁移的虚拟机应显示在 的输出中,您可以启动它并对中vm list出现的任何剩余启动问题进行故障排除。stderr/bhyve/vmName/vm-bhyve.log

相关内容