(57)【要約】【課題】  ノード間でデバイス・エラー情報を同期化するための方法、システム及びコンピュータ・プログラムを提供する。【解決手段】  第１のノードは、第１のノード及び第２のノードと通信状態にあるデバイスに関する第１ノード・エラー・カウンタに対してアクションを実行する。第１のノードは、デバイス、及びデバイスに関する第１ノード・エラー・カウンタに対して実行されたアクションを示すメッセージを第２のノードに伝送する。第２のノードは、メッセージ内に示されたデバイスに関する第２ノード・エラー・カウンタに対してメッセージ内に示されたアクションを実行し、ここで、第２ノード・エラー・カウンタは、デバイスに関する第１ノード・エラー・カウンタに対応する。【選択図】      図６
2011524563.tif 000002
【特許請求の範囲】
【請求項１】
第１のノードによって、前記第１のノード及び第２のノードと通信状態にあるデバイスに関する第１ノード・エラー・カウンタに対してアクションを実行するステップと、
前記第１のノードによって、前記デバイスと前記デバイスに関する前記第１ノード・エラー・カウンタに対して実行された前記アクションとを示すメッセージを、前記第２のノードに伝送するステップと、
前記第２のノードによって、前記メッセージ内に示された前記デバイスに関する第２ノード・エラー・カウンタに対して、前記メッセージ内に示された前記アクションを実行するステップであって、前記第２ノード・エラー・カウンタは、前記デバイスに関する前記第１ノード・エラー・カウンタに対応する、ステップと、
を含む方法。
【請求項２】
前記メッセージ内に示される前記アクションは、オープン・アクションを含み、前記第２のノードによって前記オープン・アクションを実行するステップは、前記メッセージに応答して前記デバイスに関する前記第２ノード・エラー・カウンタを作成するステップを含む、請求項１に記載の方法。
【請求項３】
前記メッセージ内に示される前記アクションは、終了アクションを含み、前記第２のノードによって前記終了アクションを実行するステップは、前記メッセージに応答して前記デバイスに関する前記第２ノード・エラー・カウンタを終了するステップを含む、請求項１に記載の方法。
【請求項４】
前記第１のノードによって前記デバイスのエラーを検出するステップをさらに含み、
前記第１のノードによって実行される前記アクションは、前記エラーの検出に応答して前記デバイスに関する前記第１ノード・エラー・カウンタをインクリメントするステップを含み、
前記メッセージ内に示される前記アクションは、インクリメント・アクションを含み、
前記第２のノードによって前記インクリメント・アクションを実行するステップは、前記第２のノードにおいて前記デバイスに関する前記第２ノード・エラー・カウンタをインクリメントするステップを含む、
請求項１に記載の方法。
【請求項５】
前記エラー・カウンタ値がエラー閾値に達したことに応答して、前記第１のノードによってエラー回復動作を開始するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のノードは、前記デバイスに対するエラー・ハンドリングを実行する前記デバイスの所有者として動作し、
前記第２のノードによって、前記デバイスの所有権を引き継ぐステップと、
前記第２のノードが前記デバイスのエラーを検出したことに応答して、前記第２のノードによって、前記第１のノードによって検出された前記デバイスのエラーを示す前記第２ノード・エラー・カウンタをインクリメントするステップと、
をさらに含む、
請求項１に記載の方法。
【請求項７】
前記第２のノードは、前記第１のノードの故障に応答して前記デバイスの前記所有権を引き継ぐ、請求項６に記載の方法。
【請求項８】
前記デバイスは、第１のデバイスを含み、前記第１ノード・エラー・カウンタは、第１ノード第１デバイス・エラー・カウンタを含み、前記第２ノード・エラー・カウンタは、第２ノード第１デバイス・エラー・カウンタ・コピーを含み、
前記第２のノードによって、前記第１のノード及び前記第２のノードと通信状態にある第２のデバイスのエラー数を示す第２ノード第２デバイス・エラー・カウンタを保持するステップと、
前記第１のノードによって、前記第２のノードによって検出されたエラーを含む前記第２のデバイスのエラー数を示す第１ノード第２デバイス・エラー・カウンタを保持するステップと、
をさらに含む、
請求項１に記載の方法。
【請求項９】
前記第１及び第２のノードは、サーバー内の第１のインターフェースを介して通信する前記サーバー内の第１及び第２の処理クラスタを含み、
前記第１及び第２のデバイスは、第１及び第２のネットワーク・アダプタを含み、
前記第１及び第２の処理クラスタは、第２のインターフェースを介して前記第１及び第２のアダプタと通信する、
請求項８に記載の方法。
【請求項１０】
前記第２のノードによって、前記第２のデバイスからエラー・メッセージを受信するステップと、
前記第２のノードによって、前記第２ノード第２デバイス・エラー・カウンタをインクリメントするステップと、
前記第２のノードによって、前記第２のデバイスに関するインクリメント・メッセージを前記第１のノードに伝送するステップと、
前記インクリメント・メッセージに応答して、前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを前記第２のエラー・カウンタ値にインクリメントするステップと、
をさらに含む、請求項８に記載の方法。
【請求項１１】
前記第１のノードは、前記第１のデバイスに対するエラー・ハンドリングを実行する前記第１のデバイスの所有者として動作し、
前記第２のノードは、前記第２のデバイスに対するエラー・ハンドリングを実行する前記第２のデバイスの所有者として動作し、
前記第２のノードによって前記第１のデバイスの所有権を引き継ぐステップであって、前記第２のノードは、前記第２ノード第１デバイス・エラー・カウンタを用いて、前記第１のデバイスに対するエラー管理を実行する、ステップと、
前記第１のノードによって前記第２のデバイスの所有権を引き継ぐステップであって、前記第１のノードは、前記第１ノード第２デバイス・エラー・カウンタを用いて、前記第２のデバイスに対するエラー管理を実行する、ステップと、
をさらに含む、請求項８に記載の方法。
【請求項１２】
前記第１及び第２のノードにおいて同期化動作を開始するステップと、
前記同期化動作に応答して、前記第１のノードによって、前記第１ノード第１デバイス・エラー・カウンタの値を前記第２のノードに示す同期化メッセージを、前記第２のノードに送信するステップと、
前記同期化動作に応答して、前記第２のノードによって、前記第２ノード第２デバイス・エラー・カウンタの値を前記第１のノードに示す同期化メッセージを、前記第１のノードに送信するステップと、
をさらに含む、請求項８に記載の方法。
【請求項１３】
前記同期化メッセージ内に示された前記値が前記第１ノード第２デバイス・エラー・カウンタより大きいとの前記第１のノードの判断に応じて、前記第１のノードによって、前記第１のノードに送信された前記同期化メッセージ内に示された前記第２ノード第２デバイス・エラー・カウンタの前記値で前記第１ノード第２デバイス・エラー・カウンタを更新するステップと、
前記第２のノードに送信された前記同期化メッセージ内に示された前記値が前記第２ノード第１デバイス・エラー・カウンタより大きいとの前記第２のノードの判断に応じて、前記第２のノードによって、前記第２のノードに送信された前記同期化メッセージ内に示された前記第１ノード第１デバイス・エラー・カウンタの前記値で前記第２ノード第１デバイス・エラー・カウンタを更新するステップと、
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記第１のノードが前記第２のデバイスに関する前記第１ノード第２デバイス・エラー・カウンタを含まないとの判断に応じて、前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを作成するステップと、
前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを、前記第１のノードに送信された前記同期化メッセージ内に示された前記値に設定するステップと、
前記第２のノードが前記第１のデバイスに関する前記第２ノード第１デバイス・エラー・カウンタを含まないとの判断に応じて、前記第２のノードによって、前記第２ノード第１デバイス・エラー・カウンタを作成するステップと、
前記第２のノードによって、前記第２ノード第１デバイス・エラー・カウンタを、前記第２のノードに送信された前記同期化メッセージ内に示された前記値に設定するステップと、
をさらに含む、請求項１２に記載の方法。
【請求項１５】
前記第２のノードによって、再初期化動作を開始するステップと、
前記第２のノードによって、前記再初期化動作の一部として結合メッセージを前記第１のノードに送信するステップと、
前記結合メッセージに応答して、前記第１のノードによって、前記デバイスに関する前記第１ノード・エラー・カウンタの値を示すメッセージを前記第２のノードに送信するステップと、
前記結合メッセージに応答して、前記第２のノードによって、前記第２ノード・エラー・カウンタを、送信された前記メッセージ内に示された前記値に更新するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１６】
デバイスと通信状態にある第１のノード及び第２のノードを備えるシステムであって、前記第１及び第２のノードは、請求項１から請求項１５までのいずれかの請求項に記載された前記ステップを実行するためのプログラム・コードを実行するように様々に適合される、前記システム。
【請求項１７】
第１のノード及び第２のノードによって実行されるコードを含むコンピュータ・プログラムであって、１つのデバイスが、前記第１のノード及び前記第２のノードと通信状態にあり、前記コードは、請求項１から請求項１５までのいずれかの請求項において定義される前記ステップを実行するように実行される、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード間でデバイス・エラー情報を同期化するための方法、システム及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ストレージ・ネットワークにおけるホスト・システムは、多数の経路を介してストレージ・コントローラと通信することができる。ストレージ・コントローラは、別々のストレージ・クラスタ又はノードを備えることができ、その場合、各々のストレージ・クラスタは、ストレージにアクセスすることができ、ストレージにアクセスするための冗長性を与える。ホストは、いずれのクラスタを介しても付属のストレージにアクセスすることができる。ストレージ・クラスタが故障する場合には、ホストは、フェイルオーバし、他のストレージ・クラスタを用いて、ストレージにアクセスすることができる。
【０００３】
冗長ストレージ・コントローラ環境において、各々のストレージ・ノード又はクラスタは、ネットワーク及び入力／出力デバイス・アダプタのような、特定の外部リソースの所有権を確立するのが普通である。システム内のノードが故障する場合には、システム内の他のノードが、故障ノードが所有していたリソースの所有権を得ることができる。システム内の外部リソースがエラーを報告し始める場合には、所有ノードが、これらのエラーを閾値処理し、検出されたエラー数に基づいて適切なシステム回復動作を開始することになる。このプロセス中、所有ノードが故障する場合には、別の利用可能なノードが、外部リソースの所有権を得るが、故障ノードによって記録された以前のエラーの知見を有さない可能性がある。これは、新しい所有ノードが、外部ソース上の次のエラーをあたかも最初のエラーであるかのように処理することを招く。
【０００４】
さらに、外部リソースによって報告された多数のエラーが何らかの形で以前の所有ノードを故障させた場合には、新しい所有ノードが、以前のノードと同じアクションを起こすことになり、これは、新しい所有ノードが同様に故障することを招く可能性がある。システム内の他のノードがリソースの所有権を取り続ける場合には、全てのノードの故障を招く可能性があり、顧客に、データへのアクセスを失わせる可能性がある。ゼロのエラー・カウントから回復動作を再始動すると、全体のシステム回復（以前の所有ノード及び新しい所有ノードによって行われる）は、ホスト・システムが時間切れとなり、顧客がデータへのアクセスを失うのに十分なほど長時間かかる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
当技術分野において、複数のノードによってアクセスされる共有デバイスに関するエラー情報を保持するための改善された技術に対する必要性が存在する。
【課題を解決するための手段】
【０００６】
ノード間でデバイス・エラー情報を同期化するための方法、システム及びコンピュータ・プログラムを提供する。第１のノードは、第１のノード及び第２のノードと通信状態にあるデバイスに関する第１ノード・エラー・カウンタに対するアクションを実行する。第１のノードは、デバイス及びデバイスに関する第１ノード・エラー・カウンタに対して実行されたアクションを示すメッセージを第２のノードに伝送する。第２のノードは、メッセージ内に示されたデバイスに関する第２ノード・エラー・カウンタに対してメッセージ内に示されたアクションを実行し、ここで、第２ノード・エラー・カウンタは、デバイスに関する第１ノード・エラー・カウンタに対応する。
【０００７】
更に別の実施形態において、メッセージ内に示されたアクションは、オープン・アクションを含む。第２のノードは、メッセージに応答してデバイスに関する第２ノード・エラー・カウンタを作成することによってオープン・アクションを実行する。
【０００８】
更に別の実施形態において、メッセージ内に示されたアクションは、終了アクションを含む。第２のノードは、メッセージに応答してデバイスに関する第２ノード・エラー・カウンタを終了することによって終了アクションを実行する。
【０００９】
更に別の実施形態において、第１のノードは、デバイスのエラーを検出する。第１のノードは、エラーの検出に応じてデバイスに関する第１ノード・エラー・カウンタをインクリメントすることによってアクションを実行する。メッセージ内に示されたアクションは、インクリメント・アクションを含む。第２のノードは、第２のノードにおいてデバイスに関する第２ノード・エラー・カウンタをインクリメントすることによってインクリメント・アクションを実行する。
【００１０】
更に別の実施形態において、第１のノードは、エラー閾値に達するエラー・カウンタ値に応答してエラー回復動作を開始する。
【００１１】
更に別の実施形態において、第１のノードは、デバイスの所有者として動作してデバイスに対すエラー・ハンドリングを実行する。第２のノードは、デバイスの所有権を引き継ぎ、デバイスのエラーを検出する第２のノードに応答して、第１のノードによって検出されたデバイスのエラーを示す第２ノード・エラー・カウンタをインクリメントする。
【００１２】
更に別の実施形態において、第２のノードは、第１のノードの故障に応答してデバイスの所有権を引き継ぐ。
【００１３】
更に別の実施形態において、デバイスは、第１のデバイスを含み、第１ノード・エラー・カウンタは、第１ノード第１デバイス・エラー・カウンタを含み、第２ノード・エラー・カウンタは、第２ノード第１デバイス・エラー・カウンタ・コピーを含む。第２のノードは、第１のノード及び第２のノードと通信状態にある第２のデバイスのエラー数を示す第２のノードの第２のデバイスのエラー・カウンタを保持する。第１のノードは、第２のノードによって検出されたエラーを含む第２のデバイスのエラー数を示す第１のノードの第２のデバイスのエラー・カウンタを保持する。
【００１４】
更に別の実施形態において、第１及び第２のノードは、サーバー内の第１のインターフェースを介して通信するサーバー内の第１及び第２の処理クラスタを含み、ここで、第１及び第２のデバイスは、第１及び第２のネットワーク・アダプタを含み、第１及び第２の処理クラスタは、第２のインターフェースを介して第１及び第２のアダプタと通信する。
【００１５】
更に別の実施形態において、第２のノードは、第２のデバイスからエラー・メッセージを受信する。第２のノードは、第２のノード第２デバイス・エラー・カウンタをインクリメントする。第２のノードは、第２のデバイスに関するインクリメント・メッセージを第１のノードに伝送する。第１のノードは、インクリメント・メッセージに応答して第１ノード第２デバイス・エラー・カウンタを第２のエラー・カウンタ値にインクリメントする。
【００１６】
更に別の実施形態において、第１のノードは、第１のデバイスの所有者として動作して第１のデバイスに対するエラー・ハンドリングを実行し、第２のノードは、第２のデバイスの所有者として動作して第２のデバイスに対するエラー・ハンドリングを実行する。第２のノードは、第１のデバイスの所有権を引き継ぎ、第２のノードの第１のデバイスのエラー・カウンタを用いて、第１のデバイスに対するエラー管理を実行する。第１のノードは、第２のデバイスの所有権を引き継ぎ、第１のノードの第２のデバイスのエラー・カウンタを用いて、第２のデバイスに対するエラー管理を実行する。
【００１７】
更に別の実施形態において、同期化動作が、第１及び第２のノードにおいて開始される。第１のノードは、同期化動作に応答して第１ノード第１デバイス・エラー・カウンタの値を第２のノードに示す同期化メッセージを第２のノードに送信する。第２のノードは、同期化動作に応答して第２ノード第２デバイス・エラー・カウンタの値を第１のノードに示す同期化メッセージを第１のノードに送信する。
【００１８】
更に別の実施形態において、第１のノードは、同期化メッセージ内に示された値が第１ノード第２デバイス・エラー・カウンタより大きいとの第１のノードの判断に応じて、第１のノードに送信された同期化メッセージ内に示された第２ノードの第２デバイス・エラー・カウンタの値で第１ノード第２デバイス・エラー・カウンタを更新する。第２のノードは、第２のノードに送信された同期化メッセージ内に示された値が第２ノード第１デバイス・エラー・カウンタより大きいとの第２のノードの判断に応じて、第２のノードに送信された同期化メッセージ内に示された第１ノード第１デバイス・エラー・カウンタの値で第２ノード第１デバイス・エラー・カウンタを更新する。
【００１９】
更に別の実施形態において、第１のノードは、第１のノードが第２のデバイスに関する第１ノード第２デバイス・エラー・カウンタを含まないとの判断に応じて第１ノード第２デバイス・エラー・カウンタを作成する。第１のノードは、第１ノード第２デバイス・エラー・カウンタを、第１のノードに送信された同期化メッセージ内に示された値に設定する。第２のノードは、第２のノードが第１のデバイスに関する第２ノード第１デバイス・エラー・カウンタを含まないとの判断に応じて第２ノード第１デバイス・エラー・カウンタを作成する。第２のノードは、第２ノード第１デバイス・エラー・カウンタを、第２のノードに送信された同期化メッセージ内に示された値に設定する。
【００２０】
更に別の実施形態において、第２のノードは、再初期化動作を開始する。第２のノードは、再初期化動作の一部として結合メッセージを第１のノードに送信する。第１のノードは、結合メッセージに応答してデバイスに関する第１ノード・エラー・カウンタの値を示すメッセージを第２のノードに送信する。第２のノードは、結合メッセージに応答して送信されたメッセージ内に示された値で第２ノード・エラー・カウンタを更新する。
【００２１】
ここで、添付の図面を参照して、本発明の実施形態を例証としてのみ説明する。
【図面の簡単な説明】
【００２２】
【図１】コンピューティング環境の一実施形態を示す。
【図２】ノード・コンポーネントの一実施形態を示す。
【図３】デバイス・エラー情報の一実施形態を示す。
【図４】アクション・メッセージの一実施形態を示す。
【図５】同期化メッセージの一実施形態を示す。
【図６】デバイスに関するエラー・カウンタに対して実行されたアクションについてのメッセージを伝送するためのノード動作の一実施形態を示す。
【図７】エラー・カウンタに対して実行されたアクションに関するメッセージを処理するためのノード動作の一実施形態を示す。
【図８】共有デバイスの所有権を得るためのノード動作の一実施形態を示す。
【図９】同期化動作を実行するためのノード動作の一実施形態を示す。
【図１０】受信した同期化メッセージを処理するためのノード動作の一実施形態を示す。
【図１１】システムに再結合するためのノード動作の一実施形態を示す。
【図１２】ストレージ・サーバーのコンピューティング環境の一実施形態を示す。
【発明を実施するための形態】
【００２３】
図１は、ネットワーク・コンピューティング環境の一実施形態を示す。複数の計算ノード２ａ，２ｂ．．．２ｍは、第１のインターフェース４を介して互いに通信し、ノード２ａ，２ｂ．．．２ｍは、第２のインターフェース８を介して共有デバイス６ａ，６ｂ．．．６ｎと通信する。ノード２ａ，２ｂ．．．２ｍは、入力／出力（Ｉ／Ｏ）要求を処理し、或は他の動作を実行して共有デバイス６ａ，６ｂ．．．６ｎと通信する計算デバイスを備えることができる。ノード２ａ，２ｂ．．．２ｍは、別々のシステム内に収容してもよく、或いは同じコンピュータ・ボックス又はハウジング内に収容してもよい。共有デバイス６ａ，６ｂ．．．６ｎは、ストレージ・デバイス、計算リソース、例えばデータベース、コンテンツ・ライブラリ、プリンタ、通信デバイス等を含むことができる。第１及び第２のインターフェース４及び８は、それぞれバス、ネットワーク、ループ等を含むことができる。１つの実施形態において、第１及び第２のインターフェース４及び８は、接続していなくてもよい。代替的な実施形態において、第１及び第２のインターフェース４及び８は、同じバス、ネットワーク等の上に配置することによって相互接続してもよく、或いはスイッチ、ハブ、ブリッジ等を介して接続してもよい。第２のインターフェース８は、バス、ネットワーク、ループ等を含むことができる。
【００２４】
図２は、ノード２のコンポーネントの一実施形態を示し、ノード２は、ノード２ａ，２ｂ．．．２ｍを含むことができる。ノード２は、共有デバイス６ａ，６ｂ．．．６ｎに対する管理動作を実行するためのプロセッサ２０及びデバイス・マネージャ２２を含む。デバイス・マネージャ２２は、ノード２が所有するデバイス及び他のノード２ａ，２ｂ．．．２ｍが所有するデバイスを含む、共有デバイス６ａ，６ｂ．．．６ｎの各々に関するデバイス・エラー情報２４を保持する。ノード・リスト２６は、共有デバイス６ａ，６ｂ．．．６ｎにアクセスし、共有デバイス６ａ，６ｂ．．．６ｎの所有者に指定されるノード２ａ，２ｂ．．．２ｍに関するネットワーク・アドレス及び情報を含む。共有デバイスの所有者は、その共有デバイス６ａ，６ｂ．．．６ｎへのアクセスを管理し、他のデバイスが、共有デバイス６ａ，６ｂ．．．６ｎにアクセスするか又はそれを用いるための要求を所有ノードにサブミットしなければならないようにする。
【００２５】
図３は、デバイス・エラー情報エントリ５０の一実施形態を示し、デバイス・エラー情報エントリ５０は、１つの共有デバイス６ａ，６ｂ．．．６ｎに関するエラー情報を提供するデバイス・エラー情報２４のインスタンス又はエントリを含むことができる。デバイス・エラー情報エントリ５０は、それの情報が提供される共有デバイス識別子（ＩＤ）５２と、識別された共有デバイス５２を所有するノード２ａ，２ｂ．．．２ｍを示すノード所有者ＩＤ５４と、情報を保持するノード又は別のノード２ａ，２ｂ．．．２ｍとすることができる、ノード所有者５４によってデバイス５２に関してカウントされたエラー数を示すエラー・カウンタ５６と、カウンタ開始時間及び終了時間のような、付加的なエラー情報５８とを含む。
【００２６】
図４は、共有デバイス６ａ，６ｂ．．．６ｎに関するエラー・カウンタ５６に対するアクションを実行するときに、所有ノード２ａ，２ｂ．．．２ｍにより、他の非所有ノード２ａ，２ｂ．．．２ｍに伝送されるアクション・メッセージ７０の一実施形態を示す。アクションは、エラー・カウンタ５６をオープンすること、終了すること、又はインクリメントすることを含むことができる。
【００２７】
図５は、所有ノードに関連するエラー情報９４ａ．．．９４ｎを他の非所有ノード２ａ，２ｂ．．．２ｍに伝送するときに、所有ノード２ａ，２ｂ．．．２ｍによって送信される同期化メッセージ９０の一実施形態を示す。メッセージ９０は、送信ノード９２を識別し、送信ノード９２によって所有されている各々の共有デバイス６ａ，６ｂ．．．６ｎに関するデバイス・エラー情報５０のような、デバイス・エラー情報９４ａ．．．９４ｎを含む。更に別の実施形態において、所有ノード２ａ，２ｂ．．．２ｍ以外のノードが、デバイス・エラー情報に関する情報を送信することができる。
【００２８】
図６は、エラー・カウンタ５６に対するアクションを実行するために、所有ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２によって実行される動作の一実施形態を示す。ブロック１００において、所有ノード２ａ，２ｂ．．．２ｍは、ノード２ａ，２ｂ．．．２ｍが所有する共有デバイス６ａ，６ｂ．．．６ｎに関するエラー・カウンタ５６に対して、共有デバイス５２のエラー数を監視するためのエラー・カウンタ５６を作成し、エラー・カウンタを終了又はインクリメントする等のアクションを実行する。それに応じて、所有ノード２ａ，２ｂ．．．２ｍは、エラー・カウンタ５６に対して実行されるアクション及び共有デバイス６ａ，６ｂ．．．６ｎを示すアクション・メッセージ７０を他のノード２ａ，２ｂ．．．２ｍに伝送する（ブロック１０２において）。アクション・メッセージ７０は、ノード・リスト２６内に示されたノード２ａ，２ｂ．．．２ｍに伝送することができる。（ブロック１０４において）エラー・カウンタ５６が共有デバイスに関するエラー閾値を超える場合には、所有ノード２ａ，２ｂ．．．２ｍは、共有デバイス６ａ，６ｂ．．．６ｎに対するエラー回復動作を開始する（ブロック１０６において）。そうでなければ、制御は終了する。デバイス５２に関するエラー・カウンタ５６を作成するためにデバイス・エラー情報エントリ５０を作成するときに、所有ノード２ａ，２ｂ．．．２ｍは、付加的なエラー・カウンタ情報、例えば、カウンタが作成された開始時間、現在のタイムスタンプ、アクションがエラー・カウンタを終了する場合には終了時間等、を示すことができる。
【００２９】
図７は、ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２が、アクション・メッセージ７０を受信したときに実行する動作の一実施形態を示す。非所有ノード２ａ，２ｂ．．．２ｍが、所有ノードから、示されたデバイス７８に対して実行されるエラー・カウンタ・アクション７６を示すアクション・メッセージ７０を受信すると（ブロック１３０において）、受信したノード２ａ，２ｂ．．．２ｍは、示されたデバイスに関するエラー・カウンタに対して示されたアクション７６を実行する。（ブロック１３４において）アクション７６が、示されたデバイス７８に関するエラー・カウンタ５６を作成することである場合には、デバイス・マネージャ２２は、デバイスＩＤ５２、０に設定されたカウンタ値、オープン・メッセージを送信する所有ノード５４、及びエラー・カウンタの開始時間のような付加的な情報５８を示すデバイス・エラー・カウンタ５６を作成する。（ブロック１３６において）アクション７６が共有デバイス６ａ，６ｂ．．．６ｎに関するエラー・カウンタ５６をインクリメントすることである場合には、デバイス・マネージャ２２は、受信したノード２ａ，２ｂ．．．２ｍが保持するエラー・カウンタ５６をインクリメントする。（ブロック１３８において）アクション７６が共有デバイス６ａ，６ｂ．．．６ｎに関するエラー・カウンタ５６を終了することである場合には、デバイス・マネージャ２２が、デバイス・エラー情報内に終了時間を示す。
【００３０】
図８は、ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２が、共有デバイス６ａ，６ｂ．．．６ｎの所有権を引き継ぐことを実行する動作の一実施形態を示す。ノード２ａ，２ｂ．．．２ｍが以前には所有していなかった共有デバイス６ａ，６ｂ．．．６ｎの所有権を引き継ぐ（ブロック１５０において）ことに応じて、新しい所有ノード２ａ，２ｂ．．．２ｍは、共有デバイス６ａ，６ｂ．．．６ｎに関するデバイス・エラー情報エントリ５０を更新し（ブロック１５２において）、ノード２ａ，２ｂ．．．２ｍが今や共有デバイス６ａ，６ｂ．．．６ｎを所有し、以前の所有ノード２ａ，２ｂ．．．２ｍによって開始されたエラー・カウンタ５６の更新に関する情報を含むエラー・カウンタ５６を用いることを示す。このように、新しい所有ノード２ａ，２ｂ．．．２ｍは、以前の所有ノード２ａ，２ｂ．．．２ｍによってカウントされた以前のエラーを考慮に入れて以前の所有ノードのエラー管理動作を引き継ぐ。
【００３１】
図９は、ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２が同期化動作を実行するための動作の一実施形態を示す。ブロック１７０において、ノード２ａ，２ｂ．．．２ｍが同期化動作を実行する。同期化動作は、周期的に又はノード２ａ，２ｂ．．．２ｍの幾つか又は全てが、ノード・システムに再結合するようにリブート及び要求するような、イベントに応答して実行することができる。ノード２ａ，２ｂ．．．２ｍが所有する各々の共有デバイス６ａ，６ｂ．．．６ｎに関して、ノード２ａ，２ｂ．．．２ｍが、送信ノード９２、及び、所有されている共有デバイス６ａ，６ｂ．．．６ｎに関する、エラー・カウンタ５６を含んだデバイス・エラー情報５０を示す同期化メッセージ９０を全ての他のノード２ａ，２ｂ．．．２ｍにブロードキャストする（ブロック１７２において）。各々の所有されている共有デバイス６ａ，６ｂ．．．６ｎに関するデバイス・エラー情報５０は、同期化メッセージ９０の別々のエラー情報セクション９４ａ．．．９４ｎ内に含まれる。同期化メッセージ９０は、ノード・リスト２６内のノード２ａ，２ｂ．．．２ｍに伝送することができる。
【００３２】
図１０は、ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２が、１つ又は複数の他のノード２ａ，２ｂ．．．２ｍからの同期化メッセージ９０を処理するために実行する動作の一実施形態を示す。同期化メッセージ９０を受信する（ブロック２００において）と、受信したノード２ａ，２ｂ．．．２ｍは、同期化メッセージ９０内のエラー情報９４ａ．．．９４ｎ内に示された共有デバイス６ａ，６ｂ．．．６ｎの各々に対して、ブロック２０４からブロック２１４までの動作を実行する。（ブロック２０４において）ノード２ａ，２ｂ．．．２ｍが、検討中の共有デバイス６ａ，６ｂ．．．６ｎに関するデバイス・エラー情報エントリ５０を有していない場合には、デバイス・マネージャ２２は、エラー・カウンタ５６を含む共有デバイス６ａ，６ｂ．．．６ｎに関するデバイス・エラー情報エントリ５０を作成（ブロック２０６において）して、ローカル・デバイス・エラー情報２４内に保持する。作成されたデバイス・エラー情報エントリ５０のフィールド５２、５４、５６及び５８は、共有デバイス６ａ，６ｂ．．．６ｎに関する同期化メッセージ９０内に示された値に設定される。
【００３３】
（ブロック２０４において）共有デバイス６ａ，６ｂ．．．６ｎに関するローカル・デバイス・エラー情報エントリ５０が存在する場合、且つ（ブロック２１０において）ローカル・デバイス・エラー情報エントリ５０内のエラー・カウンタ５６が、共有デバイス６ａ，６ｂ．．．６ｎに関する同期化メッセージ９０内に示されたカウンタ値より小さい場合には、ローカル・デバイス・エラー情報エントリ５０内のエラー・カウンタ５６は、同期化メッセージ９０内に示されたエラー・カウンタ値に設定される。そうでなければ、（ブロック２１０において）ローカル・デバイス・エラー情報エントリ５０のエラー・カウンタ５６が同期化メッセージ９０内に示されたエラー・カウンタの値より大きい場合には、デバイス・エラー情報エントリ５０は、同期化メッセージ９０内に示されたエラー・カウンタ値以外の情報により更新される（ブロック２１４において）。
【００３４】
図１０の動作によって、同期化されているデバイス・エラー情報エントリ５０のローカル・コピーは、ローカル・デバイス・エラー情報エントリ５０内に現在保持されている値と同期化メッセージ９０内の値との間での最大のエラー・カウンタ値５６を保持する。
【００３５】
図１１は、ノード２ａ，２ｂ．．．２ｍ内で実行するデバイス・マネージャ２２が、ノード２ａ，２ｂ．．．２ｍがエラー回復又は故障目的のため、コード・アップグレードのため、及び他の目的のためにオフラインにされる場合のような、リブート後にシステムに再結合するために実行する動作の一実施形態を示す。ノード２ａ，２ｂ．．．２ｍがシステムに再結合する（ブロック２５０において）と、デバイス・マネージャ２２は、ノード・リスト２６内に示された他のノード２ａ，２ｂ．．．２ｍに対して、同期化情報を要求する再結合メッセージを送信し（ブロック２５２において）、それにより再結合するノード２ａ，２ｂ．．．２ｍが現在のデバイス・エラー情報５０を取得する。同期化メッセージ９０を受信する（ブロック２５４において）と、デバイス・マネージャ２２は、図１０の動作を実行して（ブロック２５６において）、受信した同期化メッセージ９０からローカル・デバイス・エラー情報２４を更新する。
【００３６】
図１２は、ノードがサーバー３００内のクラスタ３０４ａ及び３０４ｂとして実装されたストレージ・サーバー３００の一実施形態を示す。クラスタ３０４ａ、３０４ｂは、それぞれ、プロセッサ複合体３０６ａ、３０６ｂ、及びデバイス・マネージャ３０８ａ、３０８ｂを含み、デバイス・マネージャ３０８ａ、３０８ｂは、上述のデバイス・マネージャ２２の動作を実行することができる。クラスタ３０４ａ、３０４ｂは、バス３１０を介して通信する。システム３００は、各々が１つ又は複数のボリューム３１８ａ、３１８ｂ（例えば、論理ユニット番号、論理デバイス等）を有するように構成されたストレージ３１６ａ、３１６ｂに向けられた入力／出力要求を、ホスト・システム３１２ａ，３１２ｂ．．．３１２ｎからネットワーク３１４を介して受信する。クラスタ３０４ａ、３０４ｂは、ホスト３１２ａ、３１２ｂ．．．３１２ｎからＩ／Ｏ要求を受信し、要求をバッファリングし、キャッシュ（図示せず）内のデータをストレージ３１６ａ、３１６ｂに書き込むことができる。クラスタ３０４ａ、３０４ｂは、異なる電力境界を有することができる。各々のストレージ・クラスタ３０４ａ、３０４ｂは、付属のストレージ３１６ａ、３１６ｂへのアクセスを提供する。
【００３７】
図１２の実施形態においては、二組の共有デバイス、即ち、デバイス・アダプタ３２０ａ，３２０ｂ．．．３２０ｎ、及びネットワーク・アダプタ３２２ａ、３２２ｂ．．．３２２ｎが存在する。クラスタ３０４ａ、３０４ｂは、インターフェース３２４を介してデバイス・アダプタ３２０ａ，３２０ｂ．．．３２０ｎと通信し、インターフェース３２６を介してネットワーク・アダプタ３２２ａ，３２２ｂ．．．３２２ｎと通信する。デバイス・アダプタ３２０ａ、３２０ｂ．．．３２０ｎは、インターフェース３２８を介してストレージ３１６ａ、３１６ｂと通信する。インターフェース３２４、３２６及び３２８は、周辺相互接続バス（ＰＣＩ）又は当技術分野で既知の他の適切なインターフェース・ハードウェアのようなバスを含むことができる。
【００３８】
図１２の実施形態において、クラスタ３０４ａ、３０４ｂは、上述のデバイス・マネージャ３０８ａ、３０８ｂとして動作し、デバイス・マネージャ２２及び図６−図１１に関して上述した動作を実行することができる。アダプタ３２０ａ，３２０ｂ．．．３２０ｎ及び３２２ａ，３２２ｂ．．．３２２ｎは、共有デバイス３０６ａ，３０６ｂ．．．３０６ｎとして動作することができ、その場合、クラスタ３０４ａ、３０４ｂは、特定のデバイス３２０ａ，３２０ｂ．．．３２０ｎ、３２２ａ，３２２ｂ．．．３２２ｎの所有者として指定することができる。
【００３９】
システム３００は、ストレージ・コントローラ又はサーバーを備えることができる。代替的な実施形態において、システム３００は、接続されたデバイスの初期化及び設定動作を実行する異なるタイプのコンピュータ・デバイスを備えることができる。ホスト３１２ａ，３１２ｂ．．．３１２ｎは、サーバー、メインフレーム、ワークステーション、パーソナル・コンピュータ、ハンドヘルド・コンピュータ、ラップトップ、テレフォン装置、ネットワーク器具等のような、当技術分野で既知のコンピューティング装置を備えることができる。ネットワーク３１４は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、ワイド・エリア・ネットワーク（ＷＡＮ）等を含むことができる。ストレージ３１６ａ、３１６ｂは、単純ディスク束（ＪＢＯＤ）、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、レイド（Redundant Array of Independent Disks、ＲＡＩＤ）アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等のような、ストレージ・デバイス・アレイを備えることができる。
【００４０】
説明された実施形態は、共有デバイス６ａ，６ｂ．．．６ｎからエラー・メッセージを受信してエラー・カウンタ５６を更新するような、それらのデバイス・エラー情報５０に対するアクションを所有ノードが実行するときに更新される、他のノードが所有する共有デバイスに関するエラー・カウンタを含むデバイス・エラー情報のローカル・コピーを、ノードが保持する技術を提供する。デバイス・エラー情報は、別のノードの所有権を引き継ぐノードによって用いられ、その結果、引き継ぐノードは、共有デバイス６ａ，６ｂ．．．６ｎを放棄するノードによって用いられた現在のエラー情報を有する。このように、新しい所有ノードは、以前の所有ノードによって保持された、共有デバイス６ａ，６ｂ．．．６ｎの現在のエラー状態からエラー管理動作を引き継ぐことができる。
【００４１】
説明された動作は、標準的なプログラミング及び／又はエンジニアリング技術を用いて、ソフトウェア、ファームウェア、ハードウェア又はこれらの任意の組み合わせを作成する方法、装置又は製造物品として実施することができる。説明された動作は、「コンピュータ可読ストレージ媒体」内に保持されるコードとして実施することができ、その場合、プロセッサは、コンピュータ・ストレージ可読媒体からコードを読み出し、実行することができる。コンピュータ可読ストレージ媒体は、磁気ストレージ媒体（例えば、ハード・ディスク・ドライブ、フロッピー・ディスク、テープ等）、光ストレージ（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、光ディスク等）、揮発性及び不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、ファームウェア、プログラム可能論理等）等のようなストレージ媒体を含むことができる。説明された動作を実施するコードは、ハードウェア・デバイス（例えば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）内に実装されたハードウェア論理内でさらに実施することができる。さらに、説明された動作を実施するコードは、「伝送信号」内で実施することができ、その場合、伝送信号は、空間を介して、又は光ファイバ、銅ワイヤ等のような、伝送媒体を介して伝播することができる。コード又は論理がエンコードされる伝送信号は、無線信号、衛星伝送、電波、赤外線信号、ブルートゥース等をさらに含むことができる。「製造物品」は、コード又は論理がエンコードされた伝送信号を伝送し受信するための伝送ステーション及び／又は受信ステーションを含むことができ、その場合、伝送信号内のエンコードされたコード又は論理は、受信及び伝送ステーション又はデバイスにおけるハードウェア又はコンピュータ可読ストレージ媒体内でデコードしてストアすることができる。「製造物品」は、コンピュータ可読ストレージ媒体、ハードウェア・デバイス、及び／又は、コード又は論理を実装することができる伝送トランスミッタ又はレシーバを含む。当業者であれば、本発明の範囲から逸脱することなく多くの修正をこの構成に加えることができること、及び製造物品は当技術分野において既知の適切な情報支持媒体を備えることができることを認識するであろう。
【００４２】
「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔｓ）」、「その実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「その実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「１つ又は複数の実施形態（ｏｎｅ  ｏｒ  ｍｏｒｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「幾つかの実施形態（ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」及び「１つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」という用語は、特に明示的に指定されない限り、「本発明の１つ又は複数の（しかし全てではない）実施形態」を意味する。
【００４３】
「含む（ｉｎｃｌｕｄｉｎｇ）」、「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」という用語及びこれらの変形物は、特に明示的に指定されない限り、「含むが、限定されない」ことを意味する。
【００４４】
項目の列挙リストは、特に明示的に指定されない限り、項目のいずれか又は全てが相互排除的であることを含意するものではない。
【００４５】
不定冠詞「ａ、ａｎ」及び定冠詞「ｔｈｅ」は、特に明示的に指定されない限り、「１つ又は複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を意味する。
【００４６】
項目の例の数を示すための「ｎ」又は「ｍ」等のような変数の参照符号の使用は、任意の整数の項目例を指すことができ、その場合、異なる変数は同じ数又は異なる数を含むことができる。さらに、異なる要素と共に用いられる同じ変数の参照符号は、それらの要素の同じ又は異なる数の例を示すことができる。
【００４７】
互いに通信状態にあるデバイスは、特に明示的に指定されない限り、互いに継続的に通信状態にある必要はない。さらに、互いに通信状態にあるデバイスは、直接的に、又は、１つ若しくは複数の媒介物を介して間接的に通信することができる。
【００４８】
互いに通信状態にある幾つかのコンポーネントを有する実施形態の説明は、このようなコンポーネントの全てが必要であることを含意するわけではない。逆に、様々な随意のコンポーネントは、本発明の広範な可能な実施形態を例示するために説明されている。
【００４９】
さらに、プロセス・ステップ、方法ステップ、アルゴリズム等は、記述の順序で説明することができるが、このようなプロセス、方法及びアルゴリズムは、代替的な順序で機能するように構成することもできる。言い換えれば、記述することができるステップの任意の順番又は順序は、その順序でステップを実行する必要条件を必ずしも示すものではない。本明細書で説明したプロセスのステップは、任意の実用的な順序で実行することができる。さらに、幾つかのステップは、同時に実行することができる。
【００５０】
本明細書で単一のデバイス又は物品を説明するときは、１つより多くのデバイス／物品（それらが協働してもしなくても）を単一のデバイス／物品の代わりに用いることができることが容易に理解できるであろう。同様に、本明細書において１つより多くのデバイス又は物品（それらが協働してもしなくても）を説明する場合は、１つより多くのデバイス又は物品の代わりに単一のデバイス／物品を用いることができ、或は、示した数のデバイス又はプログラムの代わりに異なる数のデバイス／物品を用いることができることが容易に理解できるであろう。デバイスの機能性及び／又は特徴は、代替的に、このような機能／特徴を有するように明示的には説明されていない１つ又は複数の他のデバイスによって具体化することができる。従って、本発明の他の実施形態は、デバイスそれ自体を含む必要がない。
【００５１】
図６、図７、図８、図９、図１０及び図１１の例示された動作は、特定の順序で行われる特定のイベントを示す。代替的な実施形態において、特定の動作は、異なる順序で実行し、修正し又は除去することができる。さらに、ステップを上述の論理に付加することができ、それでもなお説明した実施形態に合致するようにすることができる。さらに、本明細書で説明した動作は、逐次的に行うことができ、或いは特定の動作は、並列に処理することができる。さらに、動作は、単一の処理装置によって又は分散処理装置によって実行することができる。
【００５２】
本発明の種々の実施形態の上記の説明は、例示及び説明の目的で提示した。これは、網羅的であること、又は本発明を開示された通りに限定することを意図したものではない。上記の教示に鑑みて、多くの修正物及び変形物が可能である。本発明の範囲は、この詳細な説明によって限定されるものではなく、むしろここに添付された特許請求の範囲によって限定されることが意図されている。上記の明細書、実施例及びデータは、本発明の組成物の製造及び使用の完全な説明を与える。本発明の範囲から逸脱することなく本発明の多くの実施形態を作ることができるため、本発明は、以下の添付の特許請求の範囲内にある。
【符号の説明】
【００５３】
２、２ａ、２ｂ、２ｍ：ノード
４：第１のインターフェース
６ａ、６ｂ、６ｎ：共有デバイス
８：第２のインターフェース
２０：プロセッサ
２２：デバイス・マネージャ
２４：デバイス・エラー情報
２６：ノード・リスト
５０：デバイス・エラー情報エントリ
５２：共有デバイスＩＤ
５４：ノード所有者ＩＤ
５６：エラー・カウンタ
５８：付加的なエラー情報
７０：アクション・マネージャ
７２：ターゲット・ノード
７４：送信ノード
７６：アクション
７８：共有デバイスＩＤ
９０：同期化メッセージ
９２：送信ノード
９４ａ、９４ｎ：デバイス・エラー情報
３００：ストレージ・サーバー（システム）
３０４ａ、３０４ｂ：クラスタ
３０６ａ、３０６ｂ：プロセッサ複合体
３０８ａ、３０８ｂ：デバイス・マネージャ
３１０：バス
３１２ａ、３１２ｂ、３１２ｎ：ホスト
３１４：ネットワーク
３１６ａ、３１６ｂ：ストレージ
３１８ａ、３１８ｂ：ボリューム
３２０ａ、３２０ｂ、３２０ｎ：デバイス・アダプタ
３２２ａ、３２２ｂ、３２２ｎ：ネットワーク・アダプタ
３２６、３２８：インターフェース
【図１】
2011524563.tif 000003
【図２】
2011524563.tif 000004
【図３】
2011524563.tif 000005
【図４】
2011524563.tif 000006
【図５】
2011524563.tif 000007
【図６】
2011524563.tif 000008
【図７】
2011524563.tif 000009
【図８】
2011524563.tif 000010
【図９】
2011524563.tif 000011
【図１０】
2011524563.tif 000012
【図１１】
2011524563.tif 000013
【図１２】
2011524563.tif 000014
【手続補正書】
【提出日】平成23年3月7日(2011.3.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のノードによって、前記第１のノード及び第２のノードと通信状態にあるデバイスに関する第１ノード・エラー・カウンタに対してアクションを実行するステップ（１００）と、
第１のノードによって、前記デバイスと前記デバイスに関する前記第１ノード・エラー・カウンタに対して実行された前記アクションとを示すメッセージを、前記第２のノードに伝送するステップ（１０２）と、
前記第２のノードによって、前記メッセージ内に示された前記デバイスに関する第２ノード・エラー・カウンタに対して、前記メッセージ内に示された前記アクションを実行するステップ（１３０）であって、前記第２ノード・エラー・カウンタは、前記デバイスに関する前記第１ノード・エラー・カウンタに対応する、前記実行するステップ（１３０）と、
前記第１のノードによって前記デバイスのエラーを検出するステップと、
を含み、
前記第１のノードによって実行される前記アクションは、前記エラーの検出に応答して前記デバイスに関する前記第１ノード・エラー・カウンタをインクリメントするステップを含み、前記メッセージ内に示される前記アクションは、インクリメント・アクションを含み、前記第２のノードによって前記インクリメント・アクションを実行するステップは、前記第２のノードにおいて前記デバイスに関する前記第２ノード・エラー・カウンタをインクリメントするステップを含む、方法。
【請求項２】
前記メッセージ内に示される前記アクションは、オープン・アクションを含み、前記第２のノードによって前記オープン・アクションを実行するステップは、前記メッセージに応答して前記デバイスに関する前記第２ノード・エラー・カウンタを作成するステップを含む、請求項１に記載の方法。
【請求項３】
前記メッセージ内に示される前記アクションは、終了アクションを含み、前記第２のノードによって前記終了アクションを実行するステップは、前記メッセージに応答して前記デバイスに関する前記第２ノード・エラー・カウンタを終了するステップを含む、請求項１に記載の方法。
【請求項４】
前記エラー・カウンタ値がエラー閾値に達したことに応答して、前記第１のノードによってエラー回復動作を開始するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記第１のノードは、前記デバイスに対するエラー・ハンドリングを実行する前記デバイスの所有者として動作し、
前記第２のノードによって、前記デバイスの所有権を引き継ぐステップと、
前記第２のノードが前記デバイスのエラーを検出したことに応答して、前記第２のノードによって、前記第１のノードによって検出された前記デバイスのエラーを示す前記第２ノード・エラー・カウンタをインクリメントするステップと、
をさらに含む、
請求項１に記載の方法。
【請求項６】
前記第２のノードは、前記第１のノードの故障に応答して前記デバイスの前記所有権を引き継ぐ、請求項５に記載の方法。
【請求項７】
前記デバイスは、第１のデバイスを含み、前記第１ノード・エラー・カウンタは、第１ノード第１デバイス・エラー・カウンタを含み、前記第２ノード・エラー・カウンタは、第２ノード第１デバイス・エラー・カウンタ・コピーを含み、
前記第２のノードによって、前記第１のノード及び前記第２のノードと通信状態にある第２のデバイスのエラー数を示す第２ノード第２デバイス・エラー・カウンタを保持するステップと、
前記第１のノードによって、前記第２のノードによって検出されたエラーを含む前記第２のデバイスのエラー数を示す第１ノード第２デバイス・エラー・カウンタを保持するステップと、
をさらに含む、
請求項１に記載の方法。
【請求項８】
前記第１及び第２のノードは、サーバー内の第１のインターフェースを介して通信する前記サーバー内の第１及び第２の処理クラスタを含み、
前記第１及び第２のデバイスは、第１及び第２のネットワーク・アダプタを含み、
前記第１及び第２の処理クラスタは、第２のインターフェースを介して前記第１及び第２のアダプタと通信する、
請求項７に記載の方法。
【請求項９】
前記第２のノードによって、前記第２のデバイスからエラー・メッセージを受信するステップと、
前記第２のノードによって、前記第２ノード第２デバイス・エラー・カウンタをインクリメントするステップと、
前記第２のノードによって、前記第２のデバイスに関するインクリメント・メッセージを前記第１のノードに伝送するステップと、
前記インクリメント・メッセージに応答して、前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを前記第２のエラー・カウンタ値にインクリメントするステップと、
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記第１のノードは、前記第１のデバイスに対するエラー・ハンドリングを実行する前記第１のデバイスの所有者として動作し、
前記第２のノードは、前記第２のデバイスに対するエラー・ハンドリングを実行する前記第２のデバイスの所有者として動作し、
前記第２のノードによって、前記第１のデバイスの所有権を引き継ぐステップであって、前記第２のノードは、前記第２ノード第１デバイス・エラー・カウンタを用いて、前記第１のデバイスに対するエラー管理を実行する、ステップと、
前記第１のノードによって、前記第２のデバイスの所有権を引き継ぐステップであって、前記第１のノードは、前記第１ノード第２デバイス・エラー・カウンタを用いて、前記第２のデバイスに対するエラー管理を実行する、ステップと、
をさらに含む、請求項７に記載の方法。
【請求項１１】
前記第１及び第２のノードにおいて同期化動作を開始するステップと、
前記同期化動作に応答して、前記第１のノードによって、前記第１ノード第１デバイス・エラー・カウンタの値を前記第２のノードに示す同期化メッセージを前記第２のノードに送信するステップと、
前記同期化動作に応答して、前記第２のノードによって、前記第２ノード第２デバイス・エラー・カウンタの値を前記第１のノードに示す同期化メッセージを、前記第１のノードに送信するステップと、
をさらに含む、請求項７に記載の方法。
【請求項１２】
前記同期化メッセージ内に示された前記値が前記第１ノード第２デバイス・エラー・カウンタより大きいとの前記第１のノードの判断に応じて、前記第１のノードによって、前記第１のノードに送信された前記同期化メッセージ内に示された前記第２ノード第２デバイス・エラー・カウンタの前記値で前記第１ノード第２デバイス・エラー・カウンタを更新するステップと、
前記第２のノードに送信された前記同期化メッセージ内に示された前記値が前記第２ノード第１デバイス・エラー・カウンタより大きいとの前記第２のノードの判断に応じて、前記第２のノードによって、前記第２のノードに送信された前記同期化メッセージ内に示された前記第１ノード第１デバイス・エラー・カウンタの前記値で前記第２ノード第１デバイス・エラー・カウンタを更新するステップと、
をさらに含む、請求項１１に記載の方法。
【請求項１３】
前記第１のノードが前記第２のデバイスに関する前記第１ノード第２デバイス・エラー・カウンタを含まないとの判断に応じて、前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを作成するステップと、
前記第１のノードによって、前記第１ノード第２デバイス・エラー・カウンタを、前記第１のノードに送信された前記同期化メッセージ内に示された前記値に設定するステップと、
前記第２のノードが前記第１のデバイスに関する前記第２ノード第１デバイス・エラー・カウンタを含まないとの判断に応じて、前記第２のノードによって、前記第２ノード第１デバイス・エラー・カウンタを作成するステップと、
前記第２のノードによって、前記第２ノード第１デバイス・エラー・カウンタを、前記第２のノードに送信された前記同期化メッセージ内に示された前記値に設定するステップと、
をさらに含む、請求項１１に記載の方法。
【請求項１４】
前記第２のノードによって、再初期化動作を開始するステップと、
前記第２のノードによって、前記再初期化動作の一部として結合メッセージを前記第１のノードに送信するステップと、
前記結合メッセージに応答して、前記第１のノードによって、前記デバイスに関する前記第１ノード・エラー・カウンタの値を示すメッセージを前記第２のノードに送信するステップと、
前記結合メッセージに応答して、前記第２のノードによって、前記第２ノード・エラー・カウンタを、送信された前記メッセージ内に示された前記値に更新するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１５】
デバイスと通信状態にある第１のノード及び第２のノードを備えるシステムであって、前記システムは、請求項１から請求項１４までのいずれかの方法におけるステップを実行するためのプログラム・コードを実行するように適合される、前記システム。
【請求項１６】
第１のノード及び第２のノードによって実行されるコードを含むコンピュータ・プログラムであって、１つのデバイスが、前記第１のノード及び前記第２のノードと通信状態にあり、前記コードは、請求項１から請求項１４までのいずれかの方法におけるステップを実行する、前記コンピュータ・プログラム。
【国際調査報告】
2011524563.tif 000015
2011524563.tif 000016
2011524563.tif 000017