JP4435831B2 - ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供 - Google Patents

ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供 Download PDF

Info

Publication number
JP4435831B2
JP4435831B2 JP2007513362A JP2007513362A JP4435831B2 JP 4435831 B2 JP4435831 B2 JP 4435831B2 JP 2007513362 A JP2007513362 A JP 2007513362A JP 2007513362 A JP2007513362 A JP 2007513362A JP 4435831 B2 JP4435831 B2 JP 4435831B2
Authority
JP
Japan
Prior art keywords
data portion
data
cache
storage device
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007513362A
Other languages
English (en)
Other versions
JP2007537548A (ja
Inventor
アリ・イスマイル
ヘンツェ・リチャード・エイチ
ゴットワルス・メラニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2007537548A publication Critical patent/JP2007537548A/ja
Application granted granted Critical
Publication of JP4435831B2 publication Critical patent/JP4435831B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施の形態は、データをキャッシュすることに関する。より詳細には、本発明の実施の形態は、ストレージエリアネットワークレベルにおける代替キャッシュ方式(alternative caching scheme)を、ストレージデバイスの1次キャッシュにより提供されたキャッシュ方式に提供することに関する。
コンピュータの使用がより広く拡大してくるにつれて、大組織及び/又は大企業は、多種多様なプラットフォーム及び/又はモデルからコンピュータを取得するようになり、これらのコンピュータを互いにネットワーク接続するようになった。多種多様なプラットフォーム及び/又はモデルからのコンピュータは、異種コンピュータとしても知られている。ストレージエリアネットワーク(SAN)は、共有されたストレージデバイスの高速ネットワークを提供することにより異種コンピュータにストレージを提供するために開発されたものである。SANアーキテクチャは、通常、すべてのストレージデバイスを、大組織及び/又は大企業に関連したコンピュータ等の大規模ネットワークのコンピュータの多くに対し利用可能にする。この場合、SANアーキテクチャは、たとえば、ストレージデバイスをプールして、ストレージデバイスの管理を容易にすることができる。
コンピュータとストレージデバイスとの間でデータにアクセスするためのI/Oレートを増加させるさまざまな方法が開発されてきた。高い頻度で、ストレージデバイスは、ストレージデバイスからのデータの読み出し及びストレージデバイスへのデータの書き込みに、異なるレベルのアクセス待ち時間、入出力(I/O)レートとして表されるスループット、及び/又は転送速度を提供する。たとえば、高速なアクセス待ち時間、スループット、IOレート、及び/又は転送速度を提供するキャッシュ、システムメモリ、ソリッドステートデバイス(SSD)等のストレージデバイス(以下、「高速ストレージデバイス」という)は、データが、コンピュータで実行されているアプリケーションと、たとえば、低速なアクセス待ち時間、スループット、IOレート、及び/又は転送速度を提供するストレージデバイス(以下「低速ストレージデバイス」という)との間で通信されている時に、そのデータを永続的又は一時的に記憶するのに使用することができる。アプリケーションがデータの書き込みを要求すると、そのデータは、最初に高速ストレージデバイスに記憶されて、後に、低速ストレージデバイスに記憶されることができる。データが高速ストレージデバイスに書き込まれると、アプリケーションは、データが記憶されており、したがって、データが低速ストレージデバイスに実際に記憶されるまで待つ必要がないとの通知を受ける。
これらの方法の多くは、I/Oレートを増加させる目的で、クライアント等のコンピュータとストレージデバイスとの間で、SANを介したデータの通信を高速化するのに使用されてきた。
欧州特許出願公開第0604015号 欧州特許出願公開第0509676号 米国特許出願公開第2003/191901号 米国特許第6253289号
ストレージエリアネットワークレベルにおける代替キャッシュ方式を提供する。
[発明の開示]
本発明の実施の形態は、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するための方法及びシステムに関し、説明される。一実施の形態では、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、1回のアクセスよりも大きなしきい値を超えると判断される。データ部分のコピーが、ストレージデバイスの補助キャッシュを提供するキャッシュ資源に関連付けられる。この補助キャッシュ資源は、ストレージエリアネットワークレベルにある。データ部分のコピーは、その後のアクセスについて、データ部分の代わりにアクセスされる。
添付図面は、本明細書に援用されて、本明細書の一部を成す。添付図面は、本発明の実施の形態を示し、説明と共に、本発明の原理を説明する機能を果たす。
この説明で参照される図面は、特に言及がある場合を除き、一律の縮尺で描かれているものと理解されるべきではない。
次に、本発明のさまざまな実施の形態を詳細に参照することにする。さまざまな実施の形態の例が、添付図面に示されている。本発明をこれらの実施の形態と共に説明するが、実施の形態は、本発明をこれらの実施の形態に限定することを目的とするものではないことが理解されよう。逆に、本発明は、代替物、変更物、及び均等物を網羅することを目的としている。これらの代替物、変更物、及び均等物は、添付の特許請求の範囲によって規定された本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が述べられる。それ以外の場合には、本発明の態様を不必要に不明確にしないように、既知の方法、手順、コンポーネント、及び回路は詳細に説明されていない。
[ストレージネットワークレベルにおける代替キャッシュ方式の提供の概要]
図1は、一実施の形態による、ストレージネットワークレベルにおいて代替キャッシュ方式を提供するためのシステムのブロック図である。図1のブロックは、図示したものとは異なって配置することができ、追加された機能をインプリメントすることもできるし、本明細書で説明されたものよりも少ない機能をインプリメントすることもできる。
図1に示すように、クライアント112、114、118等のコンピュータで実行されているアプリケーションは、SAN190を介して、ストレージデバイス160、170へ、及び/又はストレージデバイス160、170からデータを通信する。クライアント112、114、118に関連付けられたデータ113、115、116は、ストレージデバイス160、170に記憶することができ、その結果、データ164、174になる。さらに、記憶されたデータ164、174は、1次キャッシュ162、172にそれぞれキャッシュすることもできる。ストレージデバイス160、170は、一実施の形態によれば、独立ディスク冗長アレイ(RAID)とすることができる。補助キャッシュ資源250は、一実施の形態によれば、(たとえば、「SANレベルにおける」)SAN190の一部である。1次キャッシュ162、172は、一実施の形態によれば、アレイキャッシュとすることができる。図1は、さらに、仮想化機器(virtualization appliance)220も示している。この仮想化機器220は、キャッシュ管理モジュール(CMM)222、代替キャッシュ方式223、交換判断装置(replacement determination)224、及びメタデータ234、244を含む。
一実施の形態によれば、仮想化機器220は、「インバンド」仮想化機器である。別の実施の形態によれば、仮想化システムは、インバンド仮想化機器とすることもできるし、アウトオブバンド仮想化システムとすることもできる。アウトオブバンド仮想化システムの場合、仮想化機能の制御についてのメタデータは、データトラフィックから分離され、メタデータサーバによって保持される。仮想化機器220等のハードウェア、及び、クライアント112、114、118等のコンピュータをSAN190のストレージデバイス160、170に接続する相互接続192は、SANファブリックと呼ばれる。
SANファブリックは、通常、クライアント112、114、118とSAN190に関連付けられたストレージデバイス160、170との間の多対多接続を可能にする。相互接続192は、一実施の形態によれば、ファイバチャネル(FC)及び/又はギガビットイーサネット(GigE)(登録商標)とすることができる。
CMM222は、一実施の形態によれば、ストレージデバイス160、170に関連付けられた1次キャッシュ162、172によって提供されるキャッシュ方式に代替キャッシュ方式223を提供する。たとえば、通常、比較的低速のストレージデバイス160、170に関連付けられたキャッシュ162、172は、「デマンドベースキャッシュ(demand based caching)」として知られているキャッシュ方式を使用する。このデマンドベースキャッシュでは、データは、常に、データの読み出し又はデータの書き込みのいずれかによって最初にアクセスされる時にキャッシュ162、172に書き込まれる。たとえば、クライアント112のアプリケーションが、ストレージデバイス160からデータ164の読み出しを初めて要求した場合に、データ164は、1次キャッシュ162に記憶される。同様に、クライアント112のアプリケーションが、データ113の書き込みを初めて要求した場合に、ストレージ160が、書き込まれるデータ113用に選択されていると仮定して、データ113は、1次キャッシュ162に記憶される。
「デマンドベースキャッシュ」とは対照的に、一実施の形態によれば、CMM222は、データへのアクセス回数が、1回のアクセスより大きなしきい値を超えるまで、補助キャッシュ資源250にデータのキャッシュを許可しないことによって、代替キャッシュ方式223を提供する。たとえば、CMM222は、データ部分A等、ストレージデバイス160に関連付けられたデータ部分が2回以上アクセスされていると判断することができる。CMM222は、データ部分260を補助キャッシュ資源250へ「移動」させることができ、その結果、データ部分のコピー270が得られる。たとえば、特定のデータ部分Aが2回以上アクセスされていた場合に、たとえば、その特定のデータ部分AのコピーA’を補助キャッシュ資源250に関連付けることによって、データ部分Aを補助キャッシュ資源250に「移動」させることができる。別の実施の形態によれば、データ部分Aへのその後のアクセス要求については、コピーA’がデータ部分Aの代わりにアクセスされる。その際に、クライアント112、114、118で実行されているアプリケーション等のエンティティは、コピーA’等のデータ部分のコピー270にアクセスする場合に、データ部分A等のデータ部分260にアクセスする場合よりも高速なアクセス時間及び/又は大きなI/Oレートを経験することができる。簡単にするために、本明細書の説明は、データ部分260及び/又はデータ部分のコピー270にアクセスすることに言及するが、データ部分260及び/又はデータ部分のコピー270のどのサブセットにもアクセスすることができる。
しきい値は、別の実施の形態によれば、静的とすることができる。たとえば、しきい値は、3等の所定のアクセス回数に静的に設定され、その後、決して変更されない。データ部分A等の特定のデータ部分260が3回アクセスされると、そのデータ部分Aを補助キャッシュ資源250へ移動させることができる。また、データ部分B等の別のデータ部分260が3回アクセスされると、データ部分Bを移動させることができる。
しきい値は、さらに別の実施の形態によれば、時間と共に変化する状況に適合するように変更される動的なしきい値とすることができる。たとえば、より詳細に説明する一実施の形態によれば、しきい値は、コスト/利益比とすることができ、データ部分260を移動させるコスト対データ部分のコピー270を補助キャッシュ資源250に常駐させたままにする利益等とすることができる。
ストレージデバイス160、170は、通常、クライアント112、114、118に関連付けられたアプリケーションが、ストレージデバイス160、170に記憶されたデータ164、174への順次アクセスを要求した時を検出するためのロジックを含む。たとえば、ストレージデバイス160、170は、その機械式アクチュエータで読み出さなければならないデータ164、174を提供できるよりも高速に、そのキャッシュ162、172に有するデータをアプリケーションに提供することができる。したがって、ストレージデバイス160、170は、クライアント112、114、118で実行されているアプリケーションが、ストレージデバイス160、170のデータ164、174に順次アクセスしていることを検出した場合、そのアプリケーションが、データ164、174に順次アクセスし続けることを予想して、そのデータ164、174の追加部分を「プリフェッチ」し、プリフェッチされたデータを自身のキャッシュ162、172に記憶することができる。したがって、ストレージデバイス160、170は、これらのストレージデバイス160、170に記憶されたデータ164、174への順次アクセスに最適な転送速度を提供する。順次アクセスを使用して転送速度を最適化することに関するより多くの情報については、Bates他による米国特許第625,3289B1号「Maximizing Sequential Read Streams While Minimizing the Impact on Cache and Other Applications」を参照されたい。この米国特許の内容は、本明細書に援用される。
別の実施の形態によれば、CMM222は、データ部分260がストレージデバイス160、170において順次アクセスされている場合に、データ部分260を補助キャッシュ資源250にデータ部分260をキャッシュすることを許可しないことによって、代替キャッシュ方式223を提供する。たとえば、クライアント114で実行されているアプリケーションが、ストレージデバイス160に記憶されているデータ部分Bにアクセスしている場合、CMM222は、データ部分Bが順次アクセスされていることを検出することができる。この場合、CMM222は、データ部分Bを補助キャッシュ資源250にコピーすることを許可することができず、したがって、クライアント114で実行されているアプリケーションは、その後のアクセスについて、ストレージデバイス160のデータ部分Bにアクセスし続けることになる。データ164、174への順次アクセスについて、ストレージデバイス160、170によって提供される最適な転送速度が使用され続ける。別の実施の形態によれば、データ部分260への順次アクセスは、そのデータ部分のアクセスしきい値の判断の際に、たとえばCMM222により1回のアクセスとしてカウントされ、ストレージデバイス160、170において順次アクセスされているデータ部分260を補助キャッシュ資源250にキャッシュすることが回避される。
1次キャッシュ162、172は、通常、サイズが1キロバイトから16キロバイトのキャッシュラインにデータ164、174をキャッシュする。通常、デマンドベースキャッシュに非常に大きなキャッシュラインを使用することは実用的ではない。その理由は、空間的に局所化されたアクセスパターンを含むデータ部分を選択するメカニズムが存在しないからである。したがって、キャッシュ資源の利用率が低くなると同時に、アクセスできないデータを取り扱うことに関連したオーバーヘッドが追加される。さらに別の実施の形態によれば、CMM222は、キャッシュラインよりも十分に大きなデータ部分260をキャッシュすることによって、代替キャッシュ方式223を提供する。データ部分260を補助キャッシュ資源250にキャッシュするために、データ部分260は、補助キャッシュ資源250に「移動」される。移動は、データ部分A等の特定のデータ部分260を選択して、選択されたデータ部分A全体を読み出し、選択されたデータ部分AのコピーA’を作成し、このコピーA’を補助キャッシュ資源250へ移動させることによって(たとえば、「関連付ける」ことによって)達成することができる。
一実施の形態によれば、データ部分260のサイズは、データ部分260が、たとえばクライアント112、114、118で実行されているアプリケーションによって順次アクセスされていることをストレージデバイス160、170が検出するのに十分大きなものである。本明細書ですでに説明したように、RAID等のストレージデバイス160、170は、それらストレージデバイスが、順次アクセスされているデータに最適な転送速度を提供することを可能にするロジックを有することができる。本明細書ですでに説明したように、データ部分260の補助キャッシュ資源250への移動は、順次アクセスの転送速度を最適化するストレージデバイス160、170の能力を利用することができる。この例を続けて、コピーA’を作成するためにデータ部分Aが読み出されている時にデータ部分Aが順次アクセスされていることをストレージデバイス160が検出すると、データ部分Aの移動を最適化することができる。
一実施の形態によれば、データ部分260は、キャッシュラインよりも十分に大きい。別の実施の形態によれば、本明細書ですでに説明したように、データ部分260は、たとえば、順次アクセスの検出により最適な転送速度から利益を得るために少なくとも128Kである。
データ部分B等の特定のデータ部分260が、ストレージデバイス160から補助キャッシュ資源250へ移動されている時、クライアント112、114、118で実行されているアプリケーション等の他のエンティティは、一貫性を保持するために、ストレージデバイス160、170のデータ164、174にアクセスすることを許可されない。データ部分260が大きいほど、データ部分Bを補助キャッシュ資源250へ移動させるのに要する時間は長くなり、他のエンティティが待たなければならない時間が長くなる。したがって、データ部分260は、ストレージデバイス160、170がこれらのデータ部分260の順次アクセスを検出することを可能にするのに十分大きなものとすることができるが、同時に、移動処理中に、たとえば通常のディスクアクセス時間及び転送時間よりも大きな実質的待ち時間をアプリケーション等のエンティティにもたらすほど大きくすることはできない。一実施の形態によれば、データ部分260のサイズは、ストレージデバイス160、170に関連付けられたデータ164、174にアクセスするエンティティを妨げることなく、補助キャッシュ資源へ移動できるだけ十分小さい。別の実施の形態によれば、データ部分260のサイズは、10メガバイトよりも小さい。
代替キャッシュ方式223を提供することによって、1次キャッシュ162、172及び補助キャッシュ資源250は、異なるタイプのアクセスに使用され、それによって、一実施の形態によれば、1次キャッシュ162、172及び補助キャッシュ資源250は、それぞれが最も適したアクセス動作(behavior)のタイプに利用される。たとえば、通常、機械式アクチュエータ、及び順次アクセスを検出するためのロジックを有するストレージデバイスは、相対的に順次アクセスが得意であるが、相対的にランダムアクセスが得意でない。機械式アクチュエータを有しないストレージデバイスは、相対的にランダムアクセスが得意である。
したがって、一実施の形態によれば、順次アクセスされるデータは、ストレージデバイス160、170に記憶され、したがって、順次アクセスを検出するためのストレージデバイス160、170のロジックが利用される。さらに、ランダムにアクセスされるが、補助キャッシュ資源250への移動をもたらすのに十分なデータ部分内で十分なアクセスアクティビティを示さなかった比較的少量のデータ(たとえば、キャッシュライン以下のサイズ)は、RAID等のストレージデバイス160、170に記憶され、1次キャッシュ162、172にキャッシュされ、したがって、ランダムアクセス中のストレージデバイス160、170の性能悪化が最小にされる。
これとは対照的に、そのアクセスパターンで十分なアクティビティを示す比較的大量のデータ(たとえば、ほぼキャッシュラインのサイズから10メガバイトにわたるデータ部分のコピー270)は、一実施の形態によれば、ランダムアクセスを実行する時に補助キャッシュ資源250の良好な性能を利用して、SSD等の補助キャッシュ資源250にキャッシュすることができる。本発明の一実施の形態によれば、補助キャッシュ資源250に関連付けられたデータ部分のコピー270の内容と1次キャッシュ162、172にキャッシュされたデータ部分の内容との間の排他性は促進される。
[仮想化]
「仮想化」は、クライアント、アプリケーション、ファイルシステム、ストレージデバイス等の物理エンティティが、他の物理エンティティの物理的特性を意識しない(not be aware of)ように、クライアント112、114、118とストレージデバイス160、170との間の多対多接続を提供することの一部である。さらに、仮想化は、データへの複数のパスを提供することによって、連続的なデータの可用性を可能にする。一般に、仮想化は、物理エンティティ等の或るエンティティを論理エンティティ等の別のエンティティにリネームすること又は再マッピングすることを伴う。たとえば、ストレージデバイス160、170等の物理エンティティは、より小さな部分に区画化することもできるし、共にグループ化して論理エンティティにすることもできる。この論理エンティティは、論理ユニットとして知られており、且つ、論理ユニット番号(LUN)で識別される。さらに、物理エンティティは、LUNに従ってグループ化することもできる。また、個々のLUNは、特定のクライアント、アプリケーション、ファイルシステム、ストレージデバイス等の個々のエンティティに関連付けることができる。
LUNは、仮想化機器を通じて他のLUNにマッピング又は「構成」することができる。たとえば、LUN Xを特定のストレージデバイス160に割り当てることができ、LUN Yをストレージデバイス170に割り当てることができる。これらのLUNは、共に構成することもできるし、仮想化機器220によって「プール」されて、たとえばLUN Zといった新たなLUNを作成することもできる。LUN Zは、その後、仮想化機器220によって、クライアント114で実行される特定のアプリケーションへマッピングされることができる。クライアント114のアプリケーションからのデータは、次に、ストレージデバイス160及び170に記憶されることになる。
今日、たとえば、従来の仮想化機器においてLUNを構成することは、システムアドミニストレータによって行われる手動プロセスである。通常、システムアドミニストレータは、アプリケーションの要件の既存の知識又はプロファイリングソフトウェアスイートを使用して、データのストレージアクセスパターンを求める。その後、システムアドミニストレータは、LUNを適切に構成することができる。たとえば、特定のアプリケーションのデータが高頻度でアクセスされる場合、システムアドミニストレータは、そのアプリケーション用のLUNを、大きなキャッシュを有するストレージデバイスに構成することができる。これとは対照的に、特定のアプリケーションがそのアプリケーションのデータに高頻度でアクセスしない場合、システムアドミニストレータは、そのLUNを、キャッシュを有しないストレージデバイスに構成することができる。
別の例では、特定のアプリケーションは、そのアプリケーションのデータに高頻度でアクセスする場合があるが、そのアプリケーションは、応答時間がタイムクリティカルなアプリケーションでない場合があり、たとえば、高速に完了するI/Oオペレーションを必要としない場合がある。一方、別のアプリケーションは、自身のデータにアクセスする頻度が低い場合があるが、そのアプリケーションは、タイムクリティカルなアプリケーションである。従来のシステムでは、これらのアプリケーションを管理することは、システムアドミニストレータが、たとえば、タイムクリティカルなアプリケーションのLUNを、高速なアクセス時間をそのデータに提供できる高速ストレージデバイスにマッピングし、且つ、タイムクリティカルでないアプリケーションのLUNをより低速なデバイス又は異なるRAID構成にマッピングする手動プロセスである。
SSDのコストは絶えず減少しており、LUNを手動で構成するコストは高価なままである。代替キャッシュ方式223は、システムアドミニストレータからの手動による介入を必要とすることなく、ストレージデバイス160、170からSSD等の補助キャッシュ資源250へ作業を自動的にオフロードする。一実施の形態によれば、代替キャッシュ方式223は、選択されたLUNについてのみ有効とすることができる。
仮想化機器220は、たとえば、物理エンティティを「プール」することにより、仮想化に加えて、そのシステムメモリ132、142にデータをキャッシュすることもできる。通常、仮想化機器220は、少なくとも2つのサーバ130、140を有する。仮想化機器220は、クライアント112、114、118で実行されているアプリケーションが操作を行うデータのコピーを、2つのサーバ130、140に関連付けられているシステムメモリ132、142に保持することができる。同じデータの2つの正確なコピーは、システムメモリ132及びシステムメモリ142に保持することができる(ミラーリングとしても知られている)。
[メタデータ]
一般に、メタデータは、たとえば、データが記憶されている場所のデータ、及び、データがどのようにアクセスされるかのデータを記述するデータである。CMM222の機能に関連付けられたメタデータ234、244は、一実施の形態によれば、データ164、174のどの部分が補助キャッシュ資源250へ移動されたかを記述し、仮想化機器220が、ストレージデバイス160、170又は補助キャッシュ資源250のいずれかの適切なロケーションからのデータにアクセスすることを可能にする。また、CMM222の機能に関連付けられたメタデータ234、244は、別の実施の形態によれば、データ部分260に関連付けられた統計値も記述する。たとえば、この場合、メタデータ234、244は、特に、データ部分260へのアクセス回数がしきい値に達したかどうかを判断するのに使用することができる。メタデータ234、244は、別の実施の形態によれば、データ部分260に関連付けられた統計値に加えて、又は、この統計値の代わりに、データ部分のコピー270に関連付けられた統計値を記述することもできる。この場合、メタデータ234、244は、本明細書で説明するように、コスト/利益比を使用して動的なしきい値を計算するのに使用することができる。
一実施の形態によれば、メタデータ234、244は、仮想化機器220において、メモリ132、142に保持されてミラーリングされるだけでなく、安定したストレージにも記憶される。メモリ内のコピーは、高速な応答を提供する一方、安定したコピーは、信頼性及び障害後の回復を保証する。たとえば、メタデータ234の1つのコピーは、仮想化機器220に関連付けられたサーバ130の一方のシステムメモリ132に記憶することができ、メタデータ244の正確なコピーは、仮想化機器220に関連付けられた他方のサーバ140のシステムメモリ142に保持することができる。メタデータ234、244を「ミラーリング」することによって、一実施の形態によれば、メタデータ234、244の改善された可用性及び障害回復が提供される。メタデータ234、244を「ミラーリング」することは、メタデータ234、244のサイズが管理可能であるので、過度の量のオーバーヘッドを伴うものではない。
[交換判断装置]
交換判断装置224は、一実施の形態によれば、より価値のあるデータ部分260を優先的に補助キャッシュ資源250へ移動させるために、データ部分のどのコピー270を補助キャッシュ資源250から除去するかを判断するのに使用される。交換判断装置224は、別の実施の形態によれば、最長未使用時間(LRU)、適応型交換キャッシュ(ARC(Adaptive Replacement Cache))、複数のエキスパートを使用した適応型キャッシュ(ACME(Adaptive Cache using Multiple Experts))等の既存の交換判断を使用することができる。
ACMEの説明については、I. Ari他著「ACME: adaptive caching using multiple experts」Proceedings in Informatics, volume 14, pages 143-158, Carleton Scientific, 2002を参照されたい。この文献の内容は本明細書に援用される。ARCの説明については、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を参照されたい。この文献の内容は本明細書に援用される。
さらに別の実施の形態によれば、交換判断装置224は、新しい交換判断を使用することができる。たとえば、交換判断装置224は、本明細書で説明したように、コスト/利益比を使用して、データ部分のどのコピー270を補助キャッシュ資源250から除去するかを判断することができる。さらに別の実施の形態によれば、補助キャッシュ資源250は、本明細書ですでに説明したようなコスト/利益比等の新しい交換判断を使用して、既存の交換判断を改良することができる。
[動的なしきい値]
すでに述べたように、しきい値は、別の実施の形態によれば、時間と共に変化する状況に適合するように調整される動的なしきい値とすることができる。さらに、しきい値は、さらに別の実施の形態によれば、動的なコスト/利益比とすることができる。たとえば、動的なしきい値は、一実施の形態によれば、データ部分のコピーを補助キャッシュ資源に関連付けるコストに少なくとも部分的に基づいたものとすることができる。このコストは、別のデータ部分のコピーを補助キャッシュ資源に関連付け続けることを許可する利益に対して重み付けされる。
より具体的には、コストは、移動に使用されるシステム資源の点から、特定のデータ部分Cを補助キャッシュ資源250へ移動させることに関連付けられる。さらに、データ部分Cを補助キャッシュ資源250へ移動させるために、データ部分のコピーA’又はD’のいずれか等、補助キャッシュ資源250にすでにあるものを補助キャッシュ資源250から除去しなければならない場合がある。したがって、コピーA’、D’が補助キャッシュ資源250に留まることを許可されていたとした場合にもたらされた可能性のある利益は、コピーA’、D’が補助キャッシュ資源250から除去された場合にはもはや続かないことになる。したがって、一実施の形態によれば、データ部分Cを関連付けるコストは、A’やD’等の別のデータ部分のコピー270が補助キャッシュ資源250に存在し続けることを許可する利益に対して重み付けすることができる。さらに、コスト及び利益は、時間と共に、ワークロードの関数として変化し、その結果、しきい値は、これらの変化するコスト及び利益を反映するように調整できる動的なものとなる。
しきい値を動的に調整することによって、利益を最大にできる時に、より多くのデータ部分260を移動させることができ、コストが利益に勝る時に、移動されるデータ部分は少なくなる。以下の表1は、一実施の形態による、コスト/利益比に基づいてしきい値を動的に調整するための疑似コードのサンプルを示している。
Figure 0004435831
表1に示すように、ライン4において、「TotalHits」は、一実施の形態によれば、補助キャッシュ資源250に関連付けられたデータ部分のすべてのコピー270(A’及びD’)に対する「ヒット(「アクセス」としても知られている)」の総数、たとえば累積数である。CMM222は、さらに別の実施の形態によれば、特定のLUNが有効にされた時に、その特定のLUNの「TotalHits」の累積を開始することができる。「NumberOfMigratedPortionsOfData」は、一実施の形態によれば、補助キャッシュ資源250へ「移動」されたすべてのデータ部分260の累積カウントとすることができる。データ部分A等の特定のデータ部分260は、別の実施の形態によれば、移動され、立ち退かされ、再び移動された場合に、補助キャッシュ資源250に2回移動されたものとしてカウントすることができる。
「Metric」は、一実施の形態によれば、ライン4における「NumberOfMigrated PortionsOfData」であるコストによって「TotalHits」である利益を除算することにより計算される。たとえば、図1に示すように、データの2つの一部260は、補助キャッシュ資源250に移動されており、その結果、データ部分のコピーA’及びD’となる。A’及びD’が500回アクセスされている、すなわち「ヒット」されている場合、「Metric」は、500/2となり、これは250である。
コードライン6〜9は、データ部分のコピー270をキャッシュすることに関連付けられた「Metric」が増加しているのか、それとも減少しているのかを判断するのに使用される。「Metric」が増加している場合、「Threshold」は、より多くのデータ部分260を補助キャッシュ資源250へ「移動」させるためにライン7で定数だけ減少され、その結果、データ部分のコピー270のより多くが、補助キャッシュ資源250に関連付けられる。一方、「Metric」が減少している場合、「Threshold」は、データ部分260の補助キャッシュ資源250への移動を遅くするために、ライン9で定数だけ増加される。より多くのデータ部分260を移動させることによって、データ部分のコピー270のより多くのものを補助キャッシュ資源250から除去することができる。
[動作例]
図2は、本発明の実施の形態による、ストレージネットワークレベルにおいて代替キャッシュ方式を提供するためのフローチャート200を示している。このフローチャート200には、具体的なステップが開示されているが、このようなステップは例示である。すなわち、本発明の実施の形態は、他のさまざまなステップ、又はフローチャート200に列挙したステップを変形したものを実行することにもよく適している。フローチャート200のステップは、提示したものとは異なる順序で実行できること、及び、フローチャート200のステップのすべてが実行されるとは限らない場合があることが理解されよう。フローチャート200によって説明される実施の形態の全部又は一部は、たとえばコンピュータシステム又は同様のデバイスのコンピュータ使用可能媒体に存在するコンピュータ可読で且つコンピュータ実行可能な命令を使用してインプリメントすることができる。
例示の目的で、フローチャート200の解説は、図1に示す構造を参照することにする。以下の動作例については、特定のアプリケーションXのLUNが有効にされているものと仮定する。ステップ292において、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、一実施の形態によれば、1回のアクセスよりも大きなしきい値を超える。たとえば、クライアント114で実行されているアプリケーションXは、データ115をストレージデバイス160に書き込むことができる。その結果、データ115を書き込むことによって、データ部分Aをストレージデバイス160に記憶することができる。しばらくした後、たとえば、アプリケーションXは、データ部分Aを読み出すことが必要な場合がある。通常、この時点で、データ115は、クライアント114に関連付けられたシステムメモリから除去されていることになり、クライアント114にはもはや利用可能ではない。アプリケーションXは、ストレージデバイス160のデータ部分Aにアクセスすることによって、自身のデータを取得することができる。アプリケーションXがデータ部分Aを処理すると、CMM222は、ストレージデバイス160のデータ部分Aがしきい値を超えてアクセスされたと判断することができる。このしきい値は、この動作例では、1回のアクセスである。
ステップ294において、データ部分のコピーが、別の実施の形態によれば、ストレージデバイスの補助キャッシュを提供する補助キャッシュ資源に関連付けられる。たとえば、CMM222は、コピーA’を補助キャッシュ資源250に関連付けることによって、データ部分Aを補助キャッシュ資源250へ移動させることができる。
データ部分Aへのアクセス回数等の統計値は、メタデータ234、244に記憶することができる。メタデータ234、244は、データ部分Aのしきい値を超えた時を判断する際に使用することができ、したがって、そのデータ部分AのコピーA’が補助キャッシュ資源250に関連付けられる時を判断する際に使用することができる。
ステップ296において、補助キャッシュ資源のデータ部分のコピーは、さらに別の実施の形態によれば、その後の要求について、ストレージデバイスのデータ部分の代わりにアクセスされる。たとえば、アプリケーションXの実行が続くと、アプリケーションXは、ストレージデバイス160のデータ部分Aの代わりに補助キャッシュ資源250のコピーA’にアクセスすることによって、自身のデータを処理することができる。補助キャッシュ資源250とクライアント114との間のI/Oレートは、ストレージデバイス160とクライアント114との間のI/Oレートよりも高速であることから、又は、補助キャッシュ資源250のクライアント114への応答時間は、ストレージデバイス160の応答時間よりも高速であることから、アプリケーションXをより高速に実行することができる。
上記動作例は、データ部分Aのすべてがデータ115からのものであると仮定しているが、他の可能性も存在する。たとえば、データ部分Aは、データ115のサブセット、データ113のサブセット、及びデータ116のサブセットからのもの等とすることができる。
図3は、本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するストレージデバイスで削減することができるI/O数を示すグラフである。より具体的には、図3は、データ部分にアクセスするストレージ性能協議会(Storage Performance Council)のSPC−1ベンチマークワークロードを実行中の秒による時間対毎秒のI/OのディスクI/Oカウントを示している。例示の目的で、特定のLUNが、図1に示すデータ部分260にアクセスしているアプリケーションにのみ関連付けられるものと仮定する。さらに、このLUNが有効にされているものと仮定する。
この例のSPC−1ベンチマークワークロードは、有効にされたLUNについて定数1200I/O410になるように構成されている。CMM222は、ワークロードが実行されている最初のおよそ1200秒402の間、有効にされない。したがって、CMM222は、最初の1200秒402の期間中、データ部分260に対する初期ディスクI/Oの統計値を収集していない。最初のおよそ1200秒402の後、CMM222は有効にされ、データ部分260がどれくらいの頻度でアクセスされるかに関する統計値の収集を開始する。この統計値は、メタデータ234、244に記憶することができる。
ステップ292において、ストレージデバイスに関連付けられたデータ部分へのアクセス回数が、一実施の形態によれば、1回のアクセスよりも大きなしきい値を超える。データ部分260がアクセスされると、CMM222は、データ部分260が一定のしきい値を超えてアクセスされたと判断する。図3のこの動作例を示す目的で、しきい値は、16回のアクセスの静的なしきい値であり、データ部分260のサイズは、128キロバイトである。
ステップ294において、データ部分のコピーが、別の実施の形態によれば、ストレージデバイスの補助キャッシュを提供する補助キャッシュ資源に関連付けられる。たとえば、しきい値よりも多くアクセスされたデータ部分260の補助キャッシュ資源250への移動が開始され(参照番号418を参照)、その結果、データ部分のコピー270は、補助キャッシュ資源250に関連付けられる。移動I/O406は、補助キャッシュ資源250へデータ部分260を「移動」させるのに使用される。
ステップ296において、補助キャッシュ資源のデータ部分のコピーが、さらに別の実施の形態によれば、その後の要求について、ストレージデバイスのデータ部分の代わりにアクセスされる。データ部分のコピー270が、補助キャッシュ資源250に関連付けられると、データ部分のコピー270は、データ部分260の代わりにアクセスされ、その結果、ディスクI/Oは削減する(404)。総ディスクI/O408は、削減されたディスクI/O404に移動I/O406を加えた総数である。
[結論]
代替キャッシュ方式223及び補助キャッシュ資源250を提供することによって、本発明の実施の形態は、ストレージデバイス160、170のワークロードを大幅に削減する。たとえば、図3は、ストレージデバイス160、170へのI/Oレートが、I/Oを多く使用するアプリケーションベンチマークにおいて、LUNについておよそ1200からおよそ500へ58%(毎秒およそ700I/O)削減されたことを示している(412)。さらに、移動I/O406の個数は極めて少なく(およそ100)、その結果、ストレージデバイス160、170に対するI/Oが大幅(たとえば、およそ700)に削減される(412)。
ストレージデバイス160、170のワークロードを削減することによって、本発明の実施の形態は、ストレージデバイス160、170に対するI/Oレートを減少させ、したがって、ストレージデバイス160、170のキューの長さ及び待ち時間を削減し、その結果、ストレージデバイス160、170のデータ164、174のアクセス性能がより良くなる。
本発明の実施の形態を使用してストレージデバイス160、170のワークロードを削減することによって、主としてストレージデバイス160、170によって保持されるシーケンシャルI/Oストリームは、コンテンション(contention)の減少を経験し、順次アクセスがより効率的になる。
静的なしきい値を提供することによって、本発明の実施の形態は、ストレージデバイス160、170のワークロードを削減する。
動的なしきい値を提供することによって、本発明の実施の形態は、ストレージデバイス160、170のワークロードを削減するだけでなく、クライアント、アプリケーション等の変化するニーズを検出してそれに適応することもできる。
本発明の実施の形態は、レガシーシステムでインプリメントすることも容易である。たとえば、キャッシュ管理モジュール222は、ストレージデバイス160、170に対する変更もクライアント112、114、118に対する変更も何ら必要とすることなく、仮想化機器220に容易にインストールすることができる。
本発明の実施の形態によって、スケーラブルなアーキテクチャが得られる。たとえば、SSD等の補助キャッシュ資源250を図1に示すようなシステムにより多く追加することが容易である。補助キャッシュ資源250は、全体のストレージ容量とは独立に増加させることができる。本発明の実施の形態によって、SSD等の個々の補助キャッシュ資源を使用して、RAID等の比較的低速なストレージデバイスに利用可能なキャッシュ容量を増加させることが可能になる。
代替キャッシュ方式を提供することによって、本発明の実施の形態は、補助キャッシュ資源のセットアップやメンテナンス等のストレージ構成の管理に必要とされる手動による介入の量を削減する。
代替キャッシュ方式223を提供することによって、1次キャッシュ162、172及び補助キャッシュ資源250は、一実施の形態によれば、異なるタイプのアクセス動作に使用される。たとえば、補助キャッシュ資源250は、主として、比較的大きなデータ部分260(たとえば、およそ128Kから10メガバイトにわたるデータ部分260)内のランダムアクセスに使用することができるのに対して、1次キャッシュ162、172は、主として、順次アクセスに使用することができ、また、たとえばキャッシュラインのサイズの比較的少量のデータ260、及び補助キャッシュ資源250への移動に適していない比較的少量のデータ260へのランダムアクセスに使用することができる。代替キャッシュ方式223を提供することによって、一実施の形態によれば、それぞれが最も適したタイプのアクセス動作について、1次キャッシュ162、172及び補助キャッシュ資源250が利用される。さらに、代替キャッシュ方式223を提供することによって、キャッシュ162、172、ストレージデバイス160、170、及び仮想化機器220等の高価な資源の使用が最適化される。たとえば、代替キャッシュ方式223を提供することによって、手動によるシステム管理及び再構成の必要性が削減されると同時に、動的なワークロード状況下において性能が大幅に改善される(図3及び付随した説明を参照)。
[拡張及び代替物]
補助キャッシュ資源250についてSSDを使用した本発明のいくつかの実施の形態を説明したが、本発明は、SSDに限定されるものではない。たとえば、補助キャッシュ資源250は、特に、RAID等のディスクアレイ、バッテリーバックアップされたダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、フラッシュ、又は、データを一時的且つ/若しくは永続的に記憶するのに使用できるあらゆるタイプのデバイスとすることができる。
CMM222が仮想化機器220等の機器にインプリメントされる一定の実施の形態を説明したが、CMM222は、機器220、ファブリックスイッチ、ストレージデバイス160、170等のディスクアレイ、又はクライアント112、114、118等の別のコンピュータのいずれにも存在することもできるし、それらを組み合わせたものに存在することもできる。たとえば、CMM222は、機器220の代わりにストレージデバイス160に存在することもできる。第2の例では、CMM222は、機器220の代わりにクライアント114に存在することができる。第3の例では、CMM222の一部が、機器220に存在することができ、CMM222の一部が、ストレージデバイス160に存在することができ、以下同様とすることができる。CMM222の複数の部分が異なるデバイスに存在する場合、制御ロジックを使用して、さまざまな部分を通信させることができる。
仮想化機器が1つの補助キャッシュ資源を管理する本発明の一定の実施の形態を説明したが、本明細書の実施の形態は、2つ以上の補助キャッシュ資源を管理する仮想化機器に関することができる。この場合、仮想化機器は、自身に関連付けられた補助キャッシュ資源のすべてのメタデータを保持することができる。
データ部分のコピー270をキャッシュするためにのみ補助キャッシュ資源250を使用する本発明のいくつかの実施の形態を説明したが、補助キャッシュ資源250は、データ部分のコピー270をキャッシュすることに加えて他の目的にも使用することができる。
本明細書で説明した実施の形態は、データ部分のコピー270をミラーリングすることと共に使用することができる。たとえば、A’の2つのコピー及びB’の2つのコピーが存在することができる。これらのミラーリングされたコピーは、1つの補助キャッシュ資源に存在することもできるし、異なる補助キャッシュ資源に存在することもできる。
本発明の実施の形態は、上記のように説明される。本発明を特定の実施の形態で説明してきたが、本発明は、このような実施の形態によって限定されるものと解釈されるべきでなく、逆に、添付の特許請求の範囲に従って解釈されるべきであることが理解されるべきである。
本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するための一例示のシステムのブロック図である。 本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するためのフローチャート200を示す。 本発明の実施の形態による、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供することによって節減することができるI/O数を示すグラフである。
符号の説明
112、114、118・・・クライアント
113、115、116、164、174・・・データ
130、140・・・サーバ
132、142・・・メモリ
160、170・・・ストレージデバイス
162、172・・・1次キャッシュ
220・・・仮想化機器
224・・・交換判断装置
234、244・・・メタデータ
250・・・補助キャッシュ資源
260・・・データ部分
270・・・データ部分のコピー

Claims (8)

  1. ストレージエリアネットワークレベルにおいて代替キャッシュ方式(alternative caching scheme)を提供する方法であって、前記方法は、仮想化機器によって実行され、
    クライアントによる、ストレージデバイスに記憶されたデータ(164、174)を構成する1つ以上のデータ部分のうちの第1のデータ部分へのアクセス回数が、1回のアクセスよりも大きなしきい値を超えると判断すること(292)と、
    前記第1のデータ部分への前記アクセス回数が前記しきい値を超える場合に、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記第1のデータ部分のコピーを移動させること(294)であって、前記補助キャッシュ資源は、前記ストレージエリアネットワーク(SAN)の一部であること(294)と、
    前記ストレージデバイスの前記第1のデータ部分へのその後のアクセスについて、前記第1のデータ部分にアクセスする代わりに、前記補助キャッシュ資源に移動した前記第1のデータ部分の前記コピーに前記クライアントがアクセスするように制御すること(296)と、
    前記1つ以上のデータ部分への順次アクセスを検出することによって、前記1つ以上のデータ部分のうちの第2のデータ部分が前記ストレージデバイスにおいてクライアントによって順次アクセスされていると判断することと、
    前記第2のデータ部分が順次アクセスされているので、前記第2のデータ部分のコピーを前記補助キャッシュ資源に移動させないことであって、前記第2のデータ部分への前記順次アクセスは1回のアクセスとしてカウントされることと
    を含む方法。
  2. 前記第1のデータ部分のサイズは、1次キャッシュに関連付けられたキャッシュラインのサイズよりも大きい
    請求項1に記載の方法。
  3. 前記第1のデータ部分は、前記ストレージデバイスが前記データ部分への順次アクセスを検出するために必要とされるサイズを有する
    請求項2に記載の方法。
  4. 前記第1のデータ部分のサイズは、前記第1のデータ部分の前記補助キャッシュ資源への移動が前記ストレージデバイスに記憶されたデータへのアクセスを妨げるサイズよりも小さなものである
    請求項1に記載の方法。
  5. 前記しきい値は、前記補助キャッシュ資源に移動した前記第1のデータ部分の前記コピーの累積数と、前記補助キャッシュ資源に移動した前記第1のデータ部分の前記コピーに対するアクセスの累積数とに少なくとも部分的に基づいた動的なしきい値である
    請求項1に記載の方法。
  6. 前記しきい値は、所定のアクセス回数に基づいた静的なしきい値であり、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記第1のデータ部分のコピーを移動させることは、
    前記第1のデータ部分への前記アクセス回数が前記所定のアクセス回数を超えた時に、前記第1のデータ部分の前記コピーを前記補助キャッシュ資源に移動させること
    をさらに含む請求項1に記載の方法。
  7. ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供するシステムであって、前記システムは、
    クライアントによる、ストレージデバイスに記憶されたデータ(164、174)を構成する1つ以上のデータ部分のうちの第1のデータ部分へのアクセス回数が、1回のアクセスよりも大きなしきい値を超えると判断する(292)ためのキャッシュ管理モジュールを備え、
    前記第1のデータ部分への前記アクセス回数が前記しきい値を超える場合に、前記キャッシュ管理モジュールは、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記第1のデータ部分のコピーを移動させること(294)を引き起こし、前記補助キャッシュ資源は、前記ストレージエリアネットワーク(SAN)の一部であり、
    前記キャッシュ管理モジュールは、前記ストレージデバイスの前記第1のデータ部分へのその後のアクセスについて、前記第1のデータ部分にアクセスする代わりに、前記補助キャッシュ資源に移動した前記第1のデータ部分の前記コピーに前記クライアントがアクセスするように制御し、
    前記キャッシュ管理モジュールは、前記1つ以上のデータ部分への順次アクセスを検出することによって、前記1つ以上のデータ部分のうちの第2のデータ部分が前記ストレージデバイスにおいてクライアントによって順次アクセスされていると判断し、
    前記第2のデータ部分が順次アクセスされているので、前記キャッシュ管理モジュールは、前記第2のデータ部分のコピーを前記補助キャッシュ資源に移動させず、前記第2のデータ部分への前記順次アクセスは1回のアクセスとしてカウントされる
    システム。
  8. コンピュータシステムのいずれかのコンピュータに、ストレージエリアネットワークレベルにおいて代替キャッシュ方式を提供する方法を実行させるための、内部で具現化されるコンピュータ可読プログラムコードが格納された、コンピュータ使用可能媒体であって、前記方法は、
    クライアントによる、ストレージデバイスに記憶されたデータ(164、174)を構成する1つ以上のデータ部分のうちの第1のデータ部分へのアクセス回数が、1回のアクセスよりも大きなしきい値を超えると判断すること(292)と、
    前記第1のデータ部分への前記アクセス回数が前記しきい値を超える場合に、前記ストレージデバイスに補助キャッシュを提供するキャッシュ資源に前記第1のデータ部分のコピーを移動させること(294)であって、前記補助キャッシュ資源は、前記ストレージエリアネットワーク(SAN)の一部である、移動させること(294)と、
    前記ストレージデバイスの前記第1のデータ部分へのその後のアクセスについて、前記第1のデータ部分にアクセスする代わりに、前記補助キャッシュ資源に移動した前記第1のデータ部分の前記コピーに前記クライアントがアクセスするように制御すること(296)と、
    前記1つ以上のデータ部分への順次アクセスを検出することによって、前記1つ以上のデータ部分のうちの第2のデータ部分が前記ストレージデバイスにおいてクライアントによって順次アクセスされていると判断することと、
    前記第2のデータ部分が順次アクセスされているので、前記第2のデータ部分のコピーを前記補助キャッシュ資源に移動させないことであって、前記第2のデータ部分への前記順次アクセスは1回のアクセスとしてカウントされることと
    を含むコンピュータ使用可能媒体。
JP2007513362A 2004-05-14 2005-05-13 ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供 Expired - Fee Related JP4435831B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/846,455 US8549226B2 (en) 2004-05-14 2004-05-14 Providing an alternative caching scheme at the storage area network level
PCT/US2005/016647 WO2005114428A2 (en) 2004-05-14 2005-05-13 Providing an alternative caching scheme at the storage area network level

Publications (2)

Publication Number Publication Date
JP2007537548A JP2007537548A (ja) 2007-12-20
JP4435831B2 true JP4435831B2 (ja) 2010-03-24

Family

ID=35395650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007513362A Expired - Fee Related JP4435831B2 (ja) 2004-05-14 2005-05-13 ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供

Country Status (4)

Country Link
US (1) US8549226B2 (ja)
JP (1) JP4435831B2 (ja)
DE (1) DE112005001050T5 (ja)
WO (1) WO2005114428A2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100342352C (zh) * 2005-03-14 2007-10-10 北京邦诺存储科技有限公司 一种可扩充的高速存储网络缓存系统
US20060248040A1 (en) * 2005-05-02 2006-11-02 Nokia Corporation System and method for adaptive remote file caching
US8688904B1 (en) * 2005-05-23 2014-04-01 Hewlett-Packard Development Company, L.P. Method for managing data storage
US7636801B1 (en) * 2005-06-20 2009-12-22 Symantec Operating Corporation Coordination of quality of service in a multi-layer virtualized storage environment
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
JP4949804B2 (ja) * 2006-11-07 2012-06-13 株式会社日立製作所 統合管理計算機と記憶装置管理方法および計算機システム
JP4900807B2 (ja) 2007-03-06 2012-03-21 株式会社日立製作所 ストレージシステム及びデータ管理方法
US8874854B2 (en) * 2007-07-30 2014-10-28 International Business Machines Corporation Method for selectively enabling and disabling read caching in a storage subsystem
KR20100039179A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 메모리 장치의 상태를 검사하는 메모리 시스템, 저장 장치,그리고 메모리 컨트롤러
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
KR101023883B1 (ko) * 2009-02-13 2011-03-22 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US8843648B2 (en) * 2009-05-26 2014-09-23 Microsoft Corporation External access and partner delegation
US8850041B2 (en) * 2009-05-26 2014-09-30 Microsoft Corporation Role based delegated administration model
JP4862067B2 (ja) * 2009-06-09 2012-01-25 株式会社日立製作所 キャッシュ制御装置及び方法
US8782340B2 (en) * 2010-12-06 2014-07-15 Xiotech Corporation Hot sheet upgrade facility
US8862845B2 (en) 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8819236B2 (en) * 2010-12-16 2014-08-26 Microsoft Corporation Resource optimization for online services
US8868839B1 (en) * 2011-04-07 2014-10-21 Symantec Corporation Systems and methods for caching data blocks associated with frequently accessed files
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
US8935476B2 (en) * 2012-01-17 2015-01-13 International Business Machines Corporation Managing caching of extents of tracks in a first cache, second cache and storage
US9798623B2 (en) * 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
JP2014021718A (ja) * 2012-07-18 2014-02-03 Panasonic Corp 情報管理システム、機器、表示装置
WO2014126555A1 (en) * 2013-02-13 2014-08-21 Violin Memory, Inc. Mapping engine for a storage device
WO2016020977A1 (ja) * 2014-08-05 2016-02-11 株式会社日立製作所 ストレージシステム、及びキャッシュ制御方法
JP6294569B2 (ja) * 2015-06-19 2018-03-14 株式会社日立製作所 ストレージシステム及びキャッシュ制御方法
US10432723B2 (en) * 2015-09-03 2019-10-01 Toshiba Memory Corporation Storage server and storage system
US10496277B1 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Method, apparatus and computer program product for storing data storage metrics
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10754578B2 (en) * 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11445045B1 (en) * 2021-12-21 2022-09-13 Akamai Technologies, Inc. Systems and methods for preventing the caching of rarely requested objects
US11868828B1 (en) 2022-07-15 2024-01-09 Micron Technology, Inc. Message routing in a network-ready storage product for internal and external processing
US11983434B2 (en) 2022-07-15 2024-05-14 Micron Technology, Inc. Network-ready storage products with computational storage processors
US11809361B1 (en) * 2022-07-15 2023-11-07 Micron Technology, Inc. Network data storage devices having external access control
US11775225B1 (en) 2022-07-15 2023-10-03 Micron Technology, Inc. Selective message processing by external processors for network data storage devices
US11868827B1 (en) 2022-07-15 2024-01-09 Micron Technology, Inc. Network storage products with options for external processing
US11853819B1 (en) 2022-07-15 2023-12-26 Micron Technology, Inc. Message queues in network-ready storage products having computational storage processors
US11947834B2 (en) 2022-07-15 2024-04-02 Micron Technology, Inc. Data storage devices with reduced buffering for storage access messages

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282649A (ja) 1990-03-30 1991-12-12 Hitachi Ltd キャッシュメモリ制御方式
US5625793A (en) 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
JP3194201B2 (ja) 1992-02-24 2001-07-30 株式会社日立製作所 キャッシュモード選択方法
JP2761156B2 (ja) 1992-06-30 1998-06-04 キヤノン株式会社 光起電力素子及びその製造方法、並びにそれを用いた発電装置
GB2273181A (en) * 1992-12-02 1994-06-08 Ibm Cache/non-cache access control.
JPH07134634A (ja) 1993-11-11 1995-05-23 Nec Corp ディスク装置
KR0146059B1 (ko) * 1995-04-11 1998-09-15 문정환 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로
JP3282649B2 (ja) 1995-05-19 2002-05-20 キヤノン株式会社 原稿読み取り装置
JPH09288244A (ja) 1996-04-22 1997-11-04 Canon Inc 光走査装置
JPH10154101A (ja) 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6484239B1 (en) 1997-12-29 2002-11-19 Intel Corporation Prefetch queue
US6253289B1 (en) * 1998-05-29 2001-06-26 Compaq Computer Corporation Maximizing sequential read streams while minimizing the impact on cache and other applications
JP2000148584A (ja) 1998-11-10 2000-05-30 Matsushita Electric Ind Co Ltd プリフェッチ方法および装置
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6513097B1 (en) 1999-03-03 2003-01-28 International Business Machines Corporation Method and system for maintaining information about modified data in cache in a storage system for use during a system failure
EP1098249A1 (en) 1999-11-05 2001-05-09 Emc Corporation Segmenting cache to provide varying service levels
WO2001095113A2 (en) * 2000-06-06 2001-12-13 Bhavsar Shyamkant R Fabric cache
US6487638B2 (en) * 2001-01-26 2002-11-26 Dell Products, L.P. System and method for time weighted access frequency based caching for memory controllers
JP3690295B2 (ja) 2001-03-15 2005-08-31 日本電気株式会社 ディスクアレイ制御装置
US7472231B1 (en) * 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
JP2003228462A (ja) 2002-02-04 2003-08-15 E-Storage Networks Inc Sanキャッシュ装置
JP2004054845A (ja) 2002-07-24 2004-02-19 Sony Corp データ管理装置
US6981112B2 (en) 2002-08-26 2005-12-27 International Business Machines Corporation Dynamic cache disable
US7051161B2 (en) * 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
JP2004110503A (ja) 2002-09-19 2004-04-08 Hitachi Ltd 記憶制御装置、記憶システム、記憶制御装置の制御方法、チャネル制御部、及びプログラム
JP4024247B2 (ja) 2002-09-30 2007-12-19 株式会社ルネサステクノロジ 半導体データプロセッサ
US20050108478A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Dynamic frequent instruction line cache
JP5233450B2 (ja) 2008-07-02 2013-07-10 株式会社明電舎 瞬低補償装置

Also Published As

Publication number Publication date
JP2007537548A (ja) 2007-12-20
WO2005114428A3 (en) 2006-02-16
DE112005001050T5 (de) 2007-05-10
US20060026229A1 (en) 2006-02-02
WO2005114428A2 (en) 2005-12-01
US8549226B2 (en) 2013-10-01

Similar Documents

Publication Publication Date Title
JP4435831B2 (ja) ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供
EP3210121B1 (en) Cache optimization technique for large working data sets
CN110058786B (zh) 用于控制存储系统中的写请求的方法、装置和计算机程序产品
CN111587423B (zh) 分布式存储系统的分层数据策略
US8688904B1 (en) Method for managing data storage
WO2013175529A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US8140811B2 (en) Nonvolatile storage thresholding
JP2013511081A (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
US10956069B2 (en) Positional indexing for a tiered data storage system
JP4508608B2 (ja) 統合キャッシュを備えた記憶装置アダプタ
Niu et al. Hybrid storage systems: A survey of architectures and algorithms
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
Salkhordeh et al. An efficient hybrid I/O caching architecture using heterogeneous SSDs
US11513849B2 (en) Weighted resource cost matrix scheduler
US9298397B2 (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
US6978349B1 (en) Adaptive cache memory management
Ari et al. SANBoost: automated SAN-level caching in storage area network
US20220334976A1 (en) Method and Apparatus for Cache Slot Allocation Based on Data Origination Location or Final Data Destination Location
US20170097887A1 (en) Storage Controller Cache Having Reserved Parity Area
US10078642B1 (en) Dynamic memory shrinker for metadata optimization
Park et al. A new file system I/O mode for efficient user-level caching
US10592124B2 (en) Predictable client latency via background file system operations
US20240104468A1 (en) Maintenance background task regulation using feedback from instrumented waiting points
JP2021028773A (ja) ストレージシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090821

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

LAPS Cancellation because of no payment of annual fees
R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350