(57)【特許請求の範囲】
【請求項１】
ストレージクラスタ環境の中のノードを管理する方法であって、前記方法は、
第１ノードが第２ノードの障害に応答して前記第２ノードに対してストレージ冗長テイクオーバを実行した後に、前記第２ノードのハードウェア変更により前記第２ノードが利用可能になることに応答して、
前記第１ノードが、前記第２ノードから、前記第２ノードをストレージ装置に結合するスイッチの識別子であるクラスタ内ノード接続識別子を含むノードＩＤ指示子を受信するステップと、
前記第１ノードが、前記クラスタ内ノード接続識別子に基づき、前記第２ノードが前記第１ノードのクラスタ内テイクオーバパートナであるか否かを決定するステップと、
前記第１ノードが、前記第２ノードは前記第１ノードのクラスタ内テイクオーバパートナであると決定することに応答して、前記第１ノードが前記第２ノードへストレージリソースのギブバックを実行するステップと、
を有する方法。
【請求項２】
前記第１ノードが、前記第２ノードはクラスタ内テイクオーバパートナであるか否かを決定するステップは、前記第２ノードから受信した前記クラスタ内ノード接続識別子を前記第１ノードのクラスタ内接続識別子と比較するステップを有する、請求項１に記載の方法。
【請求項３】
前記第１ノードが、ノードＩＤ指示子を前記受信するステップは、前記第２ノードのブートのギブバック段階の間に生じる、請求項１に記載の方法。
【請求項４】
前記第１ノード及び第２ノードは、第１ストレージクラスタの中の第１高可用性（ＨＡ）ストレージ制御部ペアとして構成され、前記ストレージクラスタ環境は、第２ストレージクラスタの中の第２ＨＡストレージ制御部ペアとして構成される第３ノード及び第４ノードを更に有し、前記方法は、
前記第１ノードが前記第２ノードへのストレージリソースの前記ギブバックを実行することに応答して、
前記第２ノードが、前記第２ノードに結合された前記ストレージ装置にあり且つ前記第２ノード用に設けられた記憶領域に格納されているクラスタ間構成情報のコピーを読み出すステップと、
前記第２ノードが、前記クラスタ間構成情報の前記コピーにより指定されるストレージ制御部装置識別子が、前記第２ノードの中のストレージ制御部装置に関連付けられる識別子と異なることを決定するステップと、
前記第２ノードが、前記クラスタ間構成情報の前記コピーにより指定される前記ストレージ制御部装置識別子が、前記第２ノードの中の前記ストレージ制御部装置に関連付けられる識別子と異なることを決定することに応答して、前記第２ノードが、前記第２ノードのストレージ制御部装置交代が実行されたことを示すために、前記第１ノード、前記第３ノード、及び前記第４ノードへ、ストレージ制御部交代メッセージを送信するステップであって、前記第１ノード、前記第２ノード、前記第３ノード及び前記第４ノードは、前記クラスタ間構成情報に基づき構成されるクラスタ間ストレージ冗長構成に属する、ステップと、
を更に有する請求項１に記載の方法。
【請求項５】
前記ストレージ制御部交代メッセージは、ノード構成識別子に関連付けられる制御部装置識別子を指定し、前記方法は、
前記ストレージ制御部交代メッセージに基づき、前記第１ノード、前記第３ノード、及び前記第４ノードが、自身のローカルに格納された前記クラスタ間構成情報のコピーの中の制御部装置識別子を置き換え、前記第２ノードへＡＣＫ応答を返すステップと、
を更に有する請求項４に記載の方法。
【請求項６】
前記第２ノードが前記第１ノード、前記第３ノード、及び前記第４ノードから前記ＡＣＫ応答を受信することに応答して、前記第２ノードが、自身のローカルに格納された前記クラスタ間構成情報のコピーの中の制御部装置識別子を置き換えるステップと、
を更に有する請求項５に記載の方法。
【請求項７】
コンピュータプログラムであって、ストレージクラスタ環境の中のノードにより実行されると、
第１ノードが第２ノードの障害に応答して前記第２ノードに対してストレージ冗長テイクオーバを実行した後に、前記第２ノードのハードウェア変更により前記第２ノードが利用可能になることに応答して、
前記第１ノードに、前記第２ノードから、前記第２ノードをストレージ装置に結合するスイッチの識別子であるクラスタ内ノード接続識別子を含むノードＩＤ指示子を受信させ、
前記第１ノードに、前記クラスタ内ノード接続識別子に基づき、前記第２ノードが前記第１ノードのクラスタ内テイクオーバパートナであるか否かを決定させる、
前記第１ノードに、前記第２ノードが前記第１ノードの前記クラスタ内テイクオーバパートナであると決定することに応答して、前記第１ノードから前記第２ノードへストレージリソースのギブバックを実行させる、
コンピュータプログラム。
【請求項８】
前記ハードウェア変更は、前記第２ノードについてのストレージ制御部交代に対応する、請求項７に記載のコンピュータプログラム。
【請求項９】
前記コンピュータプログラムは、さらに、前記第２ノードが利用可能になることに応答して、前記第２ノードに前記第２ノードをブートさせ、前記ノードＩＤ指示子の受信は、前記ブートのギブバック段階の間に生じる、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記第１ノード及び第２ノードは、第１ストレージクラスタの中の第１高可用性（ＨＡ）ストレージ制御部ペアとして構成され、前記ストレージクラスタ環境は、第２ストレージクラスタの中の第２ＨＡストレージ制御部ペアとして構成される第３ノード及び第４ノードを有し、前記コンピュータプログラムは、さらに、
前記第１ノードから前記第２ノードへのストレージリソースの前記ギブバックを実行することに応答して、
前記第２ノードに、前記第２ノードに結合された前記ストレージ装置にあり且つ前記第２ノード用に設けられた記憶領域に格納されているクラスタ間構成情報のコピーを読み出させ、
前記第２ノードに、クラスタ間構成情報の前記コピーにより指定されるストレージ制御部装置識別子が、前記第２ノードの中のストレージ制御部装置に関連付けられる識別子と異なることを決定させ、
前記クラスタ間構成情報の前記コピーにより指定されるストレージ制御部装置識別子が、前記第２ノードの中の前記ストレージ制御部装置に関連付けられる識別子と異なることを前記第２ノードが決定することに応答して、前記第２ノードのストレージ制御部装置交代が実行されたことを示すために、前記第２ノードに、前記第１ノード、前記第３ノード、及び前記第４ノードへ、ストレージ制御部交代メッセージを送信させ、前記第１ノード、前記第２ノード、前記第３ノード及び前記第４ノードは、前記クラスタ間構成情報に基づき構成されるクラスタ間ストレージ冗長構成に属する、
請求項７に記載のコンピュータプログラム。
【請求項１１】
前記ストレージ制御部交代メッセージは、ノード構成識別子に関連付けられる制御部装置識別子を指定し、前記コンピュータプログラムは、さらに、
前記ストレージ制御部交代メッセージに基づき、前記第１ノード、前記第３ノード、及び前記第４ノードに、自身のローカルに格納された前記クラスタ間構成情報のコピーの中の制御部装置識別子を置き換えさせ、前記第２ノードへＡＣＫ応答を返させる、
請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記コンピュータプログラムは、さらに、
前記第２ノードが前記第１ノード、前記第３ノード、及び前記第４ノードから前記ＡＣＫ応答を受信することに応答して、前記第２ノードに、自身のローカルに格納された前記クラスタ間構成情報のコピーの中の制御部装置識別子を置き換えさせる、
請求項１１に記載のコンピュータプログラム。
【請求項１３】
ストレージクラスタ環境に含まれるシステムであって、前記システムは第１ノード及び第２ノードを有し、
前記第１ノードが前記第２ノードの障害に応答して前記第２ノードに対してストレージ冗長テイクオーバを実行した後に、前記第２ノードのハードウェア変更により前記第２ノードが利用可能になることに応答して、
前記第１ノードが、前記第２ノードから、前記第２ノードをストレージ装置に結合するスイッチの識別子であるクラスタ内ノード接続識別子を含むノードＩＤ指示子を受信し、
前記第１ノードが、前記クラスタ内ノード接続識別子に基づき、前記第２ノードが前記第１ノードのクラスタ内テイクオーバパートナであるか否かを決定し、
前記第１ノードが、前記第２ノードが前記第１ノードの前記クラスタ内テイクオーバパートナであると決定することに応答して、前記第１ノードが、前記第１ノードから前記第２ノードへストレージリソースのギブバックを実行する、
システム。
【請求項１４】
前記ハードウェア変更は、前記第２ノードについてのストレージ制御部交代に対応する、請求項１３に記載のシステム。
【請求項１５】
前記第１ノードは、前記第２ノードがブートのギブバック段階の間に送信した前記ノードＩＤ指示子を受信する、請求項１３に記載のシステム。
【請求項１６】
前記第１ノード及び第２ノードは、第１ストレージクラスタの中の第１高可用性（ＨＡ）ストレージ制御部ペアとして構成され、前記システムは、第２ストレージクラスタの中の第２ＨＡストレージ制御部ペアとして構成される第３ノード及び第４ノードを有し、
前記第１ノードから前記第２ノードへのストレージリソースの前記ギブバックを実行することに応答して、
前記第２ノードが、前記第２ノードに結合された前記ストレージ装置にあり且つ前記第２ノード用に設けられた記憶領域に格納されているクラスタ間構成情報のコピーを読み出し、
前記第２ノードが、前記クラスタ間構成情報の前記コピーにより指定されるストレージ制御部装置識別子が、前記第２ノードの中のストレージ制御部装置に関連付けられる識別子と異なることを決定し、
前記第２ノードが、クラスタ間構成情報の前記コピーにより指定される前記ストレージ制御部装置識別子が、前記第２ノードの中の前記ストレージ制御部装置に関連付けられる識別子と異なることを決定することに応答して、前記第２ノードが、前記第１ノード、前記第３ノード、及び前記第４ノードへ、ストレージ制御部交代メッセージを送信し、前記第１ノード、前記第２ノード、前記第３ノード及び前記第４ノードは、前記クラスタ間構成情報に基づき構成されるクラスタ間ストレージ冗長構成に属する、
請求項１３に記載のシステム。
【請求項１７】
前記ストレージ制御部交代メッセージは、前記第２ノードの障害を解決するために前記第２ノードのストレージ制御部が交代されたことを示す、請求項１６に記載のシステム。
【請求項１８】
前記ストレージ制御部交代メッセージは、ノード構成識別子に関連付けられる制御部装置識別子を指定し、
前記第１ノード、第３ノード、及び第４ノードは、前記ストレージ制御部交代メッセージに基づき、自身のローカルに格納されたクラスタ間構成情報のコピーの中の制御部装置識別子を置き換える、
請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、米国特許出願番号第１４／５４１,１１９号、名称「NON−DISRUPTIVE  CONTROLLER  REPLACEMENT  IN  A  CROSS−CLUSTER  REDUNDANCY  CONFIGURATION」、２０１４年１１月１３日出願の優先権を主張する。該出願は、参照によりここに組み込まれる。
【０００２】
［技術分野］
開示の主題の実施形態は、概して、ストレージネットワークの分野に関し、より詳細には、クラスタ間冗長構成の中のストレージ制御部交代に関する。
【背景技術】
【０００３】
コンピュータクラスタは、分散型コンピューティングの形式を実施する。コンピュータクラスタは、リソースを共有するための協調的方法で構成され通信可能に結合されるノードセットを有し、幾つかの態様では単一システムとして作動する。クラスタのコンポーネントは、標準的に、ローカルエリアネットワーク（ＬＡＮ）により相互接続される、複数のサーバノードと１又は複数のクラスタ管理ノードとを有し、各々のノードは共通動作システムの自身のインスタンスを実行する。クラスタは、通常、集中型コンピューティングよりも性能及び可用性を向上するために展開され、一方で、同程度の速度又は可用性の単一コンピュータよりもコスト効率が良い。
【０００４】
ストレージクラスタは、通常、複数の相互接続されるストレージノードを含むとして特徴付けられる、ある種のネットワーク接続されるコンピュータクラスタである。各ストレージノードは、「バックエンドデータ」としても参照される場合の多いデータが格納されるストレージディスク又は固体ドライブ（solid  state  drives：ＳＳＤｓ）のアレイのような大容量ストレージユニットに結合される制御部を有する。ストレージノード制御部は、格納されたデータを含むストレージリソースへのアクセス及びその使用を最適化するサーバのような機能を実行する。大容量ストレージユニットは、長期間の不揮発性データストレージを提供するＲＡＩＤ（Redundant  Array  of  Independent  Disks）であって良い。
【０００５】
バックエンドデータへの連続的な無中断アクセスを保証することは、多くのストレージクラスタの重要な機能である。所謂、高可用性（High  Availability：ＨＡ）ストレージは、所与のストレージノードの動作を中断するイベントが生じる場合にバックエンドデータへの無中断アクセスを保証するために使用される場合が多い。中断は、ハードウェア又はソフトウェア障害に起因し、又はストレージノードの保守（例えば、交換）に起因して良い。ＨＡ構成は、クラスタ（ＨＡクラスタ）を定めて良く、又はその他の場合に定められるクラスタ内の１又は複数のＨＡペアのようなクラスタ構成機能であって良い。いずれの場合にも、基本的ＨＡストレージ構成は、システム制御コードの管理及び関連構成設定の下で相互バックアップの役割を実行する少なくとも２つの何らかの独立したストレージノードを有する。簡単には、ノードのうちの１つが故障すると、他のノードが直ちに、自身のＨＡパートナノードの動作及びストレージの制御を引き受ける。
【０００６】
分散型データストレージの規模の増大は、クラスタ内バックアップ冗長の域を超えて、格納されたデータの保護及び該データへの無中断アクセスを拡張する必要性を高めている。この必要性は、クラスタ間のデータ冗長の普及の増大により解決されている。数十乃至数百キロメータにも物理的に離れていることのあるデータセンタ内におけるようなクラスタ間ストレージ冗長は、データミラーリングによるようなデータ複製を使用する。この方法では、データ及び該データへの無中断アクセスは、例えば電力断から生じ得るサイト全体の障害に対して保護される。
【図面の簡単な説明】
【０００７】
実施形態は、添付の図面を参照することにより一層理解され得る。
【図１】本開示の一実施形態による、ストレージクラスタ内のバックアップ冗長のために使用され得るような高可用性（ＨＡ）制御部ペアを示すブロック図である。
【図２】本開示の一実施形態によるストレージノードを示すブロック図である。
【図３】本開示の一実施形態によるクラスタ間ストレージ冗長構成を示すブロック図である。
【図４】本開示の一実施形態による、ストレージ制御部交代の間及びそれに続く、高可用性（ＨＡ）ペアにより実行される動作を示すフロー図である。
【図５】本開示の一実施形態による、ストレージ制御部交代に続く、クラスタ間ストレージ冗長構成のメンバノードにより実行される動作を示すフロー図である。
【図６】図１〜５に示す実施形態を実施する例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【０００８】
以下の説明は、開示の主題の技術を実現する、例示的なシステム、方法、技術、命令シーケンス、及びコンピュータプログラムプロダクトを含む。しかしながら、記載の実施形態はこれらの特定の詳細事項のうちの１又は複数を有しないで実施できることが理解される。良く知られた命令インスタンス、プロトコル、構造及び技術は、説明を曖昧にしないために、詳細に示されない。本願明細書で用いられるとき、用語「ノード」は、追加の記述（例えば、ストレージノード、制御部ノード、等）を有する又は有しないで、図２に示すようなクラスタ構成識別子又は制御部装置を表して良い。
【０００９】
ＨＡペアとして構成されるクラスタストレージは、メンバ装置におけるシステムハードウェア及び／又はソフトウェア障害に対して保護しながら、分散型ストレージを提供するために広く使用される。ノードテイクオーバ（「フェイルオーバ」として参照される場合が多い）は、ストレージノードの障害又は異常終了のとき格納されたデータへの無中断アクセスを提供するためにＨＡペアにより使用される標準的メカニズムである。基本的に、フェイルオーバは、ストレージ冗長テイクオーバを実行することによるような、障害ノードにより前に制御されていたストレージ装置及びネットワーク接続の制御をバックアップノードが引き受けることを必要とする。したがって、バックアップノードは、無中断データ可用性を提供できる。障害ノードが復旧すると、ストレージ装置及びネットワーク接続の制御を障害の復旧したノードに戻すために、ストレージ冗長ギブバックが実行されて良い。
【００１０】
クラスタ間データ冗長は、ハードウェア障害をローリングするような、より大規模障害に対して保護するために設計され、「災害復旧」冗長又は「サイト復旧」冗長の観点で参照される場合が多い。同期データミラーリング及び不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）のライトキャッシュ複製は、所与のクラスタにローカルなノードとは異なり、データストレージ装置を共有しない、２つのサイト間の一貫した動作状態及びデータ集約のバージョンを維持するために使用される場合がある。一実施形態では、本開示は、クラスタ間冗長構成の中で制御部交代のためにＨＡ運用連続性を維持することを対象とする。
【００１１】
＜Ａ．高可用性クラスタ環境＞
図１は、高可用性（ＨＡ）クラスタペア１００として相互接続され及び大容量ストレージ装置にある情報の編成及び該情報へのアクセスに関連するストレージサービスを提供するよう構成されるノード１０５ａ及び１０５ｂのペアを示す概略ブロック図である。ノード１０５ａ及び１０５ｂは、ＨＡフェイルオーバ冗長及び分散型ストレージシステムアーキテクチャを提供するために協調する種々の機能コンポーネントを有する。この目的のために、ノード１０５ａ及び１０５ｂの各々は、ネットワーク要素（Ｎモジュール１０４ａ及び１０４ｂ）及びデータストレージ要素（Ｄモジュール１０６ａ及び１０６ｂ）として構成される。Ｎモジュール１０４ａ及び１０４ｂの各々は、個々のノード１０４ａ及び１０４ｂを例えばコンピュータネットワーク１１６を介してクライアント１０２に接続可能にする機能を有する。一方で、Ｄモジュール１０６ａ及び１０６ｂは、それぞれストレージアレイ１２５ａ及び１２５ｂの中のストレージドライブ１１５ａ〜ｍ及び１１５ｂ〜ｎのような１又は複数のストレージ装置に接続する。ノード１０５ａ及び１０５ｂは、図示の実施形態ではギガビットイーサネット（登録商標）スイッチであって良いクラスタスイッチ構造１２０により相互接続される。
【００１２】
ストレージアレイ１２５ａ及び１２５ｂの各々にある情報ストレージは、望ましくは、ボリューム上にあるボリュームブロック番号空間の全体的な論理配置を定めるために協働する物理ストレージドライブ１１５ａ〜ｍ及び１１５ｂ〜ｎの集合上に存在する、ストレージボリュームとして参照される１又は複数のアドレス可能ストレージエリアとして実装される。各論理ボリュームは、必須ではないが、通常、自身のファイルシステムに関連付けられる。論理ボリューム／ファイルシステムの中のストレージドライブは、固体ドライブ（ＳＳＤ）及び／又は磁気ディスクの任意の組み合わせを有して良く、標準的には１又は複数のグループとして組織化される。ここで、各グループは、ＲＡＩＤ（Redundant  Array  of  Independent  Disks）として作動されて良い。
【００１３】
図１に更に示すように、ノード１０５ａ及び１０５ｂは、さらに、ノード間の追加通信経路を提供するクラスタ相互接続１１８を介して結合される。クラスタ相互接続１１８は、ファイバチャネル（Fibre  Channel：ＦＣ）、ＩｎｆｉｎｉＢａｎｄ又は別の適切な伝送媒体であって良い。クラスタ相互接続１１８は、ノード１０５ａ及び１０５ｂの間で「ハートビート」信号を伝送するために使用されて良い。この信号は、各ノードのアクティブ状態を監視するために使用される。クラスタハートビ―ト信号は、クラスタスイッチ構造１２０を介しても送信される。クラスタスイッチ構造１２０を介して、Ｎモジュール１０４とＤモジュール１０６の間の通信が説明のために伝送される。ノード障害は、クラスタ相互接続及びストレージレイヤの両方に渡るハートビートの損失により示される。クラスタ相互接続１１８は、ストレージテイクオーバ相互接続としても機能する。つまり、ハートビート信号が終了すると（例えば、「タイムアウト」）、クラスタ相互接続１１８を介してフェイルオーバ／テイクオーバ手順が開始される。
【００１４】
クライアント１０２は、情報配信のクライアント／サーバモデルに従いノード１０５ａ及び１０５ｂと相互作用するよう構成される汎用コンピュータであって良い。つまり、クライアント１０２は直接に又はホストサーバを介してノードのサービスを要求して良く、ノードはネットワーク１１６を介してパケットを交換することによりクライアントサービスに応答する。クライアントは、ファイル及びディレクトリの形式で情報にアクセスするとき、ＴＣＰ／ＩＰ（Transmission  Control  Protocol/Internet  Protocol）を介して、ＣＩＦＳ（Common  Internet  File  System）プロトコル又はＮＦＳ（Network  File  System）プロトコルのようなファイルに基づくアクセスプロトコルを含むパケットを発行して良い。代替で、クライアントは、ブロック形式で情報にアクセスするとき、ＴＣＰ上でカプセル化されるＳＣＳＩ（Small  Computer  Systems  Interface）プロトコル（ｉＳＣＳＩ）及びＦＣＰ（Fibre  Channel）上でカプセル化されるＳＣＳＩのようなブロックに基づくアクセスプロトコルを含むパケットを発行して良い。
【００１５】
ＨＡペア１００のようなＨＡクラスタペアの目的は、制御部交代のような保守イベント及びハードウェア若しくはソフトウェア障害のような予期せぬイベントの間の運用連続性及び無中断ストレージリソース可用性を提供することである。正常なクラスタ動作中、ストレージ装置１１５ａ〜ｍに接続されてそれらの主運用制御を有するノード１０５ａのようなストレージ制御部ノードは、ＨＡ構成に従い、ドライブ１１５ａ〜ｍの「ホーム」として識別される。このようなＨＡノード１０５ａは、初期において「現在オーナ」としても識別され、ストレージドライブ１１５ａ〜ｍに含まれるボリュームのブロックに向けられるデータ要求にサービスすることを主に担う。同様に、ストレージノード１０５ｂは、ストレージアレイ１２５ｂの中のストレージドライブ１１５ｂ〜ｎとして表されるＳＳＤ及び／又はディスクを主に担う。ＨＡペア１００は、障害又は保守ダウンタイムの場合に、ノード１０５ａ又は１０５ｂがデータサービス能力を他のノードに引き継ぐことができるように、構成される。ここで使用されるとき、「テイクオーバ」は、あるＨＡノードパートナの他のパートナによる計画されたテイクオーバ、又はテイクオーバがランタイム障害又は他の予期せぬイベントにより引き起こされる「フェイルオーバ」シーケンスを参照して良い。
【００１６】
ＨＡパートナノードは、ストレージ装置への共有アクセス及びノード間のライトキャッシュ複製のお陰で、他の制御部ノードの管理サービスを引き継ぐことができる。図示の実施形態では、ノード１０５ａ及び１０５ｂは、ストレージアレイ１２５ａ及び１２５ｂへの使用可能なアクセスを共有している。さらに、ＨＡペア１００は、ＮＶＲＡＭライトキャッシュコンテンツ（図２を参照して示され及び説明される）がノード１０５ａ及び１０５ｂの間で複製されるように構成される。
【００１７】
図示のように及び図３を参照して以下に詳述するように、ＨＡペア１００は、少なくとも１つの他のＨＡペアを有するクラスタ間構成の中で構成されて良く、少なくとも１つの他のＨＡペアは自身の管理ストレージアレイを有する。図１に示すように、ノード１０５ａ及び１０５ｂは、標準的にノードの個々のストレージオペレーティングシステムインスタンスを組み込まれる冗長管理モジュール１２２ａ及び１２２ｂを更に有する。図３〜５を参照して更に詳述するように、管理モジュール１２２ａ及び１２２ｂは、ＨＡノードの中のプロセッサにより実行されると、クラスタ間構成に属するＨＡペアの中の個々のノードのうちの任意のものに、テイクオーバシーケンスに続くＨＡパートナノードのスムーズな認識及びＨＡペアギブバックシーケンスに続くノード構成情報の効率的な更新の両方を可能にする命令を有する。
【００１８】
＜Ｂ．ストレージシステムノード＞
図２は、ノード１０５ａ又は１０５ｂを表す制御部ノードのより詳細な図を提供するブロック図である。図２に示すように、ノード１０５は、プロセッサ２０２ａ及び２０２ｂ、メモリ２１０、ネットワークアダプタ２０８、クラスタアクセスアダプタ２１４、ＮＶＲＡＭ２０４、ストレージアダプタ２１８、及びローカルストレージ２２０を相互接続するシステムバス２２５を有する。ＮＶＲＡＭ２０４は、入来するクライアントＩ／Ｏ要求をキャッシングすることによりＩ／Ｏステージングのために使用できる。ローカルストレージ２１０は、構成テーブル２１２内のような構成情報をローカルに格納するためにノード１０５により利用可能な、磁気ディスク又はＳＳＤのような１又は複数のストレージ装置を有する。クラスタアクセスアダプタ２１４は、ノード１０５をＨＡペア１００の属するクラスタの他のノードに結合するための複数のポートを有する。図示の実施形態では、Ｅｔｈｅｒｎｅｔが、クラスタリングプロトコル及び相互接続媒体として使用されて良い。しかしながら、他のプロトコル及び相互接続が本願明細書に記載のクラスタアーキテクチャ内で利用できることが、当業者に明らかである。
【００１９】
ノード１０５は、望ましくは、ＳＳＤ又はディスク上のディレクトリ、ファイル及び仮想ディスクと呼ばれる特定種類のファイル（「ブロック」として参照される場合が多い）のような名付けデータコンテナの階層構造として情報を論理的に編成するためにファイルシステムのような高レベルモジュールを実装するストレージオペレーティングシステム２０６を実行するデュアルプロセッサ制御部として更に示される。しかしながら、ノード１０５が代替で単一の又は２より多くのプロセッサシステムを有して良いことが、当業者に明らかである。一実施形態では、１つのプロセッサ２０２ａはノードにあるＮモジュール１０４ａの機能を実行し、一方で他のプロセッサ２０２ｂはＤモジュール１０６ａの機能を実行する。
【００２０】
メモリ２１０は、開示の実施形態に関連するソフトウェアプログラムコード及びデータ構造を格納するための、プロセッサ及びアダプタによりアドレス可能な記憶位置を有する。プロセッサ及びアダプタは、また、プログラムコードを実行し及びデータ構造を走査するよう構成される処理要素及び／又は論理回路を有して良い。ストレージオペレーティングシステム２０６の部分は、標準的にメモリ内に存在し処理要素により実行され、ストレージオペレーティングシステム２０６は、特にノードにより実施されるストレージサービスのサポートによりストレージ動作を呼び出すことにより、機能的にノード１０５を編成する。種々のコンピュータ可読媒体を含む他の処理手段及びメモリ手段が、本願明細書に記載の実施形態に関連するプログラム命令を格納し及び実行するために使用されて良いことが、当業者に明らかである。図示の実施形態では、ストレージオペレーティングシステム２０６は、１又は複数のプロセッサにより実行されると図３、４、５に図示され及びそれらを参照して説明される機能のうちの１又は複数を実施するプログラム命令を含むクラスタ間冗長管理モジュール２０７を更に有する。
【００２１】
ネットワークアダプタ２０８は、公衆ネットワーク又は共有ローカルエリアネットワークにより実装されるポイントツーポイントリンク、広域ネットワーク、仮想プライベートネットワークを介して、ノード１０５を１又は複数のクライアント１０２に結合するよう適応される複数のポートを有する。ネットワークアダプタ２０８は、したがって、ノード１０５をネットワーク１１６（図１）に通信可能に結合するために必要な構造及び回路並びにロジック構造物を有して良い。一実施形態において、ネットワーク１１６は、Ｅｔｈｒｅｎｅｔ（登録商標）ネットワーク又はＦＣネットワークであって良い。各クライアント１０２は、ＴＣＰ／ＩＰのような所定プロトコルに従い分離したデータフレーム又はパケットを交換することにより、ホストサーバと直接に、又はホストサーバを経由してネットワーク１１６を介してノード１０５と通信して良い。
【００２２】
ストレージアダプタ２１８は、クライアント１０２を代表して、ストレージアレイ１２５ａ及び１２５ｂの中のストレージリソース（例えば、要求された情報）にアクセスするために、ストレージオペレーティングシステム２０６と協調して機能する。情報は、磁気テープ、光媒体、電子的ランダムアクセスメモリ、ＳＳＤ、及びデータ及びメタデータを含む情報を格納するよう適応される任意の他の類似の媒体のような、書き込み可能ストレージ装置媒体の任意の種類の取り付けられたアレイ上のストレージアレイ１２５ａ及び１２５ｂに格納されて良い。図示の実施形態では、情報は、ストレージアレイ１２５ａ及び１２５ｂのストレージ装置１１５に格納される。ストレージアダプタ２１８は、ＦＣリンクトポロジのようなＩ／Ｏ相互接続を介してドライブ１１５に通信可能に結合されるＩ／Ｏインタフェース回路（図示しない）を有する複数のポートを更に有する。
【００２３】
＜Ｃ．クラスタ間冗長＞
図３は、クラスタＡ及びクラスタＢの中でＨＡペアを形成するストレージノードを含むクラスタ間ストレ―ジシステム３００を示すブロック図である。クラスタＡは、第１ストレージ制御部ノードペアＡ１及びＡ２、並びに第２ノードペアＡ３及びＡ４を有する。ノードペアＡ１／Ａ２及びＡ３／Ａ４は、個々のＨＡクラスタペアを形成する、クラスタＡの中のサブクラスタでもある。システム３００は、クラスタＡと物理的に離れていて良いクラスタＢのメンバである２つの追加ＨＡクラスタペアＢ１／Ｂ２及びＢ３／Ｂ４を更に有する。データをミラーリングし及びＮＶＲＡＭコンテンツを複製するように通信可能に結合されている間、クラスタＡ及びＢの各々の中の制御部ノードは、他のクラスタの中のノードを有するストレージアレイ装置の運用制御を共有しない。
【００２４】
図１及び２を参照して説明したように、ペアＡ１／Ａ２及びＢ２／Ｂ２のようなＨＡペアは、ストレージ装置への共有運用（operational）アクセス及びＮＶＲＡＭ  Ｉ／Ｏステージングキャッシュの複製により運用連続性を提供することにより、システム障害又は保守に起因するダウンタイムを最小化する。クラスタ内冗長に加えて、図示の実施形態は、別のクラスタの中のＨＡペアに関連付けてあるクラスタに属するＨＡペアを構成することにより、クラスタ間データ保護及び運用連続性を提供する。標準的に、このように構成される関連付けは、システム起動中に確立され、システムが再構成のためにシャットダウンされるまで維持される。図３は、第１クラスタ間構成３５０及び第２クラスタ間構成３５５を有するとして、ＨＡペアのクラスタ間構成を示す。図示の構成３５０及び３５５は、それぞれ、クラスタＡ及びＢの各々の中の１つのＨＡペアにグループ化され及び分割される４個のノードを有する。これは、クラスタ間ミラーリングを維持しながら、両クラスタの中でクラスタ内ＨＡ冗長を維持するために必要な、ＨＡペアの最小数及び制御部ノードの最小合計数である。
【００２５】
クラスタ間構成３５０は、ＦＣスイッチ３０２及び３０４を有するＦＣ（Fibre  Channel）交換ネットワークを通じるストレージアレイ３０６ａ及び３０６ｂへの運用アクセスを共有するＨＡペアＡ１／Ａ２を有する。構成３５０は、ＦＣスイッチ３１２及び３１４を有するＦＣ交換ネットワークを通じるストレージアレイ３１６ａ及び３１６ｂへの運用アクセスを共有する対応する「パートナ」ＨＡペアＢ１／Ｂ２を有する。クラスタ間構成３５５は、ＦＣスイッチ３２２及び３２４を有するＦＣ交換ネットワークを通じるストレージアレイ３２６ａ及び３２６ｂへの運用アクセスを共有する（ストレージ制御部ノード３２５ａ及び３２５ｂを有する）ＨＡペアＡ３／Ａ４を有する。クラスタ間構成３５５は、ＦＣスイッチ３３２及び３３４を有するＦＣ交換ネットワークを通じるストレージアレイ３３６ａ及び３３６ｂへの運用アクセスを共有する（ストレージ制御部ノード３３５ａ及び３３５ｂを有する）ＨＡペアＢ３／Ｂ４も有する。
【００２６】
構成３５０及び３５５の構成及び運用は、実質的に同様である。構成３５０のクラスタ間ＨＡ動作及びクラスタ間冗長動作は、説明目的で記載される。正常ランタイム動作中、制御部ノードＡ１  ３０５ａ及びＡ２  ３０５ｂの各々は、自身の個々に割り当てられた、ストレージアレイ３０６ａ及び３０６ｂのサブセットを制御する。例えば、ＨＡペアＡ１／Ａ２は、クラスタＡの中で構成されて良い。したがって、制御部ノード３０５ａは、スイッチ３０２を介してストレージアレイ３０６ａの運用制御を有する。ストレージアレイ３０６ａ及び３０６ｂへの共有アクセスは、ＮＶＲＡＭ  Ｉ／Ｏステージングキャッシュコンテンツの複製（図３に図示しない）と一緒に、ノード３０５ａが故障し又はオフラインにされた場合に運用連続性を維持するために、ノード３０５ｂがストレージアレイ３０６ａの運用制御を引き受けることを可能にする。ＨＡペアＡ１／Ａ２の動作と同様に、正常ランタイム動作中、制御部ノードＢ１  ３１５ａ及びＢ２  ３１５ｂの各々は、ストレージアレイ３１６ａ及び３１６ｂの自身の個々に割り当てられたサブセットを制御する。例えば、ＨＡペアＢ１／Ｂ２は、クラスタＢの中で構成されて良い。したがって、制御部ノード３１５ａは、スイッチ３１２を介してストレージアレイ３１６ａの運用制御を有する。ストレージアレイ３１６ａ及び３１６ｂへの共有アクセスは、ＮＶＲＡＭ  Ｉ／Ｏステージングキャッシュコンテンツの複製（図３に図示しない）と一緒に、ノード３１５ａが故障し又はオフラインにされた場合に運用連続性を維持するために、ノード３１５ｂがストレージアレイ３１６ａの運用制御を引き受けることを可能にする。
【００２７】
ＨＡペアＡ１／Ａ２及びＢ１／Ｂ２は、クラスタ間データ冗長及び運用連続を提供するために、相互にプログラムされ、その他の場合、構成３５０の中で構成される。各ノードは、自身のクラスタ内ＨＡパートナシップに加えて、自身の２個のクラスタ間パートナの各々との構成固有関係を有する。図示の例では、ノードＡ１は、構成により、ノードＢ１とのクラスタ間「パートナ」関係を有するよう関連付けられて良く、さらに構成により、ノードＢ２との「補助」（つまり、バックアップ）クラスタ間パートナシップ関係を有するよう関連付けられる。このような場合には、ノードＢ１は、ノードＡ１の相互クラスタ間パートナであり、ノードＡ２は、ノードＢ１の補助クラスタ間パートナである。図示の実施形態では、ＨＡノードペアＡ３／Ａ４は及びＢ３／Ｂ４は、構成３５５の中でクラスタ間パートナ及び補助パートナを形成するよう同様に構成されて良い。
【００２８】
上述のＨＡペアメカニズムと同様に、個々のクラスタ間冗長パートナシップ及び補助パートナシップにより提供される運用連続性は、個々のパートナの間でＮＶＲＡＭ  Ｉ／Ｏステージングキャッシュコンテンツを同期して複製することにより、部分的に可能にされる。データは、長距離ＦＣ接続３４２及び３４４を介して個々のバックエンドストレージ装置３０６ａ、ｂ及び３１６ａ、ｂの間で格納されたデータ集合体を同期してミラーリングすることにより、ノードＡ１及びＢ１のようなクラスタ間パートナの間で複製されて良い。一実施形態では、ＲＡＩＤレベルのデータミラーリングが、クラスタ間バックエンドストレージ複製を実行するために使用されて良い。図示の実施形態に示すように、制御部ノード３０５ａ、３０５ｂ、３１５ａ、及び３１５ｂは、それぞれ、クラスタ間冗長管理モジュール３６２ａ、３６２ｂ、３６４ａ及び３６４ｂを有する。図４及び５に図示のように及びそれらを参照して更に詳述するように、管理モジュールは、個々の制御部ノードがクラスタ間構成の中でテイクオーバ／ギブバックＨＡ動作をスムーズに実行することを可能にするロジックを有する。
【００２９】
図４は、本開示の一実施形態による、ストレージ制御部交代の間及びそれに続く、ＨＡペアＡ１／Ａ２により実行される動作を示すフロー図である。ステップ４０２で開始し及びステップ４０４へ進むと、ＨＡペアＡ１／Ａ２は、テイクオーバ手順を開始する。テイクオーバ手順では、ノードＡ１は、Ａ２が前に制御していたバックエンドストレージアレイ３０６ｂ及び対応するストレージ接続の制御を引き受ける。テイクオーバの前に、長距離ＦＣ接続３４２及び３４４を含むクラスタ間構成相互接続は、個々のＨＡパートナのＮＶＲＡＭの各々のログデータをミラーリングするためにメンバノードＡ１、Ａ２、Ｂ１及びＢ２により使用される。このような、Ａ２からのＮＶＲＡＭ複製及びそれと一緒のバックエンドストレージ３０６ｂへの自身の共有アクセスは、自動的に、Ａ２からの障害のあるハートビート信号に応答して、又は例示的な実施形態におけるように、ノードＡ２が制御部交代のためにシャットダウンされるという管理信号に応答して、ノードＡ１がＡ２の現行制御部ノード機能の制御を直ちに引き受けることを可能にする。
【００３０】
Ａ２のノード制御部３０５ｂは、プロセッサ及び関連するメモリ要素を含み及びＮＶＲＡＭカードも含む図２に示す１又は複数のコンポーネントを有して良い。制御部が交代され電源を入れられると、処理は、ステップ４０６に示すように、ギブバック手順で継続する。ギブバック手順では、ノードＡ２は、自身の新しい制御部と共に、正常動作中にはＡ２が管理するよう構成されるストレージ装置及び接続の制御を再び引き受けることを、ノードＡ１と交渉する。起動ブートプロセスの早い段階で、ノードＡ２は、スイッチ３０２及び３０４を有するＦＣ構造との自身の接続インタフェースを初期化する。初期化（構造発見）中、Ａ２は、スイッチの個々のＷＷＮ（World  WideName）の形式でスイッチ３０２及び３０４からの識別子を得ることにより、自身のクラスタ内ストレージ接続を決定する（ステップ４１０）。ＷＷＮ又はＷＷＩＤ（World  Wide  Identifier）は、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ、又はＳｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩを含むストレージ技術で使用されるユニークな識別子である。図示の実施形態では、ノードＡ２は、ローカルＦｉｂｒｅＣｈａｎｎｅｌスイッチ３０２及び３０４のＷＷＮを決定する／発見する。発見したＷＷＮは、例えば、シリアル番号の形式の、スイッチを識別するＷｏｒｌｄ  Ｗｉｄｅ  Ｎｏｄｅ  Ｎａｍｅｓであって良い。
【００３１】
ノードＡ２  ３０５ｂは、ノードＡ２のＩＤを示すノード広告をマルチキャストすることにより、クラスタ間構成３５０のＦＣ相互接続への自身の再エントリを宣言する。ステップ４１２に示すように、マルチキャストされるノード広告は、望ましくは、Ａ２が、Ａ２の制御部装置ＩＤ及びクラスタ間構成ＩＤを記録するストレージアレイ３０６ｂの中のメールボックスルートディスクのような自身のリソースへのアクセスを未だ有しない、ギブバック待機段階と同時に起こる。ここで、ノードＡ２が自身のユニークなクラスタ間構成ＩＤへのアクセスを有する前に、処理はステップ４１４で継続し、Ａ２は自身のノード広告をクラスタ間構成３５０の全てのメンバノード（つまり、Ａ１、Ｂ１、及びＢ２）へマルチキャストする。図示の実施形態によると、ノード広告は、Ａ２がステップ４１０で得たスイッチ識別子を含むノードＩＤ情報を有する。
【００３２】
ステップ４０８は、ノードＡ１が任意の所与のノード広告をクラスタ間構成３５０の任意の所与のメンバノードから受信するステップを示す。標準的に、ノード広告は、クラスタＩＤ、ノードシステムＩＤ、及びノード構成ＩＤを有する。クラスタＩＤは、ノードの属するクラスタを識別する。したがって、図示の実施形態では、ノードＡ１及びＡ２は、Ｂ１及びＢ２と同じクラスタＩＤを有する。ノードシステムＩＤは、制御部ハードウェアを個々に識別する数値又は英数字コードである。図示の例では、ノードシステムＩＤは、ノードＡ２の制御部が交代されているので、ノードＡ２について変更される。ノード構成ＩＤは、ノードの機能、接続性、及びクラスタ間構成の中の他のノードとの相互関係の観点で、ノードを識別するコードである。したがって、ノード構成ＩＤは、ノードの制御部が交代されるか否かに拘わらず、所与の「ノード」に関連付けられて同一のままである。
【００３３】
クラスタ間構成３５０の４ノードのメンバシップの場合、ステップ４０８で示されるようなＡ１のようなメンバノードのうちの任意のメンバノードは、少なくとも３個のメンバノードのうちの任意のメンバノードからノード広告を受信して良い。上述のように、全てのメンバノードは、他のメンバの各々に関して所定役割を有し、ノード構成ＩＤはこの役割を定める。しかしながら、Ａ２のようなノードが制御部交代に続いて再起動されると、該ノードは、メールボックスルートディスクに格納された自身のノード構成ＩＤにアクセスできない。このアクセスは、ノードＡ１により未だ戻されていない。Ａ２の起動のギブバック待機段階の間、ノードＡ１は、ノードＡ２から、ステップ４１０でノードＡ２により得られたスイッチ識別子情報を含むマルチキャストを受信する（ステップ４０８）。ステップ４１６に示すように、ノードＡ１は、Ａ２が自身のＨＡペアパートナであるか否かを決定するために、ノードＡ２からのマルチキャストに含まれ得ｒクラスタ内識別子（本例ではスイッチ識別子）が、自身のクラスタ内接続情報に一致するか又はその他の場合対応するかを決定する。Ａ２のノード広告メッセージに含まれるスイッチ識別子が自身のクラスタ内接続情報に一致する（例えば、どのローカルスイッチに自身が接続するかの、自身の対応する記録に一致する）ことを決定することに応答して、Ａ１は、ストレージリソースのギブバックを開始し（ステップ４１８）、処理は終了し、Ａ２がクラスタ間構成の中でオンラインに戻る。
【００３４】
図５は、本開示の一実施形態による、ストレージ制御部交代の間及びそれに続く、クラスタ間構成３５０の１又は複数のメンバノードＡ１、Ａ２、Ｂ１及びＢ２により実行される動作を示すフロー図である。図５に図示し及び図５を参照して説明したステップは、ＨＡペアとして構成され及びクラスタ間冗長ドメインに組み込まれるクラスタリングされたストレージノードのスムーズなストレージ制御部交代を可能にするために、図４を参照して説明したステップ及び機能と結合されて良い。処理はステップ５０２に示すように開始し、ノードＡ１からノードＡ２へのストレージリソース（ストレージ装置及びネットワーク接続の制御）のギブバックの完了で継続する。次に、ステップ５０４に示すように、ノードＡ２は、自身及びクラスタ間構成３５０の他の３個のメンバについての構成情報が格納されている自身のメールボックスルートディスクにアクセスする。図４を参照して記載したように、自身の新しい制御部と共に再起動しているノードＡ２は、ノードＡ１によりＡ１のＨＡクラスタパートナとして認識されている。しかしながら、ノードＡ２は、クラスタ間構成３５０の中でノードＡ１、Ｂ１、及びＢ２に関して（ＨＡパートナ、クラスタ間パートナ、又は補助クラスタ間パートナとして）自身の役割を再確立していない。ステップ５０６及び５０８で、Ａ２は、Ａ２のメールボックスルートディスクにローカルに格納されるクラスタ間構成３５０についての構成情報のコピーを読み出す。構成情報は、図４を参照して上述したノード広告識別子情報と一致する。つまり、ローカルに格納された構成情報は、各メンバについて、クラスタＩＤ、ノードシステムＩＤ、ノード構成ＩＤ、及び記載の実施形態では、クラスタ内接続ＩＤを有する。
【００３５】
ノードシステムＩＤは、標準的に制御部の中に含まれるＮＶＲＡＭカードのシリアル番号として表されるノードの制御部の装置識別子に対応する。図示の例では、Ａ２の中にローカルに格納されるクラスタ間構成情報のコピーは、ノードシステムＩＤとして置き換えられた制御部の識別子を有する。ステップ５０８に示すように、Ａ２は、ローカルに記録されたノードシステムＩＤを、自身の新しくインストールされた制御部装置の識別子と比較する（ステップ５１０）。図示のようにステップ５１２で開始し、Ａ２が、ローカルに格納された制御部識別子が新しくインストールされた制御部の識別子と異なることを決定した場合、Ａ２は、他のクラスタ間構成メンバにマルチキャストされるべき（ステップ５１４）制御部交代メッセージを生成する。
【００３６】
制御部交代メッセージは、交代されるＡ２制御部の識別子（つまり、Ａ２の現在ローカルに格納されるノードシステムＩＤ）及び交代したＡ２制御部の対応する識別子を含む。これら両方の識別子は、前述のように制御部交代の後に不変のままである、Ａ２のノード構成ＩＤに関連付けられる。マルチキャストされた制御部交代メッセージを受信すると、受信側メンバノードＡ１、Ｂ１及びＢ２の各々は、指定されたノード構成ＩＤを、どのメンバノードのノードシステムＩＤが交代を要求するかを識別するためのキーとして使用する（ステップ５１６）。ステップ５１８に示すように、クラスタ間構成情報の自身のローカルに格納されたコピーの中のノードシステムＩＤ（つまり、制御部装置ＩＤ）を置き換えると、各メンバノードは、マルチキャストの送信側であるＡ２へＡＣＫを送信する。全てのメンバノードからのＡＣＫ応答の受信を確認したＡ２が、前の制御部ＩＤを新しい制御部ＩＤで置き換えるために、自身のローカル構成コピーを更新すると、処理が完了する（ステップ５２０、５２２、及び５２４）。
【００３７】
図６は、クラスタ間冗長管理ユニット６１０を有する例示的なコンピュータシステムを示す。コンピュータシステムは、プロセッサ６０２を有する（場合によっては複数のプロセッサ、複数のコア、複数のノードを含み、及び／又はマルチスレッドを含む、等）。コンピュータシステムは、システムメモリ（例えば、キャッシュ、ＳＲＡＭ、ＤＲＡＭ、ゼロキャパシタＲＡＭ、ＴｗｉｎＴｒａｎｓｉｓｔｏｒＲＡＭ、ｅＤＲＡＭ、ＥＤＯ  ＲＡＭ、ＤＤＲ  ＲＡＭ、ＥＥＰＲＯＭ、ＮＲＡＭ、ＲＲＡＭ（登録商標）、ＳＯＮＯＳ、ＰＲＡＭ、等）又は機械可読媒体の上述の可能な実現のうちの任意の１又は複数であって良いメモリ６０４を有する。コンピュータシステムは、相互接続６０５（例えば、ＰＣＩ、ＩＳＡ、ＰＣＩＥｘｐｒｅｓｓ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（登録商標）、ＩｎｆｉｎｉＢａｎｄ（登録商標）、ＮｕＢｕｓ、等）、ネットワークインタフェース６０６（例えば、Ｅｔｈｅｒｎｅｔインタフェース、フレームリレーインタフェース、ＳＯＮＥＴインタフェース、無線インタフェース、等）、及びストレージ装置６０８（例えば、光ストレージ、磁気ストレージ、等）も有する。冗長管理ユニット６１０は、図１〜５を参照して上述した機能を実装するための機能を実施する。冗長管理ユニット６１０は、ＨＡペアのテイクオーバ／ギブバック段階の管理を実現する動作を実行して良い。したがって、クラスタリングされた環境で構成されるとき、テイクオーバを実行するノードは、自身のＨＡテイクオーバパートナを効率的に認識できる。冗長管理ユニット６１０は、ＨＡペアのうちの一方におけるストレージ制御部の交代に続き、クラスタ間構成で構成されるＨＡペアのメンバノードにより実行される動作を実現する動作を実行して良い。これらの機能のうちの任意のものは、部分的に（又は全体的に）ハードウェアで及び／又はプロセッサ６０２上に実装されて良い。例えば、機能は、特定用途向け集積回路により、プロセッサ６０２の中に実装されるロジックで、周辺装置若しくはカード上のコプロセッサ、等で、実装できる。さらに、具現化は、より少数の又は図６に図示されない追加のコンポーネント（例えば、追加ネットワークインタフェース、周辺装置、等）を有して良い。
【００３８】
当業者に理解されるように、開示の主題の態様は、システム、方法、又はコンピュータプログラムプロダクトとして具現化されて良い。したがって、開示の主題の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード、等を含む）、又は本願明細書では概して「回路」、「モジュール」若しくは「システム」と称され得るソフトウェアとハードウェアの態様の組合せの実施形態の形式を取って良い。さらに、開示の主題の態様は、コンピュータ可読媒体上に具現化されるコンピュータ可読プログラムコードを有する１又は複数のコンピュータ可読媒体で具現化されるコンピュータプログラムプロダクトの形式を取って良い。
【００３９】
１又は複数のコンピュータ可読媒体のいかなる組合せが用いられて良い。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であって良い。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子、磁気、光、電磁気、赤外線、又は半導体システム、機器、又は装置、又はそれらの任意の適切な組合せを有して良い。コンピュータ可読記憶媒体のより具体的な例（非包括的リスト）は、１又は複数のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又はそれらの任意の適切な組合せ、を含み得る。本願明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、機器又は装置により若しくはそれらと関連して使用するためのプログラムを有し又は格納し得る任意の有形媒体であり得る。
【００４０】
コンピュータ可読信号媒体は、例えば、ベースバンドで又は搬送波の一部として具現化されるコンピュータ可読プログラムコードを有する伝搬されるデータ信号を有して良い。このような伝搬される信号は、電磁、光、又はそれらのいかなる適切な組合せを含むがこれらに限定されない種々の形式のうちのいかなる形式を取って良い。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく及び命令実行システム、機器若しくは装置により若しくはそれと接続して使用するためにプログラムを通信、伝搬又は送信できるいかなる適切なコンピュータ可読媒体であって良い。
【００４１】
コンピュータ可読媒体上に具現化されるプログラムコードは、無線、有線、光ファイバケーブル、ＲＦ等又はこれらのいかなる適切な組合せを含むがこれらに限定されないいかなる適切な媒体を用いて送信されて良い。
【００４２】
本開示の主題の態様の動作を実行するためのコンピュータプログラムコードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語及びＣプログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む１又は複数のプログラミング言語の組合せで記述されて良い。プログラムコードは、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン型ソフトウェアパッケージとして、部分的にユーザのコンピュータで及び部分的にリモートコンピュータで又は部分的にリモートコンピュータ若しくはサーバで実行されて良い。後者のシナリオでは、リモートコンピュータは、ＬＡＮ（local  area  network）又はＷＡＮ(wide  area  network)を含む如何なる種類のネットワークを通じてユーザのコンピュータに接続されても良く、或いは（例えば、インターネットサービスプロバイダを用いてインターネットを通じて）外部コンピュータへの接続が生成されて良い。
【００４３】
実施形態は、種々の実装及び開発を参照して記載されたが、これらの実施形態は説明のためであること、及び本開示の主題はそれらの実施形態に限定されないことが、理解される。概して、本願明細書に記載されたストレージ制御部をスムーズに交代する技術は、任意の１又は複数のハードウェアシステムと調和する設備とともに実装されて良い。多くの変形、変更、追加、及び改良が可能である。
【図１】
0006317856.tif 000002
【図２】
0006317856.tif 000003
【図３】
0006317856.tif 000004
【図４】
0006317856.tif 000005
【図５】
0006317856.tif 000006
【図６】
0006317856.tif 000007