On Monday 10 August 2009 02:48:10 Lucian Adrian Grijincu wrote:
Hello,
I see that the vbox driver in virDomainSave doesn't use the
destination file path and calls vbox's IConsole::SaveState.
As I see it IConsole::SaveState is more like a "pause" command: you
can save the state you're in and wait for the machine to stop running
and you can resume it later.
This limits the uses of the vbox support of libvirt.
There is another way you can do virDomainSave/virDomainRestore: use
snapshots. This way, you can specify the file in which you want to save the
snapshot, you can continue to use the machine and do some crazy
experiments and then restore the machine to the known good state.
As of the current implementation, I don't think there's a way to do
this in libvirt.
I'd like to know if there's a real reason why virDomainSave is
implemented this way (and virDomainRestore is unimplemented), or it
just got implemented like this and no one cared much about it.
Hi Lucian,
The reason for the current way for implementing virDomainSave is:
The iConsole::takeSnapshot() method is still inadequate in the sense that it
doesn't take file name as parameter. Secondly snapshots create UUID's and other
relevant data which is stored in the Machine's xml config file and it is simply
a no-no to change the xml settings manually and thus it is not an option to
manually copy that snapshot from current location to the one specified by the
virDomainSave libvirt call.
so until there is a fully developed API which can cleanly save the snapshot to
a file at given location, i guess the above method is likely to be near to what
is expected of virDomainSave().
Regards,
Pritesh