BEA LiquidVMが高い性能とメモリ使用効率を実現できるわけ
ベースとなるBare Metalオペレーティングシステムは、LinuxやWindowsなどのOS機能のサブセット的な機能を提供。メモリ管理やスレッド管理、TCP/IPネットワーク、ファイルシステム、ハイパーバイザ連携など、仮想化に必要な最小限のOS機能が搭載されている。
フル機能のオペレーティングシステムと比較して、Bare Metalオペレーティングシステムには、単一のJVMプロセスしか稼働できなかったり、また、ページングのサポートやデバイスドライバがない、JNIがサポートされていないなどの相違がある。
とはいえ、本来Bere Metalオペレーティングシステムは、単一JVMプロセスを動作させるため、極限までフットプリントを小さくしたOSのサブセットであり、JVMとハイパーバイザという二つの仮想化レイヤの橋渡しに徹するように設計されている。
アプリケーションサーバを構成する一般的なシステム構成として、1物理サーバに1 アプリケーションサーバインスタンスという方式がよく利用されることから、ページングによるOS仮想メモリ機能は冗長だと考えられたためだ。デバイスドライバについては、ハイパーバイザが提供する機能を流用することで解決される。
通常のJVMとの違いで、実用上最もインパクトがあるのは、JNIサポートのないことだろう。JDBC type2ドライバなどネイティブコードに依存するJ2EEコンポーネントは利用できないため、type4ドライバを使うなどの工夫が必要になる。
さらにLiquidVM 1.0では、ローカルストレージにアクセスすることができずNFSを使用しなければならなかった。しかし最新バージョンであるLiquidVM 1.1では、この制約が撤廃されている。
ハイパーバイザ上での動作を前提とすることで、BEA LiquidVMは、一般的なオペレーティングシステムに比べて高い性能とメモリ利用効率を実現している。概要については、「仮想化Java環境のスループットを2倍に--BEA LiquidVMの適応型メモリ管理」も参照してほしい。
LiquidVMを構成するその他コンポーネントの中で、LiquidVMサービスは、SSHサービスの実装やSyslog出力、ヒープのリサイズなどの機能を提供するもので、すべてJavaで実装されている。さらに、LiquidVMツールは、LiquidVMの生成や起動、停止などの操作を行うためのツールで、WindowsやLinux、UNIX上で動作する。
LiquidVMでは、Bare Metalオペレーティングシステム、LiquidVMサービス、LiquidVMツールで構成されるJavaアプリケーションサーバ仮想化インフラの上で、Linux版のBEA JRockit JVMがJavaアプリケーションに最適な稼働環境を提供する。
LiquidVM 1.0ではJRockit 26.4(JDK 5、32ビット)が、LiquidVM 1.1ではJRockit 27.3(JDK 5、32ビット)がサポートされている。BEA JRockit JVMの詳細は、BEAのウェブサイト(http://www.beasys.co.jp/products/weblogic/jrockit/)で紹介されているのでそちらを参照してほしい。
- ホワイトペーパー



