第 22 章 备份和恢复虚拟机
如果您的当前主机不可用或无法正常工作,请确保您不会丢失虚拟机的设置和数据,请备份虚拟机的配置和存储。之后,对于灾难恢复,您可以创建一个使用备份的配置和存储的新虚拟机。
如果您计划创建备份以便在主机正常工作时恢复虚拟机,则使用快照可能更为有效。详情请参阅 使用快照保存和恢复虚拟机状态。
22.1. 备份虚拟机 复制链接链接已复制到粘贴板!
如果您的当前主机不可用或无法正常工作,请不要丢失虚拟机的设置和数据,请备份虚拟机的配置和磁盘。这可让您稍后在功能主机上恢复备份。
流程
将虚拟机的 XML 配置保存到单独的文件中。例如,要将 testguest1 虚拟机的配置保存到
/home/backup/testguest1-backup.xml文件中,请使用以下命令:# virsh dumpxml testguest1 > /home/backup/testguest1-backup.xml-
备份虚拟机的磁盘。为此,请使用
virsh backup-begin工具。 可选:自定义备份设置。默认情况下,
libvirt在与原始磁盘相同的目录中的虚拟机中创建所有磁盘的副本。如果要对备份使用不同的配置,请使用所需设置创建一个 XML 文件。例如:<domainbackup> <disks> <disk name='vda' backup='yes'/> <disk name='vdb' type='file'> <target file='/home/backup/vdb.backup'/> <driver type='raw'/> </disk> <disk name='vdc' backup='no'/> </disks> </domainbackup>此示例配置确保
vda磁盘使用libvirt默认值备份,vdb磁盘以raw格式备份为/home/backup/vdb.backup,并且vdc磁盘没有备份。启动虚拟机。
# virsh start <vm_name>使用
virsh backup-begin工具备份虚拟机磁盘。以下命令使用默认的备份设置,它会创建虚拟机使用的所有磁盘的副本,并将它们保存在与原始磁盘相同的目录中# virsh backup-begin <vm-name>另外,要应用自定义备份设置,您可以指定之前创建的备份 XML 配置。
# virsh backup-begin <vm-name> --backupxml <backup-XML-location>
验证
确保备份操作已完成。
# virsh domjobinfo <vm-name> --completed成功输出示例:
Job type: Completed Operation: Backup Time elapsed: 20704 ms File processed: 40.000 GiB File remaining: 0.000 B File total: 40.000 GiB检查备份磁盘的目标位置。例如,如果您使用默认的备份配置,且虚拟机磁盘位于默认的
/var/lib/libvirt/images/目录中,请使用以下命令:# ls -l /var/lib/libvirt/images成功输出示例:
-rw-------. 1 qemu qemu 42956488704 Oct 10 15:49 RHEL_10_beta.qcow2 -rw-------. 1 root root 42956488704 Oct 29 16:12 RHEL_10_beta.qcow.21761750144 -rw-------. 1 qemu qemu 196688 Oct 10 15:49 extra-storage.qcow2 -rw-------. 1 root root 196688 Oct 29 16:12 extra-storage.qcow2.1761750144
后续步骤