秋栈博客

七月

《二》企业级 KVM 管理

3
2022-08-11

《二》企业级 KVM 管理

1、GuestOS配置变更

1.1、图形化变更

在上一篇中已经提及,不再描述

1.2、命令行变更

1.2.1、磁盘变更

  1. 附加修改xml配置文件

      
      
      
      

注意:centos8⾥⾯硬盘和⽹卡的添加已经不能修改slot了,要求修改的是bus地址

  1. 创建新的空磁盘卷
qemu-img create -f qcow2 kvm01-1.qcow2 10G
  1. 重新定义xml文件
virsh define /etc/libvirtd/qemu/kvm01.xml

2、KVM存储

KVM必须要配置⼀个⽬录当作他存储磁盘镜像(存储卷)的⽬录,我们称这个⽬录为存储池。

存储池可以是本地可以是NFS可以是ceph集群。

默认存储目录:/var/lib/libvirt/images/

2.1、存储池管理

2.1.1、创建基于文件夹的存储池

mkdir -p /home/kvm

2.1.2、定义存储池和目录

virsh pool-define-as vmdisk --type dir --target /home/kvm/

[root@10-20-30-125 ~]# virsh pool-define-as vmdisk --type dir --target /home/kvm/
定义池 vmdisk

2.1.3、创建已定义的存储池

  1. 创建

    virsh pool-build vmdisk
    
    [root@10-20-30-125 ~]# virsh pool-build vmdisk
    构建池 vmdisk
    
  2. 查看

    virsh pool-list--all
    
    [root@10-20-30-125 ~]# virsh pool-list
     名称               状态     自动开始
    -------------------------------------------
     CentOS_7.6_64        活动     是
     default              活动     是
     kvm-images           活动     是
     vmdisk               活动     否
    
  3. 激活并自启动已定义的存储池

    virsh pool-start vmdisk
    virsh pool-autostart vmdisk
    
    [root@10-20-30-125 ~]# virsh pool-start vmdisk
    池 vmdisk 已启动
    [root@10-20-30-125 ~]# virsh pool-autostart vmdisk
    池 vmdisk 标记为自动启动
    [root@10-20-30-125 ~]# virsh pool-list
     名称               状态     自动开始
    -------------------------------------------
     CentOS_7.6_64        活动     是
     default              活动     是
     kvm-images           活动     是
     vmdisk               活动     是
    

    这里vmdisk存储池就已经创建好了,可以在这个目录创建虚拟磁盘文件了

  4. 在存储池中创建虚拟机存储卷

    virsh vol-create-as vmdisk kvmtest.qcow2 200G --format qcow2
    
    [root@10-20-30-125 ~]# virsh vol-create-as vmdisk kvmtest.qcow2 200G --format qcow2
    创建卷 kvmtest.qcow2
    [root@10-20-30-125 kvm]# ls  -l --block-size=G
    总用量 1G
    drwxr-xr-x 2 root root 1G 8月   9 23:32 CentOS_7.6_64
    -rw------- 1 root root 1G 8月  11 18:42 kvmtest.qcow2
    

    1、KVM存储池主要是体现⼀种管理⽅式,可以通过挂载存储⽬录,lvm逻辑卷的⽅式创建存储池,虚拟机存储卷创建完成后,剩下的操作与⽆存储卷的⽅式⽆任何区别。

    2、KVM存储池也要用于虚拟机的迁移任务

  5. 存储池相关管理命令

    • 在存储池中删除虚拟机存储卷

      virsh vol-delete --pool vmdisk kvmtest.qcow2
      [root@10-20-30-125 kvm]# virsh vol-delete --pool vmdisk kvmtest.qcow2
      卷 kvmtest.qcow2 被删除
      
    • 取消激活存储池

      virsh pool-destroy vmdisk
      [root@10-20-30-125 ~]# virsh pool-destroy vmdisk
      销毁池 vmdisk
      
    • 删除存储池定义的目录 /home/vmfs

      virsh pool-delete vmdisk
      [root@10-20-30-125 ~]# virsh pool-delete vmdisk
      取消定义池 vmdisk
      
    • 取消定义存储池

      virsh pool-undefine vmdisk
      [root@10-20-30-125 ~]# virsh pool-undefine vmdisk
      池 vmdisk 已经被取消定义
      

 

2.1.4、生产环境存储池的使用

添加LVM逻辑卷和远程存储即可

