虚拟化技术KVM管理学习——进阶

本文详细介绍了KVM虚拟化环境中GuestOS的安装问题及其解决方案,包括升级配置、存储池管理、磁盘格式的选择以及挂载磁盘的方法。此外,还阐述了KVM的基本管理操作,如虚拟机克隆、增量镜像和快照的创建与管理,强调了qcow2格式在快照支持上的优势。
摘要由CSDN通过智能技术生成

一、GuestOS安装问题解析

问题1:用图形安装guest os 时卡住

解决:升级系统
[root@localhost ~]# yum upgrade -y

问题2:升级系统后安装guest os的时候还是卡住

解决:需要在安装宿主机的时候安装兼容性程序
注:有些没有安装也可以使用,这可能是bug。

问题3:安装兼容性程序后还是不能正常安装

解决:检查安装包是否正确(有点安装过程中装的主包是qemu-kvm-ev,这个包是不可用的,必须是qemnu-kvm)
[root@localhost ~]# rpm -q qemu-kvm
qemu-kvm-1.5.3-175.el7_9.6.x86_64
[root@localhost ~]# rpm -q qemu-kvm-ev
未安装软件包 qemu-kvm-ev
[root@localhost ~]# rpm -qa | grep kvm
qemu-kvm-tools-1.5.3-175.el7_9.6.x86_64
qemu-kvm-common-1.5.3-175.el7_9.6.x86_64
qemu-kvm-1.5.3-175.el7_9.6.x86_64

如果所有问题都排查过后还是安装不上guestos,最后的原因就是在安装宿主机系统的时候各
种兼容性软件没有安装⽽且Yum也没有⾃动处理导致的。

二、GuestOS升级配置

1、修改配置文件

如:添加磁盘,就要修改下面一段配置

<disk type='file' device='disk'>
 <driver name='qemu' type='qcow2'/>
 <source file='/var/lib/libvirt/images/vm1-1.img'/>   #修改磁盘镜像文件
 <target dev='vda' bus='virtio'/>    #dev修改磁盘名字 
 <address type='pci' domain='0x0000' bus='0x00' slot='0x16'  function='0x0'/>   #slot修改卡槽,centos8是修改bus             
</disk> 

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

2、创建新的空磁盘卷

[root@localhost ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm1-1.qcow2 2G

释义:qemu-img create 创建一个磁盘镜像,-f 指定格式为 qcow2,/var/lib/libvirt/images/vm1-1.qcow2创建在此路径下及镜像文件名为vm1-1.qcow2,2G指给新创建的磁盘分配的存储。

3、重新定义

[root@localhost ~]# virsh define /etc/libvirt/qemu/vm1.xml

然后启动虚拟机查看是否添加成功。

或在图形界面修改(注意虚拟机必须处于关闭状态)
1.打开在管理器中选择要修改的虚拟机,点击打开
在这里插入图片描述
2.在打开的虚拟机窗口的任务栏上选择 查看 --> 详情 在这里插入图片描述
3.在虚拟机硬件详情里选择 磁盘 右击 --> 添加磁盘 --> 在弹出窗口选择存储 填写添加磁盘的信息
在这里插入图片描述
添加完成后就可以运行虚拟机查看添加磁盘的了。

三、KVM存储

1、概念

KVM必须要配置⼀个⽬录当作他存储磁盘镜像(存储卷)的⽬录,我们称这个⽬录为存储池。
默认存储池:/var/lib/libvirt/images/

2、存储池管理

1.创建基于文件夹的存储池(目录)
[root@localhost /]# mkdir -p /data/vmfs
2.定义存储池与其目录
[root@localhost ~]#  virsh pool-define-as vmdisk --type dir --target /data/vmfs
定义池 vmdisk

释义:virsh pool-define-as 定义池名为vmdisk;–type类型为目录的(dir);–target给 /data/vmfs 定义

3.创建已定义的存储池

1)创建已定义的存储池

[root@localhost ~]# virsh pool-build vmdisk
构建池 vmdisk

2)查看已定义的存储池,存储池不激活⽆法使⽤。

[root@localhost ~]# virsh pool-list --all
 名称               状态     自动开始
-------------------------------------------
 default              活动     是       
 root                 活动     是       
 vmdisk               不活跃  否 
4.激活并⾃动启动已定义的存储池
[root@localhost ~]# virsh pool-start vmdisk 
池 vmdisk 已启动
[root@localhost ~]# virsh pool-autostart vmdisk 
池 vmdisk 标记为自动启动

