Rump kernel based QEMU stubdomain Wei Liu Seattle – August 17-18, 2015
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Agenda ◮ Background ◮ Introduction to rump kernel ◮ Why rump kernel ◮ What are required for QEMU stubdomain ◮ Status of upstream QEMU stubdomain Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 2 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Background ◮ Feature parity with QEMU traditional ◮ so that we can eventually use QEMU upstream for everything ◮ Most secure option for sandboxing QEMU ◮ But be aware of the downside: extra resources required Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 3 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Introduction to rump kernel Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 4 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Why rump kernel Options we considered: ◮ Roll our own ◮ Linux based ◮ OSv based ◮ Rump kernel based Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 5 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Why rump kernel Roll our own: ◮ Like QEMU traditional stubdom ◮ Require much work to maintain ◮ QEMU upstream changes a lot Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 6 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Why rump kernel Linux based: ◮ Anthony Perard built a prototype ◮ Hard to build ◮ Hard to distribute Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 7 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Why rump kernel OSv based: ◮ Provides toolchain to turn application to VM ◮ No C++ expertise ◮ No PV support (yet) Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 8 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Why rump kernel Rump kernel based: ◮ Provides toolchain to turn application to VM ◮ NetBSD code base ◮ POSIX-y interface ◮ Many NetBSD infrastructures available ◮ Lots of utilities for debugging (with the help of syscall proxy) ◮ PV support Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 9 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective What are required To build a QEMU stubdomain: ◮ Xenbus driver ◮ Privcmd driver ◮ Grant table driver ◮ Tap (and bridge) device ◮ Communication channel between toolstack domain and QEMU Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 10 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective What are required How are they done in QEMU traditional stubdomain ◮ Various drivers: libxc hooked up to mini-os ◮ Tap device: hacked together, dump traffic to vif ◮ Communication: via special consoles Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 11 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective What are required How are they (going to be) done in QEMU upstream stubdomain ◮ Various drivers: rump kernel hooked up to mini-os ◮ Tap (and bridge) device: provided by NetBSD ◮ Communication: libvchan or TCP network Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 12 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Things done so far ◮ All required Xen drivers upstreamed in rump kernel ◮ Bridge and tap drivers enabled ◮ QEMU built as unikernel ◮ Build a bunch of prerequisite libraries ◮ Build QEMU with prerequisite libraries ◮ Able to run with –help and exits Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 13 / 19
Agenda Xen 4.6 timeline Development update Xen 4.6 Retrospective Problems need to be solved ◮ Bootstrap rump kernel to certain state ◮ Network topology setup etc ◮ Currently use a simple program to do that ◮ Stabilise toolchain and utilities ◮ Wish to use rumprun directly from libxl ◮ Currently not sure if it meets every requirement we have ◮ How to build QEMU stubdomain ◮ Currently done with a hacked-up script ◮ Building should be done with Raisin, don’t want to put into Xen tree Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 14 / 19
Thank you! Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 15 / 19
Recommend
More recommend