Rump kernel based QEMU stubdomain Wei Liu Seattle August 17-18, - - PowerPoint PPT Presentation
Rump kernel based QEMU stubdomain Wei Liu Seattle August 17-18, - - PowerPoint PPT Presentation
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
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