|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Xen, MirageOS, and Unikernel Migration
On Thu, May 19, 2016 at 04:46:06PM +0100, Vittorio Cozzolino wrote:
> Hi,
>
> I'm experimenting a bit with VM migration in XEN. Right now I'm trying to
> migrate a MirageOS Unikernel from one server to another without success. The
> image that I'm migrating is a customized version of the simple "hello"
> example that can be found in the mirage-skeleton repo. Both my server
> machines run Ubuntu 14.04 and have Xen 4.6, moreover, migration works for a
> normal VM image (like Alpine Linux).
>
> Anyway, this is the trace generated by the migrate command:
>
> Saving to migration stream new xl format (info 0x3/0x0/966)
....
> xc: debug: hypercall buffer: cache hits:21 misses:2 toobig:6
>
> I suppose the migration fails due to a problem with the shutdown command?
> I'm not an expert of XEN, I just started learning, so any
> remark/comment/suggestion is welcome.
>
Hi Vittorio,
Migration of PV guests requires some cooperation from the guest. The basic idea
is
that the VM actively watches for a request to suspend (migration is built
around
suspend-resume), and it then unhooks itself from everything that it knows about
the
real hardware it's running on, calls a function that returns only when the VM
is
now running on the new hardware, and then reestablishes all the links to the
real
machine. MiniOS, the base Xen OS Mirage is using doesn't currently support
this.
However, I have a branch with some experimental code to support it on my fork.
You'll need to pin both minios-xen and mirage-xen to make it work:
opam pin add -n -y mirage-xen \
git://github.com/jonludlam/mirage-platform#reenable-suspend-resume2
opam pin add -n -y minios-xen \
git://github.com/jonludlam/mini-os#suspend-resume3
Additionally, you'll need to manually watch xenstore so your VM notices the
request
to suspend.
We've got a mirage VM that uses all this that we use for testing XenServer -
it's
available here: https://github.com/xapi-project/xen-test-vm - the code for
watching
for the suspend trigger is here:
https://github.com/xapi-project/xen-test-vm/blob/master/src/mirage_vm.ml#L97-L147
I've not tried it with xl directly, but it works for us on XenServer. I'd be
very
interested to hear if you can get it to work!
Jon
> Best regards,
> Vittorio
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |