|
|
Virtuozzoについては、昨年Linux用のVirtuozzo 3.0のレビューを行い、それ以前のバージョンについてもデンバーにあるホスティング企業との仕事で実際に触れた経験があったのだが、私の懐具合ではVirtuozzoのライセンス購入は厳しい。その点OpenVZなら何の問題もない。
では、VMwareやXenよりもOpenVZを使うべきなのはどんなときだろうか。それは状況次第なのだが、複数のOSを実行する必要がなく単純に複数のゲスト環境を必要とするタスク群が存在する場合、最小限のオーバーヘッドで大部分のハードウェアをサービス間で分割(たとえば、Webサーバをファイルサーバ兼プリンタサーバから分離)するには、OpenVZが好ましいと言える。しかし、Linuxのホスト上でLinux以外のオペレーティングシステム(FreeBSDやWindows Serverなど)を実行したい場合は、OpenVZ(およびその商用版でプロプライエタリな拡張版であるVirtuozzo)ではなくVMwareを使う必要があるだろう。OpenVZでは複数のOSを実行できないためだ。
OpenVZは、その他の仮想化ソフトウェアよりも多くのプラットフォームをサポートしている。VMware ServerとXenが利用できるのはx86とAMD64だけだが、OpenVZのほうはx86、AMD64、Itanium(IA64)、PowerPC、UltraSPARCで利用できる。なお、今のところDebian用のビルド済みPowerPCカーネルは用意されていないが、PowerPCではOpenVZがサポートされている。
OpenVZのインストール
OpenVZのゲストシステムは、任意のホストシステム上で実行することができる。私はゲストシステムをDebian上で実行しているが、Ubuntu、Fedora Core、Gentooなど、OSテンプレートが用意されている任意のディストリビューションが利用できる。OSテンプレートは、VPSの設置に使われるパッケージの集合である。なお、OpenVZの用語ではVPSを仮想環境(VE)と呼んでいる。
OpenVZのゲストシステム用DebianカーネルはOpenVZのリポジトリから入手できるが、現状ではEtchのものしか存在ない。この登場したばかりのカーネルとlinux-headersパッケージをOpenVZのリポジトリから取得したら、dpkg -i linux-image-2.6.18-openvz-686_02_i386.deb とdpkg -i linux-headers-2.6.18-openvz-686_02_i386.deb の実行によってインストールを行う。ただし当然のことだが、パッケージ名の部分はダウンロードしたファイルの名前で置き換える必要がある。パッケージのインストール時に「2つのシンボリックリンクが、存在しないディレクトリを参照しています」といったメッセージが現れるが、その後OpenVZの使用中に問題は起こっていないので、私が思うにその点は気にしなくてよさそうだ。
先ほどのカーネルとヘッダのインストールが終わったら、システムにOpenVZを実行させる準備として/etc/sysctl.confにいくつかのパラメータ(OpenVZのWikiに記載)を追加する必要がある。たとえば、VPSでもネットワーク構築が行えるようにシステム側でのIPフォワーディングの有効化が必要になる。そのためにはsysct.confに以下の行と同じものがあるかどうかを確認し、もしなければ追記すればよい。
net.ipv4.ip_forward = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0
カーネルのインストールと上記の変更が済んだら、システムをリブートする。これはGRUBメニューでOpenVZをデフォルトカーネルに設定する必要があるためで、リブートによってこの設定が行われる。
続いてapt-get install vzctlを実行してOpenVZの各種ユーティリティを取得する必要がある。この実行により、vzctlとvzquotaの両パッケージがインストールされる。これらのパッケージには(vzctlのような)OpenVZの管理に必要なユーティリティが含まれる。
こうしたユーティリティをインストールするとOpenVZがブート時に起動されるように設定されるが、今すぐにOpenVZを実行したければ、この時点でOpenVZを手動で立ち上げる(またはリブートを行う)必要がある。OpenVZを起動するには、次のinitスクリプトを実行すればよい。
/etc/init.d/vz start