CAS KVM 虚拟机的保护与恢复
发布日期:2021-06-30 10:09:05 浏览次数:2 分类:技术文章

本文共 10655 字,大约阅读时间需要 35 分钟。

目录

方式一

思路:以 QCOW2 格式来备份和恢复被保护的 KVM 虚拟机

  • Step1:centos7_0(base qcow2) 以 qcow2 格式写入到 iSCSI 设备
root@h3cas-e306:/vms/images# virsh list --all Id    Name                           State---------------------------------------------------- 33    centos7                        runningroot@h3cas-e306:/vms/images# virsh domblklist centos7Target     Source------------------------------------------------vda        /vms/images/centos7_0hda        /vms/isos/CentOS-7-x86_64-Minimal-1511.isoroot@h3cas-e306:/vms/images# qemu-img convert -f qcow2 /vms/images/centos7_0 -O qcow2 /dev/sddroot@h3cas-e306:/vms/images# qemu-img info /dev/sddimage: /dev/sddfile format: qcow2virtual size: 20G (21474836480 bytes)disk size: 0cluster_size: 262144Format specific information:    compat: 1.1    lazy refcounts: false
  • Step2:尝试使用 iSCSI 设备手动启动 KVM 虚拟机
# 创建 XML 文件root@h3cas-e306:/etc/libvirt/qemu# vim centos7_q_0.xml
centos7_q_0
d668e699-22a4-464b-99c4-1ffdcd6ad4e1
0
0
0
4194304
4194304
10
34359738368
300
1
0
24
512
1000000
-1
hvm
linux
0
destroy
restart
restart
/usr/bin/kvm
root@h3cas-e306:/etc/libvirt/qemu# virsh define centos7_q_0.xmlDomain centos7_q_0 defined from centos7_q_0.xmlroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id Name State---------------------------------------------------- 33 centos7 running - centos7_q_0 shut offroot@h3cas-e306:/etc/libvirt/qemu# virsh start centos7_q_0Domain centos7_q_0 startedroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id Name State---------------------------------------------------- 33 centos7 running 34 centos7_q_0 running
  • Step3:对 centos7_0 做快照得到增量快照数据 centos7_1(increment qcow2)
root@h3cas-e306:/vms/images# virsh snapshot-create-as --domain centos7 snap01 snap01-desc --disk-only --diskspec vda,snapshot=external,file=/vms/images/centos7_1 --atomicDomain snapshot snap01 createdroot@h3cas-e306:/vms/images# lcentos7_0  centos7_1root@h3cas-e306:/vms/images# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 772Kcluster_size: 262144backing file: /vms/images/centos7_0backing file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/vms/images# virsh domblklist centos7Target     Source------------------------------------------------vda        /vms/images/centos7_1hda        /vms/isos/CentOS-7-x86_64-Minimal-1511.iso

NOTE: 现在虚拟机的数据会写入到 centos7_1 中, centos7_0 理论上应该是只读的.

  • Step4:Copy centos7_1 的副本到备份目录下
root@h3cas-e306:/vms/images# cp centos7_1 /kvm_backup/root@h3cas-e306:/vms/images# ll /kvm_backup/total 2572drwxr-xr-x  2 root root    4096 Apr 18 23:39 ./drwxr-xr-x 33 root root    4096 Apr 18 23:22 ../-rw-------  1 root root 2883584 Apr 18 23:39 centos7_1
  • Step5:rebase 并 commit centos7_1 到 iSCSI 设备中
root@h3cas-e306:/etc/libvirt/qemu# virsh destroy 34Domain 34 destroyedroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 33    centos7                        running -     centos7_q_0                    shut offroot@h3cas-e306:/vms/images# cd /kvm_backup/root@h3cas-e306:/kvm_backup# lscentos7_1root@h3cas-e306:/kvm_backup# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 2.5Mcluster_size: 262144backing file: /vms/images/centos7_0backing file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img info /dev/sddimage: /dev/sddfile format: qcow2virtual size: 20G (21474836480 bytes)disk size: 0cluster_size: 262144Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img rebase -b /dev/sdd -F qcow2 centos7_1root@h3cas-e306:/kvm_backup# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 15Mcluster_size: 262144backing file: /dev/sddbacking file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img info /dev/sddimage: /dev/sddfile format: qcow2virtual size: 20G (21474836480 bytes)disk size: 0cluster_size: 262144Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img commit -f qcow2 centos7_1Image committed.root@h3cas-e306:/kvm_backup# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 15Mcluster_size: 262144backing file: /dev/sddbacking file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img info /dev/sddimage: /dev/sddfile format: qcow2virtual size: 20G (21474836480 bytes)disk size: 0cluster_size: 262144Format specific information:    compat: 1.1    lazy refcounts: false
  • Step6:使用 commit 后的 iSCSI 设备启动虚拟机
