(57)【要約】      （修正有）【課題】電源異常時に修正済みデータを保護すること。【解決手段】データのストアおよびリカバリのための改善されたストレージ・コントローラおよび方法が開示される。ストレージ・コントローラは、ホスト・コンピュータからストレージ・デバイスへデータを振り向けるための第１のクラスタおよび第２のクラスタを含む。第１のクラスタには第１のキャッシュ・メモリが接続され、第２のクラスタには第２のキャッシュ・メモリが接続される。また第１のクラスタにはメモリの第１の保護エリアが接続され、第２のクラスタにはメモリの第２の保護エリアが接続される。正常動作モードにおいては、データが、第１のキャッシュに振り向けられ、かつ第２の保護エリアにバックアップされる。電源異常またはそれに匹敵する障害が生じた場合には、第１および第２の保護エリアからのデータが、第１のストレージ・デバイスに転送され、ストアされる。さらに、第１および第２の保護エリアからのデータが、第２のストレージ・デバイスに転送され、ストアされる。【選択図】図６
2004355623.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのホスト・コンピュータおよび少なくとも１つのストレージ・デバイスを有するデータ処理システム内にデータをストアするための方法であって、
正常動作モードにおいて、第１のクラスタ内の第１の修正済みデータを、第２のクラスタのメモリの保護エリア内にストアするよう指示すること、
前記正常動作モードにおいて、第２のクラスタ内の第２の修正済みデータを、前記第１のクラスタのメモリの保護エリア内にストアするよう指示すること、
電源異常モードにおいて、前記第１の修正済みデータを、第１のストレージ・デバイス内にストアするよう指示すること、
前記電源異常モードにおいて、前記第２の修正済みデータを、第２のストレージ・デバイス内にストアするよう指示すること、
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示すること、および、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のストレージ・デバイスへ転送するよう指示することを含み、
それによって前記第１および第２のクラスタの一方が、電源異常の後にリカバリに失敗した場合においても、他方のクラスタを介して前記失敗したクラスタからの修正済みデータを利用可能にする方法。
【請求項２】
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示することは、
前記第１の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第２のクラスタの前記保護エリアへ転送するよう指示すること、および、
前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示することを含み、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のストレージ・デバイスへ転送するよう指示することは、
前記第２の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第１のクラスタの前記第１の保護エリアへ転送するよう指示すること、および、
前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前第１のストレージ・デバイスへ転送するよう指示することを含む、請求項１に記載の方法。
【請求項３】
さらに、
前記第１および第２の修正済みデータに適応するべく前記第１のクラスタの前記保護エリアの容量を調整すること、および、
前記第１および第２の修正済みデータに適応するべく前記第２のクラスタの前記保護エリアの容量を調整すること、
を含む、請求項１に記載の方法。
【請求項４】
さらに、
前記第１のクラスタの前記保護エリアに、一時的な不揮発性手段であって、それによって、前記第１のクラスタの前記保護エリア内にストアされたデータが、前記第１のストレージ・デバイスへ転送されるまで保存される一時的な不揮発性手段を備えること、および、
前記第２のクラスタの前記保護エリアに、一時的な不揮発性手段であって、それによって、前記第２のクラスタの前記保護エリア内にストアされたデータが、前記第２のストレージ・デバイスへ転送されるまで保存される一時的な不揮発性手段を備えること、
を含む、請求項１に記載の方法。
【請求項５】
さらに、
前記電源異常モードの終了に続いて、前記第１および第２のクラスタを正常動作モードへ復帰させるよう試みること、および、
前記第１および第２のクラスタの一方だけが復帰された場合に、前記復帰されたクラスタが前記失敗したクラスタの機能を実施する修正動作モードにおいて前記データ処理システムを動作させること、
を含む、請求項１に記載の方法。
【請求項６】
ホスト・コンピュータとストレージ・デバイスの間のデータ転送を管理するための第１のクラスタであって、第１のキャッシュ・メモリ、メモリの第１の保護エリア、および第１のディスク・デバイス、を備える第１のクラスタと、
ホスト・コンピュータとストレージ・デバイスの間のデータの転送を管理するための第２のクラスタであって、第２のキャッシュ・メモリ、メモリの第２の保護エリア、および第２のディスク・デバイスを備える第２のクラスタと、
正常動作モードにおいて、第１の修正済みデータを、前記第２のクラスタの前記保護エリア内にストアするよう指示するための手段と、
前記正常動作モードにおいて、第２の修正済みデータを、前記第１のクラスタの前記保護エリア内にストアするよう指示するための手段と、
電源異常モードにおいて、前記第１の修正済みデータを、前記第１のディスク・デバイス内にストアするよう指示するための手段と、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第２のディスク・デバイス内にストアするよう指示するための手段と、
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のディスク・デバイスへ転送するよう指示するための手段と、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のディスク・デバイスへ転送するよう指示するための手段とを備え、
それによって前記第１および第２のクラスタの一方が、電源異常の後にリカバリに失敗した場合においても、他方のクラスタを介して前記失敗したクラスタからの修正済みデータを利用可能にするストレージ・コントローラ。
【請求項７】
前記第１の保護エリアが一時的な不揮発性手段を備え、それによって、前記第１の保護エリア内にストアされたデータが、前記第１のディスク・デバイスへ転送されるまで保存され、かつ、
前記第２の保護エリアが一時的な不揮発性手段を備え、それによって、前記第２の保護エリア内にストアされたデータが、前記第２のディスク・デバイスへ転送されるまで保存される、請求項６に記載のストレージ・コントローラ。
【請求項８】
さらに、
前記第１および第２の修正済みデータに適応するべく前記第１のクラスタの前記保護エリアの容量を調整するための手段と、
前記第１および第２の修正済みデータに適応するべく前記第２のクラスタの前記保護エリアの容量を調整するための手段と
を備える、請求項６に記載のストレージ・コントローラ。
【請求項９】
さらに、
前記電源異常モードの終了に続いて、前記第１および第２のクラスタを前記正常動作モードへ復帰させるよう試みるための手段と、
前記第１および第２のクラスタの一方だけが復帰された場合に、前記復帰されたクラスタが前記失敗したクラスタの機能を実施する修正動作モードにおいて前記データ処理システムを動作させるための手段と
を備える、請求項６に記載のストレージ・コントローラ。
【請求項１０】
少なくとも１つのホスト・コンピュータと、
少なくとも１つのストレージ・デバイスと、
ストレージ・コントローラであって、
ホスト・コンピュータとストレージ・デバイスの間のデータの転送を管理するための第１のクラスタであって、第１のキャッシュ・メモリ、メモリの第１の保護エリア、および第１のディスク・デバイスを備える第１のクラスタ、
ホスト・コンピュータとストレージ・デバイスの間のデータの転送を管理するための第２のクラスタであって、第２のキャッシュ・メモリ、メモリの第２の保護エリア、および第２のディスク・デバイスを備える第２のクラスタ、
正常動作モードにおいて、第１の修正済みデータを、前記第２の保護エリア内にストアするよう指示するための手段、
前記正常動作モードにおいて、第２の修正済みデータを、前記第１の保護エリア内にストアするよう指示するための手段、
電源異常モードにおいて、前記第１の修正済みデータを、前記第１のディスク・デバイス内にストアするよう指示するための手段、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第２のディスク・デバイス内にストアするよう指示するための手段、
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のディスク・デバイスへ転送するよう指示するための手段、ならびに、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のディスク・デバイスへ転送するよう指示するための手段を備え、
それによって前記第１および第２のクラスタの一方が、電源異常の後にリカバリに失敗した場合においても、他方のクラスタを介して前記失敗したクラスタからの修正済みデータを利用可能にするストレージ・コントローラと
を備えるデータ処理システム。
【請求項１１】
前記第１の保護エリアが一時的な不揮発性手段を備え、それによって、前記第１の保護エリア内にストアされたデータが、前記第１のディスク・デバイスへ転送されるまで保存され、かつ、
前記第２の保護エリアが一時的な不揮発性手段を備え、それによって、前記第２の保護エリア内にストアされたデータが、前記第２のディスク・デバイスへ転送されるまで保存される、請求項１０に記載のデータ処理システム。
【請求項１２】
さらに、
前記第１および第２の修正済みデータに適応するべく前記第１のクラスタの前記保護エリアの容量を調整するための手段と、
前記第１および第２の修正済みデータに適応するべく前記第２のクラスタの前記保護エリアの容量を調整するための手段と
を備える、請求項１０に記載のデータ処理システム。
【請求項１３】
さらに、
前記電源異常モードの終了に続いて、前記第１および第２のクラスタを前記正常動作モードへ復帰させるよう試みるための手段と、
前記第１および第２のクラスタの一方だけが復帰された場合に、前記復帰されたクラスタが前記失敗したクラスタの機能を実施する修正動作モードにおいて前記データ処理システムを動作させるための手段と
を備える、請求項１０に記載のデータ処理システム。
【請求項１４】
ホスト・システムとストレージ・デバイスの間のデータ転送を管理するストレージ・コントローラのプログラミングにおける使用に関する製品であって、前記ストレージ・コントローラに、
正常動作モードにおいて、第１のクラスタ内の第１の修正済みデータを、第２のクラスタのメモリの保護エリア内にストアするよう指示するステップと、
前記正常動作モードにおいて、第２のクラスタ内の第２の修正済みデータを、前記第１のクラスタのメモリの保護エリア内にストアするよう指示するステップと、
電源異常モードにおいて、前記第１の修正済みデータを、第１のストレージ・デバイス内にストアするよう指示するステップと、
前記電源異常モードにおいて、前記第２の修正済みデータを、第２のストレージ・デバイス内にストアするよう指示するステップと、
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示するステップと、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のストレージ・デバイスへ転送するよう指示するステップとを実行させ、
それによって前記第１および第２のクラスタの一方が、電源異常の後にリカバリに失敗した場合においても、他方のクラスタを介して前記失敗したクラスタからの修正済みデータを利用可能にするプログラム。
【請求項１５】
前記ストレージ・コントローラに、
前記電源異常モードにおいて、前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示するステップであって、
前記第１の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第２のクラスタの前記保護エリアへ転送するよう指示するステップ、および、
前記第１の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第２のストレージ・デバイスへ転送するよう指示するステップを含むステップと、
前記電源異常モードにおいて、前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のストレージ・デバイスへ転送するよう指示するステップであって、
前記第２の修正済みデータを、前記第２のクラスタの前記保護エリアから前記第１のクラスタの前記保護エリアへ転送するよう指示するステップと、
前記第２の修正済みデータを、前記第１のクラスタの前記保護エリアから前記第１のストレージ・デバイスへ転送するよう指示するステップを含むステップと
を実行させる、請求項１４に記載のプログラム。
【請求項１６】
さらに、前記ストレージ・コントローラに：
前記第１および第２の修正済みデータに適応するべく前記第１のクラスタの前記保護エリアの容量を調整するステップと、
前記第１および第２の修正済みデータに適応するべく前記第２のクラスタの前記保護エリアの容量を調整するステップと
を実行させる、請求項１４に記載のプログラム。
【請求項１７】
さらに、前記ストレージ・コントローラに：
前記第１のクラスタの前記保護エリアに一時的な不揮発性手段を提供し、それによって、前記第１のクラスタの前記保護エリア内にストアされたデータが、前記第１のストレージ・デバイスへ転送されるまで保存されるようにするステップと、
前記第２のクラスタの前記保護エリアに一時的な不揮発性手段を提供し、それによって、前記第２のクラスタの前記保護エリア内にストアされたデータが、前記第２のストレージ・デバイスへ転送されるまで保存されるようにするステップと
を実行させる、請求項１４に記載のプログラム。
【請求項１８】
さらに、前記ストレージ・コントローラに、
前記電源異常モードの終了に続いて、前記第１および第２のクラスタを正常動作モードへ復帰させるよう試みるステップと、
前記第１および第２のクラスタの一方だけが復帰された場合に、前記復帰されたクラスタが前記失敗したクラスタの機能を実施する修正動作モードにおいて前記データ処理システムを動作させるステップと
を実行させる、請求項１４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してストレージ・サブシステムの分野に関し、特に、パワー・ロスもしくはそれに匹敵するイベントに続いてマルチクラスタ・システムの１つのクラスタがリカバリに失敗した場合の喪失を防止するデータ転送管理に関する。
【背景技術】
【０００２】
大規模分散コンピューティング・システムにおいては、多数のホスト・コンピュータが、通常、ストレージ・コントローラによってテープあるいはディスク・ドライブ・ユニットといった多数のダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）と接続されている。ストレージ・コントローラは、その機能の中でも特に、特定のコンピュータとＤＡＳＤの間におけるデータ・レコードの転送に関する接続および切断の処理を行う。それに加えてストレージ・コントローラは、より高速な入力および出力オペレーションのために、電子メモリ内にデータをストアする。
【０００３】
インターナショナル・ビジネス・マシーンズ（ＩＢＭ）・コーポレーション（ニューヨーク州アーモンク）のエンタープライズ・ストレージ・サーバ（ＥＳＳ）は、ストレージ・コントローラの一例であり、磁気ディスク・ユニットとホスト・コンピュータの間の接続を制御する。ホスト・コンピュータは、通常、ＩＢＭ  ３０９０、モデルＥＳ／９０００、またはそのほかの同等システム等のメイン・フレーム・システムである。
【０００４】
代表的なＩＢＭストレージ・コントローラは、最大でホスト・コンピュータからの１６チャンネル、および最大で６４の磁気ストレージ・ユニットの制御が可能である。ホスト・コンピュータは、１〜４チャンネルによってストレージ・コントローラに接続される。ストレージ・コントローラは、通常、２つのストレージ・クラスタを有し、そのそれぞれは、ホスト・コンピュータとダイレクト・アクセス・ストレージ・デバイスの間における選択的な接続を提供し、かつ好ましくはそのそれぞれが異なる電源境界上にある。各クラスタは、第１および第２のストレージ・パスを伴うマルチパス・ストレージ・ディレクタ、共有制御アレイ（ＳＣＡ）、キャッシュ・メモリ、および不揮発性ストレージ（ＮＶＳ）メモリ含むことがある。ＳＣＡは、すべてのストレージ・パスにわたって共有されるメモリ・アレイである。
【０００５】
キャッシュは、コンピュータ・メモリの付属物としての応用によってもっともよく知られており、それにおいては、頻繁にアクセスされるインストラクションおよびデータのための高速ストレージとしてそれが使用される。使用の頻度のインジケータとしては、そのレコードの最後の使用からの時間長が使用される。キャッシュは、最後の使用の時点からその内容のエージングが始まることからシステム・メモリと区別される。コンピュータ・メモリのアドレス空間においては、そのアドレス空間内のスペースに関して競合するデータがアクセスされる前にプログラム・データが解放されなければならない。キャッシュにおいては、スペースに関する競合の結果、最低使用頻度データとなるデータがキャッシュから追い出される。アクセスされる頻度の低いデータが周期的にキャッシュ内に入っても、そのようなデータはエージングによりキャッシュから追い出される。キャッシュ内のデータは、全体的に、もしくは部分的に不揮発性メモリ内に複製される。ダイレクト・アクセス・ストレージ・デバイスの磁気メディアからのデータの読み出し（および、それへの書き込み）は、かなり時間を要する。読み出し書き込みオペレーションを低速化する要因の主なものは、磁気ディスクが記録ロケーションをトランスデューサと整列するために必要となる時間、およびデータの読み出しおよび書き込みに使用される磁気トランスデューサの限られた帯域幅である。頻繁にアクセスされるデータをキャッシュ内に複製することによって、データの読み出し時間が短縮され、データ・ストレージ・システムのスループットが格段に向上する。
【０００６】
各クラスタにおいては、不揮発性ストレージがバッファリング機能のためキャッシュに対するバックアップとして作用する（図３参照）。ＮＶＳに対するアクセスは、ダイレクト・アクセス・ストレージ・デバイスに対するアクセスより高速であるが、一般にキャッシュに対するよりは遅い。データは、キャッシュおよびＮＶＳに分岐され、電源異常時のキャッシュのバックアップが行われる。ＮＶＳに書き込まれたデータは、磁気メディアに書き込まれた場合と同程度に安全であると考えられる。ＮＶＳに対するデータ・レコードのステージングが完了すると、ホスト・コンピュータに対してデータのストアに成功したことを示す表示が与えられる。
【０００７】
従来のストレージ制御ユニットは、通常、ユニット内の単一障害点がシステム全体の障害を引き起こさないように設計されている。しかしながら、特定コンポーネントの障害は、制御ユニットのパフォーマンスの低下をもたらし得る。たとえばキャッシュ内の障害は、一般にその種のパフォーマンスの低下を招く。残念ながらホスト・システムは、完全に機能的なキャッシュによって提供される速度に調整されており、したがってそれに頼っていることから、キャッシュ内の障害に関連するパフォーマンスの低下は、単一障害点と同じ影響を有する。
【０００８】
キャッシュ・メモリ内の障害に関連するストレージ制御ユニットのパフォーマンス低下を緩和するためのシステムおよび技術に関する必要性は、たとえば、特許文献１で論じられている。特許文献１の発明は、２つのキャッシュ・メモリおよび２つの不揮発性ストレージ・バッファを伴うストレージ・コントローラを提供する。一方のクラスタのＮＶＳメモリは、プロセッサを介して、他方のクラスタのキャッシュ・メモリのバックアップを行う（図４参照）。またこのストレージ・コントローラは、障害からのリカバリのため、およびその制御ユニットの再構成のためのマイクロコードを含んでいる。ＤＡＳＤ  Ｆａｓｔ  Ｗｒｉｔｅが実行されるとき、書き込みデータはキャッシュおよびＮＶＳへ同時に転送される。このシステムは、キャッシュまたはＮＶＳの障害が発生した場合であっても、拡張機能動作（たとえば、ＤＡＳＤ  Ｆａｓｔ  ＷｒｉｔｅおよびＤｕａｌ  Ｃｏｐｙ）が継続的に利用できるように設計されている。（ＤＡＳＤ  Ｆａｓｔ  Ｗｒｉｔｅは、ストレージ・デバイスへ書き込まれるべきデータがキャッシュへ書き込まれ、かつ不揮発性メモリへバックアップされる動作である。Ｄｕａｌ  Ｃｏｐｙは、ストレージ・デバイスに対するその後のバックアップに関するデータの指定および保護に関連する。）そのほかの、ストレージ・サブシステムの堅牢性の向上およびコンポーネント障害時におけるパフォーマンス低下の軽減に向けられた従来技術が、特許文献２および特許文献３に記載されている。
【０００９】
ＮＶＳは電源異常があった場合にデータを維持するが、その欠点は、ＮＶＳが特別なバッテリ・バックアップされたメモリ・サブシステムを必要とすることであり、それがストレージ・コントローラのコストを増加させている。ＮＶＳを使用しない１つのテクニックは、電源異常があった場合に各クラスタが全キャッシュをディスクへ転送するというものである（図５参照）。電源の回復時には、キャッシュがディスクからリストアされる。しかしながら、この種のファイアホース・ダンプの欠点は、転送を処理するために必要となるバッテリ電源の容量が、保護するべきメモリのサイズに比例することである。結局、非常に大きなキャッシュ・メモリを伴うシステムにおいてファイアホース・ダンプのアプローチは経済的でない。
【００１０】
しかも、電源異常に続いてクラスタの１つに障害を生じた場合には、修正済みデータを含むデータの一部を、データ処理システムのカスタマが利用できなくなることがある。
【００１１】
【特許文献１】米国特許第５，４３７，０２２号
【特許文献２】米国特許第６，００６，３４２号
【特許文献３】米国特許第５，７７１，３６７号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
つまり、特別なバッテリ・バックアップされたメモリ・サブシステムを必要とすることなく電源異常またはそれに匹敵する障害発生時に、データ、特に修正済みデータを保護するため、およびクラスタがリストアに失敗した場合においてもデータの喪失を防止するためのシステムおよび技術が必要とされている。
【課題を解決するための手段】
【００１３】
本発明のシステムおよび方法は上記の必要性を満たすものである。本発明のストレージ・コントローラは、ホスト・コンピュータからストレージ・デバイスへデータを振り向けるための第１のクラスタおよびホスト・コンピュータからストレージ・デバイスへデータを振り向けるための第２のクラスタを含む。第１のクラスタは、第１のキャッシュ・メモリ、メモリの第１の保護エリア、および第１のディスク・デバイスを含んでおり；第２のクラスタは、第２のキャッシュ・メモリ、メモリの第２の保護エリア、および第２のディスク・デバイスを含んでいる。正常動作モードにおいては、第１のクラスタ内の修正済みデータが、第１のキャッシュに振り向けられ、かつ第２の保護エリア（第２のクラスタ内）にバックアップされる。同様に正常動作モードにおいては、第２のクラスタ内の修正済みデータが、第２のキャッシュに振り向けられ、かつ第１の保護エリア（第１のクラスタ内）にバックアップされる。電源異常が生じた場合においては、修正済みデータが、第１の保護エリアから第１のディスク・デバイスにコピーされ、第２の保護エリアから第２のディスク・デバイスにコピーされる。それに加えて、第１の保護エリアから第２のディスク・デバイスへ、また第２の保護エリアから第１のディスク・デバイスへも修正済みデータがコピーされる。したがって、クラスタの一方が電源異常の後のリカバリに失敗したとしても、失敗したクラスタからの修正済みデータが、他方のクラスタを介して利用可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、データ処理システム１００のハイレベルのブロック図であり、本発明を具体化することのできるストレージ・サブシステムを含んでいる。このシステム１００は、１または複数のホスト・コンピュータ１０２、ダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）等の１または複数のストレージ・デバイス１０４、およびホスト・コンピュータ１０２とストレージ・デバイス１０４の間におけるデータの転送を管理するためのストレージ・コントローラ２００を含む。図２は、クラスタ０  ２１０およびクラスタ１  ２２０のような複数のクラスタに区分されたストレージ・コントローラ２００のブロック図である。ストレージ・コントローラ２００を３以上のクラスタに区分してもよく、本発明は、任意数のクラスタを伴うストレージ・コントローラに対して等しく適用可能であるが、明瞭性を目的としてここでは２つだけを例示して説明することにする。各クラスタ２１０および２２０は、ホスト・アダプタ２１１および２２１を備え、それを介してホスト・コンピュータ１０２が接続され、さらにデバイス・アダプタ２１２および２２２を備え、それを介してＤＡＳＤ  １０４Ａおよび１０４Ｂ等のストレージ・デバイスが接続される。各クラスタ２１０および２２０は、さらにクラスタ内の動作を管理するべくプログラムされたプロセッサ２１３および２２３、対応するデバイス・アダプタ２１２および２２２とプロセッサ２１３および２２３の間のデバイス・アダプタ・バス２１４および２２４、プロセッサ２１３および２２３に結合されたキャッシュ・メモリ２１５および２２５、ならびに同様にプロセッサ２１３および２２３に結合されたメモリの保護エリア２１６および２２６を備えている。ホスト・アダプタ・ブリッジ２３０は、クラスタ２１０および２２０の間の相互接続を行う。
【００１５】
図６は、本発明の方法を示したフローチャートであり、次に図７〜９を参照してその考察を行う。正常動作モードにおいては（ステップ６００）、ホスト・コンピュータ１０２によってアクセスされることになるストレージ・デバイス１０４内にストアされているデータが、ストレージ・コントローラ２００によってクラスタ２１０および２２０の一方に割り当てられ（ステップ６０２）、キャッシュ・メモリ２１５または２２５内へ転送される（ステップ６０４）。そのデータがホスト・コンピュータ１０２によって単に読み出されるだけの場合には、データを保護するためのそれ以上の動作は必要ない。電源異常が、ストレージ・デバイス１０４内にストアされているデータのオリジナルのコピーに影響を及ぼすことはない。しかしながら、そのデータの修正をホスト・コンピュータ１０２が行う場合には（ステップ６０６）、本発明が保護を提供する（図７）。第１のクラスタ２１０のキャッシュ２１５内にある修正済みデータが、第２のクラスタ２２０の保護エリア２２６内にコピーされる。同様に、第２のクラスタ２２０のキャッシュ２２５内にある修正済みデータが、第１のクラスタ２１０の保護エリア２１６内にコピーされる（ステップ６０８）。保護エリア２１６および２２６を、バッテリ・バックアップされたＮＶＳとすることもできるが、それに代えて保護エリア２１６および２２６を、各クラスタ２１０および２２０の通常のメモリの専用部分とすることもできる。保護エリア２１６および２２６に割り振られるメモリのサイズは、処理中の修正済みデータの量に適合するべく必要に応じて調整されるようにしてもよい。高価なＮＶＳの容量は容易に変更できず、メモリ・モジュールおよび関連するバックアップ回路の追加または取り外し、およびクラスタの再構成により、調整を認識させる必要がある。さらに、規定サイズを超えたＮＶＳの容量の増加を妨げる特定の制限が存在することもある。修正済みのデータだけを保護することは、バッテリ要件を大きく軽減する。
【００１６】
パワー・ロスまたはそれに匹敵するほかの障害が生じた場合には（図８；ステップ６１０）、ストレージ・コントローラ２００は、バッテリの下に動作を継続し、プロセッサ２１３は、クラスタ０  ２１０の保護エリア２１６内にストアされているすべてのデータを、接続されているディスク１０４Ａへ保存するよう指示する（ステップ６１２）。同様にプロセッサ２２３は、クラスタ１  ２２０の保護エリア２２６内にストアされているすべてのデータを、接続されているディスク１０４Ｂへ保存するよう指示する（ステップ６１４）。それに加えて、プロセッサ２１３は、クラスタ０  ２１０の保護エリア２１６内にストアされているすべてのデータを、クラスタ１  ２２０の保護エリア２２６（または、より包括的なメモリ２２８）内へ一時的にストアするよう指示し（図９）、さらにそれに続いて接続されているディスク１０４Ａへ保存するよう指示する（図１０；ステップ６１６）。同様にプロセッサ２２３は、クラスタ１  ２２０の保護エリア２２６内にストアされているすべてのデータを、クラスタ０  ２１０の保護エリア２１６（または、より包括的なメモリ２１８）内へ一時的にストアするよう指示し、さらにそれに続いて接続されているディスク１０４Ｂへ保存するよう指示する（ステップ６１８）。このようにクラスタ２１０および２２０は、ともに、両方のクラスタ２１０および２２０からの修正済みデータの持続的なコピーを保持することになる。
【００１７】
パワー・ロスの終結時には、ストレージ・コントローラ２００を正常動作に復帰させる試みがなされる（ステップ６２０）。両方のクラスタ２１０および２２０が完全にリストアされていれば（ステップ６２２）、データの喪失をまったく伴うことなく正常動作を再開することができる（ステップ６２４）。一方のクラスタ（たとえばクラスタ１  ２２０）が、その初期マイクロコード・ロード・シーケンスに失敗するか、そのほかのパワー・ロスからのリカバリに失敗した場合には（ステップ６２６）、他方のクラスタ（この例の場合はクラスタ０  ２１０）が、それ独自のデータ（ディスク１０４Ａから復元）および失敗したクラスタ２２０からのデータ（同様に、ディスク１０４Ａから復元）の処理を継続することができる（図１１；ステップ６２８）。失敗したクラスタ２２０が修復（ステップ６３０）された後は、正常な２クラスタの動作を再開することができる（ステップ６２４）。
【００１８】
ここに開示された実施態様を通じて、本発明の目的は完全に達成される。当業者であれば認識されるように、本発明の各種側面は、本発明の本質的な機能から逸脱することなしに異なる実施態様を介して達成することができる。これら特定の実施態様は、例示のためであり、付随する特許請求の範囲に示される本発明の範囲を制限することを意味していない。たとえば、本発明の説明は、２クラスタのストレージ・コントローラに関連してなされているが、３以上のクラスタを有するストレージ・コントローラにおいても同様に具体化することができる。その種の実施態様の１つにおいては、各クラスタの保護エリアが、電源異常またはそれに匹敵するそのほかの障害の発生時に、各クラスタの接続されたディスクにコピーされ、それによって１つを除くすべてのクラスタがリカバリに失敗した場合においても修正済みデータが保護される。それに代えて、互いをサポートするべくクラスタをペアにすることもできる。後者の実施態様は、前者の実施態様に比べてデータ保護に必要なディスク空間の量、ロジック、および時間を低減することになろう。
【図面の簡単な説明】
【００１９】
【図１】本発明を具体化することのできるストレージ・サブシステムを含むデータ処理システムのブロック図である。
【図２】本発明を具体化することのできるストレージ・サブシステムのブロック図である。
【図３】不揮発性ストレージがクラスタ・キャッシュの内容のイメージを維持する従来技術のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図４】一方のクラスタの不揮発性ストレージが他方のクラスタのキャッシュの内容の少なくとも一部を維持する従来技術のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図５】電源異常時に実行されるファイアホース・ダンプを例示した従来技術のストレージ・サブシステムのブロック図である。
【図６】本発明の方法のフローチャートである。
【図７】正常動作モードにおける本発明のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図８】電源異常に続く障害モードの第１のステップにおける図７のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図９】電源異常に続く障害モードの第２のステップにおける図７のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図１０】電源異常に続く障害モードの第３のステップにおける図７のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図１１】クラスタの１つが電源異常からのリカバリに失敗した後の修正動作モードにおける図７のストレージ・サブシステムのデータ・フローを例示したブロック図である。
【図１】
2004355623.tif 000003
【図２】
2004355623.tif 000004
【図３】
2004355623.tif 000005
【図４】
2004355623.tif 000006
【図５】
2004355623.tif 000007
【図６】
2004355623.tif 000008
【図７】
2004355623.tif 000009
【図８】
2004355623.tif 000010
【図９】
2004355623.tif 000011
【図１０】
2004355623.tif 000012
【図１１】
2004355623.tif 000013