Windows Server 2008世代の仮想化テクノロジー 〜Hyper-V/SoftGrid編

マイクロソフトがまもなく提供を開始する仮想化テクノロジーには、さまざまなレベルにおける仮想化のソリューションが用意されている。特にサーバの仮想化を実現する「Hyper-V」は、Windows Server 2008の中核とも位置付けられる機能となるだろう。

» 2008年06月02日 07時00分 公開
[下村恭(ハンズシステム),ITmedia]

 前回に引き続き、マイクロソフトの仮想化テクノロジーを解説する。今回は、サーバの仮想化を担うHyper-V、そしてアプリケーションの仮想化を担うSoftGridについて見ていくことにする。

パフォーマンス重視の仮想化技術、Hyper-V

 サーバの仮想化を担うHyper-Vは、Windows Server 2008の仮想化テクノロジーの中でも花形と言えるものだ。Hyper-Vは、従来のMicrosoft Virtual Server 2005と同様の、サーバマシン仮想化の手法を提供する。ただし、その実現方法はVirtual Serverとはまったく異なり、新規に構築された新しいテクノロジーとなっている。

 Virtual Server 2005は、Windows Server 2003上にインストールし、その上でエミュレートされたゲストOSを実行する形式であった。ゲストOSとサーバハードウェアの間にVirtual Server 2005のエミュレーション層がある分だけ、パフォーマンスが犠牲になっていた。

 Hyper-Vでは、ハイパーバイザー型と呼ばれる仮想化技術の採用により、ゲストOSにおけるパフォーマンスの低下を最少にする。Hyper-Vでは、フットプリントが約3Mバイト程度のWindows Hypervisorと呼ばれる層をハードウェアのすぐ上に置き、ペアレントパーティションと呼ばれるホストOS的なWindows Server 2008をその上に置く。仮想化されたサーバとなるゲストOSは、チャイルドパーティションとして、やはりWindows Hypervisorの上に配置される。

 Hyper-Vが従来のエミュレーション型の仮想化と異なりパフォーマンスが良いのは、ゲストOSがハードウェアにアクセスするための仕組みによる。ハードウェアへアクセスするためのドライバは、ペアレントパーティション内のWindows Server 2008にしか存在せず、ゲストOS上には存在しない。チャイルドパーティション上のゲストOSはVMBusと呼ばれる仕組みでペアレントパーティションのWindows Server 2008と接続されている。ゲストOS上にはVirtual Service Client(VSC:バーチャル・サービス・クライアント)があり、これがゲストOSにとってのハードウェアドライバに相当する。ペアレントパーティション内には、Virtual Service Provider(VSP:バーチャル・サービス・プロバイダー)があり、VSPとVSCの間がVMBusで接続されている形になる。つまり、ゲストOSからは、VSC、VMBus、VSP、ハードウェアドライバという経路でハードウェアにアクセスすることになる。

Hyper-V Hyper-Vの動作モデル

 この方式の利点はパフォーマンスだけではない。ハードウェアドライバがペアレントパーティション内のWindows Server 2008内にあることで、Windows Server 2008が対応するサーバハードウェアであれば、仮想化のための専用のドライバを必要とせずに、Hyper-Vを実行できるのだ。

 特筆すべきは、Linux用のVSCの提供も予定されており、ゲストOSとしてLinuxの使用も可能になっている点だ。VSCに対応しないゲストOSの場合は、Windows Hypervisorの上にエミュレーション層を置き、従来通りのエミュレーション環境でゲストOSを実行するという方法にも対応している。この場合でも、ペアレントパーティションとチャイルドパーティションや、チャイルドパーティション間は、VMBus以外では完全に切り離されている。

 Hyper-Vの実行には、3つの要件を満たさなければならない。まず、「Windows Server 2008 x64 Edition」であること。つまり、ペアレントパーティションのWindows Server 2008が64ビット版である必要がある。次に、AMD-VやインテルVTといったハードウェアによる仮想化支援機能を備えた64ビットプロセッサを搭載していること、そして、AMD NXまたはIntel XDビットといったハードウェアデータ実行防止(DEP)機能が使用可能で、かつBIOSによって有効になっているサーバマシンを使用することだ。

 これらの要件をクリアすれば、チャイルドパーティションのゲストOSは32ビット/64ビット両対応かつ、シングルコアでもマルチコアでも使用することができ、仮想OSへ割り当てられるメモリも最大32Gバイトとなっている。また、仮想ハードディスクのフォーマットが、従来のVirtual Server 2005のVHDフォーマットを継承していること(Windows VistaやWindows Server 2008のバックアップファイルとも同じ)や、管理コンソールがMMCに対応していることなどから、管理や運用面においても使いやすくなっていると言える。

