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