(57)【要約】【課題】仮想サーバの引き継ぎ先の物理サーバのリソースが、引き継ぎ元の物理サーバよりも少ない場合であっても、仮想サーバを引き継ぐことを可能にする。【解決手段】複数の仮想計算機を構築する仮想化部を有する複数の物理計算機とネットワークで接続された管理計算機と、を有し、管理計算機が、複数の物理計算機のうち第１の物理計算機の計算機リソースを仮想計算機に割り当てて当該仮想計算機を稼働させ、仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持し、仮想計算機が第１の物理計算機で実際に使用した計算機リソースを実使用量として取得し、所定条件が成立したときに、仮想計算機の移動先として複数の物理計算機のうち実使用量以上の計算機リソースを確保可能な物理計算機を第２の物理計算機として選択し、定義情報を実使用量に更新して仮想計算機を前記第２の物理計算機に移動させる。【選択図】図１
2011128967.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、プロセッサとメモリを前記物理計算機とネットワークで接続された管理計算機と、を有する仮想計算機システムで仮想計算機を移動させる方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップと、
前記管理計算機が、前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持するステップと、
前記管理計算機は、前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得するステップと、
前記管理計算機が、所定条件が成立したか否かを判定するステップと、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップと、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップと、を含むことを特徴とする仮想計算機の移動方法。
【請求項２】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機は、前記物理計算機に障害または障害予兆があることを検出するステップをさらに含み、
前記管理計算機が、所定条件が成立したか否かを判定するステップは、
前記障害または障害予兆が検出されたことを前記所定条件の成立とすることを特徴とする仮想計算機の移動方法。
【請求項３】
請求項２に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記管理計算機は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係を仮想計算機管理情報に保持し、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記仮想計算機管理情報から前記障害または障害予兆の影響を受ける仮想計算機を前記仮想計算機管理情報を検索して特定するステップと、
前記特定された仮想計算機の前記実使用量以上の計算機リソースを確保可能な物理計算機を当該特定された仮想計算機の移動先の前記第２の物理計算機として選択するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項４】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップは、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させることを特徴とする仮想計算機の移動方法。
【請求項５】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記管理計算機は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係と、前記仮想計算機毎に設定した優先度を仮想計算機管理情報に保持し、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択するステップと、
当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項６】
請求項５に記載の仮想計算機の移動方法であって、
前記管理計算機は、前記物理計算機に障害または障害予兆があることを検出するステップをさらに含み、
前記管理計算機が、所定条件が成立したか否かを判定するステップは、
前記障害または障害予兆が検出されたことを前記所定条件の成立とし、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記仮想計算機を稼働させる物理計算機の稼働状態が所定の稼動状態となり、かつ、前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択するステップと、
当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項７】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算は、前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させるステップをさらに含み、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記仮想計算機に最初に割り当てた計算機リソースの情報を前記仮想計算機のオリジナルの定義情報として保持し、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップは、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させ、前記変更した定義情報を移動の履歴として保持し、
前記管理計算は、前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させるステップは、
前記仮想計算機のオリジナルの定義情報で前記仮想計算機を前記第１の物理計算機に移動させることを特徴とする仮想計算機の移動方法。
【請求項８】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、
プロセッサとメモリを備えて前記物理計算機とネットワークで接続された管理計算機と、を有する仮想計算機システムであって、
前記管理計算機は、
前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させ、前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持する仮想計算機定義情報と、
前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得し、前記仮想計算機に割り当てた計算機リソースと実使用量の関係を保持する仮想計算機管理情報と、
所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択し、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させる回復部と、を備えたことを特徴とする仮想計算機システム。
【請求項９】
請求項８に記載の仮想計算機システムであって、
前記管理計算機は、
前記物理計算機に障害または障害予兆があることを検出する障害予兆管理部をさらに備え、
前記回復部は、
前記障害または障害予兆が検出されたことを前記所定条件の成立とすることを特徴とする仮想計算機システム。
【請求項１０】
請求項９に記載の仮想計算機システムであって、
前記仮想計算機管理情報は、
複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係を保持し、
前記回復部は、
前記仮想計算機管理情報から前記障害または障害予兆の影響を受ける仮想計算機を前記仮想計算機管理情報を検索して特定し、前記特定された仮想計算機の前記実使用量以上の計算機リソースを確保可能な物理計算機を当該特定された仮想計算機の移動先の前記第２の物理計算機として選択することを特徴とする仮想計算機システム。
【請求項１１】
請求項８に記載の仮想計算機システムであって、
前記回復部は、
前記仮想計算機に対応する定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させることを特徴とする仮想計算機システム。
【請求項１２】
請求項８に記載の仮想計算機システムであって、
前記仮想計算機管理情報は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係と、前記仮想計算機毎に設定した優先度を保持し、
前記回復部は、
前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択し、当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪することを特徴とする仮想計算機システム。
【請求項１３】
請求項１２に記載の仮想計算機の移動方法であって、
前記管理計算機は、
前記物理計算機に障害または障害予兆があることを検出する障害予兆管理部をさらに備え、
前記回復部は、
前記障害または障害予兆が検出されたことを前記所定条件の成立とし、当該所定条件が成立したときに、前記仮想計算機を稼働させる物理計算機の稼働状態が所定の稼動状態となり、かつ、前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択し、当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪することを特徴とする仮想計算機のシステム。
【請求項１４】
請求項８に記載の仮想計算機システムであって、
前記管理計算は、
前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させる仮想計算機復帰部をさらに備え、
前記仮想計算機定義情報は、
前記仮想計算機に最初に割り当てた計算機リソースの情報を前記仮想計算機のオリジナルの定義情報として保持し、
前記回復部は、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させ、前記変更した定義情報を移動の履歴として保持し、
前記仮想計算機復帰部は、
前記仮想計算機のオリジナルの定義情報で前記仮想計算機を前記第１の物理計算機に移動させることを特徴とする仮想計算機システム。
【請求項１５】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、プロセッサとメモリを前記物理計算機とネットワークで接続された管理計算機と、を有し、前記管理計算機を制御するプログラムであって、
前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させる手順と、
前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持する手順と、
前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得する手順と、
所定条件が成立したか否かを判定する手順と、
前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択する手順と、
前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させる手順と、
を前記管理計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバの信頼性を向上するための方法およびシステムに関する。
【背景技術】
【０００２】
企業の計算機システムやデータセンタにおいて、サーバの保有台数が増大した結果、運用管理コストも増大している。この問題を解決する一つの方法として、サーバの仮想化技術がある。サーバの仮想化技術は、単一の物理サーバ上で複数の仮想サーバを稼働することができる技術である。物理サーバには、プロセッサやメモリといったリソースがあり、サーバの仮想化技術は物理的なリソースを分割し、分割したリソースのそれぞれを異なる仮想的なサーバに割り当てることで単一の物理サーバ上で複数の仮想サーバを同時に実行する。プロセッサの性能向上とメモリなどのリソースが低コスト化したことで、サーバの仮想化技術に関するニーズが増大している。
【０００３】
一方で、システムの高信頼化に関するニーズもますます高くなっている。企業システムの計算機の依存度が大きくなったことで、システムの停止による損害も大きくなったためである。システムを高信頼化する方法として現用系サーバとは別に待機系サーバを用意しておき、現用系サーバに障害が発生した場合には、待機系サーバと交代する技術が一般的である。
【０００４】
サーバの仮想化と高信頼化の２つのニーズの流れから、仮想化されたサーバ環境でありながら高信頼を維持するという技術に対するニーズが生まれるのは自然であると考えられる（例えば、特許文献１）。しかし、２つの技術はお互いに相反する特性を持っている。例えば、物理サーバ上に複数の仮想サーバを構築した場合、物理サーバに障害が発生するとその上で稼働している全ての仮想サーバが一度に停止してしまう。独立した複数のサーバでシステムが構築されていれば、単一の物理サーバの障害の影響範囲は小さいが、単一の物理サーバに複数のサーバを集約することができる仮想化技術は障害の影響範囲が大きくなってしまう。そのため、仮想化環境では信頼性が低下する傾向がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２１６１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、仮想化されたサーバ環境であっても、低コストに高信頼化する事である。特に、高信頼化のための交代用（待機系）のサーバの台数を少なくする事である。
【０００７】
サーバに障害が発生し、交代サーバに切り替えるためには、稼働していた仮想サーバを正確に把握しておく必要がある。仮想サーバは、物理サーバと違い、物理サーバのプロセッサやメモリなどのリソースに余裕があれば比較的容易に増減することができる。しかし、上記従来例では、リソースに余裕がない場合は、障害を回復することができないという課題がある。例えば、ＣＰＵが３ＧＨｚ、メモリが４ＧＢのリソースが割当てられた仮想サーバに深刻な障害が発生した場合には、同等のリソースを有する物理サーバが存在しなければならない。
【０００８】
そこで本発明は、上記問題点に鑑みてなされたもので、仮想サーバの引き継ぎ先の物理サーバのリソースが、引き継ぎ元の物理サーバよりも少ない場合であっても、仮想サーバを引き継ぐことを可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、プロセッサとメモリを前記物理計算機とネットワークで接続された管理計算機と、を有する仮想計算機システムで仮想計算機を移動させる方法であって、前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップと、前記管理計算機が、前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持するステップと、前記管理計算機は、前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得するステップと、前記管理計算機が、所定条件が成立したか否かを判定するステップと、前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップと、前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップと、を含む。
【発明の効果】
【００１０】
したがって、本発明によれば、移動前の物理計算機よりも少ない計算機リソースで仮想計算機の移動または障害からの回復を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態を示し、本発明を適用する仮想計算機システムのブロック図を示す。光学ディスク装置の構成を示すブロック図である。
【図２】管理サーバ１０１の構成を示すブロック図である。
【図３】管理サーバ１０１の管理対象となるサーバ仮想化機構１１０が稼働している物理サーバ１１１の詳細な構成を示すブロック図である。
【図４】本発明の仮想計算機システムの動作概要を示すブロック図である。
【図５】サーバ管理テーブル１０８の詳細を示す説明図である。
【図６】仮想サーバ管理テーブル１０７の詳細を示す説明図である。
【図７】仮想サーバ定義情報テーブル１１８の構成を示す説明図である。
【図８】仮想サーバ１０９の定義情報３０９の内容を示す説明図である。
【図９】障害回復部１０２で行われる処理の一例を示すのフローチャートである。
【図１０】障害予兆管理部１０４で行われる処理の一例を示すフローチャートである。
【図１１】仮想サーバ回復方法選択部１０５で行われる処理の一例を示すフローチャートである。
【図１２】仮想サーバ回復部１０６で行われる処理の概要を示すフローチャートを示す。
【図１３】仮想サーバ定義情報管理部１０３で行われる処理の概要を示すフローチャートを示す。
【図１４】仮想サーバ復帰部１１９で行われる処理の概要を示すフローチャートを示す。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１３】
図１は、本発明を適用する仮想計算機システムのブロック図を示す。本実施形態における制御の中心は、管理サーバ１０１である。管理サーバ１０１は、障害回復部１０２、仮想サーバ定義情報管理部１０３、障害予兆管理部１０４、仮想サーバ回復方法選択部１０５、仮想サーバ回復部１０６、仮想サーバ管理テーブル１０７、サーバ管理テーブル１０８、仮想サーバ定義情報テーブル１１８、仮想サーバ復帰部１１９から構成される。
【００１４】
管理サーバ１０１の管理対象は、ネットワークスイッチ１２０、物理サーバ１１１−１〜１１１−ｎ，サーバ仮想化機構１１０，ストレージスイッチ１１２、仮想サーバ１０９、ディスクアレイ装置１１６である。ここで、サーバ仮想化機構１１０は、物理サーバ１１１を複数の仮想サーバ１０９に見せかける機能を有しており、単一の物理サーバ１１１に複数のサーバを統合することができる。サーバ仮想化機構１１０は、ハイパーバイザーやＶＭＭ（Virtual Machine Manager）等で構成することができる。なお、以下では、物理サーバ１１１−１〜１１１−ｎの総称を物理サーバ１１１とする。
【００１５】
ディスクアレイ装置１１６は、ストレージスイッチ１１２を介して物理サーバ１１１に接続される。なお、ディスクアレイ装置１１６と物理サーバ１１１を接続するストレージスイッチは１１２、ＳＡＮ（Storage Area Network）を構成する。また、管理サーバ１０１と物理サーバ１１１を接続するネットワークスイッチ１２０は、図２に示すネットワーク２０７を構成する。
【００１６】
ディスクアレイ装置１１６には、仮想サーバ１０９で実行されるプログラムが格納された仮想サーバイメージ格納ディスク１１４と仮想サーバ１０９の計算機リソースの割当て情報が格納された定義情報格納ディスク１１５がある。本発明における実施形態では、物理サーバ１１１のいずれかに障害あるいは障害予兆を検出すると、他の物理サーバ上に障害や障害予兆の影響を受ける仮想サーバを移動することで高信頼なシステムを構成する。
【００１７】
ここで、管理サーバ１０１の機能要素の概要は、次の通りである。
【００１８】
障害回復部１０２は、後述するように、物理サーバ１１１の障害の発生または障害の予兆を検出したときに、物理サーバ１１１の回復と仮想サーバ１０９の回復を制御する。
【００１９】
仮想サーバ定義情報管理部１０３は、仮想サーバ１０９の引き継ぎ先の物理サーバ１１１に十分な空きリソースが存在しない場合でも、仮想サーバ１０９を移動することで信頼性を高めるための処理を行う。
【００２０】
障害予兆管理部１０４は、管理サーバ１０１の管理対象である物理サーバ１１１毎に、障害や障害の予兆が発生していないかを検査する。
【００２１】
仮想サーバ回復方法選択部１０５は、物理サーバ１１１の障害あるいは障害予兆の検出結果、障害の影響を受ける仮想サーバ１０９の優先度、および物理サーバ１１１の計算機リソースの空き状況に基づいて、仮想サーバ１０９の回復方法を選択する処理を行う。
【００２２】
仮想サーバ回復部１０６は、仮想サーバ回復方法選択部１０５の実行結果に基づき、仮想サーバ１０９の回復を実行する。
【００２３】
仮想サーバ管理テーブル１０７は、サーバ仮想化機構１１０に関する詳細な情報が格納される。サーバ管理テーブル１０８は、物理サーバ１１１のリソースを管理する。仮想サーバ定義情報テーブル１１８は、仮想サーバ１０９毎の優先度と、物理サーバ１１１のリソースを割り当てた当初（オリジナル）の割り当て情報の位置と、仮想サーバの引き継ぎに関する情報が格納される。
【００２４】
仮想サーバ復帰部１１９は、待機系の物理サーバ１１１に移動した仮想サーバ１０９を、元の現用系の物理サーバ１１１に復帰させる処理を実行する。なお、図１において、例えば、物理サーバ１１１−１、１１１−２が現用系を構成し、物理サーバ１１１−ｎが待機系を構成することができる。
【００２５】
図２は、本発明における管理サーバ１０１の構成を示すブロック図である。管理サーバ１０１は、メモリ２０２、プロセッサ２０３、ＦＣＡ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）２０４、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５、ＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）２０６から構成される。
【００２６】
プロセッサ２０３は、メモリ２０２内に格納された各種プログラムを実行する。ＦＣＡ２０４は外部のストレージ（例えば、ディスクアレイ装置１１６）と接続される。ＮＩＣ２０５およびＢＭＣ２０６はネットワーク２０７に接続される。ＮＩＣ２０５は、主にメモリ２０２上の各種プログラムからの要求に応じてネットワーク２０７を介して他のサーバと通信する。ＢＭＣ２０６は管理サーバ１０１の障害などを検知し、ネットワーク２０７を介して他のサーバと通信するために使用する。本実施形態では、ＮＩＣ２０５とＢＭＣ２０６は同一のネットワーク２０７に接続されているが、異なるネットワークに接続しても良い。また、ＦＣＡ２０４、ＮＩＣ２０５はそれぞれ一つずつであるが、複数存在しても良い。
【００２７】
メモリ２０２上には、障害回復部１０２、仮想サーバ定義情報管理部１０３、障害予兆管理部１０４，仮想サーバ回復方法選択部１０５、仮想サーバ回復部１０６、仮想サーバ管理テーブル１０７、サーバ管理テーブル１０８、仮想サーバ定義情報テーブル１１８がプログラムとして格納される。プロセッサ２０３によりメモリ２０２に格納された各プログラムが実行される。上記各プログラムは、記憶媒体としてのストレージ（例えば、ディスクアレイ装置１１６）に格納され、必要に応じてメモリ２０２にロードされる。
【００２８】
図３は、管理サーバ１０１の管理対象となるサーバ仮想化機構１１０が稼働している物理サーバ１１１の詳細な構成を示すブロック図である。物理サーバ１１１は、メモリ３０１、プロセッサ３０３、ＦＣＡ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）３０４、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）３０５、ＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）３０６から構成される。
【００２９】
プロセッサ３０３は、メモリ３０１内に格納された各種プログラムを実行する。ＦＣＡ３０４は図１に示したストレージスイッチ１１２を解してディスクアレイ装置１１６と接続される。ＮＩＣ３０５およびＢＭＣ３０６はネットワーク２０７に接続される。ＮＩＣ３０５は、主にメモリ３０１上の各種プログラムからの要求に応じて他のサーバと通信する。ＢＭＣ３０６は物理サーバ１１１の障害などを検知し、ネットワーク２０７を介して管理サーバ１０１や他のサーバと通信するために使用する。本実施形態では、ＮＩＣ３０５とＢＭＣ３０６は同一のネットワークに接続されているが、異なるネットワークに接続しても良い。また、ＦＣＡ３０４、ＮＩＣ３０５はそれぞれ一つずつであるが、複数存在しても良い。
【００３０】
メモリ３０１上には、サーバ仮想化機構１１０が稼働することで、複数の仮想サーバ１０９−１〜１０９−ｍを構築することができる。なお、仮想サーバ１０９−１〜１０９−ｍの総称を仮想サーバ１０９とする。仮想サーバ１０９は、それぞれ独立にＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３０２を稼働させることができる。プロセッサ３０３によりサーバ仮想化機構１１０が実行されると、サーバ仮想化機構１１０上で複数の仮想サーバ１０９を構築することができる。
【００３１】
仮想サーバ１０９はディスクアレイ装置１１６にあらかじめ設定された仮想サーバイメージ格納ディスク１１４内の所定の仮想サーバＯＳイメージ３０８をサーバ仮想化機構１１０が読み込んで実行することで、それぞれ独立した仮想サーバ１０９が構築される。また、ディスクアレイ装置１１６の定義情報格納ディスク１１５には、各仮想サーバ１０９の定義情報が格納された仮想サーバ定義情報３０９が格納される。
【００３２】
ディスクアレイ装置１１６の仮想サーバ定義情報３０９は、ストレージスイッチ１１２を介して複数の物理サーバ１１１から共有され、いずれの物理サーバ１１１からも参照することができるように設定することができる。複数の仮想サーバ１０９毎に仮想サーバＯＳイメージ３０８および仮想サーバ定義情報３０９を設けておくことで、仮想サーバ１０９毎にまったく異なるＯＳやアプリケーションを単一の物理サーバ３０１上で稼働させることができる。
【００３３】
制御Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３１１は、ネットワーク２０７を介して外部の管理サーバ１０１等からサーバ仮想化機構１１０を制御するためのインターフェースである。この制御Ｉ／Ｆ３１１を介して管理サーバ１０１は物理サーバ１１１上の仮想サーバ１０９の作成や削除などを行うことができる。このため、各物理サーバ１１１の仮想化機構１１０の制御Ｉ／Ｆ３１１には、ネットワークアドレスが設定される。
【００３４】
図４は、本発明の仮想計算機システムの動作概要を示すブロック図である。管理サーバ１０１は、管理対象となる複数の物理サーバ１１１とネットワーク２０７を介して接続され、各物理サーバ１１１の障害情報、障害予兆情報、制御情報などを転送することができる。
【００３５】
本発明では、管理サーバ１０１が（１）物理サーバ１１１の障害発生または障害予兆を検出すると、障害や障害予兆の検出によって影響を受ける仮想サーバ１０９を他の物理サーバ１１１へ移動する制御を行う。この時に、各物理サーバ１１１の計算機リソースの空き状況によっては移動先の物理サーバ１１１の計算機リソースが不足しており移動できないケースがある。こういった場合に、本発明では（２）仮想サーバの定義情報３０９を実際の稼働状況である実稼動状況および空き計算機リソース状況に応じて更新を行う。更新された仮想サーバ定義情報３０９により、移動前の物理サーバ１１１−１より少ない計算機リソースの物理サーバ１１１−ｎで障害や障害予兆から仮想サーバ１０９を回復することができるようになる（３）。
【００３６】
図５は、サーバ管理テーブル１０８の詳細を示している。サーバ管理テーブル１０８は、物理サーバ１１１に関する詳細な情報が格納される。物理サーバ識別子５０１は、物理サーバ１１１を特定するための識別子を格納する。起動ディスク５０２は、物理サーバ１１１の起動ディスクの場所（例えば、パス）を示す。サーバ識別子５０３は、ディスクアレイ装置１１６と接続されるＦＣＡ３０４が有する固有の識別子（例えば、World Wide Name：ＷＷＮ）を示す。サーバモード５０４は、物理サーバ１１１の稼働状態を示しており、サーバ仮想化機構１１０が稼働しているか否かを判別するための情報が格納されている。プロセッサ／メモリ５０５は、物理サーバ１１１のプロセッサ情報やメモリ容量が格納される。なお、プロセッサ情報は、プロセッサのクロック速度とコア数などで構成される。ネットワーク識別子５０６は、物理サーバ１１１が有するＮＩＣ２０５を識別するための情報が格納される。ひとつの物理サーバ１１１に複数のＮＩＣ２０５が存在する場合は、複数の識別子が格納される。ネットワークポート５０７は、ＮＩＣ２０５が接続されているネットワークスイッチ１２０のポート番号が格納される。これは、物理サーバ１１１のネットワークセキュリティを保つ際にネットワークスイッチのＶＬＡＮを設定するために格納される。ディスク５０８は、物理サーバ１１１が有するディスクアレイ装置１１６内のディスクの識別子が格納される。ディスクの識別子としては、例えば、ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）であり、図５においてはＬＵＮ１０が複数の物理サーバ１１１（図中サーバ１〜４）に記載されているが、これは複数の物理サーバ１１１から共有することができる事を示している。仮想化機構識別子５０９は、物理サーバ１１１上でサーバ仮想化機構１１０が稼働している場合に、サーバ仮想化機構１１０を特定する識別子が格納される。この仮想化機構識別子５０９は、後で述べるサーバ仮想化機構の管理テーブル（仮想サーバ管理テーブル１０７）と関連づけられている。サーバ状態５１０は、物理サーバ１１１の状態や役割を示しており、例えば、現用系か待機系かを示す情報が格納されている。本発明における実施形態では、現用系のいずれかに障害が発生した場合に待機系に交代する処理を行う際に使用される。
【００３７】
図６は、仮想サーバ管理テーブル１０７の詳細を示す説明図である。
【００３８】
仮想サーバ管理テーブル１０７は、各物理サーバ１１１のサーバ仮想化機構１１０に関する詳細な情報が格納される。仮想化機構識別子６０１は、管理サーバ１０１が管理している物理サーバ１１１毎のサーバ仮想化機構１１０を識別するための情報が格納される。制御Ｉ／Ｆアドレス６０２は、サーバ仮想化機構１１０を外部から制御する制御Ｉ／Ｆ３１１へのアクセス情報となるネットワークアドレスが格納される。仮想サーバ識別子６０３は、仮想サーバ１０９毎にユニークな識別子が格納される。
【００３９】
仮想サーバＯＳイメージ６０４は、仮想サーバ１０９がどのＯＳイメージを使用して起動したか、仮想サーバＯＳイメージ３０８の場所（パス）が格納されている。プロセッサ／メモリ割当量６０５は、当該仮想サーバに割当てられる計算機リソース量を示す。
【００４０】
計算機リソース量は、例えば、仮想サーバ１０９に割り当てたプロセッサのクロック速度とメモリの容量を含む。状態６０６は、仮想サーバ１０９が現在稼働中か否かを示す情報が格納されている。プロセッサ／メモリ実使用量６０７は、当該仮想サーバが実際に使用しているプロセッサの使用率やメモリの容量が格納される。プロセッサ／メモリ実使用量６０７は、例えばサーバ仮想化機構１１０や仮想サーバ１０９上で稼動するＯＳなどから定期的に割り当てられたリソースに対する実際の使用量（性能情報）を収集する手段を有することによって取得することができる。プロセッサ／メモリ実使用量６０７としては、単位時間当たりの平均使用量（または使用率）を格納するなどの方法が考えられる。図示の例では、プロセッサ３０３の平均使用率をクロック速度で「ＧＨｚ」で表し、メモリ３０１の平均使用量を「ＧＢ」で表したものである。なお、プロセッサ３０３の平均使用率は、仮想サーバ１０９に割り当てたプロセッサ３０３のリソース（仮想プロセッサ）に対する実際の使用率である。
【００４１】
ネットワーク割当６０８は、仮想サーバのＮＩＣ識別子と、このＮＩＣ識別子に対応する物理サーバ１１１が有するＮＩＣ３０５との割当情報が格納される。ディスク６０９は、仮想サーバ１０９に割り当てられた仮想サーバＯＳイメージ３０８やデータ格納用のイメージファイルの場所が格納される。
【００４２】
図７は、仮想サーバ定義情報テーブル１１８の構成を示す。仮想サーバ識別子７０１は、仮想サーバ１０９毎にユニークな識別子が格納される。仮想サーバ優先度７０２は、当該仮想サーバ１０９の重要度が数値として格納される。優先度は「１」が最も重要度が高く、数値が大きくなるに従って重要度が低くなる。仮想サーバ優先度７０２の数値は、管理者が管理サーバ１０１等から仮想サーバを生成する際に、当該仮想サーバで実行される業務の優先度などに応じて入力する。
【００４３】
オリジナル定義情報７０３は、当該仮想サーバ１０９のオリジナル（物理サーバ１１１に最初に割り当てた状態）の定義情報が格納された場所が格納される。本発明では、障害発生や障害予兆の検出によって、仮想サーバを他の物理サーバ１１１に移動して信頼性を高めることが特徴であるが、その際に移動先の計算機リソースの状況によっては定義情報を変更するケースがある。しかし、障害発生や障害予兆の原因を取り除いた後で、仮想サーバ１０９を元の物理サーバ１１１に戻す際に、オリジナルの仮想サーバ１０９の定義情報が必要になるためである。これにより、移動の際に仮想サーバ１０９の定義情報を更新しても、オリジナル定義情報７０３を参照することにより、必ず元の仮想サーバ１０９の構成に戻すことができるようになる。
【００４４】
移動用定義情報７０４は、仮想サーバ１０９を移動する際に、移動の際に更新された仮想サーバ１０９の定義情報が格納される。移動日時７０５は、当該仮想サーバ１０９を移動した日時が格納される。移動用定義情報７０４および移動日時７０５は、履歴を格納するようにしても良い。移動の際に生じた割り当てリソースの変更の履歴を残すことで、障害が発生した物理サーバ１１１の位置などを特定しやすくなるため、障害の解析が容易になる。また、移動用定義情報７０４と移動日時７０５は、複数回に渡って仮想サーバ１０９が移動した場合、仮想サーバ１０９が移動するたびに情報を追加しても良い。例えば、障害予兆を検出し、仮想サーバ１０９を移動した後で再び移動先で障害予兆を検出し仮想サーバ１０９をさらに移動するケースが考えられる。こういった場合、複数回に渡って仮想サーバ１０９が移動するが、移動する毎に移動用定義情報７０４と移動日時７０５を追加する。その後、障害予兆を検出した物理サーバ１１１を修復した場合など、仮想サーバ１０９を元の物理サーバ１１１へ復帰する場合は、移動の順番を遡る順番で復帰しても良いし、移動の順番に関係なくオリジナル定義情報７０３に基づいて仮想サーバ１０９を移動しても良い。どこに復帰するかは、物理サーバ１１１の修復やより性能の高い物理サーバ１１１へ移動したいなど、仮想サーバ１０９の移動の目的に応じて柔軟に対応することができるようになる。
【００４５】
このように、複数回の仮想サーバ１０９の移動の履歴を持つことで、物理サーバ１１１への復帰や移動の選択肢を増すことができるため、仮想サーバ１０９の運用をより柔軟に行うことができるようになる。
【００４６】
図８は、仮想サーバ定義情報３０９の内容を示す説明図である。仮想サーバ名８０１は、当該仮想サーバ１０９の名称が格納される。割当てリソース８０２は、プロセッサの割当て量、メモリの割当量、ネットワークの割当て情報、仮想サーバＯＳイメージ３０８が格納された位置を示唆し、データディスクイメージが格納された位置など、仮想サーバ１０９を生成するための情報が格納される。
【００４７】
優先度８０３は、仮想サーバ定義情報テーブル１１８に格納された、仮想サーバ優先度７０２と同じ内容が格納される。移動履歴８０４は、当該仮想サーバ１０９の移動履歴情報が格納される。移動履歴８０４は、仮想サーバ１０９の移動の際に、移動先を決定するための情報として用いることができる。例えば、複数の定義情報の移動履歴８０４を集計し、特定の仮想サーバ１０９が障害予兆が原因で移動頻度が高い場合、仮想サーバ１０９のサービスレベルを低下させるリスクが高いことを意味するため、より信頼性が高い物理サーバ１１１を選択して移動させるなどの解析情報として用いることもできる。
【００４８】
定義情報８０５は、当該仮想サーバ１０９のオリジナルの定義情報の格納場所を示す。また、オリジナル定義情報の記載だけでなく、複数回に渡って仮想サーバ１０９が移動した場合は、仮想サーバ１０９が移動するたびに移動先で用いた定義情報を履歴として格納しても良い。
【００４９】
図９は、障害回復部１０２で行われる処理の概要を示すフローチャートを示す。このフローチャートは所定の周期で管理サーバ１０１が実行する。
【００５０】
ステップ９０１は、障害回復部１０２が障害予兆管理部１０４を呼び出す。障害予兆管理部１０４は、管理サーバ１０１の管理対象である物理サーバ１１１毎に、障害発生や障害予兆が発生していないかを後述するように検査する。すなわち、障害予兆管理部１０４は、各物理サーバ１１１のＢＭＣ２０３及び障害予兆検出部３１０に稼動情報を問い合わせ、各サーバ１１１毎に稼動情報を取得する。
【００５１】
ステップ９０２は、ステップ９０１の結果、障害予兆管理部１０４は各サーバ１１１の稼動情報毎に障害の発生または障害予兆の有無を判定する。そして、障害予兆管理部１０４は、障害の発生または障害予兆を検出した場合には、物理サーバ１１１を特定して障害回復部１０２へ通知し、ステップ９０３に移行する。一方、障害の発生または障害予兆が無い場合には処理を終了する。
【００５２】
ステップ９０３は、障害あるいは障害予兆が検出された物理サーバ１１１で、仮想化機構が実行されているか否かを障害回復部１０２が判定する。障害回復部１０２は、対象となる物理サーバ１１１でサーバ仮想化機構１１０が実行されていればステップ９０４にて、仮想サーバ１０９回復方法選択部１０５を呼び出す。
【００５３】
ステップ９０４では、仮想サーバ回復方法選択部１０５は、障害あるいは障害予兆の検出結果、影響を受ける仮想サーバ１０９の優先度、および物理サーバ１１１の計算機リソースの空き状況に基づいて、仮想サーバ１０９の回復方法を選択する処理を行う。この回復方法の処理については後述する。
【００５４】
ステップ９０６では、障害回復部１０２が仮想サーバ回復部１０６の呼び出しを行う。仮想サーバ回復部１０６は、仮想サーバ回復方法選択部１０５の実行結果に基づき、仮想サーバ１０９の回復を後述するように実行する。
【００５５】
ステップ９０７では、回復処理の結果を管理者に通知する。この通知は、管理サーバ１０１の図示しない表示装置などに対して結果を表示することで行われる。
【００５６】
上記ステップ９０３で、サーバ仮想化機構１１０が実行されていない物理サーバ１１１からの障害や障害予兆の場合は、ステップ９０５にて物理サーバ１１１の回復を行う。サーバ仮想化機構１１０を実行していない物理サーバ１１１の回復は、従来例と同様であるので、本実施形態では詳述しない。
【００５７】
以上の処理により、障害回復部１０２は、サーバ仮想化機構１１０を実行している物理サーバ１１１に障害の発生または障害予兆を検出したときには、仮想サーバ１０９が実際に使用している計算機リソースの量または比率に応じて再度割り当てを行い、最初に計算機リソースを割り当てたときよりも少ない計算機リソースを再設定して、待機系の物理サーバ１１１に仮想サーバ１０９を引き継がせる。
【００５８】
これにより、待機系の物理サーバ１１１の計算機リソースが、現用系の物理サーバ１１１よりも少ない場合であっても、複数の仮想サーバ１０９を待機系の物理サーバ１１１へ確実に引き継がせることが可能となる。したがって、現用系よりも計算機リソースの少ない物理サーバ１１１で待機系を構成することが可能となって、複数の物理サーバ１１１を備える仮想計算機システムの導入及び運用コストを削減することが可能となる。
【００５９】
図１０は、障害予兆管理部１０４で行われる処理の一例を示すフローチャートである。この処理は、上記図９のステップ９０１の処理に対応する。
【００６０】
障害予兆管理部１０４は、管理対象となる物理サーバ１１１に、障害や障害予兆が発生していないかを検査する処理を行う。ステップ１００１では、障害予兆管理部１０４が対象となる物理サーバ１１１を選択する。ステップ１００２では、障害予兆管理部１０４が対象となる物理サーバ１１１が有するＢＭＣ２０６にアクセスし、ハードウェアの障害あるいは障害予兆が発生していないかを検査する。
【００６１】
ここで各物理サーバ１１１のＢＭＣ２０６は、ハードウェアの状態を監視することができる。例えば、プロセッサ３０３、メモリ３０１、温度、ファン、電源の状態監視などである。障害や障害予兆とは、例えばＢＭＣ２０６がプロセッサ３０３から何らかの不具合を検出し、何回かのリトライにより不具合が解消した場合は障害予兆の検出であり、リトライでは回復しなかった場合には障害と検知する。他の部品についても同様である。他にも、プロセッサ３０３やメモリ３０１あるいはチップセット（図示省略）の温度監視によって、所定の閾値を超えたが、一定期間後に温度が下がった場合は障害予兆と検出し、一定時間を経過しても温度が閾値を超えたままの状態であれば障害と検知するなどが考えられる。さらに、障害予兆には障害に至った場合の影響度に応じて重要度を設けることもできる。例えば、プロセッサ３０３の障害予兆は、プロセッサ３０３が停止した時には実質的にシステム全体の停止につながる可能性が高いため重要度は高いが、メモリ３０１の障害予兆はビットエラーを訂正できる範囲であれば重要度は低いなどである。また、同じプロセッサ３０３の障害予兆でも、複数のプロセッサ３０３が搭載されている場合には重要度を下げても良い。このように、障害予兆に重要度を設けることで回復手段の選択肢を増やす制御を行うことができるようになる。
【００６２】
次に、ステップ１００３は、ハードウェアの障害や障害予兆が検出されたか否かを判定し、障害または障害予兆が検出されていた場合はステップ１００６に移行し、検出結果を障害回復部１０２に報告する。
【００６３】
一方、ハードウェアの障害や障害予兆が検出されなかった場合はステップ１００４で障害予兆検出部３１０を呼び出し、ハードウェアレベルでは検知できないソフトウェアレベルの障害や障害予兆を検出する。障害予兆検出部３１０による検出結果はステップ１００６にて障害予兆管理部１０４に報告される。
【００６４】
ステップ１００７では、全ての管理対象の物理サーバ１１１を検査したか否かを障害予兆管理部１０４が判定し、未検査の物理サーバ１１１があればステップ１００１から繰り返す。
【００６５】
以上の処理により、ステップ１００２やステップ１００４によって、ハードウェアからソフトウェアまで物理サーバ１１１について幅広いレベルの障害や障害予兆を検出することができるようになる。
【００６６】
図１１は、仮想サーバ回復方法選択部１０５で行われる処理の一例を示すフローチャートである。この処理は上記図９のステップ９０４に対応する。
【００６７】
仮想サーバ回復方法選択部１０５では、物理サーバ１１１で障害や障害予兆が検出された場合に、どのように仮想サーバ１０９を回復するかを決定する。まず、ステップ１１０１では、障害や障害予兆を解析する。この解析は、例えば、プロセッサ３０３の障害予兆であれば、障害予兆を検出したプロセッサ３０３のコア番号や予兆の重要度などを解析する。
【００６８】
ステップ１１０２では、仮想サーバ回復方法選択部１０５が障害の影響範囲を調査し、影響を受ける仮想サーバ１０９を特定する。障害の影響を受ける仮想サーバ１０９の特定には、サーバ管理テーブル１０８、仮想サーバ管理テーブル１０７を用いることで特定することができる。例えば、物理サーバ１１１−１でプロセッサ３０３の障害予兆が検出された場合、図６の仮想サーバ管理テーブル１０７から仮想サーバ識別子６０３＝「ＶＭ１」と「ＶＭ３」が障害予兆の影響を受けることが判定できる。
【００６９】
ステップ１１０３では、仮想サーバ回復方法選択部１０５は検出された障害や障害予兆によって仮想サーバ１０９が停止する可能性が高いか否かを判定する。なお、仮想サーバ１０９が停止する可能性が高い場合とは、例えば、物理サーバ１１１のプロセッサ３０３の温度が所定値を超えたり、プロセッサ３０３の冷却ファンが停止ししたときなど、物理サーバ１１１が所定の稼動状態となった場合である。
【００７０】
停止する可能性が高い場合はステップ１１０５にて、仮想サーバ回復方法選択部１０５が障害の影響を受ける仮想サーバ１０９の優先度を調査する。この優先度は、仮想サーバ定義情報テーブル１１８の仮想サーバ優先度７０２を検索することで取得することができる。
【００７１】
仮想サーバ１０９の優先度が高い場合、すなわち仮想サーバ１０９が停止することでシステムや業務に与える影響が大きい場合は、ステップ１１０５にて、仮想サーバ回復方法選択部１０５が他の物理サーバ１１１の空きリソースを検索し、停止する可能性が高い仮想サーバ１０９の移動先の候補を決定する。仮想サーバ回復方法選択部１０５は、移動先の物理サーバ１１１に十分な空きリソースが存在する場合は、ステップ１１１２にて、仮想サーバ１０９の回復方法を仮想サーバ移動方法に決定する。
【００７２】
一方、仮想サーバ回復方法選択部１０５は、移動先に十分な空きリソースを有する物理サーバ１１１が見つからなかった場合は、ステップ１１１３にて定義変更方法に決定する。仮想サーバ１０９が停止する可能性が低い場合や、優先度が低い仮想サーバ１０９が影響を受ける場合は、ステップ１１１０やステップ１１１１にて、状況を管理者に報告する。これらの報告は、管理サーバ１０１の図示しない表示装置などに障害の発生または障害予兆を受ける仮想サーバ１０９を通知する。これらの処理によって、仮想サーバ１０９の障害の回復する幅を広げることができ、従来よりも信頼性の高い仮想サーバ１０９の障害回復を行うことができるようになる。
【００７３】
以上の処理により、物理サーバ１１１の障害の発生または障害予兆を受ける仮想サーバ１０９について、ステップ１１１２またはステップ１１１３で、仮想サーバ移動または定義変更の何れかの処理が選択される。この選択された処理は後述の仮想サーバ回復部１０６の処理で詳述する。
【００７４】
図１２は、仮想サーバ回復部１０６で行われる処理の概要を示すフローチャートを示す。この処理は、上記図９のステップ９０６の処理に対応する。
【００７５】
仮想サーバ回復部１０６は、仮想サーバ回復方法選択部１０５によって決定された回復方法（仮想サーバ移動または定義変更）に従って、仮想サーバ１０９の回復処理を実行する。
【００７６】
ステップ１２０１は、仮想サーバ回復部１０６が仮想サーバ回復方法選択部１０５で決定された回復方法が定義変更方法か否かを判定する。決定された回復方法が定義変更方法ではない場合、すなわち移動するための十分な空きリソースを有する場合、仮想サーバ回復部１０６はステップ１２０２にて当該仮想サーバ１０９の定義情報から必要リソースを抽出する。これは、仮想サーバ定義情報テーブル１１８のオリジナル定義情報７０３を参照し、定義ファイルの内容を参照することで実現できる。すなわち、障害の発生または障害予兆のある物理サーバ１１１に割り当てられている計算機リソースの割り当てで、新たな物理サーバ１１１へ移動することを示す。
【００７７】
ステップ１２０３では、仮想サーバ回復部１０６が現在障害の発生または障害予兆のある物理サーバ１１１と同等以上の空きリソースを有する物理サーバ１１１をサーバ管理テーブル１０８から検索する。
【００７８】
ステップ１２０４では、仮想サーバ回復部１０６が上記検索した物理サーバ１１１にオリジナル定義情報７０３の計算機リソースを割り当てて仮想サーバ１０９の移動を行う。
【００７９】
一方、定義変更方法が仮想サーバ１０９の回復方法として選択された場合は、仮想サーバ回復部１０６がステップ１２０７にて仮想サーバ定義情報管理部１０３を呼び出す。
【００８０】
呼び出された仮想サーバ定義情報管理部１０３は、後述するように、移動対象の仮想サーバ１０９の計算機リソースの割り当て量を減少させて仮想サーバ定義情報３０９を更新する。
【００８１】
ステップ１２０８は、仮想サーバ定義情報管理部１０３が移動先で使用する変更された仮想サーバ定義情報３０９を用いて、仮想サーバ１０９を移動する。仮想サーバ１０９の移動とは、仮想サーバ１０９を移動先の物理サーバ１１１上に移動することである。稼動状態を保ったまま仮想サーバ１０９を移動する場合は、一時的に移動元と移動先の両方で仮想サーバ１０９を実行するためのリソースを確保する。移動先はメモリ３０１、ＣＰＵ３０３、Ｉ／Ｏ（ＦＣＡ３０４，ＮＩＣ３０５）を確保し、その上で、移動元の仮想サーバ１０９のメモリ情報やＩ／Ｏの状態を移動先の仮想サーバ１０９にコピーする処理を行う。移動先の計算機リソースの方が少ない場合もある。例えばプロセッサ３０３の割り当て量が少ない場合は、仮想サーバ１０９の処理性能が低下するが、移動に関しては特に処理を行う必要はない。一方、移動先の物理サーバ１１１のメモリ容量が少ない場合は、いくつかの方法が考えられる。一つは、ＯＳ３０２からは移動元と同じ容量を持っているかのように見せかける方法である。メモリ３０１のコピー時には、ＯＳ３０２の動作に影響を与えない未使用領域やＯＳ３０２やアプリケーションのキャッシュ情報をコピーせず、ＯＳ３０２上で稼動するドライバなどのプログラムが、不足したメモリ領域を確保したように見せかけることで実現することができる。なお、稼動中のまま移動するケースと仮想サーバ１０９を一旦シャットダウンし移動先で起動する移動の場合には、上記の処理は必要ない。
【００８２】
仮想サーバ定義情報管理部１０３は、物理サーバ１１１に十分な空きリソースが存在しない場合でも、仮想サーバ１０９を移動することで信頼性を高めるための処理を行う。具体的には、できるだけ仮想サーバ１０９の移動、すなわち仮想サーバ１０９の保護を可能にするために空きリソース、優先度、計算機リソースの実使用量に基づいて、定義情報を変更し移動を可能にする処理を行う。
【００８３】
図１３は、仮想サーバ定義情報管理部１０３で行われる処理の概要を示すフローチャートを示す。この処理は、上記図１２のステップ１２０７の処理に対応する。
【００８４】
ステップ１３０１では、仮想サーバ定義情報管理部１０３が移動対象の仮想サーバ１０９について仮想サーバ管理テーブル１０７から計算機リソースの実際の実使用量を検索する。仮想サーバ定義情報管理部１０３は、仮想サーバ管理テーブル１０７に格納されたプロセッサ／メモリ実使用量６０７を参照することで計算機リソースの実使用量を取得する。
【００８５】
ステップ１３０２では、仮想サーバ定義情報管理部１０３が仮想サーバ管理テーブル１０７を検索し、例えば最も未使用のリソースが大きな物理サーバ１１１を選択し未使用リソース情報を取得する。
【００８６】
ステップ１３０３では、仮想サーバ定義情報管理部１０３が上記ステップ１３０２で取得した未使用リソース情報と、ステップ１３０１で取得した計算機リソースの実使用量とを比較して、未使用リソース情報が、実使用量よりも大きいか否かを判定する。これは、仮想サーバ１０９に割当てられた計算機リソースの一部分だけを使用して稼動している場合に、現状の性能などのサービスレベルを保つために必要な最小限のリソースを有する物理サーバ１１１を選択することを意味している。未使用リソース情報が、実使用量よりも大きく、移動対象の仮想サーバ１０９を実行可能な最小限の計算機リソースを保持する物理サーバ１１１が見つかった場合は、ステップ１３０７の処理へ進んで仮想サーバ定義情報管理部１０３が仮想サーバ定義情報３０９をコピーする。
【００８７】
ステップ１３０８では、仮想サーバ定義情報管理部１０３が上記ステップ１３０７でコピーした仮想サーバ定義情報３０９を、ステップ１３０２にて検索した物理サーバ１１１が有する未使用リソースの情報を仮想サーバ定義情報３０９に適用して変更する。これにより、移動対象の仮想サーバ定義情報３０９は、オリジナルの仮想サーバ定義情報３０９よりも少ない計算機リソースで仮想サーバ１０９を実行することができるようになる。
【００８８】
ステップ１３０９では、仮想サーバ定義情報管理部１０３がステップ１３０８で変更した仮想サーバ定義情報３０９を仮想サーバ定義情報テーブル１１８に反映する。すなわち、仮想サーバ定義情報管理部１０３は、上記コピーして未使用リソース情報に変更した仮想サーバ定義情報３０９をディスクアレイ装置１１６の定義情報格納ディスク１１５に格納する。そして、仮想サーバ定義情報管理部１０３は、コピーして変更した仮想サーバ定義情報３０９の格納位置（パス）を仮想サーバ定義情報テーブル１０８の移動用定義情報７０４に追加し、また、現在の日時を移動日時７０５に格納する。これにより、移動対象の仮想サーバ１０９の移動の履歴が生成される。
【００８９】
一方、ステップ１３０３の判定で、実使用量よりも大きい未使用リソースが見つからなかった場合には、ステップ１３０４に進む。
【００９０】
ステップ１３０４では、最小限の空きリソースを有する仮想サーバ１０９が存在しなかった場合に、仮想サーバ定義情報管理部１０３は、例えば、最も未使用リソースが多い物理サーバ１１１を選択する。
【００９１】
ステップ１３０５では、仮想サーバ定義情報管理部１０３は、仮想サーバ定義情報テーブル１１８を検索して、優先度（＝仮想サーバ優先度７０２）が当該移動対象の仮想サーバ１０９よりも低い仮想サーバ１０９を選択する。仮想サーバ定義情報管理部１０３は、このとき、移動対象の仮想サーバ１０９よりも優先度が低い仮想サーバ１０９を移動先の物理サーバ１１１として選択する。
【００９２】
ステップ１３０６では、ステップ１３０５で選択された仮想サーバ１０９が有する割当てリソースを剥奪し、優先度の高い仮想サーバ１０９へ融通する。つまり、仮想サーバ定義情報管理部１０３は、移動対象の仮想サーバ１０９よりも優先度の低い仮想サーバ１０９の割り当てリソースを削減し、削減した割り当てリソースを当該物理サーバ１１１の未使用リソースに加える。そして、仮想サーバ定義情報管理部１０３は、優先度の低い仮想サーバ１０９から剥奪した計算機リソースの分だけ増加した未使用リソースを、移動対象の仮想サーバ１０９に割り当てる。そして、上述したステップ１３０７の処理に進む。なお、優先度の低い仮想サーバ１０９からの計算機リソースの剥奪は、仮想サーバ管理テーブル１０７を参照して、剥奪対象の仮想サーバ１０９のプロセッサ／メモリ割当量６０５からプロセッサ／メモリ実使用量６０７を差し引いた値とする。仮想サーバ定義情報管理部１０３は剥奪対象の仮想サーバ１０９の仮想サーバ定義情報３０９を、削減された計算機リソースで更新する。
【００９３】
また、仮想サーバ定義情報管理部１０３は、ひとつの仮想サーバ１０９から剥奪した計算機リソースでは、移動対象の仮想サーバ１０９を実行可能な計算機リソースを確保できない場合は、当該移動対象の仮想サーバ１０９よりも優先度の低い複数の仮想サーバ１０９から計算機リソースを剥奪する。
【００９４】
上記処理により、空きリソースの状態や障害あるいは障害予兆の検出によって影響を受ける仮想サーバ１０９を段階的に回復することができるようになる。すなわち、移動対象の仮想サーバ１０９に割り当てる計算機リソースを、実際に使用した計算機リソースまで減少して移動先の物理サーバ１１１の未使用リソースを移動対象の仮想サーバ１０９に割り当てることで、必要最小限の計算機リソースを移動先の物理サーバ１１１に確保して、仮想サーバ１０９の稼動を保証することができる。
【００９５】
なお、上記ステップ１３０３では、未使用リソース情報が実使用量よりも大きいか否かを判定したが、未使用リソース情報が実使用量と同等以上か否かを判定してもよい。
【００９６】
図１４は、仮想サーバ復帰部１１９で行われる処理の概要を示すフローチャートを示す。この処理は、管理者などが管理サーバ１０１の図示しないコンソールから起動を指令したときなどに実行される。
【００９７】
ステップ１４０１は、仮想サーバ復帰部１１９が復帰する仮想サーバ１０９を選択する。選択方法は、管理者が復帰したい仮想サーバ１０９を明示的に選択しても良いし、物理サーバ１１１の交換などによって物理サーバ１１１が正常な状態に復旧したイベントなどを受信した契機に、待機系の物理サーバ１１１に移動した仮想サーバ１０９を自動的に選択しても良い。
【００９８】
ステップ１４０２は、仮想サーバ復帰部１１９が上記ステップ１４０１で選択された仮想サーバ１０９が移動中か否かを判定する。移動中か否かの判定は、仮想サーバ定義情報テーブル１１８の移動用定義情報７０４に定義情報が記録されているか否かを判別することで判定することができる。仮想サーバ１０９が移動中であればステップ１４０３に進み、オリジナルの状態であればステップ１４０３に進む。
【００９９】
ステップ１４０３では、仮想サーバ復帰部１１９が上記ステップ１４０１で選択された仮想サーバ１０９の移動用定義情報７０４を、仮想サーバ定義情報テーブル１１８から抽出する。
【０１００】
ステップ１４０４では、抽出された移動用定義情報７０４が、複数回に渡って移動が行われている場合に、仮想サーバ復帰部１１９が移動先の物理サーバ１１１を選択する。複数回に渡って移動が行われているか否かは、移動用定義情報７０４に複数の移動履歴が記載されているか否かで仮想サーバ復帰部１１９が判定することができる。移動先の物理サーバ１１１の選択にはいくつかの方法が考えられる。障害予兆を検出した物理サーバ１１１が新しい物理サーバ１１１と交換されて修復したケースでは、交換された物理サーバ１１１を選択しても良い。また、複数回に渡って移動した物理サーバ１１１のいずれも修復されていないケースでは、移動した物理サーバ１１１とは異なる新しい物理サーバ１１１を選択しても良い。この時は、できる限り障害や障害予兆が発生していない物理サーバ１１１を選択する方が高い信頼性を保つことができる。
【０１０１】
ステップ１４０５では、仮想サーバ復帰部１１９が移動先で使用する仮想サーバ１０９の定義情報を仮想サーバ定義情報テーブル１１８の移動用定義情報７０４から取得する。これは、ステップ１４０３で抽出した移動用定義情報７０４から移動先として選択した物理サーバ１１１に対応する移動用定義情報７０４を取得する。もし、複数回に渡って移動した物理サーバ１１１とは異なる物理サーバ１１１に移動する場合は、オリジナルの仮想サーバ定義情報を用いても良い。オリジナル（割り当てた当初）の仮想サーバ定義情報３０９は、仮想サーバ定義情報テーブル１１８において当該仮想サーバ１０９のオリジナル定義情報７０３に記載された仮想サーバ定義情報３０９を参照することで取得することができる。
【０１０２】
ステップ１４０６は、仮想サーバ復帰部１１９が移動先の物理サーバ１１１の空きリソースを検索する。一般には、本来稼動していたのと同じ仮想サーバ１０９の定義情報３０９に従って計算機リソースを確保することが望ましいが、仮想サーバ１０９の移動を繰り返す運用では、必ずしも仮想サーバ１０９を移動する前と同じ物理サーバ１１１の計算機リソースが確保できない可能性があり、確認のために必要なステップである。
【０１０３】
ステップ１４０７では、仮想サーバ復帰部１１９が上記ステップ１４０６で取得した空きリソースが、ステップ１４０５で取得した仮想サーバ１０９の仮想サーバ定義情報３０９の内容を満たすか否かを判定する。もし、空きリソースが、ステップ１４０５で取得した仮想サーバ１０９の仮想サーバ定義情報３０９の内容を満たすことができない場合にはステップ１４０９で管理者にリソースが不足していることを通知する。別の手段としては、仮想サーバ定義情報管理部１０３の処理を実行し、性能を満たす範囲で仮想サーバ１０９の仮想サーバ定義情報３０９を変更して移動を継続しても良い。
【０１０４】
ステップ１４０８は、移動先で使用する仮想サーバ１０９の仮想サーバ定義情報３０９を用いて、仮想サーバ１０９を移動する。
【０１０５】
上記処理によって、仮想サーバ１０９を性能などのサービスレベルを低下することなく、移動前の計算機リソースに復帰させることができるようになる。特に、現用系の物理サーバ１１１に障害または障害予兆が発生して待機系の物理サーバ１１１に仮想サーバ１０９を移動した後、現用系の物理サーバ１１１が復旧した場合、オリジナル定義情報７０３を参照することで、極めて容易に仮想サーバ１０９を現用系の物理サーバ１１１に復帰させることができる。
【０１０６】
上記実施形態では、障害や障害予兆の検出を契機に仮想サーバ１０９を移動する方法について述べたが、障害や障害予兆以外の契機でも本発明を適用することができる。例えば、複数の物理サーバ１１１が稼動する環境において、プロセッサ３０３の負荷が特定の物理サーバ１１１に片寄ってしまった場合に、本発明を用いて仮想サーバ１０９を移動して負荷を分散する目的で用いても良い。つまり、物理サーバ１１１の負荷（例えばプロセッサ使用率）が所定の閾値を超えたときに、他の物理サーバ１１１のうち負荷が所定の閾値未満の物理サーバ１１１に仮想サーバ１０９を移動させることができる。
【０１０７】
また、物理サーバ１１１の電力消費を低減する目的で、負荷が低い（所定の閾値未満）仮想サーバ１０９を、本発明を用いて特定の物理サーバ１１１上に移動して集約し、仮想サーバ１０９が稼動していない物理サーバ１１１の電源を遮断することでシステム全体の消費電力量を削減することもできる。
【０１０８】
このように、本発明は障害や障害予兆を契機とした仮想サーバ１０９の移動だけでなく、複数の物理サーバ１１１が稼動する環境において、負荷や電力、その他の指標等、所定の条件が成立したときに物理サーバ１１１で仮想サーバ１０９移動させて、負荷の分散化や電力消費の最適化を目的として利用することができる。
【産業上の利用可能性】
【０１０９】
以上のように、本発明は複数の物理サーバで複数の仮想サーバを稼働させる仮想計算機システムに適用することができる。
【符号の説明】
【０１１０】
１０１管理サーバ
１０２  障害回復部
１０３  仮想サーバ定義情報管理部
１０４  障害予兆管理部
１０５  仮想サーバ回復方法選択部
１０６  仮想サーバ回復部
１０７  仮想サーバ管理テーブル
１０８  サーバ管理テーブル
１０９  仮想サーバ
１１０  サーバ仮想化機構
１１１  物理サーバ
１１８  仮想サーバ定義情報テーブル
１１９  仮想サーバ復帰部
【図１】
2011128967.tif 000003
【図２】
2011128967.tif 000004
【図３】
2011128967.tif 000005
【図４】
2011128967.tif 000006
【図５】
2011128967.tif 000007
【図６】
2011128967.tif 000008
【図７】
2011128967.tif 000009
【図８】
2011128967.tif 000010
【図９】
2011128967.tif 000011
【図１０】
2011128967.tif 000012
【図１１】
2011128967.tif 000013
【図１２】
2011128967.tif 000014
【図１３】
2011128967.tif 000015
【図１４】
2011128967.tif 000016
【手続補正書】
【提出日】平成23年2月8日(2011.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、プロセッサとメモリを前記物理計算機とネットワークで接続された管理計算機と、を有する仮想計算機システムで仮想計算機を移動させる方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップと、
前記管理計算機が、前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持するステップと、
前記管理計算機は、前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得するステップと、
前記管理計算機が、所定条件が成立したか否かを判定するステップと、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップと、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップと、を含むことを特徴とする仮想計算機の移動方法。
【請求項２】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機は、前記物理計算機に障害または障害予兆があることを検出するステップをさらに含み、
前記管理計算機が、所定条件が成立したか否かを判定するステップは、
前記障害または障害予兆が検出されたことを前記所定条件の成立とすることを特徴とする仮想計算機の移動方法。
【請求項３】
請求項２に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記管理計算機は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係を仮想計算機管理情報に保持し、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記仮想計算機管理情報から前記障害または障害予兆の影響を受ける仮想計算機を前記仮想計算機管理情報を検索して特定するステップと、
前記特定された仮想計算機の前記実使用量以上の計算機リソースを確保可能な物理計算機を当該特定された仮想計算機の移動先の前記第２の物理計算機として選択するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項４】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップは、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させることを特徴とする仮想計算機の移動方法。
【請求項５】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記管理計算機は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係と、前記仮想計算機毎に設定した優先度を仮想計算機管理情報に保持し、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択するステップと、
当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項６】
請求項５に記載の仮想計算機の移動方法であって、
前記管理計算機は、前記物理計算機に障害または障害予兆があることを検出するステップをさらに含み、
前記管理計算機が、所定条件が成立したか否かを判定するステップは、
前記障害または障害予兆が検出されたことを前記所定条件の成立とし、
前記管理計算機は、前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択するステップは、
前記仮想計算機を稼働させる物理計算機の稼働状態が所定の稼動状態となり、かつ、前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択するステップと、
当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪するステップと、
を含むことを特徴とする仮想計算機の移動方法。
【請求項７】
請求項１に記載の仮想計算機の移動方法であって、
前記管理計算機は、前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させるステップをさらに含み、
前記管理計算機が、前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させるステップは、
前記仮想計算機に最初に割り当てた計算機リソースの情報を前記仮想計算機のオリジナルの定義情報として保持し、
前記管理計算機が、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させるステップは、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させ、前記変更した定義情報を移動の履歴として保持し、
前記管理計算機は、前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させるステップは、
前記仮想計算機のオリジナルの定義情報で前記仮想計算機を前記第１の物理計算機に移動させることを特徴とする仮想計算機の移動方法。
【請求項８】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、
プロセッサとメモリを備えて前記物理計算機とネットワークで接続された管理計算機と、を有する仮想計算機システムであって、
前記管理計算機は、
前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させ、前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持する仮想計算機定義情報と、
前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得し、前記仮想計算機に割り当てた計算機リソースと実使用量の関係を保持する仮想計算機管理情報と、
所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択し、前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させる回復部と、を備えたことを特徴とする仮想計算機システム。
【請求項９】
請求項８に記載の仮想計算機システムであって、
前記管理計算機は、
前記物理計算機に障害または障害予兆があることを検出する障害予兆管理部をさらに備え、
前記回復部は、
前記障害または障害予兆が検出されたことを前記所定条件の成立とすることを特徴とする仮想計算機システム。
【請求項１０】
請求項９に記載の仮想計算機システムであって、
前記仮想計算機管理情報は、
複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係を保持し、
前記回復部は、
前記仮想計算機管理情報から前記障害または障害予兆の影響を受ける仮想計算機を前記仮想計算機管理情報を検索して特定し、前記特定された仮想計算機の前記実使用量以上の計算機リソースを確保可能な物理計算機を当該特定された仮想計算機の移動先の前記第２の物理計算機として選択することを特徴とする仮想計算機システム。
【請求項１１】
請求項８に記載の仮想計算機システムであって、
前記回復部は、
前記仮想計算機に対応する定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させることを特徴とする仮想計算機システム。
【請求項１２】
請求項８に記載の仮想計算機システムであって、
前記仮想計算機管理情報は、複数の仮想計算機を複数の物理計算機にそれぞれ割り当てて、仮想計算機毎に割り当てた計算機リソースと物理計算機の関係と、前記仮想計算機毎に設定した優先度を保持し、
前記回復部は、
前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択し、当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪することを特徴とする仮想計算機システム。
【請求項１３】
請求項１２に記載の仮想計算機システムであって、
前記管理計算機は、
前記物理計算機に障害または障害予兆があることを検出する障害予兆管理部をさらに備え、
前記回復部は、
前記障害または障害予兆が検出されたことを前記所定条件の成立とし、当該所定条件が成立したときに、前記仮想計算機を稼働させる物理計算機の稼働状態が所定の稼動状態となり、かつ、前記実使用量以上の計算機リソースを確保可能な物理計算機が存在しなかった場合には、前記管理計算機が前記仮想計算機管理情報を検索し、当該仮想計算機よりも優先度の低い仮想計算機を稼動させる物理計算機を移動先の第２の物理計算機として選択し、当該仮想計算機よりも優先度の低い仮想計算機から前記実使用量に対応する計算機リソースを剥奪することを特徴とする仮想計算機システム。
【請求項１４】
請求項８に記載の仮想計算機システムであって、
前記管理計算機は、
前記第２の物理計算機へ移動した仮想計算機毎を前記第１の物理計算機に復帰させる仮想計算機復帰部をさらに備え、
前記仮想計算機定義情報は、
前記仮想計算機に最初に割り当てた計算機リソースの情報を前記仮想計算機のオリジナルの定義情報として保持し、
前記回復部は、
前記定義情報を複製し、当該複製した定義情報を前記実使用量に対応するように変更し、当該変更した定義情報に基づいて前記仮想計算機を前記第２の物理計算機に移動させ、前記変更した定義情報を移動の履歴として保持し、
前記仮想計算機復帰部は、
前記仮想計算機のオリジナルの定義情報で前記仮想計算機を前記第１の物理計算機に移動させることを特徴とする仮想計算機システム。
【請求項１５】
プロセッサとメモリを備えて複数の仮想計算機を構築する仮想化部を有する複数の物理計算機と、プロセッサとメモリを前記物理計算機とネットワークで接続された管理計算機と、を有し、前記管理計算機を制御するプログラムであって、
前記複数の物理計算機のうち第１の物理計算機の計算機リソースを前記仮想計算機に割り当てて当該仮想計算機を稼働させる手順と、
前記仮想計算機に割り当てた計算機リソースの情報を仮想計算機の定義情報として保持する手順と、
前記仮想計算機が前記第１の物理計算機で実際に使用した計算機リソースを実使用量として取得する手順と、
所定条件が成立したか否かを判定する手順と、
前記所定条件が成立したときに、前記仮想計算機の移動先として前記複数の物理計算機のうち、前記実使用量以上の計算機リソースを確保可能な物理計算機を前記第２の物理計算機として選択する手順と、
前記定義情報を前記実使用量に更新して、前記仮想計算機を前記第２の物理計算機に移動させる手順と、
を前記管理計算機に実行させることを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
【図１】本発明の実施形態を示し、本発明を適用する仮想計算機システムのブロック図を示す。
【図２】管理サーバ１０１の構成を示すブロック図である。
【図３】管理サーバ１０１の管理対象となるサーバ仮想化機構１１０が稼働している物理サーバ１１１の詳細な構成を示すブロック図である。
【図４】本発明の仮想計算機システムの動作概要を示すブロック図である。
【図５】サーバ管理テーブル１０８の詳細を示す説明図である。
【図６】仮想サーバ管理テーブル１０７の詳細を示す説明図である。
【図７】仮想サーバ定義情報テーブル１１８の構成を示す説明図である。
【図８】仮想サーバ１０９の定義情報３０９の内容を示す説明図である。
【図９】障害回復部１０２で行われる処理の一例を示すのフローチャートである。
【図１０】障害予兆管理部１０４で行われる処理の一例を示すフローチャートである。
【図１１】仮想サーバ回復方法選択部１０５で行われる処理の一例を示すフローチャートである。
【図１２】仮想サーバ回復部１０６で行われる処理の概要を示すフローチャートを示す。
【図１３】仮想サーバ定義情報管理部１０３で行われる処理の概要を示すフローチャートを示す。
【図１４】仮想サーバ復帰部１１９で行われる処理の概要を示すフローチャートを示す。