On Fri, Mar 07, 2014 at 02:29:04AM +0000, Liuji (Jeremy) wrote: > Hi, all > > Current openstack seems not support to snapshot instance with memory > and dev states. I searched the blueprint and found two relational > blueprint like below. But these blueprint failed to get in the > branch. > > [1]: https://blueprints.launchpad.net/nova/+spec/live-snapshots [2]: > https://blueprints.launchpad.net/nova/+spec/live-snapshot-vms > > In the blueprint[1], there is a comment," We discussed this pretty > extensively on the mailing list and in a design summit session. The > consensus is that this is not a feature we would like to have in nova. > --russellb " But I can't find the discuss mail about it. I hope to > know why we think so ? Without memory snapshot, we can't to provide > the feature for user to revert a instance to a checkpoint.
I agree, it's a useful feature. Speaking from a libvirt/QEMU standpoint, with recent upstream versions, it's entirely possible to do a live memory and disk snapshot in a single operation. I think it's a matter of someone adding wiring up the support in Nova. In libvirt's parlance, it's called External 'system checkpoint' snapshot i.e: the guest's disk-state will be saved in one file, its RAM & device-state will be saved in another new file. NOTE: 'system checkpoint' meaning - it captures VM state and disk state; VM state meaning - it captures memory and device state (but _not_ "disk" state). I just did a quick test libvirt's virsh: 1. Start the guest: $ virsh start ostack-controller Domain ostack-controller started 2. List its block device in use: $ virsh domblklist ostack-controller Target Source ------------------------------------------------ vda /var/lib/libvirt/images/ostack-controller.qcow2 3. Take a LIVE external system checkpoint snapshot, specifying both disk file _and_ memory file: $ virsh snapshot-create-as --domain ostack-controller snap1 \ --diskspec vda,file=/export/vmimages/disk-snap.qcow2,snapshot=external \ --memspec file=/export/vmimages/mem-snap.qcow2,snapshot=external \ --atomic Domain snapshot snap1 created NOTE: Once the above command is issued, the original disk image of ostack-controller will become the backing_file & the new overlay image specified (disk-snap.qcow2) will be used to track the new changes. Here on, libvirt will use this overlay for further write operations (while using the original image as a read-only backing_file). 4. List the snapshot: $ virsh snapshot-list ostack-controller Name Creation Time State ------------------------------------------------------------ snap1 2014-03-11 20:01:54 +0530 running 5. Optionally, check if the snapshot file we specified (disk-snap.qocw2) is indeed the new overlay That's the versions I used to test the above: $ uname -r; rpm -q qemu-system-x86 libvirt 3.13.4-200.fc20.x86_64 qemu-system-x86-1.7.0-5.fc21.x86_64 libvirt-1.2.3-1.fc20.x86_64 Hope that helps. -- /kashyap _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev