ホスティング会社の VPS (Virtual Private Server) サービスでは、Virtuozzo が使われていることが多いようだ。Virtuozzo はハイパーバイザー型やホスト OS 型の仮想化製品と違い、仮想化を OS レベルで実現する。ハードウェアを抽象化したり、仮想化レイヤー上で複数のゲスト OS を動作させるわけではないためにパフォーマンスやサーバーの高密度化に有利とされ、データセンター等で 「同じ OS の仮想マシンを大量に動かす」 ような用途にはうってつけらしい。

今まで Virtuozzo に触れる機会はなかったが、幸い Linux 用 Virtuozzo のオープンソース版と言える OpenVZ があるので、自宅の VMware Server の仮想マシン (以下 VM) にインストールしてみた。OpenVZ は Virtuozzo と比較して、VM 群の集中管理機能や拡張機能や GUI な部分が省かれているが (と言うか OpenVZ にこれらを付加した商用製品が Virtuozzo)、コアになる仮想化機能は同等なので、自宅で試すにはこれで十分だ。

OpenVZ のインストール手順は、ここここ等、参考になるサイトがいくつかあるので省略。

実際に触れてみるとよくわかるが、「OS レベルの仮想化」 とは、独立した NIC を備えてリソース管理ができる chroot か、より厳格なリソース管理が可能な jail、と言ったところか。ホストのファイル・システム内に直に置かれる VM (OpenVZ 用語では VE と言うらしい) のファイル・システムをはじめ、柔軟かつスムーズなリソース管理等、各種コマンドを通じてホスト側から VM 環境を直接操作できる仕組みは、確かに大量の VM を管理するのに適している。

もちろん、いいことずくめなわけではない。ホストと VM でカーネルを共有すると言う仕組み上やむを得ないが、DRBD 等、カーネルモジュールが必要になるソフトウェアを VM レベルで使うことは、恐らく無理だ。従って OpenVZ 上の VM で HA クラスタリングを構築する場合は、何らかの共有ストレージが必要になる。また商用の Virtuozzo には Windows 版もあるが、OpenVZ は Linux でしか使えず、動作させられる VM は、専用カーネルが用意された (もしくは自作した) Linux ディストリビューションのみだ (OS テンプレートのダウンロードはこちら)。

まァ我が家では 「Linux 以外の OS も動作させたい」 「それほど多くの VM は必要ない」  「DRBD で HA 環境を構築済み」 等の事情から OpenVZ が実用化されることは今のところなさそうだが、業務では十分利用価値があると感じた。使いどころを間違えなければ、かなり有用そうだ。手持ちの駒が増え、選択肢が広がるのはありがたい。

Comments are closed.