次の方法で共有


何でも屋

安価な仮想デスクトップを実現するために Hyper-V を RDS に追加する

Greg Shields

ホストされた仮想デスクトップは、アプリケーションの問題すべてに対する解決策ではありません。

Hyper-V 上でホストされリモート デスクトップ サービス (RDS) を通じてユーザーに提供される、こうした仮想化されたデスクトップは、大量のサーバー リソースを消費します。このような仮想化されたデスクトップでは、インストールや管理を行うために必要な手順が従来の RDS の場合よりも多く、また、同じ数の同時使用ユーザーをサポートするために必要なサーバー ハードウェアも比較的多くなります。必要な記憶域の量が多い分、より多くのコストがかかる場合があります。

それにもかかわらず、組織の規模を問わず、仮想デスクトップの採用を検討している組織の数は常に増え続けているように思えます。IT メディアで 2008 年と 2009 年が "サーバー仮想化の時代" と呼ばれるとすれば、2010 年およびそれ以降は "デスクトップ仮想化の時代" と呼ばれるようになるのではないでしょうか。

明白な指標の多くが、ホストされた仮想デスクトップは従来の RDS よりも複雑で、高価で、多くの労力を必要とすることを示しているにもかかわらず、なぜ、ホストされた仮想デスクトップは依然として話題になっているのでしょうか。簡単に言うと、ホストされた仮想デスクトップは役に立つからです。

RDS は、元になる機能であるターミナル サービス (TS) と同様に、ユーザーにアプリケーションへのアクセスを提供するための最適化されたソリューションです。TS サーバーや RDS サーバーを作成してアプリケーションをこのサーバーにインストールするという方法は、長年の間、アプリケーションをデータセンターに集約するためのメカニズムとして使用されてきました。サーバー ベースのコンピューティングは、アプリケーションやデータへの充実したアクセスを提供する手段としてのネットワークの使用に関して独自の長い歴史を持っています。

しかし、TS と RDS のどちらにおいても、ある制約が多くの環境にとっての障害として残されていました。簡単に言うと、その制約とは、リモート サービス テクノロジとうまく連携しないアプリケーションが存在するということです。また、連携はするが、レジストリのカスタマイズや、何でも屋である IT プロフェッショナルの経験の範囲内では対処しきれない他のコンピューター操作を必要とするアプリケーションもあります。TS/RDS が持つセッション ベースの複雑さをなくし、アプリケーションを 1 対 1 ベースで仮想デスクトップにインストールすることにより、こうした問題の多くが回避されます。

RDS を仮想デスクトップで拡張する理由はいろいろありますが、アプリケーションの競合と問題のあるアプリケーションのパフォーマンス管理に対処するためというのが最も重要な理由の 1 つです。ユーザーにアプリケーションやデータへのアクセスを提供するために使用するメカニズムに仮想デスクトップを追加することは、小規模企業にとって非常に賢明な解決策となる場合があります。

基本的な仮想デスクトップ: 4 つの役割サービスと 1 つのサーバー

Windows Server 2008 R2 に仮想デスクトップが含まれていることにより、仮想デスクトップのインストールは予算の観点から見て魅力的なものとなっています。Windows Server ライセンスをお持ちの場合は、仮想デスクトップを使い始めるために必要なものを既に持っていることになります。

この例では、このライセンスを使用して一種の "基本的な仮想デスクトップ" を作成する方法を示します。この単一サーバー環境を、仮想デスクトップ テクノロジの評価や、小規模環境の実稼動に使用することができます。この環境で仮想デスクトップに接続するユーザーは、リモート デスクトップ Web アクセスによって自動生成された Web ページを通じて接続します。ユーザーは、この 1 つの Web ページから、個人用仮想デスクトップ (各自のユーザー アカウントに明確に関連付けられた仮想デスクトップ) を選択することができます。

このような環境を作成するには、RDS の役割、および RDS の役割サービスのうち 4 つをこの単一のサーバーにインストールする必要があります。この 4 つを以下に示します。

  • RD セッション ホスト: この役割サービスでは、従来から RDS または TS と関連付けられている、セッション ベースの機能を処理します。この例では、リモート デスクトップ プロトコルを使用して仮想デスクトップの画面コマンド、キーボード コマンド、およびマウス コマンドを転送するために、RD セッション ホストは "リダイレクト モード" で使用されます。
  • RD 接続ブローカー: この環境では、接続ブローカーの主な役目は、ユーザーに適切な仮想デスクトップへのアクセスを提供することです。
  • RD Web アクセス: この役割サービスでは、エンド ユーザーが仮想デスクトップに接続するためにアクセスする Web ページの作成と管理を行います。この役割サービスをインストールすると、IIS のコンポーネントもインストールされます。
  • RD 仮想化ホスト: この役割サービスは、Hyper-V に機能を追加し、仮想デスクトップをユーザーに提供できるようにします。Hyper-V の役割がまだインストールされていない場合は、この役割サービスをインストールすると、Hyper-V の役割もインストールされます。この "基本的な" 環境を作成する際は、選択されたサーバーのハードウェアが Hyper-V の最小要件をサポートしている必要があります。

