(57)【要約】複数のコンピュータノードを含むコンピュータクラスタにおけるステート情報の送信のためのメカニズムが開示される。当該方法においては、ハートビートメッセージが、コンピュータクラスタの第一のコンピュータノードからコンピュータクラスタのその他のコンピュータノードへ定期的に送信される。前記その他のノードは、それぞれ、少なくとも一つのクラスタ向けのタスクを実行するための少なくとも一つのリソースを含んでいる。クラスタ向けのタスクを実行するためのリソースの能力についての更新されたステート情報が大きなクラスタにおいてでさえ収集され得るようにするために、現在のステート情報がハートビート確認応答メッセージの中でハートビートメッセージを送信したノードへ送り返される。
2006526212.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータノードを含むコンピュータクラスタにおいてステート情報を転送する方法であって、
コンピュータクラスタの第一のコンピュータノードから前記コンピュータクラスタの、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースを含む、第二のコンピュータノードへハートビートメッセージを送信する段階と、
前記第二のコンピュータノードにおいて前記ハートビートメッセージを受信する段階と、
前記ハートビートメッセージの応答として送信されるハートビート確認応答メッセージのための、少なくとも一つの前記クラスタ向けタスクを実行するための少なくとも一つの前記リソースの能力を示す、ステート情報を読み出す段階と、
前記第一のコンピュータノードへ前記ハートビート確認応答メッセージ内の前記ステート情報を送信する段階と、
を備えることを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、更に、
前記受信する段階の応答としてステート情報が前記ハートビート確認応答メッセージのために読み出されるべきか否かを調べる段階を備えることを特徴とする方法。
【請求項３】
請求項２に記載の方法において、
前記調査する段階が、規定状態が満たされているか否かを調査することを含む、
ことを特徴とする方法。
【請求項４】
請求項３に記載の方法において、
前記調査する段階が、前記規定状態が満されていることを示したときに、前記読み出す段階および前記送信する段階が実行され、
更に、前記調査する段階が、前記規定状態が満たされることに失敗したことを示したときに、前記方法がステート情報を伴わずにハートビート確認応答メッセージを送信する段階を含む、
ことを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、更に、
前記ハートビート確認応答メッセージのために読み出されるステート情報のタイプを決定する段階を含む、
ことを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、更に、
管理情報データベース（ＭＩＢ）の中に、前記第一コンピュータノードへ送信された前記ステート情報を記憶する段階を含む、
ことを特徴とする方法。
【請求項７】
請求項６に記載の方法であって、管理情報データベースから前記コンピュータクラスタ外のエンティティへデータを転送する段階を含む、
ことを特徴とする方法。
【請求項８】
複数のコンピュータノードを含むコンピュータクラスタであって、
前記コンピュータクラスタの第一のコンピュータノードから前記コンピュータクラスタの、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースを含む、第二のコンピュータノードへハートビートメッセージを送信するための第一の手段と、
前記第二のコンピュータノードにおいて前記ハートビートメッセージを受信するための第二の手段と、
前記ハートビートメッセージの応答として送信されるハートビート確認応答メッセージのために、前記少なくとも一つのクラスタ向けのタスクを実行するための前記少なくとも一つのリソースの能力を示す、ステート情報を読み出すための第三の手段と、
前記第一のコンピュータノードへのハートビート確認応答メッセージ内の前記ステート情報を送信するための第四の手段と、
を含むことを特徴とするコンピュータクラスタ。
【請求項９】
請求項８に記載のコンピュータクラスタであって、更に、
前記第一のコンピュータノードへ送信される前記ステート情報を記憶するための前記第一のコンピュータノードに操作可能な状態で接続された管理情報データベース（ＭＩＢ）を含む、
ことを特徴とするコンピュータクラスタ。
【請求項１０】
請求項９に記載のコンピュータクラスタであって、更に、
前記コンピュータクラスタから前記管理情報データベースへアクセスするための第一のアクセス手段を含む、
ことを特徴とするコンピュータクラスタ。
【請求項１１】
請求項９に記載のコンピュータクラスタであって、更に、
前記コンピュータクラスタの外側から前記管理情報データベースへアクセスする第二のアクセス手段を含む、
ことを特徴とするコンピュータクラスタ。
【請求項１２】
請求項１１に記載のコンピュータクラスタにおいて、
前記第二のアクセス手段が前記第一のコンピュータノードの中にネットワークインターフェースを含む、
ことを特徴とするコンピュータクラスタ。
【請求項１３】
コンピュータクラスタのためのコンピュータノードであって、
少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースと、
もう一つのコンピュータノードからハートビートメッセージを受信するための第一の手段と、
前記ハートビートメッセージに応答して送信されるハートビート確認応答メッセージのための、前記少なくとも一つのクラスタ向けタスクを実行するための前記少なくとも一つのリソースの能力を示す、ステート情報を読み出すための第二の手段と、
前記第二の手段に応答して、前記ハートビート確認応答メッセージ内のステート情報を前記もう一つのコンピュータノードへ送信するための第三の手段と、
を含むことを特徴とするコンピュータノード。
【請求項１４】
請求項１３に記載のコンピュータノードであって、更に、
前記ハートビート確認応答メッセージのためにステート情報が読み出されるべきか否かを調べるための第四の手段を含む、
ことを特徴とするコンピュータノード。
【請求項１５】
複数のコンピュータノードを含むコンピュータクラスタにおいてステート情報を得るための方法であって、
コンピュータクラスタの第一のコンピュータノードから前記コンピュータクラスタの、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースを含む、第二のコンピュータノードへハートビートメッセージを送信する段階と、
前記第二のコンピュータノードからハートビート確認応答メッセージの受信を待ち受ける段階と、
前記少なくとも一つのクラスタ向けタスクを実行するための前記少なくとも一つのリースの能力を示すステート情報を含む前記ハートビート確認応答メッセージを受信する段階と、
を含むことを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、更に、
管理情報データベース（ＭＩＢ）において前記第一のコンピュータノードへ送信される前記ステート情報を記憶する段階を含む、
ことを特徴とする方法。
【請求項１７】
請求項１６に記載の方法であって、更に、
前記管理情報データベースから前記コンピュータクラスタの外部のエンティティへデータを転送する段階を含む、
ことを特徴とする方法。
【請求項１８】
請求項１５に記載の方法において、
前記ハートビート確認応答メッセージを受信する段階が、更に、
ハートビート確認応答メッセージが予定された期間内に受信されなかった場合に、前記クラスタから前記第二のコンピュータノードを削除することを含むこと、
を特徴とする方法。
【請求項１９】
複数のコンピュータノードを含むコンピュータクラスタにおいてステート情報を提供するための方法であって、
コンピュータクラスタの第一のコンピュータノードからのハートビートメッセージについての、前記コンピュータクラスタの第二のコンピュータノードによる受信を待機する段階と、
前記第一のコンピュータノードからの、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースを含む、前記ハートビートメッセージを受信する段階と、
前記少なくとも一つのクラスタ向けタスクを実行するための前記少なくとも一つのリソースの能力を示すステート情報を含むハートビート確認応答メッセージを送信する段階と、
を含むことを特徴とする方法。
【請求項２０】
請求項１９に記載の方法であって、更に、
前記受信する段階に応答して、ステート情報がハートビート確認応答メッセージのために読み出されるべきか否かを調べる段階を含む、
ことを特徴とする方法。
【請求項２１】
請求項２０に記載の方法において、
前記調べる段階が、規定状態を満たしているか否かを調査することを含む、
ことを特徴とする方法。
【請求項２２】
請求項２１に記載の方法において、
前記調べる段階が、前記規定状態が満たされていることを示す場合に、前記ハートビート確認応答メッセージのためのステート情報を読み出し段階と前記送信する段階が実行され、かつ、
前記方法が、更に、
前記調査する段階が、規定状態が満たされることに失敗したときには、ステート情報を伴わずに、ハートビート確認応答メッセージを送信する段階を含むこと、
を特徴とする方法。
【請求項２３】
請求項１９に記載の方法であって、更に、
前記ハートビート確認メッセージのために、読み出されるべきステート情報のタイプを決定する段階を含む、
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的に、本発明は複数のコンピュータノードを含むコンピュータクラスタに関連する。特に、本発明はステート情報をクラスタの中で収集するためのメカニズムに関連している。本明細書において、ステート情報とはコンピュータノードのリソースがクラスタにおけるタスクをいかに完了することが可能であるかを示す情報を言う。このように、ステート情報は、コンピュータノードにおける様様なリソースの負荷を示すデータだけでなく、コンピュータノードにおける現在の性能または容量についてのデータ、すなわち、クラスタにおけるそれらのタスクを完了するためのリソースの現在の能力についてのデータをも含むことが考えられる。
【背景技術】
【０００２】
一般的に知られているように、コンピュータクラスタは一つ又は複数のタスクを完了するために協働するコンピュータのグループである。コンピュータクラスタは、例えば、負荷バランシング、耐障害性向上（すなわち、障害が発生した場合の使用可能性向上）、または、並列コンピューティングのために使用され得る。
【０００３】
典型的なコンピュータクラスタは、複数のコンピュータノードを含んでいる。ここで、コンピュータノードとは、エンティティであって、そのエンティティのためのプロセッサ、メモリ、および、基本ソフトによって提供されるエンティティを意味する。このエンティティは、さらに、そのクラスタにおける他のコンピュータノードと通信を行うためのネットワークインターフェースもまた有している。クラスタにおけるコンピュータノードの少なくとも一つは、管理ノードとして振舞うための機能を備えている。この管理ノードはクラスタの管理を行う。管理ノードは、クラスタ内の障害を検出するために、ハートビート（ｈｅａｒｔｂｅａｔｓ）と呼ばれるある一定のメッセージを、定期的にクラスタ内のその他のコンピュータノードに送信する。一般的にある時間において管理ノードとして振舞うのは一つのコンピュータノードのみである。
【０００４】
一般的に管理ノード内に備えられた制御ソフトウェアは、そのクラスタに属するすべてのコンピュータノードを監視しなければならない。正しく、かつ、更新されたノードのステート情報を得るために、制御ソフトウェアは、かなり頻繁にノードからステート情報を収集しなければならない。これは、数千個や、それに相当するような数のコンピュータノードからなる大きなコンピュータクラスタにおいては、特に問題となる。こういった大きなコンピュータクラスタにおいては、ネットワークおよびコンピュータノードの性能の利益となるように、データ収集レートを妥協しなければならない。なぜなら、データ収集の影響によってネットワークへの負荷が大きくなることを避け、かつ、データ収集を実行しつつも、コンピュータノードの性能を許容できるレベルに維持することを保証する必要があるからである。言い換えれば、大きなクラスタにおいては、ネットワークまたはコンピュータノードの性能を著しく低下させないために、データ収集レートは妥協して設定されなければならないということである。
【０００５】
本発明の目的は、この欠点を排除または低減することである。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明は、コンピュータクラスタのコンピュータノードから、ステート情報を収集するための新規なメカニズムをもたらすことを追求する。本発明は、大きなクラスタであっても、ネットワークかノードの性能の利益となるように妥協されたステート情報収集レートを要求しないメカニズムを提供することを追及する。
【０００７】
本発明においては、監視と制御の目的のために、コンピュータクラスタの内部特性でもあるハートビートメカニズムを、コンピュータノードからステート情報を収集するために利用する。以下に記載するように、コンピュータクラスタ内で、または、ネットワーク監視もしくは管理システムのような外部エンティティによって、収集されたステート情報が利用され得る。
【０００８】
本発明の一実施例に従うと、コンピュータクラスタにおいてステート情報を転送するための方法は、複数のコンピュータノードを使用する。この方法は、コンピュータクラスタの第一のコンピュータノードからそのコンピュータクラスタの第二のコンピュータノードへハートビートメッセージを送信するステップを含む。このコンピュータクラスタにおいて、第二のコンピュータノードは、少なくとも一つのクラスタ向けのタスクを実行し、ハートビートメッセージを受信する少なくとも一つのリソースを第二のコンピュータノードの中に有する。また、この方法は、バートビートメッセージへの応答として送信されるハートビート確認応答メッセージのためのステート情報を読み出すことを含む。このステート情報は、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースの能力を示し、ハートビート確認応答メッセージの中のこのステート情報を第一のコンピュータノードに送信する。
【０００９】
もう一つの実施例においては、本発明は複数のコンピュータノードを有するコンピュータクラスタを提供する。そのコンピュータクラスタは、そのコンピュータクラスタの第一のコンピュータノードからそのコンピュータクラスタの第二のコンピュータノードへハートビートを送信するための第一の手段を備える。このコンピュータクラスタにおいては、第二のコンピュータノードは、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースを含む。そして、このコンピュータクラスタは、第二のコンピュータ内でハートビートメッセージを受信するための第二の手段を備える。このコンピュータクラスタは、また、ハートビートメッセージの応答として送信されるハートビート確認応答メッセージのためにステート情報を読み出すための第三の手段をも備える。このステート情報は、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースの能力を示す。そして、このコンピュータクラスタは、第一のコンピュータノードへハートビート確認応答メッセージの中のステート情報を送信するための第四の手段を備える。
【００１０】
もう一つの実施例では、本発明は、コンピュータクラスタにおけるコンピュータノードを提供する。このコンピュータノードは、少なくとも一つのクラスタ向けタスクを実行するための少なくとも一つのリソースと、その他のコンピュータノードからハートビートメッセージを受信するための第一の手段と、ハートビートメッセージに対する応答として、ハートビート確認応答メッセージのためのステート情報を読み出すための第二の手段と、少なくとも一つのクラスタ向けタスクを実行する少なくとも一つのリソースの能力を示すステート情報と、第二の手段に応答してもう一つのコンピュータノードにハートビート確認応答メッセージ内のステート情報を送信するための第３の手段と、を備える。
【００１１】
本発明の手段によって、リアルタイムなステート情報が、ネットワークまたはコンピュータノードにおける過剰な負荷を伴うことなくコンピュータクラスタのコンピュータノードから収集することができる。すなわち情報収集レートが、収集によって生じる負荷の影響によって妥協される必要がない。特に、最小送信単位を越えない場合には、確認応答メッセーの増加された長さによって生じるオーバーヘッドは比較的低い。
【００１２】
本発明の一つの実施例においては、ハートビートメッセージを受信するコンピュータノードは、ステート情報がハートビートメッセージに対する応答として送信されるハートビート確認応答メッセージのために読み出されるべきか否かを確認する。この方法では、不要なステート情報の送信を避けることができる。
【００１３】
更なる本発明の利点は、収集された情報がコンピュータクラスタ内または外の異なるエンティティによって同時に利用され得ることである。
【００１４】
本発明のその他の特徴および利点は、以下に記載される詳細な説明とそれに伴う図を参照することで、明らかになるであろう。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明のメカニズムが適用されるコンピュータクラスタ１００の一例を示している。このクラスタは、Ｎ個のコンピュータノード１１０i（ｉ＝１、２、３、．．．Ｎ）を有する。各コンピュータノードは、プロセッサ、メモリおよびそれ自身のコピーである基本ソフトによって提供される、独立したエンティティである。各コンピュータノードは典型的にはインターネットプロトコル（ＩＰ）ネットワークであるネットワーク１２０に接続するためのネットワークインターフェースもまた有している。ここで、本発明のメカニズムが、送信プロトコルに依存せず、多くの異なる環境において適用され得るところに注意されたい。しかし、ＩＰネットワークは、本発明の典型的な環境を形成する。
【００１６】
毎回、一つのコンピュータノードが、この例においてはノード１１０1が、管理ノードとして動作する。当該管理ノードは、クラスタおよびリソースの管理を行う。そのクラスタ内で発生した障害を検出するために、管理ノードは、ハートビートメッセージＨＢを、そのクラスタ内のその他のコンピュータに、定期的に送信する。クラスタは、管理ノードとして振舞うことができる一つ以上のノードを有するかもしれないが、一度には、そういったノードのうちの一つが管理ノードとして動作する。典型的には、単一のハートビートメッセージは、そのクラスタのすべてのノード用に定義されたマルチキャストメッセージである。そして、二つの連続するハートビートメッセージの間の期間は、アプリケーション環境に大きく依存する。
【００１７】
コンピュータノードが、ハートビートメッセージを管理ノードから受信したときは、そのコンピュータノードは、ハートビート確認応答メッセージＨＢ＿ＡＣＫを管理ノードに送り返し、管理ノードに対して、そのコンピュータノードが動作中であり、したがって、クラスタ内に依然として存在していることを示す。もし、管理ノードがハートビート確認応答メッセージをコンピュータノードから受信しなかった場合には、管理ノードによって即座に復旧手段が開始される。典型的には、通信障害が検出されたコンピュータノードは、そのクラスタから削除され、そのノードが持っていたクラスタ向けの処理は、その他の一つかそれ以上のノードに再度割り当てられる。
【００１８】
様様な異なるタスクがクラスタによって実行され、そして、実際のアプリケーションは、クラスタ内において様様な方法で分散され得る。一つかそれ以上のクラスタノードは、クラスタの外部の要素からは、単一のエンティティであるように見えることも考えられる。例えば、複数のコンピュータノードがルーティングを行った場合、そのクラスタの外側から見ると、一つかそれ以上のコンピュータが、一つのルーティングネットワーク要素を形成しているように見え得る。もう一つの例としては、外部から見る者にとっては、すべてのコンピュータノードが単一のエンティティとして見える。
【００１９】
もし、負荷分散グループがクラスタ内で利用された場合、さらに、一つかそれ以上のコンピュータが一つのＩＰＤ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｄｉｒｅｃｔｏｒ）ノードとして動作する。ＩＰＤは、入力タスク要求を負荷分散グループの中でルーティングする負荷分散制御ノードである。図１の例では、コンピュータノード１１０2が、コンピュータクラスタの外からのタスク要求を受信する一つのＩＰＤノードとして動作する。
【００２０】
本発明においては、コンピュータクラスタが元々有しているハートビートのメカニズムをコンピュータノードからステート情報を収集するために利用する。このデータは、クラスタの目的のためのみに収集されるか、ネットワークに接続されたネットワークを監視または管理するシステム１６０のようなクラスタ外のエンティティのために収集される。クラスタノードから管理ノードにステート情報を搬送するためにハートビート確認応答メッセージは使用される。管理ノードは、その情報を管理情報データベース（ＭＩＢ）１５０に格納する。
【００２１】
本発明の一実施例では、ＭＩＢは、コンピュータクラスタ内のエンティティおよびコンピュータクラスタ外のエンティティの両方のために使用され得る。例えば、クラスタの内部障害管理のために収集されたデータを利用する。障害管理システムがＭＩＢからデータを読むことができるように、障害管理ロジックは管理ノード内に存在しているエージェント（ａｇｅｎｔ）１３０を用いてクラスタ内で分散される。言い換えれば、障害管理システムは、管理ノード内に備えられたサーバー部、および、コンピュータ内部に備えられたクライアント部を用いたクライアント−サーバーメカニズムを含むということである。ＭＩＢを利用する機能を有するもう一つのクラスタエンティティは、コンピュータノードである。このコンピュータノードは、入力タスクをその入力タスクを実行するそのコンピュータノードに割り当てる。上記ＩＰＤノードに加えてその他のクラスタノードは、負荷バランシングエンティティのようなものとして動作する。
【００２２】
ＭＩＢが独立したネットワークノードを形成するか否か、または、ＭＩＢが管理ノードに接続されているか否かに応じて、いずれかの既知の方法で、ＭＩＢへのアクセスは、直接的にまたは管理ノードを通じて実行することができる。ＭＩＢは管理ノード以外のその他のコンピュータノードにもまた接続され得る。
【００２３】
図２は、他のコンピュータノードへ送信される一つのハートビートメッセージについての管理ノードの基本的動作例を説明したフローチャートである。したがって、ここで、図２は、送信される一つのハートビートメッセージに関する動作を説明しており、ハートビートメッセージの定期的な送信は図示されていないことに注意されたい。管理ノードがハートビートメッセージを送信したとき、管理ノードはタイマーを設定し（ステップ２０１）、そして、前記その他のコンピュータノードから応答としてハートビート確認応答メッセージが受信されたか否かの監視を開始する（ステップ２０２）。もし、タイマーが満了する前に、確認応答メッセージが到達した場合には、管理ノードは、そのメッセージを調べる（ステップ２０４）。もし、そのメッセージがステート情報を含んでいることを管理ノードが検出した場合、管理ノードは、そのメッセージから前記情報を読み出し、その情報に基づいてＭＩＢを更新する（ステップ２０７）。確認応答メッセージがステート情報を含んでいない場合には、管理ノードは従来の方法を続行する。
【００２４】
もし、ハートビート確認応答メッセージを受信する前にタイマーが満了してしまった場合には、管理ノードはそのコンピュータノードにおいて通信障害が発生したと結論付け、復旧手段を開始する（ステップ２０５）。実際には、このタイマーによって測定される期間は、その期間内で一つ以上のハートビートメッセージを送信することができるくらい長い。それらのメッセージのいずれかに対するハートビート確認応答が受信されれば、それは、処理をステップ２０４へ移行させるトリガーとなる。通常、管理ノードは、Ｎ個の連続したハートビートメッセージが、あるコンピュータノードからの一つの確認応答も無いまま残された場合には、そのコンピュータについては障害が発生したことを宣言する。したがって、復旧手段が開始される前に、管理ノードが所定の数のハートビートメッセージを喪失することは許容され得る。特に、一般的にハートビートメッセージを搬送するために使用されるＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）の場合には、ネットワーク内に本質的な問題が存在していなくても、メッセージは失われ得る。上記観点において、図２は、管理ノードにおける単なる入力ハートビート確認応答メッセージの処理原理の説明図に過ぎない。一方で、当該の管理ノードアルゴリズムの現実的な実装においては、多くの方法によって変更されることが考えられる。
【００２５】
図３ａは、管理ノードから受信された一つのハートビートメッセージに関するコンピュータノードの動作例を説明したフローチャートである。ハートビートメッセージが受信された場合、コンピュータノードは、規定状態が満たされているか否かを検証する（ステップ３０１）。この規定状態は、確認応答メッセージにおいて不必要なステート情報を送信しないために設定される。もし、状態が満たされていれば、コンピュータノードは、メモリからステート情報を読み出して（ステップ３０３）、受信されたステート情報を含んだハートビート確認応答メッセージを生成する。もし、規定状態が満たされなければ、通常のハートビート確認応答メッセージ、すなわち、ステート情報を含まないハートビート確認応答メッセージを生成する（３０２）。生成されたメッセージは、管理ノードに送り返される（ステップ３０５）。
【００２６】
典型的には、ステート情報を読み出すために設定された規定状態は、管理情報へのステート情報の最後の送信から、ある最小期間が経過したような状態である。もし、この制限時間を超えた場合には、新たなステート情報が読み出され、ハートビート確認応答メッセージの中に挿入される。それ以外の場合は、通常のハートビート確認応答メッセージが送信される。制限時間が超えるたことを検出するために、コンピュータノードは、カウンターをステップ３０５で開始することが考えられる。カウンターの現在値が、次のハートビートメッセージと一緒に、ステップ３０１で調査される。したがって、典型的には、コンピュータノードは、通常のハートビート確認応答メッセージとステート情報を含んだハートビート確認応答メッセージの両方を送信する。これら二つのメッセージタイプの比率は、ハートビートメッセージ受信レートに依存する。
【００２７】
ステート情報を読み出すために設定された規定状態は、ステート情報が読み出される以前に満たされるべき数個の副状態からなることもまた考えられる。もしコンピュータノードの負荷が、そういった副状態のようなものとして使用された場合には、例えば、ステート情報の最後の送信からある最小の期間が過ぎ、かつ、コンピュータノードの現在の負荷がある最大レベルを下回ったときにのみ、ステート情報の読み出しが発生することが考えられる。
【００２８】
図３ｂに示されるように、ハートビートメッセージの受信応答として読み出されるべきステート情報のタイプを、ノードが決定することもまた可能である（ステップ３１１）。したがって、異なるタイプの情報が、連続的なハートビート確認応答メッセージによって搬送されることが考えられる。例えば、もし、ハートビートメッセージが十分頻繁に送信された場合、あるパラメータセットがＮ個の連続するハートビート確認応答メッセージによって搬送され、同じセットが、次のＮ個のハートビート確認応答メッセージによって再び送信されるようなことが考えられる。また、ある情報（パラメータ）は他の情報に比べて少ない頻度で送信されることも考えられる。
【００２９】
一般的には、メモリから読み出されたステート情報は、コンピュータ上で動作しているアプリケーションに依存する。しかし、コンピュータノードの基本ソフトに関連する基本的なパラメータは、すべてのコンピュータノードについて同一である。これらのパラメータは、例えば、ＣＰＵ非稼動時間、および、ある入出力操作の数を含む。基本的に、ステート情報は、二つのグループに分けられる。一つは、アプリケーションの性能に関するパラメータであり、もう一つは、ノードプラットフォームの性能、および／または、状態に関するパラメータである。
【００３０】
図４は、コンピュータノードにおける、ハートビート確認応答生成のソフトウェアアーキテクチャの一例を示したものである。カーネル空間に備えられたカーネルモジュール４００は、基本ソフトに関連するパラメータをコンピュータノードのカーネル空間から直接に受信する。アプリケーションが実行されるユーザー空間においては、各アプリケーション４０１はライブラリ４０２を有し、そのライブラリを介して、カーネルモジュールに関連するパラメータを書き込むことが可能となる。もし、規定状態が満たされた場合、ユーザー空間に備えられた監督エージェント４０３は、カーネルモジュールからステート情報を読み出し、読み出した情報を含んだハートビート確認応答メッセージを構築する。したがって、図４の実施例では、ステート情報の保存は基本ソフト内で実行され、より早い動作を可能とする。しかし、ステート情報は、ディスクのような大きなメモリに記憶されることもまた、考えられる。
【００３１】
図５は、ステート情報を含んだハートビート確認応答メッセージの一般的な構成を示している。このメッセージは３つの連続する部分からなる。一つは、ヘッダ部５０１であって、ヘッダ部は、（イーサーネット、ＩＰやＴＣＰ／ＵＤＰヘッダのような）関連するプロトコルのヘッダを含む。そして、確認応答識別子５０２、および、コンピュータノードの中で読み出されたステート情報を含んだペイロード部５０３である。したがって、このメッセージは、ステート情報を含んだペイロード部を含んでいること以外は、従来のハートビート確認応答メッセージと同じである。本発明の一実施例では、ペイロード部はＡＳＮ．１（Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ  Ｏｎｅ）およびＰＥＲ（Ｐａｃｋｅｄ  Ｅｎｃｏｄｉｎｇ  Ｒｕｌｅｓ）コーディングを使用してエンコードされる。この方法により、ステート情報は効率的に圧縮され、更なる情報を同じメッセージ空間に挿入することが可能となる。使用されるプロトコルにもよるが、ステート情報部は、ネットワークにおけるいかなる余分な負荷を引き起こすことなく送信され得る。従来のハートビートメッセージ長が、最小送信単位よりも小さい場合には、パディングビットとしてステート情報が使用され得る。
【００３２】
本発明のハートビート確認応答メッセージによって生じる増加負荷は、従来のハートビート確認応答メッセージによって生じる負荷に比べて比較的小さい。これは、短いメッセージにおいては、プロトコルヘッダが送信されたメッセージの主な部分を占めるため、より長いメッセージによって生じるオーバーヘッドは、比較的低くなることに起因する。更に、通常、最小メッセージ長よりも短いメッセージは満杯にされるけれども、ここでは、それらは、ステート情報によって満たされる。この方法によって、ステート情報部はネットワークにおける余分な負荷を発生させることなく転送される。本発明の方法によって生じる余分な負荷は、本発明が適用される環境にもまた依存する。例えば、イーサーネットネットワークにおいては、最小メッセージ長は６４バイトであり、これは、部分５０１および５０２の要求よりも長い。
【００３３】
添付された図面において示された例を参照しながら、ここまで本発明について説明してきたが、本発明がこれらに制限されないことは明らかであり、当業者によって本発明の範囲および精神から逸脱することなく変更されることが考えられる。例えば、通常のハートビート確認応答メッセージかステート情報を含んだハートビート確認応答メッセージが送信されるべきか否かを確認する必要がなく、ステート情報を含んだ確認応答メッセージがハートビートメッセージ毎に応答して送信されることが考えられる。
【図面の簡単な説明】
【００３４】
【図１】図１は、本発明に従った一つのコンピュータクラスタを説明する。
【図２】図２は、一つのハートビートメッセージを考慮した管理ノードの基本動作を説明するフローチャートである。
【図３ａ】図３ａは、コンピュータノードからステート情報を送信するための一実施例を説明するフローチャートである。
【図３ｂ】図３ｂは、コンピュータノードからステート情報を送信するためのもう一つの実施例を説明するフローチャートである。
【図４】図４は、コンピュータノードにおけるステート情報の収集を説明する概略図である。
【図５】図５は、本発明に従ったハートビートメッセージを図示したものである。
【図１】
2006526212.tif 000003
【図２】
2006526212.tif 000004
【図３ａ】
2006526212.tif 000005
【図３ｂ】
2006526212.tif 000006
【図４】
2006526212.tif 000007
【図５】
2006526212.tif 000008
【国際調査報告】
2006526212.tif 000009
2006526212.tif 000010