[Lguest] lguest stop/restart and guest (live?) migration

Rusty Russell rusty at rustcorp.com.au
Wed May 27 11:56:45 EST 2009


On Tue, 26 May 2009 02:58:16 pm Matias Zabaljauregui wrote:
> Hi,
>
>    I'm already late with this year's lguest agenda, so while I'm trying
> to finish with PAE support details (i hope), I'd like to start learning
> about the backgrounds of my next project: guest migration.
>
> I suppose that the first and easier step could be the implementation of
> "stop and restart guests" functionality. Then extend it to send the
> "guest state" through a socket.  And finally, i could try to use kvm's
> algorithm for LIVE migration.
>
> It would be really helpful if you could please give me some initial
> hints and advices like :
>
>       * design preferences you may have
>       * related documentation
>       * source files with reference code from xen or kvm
>       * any other ideas regarding guest stop/restart and migration

I'd start with save and restore.  All we really need is a method of setting 
and restoring guest state, which should then also be used to boot the guest 
(with sanity checks).

Something like:
LHREQ_GETREGS /* + addr */
LHREQ_SETREGS /* + addr */

Live migration is harder.  One idea would be to hand unservicable page faults 
back to the Launcher: then it can unmap pages as it sends them and remap them 
if they're needed again.   The problem is that the latest lguest uses threads 
for all the devices, and those device accesses will need to be aware of the 
unmapped pages too.  I'm sure there is a neat solution somewhere though 
(perhaps when we're migrating all I/O goes via the main Launcher process 
again).

Thanks!
Rusty.




More information about the Lguest mailing list