Chris Lalancette found this problem:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=246105
<quote>
Once an "xm restore" has successfully completed, the -save file that it
came from should really be deleted. Restoring a domain a second time
from the same save file will result in disk corruption; the kernel VM
state (in the saved file) will be in an inconsistent state with respect
to what is actually on disk (in the domain disk file). The only valid
use I can see for the -save file after a restore is possibly for some
crash analysis, but even that could be worked around by renaming the
save file after a success. In particular, I just ran into this
situation (and I'm worried customers might do the same):
[and then he goes on to describe a scenario in which you can commonly
hit this situation]
</quote>
So the obvious and simple solution, it seems to me, is just to change
libvirt.c:virDomainRestore so that if the driver underneath it returns
from the restore without error, then we either remove or rename the
restore file.
It's a trivial patch -- what do people think?
My thoughts:
* Removing the file might seem quite abrupt/unexpected, and there is the
possibility of data loss.
* You have to rename the file as a hidden file (dotfile) in order for
xendomains to ignore it. However these files are big and having large,
hidden files which build up in number over time sounds like it could be
a bad thing.
* This might be considered a significant behaviour change.
* It's easier to handle this for the remote case if we make the change
inside libvirt, rather than in virsh etc.
Rich.
--
Emerging Technologies, Red Hat -
http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
England and Wales under Company Registration No. 03798903