第12回 3DグラフィックスをサポートするHyper-VのRemoteFXWindows Server 2008 R2の真価(2/3 ページ)

» 2011年04月14日 00時00分 公開
[打越浩幸デジタルアドバンテージ]

 さてそれでは、RemoteFX機能を使う手順を解説する。

 RemoteFXを利用するためには、サーバ・マネージャで「Hyper-V」役割を追加後、さらに「リモート デスクトップ サービス」役割を追加する。なおWindows Server 2008 R2 SP1のリモート・デスクトップ・サービス(旧ターミナル・サービス)は、別途ライセンスの購入が必要なサービスである。評価用に導入する場合は、導入後120日まではRDライセンス・サーバなどを導入しなくても利用できるので、120日以内に評価を済ませること。

リモート・デスクトップ・役割の追加
RemoteFXはリモート・デスクトップ・サービスにおける機能の1つとして提供されているので、まずこの役割を追加する。
  (1)これを選択してウィザードを進める。

 ウィザードの役割サービスの追加画面では、「リモート デスクトップ仮想化ホスト」の下にある「コア サービス」と「RemoteFX」を追加する。

RemoteFX役割サービスの追加
RemoteFXを利用するためには、リモート・デスクトップ役割にあるこの2つの役割サービスを追加する。
  (1)これらを追加する。

 以上の設定後、ウィザードを進めて作業を完了させ、システムを再起動する。導入の準備は以上で終了である。次は各仮想マシンごとにRemoteFX機能を有効にする。

 まず仮想マシンの設定画面を表示させ(ゲストOSはWindows 7のUltimate SP1かEnterprise SP1にすること)、「RemoteFX 3D ビデオ アダプター」というハードウェアを追加する。

RemoteFX用デバイスの追加(1)
RemoteFXを利用したい仮想マシンの設定画面を開き、仮想GPU用のデバイスを追加する。システムを起動すると、このデバイス用のデバイス・ドライバが自動的に追加される。
  (1)これを選択する。
  (2)このデバイスを選択して追加する。

 次に設定画面の「RemoteFX 3D ビデオ アダプター」を開き、利用したい画面(モニター)のサイズ(解像度)と画面数を指定する。これらの設定は、ゲストOSが停止しているときにのみ変更できる。

RemoteFX用デバイスの追加(2)
RemoteFX用デバイスを追加したら、次は画面の解像度とモニタ数を設定する。これにより、仮想マシンに割り当てられる仮想的なVRAMのサイズ(実際にはグラフィックス・カード上のVRAM上に確保される)が決まる。
  (1)これを選択する。
  (2)マルチ・モニタ構成で利用したい場合は2〜4を指定するが、リモート・デスクトップ画面の操作が面倒になるので、通常は1画面構成で利用するのがよい。
  (3)クライアント側に合わせて解像度を指定する。

 この画面における「モニター」とは、仮想マシンで実現するグラフィックス画面の解像度と画面数である。画面数は通常は1つでよいだろうが、マルチ・モニタ構成(のリモート・デスクトップ接続)で利用したい場合は、2とか3、4にする(ただしリモート・デスクトップ画面の操作が面倒になるので、通常は1画面構成で利用するのがよい)。解像度は、クライアント側のサイズに合わせて設定する。

 なおこのモニタ設定を変更すると、仮想マシンに割り当てられるグラフィックスVRAMのサイズが変わる。また、サーバに装着したグラフィックス・カードのVRAMからその仮想マシンに対して実際に確保されることになるので(VRAMの確保は仮想マシンの起動時に行われる。予約することはできない)、VRAMの実容量と、RemoteFXを利用したい仮想マシンの総数に基づいて決める必要がある。

最大解像度 1画面 2画面 3画面 4画面
1024×768 75Mbytes 105Mbytes 135Mbytes 165Mbytes
1280×1024 125Mbytes 175Mbytes 225Mbytes 275Mbytes
1600×1200 184Mbytes 257Mbytes 330Mbytes 利用不可
1920×1200 220Mbytes 308Mbytes 利用不可 利用不可
RemoteFXの最大サポート解像度と割り当てられるVRAMサイズ
解像度と画面数を指定すると、そのサイズ分だけ実際のグラフィックス・カードからVRAM領域が確保される。従って、意味もなく大きな解像度を指定すると、VRAMを余計に使うことになる。なお解像度はこの4種類しか選択できない(カスタマイズは不可)。例えば1920×1050(いわゆるフルHDサイズ)で利用したければ、1920×1200を選んでおくしかない。

 例えば1280×1024の解像度でRemoteFXを利用したい場合、モニタ数=1、最大解像度=1280×1024を選択する。するとその仮想マシンからは、125MbytesのVRAMを持つ仮想グラフィックス・カードとして見えることになる。と同時に、Hyper-Vのサーバに装着したグラフィックス・カードからは、125Mbytes分のVRAMがその仮想マシンに割り当てられる。

 RemoteFXの利用画面の例を次に示しておく。

