KVM--虚拟机备份还原

发布时间 2023-04-07 18:24:28作者: 技术颜良

随着云计算,虚拟化在生产业务中的大规模推广,虚拟机的备份恢复显的尤为重要。面对勒索病毒,数据误删等事件,最重要的就是有“备份数据”可供恢复,从而解决数据丢失业务中断的问题。

kvm虚拟机基础备份方式

虚拟机克隆备份

虚拟机文件复制备份

快照备份

1,虚拟机克隆备份

克隆设备必须暂停或关闭虚拟机

virt-clone 命令克隆生成磁盘文件和xml文件

[root@kvm-node1 qemu]# virsh suspend node01
[root@kvm-node1 qemu]# virt-clone --auto-clone -o node01 -n  docker02

-o 被克隆虚拟机

-n 克隆后新的虚拟机

-f 克隆后新虚拟机的磁盘

2,虚拟机复制备份恢复

(1)备份docker02虚拟机

通过复制方式备份恢复虚拟机,虚拟机处于运行状态可以复制

cp  /kvm/img/docker02.img  /opt/vm-docker02/
cp /etc/libvirt/qemu/docker02.xml /opt/vm-docker02/

(2)删除docker02 虚拟机

#关闭虚拟机
virsh  destroy docker02
#删除虚拟机
virsh  undefine docker02
#注意undefine只能删除xml配置文件,需要手动删除磁盘镜像
rm -rf /kvm/img/docker02.img

(3)还原虚拟机备份文件

#将对应的虚拟机文件拷贝到xml文件目录和磁盘镜像目录
mv /opt/vm-docker02/docker02.img  /kvm/img/
mv  /opt/vm-docker02/docker02.xml /etc/libvirt/qemu/
#define重新定义虚拟机
virsh define /etc/libvirt/qemu/docker02.xml

(4)开启还原虚拟机console 访问

virsh  list  --all
virsh start docker02
virsh console docker02

针对VM的配置和镜像文件进行归档

tar jcvf docker02_backup.tar.bz  /opt/vm-docker02/

传送归档的文件到远端服务器

rsync -vaz docker02_backup.tar.bz kvm-node2:/opt

登陆到远端服务器解压归档文件,并进行还原

tar jxfv docker02_backup.tar.bz

3,虚拟机快照备份恢复

(1)对node03虚拟机创建快照

[root@kvm-node1 opt]# virsh snapshot-create node03
Domain snapshot 1652791487 created

默认快照的名称为随机指定分配,可使用snapshot-create-as命令指定快照名称

virsh snapshot-create-as 【虚拟机名】 【快照名】

(2)查看虚拟机快照的版本

[root@kvm-node1 /]# virsh snapshot-list node03
 Name                 Creation Time             State
------------------------------------------------------------
 1652791487           2022-05-17 20:44:47 +0800 running

(3)查看当前虚拟机镜像快照的版本

[root@kvm-node1 /]# virsh snapshot-current node03

(4)查看当前虚拟机镜像文件,快照文件的路径

/var/lib/libvirt/qemu/snapshot/ 下
[root@kvm-node1 /]# ll /var/lib/libvirt/qemu/snapshot/node03/
total 8
-rw------- 1 root root 4793 May 17 20:44 1652791487.xml

(5)恢复虚拟机快照

确认恢复快照的时间,这里是恢复到1454577442

[root@kvm-node1 /]#  virsh snapshot-list node03
 Name                 Creation Time             State
------------------------------------------------------------
 1652791487           2022-05-17 20:44:47 +0800 running

(6)执行恢复,并确认恢复版本

[root@kvm-node1 /]# virsh snapshot-revert  node03 1652791487

(7)删除虚拟机快照,查看虚拟机快照

[root@kvm-node1 img]# qemu-img info node03.qcow2
image: node03.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 2.4G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1652791487             334M 2022-05-17 20:44:47   00:01:11.872
Format specific information:
    compat: 1.1
    lazy refcounts: false

(8)删除快照

[root@kvm-node1 img]# virsh snapshot-delete node03 1652791487
Domain snapshot 1652791487 deleted

[root@kvm-node1 img]# qemu-img info node03.qcow2             
image: node03.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 2.4G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false