SlideShare a Scribd company logo
OSvのご紹介 in 
Java 8 HotSpot meeting 
Takuya ASADA <syuu@cloudius-systems> 
Cloudius Systems
自己紹介 
• @syuu1228 on Twitter 
• Software Engineer at Cloudius Systems 
• FreeBSD developer (bhyve, network stack..) 
• カーネル/VM探検隊 初代主催者 
• Software Designで「ハイパーバイザの作り方」 
を連載中
Cloudius Systemsについて 
• OSvの開発母体(フルタイムデベロッパで開発) 
• Office:Herzliya, Israel 
• CTO : Avi Kivity → Linux KVMのパパ 
• 他の開発者:元RedHat(KVM), Parallels(Virtuozzo, OpenVZ) etc.. 
• イスラエルの主な人物は元Qumranet(RedHatに買収) 
• 半数の開発者がイスラエル以外の国からリモート開発で参加 
• 18名・9ヶ国(イスラエル在住は9名)
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvの概要
OSvとは? 
• OSvは単一のアプリケーションをハイパーバイザ・IaaSでLinuxOSな 
しに実行するための新しい仕組み 
• より効率よく高い性能で実行 
• よりシンプルに管理しやすく 
• オープンソース(BSDライセンス)、コミュニティでの開発 
• http://osv.io/ 
• Kivity, Avi, et al. "OSv—Optimizing the Operating System for 
Virtual Machines." 2014 USENIX Annual Technical Conference 
(USENIX ATC 14). USENIX Association, 2014.
1つのアプリだけ 
実行したいユースケース 
Javaアプリ 
JVM 
ゲストOS 
ハイパーバイザ 
ホストOS 
デカいゲストOSは 
余計なオーバヘッドでは? 
Javaアプリ 
JVM 
ハイパーバイザ 
ホストOS
解決策:ライブラリOS 
Javaアプリ 
JVM 
OSv 
ハイパーバイザ 
ホストOS 
出来るだけ改造しない 
ここで環境の違いを吸収
OSv=ライブラリOS 
• OSを利用するために呼び出すLinux APIをライブラリのような 
形式で提供 
(glibcへの限定的な互換性を提供) 
• 言語ランタイムはなるべく改造しないで移植可能にする 
(OpenJDK/Linux x86_64バイナリが動く) 
• API提供に必要な機能は実装 
(ファイルシステム=ZFS、TCP/IP、スレッド&SMP) 
• フルサイズのOSとは構造の異なる薄いレイヤ 
(単一プロセス、単一メモリ空間、全てカーネルモード)
動作環境 
• ハイパーバイザ 
• KVM 
• Xen 
• VMware 
• VirtualBox 
• IaaS 
• Amazon EC2 
• Google Compute 
Engine
対応アプリ 
(Java) 
• OpenJDK7,8 
• Tomcat 
• Cassandra 
• Jetty 
• Solr 
• OpenDaylight 
• Gitblit 
• Clojure 
• JRuby(Ruby on Railsなど) 
• Ringo.JS 
• Jython 
• Erjang 
• Scala 
• Quercus(PHPエンジン、 
Wordpressなど) 
• minecraft-server 
• Oracle NoSQLDB
対応アプリ 
(Java以外) 
• Ruby 
• WEBRick 
• Ruby on Rails 
• Publify(Railsベースのブログエンジン) 
• mruby 
• lua 
• Node.js
何が動くの? 
(ネイティブアプリ) 
• haproxy 
• memcached 
• MySQL 
• LevelDB 
• SQLite 
• twemproxy
フットプリント 
(ディスクイメージサイズ) 
• mruby = 14MB 
• Ruby = 48MB 
• OpenJDK = 77MB
デモ
OSvのフットプリント 
と性能
フットプリント 
(最低メモリ使用量) 
• mruby = 65MB 
• Ruby = 75MB 
• OpenJDK = 110MB
ブート時間 
• 1秒(DHCP、ZFS初期化込み)
SPECjbb2005(Java) 
• 120% faster than 
Linux guest 
41000 
30750 
20500 
10250 
0 
OSv Fedora 
score
iperf(network) 
• 186% faster than 
Linux guest 
21 
15.75 
10.5 
5.25 
0 
OSv Fedora 
Gbps
fsmark 
• 142% faster than 
Linux guest 
220 
165 
110 
55 
0 
OSv(ZFS) 
Linux(ZFS) 
Linux(ext4) 
files/sec
memcached 
• ※ネットワークスタッ 
クを迂回する独自版 
memcachedでの比較 
• 280% faster than 
Linux guest 
8000 
6000 
4000 
2000 
0 
OSv Fedora 
score
OSvの周辺機能
OSvをプログラムから操作 
「REST API」 
• REST API経由でOSvに任意の操作を実行 
• 従来のOS:コマンド実行やファイルの編集で設 
定を変更 
(手動が基本、シェルスクリプトなどで自動化) 
OSv:APIで設定を変更 
(自動化が基本、CLIはオプション)
OSvを対話的に操作 
「Lua CLI」 
• 簡易的なシェル機能を実現 
• 全ての機能をREST API上に実装 
• デフォルトではOSv上で実行されるが、リモー 
トホストで実行してSSH代わりに使用可能
初期化スクリプトを 
サーバからダウンロード&実行 
「Cloud Init」 
• ネットワーク上からYAMLをダウンロードしてき 
て、ダウンロードしたファイルに記述されてい 
るREST APIを順次実行
OSv GUI 
• WebベースのGUI 
• OSの負荷、JVMのリソース情報、アプリの 
statisticsなどの統計情報を表示 
• Virtual applianceとしてOSvを使うことを前 
提にCassandra, memcached, Redisなどの 
アプリの情報を表示する機能を実装中
a
簡易デプロイツール 
「Capstan」 
• 色々なアプリがインストールされたOSvのVMイ 
メージを、コンパイルなどの難しい作業なしに手 
軽に実行するツール 
• Linux, Mac, Windowsで動作 
• VirtualBox, VMware, KVMなどに対応
クラウドへのデプロイ 
• Amazon EC2 
• AMIを配布中 
• Google Compute Engine 
• capstanからアップロード可能
OSvにおけるJavaの拡 
張
JMX on REST API 
• JMXのMBeanへREST API経由でアクセスが出 
来る 
• Javaアプリケーションの内部情報を取得・変更 
することが可能 
• JMX APIとJolokiaベースの2つの実装が存在
JVMマルチテナント 
• 1つのVMでは通常1つのmainメソッドを含むプログラム 
しか実行出来ない 
• OSvは単一プロセスなので1つのJavaアプリしか起動出 
来ない 
• マルチテナントをサポートするクラスローダを独自に実 
装し、複数のmainメソッドを含むプログラム群をロード 
&実行するような仕組みを実装 
• JVM自体のコードは無変更
JVM ballooning 
• OS起動時にほぼ全てのメモリをJVMヒープに割り当て 
• OS側のメモリが足りなくなってきたらOSへコールバッ 
クAPIを使って通知 
Java側でByteArrayを作成し(GC対策)この領域をOS 
側へ返還 
• OSが使わないメモリ領域は引き続きJava側が使用出来 
る 
• JVM自体のコードは無変更
OSv API 
• ELFバイナリのロード&実行 
• リブート 
• ARPテーブル、ルーティングテーブルの編集 
• IPアドレスの設定、DHCPクライアントの制御 
• JVM Balloon API 
• カーネルトレースポイント API
Javaアプリの移植
Rhinoの例 
• Makefileでzipをwget、unzip 
• Capstanfileでjs.jarをOSvのFSへ展開
Makefile 
.PHONY: all 
all: 
wget ftp://ftp.mozilla.org/pub/mozilla.org/ 
js/rhino1_7R2.zip 
unzip -x rhino1_7R2.zip
Capstanfile 
base: cloudius/osv-openjdk 
cmdline: /java.so -jar /js.jar 
build: make 
files: 
/js.jar: rhino1_7R2/js.jar
ビルド&実行 
[syuu@devil rhino]$ capstan build 
Building rhino... 
Downloading cloudius/osv-openjdk/index.yaml... 
149 B / 149 B 
[====================================================== 
] 100.00 % 
Downloading cloudius/osv-openjdk/osv-openjdk.qemu.gz... 
70.82 MB / 70.82 MB 
[================================================] 
100.00 % 
[syuu@devil rhino]$ capstan run 
Created instance: rhino 
OSv v0.13 
eth0: 192.168.122.15 
Rhino 1.7 release 2 2009 03 22 
js>
コミュニティ活動
コミュニティ活動 
• 東京 - 毎月開催 
• 大阪 - 予定中、参加者募 
集
OSC 
• 関西と関東のOSCに出 
展
日本語情報 
• osv-ja-wiki 
• github.com/syuu1228/osv-ja-wiki
OSvのご紹介 in 
Java 8 HotSpot meeting

