(57)【要約】【課題】  高可用性クラスタのノードのステータスを生成する。【解決手段】  本発明にかかるステータスを生成する方法においては、ハートビート信号が、ノードからクラスタに送信され、ノードの現在のステータスが決定され、このステータスが、専用インタフェースを通じて次のノードへ送出される。また、本発明は、ノードごとに実行されるクラスタ全体を管理する方法に関し、先行ノードから受信したハートビート入力がチェックされ、先行ノードから受信したアップ／ダウンステータス入力および先行ノードから受信した劣化ステータス入力もチェックされる。また、本発明は、高可用性クラスタのシステムに関し、このシステムは、ノードからのハートビート信号を含む信号を搬送するように構成された一般的なノード間通信ネットワークを含み、さらに、ノードステータス信号を通信するための別個のノード間通信チャネルを含む。【選択図】図３
2005209201.tif 000002
【特許請求の範囲】
【請求項１】
高可用性クラスタのノードのステータスを生成する方法であって、
前記ノードからネットワークを通じて前記クラスタへハートビート信号を送信することと、
前記ノードの現在のステータスを決定することと、
該現在のステータスを専用インタフェースを通じて次のノードへ送出すること
を含む方法。
【請求項２】
前記専用インタフェースは、ノード間ステータス通信に専用化され、
前記ネットワークは、前記ハートビート信号に加えて他の通信にも使用される
請求項１に記載の方法。
【請求項３】
前記ノードの現在の劣化レベルを決定することと、
該劣化レベルを前記専用ハードウェアを通じて前記次のノードへ送出することと
をさらに含む請求項１に記載の方法。
【請求項４】
前記専用インタフェースは、ノード間ステータス通信に専用化され、
前記ネットワークは、前記ハートビート信号に加えて他の通信にも使用される
請求項３に記載の方法。
【請求項５】
前記専用インタフェースは、前記クラスタのノードをリングトポロジーで接続する
請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的には、コンピュータネットワークに関する。
より詳細には、本開示は、相互接続されたコンピュータシステムのクラスタに関する。
【背景技術】
【０００２】
高可用性（ＨＡ）クラスタは、単一の統合された計算ユニットとして使用される相互接続されたコンピュータシステムまたはサーバの集合を備える並列システムまたは分散システムである。
クラスタのメンバは、ノードまたはシステムと呼ばれる。
クラスタサービスは、クラスタに関係したアクティビティを管理する各ノードのソフトウェアの集合である。
クラスタサービスは、すべての資源を同一のオブジェクトとみなす。
資源には、ディスクドライブやネットワークカード等の物理ハードウェアデバイス、または、特に論理ディスクボリューム、ＴＣＰ／ＩＰアドレス、アプリケーション全体、データベース全体等の論理アイテムが含まれ得る。
１つのグループは、単一のユニットとして管理される資源の集合である。
一般に、グループは、特定のアプリケーションを実行して、そのアプリケーションが提供するサービスにユーザが接続することを可能にするのに必要なコンポーネントのすべてを含む。
グループで実行されるオペレーションは、通常、そのグループ内に含まれるすべての資源に影響を与える。
クラスタ化は、２つまたは３つ以上のサーバを共に接続することによって、システムの可用性、性能、ならびにネットワークシステムおよびアプリケーションの容量を増大させる。
【０００３】
クラスタ化は、２つまたは３つ以上のＣＰＵを同時に使用して、アプリケーションまたはプログラムを実行する並列処理または並列計算に使用することができる。
クラスタ化は、システムアドミニストレータが既存のコンピュータおよびワークステーションを利用することを可能にするので、並列処理アプリケーションを実施するのにポピュラーな戦略である。
ネットワーク接続されたサーバに発行される要求の数を予測することは困難であるので、クラスタ化は、単一のサーバが圧倒されないように、処理アクティビティおよび通信アクティビティをネットワークシステム全体にわたって一様に分散させる負荷バランシングにも有益である。
１つのサーバが圧倒される危険を冒している場合に、より大きな容量を有する別のクラスタ化されたサーバに要求を転送することができる。
例えば、繁忙なウェブサイトは、負荷バランス方式を使用するために、２つまたは３つ以上のクラスタ化されたウェブサーバを使用することができる。
また、クラスタ化は、システムの負荷が増加するに伴い、新たなコンポーネントの追加を可能にすることによって拡張性も増大させる。
さらに、クラスタ化は、システムアドミニストレータが１つのグループ全体を単一のシステムとして管理することを可能にすることによって、システムのグループおよびそれらのアプリケーションの管理も単純にする。
また、クラスタ化は、ネットワークシステムのフォールトトレランスを増大させるのに使用することもできる。
或るサーバが予期しないソフトウェア障害またはハードウェア障害を受けると、別のクラスタ化されたサーバが、障害を受けたサーバのオペレーションを引き継ぐことができる。
したがって、システムの何らかのハードウェアコンポーネントまたはソフトウェアコンポーネントが障害を受けると、ユーザは、性能低下を受けることはあるが、サービスへのアクセスを失うことはない。
【０００４】
現在のクラスタサービスには、特に、Microsoft社が自社のＷｉｎｄｏｗｓ（登録商標）  ＮＴ  ４．０オペレーティングシステムおよびＷｉｎｄｏｗｓ  ２０００  Ａｄｖａｎｃｅｄ  Ｓｅｒｖｅｒオペレーティングシステムのクラスタ化用に設計したＭｉｃｒｏｓｏｆｔ  Ｃｌｕｓｔｅｒ  Ｓｅｒｖｅｒ（ＭＳＣＳ）、Ｎｏｖｅｌｌ  Ｎｅｔｗａｒｅ  Ｃｌｕｓｔｅｒ  Ｓｅｒｖｉｃｅｓ（ＮＷＣＳ）等が含まれる。
例えば、ＭＳＣＳは、２つのＮＴサーバのクラスタ化をサポートして、単一の高可用性サーバを提供する。
【０００５】
また、クラスタ化は、ストレージエリアネットワーク（ＳＡＮ）および同様のネットワーク接続環境を利用するコンピュータネットワークにおいて実施することもできる。
ＳＡＮネットワークによって、複数のクラスタおよび／またはサーバ間でストレージシステムを共有することが可能になる。
ＳＡＮのストレージデバイスは、例えば、ＲＡＩＤ構成で構造化することができる。
【０００６】
システム障害を検出するために、クラスタ化されたノードは、ハートビートメカニズムを使用して、互いの健全性を監視することができる。
ハートビートは、或るクラスタ化されたノードが別のクラスタ化されたノードに送信する信号である。
ハートビート信号は、通常、イーサネット（登録商標）または同様のネットワーク上で送信される。
ただし、このネットワークは他の目的にも利用される。
【０００７】
予期されたハートビート信号がノードから受信されない時、そのノードの障害が検出される。
ノードの障害が検出された場合、クラスタ化ソフトウェアは、例えば、障害のあるノードの資源グループ全体を別のノードに転送することができる。
障害によって影響を受けたクライアントアプリケーションは、セッションの障害を検出でき、元の接続と同じように再接続を行うことができる。
【０００８】
ハートビート信号がクラスタのノードから受信されると、そのノードは、通常、「アップ」状態にあると定義される。
アップ状態では、ノードは、適切に動作していると仮定される。
他方、ハートビート信号がもはやノードから受信されないと、そのノードは、通常、「ダウン」状態にあると定義される。
ダウン状態では、ノードは、障害を受けていると仮定される。
【発明の開示】
【課題を解決するための手段】
【０００９】
本明細書に開示する一実施の形態は、高可用性クラスタのノードのステータスを生成する方法に関する。
ハートビート信号が、ノードからネットワークを通じてクラスタに送信される。
さらに、ノードの現在のステータスが決定され、このステータスが、専用インタフェースを通じて次のノードへ送出される。
【００１０】
本明細書に開示する別の実施の形態は、ノードごとに実行されるクラスタ全体を管理する方法に関する。
先行ノードから受信したハートビート入力がチェックされる。
さらに、先行ノードから受信したアップ／ダウンステータス入力および先行ノードから受信した劣化ステータス入力もチェックされる。
【００１１】
本明細書に開示する別の実施の形態は、高可用性クラスタのシステムに関する。
このシステムは、ノードからのハートビート信号を含む信号を搬送するように構成された一般的なノード間通信ネットワークを含む。
さらに、ノードステータス信号を通信するための別個のノード間通信チャネルが含まれる。
【発明を実施するための最良の形態】
【００１２】
図１は、従来の高可用性クラスタ１００を示す概略図である。
図示するように、従来のクラスタ１００は、複数のノード１０２と、これらのノードを相互接続するネットワークまたはネットワークメッシュ１０４（通常、イーサネットネットワーク）とを含む。
例えば、ハートビート信号は、ネットワーク１０４を介してノードからクラスタに送信される。
【００１３】
従来のクラスタでは、すべてのノードがイーサネット（または他のネットワーク接続）インタフェースを通じてハートビート信号を提供する。
クラスタのすべてのノードがこれらの信号を監視する。
或るノードがハートビート信号の送信を停止したと別のノードが判断すると（またはいくつかのノードが判断すると）、そのノードはＨＡクラスタから「除去」される。
【００１４】
しかしながら、この従来の手法には、いくつかの問題および不都合がある。
第１に、通信パスが、比較的低速で高オーバーヘッドのノード間接続（例えば、イーサネット）を使用する。
第２に、従来の手法は、ノードがクラスタにハートビート信号を送信している「アップ」状態と、ノードがこれらのハートビート信号を生成できない「ダウン」状態とを定義する。
これは、ターゲットの重要なアプリケーションが「ダウン」している場合であっても、ノードが依然としてハートビートを送信できるという点で不都合である。
【００１５】
第３に、行方不明となったハートビート信号は、その原因がいくらでもあり得る（例えば、ノードの障害または相互接続の障害のいずれか）点で不明瞭である。
第４に、或るノードがクラスタの残りのノードに予測メッセージを送信する手段が存在しない。
このような予測メッセージは、例えば、ＨＡクラスタソフトウェアが、ノードが障害になる前にそのノードを事前に除去することを可能にし、その結果、クラスタの稼働時間を増加させるものである。
上記問題および不都合によって、クラスタレベルソフトウェアおよび準最適な稼働時間が非効率なものとなる。
【００１６】
ＨＡクラスタの効率性（すなわち稼働時間）は、主として、クラスタのノードが「ダウン」状態にあることをクラスタシステムが認識するのに要する時間量によって決まることが分かる。
ノードが、ＨＡクラスタの有用な計算機能または記憶機能を実行するその能力において停止したとき、ノードはダウン状態になる。
ノードが「ダウン」していると判断されると、ＨＡクラスタ化ソフトウェアは、ユーザタスクへの割り込みをほとんど行うことなく残りのクラスタの実行を維持するのに必要なタスクを実行することができる。
また、ＨＡクラスタにおける各切り換えイベントは、或るクラスタレベルの稼働時間を「犠牲にする」ので、効率性は、ＨＡクラスタにおける不要な切り換え回数によっても制限される可能性がある。
最後に、ＨＡクラスタが正しく実行されるには、「スプリットブレイン（split-brain）」状況が回避されるべきである。
「スプリットブレイン」は、「ダウン」していると考えられるノードが実際には「ダウン」していない場合に生じる（当業者に既知の）状況である。
このような状況は、データの損失および／またはＨＡクラスタの障害になる可能性がある。
ノード状態を正確に判断することは、「スプリットブレイン」が確実にＨＡクラスタに発生しないようにするのに重要である。
【００１７】
ＨＡクラスタでは、不稼動時間を以下の方程式によって表すことができる。
１年ごとの不稼働時間＝(num_unplanned_yr) * (ave_unplanned_switchover_time) + (num_planned_yr) * (ave_planned_switchover_time) + (num_failed_switchovers_yr) * (fail_recovery_time)
各要素は以下の定義を有する。
num_unplanned_yr＝ＨＡクラスタのノードが１年間に障害になる回数
ave_unplanned_switchover_time＝ＨＡクラスタが、計画されていないノード障害（すなわち、システムクラッシュまたはオペレーティングシステムのパニック）から「回復」する平均時間
num_planned_yr＝１年間に計画された不稼動時間イベントでノードが除去される回数
ave_planned_switchover_time＝ＨＡクラスタが、計画されたノードの除去から「回復」する平均時間
num_failed_switchovers_yr＝切り換えの試行が「失敗」し、クラスタまたは重要なアプリケーションがクラッシュする回数
fail_recovery_time＝ＨＡクラスタが、失敗した切り換えから「回復」する平均時間
上記要素のいずれかの値を低減することは、ＨＡクラスタの稼動時間に貢献する。
上記要素のすべてまたはほとんどは、クラスタのあらゆる所与のノードの現在の状態を正確かつ高速に判断するクラスタの能力、および、適切な動作で現在の状態に対処するクラスタの能力によって影響を受けることが分かる。
【００１８】
本出願の開示は、従来の手法に関する問題および不都合のいくつかに取り組む。
第１に、ノード障害の「誤った」検出の回数が削減される。
これによって、num_unplanned_yrが削減される。
第２に、いくつかの計画されていない障害を計画された切り換えに移行させるのに、予測手段（劣化ステータス信号）が使用される。
さらに、切り換えの失敗は、通常、計画されていない（制御されていない）状況下で発生するので、これは、num_failed_switchovers_yrも削減する。
第３に、ノード障害を検出する時間を削減することによって、ave_unplanned_switchover_timeが削減される。
最後に、本発明は、ノードがダウンしている可能性があるように見える時に、ノードステータスを高速かつ正確に２重（または３重）にチェックするメカニズムを組み込んでいるので、非常に有害な「スプリットブレイン」の状況が回避される。
【００１９】
図２は、本発明の一実施の形態による代表的な高可用性クラスタ２００を示す概略図である。
この図には、４つのノード２０２が示されているが、本発明の範囲内において、さまざまな個数のノードを使用することができる。
【００２０】
ネットワーク１０４を介したノード間通信に加えて、別個の通信チャネルを経由して、ステータス情報の独立したノード間通信が可能にされる。
図示するように、この別個の通信チャネルは、例えば、各ノードの追加された信号ハードウェア回路部２０４を利用して、例示のリングトポロジーのポイントツーポイントリンク２０６を提供する。
このリングトポロジーでは、各ノード２０２は、（図示した例では時計方向に向かって）当該リングにおける次のノード２０２に通信リンク２０６を介してステータス情報を送信することができ、当該リングにおける先行ノード２０２から別のリンク２０６を介してステータス情報を受信することができる。
利点として、ステータス情報用の追加チャネルを有するこのような構成によって、ノードステータスデータの高速かつ信頼性のある交換が可能になる。
【００２１】
一実施の形態では、クラスタレベルソフトウェアが各ノード２０２上で実行される。
各ノード２０２は、以下の資源をクラスタレベルソフトウェアに提供するように構成することができる。
ハードウェア資源は、１つまたは複数のプロセッサ、メモリシステム、ディスクベースまたは類似のデータストレージ、ノードを相互接続するネットワーク１０４へのインタフェース、およびノード間ステータス信号用の専用信号ハードウェア２０４を含む。
ソフトウェア資源は、以下のタスクを実行するルーチンを含む。
すなわち、本ノード２０２のステータスの更新および送信と、クラスタの別のノード２０２からのステータスデータの監視および解析と、監視されるノード２０２からのステータスデータに基づく適切な動作と、を実行するルーチンを含む。
ノードの計算サブシステムは、ミッションクリティカルなソフトウェアアプリケーションを実行している場合もあるし、実行していない場合もある。
ミッションクリティカルなアプリケーションが実行されている場合には、当該アプリケーションは、クラスタレベルソフトウェアの構成ファイバに列挙される。
【００２２】
一実施の形態では、ノードステータス信号は、以下のものを含むことができる。
すなわち、アップ／ダウンステータス信号と、劣化ステータス信号と、ハートビート信号とを含むことができる。
ハートビート信号は、従来通り、ネットワーク１０４を介して送信することができ、それによって、ＨＡクラスタのすべてのノードのハートビート情報がネットワーク１０４上に存在する。
アップ／ダウンステータス信号および劣化ステータス信号は、追加された信号ハードウェア２０４および独立した通信リンク２０６を介して別個に送受信することができる。
アップ／ダウンステータス信号について、アップ（すなわちＧＯＯＤ（良好））は、ノードが動作していることを示し、ダウン（すなわちＢＡＤ（不良））は、ノードが障害になっていることを示す。
劣化ステータス信号は、ＤＥＧＲＡＤＥＤ（劣化）状態およびＮＯＴ＿ＤＥＧＲＡＤＥＤ（非劣化）状態を有する２状態信号を含むことができる。
あるいは、劣化ステータス信号は複数の劣化レベルを含むこともできる。
【００２３】
図３は、本発明の一実施の形態によるノードのステータスを生成するプロセス３００を示すフローチャートである。
このプロセス３００は、クラスタの各アクティブノードで行われる。
【００２４】
各アクティブノードは、自身の現在のアップ／ダウンステータスを決定する（３０２）。
この決定は、本ノードにおけるメモリまたはディスクに記憶されたルールファイルのルールを適用することによって行うことができる。
アップ（すなわちＧＯＯＤ）ステータスは、そのノードが動作していることを示し、ダウン（すなわちＢＡＤ（不良））ステータスは、本ノードが障害になっていることを示す。
続いて、アップ／ダウンステータスデータは、本ノードから専用ハードウェアインタフェース２０４を通じてクラスタの次のノードに送出される（３０４）。
例えば、図２のトポロジーの場合、ノードＡ  ２０２Ａは、自身のアップ／ダウンステータスデータをノードＢ  ２０２Ｂに送信し、ノードＢ  ２０２Ｂは、自身のアップ／ダウンステータスデータをノードＣ  ２０２Ｃに送信し、ノードＣ  ２０２Ｃは、自身のアップ／ダウンステータスデータをノードＤ  ２０２Ｄに送信し、ノードＤ  ２０２Ｄは、自身のアップ／ダウンステータスデータをノードＡ  ２０２Ａに送信する。
【００２５】
また、各ノードは、自身のハートビート信号もクラスタに送信する（３０６）。
これは、ネットワーク１０４を介して従来通り行われる。
【００２６】
さらに、各アクティブノードは、自身の現在の劣化ステータス（またはレベル）も決定する（３０８）。
この決定は、本ノードにおけるメモリまたはディスクに記憶されたルールファイルのルールを適用することによって行うことができる。
例えば、劣化レベルは、複数ビット信号によって示すことができ、オール０は、障害になった（ダウンまたはＢＡＤ）ノードを示すことができ、オール１は、劣化が検出されなかったことを示し、非ゼロの値（いくつかが０で、いくつかが１）は、障害と非劣化との間の劣化レベルを示すことができる。
続いて、劣化ステータスデータは、本ノードから専用ハードウェアインタフェース２０４を通じてクラスタの次のノードに送出される（３１０）。
例えば、図２のトポロジーの場合、
ノードＡ  ２０２Ａは、自身の劣化ステータスデータをノードＢ  ２０２Ｂに送信し、
ノードＢ  ２０２Ｂは、自身の劣化ステータスデータをノードＣ  ２０２Ｃに送信し、
ノードＣ  ２０２Ｃは、自身の劣化ステータスデータをノードＤ  ２０２Ｄに送信し、
ノードＤ  ２０２Ｄは、自身の劣化ステータスデータをノードＡ  ２０２Ａに送信する。
【００２７】
続いて、プロセス３００は、最後のステップ３１０から最初のステップ３０２にループする。
プロセス３００のステップの例示の順序を示すが、同じ結果または類似の結果を有する順序の変形が可能である、ということに留意されたい。
【００２８】
図４は、本発明の一実施の形態によるクラスタ全体の管理プロセス４００を示すフローチャートである。
このプロセス４００は、本ノードで実行されるステップを含み、クラスタの先行ノードの管理に関係する。
例えば、ノードＢ  ２０２Ｂは、ノードＡ  ２０２Ａの管理に関係したステップを実行し、ノードＣ  ２０２Ｃは、ノードＢ  ２０２Ｂの管理に関係したステップを実行する。
他のノードについても同様である。
【００２９】
プロセス４００は、先行ノードの構成ファイルをその先行ノードから取り出し（４０２）、本ノードでその構成ファイルを記憶する（４０４）ことによってセットアップされる。
この構成ファイルは、先行ノードがクラスタから除去される場合に、先行ノードからフェイルオーバされる必要のあるアプリケーション（または複数のアプリケーション）等のさまざまな情報を含む。
【００３０】
セットアップのステップに続いて、以下のステップが実行される。
本ノードは、先行ノードの構成ファイルが最新のものである（すなわち、構成ファイルが最後に取り出されてから更新されていない）かどうかをチェックする（４０５）。
構成ファイルが最新でない場合には、プロセス４００は、ファイルを取り出す（４０２）ステップにループして戻る。
構成ファイルが最新である場合には、プロセス４００は以下のステップに進む。
【００３１】
ステップの１つは、ノード除去しきい値を設定する（４０６）ことを含む。
このノード除去しきい値は、クラスタシステムのルールセットから決定することができる。
このしきい値は、どの劣化レベルでノードをＨＡクラスタから事前に除去するかをシステムに示すものである。
しきい値は、ユーザが設定したり、変更したりすることができる。
また、しきい値は、ＨＡクラスタからすでに除去されたノードの個数に応じて変化することもある。
【００３２】
他のステップは、先行ノードから受信したさまざまな入力を読み出すことまたはチェックすることに関係するものである。
本ノードは、先行ノードから受信したアップ／ダウンステータス入力を読み出す（４０８）。
また、本ノードは、先行ノードから受信した劣化ステータス入力も読み出す（４１０）。
アップ／ダウンステータス信号と劣化ステータス信号の双方は、ノード間の専用通信リンクまたはケーブル２０６を介して受信することができる。
さらに、本ノードは、先行ノードから受信したハートビート入力もチェックする（４１２）。
ハートビート信号は、ノードを相互接続する従来のネットワーク１０４を経由して受信することができる。
【００３３】
本ノードは、これらのステータスに関係した入力を使用して論理解析４１４を行う。
この論理解析４１４は、例えば、先行ノードがアップであることを入力が示しているかどうか、先行ノードがダウンしている（障害である）ことを入力が示しているかどうか、および相互接続に問題があることを入力が示しているかどうかを判断する。
解析手順４１４の一実施の形態は、図５Ａおよび図５Ｂに関係して以下に説明する。
【００３４】
解析手順４１４から抜け出た後、先行ノードの除去が解析によって示されていたかどうかについての判断４１８が行われる。
先行ノードが除去される場合に、除去手順４２０が実行される。
除去手順４２０の一実施の形態は、図６に関係して以下に説明する。
先行ノードが除去されない場合、管理プロセス４００は、先行ノードの構成ファイルが更新されているかどうかについてのチェック４０５を行うステップにループして戻る。
【００３５】
図５Ａおよび図５Ｂは、本発明の一実施の形態による論理解析手順４１４を示すフローチャートである。
この図では、先行ノードからのアップ／ダウンステータス入力がＵＰ＿ＩＮとして表記され、先行ノードからの劣化ステータス入力がＤＥＧＲＡＤＥＤ＿ＩＮとして表記され、先行ノードからのハートビート入力がＨＥＡＲＴＢＥＡＴ＿ＩＮとして表記される。
ＵＰ＿ＩＮは、ＧＯＯＤまたはＢＡＤの２つの状態になることができる。
ＤＥＧＲＡＤＥＤ＿ＩＮは、ＢＡＤ状態、ＧＯＯＤ状態、およびＢＡＤとＧＯＯＤとの間の中間レベルを含む複数の劣化レベルになることができる。
ＨＥＡＲＴＢＥＡＴ＿ＩＮは、ＯＫまたはＢａｄのいずれかになることができる。
【００３６】
第１のケースでは、ＵＰ＿ＩＮ＝ＧＯＯＤであり、かつ、ＤＥＧＲＡＤＥＤ＿ＩＮ＝ＢＡＤでない（ＧＯＯＤまたは中間の或るレベル）であるとの判断５０２が行われる。
その場合、先行ノードはアップであると判断される（ただし、おそらく劣化している）。
続いて、ＨＥＡＲＴＢＥＡＴ＿ＩＮの状況がチェックされる（５０４）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝Ｂａｄであると、解析４１４は、ハートビート信号を正常に搬送するネットワーク接続がダウンしていると判断し、先行ノードへのネットワークがダウンしていることを報告する（５０６）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝ＯＫであると、このような報告は行われない。
いずれの場合にも、ＤＥＧＲＡＤＥＤ＿ＩＮのレベルがノード除去しきい値と比較される（５０８）。
劣化の量が除去しきい値未満であると、先行ノードの性能レベルは許容できるものである。
その場合、劣化レベルが報告され、解析手順は終了する（５１０）。
劣化の量が除去しきい値を上回ると、先行ノードの性能は、あまりにも不十分であり、クラスタで保持できないとみなされる。
その場合、先行ノードは「キル」され（５１２）、続いて、先行ノードの障害が示され、解析手順は終了する（５１４）。
【００３７】
第２のケースでは、ＵＰ＿ＩＮ＝ＧＯＯＤであり、かつ、ＤＥＧＲＡＤＥＤ＿ＩＮ＝ＢＡＤであるとの判断５１６が行われる。
続いて、ＨＥＡＲＴＢＥＡＴ＿ＩＮの状況がチェックされる（５１８）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝Ｂａｄであると、（ダウンしたノードを示す３つの入力のうちの２つにより）先行ノードの障害が示され、解析手順は終了する（５１４）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝ＯＫであると、先行ノードは正常に実行されているとみなされる。
その場合、（整合しない劣化入力により）ケーブルの問題が報告され、解析手順は終了する（５２０）。
【００３８】
第３のケースでは、ＵＰ＿ＩＮ＝ＢＡＤであり、かつ、ＤＥＧＲＡＤＥＤ＿ＩＮ＝ＢＡＤであるとの判断５２２が行われる。
この場合、これらのステータス入力の双方は、先行ノードがダウンしていることを示し、したがって、ハートビート入力が示すものは問題ではない。
この場合、障害が示され、解析手順は終了する（５２０）。
【００３９】
第４のケースでは、ＵＰ＿ＩＮ＝ＢＡＤであり、かつ、ＤＥＧＲＡＤＥＤ＿ＩＮ＝ＢＡＤでないとの判断５２４が行われる。
続いて、ＨＥＡＲＴＢＥＡＴ＿ＩＮの状況がチェックされる（５２６）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝Ｂａｄであると、（ダウンしたノードを示す３つの入力のうちの２つにより）先行ノードの障害が示され、解析手順は終了する（５１４）。
ＨＥＡＲＴＢＥＡＴ＿ＩＮ＝ＯＫであると、先行ノードは正常に実行されているとみなされる。
その場合、（整合しないアップ／ダウン入力により）ケーブルの問題が報告され（５２８）、ＤＥＧＲＡＤＥＤ＿ＩＮのレベルが、ノード除去しきい値と比較される（５０８）。
劣化の量が除去しきい値未満であると、先行ノードの性能レベルは許容できるものである。
その場合、劣化レベルが報告され、解析手順は終了する（５１０）。
劣化の量が除去しきい値を上回ると、先行ノードの性能は、あまりにも不十分であり、クラスタで保持できないとみなされる。
その場合、先行ノードは「キル」され（５１２）、続いて、先行ノードの障害が示され、解析手順は終了する（５１４）。
【００４０】
図６は、本発明の一実施の形態による除去手順４１８を示すフローチャートである。
解析４１４が先行ノードの障害を示したとき、この除去手順４１８に入る。
【００４１】
フェイルオーバされる必要のある先行ノードの１つまたは複数のアプリケーションについての判断６０２が行われる。
この情報は、例えば、本ノードに記憶された（４０４）上述した構成ファイルから取得することができる。
アップであり、かつ、実行されているクラスタのノードへの先行ノードからのこれらのアプリケーションに対して、フェイルオーバ６０４が実行される。
フェイルオーバが完了した後、ファイルオーバの成功が、クラスタの他のノードへ信号で伝達される（６０６）。
続いて、ＨＡクラスタは、先行ノードが除去された状態で実行される。
【００４２】
ノードがＨＡクラスタに追加（または再追加）されると、ノード加入（または再加入）手順を適用することができる。
この手順は以下の通りである。
独立したステータス通信用のケーブルが接続されていない場合、それらのステータス通信は、ＨＡクラスタ全体にわたって一時的に中断される。
換言すると、ＨＡクラスタは、ハートビートのみのモードに後退する。
次に、ケーブルが新たなノードに接続される。
続いて、ケーブルを介したステータス通信が、クラスタにおいて再開される。
加入または再加入するノードがブートすると、そのノードは、その専用ケーブル接続を通じてＧＯＯＤ信号の送出を開始する。
その時点で、次のノードのクラスタソフトウェアは、新たに追加されたノードをＨＡクラスタに再統合する。
【００４３】
上記開示は、高可用性クラスタのノードが、各ノードの現在の状態を高速かつ正確に判断して、クラスタの稼働時間を最大にするのに適した動作を実行する新規な技法を提供する。
各ノードからの３ステータスインジケータ（アップ／ダウン、劣化、およびハートビート）の使用によって、ＨＡクラスタの効率性（すなわち、稼働時間）の大幅な改善が可能になる。
【００４４】
上記説明では、本発明の実施の形態の十分な理解を提供するために、いくつかの具体的な細部が与えられている。
しかしながら、本発明の例示の実施の形態の上記説明は、網羅するためのものでもないし、開示した正確な形に本発明を限定するためのものでもない。
当業者は、具体的な細部の１つまたは２つ以上のものがなくても本発明を実施でき、他の方法、コンポーネント等によっても本発明を実施できることを理解しよう。
それ以外の場合には、既知の構造またはオペレーションは、本発明の態様を分かりにくくすることを回避するために、詳細に示されていないし、説明されていない。
当業者には分かるように、本発明の特定の実施の形態および例は、例示の目的で本明細書に説明され、さまざまな等価な変更が本発明の範囲内で可能である。
【００４５】
これらの変更は、上記詳細な説明に鑑み、本発明に対して行うことができる。
添付の特許請求の範囲に使用された用語は、明細書および特許請求の範囲に開示された特定の実施の形態に本発明を限定するものと解釈されるべきではない。
そうではなく、本発明の範囲は、添付の特許請求の範囲によって決定されるべきである。
特許請求の範囲は、特許請求の範囲の解釈の確立された原則に従って解釈されるべきである。
【図面の簡単な説明】
【００４６】
【図１】従来の高可用性クラスタを示す概略図である。
【図２】本発明の一実施の形態による代表的な高可用性クラスタを示す概略図である。
【図３】本発明の一実施の形態によるノードのステータスを生成するプロセスを示すフローチャートである。
【図４】本発明の一実施の形態によるクラスタ全体の管理プロセスを示すフローチャートである。
【図５Ａ】本発明の一実施の形態による論理解析手順を示すフローチャートである。
【図５Ｂ】本発明の一実施の形態による論理解析手順を示すフローチャートである。
【図６】本発明の一実施の形態による除去手順を示すフローチャートである。
【符号の説明】
【００４７】
１０４・・・ネットワーク，
２０２Ａ〜２０２Ｄ・・・ノードＡ〜ノードＤ，
２０４・・・信号ハードウェア，
【図１】
2005209201.tif 000003
【図２】
2005209201.tif 000004
【図３】
2005209201.tif 000005
【図４】
2005209201.tif 000006
【図５Ａ】
2005209201.tif 000007
【図５Ｂ】
2005209201.tif 000008
【図６】
2005209201.tif 000009