(57)【要約】【課題】ＳＡＮレベルにおける代替キャッシュ方式を提供する。【解決手段】本発明に係る方法は、ＳＡＮレベルにおいて代替キャッシュ方式を提供する方法であって、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、１回のアクセスよりも大きなしきい値を超えると判断すること（２９２）と、ストレージデバイスに補助キャッシュを提供するキャッシュ資源にデータ部分のコピーを関連付けることであって、データ部分への前記アクセス回数が前記しきい値を超える時に、補助キャッシュ資源はＳＡＮレベルにあること（２９４）と、データ部分へのその後のアクセスについて、データ部分にアクセスする代わりに、データ部分の前記コピーにアクセスすること（２９６）とを含む。【選択図】図２
2007537548.tif 000002
【特許請求の範囲】
【請求項１】
ストレージエリアネットワークレベルにおいて代替キャッシュ方式（alternative caching scheme）を提供する方法であって、
ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、１回のアクセスよりも大きなしきい値を超えると判断すること（２９２）と、
前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記データ部分のコピーを関連付けること（２９４）であって、前記データ部分への前記アクセス回数が前記しきい値を超える時に、前記補助キャッシュ資源は、前記ストレージエリアネットワーク（ＳＡＮ）レベルにあること（２９４）と、
前記データ部分へのその後のアクセスについて、前記データ部分にアクセスする代わりに、前記データ部分の前記コピーにアクセスすること（２９６）と
を含む方法。
【請求項２】
前記データ部分のサイズは、１次キャッシュに関連付けられたキャッシュラインのサイズよりも十分に大きい
請求項１に記載の方法。
【請求項３】
前記データ部分のサイズは、前記ストレージデバイスが前記データ部分への順次アクセスを検出するのに十分大きなものである
請求項２に記載の方法。
【請求項４】
前記データ部分のサイズは、前記ストレージデバイスに関連付けられたデータを妨げることなく、前記補助キャッシュ資源へ移動させるのに十分小さなものである
請求項１に記載の方法。
【請求項５】
第２のデータ部分が、前記ストレージデバイスにおいて順次アクセスされていると判断することと、
前記第２のデータ部分が順次アクセスされているので、前記第２のデータ部分のコピーを前記補助キャッシュ資源に関連付けないことと
をさらに含む請求項１に記載の方法。
【請求項６】
前記第２のデータ部分の前記コピーを前記補助キャッシュ資源に関連付けないことは、
前記第２のデータ部分への順次アクセスを１回のアクセスとしてカウントすること
をさらに含む請求項５に記載の方法。
【請求項７】
前記しきい値は、前記データ部分の前記コピーを前記補助キャッシュ資源に関連付けるコストに少なくとも部分的に基づいた動的なしきい値であり、前記コストは、別のデータ部分のコピーを前記補助キャッシュ資源に関連付け続けることを可能にする利益に対して重み付けされる
請求項１に記載の方法。
【請求項８】
前記しきい値は、所定のアクセス回数に基づいた静的なしきい値であり、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記データ部分のコピーを関連付けることは、
前記データ部分への前記アクセス回数が前記所定のアクセス回数を超えた時に、前記データ部分の前記コピーを前記補助キャッシュ資源に関連付けること
をさらに含む請求項１に記載の方法。
【請求項９】
ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するシステムであって、前記システムは、
ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、１回のアクセスよりも大きなしきい値を超えると判断する（２９２）ためのキャッシュ管理モジュールを備え、
前記キャッシュ管理モジュールは、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記データ部分のコピーを関連付けること（２９４）を引き起こし、前記データ部分への前記アクセス回数が前記しきい値を超える時に、前記補助キャッシュ資源は、前記ストレージエリアネットワーク（ＳＡＮ）レベルにあり、
前記キャッシュ管理モジュールは、前記データ部分へのその後のアクセスについて、前記データ部分にアクセスする代わりに、前記データ部分の前記コピーにアクセスすること（２９６）を引き起こすシステム。
【請求項１０】
コンピュータシステムに、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供する方法を実行させるための、内部で具現化されるコンピュータ可読プログラムコードを有する、コンピュータ使用可能媒体であって、前記方法は、
ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、１回のアクセスよりも大きなしきい値を超えると判断すること（２９２）、
前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記データ部分のコピーを関連付けること（２９４）であって、前記データ部分への前記アクセス回数が前記しきい値を超える時に、前記補助キャッシュ資源は、前記ストレージエリアネットワーク（ＳＡＮ）レベルにある、関連付けること（２９４）、及び
前記データ部分へのその後のアクセスについて、前記データ部分にアクセスする代わりに、前記データ部分の前記コピーにアクセスすること（２９６）
を含むコンピュータ使用可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、データをキャッシュすることに関する。より詳細には、本発明の実施の形態は、ストレージエリアネットワークレベルにおける代替キャッシュ方式（alternative caching scheme）を、ストレージデバイスの１次キャッシュにより提供されたキャッシュ方式に提供することに関する。
【背景技術】
【０００２】
コンピュータの使用がより広く拡大してくるにつれて、大組織及び／又は大企業は、多種多様なプラットフォーム及び／又はモデルからコンピュータを取得するようになり、これらのコンピュータを互いにネットワーク接続するようになった。多種多様なプラットフォーム及び／又はモデルからのコンピュータは、異種コンピュータとしても知られている。ストレージエリアネットワーク（ＳＡＮ）は、共有されたストレージデバイスの高速ネットワークを提供することにより異種コンピュータにストレージを提供するために開発されたものである。ＳＡＮアーキテクチャは、通常、すべてのストレージデバイスを、大組織及び／又は大企業に関連したコンピュータ等の大規模ネットワークのコンピュータの多くに対し利用可能にする。この場合、ＳＡＮアーキテクチャは、たとえば、ストレージデバイスをプールして、ストレージデバイスの管理を容易にすることができる。
【０００３】
コンピュータとストレージデバイスとの間でデータにアクセスするためのＩ／Ｏレートを増加させるさまざまな方法が開発されてきた。高い頻度で、ストレージデバイスは、ストレージデバイスからのデータの読み出し及びストレージデバイスへのデータの書き込みに、異なるレベルのアクセス待ち時間、入出力（Ｉ／Ｏ）レートとして表されるスループット、及び／又は転送速度を提供する。たとえば、高速なアクセス待ち時間、スループット、ＩＯレート、及び／又は転送速度を提供するキャッシュ、システムメモリ、ソリッドステートデバイス（ＳＳＤ）等のストレージデバイス（以下、「高速ストレージデバイス」という）は、データが、コンピュータで実行されているアプリケーションと、たとえば、低速なアクセス待ち時間、スループット、ＩＯレート、及び／又は転送速度を提供するストレージデバイス（以下「低速ストレージデバイス」という）との間で通信されている時に、そのデータを永続的又は一時的に記憶するのに使用することができる。アプリケーションがデータの書き込みを要求すると、そのデータは、最初に高速ストレージデバイスに記憶されて、後に、低速ストレージデバイスに記憶されることができる。データが高速ストレージデバイスに書き込まれると、アプリケーションは、データが記憶されており、したがって、データが低速ストレージデバイスに実際に記憶されるまで待つ必要がないとの通知を受ける。
【０００４】
これらの方法の多くは、Ｉ／Ｏレートを増加させる目的で、クライアント等のコンピュータとストレージデバイスとの間で、ＳＡＮを介したデータの通信を高速化するのに使用されてきた。
【特許文献１】欧州特許出願公開第０６０４０１５号
【特許文献２】欧州特許出願公開第０５０９６７６号
【特許文献３】米国特許出願公開第２００３／１９１９０１号
【特許文献４】米国特許第６２５３２８９号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ストレージエリアネットワークレベルにおける代替キャッシュ方式を提供する。
【課題を解決するための手段】
【０００６】
［発明の開示］
本発明の実施の形態は、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するための方法及びシステムに関し、説明される。一実施の形態では、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、１回のアクセスよりも大きなしきい値を超えると判断される。データ部分のコピーが、ストレージデバイスの補助キャッシュを提供するキャッシュ資源に関連付けられる。この補助キャッシュ資源は、ストレージエリアネットワークレベルにある。データ部分のコピーは、その後のアクセスについて、データ部分の代わりにアクセスされる。
【０００７】
添付図面は、本明細書に援用されて、本明細書の一部を成す。添付図面は、本発明の実施の形態を示し、説明と共に、本発明の原理を説明する機能を果たす。
【０００８】
この説明で参照される図面は、特に言及がある場合を除き、一律の縮尺で描かれているものと理解されるべきではない。
【発明を実施するための最良の形態】
【０００９】
次に、本発明のさまざまな実施の形態を詳細に参照することにする。さまざまな実施の形態の例が、添付図面に示されている。本発明をこれらの実施の形態と共に説明するが、実施の形態は、本発明をこれらの実施の形態に限定することを目的とするものではないことが理解されよう。逆に、本発明は、代替物、変更物、及び均等物を網羅することを目的としている。これらの代替物、変更物、及び均等物は、添付の特許請求の範囲によって規定された本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が述べられる。それ以外の場合には、本発明の態様を不必要に不明確にしないように、既知の方法、手順、コンポーネント、及び回路は詳細に説明されていない。
【００１０】
［ストレージネットワークレベルにおける代替キャッシュ方式の提供の概要］
図１は、一実施の形態による、ストレージネットワークレベルにおいて代替キャッシュ方式を提供するためのシステムのブロック図である。図１のブロックは、図示したものとは異なって配置することができ、追加された機能をインプリメントすることもできるし、本明細書で説明されたものよりも少ない機能をインプリメントすることもできる。
【００１１】
図１に示すように、クライアント１１２、１１４、１１８等のコンピュータで実行されているアプリケーションは、ＳＡＮ１９０を介して、ストレージデバイス１６０、１７０へ、及び／又はストレージデバイス１６０、１７０からデータを通信する。クライアント１１２、１１４、１１８に関連付けられたデータ１１３、１１５、１１６は、ストレージデバイス１６０、１７０に記憶することができ、その結果、データ１６４、１７４になる。さらに、記憶されたデータ１６４、１７４は、１次キャッシュ１６２、１７２にそれぞれキャッシュすることもできる。ストレージデバイス１６０、１７０は、一実施の形態によれば、独立ディスク冗長アレイ（ＲＡＩＤ）とすることができる。補助キャッシュ資源２５０は、一実施の形態によれば、（たとえば、「ＳＡＮレベルにおける」）ＳＡＮ１９０の一部である。１次キャッシュ１６２、１７２は、一実施の形態によれば、アレイキャッシュとすることができる。図１は、さらに、仮想化機器（virtualization appliance）２２０も示している。この仮想化機器２２０は、キャッシュ管理モジュール（ＣＭＭ）２２２、代替キャッシュ方式２２３、交換判断装置（replacement determination）２２４、及びメタデータ２３４、２４４を含む。
【００１２】
一実施の形態によれば、仮想化機器２２０は、「インバンド」仮想化機器である。別の実施の形態によれば、仮想化システムは、インバンド仮想化機器とすることもできるし、アウトオブバンド仮想化システムとすることもできる。アウトオブバンド仮想化システムの場合、仮想化機能の制御についてのメタデータは、データトラフィックから分離され、メタデータサーバによって保持される。仮想化機器２２０等のハードウェア、及び、クライアント１１２、１１４、１１８等のコンピュータをＳＡＮ１９０のストレージデバイス１６０、１７０に接続する相互接続１９２は、ＳＡＮファブリックと呼ばれる。
【００１３】
ＳＡＮファブリックは、通常、クライアント１１２、１１４、１１８とＳＡＮ１９０に関連付けられたストレージデバイス１６０、１７０との間の多対多接続を可能にする。相互接続１９２は、一実施の形態によれば、ファイバチャネル（ＦＣ）及び／又はギガビットイーサネット（ＧｉｇＥ）（登録商標）とすることができる。
【００１４】
ＣＭＭ２２２は、一実施の形態によれば、ストレージデバイス１６０、１７０に関連付けられた１次キャッシュ１６２、１７２によって提供されるキャッシュ方式に代替キャッシュ方式２２３を提供する。たとえば、通常、比較的低速のストレージデバイス１６０、１７０に関連付けられたキャッシュ１６２、１７２は、「デマンドベースキャッシュ(demand based caching)」として知られているキャッシュ方式を使用する。このデマンドベースキャッシュでは、データは、常に、データの読み出し又はデータの書き込みのいずれかによって最初にアクセスされる時にキャッシュ１６２、１７２に書き込まれる。たとえば、クライアント１１２のアプリケーションが、ストレージデバイス１６０からデータ１６４の読み出しを初めて要求した場合に、データ１６４は、１次キャッシュ１６２に記憶される。同様に、クライアント１１２のアプリケーションが、データ１１３の書き込みを初めて要求した場合に、ストレージ１６０が、書き込まれるデータ１１３用に選択されていると仮定して、データ１１３は、１次キャッシュ１６２に記憶される。
【００１５】
「デマンドベースキャッシュ」とは対照的に、一実施の形態によれば、ＣＭＭ２２２は、データへのアクセス回数が、１回のアクセスより大きなしきい値を超えるまで、補助キャッシュ資源２５０にデータのキャッシュを許可しないことによって、代替キャッシュ方式２２３を提供する。たとえば、ＣＭＭ２２２は、データ部分Ａ等、ストレージデバイス１６０に関連付けられたデータ部分が２回以上アクセスされていると判断することができる。ＣＭＭ２２２は、データ部分２６０を補助キャッシュ資源２５０へ「移動」させることができ、その結果、データ部分のコピー２７０が得られる。たとえば、特定のデータ部分Ａが２回以上アクセスされていた場合に、たとえば、その特定のデータ部分ＡのコピーＡ’を補助キャッシュ資源２５０に関連付けることによって、データ部分Ａを補助キャッシュ資源２５０に「移動」させることができる。別の実施の形態によれば、データ部分Ａへのその後のアクセス要求については、コピーＡ’がデータ部分Ａの代わりにアクセスされる。その際に、クライアント１１２、１１４、１１８で実行されているアプリケーション等のエンティティは、コピーＡ’等のデータ部分のコピー２７０にアクセスする場合に、データ部分Ａ等のデータ部分２６０にアクセスする場合よりも高速なアクセス時間及び／又は大きなＩ／Ｏレートを経験することができる。簡単にするために、本明細書の説明は、データ部分２６０及び／又はデータ部分のコピー２７０にアクセスすることに言及するが、データ部分２６０及び／又はデータ部分のコピー２７０のどのサブセットにもアクセスすることができる。
【００１６】
しきい値は、別の実施の形態によれば、静的とすることができる。たとえば、しきい値は、３等の所定のアクセス回数に静的に設定され、その後、決して変更されない。データ部分Ａ等の特定のデータ部分２６０が３回アクセスされると、そのデータ部分Ａを補助キャッシュ資源２５０へ移動させることができる。また、データ部分Ｂ等の別のデータ部分２６０が３回アクセスされると、データ部分Ｂを移動させることができる。
【００１７】
しきい値は、さらに別の実施の形態によれば、時間と共に変化する状況に適合するように変更される動的なしきい値とすることができる。たとえば、より詳細に説明する一実施の形態によれば、しきい値は、コスト／利益比とすることができ、データ部分２６０を移動させるコスト対データ部分のコピー２７０を補助キャッシュ資源２５０に常駐させたままにする利益等とすることができる。
【００１８】
ストレージデバイス１６０、１７０は、通常、クライアント１１２、１１４、１１８に関連付けられたアプリケーションが、ストレージデバイス１６０、１７０に記憶されたデータ１６４、１７４への順次アクセスを要求した時を検出するためのロジックを含む。たとえば、ストレージデバイス１６０、１７０は、その機械式アクチュエータで読み出さなければならないデータ１６４、１７４を提供できるよりも高速に、そのキャッシュ１６２、１７２に有するデータをアプリケーションに提供することができる。したがって、ストレージデバイス１６０、１７０は、クライアント１１２、１１４、１１８で実行されているアプリケーションが、ストレージデバイス１６０、１７０のデータ１６４、１７４に順次アクセスしていることを検出した場合、そのアプリケーションが、データ１６４、１７４に順次アクセスし続けることを予想して、そのデータ１６４、１７４の追加部分を「プリフェッチ」し、プリフェッチされたデータを自身のキャッシュ１６２、１７２に記憶することができる。したがって、ストレージデバイス１６０、１７０は、これらのストレージデバイス１６０、１７０に記憶されたデータ１６４、１７４への順次アクセスに最適な転送速度を提供する。順次アクセスを使用して転送速度を最適化することに関するより多くの情報については、Bates他による米国特許第６２５，３２８９Ｂ１号「Maximizing Sequential Read Streams While Minimizing the Impact on Cache and Other Applications」を参照されたい。この米国特許の内容は、本明細書に援用される。
【００１９】
別の実施の形態によれば、ＣＭＭ２２２は、データ部分２６０がストレージデバイス１６０、１７０において順次アクセスされている場合に、データ部分２６０を補助キャッシュ資源２５０にデータ部分２６０をキャッシュすることを許可しないことによって、代替キャッシュ方式２２３を提供する。たとえば、クライアント１１４で実行されているアプリケーションが、ストレージデバイス１６０に記憶されているデータ部分Ｂにアクセスしている場合、ＣＭＭ２２２は、データ部分Ｂが順次アクセスされていることを検出することができる。この場合、ＣＭＭ２２２は、データ部分Ｂを補助キャッシュ資源２５０にコピーすることを許可することができず、したがって、クライアント１１４で実行されているアプリケーションは、その後のアクセスについて、ストレージデバイス１６０のデータ部分Ｂにアクセスし続けることになる。データ１６４、１７４への順次アクセスについて、ストレージデバイス１６０、１７０によって提供される最適な転送速度が使用され続ける。別の実施の形態によれば、データ部分２６０への順次アクセスは、そのデータ部分のアクセスしきい値の判断の際に、たとえばＣＭＭ２２２により１回のアクセスとしてカウントされ、ストレージデバイス１６０、１７０において順次アクセスされているデータ部分２６０を補助キャッシュ資源２５０にキャッシュすることが回避される。
【００２０】
１次キャッシュ１６２、１７２は、通常、サイズが１キロバイトから１６キロバイトのキャッシュラインにデータ１６４、１７４をキャッシュする。通常、デマンドベースキャッシュに非常に大きなキャッシュラインを使用することは実用的ではない。その理由は、空間的に局所化されたアクセスパターンを含むデータ部分を選択するメカニズムが存在しないからである。したがって、キャッシュ資源の利用率が低くなると同時に、アクセスできないデータを取り扱うことに関連したオーバーヘッドが追加される。さらに別の実施の形態によれば、ＣＭＭ２２２は、キャッシュラインよりも十分に大きなデータ部分２６０をキャッシュすることによって、代替キャッシュ方式２２３を提供する。データ部分２６０を補助キャッシュ資源２５０にキャッシュするために、データ部分２６０は、補助キャッシュ資源２５０に「移動」される。移動は、データ部分Ａ等の特定のデータ部分２６０を選択して、選択されたデータ部分Ａ全体を読み出し、選択されたデータ部分ＡのコピーＡ’を作成し、このコピーＡ’を補助キャッシュ資源２５０へ移動させることによって（たとえば、「関連付ける」ことによって）達成することができる。
【００２１】
一実施の形態によれば、データ部分２６０のサイズは、データ部分２６０が、たとえばクライアント１１２、１１４、１１８で実行されているアプリケーションによって順次アクセスされていることをストレージデバイス１６０、１７０が検出するのに十分大きなものである。本明細書ですでに説明したように、ＲＡＩＤ等のストレージデバイス１６０、１７０は、それらストレージデバイスが、順次アクセスされているデータに最適な転送速度を提供することを可能にするロジックを有することができる。本明細書ですでに説明したように、データ部分２６０の補助キャッシュ資源２５０への移動は、順次アクセスの転送速度を最適化するストレージデバイス１６０、１７０の能力を利用することができる。この例を続けて、コピーＡ’を作成するためにデータ部分Ａが読み出されている時にデータ部分Ａが順次アクセスされていることをストレージデバイス１６０が検出すると、データ部分Ａの移動を最適化することができる。
【００２２】
一実施の形態によれば、データ部分２６０は、キャッシュラインよりも十分に大きい。別の実施の形態によれば、本明細書ですでに説明したように、データ部分２６０は、たとえば、順次アクセスの検出により最適な転送速度から利益を得るために少なくとも１２８Ｋである。
【００２３】
データ部分Ｂ等の特定のデータ部分２６０が、ストレージデバイス１６０から補助キャッシュ資源２５０へ移動されている時、クライアント１１２、１１４、１１８で実行されているアプリケーション等の他のエンティティは、一貫性を保持するために、ストレージデバイス１６０、１７０のデータ１６４、１７４にアクセスすることを許可されない。データ部分２６０が大きいほど、データ部分Ｂを補助キャッシュ資源２５０へ移動させるのに要する時間は長くなり、他のエンティティが待たなければならない時間が長くなる。したがって、データ部分２６０は、ストレージデバイス１６０、１７０がこれらのデータ部分２６０の順次アクセスを検出することを可能にするのに十分大きなものとすることができるが、同時に、移動処理中に、たとえば通常のディスクアクセス時間及び転送時間よりも大きな実質的待ち時間をアプリケーション等のエンティティにもたらすほど大きくすることはできない。一実施の形態によれば、データ部分２６０のサイズは、ストレージデバイス１６０、１７０に関連付けられたデータ１６４、１７４にアクセスするエンティティを妨げることなく、補助キャッシュ資源へ移動できるだけ十分小さい。別の実施の形態によれば、データ部分２６０のサイズは、１０メガバイトよりも小さい。
【００２４】
代替キャッシュ方式２２３を提供することによって、１次キャッシュ１６２、１７２及び補助キャッシュ資源２５０は、異なるタイプのアクセスに使用され、それによって、一実施の形態によれば、１次キャッシュ１６２、１７２及び補助キャッシュ資源２５０は、それぞれが最も適したアクセス動作（behavior）のタイプに利用される。たとえば、通常、機械式アクチュエータ、及び順次アクセスを検出するためのロジックを有するストレージデバイスは、相対的に順次アクセスが得意であるが、相対的にランダムアクセスが得意でない。機械式アクチュエータを有しないストレージデバイスは、相対的にランダムアクセスが得意である。
【００２５】
したがって、一実施の形態によれば、順次アクセスされるデータは、ストレージデバイス１６０、１７０に記憶され、したがって、順次アクセスを検出するためのストレージデバイス１６０、１７０のロジックが利用される。さらに、ランダムにアクセスされるが、補助キャッシュ資源２５０への移動をもたらすのに十分なデータ部分内で十分なアクセスアクティビティを示さなかった比較的少量のデータ（たとえば、キャッシュライン以下のサイズ）は、ＲＡＩＤ等のストレージデバイス１６０、１７０に記憶され、１次キャッシュ１６２、１７２にキャッシュされ、したがって、ランダムアクセス中のストレージデバイス１６０、１７０の性能悪化が最小にされる。
【００２６】
これとは対照的に、そのアクセスパターンで十分なアクティビティを示す比較的大量のデータ（たとえば、ほぼキャッシュラインのサイズから１０メガバイトにわたるデータ部分のコピー２７０）は、一実施の形態によれば、ランダムアクセスを実行する時に補助キャッシュ資源２５０の良好な性能を利用して、ＳＳＤ等の補助キャッシュ資源２５０にキャッシュすることができる。本発明の一実施の形態によれば、補助キャッシュ資源２５０に関連付けられたデータ部分のコピー２７０の内容と１次キャッシュ１６２、１７２にキャッシュされたデータ部分の内容との間の排他性は促進される。
【００２７】
［仮想化］
「仮想化」は、クライアント、アプリケーション、ファイルシステム、ストレージデバイス等の物理エンティティが、他の物理エンティティの物理的特性を意識しない（not be aware of）ように、クライアント１１２、１１４、１１８とストレージデバイス１６０、１７０との間の多対多接続を提供することの一部である。さらに、仮想化は、データへの複数のパスを提供することによって、連続的なデータの可用性を可能にする。一般に、仮想化は、物理エンティティ等の或るエンティティを論理エンティティ等の別のエンティティにリネームすること又は再マッピングすることを伴う。たとえば、ストレージデバイス１６０、１７０等の物理エンティティは、より小さな部分に区画化することもできるし、共にグループ化して論理エンティティにすることもできる。この論理エンティティは、論理ユニットとして知られており、且つ、論理ユニット番号（ＬＵＮ）で識別される。さらに、物理エンティティは、ＬＵＮに従ってグループ化することもできる。また、個々のＬＵＮは、特定のクライアント、アプリケーション、ファイルシステム、ストレージデバイス等の個々のエンティティに関連付けることができる。
【００２８】
ＬＵＮは、仮想化機器を通じて他のＬＵＮにマッピング又は「構成」することができる。たとえば、ＬＵＮ  Ｘを特定のストレージデバイス１６０に割り当てることができ、ＬＵＮ  Ｙをストレージデバイス１７０に割り当てることができる。これらのＬＵＮは、共に構成することもできるし、仮想化機器２２０によって「プール」されて、たとえばＬＵＮ  Ｚといった新たなＬＵＮを作成することもできる。ＬＵＮ  Ｚは、その後、仮想化機器２２０によって、クライアント１１４で実行される特定のアプリケーションへマッピングされることができる。クライアント１１４のアプリケーションからのデータは、次に、ストレージデバイス１６０及び１７０に記憶されることになる。
【００２９】
今日、たとえば、従来の仮想化機器においてＬＵＮを構成することは、システムアドミニストレータによって行われる手動プロセスである。通常、システムアドミニストレータは、アプリケーションの要件の既存の知識又はプロファイリングソフトウェアスイートを使用して、データのストレージアクセスパターンを求める。その後、システムアドミニストレータは、ＬＵＮを適切に構成することができる。たとえば、特定のアプリケーションのデータが高頻度でアクセスされる場合、システムアドミニストレータは、そのアプリケーション用のＬＵＮを、大きなキャッシュを有するストレージデバイスに構成することができる。これとは対照的に、特定のアプリケーションがそのアプリケーションのデータに高頻度でアクセスしない場合、システムアドミニストレータは、そのＬＵＮを、キャッシュを有しないストレージデバイスに構成することができる。
【００３０】
別の例では、特定のアプリケーションは、そのアプリケーションのデータに高頻度でアクセスする場合があるが、そのアプリケーションは、応答時間がタイムクリティカルなアプリケーションでない場合があり、たとえば、高速に完了するＩ／Ｏオペレーションを必要としない場合がある。一方、別のアプリケーションは、自身のデータにアクセスする頻度が低い場合があるが、そのアプリケーションは、タイムクリティカルなアプリケーションである。従来のシステムでは、これらのアプリケーションを管理することは、システムアドミニストレータが、たとえば、タイムクリティカルなアプリケーションのＬＵＮを、高速なアクセス時間をそのデータに提供できる高速ストレージデバイスにマッピングし、且つ、タイムクリティカルでないアプリケーションのＬＵＮをより低速なデバイス又は異なるＲＡＩＤ構成にマッピングする手動プロセスである。
【００３１】
ＳＳＤのコストは絶えず減少しており、ＬＵＮを手動で構成するコストは高価なままである。代替キャッシュ方式２２３は、システムアドミニストレータからの手動による介入を必要とすることなく、ストレージデバイス１６０、１７０からＳＳＤ等の補助キャッシュ資源２５０へ作業を自動的にオフロードする。一実施の形態によれば、代替キャッシュ方式２２３は、選択されたＬＵＮについてのみ有効とすることができる。
【００３２】
仮想化機器２２０は、たとえば、物理エンティティを「プール」することにより、仮想化に加えて、そのシステムメモリ１３２、１４２にデータをキャッシュすることもできる。通常、仮想化機器２２０は、少なくとも２つのサーバ１３０、１４０を有する。仮想化機器２２０は、クライアント１１２、１１４、１１８で実行されているアプリケーションが操作を行うデータのコピーを、２つのサーバ１３０、１４０に関連付けられているシステムメモリ１３２、１４２に保持することができる。同じデータの２つの正確なコピーは、システムメモリ１３２及びシステムメモリ１４２に保持することができる（ミラーリングとしても知られている）。
【００３３】
［メタデータ］
一般に、メタデータは、たとえば、データが記憶されている場所のデータ、及び、データがどのようにアクセスされるかのデータを記述するデータである。ＣＭＭ２２２の機能に関連付けられたメタデータ２３４、２４４は、一実施の形態によれば、データ１６４、１７４のどの部分が補助キャッシュ資源２５０へ移動されたかを記述し、仮想化機器２２０が、ストレージデバイス１６０、１７０又は補助キャッシュ資源２５０のいずれかの適切なロケーションからのデータにアクセスすることを可能にする。また、ＣＭＭ２２２の機能に関連付けられたメタデータ２３４、２４４は、別の実施の形態によれば、データ部分２６０に関連付けられた統計値も記述する。たとえば、この場合、メタデータ２３４、２４４は、特に、データ部分２６０へのアクセス回数がしきい値に達したかどうかを判断するのに使用することができる。メタデータ２３４、２４４は、別の実施の形態によれば、データ部分２６０に関連付けられた統計値に加えて、又は、この統計値の代わりに、データ部分のコピー２７０に関連付けられた統計値を記述することもできる。この場合、メタデータ２３４、２４４は、本明細書で説明するように、コスト／利益比を使用して動的なしきい値を計算するのに使用することができる。
【００３４】
一実施の形態によれば、メタデータ２３４、２４４は、仮想化機器２２０において、メモリ１３２、１４２に保持されてミラーリングされるだけでなく、安定したストレージにも記憶される。メモリ内のコピーは、高速な応答を提供する一方、安定したコピーは、信頼性及び障害後の回復を保証する。たとえば、メタデータ２３４の１つのコピーは、仮想化機器２２０に関連付けられたサーバ１３０の一方のシステムメモリ１３２に記憶することができ、メタデータ２４４の正確なコピーは、仮想化機器２２０に関連付けられた他方のサーバ１４０のシステムメモリ１４２に保持することができる。メタデータ２３４、２４４を「ミラーリング」することによって、一実施の形態によれば、メタデータ２３４、２４４の改善された可用性及び障害回復が提供される。メタデータ２３４、２４４を「ミラーリング」することは、メタデータ２３４、２４４のサイズが管理可能であるので、過度の量のオーバーヘッドを伴うものではない。
【００３５】
［交換判断装置］
交換判断装置２２４は、一実施の形態によれば、より価値のあるデータ部分２６０を優先的に補助キャッシュ資源２５０へ移動させるために、データ部分のどのコピー２７０を補助キャッシュ資源２５０から除去するかを判断するのに使用される。交換判断装置２２４は、別の実施の形態によれば、最長未使用時間（ＬＲＵ）、適応型交換キャッシュ（ＡＲＣ（Adaptive Replacement Cache））、複数のエキスパートを使用した適応型キャッシュ（ＡＣＭＥ（Adaptive Cache using Multiple Experts））等の既存の交換判断を使用することができる。
【００３６】
ＡＣＭＥの説明については、I. Ari他著「ACME: adaptive caching using multiple experts」Proceedings in Informatics, volume 14, pages 143-158, Carleton Scientific, 2002を参照されたい。この文献の内容は本明細書に援用される。ＡＲＣの説明については、N. Megiddo著「ARC: A self-tuning, low overhead replacement cache」Proceedings of the 2003 Conference on File and Storage Technologies (FAST), pages 114-130, San Francisco, CA, Mar. 2003を参照されたい。この文献の内容は本明細書に援用される。
【００３７】
さらに別の実施の形態によれば、交換判断装置２２４は、新しい交換判断を使用することができる。たとえば、交換判断装置２２４は、本明細書で説明したように、コスト／利益比を使用して、データ部分のどのコピー２７０を補助キャッシュ資源２５０から除去するかを判断することができる。さらに別の実施の形態によれば、補助キャッシュ資源２５０は、本明細書ですでに説明したようなコスト／利益比等の新しい交換判断を使用して、既存の交換判断を改良することができる。
【００３８】
［動的なしきい値］
すでに述べたように、しきい値は、別の実施の形態によれば、時間と共に変化する状況に適合するように調整される動的なしきい値とすることができる。さらに、しきい値は、さらに別の実施の形態によれば、動的なコスト／利益比とすることができる。たとえば、動的なしきい値は、一実施の形態によれば、データ部分のコピーを補助キャッシュ資源に関連付けるコストに少なくとも部分的に基づいたものとすることができる。このコストは、別のデータ部分のコピーを補助キャッシュ資源に関連付け続けることを許可する利益に対して重み付けされる。
【００３９】
より具体的には、コストは、移動に使用されるシステム資源の点から、特定のデータ部分Ｃを補助キャッシュ資源２５０へ移動させることに関連付けられる。さらに、データ部分Ｃを補助キャッシュ資源２５０へ移動させるために、データ部分のコピーＡ’又はＤ’のいずれか等、補助キャッシュ資源２５０にすでにあるものを補助キャッシュ資源２５０から除去しなければならない場合がある。したがって、コピーＡ’、Ｄ’が補助キャッシュ資源２５０に留まることを許可されていたとした場合にもたらされた可能性のある利益は、コピーＡ’、Ｄ’が補助キャッシュ資源２５０から除去された場合にはもはや続かないことになる。したがって、一実施の形態によれば、データ部分Ｃを関連付けるコストは、Ａ’やＤ’等の別のデータ部分のコピー２７０が補助キャッシュ資源２５０に存在し続けることを許可する利益に対して重み付けすることができる。さらに、コスト及び利益は、時間と共に、ワークロードの関数として変化し、その結果、しきい値は、これらの変化するコスト及び利益を反映するように調整できる動的なものとなる。
【００４０】
しきい値を動的に調整することによって、利益を最大にできる時に、より多くのデータ部分２６０を移動させることができ、コストが利益に勝る時に、移動されるデータ部分は少なくなる。以下の表１は、一実施の形態による、コスト／利益比に基づいてしきい値を動的に調整するための疑似コードのサンプルを示している。
【００４１】
【表１】
2007537548.tif 000003
【００４２】
表１に示すように、ライン４において、「TotalHits」は、一実施の形態によれば、補助キャッシュ資源２５０に関連付けられたデータ部分のすべてのコピー２７０（Ａ’及びＤ’）に対する「ヒット（「アクセス」としても知られている）」の総数、たとえば累積数である。ＣＭＭ２２２は、さらに別の実施の形態によれば、特定のＬＵＮが有効にされた時に、その特定のＬＵＮの「TotalHits」の累積を開始することができる。「NumberOfMigratedPortionsOfData」は、一実施の形態によれば、補助キャッシュ資源２５０へ「移動」されたすべてのデータ部分２６０の累積カウントとすることができる。データ部分Ａ等の特定のデータ部分２６０は、別の実施の形態によれば、移動され、立ち退かされ、再び移動された場合に、補助キャッシュ資源２５０に２回移動されたものとしてカウントすることができる。
【００４３】
「Metric」は、一実施の形態によれば、ライン４における「NumberOfMigrated PortionsOfData」であるコストによって「TotalHits」である利益を除算することにより計算される。たとえば、図１に示すように、データの２つの一部２６０は、補助キャッシュ資源２５０に移動されており、その結果、データ部分のコピーＡ’及びＤ’となる。Ａ’及びＤ’が５００回アクセスされている、すなわち「ヒット」されている場合、「Metric」は、５００／２となり、これは２５０である。
【００４４】
コードライン６〜９は、データ部分のコピー２７０をキャッシュすることに関連付けられた「Metric」が増加しているのか、それとも減少しているのかを判断するのに使用される。「Metric」が増加している場合、「Threshold」は、より多くのデータ部分２６０を補助キャッシュ資源２５０へ「移動」させるためにライン７で定数だけ減少され、その結果、データ部分のコピー２７０のより多くが、補助キャッシュ資源２５０に関連付けられる。一方、「Metric」が減少している場合、「Threshold」は、データ部分２６０の補助キャッシュ資源２５０への移動を遅くするために、ライン９で定数だけ増加される。より多くのデータ部分２６０を移動させることによって、データ部分のコピー２７０のより多くのものを補助キャッシュ資源２５０から除去することができる。
【００４５】
［動作例］
図２は、本発明の実施の形態による、ストレージネットワークレベルにおいて代替キャッシュ方式を提供するためのフローチャート２００を示している。このフローチャート２００には、具体的なステップが開示されているが、このようなステップは例示である。すなわち、本発明の実施の形態は、他のさまざまなステップ、又はフローチャート２００に列挙したステップを変形したものを実行することにもよく適している。フローチャート２００のステップは、提示したものとは異なる順序で実行できること、及び、フローチャート２００のステップのすべてが実行されるとは限らない場合があることが理解されよう。フローチャート２００によって説明される実施の形態の全部又は一部は、たとえばコンピュータシステム又は同様のデバイスのコンピュータ使用可能媒体に存在するコンピュータ可読で且つコンピュータ実行可能な命令を使用してインプリメントすることができる。
【００４６】
例示の目的で、フローチャート２００の解説は、図１に示す構造を参照することにする。以下の動作例については、特定のアプリケーションＸのＬＵＮが有効にされているものと仮定する。ステップ２９２において、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、一実施の形態によれば、１回のアクセスよりも大きなしきい値を超える。たとえば、クライアント１１４で実行されているアプリケーションＸは、データ１１５をストレージデバイス１６０に書き込むことができる。その結果、データ１１５を書き込むことによって、データ部分Ａをストレージデバイス１６０に記憶することができる。しばらくした後、たとえば、アプリケーションＸは、データ部分Ａを読み出すことが必要な場合がある。通常、この時点で、データ１１５は、クライアント１１４に関連付けられたシステムメモリから除去されていることになり、クライアント１１４にはもはや利用可能ではない。アプリケーションＸは、ストレージデバイス１６０のデータ部分Ａにアクセスすることによって、自身のデータを取得することができる。アプリケーションＸがデータ部分Ａを処理すると、ＣＭＭ２２２は、ストレージデバイス１６０のデータ部分Ａがしきい値を超えてアクセスされたと判断することができる。このしきい値は、この動作例では、１回のアクセスである。
【００４７】
ステップ２９４において、データ部分のコピーが、別の実施の形態によれば、ストレージデバイスの補助キャッシュを提供する補助キャッシュ資源に関連付けられる。たとえば、ＣＭＭ２２２は、コピーＡ’を補助キャッシュ資源２５０に関連付けることによって、データ部分Ａを補助キャッシュ資源２５０へ移動させることができる。
【００４８】
データ部分Ａへのアクセス回数等の統計値は、メタデータ２３４、２４４に記憶することができる。メタデータ２３４、２４４は、データ部分Ａのしきい値を超えた時を判断する際に使用することができ、したがって、そのデータ部分ＡのコピーＡ’が補助キャッシュ資源２５０に関連付けられる時を判断する際に使用することができる。
【００４９】
ステップ２９６において、補助キャッシュ資源のデータ部分のコピーは、さらに別の実施の形態によれば、その後の要求について、ストレージデバイスのデータ部分の代わりにアクセスされる。たとえば、アプリケーションＸの実行が続くと、アプリケーションＸは、ストレージデバイス１６０のデータ部分Ａの代わりに補助キャッシュ資源２５０のコピーＡ’にアクセスすることによって、自身のデータを処理することができる。補助キャッシュ資源２５０とクライアント１１４との間のＩ／Ｏレートは、ストレージデバイス１６０とクライアント１１４との間のＩ／Ｏレートよりも高速であることから、又は、補助キャッシュ資源２５０のクライアント１１４への応答時間は、ストレージデバイス１６０の応答時間よりも高速であることから、アプリケーションＸをより高速に実行することができる。
【００５０】
上記動作例は、データ部分Ａのすべてがデータ１１５からのものであると仮定しているが、他の可能性も存在する。たとえば、データ部分Ａは、データ１１５のサブセット、データ１１３のサブセット、及びデータ１１６のサブセットからのもの等とすることができる。
【００５１】
図３は、本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するストレージデバイスで削減することができるＩ／Ｏ数を示すグラフである。より具体的には、図３は、データ部分にアクセスするストレージ性能協議会（Storage Performance Council）のＳＰＣ−１ベンチマークワークロードを実行中の秒による時間対毎秒のＩ／ＯのディスクＩ／Ｏカウントを示している。例示の目的で、特定のＬＵＮが、図１に示すデータ部分２６０にアクセスしているアプリケーションにのみ関連付けられるものと仮定する。さらに、このＬＵＮが有効にされているものと仮定する。
【００５２】
この例のＳＰＣ−１ベンチマークワークロードは、有効にされたＬＵＮについて定数１２００Ｉ／Ｏ４１０になるように構成されている。ＣＭＭ２２２は、ワークロードが実行されている最初のおよそ１２００秒４０２の間、有効にされない。したがって、ＣＭＭ２２２は、最初の１２００秒４０２の期間中、データ部分２６０に対する初期ディスクＩ／Ｏの統計値を収集していない。最初のおよそ１２００秒４０２の後、ＣＭＭ２２２は有効にされ、データ部分２６０がどれくらいの頻度でアクセスされるかに関する統計値の収集を開始する。この統計値は、メタデータ２３４、２４４に記憶することができる。
【００５３】
ステップ２９２において、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、一実施の形態によれば、１回のアクセスよりも大きなしきい値を超える。データ部分２６０がアクセスされると、ＣＭＭ２２２は、データ部分２６０が一定のしきい値を超えてアクセスされたと判断する。図３のこの動作例を示す目的で、しきい値は、１６回のアクセスの静的なしきい値であり、データ部分２６０のサイズは、１２８キロバイトである。
【００５４】
ステップ２９４において、データ部分のコピーが、別の実施の形態によれば、ストレージデバイスの補助キャッシュを提供する補助キャッシュ資源に関連付けられる。たとえば、しきい値よりも多くアクセスされたデータ部分２６０の補助キャッシュ資源２５０への移動が開始され（参照番号４１８を参照）、その結果、データ部分のコピー２７０は、補助キャッシュ資源２５０に関連付けられる。移動Ｉ／Ｏ４０６は、補助キャッシュ資源２５０へデータ部分２６０を「移動」させるのに使用される。
【００５５】
ステップ２９６において、補助キャッシュ資源のデータ部分のコピーが、さらに別の実施の形態によれば、その後の要求について、ストレージデバイスのデータ部分の代わりにアクセスされる。データ部分のコピー２７０が、補助キャッシュ資源２５０に関連付けられると、データ部分のコピー２７０は、データ部分２６０の代わりにアクセスされ、その結果、ディスクＩ／Ｏは削減する（４０４）。総ディスクＩ／Ｏ４０８は、削減されたディスクＩ／Ｏ４０４に移動Ｉ／Ｏ４０６を加えた総数である。
【００５６】
［結論］
代替キャッシュ方式２２３及び補助キャッシュ資源２５０を提供することによって、本発明の実施の形態は、ストレージデバイス１６０、１７０のワークロードを大幅に削減する。たとえば、図３は、ストレージデバイス１６０、１７０へのＩ／Ｏレートが、Ｉ／Ｏを多く使用するアプリケーションベンチマークにおいて、ＬＵＮについておよそ１２００からおよそ５００へ５８％（毎秒およそ７００Ｉ／Ｏ）削減されたことを示している（４１２）。さらに、移動Ｉ／Ｏ４０６の個数は極めて少なく（およそ１００）、その結果、ストレージデバイス１６０、１７０に対するＩ／Ｏが大幅（たとえば、およそ７００）に削減される（４１２）。
【００５７】
ストレージデバイス１６０、１７０のワークロードを削減することによって、本発明の実施の形態は、ストレージデバイス１６０、１７０に対するＩ／Ｏレートを減少させ、したがって、ストレージデバイス１６０、１７０のキューの長さ及び待ち時間を削減し、その結果、ストレージデバイス１６０、１７０のデータ１６４、１７４のアクセス性能がより良くなる。
【００５８】
本発明の実施の形態を使用してストレージデバイス１６０、１７０のワークロードを削減することによって、主としてストレージデバイス１６０、１７０によって保持されるシーケンシャルＩ／Ｏストリームは、コンテンション（contention）の減少を経験し、順次アクセスがより効率的になる。
【００５９】
静的なしきい値を提供することによって、本発明の実施の形態は、ストレージデバイス１６０、１７０のワークロードを削減する。
【００６０】
動的なしきい値を提供することによって、本発明の実施の形態は、ストレージデバイス１６０、１７０のワークロードを削減するだけでなく、クライアント、アプリケーション等の変化するニーズを検出してそれに適応することもできる。
【００６１】
本発明の実施の形態は、レガシーシステムでインプリメントすることも容易である。たとえば、キャッシュ管理モジュール２２２は、ストレージデバイス１６０、１７０に対する変更もクライアント１１２、１１４、１１８に対する変更も何ら必要とすることなく、仮想化機器２２０に容易にインストールすることができる。
【００６２】
本発明の実施の形態によって、スケーラブルなアーキテクチャが得られる。たとえば、ＳＳＤ等の補助キャッシュ資源２５０を図１に示すようなシステムにより多く追加することが容易である。補助キャッシュ資源２５０は、全体のストレージ容量とは独立に増加させることができる。本発明の実施の形態によって、ＳＳＤ等の個々の補助キャッシュ資源を使用して、ＲＡＩＤ等の比較的低速なストレージデバイスに利用可能なキャッシュ容量を増加させることが可能になる。
【００６３】
代替キャッシュ方式を提供することによって、本発明の実施の形態は、補助キャッシュ資源のセットアップやメンテナンス等のストレージ構成の管理に必要とされる手動による介入の量を削減する。
【００６４】
代替キャッシュ方式２２３を提供することによって、１次キャッシュ１６２、１７２及び補助キャッシュ資源２５０は、一実施の形態によれば、異なるタイプのアクセス動作に使用される。たとえば、補助キャッシュ資源２５０は、主として、比較的大きなデータ部分２６０（たとえば、およそ１２８Ｋから１０メガバイトにわたるデータ部分２６０）内のランダムアクセスに使用することができるのに対して、１次キャッシュ１６２、１７２は、主として、順次アクセスに使用することができ、また、たとえばキャッシュラインのサイズの比較的少量のデータ２６０、及び補助キャッシュ資源２５０への移動に適していない比較的少量のデータ２６０へのランダムアクセスに使用することができる。代替キャッシュ方式２２３を提供することによって、一実施の形態によれば、それぞれが最も適したタイプのアクセス動作について、１次キャッシュ１６２、１７２及び補助キャッシュ資源２５０が利用される。さらに、代替キャッシュ方式２２３を提供することによって、キャッシュ１６２、１７２、ストレージデバイス１６０、１７０、及び仮想化機器２２０等の高価な資源の使用が最適化される。たとえば、代替キャッシュ方式２２３を提供することによって、手動によるシステム管理及び再構成の必要性が削減されると同時に、動的なワークロード状況下において性能が大幅に改善される（図３及び付随した説明を参照）。
【００６５】
［拡張及び代替物］
補助キャッシュ資源２５０についてＳＳＤを使用した本発明のいくつかの実施の形態を説明したが、本発明は、ＳＳＤに限定されるものではない。たとえば、補助キャッシュ資源２５０は、特に、ＲＡＩＤ等のディスクアレイ、バッテリーバックアップされたダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気ランダムアクセスメモリ（ＭＲＡＭ）、フラッシュ、又は、データを一時的且つ／若しくは永続的に記憶するのに使用できるあらゆるタイプのデバイスとすることができる。
【００６６】
ＣＭＭ２２２が仮想化機器２２０等の機器にインプリメントされる一定の実施の形態を説明したが、ＣＭＭ２２２は、機器２２０、ファブリックスイッチ、ストレージデバイス１６０、１７０等のディスクアレイ、又はクライアント１１２、１１４、１１８等の別のコンピュータのいずれにも存在することもできるし、それらを組み合わせたものに存在することもできる。たとえば、ＣＭＭ２２２は、機器２２０の代わりにストレージデバイス１６０に存在することもできる。第２の例では、ＣＭＭ２２２は、機器２２０の代わりにクライアント１１４に存在することができる。第３の例では、ＣＭＭ２２２の一部が、機器２２０に存在することができ、ＣＭＭ２２２の一部が、ストレージデバイス１６０に存在することができ、以下同様とすることができる。ＣＭＭ２２２の複数の部分が異なるデバイスに存在する場合、制御ロジックを使用して、さまざまな部分を通信させることができる。
【００６７】
仮想化機器が１つの補助キャッシュ資源を管理する本発明の一定の実施の形態を説明したが、本明細書の実施の形態は、２つ以上の補助キャッシュ資源を管理する仮想化機器に関することができる。この場合、仮想化機器は、自身に関連付けられた補助キャッシュ資源のすべてのメタデータを保持することができる。
【００６８】
データ部分のコピー２７０をキャッシュするためにのみ補助キャッシュ資源２５０を使用する本発明のいくつかの実施の形態を説明したが、補助キャッシュ資源２５０は、データ部分のコピー２７０をキャッシュすることに加えて他の目的にも使用することができる。
【００６９】
本明細書で説明した実施の形態は、データ部分のコピー２７０をミラーリングすることと共に使用することができる。たとえば、Ａ’の２つのコピー及びＢ’の２つのコピーが存在することができる。これらのミラーリングされたコピーは、１つの補助キャッシュ資源に存在することもできるし、異なる補助キャッシュ資源に存在することもできる。
【００７０】
本発明の実施の形態は、上記のように説明される。本発明を特定の実施の形態で説明してきたが、本発明は、このような実施の形態によって限定されるものと解釈されるべきでなく、逆に、添付の特許請求の範囲に従って解釈されるべきであることが理解されるべきである。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するための一例示のシステムのブロック図である。
【図２】本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するためのフローチャート２００を示す。
【図３】本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供することによって節減することができるＩ／Ｏ数を示すグラフである。
【符号の説明】
【００７２】
１１２、１１４、１１８・・・クライアント
１１３、１１５、１１６、１６４、１７４・・・データ
１３０、１４０・・・サーバ
１３２、１４２・・・メモリ
１６０、１７０・・・ストレージデバイス
１６２、１７２・・・１次キャッシュ
２２０・・・仮想化機器
２２４・・・交換判断装置
２３４、２４４・・・メタデータ
２５０・・・補助キャッシュ資源
２６０・・・データ部分
２７０・・・データ部分のコピー
【図１】
2007537548.tif 000004
【図２】
2007537548.tif 000005
【図３】
2007537548.tif 000006
【国際調査報告】
2007537548.tif 000007
2007537548.tif 000008
2007537548.tif 000009