(57)【要約】      （修正有）【課題】必要とする記憶領域を最小限に抑えつつ、マスタイメージから複数の個別イメージを作成する作業の高速化を図ること等を実現する情報処理装置を提供する。【解決手段】情報処理装置は、第１の仮想ディスク管理手段と、第２の仮想ディスク管理手段と、第３の仮想ディスク管理手段とを具備する。第１の仮想ディスク管理手段は、マスタイメージを格納する第１の仮想ディスクを管理する。第２の仮想ディスク管理手段は、前記第１の仮想ディスクから個別情報を削除した初期化マスタイメージを格納する第２の仮想ディスクを前記第１の仮想ディスクとの差分ディスクとして作成して管理する。第３の仮想ディスク管理手段は、前記第２の仮想ディスクに個別情報を付加した個別イメージを格納する第３の仮想ディスクを前記第２の仮想ディスクとの差分ディスクとして作成して管理する。【選択図】図３
2013030128.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを含む各種プログラムがインストールされたディスクのイメージデータを格納する第１の仮想ディスクと、
前記第１の仮想ディスクが格納するイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の仮想ディスクとの差分である第１の差分との組み合わせによって構成される第２の仮想ディスクと、
前記第２の仮想ディスクが格納するイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の差分と、前記第２の仮想ディスクとの差分である第２の差分との組み合わせによって構成される第３の仮想ディスクと、
を管理する仮想ディスク管理手段を具備する情報処理装置。
【請求項２】
前記第１の仮想ディスクのデータおよび前記第２の仮想ディスクのデータの少なくとも一方を格納するキャッシュ領域を主メモリ上に確保するキャッシュ作成手段をさらに具備する請求項１に記載の情報処理装置。
【請求項３】
前記第１の差分は、前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除するために前記オペレーティングシステムを含む各種プログラムがインストールされたディスクに書き込まれるデータであり、
前記仮想ディスク管理手段は、前記第２の仮想ディスクの作成時に、前記第１の差分を前記キャッシュ領域に格納する、
請求項２に記載の情報処理装置。
【請求項４】
前記キャッシュ作成手段は、前記仮想ディスク管理手段による前記第２の仮想ディスクの作成時または前記第３の仮想ディスクの作成時に、前記キャッシュ領域を前記主メモリ上に確保する請求項２または３に記載の情報処理装置。
【請求項５】
前記第１の仮想ディスクと、前記第１の差分と、前記第２の差分とによって構成される前記第３の仮想ディスクを、ネットワークを介して接続される他の情報処理装置に配信する仮想ディスク配信手段をさらに具備する請求項２に記載の情報処理装置。
【請求項６】
前記キャッシュ作成手段は、前記仮想ディスク配信手段による前記第３の仮想ディスクの配信時に、前記キャッシュ領域を前記主メモリ上に確保する請求項５に記載の情報処理装置。
【請求項７】
コンピュータを、
オペレーティングシステムを含む各種プログラムがインストールされたディスクのイメージデータを格納する第１の仮想ディスクと、
前記第１の仮想ディスクが格納するイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の仮想ディスクとの差分である第１の差分との組み合わせによって構成される第２の仮想ディスクと、
前記第２の仮想ディスクが格納するイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の差分と、前記第２の仮想ディスクとの差分である第２の差分との組み合わせによって構成される第３の仮想ディスクと、
を管理する仮想ディスク管理手段として機能させるプログラム。
【請求項８】
前記コンピュータを、前記第１の仮想ディスクのデータまたは前記第２の仮想ディスクのデータの少なくとも一方を格納するキャッシュ領域を主メモリ上に確保するキャッシュ作成手段としてさらに機能させる請求項７に記載のプログラム。
【請求項９】
前記第１の差分は、前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除するために前記オペレーティングシステムを含む各種プログラムがインストールされたディスクに書き込まれるデータであり、
前記仮想ディスク管理手段は、前記第２の仮想ディスクの作成時に、前記第１の差分を前記キャッシュ領域に格納する、
請求項８に記載のプログラム。
【請求項１０】
前記キャッシュ作成手段は、前記仮想ディスク管理手段による前記第２の仮想ディスクの作成時または前記第３の仮想ディスクの作成時に、前記キャッシュ領域を前記主メモリ上に確保する請求項８または９に記載のプログラム。
【請求項１１】
前記コンピュータを、前記第１の仮想ディスクと、前記第１の差分と、前記第２の差分とによって構成される前記第３の仮想ディスクを、ネットワークを介して接続される他のコンピュータに配信する仮想ディスク配信手段としてさらに機能させる請求項８に記載のプログラム。
【請求項１２】
前記キャッシュ作成手段は、前記仮想ディスク配信手段による前記第３の仮想ディスクの配信時に、前記キャッシュ領域を前記主メモリ上に作成する請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えば、複数のクライアントのソフトウェア環境をサーバで統一的に管理するネットワークシステムに適用される情報処理装置に関する。
【背景技術】
【０００２】
近年、多くの企業で業務のＩＴ（information technology）化が図られており、このような企業では、社員は、例えば会社から貸与されるＰＣ（personal computer）を使って作業を行っている。また、これらのＰＣを相互に接続してデータを含むリソースの共有化を図るために、オフィスにＬＡＮ（local area network）を敷設することも広く行われている。
【０００３】
一方、社員が業務に使用するＰＣを介して企業の機密情報が漏洩するといった問題も散見されている。このようなことから、オフィスで業務に使用されるＰＣに関するセキュリティ強化が強く求められている。
【０００４】
例えば、シンクライアントは、ＣＰＵ（central processing unit）と主メモリとの他は、通信デバイスと、ユーザインタフェース用のキーボードやディスプレイデバイス等とのみを備えるコンピュータであり、オペレーティングシステムを含む各種プログラムおよび各種データは、ネットワークを介して接続されるサーバ（シンクライアントサーバ）によって管理される。即ち、ユーザが使用するシンクライアント側においてデータが保存されることがないので、情報の漏洩を防止でき、セキュリティの強化を図ることが実現される。また、シンクライアントで利用可能なプログラムがサーバで管理されるプログラムに限定されるので、コンピュータの（業務以外の）目的外利用も防止できる。ユーザが使用するプログラムをサーバで管理する方式としては、リッチクライアントも適用可能である。
【０００５】
シンクライアントには、いくつかの実装方式が存在するが、その中の１つを例に説明すると、シンクライアントサーバは、ソフトウェアによって作り出される、オペレーティングシステムを含む各種プログラムを動作させるための仮想的なハードウェア環境である仮想マシンを複数構築し、各仮想マシンに各々シンクライアントを割り当てる。そして、シンクライアントサーバは、各仮想マシン上で動作するオペレーティングシステムを含む各種プログラムによって作成される表示画面用の画像データを、対応するシンクライアントに送信する。これにより、シンクライアント側において、当該表示画面がユーザに提示されることになる。また、シンクライアントサーバは、シンクライアントから受信した入力データを、対応する仮想マシン上で動作するオペレーティングシステムを含む各種プログラムに引き渡す。
【０００６】
例えば（各部員が共通のプログラム群を利用して作業を行う）ある部署にｎ台のシンクライアントを設置する場合、通常、シンクライアントサーバは、（オペレーティングシステムを含む）当該共通のプログラム群がインストールされたディスクのイメージデータをマスタとして管理する。そして、シンクライアントサーバは、このマスタを基にして、例えばオペレーティングシステム等が保有する個別情報を各シンクライアント（または各ユーザ）向けにカスタマイズしたイメージデータをｎ個作成する。当該部署に設置するｎ台のシンクライアントが各々割り当てられた（シンクライアントサーバ上に構築される）ｎ個の仮想マシン上では、カスタマイズ後のイメージデータが各々用いられて、オペレーティングシステムを含む各種プログラムが起動する。
【０００７】
例えば、シンクライアントサーバにおける、マスタを基にした、各シンクライアント向けにカスタマイズした複数のイメージデータの作成時には、大量のデータアクセスが発生する。一方で、このようなデータアクセスの効率化を図るための仕組みについては、これまでも種々提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１９２０２０号公報
【特許文献２】特開２００８−１０２５７８号公報
【特許文献３】特表２００５−５１９４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、先に例示したシンクライアントサーバは、マスタとして管理するイメージデータを作成する場合、例えば、そのイメージデータの作成用に仮想マシンを構築し、当該仮想マシン上でオペレーティングシステムを含む各種プログラムのインストールを実行する。このインストールの実行時、例えばマシン名やＩＤ（Identification data）等、管理者用の個別情報が入力されるので、オペレーティングシステムを含む各種プログラムが当該管理者用の個別情報を保有することになる。そこで、シンクライアントサーバは、通常、このインストールの実行時に作成されたイメージデータをそのままマスタとして管理するのではなく、オペレーティングシステムを含む各種プログラムが保有する管理者用の個別情報を削除（初期化）したイメージデータをマスタとして管理する（マスタイメージ）。これにより、当該マスタイメージに各シンクライアント（または各ユーザ）用の個別情報を付加するだけで、各シンクライアント用のイメージデータ（個別イメージ）を作成することが可能となる。
【００１０】
しかしながら、そうすると、例えばオペレーションシステムを含む各種プログラムをバージョンアップする必要が生じた場合や、プログラムの追加、変更、削除などを行う必要が生じた場合、逆に、マスタイメージからこれらの作業のためだけの（オペレーティングシステムを含む各種プログラムが管理者用の個別情報を保有する）個別イメージを再作成することが必要となってしまう。そうかといって、インストールの実行時に作成されたイメージデータと、このイメージデータからオペレーティングシステムを含む各種プログラムが保有する個別情報を削除したイメージデータとの２つをそのままマスタとして管理することは、単純計算で２倍の記憶領域が必要となる等、現実的ではない。
【００１１】
また、これまでのデータアクセスの効率化手法においては、物理ディスクドライバやファイルシステムドライバなどが持つ一般的なキャッシュだけを利用する。このような一般的なキャッシュは、物理ディスク全体をキャッシュの対象とするので、例えばマスタイメージ以外へのアクセスを伴う他の処理が並行して実行されている場合などは、マスタイメージから複数の個別イメージを作成する処理において発生するデータアクセスのキャッシュヒット率は著しく低下する。そのため、このようなマスタイメージへのアクセスを含む特定の処理を高速化するための新たなキャッシュシステムの構築が求められる。
【００１２】
本発明は、必要とする記憶領域を最小限に抑えつつ、マスタイメージから複数の個別イメージを作成する作業の高速化を図ること等を実現する情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
実施形態によれば、情報処理装置は、仮想ディスク管理手段を具備する。仮想ディスク管理手段は、オペレーティングシステムを含む各種プログラムがインストールされたディスクのイメージデータを格納する第１の仮想ディスクと、前記第１の仮想ディスクが格納するイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の仮想ディスクとの差分である第１の差分との組み合わせによって構成される第２の仮想ディスクと、前記第２の仮想ディスクが格納するイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加したイメージデータを格納する仮想ディスクであって、前記第１の仮想ディスクと、前記第１の差分と、前記第２の仮想ディスクとの差分である第２の差分との組み合わせによって構成される第３の仮想ディスクとを管理する。
【図面の簡単な説明】
【００１４】
【図１】実施形態の情報処理装置が適用されるネットワークシステムの一構成例を示す図。
【図２】実施形態の情報処理装置のシステム構成を概略的に示す図。
【図３】実施形態の情報処理装置の仮想マシンシステムに関する機能ブロックを示す第１の図。
【図４】実施形態の情報処理装置上で実行されるマスタイメージの展開の全体の流れを示すフローチャート。
【図５】実施形態の情報処理装置の仮想マシンシステムに関する機能ブロックを示す第２の図。
【図６】実施形態の情報処理装置の仮想マシンシステムに関する機能ブロックを示す第３の図。
【発明を実施するための形態】
【００１５】
以下、実施の形態について図面を参照して説明する。
【００１６】
図１は、本実施形態の情報処理装置（管理サーバ１）が適用されるネットワークシステムの一構成例を示す図である。このネットワークシステムは、例えば企業が業務用に構築するネットワークシステムであって、各社員（ユーザ）は、クライアント２を用いて作業を行う。クライアント２のソフトウェア環境は、ＬＡＮ３を介して接続される管理サーバ１によって統一的に管理されている。より具体的には、ユーザが作業に用いるオペレーティングシステムを含む各種プログラムがインストールされたディスクのイメージデータが管理サーバ１によって管理され、各クライアント２は、当該管理サーバ１によって管理されるイメージデータを使って動作する。
【００１７】
各クライアント２が管理サーバ１によって管理されるイメージデータを使って動作する態様としては、大きく分けて、次の２つが存在する。
【００１８】
（１）シンクライアント
管理サーバ１は、各クライアント２毎に仮想マシンを自装置上に構築し、自身が管理するイメージデータを使って、各仮想マシン上でオペレーティングシステムを含む各種プログラムを起動する。仮想マシンは、ソフトウェアによって作り出される、オペレーティングシステムを含む各種プログラムを動作させるための仮想的なハードウェア環境である。管理サーバは、各仮想マシン上で動作するオペレーティングシステムを含む各種プログラムによって作成される表示画面用の画像データを、対応するクライアント２に送信すると共に、当該クライアント２から受信した入力データを、対応する仮想マシン上で動作するオペレーティングシステムを含む各種プログラムに引き渡す。クライアント２は、管理サーバから受信した画像データをディスプレイデバイスに表示する機能と、キーボード等からの入力データを管理サーバ１に送信する機能とのみを備える。
【００１９】
（２）リッチクライアント
管理サーバ１は、各クライアント２に対して、自身が管理するイメージデータを配信する。各クライアント２は、管理サーバ１から受け取ったイメージデータを例えばＨＤＤ（Hard disc drive）等に格納する。各クライアント２には、例えばＨＤＤ等を備える一般的なＰＣをシンクライアント化するためのソフトウェアである仮想化エンジン（仮想マシンモニタ）がインストールされている。仮想化エンジンは、常駐プログラムとして設定されており、クライアント２が電源オンされてオペレーティングシステム（ハイパーバイザ）が起動されると、これに伴い、当該ハイパーバイザの制御下で自動的に起動する。仮想化エンジンは、起動されると、クライアント２上に仮想マシンを構築し、例えばＨＤＤ等に格納したイメージデータを使って、構築した仮想マシン上で（イメージデータに含まれる）オペレーティングシステム（ゲストＯＳ）を含む各種プログラムを起動する。
【００２０】
仮想化エンジンは、仮想マシン上で動作するゲストＯＳを含む各種プログラムによって作成される表示画面用の画像データを、ハイパーバイザに引き渡し、当該画像データをクライアント２のディスプレイデバイスに表示することを要求すると共に、ハイパーバイザから受け取った（クライアント２のキーボード等を介して入力された）入力データを、仮想マシン上で動作するゲストＯＳを含む各種プログラムに引き渡す。この仮想化エンジンの働きにより、各クライアント２のソフトウェア環境を管理サーバ１で統一的に管理することが実現される。
【００２１】
また、仮想マシン上で動作する各種プログラムで使用されるユーザデータは、管理サーバ１（または図示しないファイルサーバ）上で管理されており、仮想化エンジンは、仮想マシン上で動作する各種プログラムがユーザデータのリード要求を発生させると、そのユーザデータをＬＡＮ３経由で管理サーバ１（または図示しないファイルサーバ）から取得し、一方、ライト要求を発生させた場合には、そのユーザデータをＬＡＮ３経由で管理サーバ１（または図示しないファイルサーバ）に送信する。即ち、ユーザデータがクライアント２内に保存されることがないので、企業の機密情報が漏洩することを防止できる。
【００２２】
なお、この（２）の態様は、クライアント２側におけるデータの保存禁止を目的とするのではなく、大量のクライアント２を運用するコストの削減を目的として採用し得る。例えば、あるプログラムをバージョンアップする場合、クライアント２毎に当該バージョンアップ作業を行わずとも、マスタのイメージデータに対して当該バージョンアップ作業を一括して行うことを可能とすることで、コストの削減を実現できる。このコストの削減を主たる目的とする場合には、仮想化エンジンは、仮想マシン上で動作する各種プログラムで使用されるユーザデータを管理サーバ１（または図示しないファイルサーバ）上で管理するための機能を必ずしも備える必要はない。
【００２３】
ところで、管理サーバ１は、各クライアント２に共通のイメージデータをマスタとして管理する。このマスタたるイメージデータ（マスタイメージ）は、例えば当該マスタイメージの作成用に仮想マシンを構築し、この仮想マシン上でゲストＯＳを含む各種プログラムのインストールを実行することによって作成される。このインストールの実行時、例えばマシン名やＩＤ等、管理者用の個別情報が入力されるので、ゲストＯＳを含む各種プログラムが当該管理者用の個別情報を保有することになる。そこで、当該ゲストＯＳを含む各種プログラムが保有する個別情報を削除（初期化）するカスタマイズがマスタイメージに対して施される。各クライアント２用のイメージデータ（個別イメージ）は、初期化されたマスタイメージに各クライアント２用の個別情報を付加するカスタマイズを施すことによって作成される。
【００２４】
上記（１），（２）のいずれの態様においても、管理サーバ１は、以上のように作成される個別イメージを各クライアント２毎に作成する必要がある。本実施形態の管理サーバ１は、必要とする記憶領域を最小限に抑えつつ、マスタイメージから複数の個別イメージを作成する作業の高速化を図ること等を実現する仕組みを備えたものであり、以下、この点について詳述する。なお、以下では、１つのマスタイメージを基にした複数の個別イメージの作成を「マスタイメージの展開」と称することがある。
【００２５】
図２は、本実施形態の情報処理装置（管理サーバ１）のシステム構成を概略的に示す図である。図２に示すように、管理サーバ１は、ＣＰＵ１１、主メモリ１２、外部記憶装置１３、入力装置１４、表示装置１５および通信装置１６を具備している。
【００２６】
ＣＰＵ１１は、オペレーティングシステム（ＯＳ）１００を含む各種プログラムを外部記憶装置１３から主メモリ１２にロードして実行する。各種プログラムの中には、後述する仮想マシンシステム構築ユーティリティ１１０が含まれている。主メモリ１２は、管理サーバ１の主記憶を担うメモリデバイスであり、一方、外部記憶装置は、主メモリ１２の補助装置としての役割を担うメモリデバイスである。
【００２７】
また、入力装置１４は、管理サーバ１が提供するユーザインタフェースのインプットを担うデバイスであり、一方、表示装置１５は、管理サーバ１が提供するユーザインタフェースのアウトプットを担うデバイスである。そして、通信装置１６は、ＬＡＮ３を介したクライアント２との通信を実行する。
【００２８】
ここで、図１および図２と共に、図３を併せて参照して、管理サーバ１上で動作する仮想マシンシステム構築ユーティリティ１１０によって構築される仮想マシンシステムの概要について説明する。なお、ここでは、本ネットワークシステムが、いわゆるシンクライアントシステムとして構築されるものと想定する（上記（１）の態様）。図３は、管理サーバ１の仮想マシンシステムに関する機能ブロックを示す図である。
【００２９】
図２に示したように、仮想マシンシステム構築ユーティリティ１１０は、仮想マシン作成モジュール１１１、仮想ディスク管理モジュール１１２、ディスクキャッシュ作成モジュール１１３、シンクライアント機能モジュール１１４および仮想ディスク配信モジュール１１５を有している。
【００３０】
仮想マシン作成モジュール１１１は、オペレーティングシステムを含む各種プログラムを動作させるための仮想的なハードウェア環境である仮想マシン１４０を管理サーバ１内に作り出すためのモジュールである。仮想マシン作成モジュール１１１は、複数の仮想マシン１４０を管理サーバ１内に作成することができる。図３中、仮想マシン［０］１４０は、後述するマスタディスク１２１の作成時に作成される仮想マシンである。一方、仮想マシン［ｎ：ｎ＝１，２，３，…］１４０は、クライアント［ｎ］２毎に作成される仮想マシンである。
【００３１】
仮想ディスク管理モジュール１１２は、第１に、仮想マシン作成モジュール１１１によって作成された仮想マシン［０］１４０を使って、マスタディスク１２１を作成し、当該作成したマスタディスク１２１を管理するためのモジュールである。仮想ディスク管理モジュール１１２は、クライアント２のユーザが使用するゲストＯＳを含む各種プログラムのインストールを仮想マシン［０］１４０上で実行することによってマスタディスク１２１を作成する。即ち、マスタディスク１２１は、クライアント２のユーザが使用するゲストＯＳを含む各種プログラムがインストールされたディスクのイメージデータである。マスタディスク１２１は、仮想ディスクとして作成される。仮想ディスク方式は、物理ディスク（外部記憶装置１３である例えばＨＤＤ）上の一部の領域を仮想的に１つのディスクとして扱う方式であり、仮想ディスク管理モジュール１１２は、この仮想ディスク方式をサポートする。
【００３２】
この仮想マシン作成モジュール１１１による（仮想マシン［０］１４０上での）インストール実行時、管理者は、マシン名やＩＤ等の個別情報を入力する。この個別情報は、ゲストＯＳを含む各種プログラムによって保有され、従って、マスタディスク１２１内に含まれることになる（図中の”ＩＤ：０”）。そこで、管理者は、マスタディスク１２１内に含まれる個別情報を削除（初期化）する作業を実施する。仮想ディスク管理モジュール１１２は、第２に、マスタディスク１２１に含まれる個別情報を削除（初期化）した初期化マスタディスク１２２を作成し、当該作成した初期化マスタディスク１２２を管理するためのモジュールである。仮想ディスク管理モジュール１１２によって作成される初期化マスタディスク１２２には、実体的には、個別情報が含まれるマスタディスク１２１と当該個別情報を削除したマスタディスク１２１との間の差分、具体的には、マスタディスク１２１内の個別情報が書き込まれた領域を初期値に書き戻すためのパッチデータのみが格納される。つまり、ここでは、仮想ディスク管理モジュール１１２がサポートする仮想ディスク方式が、差分ディスク機能を有することを前提としている。差分の単位は、ファイル単位またはセクタ単位のいずれも適用可能である。
【００３３】
換言すると、マスタディスク１２１と初期化マスタディスク１２２とは、親ディスクと子ディスクとの関係にあり、初期化マスタディスク１２２は、マスタディスク１２１との組み合わせによって１つの仮想ディスクを構成する。より具体的には、マスタディスク１２１内に含まれる個別情報を削除（初期化：図中の”ＩＤ：未設定”）したものに相当する仮想ディスクを構成する。
【００３４】
また、仮想ディスク管理モジュール１１２は、第３に、初期化マスタディスク１２２に各クライアント２（または各ユーザ）用の個別情報（図中の”ＩＤ：ｎ”）を付加した各クライアント２用の個別ディスク１２３をそれぞれ作成し、当該作成した個別ディスク１２３それぞれを管理するためのモジュールである。仮想ディスク管理モジュール１１２によって作成される個別ディスク１２３それぞれにも、実体的には、個別情報が付加される前の初期化マスタディスク１２２と個別情報が付加された後の初期化マスタディスク１２２との間の差分、具体的には、初期化マスタディスク１２２内の所定の領域に個別情報を書き込むためのパッチデータのみが格納される。従って、マスタディスク１２１、初期化マスタディスク１２２および個別ディスク１２３は、親ディスク、子ディスクおよび孫ディスクの関係にあり、個別ディスク１２３は、マスタディスク１２１および初期化マスタディスク１２２との組み合わせによって１つの仮想ディスクを構成する。
【００３５】
なお、ここでは、仮想ディスク管理モジュール１１２が、マスタディスク１２１、初期化マスタディスク１２２、個別ディスク１２３のすべてを管理する例を示すが、マスタディスク１２１、初期化マスタディスク１２２、個別ディスク１２３のそれぞれに対し、管理用のモジュールを個別に設けるようにしてもよい。
【００３６】
図４は、本実施形態の管理サーバ１上で実行されるマスタイメージの展開の全体の流れを示すフローチャートである。
【００３７】
まず、仮想ディスク管理モジュール１１２が、物理ディスク上に親ディスク用の領域を確保することによって、親ディスクを作成する（ブロックＡ１）。続いて、仮想ディスク管理モジュール１１２は、仮想マシン作成モジュール１１１に作成させた仮想マシン［０］１４０を使って、親ディスクに対して、ゲストＯＳやアプリケーションプログラムのインストールおよび設定などを行い、マスタイメージを作成する（ブロックＡ２）。
【００３８】
次に、仮想ディスク管理モジュール１１２は、物理ディスク上に子ディスク用の領域を確保することによって、子ディスクを作成する（ブロックＡ３）。続いて、仮想ディスク管理モジュール１１２は、マスタイメージの初期化を実施し、その結果を子ディスクに書き込む（ブロックＡ４）。
【００３９】
最後に、仮想ディスク管理モジュール１１２は、物理ディスク上に孫ディスク用の領域をクライアント２毎に確保することによって、複数の孫ディスクを作成する（ブロックＡ５）。そして、仮想ディスク管理モジュール１１２は、マスタイメージの個別化をクライアント２毎に実施し、その結果を各孫ディスクに書き込む（ブロックＡ６）。
【００４０】
なお、仮想ディスク管理モジュール１１２によって作成・管理される個別ディスク１２３は、上記（１）の態様の場合、仮想マシン作成モジュール１１１によって作成された仮想マシン［ｎ］１４０に各々割り当てられ、仮想マシン［ｎ］１４０上で（個別ディスク［ｎ］１２３に含まれる）ゲストＯＳを含む各種プログラムがそれぞれ起動される。シンクライアント機能モジュール１１４は、仮想マシン［ｎ］１４０上で動作するゲストＯＳを含む各種プログラムが作成した表示画面用の画像データをクライアント［ｎ］２に送信すると共に、クライアント［ｎ］２から受け取った入力データを仮想マシン［ｎ］１４０上で動作するゲストＯＳを含む各種プログラムに引き渡す処理を実行するモジュールである。即ち、シンクライアント機能モジュール１１４は、管理サーバ１をシンクライアントサーバとして動作させるためのモジュールである。一方、上記（２）の態様の場合には、クライアント［ｎ］２に対して、仮想ディスク管理モジュール１１２によって管理される個別ディスク［ｎ］１２３が配信される。個別ディスク［ｎ］１２３の配信は、具体的には、マスタディスク１２１＋初期化マスタディスク１２２＋個別ディスク［ｎ］１２３の配信となる。仮想ディスク配信モジュール１１５は、当該クライアント２に対する個別ディスク１２３の配信を司るモジュールである。
【００４１】
このように、本実施形態の管理サーバ１では、差分ディスク機能を有する仮想ディスク方式をサポートする仮想ディスク管理モジュール１１２によって、親ディスクとしてマスタディスク１２１、子ディスクとして初期化マスタディスク１２２、孫ディスクとして個別ディスク［ｎ］１２３がそれぞれ管理される。
【００４２】
子ディスクである初期化マスタディスク１２２は、親ディスクであるマスタディスク１２１との差分のみを格納し、孫ディスクである個別ディスク［ｎ］１２３は、子ディスクである初期化マスタディスク１２２との差分のみを格納する。よって、ソフトウェア環境を統一的に管理すべきクライアント２の数が増加しても、各クライアント２について、初期化マスタディスク１２２との差分、つまり初期化マスタディスク１２２に付加すべき個別情報を個別ディスク１２３として管理するだけで良い。即ち、本実施形態の管理サーバ１は、差分ディスク機能を有する仮想ディスク方式を適用し、マスタディスク１２１、初期化マスタディスク１２２および個別ディスク１２３といった３段階の差分ディスク構成とすることによって、ディスク効率を高めることを可能とし、必要とする記憶領域を最小限に抑えることを実現する。これにより、コストダウンも達成されることになる。
【００４３】
また、ゲストＯＳを含む各種プログラムが管理者用の個別情報を保有するマスタディスク１２１を親ディスクとして管理することにより、例えばゲストＯＳを含む各種プログラムのバージョンアップや、プログラムの追加、変更、削除などといったメンテナンス作業が必要となった場合、このマスタディスク１２１を使って、仮想マシン［０］１４０上で当該メンテナンス作業を可及的速やかに着手することが可能となる。つまり、通常はマスタとして管理される初期化マスタディスク１２２から当該メンテナンス作業用の個別イメージを再作成することを不要とし、作業効率を高めることで、更なるコストダウンを達成することができる。
【００４４】
なお、ここでは、マスタディスク１２１、初期化マスタディスク１２２および個別ディスク１２３といった３段階の差分ディスク構成とする例を説明したが、未初期化のマスタイメージを親ディスクとして管理せず、初期化した結果を親ディスクに書き込み、この初期化済みディスクを親ディスク、個別化した結果を書き込んだ個別ディスクを子ディスクとする２段階の差分ディスク構成としても良い。
【００４５】
次に、本実施形態の管理サーバ１が、マスタイメージへのアクセスを含む特定の処理を高速化するために構築するキャッシュシステムについて説明する。
【００４６】
前述したように、個別ディスク１２３は、マスタディスク１２１および初期化マスタディスク１２２との組み合わせによって１つの仮想ディスクを構成する。よって、ここで想定する上記（１）の態様においては、仮想マシン［ｎ］１４０それぞれから、共通の親ディスクであるマスタディスク１２１または共通の子ディスクである初期化マスタディスクからのデータの読み出しが発生する。そこで、本実施形態の管理サーバ１は、図３に示したように、マスタディスク１２１からのデータの読み出し時または初期化マスタディスク１２２からのデータの読み出し時（図３のｘ１）、当該マスタディスク１２１から読み出されたデータを格納するためのキャッシュ１３０ａと、当該初期化マスタディスク１２２から読み出されたデータを格納するためのキャッシュ１３０ｂとを主メモリ１２上に作成する仕組みを備える。ディスクキャッシュ作成モジュール１１３は、このキャッシュ１３０ａおよびキャッシュ１３０ｂの作成を司るモジュールである。
【００４７】
ある１つの仮想マシン［ｎ］１４０がマスタディスク１２１または初期化マスタディスク１２２から読み出したデータが、キャッシュ１３０ａまたはキャッシュ１３０ｂに保存されていたならば、（例えば仮想マシン［ｎ］１４０上でのゲストＯＳを含む各種プログラムの起動時などにおける）その他の仮想マシン［ｎ］１４０は、マスタディスク１２１または初期化マスタディスク１２２から高速にデータを読み出すことが可能である。
【００４８】
物理ディスクドライバやファイルシステムドライバなどが持つ一般的なキャッシュが、物理ディスク（外部記憶装置１３である例えばＨＤＤ）全体をキャッシュの対象としているのに対して、このキャッシュ１３０ａ，キャッシュ１３０ｂは、仮想ディスクであるマスタディスク１２１（親ディスク），初期化マスタディスク１２２（子ディスク）用に確保される物理ディスク上の一部の領域だけをキャッシュの対象としているため、マスタディスク１２１または初期化マスタディスク１２２からのデータの読み出しに関するキャッシュのヒット率は極めて高い。従って、（マスタディスク１２１用のキャッシュ１３０ａと初期化マスタディスク１２２用のキャッシュ１３０ｂとを主メモリ１２上に作成する仕組みを備えることにより）仮想マシン［ｎ］１４０による仮想ディスクの読み出しを高速化することを実現する。
【００４９】
また、初期化マスタディスク１２２用のキャッシュ１３０ｂは、仮想マシン［ｎ］１４０により読み出されたデータを格納するだけではなく、図５に示すように、初期化マスタディスク１２２への書き込みデータ（図５のｘ２）を格納することに用いることも有効である。具体的には、マスタディスク１２１の初期化時、つまり初期化マスタディスク１２２の作成時に、仮想ディスク管理モジュール１１２は、初期化マスタディスク１２２に書き込むデータをキャッシュ１３０ｂに保存する。
【００５０】
例えばゲストＯＳを含む各種プログラムのバージョンアップや、プログラムの追加、変更、削除などといったメンテナンス作業が発生し、すべての個別ディスク１２３を再作成する必要が生じたような場合、仮想ディスク管理モジュール１１２は、初期化マスタディスク１２２を用いたマスタイメージの個別化をクライアント２毎に実行することで、新たな個別ディスク１２３を作成することになる。この場合、１つ目の個別ディスク１２３を作成する際、つまり最初に初期化マスタディスク１２２からのデータの読み出しを実行する際においても、キャッシュ１３０ｂからデータを読み出せるので、さらに読み出しの高速化を図ることができる。なお、仮想ディスク管理モジュール１１２による初期化マスタディスク１２２の作成時に、マスタディスク１２１からのデータの読み出しが行われて、その読み出しデータがキャッシュ１３０ａに格納されるので、１つ目の個別ディスク１２３を作成する際におけるマスタディスク１２１からのデータの読み出しも、キャッシュ１３０ａを用いて実行することができる。
【００５１】
また、ディスクキャッシュ作成モジュール１１３は、仮想ディスク管理モジュール１１２による初期化マスタディスク１２２の作成時または個別ディスク１２３の作成時にのみ、キャッシュ１３０ａ，キャッシュ１３０ｂを主メモリ上に作成するようにしても良い。つまり、アクセスされるデータについて局所性が顕著に現れると推定される場合のみキャッシュ１３０ａ，キャッシュ１３０ｂを作成することにより、主メモリ１２の使用量を適切に抑制することを実現する。
【００５２】
次に、図６を参照して、本ネットワークシステムが、上記（２）の態様を想定する場合について考える。この場合、前述したように、仮想ディスク配信モジュール１１５によって、各クライアント２に対する個別ディスク１２３の配信が実行される。また、前述したように、個別ディスク１２３は、マスタディスク１２１および初期化マスタディスク１２２との組み合わせによって１つの仮想ディスクを構成するので、仮想ディスク配信モジュール１１５は、マスタディスク１２１、初期化マスタディスク１２２および個別ディスク１２３を各クライアント２に配信することになる。
【００５３】
つまり、この仮想ディスク配信モジュール１１５によるクライアント２に対する個別ディスク１２３の配信時（図６のｘ４）にも、個別ディスク１２３からのデータの読み出しに加えて、各個別ディスク１２３に共通のマスタディスク１２１および初期化マスタディスク１２２からのデータの読み出しが多数発生する（図６のｘ３）。よって、マスタディスク１２１用のキャッシュ１３０ａと初期化マスタディスク１２２用のキャッシュ１３０ｂとを主メモリ１２上に作成することで、当該マスタディスク１２１および初期化マスタディスク１２２からのデータの読み出しを高速化することができる。また、ディスクキャッシュ作成モジュール１１３は、主メモリ１２の使用量を適切に抑制するために、この仮想ディスク配信モジュール１１５によるクライアント２に対する個別ディスク１２３の配信時にのみ、キャッシュ１３０ａ，キャッシュ１３０ｂを主メモリ上に作成するようにしても良い。
【００５４】
以上のように、本実施形態の管理サーバ１は、第１に、差分ディスク機能を有する仮想ディスク方式を適用し、マスタディスク１２１、初期化マスタディスク１２２および個別ディスク１２３といった３段階の差分ディスク構成とし、第２に、マスタディスク１２１および初期化マスタディスク１２２のそれぞれに専用のキャッシュ１３０ａおよびキャッシュ１３０ｂを主メモリ１２上に作成する仕組みを持つことにより、必要とする記憶領域を最小限に抑えつつ、マスタイメージから複数の個別イメージを作成する作業の高速化を図ること等を実現する。
【００５５】
なお、本実施形態の動作制御処理は、ソフトウェア（プログラム）によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、本実施形態と同様の効果を容易に実現することができる。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１…管理サーバ、２…クライアント、３…ＬＡＮ、１１…ＣＰＵ、１２…主メモリ、１３…外部記憶装置、１４…入力装置、１５…表示装置、１６…通信装置、１００…オペレーティングシステム、１１０…仮想マシンシステム構築ユーティリティ、１１１…仮想マシン作成モジュール、１１２…仮想ディスク管理モジュール、１１３…ディスクキャッシュ作成モジュール、１１４…シンクライアント機能モジュール、１１５…仮想ディスク配信モジュール、１２１…マスタディスク、１２２…初期化マスタディスク、１２３…個別ディスク、１３０ａ，１３０ｂ…キャッシュ、１４０…仮想マシン。
【図１】
2013030128.tif 000003
【図２】
2013030128.tif 000004
【図３】
2013030128.tif 000005
【図４】
2013030128.tif 000006
【図５】
2013030128.tif 000007
【図６】
2013030128.tif 000008
【手続補正書】
【提出日】平成24年7月25日(2012.7.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オペレーティングシステムを含む各種プログラムがインストールされた第１のディスクの第１のイメージデータを格納する第１の仮想ディスクと、
前記第１のイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除した第２のイメージデータを格納する第２のディスクを前記第１の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第１のディスクと前記第２のディスクとの第１の差分を格納する第２の仮想ディスクと、
前記第２のイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加した第３のイメージデータを格納する第３のディスクを前記第１の仮想ディスクおよび前記第２の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第２のディスクと前記第３のディスクとの第２の差分を格納する第３の仮想ディスクと、
を管理する仮想ディスク管理手段を具備する情報処理装置。
【請求項２】
前記第１の仮想ディスクのデータおよび前記第２の仮想ディスクのデータの少なくとも一方を格納するキャッシュ領域を主メモリ上に確保するキャッシュ作成手段をさらに具備する請求項１に記載の情報処理装置。
【請求項３】
前記第２の仮想ディスクが格納する前記第１の差分は、前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除するために前記オペレーティングシステムを含む各種プログラムがインストールされたディスクに書き込まれるデータであり、
前記仮想ディスク管理手段は、前記第２のディスクの作成時に、前記第２の仮想ディスクのデータを前記キャッシュ領域に格納する、
請求項２に記載の情報処理装置。
【請求項４】
前記キャッシュ作成手段は、前記仮想ディスク管理手段による前記第２のディスクの作成時または前記第３のディスクの作成時に、前記キャッシュ領域を前記主メモリ上に確保する請求項２または３に記載の情報処理装置。
【請求項５】
前記第３のディスクを構成するための前記第１の仮想ディスク、前記第２の仮想ディスクおよび前記第３の仮想ディスクを、ネットワークを介して接続される他の情報処理装置に配信する仮想ディスク配信手段をさらに具備する請求項２に記載の情報処理装置。
【請求項６】
前記キャッシュ作成手段は、前記仮想ディスク配信手段による前記第１の仮想ディスク、前記第２の仮想ディスクおよび前記第３の仮想ディスクの配信時に、前記キャッシュ領域を前記主メモリ上に確保する請求項５に記載の情報処理装置。
【請求項７】
コンピュータを、
オペレーティングシステムを含む各種プログラムがインストールされた第１のディスクの第１のイメージデータを格納する第１の仮想ディスクと、
前記第１のイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除した第２のイメージデータを格納する第２のディスクを前記第１の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第１のディスクと前記第２のディスクとの第１の差分を格納する第２の仮想ディスクと、
前記第２のイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加した第３のイメージデータを格納する第３のディスクを前記第１の仮想ディスクおよび前記第２の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第２のディスクと前記第３のディスクとの第２の差分を格納する第３の仮想ディスクと、
を管理する仮想ディスク管理手段として機能させるプログラム。
【請求項８】
前記コンピュータを、前記第１の仮想ディスクのデータまたは前記第２の仮想ディスクのデータの少なくとも一方を格納するキャッシュ領域を主メモリ上に確保するキャッシュ作成手段としてさらに機能させる請求項７に記載のプログラム。
【請求項９】
前記第２の仮想ディスクが格納する前記第１の差分は、前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除するために前記オペレーティングシステムを含む各種プログラムがインストールされたディスクに書き込まれるデータであり、
前記仮想ディスク管理手段は、前記第２のディスクの作成時に、前記第２の仮想ディスクのデータを前記キャッシュ領域に格納する、
請求項８に記載のプログラム。
【請求項１０】
前記キャッシュ作成手段は、前記仮想ディスク管理手段による前記第２のディスクの作成時または前記第３のディスクの作成時に、前記キャッシュ領域を前記主メモリ上に確保する請求項８または９に記載のプログラム。
【請求項１１】
前記コンピュータを、前記第３のディスクを構成するための前記第１の仮想ディスク、前記第２の仮想ディスクおよび前記第３の仮想ディスクを、ネットワークを介して接続される他のコンピュータに配信する仮想ディスク配信手段としてさらに機能させる請求項８に記載のプログラム。
【請求項１２】
前記キャッシュ作成手段は、前記仮想ディスク配信手段による前記第１の仮想ディスク、前記第２の仮想ディスクおよび前記第３の仮想ディスクの配信時に、前記キャッシュ領域を前記主メモリ上に作成する請求項１１に記載のプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
実施形態によれば、情報処理装置は、仮想ディスク管理手段を具備する。仮想ディスク管理手段は、オペレーティングシステムを含む各種プログラムがインストールされた第１のディスクの第１のイメージデータを格納する第１の仮想ディスクと、前記第１のイメージデータから前記オペレーティングシステムを含む各種プログラムが保有する個別情報を削除した第２のイメージデータを格納する第２のディスクを前記第１の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第１のディスクと前記第２のディスクとの第１の差分を格納する第２の仮想ディスクと、前記第２のイメージデータに前記オペレーティングシステムを含む各種プログラムに保有させるべき個別情報を付加した第３のイメージデータを格納する第３のディスクを前記第１の仮想ディスクおよび前記第２の仮想ディスクとの組合せによって構成するための仮想ディスクであって、前記第２のディスクと前記第３のディスクとの第２の差分を格納する第３の仮想ディスクとを管理する。