(57)【要約】【課題】複数のホストで構成される仮想計算機システムにおいて、ＣＰＵ資源を有効に活用するシステムの提供。【解決手段】ホスト３で実行されている仮想計算機実行手段３１の仮想ＣＰＵを、制御手段３２及びホスト間通信手段１を経由してホスト４及びホスト５に割り当てることにより、ＣＰＵ資源を有効に活用し、ディスクやメモリの内容を、全ホストにコピーすることにより、任意の時点でのホストの追加削除を可能にする。【選択図】図１
2004005113.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機を実行する手段（「仮想計算機実行手段」という）と制御手段とを備えたホストを複数備え、
複数の前記ホストに対してホスト間の通信を制御するホスト間通信手段を備え、
前記各ホストの制御手段は、前記ホスト間通信手段を介して、他のホストと通信するための制御を行い、
複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段はマスタホスト上で動作し、
複数の前記ホストのうちのマスタホスト以外のホストのＣＰＵ（中央処理装置）が、前記ホスト間通信手段を介して、前記仮想計算機のＣＰＵとして割り当てられる、ことを特徴とする仮想計算機システム。
【請求項２】
前記マスタホスト上の前記制御手段は、前記仮想計算機実行手段に対して、仮想計算機を実行するための機能を提供し、
複数の前記ホストのうちの前記マスタホスト以外のホストの前記制御手段は、前記ホスト間通信手段を介して、前記マスタホストと通信し、前記マスタホストからの要求に対して処理を実行し、
前記マスタホストから、前記マスタホストのメモリの内容、又は、メモリ及びディスクの内容が、前記ホスト間通信手段を介して、複数の前記ホストのうちの前記マスタホスト以外のホストにコピーされる、ことを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
ゲストオペレーティングシステムと、
仮想メモリ、仮想ディスク、仮想ＣＰＵ（中央処理装置）、仮想Ｉ／Ｏ（入出力）のうちの１つ以上を、前記ゲストオペレーティングシステムに提供する手段を備えた仮想計算機実行手段と、
ＣＰＵ、メモリ、ディスクと、前記ＣＰＵ、前記メモリ、前記ディスクの各装置をそれぞれ制御するＣＰＵ制御手段、メモリ制御手段、ディスク制御手段、及び、Ｉ／Ｏ制御手段を含む制御手段と、
を備えたホストを複数備え、
前記各ホストの前記制御手段に接続され、前記ホスト間の通信を制御するホスト間通信手段と、
前記各ホストの制御手段に接続されるＩ／Ｏ手段と、
を備え、
前記各ホストの制御手段は、前記ホスト間通信手段を通じて他のホストとの通信を制御するホスト制御手段を備え、
複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段は、前記マスタホスト上で動作し、
前記各ホストの前記制御手段は、前記各ホストの上でそれぞれ動作し、
前記マスタホストの前記制御手段は、前記マスタホストの前記仮想計算機実行手段に対して仮想計算機を実行するための機能を提供し、
複数の前記ホストのうちの前記マスタホスト以外のホストのＣＰＵが、仮想計算機のＣＰＵとして、割り当てられ、前記仮想計算機は複数のＣＰＵをもつように制御され、
複数の前記ホストのうちの前記マスタホスト以外のホストの前記制御手段は、前記ホスト間通信手段を介して、前記マスタホストと通信し、前記マスタホストからの要求に対して処理を実行し、
前記マスタホストから、前記ホスト間通信手段を介してメモリ及びディスクの内容が前記マスタホスト以外のホストにコピーされる、ことを特徴とする仮想計算機システム。
【請求項４】
ゲストオペレーティングシステムと、
仮想メモリ、仮想ディスク、仮想ＣＰＵ（中央処理装置）、仮想Ｉ／Ｏ（入出力）のうちの１つ以上を、前記ゲストオペレーティングシステムに提供する手段を備えた仮想計算機実行手段と、
ＣＰＵ、メモリと、前記ＣＰＵ及び前記メモリの各装置をそれぞれ制御するＣＰＵ制御手段及びメモリ制御手段と、Ｉ／Ｏ制御手段を含む制御手段と、
を備えたホストを複数備え、
前記各ホストの前記制御手段に接続され、前記ホスト間の通信を制御するホスト間通信手段と、
前記各ホストの制御手段に接続されるＩ／Ｏ手段と、
前記複数のホストで共有されるディスク装置と、
を備え、
前記各ホストの制御手段は、前記ホスト間通信手段を通じて他のホストとの通信を制御するホスト制御手段を備え、
複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段は、マスタホスト上で動作し、
前記各ホストの前記制御手段は、前記各ホストの上でそれぞれ動作し、
前記マスタホストの前記制御手段は、マスタホストの前記仮想計算機実行手段に対して仮想計算機を実行するための機能を提供し、
前記マスタホスト以外のホスト上のＣＰＵが仮想計算機のＣＰＵとして、割り当てられ、前記仮想計算機は、複数のＣＰＵをもつように制御され、
前記マスタホスト以外のホストの前記制御手段は、前記ホスト間通信手段を介してマスタホストと通信し、マスタホストからの要求に対して処理を実行し、
前記マスタホストから、前記ホスト間通信手段を介してメモリの内容が前記マスタホスト以外のホストにコピーされる、ことを特徴とする仮想計算機システム。
【請求項５】
前記マスタホストが、前記マスタホストのメモリ及び／又はディスクを更新した場合、前記マスタホストから、前記マスタホストのメモリ及び／又はディスクの更新内容を、前記ホスト間通信手段を介して、前記マスタホスト以外のホストへ転送し、前記マスタホスト以外のホストのメモリ及び／又はディスクの内容が更新される、ことを特徴とする請求項１乃至３のいずれか一に記載の仮想計算機システム。
【請求項６】
前記マスタホストが、前記マスタホストのメモリを更新した場合、前記マスタホストから、前記マスタホストのメモリの更新内容を、前記ホスト間通信手段を介して、前記マスタホスト以外のホストへ転送し、前記マスタホスト以外のホストのメモリの内容が更新される、ことを特徴とする請求項４に記載の仮想計算機システム。
【請求項７】
前記マスタホストが動作中、前記マスタホスト以外のホストが起動された場合、前記マスタホストの制御手段は、前記制御手段のメモリ、ディスクの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリ、ディスクにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う手段を備えている、ことを特徴とする請求項１乃至３のいずれか一に記載の仮想計算機システム。
【請求項８】
前記マスタホストが動作中、前記マスタホスト以外のホストが起動された場合、マスタホストの前記制御手段は、前記制御手段のメモリの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う手段を備えている、ことを特徴とする請求項４記載の仮想計算機システム。
【請求項９】
前記マスタホストが動作中に、前記マスタホスト以外のホストがダウンした場合、前記ダウンしたホストに割り当てていた仮想的なＣＰＵを削除する、ことを特徴とする請求項１乃至８のいずれか一に記載の仮想計算機システム。
【請求項１０】
マスタホストが未決定である場合、前記複数のホストのホスト識別情報の値に基づき、１つのホストをマスタホストとする、ことを特徴とする請求項１乃至９のいずれか一に記載の仮想計算機システム。
【請求項１１】
前記複数のホストのうちマスタホストがダウンした場合、マスタホスト以外のホストのうちからマスタとなるホストが決定される、ことを特徴とする請求項１乃至１０のいずれか一に記載の仮想計算機システム。
【請求項１２】
前記ゲストオペレーティングシステム上でのプログラムコードの実行は、正常ホストの個数のＣＰＵが、並列に処理し、仮想ＣＰＵを提供する手段は、前記ゲストオペレーティングシステムに対して、あたかも正常ホストの数だけのＣＰＵが存在するように振舞う、ことを特徴とする請求項１乃至１１のいずれか一に記載の仮想計算機システム。
【請求項１３】
前記ホスト制御手段は、前記各ホストのＣＰＵが動作するのに必要な情報をＣＰＵ制御手段に渡し、また前記各ホストのＣＰＵでの実行結果をＣＰＵ制御手段から受け取り、
前記ＣＰＵ制御手段は、必要に応じて、各ホストと通信して各ホストに割り当てられたＣＰＵ実行に関する情報の授受を行う、ことを特徴とする請求項１２に記載の仮想計算機システム。
【請求項１４】
仮想計算機を実行する仮想計算機実行手段と制御手段とを備えたホストを複数備え、ホスト間通信手段で前記ホスト間を通信を制御する仮想計算機システムの実行制御方法であって、
複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段をマスタホスト上で動作させるステップと、
複数の前記ホストのうちの前記マスタホスト以外のホストのＣＰＵ（中央処理装置）を、ホスト間通信手段を経由して前記仮想計算機のＣＰＵとして割り当てるステップと、
を含む、ことを特徴とする仮想計算機システムの制御方法。
【請求項１５】
前記マスタホストのメモリ、又はディスクとメモリの内容を、前記マスタホスト以外の全ホストにコピーするステップを有し、
任意の時点でのホストの追加削除を可能としている、ことを特徴とする請求項１４記載の仮想計算機システムの制御方法。
【請求項１６】
複数の前記ホストに対して共用のディスクを用意しておき、マスタホストから他のホストへのディスクの内容のコピーを不要としている、ことを特徴とする請求項１４記載の仮想計算機システムの制御方法。
【請求項１７】
前記マスタホストのメモリ及び／又はディスクを更新した場合、前記マスタホストから、前記マスタホストのメモリ及び／又はディスクの更新内容を、前記ホスト間通信手段を介して前記マスタホスト以外のホストへ転送し、前記マスタホスト以外のホストのメモリ及び／又はディスクの内容が更新される、ことを特徴とする請求項１４記載の仮想計算機システムの制御方法。
【請求項１８】
前記マスタホストが動作中、前記マスタホスト以外のホストが起動された場合、前記マスタホストの前記制御手段は、前記制御手段のメモリとディスクの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリ、とディスクにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う、ことを特徴とする請求項１４記載の仮想計算機システムの実行制御方法。
【請求項１９】
前記マスタホストが動作中、前記マスタホスト以外のホストが起動された場合、前記マスタホストの前記制御手段は、前記制御手段のメモリの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う、ことを特徴とする請求項１６記載の仮想計算機システムの制御方法。
【請求項２０】
前記マスタホストが動作中に、前記マスタホスト以外のホストがダウンした場合、前記ダウンしたホストに割り当てていた仮想的なＣＰＵを削除する、ことを特徴とする請求項１４乃至１９のいずれか一に記載の仮想計算機システムの制御方法。
【請求項２１】
マスタホストが未決定である場合、前記複数のホストのホスト識別情報の値に基づき、１つのホストをマスタホストとする、ことを特徴とする請求項１４乃至２０のいずれか一に記載の仮想計算機システムの制御方法。
【請求項２２】
前記複数のホストのうち前記マスタホストがダウンした場合、前記マスタホスト以外のホストのうちからマスタとなるホストが決定される、ことを特徴とする請求項１４乃至２１のいずれか一に記載の仮想計算機システムの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の実計算機上で動作する仮想計算機システムに関し、特に、実計算機の追加や削除が任意の時点で容易に可能である仮想計算機システムに関する。
【０００２】
【従来の技術】
現用系と待機系を有する冗長構成の仮想計算機システムが、従来より、知られている。この種の従来の仮想計算機システムに関する刊行物として、例えば特開平４−１４１７４４号公報には、現用系ホストと待機系ホストがスーパー及びホスト間通信装置を介して相互接続され、各ホストは、複数のオペレーティングシステム群を具備して複数のオペレーティングシステムで１個のハードウエアを共有する形態の仮想計算機システムにおいて、各ホストにオペレーティングシステム群を制御するとともに、特定のオペレーティングシステムのみをリセットする制御部を設け、仮想計算機上で動作しているオペレーティングシステム相互の間で待機系オペレーティングシステムが現用系オペレーティングシステムの異常を検出したら、待機系制御部から現用系制御部にスーパーを介してリセットすべきオペレーティングシステムの名前とリセット要求を通知し、現用系では、前記通知に基づいて特定のオペレーティングシステムをリセットするとともに、そのリセット結果を、現用系制御部からスーパーを介して待機系制御部に通知するように構成した仮想計算機のスタンバイ制御システムの構成が開示されている。
【０００３】
このスタンバイ制御システムは、現用系のホスト内で動作している子ＯＳが障害を起こした場合に、待機系ホストの子ＯＳに制御を移すことにより、子ＯＳ単位で、システムの無停止運用を実現する、というものである。すなわち、現用系の全ての子ＯＳに対して、対応する待機系の子ＯＳを用意できるため、現用系のどの子ＯＳが障害等により、システム停止状態に陥っても、システムの無停止運用が可能とされている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の仮想計算機システムは、下記記載の問題点を有している。
【０００５】
第１の問題点は、計算機のＣＰＵ資源が十分に活用されていない、ということである。
【０００６】
その理由は、待機系ホストは、通常、現用系ホストの異常に備えたバックアップとして存在しているため、現用系ホストが正常な場合には、待機系ＣＰＵは、実際の業務には使用されない遊休状態となるからである。
【０００７】
第２の問題点は、ホストの追加や削除ができないということである。
【０００８】
その理由は、現用系ホストと待機系ホストの２台の構成しか取り得ないためである。
【０００９】
したがって、本発明の目的は、複数のホストのＣＰＵを遊休させることなく、有効に活用する仮想計算機システムとその制御方法を提供することにある。
【００１０】
本発明の他の目的は、運用中に任意のホストがダウンした場合でも、正常なホストが少なくとも１台あれば運用が停止しない仮想計算機システムとその制御方法を提供することにある。
【００１１】
本発明の他の目的は、運用を停止することなく、任意の時点で、ホストの追加や削除を行うことができる仮想計算機システムとその制御方法を提供することにある。
【００１２】
本発明の他の目的は、仮想計算機システムの上で、通常の計算機システム上で動作する任意のプログラムが、改造無しでそのまま動作する仮想計算機システムとその制御方法を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的の少なくとも１つを達成する本発明の仮想計算機システムは、仮想計算機を実行する仮想計算機実行手段と制御手段とを備えたホストを複数備え、複数の前記ホストに対してホスト間の通信を制御するホスト間通信手段を備え、前記各ホストの制御手段は前記ホスト間通信手段を介して他のホストと通信する制御を行い、複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段はマスタホスト上で動作し、複数の前記ホストのうちのマスタホスト以外のホストのＣＰＵ（中央処理装置）が、前記ホスト間通信手段を介して、前記仮想計算機のＣＰＵとして割り当てられる。
【００１４】
本発明において、前記マスタホスト上の前記制御手段は、マスタホストの前記仮想計算機実行手段に対して仮想計算機を実行するための機能を提供し、マスタホスト以外のホストの前記制御手段は、前記ホスト間通信手段を介してマスタホストと通信し、マスタホストからの要求に対して処理を実行し、前記マスタホストから、前記ホスト間通信手段を介して、メモリ、又はメモリ及びディスクの内容がマスタホスト以外のホストにコピーされる。
【００１５】
本発明において、マスタホストが動作中、マスタホスト以外のホストが起動された場合、マスタホストの前記制御手段は、前記制御手段のメモリ、ディスクの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリ、ディスクにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う構成としてもよい。
【００１６】
本発明において、マスタホストが動作中、マスタホスト以外のホストが起動された場合、マスタホストの前記制御手段は、前記制御手段のメモリの内容を、前記ホスト間通信手段を介して新しく起動したホストの制御手段のメモリにコピーし、コピー完了後、仮想的なＣＰＵを新たに追加して新しく起動したホストに割り当てる制御を行う構成としてもよい。
【００１７】
本発明において、マスタホスト動作中にマスタホスト以外のホストがダウンした場合、前記ダウンしたホストに割り当てていた仮想的なＣＰＵを削除する構成としてもよい。
【００１８】
本発明において、マスタホストが未決定である場合、前記複数のホストのうち識別番号の値に基づき、１つのホストをマスタホストとする構成としてもよい。
【００１９】
本発明において、前記複数のホストのうちマスタホストが障害発生等でダウンした場合、マスタホスト以外のホストのうちからマスタとなるホストが決定される構成としてもよい。
【００２０】
本発明の他のアスペクト（側面）に係る方法は、仮想計算機を実行する仮想計算機実行手段と制御手段とを備えたホストを複数備え、ホスト間通信手段で前記ホスト間を通信を制御する仮想計算機システムの実行制御方法であって、複数の前記ホストのうちの１つがマスタ（マストであるホストを「マスタホスト」という）となり、前記仮想計算機実行手段をマスタホスト上で動作させるステップと、複数の前記ホストのうちの前記マスタホスト以外のホストのＣＰＵ（中央処理装置）を、ホスト間通信手段を経由して前記仮想計算機のＣＰＵとして割り当てるステップと、を含む。
【００２１】
本発明に係る方法においては、前記マスタホストのメモリ、又はディスクとメモリの内容を、前記マスタホスト以外の全ホストにコピーするステップを有し、任意の時点でのホストの追加削除を可能としている。
【００２２】
本発明に係る方法においては、複数の前記ホストに対して共用のディスクを用意しておき、マスタホストから他のホストへのディスクの内容のコピーを不要としている。
【００２３】
【発明の実施の形態】
本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態の構成を示す図である。図１を参照すると、本発明の第１の実施の形態のシステムは、プログラム制御により動作する複数ホスト３、４、５と、ホスト３、４、５に接続され、ホスト同士の通信に用いるホスト間通信手段１と、ホスト３、４、５に接続され、ホストの入出力（Ｉ／Ｏ）機能を提供するＩ／Ｏ装置２と、を備えている。
【００２４】
各ホスト３、４、５は、仮想計算機実行手段３１と制御手段３２とを含む。なお、図１には、単に図面作成の都合及び説明の簡単のために、ホスト三台の構成が示されているが、本発明においてホストの台数は複数台とされ、３台に限定されるものでないことは勿論である。
【００２５】
図２は、図１の仮想計算機実行手段３１の構成を示す図である。仮想計算機実行手段３１は、各ホスト３、４、５で同一構成とされる。図２を参照すると、仮想計算機実行手段３１は、ゲストオペレーティングシステム３１１と、仮想メモリ提供手段３１２と、仮想ディスク提供手段３１３と、仮想ＣＰＵ提供手段３１４と、仮想Ｉ／Ｏ提供手段３１５とを備えている。これらの手段はそれぞれ概略つぎのように動作する。
【００２６】
仮想計算機実行手段３１は、複数の正常なホストのうちマスタとなる１つのホスト上でのみ動作する。このホストを「マスタホスト」と呼ぶ。
【００２７】
ゲストオペレーティングシステム３１１は、仮想計算機上で動作するオペレーティングシステムである。ゲストオペレーティングシステム３１１としては、例えば、通常の計算機上で動作する、汎用のオペレーティングシステムがそのまま用いられる。
【００２８】
仮想メモリ提供手段３１２、仮想ディスク提供手段３１３、仮想ＣＰＵ提供手段３１４、仮想Ｉ／Ｏ提供手段３１５を、ゲストオペレーティングシステム３１１で利用するために、ドライバが追加される。
【００２９】
ゲストオペレーティングシステム３１１上で動作させるプログラムは、並列処理を意識したプログラムであってある必要はなく、通常の計算機上で動作するプログラムを変更無しに、そのまま動作させることが可能である。ゲストオペレーティングシステム３１１上で動作させるプログラムは、並列処理対応のプログラムであってもよい。
【００３０】
仮想メモリ提供手段３１２は、仮想計算機を構成する仮想的なメモリを、ゲストオペレーティングシステム３１１に提供する。
【００３１】
仮想ディスク提供手段３１３は、仮想計算機を構成する仮想的なディスクをゲストオペレーティングシステム３１１に提供する。
【００３２】
仮想ＣＰＵ提供手段３１４は、仮想計算機を構成する仮想的なＣＰＵをゲストオペレーティングシステム３１１に提供する。
【００３３】
仮想Ｉ／Ｏ提供手段３１５は、仮想計算機を構成する仮想的なＩ／Ｏデバイスをゲストオペレーティングシステム３１１に提供する。
【００３４】
図３は、図１の制御手段３２の構成を示す図である。制御手段３２は、各ホスト３、４、５で同一の構成とされる。図３を参照すると、制御手段３２は、ホスト制御手段３２１と、メモリ制御手段３２２と、ディスク制御手段３２３と、ＣＰＵ制御手段３２４と、Ｉ／Ｏ制御手段３２５と、メモリ装置３２６と、ディスク装置３２７と、ＣＰＵ装置３２８と、通信制御手段３２９をを備えている。これらの手段はそれぞれ概略つぎのように動作する。
【００３５】
制御手段３２は、ホスト３、４、５のうち全ての正常なホストの上で動作する。
【００３６】
マスタホストでは、制御手段３２は、仮想計算機実行手段３１に対して、仮想計算機を実行するのに必要な機能を提供する。マスタホスト以外のホストでは、制御手段３２は、ホスト間通信手段１経由で、マスタホストと通信し、マスタホストからの要求に対して、処理を実行する。
【００３７】
ホスト制御手段３２１は、通信制御手段３２９を通じて、他のホストのホスト制御手段３２１と通信し、どのホストが正常であるかの判定を行う。
【００３８】
また、ホスト制御手段３２１は、通信制御手段３２９を通じて、どのホストがマスタホストとなるべきかを判定する。
【００３９】
さらに、ホスト制御手段３２１は、通信制御手段３２９を通じて、ホストのダウン、ダウンしていたホストの復帰、新たなホストの追加、既存のホストの除去（取り外し）を検出する。
【００４０】
メモリ制御手段３２２は、仮想メモリの制御を行う。仮想計算機上でメモリの書き込みが行われた場合には、全てのホストのメモリ制御手段３２２を経由して全てのホストのメモリ装置３２６に情報が書き込まれる。
【００４１】
ディスク制御手段３２３は、仮想ディスクの制御を行う。仮想計算機上でディスクの書き込みが行われた場合には、全てのホストのディスク制御手段３２３を経由して全てのホストのディスク装置３２７に情報が書き込まれる。
【００４２】
ＣＰＵ制御手段３２４は、仮想ＣＰＵの制御を行う。仮想計算機は、複数のＣＰＵを持つ計算機であるように振舞う。仮想計算機上のそれぞれの仮想ＣＰＵは、各ホストのＣＰＵ制御手段３２４と対応付けられ、ＣＰＵ装置３２８に割り当てられる。
【００４３】
Ｉ／Ｏ制御手段３２５は、仮想Ｉ／Ｏデバイスの制御を行う。仮想計算機上で入出力（Ｉ／Ｏ）が行われた場合には、マスタホストのＩ／Ｏ制御手段を経由してＩ／Ｏ手段２で入出力操作（Ｉ／Ｏ）が行われる。
【００４４】
通信制御手段３２９は、上位の各手段に対して他のホストと通信する手段を提供する。
【００４５】
図４は、この実施の形態の動作の一例を説明するための流れ図である。次に、図４のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００４６】
まず、各ホストは、他のホストと通信し、正常に起動しているホストリストを決定する（図４のステップＡ−１）。決定ルールは、正常起動しているかどうかの通信電文に対して、一定時間以内に正常な応答が得られたホストを正常と判断する。
【００４７】
次に、マスタホストを決定する（ステップＡ−２）。マスタホストの決定ルールは、例えば以下のようなルールとされる。すでにマスタホストとして動作しているホストが存在すれば、そのホストがマスタホストである。もし、マスタホストとして動作しているホストが存在していなければ、正常に起動しているホストのうち、最も小さいホストＩＤを持っているホストをマスタホストとして決定する。
【００４８】
自ホストがマスタホストであれば、以降は、マスタモードで動作する（ステップＡ−３、Ａ−４）。
【００４９】
マスタモードでのホスト（マスタホスト）の動作は、以下のようなものである。
【００５０】
まず、マスタホストは、仮想計算機実行手段３１を実行し、ゲストオペレーティングシステム３１１を起動する。
【００５１】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でメモリ読み込みが発生した場合には、仮想メモリ提供手段３１２を経由して、ホスト制御手段３２１に、メモリ読み込み要求が伝達される。ホスト制御手段３２１はメモリ制御手段３２２を通じてメモリ装置３２６からデータを読み出す。
【００５２】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でメモリ書き込みが発生した場合には、仮想メモリ提供手段３１２を経由して、ホスト制御手段３２１にメモリ書き込み要求が伝達される。ホスト制御手段３２１はメモリ制御手段３２２を通じてメモリ装置３２６にデータを書き込む。また、同時に、マスタホストのメモリ制御手段３２２は、通信制御手段３２９、ホスト間通信手段１を介して、他の正常ホストに、書き込まれたデータを伝達する。
【００５３】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でディスク読み込みが発生した場合には、仮想ディスク提供手段３１３を経由して、ホスト制御手段３２１にディスク読み込み要求が伝達される。ホスト制御手段３２１はディスク制御手段３２３を通じてディスク装置３２７からデータを読み出す。
【００５４】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でディスク書き込みが発生した場合には仮想ディスク提供手段３１３を経由して、ホスト制御手段３２１にディスク書き込み要求が伝達される。ホスト制御手段３２１はディスク制御手段３２３を通じてディスク装置３２７にデータを書き込む。また、同時に、マスタホストのディスク制御手段３２３は、通信制御手段３２９、ホスト間通信手段１を介して、他の正常ホストに、書き込まれたデータを伝達する。
【００５５】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でのプログラムコードの実行は、正常ホストの個数分のＣＰＵが、並列に処理する。仮想ＣＰＵ提供手段３１４は、ゲストオペレーティングシステム３１１に対して、あたかも正常ホストの数だけのＣＰＵがが存在するように振舞う。
【００５６】
仮想的なそれぞれのＣＰＵは、各ホストに割り当てられる。
【００５７】
ホスト制御手段３２１は、各ホストのＣＰＵが動作するのに必要な情報をＣＰＵ制御手段３２４に渡し、また実行結果を、ＣＰＵ制御手段３２４から受け取る。マスタホストにおいて、ＣＰＵ制御手段３２４は、必要に応じて、各ホストと通信して、各ホストに割り当てられたＣＰＵ実行に関する情報のやりとりを行う。
【００５８】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でＩ／Ｏ入力が発生した場合には、仮想Ｉ／Ｏ提供手段３１５を経由して、ホスト制御手段３２１にＩ／Ｏ入力要求が伝達される。ホスト制御手段３２１は、Ｉ／Ｏ制御手段３２５を通じてＩ／Ｏ装置２からデータを入力する。
【００５９】
マスタホストにおいて、ゲストオペレーティングシステム３１１上でＩ／Ｏ出力が発生した場合には、仮想Ｉ／Ｏ提供手段３１５を経由して、ホスト制御手段３２１にＩ／Ｏ出力要求が伝達される。ホスト制御手段３２１はＩ／Ｏ制御手段３２５を通じてＩ／Ｏ装置２にデータを出力する。
【００６０】
また、マスタモードで動作中に、他のホストが起動した場合には、マスタホストは、メモリ装置３２６及びディスク装置３２７の内容を、新しく起動したホストにコピーする。マスタホストは、コピーが完了した後、仮想的なＣＰＵを新しく追加し、新しく起動したホストに割り当てる。
【００６１】
マスタモードで動作中に、他のホストがダウンした場合には、マスタホストは、ダウンしたホストに割り当てていた仮想的なＣＰＵを削除する。
【００６２】
自ホストがマスタホストでなければ、以降は、スレーブモードで動作する（ステップＡ−３、Ａ−５）。スレーブモードでの動作は、以下のようなものである。
【００６３】
まず、マスタホストからホスト間通信手段１を通じて、マスタホストのメモリ装置３２６及びディスク装置３２７の記憶内容をコピーする。マスタホストのメモリの記憶内容は、ホスト間通信手段１、スレーブホストの通信制御手段３２９及びメモリ制御手段３２２を経由して、スレーブホストのメモリ装置３２６に書き込まれる。マスタホストのディスクの記憶内容は、ホスト間通信手段１、スレーブホストの通信制御手段３２９及びディスク制御手段３２３を経由してスレーブホストのディスク装置３２７に書き込まれる。
【００６４】
マスタホストからメモリ書き込みが伝達された場合、ホスト間通信手段１、通信制御手段３２９及びメモリ制御手段３２２を経由してスレーブホストのメモリ装置３２６に書き込まれる。
【００６５】
マスタホストからディスク書き込みが伝達された場合、ホスト間通信手段１、通信制御手段３２９及びディスク制御手段３２３を経由してスレーブホストのディスク装置３２７に書き込まれる。
【００６６】
マスタホストからＣＰＵ実行に必要なデータが伝達された場合、ホスト間通信手段１、スレーブホストの通信制御手段３２９及びＣＰＵ制御手段３２４を経由して、スレーブホストのＣＰＵ装置３２８で命令コードが実行され、その結果は、スレーブホストのＣＰＵ制御装置３２４及び通信制御手段３２９、ホスト間通信手段１を経由して、マスタホストに返却される。
【００６７】
スレーブモードで動作中に、マスタホストがダウンした場合には、ステップＡ−２と同様のマスタホスト決定を再試行し、その結果、自ホストがマスタホストとなった場合は、ステップＡ−４のマスタモードで動作を実行する。
【００６８】
【実施例】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
【００６９】
例えば、図１のようにホストが３台存在する構成において、全てのホストが正常に起動した場合、ホスト３がマスタモードとして動作し、ホスト４及びホスト５がスレーブモードで動作する。
【００７０】
ホスト３の上の仮想計算機実行手段３１のメモリ及びディスクの内容は、ホスト４及びホスト５に、随時、複製が作成される。
【００７１】
また、仮想計算機実行手段３１は、あたかも３つのＣＰＵを持っているかのように振舞い、それぞれのＣＰＵとして、実際には、ホスト３、ホスト４、ホスト５のＣＰＵが使われる。この状態で、なんらかの障害によりホスト３がダウンした場合、ホスト４がマスタホストとして動作を開始する。仮想計算機のディスク及びメモリの内容は実行状態はホスト３がダウンする直前の状態がそのまま使われるため、仮想計算機上で実行していた業務は、ホスト３がダウンした影響を受けずに、そのまま継続することができる。
【００７２】
次に、ホスト３が再起動して正常な状態になった場合、ホスト４がマスタホストのままであるが、ホスト４とホスト５の２台分のＣＰＵしか用いられていなかった状態から、ホスト３、ホスト４、ホスト５の３台分のＣＰＵが使用できる状態に移行するため、実行速度が上昇する。
【００７３】
【第２の実施の形態】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図５は、本発明の第２の実施の形態の構成を示す図である。図５参照すると、本発明の第２の実施の形態は、図１の構成に、ホスト３、４、５に接続されている共有ディスク装置６が追加されている。すなわち、ホスト同士の通信に用いるホスト間通信手段１と、Ｉ／Ｏを提供するＩ／Ｏ装置２と、プログラム制御により動作する複数台のホスト（ホスト３、ホスト４、ホスト５）と、共有ディスク装置６から構成されている。それぞれのホストは、仮想計算機実行手段３１と制御手段３２Ａとを含む。
【００７４】
図６は、図５の仮想計算機実行手段３１の構成を示す図である。この第２の実施の形態の仮想計算機実行手段３１は、図２に示した前記実施の形態の仮想計算機実行手段３１と同様とされる。すなわち、図６を参照すると、仮想計算機実行手段３１は、ゲストオペレーティングシステム３１１と、仮想メモリ提供手段３１２と、仮想ディスク提供手段３１３と仮想ＣＰＵ提供手段３１４と仮想Ｉ／Ｏ提供手段３１５から構成されている。仮想計算機実行手段３１は、複数の正常なホストのうちの１つの上でのみ動作する。このホストをマスタホストと呼ぶ。ゲストオペレーティングシステム３１１は、仮想計算機上で動作するオペレーティングシステムであり、業務に必要な任意のプログラムを実行することが可能である。仮想メモリ提供手段３１２は、仮想計算機を構成する仮想的なメモリをゲストオペレーティングシステムに提供する。仮想ディスク提供手段３１３は、仮想計算機を構成する仮想的なディスクをゲストオペレーティングシステムに提供する。仮想ＣＰＵ提供手段３１４は、仮想計算機を構成する仮想的なＣＰＵをゲストオペレーティングシステムに提供する。仮想Ｉ／Ｏ提供手段３１５は、仮想計算機を構成する仮想的なＩ／Ｏデバイスをゲストオペレーティングシステムに提供する。
【００７５】
図７は、図５の制御手段３２Ａの構成を示す図である。図７を参照すると、制御手段３２Ａは、ホスト制御手段３２１と、メモリ制御手段３２２と、ディスク制御手段３２３Ａと、ＣＰＵ制御手段３２４と、Ｉ／Ｏ制御手段３２５と、メモリ装置３２６と、ＣＰＵ装置３２８と、通信制御手段３２９から構成されている。前記実施の形態と相違して、第２の実施の形態の制御手段３２Ａは、ディスク装置３２７を具備しない。これらの手段はそれぞれ概略つぎのように動作する。
【００７６】
制御手段３２Ａは、全ての正常なホストの上で動作する。マスタホストでは、仮想計算機実行手段３１に対して仮想計算機を実行するのに必要な機能を提供する。マスタホスト以外のホストでは、ホスト間通信手段１経由でマスタホストと通信し、マスタホストからの要求に対して処理を実行する。
【００７７】
ホスト制御手段３２１は、通信制御手段３２９を通じて、他のホストのホスト制御手段と通信し、どのホストが正常であるかの判定を行う。また、どのホストがマスタホストとなるべきかを判定する。また、ホストのダウン、ダウンしていたホストの復帰、新たなホストの追加、既存のホストの除去（取り外し）を検出する。
【００７８】
メモリ制御手段３２２は、仮想メモリの制御を行う。仮想計算機上でメモリの書き込みが行われた場合には、全てのホストのメモリ制御手段３２２を経由して全てのホストのメモリ装置３２６に情報が書き込まれる。
【００７９】
ディスク制御手段３２３Ａは、仮想ディスクの制御を行う。仮想計算機上でディスクの書き込みが行われた場合には、ディスク制御手段３２３を経由して、共有ディスク装置６に情報が書き込まれる。
【００８０】
ＣＰＵ制御手段３２４は、仮想ＣＰＵの制御を行う。仮想計算機は、複数のＣＰＵを持つ計算機であるように振舞う。仮想計算機上のそれぞれの仮想ＣＰＵは、各ホストのＣＰＵ制御手段３２４と対応付けられ、ＣＰＵ装置３２８に割り当てられる。
【００８１】
Ｉ／Ｏ制御手段３２５は、仮想Ｉ／Ｏデバイスの制御を行う。仮想計算機上でＩ／Ｏがが行われた場合には、マスタホストのＩ／Ｏ制御手段を経由してＩ／Ｏ手段２でＩ／Ｏが行われる。
【００８２】
通信制御手段３２９は、上位の各手段に対して他のホストと通信する手段を提供する。
【００８３】
この第２の実施の形態の動作は、図４を参照して説明した前記第１の実施の形態と基本的に同様であるが、ゲストオペレーティングシステム上でディスク読み込み、ディスク書き込みの動作が相違している。以下、相違点について主に説明する。
【００８４】
マスタモードでの動作は、以下のようなものである。まず、仮想計算機実行手段３１を実行し、ゲストオペレーティングシステム３１１を起動する。
【００８５】
マスタホストにおいて、ゲストオペレーティングシステム上でディスク読み込みが発生した場合には仮想ディスク提供手段３１３を経由して、ホスト制御手段３２１にディスク読み込み要求が伝達される。ホスト制御手段３２１はディスク制御手段３２３を通じて共有ディスク装置６から、データを読み出す。
【００８６】
マスタホストにおいて、ゲストオペレーティングシステム上でディスク書き込みが発生した場合には仮想ディスク提供手段３１３を経由して、ホスト制御手段３２１にディスク書き込み要求が伝達される。ホスト制御手段３２１はディスク制御手段３２３を通じて共有ディスク装置６のデータを書き込む。
【００８７】
また、マスタモードで動作中に、他のホストが起動した場合には、メモリの内容を全て新しく起動したホストにコピーする。コピーが完了した後、仮想的なＣＰＵを新しく追加し、新しく起動したホストに割り当てる。この際、前記第１の実施の形態と相違して、マスタホストから他のホストへのディスクのコピーは行われない。
【００８８】
マスタモードで動作中に、他のホストがダウンした場合には、ダウンしたホストに割り当てていた仮想的なＣＰＵを削除する。
【００８９】
自ホストがマスタホストでなければ、以降はスレーブモードで動作する（ステップＡ−３、Ａ−５）。スレーブモードでの動作は、以下のようなものである。まず、マスタホストから、ホスト間通信手段１を通じて、メモリの記憶内容をコピーする。メモリの記憶内容は、通信制御手段３２９及びメモリ制御手段３２２を経由して、メモリ装置３２６に書き込まれる。なお、この実施の形態では、前記第１の実施の形態と相違して、マスタホストから他のホストへのディスクのコピーは行われない。
【００９０】
マスタホストからメモリ書き込みが伝達された場合、ホスト間通信手段１を通じて、スレーブホストの通信制御手段３２９及びメモリ制御手段３２２を経由してスレーブホストのメモリ装置３２６に書き込まれる。
【００９１】
マスタホストから、ホスト間通信手段１を通じて、ＣＰＵ実行に必要なデータがスレーブホストに伝達された場合、通信制御手段３２９及びＣＰＵ制御手段３２４を経由して、スレーブホストのＣＰＵ装置３２８で命令コードが実行され、その結果は、スレーブホストのＣＰＵ制御装置３２４及び通信制御手段３２９と、ホスト間通信手段１を経由して、マスタホストに返却される。
【００９２】
前記実施の形態と同様、スレーブモードで動作中に、マスタホストがダウンした場合には、ステップＡ−２と同様のマスタホスト決定を再試行し、その結果、自ホストがマスタホストとなった場合は、ステップＡ−４のマスタモードで動作を実行する。
【００９３】
次に、本実施の形態の作用効果について説明する。
【００９４】
本実施の形態では、ディスク装置を各ホストに具備するのではなく、システムとして、１つの共有ディスク装置として構成されている。このため、ディスクのデータを各ホストにコピーすることが不要とされている。この結果、本実施の形態では、ホストの起動に必要な時間を短縮することができるという作用効果を奏する。
【００９５】
以上本発明を上記実施形態に即して説明したが、本発明は、上記実施形態にのみ限定されるものでなく、特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得る各種変形、修正を含むことは勿論である。
【００９６】
【発明の効果】
以上説明したように、本発明によれば下記記載の効果を奏する。
【００９７】
本発明の第１の効果は、仮想計算機システムにおいて、ＣＰＵ資源を有効に活用し、高い実行速度を実現することができる、ということである。
【００９８】
その理由は、本発明においては、マスタホスト以外のホストのＣＰＵも仮想計算機上のＣＰＵとして割り当てられるためである。
【００９９】
本発明の第２の効果は、運用中に任意のホストがダウンした場合でも、正常なホストが最低１台あれば運用が停止しない、ということである。
【０１００】
その理由は、本発明においては、メモリやディスクの内容を各ホストに随時コピーしているため、どのホストがダウンしても、残った正常なサーバで運用を継続するのに必要な情報を全て保持しているためである。
【０１０１】
本発明の第３の効果は、計算機を任意の時点で追加や削除できる、ということである。その理由は、上記第２の効果と同じ理由によるものである。
【０１０２】
本発明の第４の効果は、実行するアプリケーションプログラムは、通常の計算機で動作するものを変更無しでそのまま仕様することが可能である、ということである。
【０１０３】
その理由は、本発明においては、仮想計算機上では通常の計算機上と同様のオペレーティングシステムが動作するため、アプリケーションプログラムに対して、通常の計算機で動作しているのと全く同じ機能を提供するためである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示す図である。
【図２】本発明の第１の実施の形態の仮想計算機実行手段の構成を示す図である。
【図３】本発明の第１の実施の形態の制御手段の構成を示す図である。
【図４】本発明の第１及び第２の実施の形態の動作を示す流れ図である。
【図５】本発明の第２の実施の形態の構成を示す図である。
【図６】本発明の第２の実施の形態の仮想計算機実行手段の構成を示す図である。
【図７】本発明の第２の実施の形態の制御手段の構成を示す図である。
【符号の説明】
１　ホスト間通信手段
２　Ｉ／Ｏ装置（Ｉ／Ｏ手段）
３、４、５　ホスト
３１　仮想計算機実行手段
３１１　ゲストオペレーティングシステム
３１２　仮想メモリ提供手段
３１３　仮想ディスク提供手段
３１４　仮想ＣＰＵ提供手段
３１５　仮想Ｉ／Ｏ提供手段
３２　制御手段
３２１　ホスト制御手段
３２２　メモリ制御手段
３２３　ディスク制御手段
３２４　ＣＰＵ制御手段
３２５　Ｉ／Ｏ制御手段
３２６　メモリ装置
３２７　ディスク装置
３２８　ＣＰＵ装置
３２９　通信制御手段
６　共有ディスク装置
【図１】
2004005113.tif 000003
【図２】
2004005113.tif 000004
【図３】
2004005113.tif 000005
【図４】
2004005113.tif 000006
【図５】
2004005113.tif 000007
【図６】
2004005113.tif 000008
【図７】
2004005113.tif 000009