デスクトップ仮想化の代表格XenDesktop
デスクトップ仮想化(VDI)の概要とメリット
今回はデスクトップ仮想化に関しての説明を行いたいと思います。デスクトップ仮想化は、VDI(Virtual Desktop Infrastructure)とも呼ばれていて、一般的に、仮想インフラストラクチャで動いている仮想マシン(Windows XP、Windows Vista、LinuxなどのクライアントOS)に、さまざまな技術でデスクトップ環境を集約した上で、リモートからクライアントデバイスに接続し、その仮想マシンのデスクトップを使うというソリューションのことを言います。
デスクトップ仮想化には、次のようなメリットがあります。
・クライアントの管理コストの削減
デスクトップ環境がサーバー上で集約されているために、サーバーで仮想マシンの管理(パッチの適用、アプリケーションのインストール、デスクトップ環境の迅速な提供、メモリやディスク、CPUなどのリソースの追加と削除など)を簡単に行うことができます。
・セキュリティーの向上
データはサーバーで集中管理するので、セキュリティーが向上します。例えば、クライアントデバイスをディスクレス構成にし、ポリシーなどの設定でデータセンターからデータをダウンロードできないように設定すると、データを持ち出すことができなくなり、情報漏えい対策などに効果的です。
そのほかにも、ユーザーは簡単にデスクトップ環境を移動することができ、多様なデスクトップ環境を簡単に使用できます(Windows XP、Windows Vista、Windows 7など)。また、簡単に冗長化構成をとることも可能です。さらにシンクライアントデバイスを使用すると、省スペース化、静音化、省電力化といったメリットがある上、コスト削減にもつながり、企業イメージのアップも見込めます。
Citrix XenDesktopを構成するコンポーネント
Citrix XenDesktopとはデスクトップ仮想化を行うための代表的な製品で、5つのキーコンポーネント、2つのオプションコンポーネントで構成されています(図1-1参照)。
ユーザーは、クライアントからWeb Interfaceと呼ばれるWebアプリケーションで構成されるログオン用のWebサイトに接続し、認証すると、Web InterfaceとDesktop Deliver Controllerが連携して、そのユーザーに割り当てられているデスクトップを表示します。そのアイコンをクリックすると、仮想デスクトップに接続し、ログオンします。
クライアントと仮想デスクトップの間ではICA(Independent Client Architecture)という通信プロトコルが使用されます。仮想デスクトップを構成するOSはネットワークブートすることも可能ですし、仮想デスクトップで、ストリーミングされるアプリケーションや、アプリケーションサーバー上のアプリケーションを使用することも可能です。ユーザープロファイルなどのユーザーデータはファイルサーバーからロードします(図1-2参照)。
それでは、次に各コンポーネントについて、説明していきたいと思います。
クライアントとコネクションブローカー
ここではクライアント(Desktop Reciever)とコネクションブローカー(Desktop Delivery Controller)の2つのコンポーネントについて解説していきます。
■クライアント
クライアントには次の2つのタイプのクライアントソフトウエアがあり、いずれかを選んでインストールします。
・Desktop Receiver Embedded Edition
全画面のみを実行するタイプのクライアントです。ローカルPCにログオンすると同時に、仮想デスクトップに接続するので、まるでローカルのデスクトップのような感覚で使用できます。一般的なドメインに参加しているWindowsクライアントと、シンクライアントで使用可能です。
・Desktop Receiver(図2-1参照)
複数の仮想デスクトップに接続したり、Webブラウザから接続したりする際にこのタイプのクライアントを使用します。
これらのクライアントに仮想デスクトップを配信するために、Web Interfaceと呼ばれるWebアプリケーションでサイトを構成します。
例えば、Desktop Receiverを使用した場合、Webブラウザで接続しログオンします。するとユーザーに割り当てられた仮想デスクトップが表示されますので、接続したい仮想デスクトップをクリックすると仮想デスクトップが配信されます。デスクトップツールバーと呼ばれるツールバーを使って、解像度を調整することもできます。
■コネクションブローカー
次に、コネクションブローカーについて説明していきます。Desktop Delivery Controller(以降DDC)と呼ばれるコンポーネントがユーザーにデスクトップを割り当てます。また、MS Access、SQL Server、Oracleといったデータベースで静的なデータを管理しています。例えば、「User AがデスクトップグループAに割り当てられる」といったデータです。また、動的なデータはメモリ上で管理されています。これは例えば、「デスクトップグループAの仮想デスクトップAがUserAさんによって使用中である」といったデータです。
また、管理コンソールも一般的に、このサーバー上にインストールします。管理コンソールは、Access管理コンソール(AMC)と呼ばれるもので、ユーザーと仮想デスクトップの割り当てなどの管理などを行います。また、仮想マシンの管理もこのDDCが行います。XenServerの場合、XenAPIを使用しコミュニケーションにはXML-RPCが使用されます。管理するために追加のサーバーは必要がないのも特徴的です。そのほかの仮想インフラストラクチャとのコミュニケーションに関しては、図2-2を参照してください。
仮想インフラストラクチャと仮想デスクトップ
サーバー仮想化(XenServer)に関しては先週説明しましたので、ここでは詳細な説明は省きますが、XenDesktopの特長は、さまざまな環境に対応していることです。具体的には、次の3つの仮想インフラストラクチャと、ほかにもBladePC等の物理マシンに対応しています。
■仮想インフラストラクチャ
・XenServer(XenDesktopのコンポーネントの1つとして入っています)
XenServer上で仮想デスクトップを自動で作成するツール等が使用可能です。
・Microsoft Hyper-V
・VMWare ESX
■仮想デスクトップ
仮想インフラストラクチャ上で動作する仮想マシンに、Virtual Desktop Agent(以降VDA)と呼ばれるエージェントソフトウエアをインストールします。クライアントと仮想マシン間にはICA (Independent Computing Architecture)というプロトコルが使用されます。
ICAプロトコルとは、Citrix社が開発した通信技術です。クライアントとサーバー間で、効率的に画面、キーボード、マウス信号などを交換するための通信プロトコルであり、どんな状況下においても極めて高いパフォーマンスとデータ改ざんや盗聴などから守る高いセキュリティーを保証します。ICAプロトコルの特徴に関しては、図2-3を参照してください。
また、VDAは仮想マシンだけでなく、物理マシン(Blade PCなど)も対応しています。ほかにもXenDesktopにはCitrix Access Gatewayと呼ばれるSSL-VPNクライアント(アプライアンスは別)もついていますので、SSL-VPNによるセキュアなネットワークも構築可能です。
Probisioning Services(ネットブート)
Advanced Editionには、Provisioning Servicesと呼ばれる機能がついてきます。ディスクをイメージ化し、ネットワークストレージ等に配置し、そこからそのイメージを一括配信(ネットワークブート)できるため、一般的に仮想マシンにはディスクが必要ありません。
Provisioning Servicesは、2007年にCitrixが買収したArdence社の製品Ardence Software Streaming Platform 4.1がベースになっています。主に図3-1のようなコンポーネントで構成され、動作イメージは図3-2のようになります。
■Provisioning Servicesを使用したときの、仮想マシンの起動順序
1. 仮想マシンを起動する前に、まずBIOSでネットワークブートオプションが設定されている必要があります。
2. DHCPサーバーよりIPアドレスを取得します。
3. PXEサーバーよりNBP(ネットワークブートストラッププログラム)のファイル名と、TFTP ServiceのIPアドレスを取得します。
4. TFTPサーバーよりNBPファイルを取得します。
5. Streaming Serviceとコミュニケーションが始まり、起動処理に入ります。
■「vDisk」について
イメージ化されたディスクを、vDiskと言います。vDiskには下記の3つタイプのモードがあります。
・スタンダードイメージモード
読み取りのみのディスクイメージモードです。1つのイメージで複数の仮想マシンに一括配信する場合にこちらのモードを使用します。Provisioning Servicesを使用する際に最も一般的なモードです。
・プライベートイメージモード
読み書き可能なディスクイメージモードです。一般的に、vDiskを管理する時に管理者が一時的に使用するモードです。
・ディファレンシャルイメージモード
vDiskは読み取りのみですが、変更個所を差分イメージとして保存可能です。
一般的には、スタンダードイメージモードと、プライベートイメージモードを使用します。例えば、スタンダードイメージモードで複数の仮想マシンにvDiskを配信します。アプリケーションにパッチを適用する時には、vDiskのコピーを作成し、コピーしたvDiskにパッチをインストールすれば、次回からはアップデートしたvDiskを配信できるようになり、仮想マシンは次回起動時に新しいパッチが適用されたアプリケーションを使用することが可能です。
■「Write Cache」について
システム等が無意識に書き込むデータ領域としては、Write Cacheという仕組みを持っています。Write Cacheには、次の3つのモードがあります。
・デバイスキャッシュ
仮想マシンのディスクを使用します。Write Cache用にディスクが必要です。
・メモリキャッシュ
仮想マシンのメモリをWrite Cache用に使用します。
・サーバーキャッシュ
Provisioning Servicesのサーバーのディスクを使用します。
一般的に、デスクトップ仮想化の際には、パフォーマンスの観点からデバイスキャッシュを使用することが推奨されます。また、書き込み用のユーザーデータに関しては、ファイルサーバー等を使用することが一般的です。
アプリケーション仮想化とサイジング
XenAppでは次の2種類の方法でアプリケーションを配信できます。XenAppについて詳しくは次回で説明する予定です。
■アプリケーション仮想化
・ストリーミングによるアプリケーションの配信
アプリケーションのファイル、レジストリ、名前付オブジェクト等をパッケージし、仮想デスクトップ内のアプリケーション専用の仮想環境にストリームし、そのアプリケーション仮想環境で実行します。
・アプリケーションサーバーでのアプリケーションの実行
XenAppサーバーにアプリケーションをインストールし、仮想デスクトップからXenAppサーバーに接続しアプリケーションをサーバーで実行します。差分の画面イメージとキーボード、マウス信号等の情報交換を行います。
■サイジング
Citrix XenDesktopを使用したデスクトップ仮想化のサイジングに関して、基本的には、仮想マシンの数は前回(http://thinkit.jp/article/999/3/)紹介したサイジングの方法でよいでしょう。サーバー系のOSとは少し異なり、クライアント系のOSでは、4~6ゲストOS/コアくらいまでの仮想マシンを想定するのがよいでしょう。
また、Provisioning Servicesを使用する際には、仮想マシン起動時に、Streaming Servicesから図3-2の様にまとまったデータ量が転送されるので、ネットワーク構築の際にはこのあたりを考慮する必要があります。
さて、Citrixのデスクトップ仮想化ソリューションCitrix XenDesktopについて解説してきましたが、ご理解いただけましたでしょうか?
XenDesktopは評価版もあります。簡単にXenDesktopを構築するための、ステップ・バイ・ステップガイドがありますので、こちらのサイト(http://www.citrix.co.jp/partners/application/pdf/XD_Step_by_Step.pdf)から入手して一度試していただければと思います。
次回はCitrix XenAppを取り上げたいと思います。