概述
随着云计算,虚拟化在生产业务中的大规模推广,虚拟机的备份恢复显的尤为重要。面对勒索病毒,数据误删等事件,最重要的就是有“备份数据”可供恢复,从而解决数据丢失业务中断的问题。
kvm虚拟机基础备份方式
虚拟机克隆备份
虚拟机文件复制备份
快照备份
1,虚拟机克隆备份
克隆设备必须暂停或关闭虚拟机
virt-clone 命令克隆生成磁盘文件和xml文件
代码语言:javascript复制[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虚拟机
通过复制方式备份恢复虚拟机,虚拟机处于运行状态可以复制
代码语言:javascript复制cp /kvm/img/docker02.img /opt/vm-docker02/
cp /etc/libvirt/qemu/docker02.xml /opt/vm-docker02/
(2)删除docker02 虚拟机
代码语言:javascript复制#关闭虚拟机
virsh destroy docker02
#删除虚拟机
virsh undefine docker02
#注意undefine只能删除xml配置文件,需要手动删除磁盘镜像
rm -rf /kvm/img/docker02.img
(3)还原虚拟机备份文件
代码语言:javascript复制#将对应的虚拟机文件拷贝到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 访问
代码语言:javascript复制virsh list --all
virsh start docker02
virsh console docker02
针对VM的配置和镜像文件进行归档
代码语言:javascript复制tar jcvf docker02_backup.tar.bz /opt/vm-docker02/
传送归档的文件到远端服务器
代码语言:javascript复制rsync -vaz docker02_backup.tar.bz kvm-node2:/opt
登陆到远端服务器解压归档文件,并进行还原
代码语言:javascript复制tar jxfv docker02_backup.tar.bz
3,虚拟机快照备份恢复
(1)对node03虚拟机创建快照
代码语言:javascript复制[root@kvm-node1 opt]# virsh snapshot-create node03
Domain snapshot 1652791487 created
默认快照的名称为随机指定分配,可使用snapshot-create-as命令指定快照名称
virsh snapshot-create-as 【虚拟机名】 【快照名】
(2)查看虚拟机快照的版本
代码语言:javascript复制[root@kvm-node1 /]# virsh snapshot-list node03
Name Creation Time State
------------------------------------------------------------
1652791487 2022-05-17 20:44:47 0800 running
(3)查看当前虚拟机镜像快照的版本
代码语言:javascript复制[root@kvm-node1 /]# virsh snapshot-current node03
(4)查看当前虚拟机镜像文件,快照文件的路径
代码语言:javascript复制在/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
代码语言:javascript复制[root@kvm-node1 /]# virsh snapshot-list node03
Name Creation Time State
------------------------------------------------------------
1652791487 2022-05-17 20:44:47 0800 running
(6)执行恢复,并确认恢复版本
代码语言:javascript复制[root@kvm-node1 /]# virsh snapshot-revert node03 1652791487
(7)删除虚拟机快照,查看虚拟机快照
代码语言:javascript复制[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)删除快照
代码语言:javascript复制[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