2010/3/29 Chris Lalancette <clalance@xxxxxxxxxx>: > Hey Mattias, > I'm currently working on the semantics of > virDomainSnapshotDelete(), which has been renamed from > the earlier virDomainSnapshotDeactivate(). In qemu/kvm, > it seems like it is possible to delete a snapshot at any > time, even while that snapshot is running (though I'm not > yet sure exactly what happens in that case). Talking > to Jirka, it seems like the virtualbox GUI doesn't allow you to > do any operations at all on snapshots while a domain is running, > although we don't know yet if this is a restriction in the > API as well. > My questions for you are about how ESX handles this situation: > > 1) Can you manipulate a domain's snapshots while that domain is > running? Yes, ESX allows to freely delete snapshots and switch between them while the domain is running. > 2) If so, can you delete the snapshot that is currently running? > If so, what happens? Yes, ESX allows to delete any snapshot at any time, no restrictions. For example base -> A -> B -> C -> current state C is the snapshot "that is currently running". If I delete C it gets merged into its parent B base -> A -> B ------> current state and everything is fine. I tested this and some other scenarios, everything works as expected. Some words about the MERGE and DISCARD flags for virDomainSnapshotDelete: ESX has RemoveSnapshot and RevertToSnapshot functions. RemoveSnapshot merges a snapshot into its parent, so the MERGE flag is simple. In order to DISCARD a snapshot, you need to go back to it first using RevertToSnapshot and then discard it and its children (if any) using RemoveSnapshot. A minor problem here is that RevertToSnapshot may start the domain if the domain was running at the time the snapshot was created. With ESX4 VMware added a flag to the RevertToSnapshot function to suppress a possible strat of the domain. Matthias -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list