今回も前回に続き、「計画の落とし穴」の1つであるアプリケーションの検討について解説する。

デスクトップやアプリケーションの仮想化を導入する時、必ず検討する必要があるテーマの1つに「既存業務アプリケーションの移行」がある。

前回、仮想デスクトップの導入に際してアプリケーションに対して影響のある変更として「SBC or VDI」を紹介したが、今回はVDIを選んだ場合も、アプリケーションに影響のある「プール型or専有型」と「移動プロファイル or ローカルプロファイル」について説明しよう。

プール型or専用型

物理端末の展開に際しては、通常、マスターとなるイメージをSysprepなどを用いてインストールしていくが、仮想PCの展開に際してはさまざまな手段が利用可能である。しかし、個別に展開していく方法では、マスターの更新があった際のアップデートが常に課題となる。そのため、一定規模以上のデスクトップ仮想化では、多くのケースでイメージ管理機能を用いたプール型の展開方式の利用が想定されることが多い。それにより運用負荷を軽減できるからだ。

専用型とプール型

プール型の展開方式では、ユーザーのログオフ後に変更を破棄することで、セキュリティリスクをコントロールすることが容易となる。また、同時利用率が100%ではないことを利用して、ユーザー総数に対して少ないVDIを共有端末的に提供してコストを抑えるためには、利用後のクリーンアップが必要で、これにもプール型による展開が不可欠だ。

そのため、デスクトップの仮想化の検討に際しては、まずはプール型を検討し、要件が満たせないユースケースに対して専有型を実装する、という流れになることが多い。既存の環境にガバナンスが効いている場合はプール型の導入は比較的容易であるが、逆に、既存環境にIT部門のガバナンスが効いてない場合はそのままではプール型の導入のハードルは高い。

プール型の仕組みを導入した場合は以下のような観点でアプリの動作確認を行う。

C:\直下やProgram Files直下に設定やデータを保存するもの

本来、新しいWindowsアプリであればレジストリやユーザープロファイルに設定やデータを保存するのが適当であるが、業務アプリやフリーウェア、ミドルウェアの中には、このお作法を守っていないものが多数存在する。

C:\ドライブ直下やProgram Files直下にフォルダを作り、iniファイルを置いて設定を保存したり、アプリ内で呼び出すExcelファイルやAccessファイルを置いたり、ユーザーのデータを保存したりするパターンだ。さらに、レジストリのHKEY_LOCAL_MACHINE以下にデータを保持するものも同様だ。

この問題はSBCの場合でも発生することだが、プール型の仕組みを導入した場合、VDIでも発生することになる。これらのファイルはログオフ時にユーザーごとに保持されないため、インストール時やアップデート時に一度だけ書く場合を例外として、常に「書いたはずのデータがなくなる」「設定をしたはずの内容が消える」といった問題にぶつかることになる。

こうした問題を回避する方法としては、ログイン・ログオフ時にファイルの読み書きを行う方法や、シンボリックリンクなどを使用する方法がある。

移動プロファイル or ローカルプロファイル

プール型を採用した場合、ユーザーは毎回異なるVMにアクセスすることになるため、個人設定やファイルを保持するには、移動ユーザープロファイルを使用する必要がある。その際、すべてのデータを移動ユーザープロファイルに保持するとログオン・ログオフ時に読み書きが行われて、ログオン時間やログオフ時間が長くなってしまうため、フォルダーリダイレクトを組み合わせて利用することが一般的だ。

移動ユーザープロファイルとフォルダーリダイレクト

ローカルプロファイルから移動ユーザープロファイルへの変更に際しては主に前項の「C:\直下やProgram Files直下に設定やデータを保存するもの」と確認の観点は同じだが、フォルダーリダイレクトと組み合わせる場合は以下の点に注意する。

ネットワークドライブ(UNCパス)の取り扱いに問題があるアプリ

アプリの中には、UNCパスの扱いに問題があるものがある。プロファイルはログイン時にローカルドライブにキャッシュされるので特に問題は起こらないが、フォルダーリダイレクトは同期的にネットワークドライブ(UNCパス)に読み書きを行う。これにより、UNCパスをうまく取り扱えないアプリでは、「ファイルが保存できない」「保存したはずの設定が読み込めない」「ファイルが破損する」といったことが発生する。

ファイルサーバの性能

仮想デスクトップを導入する前は物理端末でそれぞれ読み書きが行われていたところ、フォルダーリダイレクトの構成に変わると、デスクトップなどへの読み書きが常にファイルサーバに対して行われることになる。したがって、ファイルサーバへのレスポンスが悪化したような場合にアプリケーション側でタイムアウトなどが発生する可能性がある。

そのような場合、フォルダーリダイレクトの対象から該当領域を外すような対処も必要となるため、フォルダーリダイレクトの対象やファイルサーバの性能については事前の検討や負荷テストで十分確認する必要がある。

次回は、VDI化に伴ってマスターを共通化した場合に起きる課題として「標準アプリ or 個別アプリ」について説明する。

峰田 健一(みねた けんいち)

シトリックス・システムズ・ジャパン(株)
コンサルティングサービス部 プリンシパルコンサルタント

サーバ仮想化分野のエンジニアを経て、シトリックス・システムズ・ジャパンに入社。
主に大規模顧客のデスクトップ・アプリケーション仮想化のコンサルティングに従事している。