OSv - A Modern Semi-POSIX LibraryOS Glauber Costa, Lead Engineer glommer@cloudius-systems.com
Typical Cloud Stack Application Runtime Protection Operating System and abstraction Hypervisor Hardware
Containers Application Application ● high simplicity ● high resource efficiency ● high performance Runtime Runtime Operating System Hardware
“Library OS” Application Application ● high simplicity ● high resource efficiency ● high performance Runtime + OS Runtime + OS ● high isolation Hypervisor Hardware
Architecture ● Only one application / many threads ● Single address space ● Network channels ● Written in C++11 ● User API - REST ● BSD licenced ● ZFS filesystem
Not the only one out there ● Other examples: Erlang-on-Xen, Mirage, ClickOS. ● But runs on wide range of Hypervisors ○ Xen, KVM/Qemu, VMWare, VirtualBox. ● Supports a quasi -POSIX API. ○ no fork(), no exec(), ○ largely Linux compatible. ● Less than 1s boot time. ○ as fast as needed , not as fast as possible .
quasi-POSIX ● Allow unmodified applications to work, ● and modified applications to shine.
Performance ● System calls are free ○ context switches are really cheap ( x 4 Fedora) ● Network performance significantly faster ○ around 20 % with netperf over Fedora Linux ○ more than 50 % for some UDP workloads ● I will show you concrete results at the end
What do people think? Roman Shaposhnik, Bigtop/Hadoop "Mark my words, GridGain [...] and OSv [...] are going to be excitingly disruptive in the next few years. […] And, by the way, if, after reading this blog, you are not dropping everything and porting your cloud application to OSv, I don’t know what’s wrong with you." http://blog.gopivotal.com/pivotal/features/pivotal-debuts-at-apachecon-north-america-2014-thanks-for-having-us
The Xen Situation ● We like HVM because it brings greater flexibility ○ Xen's HVM boot is really slow ○ Other than that, all other goodies are there ■ interrupt injection, pv devices, etc. ● PVH is viable, but no one looking at the moment. ○ We take patches! ● PV out of question ○ too complex, ○ technically not possible.
The Xen Situation - cont Stack Current Frame 128-byte Red Zone The Xen Hypervisor does NOT region respect that!
Will my application be fast? ● short answer: ○ yes ● short answer 2: ○ no ● Similar to Ahmdal's law, in the context of parallelism ○ no gains for 95 % CPU hungry userspace applications ● POSIX APIs poses a limitation.
Fresh from the Oven ● Cassandra NoSQL ● OSv vs CentOS 7 ● up to 25 % faster reads ○ 1 VCPU only
redis ● up to 80 % faster than Ubuntu 14.04 ○ 10 Gb networking ○ No specialized interfaces ○ we do have some problems, though ○ check our blog about it, details at http://osv.io/blog/
memcached ● unmodified, ○ brings a juicy improvement out of the box. ● modified: ○ that showcases the real performance opportunity behind OSv. That's already ~20 % more at http://osv.io/benchmarks/
To know more http://osv.io https://github.com/cloudius-systems/osv @CloudiusSystems osv-dev@googlegroups.com
Recommend
More recommend