(57)【特許請求の範囲】
【請求項１】
複数の仮想マシンの資源を定義する複数の仮想マシン定義情報と、前記複数の仮想マシンに接続される仮想マシンクラスタの資源を定義する仮想マシンクラスタ定義情報と、同一のクラスタに所属する複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する接続定義情報とを記憶する記憶部と、
操作部から作成の指示を受け付けた場合に、前記仮想マシン定義情報および前記仮想マシンクラスタ定義情報を基にして、仮想マシンの資源および仮想マシンクラスタの資源を生成し、前記接続定義情報を基にして、同一のクラスタに所属する複数の仮想マシンの資源、および該複数の仮想マシンと接続関係にある前記仮想マシンクラスタの資源に、同一のクラスタ識別子を設定するインスタンス情報を生成する接続処理部と、
前記操作部から割り当ての指示を受け付けた場合に、前記生成されたインスタンス情報に基づいて、前記クラスタ識別子が同一となる仮想マシンの資源を、異なる仮想マシンサーバに配置する配置処理部とを有し、
前記仮想マシン定義情報は、前記仮想マシンのポートを定義した情報を含み、
前記仮想マシンクラスタ定義情報は、前記仮想マシンクラスタの資源に接続される仮想マシンの資源の数に応じたポートを定義した情報を含み、
前記接続定義情報は、前記仮想マシン定義情報のポートおよび前記仮想マシンクラスタ定義情報のポートを用いて複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する情報であり、
前記接続処理部は、前記接続定義情報に定義された前記仮想マシンクラスタの資源のポートと前記仮想マシンの資源のポートとの接続関係を基にして、前記仮想マシンクラスタの資源のポートと仮想マシンの資源のポートとを接続し、同一の仮想マシンクラスタに接続された仮想マシンの資源を、同一のクラスタに所属する仮想マシンの資源であると判定して前記インスタンス情報を生成することを特徴とする制御装置。
【請求項２】
接続処理部と、配置処理部とを有する制御装置で実行される制御方法であって、
前記接続処理部が、複数の仮想マシンの資源を定義する複数の仮想マシン定義情報と、前記複数の仮想マシンに接続される仮想マシンクラスタの資源を定義する仮想マシンクラスタ定義情報と、同一のクラスタに所属する複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する接続定義情報とを記憶する記憶部を参照し、
操作部から作成の指示を受け付けた場合に、前記仮想マシン定義情報および前記仮想マシンクラスタ定義情報を基にして、仮想マシンの資源および仮想マシンクラスタの資源を生成し、前記接続定義情報を基にして、同一のクラスタに所属する複数の仮想マシンの資源、および該複数の仮想マシンと接続関係にある前記仮想マシンクラスタの資源に、同一のクラスタ識別子を設定するインスタンス情報を生成する接続処理工程と、
前記配置処理部が、前記操作部から割り当ての指示を受け付けた場合に、前記生成されたインスタンス情報に基づいて、前記クラスタ識別子が同一となる仮想マシンの資源を、異なる仮想マシンサーバに配置する配置処理工程とを含み、
前記記憶部に記憶された前記仮想マシン定義情報は、前記仮想マシンのポートを定義した情報を含み、
前記仮想マシンクラスタ定義情報は、前記仮想マシンクラスタの資源に接続される仮想マシンの資源の数に応じたポートを定義した情報を含み、
前記接続定義情報は、前記仮想マシン定義情報のポートおよび前記仮想マシンクラスタ定義情報のポートを用いて複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する情報であり、
前記接続処理工程は、前記接続定義情報に定義された前記仮想マシンクラスタの資源のポートと前記仮想マシンの資源のポートとの接続関係を基にして、前記仮想マシンクラスタの資源のポートと仮想マシンの資源のポートとを接続し、同一の仮想マシンクラスタに接続された仮想マシンの資源を、同一のクラスタに所属する仮想マシンの資源であると判定して前記インスタンス情報を生成することを特徴とする制御方法。
【請求項３】
接続処理部と、配置処理部とを有するコンピュータに、前記接続処理部が、操作部から作成の指示を受け付けた場合に、複数の仮想マシンの資源を定義する複数の仮想マシン定義情報と、前記複数の仮想マシンに接続される仮想マシンクラスタの資源を定義する仮想マシンクラスタ定義情報と、同一のクラスタに所属する複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する接続定義情報とを記憶する記憶部を参照し、前記仮想マシン定義情報および前記仮想マシンクラスタ定義情報を基にして、仮想マシンの資源および仮想マシンクラスタの資源を生成し、前記接続定義情報を基にして、同一のクラスタに所属する複数の仮想マシンの資源、および該複数の仮想マシンと接続関係にある前記仮想マシンクラスタの資源に、同一のクラスタ識別子を設定するインスタンス情報を生成する接続処理ステップと、
前記配置処理部が、前記操作部から割り当ての指示を受け付けた場合に、前記生成されたインスタンス情報に基づいて、前記クラスタ識別子が同一となる仮想マシンの資源を、異なる仮想マシンサーバに配置する配置処理ステップとを実行させ、
前記記憶部に記憶された前記仮想マシン定義情報は、前記仮想マシンのポートを定義した情報を含み、
前記仮想マシンクラスタ定義情報は、前記仮想マシンクラスタの資源に接続される仮想マシンの資源の数に応じたポートを定義した情報を含み、
前記接続定義情報は、前記仮想マシン定義情報のポートおよび前記仮想マシンクラスタ定義情報のポートを用いて複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する情報であり、
前記接続処理ステップは、前記接続定義情報に定義された前記仮想マシンクラスタの資源のポートと前記仮想マシンの資源のポートとの接続関係を基にして、前記仮想マシンクラスタの資源のポートと仮想マシンの資源のポートとを接続し、同一の仮想マシンクラスタに接続された仮想マシンの資源を、同一のクラスタに所属する仮想マシンの資源であると判定して前記インスタンス情報を生成することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置等に関する。
【背景技術】
【０００２】
ネットワークに接続された複数の仮想マシンサーバ上で仮想マシンによるサービスを提供するデータセンタは、例えば、各レイヤのスイッチ、物理サーバ等の物理機器、及び各仮想マシンなどの論機機器を利用する。各物理機器、各論理機器に対する統一的な制御プロトコルは存在しないため、各物理機器、各論理機器は、製品固有の制御方法によって管理されている。
【０００３】
これに対して、各機器を統一的に制御するために、各機器および機器間の接続関係を抽象化して定義、制御する従来技術が存在する。この従来技術は、例えば、非特許文献１に開示されている。非特許文献１は、資源間の接続関係を抽象化して管理することで、資源間の接続制御を自動化することが可能となる。資源とは、機器のそれぞれを有限状態マシンとしてモデル化したものである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】佐藤賢一、林秀樹、尾尻健  「クラウドオペレーションを支えるプロビジョニング基盤の開発」2011.10  ＮＴＴ技術ジャーナル、［online］、［平成２４年５月１５日検索］、インターネット＜ＵＲＬ：http://www.ntt.co.jp/journal/1110/files/jn201110018.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、仮想マシンをクラスタ化し、仮想マシン同士が同一のクラスタに属するような複雑な環境におけるプロビジョニングを効率的に実行することができないという問題があった。
【０００６】
開示の実施形態は、上記に鑑みてなされたものであって、仮想マシンをクラスタ化し、仮想マシン同士が同一のクラスタに属するような複雑な環境におけるプロビジョニングを効率的に実行することができる制御装置、制御方法および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る制御装置は、複数の仮想マシンの資源を定義する複数の仮想マシン定義情報と、前記複数の仮想マシンに接続される仮想マシンクラスタの資源を定義する仮想マシンクラスタ定義情報と、同一のクラスタに所属する複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する接続定義情報とを記憶する記憶部と、操作部から作成の指示を受け付けた場合に、前記仮想マシン定義情報および前記仮想マシンクラスタ定義情報を基にして、仮想マシンの資源および仮想マシンクラスタの資源を生成し、前記接続定義情報を基にして、同一のクラスタに所属する複数の仮想マシンの資源、および該複数の仮想マシンと接続関係にある前記仮想マシンクラスタの資源に、同一のクラスタ識別子を設定するインスタンス情報を生成する接続処理部と、前記操作部から割り当ての指示を受け付けた場合に、前記生成されたインスタンス情報に基づいて、前記クラスタ識別子が同一となる仮想マシンの資源を、異なる仮想マシンサーバに配置する配置処理部とを有し、前記仮想マシン定義情報は、前記仮想マシンのポートを定義した情報を含み、前記仮想マシンクラスタ定義情報は、前記仮想マシンクラスタの資源に接続される仮想マシンの資源の数に応じたポートを定義した情報を含み、前記接続定義情報は、前記仮想マシン定義情報のポートおよび前記仮想マシンクラスタ定義情報のポートを用いて複数の仮想マシンと前記仮想マシンクラスタとの接続関係を定義する情報であり、前記接続処理部は、前記接続定義情報に定義された前記仮想マシンクラスタの資源のポートと前記仮想マシンの資源のポートとの接続関係を基にして、前記仮想マシンクラスタの資源のポートと仮想マシンの資源のポートとを接続し、同一の仮想マシンクラスタに接続された仮想マシンの資源を、同一のクラスタに所属する仮想マシンの資源であると判定して前記インスタンス情報を生成することを特徴とする。
【発明の効果】
【０００８】
本発明に係る制御装置によれば、仮想マシンをクラスタ化し、仮想マシン同士が同一のクラスタに属するような複雑な環境におけるプロビジョニングを効率的に実行することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、仮想マシン提供システムの構成の一例を示す図である。
【図２】図２は、プロビジョニング装置の構成を示す機能ブロック図である。
【図３】図３は、クラスタテンプレート情報のデータ構造の一例を示す図である。
【図４】図４は、接続定義情報のデータ構造の一例を示す図である。
【図５】図５は、インスタンス情報のデータ構造の一例を示す図である。
【図６】図６は、コネクタインスタンスのデータ構造の一例を示す図である。
【図７】図７は、仮想マシンの状態遷移モデルを示す図である。
【図８】図８は、資源ＳＰＩ「起動（）」を受け付けた場合の処理手順を示すフローチャートである。
【図９】図９は、開示の技術に係る制御プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する制御装置、制御方法および制御プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１１】
（実施形態）
まず、本実施形態で定義する仮想マシンクラスタの概念について説明する。クラスタ化において、複数の物理サーバによって実現する場合と同様の可用性を、複数の仮想マシンの資源を用いて実現する場合、耐故障性を確保する観点から、各仮想マシンの資源を各々別々に物理サーバに配置する必要がある。
【００１２】
そこで、同一のクラスタを構成する仮想マシンのグループを表す概念として、「仮想マシンクラスタ」と定義する。以下の実施形態で説明するように、同一の仮想マシンクラスタの資源に接続される仮想マシンの資源には、同一のクラスタ識別子が付与される。同一のクラスタ識別子が付与された仮想マシンの資源は、別々の仮想マシンサーバに配置され、各種の制御を実行する。ここで、仮想マシンサーバは、上記の物理サーバ上で仮想的に動作するサーバである。
【００１３】
次に、本実施形態に係る仮想マシン提供システムの構成について説明する。図１は、仮想マシン提供システムの構成の一例を示す図である。図１に示すように、この仮想マシン提供システムは、操作端末１０と、物理サーバ２０と、プロビジョニング装置１００とを有する。プロビジョニング装置１００は、制御装置の一例である。
【００１４】
操作端末１０、物理サーバ２０、プロビジョニング装置１００は、コンピュータネットワーク５を介して相互に接続される。操作端末１０、物理サーバ２０、プロビジョニング装置１００は、コンピュータネットワーク５を介して、相互にデータ通信を行うことが可能である。コンピュータネットワーク５は、例えば、データセンタ内の通信網に対応する。
【００１５】
操作端末１０は、仮想マシン提供システムの管理者が、プロビジョニング装置１００に対する各種の指示を入力するために用いる端末である。操作端末１０は、管理者によって入力された指示内容の情報を、プロビジョニング装置１００に送信する。例えば、指示内容には、プロビジョニング装置１００で管理される仮想マシンクラスタおよび仮想マシンの状態を遷移させる指示が含まれる。
【００１６】
また、管理者は、操作端末１０を操作して、クラスタテンプレート情報を生成し、プロビジョニング装置１００に送信する。クラスタテンプレート情報は、仮想マシンの資源の雛形および仮想マシンクラスタの資源の雛形や、同一のクラスタに所属する複数の仮想マシンと仮想マシンクラスタとの接続関係を定義した情報を含む。クラスタテンプレート情報の詳細については後述する。
【００１７】
物理サーバ２０は、複数の仮想マシンのそれぞれが設定されるサーバである。物理サーバ２０は、複数の仮想マシンのそれぞれに割り当てられるＣＰＵ（Central  Processing  Unit）、メモリ、ハードディスクドライブ等の複数のハードウェアを備える。ＣＰＵ、メモリ、ハードディスクドライブの図示は省略する。
【００１８】
物理サーバ２０は、プロビジョニング装置１００からの指示に応じ、ハイパーバイザを用いて複数の種類のハードウェアを分割して複数の仮想マシンサーバを用意し、各仮想マシンサーバに仮想マシンを割り当てる。
【００１９】
プロビジョニング装置１００は、クラスタテンプレート情報を基にして、クラスタ構成を組む複数の仮想マシンを一括で作成し、作成した複数の仮想マシンを、物理サーバ２０に用意された各仮想マシンサーバに仮想マシンを配置する装置である。以下において、プロビジョニング装置１００について具体的に説明する。
【００２０】
図２は、プロビジョニング装置の構成を示す機能ブロック図である。図２に示すように、このプロビジョニング装置１００は、記憶部１１０、通信部１２０、資源操作部１３０、接続設定部１４０、仮想マシン配置制御部１５０を有する。各処理部１１０〜１５０は相互に接続される。
【００２１】
記憶部１１０は、クラスタテンプレート情報１１０ａおよびインスタンス情報１１０ｂを記憶する記憶部である。
【００２２】
クラスタテンプレート情報１１０ａは、仮想マシンの資源の雛形および仮想マシンクラスタの資源の雛形や、同一のクラスタに所属する複数の仮想マシンと仮想マシンクラスタとの接続関係を定義した情報を含む。
【００２３】
図３は、クラスタテンプレート情報のデータ構造の一例を示す図である。図３に示すように、このクラスタテンプレート情報１１０ａは、仮想マシンクラスタテンプレート３０、仮想マシンテンプレート３０ａ、３０ｂ、接続定義情報３１を有する。ここでは、説明の便宜上、仮想マシンテンプレート３０ａ、３０ｂを示すが、このクラスタテンプレート情報１１０ａには、他の仮想マシンテンプレートが含まれていても良い。
【００２４】
仮想マシンクラスタテンプレート３０は、仮想マシンクラスタの資源の雛形である。仮想マシンクラスタテンプレート３０は、属性として、クラスタ識別子と、所属一覧とを有する。クラスタ識別子は、仮想マシンクラスタを一意に識別する情報である。所属一覧は、仮想マシンクラスタに所属する各仮想マシンを一意に識別する仮想マシン識別子の一覧を示す情報である。
【００２５】
仮想マシンクラスタテンプレート３０のポート識別情報は、仮想マシンクラスタテンプレート３０のポートを一意に識別する情報を含む。ポートは、仮想マシンクラスタに所属する仮想マシンと仮想マシンクラスタとの接続関係を持つために定義された情報である。ポートの数は、仮想マシンクラスタに所属する仮想マシンの数に応じて増減する。なお、仮想マシンクラスタテンプレート３０に定義されるポートの図示は省略する。
【００２６】
仮想マシンテンプレート３０ａおよび仮想マシンテンプレート３０ｂの説明は同じであるため、ここでは一例として、仮想マシンプレート３０ａについて説明する。
【００２７】
仮想マシンプレート３０ａは、仮想マシンの資源の雛形である。仮想マシンテンプレート３０は、属性として、仮想マシン識別子、クラスタ識別子、ポジション識別子を有する。仮想マシン識別子は、仮想マシンを一意に識別する情報である。クラスタ識別子は、所属先の仮想マシンクラスタを一意に識別する情報である。ポジション識別子は、仮想マシンの配置先を一意に識別する情報である。
【００２８】
ポート識別情報は、仮想マシンテンプレート３０ａのポートを一意に識別する情報である。ポートは、仮想マシンクラスタに所属する仮想マシンと仮想マシンクラスタとの接続関係を持つために定義された情報である。仮想マシンテンプレート３０ａのポートの数は１つである。仮想マシンテンプレート３０に定義されるポートの図示は省略する。
【００２９】
接続定義情報３１は、仮想マシンクラスタテンプレート３０と、仮想マシンテンプレート３０ａ、３０ｂとの接続関係を定義する情報である。図４は、接続定義情報のデータ構造の一例を示す図である。図４に示すように、この接続定義情報３１は、接続元ポート識別情報と接続先ポート識別情報とを対応付ける。接続元ポート識別情報は、仮想マシンクラスタテンプレート３０のポート識別情報に対応する。接続先ポート識別情報は、仮想マシンテンプレート３０ａ、３０ｂのポート識別情報に対応する。
【００３０】
例えば、図４の１行目において、接続元ポート識別情報が「ポート１−１」、接続先ポート識別情報が「ポート２」となっている。このため、仮想マシンクラスタテンプレート３０の「ポート１−１」と、仮想マシンテンプレート３０ａの「ポート２」とが接続されている。
【００３１】
次に、図２に示したインスタンス情報１１０ｂについて説明する。インスタンス情報１１０ｂは、クラスタテンプレート情報１１０ａを基にして生成される情報（インスタンス）である。なお、クラスタテンプレート情報１１０ａからインスタンス情報１１０ｂが生成されるまでの説明は後述する。
【００３２】
図５は、インスタンス情報のデータ構造の一例を示す図である。図５に示すように、このインスタンス情報１１０ｂは、仮想マシンクラスタインスタンス４０、仮想マシンインスタンス４０ａ、４０ｂ、コネクタインスタンス４１を有する。ここでは、説明の便宜上、仮想マシンインスタンス４０ａ、４０ｂを示すが、このインスタンス情報１１０ｂには、クラスタテンプレート情報１１０ａに応じて、他の仮想マシンインスタンスが含まれていても良い。
【００３３】
仮想マシンクラスタインスタンス４０は、図３に示した仮想マシンクラスタテンプレート３０を元に生成される、仮想マシンクラスタの資源である。仮想マシンクラスタインスタンス４０は、属性として、クラスタ識別子と、所属一覧とを有する。クラスタ識別子、所属一覧に関する説明は、仮想マシンクラスタテンプレート３０のクラスタ識別子、所属一覧の説明と同様である。仮想マシンクラスタインスタンス４０では、各属性に属性値が設定される。
【００３４】
仮想マシンクラスタインスタンス４０のポート識別情報は、仮想マシンクラスタインスタンス４０のポートを一意に識別する情報を含む。なお、仮想マシンクラスタインスタンス４０に定義されるポートの図示は省略する。
【００３５】
仮想マシンインスタンス４０ａおよび仮想マシンインスタンス４０ｂの説明は同じであるため、ここでは一例として、仮想マシンインスタンス４０ａについて説明する。
【００３６】
仮想マシンインスタンス４０ａは、図３に示した仮想マシンテンプレートを元に生成される、仮想マシンの資源である。仮想マシンインスタンス４０ａは、属性として、仮想マシン識別子、クラスタ識別子、ポジション識別子を有する。仮想マシン識別子、クラスタ識別子、ポジション識別子に関する説明は、仮想マシンテンプレート３０ａの仮想マシン識別子、クラスタ識別子、ポジション識別子の説明と同様である。仮想マシンインスタンス４０ａでは、各属性に属性値が設定される。
【００３７】
仮想マシンインスタンス４０ａのポート識別情報は、仮想マシンインスタンス４０ａのポートを一意に識別する情報を含む。なお、仮想マシンインスタンス４０ａに定義されるポートの図示は省略する。
【００３８】
コネクタインスタンス４１は、仮想マシンクラスタインスタンス４０と、仮想マシンインスタンス４０ａ、４０ｂとの接続関係を定義する情報であり、図３の接続定義情報３１を基にして生成される。図６は、コネクタインスタンスのデータ構造の一例を示す図である。図６に示すように、コネクタインスタンス４１は、接続元情報と接続先情報とを対応付ける。
【００３９】
接続元情報は、接続元の仮想マシン識別子と接続元となる仮想マシンクラスタインスタンスのポート識別情報とが含まれる。なお、接続元の仮想マシン識別子は、仮想マシンクラスタを一意に識別する情報とする。接続先情報は、接続先の仮想マシンの仮想マシン識別子およびポート識別情報が含まれる。
【００４０】
例えば、図６の１行目において、接続元情報の仮想マシン識別子が「仮想マシンクラスタ−１」、ポート識別情報が「ポート１−１」、接続先情報の仮想マシン識別子が「仮想マシン識別子−１」、ポート識別情報が「ポート２」となっている。このため、仮想マシンクラスタインスタンス４０の「ポート１−１」と、仮想マシンインスタンス４０ａの「ポート２」とが接続されている。
【００４１】
次に、仮想マシンの状態遷移について説明する。図７は、仮想マシンの状態遷移モデルを示す図である。仮想マシンの状態は、初期５０ａ、未割当５０ｂ、割当済５０ｃ、起動中５０ｄのいずれかとなり、資源ＳＰＩ（Service  Provider  Interface）の種別に応じて遷移する。
【００４２】
初期５０ａの状態は、例えば、仮想マシンテンプレート３０ａ、３０ｂから、仮想マシンインスタンス４０ａ、４０ｂが作成されていない状態を示す。未割当５０ｂの状態は、例えば、仮想マシンテンプレート３０ａ、３０ｂから、仮想マシンインスタンス４０ａ、４０ｂが作成された状態を示す。
【００４３】
割当済５０ｃの状態は、ソフトウェアリソースやハードウェアリソースを仮想マシンの資源に割り当てた状態を示す。起動中５０ｄの状態は、仮想マシンの資源が利用可能な状態である。
【００４４】
資源ＳＰＩには、作成（）、割当（）、起動（）、停止（）、解放（）、削除（）が存在する。資源ＳＰＩの「作成（）」は、仮想マシンの状態を初期５０ａから、未割当５０ｂに遷移させる。資源ＳＰＩの「割当（）」は、仮想マシンの状態を未割当５０ｂから割当済５０ｃに遷移させる。資源ＳＰＩの「起動（）」は、仮想マシンの状態を割当済５０ｃから起動中５０ｄに遷移させる。
【００４５】
資源ＳＰＩの「停止（）」は、仮想マシンの状態を起動中５０ｄから割当済５０ｃに遷移させる。資源ＳＰＩの「解放（）」は、仮想マシンの状態を割当済５０ｃから未割当５０ｂに遷移させる。資源ＳＰＩの「削除（）」は、仮想マシンの状態を未割当５０ｂから初期５０ａに遷移させる。
【００４６】
次に、仮想マシンクラスタの状態遷移について説明する。仮想マシンクラスタの状態遷移モデルは、図７に示した仮想マシンの状態遷移モデルと同様である。
【００４７】
管理者は操作端末１０を操作して、資源ＳＰＩをプロビジョニング装置１００に通知し、プロビジョニング装置１００に仮想マシンおよび仮想マシンクラスタの状態を遷移させる。
【００４８】
図２の説明に戻る。通信部１２０は、コンピュータネットワーク５を介して、操作端末１０、物理サーバ２０との間でデータ通信を実行する処理部である。例えば、通信部１２０は、通信装置に対応する。プロビジョニング装置１００の資源操作部１３０は、通信部１２０を介して、操作端末１０から資源ＳＰＩ等を受け付ける。
【００４９】
資源操作部１３０は、操作端末１０から資源ＳＰＩを受け付けた場合に、資源ＳＰＩの種別に応じて、接続設定部１４０、仮想マシン配置制御部１５０と協働し、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態とを遷移させる処理部である。
【００５０】
なお、プロビジョニング装置１００は、資源操作部１３０と、接続設定部１４０とが協働して行う処理を実行する接続処理部を有しても良い。また、プロビジョニング装置１００は、資源操作部１３０と、仮想マシン配置制御部１５０とが協働して行う処理を実行する配置処理部を有しても良い。
【００５１】
資源操作部１３０が、資源ＳＰＩ「作成（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、初期の状態から未割当の状態に遷移させる。
【００５２】
具体的に、資源操作部１３０は、仮想マシンクラスタテンプレート３０を基にして、仮想マシンクラスタインスタンス４０を生成する。資源操作部１３０は、ユニークなクラスタ識別子を払い出し、払い出したクラスタ識別子を、仮想マシンクラスタインスタンス４０のクラスタ識別子の属性値に設定する。なお、この時点において、所属一覧の属性値には、何も設定されない。
【００５３】
資源操作部１３０は、仮想マシンテンプレート３０ａを基にして、仮想マシンインスタンス４０ａを生成する。資源操作部１３０は、ユニークな仮想マシン識別子を払い出し、払い出した仮想マシン識別子を、仮想マシンインスタンス４０ａの仮想マシン識別子に設定する。なお、この時点において、仮想マシンインスタンス４０ａのクラスタ識別子、ポジション識別子には、何も設定されない。
【００５４】
資源操作部１３０が、仮想マシンテンプレート３０ｂを基にして、仮想マシンインスタンス４０ｂを生成する処理は、仮想マシンテンプレート３０ｂを基にして、仮想マシンインスタンス４０ａを生成する処理と同様である。
【００５５】
また、資源操作部１３０は、接続定義情報３１を基にして、コネクタインスタンス４１を生成する。資源操作部１３０は、接続定義情報３１の接続元ポート識別情報および接続先ポート情報の関係と、仮想マシンクラスタインスタンス４０、仮想マシンインスタンス４０ａ、４０ｂのポート識別情報とを比較してコネクトインスタンス４１の接続元情報と、接続先情報の値を判定し、コネクトインスタンス４１を生成する。なお、資源操作部１３０は、接続定義情報３１が存在しない場合には、コネクタインスタンス４１を生成しない。
【００５６】
次に、資源操作部１３０が、資源ＳＰＩ「削除（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、未割当の状態から初期の状態に遷移させる。例えば、資源操作部１３０は、インスタンス情報１１０ｂを削除する。
【００５７】
次に、資源操作部１３０が、資源ＳＰＩ「割当（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、未割当の状態から割当済の状態に遷移させる。例えば、資源操作部１３０は、ソフトウェアリソースやハードウェアリソースを仮想マシンクラスタの資源および仮想マシンの資源を、ソフトウェアリソースやハードウェアリソースを仮想マシンクラスタの資源および仮想マシンの資源に割り当てる。
【００５８】
次に、資源操作部１３０が、資源ＳＰＩ「解放（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、割当済の状態から未割当の状態に遷移させる。例えば、資源操作部１３０は、ソフトウェアリソースやハードウェアリソースに割り当てた仮想マシンクラスタの資源および仮想マシンの資源を解放する。
【００５９】
次に、資源操作部１３０が、資源ＳＰＩ「起動（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、接続設定部１４０および仮想マシン配置制御部１５０と協働して、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、割当済の状態から起動中の状態に遷移させる。起動状態となった仮想マシンは、自身に設定されたポジション識別子に従って、物理サーバ２０上の仮想マシンサーバを特定し、起動処理を行う。
【００６０】
ここで、資源操作部１３０が、資源ＳＰＩ「起動（）」を受け付けた場合の処理手順について説明する。図８は、資源ＳＰＩ「起動（）」を受け付けた場合の処理手順を示すフローチャートである。
【００６１】
図８に示すように、資源操作部１３０は、インスタンス情報１１０ｂを参照し、仮想マシンクラスタとのコネクタインスタンスが存在するか否かを判定する（ステップＳ１０１）。資源操作部１３０は、仮想マシンとのコネクタインスタンスが存在しない場合には（ステップＳ１０１，Ｎｏ）、ステップＳ１０６に移行する。
【００６２】
一方、資源操作部１３０は、仮想マシンクラスタとのコネクタインスタンスが存在する場合には（ステップＳ１０１，Ｙｅｓ）、仮想マシンクラスタの状態は割当済か否かを判定する（ステップＳ１０２）。資源操作部１３０は、仮想マシンクラスタの状態が割当済の場合には（ステップＳ１０２，Ｙｅｓ）、ステップＳ１０４に移行する。
【００６３】
一方、資源操作部１３０は、仮想マシンクラスタの状態が割当済ではない場合には（ステップＳ１０２，Ｎｏ）、仮想マシンクラスタに対する割当処理を実行する（ステップＳ１０３）。ステップＳ１０３において、資源操作部１３０は、上記に示した、資源ＳＰＩ「割当（）」を受け付けた場合の処理と同様の処理を実行する。
【００６４】
資源操作部１３０は、接続設定部１４０と協働して、接続元の仮想マシンクラスタインスタンス４０の所属一覧に、仮想マシン識別子を追加する（ステップＳ１０４）。
【００６５】
ステップＳ１０４について具体的に説明する。接続設定部１４０は、コネクトインスタンス４１を参照して、仮想マシンクラスタインスタンス４０に所属する仮想マシンインスタンスを判定する。そして、接続設定部１４０は、仮想マシンクラスタインスタンス４０に所属する仮想マシンインスタンスの仮想マシン識別子の属性値を、所属一覧の属性値に追加する。
【００６６】
例えば、図５において、仮想マシンクラスタインスタンス４０に、仮想マシンインスタンス４０ａ、４０ｂが所属している場合には、接続設定部１４０は、仮想マシンクラスタインスタンス４０の所属一覧の属性値に「仮想マシン−１、仮想マシン−Ｎ」を追加する。
【００６７】
なお、仮想マシンクラスタの資源が割当済となった後に、仮想マシンクラスタインスタンス４０の所属一覧の属性値を設定する制約は、仮想マシンクラスタの資源が共有資源などを保持し、それらの共有資源の割当状態にて確定することを前提とするためとなる。共有資源には、共有ディスク、論理ＩＰアドレス等が含まれる。
【００６８】
図８の説明に戻る。資源操作部１３０は、接続設定部１４０と協働して、接続元の仮想マシンクラスタインスタンス４０のクラスタ識別子を、仮想マシンクラスタのクラスタ識別子の属性値に設定する（ステップＳ１０５）。
【００６９】
ステップＳ１０５について具体的に説明する。接続設定部１４０は、コネクトインスタンス４１を参照して、仮想マシンクラスタインスタンス４０に所属する仮想マシンインスタンスを判定する。そして、接続設定部１４０は、仮想マシンクラスタインスタンス４０のクラスタ識別子の属性値を、所属する仮想マシンインスタンス４０ａ、４０ｂのクラスタ識別子の属性値に設定する。
【００７０】
例えば、図５において、仮想マシンクラスタインスタンス４０に所属する仮想マシンインスタンスは、仮想マシンインスタンス４０ａ、４０ｂとなる。このため、接続設定部１４０は、仮想マシンクラスタインスタンスのクラスタ識別子の属性値「仮想マシンＣ−１」を、仮想マシンインスタンス４０ａ、４０ｂのクラスタ識別子の属性値に設定する。
【００７１】
図８の説明に戻る。資源操作部１３０は、仮想マシンインスタンスのクラスタ識別子の属性値が存在するか否かを判定する（ステップＳ１０６）。資源操作部１３０は、仮想マシンインスタンスのクラスタ識別子の属性値が存在する場合には（ステップＳ１０６，Ｙｅｓ）、仮想マシンインスタンスのクラスタ識別子の属性値を仮想マシン配置制御部１５０に通知し、ポジション識別子の払出を要求する（ステップＳ１０７）。
【００７２】
資源操作部１３０は、仮想マシン配置制御部１５０からポジション識別子を取得し、仮想マシンインスタンスに設定する（ステップＳ１０８）。
【００７３】
ステップＳ１０７について具体的に説明する。資源操作部１３０は、各仮想マシンインスタンスのクラスタ識別子の属性値を、仮想マシン配置制御部１５０に入力することで、ポジション識別子の払出を要求する。
【００７４】
例えば、図５を用いて説明すると、資源操作部１３０は、仮想マシンインスタンス４０ａのクラスタ識別子の属性値を、仮想マシン配置制御部１５０に入力して、仮想マシンインスタンス４０ａに対するポジション識別子の払出を要求する。資源操作部１３０は、仮想マシンインスタンス４０ｂのクラスタ識別子の属性値を、仮想マシン配置制御部１５０に入力して、仮想マシンインスタンス４０ｂに対するポジション識別子の払出を要求する。
【００７５】
仮想マシン配置制御部１５０は、資源操作部１３０からポジション識別子の払出要求を取得した場合には、ポジション識別子を資源操作部１３０に通知する処理部である。仮想マシン配置制御部１５０は、複数のポジション識別子の払出要求を取得した場合には、各払出要求と共に取得するクラスタ識別子を比較する。仮想マシン配置制御部１５０は、各クラスタ識別子の属性値が同一である場合には、それぞれ異なるポジション識別子を、資源操作部１３０に通知する。
【００７６】
例えば、仮想マシン配置制御部１５０が、資源操作部１３０から、仮想マシンインスタンス４０ａおよび仮想マシンインスタンス４０ｂに対するポジション識別子の払出要求を取得し、クラスタ識別子「仮想マシンＣ−１」を取得した場合について説明する。この場合には、仮想マシン配置制御部１５０は、仮想マシンインスタンス４０ａに対するポジション識別子「物理サーバ１−１」を資源操作部１３０に通知し、仮想マシンインスタンス４０ｂに対するポジション識別子「物理サーバＮ−Ｎ」を資源操作部１３０に通知する。資源操作部１３０は、仮想マシンインスタンス４０ａのポジション識別子の属性値に「物理サーバ１−１」を設定する。資源操作部１３０は、仮想マシンインスタンス４０ｂのポジション識別子の属性値に「物理サーバＮ−Ｎ」を設定する。
【００７７】
なお、仮想マシン配置制御部１５０は、仮想マシンを配置可能なポジション識別子のリストを保持しているものとする。
【００７８】
図８の説明に戻る。ステップＳ１０６において、資源操作部１３０は、クラスタ識別子が存在しない場合には（ステップＳ１０６，Ｎｏ）、仮想マシンインスタンスに対するポジション識別子の払出を仮想マシン配置制御部１５０に要求し、ポジション識別子を取得し、ポジション識別子を仮想マシンインスタンスに設定する（ステップＳ１０９）。
【００７９】
資源操作部１３０は、仮想マシンインスタンスを参照し、指定されたポジション識別子で、仮想マシンを起動する（ステップＳ１１０）。例えば、資源操作部１３０は、ポジション識別子と、物理サーバ２０との関係を保持しており、係る関係を基にして、仮想マシンを物理サーバ２０上（物理サーバ２０上で起動する仮想マシンサーバ上）で起動させる。
【００８０】
次に、資源操作部１３０が、資源ＳＰＩ「停止（）」を受け付けた場合の処理について説明する。この場合には、資源操作部１３０は、仮想マシンクラスタの状態と、この仮想マシンクラスタに所属する仮想マシンの状態を、起動中の状態から割当済の状態に遷移させる。例えば、資源操作部１３０は、物理サーバ２０上で動作している仮想マシンを停止させる。
【００８１】
次に、本実施形態に係るプロビジョニング装置１００の効果について説明する。プロビジョニング装置１００は、仮想マシンクラスタを定義して、同一のクラスタに所属する仮想マシンを同一の仮想マシンクラスタに接続し、同一のクラスタに所属する各仮想マシンに同一のクラスタ識別子を設定する。そして、プロビジョニング装置１００は、各仮想マシンに設定されたクラスタ識別子を基にして、クラスタ識別子が同一となる仮想マシンを、異なる仮想マシンサーバで起動させる。このため、プロビジョニング装置１００によれば、同一のクラスタに所属する仮想マシンを、同一の仮想マシンサーバに配置することを防止できる。
【００８２】
また、本実施形態に係るプロビジョニング装置１００によれば、クラスタ構成を組む複数の仮想マシンを一括で作成することが可能となり、物理環境によるクラスタシステムと同等の冗長性を実現する仮想環境によるクラスタシステムについて、効率的なプロビジョニングを実行することができる。
【００８３】
また、本実施形態に係るプロビジョニング装置１００によれば、仮想マシンクラスタテンプレート３０および各仮想マシンテンプレート３０ａ、３０ｂにポートを設定したため、同一の仮想マシンクラスタに所属する仮想マシンを接続定義情報３１によって定義することが可能となる。
【００８４】
ところで、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
例えば、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、資源操作部１３０、接続設定部１４０、仮想マシン配置制御部１５０を一つの制御部として統合しても良い。
【００８６】
次に、実施形態に示したプロビジョニング装置１００と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。図９は、開示の技術に係る制御プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図９に例示するように、コンピュータ２００は、例えば、メモリ２０１と、ＣＰＵ（Central  Processing  Unit）２０２と、ハードディスクドライブインタフェース２０３と、ディスクドライブインタフェース２０４と、シリアルポートインタフェース２０５と、ビデオアダプタ２０６と、ネットワークインタフェース２０７とを有し、これらの各部はバス２０８によって接続される。
【００８７】
メモリ２０１は、図９に例示するように、ＲＯＭ（Read  Only  Memory）２０１ａ及びＲＡＭ（Random  Access  Memory）２０１ｂを含む。ＲＯＭ２０１ａは、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース２０３は、図９に例示するように、ハードディスクドライブ２０３ａに接続される。ディスクドライブインタフェース２０４は、図９に例示するように、ディスクドライブ２０４ａに接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ２０４ａに挿入される。シリアルポートインタフェース２０５は、図９に例示するように、例えばマウス２０５ａ、キーボード２０５ｂに接続される。ビデオアダプタ２０６は、図９に例示するように、例えばディスプレイ２０６ａに接続される。
【００８８】
ここで、図９に例示するように、ハードディスクドライブ２０３ａは、例えば、ＯＳ（Operating  System）１、アプリケーションプログラム２、プログラムモジュール３、プログラムデータ４を記憶する。すなわち、開示の技術に係る制御プログラムは、コンピュータ２００によって実行される指令が記述されたプログラムモジュール３として、例えばハードディスクドライブ２０３ａに記憶される。具体的には、上記実施形態で説明した資源操作部１３０、接続設定部１４０、仮想マシン配置制御部１５０に対応する情報処理を実行する接続処理手順、配置処理手順が記述されたプログラムモジュール３が、ハードディスクドライブ２０３ａに記憶される。また、上記実施形態で説明した記憶部１１０に記憶されるデータのように、制御プログラムによる情報処理に用いられるデータは、プログラムデータ４として、例えばハードディスクドライブ２０３ａに記憶される。そして、ＣＰＵ２０２が、ハードディスクドライブ２０３ａに記憶されたプログラムモジュール３やプログラムデータ４を必要に応じてＲＡＭ２０１ｂに読み出し、接続処理手順、配置処理手順を実行する。
【００８９】
なお、制御プログラムに係るプログラムモジュール３やプログラムデータ４は、ハードディスクドライブ２０３ａに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ２０２によって読み出されてもよい。あるいは、制御プログラムに係るプログラムモジュール３やプログラムデータ４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース２０７を介してＣＰＵ２０２によって読み出されてもよい。
【符号の説明】
【００９０】
１      ＯＳ
２      アプリケーションプログラム
３      プログラムモジュール
４      プログラムデータ
５      コンピュータネットワーク
１０    操作端末
２０    物理サーバ
３０    仮想マシンクラスタテンプレート
３０ａ、３０ｂ  仮想マシンテンプレート
３１    接続定義情報
４０    仮想マシンクラスタインスタンス
４０ａ、４０ｂ  仮想マシンインスタンス
４１    コネクタインスタンス
１００    プロビジョニング装置
１１０    記憶部
１１０ａ  クラスタテンプレート情報
１１０ｂ  インスタンス情報
１２０    通信部
１３０    資源操作部
１４０    接続設定部
１５０    仮想マシン配置制御部
２００    コンピュータ
２０１    メモリ
２０１ａ  ＲＯＭ
２０１ｂ  ＲＡＭ
２０２    ＣＰＵ
２０３    ハードディスクドライブインタフェース
２０３ａ  ハードディスクドライブ
２０４    ディスクドライブインタフェース
２０４ａ  ディスクドライブ
２０５    シリアルポートインタフェース
２０５ａ  マウス
２０５ｂ  キーボード
２０６    ビデオアダプタ
２０６ａ  ディスプレイ
２０７    ネットワークインタフェース
２０８    バス
【図１】
0005492253.tif 000002
【図２】
0005492253.tif 000003
【図３】
0005492253.tif 000004
【図４】
0005492253.tif 000005
【図５】
0005492253.tif 000006
【図６】
0005492253.tif 000007
【図７】
0005492253.tif 000008
【図８】
0005492253.tif 000009
【図９】
0005492253.tif 000010