PR
 ここ数年の間に,クライアントとサーバーの管理は劇的に変化した。「昔」は,ファイル・サーバーにインストール用ソフトウエアが保管されており,管理者がアプリケーションを手動でインストールしたり,ログオン・スクリプトを使ってアプリケーションをデプロイしたりしていた。現在では,アクティブ・ディレクトリ(AD)とグループ・ポリシーを利用して,より簡単にアプリケーションをコンピュータに割り当てたり,発行したりできる。そして,Microsoft Systems Management Server (SMS)は,より詳細で洗練されたソフトウエア発行やプログレス・レポートの機能を持っており,さらに優れたソリューションを提供する。

 これらの技術によりソフトウエアのデプロイの問題は軽減したものの,アプリケーションの互換性や管理可能性に関する不満は依然として残っている。例えば,アプリケーションにパッチを適用するには,どのようにすればいいのだろうか? そのアプリケーションは,別のアプリケーションをインストールしても,正常に作動するだろうか? そのアプリケーションとVistaの間に互換性はあるだろうか?

 アプリケーションをインストールすると,コンポーネントは必ずそのマシンに登録される。実行ファイルやDLL,その他のファイルは,ファイル・システムにコピーされる。そして,レジストリには情報が書き込まれる。アプリケーションのアップグレードやアンインストールを行っても,情報は削除されずに残る。時間の経過とともに,コンピュータは,互換性問題の原因になる残り物のファイルやレジストリ情報,登録されたコンポーネントなどで“汚染”されていくのだ。

 仮想化技術も,このところ進化している。伝統的にOSの仮想化は,二つの重要なシナリオで重宝されてきた。二つのシナリオとは,統合とテストである。

 昔は,重要なアプリケーションはそれぞれ自分独自のサーバー上で作動していた。これは,ハードウエアとライセンスの観点から見て,コストのかかる方法だった。今は,仮想化技術を利用することにより,複数の「サンドボックス化」されたOSを1台の物理サーバー上で実行できる。1台のサーバー上で複数のアプリケーションが作動することになるが,それぞれのアプリケーションは,自分独自のハードディスクとレジストリ,プロセサ,メモリー・リソースを持つ仮想OS上で作動するため,アプリケーションの互換性問題は発生しない。

 さらに,テストを行うときに仮想化システムを利用すると,複数のOS(例えば,Windows XPとWindows 2000 Server,Windows 95,Vista)をすべて同一のシステム上で実行できる。さらに,複数のテスト環境を同時に実行することも可能だ。

OS仮想化でも残る管理上の問題点

 仮想OSでアプリケーションを実行すると,アプリケーションの互換性問題がすべて解決するように聞こえる。確かにアプリケーションが一つの場合は上手くいくかもしれないが,一つのOS上で動作するアプリケーションの数が10個となるとどうだろうか? その場合は,必要なオーバーヘッドやメモリー使用量,ディスク・スペースについて考えなければならない。さらに,それぞれのOSインスタンスについて,管理と保護,そしてパッチの適用を行う必要がある。アプリケーションはOS内でサンドボックス化されるが,そのOS全体の環境もサンドボックス化される。そのため,OS内のアプリケーションで作成された文書やデータを,ホスト・コンピュータのローカル・ファイル・システムに保存するのは困難である。

 この問題を解決する一番の方法は,アプリケーションを仮想化することだ。そうすると,コンピュータ上でそれぞれのアプリケーションをローカルで実行できるようになる。

 このソリューションは,アプリケーションがターミナル・サーバー上で作動し,出力がユーザーのコンピュータに送信されるターミナル・サーバー方式(サーバー・ベース・コンピューティングとしても知られている)のアプリケーション発行とは異なる。サーバー・ベース・コンピューティングでは,アプリケーションがターミナル・サーバー上に存在するため,シングル・ポイント障害が発生する。さらに,ユーザーのコンピュータがアイドル状態のときにターミナル・サーバー上でワークロードが発生するため,リソースが浪費される。そのうえ,オフラインで作業しているユーザーは,ターミナル・サーバー上にホスティングされたアプリケーションを実行することができないのだ。

 アプリケーションの仮想化は,これらの問題を防止する。仮想化されたアプリケーションは,通常のアプリケーションと同じようにユーザーのマシン上で作動するが,通常のアプリケーションと違ってローカルOSへのインストールを防ぐサンドボックス環境内で実行されるからだ。Microsoftの「SoftGrid」は,アプリケーション仮想化のソリューションである。