(57)【要約】【課題】バックアップ・ストレージ・システムから冗長データを除去する方法を提示する。【解決手段】一実施例では、この方法は、第１のバックアップ・データ・オブジェクトを特定するステップと、第２のバックアップ・データ・オブジェクトを特定するステップと、第２のバックアップ・データ・オブジェクトの第２の部分のコピーであるところの第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップと、第２の部分を、第１の部分を指し示すポインタに置き換えるステップと、を含んでいてもよい。【選択図】図１２
2010532538.tif 000002
【特許請求の範囲】
【請求項１】
データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、
前記少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第１のバックアップ・データ・オブジェクトを特定するステップと、
前記少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第２のバックアップ・データ・オブジェクトを特定するステップと、
前記第２のバックアップ・データ・オブジェクトの第２の部分のコピーであるところの前記第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップと、
前記第２の部分を、前記第１の部分を指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法。
【請求項２】
データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、
前記第１のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、
前記第２のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、を含む、請求項１に記載の方法。
【請求項３】
データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、
前記第１のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、
前記第２のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、を含む、請求項１に記載の方法。
【請求項４】
前記第１のバックアップ・データ・オブジェクトの前記第１の部分を検出するステップが、前記ソフトウェア・アプリケーションと関連するデータ配分パターンに少なくとも部分的に基づいて、前記第２のバックアップ・データ・オブジェクトの第２の部分のコピーであるところの前記第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップを含む、請求項３に記載の方法。
【請求項５】
データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、
前記第１のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、
前記第２のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、を含む、請求項１に記載の方法。
【請求項６】
データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、
前記第１のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、
前記第２のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、を含む、請求項１に記載の方法。
【請求項７】
前記第１のバックアップ・データ・オブジェクトを特定するステップが、第１のデータ・ファイルを特定するステップを含み、前記第２のバックアップ・データ・オブジェクトを特定するステップが、第２のデータ・ファイルを特定するステップを含む、請求項１に記載の方法。
【請求項８】
前記第２のバックアップ・データ・オブジェクトを特定するステップが、前記第１のバックアップ・データ・オブジェクトよりも前にバックアップされた第２のバックアップ・データ・オブジェクトを特定するステップを含む、請求項１に記載の方法。
【請求項９】
前記第２のバックアップ・データ・オブジェクトを特定するステップが、前記第１のバックアップ・データ・オブジェクトよりも後でバックアップされた第２のバックアップ・データ・オブジェクトを特定するステップを含む、請求項１に記載の方法。
【請求項１０】
前記第１のバックアップ・データ・オブジェクトの前記第１の部分を検出するステップが、前記第１のバックアップ・データ・オブジェクトに関連するメタデータと、前記第２のバックアップ・データ・オブジェクトに関連するメタデータとを用いて、前記第１のバックアップ・データ・オブジェクトの前記第１の部分を検出するステップを含む、請求項１に記載の方法。
【請求項１１】
メタデータを用いて前記第１のバックアップ・データ・オブジェクトの前記第１の部分を検出するステップが、リレーショナル・データベース内に保存されたメタデータを用いて前記第１のバックアップ・データ・オブジェクトの前記第１の部分を検出するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記第２の部分を、前記第１の部分を指し示す前記ポインタに置き換えるステップが、
前記第２の部分を除外し、かつ前記第１の部分を指し示すポインタを含んだ前記第２のバックアップ・データ・オブジェクトのコピーを生成するステップと、
前記第２のバックアップ・データ・オブジェクトを削除するステップと、を含む、請求項１に記載の方法。
【請求項１３】
前記第２のバックアップ・データ・オブジェクトの前記コピーが前記第２のバックアップ・データ・オブジェクトと同じデータを表していることを確認するステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
当該方法をグリッド・コンピューティング環境で実行する、請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
データが前記バックアップ・ストレージ・システムにバックアップされていない間に、バックアップ・ストレージ・システム上で当該方法を実行する、請求項１〜１３のいずれか１項に記載の方法。
【請求項１６】
コンピュータ読み込み可能媒体であって、当該媒体上に保存されたコンピュータ読み込み可能信号を有し、前記コンピュータ読み込み可能信号は、コンピュータにより実行されると、請求項１〜１５のいずれか１項に記載の前記方法を実行するように前記コンピュータに指示する命令を規定している、コンピュータ読み込み可能媒体。
【請求項１７】
複数のバックアップ・データ・オブジェクトを保存するバックアップ・ストレージ・メディアを含むシステムであって、前記複数のバックアップ・データ・オブジェクトは、
メタデータの少なくとも１つの特性と関連しかつ第１のデータを含んだ第１のバックアップ・データ・オブジェクトと、
メタデータの前記少なくとも１つの特性と関連しかつ第２のデータを含んだ第２のバックアップ・データ・オブジェクトと、を含み、
当該システムは、メタデータの前記少なくとも１つの特性を用いて、前記第１のバックアップ・データ・オブジェクトと前記第２のバックアップ・データ・オブジェクトとを特定し、前記第１のデータの任意の部分と同じである前記第２のデータの任意の部分を特定し、前記第２のデータの特定された部分を、前記第１のデータの対応部分を指し示すポインタに置き換えるように構成されたコントローラをさらに含む、システム。
【請求項１８】
前記コントローラが前記第２のデータ・オブジェクトの特定された部分を置き換えるようにさらに構成されており、前記置き換えが、前記特定された部分を除外し、かつ前記第１のデータの前記対応部分を指し示すポインタを含んだ前記第２のデータ・オブジェクトのコピーを生成することによる、請求項１７に記載のシステム。
【請求項１９】
前記第１のバックアップ・データ・オブジェクトが、前記第２のバックアップ・データ・オブジェクトよりも後でバックアップされたものである、請求項１７に記載のシステム。
【請求項２０】
ソフトウェア・アプリケーションと関連する第１のデータ・オブジェクトを特定するステップと、
前記ソフトウェア・アプリケーションと関連する第２のデータ・オブジェクトを特定するステップと、
前記ソフトウェア・アプリケーションと関連するデータ配分パターンに少なくとも部分的に基づいて、前記第１のデータ・オブジェクトと前記第２のデータ・オブジェクトとの両方の中の冗長データを検出するステップと、
前記第１のデータ・オブジェクト内の前記冗長データを、前記第２のデータ・オブジェクト内に配置された前記冗長データを指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様はデータ・ストレージに関し、さらに詳細には、既存の完全バックアップと、その後の増分バックアップと、を用いて完全データ・バックアップの均等物を提供できるテープ・ストレージ・システムをエミュレートする装置および方法、ならびにこのようなバックアップからエンド・ユーザがデータを復元できるようにする装置および方法に関する。
【背景技術】
【０００２】
多くのコンピュータ・システムでは、１つ以上のホスト・コンピュータと、ホスト・コンピュータで使用されるデータを保存する１つ以上のデータ・ストレージ・システムとを含んでいる。これらのホスト・コンピュータとストレージ・システムとは、ファイバ・チャネル・ネットワーク、イーサネット（登録商標）・ネットワーク、または他の種類の通信ネットワークなどのネットワークを用いて、通常一緒にネットワーク接続されている。ファイバ・チャネルは、通信路ベースの伝送方式のスピードと、ネットワーク・ベースの伝送方式の自在性とを組み合わせた規格であり、複数のイニシエータがネットワーク上の複数のターゲットと通信することを可能にするものであり、イニシエータとターゲットとはネットワークに結合された任意のデバイスであってもよい。ファイバ・チャネルは、光ファイバ・ケーブルのような高速伝送媒体を用いて通常実施されるため、多量のデータを転送するストレージ・システム・ネットワークにおいて好んで選択される。
【０００３】
数個のホスト・コンピュータとバックアップ・ストレージ・システムとを含む典型的なネットワーク・コンピュータ環境の実施例を図１に示している。１つ以上のアプリケーション・サーバ１０２が、ローカル・エリア・ネットワーク（ＬＡＮ）１０３を介して複数のユーザ・コンピュータ１０４と結合している。アプリケーション・サーバ１０２とユーザ・コンピュータ１０４との両方を「ホスト・コンピュータ」と見なしてもよい。アプリケーション・サーバ１０２は、ストレージ・エリア・ネットワーク（ＳＡＮ）１０８を介して１つ以上のプライマリ・ストレージ・デバイス１０６と結合している。プライマリ・ストレージ・デバイス１０６は、例えば、ＥＭＣ社、ＩＢＭ社などの会社から入手できるようなディスク・アレイであってもよい。あるいは、バス（図示せず）または他のネットワーク・リンクが、アプリケーション・サーバとプライマリ・ストレージ・システム１０６との間の相互接続を提供してもよい。バスおよび／またはファイバ・チャネルのネットワーク接続は、小型コンピュータ用周辺機器相互接続（ＳＣＳＩ）プロトコルなどのプロトコルを用いて作動してもよく、このプロトコルは、ホスト・コンピュータ（例えば、アプリケーション・サーバ１０２）とストレージ・システム１０６との間で転送されるパケットのフォーマットを指示する。
【０００４】
図１に示したネットワーク・コンピュータ環境は、例えば、大規模な金融機関または大企業で使用される可能性があるような大規模システムの典型的な例であることを理解すべきである。多くのネットワーク・コンピュータ環境は、図１に示したすべての要素を含んでいる必要はないことを理解すべきである。例えば、より小さいネットワーク・コンピュータ環境では、直接にまたはＬＡＮを介して、ストレージ・システムに接続されたホスト・コンピュータだけを含んでいてもよい。さらに、図１は個々に分離したユーザ・コンピュータ１０４、アプリケーション・サーバ１０２、およびメディア・サーバ１１４を示しているが、これらの機能を１つ以上のコンピュータにまとめてもよい。
【０００５】
プライマリ・ストレージ・デバイス１０６に加えて、多くのネットワーク・コンピュータ環境は、少なくとも１つのセカンダリまたはバックアップ・ストレージ・システム１１０を含んでいる。バックアップ・ストレージ・システム１１０は通常テープ・ライブラリであってもよいが、他の大容量で信頼性の高いセカンダリ・ストレージ・システムを使用してもよい。通常、これらのセカンダリ・ストレージ・システムはプライマリ・ストレージ・デバイスよりも遅いが、取り外して現場から離れたところで保存してもよい何らかの種類のリムーバブル・メディア（例えば、テープ、磁気または光ディスク）を含んでいる。
【０００６】
図示の実施例では、アプリケーション・サーバ１０２は、例えば、イーサネット（登録商標）または他の通信リンク１１２を介してバックアップ・ストレージ・システム１１０と直接通信できてもよい。しかしながら、このような接続は比較的遅い可能性があり、また、プロセッサ時間またはネットワーク帯域幅などの資源（リソース）を使い果たす可能性がある。したがって、図示のようなシステムは、ＳＡＮ１０８とバックアップ・ストレージ・システム１１０との間に、例えばファイバ・チャネルを用いて通信リンク１１５を提供してもよい１つ以上のメディア・サーバ１１４を含んでいてもよい。
【０００７】
メディア・サーバ１１４は、ホスト・コンピュータ（ユーザ・コンピュータ１０４、メディア・サーバ１１４、および／またはアプリケーション・サーバ１０２などの）と、プライマリ・ストレージ・デバイス１０６と、バックアップ・ストレージ・システム１１０と、の間のデータ転送を制御するバックアップ／復元アプリケーションを含むソフトウェアを実行してもよい。バックアップ／復元アプリケーションの実施例は、ベリタス、レガートなどの会社から入手できる。データを保護するために、当技術分野で公知のように、ネットワーク・コンピュータ環境内のさまざまなホスト・コンピュータおよび／またはプライマリ・ストレージ・デバイスからのデータを、バックアップ／復元アプリケーションを用いてバックアップ・ストレージ・システム１１０に定期的にバックアップしてもよい。
【０００８】
もちろん、上述したように、多くのネットワーク・コンピュータ環境は、より小さくてもよく、図１に示した例示的ネットワーク・コンピュータ環境が含むよりも少ない構成要素を含んでいてもよいことを理解すべきである。したがって、また、実際には、メディア・サーバ１１４をシングル・ホスト・コンピュータ内のアプリケーション・サーバ１０２と組み合わせてもよいということと、バックアップ／復元アプリケーションは（直接的に、またはネットワークなどを介して間接的に）バックアップ・ストレージ・システム１１０と結合している任意のホスト・コンピュータ上で実行してもよいということと、を理解すべきである。
【０００９】
典型的なバックアップ・ストレージ・システムの一実施例は、多くのテープ・カートリッジおよび少なくとも１つのテープ・ドライブと、カートリッジのテープ・ドライブへのローディングおよびアンローディングを制御するロボット機構と、を含むテープ・ライブラリである。バックアップ／復元アプリケーションはロボット機構に命令を出して、特定のテープ・カートリッジ、例えばテープ番号０００１を探して、そのテープ・カートリッジをテープ・ドライブにロードして、テープ上にデータを書き込むことができるようにする。また、バックアップ／復元アプリケーションはテープ上にデータを書き込むフォーマットを制御する。通常、バックアップ／復元アプリケーションは、ロボット機構に命令するために、およびテープ・ドライブを制御してテープ上にデータを書き込んだり、以前書き込んだデータをテープから復元したりするために、ＳＣＳＩコマンドまたは他の標準化コマンドを使用してもよい。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来のテープ・ライブラリ・バックアップ・システムは、スピード、信頼性、および固定記憶容量を含む多くの問題をかかえている。多くの大企業は、毎週テラバイトのデータをバックアップする必要がある。しかしながら、高価なハイエンド・テープでさえ、通常、毎秒３０〜４０メガバイト（ＭＢ／ｓ）のスピードでデータの読み書きを行うことができるに過ぎず、これは１時間当たり約５０ギガバイト（ＧＢ／ｈｒ）に相当する。したがって、１テラバイトまたは２テラバイトのデータをテープにバックアップするために、バックアップ・システムは、少なくとも１０〜２０時間の連続したデータ転送時間を要する可能性がある。
【００１１】
さらに、テープが落とされたとき（人間のオペレータもしくはロボット機構が移動操作もしくはロード操作中にテープを落とす可能性があるため、典型的なテープ・ライブラリでは比較的頻繁に起こる可能性があるように）、またはテープが極端な温度もしくは湿度のような理想的ではない環境条件にさらされたとき、テープへまたはテープからデータを保存する（または復元する）ことが可能であるとは、ほとんどのテープ製造業者は保証しないであろう。したがって、管理された環境でテープを保存するように大きな注意を払う必要がある。さらに、テープ・ライブラリの複雑な機械装置（ロボット機構を含む）は維持するのに費用がかかり、個々のテープ・カートリッジは比較的高価であり、寿命も限られている。
【課題を解決するための手段】
【００１２】
本発明の実施形態は、従来のテープ・ライブラリ・システムの問題の一部またはすべてを克服または軽減するバックアップ・ストレージ・システムを提供するとともに、従来のテープ・ライブラリ・システムよりも高い融通性（フレキシビリティ）を提供する可能性があるバックアップ・ストレージ・システムを提供している。
大きく見ると、本発明の態様および実施形態は、従来のテープ・バックアップ・ストレージ・システムをエミュレートするランダム・アクセス・ベースのストレージ・システムを提供するものであり、それによりバックアップ／復元アプリケーションが物理的なテープ・ライブラリと同様のデバイスおよびメディアのビューを見るようになっている。本発明のストレージ・システムは、ソフトウェアとハードウェアとを使用して物理的なテープ・メディアをエミュレートし、それらの物理的なテープ・メディアを１つ以上のランダム・アクセス・ディスク・アレイに置き換えて、テープ・フォーマットの線形逐次（シーケンシャル）データを、ディスク上での保存に適したデータに変換する。
【００１３】
本発明のいくつかの態様および実施形態に基づいて、既存のバックアップ・データ・セットをデコードして、検索可能なメタデータ・キャッシュ内にメタデータ（すなわち、ユーザ・データの情報を表すデータ）を保存するための機構と、ファイルまたはオブジェクトについてメタデータ・キャッシュを検索および／またはビューイングできるようにするための機構と、これらのファイルまたはオブジェクトを、典型的なバックアップ・ソフトウェアの既存のバックアップ・ポリシと既存のバックアップの実施とを通して保存されたデータからウェブ接続を介してダウンロードするための機構と、を提供している。また、既存の認証機構を経由してユーザを認証して、ユーザの現時点の資格証明に基づいてメタデータ・キャッシュのビューを制限するための機構を含んでいてもよい。
【００１４】
また、本発明の態様および実施形態は、バックアップ・データ・オブジェクトからの冗長データの除去を提供している。「重複排除」と呼んでもよいこの除去プロセスは、バックアップ・データのコピーを保持するために必要な記憶容量を削減するため、バックアップ・データを保存するために必要な電子メディアの量を削減する。本発明の少なくともいくつかの態様の重複排除プロセスの実施形態は、さらに後述するように、重複排除プロセスを最適化するためにメタデータを使用することによりコンピュータ資源の効率的な利用をもたらす。
【００１５】
本発明の他の態様および実施形態に基づいて、メタデータ・キャッシュ内の複数のカートリッジ表現の論理マージを実行するための機構と、新規に合成されたカートリッジがバックアップ／復元ソフトウェアにより有効なデータ・セットとして受け入れられるように、新規に合成されたカートリッジに適切にラベル付けおよびバーコード付けを行うための機構と、を提供している。また、本発明のさらなる態様および実施形態に基づいて、合成カートリッジを表すデータ要素の複数のコピーを保存するか、またはメタデータ・キャッシュ内に表された既存のデータを指し示すポインタだけを保存するための機構を提供している。
【００１６】
本発明の一態様は、第１のバックアップ・データ・オブジェクトを特定するステップと、第２のバックアップ・データ・オブジェクトを特定するステップと、第２のバックアップ・データ・オブジェクトの第２の部分のコピーであるところの第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップと、第２の部分を、第１の部分を指し示すポインタに置き換えるステップと、を含む、バックアップ・ストレージ・システムから冗長データを除去する方法に関する。
【００１７】
この方法では、第２の部分を、第１の部分を指し示すポインタに置き換えるステップが、第２の部分を除外し、かつ第１の部分を指し示すポインタを含んだ第２のバックアップ・データ・オブジェクトのコピーを生成するステップと、第２のバックアップ・データ・オブジェクトを削除するステップと、を含んでいてもよい。
また、この方法は、第２のバックアップ・データ・オブジェクトのコピーが第２のバックアップ・データ・オブジェクトと同じデータを表していることを確認するステップを含んでいてもよい。この方法では、第２のバックアップ・データ・オブジェクトを特定するステップが、第１のバックアップ・データ・オブジェクトよりも前にバックアップされた第２のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。この方法では、第２のバックアップ・データ・オブジェクトを特定するステップが、第１のバックアップ・データ・オブジェクトよりも後でバックアップされた第２のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。
【００１８】
また、この方法は、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップを含んでいてもよい。この方法では、第１のバックアップ・データ・オブジェクトを特定するステップが、少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第１のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。また、この方法では、第２のバックアップ・データ・オブジェクトを特定するステップが、少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第２のバックアップ・データ・オブジェクトを特定するステップを含んでいてもよい。
【００１９】
この方法では、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、第１のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、第２のバックアップ・データ・オブジェクトと関連するプライマリ・ストレージ内のロケーションを特定するステップと、を含んでいてもよい。この方法では、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、第１のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、第２のバックアップ・データ・オブジェクトと関連するソフトウェア・アプリケーションを特定するステップと、を含んでいてもよい。この方法では、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、第１のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、第２のバックアップ・データ・オブジェクトと関連するバックアップ・ポリシを特定するステップと、を含んでいてもよい。
【００２０】
この方法では、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップが、第１のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、第２のバックアップ・データ・オブジェクトがバックアップされていた間に保存されたデータ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、を含んでいてもよい。この方法では、第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップが、第１のバックアップ・データ・オブジェクトに関連するメタデータと、第２のバックアップ・データ・オブジェクトに関連するメタデータとを用いて、第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップを含んでいてもよい。この方法では、メタデータを用いて第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップが、リレーショナル・データベース内に保存されたメタデータを用いて第１のバックアップ・データ・オブジェクトの第１の部分を検出するステップを含んでいてもよい。この方法では、第１のバックアップ・データ・オブジェクトを特定するステップは、第１のデータ・ファイルを特定するステップを含んでいてもよく、第２のバックアップ・データ・オブジェクトを特定するステップは、第２のデータ・ファイルを特定するステップを含んでいてもよい。この方法は、グリッド・コンピューティング環境で実行してもよい。この方法は、データがバックアップ・ストレージ・システムにバックアップされていない間に、バックアップ・ストレージ・システム上で方法を実行してもよい。
【００２１】
本発明の他の態様は、コンピュータ読み込み可能媒体に関し、当該媒体は、当該媒体の上に保存されたコンピュータ読み込み可能信号を有し、このコンピュータ読み込み可能信号は、コンピュータにより実行されると、第１のバックアップ・データ・オブジェクトを特定し、第２のバックアップ・データ・オブジェクトを特定し、第２のバックアップ・データ・オブジェクトの第２の部分のコピーであるところの第１のバックアップ・データ・オブジェクトの第１の部分を検出し、第２の部分を、第１の部分を指し示すポインタに置き換えるようにコンピュータに指示する命令を規定している。
【００２２】
本発明の他の態様は、ソフトウェア・アプリケーションと関連する第１のデータ・オブジェクトを特定するステップと、ソフトウェア・アプリケーションと関連する第２のデータ・オブジェクトを特定するステップと、ソフトウェア・アプリケーションと関連するデータ配分パターンを用いて、第１のデータ・オブジェクトおよび第２のデータ・オブジェクトの両方内の冗長データを検出するステップと、第１のデータ・オブジェクト内の冗長データを、第２のデータ・オブジェクト内に配置された冗長データを指し示すポインタに置き換えるステップと、を含む方法に関する。
【００２３】
本発明の他の態様は、コンピュータ読み込み可能媒体に関し、当該媒体は、当該媒体の上に保存されたコンピュータ読み込み可能信号を有し、このコンピュータ読み込み可能信号は、コンピュータにより実行されると、ソフトウェア・アプリケーションと関連する第１のデータ・オブジェクトを特定し、ソフトウェア・アプリケーションと関連する第２のデータ・オブジェクトを特定し、ソフトウェア・アプリケーションと関連するデータ配分パターンを用いて、第１のデータ・オブジェクトおよび第２のデータ・オブジェクトの両方内の冗長データを検出し、第１のデータ・オブジェクト内の冗長データを、第２のデータ・オブジェクト内に配置された冗長データを指し示すポインタに置き換えるようにコンピュータに指示する命令を規定している。
【００２４】
本発明の他の態様は、第１のデータを含む第１のバックアップ・データ・オブジェクトと、第２のデータを含む第２のバックアップ・データ・オブジェクトとを含む複数のバックアップ・データ・オブジェクトを保存するバックアップ・ストレージ・メディアと、第１のデータのいずれかの部分と同じである第２のデータのいずれかの部分を特定して、第２のデータの特定部分を、第１のデータの対応部分を指し示すポインタに置き換えるように構成されたコントローラと、を含むシステムに関する。
【００２５】
このシステムでは、コントローラは第２のデータ・オブジェクトの特定部分を置き換えるようにさらに構成されていてもよく、その手段として、特定部分を除外し、かつ第１のデータの対応部分を指し示すポインタを含んだ第２のデータ・オブジェクトのコピーを生成する方式を採用してもよい。
本発明の他の態様は、データ・オブジェクト・メタデータの少なくとも１つの特性を特定するステップと、少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第１のバックアップ・データ・オブジェクトを特定するステップと、少なくとも１つの特性を有するデータ・オブジェクト・メタデータと関連する第２のバックアップ・データ・オブジェクトを特定するステップと、第１のバックアップ・データ・オブジェクトおよび第２のバックアップ・データ・オブジェクトの両方内の冗長データを検出するステップと、冗長データの少なくとも１つのインスタンスを除外し、その除外された冗長データの少なくとも１つのインスタンスの代わりに、冗長データを指し示すポインタを含んだ、第２のバックアップ・データ・オブジェクトのコピーを生成するステップと、第２のバックアップ・データ・オブジェクトを削除するステップと、を含む方法に関する。
【００２６】
これらの典型的態様および実施形態のさらに他の態様、実施形態、および利点について詳細に後述する。さらに、上述の情報および後述の詳細な説明の両方は、さまざまな態様および実施形態の例を示したに過ぎず、特許請求の範囲に係る態様および実施形態の本質および特徴を理解するための概説または枠組みを提供するものであることを理解すべきである。さまざまな態様および実施形態の図解とさらなる理解とを提供するために添付図面を含んでおり、それらの添付図面は本明細書に組み込まれるとともに本明細書の一部を構成している。図面は、本明細書の残りの部分とともに、説明され特許請求の範囲に係る態様および実施形態の原理および動作について説明する役目を果たす。
【００２７】
少なくとも１つの実施形態のさまざまな態様について添付図面を参照しながら以下に説明する。図面は、原寸に比例して描くことを目的として作られておらず、これらの図面では、さまざまな図面で説明されているそれぞれの同じ、またはほとんど同じ構成要素は、類似の数字で表されている。わかり易くするために、すべての図面においてすべての構成要素に参照符号を割り振ることはしないかもしれない。図面は例示および説明の目的で提供したものであり、本発明の限界を定義しようとするものではない。
【図面の簡単な説明】
【００２８】
【図１】バックアップ・ストレージ・システムを含む大規模なネットワーク・コンピュータ環境の一実施例のブロック図である。
【図２】本発明の態様のストレージ・システムを含むネットワーク・コンピュータ環境の一実施形態のブロック図である。
【図３】本発明の態様のストレージ・システムの一実施形態のブロック図である。
【図４】本発明の態様のストレージ・システムの一実施形態の仮想レイアウトを示すブロック図である。
【図５】本発明の態様のシステム・ファイルの一実施例の模式的レイアウトである。
【図６】本発明の態様のテープ・ディレクトリ構造の一実施例である。
【図７】本発明の態様の合成完全バックアップを生成する方法の一実施例を示す図である。
【図８】本発明の態様の合成完全バックアップを含む一連のバックアップ・データ・セットの一実施例の模式図である。
【図９】メタデータ・キャッシュ構造の一実施例の図である。
【図１０】合成完全バックアップ・データ・セットを保存する仮想カートリッジの一実施例の図である。
【図１１】合成完全バックアップ・データ・セットを保存する仮想カートリッジの他の実施例の図である。
【図１２】本発明によるデータ・オブジェクトの重複を排除する方法のフロー図である。
【図１３Ａ】２つのバックアップ・データ・オブジェクトの図である。
【図１３Ｂ】図１３Ａに示したバックアップ・データ・オブジェクトの重複を排除したコピーの図である。
【図１３Ｃ】図１３Ａに示したバックアップ・データ・オブジェクトの重複を排除したコピーの他の図である。
【発明を実施するための形態】
【００２９】
さまざまな実施形態およびそれらの態様が、ここで、添付図面を参照してさらに詳細に説明されるであろう。本発明は、その応用において、以下の説明で記述した、または図面で示した構成要素の配置および構成の詳細に限定されないということを理解すべきである。本発明は他の実施形態で実施できるとともに、さまざまな方法で実施または実行できる。本明細書において具体的な実施態様の実施例はあくまで例を示す目的のためだけに提供しており、限定するものではない。特に、任意の１つ以上の実施形態に関して議論した操作、要素、および特徴は、他のいかなる実施形態における類似の役割からも排除されるものではない。また、本明細書で使用した語句および用語は、説明の目的で使用したものであり、限定するものと見なすべきではない。本明細書の中での「含む（ｉｎｃｌｕｄｉｎｇ）」、「含む、備えている（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む、収容している（ｃｏｎｔａｉｎｉｎｇ）」、「伴う（ｉｎｖｏｌｖｉｎｇ）」、およびそれらの変形の使用は、それらの後に示される品目およびその均等物、ならびに追加品目を含むように意図されている。
【００３０】
本明細書で使用するように、用語「ホスト・コンピュータ」は、ストレージ・システムまたは他のホスト・コンピュータのような他のデバイスと通信できるパーソナル・コンピュータ、ワークステーション、メインフレーム、ネットワーク接続しているクライアント、サーバなどの、少なくとも１つのプロセッサを有する任意のコンピュータを示している。ホスト・コンピュータは、メディア・サーバおよびアプリケーション・サーバ（図１に関して上述したように）、ならびにユーザ・コンピュータ（ユーザ・ワークステーション、ＰＣ、メインフレームなどであってもよい）を含んでいてもよい。さらに、本開示の中では、用語「ネットワーク・コンピュータ環境」は、複数のホスト・コンピュータが１つ以上の共有ストレージ・システムに接続されて、ストレージ・システムがホスト・コンピュータのそれぞれと通信できるようになっている、任意の計算機（コンピューティング）環境を含んでいる。ファイバ・チャネルは、本発明の実施形態とともに使用してもよい通信ネットワークの一実施例である。しかしながら、本明細書で記述したネットワークはファイバ・チャネルに限らないということと、さまざまなネットワーク構成要素は、ファイバ・チャネルの代わりに、もしくはファイバ・チャネルに加えて、トークン・リングもしくはイーサネット（登録商標）のような任意のネットワーク接続を介して、または異なるネットワーク接続の組み合わせを介して、互いに通信してもよいということと、を理解すべきである。さらに、また、本発明の態様は、ＳＣＳＩまたはパラレルＳＣＳＩのようなバス型トポロジで使用してもよい。
【００３１】
本発明のさまざまな実施形態および態様に基づいて、リムーバブル・メディア・ベースのストレージ・システムをエミュレートするために１つ以上のディスク・アレイを使用してもよい仮想リムーバブル・メディア・ライブラリ・バックアップ・ストレージ・システムを提供している。本発明の実施形態を用いて、ユーザは既存のバックアップ手順にいかなる変更もしくは修正も施す必要なく、または新規のバックアップ／復元アプリケーションを購入する必要もなく、リムーバブル・メディア（テープ、磁気ディスク、光ディスクなど）にデータをバックアップするために使用したのと同じバックアップ／復元アプリケーションを用いて、ディスク・アレイにデータをバックアップしてもよい。本明細書で詳述する一実施形態では、エミュレートされるリムーバブル・メディアはテープであり、本発明のバックアップ・ストレージ・システムは、テープと、従来のテープ・ライブラリ・システムでテープを取り扱うために使用されるロボット機構と、を含むテープ・ライブラリ・システムをエミュレートする。
【００３２】
本発明の実施形態を用いてバックアップされ復元されてもよいデータは、さまざまなデータ・オブジェクトで構成されていてもよい。これらのデータ・オブジェクトは、その中にデータを保存してもよい任意の構造を含んでいてもよい。典型的データ・オブジェクトの非制限的リストは、ビット、バイト、データ・ファイル、データ・ブロック、データ・ディレクトリ、バックアップ・データ・セット、および仮想カートリッジを含んでおり、これらについてはさらに後述する。本開示の大部分はデータ・ファイルのバックアップおよび復元について言及しているが、本発明の実施形態は任意のデータ・オブジェクトを操作してもよく、用語「データ・ファイル」は「データ・オブジェクト」と、相互に交換できることを理解すべきである。
【００３３】
本発明の態様のストレージ・システムは、ハードウェアとソフトウェアとを含んでおり、これらはホスト・コンピュータ（バックアップ／復元アプリケーションを実行する）とバックアップ・ストレージ・メディアとに一緒に連動（連結）している。ストレージ・システムは、バックアップ／復元アプリケーションが物理テープ・ライブラリと同様のデバイスおよびメディアのビューを見るように、テープまたは他の種類のリムーバブル・ストレージ・メディアをエミュレートするように設計されてもよく、かつ線形データ、逐次（シーケンシャル）データ、テープ・フォーマット・データを、ランダム・アクセス・ディスク上での保存に適したデータに変換するように設計されてもよい。このように、本発明のストレージ・システムは、新規のバックアップ／復元アプリケーション・ソフトウェアまたはポリシを必要とすることなく、機能性の向上（後述するように、ユーザが個々のバックアップ・ユーザ・ファイルを検索できるなど）を提供してもよい。
【００３４】
図２を参照すると、本発明の態様のバックアップ・ストレージ・システム１７０を含むネットワーク・コンピュータ環境の一実施形態をブロック図形式で示している。図示したように、ホスト・コンピュータ１２０は、ネットワーク接続１２１を介してストレージ・システム１７０と結合している。このネットワーク接続１２１は、例えば、ファイバ・チャネル接続であってもよく、この場合、ホスト・コンピュータ１２０とストレージ・システム１７０との間の高速データ転送を可能にする。ホスト・コンピュータ１２０は１つ以上のアプリケーション・サーバ１０２（図１参照）および／もしくはメディア・サーバ１１４（図１参照）であってもよく、またはホスト・コンピュータ１２０は１つ以上のアプリケーション・サーバ１０２（図１参照）および／もしくはメディア・サーバ１１４（図１参照）を含んでいてもよく、ホスト・コンピュータ１２０は、ネットワーク・コンピュータ環境内に存在しているコンピュータのうちのいずれかからのデータのバックアップでも、またはプライマリ・ストレージ・デバイス１０６（図１参照）からのデータのバックアップでも、どちらのバックアップでも行えるようにしてもよいことを理解すべきである。さらに、また、１つ以上のユーザ・コンピュータ１３６が、イーサネット（登録商標）接続などの他のネットワーク接続１３８を介してストレージ・システム１７０と結合していてもよい。詳細に後述するように、ストレージ・システムは、ユーザ・コンピュータ１３６のユーザがビューできるようにして、ストレージ・システムからバックアップ・ユーザ・ファイルを必要に応じて復元できるようにしてもよい。
【００３５】
さらに詳細に後述するように、ストレージ・システムは、例えば、１つ以上のディスク・アレイであってもよいバックアップ・ストレージ・メディア１２６を含んでいる。バックアップ・ストレージ・メディア１２６は、ホスト・コンピュータ１２０からのバックアップ・データ用の実際のストレージ・スペースを提供している。しかしながら、また、ストレージ・システム１７０は、テープ・ライブラリのようなリムーバブル・メディア・ストレージ・システムをエミュレートするソフトウェアおよび付加的なハードウェアを含んでいてもよく、その結果、ホスト・コンピュータ１２０上で実行されているバックアップ／復元アプリケーションから見ると、データが従来のリムーバブル・ストレージ・メディアにバックアップされているかのように見える。したがって、図２に示すように、ストレージ・システム１７０は、例えば、テープなどの仮想のまたはエミュレートされたリムーバブル・ストレージ・メディアを表す「エミュレートされたメディア」１３４を含んでいてもよい。これらの「エミュレートされたメディア」１３４は、ストレージ・システム・ソフトウェアおよび／またはハードウェアによりホスト・コンピュータに提示され、ホスト・コンピュータ１２０には物理ストレージ・メディアのように見える。エミュレートされたメディア１３４と実際のバックアップ・ストレージ・メディア１２６との間のさらなる接続は、さらに詳細に後述するように、ストレージ・システム・コントローラ（図示せず）と、ホスト・コンピュータ１２０からデータを受け取り、バックアップ・ストレージ・メディア１２６上にデータを保存するスイッチング・ネットワーク１３２と、であってもよい。このように、ストレージ・システムは、ホスト・コンピュータ１２０に対して従来のテープ・ストレージ・システムを「エミュレートする」。
【００３６】
一実施形態に基づいて、ストレージ・システムは、ホスト・コンピュータ１２０からストレージ・システム１７０にバックアップされるユーザ・データに関連するメタデータを保存する「論理メタデータ・キャッシュ」２４２を含んでいてもよい。本明細書で使用するように、用語「メタデータ」はユーザ・データについての情報を表すデータを示しており、実際のユーザ・データの属性を記述している。データ・オブジェクトに関するメタデータの非制限的な典型的リストは、データ・オブジェクト・サイズ、プライマリ・ストレージ内のデータ・オブジェクトの論理および／または物理ロケーション、データ・オブジェクトの作成日、データ・オブジェクトの最終更新日、そのポリシに基づいてデータ・オブジェクトが保存されたバックアップ・ポリシ名、データ・オブジェクトの名前またはウォータマークなどの識別子、ならびにデータ・オブジェクトと関連するソフトウェア・アプリケーションなどのデータ・オブジェクトのデータ・タイプを含んでいてもよい。論理メタデータ・キャッシュ２４２は、ユーザおよび／またはソフトウェア・アプリケーションがバックアップ・ユーザ・ファイルを任意に探すことを可能にするデータの検索可能なコレクションを表しており、ユーザ・ファイルを互いに比較して、比較しない場合には、バックアップ・ユーザ・ファイルにアクセスして、それを操作する。論理メタデータ・キャッシュ２４２内に保存されたデータを使用してもよいソフトウェア・アプリケーションの２つの実施例は、より詳しく後述する合成完全バックアップ・アプリケーション２４０およびエンド・ユーザ復元アプリケーション３００を含んでいる。
【００３７】
簡単に概要を述べると、合成完全バックアップ・アプリケーション２４０は、１つの既存の完全バックアップ・データ・セットと１つ以上の増分バックアップ・データ・セットとから合成完全バックアップ・データ・セットを生成することができる。合成完全バックアップは、周期的に（例えば、週に一度）完全バックアップを実行する必要性を取り除き、それによって、かなりの時間とネットワーク資源とを節約してもよい。合成完全バックアップ・アプリケーション２４０の詳細については、さらに後述する。また、さらに詳細に後述するエンド・ユーザ復元アプリケーション３００は、エンド・ユーザ（例えば、ユーザ・コンピュータ１３６のオペレータ）が、以前にバックアップされたユーザ・ファイルをストレージ・システム１７０からブラウズし、探し、ビューし、および／または復元することを可能にする。
【００３８】
上述したように、ストレージ・システム１７０はハードウェアおよびソフトウェアを含んでおり、この両者はホスト・コンピュータ１２０とバックアップ・ストレージ・メディア１２６とに連動している。本発明の実施形態のハードウェアとソフトウェアとは、一緒になって、従来のテープ・ライブラリ・バックアップ・システムをエミュレートしてもよく、その場合、それによりホスト・コンピュータ１２０からはデータがテープにバックアップされるように見えるが、実際には、例えば、複数のディスク・アレイなどの他のストレージ・メディアにバックアップされる。
【００３９】
図３を参照すると、本発明の態様のストレージ・システム１７０の一実施形態をブロック図の形式で示している。一実施例では、ストレージ・システム１７０のハードウェアは、ストレージ・システム・コントローラ１２２と、ストレージ・システム・コントローラ１２２をバックアップ・ストレージ・メディア１２６に接続するスイッチング・ネットワーク１３２と、を含んでいる。ストレージ・システム・コントローラ１２２は、プロセッサ１２７（シングル・プロセッサまたはマルチ・プロセッサであってもよい）と、メモリ１２９（ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど、またはそれらの組み合わせ）と、を含んでおり、この両者はストレージ・システム・ソフトウェアのすべてまたは一部を実行してもよい。また、メモリ１２９は、バックアップ・ストレージ・メディア１２６上に保存されたデータに関連するメタデータを保存するために使用してもよい。本発明の実施形態を実施するプログラミング・コードを含むソフトウェアは、ＲＡＭ、ＲＯＭ、光ディスクもしくは磁気ディスク、またはテープなどのコンピュータ読み込み可能および／または書き込み可能不揮発性記録媒体に一般に保存され、その後、メモリ１２９にコピーされて、プロセッサ１２７がその後当該ソフトウェアを実行してもよい。このようなプログラミング・コードは、例えば、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｃ、Ｃ＃、もしくはＣ＋＋、フォートラン、パスカル、エッフェル、Ｂａｓｉｃ、ＣＯＢＡＬ、またはそれらの組み合わせなどの複数のプログラミング言語のうちのいずれかで書かれてもよいが、本発明は特定のプログラミング言語に限定されない。通常、動作について見ると、プロセッサ１２７は、本発明の実施形態を実施するコードなどのデータを、不揮発性記録媒体からＲＡＭなどの他の形態のメモリに読み込ませて、この他の形態のメモリは不揮発性記録媒体に比べてプロセッサが、情報に、より高速にアクセスできるようにさせる。
【００４０】
図３に示すように、また、コントローラ１２２は多くのポート・アダプタを含んでおり、これらのポート・アダプタはコントローラ１２２とホスト・コンピュータ１２０とを接続するとともに、コントローラ１２２とスイッチング・ネットワーク１３２とを接続している。図示したように、ホスト・コンピュータ１２０はポート・アダプタ１２４ａを介してストレージ・システムに結合しており、このポート・アダプタ１２４ａは、例えば、ファイバ・チャネル・ポート・アダプタであってもよい。ストレージ・システム・コントローラ１２２を介して、ホスト・コンピュータ１２０はバックアップ・ストレージ・メディア１２６にデータをバックアップし、バックアップ・ストレージ・メディア１２６からデータを復元することができる。
【００４１】
図示の実施例では、スイッチング・ネットワーク１３２は１つ以上のファイバ・チャネル・スイッチ１２８ａ、１２８ｂを含んでいてもよい。ストレージ・システム・コントローラ１２２は、ストレージ・システム・コントローラをファイバ・チャネル・スイッチ１２８ａ、１２８ｂに結合するために、複数のファイバ・チャネル・ポート・アダプタ１２４ｂおよび１２４ｃを含んでいる。ファイバ・チャネル・スイッチ１２８ａ、１２８ｂを介して、ストレージ・システム・コントローラ１２２は、データをバックアップ・ストレージ・メディア１２６にバックアップすることができる。図３に示すように、スイッチング・ネットワーク１３２は、イーサネット（登録商標）・ポート・アダプタ１２５ａ、１２５ｂを介してストレージ・システム・コントローラ１２２に結合している１つ以上のイーサネット（登録商標）・スイッチ１３０ａ、１３０ｂをさらに含んでいてもよい。一実施例では、ストレージ・システム・コントローラ１２２は、後述するように、例えば、ＬＡＮ１０３に結合してもよい他のイーサネット（登録商標）・ポート・アダプタ１２５ｃをさらに含んでおり、ストレージ・システム１７０がホスト・コンピュータ（例えば、ユーザ・コンピュータ）と通信できるようになっている。
【００４２】
図３に示した実施例では、ストレージ・システム・コントローラ１２２は、２つのファイバ・チャネル・スイッチと２つのイーサネット（登録商標）・スイッチとを含むスイッチング・ネットワークを介してバックアップ・ストレージ・メディア１２６に結合している。ストレージ・システム１７０の中の各種類のスイッチを少なくとも２つずつ備えることにより、システム内の任意の単独の不具合による故障が排除される。言い換えれば、１つのスイッチ（例えば、ファイバ・チャネル・スイッチ１２８ａ）が働かなくなっても、ストレージ・システム・コントローラ１２２は他のスイッチを経由してバックアップ・ストレージ・メディア１２６と依然として通信できるであろう。このような組み合わせは、信頼性およびスピードに関して有利である可能性がある。例えば、上述したように、信頼性は冗長構成要素の提供と単独の不具合による故障の排除とを通して向上する。さらに、いくつかの実施形態では、ストレージ・システム・コントローラは、並列接続のファイバ・チャネル・スイッチのうちのいくつかまたはすべてを用いて、バックアップ・ストレージ・メディア１２６にデータをバックアップすることができ、それによって全体的なバックアップスピードを向上させる。しかしながら、システムが各種類のスイッチを２つ以上ずつ含むようにとの要求もなく、スイッチング・ネットワークがファイバ・チャネルとイーサネット（登録商標）・スイッチとの両方を含むようにとの要求もないことを理解すべきである。さらに、バックアップ・ストレージ・メディア１２６が単一のディスク・アレイを含んでいる実施例では、スイッチがまったく必要ないかもしれない。
【００４３】
上述したように、一実施形態では、バックアップ・ストレージ・メディア１２６は、１つ以上のディスク・アレイを含んでいてもよい。好ましい一実施形態では、バックアップ・ストレージ・メディア１２６は複数のＡＴＡまたはＳＡＴＡディスクを含んでいる。このようなディスクは「市販」製品であり、ＥＭＣ、ＩＢＭなどの製造業者の従来のストレージ・アレイ製品と比べて比較的安価である可能性がある。さらに、リムーバブル・メディア（例えば、テープ）の経費と、このようなメディアが限られた寿命を有するという事実とを考慮に入れるとき、このようなディスクにかかる経費は従来のテープ・ベースのバックアップ・ストレージ・システムと同程度である。さらに、このようなディスクはテープよりも実質的に速くデータを読み書きできる。例えば、単一のファイバ・チャネル接続を介して、少なくとも約１５０ＭＢ／ｓのスピードでディスクにデータをバックアップすることができ、これは約５４０ＧＢ／ｈｒに相当し、テープ・バックアップ・スピードよりも大幅に速い（例えば、一桁ほど）。さらに、数個のファイバ・チャネル接続を並列接続して実施してもよく、それによってスピードをさらにもっと向上させてもよい。本発明の実施形態に従って、バックアップ・ストレージ・メディアは、多くのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（独立ディスクの冗長配列））スキームのうちのいずれか１つを実施するように構成されてもよい。例えば、一実施形態では、バックアップ・ストレージ・メディアはＲＡＩＤ−５実施態様を実施してもよい。
【００４４】
上述したように、本発明の実施形態は、ディスク・アレイを用いて従来のテープ・ライブラリ・バックアップ・システムをエミュレートして、物理バックアップ・ストレージ・メディアとしてのテープ・カートリッジを置き換えて、それによって「仮想テープ・ライブラリ」を提供している。従来のテープ・ライブラリ内に存在している物理テープ・カートリッジを、本明細書で「仮想カートリッジ」と呼んでいるもので置き換える。本開示の目的において、用語「仮想テープ・ライブラリ」は、ソフトウェア、および／または、例えば、１つ以上のディスク・アレイのような物理的なハードウェアで実施してもよいエミュレートされたテープ・ライブラリを指していることを理解すべきである。この議論ではエミュレートされたテープについて主として言及しているが、ストレージ・システムは、例えば、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭなどの他のストレージ・メディアもまたエミュレートしてもよいということと、用語「仮想カートリッジ」は、例えば、エミュレートされたテープまたはエミュレートされたＣＤなどのエミュレートされたストレージ・メディアを一般に指しているということと、をさらに理解すべきである。一実施形態では、仮想カートリッジは実際には１つ以上のハード・ディスクに対応している。
【００４５】
したがって、一実施形態では、テープ・ライブラリをエミュレートするためにソフトウエア・インタフェースを提供しており、それによりバックアップ／復元アプリケーションにはデータがテープにバックアップされているように見える。しかしながら、実際のテープ・ライブラリを１つ以上のディスク・アレイに置き換えており、実際にはデータをこれらのディスク・アレイにバックアップしている。他の種類のリムーバブル・メディア・ストレージ・システムをエミュレートしてもよく、本発明はテープ・ライブラリ・ストレージ・システムのエミュレーションに限定されないということを理解すべきである。以下の議論で、ストレージ・システム１７０内に含まれるソフトウェアのさまざまな態様、特徴、および動作について説明するであろう。
【００４６】
ストレージ・システム１７０内に「含まれて」いるものとしてソフトウェアを説明してもよく、ストレージ・システム・コントローラ１２２のプロセッサ１２７によりソフトウェアを実行してもよい（図３参照）が、すべてのソフトウェアをストレージ・システム・コントローラ１２２上で実行するようにとの要求はないことを理解すべきである。合成完全バックアップ・アプリケーションおよびエンド・ユーザ復元アプリケーションのようなソフトウェア・プログラムは、ホスト・コンピュータおよび／またはユーザ・コンピュータ上で実行されてもよく、それらのソフトウェア・プログラムの一部分は、ストレージ・システム・コントローラ、ホスト・コンピュータ、およびユーザ・コンピュータのすべてまたは一部に振り分けられてもよい。したがって、ストレージ・システム・コントローラがコンピュータのような含まれている物理エンティティであるという要求はないということを理解すべきである。ストレージ・システム１７０は、例えば、メディア・サーバ１１４またはアプリケーション・サーバ１０２などのホスト・コンピュータ上に常駐するソフトウェアと通信してもよい。さらに、ストレージ・システムは、同じまたは異なるホスト・コンピュータ上で、実行されてもよいまたは常駐してもよい数個のソフトウェア・アプリケーションを含んでいてもよい。さらに、いくつかの実施形態ではストレージ・システム１７０を装置の個別の要素として具現してもよいが、ストレージ・システム１７０は装置の個別の要素に限定されないということを理解すべきである。一実施例では、従来のテープ・ライブラリ・バックアップ・システムの「プラグ・アンド・プレイ」（すなわち、既存のバックアップ手順およびポリシにいかなる変更も行う必要がない）代替物として機能する自己完結ユニットとしてストレージ・システム１７０を提供してもよい。また、従来のバックアップ・システムを含むネットワーク・コンピュータ環境内で、このようなストレージ・システム・ユニットを使用して、冗長性または追加の記憶容量を提供してもよい。他の実施形態では、クラスタ環境またはグリッド環境のような分散コンピューティング環境内でストレージ・システム１１６を実施してもよい。
【００４７】
上述したように、一実施形態に基づいて、（例えば、アプリケーション・サーバ１０２またはメディア・サーバ１１４であってもよい、図１参照）ホスト・コンピュータ１２０は、ホスト・コンピュータ１２０をストレージ・システム１７０に結合するネットワーク・リンク（例えば、ファイバ・チャネル・リンク）１２１を介して、データをバックアップ・ストレージ・メディア１２６にバックアップしてもよい。以下の議論ではエミュレートされたメディアへのデータのバックアップについて主として言及するであろうが、原理はエミュレートされたメディアからのバックアップ・データの復元に対しても当てはまることを理解すべきである。上述したように、ホスト・コンピュータ１２０とエミュレートされたメディア１３４との間のデータの流れを、バックアップ／復元アプリケーションにより制御してもよい。バックアップ／復元アプリケーションからは、物理バージョンのエミュレートされたメディアにデータが実際にバックアップされているように見えるかもしれない。
【００４８】
図４を参照すると、ストレージ・システム・ソフトウェア１５０は１つ以上の論理的抽象化レイヤを含んでいてもよく、この論理的抽象化レイヤは、エミュレートされたメディアを表すとともに、ホスト・コンピュータ１２０上に常駐するバックアップ／復元アプリケーション１４０と、バックアップ・ストレージ・メディア１２６との間のインタフェースを提供している。ソフトウェア１５０はバックアップ／復元アプリケーション１４０からテープ・フォーマット・データを受け取り、そのデータを、ランダム・アクセス・ディスク（例えば、ハード・ディスク、光ディスク、およびその種の他のもの）上での保存に適したデータに変換する。一実施例では、このソフトウェア１５０はストレージ・システム・コントローラ１２２のプロセッサ１２７上で実行され、メモリ１２９内に保存されてもよい（図３参照）。
【００４９】
一実施形態に基づいて、ソフトウェア１５０は本明細書で仮想テープ・ライブラリ（ＶＴＬ）レイヤ１４２と呼ばれるレイヤを含んでいてもよく、このＶＴＬレイヤ１４２は、テープのＳＣＳＩエミュレーションを提供してもよく、テープ・ドライブのＳＣＳＩエミュレーションを提供してもよく、ならびにテープをテープ・ドライブまで、およびテープをテープ・ドライブから移動するために使用されるロボット機構のＳＣＳＩエミュレーションも同様に提供してもよい。バックアップ／復元アプリケーション１４０は、例えば、矢印１４４で表されたＳＣＳＩコマンドを用いてＶＴＬ１４２と通信（例えば、エミュレートされたメディアにデータをバックアップしたり、または書き込んだり）してもよい。したがって、ＶＴＬは、他方のストレージ・システム・ソフトウェアおよびハードウェアと、バックアップ／復元アプリケーションとの間のソフトウエア・インタフェースを形成して、エミュレートされたストレージ・メディア１３４（図２）をバックアップ／復元アプリケーションに提示し、バックアップ／復元アプリケーションにはエミュレートされたメディアが従来のリムーバブル・バックアップ・ストレージ・メディアのように見えるようにしてもよい。
【００５０】
本明細書でファイル・システム・レイヤ１４６と呼ばれる第２のソフトウェア・レイヤが、エミュレートされたストレージ・メディア（ＶＴＬ内に表されている）と、物理バックアップ・ストレージ・メディア１２６との間のインタフェースを提供してもよい。一実施例では、ファイル・システム１４６は、例えば、矢印１４８で表されたＳＣＳＩコマンドを用いてバックアップ・ストレージ・メディア１２６と通信して、データをバックアップ・ストレージ・メディア１２６から読み取ったり、バックアップ・ストレージ・メディア１２６へ書き込んだりするための小規模のオペレーティング・システムの機能を果たしている。
【００５１】
一実施形態では、ＶＴＬは、一般的なテープ・ライブラリ・サポートを提供しており、任意のＳＣＳＩメディア・チェンジャをサポートしてもよい。エミュレートされたテープ・デバイスは、ＩＢＭ  ＬＴＯ−１およびＬＴＯ−２テープ・デバイス、クアンタムＳｕｐｅｒＤＬＴ３２０テープ・デバイス、クアンタムＰ３０００テープ・ライブラリ・システム、またはＳＴＯＲＡＧＥＴＥＫ  Ｌ１８０テープ・ライブラリ・システムを含んでいてもよいが、これらに限らない。ＶＴＬの中では、それぞれの仮想カートリッジは、データが保存されるに従って動的に増大してもよいファイルである。これは固定サイズを有する従来のテープ・カートリッジとは対照的である。図５に関してさらに後述するように、システム・ファイル内に１つ以上の仮想カートリッジを保存してもよい。
【００５２】
図５は、本発明の実施形態のシステム・ファイル２００を説明するファイル・システム・ソフトウェア１４６の中のデータ構造の一実施例を示している。この実施形態では、システム・ファイル２００は、ヘッダ２０２とデータ２０４とを含んでいる。ヘッダ２０２は、そのシステム・ファイル内に保存されている仮想カートリッジのそれぞれを特定する情報を含んでいてもよい。また、ヘッダは、仮想カートリッジが書き込み禁止かどうか、仮想カートリッジの作成日／更新日などの情報を含んでいてもよい。一実施例では、ヘッダ２０２は、それぞれの仮想カートリッジを一意的に特定して、ストレージ・システム内に保存されたそれぞれの仮想カートリッジと他の仮想カートリッジとを区別する情報を含んでいる。例えば、この情報は、仮想カートリッジの名前および識別番号（ロボット機構によりテープを識別できるように物理テープ上に通常存在しているであろうバーコードに対応している）を含んでいてもよい。また、ヘッダ２０２は、仮想カートリッジのそれぞれの容量、最終更新日などの補足情報を含んでいてもよい。
【００５３】
本発明の一実施形態に基づいて、ヘッダ２０２のサイズは、現在保存しているデータ（例えば、１つ以上のホスト・コンピュータ・システムからのデータ・バックアップを表す仮想カートリッジ）の種類と、システムが追跡できるこのようなデータ（例えば、仮想カートリッジ）の異なるセットの個数と、を反映するように最適化されてもよい。例えば、テープ・ストレージ・システムに通常バックアップされるデータは、多数のシステムとユーザ・ファイルとを表すより大きなデータ・セットを通常特徴とする。データ・セットが非常に大きいため、それに対応して、追跡すべき個別のデータ・ファイルの個数は小さくなる可能性がある。したがって、一実施形態では、あまりに多くのデータを保存し過ぎて効率的に追跡できないこと（すなわち、ヘッダが大き過ぎること）と、十分な個数のカートリッジ識別子を保存する余地がないこと（すなわち、ヘッダが小さ過ぎること）との間の妥協に基づいて、ヘッダ２０２のサイズを選択してもよい。模範的な一実施形態では、ヘッダ２０２はシステム・ファイル２００の最初の３２ＭＢを利用している。しかしながら、ヘッダ２０２はシステム要求およびシステム特性に基づいて異なるサイズを有してもよいことと、システム要求およびシステム容量に応じてヘッダ２０２に異なるサイズを選択してもよいことと、を理解すべきである。
【００５４】
バックアップ／復元アプリケーションからは、仮想カートリッジはすべて同じ属性および特徴を有する物理テープ・カートリッジのように見えることを理解すべきである。すなわち、バックアップ復元アプリケーションには、仮想カートリッジは逐次的（シーケンシャル）に書き込まれたテープのように見える。しかしながら、好ましい一実施形態では、仮想カートリッジ内に保存されたデータは、バックアップ・ストレージ・メディア１２６上に逐次フォーマットで保存されているわけではない。正確に言えば、仮想カートリッジに書き込まれているように見えるデータは、実際にはランダムにアクセス可能なディスク・フォーマット・データとしてストレージ・システムのファイル内に保存されている。保存データを仮想カートリッジにリンクするためにメタデータを使用して、バックアップ／復元アプリケーションがデータをカートリッジ・フォーマットで読み書きできるようになっている。
【００５５】
したがって、好ましい一実施形態を広く見ると、ユーザ・データおよび／またはシステム・データ（本明細書で「ファイル・データ」と呼ぶ）は、ストレージ・システム１７０によりホスト・コンピュータ１２０から受信されて、バックアップ・ストレージ・メディア１２６を構成するディスク・アレイ上に保存されている。さらに詳細に後述するように、ストレージ・システムのソフトウェア１５０（図４参照）および／またはハードウェアは、このファイル・データをシステム・ファイルの形式でバックアップ・ストレージ・メディア１２６に書き込む。バックアップされるユーザ・ファイルおよび／またはシステム・ファイルの属性を追跡するために、データ・ファイルがストレージ・システム・コントローラによりバックアップされているときにメタデータを抽出する。例えば、各ファイルに対するこのようなメタデータは、ファイル名、ファイルの作成日または最終更新日、ファイルに関連する任意の暗号情報、および他の情報を含んでいてもよい。さらに、各ファイルに対してストレージ・システムによりメタデータを生成してもよく、このメタデータはファイルを仮想カートリッジにリンクする。このようなメタデータを用いて、ソフトウェアはホスト・コンピュータにテープ・カートリッジのエミュレーションを提供するが、ファイル・データは実際にはテープ・フォーマットでは保存されておらず、正確に言えば、後述するようにシステム・ファイルの形式で保存されている。逐次カートリッジ・フォーマットでデータを保存するのではなく、むしろシステム・ファイルの形式でデータを保存することは、特定のファイルを見つけるために逐次データをスキャンする必要なしに、個々のファイルに対する速くて効率的でランダムなアクセスを可能とするという点で有利である可能性がある。
【００５６】
上述したように、一実施形態に基づいて、ファイル・データ（すなわち、ユーザ・データおよび／またはシステム・データ）は、バックアップ・ストレージ・メディア上にシステム・ファイルとして保存されており、各システム・ファイルはヘッダとデータとを含んでおり、データは実際のユーザ・ファイルおよび／またはシステム・ファイルである。各システム・ファイル２００のヘッダ２０２は、ユーザ・ファイルおよび／またはシステム・ファイルを仮想カートリッジにリンクするメタデータを含むテープ・ディレクトリ２０６を含んでいる。本明細書で使用している用語「メタデータ」はユーザ・ファイル・データまたはシステム・ファイル・データを指しておらず、実際のユーザ・データおよび／またはシステム・データの属性を記述するデータを指している。一実施例に基づいて、テープ・ディレクトリは、バイト・レベルまで、仮想カートリッジ上のデータのレイアウトを規定してもよい。
【００５７】
一実施形態では、図６に示すように、テープ・ディレクトリ２０６はテーブル（表）構造を有している。表は、保存された情報の種類（例えば、データ、ファイル・マーカ（ＦＭ）など）の欄２２０と、使用されたディスク・ブロックのサイズをバイト単位で表した欄２２２と、ファイル・データが保存されているディスク・ブロックの個数を計算する欄２２４と、を含んでいる。したがって、テープ・ディレクトリは、バックアップ・ストレージ・メディア１２６上に保存された任意のデータ・ファイルにコントローラがランダム・アクセス（逐次アクセスとは対照的に）できるようにしている。例えば、図６を参照すると、ファイル２２６のデータではシステム・ファイル２００の最初から１つのブロックを始めることをテープ・ディレクトリが示しているため、データ・ファイル２２６は仮想テープ上で迅速に見つけられる可能性がある。この１つのブロックはファイル・マーカ（ＦＭ）に対応しているため、サイズを有していない。ファイル・マーカはシステム・ファイル内には保存されず、すなわち、ファイル・マーカはゼロ・データに対応している。ファイル・マーカが従来のテープにより使用されているため、テープ・ディレクトリはファイル・マーカを含んでおり、したがって、バックアップ／復元アプリケーションはデータ・ファイルと一緒にファイル・マーカを書き込んで、仮想カートリッジをビューするときにファイル・マーカを確認する予定である。したがって、ファイル・マーカはテープ・ディレクトリ内で追跡されている。しかしながら、ファイル・マーカはいかなるデータも表しておらず、したがって、ファイル・マーカはシステム・ファイルのデータ・セクション内には保存されない。その結果、ファイル２２６のデータは、矢印２０５（図５参照）で示した、システム・ファイルのデータ・セクションの最初から始まり、ファイル２２６のデータの長さは１０２４バイト（すなわち、サイズが１０２４バイトの１つのディスク・ブロック）である。他のファイル・データは、データ量、すなわち、データ・ファイルのサイズに応じて、１０２４バイト以外のブロック・サイズで保存してもよいことを理解すべきである。例えば、より大きなデータ・ファイルは、効率性の観点から、より大きなディスク・ブロック・サイズを用いて保存してもよい。
【００５８】
一実施例では、ストレージ・システムにバックアップされる各データ・ファイルと関連する「ファイル記述子（ディスクリプタ）」内にテープ・ディレクトリを含んでいてもよい。ファイル記述子は、ストレージ・システム上に保存されたデータ・ファイル２０４に関連するメタデータを含んでいる。一実施形態では、ほとんどのＵＮＩＸ（登録商標）ベース・システムが使用しているテープ・アーカイブ（ｔａｒ）フォーマットのような標準化フォーマットに基づいてファイル記述子を実施してもよい。各ファイル記述子は、対応するユーザ・ファイルの名前、ユーザ・ファイルを作成または更新した日付、ユーザ・ファイルのサイズ、ユーザ・ファイルに対する任意のアクセス制限などの情報を含んでいてもよい。ファイル記述子内に保存された補足（追加）情報は、そこからデータがコピーされたディレクトリ構造を記述する情報をさらに含んでいてもよい。したがって、さらに詳細に後述するように、ファイル記述子は対応するデータ・ファイルについての検索可能なメタデータを含んでいてもよい。
【００５９】
バックアップ／復元アプリケーションからすると、任意の仮想カートリッジは複数のデータ・ファイルおよび対応するファイル記述子を含んでいてもよい。ストレージ・システム・ソフトウェアからすると、データ・ファイルは、システム・ファイル内、例えば、特定のバックアップ・ジョブにリンクされてもよいシステム・ファイル内に保存されている。例えば、１つのホスト・コンピュータにより特定の時刻に実行されたバックアップは、１つ以上の仮想カートリッジに対応してもよい１つのシステム・ファイルを生成してもよい。したがって、仮想カートリッジは任意のサイズのものであってもよく、より多くのユーザ・ファイルが仮想カートリッジ上に保存されるに従って動的に増大してもよい。
【００６０】
再び図２を参照すると、上述したように、ストレージ・システム１７０は、合成完全バックアップ・ソフトウェア・アプリケーション２４０を含んでいてもよい。一実施形態では、ホスト・コンピュータ１２０はエミュレートされたメディア１３４にデータをバックアップして、１つ以上の仮想カートリッジを形成する。いくつかのコンピュータ環境では、「完全バックアップ」、すなわち、ネットワーク内のプライマリ・ストレージ・システム（図１参照）上に保存されたすべてのデータのバックアップ・コピーは、定期的に（例えば、週に一度）実行してもよい。コピーされるべき大量のデータのために、このプロセスは通常非常に長い時間がかかる。したがって、多くのコンピュータ環境では、増分バックアップと呼ばれる追加的なバックアップを、連続した完全バックアップと連続した完全バックアップとの間に、例えば、毎日、実行してもよい。増分バックアップは、最後のバックアップ（増分バックアップか完全バックアップかに関係なく）を実行した後に変更されたデータだけがバックアップされるプロセスである。通常、たとえ、多くの場合、ファイル内のデータの大部分が変更されていなくても、この変更データはファイル単位でバックアップされる。したがって、増分バックアップは、完全バックアップよりも、通常、はるかに小さく、そのためずっと高速で実行することができる。多くの環境では完全バックアップを週に一度、および増分バックアップをその週の間の毎日通常実行するが、このような時間枠を使用するようにとの要求はないことを理解すべきである。例えば、ある特定の環境では、１日に数回、増分バックアップが要求されるかもしれない。本発明の原理は、どれくらいの頻度でそれらを実行するかにかかわらず完全バックアップ（および必要に応じて、増分バックアップ）を行なう任意の環境に当てはまる。
【００６１】
完全バックアップ手順の間に、ホスト・コンピュータは、複数のデータ・ファイルを含んでいるバックアップ・データを含む１つ以上の仮想カートリッジを生成してもよい。明確にするために、以下の議論では、完全バックアップが１つだけの仮想カートリッジを生成すると仮定する。しかしながら、完全バックアップが２つ以上の仮想カートリッジを生成してもよいことと、本発明の原理は任意の個数の仮想カートリッジに当てはまることと、を理解すべきである。
【００６２】
一実施形態に基づいて、１つの既存の完全バックアップ・データ・セットと１つ以上の増分バックアップ・データ・セットとから合成完全バックアップ・データ・セットを生成する方法が提供される。この方法は、周期的に（例えば、週に一度）完全バックアップを実行する必要性を取り除き、それによってユーザのかなりの時間とネットワーク資源とを節約してもよい。さらに、当業者に公知のように、完全バックアップと１つ以上の増分バックアップとに基づいてデータを復元することは時間のかかるプロセスである可能性がある。その理由は、例えば、最新バージョンのファイルが増分バックアップ内に存在しているとき、バックアップ／復元アプリケーションは、最後の完全バックアップに基づいてファイルを通常復元して、その後、増分バックアップから任意の変更を適用するためである。したがって、合成完全バックアップを提供することは、完全バックアップと１つ以上の増分バックアップとから複数の復元を実行する必要なしに、バックアップ復元アプリケーションが合成完全バックアップだけに基づいて、より迅速にデータ・ファイルを復元できるという付加的な利点を有していてもよい。本明細書で使用している語句「最新バージョン」は、ファイルが新バージョン番号を有しているかどうかに関係なく、一般にデータ・ファイルの最新コピー（すなわち、データ・ファイルが保存された最新の時刻）を指していることを理解すべきである。用語「バージョン」は、本明細書で一般に、何らかの方法で変更されている可能性がある、または複数回保存された可能性がある同一ファイルのコピーを指すのに使用されている。
【００６３】
図７を参照すると、合成完全バックアップ手順の模式図を示している。ホスト・コンピュータ１２０は、初めのある時に、例えば、週末に、完全バックアップ２３０を実行してもよい。その後、ホスト・コンピュータ１２０は、例えば、週の間のそれぞれの日に後続の増分バックアップ２３２ａ、２３２ｂ、２３２ｃ、２３２ｄ、２３２ｅを実行してもよい。その後、ストレージ・システム１７０は、後述するように、合成完全バックアップ・データ・セット２３４を生成してもよい。
【００６４】
一実施形態に基づいて、ストレージ・システム１７０は、本明細書で合成完全バックアップ・アプリケーション２４０（図３参照）と呼ぶソフトウェア・アプリケーションを含んでいてもよい。合成完全バックアップ・アプリケーション２４０はストレージ・システム・コントローラ１２２（図２参照）上で実行してもよく、またはホスト・コンピュータ１２０上で実行してもよい。合成完全バックアップ・アプリケーションは、合成完全バックアップ・データ・セット２３４を生成するのに必要なソフトウェア・コマンドとインタフェースとを含んでいる。一実施例では、合成完全バックアップ・アプリケーションは、完全バックアップ・データ・セット２３０と増分バックアップ・データ・セット２３２とのそれぞれのメタデータ表現の論理マージを実行して、合成完全バックアップ・データ・セット２３４を含む新規の仮想カートリッジを生成してもよい。
【００６５】
例えば、図８を参照すると、既存の完全バックアップ・データ・セットは、ユーザ・ファイルＦ１、Ｆ２、Ｆ３、およびＦ４を含んでいてもよい。第１の増分バックアップ・データ・セット２３２ａは、ユーザ・ファイルＦ２の変更バージョンであるユーザ・ファイルＦ２’と、ユーザ・ファイルＦ３の変更バージョンであるユーザ・ファイルＦ３’と、を含んでいてもよい。第２の増分バックアップ・データ・セット２３２ｂは、ユーザ・ファイルＦ１の変更バージョンであるユーザ・ファイルＦ１’と、ユーザ・ファイルＦ２のさらなる変更バージョンであるユーザ・ファイルＦ２’’と、新規のユーザ・ファイルＦ５と、を含んでいてもよい。したがって、完全バックアップ・データ・セット２３０と、２つの増分データ・セット２３２ａおよび２３２ｂと、の論理マージから形成された合成完全バックアップ・データ・セット２３４は、ユーザ・ファイルＦ１、Ｆ２、Ｆ３、Ｆ４、およびＦ５のそれぞれの最新バージョンを含んでいる。したがって、図８で分かるように、合成完全バックアップ・データ・セットは、ユーザ・ファイルＦ１’、Ｆ２’’、Ｆ３’、Ｆ４、およびＦ５を含んでいる。
【００６６】
再び図３および図４を参照すると、ファイル・システム・ソフトウェア１４６は、エミュレートされたメディア１３４上に保存された各ユーザ・ファイルに関連するメタデータを保存する論理メタデータ・キャッシュ２４２を生成してもよい。論理メタデータ・キャッシュは物理データ・キャッシュである必要はなく、その代わりに、ストレージ・メディア１２６上に保存されたデータの検索可能なコレクションであってもよいことを理解すべきである。他の実施例では、論理メタデータ・キャッシュ２４２をデータベースとして実施できる。メタデータがデータベース内に保存されている場合、従来のデータベース・コマンド（例えば、ＳＱＬコマンド）を使用して、完全バックアップ・データ・セットと、１つ以上の増分バックアップ・データ・セットと、の論理マージを実行し、合成完全バックアップ・データ・セットを生成することができる。
【００６７】
他の実施形態では、メタデータの一部をデータベース内に保存してもよく、他の一部をストレージ・システム・ファイル内に保存してもよい。例えば、バックアップ・データ・セット名と、そのバックアップ・データ・セットが含んでいるデータ・オブジェクトと、を含むバックアップ・データ・セット・メタデータを、従来のデータベース内に含んでいてもよく、他方、例えば、データ・オブジェクトがデータ・ファイルである場合、データ・ファイル・サイズ、セキュリティ情報、およびプライマリ・ストレージ内のロケーションなどのデータ・オブジェクトに特有なメタデータを、ストレージ・システム・ファイル内に含んでいてもよい。このような方法でメタデータを保存することにより、頻繁に問い合わせ（クエリ）のあるデータを従来のデータベースから弾力的に検索できるようにするとともに、問い合わせの少ないデータをストレージ・システム・ファイル内により速く保存できるようにすることでシステム拡張性を促進する。
【００６８】
上述したように、エミュレートされたメディア１３４上に保存された各データ・ファイルは、バックアップ・ストレージ・メディア１２６上のファイルのロケーションを含むデータ・ファイルに関連するメタデータを含むファイル記述子を含んでいてもよい。一実施形態では、ホスト・コンピュータ１２０上で起動しているバックアップ／復元アプリケーションは、エミュレートされたメディア１３４上にストリーミング・テープ・フォーマットでデータを保存している。このテープ・フォーマットを表すデータ構造２５０の実施例を図９に示している。上述したように、システム・ファイル・データ構造はヘッダを含んでおり、このヘッダは、データ・ファイルに対するファイル記述子、ファイルの作成日および／または更新日、セキュリティ情報、ファイルがそれによってもたらされたホスト・システムのディレクトリ構造、ならびにファイルを仮想カートリッジにリンクする他の情報などのデータ・ファイルについての情報を含んでいてもよい。これらのヘッダは、ホスト・コンピュータ、プライマリ・ストレージ・システムなどからバックアップされた（コピーされた）実際のユーザ・ファイルおよびシステム・ファイルであるデータ２５４と関連している。また、システム・ファイル・データ構造は、次のヘッダをブロック境界に適切に合わせることができるパッド２５６を必要に応じて含んでいてもよい。
【００６９】
図９に示すように、一実施形態では、迅速な検索および他の逐次テープ・データ・フォーマットに対するランダム・アクセスを可能にするために、ヘッダ・データを論理メタデータ・キャッシュ２４２内に位置付けている。ストレージ・システム・コントローラ１２２上のファイル・システム・ソフトウェア１４６を用いて実施される論理メタデータ・キャッシュの使用により、エミュレートされたメディア１３４上に保存された線形逐次テープ・データ・フォーマットを、バックアップ・ストレージ・メディア１２６を構成する物理ディスク上に保存されたランダム・アクセス・データ・フォーマットに変換できるようになる。論理メタデータ・キャッシュ２４２はヘッダ２５２を保存しており、このヘッダ２５２は、データ・ファイルに対するファイル記述子と、さらに詳細に後述するようにデータ・ファイルへのアクセスを制御するために使用してもよいセキュリティ情報と、仮想カートリッジ上の、およびバックアップ・ストレージ・メディア１２６上の、データ・ファイルの実際のロケーションを指し示すポインタ２５７と、を含んでいる。一実施形態では、論理メタデータ・キャッシュは、完全バックアップ・データ・セット２３０と、増分データ・セット２３２のそれぞれと、にバックアップされたすべてのデータ・ファイルに関連するデータを保存している。
【００７０】
一実施形態に基づいて、合成完全バックアップ・アプリケーション・ソフトウェア２４０は論理メタデータ・キャッシュ内に保存された情報を使用して、合成完全バックアップ・データ・セットを生成する。その後、この合成完全バックアップ・データ・セットは、合成完全バックアップ・アプリケーション２４０により生成された合成仮想カートリッジにリンクされる。バックアップ／復元アプリケーションには、合成完全バックアップ・データ・セットがこの合成仮想カートリッジ上に保存されているように見える。上述したように、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、の論理マージを実行することにより、合成完全バックアップ・データ・セットを生成してもよい。図８に関して上述したように、この論理マージは、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、のそれぞれに含まれるデータ・ファイルのそれぞれを比較することと、各ユーザ・ファイルの最終更新バージョンの合成物を生成することと、を含んでいてもよい。
【００７１】
一実施形態に基づいて、合成仮想カートリッジ２６０は、図１０に示すように、他の仮想カートリッジ上の、特に、既存の完全バックアップ・データ・セットと増分バックアップ・データ・セットとを含む仮想カートリッジ上の、データ・ファイルのロケーションを指し示すポインタを含んでいる。上述の図８について所与の実施例をよく見ると、合成仮想カートリッジ２６０は、ユーザ・ファイルＦ４の仮想カートリッジ２６２上の既存の完全バックアップ・データ・セット内のロケーション（既存の完全バックアップ・データ・セットがＦ４の最新バージョンを含んでいたため）と、仮想カートリッジ２６４上の増分データ・セット２３２ａ内の、例えば、ユーザ・ファイルＦ３’のロケーションと、を指し示す（矢印２６８で示す）ポインタ２６６を含んでいる。
【００７２】
また、合成仮想カートリッジは、ポインタ２６６が指し示すデータを含むすべての仮想カートリッジの識別番号（および必要に応じて名前）を含むリスト２７０を含んでいる。この従属カートリッジ・リスト２７０は、実際のデータがどこにあるのかを追跡するために、および従属仮想カートリッジが削除されるのを防止するために、重要であるかもしれない。この実施形態では、合成完全バックアップ・データ・セットは、いかなる実際のユーザ・ファイルも含まず、むしろバックアップ・ストレージ・メディア１２６上のユーザ・ファイルのロケーションを示すポインタの集合を含んでいる。したがって、実際のユーザ・ファイル（他の仮想カートリッジ上に保存された）が削除されるのを防止することは好ましいかもしれない。これを部分的に達成する手段として、データを含む仮想カートリッジの記録（従属カートリッジ・リスト２７０）を保持して、上書きされたりまたは削除されたりすることから、それらの仮想カートリッジのそれぞれを保護する方式を採用してもよい。また、合成仮想カートリッジは、合成仮想カートリッジのサイズ、バックアップ・ストレージ・メディア１２６上での合成仮想カートリッジのロケーションなどのカートリッジ・データ２７２を含んでいてもよい。さらに、合成仮想カートリッジは識別番号および／または名前２７４を有していてもよい。
【００７３】
他の実施形態に基づいて、合成仮想カートリッジは、ポインタと、実際の保存ユーザ・ファイルとの組み合わせを含んでいてもよい。図１１を参照すると、一実施例では、合成仮想カートリッジは、仮想カートリッジ２６２上の既存の完全バックアップ・データ・セット２３０内のデータ・ファイル（図９に関して上述したような最新バージョン）のロケーションを指し示すポインタ２６６を含んでいる。また、合成仮想カートリッジは、矢印２８０で示すように、増分データ・セット２３２からコピーされた実際のデータ・ファイルを含むデータ２７８を含んでいてもよい。このようにして、合成完全バックアップ・データ・セット２７６を生成した後に、増分バックアップ・データ・セットを削除することができ、それによってストレージ・スペースを節約できる。合成仮想カートリッジは、全体としてまたは部分的に、すべてのユーザ・ファイルのコピーではなくむしろポインタを含んでいるため、比較的小さい。
【００７４】
合成完全バックアップはポインタと保存ファイル・データとの任意の組み合わせを含んでいてもよく、上述の実施例に限らないということを理解すべきである。例えば、合成完全バックアップは、ある特定の増分バックアップおよび／または完全バックアップ上に保存されたいくつかのファイルに対するデータ・ファイルを指し示すポインタを含んでいてもよく、他の既存の完全バックアップおよび／または増分バックアップからコピーされた、保存ファイル・データを含んでいてもよい。あるいはさらに、先行する完全バックアップと任意の関連増分バックアップとに基づいて合成完全バックアップを生成してもよく、この任意の関連増分バックアップは、いかなるポインタも含まず、むしろ、適切な完全バックアップおよび／または増分バックアップからコピーされた実際のファイル・データの最新バージョンを含んでいる。
【００７５】
一実施形態では、合成完全バックアップ・アプリケーション・ソフトウェアは差分アルゴリズムを含んでいてもよく、この差分アルゴリズムは、データ・ファイルのそれぞれの最新バージョンがどこにあるかを判断するために、合成完全バックアップ・アプリケーション・ソフトウェアが、既存の完全バックアップ・データ・セットと、増分バックアップ・データ・セットと、のそれぞれに対するユーザ・ファイル・メタデータおよびシステム・ファイル・メタデータを比較できるようにしている。例えば、差分アルゴリズムを使用して、異なるバックアップ・セット内の同一データ・ファイルの異なるバージョン間の作成日および／または更新日、バージョン番号（該当する場合）などを比較し、データ・ファイルの最新バージョンを選択することができる。しかしながら、ユーザは、ユーザ・ファイルを開いて、ファイル内部のデータを実際にはいっさい変更せずにファイルを保存する（それによって、更新データを変えている）場合が多いかもしれない。したがって、システムは、より高度な差分アルゴリズムを実施して、システム・ファイルまたはユーザ・ファイル内部のデータを分析し、実際にデータが変更されたかどうかを判断してもよい。このような差分アルゴリズムの変形および他の種類の比較アルゴリズムは当業者に公知であってもよい。さらに、上述したように、メタデータがデータベース・フォーマットで保存されている場合、ＳＱＬコマンドのようなデータベース・コマンドを使用して論理マージを実行することもできる。本発明は、このようなアルゴリズムのいずれを適用してもよく、それによって、比較されるすべての既存のバックアップ・セットから各ユーザ・ファイルの最新バージョンを選択して、合成完全バックアップ・データ・セットを適切に生成できることを確保してもよい。
【００７６】
当業者には明らかなように、合成完全バックアップ・アプリケーションは、ホスト・コンピュータに物理完全バックアップを実行することを要求することなしに、完全バックアップ・データ・セットを生成して利用できるようにする。これにより、バックアップ・ストレージ・システムへのデータ転送のプロセッサ・オーバヘッドでホスト・コンピュータに負荷をかけることを回避するだけでなく、合成完全バックアップ・アプリケーションをストレージ・システム上で実行する実施形態では、ネットワーク帯域幅の利用率を大幅に低減する。図７に示すように、第１の合成完全バックアップ・データ・セット２３４と後続の増分バックアップ・データ・セット２３６とを用いて、さらなる合成完全バックアップ・データ・セットを生成してもよい。これは、頻繁には変更されないファイルまたはオブジェクトを高い頻度でコピーしなくてもよいという点で著しい時間の利点を提供する可能性がある。その代わりとして、合成完全バックアップ・データ・セットは、一度だけでもコピーしたことがあるこれらのファイルを指し示すポインタを保持していてもよい。
【００７７】
また、本発明の実施形態は、データ・オブジェクトから冗長データを除去するプロセスを実行するコンピュータ・システムを含んでいる。冗長データのこのような除去は、データの「重複を排除すること」として当技術分野で公知である。図１２は、本発明の一実施形態の、データ・オブジェクトからデータの重複を排除する実施例プロセス１２００を示している。このプロセスは、単一のバックアップ・ストレージ・システムを用いて、または上述したグリッド環境のような分散型ストレージ・システム環境の中で、実施されてもよい。
【００７８】
一般に、プロセス１２００を実施するシステムは、一連のデータ・オブジェクトと関連するメタデータにわたって選別して、例えば、重複データを共有する可能性が高いデータ・オブジェクトなどの、さらなる重複排除プロセス・ステップを受けることになるそれらのデータ・オブジェクトを特定してもよい。システムは追加的な処理に向けて特定されたデータ・オブジェクトを検査して、任意の冗長データを探してもよい。さらに、システムは、冗長データの単一のコピーを指し示す特定されたデータ・オブジェクトのコピーを作成してもよく、必要に応じてこれらのコピーの完全性を確認してもよい。冗長データが占有していた記憶容量を再利用するために、システムは最初に特定したデータ・オブジェクトを削除してもよい。このプロセス内に含まれる具体的操作に関するその他の詳細については後述する。
【００７９】
図１２をさらに参照すると、ステップ１２０２で、データ重複排除プロセス１２００が始まる。ステップ１２０４で、システムは、さらなる重複排除プロセスを受けることになるデータ・オブジェクトを特定する。一実施形態では、システムは冗長データを含む可能性が高いデータ・オブジェクトを特定してもよい。この特定を行うために、さまざまな方法およびメタデータを使用してもよい。例えば、一実施形態では、プライマリ・ストレージ内のバックアップ・データ・オブジェクトの物理ロケーションは、その物理ロケーションが他のバックアップ・データ・オブジェクトを伴うデータを有する可能性が高いことを示しているかもしれない。さらに詳細には、２つのバックアップ・データ・オブジェクトが同一のプライマリ・ストレージ・デバイス、例えば、特定のサーバ起源であるとき、それらのデータ・オブジェクトは冗長データのコピーを含む可能性が高いと特定してもよい。同様に、他の実施形態では、２つのデータ・オブジェクトが特定のソフトウェア・アプリケーションにより生成されたとき、両者は冗長データを有する可能性が高いと特定してもよい。さらに他の実施形態では、データ・オブジェクトが完全バックアップ・ポリシまたは増分バックアップ・ポリシの一部として保存されたかどうかが、冗長データの可能性を示していてもよい。重複データを含む可能性が高いデータ・オブジェクトの特定は、ＣＰＵサイクルのような少ないコンピュータ資源を、冗長データの除去により最も恩恵を受けることになるそれらのデータ・オブジェクトに集中させることを可能にすることで、プロセス１２００の全体的効率を向上させる。
【００８０】
他の実施形態では、ある特定のデータ・オブジェクトと関連するメタデータに基づいて、これらのある特定のデータ・オブジェクトをさらなる重複排除プロセスに自動的に含めるように、またはこれらのある特定のデータ・オブジェクトをさらなる重複排除プロセスから自動的に除くように、システムを構成してもよい。例えば、特定のソフトウェア・アプリケーションにより生成されたデータ・オブジェクトを重複排除プロセスに含めるようにシステムを構成してもよい。同様に、特定のポリシの一部としてバックアップされたデータ・オブジェクトを、さらなる重複排除プロセスに含めるようにシステムを構成してもよい。逆に、特定のポリシによりバックアップされたすべてのデータ・オブジェクトを、および／または、特に名前データ・オブジェクトを、さらなる重複排除プロセスから除くようにシステムを構成してもよい。これらの構成オプションは、任意のクライアント環境の特定の要求に合うようにシステム挙動を調整することを可能にするため、システム性能およびシステム拡張性を向上させる。
【００８１】
ステップ１２０６で、プロセス１２００を実施するシステムは、さらなる重複排除プロセスに向けて特定されたデータ・オブジェクト内の冗長データを探す。メタデータを使用することにより、および／または、特定されたデータ・オブジェクトの実際のコンテンツを検査することにより、この分析を遂行してもよい。一実施形態では、類似のメタデータを有するデータ・オブジェクトは同じデータを含むと仮定する。例えば、２つのデータ・オブジェクトがデータ・ファイルであり、かついずれも同じ名前、プライマリ・ストレージおよびＣＲＣ内の同じ物理ロケーション、同じハッシュ、または重複排除プロセス中に生成された他の何らかの同じメタデータを共有するとき、これらの２つのデータ・オブジェクトは冗長であると記録してもよい。冗長データを特定するためにメタデータを使用することは、いくつかの利点を提供している。メタデータを使用すると、データ・オブジェクト全体ではなく、むしろデータ・オブジェクトのメタデータだけを処理すればよいため、効率を高める。
【００８２】
他の実施形態では、重複していると記録する前に、冗長性を保証するためにビットごとにデータ・オブジェクトを比較してもよい。この種類の比較を行うにはコンピュータ資源を集中的に使うことになるかもしれないが、また、それは、冗長であると特定された任意のデータが実際に確かに冗長であるという強い保証を与える。冗長性を判断するこの手法は、例えば、金融情報のような完全性が特に重要になるデータ・オブジェクトを取り扱うときに役立つ可能性がある。
【００８３】
さらに他の実施形態では、オブジェクト全体の冗長性を確立するために、データ・オブジェクト内に含まれるデータのある部分を分析する。例えば、ある特定のソフトウェア・アプリケーションは、それらが変更するデータ・オブジェクトの中のある特定のロケーション、例えば、オブジェクトの初めまたは終わりに、変更されたデータを追いやってもよい。したがって、このデータ配分パターンを用いて、システムは、データ・オブジェクトの中のスタティック（静的）である可能性が高いそれらの部分に対して重複排除プロセスを集中的に実施して、システム効率を向上させてもよい。
【００８４】
本発明の実施形態は、冗長データを探すためにこれらの技術の組み合わせを使用してもよい。さらに具体的に述べると、システムは、上述したさらなる重複排除プロセスに向けてデータ・オブジェクトを特定するのに使用されるようなメタデータに基づいて、特定の技術を特定のデータ・オブジェクトに差し向けてもよい。このメタデータは、特に、プライマリ・ストレージ内のロケーションと、データ・オブジェクトをバックアップさせたポリシと、データ・オブジェクトと関連するソフトウェア・アプリケーションと、を含んでいてもよい。データ・オブジェクトの特定と同様に、重複データを探す方法に関してシステムを調整する可能性は、システム拡張性およびシステム性能を向上させる。
【００８５】
ステップ１２０８で、プロセス１２００を実行するシステムは、冗長データを含む、以前に特定したデータ・オブジェクトの、重複排除コピーを生成してもよい。これらの重複排除コピーは、冗長データをほとんど、またはまったく含んでいない可能性がある。一実施形態では、特定されたデータ・オブジェクトは、例えば、仮想カートリッジを含んでいてもよい。この場合には、システムは重複を排除した１つ以上の仮想カートリッジを生成してもよく、これらの仮想カートリッジは、完全に重複排除された場合、特定された仮想カートリッジ内に含まれるデータのすべてを含んでいる。上述した合成仮想カートリッジと同様に、重複を排除したこれらの仮想カートリッジは、データ・オブジェクトと、データ・オブジェクトを指し示すポインタとの両方を含んでいてもよい。
【００８６】
重複を排除したこれらのデータ・コピーを生成する間に、システムは特定のデータ・オブジェクトの中の重複データのコピーを保存して、他のデータ・オブジェクトの中のポインタを生成および／または変更してそれらのデータ・オブジェクトの中に重複データを保存してもよい。重複データとポインタとを保存するとき、システムはさまざまな方法に従ってもよい。一実施形態では、重複データは最も古いデータ・オブジェクト内に格納され、重複データのロケーションを特定するポインタは、重複データを含んでいる、より若いデータ・オブジェクト内に保存されている。当技術分野で後方参照と呼ばれるこの技術は、重複排除プロセスのためにデータ・オブジェクトをまとめるのにハッシュ・インデックスを作る場合に、一般的に使用されている。
【００８７】
他の実施形態では、重複データは最も若いデータ・オブジェクト内に格納され、重複データのロケーションを特定するポインタは、重複データを含んでいる、より古いデータ・オブジェクト内に保存されている。この技術を前方参照と呼んでもよい。バックアップ・データ・オブジェクト内に含まれているすべてのデータの重複を排除するのにポインタの参照解除が少なくてすむため、最後のバックアップからデータを復元する場合、前方参照はデータ復旧性能を向上させる。この性能向上は、プライマリ・ストレージにデータを復元しなければならないときには、最新の、すなわち、最も若いバックアップを通常使用するという事実により特に有利である。
【００８８】
図１３Ａ、図１３Ｂ、および図１３Ｃは、上述したような前方参照と後方参照との両方を示している。図１３Ａは、重複排除プロセスの前のバックアップ・データ・オブジェクト１３０２および１３０４を示している。この説明のために、バックアップ・データ・オブジェクト１３０４よりも前にバックアップ・データ・オブジェクト１３０２を保存したと仮定する。バックアップ・データ・オブジェクト１３０２は、固有データ部分１３０６と、冗長データ部分１３１０Ａとを含んでいる。バックアップ・データ・オブジェクト１３０４は、固有データ部分１３０８と、冗長データ部分１３１０Ｂとを含んでいる。
【００８９】
図１３Ｂは、前方参照スキームに基づいてデータ・オブジェクト１３０２および１３０４の重複を排除したコピーを示している。２つのうち、より最近になってから保存されたデータ・オブジェクト１３０４は、冗長データ部分１３１０Ｂのコピーを含んでいる。２つのうち、より以前に保存されたデータ・オブジェクト１３０２は、冗長データ部分１３１０Ｂを指し示すポインタ１３１２を含んでいる。したがって、重複排除コピーを生成した後には、より若いデータ・オブジェクトは冗長データのコピーを含んでおり、より古いデータ・オブジェクトは、より若いデータ・オブジェクト内の冗長データを指し示すポインタを含んでいる。
【００９０】
図１３Ｃは、後方参照スキームに基づいてデータ・オブジェクト１３０２および１３０４の重複を排除したコピーを示している。２つのうち、より以前に保存されたデータ・オブジェクト１３０２は、冗長データ１３１０Ａのコピーを含んでいる。２つのうち、より最近になってから保存されたデータ・オブジェクト１３０２は、冗長データ部分１３１０Ａを指し示すポインタ１３１２を含んでいる。したがって、重複排除コピーを生成した後には、より古いデータ・オブジェクトは冗長データのコピーを含んでおり、より若いデータ・オブジェクトは、より古いデータ・オブジェクト内の冗長データを指し示すポインタを含んでいる。
【００９１】
ステップ１２１０で、システムは、重複排除コピーを、以前に特定したデータ・オブジェクトと比較して、データ完全性を維持していることを確保してもよい。この比較は、データ・オブジェクト・ポインタの参照解除を必要とするかもしれず、データ・オブジェクト内に含まれるデータのビットごとの比較を含んでいてもよい。この完全性検査を実行した後に、一実施形態では、システムは、重複排除コピーを特定するポインタと、それらの重複排除コピーのそれぞれの以前に特定したデータ・オブジェクトと、を交換してもよく、その結果、重複を排除したデータ・オブジェクトはプライマリ・データ・オブジェクトになり、以前に特定したデータ・オブジェクトを参照するいかなるデータ・オブジェクトの完全性をも崩すことなく、以前に特定したそのデータ・オブジェクトを削除してもよい。また、システムはメタデータに他の調整を行って、重複排除コピーの特性をメタデータが正確に反映することを確保してもよい。
【００９２】
ステップ１２１２で、以前に特定したデータ・オブジェクトが利用していた記憶容量を、他のデータ・オブジェクトで使用するために再利用する。一実施形態では、以前に特定したデータ・オブジェクトを単に削除することにより、これを達成してもよい。ステップ１２１４で、プロセス１２００は終了する。
プロセス１２００は事象の好ましい配列を示している。本発明の精神を逸脱することなく、他の操作を追加することができ、またはプロセス１２００内の操作の順番を変更することができる。一実施形態では、バックアップ・ストレージ・システム内に含まれる各データ・オブジェクトに対してプロセス１２００を実行してもよい。他の実施形態では、システムは、バックアップ・ストレージ・システム内のデータ・オブジェクトのサブセットに対してプロセス１２００を実行してもよい。
【００９３】
プロセス１２００は、要求に応じてまたはスケジュールに従って、１回限りのプロセスまたは繰り返しプロセスとして実行してもよい。重複排除により再利用されるスペースが、ある特定のしきい値を満たす、または超えるとき、プロセス１２００のさらなるサブセットを実行してもよい。例えば、一実施形態では、重複排除が、利用されるバックアップ記憶容量の少なくとも指定の数字（例えば、５０）テラバイト、または指定の割合（例えば、２５％）を解放するときにだけ、プロセス１２００を実行してもよい。事象駆動型コンピュータ・アクションとして実施されるとき、プロセス１２００を含む操作はグリッド環境のような分散コンピューティング環境で実行してもよい。
【００９４】
したがって、要約すれば、重複排除プロセス１２００の実施形態は、バックアップ・データのコピーを保持するために必要な記憶容量を削減してもよく、したがって、バックアップ・データを保存するために必要な電子メディアの量を削減してもよい。さらに、重複排除プロセス１２００の実施形態は、重複排除プロセスを最適化するためにメタデータを使用することによりコンピュータ資源の効率的な利用をもたらしてもよい。最後に、前方参照スキームで重複を排除したデータを保存することにより、重複排除は一般的に使用されるデータ復旧機能の性能を高めることができる。
【００９５】
図３に関して上述したように、また、ストレージ・システムは、エンド・ユーザ復元アプリケーション３００と呼ばれるソフトウェア・アプリケーションを含んでいてもよい。したがって、他の実施形態に基づいて、ＩＴスタッフの介入なしに、かつ既存のバックアップ／復元手順および／またはポリシに対していかなる変更も必要としないで、エンド・ユーザがバックアップ・データを探して復元するための方法を提供している。典型的なバックアップ・ストレージ・システムでは、ホスト・コンピュータ１２０上で起動しているバックアップ／復元アプリケーションは、ＩＴスタッフにより制御されており、ＩＴスタッフによる介入なしにエンド・ユーザがバックアップ・データにアクセスすることは不可能または非常に難しいかもしれない。本発明の態様および実施形態に基づいて、例えば、バックアップ・ストレージ・メディア１２６を備えたウェブ・ベースのインタフェースまたは他のインタフェースを介して、エンド・ユーザが自分たちのファイルを探して復元することを可能にするストレージ・システム・ソフトウェアを提供している。
【００９６】
合成完全バックアップ・アプリケーション２４０と同様に、エンド・ユーザ復元アプリケーション３００はストレージ・システム・コントローラ１２２（図２参照）上で実行してもよく、またはホスト・コンピュータ１２０上で実行してもよいということを理解すべきである。エンド・ユーザ復元アプリケーションは、バックアップ・ストレージ・メディア１２６からバックアップ・ファイルを探して、必要に応じて復元するために、認定ユーザが論理メタデータ・キャッシュを検索できるようにするのに必要なソフトウェア・コマンドおよびインタフェースを含んでいる。
【００９７】
一実施形態に基づいて、ユーザ・コンピュータ１３６上にインストールされる、および／またはユーザ・コンピュータ１３６上で実行される、ユーザ・インタフェースを含むソフトウェアを提供している。ユーザ・インタフェースは、ユーザがバックアップ・ストレージ・メディア上のファイルを探すことを可能にする任意の種類のインタフェースであってもよい。例えば、ユーザ・インタフェースはグラフィカル・ユーザ・インタフェースであってもよく、ウェブ・ベースであってもよく、またはテキスト・インタフェースであってもよい。ユーザ・コンピュータは、例えば、イーサネット（登録商標）接続であってもよいネットワーク接続１３８を介してストレージ・システム１７０と結合している。このネットワーク接続１３８を介して、ユーザ・コンピュータ１３６のオペレータはストレージ・システム１７０上に保存されたデータにアクセスできる。
【００９８】
一実施例では、エンド・ユーザ復元アプリケーション３００は、ユーザ認証および／またはユーザ認可機能を含んでいる。例えば、ユーザにユーザ名とパスワードとを用いてユーザ・コンピュータ上のユーザ・インタフェースを介してログインするように要請してもよい。ユーザ・コンピュータはストレージ・システムに（例えば、エンド・ユーザ復元アプリケーションに）ユーザ名およびパスワードを伝達してもよく、このストレージ・システムは適切なユーザ認証機構を使用して、ユーザがストレージ・システムにアクセスできるかどうかを判断してもよい。使用してもよいユーザ認証機構のいくつかの実施例は、マイクロソフトのアクティブ・ディレクトリ・サーバ、ＵＮＩＸ（登録商標）の「イエロー・ページ」サーバ、またはライトウェイト・ディレクトリ・アクセス・プロトコルを含んでいるが、これらに限らない。ログイン／ユーザ認証機構はエンド・ユーザ復元アプリケーションと通信して、ユーザ権限をやりとりしてもよい。例えば、何人かのユーザは、自分たちが作成したファイルだけ、自分たちがある特定の権限を有しているファイルだけ、または自分たちが所有者と認定されるファイルだけ、を検索可能であってもよい。例えば、システム・オペレータまたは管理者などの他のユーザは、すべてのバックアップ・ファイルなどにアクセス可能であってもよい。
【００９９】
一実施形態に基づいて、エンド・ユーザ復元アプリケーションは論理メタデータ・キャッシュを使用して、バックアップ・ストレージ・メディア上にバックアップされたすべてのデータ・ファイルについての情報を取得する。エンド・ユーザ復元アプリケーションは、例えば、バックアップ時刻／日付、ユーザ名、ユーザ・コンピュータの当初のディレクトリ構造（ファイルをバックアップしたときに取得されているかもしれない）、または他のファイル特性に基づいてソートされたユーザのファイルの階層化ディレクトリ構造を、ユーザ・インタフェースを介してユーザに提示する。一実施例では、ユーザに提示されるディレクトリ構造は、そのユーザに対して有効な権限に従って変化してもよい。エンド・ユーザ復元アプリケーションはブラウズ要求を受け取ってもよく（すなわち、ユーザ・インタフェースを介して、ユーザはディレクトリ構造をブラウズして所望ファイルを探してもよい）、またはユーザは名前、日付などでファイルを検索してもよい。
【０１００】
一実施形態に基づいて、ユーザはストレージ・システムからバックアップ・ファイルを復元してもよい。例えば、上述したように、ユーザが所望ファイルを見つけると、ユーザはネットワーク接続１３８を介してストレージ・システムからファイルをダウンロードしてもよい。一実施例では、当業者に公知のように、任意のウェブ・ベースのダウンロードに相当する方法で、このダウンロード手順を実施してもよい。
【０１０１】
エンド・ユーザがビューまたはダウンロードできる許可を有するそれらのファイルにエンド・ユーザがアクセスできるようにすることにより、およびユーザ・インタフェース（例えば、ウェブ・ベース技術）を介してこのようなアクセスを可能にすることにより、エンド・ユーザ復元アプリケーションは、いかなるバックアップ・ポリシまたは手順をも変更する必要性なしに、ユーザが自分たち自身のファイルを検索して復元することを可能にすることができる。
【０１０２】
合成完全バックアップ・アプリケーションおよびエンド・ユーザ復元アプリケーションなどの本発明の態様について、本明細書では主としてソフトウェアの観点から記述しているが、それらは、ソフトウェア、ハードウェアもしくはファームウェア、またはそれらの任意の組み合わせで択一的に実施してもよいことを理解すべきである。したがって、例えば、本発明の実施形態は、コンピュータ・プログラム（すなわち、複数の命令）と一緒に符号化（エンコード）された任意のコンピュータ読み込み可能媒体（例えば、コンピュータ・メモリ、フロッピ・ディスク、コンパクト・ディスク、テープなど）を含んでいてもよく、このコンピュータ・プログラムは、ストレージ・システムのプロセッサ上で少なくとも部分的に実行されるとき、詳細に上述したように、合成完全バックアップ・アプリケーションおよび／またはエンド・ユーザ復元アプリケーションの機能を実行する。
【０１０３】
したがって、一般的に要約すれば、本発明の実施形態および態様は、従来のテープ・バックアップ・システムをエミュレートするが、しかし一方で、合成バックアップを生成できること、およびエンド・ユーザがバックアップ・ファイルをビューして復元することができること、などの機能向上を提供してもよい、ストレージ・システムおよび方法を含んでいる。しかしながら、コンピュータ・データのバックアップ以外のために本発明のさまざまな態様を使用してもよいということを理解すべきである。本発明のストレージ・システムは大量のデータを経済的に保存するために使用してもよく、かつ逐次式とは対照的にランダムに、およびハード・ディスク・アクセス時刻に、その保存データにアクセスできるため、本発明の実施形態は、従来のバックアップ・ストレージ・システムのほかに用途を見つけてもよい。例えば、本発明の実施形態を使用して、映画および音楽の豊富な選択の幅を表すビデオ・データまたはオーディオデータを保存してもよく、要求に応じてビデオおよび／またはオーディオを提供できるようにしてもよい。
【０１０４】
このように本発明の少なくとも１つの実施形態のいくつかの態様について説明したが、さまざまな変更、修正、および改良を当業者は容易に思い付くであろうということを理解すべきである。このような変更、修正、および改良は本開示の一部であるものとし、かつ本発明の範囲内にあるものとする。したがって、上記の説明および図面は、ほんの一例として示したに過ぎない。
【図１】
2010532538.tif 000003
【図２】
2010532538.tif 000004
【図３】
2010532538.tif 000005
【図４】
2010532538.tif 000006
【図５】
2010532538.tif 000007
【図６】
2010532538.tif 000008
【図７】
2010532538.tif 000009
【図８】
2010532538.tif 000010
【図９】
2010532538.tif 000011
【図１０】
2010532538.tif 000012
【図１１】
2010532538.tif 000013
【図１２】
2010532538.tif 000014
【図１３Ａ】
2010532538.tif 000015
【図１３Ｂ】
2010532538.tif 000016
【図１３Ｃ】
2010532538.tif 000017
【国際調査報告】
2010532538.tif 000018
2010532538.tif 000019
2010532538.tif 000020