More Related Content

PDF
OSv噺
PDF
Presentation on your terminal
PDF
OSvのご紹介 in OSC2014 Tokyo/Fall
PDF
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
PDF
コンテナ事例 CircleCI, Cucumber-Chef
PDF
XenServer Overview
PDF
introduction of WalB
KEY
Clojureの発表など
OSv噺
Presentation on your terminal
OSvのご紹介 in OSC2014 Tokyo/Fall
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
コンテナ事例 CircleCI, Cucumber-Chef
XenServer Overview
introduction of WalB
Clojureの発表など

What's hot (19)

PPTX
Containerで変わるDevOps
PDF
Using LXC on Production
PPTX
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
PPTX
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
PDF
フィードフォースと AWS と私
PDF
Kubernetesを触ってみた
PPTX
社内勉強会(Docker)
PDF
DockerとKubernetesが作る未来
PDF
Vsug day 2010 summer windows azure でやってみよう
PPTX
Introduction to arm virtualization
PDF
VagrantユーザのためのDocker入門
PDF
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
PDF
Couch DB in 15minutes
PDF
CephとGluster次期バージョンでの新機能
PDF
AWSとGCPを使用したインフラ環境
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
Bossan dentoo
PDF
Cloudn PaaSチームのChatOps実践
Containerで変わるDevOps
Using LXC on Production
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
フィードフォースと AWS と私
Kubernetesを触ってみた
社内勉強会(Docker)
DockerとKubernetesが作る未来
Vsug day 2010 summer windows azure でやってみよう
Introduction to arm virtualization
VagrantユーザのためのDocker入門
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
Couch DB in 15minutes
CephとGluster次期バージョンでの新機能
AWSとGCPを使用したインフラ環境
【dots. IT勉強会】開発環境のDocker化
Bossan dentoo
Cloudn PaaSチームのChatOps実践
Ad

