(57)【要約】【課題】  共有リソースを構成するための方法、システム、及びコンピュータ・プログラムを提供すること。【解決手段】  特定の実施形態において、リソースに関連する構成インジケータがリソースの構成の遅延を示しているかどうかについての判断がなされ、リソースが、バスを介して複数の処理用複合体によって共有され、リソースの構成の遅延が示されている場合、複数の処理用複合体の初期プログラムのロード中はリソースの構成が阻止される、方法、システム、及びコンピュータ・プログラムが提供される。リソースに関連する構成インジケータが、リソースの構成の遅延を示していると判断されることに応答して、リソースを共有する複数の処理用複合体のうちの１つだけによって、リソースが構成される。【選択図】      図３
2007518168.tif 000002
【特許請求の範囲】
【請求項１】
リソース（１０２）に関連する構成インジケータ（２００）が、前記リソースの構成の遅延を示しているかどうかを決定するステップを含み、
前記リソースは、バス（１０４）を介して複数の処理用複合体（１００ａ、１００ｂ、１００ｎ）によって共有され、該リソースの構成の遅延が示される場合には、前記複数の処理用複合体の初期プログラムのロード中は該リソースを構成することが阻止され、
前記リソースに関連する前記構成インジケータが該リソースの構成の遅延を示していると判断されることに応答して、該リソースを共有する前記複数の処理用複合体のうちの１つだけによって該リソースを構成するステップと、
を含む方法。
【請求項２】
前記リソースに関連する前記構成インジケータが、該リソースの構成の遅延を示しているかどうかを決定する前記ステップが、前記処理用複合体の初期プログラムのロード中に行われ、
前記方法は、前記リソースに関連する前記構成インジケータが該リソースの構成の遅延を示していると判断されることに応答して、該リソースを共有する前記複数の処理用複合体の初期プログラムのロードを完了させるステップをさらに含み、
前記複数の処理用複合体のうちの１つだけによって前記リソースを構成する前記ステップに続いて、該リソースを共有する該複数の処理用複合体の初期プログラムのロードを完了させるステップが行われる、請求項１に記載の方法。
【請求項３】
前記複数の処理用複合体のうちの１つだけが前記リソースの論理的所有者であり、
前記方法は、前記論理的所有者によって、前記構成されたリソースの構成情報を前記複数の処理用複合体のうちの他の処理用複合体に配信するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記リソースの論理的所有者であり、該リソースを構成した前記複数の処理用複合体のうちの１つだけの故障を判断するステップと、
前記故障を判断する前記ステップに応答して、前記複数の処理用複合体から、該リソースの次の構成を担当する該リソースの新しい論理的所有者を決定するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記複数の処理用複合体のうちの１つだけが前記リソースの元の論理的所有者であり、
前記の方法は、前記元の論理的所有者の故障に応答して、前記複数の処理用複合体の中から該リソースの新しい論理的所有者を決定するステップと、
前記元の論理的所有者が前記故障から回復したことを判断するステップと、
前記元の論理的所有者が前記故障から回復したと判断されることに応答して、前記リソースの論理的所有者を、再び前記新しい論理的所有者から該元の論理的所有者に移転するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記リソースに関連する前記構成インジケータがリソースの構成の遅延を示しているかどうかを判断する前記ステップが、前記複数の処理用複合体の初期プログラムのロード中に行われ、
前記の方法は、前記リソースに関連する前記構成インジケータが、該リソースの構成の遅延を示していると判断されることに応答して、前記複数の処理用複合体についての前記初期プログラムのロードが完了するまで、該リソースの構成を延期するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記複数の処理用複合体がマルチ・クラスタ・システムを備え、該複数の処理用複合体は、該複数の処理用複合体が共有する前記構成されたリソースを介して、ホストによってアクセスされる、請求項１に記載の方法。
【請求項８】
前記リソースに関連する前記構成インジケータが前記リソースの構成の遅延を示しているかどうかを判断する前記ステップが、前記複数の処理用複合体の第１の処理用複合体内に実装されるブート・アプリケーションによって実行され、該リソースを共有する該複数の処理用複合体のうちの１つだけによって該リソースを構成するステップが、該複数の処理用複合体のうちの１つだけの中に実装されるクラスタ化アプリケーションによって実行される、請求項１に記載の方法。
【請求項９】
前記リソースを構成する前記ステップが、前記複数の処理用複合体にわたるクラスタ化アプリケーションによって調整される、請求項１に記載の方法。
【請求項１０】
前記共有されるリソースがＰＣＩアダプタであり、前記バスがＰＣＩバスであり、前記構成インジケータが前記ＰＣＩアダプタ内に実装される、請求項１に記載の方法。
【請求項１１】
複数の処理用複合体と、
前記複数の処理用複合体に結合されたバスと、
前記バスを介して該複数の処理用複合体によって共有されるリソースと、
前記リソースに関連する構成インジケータと、
前記リソースに関連する前記構成インジケータが該リソースの構成の遅延を示しているかどうかを判断するための手段と、
前記リソースの構成の遅延が示された場合、該複数の処理用複合体の初期プログラムのロード中は該リソースの構成が阻止され、該構成インジケータが該リソースの構成の遅延を示していると判断されることに応答して、該複数の処理用複合体のうちの１つだけによって該リソースを構成するための手段と
を備えるシステム。
【請求項１２】
前記リソースに関連する前記構成インジケータが前記リソースの構成の遅延を示しているかどうかを判断するための前記手段が、該リソースの構成の遅延が前記処理用複合体の初期プログラムのロード中に行われることを示し、前記システムは、該リソースに関連する該構成インジケータが該リソースの構成の遅延を示していると判断されることに応答して、該リソースを共有する該複数の処理用複合体の初期プログラムのロードを完了するための手段をさらに含み、該複数の処理用複合体のうちの１つだけによって該リソースを構成するステップに続いて、該リソースを共有する該複数の処理用複合体の初期プログラムのロードを完了させるステップが行われる、請求項１１に記載のシステム。
【請求項１３】
前記複数の処理用複合体のうちただ１つだけが前記リソースの論理的所有者である該リソースの論理的所有者と、前記論理的所有者によって、前記構成された該リソースの構成情報を該複数の処理用複合体のうちの他の処理用複合体に配信するための手段とをさらに備える、請求項１１に記載のシステム。
【請求項１４】
前記リソースの論理的所有者であり、該リソースを構成した前記複数の処理用複合体のうちの１つだけの故障を判断するための手段と、前記故障を判断するステップに応答して、該複数の処理用複合体から、該リソースの次の構成を担当する新しい論理的所有者を決定するための手段とをさらに含む、請求項１１に記載のシステム。
【請求項１５】
前記複数の処理用複合体のうちの１つだけが前記リソースの元の論理的所有者であり、前記システムは、前記元の論理的所有者の故障に応答して、該複数の処理用複合体から該リソースの新しい論理的所有者を決定するための手段と、該元の論理的所有者が該故障から回復したことを判断するための手段と、該元の論理的所有者が該故障から回復したと判断されることに応答して、該リソースの論理的所有者を、再び前記新しい論理的所有者から該元の論理的所有者に移転するための手段とをさらに備える、請求項１１に記載のシステム。
【請求項１６】
前記リソースに関連する前記構成インジケータが遅延リソースを示すかどうかを判断するステップが、前記複数の処理用複合体の初期プログラムのロード中に行なわれ、前記システムは、該リソースに関連する該構成インジケータが、該リソースの構成の遅延を示していると判断されることに応答して、該複数の処理用複合体についての前記初期プログラムのロードが完了するまで、該リソースの構成を延期するための手段をさらに備える、請求項１１に記載のシステム。
【請求項１７】
前記複数の処理用複合体がマルチ・クラスタ・システムを備え、該複数の処理用複合体は、該複数の処理用複合体が共有する前記構成されたリソースを介して、ホストによってアクセスされる、請求項１１に記載のシステム。
【請求項１８】
複数の処理用複合体のうちの１つだけの中に実装されるクラスタ化アプリケーションと、該複数の処理用複合体のうちの第１の処理用複合体内に実装されるブート・アプリケーションとをさらに備え、リソースに関連する構成インジケータが前記リソースの構成の遅延を示しているかどうかを判断することが、前記ブート・アプリケーションによって行われ、前記リソースを共有する該複数の処理用複合体のうちの１つだけによって該リソースを構成することが、前記クラスタ化アプリケーションによって行われる、請求項１１に記載のシステム。
【請求項１９】
前記複数の処理用複合体にわたるクラスタ化アプリケーションをさらに備え、前記
リソースの構成が、前記クラスタ化アプリケーションによって調整される、請求項１１に記載のシステム。
【請求項２０】
前記共有されるリソースがＰＣＩアダプタであり、前記バスがＰＣＩバスであり、前記構成インジケータが前記ＰＣＩアダプタ内に実装される、請求項１１に記載のシステム。
【請求項２１】
コンピュータ・システム上での実行時に、
前記コンピュータ・システムに、前記方法の請求項のいずれかに記載の方法を実行するように命令するための、コンピュータ可読記憶媒体上に格納されたコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、共有リソースを構成するための方法、システム、及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
マルチ・クラスタ・システムは、複数のコンピューティング・ノードを共に連結させることができる。連結された複数のコンピューティング・ノードは、まとめて単一の計算システムとして機能することが可能である。マルチ・クラスタ・システムは、並列処理、負荷平衡、耐故障性等のために用いることができ、高可用性システム又は冗長情報技術システムを実装することもできる。例えば、特定のマルチ・クラスタ・システムは、同じデータを複数のコンピューティング・ノードに格納することができ、コンピューティング・ノードは、計算ユニット、格納ユニット等とすることができる。マルチ・クラスタ・システムの１つのコンピューティング・ノードが利用できない場合、マルチ・クラスタ・システムの別のコンピューティング・ノードを用いて、利用できないコンピューティング・ノードに代えることができる。
【０００３】
Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスのようなリソースを用いて、装置を、プロセッサ及び主メモリのローカル・バスと相互接続することができる。特定のマルチ・クラスタ・システムにおいては、複数のコンピューティング・ノードが、ＰＣＩバスを介して、ＰＣＩアダプタを共有することができる。ホストは、共有ＰＣＩアダプタを介して、マルチ・クラスタ・システムのコンピューティング・ノードと通信することができる。
【０００４】
ＰＣＩアダプタがマルチ・クラスタ・システムの複数のコンピューティング・ノード間で共有される場合には、１つのコンピューティング・ノードが故障しても、ホストが、依然としてマルチ・クラスタ・システムの別のコンピューティング・ノードと通信し続けることが可能である。このようなホストは、共有のＰＣＩアダプタにアクセスし、故障していないコンピューティング・ノードに関連するデータにアクセスすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
１つより多いコンピューティング・ノードが共有リソースを構成できる場合、共有リソースが誤り状態になる可能性があり、コンピューティング・ノード間で共有リソースを共有できなくなることがある。
【課題を解決するための手段】
【０００６】
本発明は、独立請求項において請求されるような、方法、システム、及びコンピュータ・プログラムを提供するものである。
【発明を実施するための最良の形態】
【０００７】
ここで、全体を通して同様の参照番号が対応する部品を示す図面を参照する。
【０００８】
次の説明において、本明細書の一部を形成し、幾つかの実施形態を示す添付図面について説明する。本実施形態の範囲から逸脱することなく、他の実施形態を用い得ること、及び、構造上及び動作上の変更をなし得ることが理解される。
【０００９】
図１は、本発明の特定の実施形態による、第１のコンピューティング環境のブロック図を示す。
【００１０】
特定の実施形態において、複数の処理用複合体１００ａ．．．１００ｎが、ＰＣＩバス１０４によってＰＣＩアダプタ１０２に結合される。処理用複合体１００ａのような処理用複合体は、１つ又は複数のコンピューティング・ノードを含むことができ、該コンピューティング・ノードは、ユニプロセッサ・システム又はマルチプロセッサ・システムを含むことができる。幾つかの実施形態において、処理用複合体１００ａ．．．１００ｎは、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、手持ち式コンピュータ、パームトップ・コンピュータ、電話装置、ネットワーク・アプライアンス、ブレード・コンピュータ、格納コントローラ等を含むことができる。
【００１１】
特定の実施形態においては、ＰＣＩアダプタ１０２は、ＰＣＩ−Ｘアダプタ、或いは何らかのＰＣＩバス又はＰＣＩ−Ｘバス互換装置と置き換えることができる。さらに、代替的な実施形態においては、ＰＣＩバス１０４は、ＰＣＩ−Ｘバス又は他の幾つかのバスと置き換えることができる。
【００１２】
複数の処理用複合体１００ａ．．．１００ｎは、複数のブート・アプリケーション１０６ａ．．．１０６ｎ、及び複数のクラスタ化アプリケーション１０８ａ．．．１０８ｎを含む。例えば、特定の実施形態において、処理用複合体１００ａは、ブート・アプリケーション１０６ａ及びクラスタ化アプリケーション１０８ａを含むことができ、処理用複合体１００ｂは、ブート・アプリケーション１０６ｂ及びクラスタ化アプリケーション１０８ｂを含むことができ、処理用複合体１００ｎは、ブート・アプリケーション１０６ｎ及びクラスタ化アプリケーション１０８ｎを含むことができる。ブート・アプリケーション１０６ａ．．．１０６ｎ及びクラスタ化アプリケーション１０８ａ．．．１０８ｎは、ソフトウェア、ファームウェア、又はハードウェア、或いはこれらの組み合わせ内に実装することができる。
【００１３】
実行時のブート・アプリケーション１０６ａ．．．１０６ｎは、対応する処理用複合体１００ａ．．．１００ｎの初期プログラム・ロードを実行することができる。例えば、ブート・アプリケーション１０６ａは、処理用複合体１００ａの初期プログラムのロードを実行することができ、ブート・アプリケーション１０６ｂは、処理用複合体１００ｂの初期プログラムのロードを実行することができ、ブート・アプリケーション１０６ｎは、処理用複合体１００ｎの初期プログラムのロードを実行することができる。処理用複合体の初期プログラムのロード中に、処理用複合体のオペレーティング・システム（図示せず）、装置ドライバ（図示せず）等をロードすることができるので、処理用複合体は、初期プログラムのロードが完了した後に他のアプリケーションを実行できるようになる。
【００１４】
実行時のクラスタ化アプリケーション１０８ａ．．．１０８ｎにより、処理ノード１００ａ．．．１００ｎが、ＰＣＩアダプタ１０２を共有することが可能になる。特定の実施形態においては、１つのクラスタ化アプリケーションだけが、ＰＣＩアダプタ１０２を構成し、該ＰＣＩアダプタ１０２の構成情報を他のクラスタ化アプリケーションに配信することができる。例えば、特定の実施形態において、クラスタ化アプリケーション１０８ａは、ＰＣＩアダプタ１０２を構成し、該ＰＣＩアダプタ１０２の構成情報を、処理用複合体１００ｂ．．．１００ｎ内で実行できるクラスタ化アプリケーション１０８ｂ．．．１０８ｎに配信することができる。複数のクラスタ化アプリケーション１０８ａ．．．１０８ｎが示されるが、特定の実施形態においては、複数のクラスタ化アプリケーション１０８ａ．．．１０８ｎを、処理用複合体１００ａ．．．１００ｎに関連する分散型クラスタ化アプリケーションの一部とすることができる。
【００１５】
図２は、本発明の特定の実施形態による、ＰＣＩアダプタ１０２に関連するデータ構造のブロック図を示す。特定の実施形態においては、遅延構成インジケータ２００をＰＣＩアダプタ１０２と関連付けることができる。幾つかの実施形態において、遅延構成インジケータ２００は、処理用複合体１００ａ．．．１００ｎの初期プログラムのロードが完了するまでＰＣＩアダプタ１０２の構成を延期すべきかどうかを示すことができるシングルビットのデータを表すことができる。
【００１６】
例えば、特定の実施形態においては、遅延構成インジケータ２００内のシングルビット・データが１に設定された場合、ブート・アプリケーション１０６ａ．．．１０６ｎは、処理用複合体１００ａ．．．１００ｎの初期プログラムのロード中にはＰＣＩアダプタ１０２を構成することができない。特定の実施形態においては、クラスタ化アプリケーション１０８ａといった、クラスタ化アプリケーション１０８ａ．．．１０８ｎの１つだけが、ＰＣＩアダプタ１０２を構成することができる。クラスタ化アプリケーション１０８ａ．．．１０８ｎは、処理用複合体１００ａ．．．１００ｎの初期プログラムのロードが完了した後のみ、実行を開始することができる。
【００１７】
図３は、本発明の特定の実施形態による、処理用複合体１００ａ．．．１００ｎ内に実装される共有ＰＣＩアダプタを構成するための論理を示す。
【００１８】
対応する処理用複合体１００ａ．．．１００ｎにおいてブート・アプリケーション１０６ａ．．．１０６ｎが実行されるブロック３００ａ．．．３００ｎにおいて、制御が始まる。例えば、ブート・アプリケーション１０６ａは、処理用複合体１００ａ内で実行され（ブロック３００ａにおいて）、ブート・アプリケーション１０６ｂは、処理用複合体１００ｂ内で実行され（ブロック３００ｂにおいて）、ブート・アプリケーション１０６ｎは、処理用複合体１００ｎ内で実行される（ブロック３００ｎにおいて）。処理用複合体１００ａ．．．１００ｎ内のブート・アプリケーション１０６ａ．．．１０６ｎは、並行して実行することができる。ブート・アプリケーション１０６ａ．．．１０６ｎを実行した結果として、処理用複合体１００ａ．．．１００ｎにおいて初期プログラムのロードが始まる。
【００１９】
特定の実施形態においては、ブート・アプリケーション１０６ａ．．．１０６ｎの各々は、処理用複合体１００ａ．．．１００ｎの初期プログラムのロードが完了するまでＰＣＩアダプタ１０２の構成を延期すべきかどうかを、遅延構成インジケータ２００によって判断することができる（ブロック３０２において）。延期すべきである場合、ブート・アプリケーション１０６ａ．．．１０６ｎは、ＰＣＩアダプタ１０２を構成することなく、処理用複合体１００ａ．．．１００ｎの初期プログラムのロードを完了する（ブロック３０４において）。
【００２０】
対応する処理用複合体１００ａ．．．１００ｎにおいて、クラスタ化アプリケーション１０８ａ．．．１０８ｎが、ロードされる（ブロック３０６において）。論理的所有者である処理用複合体が複数の処理用複合体１００ａ．．．１００ｎ内に含まれる場合、クラスタ化アプリケーション１０８ａ．．．１０８ｎは、ＰＣＩアダプタ１０２の論理的所有者である複数の処理用複合体１００ａ．．．１００ｎをまとめて判断することができる（ブロック３０８において）。例えば、特定の実施形態においては、処理用複合体１００ａを、ＰＣＩアダプタ１０２の論理的所有者と判断することができる。ＰＣＩアダプタ１０２の論理的所有者である処理用複合体は、該ＰＣＩアダプタ１０２を構成し、該ＰＣＩアダプタ１０２の構成情報を他の処理用複合体に配信する責任を負う。
【００２１】
クラスタ化アプリケーション１０８ａ．．．１０８ｎは、ＰＣＩアダプタ１０２の論理的所有者ではない処理用複合体が、ＰＣＩアダプタ１０２を構成しようと試みるのを制限する（ブロック３１０において）。論理的所有者内のクラスタ化アプリケーションが、ＰＣＩアダプタ１０２を構成する（ブロック３１２において）。例えば、特定の実施形態において、処理用複合体１００ａが論理的所有者である場合、クラスタ化アプリケーション１０８ａが、ＰＣＩアダプタ１０２を構成することができる。
【００２２】
論理的所有者内のクラスタ化アプリケーションは、ＰＣＩアダプタ１０２の構成が完了したかどうかを判断する（ブロック３１４において）。ＰＣＩアダプタ１０２の構成が完了した場合、論理的所有者内のクラスタ化アプリケーションは、ＰＣＩアダプタ１０２の構成情報を他の処理用複合体のクラスタ化アプリケーションに配信する（ブロック３１６において）。例えば、処理用複合体１００ａが、ＰＣＩアダプタ１０２の論理的所有者であると判断された場合、クラスタ化アプリケーション１０８ａは、ＰＣＩアダプタの構成情報をクラスタ化アプリケーション１０８ｂ．．．１０８ｎに分散させる。ＰＣＩアダプタ１０２の構成情報の配信の完了に応答して、プロセスが終了する（ブロック３１８において）。
【００２３】
論理的所有者内のクラスタ化アプリケーションが、ＰＣＩアダプタ１０２の構成は完了していないと判断した場合（ブロック３１４において）、論理的所有者内のクラスタ化アプリケーションは、ＰＣＩアダプタ１０２を構成し続ける（ブロック３１２において）。
【００２４】
ブート・アプリケーション１０６ａ．．．１０６ｎが、遅延構成インジケータ２００によって、ＰＣＩアダプタ１０２の構成を延期すべきではないと判断した場合（ブロック３０２において）、処理用複合体１００ａ．．．１００ｎの間に共有ＰＣＩアダプタが存在しないとき、ブート・アプリケーション１０６ａ．．．１０６ｎは、処理用複合体１００ａ．．．１００ｎの初期プログラムのロード中に処理用複合体１００ａ．．．１００ｎに関連する１つ又は複数のＰＣＩアダプタを構成することができる（ブロック３２０において）。構成に続いて、プロセスが終了する（ブロック３１８において）。
【００２５】
したがって、図３の論理は、処理用複合体１００ａ．．．１００ｎの初期プログラムのロードが完了するまで共有ＰＣＩアダプタ１０２の構成が延期される、特定の実施形態を示す。処理用複合体１００ａ．．．１００ｎの初期プログラムのロードの完了に応答して、複数の処理用複合体１００ａ．．．１００ｎの１つだけが、共有ＰＣＩアダプタ１０２を構成し、該共有ＰＣＩアダプタ１０２の構成情報を他の処理用複合体に配信することができる。
【００２６】
図４は、本発明の特定の説明された実施形態による、共有ＰＣＩアダプタ１０２の論理所有権を移転するための論理を示す。特定の実施形態において、共有ＰＣＩアダプタの論理所有権を移転するための論理を、処理用複合体１００ａ．．．１００ｎ内で実行するクラスタ化アプリケーション１０８ａ．．．１０８ｎ内に実装することができる。
【００２７】
ＰＣＩアダプタ１０２の論理的所有者である処理用複合体が故障するブロック４００において、制御が始まる。故障は、ソフトウェア、ハードウェア又はファームウェアのエラーのために、論理的所有者の誤動作が原因となることもある。論理的所有者の故障は、他の理由のために生じることもある。
【００２８】
論理的所有者ではない処理用複合体のクラスタ化アプリケーションが、ＰＣＩアダプタ１０２の新しい論理的所有者を決定する（ブロック４０２において）。例えば、特定の実施形態において、故障した論理的所有者が処理用複合体１００ａである場合、クラスタ化アプリケーション１０８ｂ．．．１０８ｎは、処理用複合体１００ｂ．．．１００ｎからＰＣＩアダプタ１０２の新しい論理的所有者を決定する。
【００２９】
新しい論理的所有者内のクラスタ化アプリケーションは、ＰＣＩアダプタ１０２を構成又は再構成し、ＰＣＩアダプタ１０２の構成情報を他の処理用複合体のクラスタ化アプリケーションに配信する責任を負う（ブロック４０４において）。例えば、処理用複合体１００ａが故障し、新しい論理的所有者が処理用複合体１００ｂである場合、新しい論理的所有者１００ｂは、ＰＣＩアダプタ１０２を構成又は再構成し、ＰＣＩアダプタ１０２の構成情報を処理用複合体１００ｃ．．．１００ｎのクラスタ化アプリケーション１０８ｃ．．．１０８ｎに配信する責任を負うことができ、そこで、処理用複合体１００ａ、１００ｂ、１００ｃ．．．１００ｎは、ＰＣＩアダプタ１０２を共有する。
【００３０】
特定の実施形態において、新しい論理的所有者のクラスタ化アプリケーションは、故障した処理用複合体が動作可能になり、処理用複合体と再結合するようになったかどうかを判断し（ブロック４０６において）、そこで、処理用複合体は、マルチ・クラスタ環境を形成することができる。故障した処理用複合体が動作可能になり、処理用複合体と再結合するようになった場合、特定の実施形態において、新しい論理的所有者内のクラスタ化アプリケーションは、共有ＰＣＩアダプタ１０２の論理所有権を再び前の論理的所有者に移転することができる（ブロック４０８において）。例えば、元の論理的所有者１００ａがもはや故障した処理用複合体ではない場合、新しい論理的所有者１００ｂは、随意的に、共有ＰＣＩアダプタ１０２の論理所有権を再び元の論理的所有者１００ａに移転することができる。故障した処理用複合体が動作可能にならないと、新しい論理的所有者内のクラスタ化アプリケーションが判断した場合（ブロック４０６において）、新しい論理的所有者は、共有ＰＣＩアダプタ１０２を構成し、構成情報を配信する責任を引き続き負う（ブロック４０４において）。
【００３１】
したがって、図４は、共有ＰＣＩアダプタ１０２の論理的所有者の故障時に、他の処理用複合体が、ＰＣＩアダプタ１０２を構成し、該ＰＣＩアダプタ１０２の構成情報を他の機能している処理用複合体に配信する責任を負う新しい論理的所有者を決定する。元の論理的所有者が故障から回復した時、特定の実施形態において、新しい論理的所有者は、ＰＣＩアダプタの論理所有権を再び元の論理的所有者に移転することができる。
【００３２】
図５は、本発明の特定の説明された実施形態による、第２のコンピューティング環境５００のブロック図を示す。第２のコンピューティング環境５００において、複数の処理用複合体１００ａ．．．１００ｎ内の処理用複合体が、マルチ・クラスタ・システム５０２のノードである場合、複数の処理用複合体１００ａ．．．１００ｎは、マルチ・クラスタ・システム５０２を含むことができる。
【００３３】
マルチ・クラスタ・システム５０２内の処理用複合体１００ａ．．．１００ｎは、バス５０６を介して共有リソース５０４に結合させることができる。特定の実施形態において、共有リソース５０４は、ＰＣＩアダプタ１０２を含むことができ、バス５０６は、ＰＣＩバスとすることができる。特定の実施形態においては、ＰＣＩアダプタ１０２に加えて別のリソースが、共有リソース５０４を含むことができる。共有リソース５０４は、マルチ・クラスタ・システム５０２の処理用複合体１００ａ．．．１００ｎが初期プログラムのロードが完了するまで共有リソース５０４の構成を延期するべきかどうかを示す遅延構成インジケータ５０８を含むことができる。マルチ・クラスタ・システム５０２の処理用複合体１００ａ．．．１００ｎの初期プログラムのロードの完了に続いて、処理用複合体１００ａ．．．１００ｎの１つだけが、共有リソース５０４を構成し、共有リソースの構成情報を他の処理用複合体に配信することができる。
【００３４】
マルチ・クラスタ・システム５０２に結合されたホスト５１０は、共有リソース５０４を介して、処理用複合体１００ａ．．．１００ｎ内のデータにアクセスすることができる。１つ又は複数の処理用複合体１００ａ．．．１００ｎが故障しても、ホスト５１０によって、共有リソース５０４を介してアクセスすることができる。
【００３５】
処理用複合体の初期プログラムのロードが完了するまで、共有ＰＣＩアダプタの構成を延期すべきであることを示す属性が、共有ＰＣＩアダプタと関連付けられる。複数の処理用複合体内に実装されるクラスタ化アプリケーションは、複数の処理用複合体を調整することができるので、複数の処理用複合体のうちの単一の処理用複合体だけが、共有ＰＣＩアダプタを構成し、該共有ＰＣＩアダプタの構成情報を他の処理用複合体に配信する。複数の処理用複合体のうちの１つより多い処理用複合体が、共有ＰＣＩアダプタを構成することになる場合、共有ＰＣＩアダプタが誤り状態になる可能性があり、複数の処理用複合体の間で共有リソースを共有することができなくなることがある。本実施形態は、複数の処理用複合体の１つだけを用いてＰＣＩアダプタを構成することによって、ＰＣＩアダプタが、複数の処理用複合体の間で共有されることを可能にするというものである。
【００３６】
付加的な実施の詳細
説明される技術は、標準的なプログラミング技術及び／又はエンジニアリング技術を用いて、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせを生成する方法、装置、又は製造物品として実施することができる。ここで用いられる「製造物品」という用語は、ハードウェア論理（例えば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）、又はコンピュータ可読媒体（例えば、ハード・ディスク・ドライブ、フロッピー（Ｒ）ディスク、テープのような磁気記憶媒体）、光記憶装置（例えば、ＣＤロム、光ディスク等）、揮発性及び不揮発性メモリ装置（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能論理等）内に実装されるコード又は論理を指す。コンピュータ可読媒体内のコードは、プロセッサによってアクセスされ、実行される。実施形態を行うコードは、伝送媒体を通して又はネットワーク上のファイル・サーバからさらにアクセス可能である。この場合、コードを実施する製造物品は、ネットワーク伝送ライン、無線伝送媒体、空間を通して伝播する信号、電波、赤外線信号等のような伝送媒体を含むことができる。もちろん、当業者であれば、本実施形態の範囲から逸脱することなく、こうした構成に多くの変更をなし得ること、及び、製造物品が、当該技術分野に周知の媒体を有する何らかの情報を含み得ることを認識するであろう。
【００３７】
図６は、本発明の特定の態様を実施するコンピュータ・アーキテクチャのブロック図を示す。処理用複合体１００ａ．．．１００ｎのいずれか又はホスト５１０は、プロセッサ６０２、メモリ６０４（例えば、揮発性メモリ装置）、及び格納装置６０６（例えば、不揮発性格納装置、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等）を有するコンピュータ・アーキテクチャ６００を実装することができる。格納装置６０６は、内部格納装置、付属格納装置、又はネットワーク・アクセス可能な格納装置を含むことができる。格納装置６０６内のプログラムをメモリ６０４にロードすることができ、当該技術分野に周知の方法で、プロセッサ６０２によって実行することができる。アーキテクチャは、ネットワークとの通信を可能にするためのネットワーク・カード６０８をさらに含むことができる。アーキテクチャはまた、キーボード、タッチスクリーン、ペン、音声作動式入力等のような少なくとも１つの入力装置６１０、及び、表示装置、スピーカ、プリンタ等のような少なくとも１つの出力装置６１２を含むこともできる。
【００３８】
図３及び図４の論理は、特定の順序で生じる特定の動作を説明するものである。さらに、動作を、並行して、かつ、連続的に行うことができる。代替的な実施形態において、特定の論理動作を異なる順序で行い、変更又は除去し、依然として本発明の実施形態を実施することもできる。さらに、上述の論理にステップを付加することができ、そのステップを依然として実施形態に適合させることができる。単一のプロセッサ又は分散プロセッサによって、更に別のステップを行うこともできる。
【００３９】
説明のために、個々のモジュールにおいて、多数のソフトウェア及びハードウェア・コンポーネントの構成要素が説明された。こうしたコンポーネントを、より少数のコンポーネントに統合することができ、又は、より多数のコンポーネントに分割することができる。付加的に、特定のコンポーネントによって実行される説明された特定の動作を、他のコンポーネントによって実行することができる。
【００４０】
したがって、実施形態の上記の説明は、例証及び説明のために与えられたものである。上記の説明は、網羅的であるように、又は本発明を開示された精密な形態に制限するように意図されるものではない。
【図面の簡単な説明】
【００４１】
【図１】本発明の特定の説明された実施形態による、第１のコンピューティング環境のブロック図を示す。
【図２】本発明の特定の説明された実施形態による、共有ＰＣＩアダプタと関連付けられたデータ構造のブロック図を示す。
【図３】本発明の特定の説明された実施形態による、共有ＰＣＩアダプタを構成するための論理を示す。
【図４】本発明の特定の説明された実施形態による、共有ＰＣＩアダプタの論理所有権を移転するための論理を示す。
【図５】本発明の特定の説明された実施形態による、第２のコンピューティング環境のブロック図を示す。
【図６】本発明の特定の説明される態様が実施されるコンピュータ・アーキテクチャのブロック図を示す。
【図１】
2007518168.tif 000003
【図２】
2007518168.tif 000004
【図３】
2007518168.tif 000005
【図４】
2007518168.tif 000006
【図５】
2007518168.tif 000007
【図６】
2007518168.tif 000008
【国際調査報告】
2007518168.tif 000009
2007518168.tif 000010
2007518168.tif 000011