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などのチップセット側の機能が必要になる。
■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のメジャーアップデートのβ版が公開される。このような年間スケジュールでリリースされていく |