
KVM保证数据冗余
1.KVM的完整克隆
1.kvm虚拟机克隆
[root@kvm01 opt]# virsh suspend centos7 [root@kvm01 opt]# virt-clone --auto-clone -o centos7 -n web01 (完整克隆)a:生成虚拟机磁盘文件
[root@kvm01 opt]# qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2b:生成虚拟机的配置文件
<name>49-web03</name> <uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid> <source file='/opt/49-web03.qcow2'/> <mac address='52:54:00:4e:5b:89'/>c:导入虚拟机并进行启动测试
2.KVM的链接克隆
a.基于源磁盘文件,创建链接磁盘文件
[root@kvm01 opt]# qemu-img create -f qcow2 -b centos3-clone.qcow2 web02.qcow2 // 查看磁盘信息 [root@kvm01 opt]# qemu-img info web02.qcow2 image: web02.qcow2 file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 196K cluster_size: 65536 backing file: centos3-clone.qcow2 Format specific information: compat: 1.1 lazy refcounts: falseb:手动生成虚拟机的配置文件
[root@kvm ]# virsh dumpxml web01 >web02.xml // 修改xmlc:手动导入虚拟机并进行启动测试
1. [root@kvm ]# virsh define web02.xmld:自动注册kvm虚拟机,自动生成配置文件方法
2.[root@kvm ]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web02.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
无论生产环境使用什么虚拟化平台,对虚拟机的备份都是非常重要的,不同的虚拟化平台对于虚拟机备份恢复支持是不一样的,比如VMware vSphere平台官方提供VDP备份工具,常用第三方veeam backup对其支持也非常好,对于KVM以及oVirt平台来说,备份工具相对比较薄弱,但是依旧需要对虚拟机进行备份。
3.生产环境常用虚拟机备份方式
生产环境中最常用的方式一般有两种:一是复制虚拟机镜像以及配置文件备份;二是还是使用快照进行备份。
1、 通过复制方式备份恢复虚拟机
第1步,使用命令“virsh list --all”查看虚拟机运行情况,选择虚拟机centos7-04进行备份恢复。
root@kvm-server:/# virsh list --all Id Name State 43 centos7-04 running 46 centos7-03 running 68 win2012 running 71 win7-02 running 84 win2012-virtio running - centos7 shut off - centos7-02 shut off - win7 shut off - win7-kvm shut off第2步,使用命令“cp /vm-linux/centos7-04.qcow2 /vm-backup”复制虚拟机镜像文件,虚拟机处于运行状态也可以复制,推荐使用单独的目录存放虚拟机备份文件。
root@kvm-server:/vm-backup# cp /vm-linux/centos7-04.qcow2 /vm-backup root@kvm-server:/vm-backup# ls centos7-04.qcow2第3步,通过复制文件方式不能忘记复制虚拟机配置文件,使用命令“cp /etc/libvirt/qemu/centos7-04.xml /vm-backup/”复制虚拟机配置文件。
root@kvm-server:/vm-backup# cp /etc/libvirt/qemu/centos7-04.xml /vm-backup/ root@kvm-server:/vm-backup# ls centos7-04.qcow2 centos7-04.xml第4步,模拟虚拟机centos7-04出现故障,已经不在运行列表。
root@kvm-server:/vm-backup# virsh list --all Id Name State 46 centos7-03 running 68 win2012 running 71 win7-02 running 84 win2012-virtio running - centos7 shut off - centos7-02 shut off - win7 shut off win7-kvm shut off第5步,查看原虚拟机目录以及配置文件目录均无centos7-04相关信息。
root@kvm-server:/vm-backup# ls /vm-linux centos7-02.qcow2 centos7-03.qcow2 centos7.raw root@kvm-server:/vm-backup# ls /etc/libvirt/qemu/ centos7-02.xml centos7.xml win2012-virtio.xml win7-02.xml win7.xml centos7-03.xml networks win2012.xml win7-kvm.xml第6步,通过复制或者移动方式还原备份文件到原目录。
root@kvm-server:/vm-backup# cp centos7-04.qcow2 /vm-linux root@kvm-server:/vm-backup# ls /vm-linux centos7-02.qcow2 centos7-03.qcow2 centos7-04.qcow2 centos7.raw root@kvm-server:/vm-backup# cp centos7-04.xml /etc/libvirt/qemu root@kvm-server:/vm-backup# ls /etc/libvirt/qemu/ centos7-02.xml centos7-04.xml networks win2012.xml win7-kvm.xml centos7-03.xml centos7.xml win2012-virtio.xml win7-02.xml win7.xml第7步,还原后需要重新注册虚拟机,使用命令“virsh define /etc/libvirt/qemu/centos7-04.xml”注册虚拟机。
root@kvm-server:/vm-backup# virsh define /etc/libvirt/qemu/centos7-04.xml Domain centos7-04 defined from /etc/libvirt/qemu/centos7-04.xml第8步,使用命令“virsh list --all”查看虚拟机运行情况,虚拟机centos7-04已重新注册,但处于关闭状态。
root@kvm-server:/vm-backup# virsh list --all Id Name State 46 centos7-03 running 68 win2012 running 71 win7-02 running 84 win2012-virtio running - centos7 shut off - centos7-02 shut off - centos7-04 shut off - win7 shut off - win7-kvm shut off第9步,使用命令“virsh start centos7-04”启动虚拟机。
root@kvm-server:/vm-linux# virsh start centos7-04 Domain centos7-04 started第10步,使用命令“virsh console centos7-04”连接到虚拟机控制台,虚拟机已经启动成功,恢复正常运行。
root@kvm-server:/vm-backup# virsh console centos7-04 Connected to domain centos7-04 Escape character is ^] CentOS Linux 7 (Core) Kernel 3.10.0-693.el7.x86_64 on an x86_64 kvm-centos login: root Password: Last login: Tue Nov 13 00:07:25 on ttyS0第11步,使用命令“virsh list --all”查看虚拟机运行情况,虚拟机centos7-04处于运行状态。
root@kvm-server:/vm-backup# virsh list --all Id Name State 46 centos7-03 running 68 win2012 running 71 win7-02 running 84 win2012-virtio running 85 centos7-04 running - centos7 shut off - centos7-02 shut off - win7 shut off - win7-kvm shut off至此,通过复制文件方式备份恢复虚拟机完成,这样的方式基本操作起来比较麻烦,适用于小规模环境使用,虚拟机处于运行状态下复制文件推荐在虚拟机访问量小的时候进行.
可以通过创建脚本的方式实现自动备份。
4.通过快照备份恢复虚拟机
生产环境中强烈推荐使用
virsh snapshot-create命令创建快照。
qemu-img snapshot命令创建快照,但在实际使用中,这个命令创建的快照字节都是0,也就是说什么也没保存下来。第1步,使用命令“”查看虚拟机centos7-03是否创建快照。
root@kvm-server:/vm-backup# virsh snapshot-list centos7-03 Name Creation Time State第2步,使用命令“virsh snapshot-create centos7-03”创建快照。
root@kvm-server:/vm-backup# virsh snapshot-create centos7-03 Domain snapshot 1544863104 created第3步,使用命令“virsh snapshot-list centos7-03”查看虚拟机快照情况,注意Name是快照唯一的编号。
root@kvm-server:/vm-backup# virsh snapshot-list centos7-03 Name Creation Time State 1544863104 2018-12-15 08:38:24 +0000 running第4步,使用命令“virsh snapshot-create centos7-03”再次创建快照。
root@kvm-server:/vm-backup# virsh snapshot-create centos7-03 Domain snapshot 1544863205 created第5步,使用命令“virsh snapshot-list centos7-03”查看虚拟机快照情况,注意虚拟机目前已经有2个不同时间段的快照,可以理解为2个备份。
root@kvm-server:/vm-backup# virsh snapshot-list centos7-03 Name Creation Time State 1544863104 2018-12-15 08:38:24 +0000 running 1544863205 2018-12-15 08:40:05 +0000 running第6步,如果虚拟机出现或者是应用程序出现故障,可以根据时间还原到故障前的状态,使用使命“virsh snapshot-revert centos7-03 1544863104”恢复虚拟机到其他状态,特别注意恢复后当前的数据就还原到快照时的状态,谨慎操作。
root@kvm-server:/vm-backup# virsh snapshot-revert centos7-03 1544863104第7步,使用命令“virsh console centos7-03”查看恢复快照后的虚拟机运行状态,一定要确认虚拟机运行是否存在问题。
root@kvm-server:/vm-backup# virsh console centos7-03 Connected to domain centos7-03 Escape character is ^] CentOS Linux 7 (Core) Kernel 3.10.0-693.el7.x86_64 on an x86_64 kvm-centos login: root Password: Last login: Sat Dec 15 16:37:39 on ttyS0第8步,反复强调,过多的虚拟机快照可能会影响虚拟机的运行速度或者是导致虚拟机故障,定期删除虚拟机快照是必需的,使用命令“virsh snapshot-delete centos7-03 1544863104”即可删除对应的快照。
root@kvm-server:/vm-backup# virsh snapshot-delete centos7-03 1544863104 Domain snapshot 1544863104 deleted第9步,使用命令“virsh snapshot-list centos7-03”查看虚拟机快照情况,虚拟机目前只保留1个快照,相当于1个备份。
root@kvm-server:/vm-backup# virsh snapshot-list centos7-03 Name Creation Time State 1544863205 2018-12-15 08:40:05 +0000 running至此,使用虚拟机快照备份恢复操作完成,与复制文件相比,快照方式简单明了,在KVM虚拟化备份工具不太多的情况下,生产环境的确在大量使用.
过多的虚拟机快照可能会影响虚拟机的运行速度或者是导致虚拟机故障,定期删除虚拟机快照是必需的。