まずは、この 4 つの役割サービスそれぞれと、各サービスを実行するための前提条件となるものを同じコンピューターにインストールします。各インストールで選択を求められた際は既定の設定を選択し、指示に従ってコンピューターを再起動します。

初めての仮想デスクトップを作成する

この 4 つのサービスをインストールしたら、これらを相互接続するためにいくつかの構成を行う必要があります。また、Windows 7 デスクトップ コンピューターを構築し、特別に構成する必要があります。このコンピューターは最終的に、皆さんの初めての仮想デスクトップとなります。このデスクトップの仮想マシンと OS のインストールと構成からこのプロセスを開始することをお勧めします。後の手順でその情報が必要になるからです。

Windows 7 仮想デスクトップを作成するプロセスは、他の新しい仮想マシンの作成とよく似ています。他の仮想マシンの場合と同様に、まず、Hyper-V マネージャーに移動し、仮想マシンを作成します。仮想マシンに適切な量の RAM とハード ディスク領域、および適切なネットワークを割り当てます。仮想マシンの物理的な CD/DVD ドライブを Windows 7 ISO ファイルに関連付け、インストールを開始します。この仮想マシンに割り当てた一意の名前を覚えておきます。RD 接続ブローカーがユーザーを仮想デスクトップに接続するためにこの情報が必要になるからです。

新しい仮想デスクトップに名前と IP アドレスを指定し、この仮想デスクトップをドメインに接続します。次に、OS をリモートからアクセスできる仮想デスクトップにするための準備として、いくつかの特別な構成を行う必要があります。こうした特別な構成を以下に示します (各構成を、仮想デスクトップの仮想マシン OS 内で行う必要があります)。

  • リモート デスクトップを有効にする: このコンピューターへのリモート接続を可能にするには、当然、このコンピューターをリモート デスクトップ サービス対応にする必要があります。これを行うには、[コンピューター] を右クリックし、[プロパティ] をクリックし、[リモートの設定] をクリックし、[ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからのみ接続を許可する] をクリックします。
  • ユーザーを Remote Desktop Users グループに追加する: 管理者以外のユーザーは、コンピューターのローカルの Remote Desktop Users グループに明示的に追加する必要があります。これを行うには、[ローカル ユーザーとグループ] でユーザーのドメイン ユーザー アカウントを Remote Desktop Users グループに追加します。
  • RDS でのリモート RPC を許可する: デスクトップへのリモート RPC を許可するには、レジストリに変更を加える必要があります。仮想デスクトップのレジストリ パス HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer で、AllowRemoteRPC の REG_DWORD 値を 1 に変更します。
  • ファイアウォールの例外を有効にする: お使いの環境で Windows ファイアウォールを使用している場合は、リモート サービス管理を例外のプログラムに追加する必要があります。
  • RDP プロトコルのアクセス許可を変更する: この最後の構成を行うには、仮想デスクトップで、管理者特権でのコマンド プロンプトに一連のコマンドを入力する必要があります。入力するコマンドを以下に順に示します。各コマンドの {domain} の部分をドメインの NetBIOS 名に置き換え、{rdv_host} の部分を Hyper-V サーバーの名前に置き換えてください。
wmic /node:localhost RDPERMISSIONS where TerminalName="RDP-Tcp" CALL AddAccount "{domain}\{rdv_host}$",1
wmic /node:localhost  RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='{domain}\\{rdv_host}$'" CALL ModifyPermissions 0,1
wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='{domain}\\{rdv_host}$'" CALL ModifyPermissions 2,1
wmic /node:localhost RDACCOUNT where "(TerminalName='RDP-Tcp' or TerminalName='Console') and AccountName='{domain}\\{rdv_host}$'" CALL ModifyPermissions 9,1

これらの構成が完了したら、コンピューターを再起動し、電源はオンになっているがログオフされている状態にします。コンピューターがログオフされた状態になっていれば、最後の構成の完了後、ユーザーは各自の仮想デスクトップにログインすることができます。

4 つの役割サービスを接続する

初めての仮想デスクトップを作成し準備したので、4 つの役割サービスを相互接続するための手順があといくつか残っています。残りの手順は、RD 接続ブローカー サーバーと RD Web アクセス サーバーに互いを認識させ、個人用仮想デスクトップへの接続をセットアップし、最後に、それにユーザーを割り当てるというものです。

手順 1 を実行するには、RD Web アクセス サーバーとして使用するコンピューターを RD 接続ブローカーに通知する必要があります。これを行うには、サーバーの [ローカル ユーザーとグループ] で、このサーバーのコンピューター アカウントを TS Web Access Computers グループに追加します。

 

図 1 RD Web アクセスを構成

