このページの本文へ

デスクトップ仮想化のすべて ― 第7回

OSやアプリケーションを持つ強みを生かした戦略とは?

買収から始め、一挙に環境を整えたマイクロソフトのVDI

2010年10月04日 10時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷


マイクロソフトの仮想化製品の始まりは、2003年の技術買収からだ。その後急ピッチに整備を進め、5年後にはHyper-Vとなり、併せてVDI環境も整えられてきた。デスクトップOSの開発元によるVDIは、他社製品と何が違うのだろうか

遅れて仮想デスクトップに到達したマイクロソフト

 マイクロソフトの仮想環境はサードパーティが先行しており、当初はサードパーティに協力する状態だった。その後、2003年に米コネクティクスから仮想化技術を買収。これを元に開発したのがVirtual PCやWindows Virtual Serverである。

 もっとも、この時点ではマイクロプロセッサに仮想化環境の支援機能はなく、ソフトウェア的にゲストOSの仮想メモリなどを管理する必要があったため、あまり実行効率はよくなかった。

写真1 米コネクティクスはMacintosh上でWindowsを動かすVirtual PCの開発元。写真は、1999年に発売した「Virtual PC 3.0 with Windows 98」

 この時点では、マイクロソフトの仮想化環境は、サードパーティのものに対して特に大きなメリットはなく、マイクロソフトもサードパーティと協力してビジネスを行なうという状況だった。

 ところが、AMDのプロセッサが2006年に仮想環境支援機能を搭載。これにインテルも追従すると、ゲストOSをホスト側に近い速度で実行できるようになり、また、多数のゲストOSを動作させてもそれほど非効率的にもならなくなってきた。さらに2007年には、CPUの仮想環境支援機能も2世代目に入り、効率的な仮想マシンのメモリ管理が可能となって、実行効率が向上した。

 そして、マイクロソフトは2008年に、ハイパーバイザー方式の仮想環境であるHyper-Vを出荷する。これは、Windows Server 2008のコンポーネントではあるが、ハイパーバイザーの上の特殊な仮想マシンの中でWindows Server自体が動作するものだ。ただし、Windows Server 2008では、Hyper-Vは別コンポーネントとして配布されていた。

画面1 Windows Serverの標準仮想化環境となった「Hyper-V」

 マイクロソフトのVDIは、このHyper-Vが基本となり、これに管理用の製品などを組み合わせたものになっている。Windows Server 2008 R2では、Hyper-Vは標準となった。このHyper-Vによりマイクロソフトはようやく自社の製品に仮想デスクトップ環境を持ったことになる。こうして作られたのがマイクロソフトのVDI(Virtual Desktop Infrastructure)である。

 またHyper-Vは、長らく関係の深いシトリックスのXenとある程度の互換性を持っており、Xenに対応したゲストOSはHyper-V上でも効率的な動作が可能だ。また、Xenを開発しているシトリックスは、マイクロソフトから仮想HDD形式であるVHDのライセンスを得ている。また、マイクロソフトはこれまでのサードパーティとの関係を考慮し、VDIでは既存の仮想デスクトップ製品との共存を可能にしてある。

主力は管理製品へ

 各社がしのぎを削る仮想化技術だが、現時点では仮想環境自体は主要な製品ではなくなっている。各社ともベースとなる仮想ソフトウェアは無料公開しており、多数の仮想環境を管理したり、準備/展開を行なうような管理システム、ユーティリティなどのほうにビジネスの主力が移っている。

 つまり、多数の仮想デスクトップをどれだけ効率よく簡単に管理できるのか、マイグレーションや負荷分散、アプリケーション配布といった日常的な管理業務、新規仮想デスクトップをどれだけ簡単に、それぞれの条件に合わせて構築できるか(デプロイメント)といった部分が仮想デスクトップビジネスのポイントなのである。

 マイクロソフトは、ここに対して、System Centerのような製品を用意している。マイクロソフトの大きな強みは、Windowsが仮想デスクトップで主流のゲストOSである点だ。つまり、他社の仮想デスクトップ製品であっても、ゲストOSとしてマイクロソフトの製品が利用されるわけだ。マイクロソフトにとっては、自社製品であることから、柔軟なライセンスが可能というメリットもある。

