(57)【特許請求の範囲】
【請求項１】
複数のコンピュータ・エンティティと多重リソースとを含むコンピュータ実装システムにおいて、
前記コンピュータ・エンティティのうちの１つが、前記多重リソースのうちの１つのリソースに対して多重リソース・ロックを要求することと、
前記１つのリソースが、前記１つのリソースにおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、全てのピア・リソースと通信して、リソース・ロックが使用可能であるかどうかを判断することと、
前記ピア・リソースがリソース・ロックが使用可能であることを示した場合、前記リソースの全てを前記多重リソース・ロックを要求しているコンピュータ・エンティティ（以下、要求コンピュータ・エンティティ）に対してロックし、前記１つのリソースが、前記多重リソース・ロックを前記要求コンピュータ・エンティティに通信することと、
いずれかのリソースが多重リソース・ロックに対する競合を示した場合、前記１つのリソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に前記多重リソース・ロックの要求を繰り返すことと、
前記要求コンピュータ・エンティティが前記１つのリソースと通信することができない場合に、前記要求コンピュータ・エンティティが、前記多重リソースのピア・リソースに対して多重リソース・ロックを要求することと、
前記ピア・リソースが、前記ピア・リソースにおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、前記１つのリソースを含むその他の全てのリソースと通信して、リソース・ロックが使用可能であるかどうかを判断することと、
前記その他のリソースがリソース・ロックが使用可能であることを示した場合、前記リソースの全てを前記要求コンピュータ・エンティティにロックし、前記ピア・リソースが、前記多重リソース・ロックを前記要求コンピュータ・エンティティに通信することと、
いずれかのリソースが前記多重リソース・ロックに対する競合を示した場合、前記ピア・リソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に前記多重リソース・ロックの要求を繰り返すことと、
前記ピア・リソースが、前記ピア・リソースにおいてリソース・ロックが使用可能であると判断し、かつ、全ての前記その他リソースと通信することができない場合、前記ピア・リソースが、障害を前記要求コンピュータ・エンティティに通信することと、
前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に、前記要求コンピュータ・エンティティの予め決められたリソースに対して単一リソース・ロックを要求することと
を含む方法。
【請求項２】
さらに、
前記予め決められたリソースが前記ロックに対する競合を示した場合、前記予め決められたリソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記単一リソース・ロックの要求をバックオフし、その後に前記単一リソース・ロックの要求を繰り返す、
請求項１に記載の方法。
【請求項３】
さらに、
前記１つのリソースが、前記１つのリソースにおいてリソース・ロックが使用可能であると判断し、かつ、全ての前記ピア・リソースと通信することができない場合、前記１つのリソースの１つが、前記障害を前記要求コンピュータ・エンティティに通信し、
前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に、前記要求コンピュータ・エンティティの予め決められたリソースに対して単一リソース・ロックを要求する、
請求項１または２に記載の方法。
【請求項４】
さらに、
前記要求コンピュータ・エンティティが前記予め決められたリソースと通信することができない場合、前記要求コンピュータ・エンティティが、前記多重リソースのうちのいずれかの使用可能なリソースに対して前記単一リソース・ロックを要求する、
請求項３に記載の方法。
【請求項５】
前記多重リソースの各々が、少なくとも１つのデータ・ストレージ・デバイスを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
各々がロックを要求するように構成された複数のコンピュータ・エンティティと、
多重リソースと、
前記コンピュータ・エンティティの各々と前記多重リソースの各々との間、及び前記多重リソースの各々の間の通信リンクと
を含むサーバ・システムであって、
前記コンピュータ・エンティティのうちの少なくとも１つ（以下、要求コンピュータ・エンティティ）が、前記通信リンクを介して前記多重リソースのうちの１つのリソースに対して多重リソース・ロックを要求するように構成され、
前記１つのリソースが、前記１つのリソースにおいてリソース・ロックが使用可能であるかどうかを判断するように構成され、使用可能である場合には、前記通信リンクを介して全てのピア・リソースと通信して、リソース・ロックが使用可能であるかどうかを判断し、
前記ピア・リソースがリソース・ロックが使用可能であることを示した場合、前記リソースの全てを前記要求コンピュータ・エンティティにロックし、前記１つのリソースが、前記通信リンクを介して前記多重リソース・ロックを前記要求コンピュータ・エンティティに通信し、
いずれかの前記リソースが前記多重リソース・ロックに対する競合を示した場合、前記１つのリソースが、前記通信リンクを介して前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に前記多重リソース・ロックの要求を繰り返し、
前記要求コンピュータ・エンティティが前記１つのリソースと通信することができない場合に、前記要求コンピュータ・エンティティが、前記多重リソースの前記ピア・リソースに対して多重リソース・ロックを要求し、
前記ピア・リソースが、前記ピア・リソースにおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、前記１つのリソースを含むその他の全ての前記リソースと通信して、リソース・ロックが使用可能であるかどうかを判断し、
前記その他のリソースがリソース・ロックが使用可能であることを示した場合、前記リソースの全てを前記要求コンピュータ・エンティティにロックし、前記ピア・リソースが、前記多重リソース・ロックを前記要求コンピュータ・エンティティに通信し、
いずれかの前記リソースが前記多重リソース・ロックに対する競合を示した場合、前記ピア・リソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に前記多重リソース・ロックの要求を繰り返し、
前記ピア・リソースが、前記ピア・リソースにおいてリソース・ロックが使用可能であると判断し、かつ、全ての前記その他のリソースと通信することができない場合、前記ピア・リソースが、障害を前記要求コンピュータ・エンティティに通信し、
前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に、前記要求コンピュータ・エンティティの予め決められたリソースに対して単一リソース・ロックを要求する、
サーバ・システム。
【請求項７】
さらに、
前記予め決められたリソースが前記単一リソース・ロックに対する競合を示した場合、前記予め決められたリソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記単一リソース・ロックの要求をバックオフし、その後に前記単一リソース・ロックの要求を繰り返す、
請求項６に記載のサーバ・システム。
【請求項８】
さらに、
前記１つのリソースが、前記リソースの１つにおいてリソース・ロックが使用可能であると判断し、かつ、全ての前記ピア・リソースと通信することができない場合、前記１つのリソースが、前記障害を前記要求コンピュータ・エンティティに通信し、
前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に、前記要求コンピュータ・エンティティの予め決められたリソースに対して単一リソース・ロックを要求する、
請求項６または７に記載のサーバ・システム。
【請求項９】
さらに、
前記要求コンピュータ・エンティティが前記予め決められたリソースと通信することができない場合に、前記要求コンピュータ・エンティティが、前記多重リソースのうちのいずれかの使用可能なリソースに対して前記単一リソース・ロックを要求する、
請求項８に記載のサーバ・システム。
【請求項１０】
前記多重リソースの各々が、少なくとも１つのデータ・ストレージ・デバイスを含む、請求項６乃至９のいずれか１項に記載のサーバ・システム。
【請求項１１】
各々がリソースに対してロックを要求するように構成された複数のコンピュータ・エンティティと共に用いるためのリソース構成システムであって、
多重リソースと、
前記多重リソースの各々から前記コンピュータ・エンティティの各々への通信リンクを提供し、かつ、前記多重リソースの各々の間の通信リンクを提供するように構成された、通信インターフェースと
を含み、
前記多重リソースのうちの１つのリソースが、前記１つのリソースに対して多重リソース・ロックを求める前記コンピュータ・エンティティのうちの１つ（以下、要求コンピュータ・エンティティ）による要求に応答するように構成され、前記応答は、前記１つのリソースにおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、前記通信リンクを介して全てのピア・リソースと通信して、リソース・ロックが使用可能であるかどうかを判断することを含み、
前記ピア・リソースがリソース・ロックが使用可能であることを示した場合、前記リソースの全てを前記要求コンピュータ・エンティティにロックし、前記１つのリソースが、前記通信インターフェースを介して前記多重リソース・ロックを前記要求コンピュータ・エンティティに通信し、
いずれかの前記リソースが前記多重リソース・ロックに対する競合を示した場合、前記１つのリソースが、前記通信インターフェースを介して前記競合を前記要求コンピュータ・エンティティに通信し、その結果、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に前記多重リソース・ロックの要求を繰り返すようになっており、
前記１つのリソースが、前記ピア・リソースにおいてリソース・ロックが使用可能であると判断し、かつ、全ての前記その他のリソースと通信することができない場合、前記１つのリソースが、前記通信インターフェースを介して障害を前記要求コンピュータ・エンティティに通信し、その結果、前記要求コンピュータ・エンティティが、前記多重リソース・ロックの要求をバックオフし、その後に、前記要求コンピュータ・エンティティの予め決められたリソースに対して単一リソース・ロックを要求するようになっている、
リソース構成システム。
【請求項１２】
さらに、
前記予め決められたリソースが前記単一リソース・ロックに対する競合を示した場合、前記予め決められたリソースが、前記競合を前記要求コンピュータ・エンティティに通信し、前記要求コンピュータ・エンティティが、前記単一リソース・ロックの要求をバックオフし、その後に前記単一リソース・ロックの要求を繰り返す、
請求項１１に記載のリソース構成システム。
【請求項１３】
前記多重リソースの各々が、少なくとも１つのデータ・ストレージ・デバイスを含む、請求項１０または１１に記載のリソース構成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、サーバ・システム内で用いられるコンピュータ・エンティティに関し、より具体的には、このようなシステム内のリソースをロックすることに関する。
【背景技術】
【０００２】
データ・ストレージ・サーバのようなサーバは複雑になってきており、データ・ストレージ媒体、ストレージ・コントローラ、メモリ、及び付随する電力システム、冷却システム等のような様々なハードウェアを伴う。
【０００３】
ストレージ・コントローラは、読み出し及び書き込み要求に応答して、データ・ストレージ媒体及びメモリへのアクセスを制御する。ストレージ・コントローラは、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ：独立ディスク冗長アレイ）、ＪＢＯＤ（ｊｕｓｔ  ａ  ｂｕｎｃｈ  ｏｆ  ｄｉｓｋｓ：単純ディスク束）といったデータ・ストレージ・デバイス、並びにその他の冗長性及びセキュリティ・レベルに従って、データを振り向けることができる。
【０００４】
一例として、ＤＳ８０００（登録商標）ＳｅｒｖｅｒのようなＩＢＭ（登録商標）のエンタープライズ・ストレージ・サーバ（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ）（登録商標）は、「ｃｅｎｔｒａｌ  ｅｌｅｃｔｒｏｎｉｃｓ  ｃｏｍｐｌｅｘｅｓ：中央エレクトロニクス複合体」又は「ＣＥＣ」と呼ばれる、コンピュータ・エンティティ、キャッシュ、不揮発性ストレージ等の冗長クラスタを有する。ＣＥＣは、システム内で実行される論理パーティション又はフィールド・イメージに分割することができ、ＣＥＣの各々の中のパーティションを含めて、各々のパーティションもまた冗長である。
【０００５】
システム内のリソースは、フィールド・イメージによって共有され、システムを構成することができる（電力供給及び冷却の順序付け（ｓｅｑｕｅｎｃｉｎｇ）及び動作等を制御する）ラック型電力制御（ＰＲＣ）モジュールを用いて制御される。
【０００６】
複数のラック型電力制御モジュールもまた冗長性を提供し、各々のラック型電力制御モジュールが同じハードウェアを制御することができる。それらは、フィールド・イメージと通信することができ、また、互いに通信し合うこともできる。
【０００７】
フィールド・イメージは互いに独立して動作し、フィールド・イメージ間には通信が存在しないので、多重のフィールド・イメージ（又はコンピュータ・エンティティ）が同じリソースを制御することを回避するために、ラック型電力制御モジュールを介して共有ハードウェア・リソースを管理するフィールド・イメージを、マスター・ロックを用いて１つ選択する。例えば、各々のフィールド・イメージが、それが通信することができるあらゆる共有ハードウェア・リソースと通信する必要があり、マスター・ロックを求めて別々に競合する、競合的状況が存在する。様々なフィールド・イメージが２つのＲＰＣ間で共有されるマスター・ロックを獲得しようとすると、フィールド・イメージとＲＰＣとの間の通信障害、及び様々なフィールド・イメージが同時にマスター・ロックを獲得しようとするときの競合の問題といった、様々な種類の問題が生じる可能性がある。多重のロックが獲得される可能性があり、そうなると、システムは、どのフィールド・イメージがマスタであるかを見分けることができず、ストレージ・エンティティの障害の場合に所望の復旧動作を混乱させることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、ここで参照すべき添付の特許請求の範囲において定義される。
【０００９】
多重リソース・ロックのための方法、サーバ・システム、リソース構成システム、及びコンピュータ・プログラム製品が提供される。
【課題を解決するための手段】
【００１０】
複数のコンピュータ・エンティティと多重のリソースとを含むコンピュータ実装システムの１つの実施形態において、以下のこと、すなわち、コンピュータ・エンティティのうちの１つが、多重リソースのうちの１つに対して多重リソース・ロックを要求すること、１つのリソースが、その１つのリソースおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、全てのピア・リソースと通信して、リソース・ロックが使用可能であるかどうかを判断すること、ピア・リソースがリソース・ロックが使用可能であることを示した場合、リソースの全てを要求コンピュータ・エンティティにロックし、１つのリソースが、リソースのロックを要求コンピュータ・エンティティに通信すること、及び、いずれかのリソースが多重リソース・ロックに対する競争を示した場合、１つのリソースが、競争を要求コンピュータ・エンティティに通信し、要求コンピュータ・エンティティが、多重リソース・ロック要求をバックオフし、ランダムな時間間隔後に要求を繰り返すこと、が実行される。
【００１１】
更なる実施形態において、さらに、要求コンピュータ・エンティティが１つのリソースと通信して多重リソース・ロックが使用可能であるかどうかを判断することができない場合、要求コンピュータ・エンティティは、多重リソースのピア・リソースに対して多重リソース・ロックを要求する。
【００１２】
別の実施形態において、さらに、ピア・リソースはピア・リソースにおいてリソース・ロックが使用可能であるかどうかを判断し、使用可能である場合には、１つのリソースを含むその他の全てのリソースと通信して、リソース・ロックが使用可能であるかどうかを判断し、その他のリソースがリソース・ロックが使用可能であることを示した場合、リソースの全てを要求コンピュータ・エンティティにロックし、ピア・リソースは、リソースのロックを要求コンピュータ・エンティティに通信し、いずれかのリソースが多重リソース・ロックに対する競合を示した場合、ピア・リソースは、競合を要求コンピュータ・エンティティに通信し、要求コンピュータ・エンティティは、要求をバックオフし、ランダムな時間間隔後に要求を繰り返す。
【００１３】
更なる実施形態において、ピア・リソースが、ピア・リソースにおいてリソース・ロックが使用可能であると判断し、全てのその他のリソースと通信してリソース・ロックが使用可能であるかどうかを判断することができない場合、ピア・リソースは、障害を要求コンピュータ・エンティティに通信し、要求コンピュータ・エンティティは、多重リソース要求をバックオフし、ランダムな時間間隔後に、多重リソースのデフォルト・リソースに対して単一リソース・ロックを要求する。
【００１４】
別の実施形態において、デフォルト・リソースがロックに対する競合を示した場合、デフォルト・リソースは、競合を要求コンピュータ・エンティティに通信し、要求コンピュータ・エンティティは、単一リソース・ロック要求をバックオフし、ランダムな時間間隔後に要求を繰り返す。
【００１５】
更なる実施形態において、１つのリソースが、１つのリソースにおいてリソース・ロックが使用可能であると判断し、かつ、全てのピア・リソースと通信してリソース・ロックが使用可能であるかどうかを判断することができない場合、１つのリソースは、障害を要求コンピュータ・エンティティに通信し、要求コンピュータ・エンティティは、多重リソース要求をバックオフし、ランダムな時間間隔後に、多重リソースのデフォルト・リソースに対して単一リソース・ロックを要求する。
【００１６】
別の実施形態において、さらに、要求コンピュータ・エンティティがデフォルト・リソースと通信して単一リソース・ロックが使用可能であるかどうかを判断することができない場合、要求コンピュータ・エンティティは、多重リソースのうちのいずれかの使用可能なリソースに対して要求する。
【００１７】
更なる実施形態において、多重リソースの各々は、少なくとも１つのデータ・ストレージ・デバイスを含む。
【００１８】
本発明をより完全に理解するために、添付の図面と共に以下の詳細な説明を参照されたい。
【図面の簡単な説明】
【００１９】
【図１】本発明の態様を実装することができる例示的なコンピュータ・ベースのストレージ・サーバ・システムのブロック図である。
【図２】図１のストレージ・サーバ・システムのパーティションのブロック図である。
【図３】図１及び図２のシステムを動作させる例示的な方法を示すフローチャートである。
【図４】図１及び図２のシステムを動作させる例示的な方法を示すフローチャートである。
【図５】図１及び図２のシステムの様々な状態の概略図である。
【図６】図１及び図２のシステムで用いることができる例示的な要素のブロック図である。
【発明を実施するための形態】
【００２０】
本発明は、図面を参照して以下の説明における好ましい実施形態において説明され、図中、同様の番号は、同一又は同様の要素を表す。本発明は本発明の目的を達成するための最良の形態に関して説明されるが、当業者であれば、本発明の範囲から逸脱することなくこれらの教示を鑑みてバリエーションに到達することができることを認識するであろう。
【００２１】
図１及び図２を参照すると、冗長性のために配置されたコンピュータ・ベースのサーバ・システム１０の例が示される。このシステムは、本発明を実装することができる多くのコンピュータ・ベースのシステムのうちの１つである。
【００２２】
サーバ・システム１０は、冗長ハードウェア複合体１４Ａ及び１４Ｂと、ハードウェア構成を検出し、ストレージ・サーバのための電力の順序付けを制御する、冗長ラック型電力制御（ＲＰＣ）モジュール２７Ａ及び２７Ｂとを含む。複合体１４Ａ及び１４Ｂは、複合体の各々がデータ・ストレージの実行及び管理を担うエレクトロニクス・サブコンポーネントを含んでいるので、本明細書において「ＣＥＣ」（Ｃｅｎｔｒａｌ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｍｐｌｅｘｅｓ：中央エレクトロニクス複合体）と称することができる。
【００２３】
サーバ・システム１０は、その各々が冗長複合体１４Ａ及び１４Ｂの両方にまたがる、論理フィールド・イメージ７１及び７２で配置することができる。複合体の各々の中にあるフィールド・イメージが、論理パーティション（ＬＰＡＲ）７１Ａ、７１Ｂ、７２Ａ、７２Ｂである。
【００２４】
図２の例示的な実施形態において、ＣＥＣ１４Ａ及び１４Ｂは、ストレージ・アレイ８０におけるデータの格納を制御し、ストレージ・アレイ８０もまた冗長方式で配置され、例えば、データとパリティ・ストレージの両方を含む１つ又は複数の独立ディスク冗長アレイ（ＲＡＩＤ）、又は単純ディスク束（ＪＢＯＤ）と一般に呼ばれる、１つ又は複数のストレージ・デバイスとして配置される。データ・ストレージ８０は、１つ又は複数のディスクの組８０Ａ、８０Ｂを含むことができ、各々のディスクの組は、１つ又は複数のスペア「Ｓ」を備えたシステムを含むことができる。
【００２５】
サーバ・システム１０の例は、ＩＢＭ（登録商標）ＤＳ８０００（登録商標）サーバを含む。
【００２６】
冗長ＣＥＣ１４Ａ及び１４Ｂは、各々が、例えばＣＰＵ４０Ａ、４０Ｂと、キャッシュ６６Ａ、６６Ｂと、不揮発性ストレージ（ＮＶＳ）７０Ａ、７０Ｂと、ストレージ・コントローラ７３Ａ、７４Ａ、７５Ａ、７６Ａ及び７３Ｂ、７４Ｂ、７５Ｂ、７６Ｂとを含む。クライアントは、例えば光ファイバ通信を用いた、例えばホスト・バス・アダプタ（ＨＢＡ）４９Ａ１−４、４９Ｂ５−８を介して複合体と通信することができる。
【００２７】
システム内のリソースは、ＣＥＣによって共有され、システムを構成することができる（電力供給及び冷却の順序付け及び動作等を制御する）ラック型電力制御（ＲＰＣ）モジュール２７を用いて制御される。冗長電源ユニット２６Ａ、２６Ｂは、交流及び直流の両方の電源ユニットと、バッテリ・バックアップ能力とを含むことができる。冗長電力管理モジュール７８Ａ、７８Ｂは、バッテリ・バックアップの電力及び残りのバッテリ寿命を含めて、電源ユニットを監視する。
【００２８】
さらに図１も一緒に参照すると、ラック型電力制御モジュール２７は、ラック型電力制御モジュール２７Ａ、２７Ｂのどちらを含むこともでき、例えばＣＥＣ１４Ａ及び１４Ｂの両方を含む、同じハードウェアを制御することができる。
【００２９】
フィールド・イメージ７１、７２は互いに独立して動作し、それらの間には通信が存在しないので、多重のフィールド・イメージ７１、７２（又はコンピュータ・エンティティ）が同じリソースを制御することを回避するために、ラック型電力制御モジュール２７Ａ、２７Ｂを介して共有ハードウェア・リソースを管理するフィールド・イメージを、マスター・ロックを用いて１つ選択する。例えば、各々のフィールド・イメージが、それが通信することができるあらゆる共有ハードウェア・リソースと通信する必要があり、マスター・ロックを求めて別々に競合する、競合的状況が存在する。フィールド・イメージは、２つのＲＰＣ２７Ａ、２７Ｂ間で共有されるマスター・ロックを獲得しようとする。
【００３０】
図１、図３、図４及び図５を参照すると、フィールド・イメージ７１、７２は各々、論理パーティション（ＬＰＡＲ）７１Ａ又は７１Ｂ、及び７２Ａ又は７２Ｂをそれぞれ選択してＲＰＣ２７Ａ又は２７Ｂと通信し、両方のＲＰＣからマスター・ロックを獲得することができる。図３、図４及び図５において、要求するＬＰＡＲは「エンティティ」と呼ばれ、ＲＰＣは「リソース」と呼ばれる。上述のように、エンティティ（ＬＰＡＲ）とリソース（ＲＰＣ）との間、及びリソース間の通信障害、並びに様々なエンティティが同時にマスター・ロックを獲得しようとする場合の競合の問題といった、様々な種類の問題が生じる可能性がある。
【００３１】
ステップ１０５において、コンピュータ・エンティティ７１Ａ又は７１Ｂ、及び７２Ａ又は７２Ｂのうちの１つが、多重リソース２７Ａ又は２７Ｂのうちの１つに多重リソース・ロックを要求する状態１０６に入る。この要求は、そのフィールド・イメージのために全てのＲＰＣからロックを獲得する要求であるので、これを多重リソース・ロック要求と名付ける。両方のフィールド・イメージが同時にロックを要求することが可能である。
【００３２】
ステップ１０５において、要求コンピュータ・エンティティ、例えばエンティティＬＰＡＲ７１Ａが、１つのリソース、例えばＲＰＣ２７Ａと問題なく通信する場合（ステップ１０７における「いいえ」）には、状態１０６は同じ状態のままであり、その１つのリソースは、リソース・ロックがその１つのリソースにおいて使用可能であるかどうかを判断し、使用可能である場合には、ステップ１０９において、全てのピア・リソース、例えばＲＰＣ２７Ｂと通信して、リソース・ロックがピア・リソースにおいて使用可能であるかどうかを判断する。ステップ１０９において、１つのリソース、例えばＲＰＣ２７Ａが、そのピア・リソース、例えばＲＰＣ２７Ｂと問題なく通信する場合（ステップ１１０における「いいえ」）には、状態１０６は同じ状態のままであり、１つのリソースは、ピア・リソースにおいてリソース・ロックが使用可能であるかどうかを判断し、リソース・ロックが使用可能であるということはロックに対する競合が存在しないことを意味する。ステップ１１１が、１つのリソース（ＲＰＣ２７Ａ）又はピア・リソース（ＲＰＣ２７Ｂ）のいずれにおいてもロックに対する競合が存在しないことを示す場合には、ステップ１１５においてリソースの全てが要求コンピュータ・エンティティにロックされ、これによりリソースからロックを獲得し、１つのリソース（ＲＰＣ２７Ａ）は、リソースのロックを要求コンピュータ・エンティティ（ＬＰＡＲ７１Ａ）に通信し、状態１０６は、マスター・ロックの獲得に成功したことになる。
【００３３】
ステップ１１１でＲＰＣのうちの１つがロック競合の戻りコード（「はい」）を与えることは、想定され得る結果である。その時点で、要求エンティティ（ＬＰＡＲ７１Ａ）は、ランダムな時間間隔を与えるバックオフ・タイマをステップ１１７において始動させ、タイマの期限が切れたときに、要求エンティティがステップ１０５において要求を繰り返す。このプロセスは、状態１０６に関するループ１１８として示される。
【００３４】
要求コンピュータ・エンティティ、例えばＬＰＡＲ７１Ａが、リソースの１つと通信して多重リソース・ロックが使用可能であるかどうかを判断することができない場合（ステップ１０７における「はい」）には、要求コンピュータ・エンティティは、ステップ１２０において、多重リソースのうちのピア・リソース、例えばＲＰＣ２７Ｂに多重リソース・ロックを要求する。ステップ１２０は、随意的に、ランダムな時間間隔を与えるバックオフ・タイマをステップ１２１において始動させた後に行うことができ、タイマの期限が切れたときに、要求エンティティがステップ１２０において要求を送信する。このプロセスは、状態１２４に関する経路１２２として示される。
【００３５】
ステップ１２０において、要求コンピュータ・エンティティ、例えばエンティティＬＰＡＲ７１Ａが、ピア・リソース、例えばＲＰＣ２７Ｂと問題なく通信する場合（ステップ１２５における「いいえ」）には、状態１２４は同じ状態のままであり、ピア・リソースは、リソース・ロックがピア・リソースにおいて使用可能であるかどうかを判断し、使用可能である場合には、ステップ１２６において、その他のリソース、例えばＲＰＣ２７Ａと通信して、リソース・ロックがその他のリソースにおいて使用可能であるかどうかを判断する。ステップ１２６において、ピア・リソース、例えばＲＰＣ２７Ｂが、その他のリソース、例えばＲＰＣ２７Ａと問題なく通信する場合（ステップ１２９における「いいえ」）には、状態１２４は同じ状態のままであり、ピア・リソースは、その他のリソースにおいてリソース・ロックが使用可能であるかどうかを判断し、リソース・ロックが使用可能であるということはロックに対する競合が存在しないことを意味する。ステップ１３１が、ピア・リソース（ＲＰＣ２７Ｂ）又はその他のリソース（ＲＰＣ２７Ａ）のいずれにおいてもロックに対する競合が存在しないことを示す場合には、ステップ１３５においてリソースの全てが要求コンピュータ・エンティティにロックされ、これによりリソースからロックを獲得し、ピア・リソース（ＲＰＣ２７Ｂ）は、リソースのロックを要求コンピュータ・エンティティ（ＬＰＡＲ７１Ａ）に通信し、状態１２４は、マスター・ロックの獲得に成功したことになる。
【００３６】
ステップ１３１において、ＲＰＣのうちの１つが、ロック競合の戻りコード（「はい」）を与えることがある。その時点で、要求エンティティ（ＬＰＡＲ７１Ａ）は、ランダムな時間間隔を与えるバックオフ・タイマをステップ１２１において始動させ、タイマの期限が切れたときに、要求エンティティがステップ１２０において要求を繰り返す。このプロセスは、状態１２４に関するループ１３３として示される。
【００３７】
しかしながら、ステップ１２０の元々の要求が、要求エンティティ（ＬＰＡＲ７１Ａ）からピア・リソース（ＲＰＣ２７Ｂ）に対する通信の問題をもたらす場合（ステップ１２５における「はい」）は、これを要求エンティティから１つのリソース（ＲＰＣ２７Ａ）に対する通信の問題（ステップ１０７における「はい」）とまとめて考えると、状態１２４からの経路１３９として示されるように、要求エンティティからリソースへの通信が存在しないことを意味し、状態１４０及びステップ１４１として示されるように、エンティティがロックを獲得することができないことを意味する。従って、マスター・ロックは、別の要求エンティティによって獲得される可能性がある。
【００３８】
別の想定され得る問題は、ステップ１１０が、状態１０６からの経路１４３として示されるように、又はステップ１２９が、状態１２４からの経路１４４として示されるように、要求エンティティから少なくとも１つリソースへの通信はＯＫであるが、リソース（ＲＰＣ２７Ａ及びＲＰＣ２７Ｂ）間の通信に関する障害が存在することを示すことである。この場合、結合子１５０は、プロセス・フローが結合子１５１に続くことを示す。
【００３９】
要求コンピュータ・エンティティは、ステップ１６０において、デフォルト・リソース、例えば要求エンティティに関連付けられたものとして識別されるリソースに対して、単一リソース・ロックを要求する。一例において、ＬＰＡＲ７１Ａは、ＲＰＣ２７Ａをそれ自身のデフォルト・リソースとして識別することができる。ステップ１６０は、随意的に、ランダムな時間間隔を与えるバックオフ・タイマをステップ１６１において始動させた後に行うことができ、タイマの期限が切れたときに、要求エンティティがステップ１６０において要求を送信する。このプロセスは、状態１６４として示される。
【００４０】
ステップ１６０において、要求コンピュータ・エンティティ、例えばエンティティＬＰＡＲ７１Ａが、デフォルト・リソース、例えばＲＰＣ２７Ａと問題なく通信する場合（ステップ１６５における「いいえ」）には、状態１６４は同じ状態のままであり、デフォルト・リソースは、ステップ１６６において、デフォルト・リソースにおいてリソース・ロックが使用可能であるかどうかを判断し、リソース・ロックが使用可能であるということはロックに対する競合が存在しないことを意味する。ステップ１６６が、デフォルト・リソース（ＲＰＣ２７Ａ）においてロックに対する競合が存在しないことを示す場合には、ＲＰＣ２７Ａの制御下にあるリソースは、ステップ１６８において要求コンピュータ・エンティティにロックされ、デフォルト・リソース（ＲＰＣ２７Ａ）は、リソースのロックを要求コンピュータ・エンティティ（ＬＰＡＲ７１Ａ）に通信し、状態１６４は、単一ロックの獲得に成功したことになる。
【００４１】
ステップ１６６において、デフォルトＲＰＣが、ロック競合の戻りコード（「はい」）を与えることがある。その時点で、要求エンティティ（ＬＰＡＲ７１Ａ）は、ランダムな時間間隔を与えるバックオフ・タイマをステップ１６１において始動させ、タイマの期限が切れたときに、要求エンティティがステップ１６０において要求を繰り返す。このプロセスは、状態１６４に関するループ１６９として示される。
【００４２】
しかしながら、ステップ１６０の単一ロック要求が、要求エンティティ（ＬＰＡＲ７１Ａ）からデフォルト・リソース（ＲＰＣ２７Ａ）に対する通信の問題をもたらす場合（ステップ１６５における「はい」）は、これは、状態１６４からの経路１７０を示し、この場合、要求エンティティ（ＬＰＡＲ７１Ａ）は、状態１７５としても表されるステップ１７４において単一ロック要求を最後の使用可能なリソースに送信する。
【００４３】
ステップ１７４において、二重リソース（ＲＰＣ２７Ａ及びＲＰＣ２７Ｂ）が使用可能なリソースを構成し、要求エンティティとデフォルト・リソースとの間に通信の問題が存在する場合には、最後の使用可能なリソースは、二重リソースのうちのもう一方となる。例えば、ＲＰＣ２７Ａが要求エンティティ（ＬＰＡＲ７１Ａ）のデフォルト・リソースである場合には、もう一方のリソース（ＲＰＣ２７Ｂ）が最後の使用可能なリソースになる。ステップ１７４は、随意的に、ランダムな時間間隔を提供するバックオフ・タイマをステップ１７６において始動させた後に行うことができ、タイマの期限が切れたときに、要求エンティティが、ステップ１７４にて、すなわち状態１７５において要求を送信する。
【００４４】
ステップ１７４において、要求コンピュータ・エンティティ、例えばエンティティ（ＬＰＡＲ７１Ａ）が、最後の使用可能なリソース、例えばＲＰＣ２７Ｂと問題なく通信する場合（ステップ１８０における「いいえ」）には、状態１７５は同じ状態のままであり、デフォルト・リソースは、ステップ１８２において、最後の使用可能なリソースにおいてリソース・ロックが使用可能であるかどうかを判断し、リソース・ロックが使用可能であるということはロックに対する競合が存在しないことを意味する。ステップ１８２が、最後の使用可能なリソース（ＲＰＣ２７Ｂ）においてロックに対する競合が存在しないことを示す場合には、ＲＰＣ２７Ｂの制御下にあるリソースは、ステップ１８８において要求コンピュータ・エンティティにロックされ、最後の使用可能なリソース（ＲＰＣ２７Ｂ）は、リソースの単一ロックを要求コンピュータ・エンティティ（ＬＰＡＲ７１Ａ）に通信し、状態１７５は、単一ロックの獲得に成功したことになる。
【００４５】
ステップ１８２において、最後の使用可能なＲＰＣが、ロック競合の戻りコード（「はい」）を与えることがある。その時点で、要求エンティティ（ＬＰＡＲ７１Ａ）は、ランダムな時間間隔を与えるバックオフ・タイマをステップ１７６において始動させ、タイマの期限が切れたときに、要求エンティティがステップ１７４において要求を繰り返す。このプロセスは、状態１７５に関するループ１８９として示される。
【００４６】
しかしながら、ステップ１８０の単一ロック要求が、要求エンティティ（ＬＰＡＲ７１Ａ）から最後の使用可能なリソース（ＲＰＣ２７Ｂ）に対する通信の問題をもたらす場合（ステップ１８０における「はい」）は、これを要求エンティティからデフォルト・リソース（ＲＰＣ２７Ａ）に対する通信の問題（ステップ１６５における「はい」）まとめて考えると、状態１７５からの経路１９２として示されるように、要求エンティティからリソースへの通信が存在しないことを意味し、状態１４０及びステップ１９５として示されるように、エンティティが単一ロックを獲得することができないことを意味する。
【００４７】
ステップ１４１において多重ロックが獲得できないこと又はステップ１９５において単一ロックが獲得できないことのいずれも、エラー状態として報告することができる。エラー状態は、複合体からの通信が遮断されているか又は故障している可能性があるとことを示す指示である。通信途絶が、その要求エンティティ又はパーティションに限られている場合には、フィールド・イメージ７１の別の要求エンティティ（ＬＰＡＲ７１Ｂ）、又はフィールド・イメージ７２のような別のフィールド・イメージのパーティションの要求エンティティは、多重ロック又は単一ロックを獲得することが可能である場合がある。
【００４８】
あるいは、２つより多くのリソースを含む場合もあり、その他のリソース毎にステップ１６０を繰り返すことによってその他のリソースを単一ロックについてテストすることができ、ステップ１６５の各インスタンスで通信の問題が検出された場合に限り、プロセスは、ステップ１７６及び１７４に移動して、最後の使用可能なリソースに単一ロック要求を送信することになる。
【００４９】
（さらなる実施形態の詳細）
説明した技術は、方法、装置若しくはシステム、又は、例えばコンピュータ可読媒体のようなハードウェア内に格納されたものとしての製品の形態のコンピュータ・プログラム製品として実装することができる。実装は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア及び／又はこれらのいずれかの組み合わせを伴うことができる。
【００５０】
図６は、図１及び図２の複合体１４Ａ又は１４Ｂ及びＲＰＣ２７、２７Ａ又は２７Ｂの中に含めることができるシステム６００として示される特定の要素を示す、ブロック図を示す。複合体１４Ａ又は１４Ｂの中に含まれるシステム６００の実装は、図２の、ＣＰＵ４０Ａ、４０Ｂ、電力管理モジュール７０Ａ、７０Ｂ及び／又はストレージ・コントローラ７２Ａ−７５Ｂ、又はそれ以外のシステム若しくはコンポーネントのいずれか又は全てを含むことができる。
【００５１】
システム６００は、回路６０２及びプロセッサ６０４を含むことができる。システム６００はまた、メモリ６０６及びストレージ６０８を含むこともできる。メモリ６０６は例えば揮発性とすることができ、ストレージ６０８は不揮発性とすることができる。ストレージ６０８は、１つ又は複数の、内部ストレージ・デバイス、外付けストレージ・デバイス及び／又はネットワーク・アクセス可能デバイスを含むことができる。システム６００は、コード６１２を含むプログラム論理６１０を含むことができ、これは、メモリ６０６及び／又はストレージ６０８内にロードされ、プロセッサ６０４及び／又は回路６０２によって実行することができる。特定の実施形態において、プログラム論理６１０は、ストレージ６０８内に格納することもでき、又は代替的に回路６０２内で実装することもできる。従って、図６は他の要素とは別にプログラム論理６１０及びコード６１２を示しているが、プログラム論理６１０及び／又はコード６１２は、メモリ６０６、ストレージ６０８及び／又は回路６０２内に実装することができる。
【００５２】
実装は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア及び／又はこれらのいずれかの組み合わせを伴うことができる。実装は、メモリ６０６、ストレージ６０８及び／又は回路６０２のような媒体内に実装されるコード又は論理の形態をとることができ、媒体は、ハードウェア論理（例えば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又はその他の回路、論理若しくはデバイス）、又は磁気ストレージ媒体のようなコンピュータ可読ストレージ媒体（例えば、電子、磁気、光学、電磁、赤外線又は半導体のシステム、半導体又は固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、及びランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛直な磁気ディスク及び光ディスク、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤ）を含むことができる。
【００５３】
当業者であれば、上述の方法に対してステップの順序の変更を含む変更を加えることができることを理解するであろう。さらに、当業者であれば、ここで示されたものと異なる特定のコンポーネント配置を用いることができることを理解するであろう。
【００５４】
本発明の好ましい実施形態を詳細に示したが、当業者であれば、以下の特許請求の範囲で述べられる本発明の範囲から逸脱することなくそれらの実施形態の修正及び改変が想起され得ることが明らかである。
【符号の説明】
【００５５】
１０：サーバ・システム
１４Ａ、１４：冗長ハードウェア複合体（ＣＥＣ）
２７：ラック型電力制御モジュール（ＲＰＣ）
７１、７２：論理フィールド・イメージ
７１Ａ、７１Ｂ、７２Ａ、７２Ｂ：論理パーティション（ＬＰＡＲ）
８０：データ・ストレージ
【図１】
0005559316.tif 000002
【図２】
0005559316.tif 000003
【図３】
0005559316.tif 000004
【図４】
0005559316.tif 000005
【図５】
0005559316.tif 000006
【図６】
0005559316.tif 000007