我要退休一个旧的libvirt + KVM服务器,但我需要保留这些虚拟机。 不幸的是,networking已经closures,我无法build立与系统的连接。
有没有办法使用virsh或其他工具导出虚拟机?
澄清:我需要磁盘和一切。 我将部署机器到另一台服务器。
如果您需要使用virsh备份您的vmconfiguration,您可以使用以下命令
virsh dumpxml vmname > vmname.xml
如果你需要移动你的虚拟机到其他服务器,你可以转储你的虚拟机configuration,并传输XML,如果你使用的文件作为你的虚拟机的后端存储你可以复制文件到其他服务器使用SCP或rsync,当你复制vm的磁盘文件,你可以尝试用virsh define /tmp/myvm.xml && virsh start myvm启动vm virsh define /tmp/myvm.xml && virsh start myvm
您应该能够从快照中映像您的磁盘:
首先你需要确保Vm没有运行:
virsh suspend vm
现在您可以创build一个快照,确保将大小调整为100M ,将名称vm-root-snapshot调整为您自己的需要。
lvcreate -L 100M -n vm-root-snapshot -s /dev/sysvg/vm-root
之后,您可以再次启动虚拟机。
virsh resume vm
现在你有了快照,你可以创build图像并删除快照:
dd if=/dev/mapper/sysvg-vm--root--snapshot of=/tmp/vm-root.img bs=1M lvremove /dev/mapper/sysvg-vm--root--snapshot
可以将映像复制到新服务器,并使用dd将其导入新服务器上的LVM
dd if=/tmp/vm-root.img of=/dev/mapper/sysvg-vm--root bs=1M
另外不要忘记导入你的XML文件。
virsh define /path/to/vm.xml
除了virsh dumpxml将VM设置导出到XML文件之外:
复制虚拟机磁盘映像(如果它们稀疏或位于块卷上),正确的方法是使用qemu-img convert -O output_format source destination
要导入,请编辑XML以反映磁盘映像的新位置,然后运行virsh define path/to/dumpXML