DIOS A distributed Operating System for your Data Centre Malte - - PowerPoint PPT Presentation

dios
SMART_READER_LITE
LIVE PREVIEW

DIOS A distributed Operating System for your Data Centre Malte - - PowerPoint PPT Presentation

DIOS A distributed Operating System for your Data Centre Malte Schwarzkopf @ms705 University of Cambridge Computer Laboratory Abstraction turtles all the way down... JSON, Protobuf object Cluster-level tasks Cached in-memory object


slide-1
SLIDE 1

DIOS

A distributed Operating System for your Data Centre

University of Cambridge Computer Laboratory Malte Schwarzkopf @ms705

slide-2
SLIDE 2

JSON, Protobuf object Cached in-memory object GFS, HDFS “file” Cluster-level tasks User-level threads OS kernel processes VMs, Containers Hardware threads OS memory mapping Kernel VFS file

Abstraction turtles all the way down...

slide-3
SLIDE 3

BAD for...

Good for… abstraction portability scalability co-scheduling locality

  • ptimisations

data-flow tracking security

slide-4
SLIDE 4

The plan: vertically integrate abstractions

Distributed application Distributed infrastructure Distributed operating system All use: one distributed object abstraction

slide-5
SLIDE 5

Machine A Machine B

distributed file system cluster scheduler distributed KV store node kernel net stack naming/ caps thread sched node kernel net stack naming/ caps thread sched user job: web serving user job: log analysis user job: MapReduce

  • distr. name

service

DIOS

network coord.

slide-6
SLIDE 6

Narrow syscall API: 11 system calls Global naming: UUIDs for objects “Translucency”: contextual references

a3c93 f2379 8d ref_t kref_t Kernel User ref_id: 1234 name: a3c93f23798d access: rw- parent: fc1cbc79ca12 ref_id: 1234 persistent: false proximity: local fate_shared: true buf_size: 4k

slide-7
SLIDE 7

Host kernel

“Legacy” syscalls DIOS syscalls DIOS extensions

DIOS process Legacy process hybrid process

Cluster scheduler

slide-8
SLIDE 8

User Kernel

DIOS Adaptation Layer (DAL)

dios_dal_linux.ko

kernel patch (~500 LOC)

user process

DIOS core module

dios.ko

reference table name service

slide-9
SLIDE 9

Demo time!

(this is where the kernel crashes...)

slide-10
SLIDE 10

M M M R R

input word count lists map reduce

<”cat”, 1> <”dog”, 1> <”cat”, 1> <”fish”, 1> <”cat”, 2> <”dog”, 1> <”fish”, 1>

slide-11
SLIDE 11

Status: alpha (at best!)

Work in progress:

❖ High-level language support (working

  • n Rust runtime)

❖ libd C standard library ❖ MapReduce, web server, key-value store ...

slide-12
SLIDE 12

Malte Schwarzkopf @ms705

in collaboration with Matthew Grosvenor Ionel Gog Andrew Scull Matthew Huxtable Gustaf Helgesson Steven Hand

DIOS is a Cambridge Systems at Scale project: http://www.cl.cam.ac.uk/netos/camsas/

slide-13
SLIDE 13

Gratuitous Docker slide :)

❖ DIOS is Docker-compliant!

➢ isolate containers by restricting name resolution ➢ but DIOS objects can also be shared by containers ➢ Firmament scheduler can manage containers

❖ Benefits of DIOS + Docker

➢ data-flow tracking + IFC across containers ➢ can allow legacy syscalls within containers, but only DIOS syscalls on the host (“hypervisor mode”)

slide-14
SLIDE 14

Matrix multiplication (memory-bound) Pi approximation (CPU-bound)

12.6% miss 65.6% miss

~12,000 instr. per mem access ~40 instr. per mem access

Task monitoring

slide-15
SLIDE 15
slide-16
SLIDE 16

Concept slides

Bullet points follow!

slide-17
SLIDE 17

Why?

  • Vertical integration of abstractions

○ enables optimisations, e.g. co-scheduling, locality

  • Security, auditing, IFC

○ restrict and monitor data-flow ○ no way to bypass

  • Because we can :)
slide-18
SLIDE 18

How?

  • Narrow syscall API: 11 syscalls

○ co-exist with POSIX, or replace

  • Distributed object abstraction

○ object ~= “blob of bytes, stream of bytes or task”

  • Security: distributed capabilities

○ Names: resolvable identifiers ○ References: FD-like handles with context info

slide-19
SLIDE 19

Status?

  • Prototype: Linux kernel extension

○ Tiny kernel patch (~500 LoC) ○ Two kernel modules ■ Adaptation layer: GPL ■ DIOS core: BSD

  • HLL: Rust runtime port in progress
slide-20
SLIDE 20

Demo!

  • Simple streaming MapReduce

○ WordCount