アプリケーションを仮想化するCitrix XenApp
アプリケーション仮想化テクノロジーとは
日本でのデビューからおよそ10年、シンクライアントシステムの代名詞としてご利用いただいているのが、Citrix XenAppです。Windowsのターミナルサービス(TS)/リモートデスクトップサービス(RDS)をベースとして、さらにセキュリティー、パフォーマンス、拡張性、安定性、柔軟性などを強化した、画面転送によるアプリケーション利用環境を提供します。
Xen=仮想、または仮想化された環境、というCitrix製品の共通ブランディングに基づき、リモート操作によりアプリケーションを「仮想的に」利用する製品との意味を込めて、2008年にXenAppと名称を変更しました。
MetaFrameと呼ばれたころからさまざまな解説が繰り返されていますが、今あらためて基本の仕組みを押さえ、ユーザー生産性と管理者の効率を最大化する最新テクノロジーをかいつまんでお伝えしたいと思います。
アプリケーション仮想化のメリット
Citrix XenAppは、従来クライアント端末にインストールして利用していたデスクトップアプリケーション、クライアントソフトウエアを、サーバーにインストールして実行します。アプリケーションの画面イメージだけがクライアント端末のデスクトップに表示され、ユーザーはキーボードとマウスを使って遠隔操作できます。
つまり、アプリケーションがあたかもクライアント端末で動作しているかのように、完全にアプリケーションを仮想化する環境を実現します。
このように、アプリケーションを「実行する環境」と「利用する環境」を明確に切り離すことが、仮想化の大きな特徴であり、図1-2のような数々のメリットの源泉となっています。
XenAppでアプリケーションを仮想化することで、アプリケーションのインストールやメンテナンスをサーバー一カ所で行えば、瞬時にユーザーにデリバリー(提供)できるようになるため、管理負荷は低減され、ITの柔軟性や俊敏性が飛躍的に高まります。
また、アプリケーションの利用状況やシステムの稼働状況を一元的に監視できるため、サービスレベルを高めることもできます。またネットワークにデータが流れないので、ネットワークセキュリティーも万全です。クライアント端末にもデータは一切コピーされないため、データを一カ所に集約して守ることができます。
エンドユーザーは、使い慣れたWindowsアプリケーションを今までとまったく変わらない方法で、高いパフォーマンスを維持して利用することが可能です。PCの盗難や紛失で情報漏えいを起こしてしまう恐れもないため、安心して仕事をすることができるでしょう。
XenAppの基本アーキテクチャー
ここでは、「MultiWin」と「IndependentComputing Archetecture(ICA)」というXenAppの2つのアーキテクチャーについて解説します。
■MultiWin
x86系OSをマルチユーザー化する技術で、同じWindowsサーバーOSのメモリ上に、各ユーザー用の仮想ワークステーションの実行環境が作られます。同一サーバーへユーザーがログオンするごとに、アイドル状態からアクティブに、保護されたユーザーセッション内でアプリケーションが実行されます。アプリケーションはネットワーク経由でマウスクリックやキーボード操作の情報により、遠隔操作されます(図2-1参照)。
■Independent Computing Architecture(ICA)
さまざまなサービスやコンテンツを最適にやりとりするため、ICA内には、さらに独立したバーチャルチャネルというトランスポート用パイプがあります。
ICAでは最大で32個のバーチャルチャネルをサポートし、ドライブマッピング用、プリンターマッピング用、画面表示用、音声用など、目的別に専用のパイプの中でやりとりするので、スムーズで高速なアプリケーション利用が可能です。
コンテンツごとに別のプロトコルや別ポートを使ってコミュニケーションする必要なく、セキュリティーと一元管理の効率をさらに高めます。
ICAについて詳しくは、第2回の記事「デスクトップ仮想化の代表格XenDesktop(http://thinkit.jp/article/1003/1/)」をご参照ください。
サーバーシステムと印刷
XenAppのサーバーシステムについて、以下に解説していきます(図2-2参照)。
■サーバーファーム
複数のXenAppサーバーを管理する単位。複数アプリケーション、複数サイト/ゾーンを論理的にひとつのサーバーファームにまとめると管理効率が高い。
■ゾーン
地理的に分散してXenAppサーバーを配置する場合の管理単位。各ゾーンには必ずひとつのデータコレクタ(後述)がアサインされる。障害対策/ビジネス継続や、ユーザーが広域に移動しても最適な利用環境を維持することなどを意識した運用が可能。
■データストア(DS)
管理コンソールで設定したサーバーファームの設定情報(静的データ)を一元的に保存するデータベース。
■データコレクタ(DC)
各XenAppサーバーへの接続・負荷情報(動的データ)を収集する。状況に応じた負荷分散(ロードバランス)の制御を行う。
■ローカルホストキャッシュ(LHC)
各XenAppサーバーが保持するDSのコピー。ユーザーログオン時はLHCより利用するアプリケーション、適用するポリシーを参照する。データストアがダウンしても、XenAppシステムを継続して運用可能になる。
■Independent Management Architecture(IMA)
TCP/IP上の管理プロトコルで、XenAppの各種サービスを統合するバックボーン。ライセンス管理、セッション管理、アプリケーション管理、プリンター管理などのサービスが相互に連携し、提供される。
■その他のコンポーネント
ファームの構成には、ほかにActive Directory、ライセンスサーバー、Web Interface(ログオン認証、アプリケーションポータル)、ファイルサーバー/ストレージなど主要なサーバーコンポーネントが必要です。
複雑・大規模な環境でも容易で最適な運用管理のため、プロビジョニング(サーバーイメージの一括展開)、アプリケーションモニタリング(サーバー/端末/ネットワークの監視)、セッションモニタリング(ICAセッションの録画・再生)、Access Gateway(セキュアなリモートアクセス用ゲートウェイ装置)、Branch Repeater(WANでのICAトラフィック最適化装置)などが用意されています。
システム環境と利用の仕方に併せて適用することで、XenApp基本サービスに付加価値を与えます。
次に印刷について解説します。アプリケーション自体はサーバー、データセンターで実行されますが、印刷はユーザーの近辺に出力される必要があります。XenAppシステムでは、大きく以下の2つの印刷方式を提供します(図2-3参照)。
■オートクリエイトプリンター
XenAppセッション内のアプリケーションで印刷を行うと、クライアント端末で定義されたプリンターに自動出力します。通常ユーザーが使用しているプリンターがそのまま使える(ネットワーク、USB等接続形態も不問)ので、ユーザーはプリンターの選択や設定をまったく意識することがありません。プリンター特有の先進機能も使えます。
ただし、プリントドライバがTS/RDS対応となっている必要があります。管理者の初期設定は不要ですが、プリンター各機種のネイティブのプリントドライバをXenAppサーバーにインストールして管理する必要あります。
多機種が混在する環境であれば、Universal Print Driver(UPD)というXenApp標準のプリントドライバを利用することで、一般的な印刷サービスをすべてのユーザーに提供可能です。UPDでは機種ごとに発生するメンテナンスを不要にし、システム全体の管理効率向上に貢献します。
■セッションプリンター
XenAppからクライアント端末を経由せず、直接プリントサーバーへ印刷データを送り、設定されたプリンターから出力します。
シンクライアント端末など、クライアント側でプリンター定義ができない場合は、XenAppサーバーから直接プリントサーバーへ印刷データを送り、ジョブを処理します。
その際、ネイティブのプリントドライバをXenAppにインストールする必要があり、ユーザー/グループに対する設定作業が発生しますが、ほかのサービスも含めてポリシー制御することで、あらゆる場面での印刷が最適化され、ユーザー体験も高まります。
ネイティブドライバはプリンター各社との協力体制の下、いち早く新バージョンへの対応がされている一方、標準のUPDも高度な機能が使えるように改良がされています。バージョンの積み重ねと共に印刷サービスは安定しており、運用管理の負荷を低減しつつ、全体のセキュリティーと使い勝手を両立することができます。XenAppシステムについて印刷に関する懸念を聞くことがありますが、それは過去のものと言って良いでしょう。
次ページでは、実際にアプリケーションを利用する方法について説明します。
アプリケーションを利用する3つの方法
XenAppでアプリケーションを利用するには、ユーザーの特性や利用する場面に応じて、次の3つの方法があります。
■オンライン1(サーバーホスティング)
従来から利用されている「公開アプリケーション」と呼ばれる方法で、クライアントアプリケーションをXenAppサーバーにインストールして実行します。アプリケーションの画面イメージをICAプロトコルに載せて、ユーザーの端末に表示します。ひとつのWindowsサーバーOS上に複数のアプリケーションを起動し、ユーザーに提供します。
IAサーバーの高いコストパフォーマンスを最大限に利用し、接続セッション単位で最も高い費用対効果を実現します。サーバーデスクトップを「公開デスクトップ」として、ユーザーに提供することも可能です。
ユーザーは、Citrix環境へログオンした後、目的のアプリケーションを起動して利用するか、あるいはサーバーデスクトップを表示し、そこから目的のアプリケーションを起動することもできます。
■オンライン2(VMホスティング)
XenApp 5.0 Feature Pack 2では、これまでのアプリケーション利用方法を補足し、仮想環境でも100%のアプリケーション互換性を実現します。
VM(ハイパーバイザ上の仮想マシン)上のクライアントOSにアプリケーションをインストールし、実行します。画面イメージをXenApp経由でICAプロトコルに載せ、ユーザーの端末に表示します。アプリケーションとしてはクライアント環境相当に存在し、実行されますが、ロケーションはサーバー側、データセンターに集約され、集中管理されます。
XenDesktopでも、この仕組みを動かないアプリケーションの救済として利用しますが、XenAppではVMにつきひとつのアプリケーションに限定し、必要があるアプリケーションセッション分のVMが作成されます。つまり、1アプリケーションセッションに対して、1VMが割り当てられます。
VMのみでなく、ブレードPCやクライアント端末として利用していた通常のPCも利用可能です。現状のCPU性能やIAサーバーのコスト効果を考慮すると、セッション集約率が最も高い上記のサーバーホスティング型を補足し、TS/RDS未対応のアプリケーションを利用可能にするオプションとして使うことをお薦めします。
■オフライン
独自のアプリケーションストリーミング技術を使い、クライアント端末のキャッシュ上でアプリケーションを実行するので、オフラインでもアプリケーションを利用できます。シャットダウン、リブートにより元の状態に戻ります(ストリーミング配信されたパッケージは消去)。
.ini、.dllなどアプリケーション実行に必要なリソースファイルをプロファイルとして定義し、ファイルサーバーに保存します。プロファイルは実行可能なアプリケーション実行パッケージで、SMBプロトコルを経由してクライアント端末へストリーミング配信されます。実行環境はパッケージ内で完結するので、同じアプリケーションの異なるバージョン(例:Excel 97、2003、2007)も同時に利用可能です。
XenApp上で実行するアプリケーションの互換性を高める技術、アプリケーション分離環境(AIE)を利用したもので、ネットワーク接続環境のないオフラインでも必要なアプリケーションが利用可能にすることに加え、サーバーへのアプリケーションインストールが不要、サーバー集中化管理などのメリットも享受できます。
プロビジョニングサービス
これらのアプリケーション利用方法をバックエンドで支え、管理効率を高め、コストを抑制する革新的なツールがプロビジョニングサービスです。
■シングルイメージを一括配信
サーバーで実行するアプリケーションセットのイメージ、VMやブレードPC等で実行するアプリケーションセットのイメージ、またあらゆるXenAppサーバーの構成イメージをそれぞれひとつのゴールデンマスター(テンプレート)から、ネットブート技術により複数の対象に一括配信します。
これも仮想化技術のひとつで、仮想ディスク(vDisk)を複数のマシンから呼び出して実行するため、複数のコピーを作成するコスト、それらを保存するストレージコストは発生しません。同じイメージを展開しても、ユーザー固有環境は別のサービス(移動ユーザープロファイル、プロファイル管理)により実現できます。
プロビジョニングサービスにより、必要な時にイメージが展開され、実行環境が整えられるので、常にメンテナンス済みの最新、最適な状態のサーバー環境が用意できるのです。
■システムそのものを仮想化する
最後に、すべてのXenAppコンポーネントは物理環境はもちろんのこと、仮想環境にも構築し、ホストすることが可能です。しかも追加費用は不要です。すべてのXenAppエディションには、サーバー仮想化プラットフォーム、XenServerが付属します。
XenServerはクラウドで最も実績ある仮想化エンジン+GUI管理コンソール+ライブマイグレーション・リソースプール+基本ストレージサービスと言えます。Webダウンロードして10分ほどでインストール、初期設定まで完了してしまうほど簡単に使えますが、何よりもメリットはXenApp実行のために最適チューニングが施されていることです。従来は40%強あったパフォーマンス劣化を、8%程度に低減し、仮想環境でも物理環境と遜色(そんしょく)ないレベルです。
仮想化技術を広範に適用した結果、Citrixのアプリケーション仮想化システムはかつてないほどの柔軟性と運用管理性を提供するに至りました。しかも、ユーザー体験と生産性とセキュリティーを高いレベルで両立します。
Citrixのクライアント環境の仮想化は、XenDesktopによってデスクトップ環境を、XenAppによってアプリケーション環境を、それぞれ別に集中管理しながらもユーザーとしては両者を透過的に、どこにいてもシームレスに利用できます。