osv – the os designed for the cloud

Post on 06-May-2015

4.799 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

A lot of the cloud discussion centers around which hypervisors are the best, and which management tools will simplify one's life the most. But is it the whole story? While addressing the problems from the lower and higher layers, the middle man -- the guest operating system -- is usually left behind. This talk will introduce OSv — a new from-scratch operating system written by a group of former Linux veterans designed specifically for cloud deployments. We will showcase the operating system architecture and explain the performance and manageability improvements that can be expected

TRANSCRIPT

OSvDesigned for the cloud

Lord Glauber Costa of Sealandglommer@cloudius-systems.coom

Cloudius Systems

About myself

● Some contributions to Xen● Extensive contributions to Linux and QEMU● Early employee at Cloudius (#4), OSv● после моего выступления, помочь мне

практиковать (медленно пожалуйста)

About Sealand

● Mightiest country on Earth● 0.025 m² area size● Fought and won a war (15 min) against UK● De facto recognition by Germany and UK

About Cloudius

● Founded in December 2012● ~15 people● 9 countries● Open source experience● Linux Foundation member

About OSv

OSv

● “Cloud OS” written from scratch● C++11● BSD licensed● Networking stack and ZFS imported from

FreeBSD○ We are modifying the networking stack○ Switching to OpenZFS in the future

Typical Cloud Stack

Application

Application Server

JVM

Operating System

Hypervisor

Hardware

Protection and

abstraction

● Single application per VM● No kernel and userspace separation● No fork()● MMU access via OSv APIs● POSIX APIs for compatibility

“Library OS”

“Library OS”

Application

Application Server

JVM + OSv

Hypervisor

Hardware

Features

OS Services

● Scheduler● Memory management

○ mmap○ demand paging

● Networking● File system

○ ZFS and ramfs

● Linux system calls○ uname() reports Linux for compatibility

● libc● OSv APIs

APIs

● Pure 64-bit OS● 64-bit x86

○ KVM○ Xen HVM○ Xen PV - incomplete○ VMware and VirtualBox - in progress

● 64-bit ARM - started!● Others - help wanted!

Architectures

Status

● JVM languages○ Java, JRuby, Scala, Groovy, Clojure, JavaScript

● JVM applications○ Cassandra○ Tomcat

● Other runtimes○ mruby○ I would love to see someone port Node.js...

● Native applications○ memcached○ haproxy

Performance

Performance

● Outperforms Linux○ SpecJVM, memcached, netperf

● Same as Linux○ Tomcat○ Cassandra

● < 1 second boot time● 4x faster context switch in scheduler

microbenchmarks than Linux

Image Size

● 17 MB minimal image○ kernel + libc

● 29 MB mruby image○ kernel + libc + mruby

● 465 MB default image (!)○ kernel + libc + openjdk○ openjdk is 127 MB○ ZFS intent log related, working on a fix

How is OSv different?

● Linux network channels by Van Jacobson○ Proposed in 2006, never merged○ Packet processing overhead reduced by 25% for 1

CPU and 20% for 2 CPUs (source: lwn.net)● Network channels in OSv

○ Channel connected to the application● Netperf throughput increases 30% from ~36

Gbps to ~47 Gbps○ Linux on host, OSv in guest

Network channels

JVM Balloon

● GC heap autotuning● Steal memory from JVM on OS memory

pressure● Running on unmodified JVM

○ Compacting GC causes interesting problems● Nice presentation at our youtube channel

● Replace GC card tables with MMU remapping

● Modified OpenJDK● Azul C4’s GC uses similar MMU tricks on

x86○ Out-of-tree Linux patches

JVM and MMU

Admin

OS Admin

Traditional OS● Built for a standalone desktop● CLI oriented● Human oriented● File base configuration● Hard to automate

Cloud OS● Built for mass deployment● API oriented● Machine oriented● API base configuration● Easy to automate

Alpha Release3/2014

Optimized ZFS cacheDirty page writebackJVM page tableHV support:GCE, VMW, VBox

Git init osv, 12/2012

Java hello world, 01/2013

support for64 vcpu 02/2013

UDP, 03/2013

ZFS support> 1Gbps netperf, 6/2013

Cassandra outperforms Linux, 8/2013

Native REST APIMemcached gain > 70%1/2014

Cli and web interface9/2014

Tomcat,HAProxy modules10/2013

Net channelsJVM ballooning >47Gbps netperf 2/2014

Image RepositoryJVM Read barrier eliminationDPDK supportMore ...

Roadmap

So what about containers?

Containers

● Docker is awesome○ Linux control groups not so awesome...

● Fast boot● Fast provisioning● Performance

Containers under the hood

● Shared kernel image○ Kernel upgrades○ Hardware maintenance

● Complexity in the kernel● Copy-on-write userspace

OSv - best of both worlds?

● Fast boot, fast provisioning, performance● Virtualized

○ Saner abstraction layer○ Stronger Isolation○ Heterogeneous datacenter○ MMU access, and other hardware primitives

● Great blog post on Google+ “OSv vs containers”

That’s it!

Thank you!

● Web○ http://osv.io

● Github○ http://github.com/cloudius-systems/osv

● Mailing List○ osv-dev@googlegroups.com

● You should follow us on Twitter:○ @CloudiusSystems

top related