JP5620581B2 - キャッシュ階層化のための方法およびシステム - Google Patents

キャッシュ階層化のための方法およびシステム Download PDF

Info

Publication number
JP5620581B2
JP5620581B2 JP2013525099A JP2013525099A JP5620581B2 JP 5620581 B2 JP5620581 B2 JP 5620581B2 JP 2013525099 A JP2013525099 A JP 2013525099A JP 2013525099 A JP2013525099 A JP 2013525099A JP 5620581 B2 JP5620581 B2 JP 5620581B2
Authority
JP
Japan
Prior art keywords
data
cache
storage
layer
policy
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
JP2013525099A
Other languages
English (en)
Other versions
JP2013536515A (ja
Inventor
サカリアッセン,ラヤン
ラム,スティーヴン
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2013536515A publication Critical patent/JP2013536515A/ja
Application granted granted Critical
Publication of JP5620581B2 publication Critical patent/JP5620581B2/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本願は、2010年8月25日に出願された米国仮出願第61/377,018号の優先権を主張する。その出願の内容はここに参照によってその全体において組み込まれる。
発明の分野
本発明は概括的にはコンピュータ・データ記憶に、より詳細には階層化された(tiered)キャッシュ構造を提供する方法およびシステムに関する。
二つの具体的な新たなクラスの記憶装置が近年、一般的な記憶装置として登場し、ますます広く入手可能になるとともに簡単にアクセスできるようになりつつある:フラッシュ・メモリに基づく半導体ドライブ(SSD: Solid State Drive)とクラウド記憶である。このそれぞれは、当技術分野において、性能およびコストにおいて、コンピュータ記憶システムにおいて多年にわたって主流であり続けてきた回転媒体式ハードディスク・ドライブとは明確に区別されることが知られている。各カテゴリーの記憶装置には、純粋なデータ記憶の観点から独自の強みがある。たとえばSSDは高速であり、通常のハードドライブは安価であり、クラウド記憶は柔軟である。現在使われているところでは、種々の記憶装置が所与のコンピュータ・システムによってアクセス可能であり、その記憶装置との対話は相異なるデータ・フローを使って管理される。図1は複数のクラスの記憶装置と対話する、典型的な従来技術のシステムを示している。
種々のクラスの記憶装置間の特性、性能およびコストの差は一般に、各クラス内でのさまざまな製品もしくは技術間の差よりも大きい。結果として、あらゆるカテゴリーの記憶装置を適宜使ってデータ記憶を管理することで、そのそれぞれの強みを最もよく活用できることが望ましい。当技術分野では、SSDを通常のハードドライブのためのキャッシュとして機能させるというトレンドが登場しつつある。だが、実装方法は原始的であり、システム毎に、通常のハードドライブとSSDとの間の簡略化されたデータ・フローを用いて設計される。
ここ数年にわたって、階層化(tiering)――データに適用されるポリシーに基づいてデータを別個の記憶装置に入れる――というアイデアが、データ管理にまつわるビジネス上の目標、たとえばコスト効率、データ保持または規制準拠を達成するために使われてきた。たとえば、すべてのデータはアーカイブされてもよく、敏感なデータは暗号化されてもよく、頻繁に使用されるデータはそのユーザーの近くに保持されてもよい、などである。この種の階層化は、主として、それらの階層のために使われる記憶装置またはデータ記憶システムによって区別されるのが習慣であった。
本発明の分野における現行の解決策は、一般に、図1に示されるような、ネットワーク・ベース(機器または記憶領域ネットワーク(Storage Area Networks))ブロック・ベースのキャッシュを使うおよび/または記憶装置(またはクラウド記憶の場合は記憶サービス)オプションの固定リストである。
従来技術のシステムは特定の諸クラスの記憶装置の利点を利用するものの、コンピュータ・システムと個別的な記憶装置との間の対話によってその使途が制限される。さらに、アプリケーション・レベルでは、種々のクラスの記憶装置からのデータ取得に対応しなければならないこともしばしばである。さらに、種々の記憶装置クラスの種々の利点からの相乗効果は、たとえあったとしてもほとんど実現されていない。よって、従来技術のシステムは、記憶装置がシステム内の他の種々のクラスの記憶装置には関わりなく独立に機能するので、記憶装置の物理的な明示に制限される。
したがって、種々のクラスの記憶装置の利点から帰結する、該種々のクラスの記憶装置を独立に使うことで実現できるものを超えた利益を達成する階層化されたキャッシュ構造を提供する新規なシステムおよび方法を提供することが本発明の目的である。
本発明は、種々のクラスの記憶装置を単一のデータ組織化手段(means to organize data)内に透明に統合して、それにより該種々のクラスの記憶装置の使用に対する、各クラスの記憶装置が独立に動作しそれぞれ独自のデータ組織化手段をもつ場合の利点を超える相乗的な恩恵を実現する新規なシステムおよび方法を提供する。本発明は、任意のクラスの記憶装置を任意の他のクラスの記憶装置上にキャッシュし、任意的に、そのようなキャッシングを複数のクラスおよび型の記憶装置の間で統合された仕方で提供することができる一般化されたキャッシュ・システムおよび方法を提供する。
本発明のある実施形態によれば、コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶する方法であって、少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュ・システムを提供し、あるポリシーに基づいて前記キャッシュ層および前記基本層の少なくとも一方にデータを記憶し、データ組織化手段によって前記データのアプリケーション・ビューを前記アプリケーションに呈示することを含む方法が提供される。好ましくは、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む。さらに、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは、異なる記憶資源上に配置され、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む。
本発明のある側面によれば、前記方法は、少なくとも一つのオーバーフロー層を提供することを含む。前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む。
本発明のもう一つの側面によれば、前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む。前記少なくとも一つのキャッシュ層は、オペレーティング・システムとの関連で使用されるオペレーティング・システム・ファイル・バッファ・キャッシュであってもよい。
本発明のもう一つの側面によれば、前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる。
本発明のもう一つの側面によれば、前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される。
本発明のもう一つの側面によれば、前記方法はさらに、前記データを前記基本層上に記憶し、前記データを前記複数のキャッシュ層の一つまたは複数上にキャッシュすることを含み、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする。
本発明のもう一つの側面によれば、各キャッシュ層レベルは二つ以上の記憶資源を含む。
本発明のもう一つの側面によれば、前記データ組織化手段は使用される特定の記憶装置に関知しない。
本発明のもう一つの側面によれば、データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉システムによって、捕捉する段階。
本発明のもう一つの側面によれば、本方法はさらに、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにする段階を含む。
本発明のもう一つの側面によれば、前記ポリシーはポリシー・モジュールによって与えられる。
本発明のもう一つの側面によれば、前記ポリシー・モジュールは前記捕捉システムと一体である。
本発明のもう一つの側面によれば、前記ポリシー・モジュールは前記データ組織化手段と一体である。
本発明のもう一つの側面によれば、前記捕捉する段階がさらに、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡すこと;(b)捕捉された動作の完了をログ記録すること;および(c)捕捉された動作を変更して前記データ組織化手段に渡すこと、のうちの一つを含む。
本発明のもう一つの側面によれば、前記方法はさらに、前記捕捉システムと前記記憶資源との間にデータ変換エンジンを設けることを含む。
本発明のもう一つの側面によれば、前記方法はさらに、前記データ組織化手段の外部でポリシーを実行する段階を含み、前記ポリシーを実行する段階は前記データ変換エンジンによって実行される。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較するための完全性モジュールを有する。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、脱重複(de-duplication)段階を実行するための脱重複モジュールを有する。
本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むためのオーバーフロー・モジュールを有する。
本発明のもう一つの側面によれば、前記方法はさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを提供することを含む。
本発明のもう一つの側面によれば、前記方法はさらに、各データ記憶資源が前記データ変換エンジンに対して一様に見えるよう、データ記憶資源情報を抽象化する(abstracting)段階を含む。
本発明のもう一つの側面によれば、前記方法はさらに、少なくとも二つ以上のデータ記憶資源をプールする段階を含む。
本発明のもう一つの実施形態によれば、コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶するシステムであって、少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュ・システムであって、前記データは、あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方に記憶される、階層化キャッシュ・システムと、前記データのアプリケーション・ビューを前記アプリケーションに呈示するデータ組織化手段であって、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、データ組織化手段とを含む、システムが提供される。
本発明のある側面によれば、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは、異なる記憶資源上に配置され、さらに、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む。
この実施形態のもう一つの側面によれば、前記システムは、少なくとも一つのオーバーフロー層を含み、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む。
この実施形態のもう一つの側面によれば、前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む。
この実施形態のもう一つの側面によれば、前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる。
この実施形態のもう一つの側面によれば、前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される。
この実施形態のもう一つの側面によれば、前記データは前記基本層上に記憶され、前記複数のキャッシュ層の前記一つまたは複数上にキャッシュされ、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする。
この実施形態のもう一つの側面によれば、各キャッシュ層レベルは二つ以上の記憶資源を含む。
この実施形態のもう一つの側面によれば、前記データ組織化手段は使用される特定の記憶装置に関知しない。
この実施形態のもう一つの側面によれば、データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉するための捕捉システムをさらに有する。
この実施形態のもう一つの側面によれば、前記捕捉システムは、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにするよう適応されている。
この実施形態のもう一つの側面によれば、前記システムは、前記ポリシーを与えるポリシー・モジュールをさらに有する。
この実施形態のもう一つの側面によれば、前記ポリシー・モジュールは前記捕捉システムと一体である。
この実施形態のもう一つの側面によれば、前記ポリシー・モジュールは前記データ組織化手段と一体である。
この実施形態のもう一つの側面によれば、前記捕捉システムがさらに、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡す手段;(b)捕捉された動作の完了をログ記録する手段;および(c)捕捉された動作を変更して前記データ組織化手段に渡す手段、のうちの少なくとも一つを含む。
この実施形態のもう一つの側面によれば、前記捕捉システムと前記記憶資源との間にデータ変換エンジンが設けられる。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較するための完全性モジュールを有する。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、脱重複(de-duplication)段階を実行するための脱重複モジュールを有する。
この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むためのオーバーフロー・モジュールを有する。
この実施形態のもう一つの側面によれば、前記システムはさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを有する。
この実施形態のもう一つの側面によれば、少なくとも二つ以上のデータ記憶資源がプールされる。
これから単に例として、実施形態について付属の図面を参照しつつ述べる。
各記憶資源またはデータ記憶システムが管理および相互接続されたデータ・フローの両方の点で別個である、従来技術のコンピュータ記憶モデルを示している。 本発明に基づく記憶モデルを示している。 本発明のある実施形態に基づく一般的な記憶階層かモデルを示している。 図3の記憶モデルの洗練されたバージョンを示している。 本発明のある実装に基づくブロック図である。 4方向(4-way)RAID0構成をエミュレートする、複合記憶資源として使われるmin-OR記憶ツリーの例を示している。 ミラーの一つがRAID6等価構成である、より複雑な3方向(3-way)RAID1ミラーリングを示す、複合記憶資源として使われる例示的なmin-OR記憶ツリーを示している。 本発明が実装されうる一般化されたコンピュータ・システムを示している。 本発明と一緒に使うための代表的なデータ変換エンジンを示している。
本発明は、種々のクラスの記憶装置を単一のファイルシステム内に透明に統合して、それにより該種々のクラスの記憶装置の使用に対する、各クラスの記憶装置が独立に動作しそれぞれ独自のファイルシステムをもつ場合の利点を超える相乗的な恩恵を実現する新規なシステムおよび方法を提供する。以下の説明に鑑みて当業者には明白になるであろうが、本発明は、任意のクラスの記憶装置を任意の他のクラスの記憶装置上にキャッシュし、任意的に、そのようなキャッシングを複数のクラスおよび型の記憶装置の間で統合された仕方で提供することができる一般化されたキャッシュ・システムおよび方法を提供する。本発明は理解の簡単のためにファイルシステムに関して記述されるが、任意のデータ組織化手段が使用されうることは理解されるであろう。それに含まれるものとしては、これに限られないが、データベース、特にオブジェクト・データベース、鍵値ストア、いくつかのネットワーク・プロトコルおよびいくつかの共有データ・システムがある。
上記の機能を実装する際に、出願人は次のような問題に直面する。(a)アプリケーションやオペレーティング・システムに対する変更を必要とすることなく、記憶装置のユーザーが本稿に記載されるような恩恵を経験できるよう、いかにして種々の記憶装置を透明に統合するか。(b)新たな技術が登場する際にも本発明が実装できるよう、多くの利用可能なオプションのうちからの記憶装置の選択に関知せずにいるにはどうすべきか。(c)一般的なレベルで記憶装置の安全性および完全性をいかにして提供するか。(d)低速またはリモートである記憶装置についてのレイテンシー問題にいかにして対処すべきか。以下は、これらの問題をいかにして解決して本発明に至ったかについての簡単な、トップレベルの説明である。本発明の実施についてのより詳細な説明はその後に述べる。
透明な統合の問題は、主要なデータ記憶システムの既存の、ユーザーに見える編成(ファイルシステム内のファイルシステム・メタデータのような)を保持して、同じもしくは他の記憶装置上へのデータ配置を独立して制御させることによって解決できることが発見された。これは、図1に示されるような従来技術のシステムのデータ・フローおよび編成を、図2に示されるようなものに変更する。図2では、本発明に従い、記憶の各レイヤー(layer)または層(tier)がより低位のレイヤーのためのフロントエンドになっている。
不関知(agnosticity)問題に関しては、システム内の各記憶装置を一般的データ記憶資源として使い、根底にある記憶機構を抽象化し去ってすべての装置についての一様なインターフェースを提供することにより、その特定のクラスの記憶装置から得られる固有の物理的利点を保持しつつも、各クラスの記憶装置が同じに見え、よって関知せずに扱われることができることが発見された。
安全性および完全性問題は、クラウド記憶の場合にありうるようにユーザー/所有者の管理外のどこかに記憶されているデータを含め、システムを通過するあらゆるデータのポリシー・ベースの処理を提供することによって解決された。さらに、これは、すべての装置についての一様なインターフェースを提供するというもう一つの利点である。それによりすべての装置が関知せずに扱われることができ、よってそこに記憶されているデータを、記憶装置クラスやデータが存在する特定の記憶装置に関わりなくポリシー・ベースの処理にかけることができる。
レイテンシー問題は、複数の記憶装置についての透明な統合を使ってパフォーマンスを最適にするよう諸記憶層のキャッシュ・カスケードを提供することによって解決される。すなわち、どのクラスにデータが記憶されるかを決定する際、特定の諸クラスのデータ記憶の物理的な特性が考慮に入れられうるよう規則が適用されてもよい。あるいはまた、層のより高いレベルがより高速な記憶クラスを与えられるようシステム・レベル設計が最初において適用されてもよい。
本発明は、概括的にはコンピュータ・システムのコンテキスト内で動作し、図8に一例を示す一般的な既知のコンピュータ・システムにとって利用可能なデータ記憶機能に対する改善を提供するはたらきをする。図のように、コンピュータ・システム20はいくつかの物理的および論理的コンポーネントを有しており、それに含まれるものとしては、中央処理ユニット(「CPU」)24、ランダム・アクセス・メモリ(「RAM」)28、入出力(「I/O」)インターフェース32、ネットワーク・インターフェース36、不揮発性記憶40およびCPU 24が他のコンポーネントと通信できるようにするローカル・バス44がある。CPU 24はオペレーティング・システムおよびいくつかのソフトウェア・システムを実行する。RAM 28はCPU 24に対して比較的反応のよい揮発性記憶を提供する。I/Oインターフェース32は、キーボード、マウスなどといった一つまたは複数の装置から入力が受領されることを許容し、ディスプレイおよび/またはスピーカーのような出力装置に情報を出力する。ネットワーク・インターフェース36は他のシステムとの通信を許す。不揮発性記憶40はオペレーティング・システムおよびプログラムを記憶する。コンピュータ・システム20の動作の間、オペレーティング・システム、プログラムおよびデータは、実行を容易にするために不揮発性記憶40から取得され、RAM 28に入れられてもよい。
図2の例は本発明の一つのトップレベルの実装を示している。ここでは、コンピュータ・システム200は階層化されたキャッシュ構造からのデータにアクセスする。ここで、キャッシュ構造は、SSDで実装されるキャッシュ層210と、通常のハードドライブで実装される基本層220と、クラウド記憶サービスで実装されるオーバーフロー層230とを含む。図のように、ファイルシステム240はいまだ、既知のコンピュータ・システムにおいてファイルシステムが通常存在する基本層220上に、すなわちハードディスク・ドライブ上に存在していてもよい。
ここで図3を参照するに、本発明に基づくトップレベルのデータ・フローが示されている。ファイルシステム340は、データ記憶システムの拡張であり、コンピュータ300によってアクセス可能な記憶装置のいずれに位置されていてもよい。一連のキャッシュ層310や基本層320およびオーバーフロー層330が示されている。各キャッシュ層は当該層内に図のようにそれぞれ任意の数の記憶資源311、321および331を有していてよい。本発明によれば、より高レベルの層は、スタック中より低位の他の層からのデータをキャッシュする。諸キャッシュ層310には、より高レベルのキャッシュ層310がより低レベルにあるキャッシュ層310aからのデータをキャッシュするという階層構造がある。基本層320はデータのハードな源であり、記憶はこのレベルで完了される。オーバーフロー層330は、基本層320がいっぱいである場合にデータが入れられるところである。
一般には、一つまたは複数のキャッシュ層310、単一の基本層320があり、オーバーフロー層330は任意的に設けられる。ただし、複数のオーバーフロー層330があってもよい。任意のクラスのデータ記憶装置が使用されてもよく、二つ以上の層について使用されてもよい。各層で使用される記憶の特定のクラスは好ましくは図2に示したようなものだが、他のクラスの記憶も考えられる。たとえば、複数のキャッシュ層は、オペレーティング・システムと連携して使われるのが好ましいオペレーティング・システム・ファイル・バッファ・キャッシュ上に実装されてもよい。この例では、本発明は、ファイル・バッファ・キャッシュの使用においてオペレーティング・システムと協働するが、ファイル・バッファは排他的な資源として使われるのではない。すなわち、ファイル・バッファ・キャッシュの下にキャッシュすることは暗黙的にはファイル・バッファ・キャッシュを使うことになるが、本発明はそれ以上のことを考えており、何かがファイル・バッファ・キャッシュにはいるか否かについての明示的な制御があり、本発明は、既存のシステムにおけるファイル・バッファ・キャッシュの典型的な使用を超えた仕方で動作する。
本発明は、ファイルシステム340メタデータが、他の目的にも使われるものを含め任意の記憶資源上に記憶されることをも許容する。実際上、すべてのデータは、ある層から次の層に配置されるまたは動かされる際、コンピュータ・システム300を通って動く。すなわち、コンピュータ・システム300は、本発明を実行するための命令およびファイルシステム340メタデータに基づいて本発明の層キャッシュ・レベル間でデータを転送することを担う。
図3は本発明の具体的なトップレベルの実装を示しているが、図3に示したデータは単一の型である。図4を参照するに、複数の型のデータ450a、450b、450cおよび450nを組み込む本発明の一般化された実装が示されている。たとえば、データ型450aは二つのキャッシュ層410aおよび410bならびに基本層420上に存在している。データ型450bおよび450cは異なるキャッシュ層上に、だが同じ基本およびオーバーフロー層上に存在する。記憶資源411、421および431はそれぞれキャッシュ層410、基本層420およびオーバーフロー層430上に存在する。当業者によって理解されるであろうように、本発明は、図4の一般化された事例において示されるように、キャッシュ層の任意のものにおいて任意の具体的な型の記憶資源上に記憶される任意の型のデータを考えている。各種類のデータについて、後述するポリシーによって決定されるところにより、階層化(tiering)スタックが存在する。すべてのキャッシュ層およびオーバーフロー層はオプションであり、基本層だけが必須である。データはその階層化スタックを通じて順に流れる。同じ記憶資源が衝突なしに複数の階層化スタックに現れることもありうる。記憶資源の名前空間において明示的にまたは記憶されるデータについての命名アルゴリズムにより暗黙的にデータを分離する機能のおかげである。これらの機能の実装の詳細はのちに述べる。当業者によって理解されるであろうように、本発明は、複数のクラスの記憶資源を横断してデータが管理され、記憶されることのできる新たなパラダイムを提供する。
図3および図4は記憶資源を含むものとして記述してきたが、これらは物理的な資源自身の上に他の編成情報を組み込むデータ記憶システムであってもよい。本発明は、各層での記憶資源の編成に対する構造をも提供する。図3および図4における各記憶資源はデータ記憶ツリーとして編成されてもよい。ツリー内の特定のノードが葉であれば、そのノードは本発明の実装の何らかのレベルにおける一様なインターフェースをもつデータ記憶資源である。特定のノードが内部ノードであれば、このノードについてデータを記憶することは、最小数のその子ノードについてデータを記憶することを表す。よって、そのような記憶ツリーの内部ノードは、その特定の枝の最上位の記憶レイヤーであり、ファイルシステムには、当該内部ノードから発する葉記憶資源を管理するためのセマンティクス(semantics)を含む単一の記憶資源のように見える。さらに、本発明は、生のブロック記憶(ディスク装置のような)、ファイルシステムおよび鍵値ストアを含む複数の形のデータ記憶システムまたは記憶資源のためのサポートを考えている。これらの記憶資源のそれぞれは、複雑な構造を有していてもよく、たとえば別個のディスクからのブロックを含んでいてもよいが、それでも、本発明を実装するために、そしてその後、記憶資源の根底にある詳細には関知しない使用アプリケーションまたはオペレーティング・システムにビューを提供するために、本発明のファイルシステム340、440への一様な出力が呈示される。これらの特徴の実装の詳細は以下の記述に鑑みて明白となるであろう。
まとめると、本発明は、以下の、限定するものではない、それぞれ独特な特徴をもつ。
a)それぞれの(ポリシーによって決定される)データ・カテゴリーが独自の諸層のスタックをもつ、一般的なキャッシュ階層化記憶モデルを使う。
b)使用されている具体的な記憶装置には関知しない。
c)既存のデータ記憶システム(たとえばファイルシステム)の拡張として生成されることができるとい点でユーザーにとって透明である。
d)データ記憶システムの、根底にある実装ではなく、ユーザーに見える編成に基づくので、たとえばファイルシステムにとってはブロック・ベースではなくファイル・ベースである。
e)既存のオペレーティング・システム・インストールの追加された機能として展開される、またはネットワーク・アプライアンス(appliance)としてパッケージングされることができる。
さらに、本発明は、これらの機能を、主要インターフェースとして実際の記憶資源より上のより高いレベルの抽象化を提供する、ファイルシステム以外のデータ記憶システムのために、たとえばデータベース、特にオブジェクト・データベース、鍵値ストア、いくつかのネットワーク・プロトコルおよびいくつかの共有データ・システムのために提供することができる。
本発明の結果の利点およびトップレベルの詳細について述べたので、当業者が本発明を実施できるようにするための好ましいシステムおよび方法について、本発明のある好ましい実施形態を示す図5を参照して述べる。図5では、コンピュータ・システム上のアプリケーション510にインターフェースを呈示するとともに捕捉システム560と通信するファイルシステム540が示されている。捕捉システム560は、本発明に基づくキャッシュ階層化された記憶システムを提供する際に使われるさまざまなデータ記憶装置590の間で動くデータを捕捉するようポリシー・モジュール570からの命令に基づいて動作する。データ変換エンジン580およびデータ記憶インターフェース585が設けられている。これらは、捕捉システム560またはファイルシステム540のいずれかによるデータに対する操作を実行するのに先立って、後述するようにデータを処理する。
〈ファイルシステム〉
本発明はファイルシステム540の使用を要求する。ファイルシステム540の一般的な性能および機能は、当技術分野において、オペレーティング・システム/アプリケーションとデータ記憶システムの間のインターフェースであることが知られている。ファイルシステム540は好ましくは、修正されることなくアプリケーションが使用できるファイルシステム・インターフェースをアプリケーションに対して呈示する。このようにして、ファイルシステム540は、最適化された仕方で本発明の教示を活用および利用する新たな型のファイルシステムであってもよいし、既存のファイルシステムの修正されたバージョンであることもできるし、あるいは既存のファイルシステムの拡張バージョンであることもできる。それぞれの場合において、完全なファイルシステム機能性は保持され、よってデータはファイルシステムに記憶されることができるが、選択ポリシーにマッチするファイルシステム動作は、捕捉システム560と称されるモジュールにリダイレクトすることにより、従来技術のファイルシステム動作とは異なる仕方で処理される。既存のファイルシステムを拡張する場合、捕捉システム560へのこのリダイレクトを実装するための一つの具体的なシステムおよび方法が、出願人の、「データ記憶システム機能を拡張するシステムおよび方法」という名称の同時係属中のPCT出願第PCT/CA2011/050514において開示されている。この出願の内容はここに参照によって組み込まれる。
ファイルシステム・インターフェースを提供しないデータ記憶システムのために、本発明は、そのデータ記憶システムの好ましいインターフェースを提供する。ファイルシステムについて行ったように他のデータ記憶システムについてデータ・フローを修正することに対しても、同じ原理が同様の仕方で当てはまる。
〈捕捉システム〉
本発明の追加される機能の実装により通常のファイルシステム機能を拡張するために、捕捉(intercepting)システム560が提供される。捕捉システム560はファイルシステム動作を適切に捕捉し、そうした動作がファイルシステム自身の外部で透明に処理されることを許容するよう適応されている。任意的に、捕捉システム560はファイルシステム自身の拡張であってもよいし、あるいは捕捉システム560は組み込みのオペレーティング・システム機能を利用することによって提供されることもできるし、あるいは他の仕方で、たとえば当技術分野において現在利用可能な市販製品を通じて提供されることもできる。本発明は、捕捉システム560の特定の実装に限定されるものではない。
本発明の目的のためには、捕捉システム560はポリシーに従ってデータ記憶システム内の入出力動作を分離するために提供される。一組の動作は通常通りデータ記憶システムのために進行し、別の一組は捕捉システムによってポリシーに従って捕捉される。このようにして、データ記憶システムはそのもとの機能を保持し、(a)データ記憶システムのセマンティクスが保持されるので、捕捉システム560の動作が一般にデータ記憶システムのユーザーにとって透明であること、(b)データ記憶システムのセマンティクスが捕捉システムによって拡張されること、および(c)データ記憶システム自身が、捕捉システムによって、そのポリシーを実装する際に、資源として使用可能であること、を許容する。
本発明は、本発明の一般的な性質および教示から外れることなく、上記の機能からの変形および逸脱を考えている。たとえば、コンテキストに依存してデータが異なる見え方をすること(データ多形)を含むポリシーを実装する場合、データ記憶システムのセマンティクスは保持されなくてもよく、捕捉システムによって上書きされてもよい。これは、上記の(b)のようにファイルシステム・セマンティクスを拡張する一つの方法でもある。
上記(c)に関しては、ポリシーが、ある種のファイルが暗号化されるが、他の点では暗号化しない場合のように同じファイルシステム上に同じように記憶されるべきであることを指定できることが考えられている。あるいは、捕捉システムがその機能を支援するようファイルシステム上でデータベースを維持できることが考えられている。あるいは本発明の好ましい実施形態の場合のように、ファイルシステムがすべてのメタデータについて責任を負うままであってもよく、捕捉システムが一部または全部のデータについての責任を引き継ぐことができることが考えられている。
したがって、捕捉システム560は、階層化されたキャッシュ記憶の根底にある構造とアプリケーション・レベルで呈示されるファイルシステム540との間のインターフェースを提供する。ファイルシステム自身が複雑な複合ファイルシステムであることができることを注意しておくべきである。たとえばメタデータが物理的に分散されることができるようにし、ファイルシステムが分散されたキャッシュおよびロック管理を提供してデータ完全性を確保するのである。
上記のような捕捉システムを使えば、データ記憶システムのユーザーに見える編成は、捕捉システムがデータをどのように配置するよう決定しようとも、明らかに不変である。これは、先に論じたように、種々の記憶装置の透明な統合を提供する問題に対する一つの解決策である。しかしながら、記憶装置の異なる特性およびクラスを考えると、ユーザー経験は、捕捉システムによってなされることのできるデータ配置の選択のパフォーマンス特性によっても影響される。この問題を解決する典型的な方法は、キャッシュを用いることであり、捕捉システムがデータをどこにでも配置できることを考え、本発明は、ユーザーおよびそのアプリケーションのためのパフォーマンスの最適化を支援するために、上記のようなキャッシュ階層化記憶モデルを適用する。
〈ポリシー〉
本発明は、ポリシー・モジュール570をも提供する。あるいはまた、ポリシーは捕捉システム中に組み込まれてもよいし、あるいはファイルシステムの拡張として提供されてもよい。ポリシーおよびその実行は、好ましくは、本発明の他のすべての主要なモジュールの動作を指示する。ポリシー・モジュールは好ましくは、ポリシー記憶機能およびユーザー・インターフェース機能を包含する。
一般に、ポリシーとは、動作に関連付けられたコンテキスト・パターン、または、データの記憶および処理が実行される際の具体的な規則である。たとえば、ポリシーは、「.avi」拡張子をもち1メガバイトより大きないかなるファイルについても、そのファイルはカーネル・ファイル・キャッシュを通じてバッファリングしないこと、あるいは許容される仕事時間外にファイル・データにアクセスする任意のユーザー「ジョー」について、その動作を実行しないこと、あるいは新しいデータを常に「サイト外記憶」と名付けられるデータ記憶に複製すること、あるいはこの動作の完了のためにスペースが不十分である場合に、「クラウド記憶」上の記憶を利用すること、を規定してもよい。これらの例は単に、ポリシーを通じて適用されうる幅広い多様な規則を例解するために与えられている。本発明の教示を適用する際に、さまざまな他のポリシーがポリシー・モジュール570によって実装されてもよい。
任意的に、これらのポリシーをポリシー・モジュール570に伝えるためにユーザー・インターフェースが設けられてもよい。これはたとえば、最初に本発明に基づく階層化されたキャッシュを既存のコンピュータ・システムと統合する際に実行されるアプリケーションであることができる。あるいはまた、本発明の管理者にとってアクセス可能なアプリケーションであることもできる。ポリシー・モジュール570に関し、パターンは、観察、要求されるアクションまたはデータ状態として定義され、それに応答してポリシー・モジュール570はアクションを実行し、あるいは本発明の他の任意の要素によるアクションの実行のための手配をする。ポリシー・モジュール570の本発明の他の要素のそれぞれとの対話について以下で述べる。
ポリシーは、ポリシー・モジュール570により、どのファイルシステム動作を捕捉システム540が捕捉するか、捕捉されたらそれをどうするかを制御する。捕捉は、コンテキストが捕捉システム540に利用可能な際、コンテキスト・パターンを照合することによって制御される。コンテキストは本稿では、アプリケーションによって開始されたある特定の動作に関してファイルシステムに利用可能な任意の情報として、広義に定義される。この情報の例としては、これに限られないが、次のようなものが含まれる。(a)動作を要求するプロセスの識別情報、(b)動作を要求するプロセスの所有者の識別情報、(c)関与するファイルの名前、(d)要求される動作、(d)要求される動作のパラメータ、(e)動作に関与するファイルの、これに限られないがサイズ、作成日時、最終修正時を含む個々の属性、(f)日時、システム状態、システム資源使用などといった一般的なコンテキスト情報、(g)アプリケーションがローカルかリモートか、(h)ファイルがローカルかリモートか。本稿は、ポリシーとポリシー・モジュールは交換可能なものとして言及する。実際上、ポリシーは、ポリシー・モジュールによって実行されるまたは伝達される任意の命令の集合である。
捕捉システム540は、ポリシー・モジュール570からの適応ポリシーに応答して、次の三つのアクションのうちの一つを行ってもよい:(i)捕捉された動作をデータ変換エンジン580に渡して、ファイルシステムに何を伝達するかをデータ変換エンジンによって告げられるのを待つ;(ii)捕捉された動作が発生したことを記録する(可能性としては、状態変化またはログ記録機能の一部として);(iii)捕捉された動作を変更してファイルシステム内ですぐに先に渡す。ポリシー・モジュール570は捕捉システム540に、ひとたび特定のコンテキスト・パターンを認識したら何をすべきかを命令するよう適応されている。
ポリシー・モジュールは、上記のように種々のキャッシュ層において種々の記憶資源上でデータを適応的に記憶するための上記の階層化されたキャッシュ・モデルを実装する規則を含んでいる。
〈データ変換エンジン〉
ポリシーは、好ましくはデータ変換エンジン580の一部をなすまたはデータ変換エンジン580と通信する一組の機能モジュールを与えられて、捕捉された各動作が具体的にいかにして処理されるかを決定する。任意的に、ポリシーは、同じアクションがコンテキストに基づいて種々の具体的な仕方で実行されることができるよう、そうした機能モジュールについてのパラメータをも提供する。データ変換エンジン580は好ましくは、ファイルシステムの動作フローの外部でポリシーを実行することを担う。のちに詳述するデータ記憶インターフェース585は、データ変換エンジン580と本発明の階層化されたキャッシュ編成の提供に使われるデータ記憶資源との間のインターフェースを提供する。
本発明によれば、ポリシー・モジュールはデータ変換エンジン580によって使用されるデータ記憶ラベルを、そのデータ記憶ラベルを与えられたときに入出力動作を実行するために使われるアルゴリズムと関連付ける。
データ変換エンジン580は好ましくは、各ポリシー・アクションについて一組の処理命令にアセンブルされたいくつかの機能モジュールを含む。単純なアクションは、各機能モジュールについて一つの入力および一つの出力をもって構成される原始的な一組の機能モジュールによって表すことができる。よって、データ変換エンジン580の最も単純な型は、固定したポリシーをもち、したがって、互いと固定した接続をもちそれぞれ一つの入力および一つの出力をもつ機能モジュールを使う。実際上は、機能モジュールは、実は、より低レベルのモジュールが実行する前および後の両方において動作を実行することができなければならない。よって、概念上の単一入力単一出力モジュールは実際には、たとえばデータ変換エンジン580内の各機能モジュール間の対話的な相互作用を許容するために、二つの入力および二つの出力をもつ。
データ変換エンジン580の役割は、捕捉された動作をこの処理フローを通じて送り、捕捉システム540に情報を返すことである。それにより捕捉システム540は、ファイルシステムおよびそれを使うアプリケーションにとって透明に、捕捉された動作を処理するというその責任を適正に果たすことができる。機能モジュールは本発明の個別的な目に見える機能を提供するために作成される。特に本発明に関し、機能モジュールは特に、キャッシュ階層化モデルに関係するが、追加的な機能を提供するために他の機能モジュールもこのレベルにおいて実装されることができる。
図9を参照するに、本発明に基づくキャッシュ階層化を実装するために、好ましくは以下のモジュールが設けられる。
読み出しキャッシュ・モジュール905は、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するために設けられてもよい。データが最高層にキャッシュされていなければ、読み出しキャッシュ・モジュール805は、この特定のデータについて最高キャッシュへの、書き込みキャッシュ・モジュールによって実行される書き込み動作を、待ち行列に入れてもよい。
書き込みキャッシュ・モジュール910は、たとえば、最高キャッシュ層にデータを書き込み、キャッシュ層を下った次のレベルへの書き込みを待ち行列に入れる書き込み動作を実行するために設けられてもよい。特定のデータが種々のキャッシュ・レベルに記憶されることに関するデータ記憶規則は、好ましくはポリシーによって指定される。
暗号モジュール915は、書き込み動作のためにデータを暗号化し、読み出し動作のためにデータを復号するために設けられてもよい。暗号化の方法および型は本発明によって限定されない。いかなる型の暗号モジュールおよび/または方法が使用されてもよい。
完全性モジュール920は、読み出し動作については、データに対して内容ハッシュまたはチェックサムを計算し、それをメタデータに記憶されている値と比較し、エラー時には適切なアクションを取り、あるいは書き込み動作については、データに対して内容ハッシュまたはチェックサムを計算し、その値をメタデータに記憶するために設けられてもよい。
脱重複モジュール925は、書き込み動作を実行する際、書き込みがそのように指定されているデータ記憶(たとえばクラウド記憶)に進む場合、その書き込みを脱重複する(de-duplicate)――すなわちそのデータがデータ記憶にすでに存在しているのでない場合にのみそのデータを書き込む――よう設けられてもよい。
オーバーフロー・モジュール930は、記憶資源上の不十分なデータ・スペースへの失敗した書き込みが観察されると、その書き込み動作を異なる記憶資源にリダイレクトするために設けられてもよい。本発明の場合、これは好ましくはオーバーフロー層へのリダイレクトである。
当業者は、これらのモジュールのそれぞれが、たとえば内容ハッシュまたはチェックサムの特定の選択、オーバーフローのための代替的なデータ記憶、暗号化機構の選択などにおいて、アクティブなポリシーによってパラメータ化されることを理解するであろう。ポリシーの詳細は本発明によって限定されない。むしろ、階層化されたキャッシュ・システムのコンテキストにおけるそのようなモジュールの構成がここで定義される。さらに、これらのモジュールは、待ち行列に入れられた書き込みを完遂する、キャッシュを維持するおよびプリエンプティブなまたは予測的な計算を実行するといった動作を実行するヘルパー・プロセスおよび/またはスレッドを与えられてもよい。機能モジュールはまた、動作および該モジュール中を流れるデータに関する独自の共有されるメタデータへのアクセスを有していてもよい。このメタデータは、ファイルシステム中に、あるいはデータベースまたは他の何らかの共有されるデータ構造中に記憶されることができる。
機能モジュールは、ファイルシステムを通じた動作フローに影響するために捕捉システムを使うこともできる。たとえば、暗号モジュールは、単にファイルシステムがそのデフォルトの暗号アクションを通過するデータに対して実行することを要求することによって動作してもよい。このアーキテクチャを用いて、複製、圧縮、バージョニング、名前仮想化、一般データ仮想化、データ多形および他の多くの機能といった他の機能が可能である。
〈データ記憶インターフェース〉
データ記憶インターフェース585は、好ましくは、データ変換エンジン580と本稿に記載される種々の階層化されたキャッシュ・レベルで使われる根底にある記憶資源との間の動作インターフェースとしてはたらく二つの主要な動作を実行するために設けられる。
第一に、データ記憶インターフェース585は、各データ記憶資源がデータ変換エンジンに対して一様に見えるよう、抽象化機能を実行する。次に、データ記憶インターフェースは、データ変換エンジン580によって要求される入出力動作を、ポリシーによって指定される複合動作に翻訳する(translate)プーリング(pooling)機能を提供する。
データ記憶機構の抽象化は、機能的に同様だが個別的には異なっている多くのデータ記憶システムまたは記憶資源を、記憶資源を使う要素、この場合にはデータ変換エンジン580およびその機能モジュールの論理を簡単化するように扱う一つの方法である。
抽象化プロセスを実装するさまざまな方法が可能だが、好ましい実施形態によれば、基本記憶抽象化モデルは鍵値ストアである。特定のデータが特定の鍵(名前またはラベル)とともに記憶される。それにより同じ鍵をデータ記憶に与えることによって、データが取り出せる。たとえば、ディスクに記憶されたデータ・ブロックは特定の位置(その鍵)に記憶され、のちに、同じ仕方で、またはディスクの他のセマンティクスを使って取り出される(諸鍵が連続的な空間をなし、異なるサイズの諸データ・ブロックがこの鍵空間において重なり合う)。もう一つの例はクラウド記憶である。これは典型的には基本的な鍵値ストア・インターフェースを呈示する。本発明はデータ記憶としてファイルシステムをサポートし、ファイルシステムでは以前に記憶された値のサブセットを指定する機能があるので、本発明の好ましい実施形態は、データ変換エンジン580に呈示される抽象化として、ファイル・インターフェース・モデルを使う。この抽象化において、特定のデータが特定の鍵および位置(そして暗黙的にはそのデータのサイズ)をもって記憶され、各鍵について、位置情報および重なりデータに関して、典型的なファイル(または上例のようにディスク)セマンティクスが適用される。これは、ファイルシステムを前記抽象化に統合することを簡単にするが、クラウド記憶および他の同様の鍵値ストアを統合することも対応して簡単にする実装においては、1層下の鍵値ストア抽象化に簡単にマッピングする。
本発明は使うべきデータ記憶システムまたは記憶資源を割り当てられるので、複数のより原始的なデータ記憶システムまたは記憶資源を使って複合データ記憶を生成できることが有用である。そのような複合記憶資源の非常に広く広まった例は、いくつかの原始的な独立したディスクを単一の複合仮想ディスクに総合するRAIDアレイである。本発明は、これを、記憶資源プーリング(pooling)機構を通じて達成する。
本発明では、データ記憶および記憶資源はクラス分類され(どんな種類の記憶か、どのようにそれと通信するか)、パラメータ化され(これくらいだけ、その上のこの場所で、これらのクレデンシャルとともに使う)、ラベル付けされる(「……」という名前を与える)。これらは、デフォルトにされてもよく、よってユーザー・インターフェースに現れるのは完備性のレベルにある必要はない。本発明は、プールされた記憶の生成を許容するが、それは必須ではない。プールされた記憶は、他の記憶システム、記憶資源または他のプールされた記憶の非零集合ならびに書き込み動作が持続していると考えられるまでに書き込み動作を確認しなければならない前記集合の要素の最小数である数、本稿で複製数(replication number)と称されるものの点でポリシーによって定義される。
この構造は、min-ORツリーと称される。図6および図7は、ノード内に複製数(内部ノードについてのみ有意)を示したmin-ORツリーを例解している。そのような構造は、伝統的にRAIDレベルを使ってなされていたものと同様に、いくつかのデータ記憶およびデータ冗長性ポリシーを表現するために使うことができる。たとえば、図6の構造は、ルート・ノードでの書き込み動作が、子ノードのいずれかへの書き込みが成功するときに成功する点で、4方向RAID0構成と同様である。複製数要件を充足するために、子ノードにおけるデータ配置のための三つの質的に異なるセマンティクスが本発明によって考えられる:
ランダム配置:データは本質的にランダムに子ノードに配置される。
順序付き配置:データはノードの順序付けされたシーケンスに(たとえば「最も左」)配置される。これはオーバーフロー保護を提供する一つの方法である。
アルゴリズム配置:データは、外部情報を利用してある種の動作またはパラメータを最適化するアルゴリズムに従って配置される。たとえば、パッキング(ノードを充填しようとする)、摩耗の均一化〔ウェアレベリング〕(すべてのノードを同じ充填レベルに保とうとする)、負荷を意識(すべてのノードを等しくビジーに保とうとする)、高可用性(可用性/コスト関数を最大化しようとする)、エネルギー(エネルギー使用を最小化しようとする)、親和性(何かに「近い」ノードを使おうとする)、サーバー(好ましいサーバーに取り付けられたノードを使おうとする)およびトポロジー(互いに近接したノードを使おうとする)。
もう一つの例は図7に示されているものである。図7は、二つのレベルに関わる構成を示しており、二つのレベルのうち上のレベルが3方向(3-way)RAID1ミラーとしてはたらく(現実の状況では、これは「何もかも私の高速ローカル記憶、私の低速サイト・アーカイブおよびリモート企業クラウド・アーカイブに書き込む」に対応する)。子ノードの一つはそれ自身、「これら5個のノードのうちの任意の3個に書き込む」のような複製を使って生成された冗長な構成であり、これは2つのノードに障害があった場合に生き残れるようにする(これはRAID6と呼ばれるための規格を満たす)。
本発明は、この構造の、0個(すなわち単に単純な記憶資源)を含む任意の数のレベルをサポートしてもよく、構造の各ノードは独立して複雑なデータ記憶システムまたは記憶資源であることができる。
複製により冗長性が提供されるので、アクティブなノードを除去することは、子ノード間でデータを適切にコピーすることによって、親ノードの複製ポリシーが維持されることを保証することからなる。よって、min-OR記憶ツリー上ですべての動作を達成するのを助けるためにどこにデータが記憶されるかの記録をもつ別個に維持されるメタデータが存在する。複製数が1であれば、子ノードを除去することは、予告なく非破壊的に行うことはできない。だが、予告があれば、除去または障害に先立って、その子だけにあるデータは他のノードにコピーされることができる。データが異なる子ノード上に少なくとも前記複製数の回数存在する必要があるようセマンティクスが定義されることを注意しておく。だが、より高い度合いの複製は常に許容される。
このようにして構成される記憶構造は、セクタ対応を維持しないことによって(RAID1の場合)、冗長性のためにパリティを使わないことによって(RAID6の場合)およびストライピングのために固定したブロックを使わないことによって(RAID0の場合)、伝統的なRAID実装(定義でなく)とは異なる。だが、機能は、本発明を実行するために適応される。
この好ましいプーリング機構は、強力で一貫した複製モデルを提供し、いくつかの伝統的なRAIDレベルと機能的に等価であり、込み入った記憶ポリシーの簡単な表現を許容し、記憶資源の大きなプールの簡単な管理を許容するので、有用である。
たとえば、ラックを諸ディスクで埋め、それらのディスク全部を、本発明に基づき層内で記憶資源として使うために宣言し、所望される冗長性レベル(「3台のディスクの同時障害に耐える」)を指定することができる。その冗長性レベルが複製数を設定し(今の例では4)、データ記憶インターフェースは、このポリシーに従ってデータ変換エンジンのためにデータを記憶し、取り出すことを管理する。
スペクトルの反対側では、トリビアルなmin-ORツリーは、ディスクまたはファイルシステムの単一の原始的なノードである。min-ORツリーを拡張して、伝統的なRAID実装(内部ノードに最小パリティ複製パラメータを加えることによる)または他のコンテンツ分散方法(たとえば、「リード・ソロモン分散」のような複製型パラメータを加えることによる)を厳密にシミュレートするようにすることによって、プーリングの概念を拡張することができる。
請求項において定義される本発明の精神および範囲から外れることなく本発明に対するさまざまな修正が考えられる。本稿ではさまざまなステップおよびコンピュータ・コンポーネントが使われてきたが、これらは、本願において明示的に限定されているまたは他の仕方で定義されているのでない限り、当技術分野において知られているような通常の定義を与えられる。
上記の実施形態は、本発明の例であることが意図されており、付属の請求項によってのみ定義される本発明の範囲から外れることなく、当業者によって変更および修正がなされてもよい。
いくつかの態様を記載しておく。
〔態様1〕
コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶する方法であって:
a.少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュ・システムを提供し、
b.あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方にデータを記憶し、
c.データ組織化手段によって前記データのアプリケーション・ビューを前記アプリケーションに呈示することを含み、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、
方法。
〔態様2〕
前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、態様1記載の方法。
〔態様3〕
少なくとも一つのオーバーフロー層を提供することをさらに含む態様2記載の方法であって、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、方法。
〔態様4〕
前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む、態様2記載の方法。
〔態様5〕
前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、態様4記載の方法。
〔態様6〕
前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される、態様5記載の方法。
〔態様7〕
前記データを前記基本層上に記憶し、前記データを前記複数のキャッシュ層の一つまたは複数上にキャッシュすることを含み、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする、態様5記載の方法。
〔態様8〕
各キャッシュ層レベルは二つ以上の記憶資源を含む、態様7記載の方法。
〔態様9〕
前記データ組織化手段は使用される特定の記憶装置に関知しない、態様1記載の方法。
〔態様10〕
データ組織化手段の動作を、前記データ組織化手段とは独立に実行されるまたは他の仕方で処理されるよう、捕捉システムによって、捕捉する段階をさらに含む、態様2記載の方法。
〔態様11〕
前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにする段階をさらに含む、態様10記載の方法。
〔態様12〕
前記ポリシーはポリシー・モジュールによって与えられる、態様1記載の方法。
〔態様13〕
前記ポリシー・モジュールは前記捕捉システムと一体である、態様12記載の方法。
〔態様14〕
前記ポリシー・モジュールは前記データ組織化手段と一体である、態様12記載の方法。
〔態様15〕
前記捕捉する段階がさらに、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡すこと;(b)捕捉された動作の完了をログ記録すること;および(c)捕捉された動作を変更して前記データ組織化手段に渡すこと、のうちの一つを含む、態様10記載の方法。
〔態様16〕
前記捕捉システムと前記記憶資源との間にデータ変換エンジンを設けることをさらも含む、態様10記載の方法。
〔態様17〕
前記データ組織化手段の外部でポリシーを実行する段階をさらに含み、前記ポリシーを実行する段階は前記データ変換エンジンによって実行される、態様16記載の方法。
〔態様18〕
前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する、態様16記載の方法。
〔態様19〕
前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する、態様16記載の方法。
〔態様20〕
前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、態様16記載の方法。
〔態様21〕
前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、態様16記載の方法。
〔態様22〕
前記データ変換エンジンはさらに、脱重複段階を実行するための脱重複モジュールを有する、態様16記載の方法。
〔態様23〕
前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むためのオーバーフロー・モジュールを有する、態様19記載の方法。
〔態様24〕
前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを提供することをさらに含む、態様16記載の方法。
〔態様25〕
各データ記憶資源が前記データ変換エンジンに対して一様に見えるよう、データ記憶資源情報を抽象化する段階をさらに含む、態様24記載の方法。
〔態様26〕
少なくとも二つ以上のデータ記憶資源をプールする段階をさらに含む、態様24記載の方法。
〔態様27〕
前記複数のキャッシュ層がオペレーティング・システム・ファイル・バッファ・キャッシュを有する、態様4記載の方法。
〔態様28〕
前記データ組織化手段がファイルシステムである、態様1記載の方法。
〔態様29〕
前記データ組織化手段が、オブジェクト・データベース、鍵値ストア、ネットワーク・プロトコルおよび共有データ・システムからなる群より選択される、態様1記載の方法。
〔態様30〕
コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶するシステムであって:
a.少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュ・システムであって、前記データは、あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方に記憶される、階層化キャッシュ・システムと;
b.前記データのアプリケーション・ビューを前記アプリケーションに呈示するデータ組織化手段であって、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、データ組織化手段とを有する、
システム。
〔態様31〕
前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、さらに、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、態様30記載のシステム。
〔態様32〕
少なくとも一つのオーバーフロー層をさらに有しており、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、態様31記載のシステム。
〔態様33〕
前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む、態様32記載のシステム。
〔態様34〕
前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、態様33記載のシステム。
〔態様35〕
前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される、態様34記載のシステム。
〔態様36〕
前記データは前記基本層上に記憶され、前記複数のキャッシュ層の前記一つまたは複数上にキャッシュされ、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする、態様34記載のシステム。
〔態様37〕
各キャッシュ層レベルは二つ以上の記憶資源を含む、態様36記載のシステム。
〔態様38〕
前記データ組織化手段は使用される特定の記憶装置に関知しない、態様30記載のシステム。
〔態様39〕
データ組織化手段の動作を、前記データ組織化手段とは独立に実行されるまたは他の仕方で処理されるよう、捕捉するための捕捉システムをさらに有する、態様30記載のシステム。
〔態様40〕
前記捕捉システムは、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにするよう適応されている、態様39記載のシステム。
〔態様41〕
前記ポリシーを与えるポリシー・モジュールをさらに有する、態様39記載のシステム。
〔態様42〕
前記ポリシー・モジュールは前記捕捉システムと一体である、態様41記載のシステム。
〔態様43〕
前記ポリシー・モジュールは前記データ組織化手段と一体である、態様41記載のシステム。
〔態様44〕
前記捕捉システムが、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡す手段;(b)捕捉された動作の完了をログ記録する手段;および(c)捕捉された動作を変更して前記データ組織化手段に渡す手段、のうちの少なくとも一つを含む、態様40記載のシステム。
〔態様45〕
前記捕捉システムと前記記憶資源との間にデータ変換エンジンをさらに有する、態様40記載のシステム。
〔態様46〕
前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する、態様45記載のシステム。
〔態様47〕
前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する、態様45記載のシステム。
〔態様48〕
前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、態様45記載のシステム。
〔態様49〕
前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、態様45記載のシステム。
〔態様50〕
前記データ変換エンジンはさらに、脱重複段階を実行する脱重複モジュールを有する、態様45記載のシステム。
〔態様51〕
前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むオーバーフロー・モジュールを有する、態様48記載のシステム。
〔態様52〕
前記システムはさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを有する、態様45記載のシステム。
〔態様53〕
各データ記憶資源が前記データ変換エンジンにとって一様に見える、態様45記載のシステム。
〔態様54〕
少なくとも二つ以上のデータ記憶資源がプールされる、態様30記載のシステム。
〔態様55〕
前記複数のキャッシュ層がオペレーティング・システム・ファイル・バッファ・キャッシュを含む、態様33記載のシステム。
〔態様56〕
前記データ組織化手段が、オブジェクト・データベース、鍵値ストア、ネットワーク・プロトコルおよび共有データ・システムからなる群より選択される、態様30記載のシステム。

