QEMU guest-assisted snapshotting
Goals: 1. Add snapshot support for Cinder backing stores which lack internal snapshots (NFS, Gluster, etc.)
- QEMU/libvirt live snapshot support
- QEMU guest agent installed (for quiescing)
Currently, GlusterFS + Cinder does not support snapshots. Snapshot support can be enabled by storing volume data as QCOW2 files on Cinder volumes rather than as flat raw files (as is done today), and leveraging QCOW2's snapshot functionality.
Creation of Snapshot:
- User calls cinder snapshot-create vol
- Cinder asks Nova to quiesce and pause VM. Failure to quiesce only = snapshot failure if the user sets an option to ask for this, otherwise fall back to crash-consistent snapshot.
- Create QCOW2 snapshot of volume on GlusterFS/NFS
- Cinder asks Nova to resume VM
The snapshot can then be managed like any other Cinder snapshot.
Changes required for Cinder QCOW2 volumes:
- Cinder code to create them (per-driver code & options)
- Cinder code to translate/process them for operations like upload-to-image, backup_create, clone
- Possibly DB information tracking type (qcow2 or raw) - if needed