2.2、创建磁盘文件

#创建qcow2文件格式磁盘文件:
[root@10-20-30-125 ~]# qemu-img create -f qcow2 /home/kvm/test.qcow2 200G
Formatting '/home/kvm/test.qcow2', fmt=qcow2 size=214748364800 encryption=off cluster_size=65536 lazy_refcounts=off
#创建raw文件格式的磁盘文件
[root@10-20-30-125 ~]# qemu-img create -f raw /home/kvm/test.img 200G
Formatting '/home/kvm/test.raw', fmt=raw size=214748364800
[root@10-20-30-125 kvm]# ll -h
总用量 196K
drwxr-xr-x 2 root root   33 8月   9 23:32 CentOS_7.6_64
-rw-r--r-- 1 root root 200G 8月  11 19:05 test.img
-rw-r--r-- 1 root root 196K 8月  11 19:01 test.qcow2

上面可以看到 row文件格式的直接显示分配的大小:200G,而qcow2是显示实际使用的大小。

[root@10-20-30-125 kvm]# qemu-img info test.img
image: test.img
file format: raw
virtual size: 200G (214748364800 bytes)
disk size: 0
[root@10-20-30-125 kvm]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 200G (214748364800 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

2.3、挂载磁盘

作为虚拟化环境管理员,你肯定遇到过虚拟机⽆法启动的情况。实施排错时,你需要对虚拟机的内部进⾏检查。⽽Libguestfs Linux⼯具集可以在这种情况下为你提供帮助。利⽤Libguestfs找出损坏的虚拟机⽂件Libguestfs允许在虚拟机上挂载任何类型的⽂件系统,以便修复启动故障。

使⽤Libguestfs,⾸先需要使⽤Libvirt。Libvirt是⼀个管理接⼝,可以和KVM、Xen和其他⼀些基于Liunx的虚拟机相互连接。Libguestfs的功能更加强⼤,可以打开Windows虚拟机上的⽂件。但是⾸先你需要将虚拟机迁移到libguestfs可⽤的环境当中,也就是Linux环境。

假如你是vmware的ESXI虚拟机,为了将虚拟机迁移到Linux当中,你可以使⽤SSH连接到ESXi主机,这意味着你⾸先需要启⽤ESXi主机上的SSH访问⽅式。完成之后,在Linux平台上运⾏scp命令。

  • 查看磁盘镜像分区信息:

    [root@10-20-30-125 ~]# virt-df -h kvm01
    文件系统                            大小 已用空间 可用空间 使用百分比%
    kvm01:/dev/sda1                          1014M       105M       909M   11%
    #逻辑卷
    kvm01:/dev/centos/root                     17G       1.2G        16G    8%
    
  • 查看虚拟机文件系统

    [root@10-20-30-125 ~]# virt-filesystems -d kvm01
    /dev/sda1
    /dev/centos/root
    
  • 关闭虚拟机并挂载到宿主机上

    [root@10-20-30-125 ~]# virsh list
     Id    名称                         状态
    ----------------------------------------------------
     7     kvm01                          running
     9     kvm02                          running
     11    kvm03                          running
    
    [root@10-20-30-125 ~]# virsh shutdown kvm01
    域 kvm01 被关闭
    [root@10-20-30-125 ~]# guestmount -d kvm01 -m /dev/centos/root --rw /mnt/
    
  • 查看目录

    [root@10-20-30-125 ~]# cd /mnt/
    #这些就是kvm01的根目录  
    [root@10-20-30-125 mnt]# ls
    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
    boot  etc  lib   media  opt  root  sbin  sys  usr
    
  • 查看宿主机挂载信息

    [root@10-20-30-125 ~]# df -Th
    文件系统                                类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_10--20--30--125-root xfs        50G   23G   28G   45% /
    devtmpfs                                devtmpfs  7.8G     0  7.8G    0% /dev
    tmpfs                                   tmpfs     7.8G     0  7.8G    0% /dev/shm
    tmpfs                                   tmpfs     7.8G   26M  7.8G    1% /run
    tmpfs                                   tmpfs     7.8G     0  7.8G    0% /sys/fs/cgroup
    /dev/sda1                               xfs      1014M  147M  868M   15% /boot
    /dev/mapper/centos_10--20--30--125-home xfs       873G  824M  872G    1% /home
    tmpfs                                   tmpfs     1.6G     0  1.6G    0% /run/user/0
    /dev/fuse                               fuse       17G  1.3G   16G    8% /mnt
    
  • 取消挂载

    [root@10-20-30-125 ~]# guestunmount /mnt/
    [root@10-20-30-125 ~]# df -Th
    文件系统                                类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos_10--20--30--125-root xfs        50G   23G   28G   45% /
    devtmpfs                                devtmpfs  7.8G     0  7.8G    0% /dev
    tmpfs                                   tmpfs     7.8G     0  7.8G    0% /dev/shm
    tmpfs                                   tmpfs     7.8G   26M  7.8G    1% /run
    tmpfs                                   tmpfs     7.8G     0  7.8G    0% /sys/fs/cgroup
    /dev/sda1                               xfs      1014M  147M  868M   15% /boot
    /dev/mapper/centos_10--20--30--125-home xfs       873G  824M  872G    1% /home
    tmpfs                                   tmpfs     1.6G     0  1.6G    0% /run/user/0
    

     

通过该方式即可对故障的虚拟机进行文件提取。mtab⽂件在centos7的启动过程中⾮常有⽤,删掉会导致不能启动

3、KVM的管理

3.1、查看、启动、关闭、重启

  • 查看虚拟机-仅显示运行中的虚拟机

    [root@10-20-30-125 ~]# virsh list
     Id    名称                         状态
    ----------------------------------------------------
     9     kvm02                          running
     11    kvm03                          running
    
  • 查看所有虚拟机-包括未运行

    [root@10-20-30-125 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     9     kvm02                          running
     11    kvm03                          running 
     -     kvm01                          关闭
    
  • 查看虚拟机配置文件

    [root@10-20-30-125 ~]# virsh dumpxml kvm01
    #复制配置文件给新的虚拟机
    [root@10-20-30-125 ~]# virsh dumpxml kvm01 > /etc/libvirt/kvm05.xml
    
  • 修改虚拟机配置-两种

    #该方式修改不正确会报错
    virsh edit kvm01
    #该方式需要重新define和重启libvirtd进程
    vim /etc/lib/libvirt/qemu/kvm01.xml
    
  • 开启虚拟机

    [root@10-20-30-125 ~]# virsh start kvm01
    域 kvm01 已开始
    
  • 暂停虚拟机-挂起

    [root@10-20-30-125 ~]# virsh suspend kvm01
    域 kvm01 被挂起
    
  • 恢复虚拟机

    [root@10-20-30-125 ~]# virsh resume kvm01
    域 kvm01 被重新恢复
    
  • 关闭虚拟机

    1. 普通关闭-正常

      [root@10-20-30-125 ~]# virsh shutdown kvm01
      域 kvm01 被关闭
      
    2. 断电关机-强制

      [root@10-20-30-125 ~]# virsh destroy kvm01
      域 kvm01 被删除
      
  • 重启虚拟机

    1. 普通重启-速度较慢-安全

      [root@10-20-30-125 ~]# virsh reboot kvm01
      域 kvm01 正在被重新启动
      
    2. 强制重启-速度较快-不安全

      [root@10-20-30-125 ~]# virsh reset kvm01
      域 kvm01 正在被重新启动
      
  • 删除虚拟机

    undefine仅仅只删除虚拟机的配置文件,实际磁盘需要手动删除。

    [root@10-20-30-125 ~]# ls /etc/libvirt/qemu
    kvm01.xml  kvm02.xml  kvm03.xml  networks
    [root@10-20-30-125 ~]# virsh undefine kvm01
    域 kvm01 已经被取消定义
    [root@10-20-30-125 ~]# ls /etc/libvirt/qemu
    kvm02.xml  kvm03.xml  networks
    [root@10-20-30-125 ~]# ls /var/lib/libvirt/images/
    CentOS-7-x86_64-Minimal-2009.iso  kvm02.qcow2
    kvm01.qcow2                       kvm03.qcow2
    

    若再次执行destroy命令就会彻底删除虚拟机,但文件还需要手动删。

    [root@10-20-30-125 ~]# virsh destroy kvm01
    域 kvm01 被删除
    
    [root@10-20-30-125 ~]# ls /var/lib/libvirt/images/
    CentOS-7-x86_64-Minimal-2009.iso  kvm02.qcow2
    kvm01.qcow2                       kvm03.qcow2
    
  • 设置虚拟机开机自启

    [root@10-20-30-125 ~]# virsh autostart kvm02
    域 kvm02标记为自动开始
    [root@10-20-30-125 ~]# ls /etc/libvirt/qemu/autostart/
    kvm02.xml
    

    /etc/libvirt/qemu/autostart/:该目录只有设置了开机自启才会自动生成。

  • 取消虚拟机开机自启

    [root@10-20-30-125 ~]# virsh autostart --disable kvm02
    域 kvm02取消标记为自动开始
    
  • 查看所有开机自启的虚拟机

    [root@10-20-30-125 ~]# virsh list --all --autostart
     Id    名称                         状态
    ----------------------------------------------------
    

3.2、虚拟机克隆

克隆时需要保证虚拟机为关机状态

3.2.1、图形化克隆-不讲解。

3.2.2、命令方式

  • 不指定名称克隆虚拟机kvm03
#-o:克隆的原始虚拟机
[root@10-20-30-125 ~]# virsh-clone -o kvm03 --auto-clone
-bash: virsh-clone: 未找到命令
[root@10-20-30-125 ~]# virt-clone -o kvm02 --auto-clone
ERROR    必须暂停或者关闭有要克隆设备的域。
[root@10-20-30-125 ~]# virsh shutdown kvm03
域 kvm03 被关闭

[root@10-20-30-125 ~]# virt-clone -o kvm03 --auto-clone
正在分配 'kvm03-cl  8% [=           ]  95 MB/s | 1.8 GB  03:16 ETA
成功克隆 'kvm03-clone'。
  • 查看虚拟机

    [root@10-20-30-125 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     9     kvm02                          running
     -     kvm03                          关闭
     -     kvm03-clone                    关闭
    
  • 指定名称克隆

    [root@10-20-30-125 ~]# virt-clone -o kvm03 -n kvm04 --auto-clone
    正在分配 'kvm04.qcow2'                         |  20 GB  00:03
    
    成功克隆 'kvm04'。
    [root@10-20-30-125 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     9     kvm02                          running
     -     kvm03                          关闭
     -     kvm03-clone                    关闭
     -     kvm04                          关闭
    
  • 指定磁盘镜像文件格式克隆

    [root@10-20-30-125 ~]# virt-clone -o kvm04 -n kvm05 -f /var/lib/libvirt/images/kvm05.qcow2
    正在分配 'kvm05.qcow2'                         |  20 GB  00:03
    
    成功克隆 'kvm05'。
    

    克隆过程会自动给我们修改配置文件:UUID、MAC地址等等

3.3、增量镜像(链接克隆)

通过⼀个基础镜像(node.img),⾥⾯把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建⽴起⼀个个增量镜像,每个增量镜像对应⼀个虚拟机,虚拟机对镜像中所有的改变都记录在增量镜像⾥⾯,基础镜像始终保持不变。

优点:节省磁盘空间,快速复制出新的虚拟机。

  • 创建增量磁盘文件

    [root@10-20-30-125 ~]# qemu-img create -b /var/lib/libvirt/images/kvm05.qcow2  -f qcow2 /var/lib/libvirt/images/kvm06.qcow2
    Formatting '/var/lib/libvirt/images/kvm06.qcow2', fmt=qcow2 size=21474836480 backing_file='/var/lib/libvirt/images/kvm05.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
    [root@10-20-30-125 ~]# qemu-img info /var/lib/libvirt/images/kvm05.qcow2
    image: /var/lib/libvirt/images/kvm05.qcow2  #来源
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 1.6G
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: true
    
  • 创建增量克隆虚拟机的配置文件

    [root@10-20-30-125 ~]# cp /etc/libvirt/qemu/kvm05.xml /etc/libvirt/qemu/kvm06.xml
    [root@10-20-30-125 ~]# vim /etc/libvirt/qemu/kvm06.xml
    #修改虚拟机名称、UUID、镜像文件、MAC地址
    [root@10-20-30-125 ~]# virsh define /etc/libvirt/qemu/kvm06.xml
    定义域 kvm06(从 /etc/libvirt/qemu/kvm06.xml)
    [root@10-20-30-125 ~]# virsh start kvm06
    域 kvm06 已开始
    
  • 测试是否正常使用

[root@10-20-30-125 ~]# du -h /var/lib/libvirt/images/kvm05.qcow2
1.6G	/var/lib/libvirt/images/kvm05.qcow2
[root@10-20-30-125 ~]# du -h /var/lib/libvirt/images/kvm06.qcow2
7.8M	/var/lib/libvirt/images/kvm06.qcow2

可以看到克隆出来的虚拟机非常节省空间

  • 创建块测试

    • dd:用块设备创建文件
    • if:取块的目录
    • of test:输出成名为test的文件(也可以指定创建目录)
    • bs:一个块的大小
    • count:需要取的块数量
    dd if=dev/zero of=test bs=1M count=200
    

    [root@10-20-30-125 ~]# du -h /var/lib/libvirt/images/kvm05.qcow2
    1.6G	/var/lib/libvirt/images/kvm05.qcow2
    [root@10-20-30-125 ~]# du -h /var/lib/libvirt/images/kvm06.qcow2
    257M	/var/lib/libvirt/images/kvm06.qcow2
    

     

3.4、快照

3.4.1、图形化创建-不介绍

3.4.2、命令创建

raw:不支持创建快照,会报错。

使⽤⽂件来模拟实际的硬盘(当然也可以使⽤⼀块真实的硬盘或⼀个分区)。由于原⽣的裸格式,不⽀持snapshot也是很正常的。但如果你使⽤LVM的裸设备,那就另当别论。说到LVM还是⼗分的犀利的,⽬前来看,LVM的snapshot、性能、可扩展性⽅⾯都还是有相当的效果的。备份的话也问题不⼤。就是在虚拟机迁移⽅⾯还是有很⼤的限制。但⽬前虚拟化的现状来看,真正需要热迁移的情况⽬前需求还不是特别的强烈。虽然使⽤LVM做虚拟机镜像的相关公开资料⽐较少,但⽬前来看牺牲⼀点灵活性,换取性能和便于管理还是不错的选择。

qcow2:qcow的升级版

现在⽐较主流的⼀种虚拟化镜像格式,经过⼀代的优化,⽬前qcow2的性能上接近raw裸格式的性能,qcow2的snapshot优点:

  • 可以在镜像上做N多个快照
  • 更⼩的存储空间
  • 支持写时操作
  • ⽀持多个snapshot,对历史snapshot进⾏管理
  • ⽀持zlib的磁盘压缩
  • ⽀持AES的加密

给虚拟机kvm06创建一个快照(qcow2格式)

[root@10-20-30-125 ~]# virsh snapshot-create-as kvm06 kvm06.snap
已生成域快照 kvm06.snap
[root@10-20-30-125 ~]# qemu-img info /var/lib/libvirt/images/kvm06.qcow2
image: /var/lib/libvirt/images/kvm06.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 976M
cluster_size: 65536
backing file: /var/lib/libvirt/images/kvm05.qcow2
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         kvm06.snap             284M 2022-08-11 20:33:01   00:12:57.924
Format specific information:
    compat: 1.1
    lazy refcounts: false

查看虚拟机kvm06的快照

[root@10-20-30-125 ~]# virsh snapshot-list kvm06
 名称               生成时间              状态
------------------------------------------------------------
 kvm06.snap           2022-08-11 20:33:01 +0800 running

3.4.3、raw格式创建快照方式

创建raw镜像文件

[root@10-20-30-125 ~]# qemu-img create -f raw /var/lib/libvirt/images/kvm06-1.raw 20G
Formatting '/var/lib/libvirt/images/kvm06-1.raw', fmt=raw size=21474836480
[root@10-20-30-125 ~]# ll -h /var/lib/libvirt/images/kvm06-1.raw
-rw-r--r-- 1 root root 20G 8月  11 20:45 /var/lib/libvirt/images/kvm06-1.raw

编辑kvm06配置文件

type:镜像文件格式

source file:镜像文件

target dev:设备名

slot:插口

[root@10-20-30-125 ~]# vim /etc/libvirt/qemu/kvm06.xml

      
      
      
      
#修改后
[root@10-20-30-125 ~]# virsh define /etc/libvirt/qemu/kvm06.xml 定义域 kvm06(从 /etc/libvirt/qemu/kvm06.xml) [root@10-20-30-125 ~]# virsh reboot kvm06 域 kvm06 正在被重新启动

给kvm06尝试创建快照

[root@10-20-30-125 ~]# virsh snapshot-create-as kvm06 kvm06.snap1
错误:unsupported configuration: internal snapshot for disk vdb unsupported for storage type raw

解决方案:转换格式

[root@10-20-30-125 ~]# qemu-img convert -O qcow2 /var/lib/libvirt/images/kvm06-1.raw /var/lib/libvirt/images/kvm06-1.qcow2

[root@10-20-30-125 ~]# ll -h /var/lib/libvirt/images/
总用量 18G
-rw-r--r-- 1 qemu qemu 973M 11月  3 2020 CentOS-7-x86_64-Minimal-2009.iso
-rw------- 1 root root  21G 8月  11 19:49 kvm01.qcow2
-rw------- 1 qemu qemu  21G 8月  11 20:59 kvm02.qcow2
-rw------- 1 root root 1.6G 8月  11 20:01 kvm03-clone.qcow2
-rw------- 1 root root  21G 8月  11 20:00 kvm03.qcow2
-rw------- 1 root root 1.6G 8月  11 20:03 kvm04.qcow2
-rw------- 1 qemu qemu 1.6G 8月  11 20:05 kvm05.qcow2
-rw-r--r-- 1 root root 193K 8月  11 20:58 kvm06-1.qcow2
-rw-r--r-- 1 root root  20G 8月  11 20:45 kvm06-1.raw
-rw-r--r-- 1 root root 500M 8月  11 20:54 kvm06.qcow2
[root@10-20-30-125 ~]# qemu-img info /var/lib/libvirt/images/kvm06-1.qcow2
image: /var/lib/libvirt/images/kvm06-1.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

转换完、修改虚拟机配置文件

[root@10-20-30-125 ~]# vim /etc/libvirt/qemu/kvm06.xml

      
      
      
      
[root@10-20-30-125 ~]# virsh define /etc/libvirt/qemu/kvm06.xml 定义域 kvm06(从 /etc/libvirt/qemu/kvm06.xml)

再次尝试快照

[root@10-20-30-125 ~]# virsh snapshot-create-as kvm06 kvm06.snap1
已生成域快照 kvm06.snap1
#不定义名称则会自动生成
[root@10-20-30-125 ~]# virsh snapshot-create-as kvm06
已生成域快照 1660223064
[root@10-20-30-125 ~]# virsh snapshot-list kvm06
 名称               生成时间              状态
------------------------------------------------------------
 1660223064           2022-08-11 21:04:24 +0800 shutoff
 kvm06.snap           2022-08-11 20:33:01 +0800 running
 kvm06.snap1          2022-08-11 21:04:01 +0800 shutoff

3.4.4、恢复快照

在kvm06上做出操作:删除test块。

创建一个新快照

[root@10-20-30-125 ~]# virsh snapshot-create-as kvm06 kvm06.snap2
已生成域快照 kvm06.snap2
[root@10-20-30-125 ~]# virsh snapshot-list kvm06
 名称               生成时间              状态
------------------------------------------------------------
 1660223064           2022-08-11 21:04:24 +0800 shutoff
 kvm06.snap           2022-08-11 20:33:01 +0800 running
 kvm06.snap1          2022-08-11 21:04:01 +0800 shutoff
 kvm06.snap2          2022-08-11 22:03:57 +0800 running

恢复到前一个快照状态snap1

[root@10-20-30-125 ~]# virsh shutdown kvm06
域 kvm06 被关闭

[root@10-20-30-125 ~]# virsh snapshot-revert kvm06 kvm06.snap1

[root@10-20-30-125 ~]# virsh start kvm06
域 kvm06 已开始

这里看到已回到之前的状态

再次回到我们创建的第二个快照

[root@10-20-30-125 ~]# virsh shutdown kvm06
域 kvm06 被关闭

[root@10-20-30-125 ~]# virsh snapshot-revert kvm06 kvm06.snap2

[root@10-20-30-125 ~]# virsh start kvm06
错误:域已经活跃

这里可以看到我们之前是在开机状态创建的快照,这里直接恢复到编辑完的状态

3.4.5、删除快照

[root@10-20-30-125 ~]# virsh snapshot-delete --snapshotname kvm06.snap2 kvm06
已删除域快照 kvm06.snap2

[root@10-20-30-125 ~]# virsh snapshot-list kvm06
 名称               生成时间              状态
------------------------------------------------------------
 1660223064           2022-08-11 21:04:24 +0800 shutoff
 kvm06.snap           2022-08-11 20:33:01 +0800 running
 kvm06.snap1          2022-08-11 21:04:01 +0800 shutoff

 

  • 0