Tech・Ed 2009最新情報でみるHyper-V 2.0の実力


 5月に入ってWindows Server 2008 R2のRCが一般ユーザーにもリリースされた。標準搭載されている仮想化ソフト「Hyper-V 2.0」の機能もほぼ固まったようだ。そこで、今回は5月に米国で開催されたITプロを対象としたカンファレンス「Tech・Ed 2009」で明らかにされた情報を含めてHyper-V 2.0を紹介していく。なお、Tech・Edでは、Hyper-V 2.0をHyper-V R2とも呼んでいたが、最終的な名称はHyper-V 2.0となるようだ。


スケーラビリティを向上したHyper-V 2.0

Hyper-V2.0で追加された主要な機能
Hyper-V 2.0では、IntelのEPTやAMDのRVI機能を使ってSecond Level Address Translation(SLAT)がサポートされている

 Hyper-V 2.0のベースとなるWindows Server 2008 R2は、論理CPU(コア)を256個サポートしている。クアッドコア(4コア)のCPUなら、64個のCPUを搭載したサーバーとなる。今後リリースされるオクタコア(8コア)の場合は、32個のCPUをサポートする。また、メモリに関しては最大1TBと広大なメモリ空間を持っている。これは、Windows Server 2008 R2が64ビットのみに対応したOSになったおかげともいえる。コスト面で1TBものメモリ容量を搭載することはないだろうが、CPUに直接メモリインターフェイスが搭載され、サポートされるメモリスロット数が多くなってきていることを踏まえれば、すぐにでも200GBというメモリ容量は実現できる。

 こういったインフラの状況を踏まえて、Hyper-V 2.0では、仮想マシンごとに利用できる仮想CPUを4つ、仮想メモリを64GBといった環境を実現している。Hyper-V 2.0全体で使用できるCPUコア数も、64CPUコアにアップしている。

 こうした環境の変化は、仮想化の方法にも影響を与えるだろう。つまり、CPUやメモリを仮想化し、節約して使うというよりも、あり余るCPUコアやメモリを各仮想マシンに割り当て、数年前の物理サーバーと同じ性能を持つ仮想マシンとして利用するようになるだろう。また、サーバーの性能がアップするにつれ、1つのサーバーに統合される仮想サーバーの数もどんどんと増えていくだろう。

 また、Hyper-V 2.0では、IntelのNehalem世代(Xeon 5500番台など)、AMDのBarcelona世代(Opteron 2800など)などで採用されている仮想メモリ空間を物理メモリ空間に変換する機能(IntelではEPT、AMDではRVI)もサポートした。この機能を利用することで、仮想マシンの性能が格段にアップする。Microsoftでは、仮想化のオーバーヘッドは物理マシンに比べて10%ほどの違いまでに小さくなっていると話している。

Chimney Offloadでは、TCP/IPの処理をNIC側で行う。これにより、CPUの負荷を小さくする

 ネットワーク関連の機能も強化されている。Hyper-V 2.0では、TCP/IPの処理をネットワークカード側で行うVM Chimney(TCP Offload)と仮想環境でのネットワーク通信に特化したVMQ(Virtual Machine Queues)機能がサポートされた。VM ChimneyをサポートしているNICは、現状ではBroadcomのNICなど。また、VMQをサポートしているNICとしては現状ではIntelのNICとなっている。

 これらのNICを利用することで、CPUのTCP/IP処理に関する負荷が小さくなる。特にこれらのテクノロジーは、仮想化での利用を前提にして開発されているために、複数の仮想マシンからの処理を、順序を入れ替えて効率よく処理できる。このことは、TCP/IPネットワークを利用したStorage Area Network(SAN)にとって、CPUにかかる負荷が小さくなり、ストレージアクセスが高速になる。

 これ以外にも、NICのジャンボフレームワークなどに対応することで、効率よくデータ転送が行える。


現在のHyper-VにおけるネットワークVMQにより、各VMからのトラフィックをVMQをサポートしたNICがバッファリングして整理する。これにより、CPU側でトラフィックを整理しなくてもよくなるため、CPUの負荷が減り、パフォーマンスもアップするVMQでは、サーバーに共有メモリを持ち、VMにデータを送るときは、メモリコピーが起こらないようにしている

ユーザーセッションを切ることなく仮想マシンを移動できるLive Migration

