(57)【要約】【課題】二重アクティブ・モードのコントローラの一方が故障したとき単一アクティブ・モードで動作し、故障から回復すると二重アクティブ・モードに戻る効率的な装置および方法を提供する。【解決手段】第２のコントローラが故障すると、第２のコントローラが第１のコントローラのキャッシュに予めミラリングしたキャッシュ・データに依存して、２台のコントローラの二重アクティブ・モードから第１のコントローラの単一アクティブ・モードにフェイルオーバーし、第２のコントローラが再稼動可になると再初期化し、第１のコントローラのキャッシュ内のデータを第２のコントローラのキャッシュに直接コピーすることにより二重アクティブ・モードにフェイルバックする。【選択図】図１１
2010140493.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶装置であって、１対のコントローラと、キャッシュ内のデータを前記コントローラの対の残存する方のコントローラのキャッシュから他方のコントローラのキャッシュに直接コピーすることにより単一アクティブ・ライトバック・モードから二重アクティブ・ライトバック・モードにフェイルバックするための回路と、を備える前記データ記憶装置。
【請求項２】
第２のコントローラが予めミラリングしたキャッシュ・データに依存して、第１および第２のコントローラの二重アクティブ・モードから前記第１のコントローラの単一アクティブ・モードにフェイルオーバーし、
前記第２のコントローラを再初期化し、
キャッシュ内のデータを前記第１のコントローラから前記第２のコントローラに直接コピーすることにより前記二重アクティブ・モードにフェイルバックする、方法。
【請求項３】
データ記憶システムであって、
書込みコマンドを記憶空間に渡すためのそれぞれのライトバック・キャッシュを有する第１および第２のコントローラと、
フェイルオーバーおよびフェイルバックを行って前記コントローラを単一アクティブ・モードと二重アクティブ・モードでそれぞれ動作させる手段と、
を備えるデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に分散記憶システムの分野に関するもので、より詳しくは、遠隔装置と記憶空間との間でコマンドを渡す二重アクティブ・コントローラをフェイルオーバーおよびフェイルバックするための機器および方法に関するものであるが、これに限定されるものではない。
【背景技術】
【０００２】
記憶装置は高速かつ効率的にデータにアクセスするのに用いられる。或るタイプの記憶装置は、回転可能な記憶媒体と、媒体表面上に定義されたトラックにデータを書き込みまたトラックからデータを読み取る１個以上のデータ変換器とを用いる。
インテリジェント記憶要素（ＩＳＥ）は多重記憶装置を用いて強化されたメモリ空間を形成してよい。一般に用いられるＩＳＥの１つのフォーマットはＲＡＩＤ（独立ディスクの冗長アレイ）構成を用いる。この構成では入力データをアレイ内の多重の記憶装置にまたがって記憶する。ＲＡＩＤレベルに従って、ミラリング、ストライピング、およびパリティ・コード生成などの種々の技術を用いて、記憶されたデータの完全性を強化することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
記憶容量および性能のレベルを常に高めることが絶えず要求されるので、かかるアレイ内の記憶装置を動作中に管理する方法を改善する必要が常に存在する。本発明の好ましい実施の形態は一般にこれらの改善に関するものである。
【課題を解決するための手段】
【０００４】
本発明の好ましい実施の形態は一般に、分散記憶システム内で二重コントローラをフェイルオーバーおよびフェイルバックするための機器および関連する方法に関する。
或る実施の形態では、１対のコントローラと、キャッシュ内データをコントローラの対の残存する方のコントローラのキャッシュから他方のコントローラのキャッシュに直接コピーすることにより単一アクティブ・ライトバック・モードから二重アクティブ・ライトバック・モードにフェイルバックするための回路とを備えるデータ記憶装置を提供する。
或る実施の形態では、第２のコントローラが予めミラリングしたキャッシュ内データに依存して、第１および第２のコントローラの二重アクティブ・モードから第１のコントローラの単一アクティブ・モードにフェイルオーバーし、第２のコントローラを再初期化し、キャッシュ内データを第１のコントローラから第２のコントローラに直接コピーすることにより二重アクティブ・モードにフェイルバック方法を提供する。
或る実施の形態では、書込みコマンドを記憶空間に渡すためのそれぞれのライトバック・キャッシュを有する第１および第２のコントローラと、フェイルオーバーおよびフェイルバックを行ってコントローラを単一アクティブ・モードと二重アクティブ・モードでそれぞれ動作させる手段とを備えるデータ記憶システムを提供する。
本発明を特徴づけるこれらの機能および利点は、以下の詳細な説明を読み、関連する図面を参照すれば明らかになる。
【図面の簡単な説明】
【０００５】
【図１】図１は、本発明の好ましい実施の形態に従って構築されまた動作する記憶装置を一般に示す。
【図２】図２は、図１に示すような多数の記憶装置を用いるネットワーク・システムの機能的ブロック図である。
【図３】図３は、本発明の実施の形態に従って構築されたインテリジェント記憶要素の組立分解斜視図である。
【図４】図４は、図３のインテリジェント記憶要素の多重ディスク・アレイの部分組立分解斜視図である。
【図５】図５は、図３のインテリジェント記憶要素の機能ブロック図である。
【図６】図６は、図２のコントローラの好ましい構造の一般的な表現である。
【図７】図７は、図６の選択されたインテリジェント記憶プロセッサの機能的ブロック図である。
【図８】図８は、多数の並列のターゲット装置に接続する原始装置の一般的な表現である。
【図９】図９は、好ましい実施の形態に係るターゲット装置へのデータの並列同時転送を示す。
【図１０】図１０は、図５と同様な図である。
【図１１】図１１は、図３のインテリジェント記憶要素の異なる線図を示す。
【図１２】図１２は、本発明の好ましい実施の形態に従って実施されるステップを一般的に示すフェイルオーバー／フェイルバック・ルーチンを示す。
【実施例】
【０００６】
図１はユーザ・データを記憶しまた検索する例示の記憶装置１００を示す。装置１００は好ましくはハード・ディスク・ドライブであるが、必要に応じて他の装置構成を用いてよい。
ベース・デッキ１０２に上部カバー（図示しない）をかぶせると閉じたハウジングを形成する。ハウジング内にスピンドル・モータ１０４を取り付けて、好ましくは磁気記録ディスクである媒体１０６を制御して回転させる。
制御されて動くアクチュエータ１０８は、ボイス・コイル・モータ（ＶＣＭ）１１２に電流を与えることにより、媒体表面上に定義されたトラックに近接する読取り／書込み変換器１１０のアレイを動かす。可撓回路組立体１１４は、アクチュエータ１０８と、外部取付けのプリント回路板（ＰＣＢ）１１６上の装置制御電子回路との間に電気通信路を形成する。
【０００７】
図２はｎ個の記憶装置（ＳＤ）１００を組み込んで強化した記憶空間１２２を形成する例示のネットワーク・システム１２０を一般的に示す。冗長コントローラ１２４は好ましくは記憶空間１２２とサーバ１２８（ホスト）との間にデータを転送する。サーバ１２８は、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネットなどの切換え機構１３０に接続する。
遠隔ユーザはパーソナル・コンピュータ（ＰＣ）１３２，１３４，１３６を介して機構１３０にそれぞれアクセスする。このようにして、選択されたユーザは記憶空間１２２にアクセスして、必要に応じてデータを書き込みまたは取り出すことができる。
【０００８】
装置１００およびコントローラ１２４は、好ましくはインテリジェント記憶要素（ＩＳＥ）１２７の中に組み込む。ＩＳＥ１２７は好ましくは１つ以上の選択されたＲＡＩＤ（独立ディスクの冗長アレイ）構成を用いて、装置１００にまたがってデータを記憶する。図２には１台のＩＳＥ１２７と３台の遠隔ユーザとを示したが、認識されるようにこれは単なる例であって、制限するものではない。必要に応じて、ネットワーク・システム１２０は任意の数およびタイプのＩＳＥ、サーバ、クライアントおよびホスト装置、機構の構成、およびプロトコルなどを用いてよい。
【０００９】
図３は本発明の実施の形態に従って構築されたＩＳＥ１２７内のハードウエアを示す。棚１３７はコントローラ１２４を受けて係合して中央板１３８に電気的に接続するための空洞を定義する。棚１３７はキャビネット（図示しない）内に支持される。棚１３７は１対の多重ディスク組立体（ＭＤＡ）１３９を中央板１３８の同じ側に受けて係合する。中央板１３９の反対側には、緊急電源である二重電池１４０、二重交流電源１４１、および二重インターフェース・モジュール１４２が接続する。好ましくは、二重構成要素ではＭＤＡ１３９の一方または両方が同時に動作するので、１つの構成要素が故障した場合はバックアップ保護を行うことができる。
【００１０】
図４は本発明の或る実施の形態に従って構築されたＭＤＡ１３９の拡大部分組立分解等角図である。ＭＤＡ１３９は上部１４３と下部１４４とを有し、それぞれは５個のデータ記憶装置１００を支持する。区画１４３，１４４は、中央板１３８（図３）と係合するコネクタ１４６を有する共通回路板１４５と接続できるようにデータ記憶装置１００を揃える。カバー１４７は電磁妨害を遮蔽する。ＭＤＡ１３９のこの例示の実施の形態は、特許出願１０／８８４，６０５、「多重ディスク・アレイの搬送装置および方法（Ｃａｒｒｉｅｒ  Ｄｅｖｉｃｅ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ａ  Ｍｕｌｔｉｐｌｅ  Ｄｉｓｃ  Ａｒｒａｙ）」の主題である。これは本発明の被譲渡人に譲渡されたものであって、ここに援用する。ＭＤＡの別の例示の実施の形態は同じタイトルの特許出願１０／８１７，３７８の主題である。これも本発明の被譲渡人に譲渡されたものであって、ここに援用する。別の同等の実施の形態では、密閉された容器内にＭＤＡ１３９を収めてよい。
【００１１】
図５は本発明の実施の形態に従って構築された例示のＩＳＥ１２７の線図である。コントローラ１２４はインテリジェント記憶プロセッサ（ＩＳＰ）１５０と共に動作してデータの完全性の信頼性を管理する。ＩＳＰ１５０は、コントローラ１２４内、ＭＤＡ１３９内、またはＩＳＥ１２７内のどこか別のところに常駐してよい。
【００１２】
管理された信頼性の態様はＲＡＩＤ方式などの信頼できるデータ記憶フォーマットを作ることを含む。例えば、複数の異なるＲＡＩＤフォーマットの選択された１つを選択的に用いるシステムを形成することによりデータ記憶のための比較的強いシステムを作り、またＭＤＡ１３９を管理するのに用いるソフトウエアの複雑さを軽減すると共に記憶の故障状態から比較的速く回復できるようにファームウエア・アルゴリズムを最適にすることができる。この多重ＲＡＩＤフォーマット・システムのこれらの態様は、特許出願１０／８１７，２６４、「記憶媒体データ構造および方法（Ｓｔｏｒａｇｅ  Ｍｅｄｉａ  Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅ  ａｎｄ  Ｍｅｔｈｏｄ）」に記述されている。これは本発明の被譲渡人に譲渡されたものであって、ここに援用する。
【００１３】
管理された信頼性は、システムを監視して使用することに基づく診断および訂正ルーチンのスケジューリングも含んでよい。データ回復の方法はデータをコピーしまた再構築することで行う。ＩＳＰ１５０は、データを失わずにデータ記憶容量全体を「自己治癒」しやすくするようにしてＭＤＡ１３９と共に組み込む。ここで考えた管理された信頼性のこれらの態様は、特許出願１０／８１７，６１７、「管理された信頼性の記憶システムおよび方法（Ｍａｎａｇｅｄ  Ｒｅｌｉａｂｉｌｉｔｙ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ）」に開示されている。これは本発明の被譲渡人に譲渡されたものであって、ここに援用する。管理された信頼性の他の態様は、予め決められた規則に関する予測的故障表示への応答の速さを含む。これは例えば、特許出願１１／０４０，４１０、「分散記憶システムにおける予測された故障からの決定論的な予防的回復（Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｐｒｅｖｅｎｔｉｖｅ  Ｒｅｃｏｖｅｒｙ  Ｆｒｏｍ  ａ  Ｐｒｅｄｉｃｔｅｄ  Ｆａｉｌｕｒｅ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍ）」に開示されている。これは本発明の被譲渡人に譲渡されたものであって、ここに援用する。
【００１４】
更にこれらの管理された信頼性の目的では、この実施の形態は「二重アクティブ」モードで動作することを考える。すなわち、１つのコントローラがキャッシュに転送したデータを別のコントローラに関連するキャッシュにミラリングする。好ましくは、このミラリングは受動的に行う。すなわち、ミラリングはホストが一切制御せずに行う。受動的ミラリングは同時継続出願中の「多重ターゲット装置へのデータの同時転送による受動的ミラリング（Ｐａｓｓｉｖｅ  Ｍｉｒｒｏｒｉｎｇ  Ｔｈｒｏｕｇｈ  Ｃｏｎｃｕｒｒｅｎｔ  Ｔｒａｎｓｆｅｒ  ｏｆ  Ｄａｔａ  ｔｏ  Ｍｕｌｔｉｐｌｅ  Ｔａｒｇｅｔ  Ｄｅｖｉｃｅｓ）」の主題である。これは本発明の被譲渡人に譲渡されたものであって、ここに援用する。
【００１５】
両方のコントローラ１２４が利用可能なときは、キャッシュ・データのミラリングは可能になる。一方のコントローラ１２４だけにフェイルオーバーするとミラリングは不能になる。しかし故障したコントローラ１２４が再稼動するとミラリングは再び可能になる。これについての詳細は、以下に受動ミラリングを可能にするＩＳＥ１２７の説明から始める。
【００１６】
図６は中間バス１５１（Ｅバスと呼ぶ）により結合された２個のインテリジェント記憶プロセッサ（ＩＳＰ）１５０を示す。各ＩＳＰ１５０は、好ましくは共通のコントローラ板上の別個の集積回路パッケージ内に収める。好ましくは各ＩＳＰ１５０は、ファイバ・チャネル・サーバ・リンク１５２を介して上流のアプリケーション・サーバと、またファイバ・チャネル記憶リンク１５４を介して記憶装置１００と、それぞれ通信する。
【００１７】
ポリシー・プロセッサ１５６はコントローラ１２４のために実時間オペレーティング・システム（ＲＴＯＳ）を実行し、ＰＣＩバス１６０を介して各ＩＳＰ１５０と通信する。更にポリシー・プロセッサ１５６はカストマイズされた論理を実行して、所定の記憶アプリケーションについてＩＳＰ１５０と共に高度の処理タスクを実行する。ＩＳＰ１５０およびポリシー・プロセッサ１５６は、動作中の必要に応じてメモリ・モジュールにアクセスする。
【００１８】
図７は図６の１個の選択されたＩＳＰ１５０の好ましい構造を示す。多数の機能コントローラ（まとめて１６８で示す）が、多数のコントローラ動作のための機能コントローラ・コア（ＦＣＣ）として働く。例えば、ホスト交換、直接メモリ・アクセス（ＤＭＡ）、排他的論理和（ＸＯＲ）、コマンド経路選択、メタデータ制御、およびディスク交換などを行う。各ＦＣＣは好ましくは高度に柔軟な機能集合およびインターフェースを含み、メモリ交換などのスケジューリング・タスクを容易にする。
【００１９】
リスト・マネージャは、好ましくはアレイ動作中に分散・収集リスト（ＳＧＬ）を生成しまたは更新する。認識されるように、ＳＧＬは一般に、データを書き込み（すなわち、分散し）またはデータを読み取る（すなわち、収集する）メモリ位置を識別する。
各リスト・マネージャは好ましくはＦＣＣによるメモリ・アクセスのためのメッセージ・プロセッサとして動作し、また好ましくは、定義されたプロトコルに従って受けたメッセージが定義する動作を実行する。
【００２０】
リスト・マネージャ１７０は多数のメモリ・モジュールとそれぞれ通信しまた制御する。メモリ・モジュールは、交換メモリ・ブロック１７２、キャッシュ・テーブル・ブロック１７４、バッファ・メモリ・ブロック１７６、ＰＣＩインターフェース１８２、およびＳＲＡＭ１７８を含む。機能コントローラ１６８とリスト・マネージャ１７０とはクロスポイント・スイッチ（ＣＰＳ）モジュール１８０を介してそれぞれ通信する。このようにして、コントローラ１６８の選択された機能コアはＣＰＳ１８０を介して、対応するリスト・マネージャ１７０への通信路を確立して状態を知らせ、メモリ・モジュールにアクセスし、または望ましいＩＳＰ動作を起こす。
【００２１】
同様に、選択されたリスト・マネージャ１７０はＣＰＳ１８０を介して機能コントローラ１６８に応答を返してよい。図示していないが、好ましくは図７の各要素の間に別のデータ・バス接続を確立してその間のデータ転送を可能にする。認識されるように、必要に応じて他の構成を用いてよい。
【００２２】
図７は更に、ポリシー・プロセッサ１５６とＩＳＰ１５０との間にトランザクションを確立しまた指示するＰＣＩインターフェース（Ｉ／Ｆ）モジュール１８２を示す。Ｅバス・インターフェース（Ｉ／Ｆ）モジュール１８４はＦＣＣと各ＩＳＰ１４２，１４４のリスト・マネージャとの間のＥバス１４６による通信を容易にする。またポリシー・プロセッサ１５６，１５８は、必要に応じてＥバス１４６を介してシステムの他の部分との間で情報を送りまた受けてよい。
【００２３】
図６および図７のコントローラ構造の優れた点は拡張が容易で高度に機能的なアレイのデータ管理および制御が可能なことである。好ましくは、ストライプ・バッファ・リスト（ＳＢＬ）またはその他のメタデータ構造を、記憶媒体のストライプ境界と、記憶トランザクション中にディスク・ストライプに関連するデータだけを記憶するキャッシュ内の基準データ・バッファとに対して配置される。処理の効率および管理を強化するため、アレイと種々のデータ書込み動作を行うときはコントローラ構造内の多数のキャッシュ位置にデータをミラリングしてよい。
【００２４】
図８は、多数のターゲット装置にデータを受動的にミラリングする、本発明の好ましい実施の形態を示す一般化された例示のデータ転送回路２００を示す。回路２００は、好ましくは図６および図７の選択された構成要素（選択されたＦＣＣと各ＩＳＰ１５０のそれぞれのアドレス生成器とを組み合わせたものなど）を示す。より詳しく述べると、原始装置はＦＣＣインターフェース・ブロックを備え、ターゲット装置はＩＳＰ１５０のそれぞれのバッファ・マネージャを備えると考える。しかし、これは単に例示のためであって、制限するものではない。
【００２５】
原始装置２０２は、好ましくはマルチライン・データ・バスなどの共通の経路２０８を介して第１および第２のターゲット装置２０４，２０６と通信する。図に示す経路はＥバス境界２０９を越えて伸びているが、これは必ずしも必要でない。原始装置２０２は好ましくは双方向（送信および受信）直接メモリ・アクセス（ＤＭＡ）ブロック２１０を含む。これはターゲット装置２０４，２０６のマネージャ・ブロック２１２，２１４とそれぞれインターフェースする。
【００２６】
原始装置２０２は好ましくは、データ・パケットなどのデータを経路２０８により第１および第２のターゲット装置２０４，２０６に同時に転送する。好ましくは、各ＦＩＦＯ２１６，２１８がこのデータ・パケットを同時に受けて、メモリ空間２２０，２２２に移す。この例では、メモリ空間２２０，２２２は好ましくはコントローラ構造内の異なるキャッシュ・メモリ位置を表す。
【００２７】
転送されたパケットを受けると、ターゲット装置２０４，２０６は好ましくはそれぞれ別個の肯定応答（ＡＣＫ）信号を原始装置に送って、データ転送作業が正常に終了したことを確認する。ＡＣＫ信号は転送が終了したとき、または転送の都合のよい境界で送ってよい。
【００２８】
第１の好ましい実施の形態では、同時転送は図９に示すように並列に行う。すなわち、例えば経路２２４で表される共通クロック信号を用いてＦＩＦＯ２１６，２１８にそれぞれ同期してパケットをクロックする。この方法では、好ましくは単一ＤＭＡ転送により各装置にそれぞれデータを転送する。転送速度は好ましくは経路２０８の転送速度能力に応じて決めるが、所定の環境の要求に従って他の要因も転送速度に影響を与えてよい。
【００２９】
必要ではないが、かかる同期転送はターゲット装置が名目上同一である（例えば、バッファ・マネージャがＩＳＰ１５０などの名目上同じチップ・セット内にある）ときに特に適している。しかし、２つのターゲット装置の低い方に転送速度を合わせてよい場合は、異なるタイプの装置に転送を行ってよい。終了すると、各装置２０４，２０６は図に示すように別個の通信路２２６，２２８を介して別個の肯定応答（ＡＣＫ１およびＡＣＫ２）を送る。
【００３０】
次に、二重アクティブ・コントローラ・モードで動作中に、この実施の形態が受動ミラリングを用いて、記憶されているキャッシュ・データのフェイルセイフ冗長性を実現する方法について説明する。図１０のＩＳＥ１２７は、各コントローラ１２４Ａ，１２４ＢにＩ／Ｏコマンドを渡すときに遠隔装置によりアドレス指定することができる。記憶容量が要求されると、データ記憶装置１００の物理的データ・パック２５２に関する記憶プールから論理ユニット（ＬＵＮ）２５０を作成し、また同様に物理的データ・パック２５６に関してＬＵＮ２５４を作成する。コントローラ１２４ＡはＬＵＮ２５０のユニット・マスタであり、コントローラ１２４ＢはＬＵＮ２５４のユニット・マスタである。これによりうまく負荷を分担することができる。すなわち、二重アクティブ動作モードではＬＵＮ２５０，２５４の両方に関連するＩ／Ｏコマンドを並列に処理することができる。
【００３１】
この実施の形態は、二重アクティブ・モードから単一アクティブ・モードにフェイルオーバーする新規な配置および方法を提供する。すなわち、２台のコントローラ１２４の一方（不動作コントローラ）がシステム１００で利用できなくなると、他方（残留コントローラ）だけが一時的にＬＵＮ２５０，２５４の両方のユニット・マスタになる。この実施の形態は更に、不動作コントローラが回復して再び稼動できるようになると二重アクティブ・モードにフェイルバックするという新規な装置および方法を提供する。
【００３２】
次に、図１１のキャッシュ・ミラリングの線図および図１２の流れ図を用いてこの実施の形態が提供する機器および関連する方法を説明する。コントローラ１２４Ａのキャッシュは、コントローラＡのキャッシュへのデータ転送を受ける一次キャッシュ２６０（ＡＰと呼ぶことがある）と、コントローラＢのキャッシュへのデータ転送のミラー・コピーを受ける二次キャッシュ２６２（ＢＳと呼ぶことがある）とに分割される。同様にコントローラ１２４Ｂのキャッシュは、コントローラＢのキャッシュへのデータ転送を受ける一次キャッシュ２６４（ＢＰと呼ぶことがある）と、コントローラＡのキャッシュへのデータ転送のミラー・コピーを受ける二次キャッシュ２６６（ＡＳと呼ぶことがある）とに分割される。後で説明するが、この実施の形態では、メモリ内に記憶されている書かれた命令により、ＩＳＰ１５０は残留コントローラ・キャッシュ内に記憶されているデータを以前の不動作コントローラ・キャッシュに直接コピーして二重アクティブ・モードにフェイルバックするステップを実行することができる。
【００３３】
二重アクティブ動作モードでは、ユニット・マスタ・コントローラは、ホストのアクセス・コマンドに応じて、キャッシュ・データを自分の一次キャッシュにライトバックし、またこのデータを他方のコントローラの二次キャッシュにミラリングする。非ユニット・マスタがホストのアクセス・コマンドを受けた場合でも、そのコマンドはＥバス１５１によりユニット・マスタに渡される。より詳しく述べると、コントローラ１２４Ｂが書込みコマンドを実行すると、ライトバック・データをＢＰ２６４内に記憶し、またコントローラ１２４ＡのＢＳ２６２内にミラリングする。コントローラ１２４Ｂが故障した場合は、ＬＵＮ２５０，２５４の両方のキャッシュ・データの全記録がコントローラ１２４ＡのＡＰ２６０およびＢＳ２６２キャッシュ内で利用できる。図１２の流れ図のステップを用いて、この実施の形態に従ってフェイルオーバーした後フェイルバックする方法を説明する。
【００３４】
フェイルオーバー／フェイルバックの方法３００は、二重アクティブ・モードで動作中に一方のコントローラ１２４が利用できなくなったという指示３０２で始まる。例として、図１２の流れ図の中でコントローラ１２４Ｂが故障したとする。方法３００はブロック３０４でコントローラ１２４を再ブートして、コントローラ１２４Ａに関連するホスト・ポートを介して全てのＬＵＮ２５０，２５４を遠隔装置にマップし、またデータ・アクセス・コマンドを受けないようにコントローラ１２４Ｂに関連するホスト・ポートを不能にする。残存コントローラ１２４Ａをすぐホット・ブートし、不動作コントローラ１２４Ｂをコールド・ブートして、管理された信頼性診断を始める。ブロック３０６でコントローラ１２４ＡはＡＰ２６０およびＢＳ２６２とだけトランザクションを行うためのキャッシュ・ノードおよびコンテキストを構築する。ブロック３０８でメタデータを更新して、全てのライトバック・キャッシュ・データがＡＰ２６０およびＢＳ２６２内だけに存在することを反映する。
【００３５】
次にブロック３１０で、全てのＬＵＮ２５０，２５４について単一アクティブ・コントローラ・モードでＩ／Ｏコマンドを可能にする。認識されるように、単一アクティブ・コントローラ・モードではキャッシュ転送のミラリングはやめる。また認識されるように、単一アクティブ・コントローラ・モードではＢＳ２６２に新しいデータを書き込まない。第１の理由はミラリングを行わないからであり、第２の理由はＬＵＮ２５４に関連するコマンドの新しいライトバック・データはＡＰ２６０内に記憶されるからである。ブロック３１２でＢＳ２６２のフラッシングを始める。同時に、ブロック３１６で不動作コントローラ１２４Ｂが再稼動可の信号を出していないと判断する限り、ブロック３１４でＩ／Ｏ処理を続ける。
【００３６】
休止を必要とした故障条件から回復させるために、不動作コントローラ１２４Ｂに必要な診断を行って必要な対策を講じる。首尾よく回復すると再稼動可の信号を出す。制御はブロック３１８に進み、両方のコントローラ１２４をホット・ブートし、二重アクティブ・モードでの各ユニット・マネージャのホスト・ポートを介して全てのＬＵＮ２５０，２５４を遠隔装置にマップする。ブロック３２０で、これまでの不動作コントローラ１２４Ｂを初期化して、ＢＰ２６４およびＡＳ２６６を両方ともクリアする。ブロック３２２で、ＡＰ２６０およびＢＳ２６２内の書かれていないデータについてキャッシュ・ノードおよびコンテキストを構築する。ブロック３２３で、ＡＰ２６０およびＢＳ２６２内の書かれていないデータをＢＰ２６４およびＡＳ２６６にミラリングする。ブロック３２４でメタデータを更新して、全象限ＡＰ２６０、ＢＰ２６４、ＡＳ２６６およびＢＳ２６２内にライトバック・キャッシュ・データが存在することを反映する。
【００３７】
ブロック３２６で、二重アクティブ・モードを介して全てのＬＵＮ２５０，２５４についてＩ／Ｏコマンドを可能にする。次にブロック３２８で、前にブロック３１２で行ったフラッシングの結果、ＢＳ２６２がクリアされたかどうか判定する。ノーの場合はブロック３３０でフラッシングを続ける。ブロック３２８の判定がイエスの場合は制御はブロック３３２に進み、ＬＵＮ２５４に関連するＡＰ２６０内の全てのデータをＢＰ２６４にコピーし、またＢＳ２６２にミラリングする。認識されるように、システム１００を二重アクティブ・モードに戻すには、書かれていないキャッシュ・データをこのように直接コピーする方が、ＡＰ２６０内にあるがＬＵＮ２５４に関連する、書かれていないキャッシュ・データをフラッシングする読み合わせ法より速い。最後に、ブロック３３４でＩ／Ｏコマンド処理を二重アクティブ・コントローラ・モードで続ける。
【００３８】
要約すると、データ記憶システム（１００など）は１対のコントローラ（１２４Ａ、１２４Ｂなど）と、キャッシュ内のデータをコントローラ対の残存する方のコントローラのキャッシュから他方のコントローラのキャッシュに直接コピーすることにより単一アクティブ・ライトバック・モードから二重アクティブ・ライトバック・モードにフェイルバックするための回路とを有する。好ましくは、残存コントローラからコピーされたデータは、二重アクティブ・モードのコントローラの他方のコントローラによるライトバック・キャッシングを介して予めミラリングされている。この回路は、フェイルバックのステップを行うために、メモリ内に記憶してプロセッサ（１５０など）が実行するコンピュータ命令を含んでよい。
【００３９】
別の実施の形態では、第２のコントローラが予めミラリングしたキャッシュ・データに依存して、第１および第２のコントローラの二重アクティブ・モードから第１のコントローラの単一アクティブ・モードにフェイルオーバーする方法（３００など）を提供する。この方法では更に、コントローラを再初期化し、キャッシュ内のデータを第１のコントローラから第２のコントローラに直接コピーすることにより二重アクティブ・モードにフェイルバックする。
【００４０】
フェイルオーバーするステップは一次キャッシュ（２６０，２６４など）と二次キャッシュ（２６２，２６６など）に分割されたキャッシュをそれぞれ有するコントローラを特徴としてよい。フェイルオーバーするステップの前に、二重アクティブ・モードで第２のコントローラはその一次キャッシュ内にライトバック・キャッシュしたデータを第１のコントローラの二次キャッシュ内にミラリングする。またフェイルオーバーするステップは、第１のコントローラ・キャッシュ内に記憶されたデータについてキャッシュ・ノードおよびコンテキストを構築すること（３０６など）を特徴としてよい。またフェイルオーバーするステップは第２のコントローラと遠隔装置との間の書込みコマンドを送る通信を不能にする（３０４など）ことを特徴としてよい。またフェイルオーバーするステップは、メタデータを更新して全てのＬＵＮを第１のコントローラだけに関連づける（３０８など）ことを特徴としてよい。またフェイルオーバーするステップは、以前第２のコントローラが二重アクティブ・モードでＬＵＮの少なくとも１つを支配したことを特徴としてよい。
【００４１】
フェイルオーバーでは、第１のコントローラのキャッシュを介して全てのＬＵＮに関連するデータに対して単一アクティブ・モードのライトバック・キャッシングを行うが、キャッシュ・ミラリングは行わない。第１のコントローラの二次キャッシュのフラッシングは好ましくは空になるまで行う。
再初期化するステップは、第２のコントローラのキャッシュをクリアし、第２のコントローラと遠隔装置との間の書込みコマンドを送る通信を可能にする（３１２〜３２０）ことを特徴としてよい。
【００４２】
フェイルバックするステップは、第１のコントローラが第２のコントローラから稼動可の信号を受けることを特徴としてよい。またフェイルバックするステップは、第１のコントローラ内に記憶された、書かれていないデータについてキャッシュ・ノードおよびコンテキストを構築し、次に第１のコントローラ内の書かれていないデータを第２のコントローラにミラリングし、次にメタデータを更新して全てのＬＵＮを第１および第２のコントローラと関連づける（３２２，３２３，３２４など）ことを特徴としてよい。
【００４３】
フェイルバックするステップは第１のコントローラの一次キャッシュ内のデータを第２のコントローラの一次キャッシュにコピーし（３３２など）、コピーされたデータを、二重アクティブ・モードで第２のコントローラが支配するＬＵＮに関連づけてよい。キャッシュ・ミラリングを再確立して第１および第２のコントローラの一次キャッシュを介してコマンドのライト・キャッシングを続けてよい（３３４など）。
或る実施の形態では、書込みコマンドを記憶空間に渡すためのそれぞれのライトバック・キャッシュを有する第１および第２のコントローラと、フェイルオーバーおよびフェイルバックを行ってコントローラを単一アクティブ・モードと二重アクティブ・モードでそれぞれ動作させる手段とを備えるデータ記憶システムを提供する。
【００４４】
この説明およびクレームの目的では、「フェイルオーバーおよびフェイルバックを行う手段」という用語は、残存キャッシュ内にあるが不動作コントローラに関連する書かれていないキャッシュ・データを、再初期化した不動作コントローラのキャッシュに直接コピーするという、上に説明した構造を意味する。これは残存コントローラのキャッシュ内の書かれていないデータに読み合わせフラッシュを行うという、ここで考えない他の解決策とは異なる。
【００４５】
理解されるように、これまでの記述で本発明の種々の実施の形態の多数の特徴および利点を、本発明の種々の実施の形態の構造および機能の詳細と共に述べたが、この詳細な記述は単なる例示であって、詳細に関しては、特に本発明の原理内の部分の構造および配置に関してクレームを表現する用語の広い一般的な意味で示す範囲で、変更を行ってよい。例えば、本発明の精神と範囲から逸れない限り特定の要素を特定の処理環境に従って変えてよい。
【００４６】
更に、ここに述べた実施の形態はデータ記憶アレイに関するものであるが、当業者が認識するように、クレームされた主題はこれに限定されるものではなく、本発明の精神および範囲から逸れない限り種々の他の処理システムを用いてよい。
【符号の説明】
【００４７】
１２４Ａ  第１のコントローラ
１２４Ｂ  第２のコントローラ
２６０  第１のコントローラの一次キャッシュ（ＡＰ）
２６２  第１のコントローラの二次キャッシュ（ＢＳ）
２６４  第２のコントローラの一次キャッシュ（ＢＰ）
２６６  第２のコントローラの二次キャッシュ（ＡＳ）
【図１】
2010140493.tif 000003
【図２】
2010140493.tif 000004
【図３】
2010140493.tif 000005
【図４】
2010140493.tif 000006
【図５】
2010140493.tif 000007
【図６】
2010140493.tif 000008
【図７】
2010140493.tif 000009
【図８】
2010140493.tif 000010
【図９】
2010140493.tif 000011
【図１０】
2010140493.tif 000012
【図１１】
2010140493.tif 000013
【図１２】
2010140493.tif 000014