拡張性や管理ツールを強化した「Xen 4.1」


 Linuxの仮想化ソフト(ハイパーバイザー)Xenの新バージョンXen 4.1が3月末にリリースされた。

 Xen 4.0は、メジャーアップデートになりさまざまな部分で新しいテクノロジーが採用されていた。Xen 4.1は、Xen 4.0の機能を引き継ぎ、いくつか新しい機能が追加されたほか、バグフィックスやチューニングが行われている。


Xen 4.1の新しいロゴマーク

 

物理CPUのスケジューリング機能を変更

 大きく変わったのは、物理CPUのスケジューリング機能だ。Xenでは、各VMにCPUタイムを割り当てるスケジューリングとして、Credit1とスケジューラが使用されてきた。Credit1は、多くの場面でうまく動作していた。しかし、ネットワークトラフィックやオーディオなどの扱いにおいて、遅延を起こしやすいという弱点がある。

 そこで、Xen 4.1では、新しいスケジューラのCredit2が開発された。Credit2は、遅延を起こしにくいアーキテクチャーに変更されている。さらに、多数のCPUを登載しているシステムでも、効率のいいスケジューリングが行えるようになっている。

 ただし、Credit2は、Xen 4.1で初めて登載されたスケジューラのため、Xen 4.1ではプロトタイプという扱いだ。実際のXen環境に導入することで、Credit2の問題点を洗い出し、将来バージョンのXenではCredit2をデフォルトのスケジューラにしていく予定になっている。

 またXen 4.1では、CPUプール機能がサポートされている。物理CPUを複数のプールに分割して、それぞれに異なるスケジューラを設定して、各仮想マシンに割り当てることが可能になった。

 CPUプール機能をうまく活用するためには、システムが多数のCPUをサポートしている必要がある。Xen 4.1では、Intel x2APICアーキテクチャーをサポートすることで、255プロセッサを超えるシステム上で動かすことが可能になった。

 また、CPUの仮想支援機能に関しても、EPT/VT-dの1GB/2MBのスーパーページをサポートした。大きなページサイズをサポートすることで、大きなメモリ容量を割り当てている仮想マシンのパフォーマンスが向上する。

 

AXX命令をサポート

 Xen 4.1は、Intelが今年リリースした第2世代Core iシリーズ(Sandy Bridge世代)のCPUが搭載している、新しい命令セット「AVX」をサポートしている。今までCPUの浮動小数点演算は、128ビットレジスタが採用されていたが、AVXでは256ビットレジスタに拡張されている。さらに、今までの浮動小数点演算の命令セット(SSE)ではなく、新たな命令セットを採用することで、シンプルで性能の高い演算が行える。

 AVXをサポートしたCPUとしては、前述のようにCore i7/i5/i3の4けたナンバーのCPUとなる。サーバー用のCPUとしては、Xeon E3-1xxxシリーズ(2011年4月現在)となる。Xeon E3シリーズは、シングルソケット用のCPUだ。

 Xen 4.1では、Memory Access APIが追加されている。このAPIを用意することで、サードパーティのセキュリティソフトをハイパーバイザー上で動かすことが可能になる。これにより、個々の仮想マシンにセキュリティソフトをインストールしなくても、ハイパーバイザー上に1つセキュリティソフトを動かしていれば、すべての仮想マシンでマルウェアのチェックなどが行えるようになる。

 Memory Access APIは、単なるAPIのため、実際にはこのAPIをサポートしたセキュリティソフトがサードパーティから登場しない限り、絵に描いた餅でしかない。現状では、Xenに対応したセキュリティソフトを明言しているサードパーティはないが、5月にサンフランシスコで開催されるCitrixのカンファレンスSynergyで発表があるかもしれない。

 

管理ツールも「xl」へ再構築

 Xen 4.1で大きく変わったのは、管理ツールだ。以前のXenでは、xm,xendという管理ツールが用意されていた。しかし、xmやxendは、さまざまな機能を付け加えることで、どんどん複雑化してきた。そこで、再構築した「xl」という管理ツールが用意された。xlは、シンプルで堅牢なAPIを持っているlibxenlightライブラリーを基盤にして設計されている。またxlは、xmコマンドで利用されるドメイン設定ファイルがほぼそのまま利用できる。

 Xen 4.1では、xendツールスタックもサポートされているが、将来的にxendツールスタックの廃止も考えられているため、今後はxlベースでの管理に移行していくことを推奨している。

 このほか、細かな部分としては、さまざまなバグフィックスが入っている。例えば、Xenpagingとメモリシェアリング、Fault Tolerance機能、IntelとAMDのIOMMU機能などのバグフィックスが行われている。

現在のXen管理ツールのアーキテクチャXen 4.1で採用されたアーキテクチャ。XendやXAPIの下に、libxenlightライブラリーが入る
Xen 4.1では、Xend、XPAPIに並んで、新しい管理ツールのxlが登載される。xlは、今までの管理ツールに比べると、シンプルで軽量化されているXLとxendの差。xlでもxendの設定ファイルが利用できるので、使い勝手としてはxendと変わらない

 

Xen4.1ベースのXenServerのリリースは?

 オープンソースのXenは、バージョン4.1にアップしたが、Citrixが提供しているXenServerはいつXen 4.1ベースになるのだろうか?

 オープンソースのXenをベースにしたハイパーバイザーとしては、いくつかの企業がXen 4.0ベースの製品をリリースしている。しかし、本家のCitrixとしては、XenServer 5.6 Feature Packが現時点での最新版となる。

 このXenServer 5.6 FPは、安定したバージョンといえるXen 3.4がベースとなっている。これは、当初Xen 4.0は、メージャーアップグレードであるために、さまざまな部分に新しいテクノロジーやコードが採用されている。

 実際の運用を目的としたXenServerのハイパーバイザーとしては、革新性よりも、安定性が求められる。このため、XenServer5.6 FPは安定したXen 3.4を使用しているのだろう。ただ、XenServer5.6では、Citrixが一部Xen 4.0などの機能を先取りして取り込んでいるため、純粋なXen 3.4という訳ではなかった。

 Xen 4.x系列も4.1になり、バグフィックスやチューニングが進んできたため、2011年中には、XenServerもXen4.x系にアップデートされるだろう。5月に開催されるCitrixのカンファレンス Synergyでは、XenServerの新バージョンの発表が行われる可能性が高い。

 新しいXenServerは、より多数のCPUをサポートした大規模システムへの対応が打ち出されるだろう。また、XenServer 5.6 FPで登載された分散仮想スイッチのOpen vSwitchの機能アップなども行われるだろう。Open vSwitchは、Xenのクラウドプロジェクト「Xen Cloud Platform」(XCP)で採用されている分散仮想スイッチだ。

 次期XenServerでは、Xenをクラウドで利用するXCPに関連する機能が強化していくだろう。また、クラウドを管理するためのツールも強化されていくだろう。

 さらに、マイクロソフトとの連携という面では、XenServerを仮想デスクトップのインフラとして利用した場合でも、Windows Server 2008 R2 SP1で追加されたGPUを仮想化して利用するRemoteFXなどのサポートも考えられる。また、新しいSystem CenterでのXenServerやXenDesktopのサポートや管理ツールの連携などもあるかもしれない。

 どちらにしても、XenServerに関しては、Synergyでいろいろな発表となるのだろう。

関連情報