画面2 マイクロソフトのシステム管理製品System Centerの1つ「System Center Virtual Machine Manage」

 さらに、この仮想デスクトップでおもに利用する製品がマイクロソフトのOfficeスイートであるため、総合的にシステムを一括提供できるという点がサードパーティにないメリットとなる。

 マイクロソフトでは、VDIに必要なソフトウェアをまとめたVDI Suiteなどの組み合わせ製品も商品化しており、新規顧客などでは、一括してシステムを構築できるというメリットを提供するのが当初の戦略のようだ。

 また、マイクロソフトは、2008年に3Dグラフィックス表示などをネットワークを介して行なう技術を持つカリスタ・テクノロジーズ(Calista Technologies)を買収している。目的は、VDIでも、ローカルマシンと同じく3Dを使った表示を可能にするためだ。 Windows 7では、従来のGDIからDirectX系の描画技術への移行が行なわれ、AeroなどではGPUの表示機能を利用してのアクセラレーションや、アプリケーションウィンドウ単位での3Dグラフィックスの利用が可能になった。カリスタの技術は、こうしたWindows 7のデスクトップなどを、VDIで使うRDP(Remote Desktop Protocol)でも同じように利用するために必要だったのである。

 以上、マイクロソフトの仮想化戦略をおおざっぱに紹介した。続いては、VDIを実現する技術の詳細を見ていこう。

仮想化戦略のコア「Hyper-V」

 まずは、マイクロソフトの仮想化製品の核であるHyper-Vについて説明しておこう。Hyper-Vは、ハイパーバイザー型の仮想環境だ。ハイパーバイザー側がデバイスアクセスを行なうベアメタル方式ではなく、ルートパーティションとよばれる特別な仮想環境内でホストOSとなるWindows Server 2008 R2を動作させ、そのデバイスドライバを使ってデバイスを制御する方式を採用する(図1)。仮想マシンとしては、完全仮想化と準仮想化が可能となっている。

図1 Hyper-Vは、ペアレントパーティションでWindows Server 2008 R2を動作させ、そのデバイスドライバでハードウェアを制御し、VMバスを使って他の仮想環境からのI/O要求を処理する

 仮想マシン環境(パーティション)は、VMBusとよばれる機構を使って、ルートパーティションと通信することが可能だ。完全仮想化の場合には、仮想ハードウェアデバイスドライバがエミュレーションを行ない、VMBus経由でルートパーティションにハードウェアアクセスを依頼する形となる。

 また、仮想環境を効率化するため、Enlightenment I/Oとよばれるドライバが提供される。これを使うことで、デバイスエミュレーションを回避してVMBus経由で直接ルートパーティションと通信できる。また準仮想化の場合には、準仮想化対応のゲストOSカーネルはHyper-V APIを使い、Hyper-Vからの支援を受ける。

 Hyper-Vの最大の特徴は、ハイパーバイザー型でありながらWindows Server 2008 R2をホストOSにし、豊富なデバイスに対応している点である。これまでのWindows Serverと同様に管理が可能だが、同時に高い効率で仮想マシンを動作させることができる。マイクロソフトは自社のWindows XP/Vista/7といったクライアントOSを準仮想化しており、さらにEnlightenment I/Oにより、効率的な動作を行なわせることが可能だ。なお、Linux向けのEnlightenment I/Oも用意されている。

Hyper-VにRDPを組み合わせるマイクロソフトのVDI

 マイクロソフトのVDIの中心になるのは、Windows Server 2008 R2とHyper-Vだ。Windows Server 2008 R2では、Hyper-Vはバンドルされた標準コンポーネントの1つであり、OSのインストール時に同時に組み込むことが可能である。

 もっとも簡単な構成は、このHyper-V上でゲストOSを動作させ、ゲストOSが持つリモートデスクトップ機能を使うことでVDIを実現するものだ。ごく少人数であれば、インストールなどの手間はあるものの実行環境をサーバー側に集約でき、クライアントにはこれまで使っていたPCをそのまま利用することもできる。つまり、Windows Server 2008 R2とネットワーク、数台のクライアントさえ導入すれば、すぐにでもVDIを実現可能なわけだ。

 しかし、これでは、各ユーザーの環境を作るためには、1台のPCをインストールして構築するのと何もかわらない。VHDをコピーすることで作業は簡易にできるが、せいぜい数人までが限界だろう。また、ユーザー側も、自分のVDIに対応する仮想マシンを指定して接続する必要がある。この仮想マシンに対して、マイクロソフトは、いくつかの管理ツールを提供している(図2)。

