以下に、本願の開示する情報処理装置、情報処理システム及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び情報処理プログラムが限定されるものではない。
図1は、複数のサーバにOSのインストールを行う情報処理システムの一例の概略構成図である。図1に示すように、情報処理システム100は、OSのインストールの対象となるサーバ2及びサーバ2に対するOSのインストールを実行するインストール管理装置1を有する。ここで、本実施例では、OSのインストールとして説明するが、OSに他のアプリケーションを加えたインストールであってもよく、また、OS以外の他のアプリケーションのインストールであってもよい。このサーバ2が「演算処理装置」の一例にあたる。
インストール管理装置1とサーバ2とは、ルータ4及びL3(Level 3)スイッチ5を介してネットワークで接続される。また、各サーバ2も相互に接続される。ただし、互いに接続されるサーバ2の中には、L3スイッチ5を介してネットワークで接続されるサーバ2同士も存在する。L3スイッチ5を介さずに接続されるサーバ2同士は、サブネットは同じであるが、L3スイッチを介して接続されるサーバ2同士はサブネットが異なる。すなわち、図1において、各L3スイッチ5の配下のサーバ2を含むグループ20同士は、互いにサブネットが異なる。また、サーバ2の中には、後述するように、他のサーバ2に対してOSをインストールするインストール機能保持サーバ3の機能が付与されるサーバ2も存在する。インストール機能保持サーバ3が、「第1情報処理装置」の一例にあたる。
図2は、インストール管理装置のブロック図である。インストール管理装置1は、サーバなどの情報処理装置である。そして、インストール管理装置1は、OSのインストールを行うバーチャルアプライアンスが導入され、ハイパーバイザー上のゲストOSが動作し、そのゲストOSの環境でOSのインストールを行うアプリケーションが実行される。このOSのインストール用のバーチャルアプライアンスが「処理実行ソフトウェア」の一例にあたる。また、OSが「特定ソフトウェア」の一例にあたる。
インストール管理装置1は、格納部11、グループ作成部12、グループ選択部13、インストール対象選択部14、インストール処理部15、インストール装置生成部16及びコピーVA管理部17を有する。格納部11、グループ作成部12、グループ選択部13、インストール対象選択部14、インストール処理部15、インストール装置生成部16及びコピーVA管理部17は、OSのインストール用のバーチャルアプライアンスにより提供される機能である。
格納部11は、サーバ情報111、プロファイル情報112及びOSイメージ113を有する。この格納部11が、「データ保持部」及び「記憶装置」の一例にあたる。
サーバ情報111は、インストール対象となる各サーバ2の構成情報である。サーバ情報111は、例えば、IP(Internet Protocol)アドレス、サーバのモデル、搭載された記憶媒体の種類及びフォーマット方式などを含む。
プロファイル情報112は、インストール対象となるサーバ2毎のインストールされるOSに関する情報である。プロファイル情報112は、例えば、OSの種類、OSのバージョン、パッケージサイズ、OSの中のハイパーバイザーの存否及び定義ファイルなどを含む。定義ファイルは、サーバ2に設定する情報を記述したファイルであり、例えば、BIOS(Basic Input Output System)の定義、仮想化の定義及びアプリケーションのスクリプトなどを含む。このサーバ情報111及びプロファイル情報112が、「設定情報」の一例にあたる。
OSイメージ113は、サーバ2にインストールするOSのイメージファイルである。OSイメージ113は、複数種類のOSのイメージを含んでもよい。
グループ作成部12は、格納部11が保持するサーバ情報111に登録された各サーバ2のIPアドレスから、各サーバ2のサブネットを取得する。そして、グループ作成部12は、サブネット毎にサーバ2をまとめてグルーピングする。すなわち、グループ作成部12は、図1におけるグループ20を各グループとして図3のテーブル41により示される情報を取得する。図3は、グルーピングの情報の一例を示す図である。
ここで、異なるサブネット間で通信する場合、信号はL3スイッチ5を経由して送受信される。L3スイッチ5は、MAC(Media Access Control)アドレスの付け替えやFCS(Frame Check Sequence)の再構成やフレームの再構成を行う。この処理により、信号の送受信に遅延が発生する。また、2つのサブネットが隣接せず、それらの間に別のサブネットが挟まる場合、それらの間のネットワークの帯域内で信号が転送されるため、更なる遅延が発生するおそれがある。そこで、本実施例では、サーバ2をサブネットでグルーピングして、後述するサーバ2同士の間でのOSのインストールが実行される範囲をサブネット内に閉じることで、サブネットを跨ぐことによる遅延を低減する。ただし、サブネットを跨ぐことによる遅延を考慮しない場合、他のグルーピング方法を用いてもよく、さらには全てのサーバ2を1つのグループとしてもよい。
グループ作成部12は、作成したグループ20の情報をグループ選択部13へ送信する。グループ20の情報には、各グループ20のそれぞれに属するサーバ2のIPアドレスが含まれる。例えば、グループ作成部12は、図3のテーブル41に示すような情報をグループ選択部13へ送信する。図3は、サーバのグルーピングの情報の一例を表す図である。
グループ選択部13は、各グループ20におけるOSのインストール処理の残り時間を用いて、どのグループ20に属するサーバ2に対してOSのインストールを行うか決定する。ただし、各グループ20におけるOSのインストール処理の残り時間を正確に算出することは困難である。そこで、グループ選択部13は、各グループ20の情報を用いて、グループ20毎にインストールの処理を完了するまでにかかる時間の評価値を算出し、その評価値を比較することでインストールの処理を実行するグループ20を選択する。以下にグループ選択部13によるグループ選択処理の詳細について説明する。
グループ選択部13は、OSのインストールが未完了のサーバが存在するグループ20の合計数を算出する。以下では、OSのインストールが未完了のサーバ2を、未インストールサーバという。また、ここでは、未インストールサーバが存在するグループ20の合計数をmとする。そして、グループ選択部13は、OSのインストールが未完了のサーバが存在するグループ20に対して番号付けを行う。すなわち、グループ選択部13は、1~mの番号をOSのインストールが未完了のサーバが存在する各グループ20に割り当てる。これにより、各グループ20には、番号i(1≦i≦m)が割り当てられる。
次に、グループ選択部13は、各グループ20について、未インストールサーバの数及びOSのインストール機能が付与されたインストール機能保持サーバ3の総数を取得する。ここで、インストール機能保持サーバ3とは、後述するようにインストール管理装置1が自己の代理として他のサーバ2へのOSのインストールを行わせるサーバ2である。グループ選択部13は、インストール機能保持サーバ3の情報をインストール装置生成部16から取得する。そして、グループ選択部13は、グループ20毎にインストール機能保持サーバ3の数の合計を求めることで各グループ20におけるインストール機能保持サーバ3の数を取得することができる。ここでは、番号iのグループ20における、未インストールサーバの数をAiとし、インストール機能保持サーバ3の総数をBiとする。
図4は、グループ選択部が保持するデータの一例を表す図である。図4では、グループ20としてグループ21~23が存在する場合の例を記載した。この場合、グループ選択部13は、グループ21~23のそれぞれについて、図4のテーブル42に示す未インストールサーバ及びインストール機能保持サーバ3の数を取得する。
次に、グループ選択部13は、あるグループ20について、未インストールサーバが存在するグループ20の合計数の逆数と、そのグループ20のインストール機能保持サーバ3の総数とを加算した値で、そのグループ20の未インストールサーバの数を除算する。そして、グループ選択部13は、算出した値をそのグループ20のグループ評価値とする。
すなわち、グループ選択部13は、i番目のグループ20について、グループ評価値をHiとした場合、以下の数式(1)を用いてHiを求める。
Hi=Ai/(Bi+1/m) ・・・(1)
数式(1)の右辺の分母は、インストール管理装置1及びインストール機能保持サーバ3が単位時間あたりにOSのインストールを完了するサーバ2の台数を1とした場合の、グループ20全体の処理能力である。ここで、インストール管理装置1は、全てのサブネットに対してOSのインストールを実行するため、サブネットの数に応じて処理能力が分散する。そこで、インストール管理装置1の単位時間あたりの処理能力を1/mとした。すなわち、グループ評価値であるHiは、その時点での処理の残り時間を単位時間で割った商にあたる。例えば、図4に表す場合であれば、グループ選択部13は、グループ21のグループ評価値を48と算出し、グループ22のグループ評価値を144と算出し、グループ23のグループ評価値を36と算出する。これにより、グループ選択部13は、図3のテーブル42で示す情報を取得する。
ここで、グループ評価値が1より大きい場合、そのグループ20において、次の単位時間でOSのインストールが完了しないことを意味する。例えば、1台のサーバ2に対するOSのインストールが完了するまでの時間が30分の場合、グループ評価値が1より大きいということは、次の30分ではそのグループ20に属する全てのサーバ2のOSのインストールが完了しないことを表す。なお、グループ評価値は比較のための相対値であり、正確な単位時間が求まらなくてもよい。グループ評価値が大きいほどそのグループ20に属する全てのサーバ2のOSのインストールの完了までに時間がかかることを示す。すなわち、グループ評価値の大きいグループ20に対して優先的にインストール機能保持サーバ3を作成することでより多くの時間短縮が期待できる。
グループ選択部13は、各グループ20のグループ評価値を比較する。そして、グループ選択部13は、グループ評価値が最大のグループ20をOSのインストールを行うサーバ2を選択するグループ20として選択する。その後、グループ選択部13は、選択したグループ20の情報及びそのグループ20のグループ評価値をインストール対象選択部14へ出力する。また、グループ選択部13は、選択したグループ20の情報及びそのグループ20のグループ評価値をインストール処理部15へ送信する。以下では、グループ選択部13により選択されたグループ20をインストール対象のグループ20という。このインストール対象のグループ20が、「選択グループ」の1例にあたる。
インストール対象選択部14は、インストール対象のグループ20の情報の入力をグループ選択部13から受ける。この時、インストール対象選択部14は、インストール対象のグループ20のグループ評価値の入力も受ける。
そして、インストール対象選択部14は、OSのインストール先の候補の各サーバ2に対するOSのインストールにかかる時間を用いて、OSをインストールするサーバ2を決定する。ただし、OSのインストールにかかる時間を正確に算出することは困難である。そこで、インストール対象選択部14は、各サーバ2のハードウェア情報及びインストール予定のOSの情報から、サーバ2毎のOSのインストールにかかる時間に応じたサーバ評価値を算出する。この各サーバ2のハードウェア情報が「演算処理装置の情報」にあたり、インストール予定のOSの情報が「特定ソフトウェアの情報」の一例にあたる。
インストール対象選択部14は、算出したサーバ評価値を比較することで、OSをインストールするサーバ2を決定する。以下にサーバ評価値の算出方法の詳細を説明する。
インストール対象選択部14は、OSのインストール先の候補の合計数を求める。ここでは、インストール対象選択部14が算出したOSのインストール先の候補の合計数をnとする。
次に、インストール対象選択部14は、OSのインストール先の候補のサーバ2のそれぞれに番号を割り当てる。これにより、OSのインストール先の候補のサーバ2には、番号j(1≦j≦n)が割り当てられる。
次に、インストール対象選択部14は、OSのインストール先の候補のサーバ2毎に、格納部11に格納されたプロファイル情報112からOSのパッケージサイズ及びバージョンを取得する。また、インストール対象選択部14は、OSのインストール先の候補のサーバ2毎に、格納部11に格納されたサーバ情報111からフォーマット方式及び記憶媒体の種類の情報を取得する。
OSのインストールにかかる時間は、パッケージサイズに影響を受ける。Linux(登録商標)のようにパッケージを細かく指定できるものもあるが、本実施例では、インストール対象選択部14は、パッケージサイズに応じて、インストールするOSをフルインストール、デフォルトインストール及びコアインストールの3種類のパッケージに分類する。フルインストールはOSが使用可能な全ての機能を組み込むインストールであり、3つのインストールにおいて最もパッケージサイズが大きい。また、デフォルトインストールは、OSを利用する際に推奨される機能に限定して組み込むインストールであり、3つのインストールにおける中間のパッケージサイズである。また、コアインストールは、OSが動作する最低限の機能を組み込むインストールであり、3つのインストールにおいて最もパッケージサイズが小さい。そして、インストール対象選択部14は、各サーバ2のOSのパッケージサイズについて、パッケージの種類に応じて数値化する。ここでは、数値化されたパッケージサイズをWと表す。例えば、インストール対象選択部14は、パッケージがフルインストールであればW=3とし、デフォルトインストールであればW=2とし、コアインストールであればW=1とする。この場合、数値が大きいほどパッケージサイズが小さくOSのインストールにかかる時間が短くなる。
また、同じ種類のOSであれば、バージョンが新しいほど処理時間が短い傾向にある。そこで、インストール対象選択部14は、バージョンに応じて、インストールするOSを、バージョンが新しいグループ、バージョンが1世代前のグループ、バージョンが古いグループの3つのバージョングループに分ける。この時、インストール対象選択部14は、各バージョングループに属するサーバ2の台数が均等になるようにグルーピングを行う。均等にすることが困難な場合、インストール対象選択部14は、以下のようにグルーピングを行う。インストール対象選択部14は、バージョンが新しいグループの台数がバージョンが1世代前のグループの台数以上であり、バージョンが1世代前のグループの台数がバージョンが古いグループの台数以上となるようにグルーピングを行う。
そして、インストール対象選択部14は、各サーバ2のOSのバージョンについて、バージョングループに応じて数値化する。ここでは、数値化されたバージョンをXと表す。例えば、インストール対象選択部14は、バージョンが新しいグループであればX=3とし、バージョンが1世代前のグループであればX=2とし、バージョンが古いグループであればX=1とする。この場合、数値が大きいほどバージョンが新しくOSのインストールにかかる時間が短くなる。
また、インストール対象選択部14は、フォーマット方式がクイックフォーマットか通常フォーマットかを判定する。クイックフォーマットであれば、ディスクの不良のチェックが省かれるため、フォーマット時間が短くなる。そして、インストール対象選択部14は、各サーバ2のフォーマット方式を数値化する。ここでは、数値化されたフォーマット方式をYと表す。例えば、インストール対象選択部14は、クイックフォーマットであればY=2とし、通常フォーマットであればY=1とする。この場合、数値が大きいほどOSのインストールにかかる時間が短くなる。
さらに、インストール対象選択部14は、各サーバ2の記憶媒体の種類を判定する。本実施例では、サーバ2の記憶媒体として、磁気ディスク又はフラッシュメモリのいずれかが使用される場合で説明する。すなわち、インストール対象選択部14は、各サーバ2の記憶媒体が磁気ディスクかフラッシュメモリかを判定する。SSD(Solid State Drive)のようなフラッシュメモリは、HDD(Hard Disk Drive)のような磁気ディスクに比べて一般的に処理が早い。ただし、フラッシュメモリでデータの書き換えを行う場合イレースの処理が入るため、磁気ディスクよりフラッシュメモリの方が全体的な処理が遅くなる場合がある。本実施例では、サーバ2が工場出荷状態である場合を想定しているので、イレースの処理による遅延は考慮しない。
そして、インストール対象選択部14は、各サーバ2の記憶媒体について、種類に応じて数値化する。ここでは、数値化された記憶媒体をZと表す。例えば、インストール対象選択部14は、フラッシュメモリであればZ=2とし、磁気ディスクであればZ=1とする。この場合、数値が大きいほどOSのインストールにかかる時間が短くなる。
さらに、インストール対象選択部14は、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類のそれぞれについて、OSのインストールにかかる時間への影響度に応じた重みづけを行う。例えば、OSのバージョン毎のインストールにかかる時間の差は大きいが、短縮時間はOSの種類によって異なり、また、時間の短縮が保証されるわけではないので、OSのパッケージサイズよりも影響度が低い。また、フォーマット処理は、OSのインストールに占める割合が限定的であるので、OSのバージョンよりも影響力が低い。また、フラッシュメモリを使用した場合でも、磁気ディスクを使用した場合でも書き込みの速度はあまり変わらないとされている。記憶媒体の種類は、本実施例ではインストールしたサーバ2がインストール機能保持サーバ3として動作する場合の処理時間短縮を期待してOSをインストールするサーバ2を選択する際の指標とされたが、フォーマット方式よりも影響度が低い。以上のことから、インストール対象選択部14は、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類の順に重みを小さくする。
そして、インストール対象選択部14は、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類をそれぞれ数値化した値に重みを乗算した乗算結果の総和をサーバ評価値とする。例えば、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類をそれぞれの重みを、4、3、2、1とした場合、インストール対象選択部14は、次の数式(2)によりj番目のサーバ2のサーバ評価値を算出する。ここで、Wjは、j番目のサーバ2のOSのパッケージサイズを数値化した値である。また、Xjは、j番目のサーバ2のOSのバージョンを数値化した値である。また、Yjは、j番目のサーバ2のインストール方式を数値化した値である。また、Zjは、j番目のサーバ2の記憶媒体の種類を数値化した値である。さらに、Ujは、j番目のサーバ2のサーバ評価値である。
Uj=Wj×4+Xj×3+Yj×2+Zj×1 ・・・(2)
図5は、インストール対象選択部による評価値算出の概要を説明するための図である。インストール対象選択部14は、プロファイル情報112及びサーバ情報111から指標となる情報を取得する。そして、インストール対象選択部14は、取得した情報を数値化し、さらに重みを加えて、各サーバ2のサーバ評価値を算出する。これにより、インストール対象選択部14は、テーブル43に示す各サーバ2に対応するサーバ評価値を取得する。図5では、IPアドレスにより各サーバ2が表されている。インストール対象選択部14は、このサーバ評価値の取得の処理を1回行うと、次のサーバ2の選択時には全てのサーバ2についてのサーバ評価値がそろっているので再度サーバ評価値の取得の処理を行わなくてもよい。
次に、インストール対象選択部14は、選択されたグループ20のグループ評価値は1より大きいか否かを判定する。グループ評価値が1より大きい場合、インストール対象選択部14は、インストール機能保持サーバ3の生成を行うと判定する。逆に、グループ評価値が1未満の場合、インストール対象選択部14は、インストール機能保持サーバ3の生成を行わないと判定する。
次に、インストール対象選択部14は、OSのインストール先の候補を絞り込む。インストール機能保持サーバ3の生成を行わない場合、インストール対象選択部14は、インストール対象のグループ20に属するサーバ2のうちの未インストールサーバの全てをOSのインストール先の候補とする。
ここで、インストール対象選択部14は、後述するようにOSをインストールするサーバ2をインストール処理部15及びコピーVA管理部17に指示する。そのため、インストール対象選択部14は、指定したOSをインストールするサーバ2の情報を保持しておくことでグループ20毎のインストールが完了したサーバ2の台数を把握できる。そこで、インストール対象選択部14は、選択されたグループ20に属するサーバ2の総数からそのグループ20のインストールが完了したサーバ2の台数を減算することでOSのインストール先の候補の合計数を算出することができる。
これに対して、インストール機能保持サーバ3の生成を行う場合、インストール対象選択部14は、インストール対象のグループ20に属するサーバ2のうちの未インストールサーバであり且つバーチャルアプライアンスが動作するサーバ2をOSのインストール先の候補とする。ここで、バーチャルアプライアンスがあるサーバ2の上で動作するか否かは、例えば、そのサーバ2のCPU(Central Processing Unit)コア数、メモリ容量、空きディスク容量、ネットワーク構成及びハイパーバイザーによって決まる。これらの具体的な値は、バーチャルアプライアンスの種類やOSをインストールするノード数に応じて決定されることが好ましい。
その後、インストール対象選択部14は、サーバ評価値を用いてOSをインストールするサーバ2を決定する。ここで、サーバ評価値が大きいほど、OSのインストールにかかる時間が短いと予想される。そこで、インストール対象選択部14は、インストール管理装置1によるOSのインストールの場合、算出した各サーバ2のサーバ評価値を比較し、最もサーバ評価値が大きいサーバ2を、OSをインストールするサーバ2として選択する。そして、インストール対象選択部14は、OSをインストールする対象として選択したサーバ2の情報をOSのインストールの依頼とともにインストール処理部15へ出力する。
ここで、図6を参照して、インストール管理装置1からのOSのインストールの場合にサーバ評価値が最大のサーバ2を選択する理由について説明する。図6は、サーバ評価値が最大のサーバを選択する理由について説明するための図である。ここでは、サーバ2として、サーバ#1~#3が存在する場合で説明する。
サーバ#1に対するOSのインストールにかかる時間がT1である。また、サーバ#2に対するOSのインストールにかかる時間がT2である。また、サーバ#3に対するOSのインストールにかかる時間がT3である。T1とT2とは等しい時間であり、T3は、T1及びT2よりも長い。
例えば、あるグループ20の全てのサーバ2の全てをインストールするために、インストール機能保持サーバ3が2台作成される場合で考える。例えば、パターンP1は、インストール対象選択部14がOSをインストールするサーバ2として、最初に最もインストールに時間がかかるサーバ#3を選び、その後に、サーバ#1を選び、次にサーバ#2を選んだ場合である。また、パターンP2は、サーバ#1を選び、その後に、サーバ#2を選び、最後に最もインストール時間がかかるサーバ#3を選んだ場合である。すなわち、パターンP2が、サーバ評価値が大きい順にサーバ2を選択してOSをインストールした場合である。
パターンP1の場合、インストール機能保持サーバ3とする2台のサーバ2のインストールが完了するまでに、T3+T1の時間がかかる。これに対して、パターンP2の場合、インストール機能保持サーバ3とする2台のサーバのインストールが完了するまでに、T1+T2の時間がかかる。
この場合、インストール機能保持サーバ3とする2台のサーバのインストールが完了するまでの時間は、パターンP2の方がパターンP1に比べて、時間T4の分短い。すなわち、サーバ評価値が大きい順にサーバ2を選択することで、なるべく早く目標数のインストール機能保持サーバ3を作成することができる。その後は、作成されたインストール機能保持サーバ3とインストール管理装置1とが並行してOSのインストールを行うことで、全体的なインストール時間を短縮することができる。
また、インストール対象選択部14は、OSをインストールする対象のサーバ2の選択依頼をコピーVA管理部17から受ける。そして、インストール対象選択部14は、インストール対象のグループ20に属するサーバ2のうちの未インストールサーバの全てをOSのインストール先の候補とする。そして、インストール対象選択部14は、OSのインストール先の候補のサーバ2の中から、サーバ評価値が最小のサーバ2を選択し、選択したサーバ2の情報をOSのインストールの依頼とともにコピーVA管理部17へ出力する。
ここで、図7を参照して、インストール機能保持サーバ3からのOSのインストールの場合にサーバ評価値が最小のサーバ2を選択する理由について説明する。図7は、サーバ評価値が最小のサーバを選択する理由について説明するための図である。ここでは、サーバ2として、サーバ#1~#3が存在する場合で説明する。
例えば、パターンP3は、サーバ#1及び#2のOSのインストールを並行して行い、その後にサーバ#3のOSのインストールを行う場合である。また、パターンP4は、サーバ#3及び#1のOSのインストールを並行して行い、サーバ#1の後にサーバ#2のOSのインストールを行う場合である。すなわち、パターンP4が、サーバ評価値が小さい順にサーバ2を選択してOSをインストールした場合である。
パターンP3の場合、サーバ#1~#3のOSのインストールが完了するまでに、T1+T3の時間がかかる。これに対して、パターンP4の場合、サーバ#3のOSのインストールと並行して、サーバ#1及び#2のOSのインストールが行われるため、サーバ#1~#3のOSのインストールが完了するまでに、T3の時間がかかる。
この場合、サーバ#1~#3のOSのインストールが完了するまでの時間は、パターンP4の方がパターンP3に比べて、時間T5の分短い。すなわち、サーバ評価値が小さい順にサーバ2を選択することで、なるべく早く全てのサーバ2のインストールを完了することができる。
ここで、本実施例では、インストール対象選択部14は、情報処理システム100に存在する全ての未インストールサーバについてサーバ評価値を算出し、その中から選択されたグループ20に属するインストールの候補となるサーバ2のサーバ評価値を抽出した。ただし、サーバ評価値の算出手順は他の方法でもよく、例えば、インストール対象選択部14は、インストールの候補となる未インストールサーバの絞り込みを行った後に、絞り込んだ未インストールサーバについてサーバ評価値を算出してもよい。この場合、インストール対象選択部14は、グループ20毎にサーバ評価値を算出することになる。
インストール対象選択部14は、OSのインストールの依頼をインストール処理部15又はコピーVA管理部17へ送信後、情報処理システム100に未インストールサーバが存在するか否かを判定する。インストール対象選択部14は、OSのインストール先として選択したサーバ2の情報を保持するので、未インストールサーバであるサーバ2を特定することができる。そして、未インストールサーバが存在しない場合、インストール対象選択部14は、その時点で実行中のOSのインストールを最後として、OSのインストール処理を終了する。
これに対して、未インストールサーバが残存する場合、インストール対象選択部14は、インストール対象のグループ20の選択をグループ選択部13に指示して、OSのインストール処理をインストール管理装置1に繰り返させる。このインストール対象選択部14が、「装置選択部」の一例にあたる。
インストール処理部15は、OSをインストールするサーバ2として選択されたサーバ2の情報の入力をインストール対象選択部14から受ける。そして、インストール処理部15は、選択されたサーバ2のIPアドレスなどをサーバ情報111から取得する。さらに、インストール処理部15は、選択されたサーバ2にインストールするOSの情報及び定義ファイルをプロファイル情報112から取得する。そして、インストール処理部15は、取得したIPアドレスを有するサーバ2に対して格納部11に格納されたOSイメージ及び定義ファイルを用いてOSのインストールを実行する。
次に、インストール処理部15は、OSのインストール対象のグループ20のグループ評価値をグループ選択部13から取得する。そして、インストール処理部15は、取得したグループ評価値が1より大きいか否かを判定する。インストール処理部15は、グループ評価値が1より大きい場合、OSをインストールしたサーバ2へのOSのインストール用のバーチャルアプライアンスのコピーをインストール装置生成部16に指示する。
インストール装置生成部16は、OSのインストール用のバーチャルアプライアンスのコピーの指示をインストール処理部15から受ける。そして、インストール装置生成部16は、OSのインストール用のバーチャルアプライアンスをサーバ2にコピーする。このインストール装置生成部16が、「複製生成部」の一例にあたる。
ここで、図8を参照して、OSのインストール用のバーチャルアプライアンスのコピー処理の詳細について説明する。図8は、バーチャルアプライアンスのコピー処理のシーケンス図である。
インストール管理装置1のインストール装置生成部16は、クローン機能を用いてインストール処理部15のOSをインストールする機能を含むOSのインストール用のバーチャルアプライアンスのコピーを作成する(ステップS1)。
次に、インストール装置生成部16は、エクスポート機能を用いて、作成したOSのインストール用のバーチャルアプライアンスのコピーをOSがインストールされたサーバ2へ出力する(ステップS2)。
次に、サーバ2は、インポート機能を用いてOSのインストール用のバーチャルアプライアンスをハイパーバイザーに取り込む(ステップS3)。
その後、サーバ2は、インポートの完了通知をインストール管理装置1へ出力する(ステップS4)。
なお、サーバ2にインストールされたOSの種類によってはハイパーバイザーが存在しない場合がある。その場合、インストール装置生成部16は、ステップS3のサーバ2におけるOSのインストール用のバーチャルアプライアンスのインポートの前に、ハイパーバイザーをサーバ2にインストールする。
図9は、サーバの選択からインストール機能保持サーバの生成までの概略を説明するための図である。図9では、情報処理システム100に存在する全ての未インストールサーバのサーバ評価値を算出した後に、選択されたグループ20のサーバ2のサーバ評価値を抽出する方法を採用した場合を表した。また、ここでは、グループ21~23が存在し、グループ選択部13によりグループ22が選択された場合で説明する。
インストール対象選択部14は、情報処理システム100に存在する全ての未インストールサーバのサーバ評価値を算出する。これにより、インストール対象選択部14は、テーブル44に示す情報を取得する。その後、インストール対象選択部14は、選択されたグループ22のサーバ2を抽出することで、テーブル45に示す情報を取得する。そして、インストール対象選択部14は、サーバ評価値が最も大きいサーバ2を選択する。ここでは、IPアドレスが192.168.8.120のサーバ2が選択されたものとする。そして、インストール対象選択部14は、選択したサーバ2の情報としてIPアドレスをインストール処理部15に通知する。
インストール処理部15は、図9の紙面に向かって下段の図における矢印51に示すように、サーバ評価値が最も大きいIPアドレスが192.168.8.120のサーバ2にOSをインストールする。
グループ22のグループ評価値が1より大きい場合、インストール装置生成部16は、IPアドレスが192.168.8.120のサーバ2にOSのインストール用のバーチャルアプライアンスをコピーしてインストール機能保持サーバ3を生成する。
図2に戻って説明を続ける。コピーVA管理部17は、OSのインストール用のバーチャルアプライアンスがコピーされインストール機能保持サーバ3となったサーバ2からインポートの完了通知の入力を受ける。そして、コピーVA管理部17は、OSをインストールするサーバ2の選択をインストール対象選択部14に依頼する。その後、コピーVA管理部17は、インストール対象のグループ20のうちのOSのインストールの候補のうちのサーバ評価値が最小のサーバ2の情報の入力をインストール対象選択部14から受ける。
次に、コピーVA管理部17は、OSをインストールするサーバ2の情報を格納部11に格納されたサーバ情報111から取得する。そして、コピーVA管理部17は、取得したサーバ2の情報をインストール機能保持サーバ3に登録する。
次に、コピーVA管理部17は、インストール機能保持サーバ3にインストールさせるOSのパラメータを記述した定義ファイルを格納部11に格納されたプロファイル情報112から取得する。そして、コピーVA管理部17は、定義ファイルをインストール機能保持サーバ3に送信する。
次に、コピーVA管理部17は、インストール機能保持サーバ3にインストールさせるOSのイメージファイルを格納部11に格納されたOSイメージ113から取得する。そして、コピーVA管理部17は、取得したOSのイメージファイルをインストール機能保持サーバ3へインポートする。ただし、既に対象とするインストール機能保持サーバ3が同様のOSのインストールを行っている場合、コピーVA管理部17は、このインポート処理を省略できる。
その後、コピーVA管理部17は、登録した定義ファイルを使用したOSのインストールをインストール機能保持サーバ3に依頼する。ここで、図10を参照して、インストール機能保持サーバ3に対するOSのインストールの依頼の流れの概要を説明する。図10は、インストール機能保持サーバに対するOSのインストールの依頼の流れの概要を説明するための図である。ここでは、OSをインストールするサーバ2が属するグループ20がグループ22である場合で説明する。
インストール管理装置1のインストール対象選択部14は、テーブル43に示すグループ22に属する未インストールサーバのそれぞれのサーバ評価値を取得する。そして、インストール対象選択部14は、サーバ評価値が最小のサーバ2としてIPアドレスが192.168.8.224のサーバ2を選択する。そして、インストール対象選択部14は、OSをインストールするサーバ2の情報としてIPアドレスが192.168.8.224をコピーVA管理部17に通知する。
インストール管理装置1のコピーVA管理部17は、矢印52に示すように、インストール対象選択部14により選択されたIPアドレスを有するサーバ2へのOSのインストールをインストール機能保持サーバ3に指示する。
インストール機能保持サーバ3は、矢印53に示すように、インストール管理装置1から指定されたIPアドレスが192.168.8.224のサーバ2にOSをインストールする。
図2に戻って説明を続ける。コピーVA管理部17は、インストール機能保持サーバ3による他のサーバ2へのOSのインストールが完了すると、OSのインストール完了の通知をインストール機能保持サーバ3から受ける。コピーVA管理部17は、インストール処理部15によりOSのインストールが行われたサーバ2の情報及びインストール機能保持サーバ3にOSのインストールを行わせたサーバ2の情報を保持する。コピーVA管理部17は、OSのインストール完了の通知の送信元のインストール機能保持サーバ3が属するグループ20に未インストールサーバが存在するか否かを判定する。
未インストールサーバが存在する場合、コピーVA管理部17は、OSのインストール処理を実行していないインストール機能保持サーバ3が存在するか否かを判定する。OSのインストール処理を実行していないインストール機能保持サーバ3が存在する場合、コピーVA管理部17は、インストール対象選択部14にサーバ2の選択を行わせる。その後、コピーVA管理部17は、OSのインストール完了の通知の送信元のインストール機能保持サーバ3に対して、選択されたサーバ2へのOSのインストールを再度依頼する。また、OSのインストール処理を実行していないインストール機能保持サーバ3が存在しなければ、コピーVA管理部17は、インストール機能保持サーバ3からのOSのインストールの完了通知を待ち、OSのインストールを再度依頼する。
これに対して、未インストールサーバが存在しない場合、コピーVA管理部17は、バーチャルアプライアンスの削除をOSのインストール完了の通知の送信元のインストール機能保持サーバ3に通知する。
以上に説明したコピーVA管理部17が、「インストール制御部」の一例にあたる。そして、コピーVA管理部17がインストール機能保持サーバ3にOSのインストールを依頼した未インストールサーバが、「第2情報処理装置」の一例にあたる。
次に、図11を参照して、OSのインストール用のバーチャルアプライアンスの削除処理の詳細について説明する。図11は、バーチャルアプライアンスの削除処理のシーケンス図である。
インストール管理装置1のコピーVA管理部17は、OSのインストール用のバーチャルアプライアンスのアンインストールをインストール機能保持サーバ3に指示する(ステップS5)。
次に、インストール機能保持サーバ3は、インストール管理装置1からの削除指示を受けて、自装置が保持する、OSのインストール用のバーチャルアプライアンスをアンインストールする(ステップS6)。具体的には、OSのインストール用のバーチャルアプラインアンスのコピーの作成時に、そのコピーの中に削除用のスクリプトが埋め込まれる。そして、インストール機能保持サーバ3は、削除指示を受けた場合に削除用のスクリプトを実行することでバーチャルアプライアンスの削除を実行する。
なお、インストール機能保持サーバ3には、OSのインストール時にハイパーバイザーが存在しない場合がある。そのようなインストール機能保持サーバ3に対しては、コピーVA管理部17は、ステップS6のインストール機能保持サーバ3におけるOSのインストール用のバーチャルアプライアンスのアンインストールの後に、ハイパーバイザーをアンインストールさせる。
図12は、インストール機能保持サーバのブロック図である。インストール機能保持サーバ3は、格納部31、受信部32、インストール処理部33及びコピーVA削除処理部34を有する。インストール管理装置1からインポートされたOSのインストール用のバーチャルアプライアンスのコピーによって受信部32、インストール処理部33及びコピーVA削除処理部34の機能が提供される。
受信部32は、OSをインストールするサーバ2の情報をインストール管理装置1から受信する。そして、受信部32は、OSをインストールするサーバ2の情報をサーバ情報311として格納部31に格納する。また、受信部32は、OSのインストールに用いる定義ファイルをインストール管理装置1から受信する。そして、受信部32は、受信した定義ファイルをプロファイル情報312として格納部11に格納する。さらに、受信部32は、インストールするOSのイメージファイルをOSイメージ313として格納部31に格納する。
その後、受信部32は、登録した定義ファイルを使用したOSのインストールの依頼をインストール管理装置1から受信する。そして、受信部32は、OSのインストールをインストール処理部33に指示する。
また、受信部32は、OSのインストール用のバーチャルアプライアンスの削除指示をインストール管理装置1から受信する。そして、受信部32は、OSのインストール用のバーチャルアプライアンスの削除をコピーVA削除処理部34に指示する。
インストール処理部33は、OSのインストールの指示を受信部32から受ける。そして、インストール処理部33は、OSイメージ313を格納部31から取得し、プロファイル情報312に登録された定義ファイルにしたがい、サーバ情報311に登録されたサーバ2に対してOSのインストールを行う。その後、OSのインストールが完了すると、インストール処理部33は、OSのインストールの完了通知をインストール管理装置1に送信する。
コピーVA削除処理部34は、OSのインストール用のバーチャルアプライアンスの削除の指示を受信部32から受ける。そして、コピーVA削除処理部34は、OSのインストール用のバーチャルアプライアンスに埋め込まれた削除用のスクリプトを実行し、OSのインストール用のバーチャルアプライアンスを削除する。
次に、図13を参照して、本実施例に係るインストール管理装置1によるOSのインストール処理の全体的な流れについて説明する。図13は、実施例に係るインストール管理装置によるOSのインストール処理のフローチャートである。
グループ作成部12は、サーバ情報111からOSのインストール対象であるサーバ2のそれぞれのIPアドレスを取得する。そして、グループ作成部12は、各サーバ2のサブネットを判定して、サブネット毎に各サーバ2をグルーピングして複数のグループ20を作成する(ステップS101)。その後、グループ作成部12は、作成したグループ20の情報をグループ選択部13へ出力する。
グループ選択部13は、各グループ20の情報の入力をグループ作成部12から受ける。そして、グループ選択部13は、グループ選択処理を実行してインストール対象のグループを選択する(ステップS102)。その後、グループ選択部13は、選択したインストール対象のグループ20の情報をインストール対象選択部14へ出力する。また、グループ選択部13は、グループ選択処理で求めたインストール対象のグループ20のグループ評価値をインストール対象選択部14及びインストール処理部15へ出力する。
インストール対象選択部14は、インストール対象のグループ20の情報の入力をグループ選択部13から受ける。そして、インストール対象選択部14は、インストール対象サーバ選択処理を実行して、インストール対象のグループ20に属するサーバ2の中からOSをインストールするサーバ2を選択する(ステップS103)。その後、インストール対象選択部14は、選択したサーバ2の情報をOSのインストールの依頼とともにインストール処理部15へ出力する。
インストール処理部15は、OSのインストールの依頼とともにOSをインストールするサーバ2の情報の入力をインストール対象選択部14から受ける。そして、インストール処理部15は、プロファイル情報112に登録された定義ファイルやOSイメージ113を用いて選択されたサーバ2にOSをインストールする(ステップS104)。
次に、インストール処理部15は、グループ選択部13から取得したインストール対象のグループ20のグループ評価値が1より大きいか否かにより、インストール機能保持サーバ3を作成するか否かを判定する(ステップS105)。
グループ評価値が1未満でありインストール機能保持サーバ3を作成しない場合(ステップS105:否定)、OSのインストール処理はステップS108へ進む。
これに対して、グループ評価値が1より大きくインストール機能保持サーバ3を作成する場合(ステップS105:肯定)、インストール処理部15は、OSのインストール用のバーチャルアプライアンスのコピーの作成をインストール装置生成部16に依頼する。インストール装置生成部16は、OSのインストール用のバーチャルアプライアンスのコピーの作成の依頼をインストール処理部15から受ける。そして、インストール装置生成部16は、OSのインストール用のバーチャルアプライアンスのコピーを作成してサーバ2へインポートしてOSのインストール用のバーチャルアプライアンスをサーバ2へコピーする(ステップS106)。これにより、サーバ2は、インストール機能保持サーバ3となる。
その後、コピーVA管理部17は、OSのインストール用のバーチャルアプライアンスのコピーの完了通知をインストール機能保持サーバ3から受ける。そして、コピーVA管理部17は、OSインストール実行依頼処理を実行する(ステップS107)。
インストール対象選択部14は、情報処理システム100に未インストールサーバが存在するか否かを判定する(ステップS108)。情報処理システム100に未インストールサーバが残存する場合(ステップS108:肯定)、OSのインストール処理は、ステップS102へ戻る。
これに対して、情報処理システム100に未インストールサーバが存在しない場合(ステップS108:否定)、インストール対象選択部14は、実行中のOSのインストールを最後にOSのインストール処理を終了する。
次に、図14を参照して、グループ選択処理の流れについて説明する。図14は、グループ選択処理のフローチャートである。図14のフローは、図13におけるステップS102で実行されるグループ選択処理の一例にあたる。
グループ選択部13は、グループ20に番号i(1≦i≦m)を割り当てる。ここで、mはグループ20の総数である。そして、グループ選択部13は、iを初期化して1に設定する(ステップS201)。
次に、グループ選択部13は、番号iのグループ20から未インストールサーバ数であるAi及びインストール機能保持サーバ3の合計数であるBiを取得する(ステップS202)。
次に、グループ選択部13は、インストール機能保持サーバ3の合計数とグループ20の総数の逆数とを加算して値で未インストールサーバ数を除算することでグループ評価値であるHiを算出する(ステップS203)。すなわち、グループ選択部13は、Hi=Ai/(Bi+1/m)という式を用いてグループ評価値を算出する。
次に、グループ選択部13は、iがグループ20の総数であるm未満か否かを判定する(ステップS204)。
iがグループ20の総数であるm未満の場合(ステップS204:肯定)、グループ選択部13は、iの値を1つインクリメントする(ステップS205)。その後、グループ選択処理は、ステップS202に戻る。
これに対して、iがグループ20の総数であるm以上の場合(ステップS204:否定)、グループ選択部13は、グループ評価値が最大のグループ20をインストール対象のグループ20として選択する(ステップS206)。
次に、図15を参照して、OSインストール実行依頼処理の流れについて説明する。図15は、OSインストール実行依頼処理のフローチャートである。図15のフローは、図13のステップS107におけるOSインストール実行依頼処理の一例にあたる。
コピーVA管理部17は、インストール対象選択部14にOSをインストールするサーバ2の選択を依頼する。インストール対象選択部14は、依頼を受けて、インストール対象サーバ選択処理を実行する(ステップS301)。その後、インストール対象選択部14は、OSをインストールするサーバ2として選択したサーバ2の情報をコピーVA管理部17へ出力する。
コピーVA管理部17は、選択されたサーバ2の情報をインストール対象選択部14から受ける。そして、コピーVA管理部17は、選択されたサーバ2をインストール機能保持サーバ3に登録する(ステップS302)。
次に、コピーVA管理部17は、選択されたサーバ2にインストールするOSのパラメータを記述した定義ファイルをプロファイル情報112から取得する。そして、コピーVA管理部17は、定義ファイルをインストール機能保持サーバ3へ送信する(ステップS303)。
次に、コピーVA管理部17は、選択されたサーバ2にインストールするOSのイメージファイルをOSイメージ113から取得する。そして、コピーVA管理部17は、取得したOSのイメージファイルをエクスポートしてインストール機能保持サーバ3に送信してインポートさせる(ステップS304)。
その後、コピーVA管理部17は、定義ファイルを使用したOSのインストールの実行をインストール機能保持サーバ3に依頼する(ステップS305)。
次に、図16を参照して、インストール対象サーバ選択処理の流れを説明する。図16は、インストール対象選択処理のフローチャートである。図16のフローは、図13のステップS103におけるインストール対象サーバ選択処理の一例にあたる。
インストール対象選択部14は、情報処理システム100に属する全てのサーバ2に対するサーバ評価値算出処理を実行する(ステップS401)。
次に、インストール対象選択部14は、OSのインストールがインストール管理装置1から実行されるか否かを判定する(ステップS402)。
インストール管理装置1がOSのインストールを実行する場合(ステップS402:肯定)、インストール対象選択部14は、インストール対象のグループ20のグループ評価値が1より大きいか否かを判定する(ステップS403)。
グループ評価値が1以下の場合(ステップS403:否定)、インストール対象選択部14は、インストール対象のグループ20に属する全ての未インストールサーバをOSのインストールの候補とする。そして、インストール対象サーバ選択処理は、ステップS406へ進む。
一方、グループ評価値が1より大きい場合(ステップS403:肯定)、インストール対象選択部14は、インストール対象のグループ20に属するサーバ2のうちOSインストール用のバーチャルアプライアンスが稼働可能な未インストールサーバを抽出する。そして、インストール対象選択部14は、抽出したサーバ2をOSのインストールの候補とする(ステップS404)。
その後、インストール対象選択部14は、OSのインストールの候補のサーバ2のうちサーバ評価値が最大のサーバを、OSをインストールするサーバ2として選択する(ステップS405)。
一方、インストール機能保持サーバ3にOSのインストールを実行させる場合(ステップS402:否定)、インストール対象サーバ選択処理は、ステップS406へ進む。
インストール対象選択部14は、インストール対象のグループ20に属する全ての未インストールサーバをOSのインストールの候補とする。そして、インストール対象選択部14は、OSのインストールの候補のサーバ2のうちサーバの評価値が最小のサーバを、OSをインストールするサーバ2として選択する(ステップS406)。
次に、図17を参照して、サーバ評価値算出処理の流れを説明する。図17は、サーバ評価値算出処理のフローチャートである。図17のフローは、図16のステップS401におけるサーバ評価値算出処理の一例にあたる。
インストール対象選択部14は、未インストールサーバの総数を取得する。ここでは、未インストールサーバの総数をnとする。次に、インストール対象選択部14は、未インストールサーバに番号j(1≦j≦n)を割り当てる。そして、インストール対象選択部14は、jを初期化して1に設定する(ステップS501)。
インストール対象選択部14は、j番目のサーバ2及びインストール予定のOSの評価指標情報を取得する(ステップS502)。ここでは、インストール対象選択部14は、評価指標情報として、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類を取得する。
次に、インストール対象選択部14は、取得した各評価指標情報に重みづけをしてサーバ評価値を算出する。例えば、インストール対象選択部14は、Uj=Wj×4+Xj×3+Yj×2+Zj×1という式を用いてj番目のサーバ2のサーバ評価値であるUjを算出する(ステップS503)。ここで、Wjは、j番目のサーバ2にインストールするOSのパッケージサイズを数値化した値である。また、Xjは、j番目のサーバ2にインストールするOSのバージョンを数値化した値である。また、Yjは、j番目のサーバ2のフォーマット方式を数値化した値である。また、Zjは、j番目のサーバ2の記憶媒体の種類を数値化した値である。
次に、インストール対象選択部14は、jがn未満か否かを判定する(ステップS504)。jがn未満の場合(ステップS504:肯定)、インストール対象選択部14は、jを1つインクリメントする(ステップS505)。その後、サーバ評価値算出処理は、ステップS502に戻る。
これに対して、jがn以上の場合(ステップS504:否定)、インストール対象選択部14は、算出結果である各未インストールサーバのサーバ評価値を各未インストールサーバの識別情報に対応付けて記憶する(ステップS506)。
次に、図18を参照して、本実施例に係るインストール機能保持サーバ3によるOSインストール処理の流れを説明する。図18は、実施例に係るインストール機能保持サーバによるOSインストール処理のフローチャートである。
受信部32は、OSのインストールの指示をインストール管理装置1から受信する(ステップS601)。この時、受信部32は、OSをインストールするサーバ2の情報、定義ファイル及びOSのイメージファイルを受信し、格納部31にサーバ情報311、プロファイル情報312及びOSイメージ313としてそれぞれを格納する。
次に、受信部32は、OSのインストールをインストール処理部33に依頼する。インストール処理部33は、依頼を受けて、サーバ情報311で指定されるサーバ2に、プロファイル情報312を使用してOSイメージ313に格納されたOSをインストールする(ステップS602)。
その後、インストール処理部33は、OSのインストールの完了通知をインストール管理装置1へ送信する(ステップS603)。
次に、受信部32は、OSのインストール用のバーチャルアプライアンスの削除依頼を受信したか否かを判定する(ステップS604)。OSのインストール用のバーチャルアプライアンスの削除依頼を受信していない場合(ステップS604:否定)、インストール機能保持サーバ3によるOSインストール処理は、ステップS601に戻る。
これに対して、OSのインストール用のバーチャルアプライアンスの削除依頼を受信した場合(ステップS604:肯定)、受信部32は、OSのインストール用のバーチャルアプライアンスの削除をコピーVA削除処理部34に依頼する。コピーVA削除処理部34は、受信部32から削除依頼を受けると、バーチャルアプライアンスに埋め込まれた削除を行うスクリプトを実行して、OSのインストール用のバーチャルアプライアンスをインストール機能保持サーバ3から削除する(ステップS605)。
次に、本実施例に係るインストール管理装置1によるOSのインストール処理の具体例について説明する。ここでは、以下の環境でのインストール管理装置1によるOSのインストール処理について説明する。サブネットは、192.168.2.0/24及び192.168.4.0/24の2つが存在する。192.168.2.0/24のサブネットにサーバ2が128台存在する。また、192.168.4.0/24のサブネットにサーバ2が64台存在する。また、ここでは、OSのインストール用のバーチャルアプライアンスによる多重処理は行われないという前提で説明する。
グループ作成部12は、サブネットが192.168.2.0/24であるサーバ2のグループ21とサブネットが192.168.4.0/24であるサーバ2のグループ22という2つのグループ20を作成する。この工程を第1工程と言う。
グループ選択部13は、各グループ20についてグループ評価値を算出する。グループ選択部13は、H1=128/(0+1/2)=256であるので、グループ21のグループ評価値であるH1を256と算出する。また、グループ選択部13は、H2=64(0+1/2)=128であるので、グループ22のグループ評価値であるH2を128と算出する。H1がH2により大きいので、グループ選択部13は、グループ21をインストール対象グループとして選択する。この工程を第2工程と言う。
次に、インストール対象選択部14は、各サーバ2について、OSのパッケージサイズ、OSのバージョン、フォーマット方式及び記憶媒体の種類のそれぞれを数値化した値を取得する。そして、インストール対象選択部14は、取得したそれぞれの値に重みづけをして各サーバ2のサーバ評価値を算出する。これにより、インストール対象選択部14は、図19に示す情報を取得する。図19は、インストール対象選択部が算出する値の一例を示す図である。インストール対象選択部14は、図19に示すIPアドレスに対応するサーバ2の中でサーバ評価値が最大である未インストールサーバを、OSをインストールするサーバ2として選択する。例えば、インストール対象選択部14は、最初の処理では、図19においてグループ21の中でサーバ評価値が最大であるIPアドレスが192.168.2.2のサーバ2を選択する。そして、インストール処理部15は、選択されたサーバ2にOSをインストールする。さらに、インストール対象のグループ20のグループ評価値が1より大きい場合、インストール装置生成部16は、OSをインストールしたサーバ2に対してOSのインストール用のバーチャルアプライアンスのコピーを実行する。これにより、インストール機能保持サーバ3が生成される。この工程を第3工程と言う。
次に、インストール対象選択部14は、図19に登録されたサーバ2のうちの未インストールサーバの中でサーバ評価値が最小のサーバ2をインストール機能保持サーバ3にOSのインストールを行わせるサーバ2として選択する。例えば、インストール対象選択部14は、最初の処理では、図19においてグループ21の中でサーバ評価値が最小であるIPアドレスが192.168.2.39のサーバ2を選択する。次に、コピーVA管理部17は、インストール機能保持サーバ3に対して、インストール対象選択部14により選択されたサーバ2へのOSのインストールを指示する。例えば、最初の処理では、コピーVA管理部17は、IPアドレスが192.168.2.39であるインストール機能保持サーバ3に対して、IPアドレスが192.168.2.39であるサーバ2に対するOSのインストールを指示する。この工程を第4工程と言う。
この第4工程の処理は、OSのインストール処理を行っていないインストール機能保持サーバ3が存在する場合、インストール管理装置1がどの処理段階であっても適示実行される。例えば、インストール管理装置1が第2工程の処理を行っている段階で、インストール機能保持サーバ3によるOSのインストールが完了すると、インストール管理装置1は、他の処理と並行してそのインストール機能保持サーバ3に対して第4工程の処理を行う。
以降、インストール管理装置1は第2~4工程を繰り返す。また、インストール機能保持サーバ3は、インストール管理装置1から指定されたサーバ2に対してOSのインストールを実行する。
以上の処理によるOSのインストール処理の結果が図20で表される結果にあたる。図20は、実施例に係るインストール管理装置によるOSのインストール処理の結果の一例を示す図である。図20の紙面に向かって左端の列は、インストール管理装置による第2~4工程の処理を1つのサイクルとしたときのサイクル数を表す。ここでは、OSのインストール用の1つのバーチャルアプライアンスが既にインストール予定のOSイメージを保持している場合、1サイクルで2台のサーバ2のOSのインストールを行える場合を想定した。OSイメージのインポートは、OSインストールと同等の時間を要する。したがって、OSのインストール用の1つのバーチャルアプライアンスが、インストール予定のOSイメージを保持していない状態からサーバ2に対してOSをインストールする場合、1サイクルで1台のサーバ2のOSのインストールを行える計算になる。
OSをインストールする1台の装置が1台ずつOSのインストールを行う従来技術では、具体例で示した環境では、全てのサーバ2へのOSのインストールを完了するまでにおよそ96サイクル(192(台)/2(台/サイクル))の時間がかかる。これに対して、本実施例に係るインストール管理装置1は、図20に示すように、20サイクルで全てのサーバ2に対するOSのインストールが完了する。このように、本実施例に係るインストール管理装置1を用いることで、インストール時間を削減することができる。また、ここでは、インストール機能保持サーバ3は、毎回OSのイメージファイルをインポートする場合で説明した。ただし、実際には、インストールするOSのイメージが既にインポート済みの場合、インストール機能保持サーバ3は、新たにOSのイメージファイルをインポートしなくてもよく、OSのインストールにかかる時間は実際にはより短くなる。
(ハードウェア構成)
次に、図21を参照して、インストール管理装置1及びインストール機能保持サーバ3のハードウェア構成について説明する。図21は、コンピュータのハードウェア構成図である。
インストール管理装置1及びサーバ2は、いずれも図21に示すコンピュータ10により実現可能である。コンピュータ10は、CPU91、メモリ92、ハードディスク93及びNIC(Network Interface Card)94を有する。CPU91は、バスを介して、メモリ92、ハードディスク93及びNIC94と接続される。
例えば、コンピュータ10によりインストール管理装置1を実現する場合、ハードディスク93は、格納部11の機能を実現する。また、ハードディスク93は、図1に例示した各部の機能を実現するプログラムを含む各種プログラムを格納する。ここで、図1に例示した各部とは、グループ作成部12、グループ選択部13、インストール対象選択部14、インストール処理部15、インストール装置生成部16及びコピーVA管理部17にあたる。また、NIC94は、サーバ2との通信のインタフェースとして動作する。
CPU91は、ハードディスク93から各種プログラムを読み出してメモリ92に展開して実行する。これにより、CPU91は、図1に例示した、グループ作成部12、グループ選択部13、インストール対象選択部14、インストール処理部15、インストール装置生成部16及びコピーVA管理部17の各機能を実現する。
また、例えば、コンピュータ10によりインストール機能保持サーバ3を実現する場合、ハードディスク93は、格納部31の機能を実現する。また、ハードディスク93は、図12に例示した、受信部32、コピーVA削除処理部34及びコピーVA削除処理部34の機能を実現するプログラムを含む各種プログラムを格納する。また、NIC94は、インストール管理装置1との通信のインタフェースとして動作する。
CPU91は、ハードディスク93から各種プログラムを読み出してメモリ92に展開して実行する。これにより、CPU91は、図12に例示した、受信部32、コピーVA削除処理部34及びコピーVA削除処理部34の機能を実現する。
以上に説明したように、本実施例に係るインストール管理装置は、OSをインストールするサーバの情報とインストールを行うOSの情報を用いてOSをインストールするサーバを決定する。そして、インストール管理装置は、自装置によるOSのインストールと並行してバーチャルアプライアンスによりインストール機能保持サーバを生成して、OSのインストールを行わせる。これにより、OSのインストールの実行の処理時間を短縮することができる。
また、インストール対象のサーバ2をグルーピングすることで、インストール機能保持サーバによるOSのインストールを効率的に行わせることができ、OSのインストールの実行の処理時間をより短縮することができる。