(57)【要約】      （修正有）【課題】複数ＩＰアドレスを持つクラスタリングコンピュータのネットワークインタフェースを自動試験すること。【解決手段】ベースアドレスに基づいて、インクリメントしたアドレスを自動生成し、それぞれのアドレスへモニタリングメッセージを送出して正常性を確認する。【選択図】  図３
2005045792.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードにグループ分けされる複数のネットワーク・インターフェースの機能をモニタリング・プロセスによってモニタするように該複数のネットワーク・インターフェースを構成する方法であって、
前記複数のネットワーク・インターフェースについてベース・アドレス及びサブネット・マスクを受信するステップと、
前記ベース・アドレス、前記サブネット・マスク、及び前記ノードに基づいて前記ネットワーク・インターフェースの各々についてモニタリング・アドレスを自動的に生成するステップであって、前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスが、当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように前記モニタリング・アドレスが生成される、ステップと、
前記モニタリング・プロセスによる使用のために、前記モニタリング・アドレスを前記ネットワーク・インターフェースに割り当てるステップであって、前記モニタリング・アドレスの各々がそれのネットワーク・インターフェースの追加ネットワーク・インターフェース・アドレスとして追加されることによって割り当てられる、ステップと
を含む方法。
【請求項２】
前記受信するステップは、ユーザから前記複数のネットワーク・インターフェースについてのベース・アドレス及びサブネット・マスクを受けるサブステップを含む、請求項１に記載の方法。
【請求項３】
前記ネットワーク・インターフェースの各々の接続性を決定するために、前記モニタリング・アドレスの各々にモニタリング・メッセージを送信するステップを含む、請求項１に記載の方法。
【請求項４】
前記割り当てるステップにおいて、前記モニタリング・アドレスの各々が、それのネットワーク・インターフェースのエイリアスＩＰアドレスとして加えられることによりＩＰエイリアシングを使用して割り当てられる、請求項１に記載の方法。
【請求項５】
前記自動的に生成するステップは、当該ノードに対するノード・インデックスに前記ベース・アドレスを加えることによって、各ノードにおける第１ネットワーク・インターフェースのためのモニタリング・アドレスを生成するサブステップを含む、請求項１に記載の方法。
【請求項６】
前記自動的に生成するステップは、更に、当該ノードに対するノード・インデックスを使用して、下式において各ノードにおける第２ネットワーク・インターフェースのためのモニタリング・アドレスを生成するサブステップを含む、請求項５に記載の方法。
((ネットワークＩＤ＋サブネット・インクリメント)ＡＮＤホストＩＤ)＋ノード・インデックス
なお、上式におけるネットワークＩＤ及びホストＩＤは前記ベース・アドレス及び前記サブネット・マスクに基づき、サブネット・インクリメントは前記サブネット・マスクに基づく。
【請求項７】
複数のノードにグループ分けされる複数のネットワーク・インターフェースの機能をモニタリング・プロセスによってモニタするように該複数のネットワーク・インターフェースを構成するためのコンピュータ命令を含むコンピュータ可読媒体であって、前記コンピュータ命令は、
前記複数のネットワーク・インターフェースについてのベース・アドレス及びサブネット・マスクを受信するステップと、
前記ベース・アドレス、前記サブネット・マスク、及び前記ノードに基づいて前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスを自動的に生成するステップであって、前記ネットワーク・インターフェースの各々についての前記モニタリング・アドレスが、当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように前記モニタリング・アドレスが生成される、ステップと、
前記モニタリング・プロセスによる使用のために、前記モニタリング・アドレスを前記ネットワーク・インターフェースに割り当てるステップであって、前記モニタリング・アドレスの各々がそれのネットワーク・インターフェースの追加ネットワーク・インターフェース・アドレスとして追加されることによって割り当てられる、ステップと
をコンピュータに遂行させるための命令を含む、コンピュータ可読媒体。
【請求項８】
前記受信するステップは、ユーザから前記複数のネットワーク・インターフェースについてのベース・アドレス及びサブネット・マスクを受けるサブステップを含む、請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記コンピュータ命令は、前記ネットワーク・インターフェースの各々の接続性を決定するために、前記モニタリング・アドレスの各々にモニタリング・メッセージを送信するステップを遂行するための命令を更に含む、請求項７に記載のコンピュータ可読媒体。
【請求項１０】
前記割り当てるステップにおいて、前記モニタリング・アドレスの各々が、それのネットワーク・インターフェースのエイリアスＩＰアドレスとして加えられることによりＩＰエイリアシングを使用して割り当てられる、請求項７に記載のコンピュータ可読媒体。
【請求項１１】
前記自動的に生成するステップは、当該ノードについてのノード・インデックスに前記ベース・アドレスを加えることによって、各ノードにおける第１ネットワーク・インターフェースのためのモニタリング・アドレスを生成するサブステップを含む、請求項７に記載のコンピュータ可読媒体。
【請求項１２】
前記自動的に生成するステップは、更に、当該ノードについてのノード・インデックスを使用して、下式において各ノードにおける第２ネットワーク・インターフェースのためのモニタリング・アドレスを生成するサブステップを含む、請求項１１に記載のコンピュータ可読媒体。
((ネットワークＩＤ＋サブネット・インクリメント)ＡＮＤホストＩＤ)＋ノード・インデックス
なお、上式におけるネットワークＩＤ及びホストＩＤは前記ベース・アドレス及び前記サブネット・マスクに基づき、サブネット・インクリメントは前記サブネット・マスクに基づく。
【請求項１３】
複数のネットワーク・インターフェースの機能をモニタし、障害リカバリを提供するための方法であって、前記ネットワーク・インターフェースは複数のノードにグループ分けされ、前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスが、当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように、前記モニタリング・アドレスが前記ネットワーク・インターフェースの各々に割り当てられ、
前記ネットワーク・インターフェースの機能を決定するために、前記モニタリング・アドレスを介して前記ネットワーク・インターフェースの各々にモニタリング・メッセージを周期的に送るステップと、
所定の期間内にモニタリング・メッセージが受信されない場合、前記ネットワーク・インターフェースの１つにおける１つ又はそれ以上のリカバリ・アドレスを使用して前記ネットワーク・インターフェースの１つについてリカバリ・オペレーションを遂行するステップと
を含み、前記ネットワーク・インターフェースの各々は、それのモニタリング・アドレスとは異なる１つ又はそれ以上のリカバリ・アドレスを割り当てられる、方法。
【請求項１４】
更に、前記ネットワーク・インターフェースについてのモニタリング・アドレスを自動的に生成するステップを含み、
前記自動的に生成するステップは、
当該ノードについてのノード・インデックスにベース・アドレスを加えることによって、各ノードにおける第１ネットワーク・インターフェースについてのモニタリング・アドレスを生成するサブステップと、
当該ノードについてのノード・インデックスを使用して、下式において各ノードにおける第２ネットワーク・インターフェースについてのモニタリング・アドレスを生成するサブステップとを含む、請求項１３に記載の方法。
((ネットワークＩＤ＋サブネット・インクリメント)ＡＮＤホストＩＤ)＋ノード・インデックス
なお、上式におけるネットワークＩＤ及びホストＩＤは前記ベース・アドレス及び前記サブネット・マスクに基づき、サブネット・インクリメントは前記サブネット・マスクに基づく。
【請求項１５】
前記遂行するステップは、
前記所定期間内にモニタリング・メッセージが受信されない場合、前記ネットワーク・インターフェースの１つにおけるモニタリング・アドレスと共に障害通知を送るサブステップと、
前記障害通知におけるモニタリング・アドレスに基づいてリカバリされるべき１つ又はそれ以上のリカバリ・アドレスを決定するサブステップと、
前記１つのネットワーク・インターフェースの１つ又はそれ以上のリカバリ・アドレスを使用して前記ネットワーク・インターフェースの１つについてのリカバリ・オペレーションを遂行するサブステップと
を含む、請求項１３に記載の方法。
【請求項１６】
複数のネットワーク・インターフェースの機能をモニタし、障害リカバリを提供するためのコンピュータ命令を含むコンピュータ可読媒体であって、前記ネットワーク・インターフェースは複数のノードにグループ分けされ、前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスが、当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように、前記モニタリング・アドレスが前記ネットワーク・インターフェースの各々に割り当てられ、前記コンピュータ命令は、
前記ネットワーク・インターフェースの機能を決定するために、前記モニタリング・アドレスを介して前記ネットワーク・インターフェースの各々にモニタリング・メッセージを周期的に送るステップと、
所定の期間内にモニタリング・メッセージが受信されない場合、前記ネットワーク・インターフェースの１つにおける１つ又はそれ以上のリカバリ・アドレスを使用して前記ネットワーク・インターフェースの１つについてのリカバリ・オペレーションを遂行するステップと
を遂行するための命令を含み、前記ネットワーク・インターフェースの各々は、それのモニタリング・アドレスとは異なる１つ又はそれ以上のリカバリ・アドレスを割り当てられる、コンピュータ可読媒体。
【請求項１７】
前記コンピュータ命令は、更に、前記ネットワーク・インターフェースについてのモニタリング・アドレスを自動的に生成するステップを含み、
前記自動的に生成するステップは、
当該ノードについてのノード・インデックスにベース・アドレスを加えることによって、各ノードにおける第１ネットワーク・インターフェースについてのモニタリング・アドレスを生成するサブステップと、
当該ノードについてのノード・インデックスを使用して、下式において各ノードにおける第２ネットワーク・インターフェースについてのモニタリング・アドレスを生成するサブステップとを含む、請求項１６に記載のコンピュータ可読媒体。
((ネットワークＩＤ＋サブネット・インクリメント)ＡＮＤホストＩＤ)＋ノード・インデックス
なお、上式におけるネットワークＩＤ及びホストＩＤは前記ベース・アドレス及び前記サブネット・マスクに基づき、サブネット・インクリメントは前記サブネット・マスクに基づく。
【請求項１８】
前記遂行するステップは、
前記所定期間内にモニタリング・メッセージが受信されない場合、前記ネットワーク・インターフェースの１つにおけるモニタリング・アドレスと共に障害通知を送るサブステップと、
前記障害通知におけるモニタリング・アドレスに基づいてリカバリされるべき１つ又はそれ以上のリカバリ・アドレスを決定するサブステップと、
前記１つのネットワーク・インターフェースの１つ又はそれ以上のリカバリ・アドレスを使用して前記ネットワーク・インターフェースの１つについてのリカバリ・オペレーションを遂行するサブステップと
を含む、請求項１６記載のコンピュータ可読媒体。
【請求項１９】
複数のノードにグループ分けされた複数のネットワーク・インターフェースと、
前記ネットワーク・インターフェースの機能をモニタするためのモニタリング・ユニットと、
ベース・アドレス、サブネット・マスク、及び前記ノードに基づいて前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスを自動的に生成するための手段であって、前記ネットワーク・インターフェースの各々についてのモニタリング・アドレスが、当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように前記モニタリング・アドレスが生成される、手段と、
前記モニタリング・ユニットによる使用のために、前記モニタリング・アドレスを前記ネットワーク・インターフェースに割り当てるための手段であって、前記モニタリング・アドレスの各々がそれのネットワーク・インターフェースの追加ネットワーク・インターフェース・アドレスとして追加されることによって割り当てられる、手段と
を含む、システム。
【請求項２０】
前記自動的に生成するための手段は、当該ノードについてのノード・インデックスに前記ベース・アドレスを加えることによって、各ノードにおける第１ネットワーク・インターフェースのためのモニタリング・アドレスを生成する、請求項１９に記載のシステム。
【請求項２１】
前記自動的に生成するための手段は、更に、当該ノードに対するノード・インデックスを使用して、下式において各ノードにおける第２ネットワーク・インターフェースのためのモニタリング・アドレスを生成する、請求項２０に記載のシステム。
((ネットワークＩＤ＋サブネット・インクリメント)ＡＮＤホストＩＤ)＋ノード・インデックス
なお、上式におけるネットワークＩＤ及びホストＩＤは前記ベース・アドレス及び前記サブネット・マスクに基づき、サブネット・インクリメントは前記サブネット・マスクに基づく。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して云えば、クラスタ・マルチプロセシングの分野に関し、更に詳しく言えば、クラスタ・コンピュータのアベイラビリティに関するモニタリングに関するものである。
【背景技術】
【０００２】
クラスタリング・サーバは、データへの並行アクセスを可能にし、ビジネス・クリティカルなアプリケーションにとって必要な冗長性及び障害回復力の提供を援助し得る。米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ（ＩＢＭ）社によって提供されるハイ・アベイラビリティ・クラスタ・マルチプロセシング（High Availability Cluster Multi-Processing : ＨＡＣＭＰ）のようなクラスタリング・アプリケーションは、高い生産性のある方法でクラスタをインストールし、構成し、且つ管理することを援助するためのツールを提供する。ＨＡＣＭＰは、データ・アクセス機能及びバックアップ機能を提供する場合に使用するためのクラスタ化されたコンピュータ・リソース（例えば、主幹業務のデータベース）のモニタリング及びリカバリを行う。ＨＡＣＭＰは、アプリケーション・リカバリ／リスタートが冗長性を通してビジネス・クリティカルなアプリケーションについて保護を提供するようにサーバ・クラスタが構成されることを可能にする。
【０００３】
ＩＢＭ社によって提供されるリライアブル・スケーラブル・クラスタ・テクノロジ（Reliable Scalable Cluster Technology : ＲＳＣＴ）などのクラスタ・モニタリング・アプリケーションは、ＴＣＰ／ＩＰベースのコンピュータ・ネットワークのためのエラー検出を提供する。ＲＳＣＴは、高レベルのリカバリ機能を提供するためにＨＡＣＭＰにより使用可能なクラスタリング・インフラストラクチャである。ＲＳＣＴは、ハートビート・メッセージとして知られているメッセージを、ネットワークに接続された各ネットワーク・インターフェースを介して伝送する。ハートビート・メッセージが、最早、或る特定のネットワーク・インターフェースを介して受信されないとき、そのネットワーク・インターフェースは死んだ、或いは、接続されてないと見なされる。ハートビート・テクノロジは、ＲＳＣＴが特定のネットワーク・インターフェースを介してハートビート・メッセージを送ることができることを必要とする。このために、各ネットワーク・インターフェースについてのＩＰアドレスは、オペレーティング・システムのＩＰ層が、常に、所望のネットワーク・インターフェースにハートビート・メッセージを送るよう所定の要件に適合しなければならない。ハートビート・テクノロジの要件の１つは、１つのノードにおける各ネットワーク・インターフェースがそのノードにおける他のすべてのネットワーク・インターフェースとは異なるサブネット上になければならないということである。
【０００４】
更に詳しく言えば、メッセージが或るアドレスに送られるとき、ＩＰ層は、そのメッセージをネットワーク・インターフェースに、宛先アドレス及びそのネットワーク・インターフェースの構成に基づいて、経路指定する。これは、「サブネット・ルーティング」として知られており、ルーティング層がメッセージをその特定のネットワーク・インターフェースに送るように、関連のアドレスが適正なサブネットにおいて編成されなければならない。さもないと、同じノード上の２つのアドレスが同じサブネットにある場合、ルーティング機能はいずれのネットワーク・インターフェースを介しても（例えば、常に一方のインターフェース又は他方のインターフェースを使用することによって、或いは、それらインターフェースを交互に使うことによって）メッセージを送ることができ、従って、ハートビート機能は個々のネットワーク・インターフェースをモニタすることができない。
【０００５】
このアドレス要件は、複雑な又は大規模なネットワークが関連するときに１つの困難を生じる。例えば、今や普通である、１つのノード当たり８個又はそれ以上のネットワーク・インターフェースがある場合、多くのサブネットが供給されなければならない。手操作で適正なサブネット・レンジを割り当て且つアドレスを維持することは、特に、如何なるネットワーク変更又は保守にとっても重要である。更に、これは、ＲＳＣＴソフトウェアが個々のネットワーク・インターフェース機能の正確な決定を行うことができるようにする唯一の要件である。
【０００６】
ＨＡＣＭＰソフトウェアは、ネットワーク・インターフェースをモニタするためにＲＳＣＴを使用し、障害に応答してネットワーク・インターフェース間でネットワーク・アドレスを移動させることによりネットワーク・アドレスの「高いアベイラビリティ」を提供する。ネットワーク・アドレスをバックアップ・ネットワーク・インターフェースに移動させるというプロセスは、「リカバリ（recovery）」として知られている。ＨＡＣＭＰのユーザは、ＨＡＣＭＰがリカバリ機能を適正に遂行できるように、ネットワークに接続されたネットワーク・インターフェース及び対応するネットワーク・アドレスのリストのようなネットワークに関する所定の情報をＨＡＣＭＰに提供しなければならない。
【０００７】
現在、ＨＡＣＭＰは、上記のネットワーク情報を、ハートビート機能において使用するためにＲＳＣＴに送る。この構成に伴なう欠点は、ハートビート機能を適正に遂行するために、ネットワーク・アドレス及びネットワーク・インターフェースが、別のサブネットに設けられるべき各ノードにおいて各ネットワーク・インターフェース・アドレスを必要とするというような所定のルールに適合しなければならないということである。しかし、これらのルールは、リカバリ機能に関しては必ずしも必要ではない。それにもかかわらず、それらがハートビート機能にとっては必要であるので、ユーザは、それらがハートビート機能についての要件に適合するように、リカバリのためのネットワーク・インターフェース・アドレスを定義しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、上記の問題点を克服するという要求が存在し、特に、クラスタにおけるコンピュータのアベイラビリティをより効率的にモニタするための方法についての要求が存在する。
【課題を解決するための手段】
【０００９】
簡単に言うと、本発明によれば、ネットワーク・インターフェースがノードにグループ分けされる場合、ネットワーク・インターフェースの機能をモニタするためのネットワーク・インターフェースを構成するシステム、方法、及びコンピュータ可読媒体が開示される。この方法によれば、ネットワーク・インターフェースについてのベース・アドレス及びサブネット・マスクが受信され、ベース・アドレス、サブネット・マスク、及びノードに基づいて各ネットワーク・インターフェースについてのモニタリング・アドレスが自動的に生成される。モニタリング・アドレスは、各ネットワーク・インターフェースについてのモニタリング・アドレスが、そのネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネットにあるように生成される。更に、モニタリング・アドレスは、モニタリング・プロセスによる使用のためにネットワーク・インターフェースに割り当てられ、各モニタリング・アドレスは、そのネットワーク・インターフェースの追加ネットワーク・インターフェース・アドレスとして追加されることによって割り当てられる。
【００１０】
更に、ネットワーク・インターフェースの機能をモニタし、障害リカバリを行うための方法が開示される。ネットワーク・インターフェースは複数のノードにグループ分けされ、モニタリング・アドレスは、各ネットワーク・インターフェースについてのモニタリング・アドレスが当該ネットワーク・インターフェースと同じノードにおける他のすべてのネットワーク・インターフェースについてのモニタリング・アドレスとは異なるサブネット上にあるように、各ネットワーク・インターフェースに割り当てられる。この方法によれば、ネットワーク・インターフェースの機能を決定するために、そのモニタリング・アドレスを介して各ネットワーク・インターフェースに、モニタリング・メッセージが周期的に送られる。所定の期間内にモニタリング・メッセージが全く受信されなかった場合、ネットワーク・インターフェースの１つについて、そのネットワーク・インターフェースの１つにおける１つ又はそれ以上のリカバリ・アドレスを使用して、リカバリ・オペレーションが遂行される。ネットワーク・インターフェースの各々は、各々がそれのモニタリング・アドレスとは異なる１つ又はそれ以上のリカバリ・アドレスを割り当てられる。
【００１１】
従って、本発明の好適な実施例は、クラスタ・コンピュータ環境においてネットワーク・インターフェースへのモニタリング・アドレスのシームレス割り振りを可能にする。ユーザは、いずれのモニタリング・アドレス要件にも関係なくベース・アドレスをネットワーク・インターフェースに割り振ることができる。その後、モニタリング・アドレスがモニタリング・プロセスのアドレス要件に適合することによって静的モニタリング・アドレスがネットワーク・インターフェースに自動的に割り振られる。
【００１２】
本発明の上記及び他の特徴及び利点は、添付図面に示される本発明の好適な実施例に関する以下の詳細な説明から明らかであろう。
【発明を実施するための最良の形態】
【００１３】
１．概要
本発明は、好適な実施例によれば、ネットワーク・インターフェース及びコンピュータを構成及びモニタするための効率的且つ実施し易い方法を提供することによって上記の問題点を克服する。
【００１４】
本発明の利点の１つは、モニタするためのネットワーク・インターフェース・アドレスを自動的に構成し且つ管理するための方法を提供することである。本発明は、モニタするためのネットワーク・インターフェース・アドレスを自動的に生成する。本発明のもう１つの利点は、生成されたネットワーク・インターフェース・アドレスがモニタリング・プロセスの要件に適合することを保証されることである。従って、ユーザは、基礎となるモニタリング・テクノロジ及びモニタリング・プロセスのためのネットワーキング要件を理解する必要がない。
【００１５】
本発明の更にもう１つの利点は、ネットワーク・インターフェースがリカバリ・アドレス（即ち、リカバリ中に使用されるネットワーク・インターフェース・アドレス）とは別であることである。それは、リカバリ・アドレスが、モニタリング・プロセスによる使用のための厳しい要件に従う必要がないためである。ユーザは、リカバリ・プロセスを理解する必要があるだけである。もう１つの利点は、ユーザが、モニタリング・プロセス及びリカバリ・プロセスを使用するために既存のネットワーク・トポロジを変更する必要がないことである。既存のネットワーク環境においてモニタリング・プロセスを実施するユーザは、それがモニタリング・プロセスについての要件に適合しなくても、既存のネットワーク・トポロジを変更する必要がない。
【００１６】
本発明の更にもう１つの利点は、リカバリ中のネットワーク・インターフェース・アドレスの管理が非常に簡略化されることである。一般的なネットワーク・インターフェースＩＰアドレス・リカバリの場合、リカバリ・プロセスは、ネットワーク・インターフェース・アドレスにおける如何なる変更もモニタリング・プロセスに伝えなければならず、或いは、モニタリング・プロセスは、リカバリのためのアドレス変更を、ネットワーク・インターフェース障害として解釈するであろう。一般に、モニタリング・プロセスは、ネットワーク・インターフェース間で移動するときのネットワーク・インターフェース・アドレスの変化を追跡しなければならないけれども、リカバリ・アドレスとモニタリングのためのネットワーク・インターフェース・アドレスとの分離は調整を簡単にする。モニタリングのためのネットワーク・インターフェース・アドレスはネットワーク・インターフェースにとって不変であり、従って、モニタリング・プロセスは、最早、アダプタ間のネットワーク・インターフェース・アドレスの移動を追跡する必要がない。これは、システムの全体的な効率を改善する。
【００１７】
図１は、一般的なコンピュータ・クラスタのシステム・アーキテクチャを示すブロック図である。本願において開示される本発明の実施例は、このようなシステム・アーキテクチャを使用する。アベイラビリティ・ユニット１０２は、ネットワーク１０６上のクラスタにおけるコンピュータ１０８乃至１１０のためのアベイラビリティ及びリカバリ機能（リカバリ・プロセスのような）を提供する。ＩＢＭ社のＨＡＣＭＰ製品は、アベイラビリティ・ユニット１０２の一例である。モニタ・ユニット１０４は、ネットワーク１０６上のクラスタにおけるコンピュータ１０８乃至１１０についてモニタリング機能（モニタリング・プロセスのような）を提供する。ＩＢＭ社のＲＳＣＴ製品は、モニタ・ユニット１０４の一例である。図１には２つのコンピュータ１０８及び１１０しか示されていないけれども、好適な実施例では、アベイラビリティ・ユニット１０２及びモニタ・ユニット１０４は３２個までのコンピュータ１０８乃至１１０（又は、ノード）のクラスタをサポートする。本発明の更なる実施例では、任意の数のクラスタ・コンピュータ１０８乃至１１０がサポートされる。
【００１８】
本発明のいくつかの実施例において、アベイラビリティ・ユニット１０２、モニタ・ユニット１０４、及びコンピュータ１０８乃至１１０のコンピュータ・システムは、１つ又はそれ以上のパーソナル・コンピュータ（ＰＣ）（例えば、Microsoft(R) Windows(R) オペレーティング・システムを実行するＩＢＭ又はコンパチブルＰＣワークステーション、Mac OS オペレーティングを実行するMacintosh コンピュータ、又はそれらの同等物）、パーソナル・ディジタル・アシスタント（ＰＤＡ）、ゲーム・コンソール、又は他の任意の情報処理装置を含む。更に、或る実施例では、アベイラビリティ・ユニット１０２、モニタ・ユニット１０４、及びコンピュータ１０８乃至１１０のコンピュータ・システムは、サーバ・システム（例えば、Solarisオペレーティング・システムを実行する SUN Ultra ワークステーション、又は AIX オペレーティング・システムを実行する IBM RS/6000 ワークステーション及びサーバ）を含む。好適な実施例では、アベイラビリティ・ユニット１０２及びモニタ・ユニット１０４は、クラスタのコンピュータ１０８乃至１１０の１つにおいて、又はネットワーク１０６に接続された１つ又はそれ以上の更なるコンピュータにおいて実行されるプロセスである。アベイラビリティ・ユニット１０２、モニタ・ユニット１０４、及びコンピュータ１０８乃至１１０のコンピュータ・システムは、図７に関連して更に詳細に後述される。
【００１９】
好適な実施例では、ネットワークは、インターネット・プロトコル（即ち、ＩＰ）を利用するパケット交換ネットワークである。パケット交換ネットワークは、グローバル・インターネットのような広域ネットワーク（ＷＡＮ）、プライベートＷＡＮ、ローカル・エリア・ネットワーク（ＬＡＮ）、通信ネットワーク、又は上記ネットワークの任意の組み合わせである。更なる実施例では、任意のプロトコルが使用可能であり、ネットワークは、有線ネットワーク、無線ネットワーク、放送網、Point-to-Point ネットワーク、又は回線交換ネットワーク（例えば、公衆サービス電話網）であってもよい。
【００２０】
図２は、図１のコンピュータ・クラスタの一部分に関する更に詳細なブロック図である。図２は、ネットワーク１０６に接続された図１のコンピュータ１０８及び１１０を示す。図示のように、この実施例では、コンピュータ１０８は、３つのネットワーク・インターフェース・アダプタ２１１、２１３、及び２１５を介してネットワーク１０６に接続される。同様に、コンピュータ１１０は、３つのネットワーク・インターフェース・アダプタ２２１、２２３、及び２２５を介してネットワーク１０６に接続される。ＮＩＣと略記されることが多いネットワーク・インターフェース・アダプタは、拡張ボード、ＰＣＭＣＩＡカード、組込みデバイス、或いは、コンピュータをネットワーク１０６とインターフェースするようにコンピュータに結合された他の何らかのモジュールである。ほとんどのＮＩＣは、特定のタイプのネットワーク、プロトコル、及び媒体用に設計されるが、或るものは、複数のネットワークのために働くことができる。ＮＩＣの一例は、ＴＣＰ／ＩＰプロトコルを使用してコンピュータをネットワークに接続するためのイーサネット（登録商標）・アダプタである。本明細書では、用語「ネットワーク・インターフェース」が、「ネットワーク・インターフェース・アダプタ」、「アダプタ」、「ネットワーク・インターフェース・カード」、及び「ＮＩＣ」と相互交換可能に使用される。
【００２１】
コンピュータ１０８及び１１０は、クラスタのノードである。従って、ネットワーク・インターフェースは、クラスタの複数ノードにグループ分けされる。例えば、ネットワーク・インターフェース２１１、２１３、及び２１５は第１ノード１０８にグループ分けされ、一方、ネットワーク・インターフェース２２１、２２３、及び２２５は第２ノード１１０にグループ分けされる。図２に示された実施例は、ノード（又は、コンピュータ）当たり３つのネットワーク・インターフェースを１つのネットワークに接続されているけれども、本発明の更なる実施例は、ノード当たり任意の数のネットワーク・インターフェース、種々のノードについての種々の数のネットワーク・インターフェース、及び任意の数のネットワークに接続されたネットワーク・インターフェースを持つことができる。望ましくは、各ノードは、リカバリ・オペレーションのために必要な冗長性を与えるために、各ネットワークに接続される少なくとも２つのネットワーク・インターフェースを有する。更に、図２は２つのノードしか示していないけれども、本発明は任意の数のノードをサポートする。
【００２２】
２．モニタリングのためのネットワーク構成
図３は、本発明の一実施例の全体的なオペレーション及びコントロール・フローを示すフローチャートである。図３のオペレーション及びコントロール・フローは、本発明の初期設定プロセス、ネットワーク・インターフェース・アドレス生成プロセス、及びネットワーク・インターフェース・モニタリング・プロセスを示す。図３のオペレーション及びコントロール・フローは、ステップ３０２でもって開始し、そしてステップ３０４に直接に進む。
【００２３】
ステップ３０４において、初期設定情報が指定される。初期設定情報は、ベース・インターネット・プロトコル（ＩＰ）アドレス、サブネット・マスク、及びクラスタにおけるすべてのネットワーク・インターフェースの論理名のリストのような情報を含む。ＩＰアドレス（小数点によって分離された０から２５５までの範囲にある４つの数のセット）はネットワーク識別子（即ち、ネットワークＩＤ）及びコンピュータ（又は、ホスト）識別子（即ち、ホストＩＤ）を含む。
【００２４】
サブセット・マスク（小数点によって分離された０から２５５までの範囲にある４つの数のセット）は、ＩＰアドレスのネットワークＩＤ部分及びホストＩＤ部分を分離するために使用可能な０及び１のストリングである。例えば、サブネット・マスクとの論理的ＡＮＤは、ネットワークＩＤを生じるようにＩＰアドレスのホストＩＤ部分を０に変換させる。しばしば使用されるサブネット・マスクは、「２５５.２５５.２５５.０」である。なお、２５５は、８個の１から成る２進数ストリングに等価の１０進数である。この「２５５.２５５.２５５.０」サブネット・マスクは、２５５個までのホスト・コンピュータのサブネットでもってホストＩＤを決定するために使用可能である。
【００２５】
クラスタにおけるすべてのネットワーク・インターフェースの論理名のリストは、オペレーティング・システムによってネットワークにおける各コンピュータ又はデバイスに割り当てられた論理名を含む。ネットワークにおける各コンピュータ又はデバイスに割り当てられた論理名のリストの一例は、en0、en1、en2、等を含む。
【００２６】
本発明の一実施例において、ステップ３０４は、アベイラビリティ・ユニット１０２又はモニタ・ユニット１０４によってストアされたストア済み初期設定情報の読み取りを含む。本発明の別の実施例では、ステップ３０４は、ユーザが初期設定情報を指定することを可能にするためにグラフィカル・ユーザ・インターフェースを設けることを含む。この実施例は、図４に関連して更に詳細に後述される。更なる実施例では、初期設定情報は、自動検出及び（又は）ユーザ入力を通して指定される。例えば、或る実施例では、アベイラビリティ・ユニット１０２は、ユーザがネットワーク・インターフェースのリストを明示的に指定する必要がないよう、使用可能なネットワーク・インターフェースの或る構成ディスカバリを行う。ユーザは、生成されたリストを受容するか又は修正することができ、しかる後、ベースＩＰアドレス及びサブネット・マスクのような更なる情報を指定することができる。
【００２７】
ステップ３０６において、コンピュータのネットワーク又はクラスタ（図１及び図２に示されるような）はモニタ・ユニット１０４によってモニタするように構成される。このステップは、ステップ３０４の初期設定情報に基づいてクラスタにおける各ネットワーク・インターフェースについてネットワーク・インターフェース・アドレスを生成することを含む。このステップは、更に、モニタ・ユニット１０４によってモニタするために各ネットワーク・インターフェースにネットワーク・インターフェース・アドレスを自動的に割り当てることを含む。ステップ３０６のプロセスは、図５に関連して更に詳細に後述される。
【００２８】
ステップ３０８において、ネットワーク１０６のコンピュータ１０８乃至１１０は接続性に関してモニタされる。これは、一般に、各ネットワーク・インターフェースを介してクラスタのノード間でモニタリング・メッセージを伝送することを含む。そのようなモニタリング・メッセージの受信又は非受信に基づいて、各ネットワーク・インターフェースの機能（即ち、接続性ステータス）が決定される。ステップ３０８のモニタリング・プロセスは、図６及び図７に関連して更に詳細に後述される。
【００２９】
ステップ３１０において、図１及び図２のクラスタが、モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するように修正されたかどうかが決定される。クラスタの修正は、ベースＩＰアドレスの変更、サブネット・マスクの変更、及びノード又はネットワーク・インターフェースの排除又は追加を含む多くの形式をとることができる。
【００３０】
モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するようにクラスタが修正された場合、コントロールはステップ３０４に戻り、初期設定情報が再指定され、クラスタがステップ３０６において再構成される。モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するようにクラスタが修正されなかった場合、コントロールはステップ３１２に進み、各ネットワーク・インターフェースが応答しようとしているかどうかをモニタ・ユニット１０４が決定する。モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するようなクラスタの修正が更に詳細に後述される。
【００３１】
ステップ３１２において、モニタ・ユニット１０４は、いずれかのネットワーク・インターフェースが応答しようとしていないかどうかを決定する。ネットワーク・インターフェースをモニタし且つネットワーク・インターフェースが応答しようとしていないかどうかを決定するプロセスは、図６及び図７に関連して更に詳細に後述される。いずれかのネットワーク・インターフェースが応答しようとしていないことをモニタ・ユニット１０４が決定する場合、コントロールはステップ３１４に進む。すべてのネットワーク・インターフェースが応答しようとしていることをモニタ・ユニット１０４が決定する場合、コントロールはステップ３０８に戻る。
【００３２】
ステップ３１４において、アベイラビリティ・ユニット１０２は、いずれかの使用可能でないネットワーク・インターフェースのためにリカバリ手順を開始及び遂行するように移行する。そのようなリカバリ機能は、１つ又はそれ以上のネットワーク・インターフェースが応答しようとしていないときにシステムがリカバリすることを可能にする。リカバリは、非応答性ネットワーク・インターフェースから他の応答性ネットワーク・インターフェースへの通信を再経路指定することを含む。従って、ビジネス・クリティカルなアプリケーションが必要な継続的無中断アベイラビリティを備えることが可能である。このために、アベイラビリティ・ユニット１０２は、影響を受けた通信回線を、非応答性ネットワーク・インターフェースから他のネットワーク・インターフェース（同じコンピュータ上の又は同じクリティカル・データ又はアプリケーションを提供するミラー・コンピュータ上のネットワーク・インターフェース）にスイッチする。例えば、影響を受けたベース・アドレス又はサービス・アドレス（即ち、ネットワーク・クライアントがサーバ上のアプリケーションをアクセスするときに介するアドレス）は、他のネットワーク・インターフェースを介して通信を再経路指定するために新たなネットワーク・インターフェースに移動し得る。ＨＡＣＭＰソフトウェアは、そのようなアベイラビリティ・ユニットのリカバリ及びリスタート機能を含む。図３に戻ると、ステップ３１４の後に、コントロールはステップ３０８に戻る。
【００３３】
従って、本発明の前述の実施例は、クラスタ環境においてネットワーク・インターフェースにモニタリング・アドレスをシームレス割り振りすることを可能にする。そのような実施例は、ユーザがモニタリング・プロセスの如何なる要件も考慮することなくベース・アドレスをネットワーク・インターフェースに割り振ることを可能にする。続いて、静的モニタリング・アドレスがネットワーク・インターフェースに割り振られる。そのモニタリング・アドレスはモニタリング・プロセスのアドレス要件に適合している。
【００３４】
図４は、本発明の一実施例の初期設定プロセスのオペレーション及びコントロール・フローを示すフローチャートである。図４は、図３のステップ３０４において説明された機能に関する更なる詳細を提供する。図４のオペレーション及びコントロール・フローは、初期設定情報がインターフェース・アドレス生成プロセスにおけるその後の使用のために一様化（assimilate）される初期設定プロセスを示す。図４のオペレーション及びコントロール・フローはステップ４０２で開始し、ステップ４０４に直接に進む。
【００３５】
ステップ４０４において、ベース・インターネット・プロトコル（ＩＰ）アドレス、サブネット・マスク、及びクラスタにおけるすべてのインターフェースの論理名のリストのような情報を含む初期設定情報を入力するために、グラフィカル・ユーザ・インターフェースがアベイラビリティ・ユニット１０２によってユーザに提供される。それとは別の方法として、ステップ４０４のグラフィカル・ユーザ・インターフェースがモニタ・ユニット１０２或いは別のユニット又はシステムによって提供されることも可能である。ステップ４０６において、ユーザがグラフィカル・ユーザ・インターフェースに初期設定情報を入力又は提供する。
【００３６】
ステップ４０８において、アベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）がグラフィカル・ユーザ・インターフェースに入力された初期設定情報を読み取り及びストアする。初期設定情報は、図５に関連して更に詳細に後述されるインターフェース・アドレス生成プロセスにおけるその後の使用のために一様化される。ステップ４１０において、図４のコントロール・フローが終了する。
【００３７】
図５は、本発明の一実施例におけるネットワーク・インターフェース・アドレス構成プロセスのオペレーション及びコントロール・フローを示すフローチャートである。図５は、図３のステップ３０６において説明された機能に関する更なる詳細を提供する。図５のオペレーション及びコントロール・フローは、モニタリング・プロセスにおいて使用するためのネットワーク・インターフェース・アドレス（即ち、モニタリング・アドレス）を計算するプロセスを示す。図５のオペレーション及びコントロール・フローはステップ５０２でもって開始し、ステップ５０４に直接に進む。
【００３８】
ステップ５０４において、ステップ３０４で指定された初期設定情報（即ち、ベースＩＰアドレス、サブネット・マスク、及びクラスタにおけるすべてのネットワーク・インターフェースの論理名のリスト）がアベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）によって読み取られる。ステップ５０６において、そのリストにおけるネットワーク・インターフェースがアベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）によって論理インターフェース名及びノード・オーダでソートされる。
【００３９】
ステップ５０８において、ネットワーク・インターフェースのネットワークＩＤ及びホストＩＤが、ベースＩＰアドレス及びサブネット・マスクに基づいてアベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）によって計算される。そのベース・アドレスのネットワークＩＤ部分は、ベース・アドレスとサブネット・マスクとの論理的ＡＮＤを遂行することによって計算される。ベース・アドレスのホストＩＤ部分は、ベース・アドレスとサブネット・マスクの反転との論理的ＡＮＤを遂行することによって計算される。
【００４０】
例えば、１０進数及び１６進数で書かれた下記のベース・アドレスを考察する：
10.10.10.420a.0a.0a.2a
【００４１】
次に、１０進数及び１６進数で書かれた下記のサブネット・マスクを考察する：
255.255.255.128ff.ff.ff.80
【００４２】
ベース・アドレスとサブネット・マスクとの論理的ＡＮＤが下記のようにネットワークＩＤを生じる：
0a.0a.0a.2a AND ff.ff.ff.80 = 0a.0a.0a.00
【００４３】
ベース・アドレスとサブネット・マスクの反転との論理的ＡＮＤが下記のようにホストＩＤを生じる：
0a.0a.0a.2a AND 00.00.00.7f = 00.00.00.2a
【００４４】
ベース・アドレスの種々のサブネットを計算するために、ベース・アドレスのネットワークＩＤ部分が下記のようにサブネット・マスクの反転＋１によってインクリメントされる（「サブネット・インクリメント」としても知られている）：
00.00.00.7f + 1 =00.00.00.80
【００４５】
ステップ５１０において、ネットワーク・インターフェースの各々についてのモニタリング・アドレスが、上記のように計算されたネットワークＩＤ及びホストＩＤに基づいてアベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）によって計算される。（モニタリング・アドレスはモニタリング・プロセスにおいて使用されるアドレスである）。
【００４６】
好適な実施例では、各ノードの第１ネットワーク・インターフェースが、ノード・インデックス（即ち、ノードの連番）によってベース・アドレスからオフセットされたモニタリング・アドレスを割り当てられる。従って、上記の例を継続すると、ネットワーク・インターフェースの第１セット（各ノードにおける第１ネットワーク・インターフェースを含む）が下記のように割り当てられる：
ノード０、アダプタ０ = 10.10.10.42
ノード１、アダプタ０ = 10.10.10.43
ノード２、アダプタ０ = 10.10.10.44
【００４７】
ノードにおける第２ネットワーク・インターフェースは、そのノードにおける第１ネットワーク・インターフェースとは異なるサブネット上になければならない。上記の例のように、ハートビート・テクノロジの要件の１つは、ノード上の各ネットワーク・インターフェースがそのノード上の他のすべてのネットワーク・インターフェースとは異なるサブネット上になければならないということである。従って、各ノードの第２ネットワーク・インターフェースについて、ベース・アドレスのネットワークＩＤ部分が、サブネット・インクリメントをオリジナルのネットワークＩＤに加えること、しかる後、オリジナルのホストＩＤとＡＮＤすることによって修正される。上記の例を継続すると、下記の計算が行われる：
0a.0a.0a.00              オリジナル・ネットワークＩＤ
00.00.00.80              インクリメント
0a.0a.0a.00      +       00.00.00.80= 0a.0a.0a.80
0a.0a.0a.80      AND +00.00.00.2a = 0a.0a.0a.aa
【００４８】
従って、次のサブネットについての第１アドレスは、0a.0a.0a.aaである。再び、各ノードの第２ネットワーク・インターフェースが、ノード・インデックスによってこのサブネットについてのベース・アドレスからオフセットされたモニタリング・アドレスを割り当てられる。従って、上記の例を継続すると、各ノードにおける第２ネットワーク・インターフェースが下記のように割り当てられる：
ノード０、アダプタ１ = 10.10.10.170
ノード１、アダプタ１ = 10.10.10.171
ノード２、アダプタ１ = 10.10.10.172
【００４９】
このプロセスは、モニタリング・アドレスがクラスタにおける各ネットワーク・インターフェースについて計算されてしまうまで繰り返される。
【００５０】
これらのアドレス計算の最終結果は、ネットワーク・インターフェース・アドレスの稠密な割り振りである。換言すると、その計算は、ネットワーク・インターフェースが列であり且つノードが行であることによって、モニタリング・アドレスのマトリクス（又は、アレイ）を生じる。すべてのノードが同じ数のネットワーク・インターフェースを持たない場合、各「欠落（missing）」ネットワーク・アダプタについて穴がアレイに残されることに注目すべきである。これは、各ネットワーク・アダプタについてモニタリング・アドレスがそのノードについてのノード・インデックスに依存しているために生じる。
【００５１】
更に、上述のような複数のサブネット・ルートを回避するために、モニタリング・プロセスによる使用のために計算されたモニタリング・アドレスが、リカバリ・プロセスによって使用されるリカバリ・アドレスから（サブネットにおいて）十分に離れていることが確認されなければならない。好適な実施例では、これは、モニタリング・アドレスが計算されるときに確認される。更に詳しく言えば、各計算されたモニタリング・アドレスは、２つのアドレスが同じサブネット範囲にないことを保証するために、リカバリ・アドレスのリスト全体に比較される。そのような状態が検出された場合、ユーザは新しいベース・アドレス又はサブセット・マスクを入力する必要があり、アドレスの混乱が存在しなくなるまで、モニタリング・アドレス計算及び確認手順が繰り返される。
【００５２】
ステップ５１２において、計算されたモニタリング・アドレスが、モニタ・ユニット１０４によるモニタリング・プロセスでの使用のために、アベイラビリティ・ユニット１０２（又は、モニタ・ユニット１０４）によって各ネットワーク・インターフェースに割り当てられる。好適な実施例では、１つ又はそれ以上の追加のＩＰアドレスをネットワーク・インターフェースに割り当てることを可能にするそのＩＰプロトコルの特徴であるＩＰエイリアシングを使用して、その計算されたモニタリング・アドレスが追加のネットワーク・インターフェース・アドレスとしてネットワーク・インターフェースに割り当てられる。更に詳しく言えば、ネットワーク・インターフェースに割り当てられた第１（又は、一次）アドレスは、そのネットワーク・インターフェースについて「ベース」アドレスとして知られている。その計算されたモニタリング・アドレスは、モニタリングの目的でモニタリング・プロセスにより使用するために、ネットワーク・インターフェースの「追加」（又は、「二次」或いは「エイリアス」）アドレスとしてネットワーク・インターフェースに割り当てられる。モニタリング・アドレスがエイリアス・アドレスとしてネットワーク・インターフェースに割り当てられるので、一次アドレス又は異なるエイリアス・アドレスがそのネットワーク・インターフェースについてのリカバリ・アドレスとして使用される限り、モニタリング・アドレスは、リカバリ・プロセス又はリカバリ・オペレーションと関連したリカバリ・アドレス又は何らかのアクションとインターフェース又は相互作用しない。更なる実施例では、各ネットワーク・インターフェースについてのモニタリングのために使用されるべき更なるネットワーク・インターフェース・アドレスを割り当てるために、他の任意のメカニズムが使用可能である。
【００５３】
割り当ての後、モニタリング・アドレスは、モニタリング・プロセスにおける使用のためにモニタリング・ユニット１０４に送られる。好適な実施例では、モニタリング・ユニット１０４は、アベイラビリティ・ユニット１０２によってストアされた割り当て済みのアドレス・リストからモニタリング・アドレスを読み出す。従って、ネットワーク・インターフェースの機能をモニタするために、リカバリ機能によって使用されるリカバリ・アドレスのような他のアドレスを使用する代わりに、その自動的に生成されたモニタリング・アドレスが使用される。望ましくは、モニタリング・プロセスはネットワーク・インターフェースのモニタリング・アドレスに関する知識を持っているだけであり、リカバリ・アドレス又はリカバリ・オペレーションに関する如何なる知識も持たない。ステップ５１４において、図５のコントロール・フローは終了する。
【００５４】
３．ネットワークの修正
上述のように、図３のステップ３１０において、モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するようにクラスタが修正されたかどうかが決定される。クラスタの修正は、ベースＩＰアドレスの変更、サブネット・マスクの変更、及びノード又はネットワーク・インターフェースの排除又は追加を含む多くの形式を取ることが可能である。モニタ・ユニット１０４のモニタリング・プロセス又はアベイラビリティ・ユニット１０２のアベイラビリティ・プロセスに影響するようにクラスタが修正された場合、初期設定情報が再指定され、ステップ３０６において、クラスタが再構成される。このセクションは、初期設定情報を再指定し且つクラスタを再構成するプロセスを説明する。
【００５５】
ベース・アドレス又はサブネット・マスクが修正される場合には、既存のアドレス割り振りが新しいアドレス及びサブネット範囲内で再配分されなければならない。ベース・アドレス又はサブネット・マスクを変更するための唯一の要件は、多数のアダプタ及びノードのための十分なスペースがサブネットに存在しなければならないということである。
【００５６】
アドレスの再割り振りは、アドレスの初期割り振りと似ている。先ず、モニタ・ユニット１０４が論理インターフェース名及びノード・オーダによってリストにおけるネットワーク・インターフェースをソートする。新しいエイリアスが新しいネットワーク範囲において同じネットワーク及びアドレス・オフセットで割り当てられる。例えば：
現ベース・アドレス                          192.9.201.1
現サブネット・マスク                        255.255.255.0
現エイリアス・アドレス                      192.9.202.4
現エイリアスのネットワークＩＤオフセット    192.9.202.0&#8211; 192.9.201.0 = 1
現エイリアスのホストＩＤオフセット          0.0.0.4 &#8211;0.0.0.1 = 3
新ベース・アドレス                          10.10.10.42
新サブネット・マスク                        255.255.255.128
新ネットワークＩＤ                          10.10.10.0
新ホストＩＤ                                0.0.0.42
新インクリメント                            128
（サブネット・マスクの反転＋１）
【００５７】
従って、新エイリアス・アドレス・ネットワークＩＤは、「新ネットワークＩＤ」プラス「新インクリメントを乗じた現ネットワークＩＤオフセット」である：
10.10.10.0 + (128 * 1)= 10.10.10.128
【００５８】
更に、新エイリアス・ホストＩＤは次のようになる：
0.0.0.42（新ホストＩＤ） + 0.0.0.3（ホストＩＤオフセット）= 0.0.0.45
【００５９】
従って、新エイリアス・アドレスは次のようになる：
10.10.10.128 + 0.0.0.45 = 10.10.10.173
【００６０】
ノード又はネットワーク・インターフェースがネットワークから排除される場合、残りのネットワーク・インターフェースはそれらの既存の割り振りを保持することが望ましい。ネットワーク・インターフェース・アドレスは、高密度の割り振りを維持するために異なるノード又はネットワーク・インターフェースにスライドすることはないであろう。ネットワーク・インターフェースがネットワークに加えられ、割り振りされてないアドレスがネットワーク・インターフェース・アドレスの既存の範囲に存在しない場合、そのネットワーク・インターフェースは既存のアドレス割り振りの終わりに及び新しいサブネットに加えられることが望ましい。さもないと、そのネットワーク・インターフェースは、ネットワーク・インターフェース・アドレスの既存の範囲における割り振りされてないアドレスの１つを与えられるであろう。ネットワークへのノードの追加は、ネットワークへのネットワーク・インターフェースの追加と似ている。
【００６１】
図６及び図７は、本発明の一実施例のモニタリング・プロセスに関するオペレーション及びコントロール・フローを示すフローチャートである。図６及び図７は、図３のステップ３０８において説明した機能に関する更なる詳細を提供する。図６及び図７のオペレーション及びコントロール・フローは、ネットワーク・インターフェースが接続性に関してモニタされるモニタリング・プロセスを示す。図６のオペレーション及びコントロール・フローは、ステップ６０２でもって開始し、ステップ６０４へ直接に進む。
【００６２】
ステップ６０４において、ネットワーク・インターフェース・モニタリング・プロセスが構成される。好適な実施例では、モニタ・ユニット１０４がネットワーク・インターフェース・リストを読み出し、各サブネットにおけるネットワーク・インターフェースのモニタリング・アドレスを決定する。しかる後、モニタ・ユニット１０４は、同じサブネット上にあるが異なるノードにあるネットワーク・インターフェースをそれがモニタするよう、クラスタの各ノードを構成する。例えば、ノード１、２、及び４が所定のサブネットにおけるモニタリング・アドレスと共にネットワーク・インターフェースを有するノードである場合、ノード１は（サブネットにおけるそれのネットワーク・アダプタを介して）ノード２にモニタリング・メッセージを送るように構成され、ノード２はノード４にモニタリング・メッセージを送るように構成され、そしてノード４はノード１にモニタリング・メッセージを送るように構成される。このように、各ノードは、同じサブネットにおける１つのリモート・ネットワーク・インターフェースにモニタリング・メッセージを送信するように、及び同じサブネットにおける他のノードからのモニタリング・メッセージの受信をモニタするように構成される。
【００６３】
ステップ６０６において、モニタリング・メッセージ（例えば、ハートビート・メッセージ、ピング・メッセージ、又は他の或るタイプのメッセージ）がモニタリング・アドレスを使用してネットワーク・インターフェースに同期的に送られる。好適な実施例では、各ノードは、ステップ６０４において設定された構成に従って、そのモニタリング・アドレスを介して同じサブセットにおけるリモート・ネットワーク・インターフェースにモニタリング・メッセージを周期的に送る。
【００６４】
ステップ６１０において、各ネットワーク・インターフェースの機能を決定するために、モニタリング・メッセージの周期的受信がモニタされる。上述のように、好適な実施例では、各ノードは、他のノードからのモニタリング・メッセージを同じサブネットにおけるそれのネットワーク・アダプタを介して周期的に受信しなければならない。各ノードは、これらの周期的なモニタリング・メッセージの受信又は非受信をモニタしなければならない。このモニタリングの結果に基づき、ステップ６１２において、送信ノードが接続性を有するかどうかが決定される。
【００６５】
好適な実施例では、ノードが周期的モニタリング・メッセージを受信する場合、送信ノードが接続性を有することが決定され、コントロールはステップ６１０に戻る。一方、送信ネットワーク・インターフェースの誤動作又は他の何らかのエラーによって周期的モニタリング・メッセージを受信しなかった場合、送信ノードの送信ネットワーク・インターフェ−スは接続性を有しない（又は、適正に機能していない）ことが決定され、コントロールはステップ６１４に進む。望ましくは、喪失又は遅延メッセージ又はネットワーク輻輳が誤った障害決定を生じないように、この決定を行う場合に閾値が使用される。換言すれば、モニタリング・メッセージが閾値数のメッセージ期間に（又は、或る所定の期間内に）モニタリング・メッセージが受信されなかった場合にのみ送信ネットワーク・インターフェースが接続性を持たないことが決定される。
【００６６】
更なる実施例では、モニタ・ユニット（又は、何らかの他のセントラル・ユニット）がすべてのネットワーク・インターフェースにモニタリング・メッセージを周期的に送り、各モニタリング・メッセージの受信を確認するために応答が戻される。そのような実施例では、モニタ・ユニット（又は、他のセントラル・ユニット）が、応答メッセージの受信又は非受信に基づいて接続性ステータスを決定するであろう。
【００６７】
ステップ６１４において、リカバリ・プロセスがリカバリ・オペレーションを遂行することを可能にするように、障害通知が送信される。好適な実施例では、ノードが予期された周期的モニタリング・メッセージを或る所定の期間内に受信しなかったとき、そのノードはモニタ・ユニット（又は、そのモニタリング・グループについてのグループ・リーダのような他の何らかのユニット、或いは、ノード）に障害メッセージを送る。それに応答して、モニタ・ユニット（又は、他のユニット、或いは、ノード）がリカバリ・プロセスに障害通知を送り、リカバ・プロセスはそのような通知をそれに関連したイベントに変換する。
【００６８】
例えば、１つの実施例では、モニタリング・プロセスがモニタリング・アドレスについて障害通知を配送する。それに応答して、リカバリ・プロセスが、ネットワーク・インターフェース名に基づいて、現在そのモニタリング・アドレスを割り当てられているネットワーク・インターフェースを決定し、しかる後、そのネットワーク・インターフェースに割り当てられているリカバリのための何らかのアドレスを決定する。そこで、リカバリ・プロセスは、そのネットワーク・インターフェースのためのリカバリ・アドレスを使用して適正なリカバリ・アクションを遂行する。従って、リカバリ・プロセスのアドレス・マッピングは、ユーザにとって透明なモニタリング・プロセス及び障害応答を行う。
【００６９】
リカバリ・プロセスが終了するとき、そのリカバリ・プロセスはモニタリング・プロセスをシャット・ダウンし、ネットワーク・インターフェースからモニタリング・アドレスを取り除く。
【００７０】
４．例示的な実装
本発明は、ハードウェア、ソフトウェア、或いは、ハードウェア又はソフトウェアの結合によって実現可能である。本発明の好適な実施例によるシステムは、１つのコンピュータ・システムにおいて集中態様で、或いは、幾つかの相互接続されたコンピュータ・システムにまたがって種々のエレメントが配置された分散態様で実現可能である。任意の種類のコンピュータ・システム、或いは、本願において開示された方法を実行するように適応した他の装置が適当である。ハードウェア及びソフトウェアの代表的な結合は、ロード及び実行されたとき、本願において開示された或る方法又はすべての方法を実行するようにコンピュータを制御するコンピュータ・プログラムを持った汎用コンピュータであってもよい。
【００７１】
本発明の実施例は、本願において開示された方法の実装を可能にするいくつかの又はすべての特徴を含み、コンピュータ・システムにロードされるとき、これらの方法を実行することができるコンピュータ・プログラム製品にも組み込み可能である。本発明において使用されるコンピュータ・プログラム手段又はコンピュータ・プログラムは、特定の機能を直接的に、或いは、
（ａ）他の言語、コード、又は表記法への変換；及び
（ｂ）異なる材料形態における複製
のどちらか又は両方の後、情報処理能力を持ったシステムに特定の機能を遂行させることを意図された一連の命令を任意の言語、コード、又は表記法で表現したものを表す。
【００７２】
コンピュータ・システムは、とりわけ、１つ又はそれ以上のコンピュータ及び少なくともコンピュータ可読媒体を含み得る。そのコンピュータ可読媒体は、コンピュータ・システムがデータ、命令、メッセージ、又はメッセージ・パケット、及びコンピュータ可読情報をそのコンピュータ可読媒体から読み取ることを可能にするものである。コンピュータ可読媒体は、ＲＯＭ、フラッシュ・メモリ、ディスク・ドライブ・メモリ、ＣＤ−ＲＯＭ、及び他の永続記憶装置のような不揮発性メモリを含み得る。更に、コンピュータ可読媒体は、例えば、ＲＡＭ、バッファ、キャッシュ・メモリ、及びネットワーク回路のような揮発性記憶装置を含み得る。更に、コンピュータ可読媒体は、コンピュータ・システムがコンピュータ可読情報を読み出すことを可能にする、有線ネットワーク又は無線ネットワークを含むネットワーク・リンク及び（又は）ネットワーク・インターフェースのような一時的状態（transitory state）媒体におけるコンピュータ可読情報を含み得る。
【００７３】
図８は、本発明の実施例を実装するに有用なコンピュータ・システムのブロック図である。例えば、図８のコンピュータ・システムは、モニタ・ユニット又はネットワークに接続されたコンピュータの１つを更に詳細に表示したものである。図８のコンピュータ・システムは、プロセッサ７０４のような１つ又はそれ以上のプロセッサを含む。プロセッサ７０４は、通信設備７０２（例えば、通信バス、クロスオーバ・バー、又はネットワーク）に接続される。この例示的コンピュータ・システムによって、種々のソフトウェア実施例が説明される。この説明を読めば、他のコンピュータ・システム及び（又は）コンピュータ・アーキテクチャを使用して本発明を実装する方法が当業者には明らかになるであろう。
【００７４】
そのコンピュータ・システムは、ディスプレイ・ユニット７１０上に表示するために、通信設備７０２（又は、図示されてないフレーム・バッファ）からのグラフィックス、テキスト、及び他のデータを送るディスプレイ・インターフェース７０８を含み得る。コンピュータ・システムは、ランダム・アクセス・メモリ（ＲＡＭ）であることが望ましいメイン・メモリ７０６も含み、二次メモリ７１２も含み得る。二次メモリ７１２は、例えば、ハードディスク・ドライブ及び（又は）フロッピ（Ｒ）・ディスク・ドライブ、磁気テープ・ドライブ、光ディスク・ドライブ等を表す取り外し可能ストレージ・ドライブ７１６を含み得る。取り外し可能ストレージ・ドライブ７１６は、当業者に取っては周知の方法で取り外し可能ストレージ・ユニット７１８から読み出し、及び（又は）それに書き込む。取り外し可能ストレージ・ユニット７１８は、例えば、取り外し可能ストレージ・ドライブ７１６によって読み出され及び書き込まれるフロッピ（Ｒ）・ディスク、磁気テープ、光ディスク等を表す。明らかなように、取り外し可能ストレージ・ユニット７１８は、コンピュータ・ソフトウェア及び（又は）データがストアされているコンピュータ使用可能記憶媒体を含む。
【００７５】
別の実施例では、二次メモリ７１２は、コンピュータ・プログラム又は他の命令がコンピュータ・システムにロードされることを可能にするための他の同様な手段を含み得る。そのような手段は、例えば、取り外し可能ストレージ・ユニット７２２及びインターフェース７２０を含み得る。そのようなものの例は、プログラム・カートリッジ及びカートリッジ・インターフェース（ビデオ・ゲーム装置において見られるようなもの）、取り外し可能メモリ・チップ（ＥＰＲＯＭ又はＰＲＯＭのようなもの）及び関連ソケット、並びに、他の取り外し可能ストレージ・ユニット７２２及びインターフェース７２０（ソフトウェア及びデータが取り外し可能ストレージ・ユニット７２２からコンピュータ・システムに転送されることを可能にする）を含み得る。
【００７６】
コンピュータ・システムは通信インターフェース７２４も含み得る。通信インターフェース７２４は、ソフトウェア及びデータがコンピュータ・システムと外部装置との間で転送されることを可能にする。通信インターフェース７２４の例は、モデム、ネットワーク・インターフェース（イーサネット（登録商標）・カードのようなもの）、通信ポート、ＰＣＭＣＩＡスロット、及びカード等を含み得る。通信インターフェース７２４を介して転送されるソフトウェア及びデータは、例えば、電子信号、電磁信号、光信号、又は通信インターフェース７２４によって受信され得る他の信号であってもよい信号形式におけるものである。これらの信号は、通信パス(即ち、チャネル)７２６を介して通信インターフェース７２４に供給される。このチャネル７２６は信号を搬送し、ワイヤ又はケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、及び(又は)他の通信チャネルを使用して実装可能である。
【００７７】
本明細書では、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、及び「コンピュータ可読媒体」は、メイン・メモリ７０６及び二次メモリ７１２、取り外し可能ストレージ・ドライブ７１６、ハードディスク・ドライブ７１４に設置されたハードディスク、及び信号のような媒体を総括的に呼ぶために使用されている。これらのコンピュータ・プログラム製品は、コンピュータ・システムにソフトウェアを提供するための手段である。コンピュータ可読媒体は、コンピュータ・システムがデータ、命令、メッセージ又はメッセージ・パケット、及び他のコンピュータ可読情報をそのコンピュータ可読媒体から読み出すことを可能にする。コンピュータ可読媒体は、例えば、フロッピ（Ｒ）・ディスク、ＲＯＭ、フラッシュ・メモリ、ディスク・ドライブ・メモリ、ＣＤ−ＲＯＭ、及び他の永続記憶装置のような不揮発性メモリを含み得る。それは、例えば、データ及びコンピュータ命令のような情報をコンピュータ・システム相互間で伝送するために有用である。更に、コンピュータ可読媒体は、コンピュータがコンピュータ可読情報を読み出すことを可能にする、有線ネットワーク又は無線ネットワークを含むネットワーク・リンク及び（又は）ネットワーク・インターフェースのような一時的状態媒体におけるコンピュータ可読情報を含み得る。
【００７８】
コンピュータ・プログラム（コンピュータ制御ロジックとも呼ばれる）は、メイン・メモリ７０６及び(又は)二次メモリ７１２にストアされる。コンピュータ・プログラムは、通信インターフェース７２４を介しても受信可能である。そのようなコンピュータ・プログラムは、それが実行されるとき、コンピュータ・システムが、本願において開示された本発明の特徴を遂行することを可能にする。特に、コンピュータ・プログラムは、それが実行されるとき、プロセッサ７０４がコンピュータ・システムの特徴を遂行することを可能にする。従って、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【００７９】
本発明の特定の実施例が開示されたけれども、本発明の精神及び範囲を逸脱することなく、その特定の実施例に対して変更を行い得ることは当業者には明らかであろう。従って、本発明の範囲は、その特定の実施例に制限されるべきではない。更に、「特許請求の範囲」は、本発明の範囲内にある如何なる及びすべてのアプリケーション、修正、及び実施例をカバーすることを意図するものである。
【図面の簡単な説明】
【００８０】
【図１】一般的なコンピュータ・クラスタのシステム・アーキテクチャ全体を示すブロック図である。
【図２】図１におけるコンピュータ・クラスタの一部分の更に詳細なブロック図である。
【図３】本発明の一実施例の全体的なオペレーション及びコントロール・フローを示すフローチャートである。
【図４】本発明の一実施例の初期設定プロセスのオペレーション及びコントロール・フローを示すフローチャートである。
【図５】本発明の一実施例のネットワーク・インターフェース・アドレス構成プロセスのオペレーション及びコントロール・フローを示すフローチャートである。
【図６】本発明の一実施例のモニタリング・プロセスにおけるオペレーション及びコントロール・フローを示すフローチャートである。
【図７】本発明の一実施例のモニタリング・プロセスにおけるオペレーション及びコントロール・フローを示すフローチャートである。
【図８】本発明の実施例を実装するに有用なコンピュータ・システムのブロック図である。
【図１】
2005045792.tif 000003
【図２】
2005045792.tif 000004
【図３】
2005045792.tif 000005
【図４】
2005045792.tif 000006
【図５】
2005045792.tif 000007
【図６】
2005045792.tif 000008
【図７】
2005045792.tif 000009
【図８】
2005045792.tif 000010