导出 libvirt+KVM 虚拟机到文件

bay*_*irh 16 kvm-virtualization

我将淘汰旧的 libvirt + KVM 服务器,但我需要保留 VM。不幸的是,网络已关闭,我无法创建与系统的连接。

有没有办法使用virsh或任何其他实用程序导出虚拟机?

澄清:我需要磁盘和所有东西。我会将机器部署到另一台服务器。

c4f*_*t0r 22

如果您需要使用 virsh 备份您的 vm 配置,您可以使用以下命令

virsh dumpxml vmname > vmname.xml 
Run Code Online (Sandbox Code Playgroud)

如果您需要将 vm 移动到其他服务器,您可以转储您的 vm 配置并传输 xml,如果您使用文件作为 vm 的后端存储,您可以在复制时使用 scp 或 rsync 将文件复制到其他服务器vm 的磁盘文件,您可以尝试使用以下命令启动 vm virsh define /tmp/myvm.xml && virsh start myvm


小智 6

您应该能够从快照对磁盘进行映像:

首先,您需要确保 Vm 没有运行:

virsh suspend vm
Run Code Online (Sandbox Code Playgroud)

现在您可以创建快照,确保根据您自己的需要调整大小100M和名称vm-root-snapshot

lvcreate -L 100M -n vm-root-snapshot -s /dev/sysvg/vm-root
Run Code Online (Sandbox Code Playgroud)

在此之后,您可以再次启动 VM。

virsh resume vm
Run Code Online (Sandbox Code Playgroud)

现在您有了快照,您可以创建映像并删除快照:

dd if=/dev/mapper/sysvg-vm--root--snapshot of=/tmp/vm-root.img bs=1M
lvremove /dev/mapper/sysvg-vm--root--snapshot
Run Code Online (Sandbox Code Playgroud)

可以将镜像复制到新服务器,并使用 dd 导入到新服务器上的 LVM

dd if=/tmp/vm-root.img of=/dev/mapper/sysvg-vm--root bs=1M
Run Code Online (Sandbox Code Playgroud)

另外不要忘记导入您的 XML 文件。

virsh define /path/to/vm.xml
Run Code Online (Sandbox Code Playgroud)


dya*_*sny 5

除此之外virsh dumpxml,还将把虚拟机设置导出到 XML 文件中:

复制虚拟机磁盘映像,如果它们稀疏或位于块卷上,则正确的方法是使用qemu-img convert -O output_format source destination

要导入,请编辑 XML 以反映磁盘映像的新位置,然后运行virsh define path/to/dumpXML