Claims (48)

  1. コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶する方法であって:
    a.複数のキャッシュ層および基本層を含む階層化キャッシュ・システムを提供し、
    b.前記データを前記基本層上に記憶し、前記データを、データのカテゴリーに対して使われるべき諸層のスタックを指定するポリシーに基づいて、前記複数のキャッシュ層の一つまたは複数にキャッシュし、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュし、
    c.データ組織化手段によって前記データのアプリケーション・ビューを前記アプリケーションに呈示することを含み、前記データ組織化手段は、複数のキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含み、使用される記憶装置に関知せず、
    当該方法はさらに:
    d.データ組織化手段の動作を、前記データ組織化手段とは独立に実行されるまたは他の仕方で処理されるよう、捕捉システムによって捕捉する段階をさらに含む、方法。
  2. 前記複数のキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、請求項1記載の方法。
  3. 少なくとも一つのオーバーフロー層を提供することをさらに含む請求項2記載の方法であって、前記オーバーフロー層は、前記複数のキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、方法。
  4. 前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、請求項記載の方法。
  5. 前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される、請求項4記載の方法。
  6. 各キャッシュ層レベルは二つ以上の記憶資源を含む、請求項1記載の方法。
  7. 前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにする段階をさらに含む、請求項1記載の方法。
  8. 前記ポリシーはポリシー・モジュールによって与えられる、請求項1記載の方法。
  9. 前記ポリシー・モジュールは前記捕捉システムと一体である、請求項記載の方法。
  10. 前記ポリシー・モジュールは前記データ組織化手段と一体である、請求項8記載の方法。
  11. 前記捕捉する段階がさらに、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡すこと;(b)捕捉された動作の完了をログ記録すること;および(c)捕捉された動作を変更して前記データ組織化手段に渡すこと、のうちの一つを含む、請求項1記載の方法。
  12. 前記捕捉システムと前記記憶資源との間にデータ変換エンジンを設けることをさら含む、請求項記載の方法。
  13. 前記データ組織化手段の捕捉された動作が、前記データ組織化手段の外部で前記ポリシーに従って前記データ変換エンジンによって実行される、請求項12記載の方法。
  14. 前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する、請求項12記載の方法。
  15. 前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する、請求項12記載の方法。
  16. 前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、請求項12記載の方法。
  17. 前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、請求項12記載の方法。
  18. 前記データ変換エンジンはさらに、脱重複段階を実行するための脱重複モジュールを有する、請求項12記載の方法。
  19. 前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むためのオーバーフロー・モジュールを有する、請求項15記載の方法。
  20. 前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを提供することをさらに含む、請求項12記載の方法。
  21. 前記データ記憶インターフェースが、各データ記憶資源が前記データ変換エンジンに対して一様に見えるよう、データ記憶資源情報を抽象化する、請求項20記載の方法。
  22. 前記データ記憶インターフェースが、二つ以上のデータ記憶資源をプールして該二つ以上のデータ記憶資源が前記変換エンジンにとって単一の複合仮想ディスクとして見えるようにするプール機構として作用する、請求項20記載の方法。
  23. 前記複数のキャッシュ層がオペレーティング・システム・ファイル・バッファ・キャッシュを有する、請求項4記載の方法。
  24. 前記データ組織化手段がファイルシステムである、請求項1記載の方法。
  25. 前記データ組織化手段が、オブジェクト・データベース、鍵値ストア、ネットワーク・プロトコルおよび共有データ・システムからなる群より選択される、請求項1記載の方法。
  26. コンピュータ・システム上で実行されるアプリケーションによる取得のためにデータを記憶するシステムであって:
    a.複数のキャッシュ層および基本層を含む階層化キャッシュ・システムであって、前記データは、前記基本層上に記憶され、あるポリシーに基づいて前記複数のキャッシュ層の一つまたは複数にキャッシュされ、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする、階層化キャッシュ・システムと;
    b.前記データのアプリケーション・ビューを前記アプリケーションに呈示するデータ組織化手段であって、前記データ組織化手段は、複数のキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含み、使用される記憶装置に関知しない、データ組織化手段と;
    データ組織化手段の動作を、前記データ組織化手段とは独立に実行されるまたは他の仕方で処理されるよう捕捉する捕捉システムとを有する、
    システム。
  27. 前記複数のキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、さらに、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、請求項26記載のシステム。
  28. 少なくとも一つのオーバーフロー層をさらに有しており、前記オーバーフロー層は、前記複数のキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、請求項27記載のシステム。
  29. 前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスク・ドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、請求項28記載のシステム。
  30. 前記データ組織化手段は前記ハードディスク・ドライブ上に記憶される、請求項29記載のシステム。
  31. 各キャッシュ層レベルは二つ以上の記憶資源を含む、請求項26記載のシステム。
  32. 前記捕捉システムは、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにするよう適応されている、請求項26記載のシステム。
  33. 前記ポリシーを与えるポリシー・モジュールをさらに有する、請求項26記載のシステム。
  34. 前記ポリシー・モジュールは前記捕捉システムと一体である、請求項33記載のシステム。
  35. 前記ポリシー・モジュールは前記データ組織化手段と一体である、請求項33記載のシステム。
  36. 前記捕捉システムが、(a)捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡す手段;(b)捕捉された動作の完了をログ記録する手段;および(c)捕捉された動作を変更して前記データ組織化手段に渡す手段、のうちの少なくとも一つを含む、請求項32記載のシステム。
  37. 前記捕捉システムと前記記憶資源との間にデータ変換エンジンをさらに有する、請求項31記載のシステム。
  38. 前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュ・モジュールを有する、請求項37記載のシステム。
  39. 前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュ・モジュールを有する、請求項37記載のシステム。
  40. 前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、請求項37記載のシステム。
  41. 前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、請求項37記載のシステム。
  42. 前記データ変換エンジンはさらに、脱重複段階を実行する脱重複モジュールを有する、請求項37記載のシステム。
  43. 前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフロー・キャッシュ層にデータを書き込むオーバーフロー・モジュールを有する、請求項40記載のシステム。
  44. 前記システムはさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを有する、請求項37記載のシステム。
  45. 各データ記憶資源が前記データ変換エンジンにとって一様に見える、請求項37記載のシステム。
  46. 少なくとも二つ以上のデータ記憶資源がプールされる、請求項31記載のシステム。
  47. 前記複数のキャッシュ層がオペレーティング・システム・ファイル・バッファ・キャッシュを含む、請求項26記載のシステム。
  48. 前記データ組織化手段が、オブジェクト・データベース、鍵値ストア、ネットワーク・プロトコルおよび共有データ・システムからなる群より選択される、請求項26記載のシステム。
