(57)【要約】      （修正有）【課題】記憶システムにおいて冗長セカンダリ・キャッシュを効率的に再構築するためのシステムを提供する。【解決手段】第１の記憶キャッシュ・デバイスによって格納され、プライマリ記憶デバイスの領域と関連付けられる情報の一部についての有効性を示すメタデータ・エントリが抽出されて検査され、プライマリ記憶デバイスの領域に関連付けられる情報の一部についての有効性が確立されるときに、第１の記憶キャッシュ・デバイスによって格納された情報の一部に関連付けられたプライマリ記憶デバイスの領域に対し領域ロックが要求される。次いで、情報の一部とプライマリ記憶デバイスの領域に関連付けられた対応するメタデータ・エントリとが、第１キャッシュ記憶デバイスから第２の記憶キャッシュ・デバイスにコピーされ、第２記憶キャッシュ・デバイスが再構築される。【選択図】図１
2014154154.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶デバイスおよび第２の記憶デバイスを備える冗長セカンダリ記憶キャッシュを再構築するためのシステムであって、
第１の記憶キャッシュ・デバイスによって格納され、プライマリ記憶デバイスの領域に関連付けられた情報の一部についての有効性を示すメタデータ・エントリを受け取るように構成されるプロセッサと、
前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部についての前記有効性を示す前記メタデータ・エントリを格納するように構成されるメモリと
を備え、
前記メモリがコンピュータ実行可能命令であって、前記プロセッサが、
前記プライマリ記憶デバイスの領域に関連付けられた前記情報の一部についての前記有効性を確立し、
前記プライマリ記憶デバイスの領域に関連付けられた前記情報の一部についての前記有効性が確立されたときに、前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への領域ロックを要求し、
前記情報の一部と前記プライマリ記憶デバイスの領域に関連付けられた対応するメタデータ・エントリとを、前記第１記憶キャッシュ・デバイスから第２の記憶キャッシュ・デバイスにコピーして、前記第２記憶キャッシュ・デバイスを再構築する
ことを実行するように構成されたコンピュータ実行可能命令を前記メモリ上に有する、システム。
【請求項２】
請求項１記載のシステムにおいて、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングする単一の情報に関連付けられる、システム。
【請求項３】
請求項１記載のシステムにおいて、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングする異なる情報に関連付けられる、システム。
【請求項４】
請求項１記載のシステムにおいて、シリアル・アタッチド・スモール・コンピュータ・システム・インタフェース・リンクを用いて、前記第１記憶キャッシュ・デバイスを前記第２記憶キャッシュ・デバイスに接続する、システム。
【請求項５】
請求項１記載のシステムにおいて、前記プライマリ記憶デバイスが、独立したディスク・デバイスにおける冗長アレイを備える、システム。
【請求項６】
請求項１記載のシステムにおいて、前記冗長セカンダリ記憶キャッシュが、記憶領域のネットワークを介して前記プライマリ記憶デバイスと結合される、システム。
【請求項７】
請求項１記載のシステムにおいて、当該システムが集積回路において製造される、システム。
【請求項８】
第１の記憶デバイスおよび第２の記憶デバイスを備える冗長セカンダリ記憶キャッシュを再構築するためのコンピュータ実施可能命令を有するコンピュータ可読記憶媒体であって、前記コンピュータ実施可能命令が、
第１の記憶キャッシュ・デバイスによって格納され、プライマリ記憶デバイスの領域に関連付けられた情報の一部についての有効性を示すメタデータ・エントリを受け取ること、
前記プライマリ記憶デバイスの領域に関連付けられた前記情報の一部についての前記有効性が確立されたときに、前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への領域ロックを要求すること、
前記情報の一部と前記プライマリ記憶デバイスの領域に関連付けられた対応するメタデータ・エントリとを、前記第１キャッシュ記憶デバイスから第２の記憶キャッシュ・デバイスにコピーして、前記第２記憶キャッシュ・デバイスを再構築すること
を含む、コンピュータ可読記憶媒体。
【請求項９】
請求項８記載のコンピュータ可読記憶媒体において、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングしている単一の情報に関連付けられる、コンピュータ可読記憶媒体。
【請求項１０】
請求項８記載のコンピュータ可読記憶媒体において、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングしている異なる情報に関連付けられる、システム。
【請求項１１】
請求項１０記載のコンピュータ可読記憶媒体において、シリアル・アタッチド・スモール・コンピュータ・システム・インタフェース・リンクを用いて、前記第１記憶キャッシュ・デバイスを前記第２記憶キャッシュ・デバイスに接続する、コンピュータ可読記憶媒体。
【請求項１２】
請求項８記載のコンピュータ可読記憶媒体において、前記プライマリ記憶デバイスが独立したディスク・デバイスにおける冗長アレイを備える、コンピュータ可読記憶媒体。
【請求項１３】
請求項８記載のコンピュータ可読記憶媒体において、前記冗長セカンダリ記憶キャッシュが、記憶領域のネットワークを介して前記プライマリ記憶デバイスと結合される、コンピュータ可読記憶媒体。
【請求項１４】
請求項８記載のコンピュータ可読記憶媒体において、前記コンピュータ実施可能命令が、
更に、
前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への前記領域ロックを要求した後に、前記メタデータ・エントリが変更されたことの指標を受け取ること、
前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への前記領域ロックを解除すること、
前記第１記憶キャッシュ・デバイスによって格納され、前記プライマリ記憶デバイスの領域に関連付けられた情報の他の部分についての有効性を示す、後続のメタデータ・エントリを受け取ること
を含む、コンピュータ可読記憶媒体。
【請求項１５】
第１の記憶デバイスおよび第２の記憶デバイスを備える冗長セカンダリ記憶キャッシュを再構築するためのコンピュータ実装方法であって、
第１の記憶キャッシュ・デバイスによって格納され、プライマリ記憶デバイスの領域に関連付けられた情報の一部についての有効性を示すメタデータ・エントリを受け取るステップと、
前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への領域ロックを要求した後に前記メタデータ・エントリが変更されたことを示す指標を受け取ったときに、前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への前記領域ロックを解除するステップと、
前記第１記憶キャッシュ・デバイスによって格納された前記情報の一部に関連付けられた前記プライマリ記憶デバイスの領域への前記領域ロックを要求した後に前記メタデータ・エントリが変更されたことを示す指標を受け取らなかったときに、プロセッサに、前記情報の一部と前記プライマリ記憶デバイスの領域に関連付けられた対応するメタデータ・エントリとを、前記第１記憶キャッシュ・デバイスから第２の記憶キャッシュ・デバイスにコピーさせて、前記第２記憶キャッシュ・デバイスを再構築するステップと
を含む、コンピュータ実装方法。
【請求項１６】
請求項１５記載のコンピュータ実装方法において、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングする単一の情報に関連付けられる、コンピュータ実装方法。
【請求項１７】
請求項１５記載のコンピュータ実装方法において、前記第１記憶キャッシュ・デバイスおよび前記第２記憶キャッシュ・デバイスがシステム・デバイスをハンドリングする異なる情報に関連付けられる、コンピュータ実装方法。
【請求項１８】
請求項１５記載のコンピュータ実装方法であって、更に、シリアル・アタッチド・スモール・コンピュータ・システム・インタフェース・リンクを用いて、前記第１記憶キャッシュ・デバイスを前記第２記憶キャッシュ・デバイスに接続するステップを含む、コンピュータ実装方法。
【請求項１９】
請求項１５記載のコンピュータ実装方法において、前記プライマリ記憶デバイスが、独立したディスク・デバイスにおける冗長アレイを備える、コンピュータ実装方法。
【請求項２０】
請求項１５記載のコンピュータ実装方法であって、更に、前記冗長セカンダリ記憶キャッシュを記憶領域のネットワークを介して前記プライマリ記憶デバイスと結合するステップを含む、コンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本発明は、記憶システムにおいて冗長セカンダリ・キャッシュを再構築(rebuild)するためのシステムおよび技術に関するものである。
【背景技術】
【０００２】
[0002]  ローカル・ソリッド・ステート・ドライブ（ＳＳＤ）のキャッシュは、記憶アーキテクチャ内のセカンダリ・キャッシュに用いることができる。これらの構成内のセカンダリ・キャッシュ・デバイスは、通例、冗長的であり、その結果、「ダーティ(dirty)」なデータ（例えば、プライマリ記憶装置の内容を反映するセカンダリ・キャッシュのデータ）を確実にキャッシュすることができる。しかしながら、冗長ドライブが故障した場合には、該冗長ドライブの再構築動作は複雑かつ時間消費するものとなり得る。何故ならば、同一のデバイスが異なるソースとなるバーチャル・ドライブ（ＶＤ）についてのデータをキャッシュしているからである。ＳＳＤボリュームは、実行しているバックグランドの入力／出力（ＩＯ）がなければ、オフラインで比較的容易に再構築されることもある。しかしながら、この技術は、延長時間にわたりＩＯシステムをオフラインに保つことを必要とし、ミッション・クリティカルなデータや、通常「オン」システム等を含む実際のユース・ケースには適さない。再構築を回避する技術では、ダーティ・データが再構築のために交換されないために、存続している(surviving)ドライブから当該データを削除する（例えば、ＳＳＤキャッシュからプライマリ記憶装置までダーティ・データをフラッシュする）。一旦ダーティ・データが削除され（フラッシュされ）ると、ダーティ・データの冗長記憶装置は、後続の書き込みＩＯに対して実行することができる。しかしながら、大規模な記憶容量（例えば、テラバイトのオーダーのでデータ）を有するＳＳＤでは、ディスクに対してダーティ・データをフラッシュするのに非常に時間がかかる上、性能にとって有害なものとなる。何故ならば、新規の書き込み(WRITE)キャッシュ（ダーティ・データ生成）は、ダーティ・データ全体がディスクに対してフラッシュされなければ再開できないからである。このことは、データが複数のサーバにわたりミラーされる構成において特に課題を包含する可能性がある。ここでは、ミラーしたドライブが（対応のサーバを再起動するような）少量の時間だけ記憶システムから欠如するような場合でさえも、サーバが再起動される度に完全なダーティ・キャッシュをフラッシュする必要がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
[0003]  第１の記憶デバイスおよび第２の記憶デバイスを含む冗長セカンダリ記憶キャッシュを再構築するシステムおよび技術について説明する。第１の記憶キャッシュ・デバイスによって格納され、プライマリ記憶デバイスの領域と関連付けられる情報の一部についての有効性を示すメタデータ・エントリが受け取られる。プライマリ記憶デバイスの領域に関連付けられる情報の一部についての有効性が確立されるときに、第１の記憶キャッシュ・デバイスによって格納された情報の一部に関連付けられたプライマリ記憶デバイスの領域に対し、領域ロックが要求される。次いで、情報の一部とプライマリ記憶デバイスの領域に関連付けられた対応するメタデータ・エントリとを、第１記憶キャッシュ・デバイスから第２の記憶キャッシュ・デバイスにコピーして、該第２記憶キャッシュ・デバイスを再構築する。一実施形態では、ウォーターマークが維持されて再構築が行われるレベルを満たす。ウォーターマークを上回るＩＯはキャッシュされ、あたかも冗長オンライン・セカンダリ・キャッシュを適合するかのように扱われる。
【０００４】
[0004]  本摘要は、発明の詳細な説明で更に後述する簡略化された形態の概念の選択を導出ために設けたものである。本要約は、鍵となる特徴や特許請求する必須の特徴を特定するのを意図するのではなく、また、特許請求した主題の範囲を決定する際の補助として用いるのを意図するものではない。
【０００５】
[0005]  本開示の他の実施形態についてこれより明らかになろう。
【図面の簡単な説明】
【０００６】
【図１】図１は、プライマリ・データ記憶装置をクライアントに提供するシステムを例示するブロック図であり、本システムは、例示の開示する実施形態にしたがって冗長セカンダリ記憶キャッシュを実装する。
【図２】図２は、例示の開示する実施形態による、図１に示したシステムのような冗長セカンダリ記憶キャッシュを実装するデータ記憶システムについての単一のコントローラを例示したブロック図である。
【図３】図３は、図１に示したシステムのような冗長セカンダリ記憶キャッシュを実装するデータ記憶システムについての２つのコントローラを例示したブロック図であり、例示の開示する実施形態による、第１のコントローラが第２のコントローラに接続されライト・バック・データのミラーリングを実装する。
【図４】図４は、例示の開示する実施形態による、プライマリ・データ記憶装置をクライアントに設けるシステムのセカンダリ記憶キャッシュを再構築する方法について示すフロー図である。
【発明を実施するための形態】
【０００７】
[0010]  図１から３を全般的に参照して、システム１００について説明する。システム１００は、記憶デバイス（例えば、プライマリ記憶装置１０４）に接続される１つ以上の情報処理システム・デバイス（例えば、サーバ１０２）を含む。本開示の実施形態では、プライマリ記憶装置１０４は、１つ以上の記憶デバイスを含む。当該記憶デバイスは、次のものを含むが必ずしもこれに限定されない。即ち、独立したディスク冗長アレイ（ＲＡＩＤ）のサブシステム・デバイス１０６、コンパクト・ディスク（ＣＤ）タワー・デバイス１０８、テープ・ライブラリ装置１１０等である。しかしながら、これらの記憶デバイスは、例示の方法で提供するに過ぎず、本開示を限定するために意図したものではない。つまり、他の記憶デバイスは、デジタル多用途ディスク（ＤＶＤ）ローダーおよびタワー・デバイス等のようなシステム１００で用いることができる。
【０００８】
[0011]  実施形態では、１つ以上のサーバ１０２は、記憶領域ネットワーク（ＳＡＮ）（例えば、シリアル・アタッチドＳＣＳＩ（ＳＡＳ）ネットワーク、ファイバ・チャネル・ネットワーク等）のようなネットワーク１１２を介してプライマリ記憶装置１０４に接続される。例えば、サーバ１０２は、１つ以上のハブ、ブリッジ、スイッチ等を介してプライマリ記憶装置１０４に接続される。開示する実施形態では、システム１００は、プライマリ記憶装置１０４が１つ以上のクライアント１１４に対しブロック・レベルでのデータ記憶を提供するように構成される。例えば、１つ以上のクライアント１１４は、ローカル・エリア・ネットワーク（ＬＡＮ）（例えばイーサネット（登録商標）・ネットワーク）のようなネットワーク１１６を介してサーバ１０２に接続される。また、サーバ１０２は、プライマリ記憶装置１０４に含まれる記憶デバイスがデータ記憶のためにクライアント１１４によって使用されるように構成される。
【０００９】
[0012]  １つ以上の サーバ１０２は、セカンダリ記憶キャッシュ１１８を含み、および／または結合される。セカンダリ記憶キャッシュ１１８は、ローカル・キャッシュをサーバ１０２に提供するように構成される。このように、セカンダリ記憶装置キャッシュ１１８は、（全てのデータをサーバ１０２から例えばスイッチ構造によりプライマリ記憶装置１０４に向け、次いで、サーバ１０２に向けるのではなく）プライマリ記憶装置１０４から受け取ったおよび／またはプライマリ記憶装置１０４に向けられたデータをキャッシュすることによって、レイテンシを減少させ、および／または利用可能な単位秒あたりの入力／出力動作（ＩＯＰＳ）の数を増大させる。例えば、プライマリ記憶装置１０４にライト・バックされることになるデータは、データを収容するキャッシュ・ブロックが修正され、および／または新規のコンテンツで置換されることになる時までは、セカンダリ記憶キャッシュ１１８内に収集され、その時になったら、データはプライマリ記憶装置１０４にライト・バック(write back)される。
【００１０】
[0013]  セカンダリ記憶キャッシュ１１８は、１つ以上のデータ記憶デバイスを含む。例えば、セカンダリ記憶キャッシュ１１８は、ドライブ１２０、およびもしかしたらドライブ１２２、ドライブ１２４等のような１つ以上の追加のドライブを含む。開示する実施形態では、１つ以上のドライブ１２０，１２２および／または１２４は、ソリッド・ステート・ドライブ（ＳＳＤ）のような記憶デバイスを含む。しかしながら、ＳＳＤは一例として設けるに過ぎず、本開示における限定を意味するのではない。つまり、他の実施形態では、１つ以上のドライブ１２０，１２２および／または１２４は、他のデータ記憶デバイスとすることができる。セカンダリ記憶キャッシュ１１８は、冗長データ記憶を提供する。例えば、セカンダリ記憶キャッシュ１１８は、データ・ミラーリングを使用し、および／または、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６等を含むがこれに限定されない技術を保護するように構成される。このようにして、ダーティなライト・バック・データ（プライマリ記憶装置１０４に対しまだコミットしていないライト・バック・データ）は、セカンダリ記憶キャッシュ１１８内において保護される。
【００１１】
[0014]  実施形態の中には、ドライブ１２０に格納されるデータは、ドライブ１２２（そして、もしかしたらドライブ１２４等）に複製され、データ冗長性を提供するものもある。これらの実施形態では、セカンダリ記憶キャッシュ１１８は、サーバ・レベルでドライブ故障に対する保護を提供する。しかしながら、この例は本開示を限定するのを意味しない。他の実施態様では、データは、複数のサーバ１０２にわたりミラーされる。例えば、２つ以上のサーバ１０２は、各サーバ１０２と関連付けられた各セカンダリ記憶キャッシュ１１８と共に含まれるドライブ１２０を使用するデータをミラーすることができる。このようにして、１つのサーバが故障した場合には、データを他のサーバから回復させることができる。加えて、データの冗長性は、１つサーバ・レベルおよび複数のサーバ全体の両方において提供することができる。例えば、２つ以上のサーバ１０２は、各サーバ１０２に関連付けられた各セカンダリ記憶キャッシュ１１８と共に含まれるドライブ１２０、ドライブ１２２およびもしかしたら追加のドライブ（例えばドライブ１２４）を用いてデータをミラーすることができる。この例では、ドライブ１２０に格納されるデータはサーバ・レベルでドライブ１２２（そして、もしかしたらドライブ１２４等）に複製され、データはまた、複数のサーバ１０２と関連付けられた複数のセカンダリ記憶キャッシュ１１８にわたりミラーされる。つまり、セカンダリ記憶キャッシュ１１８の記憶デバイスに関して本明細書で用いる「冗長」という言葉は、同一のサーバとは別の記憶デバイスとして関連付けられた記憶デバイスや、異なるサーバと別のデバイスとして関連付けられた記憶デバイス等を指すことになるということが理解されるであろう。
【００１２】
[0015]  これより図２および３を参照する。システム１００のためのコントローラ１２６は、ＩＯおよびキャッシュ・モジュール１２８を含む。ＩＯおよびキャッシュ・モジュール１２８は、ローカル・リード／ライト・スルー（WT）キャッシュ１３０に通信可能に結合される。リード／ライト・スルー・キャッシュ１３０は、（例えば、書き込み動作が読み取りキャッシュにすでにキャッシュされている領域に向けられるときに）プライマリ記憶装置１０４と共に新規のデータで更新されるように構成される。ＩＯおよびキャッシュ・モジュール１２８はまた、高可用性サービス・モジュール１３２にも通信可能に結合される。ＩＯおよびキャッシュ・モジュール１２８は、メッセージおよびローカル・ライト・バック・キャッシュ・データを、高可用性サービス・モジュール１３２との間で送信および受信する。開示する実施形態では、高可用性サービス・モジュール１３２は、コントローラ１２６のためにライト・バック・キャッシュ・データのローカル・コピーを用いて、ローカルのライト・バック・キャッシュ・データを格納および抽出する。コントローラ１２６は、冗長コントローラ１２６に通信可能に結合される。冗長コントローラ１２６はまた、ライト・バック・キャッシュ・データのローカル・コピーを用いて、ローカルのライト・バック・キャッシュ・データを格納および抽出するように構成される。例えば、１つのコントローラ１２６における高可用性サービス・モジュール１３２は、シリアル・アタッチド・スモール・コンピュータ・システム（ＳＣＳＩ）のリンクを介して、他のコントローラ１２６の高可用性サービス・モジュール１３２に接続される。この構成では、２つのコントローラ１２６が相互にダーティなライト・バック・データをミラーし、その結果、一方の故障により他方のデータが利用可能となる結果となる。例えば、（図３に示したように）一方のコントローラ１２６がミラーしたライト・バック・キャッシュ・データを他方のコントローラ１２６のために格納および抽出し、当該他方のコントローラ１２６は、最初のコントローラのためにミラーしたライト・バック・キャッシュ・データを格納および抽出する。
【００１３】
[0016]  コントローラ１２６は、そのコンポーネントの一部もしくは全部を含み、コンピュータの制御下で動作することができる。例えば、プロセッサ１３４は、ソフトウェア、ファームウェア、ハードウェア（例えば、固定論理回路）、手動処理、またはこれらの組み合わせを使用して本願明細書で説明するシステム１００のコンポーネントおよび機能を制御するために、コントローラ１２６と共に具備することができる。本明細書で用いられる「コントローラ」、「機能」、「サービス」および「論理」なる用語は、システム１００を制御することに関連して、ソフトウェア、ファームウェアもしくはハードウェア、またはソフトウェア、ファームウェアもしくはハードウェアの組み合わせを全般的に表す。ソフトウェアによる実装の場合、モジュール、機能またはロジックは、プロセッサ（１または複数のＣＰＵ）上で実施されるときに特定のタスクを実行するプログラム・コード部を表す。プログラム・コードは、１つ以上のコンピュータ可読メモリ・デバイス（例えば、内部メモリおよび／または１つ以上の有形媒体(tangible media)）等に格納することができる。本明細書において説明する構造、機能、手法および技術は、様々なプロセッサを有する様々な商用計算プラットフォーム上で実装することができる。
【００１４】
[0017]  プロセッサ１３４は、処理機能をコントローラ１２６に提供し、任意の数のプロセッサ、マイクロ・コントローラまたは他の演算処理システムを含むことができる。また、システム１００によってアクセスまたは生成されるデータおよび他の情報を格納するために外部メモリに常駐することができる。プロセッサ１３４は、本明細書において説明する技術を実施する１つ以上のソフトウェア・プログラムを実施することができる。プロセッサ１３４は、当該プロセッサを形成し、内部に処理機構を採用する材料には限定されず、よって、半導体（１または複数）および／またはトランジスタ（例えば電子集積回路（ＩＣ）コンポーネント）等を通じて実装することができる。
【００１５】
[0018]  コントローラ１２６は、通信インタフェース１３６を含む。通信インタフェース１３６は、システム１００のコンポーネントと通信するように動作可能に構成される。例えば、通信インタフェース１３６はシステム１００内に記憶するためにデータを送信し、システム１００内の記憶装置からデータを抽出する等を行うように構成することができる。通信インタフェース１３６はまた、プロセッサ１３４と通信可能に結合されて、（例えば、システム１００と通信可能に結合されたデバイスから受け取った入力をプロセッサ１３４に伝達するために）システム１００のコンポーネントとプロセッサ１３４間でデータを転送するのを促進する。なお、通信インタフェース１３６は、システム１００のコンポーネントとして説明されると共に、通信インタフェース１３６の１つ以上のコンポーネントは、有線および／または無線の接続を介してシステム１００に通信可能に結合される外部コンポーネントとして実装することができる点に留意すべきである。
【００１６】
[0019]  通信インタフェース１３６および／またはプロセッサ１３４は、次のものを含み、これらには限定されない様々な異なるネットワークと通信するように構成することができる。即ち、３Ｇセルラ・ネットワーク、４Ｇセルラ・ネットワーク、または移動体通信（ＧＳＭ（登録商標））ネットワーク用グローバル・システムのような広域セルラ電話ネットワーク、Ｗｉｆｉネットワークのような無線コンピュータ通信ネットワーク（例えば、ＩＥＥＥ８０２．１１ネットワーク規格を用いて動作する無線ローカル・エリア・ネットアーク（ＷＬＡＮ）、インターネット(internet)、インターネット(the Internet)、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、個人エリア・ネットワーク（ＰＡＮ）（例えば、ＩＥＥＥ８０２．１５ネットワーク規格を用いて動作する無線パーソナル・エリア・ネットワーク（ＷＰＡＮ）、公共電話網、エクストラネット、イントラネット等である。しかしながら、このリストは例示に過ぎず、本開示を限定することを意味するのではない。更に、通信インタフェース１３６は、異なるアクセス・ポイントにわたる単一のネットワークまたは複数のネットワークと通信するように構成することができる。
【００１７】
[0020]  コントローラ１２６はまた、メモリ１３８を含む。メモリ１３８は、記憶機能を提供する有形のコンピュータ可読記憶媒体の例示であり、ソフトウェア・プログラムおよび／もしくはコード・セグメント、その他プロセッサ１３４に命令するためのデータ、あるいはコントローラ１２６の他のコンポーネントのようなコントローラ１２６の動作に関連付けられる様々なデータを格納して、本明細書に説明する機能を実行する。つまり、メモリ１３８は、コントローラ１２６（そのコンポーネントを含む）を動作させるための命令のプログラム等のようなデータを格納することができる。なお、単一のメモリ１３８について記載したが、多様な種別および組み合わせのメモリ（例えば、有形の、非一時的メモリ）を採用できることに留意すべきである。メモリ１３８は、プロセッサ１３４と共に統合することができるスタンド・アロンなメモリを備えることができ、または両方の組合せとすることもできる。メモリ１３８は次のものを含むがこれに限定されない。即ち、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、フラッシュ・メモリ（例えばセキュア・デジタル（ＳＤ）メモリ・カード、ミニＳＤメモリ・カードおよび／またはマイクロＳＤメモリ・カード）、磁気メモリ、光メモリ、汎用シリアル・バス（ＵＳＢ）メモリ・デバイス、ハードディスク・メモリ、外部メモリ等のような着脱可能および着脱不能なメモリ・コンポーネントである。
【００１８】
[0021]  これより図４を参照する。プライマリ・データ記憶を数多くのクライアントに提供するシステムのためのセカンド記憶キャッシュを再構築するための例示の技術について説明する。図４は、例示の実施形態のプロセス４００を示し、図１から３で図示し上記説明したセカンダリ記憶キャッシュ１１８のようなセカンダリ記憶キャッシュを再構築する。セカンダリ記憶キャッシュ１１８は、例えば、当該セカンダリ記憶キャッシュのドライブが故障し、他のドライブと置き換えられるとき、およびドライブにおいて（例えばサーバ・シャットダウンにより）幾らかの時間キャッシュ動作が欠如しその後戻されたとき等において再構築される。開示する実施形態では、セカンダリ記憶キャッシュ１１８は、入出力がソース・ボリューム上で起動している間に再構築される。更に、再構築動作は、必要とされるときのみ（例えばダーティ・キャッシュ・ライト・バック・データを格納する記憶ボリューム部分についてのみ）データに対して実行される。
【００１９】
[0022]  開示する実施形態では、メタデータは記憶ボリュームに格納される。メタデータは、セカンダリ記憶キャッシュ１１８に格納される情報の有効性を示し、また、セカンダリ記憶キャッシュ１１８内の情報に関連付けられたソース・ボリューム（例えばソースＶＤ）および対応する論理ブロック・アドレス（ＬＢＡ）をも含む。この情報は、例えば、ソースＶＤに対し領域ロックを開始するために用いられる。開示する実施形態では、メタデータはまた、次のものも含むが必ずしもこれらに限定されない。即ち、記憶装置の領域にアクセスされる回数や、キャッシュの種別（例えば、ライト・キャッシュ、リード・キャッシュ／ＷＴキャッシュ等）である。実施形態の中には、メタデータがキャッシュされたデータとは分離して格納され（例えば、別々の位置で）、メタデータの配置が予め決められている（例えば、経時的なもの）ものもある。例えば、第１のウインドウについてのメタデータは、メタデータ配置内の第１のメタデータ・エントリである。セカンダリ記憶キャッシュのメタデータは、有効な記憶ボリューム内のデータについて、およびデータがどのソース・モジュール（１または複数）と関連付けられているかについての情報を含む。再構築の動作はメタデータを用い、その結果、記憶ボリュームへの領域ロックを回避できる。実施形態の中には、メタデータをまた用いて、セカンダリ記憶キャッシュについて選択的な再構築を実行する、および／または存在する有効データに基づき再構築動作を加速させるものもある。
【００２０】
[0023]  図示したプロセス４００において、入出力が行われ、セカンダリ記憶キャッシュからのメタデータがメモリ内に読み取られ、次いで、入出力が再開される（ブロック４１０）。例えば、図１から３に関し、グローバルなコマンド・ブロックとすることによって、全ての入出力は１つ以上の記憶ボリューム（例えば、ドライブ１２０，１２２および／または１２４）に対して保たれる。メタデータは、メモリ１３８内に読み込まれる。実施形態の中には、プロセッサ１３４は、メモリ１３８内のデータを記憶ボリューム内のデータへの変更と同期させ、および／または持続的なメタデータを用いてメモリ１３８を更新させるようにプログラムする制御部を含むものもある。
【００２１】
[0024]  ドライブ１２０，１２２および／または１２４のための入出力動作が、次いで、グローバル・コマンド・ブロックを解除することによって再開される。次に、メタデータ・エントリが抽出される（判断ブロック４２０）。図１から３の参照を継続すると、メモリ１３８に格納される各メタデータ・エントリは、経時的にアクセスされることができる。メタデータ・エントリが見つからない場合は、プロセス４００は、セカンダリ記憶キャッシュの再構築を完了させるように処理する。メタデータ・エントリが見つかる場合、プロセス４００は、メタデータ・エントリの有効性の検査に続く（判定ブロック４３０）。メタデータ・エントリが有効でない場合、プロセス４００は、再構築ウォーターマークのセット／インクリメントに進む（ブロック４７０）。例えば、関連付けられた記憶ボリュームの領域がスキップされる。メタデータ・エントリが有効である場合、プロセス４００はメタデータに基づいてソース・ボリュームへの領域ロックを要求する（ブロック４４０）。例えば、プロセス４００は、メタデータからのソース・ボリュームおよび対応する論理ブロック・アドレス（ＬＢＡ）を決定して、メタデータ・エントリに基づいてソース・ボリュームへの領域ロックを要求する。
【００２２】
[0025]  次いで、メタデータの検査を行う（決定ブロック４５０）。メタデータが変更された場合、プロセス４００は領域ロックを解除して（ブロック４５２）、次いでメタデータ・エントリの有効性を検査する（決定ブロック４３０）。メタデータが変更されなかった場合、プロセス４００はデータを再構築し、次いでメタデータを更新する（ブロック４６０）。例えば、図１〜３に関し、データはセカンダリ記憶キャッシュ１１８のミラー・アーム上で再構築され、次いで当該ミラー・アームのメタデータが更新される。次に、再構築ウォーターマークがセット／インクリメントされて、領域ロックは解除される（ブロック４７０）。次いで、プロセス４００は、次のメタデータ・エントリを抽出するように進む（決定ブロック４２０）。
【００２３】
[0026]  プロセス４００を実行している間、定期的な入出力の動作をバックグラウンドで実行し続けることができ、また、再構築ウォーターマークを上回る全ての入出力動作に対して記憶ボリュームはオンラインと見なされると共に、再構築ウォーターマークを下回ると記憶ボリュームはデグレードしたと見なされる。このように、再構築は、メタデータ記録に基づきメタデータ記録に対して実行される。特定のメタデータ記録が処理されている間、（メタデータ・レベルおよびＬＢＡレベルの両方で）その特定記録が予定されている任意の入出力を保持するソースＶＤへのロックが行われる。キャッシュされたデータに関連付けられるメタデータに基づき再構築動作を実行することにより、領域ロックは、（キャッシュ・ボリュームそれ自体に対する領域ロックを行うのではなく）データが所属する論理ボリュームに対して行うことができる。更に、冗長ダーティ・ライトバック・キャッシュ・データを有する記憶ボリュームの一部にみ対し、選択的な再構築が実行される。これはＩＯパフォーマンスを増大させ、且つセカンダリ記憶キャッシュについての再構築の時間を削減する（例えば、特に、再構築動作が複数サーバにわたって実行される場合）。
【００２４】
[0027]  通常、本明細書において説明した如何なる機能もが、ハードウェア（例えば、集積回路のような固定論理回路）、ソフトウェア、ファームウェア、手動処理またはそれらの組み合わせを用いて実装することができる。つまり、上記の開示で検討したブロックは、通常、ハードウェア（例えば、集積回路のような固定論理回路）、ソフトウェア、ファームウェアまたはそれらの組み合わせを表す。集積回路の形態を明示する本開示の実施形態では、上記の開示で検討した様々なブロックは、他の機能と共に集積回路として実装することができる。このような集積回路は、所与のブロック、システムもしくは回路の機能の全て、またはブロック、システムもしくは回路の機能の一部を含むことができる。更に、ブロック、システムまたは回路の要素は、複数の集積回路にわたり実装することができる。このような集積回路は、必ずしも限定するものではないが、次のものを含む様々な集積回路を備える。即ち、システム・オン・チップ（ＳｏＣ）、モノリシック集積回路、フリップ・チップ集積回路、マルチチップ・モジュール集積回路、および／または混合信号集積回路である。ソフトウェアの形態で明示する本開示の実施形態では、上記の開示で検討した様々なブロックは、プロセッサ上で実行するときに、指定されたタスクを実行する実施可能命令（例えば、プログラムコード）を表す。これらの実施可能命令は、１つ以上の有形のコンピュータ可読媒体に格納することができる。このような実施形態の中には、全システム、ブロックまたは回路は、そのソフトウェアまたはファームウェア装置を用いて実施することができる。実施形態の中には、所与のシステム、ブロックまたは回路の一部分は、ソフトウェアまたはファームウェアで実装することができ、その一方で他のパーツはハードウェアに実装されるものもある。
【００２５】
[0028]  開示した実施形態について構造上の特徴および／または方法論的な行為に特有の言語で説明してきたが、添付した特許請求の範囲に規定される主題は、説明した特定の実施形態に限定されないことが理解されるべきである。さまざまな構成について検討しているが、装置、システム、サブシステム、コンポーネント等は本開示の教示を逸脱しない範囲において様々な方法で構築することができる。むしろ、特定の特徴および行為は、特許請求の範囲を実行することの実施形態として開示される。
【図１】
2014154154.tif 000003
【図２】
2014154154.tif 000004
【図３】
2014154154.tif 000005
【図４】
2014154154.tif 000006
【外国語明細書】
2014154154000001.pdf