連載
» 2011年04月14日 00時00分 公開

Windows Server 2008 R2の真価:第12回 3DグラフィックスをサポートするHyper-VのRemoteFX (1/3)

Windows Server 2008 R2 SP1のHyper-Vでは、仮想マシン環境で3Dグラフィックス機能のDirect3Dが使えるようになった。

[打越浩幸,デジタルアドバンテージ]
Windows Server Insider

 

「」のインデックス

連載目次

「Windows Server 2008 R2の真価」は、Windows Server 2008の後継OSである、Windows Server 2008 R2の注目機能について解説するコーナーです。


前回は、Windows Server 2008 R2 Service Pack 1(SP1)のHyper-Vにおける重要な拡張機能の1つ、Dynamic Memoryについて解説した。今回はもう1つの重要な拡張機能、RemoteFXについて取り上げる。Windows Server 2008 R2 SP1の概要や入手先、インストール方法などについては、以下の記事を参照していただきたい。

マイクロソフトのデスクトップ仮想化技術

 RemoteFXの解説に入る前に、Windows環境におけるデスクトップの仮想化技術について簡単にまとめておこう。マイクロソフト製の技術/製品としては、具体的には次のようなものがある(詳細については関連記事を参照)。

デスクトップ仮想化技術 概要
Virtual PC クライアントPCにおけるデスクトップの仮想化。一番初期のもの
Windows XP Mode Windows 7で利用可能な、Windows XPデスクトップの仮想化環境。Virtual PCの後継であるWindows Virtual PC上で動作する。ゲストOSを意識させないシームレスな操作が可能
MED-V/App-V MED-V(Microsoft Enterprise Desktop Virtualization)は、Virtual PCとXP Modeの集中管理化を行うシステム。App-V(Microsoft Application Virtualization)はアプリケーションの仮想化機能
RDS(Remote Desktop Services) Windows Server 2008/Windows Server 2008 R2で利用可能な、RDS(Remote Desktop Services)を使った仮想化システム。ただしこの環境では、アプリケーションはサーバOS上で稼働するため、完全なクライアント向けデスクトップOSの仮想化とは異なる(アプリケーションによっては動かないことがある)。なおリモート・デスクトップ(RD)は、以前はターミナル・サービスと呼ばれていた
VDI(Virtual Desktop Infrastructure) Hyper-V 2.0の仮想マシンを使ったRDS環境
Windows環境におけるデスクトップ仮想化技術

 Virtual PCや(Windows Virtual PC上の)Windows XP Modeは、ローカルのデスクトップPC上で仮想デスクトップを稼働させる技術である。これをベースにして、Windowsドメイン上で集中管理できるようにしたのがMED-VやApp-Vを使った仮想実行環境である。

 これをさらに進め、仮想マシンとして用意したデスクトップ環境を展開するのがHyper-Vを使ったVDIである。今回解説するRemoteFXは、VDI方式の仮想デスクトップ環境における拡張機能の1つであり、3Dグラフィックス機能をサポートする。

Windows Server 2008 R2におけるVDIの全体像
VDI向けの管理機能を追加されたリモート・デスクトップ・サービスやHyper-V 2.0、Active Directory、App-Vなどで構成される。なお、「RD」はRemote Desktopの略。
※詳細はWindows Server 2008 R2によるVDI実践入門 第1回「デスクトップの仮想化とVDIの違いを知っていますか?」参照。

RemoteFXとは

 RemoteFXは、Windows Server 2008 R2 SP1のHyper-Vで実現される、RD仮想化ホスト/RDセッション・ホストで強化された機能の1つである。これを使うと、仮想マシン環境において3Dグラフィックス(Direct3D)の利用が可能になる。

 今までのHyper-Vの仮想マシンでは、グラフィックスは2D描画のみに限定されており、3Dグラフィックス機能(Direct3D)は利用できなかった。Direct3Dはゲームで利用されることが多いが、実際にはマルチメディア系のアプリケーションで利用されることもあるし、最近ではSilverlightやOffice 2010のような一般アプリケーションでも利用されることがある。つまり、ビジネス用途でも3Dグラフィックスの需要は高まっており、仮想デスクトップでも3Dグラフィックス機能の提供が望まれている。

 このような要望に応えるため、Windows Server 2008 R2 SP1のHyper-Vでは、仮想マシンで3Dグラフィックス機能を利用する技術「RemoteFX」が実装された。リモート・デスクトップ上で3Dを利用可能にする技術を開発していた、米Calista Technologies社のテクノロジをベースにしている。RemoteFXの3D技術が、VMwareのVMware PlayerやOracleのVirtualBoxなどと最も異なる点は、サーバOS上でGPUを利用してレンダリングを行っているという点にある。簡単にまとめると、次のようになる。