Quick MigrationとLive Migrationの違い
Live Migrationの仕組み
Cluster Shared Volumesは、各サーバーから同時アクセスが可能になっている。これにより、Live Migrationが実現している

 Hyper-V 2.0における最大の機能追加は、Live Migrationのサポートだ。Hyper-V 1.0では、Quick Migrationという機能により、仮想マシンを別の物理サーバーに移動させることができた。しかし、Quick Migrationでは、仮想マシンを移動するときに、ネットワークのセッションが切れたり、ユーザーの再接続が必要になっていた。そこで、仮想マシンが移動しても、ユーザーのセッションが切れないLive Migrationが待ち望まれていた。

 Live Migrationを実現するために、Hyper-V 2.0では仮想マシンが動作しているメモリをネットワークで転送する機能が採用された。Quick Migrationでは、仮想マシンのメモリをいったんクラスタディスクに書き込んで、移行した先で再度クラスタディスクから読み込むため、移行に時間もかかり、ユーザーのセッションも切れていた。Live Migrationでは、メモリの内容をネットワークを使ってリアルタイムに伝えることで、ディスクに書き込んで読み出すといったロスがなくなった。

 Microsoftでは1本のネットワークだけでもLive Migrationを動かすことができると説明しているが、冗長化を考えれば、1本はノード間の通信に利用し、1本は一般のコミュニケーションネットワークとして利用するのがいいだろう。これ以外に、iSCSIなどのストレージを利用する場合は専用のネットワークを使い、さらに仮想環境の管理用ネットワークも別にした方がいい。このように仮想環境において、ネットワークが重要になっていることは理解しておくといいだろう。

 このLive Migrationを実現するために、Windows Server 2008 R2では、CSV(Cluster Shared Volumes)という新しいクラスタディスクの仕組みを提供している。CSVは、Hyper-Vの仮想マシンを保存するために作られたものだ。Windows Server 2008 R2のフェールオーバークラスタリング機能に標準で搭載されている。

 CSVの特徴としては、フェールオーバークラスタに参加しているノードに対して、ドライブ名でディスクを提供するのではなく、[C:\ClusterStorage\Volume1][C:\ClusterStorage\Volume2]のようなパスを使って、アクセスすることができる。また、指定が面倒だったボリュームGUIDを使う必要もなくなっている。ドライブ名でクラスタディスクを指定しなくてもいいため、仮想マシンが別のノードに移行したとしても、ドライブ構成を変更する必要はないということだ。また、CSVは、各ノードから同時にアクセスできるため、同じボリューム内に、複数の仮想マシンを置くこともできる。

Hyper-V 2.0では、機能の異なる世代のCPUへのLive Migrationを実現している

 Hyper-V 2.0では、異なるCPU間でのLive Migration機能をサポートしている。これは、古いCPUと新しいCPUで機能が異なるが、それを吸収して移行できる機能をCPUベンダーが用意している。この機能をHyper-V 2.0でサポートしたおかげだ。ただし、IntelのCPU同士、AMDのCPU同士のLive Migrationはサポートされているが、IntelのCPUからAMDのCPUといった異なるCPUベンダーのマシンへのLive Migrationはサポートされていない。


エコにも対応したHyper-V 2.0

 Hyper-V 2.0は、省電力にも対応している。Windows Server 2008 R2では、CPUコアの負荷に応じて、CPUコアを停止させる機能に対応しているので、Hyper-V 2.0でも仮想マシンの負荷が小さくなれば、動作させるCPUコアを少なくして、少ないCPUコアだけで動作させることができる。これにより、CPU全体としては消費電力が小さくなる。

 サーバーOSにおいて、今までCPUコアごとに負荷によりクロック数を落とすといったことは行っていなかった(ノートPCやデスクトップPCでは、省電力機能として採用されていた)。このようなパワーマネジメント機能をWindows Server 2008 R2では採用している。

 さらに、System Center Virtual Machine Manager(SCVMM)2008 R2では、ノードごとに負荷を決めておき、特定の負荷以下になれば、Live Migrationを使って別のノードに仮想マシンを移動させて、負荷のなくなったノードは停止させるといったことも可能になる。


Windows Server 2008 R2でサポートされたCPUの省電力機能16コア(4コア×4ソケット)あるサーバーでは、負荷を考えて、8コアに仮想マシンを集め、残りの2ソケットのCPUを停止させる。これにより、サーバー全体の消費電力が落ちる

Live Migrationも使える無償版「Hyper-V Server R2」も提供

 Windows Server 2008では、無償のサーバー仮想化製品「Hyper-V Server」をリリースしている。これは、ペアレントパーティション(ドメイン0)にWindows Server 2008のServer Core(仮想化だけに機能限定されたもの)を使用したものだ。

 このHyper-V Serverだが、Windows Server 2008 R2でも「Hyper-V Server R2」として無償提供される。このHyper-V Server R2は、ペアレントパーティションに機能限定のServer Coreが利用されているだけで、Hyper-V 2.0とまったく同じ機能が提供されている。もちろん、Live Migration機能も搭載されている。

 ただし、Hyper-V Serverには、仮想マシンでWindows OSを動かすライセンスがついていないので、Windows以外のLinux OSを動かすか、すでに持っているWindowsライセンスを使って仮想マシンを使うといったことにはなる。

 これだけの機能を持ったハイパーバイザーを無償で提供するというのは、すごいことだ。Windows 7にWindows XP Modeといった仮想化機能が用意されたが、パフォーマンス面では、Hyper-V Server R2上でWindows 7とWindows XPを動かす方が高くなるだろう。ただし、グラフィックの仮想化ができないので、Aero UIが使えなかったり、周辺デバイスの使用に難が出るが、1つのマシンでWindows 7とWindows XPの両方が同時に動かせるのは便利だ。


打倒VMwareの有力製品に進化したか?

 Hyper-V 2.0は、Microsoftにとって仮想化におけるシェアを伸ばすための大きなターニングポイントになるものだ。実際、Tech・Edの会場でアンケートをとった結果を見ると、VMwareの利用が7割近くで、Hyper-Vは3割ほどというのが現状だ。Microsoftとしては、Hyper-V 2.0のリリースにより、VMwareと互角の勝負に持っていきたいと考えている。

 Tech・Edのセッションでも、VMware vSphereとWindows Server 2008 R2とのコスト比較を行っていた。Microsoftの主張では、vSphereとは比べものにならないほど低コストで仮想環境が構築できるとしている。機能的にvSphereに対抗できるようになれば、Hyper-Vの普及が進むと考えているようだ。


MicrosoftのWebサイトの多くが、Hyper-Vで仮想化され運用されているVMwareとMicrosoftの価格比較。これだけコスト差があるとMicrosoftは主張している



関連情報
(山本 雅史)
2009/5/18 00:00