Snapshot for KVM via libvirt with virsh

Context

I am using KVM, and use/manage my VMs with virt-manager. But I asked myself this question: how can create or revert some snapshot?

I'm giving examples for qcow2 disk images and commands are made with virsh.

Internal Disk Snapshots

You can list available VM with virsh in order to know their name:

1
2
3
4
$ virsh list
Id Name State
----------------------------------
1 vmname running

Then you can check if there already is existing shapshots for this VM:

1
2
3
$ virsh snapshot-list vmname
Name Creation Time State
------------------------------------------------------------

Next there is two possibilities to make a snapshot:

  • create a XML snapshot description file to specify the name and description of the snapshot
  • or let libvirt choose a name and no description

The XML snapshot description file must look like the following:

1
2
3
4
<domainsnapshot>
<name>vmname-snapshot1</name>
<description>description of the snapshot</description>
</domainsnapshot>

Make a snapshot with an XML file:

1
$ virsh snapshot-create vmname /path/to/description.xml

Or make a snapshot without description file:

1
$ virsh snapshot-create vmname

Note: this is much more faster to make a snapshot while the VM is stoped. But it's also possible to make a snapshot while the VM is running even if it's more slow.

If you want to see some informations about the VM and snapshots you can run:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ qemu-img info /path/to/disk/image/vmname.qcow2
image: vmname.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 5.2G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 vmname-snapshot1 329M 2017-02-08 20:40:59 01:23:38.281
2 vmname-snapshot2 375M 2017-02-08 20:46:39 01:26:01.645
3 vmname-snapshot3 482M 2017-02-08 22:42:48 03:22:00.515
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false

To revert the VM to a snapshot, for example run:

1
$ virsh snapshot-revert vmname vmname-snapshot1

Source

Share