テクノロジ 3D機能の実現 メリット デメリット
RemoteFX サーバ・コンピュータ上のGPU(グラフィックス・カード) 高速 サーバに3Dグラフィックス・カードの装着が必須。そうでないサーバの場合は、クライアントでは3D機能が利用できない
他社の仮想環境 サーバ・コンピュータ上のソフトウェア・エミュレーション どのようなサーバ・コンピュータでも動作する。つまりユーザーは常に3Dを利用できる 速度はエミュレーションなので速くない
仮想環境における3Dの実装方式の違い
RemoteFXと、ソフトウェア・エミュレーション方式の比較。RemoteFXでは実際のグラフィックス・カードを利用するため、性能は高いが、サーバにグラフィックス・カードが必要、サポートするクライアント数を増やすためには大量のVRAMが必要など、導入のためのハードルは低くない。

 RemoteFXの内部的なアーキテクチャについては、次の図を見ていただきたい。

RemoteFXによる仮想環境での3Dグラフィックス機能の実現
Hyper-V上の仮想マシンには仮想GPUドライバが導入されており、ゲストOSからの3D描画命令は、実際にサーバ上のグラフィックス・カードのGPUを使って描画される。複数のゲストからの描画要求を処理するため、VRAMは固定サイズで分割されている。そのためVRAMの容量によって、3D描画を実行可能なゲストOSの数が制限される(3D描画を使わないゲストOSの最大数は、従来通りほかのリソースで制限される)。VRAMに書き込まれた画面データは単なるビットマップ・データとしてクライアント側へ送信され、そこで描画される。クライアント側には3Dグラフィックス・カードは不要である。RDP 7.1は、3D画面やマルチメディア・データなどのビットマップ・データの転送に適した新しい通信プロトコル。データはCPU+GPUで圧縮するか、ハードウェア・エンコーダを使って圧縮する。

 サーバ・コンピュータにGPUを搭載したグラフィックス・カードを載せ、そのGPUを仮想マシンから利用している。複数の仮想マシンから1つのGPUを共有するため、各仮想マシン(図中の「ゲストOS」)には仮想のGPUハードウェアを駆動するドライバ(vGPUドライバ)をインストールしている。各仮想マシンからvGPUに発行された描画コマンドはグラフィックス・カードへ送られ、そこで実際に描画が行われる。もちろん、複数の仮想マシンからの描画が重ならないように、VRAMを分割して各仮想マシンに割り当てて利用している。これにより、ソフトウェア・エミュレーションでは得られない高度な機能の実現や、高速な描画が可能となる。

 描画されたVRAM上のバッファの内容(ビットマップ・データ)は、新しいリモート・デスクトップ・プロトコル7.1(RDP 7.1)を使って、クライアント・コンピュータに転送され、そのウィンドウ上に表示される。これにより、リモート・デスクトップ・クライアントで接続しながらも、仮想マシン上で3Dグラフィックスが利用できるというわけである。クライアントPC側に3Dグラフィックス・カードは不要である。

 ところでこのRDP 7.1は従来のプロトコル(RDP 7.0以下)とは異なり、新しい転送方式を採用している。従来は2Dのグラフィックスを想定していたため、画面データの差分や描画コマンドなどを送信するだけでも十分であった。通信回線の帯域が少ない場合は、送信するデータを間引いたり、省略したりして通信量を抑えていた。

 だが3Dグラフィックスの場合は、画面全体の更新が多く(例えばゲームなどでは、画面全体を利用するものが多い)、2D向けの送信アルゴリズムはあまり適していない。どちらかというと、ビデオ画面のように画面全体を効率よく送信して更新することが望まれる。そこで従来のRDP 7.0とは異なり、ビットマップ・データを効率よく更新するプロトコルを採用している。データの圧縮、エンコードにはGPUの機能も使ってホストのCPUの負荷を抑えている。また、このようなエンコードを行う専用ハードウェアを追加して利用することもできる。このようなハードウェア機能は従来のシン・クライアント端末(リモート・デスクトップの専用端末)にも十分実装できる程度のものであり、今後そのような端末が発売される予定である。