Viewers also liked (20)

PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
PDF
UEFI時代のブートローダ
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
PDF
OSvの概要と実装
PDF
OSv at Cassandra Summit
PDF
ヤマノススメ〜秋山郷 de ハッカソン〜
PDF
Ethernetの受信処理
PDF
10GbE時代のネットワークI/O高速化
PDF
マルチコアとネットワークスタックの高速化技法
PDF
デバドラを書いてみよう!
PDF
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
PPSX
Решение по управлению web-контентом от компании Oracle.
ODP
Impress Usa 05
PDF
Driving at Work HSE Guide
PPSX
B E L G R A D E
ODP
Joomla! turvalisuse tagamine
PPT
Risk Managers Presentation
PPS
Propozycja przebudowy układu drogowego w rejonie Karolina i Koziegłów
PPT
Copying Isn’T Cool
PPS
Arapski Brojevi
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
UEFI時代のブートローダ
Seastar in 歌舞伎座.tech#8「C++初心者会」
OSvの概要と実装
OSv at Cassandra Summit
ヤマノススメ〜秋山郷 de ハッカソン〜
Ethernetの受信処理
10GbE時代のネットワークI/O高速化
マルチコアとネットワークスタックの高速化技法
デバドラを書いてみよう!
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
Решение по управлению web-контентом от компании Oracle.
Impress Usa 05
Driving at Work HSE Guide
B E L G R A D E
Joomla! turvalisuse tagamine
Risk Managers Presentation
Propozycja przebudowy układu drogowego w rejonie Karolina i Koziegłów
Copying Isn’T Cool
Arapski Brojevi
Ad

