コンピュータシステム上で実行されるアプリケーションによる取得のためにデータを記憶する方法であって:a.少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュシステムを提供し、b.あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方にデータを記憶し、c.データ組織化手段によって前記データのアプリケーションビューを前記アプリケーションに呈示することを含み、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、方法。前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、請求項1記載の方法。少なくとも一つのオーバーフロー層を提供することをさらに含む請求項2記載の方法であって、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、方法。前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む、請求項2記載の方法。前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスクドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、請求項4記載の方法。前記データ組織化手段は前記ハードディスクドライブ上に記憶される、請求項5記載の方法。前記データを前記基本層上に記憶し、前記データを前記複数のキャッシュ層の一つまたは複数上にキャッシュすることを含み、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする、請求項5記載の方法。各キャッシュ層レベルは二つ以上の記憶資源を含む、請求項7記載の方法。前記データ組織化手段は使用される特定の記憶装置に関知しない、請求項1記載の方法。データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉システムによって、捕捉する段階をさらに含む、請求項2記載の方法。前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにする段階をさらに含む、請求項10記載の方法。前記ポリシーはポリシーモジュールによって与えられる、請求項1記載の方法。前記ポリシーモジュールは前記捕捉システムと一体である、請求項12記載の方法。前記ポリシーモジュールは前記データ組織化手段と一体である、請求項12記載の方法。前記捕捉する段階がさらに、a捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡すこと;b捕捉された動作の完了をログ記録すること;およびc捕捉された動作を変更して前記データ組織化手段に渡すこと、のうちの一つを含む、請求項10記載の方法。前記捕捉システムと前記記憶資源との間にデータ変換エンジンを設けることをさらも含む、請求項10記載の方法。前記データ組織化手段の外部でポリシーを実行する段階をさらに含み、前記ポリシーを実行する段階は前記データ変換エンジンによって実行される、請求項16記載の方法。前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュモジュールを有する、請求項16記載の方法。前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュモジュールを有する、請求項16記載の方法。前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、請求項16記載の方法。前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、請求項16記載の方法。前記データ変換エンジンはさらに、脱重複段階を実行するための脱重複モジュールを有する、請求項16記載の方法。前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフローキャッシュ層にデータを書き込むためのオーバーフローモジュールを有する、請求項19記載の方法。前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを提供することをさらに含む、請求項16記載の方法。各データ記憶資源が前記データ変換エンジンに対して一様に見えるよう、データ記憶資源情報を抽象化する段階をさらに含む、請求項24記載の方法。少なくとも二つ以上のデータ記憶資源をプールする段階をさらに含む、請求項24記載の方法。前記複数のキャッシュ層がオペレーティングシステムファイルバッファキャッシュを有する、請求項4記載の方法。前記データ組織化手段がファイルシステムである、請求項1記載の方法。前記データ組織化手段が、オブジェクトデータベース、鍵値ストア、ネットワークプロトコルおよび共有データシステムからなる群より選択される、請求項1記載の方法。コンピュータシステム上で実行されるアプリケーションによる取得のためにデータを記憶するシステムであって:a.少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュシステムであって、前記データは、あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方に記憶される、階層化キャッシュシステムと;b.前記データのアプリケーションビューを前記アプリケーションに呈示するデータ組織化手段であって、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、データ組織化手段とを有する、システム。前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは異なる記憶資源上に配置され、さらに、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む、請求項30記載のシステム。少なくとも一つのオーバーフロー層をさらに有しており、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む、請求項31記載のシステム。前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む、請求項32記載のシステム。前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスクドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる、請求項33記載のシステム。前記データ組織化手段は前記ハードディスクドライブ上に記憶される、請求項34記載のシステム。前記データは前記基本層上に記憶され、前記複数のキャッシュ層の前記一つまたは複数上にキャッシュされ、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする、請求項34記載のシステム。各キャッシュ層レベルは二つ以上の記憶資源を含む、請求項36記載のシステム。前記データ組織化手段は使用される特定の記憶装置に関知しない、請求項30記載のシステム。データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉するための捕捉システムをさらに有する、請求項30記載のシステム。前記捕捉システムは、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにするよう適応されている、請求項39記載のシステム。前記ポリシーを与えるポリシーモジュールをさらに有する、請求項39記載のシステム。前記ポリシーモジュールは前記捕捉システムと一体である、請求項41記載のシステム。前記ポリシーモジュールは前記データ組織化手段と一体である、請求項41記載のシステム。前記捕捉システムが、a捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡す手段;b捕捉された動作の完了をログ記録する手段;およびc捕捉された動作を変更して前記データ組織化手段に渡す手段、のうちの少なくとも一つを含む、請求項40記載のシステム。前記捕捉システムと前記記憶資源との間にデータ変換エンジンをさらに有する、請求項40記載のシステム。前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュモジュールを有する、請求項45記載のシステム。前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュモジュールを有する、請求項45記載のシステム。前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する、請求項45記載のシステム。前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較する完全性モジュールを有する、請求項45記載のシステム。前記データ変換エンジンはさらに、脱重複段階を実行する脱重複モジュールを有する、請求項45記載のシステム。前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフローキャッシュ層にデータを書き込むオーバーフローモジュールを有する、請求項48記載のシステム。前記システムはさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを有する、請求項45記載のシステム。各データ記憶資源が前記データ変換エンジンにとって一様に見える、請求項45記載のシステム。少なくとも二つ以上のデータ記憶資源がプールされる、請求項30記載のシステム。前記複数のキャッシュ層がオペレーティングシステムファイルバッファキャッシュを含む、請求項33記載のシステム。前記データ組織化手段が、オブジェクトデータベース、鍵値ストア、ネットワークプロトコルおよび共有データシステムからなる群より選択される、請求項30記載のシステム。したがって、種々のクラスの記憶装置の利点から帰結する、該種々のクラスの記憶装置を独立に使うことで実現できるものを超えた利益を達成する階層化されたキャッシュ構造を提供する新規なシステムおよび方法を提供することが本発明の目的である。本発明は、種々のクラスの記憶装置を単一のデータ組織化手段meanstoorganizedata内に透明に統合して、それにより該種々のクラスの記憶装置の使用に対する、各クラスの記憶装置が独立に動作しそれぞれ独自のデータ組織化手段をもつ場合の利点を超える相乗的な恩恵を実現する新規なシステムおよび方法を提供する。本発明は、任意のクラスの記憶装置を任意の他のクラスの記憶装置上にキャッシュし、任意的に、そのようなキャッシングを複数のクラスおよび型の記憶装置の間で統合された仕方で提供することができる一般化されたキャッシュシステムおよび方法を提供する。本発明のある実施形態によれば、コンピュータシステム上で実行されるアプリケーションによる取得のためにデータを記憶する方法であって、少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュシステムを提供し、あるポリシーに基づいて前記キャッシュ層および前記基本層の少なくとも一方にデータを記憶し、データ組織化手段によって前記データのアプリケーションビューを前記アプリケーションに呈示することを含む方法が提供される。好ましくは、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む。さらに、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは、異なる記憶資源上に配置され、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む。本発明のある側面によれば、前記方法は、少なくとも一つのオーバーフロー層を提供することを含む。前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む。本発明のもう一つの側面によれば、前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む。前記少なくとも一つのキャッシュ層は、オペレーティングシステムとの関連で使用されるオペレーティングシステムファイルバッファキャッシュであってもよい。本発明のもう一つの側面によれば、前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスクドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる。本発明のもう一つの側面によれば、前記データ組織化手段は前記ハードディスクドライブ上に記憶される。本発明のもう一つの側面によれば、前記方法はさらに、前記データを前記基本層上に記憶し、前記データを前記複数のキャッシュ層の一つまたは複数上にキャッシュすることを含み、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする。本発明のもう一つの側面によれば、各キャッシュ層レベルは二つ以上の記憶資源を含む。本発明のもう一つの側面によれば、前記データ組織化手段は使用される特定の記憶装置に関知しない。本発明のもう一つの側面によれば、データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉システムによって、捕捉する段階。本発明のもう一つの側面によれば、本方法はさらに、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにする段階を含む。本発明のもう一つの側面によれば、前記ポリシーはポリシーモジュールによって与えられる。本発明のもう一つの側面によれば、前記ポリシーモジュールは前記捕捉システムと一体である。本発明のもう一つの側面によれば、前記ポリシーモジュールは前記データ組織化手段と一体である。本発明のもう一つの側面によれば、前記捕捉する段階がさらに、a捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡すこと;b捕捉された動作の完了をログ記録すること;およびc捕捉された動作を変更して前記データ組織化手段に渡すこと、のうちの一つを含む。本発明のもう一つの側面によれば、前記方法はさらに、前記捕捉システムと前記記憶資源との間にデータ変換エンジンを設けることを含む。本発明のもう一つの側面によれば、前記方法はさらに、前記データ組織化手段の外部でポリシーを実行する段階を含み、前記ポリシーを実行する段階は前記データ変換エンジンによって実行される。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュモジュールを有する。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュモジュールを有する。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較するための完全性モジュールを有する。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、脱重複deduplication段階を実行するための脱重複モジュールを有する。本発明のもう一つの側面によれば、前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフローキャッシュ層にデータを書き込むためのオーバーフローモジュールを有する。本発明のもう一つの側面によれば、前記方法はさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを提供することを含む。本発明のもう一つの側面によれば、前記方法はさらに、各データ記憶資源が前記データ変換エンジンに対して一様に見えるよう、データ記憶資源情報を抽象化するabstracting段階を含む。本発明のもう一つの側面によれば、前記方法はさらに、少なくとも二つ以上のデータ記憶資源をプールする段階を含む。本発明のもう一つの実施形態によれば、コンピュータシステム上で実行されるアプリケーションによる取得のためにデータを記憶するシステムであって、少なくとも一つのキャッシュ層および基本層を含む階層化キャッシュシステムであって、前記データは、あるポリシーに基づいて前記少なくとも一つのキャッシュ層および前記基本層の少なくとも一方に記憶される、階層化キャッシュシステムと、前記データのアプリケーションビューを前記アプリケーションに呈示するデータ組織化手段であって、前記データ組織化手段は、少なくとも一つのキャッシュ層および前記基本層のそれぞれについてメタデータ情報を含む、データ組織化手段とを含む、システムが提供される。本発明のある側面によれば、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれは、異なる記憶資源上に配置され、さらに、前記データ組織化手段は前記異なる記憶資源のそれぞれについてメタデータ情報を含む。この実施形態のもう一つの側面によれば、前記システムは、少なくとも一つのオーバーフロー層を含み、前記オーバーフロー層は、前記少なくとも一つのキャッシュ層および前記基本層のそれぞれとは異なる記憶資源上に配置され、前記データ組織化手段は前記オーバーフロー層のためのメタデータ情報を含む。この実施形態のもう一つの側面によれば、前記少なくとも一つのキャッシュ層は複数の階層化されたキャッシュ層を含む。この実施形態のもう一つの側面によれば、前記複数のキャッシュ層はそれぞれ半導体ドライブ上に設けられ、前記基本層はハードディスクドライブ上に設けられ、前記オーバーフロー層はクラウド記憶資源上に設けられる。この実施形態のもう一つの側面によれば、前記データ組織化手段は前記ハードディスクドライブ上に記憶される。この実施形態のもう一つの側面によれば、前記データは前記基本層上に記憶され、前記複数のキャッシュ層の前記一つまたは複数上にキャッシュされ、より高いレベルのキャッシュ層がより低いレベルのキャッシュ層のデータをキャッシュする。この実施形態のもう一つの側面によれば、各キャッシュ層レベルは二つ以上の記憶資源を含む。この実施形態のもう一つの側面によれば、前記データ組織化手段は使用される特定の記憶装置に関知しない。この実施形態のもう一つの側面によれば、データ組織化手段の動作が実行されるのをまたは他の仕方で処理されるのを、前記データ組織化手段とは独立に、捕捉するための捕捉システムをさらに有する。この実施形態のもう一つの側面によれば、前記捕捉システムは、前記ポリシーに従って入力/出力動作を分離させ、前記動作の少なくとも一部が前記捕捉システムによって捕捉され、前記ポリシーに従って処理されるようにするよう適応されている。この実施形態のもう一つの側面によれば、前記システムは、前記ポリシーを与えるポリシーモジュールをさらに有する。この実施形態のもう一つの側面によれば、前記ポリシーモジュールは前記捕捉システムと一体である。この実施形態のもう一つの側面によれば、前記ポリシーモジュールは前記データ組織化手段と一体である。この実施形態のもう一つの側面によれば、前記捕捉システムがさらに、a捕捉される動作を、記憶資源と前記捕捉システムとの間に設けられたデータ変換エンジンに渡す手段;b捕捉された動作の完了をログ記録する手段;およびc捕捉された動作を変更して前記データ組織化手段に渡す手段、のうちの少なくとも一つを含む。この実施形態のもう一つの側面によれば、前記捕捉システムと前記記憶資源との間にデータ変換エンジンが設けられる。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、データが存在する最高のキャッシュ層を見出して前記データを取得するよう読み出し動作を実行するための読み出しキャッシュモジュールを有する。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、種々のキャッシュ層レベルに対して書き込み動作を実行するための書き込みキャッシュモジュールを有する。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、データが前記データ組織化手段を通過するのに先立って該データを暗号化および復号する暗号モジュールを有する。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、前記データの属性を、メタデータ情報に記憶されているものと比較するための完全性モジュールを有する。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、脱重複deduplication段階を実行するための脱重複モジュールを有する。この実施形態のもう一つの側面によれば、前記データ変換エンジンはさらに、失敗した書き込み動作に応答してオーバーフローキャッシュ層にデータを書き込むためのオーバーフローモジュールを有する。この実施形態のもう一つの側面によれば、前記システムはさらに、前記記憶資源と前記データ変換エンジンとの間の動作上のインターフェースを提供するためのデータ記憶インターフェースを有する。この実施形態のもう一つの側面によれば、少なくとも二つ以上のデータ記憶資源がプールされる。本発明は、種々のクラスの記憶装置を単一のファイルシステム内に透明に統合して、それにより該種々のクラスの記憶装置の使用に対する、各クラスの記憶装置が独立に動作しそれぞれ独自のファイルシステムをもつ場合の利点を超える相乗的な恩恵を実現する新規なシステムおよび方法を提供する。以下の説明に鑑みて当業者には明白になるであろうが、本発明は、任意のクラスの記憶装置を任意の他のクラスの記憶装置上にキャッシュし、任意的に、そのようなキャッシングを複数のクラスおよび型の記憶装置の間で統合された仕方で提供することができる一般化されたキャッシュシステムおよび方法を提供する。本発明は理解の簡単のためにファイルシステムに関して記述されるが、任意のデータ組織化手段が使用されうることは理解されるであろう。それに含まれるものとしては、これに限られないが、データベース、特にオブジェクトデータベース、鍵値ストア、いくつかのネットワークプロトコルおよびいくつかの共有データシステムがある。上記の機能を実装する際に、出願人は次のような問題に直面する。aアプリケーションやオペレーティングシステムに対する変更を必要とすることなく、記憶装置のユーザーが本稿に記載されるような恩恵を経験できるよう、いかにして種々の記憶装置を透明に統合するか。b新たな技術が登場する際にも本発明が実装できるよう、多くの利用可能なオプションのうちからの記憶装置の選択に関知せずにいるにはどうすべきか。c一般的なレベルで記憶装置の安全性および完全性をいかにして提供するか。d低速またはリモートである記憶装置についてのレイテンシー問題にいかにして対処すべきか。以下は、これらの問題をいかにして解決して本発明に至ったかについての簡単な、トップレベルの説明である。本発明の実施についてのより詳細な説明はその後に述べる。透明な統合の問題は、主要なデータ記憶システムの既存の、ユーザーに見える編成ファイルシステム内のファイルシステムメタデータのようなを保持して、同じもしくは他の記憶装置上へのデータ配置を独立して制御させることによって解決できることが発見された。これは、図1に示されるような従来技術のシステムのデータフローおよび編成を、図2に示されるようなものに変更する。図2では、本発明に従い、記憶の各レイヤーlayerまたは層tierがより低位のレイヤーのためのフロントエンドになっている。不関知agnosticity問題に関しては、システム内の各記憶装置を一般的データ記憶資源として使い、根底にある記憶機構を抽象化し去ってすべての装置についての一様なインターフェースを提供することにより、その特定のクラスの記憶装置から得られる固有の物理的利点を保持しつつも、各クラスの記憶装置が同じに見え、よって関知せずに扱われることができることが発見された。安全性および完全性問題は、クラウド記憶の場合にありうるようにユーザー/所有者の管理外のどこかに記憶されているデータを含め、システムを通過するあらゆるデータのポリシーベースの処理を提供することによって解決された。さらに、これは、すべての装置についての一様なインターフェースを提供するというもう一つの利点である。それによりすべての装置が関知せずに扱われることができ、よってそこに記憶されているデータを、記憶装置クラスやデータが存在する特定の記憶装置に関わりなくポリシーベースの処理にかけることができる。レイテンシー問題は、複数の記憶装置についての透明な統合を使ってパフォーマンスを最適にするよう諸記憶層のキャッシュカスケードを提供することによって解決される。すなわち、どのクラスにデータが記憶されるかを決定する際、特定の諸クラスのデータ記憶の物理的な特性が考慮に入れられうるよう規則が適用されてもよい。あるいはまた、層のより高いレベルがより高速な記憶クラスを与えられるようシステムレベル設計が最初において適用されてもよい。本発明は、概括的にはコンピュータシステムのコンテキスト内で動作し、図8に一例を示す一般的な既知のコンピュータシステムにとって利用可能なデータ記憶機能に対する改善を提供するはたらきをする。図のように、コンピュータシステム20はいくつかの物理的および論理的コンポーネントを有しており、それに含まれるものとしては、中央処理ユニットCPU24、ランダムアクセスメモリRAM28、入出力IOインターフェース32、ネットワークインターフェース36、不揮発性記憶40およびCPU24が他のコンポーネントと通信できるようにするローカルバス44がある。CPU24はオペレーティングシステムおよびいくつかのソフトウェアシステムを実行する。RAM28はCPU24に対して比較的反応のよい揮発性記憶を提供する。IOインターフェース32は、キーボード、マウスなどといった一つまたは複数の装置から入力が受領されることを許容し、ディスプレイおよび/またはスピーカーのような出力装置に情報を出力する。ネットワークインターフェース36は他のシステムとの通信を許す。不揮発性記憶40はオペレーティングシステムおよびプログラムを記憶する。コンピュータシステム20の動作の間、オペレーティングシステム、プログラムおよびデータは、実行を容易にするために不揮発性記憶40から取得され、RAM28に入れられてもよい。図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出願第PCTCA2011050514において開示されている。この出願の内容はここに参照によって組み込まれる。ファイルシステムインターフェースを提供しないデータ記憶システムのために、本発明は、そのデータ記憶システムの好ましいインターフェースを提供する。ファイルシステムについて行ったように他のデータ記憶システムについてデータフローを修正することに対しても、同じ原理が同様の仕方で当てはまる。捕捉システム本発明の追加される機能の実装により通常のファイルシステム機能を拡張するために、捕捉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は、書き込み動作を実行する際、書き込みがそのように指定されているデータ記憶たとえばクラウド記憶に進む場合、その書き込みを脱重複するdeduplicate――すなわちそのデータがデータ記憶にすでに存在しているのでない場合にのみそのデータを書き込む――よう設けられてもよい。オーバーフローモジュール930は、記憶資源上の不十分なデータスペースへの失敗した書き込みが観察されると、その書き込み動作を異なる記憶資源にリダイレクトするために設けられてもよい。本発明の場合、これは好ましくはオーバーフロー層へのリダイレクトである。当業者は、これらのモジュールのそれぞれが、たとえば内容ハッシュまたはチェックサムの特定の選択、オーバーフローのための代替的なデータ記憶、暗号化機構の選択などにおいて、アクティブなポリシーによってパラメータ化されることを理解するであろう。ポリシーの詳細は本発明によって限定されない。むしろ、階層化されたキャッシュシステムのコンテキストにおけるそのようなモジュールの構成がここで定義される。さらに、これらのモジュールは、待ち行列に入れられた書き込みを完遂する、キャッシュを維持するおよびプリエンプティブなまたは予測的な計算を実行するといった動作を実行するヘルパープロセスおよび/またはスレッドを与えられてもよい。機能モジュールはまた、動作および該モジュール中を流れるデータに関する独自の共有されるメタデータへのアクセスを有していてもよい。このメタデータは、ファイルシステム中に、あるいはデータベースまたは他の何らかの共有されるデータ構造中に記憶されることができる。機能モジュールは、ファイルシステムを通じた動作フローに影響するために捕捉システムを使うこともできる。たとえば、暗号モジュールは、単にファイルシステムがそのデフォルトの暗号アクションを通過するデータに対して実行することを要求することによって動作してもよい。このアーキテクチャを用いて、複製、圧縮、バージョニング、名前仮想化、一般データ仮想化、データ多形および他の多くの機能といった他の機能が可能である。データ記憶インターフェースデータ記憶インターフェース585は、好ましくは、データ変換エンジン580と本稿に記載される種々の階層化されたキャッシュレベルで使われる根底にある記憶資源との間の動作インターフェースとしてはたらく二つの主要な動作を実行するために設けられる。第一に、データ記憶インターフェース585は、各データ記憶資源がデータ変換エンジンに対して一様に見えるよう、抽象化機能を実行する。次に、データ記憶インターフェースは、データ変換エンジン580によって要求される入出力動作を、ポリシーによって指定される複合動作に翻訳するtranslateプーリングpooling機能を提供する。データ記憶機構の抽象化は、機能的に同様だが個別的には異なっている多くのデータ記憶システムまたは記憶資源を、記憶資源を使う要素、この場合にはデータ変換エンジン580およびその機能モジュールの論理を簡単化するように扱う一つの方法である。抽象化プロセスを実装するさまざまな方法が可能だが、好ましい実施形態によれば、基本記憶抽象化モデルは鍵値ストアである。特定のデータが特定の鍵名前またはラベルとともに記憶される。それにより同じ鍵をデータ記憶に与えることによって、データが取り出せる。たとえば、ディスクに記憶されたデータブロックは特定の位置その鍵に記憶され、のちに、同じ仕方で、またはディスクの他のセマンティクスを使って取り出される諸鍵が連続的な空間をなし、異なるサイズの諸データブロックがこの鍵空間において重なり合う。もう一つの例はクラウド記憶である。これは典型的には基本的な鍵値ストアインターフェースを呈示する。本発明はデータ記憶としてファイルシステムをサポートし、ファイルシステムでは以前に記憶された値のサブセットを指定する機能があるので、本発明の好ましい実施形態は、データ変換エンジン580に呈示される抽象化として、ファイルインターフェースモデルを使う。この抽象化において、特定のデータが特定の鍵および位置そして暗黙的にはそのデータのサイズをもって記憶され、各鍵について、位置情報および重なりデータに関して、典型的なファイルまたは上例のようにディスクセマンティクスが適用される。これは、ファイルシステムを前記抽象化に統合することを簡単にするが、クラウド記憶および他の同様の鍵値ストアを統合することも対応して簡単にする実装においては、1層下の鍵値ストア抽象化に簡単にマッピングする。本発明は使うべきデータ記憶システムまたは記憶資源を割り当てられるので、複数のより原始的なデータ記憶システムまたは記憶資源を使って複合データ記憶を生成できることが有用である。そのような複合記憶資源の非常に広く広まった例は、いくつかの原始的な独立したディスクを単一の複合仮想ディスクに総合するRAIDアレイである。本発明は、これを、記憶資源プーリングpooling機構を通じて達成する。本発明では、データ記憶および記憶資源はクラス分類されどんな種類の記憶か、どのようにそれと通信するか、パラメータ化されこれくらいだけ、その上のこの場所で、これらのクレデンシャルとともに使う、ラベル付けされる......という名前を与える。これらは、デフォルトにされてもよく、よってユーザーインターフェースに現れるのは完備性のレベルにある必要はない。本発明は、プールされた記憶の生成を許容するが、それは必須ではない。プールされた記憶は、他の記憶システム、記憶資源または他のプールされた記憶の非零集合ならびに書き込み動作が持続していると考えられるまでに書き込み動作を確認しなければならない前記集合の要素の最小数である数、本稿で複製数replicationnumberと称されるものの点でポリシーによって定義される。この構造は、minORツリーと称される。図6および図7は、ノード内に複製数内部ノードについてのみ有意を示したminORツリーを例解している。そのような構造は、伝統的にRAIDレベルを使ってなされていたものと同様に、いくつかのデータ記憶およびデータ冗長性ポリシーを表現するために使うことができる。たとえば、図6の構造は、ルートノードでの書き込み動作が、子ノードのいずれかへの書き込みが成功するときに成功する点で、4方向RAID0構成と同様である。複製数要件を充足するために、子ノードにおけるデータ配置のための三つの質的に異なるセマンティクスが本発明によって考えられる:ランダム配置:データは本質的にランダムに子ノードに配置される。順序付き配置:データはノードの順序付けされたシーケンスにたとえば最も左配置される。これはオーバーフロー保護を提供する一つの方法である。アルゴリズム配置:データは、外部情報を利用してある種の動作またはパラメータを最適化するアルゴリズムに従って配置される。たとえば、パッキングノードを充填しようとする、摩耗の均一化ウェアレベリングすべてのノードを同じ充填レベルに保とうとする、負荷を意識すべてのノードを等しくビジーに保とうとする、高可用性可用性/コスト関数を最大化しようとする、エネルギーエネルギー使用を最小化しようとする、親和性何かに近いノードを使おうとする、サーバー好ましいサーバーに取り付けられたノードを使おうとするおよびトポロジー互いに近接したノードを使おうとする。もう一つの例は図7に示されているものである。図7は、二つのレベルに関わる構成を示しており、二つのレベルのうち上のレベルが3方向3wayRAID1ミラーとしてはたらく現実の状況では、これは何もかも私の高速ローカル記憶、私の低速サイトアーカイブおよびリモート企業クラウドアーカイブに書き込むに対応する。子ノードの一つはそれ自身、これら5個のノードのうちの任意の3個に書き込むのような複製を使って生成された冗長な構成であり、これは2つのノードに障害があった場合に生き残れるようにするこれはRAID6と呼ばれるための規格を満たす。本発明は、この構造の、0個すなわち単に単純な記憶資源を含む任意の数のレベルをサポートしてもよく、構造の各ノードは独立して複雑なデータ記憶システムまたは記憶資源であることができる。複製により冗長性が提供されるので、アクティブなノードを除去することは、子ノード間でデータを適切にコピーすることによって、親ノードの複製ポリシーが維持されることを保証することからなる。よって、minOR記憶ツリー上ですべての動作を達成するのを助けるためにどこにデータが記憶されるかの記録をもつ別個に維持されるメタデータが存在する。複製数が1であれば、子ノードを除去することは、予告なく非破壊的に行うことはできない。だが、予告があれば、除去または障害に先立って、その子だけにあるデータは他のノードにコピーされることができる。データが異なる子ノード上に少なくとも前記複製数の回数存在する必要があるようセマンティクスが定義されることを注意しておく。だが、より高い度合いの複製は常に許容される。このようにして構成される記憶構造は、セクタ対応を維持しないことによってRAID1の場合、冗長性のためにパリティを使わないことによってRAID6の場合およびストライピングのために固定したブロックを使わないことによってRAID0の場合、伝統的なRAID実装定義でなくとは異なる。だが、機能は、本発明を実行するために適応される。この好ましいプーリング機構は、強力で一貫した複製モデルを提供し、いくつかの伝統的なRAIDレベルと機能的に等価であり、込み入った記憶ポリシーの簡単な表現を許容し、記憶資源の大きなプールの簡単な管理を許容するので、有用である。たとえば、ラックを諸ディスクで埋め、それらのディスク全部を、本発明に基づき層内で記憶資源として使うために宣言し、所望される冗長性レベル3台のディスクの同時障害に耐えるを指定することができる。その冗長性レベルが複製数を設定し今の例では4、データ記憶インターフェースは、このポリシーに従ってデータ変換エンジンのためにデータを記憶し、取り出すことを管理する。スペクトルの反対側では、トリビアルなminORツリーは、ディスクまたはファイルシステムの単一の原始的なノードである。minORツリーを拡張して、伝統的なRAID実装内部ノードに最小パリティ複製パラメータを加えることによるまたは他のコンテンツ分散方法たとえば、リードソロモン分散のような複製型パラメータを加えることによるを厳密にシミュレートするようにすることによって、プーリングの概念を拡張することができる。請求項において定義される本発明の精神および範囲から外れることなく本発明に対するさまざまな修正が考えられる。本稿ではさまざまなステップおよびコンピュータコンポーネントが使われてきたが、これらは、本願において明示的に限定されているまたは他の仕方で定義されているのでない限り、当技術分野において知られているような通常の定義を与えられる。上記の実施形態は、本発明の例であることが意図されており、付属の請求項によってのみ定義される本発明の範囲から外れることなく、当業者によって変更および修正がなされてもよい。