这⾥vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘⽂件了。

5.在存储池中创建虚拟机存储卷
[root@localhost ~]# virsh vol-create-as vmdisk oeltest03.qcow2 3G --format qcow2
创建卷 oeltest03.qcow2 

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

6.存储池相关管理命令

1)在存储池中删除虚拟机存储卷

[root@localhost ~]# virsh vol-delete --pool vmdisk oeltest03.qcow2
卷 oeltest03.qcow2 被删除

2)取消激活存储池

[root@localhost ~]# virsh pool-destroy vmdisk
销毁池 vmdisk

3)删除存储池定义的⽬录/data/vmfs

[root@localhost ~]# virsh pool-delete vmdisk
池 vmdisk 被删除

4)取消定义存储池

[root@localhost ~]# virsh pool-undefine vmdisk
池 vmdisk 已经被取消定义

3、生产环境存储的使用

  添加lvm和远程存储即可。

4、磁盘格式

1.磁盘镜像文件格式
  • raw :原始格式,性能最好;
  • qcow2:性能上不如raw,但raw不支持快照,qcow2支持;
    (qcow:cow写时拷贝copy on write,性能远不如raw,现在基本不用了,多用于他的升级版qcow2)
  • qed:现在默认安装是raw格式,所以做快照要把他转换成qcow2。

注:
什么是写时拷贝?
raw⽴刻分配空间,不管你有没有⽤到那么多空间;
qcow2只是承诺给你分配空间,只有当你需要⽤空间的时候,才会给你空间。最多只给你承诺空间的大小,避免空间浪费。

2.创建磁盘文件
1)建立qcow2格式的磁盘文件:
[root@localhost ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 2G
Formatting '/var/lib/libvirt/images/test.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off 
2)建立raw格式磁盘文件:
[root@localhost ~]# qemu-img create -f raw /var/lib/libvirt/images/test.img 2G
Formatting '/var/lib/libvirt/images/test.img', fmt=raw size=2147483648 
3)查看已经创建的虚拟磁盘文件信息:
[root@localhost ~]# qemu-img info /var/lib/libvirt/images/test.qcow2 
image: /var/lib/libvirt/images/test.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

5、挂载磁盘

情景:当遇到虚拟机⽆法启动的情况,会对虚拟机的内部进⾏检查。这里使用Libguestfs Linux⼯具集可以在这种情况下提供帮助。

利⽤Libguestfs找出损坏的虚拟机⽂件;
Libguestfs允许在虚拟机上挂载任何类型的⽂件系统,以便修复启动故障。
使⽤Libguestfs,⾸先需要使⽤Libvirt。Libvirt是⼀个管理接⼝,可以和KVM、Xen和其他⼀些基于Liunx的虚拟机相互连接。Libguestfs的功能更加强⼤,可以打开Windows虚拟机上的⽂件。但是⾸先你需要将虚拟机迁移到libguestfs可⽤的环境当中,也就是Linux环境。
注:这里libvirt工具在前面已经安装

假如在系统管理器有台虚拟机不能正常启动了,但文件系统还是正常的,我们通过宿主机的终端执行命令来解决(例如vm1)。
查看磁盘镜像分区信息:

[root@localhost ~]# virt-df -h -d vm1
文件系统                            大小 已用空间 可用空间 使用百分比%
vm1:/dev/sda1                            1014M        92M       922M   10%
vm1:/dev/centos/root                      3.5G       864M       2.6G   25%
#只查看文件系统
[root@localhost ~]# virt-filesystems -d vm1
/dev/sda1
/dev/centos/root

注:在使用命令前先下载Libguestfs工具 yum install libguestfs-tools
挂载磁盘镜像分区:

[root@localhost ~]# guestmount -d vm1 -m /dev/centos/root --rw /mnt

释义:用guestmount命令挂载,-d 挂载vm1,-m 挂载/dev/centos/root 这个分区,–rw权限读写,最终挂载到/mnt。挂载后可在里面提取需要的资源。
注:如果挂载过程中报错fuse: mountpoint is not empty fuse: if you are sure this is safe, use the ‘nonempty’ mount option libguestfs: error: fuse_mount failed: /mnt, see error messages above 可以在前面命令后面添加参数 -o nonempty 。
取消挂载

[root@localhost ~]# guestunmount /mnt/

