まず、本実施の形態における基本的な考え方を説明する。本実施の形態においては、図19の仮想マシンサーバの構成例のように、1台の仮想マシンサーバ上で複数の仮想マシンを稼動させ、この仮想マシンをいくつかのグループに分けて管理する。このグループは、例えば、ソフトウェアのテストにおける1つのテストケースに必要な仮想マシンの組み合わせである。また、グループは階層化が可能である。
以下、図面を参照し、本実施の形態について説明する。図1は本実施の形態における仮想マシン管理システムの構成を表している。仮想マシン管理サーバ100は仮想マシンを管理するコンピュータである。クライアント端末200は仮想マシンの管理者が仮想マシン管理サーバ100に指示を出す際に使用するパソコンである。
仮想マシンサーバ300a〜仮想マシンサーバ300cは仮想マシンを稼動させるためのコンピュータであり、各々の仮想マシンサーバ上では、例えば、図2に示すように、1個または複数個の仮想マシンが稼動する。また、仮想マシンサーバ300a〜仮想マシンサーバ300cはマスタイメージファイルを予め記憶領域に格納する。マスタイメージファイルは実体ファイルと構成ファイルとの対で構成されるファイルである。
以降では、仮想マシンのOSおよびアプリケーションプログラムがインストールされた記憶領域中のファイルやディレクトリ構造のコピーからなるデータをマスタイメージと呼ぶ。仮想マシンサーバ300a〜仮想マシンサーバ300cは、このマスタイメージを記憶領域中に実体ファイルとして格納する。構成ファイルは各々の仮想マシンが実マシンである仮想マシンサーバ上で動作するための、例えば、メモリ割当てやネットワーク構成などの情報にあたるパラメータ設定用のファイルである。1つの仮想マシンに対して、1つの実体ファイルと1つの構成ファイルの対が対応して存在する。
仮想マシン管理サーバ100において、通信制御部101はクライアント端末200および仮想マシンサーバ300a〜仮想マシンサーバ300cとデータの送受信を行う。マスタイメージ管理処理部102はマスタイメージファイルに関する処理における制御機能であり、詳細は後述する。グループ配備処理部103はグループの配備処理を行う際の制御機能であり、詳細は後述する。グループ管理処理部104はグループの管理処理を行う際の制御機能であり、詳細は後述する。
マスタイメージファイル管理DB(Data Base)105はマスタイメージファイルに関する情報の管理機能であり、記憶領域中の図15のマスタイメージファイル管理DBのテーブルに示す形式のデータを管理する。図15のマスタイメージファイル管理DBのテーブルは、マスタイメージの識別情報である「マスタイメージ」の「id(identifier)」と、「マスタイメージ」の「名称」と、マスタイメージファイルに含まれる仮想マシンの「OS種別」および「OSバージョン情報」と、マスタイメージファイルの「物理サイズ」と、実体ファイルの仮想マシン管理サーバ100における「格納場所」および「ファイル名称」と、構成ファイルの仮想マシン管理サーバ100における「構成ファイル格納場所」および「構成ファイル名称」と、マスタイメージファイルの登録元である仮想マシンサーバの「サーバ名称」と、マスタイメージファイルの登録元である仮想マシンサーバにおけるマスタイメージファイルの「ファイル格納場所」および「ファイル名称」と、マスタイメージファイルの仮想マシン管理サーバ100への「登録日時」とから構成される。
また、マスタイメージファイル管理DB105は図15のマスタイメージファイル管理DBのテーブルに示す形式のデータを、図3に示すテキストデータとして記憶領域に格納する。マスタイメージファイルサーバ106は仮想マシンサーバ300a〜仮想マシンサーバ300cから得られるマスタイメージファイルの管理機能である。
グループ管理DB107は記憶領域中の図15のグループ管理DBのテーブルに示す形式のデータの管理機能である。図15のグループ管理DBのテーブルは、グループの識別情報である「id」およびグループの「名称」と、グループが階層構造を持つ場合の親のグループの「id」である「グループID」と、グループに属する仮想マシンの識別情報である「利用仮想マシンid」と、グループに属するマスタイメージの識別情報であるマスタイメージIDと、実際に仮想マシンを動かす仮想マシンサーバの識別情報である「物理マシンID」と、仮想マシンサーバ上でのマスタイメージファイルの格納場所である「格納場所」と、実際に仮想マシンを動かす仮想マシン管理サーバのネットワークアドレスである「利用IP(Internet Protocol)アドレス」とからなる。また、グループ管理DB107は図15グループ管理DBのテーブルに示す形式のデータを、図3に示すテキストデータとして記憶領域に格納する。
以下、図を参照して本実施の形態における処理の流れを説明する。以降では仮想マシン管理システムを使用した仮想マシンのマスタイメージの登録処理と、仮想マシンのマスタイメージの変更処理と、仮想マシンのマスタイメージの削除処理と、仮想マシンのグループ登録処理と、仮想マシンのグループの変更処理と、仮想マシンのグループの削除処理と、仮想マシンのグループの複製処理と、仮想マシンのグループの配備処理と、仮想マシンのグループの撤去処理とに関して説明する。
<マスタイメージの登録処理>
図4はマスタイメージの登録処理の流れを表している。この処理は、仮想マシンの管理者が指定する仮想マシンに関して、仮想マシン管理サーバ100がマスタイメージファイルの格納を行うものである。
いま、仮想マシンの管理者はソフトウェアのテスト環境が構築された状態の仮想マシンサーバ300a〜c上の仮想マシンに関する情報を仮想マシン管理サーバ100に登録しようとしている。仮想マシンの管理者は仮想マシンサーバ300a〜仮想マシンサーバ300c上の仮想マシンが起動された状態にあることを確認し、クライアント端末200を使用して仮想マシン管理サーバ100に仮想マシンサーバ300a〜c上の仮想マシンに関する情報の登録処理開始を指示する(図4のステップS01)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からの指示を受信し、まず、各仮想マシンサーバ上のマスタイメージファイルについての情報の収集を試みる。このため、マスタイメージ管理処理部102は予め記憶領域に格納されている仮想マシンサーバ300a〜仮想マシンサーバ300cのネットワークアドレスを読み出し、各仮想マシンサーバにマスタイメージファイルが存在するか否かの問い合わせを送信する(図4のステップS02)。
仮想マシンサーバ300a〜仮想マシンサーバ300cはネットワーク経由で仮想マシン管理サーバ100からの問い合わせを受信し、自身においてマスタイメージファイルが存在しているか否かをチェックしてネットワーク経由で仮想マシン管理サーバ100へチェック結果を送信する。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由しては各仮想マシンサーバからデータを受信し、仮想マシンが存在している仮想マシンサーバのネットワークアドレスの配列からなるリスト変数データを生成し、記憶領域に書き込む(図4のステップS03)。ここでは、リスト変数データ中に仮想マシンサーバ300aが含まれているものとする。
次に、マスタイメージ管理処理部102は通信制御部101を経由してリスト変数データに含まれる仮想マシンサーバ300aへ、仮想マシンサーバ300aの管理するマスタイメージファイルに関する情報の取得依頼を送信する(図4のステップS04)。仮想マシンサーバ300aの管理するマスタイメージファイルには仮想マシン管理サーバ100に登録されていないが、仮想マシンサーバ300a上で稼動する仮想マシンに関するデータも含まれる。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100からの依頼を受け、記憶領域からマスタイメージの名称と、マスタイメージファイルのサイズと、OS種別と、OSバージョン情報と、マスタイメージファイルの格納場所と、マスタイメージファイルのファイル名称とを読み出し、更に、記憶領域から仮想マシンサーバ300a自身のサーバ名称を読み出し、これらに基づくデータである仮想マシンの各種情報を生成する。そして、仮想マシンサーバ300aは生成した仮想マシンの各種情報をネットワーク経由で仮想マシン管理サーバ100へ送信する(図4のステップS05)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由して各仮想マシンサーバ300aからデータを受信し、記憶領域へ書き込む。マスタイメージ管理処理部102は先ほど生成したリスト変数データに含まれる全ての仮想マシンサーバに対して同様の処理を行い(図4のステップS06が“No”)、これが完了すると(図4のステップS06が“Yes”)と、記憶領域から先ほど受信した仮想マシンの各種情報を読み出して通信制御部101経由でクライアント端末200へ送信し、登録対象のマスタイメージの指定を要求する。
クライアント端末200はネットワークを経由して仮想マシン管理サーバ100からデータを受信し(図4のステップS07)、自身の表示部に表示する。仮想マシンの管理者はクライアント端末200の表示を確認する。そして、仮想マシンの管理者はクライアント端末200に、登録対象のマスタイメージを指示する。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシンの管理者の指示に該当するマスタイメージの名称と、サーバ名称とを受信したデータから得て、このデータをネットワークを経由して仮想マシン管理サーバ100に送信する(図4のステップS08)。ここでは、仮想マシンの管理者は仮想マシンサーバ300a上のマスタイメージを指定したとする。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からデータを受信し、受信したサーバ名称から仮想マシンサーバ300aのマスタイメージが登録対象であることを検知し、仮想マシンの管理者の指示したマスタイメージの名称を通信制御部101経由で仮想マシンサーバ300aに送信し、マスタイメージファイルのマスタイメージファイルサーバ106への送信を要求する(図4のステップS09)。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100からデータを受信し、記憶領域から仮想マシンの管理者の指定したマスタイメージファイルを読み出し、ネットワークを経由してマスタイメージファイルサーバ106へ送信する(図4のステップS10)。
マスタイメージファイルサーバ106は通信制御部101を経由して仮想マシンサーバ300aからデータを受信し、記憶領域に受信したマスタイメージファイルに含まれる実体ファイル及び構成ファイルを書き込む。そして、マスタイメージファイルサーバ106は書き込んだ実体ファイルの格納場所と、構成ファイルの格納場所と、それぞれのファイル名と、登録日時とを通信制御部101を経由して仮想マシンサーバ300aへ送信し、格納の完了を通知する(図4のステップS11)。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100のマスタイメージファイルサーバ106からデータを受信し、記憶領域から先ほど送信したマスタイメージファイル中の仮想マシンのOS種別と、OSバージョン情報とを読み出す。さらに、仮想マシンサーバ300aは自身のサーバ名称を記憶領域から読み出す。そして、仮想マシンサーバ300aは仮想マシンの管理者の指定したマスタイメージファイルのサイズと、マスタイメージの名称と、受信した実体ファイルの格納場所と、構成ファイルの格納場所と、それぞれのファイル名と、登録日時と、読み出したOS種別と、OSバージョン情報と、自身のサーバ名称とをネットワークを経由して仮想マシン管理サーバ100へ送信する(図4のステップS12)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由して仮想マシンサーバ300aからデータを受信し、これをマスタイメージファイル管理DB105へ出力して書き込みを要求する(図4のステップS13)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からデータを入力し、マスタイメージに対応するid(identifier)を生成する。そして、マスタイメージファイル管理DB105は入力した仮想マシンサーバ300aのサーバ名称と、マスタイメージの名称と、マスタイメージファイルのサイズと、実体ファイル及び構成ファイルの格納場所と、ファイル名と、登録日時と、OSの識別情報と、OSバージョン情報と、生成したidとを記憶領域に格納する。
次に、マスタイメージファイル管理DB105はマスタイメージ管理処理部102へidを出力してマスタイメージの登録が完了したことを通知する(図4のステップS14)。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からデータを入力し、通信制御部101を経由してクライアント端末200へ入力したidを送信する。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、自身の表示部に受信したidを表示して仮想マシンの管理者にマスタイメージの登録処理の完了を通知する(図4のステップS15)。
<マスタイメージの変更処理>
図5はマスタイメージの変更処理の流れを表している。この処理は仮想マシン管理サーバ100に登録済みのマスタイメージのうち、仮想マシンの管理者が指定するものについて登録内容を更新する処理である。
いま、仮想マシンの管理者は仮想マシン管理サーバ100に登録されたマスタイメージの内容を最新の状態に更新しようとしている。そこで、仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にマスタイメージに関する情報の更新処理開始を指示する(図5のステップT01)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からの指示を受信し、予め格納されている仮想マシンサーバ300a〜仮想マシンサーバ300cのネットワークアドレスを記憶領域から読み出し、各仮想マシンサーバにマスタイメージファイルが存在するか否かの問い合わせを送信する(図5のステップT02)。
仮想マシンサーバ300a〜仮想マシンサーバ300cはネットワーク経由で仮想マシン管理サーバ100からの問い合わせを受信し、自身にマスタイメージファイルが存在するか否かをチェックし、ネットワーク経由でチェック結果を仮想マシン管理サーバ100へ送信する。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由しては各仮想マシンサーバからデータを受信し、マスタイメージファイルが存在している仮想マシンサーバのネットワークアドレスの配列からなるリスト変数データを生成し、記憶領域に書き込む(図5のステップT03)。
ここでは、リスト変数データ中に仮想マシンサーバ300aが含まれているものとする。次に、マスタイメージ管理処理部102は通信制御部101を経由してリスト変数データに含まれる仮想マシンサーバ300aへ、仮想マシンサーバ300aの管理するマスタイメージファイルに関する情報の取得依頼を送信する(図5のステップT04)。仮想マシンサーバ300aの管理するマスタイメージファイルには仮想マシン管理サーバ100に登録されていないが、仮想マシンサーバ300a上で稼動する仮想マシンに関するデータも含まれる。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100からの依頼を受信し、記憶領域からマスタイメージの名称と、マスタイメージファイルのサイズと、OS種別と、OSバージョンと、マスタイメージファイルの格納場所と、マスタイメージファイルのファイル名称とを読み出し、更に、記憶領域から仮想マシンサーバ300a自身のサーバ名称を読み出し、これらに基づくデータである。仮想マシンの各種情報を生成する。そして、仮想マシンサーバ300aは生成した仮想マシンの各種情報をネットワーク経由で仮想マシン管理サーバ100へ送信する(図5のステップT05)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由して各仮想マシンサーバ300aからデータを受信し、記憶領域へ書き込む。マスタイメージ管理処理部102は先ほど生成したリスト変数データに含まれる全ての仮想マシンサーバに対して同様の処理を行う(図5のステップT06)。
次に、マスタイメージ管理処理部102は、既に登録済みのマスタイメージに関する情報の取得を試みる。この登録済みのマスタイメージの提供には、図15のマスタイメージファイル管理DBのテーブルに示す形式のデータが必要である。そこで、マスタイメージ管理処理部102はマスタイメージファイル管理DB105にマスタイメージに関するデータの読み出し要求を出力する(図5のステップT07)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からの要求を受け、図15のマスタイメージファイル管理DBのテーブルに示す形式のデータを全て読み出し、マスタイメージ管理処理部102へ出力する。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からデータを入力し(図5のステップT08)、記憶領域から仮想マシンの各種情報を読み出し、仮想マシンの各種情報と、入力した登録済みのマスタイメージの情報とを通信制御部101を経由してクライアント端末200へ送信する。
クライアント端末200はネットワークを経由して仮想マシン管理サーバ100からデータを受信し(図5のステップT09)、自身の表示部に表示して登録済みのマスタイメージの情報と、各仮想マシンサーバ上の仮想マシンの各種情報中に含まれる仮想マシンやマスタイメージファイルの状態とを仮想マシンの管理者に示す。仮想マシンの管理者はクライアント端末200の表示を確認し、更新の必要なマスタイメージを判断してクライアント端末200に登録内容の更新対象のマスタイメージの名称を指示する。ここでは、仮想マシンの管理者は仮想マシンサーバ300aの管理するマスタイメージを指定したとする。クライアント端末200は仮想マシンの管理者の指示を受け、ネットワークを経由して仮想マシンの管理者の指定したマスタイメージの名称と、当該マスタイメージファイルの存在する仮想マシンサーバのサーバ名称とを仮想マシン管理サーバ100に送信する(図5のステップT10)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からデータを受信し、仮想マシンの管理者の指示したマスタイメージの名称を指定してマスタイメージファイルのマスタイメージファイルサーバ106への送信要求を、通信制御部101を経由して仮想マシンサーバ300aへ送信する(図5のステップT11)。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100からデータを受信し、記憶領域から仮想マシンの管理者の指定したマスタイメージファイルを読み出し、これをネットワークを経由してマスタイメージファイルサーバ106へ送信する(図5のステップT12)。
マスタイメージファイルサーバ106は通信制御部101を経由して仮想マシンサーバ300aからデータを受信し、受信したマスタイメージファイルに含まれる実体ファイルと、構成ファイルとを記憶領域に書き込む。そして、マスタイメージファイルサーバ106は書き込んだ実体ファイル及び構成ファイルの格納場所と、ファイル名と、登録日時とを通信制御部101を経由して仮想マシンサーバ300aへ送信し、格納の完了を通知する(図5のステップT13)。
仮想マシンサーバ300aはネットワーク経由でマスタイメージファイルサーバ106からデータを受信し、記憶領域から仮想マシンの管理者の指定したマスタイメージの名称と、当該マスタイメージファイルに含まれる仮想マシンのOS識別情報と、OSバージョン情報とを読み出す。そして、仮想マシンサーバ300aは仮想マシンの管理者の指定したマスタイメージファイルのサイズをチェックする。更に、仮想マシンサーバ300aは記憶領域から自身のサーバ名称を読み出す。
次に、仮想マシンサーバ300aはマスタイメージの名称と、マスタイメージファイルのサイズと、実体ファイルの格納場所と、実体ファイルのファイル名と、構成ファイルの格納場所と、構成ファイルのファイル名と、登録日時と、読み出したOSの識別情報と、OSバージョン情報と、自身のサーバ名称とをネットワークを経由して仮想マシン管理サーバ100へ送信する(図5のステップT14)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由して仮想マシンサーバ300aからデータを受信し、受信したデータをマスタイメージファイル管理DB105へ出力して書き込みを要求する(図5のステップT15)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からデータを入力し、入力したデータで仮想マシンの管理者の指定したマスタイメージに対応する記憶領域中のデータを更新する。
次に、マスタイメージファイル管理DB105はマスタイメージ管理処理部102へマスタイメージファイルの更新が完了したことを通知する(図5のステップT16)。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からの通知を受け、通信制御部101を経由してクライアント端末200へ更新完了の通知を送信する。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、自身の表示部に更新完了を表示して仮想マシンの管理者にマスタイメージの変更処理の完了を通知する(図5のステップT17)。
<マスタイメージの削除処理>
図6はマスタイメージの削除処理の流れを表している。この処理は登録済みのマスタイメージのうち、仮想マシンの管理者が指定するものについて仮想マシン管理サーバ100からの登録の削除を行うものである。
いま、仮想マシンの管理者は仮想マシン管理サーバ100に登録されたマスタイメージを削除しようとしている。そこで、仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にマスタイメージの登録削除の処理の開始を指示する(図6のステップU01)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からの指示を受け、既に登録されているマスタイメージの一覧情報を仮想マシンの管理者に提示するため、マスタイメージファイル管理DB105に登録済みのマスタイメージの一覧情報の取得要求を出力する(図6のステップU02)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からの要求を受け、記憶領域の図15のマスタイメージファイル管理DBのテーブルに示す形式のデータを全て読み出し、マスタイメージ管理処理部102へ出力する。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からデータを入力し(図6のステップU03)、これを記憶領域に格納し、また、入力したデータを通信制御部101を経由してクライアント端末200へ送信する。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者に登録削除対象のマスタイメージの指定を促す(図6のステップU04)。仮想マシンの管理者はクライアント端末200の表示を確認し、クライアント端末200に登録削除対象のマスタイメージを指示する。クライアント端末200は仮想マシンの管理者からの指示を受け、仮想マシンの管理者の指示したマスタイメージのidを受信したデータ中から得て、このidをネットワーク経由で仮想マシン管理サーバ100へ送信し、マスタイメージの登録の削除を要求する(図6のステップU05)。
仮想マシン管理サーバ100のマスタイメージ管理処理部102は通信制御部101を経由してクライアント端末200からデータを受信し、続いて、仮想マシンの管理者の指示したマスタイメージがグループに属しているか否かのチェックを試みる。仮想マシンの管理者の指示したマスタイメージがグループに属している場合には、当該マスタイメージは削除できないためである。このために、マスタイメージ管理処理部102は受信したidをグループ管理処理部104へ出力し、当該idが属しているグループが存在するか否かの確認を要求する(図6のステップU06)。
グループ管理処理部104はマスタイメージ管理処理部102からデータを入力し、グループ管理DB107へ入力したidを出力し、当該idが属しているグループのidの検索を要求する(図6のステップU07)。
グループ管理DB107はグループ管理処理部104からデータを入力し、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータの「マスタイメージID」と、入力したidとを比較する。ここで、グループ管理DB107は一致する「マスタイメージID」を検知した場合には当該「マスタイメージID」に対応する「グループ」の「id」を読み出す。そして、グループ管理DB107は、読み出した全ての「グループ」の「id」を含む検索結果通知データを生成し、これをグループ管理処理部104へ出力する(図6のステップU08)。また、グループ管理DB107は一致する「マスタイメージID」が見つからない場合には“該当データ無し”を表す検索結果通知データを生成し、これをグループ管理処理部104へ出力する。
グループ管理処理部104はグループ管理DB107からデータを入力し、受け取った検索結果通知データをマスタイメージ管理処理部102へ出力する(図6のステップU09)。マスタイメージ管理処理部102はグループ管理処理部104から検索結果通知データを入力し、検索結果通知データ中に「グループ」の「id」が存在するか否かをチェックする(図6のステップU10)。
この時、マスタイメージ管理処理部102は、検索結果通知データ中に「グループ」の「id」が存在することを検知した場合には(図6のステップU10が“あり”)、仮想マシンの管理者の指示したマスタイメージが既にグループに属するものであり、このままの状態では当該マスタイメージの登録を削除できないと判断し、通信制御部101を経由してクライアント端末200へエラーを送信する。クライアント端末200はネットワークを経由して仮想マシン管理サーバ100からエラーを受信し、自身の表示部にエラーメッセージを表示して仮想マシンの管理者に通知する。
また、マスタイメージ管理処理部102は、検索結果通知データが“該当データ無し”であることを検知した場合には(図6のステップU10が“なし”)、仮想マシンの管理者の指示したマスタイメージがグループに属していないため、マスタイメージの登録の削除が可能であると判断する。
次に、マスタイメージ管理処理部102は、先ほどマスタイメージファイル管理DB105から入力した図15に示すマスタイメージファイル管理DBのテーブルの形式のデータの中から仮想マシンの管理者の指示した仮想マシンに対応するデータを得て、マスタイメージファイルサーバ106へ出力して対応するデータの削除を要求する(図6のステップU11)。
マスタイメージファイルサーバ106はマスタイメージ管理処理部102からデータを入力する。マスタイメージファイルサーバ106はマスタイメージ管理処理部102から入力したデータ中の「登録先情報」の「格納場所」と、「登録先情報」の「ファイル名称」とを参照し、該当するファイルを記憶領域から削除する。
さらに、マスタイメージファイルサーバ106はマスタイメージ管理処理部102から入力したデータ中の「登録先情報」の「構成ファイル格納場所」と、「登録先情報」の「構成ファイル名称」とを参照し、該当するファイルを記憶領域から削除する。そして、マスタイメージファイルサーバ106はマスタイメージ管理処理部102へ削除完了通知を出力する(図6のステップU12)。
マスタイメージ管理処理部102はマスタイメージファイルサーバ106からの通知を受け、つづいて、マスタイメージファイル管理DB105が管理するマスタイメージの情報についても削除することを試みる。このために、マスタイメージ管理処理部102は先ほどクライアント端末200から受信したidをマスタイメージファイル管理DB105へ出力し、対応するデータの削除を要求する(図6のステップU13)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からデータを入力し、記憶領域中の図15に示すマスタイメージファイル管理DBのテーブルの形式のデータからマスタイメージ管理処理部102から入力したidに対応するデータを削除する。そして、マスタイメージファイル管理DB105はマスタイメージ管理処理部102に削除の完了を通知する(図6のステップU14)。
マスタイメージ管理処理部102はマスタイメージファイル管理DB105からの通知を受け、通信制御部101を経由してクライアント端末200へ削除完了を送信する(図6のステップU15)。クライアント端末200はネットワークを経由してマスタイメージ管理処理部102から削除完了を受信し、自身の表示部に表示して仮想マシンの管理者に通知する。
<グループ登録処理>
いま、仮想マシン管理サーバ100には図8に表すように仮想マシンAと、仮想マシンBとからなる論理グループ“Group1”が既に登録済みであり、また、“Group1”と、仮想マシンCとからなる論理グループ“Group2”が既に登録済みであるとする。ここで、仮想マシンの管理者は、さらに、“Group2”と、仮想マシンDとからなる論理グループ“Group3”を仮想マシン管理サーバ100に登録しようとしている。
図7はグループ登録処理の流れを表している。仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にグループの登録を指示する(図7のステップV01)。仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からの指示を受け、予め記憶領域に格納されている仮想マシンサーバ300a〜仮想マシンサーバ300cのネットワークアドレスを読み出し、各仮想マシンサーバに稼動中であるか否かの問い合わせを送信する(図7のステップV02)。
仮想マシンサーバ300a〜仮想マシンサーバ300cはネットワーク経由で仮想マシン管理サーバ100からの問い合わせを受信し、自身が稼動中であることの通知をネットワーク経由で仮想マシン管理サーバ100へ送信する(図7のステップV03)。
仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由しては各仮想マシンサーバからの通知を受信し、稼動中の仮想マシンサーバのネットワークアドレスの配列からなるリスト変数データを生成し、記憶領域に書き込む。ここでは、リスト変数データ中に仮想マシンサーバ300aが含まれているものとする。
次に、グループ管理処理部104は稼動中の仮想マシンサーバが管理しているマスタイメージファイルに関する情報の取得を試みる。グループ管理処理部104は通信制御部101を経由してリスト変数データに含まれる仮想マシンサーバ300aへマスタイメージファイルに関する情報の取得依頼を送信する(図7のステップV04)。仮想マシンサーバ300aの管理するマスタイメージファイルには仮想マシン管理サーバ100に登録されていないが、仮想マシンサーバ300a上で稼動する仮想マシンに関するデータも含まれる。
仮想マシンサーバ300aはネットワーク経由で仮想マシン管理サーバ100からの依頼を受け、記憶領域からマスタイメージの名称と、マスタイメージファイルのサイズと、マスタイメージファイルに含まれる仮想マシンのOS種別と、OSバージョンと、マスタイメージファイルの格納場所と、マスタイメージファイルの名称とを読み出し、更に、記憶領域から仮想マシンサーバ300a自身のサーバ名称を読み出し、これらに基づくデータである仮想マシンの各種情報を生成する。そして、仮想マシンサーバ300aは生成した仮想マシンの各種情報をネットワーク経由で仮想マシン管理サーバ100へ送信する(図7のステップV05)。
仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由して仮想マシンサーバ300aからデータを受信し、記憶領域へ書き込む。グループ管理処理部104は先ほど生成したリスト変数データに含まれる全ての仮想マシンサーバに対して同様の処理を繰り返す(図7のステップV06)。
次に、グループ管理処理部104は、ここまでの処理で現在稼動中の仮想マシンサーバからのマスタイメージファイルに関する情報を得た。グループ管理処理部104は更に、登録済みのマスタイメージに関する情報についても仮想マシンの管理者に提示するため、マスタイメージ管理処理部102に登録済みのマスタイメージの一覧情報の取得要求を出力する(図7のステップV07)。マスタイメージ管理処理部102はグループ管理処理部104からの要求を受け、マスタイメージファイル管理DB105に登録済みのマスタイメージの一覧情報の取得要求を出力する(図7のステップV08)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からの要求を受け、記憶領域中の図15に示すマスタイメージファイル管理DBのテーブルの形式のデータを全て読み出し、マスタイメージ管理処理部102へ出力する(図7のステップV09)。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からデータを入力し、これをグループ管理処理部104へ出力する(図7のステップV10)。グループ管理処理部104はマスタイメージ管理処理部102からデータを入力して記憶領域に書き込む。
次に、グループ管理処理部104はグループ管理DB107に登録済みの全てのグループに関するデータを要求する(図7のステップV11)。グループ管理DB107はグループ管理処理部104からの要求を受け、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ管理処理部104へ出力する(図7のステップV12)。
グループ管理処理部104はグループ管理DB107からデータを入力して記憶領域に書込み、先ほど仮想マシンサーバ300a〜仮想マシンサーバ300cから得たデータ、及び、マスタイメージに関するデータと併せて通信制御部101を経由してクライアント端末200へ送信する(図7のステップV13)。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、受信したデータを表示部に表示して仮想マシンの管理者にグループの指定を促す。仮想マシンの管理者はクライアント端末200の表示を参照して新たに登録するグループに属するマスタイメージ、または、マスタイメージと既存のグループの組合せを決める。
次に、仮想マシンの管理者は新しいグループを構成するマスタイメージの名称、または、マスタイメージの名称と既存のグループの名称との組合せと、新しいグループの名称とをクライアント端末200に指定し、新しいグループの登録を指示する。ここでは、仮想マシンの管理者は新しいグループ名称として“Group3”を、新しいグループを構成する既存のグループ名称として“Group2”を、また、マスタイメージ名称として“VM3”を指定したとする。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシン管理サーバ100に仮想マシンの管理者の指示を送信する(図7のステップV14)。仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からの指示を受け、記憶領域中のマスタイメージ管理処理部102から入力したマスタイメージに関するデータを読み出し、仮想マシンの管理者の指定したマスタイメージが登録済みか否かをチェックする(図7のステップV15)。
グループ管理処理部104は、仮想マシンの管理者の指定したマスタイメージが未登録である。場合には(図7のステップV15が“なし”)、前述のマスタイメージの登録処理と同様の処理を行い、マスタイメージを登録する(図7のステップV16、図7のステップV17)。また、グループ管理処理部104は、仮想マシンの管理者の指定したマスタイメージが登録済みである。場合には(図7のステップV15が“あり”)、図7のステップV16のマスタイメージの登録処理をスキップする。
次に、グループ管理処理部104は、仮想マシンの管理者が指定したグループ名称である“Group2”に対応するデータ、および、マスタイメージ名称である“VM3”に対応する「マスタイメージ」の「id」と、「登録元情報」の「サーバ名称」と、「ファイル格納場所」とを、先ほど入力した記憶領域中に登録済みの各々のデータから得る。
次に、グループ管理処理部104はクライアント端末200から受信したデータと併せて“Group2”に対応するデータ、および、“VM3”に対応する「マスタイメージ」の「id」と、「登録元情報」の「サーバ名称」と、「ファイル格納場所」とを、グループ管理DB107へ出力し、グループの登録を要求する(図7のステップV18)。
グループ管理DB107はグループ管理処理部104からデータを入力し、新しいグループに対応する「グループ」の「id」として“3”を生成する。また、グループ管理DB107は、仮想マシンの管理者が新しいグループ名称として“Group3”を指定し、既存グループの情報を継承するためにグループ名称“Group2”を指定し、そして、マスタイメージ名称として“VM3”を指定したことから、図16に示すグループ管理DBのテーブルのように、「グループ」の「id」が“3”であり、かつ「グループID」が“2”であるデータを追加する。
ここで、図16に示すグループ管理DBのテーブルには“Group1”に属するマスタイメージとして“VM1”が登録されている。これは、図8中の仮想マシンAおよび仮想マシンBが共に同じOSおよびアプリケーションプログラムがインストールされた仮想マシンであるため、マスタイメージとして“VM1”を共有していることにあたる。また、図16に示すグループ管理DBのテーブルには“Group2”に属するマスタイメージとして“VM1”と“VM2”とが登録されている。これは、図8中の仮想マシンAおよび仮想マシンBがマスタイメージとして“VM1”を共有して使用し、また、仮想マシンCはマスタイメージとして“VM2”を使用していることにあたる。
さらに、図16に示すグループ管理DBのテーブルには“Group3”に属するマスタイメージとして“VM1” と、“VM2”と、“VM3”とが登録されている。これは、図8中の仮想マシンAおよび仮想マシンBがマスタイメージとして“VM1”を共有して使用し、また、仮想マシンCはマスタイメージとして“VM2”を使用し、仮想マシンDはマスタイメージとして“VM3”を使用していることにあたる。このように、グループ管理DB107は、図16に示すグループ管理DBのテーブルが仮想マシンの管理者の意図した通りにグループの階層構造を表すよう、データを書き込む。
次に、グループ管理DB107はグループ管理処理部104へ先ほど生成した“3”を出力してグループの登録完了を通知する(図7のステップV19)。グループ管理処理部104はグループ管理DB107から“3”を入力し、この“3”を通信制御部101を経由してクライアント端末200へ送信する(図7のステップV20)。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、受信したデータを表示部に表示して仮想マシンの管理者にグループの登録完了を通知する。
<グループ変更処理>
図9はグループ変更処理の流れを表している。いま、仮想マシンの管理者は、登録済みのグループを変更しようとしている。そこで、仮想マシンの管理者は仮想マシンサーバ300a〜c上の仮想マシンが起動された状態にあることを確認し、クライアント端末200を使用して仮想マシン管理サーバ100にグループの変更を指示する(図9のステップW01)。
以降の処理において、図9のステップW10までは前述のグループ登録処理における図7のステップV10までと同様である。図9のステップW11において、グループ管理処理部104はグループ管理DB107に登録済みの全てのグループに関するデータを要求する。グループ管理DB107はグループ管理処理部104からの要求を受け、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ管理処理部104へ出力する(図9のステップW12)。
グループ管理処理部104はグループ管理DB107からデータを入力し、また、記憶領域から先ほど入力したマスタイメージに関するデータを読み出し、グループに関するデータと、マスタイメージに関するデータとを通信制御部101を経由してクライアント端末200へ送信する(図9のステップW13)。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、受信したデータを表示部に表示して仮想マシンの管理者に変更するグループの指示を促す。仮想マシンの管理者はクライアント端末200の表示を参照し、更新対象のグループ名を指定し、また、必要に応じて新規登録、変更、あるいは削除の対象となるマスタイメージの名称を指定し、クライアント端末200にグループの変更を指示する。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシン管理サーバ100に仮想マシンの管理者の指示内容を表すデータを送信する(図9のステップW14)。仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からのデータを受信し、記憶領域中のマスタイメージ管理処理部102から入力したマスタイメージに対応するデータを読み出し、仮想マシンの管理者の指定がマスタイメージの新規登録や変更、あるいは削除を伴うか否かをチェックする(図9のステップW15)。
グループ管理処理部104は、仮想マシンの管理者の指定がマスタイメージの新規登録や変更、あるいは削除を伴う場合には(図9のステップW15が“あり”)、前述のマスタイメージの登録処理、マスタイメージの変更処理、あるいは、マスタイメージの削除処理と同様の処理を行う(図9のステップW16、図9のステップW17)。また、グループ管理処理部104は、仮想マシンの管理者の指定がマスタイメージの新規登録や変更、あるいは削除を伴わない場合には(図9のステップW15が“なし”)、図9のステップW16の処理を行う必要が無いため、これをスキップする。
次に、グループ管理処理部104は、仮想マシンの管理者が指定したマスタイメージ名称に対応する「サーバ名称」と、「マスタイメージ」の「id」と、「登録先情報」の「ファイル格納場所」とを、先ほどマスタイメージ管理処理部102から入力したデータから得る。グループ管理処理部104はこれらのデータと、クライアント端末200から受信したデータとを併せてグループ管理DB107へ出力し(図9のステップW18)、仮想マシンの管理者の指定したグループの登録を要求する。
グループ管理DB107はグループ管理処理部104からデータを入力し、記憶領域中の図16に示すグループ管理DBのテーブルの形式のデータを仮想マシンの管理者の指示に基づいて変更する。
次に、グループ管理DB107はグループ管理処理部104へ“変更完了”を出力する(図9のステップW19)。グループ管理処理部104はグループ管理DB107から“変更完了”を入力し、これを通信制御部101を経由してクライアント端末200へ送信する(図9のステップW20)。クライアント端末200は仮想マシン管理サーバ100からデータを受信して表示部に表示し、仮想マシンの管理者にグループの変更完了を通知する。
<グループ削除処理>
図10はグループ削除処理の流れを表している。いま、仮想マシンの管理者は、登録済みのグループを削除しようとしている。仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にグループの削除を指示する(図10のステップX01)。
仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からの指示を受け、グループの削除に伴ってマスタイメージの削除も必要となることがありえることから、登録済みのマスタイメージに関する情報を仮想マシンの管理者に提示するため、マスタイメージ管理処理部102に登録済みのマスタイメージの一覧情報の取得要求を出力する(図10のステップX02)。マスタイメージ管理処理部102はグループ管理処理部104からの要求を受け、マスタイメージファイル管理DB105に登録済みのマスタイメージの一覧情報の取得要求を出力する(図10のステップX03)。
マスタイメージファイル管理DB105はマスタイメージ管理処理部102からの要求を受け、記憶領域中の図15に示すマスタイメージファイル管理DBのテーブルの形式のデータを全て読み出し、マスタイメージ管理処理部102へ出力する(図10のステップX04)。マスタイメージ管理処理部102はマスタイメージファイル管理DB105からデータを入力し、これをグループ管理処理部104へ出力する(図10のステップX05)。
グループ管理処理部104はマスタイメージ管理処理部102からデータを入力して記憶領域に書き込む。そして、グループ管理処理部104はグループに関する情報を得るため、グループ管理DB107に登録済みの全てのグループに関するデータを要求する(図10のステップX06)。グループ管理DB107はグループ管理処理部104からの要求を受け、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ管理処理部104へ出力する(図10のステップX07)。
グループ管理処理部104はグループ管理DB107からデータを入力して記憶領域に書き込み、また、記憶領域から先ほど入力したマスタイメージに関するデータを読み出し、グループに関するデータと、マスタイメージに関するデータとを通信制御部101を経由してクライアント端末200へ送信する(図10のステップX08)。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者に削除するグループの指示を促す。仮想マシンの管理者はクライアント端末200の表示を参照し、削除対象のグループ名を指定し、また、必要に応じて削除対象のマスタイメージの名称を指定し、クライアント端末200にグループの削除を指示する。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシン管理サーバ100に仮想マシンの管理者の指示内容を表すデータを送信する(図10のステップX09)。仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からのデータを受信し、仮想マシンの管理者の指定がマスタイメージの削除を伴うか否かをチェックする(図10のステップX10)。
グループ管理処理部104は、仮想マシンの管理者の指定がマスタイメージの削除を伴う場合には(図10のステップX10が“あり”)、前述のマスタイメージの削除処理と同様の処理を行う(図10のステップX11、図10のステップX12)。また、グループ管理処理部104は、仮想マシンの管理者の指示がマスタイメージの削除を伴わない場合には(図10のステップX10が “なし”)、図10のステップX110の処理の実行をスキップする。
次に、グループ管理処理部104は、クライアント端末200から受信したグループの名称に対応する「id」を記憶領域中のグループ管理DB107から得たグループに関する情報を参照して得る。そして、グループ管理処理部104はこの「id」をグループ管理DB107へ出力し、仮想マシンの管理者の指定したグループの削除を要求する(図10のステップX13)。
グループ管理DB107はグループ管理処理部104からデータを入力し、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータ中の仮想マシンの管理者の指定したグループのものの削除を行う。そして、グループ管理DB107はグループ管理処理部104へ“削除完了”を出力する(図10のステップX14)。グループ管理処理部104はグループ管理DB107から“削除完了”を入力し、これを通信制御部101を経由してクライアント端末200へ送信する(図10のステップX15)。クライアント端末200は仮想マシン管理サーバ100からデータを受信して表示部に表示し、仮想マシンの管理者にグループの削除完了を通知する。
<グループ複製処理>
図11はグループ複製処理の流れを表している。いま、仮想マシンの管理者は、登録済みのグループを複製して登録しようとしている。仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にグループの複製を指示する(図11のステップY01)。
仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200から仮想マシンの管理者の指示を受け、仮想マシンの管理者にグループに関する情報を提示するため、グループ管理DB107に登録済みの全てのグループに関するデータを要求する(図11のステップY02)。グループ管理DB107はグループ管理処理部104からの要求を受け、記憶領域から図15に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ管理処理部104へ出力する(図11のステップY03)。
グループ管理処理部104はグループ管理DB107からデータを入力し、グループに関するデータを通信制御部101を経由してクライアント端末200へ送信する(図11のステップY04)。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者に複製対象のグループの指示を促す。仮想マシンの管理者はクライアント端末200の表示を参照し、複製対象のグループ名称を指定してクライアント端末200にグループの複製を指示する。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシン管理サーバ100に仮想マシンの管理者の指定した複製対象のグループ名称を送信する(図11のステップY05)。仮想マシン管理サーバ100のグループ管理処理部104は通信制御部101を経由してクライアント端末200からのデータを受信し、受信したグループの名称に対応する「id」を記憶領域中のグループ管理DB107から得たグループに関する情報を参照して得る。そして、グループ管理処理部104はこの「id」をグループ管理DB107へ出力し、ループの複製を要求する(図11のステップY06)。
グループ管理DB107はグループ管理処理部104からデータを入力し、グループの「id」を新規に生成し、記憶領域中の図15に示すグループ管理DBのテーブルの形式のデータに対して、入力した「id」に対応するデータの「id」以外をコピーして追加し、この追加したデータに生成した「id」を書き込む。
グループ管理DB107はグループ管理処理部104へ“複製完了”を出力する(図11のステップY07)。グループ管理処理部104はグループ管理DB107から“複製完了”を入力し、これを通信制御部101を経由してクライアント端末200へ送信する(図11のステップY08)。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者にグループの複製完了を通知する。
<グループの配備処理>
グループの配備処理は仮想マシン管理サーバ100に登録済みのマスタイメージファイルを仮想マシンサーバに送信し、仮想マシンを稼動可能な状態にするものである。図12はグループの配備処理の流れを表している。いま、仮想マシンの管理者は、登録済みのグループを配備しようとしている。仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にグループの配備処理の開始を指示する(図12のステップZ01)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由してクライアント端末200から仮想マシンの管理者の指示を受け、仮想マシンの管理者にグループに関する情報を提示するため、グループ管理DB107に登録済みの全てのグループに関するデータを要求する(図12のステップZ02)。グループ管理DB107はグループ配備処理部103からの要求を受け、記憶領域中の図17に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ配備処理部103へ出力する(図12のステップZ03)。
グループ配備処理部103はグループ管理DB107からデータを入力して記憶領域に書き込む。そして、グループ配備処理部103は仮想マシンの管理者の参考のためにマスタイメージに関する情報の取得を行う。このために、グループ配備処理部103はマスタイメージファイル管理DB105に登録済みのマスタイメージの一覧情報の取得要求を出力する(図12のステップZ04)。
マスタイメージファイル管理DB105はグループ配備処理部103からの要求を受け、記憶領域の図17に示すマスタイメージファイル管理DBのテーブルの形式のデータを全て読み出し、グループ配備処理部103へ出力する(図12のステップZ05)。
グループ配備処理部103はマスタイメージファイル管理DB105からデータを入力してこれを記憶領域に書き込む。そして、グループ配備処理部103は先ほど入力したグループに関するデータと、マスタイメージに関するデータとを記憶領域から読み出し、通信制御部101を経由してクライアント端末200へ送信する(図12のステップZ06)。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者に配備対象のグループの指示を促す。ここでは、仮想マシンの管理者はクライアント端末200の表示を参照し、図18に示す“Group2”を配備対象のグループ名称としてクライアント端末200に指示したとする。
クライアント端末200は仮想マシンの管理者の指示を受け、受信したデータから“Group2”のidである。“2”を得て、これを仮想マシン管理サーバ100に送信する(図12のステップZ07)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由してクライアント端末200から“2”を受信する。続いて、グループ配備処理部103は、仮想マシンの管理者の指定したグループを配備可能な仮想マシンサーバのチェックを試みる。このために、グループ配備処理部103は、現在稼動中の仮想マシンサーバを確認する。グループ配備処理部103は予め記憶領域に格納されている仮想マシンサーバ300a〜仮想マシンサーバ300cのネットワークアドレスを読み出し、各仮想マシンサーバに各仮想マシンサーバが稼動中であるか否かの問い合わせを送信する(図12のステップZ08)。
仮想マシンサーバ300a〜仮想マシンサーバ300cはネットワーク経由で仮想マシン管理サーバ100からの問い合わせを受信し、自身が稼動中であることの通知をネットワーク経由で仮想マシン管理サーバ100へ送信する。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由して各仮想マシンサーバからの通知を受信し、稼動中の仮想マシンサーバのネットワークアドレスの配列からなるリスト変数データを生成し、記憶領域に書き込む(図12のステップZ09)。ここでは、リスト変数データ中に仮想マシンサーバ300aと、仮想マシンサーバ300bと、仮想マシンサーバ300cとが順に含まれているものとする。
次に、グループ配備処理部103は仮想マシンの管理者の指定したグループである。“Group2”に含まれるマスタイメージの各仮想マシンサーバへの割り当てを試みる。このために、グループ配備処理部103は記憶領域のリスト変数データから格納順に従って仮想マシンサーバ300aのネットワークアドレスを読み出し、このネットワークアドレスに基づいて通信制御部101を経由して記憶領域の空きの容量の問い合わせを送信する(図12のステップZ10)。
仮想マシンサーバ300aは仮想マシン管理サーバ100からの問い合わせを受信し、自身の記憶領域をチェックして空き容量を得て、仮想マシン管理サーバ100へ空き容量の通知を送信する(図12のステップZ11)。
仮想マシン管理サーバ100のグループ配備処理部103は仮想マシンサーバ300aから通信制御部101を経由してデータを受信し、記憶領域からマスタイメージに関する情報を読み出し、このマスタイメージに関する情報から“Group2”のマスタイメージの中に仮想マシンサーバ300aの記憶領域の空き容量に収まるものが含まれるか否かをチェックする(図12のステップZ12)。
ここで、グループ配備処理部103は、例えば、“Group2”のマスタイメージである。“VM1”が仮想マシンサーバ300aの記憶領域の空き容量に収まることを検知した場合には(図12のステップZ12が“Yes”)、記憶領域のマスタイメージに関する情報から“VM1”に対応する「登録元情報」の「ファイル格納場所」と、「ファイル名称」とを読み出し、これらを通信制御部101経由で仮想マシンサーバ300aへ送信してマスタイメージファイルの取得を要求する(図12のステップZ15)。
仮想マシンサーバ300aは仮想マシン管理サーバ100からデータを受信し、“VM1”に対応する「登録元情報」の「ファイル格納場所」と、「ファイル名称」とをマスタイメージファイルサーバ106へ送信し、“VM1”に対応する実体ファイルと、構成ファイルとを要求してこれらを得る(図12のステップZ16、ステップZ17)。
次に、仮想マシンサーバ300aはマスタイメージファイルサーバ106から得た実体ファイルと、構成ファイルとを記憶領域に格納する。これにより、仮想マシンサーバ300aは仮想マシンの起動が可能な状態となった。そして、仮想マシンサーバ300aは記憶領域から自身の物理マシンIDと、マスタファイルの格納場所と、IPアドレスとを読み出し、これらのデータと、配備完了の通知とを併せて仮想マシン管理サーバ100へ送信する(図12のステップZ18)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101経由で仮想マシンサーバ300aからデータを入力し、マスタイメージの配備が完了したことをグループ管理DB107の管理するデータにも反映するため、“Group2”のグループIDである。“2”と、“VM1”のマスタイメージIDである“1”とを記憶領域から読み出し、“2”と、“1”と、受信したデータとをグループ管理DB107へ出力する(図12のステップZ19)。
グループ管理DB107はグループ配備処理部103からデータを入力し、このデータに基づいて記憶領域の図17に示すグループ管理DBのテーブルの形式のデータ中の「グループID」が“2”であり、「マスタイメージID」が“1”である。データの「物理マシンID」と、「格納場所」と、「利用IPアドレス」とを設定する。そして、グループ管理DB107はグループ配備処理部103に更新完了を通知する(図12のステップZ20)。
グループ配備処理部103はグループ管理DB107から更新完了の通知を受け、“Group2”の全てのマスタイメージについて同様の処理が完了するまで図12のステップZ10以降の処理を繰り返す(図12のステップZ21)。
“Group2”のマスタイメージが全て配備されると(図12のステップZ20が“Yes”)、グループ配備処理部103は通信制御部101を経由してクライアント端末200へ配備完了を送信する。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、表示部に配備完了を表示して仮想マシンの管理者に通知する(図12のステップZ22)。
また、図12のステップZ12において、グループ配備処理部103は、“Group2”のマスタイメージが仮想マシンサーバ300aの記憶領域の空き容量に収まらないことを検知した場合には(図12のステップZ12が“No”)、記憶領域中のリスト変数データを参照して全ての仮想マシンについて記憶領域の空き容量をチェック済みか否かを確認する(図12のステップZ13)。
グループ配備処理部103は、仮想マシンサーバ300a以外の仮想マシンサーバに記憶領域の空き容量のチェックを行っていないことを検知した場合には(図12のステップZ13が“No”)、リスト変数データに登録された次の仮想マシンサーバに対して図12のステップZ10以降の処理を再度行う。
また、グループ配備処理部103は、全ての仮想マシンサーバに関して記憶領域の空き容量のチェックを行ったことを検知した場合には(図12のステップZ13が“Yes”)、“Group2”の配備が記憶領域の容量不足のために実行できないと判断し、通信制御部101を経由してクライアント端末200へエラーを送信する。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、表示部にエラーを表示して仮想マシンの管理者に通知する(図12のステップZ14)。
<グループの撤去処理>
図13はグループの撤去処理の流れを表している。この処理は配備されたグループのマスタイメージを仮想マシンサーバから削除するものである。いま、仮想マシンの管理者は、配備済みのグループを撤去しようとしている。仮想マシンの管理者はクライアント端末200を使用して仮想マシン管理サーバ100にグループの撤去を指示する(図13のステップA01)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由してクライアント端末200から仮想マシンの管理者の指示を受け、仮想マシンの管理者にグループに関する情報を提示するため、グループ管理DB107に登録済みの全てのグループに関するデータを要求する(図13のステップA02)。グループ管理DB107はグループ配備処理部103からの要求を受け、記憶領域の図16に示すグループ管理DBのテーブルの形式のデータを全て読み出し、グループ配備処理部103へ出力する(図13のステップA03)。
グループ配備処理部103はグループ管理DB107からデータを入力し、これを記憶領域に格納し、受信したグループに関するデータを通信制御部101経由でクライアント端末200へ送信する(図13のステップA04)。
クライアント端末200は仮想マシン管理サーバ100からデータを受信し、これを自身の表示部に表示して仮想マシンの管理者に撤去対象のグループの指示を促す。ここでは、仮想マシンの管理者はクライアント端末200の表示を参照し、“Group3”を指定してクライアント端末200にグループの撤去を指示したとする。
クライアント端末200は仮想マシンの管理者の指示を受け、仮想マシン管理サーバ100に仮想マシンの管理者の指示した“Group3”に対応するidである。“3”を受信したデータから得て、これを送信する(図13のステップA05)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由してクライアント端末200からのデータを受信し、記憶領域から先ほど入力したグループに関する情報を読み出し、受信した“3”に対応する「格納場所」と、「利用IPアドレス」とを全て読み出す。ここではグループ配備処理部103が読み出した「利用IPアドレス」に仮想マシンサーバ300aが該当するとする。グループ配備処理部103は「利用IPアドレス」に基づいて仮想マシンサーバ300aに対応する「格納場所」を通信制御部101経由で仮想マシンサーバ300aへ送信し、マスタイメージファイルの削除を要求する(図13のステップA06)。
仮想マシンサーバ300aは仮想マシン管理サーバ100からデータを受信し、受信した「格納場所」に基づき、実体ファイルと、構成ファイルとを記憶領域から削除する。そして、仮想マシンサーバ300aは仮想マシン管理サーバ100へ削除完了の通知を送信する(図13のステップA07)。
仮想マシン管理サーバ100のグループ配備処理部103は通信制御部101を経由して仮想マシンサーバ300aから削除完了の通知を受信し、続いて、グループ管理DB107の管理するデータにも仮想マシンサーバ300aにおけるマスタイメージの削除の完了を反映するため、“Group3”のグループIDである“3”と、仮想マシンサーバ300aの削除したマスタイメージである“VM1”に対応するマスタイメージID“1”とを記憶領域から読み出し、これらをグループ管理DB107へ出力する(図13のステップA08)。
グループ管理DB107はグループ配備処理部103からデータを入力し、このデータに基づいて図16に示すグループ管理DB107のテーブル中の「グループID」が“3”であり、「マスタイメージID」が“1”であるデータの「物理マシンID」と、「格納場所」と、「利用IPアドレス」とを、“−null−”に設定して削除されたことを表す。そして、グループ管理DB107はグループ配備処理部103に更新完了を通知する(図13のステップA09)。
グループ配備処理部103はグループ管理DB107から更新完了の通知を受け、他にも“Group3”のマスタイメージが存在するか否かをチェックする(図12のステップA10)。まだ削除されていない“Group3”のマスタイメージが存在する場合には(図13のステップA10が“No”)、グループ配備処理部103はマスタイメージが配備された他の仮想マシンサーバに対して図13のステップA06以降の処理を行う。
グループ配備処理部103は“Group3”のマスタイメージを全て削除すると(図13のステップA10が“Yes”)、通信制御部101を経由してクライアント端末200へ撤去完了を送信する(図13のステップA11)。クライアント端末200は仮想マシン管理サーバ100からデータを受信し、表示部に撤去完了を表示して仮想マシンの管理者に通知する。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、グループの登録や削除を行う際に、仮想マシンの管理者がグループに関するコメントを仮想マシン管理サーバ100へ入力し、記憶領域に書き込ませても良い。仮想マシンの管理者はグループごとにどのようなテストケースに対応するものであるのか、等の情報を残すことができる。