3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

MSのApp-V for RDSを試してみた

HPのシンクライアント評価時に、営業担当からApp-Vの話を聞きました。

恥ずかしながらそれまでApp-Vのことは知りませんでした。

ということで、App-Vを試してみました。

MED-V,APP-V,RemoteApp,VDI

どうやら調べてみるとMicrosoftの仮想化ソリューションはいつの間にやら結構出ていたようです。

主に、MED-V,APP-V,RemoteApp,VDIがあるようですね。どれもアプリケーションの仮想化なのでユーザーエクスペリエンスは同等ではあるんですが、使っている技術が大きく異なります。

下記の技術をうまく組み合わせて、ユーザビリティなアプリケーション環境を作ることが肝ですね。

●MED-V(Microsoft Enterprise Desktop Virtualization、Virtual PCとXP Modeの集中管理化)

クライアントPCの上で仮想PC(VirtualPC)を動かしレガシーアプリケーションを動かす方式です。

ただし、仮想PCと言っても、その上で動かすアプリケーションのウィンドウしか見せません。

Windows7 の XP Mode アプリケーションみたいなものです。

XP Mode と異なるのは一括管理機能を有することみたいです。

●App-V(Microsoft Application Virtualization、アプリケーションの仮想化とストリーミング配信)

今回の記事のメインのアプリケーション仮想化機能です。

アプリケーションを仮想パッケージ化し、クライアントPCではApp-Vサーバより配信されたアプリケーションを実行するという、アプリケーションのストリーミング配信的な形態です。

パッケージ化は、シーケンサーというツールで、アプリケーションのインストールを監視して、変更があったファイル・レジストリの設定をまとめてしまいます。

パッケージ化されているので、実行するクライアントPCにいちいちアプリケーションをインストールする必要も有りません。(ただし、アプリケーションが動くのはクライアント上であり、クライアントのOSの依存が完全になくなるのではないことは注意が必要です)

これを使うと、同じクライアントPCで複数のバージョンのアプリケーションを同時に動かせたりしますし、アプリケーションの配布も楽になります。

通常のApp-VはクライアントPCで仮想アプリケーションを動かすことを前提としてますが、App-V for RDS(Application Virtualization for RemoteDesktop Service)を使うと、リモートデスクトップサーバ上でApp-Vを使用することができます。

今回は、この App-V for RDS を試してみました。

●RemoteApp(画面転送)

これはリモートデスクトップのアプリケーション版ですね。

リモートデスクトップサーバ上で任意のアプリケーションを実行し、そのアプリケーションのウィンドウをクライアントPCに転送するというものです。

CitrixのXenAPP(旧メタフレーム)とほぼ同じ機能です。

●VDI(Virtual Desktop Infrastructure、デスクトップ仮想化)

これはサーバ上に多数の仮想化したクライアントOSを配置し、クライアント(主にシンクライアント等)からその仮想OSを使うイメージです。

プレゼンテーション層の仮想化(リモートデスクトップサービス,ターミナルサービスetc)と似ていますが、仮想化されたクライアントOSとクライアント端末が1対1になるという点が異なるでしょう。(クライアントOSなので複数ユーザ起動がNGなアプリやサーバOSでの動作がNGなアプリも動かせます)

昨今の震災で在宅勤務の観点から注目を集めているようです。

CitrixのXenDesktopやMSのHyperV+RDSなどがこれに当たるようです。

各機能の比較や特徴については下記を参照:

仮想化の教室 [第9回] 企業デスクトップの仮想化 ~MDOPの新顔、MED-V~ : Windows Server - Computerworld.jp

TechNet:MED-V と App-V を比較しどちらが自分に合っているかを判断する

VDI(Virtual Desktop Infrastructure) - @IT

【仮想化道場】 マイクロソフトの仮想化戦略を担うMED-V【前編】 -クラウド Watch

アプリケーションを使いやすくするVDI環境の拡張機能 - @IT(VDIとRemoteApp,App-Vの組み合わせ)

Windows Server 2008で大幅に進化したターミナルサービスを試す【中編】(RemoteApp)

App-V for RDSの構成

App-V for RDSの構成はちょっと複雑です。

まず、サーバとして下記が必要になります。

・RDSサーバ : 仮想化アプリケーションを実行するリモートデスクトップサーバー

・App-V(Application Virtualization Server)サーバ : 仮想化アプリケーションを配信するサーバ

また、アプリケーションをパッケージ化して仮想化するための Application Virtualization Sequencer という環境が必要になります。

App-V 配信サーバ構築

App-Vサーバには、Application Virtualization Management System というソフトをインストールする必要がありますが、他にも IIS6.0 以降(ASP.Net)や.NetFramework2.0以降、SQLServer2008(ExpressEditionでも可)、ActiveDirectory環境も必須になるようです。

インストール媒体はTechNetの サーバー → Desktop Optimization Pack → Microsoft Desktop Optimization Pack 2011 (x86 and x64) - DVD (Japanese) をダウンロードしました。

具体的なインストールの手順は、Microsoft Application Virtualization スタート アップ ガイド | TechNetにドキュメントが公開されています。が、docx形式なので注意が必要です。

今回インストールするのは、App-V 4.6 SP1 を試しました。上記のスタートアップガイドは App-V 4.5 のものですが、ほとんど変更はありません。

(4.6といっても、MagementServer は 4.5 SP2 のままのようです。App-V4.6については、山市良のえぬなんとかわーるど: (補足) MDOP 2010 の App-V 4.6 についてが参考になります。)

スタートアップガイドに従うと、下記のような手順で、App-Vサーバを構築していきます。

IIS(ASP.Net)のインストール。

SQLServer Expressのインストール。

・ADにグループ、ユーザ追加。

・Management Server 4.5 SP2 のインストール

System Center Application Virtualization Streaming Serverはインストールしませんでした。

クライアントソフトのインストール

App-Vクライアントとなるリモートデスクトップサーバに、Application Virtualization Desktop Client 4.6 SP1のインストールしようとしましたが、できません。

リモートデスクトップサービスがインストールされている環境では、RDS用のクライアント(App-V for RDS(TS))がいるようです。

App-V for Remote Desktop Services (RDS) 4.6 (32-bit/64-bit)はダウンロード提供となり、http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&FamilyID=e633164f-9729-43a8-9149-de651944a7feからダウンロードできるようです。

App-V for RDS をインストール後、管理ツール → Application Virtualization Client → 公開サーバ でApp-Vサーバの指定を行います。

設定は下記のようにしました。

表示名:自由

種類:Application Virtualization Server

ホスト名:app-v.hogedomain.local

ポート:554

ここまでできたら、デフォルトで用意されているサンプル仮想アプリケーションの動作確認を行います。

スタートアップガイドの 4.5 章の部分ですね。

Sequencerの環境M

App-VではApplication Virtualization Sequencerというツールで、アプリケーションを仮想パッケージ化します。

このSequencerは、クリーンインストールされており、WindowsUpdate以外のプログラムは何もいれてはいけないようです。

なので、仮想PCとして環境を作るのが望ましいでしょう。それで、クリーン時のすナプショットを取っておき、何かの仮想アプリケーションをパッケージ化したら、一旦スナップショットを復元し、またパッケージ化するという感じです。

今回はOSはXP SP3としました。

Microsoft Desktop Optimization Pack 2011内にある、Sequencer4.6 SP1(32ビット)をスタートアップガイドの5.3章に従いインストールします。

シーケンスの手順も、スタートアップガイドの5.4章に従って行います。

4.5と4.6は若干画面が異なったので注意が必要かもしれません。

パッケージ作成後に、Sequencer で作成したパッケージを開き、展開設定を忘れないようにしないといけません。

"展開"タブでプロトコルと、ホスト名とパスを設定します。(プロトコル・ポートについてはスタートアップガイドに従ってセットアップしたなら RTSP 554ポートになります。ホスト名は、App-vサーバのホスト名を指定します。パスは作成されたパッケージのフォルダと同じにしないといけません。)

また、オペレーティングシステムで、実行対象のOSを選択します。今回は2008R2上のRDSで使う予定なので、Windows 2008 R2 Terminal Server 64-bitを選ぶ必要があります。

これでパッケージを上書き後、App-Vサーバにアプリケーションを登録します。

App-VサーガのApplication Virtualization Management Consoleで、"アプリケーション"ツリー → "アプリケーションのインポート" でパッケージを選びます。

このあたりの作業は、スタートアップガイド 5.5章を参考にできます。

最後に、RDSサーバで実行出来ればOKです。アプリケーションの読み込みはRDSのログイン時になるようですね。

.Net Frameworkの上で動くアプリケーションに仮想化は結構面倒みたいです。

Paint.Netを試みましたがうまくいきませんでした。

参考:

App-V検証~その1 環境作成 MCTの憂鬱

Microsoft Application Virtualization (App-V) のライセンス: Microsoft Virtualization

Microsoft Desktop Optimization Pack (MDOP)についてまとめてみる: MSLabo

Microsoft Application Virtualization 4.5 ドキュメント | TechNet

Microsoft Application Virtualization ホーム

ついてるサラリーマンアスリートの備忘録 | Microsoft Application Virtualization 4.5

Application Virtualization Client のトラブルシューティング情報

2008R2RDS導入のポイント_v1.0.pdf MSのTechnetブログに掲載されてた情報ですが、App-Vに限らずRDSを使う上での冗長化、ライセンス、パフォーマンスについて分かりやすくまとめられています。RDSを導入するのなら必ず読んでおくべきですね。