四、KVM管理

1、KVM基本管理

1.查看虚拟机
[root@localhost ~]# virsh list 
 Id    名称                         状态
----------------------------------------------------
#只查看运行的虚拟机
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     vm1                            关闭
 -     vm2                            关闭
#查看全部虚拟机
2.查看kvm虚拟机配置文件(例如这里查看vm1)
[root@localhost ~]# virsh dumpxml vm1
3.将vm1虚拟机的配置文件另保存名为vm6.xml
[root@localhost ~]# virsh dumpxml vm1 > /etc/libvirt/qemu/vm6.xml
4.修改vm6的配置文件(不用重启libvirtd)
[root@localhost ~]# virsh edit vm6
编辑了域 vm6 XML 配置。
如果直接用vim修改了配置文件,需要重启libvirtd服务
5.启动
[root@localhost ~]# virsh start vm1
域 vm1 已开始
6.暂定虚拟机
[root@localhost ~]# virsh suspend vm1 
域 vm1 被挂起
7.恢复虚拟机
[root@localhost ~]# virsh resume vm1 
域 vm1 被重新恢复
8.关闭虚拟机
1)方法1常用
[root@localhost ~]# virsh shutdown vm1 
域 vm1 被关闭
2)方法2了解即可
[root@localhost ~]# virsh destroy vm1 
域 vm1 被删除
9.重启虚拟机
[root@localhost ~]# virsh reboot vm1 
域 vm1 正在被重新启动
10.重置虚拟机(断电重启,比reboot要稍快)
[root@localhost ~]# virsh reset vm1 
重新设定域 vm1
11.删除虚拟机
[root@localhost ~]# virsh undefine vm2
注:虚拟机删除一般在关闭状态,在开启状态下undefine是无法删除的(只删除了配置文件,镜像文件未删除),这时再destroy就会直接删除掉了。
12.虚拟机开机自启动
1)设置自动启动
[root@localhost ~]# virsh autostart vm1 
域 vm1标记为自动开始
注:默认正常在qemu目录下是没有autostrat这个目录的要设置了自动启动才会自动创建此目录
[root@localhost ~]# ls /etc/libvirt/qemu/autostart/
vm1.xml
2)取消自动启动
[root@localhost ~]# virsh autostart --disable vm1
域 vm1取消标记为自动开始
3)查看所有开机自动启动的GuestOS
#查看自启动目录下设备
[root@localhost ~]# ls /etc/libvirt/qemu/autostart/
#命令列出所有设置了自动启动的虚拟机
[root@localhost ~]# virsh list --all --autostart 
 Id    名称                         状态
----------------------------------------------------

2、虚拟机克隆

1.图形界面

Applications (左上⻆)-----> System Tools ------>Virtual Machine Manager
关闭要克隆的虚拟机,右击虚拟机选择clone。
在这里插入图片描述

2.命令行克隆
[root@localhost ~]# virt-clone -o vm1 --auto-clone
正在分配 'vm1-clone.qcow2'                                               | 5.0 GB  00:00:59     

成功克隆 'vm1-clone'
#-o 参数指明克隆原始对象(origin);其他都是克隆原始对象的默认配置,名称系统默认。
[root@localhost ~]# virt-clone -o vm1 -n vm2 --auto-clone
#-n 参数用于自定义名称,这里命令克隆虚拟机名称为vm2.
[root@localhost ~]# virt-clone -o vm1 -n vm2 -f /var/lib/libvirt/images/vm2.img
#-f,--file NEW_DISKFILE:为新的客户机使用新的磁盘镜像文件。

3、增量镜像

1.概述
目的:通过⼀个基础镜像(node.img),⾥⾯把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建⽴起⼀个个增量镜像,每个增量镜像对应⼀个虚拟机,虚拟机对镜像中所有的改变都记录在增量镜像⾥⾯,基础镜像始终保持不变。
功能:节省磁盘空间,快速复制虚拟机。
2.实验
准备基础镜像文件(vm1.img),创建一个名为node4.img的增量镜像
1)创建增量镜像文件:

[root@localhost ~]# qemu-img create -b /var/lib/libvirt/images/vm1.img -f qcow2 /var/lib/libvirt/images/node4.img
#创建
[root@localhost ~]#qemu-img info node4.img
#查看增量镜像信息

注:该实验只是针对qcow2格式的镜像文件做了测试,未测试raw格式的镜像文件是否可行。
2)创建虚拟机node4的xml配置文件

