(57)【要約】【課題】仮想マシンのスローダウン状態を考慮した当該仮想マシンの障害検出を行うことにより、スプリットプレインを招くことなくサービスの引き継ぎが行えるようにする。【解決手段】サーバ計算機１０-1及び１０-2には、それぞれＶＭ１１-1及び１１-2が配置される。サーバ計算機１０-1のＶＭＭ１２-1上に配置されるスローダウン検出機構１２２-1は、ＶＭ１１-1の使用する仮想化されたメモリ領域（に割り当てられる共有管理領域１２１-1）内の定期更新領域に対するＶＭ１１-1による更新状況を監視することでＶＭ１１-1のスローダウン状態を検出する。ＶＭＭ１２-1上に配置される状態通知・監視機構１２３-1は、検出機構１２２-1によって検出されるＶＭ１１-1の状態をサーバ計算機１０-2のＶＭＭ１２-2上に配置される状態通知・監視機構１２３-2に通知する。するとクラスタ制御機構１３-2は、ＶＭ１１-1が提供していたサービスをＶＭ１１-2に引き継がせる。【選択図】      図１
2009080704.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンがそれぞれ配置される複数の物理計算機から構成される仮想計算機システムにおいて、
前記複数の物理計算機の各々は、
当該物理計算機に配置される前記仮想マシンを管理すると共に、当該仮想マシンが使用するメモリ領域を管理する仮想マシンモニタと、
前記仮想マシンモニタ上に配置されるスローダウン検出機構であって、当該仮想マシンモニタによって管理される前記メモリ領域に対する前記仮想マシンによる更新の状況を監視することで、当該仮想マシンのスローダウン状態を検出するスローダウン検出機構と、
前記仮想マシンモニタ上に配置される状態通知・監視機構であって、前記スローダウン検出機構によって検出される前記仮想マシンの状態を、当該仮想マシンが配置される前記物理計算機とは別の物理計算機の仮想マシンモニタ上に配置される別の状態通知・監視機構に通知すると共に、当該別の状態通知・監視機構からの状態通知を監視することによって前記別の物理計算機に配置される別の仮想マシンの状態を判定し、当該別の仮想マシンが前記スローダウン状態にある場合に当該別の仮想マシンを障害状態として判定する状態通知・監視機構と、
当該物理計算機に配置される前記仮想マシンに、前記別の物理計算機に配置される別の仮想マシンが提供していたサービスを引き継がせるためのクラスタ制御を行うクラスタ制御機構であって、前記状態通知・監視機構によって前記別の仮想マシンが障害状態と判定された場合に前記クラスタ制御を行うクラスタ制御機構と
を具備することを特徴とする仮想計算機システム。
【請求項２】
前記複数の物理計算機の各々には前記仮想マシンを含む複数の仮想マシンが配置されており、
前記仮想マシンモニタは、前記メモリ領域を含む、複数の仮想マシンがそれぞれ使用する複数のメモリ領域を管理し、
前記スローダウン検出機構は、前記複数のメモリ領域に対する前記複数の仮想マシンによる更新の状況を個別に監視することで、当該複数の仮想マシンの各々のスローダウン状態を検出し、
前記状態通知・監視機構は、前記スローダウン検出機構によって検出される前記複数の仮想マシンの状態を、当該複数の仮想マシンが配置される前記物理計算機とは別の物理計算機の仮想マシンモニタ上に配置される別の状態通知・監視機構に通知すると共に、当該別の状態通知・監視機構からの状態通知を監視することによって前記別の物理計算機に配置される別の複数の仮想マシンの状態を判定し、当該別の複数の仮想マシンのうち前記スローダウン状態にある別の仮想マシンを障害状態として判定する
ことを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
前記状態通知・監視機構は、前記別の状態通知・監視機構からの状態通知が途絶えた場合、前記別の物理計算機に配置される前記別の複数の仮想マシンを全て障害状態として判定し、
前記クラスタ制御機構は、前記状態通知・監視機構によって前記別の複数の仮想マシンが全て障害状態と判定された場合、当該別の複数の仮想マシンが提供していたサービスの全ての引き継ぎのためのクラスタ制御を行う
ことを特徴とする請求項２記載の仮想計算機システム。
【請求項４】
前記複数の物理計算機の各々は、当該物理計算機に配置される前記仮想マシン上で動作するハートビート機構であって、当該仮想マシンの動作状態を、当該物理計算機とは別の物理計算機に配置される別の仮想マシン上で動作する別のハートビート機構に定期的に通知すると共に、当該別のハートビート機構からの状態通知を監視し、当該別のハートビート機構からの状態通知が途絶えた場合に、前記状態通知・監視機構によって前記別の仮想マシンの状態が障害状態と判定されたかを当該状態通知・監視機構に問い合わせるハートビート機構を更に具備し、
前記クラスタ制御機構は、前記ハートビート機構からの問い合わせに応じて、前記状態通知・監視機構から当該ハートビート機構に対して前記別の仮想マシンの状態が障害状態と判定されたことが通知された場合に前記クラスタ制御を行う
ことを特徴とする請求項１、２または３に記載の仮想計算機システム。
【請求項５】
前記状態通知・監視機構は、前記スローダウン検出機構によって前記仮想マシンのスローダウン状態が検出された場合、当該仮想マシンの状態を前記別の状態通知・監視機構に通知しないことにより、当該仮想マシンのスローダウン状態を当該仮想マシンの障害状態として通知し、前記別の状態通知・監視機構からの状態通知が途絶えた場合、前記別の仮想マシンを障害状態として判定することを特徴とする請求項１、２または３に記載の仮想計算機システム。
【請求項６】
前記メモリ領域は、前記仮想マシンによって定期的に更新される特定領域を含み、
前記スローダウン検出機構は、前記メモリ領域内の前記特定領域に対する前記仮想マシンによる更新の状況を監視することで、当該仮想マシンのスローダウン状態を検出する
ことを特徴とする請求項１、２または３に記載の仮想計算機システム。
【請求項７】
前記スローダウン検出機構は、前記特定領域に対する前記仮想マシンによる更新の状況を定期的に監視することにより前記特定領域に対する更新の頻度を算出し、当該更新の頻度が予め定められた頻度閾値以下であることをもって、当該仮想マシンのスローダウン状態を検出することを特徴とする請求項６記載の仮想計算機システム。
【請求項８】
前記スローダウン検出機構は、前記特定領域に対する前記仮想マシンによる更新の状況を定期的に監視することにより更新が行われていない更新停止期間をカウントし、当該更新停止期間が予め定められた停止閾値を超えている場合に、当該仮想マシンの停止状態を判定し、この停止状態の判定をもって当該仮想マシンのスローダウン状態を検出したとすることを特徴とする請求項６記載の仮想計算機システム。
【請求項９】
第１の仮想マシンが配置される第１の物理計算機及び第２の仮想マシンが配置される第２の物理計算機を含む複数の物理計算機から構成される仮想計算機システムにおいて、前記第１の仮想マシンの障害時に、当該第１の仮想マシンが提供していたサービスを前記第２の仮想マシンに引き継がせるためのサービス引き継ぎ制御方法であって、
前記第１の物理計算機上で動作して前記第１の仮想マシンを管理する第１の仮想マシンモニタに配置されるスローダウン検出機構が、当該第１の仮想マシンモニタによって管理されるメモリ領域であって、前記第１の仮想マシンの使用するメモリ領域に対する当該第１の仮想マシンによる更新の状況を監視するステップと、
前記スローダウン検出機構が、前記メモリ領域に対する更新の状況の監視結果に基づき、前記仮想マシンのスローダウン状態を検出するステップと、
前記第１の仮想マシンモニタに配置される第１の状態通知・監視機構が、前記第１の仮想マシンの検出された状態を前記第２の物理計算機上で動作する第２の仮想マシンモニタに配置された第２の状態通知・監視機構に通知するステップと、
前記第２の状態通知・監視機構が、前記第１の状態通知・監視機構からの状態通知を監視するステップと、
前記第２の状態通知・監視機構が、前記状態通知の監視結果に基づき前記第１の仮想マシンの状態を判定し、当該第１の仮想マシンが前記スローダウン状態にある場合に当該第１の仮想マシンを障害状態として判定するステップと、
前記第２の状態通知・監視機構によって前記第１の仮想マシンが障害状態として判定された場合、前記第２の物理計算機で動作するクラスタ制御機構が、当該第２の物理計算機に配置される前記第２の仮想マシンに、前記第１の仮想マシンの提供していたサービスを引き継がせるステップと
を具備することを特徴とするサービス引き継ぎ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンが動作可能な複数の物理計算機を備えた仮想計算機システムに係り、特に、仮想マシンのスローダウン状態を考慮したサービスの引き継ぎに好適な仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法に関する。
【背景技術】
【０００２】
複数の計算機から構成されるクラスタシステムでは、複数の計算機のいずれかで障害が発生すると、障害が発生した計算機で実行されていたサービスを他のいずれかの計算機が引き継ぐ、いわゆるフェイルオーバが行われる。
【０００３】
従来のクラスタシステムでは、計算機の障害の検出は、例えば非特許文献１に記載されているように、計算機同士を結合し、その接続系路を用いて計算機同士が行う状態監視通信によって行われている。例えば互いにネットワークで接続された２台の計算機によって構成されるクラスタシステムでは、当該２台の計算機同士が相手に向かって定期的に状態通知パケットを送信する。各計算機は、相互に通信相手からの状態通知パケットを監視し、当該パケット受信している間は通信相手が正常に動作していると判断する。
【０００４】
このように従来のクラスタシステムでは、計算機の障害の検出は、その通信相手である別の計算機によって行われる。この計算機障害の検出のために計算機相互で行われる状態通知パケットの通信はハートビートと呼ばれ、状態通知パケットはハートビートパケットと呼ばれる。また、状態通知パケットの通信を用いて相手計算機の障害検出（動作確認）を行う機構はハートビート機構と呼ばれる。
【非特許文献１】金子哲夫、森良哉、「クラスタソフトウェア」、東芝レビュー、Vol.54 No.12(1999)、p.18-21（特に第４．２節）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一方、近年は、仮想マシンが動作可能な複数の物理計算機によってクラスタシステムが構成される仮想計算機システムが出現している。そこで、このような仮想計算機システムにおいても、上述したような従来のクラスタシステムと同様に各物理計算機にハートビート機構を設けて、各ハートビート機構が通信相手となるハートビート機構を有する計算機の障害を検出することが考えられる。
【０００６】
しかしながら、ハートビート機構を利用して計算機障害を検出するクラスタシステムではスプリットブレインシンドロームと呼ばれる状態が発生する可能性がある。以下、スプリットブレインシンドロームについて述べる。
【０００７】
クラスタシステムにおいて、ある計算機上でアプリケーション（アプリケーションプログラム）が実行されている状態で、その計算機の故障、或いは当該アプリケーションの異常が発生したものとする。この場合、クラスタシステムでは、該当する計算機で実行されていたアプリケーションをクラスタシステム内の他の計算機で再起動させて動作させることにより、システムとして当該アプリケーションが提供するサービスの継続が実現される。
【０００８】
このようなクラスタシステムでは、アプリケーションが実行される計算機の障害を検出するためにハートビート機構が用いられる。ハートビート機構は、前述したように、当該ハートビート機構が設けられた計算機から、クラスタシステムを構成する別の計算機へハートビートパケットを定期的に送信する一方、別の計算機に設けられたハートビート機構からのハートビートパケットの送信を監視する。
【０００９】
ハートビート機構は、ハートビートパケットの通信相手となる計算機（内のハートビート機構）からのハートビートパケットが途絶えたことを検出すると、当該計算機の障害（故障）を判定する。換言するならば、ハートビート機構が通信相手となる計算機が正常であると判定するためには、当該計算機がハートビートパケットを送信できる状態になければならない。
【００１０】
しかしながら、計算機が故障していなくても、当該計算機がハートビート機構からハートビートパケットを送信できない状態に陥ることは発生する。このような状態は、例えば、オペレーティングシステム（ＯＳ）やアプリケーションの高負荷により通信が一時的に阻害されるスローダウンの場合、ネットワークやハートビートパケット受信側のような計算機自身には関係ない部分の故障の場合に発生する。クラスタシステムでは特に、スローダウンが問題となる。
【００１１】
計算機がスローダウン状態に陥ると、当該計算機は一時的に他の計算機との通信や、アプリケーションの処理が阻害される。しかし、このような計算機では、スローダウンの要因が解消されれば、また何事も無かったように、アプリケーションの実行が継続される。
【００１２】
前述したようにクラスタシステムでは、計算機の障害検出は、当該クラスタシステムを構成する別の計算機（内のハートビート機構）が外部で行っている。このため、計算機がスローダウンに陥ってハートビートが途絶えると、当該計算機に障害が発生したと別の計算機によって判定される。すると、障害発生が判定された計算機で実行されていたアプリケーションを、クラスタシステム内の他の計算機で再起動する処理が行われる。
【００１３】
ところが、障害発生が判定された計算機、つまりスローダウン状態に陥った計算機が当該スローダウン状態から抜け出すと、本来システム上で１つしか動作できないアプリケーションが、スローダウン状態にあった計算機と引き継ぎ先の計算機の各々で動作してしまう。このような状態をスプリットブレインシンドロームと呼び、このまま動作を継続するとシステム不整合状態やデータの整合性破壊に陥ってしまう。このスプリットブレインシンドロームは、複数の物理計算機上でそれぞれ動作する仮想マシンから構成されるクラスタシステムにおいても、同様に発生し得る。
【００１４】
本発明は上記事情を考慮してなされたものでその目的は、仮想マシンのスローダウン状態を確実に検出して、当該スローダウン状態を考慮した当該仮想マシンの障害検出を行うことにより、スプリットプレインを招くことなくサービスの引き継ぎが行える仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の１つの観点によれば、仮想マシンがそれぞれ配置される複数の物理計算機から構成される仮想計算機システムが提供される。このシステムにおいて、前記複数の物理計算機の各々は、当該物理計算機に配置される前記仮想マシンを管理すると共に、当該仮想マシンが使用するメモリ領域を管理する仮想マシンモニタと、前記仮想マシンモニタ上に配置されるスローダウン検出機構であって、当該仮想マシンモニタによって管理される前記メモリ領域に対する前記仮想マシンによる更新の状況を監視することで、当該仮想マシンのスローダウン状態を検出するスローダウン検出機構と、前記仮想マシンモニタ上に配置される状態通知・監視機構であって、前記スローダウン検出機構によって検出される前記仮想マシンの状態を、当該仮想マシンが配置される前記物理計算機とは別の物理計算機の仮想マシンモニタ上に配置される別の状態通知・監視機構に通知すると共に、当該別の状態通知・監視機構からの状態通知を監視することによって前記別の物理計算機に配置される別の仮想マシンの状態を判定し、当該別の仮想マシンが前記スローダウン状態にある場合に当該別の仮想マシンを障害状態として判定する状態通知・監視機構と、当該物理計算機に配置される前記仮想マシンに、前記別の物理計算機に配置される別の仮想マシンが提供していたサービスを引き継がせるためのクラスタ制御を行うクラスタ制御機構であって、前記状態通知・監視機構によって前記別の仮想マシンが障害状態と判定された場合に前記クラスタ制御を行うクラスタ制御機構とを具備する。
【発明の効果】
【００１６】
本発明によれば、物理計算機上で動作する仮想マシンを管理する仮想マシンモニタ上にスローダウン検出機構を配置し、当該スローダウン検出機構が当該仮想マシンの外部から当該仮想マシンの動作状態を監視する構成とすることにより、当該仮想マシンのスローダウン状態を確実に検出して、当該仮想マシンが提供していたサービスを他の物理計算機上の仮想マシンに引き継がせることができるため、スローダウン誤検出よるスプリットブレインの発生を防止できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図である。図１の仮想計算機システムは、複数の物理サーバ計算機（物理計算機）、例えば２台のサーバ計算機（物理サーバ計算機）１０-1及び１０-2から構成される。サーバ計算機１０-1及び１０-2は、通信路２１によって相互接続されている。この通信路２１は、例えばネットワークによって実現される。
【００１８】
サーバ計算機１０-1及び１０-2は、ＣＰＵ、Ｉ／Ｏ装置及びメモリのような周知のハードウェア資源（図示せず）を備えている。サーバ計算機１０-1及び１０-2が有するハードウェア資源は、仮想化されることにより、仮想マシン（Virtual Machine）が動作する環境（仮想マシン実行環境）を提供する。図１では、サーバ計算機１０-1及び１０-2の仮想マシン実行環境に、つまりサーバ計算機１０-1及び１０-2上に、それぞれ仮想マシン（ＶＭ）１１-1及び１１-2が配置されている。ＶＭ１１-1及び１１-2はクラスタシステムを構成する。
【００１９】
サーバ計算機１０-1及び１０-2上では、ハイパバイザである仮想マシンモニタ（Virtual Machine Monitor：ＶＭＭ）１２-1及び１２-2がそれぞれ動作する。ＶＭＭ１２-1及び１２-2は、仮想マシンマネージャ（Virtual Machine Manager：ＶＭＭ）とも呼ばれ、それぞれ、サーバ計算機１０-1及び１０-2が有する上述のハードウェア資源の利用を管理することで、仮想マシンを管理する。例えばＶＭＭ１２-1及び１２-2は、サーバ計算機１０-1及び１０-2が有するハードウェア資源を仮想化することによりＶＭ（仮想マシン）が動作するＶＭ実行環境を提供する。つまりＶＭＭ１２-1及び１２-2は、仮想化されたハードウェア資源を有するＶＭを構築する。
【００２０】
ＶＭＭ１２-1及び１２-2は、それぞれ共有管理領域１２１-1及び１２１-2を有する。共有管理領域１２１-1及び１２１-2は、それぞれサーバ計算機１０-1及び１０-2が有するメモリ（物理メモリ）を用いて実現される。共有管理領域１２１-1及び１２１-2は、それぞれＶＭ１１-1及び１１-2の使用する仮想化されたメモリ領域に割り当てられる。このため共有管理領域１２１-1及び１２１-2の内容は、ＶＭ１１-1及び１１-2の動作状態に応じて随時更新される。共有管理領域１２１-1及び１２１-2は、それぞれＶＭ１１-1及び１１-2の動作状態とは無関係に、ＶＭＭ１２-1及び１２-2（上の後述するスローダウン検出機構１２２-1及び１２２-2）によってアクセス可能である。
【００２１】
ＶＭＭ１２-1及び１２-2上には、それぞれスローダウン検出機構１２２-1及び１２２-2が配置されている。スローダウン検出機構１２２-i（ｉ＝１，２）は、ＶＭＭ１２-i上の共有管理領域１２１-i（に格納される情報）の更新状態を定期的に監視することにより、当該ＶＭ１１-iのスローダウン状態を検出する。ここでは、ＶＭ１１-iの使用するメモリ領域に割り当てられる共有管理領域１２１-i内でＶＭ１１-iによって定期的に更新されるべき特定領域（定期更新領域）が監視対象領域として監視される。このような定期更新領域に格納される情報として、例えばＶＭ１１-i上で動作しているＯＳ（いわゆるゲストＯＳ）が定期的に更新する時計情報（クロック情報）が挙げられる。
【００２２】
スローダウン検出機構１２２-iは、ＶＭ１１-i（監視対象ＶＭ１１-i）のスローダウン状態の検出を次のように行う。スローダウン検出機構１２２-iは、共有管理領域１２１-1内の定期更新領域（監視対象領域）の状態を定期的に監視することにより、当該定期更新領域の最新の更新頻度を取得する。スローダウン検出機構１２２-iは、更新頻度が予め指定された値（頻度下限値）以下であるか、または更新が行われない期間（更新停止期間）が予め指定された時間（停止閾値）を超えている場合、監視対象ＶＭ１１-iが回復不能なスローダウン状態または停止状態に陥ったと判定する。但し、以下では、回復不能なスローダウン状態と回復不能な停止状態とを区別する必要がある場合を除いて、回復不能な停止状態も回復不能なスローダウン状態として説明する。
【００２３】
ＶＭＭ１２-1及び１２-2上には、それぞれ、上述のスローダウン検出機構１２２-1及び１２２-2に加えて状態通知・監視機構１２３-1及び１２３-2が配置されている。状態通知・監視機構１２３-1及び１２３-2は、それぞれスローダウン検出機構１２２-1及び１２２-2によって監視されるＶＭ１１-1及び１１-2が回復不能なスローダウン状態にない（つまり障害状態にない）と判定されている限り、そのＶＭ１１-1及び１１-2の状態を通知するための状態通知パケットを通信路２１を介して定期的に相互に送信し合う。状態通知・監視機構１２３-1及び１２３-2はまた、通信相手からの状態通知パケットを監視する。つまり状態通知・監視機構１２３-1及び１２３-2は、一種のハートビート機構として機能する。
【００２４】
状態通知・監視機構１２３-i（ｉ＝１，２）は、スローダウン検出機構１２２-iによってＶＭ１１-iが回復不能なスローダウン状態に陥ったと判定された場合、状態通知パケットの送信を停止する。このことは、ＶＭ１１-iが回復不能なスローダウン状態（障害状態）にある旨を、状態通知・監視機構１２３-iが通信相手である状態通知・監視機構１２３-j（ｊ＝１，２、但しｊ≠ｉ）に通知することと等価である。同様の動作は、状態通知・監視機構１２３-jにおいても行われる。
【００２５】
状態通知・監視機構１２３-iは、状態通知・監視機構１２３-jによる状態通知パケット送信の停止（ハートビート切断）の結果、当該状態通知・監視機構１２３-jから状態通知パケットを受信できなくなった場合、ＶＭ１１-jが回復不能なスローダウン状態（障害状態）にあると判定する。同様の判定は、ＶＭ１１-jにおいても行われる。
【００２６】
サーバ計算機１０-1及び１０-2上では、それぞれクラスタ制御機構１３-1及び１３-2も動作する。クラスタ制御機構１３-1及び１３-2は、サーバ計算機１０-1及び１０-2にそれぞれ配置されているＶＭ１１-1及びＶＭ１１-2から構成されるクラスタシステムを制御する。クラスタ制御機構１３-i（ｉ＝１，２）は、ＶＭ１１-j（ｊ＝１，２、但しｊ≠ｉ）が回復不能なスローダウン状態（障害状態）にあると状態通知・監視機構１２３-iによって判定された場合、当該ＶＭ１１-jで実行されていたアプリケーションをＶＭ１１-iで再起動することにより、ＶＭ１１-jが提供していたサービスをＶＭ１１-iに引き継がせるクラスタ制御を行う。
【００２７】
次に、図１の仮想計算機システムにおける動作を、図２乃至図４のフローチャートを参照して説明する。なお、図２はスローダウン検出機構１２２-1及び１２２-2によるスローダウン検出処理の手順を示すフローチャート、図３は状態通知・監視機構１２３-1及び１２３-2によるハートビート通信処理（状態通知処理）の手順を示すフローチャート、図４は状態通知・監視機構１２３-1及び１２３-2によるハートビート監視処理（状態監視処理）の手順を示すフローチャートである。
【００２８】
まず、サーバ計算機１０-2のＶＭＭ１２-2上ではスローダウン検出機構１２２-2及び状態通知・監視機構１２３-2が動作する。スローダウン検出機構１２２-2は、ＶＭ１１-2によってアクセスされる共有管理領域１２１-2を当該ＶＭ１１-2の外側から一定期間監視する（ステップＳ１）。ここでは、ＶＭ１１-2によって定期的に更新されるべき情報が格納される、共有管理領域１２１-2内の特定領域（定期更新領域）が監視対象領域として監視される。
【００２９】
スローダウン検出機構１２２-2は、共有管理領域１２１-2の監視により、当該共有管理領域１２１-2内の定期更新領域の情報が更新されているかを判定する（ステップＳ２）。もし、更新されているならば（ステップＳ２）、スローダウン検出機構１２２-2は、定期更新領域に対する更新頻度（最新の更新頻度）を算出する（ステップＳ３）。ここでは、一定期間における、スローダウン検出機構１２２-2による監視回数（ステップＳ１の実行回数）に対して更新が検出された回数の割合が、更新頻度として算出される。スローダウン検出機構１２２-2は、この算出された更新頻度が、予め定められた頻度下限値（第１の頻度閾値）を超えているかを判定する（ステップＳ４）。
【００３０】
もし、算出された更新頻度が頻度下限値（第１の頻度閾値）を超えているならば（ステップＳ４）、スローダウン検出機構１２２-2はＶＭ１１-1の動作状態が、正常状態であるか、或いは対処不要な程度のスローダウン状態（つまり、回復可能な一時的なスローダウン状態）であると判定する（ステップＳ５）。なお、ＶＭ１１-1の動作状態が、正常状態、或いは一時的なスローダウン状態のいずれであるかは、算出された更新頻度が、頻度下限値（第１の頻度閾値）よりも高い頻度上限値（第２の頻度閾値）を超えているか、或いは（頻度下限値（第１の頻度閾値）は超えているものの）当該頻度上限値（第２の頻度閾値）以下であるかによって判定可能である。
【００３１】
スローダウン検出機構１２２-2は、ＶＭ１１-1の動作状態が、正常状態であるか、或いは一時的なスローダウン状態であると判定された場合（ステップＳ５）、共有管理領域１２１-2の監視を続ける（ステップＳ１）。このようにして本実施形態では、ＶＭ１１-2によって定期的に更新されるべき情報が格納される、共有管理領域１２１-2内の定期更新領域が、例えば、その更新周期と同一周期またはその更新周期より長い周期で定期的に監視される。
【００３２】
一方、共有管理領域１２１-2の監視により、当該共有管理領域１２１-2内の定期更新領域の情報が更新されていないと判定された場合（ステップＳ２）、スローダウン検出機構１２２-2は、当該定期更新領域に対する更新が停止されている最新の期間（更新停止期間）を算出する（ステップＳ６）。この最新の更新停止期間は、前回までの更新停止期間に今回の更新停止期間を加算することにより算出される。算出された更新停止期間は、次回には、前回までの更新停止期間として用いられる。前回までの更新停止期間の初期値は０である。また、定期更新領域の情報が更新されていないと判定された場合、更新停止期間は初期化される。
【００３３】
次にスローダウン検出機構１２２-2は、算出された更新停止期間が予め定められた停止閾値を超えているかを判定する（ステップＳ７）。もし、算出された更新停止期間が停止閾値を超えていないならば、スローダウン検出機構１２２-2は、ＶＭ１１-2が一時的な停止状態にはあるものの、回復不能な停止状態にあるとは判定できないとして、共有管理領域１２１-2の監視を続ける（ステップＳ１）。
【００３４】
一方、サーバ計算機１０-1のＶＭＭ１２-1上では、スローダウン検出機構１２２-1及び状態通知・監視機構１２３-1が動作する。スローダウン検出機構１２２-1は、上述のスローダウン検出機構１２２-2と同様の動作を行って、サーバ計算機１０-1上で動作するＶＭ１１-1の動作状態を当該ＶＭ１１-1の外側から監視する。
【００３５】
さて、スローダウン検出機構１２２-2によって、最新の更新頻度が頻度下限値（第１の頻度閾値）を超えていないと判定されたものとする（ステップＳ４）。この場合、スローダウン検出機構１２２-2は、ＶＭ１１-2が回復不能なスローダウン状態にあるとして、当該ＶＭ１１-2の障害を判定する（ステップＳ８）。つまりスローダウン検出機構１２２-2は、最新の更新頻度が頻度下限値（第１の頻度閾値）未満の場合（ステップＳ４）、ＶＭ１１-2の障害を判定する（ステップＳ８）。
【００３６】
また、最新の更新停止期間が停止閾値を超えていると判定された場合（ステップＳ７）、スローダウン検出機構１２２-2はＶＭ１１-1が回復不能な停止状態に陥っているとして、当該ＶＭ１１-1の障害を判定する（ステップＳ８）。
【００３７】
スローダウン検出機構１２２-2はＶＭ１１-1を障害発生ＶＭであると判定すると（ステップＳ８）、状態通知・監視機構１２３-2に対して、他のサーバ計算機（他系）で動作する状態通知・監視機構（ここでは状態通知・監視機構１２３-1）への状態通知パケット送信の停止（ハートビート停止）を指示する（ステップＳ９）。
【００３８】
さて、サーバ計算機１０-2のＶＭＭ１２-2上で動作する状態通知・監視機構１２３-2は、通常は自身が動作状態にある期間、サーバ計算機１０-1のＶＭＭ１２-1上で動作する状態通知・監視機構１２３-1に対し、ＶＭ１１-1が障害状態にない旨を通知するための状態通知パケットを通信路２１を介して定期的に送信している（ステップＳ１１）。しかし状態通知・監視機構１２３-2は、スローダウン検出機構１２２-2からＶＭ１１-1の障害検出（回復不能なスローダウン状態または停止状態の検出）に伴うハートビート通信停止指示を受けた場合（ステップＳ１２）、ステップＳ１３に分岐する。このステップＳ１３において状態通知・監視機構１２３-2は、サーバ計算機１０-2上の状態通知・監視機構１２３-1に対する状態通知パケットの送信を停止する。即ち状態通知・監視機構１２３-2は、スローダウン検出機構１２２-2によるＶＭ１１-1の障害検出（回復不能なスローダウン状態または停止状態の検出）に応じて、サーバ計算機１０-2に対するハートビート通信を停止（切断）する。
【００３９】
一方、サーバ計算機１０-1のＶＭＭ１２-1上で動作する状態通知・監視機構１２３-1は、サーバ計算機１０-2のＶＭＭ１２-2上で動作する状態通知・監視機構１２３-2から通信路２１を介して定期的に送信されるべき状態通知パケット（ハートビートパケット）を監視している（ステップＳ２１）。そして状態通知・監視機構１２３-1は、この状態通知パケットの監視（ハートビート通信の監視）により、サーバ計算機１０-2上で動作するＶＭ１１-2の死活を判定する。
【００４０】
もし、状態通知・監視機構１２３-2からの状態通知パケットの送信（つまりハートビート通信）が途絶えた場合（ステップＳ２２）、状態通知・監視機構１２３-1はサーバ計算機１０-2上で動作するＶＭ１１-2が障害状態にあると判定する（ステップＳ２３）。この場合、状態通知・監視機構１２３-1は、サーバ計算機１０-2上で動作するＶＭ１１-2が障害状態にある旨をクラスタ制御機構１３-1に通知する（ステップＳ２４）。
【００４１】
するとクラスタ制御機構１３-1は、サーバ計算機１０-2上のＶＭ１１-2で実行されていたアプリケーションをサーバ計算機１０-1上のＶＭ１１-1で再起動させるためのクラスタ制御を行う。これにより、サーバ計算機１０-2上のＶＭ１１-2によって提供されていたサービスを、サーバ計算機１０-1上のＶＭ１１-1によって引き継ぐ（継続する）ことができる。
【００４２】
ここで、スローダウン検出機構１２２-2は、サーバ計算機１０-2のＶＭＭ１２-2上、つまりＶＭ１１-2の外側で動作する。したがって、スローダウン検出機構１２２-2の動作はＶＭ１１-2のスローダウン状態に影響されない。このためスローダウン検出機構１２２-2は、ＶＭ１１-2のスローダウン状態を確実に検出することができる。このことは、サーバ計算機１０-1のＶＭＭ１２-1上で動作するスローダウン検出機構１２２-1においても同様である。つまりスローダウン検出機構１２２-1は、ＶＭ１１-1の外側で動作することにより、当該ＶＭ１１-1のスローダウン状態を確実に検出することができる。
【００４３】
また本実施形態では、ＶＭＭ１２-1及び１２-2上で、それぞれ状態通知・監視機構１２３-1及び１２３-2が動作して相互にハートビート通信を行う。状態通知・監視機構１２３-j（ｊ＝１，２）は、スローダウン検出機構１２２-iによってＶＭ１１-jが回復不能なスローダウン状態または停止状態に陥ったと判定された場合、ハートビート通信を停止する。また状態通知・監視機構１２３-jは、サーバ計算機１０-jの障害時とＶＭＭ１２-jの障害時には動作できなくなるため、必然的にハートビート通信を停止する。このことは、状態通知・監視機構１２３-jが、ＶＭ１１-jの障害（スローダウン状態または停止状態）だけでなく、サーバ計算機１０-j及びＶＭＭ１２-jの障害も検出することを意味する。
【００４４】
状態通知・監視機構１２３-iは、サーバ計算機１０-j側のいずれの箇所の障害も、状態通知・監視機構１２３-jのハートビート通信の停止（ハートビートの切断）を検出することにより、ＶＭ１１-jの障害として検出する。この場合、状態通知・監視機構１２３-iは、ＶＭ１１-jの障害をクラスタ制御機構１３-iに通知する。するとクラスタ制御機構１３-iは、サーバ計算機１０-j上のＶＭ１１-jで実行されていたアプリケーションをサーバ計算機１０-i上のＶＭ１１-iで再起動させるためのクラスタ制御を行う。これにより本実施形態においては、サーバ計算機１０-jまたはＶＭＭ１２-jの障害時も、前述のＶＭ１１-j（ＶＭ１１-2）の障害時と同様に、ＶＭ１１-jからＶＭ１１-iへのフェールオーバによる処理の継続が実現できる。
【００４５】
これに対して従来技術では、本実施形態における状態通知・監視機構１２３-1及び１２３-2に相当するハートビート機構はＶＭ上で動作する。このため従来技術では、ＶＭの一時的なスローダウン状態または停止状態による一時的な通信遅延に対して、スプリットブレイン状態が起きる可能性がある。また、ＶＭのスローダウンまたは停止によりハートビート機構自体もスローダウンまたは停止してしまうので、当該ＶＭの異常も検出できない。本実施形態では、ＶＭのスローダウンの検出及びスローダウンによる通信阻害の影響を受けるクラスタシステムの整合性を持った運用が可能となる。
【００４６】
上記実施形態では、スローダウン検出機構１２２-iがＶＭ１１-iの回復不能なスローダウン状態または停止状態（つまりＶＭ１１-iの障害状態）を検出した場合、状態通知・監視機構１２３-iはハートビート通信を停止することで、その検出されたＶＭ１１-iの状態（障害状態）を通信相手である状態通知・監視機構１２３-jに通知している。しかし、検出されたＶＭ１１-iの状態（障害状態）を示す状態通知パケットを、状態通知・監視機構１２３-iから状態通知・監視機構１２３-jに送信するようにしても良い。
【００４７】
上記実施形態では、２台のサーバ計算機１０-i（ｉ＝１，２）から構成される仮想計算機システムを想定している。しかし、仮想計算機システムが３台以上のサーバ計算機１０-i（ｉ＝１，２，…）から構成されていても構わない。この場合、各サーバ計算機１０-i上の状態通知・監視機構１２３-iは他の全てのサーバ計算機上の状態通知・監視機構との間で相互に状態通知パケットを交換し合えば良い。
【００４８】
［第１の変形例］
次に上記実施形態の第１の変形例について説明する。
【００４９】
図５は、上記実施形態の第１の変形例に係る仮想計算機システムの構成を示すブロック図である。図５において、図１と同様の要素には同一参照番号を付してある。
【００５０】
図５に示す仮想計算機システムが図１に示す仮想計算機システムと相違する点は、サーバ計算機１０-1及び１０-2上に、それぞれ複数のＶＭ１１-1及び１１-2、例えば２台のＶＭ１１-1及び１１-2が配置されていることにある。
【００５１】
図５の仮想計算機システムでは、ＶＭＭ１２-i（ｉ＝１，２）によって管理される共有管理領域１２１-iは、２台（複数）の仮想マシン１１-iがそれぞれ使用する仮想化されたメモリ領域に割り当てられる。
【００５２】
このような構成では、スローダウン検出機構１２２-iは、２台（複数）の仮想マシン１１-iによってそれぞれ定期的に更新されるべき情報が格納される、共有管理領域１２１-i内の特定領域（定期更新領域）の更新状態を個別に監視することにより、対応するＶＭ１１-iのスローダウン状態を検出すれば良い。また状態通知・監視機構１２３-iは、スローダウン検出機構１２２-iによる複数のＶＭ各々のスローダウン状態検出結果に基づき、複数のＶＭ各々の動作状態を通知するための状態通知パケットを、サーバ計算機１０-j（ｊ＝１，２、但しｊ≠ｉ）側の状態通知・監視機構１２３-jに定期的に送信すれば良い。
【００５３】
さて、例えば状態通知・監視機構１２３-2は、サーバ計算機１０-2の障害時とＶＭＭ１２-2の障害時には動作できなくなるため、必然的に状態通知パケットの送信（ハートビート通信）を停止する。これに対し、サーバ計算機１０-2及びＶＭＭ１２-2が障害状態になく、当該ＶＭＭ１２-2上で動作するスローダウン検出機構１２２-2によって２台（複数）の仮想マシン１１-2の各々の動作状態が検出される場合には、当該２台の仮想マシン１１-2が回復不能なスローダウン状態にあるか否かに無関係に、当該２台の仮想マシン１１-2の各々の動作状態が、状態通知・監視機構１２３-2からサーバ計算機１０-1側の状態通知・監視機構１２３-1に、状態通知パケットを用いて定期的に通知される。したがって、状態通知・監視機構１２３-2によるハートビート通信の停止（ハートビート切断）は、サーバ計算機１０-2またはＶＭＭ１２-2の障害を状態通知・監視機構１２３-2が状態通知・監視機構１２３-1に通知することと等価である。
【００５４】
状態通知・監視機構１２３-1においても、上述の状態通知・監視機構１２３-2と同様の動作が行われ、状態通知・監視機構１２３-1によるハートビート通信の停止は、サーバ計算機１０-1またはＶＭＭ１２-1の障害を状態通知・監視機構１２３-1が状態通知・監視機構１２３-2に通知することと等価である。
【００５５】
このため第１の変形例においては、例えば状態通知・監視機構１２３-2によるハートビート通信の停止の結果、状態通知・監視機構１２３-1が当該状態通知・監視機構１２３-2から状態通知パケットを受信できなくなった場合、その要因がサーバ計算機１０-2またはＶＭＭ１２-2の障害にあると判定できる。この場合、クラスタ制御機構１３-1は、サーバ計算機１０-2上の２台（複数）のＶＭ１１-2によって提供されているサービスの全てを、サーバ計算機１０-1上の例えば２台（複数）のＶＭ１１-1によって一度に引き継がせるためのクラスタ制御を行う。
【００５６】
一方、状態通知・監視機構１２３-2からのハートビート通信（状態通知パケットの送信）により２台（複数）のＶＭ１１-2の動作状態が通知された場合には、状態通知・監視機構１２３-1は、当該２台（複数）のＶＭ１１-2の動作状態を個別に判定できる。この場合、２台（複数）のＶＭ１１-2の中に障害状態が通知されたＶＭが含まれているならば、クラスタ制御機構１３-1は、そのＶＭによって提供されているサービスをサーバ計算機１０-1上のＶＭ１１-1に引き継がせるためのクラスタ制御を行えば良い。
【００５７】
クラスタ制御機構１３-2においても、上述のクラスタ制御機構１３-1におけるのと同様のクラスタ制御が行われる。
【００５８】
このように第１の変形例においては、サーバ計算機１０-i（ｉ＝１，２）に複数のＶＭ１１-iが配置されている場合にも、当該複数のＶＭ１１-iのスローダウン状態を個別に検出することにより、上記実施形態と同様の効果を得ることができる。また、サーバ計算機１０-jまたはＶＭＭ１２-jの障害時には、当該サーバ計算機１０-j上の全てのＶＭ１１-2によって提供されているサービスを、サーバ計算機１０-i側に一度に引き継がせることができる。
【００５９】
［第２の変形例］
次に上記実施形態の第２の変形例について説明する。
【００６０】
図６は、上記実施形態の第２の変形例に係る仮想計算機システムの構成を示すブロック図である。図６において、図１と同様の要素には便宜的に同一参照番号を付してある。
【００６１】
図６の仮想計算機システムにおいて、ＶＭＭ１２-1及び１２-2上には、図１の仮想計算機システムにおけるのと同様に、それぞれ、スローダウン検出機構１２２-1及び１２２-2と、状態通知・監視機構１２３-1及び１２３-2が配置されている。但し、第２の変形例においてスローダウン検出機構１２２-1及び１２２-2は、それぞれ、ＶＭ１１-1及び１１-2の回復不能なスローダウン状態（障害状態）を判定（検出）した場合に、上記実施形態と異なって、状態通知・監視機構１２３-1及び１２３-2に対してその旨を通知する。状態通知・監視機構１２３-1及び１２３-2は、それぞれ、スローダウン検出機構１２２-1及び１２２-2からの通知を受けて通信相手（状態通知・監視機構１２３-2及び１２３-1）に対してＶＭ１１-1及び１１-2の障害を通知する。
【００６２】
また、図６の仮想計算機システムでは、ハートビート機構１１１-1及び１１１-2が、従来のハートビート機構と同様に、それぞれＶＭ１１-1及び１１-2上に配置される。ハートビート機構１１１-1及び１１１-2は、通信路２２によって相互接続されている。この通信路２２は、例えば通信路２１を実現するのに用いられるネットワークまたは当該ネットワークとは別のネットワークによって実現される。
【００６３】
ハートビート機構１１１-1及び１１１-2は、それぞれＶＭ１１-1及び１１-2が障害状態にないと判定できる限り、その旨を通知するための状態通知パケットを通信路２２を介して定期的に送信すると共に、通信相手からの状態通知パケットを監視する。この点では、ハートビート機構１１１-1及び１１１-2は従来のハートビート機構と同様である。
【００６４】
ハートビート機構１１１-i（ｉ＝１，２）が従来のハートビート機構と相違するのは、通信相手のハートビート機構１１１-j（ｊ＝１，２、但しｊ≠ｉ）からのハートビート通信が停止された場合に、ＶＭ１１-jの状態を状態通知・監視機構１２３-iに問い合わせる点である。ハートビート機構１１１-iは、状態通知・監視機構１２３-iへの問い合わせに対してＶＭ１１-jの障害が通知された場合に、その旨をクラスタ制御機構１３-iに通知する。
【００６５】
次に、図６の仮想計算機システムにおける動作を、図７及び図８のフローチャートを参照して説明する。なお、図７はスローダウン検出機構１２２-1及び１２２-2によるスローダウン検出処理の手順を示すフローチャート、図８は状態通知・監視機構１２３-1及び１２３-2によるハートビート監視処理の手順を示すフローチャートである。
【００６６】
まず、サーバ計算機１０-1のＶＭＭ１２-1上ではスローダウン検出機構１２２-1が動作し、サーバ計算機１０-2のＶＭＭ１２-2上ではスローダウン検出機構１２２-1が動作する。スローダウン検出機構１２２-1及び１２２-2は、図７のフローチャートの示す手順に従って、それぞれＶＭ１１-1及び１１-2のスローダウン状態（及び停止状態）を監視するための、上記実施形態におけるステップＳ１〜Ｓ７に相当する処理（ステップＳ３１〜Ｓ３７）を定期的に実行する。
【００６７】
今、スローダウン検出機構１２２-2でのスローダウン状態監視の結果、共有管理領域１２１-2内の定期更新領域に対する更新の頻度（更新頻度）が頻度下限値（第１の頻度閾値）未満となるか、または当該定期更新領域に対する更新の停止期間（更新停止期間）が停止閾値を超えたものとする（ステップＳ３４またはＳ３７）。この場合、スローダウン検出機構１２２-2は、ＶＭ１１-2が回復不能なスローダウン状態または停止状態にあるとして、当該ＶＭ１１-2の障害を判定する（ステップＳ３８）。
【００６８】
スローダウン検出機構１２２-2は、ＶＭ１１-2の障害を判定すると（ステップＳ３８）、上記実施形態とは異なって、その旨を状態通知・監視機構１２３-2に通知する（ステップＳ３９）。状態通知・監視機構１２３-2は、スローダウン検出機構１２２-2からＶＭ１１-2の障害が通知されると、サーバ計算機１０-1のＶＭＭ１２-1上で動作する状態通知・監視機構１２３-1に対して当該ＶＭ１１-2の障害を通信路２１を介して通知する。
【００６９】
一方、サーバ計算機１０-1のＶＭ１１-1上ではハートビート機構１１１-1が動作し、サーバ計算機１０-2のＶＭ１１-2上ではハートビート機構１１１-2が動作する。ハートビート機構１１１-1及び１１１-2は、それぞれＶＭ１１-1及び１１-2が障害状態にないと判定できる限り、その旨を通知するための状態通知パケットを通信路２２を介して定期的に送信する。また、ハートビート機構１１１-1及び１１１-2は、通信相手からの状態通知パケットを監視するためのハートビート監視処理を、図８のフローチャートの示す手順に従って実行する。ここでは、ハートビート機構１１１-1によるハートビート監視処理について説明する。
【００７０】
まずハートビート機構１１１-1は、通信相手となるハートビート機構１１１-2から通信路２２を介して定期的に送信されるべき状態通知パケット（ハートビートパケット）を監視する（ステップＳ４１）。ハートビート機構１１１-1は、この状態通知パケットの監視（ハートビート通信の監視）結果に基づき、ハートビート機構１１１-2からの状態通知パケットの送信（つまりハートビート通信）が途絶えたかを判定する（ステップＳ４２）。
【００７１】
ＶＭ１１-2が回復不能なスローダウン状態または回復可能（対処不要）なスローダウン状態（一時的なスローダウン状態）に陥った場合、当該ＶＭ１１-2上で動作するハートビート機構１１１-2も同様のスローダウン状態に陥る。また、ＶＭ１１-2が回復不能な停止状態または回復可能な停止状態（一時的な停止状態）に陥った場合、ハートビート機構１１１-2も同様の停止状態に陥る。この場合、このハートビート機構１１１-2からのハートビート通信は途絶える（切断する）。
【００７２】
ＶＭ１１-1上で動作するハートビート機構１１１-1は、ハートビート機構１１１-2からのハートビート通信の監視の結果（ステップＳ４１）、状態通知パケットが受信できない場合には、当該ハートビート通信が途絶えたと判定する（ステップＳ４２）。
【００７３】
ハートビート機構１１１-2からのハートビート通信が途絶えるのは、前述のように、ＶＭ１１-2が回復不能なスローダウン状態または停止状態に陥った場合、つまりＶＭ１１-2が真に障害状態にある場合だけに限らない。そこでハートビート機構１１１-1は、ハートビート機構１１１-2からのハートビート通信が途絶えたと判定した場合（ステップＳ４２）、ＶＭ１１-2が真に障害状態にあるかを判定するために、状態通知・監視機構１２３-1に対して当該ＶＭ１１-2の状態を問い合わせる（ステップＳ４３）。
【００７４】
第２の変形例のように、スローダウン検出機構１２２-2によってＶＭ１１-2の障害が判定（検出）されている場合、前述のように、当該ＶＭ１１-2の障害が状態通知・監視機構１２３-2によって通信路２１を介して状態通知・監視機構１２３-1に通知されている（ステップＳ３９）。そこで状態通知・監視機構１２３-1は、ハートビート機構１１１-1からの問い合わせに対して、ＶＭ１１-2が障害状態にあることを応答する。
【００７５】
これに対し、ＶＭ１１-2の一時的なスローダウン状態（対処不要なスローダウン状態）または停止状態の場合には、ＶＭ１１-2の障害であると判定されないため、当該ＶＭ１１-2の障害が状態通知・監視機構１２３-2によって状態通知・監視機構１２３-1に通知されることはない。このような場合、状態通知・監視機構１２３-1は、ハートビート機構１１１-1からの問い合わせに対して、ＶＭ１１-2が障害状態にないことを応答する。
【００７６】
ハートビート機構１１１-1は、状態通知・監視機構１２３-1に対する問い合わせに対する当該状態通知・監視機構１２３-1からの応答に基づき、ＶＭＭ１２-2が障害状態にあるかを判定する（ステップＳ４４）。もし、ＶＭＭ１２-2が障害状態にあると判定されたならば、ハートビート機構１１１-1は、その旨をクラスタ制御機構１３-1に通知する（ステップＳ４５）。
【００７７】
するとクラスタ制御機構１３-1は、サーバ計算機１０-2上のＶＭ１１-2で実行されていたアプリケーションをサーバ計算機１０-1上のＶＭ１１-1で再起動させる。これにより、サーバ計算機１０-2上のＶＭ１１-2によって提供されていたサービスを、サーバ計算機１０-1上のＶＭ１１-1によって引き継ぐ（継続する）ことができる。
【００７８】
これに対し、ハートビート通信が切断されていない場合（ステップＳ４２）、或いはハートビート通信が切断されていても状態通知・監視機構１２３-2から状態通知・監視機構１２３-1に対してＶＭ１１-2の障害状態の通知がなされていない場合（ステップＳ４３，Ｓ４４）には、ハートビート機構１１１-1はハートビート通信の監視（ステップＳ１）を継続する。前述のようにスローダウン検出機構１２２-2では、ＶＭ１１-2の一時的なスローダウン状態または停止状態は、ＶＭ１１-2が正常な状態にある場合と同様に扱われることから、状態通知・監視機構１２３-2から状態通知・監視機構１２３-1に対するＶＭ１１-2の障害状態の通知の対象とはならない。したがって第２の変形例においては、ＶＭ１１-2の一時的なスローダウン状態または停止状態のために、ハートビート機構１１１-2からのハートビート通信が一時的に切断されたとしても、ハートビート機構１１１-1が誤ってＶＭ１１-2の障害を判定することはない。これにより、ＶＭ１１-2の一時的なスローダウン状態または停止状態に起因してフェイルオーバ処理が行われてスプリットブレイン状態が起きるのを防止できる。
【００７９】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態に係る仮想計算機システムの構成を示すブロック図。
【図２】同実施形態におけるスローダウン検出処理の手順を示すフローチャート。
【図３】同実施形態におけるハートビート通信処理の手順を示すフローチャート。
【図４】同実施形態におけるハートビート監視処理の手順を示すフローチャート。
【図５】同実施形態の第１の変形例に係る仮想計算機システムの構成を示すブロック図。
【図６】同実施形態の第２の変形例に係る仮想計算機システムの構成を示すブロック図。
【図７】同第２の変形例におけるスローダウン検出処理の手順を示すフローチャート。
【図８】同第２の変形例におけるハートビート監視処理の手順を示すフローチャート。
【符号の説明】
【００８１】
１０-1，１０-2…サーバ計算機（物理計算機）、１１-1，１１-2…仮想マシン（ＶＭ）、１２-1，１２-2…仮想マシンモニタ（ＶＭＭ）、１３-1，１３-2…クラスタ制御機構、１１１-1，１１１-2…ハートビート機構、１２１-1，１２１-2…共有管理領域（メモリ領域）、１２２-1，１２２-2…スローダウン検出機構、１２３-1，１２３-2…状態通知・監視機構。
【図１】
2009080704.tif 000003
【図２】
2009080704.tif 000004
【図３】
2009080704.tif 000005
【図４】
2009080704.tif 000006
【図５】
2009080704.tif 000007
【図６】
2009080704.tif 000008
【図７】
2009080704.tif 000009
【図８】
2009080704.tif 000010