(57)【要約】【課題】クラスタシステムを構成する計算機が自身のスローダウンに起因するスプリットブレインの発生を自身で判定できるようにする。【解決手段】ノード１０-1のハートビート監視機構２２０-1は、当該ノード１０-1のクラスタ制御機構２１０-1によるクラスタシステム内の他のノード１０-2へのハートビート送信を監視して、当該ハートビート送信の時間間隔を、Ｔｉｃｋカウンタのような計時手段を用いて計測する。ハートビート監視機構２２０-1は、計測されたハートビート送信の時間間隔が、クラスタ制御機構２１０-1によるクラスタ制御で用いられる閾値としてのハートビートタイムアウト時間を超えている場合に、ノード１０-1のスローダウンに起因するスプリットブレイン発生状態にあると判定して、当該ノード１０-1を強制的に停止させる。【選択図】      図２
2010026714.tif 000002
【特許請求の範囲】
【請求項１】
クラスタシステムを構成する計算機において、
前記計算機の状態を、前記クラスタシステムを構成する他の計算機に通知するためのハートビート送信を一定時間間隔で行うと共に、前記他の計算機からのハートビート受信を監視し、前記他の計算機からのハートビート受信が予め定められたハートビートタイムアウト時間を超えて途絶した場合、前記他の計算機の障害を判定して前記他の計算機の計算機で実行されていたサービスを継続するためのフェイルオーバを行うクラスタ制御機構と、
時間または日時を計時するための計時手段と、
前記クラスタ制御機構による前記他の計算機への前記ハートビート送信を監視して、当該ハートビート送信の時間間隔を前記計時手段を用いて計測し、計測された前記ハートビート送信の時間間隔が前記ハートビートタイムアウト時間を超えている場合に前記計算機のスローダウンに起因するスプリットブレイン発生状態にあると判定して、前記計算機を強制的に停止させるハートビート監視機構と
を具備することを特徴とするクラスタシステムを構成する計算機。
【請求項２】
前記計時手段は、オペレーティングシステムによって管理される時間カウンタであって、前記オペレーティングシステムの起動時からの経過時間をカウントする時間カウンタを含み、
前記ハートビート監視機構は、前記クラスタ制御機構による前記他の計算機への前記ハートビート送信の時間間隔を前記時間カウンタを用いて計測し、計測された前記ハートビート送信の時間間隔が前記ハートビートタイムアウト時間を超えている場合に、前記クラスタ制御機構のスローダウンに起因するスプリットブレイン発生状態にあると判定する
ことを特徴とする請求項１記載のクラスタシステムを構成する計算機。
【請求項３】
前記計時手段は、前記オペレーティングシステムから独立して日時を計時するリアルタイムクロックを更に含み、
前記ハートビート監視機構は、前記クラスタ制御機構による前記他の計算機への前記ハートビート送信の時間間隔を前記リアルタイムクロックを用いて計測し、前記時間カウンタを用いて計測された前記ハートビート送信の時間間隔である第１の時間間隔が前記ハートビートタイムアウト時間を超えていなくても、前記リアルタイムクロックを用いて計測された前記ハートビート送信の時間間隔である第２の時間間隔が前記ハートビートタイムアウト時間を超えている場合、前記オペレーティングシステムのスローダウンに起因するスプリットブレイン発生状態にあると判定する
ことを特徴とする請求項２記載のクラスタシステムを構成する計算機。
【請求項４】
前記計時手段は、前記オペレーティングシステムによって管理され、日時を計時するシステムクロックであって、前記オペレーティングシステムによる日時の変更操作が可能なシステムクロックを更に含み、
前記リアルタイムクロックは、前記オペレーティングシステムによる前記システムクロックの日時操作時に、当該システムクロックに同期するように前記オペレーティングシステムによって日時操作され、
前記ハートビート監視機構は、前記クラスタ制御機構による前記他の計算機への前記ハートビート送信の時間間隔を前記システムクロックを用いて計測し、前記第１の時間間隔が前記ハートビートタイムアウト時間を超えておらず、且つ前記第２の時間間隔が前記ハートビートタイムアウト時間を超えている場合でも、前記システムクロックを用いて計測された前記ハートビート送信の時間間隔である第３の時間間隔が前記第２の時間間隔に一致するならば、前記計算機は正常であると判定することを特徴とする請求項３記載のクラスタシステムを構成する計算機。
【請求項５】
前記ハートビート監視機構は、前記計測された前記ハートビート送信の時間間隔が前記ハートビートタイムアウト時間を超えていないものの、当該時間間隔が、前記一定時間間隔よりも長く前記ハートビートタイムアウト時間よりも短い時間に予め設定されたスローダウン検出時間を超えている場合、前記スプリットブレイン発生状態には至っていないスローダウンが前記計算機で発生していることを、前記計算機と接続されているクライアント計算機に通知する
ことを特徴とする請求項１記載のクラスタシステムを構成する計算機。
【請求項６】
前記ハートビート監視機構は、前記クラスタ制御機構によって前記他の計算機に送信される前記ハートビートを検出した場合には、その時点における前記計時手段の示す時間または日時の情報を当該ハートビートに付加し、前記他の計算機から送信された前記時間または日時の情報が付加された前記ハートビートが前記計算機で受信された場合には、当該受信されたハートビートに付加された時間または日時の情報と前回受信された前記他の計算機からの前記ハートビートに付加された時間または日時の情報とに基づき、前記他の計算機から送信される前記ハートビートの受信時間間隔を算出し、当該算出された受信時間間隔が前記一定時間間隔よりも長く前記ハートビートタイムアウト時間よりも短い時間に予め設定されたスローダウン検出時間を超えている場合、前記他の計算機でスローダウンが発生していることを、前記計算機と接続されているクライアント計算機に通知することを特徴とする請求項１記載のクラスタシステムを構成する計算機。
【請求項７】
クラスタシステムを構成する計算機であって、当該計算機の状態を、前記クラスタシステムを構成する他の計算機に通知するためのハートビート送信を一定時間間隔で行うと共に、前記他の計算機からのハートビート受信を監視し、前記他の計算機からのハートビート受信が予め定められたハートビートタイムアウト時間を超えて途絶した場合、前記他の計算機の障害を判定して前記他の計算機の計算機で実行されていたサービスを継続するためのフェイルオーバを行うクラスタ制御機構と、時間または日時を計時するための計時手段と、ハートビート監視機構とを有する計算機に、
前記ハートビート監視機構が、前記クラスタ制御機構による前記他の計算機への前記ハートビート送信を監視することにより、当該ハートビート送信の時間間隔を前記計時手段を用いて計測するステップと、
前記ハートビート監視機構が、前記計測された前記ハートビート送信の時間間隔を前記ハートビートタイムアウト時間と比較するステップと、
前記ハートビート監視機構が、前記計測された前記ハートビート送信の時間間隔が前記ハートビートタイムアウト時間を超えている場合、前記計算機のスローダウンに起因するスプリットブレイン発生状態にあると判定するステップと、
前記スプリットブレイン発生状態にあると判定された場合、前記ハートビート監視機構が前記計算機を強制的に停止させるステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムを構成する計算機に係り、特に、当該計算機のスローダウンに起因するスプリットブレインの発生を当該計算機自身が判定するのに好適なクラスタシステムを構成する計算機及びプログラムに関する。
【背景技術】
【０００２】
従来から、複数の計算機が相互に接続されたクラスタシステムが知られている。この種のクラスタシステムでは、複数の計算機（ノード）のいずれかで障害が発生すると、障害が発生したノード（クラスタノード）で実行されていたクライアントに対するサービスを他のいずれかのノードが引き継ぐ、いわゆるフェイルオーバが行われる。このため、クラスタシステムでは、当該システム内のノードの障害を検出することが重要となる。
【０００３】
従来のクラスタシステムでは、当該システム内のノードの障害の検出は、例えば非特許文献１に記載されているように、ノード相互が接続系路を用いて状態を監視することによって行われる。この状態監視のために、クラスタシステム内の各ノードは、自身の状態を通知するための情報（状態通知パケット）を接続経路を介して他のノードに定期的に送信する。この定期的な情報送信はハートビート（またはハートビート送信）と呼ばれる。各ノードは、他のノードからのハートビートを監視する。
【０００４】
ここで、あるノード（以下、第１のノードと称する）が他のノード（以下、第２のノードと称する）からのハートビートが途絶したことを検出したものとする。この場合、第１のノードは第２のノードで障害が発生したと判断する。そして第１のノードは、第２のノードで実行されていたサービスを引き継ぐフェイルオーバを行う。
【非特許文献１】金子哲夫、外１名、「クラスタソフトウェア」、東芝レビュー、１９９９年、Vol.54、No.12、p.18-21
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来技術では、第２のノードのハートビートの途絶が、スローダウン等の一過性の障害に起因する場合でも、第１のノードは当該第２のノードの状態に無関係に、当該第２のノードで障害が発生したと判断する。このような場合、第２のノードでサービスが実行されているにも拘わらず、フェイルオーバにより第１のノードで当該サービスが開始されることになり、いわゆるスプリットブレインが発生する。
【０００６】
そこで、クラスタシステム内の全てのノードからアクセス可能な共有リソースを排他的に利用することで、その所有権により、スプリットブレインを含めたサービスの稼働状態を判定することが考えられる。しかし、そのためには、共有ディスク装置のような共有リソースが必要となる。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、自身のスローダウンに起因するスプリットブレインの発生を自身で判定できる、クラスタシステムを構成する計算機及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、クラスタシステムを構成する計算機が提供される。この計算機は、前記計算機の状態を、前記クラスタシステムを構成する他の計算機に通知するためのハートビート送信を一定時間間隔で行うと共に、前記他の計算機からのハートビート受信を監視し、前記他の計算機からのハートビート受信が予め定められたハートビートタイムアウト時間を超えて途絶した場合、前記他の計算機の障害を判定して前記他の計算機の計算機で実行されていたサービスを継続するためのフェイルオーバを行うクラスタ制御機構と、時間または日時を計時するための計時手段と、前記クラスタ制御機構による前記他の計算機への前記ハートビート送信を監視して、当該ハートビート送信の時間間隔を前記計時手段を用いて計測し、計測された前記ハートビート送信の時間間隔が前記ハートビートタイムアウト時間を超えている場合に前記計算機のスローダウンに起因するスプリットブレイン発生状態にあると判定して、前記計算機を強制的に停止させるハートビート監視機構とを具備する。
【発明の効果】
【０００９】
本発明によれば、クラスタシステムを構成する計算機のハートビート監視機構が、当該計算機（自ノード）が有するクラスタ制御機構によるクラスタシステム内の他の計算機（他ノード）へのハートビート送信の時間間隔を計時手段を用いて計測し、計測された送信時間間隔がハートビートタイムアウト時間を超えている場合に当該計算機自身のスローダウンに起因するスプリットブレイン発生状態にあると判定して、当該計算機を強制的に停止させるようにしたので、スプリットブレイン発生状態を速やかに解消することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るクラスタシステムのハードウェア構成を示すブロック図である。このクラスタシステムは、例えば２台の計算機（以下、ノードと称する）１０-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にダウンロードされたものでも構わない。
【００１４】
図２は、図１のハードウェア構成を有するクラスタシステムの主として機能構成を示すブロック図である。  
ノード１０-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によるハートビート受信状況に基づき他のノードの障害を検出してフェイルオードを行う。ここでは、一定期間（ハートビートタイムアウト時間Ｔｏｕｔ）を超えてハートビートが受信されない、いわゆるハートビートタイムアウトの場合、上記他のノードの障害が検出（判定）される。
【００１８】
ＯＳ１３１-1及び１３１-2はそれぞれ、ハートビート監視機構２２０-1及び２２０-2を含む。  
ハートビート監視機構２２０-i（ｉ＝１，２）は、ＨＢ送信部２１２-iと通信機構１４-iとの間に位置し、ＨＢ送信部２１２-iによるハートビート送信（ハートビート監視機構２２０-iを含むノード１０-iによるハートビート送信）を監視する。そしてハートビート監視機構２２０-iは、ＨＢ送信部２１２-iによるハートビート送信毎に、先行するハートビート送信との時間間隔（先行するハートビート送信からの経過時間）を計測（算出）する。もし、先行するハートビート送信時から今回のハートビート送信時までの期間にハートビート監視機構２２０-iまたはＯＳ１３１-iが一時的に停止すると、計測された時間間隔がハートビートタイムアウト時間Ｔｏｕｔを超える可能性がある。
【００１９】
ハートビート監視機構２２０-iは、計測された時間間隔がハートビートタイムアウト時間Ｔｏｕｔを超えるような場合に、ノード１０-iのスローダウンに起因するスプリットブレインの発生を判定する。この場合、ハートビート監視機構２２０-iは、クラスタシステムとしての整合性を保持するために、ノード１０-i（ハートビート監視機構２２０-iを含むノード１０-i）を強制停止させる。
【００２０】
ここで、ハートビート監視機構２２０-iによるスプリットブレイン発生の判定の原理について説明する。ここでは、ハートビート監視機構２２０-iがハートビート監視機構２２０-1（ｉ＝１）であるものとする。ハートビート監視機構２２０-1は、ＨＢ送信部２１２-1からのハートビート送信毎に時刻情報を取得し、当該時刻情報を少なくとも次のハートビート送信が行われるまで保持する。またハートビート監視機構２２０-1は、前回のハートビート送信から今回のハートビート送信までの経過時間（つまりハートビート送信の時間間隔）を、自身が保持している時刻情報に基づいて計測（算出）し、その経過時間が、予め定められた閾値を超えていないかをチェックする。ここで、閾値には、クラスタ制御機構２１０-1及び１０-2で用いられるハートビートタイムアウト時間Ｔｏｕｔが用いられる。
【００２１】
ＨＢ送信部２１２-1によるハートビート送信は、ノード１０-1が正常に動作している限り、常にハートビートタイムアウト時間Ｔｏｕｔより短い一定時間間隔Ｔｈｂで行われる。このため、ハートビート監視機構２２０-1で計測（算出）されるハートビート送信の時間間隔が一定時間間隔Ｔｈｂを超える場合には、何らかの原因によりノード１０-1で（ＯＳ１３１-1またはクラスタ制御機構２１０-1の）スローダウンが発生していることが予測される。特に、ハートビートの送信時間間隔がハートビートタイムアウト時間（閾値）Ｔｏｕｔを超えた場合、ノード１０-1（内のＨＢ送信部２１２-1）によるハートビート送信の相手となるノード１０-2のクラスタ制御機構２１０-2も、当該ノード１０-1（内のＨＢ送信部２１２-1）からのハートビート送信がハートビートタイムアウト時間Ｔｏｕｔを超えて途絶したことを検出する。この場合、クラスタ制御機構２１０-2は、ノード１０-1の障害(ハートビートタイムアウト)を判定しフェイルオーバを開始する。
【００２２】
そこでハートビート監視機構２２０-1は、ＨＢ送信部２１２-1からのハートビート送信の時間間隔がハートビートタイムアウト時間Ｔｏｕｔを超えていた場合、既にハートビート送信の相手であるノード１０-2はフェイルオーバを開始しており、スプリットブレイン発生状態になると判定する。つまりノード１０-1内のハートビート監視機構２２０-1は、当該ノード１０-1内のＨＢ送信部２１２-1からのハートビート送信の時間間隔を監視することにより、当該ノード１０-1自身のスローダウンに起因するスプリットブレインの発生を相手ノード１０-2から独立に判定（検出）することができる。この場合、ハートビート監視機構２２０-1は、上述のように、ノード１０-1を強制停止させる。
【００２３】
図３は、ノード１０-1の主としてハートビート監視機構２２０-1の構成を示すブロック図である。ノード１０-1は、リアルタイムクロック２３０を有する。リアルタイムクロック２３０は、日時を計時するハードウェア構成の計時手段である。リアルタイムクロック２３０の示す日時（時刻）は、後述するシステムクロック２３２の日時が例えばユーザからの指示に基づいてＯＳ１３１-1によって操作（変更）される場合に、当該システムクロック２３２と同期するようにＯＳ１３１-1によって操作（変更）される。
【００２４】
ノード１０-1のＯＳ１３１-1は、ハートビート監視機構２２０-1に加えて、時間カウンタ（以下、Ｔｉｃｋカウンタと称する）２３１とシステムクロック（システム時計）２３２とを有する。Ｔｉｃｋカウンタ２３１は、ＯＳ１３１-1の起動時からの経過時間をカウントするソフトウェアカウンタ（計時手段）である。Ｔｉｃｋカウンタ２３１は、ＯＳ１３１-1によって一定の時間間隔で更新される。システムクロック２３２は、ＯＳ１３１-1が管理する日時（時刻）を計時するソフトウェアタイマ（計時手段）である。
【００２５】
ハートビート監視機構２２０-1は、時刻情報記憶部２２１とハートビート検出部２２２と障害判定処理部２２３と強制停止処理部２２４とを含む。  
時刻情報記憶部２２１は、図１に示される主メモリ１２-1の記憶領域の一部を用いて実現される。時刻情報記憶部２２１は、前回ＨＢ送信部２１２-1からハートビートが送信された際の時刻（時間）を示す時刻（時間）情報を（少なくとも、次にＨＢ送信部２１２-1からハートビートが送信されるまで）格納するのに用いられる。ここでは、時刻情報記憶部２２１に格納される時刻情報として、Ｔｉｃｋカウンタ２３１のカウント値Ｔ（ＯＳ１３１-1の起動時からの経過時間）、システムクロック２３２の示す値（日時）Ｓ、及びリアルタイムクロック２３０の示す値（日時）Ｒが用いられる。時刻情報記憶部２２１は、ＯＳ１３１-1の起動時に初期化される。
【００２６】
ハートビート検出部２２２は、ＨＢ送信部２１２-1からのハートビート送信を検出する。障害判定処理部２２３は、ハートビート検出部２２２によってＨＢ送信部２１２-1からの新たなハートビート送信が検出されると、ＯＳ１３１-1から、その時点における時刻（時間）情報として、Ｔｉｃｋカウンタ２３１のカウント値（Ｔｉｃｋカウント）Ｔｃ、及びシステムクロック２３２の値Ｓｃを取得する。また障害判定処理部２２３は、リアルタイムクロック２３０の値Ｒｃを取得する。このとき、時刻情報記憶部２２１には、ＨＢ送信部２１２-1からの前回のハートビート送信時における時刻（時間）情報として、その時点に取得されたＴｉｃｋカウンタ２３１のカウント値Ｔｐ、システムクロック２３２の値Ｓｐ及びリアルタイムクロック２３０の値Ｒｐが格納されているものとする。障害判定処理部２２３は、新たに取得した時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）と前回のハートビート送信時に取得された時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）とから、ノード１０-1のスローダウンに起因するスプリットブレインの発生状態を判定する。この判定の仕組みについては後述する。
【００２７】
強制停止処理部２２４は、障害判定処理部２２３によってスプリットブレイン発生状態と判定された場合、ノード１０-1を強制的に停止させるための強制停止処理を行う。この強制停止処理では、例えば、ＯＳ１３１-1を停止させる動作（ＯＳ停止動作）２２３ａまたはノード１０-1の電源を遮断する動作（電源ＯＦＦ動作）２２３ｂが行われる。  
なお、ハートビート監視機構２２０-2も、図３に示すハートビート監視機構２２０-1と同様の構成を有しているものとする。また、ノード１０-2にもリアルタイムクロック２３０が設けられ、ノード１０-2のＯＳ１３１-2にもＴｉｃｋカウンタ２３１及びシステムクロック２３２が設けられているものとする。
【００２８】
次に、ハートビート監視機構２２０-1の動作の詳細について、図４のフローチャートを参照して説明する。
【００２９】
ＯＳ１３１-1が起動されると、ハートビート監視機構２２０-1も起動される。するとハートビート監視機構２２０-1のハートビート検出部２２２は、フラグＦ（図示せず）をＯＦＦ（リセット）する（ステップＳ１）。このフラグＦは、時刻情報記憶部２２１に有効な時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）が格納されているかを示す。
【００３０】
次にハートビート検出部２２２は、ＨＢ送信部２１２-1からのハートビート送信を監視する（ステップＳ２）。この監視により、ハートビート検出部２２２がＨＢ送信部２１２-1からのハートビート送信を検出したものとする（ステップＳ３）。するとハートビート監視機構２２０-1の障害判定処理部２２３は、その時点における時刻（時間）情報として、Ｔｉｃｋカウンタ２３１のカウント値Ｔｃ、システムクロック２３２の値Ｓｃ及びリアルタイムクロック２３０の値Ｒｃを取得する（ステップＳ４）。
【００３１】
次に障害判定処理部２２３は、フラグＦがＯＮ（セット）されているかを判定する（ステップＳ５）。もし、フラグＦがＯＦＦ（リセット）されているならば（ステップＳ５がＮＯ）、障害判定処理部２２３は、今回ハートビート検出部２２２によって検出されたハートビート送信は、ＯＳ１３１-1が起動された後の最初のハートビート送信であり、時刻情報記憶部２２１には有効な時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）は格納されていないと判定する。
【００３２】
この場合、障害判定処理部２２３は、ステップＳ４で取得された時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を、時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）として時刻情報記憶部２２１に格納する（ステップＳ６）。これにより後述するように、今回のハートビート送信の検出時に取得された時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）が、次にハートビート送信が検出された際に、（前回のハートビート送信の検出時の）時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）として用いられる。
【００３３】
ハートビート検出部２２２は、障害判定処理部２２３によって上記ステップＳ６が実行されると、フラグＦをＯＮ（セット）して（ステップＳ７）、再びハートビート送信を監視する（ステップＳ２）。その後、ハートビート検出部２２２が、ＨＢ送信部２１２-1からの新たなハートビート送信を検出したものとする（ステップＳ３）。
【００３４】
この場合、障害判定処理部２２３は、新たなハートビート送信の検出時点における時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を取得し（ステップＳ４）、しかる後にフラグＦがＯＮされているかを判定する（ステップＳ５）。このとき、時刻情報記憶部２２１には今回のハートビート送信に先行するハートビート送信（前回のハートビート送信）の検出時に取得された時刻情報が有効な時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）として格納されており、フラグＦはＯＮされている。
【００３５】
障害判定処理部２２３は、フラグＦがＯＮされている場合（ステップＳ５がＹＥＳ）、前回のハートビート送信の検出時に取得された有効な時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）が時刻情報記憶部２２１に格納されていると判定する。すると障害判定処理部２２３は、今回ステップＳ４で取得された最新の時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）中のＴｃと、時刻情報記憶部２２１に格納されている、前回のハートビート送信の検出時に取得された時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）中のＴｐとに基づき、前回のハートビート送信時から今回のハートビート送信時までの経過期間（最新のハートビート送信時間間隔）ΔＴを算出する（ステップＳ８）。即ち障害判定処理部２２３は、今回のハートビート送信時のＴｉｃｋカウンタ２３１の値Ｔｃと前回のハートビート送信時のＴｉｃｋカウンタ２３１の値Ｔｐとから、最新のハートビート送信時間間隔ΔＴを次式
ΔＴ＝Ｔｃ−Ｔｐ          （１）
に従って算出する。このハートビート送信時間間隔（第１の時間間隔）ΔＴは、Ｔｉｃｋカウンタ２３１を用いて計測されたのと等価である。
【００３６】
次に障害判定処理部２２３は、Ｔｉｃｋカウンタ２３１の値を用いて算出された（つまりＴｉｃｋカウンタ２３１を用いて計測された）ハートビート送信時間間隔ΔＴが、ハートビートタイムアウト時間Ｔｏｕｔを超えているか（ΔＴ＞Ｔｏｕｔ）を判定する（ステップＳ９）。
【００３７】
ハートビート送信時間間隔ΔＴがハートビートタイムアウト時間Ｔｏｕｔを超えている場合、ＯＳ１３１-1（の時間空間）上では、前回のハートビート送信時からハートビートタイムアウト時間Ｔｏｕｔを超える時間が経過しており、少なくてもその期間、クラスタ制御機構２１０-1内のＨＢ送信部２１２-1からのハートビート送信がなかったことになる。そこで障害判定処理部２２３は、ハートビート送信時間間隔ΔＴがハートビートタイムアウト時間Ｔｏｕｔを超えている場合（ステップＳ９がＹＥＳ）、クラスタシステムがノード１０-1のクラスタ制御機構（クラスタカーネル）２１０-1の障害（スローダウン）に起因する（ハートビート送信遅延による）スプリットブレイン発生状態（以下、タイプ２の障害と称する）にあると判定する（ステップＳ１７）。
【００３８】
このように本実施形態においては、ノード１０-1でのハートビート送信遅延によるスプリットブレイン発生状態を、当該ノード１０-1（のハートビート監視機構２２０-1）により判定できるだけでなく、その原因が当該ノード１０-1のクラスタ制御機構（クラスタカーネル）２１０-1の障害（スローダウン）にあることも判定できる。
【００３９】
強制停止処理部２２４は、障害判定処理部２２３によってタイプ２の障害が判定された場合（ステップＳ１７）、クラスタ制御機構２１０-1を含むノード１０-1（自ノード）を強制的に停止させるための強制停止処理（自ノード強制停止処理）を行う（ステップＳ１９）。ここでは、クラスタシステムとしての整合性を保持するために、前述のようなＯＳ停止動作２２３ａまたは電源ＯＦＦ動作２２３ｂが行われる。これによりスプリットブレイン発生状態を速やかに解消することができる。
【００４０】
ところで、Ｔｉｃｋカウンタ２３１はＯＳ１３１-1が保持し、且つ当該ＯＳ１３１-1によって更新される。このため、ＯＳ１３１-1の障害（スローダウン）が発生していると、その間はＴｉｃｋカウンタ２３１は正確に更新されない。つまり、Ｔｉｃｋカウンタ２３１を用いて計測されたハートビート送信時間間隔ΔＴが、ハートビートタイムアウト時間Ｔｏｕｔを超えていない場合、ＯＳ１３１-1のスローダウンの影響により、実際にはハートビートタイムアウト時間Ｔｏｕｔを超える時間が経過している可能性がある。
【００４１】
このため、ハートビート送信時間間隔ΔＴがハートビートタイムアウト時間Ｔｏｕｔを超えていない場合には、そのハートビート送信時間間隔ΔＴ自体が正しい値かを判定する必要がある。つまり、ＯＳ１３１-1のスローダウンが発生しており、ハートビート送信時間間隔ΔＴが、そのスローダウンの影響を受けているかを判定する必要がある。
【００４２】
そこでハートビート送信時間間隔ΔＴがハートビートタイムアウト時間Ｔｏｕｔを超えていない場合（ステップＳ９がＮＯ）、障害判定処理部２２３は、今回ステップＳ４で取得された最新の時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）中のＲｃと前回のハートビート送信の検出時に取得された時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）中のＲｐとに基づき、前回のハートビート送信時から今回のハートビート送信時までの経過期間（最新のハートビート送信時間間隔）ΔＲを算出する（ステップＳ１０）。即ち障害判定処理部２２３は、今回のハートビート送信時のリアルタイムクロック２３０の値Ｒｃと前回のハートビート送信時のリアルタイムクロック２３０の値Ｒｐとから、最新のハートビート送信時間間隔ΔＲを次式
ΔＲ＝Ｒｃ−Ｒｐ          （２）
に従って算出する。このハートビート送信時間間隔（第２の時間間隔）ΔＲは、リアルタイムクロック２３０を用いて計測されたのと等価である。
【００４３】
次に障害判定処理部２２３は、リアルタイムクロック２３０の値を用いて算出された（つまりリアルタイムクロック２３０を用いて計測された）ハートビート送信時間間隔ΔＲが、ハートビートタイムアウト時間Ｔｏｕｔを超えているか（ΔＲ＞Ｔｏｕｔ）を判定する（ステップＳ１１）。ここでリアルタイムクロック２３０の値は、ＯＳ１３１-1の動作とは独立にハードウェアレベルで一定時間間隔で更新されている。このため、Ｔｉｃｋカウンタ２３１を用いて計測されたハートビート送信時間間隔ΔＴがハートビートタイムアウト時間Ｔｏｕｔを超えておらず、且つリアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲがハートビートタイムアウト時間Ｔｏｕｔを超えているならば、基本的には、クラスタシステムがノード１０-1のＯＳ１３１-1の障害（スローダウン）に起因する（ハートビート送信遅延による）スプリットブレイン発生状態にあると判定することができる。
【００４４】
但し、リアルタイムクロック２３０は、ＯＳ１３１-1が管理するシステムクロック２３２との同期をとるために、例えばユーザからの指示に応じてＯＳ１３１-1によって操作されることがある。このため、リアルタイムクロック２３０単独では正確なハートビート送信時間間隔を測定できないことがある。よって、リアルタイムクロック２３０がシステムクロック２３２を用いて日時操作がなされたために、当該リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲがハートビートタイムアウト時間Ｔｏｕｔを超えているかを判定する必要がある。
【００４５】
リアルタイムクロック２３０とシステムクロック２３２とは、ＯＳ１３１-1の起動時に同期がとられる。しかし、ＯＳ１３１-1の障害（スローダウン）が発生すると、当該ＯＳ１３１-1によって管理されているシステムクロック２３２は正確に更新されない状態となる。この結果、リアルタイムクロック２３０とシステムクロック２３２とは値が一致しない状態（同期が外れた状態）となる。
【００４６】
そこで、障害判定処理部２２３は、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲが、ハートビートタイムアウト時間Ｔｏｕｔを超えている場合（ステップＳ１１がＹＥＳ）、今回ステップＳ４で取得された最新の時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）中のＳｃと前回のハートビート送信の検出時に取得された時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）中のＳｐとに基づき、前回のハートビート送信時から今回のハートビート送信時までの経過期間（最新のハートビート送信時間間隔）ΔＳを算出する（ステップＳ１２）。即ち障害判定処理部２２３は、今回のハートビート送信時のシステムクロック２３２の値Ｓｃと前回のハートビート送信時のシステムクロック２３２の値Ｓｐとから、最新のハートビート送信時間間隔ΔＳを次式
ΔＳ＝Ｓｃ−Ｓｐ          （３）
に従って算出する。このハートビート送信時間間隔（第３の時間間隔）ΔＳは、システムクロック２３２を用いて計測されたのと等価である。
【００４７】
次に障害判定処理部２２３は、システムクロック２３２を用いて計測されたハートビート送信時間間隔ΔＳが、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲに一致するか（ΔＳ＝ΔＲ）を判定する（ステップＳ１３）。このステップＳ１３の判定は、システムクロック２３２の値とリアルタイムクロック２３０の値とが一致するかを判定すること、つまりリアルタイムクロック２３０がシステムクロック２３２に同期しているかを判定することと等価である。なお、ステップＳ１３において、ΔＳがΔＲに対して一定の誤差δの範囲に入っている場合（ΔＲ−δ≦ΔＳ≦ΔＲ＋δ）に、ΔＳがΔＲに一致すると判定されても構わない。以上のステップＳ８乃至Ｓ１３の処理を判定処理（ステップＳ２０）と称する。
【００４８】
障害判定処理部２２３は、ステップＳ１３の判定がＮＯの場合、即ちＴｉｃｋカウンタ２３１を用いて計測されたハートビート送信時間間隔ΔＴは、ハートビートタイムアウト時間Ｔｏｕｔを超えていないものの、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲがハートビートタイムアウト時間Ｔｏｕｔを超えていて、且つシステムクロック２３２を用いて計測されたハートビート送信時間間隔ΔＳが当該ΔＲに一致しない場合、ＯＳ１３１-1の障害（スローダウン）により当該ΔＲ（リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔）がハートビートタイムアウト時間Ｔｏｕｔを超えたと判定する。即ち障害判定処理部２２３は、ステップＳ１３の判定がＮＯの場合、クラスタシステムがノード１０-1のＯＳ１３１-1の障害（スローダウン）に起因する（ハートビート送信遅延による）スプリットブレイン発生状態（以下、タイプ１の障害と称する）にあると判定する（ステップＳ１６）。このように本実施形態においては、ノード１０-1でのハートビート送信遅延によるスプリットブレイン発生の原因が、当該ノード１０-1のＯＳ１３１-1の障害にあることを、当該ノード１０-1（のハートビート監視機構２２０-1）により判定できる。
【００４９】
強制停止処理部２２４は、障害判定処理部２２３によってタイプ１の障害が判定された場合（ステップＳ１６）、前述したタイプ２の障害が判定された場合（ステップＳ１７）と同様に、ノード１０-1を強制的に停止させるための強制停止処理を行う（ステップＳ１９）。これによりスプリットブレイン発生状態を速やかに解消することができる。
【００５０】
これに対し、ステップＳ１３の判定がＹＥＳの場合、つまりシステムクロック２３２とリアルタイムクロック２３０との同期がとれている場合、障害判定処理部２２３は、システムクロック２３２が正常に更新されていることからＯＳ１３１-1の障害（スローダウン）は発生しておらず、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲがハートビートタイムアウト時間Ｔｏｕｔを超えているのは、当該リアルタイムクロック２３０がシステムクロック２３２を用いてＯＳ１３１-1によって日時操作されたためであり、ノード１０-1（を含むクラスタシステム）が正常な状態（以下、タイプ２の正常状態と称する）にあると判定する（ステップＳ１５）。これにより、スプリットブレイン発生状態の誤検出を防止することができる。
【００５１】
一方、ステップＳ１１の判定がＮＯの場合、つまりＴｉｃｋカウンタ２３１を用いて計測されたハートビート送信時間間隔ΔＴ及びリアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲが、いずれもハートビートタイムアウト時間Ｔｏｕｔを超えていない場合、障害判定処理部２２３は、クラスタ制御機構２１０-1及びＯＳ１３１-1はいずれも障害（スローダウン）を発生しておらず、ノード１０-1（を含むクラスタシステム）が正常な状態（以下、タイプ１の正常状態と称する）にあると判定する（ステップＳ１４）。
【００５２】
障害判定処理部２２３は、ノード１０-1（を含むクラスタシステム）がタイプ１またはタイプ２の正常状態にあると判定すると（ステップＳ１４またはＳ１５）、今回上記ステップＳ４で取得された時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を新たな時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）として、当該新たな時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）で、現在時刻情報記憶部２２１に格納されている時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）を更新する（ステップＳ１８）。するとハートビート検出部２２２は、再びハートビート送信を監視する（ステップＳ２）。  
ノード１０-2内のハートビート監視機構２２０-2においても、上述のハートビート監視機構２２０-1と同様の動作が行われる。
【００５３】
［第１の変形例］
次に、上記実施形態の第１の変形例について説明する。  
第１の変形例の第１の特徴は、上記実施形態における判定処理（ステップＳ２０）でタイプ１またはタイプ２の正常状態が判定された場合、当該判定処理（ステップＳ２０）と同様の判定処理が、ハートビートタイムアウト時間Ｔｏｕｔに代わる閾値（以下、スローダウン検出時間と称する）Ｔｓｄに基づき実行される点にある。スローダウン検出時間Ｔｓｄは、ノード１０-1が正常な場合のＨＢ送信部２１２-1からのハートビート送信の時間間隔Ｔｈｂよりも長く、ハートビートタイムアウト時間Ｔｏｕｔよりも短い値（Ｔｈｂ＜Ｔｓｄ＜Ｔｏｕｔ）に設定される。このようなスローダウン検出時間Ｔｓｄに基づく判定処理により、スプリットブレイン発生状態には至らない程度のクラスタ制御機構２１０-1またはＯＳ１３１-1の障害（スローダウン）、つまりノード１０-1の軽度のスローダウンが判定（検出）される。第１の変形例において、スローダウン検出時間Ｔｓｄは、ノード１０-1及び１０-2と通信路２０または当該通信路２０とは別の通信路（ネットワーク）を介して接続されるクライアント端末からユーザの操作に応じて設定されるものとする。
【００５４】
第１の変形例の第２の特徴は、スローダウン検出時間Ｔｓｄに基づく判定処理で、スプリットブレイン発生状態には至らない程度のノード１０-1のスローダウンが判定された場合、当該スローダウン状態が警告のためにユーザに通知される点にある。
【００５５】
以下、上記実施形態の第１の変形例におけるハートビート監視機構２２０-1の動作について、上記実施形態と相違する点を中心に、図５のフローチャートを参照して説明する。なお、図５において、図４と同様の処理ステップには同一符号を付してある。
【００５６】
まず、前記ステップＳ８乃至Ｓ１３から構成される判定処理（ステップＳ２０）で、タイプ１またはタイプ２の正常状態が判定されたものとする（ステップＳ１４またはＳ１５）。この場合、上記実施形態では、ステップＳ１８が実行される。これに対して第１の変形例では、上記ステップＳ２０の判定処理に相当する次のような判定処理が行われる。ここで実行される判定処理の特徴は、ハートビートタイムアウト時間Ｔｏｕｔに相当する閾値として、スローダウン検出時間Ｔｓｄ（Ｔｈｂ＜Ｔｓｄ＜Ｔｏｕｔ）が用いられる点にある。
【００５７】
まず障害判定処理部２２３は、Ｔｉｃｋカウンタ２３１を用いて計測されたハートビート送信時間間隔ΔＴが、スローダウン検出時間Ｔｓｄを超えているか（ΔＴ＞Ｔｓｄ）を判定する（ステップＳ２１）。このとき、ハートビート送信時間間隔ΔＴは、ハートビートタイムアウト時間Ｔｏｕｔを超えていない。そこで、ハートビート送信時間間隔ΔＴが、ハートビートタイムアウト時間Ｔｏｕｔを超えていないものの、スローダウン検出時間Ｔｓｄを超えている場合（ステップＳ２１がＹＥＳ）、障害判定処理部２２３は、クラスタ制御機構（クラスタカーネル）２１０-1の軽度の障害（スローダウン）であると判定する（ステップＳ２７）。この障害をタイプ４の障害と称する。
【００５８】
これに対し、ハートビート送信時間間隔ΔＴがスローダウン検出時間Ｔｓｄを超えていない場合（ステップＳ２１がＮＯ）、ＯＳ１３１-1の軽度の障害である可能性もあることから、障害判定処理部２２３は、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲが、スローダウン検出時間Ｔｓｄを超えているか（ΔＲ＞Ｔｓｄ）を判定する（ステップＳ２２）。もし、ハートビート送信時間間隔ΔＲが、スローダウン検出時間Ｔｓｄを超えている場合（ステップＳ２２がＹＥＳ）、リアルタイムクロック２３０がシステムクロック２３２を用いて日時操作された可能性もあることから、障害判定処理部２２３は、システムクロック２３２を用いて計測されたハートビート送信時間間隔ΔＳが、リアルタイムクロック２３０を用いて計測されたハートビート送信時間間隔ΔＲに一致するか（ΔＳ＝ΔＲ）を判定する（ステップＳ２３）。なお、ステップＳ２３において、ΔＳがΔＲに対して一定の誤差δの範囲に入っている場合（ΔＲ−δ≦ΔＳ≦ΔＲ＋δ）に、ΔＳがΔＲに一致すると判定されても構わない。
【００５９】
もし、ハートビート送信時間間隔ΔＳがハートビート送信時間間隔ΔＲに一致しない場合（ステップＳ２３がＮＯ）、障害判定処理部２２３は、ＯＳ１３１-1の軽度の障害（スローダウン）であると判定する（ステップＳ２６）。この障害をタイプ３の障害と称する。
【００６０】
強制停止処理部２２４は、障害判定処理部２２３によってタイプ３またはタイプ４の障害（スローダウン）が判定された場合（ステップＳ２６またはＳ２７）、当該判定されたスローダウンの状態（ノード１０-1における、クラスタ制御機構２１０-1またはＯＳ１３１-1のスローダウン）を、ノード１０-1を含むクラスタシステムがスプリットブレイン発生状態に至る前に、クライアント端末を介してユーザに通知する（ステップＳ２８）。ここでは、強制停止処理部２２４からユーザが利用するクライアント端末に対し、通信機構１４-1を介してスローダウンを通知することにより、当該ユーザへのスローダウン通知が行われる。
【００６１】
このように第１の変形例においては、ノード１０-1（に含まれるクラスタ制御機構２１０-1及びＯＳ１３１-1）が正常状態（タイプ１またはタイプ２の正常状態）にあると判定された場合でも、ハートビート監視機構２２０-1（の障害判定処理部２２３）が、この正常状態の判定条件に用いられた閾値（ハートビートタイムアウト時間Ｔｏｕｔ）よりもゆるい判定条件のユーザ指定の閾値（スローダウン検出時間Ｔｓｄ）を用いてステップＳ２０と同様の判定処理を行うことにより、スプリットブレイン発生状態には至らないようなクラスタ制御機構２１０-1またはＯＳ１３１-1のスローダウン（タイプ３またはタイプ４の障害）を判定（検出）することができる。つまり第１の変形例によれば、ハートビート監視機構２２０-1は、当該ハートビート監視機構２２０-1を含むノード１０-1のスローダウンによりクラスタシステムがスプリットブレイン発生状態となる可能性のあることを予測することができる。  
ノード１０-2内のハートビート監視機構２２０-2においても、上述のハートビート監視機構２２０-1と同様の動作が行われる。
【００６２】
［第２の変形例］
次に、上記実施形態の第２の変形例について図６を参照して説明する。  
図６は、上記実施形態の第２の変形例におけるクラスタシステムの主として機能構成を示すブロック図である。図６に示すクラスタシステムにおけるノード１０-1及び１０-2が上記実施形態と相違するのは、図２に示されるハートビート監視機構２２０-1及び２２０-2に代えて、それぞれハートビート監視機構２４０-1及び２４０-2が用いられる点にある。
【００６３】
ノード１０-1及び１０-2のハートビート監視機構２４０-1及び２４０-2は、図３に示されるハートビート監視機構２２０-1と同様の構成を有する。つまりノード１０-1及び１０-2のハートビート監視機構２４０-1及び２４０-2は、上記実施形態におけるハートビート監視機構２２０-1及び２２０-2と同様に、ノード１０-1及び１０-2自身の障害を判定する機能を有する。ハートビート監視機構２４０-1及び２４０-2は更に、ハートビート監視機構２２０-1及び２２０-2にはない第１及び第２の機能をそれぞれ有する。
【００６４】
以下、第１及び第２の機能について、ハートビート監視機構２４０-1の第１の機能とハートビート監視機構２４０-2の第２の機能とを例に説明する。  
ノード１０-1のハートビート監視機構２４０-1は、クラスタ制御機構２１０-1のＨＢ送信部２１２-1から送信されたハートビート（ＨＢ）を検出した際に、その時点のＴｉｃｋカウンタ２３１の値Ｔｃ、システムクロック２３２の値Ｓｃ及びリアルタイムクロック２３０の値Ｒｃ、つまり時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を当該検出されたハートビートに付加する（第１の機能）。ハートビート監視機構２４０-1によって時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）が付加されハートビートは、通信機構１４-1から通信路２０を介してノード１０-2に送信され、当該ノード１０-2の通信機構１４-2で受信される。
【００６５】
ノード１０-2のハートビート監視機構２４０-2は、通信機構１４-2で受信されるノード１０-1からのハートビートを監視している。このハートビートには時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）が付加されている。
【００６６】
ハートビート監視機構２４０-2は、ノード１０-1から送信されたハートビートを検出すると、上記第１の変形例においてノード１０-1から送信されたハートビートを検出した場合に行われる判定処理（ハートビート送信時判定処理）と同様の判定処理（ハートビート受信時判定処理）を行う。但し、ハートビート監視機構２４０-2によるハートビート受信時判定処理では、ハートビート送信側のノード１０-1（つまり他ノード）のスローダウン状態（タイプ３またはタイプ４の障害）が判定される。また、このハートビート監視機構２４０-2による判定には、検出されたハートビートに付加された時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）が用いられる。
【００６７】
つまりハートビート監視機構２４０-2は、前回ハートビートを検出した際に当該ハートビートに付加されていた時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）として時刻情報記憶部（図３に示す時刻情報記憶部２２１に相当）に格納しておき、この時刻情報（Ｔｐ，Ｓｐ，Ｒｐ）と今回検出したハートビートに付加されていた時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）とに基づき、ノード１０-1（他ノード）の軽度のスローダウン状態（タイプ３またはタイプ４の障害）を判定する（第２の機能）。ハートビート監視機構２４０-2は、ノード１０-1（他ノード）のタイプ３またはタイプ４の障害を判定すると、当該ノード１０-1（他ノード）における（クラスタ制御機構２１０-1またはＯＳ１３１-1の）軽度のスローダウンを、クライアント端末を介してユーザに通知する。
【００６８】
このように第２の変形例によれば、ノード１０-1からノード１０-2に送信されるハートビートにハートビート監視機構２４０-1が時刻情報を付加して送信することにより、ノード１０-2のハートビート監視機構２４０-2では、当該ハートビートに付加されている時刻情報を用いて、ハートビートの送信時と同様の判定処理によってノード１０-1（他ノード）のスローダウン状態（タイプ３またはタイプ４の障害）を判定し、ユーザに通知することができる。
【００６９】
なお、ノード１０-1（他ノード）がハートビート監視機構２４０-1のハートビート送信時判定処理で判定しているため、通常はハートビート監視機構２４０-2のハードビート受信時判定処理でスローダウン状態（タイプ１またはタイプ２の障害）と判定することはないが、ノード１０-1（他ノード）のノード障害以外、例えば通信路２０の一過性の障害によりハートビートタイムアウト時間Ｔｈｂ以上の間ハートビートが届かずにハートビート監視機構２４０-2がハートビートを受信できていなかった場合、ノード１０-1（他ノード）のスローダウン状態（タイプ１またはタイプ２の障害）として判定される。このような場合には、当該ノード１０-1（他ノード）を停止させるための強制停止処理を行う。これにより、上記実施形態と同様にスプリットブレイン発生状態を速やかに解消することができる。
【００７０】
ノード１０-2のハートビート監視機構２４０-2においても、ノード１０-1（他ノード）へのハートビートの送信時に、当該ノード１０-1（他ノード）に送信されるハートビートに時刻情報（Ｔｃ，Ｓｃ，Ｒｃ）を付加する動作が行われる。またノード１０-1のハートビート監視機構２４０-1においても、ノード１０-2（他ノード）からのハートビートを検出した際に、上記ノード１０-2のハートビート監視機構２４０-2で行われるのと同様のハートビート受信時判定処理が行われる。
【００７１】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係るクラスタシステムのハードウェア構成を示すブロック図。
【図２】図１のハードウェア構成を有するクラスタシステムの主として機能構成を示すブロック図。
【図３】図１に示されるノードの主としてハートビート監視機構の構成を示すブロック図。
【図４】同実施形態におけるハートビート監視機構の動作手順を示すフローチャート。
【図５】同実施形態の第１の変形例におけるハートビート監視機構の動作手順を示すフローチャート。
【図６】同実施形態の第２の変形例におけるクラスタシステムの主として機能構成を示すブロック図。
【符号の説明】
【００７３】
１０-1，１０-2…ノード（計算機）、１３-1，１３-2…外部記憶装置、１４-1，１４-2…通信機構、２０…通信路、１３１-1，１３１-2…ＯＳ（オペレーティングシステム）、１３２-1，１３２-2…プログラム、２１０-1，２１０-2…クラスタ制御機構、２１１-1，２１１-2…主制御部、２１２-1，２１２-2…ＨＢ送信部（ハートビート送信部）、２１３-1，２１３-2…ＨＢ受信部（ハートビート送信部）、２２０-1，２２０-2，２４０-1，２４０-2…ハートビート監視機構、２２１…時刻情報記憶部、２２２…ハートビート検出部、２２３…障害判定処理部、２２４…強制停止処理部、２３０…リアルタイムクロック、２３１…Ｔｉｃｋカウンタ（時間カウンタ）、２３２…システムクロック。
【図１】
2010026714.tif 000003
【図２】
2010026714.tif 000004
【図３】
2010026714.tif 000005
【図４】
2010026714.tif 000006
【図５】
2010026714.tif 000007
【図６】
2010026714.tif 000008