#创建
[root@localhost ~]# cp /etc/libvirt/qemu/vm1.xml /etc/libvirt/qemu/node4.xml
#编辑
[root@localhost ~]# vim /etc/libvirt/qemu/node4.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit vm1
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>node4</name>    #修改虚拟机名,为node4
  <uuid>72535aa9-08b5-49fc-9ed9-0d48a2b2ff4d</uuid>     #uid必须修改,否则与基本虚拟机冲突
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Broadwell-noTSX-IBRS</model>
    <feature policy='require' name='md-clear'/>
    <feature policy='require' name='spec-ctrl'/>
    <feature policy='require' name='ssbd'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/node4.img'/>   #修改为创建好的增量镜像文件
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:c9:19:9b'/>  #Mac地址避免冲突也必须修改(末尾三段中一位即可)
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
   ......

3)定义虚拟机

[root@localhost ~]# virsh define /etc/libvirt/qemu/node4.xml
#定义虚拟机node4
[root@localhost ~]# virsh start node4
#启动node4虚拟机

4)测试

[root@localhost ~]# du -h /var/lib/libvirt/images/vm1.img    #查看基础镜像文件信息
5.1G    /var/lib/libvirt/images/vm1.img
[root@localhost ~]# du -h /var/lib/libvirt/images/node4.img  #查看增量镜像文件信息
15M     /var/lib/libvirt/images/node4.img
[root@localhost ~]# dd if=/dev/zero of=test bs=1M count=200  #在虚拟机node4上增量200M大小文件
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 2.432561 seconds, 321 MB/
释义:dd用块来创建一个文件;if指从哪里去拿;of指输出文件取一个名;bs指一个块多大;count指拿多少个块。
再次查看两个镜像的信息
[root@localhost ~]# du -h /var/lib/libvirt/images/vm1.img    #查看基础镜像文件信息
5.1G    /var/lib/libvirt/images/vm1.img
[root@localhost ~]# du -h /var/lib/libvirt/images/node4.img  #查看增量镜像文件信息
396M     /var/lib/libvirt/images/node4.img

注:增量镜像了解即可。

4、快照

1.图形界面方式创建快照

在这里插入图片描述
在这里插入图片描述

2.命令行创建

1)格式说明
raw:
  使⽤⽂件来模拟实际的硬盘(当然也可以使⽤⼀块真实的硬盘或⼀个分区)。==由于原⽣的裸格式,不⽀持snapshot也是很正常的。但如果你使⽤LVM的裸设备,那就另当别论。说到LVM还是⼗分的犀利的⽬前来LVM的snapshot、性能、可扩展性⽅⾯都还是有相当的效果的。目前来看的话,备份的话也问题不⼤。就是在虚拟机迁移⽅⾯还是有很⼤的限制。
qcow2:
  现在⽐较主流的⼀种虚拟化镜像格式,经过⼀代的优化,⽬前qcow2的性能上接近raw裸格式的性能,这个也算是redhat的官⽅渠道了。
对于qcow2的格式,⼏点还是⽐较突出的,qcow2的snapshot,可以在镜像上做多个快照:

  • 更小的存储空间
  • Copy-on-write support
  • 支持多个snapshot,对历史snapshot进行管理
  • 支持zlib的磁盘压缩
  • 支持AES的加密

2)实验

1.为虚拟机vm1创建一个快照(磁盘格式必须是qcow2)
[root@localhost ~]# virsh snapshot-create-as vm1 vm1.snap
已生成域快照 vm1.snap

2.查看磁盘文件格式
[root@localhost ~]# qemu-img info /var/lib/libvirt/images/vm1.qcow2 
image: /var/lib/libvirt/images/vm1.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 5.0G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
    
3.查看快照
[root@localhost ~]# virsh snapshot-list vm1
 名称               生成时间              状态
------------------------------------------------------------
 vm1.snap             2023-02-06 14:11:47 +0800 shutoff

4.创建一块磁盘
[root@localhost ~]# qemu-img create -f raw /var/lib/libvirt/images/vm1-1.raw 2G
Formatting '/var/lib/libvirt/images/vm1-1.raw', fmt=raw size=2147483648 

查看其大小
[root@localhost ~]# ll -h /var/lib/libvirt/images/vm1-1.raw 
-rw-r--r-- 1 root root 2.0G 26 14:28 /var/lib/libvirt/images/vm1-1.raw

5.将其添加到vm1虚拟机上
[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# vim vm1.xml 
.....
  <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/vm1.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
    #复制上面一段磁盘文件配置
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>          #修改磁盘格式为上来创建的格式raw
      <source file='/var/lib/libvirt/images/vm1-1.raw'/>   #修改磁盘名,创建的路径下vm1-1.raw
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>   #磁盘装在卡槽修改slot,避免冲突
......
[root@localhost qemu]# virsh define vm1.xml 
定义域 vm1(从 vm1.xml)
#重新定义vm1

启动vm1
[root@localhost qemu]# virsh start vm1 
域 vm1 已开始

尝试创建快照是否可以创建成功
[root@localhost qemu]# virsh snapshot-create-as vm1 vm1.snap1
错误:不支持的配置:存储类型 vdb 不支持磁盘 raw 的内部快照
注:因此表明raw格式不支持快照

6.格式转换
[root@localhost qemu]# qemu-img convert -O qcow2 /var/lib/libvirt/images/vm1-1.raw /var/lib/libvirt/images/vm1-1.qcow2

查看格式是否转换成功
[root@localhost images]# qemu-img info vm1-1.qcow2 
image: vm1-1.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

7.转换后需要再次修改配置文件,把创建的磁盘指向转换后的vm1-1.qcow2(虚拟机需处于关闭状态)
[root@localhost qemu]# vim /etc/libvirt/qemu/vm1.xml 
......
 <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>   #修改格式
      <source file='/var/lib/libvirt/images/vm1-1.qcow2'/>  #镜像文件名同步修改
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </disk>
......

重新定义
[root@localhost qemu]# virsh define /etc/libvirt/qemu/vm1.xml 
定义域 vm1(从 /etc/libvirt/qemu/vm1.xml)

创建快照
[root@localhost qemu]# virsh snapshot-create-as vm1 vm1.snap2
已生成域快照 vm1.snap2
注:格式转换为qcow2后就能正常创建快照了

下一步测试
8.在虚拟机vm1中创建一个空目录
[root@localhost ~]# mkdir /test
[root@localhost ~]# ls /test

9.虚拟机vm1创建第3个快照vm1.snap3
[root@localhost ~]# virsh snapshot-create-as vm1 vm1.snap3
已生成域快照 vm1.snap3

在vm1中切换到test目录,在目录下创建两个文件
[root@localhost ~]# touch a.txt b.txt

10.虚拟机vm1创建第4个快照vm1.snap4
[root@localhost ~]# virsh snapshot-create-as vm1 vm1.snap3
已生成域快照 vm1.snap4

11.关闭虚拟机,恢复到第三个快照
[root@localhost ~]# virsh shutdown vm1 
域 vm1 被关闭
[root@localhost ~]# virsh snapshot-revert vm1 vm1.snap3
注:恢复到vm1.snap3后发现切换到test目录为空目录

12.关闭虚拟机,恢复到第四个快照
[root@localhost ~]# virsh shutdown vm1 
域 vm1 被关闭
[root@localhost ~]# virsh snapshot-revert vm1 vm1.snap4

发现在/test下有创建的两个文件
[root@localhost ~]# ls /test
a.txt  b.txt

以上测试完成。
拓展:
查看虚拟机快照
[root@localhost ~]# virsh snapshot-list vm1 
 名称               生成时间              状态
------------------------------------------------------------
 vm1.snap             2023-02-06 14:11:47 +0800 shutoff
 vm1.snap2            2023-02-06 15:24:17 +0800 shutoff
 vm1.snap3            2023-02-06 15:31:47 +0800 running
 vm1.snap4            2023-02-06 15:44:34 +0800 running
 删除虚拟机快照
 [root@localhost ~]# virsh snapshot-delete --snapshotname vm1.snap3 vm1
已删除域快照 vm1.snap3
[root@localhost ~]# virsh snapshot-list vm1 
 名称               生成时间              状态
------------------------------------------------------------
 vm1.snap             2023-02-06 14:11:47 +0800 shutoff
 vm1.snap2            2023-02-06 15:24:17 +0800 shutoff
 vm1.snap4            2023-02-06 15:44:34 +0800 running

学习视频:
https://www.bilibili.com/video/BV11p4y1U7Na?p=6&vd_source=92ffd157bfd8ef398f23be5c7aba4d65

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值