アプリケーションの新たな実行環境、SoftGrid

 新しいアプリケーション仮想化の管理基盤がMicrosoft SoftGrid Application Virtualizationだ。アプリケーションの仮想化とターミナルサービスの違いを述べると、SoftGridで実現するアプリケーションの仮想化とターミナルサービスでは、アプリケーションを実行する場所が異なるということだ。ターミナルサービスでは、アプリケーションが実行されるのはサーバOS上で、実行時にはサーバとコンソールとなるクライアントマシンがネットワークで接続されていなければならない。しかしSoftGridでは、仮想アプリケーションはクライアントマシン上で実行されるため、オフライン状態でも利用可能となる。

 SoftGridでは、アプリケーション本体とその動作に必要なフォントやDLLなどのコンポーネントをひとまとめにパッケージングしてしまう。これをSoftGridサーバからクライアントへ配信し、クライアント側で実行する。

SoftGrid SoftGridによるアプリケーションの仮想化

 「SoftGridシーケンサー」によって作成されたアプリケーションパッケージは、SoftGrid Virtual Application Serverによってストリーミング配信される。配信される仮想アプリケーションを実行するには、クライアント側にSoftGrid for Windows Desktops、ターミナルサービスの場合にはSoftGrid for Terminal Servicesが必要となるが、これ以外のコンポーネントをあらかじめクライアント側にインストールしておく必要はない。

 アプリケーションパッケージの配信は、Active Directoryと連動させ、あるグループ単位で配信するといった制御が可能だ。また、配信されたアプリケーションを初めて実行する場合に、起動に必要な部分のみをストリーミング配信し(平均でパッケージの10〜30%)、残りは実際に必要となった時点で配信される仕組みになっているため、配信されたパッケージは、クライアント側でキャッシュされるため、一旦キャッシュされればオフラインでも実行可能だ。

 アプリケーションのバージョンアップなどの場合は、配信中のパッケージをSoftGridシーケンサを使ってバージョンアップ作業(パッチなどを含む)をしてやり、新しいパッケージを作成するだけでよい。これだけで、変更があった差分のみが配信されるようになり、クライアント側のアプリケーションのアップデートが完了するため、ソフトウェアの配布管理の面でもメリットがある。

 パッケージの配信が行われると、クライアント側では普通にアプリケーションがインストールされたイメージで見える。スタートボタンから実行したり、関連付けされたファイルをダブルクリックで開くなどの方法で、配信されたアプリケーションを実行できる。

 これだけでは単にソフトウェアのデプロイメントシステムのようであり、どのような点が仮想化に結びつくかが分かりにくいだろう。だが、SoftGridがアプリケーションの仮想化を担う理由はきちんと存在する。

 配信されたパッケージは、クライアント内ではSystem Guardと呼ばれる仮想ランタイム環境で実行される。保護されたサンドボックス内で実行されるイメージだ。System Guardは仮想アプリケーション毎に用意され、System Guard内で実行している仮想アプリケーションは、そのほかのSystem Guardのアプリケーションと通信することができないようになっている。また、クライアントOS上のレジストリやDLLなどのシステムファイルへのアクセスは、読み取りだけに制限されている。書き込みと読み込みの両方が許可されるのは、カット&ペーストのためのクリップボードやOLE、プリンタといったシステムサービスと、マイドキュメントやデスクトップといったユーザープロファイルのみに限定される。これにより、独立して切り離された安全な実行環境が約束される。

 また配信されているパッケージには、アプリケーションが必要とするDLLや設定ファイルなどが含まれたままSystem Guard内に置かれる。このため、異なるバージョンのDLLが混在したり、クライアントOSにインストールされているDLLのバージョンがアプリケーションと合わないといった、俗にいうコンフリクト(衝突)トラブルが起こる心配がない。Office 2003とOffice 2007を同時に実行するといったことも可能で、アプリケーション仮想化の本領といったところだろう。

 SoftGridの仕組み上、仮想化できないものもある。それはIME、IE、セキュリティ更新プログラム、デバイスドライバやアンチウイルスソフトなどOSへの依存度が高いものだ。だが、ActiveXコントロールやIEの設定情報などはSoftGridのパッケージ化ができるので、こうした方法で対応可能な場合もある。

 SoftGridの利用例としては、Office 2003と2007の共存のように、新しいバージョンへ切り替える過渡期に使用したり、SoftGridが標準で備える管理ツールを使用して、アプリケーションを使用するユーザー数を分析し、同時使用ライセンス数を適正に管理するといった使い方が考えられる。


 Windows Server 2008を取り巻く仮想化テクノロジーを適切に使用することで、システム費用の削減や可用性の向上、また機敏性の向上を図ることが可能となる。ダイナミックに変化する時代には、仮想化のテクノロジーは無くてはならないものと言えるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