最終回は,Xenを用いた仮想化ならではの機能を紹介します。Xenには,多数のサーバーを統合するために役立つ機能がそろっています。複数の仮想サーバーにリソースを動的に割り当てる方法などについて解説します。

 サーバー統合のメリットは多岐にわたります。例えば,昼間だけ負荷が高くなるサーバー機と夜間だけ負荷が高くなるサーバー機を1台にまとめれば,システム・リソースの効率化が図れます。Xenを使えばこうしたサーバー統合が比較的簡単に実現できます。

 物理的なサーバー機を運用する際は,メンテナンス時にどのようにサービスを停止するか,他のサーバー機にどのように引き継ぐかが課題になります。Xenを利用すれば,稼働しているサーバー環境を停止することなく,別のハードウエアに移動できます。

 今回はこのようなXenの高度な機能について紹介します。

 前半では,サーバー機内で複数のドメイン(ゲストOSが動作する仮想マシン)が動いているシステムにおいて,各ドメインにCPU,メモリー,ディスクなどの資源を柔軟に割り当てる方法を解説します。負荷が高いドメインには多数の資源を割り当てると同時に,負荷が低いドメインには少ない資源を割り当てるようにします。システム資源を効率よく使えるようにします。

 後半では,複数の物理サーバー間でドメインを移動する「ライブ・マイグレーション」技術について解説します。

ドメイン内ではCPUも仮想化される

 Xenは,バージョン3.0からSMP(対称型マルチプロセッシング)に対応しました。つまり,各ドメインに複数のCPUを割り当てることが可能になりました。CPUパワーが必要なドメインには,多数のCPUを割り当てることができます。

 ドメインにおいては,CPU自体も仮想化されます。各ドメインごとに仮想化されたCPU(仮想CPU)に,実CPUを割り当てるわけです。

 Xenにはドメインの実行を制御する「ドメイン・スケジューラ」と,ドメインを切り替える「ドメイン・ディスパッチャ」が内蔵されています。仮想CPUは,ドメインの起動時に定義されます。その後,ドメイン・スケジューラがドメイン上の仮想CPUと実CPUの間に入り,プロセス処理を制御します(図1)。ある仮想CPUが,特定の実CPUと固く結び付いてしまうと,割り当てを変更できません。そこで,ドメイン・スケジューラは実CPUの処理時間をごく短い単位ごとに区切り,時分割で各仮想CPUに実CPUを割り当てています。

図1●仮想CPUと実CPUの関係
図1●仮想CPUと実CPUの関係
各ドメインには複数の仮想CPUを設定できる。1つの実CPUを複数の仮想CPUに割り当てることも可能だ。割り当てを管理するドメイン・スケジューラは実CPUごとに別々に動作する。

 ドメイン・スケジューラの動作はドメイン内のゲストOSからは見えません。ゲストOSはあたかも,実CPUを常に占有しているかのように動作します。