wiki:public:kvmsnap
Table of Contents
KVM & LibVirt - External snapshots on live systems
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.
Take your snapshot
[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
Make your massive changes that are likely to break the system
If things go right and you want to commit the change blocks to the image:
- Commit the change
[jrdalrymple@kvm ~]$ sudo virsh blockpull kvmdomain vda --wait --verbose
- Delete the old base image file
[jrdalrymple@kvm ~]$ sudo rm /var/lib/libvirt/images/NFS/kvmdomain.img
- Delete the snapshot metadata
[jrdalrymple@kvm ~]$ sudo virsh snapshot-delete kvmdomain snap1 --metadata
Move the new base to the original base (optional):
- Create XML file
[jrdalrymple@kvm ~]$ sudo virsh dumpxml kvmdomain /var/tmp/kvmdomain.xml
- VERIFY
[jrdalrymple@kvm ~]$ cat /var/tmp/kvmdomain.xml
- Undefine
[jrdalrymple@kvm ~]$ sudo virsh undefine kvmdomain
- Migrate
[jrdalrymple@kvm ~]$ sudo virsh blockcopy kvmdomain /var/lib/libvirt/images/NFS/kvmdomain.snap1 /var/lib/libvirt/images/NFS/kvmdomain.img --wait --verbose --pivot
- Redefine
[jrdalrymple@kvm ~]$ sudo virsh define /var/tmp/kvmdomain.xml
- Delete old file
[jrdalrymple@kvm ~]$ sudo rm /var/lib/libvirt/images/NFS/kvmdomain.snap1
wiki/public/kvmsnap.txt · Last modified: 2018/09/27 02:29 by 127.0.0.1