(57)【要約】  バックアップ記憶システムから冗長データを除去するための方法が提示される。一例では、この方法は、アプリケーション層データオブジェクトを受信することと、複数の重複排除ドメインからある重複排除ドメインを、前記重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択することと、前記アプリケーション層データオブジェクトが前記特性を有すると判断することと、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導することとを含んでいてもよい。
2011510405.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション層データオブジェクトの重複排除を誘導するための方法であって、前記方法は、
前記アプリケーション層データオブジェクトを受信することと、
複数の重複排除ドメインからある重複排除ドメインを、前記重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択することと、
前記アプリケーション層データオブジェクトが前記特性を有すると判断することと、
前記選択された重複排除ドメインに前記アプリケーション層データオブジェクトを誘導することとを備える、方法。
【請求項２】
前記アプリケーション層データオブジェクトを受信することは、
データストリームを受信することと、
前記データストリームに含まれるメタデータを用いて前記アプリケーション層データオブジェクトを識別することとを含む、請求項１に記載の方法。
【請求項３】
前記データストリームを受信することは、多重化されたデータストリームを受信することを含む、請求項２に記載の方法。
【請求項４】
前記アプリケーション層データオブジェクトを用いて、前記データストリームに含まれるメタデータを抽出することをさらに備える、請求項２に記載の方法。
【請求項５】
前記複数の重複排除ドメインから前記重複排除ドメインを選択することは、前記アプリケーション層データオブジェクトに関連付けられた前記抽出されたメタデータを、前記重複排除ドメインに関連付けられた少なくとも１つの前記特性と比較することを含む、請求項４に記載の方法。
【請求項６】
前記データストリームに含まれる前記メタデータを抽出することは、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも１つを抽出することを含む、請求項４に記載の方法。
【請求項７】
複数の重複排除方法のうちの１つを使用するよう、前記複数の重複排除ドメインの各々を構成することをさらに備える、請求項１に記載の方法。
【請求項８】
前記複数の重複排除ドメインの各々を構成することは、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される１つの重複排除方法を使用するよう、前記複数の重複排除ドメインの各々を構成することを含む、請求項７に記載の方法。
【請求項９】
前記複数の重複排除ドメインの各々を少なくとも１つのデータオブジェクト特性に関連付けることをさらに備える、請求項１に記載の方法。
【請求項１０】
前記選択された重複排除ドメイン内で、前記アプリケーション層データオブジェクトを重複排除することと、
重複排除の行為の結果に基づいて、前記複数の重複排除ドメインのうちの少なくとも１つに関連付けられた前記データオブジェクト特性を調節することとをさらに備える、請求項１に記載の方法。
【請求項１１】
前記データオブジェクト特性を調節することは、重複排除ドメインデータベースにデータを記憶させることを含む、請求項１０に記載の方法。
【請求項１２】
コンピュータによって実行された結果、前記コンピュータに請求項１の方法を行なうよう命令する命令を規定するコンピュータ読取り可能信号が記憶された、コンピュータ読取り可能媒体。
【請求項１３】
グリッドコンピューティング環境において実行される、請求項１に記載の方法。
【請求項１４】
データがバックアップ記憶システムにバックアップされていない間に、前記バックアップ記憶システム上で実行される、請求項１に記載の方法。
【請求項１５】
データがバックアップ記憶システムにバックアップされている間に、前記バックアップ記憶システム上で実行される、請求項１に記載の方法。
【請求項１６】
アプリケーション層データオブジェクトの重複排除を誘導するためのシステムであって、前記システムは、
複数の重複排除ドメインを備え、前記複数の重複排除ドメインのうちの各重複排除ドメインは、複数のアプリケーション層データオブジェクトに共通の少なくとも１つの特性に関連付けられており、前記システムはさらに、
前記複数の重複排除ドメインに結合されたコントローラを備え、前記コントローラは、
前記アプリケーション層データオブジェクトを受信し、
前記アプリケーション層データオブジェクトが、ある重複排除ドメインに関連付けられた前記少なくとも１つの特性を有すると判断し、
前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、システム。
【請求項１７】
前記コントローラはさらに、
データストリームを受信し、
前記データストリームに含まれるメタデータを用いて前記アプリケーション層データオブジェクトを識別するよう構成されている、請求項１６に記載のシステム。
【請求項１８】
前記データストリームは多重化されている、請求項１７に記載のシステム。
【請求項１９】
前記コントローラはさらに、前記アプリケーション層データオブジェクトを用いて、前記データストリームに含まれるメタデータを抽出するよう構成されている、請求項１７に記載のシステム。
【請求項２０】
前記コントローラはさらに、前記アプリケーション層データオブジェクトが前記重複排除ドメインに関連付けられた前記少なくとも１つの特性を有するということを、前記アプリケーション層データオブジェクトに関連付けられた前記抽出されたメタデータを前記重複排除ドメインに関連付けられた前記少なくとも１つの特性と比較することによって判断するよう構成されている、請求項１９に記載のシステム。
【請求項２１】
前記コントローラはさらに、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも１つを抽出するよう構成されている、請求項１９に記載のシステム。
【請求項２２】
前記コントローラはさらに、複数の重複排除方法のうちの１つを使用するよう、前記複数の重複排除ドメインの各々を構成するよう構成されている、請求項１６に記載のシステム。
【請求項２３】
前記コントローラはさらに、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される１つの重複排除方法を使用するよう、前記複数の重複排除ドメインの各々を構成するよう構成されている、請求項２２に記載のシステム。
【請求項２４】
前記コントローラはさらに、前記複数の重複排除ドメインの各々を少なくとも１つのデータオブジェクト特性に関連付けるよう構成されている、請求項１６に記載のシステム。
【請求項２５】
前記コントローラはさらに、
前記選択された重複排除ドメイン内で、前記アプリケーション層データオブジェクトの重複排除を引き起こし、
重複排除の行為の結果に基づいて、前記複数の重複排除ドメインのうちの少なくとも１つに関連付けられた前記データオブジェクト特性を調節するよう構成されている、請求項１６に記載のシステム。
【請求項２６】
前記コントローラはさらに、重複排除ドメインデータベースにデータを記憶させるよう構成されている、請求項２５に記載のシステム。
【請求項２７】
グリッドコンピューティング環境に含まれている、請求項１６に記載のシステム。
【請求項２８】
前記コントローラはさらに、データが前記システムにバックアップされていない間に、前記アプリケーション層データオブジェクトを受信し、前記アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた前記少なくとも１つの特性を有すると判断し、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、請求項１６に記載のシステム。
【請求項２９】
前記コントローラはさらに、データが前記システムにバックアップされている間に、前記アプリケーション層データオブジェクトを受信し、前記アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた前記少なくとも１つの特性を有すると判断し、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
１．発明の分野
この発明の局面はデータストレージに関し、より特定的には、拡張可能なデータ重複排除サービスを提供するための装置および方法に関する。
【背景技術】
【０００２】
２．関連技術の説明
多くのコンピュータシステムは、１つ以上のホストコンピュータと、ホストコンピュータが使用したデータを記憶する１つ以上のデータ記憶システムとを含む。これらのホストコンピュータおよび記憶システムは典型的には、ファイバチャネル（Fibre Channel）ネットワーク、イーサネット（登録商標）ネットワーク、または別のタイプの通信ネットワークといったネットワークを用いて、ともにネットワーク化される。ファイバチャネルは、チャネルベースの伝送方式の速度とネットワークベースの伝送方式の柔軟性とを組合せて、ネットワーク上で複数のイニシエータが複数のターゲットと通信することを可能にする規格であり、ここでイニシエータおよびターゲットは、ネットワークに結合されたどの装置であってもよい。ファイバチャネルは典型的には、光ファイバケーブルといった高速伝送媒体を用いて実現されるため、大量のデータが転送される記憶システムネットワークにとって一般的な選択肢である。
【０００３】
いくつかのホストコンピュータとバックアップ記憶システムとを含む典型的なネットワーク化コンピューティング環境の一例を、図１に示す。１つ以上のアプリケーションサーバ１０２が、ローカルエリアネットワーク（ＬＡＮ）１０３を介して、複数のユーザコンピュータ１０４に結合されている。アプリケーションサーバ１０２およびユーザコンピュータ１０４はともに、「ホストコンピュータ」と考えられてもよい。アプリケーションサーバ１０２は、ストレージエリアネットワーク（ＳＡＮ）１０８を介して、１つ以上の一次記憶装置１０６に結合されている。一次記憶装置１０６は、たとえば、ＥＭＣ社、ＩＢＭ社などの企業から入手可能であるようなディスクアレイであってもよい。また、これに代えて、バス（図示せず）または他のネットワークリンクが、アプリケーションサーバと一次記憶システム１０６との間の相互接続を提供してもよい。バスおよび／またはファイバチャネルネットワーク接続は、ホストコンピュータ（たとえばアプリケーションサーバ１０２）と記憶システム１０６との間で転送されるパケットのフォーマットを指示する小型部品システム相互接続（Small Component System Interconnect：ＳＣＳＩ）プロトコルなどのプロトコルを用いて動作してもよい。
【０００４】
図１に示すネットワーク化コンピューティング環境は、たとえば大手金融機関または大企業が使用するような大型システムに特有のものである、ということが認識されるべきである。多くのネットワーク化コンピューティング環境は、図１に示す要素をすべて含む必要はないことが、理解されるべきである。たとえば、より小さいネットワーク化コンピューティング環境は単に、記憶システムに直接またはＬＡＮを介して接続されたホストコンピュータを含んでいてもよい。加えて、図１は別個のユーザコンピュータ１０４、アプリケーションサーバ１０２、およびメディアサーバ１１４を例示しているが、これらの機能は１つ以上のコンピュータに組合されてもよい。
【０００５】
多くのネットワーク化コンピュータ環境は、一次記憶装置１０６に加え、少なくとも１つの二次またはバックアップ記憶システム１１０を含む。バックアップ記憶システム１１０は典型的にはテープライブラリであってもよいが、大容量で信頼性のある他の二次記憶システムが使用されてもよい。典型的には、これらの二次記憶システムは一次記憶装置よりも低速であるが、取外されてオフサイトで格納され得る一種のリムーバブルメディア（たとえばテープ、磁気ディスクまたは光ディスク）を含む。
【０００６】
図示された例では、アプリケーションサーバ１０２は、たとえばイーサネット（登録商標）または他の通信リンク１１２を介して、バックアップ記憶システム１１０と直接通信できる場合がある。しかしながら、そのような接続は比較的低速であり、また、プロセッサ時間またはネットワーク帯域幅といった資源を使い尽くす場合がある。したがって、図示されたようなシステムは、たとえばファイバチャネルを用いてＳＡＮ１０８とバックアップ記憶システム１１０との間に通信リンク１１５を提供し得る１つ以上のメディアサーバ１１４を含んでいてもよい。
【０００７】
メディアサーバ１１４は、（ユーザコンピュータ１０４、メディアサーバ１１４、および／またはアプリケーションサーバ１０２といった）ホストコンピュータ、一次記憶装置１０６、およびバックアップ記憶システム１１０の間でのデータの転送を制御するバックアップ／復元アプリケーションを含むソフトウェアを実行してもよい。バックアップ／復元アプリケーションの例は、ベリタス（Veritas）、レガート（Legato）などの企業から入手可能である。データ保護のために、当該技術分野において公知であるように、ネットワーク化コンピューティング環境におけるさまざまなホストコンピュータおよび／または一次記憶装置からのデータを、バックアップ／復元アプリケーションを用いて周期的にバックアップ記憶システム１１０にバックアップしてもよい。
【０００８】
もちろん、上述のように、多くのネットワーク化コンピュータ環境はより小さく、また、図１に示す例示的なネットワーク化コンピュータ環境よりも構成要素が少ない場合がある、ということが認識されるべきである。したがって、メディアサーバ１１４は実際、単一のホストコンピュータにおいてアプリケーションサーバ１０２と組合され得ること、および、バックアップ／復元アプリケーションは、バックアップ記憶システム１１０に（直接的に、またはネットワークを通してなど間接的に）結合されたどのホストコンピュータ上でも実行され得ることも、認識されるべきである。
【０００９】
典型的なバックアップ記憶システムの一例は、多数のテープカートリッジと、少なくとも１つのテープドライブと、カートリッジのテープドライブへの取付けおよび取外しを制御するロボット機構とを含むテープライブラリである。バックアップ／復元アプリケーションはロボット機構に、ある特定のテープカートリッジ、たとえばテープ番号０００１の位置を特定し、データがテープに書込まれるようにそのテープカートリッジをテープドライブに取付けるよう、命令を与える。バックアップ／復元アプリケーションはまた、データをテープに書込むフォーマットを制御する。典型的には、バックアップ／復元アプリケーションは、ＳＣＳＩコマンド、または他の標準化コマンドを用いて、ロボット機構に命令し、データをテープに書込むようテープドライブを制御し、以前に書込まれたデータをテープから回復させてもよい。
【００１０】
従来のテープライブラリバックアップシステムは、速度、信頼性、および容量固定を含む多数の問題を抱えている。多くの大企業は、毎週、テラバイト単位のデータをバックアップする必要がある。しかしながら、高価で高性能のテープでも通常、３０〜４０メガバイト／秒（ＭＢ／ｓ）、すなわち約５０ギガバイト／時間（ＧＢ／ｈｒ）の速度でしか、データの読出／書込ができない。このため、１または２テラバイトのデータをテープバックアップシステムにバックアップするのに、少なくとも１０〜２０時間の連続データ転送時間がかかる場合がある。
【００１１】
加えて、多くのテープ製造業者らは、（人間のオペレータもしくはロボット機構は移動または取付け動作中にテープを落とすかもしれないため、通常のテープライブラリでは比較的頻繁に起こり得るような）テープが落下した場合、もしくはテープが極度の温度または湿度といった理想的でない環境条件にさらされている場合に、データをテープに記憶させる（またはテープから復元する）ことができる、ということを保証しないであろう。したがって、制御された環境においてテープを格納するには、多大な注意を払う必要がある。さらに、（ロボット機構を含む）テープライブラリの複雑な機械は維持費がかさみ、また、個々のテープカートリッジは比較的高価で耐用年数が限られている。
【００１２】
従来のテープライブラリおよび他の種類のバックアップ記憶媒体に関連するコストを考慮して、供給業者らはしばしば、バックアップ媒体要件全体を減少させるために、重複排除処理を自らの製品提供に取入れている。重複排除とは、時が経つにつれてデータの繰返しシーケンスを識別するプロセスであり、すなわち、それはデルタ圧縮の現れである。重複排除は典型的には、バックアップ記憶装置といったターゲット装置の１つの機能として実現される。バックアップデータストリーム内の冗長データを識別する行為は複雑であり、現在の最新技術では従来、ハッシュ指紋法およびパターン認識を用いて解決されている。
【００１３】
ハッシュ指紋法では、受信データストリームはまず、（その後の一致の最も高い可能性を提供するデータストリームにおいて、エッジとしても公知である良好な「区切り点」を予測することを試みる）整列処理を受け、次にハッシュ処理（現在の最新技術では通常、ＳＨＡ−１）を受ける。データストリームは、ハッシュ処理によっていくつかの塊（サイズが通常、約８キロバイト〜１２キロバイト）に分解され、各塊には、結果として生じるそのハッシュ値が割当てられる。このハッシュ値は、メモリ常駐テーブルと比較される。ハッシュ入力が見つかった場合、データは冗長であると仮定され、ディスク記憶システムに既に記憶された既存データブロックへのポインタと置き換えられる。既存データの位置はテーブルに載っている。ハッシュ入力が見つからない場合、データはディスク記憶システムに記憶され、その位置がそのハッシュとともにメモリ常駐テーブルに記録される。この機構を例示するいくつかの例を、データドメイン（Data Domain）に譲渡された米国特許第７，０６５，６１９号、およびクォンタム社（Quantum Corporation）に譲渡された米国特許第５，９９０，８１０号に見つけることができる。ハッシュ指紋法は典型的には、インラインで実行される。すなわち、データは、ディスクに書込まれる前にリアルタイムで処理される。
【００１４】
パターン認識によれば、受信データストリームはまず、比較的大きいデータブロック（約３２ＭＢ）へと「塊にされ」、または分割される。データは次に、ハッシュ値のリストを組立てる単純なローリングハッシュ法によって処理される。ハッシュ値に対して変換が行なわれ、ここで、結果として生じる値の小さなリストは、データブロックの「指紋」を表わす。次に、他の所与の記憶ブロックに存在する少なくとも或る数の指紋ハッシュを探すために、ハッシュのテーブルに対して検索が行なわれる。最小一致数が満たされない場合、ブロックは固有であると考えられ、ディスクに直接記憶される。対応する指紋ハッシュが、メモリ常駐テーブルに追加される。最小一致数が満たされた場合、現在のデータブロックが以前に記憶されたデータブロックと一致する可能性がある。この場合、一致する指紋によって割当てられたディスクストレージのブロックがメモリに読込まれ、かつてハッシュされた候補ブロックとバイト毎に比較される。データの全シーケンスが等しい場合、データブロックは、ストレージの物理的にアドレス指定されたブロックへのポインタと置き換えられる。ブロック全体が一致しない場合、デルタ差分機構が採用されて、記憶される必要があるブロック内の最小データセットを判断する。その結果は、固有のデータと、以前に記憶されたデータの綿密に一致するブロックについてのリファレンスとの組合せである。この機構を例示する一例を、ディリジェント社（Diligent Corporation）に譲渡された米国特許出願第ＵＳ２００６／００５９２０７号に見つけることができる。上述のように、この動作は典型的には、インラインで実行される。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
発明の概要
この発明の局面および実施例は、従来のデータ重複排除手法の問題の一部またはすべてを克服もしくは緩和し、従来の重複排除手法を取入れたデータ記憶システムよりも優れた有効性および拡張性を提供し得る、データ記憶システムを提供する。
【課題を解決するための手段】
【００１６】
概観では、この発明の局面および実施例は、バックアップ／復元アプリケーションが物理的テープライブラリと同様に装置および媒体の同じ表示を見るように、従来のテープバックアップ記憶システムをエミュレートする、ランダムアクセスベースの記憶システムを提供する。この発明の記憶システムは、ソフトウェアおよびハードウェアを用いて、物理的テープ媒体をエミュレートし、それらを１つ以上のランダムアクセスディスクアレイと置き換えて、テープフォーマットで線形の順次データを、ディスクへの記憶にとって好適なデータに変換する。
【００１７】
この発明のいくつかの局面および実施例によれば、既存のバックアップデータセットを復号し、メタデータ（すなわち、ユーザデータについての情報を表わすデータ）を、検索可能なメタデータキャッシュに記憶させるための機構と、ファイルまたはオブジェクトを求めてメタデータキャッシュを検索および／または閲覧できるようにする機構と、これらのファイルまたはオブジェクトを、典型的なバックアップソフトウェアの既存のバックアップポリシーおよび慣行を通して記憶されたデータから、ウェブ接続を介してダウンロードするための機構とが提供される。また、既存の認証機構を通してユーザを認証し、現在のユーザの認証情報に基づいてメタデータキャッシュの表示を制限するための機構が含まれていてもよい。
【００１８】
この発明の局面および実施例は、冗長データのバックアップデータオブジェクトからの除去も提供する。この除去処理は「重複排除」と呼ばれ得るが、バックデータのコピーを保持するために必要な記憶容量を削減し、ひいてはバックアップデータを記憶するために必要な電子媒体の量を削減する。この発明の少なくともいくつかの局面に従った重複排除処理の実施例は、メタデータを用いることによってコンピューティング資源を効率的に使用し、重複排除処理を最適化する。
【００１９】
以下にさらに説明するように、いくつかの実施例は、重複排除処理全体の知的誘導に向けられている。これらの実施例のいくつかでは、データ記憶システムは、ソフトウェアおよびハードウェアを用いて、データオブジェクトを、重複排除および記憶用のいくつかの重複排除ドメインのうちの１つに誘導する。加えて、所与のデータ記憶システムによって提示された制約内でデータの重複排除を管理する重複排除ドメインを構成するために、ハードウェアおよび／またはソフトウェアで実現されるアプリケーションが提供される。いくつかの実施例は、従来のハッシュ指紋手法が、利用可能なメモリの量によって制約される、という認識を表明している。他の実施例は、パターン認識アプローチでは、ランダムなＩ／Ｏ作業負荷が実質的な制限である、という認識を反映している。このため、これらの実施例は、従来のハッシュ指紋法およびパターン認識重複排除手法によって課される制限の認識を表明している。
【００２０】
この発明の他の局面および実施例によれば、メタデータキャッシュにおいて複数のカートリッジ表現の論理的併合を行なうための機構と、新しく合成されたカートリッジにラベルおよびバーコードを適切に付与し、それが有効なデータセットとしてバックアップ／復元ソフトウェアに受付けられるようにするための機構とが提供される。また、この発明のさらに別の局面および実施例によれば、合成カートリッジを表わすデータ要素の複数のコピーを記憶するか、またはメタデータキャッシュにおいて表わされた既存データへのポインタのみを記憶するための機構が提供される。
【００２１】
一実施例によれば、アプリケーション層データオブジェクトの重複排除を誘導するための方法が提供される。この方法は、当該アプリケーション層データオブジェクトを受信する行為と、複数の重複排除ドメインからある重複排除ドメインを、当該重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択する行為と、当該アプリケーション層データオブジェクトが当該特性を有すると判断する行為と、当該選択された重複排除ドメインに当該アプリケーション層データオブジェクトを誘導する行為とを含む。
【００２２】
一例では、当該アプリケーション層データオブジェクトを受信する行為は、データストリームを受信する行為と、当該データストリームに含まれるメタデータを用いて当該アプリケーション層データオブジェクトを識別する行為とを含んでいてもよい。別の例では、当該データストリームを受信する行為は、多重化されたデータストリームを受信する行為を含んでいてもよい。別の例によれば、この方法は、当該アプリケーション層データオブジェクトを用いて、当該データストリームに含まれるメタデータを抽出する行為をさらに含んでいてもよい。さらに別の例では、当該複数の重複排除ドメインから当該重複排除ドメインを選択する行為は、当該アプリケーション層データオブジェクトに関連付けられた当該抽出されたメタデータを、当該重複排除ドメインに関連付けられた少なくとも１つの当該特性と比較する行為を含んでいてもよい。さらに別の例によれば、当該データストリームに含まれる当該メタデータを抽出する行為は、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも１つを抽出する行為を含んでいてもよい。
【００２３】
別の例では、この方法は、複数の重複排除方法のうちの１つを使用するよう、当該複数の重複排除ドメインの各々を構成する行為をさらに含んでいてもよい。別の例によれば、当該複数の重複排除ドメインの各々を構成する行為は、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される１つの重複排除方法を使用するよう、当該複数の重複排除ドメインの各々を構成する行為を含んでいてもよい。さらに別の例では、この方法は、当該複数の重複排除ドメインの各々を少なくとも１つのデータオブジェクト特性に関連付ける行為をさらに含んでいてもよい。追加的な例によれば、この方法は、当該選択された重複排除ドメイン内で、当該アプリケーション層データオブジェクトを重複排除する行為と、重複排除の行為の結果に基づいて、当該複数の重複排除ドメインのうちの少なくとも１つに関連付けられた当該データオブジェクト特性を調節する行為とをさらに含んでいてもよい。さらに別の例では、当該データオブジェクト特性を調節する行為は、重複排除ドメインデータベースにデータを記憶させる行為を含んでいてもよい。
【００２４】
別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、グリッドコンピューティング環境が提供される。
【００２５】
別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、バックアップ記憶システムが提供される。この実施例では、データがバックアップ記憶システムにバックアップされていない間に、この方法が実行される。
【００２６】
別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、バックアップ記憶システムが提供される。この実施例では、データがバックアップ記憶システムにバックアップされている間に、この方法が実行される。
【００２７】
別の実施例によれば、命令を規定するコンピュータ読取り可能信号が記憶されたコンピュータ読取り可能媒体が提供される。これらの命令は、コンピュータによって実行された結果、当該アプリケーション層データオブジェクトを受信する行為と、複数の重複排除ドメインからある重複排除ドメインを、当該重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択する行為と、当該アプリケーション層データオブジェクトが当該特性を有すると判断する行為と、当該選択された重複排除ドメインに当該アプリケーション層データオブジェクトを誘導する行為とを、当該コンピュータに行なうよう命令する。
【００２８】
別の実施例によれば、アプリケーション層データオブジェクトの重複排除を誘導するためのシステムが提供される。このシステムは、複数の重複排除ドメインを含み、当該複数の重複排除ドメインのうちの各重複排除ドメインは、複数のアプリケーション層データオブジェクトに共通の少なくとも１つの特性に関連付けられており、このシステムはさらに、当該複数の重複排除ドメインに結合されたコントローラを含み、当該コントローラは、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトが、ある重複排除ドメインに関連付けられた当該少なくとも１つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されている。
【００２９】
一例では、当該コントローラはさらに、データストリームを受信し、当該データストリームに含まれるメタデータを用いて当該アプリケーション層データオブジェクトを識別するよう構成されていてもよい。別の例では、当該データストリームは多重化されていてもよい。別の例では、当該コントローラはさらに、当該アプリケーション層データオブジェクトを用いて、当該データストリームに含まれるメタデータを抽出するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、当該アプリケーション層データオブジェクトが当該重複排除ドメインに関連付けられた当該少なくとも１つの特性を有するということを、当該アプリケーション層データオブジェクトに関連付けられた当該抽出されたメタデータを当該重複排除ドメインに関連付けられた当該少なくとも１つの特性と比較することによって判断するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも１つを抽出するよう構成されていてもよい。追加的な例では、当該コントローラはさらに、複数の重複排除方法のうちの１つを使用するよう、当該複数の重複排除ドメインの各々を構成するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される１つの重複排除方法を使用するよう、当該複数の重複排除ドメインの各々を構成するよう構成されていてもよい。
【００３０】
別の例によれば、当該コントローラはさらに、当該複数の重複排除ドメインの各々を少なくとも１つのデータオブジェクト特性に関連付けるよう構成されていてもよい。別の例では、当該コントローラはさらに、当該選択された重複排除ドメイン内で、当該アプリケーション層データオブジェクトの重複排除を引き起こし、重複排除の行為の結果に基づいて、当該複数の重複排除ドメインのうちの少なくとも１つに関連付けられた当該データオブジェクト特性を調節するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、重複排除ドメインデータベースにデータを記憶させるよう構成されていてもよい。別の例では、このシステムは、グリッドコンピューティング環境に含まれていてもよい。さらに別の例では、当該コントローラはさらに、データが当該システムにバックアップされていない間に、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた当該少なくとも１つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されていてもよい。加えて、一例によれば、当該コントローラはさらに、データが当該システムにバックアップされている間に、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた当該少なくとも１つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されていてもよい。
【００３１】
さらに別の局面、実施例、ならびにこれらの例示的な局面および実施例の利点を、以下に詳細に説明する。また、前述の情報および以下の詳細な説明はともに、さまざまな局面および実施例の単なる例示であり、請求されている局面および実施例の性質および特徴を理解するための概要または枠組を提供するよう意図されている。さまざまな局面および実施例の例示ならびにさらなる理解を提供するために、添付図面が含まれており、この明細書に取入れられ、この明細書の一部を構成している。図面は、明細書の残りとともに、説明され請求されている局面および実施例の原理ならびに動作を説明するよう機能する。
【００３２】
図面の簡単な説明
添付図面を参照して、少なくとも１つの実施例のさまざまな局面を以下に説明する。縮尺通りであるよう意図されてはいない図において、さまざまな図に示された各々の同一またはほぼ同一の構成要素は、同じ番号で表わされている。明確性のため、すべての図においてすべての構成要素に名前が付けられているとは限らない。図は、例示および説明のために提供されており、この発明の限界の定義として意図されてはいない。
【図面の簡単な説明】
【００３３】
【図１】バックアップ記憶システムを含む大規模なネットワーク化コンピューティング環境の一例のブロック図である。
【図２】この発明の局面に従った記憶システムを含むネットワーク化コンピューティング環境の一例のブロック図である。
【図３】この発明の局面に従った記憶システムの一例のブロック図である。
【図４】この発明の局面に従った記憶システムの一例の仮想レイアウトを示すブロック図である。
【図５】この発明の局面に従ったシステムファイルの一例の概略的レイアウトである。
【図６】この発明の局面に従ったテープディレクトリ構造の一例である。
【図７】この発明の局面に従った合成フルバックアップを作成する方法の一例を示す図である。
【図８】この発明に従った合成フルバックアップを含む一連のバックアップデータセットの一例の概略図である。
【図９】メタデータキャッシュ構造の一例の図である。
【図１０】合成フルバックアップデータセットを記憶する仮想カートリッジの一例の図である。
【図１１】合成フルバックアップデータセットを記憶する仮想カートリッジの別の例の図である。
【図１２】この発明に従ったデータオブジェクトを重複排除する方法のフローチャートである。
【図１３Ａ】２つのバックアップデータオブジェクトの図である。
【図１３Ｂ】図１３Ａに示すバックアップデータオブジェクトの重複排除されたコピーの図である。
【図１３Ｃ】図１３Ａに示すバックアップデータオブジェクトの重複排除されたコピーの別の図である。
【図１４】この発明の局面に従った重複排除誘導子の一例のブロック図である。
【図１５】この発明に従った、データオブジェクトの重複排除を誘導する方法のフローチャートである。
【発明を実施するための形態】
【００３４】
詳細な説明
添付図面を参照して、さまざまな実施例およびそれらの局面を、ここにより詳細に説明する。この発明はその適用が、以下の説明で述べられまたは図面に示された構成の詳細および構成要素の配置に限定されない、ということが認識されるべきである。この発明は他の実施例が可能であり、さまざまなやり方で実践または実行され得る。特定の実現化例は、例示的な目的のためにのみここに提供され、限定的であるよう意図されてはいない。特に、任意の１つ以上の実施例に関連して説明される行為、要素、および特徴は、任意の他の実施例における同様の役割から除外されないよう意図されている。また、ここに使用される表現および用語は説明のためであり、限定的であるよう見なされるべきではない。ここでの「含む」、「備える」、「有する」、「含有する」、「関与する」、およびそれらの変形の使用は、この後に列挙される項目およびそれらの均等物、ならびに追加の項目を包含するよう意図されている。
【００３５】
ここに開示されたどの実施例も、他の実施例と組合されてもよく、「ある実施例」、「いくつかの実施例」、「代替的な実施例」、「さまざまな実施例」、「一実施例」、「少なくとも１つの実施例」、「このおよび他の実施例」などへの言及は、必ずしも相互に排他的ではなく、その実施例に関連して説明されたある特定の特徴、構造、または特性が、少なくとも１つの実施例に含まれ得ることを示すよう意図されている。ここに使用されるような用語は、必ずしもすべて同じ実施例に言及しているとは限らない。どの実施例も、ここに開示された局面と調和する態様で他の実施例と組合されてもよい。「または」への言及は、「または」を用いて説明された用語が、説明された用語のうちの１つ、２つ以上、およびすべてのいずれも示すように、包含的であるよう解釈され得る。
【００３６】
ここに使用されているように、「ホストコンピュータ」という用語は、記憶システムまたは他のホストコンピュータといった他の装置と通信可能な、パーソナルコンピュータ、ワークステーション、メインフレーム、ネットワーク化クライアント、サーバなどといった、少なくとも１つのプロセッサを有するあらゆるコンピュータを指す。ホストコンピュータは、（図１を参照して前述されたような）メディアサーバおよびアプリケーションサーバ、ならびに（ユーザワークステーション、ＰＣ、メインフレームなどであり得る）ユーザコンピュータを含んでいてもよい。加えて、この開示においては、「ネットワーク化コンピュータ環境」という用語は、複数のホストコンピュータが、１つ以上の共有記憶システムに、記憶システムがホストコンピュータの各々と通信できるような態様で接続されている、あらゆるコンピューティング環境を含む。ファイバチャネルは、この発明の実施例で使用され得る通信ネットワークの一例である。しかしながら、ここに説明されるネットワークがファイバチャネルに限定されないこと、および、ファイバチャネルの代わりに、またはそれに加えて、さまざまなネットワーク構成要素が、トークンリング（Token RIng）またはイーサネット（登録商標）といったネットワーク接続を介して、もしくは異なるネットワーク接続の組合せを介して互いに通信し得る、ということが認識されるべきである。また、この発明の局面は、ＳＣＳＩまたはパラレルＳＣＳＩといったバストポロジーでも使用され得る。
【００３７】
この発明のさまざまな実施例および局面によれば、１つ以上のディスクアレイを用いて、リムーバブルメディアベースの記憶システムをエミュレートし得る、仮想のリムーバブルメディアライブラリバックアップ記憶システムが提供される。この発明の実施例を用いると、ユーザが既存のバックアップ手順に修正または調節を加える必要なく、または新しいバックアップ／復元アプリケーションを購入する必要なく、リムーバブルメディア（テープ、磁気ディスク、光ディスクなど）にデータをバックアップするためにこれまで使用されてきたのと同じバックアップ／復元アプリケーションを用いて、データがディスクアレイにバックアップされ得る。ここに詳細に説明される一実施例では、エミュレートされるリムーバブルメディアはテープであり、この発明のバックアップ記憶システムは、テープと従来のテープライブラリシステムでテープを取扱うために使用されるロボット機構とを含むテープライブラリシステムをエミュレートする。
【００３８】
この発明の実施例を用いてバックアップされ、復元され得るデータは、さまざまなデータオブジェクトへと編成され得る。これらのデータオブジェクトは、データを記憶し得るあらゆる構造を含み得る。例示的なデータオブジェクトの非限定的なリストは、ビット、バイト、データファイル、データブロック、データディレクトリ、バックアップデータセット、および仮想カートリッジを含み、それらを以下にさらに説明する。この開示の大半はデータファイルのバックアップおよび復元に言及しているが、この発明の実施例はあらゆるデータオブジェクトを操作してもよく、「データファイル」という用語が「データオブジェクト」と交換可能である、ということが認識されるべきである。加えて、当業者には認識されるように、ここに説明される実施例は、オープンシステム相互接続（Open System Interconnection：ＯＳＩ）モデルのアプリケーション層で動作し、他のＯＳＩモデル層によって表わされる基本ネットワークサービスを提供するために、他のソフトウェアおよび／またはハードウェアに依存して構築されている。
【００３９】
加えて、実施例は、利用可能なコンピューティング資源をより効率的に利用するために、バックアップされたデータを重複排除してもよい。いくつかの実施例によれば、データ重複排除は、インラインで、すなわち重複排除され記憶されるべきデータをデータ記憶システムが受信している間に、行なわれてもよい。他の実施例では、データ重複排除は、オフラインで、すなわち重複排除されるべきデータをデータ記憶システムが既に記憶した後で、行なわれてもよい。以下にさらに詳述するように、実施例は、拡張性の高い重複排除サービスを提供するために、従来のおよび従来にないさまざまな重複排除手法を知的に誘導し得る。
【００４０】
この発明の局面に従った記憶システムは、ともに（バックアップ／復元アプリケーションを実行している）ホストコンピュータおよびバックアップ記憶媒体とインターフェイスをとる、ハードウェアおよびソフトウェアを含む。記憶システムは、バックアップ／復元アプリケーションが物理的テープライブラリと同様に装置および媒体の同じ表示を見るように、テープまたは他の種類のリムーバブルな記憶媒体をエミュレートし、線形で順次のテープフォーマットデータを、ランダムアクセスディスクへの記憶にとって好適なデータに変換するよう、設計され得る。このように、この発明の記憶システムは、新しいバックアップ／復元アプリケーションソフトウェアまたはポリシーを必要とすることなく、（以下に説明するように、ユーザが個々のバックアップユーザファイルを検索できるようにするなどの）向上した機能性を提供し得る。
【００４１】
図２を参照して、この発明の局面に従ったバックアップ記憶システム１７０を含むネットワーク化コンピューティング環境の一例を、ブロック図の形で示す。図示されているように、ホストコンピュータ１２０は、ネットワーク接続１２１を介して、記憶システム１７０に結合されている。このネットワーク接続１２１は、たとえば、ホストコンピュータ１２０と記憶システム１７０との間のデータの高速転送を可能にするファイバチャネル接続であってもよい。ホストコンピュータ１２０は１つ以上のアプリケーションサーバ１０２（図１参照）および／またはメディアサーバ１１４（図１参照）であっても、またはそれらを含んでいてもよく、ネットワーク化コンピューティング環境に存在する任意のコンピュータからの、または一次記憶装置１０６（図１参照）からのデータのバックアップを可能にしてもよい、ということが認識されるべきである。加えて、１つ以上のユーザコンピュータ１３６も、イーサネット（登録商標）接続といった別のネットワーク接続１３８を介して、記憶システム１７０に結合されてもよい。以下に詳細に説明するように、記憶システムは、ユーザコンピュータ１３６のユーザが、記憶システムからバックアップユーザファイルを閲覧し、またオプションで復元することができるようにしてもよい。
【００４２】
記憶システムは、以下により詳細に説明されるような、たとえば１つ以上のディスクアレイであってもよいバックアップ記憶媒体１２６を含む。バックアップ記憶媒体１２６は、ホストコンピュータ１２０からのバックアップデータ用の実記憶空間を提供する。しかしながら、記憶システム１７０はまた、ホストコンピュータ１２０上で実行中のバックアップ／復元アプリケーションにとって、データがまるで従来のリムーバブルな記憶媒体にバックアップ中であるかのように見えるように、テープライブラリなどのリムーバブルメディア記憶システムをエミュレートする、ソフトウェアおよび追加のハードウェアを含んでいてもよい。このため、図２に示すように、記憶システム１７０は、たとえば、仮想のまたはエミュレートされたテープなどのリムーバブルな記憶媒体を表わす、「エミュレートされた媒体」１３４を含んでいてもよい。これらの「エミュレートされた媒体」１３４は、記憶システムソフトウェアおよび／またはハードウェアによってホストコンピュータに提示されており、ホストコンピュータ１２０には物理的記憶媒体のように見える。以下に詳細に説明されるように、エミュレートされた媒体１３４と実バックアップ記憶媒体１２６との間でさらにインターフェイスをとっているのは、記憶システムコントローラ（図示せず）と、ホストコンピュータ１２０からデータを受付けてそのデータをバックアップ記憶媒体１２６上に記憶させるスイッチングネットワーク１３２とであってもよい。このように、記憶システムは、ホストコンピュータ１２０に対し、従来のテープ記憶システムを「エミュレート」する。
【００４３】
一実施例によれば、記憶システムは、ホストコンピュータ１２０から記憶システム１７０上にバックアップされたユーザデータに関するメタデータを記憶する「論理メタデータキャッシュ」２４２を含んでいてもよい。ここに使用されているように、「メタデータ」という用語は、ユーザデータについての情報を表わし、実ユーザデータの属性を記述するデータを指す。データオブジェクトに関するメタデータの非限定的な例示的リストは、データオブジェクトサイズ、一次ストレージにおけるデータオブジェクトの論理的および／または物理的位置、データオブジェクトの作成日、データオブジェクトの最終修正日、データオブジェクトを記憶させたバックアップポリシー名、たとえばデータオブジェクトの名前または透かしといった識別子、および、たとえばデータオブジェクトに関連付けられたソフトウェアアプリケーションといったデータオブジェクトのデータタイプを含んでいてもよい。論理メタデータキャッシュ２４２は、ユーザおよび／またはソフトウェアアプリケーションがバックアップユーザファイルをランダムに配置し、ユーザファイルを互いに比較し、さもなければバックアップユーザファイルにアクセスして操作することを可能にする、データの検索可能な集合体を表わしている。論理メタデータキャッシュ２４２に記憶されたデータを使用し得るソフトウェアアプリケーションの２つの例は、以下により十分に説明される、合成フルバックアップアプリケーション２４０とエンドユーザ復元アプリケーション３００とを含む。加えて、以下により詳細に説明される重複排除誘導子は、記憶システム内で拡張可能な重複排除サービスを提供するために、メタデータを使用してもよい。
【００４４】
概観では、合成フルバックアップアプリケーション２４０は、１つの既存のフルバックアップデータセットと１つ以上の増分バックアップデータセットとから、合成フルバックアップデータセットを作成できる。合成フルバックアップは周期的な（たとえば週ごとの）フルバックアップを行なう必要性をなくすことができ、それによりかなりの時間とネットワーク資源とを節約する。合成フルバックアップアプリケーション２４０の詳細を、以下にさらに説明する。同様に以下にさらに詳細に説明されるエンドユーザ復元アプリケーション３００は、エンドユーザ（たとえばユーザコンピュータ１３６のオペレータ）が記憶システム１７０から、以前にバックアップされたユーザファイルをブラウズし、位置特定し、閲覧し、および／または復元することができるようにする。
【００４５】
上述のように、記憶システム１７０は、ホストコンピュータ１２０およびバックアップ記憶媒体１２６とインターフェイスをとるハードウェアおよびソフトウェアを含む。この発明の実施例のハードウェアおよびソフトウェアはともに、ホストコンピュータ１２０の観点からは、データがテープ上にバックアップされるように見えるものの、実際には、たとえば複数のディスクアレイといった別の記憶媒体上にデータがバックアップされるように、従来のテープライブラリバックアップシステムをエミュレートしてもよい。
【００４６】
図３を参照して、この発明の局面に従った記憶システム１７０の一例を、ブロック図の形で示す。一例では、記憶システム１７０のハードウェアは、記憶システムコントローラ１２２と、記憶システムコントローラ１２２をバックアップ記憶媒体１２６に接続するスイッチングネットワーク１３２とを含む。記憶システムコントローラ１２２は、（単一のプロセッサであっても複数のプロセッサであってもよい）プロセッサ１２７と、記憶システムソフトウェアのすべてまたは一部を実行し得るメモリ１２９（たとえばＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど、またはそれらの組合せ）とを含む。メモリ１２９はまた、バックアップ記憶媒体１２６上に記憶されたデータに関するメタデータを記憶するために使用されてもよい。この発明の実施例を実現するプログラミングコードを含むソフトウェアは、通常、ＲＡＭ、ＲＯＭ、光ディスクまたは磁気ディスク、もしくはテープなどといった、コンピュータにより読取可能および／または書込可能な不揮発性記録媒体上に記憶され、次にメモリ１２９へとコピーされ、そこでそれは次にプロセッサ１２７によって実行される。そのようなプログラミングコードは、たとえば、アセンブラ（Assembler）、ジャバ（Java（登録商標））、ビジュアルベーシック（Visual Basic）、Ｃ、Ｃ♯、またはＣ＋＋、フォートラン（Fortran）、パスカル（Pascal）、アイフェル（Eiffel）、ベーシック（Basic）、コボル（COBOL）、もしくはそれらの組合せといった複数のプログラミング言語のいずれかで書かれていてもよい。なぜなら、この発明はある特定のプログラミング言語に限定されていないためである。典型的には、動作時、プロセッサ１２７は、この発明の実施例を実現するコードなどのデータが、不揮発性記録媒体から、不揮発性記録媒体よりもプロセッサによる情報へのアクセスが迅速な、ＲＡＭなどの別の形のメモリに読出されるようにする。
【００４７】
図３に示すように、コントローラ１２２は、コントローラ１２２をホストコンピュータ１２０に、およびスイッチングネットワーク１３２に接続する、多数のポートアダプタも含む。図示されているように、ホストコンピュータ１２０は、たとえばファイバチャネルポートアダプタであり得るポートアダプタ１２４ａを介して、記憶システムに結合される。記憶システムコントローラ１２２を介して、ホストコンピュータ１２０はバックアップ記憶媒体１２６上にデータをバックアップし、バックアップ記憶媒体１２６からデータを回復できる。
【００４８】
図示された例では、スイッチングネットワーク１３２は、１つ以上のファイバチャネルスイッチ１２８ａ、１２８ｂを含んでいてもよい。記憶システムコントローラ１２２は、記憶システムコントローラをファイバチャネルスイッチ１２８ａ、１２８ｂに結合する複数のファイバチャネルポートアダプタ１２４ｂおよび１２４ｃを含む。ファイバチャネルスイッチ１２８ａ、１２８ｂを介して、記憶システムコントローラ１２２は、データがバックアップ記憶媒体１２６上にバックアップされるようにする。図３に示すように、スイッチングネットワーク１３２は、イーサネット（登録商標）ポートアダプタ１２５ａ、１２５ｂを介して記憶システムコントローラ１２２に結合された１つ以上のイーサネット（登録商標）スイッチ１３０ａ、１３０ｂをさらに含んでいてもよい。一例では、記憶システムコントローラ１２２は、以下に説明するように、記憶システム１７０がホストコンピュータ（たとえばユーザコンピュータ）と通信できるようにたとえばＬＡＮ１０３に結合され得る、別のイーサネット（登録商標）ポートアダプタ１２５Ｃをさらに含む。
【００４９】
図３に示す例では、記憶システムコントローラ１２２は、２つのファイバチャネルスイッチと２つのイーサネット（登録商標）スイッチとを含むスイッチングネットワークを介して、バックアップ記憶媒体１２６に結合されている。記憶システム１７０内に各種スイッチを少なくとも２つずつ設けることは、システムにおける単一障害点をなくす。言い換えれば、一方のスイッチ（たとえばファイバチャネルスイッチ１２８ａ）が故障したとしても、記憶システムコントローラ１２２は依然として、別のスイッチを介してバックアップ記憶媒体１２６と通信可能である。そのような構成は、信頼性および速度の点で有利であり得る。たとえば、上述のように、冗長構成要素の設置および単一障害点の排除により、信頼性が向上する。加えて、いくつかの実施例では、記憶システムコントローラは、ファイバチャネルスイッチの一部またはすべてを並行して使用して、バックアップ記憶媒体１２６上にデータをバックアップすることができ、それにより全体的なバックアップ速度を高める。しかしながら、システムが各種スイッチを２つずつ以上備えることも、スイッチングネットワークがファイバチャネルスイッチおよびイーサネット（登録商標）スイッチの双方を備えることも、要求されてはいない、ということが認識されるべきである。さらに、バックアップ記憶媒体１２６が単一のディスクアレイを備える例では、スイッチは全く必要ない。
【００５０】
上述のように、一実施例では、バックアップ記憶媒体１２６は１つ以上のディスクアレイを含んでいてもよい。好ましい一実施例では、バックアップ記憶媒体１２６は、複数のＡＴＡまたはＳＡＴＡディスクを含む。そのようなディスクは「既製の」製品であり、ＥＭＣ、ＩＢＭなどの製造業者らからの従来の記憶アレイ製品と比べ、比較的安価であり得る。さらに、リムーバブルメディア（たとえばテープ）のコスト、およびそのような媒体の耐用年数が限られているという事実を考慮すると、そのようなディスクはコストの点で従来のテープベースのバックアップ記憶システムと同程度である。加えて、そのようなディスクは、テープよりも実質的に速くデータの読出／書込ができる。たとえば、単一のファイバチャネル接続上では、データはディスク上に少なくとも約１５０ＭＢ／ｓの速度でバックアップ可能であるが、それは変換すると約５４０ＧＢ／ｈｒであり、テープのバックアップ速度よりも著しく（たとえば１桁）速い。加えて、いくつかのファイバチャネル接続が並行して実現されてもよく、それにより速度がさらに速くなる。この発明の一実施例によれば、バックアップ記憶媒体は、多数のＲＡＩＤ（Redundant Array of Independent Disks：独立ディスク冗長アレイ）方式のうちのいずれかを実現するよう編成されてもよい。たとえば、一実施例では、バックアップ記憶媒体はＲＡＩＤ−５実装を実現してもよい。
【００５１】
上述のように、この発明の実施例は、ディスクアレイを用いて従来のテープライブラリバックアップシステムをエミュレートして、物理的バックアップ記憶媒体としてのテープカートリッジを置き換え、それにより「仮想テープライブラリ」を提供する。従来のテープライブラリにあった物理的テープカートリッジは、ここに「仮想カートリッジ」と呼ばれるものに置き換えられる。この開示のために、「仮想テープライブラリ」という用語が、ソフトウェアおよび／または物理的ハードウェアにおいてたとえば１つ以上のディスクアレイとして実現され得る、エミュレートされたテープライブラリを指す、ということが認識されるべきである。さらに、この説明は主としてエミュレートされたテープに言及しているが、記憶システムはたとえばＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭといった他の記憶媒体もエミュレートし得ること、および「仮想カートリッジ」という用語が一般に、エミュレートされた記憶媒体、たとえばエミュレートされたテープまたはエミュレートされたＣＤを指す、ということが認識されるべきである。一実施例では、仮想カートリッジは実際、１つ以上のハードディスクに対応している。
【００５２】
したがって、一実施例では、バックアップ／復元アプリケーションには、データがテープ上にバックアップ中であるかのように見えるように、テープライブラリをエミュレートするために、ソフトウェアインターフェイスが提供される。しかしながら、実データライブラリは１つ以上のディスクアレイに置き換えられ、データが実際にはこれらのディスクアレイ上にバックアップされているようになっている。他の種類のリムーバブルメディア記憶システムがエミュレートされてもよく、この発明はテープライブラリ記憶システムのエミュレーションに限定されない、ということが認識されるべきである。ここで以下の説明は、記憶システム１７０に含まれるソフトウェアのさまざまな局面、特徴、および動作を説明する。
【００５３】
ソフトウェアは記憶システム１７０に「含まれて」いるように説明され、記憶システムコントローラ１２２のプロセッサ１２７（図３参照）によって実行され得るものの、すべてのソフトウェアが記憶システムコントローラ１２２上で実行されることは要求されていない、ということが認識されるべきである。合成フルバックアップアプリケーションおよびエンドユーザ復元アプリケーションといったソフトウェアプログラムは、ホストコンピュータおよび／またはユーザコンピュータ上で実行されてもよく、その一部は、記憶システムコントローラ、ホストコンピュータ、およびユーザコンピュータのすべてまたは一部にわたって分散されてもよい。このため、記憶システムコントローラがコンピュータといった含有された物理的実体であることは要求されていない、ということが認識されるべきである。記憶システム１７０は、たとえばメディアサーバ１１４またはアプリケーションサーバ１０２といったホストコンピュータ上に常駐するソフトウェアと通信してもよい。加えて、記憶システムは、同じまたは異なるホストコンピュータ上で実行され得る、もしくはそれらのホストコンピュータ上に常駐し得るいくつかのソフトウェアアプリケーションを含有していてもよい。さらに、記憶システム１７０は機器の個別の部品に限定されないということが認識されるべきであるが、いくつかの実施例では、記憶システム１７０は機器の個別の部品として具体化されてもよい。一例では、記憶システム１７０は、従来のテープライブラリバックアップシステムの「プラグアンドプレイ」（すなわち既存のバックアップ手順およびポリシーに修正を加える必要がない）代替物として作用する内蔵ユニットとして提供されてもよい。そのような記憶システムユニットはまた、冗長性または追加の記憶容量を提供するために、従来のバックアップシステムを含むネットワーク化コンピューティング環境において使用されてもよい。別の実施例では、記憶システム１１６は、クラスタ化された環境、またはグリッド環境といった分散コンピューティング環境において実現されてもよい。
【００５４】
上述のように、一実施例によれば、ホストコンピュータ１２０（たとえばアプリケーションサーバ１０２またはメディアサーバ１１４であってもよい、図１参照）は、ホストコンピュータ１２０を記憶システム１７０に結合するネットワークリンク（たとえばファイバチャネルリンク）１２１を介して、バックアップ記憶媒体１２６上にデータをバックアップしてもよい。以下の説明は主としてエミュレートされた媒体へのデータのバックアップに言及しているが、原理は、エミュレートされた媒体からのバックアップデータの復元にも当てはまる。上述のように、ホストコンピュータ１２０とエミュレートされた媒体１３４との間のデータの流れは、バックアップ／復元アプリケーションによって制御され得る。バックアップ／復元アプリケーションの観点からは、データが実際にはエミュレートされた媒体の物理的バージョン上にバックアップ中であるかのように見え得る。
【００５５】
図４を参照して、記憶システムソフトウェア１５０は、エミュレートされた媒体を表わし、ホストコンピュータ１２０上に常駐するバックアップ／復元アプリケーション１４０とバックアップ記憶媒体１２６との間にインターフェイスを提供する、１つ以上の論理的抽象層を含んでいてもよい。ソフトウェア１５０は、バックアップ／復元アプリケーション１４０からテープフォーマットデータを受付け、そのデータを、ランダムアクセスディスク（たとえばハードディスク、光ディスクなど）への記憶にとって好適なデータに変換する。一例では、このソフトウェア１５０は記憶システムコントローラ１２２のプロセッサ１２７上で実行され、メモリ１２９に記憶されてもよい（図３参照）。
【００５６】
一実施例によれば、ソフトウェア１５０は、テープ、テープドライブ、およびテープドライブとの間でテープを移送するために使用されるロボット機構のＳＣＳＩエミュレーションを提供し得る、ここに仮想テープライブラリ（virtual tape library：ＶＴＬ）層１４２と呼ばれる層を含んでいてもよい。バックアップ／復元アプリケーション１４０は、たとえば矢印１４４で表わされるＳＣＳＩコマンドを用いて、ＶＴＬ１４２と通信してもよい（たとえばエミュレートされた媒体にデータをバックアップするか書込んでもよい）。このため、ＶＴＬは、他の記憶システムソフトウェアおよびハードウェアとバックアップ／復元アプリケーションとの間にソフトウェアインターフェイスを形成してもよく、エミュレートされた記憶媒体１３４（図２）をバックアップ／復元アプリケーションに提示し、エミュレートされた媒体が、バックアップ／復元アプリケーションには、従来のリムーバブルバックアップ記憶媒体に見えるようにする。
【００５７】
ここにファイルシステム層１４６と呼ばれる第２のソフトウェア層が、（ＶＴＬで表わされた）エミュレートされた記憶媒体と物理的バックアップ記憶媒体１２６との間にインターフェイスを提供してもよい。一例では、ファイルシステム１４６は、バックアップ記憶媒体１２６との間でデータの読出および書込を行なうために、たとえば矢印１４８で表わされるＳＣＳＩコマンドを用いてバックアップ記憶媒体１２６と通信する、小型のオペレーションシステムとして作用する。
【００５８】
一実施例では、ＶＴＬは包括的なテープライブラリサポートを提供しており、どのＳＣＳＩメディアチェンジャもサポートしてもよい。エミュレートされたテープ装置は、ＩＢＭ  ＬＴＯ−１およびＬＴＯ−２テープ装置、クォンタム  スーパーＤＬＴ３２０テープ装置、クォンタム  Ｐ３０００テープライブラリシステム、またはストレージテック（STORAGETEK）  Ｌ１８０テープライブラリシステムを含み得るが、それらに限定されない。ＶＴＬ内では、各仮想カートリッジは、データが記憶されるにつれて動的に成長し得るファイルである。これは、サイズが固定された従来のテープカートリッジとは対照的である。図５に関して以下にさらに説明するように、１つ以上の仮想カートリッジがシステムファイルに記憶されてもよい。
【００５９】
図５は、この発明の一実施例に従ったシステムファイル２００を示す、ファイルシステムソフトウェア１４６内のデータ構造の一例を示す。この実施例では、システムファイル２００は、ヘッダ２０２とデータ２０４とを含む。ヘッダ２０２は、そのシステムファイルに記憶された仮想カートリッジの各々を識別する情報を含んでいてもよい。ヘッダは、仮想カートリッジが書込保護されているかどうか、仮想カートリッジの作成日／修正日などといった情報も含有していてもよい。一例では、ヘッダ２０２は、各仮想カートリッジを固有に識別し、各仮想カートリッジを、記憶システムに記憶された他の仮想カートリッジから区別する情報を含む。たとえば、この情報は、仮想カートリッジの名前および識別番号（テープがロボット機構によって識別され得るよう、物理的テープ上に通常存在するバーコードに対応）を含んでいてもよい。ヘッダ２０２はまた、各仮想カートリッジの容量、最終修正日といった追加情報も含んでいてもよい。
【００６０】
この発明の一実施例によれば、ヘッダ２０２のサイズは、記憶されるデータのタイプ（たとえば、１つ以上のホストコンピュータシステムからのデータバックアップを表わす仮想カートリッジ）と、システムが追跡可能なそのようなデータ（たとえば仮想カートリッジ）の明確なセットの数とを反映させるよう、最適化されてもよい。たとえば、通常テープ記憶システムにバックアップされるデータは、典型的には、多数のシステムファイルおよびユーザファイルを表わすより大きなデータセットによって特徴付けられる。データセットが非常に大きいため、追跡されるべき個別のデータファイルの数はそれに応じて小さい。したがって、一実施例では、ヘッダ２０２のサイズは、データをたくさん記憶しすぎて十分に追跡できないこと（すなわち、ヘッダが大きすぎること）と十分な数のカートリッジ識別子を記憶する空間がないこと（すなわち、ヘッダが小さすぎること）との折り合いに基づいて、選択されてもよい。例示的な一実施例では、ヘッダ２０２は、システムファイル２００の最初の３２ＭＢを利用する。しかしながら、ヘッダ２０２がシステム要求および特性に基づいて異なるサイズを有してもよいこと、および、システム要求および容量に依存して、ヘッダ２０２について異なるサイズを選択してもよいことが、認識されるべきである。
【００６１】
バックアップ／復元アプリケーションの観点からは、仮想カートリッジが、すべて同じ属性および特徴を有する物理的テープカートリッジとして見える、ということが認識されるべきである。すなわち、バックアップ復元アプリケーションには、仮想カートリッジは順次書込まれたテープのように見える。しかしながら、好ましい一実施例では、仮想カートリッジに記憶されたデータは、バックアップ記憶媒体１２６上に順次フォーマットで記憶されていない。むしろ、仮想カートリッジに書込まれているかのように見えるデータは、実際には、ランダムにアクセス可能なディスクフォーマットのデータとして、記憶システムのファイルに記憶されている。バックアップ／復元アプリケーションがカートリッジフォーマットのデータの読出および書込ができるよう、記憶されたデータを仮想カートリッジにリンクするためにメタデータが使用される。
【００６２】
このため、好ましい一実施例の概観では、ユーザデータおよび／またはシステムデータ（ここに「ファイルデータ」と呼ぶ）が、ホストコンピュータ１２０から記憶システム１７０によって受信され、バックアップ記憶媒体１２６を構成するディスクアレイ上に記憶される。記憶システムのソフトウェア１５０（図４参照）および／またはハードウェアは、以下により詳細に説明するように、このファイルデータをシステムファイルの形式でバックアップ記憶媒体１２６に書込む。バックアップされたユーザファイルおよび／またはシステムファイルの属性を追跡するために、データファイルが記憶システムコントローラによってバックアップされるにつれてメタデータが抽出される。たとえば、各ファイルについてのそのようなメタデータは、ファイル名、ファイルの作成日または最終修正日、ファイルに関する暗号化情報、および他の情報を含んでいてもよい。加えて、各ファイルについて、ファイルを仮想カートリッジにリンクするメタデータが、記憶システムによって作成されてもよい。そのようなメタデータを用いて、ソフトウェアはホストコンピュータにテープカートリッジのエミュレーションを提供する。しかしながら、以下に説明するように、ファイルデータは実際にはテープフォーマットで記憶されておらず、むしろシステムファイルに記憶されている。データを順次カートリッジフォーマットではなくシステムファイルに記憶させることは、ある特定のファイルを見つけるために順次データを走査する必要なく、個々のファイルへの迅速で効率的でランダムなアクセスを可能にする点で、有利であり得る。
【００６３】
上述のように、一実施例によれば、ファイルデータ（すなわちユーザデータおよび／またはシステムデータ）はシステムファイルとしてバックアップ記憶媒体に記憶され、各システムファイルはヘッダとデータとを含み、データは実ユーザファイルおよび／またはシステムファイルである。各システムファイル２００のヘッダ２０２は、ユーザファイルおよび／またはシステムファイルを仮想カートリッジにリンクするメタデータを含有するテープディレクトリ２０６を含む。ここに使用されるような「メタデータ」という用語は、ユーザファイルデータまたはシステムファイルデータではなく、実ユーザデータおよび／またはシステムデータの属性を記述するデータを指す。一例によれば、テープディレクトリは、仮想カートリッジ上のデータのレイアウトを、バイトレベルに至るまで規定してもよい。
【００６４】
一実施例では、テープディレクトリ２０６は、図６に示すようなテーブル構造を有する。テーブルは、記憶された情報のタイプ（たとえばデータ、ファイルマーカ（ＦＭ）など）に関する列２２０と、使用されたディスクブロックのバイト単位のサイズに関する列２２２と、ファイルデータを記憶するディスクブロックの数を数える列２２４とを含む。このため、テープディレクトリは、コントローラが、バックアップ記憶媒体１２６に記憶されたどのデータファイルにも（順次とは対照的に）ランダムにアクセスできるようにする。たとえば、図６を参照して、データファイル２２６は、仮想テープ上で迅速に位置を特定され得る。なぜなら、テープディレクトリは、ファイル２２６のデータがシステムファイル２００の最初から１ブロックで始まることを示しているためである。この１ブロックにはサイズがない。なぜなら、それはファイルマーカ（ＦＭ）に対応しているためである。ファイルマーカはシステムファイルには記憶されていない。すなわち、ファイルマーカはゼロデータに対応している。ファイルマーカは従来のテープによって使用されるため、テープディレクトリはファイルマーカを含んでおり、バックアップ／復元アプリケーションはこのため、データファイルとともにファイルマーカを書込み、仮想カートリッジを閲覧した場合にファイルマーカを見ることを期待する。したがって、ファイルマーカはテープディレクトリにおいて追跡されている。しかしながら、ファイルマーカはどのデータも表わしておらず、したがってシステムファイルのデータ区分には記憶されていない。このため、ファイル２２６のデータは、矢印２０５（図５参照）で示すシステムファイルのデータ区分の最初で始まり、長さが１０２４バイトである（すなわち、サイズが１０２４バイトの１つのディスクブロック）。データの量、すなわちデータファイルのサイズに依存して、他のファイルデータが１０２４バイト以外のブロックサイズで記憶されてもよい、ということが認識されるべきである。たとえば、より大きなデータファイルは、効率のため、より大きなデータブロックサイズを用いて記憶されてもよい。
【００６５】
一例では、テープディレクトリは、記憶システム上にバックアップされた各データファイルに関連付けられた「ファイル記述子」に含まれていてもよい。ファイル記述子は、記憶システム上に記憶されたデータファイル２０４に関するメタデータを含む。一実施例では、ファイル記述子は、多くのＵＮＩＸ（登録商標）ベースのシステムが使用するテープアーカイブ（ｔａｒ）フォーマットといった標準化フォーマットに従って実現されてもよい。各ファイル記述子は、対応するユーザファイルの名前、ユーザファイルが作成／修正された日付、ユーザファイルのサイズ、ユーザファイルに対するアクセス制約などの情報を含んでいてもよい。ファイル記述子に記憶された追加情報は、データのコピー元であるディレクトリ構造を記述する情報をさらに含んでいてもよい。このため、以下により詳細に説明するように、ファイル記述子は、対応するデータファイルについての検索可能なメタデータを含んでいてもよい。
【００６６】
バックアップ／復元アプリケーションの観点からは、どの仮想カートリッジも、複数のデータファイルと対応するファイル記述子とを含んでいてもよい。記憶システムソフトウェアの観点からは、データファイルは、たとえばある特定のバックアップ作業にリンクされ得るシステムファイルに記憶される。たとえば、ある特定の時間に１つのホストコンピュータによって実行されたバックアップが、１つ以上の仮想カートリッジに対応し得る１つのシステムファイルを生成してもよい。仮想カートリッジはこのため、どのようなサイズであってもよく、より多くのユーザファイルが仮想カートリッジ上に記憶されるにつれて動的に成長し得る。
【００６７】
図２を再度参照して、上述のように、記憶システム１７０は、合成フルバックアップソフトウェアアプリケーション２４０を含んでいてもよい。一実施例では、ホストコンピュータ１２０は、エミュレートされた媒体１３４上にデータをバックアップして、１つ以上の仮想カートリッジを形成する。いくつかのコンピューティング環境では、「フルバックアップ」、すなわち、ネットワークの一次記憶システム（図１参照）上に記憶された全データのバックアップコピーが、周期的に（たとえば毎週）遂行されてもよい。コピーされるべきデータが大量なため、この処理は通常、非常に長い。したがって、多くのコンピューティング環境では、連続するフルバックアップ間で、増分バックアップと呼ばれる追加のバックアップが、たとえば毎日行なわれてもよい。増分バックアップとは、（増分であれフルであれ）最後のバックアップが実行されてから変更されたデータのみをバックアップする処理である。典型的には、この変更されたデータは、往々にしてファイルのデータのほとんどが変更されなかったとしても、ファイルベースでバックアップされる。このため、増分バックアップは通常、フルバックアップよりもはるかに小さく、したがってはるかに迅速に遂行される。多くの実施例は通常、フルバックアップを週に１回行ない、増分バックアップをその週の間毎日行なうが、そのような時間枠を使用することは要求されていない、ということが認識されるべきである。したがって、或る環境は増分バックアップを日に数回必要とするかもしれない。この発明の原理は、フルバックアップ（およびオプションで増分バックアップ）を用いるあらゆる環境に、それらがどれくらいの頻度で行なわれるかにかかわらず、当てはまる。フルバックアップおよび／または増分バックアップを頻繁に実行することは、大量の冗長データが記憶システム１７０に記憶されることをもたらす場合がある。この冗長データに関連する負担を緩和するために、記憶システム１７０は、以下にさらに説明するデータ重複排除システムおよび処理を利用してもよい。
【００６８】
フルバックアップ手順の最中、ホストコンピュータは、複数のデータファイルを備えるバックアップデータを含む１つ以上の仮想カートリッジを作成してもよい。明確性のため、以下の説明は、フルバックアップが１つの仮想カートリッジのみを生成すると仮定する。しかしながら、フルバックアップは２つ以上の仮想カートリッジを生成し得ること、およびこの発明の原理は任意の数の仮想カートリッジに当てはまることが、認識されるべきである。
【００６９】
一実施例によれば、１つの既存のフルバックアップデータセットと１つ以上の増分バックアップデータセットとから合成フルバックアップデータセットを作成するための方法が提供される。この方法は、周期的な（たとえば週ごとの）フルバックアップを行なう必要性をなくすことができ、それによりユーザのかなりの時間およびネットワーク資源を節約する。さらに、当業者には公知であるように、１つのフルバックアップおよび１つ以上の増分バックアップに基づいてデータを復元することは、時間がかかる処理であり得る。なぜなら、たとえば、あるファイルの最新バージョンがある増分バックアップに存在する場合、バックアップ／復元アプリケーションは通常、最後のフルバックアップに基づいてそのファイルを復元し、次に増分バックアップから変更を適用する。したがって、合成フルバックアップを提供することは、１つのフルバックアップおよび１つ以上の増分バックアップから複数回の復元を行なう必要なく、バックアップ復元アプリケーションが合成フルバックアップのみに基づいてより迅速にデータファイルを復元できるようにする、という追加の利点を有し得る。ここに使用されるような「最新バージョン」という表現は一般に、データファイルの最新コピー（すなわち、データファイルが保存された最新時間）を、そのファイルが新しいバージョン番号を有しているか否かにかかわらず、指す。「バージョン」という用語は、ここでは一般に、何らかの方法で修正され、または多数回保存されたかもしれない同じファイルのコピーを指すために使用される。
【００７０】
図７を参照すると、合成フルバックアップ手順の概略図が示されている。ホストコンピュータ１２０は、第１の時点、たとえば週末にフルバックアップ２３０を実行してもよい。ホストコンピュータ１２０は次に、その後の増分バックアップ２３２ａ、２３２ｂ、２３２ｃ、２３２ｄ、２３２ｅを、たとえばその週の間毎日実行してもよい。記憶システム１７０は、次に、以下に説明するように、合成フルバックアップデータセット２３４を作成してもよい。
【００７１】
一実施例によれば、記憶システム１７０は、ここに合成フルバックアップアプリケーション２４０（図３参照）と呼ばれるソフトウェアアプリケーションを含んでいてもよい。合成フルバックアップアプリケーション２４０は、記憶システムコントローラ１２２（図２参照）上で実行されてもよく、またはホストコンピュータ１２０上で実行されてもよい。合成フルバックアップアプリケーションは、合成フルバックアップデータセット２３４を作成するために必要なソフトウェアコマンドおよびインターフェイスを含む。一例では、合成フルバックアップアプリケーションは、合成フルバックアップデータセット２３４を含む新しい仮想カートリッジを生成するために、フルバックアップデータセット２３０および増分バックアップデータセット２３２の各々のメタデータ表現の論理的併合を行なってもよい。
【００７２】
たとえば、図８を参照して、既存のフルバックアップデータセットは、ユーザファイルＦ１、Ｆ２、Ｆ３、およびＦ４を含んでいてもよい。第１の増分バックアップデータセット２３２ａは、Ｆ２の修正バージョンであるユーザファイルＦ２′と、Ｆ３の修正バージョンであるＦ３′とを含んでいてもよい。第２の増分バックアップデータセット２３２ｂは、Ｆ１の修正バージョンであるユーザファイルＦ１′と、Ｆ２のさらに修正されたバージョンであるＦ２″と、新しいユーザファイルＦ５とを含んでいてもよい。したがって、フルバックアップデータセット２３０と２つの増分データセット２３２ａおよび２３２ｂとの論理的併合から形成された合成フルバックアップデータセット２３４は、各ユーザファイルＦ１、Ｆ２、Ｆ３、Ｆ４、およびＦ５の最終バージョンを含む。図８に示すように、合成フルバックアップデータセットはしたがって、ユーザファイルＦ１′、Ｆ２″、Ｆ３′、Ｆ４、およびＦ５を含む。
【００７３】
図３および図４を再度参照して、ファイルシステムソフトウェア１４６は、エミュレートされた媒体１３４上に記憶された各ユーザファイルに関するメタデータを記憶する論理メタデータキャッシュ２４２を作成してもよい。論理メタデータキャッシュは物理的データキャッシュである必要はないが、その代わり、記憶媒体１２６上に記憶されたデータの検索可能な集合体であり得る、ということが認識されるべきである。別の例では、論理メタデータキャッシュ２４２は、データベースとして実現可能である。メタデータがデータベースに記憶されている場合、従来のデータベースコマンド（たとえばＳＱＬコマンド）を用いて、合成フルバックアップデータセットを作成するためにフルバックアップセットと１つ以上の増分バックアップデータセットとの論理的併合を行なうことができる。
【００７４】
別の実施例では、メタデータの一部がデータベースに記憶され、別の一部が記憶システムファイルに記憶されてもよい。たとえば、バックアップデータセット名とそれが備えるデータオブジェクトとを含むバックアップデータセットメタデータが、従来のデータベースに含まれていてもよく、一方、たとえばデータオブジェクトがデータファイル、データファイルサイズ、機密保護情報、および一次ストレージにおける位置である場合などにおいてデータオブジェクトに特有のメタデータが、記憶システムファイルに含まれていてもよい。このようにメタデータを記憶することは、問合せがしばしばあったデータを従来のデータベースから柔軟に取出すことを可能にし、また、それほど頻繁に問合されなかったデータを記憶システムファイルにより迅速に記憶させることによってシステム拡張性を促進する。
【００７５】
上述のように、エミュレートされた媒体１３４上に記憶された各データファイルは、バックアップ記憶媒体１２６上のファイルの位置を含む、データファイルに関するメタデータを含むファイル記述子を含んでいてもよい。一実施例では、ホストコンピュータ１２０上で実行中のバックアップ／復元アプリケーションは、エミュレートされた媒体１３４上にデータをストリーミングテープフォーマットで記憶させる。このテープフォーマットを表わすデータ構造２５０の一例を、図９に示す。上述のように、システムファイルデータ構造はヘッダを含み、それは、データファイル用のファイル記述子、ファイルの作成日および／または修正日、機密保護情報、ファイルの入手元であるホストシステムのディレクトリ構造、およびファイルを仮想カートリッジにリンクする他の情報といった、データファイルについての情報を含んでいてもよい。これらのヘッダは、ホストコンピュータ、一次記憶システムなどからバックアップ（コピー）された実ユーザファイルおよびシステムファイルであるデータ２５４に関連付けられている。システムファイルデータ構造はまた、次のヘッダをブロック境界に適切に整列させ得るパッド２５６をオプションで含んでいてもよい。
【００７６】
図９に示すように、一例では、ヘッダデータは、迅速な検索と、さもなければ順次であるテープデータフォーマットへのランダムアクセスとを可能にするよう、論理メタデータキャッシュ２４２に位置する。記憶システムコントローラ１２２に対してファイルシステムソフトウェア１４６を使用して実現された、論理メタデータキャッシュの使用は、エミュレートされた媒体１３４上に記憶された線形で順次のテープデータフォーマットを、バックアップ記憶媒体１２６を構成する物理的ディスク上に記憶されたランダムアクセスデータフォーマットに変換することを可能にする。論理メタデータキャッシュ２４２は、データファイル用のファイル記述子を含むヘッダ２５２と、以下により詳細に説明するようにデータファイルへのアクセスを制御するために使用され得る機密保護情報と、仮想カートリッジおよびバックアップ記憶媒体１２６上のデータファイルの実際の位置へのポインタ２５７とを記憶している。一実施例では、論理メタデータキャッシュは、フルバックアップデータセット２３０および各増分データセット２３２においてバックアップされた全データファイルに関するデータを記憶する。
【００７７】
一実施例によれば、合成フルバックアップアプリケーションソフトウェア２４０は、論理メタデータキャッシュに記憶された情報を用いて、合成フルバックアップデータセットを作成する。この合成フルバックアップデータセットは次に、合成フルバックアップアプリケーション２４０によって作成された合成仮想カートリッジにリンクされる。バックアップ／復元アプリケーションには、合成フルバックアップデータセットはこの合成仮想カートリッジ上に記憶されているかのように見える。上述のように、合成フルバックアップデータセットは、既存のフルバックアップデータセットと増分バックアップデータセットとの論理的併合を行なうことによって作成され得る。この論理的併合は、既存のフルバックアップデータセットおよび増分バックアップデータセットの各々に含まれる各データファイルを比較すること、および図８を参照して上述したように、各ユーザファイルの最新バージョンの複合体を作成することを含んでいてもよい。
【００７８】
一実施例によれば、合成仮想カートリッジ２６０は、図１０に示すように、他の仮想カートリッジ、具体的には既存のフルバックアップデータセットおよび増分バックアップデータセットを含む仮想カートリッジ上のデータファイルの位置を指すポインタを含む。図８に関して上に挙げた例を考慮すると、合成仮想カートリッジ２６０は、（既存のフルバックアップデータセットがＦ４の最終バージョンを含んでいたため）ユーザファイルＦ４の、仮想カートリッジ２６２上の既存のフルバックアップデータセットにおける位置、および、たとえばユーザファイルＦ３′の、仮想カートリッジ２６４上の増分データセット２３２ａにおける位置を（矢印２６８で示すように）指す、ポインタ２６６を含む。
【００７９】
合成仮想カートリッジは、ポインタ２６６が指すデータを含む全仮想カートリッジの識別番号（およびオプションで名前）を含むリスト２７０も含む。この従属的なカートリッジリスト２７０は、実データの記憶場所を追跡し続けるといった参照のために、また従属的な仮想カートリッジが消去されないようにするために、重要であり得る。この実施例では、合成フルバックアップデータセットは実ユーザファイルを含んでおらず、むしろ、バックアップ記憶媒体１２６上でのユーザファイルの位置を示す１組のポインタを含んでいる。したがって、（他の仮想カートリッジ上に記憶された）実ユーザファイルが削除されないようにすることが望ましい場合がある。これは、データを含む仮想カートリッジの記録（従属的カートリッジリスト２７０）をつけて、それらの仮想カートリッジの各々が上書きされたり削除されたりしないよう保護することによって、一部遂行され得る。合成仮想カートリッジはまた、合成仮想カートリッジのサイズ、バックアップ記憶媒体１２６上のその位置といったカートリッジデータ２７２を含んでいてもよい。加えて、合成仮想カートリッジは、識別番号および／または名前２７４を有していてもよい。
【００８０】
別の実施例によれば、合成仮想カートリッジは、ポインタと記憶された実ユーザファイルとの組合せを含んでいてもよい。図１１を参照して、一例では、合成仮想カートリッジは、仮想カートリッジ２６２上の既存のフルバックアップデータセット２３０におけるデータファイル（図９を参照して上述したように、最終バージョン）の位置を指すポインタ２６６を含む。合成仮想カートリッジはまた、矢印２８０によって示すように、増分データセット２３２からコピーされた実データファイルを含むデータ２７８を含んでいてもよい。このように、合成フルバックアップデータセット２７６の作成後に増分バックアップデータセットを削除することが可能であり、それにより記憶空間を節約する。合成仮想カートリッジは、全ユーザファイルのコピーというよりもむしろ、すべてのまたは一部のポインタを含むため、比較的小さい。
【００８１】
合成フルバックアップはポインタと記憶されたファイルデータとの任意の組合せを含んでいてもよく、上に挙げた例に限定されない、ということが認識されるべきである。たとえば、合成フルバックアップは、或る増分バックアップおよび／またはフルバックアップ上に記憶されたいくつかのファイルについてのデータファイルへのポインタを含んでいてもよく、他の既存のフルバックアップおよび／または増分バックアップからコピーされた、記憶されたファイルデータを含んでいてもよい。さらに、これに代えて、ポインタを含まないものの、適切なフルバックアップおよび／または増分バックアップからコピーされた実ファイルデータの最終バージョンを含む、以前のフルバックアップおよび関連する増分バックアップに基づいて、合成フルバックアップが作成されてもよい。
【００８２】
一実施例では、合成フルバックアップアプリケーションソフトウェアは、各データファイルの最終バージョンがどこに位置するかを判断するために、既存のフルバックアップデータセットおよび増分バックアップデータセットの各々について、ユーザおよびシステムファイルメタデータを比較できるようにする差分アルゴリズムを含んでいてもよい。たとえば、差分アルゴリズムは、異なるバックアップセットにおける同じデータファイルの異なるバージョン間で、作成日および／または修正日、バージョン番号（利用可能な場合）などを比較し、データファイルの最新バージョンを選択するために使用可能である。しかしながら、ユーザは、ユーザファイルを開き、そのファイル内のデータを実際に変更することなくそのファイルを保存する（それによりその修正日を変更する）ことが、しばしばある。したがって、システムは、システムファイルまたはユーザファイル内のデータを分析して、データが実際に変更されたかどうかを判断し得る、より進んだ差分アルゴリズムを実現してもよい。そのような差分アルゴリズムの変形、および他のタイプの比較アルゴリズムは、当業者には公知であり得る。加えて、上述のように、メタデータがデータベースフォーマットで記憶されている場合、ＳＱＬコマンドなどのデータベースコマンドも、論理的併合を行なうために使用可能である。この発明は、合成フルバックアップデータセットを適正に作成するよう、各ユーザファイルの最新または最後のバージョンが、比較されたすべての既存のバックアップセットから選択されることを確実にするために、そのようなアルゴリズムのどれを適用してもよい。
【００８３】
当業者には理解されるはずであるように、合成フルバックアップアプリケーションは、ホストコンピュータが物理的フルバックアップを実行することを必要とせずに、フルバックアップデータセットが作成され、利用可能となることを可能にする。これは、データをバックアップ記憶システムに転送するプロセッサオーバーヘッドをホストコンピュータに課すことを回避するだけでなく、合成フルバックアップアプリケーションが記憶システム上で実行される実施例では、それはネットワーク帯域幅の利用を著しく減少させる。図７に示すように、第１の合成フルバックアップデータセット２３４とその後の増分バックアップデータセット２３６とを用いて、さらに別の合成フルバックアップデータセットが作成されてもよい。これは、頻繁に修正されないファイルまたはオブジェクトは頻繁にコピーされないという点で、著しい時間的利点を提供し得る。代わりに、合成フルバックアップデータセットは、１回しかコピーされなかったファイルへのポインタを保持してもよい。
【００８４】
この発明に従ったいくつかの局面は、データオブジェクトから冗長データを除去する拡張可能な重複排除システムに向けられている。たとえば、いくつかの実施例によれば、重複排除システムは、データに含まれる予め処理されたメタデータを用いてデータ重複排除を管理するよう構成される。より特定的には、実施例は、重複排除されるべきデータ内の特定のメタデータ値の有無に基づいて、重複排除ドメインにデータを誘導してもよい。これらの重複排除ドメインの各々は、特定のタイプのデータを効率的に重複排除するよう調整された特定の重複排除手法を採用してもよい。
【００８５】
たとえば、図１４は、拡張可能な重複排除サービスを提供するよう特別に構成された重複排除誘導子１４００のブロック図を表わす。重複排除誘導子１４００は、さまざまなコンピュータシステム上で、ソフトウェア、ハードウェア、またはそれらの組合せとして実現されてもよい。たとえば、一実施例によれば、重複排除誘導子１４００は、図３に関して上述した記憶システムコントローラ１２２の一部として実現される。図１４に示す重複排除誘導子１４００の特定の構成は、例示のためにのみ使用され、限定的であるよう意図されてはない。なぜなら、この発明の実施例は、この発明の範囲から逸脱することなく、さまざまな構成で設計され得るためである。ここに説明される例のいくつかは単一の重複排除誘導子１４００を有する実施例に焦点を当てているが、他の実施例は、この発明の範囲から逸脱することなく、２つ以上の重複排除誘導子を含んでいてもよい。
【００８６】
図１４を参照して、重複排除誘導子１４００は、データインターフェイス１４０２と、誘導エンジン１４０４と、重複排除ドメインデータベース１４０６と、重複排除ドメイン１４０８、１４１０および１４１２と、重複排除データベースインターフェイス１４１４とを含む。図示された例では、データインターフェイス１４０２は、１つ以上のデータ源と情報を交換する、たとえば供給および受信するよう構成された、実行可能なコード、データ、データ構造またはオブジェクトなどの機能を含む。また、図示された例では、データインターフェイス１４０２は、誘導エンジン１４０４と双方向に通信可能である。
【００８７】
図示されているように、誘導エンジン１４０４は、データインターフェイス１４０２、重複排除ドメインデータベース１４０６、ならびに重複排除ドメイン１４０８、１４１０および１４１２と、さまざまな情報を交換可能である。重複排除ドメインデータベース１４０６は次に、誘導エンジン１４０４および重複排除データベースインターフェイス１４１４の双方と、データを通信してもよい。重複排除データベースインターフェイス１４１４は、さまざまな外部実体と情報を交換するよう構成された機能を有する。これらの外部実体は、とりわけ、ユーザおよび／またはシステムを含んでいてもよい。図示された例では、重複排除データベースインターフェイス１４１４はまた、重複排除ドメインデータベース１４０６と情報を交換可能である。重複排除ドメイン１４０８、１４１０および１４１２の各々は、誘導エンジン１４０４およびさまざまな外部実体の双方と情報を交換するよう構成された機能を含む。たとえば、一実施例では、重複排除ドメイン１４０８、１４１０および１４１２は、図３に関して説明したバックアップ記憶媒体１２６といったデータ記憶媒体と、情報を交換可能である。
【００８８】
情報は、任意の手法を用いて、ここに説明された要素、構成要素およびサブシステム間を流れてもよい。そのような手法は、たとえば、ＴＣＰ／ＩＰなどの標準プロトコルを用いてネットワークを介して情報を渡すこと、メモリのモジュール間で情報を渡すこと、およびファイル、データベース、または何らかの他の不揮発性記憶装置に書込むことによって情報を渡すことを含む。加えて、情報のコピーの代わりに、またはそれに加えて、情報へのポインタまたは他の参照が送信および受信されてもよい。逆に、情報へのポインタまたは他の参照に代えて、またはそれに加えて、情報が交換されてもよい。この発明の範囲から逸脱することなく、情報を通信するための他の手法およびプロトコルが使用されてもよい。
【００８９】
図１４に示す例では、重複排除ドメインデータベース１４０６は、１つ以上の重複排除ドメインの属性を記述する情報を記憶し、取出すよう構成された機能を含む。この情報の例は、各重複排除ドメインについて、その重複排除ドメインに属する、または割当てられるコンピューティング資源の量、その重複排除ドメインによって使用されるある特定の重複排除方法、およびその重複排除ドメインに関連付けられた１つ以上のデータオブジェクト特性を含んでいてもよい。重複排除ドメインデータベース１４０６はまた、たとえばハッシュテーブルといった重複排除ドメインによって使用される重複排除方法に関連付けられたアーチファクトを保持してもよい。
【００９０】
重複排除ドメインデータベース１４０６は、フラットファイル、インデックスファイル、階層型データベース、リレーショナルデータベース、またはオブジェクト指向データベースを含む、コンピュータ読取可能媒体上に情報を記憶可能な任意の論理的構成の形式を取っていてもよい。データは、固有キー関係および外部キー関係ならびにインデックスを用いてモデル化されてもよい。固有キー関係および外部キー関係ならびにインデックスは、データ完全性とデータ交換性能の双方を確実にするために、さまざまなフィールドおよびテーブル間に確立されてもよい。
【００９１】
図示された例では、データインターフェイス１４０２は、さまざまな形式およびフォーマットの情報をさまざまなデータ源と交換するよう構成された機能を含む。これらのデータ源は、図１に関して上述した一次記憶装置１０６といった、重複排除処理を受ける情報の提供元を含んでいてもよい。データインターフェイス１４０２は、データフォーマットの中でもとりわけ、データの離散ブロック、連続したデータストリーム、および複数の記憶位置から多重化されたデータストリームを受信可能である。加えて、データインターフェイス１４０２はデータを、インラインで、すなわち重複排除され記憶されるべきデータを、データインターフェイス１４０２を含むデータ記憶システムが受信している間に、受信可能であり、またはオフラインで、すなわち重複排除されるべきデータをデータ記憶装置が既に記憶した後で、受信可能である。
【００９２】
図示された例では、重複排除ドメイン１４０８、１４１０および１４１２は各々、１つ以上の個々の重複排除ドメインを含む。重複排除ドメインは、データオブジェクトに対して重複排除処理を行なうよう構成された機能を有するソフトウェアおよび／またはハードウェアを含んでいてもよい。各重複排除ドメインは、専用のデータストレージを含んでいてもよい。図示された例では、各重複排除ドメインは、いくつかのデータオブジェクトに共通の１つ以上の特性に関連付けられ得る。加えて、この例では、各重複排除ドメインは、ある特定の重複排除方法を採用可能である。これらの特色により、個々の重複排除ドメインは、関連するデータオブジェクトにとって効果の高い重複排除環境を提供できるようになる。
【００９３】
たとえば、一実施例によれば、重複排除ドメイン１４０８、１４１０および１４１２は各々、以下に説明する処理１２００といった内容認識重複排除処理を採用する。一方、他の実施例では、重複排除ドメイン１４０８がハッシュ指紋処理を利用し、重複排除ドメイン１４１０がパターン認識処理を使用し、１４１２が処理１２００を採用してもよい。このように、実施例は、ある特定の重複排除方法、または重複排除方法の構成に限定されない。
【００９４】
さまざまな実施例では、誘導エンジン１４０４は、データオブジェクトを、そのデータオブジェクトの１つ以上の特性に関連付けられた重複排除ドメインに誘導するよう構成された機能を含む。一実施例によれば、これらの特性は、データオブジェクトに関連付けられたメタデータを含む。図示された実施例では、誘導エンジン１４０４は、データインターフェイス１４０２からデータオブジェクトを受信可能である。誘導エンジン１４０４は、重複排除ドメイン１４０８、１４１０および１４１２のうちのどれが、受信されたデータオブジェクトを重複排除するのに好適であるかを選択可能である。図示されているように、誘導エンジン１４０４はまた、データオブジェクトを選択された重複排除ドメインに誘導可能である。誘導エンジン１４０４はまた、重複排除ドメイン１４０８、１４１０および１４１２によって行なわれる重複排除活動の結果を評価し、この評価に基づいて誘導エンジンを評価して、いくつかの重複排除ドメインにまたがる冗長データを単一の重複排除ドメインに統合するよう構成された機能を有しており、それにより追加のコンピューティング資源を節約する。
【００９５】
さまざまな実施例では、誘導エンジン１４０４は、離散データブロック、データストリーム、および多重化データストリームを含むさまざまな形式およびフォーマットで、データをデータインターフェイス１４０２から受信するよう構成された機能を含む。これらの実施例では、誘導エンジン１４０４は、予め処理されたメタデータを受信データから抽出可能である。このメタデータは、論理メタデータキャッシュに関して上述したタイプの情報を含んでいてもよく、このため、いくつかの実施例では、メタデータの中でもとりわけ、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、ならびに、日付および時間といった時系列情報を含んでいてもよい。
【００９６】
さらに、いくつかの実施例では、誘導エンジン１４０４は、抽出されたメタデータに基づいて、データストリームまたは多重化データストリーム内の整列点を識別するよう構成された機能を有する。これらの実施例では、誘導エンジン１４０４は、データオブジェクトを作成するために、これらの整列点に沿ってデータストリームまたは多重化データストリームを区分可能である。また、いくつかの実施例では、誘導エンジン１４０４は、メタデータをデータオブジェクトに関連付けることができる。この関連付けられたメタデータは、とりわけ、データオブジェクトを作成するために使用されるメタデータを含んでいてもよい。
【００９７】
たとえば、一実施例によれば、誘導エンジン１４０４は、データオブジェクトがある特定のサーバのその後のバックアップであることに基づいて、データストリームをデータオブジェクトに整列させることができる。同様に、別の実施例では、誘導エンジン１４０４は、同じファイル名およびディレクトリ位置を有するファイルを含むデータオブジェクトを整列させることができる。さらに別の実施例では、誘導エンジン１４０４は、データオブジェクトを作成し、データオブジェクトを作成するためにバックアップ／復元プログラムによって実行されたポリシーに基づいて、または、たとえばオラクル（Oracle）データベースによって作成されたデータといった、どのタイプのデータがデータオブジェクトに含まれているかに基づいて、メタデータを関連付けることができる。
【００９８】
一実施例によれば、誘導エンジン１４０４は、データオブジェクトに関連付けられたメタデータを評価することによってデータオブジェクトを誘導するよう構成された機能を有する。この実施例では、誘導エンジン１４０４は、データオブジェクトに関連付けられたメタデータを、個々の重複排除ドメインに関連付けられたデータオブジェクト特性と比較することができる。十分な品質の一致が見つかった場合、誘導エンジン１４０４は、さらなる処理のためにデータオブジェクトを一致する重複排除ドメインに転送可能である。一実施例によれば、誘導エンジン１４０４は、データオブジェクトのコピーを重複排除ドメインに提供するか、またはポインタといったデータオブジェクトへの参照を重複排除ドメインに提供することによって、データオブジェクトを転送可能である。いくつかの実施例によれば、データオブジェクトに関連付けられたメタデータ、および重複排除ドメインに関連付けられたデータオブジェクト特性はともに、データオブジェクトの内容に関する情報である。
【００９９】
たとえば、一実施例では、データオブジェクトに関連付けられたメタデータ、および重複排除ドメインに関連付けられたデータオブジェクト特性は、たとえばマイクロソフトアウトルック（MICROSOFT OUTLOOK）といった、データオブジェクトを作成したソフトウェアアプリケーションである。この例では、マイクロソフトアウトルックによって作成されたデータオブジェクトに遭遇すると、誘導エンジン１４０４は、それらのデータオブジェクトを、マイクロソフトアウトルックデータオブジェクトに関連付けられた重複排除ドメインに誘導できる。他の実施例では、メタデータおよびデータオブジェクト特性は、他のタイプの情報であってもよい。
【０１００】
いくつかの実施例によれば、誘導エンジン１４０４は、複数の重複排除ドメインにわたって冗長データをさらに統合するよう構成された機能を含む。いくつかの実施例では、誘導エンジンは、複数の重複排除ドメインにまたがる冗長データを判断するために、重複排除処理の結果と重複排除処理に関連付けられたアーチファクトとを評価することができる。たとえば、一実施例では、誘導エンジン１４０４は、複数の重複排除ドメインが共有しているかもしれないハッシュ指紋を求めて、ハッシュ指紋法を採用している複数の重複排除ドメインに関連付けられたハッシュテーブルを周期的に「スクラビング」する、または検索することができる。この実施例では、誘導エンジン１４０４は、異なる重複排除ドメインによって処理されたもののこれらの共通の指紋を有しているデータのストレージを、冗長データのコピーを冗長データの単一のコピーへの参照と置き換えるように重複排除ドメインのうちの１つ以上を誘導することによって、統合することができる。
【０１０１】
他の実施例では、誘導エンジン１４０４は、新しい重複排除ドメインを作成し、または既存の重複排除ドメインの構成を修正して、上述のスクラビング処理によって見つかった冗長データに関するデータの今後の処理を統合することができる。たとえば、一実施例では、誘導エンジン１４０４は、特定の重複排除ドメインに関連付けられたデータオブジェクト特性を変更することにより、１つの重複排除ドメインからの冗長データに関するデータを含むデータオブジェクトの今後の処理を、別のものにシフトすることができる。
【０１０２】
たとえば、一実施例では、誘導エンジン１４０４は、スクラビングを通して見つかった冗長データを含むデータオブジェクトに共通するメタデータを見つけるよう構成された機能を含む。さらに、この例では、誘導エンジンは、共通のメタデータに基づいて、共通のメタデータと一致する１つ以上のデータオブジェクト特性を判断することができる。誘導エンジン１４０４はまた、重複排除ドメインデータベース１４０６に関連性を記憶させることにより、これらの新しく判断されたデータオブジェクト特性を、新しいまたは既存の重複排除ドメイン、すなわち今後の処理が統合される重複排除ドメインに関連付けることができる。逆に、誘導エンジン１４０４は、重複排除ドメインデータベース１４０６と相互作用して、既存の重複排除ドメインから１つ以上のデータオブジェクト特性を分離し、これらの重複排除ドメインが将来、冗長データに関するデータを含むデータオブジェクトを受信しないようにすることができる。このように、誘導エンジン１４０４は、新しく見つかった共通のメタデータに関連付けられたデータオブジェクトの、新しく判断されたデータオブジェクト特性に関連付けられた重複排除ドメインへの流れを調節することができる。
【０１０３】
いくつかの実施例では、誘導エンジン１４０４は、データオブジェクトをある特定の重複排除ドメインに誘導する際に追加情報を使用するよう構成された機能を含む。たとえば、一実施例によれば、誘導エンジン１４０４は、ある特定の重複排除ドメイン専用のストレージが、残りの容量のしきい値レベル未満であることを検出可能である。この場合、誘導エンジン１４０４は、データオブジェクトを他の重複排除ドメインに誘導でき、または、追加の記憶容量を重複排除ドメインに割当てることができる。別の実施例では、誘導エンジン１４０４は、データオブジェクトが失効するまで残っている時間量に基づいて、データオブジェクトをある特定の重複排除ドメインに誘導可能である。たとえば、この実施例では、誘導エンジン１４０４は、残りの寿命が少ないデータオブジェクトを、少ない処理オーバーヘッドで、重複排除ドメインに、そのデータオブジェクトに関するその重複排除ドメインの有効性にかかわらず誘導することができる。なぜなら、そのデータオブジェクトは短時間のうちにストレージから消去されるためである。
【０１０４】
さまざまな実施例によれば、重複排除データベースインターフェイス１４１４は、さまざまな外部実体と情報を交換するよう構成された機能を有する。図示された実施例によれば、重複排除データベースインターフェイス１４１４は、重複排除ドメイン１４０８、１４１０および１４１２といった重複排除ドメインをユーザが作成、修正、および削除できるようにするさまざまなユーザインターフェイスメタファを、ユーザに提供できる。より特定的には、新しい重複排除ドメインを作成するためのメタファを表示する際、重複排除データベースインターフェイス１４１４は、その新しい重複排除ドメインに関連付けられたデータオブジェクトの特性をユーザが特定できるようにするインターフェイス要素を、ユーザに提示できる。加えて、重複排除データベースインターフェイス１４１４は、その新しい重複排除ドメインによって採用されるべき重複排除方法をユーザが特定できるようにするインターフェイス要素を、ユーザに提供できる。
【０１０５】
他の実施例では、重複排除データベースインターフェイス１４１４は、バックアップ／復元プログラムといった外部システムからデータを受信し、受信データに基づいて、外部システムから到来したデータを処理するように重複排除ドメインを自動的に構成するよう構成された機能を有する。たとえば、いくつかの実施例では、重複排除データベースインターフェイス１４１４は、将来受信される、または現在受信中のデータオブジェクトのタイプにおける共通性を判断して、重複排除効率を高めるように重複排除ドメイン１４０８、１４１０および１４１２を構成することが可能である。一実施例では、重複排除データベースインターフェイス１４１４は、バックアップ／復元プログラムによって供給されるバックアップポリシーに基づいて、バックアップポリシーの実行の結果受信されるデータオブジェクトの一次記憶位置を判断可能である。この実施例では、重複排除データベースインターフェイス１４１４は、この一次記憶位置情報に基づいて、重複排除ドメイン１４０８、１４１０および１４１２の構成を記憶可能である。別の実施例では、重複排除データベースインターフェイス１４１４によって記憶された構成は、データオブジェクトの記憶位置よりもむしろ、データオブジェクトを作成したソフトウェアアプリケーションに基づくことが可能である。他の実施例は、他のタイプのデータを用いて、好適な重複排除ドメイン構造および構成を判断してもよい。
【０１０６】
上述のように、重複排除誘導子１４００は、いくつかの重複排除方法のうちの１つを用いて、データオブジェクトから冗長データを除去してもよい。ある重複排除ドメインによって使用され得る１つの特定の重複排除手法は、内容認識重複排除である。図１２は、この発明の一実施例に従った、データオブジェクトからデータを重複排除するための例示的な内容認識処理１２００を示す。図１３は、データ重複排除とともに使用すると追加の処理効率を生み出す、進化した参照手法を示す。重複排除処理は、単一のバックアップ記憶システムを用いて、または上述のグリッド環境といった分散記憶システム環境内で実現されてもよい。
【０１０７】
一般に、処理１２００を実行するシステムは、一連のデータオブジェクトに関連付けられたメタデータを抜粋して、たとえば重複データを共有する可能性のあるデータオブジェクトといった、さらなる重複排除処理ステップを受けるそれらのデータオブジェクトを識別してもよい。このシステムは、冗長データの位置を特定するために、追加処理用に識別されたデータオブジェクトを検査してもよい。さらに、このシステムは、冗長データの単一のコピーを指す識別されたデータオブジェクトのコピーを構築し、また、オプションでこれらのコピーの完全性を確認してもよい。冗長データによって占められた記憶容量を取り戻すために、このシステムは、もともと識別されたデータオブジェクトを削除してもよい。重複排除方法および重複排除装置の局面および実施例を、以下により詳細に説明する。
【０１０８】
図１２を引き続き参照して、ステップ１２０２で、データ重複排除処理１２００が始まる。ステップ１２０４で、システムは、さらなる重複排除処理を受けることになるデータオブジェクトを識別する。一実施例では、このシステムは、冗長データを含む可能性があるデータオブジェクトを識別してもよい。この識別を行なうために、さまざまな方法およびメタデータが採用されてもよい。たとえば、一実施例では、一次ストレージにおけるあるバックアップデータオブジェクトの物理的位置は、それが別のバックアップデータオブジェクトを有するデータを有する可能性があることを示してもよい。より特定的には、同じ一次記憶装置、たとえばある特定のサーバから２つのバックアップデータオブジェクトが生じた場合、これらのデータオブジェクトは、冗長データのコピーを含む可能性があると識別されてもよい。同様に、別の実施例では、２つのデータオブジェクトは、ともにある特定のソフトウェアアプリケーションによって作成された場合、冗長データを有する可能性があると識別されてもよい。さらに別の実施例では、データオブジェクトがフルまたは増分バックアップポリシーの一部として記憶されたかどうかが、冗長データの可能性を示してもよい。重複データを含む可能性があるデータオブジェクトの識別は、ＣＰＵサイクルといった乏しいコンピュータ資源が、冗長データの除去から最も利益を得ることになるこれらのデータオブジェクトに集中され得るようにすることによって、処理１２００の全体的効率を高める。
【０１０９】
別の実施例では、システムは、あるデータオブジェクトを、これらのデータオブジェクトに関連付けられたメタデータに基づいて、さらなる重複排除処理に自動的に含めるよう、またはさらなる重複排除処理から自動的に除外するよう構成されていてもよい。たとえば、システムは、ある特定のソフトウェアアプリケーションによって作成されたデータオブジェクトを重複排除処理に含めるよう構成されていてもよい。同様に、システムは、ある特定のポリシーの一部としてバックアップされたデータオブジェクトを、さらなる重複排除処理に含めるよう構成されていてもよい。逆に、システムは、ある特定のポリシーによってバックアップされた全データオブジェクト、および／または具体的な名前のデータオブジェクトを、さらなる重複排除処理から除外するよう構成されていてもよい。これらの構成の選択肢により、システム挙動は、どのようなクライアント環境の特定の要望にも適合するよう調整され得るようになり、このため、システム効率、性能および拡張性を高める。
【０１１０】
ステップ１２０６で、処理１２００を実行するシステムは、さらなる重複排除処理のために識別されたデータオブジェクトにおいて冗長データの位置を特定する。この分析は、メタデータを用いることによって、および／または識別されたデータオブジェクトの実際の内容を検査することによって遂行されてもよい。一実施例では、同様のメタデータを有するデータオブジェクトは、同じデータを備えると仮定される。たとえば、複数のデータオブジェクトがデータファイルで、双方とも同じ名前、一次ストレージおよび巡回冗長検査（ＣＲＣ）における物理的位置、重複排除処理中に生成されたハッシュまたは何らかの他のメタデータを共有する場合、これら２つのデータオブジェクトは冗長であるとして記録されてもよい。冗長データを識別するためにメタデータを使用することは、いくつかの利点を提供する。メタデータの使用は効率を高める。なぜなら、データオブジェクト全体というよりもむしろ、データオブジェクトのメタデータのみが処理され得るためである。
【０１１１】
別の実施例では、データオブジェクト同士は、冗長性を保証するためにビット単位で比較されてから、そのように記録されてもよい。このタイプの比較は、コンピューティング資源をたくさん使うかもしれないが、それは、冗長であると識別されたあらゆるデータが実際に完全に冗長である、という強い保証も提供する。冗長性の判断に対するこのアプローチは、たとえば、金融情報といった、完全性が特に重要であるデータオブジェクトを取扱う際に有用であり得る。
【０１１２】
さらに別の実施例では、データオブジェクトに含まれるデータの一部が分析されて、オブジェクト全体の冗長性を定める。たとえば、あるソフトウェアアプリケーションは、それらが修正するデータオブジェクト内のある位置に、たとえばオブジェクトの最初または最後に、修正されたデータを追いやってもよい。このため、このデータ分散パターンを用いて、システムはその重複排除処理を、静的である可能性がより高いデータオブジェクトの部分に集中させ、こうしてシステム効率を高めてもよい。
【０１１３】
この発明の実施例は、冗長データの位置を特定するために、これらの手法の組合せを採用してもよい。より特定的には、システムは、上述のさらなる重複排除処理のためにデータオブジェクトを識別するために使用されたようなメタデータに基づいて、特定の手法を特定のデータオブジェクトに誘導してもよい。このメタデータは、とりわけ、一次ストレージにおける位置、データオブジェクトがバックアップされるようにしたポリシー、およびデータオブジェクトに関連付けられたソフトウェアアプリケーションを含んでいてもよい。データオブジェクト識別と同様に、重複データの位置を特定する態様に関してシステムを調整する能力は、システム拡張性および性能を高める。
【０１１４】
ステップ１２０８で、処理１２００を実行するシステムは、冗長データを含む以前に識別されたデータオブジェクトの重複排除されたコピーを作成してもよい。これらの重複排除されたコピーには、冗長データがほとんどまたは全くない場合がある。一実施例では、識別されたデータオブジェクトは、たとえば、仮想カートリッジを含んでいてもよい。この場合、システムは、完全に分解されると識別された仮想カートリッジに含まれるデータをすべて含む、１つ以上の重複排除された仮想カートリッジを作成してもよい。上述の合成仮想カートリッジと同様、これらの重複排除された仮想カートリッジは、データオブジェクトおよびデータオブジェクトへのポインタの双方を備えていてもよい。
【０１１５】
これらの重複排除されたデータコピーの作成中、システムは、ある特定のデータオブジェクト内に重複データのコピーを記憶させ、他のデータオブジェクト内のポインタを作成および／または修正して、重複データをそれらのデータオブジェクト内に記憶させてもよい。システムは、重複データおよびポインタを記憶させる際、さまざまな方法論に従ってもよい。一実施例では、重複データは最も古いデータオブジェクトに収容され、重複データの位置を識別するポインタは、重複データを含むより若いデータオブジェクトに記憶される。当該技術分野において逆方向参照と呼ばれるこの手法は、重複排除処理のためにデータオブジェクトを要約するためにハッシュインデックスが構築される場合に一般的である。
【０１１６】
別の実施例では、重複データは最も若いデータオブジェクトに収容され、重複データの位置を識別するポインタは、重複データを含むより古いデータオブジェクトに記憶される。この手法は順方向参照と呼ばれ得る。順方向参照は、データが最後のバックアップから復元される場合のデータ復元性能を高める。なぜなら、バックアップデータオブジェクトに含まれる全データを分解するために、ポインタの参照解除の減少が必要となるためである。この性能の向上は、一次ストレージからデータを復元させなければならない場合に通常、最新の、すなわち最も若いバックアップが使用されるという事実により、特に有利である。
【０１１７】
図１３Ａ、図１３Ｂおよび図１３Ｃは、上述のような順方向参照および逆方向参照を示す。図１３Ａは、重複排除処理前のバックアップデータオブジェクト１３０２および１３０４を示す。この例示のために、バックアップデータオブジェクト１３０２はバックアップデータオブジェクト１３０４よりも前に記憶されたと仮定されたい。バックアップデータオブジェクト１３０２は、固有データ部分１３０６と冗長データ部分１３１０Ａとを含む。バックアップデータオブジェクト１３０４は、固有データ部分１３０８と冗長データ部分１３１８Ｂとを含む。
【０１１８】
図１３Ｂは、順方向参照方式の下でのデータオブジェクト１３０２および１３０４の重複排除されたコピーを示す。２つのうち、より最近に記憶されたデータオブジェクト１３０４は、冗長データ部分１３１０Ｂのコピーを含む。２つのうち、より以前に記憶されたデータオブジェクト１３０２は、冗長データ部分１３１０Ｂを指すポインタ１３１２を含む。このため、重複排除されたコピーの作成後、より若いデータオブジェクトは冗長データのコピーを含み、より古いデータオブジェクトは、より若いデータオブジェクトの冗長データへのポインタを含む。
【０１１９】
図１３Ｃは、逆方向参照方式の下でのデータオブジェクト１３０２および１３０４の重複排除されたコピーを示す。２つのうち、より以前に記憶されたデータオブジェクト１３０２は、冗長データ１３１０Ａのコピーを含む。２つのうち、より最近に記憶されたデータオブジェクト１３０２は、冗長データ部分１３１０Ａを指すポインタ１３１２を含む。このため、重複排除されたコピーの作成後、より古いデータオブジェクトは冗長データのコピーを含み、より若いデータオブジェクトは、より古いデータオブジェクトの冗長データへのポインタを含む。
【０１２０】
ステップ１２１０で、システムは、データ完全性が保存されたことを確実にするために、重複排除されたコピーを以前に識別されたデータオブジェクトと比較してもよい。この比較は、データオブジェクトポインタの参照解除を必要とする場合があり、また、データオブジェクトに含まれるデータのビット単位の比較を含んでいてもよい。この完全性チェックの実行後、一実施例では、システムは、重複排除されたコピーを識別するポインタとそれらのそれぞれの以前に識別されたデータオブジェクトとを交換して、重複排除されたデータオブジェクトが一次データオブジェクトとなり、以前に識別されたデータオブジェクトが、それを参照するデータオブジェクトの完全性を混乱させることなく削除され得るようにしてもよい。システムはまた、メタデータに他の調節を加えて、それが重複排除されたコピーの特性を正確に反映することを確実にしてもよい。
【０１２１】
ステップ１２１２で、以前に識別されたデータオブジェクトによって利用された記憶容量が、他のデータオブジェクトによる使用のために取り戻される。一実施例では、これは、以前に識別されたデータオブジェクトを単に削除することによって遂行されてもよい。ステップ１２１４で、処理１２００は終了する。
【０１２２】
処理１２００は、ある好ましい一連の事象を示す。この発明の精神から逸脱することなく、他の動作を加えることが可能であり、または処理１２００において動作の順序を変更することができる。一実施例では、処理１２００は、バックアップストレージシステムに含まれる各データオブジェクトについて実行されてもよい。別の実施例では、システムは、バックアップ記憶システムにおけるデータオブジェクトのサブセットについて、処理１２００を実行してもよい。
【０１２３】
処理１２００は要望に応じて実行されてもよく、もしくは１回限りの処理または繰返し処理として予定されてもよい。重複排除によって取り戻された空間があるしきい値を満たすか上回る場合、処理１２００のさらなるサブセットが実行されてもよい。たとえば、一実施例では、重複排除が少なくともある特定の数の（たとえば５０）テラバイト、または利用されたバックアップ記憶容量のある特定のパーセンテージ（たとえば２５％）を自由にする場合のみ、処理１２００が動作してもよい。事象駆動型のコンピューティング動作として実現される場合、処理１２００を構成する行為は、グリッド環境といった分散型コンピューティング環境において実行されてもよい。
【０１２４】
このように、要約すると、重複排除処理１２００の実施例は、バックアップデータのコピーを維持するために必要な記憶容量を減少させ、ひいてはバックアップデータを記憶するために必要な電子媒体の量を減少させる。さらに、重複排除処理１２００の実施例は、メタデータを用いて重複排除処理を最適化することにより、コンピューティング資源を効率的に使用し得る。最後に、重複排除されたデータを順方向参照方式で記憶することにより、重複排除は、よく使用されるデータ復元機能性の性能を高めることができる。
【０１２５】
さまざまな実施例は、拡張可能な重複排除サービスを提供するコンピュータシステムのための処理を含む。図１５は、データを受信し、データを処理するために重複排除ドメインを選択し、選択された重複排除ドメインにデータを誘導する行為を含む、そのような１つの処理１５００の一例を示す。処理１５００は１５０２で始まる。
【０１２６】
行為１５０４で、コンピュータシステムは、重複排除されるべきデータを受信する。上述のように、一実施例によれば、データは、データのブロック、データストリーム、および多重化データストリームを含むさまざまな形式を取っていてもよい。図１４に示す例では、データはデータインターフェイス１４０２によって受信され、さらなる処理のために誘導エンジン１４０４に提供される。この例によれば、誘導エンジン１４０４はデータを受信し、データストリームに含まれる予め処理されたメタデータに基づいてデータを１つ以上のデータオブジェクトに区分する。さらに、この例では、誘導エンジン１４０４はメタデータをそれが作成するデータオブジェクトと関連付ける。
【０１２７】
行為１５０６で、コンピュータシステムは、受信データを処理するために重複排除ドメインを選択する。図１４に示す例によれば、誘導エンジン１４０４は、ある特定のデータオブジェクトを、そのデータオブジェクトに関連付けられたメタデータと重複排除ドメインに関連付けられたデータオブジェクト特性とを比較することによって処理するために、重複排除ドメイン１４０８、１４１０および１４１２のうちの１つを選択する。加えて、誘導エンジン１４０４は、他の情報、たとえば特定の重複排除ドメインに残っている記憶容量の量に基づいて、特定の重複排除ドメインを選択してもよく、または選択しなくてもよい。
【０１２８】
行為１５０８で、コンピュータシステムは選択された重複排除ドメインに受信データを誘導する。図１４の図示された例によれば、誘導エンジン１４０４は、データオブジェクトへの参照またはデータオブジェクトのコピーを選択された重複排除ドメインに渡すことにより、選択された重複排除ドメインにデータオブジェクトを提供してもよい。
【０１２９】
処理１５００は１５１０で終了する。
処理１５００は、ある特定の実施例における特定の一連の行為を例示している。これらの処理の各々に含まれる行為は、ここに説明されるように特別に構成された１つ以上のコンピュータシステムにより、またはそれらを用いて、行なわれ得る。加えて、この発明の範囲から逸脱することなく、行為の順序を変更でき、他の行為を追加できる。
【０１３０】
図３を参照して上述したように、記憶システムは、エンドユーザ復元アプリケーション３００と呼ばれるソフトウェアアプリケーションも含んでいてもよい。このため、別の実施例によれば、ＩＴスタッフの介入なく、また既存のバックアップ／復元手順および／またはポリシーに何ら変更を加える必要なく、エンドユーザがバックアップデータの位置を特定し、バックアップデータを復元するための方法が提供される。典型的なバックアップ記憶システムでは、ホストコンピュータ１２０上で実行中のバックアップ／復元アプリケーションはＩＴスタッフにより制御されており、エンドユーザがＩＴスタッフの介入なくバックアップデータにアクセスすることは、不可能であるかまたは非常に難しい場合がある。この発明の局面および実施例によれば、エンドユーザが、たとえばバックアップ記憶媒体１２６を有するウェブベースのまたは他のインターフェイスを介して、自分たちのファイルの位置を特定してそれらを復元できるようにする記憶システムソフトウェアが提供される。
【０１３１】
合成フルバックアップアプリケーション２４０と同様に、エンドユーザ復元アプリケーション３００は、記憶システムコントローラ１２２（図２参照）上で実行されてもよく、またはホストコンピュータ１２０上で実行されてもよい、ということが認識されるべきである。エンドユーザ復元アプリケーションは、認証されたユーザが、論理メタデータキャッシュを検索してバックアップファイルの位置を特定し、またオプションでバックアップ記憶媒体１２６からバックアップファイルを復元できるようにするために必要なソフトウェアコマンドおよびインターフェイスを含む。
【０１３２】
一実施例によれば、ユーザコンピュータ１３６上にインストールされ、および／またはユーザコンピュータ１３６上で実行されるユーザインターフェイスを含むソフトウェアが提供される。このユーザインターフェイスは、ユーザがバックアップ記憶媒体上のファイルの位置を特定できるようにする、あらゆるタイプのインターフェイスであり得る。たとえば、ユーザインターフェイスは、グラフィカルユーザインターフェイスであってもよく、ウェブベースであってもよく、またはテキストインターフェイスであってもよい。ユーザコンピュータは、たとえばイーサネット（登録商標）接続であり得るネットワーク接続１３８を介して記憶システム１７０に結合される。このネットワーク接続１３８を通して、ユーザコンピュータ１３６のオペレータは、記憶システム１７０上に記憶されたデータにアクセスできる。
【０１３３】
一例では、エンドユーザ復元アプリケーション３００は、ユーザ認証および／または認定特徴を含む。たとえば、ユーザは、ユーザ名およびパスワードを用いて、ユーザコンピュータ上のユーザインターフェイスを介してログインするよう要求されてもよい。ユーザコンピュータは、ユーザが記憶システムへのアクセスを有するかどうかを判断するために、適切なユーザ認証機構を使用し得る記憶システム（たとえばエンドユーザ復元アプリケーション）に、ユーザ名およびパスワードを通信してもよい。使用され得るユーザ認証機構のいくつかの例は、マイクロソフト  アクティブディレクトリ（Active Directory）サーバ、ユニックス（UNIX（登録商標））「イエローページ」サーバ、またはライトウェイト・ディレクトリ・アクセスプロトコル（Lightweight Directory Access Protocol）を含むが、それらに限定されない。ログイン／ユーザ認証機構は、ユーザ権限を交換するために、エンドユーザ復元アプリケーションと通信してもよい。たとえば、一部のユーザは、自分で作成したファイル、またはある権限を有するか所有者として識別されているファイルのみ検索することを許可されていてもよい。他のユーザ、たとえばシステムオペレータまたはアドミニストレータは、すべてのバックアップファイルなどへのアクセスが許可されていてもよい。
【０１３４】
一実施例によれば、エンドユーザ復元アプリケーションは論理メタデータキャッシュを用いて、バックアップ記憶媒体上にバックアップされたすべてのデータファイルについての情報を得る。エンドユーザ復元アプリケーションは、ユーザインターフェイスを介して、たとえばバックアップ時間／日付、ユーザ名、（ファイルがバックアップされた際に得られたかもしれない）元のユーザコンピュータディレクトリ構造、または他のファイル特性などによって分類されたユーザのファイルの階層型ディレクトリ構造を、ユーザに提示する。一例では、ユーザに提示されるディレクトリ構造は、そのユーザにとって可能とされた権限に応じて変わり得る。エンドユーザ復元アプリケーションはブラウズ要求を受付けてもよく（すなわち、ユーザインターフェイスを通して、ユーザは所望のファイルの位置を特定するためにディレクトリ構造をブラウズしてもよく）、または、ユーザは名前、日付などによってファイルを検索してもよい。
【０１３５】
一実施例によれば、ユーザは、記憶システムからバックアップファイルを復元してもよい。たとえば、ユーザが一旦所望のファイルの位置を特定すると、上述のように、ユーザはネットワーク接続１３８を介して記憶システムからファイルをダウンロードしてもよい。一例では、このダウンロード手順は、当業者には公知であるようなウェブベースのダウンロードと同等の態様で実現されてもよい。
【０１３６】
エンドユーザが閲覧／ダウンロードを許可されたファイルにアクセスできるようにすることにより、また、ユーザインターフェイス（たとえばウェブベースの技術）を通してそのようなアクセスを可能にすることにより、エンドユーザ復元アプリケーションは、バックアップポリシーまたは手順を変える必要なく、ユーザが自分たち自身のファイルを検索し、復元できるようにする。
【０１３７】
合成フルバックアップアプリケーションおよびエンドユーザ復元アプリケーションといったこの発明の局面は主としてソフトウェアに関してここに説明されているが、それらはそれに代えて、ソフトウェア、ハードウェアもしくはファームウェア、またはそれらの任意の組合せで実現され得る、ということが認識されるべきである。
【０１３８】
このため、たとえば、この発明の実施例は、実行時に、記憶システムのプロセッサに対して、上に詳述したような合成フルバックアップアプリケーションおよび／またはエンドユーザ復元アプリケーションの機能を少なくとも部分的に行なうコンピュータプログラム（すなわち複数の命令）で符号化された、コンピュータ読取り可能媒体（たとえばコンピュータメモリ、フロッピー（登録商標）ディスク、コンパクトディスク、テープなど）を備えていてもよい。
【０１３９】
概して要約すれば、この発明の実施例および局面はこのように、従来のテープバックアップシステムをエミュレートしているものの、合成バックアップを作成可能であること、エンドユーザがバックアップファイルを閲覧し復元できるようになることといった機能性の向上を提供し得る、記憶システムおよび方法を含む。しかしながら、この発明のさまざまな局面はコンピュータデータのバックアップ以外のために使用されてもよい、ということが認識されるべきである。この発明の記憶システムは膨大な量のデータを経済的に記憶するために使用されてもよく、その記憶されたデータは順次ではなくランダムに、かつハードディスクアクセス時間でアクセス可能であるため、この発明の実施例は、従来のバックアップ記憶システム以外での使用を見出し得る。たとえば、この発明の実施例は、幅広い選択肢の映画および音楽を表わす映像または音声データを記憶し、必要に応じて映像および／または音声を可能にするために使用されてもよい。
【０１４０】
この発明の少なくとも１つの実施例のいくつかの局面を説明してきたが、当業者の脳裏にはさまざまな変更、修正および改良が容易に浮かぶであろう、ということが認識されるべきである。そのような変更、修正および改良は、この開示の一部であるよう意図されており、この発明の範囲内にあるよう意図されている。したがって、前述の説明および図面は単なる例示である。
【図１】
2011510405.tif 000003
【図２】
2011510405.tif 000004
【図３】
2011510405.tif 000005
【図４】
2011510405.tif 000006
【図５】
2011510405.tif 000007
【図６】
2011510405.tif 000008
【図７】
2011510405.tif 000009
【図８】
2011510405.tif 000010
【図９】
2011510405.tif 000011
【図１０】
2011510405.tif 000012
【図１１】
2011510405.tif 000013
【図１２】
2011510405.tif 000014
【図１３Ａ】
2011510405.tif 000015
【図１３Ｂ】
2011510405.tif 000016
【図１３Ｃ】
2011510405.tif 000017
【図１４】
2011510405.tif 000018
【図１５】
2011510405.tif 000019
【国際調査報告】
2011510405.tif 000020
2011510405.tif 000021