(57)【特許請求の範囲】
【請求項１】
仮想マシンが動作可能な１またはそれ以上の情報処理装置を含む情報処理システムが行う仮想マシン管理方法であって、
前記仮想マシンにインストールされているソフトウェアを検出し、
ソフトウェアのインストールに用いられるファイルを記憶する記憶装置から、前記仮想マシンにインストールされているソフトウェアに応じたファイルを取得することで、１またはそれ以上のテンプレートファイルを生成し、
前記仮想マシンの動作に使用されている１またはそれ以上のファイルと、前記１またはそれ以上のテンプレートファイルとを比較し、
比較結果に基づいて、前記仮想マシンの設定状況を示す構成情報を生成する、
仮想マシン管理方法。
【請求項２】
前記１またはそれ以上のファイルと前記１またはそれ以上のテンプレートファイルとの間の差分の少なくとも一部を含むパッケージファイルを生成し、
生成した前記パッケージファイルと前記構成情報とを関連付ける、
請求項１記載の仮想マシン管理方法。
【請求項３】
前記１またはそれ以上のファイルと前記１またはそれ以上のテンプレートファイルとの間の差分のうち、条件情報が示す条件に応じた差分を選択し、
選択した差分を用いて、前記構成情報を生成する、
請求項１または２記載の仮想マシン管理方法。
【請求項４】
生成した前記構成情報を前記記憶装置に保存し、
前記仮想マシンを再起動する場合、前記記憶装置に保存した前記構成情報と前記１またはそれ以上のテンプレートファイルとを用いて、前記仮想マシンを起動する、
請求項１乃至３の何れか一項に記載の仮想マシン管理方法。
【請求項５】
自装置または他の装置で動作する仮想マシンを管理する情報処理装置であって、
前記仮想マシンにインストールされているソフトウェアを検出し、ソフトウェアのインストールに用いられるファイルを記憶する記憶装置から、前記仮想マシンにインストールされているソフトウェアに応じたファイルを取得することで、１またはそれ以上のテンプレートファイルを生成し、前記仮想マシンの動作に使用されている１またはそれ以上のファイルと前記１またはそれ以上のテンプレートファイルとを比較し、比較結果に基づいて、前記仮想マシンの設定状況を示す構成情報を生成する生成部、
を有する情報処理装置。
【請求項６】
自コンピュータまたは他のコンピュータで動作する仮想マシンを管理するための仮想マシン管理プログラムであって、コンピュータに、
前記仮想マシンにインストールされているソフトウェアを検出し、
ソフトウェアのインストールに用いられるファイルを記憶する記憶装置から、前記仮想マシンにインストールされているソフトウェアに応じたファイルを取得することで、１またはそれ以上のテンプレートファイルを生成し、
前記仮想マシンの動作に使用されている１またはそれ以上のファイルと、前記１またはそれ以上のテンプレートファイルとを比較し、
比較結果に基づいて、前記仮想マシンの設定状況を示す構成情報を生成する、
処理を実行させる仮想マシン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理方法、情報処理装置および仮想マシン管理プログラムに関する。
【背景技術】
【０００２】
物理的な情報処理装置（物理マシンと呼ぶことがある）上で、１またはそれ以上の仮想的な情報処理装置（仮想マシンと呼ぶことがある）を動作させる仮想化技術が利用されている。仮想マシンに対しては、他の仮想マシンとは独立に、各種の設定を行うことができる。例えば、仮想マシン毎に、オペレーティングシステム（ＯＳ：Operating System）やアプリケーションソフトウェアをインストールできる。また、仮想マシン毎に、ユーザのプログラムやデータを配置することもできる。また、仮想マシン毎に、ホスト名やアドレスなどのシステム設定情報を付与することもできる。
【０００３】
仮想マシンの動作に使用されるファイルの集合は、他の仮想マシンとは独立のファイルシステムとして管理することが可能である。仮想マシンのファイルシステムは、当該仮想マシンの設定変更などに伴って更新される。ファイルシステムを不揮発性の記憶装置に保存しておくことで、保存されたファイルシステムを用いて仮想マシンを再起動することができる。仮想マシンのファイルシステムをひと固まりのデータとして扱うとき、当該ひと固まりのデータを仮想マシンイメージと呼ぶことがある。仮想マシンイメージを移動または複製することで、仮想マシンを任意の情報処理装置上で起動させることもできる。
【０００４】
なお、第１および第２の仮想マシンイメージを比較して、２つの仮想マシンイメージに共通に含まれるファイルを検出し、当該共通のファイルを第１および第２の仮想マシンイメージ間で共有する方法が提案されている。また、通信機器の機能としてのオブジェクトに新規の構成管理プロファイルを適用するとき、事前に運用中のオブジェクトと新規のオブジェクトの差分を保存しておき、障害が発生した場合には差分に基づいてオブジェクトを復旧する復旧システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００７／０８００４４号
【特許文献２】特開２００６−３０９４１３号公報（段落［００２４］）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、設定の異なる複数の仮想マシンを作成して、各仮想マシンの動作に使用されるファイルを保存しておき、複数の仮想マシンを使い分けることがある。例えば、ソフトウェアのテストを行うとき、配置するプログラムやデータ、通信設定などを仮想マシンによって変えて、複数通りのテストや分散処理のテストを行うことが考えられる。しかし、設定の異なる複数の仮想マシンを作成した場合、仮想マシンの管理が煩雑になるという問題がある。例えば、作成しておいた複数の仮想マシンの中から、所望の設定を行った仮想マシンを選択して起動したい場合、どのように設定を確認すればよいかが問題となる。
【０００７】
一側面では、本発明は、仮想マシンの管理を容易にする仮想マシン管理方法、情報処理装置および仮想マシン管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一実施態様では、仮想マシンが動作可能な１またはそれ以上の情報処理装置を含む情報処理システムが行う仮想マシン管理方法が提供される。仮想マシン管理方法では、仮想マシンの動作に使用されている１またはそれ以上のファイルと、１またはそれ以上のテンプレートファイルとを比較する。比較結果に基づいて、仮想マシンの設定状況を示す構成情報を生成する。
【０００９】
また、一実施態様では、自装置または他の装置で動作する仮想マシンを管理する情報処理装置が提供される。情報処理装置は、記憶部と生成部とを有する。記憶部は、１またはそれ以上のテンプレートファイルを記憶する。生成部は、仮想マシンの動作に使用されている１またはそれ以上のファイルと１またはそれ以上のテンプレートファイルとを比較し、比較結果に基づいて、仮想マシンの設定状況を示す構成情報を生成する。
【００１０】
また、一実施態様では、自コンピュータまたは他のコンピュータで動作する仮想マシンを管理するための仮想マシン管理プログラムが提供される。仮想マシン管理プログラムは、コンピュータに以下の処理を実行させる。仮想マシンの動作に使用されている１またはそれ以上のファイルと、１またはそれ以上のテンプレートファイルとを比較する。比較結果に基づいて、仮想マシンの設定状況を示す構成情報を生成する。
【発明の効果】
【００１１】
一実施態様によれば、仮想マシンの管理が容易になる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】サーバ装置のハードウェア例を示すブロック図である。
【図４】ＶＭイメージの差分例を示す図である。
【図５】サーバ装置のソフトウェア例を示すブロック図である。
【図６】抽出条件テーブルの例を示す図である。
【図７】無視条件テーブルの例を示す図である。
【図８】構成情報の生成処理を示すフローチャートである。
【図９】ＶＭイメージのディレクトリ構造の例を示す図である。
【図１０】仮想マシンのシステム設定情報の例を示す図である。
【図１１】ＶＭイメージの差分抽出結果の例を示す図である。
【図１２】仮想マシンの構成情報の例を示す図である。
【図１３】仮想マシンの起動処理を示すフローチャートである。
【図１４】仮想マシンの保存方法の例を示す図である。
【図１５】仮想マシン管理のシーケンス例を示す図である。
【図１６】仮想マシンの管理画面の例を示す図である。
【図１７】仮想マシンの管理画面の例（続き）を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を、図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１０は、仮想マシンが動作可能な１またはそれ以上の情報処理装置を含む情報処理システムに用いられる。仮想マシン１１が、情報処理装置１０または情報処理装置１０とネットワークで接続された他の情報処理装置で動作する。
【００１４】
情報処理装置１０は、生成部１３を有する。生成部１３は、ＣＰＵ（Central Processing Unit）およびＲＡＭ（Random Access Memory）を用いて実行されるプログラムとして実装されてもよく、仮想マシンとして実装されてもよい。生成部１３は、仮想マシン１１の動作に使用されている１またはそれ以上のファイル１１ａと、記憶部１２に記憶された１またはそれ以上のテンプレートファイル１２ａとを比較する。生成部１３は、比較結果に基づいて、仮想マシン１１の設定状況を示す構成情報１３ａを生成する。
【００１５】
ファイル１１ａとしては、例えば、仮想マシン１１のＯＳが管理するファイルシステムに含まれるファイルを使用できる。ファイル１１ａには、ホスト名などのシステム設定情報を記載した設定ファイル、アプリケーションソフトウェアのファイル、ユーザが作成したプログラムやデータのファイルが含まれてもよい。記憶部１２は、情報処理装置１０が備えていてもよいし、情報処理装置１０とネットワークで接続された他の情報処理装置が備える記憶装置でもよい。テンプレートファイル１２ａとしては、例えば、ユーザによる設定変更やファイルの編集が行われる前の初期状態のファイルを使用できる。
【００１６】
情報処理装置１０は、テンプレートファイル１２ａを、構成情報１３ａを生成する際に生成してもよい。例えば、仮想マシン１１にインストールされているソフトウェア（ＯＳやアプリケーションソフトウェアなど）を確認し、確認したソフトウェアのインストールに用いられるインストールファイルを所定の記憶装置から取得し、テンプレートファイル１２ａを生成してもよい。テンプレートファイル１２ａの生成は、生成部１３が行ってもよいし、生成部１３とは異なるモジュールが行ってもよい。また、テンプレートファイル１２ａの生成は、情報処理装置１０以外の他の情報処理装置が行ってもよい。
【００１７】
構成情報１３ａは、１またはそれ以上のファイル１１ａと１またはそれ以上のテンプレートファイル１２ａとの間の差分に基づいて、生成することができる。例えば、生成部１３は、差分を抽出し、差分のうち所定の条件に適合する差分を選択して、構成情報１３ａに挿入してもよい。選択される差分には、設定ファイルに記載されたシステム設定情報が含まれてもよい。また、生成部１３は、ファイル１１ａの集合に含まれテンプレートファイル１２ａの集合に含まれないファイルを抽出して、仮想マシン１１に固有のパッケージファイルを生成し、パッケージファイルを示す情報を構成情報１３ａに挿入してもよい。
【００１８】
生成された構成情報１３ａは、不揮発性の記憶装置に保存しておくことができる。構成情報１３ａは、情報処理システムで動作可能な複数の仮想マシンの中から、起動する仮想マシンを検索するために利用されてもよい。また、構成情報１３ａは、仮想マシン１１を起動する際に利用されてもよい。例えば、情報処理装置１０または他の情報処理装置は、テンプレートファイル１２ａに構成情報１３ａに含まれる情報（例えば、ホスト名などのシステム設定情報）を適用することで、仮想マシン１１を復元することができる。
【００１９】
第１の実施の形態の情報処理装置１０によれば、仮想マシン１１の動作に使用されている１またはそれ以上のファイル１１ａと、１またはそれ以上のテンプレートファイル１２ａとが比較される。比較結果に基づいて、仮想マシン１１の設定状況を示す構成情報１３ａが生成される。これにより、仮想マシンの管理が容易になる。
【００２０】
例えば、設定の異なる複数の仮想マシンが作成されている場合でも、所望の仮想マシンを検索することが容易となる。また、仮想マシン１１を起動する前に、仮想マシン１１の設定を確認することもできる。また、テンプレートファイル１２ａとの比較によって構成情報１３ａが生成されるため、ユーザが構成情報１３ａに相当する情報を手作業で入力および管理しなくてもよく、仮想マシンの管理の負担が軽減される。
【００２１】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、サーバ装置１００，１００ａ、ストレージ装置２００、管理装置３００および端末装置４００を含む。サーバ装置１００，１００ａ、ストレージ装置２００および管理装置３００は、ネットワーク３０に接続されている。端末装置４００は、ネットワーク４０に接続されている。第２の実施の形態の情報処理システムは、いわゆるクラウドコンピューティングの形態をとるシステム（クラウドシステム）として実現できる。
【００２２】
サーバ装置１００，１００ａは、１またはそれ以上の仮想マシン（ＶＭ：Virtual Machine）を配置できるサーバコンピュータである。サーバ装置１００，１００ａは、管理装置３００からの指示に応じて、仮想マシンの起動や終了を行う。サーバ装置１００，１００ａでは、仮想マシンを制御するソフトウェアであるハイパーバイザが動作している。ハイパーバイザは、ＣＰＵやＲＡＭなどのリソースを仮想マシンに割り当てる。
【００２３】
ストレージ装置２００は、仮想マシンに関するデータを管理するコンピュータである。ストレージ装置２００は、共通リポジトリ、固有リポジトリおよび構成情報データベース（ＤＢ）を有する。共通リポジトリには、ＯＳやパッケージアプリケーションなど、複数のユーザから共通に利用できるソフトウェアのファイルが格納される。固有リポジトリには、ユーザが作成したプログラムやデータなど、ユーザ固有のファイルが格納される。構成情報ＤＢには、仮想マシンの構成情報が格納される。構成情報は、ホスト名などのシステム設定情報や、インストールされているソフトウェアを示す情報を含む。
【００２４】
管理装置３００は、サーバ装置１００，１００ａへの仮想マシンの配置を管理するコンピュータである。管理装置３００は、端末装置４００からユーザの仮想マシンの起動要求があると、負荷が偏らないように何れかのサーバ装置を選択し、選択したサーバ装置上でユーザの仮想マシンを起動させる。また、管理装置３００は、端末装置４００からユーザの仮想マシンに対応する構成情報を生成するよう要求があると、構成情報を生成する機能をもつ仮想マシンを、何れかのサーバ装置（ユーザの仮想マシンが動作中のときは、好ましくは、当該ユーザの仮想マシンが動作しているサーバ装置）上で起動させる。
【００２５】
端末装置４００は、ユーザが操作するクライアント装置としてのコンピュータである。端末装置４００は、ネットワーク４０を通じてネットワーク３０にアクセスし、ユーザの仮想マシンの起動を管理装置３００に要求する。また、端末装置４００は、ユーザの仮想マシンに対応する構成情報を生成するよう、管理装置３００に要求する。生成された構成情報は、例えば、起動する仮想マシンを選択するために利用される。端末装置４００上では、アクセスに用いるユーザインタフェースとして、ウェブブラウザが動作してもよい。
【００２６】
図３は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信部１０７を有する。上記ユニットは、サーバ装置１００内でバスに接続されている。なお、サーバ装置１００ａ、ストレージ装置２００、管理装置３００および端末装置４００も、サーバ装置１００と同様のハードウェアにより実現できる。
【００２７】
ＣＰＵ１０１は、サーバ装置１００における情報処理を制御する演算装置である。ＣＰＵ１０１は、ＨＤＤ１０３や他のコンピュータの記憶装置（例えば、ストレージ装置２００の記憶装置）に記憶されたプログラムやデータの少なくとも一部を読み出して、ＲＡＭ１０２に展開し、プログラムを実行する。なお、サーバ装置１００は、複数の演算装置を備えて、情報処理を分散して実行してもよい。
【００２８】
ＲＡＭ１０２は、ＣＰＵ１０１が扱うプログラムやデータを一時的に記憶しておく揮発性メモリである。なお、サーバ装置１００は、ＲＡＭ以外の種類のメモリを備えていてもよく、複数個のメモリを備えていてもよい。
【００２９】
ＨＤＤ１０３は、ＯＳプログラムやアプリケーションプログラムなどのプログラム、および、情報処理に用いられるデータを記憶する不揮発性の記憶装置である。ＨＤＤ１０３は、ＣＰＵ１０１の命令に従って、内蔵の磁気ディスクに対する読み書きを行う。ＨＤＤ１０３の記憶領域の一部は、仮想ディスクとして仮想マシンに割り当てられる。なお、サーバ装置１００は、ＨＤＤ以外の種類の不揮発性の記憶装置（例えば、ＳＳＤ（Solid State Drive））を備えていてもよく、複数の記憶装置を備えていてもよい。
【００３０】
画像信号処理部１０４は、ＣＰＵ１０１の命令に従って、サーバ装置１００に接続されたディスプレイ２１に画像を出力する。ディスプレイ２１として、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００３１】
入力信号処理部１０５は、サーバ装置１００に接続された入力デバイス２２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス２２として、例えば、マウスやタッチパネルなどのポインティングデバイスや、キーボードなどを用いることができる。
【００３２】
ディスクドライブ１０６は、記録媒体２３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体２３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０６は、例えば、ＣＰＵ１０１の命令に従って、記録媒体２３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３３】
通信部１０７は、ネットワーク３０に接続して通信を行う通信インタフェースである。ネットワーク３０への接続方法は、有線でも無線でもよい。すなわち、通信部１０７は、有線通信インタフェースでも無線通信インタフェースでもよい。
【００３４】
図４は、ＶＭイメージの差分例を示す図である。ＶＭイメージテンプレートは、構成情報を生成する際に、ユーザの仮想マシンの現在のＶＭイメージと対比される基準となるＶＭイメージである。ＶＭイメージテンプレートは、例えば、ＯＳやパッケージアプリケーションがユーザから指定されて仮想マシンが生成された直後のＶＭイメージに相当する。ＶＭイメージは、仮想マシンの動作に伴って更新されていく。
【００３５】
ＶＭイメージテンプレートは、例えば、ＯＳファイルと共通パッケージを含む。ＯＳファイルは、ＯＳの動作に使用されるファイルであり、システム設定ファイルとログファイルを含む。ＶＭイメージテンプレートのシステム設定ファイルには、システム設定情報の既定値が記載されている。ログファイルは、空であってもよい。共通パッケージは、データベース管理ソフトウェアなど、複数の仮想マシンが利用可能なパッケージアプリケーションの動作に使用されるファイルである。
【００３６】
使用開始後の仮想マシンのＶＭイメージは、例えば、ＯＳファイルと共通パッケージとユーザファイルを含む。ＯＳファイルは、システム設定ファイルとログファイルと一時ファイル（ｔｍｐファイルと呼ぶこともある）を含む。現在のＶＭイメージのシステム設定ファイルには、ユーザにより変更されたシステム設定情報が記載されている。ログファイルには、当該仮想マシンの使用状況を示すログ情報が記載されている。一時ファイルは、ＯＳの動作に伴って一時的に生成されるファイルである。ユーザファイルは、ユーザが作成したプログラムやデータを含むファイルである。
【００３７】
このように、現在のＶＭイメージをＶＭイメージテンプレートと比較すると、ユーザファイルがＶＭイメージに追加されていることがある。また、ＯＳのシステム設定ファイルやログファイルが更新されていることがある。また、ＯＳの一時ファイルがＶＭイメージに追加されていることがある。これら差分のうち、特にユーザファイルとシステム設定ファイルに関する差分が、当該仮想マシンの利用状況を把握する上で有用である。
【００３８】
図５は、サーバ装置のソフトウェア例を示すブロック図である。サーバ装置１００上では、ハイパーバイザ１１０および仮想マシン１２０、１３０，１４０が動作可能である。サーバ装置１００ａ上でも、サーバ装置１００と同様のソフトウェアが動作可能である。
【００３９】
ハイパーバイザ１１０は、仮想マシン１２０，１３０，１４０などの仮想マシンを制御する。ハイパーバイザ１１０は、ＣＰＵ１０１の処理能力、ＲＡＭ１０２やＨＤＤ１０３の記憶領域、通信部１０７の通信帯域などのリソースを仮想マシン１２０，１３０，１４０に割り振る。また、ハイパーバイザ１１０は、仮想マシン１２０，１３０，１４０からデバイスへのアクセスおよび仮想マシン間のアクセスを中継する。
【００４０】
仮想マシン１２０は、仮想マシン１３０，１４０などの仮想マシンの起動および停止を制御する。仮想マシン１２０は、管理装置３００からユーザの仮想マシンの起動が指示されると、ストレージ装置２００から当該仮想マシンに関するファイルを取得してＨＤＤ１０３上に割り当てられた記憶領域（仮想ディスク）に展開し、当該仮想マシンを起動させる。また、管理装置３００からユーザの仮想マシンの終了が指示されると、当該仮想マシンを終了させる。また、仮想マシン１２０は、管理装置３００から構成情報の生成が指示されると、ユーザの仮想マシンの場合と同様にして、仮想マシン１４０を起動させる。
【００４１】
仮想マシン１３０は、仮想マシン１２０によって起動および終了が制御されるユーザの仮想マシンである。仮想マシン１３０は、端末装置４００からの指示に応じて、仮想ディスク上のファイルを更新することがある。また、アプリケーションプログラムやユーザが作成したプログラムの実行に伴って、仮想ディスク上のファイルを更新することがある。
【００４２】
仮想マシン１４０は、仮想マシン１３０などのユーザの仮想マシンに対応する構成情報を生成する。仮想マシン１４０は、管理装置３００からの指示に基づいて、仮想マシン１２０の制御のもと起動される。以下の第２の実施の形態の説明では、仮想マシン１４０が仮想マシン１３０の構成情報を生成する場合を考える。仮想マシン１４０は、テンプレート生成部１４１、テンプレート記憶部１４２、差分抽出部１４３、条件情報記憶部１４４、構成情報生成部１４５、構成情報保存部１４６を有する。
【００４３】
テンプレート生成部１４１は、仮想マシン１３０に対応するＶＭイメージテンプレートと構成情報テンプレートを生成する。テンプレート生成部１４１は、仮想マシン１３０にインストールされているＯＳおよびパッケージアプリケーションを確認し、これに対応するＯＳファイルおよび共通パッケージをストレージ装置２００から取得してＶＭイメージテンプレートを生成する。また、インストールされているＯＳおよびパッケージアプリケーションに応じた既定（デフォルト）情報を記載した構成情報テンプレートを生成する。
【００４４】
テンプレート記憶部１４２は、テンプレート生成部１４１が生成したＶＭイメージテンプレートおよび構成情報テンプレートを記憶する。テンプレート記憶部１４２は、仮想ディスクの記憶領域として実現できる。なお、テンプレート生成部１４１は、自身でテンプレートを生成せずに、仮想マシン１２０に生成を依頼してもよい。また、仮想マシン１４０が起動する前に、仮想マシン１２０がテンプレートを生成しておいてもよい。
【００４５】
差分抽出部１４３は、仮想マシン１３０のＶＭイメージとテンプレート記憶部１４２に記憶されたＶＭイメージテンプレートとを比較して、両者の差分を抽出する。例えば、ＶＭイメージテンプレートと比較して、仮想マシン１３０のＶＭイメージに追加されているファイル（例えば、ユーザファイル）や更新されている仮想マシン１３０のファイル（例えば、システム設定ファイル）を抽出する。仮想マシン１３０のＶＭイメージとＶＭイメージテンプレートとを比較するため、差分抽出部１４３は、例えば、仮想ディスクに記憶されている両者を仮想マシン１４０のファイルシステムにマウントする。
【００４６】
条件情報記憶部１４４は、差分抽出部１４３で抽出された差分の中から、構成情報に関連する差分を選択するための条件を示す条件情報を記憶する。条件情報記憶部１４４は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保された記憶領域として実現できる。条件情報が示す条件は、抽出条件と無視条件とを含む。抽出条件は、特定の項目の情報（例えば、システム設定情報に含まれるホスト名）を抽出するファイルを示す。無視条件は、構成情報に関連しないために無視するファイルを示す。
【００４７】
構成情報生成部１４５は、差分抽出部１４３で抽出された差分と条件情報記憶部１４４に記憶された条件情報に基づいて、仮想マシン１３０の構成情報と固有パッケージを生成する。例えば、構成情報生成部１４５は、抽出条件に適合するファイルから特定の項目の情報を抽出し、テンプレート記憶部１４２に記憶された構成情報テンプレートを書き換えて構成情報を生成する。また、抽出条件および無視条件の何れにも適合しないファイルをまとめて固有パッケージを生成し、固有パッケージの識別情報を構成情報に挿入する。
【００４８】
構成情報保存部１４６は、構成情報生成部１４５で生成された構成情報を、ストレージ装置２００の構成情報ＤＢに保存する。また、構成情報生成部１４５で生成された固有パッケージを、ストレージ装置２００が有する固有リポジトリに保存する。
【００４９】
なお、第２の実施の形態では、仮想マシン１３０の構成情報を仮想マシン１４０が生成するものとしたが、仮想マシン以外のソフトウェアが生成するようにしてもよい。また、仮想マシン１４０は、仮想マシン１３０と異なるサーバ装置で動作してもよい。また、仮想マシン１４０は、仮想マシン１３０のＯＳがシャットダウンされることが検出されたときに、自動的に起動して仮想マシン１３０の構成情報を生成するようにしてもよい。
【００５０】
図６は、抽出条件テーブルの例を示す図である。抽出条件テーブル１４７は、条件情報記憶部１４４に記憶されている。抽出条件テーブル１４７は、ＯＳの種類毎に用意してもよい。抽出条件テーブル１４７は、ファイルパス、検索式および要素名を含む。
【００５１】
ファイルパスは、ファイルシステム内でのファイルの位置を示す。例えば、システム設定ファイルが指定される。検索式は、ファイルパスが示すファイルの中から検索する文字列を示す。検索式は、正規表現を用いてもよく、変数（％ｓ）を含んでよい。例えば、ホスト名を定義した文字列が検索対象として指定される。要素名は、検索式にマッチした文字列に対応する情報（例えば、変数％ｓに相当する文字列）を挿入すべき、構成情報内の位置を示す。検索式にマッチした文字列がＶＭイメージテンプレートから更新されているとき、構成情報内の要素名が示す位置に情報が挿入される。
【００５２】
図７は、無視条件テーブルの例を示す図である。無視条件テーブル１４８は、条件情報記憶部１４４に記憶されている。無視条件テーブル１４８は、ＯＳの種類毎に用意してもよい。無視条件テーブル１４８は、ファイルパスを含む。ファイルパスは、追加または更新されたことを無視する（固有パッケージから除外する）ファイルの位置を示す。当該ファイルパスは、ワイルドカード（＊）を用いてもよく、ディレクトリを指定することもできる。例えば、ログファイルや一時ファイルが指定される。
【００５３】
図８は、構成情報の生成処理を示すフローチャートである。以下、図８に示す生成処理をステップ番号に沿って説明する。
（ステップＳ１１）テンプレート生成部１４１は、仮想マシン１３０にインストールされているＯＳおよびパッケージアプリケーションを確認する。ＯＳは、例えば、仮想マシン１３０のＶＭイメージの属性情報を参照することで確認できる。または、ユーザが端末装置４００を操作して構成情報の生成を指示するとき、ＯＳを示す情報をユーザに入力させてもよい。パッケージアプリケーションは、例えば、パッケージ管理ツールのコマンド（ｒｐｍコマンドなど）を仮想マシン１３０に送信し、パッケージアプリケーションのリストを仮想マシン１３０から取得することで確認できる。
【００５４】
（ステップＳ１２）テンプレート生成部１４１は、ステップＳ１１で確認したＯＳに対応するＯＳファイルおよびパッケージアプリケーションに対応する共通パッケージを、ストレージ装置２００が有する共通リポジトリから取得する。
【００５５】
なお、ストレージ装置２００の共通リポジトリに、高頻度で利用されるＯＳファイルと共通パッケージとを組み合わせたファイルを格納しておいてもよい。例えば、共通リポジトリに、高頻度で利用されるＯＳとパッケージアプリケーションとをインストール済みのＶＭテンプレートイメージを格納しておいてもよい。その場合、テンプレート生成部１４１は、ステップＳ１１で確認したＯＳとパッケージアプリケーションの組み合わせに対応するファイルを、ストレージ装置２００の共通リポジトリから取得すればよい。
【００５６】
（ステップＳ１３）テンプレート生成部１４１は、ステップＳ１２で取得したＯＳファイルをテンプレート記憶部１４２に展開し、更に共通パッケージをテンプレート記憶部１４２に展開する（例えば、インストール処理を行う）。これにより、ＶＭイメージテンプレートが生成される。また、テンプレート生成部１４１は、ステップＳ１１におけるＯＳおよびパッケージアプリケーションの確認結果に基づいて、構成情報テンプレートを生成する。なお、ＶＭイメージテンプレートの生成は、仮想マシン１２０が行ってもよい。
【００５７】
（ステップＳ１４）差分抽出部１４３は、仮想マシン１３０の現在のＶＭイメージと、ステップＳ１３で生成されたＶＭイメージテンプレートを、仮想マシン１４０のファイルシステムにマウントする。これにより、仮想マシン１４０は、自身のファイルシステムのディレクトリ構造を辿ることで、仮想マシン１３０が使用しているファイルとＶＭイメージテンプレートに含まれるファイルにアクセスできるようになる。
【００５８】
（ステップＳ１５）差分抽出部１４３は、仮想マシン１３０が使用しているファイル群とＶＭイメージテンプレートに含まれるファイル群とを、ディレクトリ構造も含めて比較し、両者の差分を抽出する。ファイル群同士の比較には、例えば、ｒｓｙｎｃコマンド、ｄｉｆｆコマンド、ｆｉｎｄコマンド、ｔｅｓｔコマンドなどを用いることができる。抽出される差分には、何れか一方のファイル群のみに存在するファイルと、両方のファイル群に存在するが内容の異なるファイルとが含まれる。内容の異なるファイルについては、差分抽出部１４３は、ファイル内の更新されている部分の文字列を検出する。
【００５９】
（ステップＳ１６）構成情報生成部１４５は、ステップＳ１５で抽出された差分であって、仮想マシン１３０が使用しているファイルを１つ選択する。
（ステップＳ１７）構成情報生成部１４５は、ステップＳ１６で選択したファイルのパスを確認し、当該ファイルパスが無視条件テーブル１４８の無視条件に適合するか（当該ファイルパスが登録されているか）判断する。無視条件に適合する場合、処理をステップＳ２１に進める。無視条件に適合しない場合、処理をステップＳ１８に進める。
【００６０】
（ステップＳ１８）構成情報生成部１４５は、ステップＳ１６で選択したファイルのパスが、抽出条件テーブル１４７の抽出条件に適合するか（当該ファイルパスが登録されているか）判断する。抽出条件に適合する場合、処理をステップＳ１９に進める。抽出条件に適合しない場合、処理をステップＳ２０に進める。
【００６１】
（ステップＳ１９）構成情報生成部１４５は、ステップＳ１６で選択したファイル内の更新されている部分の文字列と、抽出条件テーブル１４７の検索式とを照合して、構成情報に記載する文字列を抽出する。そして、構成情報生成部１４５は、ステップＳ１３で生成された構成情報テンプレートの中の、抽出条件テーブル１４７の要素名が示す位置に、抽出した文字列を挿入する。そして、処理をステップＳ２１に進める。
【００６２】
（ステップＳ２０）構成情報生成部１４５は、ステップＳ１６で選択したファイルを、固有パッケージに追加するファイルとして選択する。
（ステップＳ２１）構成情報生成部１４５は、ステップＳ１６で差分としてのファイルを全て選択したか判断する。全て選択した場合、処理をステップＳ２２に進める。未選択のファイルがある場合、処理をステップＳ１６に進める。
【００６３】
（ステップＳ２２）構成情報生成部１４５は、ステップＳ２０で選択した１またはそれ以上のファイルを含む固有パッケージを生成する。また、ステップＳ１９で構成情報テンプレートに基づいて作成された構成情報に、固有パッケージの名称を挿入する。構成情報保存部１４６は、生成された構成情報を、ネットワーク３０を介して、ストレージ装置２００の構成情報ＤＢに格納する。また、生成された固有パッケージを、ネットワーク３０を介して、ストレージ装置２００の固有リポジトリに格納する。
【００６４】
なお、固有パッケージの名称は、端末装置４００を操作するユーザが入力するようにしてもよいし、構成情報生成部１４５が自動的に付与してもよい。また、例えば、固有パッケージは、固有パッケージに含めるファイルを指定してｒｐｍｂｕｉｌｄコマンドを発行することで、生成することが可能である。
【００６５】
図９は、ＶＭイメージのディレクトリ構造の例を示す図である。仮想マシン１３０のＶＭイメージが仮想マシン１４０にマウントされると、例えば、仮想マシン１４０のディレクトリ“ｍｎｔ”の下にディレクトリ“ｔａｒｇｅｔ”が生成される。また、ＶＭイメージテンプレートが仮想マシン１４０にマウントされると、例えば、仮想マシン１４０のディレクトリ“ｍｎｔ”の下にディレクトリ“ｔｅｍｐｌａｔｅ”が生成される。
【００６６】
仮想マシン１３０のファイルシステムは、システム設定ファイル“ｎｅｔｗｏｒｋ”、ユーザディレクトリ“ｔｅｓｔａｐｐ／”、ログファイル“ｍｅｓｓａｇｅｓ”、ユーザディレクトリ“ｔｅｓｔｄｂ／”および一時ファイル“ａａａ”を含む。ここでは、上記のシステム設定ファイルとログファイルの内容が、ＶＭイメージテンプレートのものと異なる（更新されている）とする。また、上記の一時ファイルと２つのユーザディレクトリが、ＶＭイメージテンプレートには存在しないとする。
【００６７】
図１０は、仮想マシンのシステム設定情報の例を示す図である。システム設定ファイル“ｎｅｔｗｏｒｋ”には、ホスト名（“ＨＯＳＴＮＡＭＥ”）を含む複数の項目のシステム設定情報が記載されている。ＶＭイメージテンプレートに含まれるシステム設定ファイルには、例えば、既定のホスト名“ｌｏｃａｌｈｏｓｔ”が記載されている。一方、仮想マシン１３０のＶＭイメージに含まれるシステム設定ファイルには、例えば、ユーザにより更新されたホスト名“ｍｙｈｏｓｔ１”が記載されている。
【００６８】
図１１は、ＶＭイメージの差分抽出結果の例を示す図である。差分抽出部１４３は、図９に示したファイルシステムに対して差分抽出を行うと、図１１に示すような差分抽出結果を生成して構成情報生成部１４５に出力する。
【００６９】
この差分抽出結果は、ディレクトリ“ｔｅｓｔａｐｐ／”，“ｔｅｓｔｄｂ／”とファイル“ａａａ”が、仮想マシン１３０のＶＭイメージに含まれ、ＶＭイメージテンプレートに含まれていないことを示している。また、この差分抽出結果は、ファイル“ｎｅｔｗｏｒｋ”，“ｍｅｓｓａｇｅｓ”の内容が、仮想マシン１３０のＶＭイメージとＶＭイメージテンプレートとで異なることを示している。また、仮想マシン１３０におけるファイル“ｎｅｔｗｏｒｋ”の３行目は、“ＨＯＳＴＮＡＭＥ＝ｍｙｈｏｓｔ１”と記載されている一方、ＶＭイメージテンプレートにおけるファイル“ｎｅｔｗｏｒｋ”の３行目は、“ＨＯＳＴＮＡＭＥ＝ｌｏｃａｌｈｏｓｔ”と記載されていることを示している。
【００７０】
構成情報生成部１４５は、差分抽出部１４３で抽出された上記の差分それぞれを、抽出条件テーブル１４７および無視条件テーブル１４８に登録された条件情報と照合する。ファイル“ａａａ”，“ｍｅｓｓａｇｅｓ”は、無視条件テーブル１４８に登録されたファイルパスに適合するため、構成情報の生成において無視される。ファイル“ｎｅｔｏｗｒｋ”は、抽出条件テーブル１４７に登録されたファイルパスに適合するため、検索式の変数に相当する文字列“ｍｙｈｏｓｔ１”が構成情報として抽出される。ディレクトリ“ｔｅｓｔａｐｐ／”，“ｔｅｓｔｄｂ／”および当該ディレクトリに含まれるファイルおよびディレクトリは、抽出条件テーブル１４７と無視条件テーブル１４８の何れにも適合しないため、固有パッケージに挿入される。
【００７１】
図１２は、仮想マシンの構成情報の例を示す図である。構成情報は、例えば、ＸＭＬ（Extensible Markup Language）を用いて記述することができる。テンプレート生成部１４１は、仮想マシン１３０にインストールされているＯＳおよびパッケージアプリケーションに応じて、図１２に示すような構成情報テンプレートを作成する。構成情報生成部１４５は、構成情報テンプレートに基づいて、図１２に示すような構成情報を生成する。
【００７２】
構成情報テンプレートは、例えば、仮想マシン１３０にインストールされているＯＳを示す情報、インストールされているパッケージアプリケーションを示す情報、および、既定のシステム設定情報を含む。ＯＳを示す情報は、例えば、ＯＳの名称とバージョン番号とを含む。パッケージアプリケーションを示す情報は、例えば、パッケージアプリケーションの名称とバージョン番号とを含む。既定のシステム設定情報は、例えば、ＶＭイメージテンプレートのシステム設定ファイルに記載されているホスト名を含む。
【００７３】
構成情報は、例えば、仮想マシン１３０にインストールされているＯＳを示す情報、インストールされているパッケージアプリケーションを示す情報、仮想マシン１３０に対応する固有パッケージを示す情報、および、システム設定情報を含む。ＯＳを示す情報およびパッケージアプリケーションを示す情報は、構成情報テンプレートに含まれる情報を用いることができる。システム設定情報は、例えば、システム設定ファイルから抽出されたホスト名を含む。固有パッケージを示す情報は、構成情報生成部１４５で生成された固有パッケージの名称（例えば、ユーザにより入力された名称）を含む。
【００７４】
仮想マシン１４０によって生成されストレージ装置２００に保存された構成情報は、起動する仮想マシンをユーザが選択するために利用することができる。また、構成情報は、仮想マシン１３０を起動するために利用することもできる。
【００７５】
図１３は、仮想マシンの起動処理を示すフローチャートである。以下、仮想マシン１３０を起動する場合を想定して、図１３に示す生成処理をステップ番号に沿って説明する。
（ステップＳ３１）仮想マシン１２０は、管理装置３００からユーザの仮想マシン１３０の起動が指示されると、仮想マシン１３０の構成情報を、ネットワーク３０を介してストレージ装置２００の構成情報ＤＢから取得する。
【００７６】
（ステップＳ３２）ハイパーバイザ１１０は、ＨＤＤ１０３上に仮想ディスクの領域を確保し、仮想マシン１３０に割り当てる。
（ステップＳ３３）仮想マシン１２０は、ステップＳ３１で取得した仮想マシン１３０の構成情報を参照して、仮想マシン１３０が利用しているＯＳを確認し、ＯＳファイルをストレージ装置２００の共通リポジトリから取得する。そして、仮想マシン１２０は、仮想マシン１３０に割り当てられた仮想ディスクに、ＯＳファイルを展開する。
【００７７】
（ステップＳ３４）仮想マシン１２０は、仮想マシン１３０の構成情報を参照して、仮想マシン１３０が利用しているパッケージアプリケーションを確認し、共通パッケージをストレージ装置２００の共通リポジトリから取得する。そして、仮想マシン１２０は、仮想ディスク１３０に割り当てられた仮想ディスクに、共通パッケージを展開する。
【００７８】
（ステップＳ３５）仮想マシン１２０は、仮想マシン１３０の構成情報を参照して、仮想マシン１３０に対応する固有パッケージをストレージ装置２００の固有リポジトリから取得する。そして、仮想マシン１２０は、仮想マシン１３０に割り当てられた仮想ディスクに、固有パッケージを展開する。
【００７９】
（ステップＳ３６）仮想マシン１２０は、仮想マシン１３０の構成情報に記載されたシステム設定情報を、仮想マシン１３０のＯＳに適用する。例えば、構成情報に記載されたシステム設定情報を用いて、ＯＳのシステム設定ファイルを更新する。その後、ハイパーバイザ１１０は、仮想マシン１３０のＯＳを起動させる。
【００８０】
図１４は、仮想マシンの保存方法の例を示す図である。ここでは、端末装置４００を操作するユーザが、４つの仮想マシン（仮想マシン＃１〜＃４）を作成した場合を考える。仮想マシン＃１，＃２は、ＯＳとしてＯＳ＃１を利用し、パッケージアプリケーションとしてＤＢＭＳ（Database Management System）＃１を利用している。仮想マシン＃３，＃４は、ＯＳ＃２およびＤＢＭＳ＃２を利用している。
【００８１】
ストレージ装置２００は、共通リポジトリ２１０、固有リポジトリ２２０および構成情報ＤＢ２３０を有する。共通リポジトリ２１０には、ＯＳ＃１，＃２のファイルと、ＤＢＭＳ＃１，＃２のパッケージが格納される。固有リポジトリ２２０には、仮想マシン＃１〜＃４それぞれの固有パッケージ（ＴｅｓｔＰａｃｋ１〜４）が格納される。構成情報ＤＢ２３０には、仮想マシン＃１〜＃４それぞれの構成情報が格納される。
【００８２】
このように、仮想マシン＃１〜＃４のＶＭイメージを、ＯＳファイルと共通パッケージと固有パッケージとに分割して保存することで、仮想マシン＃１〜＃４のＶＭイメージをそのまま保存する場合と比べて、記憶領域を節約することができる。また、構成情報を参照して、仮想マシン＃１〜＃４のうちの任意の仮想マシンを、ＯＳファイルと共通パッケージと固有パッケージとを用いて復元することができる。
【００８３】
図１５は、仮想マシン管理のシーケンス例を示す図である。ここでは、仮想マシン１３０の構成情報を生成し、仮想マシン１３０を停止させた後に再起動する場合を考える。
（ステップＳ４１）端末装置４００は、仮想マシン１３０の構成情報の生成を管理装置３００に指示する。管理装置３００は、仮想マシン１３０が配置されているサーバ装置１００を検索し、仮想マシン１３０の構成情報の生成をサーバ装置１００に指示する。
【００８４】
（ステップＳ４２）サーバ装置１００は、構成情報を生成する仮想マシン１４０の動作に用いるファイル（例えば、ＶＭイメージ）を、ストレージ装置２００から取得する。
（ステップＳ４３）サーバ装置１００は、仮想マシン１４０を起動し、仮想マシン１３０の構成情報と固有パッケージを生成する。その際、サーバ装置１００は、ストレージ装置２００にアクセスし、ＶＭイメージテンプレートの生成に用いるファイルを取得する。
【００８５】
（ステップＳ４４）サーバ装置１００は、生成した仮想マシン１３０の構成情報と固有パッケージを、ストレージ装置２００に保存する。
（ステップＳ４５）端末装置４００は、仮想マシン１３０の停止を管理装置３００に指示する。管理装置３００は、仮想マシン１３０が配置されているサーバ装置１００を検索し、仮想マシン１３０の停止をサーバ装置１００に指示する。サーバ装置１００は、仮想マシン１３０のＯＳに対してシャットダウンを指示する。
【００８６】
（ステップＳ４６）端末装置４００は、管理装置３００を介してストレージ装置２００に格納されている構成情報の少なくとも一部を取得する。構成情報に基づいて、ユーザが起動する仮想マシンとして仮想マシン１３０を選択すると、端末装置４００は、仮想マシン１３０の起動を管理装置３００に指示する。管理装置３００は、例えば、負荷を考慮してサーバ装置１００を選択し、サーバ装置１００に仮想マシン１３０の起動を指示する。
【００８７】
（ステップＳ４７）サーバ装置１００は、仮想マシン１３０の構成情報をストレージ装置２００から取得する。また、サーバ装置１００は、構成情報が示すＯＳファイル、共通パッケージおよび固有パッケージを、ストレージ装置２００から取得する。
【００８８】
（ステップＳ４８）サーバ装置１００は、取得したＯＳファイル、共通パッケージおよび固有パッケージを仮想ディスクに展開して、仮想マシン１３０のＶＭイメージを復元する。そして、サーバ装置１００は、仮想マシン１３０のＯＳを起動する。
【００８９】
図１６は、仮想マシンの管理画面の例を示す図である。管理画面４１１は、例えば、端末装置４００が管理装置３００にアクセスしたときに、端末装置４００のディスプレイに表示される。管理画面４１１は、Ｗｅｂブラウザの画面であってもよい。管理画面４１１には、ユーザが作成した仮想マシンの一覧が表示される。仮想マシンの一覧は、例えば、管理装置３００がストレージ装置２００から構成情報を取得して生成する。
【００９０】
ユーザは、管理画面４１１上で、仮想マシン＃１〜＃４にインストールされているＯＳやパッケージアプリケーションなど、仮想マシン＃１〜＃４の設定状況の概要を確認することができる。また、ユーザは、管理画面４１１上で、仮想マシンを１つ選択し、当該仮想マシンの起動や消去を指示することができる。また、ユーザは、管理画面４１１上で、仮想マシンを１つ選択し、当該仮想マシンの詳細情報を表示させることもできる。
【００９１】
図１７は、仮想マシンの管理画面の例（続き）を示す図である。管理画面４１２は、例えば、管理画面４１１上で１つの仮想マシンが選択され、詳細情報の表示が指示されたときに、端末装置４００のディスプレイに表示される。管理画面４１２上には、ユーザにより選択された仮想マシンの構成情報が表示される。構成情報は、例えば、管理装置３００を介してストレージ装置２００から取得される。当該仮想マシンの構成情報が未生成である場合には、管理画面４１２の構成情報の欄は空欄となる。
【００９２】
ユーザは、管理画面４１２上で、構成情報の生成（再生成を含む）を管理装置３００に指示することができる。また、ユーザは、管理画面４１２上で、構成情報を編集することもできる。例えば、ホスト名やパッケージアプリケーションのバージョンを変更することが考えられる。ユーザが構成情報の編集操作を行った場合、端末装置４００が管理装置３００に編集内容を送信し、管理装置３００がストレージ装置２００に格納されている構成情報を更新する。ホスト名を変更した場合、当該仮想マシンを次に起動するとき、変更後のホスト名が当該仮想マシンに適用される。パッケージアプリケーションのバージョンを変更した場合、当該仮想マシンを次に起動するとき、変更後のバージョンのパッケージアプリケーションが当該仮想マシンにインストールされた状態で起動される。
【００９３】
第２の実施の形態の情報処理システムによれば、既存の仮想マシンのＶＭイメージから当該仮想マシンの構成情報を自動的に生成することができる。よって、複数の仮想マシンが作成された場合でも、自動的に生成された構成情報を参照して各仮想マシンの設定状況を把握することができ、複数の仮想マシンの管理が容易となる。例えば、構成情報を参照することで、起動する仮想マシンや消去する仮想マシンの選択が容易となる。
【００９４】
また、構成情報を参照して、ＯＳファイルと共通パッケージと固有パッケージとを組み合わせて、仮想マシンを起動することができる。よって、仮想マシン毎のＶＭイメージをそのまま保存しておかなくてもよく、記憶装置の容量を節約することができる。また、構成情報を編集して、ホスト名や利用するパッケージアプリケーションのバージョンなど、仮想マシンの設定を変更することができる。よって、アプリケーションのバージョンアップなどの保守作業の負担を軽減できる。
【００９５】
なお、前述のように、第２の実施の形態の仮想マシン管理方法は、コンピュータとしての機能を有するサーバ装置１００，１００ａに、仮想マシン管理プログラムを実行させることで実現できる。仮想マシン管理プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体２３）に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【００９６】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータ（例えば、ストレージ装置２００）の記憶装置に格納しておき、ネットワーク３０経由で当該プログラムを配布することもできる。サーバ装置１００，１００ａは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを記憶装置（例えば、ＨＤＤ１０３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク３０を介して受信したプログラムを直接実行してもよい。
【符号の説明】
【００９７】
１０  情報処理装置
１１  仮想マシン
１１ａ  ファイル
１２  記憶部
１２ａ  テンプレートファイル
１３  生成部
１３ａ  構成情報
【図１】
0005772127.tif 000002
【図２】
0005772127.tif 000003
【図３】
0005772127.tif 000004
【図４】
0005772127.tif 000005
【図５】
0005772127.tif 000006
【図６】
0005772127.tif 000007
【図７】
0005772127.tif 000008
【図８】
0005772127.tif 000009
【図９】
0005772127.tif 000010
【図１０】
0005772127.tif 000011
【図１１】
0005772127.tif 000012
【図１２】
0005772127.tif 000013
【図１３】
0005772127.tif 000014
【図１４】
0005772127.tif 000015
【図１５】
0005772127.tif 000016
【図１６】
0005772127.tif 000017
【図１７】
0005772127.tif 000018