JP2013525099A 2010-08-25 2011-08-24 キャッシュ階層化のための方法およびシステム Expired - Fee Related JP5620581B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37701810P 2010-08-25 2010-08-25
US61/377,018 2010-08-25
PCT/CA2011/050515 WO2012024801A1 (en) 2010-08-25 2011-08-24 Method and system for cache tiering

Publications (2)

Publication Number Publication Date
JP2013536515A JP2013536515A (ja) 2013-09-19
JP5620581B2 true JP5620581B2 (ja) 2014-11-05

Family

ID=45722796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013525099A Expired - Fee Related JP5620581B2 (ja) 2010-08-25 2011-08-24 キャッシュ階層化のための方法およびシステム

Country Status (7)

Country Link
US (1) US9864685B2 (ja)
EP (1) EP2609510A4 (ja)
JP (1) JP5620581B2 (ja)
KR (1) KR101482518B1 (ja)
CN (1) CN103493024B (ja)
AU (1) AU2011293015B2 (ja)
WO (1) WO2012024801A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
CN102833331B (zh) * 2012-08-21 2015-06-10 北京邦诺存储科技有限公司 云存储系统及其元数据写入方法、元数据读取方法
US9239784B1 (en) * 2013-06-05 2016-01-19 Amazon Technologies, Inc. Systems and methods for memory management
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US10541053B2 (en) 2013-09-05 2020-01-21 Optum360, LLCq Automated clinical indicator recognition with natural language processing
US10552931B2 (en) * 2013-09-05 2020-02-04 Optum360, Llc Automated clinical indicator recognition with natural language processing
WO2016041998A1 (en) 2014-09-15 2016-03-24 Foundation For Research And Technology - Hellas (Forth) Tiered heterogeneous fast layer shared storage substrate apparatuses, methods, and systems
US9830091B2 (en) * 2015-02-20 2017-11-28 Netapp, Inc. Policy-based data tiering using a cloud architecture
JP2016170729A (ja) 2015-03-13 2016-09-23 株式会社東芝 メモリシステム
CN106484691B (zh) 2015-08-24 2019-12-10 阿里巴巴集团控股有限公司 移动终端的数据存储方法和装置
EP3270371B1 (en) * 2016-07-12 2022-09-07 NXP USA, Inc. Method and apparatus for managing graphics layers within a graphics display component
US10536522B2 (en) * 2018-04-30 2020-01-14 EMC IP Holding Company LLC Data storage system with LUN archiving to cloud using volume-to-object translation
US20230224153A1 (en) * 2022-01-13 2023-07-13 Dell Products L.P. Dynamic cryptographic key management for cached data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
KR100899462B1 (ko) * 2004-07-21 2009-05-27 비치 언리미티드 엘엘씨 블록 맵 캐싱 및 vfs 적층 가능 파일 시스템 모듈들에기초한 분산 저장 아키텍처
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US7631155B1 (en) * 2007-06-30 2009-12-08 Emc Corporation Thin provisioning of a file system and an iSCSI LUN through a common mechanism
WO2010037117A1 (en) * 2008-09-29 2010-04-01 Nirvanix, Inc. Client application program interface for network-attached storage system
US8397016B2 (en) * 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US8893050B2 (en) * 2009-01-12 2014-11-18 International Business Machines Corporation Assembly and output of user-defined groupings
KR101023883B1 (ko) * 2009-02-13 2011-03-22 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US20130346672A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Multi-Tiered Cache with Storage Medium Awareness