図2 System CenterやWindows Server 2008 R2のコンポーネント、クライアントOS用の追加コンポーネントなどを組み合わせて、全体を管理するシステムを作り上げている

 具体的な製品としてはWindows Server 2008 R2とSystem Center、そしてDesktop Optimization Packである。また、VDIを使うためのライセンス(RDSやクライアントOS用など)が別途必要になる。これらをまとめたのが、Virtual Desktop Infrastructure Suiteという製品であり、Standard、Premiumの2種が用意されている(図3)。

図3 VDIの導入を簡単にするため、必要なサーバー側ライセンスやソフトウェアを組み合わせたVDI Suiteが用意されている

SP1でVDIの3D機能を強化

 Windows Server 2008から2008 R2へのバージョンアップで強化された仮想化機能だが、今後提供予定のService Pack 1(SP1)では、VDI関連の機能が以下のように強化される予定だ。

  1. RemoteFX(RDP関連の強化)
  2. Dynamicメモリ(Hyper-Vの強化)

 RemoteFXは、カリスタの技術をベースにした技術だ。サーバーが搭載するGPUを仮想化し、仮想マシンの3Dグラフィックスなどをペアレントパーティション内の物理GPUでレンダリングする。そして、RDPを介してクライアントに送る仕組みとなっている(図4)。

図4 RemoteFXとは、GPUを仮想化したうえ、ペアレントパーティションのGPUや専用ASICでレンダリング、そのイメージをRDPで転送するもの。ハードウェアを利用することで高速な3D処理などが可能となる

 RemoteFXでは、複数のGPUをペアレントパーティションに装備して負荷分散を行なえるほか、RemoteFX専用のレンダリングASICが定義されており、レンダリングからキャプチャまでを専用ハードウェアで行なわせることもできる。この専用ASICは、クライアント側も定義されており、高速なエンコードを可能にする。これにより、3D機能やSilverlightのようなグラフィックスやアニメーションといった表示をVDI環境で容易に利用できるようになり、VDI環境と通常クライアントを区別しないで済むようになる。ただし、このRemoteFXは、GPUをフルに使い続けるような3Dゲームを前提としたものではないようだ。

 また、クライアント側のUSBデバイスをホスト側の仮想マシンで扱うRemoteFX USBという機能を持つ。さらにRDP自体も拡張され、クライアントサイドレンダリングで3D処理が可能になるようだ。

 Dynamicメモリは、仮想マシンに割り当てる物理メモリを動的に変更する仕組みである。仮想マシン内には通常ゲストOSが動作しており、これが仮想メモリを実現しているが、最終的にはハイパーバイザー側で、利用できる物理メモリを割り当てることになる。これまでのHyper-Vでは仮想マシンの作成時に、固定したサイズのメモリを割り当てていた。

 しかし、Dynamicメモリでは、最低/最大のメモリ量を指定でき、ユーザーの指定した優先度によって物理メモリを仮想マシンに割り当てる。つまり、仮想マシン側から見ると、利用できる物理メモリを増減させることでメモリを効率的に管理しているわけだ。ゲストOSのメモリ利用量が減ると、自動的にこれを回収して別の仮想マシンに割り当てることも行なわれる。ただし、このためには、ゲストOS側にモジュールが必要で、これは、SP1で提供される各ゲストOS用の統合サービスに含まれている。

 2010年9月現在、SP1は開発中であり、パブリックベータが公開されている(画面3)。どちらのOSもカーネルベースは同じため、基本的にはSPの開発が同時に行なわれる。

画面3 Windows Server 2008 R2とWindows 7用SP1のベータ版ダウンロードサイト

 正式版のリリース予定は公表されていないが、2011年初頭もしくは2010年の第4四半期ではないかといわれている。

カテゴリートップへ

この特集の記事

ASCII.jp特設サイト

クラウド連載/すっきりわかった仮想化技術

ピックアップ