[libvirt] [RFC]: Snapshot API

Paolo Bonzini pbonzini at redhat.com
Wed Mar 24 14:40:54 UTC 2010

On 03/24/2010 02:09 PM, Chris Lalancette wrote:
> The problem, though, is what Mattias points out; there is no (easy) way
> that, given state C, I can get back to state A to make a new snapshot.
> I actually have to be at state A to take a new snapshot with a parent of
> A.  I think this is a place where we have to make it manual; if you really
> want a new snapshot that is a child of A, you'll have to manually shutdown
> your domain, boot to snapshot A, then take a snapshot of A.

Yes, exactly.  See my description of --inactive below.

> >  If you do not want to allow setting the parent, you can also add a flag
> >  --inactive to virsh snapshot-create that would create the snapshot
> >  without making it active.  Then you would make<parent>  an informational
> >  field about which snapshot was*active*  when the new one was created.
> That's more or less what the<parent>  field is supposed to mean, although
> I'm not sure I understand your proposal about --inactive.  How would you
> go about doing that?

Say you were on snapshot A and the guest has a problem.  The easiest fix 
is reverting to snapshot A, but you want to investigate it anyway.  You 
create snapshot B with --inactive and, if you want, you can move the 
snapshot to another machine to activate it and look at it more calmly.

If the problem reproduces, you can create another inactive snapshot, and 
so on.

Alternatively, say the easiest fix is stopping and starting a daemon, 
but again you want to keep a snapshot to investigate it anyway.  You can 
create the inactive snapshot B and stop/start the daemon _while the 
system is live and running under snapshot A_, i.e. without manually 
shutting down and rebooting.

Is this clearer?


More information about the libvir-list mailing list