Rump kernel based QEMU stubdomain Wei Liu Seattle August 17-18, - - PowerPoint PPT Presentation

rump kernel based qemu stubdomain
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Rump kernel based QEMU stubdomain

Wei Liu Seattle – August 17-18, 2015

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

Thank you!

Seattle – August 17-18, 2015 Rump kernel based QEMU stubdomain 15 / 19