Features/Virt Live Snapshots
Virt Live Snapshots
Live snapshots allow a user to take a snapshot of a virtual machine while the guest is running, thus preserving the state and data of a VM at a specific point in time.
- Name: Cole Robinson
- Email: firstname.lastname@example.org
- Name: Jeff Cody
- Email: email@example.com
- Targeted release: Fedora 18
- Last updated: June 6 2012
- Percentage of completion: 90%
QEMU has had snapshotting capabilities for a long time, but they have always required the guest to be paused/stopped for a short period of time while the storage was snapshoted. Live snapshots allow for qemu and libvirt to snapshot a the guest's storage with no downtime. This even works on guests with 'raw' disk images: libvirt will snapshot using an external qcow2 file, and transparently switch the guest over to running off the new external image.
Benefit to Fedora
- Snapshots can be performed on guests using any storage configuration (utilizing external qcow2 snapshots)
- No downtime during the snapshotting process.
- Live snapshot support in qemu (DONE, 1.1 is in rawhide/f18)
- Live snapshot support in qemu-ga (DONE)
- Live snapshot support in libvirt (DONE)
- Apps (all optional but would be nice if they are done)
- Snapshot support in ovirt? (unknown)
- Snapshot support in virt-manager? (not done)
- Snapshot support in boxes? (probably out of scope)
How To Test
Any guest KVM guest can be snapshotted using external snapshot files. Simplest way:
virsh snapshot-create-as myvm snapshot1 "snapshot1 description" --disk-only --atomic virsh snapshot-create-as myvm snapshot2 "snapshot2 description" --disk-only --atomic
(however --atomic claims to only work for a guest with 1 disk. isn't that what jtc's patches were meant to fix? maybe just a libvirt validation issue)
You make some changes and want to switch back to an older snapshot state, you do:
virsh snapshot-revert myvm snapshot1
(however this doesn't work right now?: revert to external disk snapshot not supported yet)
If you want to delete a snapshot, use:
virsh snapshot-delete myvm snapshot2
(that also doesn't work: deletion of 1 external disk snapshots not supported yet)?
If the guest has qemu-ga installed and configured, passing --quiesce to snapshot-create-as will make sure the guest's filesystems are frozen for extra safety.
--atomic should ensure all disks are snapshotted atomically
Virtualization users will have a more production ready mechanism for snapshotting than QEMU previously supported (no loss of uptime). Exposing snapshotting in tools like ovirt and/or virt-manager will essentially be a new and compelling feature for those users.
Since this is brand new functionality, if it doesn't make it in time for F18, nothing has changed. We just drop this feature page.
- KVM and libvirt now support storage snapshotting of live guests with no downtime.