オープンソースで仮想化――どれが有望?仮想化の達人

現時点でオープンソースを用いた仮想化技術は幾つも存在している。たくさんありすぎて分からないという方も、とりあえず3つ押さえておけばトレンドからは外れない。

» 2007年10月17日 15時01分 公開
[西尾泰三,ITmedia]

このコンテンツは、オンライン・ムック「仮想化の達人」のコンテンツです。関連する記事はこちらでご覧になれます。


質問

仮想化技術を用いてシステム統合を考えています。商用製品としてVMwareやMicrosoftがありますが、重要度の低いシステムの統合から始めるため、ここでオープンソースの仮想化ソフトウェアなどを試してみたいと思います。どういった選択肢がありますか?


回答

 仮想化のタイプによってソリューションは幾つか存在しますが、比較的知られているXenのほかにも、OSレベルでの仮想化を行うOpenVZやLinux-Vserver、さらにはLinuxカーネル2.6.20から実装された仮想化機能である「KVM」(Kernel Virtual Machine)など幾つか挙げることができます。Xenについてはこれまで何度も触れてきまし、Linux-Vserverについてもすでに詳細記事が存在しますのでここでは割愛し、OpenVZとKVMについて触れたいと思います。

OpenVZ

 OpenVZはSWsoftが中心になって開発しているオープンソースのOS仮想化ソフトウェアです。上述したようにOSレベルでの仮想化を行う同ソフトウェアですが、これは、ホストOS上のOpenVZ専用カーネルで仮想サーバ(VPS)を動作させ、ホストOSのファイルシステムの一部をVPSに割り当てることを意味します。つまり、1つの物理サーバ内には、1つのカーネルしか動作していないということです。

 ゲストOSというものが存在しないため、その切り替えといったオーバーヘッドが発生しにくい構造になっています。ゲストOSに相当する部分(設定ファイル、ライブラリ、コマンド群)はテンプレートとして用意されており、仮想サーバのOS部分に相当するサイズはXenなどと比べると小さなものとなっているのも特徴です。

 このようなOpenVZの商用製品であるVirtuozzoは、ホスティングサービスでの利用を想定して開発されています。日本国内でも、クララオンライン、ライブドアといったホスティング事業者でVirtuozzoが利用されています。

 OpenVZとXenのどちらがよいのかという問いに答えるのは難しいです。ユーザー空間を仮想分割するOpenVZやVserverと、カーネル空間を複数持つXenは、仕組みが根本的に違いますので、直接の比較はあまり意味がないためです。時代のトレンドがXenのような仮想マシン型の方に傾きつつある今、今後の選択はそうしたトレンドもふまえて下す必要があるでしょう。

KVM

 KVMは、ここ最近注目を集めている仮想化機能です。カーネルモジュールをロードすることでLinuxカーネルをハイパーバイザーに変換し、その上でゲストOSを動作させるというものです。実際の利用においては、入出力の仮想化はユーザー空間のQEMUプロセスによって行われますので、これらと組み合わせての利用となります。また、プロセッサの仮想化支援機構の利用を前提にしていますので、それらの機構を搭載しないプロセッサでは利用できません。

 シンプルな実装も特徴ですが、何より、KVM自体がカーネルに統合されているというのがKVMの大きなメリットです。Linuxカーネルの進化に合わせてKVMもその恩恵を受けやすい位置にいるという意味では、Xenをはじめとするほかのハイパーバイザー型ソリューションよりよい位置にいると見ることもできます。ただし、上述したようにユーザー空間のQEMUプロセスが入出力の仮想化を行わなければならないことなど、使い勝手という面ではまだまだ発展途上ですので、実運用で利用するのはもうしばらく先と考えておくべきでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