手順 2 では、RD Web アクセス内で RD 接続ブローカーのソースを構成します。これにより、この 2 つの役割サービス間の接続が完了します。これを行うには、[管理ツール] の [リモート デスクトップ サービス] の [リモート デスクトップ Web アクセスの構成] に移動します。このリンクをクリックすると、Internet Explorer が起動され、ローカル コンピューターの RD Web アクセス管理ページに接続されます。管理者の資格情報を使用してログインすると、図 1 のような画面が表示されます。この画面で、[RD 接続ブローカー サーバー] が選択されていることを確認します。2 つの役割は同じコンピューターにインストールされているので、[ソース名] ボックスの中身は "localhost" のままでかまいません。

この 2 つ目の手順を完了すると、ユーザーがこのサーバーの Web ページを参照して後で自分の仮想デスクトップを見つけるために必要な接続が作成されます。

手順 3 では、実際に仮想デスクトップへの接続を構成します。これを行うには、リモート デスクトップ接続マネージャーという新しい管理ツールを使用します (図 2 参照)。ご覧のとおり、まだ構成されていない設定がいくつかあります。今から、そのような設定を構成していきます。

 

図 2 リモート デスクトップ接続マネージャー

このコンソールにはウィザードが用意されており、このウィザードで、仮想デスクトップに接続するためのプロセスを開始します。[操作] ペインの [仮想デスクトップの構成ウィザード] リンクをクリックします。ウィザードでは、まず、RD 仮想化ホスト サーバーの名前を指定するよう求められます。このサーバーは、仮想デスクトップの仮想マシンを動かす Hyper-V ホストに対応します。

 

図 3 仮想デスクトップの構成ウィザード

次の画面では、RD セッション ホスト サーバーの完全修飾ドメイン名を指定するよう求められます (図 3 参照)。この画面には、ダウンレベル クライアント (リモート デスクトップ接続クライアントの Version 6.1 を実行していないクライアント) を代替サーバーにリダイレクトするための構成も用意されています。この "基本的な" 例では、この画面でも前の画面でも、役割サービスが 4 つともインストールされている単一のサーバーを指定する必要があります。

次は、RD Web アクセス サーバーを構成します。このサーバーは、今までの構成の一環として既に指定されている可能性があります。[次へ] をクリックし、[適用] をクリックすると、構成が完了します。ただし、仮想デスクトップをユーザーと関連付けるには、1 つまたは複数の設定を行う必要があります。[個人用仮想デスクトップを割り当てる] チェック ボックスをオンにすると、ウィザードの最後のページでこのコンソールを自動的に起動することができます。

 

図 4 個人用仮想デスクトップの割り当てウィザード

個人用仮想デスクトップは、個々のユーザーに 1 対 1 ベースで明確に関連付けられます。つまり、どのユーザーも個人用仮想デスクトップを 1 つだけ持ち、どの個人用仮想デスクトップにも、関連付けられたユーザーが 1 人だけ存在するということです。この関連付けは、個人用仮想デスクトップの割り当てウィザードを使用して行われます (図 4 参照)。このウィザードでは、ユーザー名が仮想マシンと関連付けられます。この図では、管理者ユーザーがどのように w7-vdesktop.contoso.com という名前の仮想マシンと関連付けられているかを確認することができます。

 

図 5 RD Web アクセス経由での個人用仮想デスクトップへのアクセス

ウィザードが完了したら、ユーザーは RD Web アクセス Web サイト (https://localhost/RDWeb) に接続して自分の個人用仮想デスクトップにアクセスすることができます。ユーザーがログインすると、この仮想デスクトップは "マイ デスクトップ" というラベルの付いたアイコンとして Web ページに表示されます (図 5 参照)。

個人用仮想デスクトップは出発点にすぎない

このコラムの冒頭ではデスクトップ仮想化の難点を挙げましたが、皆さんはおそらく、個人用仮想デスクトップを作成するこのプロセスが実際はそれほど難しくないことに気付かれたでしょう。この "基本的な" 構成は、マイクロソフトの仮想デスクトップ ソリューションを利用するうえでの単なる出発点にすぎません。より多くの労力を費やすと、複数の Hyper-V サーバーを使用するように環境を拡張したり、特定のニーズに適した異なる構成を構築したりすることができます。

たとえば、仮想デスクトップとそのユーザーとの直接の関連付けを避けられるような構成を構築することができます。同じ技術を使用して、"プールされた仮想デスクトップ" を作成することもできます。"プールされた仮想デスクトップ" とは、ユーザーが接続を開始する際にユーザーがランダムに割り当てられる、同じように構成されたデスクトップのことです。このようなプールされた仮想デスクトップは、RDS にとって問題となるアプリケーションに対する優れた解決策となります。ただし、これを使用する場合、ユーザーは毎回同じ仮想デスクトップに接続できるとは限らないので、特に注意が必要です。

潜在的な問題はありますが、今月のコラムから学び取るべき最も重要な教訓は、デスクトップ仮想化を使用すると、ユーザーにアプリケーションやデータへのアクセスを提供する方法が劇的に増えるということです。その中で最もニーズに適した方法を見つけることが次の課題となります。

Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT プロフェッショナル向けのヒントとテクニックについては、ConcentratedTech.com (英語) を参照してください。

関連コンテンツ