(57)【要約】【課題】ソフトウェアモジュールからデータセットを受信するデータ記憶システムを得る。【解決手段】データ記憶システム（１０）は第１および第２の階層記憶装置（２４０，２４２）、冗長性レジューサ（２１）およびマイグレーションエンジン（２８）を含む。冗長性レジューサはデータセットを複数のデータブロック（２０）へ細分割してその冗長性を低減する。マイグレーションエンジンは１つ以上のデータブロックをデータブロックのマイグレーションパラメータに基づいて第１および第２の階層記憶装置間で移動させる。第１の階層記憶装置は第１の有効記憶容量および第１のＩ／Ｏ帯域幅を有し、第２の階層記憶装置はより大きい第２の有効記憶容量およびより狭い第２のＩ／Ｏ帯域幅を有する。第１の階層記憶装置は第１のデータアクセス時間を有し、第２の階層記憶装置はそれよりも長い第２のデータアクセス時間を有する。【選択図】図２
2007234026.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアモジュールからデータセットを受信するデータ記憶システムであって、
第１の有効記憶容量を有する第１の階層記憶装置と、
第１の有効記憶容量よりも大きい第２の有効記憶容量を有する第２の階層記憶装置と、
データセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する冗長性レジューサと、
データブロックのマイグレーションパラメータに基づいて、第１の階層記憶装置および第２の階層記憶装置間でデータブロックの１つを移動させるマイグレーションエンジンと、
を含むデータ記憶システム。
【請求項２】
請求項１に記載のデータ記憶システムであって、冗長性レジューサはハッシュエンジンを含むデータ記憶システム。
【請求項３】
請求項１に記載のデータ記憶システムであって、冗長性レジューサはルックアップエンジンを含むデータ記憶システム。
【請求項４】
請求項１に記載のデータ記憶システムであって、マイグレーションパラメータは参照カウントを含むデータ記憶システム。
【請求項５】
請求項１に記載のデータ記憶システムであって、マイグレーションパラメータは最終アクセス時間を含むデータ記憶システム。
【請求項６】
請求項１に記載のデータ記憶システムであって、マイグレーションパラメータはアクセスレートを含むデータ記憶システム。
【請求項７】
請求項１に記載のデータ記憶システムであって、マイグレーションパラメータはユーザ定義アクセスポリシーを含むデータ記憶システム。
【請求項８】
請求項１に記載のデータ記憶システムであって、さらに、記憶装置の１つに格納されるメタデータインデックスを含み、マイグレーションエンジンはマイグレーションエンジンによるデータブロックの１つの移動と連係してメタデータインデックスを更新するデータ記憶システム。
【請求項９】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の前に、データセットの少なくとも一部を格納するディスク装置を含むデータ記憶システム。
【請求項１０】
請求項９に記載のデータ記憶システムであって、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後で、データセットの少なくとも一部を格納するディスク装置を含むデータ記憶システム。
【請求項１１】
請求項１０に記載のデータ記憶システムであって、さらに、第２の有効記憶容量よりも大きい第３の有効記憶容量を有する第３の階層記憶装置を含むデータ記憶システム。
【請求項１２】
請求項１１に記載のデータ記憶システムであって、マイグレーションエンジンは少なくとも部分的にデータブロックのマイグレーションパラメータに基づいて、第２の階層記憶装置および第３の階層記憶装置間でデータブロックの１つを移動させるデータ記憶システム。
【請求項１３】
請求項１１に記載のデータ記憶システムであって、第３の階層記憶装置はテープライブラリを含むデータ記憶システム。
【請求項１４】
請求項１１に記載のデータ記憶システムであって、第３の階層記憶装置はＭＡＩＤを含むデータ記憶システム。
【請求項１５】
請求項９に記載のデータ記憶システムであって、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後で、データセットの少なくとも一部を格納する着脱自在媒体を含むデータ記憶システム。
【請求項１６】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後で、データセットの少なくとも一部を格納するディスク装置を含むデータ記憶システム。
【請求項１７】
請求項１６に記載のデータ記憶システムであって、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後で、データセットの少なくとも一部を格納する着脱自在媒体を含むデータ記憶システム。
【請求項１８】
請求項１に記載のデータ記憶システムであって、ソフトウェアモジュールはバーチャルテープ、ネットワーク付属ストレージ、コンテンツアクセスストレージおよびクラスタファイルシステムからなるグループから選択されるデータ記憶システム。
【請求項１９】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置はランダムアクセス方式でデータを格納し、第２の階層記憶装置は順次アクセス方式でデータを格納するデータ記憶システム。
【請求項２０】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置はランダムアクセス方式でデータを格納し、第２の階層記憶装置はランダムアクセス方式でデータを格納するデータ記憶システム。
【請求項２１】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置は第１のＩ／Ｏ帯域幅を有し、第２の階層記憶装置は第１のＩ／Ｏ帯域幅よりも狭い第２のＩ／Ｏ帯域幅を有するデータ記憶システム。
【請求項２２】
請求項１に記載のデータ記憶システムであって、第１の階層記憶装置は第１のデータアクセス時間を有し、第２の階層記憶装置は第１のデータアクセス時間よりも非常に長い第２のデータアクセス時間を有するデータ記憶システム。
【請求項２３】
請求項１に記載のデータ記憶システムであって、データセットは（ｉ）複数の第１のデータブロックを有する第１のデータプール、および（ｉｉ）複数の第２のデータブロックを有する単独に格納された第２のデータプールを含み、マイグレーションエンジンは第１のデータプールを第２のデータプールと併合するようにされているデータ記憶システム。
【請求項２４】
請求項１に記載のデータ記憶システムであって、データセットは複数のデータブロックを有するデータプールを含み、マイグレーションエンジンはデータプールを２つの別々に格納されたデータプールへ分割するようにされているデータ記憶システム。
【請求項２５】
ソフトウェアモジュールからデータセットを受信するデータ記憶システムであって、
ランダムアクセス方式でデータを格納する第１の階層記憶装置と、
順次アクセス方式でデータを格納する第２の階層記憶装置と、
データセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する冗長性レジューサと、
データブロックのマイグレーションパラメータに基づいて、第１の階層記憶装置および第２の階層記憶装置間でデータブロックの１つを移動させるマイグレーションエンジンと、
を含むデータ記憶システム。
【請求項２６】
請求項２５に記載のデータ記憶システムであって、冗長性レジューサはハッシュエンジンおよびルックアップエンジンを含むデータ記憶システム。
【請求項２７】
請求項２５に記載のデータ記憶システムであって、マイグレーションパラメータは参照カウント、最終アクセス時間、アクセスレートおよびユーザ定義アクセスポリシーの少なくとも１つを含むデータ記憶システム。
【請求項２８】
請求項２５に記載のデータ記憶システムであって、さらに、記憶装置の１つに格納されるメタデータインデックスを含み、マイグレーションエンジンはマイグレーションエンジンによるデータブロックの１つの移動と連係してメタデータインデックスを更新するデータ記憶システム。
【請求項２９】
請求項２５に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含み、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納する着脱自在媒体を含むデータ記憶システム。
【請求項３０】
請求項２５に記載のデータ記憶システムであって、第２の階層記憶装置はテープライブラリおよびＭＡＩＤの一方を含むデータ記憶システム。
【請求項３１】
請求項２５に記載のデータ記憶システムであって、ソフトウェアモジュールはバーチャルテープ、ネットワーク付属ストレージ、コンテンツアクセスストレージおよびクラスタファイルシステムからなるグループから選択されるデータ記憶システム。
【請求項３２】
請求項２５に記載のデータ記憶システムであって、第１の階層記憶装置は第１のＩ／Ｏ帯域幅を有し、第２の階層記憶装置は第１のＩ／Ｏ帯域幅よりも狭い第２のＩ／Ｏ帯域幅を有するデータ記憶システム。
【請求項３３】
請求項２５に記載のデータ記憶システムであって、第１の階層記憶装置は第１のデータアクセス時間を有し、第２の階層記憶装置は第１のデータアクセス時間よりも非常に長い第２のデータアクセス時間を有するデータ記憶システム。
【請求項３４】
ソフトウェアモジュールからデータセットを受信するデータ記憶システムであって、
第１のＩ／Ｏ帯域幅を有する第１の階層記憶装置と、
第１のＩ／Ｏ帯域幅よりも狭い第２の帯域幅を有する第２の階層記憶装置と、
データセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する冗長性レジューサと、
データブロックのマイグレーションパラメータに基づいて、第１の階層記憶装置および第２の階層記憶装置間でデータブロックの１つを移動させるマイグレーションエンジンと、
を含むデータ記憶システム。
【請求項３５】
請求項３４に記載のデータ記憶システムであって、冗長性レジューサはハッシュエンジンおよびルックアップエンジンの少なくとも一方を含むデータ記憶システム。
【請求項３６】
請求項３４に記載のデータ記憶システムであって、マイグレーションパラメータは参照カウント、最終アクセス時間、アクセスレートおよびユーザ定義アクセスポリシーの少なくとも１つを含むデータ記憶システム。
【請求項３７】
請求項３４に記載のデータ記憶システムであって、さらに、記憶装置の１つに格納されるメタデータインデックスを含み、マイグレーションエンジンはマイグレーションエンジンによるデータブロックの１つの移動と連係してメタデータインデックスを更新するデータ記憶システム。
【請求項３８】
請求項３４に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の前にデータセットの少なくとも一部を格納するディスク装置を含み、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含むデータ記憶システム。
【請求項３９】
請求項３８に記載のデータ記憶システムであって、さらに、第２のＩ／Ｏ帯域幅よりも狭い第３のＩ／Ｏ帯域幅を有する第３の階層記憶装置を含むデータ記憶システム。
【請求項４０】
請求項３９に記載のデータ記憶システムであって、マイグレーションエンジンは少なくとも部分的にデータブロックのマイグレーションパラメータに基づいて、第２の階層記憶装置および第３の階層記憶装置間でデータブロックの１つを移動させるデータ記憶システム。
【請求項４１】
請求項４０に記載のデータ記憶システムであって、第３の階層記憶装置はテープライブラリおよびＭＡＩＤの一方を含むデータ記憶システム。
【請求項４２】
請求項３４に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含み、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納する着脱自在媒体を含むデータ記憶システム。
【請求項４３】
請求項３４に記載のデータ記憶システムであって、ソフトウェアモジュールはバーチャルテープ、ネットワーク付属ストレージ、コンテンツアクセスストレージおよびクラスタファイルシステムからなるグループから選択されるデータ記憶システム。
【請求項４４】
請求項３４に記載のデータ記憶システムであって、第１の階層記憶装置は第１のデータアクセス時間を有し、第２の階層記憶装置は第１のデータアクセス時間よりも非常に長い第２のデータアクセス時間を有するデータ記憶システム。
【請求項４５】
ソフトウェアモジュールからデータセットを受信するデータ記憶システムであって、
第１のデータアクセス時間を有する第１の階層記憶装置と、
第１のデータアクセス時間よりも非常に長い第２のデータアクセス時間を有する第２の階層記憶装置と、
データセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する冗長性レジューサと、
データブロックのマイグレーションパラメータに基づいて、第１の階層記憶装置および第２の階層記憶装置間でデータブロックの１つを移動させるマイグレーションエンジンと、
を含むデータ記憶システム。
【請求項４６】
請求項４５に記載のデータ記憶システムであって、冗長性レジューサはハッシュエンジンおよびルックアップエンジンの少なくとも一方を含むデータ記憶システム。
【請求項４７】
請求項４５に記載のデータ記憶システムであって、マイグレーションパラメータは参照カウント、最終アクセス時間、アクセスレートおよびユーザ定義アクセスポリシーの少なくとも１つを含むデータ記憶システム。
【請求項４８】
請求項４５に記載のデータ記憶システムであって、さらに、記憶装置の１つに格納されるメタデータインデックスを含み、マイグレーションエンジンはマイグレーションエンジンによる記憶装置間でのデータブロックの１つの移動と連係してメタデータインデックスを更新するデータ記憶システム。
【請求項４９】
請求項４５に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の前にデータセットの少なくとも一部を格納するディスク装置を含み、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含むデータ記憶システム。
【請求項５０】
請求項４９に記載のデータ記憶システムであって、さらに、第２のデータアクセス時間よりも非常に長い第３のデータアクセス時間を有する第３の階層記憶装置データ記憶を含むシステム。
【請求項５１】
請求項５０に記載のデータ記憶システムであって、マイグレーションエンジンは少なくとも部分的にデータブロックのマイグレーションパラメータに基づいて、第２の階層記憶装置および第３の階層記憶装置間でデータブロックの１つを移動させるデータ記憶システム。
【請求項５２】
請求項５１に記載のデータ記憶システムであって、第３の階層記憶装置はテープライブラリおよびＭＡＩＤの一方を含むデータ記憶システム。
【請求項５３】
請求項４５に記載のデータ記憶システムであって、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含み、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納する着脱自在媒体を含むデータ記憶システム。
【請求項５４】
請求項４５に記載のデータ記憶システムであって、ソフトウェアモジュールはバーチャルテープ、ネットワーク付属ストレージ、コンテンツアクセスストレージおよびクラスタファイルシステムからなるグループから選択されるデータ記憶システム。
【請求項５５】
ソフトウェアモジュールからデータセットを受信するデータ記憶システムであって、
（ｉ）第１の有効記憶容量、（ｉｉ）第１のＩ／Ｏ帯域幅、および（ｉｉｉ）第１のデータアクセス時間を有し、データをランダムアクセス方式で格納する第１の階層記憶装置と、
（ｉ）第１の有効記憶容量よりも大きい第２の有効記憶容量、（ｉｉ）第１のＩ／Ｏ帯域幅よりも狭い第２のＩ／Ｏ帯域幅、および（ｉｉｉ）第１のデータアクセス時間よりも長い第２のデータアクセス時間を有する第２の階層記憶装置と、
（ｉ）第２の有効記憶容量よりも大きい第３の有効記憶容量、（ｉｉ）第２のＩ／Ｏ帯域幅よりも狭い第３のＩ／Ｏ帯域幅、および（ｉｉｉ）第２のデータアクセス時間よりも長い第３のデータアクセス時間を有し、データを順次アクセス方式で格納する第３の階層記憶装置と、
データセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する冗長性レジューサと、
少なくとも部分的にデータブロックのマイグレーションパラメータに基づいて、第１の階層記憶装置、第２の階層記憶装置および第３の階層記憶装置間でデータブロックの１つを移動させるマイグレーションエンジンであって、マイグレーションパラメータは参照カウント、最終アクセス時間およびアクセスレートの１つを含むマイグレーションエンジンと、
記憶装置の１つに格納されるメタデータインデックスであって、マイグレーションエンジンはマイグレーションエンジンによるデータブロックの１つの移動と連係してメタデータインデックスを更新するメタデータインデックスと、
を含むデータ記憶システム。
【発明の詳細な説明】
【背景技術】
【０００１】
従来のデータバックアップシステムは、データがコピーされる方法において比較的非効率的となることがある。このようなシステムを使用すると、多くの場合、大量の重複データまたはデータブロックがコピーされることがある。典型的に、コンピュータはバージョン間の僅かな変動で同じドキュメントの多くのバージョンをバックアップする。たとえば、コンピュータシステムからのデータが週ベースで慣例的にコピーされて媒体をバックアップする場合、週毎に比較的少量のデータしか新しくならないことがある。残念ながら、従来のバックアップシステムでは、非変更データと新しいデータの両方がコピーされて、相当な量の不要な、冗長データがバックアップ媒体上に生じる。
【０００２】
例示するために、１週間後に、バックアップされるデータは全てユニークであるものとする。１０％のデータが週毎に変化する場合、２週後には、全データの５５％しかユニークではない。３週後には、バックアップされる全データの４０％しかユニークではない。１年後には、バックアップされる全データの１２％しかユニークではない。その結果、より大きな記憶容量が必要となり記憶装置のコストが増す。さらに、格納されるデータのこの冗長性によりバックアップからのデータ検索時間が増加して、システムの全体効率が低下する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明はソフトウェアモジュールからデータセットを受信するデータ記憶システムに向けられている。
【課題を解決するための手段】
【０００４】
一実施例では、データ記憶システムは第１の階層記憶装置、第２の階層記憶装置、冗長性レジューサおよびマイグレーションエンジンを含んでいる。ある実施例では、第１の階層記憶装置は第１の有効記憶容量を有する。第２の階層記憶装置は第１の有効記憶容量よりも大きな第２の有効記憶容量を有する。冗長性レジューサはデータセットを複数のデータブロックへ細分割してデータブロックの冗長性を低減する。マイグレーションエンジンはデータブロックのマイグレーションパラメータに基づいて１つ以上のデータブロックを第１の階層記憶装置および第２の階層記憶装置間で移動させる。
一実施例では、冗長性レジューサはハッシュエンジンおよび／またはルックアップエンジンを含んでいる。他の実施例では、マイグレーションパラメータは参照カウント、最終アクセス時間、アクセスレート、および／またはユーザ定義アクセスポリシーの１つ以上を含むことができる。
【０００５】
ある実施例では、記憶システムは記憶装置の１つに格納されるメタデータインデックスを含むこともできる。これらの実施例において、マイグレーションエンジンはマイグレーションエンジンによるデータブロックの１つの移動と連係してメタデータインデックスを更新することができる。ある実施例では、第１の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の前にデータセットの少なくとも一部を格納するディスク装置を含んでいる。さらに、第２の階層記憶装置は冗長性レジューサによるデータブロックの冗長性低減の後でデータセットの少なくとも一部を格納するディスク装置を含むことができる。もう１つの実施例では、記憶システムは第２の有効記憶容量よりも大きな第３の有効記憶容量を有する第３の階層記憶装置を含んでいる。この実施例において、マイグレーションエンジンはデータブロックのマイグレーションパラメータに基づいてデータブロックの１つを第２の階層記憶装置および第３の階層記憶装置間で移動させる。第３の階層記憶装置は、固定または着脱自在のテープライブラリ、ＭＡＩＤその他のタイプのアーカイバル記憶装置を含むことができる。
【０００６】
ある実施例では、テープ、ネットワーク付属ストレージ、コンテンツアドレッサブルストレージおよびクラスタファイルシステムからなるグループからソフトウェアモジュールが選択される。一実施例では、第１の階層記憶装置はランダムアクセス方式でデータを格納し、第２の階層記憶装置はランダムアクセスまたは順次アクセス方式でデータを格納する。ある実施例では、第１の階層記憶装置は第１のＩ／Ｏ帯域幅を有し、第２の階層記憶装置は第１のＩ／Ｏ帯域幅よりも狭い第２のＩ／Ｏ帯域幅を有する。ある実施例では、第１の階層記憶装置は第１のデータアクセス時間を有し、第２の階層記憶装置は第１のデータアクセス時間よりも非常に長い第２のデータアクセス時間を有する。
【実施例】
【０００７】
本発明は、そのさらなる利点と共に、同じ参照文字は同じ部品を示す添付説明と結合された添付図と共に、下記の説明を読めば最も良く理解できる。次に、添付図を参照して添付図に例示されているように本発明の特定の実施例を幾分詳細に説明する。これらの実施例は説明用であって、本発明の範囲を制約するものではない。他の実施例の示唆および説明も本発明の範囲内に含むことができるが、それらは添付図に例示されないことがあり、あるいは、本発明の特徴は図示はされるが明細書で記述されないことがある。
【０００８】
図１は本発明に従ったデータ記憶システム１０（ここではしばしば「記憶システム」とも呼ばれる）の一実施例のブロック図である。この実施例では、記憶システム１０は１つ以上のブロックプール１４Ａ−１４ｎを管理するユニークブロックプールマネージャ１２（ここではしばしば「マネージャ」とも呼ばれる）を含んでいる。一実施例では、マネージャ１２はそれを介して１つ以上のソフトウェアモジュール１８Ａ−Ｄ、すなわちバーチャルテープ１８Ａ、ネットワーク付属ストレージ１８Ｂ（ＮＡＳ）、コンテンツアドレッサブルストレージ１８Ｃ（ＣＡＳ）、クラスタファイルシステム１８Ｄ（クラスタＦＳ），等がマネージャ１２を利用できるアプリケーションプログラミングインターフェイス１６（ＡＰＩ）をエクスポートする。他の適切なソフトウェアモジュールは任意タイプのコンピュータシステム、コンピュータシステムのネットワーク、コンピュータシステム内のプロセス、分散または非分散ファイルシステム、ソフトウェアのコンポーネント、および／または通信システムを含むことができる。前記したソフトウェアモジュールは代表的な、非排他的例にすぎず、マネージャ１２が利用できるソフトウェアモジュールその他のコンピューティングシステムのタイプを制限するものではない。
【０００９】
ＡＰＩ１６により記憶システム１０のユーザは、ＡＰＴ１６により戻されデータブロック２０を検索するためにＡＰＩ１６に提示されるチケットを使用して複数のデータブロック２０を格納および検索することができる。また、ＡＰＩ１６は１つ以上のブロックプール１４Ａ−１４ｎ自体の生成、併合、移動、マイグレーション、統計的解析、等を容易にすることができる。
【００１０】
マネージャ１２の設計は記憶システム１０の設計要求条件に適するように変えることができる。一実施例では、マネージャ１２は（ｉ）ハッシュエンジン２２および／またはルックアップエンジン２４を有する冗長性レジューサ２１、（ｉｉ）アクセスエンジン２６、および（ｉｉｉ）マイグレーションエンジン２８の中の１つ以上を含むことができる。冗長性レジューサ２１は定められたデータセットの冗長性を低減する。冗長性レジューサ２１により利用される特定の方法は記憶システム１０の設計要求条件に応じて異なることがある。ハッシュエンジン２２のさまざまな実施例を含む、データセットの冗長性を低減するためのさまざまな方法が１９９９年１１月２３日にロス  ネイル  ウィリアムスに発行された米国特許第５，９９０，８１０号、およびロス  ネイル  ウィリアムスにより出願され２００６年１２月１４日に公開された米国特許出願第２００６／０２８２４５７Ａ１号に開示されている。許される範囲内で、米国特許第５，９９０，８１０号および米国特許出願第２００６／０２８２４５７Ａ１号の開示は本開示の一部としてここに組み入れられている。
【００１１】
冗長性レジューサ２１はハッシュエンジン２２およびルックアップエンジン２４を利用してユニークデータブロック２０だけをユニークデータブロックプール１４Ａ−１４ｎ内に格納する。ユニークデータブロック２０だけを格納することにより、記憶空間の実質的な節減を実現できる。たとえば、定められたシステム上でデータのバックアップが週ベースで生じるものと仮定し、かつ毎週節減されたデータの５％だけが新しいデータであると仮定すると、究極的にほぼ２０倍のストレージの低減を達成できる。言い換えると、データの初期セットが格納され、新しいユニークデータだけがその後格納される。時間とともに、格納されたユニークデータは、冗長性を含む、本来格納されているはずの全体生データの１／２０に近づく。記憶空間低減の程度は１つのバックアップセションから次のセションまでのデータセット内に含まれるユニークデータブロック２０のパーセンテージに基づいて前例とは異なることがある。
【００１２】
非排他的例として、ハッシュエンジン２２はソフトウェアとしてまたは特定用途集積回路（ＡＳＩＣ）上でハードウェアとして実現することができる。ハッシュエンジン２２は異なるデジタル指紋を各ユニークデータブロック２０と関連付ける再生可能方法であるハッシュアルゴリズムを含んでいる。ハッシュエンジン２２はソフトウェアモジュール１８Ａ−Ｄの１つからＡＰＩ１６を介して記憶システム１０内へ送られるデータセット上にハッシュを発生する責任がある。ハッシュエンジン２２は従来技術で一般的に知られている。
【００１３】
マネージャ１２に内蔵できるハッシュエンジン２２のタイプは記憶システム１０の設計要求条件に応じて異なることがある。ここで使用される用語「ハッシュ」はハッシュエンジン２２により発生させるバイトまたはビットの固定長シーケンスとすることができる。一般的に、ハッシュエンジン２２は各々がデータのバイトまたはビットの有限入力シーケンスを含む１つ以上のデータブロック２０を受入れ、各データブロック２０の入力シーケンスに非常に依存するバイトまたはビットの有限シーケンスを含むハッシュを発生する。各固定長ハッシュは互いに異なる長さを有することができるデータブロック２０に対応する。ハッシュエンジン２２を使用して２つのデータブロック２０が同一か異なるかをデータブロック２０を直接比較せずに調べることができる。一実施例では、ハッシュはマネージャ１２に入力される全データセットにわたって計算される。全データセットはマネージャ１２内で１つ以上のブロックプール１４Ａ−１４ｎに構成される。また、ハッシュはデータセットの一部または全部を検索するための手掛りとしてＡＰＩ１６のユーザへ返すことができる。一実施例では、ハッシュは計算されると全データセットと共にルックアップエンジン２４へ送られる。
【００１４】
ルックアップエンジン２４はデータブロック２０の１つ以上のメタデータインデックス３０Ａ−３０ｎを維持する。ここで使用される「メタデータ」はデータブロック２０に関する情報である。ブロックのメタデータは（限定はしないが）データブロック２０の長さ、データブロック２０のハッシュ、データブロック２０の満了日付、データブロック２０の参照カウント、および／またはデータブロック２０に関する任意他の関連識別子情報を含むことができる。後述するように、満了日付はデータブロック２０が記憶システム１０のユーザにより要求されないことが保証される最も早い日付を規定する。さらに、参照カウントは予め定められた期間にわたるデータブロック２０への現在の参照数と関連付けられる。後述するように、システム１０は参照カウントを使用していつデータブロック２０がもはや必要とされないかかつ／またはいつデータブロック２０をもう１つの場所へ移動させなければならないかを決定することができる。
【００１５】
一実施例では、記憶システム１０のユーザによるライト要求があると、ルックアップエンジン２４はハッシュエンジン２２により発生されたハッシュ値を定められたブロックプール、たとえば、ブロックプール１４Ａに対する１つ以上のメタデータインデックス、たとえば、メタデータインデックス３０Ａに対してルックアップすることができる。ハッシュが既に存在すれば、ルックアップエンジン２４はデータブロック２０がブロックプール１４Ａ内に既に存在すると決定することができ、そのデータブロック２０に対する参照カウントを増加することができる。ハッシュが存在しなければ、メタデータインデックス３０Ａ内にエントリを行うことができ、データブロック２０はアクセスエンジン２６へ提出して格納することができる。
【００１６】
記憶システム１０のユーザによるリード要求があると、ルックアップエンジン２４はメタデータインデックス３０Ａ内にハッシュが存在するかどうかを決定することができる。存在すれば、リード要求はアクセスエンジン２６へ提出して検索することができる。検索されると、ルックアップエンジン２４はデータブロック２０に対する最終アクセスをマークしてからデータブロック２０をユーザへ戻すことができる。
【００１７】
ある実施例では、アクセスエンジン２６は１つ以上のブロックプール、たとえば、ブロックプール１４Ａからのユニークデータブロック２０の格納および検索に対する責任がある。一実施例では、アクセスエンジン２６にはルックアップエンジン２４により現在の場所が与えられる。次に、非排他的例として、アクセスエンジン２６は固定または着脱自在ディスク３２Ａ，テープ３２Ｂ，または光ディスク（図１には図示せず）を含むことができる１つ以上の異なる記憶媒体３２Ａ−Ｂに対してデータブロック２０を検索または格納することができる。
【００１８】
マイグレーションエンジン２８は参照カウント、最終アクセス時間、アクセス数、等を含むことができる１つ以上のマイグレーションパラメータに基づいてデータブロック２０を移動させる責任がある。後述するように、一実施例では、マイグレーションエンジン２８はディスク３２Ａおよび／または着脱自在媒体３２Ｂ等の異なる記憶装置（後述するように、ここでは「階層」とも呼ばれる）間でデータブロック２０を移動させ、データブロック２０が移動されると関連するメタデータインデックス３０Ａ−３０ｎ内のデータブロック２０の場所を更新する。
【００１９】
下記の応用および／または操作例はマネージャ１２および記憶システム１０のいくつかの機能を全体として説明する。これらの非排他的例は単なる例示の目的で提供され、本発明の範囲を決して限定するものではない。
【００２０】
ストアデータセット：  この操作は基本的ストア操作である。一実施例では、データセットを受信すると、ハッシュエンジン２２はデータセットに対する手掛りとして使用される全体データセットハッシュを計算する。データセットはブロックへ分割され、それらは１つ以上のブロックプール１４Ａ−１４ｎに対してユニークさをチェックされる。最後に、全データセットをユニークデータセット２０へのポインタと置換してポインタマップを形成することができる。新しいユニークデータセット２０がリンクインされると、参照カウント、最終アクセス時間、単位時間当たりアクセス数、または任意他の適切なユーザ定義アクセスポリシー等の、そのデータブロック２０に対する関連マイグレーションパラメータが追跡される。非排他的例として、ユーザ定義アクセスポリシーはデータブロックまたはデータセットが移動または削除される前に特定の記憶装置または階層内になければならない特定期間をユーザが決定する、等のユーザのニーズに適した任意のポリシーを含むことができる。任意他の適切なユーザ定義アクセスポリシーをマイグレーションパラメータとして含むことができる。
【００２１】
検索データセット：この操作において、ユーザはハッシュハンドルを入力することができる。ハッシュハンドルはポインタマップを検索するのに使用される。次に、ポインタマップを使用してデータブロック２０をアセンブリングすることによりデータセットが再生成され、データセットをユーザへ戻す。データブロック２０が検索されると、参照カウント、最終アクセス時間、等の関連するマイグレーションパラメータが更新される。
【００２２】
マイグレート／アンマイグレートブロック：ブロックプール１４Ａ−１４ｎ内のデータブロック２０は、たとえば、参照カウント、最終アクセス時間および／またはアクセスレート（単位時間当たりアクセス数）を含むことができる。これらのマイグレーションパラメータのいずれかまたは全てを使用して、データブロック２０を異なる記憶装置３２Ａ−Ｂ（たとえば、図２に示すように、「階層」とも呼ばれる）間で移動させるポリシーを設定することができる。一つの非排他的例として、３週間よりも大きい最終アクセス時間を有するデータブロック２０をディスク３２Ａからテープ３２Ｂへ移動させることができる。この時間枠は単なる一例として提供され、ディスクからテープ等への、一つの階層からもう１つの階層へいつデータブロック２０が移動されるかを決定する任意の時間長を設定できることが認識される。必要ならば、データブロック２０は、たとえば、テープ３２Ｂからディスク３２Ａへ移動し戻してデータセットを検索することができる。さらに、データブロック２０の場所は必要に応じて慣例的に更新して、関連するメタデータインデックス３０Ａ−３０ｎ内に維持することができる。
【００２３】
リタイヤブロック：リタイヤブロックは、たとえば、予め定められた期間にわたって参照カウントがゼロまたは他の予め定められた数まで低下する時に、データブロック２０を関連するブロックプール１４Ａ−１４ｎから削除することができる内部清掃操作である。
【００２４】
マージプール：システムが多数のブロックプール１４Ａ−１４ｎの存在を許し、各々がそれ自体のユニークメタデータインデックス３０Ａ−３０ｎを有するため、ある状況下では２つ以上の独立したブロックプール１４Ａ−１４ｎを併合することが必要または有利となることがある。たとえば、最初に非重畳データブロック２０を含むと考えられていた２つのブロックプールが実際には重畳データブロック２０を含む時にこれは必要となることがある。この操作は「ドライ・ラン」モードで実施することができ、ユーザは結果を確認してから実際に操作を実行するかどうかを決定することができる。ユーザがドライ・ラン結果に満足したら、実際の併合プール操作を実行することができる。
【００２５】
図２はホスト２３４（記憶システム２１０のユーザ）および本発明の特徴を有する記憶システム２１０の一実施例を示す。ホスト２３４は記憶システム２１０とインターフェイスして記憶システム２１０にデータ検索を要求するか、あるいは記憶システム２１０へのライトシーケンスを開始する。図２に示す実施例では、記憶システム２１０はバックエンドテープ・ライブラリ等の第３の階層記憶装置２３８と通信する中位または企業階層記憶器具２３６を含むことができる。ある実施例では、記憶器具２３６は２ＴＢ等の定められた物理的ディスク記憶容量を含むＶＴＬまたはＮＡＳフロントエンド等の第１の階層記憶装置２４０、および物理的ディスク空間の２ＴＢを有する４０ＴＢ仮想記憶を有する仮想ディスク等の第２の階層記憶装置２４２を含むことができる。
【００２６】
これらの記憶装置２３８，２４０，２４２における有効記憶容量は記憶システム２１０の設計要求条件を調整するように変えられることが認識される。さらに、記憶装置２３８，２４０，２４２に関連して「第１」、「第２」および「第３」という用語は単に検討を容易にするために提供されるものであり、これらの記憶装置のどれが第１、第２または第３の記憶装置であってもよいことも理解される。また、記憶システム２１０の代替実施例は３個よりも少ない記憶装置または３個よりも多い記憶装置を含むことができることも理解される。さらに、第３の階層記憶装置２３８はここの教示と矛盾しない任意の記憶装置とすることができる。たとえば、第３の階層記憶装置２３８はアイドルディスクのマッシブアレイ（ＭＡＩＤ）または任意他のタイプのアーカイバル記憶装置とすることができる。
【００２７】
この実施例では、第１の階層記憶装置２４０はホスト２３４および記憶器具２３６間の高速データ転送用フロントエンドキャッシュを含んでいる。記憶器具２３６はユニークブロックプールマネージャ１２（図１に示す）の制御下で第１の階層記憶装置２４０、第２の階層記憶装置２４２および第３の階層記憶装置２３８間でデータ移動するためのマイグレーションエンジン２８（図１に示す）を含んでいる。
【００２８】
記憶器具２３６は遠隔支店統合用の複数の記憶器具２３６間でより効率的なデータ転送を行うためにブロックプール１４Ａ−１４ｎ間のデータ移動に対するセキュアなレプリケーションエンジン（図示せず）を含むこともできる。
【００２９】
記憶器具２３６が故障する場合にバックアップデータをネイティブで第３の階層記憶装置２３８へ転送することができ、次に、第３の階層記憶装置２３８は企業応用において高速レストアのために直接取り付けることができる。ここで使用される「ネイティブ」という用語は再現形式（ｄｅｄｕｐｌｉｃａｔｅｄ  ｆｏｒｍ）ではない、たとえば、冗長性レジューサ２１により低減されていない生形式のデータを意味する。ユニークデータブロックプール１４Ａ−１４ｎも非常に小さな記憶プレミアム付で冗長性のために第３の階層記憶装置２３８へ転送することができる。全体ソリューションは非常に少量の、非排他的例では、第３の階層記憶装置２３８のサイズの僅か２％のディスク空間で、非常に大量の記憶をほぼテープのコストポイントでホスト２３４にバーチュアライズできることを意味する。さらに、１つ以上の高い災害対策機能（すなわち、ミラーリング、レプリケーション、ポリシー駆動記憶プロビジョニング、等）も利用できる。第３の階層記憶装置２３８の有効記憶容量に対する記憶器具２３６の有効記憶容量の比はユニークデータコンテンツおよび必要に応じてユーザが定義および／または決定することができるデータ格納／保留ポリシーによって決まる。
【００３０】
さらに、ある実施例では、データブロック２０は１つの記憶装置からもう１つの記憶装置への移動の前または後で圧縮することができる。非限定的例として当業者ならば既知のｇｚｉｐまたはｂｚｉｐ２等の圧縮エンジンをこの目的のために使用することができる。
【００３１】
図３はホスト３３４（記憶システム３１０のユーザ）および本発明の特徴を有する記憶システム３１０のもう１つの実施例を示す。この実施例では、記憶システム３１０はテープドライブまたはラックマウントフォームファクタの内側に埋め込まれた第１の階層記憶装置３４０および第２の階層記憶装置３４２（アプリケーション／ＲＡＩＤコントローラサーバプラスディスク等）を有する記憶器具３３６を含むことができる。さらに、記憶システム３１０はテープドライブまたは一連のテープドライブ等の第３の階層記憶装置３３８を含むことができる。一実施例では、１つ以上の記憶装置３３８，３４０，３４２をオートローダの内側に位置決めして、異なるテープカートリッジ上のユニークブロックプールのライブラリをエクスポートすることができる。第１の階層記憶装置３４０はホスト３３４および記憶器具３３６間の高速データ転送のためのフロントエンドキャッシュを含むことができる。
【００３２】
記憶システムは第１の階層記憶装置３４０、第２の階層記憶装置３４２および／または第３の階層記憶装置３３８間のデータ移動用のマイグレーションエンジン２８（図１に示す）を含むこともできる。記憶システム３１０は遠隔支店統合用の複数の記憶器具３３６間でより効率的なデータ転送を行うためにブロックプール間のデータ移動に対するセキュアなレプリケーションエンジン（図示せず）を含むこともできる。
【００３３】
操作において、バックアップデータはユニークブロックプールデータとして第３の階層記憶装置３３８へ転送することができる。全体ソリューションはテープカートリッジのサイズに関して非常に大量の記憶を仮想でき、実際上２０倍の密度、すなわち単一テープカートリッジ上に２０個までの有効なカートリッジを仮想できることを意味する。また、多くのタイプのバックアップ目標およびファイルフォーマットを災害対策機能（すなわち、ミラーリング、レプリケーション、ポリシー駆動記憶プロビジョニング、等）により露出することができる。第３の階層記憶装置３３８上の記憶に対する記憶器具３３６上の記憶の比はユニークデータコンテンツおよびデータ格納／保留ポリシーによって決まる。
【００３４】
図４は記憶装置の複数の異なる階層を含むデータ記憶システム４１０の一実施例を示す略図である。この実施例において、図４は各データブロック２０（図１に示す）のマイグレーションパラメータに応じて記憶装置の異なる階層をどのように使用できるかの一例を示している。
【００３５】
たとえば、図４に示す実施例では、記憶システム４１０は第１の階層記憶装置４４０，第２の階層記憶装置４４２，第３の階層記憶装置４４８および第４の階層記憶装置４４４を含んでいる。前記したように、ユニークデータブロック２０（図１に示す）がマイグレーションパラメータに基づいてマイグレーションエンジン２８（図１に示す）により記憶装置４３８，４４０，４４２，４４４間で移動される。記憶システム内に含まれる特定タイプの記憶装置４３８，４４０，４４２，４４４は異なるアクセスパラメータを有し、したがって、異なるマイグレーションパラメータを有するデータブロックを調整するように適応される。
【００３６】
この非排他的実施例では、ユニークデータブロックはネイティブディスク４４０，冗長性低減ディスク４４２，ネイティブテープ４４４および／または冗長性低減テープ４３８上に常駐することができる。第１の階層記憶装置４４０は比較的高いＩ／Ｏ帯域幅、比較的小さい有効記憶容量を有し、ランダムアクセスを使用する。第２の階層記憶装置４４２は第１の階層記憶装置４４０よりも狭いＩ／Ｏ帯域幅、第１の階層記憶装置４４０よりも大きい有効記憶容量を有し、やはりランダムアクセスを使用する。第３の階層記憶装置４４４は第２の階層記憶装置４４２よりも狭いＩ／Ｏ帯域幅を有し、特に、多数のテープが使用される時に比較的大きい有効記憶容量を有し、順次アクセスを使用する。第４の階層記憶装置４３８は第３の階層記憶装置４４４よりも狭いＩ／Ｏ帯域幅を有し、第２の階層記憶装置４４２および第３の階層記憶装置４４４よりも大きい有効記憶容量を有し、順次アクセスを使用する。したがって、各データブロックはユーザおよび記憶システム４１０の目標および目的を満たすために、好ましいまたは最も望ましい記憶装置上に常駐することができる。このタイプのシステムの利点は性能向上、有効記憶容量の増加および／またはＧＢ当たり格納コストの低減の１つ以上を含むことができる。図４に示す記憶容量は代表的な例として提供されたものであり、決して本発明の範囲を制限するものではないことを認識するのは重要である。
【００３７】
さらに、本発明に従った記憶システムは４つの記憶装置４３８，４４０，４４２，４４４の全てを有する必要はなく、図示された記憶装置４３８，４４０，４４２，４４４の任意の２つまたは３つ、あるいはここの教示と矛盾しない任意他の適切なタイプの記憶装置を利用できることも認識される。さらに、記憶装置４３８，４４０，４４２，４４４の２つ以上を組み合わせて単一の記憶装置とすることができる。一つの非排他的例として、単一ディスク装置が第１の階層記憶装置４４０（たとえば、キャッシュ）および第２の階層記憶装置４４２（冗長性低減ディスク）の機能を果たすことができる。
【００３８】
図５Ａ−５Ｃは全てが組合せディスクテープ器具内にある、半分高さテープドライブを含む第３の階層記憶装置５４４だけでなく、第１の階層記憶装置５４０として働くキャッシュおよび第２の階層記憶装置５４２として働く付加記憶を有する埋込３．５インチディスク装置を有する記憶システム５１０の一部のフォームファクターの一実施例のさまざまな面を示す。
【００３９】
図６Ａ−６Ｃは６個の埋込２．５インチディスク装置の１個以上を含む第１の階層記憶装置６４０、残りの埋込２．５インチディスク装置を含む第２の階層記憶装置６４２、および半分高さテープドライブを含む第３の階層記憶装置６４４を有する記憶システム６１０の一部のフォームファクターの代替実施例のさまざまな面を示す。
【００４０】
図７は全てが２Ｕラックマウントユニット内の組合せディスクテープ器具内にある、６個の埋込３．５インチディスク装置の１個以上を含む第１の階層記憶装置７４０、６個の埋込３．５インチディスク装置の残りを含む第２の階層記憶装置７４２、および２個の半分高さテープドライブを含む第３の階層記憶装置７４４を有する記憶システム７１０の一部のさらにもう１つの代替フォームファクターの正面を示す。
【００４１】
ここに示しかつ開示した特定の記憶システム１０およびユニークブロックプールマネージャ１２は前記した目的を完全に達成しかつ利点を提供することができるが、それらは本発明の好ましい実施例を単に例示するに過ぎず、ここに示しかつ記述した方法、構造または設計の詳細を制限するものではないことが理解される。
【図面の簡単な説明】
【００４２】
【図１】本発明の特徴を有するデータ記憶システムの一実施例の単純化されたブロック図である。
【図２】データ記憶システムのもう１つの実施例の単純化されたブロック図である。
【図３】データ記憶システムのさらにもう１つの実施例の単純化されたブロック図である。
【図４】記憶装置の複数の異なる階層を含むデータ記憶システムの一実施例を示す略図である。
【図５】Ａは、データ記憶システムの一部に対するフォームファクターの一実施例の単純化された平面図である。Ｂは、図５Ａに示すデータ記憶システムの一部の単純化された側面図である。Ｃは、図５Ａに示すデータ記憶システムの一部の単純化された正面図である。
【図６】Ａは、データ記憶システムの一部に対するフォームファクターのもう１つの実施例の単純化された平面図である。Ｂは、図６Ａに示すデータ記憶システムの一部の単純化された側面図である。Ｃは、図６Ａに示すデータ記憶システムの一部の単純化された正面図である。
【図７】データ記憶システムの一部に対するフォームファクターのもう１つの実施例の単純化された正面図である。
【符号の説明】
【００４３】
１０  データ記憶システム
１２  ブロックプールマネージャ
１４Ａ−１４ｎ  ブロックプール
１６  アプリケーションプログラミングインターフェイス（ＡＰＩ）
１８Ａ  バーチャルテープ
１８Ｂ  ネットワーク付属ストレージ（ＮＡＳ）
１８Ｃ  コンテンツアドレッサブルストレージ（ＣＡＳ）
１８Ｄ  クラスタファイルシステム（クラスタＦＳ）
２０  データブロック
２１  冗長性レジューサ
２２  ハッシュエンジン
２４  ルックアップエンジン
２６  アクセスエンジン
２８  マイグレーションエンジン
３０Ａ  メタデータインデックス
３２Ａ−３０ｎ  着脱自在ディスク
３２Ｂ  テープ
２１０，３１０，４１０，５１０，６１０，７１０  記憶システム
２３４，３３４  ホスト
２３６，３３６  記憶器具
２３８，２４０，２４２，３３８，３４０，３４２，４３８，４４０，４４２，４４４，５４０，５４２，５４４，６４０，６４２，６４４，７４０，７４２，７４４  階層記憶装置
【図１】
2007234026.tif 000003
【図２】
2007234026.tif 000004
【図３】
2007234026.tif 000005
【図４】
2007234026.tif 000006
【図５】
2007234026.tif 000007
【図６】
2007234026.tif 000008
【図７】
2007234026.tif 000009
【外国語明細書】
2007234026000001.pdf