仮想化道場

Xen上にコンパクトな実行環境を作るクラウドOS「Mirage OS」

 アプリケーション実行環境のコンテナ化を行うDockerなど、仮想化環境において、ハイパーバイザ―以外の部分での進化が始まっている。今回は、6月末にバージョン2.0がリリースされたクラウドOS「Mirage OS」を紹介していこう。

クラウドOSとは?

 Mirage OSは、ハイパーバイザーのXen上で実行される環境で、アプリケーションが必要とするOS機能しか持っていないため、非常にコンパクトなサイズになっている。DNSサーバーは、標準的なビルドでは0.44MBだが、Mirage OS環境では0.18MBしか必要としない(Webサーバーは、標準環境は0.67MBで、Mirage OS環境では0.17MB)。

 通常、ハイパーバイザ―上でアプリケーションを動かすには、Xen上に仮想マシンを作成して、LinuxなどのOSをインストールしてから、アプリケーションを導入する。このように、ハイパーバイザ―の上にいくつもの階層を重ねることになる。

 通常のOSの仮想化技術では、フルファンクションのOSを複数動作できるようにするため、こういったアーキテクチャになっている。従って、単一の機能を実現する仮想アプライアンスなどにとっては、無駄な部分が大きくなってしまう。

 そこで発想されたのがクラウドOSというコンセプトだ。ハイパーバイザ―上で、アプリケーションが必要とする機能だけを提供し、OSとしての機能をコンパクトにして、アプリケーションのパフォーマンスをアップさせようというものだ。

 例えば、ハードウェアのCPUスケジューリング、メモリ管理、ネットワーク、ストレージなどは、ハイパーバイザ―が管理しているため、仮想マシン上のOSでは、動作するアプリケーションが必要とする最低限の機能があればいい。このように、仮想マシンで動作するOSを仮想化に適したモノへと進化させているのが、クラウドOSというビジョンだろう。

 なおMirage OSのようなクラウドOSとしては、Linuxのハイパーバイザ―KVMの開発エンジニアが立ち上げたベンチャー企業、Cloudius Systemsが開発しているOSvがある。

 OSvは、XenやKVMなどのハイパーバイザ―上で動作する専用OSで、Java仮想マシン上でのアプリケーション開発をメインにしている。このため、Tomcat、JBoss、SpringSourceなどのJavaフレームワークとの統合性を持っている。さらに、Java仮想マシン上のJavaScript、Scala、Clojureなどをサポート。これ以外にも、jRubyとJythonを利用してのRubyやPythonなど、Java以外のアプリケーション環境もサポートしている

Mirage OSは非常にコンパクト。Xen上で動作する938kBのUnikernelとなっている
Mirage OSに移植されたアプリケーションは、非常にコンパクトになる

(山本 雅史)