Also Published As

Publication number Publication date
EP2609510A1 (en) 2013-07-03
US20140304473A1 (en) 2014-10-09
CN103493024A (zh) 2014-01-01
EP2609510A4 (en) 2015-01-21
KR20130105842A (ko) 2013-09-26
AU2011293015B2 (en) 2015-05-21
WO2012024801A1 (en) 2012-03-01
JP2013536515A (ja) 2013-09-19
US9864685B2 (en) 2018-01-09
CN103493024B (zh) 2018-07-10
KR101482518B1 (ko) 2015-01-14
AU2011293015A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
JP5620581B2 (ja) キャッシュ階層化のための方法およびシステム
JP6050316B2 (ja) データストレージシステムにおいて使用される方法及びネットワークストレージサーバ
US11656804B2 (en) Copy using metadata representation
US9565254B2 (en) Object location service for network-based content repository
US8180813B1 (en) Content repository implemented in a network storage server system
CN101410783B (zh) 内容可寻址存储阵列元件
JP5210176B2 (ja) 複数のノードを有するストレージ・システムの保護管理方法
WO2018231806A1 (en) Portable snapshot replication between storage systems
US20200174671A1 (en) Bucket views
US20110137966A1 (en) Methods and systems for providing a unified namespace for multiple network protocols
US8171064B2 (en) Methods and systems for concurrently reading direct and indirect data blocks
US11880578B2 (en) Composite aggregate architecture
US20210349657A1 (en) Providing data management as-a-service
JP5352490B2 (ja) サーバイメージ容量の最適化
JP2008539505A (ja) データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
US20150201016A1 (en) Methods and system for incorporating a direct attached storage to a network attached storage
US11675503B1 (en) Role-based data access
US20220253225A1 (en) Protecting Sensitive Data In Snapshots
US20220091744A1 (en) Optimized Application Agnostic Object Snapshot System
WO2022066865A1 (en) Bucket versioning snapshots
US8631215B1 (en) Provisioning different types of write once, read many states
ONEFS A Technical Overview

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140728

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: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140918

R150 Certificate of patent or registration of utility model

Ref document number: 5620581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees