Xen 4.1ベースに生まれ変わった次期サーバー仮想化ソフト「XenServer 6.0」


 米Citrixが5月に開催したカンファレンス「Synergy2011」では、サーバー仮想化ソフト「XenServer」の新バージョン、XenServer 6.0が発表され、そのβ版が7月上旬に公開された。

 今回は、このXenServer 6.0について、機能面の特徴などをレポートする。

 

Xen 4.1ベースに変更、大幅な機能改善を実施

 以前のXenServer 5.xは、Xen 3.x系をベースにしていた。これに対して、XenServer 6.0は、Xen 4.1がベースになっているが、まずはオープンソースのXen 4.x系の機能強化を紹介しよう。Xen 4.x系列は、バージョン番号もメジャーアップデートされているように、Xen3.x系からは大幅にアップデートされている。

Xen 4.0では、Linuxカーネルのpv_opsをサポートしている(スライドはXen Summitの資料より。以下同様)

 Xen 4.1の1つ前、Xen 4.0からは、ドライバやハイパーバイザーを管理するDomain0に、仮想化環境にチューニングされたpv_ops(paravirt_ops)を用いたLinuxカーネルを採用している。

 Xenにおけるpv_opsのサポートは、XenをLinuxのメインラインへと統合する大きなステップになった。このサポートにより、Linux 3.0において、XenがLinuxカーネルに統合された。

 XenをLinuxカーネルに統合することは、Xenコミュニティにとっては、悲願であった。Xenのリリースから8年越しに実現した。仮想化ソフトウェアとして後発だったKVMは、発表後2ヶ月でLinuxカーネルに統合されたことを考えれば、長い道のりだったといえる。

 メモリ管理に関しても、Xen 4.0では機能が向上している。新しいメモリ管理機能として、Memory Page Sharing機能が搭載された。この機能は、ゲストOSが使用しているメモリ領域の中で、同じ部分は、ゲストOS間で共有して利用する。これにより、1つのゲストOSが使用するメモリ領域が小さくなる。

 また、Xen 4.0では、Oracleが開発したTranscendent Memory(TMEM)というメモリ管理機能が搭載されている。TMEMは、Memory Page Sharingとは違い、余っているメモリをゲストOSがページキャッシュとして使用する。つまり、ゲストOSが使用するページキャッシュをホスト全体で管理して、重複している部分を省いて、システム全体でゲストOSのメモリ使用量を小さくしていこうというものだ。


メモリ管理にオーバーコミットができるように、Page Sharing機能が搭載されたTranscendent Memoryでは、ゲストOSが持っているPage Cacheをまとめて管理して、不要なPageを省こうというコンセプトだ。このモジュールはOracleが開発した

 

スケジューラの改善と仮想化支援機能のサポート

 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プロセッサを超えるシステム上で動かすことが可能になった。

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

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

 加えてXen 4.0からは、ディスク関連のモジュールblktap(Block Tap)が、バージョンアップされている(blktap2)。blktap2では、VHDフォーマットがサポートされた。これにより、オンラインでのライブスナップショットとクローン機能がサポートされた。


新しいディスクモジュールでVHDがサポートされた

 

グラフィック関連の機能強化

GPUパススルー機能とHDX 3D Proにより、仮想デスクトップでもグラフィックワークステーションと同じ機能が提供できる

 グラフィックに関しても、Xen 4.0からは大きな強化が行われている。

 具体的には、グラフィックカードのパススルー機能が実現された。ただ、この機能を利用するためには、IntelのVT-dやAMDのIOMMU(Input Output Memory Management Unit)などのチップセット側の機能だけでなく、BIOSやグラフィックカード側も対応が必要になる。

 この機能とXenDesktop HDX 3D Proを利用すれば、仮想環境でもパワフルなGPUを利用したグラフィック環境が実現できる。例えば、仮想マシン上でグラフィックワークステーションを実現できる。ただし、1つのグラフィックカードを複数の仮想マシンで利用することはできない。1つの仮想マシンが占有することになるため、仮想デスクトップでグラフィックワークステーションを構築する場合は、グラフィックワークステーション分のグラフィックカードが必要になる。

 またXen 4.0からは、Netchannel2という機能により、ネットワークのパフォーマンスをアップしている。Netchannel2は、NICに複数の受信キューを持たせ、ゲストOSにパケットを直接DMA転送できるようにしている。ただし、このままだとDom0の負荷が高まるため、マルチキュー搭載のSmart NICへの対応、I/O仮想化機能(SR-IOV)を持ったNICへ対応することで、負荷をCPUではなくNIC側で処理することでホストの負荷を小さくしている。特にSR-IOVは、VT-dやIOMMUなどのチップセット側の機能が必要になる。


XenServerで仮想デスクトップを構築することで、グラフィックワークステーションの台数を削減することができる今までゲストOSのグラフィックは、仮想グラフィックドライバが使われて、仮想化されていたためGPUの機能が利用でなかった。そこで、グラフィックもパススルーでゲストOSが占有できるようにした
NetChannel2では、ゲストOS側のドライバを軽くして、Dom0で処理をしている。最新版では、インテリジェントなNIC側にある程度処理を移して、Dom0の負荷を軽くしているXen 4.0ではSR-IOVをサポートすることで、ネットワークをパススルーで利用できるようになり、パフォーマンスがアップする

 

FT機能やゲストOSのUSB機能も

 Xen 4.0では、フォールトトレランス(FT)機能のRemusがサポートされた。Remusがサポートされたことで、Xen上で実行中の仮想マシンをバックアップサーバーで常に更新し、障害時にはバックアップサーバーに切り替えることができる。この機能により、ホストに障害が起こっても、仮想マシンの動作を保証することができるようになった。

 さらにXen 4.0からは、ようやくゲストOSがUSBデバイスを扱えるよう、Para Virtualization USB(PV USB)がサポートされた。PV USBでは、ゲストOSにフロントエンドのドライバを設置し、Dom0に置かれているバックエンドドライバが実際のUSBハードウェアをコントロールすることになる。

 サポートされているUSBデバイスは、キーボード、マウスだけでなく、サウンドデバイス、FDD、シリアルポート、USBメモリ、DVDドライブ、NIC、USBディスプレイアダプタなど、多彩なデバイスがサポートされている。


PV-USBは、ゲストOS上で動作するフロンエンドとDom0で動作するバックエンドに分かれている。実際のUSBデバイスは、Dom0のバックエンドが管理する

 

XenServer 6.0で追加された機能

XenServer 6.0で追加されたクラウド関連の機能

 一方、XenServer自体の機能強化を見てみよう。

 XenServer 6.0は、新しいSelf Service Manager機能が用意された。この機能を使えば、プライベートクラウドにおけるセルフサービス機能が提供できる。つまり、権限を委譲されたユーザーが、簡単に仮想マシンを作成したり、拡張したりすることが可能になる。
 このSelf Service Manager機能は、XenServerだけでなく、VMwareのvSphere環境もサポートしている。


XenServer 6.0のSelf Service Managerの画面。この機能により、ユーザーが簡単に仮想マシンを作成できる仮想マシンのパフォーマンスもグラフで確認可能

 戦略的なパートナーであるMicrosoftの次期管理ツール、System Center Virtual Machine Manager(SCVMM)2012からは、XenServer 6.0とその仮想マシンの管理が可能になる。System Center 2012がリリースされたときには、XenServer 6.0用のオプションパックをリリースすることで、System Center 2012とさまざまな部分で連携するようになる予定だ。

 またXenServer 6.0のリリースに合わせて、外部アプリケーションとして提供されていたXenConverterが、XenServerの管理コンソールに統合されている。これにより、管理者がいちいち別アプリケーションを起動して、仮想マシンのファイルを変換しなくてもよくなった。Xen 4.x系の新機能で解説したように、VHDファイルフォーマットがサポートされている。さらに、VMwareのVMDKファイルフォーマットもサポートされた。


XenServer 6.0は、MicrosoftのSystem Centerと連携性を高めているSCVMM 2012では、XenServerの管理が行えるようになっている。もちろん、仮想マシンの起動/停止だけでなく、スナップショットをとったり、XenMotion Live MigrationもSCVMMからコントロールしたりできる
XenServer 6.0で追加された機能。特に、ホストサーバーで1TBメモリをサポートしたことは、1台のサーバーに多くの仮想マシンを搭載できることにつながる

 ホストがサポートする最大メモリとしては、1TBがサポートされている。また、仮想マシンがサポートする仮想CPU、仮想メモリも拡張されている。例えば、Windowsでは最大16コアの仮想CPU、仮想メモリは最大128GBになっている(Linuxに関しては、ディストリビューションにより異なる)。

 XenServer 6.0では、以前のXenServer5.6FP1で採用された分散仮想ネットワークのOpen vSwitchがデフォルトのネットワークスタックになっている。XenServer5.6FP1では、オプション機能だったが、ある程度機能がこなれてバグも少なくなったため、XenServer 6.0ではデフォルトのネットワークスタックになったのだろう。


Open vSwitchのネットワークトポロジーも確認することができるOpen vSwitchを使うことで、フレキシブルなネットワークが構成できる

 これ以外の機能追加としては、Site Recovery機能がある。Site Recovery機能では、XenServerが採用しているストレージAPIのStorageLinkを使用しないため、シンプルな構成でSite Recovery機能が実現できる。

 また、以前のStorageLink機能では、管理するためにWindows Serverが必要だったが、XenServer 6.0では必要なくなった。

 さらに、インストレーションと管理を容易にするためのWorkload Balancing機能は、Linuxベースの仮想アプライアンスとして用意されることになった。

 このほか、ゲストOSとしてUbuntu 10.04、Ubuntu 10.10、RHEL(Red Hat Enterprise Linux) 5.6、RHEL 6.0、CentOS 5.6、SLES(SUSE LINUX Enterprise Server) 10 SP4、Solarisなどがサポートされた。

 エディションの構成としては、XenServer 5.6 FP1と変わらず、無償版、Advanced Edition、Enterprise Edition、Platinum Editionの4つに分かれている。

 現在、XenServer 6.0はβ版が、CitrixのHPに公開されている。正式リリースに関しては、秋の初めごろにまでには行われるだろう。XenServer 6.0は、Citrixにとっては単なるサーバー仮想化ソフトウェアというだけでなく、パブリック/プライベートクラウドを構築するための基本ソフトウェアといえる。興味のあるユーザーは、Citrixにユーザー登録して、ぜひともβ版をテストしてみてほしい。


XenServerのロードマップ。XenServer 6.0は秋までにはリリースされ、年末もしくは年明けにマイナーバージョンアップが行われる。その後、2012年春ごろにはXenServerのメジャーアップデートのβ版が公開される。このような年間スケジュールでリリースされていく
関連情報