RemoteFXの利用例
このように、RemoteFXを使えばHyper-V上でも3Dグラフィックスを利用するアプリケーション(ゲーム)を実行できる。ちなみに、Windows AeroはRemoteFXでなくても利用できる。Windows AeroはDirect3Dではなく、リモート・デスクトップのデスクトップ・コンポジション機能(リモートのウィンドウをローカル側で合成する機能)を使って実現されているからである(連載Vistaの地平「改良されたVistaの描画アーキテクチャ」参照)。

 RemoteFXではDirectX 9を使うようなゲームも利用できるが、実際のフレーム・レート(画面の更新頻度)はせいぜい10〜20回/秒程度である。サーバ側でGPUを使っているので、仮想マシン内での描画は確かに速いが、画面データをクライアント側へ転送する速度などに制約を受けるので、実際のフレーム・レートはかなり低くなってしまう。ゲームなどを実行するための機能というよりは、FlashやSilverlight、Officeアプリケーションのような、DirectXを少しだけ活用するようなアプリケーションの実行に向いていると言える。

 なおRemoteFXを有効にしてWindows 7の仮想マシンを起動すると、ブート後にRemoteFXが有効になったタイミングでHyper-Vの仮想マシン接続画面(vmconnect.exe)は切断され、次のようになる。以後は、RDP 7.1をサポートしたリモート・デスクトップ接続クライアントを使って接続する必要がある。あらかじめリモート・デスクトップ接続(のためのファイアウォール規則など)を許可しておかないと、操作できなくなるので注意する。

RemoteFX有効時のvmconnectの画面
Windows OSのブート後、RemoteFXが有効になったとたんに、仮想マシン接続の画面はこのようになり、何も操作できなくなる。以後はリモート・デスクトップ接続経由でしかアクセスできない。だがあらかじめリモート・デスクトップ接続を有効にしていないと、外部から接続できなくなるので注意する。そうなったら、例えばこの画面でシャットダウン/再起動してからセーフ・モードで起動して設定し直したり、古いスナップショットまで戻って設定をやり直したりする。

 また、リモート・デスクトップで接続する場合は、「エクスペリエンス」で「LAN(10 Mbps 以上)」を選択しておかないと、RemoteFXが有効にならない。

RDP 7.1をサポートしたリモート・デスクトップ接続クライアント
これはWindows 7 SP1に付属のリモート・デスクトップ接続の画面の例(サポートしているRDPは7.1)。RemoteFXをオン/オフするための特定のフラグやスイッチなどは用意されておらず、WAN以下の速度で接続するとRemoteFXは自動的に無効となるようである。ただしRemoteFXが無効になっていても、すでに確保されているサーバ上のグラフィックス・カードのVRAMは解放されない。VRAMを解放するには、仮想マシンを停止するか、RemoteFXハードウェアを削除して仮想マシンを起動する。

RemoteFXが起動できない場合の例

 RemoteFX機能を有効にしたけれども、Hyper-Vのサーバにグラフィックス・カードが装着されていないとか、CPUの内蔵グラフィックなのでハードウェア要件を満たしていない、仮想マシンに割り当てたVRAM容量(の総計)が不足するといった場合には、仮想マシンを起動できずにエラーとなる。これらのエラーは、設定を行った時点ではなく、仮想マシンを起動しようと時点で表示されるので、注意する。

RemoteFXにおけるエラーの例
これは、Hyper-Vサーバのビデオが、CPUの内蔵グラフィックスであったために起動できなかった場合のエラー。グラフィックス・カードが見つからない場合やVRAMが足りない場合でも、このような「Microsoft Synthetic 3dD Display Controller」関連のエラーが表示される。このようにエラーは起動時にしか表示されないので、原因を調べる場合は注意する。


 RemoteFXには、これ以外にも「USBデバイス・リダイレクト」という機能があり、クライアント側に装着したUSBデバイスを仮想マシンで利用することができる。例えばUSBカメラやUSBセキュリティ・デバイス(指紋認証装置など)、プリンタ、スキャナ、ヘッドセットなどをリダイレクトして利用できる。これはちょうどWindows 7のWindows Virtual PCにおけるUSBサポートと同じような機能である。これについてはまた別の機会に触れることにする。


 今回はWindows Server 2008 R2 SP1のHyper-Vにおける新機能RemoteFXについて簡単に紹介した。仮想デスクトップでも3D描画が実現できる機能は、確かに長らく待たれていたものだ。サーバ・ハードウェアに3Dグラフィックス・カードを指し、それを活用して仮想マシンを実行するというのは、アイデアとしては面白いし、パフォーマンスを考えると理想的だろう。

 ただ実環境でこれを利用するとなると、少し考えるかもしれない。例えばブレード・サーバやミドル・エンド以上のラック・マウント型のサーバでは、高性能グラフィックス・カードがよく必要とするPCI Express x16などの拡張スロットを搭載していないことも少なくない。またサーバOSでの利用がサポートされているグラフィックス・カードは少ないし、仮想マシンごとに固定的にグラフィックスVRAMが確保されるため、例えば1GbytesのVRAMがあってもせいぜい数台の仮想マシンしか実行できない(1024×768の解像度なら12台程度サポートできるが、これでは狭すぎるだろう)。さらに現状では、RDP 7.1をサポートしているクライアントはWindows 7 SP1(とWindows Server 2008 R2 SP1)しかないが、これならばローカルのクライアント側にグラフィックス・カードをインストールして利用した方が便利だ。将来は、ほかのOS用にもクライアント・ソフトウェアが用意されるだろうし、シン・クライアントも利用できるようになるので(次ページの「Column: Windows Thin PC」参照)、そのときには、1台のサーバで数人ずつをサポートする、例えば教育や研究、公共端末などの分野では便利かもしれない。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。