root@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 33    centos7                        running -     centos7_q_0                    shut offroot@h3cas-e306:/etc/libvirt/qemu# virsh start centos7_q_0Domain centos7_q_0 startedroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 33    centos7                        running 35    centos7_q_0                    running

NOTE: 虚拟机启动成功, 证明 QCOW2 格式的虚拟机增量快照文件是能够合并到虚拟机 Base 数据文件中的。

方式二

思路:以 RAW 格式来备份和恢复被保护的 KVM 虚拟机

  • Step1:centos7(base qcow2) 以 raw 格式写入到 iSCSI 设备
root@h3cas-e306:/vms/images# qemu-img info centos7image: centos7file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 1.0Gcluster_size: 262144Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/vms/images# qemu-img convert -f qcow2 /vms/images/centos7 -O raw /dev/sddroot@h3cas-e306:/vms/images# qemu-img info /dev/sddimage: /dev/sddfile format: rawvirtual size: 23G (24696061952 bytes)disk size: 0
  • Step2:使用 iSCSI 设备手动启动 KVM 虚拟机
root@h3cas-e306:/etc/libvirt/qemu# virsh define centos7_r_0.xmlDomain centos7_r_0 defined from centos7_r_0.xmlroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 36    centos7                        running -     centos7_q_0                    shut off -     centos7_r_0                    shut offroot@h3cas-e306:/etc/libvirt/qemu# virsh start centos7_r_0Domain centos7_r_0 startedroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 36    centos7                        running 37    centos7_r_0                    running -     centos7_q_0                    shut off
  • Step3:对 centos7 做快照得到增量快照数据 centos7_1(increment qcow2)
root@h3cas-e306:/vms/images# virsh snapshot-create-as --domain centos7 snap01 snap01-desc --disk-only --diskspec vda,snapshot=external,file=/vms/images/centos7_1 --atomicDomain snapshot snap01 createdroot@h3cas-e306:/vms/images# lscentos7  centos7_1root@h3cas-e306:/vms/images# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 2.0Mcluster_size: 262144backing file: /vms/images/centos7backing file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: false
  • Step4: Copy centos7_1 的副本到备份目录下
root@h3cas-e306:/vms/images# cp centos7_1 /kvm_backup/root@h3cas-e306:/vms/images# cd /kvm_backup/root@h3cas-e306:/kvm_backup# lscentos7_1root@h3cas-e306:/kvm_backup#  qemu-img info  /kvm_backup/centos7_1image: /kvm_backup/centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 2.5Mcluster_size: 262144backing file: /vms/images/centos7backing file format: qcow2Format specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img info /dev/sddimage: /dev/sddfile format: rawvirtual size: 23G (24696061952 bytes)disk size: 0
  • Step5:以 raw 的格式 rebase 并 commit centos7_1 到 iSCSI 设备中
root@h3cas-e306:/kvm_backup# qemu-img rebase -b /dev/sdd -F raw centos7_1root@h3cas-e306:/kvm_backup# qemu-img info centos7_1image: centos7_1file format: qcow2virtual size: 20G (21474836480 bytes)disk size: 25Mcluster_size: 262144backing file: /dev/sddbacking file format: rawFormat specific information:    compat: 1.1    lazy refcounts: falseroot@h3cas-e306:/kvm_backup# qemu-img info /dev/sddimage: /dev/sddfile format: rawvirtual size: 23G (24696061952 bytes)disk size: 0root@h3cas-e306:/kvm_backup# qemu-img commit -f qcow2 centos7_1Image committed.root@h3cas-e306:~# qemu-img info /dev/sddimage: /dev/sddfile format: rawvirtual size: 23G (24696061952 bytes)disk size: 0
  • Step6: 使用 commit 后的 iSCSI 设备再次启动虚拟机
root@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 38    centos7                        running -     centos7_q_0                    shut off -     centos7_r_0                    shut offroot@h3cas-e306:/etc/libvirt/qemu# virsh start centos7_r_0Domain centos7_r_0 startedroot@h3cas-e306:/etc/libvirt/qemu# virsh list --all Id    Name                           State---------------------------------------------------- 38    centos7                        running 39    centos7_r_0                    running -     centos7_q_0                    shut off

NOTE:尚未测试虚拟机在备份和恢复的过程中虚拟机的应用业务是否被中断。

转载地址:https://is-cloud.blog.csdn.net/article/details/71216386 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:再谈 COW、ROW 快照技术
下一篇:VMware vMotion 配置要求

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月11日 15时54分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章