RemoteFXのシステム要件

 RemoteFXを利用するためのシステム要件を以下に示しておく。RemoteFXは、本来はVDI機能の1つとして提供されているものであるが、今回はHyper-Vのサーバ1台、クライアント1台という構成で利用するケースを取り上げる。詳細な要件は「Hardware Considerations for RemoteFX[英語](TechNetサイト)」を参照していただきたい。

項目 内容
サーバCPU 仮想化機能を備えていてHyper-Vが実行できるようになっているだけでなく、仮想環境におけるページングを高速化するSLAT(Second Level Address Translation)機能(Intel EPT:Extended Page TablesやAMD RVI:Rapid Virtualization Indexing)も持っていること。最近(2009年半ば以降)のCPUならばほとんど備えているはず
GPU 3D処理をサポートするGPUを搭載したグラフィックス・カード。将来は分からないが、少なくとも現在のHyper-Vでは、サーバ上に物理グラフィックス・カードの装着が必須である。CPUの内蔵グラフィックスは使用不可。専用の独立したカードで、メイン・メモリとは独立したVRAMを持っていること。GPUの速度も重要だが、多数のRemoteFXクライアントをサポートするためには、なるべく多くのグラフィックス・メモリ(VRAM)を持つものが望ましい。最大4枚までのグラフィックス・カードを利用することもできるが、その場合はすべて同じ仕様が要求される。ドライバはDirectX 9.0cとDirectX 10.0をサポートしたWDDM形式のものがインストールされていること。利用できるグラフィックス・カードの例としては、「AMD FirePro」「nVidia Quadro」「nVidia Quadroplex」などがある(「Beta testing Microsoft RemoteFX in Service Pack 1[英語]」参照)
RemoteFXエンコーダ・ハードウェア オプション。あればビットマップ・データのエンコード処理の負荷が軽減される
サーバOS Windows Server 2008 R2 Standard/Enterprise/Datacenterエディション。Web ServerエディションやIA64は不可
役割 「Hyper-V」役割を追加後、さらに「リモート デスクトップ サービス」役割も追加する
RemoteFXのサーバ側(Windows Server 2008 R2 SP1側)の要件

項目 内容
ゲストOS Hyper-V上で実行する仮想マシンのOSは、Windows 7 Ultimate/Enterprise SP1が必要。ほかのエディションではRemoteFXは利用できない。なお従来のRDPの通信(Windowsファイアウォールのルール名は「リモート デスクトップ接続」)以外に、新しく「リモート デスクトップ - RemoteFX」というルールも許可しておかなければならない。仮想マシンの設定では、「RemoteFX 3D ビデオ アダプター」ハードウェアを追加する
RemoteFXのゲストOSの要件

項目 内容
Windows PCの場合 クライアント・コンピュータのOSは、Windows Server 2008 R2 SP1かWindows 7 SP1であること。RDP 7.1をサポートしたリモート・デスクトップ接続アプリケーションは、現在のところ、これらのWindows OSでしか利用できない。RDP 7.0もしくはそれ以下のバージョンで接続すると、従来のように2Dのみのサポートとなる
シン・クライアント端末の場合 RDP 7.1をサポートしたシン・クライアント端末。Windows Thin PC(現在開発中)でも利用可能(「Column: Windows Thin PC」参照)
RemoteFXのクライアント側ハードウェアの要件

 先ほどの図で分かるように、RemoteFXを利用するためには、RDP 7.1プロトコルをサポートしたリモート・デスクトップのクライアント・プログラム(もしくは専用ハードウェアであるシン・クライアント端末)が必要である。従来のHyper-Vでは、仮想マシンのコンソール画面を表示するためにvmconnect.exeというプログラム(「仮想マシン接続」アプリケーション)を利用していたが(TIPS「Hyper-Vの仮想マシンへのショートカットを作成する」参照)、これはRemoteFXのデスクトップ画面を表示するためには利用できない。vmconnect.exeを利用した場合、ゲストOSのブート画面は表示されるが、ゲストOSが起動してRemoteFXのドライバが有効になった時点で、vmconnect.exeの画面には何も表示されなくなる。その後は、リモート・デスクトップ接続経由でしか仮想マシンにアクセスできなくなるので注意する。


       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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