SlideShare a Scribd company logo
XenApp/XenDesktop環境での
アプリケーションの互換性について
山田 晃嗣
© 2012 Citrix2
© 2012 Citrix
a balancing of factors all of which
are not attainable at the same time
Merriam-Webster
同時に達成できない複数要素を
バランスさせること
© 2012 Citrix4
トレードオフ
© 2012 Citrix
クライアント
ハイパーバイ
ザー
オフライン、
セキュア
ネットブート
ローカル、
固定
VDI
(仮想PC)
柔軟性、
個人専用
サーバー共有
デスクトップ
ベストTCO
リモートPC
即持ち出し
可能図
あらゆるユーザーに
最適なデスクトップを
© 2012 Citrix
VDI
(仮想PC)
柔軟性、個人専用
サーバー共有
デスクトップ
主に使われるのがこの2つ
ベストTCO
© 2012 Citrix
VDI
(仮想PC)
PCと同じアプリ運用
サーバー共有
デスクトップ
もっとストレートに言うと
低コスト
高コスト 動かないアプリあり
© 2012 Citrix
Agenda
•FlexCast と トレードオフ
•非互換の各種要因
•検証の進め方
FlexCast と
トレードオフ
© 2012 Citrix
VDI
(仮想PC)
PCと同じアプリ運用
サーバー共有
デスクトップ
低コスト
高コスト 動かないアプリあり
何が同じか?
何が違うか?
© 2012 Citrix
保存中
保存中
完了
完了
「あちら側から画面転送」はどちらも同じ
© 2012 Citrix
違いは「あちら側」の仕組み
VDI
(仮想PC)
サーバー共有
デスクトップ
一人に一つの
クライアント用OS
一つのサーバー用OSを
複数利用者で共有
© 2012 Citrix
集合住宅に例えるなら・・・
マンション 社員寮
VDI
(仮想PC)
サーバー共有
デスクトップ
© 2012 Citrix
必要コストの差 〜1人に必要なハードリソース
ストレージ
35GB
メモリ
2GB ストレージ
2.5GB
メモリ
0.4GB
VDI
(仮想PC)
サーバー共有
デスクトップ
© 2012 Citrix
ここまでは
デスクトップ仮想化の話
アプリケーション仮想化
はどうか?
© 2012 Citrix
利用者からの見え方・使い方の違い
デスクトップ仮想化 アプリ仮想化
© 2012 Citrix
アプリ仮想化にも2つの仕組み
VM Hosted
Application
サーバー共有
Application
一人に一つの
クライアント用OS
一つのサーバー用OSを
複数利用者で共有
© 2012 Citrix
登場人物を整理すると・・・
デスクトップ
仮想化
アプリ
仮想化
VDI
(仮想PC)
サーバー共有
デスクトップ
VM Hosted
Application
サーバー共有
Application
一人一つずつ
OS占有
1つのOSを
複数人で共有
© 2012 Citrix
用語の定義について再確認
•利用者からの「見え方」「使い方」による定義
• XenApp:アプリケーション仮想化
• XenDesktop:デスクトップ仮想化
•アーキテクチャによる定義
• XenApp:1つのサーバーOSを複数利用者で共有
• XenDesktop:1つのクライアントOSを1人の利用者が占有
[XenApp] or [XenDesktop]には複数の定義あり
このスライドでの定義
© 2012 Citrix
あらためてこの枠組みを考える
仮想PC サーバー共有
「デスクトップ仮想化 or アプリ仮想化」かは
上記2つのコスト差には影響しない
© 2012 Citrix
初期導入費は明らかに
「サーバー共有」が安い!
まず言えること
© 2012 Citrix
当然出てくる疑問
うちのアプリは
サーバー共有で
動いてくれるの?
残念ながら「絶対動く」とは言えない
© 2012 Citrix
結局はトレードオフ
© 2012 Citrix
乱暴に結論を急ぐなら・・・
システム規模(利用者数)
コ
ス
ト
サーバー共有向け
アプリ検証・改修コスト
仮想PCが
おトク
サーバー共有が
おトク
© 2012 Citrix
定量的に決めるためには
システム規模(利用者数)
コ
ス
ト
サーバー共有向け
アプリ検証・改修コスト
この値が必要!
© 2012 Citrix
このスライドの目的のひとつ
サーバー共有向けの
アプリの検証・改修費用に
目途がつけられるようにする
非互換の各種要因
•サーバー共有
•プール型
•画面転送
•OSやInternet Explorer
サーバー共有での非互換
© 2012 Citrix
サーバー共有は”枯れた”技術
XenApp/XenDesktop
サーバー共有
MetaFrame
1998〜
Mainframe Computer
1950s〜
WinFrame
1995〜
© 2012 Citrix
複数の利用者が1つのOSを共有しても
お互いは、ほぼ 干渉しない
© 2012 Citrix
利用者間の干渉を気にしなくて良い資源
•CPU
•メモリ空間
•ユーザープロファイル
•HKEY_CURRENT_USER
•TCP/IP 発信元ポート番号
© 2012 Citrix
利用者間の干渉を注意すべき資源
•ファイルシステム(ユーザープロファイル以外)
•HKEY_LOCAL_MACHINE
•IPアドレス
•実行マシンのホスト名
非互換の原因の大半
© 2012 Citrix
ファイルシステムによる非互換例
VerticalEditor:フリーの縦書きエディタ
Windows Server 2003 では動作しない
© 2012 Citrix
非互換が起きた原因
ローカルディスク(C:)
Program Files
VerticalEditor
変更 環境設定ファイル
環境設定ファイルがProgram Files配下の固定PATHで指定
全ての利用者が同じファイルに書込み
加えてWindows Server 2003 では
一般利用者はProgram Files配下は書込み不可
© 2012 Citrix
特定のPATHのファイルの
複数人同時書込みは不可!
実はこれは過去の話
© 2012 Citrix
Windows Server 2008 R2のサーバー共有 だと
いっけん問題なく動作するように見える
Windows Vista以降に導入された
「ファイルとレジストリの仮想化」機能の恩恵
© 2012 Citrix
「ファイルとレジストリの仮想化」
の基本原理
利用者ごとに「仮想Cドライブ」を
持つようなもの
利用者ごとの「仮想HKEY_LOCAL_MACHINE」も持つ
© 2012 Citrix
「ファイルとレジストリの仮想化」の背景
•Windows XPではシステムフォルダへの
書込みや変更が比較的容易で
悪意のあるプログラムに対して脆弱と言えた
•Windows Vista以降 では上記の対策として
ユーザーアカウント制御(UAC)を導入し、
システムフォルダへの書込みを制限した
•UACだけでは既存アプリの互換性を激減させるので、
「仮想システムフォルダ」を設けて
アプリの互換性を維持できるようにした
© 2012 Citrix
仮想ファイルの実際の場所
ローカルディスク(C:)
ユーザー
kojiy
AppData
Local
VirtualStore
Program Files (x86)
VerticalEditor
環境設定ファイル
仮想Cドライブ
プロファイル
隠しフォルダ
© 2012 Citrix
ファイルの仮想化の動作
•アプリケーションが、あるファイルを
「書き込み可能」な形でOPENすると・・・
•自動的にそのファイルが、
ユーザー毎の仮想ファイルシステムにコピーされる
•以後、そのファイルを開く場合は、
仮想Cドライブにコピーされたファイルが開かれる
•アプリケーションは仮想Cドライブを意識しない
(アプリケーションを騙すような形になる)
© 2012 Citrix
「ファイルとレジストリの仮想化は
マイクロソフトの技術
検索Vista ファイル 仮想化
•詳細な技術情報は
Web上に豊富にある
© 2012 Citrix
•ファイルシステム(ユーザプロファイル以外)
•HKEY_LOCAL_MACHINE
•ファイルシステム(ユーザープロファイル以外)
•HKEY_LOCAL_MACHINE
利用者間の干渉を注意すべき資源
•IPアドレス
•実行マシンのホスト名
ほぼ過去の話
極めて稀な例
© 2012 Citrix
IPアドレスやホスト名が
非互換の要因になるアプリの例
192.168.10.11
•サーバーモジュールが
クライアントの識別情報として
IPアドレスを使う場合
•P2P型のソフトフォンなど
一部の特殊のアプリでしか
使われない特殊な仕組み
© 2012 Citrix
一旦結論
Windows 7 で動作するアプリは
かなり高い確率で
サーバー共有でも動作する
© 2012 Citrix
サーバー共有は
64bit OSしかないよね。
アプリの64bit 対応は?
予想される突っ込み
© 2012 Citrix
誤解されることが多いが・・
32bit アプリは
64bit OS上でも動作する!
「64bit OS での動作」に起因する非互換は
まず滅多に起きることではない!
プール型での非互換
© 2012 Citrix
仮想PCの2種類の運用形態
専用 プール
© 2012 Citrix
住宅に例えるとこんな感じ
専用 プール
マンション ホテル
© 2012 Citrix
プール型(ホテル型)に様々な利点あり
•ディザスタリカバリ構成が取りやすい
•ソフトウェアアップデートなどの管理が容易
•ストレージコストを削減できる
© 2012 Citrix
プール型利用時の注意
•デスクトップの壁紙変更などの設定は変更可だが、
アプリのインストールなどの大きな改変は
一般利用者には出来ない
•利用者に紐付いた設定情報は個人ファイルは
利用者と共にOSを「移動」する
立つ鳥
跡を濁さず
© 2012 Citrix
一般に使われるのは
「移動ユーザープロファイル」
(Roaming Profile)
© 2012 Citrix
マイクロソフト純正「移動ユーザープロファイル」の
制限事項
•移動可能なファイル/レジストリは固定
•HK_CURRENT_USER : ntuser.dat
•%APPDATA%
( Users<ユーザー名>AppDataRoaming )
AppData配下は、
このフォルダだけが移動される
© 2012 Citrix
この図を思い出してほしい
ローカルディスク(C:)
ユーザー
kojiy
AppData
Local
VirtualStore
Program Files (x86)
VerticalEditor
環境設定ファイル
ポイントはココ!
© 2012 Citrix
「ファイルとレジストリの仮想化」は
Windows 7 でも デフォルトで動作
•仮想化されたファイルシステムは、
AppDataLocal フォルダに格納される
•レガシーアプリの多くが、
このフォルダに利用者個別設定を保存
これらフォルダは移動されない!
© 2012 Citrix
このままだと、どうなってしまうか?
•アプリの設定情報を連れて「移動」できない
•ログオンするたびに設定のやり直し
•OSに各利用者の設定情報のゴミが溜まってしまう
© 2012 Citrix
サーバー共有でも同じ問題が発生
•サーバー共有では
冗長性・拡張性のため
複数サーバーで構成する
•ログオン先は
各OSの負荷状況に応じて
その都度変化する
© 2012 Citrix
だからと言って
安易に「専用型」を選ばないで欲しい
•些細なトラブルに対して脆弱
•OSごとの個別管理が必要で
規模が大きいと膨大な管理工数
•バックアップ運用のためには
膨大なストレージ容量と
膨大な手間が必要
© 2012 Citrix
もちろん解決策はある!
•Profile Management
•XenDesktopのコンポーネント
•マイクロソフト純正
移動ユーザープロファイルの代替
•利用者と共に移動するファイルを
柔軟に指定・除外できる
•プール型利用時の利用者設定の
問題を解決!
© 2012 Citrix
一旦結論
専用型とプール型の違いでも
アプリの動作に差は出るが、
Profile Managementで解決可能
© 2012 Citrix
「専用型仮想PC」の使い方
•必要リソース・管理工数の増大を招き、
ロバスト性も低いため、安易な選択はしないこと
•「専用型ならでは」の利点があるとしたら、
一般利用者がアプリのインストールができること
•利用者に「インストールの自由」を与える以上、
「管理の責任」も利用者に発生することを周知
•管理責任を果たすだけのスキルのある
一部のユーザーに限定することがお勧め
画面転送での非互換
© 2012 Citrix
画面転送を使った仮想化
動作ロジックは全て
「あちら側」
© 2012 Citrix
「こちら側」のデバイスはどうする?
使うための「機能」は用意している
© 2012 Citrix
HDXの端末デバイス利用方法2つ
ポートレベルリダイレクトデバイスレベルリダイレクト
端末側のドライバで一旦
デバイスを認識し、
仮想側とは必要な情報のみを
効率よく通信
LPTやCOMなどの端末側の
ポートを、そのまま仮想側まで
延長することに近い
仕組みは単純だが、
通信の効率はよくない
例:マウス・キーボード・
ドライブ・プリンタ・
スマートカードリーダ・
Audio・Webカメラ
例:ドングル
汎用Felicaリーダー
© 2012 Citrix
端末デバイス利用のポイント
•デバイスレベルリダイレクトが遥かに高性能
•デバイスレベルリダイレクトは
利用可能なデバイスに制限があるが、
それでもかなりの数のデバイスが利用可能
•USBのポートレベルリダイレクトは仮想PCのみ利用可
サーバー共有では利用不可
•ポートレベルリダイレクトは、
遅延のあるWANを経由するとほとんど使えない
© 2012 Citrix
一旦結論
デバイス依存アプリは
パフォーマンスの課題もあり
可否が白黒はっきりしない場合も多い
実機検証が避けられない
その他OSやInternet Explorerの
バージョン違いによる非互換
© 2012 Citrix
ずっと付きまとう非互換の悩み
© 2012 Citrix
個々のバージョン間の互換性については
あまりCitrixの出る幕ではない?
実は考え方によっては
十分にお役に立てます!
© 2012 Citrix
端末OSに依存しない長寿命のアプリ利用
?
© 2012 Citrix
Internet Explorer 複数バージョンの並行運用
イントラ用IE6
社外Web用
IE9
© 2012 Citrix
一旦結論
仮想化をうまく利用すれば
アプリ非互換の問題は
パソコン利用時よりもむしろ減少
検証の進め方
© 2012 Citrix
昔の人は偉かった!
百聞は一見にしかず
案ずるより産むが易し
虎穴に入らずんば虎児を得ず
© 2012 Citrix
とにかく動かしてみることが大事
結局何が言いたいかと言うと・・・
© 2012 Citrix
仮想環境やクラウドの普及は検証に追い風
© 2012 Citrix
評価環境構築用のガイドも充実
© 2012 Citrix
検証実施上のポイント
•検証対象のアプリに優先度を設定し、
「あれもこれも」は避ける
•ネットワーク環境はアプリの動作に影響大
実運用に近いネットワークで検証を行う
•Active Directoryのグループポリシーや
プロファイルの仕組みも実運用を想定する
© 2012 Citrix
サーバー共有での検証順序 (1/2)
1. シングルユーザー/シングルサーバー検証
i. サーバーOSへの対応確認
ii. Active Directoryグループポリシーへの対応確認
iii. 画面転送環境への対応確認
iv. 各種周辺デバイスへの対応確認
v. 全体的なパフォーマンスの確認
© 2012 Citrix
サーバー共有での検証順序 (2/2)
2. 時間差マルチユーザー(2名)検証
i. 個人設定の独立の確認
3. 同時マルチユーザー(2名)検証
i. 相互干渉の確認
4. 複数サーバー(2台)検証
i. 利用者個人設定のサーバー間での引継ぎ確認
まとめ
© 2012 Citrix
まとめ
•Windows 7 で動作するアプリなら、
サーバー共有でも動作する可能性は高い
•仮想PCならプール型がお勧め!
個人設定の課題もProfile Managementが解決
•仮想化をうまく利用すれば、
アプリ非互換の問題はPC利用時よりも減少
•とにかく検証してみましょう
Work better. Live better.

More Related Content

XenApp/XenDesktop環境でのアプリケーション互換性について