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 |