(57)【要約】【課題】  データをバックアップしリストアする方法およびシステムを提供すること。【解決手段】  最初に、フルバックアップを実施してフルデータセットを作成する。その後で、増分または差分バックアップによってそれぞれ、増分または差分データセットを作成することができる。新しいフルデータセットが必要なときは、フルバックアップを実施する代わりに、以前のフルデータセットとその後の増分または差分データセットとを組み合わせて新しいフルデータセットを作成することができる。この新しいフルデータセットは、以前のフルデータセットのデータを収容していたコンピュータ以外のコンピュータ上に作成することができる。新しいフルデータセットは、オフサイト記憶装置用として、すなわちコンピュータファイルシステムの障害または破損の発生時にデータを迅速にリストアするために使用することができる。【選択図】  図６
2006092553.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、前記コンピュータ実行可能命令は、
ファイルシステムの第１のフルバックアップを実施して第１のフルデータセットを作成することであって、前記ファイルシステムはデータを含むこと、
後続のバックアップを実施して第２のデータセットを作成することであって、前記第２のデータセットは前記ファイルシステムの前記データの一部を含むこと、および、
前記第１のフルデータセットおよび前記第２のデータセットを組み合わせて前記ファイルシステムの第２のフルデータセットを作成すること
を含むことを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項２】
前記第１のフルバックアップを実施することは、前記データをオンライン記憶装置にコピーすることを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能記憶媒体。
【請求項３】
前記オンライン記憶装置は、ハードディスクを含むことを特徴とする請求項２に記載のコンピュータ読み取り可能記憶媒体。
【請求項４】
前記データは、各々メタデータに関連づけられたオブジェクトを含み、前記データは、各オブジェクトに関連するメタデータを取得し、前記オブジェクトとそれに関連するメタデータをオンライン記憶装置にコピーすることによって前記オンライン記憶装置にコピーされることを特徴とする請求項２に記載のコンピュータ読み取り可能記憶媒体。
【請求項５】
前記ファイルシステムはボリュームを含み、前記データを前記オンライン記憶装置にコピーすることは、ボリュームのシャドウコピーを作成することおよび前記シャドウコピーを前記オンライン記憶装置にコピーすることを含むことを特徴とする請求項２に記載のコンピュータ読み取り可能記憶媒体。
【請求項６】
前記シャドウコピーは、前記ボリューム上で維持されることを特徴とする請求項５に記載のコンピュータ読み取り可能記憶媒体。
【請求項７】
前記シャドウコピーは、前記ボリューム上および他のボリューム上で維持されることを特徴とする請求項５に記載のコンピュータ読み取り可能記憶媒体。
【請求項８】
前記ファイルシステムは、シャドウコピーを含むボリュームを含み、前記シャドウコピーに関連するデータは、各バックアップの間に保存されることを特徴とする請求項１に記載のコンピュータ読み取り可能記憶媒体。
【請求項９】
前記シャドウコピーに関連する前記データは、各バックアップを実施する際に前記ボリュームの物理ブロックをコピーすることによって保存されることを特徴とする請求項８に記載のコンピュータ読み取り可能記憶媒体。
【請求項１０】
コンピュータ読み取り可能記憶媒体に保存された前記第２のフルデータセットと前記シャドウコピーに関連する前記データとをリストアして、前記シャドウコピーに通常通りアクセスできるようにすることをさらに含むことを特徴とする請求項８に記載のコンピュータ読み取り可能記憶媒体。
【請求項１１】
前記データはブロックに分割された記憶装置に格納され、前記第１のフルバックアップおよび前記後続のバックアップは、前記記憶装置の物理バックアップによって実施されることを特徴とする請求項１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１２】
前記物理バックアップは、バックアップすべきすべてのブロックからなるファイルをオープンし、前記バックアップすべきブロックをコピーすることによって実施されることを特徴とする請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１３】
物理リストアによって前記第１のフルデータセットをリストアすることをさらに含み、前記物理リストアは、前記第１のフルデータセットをファイルとしてオープンすること、および前記第１のフルデータセット中のブロックをリストア記憶装置に順次コピーすることを含むことを特徴とする請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１４】
前記第２のデータセットに含まれる、前記ファイルシステムの前記データの前記一部を前記リストア記憶装置に適用することをさらに含むことを特徴とする請求項１３に記載のコンピュータ読み取り可能記憶媒体。
【請求項１５】
前記データはいくつかのブロックを含み、前記後続のバックアップを実施することは前記データの前記一部を圧縮することを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１６】
前記データの前記一部を圧縮することは、前記データ中の変化したブロックのすべてを差分領域に置くことを特徴とする請求項１５に記載のコンピュータ読み取り可能記憶媒体。
【請求項１７】
前記データ中の変化した前記ブロックは、シャドウコピー機構の動作によって前記差分領域中に置かれることを特徴とする請求項１６に記載のコンピュータ読み取り可能記憶媒体。
【請求項１８】
複数のフルデータセットは、記憶装置上で、前記シャドウコピー機構によって作成された複数のシャドウコピーとして表されることを特徴とする請求項１７に記載のコンピュータ読み取り可能記憶媒体。
【請求項１９】
前記データの前記一部を圧縮することは、差分圧縮アルゴリズムを適用することを含むことを特徴とする請求項１５に記載のコンピュータ読み取り可能記憶媒体。
【請求項２０】
前記データは前記ファイルシステムに含まれるオブジェクトに関連するブロックを含み、前記第１のフルバックアップを実施した後で変化したオブジェクトに関する変化したブロック、または前記変化したブロックを含むエクステントを追跡することをさらに含むことを特徴とする請求項１に記載のコンピュータ読み取り可能記憶媒体。
【請求項２１】
前記後続のバックアップを実施して第２のデータセットを作成することは、前記変化したブロック、または前記変化したブロックを含むエクステントだけをコピーすることによって、変化したオブジェクトをコピーすることを含むことを特徴とする請求項２０に記載のコンピュータ読み取り可能記憶媒体。
【請求項２２】
あるサイズを超えるオブジェクトに関するブロックまたはエクステントだけが追跡されることを特徴とする請求項２０に記載のコンピュータ読み取り可能記憶媒体。
【請求項２３】
前記後続のバックアップを実施して第２のデータセットを作成することは、他のオブジェクトに関連するすべてのブロックを前記第２のデータセットにコピーすることによって、変化したけれども追跡されていない前記他のオブジェクトをコピーすることを含むことを特徴とする請求項２０に記載のコンピュータ読み取り可能記憶媒体。
【請求項２４】
コンピュータ環境において、
第１のボリュームのバックアップを実施してデータセットを作成することであって、前記第１のボリュームは、アプリケーションによって１組の操作を介してアクセスされるデータを含むこと、および、
前記データセットをリストアする前に、またはリストアすることなしに、前記アプリケーションによって、前記操作の１つを介して前記データセット中の前記データにアクセスすること
を含むことを特徴とする方法。
【請求項２５】
前記アプリケーションは、前記アプリケーションが前記第１のボリュームではなく前記データセット中の前記データにアクセスしていることに気づかないことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記アプリケーションは、前記アプリケーションが前記第１のボリューム中の前記データにアクセスする場合と同様に、前記データセット中の前記データにアクセスすることを特徴とする請求項２４に記載の方法。
【請求項２７】
前記データセットを第２のボリュームとしてマウントすることをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
前記操作の１つとして書込み操作を含むことを特徴とする請求項２４に記載の方法。
【請求項２９】
前記書込み操作によって前記データセットに書き込まれたデータをすべて別の位置に置くことをさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
コンピュータ環境において、
ファイルシステムに含まれるオブジェクトにアクセスする要求を受信するようになされたオペレーティングシステム、
前記オブジェクトに対する変化が追跡されているかどうかを判定するようになされたファイルシステムフィルタ、および、
前記オブジェクトのうちのどのオブジェクトが変化したかを追跡するようになされた永続記憶装置
を含むことを特徴とするシステム。
【請求項３１】
前記要求は、前記オブジェクトに書き込む要求を含むことを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記オブジェクトは、変化を追跡すべきオブジェクトのリストに含まれることを特徴とする請求項３０に記載のシステム。
【請求項３３】
前記オブジェクトはサイズであり、前記オブジェクトに対する前記変化が追跡されているかどうかを判定することは、前記オブジェクトの前記サイズが閾値サイズ以上かどうかを判定することを含むことを特徴とする請求項３０に記載のシステム。
【請求項３４】
前記オブジェクト中のブロックごとに、
変化したブロックのリスト中のブロックを含むか、または前記オブジェクトのフルデータセットを含む、前記データセットの中から最新のデータセットを見つけること、および、
前記最新のデータセットから前記ブロックをコピーすること
により、１組のデータセットから前記オブジェクトを再構成するようになされたリストアアプリケーションをさらに含むことを特徴とする請求項３０に記載のシステム。
【請求項３５】
コンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、前記コンピュータ実行可能命令は、
第１のフルデータセットを含むボリュームのシャドウコピーを作成し、維持することであって、前記シャドウコピーは前記ボリュームのある時点での論理的な複製であること、
前記ボリュームの第２のフルデータセットを作成すること、
前記シャドウコピーを維持するとともに、前記第１のフルデータセットを前記第２のフルデータセットで上書きすること、
前記第２のフルデータセットを削除すること、
前記第２のフルデータセットとして前記第１のフルデータセットをリネームすること、および、
前記シャドウコピーを介して前記第１のフルデータセットにアクセスすること
を含むことを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項３６】
前記ボリューム上の前記第２のフルデータセットにアクセスすることをさらに含むことを特徴とする請求項３５に記載のコンピュータ読み取り可能記憶媒体。
【請求項３７】
前記第１と第２のフルデータセット間の差分は、前記シャドウコピーに関連する差分領域中で維持されることを特徴とする請求項３５に記載のコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータに関し、より詳細にはデータのバックアップおよびリストアに関する。
【背景技術】
【０００２】
コンピュータ上でデータのフルバックアップを行うことは、非常に費用がかかる管理タスクである。一般に、フルバックアップには、コンピュータのファイルシステム上のすべてのファイルを列挙し、それらの各ファイルを個々にバックアップすることが含まれる。これらのファイルがファイルシステム全体に分散するランダムな性質、およびそれらのファイルに関するメタデータを抽出することにかかる大きなオーバヘッドのために、バックアップの実施にあたりすべてのファイルを列挙することは、非常に長い時間を要することになりがちである。費用がかかるにもかかわらず、災害から回復するのにかかる時間を抑えるため、および（例えば、火事、洪水、地震などによる）データセンタの損失に備えて各バックアップオフサイトによって作成されたデータセットを格納する必要性から、ほとんどの組織では週単位でフルバックアップを実施している。
【０００３】
フルバックアップとフルバックアップの間に増分または差分バックアップを実施して、フルバックアップ間に生じた変化を捕捉することができる。増分バックアップおよび差分バックアップで作成されたデータセットはどちらも、フルバックアップの時点と差分バックアップの時点とのファイルシステムの差分を格納するのにかなりのリソースを消費する可能性がある。増分バックアップについては、災害の後で、ファイルをコンピュータ上にリストアするために実質的により多くの時間がかかる可能性がある。なぜならば、フルバックアップによって作成されたデータセットを復元し、次いで１つまたは複数の増分バックアップによって作成されたデータセットを適用しなければならないことがあるからである。
【０００４】
【特許文献１】米国特許第６６４７４７３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
コンピュータの性能に重大な影響を与えることなく、ファイルシステムを迅速かつ効率的にフルバックアップできるようにする方法およびシステムが求められている。理想的には、このような方法およびシステムは、コンピュータのファイルシステムに部分的または全体的な障害が生じた場合に、コンピュータにファイルをリストアする効率的な機構も提供する。
【課題を解決するための手段】
【０００６】
要約すると、本発明はデータをバックアップし、リストアするための方法およびシステムを提供する。最初に、フルバックアップを実施してフルデータセットを作成する。その後で、増分または差分バックアップによってそれぞれ、増分または差分データセットを作成することができる。新しいフルデータセットが必要なときは、フルバックアップを実施する代わりに、以前のフルデータセットとその後の増分または差分データセットを組み合わせて、新しいフルデータセットを作成することができる。新しいフルデータセットは、以前のフルデータセットのデータを収容していたコンピュータ以外のコンピュータ上に作成することができる。新しいフルデータセットは、オフサイト記憶装置用として、すなわちコンピュータファイルシステムの障害または破損の発生時にデータを迅速にリストアするために使用することができる。
【０００７】
本発明の一態様においては、データセットはハードディスクなどのオンライン記憶装置中に格納することができる。
【０００８】
本発明の他の態様においては、ボリュームに含まれるシャドウコピーをバックアップすることも可能にする物理バックアップが実施される。
【０００９】
本発明の他の態様においては、オンライン記憶装置に複数のデータセットを効率的に格納できるようにするために、差分圧縮を用いてデータセットを作成することができる。
【００１０】
本発明の他の態様においては、ファイルシステムフィルタは、ファイルシステム中の特定のファイル（例えば、大きいファイル）のどのブロックまたはエクステントが変化したかを追跡する。バックアップに際しては、大きいファイルを各々コピーするのではなく、変化したブロックまたはエクステントだけがコピーされる。
【００１１】
本発明の他の態様においては、データセットをリストアする前に、またはリストアすることなしにデータにアクセスできるようにするために、データセットのデータは、アプリケーションによってデータセットから直接読み出すことができる。
【００１２】
他の利点については、以下の詳細な説明を添付の図面と併せて読むことによって明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
（例示的動作環境）
図１は、本発明を実装することができる適切なコンピュータシステム環境１００の一例を示す。コンピュータシステム環境１００は、適切なコンピュータ環境の一例に過ぎず、本発明の使用または機能の範囲に関して、いかなる制限を加えることも意図したものでもない。コンピュータ環境１００は、例示的動作環境１００に示された各コンポーネントの任意の１つまたは組合せに関して、いかなる依存性も要件も有していないものと解釈されたい。
【００１４】
本発明は、他の多くの汎用または専用コンピュータシステム環境または構成とともに使用することができる。本発明とともに使用するのに適した、周知のコンピュータシステム、環境、および／または構成の例には、これらに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップ装置、マルチプロセッサシステム、マイクロコントローラベースシステム、セットトップボックス、プログラマブル家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピュータ環境などが含まれる。
【００１５】
本発明は、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的文脈で説明できる。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介してリンクされたリモート処理装置によって各タスクが実行される分散コンピュータ環境においても実施することができる。分散コンピュータ環境においては、各プログラムモジュールは、ローカルおよびリモートの両方のコンピュータ記憶媒体、例えばメモリ記憶装置に配置することができる。
【００１６】
図１を参照すると、本発明を実装するための例示的なシステムには、コンピュータ１１０のような形の汎用コンピュータ装置が含まれている。コンピュータ１１０の各コンポーネントには、これらに限定されるものではないが、処理ユニット１２０、システムメモリ１３０、システムバス１２１などが含まれる。システムバスは、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合する。システムバス１２１は、メモリバスもしくはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのいずれかを使用するローカルバスなど、いくつかの種類のバス構造のどれかであってもよい。例として、このようなアーキテクチャには、限定の意味ではなく、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）バス、メザニン（Mezzanine）バスとも呼ばれるＰＣＩ（Peripheral Component Interconnect）バスなどが含まれる。
【００１７】
一般に、コンピュータ１１０は、様々なコンピュータ読み取り可能記憶媒体を含む。コンピュータ読み取り可能記憶媒体は、コンピュータ１１０によってアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性媒体、ならびにリムーバブルおよび非リムーバブル媒体のどちらも含む。限定の意味ではなく例として、コンピュータ読み取り可能記憶媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブルのどちらの媒体も含む。コンピュータ記憶媒体は、これに限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術製品、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disks）、もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または、所望の情報を格納するために使用することができ、かつコンピュータ１１０によってアクセスできる他の任意の媒体を含む。通信媒体は一般に、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータなどを、搬送波もしくは他の伝送機構など被変調データ信号の形で実施するとともに、いずれかの情報送達媒体を含む。「被変調データ信号」という用語は、情報を信号中に符号化するように設定または変更された、１つまたは複数の信号特性を有する信号を意味する。限定の意味ではなく例として、通信媒体は、有線ネットワーク、直接有線接続などの有線媒体、および、音響、無線周波数（ＲＦ）、赤外などの無線媒体を含む。上記の媒体の任意の組合せもまた、コンピュータ読み取り可能記憶媒体の範囲に含まれるものとする。
【００１８】
システムメモリ１３０は、ＲＯＭ（読み出し専用メモリ）１３１やＲＡＭ（ランダムアクセスメモリ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入／出力システム（ＢＩＯＳ）１３３は、例えば起動時などに、コンピュータ１１０内の各要素間の情報転送を支援する基本ルーチンを含み、通常はＲＯＭ１３１に格納されている。ＲＡＭ１３２は一般に、処理ユニット１２０によって即時にアクセス可能な、かつ／または現在動作中の、データおよび／またはプログラムモジュールを含む。限定の意味ではなく、例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７が示されている。
【００１９】
コンピュータ１１０には、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ記憶媒体を含めることもできる。例示の意味で、図１には、非リムーバブルな不揮発性の磁気媒体に読み書きするためのハードディスクドライブ１４１、リムーバブルな不揮発性磁気ディスク１５２に読み書きするための磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭ、その他の光媒体など、リムーバブルな不揮発性光ディスク１５６に読み書きするための光ディスクドライブ１５５が示されている。例示の動作環境で使用できる、他のリムーバブル／非リムーバブル、揮発性／不揮発性の記憶媒体には、これに限定されるものではないが、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は一般に、インタフェース１４０など非リムーバブルなメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インタフェース１５０などリムーバブルなメモリインタフェースを介してシステムバス１２１に接続される。
【００２０】
上で説明し図１に示した各ドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータなどを記憶する。図１において、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するように図示されている。これらの各コンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同一であっても、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくともそれらが異なるコピーであってもよいことを示すために、本明細書では異なる番号が付与されている。ユーザは入力装置、例えばキーボード１６２や、一般にマウス、トラックボール、タッチパッドを意味するポインティング装置１６１を介して、コンピュータ１１０に命令または情報を入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ハンドヘルドＰＣもしくは他の書込みタブレット（writing tablet）用のタッチスクリーンなどがある。これらおよび他の入力装置は、システムバス１２１に結合されたユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ＵＳＢ（universal serial bus）など、他のインタフェースやバス構造を用いて接続することもできる。モニタ１９１、または他の種類の表示装置もまた、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタの他に、コンピュータは、出力ペリフェラルインタフェース１９５を介して接続される、スピーカ１９７、プリンタ１９６など他の周辺出力装置を含むこともできる。
【００２１】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作させることができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、他の共用ネットワークノードなどであってもよい。また、図１にはメモリ記憶装置１８１だけが示されているが、リモートコンピュータ１８０は一般に、コンピュータ１１０に関連して上で説明した要素の多く、またはすべてを含むことができる。図１に示された論理接続には、ＬＡＮ（ローカルエリアネットワーク）１７１およびＷＡＮ（ワイドエリアネットワーク）１７３が含まれているが、他のネットワークを含めることもできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットなどにおいて一般的なものである。
【００２２】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ１１０は一般に、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２、またはその他の手段を含む。モデム１７２は、内蔵でも外付けでもよいが、ユーザ入力インタフェース１６０、または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関連して示された各プログラムモジュールまたはその一部は、リモートのメモリ記憶装置に格納することができる。限定の意味ではなく例として、図１には、リモートのアプリケーションプログラム１８５が、メモリ装置１８１上に常駐するように示されている。図示されたネットワーク環境が例示的なものであり、コンピュータ間の通信リンクを確立するための他の手段を使用することができることを理解されたい。
【００２３】
（合成フルバックアップ）
定期的にフルバックアップを実施する代わりに、フルバックアップを一度実施し、その後は増分または差分バックアップを実施することができる。新しいフルデータセットが必要なときはいつでも（例えば、オフサイト記憶装置用に週単位などで）、最後のフルデータセットと、最後の差分データセットまたは最後のフルデータセットの後に作成されたすべての増分データセットとを使用して合成フルバックアップを実施することができる。合成フルバックアップは、合成フルバックアップを使用した最後のデータセットの作成時間に通常のフルバックアップが実行された場合に作成したであろうデータセットと等価なデータセットを作成する。以下では、フルバックアップという用語は、通常のフルバックアップ、および／または合成フルバックアップを意味する場合がある。
【００２４】
フルデータセットという用語は、ある時点でのデータソースのデータの表現を意味する。データソースは、（例えば、ファイル指向データのための）ボリューム、（例えば、複合記憶装置に格納されたデータのための）データベース、またはそれらの組合せを含むことができる。フルデータセットは、通常のフルバックアップ、合成フルバックアップ、または物理フルバックアップを実施することによって作成することができる。
【００２５】
差分データセットは差分バックアップによって作成され、最後のフルバックアップ時のデータソースと差分バックアップが実施された時点のデータソースの差分を含む。増分データセットは増分バックアップによって作成され、最後の（フル、差分、または増分）バックアップ時のデータソースと増分バックアップが実施された時点のデータソースの差分を含む。
【００２６】
合成フルバックアップにおいて、フルバックアップと差分バックアップによって作成された各データセットをマージするためのアルゴリズムについて以下で説明する。このアルゴリズムは、各データセットが、ＭＴＦ（Microsoft（登録商標）Tape Format）でフォーマットされていることを想定しているが、本発明の方法は、各データセットの内容または少なくとも以前のフル、差分、もしくは増分データセットからの差分の内容を列挙する、既存のまたは作成可能なカタログが存在する任意の形式でフォーマットされたデータセットに適用される。
【００２７】
フル、増分、または差分バックアップによってＭＴＦフォーマットで作成された各データセットでは、各ファイルのエントリまたはボリュームのディレクトリは、データセットのヘッダに表示される。以下では、「オブジェクト」という用語は、ファイルまたはディレクトリあるいはその両方を指すために使用される場合がある。フルバックアップによってＭＴＦフォーマットで作成されたフルデータセットについて、すべてのファイルのメタデータおよびデータ、ならびにボリュームのディレクトリは、フルデータセット内に表示される。差分または増分バックアップによってＭＴＦフォーマットで作成されたデータセットについては、エントリ用のメタデータおよびデータは、オブジェクトが新しく作成された場合、またはオブジェクトが差分または増分データセットの基になる以前のデータセットから変更された場合に、差分または増分バックアップによって作成されたデータセットだけに表示することができる。ＭＴＦは、データセット内のオブジェクトを明確な順序で順序付け、あるオブジェクトＦがデータセット中に表示されている場合は、そのボリュームのルートに至るまでのそのオブジェクトのすべての上位ディレクトリ（親ディレクトリ、祖父母ディレクトリなど）もまた、以前にそのデータセット内に表示されていたことを保証する。
【００２８】
本明細書では、オブジェクトに関連するデータはそのオブジェクトに関連する内容を含み、一方、オブジェクトに関連するメタデータはそのオブジェクトに関連する任意の属性または他のデータを含む意味で使用する。
【００２９】
図２〜４は、本発明の様々な態様による、合成バックアップを実施するために取り得る諸動作を一般的に表す流れ図である。図２を参照すると、ブロック２０５でプロセスが開始される。ブロック２１０で、新しい空のデータセットが作成される。ブロック２１５で、各ポインタが、マージに関連する各データセットの最初のエントリに設定される。Ｂ０を最新の差分または増分データセットのポインタとし、Ｂ１〜ＢＮ−１を、Ｂ０で示されたデータセットの直前から時間順に遡った差分または増分データセットのポインタとし、ＢＮを最後のフルデータセットを指すポインタとする。アルゴリズムは以下に続く。
【００３０】
ブロック２１５で、各データセットに関連するポインタが、そのデータセットに関連する最初のエントリに割り当てられる。ブロック２２０で、必要ならば、各ポインタが、そのポインタに関連するエントリがＢ０によって指示されるエントリに等しいか、またはそれより大きくなるまで進められる。このことは、図３と併せてより詳細に説明する。ポインタが指示するエントリがすでにＢ０で指示されたエントリより大きいかまたは等しい場合、またはそのポインタが、それに関連するデータセットの最後のエントリを越えている場合には、ポインタを進める必要がないこともある。
【００３１】
ブロック２２５で、メタデータおよびデータを含む第１のデータセットからの情報が、新しいデータセットに追加される。このことは、図４と併せてより詳細に説明する。ブロック２３０で、ポインタＢ０を進めて、そのデータセットに存在する次のエントリを調べる。ブロック２３５で、Ｂ０がそのデータセットの最後に到達したことを示している場合は、ブロック２４０で処理が終了する。示していない場合は、処理はブロック２２０に分岐する。
【００３２】
図３は、図２のブロック２２０に対応する動作を一般的に示す流れ図である。この図は、本発明の様々な態様による、データセットを指示するポインタを進めるために取り得る諸動作を示す。必要に応じて、各データセットを指示するポインタ（Ｂ０に関するポインタは含まない）が、Ｂ０によって指示されるエントリに等しいかそれより大きくなるまで進められる。ブロック３０５でプロセスに入る。ブロック３１０で、ポインタＢ１を選択する準備として、インデックス（例えば、Ｘ）に１を割り当てる。ブロック３１５で、ポインタＢＸを選択して、ポインタＢＸによって指示されるエントリを調べる。ブロック３２０で、ＢＸによって指示されたデータセット中のエントリが、Ｂ０によって指示されたデータセット中のエントリより大きいかまたは等しくなったかどうか、あるいはＢＸが、ＢＸに関するデータセットの最後を越えて指示されているかどうかの判定が行われる。判定条件が成立した場合は、処理はブロック３３０に分岐し、そのブロックで、インデックスをインクリメントして新しいポインタを取得する。判定条件が成立しなかった場合は、処理はブロック３２５に分岐し、そのブロックでポインタＢＸをインクリメントして、それに関するデータセットの次のエントリを指示する。ブロック３２０および３２５に関するループは、ＢＸによって指示されるエントリが、Ｂ０によって指示されるエントリより大きいか等しくなるまで、あるいはＢＸが、ＢＸに関連するデータセットの最後を越えて指示されるまで続く。
【００３３】
ブロック３３５で、インデックス（例えば、Ｘ）がポインタの数（例えば、Ｎ）より大きいかどうかが判定される。大きい場合は、すべてのポインタが調査されたことになり、必要ならばポインタが進められ、処理はブロック３４０に分岐する。そのブロックで、処理は呼び出しプロセスに戻る。大きくない場合は、処理はブロック３１５に分岐し、そのブロックで次のポインタが選択される。
【００３４】
図４は、図２のブロック２２５に対応する動作を一般的に表す流れ図である。この図は、本発明の様々な態様による、最新のデータセットエントリを検出して新しいデータセットに挿入するために取り得る諸動作を示す。ブロック４０５でプロセスに入る。ブロック４１０で、最新のバックアップによって作成されたデ―タセットへのポインタを選択する準備として、インデックス（例えば、Ｘ）をゼロに設定する。ブロック４１５で、ポインタＢＸが選択され、そのポインタによって指示されたエントリが検査される。ブロック４２０で、ＢＸによって指示されたエントリが、そのエントリのメタデータとデータを含んでいるかどうかが判定される。ＢＸによって指示されるエントリがメタデータおよびデータを含んでいる場合は、処理はブロック４３０に分岐し、そのブロックで、そのエントリ、ならびにメタデータおよびデータが新しいデータセットに追加される。含んでいない場合は、処理はブロック４２５に分岐し、ブロック４２５でインデックス（例えば、Ｘ）がインクリメントされ、ブロック４１５で次のポインタが選択される。ブロック４１５〜４２５に示される動作は、データおよびメタデータを含むエントリを有する最新のデータセットが見つかるまで繰り返される。
【００３５】
ＭＴＦの下では、あるデータセットが、あるオブジェクトのエントリを含むがメタデータもデータも含んでいない場合、そのことは、いずれかのデータセットがそのオブジェクトのデータおよびメタデータを含むようになるまでは、以前の各データセットがそのオブジェクトのエントリを含むことを意味していることに留意されたい。
【００３６】
上記のアルゴリズムを使用して、
・  フルデータセットと、そのフルデータセットに基づく最新の差分データセットをマージする。  
・  フルデータセットと、そのフルデータセットの後で作成された各増分データセットをマージする（例えば、増分バックアップだけしか実施されない場合に使用）。または、
・  フルデータセットと、そのフルデータセットに基づく最新の差分データセット、およびその差分データセットに基づく各増分データセットをマージする（例えば、差分および増分バックアップの両方が実施される場合に使用）。
【００３７】
前述のように、上記のアルゴリズムをＭＴＦフォーマットに基づいて説明してきた。しかし、各増分または差分データセットに、どのオブジェクトが以前のデータセットから削除されたか、およびどのオブジェクトが以前のデータセットから修正または追加されたかを判断する方法が含まれているかぎり、このアルゴリズムが、本発明の趣旨または範囲を逸脱することなく、他のフォーマットに対応するように容易に修正できることが理解されよう。
【００３８】
上記のアルゴリズムは、ディスク上またはテープ上のどちらに存在するデータセットをマージするためにも使用することができるが、実際には、マージされるすべての増分／差分データセットおよびフルデータセットがディスク上にある場合に、最も効率を良くすることができる。
【００３９】
さらに、上記のアルゴリズムはマルチパスマージにまで一般化することができるが、マルチパスに付随するオーバヘッドのために、実際には、このアルゴリズムが関心を引くことは少ないかもしれない。テープはシーケンシャルメディアなので、同時にすべてのデータセットをオープンするには、かなりの台数（例えば、各データセットあたり１ドライブ）のテープドライブを使用することになり、デーセットのコロケーションがない状態（すなわち、メディアあたり唯１つのマージデータセット）で最も良く機能することになる。
【００４０】
最後に、生産コンピュータからマージ処理をオフロードするために、別のバックアップコンピュータを使用してマージ処理を実施することができる。このことが、生産コンピュータを生産目的に専念させることなど、多くの利点を有することが理解されよう。
【００４１】
（物理バックアップおよびリストア）
フルバックアップを実施するための既存の技術の問題点の１つは、バックアップされる論理オブジェクトと、それらのオブジェクトのディスク上での物理表現の間に関連性がないことである。この問題は、シャドウコピーを使用することによって克服することができる。シャドウコピーはボリュームの「スナップショット」である。（例えば、コピーオンライトによる）シャドウコピーの作成では、ボリュームが完全にはコピーされない可能性はあるが、シャドウコピーは、論理的には、所与の時点でのそのボリュームの正確な複製である。シャドウコピーは、オペレーティングシステムや実行中のアプリケーションからは、別のボリュームと見なされることができる。例えば、シャドウコピーには、ボリュームデバイス、ボリュームネーム、ドライブレター、マウントポイント、および実際のドライブの他の任意の属性を含めることができる。さらに、シャドウコピーは、それに関連するネットワーク共用（単に「共用」と呼ばれることもある）などのネットワークリモートパスを介して公開することもできる。ネットワークリモートパスは、ネットワークからシャドウコピー内に含まれるデータの一部または全体へのアクセスを可能にするものである。
【００４２】
シャドウコピーは、コピーオンライト、分割ミラー、ディスク自体のコピーを作成する専用ハードウェア、当業者には既知の他の方法やシステムなど、様々な既知の技術によって作成することができる。
【００４３】
シャドウコピー技術では、差分領域を使用してコピーオンライトのシャドウコピーを実行することができる。差分領域は、ボリューム上の各ブロックを、シャドウコピーが作成された時点でのそれらブロック上の各内容にマップする。シャドウコピー技術についての差分技術は、オブジェクト（ファイルまたはディレクトリ）レベルではなく、物理ブロックレベルで動作させることができる。
【００４４】
例えば、図５を参照すると、コピーオンライトにおいては、ドライバはディスクをいくつかのエクステントに分割することができる。エクステントとは、記憶媒体上のいくつかの連続するブロックのことであり、アプリケーションに応じて異なっていてもよい。例えば、あるアプリケーションでは、ディスクをあるサイズのエクステントに分割することができる。一方、他のアプリケーションでは、そのディスクを別のサイズのエクステントに分割することができる。
【００４５】
シャドウコピーを作成した後で、ディスク上のあるブロックが変化する場合は、そのブロックを変化させる前にそのブロックを含むエクステント（例えば、エクステント５０６）を差分領域５１５のある記憶位置（例えば、エクステント５０７）にコピーする。個々のシャドウコピーに関して、エクステントはそのエクステント内の任意のブロックが初めて変化したときだけコピーされる。シャドウコピー中の情報を求める要求を受信したときには、先ず、元のボリュームでそのブロックが変化したかどうかを（例えば、そのブロックを含むエクステントが差分領域５１５に存在するかどうかを調べることによって）判定するチェックが実施される。そのブロックが変化していないときは、元のボリュームのデータを取り出し、送信する。そのブロックが変化しているときには、差分領域５１５のデータを取り出し、送信する。あるブロックが、同一のデータで上書きされた場合には、そのブロックを含むエクステントは差分領域５１５には書き込まれないことに留意されたい。
【００４６】
シャドウコピーをバックアップするために、元のボリュームの物理ブロックから差分領域のエクステントへのマッピングが保存される。ボリュームとそのボリューム上で永続する任意のシャドウコピーの両方をバックアップする方法の１つは、そのボリュームの物理バックアップを実施することである。物理バックアップという用語は、オブジェクトごとのバックアップを実施する代わりに、あるボリュームに関連する物理ブロックをコピーすることを意味する。空のエクステントの中にある各ブロックは、コピーしてもしなくてもよいことに留意されたい。バックアップアプリケーションは、バックアップによって作成されたデータセット中のどのエクステントが空で、どのエクステントが空でないかに関するビットマップなどの指示を保存することができる。一般に、空のエクステントをコピーしないことにより、物理バックアップによって作成されるデータセットをより小さくできることが理解されよう。
【００４７】
本発明の様々な態様について、コピーオンライトシャドウコピー技術と併せて説明してきたが、本発明の趣旨または範囲を逸脱することなく、他のシャドウコピー技術を使用することもできる。
【００４８】
図６は、本発明の様々な態様による、物理バックアップを実施するために取り得る諸動作を一般的な形で表した流れ図である。永続シャドウコピーに使用される差分領域が元のボリュームと結びつけられているときはいつでも、物理バックアップを実施することにより、ボリュームだけでなくシャドウコピーも保存される。この場合、以下のようにしてバックアップをとることができる。
【００４９】
ブロック６０５でプロセスが開始される。ブロック６１０で、バックアップに含まれるボリュームのバックアップシャドウコピーが作成される。このバックアップシャドウコピーは、バックアップが完了すると直ぐに削除することができる。（ボリュームから直接ブロックをコピーしようとする代わりに）バックアップシャドウコピーを作成することにより、一貫性のある安定なボリュームのイメージが得られることに留意されたい。
【００５０】
ブロック６１５で、シャドウコピーが、ロウボリューム（raw volume）、すなわちシャドウコピーの基になる物理ブロックを表すファイルとしてオープンされる。
【００５１】
ブロック６２０で、シャドウコピーがブロック順にバックアップされる。
【００５２】
永続シャドウコピーに使用される差分領域が元のボリュームと結びつけられていないときはいつでも、差分領域を含むボリュームと元のボリュームの両方がバックアップされる。これは、両方のボリュームのシャドウコピーを同時に取り、次いでそれらのシャドウコピーにアクセスしてデータセットを作成することによって実施することができる（例えば、特許文献１参照）。
【００５３】
物理バックアップは、いくつかの重要な属性を有する。
【００５４】
・  物理バックアップは、ほとんどの場合ディスクのスパイラル読取り（spiral read）として行われる。上記のブロック６１０でシャドウコピーが作成された後で変化したブロックについては、多少のランダムアクセス生じるが、一般には、物理バックアップは、通常のフルバックアップの実施で可能な速度より、実質的に速くなるはずである。
【００５５】
・  物理バックアップでは、オブジェクトとそのオブジェクトに関係するメタデータを取得することに関して、先に説明したファイル処理オーバヘッドが生じない。したがって、このバックアップを使用すると、バックアップされるコンピュータの処理を大幅に削減できる可能性がある。
【００５６】
・  物理バックアップによって作成されたデータセットがリストアされるとき、リストアされるボリュームには、関係するボリュームのシャドウコピーが（例えば、ブロック６１０で）実施された時点でのボリュームの内容、およびその時点でそのボリューム上に存在したすべての永続シャドウコピーが含まれることになる。
【００５７】
物理バックアップによって作成されたデータセットは、差分および／または増分バックアップを含む通常のバックアップローテーションと併せて、高速リカバリにも使用することができる。物理バックアップによって作成されたデータセットはフルデータセットとして扱うことができ、差分または増分バックアップによって作成されたデータセットは物理バックアップによって作成されたデータセットを参照することができる。この場合、後続の増分または差分データセットは、最初に物理バックアップによって作成されたデータセットをリストアし、次いで任意の後続の差分および増分データセットを適用することによってリストアすることができる。
【００５８】
さらに、各差分または増分データセットを適用した後で、オプションでシャドウコピーを作成することができる。このようなオプションのシャドウコピーを作成することにより、シャドウコピーのいずれかによって表されるディスク状態への迅速な復帰が可能になり、その結果、ボリュームの破滅的な損失または破損の直前にそのボリュームで利用可能であったのと同じ正常なデータを含む状態にボリュームをリストアすることができる。
【００５９】
物理フルバックアップによってフルデータセットが作成されたとき、リストア速度は、非物理バックアップによって作成されたデータセットをリストアするより実質的に速くなる可能性があることにも留意されたい。その理由は、リストアをオブジェクト単位ではなくスパイラル書込み（spiral write）によって実行できるからである。
【００６０】
（フルデータセットの差分圧縮）
一般に、データソースは週単位では大幅には変化しない。さらに、データソースの種類によっては、ほとんど変化しないと予想されるものもある。この様なデータソースには、以下のものがある。
【００６１】
・  ＯＳバイナリ、システムサービス永続状態など、オペレーティングシステム（ＯＳ）に関連するデータソース。
【００６２】
・  グループスケジューリングや文書管理システムなどに使用される、主に読出し専用のデータベースまたはファイル記憶装置を含むデータソース。この場合、予約、連絡先、文書管理データベースなどがバックアップされる。これらのデータソースは、ドキュメントが修正されるか、またはあるオブジェクト（例えば、連絡先、カレンダー、予定表など）が変更されたときに変化する。
【００６３】
フルデータセットをオンラインで維持するコストは、（バックアップされるボリュームのサイズに応じて）かなり高価なものになる。したがって、これらのデータセットがゆっくり変化する性質を利用してフルデータセットを圧縮できると有利であり、同量の記憶容量を使用して、より多くのフルデータセットをオンラインで維持できるようになる可能性がある。
【００６４】
２つの技術を使用して、バックアップする際に差分圧縮を行うことができる。
【００６５】
・  シャドウコピー技術を使用して圧縮を行う方法。この方法については、以下で詳細に説明する。この技術は、一般に同じ場所にとどまり、位置的に移動しないブロック上で内容が変化するデータセットに対して非常に良く機能する。
【００６６】
・  差分圧縮アルゴリズムを使用する方法。このアルゴリズムを用いると、同一のデータが異なる位置、異なる時間に出現する可能性がある場合に、データセットの差分を判別することができる。
【００６７】
シャドウコピー技術に関し、一実施形態では、新しいフルバックアップは以下のように実施することができる。
１．  データセットを含むボリュームの永続シャドウコピーを作成する。
２．  元のボリューム上にある元のデータセットを、新しいフルデータセットまたは図２〜４と併せて説明した新しい合成フルデータセットで上書きする。
３．  元のデータセットを新しいデータセットにリネームする。
【００６８】
他の実施形態では、新しいフルバックアップは以下のように実施することができる。
１．  データセットを含むボリュームの永続シャドウコピーを作成する。
２．  元のボリュームを含むボリューム以外のボリューム上に、新しいフルデータセット、または図２〜４と併せて説明した新しい合成フルデータセットを作成する。
３．  元のデータセットを新しいデータセットで上書きする。
４．  元のデータセットを新しいデータセットにリネームする。
５．  他のボリューム上の新しいデータセットを削除する。
【００６９】
元のデータセットが新しいデータセットで上書きされるとき、上述のシャドウコピー技術は、（元のデータセットと新しいデータセットの間で）内容が変化したブロックを含むエクステントを差分領域に置く。名前を元のデータセット名から新しいデータセット名に変更することにより、元のデータセットのメタデータを有するブロックを含むエクステントが変化することになるので、それを差分領域に置く。これによりプログラムは、新しいデータセットまたは（シャドウコピーを介して）元のデータセットのどちらにもアクセスすることができるようになる。上記の技術を使用することによって、新しいフルデータセットのために必要な追加のディスク空間には、最後のフルデータセットと新しいフルデータセットの間で変化したエクステントだけを含めることができることが理解されよう。
【００７０】
新しいバックアップは、リモートの差分圧縮を使用して以下のように実施することができる。
１．  図２〜４と併せて説明した新しい合成フルデータセットを作成する。
２．  上述の例示的リモート圧縮アルゴリズムの１つを、元のフルデータセットおよびステップ１で作成された合成フルデータセットに適用して差分圧縮データセットを作成する。
３．  新しいデータセットを削除し、差分圧縮ファイルを新しいデータセット名にリネームする。
【００７１】
リモート差分圧縮を用いて差分圧縮データセットを作成した後で、フルデータセットは、その差分圧縮ファイルを以前のフルデータセットに適用することによって得られる。
【００７２】
（大きなデータファイルのバックアップのための差分計算）
差分または増分バックアップは、記憶装置上の各オブジェクトを検査して、差分または増分バックアップのベースになる以前のバックアップの後で、そのオブジェクトが変化したかどうかを知ることによって実施することができる。あるオブジェクトが変化したかどうかの判定は、例えば、そのオブジェクトの最後の修正日時を調べることで実施できる。オブジェクトが変化したと判定された場合は、そのオブジェクトの全体をデータセットにコピーすることができる。オブジェクトのいずれかの部分が変化するたびにオブジェクトの全体を増分または差分データセットにコピーすることは、データベースや電子メール記憶域など大きなオブジェクトについては、かなりのリソースを消費する可能性がある。しかし、これらのオブジェクトは、頻繁に変化はするが、実際にはオブジェクトのわずかな部分だけしか変化しないものである。
【００７３】
本発明の一実施形態では、最後のバックアップの後で実際に変化したオブジェクト中のエクステントは、増分または差分バックアップが実施されるときにバックアップすることができるように追跡される。このようなエクステントを追跡することは、ファイルシステムフィルタを使用して実行することができる。ファイルシステムフィルタは、コンピュータのボリューム上にある大きなファイル（例えば、１６ＭＢより大きい任意のファイル）の変化を追跡する。ファイルシステムフィルタによって追跡されるファイルのサイズは、事前に設定または選択することができる。
【００７４】
ファイルシステムフィルタは、あるボリュームに関する永続記憶装置内の以下の情報を維持することができる。
・  変化したオブジェクトへの経路
・  変化したオブジェクト中のエクステントのセット
【００７５】
本発明の一実施形態では、ファイルシステムフィルタは、オブジェクトが含むエクステントのセットの代わりに、オブジェクト中で変化したブロックのセットを追跡する。
【００７６】
図７は、本発明の様々な態様による、変化したエクステントを追跡することができる例示的なシステムを示すブロック図である。オペレーティングシステム７０５は、ファイルシステム７１５への書込みを求める要求を受信することができる。この要求は、ファイルシステムフィルタ７１０に送られる。ファイルシステムフィルタ７１０が、ファイルのエクステントの変化を追跡すべきだと判断した場合は、ファイルシステムフィルタ７１０は、永続記憶装置７２０内のどのエクステントが変化したかを記憶する。
【００７７】
増分バックアップ方式では、エクステントを追跡する永続記憶装置は、それぞれ前回のバックアップからの変化を追跡することができるように、増分またはフルバックアップが実施されるたびにリセットすることができる。差分バックアップ方式が使用された場合は、エクステントを追跡する永続記憶装置は、新しくフルバックアップが実施されるたびにリセットすることができる。
【００７８】
差分または増分バックアップでは、以下のように永続記憶装置を使用することができる。永続記憶装置内にオブジェクトへの参照が存在する場合は、差分または増分バックアップは、単に以下の項目をバックアップすることができる。  
変化したオブジェクト中のエクステントのリスト、および、  
リストに表示されたのと同じ順序のそれらエクステントの内容。
【００７９】
１組の増分データセットとフルデータセット、または差分データセットとフルデータセットからオブジェクトを再構成するために、以下の動作を実施することができる。
１．  オブジェクト中のエクステントごとに、変化したエクステントのリスト中のエクステントを含むか、またはオブジェクトのフルデータセットを含む、最新のデータセットを見つけること。および、
２．  見つけたデータセットからそのエクステントをコピーし、次のエクステントに進むこと。
【００８０】
本発明の一実施形態では、フル、差分、および増分バックアップ方式をサポートするために、エクステントの２つのリストを維持することができる。ファイルシステムフィルタは、その２つのリスト中の各候補オブジェクト（例えば、十分なサイズ、またはその他の基準）が変化したかどうかを以下の方法で追跡することができる。
【００８１】
・  最後のフルバックアップが実施された後で、各候補オブジェクト中で変化したエクステントのリストを維持すること。および、
・  最後の差分または増分バックアップが実施された後で、各候補オブジェクト中で変化したエクステントのリストを維持すること。
【００８２】
差分データセットはエクステントの第１のリストを使用して作成することができる。一方、増分データセットはエクステントの第２のデータセットを使用して作成することができる。第２のリストは、増分または差分バックアップが実施されたときは常に、リセットすることができる。第１のリストは、フルバックアップが実施されたときにリセットすることができる。
【００８３】
（データセットからのデータの直接読出し）
アプリケーションの多く（例えば、電子メール、文書管理、アクティブディレクトリなど）が、オブジェクトをデータベースに格納する。データベース全体ではなく、データベースからオブジェクトの特定のセットをリストアすることが望ましいこともある。これは、ユーザが削除しようと意図しない文書または電子メールを誤って削除したときなど、ユーザエラーからリカバリするときによくあることである。例えば、メールボックスを電子メールデータベースからリストアし、個々の文書を文書管理システムからリカバリすることは、きわめて一般的なことである。
【００８４】
一般に、この種のオブジェクトは、データベース全体に対する空間を割り振り、リストアすべきオブジェクトが望ましい状態（例えば、削除または変更されていない状態）にあった時点のデータベース全体をリストアし、次いで、アプリケーション（例えば、電子メールシステム、文書管理システム、または他の適切なアプリケーション）を使用してデータベースをマウントし、所望のオブジェクトを抽出することによってリストアすることができる。
【００８５】
データセットをディスク上に保持することによって、適切なアプリケーションを介して所望のオブジェクトにアクセスする前にデータセットをディスクにリストアする必要がなくなる場合もある。その代わりとして、アプリケーションは、データセットに格納されたファイルに直接アクセスすることができる。物理バックアップによって作成されたデータセットがボリュームのコピーとして格納されている場合は（ＭＴＦフォーマットのものとは異なり）、データセット中のヘッダまたはトレーラを削除した後で、データセットをボリュームとして直接マウントすることができる。
【００８６】
データセットがＭＴＦフォーマット（または、他のいずれかのアーカイブフォーマット）で格納されている場合は、ファイルシステムフィルタは以下の動作を実施することができる。
【００８７】
・  データセットをボリュームとして公開し、そのボリュームにアクセスできるようにすること。そのボリュームに異なる名前を与えること、すなわちローカルコンピュータの名前空間において、元のボリュームの位置と異なる位置を介してアクセスできるようにすること。
【００８８】
・  あるアプリケーションが、公開されたボリュームを介してデータベースファイルをオープンしようとする際に、ルックアップを実施して、データセットに含まれる適切なデータベースファイルを見つけ出すこと。（例えば、ファイルシステムフィルタを使用することによって）データセットがボリュームとして表示されるので、そのボリューム（したがってデータセット）中の各ファイルまたはディレクトリを直接オープンできることに留意されたい。
【００８９】
・  メタデータをボリュームから直接読み出せるようにし、オブジェクトデータを一般のファイルシステム入出力プリミティブを使用して読み出せるようにすること。
【００９０】
・  アプリケーションがボリュームにデータを書き込もうとする際に、別の位置にコピーオンライトすることによって、データセットのリードオンリーの性質を保存すること。このことは、電子メールのサーバまたはクライアントなど、リードオンリーマウントをサポートしていないアプリケーションをサポートするのに有用な場合がある。
【００９１】
ファイルシステムフィルタは、データセットに関連するオンラインカタログを使用することができる。オンラインカタログは、データセット中の各オブジェクトを、作成されたボリューム中の対応するオフセットにマップするものである。このカタログは、その中にカタログを格納していないデータセットのために作成することができる。例えば、ボリューム中のあるオブジェクトをオープンする際に、オンラインカタログでそのオブジェクトを検索して、データセット中のオフセットを見つけることができる。
【００９２】
そのオフセットで各ヘッダを使用して、オブジェクトのメタデータを抽出し、そのオブジェクトへのオフセットとそのオブジェクトのデータへのオフセットとの間のマッピングを作成することができる。オブジェクトについての読出し動作はいずれも、このマッピングに基づいて計算されたオフセットで、データセットに対して対応する読出し操作を行うことに帰着させることができる。
【００９３】
ＭＴＦフォーマットまたは非ＭＴＦフォーマットで格納されたデータセットに対して、データセットが増分または差分バックアップによって作成されている場合は、ファイルシステムフィルタは、そのデータセット、およびそのデータセットの基になる他の任意のデータセットを１つの構成単位として処理することができる。オブジェクトに関する情報を取得するために、一群のデータセットを検索して、その情報を含む最新のデータセットを見つけ出すことができる。バックアップによって作成された一群のデータセットに基づくボリュームにアクセスできるようにする前に、オンラインカタログを作成して、各オブジェクトをデータセット内の各オブジェクトに対応する位置にマップすることができる。
【００９４】
前述の詳細な説明から分かるように、バックアップに関連するデータセットを作成し、リストアし、使用するための改良された方法およびシステムが提供される。本発明については、様々な修正形態および代替構成が可能であるが、本発明のいくつかの例示的実施形態について図示し、上で詳細に説明してきた。しかし、本発明が、開示の特定の形態に限定することを意図したものではなく、逆に、本発明の趣旨および範囲に含まれるあらゆる修正形態、代替構成、および均等物を含むことを意図したものであることを理解されたい。
【図面の簡単な説明】
【００９５】
【図１】本発明を組み込むことができるコンピュータシステムを示すブロック図である。
【図２】本発明の様々な態様による、合成フルバックアップを実施するために取り得る諸動作を一般的に示す流れ図である。
【図３】本発明の様々な態様による、合成フルバックアップを実施するために取り得る諸動作を一般的に示す流れ図である。
【図４】本発明の様々な態様による、合成フルバックアップを実施するために取り得る諸動作を一般的に示す流れ図である。
【図５】本発明の様々な態様による、コピーオンライトを使用するシャドウコピー機構の諸態様を示すブロック図である。
【図６】本発明の様々な態様による、物理バックアップを実施するために取り得る諸動作を一般的に示す流れ図である。
【図７】本発明の様々な態様による、変化したエクステントを追跡することができる例示的なシステムを示すブロック図である。
【図１】
2006092553.tif 000003
【図２】
2006092553.tif 000004
【図３】
2006092553.tif 000005
【図４】
2006092553.tif 000006
【図５】
2006092553.tif 000007
【図６】
2006092553.tif 000008
【図７】
2006092553.tif 000009