このページの本文へ

【プロに訊く!】一問一答 ここが知りたいXenの使い方 第1回

シトリックスのXenてどういうもの?

2009年02月20日 04時00分更新

文● シトリックス・システムズ・ジャパン 平谷靖志/聞き手 ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

オープンソースから始まったシトリックスの仮想化ソフトウェア「Xen」。オープンソース版との違いは? など、Xenに関するさまざまな疑問をシトリックスの方に直接教えていただきます。

答える人:シトリックス SVセールス部システムエンジニア エンジニアリング部長 平谷靖志氏

Xenってどういうものですか?

 Xenはオープンソースの仮想化ソフトウェアで、イギリスのケンブリッジ大学で研究されていたソフトウェアがベースとなっています。

 研究されていた当時にリリースされていた他社の仮想化ソフトウェアは、CPU、メモリ、I/Oの仮想化をすべてソフトウェアで実装していたため、物理コンピュータと比較すると、処理に時間がかかっていました。これを「仮想化のオーバーヘッドが大きい」と表現します。またCPUパワーも現在ほど高くなかったため、同時に実行できる仮想マシンの数も限られていました。さらに当時の仮想化システムでは、物理マシン上で動いているOSを一切変更せずに仮想マシン上で動かすため、仮想マシンは、OSに対して物理マシンと同様の動きをするように作られていました。しかしこの形式のシステムは、結果的にオーバーヘッドが大きくなります。

 これに対してXenでは、ゲストOSに仮想マシン上で動作していることを認識させます。すなわちXenの上で動くゲストOSは、カーネルを少し変更することでXenと協調して動作するようにし、仮想化オーバーヘッドが最低限となるようにしています。

 現在のXenはオープンソースとして誰でも開発プロジェクトに参加できるとともに、誰でも自由にXenを使用することができます。このプロジェクトには多くのハードウェアベンダー、ソフトウェアベンダーが参画しており、仮想化の新しいテクノロジーが迅速に市場に投入されています。

準仮想化って何ですか?

 準仮想化は「仮想化ソフトウェアとゲストOSを協調して実行させる仕組み」といえます。Xenの最初のバージョンでは、準仮想化されたLinuxのみをゲストOSとして実行させることができました。当時のx86 CPUは仮想化を前提として設計されていなかったため、仮想化ソフトウェア上ではWindowsやLinuxに含まれる一部の命令(特権命令)をそのまま実行できません。Xenの中でこれらOSのCPU命令をエミュレートすることは、オーバーヘッドになります。そこでOSのカーネルに変更を加え、仮想マシン上で処理できるようにしてあるのです。

仮想化Q&#38

準仮想化と完全仮想化の違い。それぞれにメリット/デメリットがあるため、単純に優劣は比較できない。

 このカーネルは「準仮想化カーネル」と呼ばれ、仮想化ソフトウェアでCPU命令のエミュレートを行なわなくても済むようにしています。この考えは、ディスクやネットワークのI/Oについても採用されています。準仮想化ではゲストOSがXenと連携して動くため、従来の方式と比較して仮想化オーバーヘッドが少なくなるというのが大きな特徴です。

 準仮想化に対して、OSの変更を必要としない従来の方式を「完全仮想化」と呼びます。これらは、それぞれにメリット/デメリットがあるので、単純に優劣はつけられません。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード