(57)【要約】【課題】回復動作中に使用するためにキャッシュ内の修正済みデータを決定するための方法、システム、および製品を提供する。【解決手段】ストレージ・デバイスへの書き込みの処理が中断されたイベントが検出される。イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュがスキャンされる。バックアップ・ストレージ内の修正済みデータを有するデータ・ユニットが指示される。このバックアップ・ストレージ内の修正済みデータを有するデータ・ユニットの指示が、回復動作中に使用される。【選択図】  図３
2012514781.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む、方法。
【請求項２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項１に記載の方法。
【請求項３】
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項１、２、または３に記載の方法。
【請求項５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、第２のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納し、前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない第２のキャッシュへの書き込みを格納し、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含む、請求項１、２、３、または４に記載の方法。
【請求項６】
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
をさらに含む、請求項５に記載の方法。
【請求項７】
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することをさらに含む、請求項６または７に記載の方法。
【請求項９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記ストレージ・キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項８に記載の方法。
【請求項１０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項９に記載の方法。
【請求項１１】
キャッシュと、
バックアップ・ストレージと、
前記キャッシュおよび前記バックアップ・ストレージと通信するストレージ・マネージャであって、
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む動作を実行するように動作可能な、ストレージ・マネージャと、
を備える、ストレージ・デバイスと通信するシステム。
【請求項１２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項１１に記載のシステム。
【請求項１３】
前記動作が、
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことをさらに含む、請求項１１または１２に記載のシステム。
【請求項１４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項１１、１２、または１３に記載のシステム。
【請求項１５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、
前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納するための、第２のバックアップ・ストレージと、
前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第２のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含む、第２のキャッシュと、
をさらに備える、請求項１１から１４のいずれか一項に記載のシステム。
【請求項１６】
前記第２のバックアップ・ストレージおよび前記第２のキャッシュと通信する第２のストレージ・マネージャであって、
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
を含む動作を実行するように動作可能な、第２のストレージ・マネージャをさらに備える、請求項１５に記載のシステム。
【請求項１７】
さらに前記第１および第２のストレージ・マネージャが、
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することを実行するように動作可能な、請求項１６に記載のシステム。
【請求項１８】
さらに前記第２のストレージ・マネージャが、
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することを実行するように動作可能な、請求項１５または１６に記載のシステム。
【請求項１９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記ストレージ・キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項１８に記載のシステム。
【請求項２０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項１９に記載のシステム。
【請求項２１】
ストレージ・デバイス、キャッシュ、およびバックアップ・ストレージと通信するためのプログラムを実装するコンピュータ・プログラムであって、実行された場合、
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む動作を実行する、コンピュータ・プログラム。
【請求項２２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことを含む動作を実行するようにさらに動作可能な、請求項２１または２２に記載のコンピュータ・プログラム。
【請求項２４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項２１、２２、または２３に記載のコンピュータ・プログラム。
【請求項２５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、第２のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない第２のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含み、前記プログラムが第１のプログラムを含み、前記コンピュータ・プログラムが、前記第２のキャッシュおよび前記第２のバックアップ・ストレージに関して動作を実行する第２のプログラムをさらに含む、請求項２１、２２、２３、または２４に記載のコンピュータ・プログラム。
【請求項２６】
前記第２のプログラム動作が、
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
をさらに含む、請求項２５に記載のコンピュータ・プログラム。
【請求項２７】
前記動作が、
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することをさらに含む、請求項２６に記載のコンピュータ・プログラム。
【請求項２８】
前記第２のプログラム動作が、
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することをさらに含む、請求項２６または２７に記載のコンピュータ・プログラム。
【請求項２９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記ストレージ・キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項２８に記載のコンピュータ・プログラム。
【請求項３０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項２９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回復動作中に使用するためにキャッシュ内の修正済みデータを決定するための方法、システム、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
２重クラスタ・システムでは、各クラスタが処理コンプレックス（complex）、キャッシュ、および不揮発性バックアップ・ストレージ（ＮＶＳ）を含む。各クラスタには複数のボリュームが割り当てられ、ボリュームは論理サブシステム（ＬＳＳ）にグループ分けされる。ボリュームに書き込まれるデータは、データの割り当て先となるクラスタのキャッシュに格納することができる。ある状況では、キャッシュ内のデータのコピーが、バックアップ・コピーを提供するために他方のクラスタのＮＶＳにもコピーされる。このようにして、障害が発生した場合、キャッシュ内の修正済みデータは他方のクラスタ内に保持される。
【０００３】
障害後の回復動作中に、まだデステージ（destage）されていないＮＶＳ内の修正済みデータを回復し、クラスタ内のＮＶＳからデステージすることができる。ＮＶＳのうちの１つにも障害が発生している場合、他方のクラスタ内のキャッシュ向けの修正済みデータはそのＮＶＳから回復できない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
こうしたケースでは、回復動作は、キャッシュ内にあった修正済みデータを決定するために、追加の回復動作を実行しなければならなくなる。
【課題を解決するための手段】
【０００５】
回復動作中に使用するためにキャッシュ内の修正済みデータを決定するための方法、システム、およびコンピュータ・プログラムが提供される。ストレージ・デバイスへの書き込みの処理が中断されたイベントが検出される。イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュがスキャンされる。バックアップ・ストレージ内の修正済みデータを有するデータ・ユニットが指示される。このバックアップ・ストレージ内の修正済みデータを有するデータ・ユニットの指示が、回復動作中に使用される。
【０００６】
他の実施形態では、検出されたイベントは電力障害の通知を備え、キャッシュをスキャンする動作、およびバックアップ・ストレージ内の修正済みデータを有するデータ・ユニットを指示する動作は、バックアップ・バッテリ電源からの電力を使用して実行される。
【０００７】
他の実施形態では、修正済みデータを有するデータ・ユニットの指示は、バックアップ・ストレージからストレージ・デバイスへと書き込まれる。
【０００８】
他の実施形態では、バックアップ・ストレージは、キャッシュおよびバックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える。
【０００９】
他の実施形態では、キャッシュおよびバックアップ・ストレージは、第１のキャッシュおよび第１のバックアップ・ストレージを備え、ここで第２のバックアップ・ストレージは、ストレージ・デバイスにデステージされていない第１のキャッシュへの書き込みを格納する。第１のバックアップ・ストレージは、ストレージ・デバイスにデステージされていない第２のキャッシュへの書き込みを格納し、ここで第１のバックアップ・ストレージは、第１のキャッシュ内の修正済みデータを有するデータ・ユニットの指示を含む。
【００１０】
他の実施形態では、イベントの検出に応答して、修正済みデータを決定するために、ストレージ・デバイスにデステージされていない修正済みデータを含む第２のキャッシュがスキャンされる。指示は、第１のバックアップ・ストレージの第２のキャッシュ内に修正済みデータを有するデータ・ユニットで形成される。第２のバックアップ・ストレージ内に修正済みデータを有するデータ・ユニットの指示が、回復動作中に使用される。
【００１１】
他の実施形態では、回復動作中に、第１および第２のバックアップ・ストレージ内の修正済みデータをストレージ・デバイスにデステージするための動作が開始される。
【００１２】
他の実施形態では、第１のキャッシュ内の修正済みデータを示す、第２のバックアップ・ストレージ内に修正済みデータを有するデータ・ユニットの指示が、回復動作中に使用される。
【００１３】
他の実施形態では、第１および第２のバックアップ・ストレージ内に修正済みデータを有するデータ・ユニットの指示を使用することが、第２のキャッシュ内の修正済みデータを回復するために第１のバックアップ・ストレージが使用できない旨の決定に応答して、回復動作中に第２のバックアップ・ストレージ内の第２のキャッシュ内に修正済みデータを有するデータ・ユニットの指示を使用すること、および、ストレージ・キャッシュ内の修正済みデータを回復するために第２のバックアップ・ストレージが使用できない旨の決定に応答して、回復動作中に第１のバックアップ・ストレージ内の第１のキャッシュ内に修正済みデータを有するデータ・ユニットの指示を使用することを含む。
【００１４】
他の実施形態では、第１または第２のキャッシュ内に修正済みデータを有するデータ・ユニットの指示を使用することが、修正済みデータを有するデータ・ユニットの指示を回復することを含む。
【００１５】
次に、本発明の好ましい実施形態について、以下の図面を参照しながら単なる例として説明する。
【図面の簡単な説明】
【００１６】
【図１】コンピューティング環境の実施形態を示す図である。
【図２】修正済みデータ・リストの実施形態を示す図である。
【図３】イベントの検出に応答して、修正済みデータを決定するためおよび修正済みデータ・リストを生成するための動作の実施形態を示す図である。
【図４】回復動作中に修正済みデータを使用するための動作の実施形態を示す図である。
【発明を実施するための形態】
【００１７】
図１は、ネットワーク・コンピューティング環境の実施形態を示す。複数のホスト（図示せず）が、ストレージ６ａ、６ｂ内のボリューム４ａ、４ｂ（たとえば論理ユニット数、論理デバイス、論理サブシステムなど）でデータにアクセスするために、ストレージ・コントローラ２に入力／出力（Ｉ／Ｏ）要求をサブミットすることができる。ストレージ・コントローラ２は、少なくとも２つのクラスタ８ａ、８ｂを含む。各クラスタ８ａ、８ｂは、キャッシュ１２ａ、１２ｂ内のデータのタイプに応じてキャッシュ１２ａ、１２ｂ内にデータをバックアップするために、プロセッサ・コンプレックス１０ａ、１０ｂ、キャッシュ１２ａ、１２ｂ、およびバックアップ・ストレージ１４ａ、１４ｂを含む。ある諸実施形態では、バックアップ・ストレージ１４ａ、１４ｂは、不揮発性バックアップ・ストレージまたはメモリ・デバイスなどの、データの不揮発性ストレージを提供することができる。クラスタ８ａ、８ｂは、ホストからＩ／Ｏ要求を受け取り、この要求をバッファリングし、ストレージ６ａ、６ｂに向けて送られたデータをそれらそれぞれのキャッシュ１２ａ、１２ｂに書き込む。各クラスタ８ａ、８ｂは、Ｉ／Ｏ要求を管理するためにプロセッサ・コンプレックス１０ａ、１０ｂによって実行されるストレージ・マネージャ１６ａ、１６ｂを含む。
【００１８】
キャッシュ・コントローラ１８ａ、１８ｂはキャッシュ１２ａ、１２ｂ内のデータを管理するための回路を提供し、バックアップ・ストレージ・コントローラ２０ａ、２０ｂはバックアップ・ストレージ１４ａ、１４ｂ内のデータを管理するための回路を提供する。一実施形態では、キャッシュ・コントローラ１８ａ、１８ｂは、キャッシュ１２ｂ、１２ｂから他方のクラスタ８ａ、８ｂ内のキャッシュまたはバックアップ・ストレージ１４ａ、１４ｂにデータを直接コピーするための、回路およびダイレクト・メモリ・アクセス（ＤＭＡ）を含む。このようにして、プロセッサ・コンプレックス１０ａ、１０ｂは、それらそれぞれのキャッシュ・コントローラ１８ａ、１８ｂへのデータ移動動作をオフロードする（offload）ことができる。
【００１９】
一実施形態では、キャッシュ１２ａ、１２ｂは、プロセッサ・コンプレックス１０ａ、１０ｂの外部に揮発性ストレージを備えるか、またはＬ２キャッシュなどのプロセッサ・コンプレックス１０ａ、１０ｂの「オンボード」キャッシュを備えることができる。一実施形態では、バックアップ・ストレージ１４ａ、１４ｂは、たとえばバックアップされたランダム・アクセス・メモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの不揮発性メモリのような、不揮発性バックアップ・ストレージ（ＮＶＳ）を備えることができる。キャッシュ１２ａ、１２ｂおよびバックアップ・ストレージ１４ａ、１４ｂに対して、当分野で知られる代替のメモリおよびデータ・ストレージ構造を使用することができる。
【００２０】
バス２２は、クラスタ８ａ、８ｂ間の通信を可能にするための通信インターフェースを提供し、周辺機器相互接続（ＰＣＩ）バスまたは他のバス・インターフェース、あるいはネットワーク通信インターフェースなどの、当分野に知られた通信インターフェース技術を利用することができる。さらに、バス２２は、プロセッサ・コンプレックス１０ａ、１０ｂ内のコアおよびコンポーネント間での通信を可能にするために、バス、ポート、論理、アービタ（arbiter）、キューなどを備える、プロセッサ対称型マルチプロセッサ（ＳＭＰ）ファブリックを備えることができる。
【００２１】
クラスタ８ａ、８ｂはどちらも、当業者に知られた好適なストレージ通信インターフェースを利用可能な共有ストレージ・バス２４を介して、ストレージ・システム６ａ、６ｂ内のボリューム４ａ、４ｂにアクセスすることができる。ストレージ・マネージャ１６ａ、１６ｂは、接続されたストレージ６ａ、６ｂ内にボリュームまたはボリューム・グループを所有するクラスタ８ａ、８ｂへのボリューム４ａ、４ｂの割り当ても維持することが可能であり、その結果として、書き込みデータをキャッシュすることおよびボリュームに対して書き込みを実行することによって、クラスタが所有するそれらのボリューム４ａ、４ｂへの書き込みを所有者クラスタ８ａ、８ｂが処理することになる。
【００２２】
ストレージ・コントローラ２内のクラスタ８ａ、８ｂは別々の処理システムを備え、異なる電力境界上に存在可能であって、別々のマザーボード上に実装された各クラスタなどの、別々のハードウェア・コンポーネント内で実装可能である。ストレージ６ａ、６ｂは、Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  ｏｆ  Ｄｉｓｋ（ＪＢＯＤ）、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ（ＲＡＩＤ）アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリなどの、ストレージ・デバイス・アレイを備えることができる。
【００２３】
ストレージ・マネージャ１６ａ、１６ｂは、プロセッサ・コンプレックス１０ａ、１０ｂなどのプロセッサによって実行されるコードを備えるか、または、特定用途向け集積回路（ＡＳＩＣ）などの、それらのそれぞれのクラスタ８ａ、８ｂ内の専用ハードウェア・デバイス内でそれぞれ実装することが可能である。
【００２４】
ホスト接続アダプタ２６は、ストレージ・コントローラ２へのストレージ・エリア・ネットワーク（ＳＡＮ）インターフェースなどの、インターフェースを提供する。これは、ストレージ・コントローラ２によってサービスが提供されているシステムが、それらのデータにアクセスするために使用するパスである。ある諸実施形態では、ホスト・アダプタ２６は、ホストがデータを修正した場合、データの２つのコピーを書き込む。１つのコピーはたとえば１２ａなどのキャッシュに、１つのコピーは、たとえば８ｂなどの他方のクラスタ内の、たとえば１４ｂなどのバックアップ・ストレージに書き込まれる。追加の諸実施形態では、キャッシュ・コントローラ１８ａ、１８ｂはＤＭＡとするか、あるいは、それらのそれぞれのキャッシュ１２ａ、１２ｂから、他方のクラスタ８ａ、８ｂ内のキャッシュ１２ａ、１２ｂまたはバックアップ・ストレージ１４ａ、１４ｂへと、バス２２を介してデータを直接コピーすることができる。
【００２５】
図２は、未だにストレージ６ａ、６ｂにデステージされていない、それらのキャッシュ１２ａ、１２ｂ内の修正済みデータ、すなわち汚染データを決定するために、各ストレージ・マネージャ１６ａ、１６ｂがそれぞれキャッシュ１２ａ、１２ｂをスキャンすることによって生成する、修正済みデータ・リスト５０の実施形態を示す。この情報は、キャッシュ・エントリが未だにデステージされていない汚染または修正済みのデータを有することを示す、キャッシュ・コントローラ１８ａ、１８ｂによって維持されるキャッシュ・コントロール・ブロックから決定することができる。ストレージ・マネージャ１６ａ、１６ｂは、バックアップ・ストレージ１４ａ、１４ｂ内の同じクラスタ８ａ、８ｂ内のキャッシュ１２ａ、１２ｂ内の修正済みデータを示す、生成された修正済みデータ・リスト５０を、それぞれ独立に生成および格納することができる。このようにして、バックアップ・ストレージ１４ａは、他方のクラスタ８ｂ内のキャッシュ１２ｂからのたとえば汚染データなどの修正済みデータと、同じクラスタ８ａのキャッシュ１２ａ内の修正済みデータのデータ・ユニットを示す修正済みデータ・リスト５０とを格納し、バックアップ・ストレージ１４ｂは、他方のクラスタ８ａ内のキャッシュ１２ａからのたとえば汚染データなどの修正済みデータと、同じクラスタ８ｂのキャッシュ１２ｂ内の修正済みデータのデータ・ユニットを示す修正済みデータ・リスト５０とを格納する。ある諸実施形態では、修正済みデータ・リスト５０は、実際の修正済みデータを格納せずに、修正済みのそれらのデータ・ユニットを示す情報を有する。ストレージのデータ・ユニットは、トラック、論理ブロック・アドレス、あるいは任意の他のユニットまたはストレージ・スペースの分割を備えることができる。
【００２６】
図３は、電力障害または他のイベントなどの、ストレージ・デバイス６ａ、６ｂへのホストの書き込みが中断される間のイベントに応答して、各クラスタ８ａ、８ｂ内のストレージ・マネージャ１６ａ、１６ｂによって実行される動作の実施形態を示す。ストレージ・コントローラ２の電力障害などの、結果として書き込みの中断を発生させるイベントを検出する（ブロック１００）と、ストレージ・マネージャ１６ａ、１６ｂは、ストレージ６ａ、６ｂにデステージされていないボリューム４ａ、４ｂ内のデータ・ユニットに関する修正済みデータ、すなわち修正済みまたは汚染データを決定するために、ストレージ・マネージャ１６ａ、１６ｂのクラスタ８ａ、８ｂ内のキャッシュ１２ａ、１２ｂのスキャンを開始する（ブロック１０２）。前述のように、ストレージ・マネージャ１６ａ、１６ｂは、キャッシュ・エントリのコンテンツ上のキャッシュ・メタデータから、修正済みデータを有するデータ・ユニット、たとえばトラックを決定することができる。ストレージ・マネージャ１６ａ、１６ｂは、それぞれ、同じクラスタ８ａ、８ｂ内のキャッシュ１２ａ、１２ｂに関する修正済みデータ・リスト５０内に、バックアップ・ストレージ１４ａ、１４ｂ内の修正済みデータを有するデータ・ユニットを示す（ブロック１０４）。
【００２７】
前述のある諸実施形態では、図３の動作は２重クラスタ環境内で実行される。他の諸実施形態では、動作は、複数のクラスタを有する環境および単一クラスタ環境において、ストレージ・マネージャによって実行可能である。
【００２８】
図４は、障害が発生した際にキャッシュ１２ａ、１２ｂ内に存在した任意の修正済みデータを回復するために、電力障害などの障害後に、回復動作の一部としてストレージ・コントローラ２内で実行される動作の実施形態を示す。回復動作の開始に応答して、各クラスタ８ａ、８ｂ内のストレージ・マネージャ１６ａ、１６ｂは、ブロック１５２から１６２で動作を実行する。ブロック１５４で、クラスタｉ内のストレージ・マネージャ１６ａ、１６ｂは、クラスタｉキャッシュに関する修正済みデータが、他方のクラスタｊ内のバックアップ・ストレージ１４ａ、１４ｂからダウンロード可能であるかどうかを決定する（ブロック１５４）。したがってストレージ・マネージャ１６ａは、クラスタ８ａ内のキャッシュ１２ａに関する修正済みデータが、他方のクラスタ８ｂ内のバックアップ・ストレージ１４ｂからデステージ可能であるかどうかを決定し、ストレージ・マネージャ１６ｂは、クラスタ８ｂ内のキャッシュ１２ｂに関する修正済みデータが、他方のクラスタ８ａ内のバックアップ・ストレージ１４ａからデステージ可能であるかどうかを決定する。他方のクラスタ８ａ、８ｂ内のバックアップ・ストレージ１４ａ、１４ｂからデータが回復可能である場合、クラスタｊ内のバックアップ・ストレージ１４ａ、１４ｂからの修正済みデータは、ストレージ・デバイス６ａ、６ｂへとデステージされる（ブロック１５６）。
【００２９】
修正済みデータを提供するためにバックアップ・ストレージ１４ａ、１４ｂが使用できない場合、クラスタｉのストレージ・マネージャ１６ａ、１６ｂは、クラスタｉ内のキャッシュ１２ａ、１２ｂ内の修正済みデータがクラスタｊ内のバックアップ・ストレージから回復できないことを決定するために、クラスタｉ内のバックアップ・ストレージ１４ａ、１４ｂ内の修正済みデータ・リスト５０内のキャッシュ内に修正済みデータを有するデータ・ユニットの指示を使用する（ブロック１５８）。たとえば、ストレージ・マネージャ１６ａは、クラスタ８ａ内のバックアップ・ストレージ１４ａ内の修正済みデータ・リスト５０から、回復の必要がある修正済みデータをキャッシュ１２ａ内に有するそれらのデータ・ユニットを決定し、
ストレージ・マネージャ１６ｂは、クラスタ８ｂ内のバックアップ・ストレージ１４ｂ内の修正済みデータ・リスト５０から、回復の必要がある修正済みデータをキャッシュ１２ｂ内に有するデータ・ユニットを決定する。クラスタｉ内のストレージ・マネージャ１６ａ、１６ｂは、修正済みデータ・リスト５０内に回復不可能であると示されたキャッシュ１２ａ、１２ｂ内の修正済みデータに関して、回復動作を実行する（ブロック１６０）。
【００３０】
前述の諸実施形態では、入力／出力（Ｉ／Ｏ）処理を中断させるイベントなどの、障害時または他の障害処理を必要とするイベント時に、ストレージ・マネージャ１６ａ、１６ｂは、修正済みデータ・リスト５０内に示されたデステージされていないキャッシュ１２ａ、１２ｂ内の修正済みデータについて、それぞれキャッシュ１２ａ、１２ｂをスキャンする。あるクラスタのキャッシュ１２ａ、１２ｂ内の修正済みデータが、他方のクラスタ内のバックアップ・ストレージ１４ａ、１４ｂから回復できない場合、修正済みデータ・リスト５０内に修正済みデータを有する、トラックなどのそれらのデータ・ユニットのこの情報を、データ回復動作中に使用することができる。前述のある諸実施形態で、結果として書き込みを中断させるイベントが生じるまで修正済みデータの決定および指示が実行されないことから、修正済みデータを有するデータ・ユニットに関する情報を有する修正済みデータ・リスト５０の形成はＩ／Ｏ処理を妨害しない。
【００３１】
追加の実施形態の詳細
前述の諸動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するための標準のプログラミング技法あるいはエンジニアリング技法またはその両方を使用する、方法、装置、または製品として実装可能である。前述の諸動作は、「コンピュータ読み取り可能媒体」内で維持されるコードとして実装可能であり、ここでプロセッサは、コンピュータ読み取り可能媒体からのコードの読み取りおよび実行が可能である。コンピュータ読み取り可能媒体は、磁気ストレージ媒体（たとえばハード・ディスク・ドライブ、フレキシブル・ディスク、テープなど）、光ストレージ（ＣＤ−ＲＯＭ、ＤＶＤ、光ディスクなど）、揮発性および不揮発性のメモリ・デバイス（たとえば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、ファームウェア、プログラマブル論理など）などの、媒体を備えることができる。前述の諸動作を実施するコードは、さらに、ハードウェア論理（たとえば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）内で実装可能である。さらに前述の諸動作を実施するコードは、「伝送信号」内で実装可能であり、ここで伝送信号は、空間を介して、または光ファイバ、銅線などの伝送媒体を介して伝搬可能である。コードまたは倫理が内部で符号化される伝送信号は、無線信号、衛星伝送、電波、赤外線信号、Ｂｌｕｅｔｏｏｔｈなどをさらに備えることができる。コードまたは倫理が内部で符号化される伝送信号は、送信局による送信および受信局による受信が可能であり、ここで、伝送信号内で符号化されるコードまたは論理は、受信側および送信側の局またはデバイスの、ハードウェアまたはコンピュータ読み取り可能媒体内に復号および格納することが可能である。「製品」は、コンピュータ読み取り可能媒体、ハードウェア論理、あるいは内部にコードが実装可能な伝送信号、またはそれらすべてを備える。前述の諸動作の諸実施形態を実装するコードが内部で符号化されるデバイスは、コンピュータ読み取り可能媒体またはハードウェア論理を備えることができる。当然ながら、当業者であれば、本発明の範囲を逸脱することなく本構成に対して多くの修正が実行可能であること、および、製品が当業者に知られた好適な情報担持媒体を備えられることを、理解されよう。
【００３２】
前述の諸実施形態では、キャッシュ内のデータに対応するバックアップ・ストレージ１４ａ、１４ｂに格納されたデータは、キャッシュ内のデータのストレージ位置または識別子、あるいはキャッシュ内のデータのコピーを備えるものであった。代替の諸実施形態では、異なるタイプの対応データをバックアップ・ストレージ内に維持することができる。
【００３３】
前述の諸実施形態では、キャッシュ１２ａ、１２ｂおよびバックアップ・ストレージ１４ａ、１４ｂの間でデータをコピーするためのコピー動作は、キャッシュ・コントローラ１８ａ、１８ｂによって実行される。
【００３４】
代替の諸実施形態では、キャッシュ・コントローラ１８ａ、１８ｂによって開始されるものと説明された諸動作は、ストレージ・マネージャ１６ａ、１６ｂまたはクラスタ内の他のコンポーネントによって実行可能である。
【００３５】
「ある実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「その諸実施形態」、「１つまたは複数の実施形態」、「いくつかの実施形態」、および「一実施形態」という用語は、特に明示的に指定されていない限り、「本発明の１つまたは複数の実施形態（ただしすべてではない）」を意味する。
【００３６】
「含む」、「備える」、「有する」、およびそれらの変形の用語は、特に明示的に指定されていない限り、「含むが限定しない」ことを意味する。
【００３７】
アイテムの列挙されたリストは、特に明示的に指定されていない限り、アイテムのいずれかまたはすべてが相互に排他的であることを示唆するものではない。
【００３８】
「ａ」、「ａｎ」、および「ｔｈｅ」という用語は、特に明示的に指定されていない限り、「１つまたは複数」を意味する。
【００３９】
互いに通信状態にあるデバイスは、特に明示的に指定されていない限り、継続的に互いに通信状態にある必要はない。加えて、互いに通信状態にあるデバイスは、直接、あるいは１つまたは複数の仲介を介して間接的に、通信可能である。
【００４０】
互いに通信するいくつかのコンポーネントを伴う実施形態の説明は、そうしたコンポーネントのすべてが必要であることを示唆するものではない。その逆に、様々なオプション・コンポーネントは、本発明の多様で可能な諸実施形態を例示するために説明されている。
【００４１】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどは一連の順序で説明されている場合があるが、こうしたプロセス、方法、およびアルゴリズムは、代替の順序で動作するように構成可能である。言い換えれば、説明可能なステップのいずれの順序または順番も、必ずしも、それらのステップがその順序で実行されるという要件を示すものではない。本明細書で説明されるプロセスの諸ステップは、任意の実用的な順序で実行可能である。さらにいくつかのステップは、同時に実行可能である。
【００４２】
本明細書で単一のデバイスまたは製品について説明されている場合、単一デバイス／製品の代わりに、複数のデバイス／製品が（それらが協働するか否かにかかわらず）使用可能であることが容易に明らかとなろう。同様に、本明細書で複数のデバイスまたは製品について（それらが協働するか否かにかかわらず）説明されている場合、複数のデバイスまたは製品の代わりに単一のデバイス／製品が使用可能であること、または、示された数のデバイスまたはプログラムではなく異なる数のデバイス／製品が使用可能であることが、容易に明らかとなろう。別の方法として、デバイスの機能あるいは特徴またはその両方は、こうした機能／特徴を有するものとして明示的に説明されていない１つまたは複数の他のデバイスによって具体化可能である。したがって本発明の他の諸実施形態は、デバイス自体を含む必要がない。
【００４３】
図３および図４の例示された動作は、ある順序で発生するあるイベントを示す。代替の諸実施形態では、ある動作を異なる順序で実行する、修正する、または除外することが可能である。さらに諸ステップは前述の論理に追加すること、および依然として説明された諸実施形態に準拠することが可能である。また、本明細書で説明された諸動作は順次実行可能であるか、またはある動作を並行して処理可能である。さらに諸動作は、単一の処理ユニットによってまたは分散型処理ユニットによって実行可能である。
【００４４】
本発明の様々な諸実施形態の前述の説明は、例示および説明のために提示されたものである。本発明を網羅すること、または開示された精密な形に限定することは意図されていない。上記の教示に鑑みて、多くの修正および変形が可能である。本発明の範囲は、本書の発明を実施するための形態によってではなく、添付の特許請求の範囲によって限定されることが意図されている。前述の仕様、例示、およびデータは、本発明の構成の製造および使用を完全に説明している。本発明の多くの実施形態は、本発明の趣旨および範囲を逸脱することなく作成可能であるため、本発明は添付の特許請求の範囲内に存在するものである。
【図１】
2012514781.tif 000003
【図２】
2012514781.tif 000004
【図３】
2012514781.tif 000005
【図４】
2012514781.tif 000006
【手続補正書】
【提出日】平成23年8月31日(2011.8.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む、方法。
【請求項２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項１に記載の方法。
【請求項３】
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項１、２、または３に記載の方法。
【請求項５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、第２のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納し、前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない第２のキャッシュへの書き込みを格納し、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含む、請求項１、２、３、または４に記載の方法。
【請求項６】
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
をさらに含む、請求項５に記載の方法。
【請求項７】
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することをさらに含む、請求項６または７に記載の方法。
【請求項９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項８に記載の方法。
【請求項１０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項９に記載の方法。
【請求項１１】
キャッシュと、
バックアップ・ストレージと、
前記キャッシュおよび前記バックアップ・ストレージと通信するストレージ・マネージャであって、
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む動作を実行するように動作可能な、ストレージ・マネージャと、
を備える、ストレージ・デバイスと通信するシステム。
【請求項１２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項１１に記載のシステム。
【請求項１３】
前記動作が、
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことをさらに含む、請求項１１または１２に記載のシステム。
【請求項１４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項１１、１２、または１３に記載のシステム。
【請求項１５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、
前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納するための、第２のバックアップ・ストレージと、
前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第２のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含む、第２のキャッシュと、
をさらに備える、請求項１１から１４のいずれか一項に記載のシステム。
【請求項１６】
前記第２のバックアップ・ストレージおよび前記第２のキャッシュと通信する第２のストレージ・マネージャであって、
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
を含む動作を実行するように動作可能な、第２のストレージ・マネージャをさらに備える、請求項１５に記載のシステム。
【請求項１７】
さらに前記第１および第２のストレージ・マネージャが、
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することを実行するように動作可能な、請求項１６に記載のシステム。
【請求項１８】
さらに前記第２のストレージ・マネージャが、
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することを実行するように動作可能な、請求項１５または１６に記載のシステム。
【請求項１９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項１８に記載のシステム。
【請求項２０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項１９に記載のシステム。
【請求項２１】
ストレージ・デバイス、キャッシュ、およびバックアップ・ストレージと通信するためのプログラムを実装するコンピュータ・プログラムであって、実行された場合、
ストレージ・デバイスへの書き込みの処理が中断されたイベントを検出すること、
前記イベントの検出に応答して、修正済みデータを有するデータ・ユニットを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含むキャッシュをスキャンすること、
バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットの前記指示を、回復動作中に使用すること、
を含む動作を実行する、コンピュータ・プログラム。
【請求項２２】
前記検出されたイベントが電力障害の通知を備え、前記キャッシュをスキャンする動作、および前記バックアップ・ストレージ内の前記修正済みデータを有する前記データ・ユニットを指示する動作が、バックアップ・バッテリ電源からの電力を使用して実行される、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記修正済みデータを有する前記データ・ユニットの指示を、前記バックアップ・ストレージから前記ストレージ・デバイスへと書き込むことを含む動作を実行するようにさらに動作可能な、請求項２１または２２に記載のコンピュータ・プログラム。
【請求項２４】
前記バックアップ・ストレージが、前記キャッシュおよび前記バックアップ・ストレージを含むシステムからの別のバッテリ電源を有する不揮発性ストレージ・デバイスを備える、請求項２１、２２、または２３に記載のコンピュータ・プログラム。
【請求項２５】
前記キャッシュおよび前記バックアップ・ストレージが、第１のキャッシュおよび第１のバックアップ・ストレージを備え、第２のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない前記第１のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記ストレージ・デバイスにデステージされていない第２のキャッシュへの書き込みを格納するように動作可能であり、前記第１のバックアップ・ストレージが、前記第１のキャッシュ内の前記修正済みデータを有する前記データ・ユニットの指示を含み、前記プログラムが第１のプログラムを含み、前記コンピュータ・プログラムが、前記第２のキャッシュおよび前記第２のバックアップ・ストレージに関して動作を実行する第２のプログラムをさらに含む、請求項２１、２２、２３、または２４に記載のコンピュータ・プログラム。
【請求項２６】
前記第２のプログラム動作が、
前記イベントの検出に応答して、前記修正済みデータを決定するために、前記ストレージ・デバイスにデステージされていない修正済みデータを含む前記第２のキャッシをスキャンすること、
前記第１のバックアップ・ストレージの前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットを指示すること、および
前記第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用すること、
をさらに含む、請求項２５に記載のコンピュータ・プログラム。
【請求項２７】
前記動作が、
前記回復動作中に、前記第１および第２のバックアップ・ストレージ内の前記修正済みデータを前記ストレージ・デバイスにデステージするための動作を開始することをさらに含む、請求項２６に記載のコンピュータ・プログラム。
【請求項２８】
前記第２のプログラム動作が、
前記第１のキャッシュ内の前記修正済みデータを示す、前記第２のバックアップ・ストレージ内に前記修正済みデータを有する前記データ・ユニットの前記指示を、前記回復動作中に使用することをさらに含む、請求項２６または２７に記載のコンピュータ・プログラム。
【請求項２９】
前記第１および第２のバックアップ・ストレージ内に修正済みデータを有する前記データ・ユニットの指示を使用することが、
前記第２のキャッシュ内の前記修正済みデータを回復するために前記第１のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第２のバックアップ・ストレージ内の前記第２のキャッシュ内に修正済みデータを有する前記データ・ユニットの指示を使用すること、および、
前記キャッシュ内の前記修正済みデータを回復するために前記第２のバックアップ・ストレージが使用できない旨の決定に応答して、前記回復動作中に前記第１のバックアップ・ストレージ内の前記第１のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの指示を使用すること、
を含む、請求項２８に記載のコンピュータ・プログラム。
【請求項３０】
前記第１または前記第２のキャッシュ内に前記修正済みデータを有する前記データ・ユニットの前記指示を使用することが、前記修正済みデータを有する前記データ・ユニットの前記指示を回復することを含む、請求項２９に記載のコンピュータ・プログラム。
【国際調査報告】
2012514781.tif 000007
2012514781.tif 000008
2012514781.tif 000009