This is something you'd do if you were planning on yum updating a system or upgrading software across major versions. In VMware it's referred to as simply “taking” and “deleting” snapshots. It's quite a bit more complicated and somewhat more limited in its capabilities when using KVM. Here is my howto though, and it seems to work.
[jrdalrymple@kvm ~]$ sudo virsh snapshot-create-as kvmdomain snap1 "Yum Upgrade" --disk-only --atomic Domain snapshot snap1 created [jrdalrymple@kvm ~]$ sudo virsh snapshot-list kvmdomain Name Creation Time State ------------------------------------------------------------ snap1 2015-04-22 16:16:39 -0500 disk-snapshot [jrdalrymple@kvm ~]$ sudo virsh snapshot-info kvmdomain snap1 Name: snap1 Domain: kvmdomain Current: yes State: disk-snapshot Location: external Parent: - Children: 0 Descendants: 0 Metadata: yes
[jrdalrymple@kvm ~]$ sudo virsh blockpull kvmdomain vda --wait --verbose
[jrdalrymple@kvm ~]$ sudo rm /var/lib/libvirt/images/NFS/kvmdomain.img
[jrdalrymple@kvm ~]$ sudo virsh snapshot-delete kvmdomain snap1 --metadata
[jrdalrymple@kvm ~]$ sudo virsh dumpxml kvmdomain /var/tmp/kvmdomain.xml
[jrdalrymple@kvm ~]$ cat /var/tmp/kvmdomain.xml
[jrdalrymple@kvm ~]$ sudo virsh undefine kvmdomain
[jrdalrymple@kvm ~]$ sudo virsh blockcopy kvmdomain /var/lib/libvirt/images/NFS/kvmdomain.snap1 /var/lib/libvirt/images/NFS/kvmdomain.img --wait --verbose --pivot
[jrdalrymple@kvm ~]$ sudo virsh define /var/tmp/kvmdomain.xml
[jrdalrymple@kvm ~]$ sudo rm /var/lib/libvirt/images/NFS/kvmdomain.snap1