[libvirt] ESX snapshot deletion

Matthias Bolte matthias.bolte at googlemail.com
Mon Mar 29 23:25:58 UTC 2010

2010/3/29 Chris Lalancette <clalance at redhat.com>:
> 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

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.


More information about the libvir-list mailing list