(57)【要約】【課題】  物理ホストマシンのメンテナンス時や障害時にリソースプール総量を減らさずに運用を継続する。【解決手段】  仮想化システム１００が、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバ１００とを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用する。【選択図】  図１
2013210745.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンが動作可能な複数のホストと、
前記仮想マシンを制御する制御サーバとを備え、
１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、
１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、
前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する
ことを特徴とする仮想化システム。
【請求項２】
前記制御サーバが、
前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定手段と、
前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御手段を含み、
前記配置判定手段は、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする請求項１に記載の仮想化システム。
【請求項３】
前記配置判定手段が、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする請求項２に記載の仮想化システム。
【請求項４】
前記配置判定手段は、
前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能でないと判断した場合は、前記仮想マシンの作成を拒絶する
ことを特徴とする請求項２又は請求項３に記載の仮想化システム。
【請求項５】
前記配置判定手段が、
前記ホストがメンテンス状態になる場合、若しくは前記ホストの障害を検出した際に、当該ホストのリソース量を除いた前記リソースプールの空き容量が、動作している前記仮想マシンに必要なリソース量より少ない場合、前記リカバリプールに前記仮想マシンを移動できるか判定し、移動できる場合、前記リカバリプールに前記仮想マシンの異動の指示を前記配置制御手段に行う
ことを特徴とする請求項２から請求項４の何れか１項に記載の仮想化システム。
【請求項６】
前記配置判定手段が、
前記仮想マシンの削除後に、前記リカバリプール内で動作している前記仮想マシンがある場合、当該仮想マシンを前記リソースプールに移動させることができるか判断する
ことを特徴とする請求項２から請求項５の何れか１項に記載の仮想化システム。
【請求項７】
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバであって、
前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定手段と、
前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御手段を含み、
前記配置判定手段が、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする制御サーバ。
【請求項８】
前記配置判定手段が、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする請求項７に記載の制御サーバ。
【請求項９】
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバによる仮想マシン配置方法であって、
配置判定手段が、前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定ステップと、
配置制御手段が、前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御ステップとを有し、
前記配置判定ステップで、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする仮想マシン配置方法。
【請求項１０】
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバを構成するコンピュータ上で動作する仮想マシン配置プログラムであって、
配置判定手段に、前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定処理を実行させ、
配置制御手段に、前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御処理を実行させ、
前記配置判定処理で、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする仮想マシン配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの配置技術に関し、特に、リソースプールのリソース量を考慮して仮想マシンの配置を行う技術に関する。
【背景技術】
【０００２】
近年、大規模データセンタをネットワーク経由で使用すること（クラウドコンピューティング）が注目されてきているが、クラウドコンピューティング環境ではシステムを使用するユーザ（テナント）が統合化されたハードウェア基盤を利用することに特徴があり、リソース量が保証されることの必要性があることなどの特徴がある。
【０００３】
仮想マシンが動作する複数のホストのＣＰＵやメモリなどのリソース量を合算してリソースプールを形成することができる。リソースプールは分割することができて、分割されたリソース量に応じてユーザは複数の仮想マシン（ＶＭ）を利用することができる。リソースプールはリソース量を保証する仕組みである。
【０００４】
リソースプール内ではストレージやネットワークが共有化されており、仮想マシンはリソースプール内を移動することができる。
【０００５】
ここで、本発明の関連技術が、特許文献１及び特許文献２に開示されている。
【０００６】
特許文献１では、リソースプールを用いてグループ化した仮想サーバに対して、割り当てる合計リソース量を設定し、該仮想サーバで該リソースを共有する旨が記載されている。
【０００７】
特許文献２では、リソースの割付が不可能である場合に、余剰リソース化できるリソースがある場合、当該リソースを余剰リソース化する旨が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２８２４２０号公報
【特許文献２】特開２００９−１４１６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ホストをメンテナンスする場合やホストマシンが故障した場合に、リソースプールの総量が減少し、ユーザに払いだしたリソース量が減ってしまうという問題がある。そのため、リソースプールにメンテナンスや故障を予期して追加のリソースを割り当てておくことがおこなわれているが、そうすると、ユーザは与えられたリソース量の全ては使ってはいけないことになるという問題がある。また、そのような追加のリソースは複数のリソースプールが存在する時に個々のリソースプールで割り当てねばならず、必要とするホストマシンの数が多くなるという問題がある。
【００１０】
また、特許文献２は、複数のサービスの間で互いに余剰の計算機リソースを融通しあうものであり、特許文献１の技術に適用しても、余剰リソース化したリソースについてはリソース量が減ってしまうという問題がある。
【００１１】
（発明の目的）
本発明の目的は、上述の課題を解決し、物理ホストマシンのメンテナンス時や障害時にリソースプール総量を減らさずに運用を継続することができる仮想化システム、制御サーバ、仮想マシン配置方法、仮想マシン配置プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の第１の仮想化システムは、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバとを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用する。
【００１３】
本発明の第１の制御サーバは、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバとを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用する仮想化システムにおける制御サーバであって、仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量がリソースプールに有るか判定する配置判定手段と、配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御手段を含み、配置判定手段が、リソースプールの全体のリソース量から、該リソースプールを利用して動作してい仮想マシンが持つリソース量と、メンテナンス状態にあるホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、リソースプールの空き容量を計算し、空き容量が仮想マシンの作成に要求されるリソース量より少ない場合、メンテナンス状態にあるホストや障害によりダウンしているホストが無かった場合に、仮想マシンの作成が可能かどうか判断し、仮想マシンの作成を可能と判断したときは、リカバリプールに仮想マシンを作成できるか判定し、作成できる場合、リカバリプールに仮想マシンを作成する旨の指示を配置制御手段に行う。
【００１４】
本発明の第１の仮想マシン配置方法は、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバとを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用する仮想化システムにおける制御サーバによる仮想マシン配置方法であって、配置判定手段が、仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量がリソースプールに有るか判定する配置判定ステップと、配置制御手段が、配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御ステップとを有し、配置判定ステップで、リソースプールの全体のリソース量から、該リソースプールを利用して動作している仮想マシンが持つリソース量と、メンテナンス状態にあるホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、リソースプールの空き容量を計算し、空き容量が仮想マシンの作成に要求されるリソース量より少ない場合、メンテナンス状態にあるホストや障害によりダウンしているホストが無かった場合に、仮想マシンの作成が可能かどうか判断し、仮想マシンの作成を可能と判断したときは、リカバリプールに仮想マシンを作成できるか判定し、作成できる場合、リカバリプールに仮想マシンを作成する旨の指示を配置制御手段に行う。
【００１５】
本発明の第１の仮想マシン配置プログラムは、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバとを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用する仮想化システムにおける制御サーバを構成するコンピュータ上で動作する仮想マシン配置プログラムであって、配置判定手段に、仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量がリソースプールに有るか判定する配置判定処理を実行させ、配置制御手段に、配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御処理を実行させ、配置判定処理で、リソースプールの全体のリソース量から、該リソースプールを利用して動作している仮想マシンが持つリソース量と、メンテナンス状態にあるホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、リソースプールの空き容量を計算し、空き容量が仮想マシンの作成に要求されるリソース量より少ない場合、メンテナンス状態にあるホストや障害によりダウンしているホストが無かった場合に、仮想マシンの作成が可能かどうか判断し、仮想マシンの作成を可能と判断したときは、リカバリプールに仮想マシンを作成できるか判定し、作成できる場合、リカバリプールに仮想マシンを作成する旨の指示を配置制御手段に行う。
【発明の効果】
【００１６】
本発明によれば、物理ホストマシンのメンテナンス時や障害時にリソースプール総量を減らさずに運用を継続することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態による仮想化システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態による制御サーバの構成を示すブロック図である。
【図３】本発明の第１の実施の形態による仮想化システムの動作を示すフローチャートである。
【図４】本発明の制御サーバのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１９】
（第１の実施の形態）
本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２０】
図１は本発明の第１の実施の形態による仮想化システム１０の構成を示すブロック図である。
【００２１】
図１を参照すると、本実施の形態による仮想化システム１０は、制御サーバ１００と、リソースプール２００〜２１０と、リカバリプール３００と、リソースプールとリカバリプールを形成するホスト４００〜４４０と、仮想マシン（ＶＭ）５００〜５２０とを備える。なお、図１は本実施の形態を模式的に説明するための例示であって、システム構成を制限するものではない。すなわち、リソースプール、ホスト及び仮想マシンは任意の台数として構成可能である。
【００２２】
制御サーバ１００はネットワークを通じてホスト４００〜４３０を制御して仮想マシン５００〜５２０を制御するソフトウェアを搭載したハードウェアである。
【００２３】
ホスト４００〜４３０は、仮想マシン５００〜５２０を実現するソフトウェアを搭載したハードウェアである。
【００２４】
リソースプール２００〜２１０は、制御サーバ１００若しくはホスト４００−４３０により実現される区画であり、仮想マシン５００−５２０はこの区画内で動作するように制御される。
【００２５】
リカバリプール３００は、リソースプール２００〜２１０と同種類の区画であり、ホスト４４０のリソースにより実現される。
【００２６】
リカバリプール３００は、複数のリソースプール２００〜２１０により共有されることに特徴があり、リカバリプールとリソースプール間で仮想マシンが移動できるように構成されている。
【００２７】
図２は、制御サーバ１００内で動作するプログラムの論理的な構造を模式的に表したブロック図である。図２を参照すると、制御サーバ１００は、配置判定手段１０１、配置制御手段１０２、定義格納手段１０３を備える。
【００２８】
配置判定手段１０１は、仮想マシンの作成時や削除時、ホストのメンテナンス開始時や終了時、ホストの障害発生時や回復時に呼び出されるプログラムであり、仮想マシンの配置に関する判断をおこない、判断結果を配置制御手段１０２に受け渡すものである。
【００２９】
配置制御手段１０２は、配置判定手段１０１から受け取った仮想マシンに関する配置指示を、ホスト４００〜４４０を制御して実現するものである。
【００３０】
なお、配置制御手段１０２と配置制御手段１０２は別のマシンに配置されることが可能である。
【００３１】
定義格納手段１０３は、磁気ディスク等の不揮発性の記憶装置に格納されているデータである、リソースプール定義１０６，リカバリプール定義１０７、仮想化システム構成情報１０８を管理するＤＢＭＳ（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）に相当する。
【００３２】
リソースプール定義１０６には、リソースプールに関する定義が格納されている。
【００３３】
リカバリプール定義１０６には、リカバリプールに関する定義が格納されている。
【００３４】
仮想化システム構成情報１０８には、ホストと仮想マシンに関する構成情報が格納されている。
【００３５】
本発明は、上述の構成を有し、物理ホストマシンのメンテナンス時や障害時にリソースプール総量を減らさずに運用を継続できること、及びメンテナンス時や障害時に使用するプールを他のリソースプールと共有することを特徴とする。具体的には、リソースプールに関連したリソースプール（リカバリプール）を用意し、通常のＶＭ作成や動作には使わないが、リソースプール内のホストマシンのメンテナンスや障害時にはリカバリプールを優先的に使用する
【００３６】
（第１の実施の形態の動作の説明）
次に、本実施の形態による仮想化システム１０の動作について、図面を参照して詳細に説明する。
【００３７】
制御サーバ１００は、仮想マシンの作成指示を受けると、配置判定手段１０１を利用して仮想マシンを作成するだけのリソースがリソースプールにあるか判定する。仮想マシンを作成できる場合は、配置制御手段１０２を用いて仮想マシンの作成を実行する。
【００３８】
配置判定手段１０１ではリソースプールの空き容量と作成する仮想マシンが要求するリソース量を比較して、空き容量が要求するリソース量よりも大きいかどうかを判断する。空き容量はリソースプールを構成するホストが持つリソース量の合計から、リソースプールで動作している仮想マシンが持つリソース量の合計を減算したものである。
【００３９】
ここで、メンテナンス状態にあるホストが持つリソース量や、障害などでダウンしているホストが持つリソース量を除外して容量を計算する（図３：Ｐ−１−１０１）。
【００４０】
除外前の合計のリソース量をＣとし、動作している仮想マシンが持つ合計のリソース量をＵとし、除外されたリソース量をＣｄとし、作成する仮想マシンのリソース量をＲとすると、Ｃ−Ｕ−Ｃｄ  ＞＝  Ｒ  の場合に、作成可能である（図３：Ｐ−１−１０２）
【００４１】
配置判定手段１０１はリソースプールに仮想マシンを作成することを配置制御手段１０２に指示して仮想マシンを作成する。
【００４２】
配置判定手段１０１は、空きリソースが足りない場合（Ｃ−Ｕ−Ｃｄ  ＜  Ｒ）に、仮想マシンの作成を拒絶するが、次に、もし、Ｃｄ  ＝  ０、つまり、メンテナンス状態や故障状態のホストが無かった場合に作成可能かどうか判断する（図３：Ｐ−１−１０３）。
【００４３】
ここで作成可能と判断した場合（Ｃ−Ｕ＞＝Ｒ）は、リソースプールに関連するリカバリプールの情報を参照し、リカバリプールの空き容量（Ｆｒ）を取得し（図３：Ｐ−１−１０４）、リカバリプールに仮想マシンを作成できるか判定する。Ｆｒ  ＞＝  Ｒの場合に、作成可能である（図３：Ｐ−１−１０２）。
【００４４】
次いで、配置判定手段１０１は、リカバリプールに仮想マシンを作成することを配置制御手段１０２に指示して仮想マシンを作成する。リカバリプールで作成出来なかった場合、リソースプールには複数のリカバリプールが関連しているのでこの手順をそれぞれのリカバリプールについて判定する。一つのリカバリプールは複数のリソースプールにより共有されることができるので、配置判定手段１０１はリカバリプールの容量を計算する時に排他して処理をおこなう。
【００４５】
リカバリプールで仮想マシンを動作させた場合、仮想マシンがリソースプールで動作しているとみなして、リソースプール定義１０６に仮想マシンのリソース量が加算する（図３：Ｐ−１−１０５）。
【００４６】
リソースプール内のホストをメンテナンス状態にする際や、ホストの障害を検出した際には、配置判定手段１０１が呼び出され、ホスト上で動作していた仮想マシンをリソースプール内の別のホストへ移動する判定をして、制御する。このホストのリソース量を除外した結果、リソースプール内の仮想マシンを動作させる十分なリソースが無い場合は、リカバリプールからホストが持っているリソース量を借り出して、仮想マシンをリカバリプール内で動作させる判定をする。その判定手段は仮想マシンの作成の場合と同等である。
【００４７】
リソースプール内のメンテナンス状態や故障状態のホストの状態が変更され、回復した場合に、配置判定手段１０１はリカバリプール内で動作している仮想マシンをリソースプール内に移動させる判断をして、配置制御手段１０２に指示する。
【００４８】
また、リソースプール内の仮想マシンを削除する際にも、仮想マシンの削除後に、リカバリプール内で動作している仮想マシンをリソースプール内に移動させることができるかの判断をして、配置制御手段１０２に指示する。
【００４９】
リカバリプール内の仮想マシンを削除する際には、リソースプール内の仮想マシンが持つ合計のリソース量から減算する。
【００５０】
（第１の実施の形態による効果）
本実施の形態による第１の効果は、リソースプール内のホストがメンテナンス状態や故障状態になっても、利用者が利用可能なリソース量が減らないことである。
【００５１】
本実施の形態による第２の効果は、リカバリプールを複数のリソースプールで共有することで、メンテナンスや故障を予期して用意しておくホスト数を全体として減らすことができることである。例えば、リソースプール内に１台のホストを余剰に持つように構成すると１０個のリソースプールで１０台のホストが余剰に必要であるが、ホストを２台持つリカバリプールを１つ用意し、１０個のリソースプールでそれを共有すると、８台のホストを削減することができる。
【００５２】
なお、本発明の課題を解決できる最小限の構成は、図１に示す通りである。仮想化システム１００が、仮想マシンが動作可能な複数のホストと、仮想マシンを制御する制御サーバ１００とを備え、１つ以上のホストが、仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上のホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、ホストのメンテナンスや障害時に、リカバリプールを利用することで、上述した本発明の課題を解決することができる。
【００５３】
（第２の実施の形態）
本発明の第２の実施の形態として、リカバリプール内のリソースが枯渇して要求に答えられない場合に、コンピュータとネットワークやストレージの接続を実行し、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を自動的にインストールして、リカバリプールに所属できるホストを作成してプールを拡大する構成とすることができる。拡大されたプールは必要が無くなった際に自動的に縮小される。
【００５４】
次に、本発明の制御サーバ１００のハードウェア構成例について、図４を参照して説明する。図４は、制御サーバ１００のハードウェア構成例を示すブロック図である。
【００５５】
図４を参照すると、本発明の制御サーバ１００は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部５０２、ネットワークを介してデータの送受信を行う通信部５０３、入力装置５０５や出力装置５０６及び記憶装置５０７と接続してデータの送受信を行う入出力インタフェース部５０４、上記各構成要素を相互に接続するシステムバス５０８を備えている。記憶装置５０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【００５６】
本発明の制御サーバ１００の各機能は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置５０７に格納し、そのプログラムを主記憶部５０２にロードしてＣＰＵ５０１で実行することにより、ソフトウェア的に実現することも可能である。
【００５７】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００５８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００５９】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００６０】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００６１】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００６２】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【００６３】
（付記１）
仮想マシンが動作可能な複数のホストと、
前記仮想マシンを制御する制御サーバとを備え、
１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、
１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、
前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する
ことを特徴とする仮想化システム。
【００６４】
（付記２）
前記制御サーバが、
前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定手段と、
前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御手段を含み、
前記配置判定手段は、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作してい前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする付記１に記載の仮想化システム。
【００６５】
（付記３）
前記配置判定手段が、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする付記２に記載の仮想化システム。
【００６６】
（付記４）
前記配置判定手段は、
前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能でないと判断した場合は、前記仮想マシンの作成を拒絶する
ことを特徴とする付記２又は付記３に記載の仮想化システム。
【００６７】
（付記５）
前記配置判定手段が、
前記ホストがメンテンス状態になる場合、若しくは前記ホストの障害を検出した際に、当該ホストのリソース量を除いた前記リソースプールの空き容量が、動作している前記仮想マシンに必要なリソース量より少ない場合、前記リカバリプールに前記仮想マシンを移動できるか判定し、移動できる場合、前記リカバリプールに前記仮想マシンの異動の指示を前記配置制御手段に行う
ことを特徴とする付記２から付記４の何れか１項に記載の仮想化システム。
【００６８】
（付記６）
前記配置判定手段が、
前記仮想マシンの削除後に、前記リカバリプール内で動作している前記仮想マシンがある場合、当該仮想マシンを前記リソースプールに移動させることができるか判断する
ことを特徴とする付記２から付記５の何れか１項に記載の仮想化システム。
【００６９】
（付記７）
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバであって、
前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定手段と、
前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御手段を含み、
前記配置判定手段が、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする制御サーバ。
【００７０】
（付記８）
前記配置判定手段が、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする付記７に記載の制御サーバ。
【００７１】
（付記９）
前記配置判定手段は、
前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能でないと判断した場合は、前記仮想マシンの作成を拒絶する
ことを特徴とする付記７又は付記８に記載の制御サーバ。
【００７２】
（付記１０）
前記配置判定手段が、
前記ホストがメンテンス状態になる場合、若しくは前記ホストの障害を検出した際に、当該ホストのリソース量を除いた前記リソースプールの空き容量が、動作している前記仮想マシンに必要なリソース量より少ない場合、前記リカバリプールに前記仮想マシンを移動できるか判定し、移動できる場合、前記リカバリプールに前記仮想マシンの異動の指示を前記配置制御手段に行う
ことを特徴とする付記７から付記９の何れか１項に記載の制御サーバ。
【００７３】
（付記１１）
前記配置判定手段が、
前記仮想マシンの削除後に、前記リカバリプール内で動作している前記仮想マシンがある場合、当該仮想マシンを前記リソースプールに移動させることができるか判断する
ことを特徴とする付記７から付記１０の何れか１項に記載の制御サーバ。
【００７４】
（付記１２）
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバによる仮想マシン配置方法であって、
配置判定手段が、前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定ステップと、
配置制御手段が、前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御ステップとを有し、
前記配置判定ステップで、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする仮想マシン配置方法。
【００７５】
（付記１３）
前記配置判定ステップで、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする付記１２に記載の仮想マシン配置方法。
【００７６】
（付記１４）
前記配置判定ステップで、
前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能でないと判断した場合は、前記仮想マシンの作成を拒絶する
ことを特徴とする付記１２又は付記１３に記載の仮想マシン配置方法。
【００７７】
（付記１５）
前記配置判定ステップで、
前記ホストがメンテンス状態になる場合、若しくは前記ホストの障害を検出した際に、当該ホストのリソース量を除いた前記リソースプールの空き容量が、動作している前記仮想マシンに必要なリソース量より少ない場合、前記リカバリプールに前記仮想マシンを移動できるか判定し、移動できる場合、前記リカバリプールに前記仮想マシンの異動の指示を前記配置制御手段に行う
ことを特徴とする付記１２から付記１３の何れか１項に記載の仮想マシン配置方法。
【００７８】
（付記１６）
前記配置判定ステップで、
前記仮想マシンの削除後に、前記リカバリプール内で動作している前記仮想マシンがある場合、当該仮想マシンを前記リソースプールに移動させることができるか判断する
ことを特徴とする付記１２から付記１５の何れか１項に記載の仮想マシン配置方法。
【００７９】
（付記１７）
仮想マシンが動作可能な複数のホストと、前記仮想マシンを制御する制御サーバとを備え、１つ以上の前記ホストが、前記仮想マシンを作成する１つ以上のリソースプールを構成し、１つ以上の前記ホストが、各リソースプールで共有されるリソースプールであるリカバリプールを構成し、前記ホストのメンテナンスや障害時に、前記リカバリプールを利用する仮想化システムにおける制御サーバを構成するコンピュータ上で動作する仮想マシン配置プログラムであって、
配置判定手段に、前記仮想マシンを作成する時に、当該仮想マシンの作成に必要なリソース量が前記リソースプールに有るか判定する配置判定処理を実行させ、
配置制御手段に、前記配置判定手段の判定に応じて仮想マシンの作成や移動を行う配置制御処理を実行させ、
前記配置判定処理で、
前記リソースプールの全体のリソース量から、該リソースプールを利用して動作している前記仮想マシンが持つリソース量と、メンテナンス状態にある前記ホストが持つリソース量と、障害によりダウンしているホストが持つリソース量を減算することで、前記リソースプールの空き容量を計算し、
前記空き容量が前記仮想マシンの作成に要求されるリソース量より少ない場合、前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能かどうか判断し、前記仮想マシンの作成を可能と判断したときは、前記リカバリプールに前記仮想マシンを作成できるか判定し、作成できる場合、前記リカバリプールに前記仮想マシンを作成する旨の指示を前記配置制御手段に行う
ことを特徴とする仮想マシン配置プログラム。
【００８０】
（付記１８）
前記配置判定処理で、
前記メンテナンス状態にあるホスト若しくは前記障害によりダウンしているホストが回復した場合、前記リカバリプールで動作している前記仮想マシンを前記リソースプールに移動させる判断を行い、前記配置制御手段に指示する
ことを特徴とする付記１７に記載の仮想マシン配置プログラム。
【００８１】
（付記１９）
前記配置判定処理で、
前記メンテナンス状態にあるホストや前記障害によりダウンしているホストが無かった場合に、前記仮想マシンの作成が可能でないと判断した場合は、前記仮想マシンの作成を拒絶する
ことを特徴とする付記１７又は付記１８に記載の仮想マシン配置プログラム。
【００８２】
（付記２０）
前記配置判定処理で、
前記ホストがメンテンス状態になる場合、若しくは前記ホストの障害を検出した際に、当該ホストのリソース量を除いた前記リソースプールの空き容量が、動作している前記仮想マシンに必要なリソース量より少ない場合、前記リカバリプールに前記仮想マシンを移動できるか判定し、移動できる場合、前記リカバリプールに前記仮想マシンの異動の指示を前記配置制御手段に行う
ことを特徴とする付記１７から付記１８の何れか１項に記載の仮想マシン配置プログラム。
【００８３】
（付記２１）
前記配置判定処理で、
前記仮想マシンの削除後に、前記リカバリプール内で動作している前記仮想マシンがある場合、当該仮想マシンを前記リソースプールに移動させることができるか判断する
ことを特徴とする付記１７から付記２０の何れか１項に記載の仮想マシン配置プログラム。
【符号の説明】
【００８４】
１０：仮想化システム
１００：制御サーバ
１０１：配置判定手段
１０２：配置制御手段
１０３：定義格納手段
１０６：リソースプール定義
１０７：リカバリプール定義
１０８：仮想化システム構成情報
５００〜５２０：仮想マシン（ＶＭ）
２００、２１０：リソースプール
３００：リカバリプール
４００〜４４０：ホスト
５０１：ＣＰＵ
５０２：主記憶部
５０３：通信部
５０４：入出力インタフェース部
５０５：入力装置
５０６：出力装置
５０７：記憶装置
５０８：システムバス
【図１】
2013210745.tif 000003
【図２】
2013210745.tif 000004
【図３】
2013210745.tif 000005
【図４】
2013210745.tif 000006