xenserver Infrastructure 3徹底入門(1)

第1回 Xenハイパーバイザを使う意義


シトリックス・システムズ・ジャパン株式会社
2008/8/7

シトリックス・システムズが提供しているXenServerは、オープンソースのXenハイパーバイザをベースとし、この上に各種の制御・管理環境を構築している。オープンソースXenハイパーバイザを採用するメリットは何か。この連載ではまず、XenServerの基盤になっているXenハイパーバイザと、これを利用するメリットを解説する

 Citrix XenServerはオープンソースのXenをベースとしてハードウェアの上で直接動作するハイパーバイザ型の仮想化ソフトウェアである。本連載ではまず、XenServerのアーキテクチャを4回にわたり解説する。1回目はXenServerの仮想化の中枢であるXenについて紹介する。

 「Xen」はどこから来たか

 仮想化に多少なりとも興味を持ったことがある人なら、「Xen」という言葉を聞いたことがあると思う。仮想化でXenが注目され始めたのは2005年頃であるが、Xenはその数年前からイギリスのケンブリッジ大学でIan Pratt教授が中心となって研究されてきた技術である。

 X86システムの仮想化が行うことは、物理ハードウェアの抽象化と仮想ハードウェア(仮想マシン)を同時に複数実行させることである。この仮想化技術により、仮想マシンは異なるハードウェア上でも移動可能になり、異なるOSが動いている仮想マシンを同時に何台も実行することが可能になる。この仮想化の基本的な機能を提供しているのが、Xenハイパーバイザである。Xenハイパーバイザが目指していたもの、それは仮想化オーバヘッドを限りなく少なくすること、信頼性の向上、そしてオープンソースであるということである。

 仮想化オーバヘッドの回避

 X86システムを仮想化するためには、CPU、I/O、メモリの3つのコンポーネントを仮想化する必要がある。それぞれのコンポーネントにおいて仮想化の手段は異なるのだが、物理マシンに比べて「仮想化のための処理」が入るため、そこに仮想化オーバヘッドが発生する。Xenはこの仮想化オーバヘッドを準仮想化(Para virtualization)によって解決している。準仮想化は仮想マシンがXenハイパーバイザ仮想化レイヤと協調して実行する考えであり、CPUとI/Oの仮想化において使用されている。

 仮想マシンでは、ゲストOS(仮想マシン上で動くOS)のカーネルで実行される特権命令はそのままCPUで実行できな。Xenではこれら特権命令を「Hyper call」と呼ばれる方法を使用してXenハイパーバイザに伝え、XenハイパーバイザからCPUに対して命令が実行される。すなわち、ゲストOSのカーネルを修正し、物理マシンで直接CPUに対して行っていた特権命令はハイパーバイザに処理を通知する仕組みに変更したのである。このカーネルのことを準仮想化カーネルと呼ぶ。この処理は、仮想化オーバヘッドを劇的に削減できるが、一方でゲストOSのカーネルをXen用に変更する必要もある。現在、準仮想化カーネルを使用できるのはLinuxだけである。WindowsにおいてはCPU仮想化の処理を行うためにCPUのハードウェアアシスト機能が使われている。

図1 特権命令の1つ(Halt Instruction)をゲストOSから実行した場合の例

 I/Oに関するオーバヘッドも、仮想化では頭の痛い問題の一つである。ゲストOSの中からのI/Oは直接ネットワークやディスクに対して行われず、Domain0 (XenServerでは「Control Domain」と呼ぶ)を経由してI/Oが行われる。この時に問題となるのが、ゲストOSからDomain0(もしくはDomain0からゲストOS)へのデータコピーである。メモリのコピーは非常に低速で、物理マシンと比較してかなりのパフォーマンス劣化となってしまう。

図2 ディスクドライブとネットワークアダプタにはPV (Paravirtualization:準仮想化)デバイスドライバが使用され、I/Oのオーバヘッドを小さくしている

 I/Oで使用している準仮想化の考えは、ゲストOSのI/Oの入り口であるデバイスドライバにある。XenServerで作成した仮想マシンに対し、XenServer Toolsというツールをインストールすることにより、ネットワークとディスクのデバイスドライバがPV(Para Virtualization)デバイスドライバに置き換わる。このデバイスドライバはXenハイパーバイザと協調して動作し、I/Oのオーバヘッドを限りなく小さくしている。具体的には、ゲストOSとDomain0間のメモリーコピーを行わず、メモリのアドレスのみをXenハイパーバイザを経由して送っている。

 
1/2

Index
第1回 Xenハイパーバイザを使う意義
Page1
「Xen」はどこから来たか
仮想化オーバーヘッドの回避
  Page2
信頼性の向上
オープンソースであるということ

Server & Storage フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Server & Storage 記事ランキング

本日 月間