(57)【要約】【課題】  大量の仮想マシンによって構成される大規模システムをネットワーク越しに配備する際、ネットワークの輻輳を抑制可能な配備装置などを提供する。【解決手段】  本発明の配備装置は、同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも各仮想マシンに共通するモジュールを含む共通構成を導出し、共通構成を表す共通構成情報を出力する構成決定手段と、共通構成情報に基づいて、少なくとも共通するモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成手段と、共通構成情報、および物理サーバ構成情報に基づいて、ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成手段と、ＶＭイメージ、物理サーバ構成情報、および配備情報を、サーバ装置に対して送信する配信制御部とを有する。【選択図】      図１
2016009341.tif 000002
【特許請求の範囲】
【請求項１】
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、前記共通構成を表す共通構成情報を出力する構成決定手段と、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成手段と、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成手段と、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信する配信制御部と
を備える配備装置。
【請求項２】
前記構成決定手段は、前記共通構成を導出する際に、前記各仮想マシンに含まれるすべてのソフトウェアモジュールを重複なく含む構成である最小の網羅構成を前記共通構成として導出する
請求項１記載の配備装置。
【請求項３】
前記構成決定手段は、前記共通構成を導出する際に、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
請求項１記載の配備装置。
【請求項４】
前記構成決定手段は、前記最小の網羅構成を前記共通構成として導出した際に、前記最小の網羅構成に対応するＶＭイメージに基づく前記仮想マシンの配備が不可能と判断した場合、前記最小の網羅構成の代わりに、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
請求項２記載の配備装置。
【請求項５】
請求項１乃至請求項４のいずれか１つに記載の配備装置から送信された前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製するＶＭイメージ複製手段と、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備するモジュール配備手段と
を備えるサーバ装置。
【請求項６】
前記モジュール配備手段は、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不要なモジュールを削除することにより前記ソフトウェアモジュールの配備を行う
請求項５記載のサーバ装置。
【請求項７】
前記モジュール配備手段は、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不足しているモジュールを追加配備することにより前記ソフトウェアモジュールの配備を行う
請求項５記載のサーバ装置。
【請求項８】
情報処理装置を用いて、
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、
前記共通構成を表す共通構成情報を生成し、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成し、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成し、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信し、
前記サーバ装置において、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、
前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製し、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備する
配備方法。
【請求項９】
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、前記共通構成を表す共通構成情報を出力する構成決定処理と、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成処理と、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成処理と、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信する配信制御処理と
を第１のコンピュータに実行させるコンピュータ・プログラム。
【請求項１０】
請求項９に記載の第１のコンピュータから送信された前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製するＶＭイメージ複製処理と、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備するモジュール配備処理と
を第２のコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの配備における効率化技術に関する。
【背景技術】
【０００２】
複数の仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）によって構成される大規模システムを、ネットワーク越しに配備する方法が知られている。そのような方法において、配備対象の仮想マシンが多数ある場合、それぞれの仮想マシンに係るＶＭイメージ、および配備するソフトウェアコンポーネントのインストールイメージなどが、大量にネットワークを流れる。その結果として、ネットワークの輻輳が発生しやすくなるので、すべてのＶＭの配備が完了するまでに時間が掛かるという問題がある。
【０００３】
こうした問題に対し、特許文献１には、ネットワーク環境において仮想マシンのリモート配備を管理する方法が開示されている。特許文献１に記載された方法においては、既存のコンテンツデリバリネットワーク（Ｃｏｎｔｅｎｔｓ  Ｄｅｌｉｖｅｒｙ  Ｎｅｔｗｏｒｋ、ＣＤＮ）のように、階層的にＶＭイメージを保持することにより、配信セグメントを限定する。すなわち、この方法は、必要のないセグメントへＶＭイメージを流さないことにより、ネットワーク負荷を下げることができる。
【０００４】
また、特許文献２には、既存の仮想計算機を元に、ユーザの要求に応じた新規の仮想計算機を提供する仮想計算機提供システムが開示されている。特許文献２に記載されたシステムにおいては、仮想計算機提供サービス管理サーバ装置が、既存の仮想計算機を複製することにより新規の仮想計算機を生成する。そして、仮想計算機提供サービス管理サーバ装置は、複製した仮想計算機の環境を様々な管理情報に基づいて初期化した後に、その環境を利用者に提供することにより、利用者のセットアップの手間を省くことができる。
【０００５】
また、特許文献３には、複数の仮想マシンのＯＳをデプロイ（展開）する方法が開示されている。特許文献３に記載された方法において、管理サーバまたは仮想マシンは、仮想マシンのイメージファイルの複製を他の仮想マシンに対して転送するという複製処理を、複数の仮想マシンにおいて順送りに行う。すなわち、この方法においては、複数の複製処理が、同時並列的に行われないように１つずつ順番に実行されることにより、複製処理が、ネットワークの輻輳を発生させることを防ぐことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１２３８９１号公報
【特許文献２】ＷＯ２０１３／０３５１３４号公報
【特許文献３】特開２０１１−２３８１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、多数の仮想マシンによって構成される大規模システムの配備および構築の際、特許文献１に開示された方法は、同一のセグメント内におけるＶＭイメージの転送によるネットワークの輻輳を防ぐことができない。すなわち、この方法によって、ネットワークに流れるＶＭイメージの総量を削減する効果を得るには、複雑に隔離されたセグメントを持つネットワークを構築する必要があるという問題がある。
【０００８】
また、特許文献２に開示されたシステムにおいても、複数の仮想マシンを含む大規模システムが配備対象である場合、大量のＶＭイメージがネットワークを流れることが避けられない。これは、特許文献２に開示されたシステムは、単一のＶＭ環境の提供を対象としているので、複数のＶＭ環境を提供する際における転送量の軽減には効果が十分ではないからである。
【０００９】
また、特許文献３に開示された方法においては、多数の仮想マシンの配備を完了するまでの時間が掛かるという問題がある。その理由は、ＶＭイメージの複製におけるネットワークを流れるデータの総量を削減することなく、単に複製処理が１つずつ順番に実行されるからである。
【００１０】
本発明の一つの目的は、大量の仮想マシンによって構成される大規模システムをネットワーク越しに配備する際、ネットワークの輻輳の発生を抑制することができる配備装置などを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成すべく、本発明の一態様に係る配備装置は、以下の構成を備えることを特徴とする。
【００１２】
すなわち、本発明の一態様に係る配備装置は、
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、前記共通構成を表す共通構成情報を出力する構成決定手段と、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成手段と、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成手段と、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信する配信制御部と
を備える。
【００１３】
また、上記の同目的を達成すべく、本発明の一態様に係る配備方法は、情報処理装置によって、
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、
前記共通構成を表す共通構成情報を生成し、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成し、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成し、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信し、
前記サーバ装置において、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、
前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製し、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備する。
【００１４】
また、同目的は、上記の各構成を有する配備装置、並びに対応する方法を、それぞれコンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１５】
本発明には、大量の仮想マシンによって構成される大規模システムの配備において、ＶＭイメージの大量転送に伴うネットワーク輻輳を抑制できるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態に係る配備システムの構成を示すブロック図である。
【図２】本発明の第２の実施形態に係る配備システムの構成を示すブロック図である。
【図３】第２の実施形態におけるシステム構成情報１１１の一例であるシステム構成情報３００を示す図である。
【図４】第２の実施形態において配備装置１００およびサーバ装置２００が行う動作の概略を示すフローチャートである。
【図５】第２の実施形態における物理サーバ構成情報、最小網羅構成および最大共通構成の概念を示す図である。
【図６】第２の実施形態に係るサーバ装置２００における最小網羅構成を用いた仮想マシンの構成手順を示す概念図である。
【図７】第２の実施形態に係るサーバ装置２００における最大共通構成を用いた仮想マシンの構成手順を示す概念図である。
【図８】第２の実施形態に係る構成決定部１０２が配信構成を決定する際の動作を示すフローチャートである。
【図９】第２の実施形態における配備スクリプト部品５００の一例を示す図である。
【図１０】第２の実施形態における構成決定部１０２が行う最小網羅構成情報を生成する際の動作を示すフローチャートである。
【図１１】第２の実施形態における構成決定部１０２が行う最大共通構成情報を生成する際の動作を示すフローチャートである。
【図１２】第２の実施形態におけるＶＭイメージ生成部１０３が行うＶＭイメージを生成する際の動作を示すフローチャートである。
【図１３】第２の実施形態におけるエージェント２１０が行う仮想マシンを配備する際の動作を示すフローチャートである。
【図１４】第３の実施形態におけるシステム構成情報３５０の一例を示す図である。
【図１５】第３の実施形態におけるエージェント２１０が行う仮想マシンを配備する際の動作を示すフローチャートである。
【図１６】本発明の各実施形態、および、その変形例に係る配備システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。
【発明を実施するための形態】
【００１７】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１８】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る配備システムの構成を示すブロック図である。図１を参照すると、本実施形態に係る配備システムは、配備装置１、およびサーバ装置１０を有する。サーバ装置１０は、複数の仮想マシンの配備先となる物理サーバ（ホスト）である。
【００１９】
配備装置１、およびサーバ装置１０は、それぞれインターネットや構内ＬＡＮ（ローカルエリアネットワーク）等の図示しない通信ネットワーク（以下、単にネットワークと言う）を介して通信可能である。
【００２０】
配備装置１、およびサーバ装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、配備装置１、およびサーバ装置１０の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この配備装置１、およびサーバ装置１０をコンピュータによって実現したハードウェア構成例については、図１６を参照して後述する。
【００２１】
配備装置１は、構成決定部２、仮想マシン（ＶＭ）イメージ生成部３、配備情報生成部４、および配信制御部５を含む。
【００２２】
構成決定部２は、サーバ装置１０に対する物理サーバ構成情報２０に基づいて、少なくとも各仮想マシンに共通するソフトウェアモジュール（以下、単に「モジュール」とも言う）を含む共通構成を導出することができる。物理サーバ構成情報２０は、同一のサーバ装置１０に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である。また、共通構成は、サーバ装置１０に対して配信するＶＭイメージの構成である。なお、共通構成には、すべての仮想マシンに共通ではなく、一部の仮想マシンに対して配備されるモジュールを含めてもよい。構成決定部２は、導出した共通構成を表す共通構成情報を、ＶＭイメージ生成部３および配備情報生成部４に対して出力する。
【００２３】
ＶＭイメージ生成部３は、構成決定部２から受けた共通構成情報に基づいて、少なくとも共通するモジュールを重複なく含むＶＭイメージを生成することができる。例えば、ＶＭイメージ生成部３は、共通構成情報に含まれるモジュールを１つずつ含むＶＭイメージを生成する。
【００２４】
配備情報生成部４は、構成決定部２から受けた共通構成情報、および物理サーバ構成情報２０に基づいて、ＶＭイメージ生成部３が生成するＶＭイメージを配備する際に必要となる情報を含む配備情報を生成することができる。すなわち、配備情報は、後述するモジュール配備部１２が、物理サーバ構成情報２０に記述される最終的な仮想マシン構成となるように、ＶＭイメージを設定する際に必要な情報を含む。配備情報の詳細は、モジュール配備部１２の説明において後述する。
【００２５】
配信制御部５は、ＶＭイメージ生成部３が生成したＶＭイメージ、構成決定部２に与えられた物理サーバ構成情報２０、および配備情報生成部４が生成した配備情報を、サーバ装置１０に対して送信することができる。
【００２６】
サーバ装置１０は、仮想マシン（ＶＭ）イメージ複製部１１、およびモジュール配備部１２を含む。
【００２７】
ＶＭイメージ複製部１１は、配信制御部５から送信されたＶＭイメージ、物理サーバ構成情報２０、および配備情報を受信し、受信したＶＭイメージを、物理サーバ構成情報２０に基づいて、サーバ装置１０に配備される仮想マシンの数に応じて複製することができる。すなわち、ＶＭイメージ複製部１１は、受信した物理サーバ構成情報２０に基づいて、必要な仮想マシンの数を求め、その数に合わせてＶＭイメージを複製する。
【００２８】
モジュール配備部１２は、ＶＭイメージ複製部１１によって複製された各ＶＭイメージに対して、物理サーバ構成情報２０に記述された構成となるように、配備情報を用いてモジュールを配備することができる。すなわち、モジュール配備部１２は、ＶＭイメージに対して、余分なモジュールの削除（配備の解除、アンインストール）、不足するモジュールの追加配備（インストール）、またはモジュールの設定などを必要に応じて行ってもよい。また、配備情報は、例えば、モジュールの配備の解除、追加配備、および設定などを行う方法、情報の所在、パラメータなどの各種情報を含むことができる。
【００２９】
なお、モジュール配備部１２は、不足するモジュールの配備に必要なソフトウェア部品（インストールファイル等）を、図示しないリポジトリなどの外部装置、または図示しない記憶装置などから取得してもよい。または、配備情報生成部４が、上記のソフトウェア部品を含めて、配備情報を生成してもよい。この場合、モジュール配備部１２は、受信した配備情報に含まれるソフトウェア部品を用いて、不足するモジュールの追加を行うことができる。
【００３０】
このように、本実施形態によれば、配備装置１は、複数の仮想マシンを配備するサーバ装置１０に対して、それらの仮想マシンに含まれるモジュールの重複を排除したＶＭイメージを送信することができる。そして、サーバ装置１０は、受信した１つのＶＭイメージに基づいて、それぞれ異なるモジュール構成を持つ、複数の仮想マシンを配備することができる。
【００３１】
以上説明したように、本実施形態に係る配備装置１は、サーバ装置１０に対する仮想マシンの配備に際して、ネットワークを流れるデータの総量を削減することができるという効果がある。そのため、配備装置１は、多数の仮想マシンによって構成される大規模システムをネットワーク越しに配備する場合に、ネットワークの輻輳の発生を抑制できるという効果がある。
【００３２】
その理由は、配備装置１において、構成決定部２が、サーバ装置１０に配備される各仮想マシンに共通するモジュールを含む共通構成を導出するからである。そして、ＶＭイメージ生成部３が、その共通構成に応じて、モジュールを重複なく含むＶＭイメージを生成するからである。すなわち、ＶＭイメージ生成部３は、共通構成に基づいて、ＶＭイメージの転送量を低減することができるからである。さらに、サーバ装置１０において、ＶＭイメージ複製部１１が、受信した１つのＶＭイメージを、最終的な仮想マシンの数に応じて複製することにより、複数の仮想マシンを構成するからである。
【００３３】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。以下では、第２の実施形態に係る特徴的な部分を中心に説明し、第１の実施形態と同様な構成を有する第２の実施形態の構成要素について重複する詳細な説明は省略する。
【００３４】
本実施形態は、多数のサーバ装置、および多種類の仮想マシンを含む大規模システムの構築において、本発明を適用した一例である。
【００３５】
まず、図２を参照して、以下に本実施形態の構成を説明する。図２は、本発明の第２の実施形態に係る配備システムの構成を示すブロック図である。
【００３６】
図２を参照すると、本実施形態に係る配備システムは、配備装置１００、構成部品リポジトリ１２０、および複数のサーバ装置２００を有する。
【００３７】
配備装置１００、構成部品リポジトリ１２０、および各サーバ装置２００は、それぞれインターネットや構内ＬＡＮ（ローカルエリアネットワーク）等の通信ネットワーク（以下、単にネットワークと言う）１０００を介して通信可能である。
【００３８】
配備装置１００、構成部品リポジトリ１２０、およびサーバ装置２００は、ＣＰＵ（図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、配備装置１００、構成部品リポジトリ１２０、およびサーバ装置２００の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この配備装置１００、構成部品リポジトリ１２０、およびサーバ装置２００をコンピュータによって実現したハードウェア構成例については、図１６を参照して後述する。
【００３９】
まず、以下に、配備装置１００の構成を説明する。
【００４０】
配備装置１００は、構成決定部１０２、仮想マシン（ＶＭ）イメージ生成部１０３、配備スクリプト生成部１０４、配信制御部１０５、および記憶装置１１０を含む。記憶装置１１０は、システム構成情報１１１、仮想マシン（ＶＭ）イメージテンプレートリポジトリ１１２、スクリプトリポジトリ１１３を記憶することができる。
【００４１】
システム構成情報１１１は、各サーバ装置２００に配備される仮想マシンの構成を表す情報を含む。システム構成情報１１１は、各サーバ装置２００に関して、第１の実施形態における物理サーバ構成情報２０に対応する情報を含む。本実施形態において、システム構成情報１１１は、構成決定部１０２に対する入力情報として、あらかじめ記憶装置１１０に格納されていることを前提とする。なお、システム構成情報１１１は、例えば、ネットワーク１０００を介して、図示しない外部装置から配備装置１００へ送信するなど、他の方法によって入力してもよい。システム構成情報１１１の詳細は、構成の説明の最後にて後述する。
【００４２】
ＶＭイメージテンプレートリポジトリ１１２は、後述するＶＭイメージ生成部１０３がＶＭイメージを生成する際の材料となるＶＭイメージテンプレートを格納することができる。ＶＭイメージテンプレートリポジトリ１１２は、あらかじめ記憶装置１１０に格納されていることを前提とする。
【００４３】
スクリプトリポジトリ１１３は、後述する配備スクリプト生成部１０４が、配備スクリプトを生成する際の材料となる配備スクリプト部品５００を格納することができる。配備スクリプトは、第１の実施形態における配備情報に対応する。スクリプトリポジトリ１１３は、あらかじめ記憶装置１１０に格納されていることを前提とする。配備スクリプト部品５００の詳細は、構成の説明の最後にて後述する。
【００４４】
構成決定部１０２は、第１の実施形態における構成決定部２を基本とする。本実施形態における構成決定部１０２は、システム構成情報１１１から、それぞれのサーバ装置２００に対する物理サーバ構成情報２０を取得する。構成決定部１０２は、取得した各物理サーバ構成情報２０に基づいて、各サーバ装置２００に対して配信するＶＭイメージの構成（配信構成）を決定する。
【００４５】
また、本実施形態に係る構成決定部１０２は、配信構成を決定する際に、物理サーバ構成情報２０に基づいて、仮想マシンに配備されるモジュールにおける「最大の共通構成」、または、「最小の網羅構成」のいずれかを導出する。「最大の共通構成（Ｇｒｅａｔｅｓｔ  Ｃｏｍｍｏｎ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ、ＧＣＣ構成）」とは、各仮想マシンに共通して含まれるモジュールを重複なく（各モジュールを１つずつ）含む構成である。また、「最小の網羅構成（Ｌｅａｓｔ  Ｃｏｍｐｒｅｈｅｎｓｉｖｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ、ＬＣＣ構成）」とは、各仮想マシンに含まれるすべてのモジュールを重複なく含む構成である。この「最大の共通構成」、および、「最小の網羅構成」は、第１の実施形態における「共通構成」に対応する。
【００４６】
構成決定部１０２は、各サーバ装置２００ごとに導出したＧＣＣ構成、またはＬＣＣ構成を表す共通構成情報を、ＶＭイメージ生成部１０３、および配備スクリプト生成部１０４に対して出力する。すなわち、構成決定部１０２は、各サーバ装置２００に対して配信するＶＭイメージとして、ＧＣＣ構成またはＬＣＣ構成のいずれか１つに基づくＶＭイメージを選択する。
【００４７】
ＶＭイメージ生成部１０３は、第１の実施形態におけるＶＭイメージ生成部３を基本とする。ＶＭイメージ生成部１０３は、構成決定部１０２から受けた各サーバ装置２００ごとの共通構成情報に基づいて、各サーバ装置２００に対するＶＭイメージを生成する。ＶＭイメージ生成部１０３は、必要に応じて、ＶＭイメージテンプレートリポジトリ１１２、後述する構成部品リポジトリ１２０、およびスクリプトリポジトリ１１３から、ＶＭイメージの生成に際して、必要な材料等を取得することができる。
【００４８】
配備スクリプト生成部１０４は、第１の実施形態における配備情報生成部４を基本とする。配備スクリプト生成部１０４は、構成決定部１０２から受けた各サーバ装置２００ごとの共通構成情報、および物理サーバ構成情報２０に基づいて、各サーバ装置２００ごとの配備スクリプトを生成する。配備スクリプトは、ＶＭイメージ生成部１０３によって生成された各サーバ装置２００ごとのＶＭイメージを、最終的な仮想マシン構成となるように配備する際に必要な情報を含む。配備スクリプト生成部１０４は、システム構成情報１１１（各サーバ装置２００に対する物理サーバ構成情報２０）と、共通構成情報スクリプトリポジトリ１１３から取得した配備スクリプト部品５００を用いて、配備スクリプトを生成する。
【００４９】
配信制御部１０５は、第１の実施形態における配信制御部５を基本とする。配信制御部１０５は、ＶＭイメージ生成部１０３が生成したＶＭイメージ、配備スクリプト生成部１０４が生成した配備スクリプト、およびシステム構成情報１１１を、サーバ装置２００ごとに送信することができる。
【００５０】
記憶装置１１０は、例えば、半導体メモリ装置やディスク装置により実現される。
【００５１】
以上が、配備装置１００の構成の説明である。次に、以下に、構成部品リポジトリ１２０の構成を説明する。
【００５２】
構成部品リポジトリ１２０は、配備スクリプト、または配備スクリプト部品５００の実行によって発行される要求に応じて、モジュールの配備に必要なソフトウェア部品１２１を要求元に返すことができる。ソフトウェア部品１２１は、モジュールをＶＭイメージに追加配備する際に必要なインストールファイルである。
【００５３】
以下に、サーバ装置２００の構成を説明する。
【００５４】
サーバ装置２００は、仮想マシンモニタ（ＶＭ  Ｍｏｎｉｔｏｒ、ＶＭＭ）２０１、およびエージェント２１０を含む。
【００５５】
ＶＭＭ２０１は、エージェント２１０によって配備されたＶＭイメージを、仮想マシンとして動作させることができる。
【００５６】
エージェント２１０は、仮想マシン（ＶＭ）イメージ複製部２１１、およびモジュール配備部２１２を含む。
【００５７】
ＶＭイメージ複製部２１１は、第１の実施形態におけるＶＭイメージ複製部１１を基本とする。ＶＭイメージ複製部２１１は、配信制御部１０５から送信されたＶＭイメージ、システム構成情報１１１、および配備スクリプトを受信する。そして、ＶＭイメージ複製部２１１は、システム構成情報１１１に含まれる自機に対する物理サーバ構成情報２０に基づいて、必要な仮想マシンの数を求め、その数に合わせてＶＭイメージを複製する。
【００５８】
モジュール配備部２１２は、第１の実施形態におけるモジュール配備部１２を基本とする。モジュール配備部２１２は、システム構成情報１１１における自機に対する物理サーバ構成情報２０に記述された仮想マシンの構成となるように、配備スクリプトを用いて、複製された各ＶＭイメージに対してモジュールを配備（配備の解除、または追加配備）することができる。すなわち、モジュール配備部２１２は、複製された各ＶＭイメージごとに、不要（余分）なモジュールを配備解除（削除）することができる。または、モジュール配備部２１２は、複製された各ＶＭイメージごとに、必要な（不足している）モジュールを追加配備することができる。
本実施形態では、モジュール配備部２１２は、配備スクリプトの実行によって、モジュールの追加配備に必要なソフトウェア部品１２１を構成部品リポジトリ１２０から取得することができる。
【００５９】
以上が、サーバ装置２００の構成の説明である。
【００６０】
構成の説明の最後として、システム構成情報３００、および配備スクリプト部品５００の詳細を説明する。まず、システム構成情報３００の詳細を説明する。図３は、第２の実施形態におけるシステム構成情報１１１の一例であるシステム構成情報３００を示す図である。
【００６１】
図３を参照すると、システム構成情報３００は、１つのリポジトリ指定部３０１と、１つ以上の物理サーバ構成情報３０２および３０６とを含む。
【００６２】
リポジトリ指定部３０１は、構成部品リポジトリ１２０、ＶＭイメージテンプレートリポジトリ１１２、およびスクリプトリポジトリ１１３という各リポジトリの場所を指定する情報を含む。
【００６３】
物理サーバ構成情報３０２および３０６のそれぞれは、第１の実施形態における物理サーバ構成情報２０に対応する。すなわち、システム構成情報３００は、少なくとも２つのサーバ装置２００に対する物理サーバ構成情報２０を含む。以下に、物理サーバ構成情報３０２を例として、物理サーバ構成情報の構成を詳細に説明する。
【００６４】
物理サーバ構成情報３０２は、１つの物理サーバ名情報３０３と、１つ以上の仮想マシン構成情報３０４および３０５とを含む。
【００６５】
物理サーバ名情報３０３は、配備先のサーバ装置２００を特定するホスト名情報を含む。図３において、物理サーバ名３０３は、「ｈｓ１３２．ｅｘａｍｐｌｅ．ｃｏｍ」というホスト名情報を含む。
【００６６】
仮想マシン構成情報３０４は、物理サーバ名情報３０３によって特定されるサーバ装置２００において配備される仮想マシンの構成情報を含む。仮想マシン構成情報３０４は、「ｈ１３２−１」という仮想マシンの識別子と、用いるＶＭイメージテンプレートを表す「ｔｅｍｐ−１０３２」という名称と、配備するモジュールとして少なくとも「ｍｏｄ＿Ａ」および「ｍｏｄ＿Ｂ」という構成部品名が含まれる。
【００６７】
同様に、仮想マシン構成情報３０５は、「ｈ１３２−２」という識別子の仮想マシンの構成情報が定義されている。すなわち、「ｈ１３２−２」という仮想マシンには、「ｈ１３２−１」と同じ「ｔｅｍｐ−１０３２」というＶＭイメージテンプレートが用いられる。また、この仮想マシンには、少なくとも「ｍｏｄ＿Ａ」という構成部品名のモジュールが配備される。
【００６８】
物理サーバ構成情報３０６の構成は、上記の物理サーバ構成情報３０２の構成と、基本的に同様である。以上が、システム構成情報３００の構成の説明である。
【００６９】
次に、図９を参照して、スクリプトリポジトリ１１３に格納される配備スクリプト部品５００の詳細を説明する。図９は、第２の実施形態における配備スクリプト部品５００の一例を示す図である。
【００７０】
配備スクリプト部品５００は、例えば、仮想マシンに配備されるモジュールごとに用意してもよい。図９に例示する配備スクリプト部品５００における対象モジュールは、「ｍｏｄ＿Ａ」という構成部品名のモジュールである。配備スクリプト部品５００は、インストール部５０１、アンインストール部５０２、および設定部５０３を含む。
【００７１】
インストール部５０１は、対象モジュールを、仮想マシンに対してインストールすることができるスクリプトの情報を含む。また、インストール部５０１は、同じマシンにインストールできないモジュールを表す競合情報などを含んでもよい。
【００７２】
アンインストール部５０２は、仮想マシンにインストールされている対象モジュールを、仮想マシンからアンインストールすることができるスクリプトの情報を含む。なお、きれいにアンインストールすることが難しいモジュールの場合、配備スクリプト部品５００は、アンインストール部５０２を含まなくてもよい。
【００７３】
設定部５０３は、対象モジュールを実行環境に合わせて設定することができるスクリプトの情報を含む。設定部５０３は、例えば、対処モジュールに対して、ＶＭイメージの配信先である各サーバ装置２００に合わせたパラメータの設定を可能とするスクリプトであってもよい。特に設定を行う必要がない場合、配備スクリプト部品５００は、設定部５０３を含まなくてもよい。
【００７４】
配備スクリプト部品５００の各部が含むスクリプトの一例として、Ｐｕｐｐｅｔ（Introduction  to  Puppet、［online］、Puppet  Labs、［平成２６年６月６日検索］、インターネット<URL：http://docs.puppetlabs.com/guides/introduction.html>）がある。また、上記のスクリプトの一例として、他に、Ｃｈｅｆ（An  Overview  of  Chef、［online］、Chef  Software,  Inc、［平成２６年６月６日検索］、インターネット<URL:http://docs.opscode.com/chef_overview.html>）がある。
【００７５】
また、インストール部５０１、およびアンインストール部５０２に含まれるスクリプトは、対象モジュールのインストール、およびアンインストール処理を行うことができる仕組みを利用してもよい。
【００７６】
上記の仕組みの一例として、Ｌｉｎｕｘ（登録商標）系のＯＳの場合、ａｐｔ（Gustavo  Noronha  Silva、APT  HOWTO  （Obsolete  Documentation）、［online］、Debian  Project、［平成２６年６月６日検索］、インターネット<URL:http://www.debian.org/doc/manuals/apt-howto/index.ja.html>）が使用可能である。また、上記の仕組みの一例として、Ｌｉｎｕｘ系のＯＳの場合、他に、ｙｕｍ（Hradilek  Jaromir、外１４名、Red  Hat  Enterprise  Linux  6導入ガイド  Red  Hat  Enterprise  Linux  6  の導入、設定、管理  エディッション  4、第6章  Yum、［online］、平成２５年１０月３１日、Red  Hat,  Inc.、［平成２６年６月６日検索］、インターネット<URL：https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-yum.html>）がある。また、上記の仕組みの一例として、Ｌｉｎｕｘ系のＯＳの場合、他に、ＲＰＭ  Ｐａｃｋａｇｅ  Ｍａｎａｇｅｒ（RPM  4.11.2  Release  Notes、［online］、Open  Source  Lab、［平成２６年６月６日検索］、インターネット<URL：http://www.rpm.org/wiki/Releases/4.11.2>）がある。
【００７７】
また、上記の仕組みの一例として、Ｗｉｎｄｏｗｓ（登録商標）系のＯＳの場合、ＩｎｓｔａｌｌＳｈｉｅｌｄ（InstallShield、Overview、［online］、平成２６年、Flexera  Software  LLC.、［平成２６年６月６日検索］、インターネット<URL：http://www.flexerasoftware.com/products/software-installation/installshield-software-installer/）がある。
【００７８】
以上が、配備スクリプト部品５００の説明である。また、以上が、本実施形態の構成の説明である。
【００７９】
次に、上述した構成を備える本実施形態の動作について、具体例を用いて説明する。まず、図４〜図７を参照して、配備装置１００における配信構成の決定から、サーバ装置２００において最終的に仮想マシンを配備するまでの動作概略を説明する。図４は、第２の実施形態において配備装置１００およびサーバ装置２００が行う動作の概略を示すフローチャートである。
【００８０】
図４を参照すると、まず、配備装置１００における構成決定部１０２が、システム構成情報１１１から、サーバ装置２００ごとの仮想マシン構成情報を取得する（ステップＳ１０）。具体的には、構成決定部１０２は、まず、複数のサーバ装置２００に対する構成情報を含むシステム構成情報１１１を記憶装置１１０から取得する。そして、構成決定部１０２は、システム構成情報１１１から、サーバ装置２００ごとに物理サーバ構成情報２０（図３の物理サーバ構成情報３０２および３０６に相当する情報）をそれぞれ分けて取り出す。
【００８１】
ここでは、具体例として、構成決定部１０２は、図５に示すサーバ装置２００の物理サーバ構成情報４００を取得したこととする。図５は、第２の実施形態における物理サーバ構成情報、最小網羅構成および最大共通構成の概念を示す図である。図５に示す物理サーバ構成情報４００は、図３に示すシステム構成情報１１１（３００）に含まれる物理サーバ構成情報３０２または３０６などの１つを、模式化した図である。この具体例における物理サーバ構成情報４００は、あるサーバ装置２００に対して、ＶＭ＿Ａ、ＶＭ＿Ｂ、およびＶＭ＿Ｃという仮想マシンを構築するという３つの仮想マシン構成情報４０１〜４０３を含む。
【００８２】
なお、これら仮想マシン構成情報４０１〜４０３は、同じＶＭイメージテンプレートが指定されていることを前提とする。また、ＶＭ＿Ａの仮想マシン構成情報４０１は、ＶＭ＿Ａに、モジュールＡ、Ｂ、およびＣの３つのソフトウェアモジュールを配備するという情報を含む。同じく、ＶＭ＿Ｂの仮想マシン構成情報４０２は、ＶＭ＿Ｂに、モジュールＡ、Ｂ、およびＤの３つのソフトウェアモジュールを配備するという情報を含む。さらに、ＶＭ＿Ｃの仮想マシン構成情報４０３は、ＶＭ＿Ｃに、モジュールＡ、およびＢの２つのソフトウェアモジュールを配備するという情報を含む。
【００８３】
これ以降の概略の説明は、１つの物理サーバ構成情報４００（図５）に基づいて、配備対象であるサーバ装置２００に仮想マシンを配備する場合における手順（動作）の説明である。すなわち、以下で説明する動作は、システム構成情報１１１に含まれる各物理サーバ構成情報４００ごとにそれぞれ実行される。
【００８４】
次に、構成決定部１０２は、配信構成を決定する（ステップＳ１１）。具体的には、構成決定部１０２は、最小の網羅構成（ＬＣＣ）４０４として、各仮想マシン構成情報４０１〜４０３が含むすべてのモジュールＡ、Ｂ、Ｃ、およびＤを１つずつ含む配信構成を決定する。すなわち、ＬＣＣ４０４は、配備対象であるサーバ装置２００の仮想マシンに配備されるすべてのモジュールを網羅する最小の構成である。
【００８５】
または、構成決定部１０２は、ＬＣＣに対応するＶＭイメージに基づく仮想マシンの配備が不可能と判断した場合に、ＬＣＣの代わりに、最大の共通構成（ＧＣＣ）４０５を決定してもよい。ＧＣＣ４０５は、すべての仮想マシン構成情報４０１〜４０３に共通して含まれるモジュールＡおよびＢを１つずつ含む。すなわち、ＧＣＣ４０５は、配備対象であるサーバ装置２００の仮想マシンすべてに共通するモジュールをできるだけ多く取り込んだ（最大の）構成である。構成決定部１０２が、ＬＣＣ４０４およびＧＣＣ４０５を配信構成として決定する手順の詳細については、動作の概略の説明後に説明する。
【００８６】
構成決定部１０２は、ＬＣＣ４０４またはＧＣＣ４０５のどちらかに決定した配信構成を表す共通構成情報を、ＶＭイメージ生成部１０３、および配備スクリプト生成部１０４に出力する。
【００８７】
ステップＳ１２以降の動作の概略は、配信構成ごとに説明する。
【００８８】
まず、ＬＣＣ４０４が配信構成として決定された場合における、ステップＳ１２以降の動作の概略を、図４および図６を参照して説明する。図６は、第２の実施形態に係るサーバ装置２００における最小網羅構成を用いた仮想マシンの構成手順を示す概念図である。
【００８９】
ステップＳ１２において、ＶＭイメージ生成部１０３は、構成決定部１０２から受けた共通構成情報に基づいて、ＬＣＣ４０４に対応するＶＭイメージ（図６のＶＭ＿ＬＣＣ４１４）を生成し、生成したＶＭイメージを配信制御部１０５に対して出力する（ステップＳ１２）。
【００９０】
一方、配備スクリプト生成部１０４は、ＬＣＣ４０４に対応する配備スクリプトを生成し、生成した配備スクリプトを配信制御部１０５に対して出力する（ステップＳ１３）。すなわち、配備スクリプト生成部１０４は、少なくとも、ＶＭ＿ＬＣＣ４１４から配備を解除する必要があるモジュールに対応する配備スクリプト部品５００を含む配備スクリプトを生成する。なお、この具体例では、配備スクリプト生成部１０４は、ＬＣＣ４０４に含まれるすべてのモジュールＡ〜Ｄに対する配備スクリプトを生成する。
【００９１】
配信制御部１０５は、ＶＭイメージ（ＶＭ＿ＬＣＣ４１４）、ＬＣＣ４０４に対応する配備スクリプト、およびシステム構成情報１１１を、対象のサーバ装置２００に対して送信する（ステップＳ１４）。以上で配備装置１００の動作は終了である。
【００９２】
サーバ装置２００においては、エージェント２１０のＶＭイメージ複製部２１１が、ＶＭ＿ＬＣＣ４１４、配備スクリプト、およびシステム構成情報１１１を受信する（ステップＳ２０）。エージェント２１０は、システム構成情報１１１に含まれる自機に対する物理サーバ構成情報４００を読み出し、その物理サーバ構成情報４００に基づいて、以下の処理を行う。
【００９３】
次に、エージェント２１０は、自機に対する物理サーバ構成情報４００に示される仮想マシン構成となるように、サーバ装置２００において仮想マシンを配備する（ステップＳ２１）。
【００９４】
具体的には、まず、ＶＭイメージ複製部２１１は、物理サーバ構成情報４００に含まれる仮想マシンの数に応じて、ＶＭ＿ＬＣＣ４１４を複製する。この具体例では、ＶＭイメージ複製部２１１は、図６に示すように、ＶＭ＿Ａ４１１、ＶＭ＿Ｂ４１２、およびＶＭ＿Ｃ４１３の３つのＶＭイメージとして複製する。次に、エージェント２１０のモジュール配備部２１２が、物理サーバ構成情報４００に合致するように、複製した各ＶＭイメージから、不要なモジュールの配備を解除する。この具体例では、モジュール配備部２１２は、ＶＭ＿Ａ４１１から、モジュールＤの配備を解除する。また、モジュール配備部２１２は、ＶＭ＿Ｂ４１２から、モジュールＣの配備を解除する。さらに、モジュール配備部２１２は、ＶＭ＿Ｃ４１３から、モジュールＣおよびＤの配備を解除する。なお、配備を解除する方法は、受信した配備スクリプトに記述されていることを前提とする。
【００９５】
このような手順の結果として、所望の仮想マシン構成が、サーバ装置２００において構築される。
【００９６】
次に、ＧＣＣ４０５が配信構成として決定された場合における、ステップＳ１２以降の動作の概略を、図４および図７を参照して説明する。図７は、第２の実施形態に係るサーバ装置２００における最大共通構成を用いた仮想マシンの構成手順を示す概念図である。
【００９７】
ステップＳ１２において、ＶＭイメージ生成部１０３は、構成決定部１０２から受けた共通構成情報に基づいて、ＧＣＣ４０５に対応するＶＭイメージ（図７のＶＭ＿ＧＣＣ４２５）を生成し、生成したＶＭイメージを配信制御部１０５に対して出力する（ステップＳ１２）。
【００９８】
一方、配備スクリプト生成部１０４は、ＧＣＣ４０５に対応する配備スクリプトを生成し、生成した配備スクリプトを配信制御部１０５に対して出力する（ステップＳ１３）。すなわち、配備スクリプト生成部１０４は、少なくとも、ＶＭ＿ＧＣＣ４２５に追加配備する必要があるモジュールに対応する配備スクリプトを生成する。なお、この具体例では、配備スクリプト生成部１０４は、物理サーバ構成情報４００に含まれるすべてのモジュールＡ〜Ｄに対する配備スクリプトを生成する。
【００９９】
配信制御部１０５は、ＶＭイメージ（ＶＭ＿ＧＣＣ４２５）、ＧＣＣ４０５に対応する配備スクリプト、およびシステム構成情報１１１を、対象のサーバ装置２００に対して送信する（ステップＳ１４）。以上で配備装置１００の動作は終了である。
【０１００】
サーバ装置２００においては、エージェント２１０のＶＭイメージ複製部２１１が、ＶＭ＿ＧＣＣ４２５、配備スクリプト、およびシステム構成情報１１１を受信する（ステップＳ２０）。エージェント２１０は、システム構成情報１１１に含まれる自機に対する物理サーバ構成情報４００を読み出し、その物理サーバ構成情報４００に基づいて、以下の処理を行う。
【０１０１】
次に、エージェント２１０は、自機に対する物理サーバ構成情報４００に示される仮想マシン構成となるように、サーバ装置２００において仮想マシンを配備する（ステップＳ２１）。
【０１０２】
具体的には、まず、ＶＭイメージ複製部２１１が、物理サーバ構成情報４００に含まれる仮想マシンの数に応じて、ＶＭ＿ＧＣＣ４２５を複製する。この具体例では、ＶＭイメージ複製部２１１は、図７に示すように、ＶＭ＿Ａ４２１、ＶＭ＿Ｂ４２２、およびＶＭ＿Ｃ４２３の３つのＶＭイメージとして複製する。次に、エージェント２１０のモジュール配備部２１２が、物理サーバ構成情報４００に合致するように、複製した各ＶＭイメージに、不足しているモジュールを追加配備する。この具体例では、モジュール配備部２１２は、ＶＭ＿Ａ４２１に対して、モジュールＣを追加する。また、モジュール配備部２１２は、ＶＭ＿Ｂ４２２に対して、モジュールＤを追加する。なお、モジュール配備部２１２は、ＶＭ＿Ｃ４１３に対しては、何のモジュールも追加しない。なお、追加する方法は、受信した配備スクリプトに記述されていることを前提とする。また、モジュール配備部２１２は、本実施形態においては、追加するモジュールのソフトウェア部品１２１（インストールファイルなど）を、構成部品リポジトリ１２０から取得することができる。
【０１０３】
このような手順の結果として、所望の仮想マシン構成が、サーバ装置２００において構築される。
【０１０４】
以上が、配備装置１００およびサーバ装置２００が行う動作の概略である。なお、ステップＳ１２とステップＳ１３との実行順番は、上記に限られない。すなわち、ステップＳ１３が、ステップＳ１２より先に、または同時並行的に実行されてもよい。
【０１０５】
次に、図８、および図１０〜１３を参照して、上述した概略の説明における各部の詳細な動作を説明する。以下においても、動作概略の説明と同様の具体例を用いて説明する。
【０１０６】
まず、図８を参照して、図４のステップＳ１０およびＳ１１における、構成決定部１０２の動作Ｐ１０００を詳細に説明する。図８は、第２の実施形態に係る構成決定部１０２が配信構成を決定する際の動作を示すフローチャートである。
【０１０７】
構成決定部１０２は、まず、配備先であるサーバ装置２００のシステム構成情報１１１から、配備対象である全仮想マシンの構成情報を読み取り、読み取った仮想サーバの構成情報を、配備先である物理サーバ（サーバ装置２００）ごとにグルーピングする（ステップＳ１００１）。次に、構成決定部１０２は、１つのサーバ装置２００に配備される仮想マシン群の構成情報を、同じＶＭイメージテンプレートが指定されている仮想マシンごとにグルーピングする（ステップＳ１００２）。
【０１０８】
本具体例においては、ステップＳ１００１および１００２において、グルーピングした結果の１つのグループ（同じサーバ装置２００かつ同じＶＭイメージテンプレートである仮想マシンのグループ）が、物理サーバ構成情報４００（図５）に含まれる仮想マシン群に相当する。
【０１０９】
ステップＳ１００３からステップＳ１００８までの構成決定部１０２の動作は、１台のサーバ装置２００の物理サーバ構成情報４００（図５）に対する構成決定部１０２の動作である。
【０１１０】
次に、構成決定部１０２は、グルーピングした同じサーバ装置２００かつ同じＶＭイメージテンプレートである仮想マシン群に対して、最小の網羅構成（ＬＣＣ）４０４（図５）を生成する（ステップＳ１００３）。ＬＣＣ４０４は、配信構成を表すモジュールのリストの他に、この処理の対象とした仮想マシン群のＶＭイメージテンプレートを表す情報などを含むことができる。ＬＣＣ４０４を生成する際の動作Ｐ１１００の詳細は、後述する。
【０１１１】
次に、構成決定部１０２は、ＬＣＣ４０４に含まれる全てのソフトウェアモジュールに対する配備スクリプト部品５００を取得する（ステップＳ１００４）。本実施形態では、構成決定部１０２は、ＬＣＣ４０４に含まれる全てのソフトウェアモジュールに対する配備スクリプト部品５００を、スクリプトリポジトリ１１３から取得することができる。
【０１１２】
次に、構成決定部１０２は、取得した各配備スクリプト部品５００に基づいて、ＬＣＣ４０４に含まれるモジュール間に、同じマシンにインストールできないなどの構成競合があるかどうかを調べる（ステップＳ１００５）。構成競合がある場合（ステップＳ１００５のＹ）、構成決定部１０２は、後述するステップＳ１００７の動作を実行する。
【０１１３】
構成競合がない場合（ステップＳ１００５のＮ）、構成決定部１０２は、取得した全ての配備スクリプト部品５００に、配備の解除手順（アンインストール部）が存在するかどうかを調べる（ステップＳ１００６）。
【０１１４】
全ての配備スクリプト部品５００にアンインストール部がある場合（ステップＳ１００６のＹ）、構成決定部１０２は、配信構成として、ＬＣＣ４０４の採用を決定する。
【０１１５】
一方、構成競合がある場合（ステップＳ１００５のＹ）、およびアンインストール部がない配備スクリプト部品５００が１つでもある場合（ステップＳ１００６のＮ）、構成決定部１０２は、ＬＣＣ４０４に対応するＶＭイメージに基づく仮想マシンの配備は不可能と判断する。そして、構成決定部１０２は、ステップＳ１００２においてグルーピングした、同じサーバ装置２００かつ同じＶＭイメージテンプレートである仮想マシン群に対して、最大の共通構成（ＧＣＣ）４０５（図５）を生成する（ステップＳ１００７）。ＧＣＣ４０５を生成する際の動作Ｐ１２００の詳細は、後述する。ＧＣＣ４０５は、配信構成を表すモジュールのリストの他に、対象となる仮想マシン群のＶＭイメージテンプレートを表す情報などを含むことができる。構成決定部１０２は、配信構成として、ＧＣＣ４０５の採用を決定する。
【０１１６】
次に、構成決定部１０２は、決定した配信構成（ＬＣＣ４０４またはＧＣＣ４０５）を表す共通構成情報を、ＶＭイメージ生成部１０３、および配備スクリプト生成部１０４に出力することにより、ＶＭイメージ、および配備スクリプトの生成を指示する（ステップＳ１００８）。
【０１１７】
構成決定部１０２は、ステップＳ１００３において対象としたサーバ装置２００に配備される、他のＶＭイメージテンプレートが指定された仮想マシン群に対しても、ステップＳ１００３からＳ１００８までの処理を繰り返す（ステップＳ１００９）。
【０１１８】
ステップＳ１００３からステップＳ１００９の処理が終了した後、構成決定部１０２は、さらにシステム構成情報１１１に含まれる、残りのサーバ装置２００に関しても、ステップＳ１００２からステップＳ１００９の処理を繰り返す（ステップＳ１０１０）。
【０１１９】
なお、ステップＳ１００４において、構成決定部１０２は、配備スクリプト部品５００を、全てのソフトウェアモジュールに対して取得できなくてもよい。すなわち、構成決定部１０２は、少なくともＶＭ＿ＬＣＣ４１４から配備を解除する必要があるモジュール、または、構成競合があるモジュールに対する配備スクリプト部品５００を取得できればよい。
【０１２０】
同様に、ステップＳ１００６において、構成決定部１０２は、アンインストール部の存在を調べる際に、少なくともＶＭ＿ＬＣＣ４１４から配備を解除する必要があるモジュールに対する配備スクリプト部品５００を対象とすればよい。すなわち、具体例の場合、構成決定部１０２は、モジュールＡおよびＢに関しては、アンインストール部が存在する配備スクリプト部品５００がなくても、ＬＣＣ４０４を配信構成として決定してもよい。
【０１２１】
また、ステップＳ１００８において、構成決定部１０２は、共通構成情報の代わりに、取得した配備スクリプト部品５００を配備スクリプト生成部１０４に出力してもよい。その場合、配備スクリプト生成部１０４は、構成決定部１０２から受けた配備スクリプト部品５００から、配備スクリプトを生成することができる。
【０１２２】
以上が、図４のステップＳ１０およびＳ１１における、構成決定部１０２の動作Ｐ１０００の詳細である。
【０１２３】
次に、図１０を参照して、ＬＣＣ４０４を生成する際（図８のステップＳ１００３）における、構成決定部１０２の動作Ｐ１１００を詳細に説明する。図１０は、第２の実施形態における構成決定部１０２が行う最小網羅構成情報を生成する際の動作を示すフローチャートである。以下の動作の対象となる仮想マシン構成情報４０１〜４０３（図５）は、ステップＳ１００３において対象とした物理サーバ構成情報４００に含まれる仮想マシン構成情報である。
【０１２４】
まず、構成決定部１０２は、この動作Ｐ１１００の結果を格納する戻り値とするＬＣＣ４０４を格納する記憶領域（図示しない）を空のリストとして初期化する（ステップＳ１１０１）。
【０１２５】
次に、構成決定部１０２は、仮想マシン構成情報４０１〜４０３（図５）のそれぞれに対して、以下の動作を行う。
【０１２６】
まず、構成決定部１０２は、仮想マシン構成情報４０１〜４０３から選んだ１つに対して、その仮想マシンに配備されるモジュールを列挙する（ステップＳ１１０２）。
【０１２７】
次に、構成決定部１０２は、列挙したモジュールのうち、ＬＣＣ４０４にまだ含まれていないモジュールを、ＬＣＣ４０４に対して追加する（ステップＳ１１０３）。
【０１２８】
構成決定部１０２は、残りの仮想マシン構成情報に対して、ステップＳ１１０２およびＳ１１０３の処理を繰り返す（ステップＳ１１０４）。構成決定部１０２は、このようにして、ＬＣＣ４０４を生成することができる。
【０１２９】
次に、図１１を参照して、ＧＣＣ４０５を生成する際（図８のステップＳ１００７）における、構成決定部１０２の動作Ｐ１２００を詳細に説明する。図１１は、第２の実施形態における構成決定部１０２が行う最大共通構成情報を生成する際の動作を示すフローチャートである。以下の動作の対象となる仮想マシン構成情報４０１〜４０３（図５）は、ステップＳ１００７において対象とした物理サーバ構成情報４００に含まれる仮想マシン構成情報である。
【０１３０】
まず、構成決定部１０２は、この動作Ｐ１２００の結果を格納する戻り値とするＧＣＣ４０５を格納する記憶領域（図示しない）を、仮想マシン構成情報４０１〜４０３のいずれか１つに含まれるモジュールのリストによって初期化する（ステップＳ１２０１）。
【０１３１】
次に、構成決定部１０２は、仮想マシン構成情報４０１〜４０３のそれぞれに対して、以下の動作を行う。
【０１３２】
まず、構成決定部１０２は、仮想マシン構成情報４０１〜４０３から選んだ１つに対して、その仮想マシンに配備されるモジュールを列挙する（ステップＳ１２０２）。
【０１３３】
次に、構成決定部１０２は、ＧＣＣ４０５のうち、ステップＳ１２０２において列挙されたモジュールに含まれていないモジュールを、ＧＣＣ４０５から削除する（ステップＳ１２０３）。
【０１３４】
構成決定部１０２は、残りの仮想マシン構成情報に対して、ステップＳ１２０２およびＳ１２０３の処理を繰り返す（ステップＳ１２０４）。構成決定部１０２は、このようにして、ＧＣＣ４０５を生成することができる。
【０１３５】
次に、図１２を参照して、ＶＭイメージを生成する際（図４のステップＳ１２）における、ＶＭイメージ生成部１０３の動作Ｐ１３００を詳細に説明する。図１２は、第２の実施形態におけるＶＭイメージ生成部１０３が行うＶＭイメージを生成する際の動作を示すフローチャートである。ＶＭイメージ生成部１０３は、構成決定部１０２によるＶＭイメージの生成の指示（図８のステップＳ１００８）に応じて、以下のようなＶＭイメージの生成を行う。
【０１３６】
まず、ＶＭイメージ生成部１０３は、構成決定部１０２から、ＬＣＣ４０４またはＧＣＣ４０５の配信構成を表す共通構成情報を受け取る。次に、ＶＭイメージ生成部１０３は、共通構成情報に基づいて、生成するＶＭイメージに使用するＶＭイメージテンプレートを、ＶＭイメージテンプレートリポジトリ１１２から取得する。そして、ＶＭイメージ生成部１０３は、取得したＶＭイメージテンプレートを、ＶＭとして起動する（ステップＳ１３０１）。
【０１３７】
次に、ＶＭイメージ生成部１０３は、共通構成情報に列挙されたモジュールに対応する配備スクリプト部品５００を、スクリプトリポジトリ１１３から取得する。また、ＶＭイメージ生成部１０３は、共通構成情報に列挙された各モジュールに対応するソフトウェア部品１２１を、構成部品リポジトリ１２０から取得する。そして、ＶＭイメージ生成部１０３は、配備スクリプト部品５００のインストール部５０１に基づいて、ステップＳ１３０１で起動したＶＭに対して、各モジュール（ソフトウェア部品１２１）を配備する（ステップＳ１３０２）。なお、ＶＭイメージ生成部１０３は、ＶＭイメージテンプレートに、すでに含まれているモジュールがある場合は、そのモジュールに対してはＶＭへの配備を行わなくてもよい。また、ＶＭイメージ生成部１０３は、ＶＭイメージテンプレートにすでに含まれているモジュールのうち、共通構成情報に含まれない余分なモジュールの配備スクリプト部品５００に基づいて、ＶＭから余分なモジュールのアンインストール（配備解除）を行ってもよい。
【０１３８】
最後に、ＶＭイメージ生成部１０３は、上記のモジュールを配備したＶＭを停止し、その停止したＶＭから配信可能なＶＭイメージファイルを生成する（ステップＳ１３０３）。ＶＭイメージ生成部１０３は、このようにして、ＬＣＣ４０４またはＧＣＣ４０５に応じたＶＭイメージを生成することができる。ここで生成されたＶＭイメージは、配信制御部１０５によって、図４のステップＳ１４において、サーバ装置２００に対して送信される。
【０１３９】
以上が、図４のステップＳ１２における、ＶＭイメージ生成部１０３の動作Ｐ１３００の詳細である。
【０１４０】
次に、図１３を参照して、サーバ装置２００に対して仮想マシンを配備する際（図４のステップＳ２１）における、エージェント２１０の動作Ｐ２０００を詳細に説明する。図１３は、第２の実施形態におけるエージェント２１０が行う仮想マシンを配備する際の動作を示すフローチャートである。エージェント２１０は、ＶＭイメージ（図６のＶＭ＿ＬＣＣ４１４、または図７のＶＭ＿ＧＣＣ４２５）、配備スクリプト、およびシステム構成情報１１１を受信した後に、以下のようにして仮想マシンの配備を行う。
【０１４１】
まず、ＶＭイメージ複製部２１１が、受信したシステム構成情報１１１を読み出し、自機に対する物理サーバ構成情報４００に指定される仮想マシンの数に応じて、受信したＶＭイメージを複製する（ステップＳ２００１）。
【０１４２】
次に、モジュール配備部２１２は、物理サーバ構成情報４００に含まれる仮想マシン構成情報４０１〜４０３（図５）を１つずつ選び出し、選び出した各々の仮想マシン構成情報に対して、以下の動作を行う。
【０１４３】
まず、受信したＶＭイメージがＬＣＣ構成（ＶＭ＿ＬＣＣ４１４）である場合（ステップＳ２００２のＹ）、モジュール配備部２１２は、ＶＭイメージから削除するモジュールを列挙する（ステップＳ２００３）。具体的には、モジュール配備部２１２は、選び出した仮想マシン構成情報と、ＶＭ＿ＬＣＣ４１４のモジュール構成（すなわちＬＣＣ４０４）との差分を求める。
【０１４４】
次に、モジュール配備部２１２は、リストアップした各モジュールに対応する配備スクリプト部品５００のアンインストール部５０２（図９）に基づいて、すべての該モジュールの配備を解除する（ステップＳ２００４）。これで、受信したＶＭイメージがＬＣＣ構成に基づく場合における、１つの仮想マシン構成情報に対する処理は終了する。
【０１４５】
一方、受信したＶＭイメージがＧＣＣ構成（ＶＭ＿ＧＣＣ４２５）である場合（ステップＳ２００２のＮ）、モジュール配備部２１２は、ＶＭイメージに対して追加するモジュールを列挙する（ステップＳ２００５）。具体的には、モジュール配備部２１２は、ステップＳ２００１の後に選び出した仮想マシン構成情報と、ＶＭ＿ＧＣＣ４２５のモジュール構成（すなわちＧＣＣ４０５）との差分を求める。
【０１４６】
次に、モジュール配備部２１２は、リストアップした各モジュールに対応する配備スクリプト部品５００のインストール部５０１（図９）に基づいて、構成部品リポジトリ１２０から、それらのモジュールのソフトウェア部品１２１を取得する。モジュール配備部２１２は、構成部品リポジトリ１２０の場所を、システム構成情報１１１のリポジトリ指定部３０１（図３）から取得することができる。そして、モジュール配備部２１２は、インストール部５０１に基づき、取得したソフトウェア部品１２１を用いて、各モジュールを配備する（ステップＳ２００６）。これで、受信したＶＭイメージがＧＣＣ構成に基づく場合における、１つの仮想マシン構成情報に対する処理は終了する。これ以降、ＶＭＭ２０１が、エージェント２１０によって配備されたＶＭイメージを、仮想マシンとして動作させることができる。
【０１４７】
モジュール配備部２１２は、同じＶＭイメージに基づいて配備される全仮想マシンに対して、ステップＳ２００２からステップＳ２００６までの処理を繰り返す（ステップＳ２００７）。
【０１４８】
このように、エージェント２１０は、すべての配備すべき仮想マシン群に対して上記の処理を実行することにより、そのサーバ装置２００におけるすべての仮想マシンを、１つのＶＭイメージに基づいて配備することができる。
【０１４９】
以上が、図４のステップＳ２１における、エージェント２１０の動作Ｐ２０００の詳細である。
【０１５０】
以上説明したように、本実施形態には、サーバ装置２００に対する仮想マシンの配備に際して、ネットワークを流れるデータの総量を削減することができるという効果がある。すなわち、本実施形態に係る配備装置２００は、多数の仮想マシンによって構成される大規模システムの初期構築時などに、大量の仮想マシンイメージを配信することがないので、ネットワークの輻輳の発生を抑制できるという効果がある。
【０１５１】
その理由は、配備装置１００において、構成決定部１０２が、サーバ装置２００ごとに、同一のＶＭイメージテンプレートに基づいて構成される仮想マシンのモジュールの共通構成を導出するからである。そして、ＶＭイメージ生成部３が、共通構成に基づいて、モジュールを重複なく含む、１つのＶＭイメージを生成する。最終的に、配信制御部１０５が、その１つのＶＭイメージをサーバ装置２００に対して１度送信することにより、複数の仮想マシンに関するＶＭイメージの送信を完了するからである。
【０１５２】
なお、本実施形態において、配信制御部１０５は、サーバ装置２００に対して、システム構成情報１１１を送信するが、送信先であるサーバ装置２００のエージェント２１０が必要とする情報が含まれれば、これに限られない。例えば、配信制御部１０５は、システム構成情報１１１に代えて、送信先のサーバ装置２００に対する物理サーバ構成情報４００（図５）、および構成部品リポジトリ１２０の場所を表す情報を送信してもよい。
【０１５３】
＜第３の実施形態＞
次に、上述した第２の実施形態を基本とする第３の実施形態について説明する。以下では、第３の実施形態に係る特徴的な部分を中心に説明し、第２の実施形態と同様な構成を有する第３の実施形態の構成要素について重複する詳細な説明は省略する。
【０１５４】
本実施形態の構成は、第２の実施形態と同じく、図２に示す通りである。本実施形態は、仮想マシンの配備先であるサーバ装置２００において、各仮想マシンに含まれるソフトウェアモジュールに対する設定が可能であるという点が、第２の実施形態と異なる。すなわち、本実施形態では、各仮想マシンに配備されたモジュールに対する設定が可能となることにより、仮想マシンごとに異なる設定へ対応することができる。
【０１５５】
図１４を参照して、本実施形態におけるシステム構成情報３５０の構成を説明する。図１４は、第３の実施形態におけるシステム構成情報３５０の一例を示す図である。
【０１５６】
図１４に示す通り、システム構成情報３５０の構成要素３０１〜３０６は、仮想マシン構成情報３０４にパラメータ設定が指定されたモジュール情報３５１を含む点を除き、第２の実施形態におけるシステム構成情報３００（図３）と同様である。モジュール情報３５１は、図１４に示す具体例においては、モジュール「ｍｏｄ＿Ａ」における「ｐａｒａｍｓ．ｐａｒａｍ１」というＩＤのパラメータに対して、「ｚｚｚｚｚ」という値をセットすることを指定する情報を含む。
【０１５７】
なお、パラメータの設定が指定されたモジュール情報３５１は、例えば仮想マシン構成情報３０６などの、他の仮想マシン構成情報にも含めてもよい。
【０１５８】
次に、本実施形態に係る配備システムの動作を説明する。本実施形態におけるＶＭイメージのサーバ装置２００への配信までの動作は、第２の実施形態と同様である。すなわち、本実施形態に係るサーバ装置２００のエージェント２１０における各部の動作は、第２の実施形態と同様である。
【０１５９】
本実施形態の動作は、サーバ装置２００における仮想マシンの配備の処理において、第２の実施形態との違いがある。図１５を参照して、本実施形態におけるエージェント２１０の動作Ｐ２１００を詳細に説明する。図１５は、第３の実施形態におけるエージェント２１０が行う仮想マシンを配備する際の動作を示すフローチャートである。
【０１６０】
本実施形態に係るエージェント２１０の動作は、第２の実施形態におけるモジュール配備部２１２が行うステップＳ２００６（図１３）とステップＳ２００７との間に、モジュールを設定する動作（ステップＳ２１０１）が加えられる点で異なる。すなわち、図１５において、ステップＳ２００１〜Ｓ２００７として示される各動作は、第２の実施形態と同様であるので、重複する説明は省略する。
【０１６１】
図１５を参照すると、配備装置１００から受信したＶＭイメージがＧＣＣ構成（ＶＭ＿ＧＣＣ４２５）である場合（ステップＳ２００２のＮ）、モジュール配備部２１２は、ＶＭイメージに対して追加するモジュールを列挙する（ステップＳ２００５）。そして、次に、モジュール配備部２１２は、構成部品リポジトリ１２０から、リストアップした各モジュールのソフトウェア部品１２１を取得し、取得したソフトウェア部品１２１を用いて、各モジュールを配備する（ステップＳ２００６）。
【０１６２】
本実施形態では、ここで、モジュール配備部２１２は、配備スクリプト部品５００（図９）の設定部５０３に基づいて、システム構成情報３５０のモジュール情報３５１（図１４）に指定された各モジュールに対する設定を行う（ステップＳ２１０１）。具体的には、モジュール配備部２１２は、モジュール「ｍｏｄ＿Ａ」に対する配備スクリプト部品５００の設定部５０３に記述された設定方法を用いて、「ｐａｒａｍｓ．ｐａｒａｍ１」というＩＤのパラメータに対して、「ｚｚｚｚｚ」という値をセットする。
【０１６３】
本実施形態では、これで、受信したＶＭイメージがＧＣＣ構成に基づく場合における、１つの仮想マシン構成情報に対する処理が終了する。
【０１６４】
モジュール配備部２１２は、第２の実施形態と同様に、同じＶＭイメージに基づいて配備される全仮想マシンに対して、ステップＳ２００２からステップＳ２００６、およびステップＳ２１０１までの処理を繰り返す（ステップＳ２００７）。
【０１６５】
このように、本実施形態に係るエージェント２１０は、すべての配備すべき仮想マシン群に対して上記の処理を実行することにより、そのサーバ装置２００におけるすべての仮想マシンを、１つのＶＭイメージに基づいて配備することができる。
【０１６６】
以上、説明したように、本実施形態には、上述した第２の実施形態と同様の効果に加えて、さらに、仮想マシンごとに異なる設定へ対応することができるという効果もある。
【０１６７】
その理由は、モジュール配備部２１２が、システム構成情報３５０に含まれるモジュール情報３５１に応じて、各仮想マシンに含まれるソフトウェアモジュールに対するパラメータなどの設定を行うことができるからである。
【０１６８】
なお、モジュール配備部２１２は、受信したＶＭイメージに含まれ、かつ、配備の際に配備を解除しない（削除しない）モジュールに対する、設定を行ってもよい。この場合、モジュール配備部２１２は、受信したＶＭイメージがＬＣＣだった場合に行う動作（ステップＳ２００３〜Ｓ２００４）の間または前後のいずれかのタイミングにおいても、各モジュールに対する設定（ステップＳ２１０１）を行う。
【０１６９】
なお、上述した各実施形態において図１および図２に示した各部は、それぞれ独立したハードウェア回路で構成されていてもよいし、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捕らえることができる。ただし、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。このような場合のハードウェア環境の一例を、図１６を参照して説明する。
【０１７０】
図１６は、本発明の各実施形態、および、その変形例に係る配備システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。すなわち、図１６は、上述した各実施形態における配備装置１および１００、サーバ装置１０および２００、および構成部品リポジトリ１２０の少なくとも何れかを実現可能なコンピュータの構成であって、上述した各実施形態における各機能を実現可能なハードウェア環境を示す。
【０１７１】
図１６に示したコンピュータ９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、通信インタフェース（Ｉ／Ｆ）９０４、ディスプレイ９０５、及びハードディスク装置（ＨＤＤ）９０６を備え、これらがバス９０７を介して接続された構成を有する。なお、図１６に示したコンピュータが配備装置１および１００、サーバ装置１０および２００、および構成部品リポジトリ１２０として機能する場合、ディスプレイ９０５は常時設けられる必要はない。
【０１７２】
また、通信インタフェース９０４は、上述した各実施形態において、当該各コンピュータ間における通信を実現する一般的な通信手段である。ハードディスク装置９０６には、プログラム群９０６Ａと、各種の記憶情報９０６Ｂとが格納されている。プログラム群９０６Ａは、例えば、上述した図１および図２に示した各ブロック（各部）に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報９０６Ｂは、例えば、図２に示したシステム構成情報１１１、ＶＭイメージテンプレートリポジトリ１１２、スクリプトリポジトリ１１３、およびソフトウェア部品１２１などである。このようなハードウェア構成において、ＣＰＵ９０１は、コンピュータ９００の全体の動作を司る。
【０１７３】
そして、上述した各実施形態を例に説明した本発明は、各実施形態の説明において参照したブロック構成図（図１および図２）あるいはフローチャート（図４、図８、図１０乃至図１３、および図１５）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ９０１に読み出して実行することによって達成される。また、このコンピュータ内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ９０３またはハードディスク装置９０６などの不揮発性の記憶デバイス（記憶媒体）に格納すれば良い。
【０１７４】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、フロッピーディスク（登録商標）やＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信ネットワーク１０００を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０１７５】
なお、上述した実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下の付記に限定されるものではない。
【０１７６】
（付記１）
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、前記共通構成を表す共通構成情報を出力する構成決定手段と、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成手段と、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成手段と、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信する配信制御部と
を備える配備装置。
【０１７７】
（付記２）
前記構成決定手段は、前記共通構成を導出する際に、前記各仮想マシンに含まれるすべてのソフトウェアモジュールを重複なく含む構成である最小の網羅構成を前記共通構成として導出する
付記１記載の配備装置。
【０１７８】
（付記３）
前記構成決定手段は、前記共通構成を導出する際に、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記１記載の配備装置。
【０１７９】
（付記４）
前記構成決定手段は、前記最小の網羅構成を前記共通構成として導出した際に、前記最小の網羅構成に対応するＶＭイメージに基づく前記仮想マシンの配備が不可能と判断した場合、前記最小の網羅構成の代わりに、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記２記載の配備装置。
【０１８０】
（付記５）
付記１乃至４のいずれか１つに記載の配備装置から送信された前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製するＶＭイメージ複製手段と、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備するモジュール配備手段と
を備えるサーバ装置。
【０１８１】
（付記６）
前記モジュール配備手段は、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不要なモジュールを削除することにより前記ソフトウェアモジュールの配備を行う
付記５記載のサーバ装置。
【０１８２】
（付記７）
前記モジュール配備手段は、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不足しているモジュールを追加配備することにより前記ソフトウェアモジュールの配備を行う
付記５記載のサーバ装置。
【０１８３】
（付記８）
情報処理装置を用いて、
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、
前記共通構成を表す共通構成情報を生成し、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成し、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成し、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信し、
前記サーバ装置において、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、
前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製し、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備する
配備方法。
【０１８４】
（付記９）
前記共通構成を導出する際に、前記各仮想マシンに含まれるすべてのソフトウェアモジュールを重複なく含む構成である最小の網羅構成を前記共通構成として導出する
付記８記載の配備方法。
【０１８５】
（付記１０）
前記共通構成を導出する際に、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記８記載の配備方法。
【０１８６】
（付記１１）
前記最小の網羅構成を前記共通構成として導出した際に、前記最小の網羅構成に対応するＶＭイメージに基づく前記仮想マシンの配備が不可能と判断した場合、前記最小の網羅構成の代わりに、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記９記載の配備方法。
【０１８７】
（付記１２）
前記サーバ装置において、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不要なモジュールを削除することにより前記ソフトウェアモジュールの配備を行う
付記８または９に記載の配備方法。
【０１８８】
（付記１３）
前記サーバ装置において、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不足しているモジュールを追加配備することにより前記ソフトウェアモジュールの配備を行う
付記８、１０、および１１のいずれか１つに記載の配備方法。
【０１８９】
（付記１４）
同一のサーバ装置に配備される各仮想マシンの構成、および各仮想マシンが含むソフトウェアモジュールの構成を表す情報である物理サーバ構成情報に基づいて、少なくとも前記各仮想マシンに共通するソフトウェアモジュールを含む共通構成を導出し、前記共通構成を表す共通構成情報を出力する構成決定処理と、
前記共通構成情報に基づいて、少なくとも前記共通するソフトウェアモジュールを重複なく含むＶＭイメージを生成するＶＭイメージ生成処理と、
前記共通構成情報、および前記物理サーバ構成情報に基づいて、前記ＶＭイメージを配備する際に必要となる情報を含む配備情報を生成する配備情報生成処理と、
前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を、前記サーバ装置に対して送信する配信制御処理と
を第１のコンピュータに実行させるコンピュータ・プログラム。
【０１９０】
（付記１５）
前記構成決定処理において、前記共通構成を導出する際に、前記各仮想マシンに含まれるすべてのソフトウェアモジュールを重複なく含む構成である最小の網羅構成を前記共通構成として導出する
付記１４記載のコンピュータ・プログラム。
【０１９１】
（付記１６）
前記構成決定処理において、前記共通構成を導出する際に、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記１４記載のコンピュータ・プログラム。
【０１９２】
（付記１７）
前記構成決定処理において、前記最小の網羅構成を前記共通構成として導出した際に、前記最小の網羅構成に対応するＶＭイメージに基づく前記仮想マシンの配備が不可能と判断した場合、前記最小の網羅構成の代わりに、前記各仮想マシンに共通して含まれるモジュールを重複なく含む構成である最大の共通構成を前記共通構成として導出する
付記１５記載のコンピュータ・プログラム。
【０１９３】
（付記１８）
付記１４乃至１７のいずれか１つに記載の第１のコンピュータから送信された前記ＶＭイメージ、前記物理サーバ構成情報、および前記配備情報を受信し、前記ＶＭイメージを、前記物理サーバ構成情報に基づいて求めた、前記サーバ装置に配備される仮想マシンの数に応じて複製するＶＭイメージ複製処理と、
前記物理サーバ構成情報に記述された仮想マシンの構成となるように、前記配備情報を用いて、前記複製された各ＶＭイメージに対してソフトウェアモジュールを配備するモジュール配備処理と
を第２のコンピュータに実行させるコンピュータ・プログラム。
【０１９４】
（付記１９）
前記モジュール配備処理において、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不要なモジュールを削除することにより前記ソフトウェアモジュールの配備を行う
付記１８記載のコンピュータ・プログラム。
【０１９５】
（付記２０）
前記モジュール配備処理において、前記ソフトウェアモジュールを配備する際に、前記複製された各ＶＭイメージごとに、不足しているモジュールを追加配備することにより前記ソフトウェアモジュールの配備を行う
付記１８記載のコンピュータ・プログラム。
【符号の説明】
【０１９６】
１、１００    配備装置
２、１０２    構成決定部
３、１０３    仮想マシン（ＶＭ）イメージ生成部
４    配備情報生成部
５、１０５    配信制御部
１０、２００    サーバ装置
１１、２１１    ＶＭイメージ複製部
１２、２１２    モジュール配備部
２０、３０２、３０６、４００    物理サーバ構成情報
１０４    配備スクリプト生成部
１１０    記憶装置
１１１、３００、３５０    システム構成情報
１１２    仮想マシン（ＶＭ）イメージテンプレートリポジトリ
１１３    スクリプトリポジトリ
１２０    構成部品リポジトリ
１２１    ソフトウェア部品
２０１    仮想マシンモニタ（ＶＭＭ）
２１０    エージェント
３０１    リポジトリ指定部
３０３    物理サーバ名情報
３０４、３０５    仮想マシン構成情報
３５１    モジュール情報
４０１    ＶＭ＿Ａの仮想マシン構成情報
４０２    ＶＭ＿Ｂの仮想マシン構成情報
４０３    ＶＭ＿Ｃの仮想マシン構成情報
４０４    最小の網羅構成（ＬＣＣ）
４０５    最大の共通構成（ＧＣＣ）
４１１、４２１    ＶＭ＿Ａ
４１２、４２２    ＶＭ＿Ｂ
４１３、４２３    ＶＭ＿Ｃ
４１４    ＬＣＣ４０４に対応するＶＭイメージ（ＶＭ＿ＬＣＣ）
４２５    ＧＣＣ４０５に対応するＶＭイメージ（ＶＭ＿ＧＣＣ）
５００    配備スクリプト部品
５０１    インストール部
５０２    アンインストール部
５０３    設定部
９００    情報処理装置（コンピュータ）
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    通信インタフェース（Ｉ／Ｆ）
９０５    ディスプレイ
９０６    ハードディスク装置（ＨＤＤ）
９０６Ａ    プログラム群
９０６Ｂ    各種の記憶情報
９０７    バス
１０００    ネットワーク（通信ネットワーク）
【図１】
2016009341.tif 000003
【図２】
2016009341.tif 000004
【図３】
2016009341.tif 000005
【図４】
2016009341.tif 000006
【図５】
2016009341.tif 000007
【図６】
2016009341.tif 000008
【図７】
2016009341.tif 000009
【図８】
2016009341.tif 000010
【図９】
2016009341.tif 000011
【図１０】
2016009341.tif 000012
【図１１】
2016009341.tif 000013
【図１２】
2016009341.tif 000014
【図１３】
2016009341.tif 000015
【図１４】
2016009341.tif 000016
【図１５】
2016009341.tif 000017
【図１６】
2016009341.tif 000018