Similar to OSvのご紹介 in 
Java 8 HotSpot meeting (20)

PDF
20121119.dodai projectの紹介
PDF
OSvパンフレット v3
PDF
OpenStack入門 2016/06/10
PDF
OpenStack概要
PPTX
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
PPTX
Osoljp201204
PDF
about dodai project in OSC 2012.Cloud
PPTX
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
PDF
OpenStackで始めるクラウド環境構築入門
PDF
OSC 2011 Tokyo/Spring OpenStackプレゼン
PDF
初心者がOpenIndianaで自宅サーバを作ったよって話
PDF
OpenStack Updates
PDF
OpenStackで始めるクラウド環境構築入門
PPTX
Guide to GraalVM (JJUG CCC 2019 Fall)
PDF
Dodai projectの紹介
PDF
NetBSD, On the ROAD 2016
PPTX
OSSのクラウド基盤 OpenStack / CloudStack
PDF
OSC2013 Tokyo Spring OpenStack Overview
PDF
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
PPTX
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
20121119.dodai projectの紹介
OSvパンフレット v3
OpenStack入門 2016/06/10
OpenStack概要
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Osoljp201204
about dodai project in OSC 2012.Cloud
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
OpenStackで始めるクラウド環境構築入門
OSC 2011 Tokyo/Spring OpenStackプレゼン
初心者がOpenIndianaで自宅サーバを作ったよって話
OpenStack Updates
OpenStackで始めるクラウド環境構築入門
Guide to GraalVM (JJUG CCC 2019 Fall)
Dodai projectの紹介
NetBSD, On the ROAD 2016
OSSのクラウド基盤 OpenStack / CloudStack
OSC2013 Tokyo Spring OpenStack Overview
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」

More from Takuya ASADA (17)

PDF
Linux network stack
PDF
僕のIntel nucが起動しないわけがない
PDF
Interrupt Affinityについて
PDF
OSvパンフレット
PDF
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
PDF
「ハイパーバイザの作り方」読書会#2
PDF
「ハイパーバイザの作り方」読書会#1
PDF
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
PDF
仮想化環境での利用者公平性
PDF
仮想化環境におけるパケットフォワーディング
PDF
MMIO on VT-x
PDF
Implements BIOS emulation support for BHyVe
PDF
Play with UEFI
PDF
BHyVe: The BSD Hypervisor
KEY
OpenBSDな生活
PDF
/proc/irq/&lt;irq>/smp_affinity
PDF
Rps・rfs等最新linux kernel事例
Linux network stack
僕のIntel nucが起動しないわけがない
Interrupt Affinityについて
OSvパンフレット
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#1
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
仮想化環境での利用者公平性
仮想化環境におけるパケットフォワーディング
MMIO on VT-x
Implements BIOS emulation support for BHyVe
Play with UEFI
BHyVe: The BSD Hypervisor
OpenBSDな生活
/proc/irq/&lt;irq>/smp_affinity
Rps・rfs等最新linux kernel事例

OSvのご紹介 in 
Java 8 HotSpot meeting