OSv – The OS designed for the Cloud

8,119 views

Published on

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

Published in: Technology

OSv – The OS designed for the Cloud

  1. 1. OSv Designed for the cloud Lord Glauber Costa of Sealand glommer@cloudius-systems.coom Cloudius Systems
  2. 2. About myself ● ● ● ● Some contributions to Xen Extensive contributions to Linux and QEMU Early employee at Cloudius (#4), OSv после моего выступления, помочь мне практиковать (медленно пожалуйста)
  3. 3. 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
  4. 4. About Cloudius ● ● ● ● ● Founded in December 2012 ~15 people 9 countries Open source experience Linux Foundation member
  5. 5. About OSv
  6. 6. 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
  7. 7. Typical Cloud Stack Application Application Server JVM Operating System Hypervisor Hardware Protection and abstraction
  8. 8. “Library OS” ● ● ● ● ● Single application per VM No kernel and userspace separation No fork() MMU access via OSv APIs POSIX APIs for compatibility
  9. 9. “Library OS” Application Application Server JVM + OSv Hypervisor Hardware
  10. 10. Features
  11. 11. OS Services ● Scheduler ● Memory management ○ mmap ○ demand paging ● Networking ● File system ○ ZFS and ramfs
  12. 12. APIs ● Linux system calls ○ uname() reports Linux for compatibility ● libc ● OSv APIs
  13. 13. Architectures ● 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!
  14. 14. 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
  15. 15. Performance
  16. 16. Performance ● Outperforms Linux ○ SpecJVM, memcached, netperf ● Same as Linux ○ Tomcat ○ Cassandra ● < 1 second boot time ● 4x faster context switch in scheduler microbenchmarks than Linux
  17. 17. 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
  18. 18. How is OSv different?
  19. 19. Network channels ● 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
  20. 20. 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
  21. 21. JVM and MMU ● Replace GC card tables with MMU remapping ● Modified OpenJDK ● Azul C4’s GC uses similar MMU tricks on x86 ○ Out-of-tree Linux patches
  22. 22. Admin
  23. 23. 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
  24. 24. Roadmap Alpha Release 3/2014 Git init osv, 12/201 2 support for 64 vcpu 02/2013 Java hello world, 01/2013 ZFS support Cli and web > 1Gbps netperf, interface 6/2013 9/2014 UDP, 03/2013 Cassandra outperform s Linux, 8/2013 Native REST API Memcached gain > 70% 1/2014 Tomcat, HAProxy modules 10/2013 Optimized ZFS cache Dirty page writeback JVM page table HV support: GCE, VMW, VBox Net channels JVM ballooning >47Gbps netperf 2/2014 Image Repository JVM Read barrier elimination DPDK support More ...
  25. 25. So what about containers?
  26. 26. Containers ● Docker is awesome ○ Linux control groups not so awesome... ● Fast boot ● Fast provisioning ● Performance
  27. 27. Containers under the hood ● Shared kernel image ○ Kernel upgrades ○ Hardware maintenance ● Complexity in the kernel ● Copy-on-write userspace
  28. 28. 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”
  29. 29. That’s it!
  30. 30. 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

×