(57)【要約】【課題】クラスタ化コンピュータ・システムに常駐するグループへのアクセスを実施する際にクラスタ専用グループ名を利用する装置、クラスタ化コンピュータ・システム、プログラム製品および方法を提供すること。【解決手段】したがって、１つのクラスタ・アクセス可能グループについて、クラスタに所属できるすべてのノードをそのグループに対する同一のクラスタ専用グループ名にマッピングするように構成して、そのクラスタ化コンピュータ・システムにアクセスできる任意の外部ユーザが、そのグループ名にアクセスしそのグループ名を利用してそのグループによる処理を開始できるようにする。
2004531817.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ化コンピュータ・システム中のグループにアクセスする方法であって、前記クラスタ化コンピュータ・システムは複数のノードを含み、前記グループは前記複数のノード上にそれぞれ常駐する複数のメンバを含み、
（ａ）前記複数のノード中の第１のノード上で、前記グループに関連付けられたクラスタ専用グループ名を識別するアクセス要求を受け取ること、および
（ｂ）前記第１のノード上で前記アクセス要求を処理して前記クラスタ専用グループ名にマッピングされた前記複数のノードの少なくとも一部でグループ処理を開始すること
を含む方法。
【請求項２】
前記第１のノード上にあるユーザ・ジョブを用いて前記アクセス要求を生成することをさらに含む、請求項１に記載の方法。
【請求項３】
前記ユーザ・ジョブからの呼出しを介して前記第１のノードに常駐するクラスタリング・インフラストラクチャに前記アクセス要求を転送することをさらに含む、請求項２に記載の方法。
【請求項４】
（ａ）前記複数のノード中の第２のノード上にあるユーザ・ジョブを用いて前記アクセス要求を生成すること、および
（ｂ）前記第２のノード上にあるプロキシ・ジョブを用いて、前記アクセス要求を前記第１のノードに伝達することによって前記アクセス要求を処理すること
をさらに含む、請求項１に記載の方法。
【請求項５】
前記プロキシ・ジョブがクラスタ制御グループのメンバであり、
（ａ）前記ユーザ・ジョブから前記プロキシ・ジョブに前記アクセス要求を転送すること、および
（ｂ）前記プロキシ・ジョブからの呼出しによって前記プロキシ・ジョブから前記第２のノードに常駐するクラスタリング・インフラストラクチャに前記アクセス要求を転送すること
をさらに含む、請求項４に記載の方法。
【請求項６】
ユーザ・ジョブを用いてクラスタ専用データ構造にアクセスすることによって前記クラスタ専用グループ名を検索することをさらに含む、請求項１に記載の方法。
【請求項７】
前記クラスタ専用データ構造が前記ユーザ・ジョブと同じノード上にある、請求項６に記載の方法。
【請求項８】
前記クラスタ専用データ構造に、前記クラスタ専用データ構造がある前記ノードからだけアクセス可能な、請求項７に記載の方法。
【請求項９】
前記クラスタ専用データ構造に、前記クラスタ専用データ構造がある前記ノード上にあるジョブからだけアクセス可能な、請求項８に記載の方法。
【請求項１０】
前記グループ処理を開始することが、前記クラスタ専用グループ名にマッピングされた前記ノード上にある複数のグループ・メンバにメッセージを配信することを含む、請求項１に記載の方法。
【請求項１１】
前記グループ処理を開始することが、グループ・アドレス・データ構造にアクセスして前記クラスタ専用グループ名に関連づけられた複数のネットワーク・アドレスを検索することをさらに含み、前記複数のグループ・メンバにメッセージを配信することが、前記複数のネットワーク・アドレスのそれぞれにメッセージを送信することを含む、請求項１０に記載の方法。
【請求項１２】
前記グループ処理を開始することが前記第１のノード上に常駐するクラスタリング・インフラストラクチャによって実施される、請求項１に記載の方法。
【請求項１３】
前記グループ処理を開始することが、前記クラスタリング・インフラストラクチャを用いて、前記クラスタリング・インフラストラクチャにとってローカルのデータ構造中の前記クラスタ専用グループ名にマッピングされた複数のアドレスを検索することを含む、請求項１２に記載の方法。
【請求項１４】
前記グループ処理を開始することが、前記クラスタ専用グループ名と、前記複数のノードの前記少なくとも一部に関連付けられた複数のアドレスとの間のマッピングを、前記第１のノード上でローカルで解決することを含む、請求項１に記載の方法。
【請求項１５】
（ａ）クラスタ化コンピュータ・システムにおける複数のノード中の第１のノードによってアクセス可能なメモリと、
（ｂ）前記メモリに常駐し前記第１のノードによって実行されるプログラムであって、前記複数のノード上にそれぞれ常駐する複数のメンバを含むグループに関連付けられたクラスタ専用グループ名を識別するアクセス要求を受け取り、前記アクセス要求を処理して前記クラスタ専用グループ名にマッピングされた前記複数のノードの少なくとも一部でグループ処理を開始することによって、前記グループにアクセスするように構成されたプログラムと
を含む装置。
【請求項１６】
前記アクセス要求を生成するように構成されたユーザ・ジョブをさらに含む、請求項１５に記載の装置。
【請求項１７】
前記プログラムが、前記第１のノード上に常駐するクラスタリング・インフラストラクチャを含む、請求項１６に記載の装置。
【請求項１８】
前記ユーザ・ジョブから前記クラスタリング・インフラストラクチャに前記アクセス要求を転送するように構成されたプロキシ・ジョブをさらに含む、請求項１７に記載の装置。
【請求項１９】
（ａ）前記クラスタ専用グループ名を記憶するように構成されたクラスタ専用データ構造と、
（ｂ）前記クラスタ専用データ構造にアクセスして前記クラスタ専用グループ名を検索しそこから前記アクセス要求を生成するように構成されたユーザ・ジョブと
をさらに含む請求項１５に記載の装置。
【請求項２０】
前記クラスタ専用データ構造が前記ユーザ・ジョブと同じノード上にある、請求項１９に記載の装置。
【請求項２１】
前記クラスタ専用データ構造に、前記クラスタ専用データ構造がある前記ノードからだけアクセス可能な、請求項２０に記載の装置。
【請求項２２】
前記クラスタ専用グループ名に関連付けられた複数のネットワーク・アドレスを記憶するように構成されたグループ・アドレス・データ構造をさらに含み、前記プログラムが、前記グループ・アドレス・データ構造にアクセスして前記複数のネットワーク・アドレスを検索し前記複数のネットワーク・アドレスのそれぞれにメッセージを送信することによって前記グループ処理を開始するように構成されている、請求項１５に記載の装置。
【請求項２３】
前記プログラムがクラスタリング・インフラストラクチャを含み、前記グループ・アドレス・データ構造が前記クラスタリング・インフラストラクチャにとってローカルである、請求項２２に記載の装置。
【請求項２４】
前記プログラムがさらに、前記クラスタ専用グループ名と前記複数のノードの前記少なくとも一部に関連付けられた複数のアドレスとの間のマッピングを前記第１のノード上でローカルで解決することによって、前記アクセス要求を処理するように構成されている、請求項１５に記載の方法。
【請求項２５】
（ａ）ネットワークを介して相互に結合された複数のノードと、
（ｂ）前記複数のノード上にそれぞれ常駐する複数のメンバを含むグループと、
（ｃ）前記複数のノード中の第１のノードに常駐し、前記グループに関連付けられたクラスタ専用グループ名を識別するアクセス要求を受け取り前記アクセス要求を処理して前記クラスタ専用グループ名にマッピングされた前記複数のノードの少なくとも一部でグループ処理を開始することによって、前記グループにアクセスするように構成されたプログラムと
を含むクラスタ化コンピュータ・システム。
【請求項２６】
（ａ）メモリに常駐し、クラスタ化コンピュータ・システムにおける複数のノード中の第１のノードによって実行されるプログラムであって、前記複数のノード上にそれぞれ常駐する複数のメンバを含むグループに関連付けられたクラスタ専用グループ名を識別するアクセス要求を受け取り、前記アクセス要求を処理して前記クラスタ専用グループ名にマッピングされた前記複数のノードの少なくとも一部でグループ処理を開始することによって、前記グループにアクセスするように構成されたプログラムと、
（ｂ）前記プログラムを搬送する信号搬送媒体と
を含むプログラム製品。
【請求項２７】
前記信号搬送媒体が伝送媒体および記録可能媒体の少なくとも１つを含む、請求項２６に記載のプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、クラスタ化コンピュータ・システムを対象とし、詳細には、そうしたシステム上にあるグループへのアクセスを管理することを対象とする。
【背景技術】
【０００２】
「クラスタリング」とは、一般に、複数のコンピュータまたはノードが、協働してコンピュータ・タスクを実施するように相互にネットワーク化されているコンピュータ・システム編成を指す。コンピュータ・クラスタの１つの重要な態様は、クラスタ中のすべてのノードが単一のシステム・イメージを提示する、すなわち、ユーザから見れば、クラスタ中の各ノードが、単一のコンピュータ、またはエンティティとして集合的に見えることである。
【０００３】
クラスタリングは、しばしば、高性能および高信頼性を重視する、比較的大規模なマルチユーザ・コンピュータ・システムで使用される。たとえば、クラスタリングを使用して冗長性、すなわち耐障害機能を提供し、それによって、クラスタ中のいずれかのノードに障害が発生しても、そのノードによって以前に実施されていた処理をそのクラスタ中の他のノードが処理するようにすることができる。また、クラスタリングは、全体的な性能を向上させるためにも使用される。というのは、複数のノードは、しばしば、単一のコンピュータが通常処理できる数よりも多くのタスクを並列に処理することができるからである。また、個々のノードが過負荷にならず全体的なシステム性能が最大になるようにノード間でタスクを適正に配分するために、しばしば、負荷均衡化を使用することもできる。クラスタリングの１つの具体的な適用例は、たとえば、データベースや記憶装置などの共用リソースへのマルチユーザ・アクセスを提供する場合である。というのは、複数ノードは、比較的多数のユーザ・アクセス要求を処理することができ、共用リソースは、通常、クラスタ中の任意の所与のノードに障害が発生した際でも、まだユーザによる利用が可能であるからである。
【０００４】
クラスタは、通常、個々のノード内の「ジョブ」または「プロセス」の実行によってコンピュータ・タスクを処理する。場合によっては、異なるノードによって実行されているジョブが相互に協働して１つのコンピュータ・タスクを処理することがある。そうした協働するジョブは、通常、相互に交信し合うことができ、通常、「グループ」と呼ばれる論理エンティティを使用してクラスタ中で管理される。グループには、通常、何らかの形の識別子を割り当てられ、グループ中の各ジョブには、そのジョブがグループのメンバであることを示すためにその識別子がタグ付けされる。
【０００５】
一グループ中の各メンバ・ジョブは、通常、順序付きのメッセージ・ベース方式を使って相互に交信する。その場合、グループ・メンバ間で送信されるメッセージの具体的な順序付けは、あらゆるメンバが、他のメンバによって送信されるメッセージを、他のあらゆるメンバと同じ順番で見、それによってノード間の同期が確保されるように維持される。一グループの各メンバによって処理を実施するよう求める要求は、しばしば、「プロトコル」と呼ばれ、タスクが一グループの各メンバによって協働して実施される場合、それは、通常、１つまたは複数のプロトコルによって行われる。
【０００６】
一グループ中のメンバ・ジョブは、協働してタスクを実施するために、順序付けメッセージを利用して相互に交信するが、クラスタ化コンピュータ・システムは、通常、グループに様々なグループ処理を実施するよう求める要求を送信する、そのグループにとって外部のエンティティもサポートする必要がある。従来、あるグループへの外部アクセスは、そのグループに特定のネットワーク・アドレス（たとえば、ＴＣＰ／ＩＰアドレスなど）を割り当てて、グループへのアクセスを望む外部エンティティがその特定のアドレスに要求を送信できるようにすることによってサポートされてきた。この技法は、Ｎ＋１アドレス指定と呼ばれることがあり、その場合、Ｎ個のアドレスがグループ中のＮ個のノードに割り当てられ、さらにもう１つのアドレスがそのグループ自体に割り当てられる。
【０００７】
他の従来のネットワーク・アドレス指定プロトコルの場合と同様に、通常、従来のクラスタ化コンピュータ・システムには、各グループのネットワーク・アドレスを「グループ名」にマッピングするために、ネーム・サービスが提供される。名前は、一般に、ネットワークを介してアクセス可能な個々のエンティティに対する任意の形の省略識別子またはエイリアスとすることができる。ネットワーク・エンティティへのアクセスに直接アドレスの代わりに名前を使用することの利点は、エンティティに割り当てられるネットワーク・アドレスは随時変わる可能性があるので、名前のマッピングが変更された場合でも、常にその名前でそのエンティティにアクセスできることである。
【０００８】
クラスタ・ノードやグループを含むネットワーク上のエンティティのアドレスは、通常、従来のクラスタ化コンピュータ・システムにおいては、そのネットワーク上に常駐するディレクトリ名サービス（ＤＮＳ）サーバなどのネットワーク・ネーム・サーバにアクセスすることによって取得される。したがって、あるエンティティがネットワーク上の別のエンティティへのアクセスを望む場合、アクセス元のエンティティは、通常、ネットワーク・ネーム・サーバを介してアクセス先のエンティティの名前を解決し、次いで、そのサーバが返すネットワーク・アドレスにメッセージを送信する。したがって、あるグループへの外部アクセスの場合には、そのグループに要求の送信を望むエンティティは、ネットワーク・ネーム・サーバを介してそのグループ名を解決し、そのサーバが返すグループ・アドレスにメッセージを送信する。
【０００９】
グループへのアクセスに際して外部のネーム・サーバを使用すると、いくつかの問題が生じる。第１に、クラスタ外部のノードまたは他のエンティティが、グループに、そのグループの動作を妨げる恐れがあるメッセージを送信する可能性があるという重大な問題が生じる。特に、ウイルス、トロイの木馬、およびその他の悪意あるプログラムによって引き起こされるセキュリティ上のリスクを、増大するインターネットの使用と併せて考えると、グループに関連付けられたネットワーク・アドレスにアクセスするだけでそのグループにアクセスできることは、クラスタ化コンピュータ・システムに対する重大なセキュリティ上のリスクとなる。
【００１０】
第２に、多くの場合、たとえば、同一の物理システム上で稼動する別々の論理コンピュータ・システムで複数のクラスタ・インスタンスを同時に実行できる論理分割システムにおいては、所与のクラスタ化コンピュータ・システムまたはネットワーク上で複数のクラスタ、またはクラスタ「インスタンス」を実装することが望ましい。しかし、複数のクラスタが存在する場合、各クラスタに同じグループ名が存在できないという点で限界がある。というのは、相異なるネットワーク・アドレスに対して１つのグループ名を解決することができない共通ネーム・サーバが、しばしば使用されるからである。従来、クラスタは、各クラスタごとに別々の専用ローカル・エリア・ネットワーク（ＬＡＮ）を必要とし、クラスタが複数のサブネットにまたがることを禁止することによって、これらの問題を回避することができた。しかし、クラスタ化コンピュータ・システムは、しばしば、各ノードが長距離にわたって相互に接続される地理的に分散された実装形態や、各ノードがインターネットなどの公衆ネットワークを介して結合される実装形態を含む、様々なネットワーク・トポロジで実装することが望ましい。したがって、クラスタを専用ＬＡＮだけに制限することは、大部分の状況において望ましくない。
【特許文献１】
米国特許出願第０９／２８０，４６９号
【特許文献２】
米国特許出願第０９／１７３，０９０号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、当技術分野では、クラスタ化コンピュータ・システムに常駐するグループへの外部アクセスをサポートする方式、詳細には、許可されたエンティティだけにアクセスを限定することができる、グループへの外部アクセスをサポートする機構が大いに求められている。
【課題を解決するための手段】
【００１２】
本発明は、従来技術に伴う上記およびその他の問題に、クラスタ化コンピュータ・システムに常駐するグループにアクセスする際にクラスタ専用グループ名を利用する装置、クラスタ化コンピュータ・システム、プログラム製品および方法を提供することによって対処する。言い換えると、あるクラスタ・アクセス可能グループについて、クラスタに所属できるすべてのノードを、そのグループに対する同一のクラスタ専用グループ名にマッピングするように構成し、それによって、そのクラスタにアクセスできる任意の外部ユーザが、そのグループ名にアクセスし、そのグループ名を利用してそのグループによる処理を開始できるようにする。これに対して、無許可のユーザ（たとえば無許可のノード上のユーザ）は、通常、そのグループ名にアクセスできないように、あるいはそのグループ名を使ってクラスタに要求を発行できないように制限され、したがって、そのグループにアクセスできないように制限される。
【００１３】
本発明による実施形態においては、クラスタに所属するノード上からだけアクセス可能なグループ・アドレス・データ構造を使用することによって、クラスタ専用グループ名がグループ・メンバのアドレス（それらのグループ・メンバが常駐するノードのネットワーク・アドレスなど）にマッピングされていることを、実際上、クラスタ外部のノードやユーザから「隠す」ことができる。さらに、本発明による実施形態では、通常、グループ名のグループ・メンバ・アドレスへのマッピングを各ノード上でローカルで解決し、したがて、外部ネーム・サーバや他の集中リソースが不要になる。
【００１４】
一般に、各ノード上のクラスタリング・インフラストラクチャは、名前／アドレス・マッピングをホスティングしそのマッピングを利用して、グループ・アクセス要求をクラスタ中の様々なノードのクラスタリング・インフラストラクチャ内およびそれら相互間の内部で処理できるようにするために使用される。したがって、ノード上のクラスタリング・インフラストラクチャにアクセスできるとともに、そのクラスタリング・インフラストラクチャに渡すための当該グループ名にもアクセスできるエンティティ（一般には、同じノード上に常駐するエンティティ）だけが、通常、個々のグループへのアクセスを許される。
【００１５】
したがって、本発明の一態様によれば、クラスタ化コンピュータ・システム中のグループは、一部には、複数のノード中の第１のノード上で、そのグループに関連付けられたクラスタ専用グループ名を識別するアクセス要求を受け取ることによってアクセスされる。このアクセス要求は第１のノード上で処理され、そのクラスタ専用グループ名にマッピングされた複数のノードの少なくとも一部でグループ処理を開始する。
【００１６】
本発明を特徴付ける上記およびその他の利点および特徴は、本明細書に添付される特許請求の範囲に記載されている。しかし、本発明、および本発明の利用によって達成される利点および目的をより良く理解するために、図面、および本発明の例示的実施形態を記述する以下の詳細な説明を参照されたい。
【発明を実施するための最良の形態】
【００１７】
本明細書で記述する実施形態では、一般に、クラスタ専用グループ名を利用して、クラスタ化コンピュータ・システム内に常駐するグループにアクセスする。グループ名は、通常、ソフトウェア・エンティティに関連付けることができる任意の一意の識別子を表すことができ、英数字の組合せ、２進数、ポインタ、あるいは他の形のハンドル、トークン、標識などを含む。個々のクラスタまたはクラスタ「インスタンス」に所属するノードの外部からグループ名にアクセスできない場合、そのグループ名はクラスタ専用である。たとえば、グループ名が、クラスタ・インスタンスに所属するノード上にあり、そのノード上で稼動しているジョブからアクセス可能である場合、すなわち、そのグループ名がそのノードにとってローカルである場合、そのグループ名をクラスタ専用とすることができる。また、たとえば、何らかの形の認証メカニズムを使って、そのグループ名へのアクセスをクラスタへの所属を確立できるノードまたはジョブあるいはその両方だけに限定する場合も、グループ名をクラスタ専用とすることができる。
【００１８】
本発明によれば、グループ名と関連して開始されるグループ・アクセス要求はいくつかの形を取ることができる。たとえば、グループ・アクセス要求は、要求元エンティティ（ユーザ・ジョブなど）と同じノードまたは異なるノード上にあるクラスタリング・インフラストラクチャまたはグループ・メンバに渡されるメッセージを含むことができる。あるいは、グループ・アクセス要求は、クラスタリング・インフラストラクチャへの関数呼出しを含むこともできる。あるいは、専用ネットワークを介するなど、要求発行に他の方式を用いることもできる。
【００１９】
グループ・アクセスは、通常、開始されるグループ処理、すなわち協働してあるいは個別に、１つまたは複数のグループ・メンバによって実施される処理の形を取る。実際上、ソフトウェアによって、具体的には、クラスタ・グループによって実施または開始できる関数は、本明細書で述べるように、グループ内で実装することができグループ・アクセス要求によって開始することができる。たとえば、クラスタ化コンピュータ・システムに結合された１つまたは複数のプリンタ用の印刷処理を管理する印刷サービス・グループは、印刷、プリンタの設定、スプールまたは待ち行列の管理、プリンタの初期設定またはシャット・ダウン、特定のプリンタへの印刷ジョブの経路指定など、様々なプリンタ処理をサポートすることができる。他のタイプのグループでは、他のタイプのグループ処理をサポートすることもできる。さらに、外部ユーザに代わって開始できる処理のタイプを、あるグループがサポートする可能なグループ処理の一部に限ることもできることを理解されたい。すなわち、一部の処理をグループ内部に限り、そのグループ外部からアクセス不能とすることができる。
【００２０】
一般に、無許可のエンティティからのグループ処理へのアクセスを制限できるようにするために、図示の各実施形態では、主として、個々のクラスタに所属する各ノード上に常駐するクラスタリング・インフラストラクチャを利用して、そのグループのメンバまたはそれらのメンバが常駐するノードあるいはその両方のアドレスへのグループ名のローカル・マッピングを維持する。したがって、メッセージをどのように各グループ・メンバ、具体的には、それらのメンバの各アドレスに配信するかは、実際上、そのクラスタリング・インフラストラクチャにアクセスするジョブやアプリケーションから隠される。したがって、個々のアドレスに要求を送信することによってグループでの処理を開始するのではなく、その要求をクラスタリング・インフラストラクチャに送信し、従来クラスタ・グループへのアクセスに使用してきた低水準ネットワーク・アドレスよりも高水準のソフトウェア層およびプロトコルにおいて、クラスタリング・インフラストラクチャがその要求を管理する。さらに、各ノード、一般には各ノード内のクラスタリング・インフラストラクチャは、グループ名／グループ・メンバ・アドレス・マッピングをローカルで解決することができる。したがって、通常、外部ネーム・サーバは不要である。
【００２１】
本明細書で述べるようにグループ名を利用することによって、いくつかの利点が実現される。たとえば、無許可のエンティティによるグループへの外部アクセスは、そうしたエンティティが当該グループ名を取得できないこと、またはグループ名、ならびに各ノード内の名前／アドレス・マッピングのローカルの解決を識別する要求を出せないこと、あるいはその両方の理由で、実質的に制限される。したがって、クラスタ・セキュリティが実質的に強化される。
【００２２】
また、個々のクラスタ・インスタンスにとってローカルのグループ名を使用することによって、たとえば、複数のクラスタ・インスタンスが同じネットワーク上で稼動する論理分割システムにおいて、同じネットワーク上にある複数のクラスタ・インスタンスが競合することなく同じグループ名の使用をサポートすることが可能になる。さらに、クラスタ化コンピュータ・システムが使用するネットワーク・トポロジは、しばしば、グループ処理のサポートには無関係である。というのは、許可された外部要求に応答したグループ・メッセージの配信が、各所属ノードのクラスタリング・インフラストラクチャ内で管理されるからである。また、所望する場合、本明細書で述べる各実施形態では、クラスタに所属するノード内でグループ名をローカルで管理できるようにすれば、グループへのアクセスをそれらのノードの一部だけに制限することができる。
【００２３】
次に図面を参照する。これらの図において、類似の番号は類似の部分を示す。図１に、たとえば、ローカル・エリア・ネットワーク（ＬＡＮ）１０４、１０６および広域ネットワーク（ＷＡＮ）１０８を介して分散した形で相互に接続されている複数のノード１０２（ノード１〜８としても示す）を含むクラスタ化コンピュータ・システム１００を示す。図示の実施形態において、システム１００（たとえばノード１〜７）中の各ノードの一部は、クラスタ１１０として協働して動作し、したがって、外部のコンピュータ装置に対して単一のシステム・イメージを提示する。また、システム１００に他のノードおよび他の装置を常駐させ組み込むこともできる。しかし、そうした装置がクラスタリングに所属せず、あるいはクラスタ１１０以外のクラスタに所属することもある（たとえば、ノード８は、図１に示す構成においてクラスタ１１０に所属していない）。
【００２４】
本発明によれば、一般に、クラスタ化コンピュータ・システムおよび他のネットワーク化コンピュータ・システムで普通に利用されるネットワーク・トポロジをいくつでも使って、ノード１０２を相互に接続することができる。また、個々のノード１０２は、当技術分野で周知のように、他のノードと物理的に近接して位置することができ、あるいは、これらを他のノードから地理的に隔てることもできる。さらに、各ノードの相互接続に使用するネットワークは、事実上、専用ネットワークでも公衆ネットワークでもよく、専用ネットワークと公衆ネットワークの組合せを含むこともできる。
【００２５】
次に図２を見ると、クラスタ１１０中のノード１０２の１つの例示的ハードウェア構成が示してある。ノード１０２は、たとえば、ネットワーク・サーバ、中型コンピュータ、メインフレーム・コンピュータなど、いくつかのマルチユーザ・コンピュータのいずれかを一般的に表す。しかし、本発明は、他のコンピュータおよびデータ処理システムで、たとえば、ワークステーション、デスクトップ・コンピュータ、携帯型コンピュータなどの独立型コンピュータまたは単一ユーザ・コンピュータ、あるいは（組込み制御装置などを内蔵する）他のプログラム可能な電子装置でも実装できることを理解されたい。
【００２６】
ノード１０２は、一般に、キャッシュ・システム１６内に配置された１つまたは複数のレベルのキャッシュ・メモリを介して主記憶装置１４に結合された１つまたは複数のシステム・プロセッサ１２を含む。さらに、主記憶装置１４は、システム入出力（Ｉ／Ｏ）バス１８、および入出力アダプタ２０、ワークステーション制御装置２２、記憶制御装置２４など複数のインタフェース装置を介して、いくつかのタイプの外部装置に結合される。これらのインタフェース装置は、それぞれ、１つまたは複数の外部ネットワーク（ネットワーク１０４など）、１つまたは複数のワークステーション２８、または直接アクセス記憶装置（ＤＡＳＤ）３０など１つまたは複数の記憶装置、あるいはそれらの組合せへの外部アクセスを提供する。あるいは、代替のコンピュータ・アーキテクチャをいくつでも使用することができる。
【００２７】
本発明による専用化グループ・アクセス機能を実装するために、クラスタ中の各ノードは、通常、そのノード上でのクラスタリング関連処理を管理するクラスタリング・インフラストラクチャを含む。たとえば、ノード１０２は、クラスタリング・リソース・サービス３２と呼ばれるクラスタリング・インフラストラクチャを実装するオペレーティング・システム３０を、主記憶装置１４中に常駐させるものとして示してある。また、１つまたは複数のジョブまたはアプリケーション３４が示されており、それぞれがクラスタリング・リソース・サービス３２内で実装されるクラスタリング機能にアクセスすることができる。さらに、ノード１０２は、ユーザ・ジョブ３６を含むものとして示されている。ユーザ・ジョブ３６は、クラスタ・グループのメンバであってもそうでなくてもよく、クラスタリング・リソース・サービス３２内で実装されるクラスタリング機能にアクセスできてもできなくてもよい。
【００２８】
以下でより明らかになるように、本明細書で述べる専用化グループ・アクセス機能の１つの具体的な用途は、そのグループにとって外部であるエンティティを用いてクラスタ・グループにアクセスする場合に、たとえば、クラスタ・グループへの所属を許可されないエンティティがそのグループに対して要求を出せるようにするための使用である。したがって、図示の実施形態においては、ユーザ・ジョブ３６は、通常、（そのユーザ・ジョブがクラスタリング・サービスにアクセスできるか否か、そのユーザ・ジョブが別のグループのメンバであるか否かに関わらず）アクセス先グループのメンバではないが、そのアクセス先グループによってサポートまたは管理されるサービスまたはリソースにアクセスできる外部エンティティを表す。他の実施形態においては、本明細書で述べる専用化グループ・アクセス機能を、グループ内のメンバ間通信に際して使用することもできる。
【００２９】
また、ノード１０２内には、クラスタ制御グループに所属しそのノードに代わってクラスタリング機能の管理を助ける、クラスタ制御（ＣＴＬ）ジョブ３３も実装される。図示の実施形態において、クラスタ制御ジョブは、クラスタに所属するあらゆるノード上に常駐している必要があり、このクラスタ制御グループを介して様々なクラスタ管理処理が実施される。各ノード上にクラスタ制御ジョブが存在することによって、たとえば、ユーザ・ジョブが同じノード上にあるクラスタ制御ジョブにアクセス要求を発することができるようになり、クラスタ制御ジョブは、その要求をクラスタリング・リソース・サービスに転送して処理させる「プロキシ」ジョブとして動作する。しかし、他の実施形態では、ユーザ・ジョブがクラスタリングに所属している場合、あるいは、ユーザ・ジョブがクラスタリングにとって外部であるが、クラスタリングに所属するノード上に常駐している場合、ユーザ・ジョブがクラスタリング・リソース・サービスに直接アクセスできるようにすることもできる。一般に、クラスタリング・リソース・サービスへのアクセスは、関数呼出しを形成するが、別法としてジョブからクラスタリング・リソース・サービスに要求を発する他の形（メッセージ・ベースの要求など）を使用することもできる。
【００３０】
暫時図１に戻ると、したがって、メンバＣＴＬ１〜ＣＴＬ７を有する例示的クラスタ制御グループが、ノード１〜７に常駐しているものとして示してあり、また、外部ユーザまたはジョブによって所望される特定のグループ処理を実施できるグループ・メンバＡ１〜Ａ７を含む例示的グループＡも同様である。そのような一ユーザをジョブＵ１で表す。Ｕ１は、クラスタリングに所属するノード（ノード１）上に常駐し、したがって、グループＡに関連付けられたグループ名にアクセスすることができる。これと対比して、ノード８上に常駐する別のユーザＵ２を示す。ただし、ユーザＵ２によるグループＡのグループ名へのアクセスは、ノード８がこのクラスタに所属していないため妨げられる。したがって、この例示的シナリオでは、ユーザＵ２は、グループＡ上でのグループ処理を開始できないように制限される。
【００３１】
図２に戻ると、本明細書で述べる機能を、ノード１０２の他のソフトウェア層で実装することもでき、クラスタ１１０中の他のプログラム、コンピュータ、あるいはコンポーネント間でその機能を割り振ることもできることが理解されよう。したがって、本発明は、本明細書で述べる特定のソフトウェア実装に限定されるものではない。
【００３２】
以下の考察では、前述の専用化グループ・アクセス機能を実装するために使用する具体的なルーチンを中心に論じる。本明細書では、本発明の実施形態を実装するために実行されるルーチンを、それがオペレーティング・システムの一部として実装されるか、それとも特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスとして実装されるかに関わらず、「コンピュータ・プログラム」、あるいは単に「プログラム」とも呼ぶ。このコンピュータ・プログラムは、通常、様々な時にコンピュータの様々なメモリおよび記憶装置に常駐し、コンピュータ中の１つまたは複数のプロセッサによって読み取られ実行されるとき、本発明の様々な態様を実施するステップまたは要素を実行するのに必要なステップをそのコンピュータに実施させる、１つまたは複数の命令を含む。さらに、本発明は、完全に機能するコンピュータおよびコンピュータ・システムを含み、以下では本発明をその状況で記述するが、本発明の様々な実施形態を様々な形のプログラム製品として配布できること、および、実際にその配布を実行するために使用する信号搬送媒体の個々のタイプに関わらず、本発明を等しく適用できることが当分野の技術者には理解されよう。信号搬送媒体の例には、それだけには限らないが、特に、揮発性および不揮発性記憶装置、フロッピー（Ｒ）および他の取り外し可能ディスク、ハード・ディスク・ドライブ、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）などの記録可能型媒体、およびディジタルおよびアナログ通信リンクなどの伝送型媒体が含まれる。
【００３３】
以下で述べる様々なプログラムを、本発明の特定の一実施形態においてそれらを実装する用途に基づいて識別できることが理解されよう。しかし、以下で使用する個々のプログラム用語は便宜的に使用するに過ぎず、したがって、本発明を、そうした用語によって識別または示唆される、あるいは識別されかつ示唆される特定の用途だけでの使用に限定すべきでないことを理解されたい。
【００３４】
本発明によれば、専用化グループ・アクセスを実装するためにいくつかのデータ構造を使用することができる。たとえば、図２に示すように、１つのノード上にある各グループのグループ名を含めて、１つのノード上にあるすべてのジョブからグループ名データ構造３８にアクセス可能とすることができる。図示の実施形態において、このグループ名データ構造は、そのノード上にあるどのジョブからでもアクセス可能なグローバル・データ構造として維持される。ただし、このグループ名データ構造は、通常、クラスタにとってプライベートである。言い換えると、クラスタに所属していないノードは、このグループ名データ構造にアクセスできないよう制限され、そのような外部ノード上にあるジョブも同様に、このグループ名データ構造にアクセスできないよう制限されることを示唆している。あるグループ向けのすべての要求がそのグループに関連するグループ名を使って発せられることが必要とされるので、外部のノードおよびジョブは、そのグループに要求を発しないよう制限される。
【００３５】
本発明によれば、グループ名データ構造３８を実装するためにいくつかの異なるデータ構造を利用することができる。たとえば、一部の実施形態では、使用可能なグループ名のテーブルを使用することもできる。他の実施形態では、代わりに、連結リストなど他のデータ構造を使用することもできる。
【００３６】
また、そのテーブルの同一コピーを、クラスタ中の各ノード上に常駐させそれを管理することができる。あるいは、クラスタに所属するノード上にないジョブや他のエンティティからそのグループ名データ構造にアクセスできないように制限すれば、クラスタ中のあるノード上のユーザ・ジョブに、そのクラスタ中の別のノード上にある、あるいは複数のノードからアクセス可能なデータベース中のグループ名データ構造にアクセスさせることもできる。また、グループ名データ構造へのアクセスに認証を必要とすることができ、その場合、各グループごとに、グループ名データ構造中のそのそれぞれのレコード内に適切な認証情報を記憶することができる。また、本発明によれば、そうしたデータ構造に、アクセス・リスト、アクセス権限など追加の情報を組み込むこともできる。
【００３７】
図２には、そのノードのクラスタリング・リソース・サービス３０内にあり、そのサービスからアクセス可能なグループ・アドレス・データ構造４０も示されている。前述のように、通常、所望のグループ処理を最終的に実施するメンバまたはノードあるいはその両方のアドレスに対するグループ名のマッピングは、各ノードのクラスタリング・インフラストラクチャにとってローカルで維持され、したがって、通常、データ構造４０は、各ノード上のクラスタリング・リソース・サービス３２からだけアクセス可能なローカル・データ構造として維持される。
【００３８】
データ構造４０の一例示的実装形態を図３に示すが、他のデータ構造を使って本明細書で述べる必要なグループ・アドレス・マッピングを記憶することもできることを理解されたい。データ構造４０は、通常、ノードのクラスタリング・インフラストラクチャにとってローカルであり、クラスタに所属する様々なノード間で複製される。クラスタ内で更新を配布し様々なローカル・データ構造の同期を取る方式は、たとえば、各ノードのクラスタリング・リソース・サービスを相互にインタフェースするために使用される順序付きメッセージング方式を介して使用できることを理解されたい。
【００３９】
データ構造４０は、グループ向けメッセージの送信先となる１組のノード名にグループ名４２をマッピングする複数のエントリを含むテーブルとして示されている。図示の実装形態において、ノードのリストは、グループ名４２に関連するポインタ４４で指し示される連結リストとして実装される。この連結リストは、それぞれが１つのノード名４８と、そのノードへのアクセスに使用できるネットワーク（ＩＰなど）アドレスのリストを指すポインタ５０を識別する、複数のノード・レコード４６を含む。各ノード名レコード４６は、連結リスト中の次のノード名レコード４６を指し示す次ポインタ５２も含む。リスト中の最後のノード名レコード４６の次ポインタ５２には、通常、ＮＵＬＬ値が格納される。
【００４０】
ＩＰアドレス・リストは、ＩＰアドレスの特定ノード名へのマッピングとして機能し、複数のＩＰアドレス・レコード５４を含む。各ＩＰアドレス・レコードは、ＩＰアドレス５６、および連結リスト中の次のＩＰレコード５４を指し示す次ポインタ５８を含む。リスト中の最後のレコード５４の次ポインタ５８には、通常、ＮＵＬＬ値が格納される。
【００４１】
当分野で周知のように、個々のノードに複数のＩＰアドレスを関連付け、それによって、あるＩＰアドレスを介してノードにアクセスを試みて失敗すると、そのノードに関連付けられた２次ＩＰアドレスが呼び出されるようにすることができる。
【００４２】
データ構造４０に情報を記憶するために代替のデータ構造も利用できることを理解されたい。さらに、一部の実装形態では、個々のノードに１つのＩＰアドレスだけを関連付けることができ、それによって、グループ名と複数のノードとの間のマッピングからノード名情報を省くことができ、マッピング・データ構造中のグループ名エントリがＩＰアドレスのリストを直接指し示すことができる。また、一部の実装形態では、ノードではなくグループ・メンバを名前またはアドレスと関連付けて、グループ名をノードのリストにマッピングするのではなく、グループ名とその実際のグループ・メンバとの間でマッピングを行うことができる。当分野の技術者には、その他の改変形態が明らかであろう。
【００４３】
処理に際して、グループ・アクセスは、通常、クラスタに所属するノード上にあるユーザ・ジョブが、個々のグループ処理をそのクラスタに常駐するグループが実施するよう要求することによって開始される。一例として、図４に、クラスタ１１０中の一グループにとって外部である許可されたエンティティによって発せられたアクセス要求に応答してグループ処理を開始するように実施できる、例示的グループ・アクセス処理６０を示す。この例示的処理において、ブロック６２〜７０は、グループへのアクセス要求元のユーザ・ジョブが常駐するローカル・ノード上で実施される処理を表す。ブロック７２〜７６は、１つまたは複数のリモート・ノード、具体的には、要求されたグループ処理に関与する必要があるグループ・メンバが常駐する各ノードによって実施される。
【００４４】
ブロック６２に示すように、グループ・アクセス要求は、通常、ユーザ・ジョブがまず、ローカル・ノード上のグループ名データ構造からグループ名を探し出すことから開始される。前述のように、図示の実施形態では、このグループ名データ構造は、ローカル・ノード上にあるすべてのジョブにとってグローバルであるが、そのローカル・ノード上にないエンティティにとってはプライベートである。
【００４５】
次に、ブロック６４に示すように、ユーザ・ジョブは、そのグループ名を使ってそのグループのローカル・ジョブに要求を送信する。図示の実施形態では、前述のように、あらゆるグループは、クラスタに所属するあらゆるノード上に１つのメンバを持つと想定される。したがって、このローカル・グループ・メンバは、グループ・アクセス要求を、そのクラスタ化コンピュータ・システム中のその他のノード上にあるグループ・メンバに渡すプロキシ・ジョブとして働くことができる。しかし、他の実施形態においては、ローカル・グループ・メンバがそのローカル・ノード上になくてもよく、その場合、そのユーザ・ジョブは、関数呼出しを発行し、あるいは、その他の方法でそのローカル・ノード上のクラスタリング・リソース・サービスにグループにアクセスする必要があることを知らせる必要がある。さらに別の実施形態では、ローカル・クラスタ制御ジョブが、そのクラスタ中の別のグループに代わるプロキシ・ジョブとして動作することもできる。
【００４６】
次に、ブロック６６に示すように、そのグループのローカル・ジョブは、アクセス要求をそのグループに転送するために、クラスタリング・リソース・サービスに関数呼出しを発行する。その後、ブロック６８に示すように、そのクラスタリング・リソース・サービスは、そのローカル・ノード上のグループ・アドレス・データ構造にアクセスして、グループ・メッセージの配布先となるべきグループ・メンバに対応するＩＰアドレスのリストを検索する。次いで、ブロック７０に示すように、クラスタリング・リソース・サービスは、そのＩＰアドレスのリストを使って様々なグループ・メンバにメッセージを送信する。
【００４７】
ブロック７２に示すように、送信メッセージを受信する各リモート・ノードでは、そのリモート・ノード用のクラスタリング・リソース・サービスに常駐する監視タスクがメッセージの受信を検出する。次いで、ブロック７４に示すように、このタスクは、メッセージに関連付けられたグループ名に基づき、該当するグループ・メンバにそのメッセージを経路指定する。次いで、ブロック７６に示すように、リモート・グループ・ジョブがそのメッセージを処理し、そのグループ・メンバが要求されたグループ処理を開始する。また、ブロック７６の後で、追加のアクティビティ、たとえば他のノードへの応答やユーザ・ジョブへの結果の返信なども実施できることが理解されよう。しかし、通常、グループ・ジョブによるメッセージの処理は、要求される個々のグループ処理に応じて大幅に異なる。
【００４８】
本発明によれば、クラスタリング・リソース・サービスを使ってグループ・メンバ間でメセージを送信する様々な方式を使用できることが理解されよう。たとえば、１つの適当な通信機構が、１９９９年３月３０日出願の、ブロック（Block）他による、米国特許出願第０９／２８０，４６９号に開示されており、１９９８年１０月１５日出願の、ブロック（Block）他による、米国特許出願第０９／１７３，０９０号を使用することもできる（それぞれ参照により本明細書に組み込まれる）。別法として他の通信機構を使用することもできる。
【００４９】
さらに、リモート・ノード上でメッセージを処理するために、様々な機構を利用して該当するメッセージを検出しそれらをそのノード上に常駐するグループ・メンバに渡すことができる。たとえば、各ノードをＩＢＭ社から市販のＡＳ／４００中型コンピュータ・システムとして実装する場合、グループ名に関連付けられたマシン・インタフェース（ＭＩ）待ち行列、およびその待ち行列を読み取る監視ジョブに各グループ・メンバを関連付けることができる。その待ち行列を、グループのメンバになるクラスタリング・リソース・サービスに登録することができる。次いで、そのグループに対して要求が出されるとき、ローカル・ノードがその要求をＭＩ待ち行列に送信し、監視ジョブがそのメッセージを検出し、読み取り、次いでそれを適宜処理する。別法として他のハードウェア実装またはソフトウェア実装あるいはその両方を利用することもできる。
【００５０】
本発明の精神および範囲から逸脱することなく様々な改変を実施することができる。一実施形態においては、たとえば、一部のノードがグループ内メッセージングに能動的に関与していない（すなわち、そのようなノードは、グループ内所属メンバから見ると「受動的」である）場合であっても、グループがあらゆるノード上にグループ・メンバを持つ必要があることが望ましいこともある。当分野の技術者には、他の改変形態が明らかであろう。したがって、本発明は添付の特許請求の範囲内にある。
【産業上の利用可能性】
【００５１】
本発明は、コンピュータ・システムの管理、特に、クラスタ化コンピュータ・システム上に常駐するグループへのアクセスの管理に適用することができる。
【図面の簡単な説明】
【００５２】
【図１】本発明によるクラスタ化コンピュータ・システムを組み込んだネットワーク化されているコンピュータ・システムを示す構成図である。
【図２】図１のクラスタ化コンピュータ・システムにおける一ノードを示す構成図である。
【図３】図２のノード上にあるグループ・アドレス・テーブルを示す構成図である。
【図４】図１のクラスタ化コンピュータ・システム中のノード上で、ユーザ・ジョブによって開始されたグループ・アクセス処理開始中に発生する一連の処理を示す流れ図である。
【図１】
2004531817.tif 000003
【図２】
2004531817.tif 000004
【図３】
2004531817.tif 000005
【図４】
2004531817.tif 000006
【国際公開パンフレット】
2004531817.tif 000007
2004531817.tif 000008
2004531817.tif 000009
2004531817.tif 000010
2004531817.tif 000011
2004531817.tif 000012
2004531817.tif 000013
2004531817.tif 000014
2004531817.tif 000015
2004531817.tif 000016
2004531817.tif 000017
2004531817.tif 000018
2004531817.tif 000019
2004531817.tif 000020
2004531817.tif 000021
2004531817.tif 000022
2004531817.tif 000023
2004531817.tif 000024
2004531817.tif 000025
2004531817.tif 000026
2004531817.tif 000027
2004531817.tif 000028
2004531817.tif 000029
【国際調査報告】
2004531817.tif 000030