JP2010532538A - エミュレートされたストレージ・システム - Google Patents
エミュレートされたストレージ・システム Download PDFInfo
- Publication number
- JP2010532538A JP2010532538A JP2010515171A JP2010515171A JP2010532538A JP 2010532538 A JP2010532538 A JP 2010532538A JP 2010515171 A JP2010515171 A JP 2010515171A JP 2010515171 A JP2010515171 A JP 2010515171A JP 2010532538 A JP2010532538 A JP 2010532538A
- Authority
- JP
- Japan
- Prior art keywords
- data object
- backup
- data
- identifying
- backup data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】バックアップ・ストレージ・システムから冗長データを除去する方法を提示する。
【解決手段】一実施例では、この方法は、第1のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップと、第2の部分を、第1の部分を指し示すポインタに置き換えるステップと、を含んでいてもよい。
【選択図】図12
【解決手段】一実施例では、この方法は、第1のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップと、第2の部分を、第1の部分を指し示すポインタに置き換えるステップと、を含んでいてもよい。
【選択図】図12
Description
本発明の態様はデータ・ストレージに関し、さらに詳細には、既存の完全バックアップと、その後の増分バックアップと、を用いて完全データ・バックアップの均等物を提供できるテープ・ストレージ・システムをエミュレートする装置および方法、ならびにこのようなバックアップからエンド・ユーザがデータを復元できるようにする装置および方法に関する。
多くのコンピュータ・システムでは、1つ以上のホスト・コンピュータと、ホスト・コンピュータで使用されるデータを保存する1つ以上のデータ・ストレージ・システムとを含んでいる。これらのホスト・コンピュータとストレージ・システムとは、ファイバ・チャネル・ネットワーク、イーサネット(登録商標)・ネットワーク、または他の種類の通信ネットワークなどのネットワークを用いて、通常一緒にネットワーク接続されている。ファイバ・チャネルは、通信路ベースの伝送方式のスピードと、ネットワーク・ベースの伝送方式の自在性とを組み合わせた規格であり、複数のイニシエータがネットワーク上の複数のターゲットと通信することを可能にするものであり、イニシエータとターゲットとはネットワークに結合された任意のデバイスであってもよい。ファイバ・チャネルは、光ファイバ・ケーブルのような高速伝送媒体を用いて通常実施されるため、多量のデータを転送するストレージ・システム・ネットワークにおいて好んで選択される。
数個のホスト・コンピュータとバックアップ・ストレージ・システムとを含む典型的なネットワーク・コンピュータ環境の実施例を図1に示している。1つ以上のアプリケーション・サーバ102が、ローカル・エリア・ネットワーク(LAN)103を介して複数のユーザ・コンピュータ104と結合している。アプリケーション・サーバ102とユーザ・コンピュータ104との両方を「ホスト・コンピュータ」と見なしてもよい。アプリケーション・サーバ102は、ストレージ・エリア・ネットワーク(SAN)108を介して1つ以上のプライマリ・ストレージ・デバイス106と結合している。プライマリ・ストレージ・デバイス106は、例えば、EMC社、IBM社などの会社から入手できるようなディスク・アレイであってもよい。あるいは、バス(図示せず)または他のネットワーク・リンクが、アプリケーション・サーバとプライマリ・ストレージ・システム106との間の相互接続を提供してもよい。バスおよび/またはファイバ・チャネルのネットワーク接続は、小型コンピュータ用周辺機器相互接続(SCSI)プロトコルなどのプロトコルを用いて作動してもよく、このプロトコルは、ホスト・コンピュータ(例えば、アプリケーション・サーバ102)とストレージ・システム106との間で転送されるパケットのフォーマットを指示する。
図1に示したネットワーク・コンピュータ環境は、例えば、大規模な金融機関または大企業で使用される可能性があるような大規模システムの典型的な例であることを理解すべきである。多くのネットワーク・コンピュータ環境は、図1に示したすべての要素を含んでいる必要はないことを理解すべきである。例えば、より小さいネットワーク・コンピュータ環境では、直接にまたはLANを介して、ストレージ・システムに接続されたホスト・コンピュータだけを含んでいてもよい。さらに、図1は個々に分離したユーザ・コンピュータ104、アプリケーション・サーバ102、およびメディア・サーバ114を示しているが、これらの機能を1つ以上のコンピュータにまとめてもよい。
プライマリ・ストレージ・デバイス106に加えて、多くのネットワーク・コンピュータ環境は、少なくとも1つのセカンダリまたはバックアップ・ストレージ・システム110を含んでいる。バックアップ・ストレージ・システム110は通常テープ・ライブラリであってもよいが、他の大容量で信頼性の高いセカンダリ・ストレージ・システムを使用してもよい。通常、これらのセカンダリ・ストレージ・システムはプライマリ・ストレージ・デバイスよりも遅いが、取り外して現場から離れたところで保存してもよい何らかの種類のリムーバブル・メディア(例えば、テープ、磁気または光ディスク)を含んでいる。
図示の実施例では、アプリケーション・サーバ102は、例えば、イーサネット(登録商標)または他の通信リンク112を介してバックアップ・ストレージ・システム110と直接通信できてもよい。しかしながら、このような接続は比較的遅い可能性があり、また、プロセッサ時間またはネットワーク帯域幅などの資源(リソース)を使い果たす可能性がある。したがって、図示のようなシステムは、SAN108とバックアップ・ストレージ・システム110との間に、例えばファイバ・チャネルを用いて通信リンク115を提供してもよい1つ以上のメディア・サーバ114を含んでいてもよい。
メディア・サーバ114は、ホスト・コンピュータ(ユーザ・コンピュータ104、メディア・サーバ114、および/またはアプリケーション・サーバ102などの)と、プライマリ・ストレージ・デバイス106と、バックアップ・ストレージ・システム110と、の間のデータ転送を制御するバックアップ/復元アプリケーションを含むソフトウェアを実行してもよい。バックアップ/復元アプリケーションの実施例は、ベリタス、レガートなどの会社から入手できる。データを保護するために、当技術分野で公知のように、ネットワーク・コンピュータ環境内のさまざまなホスト・コンピュータおよび/またはプライマリ・ストレージ・デバイスからのデータを、バックアップ/復元アプリケーションを用いてバックアップ・ストレージ・システム110に定期的にバックアップしてもよい。
もちろん、上述したように、多くのネットワーク・コンピュータ環境は、より小さくてもよく、図1に示した例示的ネットワーク・コンピュータ環境が含むよりも少ない構成要素を含んでいてもよいことを理解すべきである。したがって、また、実際には、メディア・サーバ114をシングル・ホスト・コンピュータ内のアプリケーション・サーバ102と組み合わせてもよいということと、バックアップ/復元アプリケーションは(直接的に、またはネットワークなどを介して間接的に)バックアップ・ストレージ・システム110と結合している任意のホスト・コンピュータ上で実行してもよいということと、を理解すべきである。
典型的なバックアップ・ストレージ・システムの一実施例は、多くのテープ・カートリッジおよび少なくとも1つのテープ・ドライブと、カートリッジのテープ・ドライブへのローディングおよびアンローディングを制御するロボット機構と、を含むテープ・ライブラリである。バックアップ/復元アプリケーションはロボット機構に命令を出して、特定のテープ・カートリッジ、例えばテープ番号0001を探して、そのテープ・カートリッジをテープ・ドライブにロードして、テープ上にデータを書き込むことができるようにする。また、バックアップ/復元アプリケーションはテープ上にデータを書き込むフォーマットを制御する。通常、バックアップ/復元アプリケーションは、ロボット機構に命令するために、およびテープ・ドライブを制御してテープ上にデータを書き込んだり、以前書き込んだデータをテープから復元したりするために、SCSIコマンドまたは他の標準化コマンドを使用してもよい。
従来のテープ・ライブラリ・バックアップ・システムは、スピード、信頼性、および固定記憶容量を含む多くの問題をかかえている。多くの大企業は、毎週テラバイトのデータをバックアップする必要がある。しかしながら、高価なハイエンド・テープでさえ、通常、毎秒30〜40メガバイト(MB/s)のスピードでデータの読み書きを行うことができるに過ぎず、これは1時間当たり約50ギガバイト(GB/hr)に相当する。したがって、1テラバイトまたは2テラバイトのデータをテープにバックアップするために、バックアップ・システムは、少なくとも10〜20時間の連続したデータ転送時間を要する可能性がある。
さらに、テープが落とされたとき(人間のオペレータもしくはロボット機構が移動操作もしくはロード操作中にテープを落とす可能性があるため、典型的なテープ・ライブラリでは比較的頻繁に起こる可能性があるように)、またはテープが極端な温度もしくは湿度のような理想的ではない環境条件にさらされたとき、テープへまたはテープからデータを保存する(または復元する)ことが可能であるとは、ほとんどのテープ製造業者は保証しないであろう。したがって、管理された環境でテープを保存するように大きな注意を払う必要がある。さらに、テープ・ライブラリの複雑な機械装置(ロボット機構を含む)は維持するのに費用がかかり、個々のテープ・カートリッジは比較的高価であり、寿命も限られている。
本発明の実施形態は、従来のテープ・ライブラリ・システムの問題の一部またはすべてを克服または軽減するバックアップ・ストレージ・システムを提供するとともに、従来のテープ・ライブラリ・システムよりも高い融通性(フレキシビリティ)を提供する可能性があるバックアップ・ストレージ・システムを提供している。
大きく見ると、本発明の態様および実施形態は、従来のテープ・バックアップ・ストレージ・システムをエミュレートするランダム・アクセス・ベースのストレージ・システムを提供するものであり、それによりバックアップ/復元アプリケーションが物理的なテープ・ライブラリと同様のデバイスおよびメディアのビューを見るようになっている。本発明のストレージ・システムは、ソフトウェアとハードウェアとを使用して物理的なテープ・メディアをエミュレートし、それらの物理的なテープ・メディアを1つ以上のランダム・アクセス・ディスク・アレイに置き換えて、テープ・フォーマットの線形逐次(シーケンシャル)データを、ディスク上での保存に適したデータに変換する。
大きく見ると、本発明の態様および実施形態は、従来のテープ・バックアップ・ストレージ・システムをエミュレートするランダム・アクセス・ベースのストレージ・システムを提供するものであり、それによりバックアップ/復元アプリケーションが物理的なテープ・ライブラリと同様のデバイスおよびメディアのビューを見るようになっている。本発明のストレージ・システムは、ソフトウェアとハードウェアとを使用して物理的なテープ・メディアをエミュレートし、それらの物理的なテープ・メディアを1つ以上のランダム・アクセス・ディスク・アレイに置き換えて、テープ・フォーマットの線形逐次(シーケンシャル)データを、ディスク上での保存に適したデータに変換する。
本発明のいくつかの態様および実施形態に基づいて、既存のバックアップ・データ・セットをデコードして、検索可能なメタデータ・キャッシュ内にメタデータ(すなわち、ユーザ・データの情報を表すデータ)を保存するための機構と、ファイルまたはオブジェクトについてメタデータ・キャッシュを検索および/またはビューイングできるようにするための機構と、これらのファイルまたはオブジェクトを、典型的なバックアップ・ソフトウェアの既存のバックアップ・ポリシと既存のバックアップの実施とを通して保存されたデータからウェブ接続を介してダウンロードするための機構と、を提供している。また、既存の認証機構を経由してユーザを認証して、ユーザの現時点の資格証明に基づいてメタデータ・キャッシュのビューを制限するための機構を含んでいてもよい。
また、本発明の態様および実施形態は、バックアップ・データ・オブジェクトからの冗長データの除去を提供している。「重複排除」と呼んでもよいこの除去プロセスは、バックアップ・データのコピーを保持するために必要な記憶容量を削減するため、バックアップ・データを保存するために必要な電子メディアの量を削減する。本発明の少なくともいくつかの態様の重複排除プロセスの実施形態は、さらに後述するように、重複排除プロセスを最適化するためにメタデータを使用することによりコンピュータ資源の効率的な利用をもたらす。
本発明の他の態様および実施形態に基づいて、メタデータ・キャッシュ内の複数のカートリッジ表現の論理マージを実行するための機構と、新規に合成されたカートリッジがバックアップ/復元ソフトウェアにより有効なデータ・セットとして受け入れられるように、新規に合成されたカートリッジに適切にラベル付けおよびバーコード付けを行うための機構と、を提供している。また、本発明のさらなる態様および実施形態に基づいて、合成カートリッジを表すデータ要素の複数のコピーを保存するか、またはメタデータ・キャッシュ内に表された既存のデータを指し示すポインタだけを保存するための機構を提供している。
本発明の一態様は、第1のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトを特定するステップと、第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップと、第2の部分を、第1の部分を指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法に関する。
この方法では、第2の部分を、第1の部分を指し示すポインタに置き換えるステップが、第2の部分を除外し、かつ第1の部分を指し示すポインタを含んだ第2のバックアップ・データ・オブジェクトのコピーを生成するステップと、第2のバックアップ・データ・オブジェクトを削除するステップと、を含んでいてもよい。
また、この方法は、第2のバックアップ・データ・オブジェクトのコピーが第2のバックアップ・データ・オブジェクトと同じデータを表していることを確認するステップを含んでいてもよい。この方法では、第2のバックアップ・データ・オブジェクトを特定するステップが、第1のバックアップ・データ・オブジェクトよりも前にバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。この方法では、第2のバックアップ・データ・オブジェクトを特定するステップが、第1のバックアップ・データ・オブジェクトよりも後でバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。
また、この方法は、第2のバックアップ・データ・オブジェクトのコピーが第2のバックアップ・データ・オブジェクトと同じデータを表していることを確認するステップを含んでいてもよい。この方法では、第2のバックアップ・データ・オブジェクトを特定するステップが、第1のバックアップ・データ・オブジェクトよりも前にバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。この方法では、第2のバックアップ・データ・オブジェクトを特定するステップが、第1のバックアップ・データ・オブジェクトよりも後でバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。
また、この方法は、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップを含んでいてもよい。この方法では、第1のバックアップ・データ・オブジェクトを特定するステップが、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第1のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。また、この方法では、第2のバックアップ・データ・オブジェクトを特定するステップが、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第2のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。
この方法では、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、第1のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、第2のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、を含んでいてもよい。この方法では、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、第1のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、第2のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、を含んでいてもよい。この方法では、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、第1のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、第2のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、を含んでいてもよい。
この方法では、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、第1のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、第2のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、を含んでいてもよい。この方法では、第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップが、第1のバックアップ・データ・オブジェクトに関連するメタデータと、第2のバックアップ・データ・オブジェクトに関連するメタデータとを用いて、第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップを含んでいてもよい。この方法では、メタデータを用いて第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップが、リレーショナル・データベース内に保存されたメタデータを用いて第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップを含んでいてもよい。この方法では、第1のバックアップ・データ・オブジェクトを特定するステップは、第1のデータ・ファイルを特定するステップを含んでいてもよく、第2のバックアップ・データ・オブジェクトを特定するステップは、第2のデータ・ファイルを特定するステップを含んでいてもよい。この方法は、グリッド・コンピューティング環境で実行してもよい。この方法は、データがバックアップ・ストレージ・システムにバックアップされていない間に、バックアップ・ストレージ・システム上で方法を実行してもよい。
本発明の他の態様は、コンピュータ読み込み可能媒体に関し、当該媒体は、当該媒体の上に保存されたコンピュータ読み込み可能信号を有し、このコンピュータ読み込み可能信号は、コンピュータにより実行されると、第1のバックアップ・データ・オブジェクトを特定し、第2のバックアップ・データ・オブジェクトを特定し、第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの第1のバックアップ・データ・オブジェクトの第1の部分を検出し、第2の部分を、第1の部分を指し示すポインタに置き換えるようにコンピュータに指示する命令を規定している。
本発明の他の態様は、ソフトウェア・アプリケーションと関連する第1のデータ・オブジェクトを特定するステップと、ソフトウェア・アプリケーションと関連する第2のデータ・オブジェクトを特定するステップと、ソフトウェア・アプリケーションと関連するデータ配分パターンを用いて、第1のデータ・オブジェクトおよび第2のデータ・オブジェクトの両方内の冗長データを検出するステップと、第1のデータ・オブジェクト内の冗長データを、第2のデータ・オブジェクト内に配置された冗長データを指し示すポインタに置き換えるステップと、を含む方法に関する。
本発明の他の態様は、コンピュータ読み込み可能媒体に関し、当該媒体は、当該媒体の上に保存されたコンピュータ読み込み可能信号を有し、このコンピュータ読み込み可能信号は、コンピュータにより実行されると、ソフトウェア・アプリケーションと関連する第1のデータ・オブジェクトを特定し、ソフトウェア・アプリケーションと関連する第2のデータ・オブジェクトを特定し、ソフトウェア・アプリケーションと関連するデータ配分パターンを用いて、第1のデータ・オブジェクトおよび第2のデータ・オブジェクトの両方内の冗長データを検出し、第1のデータ・オブジェクト内の冗長データを、第2のデータ・オブジェクト内に配置された冗長データを指し示すポインタに置き換えるようにコンピュータに指示する命令を規定している。
本発明の他の態様は、第1のデータを含む第1のバックアップ・データ・オブジェクトと、第2のデータを含む第2のバックアップ・データ・オブジェクトとを含む複数のバックアップ・データ・オブジェクトを保存するバックアップ・ストレージ・メディアと、第1のデータのいずれかの部分と同じである第2のデータのいずれかの部分を特定して、第2のデータの特定部分を、第1のデータの対応部分を指し示すポインタに置き換えるように構成されたコントローラと、を含むシステムに関する。
このシステムでは、コントローラは第2のデータ・オブジェクトの特定部分を置き換えるようにさらに構成されていてもよく、その手段として、特定部分を除外し、かつ第1のデータの対応部分を指し示すポインタを含んだ第2のデータ・オブジェクトのコピーを生成する方式を採用してもよい。
本発明の他の態様は、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第1のバックアップ・データ・オブジェクトを特定するステップと、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第2のバックアップ・データ・オブジェクトを特定するステップと、第1のバックアップ・データ・オブジェクトおよび第2のバックアップ・データ・オブジェクトの両方内の冗長データを検出するステップと、冗長データの少なくとも1つのインスタンスを除外し、その除外された冗長データの少なくとも1つのインスタンスの代わりに、冗長データを指し示すポインタを含んだ、第2のバックアップ・データ・オブジェクトのコピーを生成するステップと、第2のバックアップ・データ・オブジェクトを削除するステップと、を含む方法に関する。
本発明の他の態様は、データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第1のバックアップ・データ・オブジェクトを特定するステップと、少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第2のバックアップ・データ・オブジェクトを特定するステップと、第1のバックアップ・データ・オブジェクトおよび第2のバックアップ・データ・オブジェクトの両方内の冗長データを検出するステップと、冗長データの少なくとも1つのインスタンスを除外し、その除外された冗長データの少なくとも1つのインスタンスの代わりに、冗長データを指し示すポインタを含んだ、第2のバックアップ・データ・オブジェクトのコピーを生成するステップと、第2のバックアップ・データ・オブジェクトを削除するステップと、を含む方法に関する。
これらの典型的態様および実施形態のさらに他の態様、実施形態、および利点について詳細に後述する。さらに、上述の情報および後述の詳細な説明の両方は、さまざまな態様および実施形態の例を示したに過ぎず、特許請求の範囲に係る態様および実施形態の本質および特徴を理解するための概説または枠組みを提供するものであることを理解すべきである。さまざまな態様および実施形態の図解とさらなる理解とを提供するために添付図面を含んでおり、それらの添付図面は本明細書に組み込まれるとともに本明細書の一部を構成している。図面は、本明細書の残りの部分とともに、説明され特許請求の範囲に係る態様および実施形態の原理および動作について説明する役目を果たす。
少なくとも1つの実施形態のさまざまな態様について添付図面を参照しながら以下に説明する。図面は、原寸に比例して描くことを目的として作られておらず、これらの図面では、さまざまな図面で説明されているそれぞれの同じ、またはほとんど同じ構成要素は、類似の数字で表されている。わかり易くするために、すべての図面においてすべての構成要素に参照符号を割り振ることはしないかもしれない。図面は例示および説明の目的で提供したものであり、本発明の限界を定義しようとするものではない。
さまざまな実施形態およびそれらの態様が、ここで、添付図面を参照してさらに詳細に説明されるであろう。本発明は、その応用において、以下の説明で記述した、または図面で示した構成要素の配置および構成の詳細に限定されないということを理解すべきである。本発明は他の実施形態で実施できるとともに、さまざまな方法で実施または実行できる。本明細書において具体的な実施態様の実施例はあくまで例を示す目的のためだけに提供しており、限定するものではない。特に、任意の1つ以上の実施形態に関して議論した操作、要素、および特徴は、他のいかなる実施形態における類似の役割からも排除されるものではない。また、本明細書で使用した語句および用語は、説明の目的で使用したものであり、限定するものと見なすべきではない。本明細書の中での「含む(including)」、「含む、備えている(comprising)」、「有する(having)」、「含む、収容している(containing)」、「伴う(involving)」、およびそれらの変形の使用は、それらの後に示される品目およびその均等物、ならびに追加品目を含むように意図されている。
本明細書で使用するように、用語「ホスト・コンピュータ」は、ストレージ・システムまたは他のホスト・コンピュータのような他のデバイスと通信できるパーソナル・コンピュータ、ワークステーション、メインフレーム、ネットワーク接続しているクライアント、サーバなどの、少なくとも1つのプロセッサを有する任意のコンピュータを示している。ホスト・コンピュータは、メディア・サーバおよびアプリケーション・サーバ(図1に関して上述したように)、ならびにユーザ・コンピュータ(ユーザ・ワークステーション、PC、メインフレームなどであってもよい)を含んでいてもよい。さらに、本開示の中では、用語「ネットワーク・コンピュータ環境」は、複数のホスト・コンピュータが1つ以上の共有ストレージ・システムに接続されて、ストレージ・システムがホスト・コンピュータのそれぞれと通信できるようになっている、任意の計算機(コンピューティング)環境を含んでいる。ファイバ・チャネルは、本発明の実施形態とともに使用してもよい通信ネットワークの一実施例である。しかしながら、本明細書で記述したネットワークはファイバ・チャネルに限らないということと、さまざまなネットワーク構成要素は、ファイバ・チャネルの代わりに、もしくはファイバ・チャネルに加えて、トークン・リングもしくはイーサネット(登録商標)のような任意のネットワーク接続を介して、または異なるネットワーク接続の組み合わせを介して、互いに通信してもよいということと、を理解すべきである。さらに、また、本発明の態様は、SCSIまたはパラレルSCSIのようなバス型トポロジで使用してもよい。
本発明のさまざまな実施形態および態様に基づいて、リムーバブル・メディア・ベースのストレージ・システムをエミュレートするために1つ以上のディスク・アレイを使用してもよい仮想リムーバブル・メディア・ライブラリ・バックアップ・ストレージ・システムを提供している。本発明の実施形態を用いて、ユーザは既存のバックアップ手順にいかなる変更もしくは修正も施す必要なく、または新規のバックアップ/復元アプリケーションを購入する必要もなく、リムーバブル・メディア(テープ、磁気ディスク、光ディスクなど)にデータをバックアップするために使用したのと同じバックアップ/復元アプリケーションを用いて、ディスク・アレイにデータをバックアップしてもよい。本明細書で詳述する一実施形態では、エミュレートされるリムーバブル・メディアはテープであり、本発明のバックアップ・ストレージ・システムは、テープと、従来のテープ・ライブラリ・システムでテープを取り扱うために使用されるロボット機構と、を含むテープ・ライブラリ・システムをエミュレートする。
本発明の実施形態を用いてバックアップされ復元されてもよいデータは、さまざまなデータ・オブジェクトで構成されていてもよい。これらのデータ・オブジェクトは、その中にデータを保存してもよい任意の構造を含んでいてもよい。典型的データ・オブジェクトの非制限的リストは、ビット、バイト、データ・ファイル、データ・ブロック、データ・ディレクトリ、バックアップ・データ・セット、および仮想カートリッジを含んでおり、これらについてはさらに後述する。本開示の大部分はデータ・ファイルのバックアップおよび復元について言及しているが、本発明の実施形態は任意のデータ・オブジェクトを操作してもよく、用語「データ・ファイル」は「データ・オブジェクト」と、相互に交換できることを理解すべきである。
本発明の態様のストレージ・システムは、ハードウェアとソフトウェアとを含んでおり、これらはホスト・コンピュータ(バックアップ/復元アプリケーションを実行する)とバックアップ・ストレージ・メディアとに一緒に連動(連結)している。ストレージ・システムは、バックアップ/復元アプリケーションが物理テープ・ライブラリと同様のデバイスおよびメディアのビューを見るように、テープまたは他の種類のリムーバブル・ストレージ・メディアをエミュレートするように設計されてもよく、かつ線形データ、逐次(シーケンシャル)データ、テープ・フォーマット・データを、ランダム・アクセス・ディスク上での保存に適したデータに変換するように設計されてもよい。このように、本発明のストレージ・システムは、新規のバックアップ/復元アプリケーション・ソフトウェアまたはポリシを必要とすることなく、機能性の向上(後述するように、ユーザが個々のバックアップ・ユーザ・ファイルを検索できるなど)を提供してもよい。
図2を参照すると、本発明の態様のバックアップ・ストレージ・システム170を含むネットワーク・コンピュータ環境の一実施形態をブロック図形式で示している。図示したように、ホスト・コンピュータ120は、ネットワーク接続121を介してストレージ・システム170と結合している。このネットワーク接続121は、例えば、ファイバ・チャネル接続であってもよく、この場合、ホスト・コンピュータ120とストレージ・システム170との間の高速データ転送を可能にする。ホスト・コンピュータ120は1つ以上のアプリケーション・サーバ102(図1参照)および/もしくはメディア・サーバ114(図1参照)であってもよく、またはホスト・コンピュータ120は1つ以上のアプリケーション・サーバ102(図1参照)および/もしくはメディア・サーバ114(図1参照)を含んでいてもよく、ホスト・コンピュータ120は、ネットワーク・コンピュータ環境内に存在しているコンピュータのうちのいずれかからのデータのバックアップでも、またはプライマリ・ストレージ・デバイス106(図1参照)からのデータのバックアップでも、どちらのバックアップでも行えるようにしてもよいことを理解すべきである。さらに、また、1つ以上のユーザ・コンピュータ136が、イーサネット(登録商標)接続などの他のネットワーク接続138を介してストレージ・システム170と結合していてもよい。詳細に後述するように、ストレージ・システムは、ユーザ・コンピュータ136のユーザがビューできるようにして、ストレージ・システムからバックアップ・ユーザ・ファイルを必要に応じて復元できるようにしてもよい。
さらに詳細に後述するように、ストレージ・システムは、例えば、1つ以上のディスク・アレイであってもよいバックアップ・ストレージ・メディア126を含んでいる。バックアップ・ストレージ・メディア126は、ホスト・コンピュータ120からのバックアップ・データ用の実際のストレージ・スペースを提供している。しかしながら、また、ストレージ・システム170は、テープ・ライブラリのようなリムーバブル・メディア・ストレージ・システムをエミュレートするソフトウェアおよび付加的なハードウェアを含んでいてもよく、その結果、ホスト・コンピュータ120上で実行されているバックアップ/復元アプリケーションから見ると、データが従来のリムーバブル・ストレージ・メディアにバックアップされているかのように見える。したがって、図2に示すように、ストレージ・システム170は、例えば、テープなどの仮想のまたはエミュレートされたリムーバブル・ストレージ・メディアを表す「エミュレートされたメディア」134を含んでいてもよい。これらの「エミュレートされたメディア」134は、ストレージ・システム・ソフトウェアおよび/またはハードウェアによりホスト・コンピュータに提示され、ホスト・コンピュータ120には物理ストレージ・メディアのように見える。エミュレートされたメディア134と実際のバックアップ・ストレージ・メディア126との間のさらなる接続は、さらに詳細に後述するように、ストレージ・システム・コントローラ(図示せず)と、ホスト・コンピュータ120からデータを受け取り、バックアップ・ストレージ・メディア126上にデータを保存するスイッチング・ネットワーク132と、であってもよい。このように、ストレージ・システムは、ホスト・コンピュータ120に対して従来のテープ・ストレージ・システムを「エミュレートする」。
一実施形態に基づいて、ストレージ・システムは、ホスト・コンピュータ120からストレージ・システム170にバックアップされるユーザ・データに関連するメタデータを保存する「論理メタデータ・キャッシュ」242を含んでいてもよい。本明細書で使用するように、用語「メタデータ」はユーザ・データについての情報を表すデータを示しており、実際のユーザ・データの属性を記述している。データ・オブジェクトに関するメタデータの非制限的な典型的リストは、データ・オブジェクト・サイズ、プライマリ・ストレージ内のデータ・オブジェクトの論理および/または物理ロケーション、データ・オブジェクトの作成日、データ・オブジェクトの最終更新日、そのポリシに基づいてデータ・オブジェクトが保存されたバックアップ・ポリシ名、データ・オブジェクトの名前またはウォータマークなどの識別子、ならびにデータ・オブジェクトと関連するソフトウェア・アプリケーションなどのデータ・オブジェクトのデータ・タイプを含んでいてもよい。論理メタデータ・キャッシュ242は、ユーザおよび/またはソフトウェア・アプリケーションがバックアップ・ユーザ・ファイルを任意に探すことを可能にするデータの検索可能なコレクションを表しており、ユーザ・ファイルを互いに比較して、比較しない場合には、バックアップ・ユーザ・ファイルにアクセスして、それを操作する。論理メタデータ・キャッシュ242内に保存されたデータを使用してもよいソフトウェア・アプリケーションの2つの実施例は、より詳しく後述する合成完全バックアップ・アプリケーション240およびエンド・ユーザ復元アプリケーション300を含んでいる。
簡単に概要を述べると、合成完全バックアップ・アプリケーション240は、1つの既存の完全バックアップ・データ・セットと1つ以上の増分バックアップ・データ・セットとから合成完全バックアップ・データ・セットを生成することができる。合成完全バックアップは、周期的に(例えば、週に一度)完全バックアップを実行する必要性を取り除き、それによって、かなりの時間とネットワーク資源とを節約してもよい。合成完全バックアップ・アプリケーション240の詳細については、さらに後述する。また、さらに詳細に後述するエンド・ユーザ復元アプリケーション300は、エンド・ユーザ(例えば、ユーザ・コンピュータ136のオペレータ)が、以前にバックアップされたユーザ・ファイルをストレージ・システム170からブラウズし、探し、ビューし、および/または復元することを可能にする。
上述したように、ストレージ・システム170はハードウェアおよびソフトウェアを含んでおり、この両者はホスト・コンピュータ120とバックアップ・ストレージ・メディア126とに連動している。本発明の実施形態のハードウェアとソフトウェアとは、一緒になって、従来のテープ・ライブラリ・バックアップ・システムをエミュレートしてもよく、その場合、それによりホスト・コンピュータ120からはデータがテープにバックアップされるように見えるが、実際には、例えば、複数のディスク・アレイなどの他のストレージ・メディアにバックアップされる。
図3を参照すると、本発明の態様のストレージ・システム170の一実施形態をブロック図の形式で示している。一実施例では、ストレージ・システム170のハードウェアは、ストレージ・システム・コントローラ122と、ストレージ・システム・コントローラ122をバックアップ・ストレージ・メディア126に接続するスイッチング・ネットワーク132と、を含んでいる。ストレージ・システム・コントローラ122は、プロセッサ127(シングル・プロセッサまたはマルチ・プロセッサであってもよい)と、メモリ129(RAM、ROM、PROM、EEPROM、フラッシュ・メモリなど、またはそれらの組み合わせ)と、を含んでおり、この両者はストレージ・システム・ソフトウェアのすべてまたは一部を実行してもよい。また、メモリ129は、バックアップ・ストレージ・メディア126上に保存されたデータに関連するメタデータを保存するために使用してもよい。本発明の実施形態を実施するプログラミング・コードを含むソフトウェアは、RAM、ROM、光ディスクもしくは磁気ディスク、またはテープなどのコンピュータ読み込み可能および/または書き込み可能不揮発性記録媒体に一般に保存され、その後、メモリ129にコピーされて、プロセッサ127がその後当該ソフトウェアを実行してもよい。このようなプログラミング・コードは、例えば、Java(登録商標)、Visual Basic、C、C#、もしくはC++、フォートラン、パスカル、エッフェル、Basic、COBAL、またはそれらの組み合わせなどの複数のプログラミング言語のうちのいずれかで書かれてもよいが、本発明は特定のプログラミング言語に限定されない。通常、動作について見ると、プロセッサ127は、本発明の実施形態を実施するコードなどのデータを、不揮発性記録媒体からRAMなどの他の形態のメモリに読み込ませて、この他の形態のメモリは不揮発性記録媒体に比べてプロセッサが、情報に、より高速にアクセスできるようにさせる。
図3に示すように、また、コントローラ122は多くのポート・アダプタを含んでおり、これらのポート・アダプタはコントローラ122とホスト・コンピュータ120とを接続するとともに、コントローラ122とスイッチング・ネットワーク132とを接続している。図示したように、ホスト・コンピュータ120はポート・アダプタ124aを介してストレージ・システムに結合しており、このポート・アダプタ124aは、例えば、ファイバ・チャネル・ポート・アダプタであってもよい。ストレージ・システム・コントローラ122を介して、ホスト・コンピュータ120はバックアップ・ストレージ・メディア126にデータをバックアップし、バックアップ・ストレージ・メディア126からデータを復元することができる。
図示の実施例では、スイッチング・ネットワーク132は1つ以上のファイバ・チャネル・スイッチ128a、128bを含んでいてもよい。ストレージ・システム・コントローラ122は、ストレージ・システム・コントローラをファイバ・チャネル・スイッチ128a、128bに結合するために、複数のファイバ・チャネル・ポート・アダプタ124bおよび124cを含んでいる。ファイバ・チャネル・スイッチ128a、128bを介して、ストレージ・システム・コントローラ122は、データをバックアップ・ストレージ・メディア126にバックアップすることができる。図3に示すように、スイッチング・ネットワーク132は、イーサネット(登録商標)・ポート・アダプタ125a、125bを介してストレージ・システム・コントローラ122に結合している1つ以上のイーサネット(登録商標)・スイッチ130a、130bをさらに含んでいてもよい。一実施例では、ストレージ・システム・コントローラ122は、後述するように、例えば、LAN103に結合してもよい他のイーサネット(登録商標)・ポート・アダプタ125cをさらに含んでおり、ストレージ・システム170がホスト・コンピュータ(例えば、ユーザ・コンピュータ)と通信できるようになっている。
図3に示した実施例では、ストレージ・システム・コントローラ122は、2つのファイバ・チャネル・スイッチと2つのイーサネット(登録商標)・スイッチとを含むスイッチング・ネットワークを介してバックアップ・ストレージ・メディア126に結合している。ストレージ・システム170の中の各種類のスイッチを少なくとも2つずつ備えることにより、システム内の任意の単独の不具合による故障が排除される。言い換えれば、1つのスイッチ(例えば、ファイバ・チャネル・スイッチ128a)が働かなくなっても、ストレージ・システム・コントローラ122は他のスイッチを経由してバックアップ・ストレージ・メディア126と依然として通信できるであろう。このような組み合わせは、信頼性およびスピードに関して有利である可能性がある。例えば、上述したように、信頼性は冗長構成要素の提供と単独の不具合による故障の排除とを通して向上する。さらに、いくつかの実施形態では、ストレージ・システム・コントローラは、並列接続のファイバ・チャネル・スイッチのうちのいくつかまたはすべてを用いて、バックアップ・ストレージ・メディア126にデータをバックアップすることができ、それによって全体的なバックアップスピードを向上させる。しかしながら、システムが各種類のスイッチを2つ以上ずつ含むようにとの要求もなく、スイッチング・ネットワークがファイバ・チャネルとイーサネット(登録商標)・スイッチとの両方を含むようにとの要求もないことを理解すべきである。さらに、バックアップ・ストレージ・メディア126が単一のディスク・アレイを含んでいる実施例では、スイッチがまったく必要ないかもしれない。
上述したように、一実施形態では、バックアップ・ストレージ・メディア126は、1つ以上のディスク・アレイを含んでいてもよい。好ましい一実施形態では、バックアップ・ストレージ・メディア126は複数のATAまたはSATAディスクを含んでいる。このようなディスクは「市販」製品であり、EMC、IBMなどの製造業者の従来のストレージ・アレイ製品と比べて比較的安価である可能性がある。さらに、リムーバブル・メディア(例えば、テープ)の経費と、このようなメディアが限られた寿命を有するという事実とを考慮に入れるとき、このようなディスクにかかる経費は従来のテープ・ベースのバックアップ・ストレージ・システムと同程度である。さらに、このようなディスクはテープよりも実質的に速くデータを読み書きできる。例えば、単一のファイバ・チャネル接続を介して、少なくとも約150MB/sのスピードでディスクにデータをバックアップすることができ、これは約540GB/hrに相当し、テープ・バックアップ・スピードよりも大幅に速い(例えば、一桁ほど)。さらに、数個のファイバ・チャネル接続を並列接続して実施してもよく、それによってスピードをさらにもっと向上させてもよい。本発明の実施形態に従って、バックアップ・ストレージ・メディアは、多くのRAID(Redundant Array of Independent Disks(独立ディスクの冗長配列))スキームのうちのいずれか1つを実施するように構成されてもよい。例えば、一実施形態では、バックアップ・ストレージ・メディアはRAID−5実施態様を実施してもよい。
上述したように、本発明の実施形態は、ディスク・アレイを用いて従来のテープ・ライブラリ・バックアップ・システムをエミュレートして、物理バックアップ・ストレージ・メディアとしてのテープ・カートリッジを置き換えて、それによって「仮想テープ・ライブラリ」を提供している。従来のテープ・ライブラリ内に存在している物理テープ・カートリッジを、本明細書で「仮想カートリッジ」と呼んでいるもので置き換える。本開示の目的において、用語「仮想テープ・ライブラリ」は、ソフトウェア、および/または、例えば、1つ以上のディスク・アレイのような物理的なハードウェアで実施してもよいエミュレートされたテープ・ライブラリを指していることを理解すべきである。この議論ではエミュレートされたテープについて主として言及しているが、ストレージ・システムは、例えば、CD−ROMまたはDVD−ROMなどの他のストレージ・メディアもまたエミュレートしてもよいということと、用語「仮想カートリッジ」は、例えば、エミュレートされたテープまたはエミュレートされたCDなどのエミュレートされたストレージ・メディアを一般に指しているということと、をさらに理解すべきである。一実施形態では、仮想カートリッジは実際には1つ以上のハード・ディスクに対応している。
したがって、一実施形態では、テープ・ライブラリをエミュレートするためにソフトウエア・インタフェースを提供しており、それによりバックアップ/復元アプリケーションにはデータがテープにバックアップされているように見える。しかしながら、実際のテープ・ライブラリを1つ以上のディスク・アレイに置き換えており、実際にはデータをこれらのディスク・アレイにバックアップしている。他の種類のリムーバブル・メディア・ストレージ・システムをエミュレートしてもよく、本発明はテープ・ライブラリ・ストレージ・システムのエミュレーションに限定されないということを理解すべきである。以下の議論で、ストレージ・システム170内に含まれるソフトウェアのさまざまな態様、特徴、および動作について説明するであろう。
ストレージ・システム170内に「含まれて」いるものとしてソフトウェアを説明してもよく、ストレージ・システム・コントローラ122のプロセッサ127によりソフトウェアを実行してもよい(図3参照)が、すべてのソフトウェアをストレージ・システム・コントローラ122上で実行するようにとの要求はないことを理解すべきである。合成完全バックアップ・アプリケーションおよびエンド・ユーザ復元アプリケーションのようなソフトウェア・プログラムは、ホスト・コンピュータおよび/またはユーザ・コンピュータ上で実行されてもよく、それらのソフトウェア・プログラムの一部分は、ストレージ・システム・コントローラ、ホスト・コンピュータ、およびユーザ・コンピュータのすべてまたは一部に振り分けられてもよい。したがって、ストレージ・システム・コントローラがコンピュータのような含まれている物理エンティティであるという要求はないということを理解すべきである。ストレージ・システム170は、例えば、メディア・サーバ114またはアプリケーション・サーバ102などのホスト・コンピュータ上に常駐するソフトウェアと通信してもよい。さらに、ストレージ・システムは、同じまたは異なるホスト・コンピュータ上で、実行されてもよいまたは常駐してもよい数個のソフトウェア・アプリケーションを含んでいてもよい。さらに、いくつかの実施形態ではストレージ・システム170を装置の個別の要素として具現してもよいが、ストレージ・システム170は装置の個別の要素に限定されないということを理解すべきである。一実施例では、従来のテープ・ライブラリ・バックアップ・システムの「プラグ・アンド・プレイ」(すなわち、既存のバックアップ手順およびポリシにいかなる変更も行う必要がない)代替物として機能する自己完結ユニットとしてストレージ・システム170を提供してもよい。また、従来のバックアップ・システムを含むネットワーク・コンピュータ環境内で、このようなストレージ・システム・ユニットを使用して、冗長性または追加の記憶容量を提供してもよい。他の実施形態では、クラスタ環境またはグリッド環境のような分散コンピューティング環境内でストレージ・システム116を実施してもよい。
上述したように、一実施形態に基づいて、(例えば、アプリケーション・サーバ102またはメディア・サーバ114であってもよい、図1参照)ホスト・コンピュータ120は、ホスト・コンピュータ120をストレージ・システム170に結合するネットワーク・リンク(例えば、ファイバ・チャネル・リンク)121を介して、データをバックアップ・ストレージ・メディア126にバックアップしてもよい。以下の議論ではエミュレートされたメディアへのデータのバックアップについて主として言及するであろうが、原理はエミュレートされたメディアからのバックアップ・データの復元に対しても当てはまることを理解すべきである。上述したように、ホスト・コンピュータ120とエミュレートされたメディア134との間のデータの流れを、バックアップ/復元アプリケーションにより制御してもよい。バックアップ/復元アプリケーションからは、物理バージョンのエミュレートされたメディアにデータが実際にバックアップされているように見えるかもしれない。
図4を参照すると、ストレージ・システム・ソフトウェア150は1つ以上の論理的抽象化レイヤを含んでいてもよく、この論理的抽象化レイヤは、エミュレートされたメディアを表すとともに、ホスト・コンピュータ120上に常駐するバックアップ/復元アプリケーション140と、バックアップ・ストレージ・メディア126との間のインタフェースを提供している。ソフトウェア150はバックアップ/復元アプリケーション140からテープ・フォーマット・データを受け取り、そのデータを、ランダム・アクセス・ディスク(例えば、ハード・ディスク、光ディスク、およびその種の他のもの)上での保存に適したデータに変換する。一実施例では、このソフトウェア150はストレージ・システム・コントローラ122のプロセッサ127上で実行され、メモリ129内に保存されてもよい(図3参照)。
一実施形態に基づいて、ソフトウェア150は本明細書で仮想テープ・ライブラリ(VTL)レイヤ142と呼ばれるレイヤを含んでいてもよく、このVTLレイヤ142は、テープのSCSIエミュレーションを提供してもよく、テープ・ドライブのSCSIエミュレーションを提供してもよく、ならびにテープをテープ・ドライブまで、およびテープをテープ・ドライブから移動するために使用されるロボット機構のSCSIエミュレーションも同様に提供してもよい。バックアップ/復元アプリケーション140は、例えば、矢印144で表されたSCSIコマンドを用いてVTL142と通信(例えば、エミュレートされたメディアにデータをバックアップしたり、または書き込んだり)してもよい。したがって、VTLは、他方のストレージ・システム・ソフトウェアおよびハードウェアと、バックアップ/復元アプリケーションとの間のソフトウエア・インタフェースを形成して、エミュレートされたストレージ・メディア134(図2)をバックアップ/復元アプリケーションに提示し、バックアップ/復元アプリケーションにはエミュレートされたメディアが従来のリムーバブル・バックアップ・ストレージ・メディアのように見えるようにしてもよい。
本明細書でファイル・システム・レイヤ146と呼ばれる第2のソフトウェア・レイヤが、エミュレートされたストレージ・メディア(VTL内に表されている)と、物理バックアップ・ストレージ・メディア126との間のインタフェースを提供してもよい。一実施例では、ファイル・システム146は、例えば、矢印148で表されたSCSIコマンドを用いてバックアップ・ストレージ・メディア126と通信して、データをバックアップ・ストレージ・メディア126から読み取ったり、バックアップ・ストレージ・メディア126へ書き込んだりするための小規模のオペレーティング・システムの機能を果たしている。
一実施形態では、VTLは、一般的なテープ・ライブラリ・サポートを提供しており、任意のSCSIメディア・チェンジャをサポートしてもよい。エミュレートされたテープ・デバイスは、IBM LTO−1およびLTO−2テープ・デバイス、クアンタムSuperDLT320テープ・デバイス、クアンタムP3000テープ・ライブラリ・システム、またはSTORAGETEK L180テープ・ライブラリ・システムを含んでいてもよいが、これらに限らない。VTLの中では、それぞれの仮想カートリッジは、データが保存されるに従って動的に増大してもよいファイルである。これは固定サイズを有する従来のテープ・カートリッジとは対照的である。図5に関してさらに後述するように、システム・ファイル内に1つ以上の仮想カートリッジを保存してもよい。
図5は、本発明の実施形態のシステム・ファイル200を説明するファイル・システム・ソフトウェア146の中のデータ構造の一実施例を示している。この実施形態では、システム・ファイル200は、ヘッダ202とデータ204とを含んでいる。ヘッダ202は、そのシステム・ファイル内に保存されている仮想カートリッジのそれぞれを特定する情報を含んでいてもよい。また、ヘッダは、仮想カートリッジが書き込み禁止かどうか、仮想カートリッジの作成日/更新日などの情報を含んでいてもよい。一実施例では、ヘッダ202は、それぞれの仮想カートリッジを一意的に特定して、ストレージ・システム内に保存されたそれぞれの仮想カートリッジと他の仮想カートリッジとを区別する情報を含んでいる。例えば、この情報は、仮想カートリッジの名前および識別番号(ロボット機構によりテープを識別できるように物理テープ上に通常存在しているであろうバーコードに対応している)を含んでいてもよい。また、ヘッダ202は、仮想カートリッジのそれぞれの容量、最終更新日などの補足情報を含んでいてもよい。
本発明の一実施形態に基づいて、ヘッダ202のサイズは、現在保存しているデータ(例えば、1つ以上のホスト・コンピュータ・システムからのデータ・バックアップを表す仮想カートリッジ)の種類と、システムが追跡できるこのようなデータ(例えば、仮想カートリッジ)の異なるセットの個数と、を反映するように最適化されてもよい。例えば、テープ・ストレージ・システムに通常バックアップされるデータは、多数のシステムとユーザ・ファイルとを表すより大きなデータ・セットを通常特徴とする。データ・セットが非常に大きいため、それに対応して、追跡すべき個別のデータ・ファイルの個数は小さくなる可能性がある。したがって、一実施形態では、あまりに多くのデータを保存し過ぎて効率的に追跡できないこと(すなわち、ヘッダが大き過ぎること)と、十分な個数のカートリッジ識別子を保存する余地がないこと(すなわち、ヘッダが小さ過ぎること)との間の妥協に基づいて、ヘッダ202のサイズを選択してもよい。模範的な一実施形態では、ヘッダ202はシステム・ファイル200の最初の32MBを利用している。しかしながら、ヘッダ202はシステム要求およびシステム特性に基づいて異なるサイズを有してもよいことと、システム要求およびシステム容量に応じてヘッダ202に異なるサイズを選択してもよいことと、を理解すべきである。
バックアップ/復元アプリケーションからは、仮想カートリッジはすべて同じ属性および特徴を有する物理テープ・カートリッジのように見えることを理解すべきである。すなわち、バックアップ復元アプリケーションには、仮想カートリッジは逐次的(シーケンシャル)に書き込まれたテープのように見える。しかしながら、好ましい一実施形態では、仮想カートリッジ内に保存されたデータは、バックアップ・ストレージ・メディア126上に逐次フォーマットで保存されているわけではない。正確に言えば、仮想カートリッジに書き込まれているように見えるデータは、実際にはランダムにアクセス可能なディスク・フォーマット・データとしてストレージ・システムのファイル内に保存されている。保存データを仮想カートリッジにリンクするためにメタデータを使用して、バックアップ/復元アプリケーションがデータをカートリッジ・フォーマットで読み書きできるようになっている。
したがって、好ましい一実施形態を広く見ると、ユーザ・データおよび/またはシステム・データ(本明細書で「ファイル・データ」と呼ぶ)は、ストレージ・システム170によりホスト・コンピュータ120から受信されて、バックアップ・ストレージ・メディア126を構成するディスク・アレイ上に保存されている。さらに詳細に後述するように、ストレージ・システムのソフトウェア150(図4参照)および/またはハードウェアは、このファイル・データをシステム・ファイルの形式でバックアップ・ストレージ・メディア126に書き込む。バックアップされるユーザ・ファイルおよび/またはシステム・ファイルの属性を追跡するために、データ・ファイルがストレージ・システム・コントローラによりバックアップされているときにメタデータを抽出する。例えば、各ファイルに対するこのようなメタデータは、ファイル名、ファイルの作成日または最終更新日、ファイルに関連する任意の暗号情報、および他の情報を含んでいてもよい。さらに、各ファイルに対してストレージ・システムによりメタデータを生成してもよく、このメタデータはファイルを仮想カートリッジにリンクする。このようなメタデータを用いて、ソフトウェアはホスト・コンピュータにテープ・カートリッジのエミュレーションを提供するが、ファイル・データは実際にはテープ・フォーマットでは保存されておらず、正確に言えば、後述するようにシステム・ファイルの形式で保存されている。逐次カートリッジ・フォーマットでデータを保存するのではなく、むしろシステム・ファイルの形式でデータを保存することは、特定のファイルを見つけるために逐次データをスキャンする必要なしに、個々のファイルに対する速くて効率的でランダムなアクセスを可能とするという点で有利である可能性がある。
上述したように、一実施形態に基づいて、ファイル・データ(すなわち、ユーザ・データおよび/またはシステム・データ)は、バックアップ・ストレージ・メディア上にシステム・ファイルとして保存されており、各システム・ファイルはヘッダとデータとを含んでおり、データは実際のユーザ・ファイルおよび/またはシステム・ファイルである。各システム・ファイル200のヘッダ202は、ユーザ・ファイルおよび/またはシステム・ファイルを仮想カートリッジにリンクするメタデータを含むテープ・ディレクトリ206を含んでいる。本明細書で使用している用語「メタデータ」はユーザ・ファイル・データまたはシステム・ファイル・データを指しておらず、実際のユーザ・データおよび/またはシステム・データの属性を記述するデータを指している。一実施例に基づいて、テープ・ディレクトリは、バイト・レベルまで、仮想カートリッジ上のデータのレイアウトを規定してもよい。
一実施形態では、図6に示すように、テープ・ディレクトリ206はテーブル(表)構造を有している。表は、保存された情報の種類(例えば、データ、ファイル・マーカ(FM)など)の欄220と、使用されたディスク・ブロックのサイズをバイト単位で表した欄222と、ファイル・データが保存されているディスク・ブロックの個数を計算する欄224と、を含んでいる。したがって、テープ・ディレクトリは、バックアップ・ストレージ・メディア126上に保存された任意のデータ・ファイルにコントローラがランダム・アクセス(逐次アクセスとは対照的に)できるようにしている。例えば、図6を参照すると、ファイル226のデータではシステム・ファイル200の最初から1つのブロックを始めることをテープ・ディレクトリが示しているため、データ・ファイル226は仮想テープ上で迅速に見つけられる可能性がある。この1つのブロックはファイル・マーカ(FM)に対応しているため、サイズを有していない。ファイル・マーカはシステム・ファイル内には保存されず、すなわち、ファイル・マーカはゼロ・データに対応している。ファイル・マーカが従来のテープにより使用されているため、テープ・ディレクトリはファイル・マーカを含んでおり、したがって、バックアップ/復元アプリケーションはデータ・ファイルと一緒にファイル・マーカを書き込んで、仮想カートリッジをビューするときにファイル・マーカを確認する予定である。したがって、ファイル・マーカはテープ・ディレクトリ内で追跡されている。しかしながら、ファイル・マーカはいかなるデータも表しておらず、したがって、ファイル・マーカはシステム・ファイルのデータ・セクション内には保存されない。その結果、ファイル226のデータは、矢印205(図5参照)で示した、システム・ファイルのデータ・セクションの最初から始まり、ファイル226のデータの長さは1024バイト(すなわち、サイズが1024バイトの1つのディスク・ブロック)である。他のファイル・データは、データ量、すなわち、データ・ファイルのサイズに応じて、1024バイト以外のブロック・サイズで保存してもよいことを理解すべきである。例えば、より大きなデータ・ファイルは、効率性の観点から、より大きなディスク・ブロック・サイズを用いて保存してもよい。
一実施例では、ストレージ・システムにバックアップされる各データ・ファイルと関連する「ファイル記述子(ディスクリプタ)」内にテープ・ディレクトリを含んでいてもよい。ファイル記述子は、ストレージ・システム上に保存されたデータ・ファイル204に関連するメタデータを含んでいる。一実施形態では、ほとんどのUNIX(登録商標)ベース・システムが使用しているテープ・アーカイブ(tar)フォーマットのような標準化フォーマットに基づいてファイル記述子を実施してもよい。各ファイル記述子は、対応するユーザ・ファイルの名前、ユーザ・ファイルを作成または更新した日付、ユーザ・ファイルのサイズ、ユーザ・ファイルに対する任意のアクセス制限などの情報を含んでいてもよい。ファイル記述子内に保存された補足(追加)情報は、そこからデータがコピーされたディレクトリ構造を記述する情報をさらに含んでいてもよい。したがって、さらに詳細に後述するように、ファイル記述子は対応するデータ・ファイルについての検索可能なメタデータを含んでいてもよい。
バックアップ/復元アプリケーションからすると、任意の仮想カートリッジは複数のデータ・ファイルおよび対応するファイル記述子を含んでいてもよい。ストレージ・システム・ソフトウェアからすると、データ・ファイルは、システム・ファイル内、例えば、特定のバックアップ・ジョブにリンクされてもよいシステム・ファイル内に保存されている。例えば、1つのホスト・コンピュータにより特定の時刻に実行されたバックアップは、1つ以上の仮想カートリッジに対応してもよい1つのシステム・ファイルを生成してもよい。したがって、仮想カートリッジは任意のサイズのものであってもよく、より多くのユーザ・ファイルが仮想カートリッジ上に保存されるに従って動的に増大してもよい。
再び図2を参照すると、上述したように、ストレージ・システム170は、合成完全バックアップ・ソフトウェア・アプリケーション240を含んでいてもよい。一実施形態では、ホスト・コンピュータ120はエミュレートされたメディア134にデータをバックアップして、1つ以上の仮想カートリッジを形成する。いくつかのコンピュータ環境では、「完全バックアップ」、すなわち、ネットワーク内のプライマリ・ストレージ・システム(図1参照)上に保存されたすべてのデータのバックアップ・コピーは、定期的に(例えば、週に一度)実行してもよい。コピーされるべき大量のデータのために、このプロセスは通常非常に長い時間がかかる。したがって、多くのコンピュータ環境では、増分バックアップと呼ばれる追加的なバックアップを、連続した完全バックアップと連続した完全バックアップとの間に、例えば、毎日、実行してもよい。増分バックアップは、最後のバックアップ(増分バックアップか完全バックアップかに関係なく)を実行した後に変更されたデータだけがバックアップされるプロセスである。通常、たとえ、多くの場合、ファイル内のデータの大部分が変更されていなくても、この変更データはファイル単位でバックアップされる。したがって、増分バックアップは、完全バックアップよりも、通常、はるかに小さく、そのためずっと高速で実行することができる。多くの環境では完全バックアップを週に一度、および増分バックアップをその週の間の毎日通常実行するが、このような時間枠を使用するようにとの要求はないことを理解すべきである。例えば、ある特定の環境では、1日に数回、増分バックアップが要求されるかもしれない。本発明の原理は、どれくらいの頻度でそれらを実行するかにかかわらず完全バックアップ(および必要に応じて、増分バックアップ)を行なう任意の環境に当てはまる。
完全バックアップ手順の間に、ホスト・コンピュータは、複数のデータ・ファイルを含んでいるバックアップ・データを含む1つ以上の仮想カートリッジを生成してもよい。明確にするために、以下の議論では、完全バックアップが1つだけの仮想カートリッジを生成すると仮定する。しかしながら、完全バックアップが2つ以上の仮想カートリッジを生成してもよいことと、本発明の原理は任意の個数の仮想カートリッジに当てはまることと、を理解すべきである。
一実施形態に基づいて、1つの既存の完全バックアップ・データ・セットと1つ以上の増分バックアップ・データ・セットとから合成完全バックアップ・データ・セットを生成する方法が提供される。この方法は、周期的に(例えば、週に一度)完全バックアップを実行する必要性を取り除き、それによってユーザのかなりの時間とネットワーク資源とを節約してもよい。さらに、当業者に公知のように、完全バックアップと1つ以上の増分バックアップとに基づいてデータを復元することは時間のかかるプロセスである可能性がある。その理由は、例えば、最新バージョンのファイルが増分バックアップ内に存在しているとき、バックアップ/復元アプリケーションは、最後の完全バックアップに基づいてファイルを通常復元して、その後、増分バックアップから任意の変更を適用するためである。したがって、合成完全バックアップを提供することは、完全バックアップと1つ以上の増分バックアップとから複数の復元を実行する必要なしに、バックアップ復元アプリケーションが合成完全バックアップだけに基づいて、より迅速にデータ・ファイルを復元できるという付加的な利点を有していてもよい。本明細書で使用している語句「最新バージョン」は、ファイルが新バージョン番号を有しているかどうかに関係なく、一般にデータ・ファイルの最新コピー(すなわち、データ・ファイルが保存された最新の時刻)を指していることを理解すべきである。用語「バージョン」は、本明細書で一般に、何らかの方法で変更されている可能性がある、または複数回保存された可能性がある同一ファイルのコピーを指すのに使用されている。
図7を参照すると、合成完全バックアップ手順の模式図を示している。ホスト・コンピュータ120は、初めのある時に、例えば、週末に、完全バックアップ230を実行してもよい。その後、ホスト・コンピュータ120は、例えば、週の間のそれぞれの日に後続の増分バックアップ232a、232b、232c、232d、232eを実行してもよい。その後、ストレージ・システム170は、後述するように、合成完全バックアップ・データ・セット234を生成してもよい。
一実施形態に基づいて、ストレージ・システム170は、本明細書で合成完全バックアップ・アプリケーション240(図3参照)と呼ぶソフトウェア・アプリケーションを含んでいてもよい。合成完全バックアップ・アプリケーション240はストレージ・システム・コントローラ122(図2参照)上で実行してもよく、またはホスト・コンピュータ120上で実行してもよい。合成完全バックアップ・アプリケーションは、合成完全バックアップ・データ・セット234を生成するのに必要なソフトウェア・コマンドとインタフェースとを含んでいる。一実施例では、合成完全バックアップ・アプリケーションは、完全バックアップ・データ・セット230と増分バックアップ・データ・セット232とのそれぞれのメタデータ表現の論理マージを実行して、合成完全バックアップ・データ・セット234を含む新規の仮想カートリッジを生成してもよい。
例えば、図8を参照すると、既存の完全バックアップ・データ・セットは、ユーザ・ファイルF1、F2、F3、およびF4を含んでいてもよい。第1の増分バックアップ・データ・セット232aは、ユーザ・ファイルF2の変更バージョンであるユーザ・ファイルF2’と、ユーザ・ファイルF3の変更バージョンであるユーザ・ファイルF3’と、を含んでいてもよい。第2の増分バックアップ・データ・セット232bは、ユーザ・ファイルF1の変更バージョンであるユーザ・ファイルF1’と、ユーザ・ファイルF2のさらなる変更バージョンであるユーザ・ファイルF2’’と、新規のユーザ・ファイルF5と、を含んでいてもよい。したがって、完全バックアップ・データ・セット230と、2つの増分データ・セット232aおよび232bと、の論理マージから形成された合成完全バックアップ・データ・セット234は、ユーザ・ファイルF1、F2、F3、F4、およびF5のそれぞれの最新バージョンを含んでいる。したがって、図8で分かるように、合成完全バックアップ・データ・セットは、ユーザ・ファイルF1’、F2’’、F3’、F4、およびF5を含んでいる。
再び図3および図4を参照すると、ファイル・システム・ソフトウェア146は、エミュレートされたメディア134上に保存された各ユーザ・ファイルに関連するメタデータを保存する論理メタデータ・キャッシュ242を生成してもよい。論理メタデータ・キャッシュは物理データ・キャッシュである必要はなく、その代わりに、ストレージ・メディア126上に保存されたデータの検索可能なコレクションであってもよいことを理解すべきである。他の実施例では、論理メタデータ・キャッシュ242をデータベースとして実施できる。メタデータがデータベース内に保存されている場合、従来のデータベース・コマンド(例えば、SQLコマンド)を使用して、完全バックアップ・データ・セットと、1つ以上の増分バックアップ・データ・セットと、の論理マージを実行し、合成完全バックアップ・データ・セットを生成することができる。
他の実施形態では、メタデータの一部をデータベース内に保存してもよく、他の一部をストレージ・システム・ファイル内に保存してもよい。例えば、バックアップ・データ・セット名と、そのバックアップ・データ・セットが含んでいるデータ・オブジェクトと、を含むバックアップ・データ・セット・メタデータを、従来のデータベース内に含んでいてもよく、他方、例えば、データ・オブジェクトがデータ・ファイルである場合、データ・ファイル・サイズ、セキュリティ情報、およびプライマリ・ストレージ内のロケーションなどのデータ・オブジェクトに特有なメタデータを、ストレージ・システム・ファイル内に含んでいてもよい。このような方法でメタデータを保存することにより、頻繁に問い合わせ(クエリ)のあるデータを従来のデータベースから弾力的に検索できるようにするとともに、問い合わせの少ないデータをストレージ・システム・ファイル内により速く保存できるようにすることでシステム拡張性を促進する。
上述したように、エミュレートされたメディア134上に保存された各データ・ファイルは、バックアップ・ストレージ・メディア126上のファイルのロケーションを含むデータ・ファイルに関連するメタデータを含むファイル記述子を含んでいてもよい。一実施形態では、ホスト・コンピュータ120上で起動しているバックアップ/復元アプリケーションは、エミュレートされたメディア134上にストリーミング・テープ・フォーマットでデータを保存している。このテープ・フォーマットを表すデータ構造250の実施例を図9に示している。上述したように、システム・ファイル・データ構造はヘッダを含んでおり、このヘッダは、データ・ファイルに対するファイル記述子、ファイルの作成日および/または更新日、セキュリティ情報、ファイルがそれによってもたらされたホスト・システムのディレクトリ構造、ならびにファイルを仮想カートリッジにリンクする他の情報などのデータ・ファイルについての情報を含んでいてもよい。これらのヘッダは、ホスト・コンピュータ、プライマリ・ストレージ・システムなどからバックアップされた(コピーされた)実際のユーザ・ファイルおよびシステム・ファイルであるデータ254と関連している。また、システム・ファイル・データ構造は、次のヘッダをブロック境界に適切に合わせることができるパッド256を必要に応じて含んでいてもよい。
図9に示すように、一実施形態では、迅速な検索および他の逐次テープ・データ・フォーマットに対するランダム・アクセスを可能にするために、ヘッダ・データを論理メタデータ・キャッシュ242内に位置付けている。ストレージ・システム・コントローラ122上のファイル・システム・ソフトウェア146を用いて実施される論理メタデータ・キャッシュの使用により、エミュレートされたメディア134上に保存された線形逐次テープ・データ・フォーマットを、バックアップ・ストレージ・メディア126を構成する物理ディスク上に保存されたランダム・アクセス・データ・フォーマットに変換できるようになる。論理メタデータ・キャッシュ242はヘッダ252を保存しており、このヘッダ252は、データ・ファイルに対するファイル記述子と、さらに詳細に後述するようにデータ・ファイルへのアクセスを制御するために使用してもよいセキュリティ情報と、仮想カートリッジ上の、およびバックアップ・ストレージ・メディア126上の、データ・ファイルの実際のロケーションを指し示すポインタ257と、を含んでいる。一実施形態では、論理メタデータ・キャッシュは、完全バックアップ・データ・セット230と、増分データ・セット232のそれぞれと、にバックアップされたすべてのデータ・ファイルに関連するデータを保存している。
一実施形態に基づいて、合成完全バックアップ・アプリケーション・ソフトウェア240は論理メタデータ・キャッシュ内に保存された情報を使用して、合成完全バックアップ・データ・セットを生成する。その後、この合成完全バックアップ・データ・セットは、合成完全バックアップ・アプリケーション240により生成された合成仮想カートリッジにリンクされる。バックアップ/復元アプリケーションには、合成完全バックアップ・データ・セットがこの合成仮想カートリッジ上に保存されているように見える。上述したように、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、の論理マージを実行することにより、合成完全バックアップ・データ・セットを生成してもよい。図8に関して上述したように、この論理マージは、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、のそれぞれに含まれるデータ・ファイルのそれぞれを比較することと、各ユーザ・ファイルの最終更新バージョンの合成物を生成することと、を含んでいてもよい。
一実施形態に基づいて、合成仮想カートリッジ260は、図10に示すように、他の仮想カートリッジ上の、特に、既存の完全バックアップ・データ・セットと増分バックアップ・データ・セットとを含む仮想カートリッジ上の、データ・ファイルのロケーションを指し示すポインタを含んでいる。上述の図8について所与の実施例をよく見ると、合成仮想カートリッジ260は、ユーザ・ファイルF4の仮想カートリッジ262上の既存の完全バックアップ・データ・セット内のロケーション(既存の完全バックアップ・データ・セットがF4の最新バージョンを含んでいたため)と、仮想カートリッジ264上の増分データ・セット232a内の、例えば、ユーザ・ファイルF3’のロケーションと、を指し示す(矢印268で示す)ポインタ266を含んでいる。
また、合成仮想カートリッジは、ポインタ266が指し示すデータを含むすべての仮想カートリッジの識別番号(および必要に応じて名前)を含むリスト270を含んでいる。この従属カートリッジ・リスト270は、実際のデータがどこにあるのかを追跡するために、および従属仮想カートリッジが削除されるのを防止するために、重要であるかもしれない。この実施形態では、合成完全バックアップ・データ・セットは、いかなる実際のユーザ・ファイルも含まず、むしろバックアップ・ストレージ・メディア126上のユーザ・ファイルのロケーションを示すポインタの集合を含んでいる。したがって、実際のユーザ・ファイル(他の仮想カートリッジ上に保存された)が削除されるのを防止することは好ましいかもしれない。これを部分的に達成する手段として、データを含む仮想カートリッジの記録(従属カートリッジ・リスト270)を保持して、上書きされたりまたは削除されたりすることから、それらの仮想カートリッジのそれぞれを保護する方式を採用してもよい。また、合成仮想カートリッジは、合成仮想カートリッジのサイズ、バックアップ・ストレージ・メディア126上での合成仮想カートリッジのロケーションなどのカートリッジ・データ272を含んでいてもよい。さらに、合成仮想カートリッジは識別番号および/または名前274を有していてもよい。
他の実施形態に基づいて、合成仮想カートリッジは、ポインタと、実際の保存ユーザ・ファイルとの組み合わせを含んでいてもよい。図11を参照すると、一実施例では、合成仮想カートリッジは、仮想カートリッジ262上の既存の完全バックアップ・データ・セット230内のデータ・ファイル(図9に関して上述したような最新バージョン)のロケーションを指し示すポインタ266を含んでいる。また、合成仮想カートリッジは、矢印280で示すように、増分データ・セット232からコピーされた実際のデータ・ファイルを含むデータ278を含んでいてもよい。このようにして、合成完全バックアップ・データ・セット276を生成した後に、増分バックアップ・データ・セットを削除することができ、それによってストレージ・スペースを節約できる。合成仮想カートリッジは、全体としてまたは部分的に、すべてのユーザ・ファイルのコピーではなくむしろポインタを含んでいるため、比較的小さい。
合成完全バックアップはポインタと保存ファイル・データとの任意の組み合わせを含んでいてもよく、上述の実施例に限らないということを理解すべきである。例えば、合成完全バックアップは、ある特定の増分バックアップおよび/または完全バックアップ上に保存されたいくつかのファイルに対するデータ・ファイルを指し示すポインタを含んでいてもよく、他の既存の完全バックアップおよび/または増分バックアップからコピーされた、保存ファイル・データを含んでいてもよい。あるいはさらに、先行する完全バックアップと任意の関連増分バックアップとに基づいて合成完全バックアップを生成してもよく、この任意の関連増分バックアップは、いかなるポインタも含まず、むしろ、適切な完全バックアップおよび/または増分バックアップからコピーされた実際のファイル・データの最新バージョンを含んでいる。
一実施形態では、合成完全バックアップ・アプリケーション・ソフトウェアは差分アルゴリズムを含んでいてもよく、この差分アルゴリズムは、データ・ファイルのそれぞれの最新バージョンがどこにあるかを判断するために、合成完全バックアップ・アプリケーション・ソフトウェアが、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、のそれぞれに対するユーザ・ファイル・メタデータおよびシステム・ファイル・メタデータを比較できるようにしている。例えば、差分アルゴリズムを使用して、異なるバックアップ・セット内の同一データ・ファイルの異なるバージョン間の作成日および/または更新日、バージョン番号(該当する場合)などを比較し、データ・ファイルの最新バージョンを選択することができる。しかしながら、ユーザは、ユーザ・ファイルを開いて、ファイル内部のデータを実際にはいっさい変更せずにファイルを保存する(それによって、更新データを変えている)場合が多いかもしれない。したがって、システムは、より高度な差分アルゴリズムを実施して、システム・ファイルまたはユーザ・ファイル内部のデータを分析し、実際にデータが変更されたかどうかを判断してもよい。このような差分アルゴリズムの変形および他の種類の比較アルゴリズムは当業者に公知であってもよい。さらに、上述したように、メタデータがデータベース・フォーマットで保存されている場合、SQLコマンドのようなデータベース・コマンドを使用して論理マージを実行することもできる。本発明は、このようなアルゴリズムのいずれを適用してもよく、それによって、比較されるすべての既存のバックアップ・セットから各ユーザ・ファイルの最新バージョンを選択して、合成完全バックアップ・データ・セットを適切に生成できることを確保してもよい。
当業者には明らかなように、合成完全バックアップ・アプリケーションは、ホスト・コンピュータに物理完全バックアップを実行することを要求することなしに、完全バックアップ・データ・セットを生成して利用できるようにする。これにより、バックアップ・ストレージ・システムへのデータ転送のプロセッサ・オーバヘッドでホスト・コンピュータに負荷をかけることを回避するだけでなく、合成完全バックアップ・アプリケーションをストレージ・システム上で実行する実施形態では、ネットワーク帯域幅の利用率を大幅に低減する。図7に示すように、第1の合成完全バックアップ・データ・セット234と後続の増分バックアップ・データ・セット236とを用いて、さらなる合成完全バックアップ・データ・セットを生成してもよい。これは、頻繁には変更されないファイルまたはオブジェクトを高い頻度でコピーしなくてもよいという点で著しい時間の利点を提供する可能性がある。その代わりとして、合成完全バックアップ・データ・セットは、一度だけでもコピーしたことがあるこれらのファイルを指し示すポインタを保持していてもよい。
また、本発明の実施形態は、データ・オブジェクトから冗長データを除去するプロセスを実行するコンピュータ・システムを含んでいる。冗長データのこのような除去は、データの「重複を排除すること」として当技術分野で公知である。図12は、本発明の一実施形態の、データ・オブジェクトからデータの重複を排除する実施例プロセス1200を示している。このプロセスは、単一のバックアップ・ストレージ・システムを用いて、または上述したグリッド環境のような分散型ストレージ・システム環境の中で、実施されてもよい。
一般に、プロセス1200を実施するシステムは、一連のデータ・オブジェクトと関連するメタデータにわたって選別して、例えば、重複データを共有する可能性が高いデータ・オブジェクトなどの、さらなる重複排除プロセス・ステップを受けることになるそれらのデータ・オブジェクトを特定してもよい。システムは追加的な処理に向けて特定されたデータ・オブジェクトを検査して、任意の冗長データを探してもよい。さらに、システムは、冗長データの単一のコピーを指し示す特定されたデータ・オブジェクトのコピーを作成してもよく、必要に応じてこれらのコピーの完全性を確認してもよい。冗長データが占有していた記憶容量を再利用するために、システムは最初に特定したデータ・オブジェクトを削除してもよい。このプロセス内に含まれる具体的操作に関するその他の詳細については後述する。
図12をさらに参照すると、ステップ1202で、データ重複排除プロセス1200が始まる。ステップ1204で、システムは、さらなる重複排除プロセスを受けることになるデータ・オブジェクトを特定する。一実施形態では、システムは冗長データを含む可能性が高いデータ・オブジェクトを特定してもよい。この特定を行うために、さまざまな方法およびメタデータを使用してもよい。例えば、一実施形態では、プライマリ・ストレージ内のバックアップ・データ・オブジェクトの物理ロケーションは、その物理ロケーションが他のバックアップ・データ・オブジェクトを伴うデータを有する可能性が高いことを示しているかもしれない。さらに詳細には、2つのバックアップ・データ・オブジェクトが同一のプライマリ・ストレージ・デバイス、例えば、特定のサーバ起源であるとき、それらのデータ・オブジェクトは冗長データのコピーを含む可能性が高いと特定してもよい。同様に、他の実施形態では、2つのデータ・オブジェクトが特定のソフトウェア・アプリケーションにより生成されたとき、両者は冗長データを有する可能性が高いと特定してもよい。さらに他の実施形態では、データ・オブジェクトが完全バックアップ・ポリシまたは増分バックアップ・ポリシの一部として保存されたかどうかが、冗長データの可能性を示していてもよい。重複データを含む可能性が高いデータ・オブジェクトの特定は、CPUサイクルのような少ないコンピュータ資源を、冗長データの除去により最も恩恵を受けることになるそれらのデータ・オブジェクトに集中させることを可能にすることで、プロセス1200の全体的効率を向上させる。
他の実施形態では、ある特定のデータ・オブジェクトと関連するメタデータに基づいて、これらのある特定のデータ・オブジェクトをさらなる重複排除プロセスに自動的に含めるように、またはこれらのある特定のデータ・オブジェクトをさらなる重複排除プロセスから自動的に除くように、システムを構成してもよい。例えば、特定のソフトウェア・アプリケーションにより生成されたデータ・オブジェクトを重複排除プロセスに含めるようにシステムを構成してもよい。同様に、特定のポリシの一部としてバックアップされたデータ・オブジェクトを、さらなる重複排除プロセスに含めるようにシステムを構成してもよい。逆に、特定のポリシによりバックアップされたすべてのデータ・オブジェクトを、および/または、特に名前データ・オブジェクトを、さらなる重複排除プロセスから除くようにシステムを構成してもよい。これらの構成オプションは、任意のクライアント環境の特定の要求に合うようにシステム挙動を調整することを可能にするため、システム性能およびシステム拡張性を向上させる。
ステップ1206で、プロセス1200を実施するシステムは、さらなる重複排除プロセスに向けて特定されたデータ・オブジェクト内の冗長データを探す。メタデータを使用することにより、および/または、特定されたデータ・オブジェクトの実際のコンテンツを検査することにより、この分析を遂行してもよい。一実施形態では、類似のメタデータを有するデータ・オブジェクトは同じデータを含むと仮定する。例えば、2つのデータ・オブジェクトがデータ・ファイルであり、かついずれも同じ名前、プライマリ・ストレージおよびCRC内の同じ物理ロケーション、同じハッシュ、または重複排除プロセス中に生成された他の何らかの同じメタデータを共有するとき、これらの2つのデータ・オブジェクトは冗長であると記録してもよい。冗長データを特定するためにメタデータを使用することは、いくつかの利点を提供している。メタデータを使用すると、データ・オブジェクト全体ではなく、むしろデータ・オブジェクトのメタデータだけを処理すればよいため、効率を高める。
他の実施形態では、重複していると記録する前に、冗長性を保証するためにビットごとにデータ・オブジェクトを比較してもよい。この種類の比較を行うにはコンピュータ資源を集中的に使うことになるかもしれないが、また、それは、冗長であると特定された任意のデータが実際に確かに冗長であるという強い保証を与える。冗長性を判断するこの手法は、例えば、金融情報のような完全性が特に重要になるデータ・オブジェクトを取り扱うときに役立つ可能性がある。
さらに他の実施形態では、オブジェクト全体の冗長性を確立するために、データ・オブジェクト内に含まれるデータのある部分を分析する。例えば、ある特定のソフトウェア・アプリケーションは、それらが変更するデータ・オブジェクトの中のある特定のロケーション、例えば、オブジェクトの初めまたは終わりに、変更されたデータを追いやってもよい。したがって、このデータ配分パターンを用いて、システムは、データ・オブジェクトの中のスタティック(静的)である可能性が高いそれらの部分に対して重複排除プロセスを集中的に実施して、システム効率を向上させてもよい。
本発明の実施形態は、冗長データを探すためにこれらの技術の組み合わせを使用してもよい。さらに具体的に述べると、システムは、上述したさらなる重複排除プロセスに向けてデータ・オブジェクトを特定するのに使用されるようなメタデータに基づいて、特定の技術を特定のデータ・オブジェクトに差し向けてもよい。このメタデータは、特に、プライマリ・ストレージ内のロケーションと、データ・オブジェクトをバックアップさせたポリシと、データ・オブジェクトと関連するソフトウェア・アプリケーションと、を含んでいてもよい。データ・オブジェクトの特定と同様に、重複データを探す方法に関してシステムを調整する可能性は、システム拡張性およびシステム性能を向上させる。
ステップ1208で、プロセス1200を実行するシステムは、冗長データを含む、以前に特定したデータ・オブジェクトの、重複排除コピーを生成してもよい。これらの重複排除コピーは、冗長データをほとんど、またはまったく含んでいない可能性がある。一実施形態では、特定されたデータ・オブジェクトは、例えば、仮想カートリッジを含んでいてもよい。この場合には、システムは重複を排除した1つ以上の仮想カートリッジを生成してもよく、これらの仮想カートリッジは、完全に重複排除された場合、特定された仮想カートリッジ内に含まれるデータのすべてを含んでいる。上述した合成仮想カートリッジと同様に、重複を排除したこれらの仮想カートリッジは、データ・オブジェクトと、データ・オブジェクトを指し示すポインタとの両方を含んでいてもよい。
重複を排除したこれらのデータ・コピーを生成する間に、システムは特定のデータ・オブジェクトの中の重複データのコピーを保存して、他のデータ・オブジェクトの中のポインタを生成および/または変更してそれらのデータ・オブジェクトの中に重複データを保存してもよい。重複データとポインタとを保存するとき、システムはさまざまな方法に従ってもよい。一実施形態では、重複データは最も古いデータ・オブジェクト内に格納され、重複データのロケーションを特定するポインタは、重複データを含んでいる、より若いデータ・オブジェクト内に保存されている。当技術分野で後方参照と呼ばれるこの技術は、重複排除プロセスのためにデータ・オブジェクトをまとめるのにハッシュ・インデックスを作る場合に、一般的に使用されている。
他の実施形態では、重複データは最も若いデータ・オブジェクト内に格納され、重複データのロケーションを特定するポインタは、重複データを含んでいる、より古いデータ・オブジェクト内に保存されている。この技術を前方参照と呼んでもよい。バックアップ・データ・オブジェクト内に含まれているすべてのデータの重複を排除するのにポインタの参照解除が少なくてすむため、最後のバックアップからデータを復元する場合、前方参照はデータ復旧性能を向上させる。この性能向上は、プライマリ・ストレージにデータを復元しなければならないときには、最新の、すなわち、最も若いバックアップを通常使用するという事実により特に有利である。
図13A、図13B、および図13Cは、上述したような前方参照と後方参照との両方を示している。図13Aは、重複排除プロセスの前のバックアップ・データ・オブジェクト1302および1304を示している。この説明のために、バックアップ・データ・オブジェクト1304よりも前にバックアップ・データ・オブジェクト1302を保存したと仮定する。バックアップ・データ・オブジェクト1302は、固有データ部分1306と、冗長データ部分1310Aとを含んでいる。バックアップ・データ・オブジェクト1304は、固有データ部分1308と、冗長データ部分1310Bとを含んでいる。
図13Bは、前方参照スキームに基づいてデータ・オブジェクト1302および1304の重複を排除したコピーを示している。2つのうち、より最近になってから保存されたデータ・オブジェクト1304は、冗長データ部分1310Bのコピーを含んでいる。2つのうち、より以前に保存されたデータ・オブジェクト1302は、冗長データ部分1310Bを指し示すポインタ1312を含んでいる。したがって、重複排除コピーを生成した後には、より若いデータ・オブジェクトは冗長データのコピーを含んでおり、より古いデータ・オブジェクトは、より若いデータ・オブジェクト内の冗長データを指し示すポインタを含んでいる。
図13Cは、後方参照スキームに基づいてデータ・オブジェクト1302および1304の重複を排除したコピーを示している。2つのうち、より以前に保存されたデータ・オブジェクト1302は、冗長データ1310Aのコピーを含んでいる。2つのうち、より最近になってから保存されたデータ・オブジェクト1302は、冗長データ部分1310Aを指し示すポインタ1312を含んでいる。したがって、重複排除コピーを生成した後には、より古いデータ・オブジェクトは冗長データのコピーを含んでおり、より若いデータ・オブジェクトは、より古いデータ・オブジェクト内の冗長データを指し示すポインタを含んでいる。
ステップ1210で、システムは、重複排除コピーを、以前に特定したデータ・オブジェクトと比較して、データ完全性を維持していることを確保してもよい。この比較は、データ・オブジェクト・ポインタの参照解除を必要とするかもしれず、データ・オブジェクト内に含まれるデータのビットごとの比較を含んでいてもよい。この完全性検査を実行した後に、一実施形態では、システムは、重複排除コピーを特定するポインタと、それらの重複排除コピーのそれぞれの以前に特定したデータ・オブジェクトと、を交換してもよく、その結果、重複を排除したデータ・オブジェクトはプライマリ・データ・オブジェクトになり、以前に特定したデータ・オブジェクトを参照するいかなるデータ・オブジェクトの完全性をも崩すことなく、以前に特定したそのデータ・オブジェクトを削除してもよい。また、システムはメタデータに他の調整を行って、重複排除コピーの特性をメタデータが正確に反映することを確保してもよい。
ステップ1212で、以前に特定したデータ・オブジェクトが利用していた記憶容量を、他のデータ・オブジェクトで使用するために再利用する。一実施形態では、以前に特定したデータ・オブジェクトを単に削除することにより、これを達成してもよい。ステップ1214で、プロセス1200は終了する。
プロセス1200は事象の好ましい配列を示している。本発明の精神を逸脱することなく、他の操作を追加することができ、またはプロセス1200内の操作の順番を変更することができる。一実施形態では、バックアップ・ストレージ・システム内に含まれる各データ・オブジェクトに対してプロセス1200を実行してもよい。他の実施形態では、システムは、バックアップ・ストレージ・システム内のデータ・オブジェクトのサブセットに対してプロセス1200を実行してもよい。
プロセス1200は事象の好ましい配列を示している。本発明の精神を逸脱することなく、他の操作を追加することができ、またはプロセス1200内の操作の順番を変更することができる。一実施形態では、バックアップ・ストレージ・システム内に含まれる各データ・オブジェクトに対してプロセス1200を実行してもよい。他の実施形態では、システムは、バックアップ・ストレージ・システム内のデータ・オブジェクトのサブセットに対してプロセス1200を実行してもよい。
プロセス1200は、要求に応じてまたはスケジュールに従って、1回限りのプロセスまたは繰り返しプロセスとして実行してもよい。重複排除により再利用されるスペースが、ある特定のしきい値を満たす、または超えるとき、プロセス1200のさらなるサブセットを実行してもよい。例えば、一実施形態では、重複排除が、利用されるバックアップ記憶容量の少なくとも指定の数字(例えば、50)テラバイト、または指定の割合(例えば、25%)を解放するときにだけ、プロセス1200を実行してもよい。事象駆動型コンピュータ・アクションとして実施されるとき、プロセス1200を含む操作はグリッド環境のような分散コンピューティング環境で実行してもよい。
したがって、要約すれば、重複排除プロセス1200の実施形態は、バックアップ・データのコピーを保持するために必要な記憶容量を削減してもよく、したがって、バックアップ・データを保存するために必要な電子メディアの量を削減してもよい。さらに、重複排除プロセス1200の実施形態は、重複排除プロセスを最適化するためにメタデータを使用することによりコンピュータ資源の効率的な利用をもたらしてもよい。最後に、前方参照スキームで重複を排除したデータを保存することにより、重複排除は一般的に使用されるデータ復旧機能の性能を高めることができる。
図3に関して上述したように、また、ストレージ・システムは、エンド・ユーザ復元アプリケーション300と呼ばれるソフトウェア・アプリケーションを含んでいてもよい。したがって、他の実施形態に基づいて、ITスタッフの介入なしに、かつ既存のバックアップ/復元手順および/またはポリシに対していかなる変更も必要としないで、エンド・ユーザがバックアップ・データを探して復元するための方法を提供している。典型的なバックアップ・ストレージ・システムでは、ホスト・コンピュータ120上で起動しているバックアップ/復元アプリケーションは、ITスタッフにより制御されており、ITスタッフによる介入なしにエンド・ユーザがバックアップ・データにアクセスすることは不可能または非常に難しいかもしれない。本発明の態様および実施形態に基づいて、例えば、バックアップ・ストレージ・メディア126を備えたウェブ・ベースのインタフェースまたは他のインタフェースを介して、エンド・ユーザが自分たちのファイルを探して復元することを可能にするストレージ・システム・ソフトウェアを提供している。
合成完全バックアップ・アプリケーション240と同様に、エンド・ユーザ復元アプリケーション300はストレージ・システム・コントローラ122(図2参照)上で実行してもよく、またはホスト・コンピュータ120上で実行してもよいということを理解すべきである。エンド・ユーザ復元アプリケーションは、バックアップ・ストレージ・メディア126からバックアップ・ファイルを探して、必要に応じて復元するために、認定ユーザが論理メタデータ・キャッシュを検索できるようにするのに必要なソフトウェア・コマンドおよびインタフェースを含んでいる。
一実施形態に基づいて、ユーザ・コンピュータ136上にインストールされる、および/またはユーザ・コンピュータ136上で実行される、ユーザ・インタフェースを含むソフトウェアを提供している。ユーザ・インタフェースは、ユーザがバックアップ・ストレージ・メディア上のファイルを探すことを可能にする任意の種類のインタフェースであってもよい。例えば、ユーザ・インタフェースはグラフィカル・ユーザ・インタフェースであってもよく、ウェブ・ベースであってもよく、またはテキスト・インタフェースであってもよい。ユーザ・コンピュータは、例えば、イーサネット(登録商標)接続であってもよいネットワーク接続138を介してストレージ・システム170と結合している。このネットワーク接続138を介して、ユーザ・コンピュータ136のオペレータはストレージ・システム170上に保存されたデータにアクセスできる。
一実施例では、エンド・ユーザ復元アプリケーション300は、ユーザ認証および/またはユーザ認可機能を含んでいる。例えば、ユーザにユーザ名とパスワードとを用いてユーザ・コンピュータ上のユーザ・インタフェースを介してログインするように要請してもよい。ユーザ・コンピュータはストレージ・システムに(例えば、エンド・ユーザ復元アプリケーションに)ユーザ名およびパスワードを伝達してもよく、このストレージ・システムは適切なユーザ認証機構を使用して、ユーザがストレージ・システムにアクセスできるかどうかを判断してもよい。使用してもよいユーザ認証機構のいくつかの実施例は、マイクロソフトのアクティブ・ディレクトリ・サーバ、UNIX(登録商標)の「イエロー・ページ」サーバ、またはライトウェイト・ディレクトリ・アクセス・プロトコルを含んでいるが、これらに限らない。ログイン/ユーザ認証機構はエンド・ユーザ復元アプリケーションと通信して、ユーザ権限をやりとりしてもよい。例えば、何人かのユーザは、自分たちが作成したファイルだけ、自分たちがある特定の権限を有しているファイルだけ、または自分たちが所有者と認定されるファイルだけ、を検索可能であってもよい。例えば、システム・オペレータまたは管理者などの他のユーザは、すべてのバックアップ・ファイルなどにアクセス可能であってもよい。
一実施形態に基づいて、エンド・ユーザ復元アプリケーションは論理メタデータ・キャッシュを使用して、バックアップ・ストレージ・メディア上にバックアップされたすべてのデータ・ファイルについての情報を取得する。エンド・ユーザ復元アプリケーションは、例えば、バックアップ時刻/日付、ユーザ名、ユーザ・コンピュータの当初のディレクトリ構造(ファイルをバックアップしたときに取得されているかもしれない)、または他のファイル特性に基づいてソートされたユーザのファイルの階層化ディレクトリ構造を、ユーザ・インタフェースを介してユーザに提示する。一実施例では、ユーザに提示されるディレクトリ構造は、そのユーザに対して有効な権限に従って変化してもよい。エンド・ユーザ復元アプリケーションはブラウズ要求を受け取ってもよく(すなわち、ユーザ・インタフェースを介して、ユーザはディレクトリ構造をブラウズして所望ファイルを探してもよい)、またはユーザは名前、日付などでファイルを検索してもよい。
一実施形態に基づいて、ユーザはストレージ・システムからバックアップ・ファイルを復元してもよい。例えば、上述したように、ユーザが所望ファイルを見つけると、ユーザはネットワーク接続138を介してストレージ・システムからファイルをダウンロードしてもよい。一実施例では、当業者に公知のように、任意のウェブ・ベースのダウンロードに相当する方法で、このダウンロード手順を実施してもよい。
エンド・ユーザがビューまたはダウンロードできる許可を有するそれらのファイルにエンド・ユーザがアクセスできるようにすることにより、およびユーザ・インタフェース(例えば、ウェブ・ベース技術)を介してこのようなアクセスを可能にすることにより、エンド・ユーザ復元アプリケーションは、いかなるバックアップ・ポリシまたは手順をも変更する必要性なしに、ユーザが自分たち自身のファイルを検索して復元することを可能にすることができる。
合成完全バックアップ・アプリケーションおよびエンド・ユーザ復元アプリケーションなどの本発明の態様について、本明細書では主としてソフトウェアの観点から記述しているが、それらは、ソフトウェア、ハードウェアもしくはファームウェア、またはそれらの任意の組み合わせで択一的に実施してもよいことを理解すべきである。したがって、例えば、本発明の実施形態は、コンピュータ・プログラム(すなわち、複数の命令)と一緒に符号化(エンコード)された任意のコンピュータ読み込み可能媒体(例えば、コンピュータ・メモリ、フロッピ・ディスク、コンパクト・ディスク、テープなど)を含んでいてもよく、このコンピュータ・プログラムは、ストレージ・システムのプロセッサ上で少なくとも部分的に実行されるとき、詳細に上述したように、合成完全バックアップ・アプリケーションおよび/またはエンド・ユーザ復元アプリケーションの機能を実行する。
したがって、一般的に要約すれば、本発明の実施形態および態様は、従来のテープ・バックアップ・システムをエミュレートするが、しかし一方で、合成バックアップを生成できること、およびエンド・ユーザがバックアップ・ファイルをビューして復元することができること、などの機能向上を提供してもよい、ストレージ・システムおよび方法を含んでいる。しかしながら、コンピュータ・データのバックアップ以外のために本発明のさまざまな態様を使用してもよいということを理解すべきである。本発明のストレージ・システムは大量のデータを経済的に保存するために使用してもよく、かつ逐次式とは対照的にランダムに、およびハード・ディスク・アクセス時刻に、その保存データにアクセスできるため、本発明の実施形態は、従来のバックアップ・ストレージ・システムのほかに用途を見つけてもよい。例えば、本発明の実施形態を使用して、映画および音楽の豊富な選択の幅を表すビデオ・データまたはオーディオデータを保存してもよく、要求に応じてビデオおよび/またはオーディオを提供できるようにしてもよい。
このように本発明の少なくとも1つの実施形態のいくつかの態様について説明したが、さまざまな変更、修正、および改良を当業者は容易に思い付くであろうということを理解すべきである。このような変更、修正、および改良は本開示の一部であるものとし、かつ本発明の範囲内にあるものとする。したがって、上記の説明および図面は、ほんの一例として示したに過ぎない。
Claims (20)
- データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、
前記少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第1のバックアップ・データ・オブジェクトを特定するステップと、
前記少なくとも1つの特性を有するデータ・オブジェクト・メタデータと関連する第2のバックアップ・データ・オブジェクトを特定するステップと、
前記第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの前記第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップと、
前記第2の部分を、前記第1の部分を指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法。 - データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、
前記第1のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、
前記第2のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、を含む、請求項1に記載の方法。 - データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、
前記第1のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、
前記第2のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、を含む、請求項1に記載の方法。 - 前記第1のバックアップ・データ・オブジェクトの前記第1の部分を検出するステップが、前記ソフトウェア・アプリケーションと関連するデータ配分パターンに少なくとも部分的に基づいて、前記第2のバックアップ・データ・オブジェクトの第2の部分のコピーであるところの前記第1のバックアップ・データ・オブジェクトの第1の部分を検出するステップを含む、請求項3に記載の方法。
- データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、
前記第1のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、
前記第2のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、を含む、請求項1に記載の方法。 - データ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップが、
前記第1のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、
前記第2のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも1つの特性を特定するステップと、を含む、請求項1に記載の方法。 - 前記第1のバックアップ・データ・オブジェクトを特定するステップが、第1のデータ・ファイルを特定するステップを含み、前記第2のバックアップ・データ・オブジェクトを特定するステップが、第2のデータ・ファイルを特定するステップを含む、請求項1に記載の方法。
- 前記第2のバックアップ・データ・オブジェクトを特定するステップが、前記第1のバックアップ・データ・オブジェクトよりも前にバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含む、請求項1に記載の方法。
- 前記第2のバックアップ・データ・オブジェクトを特定するステップが、前記第1のバックアップ・データ・オブジェクトよりも後でバックアップされた第2のバックアップ・データ・オブジェクトを特定するステップを含む、請求項1に記載の方法。
- 前記第1のバックアップ・データ・オブジェクトの前記第1の部分を検出するステップが、前記第1のバックアップ・データ・オブジェクトに関連するメタデータと、前記第2のバックアップ・データ・オブジェクトに関連するメタデータとを用いて、前記第1のバックアップ・データ・オブジェクトの前記第1の部分を検出するステップを含む、請求項1に記載の方法。
- メタデータを用いて前記第1のバックアップ・データ・オブジェクトの前記第1の部分を検出するステップが、リレーショナル・データベース内に保存されたメタデータを用いて前記第1のバックアップ・データ・オブジェクトの前記第1の部分を検出するステップを含む、請求項10に記載の方法。
- 前記第2の部分を、前記第1の部分を指し示す前記ポインタに置き換えるステップが、
前記第2の部分を除外し、かつ前記第1の部分を指し示すポインタを含んだ前記第2のバックアップ・データ・オブジェクトのコピーを生成するステップと、
前記第2のバックアップ・データ・オブジェクトを削除するステップと、を含む、請求項1に記載の方法。 - 前記第2のバックアップ・データ・オブジェクトの前記コピーが前記第2のバックアップ・データ・オブジェクトと同じデータを表していることを確認するステップをさらに含む、請求項12に記載の方法。
- 当該方法をグリッド・コンピューティング環境で実行する、請求項1〜13のいずれか1項に記載の方法。
- データが前記バックアップ・ストレージ・システムにバックアップされていない間に、バックアップ・ストレージ・システム上で当該方法を実行する、請求項1〜13のいずれか1項に記載の方法。
- コンピュータ読み込み可能媒体であって、当該媒体上に保存されたコンピュータ読み込み可能信号を有し、前記コンピュータ読み込み可能信号は、コンピュータにより実行されると、請求項1〜15のいずれか1項に記載の前記方法を実行するように前記コンピュータに指示する命令を規定している、コンピュータ読み込み可能媒体。
- 複数のバックアップ・データ・オブジェクトを保存するバックアップ・ストレージ・メディアを含むシステムであって、前記複数のバックアップ・データ・オブジェクトは、
メタデータの少なくとも1つの特性と関連しかつ第1のデータを含んだ第1のバックアップ・データ・オブジェクトと、
メタデータの前記少なくとも1つの特性と関連しかつ第2のデータを含んだ第2のバックアップ・データ・オブジェクトと、を含み、
当該システムは、メタデータの前記少なくとも1つの特性を用いて、前記第1のバックアップ・データ・オブジェクトと前記第2のバックアップ・データ・オブジェクトとを特定し、前記第1のデータの任意の部分と同じである前記第2のデータの任意の部分を特定し、前記第2のデータの特定された部分を、前記第1のデータの対応部分を指し示すポインタに置き換えるように構成されたコントローラをさらに含む、システム。 - 前記コントローラが前記第2のデータ・オブジェクトの特定された部分を置き換えるようにさらに構成されており、前記置き換えが、前記特定された部分を除外し、かつ前記第1のデータの前記対応部分を指し示すポインタを含んだ前記第2のデータ・オブジェクトのコピーを生成することによる、請求項17に記載のシステム。
- 前記第1のバックアップ・データ・オブジェクトが、前記第2のバックアップ・データ・オブジェクトよりも後でバックアップされたものである、請求項17に記載のシステム。
- ソフトウェア・アプリケーションと関連する第1のデータ・オブジェクトを特定するステップと、
前記ソフトウェア・アプリケーションと関連する第2のデータ・オブジェクトを特定するステップと、
前記ソフトウェア・アプリケーションと関連するデータ配分パターンに少なくとも部分的に基づいて、前記第1のデータ・オブジェクトと前記第2のデータ・オブジェクトとの両方の中の冗長データを検出するステップと、
前記第1のデータ・オブジェクト内の前記冗長データを、前記第2のデータ・オブジェクト内に配置された前記冗長データを指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/771,245 US8938595B2 (en) | 2003-08-05 | 2007-06-29 | Emulated storage system |
PCT/US2008/068528 WO2009006278A1 (en) | 2007-06-29 | 2008-06-27 | Emulated storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010532538A true JP2010532538A (ja) | 2010-10-07 |
Family
ID=38950497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010515171A Pending JP2010532538A (ja) | 2007-06-29 | 2008-06-27 | エミュレートされたストレージ・システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8938595B2 (ja) |
EP (1) | EP2174225A4 (ja) |
JP (1) | JP2010532538A (ja) |
CN (1) | CN101784996A (ja) |
WO (1) | WO2009006278A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012133769A (ja) * | 2010-12-17 | 2012-07-12 | Internatl Business Mach Corp <Ibm> | 順次バックアップ・デバイスから重複排除されたデータ・オブジェクトを復元するための、コンピュータ・プログラム、システム、および方法 |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108486A1 (en) * | 2003-08-05 | 2005-05-19 | Miklos Sandorfi | Emulated storage system supporting instant volume restore |
WO2005017686A2 (en) * | 2003-08-05 | 2005-02-24 | Sepaton, Inc. | Emulated storage system |
US8280926B2 (en) * | 2003-08-05 | 2012-10-02 | Sepaton, Inc. | Scalable de-duplication mechanism |
US8938595B2 (en) | 2003-08-05 | 2015-01-20 | Sepaton, Inc. | Emulated storage system |
WO2008085708A2 (en) * | 2006-12-21 | 2008-07-17 | Boxicom, Inc. | Data backup system and method associated therewith |
US7693877B1 (en) * | 2007-03-23 | 2010-04-06 | Network Appliance, Inc. | Automated information lifecycle management system for network data storage |
US8209506B2 (en) | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
US8880797B2 (en) * | 2007-09-05 | 2014-11-04 | Emc Corporation | De-duplication in a virtualized server environment |
US8238549B2 (en) * | 2008-12-05 | 2012-08-07 | Smith Micro Software, Inc. | Efficient full or partial duplicate fork detection and archiving |
US7899850B2 (en) * | 2008-02-22 | 2011-03-01 | Bycast, Inc. | Relational objects for the optimized management of fixed-content storage systems |
US9098432B1 (en) * | 2008-04-08 | 2015-08-04 | Emc Corporation | System and method for data deduplication of backup images |
US8484162B2 (en) * | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8392791B2 (en) * | 2008-08-08 | 2013-03-05 | George Saliba | Unified data protection and data de-duplication in a storage system |
US8131687B2 (en) * | 2008-11-13 | 2012-03-06 | International Business Machines Corporation | File system with internal deduplication and management of data blocks |
US8291183B2 (en) * | 2009-01-15 | 2012-10-16 | Emc Corporation | Assisted mainframe data de-duplication |
US20100199065A1 (en) * | 2009-02-04 | 2010-08-05 | Hitachi, Ltd. | Methods and apparatus for performing efficient data deduplication by metadata grouping |
US8108638B2 (en) | 2009-02-06 | 2012-01-31 | International Business Machines Corporation | Backup of deduplicated data |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US8204867B2 (en) * | 2009-07-29 | 2012-06-19 | International Business Machines Corporation | Apparatus, system, and method for enhanced block-level deduplication |
US8225060B2 (en) * | 2009-10-16 | 2012-07-17 | Leppard Andrew | Data de-duplication by predicting the locations of sub-blocks within the repository |
US8407189B2 (en) * | 2009-11-25 | 2013-03-26 | International Business Machines Corporation | Finding and fixing stability problems in personal computer systems |
US8447741B2 (en) * | 2010-01-25 | 2013-05-21 | Sepaton, Inc. | System and method for providing data driven de-duplication services |
US8397080B2 (en) | 2010-07-29 | 2013-03-12 | Industrial Technology Research Institute | Scalable segment-based data de-duplication system and method for incremental backups |
US8577851B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US8572340B2 (en) | 2010-09-30 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US8682873B2 (en) | 2010-12-01 | 2014-03-25 | International Business Machines Corporation | Efficient construction of synthetic backups within deduplication storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8954446B2 (en) | 2010-12-14 | 2015-02-10 | Comm Vault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9122639B2 (en) | 2011-01-25 | 2015-09-01 | Sepaton, Inc. | Detection and deduplication of backup sets exhibiting poor locality |
US8521705B2 (en) * | 2011-07-11 | 2013-08-27 | Dell Products L.P. | Accelerated deduplication |
US20140164326A1 (en) * | 2011-10-14 | 2014-06-12 | Alastair M. Slater | Performing a replication operation in response to movement of a virtual data container |
CN102647232B (zh) * | 2012-03-29 | 2017-03-29 | 中兴通讯股份有限公司 | 一种同时接入多个业务的方法及装置 |
US20130339310A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Restore using a client side signature repository in a networked storage system |
US9633033B2 (en) | 2013-01-11 | 2017-04-25 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US9619477B1 (en) * | 2013-03-15 | 2017-04-11 | Veritas Technologies | Systems and methods for accelerating backup operations |
US9766832B2 (en) | 2013-03-15 | 2017-09-19 | Hitachi Data Systems Corporation | Systems and methods of locating redundant data using patterns of matching fingerprints |
US9256611B2 (en) | 2013-06-06 | 2016-02-09 | Sepaton, Inc. | System and method for multi-scale navigation of data |
US9405479B1 (en) * | 2013-08-26 | 2016-08-02 | Western Digital Technologies, Inc. | Faster file compression using sliding compression window and backward compound pointers |
US9678973B2 (en) | 2013-10-15 | 2017-06-13 | Hitachi Data Systems Corporation | Multi-node hybrid deduplication |
US10545918B2 (en) | 2013-11-22 | 2020-01-28 | Orbis Technologies, Inc. | Systems and computer implemented methods for semantic data compression |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US9928277B2 (en) * | 2014-11-10 | 2018-03-27 | International Business Machines Corporation | Materialized query tables with shared data |
US10241871B1 (en) | 2015-03-31 | 2019-03-26 | Veritas Technologies Llc | Fragmentation mitigation in synthetic full backups |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10310953B2 (en) | 2015-12-30 | 2019-06-04 | Commvault Systems, Inc. | System for redirecting requests after a secondary storage computing device failure |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10846024B2 (en) | 2016-05-16 | 2020-11-24 | Commvault Systems, Inc. | Global de-duplication of virtual disks in a storage platform |
US10795577B2 (en) | 2016-05-16 | 2020-10-06 | Commvault Systems, Inc. | De-duplication of client-side data cache for virtual disks |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10719446B2 (en) * | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10986183B2 (en) * | 2018-05-02 | 2021-04-20 | Hewlett Packard Enterprise Development Lp | Data management in a network environment |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
CN113472609B (zh) * | 2020-05-25 | 2024-03-19 | 汪永强 | 一种用于无线通信的数据重复发送标记系统 |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
CN113806611A (zh) * | 2020-06-17 | 2021-12-17 | 海信集团有限公司 | 一种存储搜索引擎结果的方法及设备 |
Family Cites Families (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226141A (en) | 1989-07-14 | 1993-07-06 | Touch Technologies, Inc. | Variable capacity cache memory |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
US5276860A (en) | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5403639A (en) | 1992-09-02 | 1995-04-04 | Storage Technology Corporation | File server having snapshot application data groups |
US5454098A (en) | 1992-09-28 | 1995-09-26 | Conner Peripherals, Inc. | Method of emulating access to a sequential access data storage device while actually using a random access storage device |
SE500656C2 (sv) | 1992-12-08 | 1994-08-01 | Ellemtel Utvecklings Ab | System för backuptagning i en distribuerad databas |
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
US5778395A (en) | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US5991862A (en) | 1996-12-30 | 1999-11-23 | Sun Microsystems, Inc. | Modified indirect addressing for file system |
US6101472A (en) | 1997-04-16 | 2000-08-08 | International Business Machines Corporation | Data processing system and method for navigating a network using a voice command |
US6098148A (en) | 1997-05-29 | 2000-08-01 | International Business Machines Corporation | Storage and access of data using volume trailer |
US6389503B1 (en) | 1997-08-04 | 2002-05-14 | Exabyte Corporation | Tape drive emulation by removable disk drive and media formatted therefor |
US6070224A (en) | 1998-04-02 | 2000-05-30 | Emc Corporation | Virtual tape system |
US6366986B1 (en) | 1998-06-30 | 2002-04-02 | Emc Corporation | Method and apparatus for differential backup in a computer storage system |
US6317814B1 (en) | 1998-07-01 | 2001-11-13 | Storage Technology Corporation | Method for selectively storing redundant copies of virtual volume data on physical data storage cartridges |
US6094605A (en) | 1998-07-06 | 2000-07-25 | Storage Technology Corporation | Virtual automated cartridge system |
US6366987B1 (en) | 1998-08-13 | 2002-04-02 | Emc Corporation | Computer data storage physical backup and logical restore |
GB2343768A (en) | 1998-08-17 | 2000-05-17 | Connected Place Limited | Merging a sequence of delta files |
US6247024B1 (en) | 1998-09-25 | 2001-06-12 | International Business Machines Corporation | Method and system for performing deferred file removal in a file system |
US6230190B1 (en) | 1998-10-09 | 2001-05-08 | Openwave Systems Inc. | Shared-everything file storage for clustered system |
CN1092886C (zh) | 1998-12-15 | 2002-10-16 | 华为技术有限公司 | 实现智能网业务管理点与具体业务无关的方法 |
US6385706B1 (en) | 1998-12-31 | 2002-05-07 | Emx Corporation | Apparatus and methods for copying a logical object to a primary storage device using a map of storage locations |
US6615327B1 (en) | 1999-02-19 | 2003-09-02 | Hitachi, Ltd. | Method and system for backing up data of data processing devices including fixed length block format data conversion to variable length block format |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US6714952B2 (en) | 1999-11-10 | 2004-03-30 | Emc Corporation | Method for backup and restore of a multi-lingual network file server |
US6647399B2 (en) | 1999-11-29 | 2003-11-11 | International Business Machines Corporation | Method, system, program, and data structures for naming full backup versions of files and related deltas of the full backup versions |
US6526418B1 (en) | 1999-12-16 | 2003-02-25 | Livevault Corporation | Systems and methods for backing up data files |
US6779095B2 (en) * | 2000-06-19 | 2004-08-17 | Storage Technology Corporation | Apparatus and method for instant copy of data using pointers to new and original data in a data location |
US6954765B2 (en) * | 2000-12-30 | 2005-10-11 | Intel Corporation | Updating a file in a fragmented file system |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
US7093127B2 (en) | 2001-08-09 | 2006-08-15 | Falconstor, Inc. | System and method for computer storage security |
US7058788B2 (en) | 2001-02-23 | 2006-06-06 | Falconstor Software, Inc. | Dynamic allocation of computer memory |
US6715098B2 (en) | 2001-02-23 | 2004-03-30 | Falconstor, Inc. | System and method for fibrechannel fail-over through port spoofing |
US6718352B1 (en) | 2001-03-20 | 2004-04-06 | Emc Corporation | Methods and apparatus for managing a data set stored on a data storage device |
US7043727B2 (en) | 2001-06-08 | 2006-05-09 | Micromuse Ltd. | Method and system for efficient distribution of network event data |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
CA2458416A1 (en) | 2001-08-31 | 2003-03-27 | Arkivio, Inc. | Techniques for restoring data based on contents and attributes of the data |
AU2002365580A1 (en) * | 2001-11-23 | 2003-06-10 | Commvault Systems, Inc. | Selective data replication system and method |
US20030105912A1 (en) | 2001-11-30 | 2003-06-05 | Noren Gregory T. | Space efficient backup technique in a storage system |
US7024427B2 (en) | 2001-12-19 | 2006-04-04 | Emc Corporation | Virtual file system |
US7120631B1 (en) | 2001-12-21 | 2006-10-10 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US7310654B2 (en) | 2002-01-31 | 2007-12-18 | Mirapoint, Inc. | Method and system for providing image incremental and disaster recovery |
US6684308B2 (en) | 2002-01-31 | 2004-01-27 | Mirapoint, Inc. | Method and system for providing direct access recovery using seekable tape device |
WO2004002044A2 (en) | 2002-02-01 | 2003-12-31 | John Fairweather | A system for exchanging binary data |
US6829617B2 (en) | 2002-02-15 | 2004-12-07 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
US7216135B2 (en) | 2002-02-15 | 2007-05-08 | International Business Machines Corporation | File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address |
US20030177149A1 (en) | 2002-03-18 | 2003-09-18 | Coombs David Lawrence | System and method for data backup |
US7073038B2 (en) | 2002-05-22 | 2006-07-04 | Storage Technology Corporation | Apparatus and method for implementing dynamic structure level pointers |
US6667700B1 (en) | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7065619B1 (en) | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
US7055008B2 (en) | 2003-01-22 | 2006-05-30 | Falconstor Software, Inc. | System and method for backing up data |
US7143251B1 (en) | 2003-06-30 | 2006-11-28 | Data Domain, Inc. | Data storage using identifiers |
US7165145B2 (en) | 2003-07-02 | 2007-01-16 | Falconstor Software, Inc. | System and method to protect data stored in a storage system |
US7127575B2 (en) | 2003-07-10 | 2006-10-24 | Hitachi, Ltd. | Offsite management using disk based tape library and vault system |
US7155585B2 (en) | 2003-08-01 | 2006-12-26 | Falconstor Software, Inc. | Method and system for synchronizing storage system data |
US20050108486A1 (en) | 2003-08-05 | 2005-05-19 | Miklos Sandorfi | Emulated storage system supporting instant volume restore |
US8938595B2 (en) | 2003-08-05 | 2015-01-20 | Sepaton, Inc. | Emulated storage system |
US20050193235A1 (en) | 2003-08-05 | 2005-09-01 | Miklos Sandorfi | Emulated storage system |
WO2005017686A2 (en) | 2003-08-05 | 2005-02-24 | Sepaton, Inc. | Emulated storage system |
US8280926B2 (en) | 2003-08-05 | 2012-10-02 | Sepaton, Inc. | Scalable de-duplication mechanism |
US7373603B1 (en) | 2003-09-18 | 2008-05-13 | Microsoft Corporation | Method and system for providing data reference information |
EP1683028A4 (en) | 2003-09-30 | 2009-12-02 | Sepaton Inc | EMULATED STORAGE SYSTEM FOR SUPPORTING A INSTANT VOLUME RESTORATION |
US7146475B2 (en) | 2003-11-18 | 2006-12-05 | Mainstar Software Corporation | Data set level mirroring to accomplish a volume merge/migrate in a digital data storage system |
US7181373B2 (en) | 2004-08-13 | 2007-02-20 | Agilent Technologies, Inc. | System and methods for navigating and visualizing multi-dimensional biological data |
US7299376B2 (en) * | 2004-08-25 | 2007-11-20 | International Business Machines Corporation | Apparatus, system, and method for verifying backup data |
US8725705B2 (en) | 2004-09-15 | 2014-05-13 | International Business Machines Corporation | Systems and methods for searching of storage data with reduced bandwidth requirements |
US7756833B2 (en) | 2004-09-22 | 2010-07-13 | Microsoft Corporation | Method and system for synthetic backup and restore |
US7574409B2 (en) | 2004-11-04 | 2009-08-11 | Vericept Corporation | Method, apparatus, and system for clustering and classification |
US7472242B1 (en) * | 2006-02-14 | 2008-12-30 | Network Appliance, Inc. | Eliminating duplicate blocks during backup writes |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
US8131682B2 (en) | 2006-05-11 | 2012-03-06 | Hitachi, Ltd. | System and method for replacing contents addressable storage |
JP4749266B2 (ja) * | 2006-07-27 | 2011-08-17 | 株式会社日立製作所 | 情報資源の重複を省いたバックアップ制御装置及び方法 |
US20080034017A1 (en) * | 2006-08-04 | 2008-02-07 | Dominic Giampaolo | Links to a common item in a data structure |
WO2008055098A2 (en) | 2006-10-30 | 2008-05-08 | Execue, Inc. | A domain independent system and method of automating data aggregation and presentation |
US7853750B2 (en) | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
TW200846211A (en) | 2007-05-17 | 2008-12-01 | Sentec E & E Co Ltd | External fuel vapor emission adjusting device for fuel tank |
US8762345B2 (en) | 2007-05-31 | 2014-06-24 | Netapp, Inc. | System and method for accelerating anchor point detection |
JP5090941B2 (ja) | 2008-01-29 | 2012-12-05 | 株式会社日立製作所 | ストレージサブシステム及びストレージシステム |
US8645333B2 (en) | 2008-05-29 | 2014-02-04 | International Business Machines Corporation | Method and apparatus to minimize metadata in de-duplication |
US8527482B2 (en) | 2008-06-06 | 2013-09-03 | Chrysalis Storage, Llc | Method for reducing redundancy between two or more datasets |
US20100088296A1 (en) | 2008-10-03 | 2010-04-08 | Netapp, Inc. | System and method for organizing data to facilitate data deduplication |
US8370181B2 (en) | 2008-10-14 | 2013-02-05 | Camstar Systems, Inc. | System and method for supply chain data mining and analysis |
US7733247B1 (en) | 2008-11-18 | 2010-06-08 | International Business Machines Corporation | Method and system for efficient data transmission with server side de-duplication |
US9176978B2 (en) | 2009-02-05 | 2015-11-03 | Roderick B. Wideman | Classifying data for deduplication and storage |
US9058298B2 (en) | 2009-07-16 | 2015-06-16 | International Business Machines Corporation | Integrated approach for deduplicating data in a distributed environment that involves a source and a target |
EP2284726A1 (en) | 2009-07-27 | 2011-02-16 | HTC Corporation | Method and system for navigating data and computer program product using the method |
CN102741800B (zh) | 2009-09-18 | 2015-11-25 | 株式会社日立制作所 | 删除复制数据的存储系统 |
US8121993B2 (en) | 2009-10-28 | 2012-02-21 | Oracle America, Inc. | Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8140821B1 (en) | 2009-12-18 | 2012-03-20 | Emc Corporation | Efficient read/write algorithms and associated mapping for block-level data reduction processes |
US8447741B2 (en) | 2010-01-25 | 2013-05-21 | Sepaton, Inc. | System and method for providing data driven de-duplication services |
US8340039B2 (en) | 2010-05-04 | 2012-12-25 | International Business Machines Corporation | Deduplicated data processing congestion control |
US9401967B2 (en) | 2010-06-09 | 2016-07-26 | Brocade Communications Systems, Inc. | Inline wire speed deduplication system |
WO2012018428A1 (en) | 2010-08-04 | 2012-02-09 | Exxonmobil Upstream Research Company | System and method for summarizing data on an unstructured grid |
US8886613B2 (en) | 2010-10-12 | 2014-11-11 | Don Doerner | Prioritizing data deduplication |
US8849898B2 (en) | 2010-12-09 | 2014-09-30 | Jeffrey Vincent TOFANO | Adaptive collaborative de-duplication |
US9639543B2 (en) | 2010-12-28 | 2017-05-02 | Microsoft Technology Licensing, Llc | Adaptive index for data deduplication |
US9122639B2 (en) | 2011-01-25 | 2015-09-01 | Sepaton, Inc. | Detection and deduplication of backup sets exhibiting poor locality |
-
2007
- 2007-06-29 US US11/771,245 patent/US8938595B2/en active Active
-
2008
- 2008-06-27 EP EP08781080A patent/EP2174225A4/en not_active Withdrawn
- 2008-06-27 CN CN200880104416.0A patent/CN101784996A/zh active Pending
- 2008-06-27 WO PCT/US2008/068528 patent/WO2009006278A1/en active Application Filing
- 2008-06-27 JP JP2010515171A patent/JP2010532538A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012133769A (ja) * | 2010-12-17 | 2012-07-12 | Internatl Business Mach Corp <Ibm> | 順次バックアップ・デバイスから重複排除されたデータ・オブジェクトを復元するための、コンピュータ・プログラム、システム、および方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2174225A4 (en) | 2011-06-15 |
CN101784996A (zh) | 2010-07-21 |
EP2174225A1 (en) | 2010-04-14 |
WO2009006278A1 (en) | 2009-01-08 |
US20080016131A1 (en) | 2008-01-17 |
US8938595B2 (en) | 2015-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010532538A (ja) | エミュレートされたストレージ・システム | |
KR100890573B1 (ko) | 에뮬레이팅된 저장 시스템 | |
US8280926B2 (en) | Scalable de-duplication mechanism | |
US20050108486A1 (en) | Emulated storage system supporting instant volume restore | |
US8620640B2 (en) | Emulated storage system | |
US8290915B2 (en) | Retrieval and recovery of data chunks from alternate data stores in a deduplicating system | |
US7421551B2 (en) | Fast verification of computer backup data | |
JP3864244B2 (ja) | 分散データ記憶環境で関連するデータ・オブジェクトを転送するシステム | |
JP2011510405A (ja) | 拡張可能な重複排除機構 | |
US20110258404A1 (en) | Method and apparatus to manage groups for deduplication | |
KR101369813B1 (ko) | 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적 | |
US7356622B2 (en) | Method and apparatus for managing and formatting metadata in an autonomous operation conducted by a third party | |
US7353299B2 (en) | Method and apparatus for managing autonomous third party data transfers | |
KR20060080239A (ko) | 인스턴트 볼륨 복구를 지원하는 에뮬레이티드 스토리지시스템 | |
JP2007527572A5 (ja) | ||
US20120324182A1 (en) | Storage device |