KVM虚拟机的快照用来保存虚拟机在某个时间点的内存、磁盘或者设备状态,如果将来有需要可以把虚拟机的状态回滚到这个时间点。

根据被做快照的对象不同,快照可以分为磁盘快照和内存快照,两者加起来构成了一个系统还原点,记录虚拟机在某个时间点的全部状态;根据做快照时虚拟机是否在运行,快照又可以分为在线快照和离线快照。

磁盘快照根据存储方式的不同,又分为内部快照和外部快照:内部快照只支持qcow2格式的虚拟机镜像,把快照及后续变动都保存在原来的qcow2文件内;外部快照在创建时,快照被保存在单独一个文件中,创建快照时间点之后的数据被记录到一个新的qcow2文件中,原镜像文件成为新的qcow2文件的backing file(只读),在创建多个快照后,这些文件将形成一个链——backing chain。外部快照同时支持raw和qcow2格式的虚拟机镜像。

下文将分别具体介绍不同类型的KVM虚拟机快照。

操作环境:

l  操作系统:

[root@localhost ~]# cat   /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

l  Libvirt版本:

[root@localhost ~]# libvirtd --version

libvirtd (libvirt) 3.2.0

l  qemu版本:

[root@localhost ~]# rpm -qa|grep qemu-kvm

qemu-kvm-common-ev-2.3.0-29.1.el7.x86_64

qemu-kvm-ev-2.3.0-29.1.el7.x86_64

centos7.4的默认yum源中的qemu-kvm不支持在线创建外部快照,需要安装Redhat的qemu-kvm-ev,安装方法:

1.      配置yum源

[root@localhost ~]# cat   /etc/yum.repos.d/qemu-kvm-rhev.repo

[qemu-kvm-rhev]

name=oVirt rebuilds of qemu-kvm-rhev

baseurl=http://resources.ovirt.org/pub/ovirt-3.5/rpm/el7Server/

mirrorlist=http://resources.ovirt.org/pub/yum-repo/mirrorlist-ovirt-3.5-el7Server

enabled=1

skip_if_unavailable=1

gpgcheck=0

2.      安装

[root@localhost ~]# yum install qemu-kvm-rhev -y

测试机上有一台虚拟机

[root@localhost ~]# virsh list

 Id      Name                             State

----------------------------------------------------

10      vm                             running

虚拟机的磁盘文件为系统盘/data/vm.img,数据盘/data/data.img。

内存快照

1.      创建快照

命令:virsh save vm vm.snapshot1

[root@localhost ~]# virsh save vm   vm.snapshot1

 

Domain vm saved to vm.snapshot1

创建完后虚拟机会关机:

[root@localhost ~]# virsh list --all

 Id      Name                             State

----------------------------------------------------

 -       vm                             shut off