(57)【要約】【課題】データのバックアップをアーカイブするためのアーカイブ保護計画を作成する方法を提供すること。【解決手段】アーカイブデータ保護の種類とアーカイブデータ保護の期間についての指示を受け取る。アーカイブデータ保護の種類とアーカイブデータ保護の期間を受け取ると、アーカイブスキーマが特定され、アーカイブスキーマを表すアーカイブ保護計画が生成される。【選択図】図４２
2011248913.tif 000002
【特許請求の範囲】
【請求項１】
データ格納要求の受信に応答してデータをアーカイブの場所に格納する複数の媒体を管理するシステムであって、
ジョブコロケーションインテントであって、データを格納するジョブに関連する各要求に対して前記複数の媒体から同じ項目の媒体を割り当てるジョブコロケーションインテントと、
ｓｏｎコロケーションインテントであって、事前に指定した期間内の最初のｓｏｎジョブに対して前記複数の媒体から新しい項目の媒体を割り当て、事前に指定した期間内の後続のｓｏｎジョブに対して前記複数の媒体から新しい項目の媒体を割り当てるｓｏｎコロケーションインテントと
を備えることを特徴とするシステム。
【請求項２】
前記ジョブコロケーションインテントは、前記データ格納要求が失敗した記憶媒体への要求を置き換える置き換え要求かどうかを判断し、
前記要求が置き換え要求であると判断するのに応じて、前記失敗した要求に割り当てられたのと同じ項目の媒体を割り当てる
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記ジョブコロケーションインテントは、前記データ格納要求が複数の要求の中で最初の要求かどうかを判断し、
前記要求が最初の要求ではないと判断するのに応じて、前の要求に割り当てられたのと同じ項目の媒体を割り当てる
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記ｓｏｎコロケーションインテントは、前記データ格納要求がｓｏｎデータセットのデータを格納する要求かどうかを判断し、
前記要求がｓｏｎデータセットのデータを格納する要求であると判断するのに応じて、最後のｓｏｎデータセットに使用されたのと同じ項目の媒体を割り当てる
ことを特徴とする請求項１に記載のシステム。
【請求項５】
ｆａｔｈｅｒ  ｓｏｎコロケーションインテントをさらに備えており、ｓｏｎジョブに対して前記ｆａｔｈｅｒ  ｓｏｎコロケーションインテントはｆａｔｈｅｒデータベースを含む１つの項目の媒体を割り当てることを特徴とする請求項１に記載のシステム。
【請求項６】
前記システムは複数のｆａｔｈｅｒデータセットを格納するように構成され、前記複数のｆａｔｈｅｒデータセットの第１のｆａｔｈｅｒデータセットは第１の項目の媒体の少なくとも一部に格納され、前記複数のｆａｔｈｅｒデータセットの第２のｆａｔｈｅｒデータセットは第２の項目の媒体の少なくとも一部に格納されることを特徴とする請求項５に記載のシステム。
【請求項７】
前記第１の項目の媒体は複数のｆａｔｈｅｒデータセットを備え、前記複数のｆａｔｈｅｒデータセットは関連することを特徴とする請求項６に記載のシステム。
【請求項８】
使用可能な媒体をリサイクルするように設定されたデータセットリサイクルインテントをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項９】
前記データセットリサイクルインテントは、前記データ格納要求と世代の同じ媒体が使用可能かどうかを判断し、世代の同じ媒体が使用可能であると判断するのに応じて、世代の同じ使用可能な媒体の中で最も古いものを割り当てることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記データセットリサイクルインテントは、複数の媒体の一部の媒体が使用可能かどうかを判断し、前記複数の媒体の一部の媒体が使用可能であると判断するのに応じて、前記使用可能な媒体を割り当てることを特徴とする請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ保護およびデータ保護システムに関し、具体的にはデータの保護と回復を制御するシステム、方法、および装置に関する。
【背景技術】
【０００２】
一般に、大規模なコンピュータシステムには、多くの場合、複数のコンピューティングデバイスと大量のデータが含まれている。こうしたシステムでは、コンピューティングデバイスが頻繁に追加されたり除去されたりする。同様に、既存のコンピューティングデバイスも、共有、Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐ、データベース、ボリュームの追加、およびコンピューティングデバイス上に格納されたデータの変更によってたびたび変化する。こうしたコンピューティングシステムを利用する組織では、多くの場合にデータのバックアップを作成することでシステム上に格納されたデータを保護する必要があるのが一般的である。
【０００３】
しかし、システム保護の責任者にはシステムへの追加および／または変更が通知されないので、新たに保護を必要とするリソースを把握できない。たとえば、サーバなどの新しいコンピューティングデバイスがシステムに追加され、システム保護の責任者にはこの追加が通知されない場合、新しいコンピューティングデバイス上のデータと新しいコンピュ
【発明の概要】
【発明が解決しようとする課題】
【０００４】
担当者が物理レベルでなく論理レベルでシステムを操作できるシステムでは、この問題が増大する。担当者は論理レベルで操作するが、保護は通常は物理レベルで指定される。こうした環境では、論理レベルの操作でバックアップ手順の変更が必要な場合に問題が発生する可能性がある。たとえば、論理パス＼＼ｈｉｓｔｏｒｙ＼ｐｕｂｌｉｃ＼ｔｏｏｌｓがサーバ上の共有ｈｉｓｔｏｒｙ１を指し示しており、＼＼ｈｉｓｔｏｒｙ＼ｐｕｂｌｉｃ＼ｔｏｏｌｓを移動してサーバ上の別の共有ｈｉｓｔｏｒｙ２を指し示すようにすることを決定した場合に、この変更を保護の責任者に通知しないと、古い共有は引き続き保護対象であるが、新しい共有は保護対象にはならない。
【０００５】
唯一の論理パスが交換可能な物理パスのセットを表し、これに基盤となるデータの同期性のコピーを格納する場合は、問題がさらに拡大する。たとえば、＼＼ｈｉｓｔｏｒｙ＼ｄｏｃｓは同等の共有ｈｉｓｔｏｒｙ１とｈｉｓｔｏｒｙ２の両方を指し示し、同等の基盤となるフォルダの一方のみをシステムで保護する必要がある。
【０００６】
保護の責任者は保護するリソースとデータを手作業で指定し、保護を手作業で構成する必要があるので、大規模なシステムのデータは一般に保護できなくなる。システムに変更があると、それが認識されない限り、データとリソースは保護対象にはならない。さらに、物理媒体へのデータのバックアップを実行するには、どの媒体を使用して保護するか、および媒体をいつ／どのようにしてローテーションするかを担当者が手作業で指定する必要がある。大規模なシステムでは、手作業による変更の特定、保護の構成、およびアーカイブの保守は複雑であり、変更は困難である。このように、手作業で保護を指定し、構成し、変更すると、保護を要するデータとリソースの漏れが発生し、保護自体に問題が生じることになる。
【０００７】
問題が発生する場合は、通常は保護システム自体から情報を提供されなくても担当者が詳細レベルで問題を特定でき、問題を解決する方法について認識している必要がある。
【０００８】
したがって、コンピュータシステムの保護を自動化し、システムに変更があった場合に特定し、保護に関する問題が発生した場合にユーザに指示を与え、さらに担当者が論理名前空間での作業によって保護を作成できるようにするためのシステム、方法、および装置が必要になる。
【課題を解決するための手段】
【０００９】
データのバックアップをアーカイブするためのアーカイブ保護計画を作成する方法を提供する。アーカイブデータ保護の種類とアーカイブデータ保護の期間に関する指示を受け取る。アーカイブデータ保護の種類とアーカイブデータ保護の期間を受け取ると、アーカイブスキーマが決定し、アーカイブスキーマを表すアーカイブ保護計画が生成される。
【００１０】
本発明の１つの態様により、データ格納要求の受信に応答してアーカイブ用の場所にデータを格納するための複数の媒体を管理するメカニズムが提供される。本メカニズムにはジョブコロケーションインテント（Ｊｏｂ  Ｃｏｌｌｏｃａｔｉｏｎ  ｉｎｔｅｎｔ）が含まれており、ジョブコロケーションインテントでは、１つのジョブに関連付けられたデータ格納要求のたびに、複数の媒体の中から同じ媒体を割り当てる。さらに、本メカニズムにはＳｏｎコロケーションインテント（Ｓｏｎｓ  Ｃｏｌｌｏｃａｔｉｏｎ  ｉｎｔｅｎｔ）が含まれており、あらかじめ指定された期間の最初のＳｏｎに続くすべてのＳｏｎについて、複数の媒体の中から最初のＳｏｎに使用したのと同じ媒体を割り当てる。
【００１１】
本発明の前述の態様および多くの付帯的な利点は、以下に示す実施形態に関する説明と添付の図面を組み合わせて参照することでより深く理解され、より明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】本発明の１つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。
【図１Ｂ】本発明の１つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。
【図１Ｃ】本発明の１つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。
【図２】本発明の１つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。
【図３】本発明の１つの実施形態による、運用場所にある保護可能オブジェクトの最初の選択と保護を説明するデータ保護システムを示す流れ図である。
【図４】本発明の１つの実施形態による、ユーザが操作し、選択するためのユーザインターフェイス上に公開され、表示される複数の名前空間と名前空間要素を示すブロック図である。
【図５】本発明の１つの実施態様による名前空間要素と保護可能オブジェクトとのマッピングを示す図である。
【図６】本発明の１つの実施態様による名前空間のタイプと名前空間要素のタイプとの関連付けスキーマを示すブロック図である。
【図７】本発明の１つの実施形態による、論理的な名前空間要素と物理的な保護可能オブジェクトとのマッピングスキーマを示すブロック図である。
【図８】本発明の１つの実施形態による、本データ保護システムで保護できる保護可能オブジェクトを含む運用場所を示すブロック図である。
【図９Ａ】本発明の１つの実施形態による、運用場所にある保護可能オブジェクトと、保護可能オブジェクトを保護対象グループにまとめる方法を示すブロック図である。
【図９Ｂ】本発明の１つの実施形態による、運用場所にある保護可能オブジェクトと、保護可能オブジェクトを保護対象グループにまとめる方法を示すブロック図である。
【図１０】本発明の１つの実施形態による、選択した名前空間要素を含む保護対象グループ、マッピングされた保護対象オブジェクト、および保護対象グループのプロパティを示すブロック図である。
【図１１】本発明の１つの実施形態による、保護対象グループを保護する計画を構成するための構成ルーチンを示す流れ図である。
【図１２】本発明の１つの実施形態による、保護対象グループの作成をより詳細に説明する保護対象グループ作成ルーチンを示す図である。
【図１３】本発明の１つの実施形態による、２つ以上の保護対象グループに含まれるデータソースの重複を検出する重複検出ルーチンを示す図である。
【図１４】本発明の１つの実施形態による、保護対象オブジェクトを回復する回復プロセスの流れを説明するデータ保護システムを示す流れ図である。
【図１５】本発明の１つの実施形態による、記憶場所に格納された回復可能オブジェクトのより詳細なビューを示すブロック図である。
【図１６】図１６は、本発明の１つの実施形態による、記憶場所から保護対象オブジェクトを回復する回復ルーチンを示す図である。
【図１７】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図１８】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図１９】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２０】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２１】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２２】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２３Ａ】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２３Ｂ】本発明の１つの実施形態による、保護された名前空間要素の再マップを解決する再マップ解決ルーチンを示す図である。
【図２４】本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。
【図２５】本発明の１つの実施形態による、再上位レベルの名前空間要素と保護可能オブジェクトとのマッピングを最初に検出する初期検出ルーチンを示す流れ図である。
【図２６】本発明の１つの実施形態による、名前空間および名前空間要素と運用場所にある保護可能オブジェクトとのマッピングを検出するスケジュールされた検出ルーチンを示す流れ図である。
【図２７】本発明の１つの実施形態による自動検出グループ作成ルーチンを示す流れ図である。
【図２８】本発明の１つの実施形態による自動検出グループ更新ルーチンを示す流れ図である。
【図２９】本発明の１つの実施形態による自動検出グループ更新ルーチンを示す流れ図である。
【図３０】本発明の１つの実施形態により、保護インテントをデータセットの保護計画に変換する方法を示す流れ図である。
【図３１】本発明の１つの実施形態による、保護インテントを運用場所にある物理オブジェクトを保護するための詳細な計画に変換するインテント変換ルーチンを示す流れ図である。
【図３２】本発明の１つの実施形態による、保護インテントを運用場所にある物理オブジェクトを保護するための詳細な計画に変換するインテント変換ルーチンを示す流れ図である。
【図３３】本発明の１つの実施形態による、保護対象グループを保護するための保護計画作成ルーチンを示す流れ図である。
【図３４】本発明の１つの実施形態による、準備計画を実行するための準備計画実行ルーチンを示す流れ図である。
【図３５】本発明の１つの実施形態による、記憶場所にあるデータのコピーの有効性を確認する有効性確認ルーチンを示す流れ図である。
【図３６】本発明の１つの実施形態による、記憶場所にあるオブジェクトのコピーの有効性を確認するスケジュールされた有効性確認ルーチンを示す流れ図である。
【図３７】本発明の１つの実施形態による、記憶場所の一部および／または記憶場所全体の状態遷移を示すブロック図である。
【図３８】本発明の１つの実施形態による、以前のインテント変換ルーチン実行中に発生した中断の後にインテント変換ルーチンを再開するための再開ルーチンを示す流れ図である。
【図３９】本発明の１つの実施形態による、データをアーカイブする計画を生成するアーカイブ保護計画作成ルーチンを示す図である。
【図４０】本発明の１つの実施形態による、アーカイブスキーマの生成に利用できるさまざまな生成の例を示す表である。
【図４１】本発明の１つの実施形態による、データをアーカイブするための媒体を割り当てるルーチンを示す流れ図である。
【図４２】本発明の１つの実施形態によるデータ保護システムを示すブロック図である。
【図４３】本発明の１つの実施形態による、データ保護システムで実行するデータ転送監視ルーチンを示す流れ図である。
【図４４】本発明の１つの実施形態による、データ保護システムで実行するデータ転送監視ルーチンを示す流れ図である。
【図４５】本発明の１つの実施形態による、運用場所から記憶場所への変更レコードの送信を再開するデータ保護システムを示す流れ図である。
【図４６】本発明の１つの実施形態による、複製の有効性を確認する有効性確認ルーチンを示す流れ図である。
【図４７】本発明の１つの実施形態による、複製の有効性を確認する有効性確認ルーチンを示す流れ図である。
【図４８Ａ】本発明の１つの実施形態による、運用場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。
【図４８Ｂ】本発明の１つの実施形態による、運用場所から記憶場所に変更レコードを送信するデータ送信ルーチンを示す流れ図である。
【図４８Ｃ】本発明の１つの実施形態による、データの有効性を確認する有効性確認ルーチンを示す流れ図である。
【図４９Ａ】本発明の１つの実施形態による、記憶場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。
【図４９Ｂ】本発明の１つの実施形態による、記憶場所でレコードを受信するレコード受信ルーチンを示す流れ図である。
【図４９Ｃ】本発明の１つの実施形態による、記憶場所に格納された複製に変更レコードを適用する変更レコード適用ルーチンを示す流れ図である。
【図５０】本発明の１つの実施形態による、複数のタスクを含むジョブを示すブロック図である。
【図５１】本発明の１つの実施形態による、タスクの監視とメイクアップジョブの作成を示す流れ図である。
【図５２】本発明の１つの実施形態による、タスクエラーを特定し、そのタスクがクリティカル（ｃｒｉｔｉｃａｌ）な場合にメイクアップジョブを作成するメイクアップジョブルーチンを示す流れ図である。
【図５３】本発明の１つの実施形態により、コピーと仮バージョンに関連する問題を診断し、問題が検出された場合に提示された訂正に関するレコードを生成する方法を示す流れ図である。
【図５４】本発明の１つの実施形態による、本データ保護システムにおけるデータのコピーに関する問題の可能性を診断するコピー診断ルーチンを詳細に示す流れ図である。
【図５５】本発明の１つの実施形態による、本データ保護システムにおけるデータのコピーに関する問題の可能性を診断するコピー診断ルーチンを詳細に示す流れ図である。
【図５６】本発明の１つの実施形態による、本データ保護システムにおけるデータのコピーに関する問題の可能性を診断するコピー診断ルーチンを詳細に示す流れ図である。
【図５７】本発明の１つの実施形態による、本データ保護システムで生成される仮バージョンに関する問題の可能性を診断する仮バージョン診断ルーチンを示す流れ図である。
【図５８】本発明の１つの実施形態による、本データ保護システムで生成される仮バージョンに関する問題の可能性を診断する仮バージョン診断ルーチンを示す流れ図である。
【図５９】本発明の１つの実施形態による、本データ保護システムにおける情報の回復に関する問題の可能性を診断する回復診断ルーチンを示す流れ図である。
【発明を実施するための形態】
【００１３】
図１Ａは、本発明の１つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。本明細書で説明するデータ保護システム１００の実施形態を使用すると、システム管理者などのユーザはデータを容易に保護し、回復することができる。一般に、データの管理と保護は、運用場所１０３で頻繁に作成され、変更されるデータに対して要求される。こうしたデータは、記憶場所１０５でデータの複製またはコピーとして保護され、格納されている。記憶場所は、運用場所からリモートに配置してもよく、および／または運用場所と同じ場所でもよい。さらに、記憶場所には記憶形態の異なる複数の場所を含めてもよい。たとえば、データの複製を１つの場所に保持し、同じデータのアーカイブを別の場所に保持してもよい。したがって、記憶場所は一般にデータを格納し、保護する場所の任意の組み合わせおよび／またはタイプを表している。
【００１４】
本明細書で説明するように、データ保護システム１００には、運用場所１０３および記憶場所１０５と通信し、運用場所１０３と記憶場所１０５の間におけるデータの保護と流れを監視するデータプロテクタ（data protector）１０１を備えている。データプロテクタ１０１は、図１Ａに示すように、サーバなどの唯一のコンピューティングデバイス上に配置してもよいし、複数のコンピューティングデバイスに分散してもよい。データプロテクタ１０１は、運用場所１０３および／または記憶場所１０５など、データ保護システム１００内のさまざまなコンピューティングデバイス上に配置されたエージェントを活用し、こうしたエージェントと通信して複数のデバイス間のデータ保護に対する分散型の制御と管理を実現する。データ保護システム１００によって提供されるデータ保護のタイプの例としては、仮バージョンによる複製、テープやディスクのような取り外し可能な媒体への従来のアーカイブ、および複製とアーカイブの両方の組み合わせが含まれるが、これに限定はされない。他の任意の形態および／または組み合わせによる保護を本発明の実施形態で利用できること、および複製、仮バージョン、アーカイブは例にすぎないことは言うまでもない。
【００１５】
図１Ｂは、データ保護システム１００の別の実施形態を示している。具体的に、データプロテクタ１１０はその一部または全体が運用場所１１１に配置されている。このような実施形態において、データプロテクタ１１０は、自らと運用場所１１１の間、および自らと記憶場所１１３の間の通信が可能である。
【００１６】
図１Ｃは、本発明の１つの実施形態による、データを保護し、回復するためのデータ保護システム１００のさらに別の実施形態を示している。図１Ｃに示すように、データプロテクタ１２０はその一部または全体が記憶場所１２３に配置されている。このような実施形態において、データプロテクタ１２０は、自らと記憶場所１２３の間、および自らと運用場所１２１の間の通信が可能である。
【００１７】
図２は、本発明の１つの実施形態による、データを保護し、回復するためのデータ保護システム２００を示す別のブロック図である。データ保護システム２００は、運用場所１  ２０３、運用場所２  ２０５．．．運用場所Ｎ  ２０７のように複数の運用場所がデータプロテクタ２０１と対話することで、運用場所から発生するデータの複製および／または仮バージョンを格納できることを示している。データプロテクタ２  ２０１は、運用場所２０３、２０５、２０７と通信し、こうした運用場所にあるデータを記憶場所Ａ  ２０９、記憶場所Ｂ  ２１１、記憶場所Ｘ  ２１３のような個々の記憶場所で保護できる。本明細書で説明する実施形態は、任意の数のデータ運用場所および記憶場所の任意の組み合わせで利用できる。
【００１８】
言うまでもないが、図１Ａ〜２に示すように、本発明の実施形態による、任意のタイプの構成によるデータ保護システムを利用してデータを保護でき、回復できる。
【００１９】
全体として、本明細書で説明するデータ保護システムの実施形態は、データ保護システムのユーザが、運用場所でどのデータが重要か、およびユーザはそのデータをどのように保護する必要があるのかを指定するための高水準の機能を提供する。特に、本明細書で説明するシステムは、特定の運用場所でどのデータを保護する必要があるのか、およびそのデータをどのように保護する必要があるのかを論理的に指定する機能を提供する。データ保護システムは、この論理的な指定を一連の「ジョブ」に変換し、ジョブをスケジュールし、実行することでデータを保護する。ジョブには、以下で説明するように、ユーザが指定したデータを保護するために必要な詳細情報が含まれる。たとえば、ジョブを使用して、複製、有効性確認、仮バージョン管理、アーカイブ、および媒体管理などを実行できる。
【００２０】
ユーザがデータを論理レベルで選択できるようにするために、データ保護システムはユーザに対して運用場所に格納されたデータの論理表現を「名前空間」および「名前空間要素」の形で提供する。名前空間は、本明細書で使用する限り、アプリケーションの論理表現である。たとえば、データ保護システム内で名前空間として表されるアプリケーションには、分散ファイルシステム（「ＤＦＳ」）、ローカルファイルシステム、ＳｈａｒｅＰｏｉｎｔやＥｘｃｈａｎｇｅ名前空間などのＷｅｂアプリケーション名前空間が含まれるがこれに限定はされない。言うまでもないが、例示的なアプリケーションのリストは単に例を示しており、いかなる限定を意味するものでもない。任意のタイプのアプリケーションをデータ保護システムと併用でき、名前空間として表される。
【００２１】
名前空間要素は、本明細書で使用する限り、データなどの物理オブジェクトの論理表現であり、名前空間を構成する主要なエンティティである。たとえば、名前空間要素は、ＤＦＳ  ｌｉｎｋ、サーバ、共有、ボリューム、フォルダ、Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐのいずれでもよいが、これに限定はされない。一般に、Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐは共通のログを共有するデータベースの集まりである。当業者には言うまでもないが、名前空間要素を使用して任意のタイプの物理オブジェクトまたは物理オブジェクトの集まりを表すことができる。
【００２２】
データを保護するために、ユーザは論理的な名前空間で検索またはナビゲートし（ｎａｖｉｇａｔｅ）、１つまたは複数の名前空間要素を選択する。選択した名前空間要素は、既存の「保護対象グループ」に関連付けられるか、またはこの名前空間要素を使用して新しい保護対象グループを作成する。名前空間要素が保護対象グループに関連付けられると、その名前空間要素に関連付けられた物理オブジェクト（データ）も保護対象グループの要素となる。保護対象グループは、本明細書で使用する限り、名前空間要素を論理的にグループ化したものであり、関連の保護対象オブジェクトに対して同じ保護規則が適用される。
【００２３】
各名前空間要素を使用して、本明細書で「保護可能オブジェクト」と呼ばれる１つまたは複数の物理オブジェクト（データ）を検出し、これを保護対象グループに追加できる。保護可能オブジェクトが検出されると、これを保護対象として選択できる。保護可能オブジェクトを保護対象として選択すると、選択した保護可能オブジェクトは保護対象グループの要素である「保護対象オブジェクト」になる。保護可能オブジェクトは、本明細書で使用する限り、保護対象となり得る物理的な情報／データである。たとえば、保護可能オブジェクトは、フォルダ、ファイル、電子メールボックス、データベース、Ｗｅｂサイトなどでよいがこれに限定はされない。保護対象オブジェクトは、本明細書で使用する限り、保護対象として指定し、選択した保護可能オブジェクトである。
【００２４】
保護対象グループを作成する以外に、ユーザは保護対象グループを保護する望ましい方法、タイミング（頻度）、期間について高水準の指定ができる。さらに、ユーザは保護対象グループのコピーまたはアーカイブを保持する期間を指定できる。こうした高水準の指定は、複製、アーカイブ、媒体管理、およびその任意の組み合わせなど、保護に関するあらゆる作業で利用できる。ユーザの指定に基づいて、保護対象グループのオブジェクトを保護するための詳細な計画が作成される。
【００２５】
ユーザは、データを回復する場合に、ユーザが回復しようとするデータを、論理的な名前空間で検索またはナビゲートすることで検出できる。以下で説明するように、ここで回復するデータへの論理パスを使用して、１つまたは複数の回復可能オブジェクトを検出する。個々の回復可能オブジェクトは、保護対象オブジェクトの１つのバージョンまたはその一部を表している。
【００２６】
図３は、本発明の１つの実施形態による、運用場所にある保護可能オブジェクトの最初の選択と保護を説明するデータ保護システム３００を示す流れ図である。図３に示すように、データ保護システム３００は、運用場所３０５にエージェントを配置して運用場所３０５にある保護可能オブジェクトを検出できるようにし、こうした保護可能オブジェクトに対応する名前空間と名前空間要素を特定する。このような名前空間と名前空間要素をユーザと対話できるように公開し、ユーザのインターフェイス３０３に表示する。
【００２７】
たとえば、図４は、ユーザが対話し、選択するためにユーザインターフェイス３０３上に公開され、表示された、本発明の１つの実施形態による複数の名前空間と名前空間要素を示すブロック図である。当業者には言うまでもないが、図４の表示は例示的なものにすぎず、本発明の実施形態では他の任意の構成で表示できる。たとえば、ボリュームは表示するが共有は表示しなくてもよい。
【００２８】
表示４００は、ＤＦＳ  ＲＯＯＴＳ名前空間４０１とＳＥＲＶＥＲＳ名前空間４０３を示している。ＤＦＳ  ＲＯＯＴＳ名前空間４０１には、２つの名前空間要素４０５と４０７が含まれており、いずれもＤＦＳ  ＲＯＯＴである。ＤＦＳ  ＲＯＯＴＳ名前空間４０１の下で特定される名前空間要素は、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ４０５と＼＼ＥＦＧ＼ＰＲＩＶＡＴＥ  ４０７である。さらに、ＳＥＲＶＥＲＳ名前空間４０３には、複数の名前空間要素４０９、４１１、４１３、４１５、４２１、４２３、４２５が含まれる。こうした名前空間要素には、さらにいくつかの名前空間要素が含まれていてもよい。たとえば、ＳＥＲＶＥＲ  ４０９には、ＳＨＡＲＥＳ名前空間要素タイプ４１１など、いくつかの名前空間要素タイプが含まれる。同様に、ＳＨＡＲＥＳ名前空間要素タイプ４１１には、ＳＨＡＲＥ１名前空間要素４１３とＳＨＡＲＥ２名前空間要素４１５が含まれる。さらに、ＳＨＡＲＥＳ名前空間要素４１１、ＳＨＡＲＥ１名前空間要素４１３、ＳＨＡＲＥ２名前空間要素４１５は、すべて保護可能オブジェクトの論理表現である。
【００２９】
ユーザは、展開ボックスまたは折りたたみボックス（たとえば展開ボックス４１７）を選択して名前空間と名前空間要素の表示４００を操作できる。さらに、ユーザは選択ボックス（たとえば選択ボックス４１９）を選択することで、１つまたは複数の名前空間要素を保護対象として選択できる。別の実施形態では、ユーザは保護の対象とする名前空間要素を選択できるだけでなく、保護の対象とする名前空間を選択してもよい。
【００３０】
図３に戻り、ユーザインターフェイス３０３に名前空間と名前空間要素の表示４００が表れると、ユーザはデータ保護システム３００で保護する必要のある名前空間要素を選択する。さらに、ユーザは選択した名前空間要素の「保護インテント」を指定できる。保護インテントは、本明細書で使用する限り、選択したデータを保護する方法に関する高水準の記述である。たとえば、ユーザは毎晩１度オブジェクトのコピーをバックアップし、週次のコピーを１年間保持することで、選択した名前空間要素を保護するように指定できる。選択した名前空間要素と関連の保護インテントは、ユーザインターフェイス３０３からデータプロテクタ３０１に転送される。
【００３１】
データプロテクタ３０１は、選択した名前空間要素と保護インテントを使用して、選択した名前空間要素で特定される保護可能オブジェクトを含む保護対象グループを作成する。保護可能オブジェクトは、選択すると保護対象オブジェクトになる。保護対象グループには、選択した名前空間要素、特定された関連の保護対象オブジェクト、保護対象オブジェクトを保護する方法についての詳細な計画が含まれる。さらに、データプロテクタ３０１は以下で説明するように少なくとも１つの自動検出グループを作成する。１つの実施形態において、データプロテクタ３０１は、後述するように保存検索ルーチンも作成できる。
【００３２】
保護対象グループの作成は、選択した論理オブジェクト（名前空間要素）を運用場所にある関連の保護可能オブジェクトにマップすることによる。これで、特定された保護可能オブジェクトは保護対象グループのメンバーとして追加され、保護対象オブジェクトになる。保護可能オブジェクトは、既存の保護対象グループに追加することも、新しい保護対象グループを構成することもできる。さらに、保護インテントを使用して保護対象グループを保護するためのグループ計画を作成する。グループ計画には、リソース計画、準備計画、保護計画が含まれるがこれに限定はされない。それぞれの計画については、以下で詳細に説明する。グループ計画とグループ内の計画は、１つまたは複数のジョブとスケジュールパラメータから構成される。リソース計画では、割り当てるリソースの量を指定する。割り当てるリソースには、複製用のディスク領域、ディスクやテープなどのアーカイブ用の取り外し可能な媒体、複製と取り外し可能な媒体の両方の組み合わせなどを含めてもよいがこれに限定はされない。スケジュールパラメータは、ジョブをいつ実行するかを指定する。
【００３３】
データプロテクタ３０１は、保護対象グループ、データを保護するための計画、自動検出グループ、保存検索を生成した後、運用場所３０５と記憶場所３０７に対して保護の準備をする。具体的には、データプロテクタは通信を有効化し、運用場所３０５から記憶場所３０７にデータを転送するエージェントを配置する。運用場所と記憶場所における保護の準備が完了すると、保護が開始され、保護対象オブジェクトのデータのコピーが運用場所３０５から記憶場所３０７に転送される。転送されたデータのコピーは、以下で説明するように、複製、アーカイブコピー、または他の任意のデータ保護タイプとして保持できる。
【００３４】
以下で詳細に説明するように、記憶場所３０７に対して保護の準備をする場合に、データプロテクタ３０１はユーザの要求どおりに物理オブジェクトのコピーを格納するために必要なリソースを割り当てる（リソース計画に従って）。保護を開始するために、運用場所３０５に格納された保護可能オブジェクトの中から選択したオブジェクトの最初のコピーを作成し、コピーを転送し、コピーを記憶場所３０７に格納するジョブを開始する。コピーが複製の場合は、有効性確認ジョブを実行することでその有効性を確認し、複製が正確であることを保証する。コピーが取り外し可能な媒体にアーカイブされている場合に、最初のコピーは選択した保護可能オブジェクトの完全バックアップである。最初のコピーを生成すると、データプロテクタ３０１は、定期的にそのコピーを更新するジョブ、または運用場所３０５に配置された情報の変更を使用して追加のコピーを作成するジョブを作成する（アーカイブと同様）。
【００３５】
運用場所３０５に格納された保護可能オブジェクトの中から選択した名前空間要素に関連付けられたオブジェクトを特定するために、データプロテクタ３０１は、論理オブジェクト（名前空間要素）を物理オブジェクト（保護可能オブジェクト）にマップする。もう一度図４を参照すると、２つの名前空間、ＤＦＳ  ＲＯＯＴＳ  ４０１、ＳＥＲＶＥＲＳ名前空間４０３が表示されており、それぞれが複数の名前空間要素を含んでいる。ユーザは名前空間要素の１つまたは複数を選択できる。１つの実施形態において、１つの名前空間要素を選択すると、この要素に含まれるすべての名前空間要素もデフォルトで選択される。図４を例にとり、ユーザがＳＥＲＶＥＲ１  ４０９のＳｔｏｒａｇｅ  Ｇｒｏｕｐ１  ４２１を選択すると、ＤＡＴＡＢＡＳＥ  Ａ  ４２３とＤＡＴＡＢＡＳＥ  Ｂ  ４２５も自動的に選択される。ユーザは選択した１つまたは複数の名前空間要素を除外してもよい。
【００３６】
各名前空間要素は、運用場所３０５にある１つまたは複数の保護可能オブジェクトにマップされる。たとえば、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ４０５は複数の保護可能オブジェクトにマップされる。図５を参照すると、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ５０５は、運用場所３０５に配置された３つの保護可能オブジェクトにマップされる。具体的に、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ５０５は、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  ５０７、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ  ５０９、ｓｅｒｖｅｒ３上のＦ：＼  ５１１にマップされる。保護可能オブジェクト５０７、５０９、５１１は、それぞれ運用場所３０５内に配置されている。
【００３７】
データプロテクタが名前空間を検索し、ナビゲートし、さらに名前空間要素５０５などの論理オブジェクトから物理オブジェクトへのマップを行うために、名前空間と名前空間要素の関連付けスキーマが作成される。このスキーマはアプリケーション名前空間の構成の抽象表現であり、名前空間と考えられるものには分散ファイルシステムやＥｘｃｈａｎｇｅが含まれるがこれに限定はされない。
【００３８】
図６は、本発明の１つの実施態様による、ボリュームスキーマ（Ｖｏｌｕｍｅｓ  Ｓｃｈｅｍａ）を表す名前空間のタイプと名前空間要素のタイプの関連付けスキーマを示すブロック図である。このスキーマは有向グラフとして表わされており、グラフのノードはアプリケーション名前空間内の名前空間要素のタイプを表し、リンクは名前空間要素間の包含関係や結合関係を表している。名前空間要素のタイプ間の包含関係や結合関係は、このようなタイプのインスタンスが関係する可能性のあるすべての方法を表している。図６を参照すると、包含関係を矢印の付いた線で示し、結合関係を矢印が２つ付いた線で示している。たとえば、タイプ「ＤＦＳ  ｒｏｏｔ」の名前空間要素６０３は、タイプ「共有」の名前空間要素６０９に接続でき６１７、共有６０９はボリューム６１１に接続できる６１９。またはフォルダ６１５に接続してもよい。
【００３９】
包含関係は名前空間要素間の直接的な親／子関係であり、親は論理的に子から構成されている。たとえば、ドメイン６０１には、サーバ６０７が含まれ６２３、さらにＤＦＳ  ＲＯＯＴ６０３が含まれる６２５。サーバ６０７には、共有６０９が含まれ６２７、ボリューム６１１が含まれる６２９。ボリューム６１１には、フォルダ６１５が含まれ６３１、マウントポイント６１３が含まれる６３３。フォルダ６１５には、他のフォルダとファイルが含まれる（図示せず）。
【００４０】
結合関係はソース／ターゲットの関係であり、結合関係におけるソース名前空間要素はターゲット名前空間要素の論理的な同義語であり、ソースパスとターゲットパスは２つの異なる名前空間の同じ基本オブジェクトを表すことを意味する。結合関係は、１対多数の関係でもよい。すなわち、唯一のソース名前空間要素に対して複数のターゲット名前空間要素を指定できる。この場合、ターゲットはソースで表される基本的なデータを取得する選択的な場所を表す。たとえば、ＤＦＳ  ｒｏｏｔ  ６０３はターゲットとして複数の共有６０９にマップできる６１７。結合関係は多数対１でもよい。ちまり、接続のターゲットには他の名前空間における複数の論理名があってもよい。たとえば、フォルダ６１５では多くの共有６０９がこのフォルダ６１５にマップされてもよい６２１。
【００４１】
さらに、複数の論理的な名前空間要素を同じ保護可能オブジェクトにマップしてもよい。たとえば、ＳＨＡＲＥ１名前空間要素５１３はｓｅｒｖｅｒ１  ５１５のＥ：＼ＰＲＩＶＡＴＥにマップされる。同様に、ＳＨＡＲＥ２  名前空間要素５１７もＳＥＲＶＥＲ１  ５１５のＥ：＼ＰＲＩＶＡＴＥにマップできる。
【００４２】
図７は、本発明の１つの実施形態による、論理的な名前空間要素と物理的な保護可能オブジェクトとのマッピングスキーマを示すブロック図である。具体的に、スキーマ７００はドメインＡＢＣＤ  ７０１がＤＦＳ  ＲＯＯＴ−ｐｕｂｌｉｃ  ７０３および３台のサーバ７０５と包含関係があることを示している。同様に、ＤＦＳ  ＲＯＯＴ−ｐｕｂｌｉｃ  ７０３は、ｌｉｎｋ１  ７０７Ａ、ｌｉｎｋ２  ７０７Ｂ、ｌｉｎｋ３  ７０７Ｃを含む３つのＤＦＳ  ｌｉｎｋ  ７０７と包含関係がある。Ｌｉｎｋ１  ７０７Ａ、ｌｉｎｋ２  ７０７Ｂ、ｌｉｎｋ３  ７０７Ｃには、それぞれ共有７１１への結合関係がある。具体的には、Ｌｉｎｋ１  ７０７Ａは＼＼ｓｅｒｖｅｒ１＼ｓｈａｒｅに接続し、ｌｉｎｋ２  ７０７Ｂは＼＼ｓｅｒｖｅｒ２＼ｓｈａｒｅに接続し、ｌｉｎｋ３  ７０７Ｃは＼＼ｓｅｒｖｅｒ３＼ｓｈａｒｅに接続する。＼＼ｓｅｒｖｅｒ１＼ｓｈａｒｅ、＼＼ｓｅｒｖｅｒ２＼ｓｈａｒｅ、＼＼ｓｅｒｖｅｒ３＼ｓｈａｒｅは、それぞれＤＦＳ名前空間とは異なる名前空間の論理オブジェクトである。これはＤＦＳ  ｌｉｎｋ  ７０７と共有７１１との接続７１９をトラバースすること（ｔｒａｖｅｒｓａｌ）によって示される。具体的に、＼＼ｓｅｒｖｅｒ１＼ｓｈａｒｅ、＼＼ｓｅｒｖｅｒ２＼ｓｈａｒｅ、＼＼ｓｅｒｖｅｒ３＼ｓｈａｒｅは、ＵＮＣサーバ名前空間にある。共有７１１を参照し、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣのマップを完了するために、各共有が何にマップされるかを特定する。前述のように、共有はボリューム７１３および／またはフォルダ７１７にマップできる。このように、例で続けると、論理オブジェクト＼＼ｓｅｒｖｅｒ１＼ｓｈａｒｅはｓｅｒｖｅｒ１上の物理オブジェクトＤ：＼ｆｏｌｄｅｒにマップされ、＼＼ｓｅｒｖｅｒ２＼ｓｈａｒｅはｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒにマップされ、＼＼ｓｅｒｖｅｒ３＼ｓｈａｒｅはｓｅｒｖｅｒ３上のＦ：＼にマップされることが特定される。ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ、ｓｅｒｖｅｒ３上のＦ：＼は、論理オブジェクト＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ５０５で表される３つの物理的な保護可能オブジェクトである。
【００４３】
図７の例に示すように、これはスキーマ６００（図６）を使用して、論理的な名前空間要素、その名前空間要素で表される運用場所にある物理オブジェクトへのマップの関係から特定できる。スキーマ６００の各ポイントから、マップの次の要素にリンクするために、そのポイントからどの関係を検索できるのかがわかる。
【００４４】
データプロテクタの名前空間トラバース機能は、論理的な名前空間と名前空間要素から運用場所にある物理オブジェクトの参照、検索、マップを行う任意のタイプのアプリケーションに適用できる。たとえば、ユーザはユーザインターフェイスを介してワイルドカードなどの検索パラメータを指定でき、データ保護システムは既存の名前空間と名前空間要素のリストに問い合わせて適切な結果を返すことができる。ユーザインターフェイスは検索要求をデータプロテクタに渡し、データプロテクタはユーザインターフェイスに検索結果を返す。データプロテクタは、名前空間にまたがる「検索」、「ナビゲート」「マップ」という一般的な操作をサポートする。このとき、各アプリケーション名前空間の特定の構造をスキーマ内に取り込むことができる。データプロテクタを拡張して新しいアプリケーションをサポートするようにするには、名前空間上で基本の操作を実行して包含関係と結合をトラバースするモジュールと、こうした操作をより大規模な「検索」、「ナビゲート」、「マップ」の操作に構成する方法を説明するスキーマを用意するだけでよい。
【００４５】
本発明の１つの実施形態は、データ保護以外のアプリケーションにも適用できる。たとえば、記憶領域が運用場所全体あるいは運用場所内の一連のサーバ間でどのように使用されているかを示すストレージレポートを作成してもよい。こうした実施形態において、ユーザはＤＦＳ  ｒｏｏｔの下の１００ＭＢより大きなファイルをすべて表示するレポートを設定できる。
【００４６】
運用場所には、保護対象となり得るさまざまなタイプのオブジェクトが格納されている。たとえば、図８は、本発明の１つの実施形態による、本データ保護システムで保護できる保護可能オブジェクトを格納する運用場所８００を示すブロック図である。運用場所８００には、３台のサーバ８０１、８０３、８０５が配置されている。各サーバは、単独のコンピューティングデバイスでもよいし、１台のサーバと見なされるコンピューティングデバイスのグループでもよい。各サーバは、中央に配置されていてもよいし、地理的に分散していてもよい。
【００４７】
サーバ１  ８０１などのサーバには、１つまたは複数の「データソース」が含まれる。データソースは、本明細書で使用する限り、データプロテクタで操作するアプリケーションデータの高水準の抽象化である。データソースはその物理的なデータが１つまたは複数の保護可能オブジェクトとして表示され、データソース自体が保護可能オブジェクトと考えられる。データソースは１台のサーバに含まれるが、１台のサーバには１つまたは複数のデータソースが含まれていてもよい。たとえばサーバ１  ８０１には２つのデータソース、データソース１（ＤＳ１）８０７とデータソース２（ＤＳ２）８２１が含まれている。
【００４８】
同様に、データソース１  ８０７には、６つの保護可能オブジェクト８０９、８１１、８１３、８１５、８１７、８１９が含まれる。同様に、データソース２  ８２１には、２つの保護可能オブジェクト８２３、８２５が含まれる。データソースに保護可能オブジェクトが含まれるだけでなく、データソース自体が保護可能オブジェクトと考えられる。さらに、保護可能オブジェクトは他の保護可能オブジェクトを含むことができる。たとえば、データソース３  ８３５には、８つの保護可能オブジェクト８２７、８２９、８３１、８３３、８３７、８３９、８４１、８４３が含まれる。保護可能オブジェクト８３７には保護可能オブジェクト８３９が含まれており、８３９には保護可能オブジェクト８４１と８４３が含まれている。
【００４９】
サーバ３  ８０５には４つのデータソース、データソース４（ＤＳ４）８４５とデータソース５（ＤＳ５）８５１、データソース６（ＤＳ６）８５７、およびデータソース７（ＤＳ７）８５９が含まれている。４つのデータソース８４５、８５１、８５７、８５９はそれぞれ保護可能オブジェクトと考えられる。データソース４  ８４５には、２つの保護可能オブジェクト８４７と８４９が含まれる。データソース５  ８５１には２つの保護可能オブジェクト８５３と８５５が含まれており、データソース６  ８５７には保護可能オブジェクトは含まれていない。データソース７  ８５９には２つの保護可能オブジェクト８６１と８６３が含まれている。
【００５０】
個々の保護可能オブジェクトは特定の保護可能オブジェクトタイプに分類され、データ保護システムは各データソース内の保護可能オブジェクトをさまざまな粒度のレベルで表示できる。たとえば、データ保護システムはＥｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐデータソース全体を保護可能オブジェクトとして表示でき、保護対象オブジェクトタイプはストレージグループとなる。また、データ保護システムは同じストレージグループのデータソースを、各保護可能オブジェクトの保護可能オブジェクトタイプがデータベースであるような複数の保護可能オブジェクトに分割することもできる。同じ保護可能オブジェクトが、２つ以上の異なる保護可能オブジェクトタイプであってもよい。たとえば、データ保護システムは、ブロックレベルで１つの保護可能オブジェクトタイプの保護可能オブジェクトとして、またファイルレベルでは別の保護可能オブジェクトタイプの保護可能オブジェクトとしてボリュームを表示できる。
【００５１】
データソースの例には、オペレーティングシステム、システムボリューム、Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐ、ＳＱＬデータベースなどが含まれるが、これに限定はされない。サーバに関する保護可能オブジェクトタイプの例には、システム保護対象ファイルやオペレーティングシステムデータストア（レジストリやアクティブディレクトリなど）が含まれるが、これに限定はされない。ファイルシステムボリュームの保護可能オブジェクトタイプには、ディレクトリやファイルが含まれるが、これに限定はされない。ファイルシステムボリュームエンティティは、ターゲット名前空間要素にリンクされたファイル共有またはＤＦＳによって検出できる。Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐの保護可能オブジェクトタイプには、データベースやメールボックスが含まれるがこれに限定はされない。
【００５２】
前述のように、選択可能な名前空間要素は、それぞれ保護可能オブジェクト８０１〜８６３（図８）などの１つまたは複数の保護可能オブジェクトにマップされる。各保護可能オブジェクトは特定の保護可能オブジェクトタイプに分類され、各保護可能オブジェクトは唯一のデータソースに含まれる。さらに、各データソースは運用場所にある唯一のサーバに含まれる。
【００５３】
ユーザが名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ４０５（図４）を選択し、引き続き名前空間要素を保護可能オブジェクトにマップする（図５と７に関連して説明したように）例をもう一度参照しながら、本発明の実施形態に従ってこうした保護可能オブジェクトと関連を保護対象グループにマップする方法について、図９Ａ〜９Ｂに関連して説明する。
【００５４】
ユーザの観点から見ると、保護対象グループのメンバーは、ユーザが選択して保護対象グループに追加した名前空間要素、および自動検出グループ（後述）の結果として追加された保護可能オブジェクトによって定義される。さらに、データ保護システムを使用すると、ユーザは保護対象グループの各名前空間要素がどの保護対象オブジェクトにマップされるか、およびこうした各保護対象オブジェクトの状態を確認できる。
【００５５】
前の例に戻り、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ４０５は、３つの異なる保護可能オブジェクト、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  ５０７、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ  ５０９、ｓｅｒｖｅｒ３上のＦ：＼  ５１１にマップされる。図７に関連して説明したマップを実行し、図９Ａを参照すると、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  ５０７は、ｓｅｒｖｅｒ１  ９０１上のデータソースＤ：＼  ９０７に格納されたｆｏｌｄｅｒ  ９０９を表す。ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ  ５０９は、ｓｅｒｖｅｒ２  ９０３上のデータソースＤ：＼  ９３５に格納されたｆｏｌｄｅｒ  ９２７を表す。最後に、ｓｅｒｖｅｒ３上のＦ：＼  ５１１は、ｓｅｒｖｅｒ３  ９０５上のデータソースＦ：＼  ９５１を表す。図９Ｂを参照すると、選択した名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ５０５は、図９Ａに関連して説明した保護対象オブジェクトにマップされ、こうしたオブジェクトは保護対象グループ９３０に関連付けられる。前述のように、選択した保護対象オブジェクトに含まれる保護可能オブジェクトは自動的に保護対象グループに含まれる。たとえば、一部がｓｅｒｖｅｒ３  ９０５上のＦ：＼  ９５１にマップされる＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  ５０５を選択すると、保護可能オブジェクト９５３と９５５が追加される。これは、オブジェクト９５３と９５５がｓｅｒｖｅｒ３  ９０５上の保護対象オブジェクトＦ：＼  ９５１に含まれるためである。図９Ｂに示すように、保護対象グループ９３０には、ｓｅｒｖｅｒ１  ９０１、ｓｅｒｖｅｒ２  ９０３、ｓｅｒｖｅｒ３  ９０５のように、異なるサーバ上に配置された保護対象オブジェクトを含めることができる。
【００５６】
図１０は、本発明の１つの実施形態による、選択した名前空間要素を含む保護対象グループ、マッピングされた保護対象オブジェクト、および保護対象グループのプロパティを示すブロック図である。具体的には、保護対象グループ１０３０には、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  １００５、前の例に関して説明したマップされた保護対象オブジェクトのそれぞれ、および選択した保護対象オブジェクトに含まれる保護対象オブジェクトが含まれる。具体的には、保護対象グループ１０３０には、保護対象オブジェクト、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  １００９、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ  １０２７が含まれる。さらに、保護対象グループ１０３０には、ｓｅｒｖｅｒ３上の保護対象オブジェクトＦ：＼  １０５１とｓｅｒｖｅｒ３上の保護対象オブジェクトＦ：＼  １０５１に含まれる２つの保護対象オブジェクト１０５３と１０５５が含まれる。
【００５７】
保護対象グループ１０３０などの各保護対象グループには、スケジュール１０４１、領域割り当て規則１０４３などが含まれるグループ計画１０４０を含めてもよい。グループ計画には、グループを保護するためのジョブやその他の情報が含まれる。保護対象グループは、操作を簡素化するために保護対象オブジェクトを収集する。保護対象グループに属するすべての保護対象オブジェクトは、同じ保護インテントの集合から生成された同じグループ計画を共有する。
【００５８】
要約すると、保護対象グループには１つまたは複数の保護対象名前空間要素が含まれる。各保護対象名前空間要素によって、１つまたは複数の保護可能オブジェクトが検出される。次に、保護可能オブジェクトはデータソース上に配置される。データソースは、最大１つの保護対象グループのメンバーになり得る。保護を実行する間に、保護対象グループのマッピングは定期的に再評価され、場合によっては保護対象グループ自体に含める必要のある新しく検出された保護可能オブジェクトを特定し、保護対象オブジェクトへの論理パスの変更を検出する。この定期的な評価は、後述する自動検出グループを使用して実現する。
【００５９】
図１１、１２、１３、１６、２３Ｂ、２５、２６、２７、２８、２９、３０、３１、３２、３３、３４、３５、３６、３８、３９、４１、４８Ａ、４８Ｂ、４８Ｃ、４９Ａ、４９Ｂ、４９Ｃ、５２、５３、５４、５５、５６、５７、５８、５９に関連して、本発明の実施形態によって実装されるさまざまなルーチンを説明する。当業者には言うまでもないが、こうしたルーチンはサーバなどの唯一のコンピューティングデバイス上に実装してもよいし、多くのコンピューティングデバイスに分散してもよい。図１１、１２、１３、１６、２３Ｂ、２５、２６、２７、２８、２９、３０、１１、３２、３３、３４、３５、３６、３８、３９、４１、４８Ａ、４８Ｂ、４８Ｃ、４９Ａ、４９Ｂ、４９Ｃ、５２、５３、５４、５５、５６、５７、５８、５９では、特定の機能を実現するためのブロックを図示している。別の実施形態では、使用するブロックがこれより多くても少なくてもよい。本発明の実施形態において、ブロックはソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア関数、ソフトウェアサブルーチン、ソフトウェアメソッド、ソフトウェアインスタンス、コード片、ハードウェア操作、もしくはユーザ操作を、単独で、あるいは組み合わせによって表すことができる。
【００６０】
図１１は、本発明の１つの実施形態による、保護対象グループを保護する計画を立てるための構成ルーチンを示す流れ図である。構成ルーチン１１００は、ブロック１１０１で開始され、ブロック１１０３でルーチンはユーザインターフェイスを介して選択した名前空間要素と保護インテントを取得する。後述するように、ユーザは保護の対象として複数の名前空間要素を選択できる。指定した保護インテントは選択したすべての要素に適用される。ブロック１１０５で、選択した名前空間要素は該当する保護可能オブジェクトにマップされる。
【００６１】
判断のブロック１１０７で、前に選択した名前空間要素に追加される名前空間要素が選択されているかどうかを判断する。判断のブロック１１０７で、追加の名前空間要素が選択されていると判断した場合は、ルーチンはブロック１１０３の選択した名前空間要素の取得に戻る。しかし、判断のブロック１１０７で追加の名前空間要素がないと判断した場合に、ブロック１１０９でデータプロテクタは選択した名前空間要素に対応する保護対象グループを生成し、これを使用してブロック１１０５でマップされた関連の保護可能オブジェクトを保護する。保護対象グループに追加された保護可能オブジェクトは、保護対象オブジェクトになる。
【００６２】
ブロック１１１１で、ユーザがブロック１１０３で指定した保護インテントに基づいて、保護のためのグループ計画が生成される。保護に関するグループ計画には、保護の頻度や望ましい保護のタイプを含めることができる。保護タイプの例には、「バックグラウンド保護」、「バックアップ保護」、アーカイブ保護が含まれるが、これらに限定はされない。バックグラウンド保護は、ほとんど連続的に保護が行われる（たとえば２４時間年中無休で１時間ごとにコピーを更新する）保護のタイプである。バックアップ保護は、特定のインスタンス（たとえば、夜間に一度、毎晩）を実行するようにスケジュールされる保護タイプである。グループ計画は、保護対象グループ内のすべての保護対象オブジェクトに適用される。グループ計画の生成については、以下で詳細に説明されており、「インテント変換」と呼んでいる（図３１〜３４）。
【００６３】
ブロック１１１３で、保護対象オブジェクトを格納する運用場所とこのオブジェクトのコピーを格納する記憶場所に対して保護の準備をする。たとえば、データプロテクタは記憶場所に格納され、有効性が確認されたデータの最初のコピーを作成する。ブロック１１１５に示すように、保護が継続され、選択した名前空間要素に関連付けられた保護対象オブジェクトがコピーされて格納された後、ルーチンはブロック１１１７で終了する。
【００６４】
図１２は、本発明の１つの実施形態による、ブロック１１０９（図１１）に示す保護対象グループの作成をより詳細に説明する保護対象グループ作成ルーチンを示している。保護対象グループ作成ルーチン１２００は、ブロック１２０１で開始され、ブロック１２０３で保護の対象として選択した名前空間要素を受け取る。さらに、選択した名前空間要素に関する保護インテントも受け取る。判断のブロック１２０５で、受け取った名前空間要素を新しい保護対象グループに追加するか、それとも既存の保護対象グループに追加するかを判断する。名前空間要素を新しい保護対象グループに追加しないと判断した場合は、ブロック１２０７で、名前空間要素を追加する既存の保護対象グループを選択する。
【００６５】
ブロック１２０９で名前空間要素に関連付けられたデータソースの重複が解決される。このブロックについては、以下（図１３）で詳細に説明する。最後にブロック１２１１で、追加の名前空間要素と関連の保護可能オブジェクトを含むように既存の保護対象グループが更新される。さらに、ユーザは保護対象グループのグループ計画を変更することもできる。
【００６６】
判断のブロック１２０５に戻り、受け取った名前空間要素を新しい保護対象グループに追加すると判断した場合は、ブロック１２１３で、それらの名前空間要素に関連付けられたデータソースの重複を解決する。ブロック１２１５で、新しい保護対象グループの名前を受け取る。１つの例では、ユーザがユーザインターフェイスを介して新しい保護対象グループの名前を指定してもよい。あるいは、保護対象グループの名前をデータ保護システム自体で自動的に生成してもよい。ブロック１２１７で、前にデータ保護システムに対して指定した保護インテントに基づいて、保護対象グループに関するグループ計画を作成する。ブロック１２１９で、保護対象グループ作成ルーチンが終了する。
【００６７】
図１３は、本発明の１つの実施形態による、２つ以上の保護対象グループに含まれるデータソースの重複を検出する重複検出ルーチン（図１２のブロック１２０９と１２１３に対応する）を示す図である。重複検出ルーチン１３００は、ブロック１３０１で開始され、判断のブロック１３０３で、選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが別の保護対象グループ（既存の保護対象グループ）に現在含まれているかどうかを判断する。選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが既存の保護対象グループには含まれていないと判断した場合に、ルーチンはブロック１３１３で終了し、保護対象グループ作成ルーチン１２００（図１２）などの適切なルーチンに制御を返す。
【００６８】
しかし、選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが既存の保護対象グループに含まれている（すなわち重複する）と判断した場合は、判断のブロック１３０５〜１３０７で、検出した重複をどのように解決すればよいかを判断する。本発明の実際の実施形態では、重複の解決はユーザの判断に基づいている。たとえば、重複が検出された場合に、ユーザは現在の保護対象グループから重複するデータソースの保護可能オブジェクト（「重複する保護可能オブジェクト」）を除外するか（１３０５）、あるいは既存の保護対象グループから重複の原因となっている重複する保護可能オブジェクトを含むデータソースを削除し、それを現在の保護対象グループに追加するか（１３０７）のオプションを選択できる。別の実施形態では、重複を解決するためのグローバルなポリシーをユーザが指定し、これを使用して重複検出ルーチン１３００の処理を進めてもよい。さらに別の実施形態では、重複の原因となる保護対象グループに保護可能オブジェクトを追加しようとするとエラーになる。
【００６９】
判断のブロック１３０５で、重複する保護可能オブジェクトを現在追加しようとしている保護対象グループ（現在の保護対象グループ）から除外する必要があるかどうかを判断する。判断のブロック１３０５で、重複する保護可能オブジェクトを現在の保護対象グループから除外する必要があると判断した場合は、該当する保護可能オブジェクトが現在の保護対象グループから削除されるが、重複の原因となる既存の保護対象グループには残り、ブロック１３１３に示すように、重複検出ルーチンは自らを起動したルーチンに制御を返す。
【００７０】
判断のブロック１３０５で、重複する保護可能オブジェクトを現在の保護対象グループから除外する必要がないと判断した場合に、ルーチンは判断のブロック１３０７でこの保護可能オブジェクトのデータソースとそのデータソース内に含まれるすべての保護可能オブジェクトを既存の保護対象グループから削除し、削除したデータソース、削除した保護対象オブジェクト、重複する保護可能オブジェクトを現在の保護対象グループに追加するかどうかを判断する。データソースとこれに含まれる保護対象オブジェクトを既存の保護対象グループから削除し、現在の保護対象グループに追加した場合に、ルーチンはブロック１３１３で終了し、呼び出し元の適切なルーチンに制御を返す。
【００７１】
判断のブロック１３０７で、重複する保護可能オブジェクトのデータソースとこれに含まれるすべての保護対象オブジェクトを既存の保護対象グループから削除して現在の保護対象グループに追加する作業をしないと判断した場合に、重複保護ルーチン１３００はブロック１３１１に示すように重複エラーを生成し、ブロック１３１３で終了する。
【００７２】
ユーザは保護可能オブジェクトを表す名前空間要素を選択することで、運用場所に格納された物理オブジェクト（保護可能オブジェクト）を保護できるのと同様に、回復する必要がある物理オブジェクト（回復可能オブジェクト）を表す名前空間要素を選択することで、この物理オブジェクトを回復することもできる。図１４は、本発明の１つの実施形態による、保護対象オブジェクトを回復する回復プロセスの流れを説明する本データ保護システムを示す流れ図である。オブジェクトを回復するために、ユーザは回復する必要のある保護対象オブジェクトを表す１つまたは複数の名前空間要素を選択する。データプロテクタ１４０１は、選択した名前空間要素を受け取ると、記憶場所１４０３に問い合わせてユーザが指定する選択した名前空間要素に関連付けられた回復可能オブジェクトの仮バージョンを特定する。別の実施形態では、記憶場所１４０３に問い合わせて仮バージョンを特定する必要はない。たとえば、アーカイブから回復する場合に、データプロテクタ１４０１は使用可能な仮バージョンの識別情報を格納するカタログまたはデータベースを検索することで仮バージョンを特定してもよい。特定した仮バージョンが統合され、特定の時点の表現としてユーザに提供されると、この時点までのデータを復元できる。
【００７３】
ユーザは回復する特定の時点を選択し、その時点に関する回復インテントを指定する。回復インテントの例については以下に詳述する。ユーザから回復対象とこれに対応する回復インテントを受け取ると、データプロテクタ１４０１は回復計画を作成して実行し、記憶場所１４０３に格納された適切な回復可能オブジェクトを回復して運用場所１４０５に送信する。
【００７４】
図１５は、本発明の１つの実施形態による、記憶場所１４０３に格納された回復可能オブジェクトのより詳細なビューを示すブロック図である。一般に、損傷または欠落した保護対象オブジェクト（あるいはその一部）は、回復によって以前の仮バージョンに戻る。仮バージョンは、離散的でもほぼ連続的でもよい。離散的な仮バージョンは、保存されている保護対象オブジェクトの現存する特定の時点の完全なコピーから得られる。離散的な仮バージョンの回復では、保護対象オブジェクトの復元のみでよい場合も、復元後に追加の回復処理が必要な場合もある。ほぼ連続的な仮バージョンは、保護対象オブジェクトに関連するログの現存する特定の時点のコピーから得られる。回復は、ログのロールフォワードアプリケーションによって実行される。本発明の１つの実施形態では、ロールフォワードはログに記録された任意の時点で停止できる。
【００７５】
回復可能オブジェクトは、本明細書で使用する限り、保護対象オブジェクトの回復可能な要素である。個々の回復可能オブジェクトは、１つまたは複数の回復ソースから生成できる。回復ソースは、複製に関連する仮バージョン、複製、アーカイブテープ、あるいはディスク上のアーカイブコピーのいずれにあってもよい。
【００７６】
ここで図１５を参照すると、保護対象オブジェクト１５０９には、１つまたは複数の回復可能オブジェクト１５１１、１５１３、１５１５、１５１７、１５１９、１５２１が含まれている。一般に、回復可能オブジェクトは保護対象オブジェクトより細かく分割できる。たとえば、保護対象オブジェクトはｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  １５０９などのフォルダでもよい。この保護対象オブジェクト１５０９には、複数の回復可能オブジェクトが含まれていてもよい。たとえば、保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  １５０９には、６つの回復可能オブジェクト、すなわちファイル１  １５１１、ファイル２  １５１３、ファイル３  １５１５、ファイル４  １５１７、ファイル５  １５１９、ファイル６  １５２１が含まれる。さらに、保護対象オブジェクト１５０９も回復可能オブジェクトでもある。
【００７７】
多くの場合、初めに選択した保護対象オブジェクトと保護の方法によって、利用できる回復可能オブジェクトおよび／または回復に必要な作業が決まる。たとえば、保護対象オブジェクトがメールボックスを格納するデータベースを含むＥｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐの場合は、このストレージグループ内のすべてのデータベースは暗黙的に保護される。ストレージグループ全体、あるいは１つまたは複数のデータベースはいずれも回復できるので、回復可能オブジェクトである。アーカイブ（後述）のみで保護を実行し、複製を実行しない場合は、メールボックスの回復に非常に時間がかかる（費用がかかる）可能性がある。複製とアーカイブの両方で保護を実行すると、複製からのメールボックス回復は多くの場合にかなり高速である（安価である）。
【００７８】
保護対象オブジェクトがストレージグループのデータベースの場合は、ストレージグループ全体が保護されるわけではないが、選択したデータベースに格納されたメールボックスは保護される。しかし、保護対象オブジェクトがメールボックスの場合は、関連のデータベースにもストレージグループにも暗黙の保護は実行されない。保護をアーカイブのみで実行し、複製を実行しない場合は、選択したメールボックス以外のものをアーカイブで回復できる可能性は低い。あるいは、メールボックスがデータベースの要素であり、このデータベースが異なる保護対象グループの要素として複製されることが分かっている場合は、メールボックスの回復をアーカイブ媒体でなく他の保護対象グループの複製から実行できる。
【００７９】
図１６は、本発明の１つの実施形態による、記憶場所から保護対象オブジェクトを回復する回復ルーチンを示している。回復ルーチン１６００はブロック１６０１で開始され、ブロック１６０３で、ユーザからユーザインターフェイスに表示された名前空間要素を介して回復対象として選択した名前空間要素を受け取る。ユーザは、回復するデータに関する回復インテントも指定できる。ブロック１６０５で、データを回復するバージョンとして選択した特定の時点のバージョンを受け取る。本発明の１つの実施形態では、回復を実行する特定の時点をユーザが指定する。別の実施形態では、選択した名前空間要素の仮バージョンを特定して表示でき、ユーザはこの仮バージョンを選択できる。
【００８０】
ブロック１６０７で、回復対象として選択した要素が他にもあるかどうかを判断する。回復対象として選択した要素が他にもあると判断した場合に、ルーチンはブロック１６０３に戻り、回復対象として選択した他の名前空間要素を受け取る。しかし、回復する要素が他にはないと判断した場合は、ブロック１６０９で前述のマッピングスキーマと受け取った回復インテントを使用して回復可能オブジェクトを記憶場所にある適切な回復ソースにマップする。
【００８１】
必要な回復ソースを特定すると、ブロック１６１１で回復計画が作成される。回復計画には、適切な回復ソースから回復可能オブジェクトの必要な特定の時点のバージョンを統合するプロセスが含まれる。ブロック１６１３で計画を実行し、特定された回復可能オブジェクトを回復する。ブロック１６１５で、回復ルーチンが終了する。
【００８２】
前述のように、データ保護システムは、保護対象グループを作成するだけでなく、自動検出グループと保存検索の生成も行う。自動検出グループと保存検索は、運用場所の変更をユーザに通知するための自動的な手段である。たとえば、変更には、サーバなどのコンピューティングデバイス、Ｅｘｃｈａｎｇｅ  Ｓｔｏｒａｇｅ  Ｇｒｏｕｐ、データベース、ボリューム、および共有の追加や削除、さらに名前空間要素と保護可能オブジェクトとのマッピングの変更を含めてもよい。ユーザに運用場所の変更について通知すると、ユーザは適切な処置をとり、保護する必要のある新しいデータを保護し、データが移動されたり削除されたりした場合は保護戦略を調整することができる。
【００８３】
自動検出グループは、保護対象を個別の物理リソースのセットとしてではなく問い合わせとして記述するメカニズムである。たとえば、ある組織がすべてのファイルサーバを＼＼ＦＩＬＥＳＲＶ＊（＼＼ＦＩＬＥＳＲＶ１、＼＼ＦＩＬＥＳＲＶ２など）と命名すると仮定する。この組織のユーザは、＼＼ＦＩＬＥＳＲＶ＊という名前の任意のサーバ上にあるすべての共有を定期的に検索する自動検出グループを作成できる。自動検出グループによって該当する共有がすべて検出され、ユーザはこうした共有に格納された保護可能オブジェクト、あるいはこうした共有に関連付けられた保護可能オブジェクトの保護を選択または拒否できる。さらに、本発明の１つの実施形態では、自動検出グループを定期的に再評価でき、ユーザは新しい共有について通知され、こうした新しい共有の保護を承認または拒否する機会を与えられる。さらに、既存の共有が削除された場合は再評価でこれを特定し、削除をユーザに通知する。
【００８４】
データプロテクタで自動検出グループを使用すれば、名前空間要素と保護可能オブジェクトとのマッピングを追跡することもできる。上の例をもう一度参照し、ユーザがパス＼＼ＡＢＣＤ＼ＰＵＢＬＩＣを保護していたと仮定する。データ保護システムは、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣという名前とｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ、ｓｅｒｖｅｒ３１上のＦ：＼ｆｏｌｄｅｒなどの保護対象オブジェクトへのマッピングを含む自動検出グループを自動的に生成する。今後、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣが同じサーバ上または異なるサーバ上の異なるフォルダを参照するように変更されると、ユーザはデータプロテクタからこの変更を通知され、保護を調整する機会が与えられる。
【００８５】
図１７〜２４は、本発明の１つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。図１７〜２４について説明するために、保護を必要とする複数台のサーバが配置された場所（運用場所１７０３として図示）にデータ保護システムをインストールしたと仮定する。
【００８６】
データ保護システム１７００を初期化すると、データプロテクタ１７０１は運用場所１７０３に問い合わせ、運用場所にある保護可能オブジェクトを表す名前空間と名前空間要素を特定する。データプロテクタ１７０１は、名前空間と名前空間要素を名前空間とこれに含まれる名前空間要素の階層表示の形でユーザインターフェイス１７０５を介してユーザに公開し、ユーザが操作でき、選択できるようにする。
【００８７】
ユーザインターフェイス１７０５を使用してやりとりするユーザは、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ名前空間要素１７０７など、保護対象とする１つまたは複数の名前空間要素を選択できる。保護対象とする名前空間要素を選択するだけでなく、ユーザは関連の保護可能オブジェクトに対して望ましい保護の方法を特定する保護インテントを指定する。選択した名前空間要素と保護インテントの指示は、データプロテクタ１７０１に返される。
【００８８】
ここで図１８を参照すると、データプロテクタ１７０１は選択した名前空間要素を運用場所１７０３にある保護可能オブジェクトにマップしている。たとえば、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  １７０７を選択すると、データプロテクタは前述のように名前空間スキーマを利用してその名前空間要素を保護可能オブジェクトにマップする。このマッピングは、名前空間要素＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ  １７０７が保護可能オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒ  １７０９と保護可能オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒ  １７１１にマップされることを示している。別の実施形態では、名前空間要素を最初に検出する間に、その時点でこの要素を対応する保護可能オブジェクトにマップしてもよい。
【００８９】
データプロテクタ１７０１は、選択した名前空間要素、保護可能オブジェクトの指定（保護対象オブジェクトとなる）、自動検出グループ１７１３、自動検出グループテーブル１７１５を含む保護対象グループを作成する。前述のように、保護対象グループには、ユーザが指定したインテントに基づいて、実際に保護対象グループをどのように保護するかを説明するグループ計画も含まれる。自動検出グループ１７１３には、＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ＼＊などの名前空間検索パラメータと、名前空間要素から保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒとｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒへの現在のマッピングが含まれる。選択した名前空間要素の名前空間検索パラメータを含む自動検出グループ１７１３を作成すると、続いてデータプロテクタは名前空間検索パラメータに一致する運用場所への追加、削除、再マップを検索できる。このような変更は保護を実行する上で重要なので、ある場合はアラートを使用してユーザに報告する。アラートはさまざまな形でユーザに提供できる。たとえば、アラートはユーザインターフェイス、電子メール、ポケットベル通知、音声メッセージなどを使用して提供できる。
【００９０】
自動検出グループ１７１３を作成するだけでなく、データプロテクタ１７０１は自動検出グループテーブル１７１５を作成する。このテーブルには保護対象オブジェクトへの現在マッピングの指定とこうした保護対象オブジェクトに関する情報が含まれる。具体的に、この情報には、保護対象オブジェクトへのマッピングが自動検出グループ１７１３に格納された自動検出グループパラメータと一致するかどうか（ｍａｔｃｈ列１７１７に示す）、保護対象オブジェクトが現在ユーザ操作が未決になっているかどうか（ｐｅｎｄｉｎｇ列１７１９に示す）、マップされた保護対象オブジェクトが現在グループ計画の下で保護されているかどうか（ｐｒｏｔｅｃｔｅｄ  ｉｎ  ｐｌａｎ（“ＰＰ”）列１７２１に示す）、マップされた保護対象オブジェクトがユーザによって現在保護されているかどうか（ｐｒｏｔｅｃｔｅｄ  ｂｙ  ｕｓｅｒ（“ＰＵ”）列１７３１に示す）などが含まれている。後述するように、オブジェクトはユーザによって保護されているが、まだデータ保護システムによっては保護されていない。たとえば、ユーザはある特定のオブジェクトを保護しようとしていることを通知し、このことでオブジェクトはユーザによって保護されるが、この保護対象オブジェクトのインテント変換が完了するまで、このオブジェクトは計画によっては保護されない。
【００９１】
本発明の１つの実施形態により、保護対象グループ、自動検出グループ、グループ計画、自動検出グループテーブルを作成した後、データ保護システムは運用場所と記憶場所に対して保護の準備をする。両方の場所に対して保護の準備（リソース計画など）をした後、選択した保護可能オブジェクトの最初のコピーを作成する最初のステップ（準備計画）を実行し、次に保護（保護計画）を開始する。
【００９２】
選択した保護対象オブジェクトの保護を実行してから所定の時間が経過した後で、データ保護システムは自動検出グループを実行し、運用場所１７０３を再マップする。たとえば、自動検出グループを毎晩１度実行するようスケジュールできる。夜間または運用場所の業務が少ないときに自動検出グループを実行すると、運用場所の負荷が軽減される。
【００９３】
説明のために、図１７〜２４に関連して説明した例に戻ると、自動検出グループが実行され、自動検出グループの結果１７２３（図１９）は、自動検出グループの検索パラメータ＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ＼＊に一致する唯一の保護可能オブジェクトは、保護可能オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒであることを示している。データプロテクタ１７０１は、自動検出グループの結果１７２３と自動検出グループテーブル１７１５を比較する。この例では、保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは自動検出グループの検索パラメータと一致しなくなっていることがわかる。ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは、さまざまな理由で検索パラメータと一致しなくなった可能性がある。たとえば、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒがなくなっていたり、Ｄ：＼ｆｏｌｄｅｒが＼＼ＡＢＣＤ＼ＰＵＢＬＩＣの下にマップされなくなっていたりする可能性がある。
【００９４】
比較の後、保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは結果として返されなかったので、自動検出グループの検索パラメータに一致しなくなったこと（ｍａｔｃｈ列１７１７の「Ｎ」）を示すようにテーブル１７１５が更新される。さらに、自動検出グループテーブル１７１５は、保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒについて、この保護対象オブジェクトに関するユーザの操作が現在未決であること（列１７１９の「Ｙ」）を示すように更新される。保護対象オブジェクトが自動検出グループの検索パラメータと一致しなくなったので、ユーザの操作は現在のところ未決である。ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは、計画の下で保護され、さらにユーザによって保護される（ＰＰ列１７２１とＰＵ列１７３１のＹ）とマーク付けされたままである。
【００９５】
自動検出グループ１７１５が更新され、ｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒが自動検出グループの検索パラメータに一致し、列１７２１と１７３１のそれぞれの「Ｙ」で示されるように、計画およびユーザによって保護されたままであることを示している。最後に、保護対象オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒについては、このオブジェクトが一致し、保護されているので、未決のユーザ操作はないこと（ｐｅｎｄｉｎｇ列１７１９の「Ｎ」）を示している。
【００９６】
ここで図２０を参照すると、自動検出グループが実行された後、翌朝自動検出グループテーブルが更新され、アラートが生成される。ユーザはデータ保護システムにアクセスし、データ保護システムから、保護対象オブジェクトｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒが自動検出グループの検索パラメータと一致しなくなっているという通知を受け取る。
【００９７】
これに応答して、データ保護システムは保護対象グループから保護対象オブジェクトを削除するようにというユーザの指示を受け取る。データプロテクタ１７０１は、自動検出グループを更新し、その結果ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒのマッピングが保護対象グループから削除され、自動検出グループテーブル１７１５が更新される。具体的には、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは、ユーザによって保護されない（ＰＵ列１７３１の「Ｎ」）とマーク付けされ、もはや未決でない（列１７１９の「Ｎ」）とマーク付けされる。この時点では、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒを保護対象グループから削除するためのインテント変換がまだ再実行されていないので、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは引き続き計画によって保護されている。
【００９８】
このオブジェクトは自動検出テーブル１７１５に保持され、ユーザによって保護されないとマーク付けされているので、自動検出ルーチンの次の実行で指定された場合は、すでに保護から除外されており、ユーザの承認が未決とは表示されない。これで、オブジェクトはユーザによって保護されなくなり、保護可能オブジェクトになる。
【００９９】
図２１は前の例の続きであり、ユーザがｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒを保護する必要がなくなったことを通知した後の特定の時点でインテント変換が実行される。インテント変換を実行すると、グループ計画が更新され、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒが保護対象グループから削除される。ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒが保護対象グループで保護されなくなっても、保護対象グループの既存の仮バージョンは記憶場所に格納されたままであり、これを使用すればｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒを計画で保護されなくなった時点まで回復できる。インテント変換を終了すると、自動検出グループテーブル１７１５が更新される。具体的に、ｓｅｒｖｅｒ１上のＤ：＼ｆｏｌｄｅｒは計画で保護されない（ＰＰ列１７２１に「Ｎ」）とマーク付けされる。
【０１００】
インテント変換完了後の特定の時点で、自動検出グループをもう一度実行し、運用場所１７０３に問い合わせて自動検出グループの検索パラメータを運用場所１７０３にあるオブジェクトに再マップする。自動検出グループの検索パラメータのマッピングが完了すると、自動検出グループの結果１７２５が提供され、検索パラメータが保護対象オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒと新しい保護対象オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒ  １７２７にマップされたことを示している。データプロテクタ１７０１は、この結果をもう一度自動検出グループテーブル１７１５と比較する。この比較により、保護対象オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒが再び自動検出グループの検索パラメータと一致し、ユーザ操作が未決でなく、引き続きユーザとグループ計画の両方によって保護された状態であることがわかる。さらに、新しい保護可能オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒが自動検出グループの検索パラメータに一致し、現在はグループ計画によって保護されておらず（ＰＰ列１７２１の「Ｎ」）、現在ユーザによって保護されておらず（ＰＵ列１７３１の「Ｎ」）、現在ユーザ操作が未決（ｐｅｎｄｉｎｇ列１７１９の「Ｙ」）である。比較が終了すると、自動検出グループテーブル１７１５が新しいマッピングとオブジェクトのすべてのステータスを表すように更新される。
【０１０１】
保護可能オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒは、自動検出グループによって新しく特定されたので、現在は計画によってもユーザによっても保護されていない。データ保護システム１７０１は、保護対象グループの保護対象オブジェクトと同様の新しい保護可能オブジェクトが運用場所に追加されたことを示すアラートを生成し、ユーザに送信する。アラートが生成されるのは、ユーザがこの新しく特定した保護可能オブジェクトを保護対象グループの一部として新たに保護することに注目するためである。
【０１０２】
図２２で、ユーザがアラートを受け取って応答を返し、自動検出グループによって自動的に指定された新しく特定された保護可能オブジェクトの保護が開始される。保護可能オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒは、保護対象グループにも追加され、保護対象オブジェクトになる。同様に、データプロテクタ１７０１は、オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒのユーザ操作が未決ではなくなり、ユーザによって保護されるが、この時点では計画によっては保護されないという表示を自動検出グループテーブル１７１５に追加する。
【０１０３】
図２３Ａは前の例の続きであり、新しく特定された保護可能オブジェクトを保護対象グループに追加するようにユーザが指示した後の特定の時点でインテント変換が実行され、ｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒが計画によって保護されるようになっている。インテント変換が完了すると、ｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒが計画によって現在保護されている（ＰＰ列１７２１の「Ｙ」）ことを示すように自動検出グループテーブル１７１５が更新される。
【０１０４】
インテント変換完了後の特定の時点で、データプロテクタ１７０１は自動検出グループルーチンをもう一度実行し、自動検出グループの検索パラメータ＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ＼＊を運用場所１７０３にあるオブジェクトに再マップする。自動検出グループルーチンが終了すると、データプロテクタはｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒとｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒ  １７２９のマッピングを特定している。この結果を使用して、自動検出グループテーブル１７１５を比較し、保護対象オブジェクトｓｅｒｖｅｒ２上のＤ：＼ｆｏｌｄｅｒが再び自動検出グループの検索パラメータに一致し、ユーザ操作が未決でなく、データ保護システムによって保護されたままであり、ユーザによって保護されたままであることを示すようにテーブルを更新する。さらに、以前の保護対象オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒは、自動検出ルーチンで特定されなかったが、ユーザと保護計画によって保護されたままであり、そのためユーザ操作は未決であることを示している。最後に、新しい保護可能オブジェクトｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒの追加は、自検出動グループの検索パラメータへの一致として特定されるが、新しく特定されるので、現在はユーザにも保護計画にも保護されず、そのためユーザ操作は未決である。自動検出テーブルを更新すると、データプロテクタ１７０１は以前の保護対象オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒが自動検出グループの検索パラメータと一致しなくなり、ｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒが運用場所に追加され、自動検出グループの検索パラメータと一致することを示すアラートを生成する。このアラートにより、保護対象オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒがｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒに移動したことをユーザに通知できる。このような変更を自動検出しないと、ユーザは古いオブジェクトの保護を継続し、新しいオブジェクトを保護しない可能性がある。
【０１０５】
図２３Ｂは、本発明の１つの実施形態による、たとえば図２３Ａで検出されるような保護された名前空間要素の再マップを解決する再マップ解決ルーチンを示す図である。再マップ解決ルーチン２３００は、名前空間要素が移動されたと判断した場合に実行される。たとえば、これまでＳｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒにマップされていた＼＼ＡＢＣＤ＼ＰＵＢＬＩＣ＼ＬＩＮＫ３をＳｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒに再マップできる。
【０１０６】
再マップ解決ルーチン２３００は、ブロック２３０１で開始される。ブロック２３０３で自動検出グループを評価し、保護された名前空間要素が１つの保護可能オブジェクトから別の保護可能オブジェクトに再マップされたことを特定する。判断のブロック２３０５〜２３０９で、再マップをどのように解決するかを判断する。
【０１０７】
具体的には、判断のブロック２３０５で、新しいマッピングを排他的に保護する必要があるかどうかを判断する。新しいマッピングを排他的に保護する必要があると判断した場合は、ブロック２３１１で、古いマッピングにユーザによって保護されないとマーク付けし、新しいマッピングにユーザによって保護されるとマーク付けする。新しいマッピングを排他的に保護する必要がないと判断した場合は、判断のブロック２３０７で古いマッピングを排他的に保護する必要があるかどうかを判断する。古いマッピングを排他的に保護する場合は、ブロック２３１１で古いマッピングにユーザによって保護されるとマーク付けし、新しいマッピングに保護されないとマーク付けする。しかし、判断のブロック２３０７で、古いマッピングを排他的に保護する必要がないと判断した場合は、判断のブロック２３０９で、両方のマッピングを保護する必要があるかどうかを判断する。
【０１０８】
判断のブロック２３０９で、両方のマッピングを保護する必要があると判断した場合は、ブロック２３１１で両方のマッピングにユーザによって保護されるとマーク付けする。しかし、両方のマッピングを保護しないと判断した場合は、ブロック２３１１で両方のマッピングにユーザによって保護されないとマーク付けする。
【０１０９】
ブロック２３１３で、本明細書で説明するインテント変換ルーチンを実行する。インテント変換が完了すると、新旧両方の保護対象オブジェクトについて、計画フラグの保護とユーザフラグの保護に同じ値が入るように保護対象オブジェクトが更新される。ブロック２３１５でルーチンが終了する。
【０１１０】
図２４は、この例の前の部分と同様に、以前に実行した自動検出グループルーチンで検出した変更を通知するアラートをユーザに送信する様子を示している。ユーザは、新しく特定された保護可能オブジェクトｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒを追加し、古い保護対象オブジェクトｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒのマッピングを削除するように（図２３Ｂのブロック２３０５）、自動検出グループの検索パラメータのマッピングを更新することを選択する。データ保護システム１７０１は、ユーザからマッピングを更新するための指示を受け取り、それに応じて新しい保護対象オブジェクトを追加するように保護対象グループを更新する。さらに、データプロテクタ１７０１は、ｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒはユーザには保護されないが、この時点では引き続き計画によって保護されていることを示しており、新しいマッピングによる保護対象オブジェクトｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒはユーザには保護されるが、計画によってはまだ保護されていないことを示すように、自動検出グループテーブル１７１５を更新する。
【０１１１】
ユーザが変更を指示した後の特定の時点でインテント変換を実行すると、ｓｅｒｖｅｒ２上のＥ：＼ｆｏｌｄｅｒがグループ計画の保護対象から削除され、ｓｅｒｖｅｒ３上のＥ：＼ｆｏｌｄｅｒがグループ計画の保護対象に追加される。言うまでもないが、ユーザが保護対象グループの変更（オブジェクトの追加またはオブジェクトの削除のいずれか）を指示した後の任意の時点でインテント変換を実行できる。たとえば、ユーザが保護対象グループへの変更を表示した直後にインテント変換を実行してもよいし、数日後に実行してもい。さらに、自動検出グループルーチンとインテント変換は互いに無関係でよい。自動検出グループルーチンは、保護対象グループへの変更をユーザが指示してからインテント変換を実行するまでの間に複数回実行してもよい。このような場合は、自動検出グループをリフレッシュしても、変更するオブジェクトに関するアラートは生成されない。これは、グループ計画への実際の変更はまだ行われていないが、ユーザはすでに指示を出しているためである。
【０１１２】
図２５は、本発明の１つの実施形態による、最上位レベルの名前空間要素と保護可能オブジェクトとのマッピングを最初に検出する初期検出ルーチンを示す流れ図である。初期検出ルーチン２５００は、ブロック２５０１で開始され、ブロック２５０３で運用場所の容易に検出できるすべてのオブジェクトの名前空間と名前空間要素を特定する。容易に検出できるオブジェクトは、運用場所の最上位レベルのオブジェクトである。たとえば、名前空間と名前空間要素は、ＤＦＳ  ｒｏｏｔ、サーバ、Ｅｘｃｈａｎｇｅサーバ、ＳＴＳサーバなど、最上位レベルのオブジェクトの場合は容易に検出できる。ブロック２５０５で、検出された運用場所の最上位レベルの名前空間と名前空間要素をデータプロテクタのメモリ（データベースなど）に保存する。ブロック２５０７で初期検出ルーチン２５００が終了する。
【０１１３】
図２６は、本発明の１つの実施形態による、名前空間および名前空間要素と運用場所にある保護可能オブジェクトとのマッピングを検出するスケジュールされた検出ルーチンを示す流れ図である。具体的に、スケジュールされた検出ルーチン２６００は、ブロック２６０１で開始され、ブロック２６０３で初期検出ルーチン２５００（図２５）を実行し、運用場所の最上位レベルの名前空間要素を特定する。前述のように、データ保護システムでは最上位レベルの名前空間要素の格納されたコピーを使用してユーザが運用場所をナビゲートできるように、および／または検索時に運用場所を再検出しなくても運用場所の特定の部分を検索できるようにすることで、検索とナビゲーションの時間を短縮し、運用場所の負荷を軽減する。
【０１１４】
判断のブロック２６０５で、実行する必要のある既存の保存検索（後述）があるかどうかを判断する。判断のブロック２６０５で実行する必要のある保存検索があると判断した場合は、ブロック２６０７で保存検索を実行する。しかし、判断のブロック２６０５で既存の保存検索がないと判断した場合は、判断のブロック２６０９で、更新する既存の自動検出グループがあるかどうかを判断する。判断のブロック２６０９で、更新する必要のある既存の自動検出グループがあると判断した場合は、ブロック２６１１で図１７〜２４の例に関連してすでに説明したように、その自動検出グループを更新する。ブロック２６１７でルーチンが終了する。
【０１１５】
図２７は、本発明の１つの実施形態による自動検出グループ作成ルーチンを示す流れ図である。自動検出グループ作成ルーチン２７００は、ブロック２７０１で開始され、ブロック２７０３で、ユーザが保護対象として選択した名前空間要素を受け取る。選択した名前空間要素の他に、名前空間要素に関連付けられた保護可能オブジェクトも受け取る。ブロック２７０５で、名前空間要素に関連付けられたデータソースの重複を解決する。重複の解決については、図１３に関連してすでに説明済みである。
【０１１６】
重複が解決すると、ブロック２７０７で、選択した名前空間要素を表す自動検出グループのリストを作成する。さらに、問い合わせパラメータを生成して自動検出グループに追加し、選択した名前空間要素と同様の他の名前空間要素の特定に使用する。問い合わせパラメータは、物理リソース（たとえば、ｓｅｒｖｅｒ１上のすべてのボリューム）、名前空間に関する問い合わせ（たとえばＤＦＳ  ＲＯＯＴ＼ｐｒｏｄｕｃｔｓの下にあるすべての共有）、または両方の組み合わせ（たとえば、＼＼ＦＩＬＥＳＲＶ＊という名前のサーバ上にあるすべての共有）で表現できる。さらに、問い合わせパラメータは既存の名前空間要素のプロパティに基づいていてもよい。
【０１１７】
いずれの場合にも、データ保護システムは自動検出グループのメンバーシップを追跡し、そのグループへの変更をユーザに通知する。ブロック２７０９で、自動検出グループと選択した名前空間要素のリストが保護対象グループに追加される。前述のように、保護対象グループは既存の保護対象グループでもよいし、選択した名前空間要素用に新しく作成した保護対象グループでもよい。ブロック２７１１で、自動検出グループ作成ルーチンが終了する。
【０１１８】
自動検出グループは、図２７に関連して前述したように作成され、保護する必要があるオブジェクトを個別の物理リソースのセットとしてではなく問い合わせとして潜在的に説明する方法である。変更が検出されると、ユーザは自動検出グループおよび／または保護対象グループの一部に関連付けられたオブジェクトを保護するための計画の変更を承認または拒否できる。たとえば、自動検出グループがサーバ＼＼ＦＩＬＥＳＲＶ＊上のすべての共有を検索する検索パラメータを含み、１０個の新しい共有を伴う新しいサーバ＼＼ＦＩＬＥＳＲＶ  １０が追加されると、ユーザは新しい共有のそれぞれについて保護を承認または拒否するオプションを選択できる。
【０１１９】
前述のように、データ保護システムはユーザに報告された自動検出グループの変更への応答を追跡する。たとえば、ユーザが新しく特定された保護可能オブジェクトの保護を拒否すると、後でその保護可能オブジェクトが運用場所から削除された場合に、それ以降ユーザには通知が送信されない。具体的には、ユーザがそのオブジェクトの保護を必要とせず、自動的にそれ以降のすべての通知を無視することを通知した場合は、保護可能オブジェクトの除外フラグが設定される。１つの実施形態では、オブジェクトの一度の拒否で自動的に除外フラグを設定することはない。さらに、オブジェクトが拒否された回数が追跡され、事前に指定した拒否回数（たとえば５回）に達すると、オブジェクトが除外とマーク付けされる。それ以降に除外オブジェクトが特定されても、ユーザにアラートは送信されない。
【０１２０】
データ保護システムは、自動検出グループを自動的に作成し、ユーザが保護を必要とする各名前空間要素を検出するように設定する。たとえば、ユーザがサーバ＼＼ＦＩＬＥＳＲＶ１上のｓｈａｒｅ１を保護する場合に、データ保護システムは＼＼ＦＩＬＥＳＲＶ１＼ｓｈａｒｅ１から物理リソース（たとえば＼＼ＦＩＬＥＳＲＶ１上のボリュームＸ上のｆｏｌｄｅｒ１）へのマップを含む自動検出グループを設定する。＼＼ＦＩＬＥＳＲＶ１＼ｓｈａｒｅ１がなくなった場合、または共有から物理リソースへのマッピングが変更された場合は、ユーザにその変更が通知され、どのように処理するかについてのいくつかのオプションが示される（図２３Ｂ）。たとえば、ここで＼＼ＦＩＬＥＳＲＶ１＼ｓｈａｒｅ１がボリュームＹ上のｆｏｌｄｅｒ１にマップされたとする。ユーザは、Ｘ：＼ｆｏｌｄｅｒ１の保護を継続、Ｘ：＼ｆｏｌｄｅｒ１の保護を停止してＹ：＼ｆｏｌｄｅｒ１の保護を開始、あるいは両方のオブジェクトを保護のいずれかのオプションを選択できる。ユーザは、保護しようとする名前空間要素と実際に保護されている物理オブジェクトへの変更をこのような方法で通知される。
【０１２１】
図２８と２９は、本発明の１つの実施形態による自動検出グループ更新ルーチンを示す流れ図である。自動検出グループ更新ルーチン２８００は、ブロック２８０１で開始され、ブロック２８０３で自動検出グループの結果から保護可能オブジェクトを選択する。自動検出グループの結果は、自動検出グループのマッピングシーケンスを実行し、自動検出グループの名前空間要素がマップされる保護可能オブジェクト、あるいは以前にマップされた保護可能オブジェクトのそれぞれを特定した後に生成される。判断のブロック２８０５で、選択した保護可能オブジェクトが現在ユーザによって保護されているかどうかを判断する。
【０１２２】
判断のブロック２８０５で、選択した保護可能オブジェクトが現在ユーザによって保護されていないと判断した場合は、判断のブロック２８０７で、選択した保護可能オブジェクトが現在ユーザの承認を待っているかどうかを判断する。保護可能オブジェクトは、以前に特定されてアラートを介してユーザに報告されたが、ユーザがそのオブジェクトは保護対象グループに追加する必要があるかどうかを指定していなかった場合に、保護対象グループへの追加に関して現在ユーザの承認待ちであると考えられる。図１７〜２４に関連して説明したように、オブジェクトは自動検出グループテーブルのｐｅｎｄｉｎｇ列を「Ｙ」に設定することで承認待ちを示している。判断のブロック２８０７で、保護可能オブジェクトが承認待ちではないと判断した場合は、判断のブロック２８０９で、選択した保護可能オブジェクトが保護から除外されているかどうかを判断する。前述のように、保護可能オブジェクトは保護可能オブジェクトの保護も保護可能オブジェクトへの変更の通知も不要であるというユーザの指示によって、保護可能オブジェクトを保護対象から除外できる。このような指定は、自動検出グループテーブル内のオブジェクトがユーザによって除外されるとマーク付けすることで示される。
【０１２３】
判断のブロック２８０９で、選択した保護可能オブジェクトが現在保護から除外されていないと判断した場合は、ブロック２８１１で、新しい保護可能オブジェクトを特定し、この保護可能オブジェクトの保護対象グループへの追加および／または保護対象グループから特にこの保護可能オブジェクトを除外するという応答をユーザが承認するように要求するアラートを生成する。ブロック２８１３で、保護可能オブジェクトに対して、ユーザによる承認が未決であり、ユーザによって保護されず、計画によっても保護されないとマーク付けする。
【０１２４】
選択した保護可能オブジェクトが現在ユーザによって保護されている（ブロック２８０５）、ユーザの保護承認を待っている（２８０７）、あるいは保護から除外されている（２８０９）のいずれかと判断した場合は、判断のブロック２８１５で、自動検出グループの結果として特定された追加の保護可能オブジェクトがあるかどうかを判断する。判断のブロック２８１５で保護可能オブジェクトが他にもあると判断した場合は、ルーチンはブロック２８０３に戻り、引き続き自動検出グループの結果として特定された他の各保護可能オブジェクトの処理を行う。しかし、判断のブロック２８１５で自動検出グループの結果として特定された保護可能オブジェクトが他にはないと判断した場合は、ブロック２８１７（図２９）で自動検出グループの既存の保護対象オブジェクトが特定される。
【０１２５】
判断のブロック２８１８で、既存の保護対象オブジェクトがユーザによって保護されるとマーク付けされているかどうかを判断する。既存の保護対象オブジェクトがユーザによって保護されるとマーク付けされていないと判断した場合は、ルーチンが判断のブロック２８２１に進む。しかし、既存の保護対象オブジェクトがユーザによって保護されていると判断した場合は、判断のブロック２８１９で、既存の保護対象オブジェクトが自動検出グループの実行によって生成された結果に含まれるかどうかを判断する。判断のブロック２８１９で、既存の保護対象オブジェクトが新しく生成された自動検出グループの結果に含まれていると判断した場合は、判断のブロック２８２１で、自動検出グループの既存の保護対象オブジェクトが他にもあるかどうかを判断する。判断のブロック２８２１で、自動検出グループの既存の保護対象オブジェクトが他にもあると判断した場合は、ルーチンはブロック２８１７に戻って処理を継続する。判断のブロック２８２１で、自動検出グループの既存の保護対象オブジェクトが他にはないと判断した場合に、ルーチンはブロック２８２７で終了する。
【０１２６】
判断のブロック２８１９に戻り、特定された既存の保護対象オブジェクトが新しく生成された自動検出グループの結果に含まれていないと判断した場合は、判断のブロック２８２２で、未決フラグを調べることによってユーザに変更を通知するアラートがすでにユーザに送信されているかどうかを判断する。アラートがまだ送信されていないと判断した場合は、ブロック２８２３に示すように、ユーザによって保護されていたオブジェクトへのマッピングがなくなっていることを示すアラートを発行してユーザに変更を報告する。ブロック２８２５で、保護対象オブジェクトは保護対象グループからの削除が未決であり、自動検出グループの検索パラメータに一致しないが、現在ユーザによって保護されているとマーク付けされる。保護対象グループからの保護対象オブジェクトを削除しても、記憶場所からその保護対象オブジェクトの実際のコピーが削除されるわけではない。当業者には言うまでもないが、未決の削除と未決の承認は未決の１つのステータスとして追跡できる。前述のように、オブジェクトが自動検出グループの検索パラメータと一致するかどうかを追跡することで、オブジェクトが削除されるか追加されるかが決まる。
【０１２７】
オブジェクトが自動検出ルーチンによって特定されると、オブジェクトがユーザ操作が未決かどうか、計画によって保護されているかどうか、ユーザによって保護されているかどうか、自動検出の検索パラメータに一致するかどうか追跡されるだけでなく、オブジェクトが初めて特定され、自動検出グループテーブルに追加された場合は、特定された日付と時間も記録される。さらに、自動検出グループテーブルに存在する保護対象オブジェクトが自動検出グループルーチンで特定されなくなった場合は、なくなった日付と時間も記録される。
【０１２８】
ユーザが名前空間要素を選択するのに応じて、データ保護システムは自動検出グループを自動的に作成するだけでなく、データ保護システムは保存検索も自動的に作成する。別の実施形態では、データ保護システムをインストールするときに保存検索を生成できる。さらに別の実施形態では、ユーザが保存検索を作成してもよい。
【０１２９】
保存検索を使用すると、サーバなどの運用場所のセグメントを設置したり、除去する場合にユーザに通知できる。たとえば、データ保護システムは、保存検索を使用して、新しいサーバ、新しいＤＦＳ  ｒｏｏｔ、除去されたサーバ、除去されたＤＦＳ  ｒｏｏｔ、新しいＳＴＳサーバ、除去されたＳＴＳサーバなどをユーザに通知できる。各保存検索には、同じ保存検索を前回評価したときに検出された名前空間要素のリストが関連付けられている。保存検索には、検索の開始点を表す名前空間要素と、結果として返される名前空間要素を説明する一連の検索基準が含まれる。自動検出グループとは異なり、保存検索は保護可能オブジェクトではなく名前空間要素に対して機能する。たとえば、企業のマーケティング部門に属するすべてのサーバを特定する保存検索を作成できる。これは一般的に有効な自動検出グループではない。しかし、自動検出グループと同様に、保存検索も検索パラメータに一致する名前空間要素を特定する保存検索結果テーブルを保持する。
【０１３０】
名前空間要素が検索に一致する場合は、そのステータスが保持される。たとえば、各名前空間要素が最初に特定された時刻と最後に参照された時刻の情報が保持される。こうした情報を使用して変更を検出することもできる。名前空間要素が保存検索で最初に特定されると、特定された日付を示すタイムスタンプが保持され、その名前空間要素が運用場所から削除されると、名前空間要素が最後に参照された日付と時刻を示すタイムスタンプも保持される。実際の実施形態では、運用場所で変更が検出されると必ずユーザにアラートが送信される。たとえば、運用場所で名前空間要素が追加および／または削除された場合は、その変更を示すユーザへのアラートが生成される。１つの実施形態では、そのサーバ上の共有を保護するようにというユーザの指定に応じて、サーバ上のすべての共有を返す保存検索が作成される。同様に、特定のサーバ上のボリュームを保護するというユーザ指定に応じて、そのサーバ上のすべてのボリュームを返す保存検索が作成される。サーバが変更されると（たとえば、必要に応じて共有またはボリュームが追加されると）、ユーザに変更が通知される。
【０１３１】
自動検出グループと保存検索の結果を使用すると、データプロテクタのナビゲーションと検索機能のパフォーマンスを向上することもできる。自動検出グループと保存検索は、その結果を永続的なストレージに定期的に格納できるので、ナビゲーションと検索の結果がそれほど頻繁には変わらない場合、またはデータの多少の陳腐化が容認される場合に、データプロテクタはこのようなキャッシュに格納された結果を使用して、ユーザが開始するナビゲーションや検索に迅速に応答できる。
【０１３２】
保護インテントは、ユーザが指定し、保護対象グループに対するどのような保護を希望するのか（たとえば、複製、アーカイブ、両方）、およびどの時点までさかのぼって回復できるようにするか（期間）を説明する。たとえば、ユーザは、選択したグループのデータの複製（このデータに対して毎晩生成される）、記憶場所にある取り外し可能な媒体に格納されたコピー（このコピーは週に１度更新される）、および取り外し可能媒体に保存された最大４つのコピーを保持するように要求できる。さらに、ユーザは少なくとも１か月前の情報を回復できるように指定してもよい。
【０１３３】
記憶場所でデータを保護するには（たとえば、複製、アーカイブ、あるいはその両方として）、そのデータのコピーにリソースを割り当てる必要があるだけでなく、プロセス自体を実行するのにリソースが必要である。さらに、こうしたリソースを使用するのに必要な状態にするために多くのジョブが必要であり、また継続的なジョブは保護の精度を保持する必要がある。ジョブを使用してデータを保護する方法については、以下に詳述する。リソースを手作業で設定すると、ジョブは冗長なのでエラーが発生する恐れがある。さらに、リソースとジョブは、保護されているオブジェクトのセットを変更する場合は必ず、たとえば自動検出グループで検出した変更に応じて変更する必要がある。ユーザはリソースやジョブの詳細を手作業で指定する必要はなく、単に名前空間要素を選択し、保護インテントを指定することで、何を保護する必要があるのかを指定すればよい。次に、この情報を使用して選択したデータの保護を続けるためのグループ計画を生成する。１つの実施形態では、グループ計画に３つの構成要素、すなわちリソース計画、準備計画、保護計画が含まれる。
【０１３４】
リソース計画には、保護の実現に必要なリソースを取得するために必要なジョブのリストが含まれる。準備計画には、指定されたデータの保護をセットアップするために必要な１度だけ実行するジョブのリストが含まれる。たとえば、１度だけ実行するジョブには初回のコピーや運用場所から記憶場所へのデータの転送がある。保護計画には、保護対象データの精度と整合性を保持するために必要な継続的なジョブのリストが含まれる。
【０１３５】
ユーザが指定する保護インテントからオブジェクトを保護するための詳細計画への変換は、本明細書では「インテント変換」と読んで説明している。本発明の実際の実施形態において、インテント変換は保護対象グループとその保護対象グループに対して指定した保護インテントを操作する。保護インテントは論理表現として表現され、目標として表明できる。目標には、必要な保護のレベル（粒度）、データを保護する方法、データを保護する期間、データを保護する頻度などを指定できる。たとえば、ユーザは保護インテントを「実行ファイルの共有を３０分以上失わず、すべての内容を１年間保持する」と指定してもよい。保護インテントをオブジェクトを保護するための詳細な計画に変換する場合は、インテントの動詞を処置として使用する。前の例を参照すると、このインテントに対応する処置は、「３０分ごとにボリュームとフォルダを複製する」、「毎週アーカイブする」、「媒体をオフサイトで１年間保存する」である。
【０１３６】
本発明の１つの実施形態において、ユーザは保護インテントを指定する保護テンプレートを選択し、これを使用して選択した保護対象グループを保護するための計画を生成する。保護テンプレートには、適切な動詞とデフォルトのプロパティを含む１つまたは複数のプロトタイプジョブの定義が含まれる。保護テンプレートには、デフォルトのプロトタイプスケジュールも含まれる。たとえば、「１時間ごとの複製、日中に作成する３つの仮バージョン、毎晩実行するアーカイブ、送信時の暗号化なし、記憶場所での暗号化なし」は、デフォルトのプロトタイプスケジュールである。ユーザは保護テンプレートを無効にして明示的に変更することができる。たとえば、ユーザは以前の保護テンプレートを変更し、１時間ごとの複製、日中の唯一の仮バージョン、１週間ごとのアーカイブを、送信時の暗号化なし、記憶場所での暗号化なしで作成できる。前述のデフォルトのプロトタイプスケジュールで指定する「送信時の暗号化なし」は、運用場所から記憶場所にそのデータを送信するときに暗号化する必要がないことを示している。運用場所と記憶場所との間でデータを暗号化して送信することもできる。「記憶場所での暗号化なし」は、複製かアーカイブのいずれかとして記憶場所に格納されたデータを暗号化する必要がないことを示している。格納されたデータを暗号化することもできる。たとえば、テープなどの取り外し可能な媒体にアーカイブされた運用場所のコピーを暗号化してもよい。さらに、複製として格納されたコピーも同様に暗号化してもよい。当業者には言うまでもないが、本発明の実施形態では、送信時および格納時のデータの暗号化に任意の暗号化技術を利用できる。
【０１３７】
図３０は、本発明の１つの実施形態により、保護インテントをデータセットの保護計画に変換する方法を示す流れ図である。ユーザはユーザインターフェイス３００３を介してデータ保護システムと対話し、保護の対象となる名前空間要素のリストを選択する。保護対象として選択した名前空間要素はデータプロテクタ３００１に転送され、データプロテクタはユーザインターフェイス３００３を介してデフォルトの保護インテントをユーザに提示する。具体的に、データプロテクタは選択した名前空間要素を受け取るとその選択した名前空間要素に関連付けられた保護可能オブジェクトを特定し、デフォルトの保護インテントのリストを特定してユーザに提示する。
【０１３８】
ユーザはデフォルトの保護インテントを受け取ると、ユーザインターフェイス３００３を操作して適切なデフォルトを変更したり選択したりする。データプロテクタ３００１はこの選択または変更を受け取ってインテントを格納し、オブジェクトに関する保護対象グループを作成する。インテントは、バイナリ、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、データベーステーブルなどを含むがこれに限定はされない任意の形態で格納できる。データプロテクタ３００１は、デフォルトの保護インテントへの変更（ある場合）を適用し、変更された保護インテントを使用して保護対象グループを保護するための詳細な計画を作成する。計画も、バイナリ、ＸＭＬ、データベーステーブルなどを含むがこれに限定はされない任意の形態で格納できる。
【０１３９】
保護対象グループを保護するための詳細な計画を作成するのと同様に、回復インテント、回復パラメータ、回復対象として選択した名前空間要素が指定された場合に、データプロテクタは選択した回復可能オブジェクトを回復するための回復計画も作成できる。回復計画を作成するために、データプロテクタは必要な回復ソースを特定し、これを適宜順序付ける。さらに、データプロテクタは回復のターゲットすなわちデータを復元する場所を示す物理パスを特定する。
【０１４０】
さまざまな回復インテントを指定して回復方法を制御できる。たとえば、上書インテントは、運用場所にファイルを回復しようとしたときにファイルがすでに存在することが確認された場合にどうなるかを制御する。常に上書き、上書きしない、新しいファイルの使用を含むがこれに限定はされないいくつかの選択肢が提供される。他に指定できる回復インテントには、復元されたオブジェクトのセキュリティを設定する方法がある。たとえば、復元されたオブジェクトのセキュリティが親オブジェクトのセキュリティを継承するように指定してもよい（たとえば、フォルダに復元されたファイルのセキュリティはフォルダのセキュリティと同じになる）。別のモデルでは、回復されたオブジェクトのセキュリティをこのオブジェクトがバックアップされたときのセキュリティに正確に復元する。インテントには、回復されたオブジェクトを送信時および／または格納時に暗号化するかどうかを指定してもよい。
【０１４１】
図３１と３２は、本発明の１つの実施形態による、保護インテントを運用場所にある物理オブジェクトを保護するための詳細な計画に変換するインテント変換ルーチンを示す流れ図である。インテント変換ルーチン３２００は、ブロック３２０１で開始され、ブロック３２０３で、保護対象として選択した名前空間要素と、選択した名前空間要素に適用する保護インテントを受け取る。前述のように、名前空間要素は運用場所にある保護可能オブジェクトにマップされる。さらに、前述のように、選択した名前空間要素と関連の保護対象オブジェクトはデータ保護システムによって保護インテントを適用する保護対象グループにコンパイルされる。ブロック３２０５で、この保護対象グループは「変換中」とマーク付けされる。保護対象グループを「変換中」とマーク付けすることで、インテント変換が正常に終了するかまたは失敗して変更をロールバックするまで、ユーザが保護対象グループを変更するのを防止する。
【０１４２】
ブロック３２０７で、選択した保護対象グループを適切に保護するために必要なリソース要件を計算する。リソース要件は、保護対象グループにどのような変更が必要かを判断して指定される。保護対象グループに必要な変更の例には、保護対象グループへの新しいデータソースの追加、保護対象グループからのデータソースの削除、保護対象オブジェクトの追加または削除による保護対象グループのデータソースの変更、リソースの追加または返還（たとえば、複製用のディスク領域の追加または削除、アーカイブ用の取り外し可能な媒体の追加または削除）、保護対象グループの保護の目標またはスケジュールの調整、新しい保護対象グループの初回の追加などが含まれるが、これに限定はされない。さらに、必要なリソースのサイズは、コピーして記憶場所に格納しようとする運用場所にある保護対象オブジェクトのサイズの特定と、指定された特定の保護方法と保護インテントによって決まる。
【０１４３】
ブロック３２０９で、リソース計画を生成して実行し、保護対象グループの保護を実現するために必要なリソースを割り当てる。リソース計画によって必要なリソースが特定され、こうしたリソースの取得に必要なジョブがリソース計画に含まれる。たとえば、このようなジョブには、ディスク領域の割り当て、既存の記憶領域の拡張、テープ媒体の割り当て、テープライブラリチェンジャ（ｔａｐｅ  ｌｉｂｒａｒｙ  ｃｈａｎｇｅｒ）およびドライブの割り当て、空き媒体プールからのテープの要求などが含まれる。リソース計画に含まれるジョブは、ユーザが必要とする保護のタイプによって決まる。たとえば、複製の場合はジョブには複製と仮バージョンに使用するディスク領域の割り当てが含まれる。ログ領域用のリソース割り当てが含まれる場合もある。ブロック３２０９で、生成したリソース計画に関連するジョブが実行され、保護対象グループに必要なリソースが割り当てられる。
【０１４４】
リソースの割り当てが完了すると、ブロック３２１１でデータ保護システムによってチェックポイントが作成される。別の実施形態では、リソース計画にはこうしたリソースを割り当てるのに必要なジョブの作成は含まれるが、こうしたジョブの実際の実行は含まれない。リソース計画に関連するジョブの実行は、準備計画の一部としてスケジュールされ、実行される。こうした実施形態では、インテント変換が完了するまでチェックポイントは生成されない。したがって、インテント変換が完了しなかった場合は、最初からやり直す必要がある。ブロック３２０９に関連して後述するように、リソースの割り当ての後にチェックポイントを作成することで、インテント変換ルーチンが正常に終了しなかった場合に、既知のポイントからルーチンを再開できる。
【０１４５】
リソース割り当てジョブ実行中は、一部のリソースを割り当てたがすべてのリソースを割り当ててはいない可能性があるので（たとえば、物理リソースの一部を割り当てた後、他のリソースを割り当てる前にシステムがクラッシュした場合）、本発明の１つの実施形態には、インテント変換ルーチンの実行が未完の場合に割り当てが完了していないリソースをクリーンアップするクリーンアップルーチンが用意されている。このクリーンアップルーチンは、システムのリソース割り当てが特定の方法で動作するように設計されている。実際の実施形態では、リソースはデータソースごとに割り当てられ、特定のデータソースに必要なリソースをすべて割り当てるか、一切割り当てないかのいずれかである。一部のリソースを割り当てたがすべてを割り当ててはいない状態で割り当てジョブが中断した場合は、リフレッシュジョブが作成され、リソース割り当て計画の割り当てジョブを前回実行してから一部を割り当てたリソースがある場合はこれをクリーンアップする。一部を割り当てたリソースをクリーンアップルーチンでクリーンアップすると、データ保護システムは必要に応じてリソースを再割り当てできる。こうしてリソースを正常に割り当てた新しい保護対象オブジェクトに対して、インテント変換を継続できる。
【０１４６】
図３１に戻り、ブロック３２０９でリソースの割り当てが正常に終了すると、ブロック３２１１でチェックポイントが生成される。リソースの割り当てが完了した後にチェックポイントを作成することで、リソースの割り当てが完了した後でインテント変換ルーチン３２００が中断して完了しなかった場合に何らかの問題が発生しても、データ保護システムはこれを解決できる。たとえば、インテント変換ルーチンが終了する前であるが第１のチェックポイントが追加された後にシステムがクラッシュした場合は、ブロック３２１１に示すように、データ保護システムは再起動時にインテント変換ルーチンが中断したことを認識し、リソースの割り当ての後に付加されたチェックポイントを検出する。チェックポイントを特定することで、前回のリソース割り当てを使用できるので、インテント変換ルーチン３２００はこのチェックポイントから再開でき、初めからやり直したり、リソースを再割り当てしたりする必要はない。インテント変換ルーチンの中断後の再開については、図３８に関連して詳細に説明する。
【０１４７】
判断のブロック３２１３で、インテント変換ルーチン３２００は現在保護対象グループに関連付けられている既存のジョブおよび／またはタスクがあるかどうかを判断する。判断のブロック３２１３で、保護対象グループに関連付けられている既存のジョブおよび／またはタスクがあると判断した場合は、ブロック３２１５でこうしたジョブとタスクの登録を解除し、ブロック３２１７に示すようにアクティブなジョブを終了する。保護対象グループを初めて作成するのでなく、変更する場合は、この保護対象グループに関連付けられたジョブとタスクはすでに存在している。
【０１４８】
判断のブロック３２１３で、保護対象グループに関連付けられている既存のジョブおよび／またはタスクがないと判断した場合、またはブロック３２１７で既存のジョブおよび／またはタスクが終了した後は、インテント変換ルーチン３２００はブロック３２１９で保護計画を作成し、スケジュールする。以下でより詳細に説明するように、保護計画には保護対象グループの正確なコピーを記憶場所に長期間保持するために必要なジョブのリストが含まれる。さらに、インテント変換ルーチン３２００はブロック３２２１で準備計画を作成し、スケジュールする。以下で詳細に説明するように、準備計画には、運用場所と記憶場所を、保護計画に関連付けられたジョブを実行でき、保護対象グループの正確な保護を実現できる状態にするために１度だけ実行するジョブのリストが含まれる。たとえば、保護対象グループを初めて作成し、これを複製上に保存する場合に、複製上の保護対象グループに関連付けられたデータのコピーは存在しない。したがって、準備計画に関連付けられたジョブの１つを使用して保護対象オブジェクトのコピーを作成し、複製上にそのコピーを保存してもよい。
【０１４９】
ここで図３２を参照すると、ブロック３２２５で、インテント変換ルーチン３２００は前述の保存検索と自動検出グループを作成する。前述のように、自動検出グループと保存検索はスケジュールされた検出ルーチンの一部として実行される。
【０１５０】
リソース計画、準備計画、保護計画、保存検索、自動検出グループのジョブが作成された後、ブロック３２２７でジョブの作成完了を示す第２のチェックポイントがデータ保護システムに追加される。以上で言及し、以下で詳細に説明するように、データ保護システムではこのチェックポイントを使用してインテント変換ルーチン３２００実行中に発生した中断から回復できる。たとえば、インテント変換ルーチン３２００が、ブロック３２２７に示すようにチェックポイントを作成した後に中断した場合に、データ保護システムは再起動時にインテント変換ルーチン３２００が実行中であったことを認識し、計画とジョブが作成されたことを示すチェックポイントを検出する。チェックポイントを特定すると、インテント変換ルーチン３２００はこのチェックポイントから再開して終了する。
【０１５１】
ブロック３２２９で、新しく保護対象となったオブジェクトとこれまで保護されていたが保護対象から除外されたオブジェクトが更新され、保護計画の追加と削除が反映される。ブロック３２０９でリソース割り当てエラーありとマーク付けされた保護対象オブジェクトは、「未決の状態」に戻る。ブロック３２３１で、すべてのチェックポイントが削除され、保護対象グループは「非変換中」とマーク付けされる。すべての保護対象オブジェクトが削除された場合は、保護対象グループを削除できる。ブロック３２３３でインテント変換ルーチン３２００が終了する。
【０１５２】
図３３は、本発明の１つの実施形態による、保護対象グループを保護するための保護計画作成ルーチンを示す流れ図である。前述の保護計画の作成とスケジューリングでブロック３２１９（図３１）に関連して引用した保護計画作成ルーチン３３００について詳細に説明する。保護計画作成ルーチン３３００は、ブロック３３０１で開始され、ブロック３３０３で保護対象グループのコピージョブを作成し、スケジュールする。コピージョブは、運用場所で発生した１つまたは複数の保護可能オブジェクトの変更を、記憶場所に格納された対応する１つまたは複数の保護可能オブジェクトのコピーにコピーするジョブである。たとえば、コピージョブは、運用場所にある保護対象オブジェクトをユーザが変更する日にコピージョブを実行すると、こうした変更がコピーされて記憶場所に転送され、こうした変更を反映するようにコピーが更新される。
【０１５３】
ブロック３３０５で、保護計画作成ルーチン３３００は仮バージョンジョブを作成し、スケジュールする。仮バージョンジョブは、記憶場所にあるデータの実際のバージョニングを実行するようにスケジュールされたジョブである。仮バージョンの作成は当業者にはよく知られているので、ここでは詳しい説明を省略する。
【０１５４】
ブロック３３０７で、有効性確認ルーチンが作成され、スケジュールされる。実行すると、以下で図３５に関連して詳細に説明する有効性確認ルーチンのジョブが実行される。ブロック３３０９で、保護計画作成ルーチン３３００が終了する。
【０１５５】
図３４は、本発明の１つの実施形態による、準備計画を実行するための準備計画実行ルーチンを示す流れ図である。準備計画実行ルーチン３４００は、ブロック３４０１で開始され、ブロック３４０３で保護対象グループを保護するのに追加のリソースが必要かどうかを判断する。前述のように、保護対象グループを保護するために記憶場所で必要なリソースを特定するリソース計画が作成される。１つの実施形態では、準備計画を作成して実行する前に、リソース計画でこうしたリソースを割り当てることができる。
【０１５６】
判断のブロック３４０３でリソースが必要であると判断した場合は、ブロック３４０５で、リソース計画で作成したこのようなリソース割り当てのジョブを実行し、リソースを割り当てる。
【０１５７】
ブロック３４０５のリソースの割り当てが完了した場合、またはブロック３４０３で保護対象グループを保護するために追加のリソースが必要ないと判断した場合は、ブロック３４０７で、保護対象グループに関連付けられた物理オブジェクトの最初のコピーを作成して記憶場所に送信し、あらかじめ割り当てたリソースに格納する。保護対象グループの最初のコピーが作成され、複製として記憶場所に格納されると、ブロック３４０９で運用場所にある実際の物理オブジェクトに対するコピーの有効性を確認する。有効性の確認については、図３５に関連して後述する。
【０１５８】
判断のブロック３４１１で、保護対象オブジェクトが保護対象グループから削除されたかどうかを判断する。判断のブロック３４１１で、保護対象オブジェクトが保護対象グループから削除されたと判断した場合は、ブロック３４１３で、こうしたオブジェクトの監視を中止するジョブを準備計画に含める。こうしたオブジェクトは引き続き保護可能オブジェクトである。監視はリソースを消費するので、監視が不要になった場合はこのジョブを使用して監視を中止する。ブロック３４１５で、準備計画実行ルーチン３４００が終了する。
【０１５９】
前述のように、本明細書で説明するルーチンを実行するためのブロックは、これより多い場合も少ない場合もある。たとえば、媒体のロードによってコピーを実行する場合は、準備計画３４００ではデータの最初のコピーを作成しない（ブロック３４０７）。同様に、アーカイブ用のコピーの場合も、準備計画３４００ではデータの最初のコピーを作成しない（ブロック３４０７）。
【０１６０】
図３５は、本発明の１つの実施形態による、記憶場所にあるデータのコピーの有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチン３５００は、ブロック３５０１で開始され、ブロック３５０３で有効性確認ルーチン３５００は運用場所にある物理オブジェクトの有効性確認パラメータを取得する。当業者には言うまでもないが、有効性確認パラメータは運用場所にある物理オブジェクトのチェックサムでもよい。あるいは、有効性確認パラメータは運用場所にある物理オブジェクトの最終更新時刻でも、運用場所にある物理オブジェクトのサイズでもよい。一般に、有効性確認パラメータは運用場所にある物理オブジェクトの任意のタイプの識別情報でよい。
【０１６１】
ブロック３５０５で、有効性確認ルーチン３５００は記憶場所にあるオブジェクトの有効性確認パラメータを取得する。運用場所にあるオブジェクトの有効性確認パラメータと同様に、記憶場所にあるオブジェクトの有効性確認パラメータも、チェックサム、最終更新時刻、ファイルサイズなどでよい。
【０１６２】
ブロック３５０７で、記憶場所にあるオブジェクトが運用場所にあるオブジェクトに一致することを確認するために、ブロック３５０３で取得した運用場所にあるオブジェクトの有効性確認パラメータとブロック３５０５で取得した記憶場所にあるオブジェクトの有効性確認パラメータとを比較する。判断のブロック３５０９で、ブロック３５０７で比較したパラメータが一致するかどうかを判断する。ブロック３５０９でパラメータが一致しない場合、ブロック３５１３で有効性確認ルーチン３５００は運用場所にある一致しない保護対象オブジェクトをもう一度コピーし、記憶場所にあるオブジェクトを置き換えて判断のブロック３５１１に進む。
【０１６３】
しかし、判断のブロック３５０９でパラメータが一致すると判断した場合は、判断のブロック３５１１で、保護対象グループにまだ有効性を確認していないデータが他にもあるかどうかを判断する。保護対象グループに対して記憶場所にまだ有効性を確認していないデータがほかにもあると判断した場合に、有効性確認ルーチンはブロック３５０３に戻り、処理を継続する。しかし、判断のブロック３５１１で追加のデータがないと判断した場合は、記憶場所の有効性が確認されており、有効性確認ルーチンはブロック３５１５で終了する。この結果、記憶場所にあるオブジェクトは保護対象オブジェクトに一致することをが確認される。
【０１６４】
有効性確認ルーチンをインテント変換中に準備計画の一部としてを実行してコピーが正確であることを確認するだけでなく、有効性確認ルーチンをスケジュールして引き続き物理オブジェクトの保護が正確であることを繰り返し確認してもよい。さらに、有効性確認ルーチンをスケジュールして実行し、記憶場所にあるオブジェクトのコピーを有効な状態にすることもできる。記憶場所にある物理オブジェクトのコピーは、システムがクラッシュした場合や、他の何らかのスケジュールされていない変更が発生した場合に、無効な状態になる可能性がある。たとえば、変更を記憶場所に適用できないために変更ログ（後述）がオーバーフローすると、複製が無効になる恐れがある。
【０１６５】
図３６は、本発明の１つの実施形態による、記憶場所にあるオブジェクトのコピーの有効性を確認するスケジュールされた有効性確認ルーチンを示す流れ図である。スケジュールされた有効性確認ルーチン３６００は、ブロック３６０１で開始され、ブロック３６０３で、記憶場所にある保護対象グループのオブジェクトのコピーで有効性を確認する必要のあるものを特定する。判断のブロック３６０５で、特定されたコピーが有効な状態にあるか無効な状態にあるかを判断する。判断のブロック３６０５で、特定されたコピーが無効な状態にあると判断した場合に、スケジュールされた有効性確認ルーチン３６００はブロック３６０７で図３５に関連して説明する有効性確認ルーチン３５００を実行する。
【０１６６】
しかし、判断のブロック３６０５で、コピーが有効であると判断した場合は、判断のブロック３６０９で記憶場所にある保護対象グループのコピーで有効性の確認が必要なものが他にもあるかどうかを判断する。判断のブロック３６０９で、追加のコピーの有効性を確認する必要があると判断した場合は、有効性確認ルーチン３６００はブロック３６０３に戻り、他に有効性を確認するコピーを特定し、処理を継続する。しかし、判断のブロック３６０９で記憶場所にあるコピーで有効性の確認が必要なものが他にはないと判断した場合は、ブロック３６１１に示すように有効性確認ルーチン３６００が終了する。
【０１６７】
図３７は、本発明の１つの実施形態による複製の状態遷移を示すブロック図である。リソース割り当て時に記憶場所を割り当てるまで、複製は割り当てのない状態である。インテント変換で保護対象グループにリソースを割り当てると、複製は割り当て済みの状態に移行する。次に、コンテンツ（保護対象グループのコピー）を記憶場所に転送し、記憶場所に格納する必要がある。転送と格納は、ディスクツーディスクの初期化（データ保護システムで自動的に実行する）を使用して自動的に媒体をロードしても実行できるが、管理者が手作業で実行してもよい（たとえば手作業で媒体をロードする）。ディスクツーディスクの初期化を実行すると、インテント変換は自動的に最初のコピージョブを作成する。最初のコピージョブを実行すると、複製は無効な状態になる。媒体のロードを使用してコピーを初期化する場合は、媒体のロードがいつ終了するかをユーザが指定し、その時点で複製は無効な状態になる。
【０１６８】
複製が無効な状態になると、有効性確認ジョブを実行して複製を有効な状態にする必要がある。前述のように、有効性確認ジョブは記憶場所にあるコピーが運用場所にある保護対象オブジェクトに一致することを確認する。
【０１６９】
複製は、割り当て済みの状態３７０３、無効な状態３７０５、有効な状態３７１１以外に、欠落の状態３７１３に移行してもよい。たとえば、時間が経過すると、特定の保護対象グループの複製に割り当てられた物理媒体に障害が発生する可能性がある。この結果、複製は欠落の状態になる。データ保護システムは、欠落の状態３７１３から、ユーザとの対話によって、複製されていた情報を引き続き保護対象とする必要があるかどうかを判断する。保護対象グループの保護を継続する必要がある場合は、リソースを再割り当てし、その結果、複製を割り当て済みの状態３７０３に戻す必要がある。欠落の状態３７１３からこの複製に関連付けられた情報をそれ以降保護する必要はないと判断した場合は、複製が廃棄の状態３７０７に移行し、データ保護システムはこの保護対象グループの複製を実行しなくなる。
【０１７０】
複製は、一時的に欠落の状態３７１１に移行してもよい。たとえば、ディスクは何らかのハードウェアの問題で一時的に切断されたり使用できなくなったりした後、まもなく使用可能な状態に戻る場合がある。こうした状況では、ディスクが再び使用可能になると、複製は有効な状態３７１１または無効な状態３７０５に戻る。
【０１７１】
廃棄の状態３７０７は、保護対象グループを保護する必要がなくなったというユーザの指示に応答した結果である。複製は、他の任意の状態から廃棄の状態３７０７に移行できる。たとえば、複製が無効な状態３７０５にある場合に、ユーザはこの複製にコピーされる保護対象オブジェクトを保護する必要がなくなったことを表明し、この結果、複製は廃棄の状態３７０７に移行する。複製を廃棄の状態にすることで、ユーザはこの複製にコピーされる保護対象オブジェクトの保護を完了したこと、およびハードディスクなどの物理媒体を空き媒体プールに返し、他の保護対象グループに割り当ててもよいことをデータ保護システムに通知する。
【０１７２】
本発明の１つの実施形態では、ユーザがこの複製にコピーされる保護対象オブジェクトの保護を継続する必要がなくなったことを通知すると、複製が停止の状態３７０９に移行し、この結果、複製とその仮バージョンは特定の期間にわたって保持される。保護対象でなくなったことを通知した後の情報が保持されるので、ユーザはこの情報を保護停止の時点まで回復できる。
【０１７３】
図３８は、本発明の１つの実施形態による、以前のインテント変換ルーチン実行中に発生した中断の後にインテント変換ルーチンを再開する再開ルーチンを示す流れ図である。再開ルーチン３８００は、ブロック３８０１で開始され、判断のブロック３８０３で保護対象グループがインテント変換中であったかどうかを判断する。判断のブロック３８０３で、保護対象グループがインテント変換を実行中であったと判断した場合は、判断のブロック３８０５でインテント変換中の保護対象グループにすべてのリソースが割り当てられていたかどうかを判断する。判断のブロック３８０５ですべてのリソースが割り当てられてはいないと判断した場合は、ブロック３８０６に示すように、再開の前に割り当てられたリソースがあればその割り当てを解除する。事前に割り当てられていたリソースの割り当てを解除した後、判断のブロック３８０７でインテント変換中の保護対象グループが新しい保護対象グループであったかどうかを判断する。判断のブロック３８０７で、保護対象グループが新しい保護対象グループではないと判断した場合は、ブロック３８０８でルーチンは既存の保護対象グループに追加された新しいオブジェクトを未決の状態に戻す。詳細には、新しいオブジェクトはユーザによって保護されず、ユーザ操作が未決の状態に戻る。
【０１７４】
ブロック３８０９で既存の保護対象グループが変換中でないとマーク付けされ、ブロック３８１７でルーチンが終了する。既存のグループを変換中でない状態に戻し、新しいオブジェクトを未決の状態に戻すことで、データ保護システムを変換実行前の状態に戻す。具体的には、新しいオブジェクトを既存の保護対象グループに追加し直す必要があるが、インテント変換ルーチンを最初に試行する前に保護対象であった既存の保護対象グループのオブジェクトは引き続き保護対象である。
【０１７５】
判断のブロック３８０７に戻り、中断が発生したときにインテント変換中であった保護対象グループが新しい保護対象グループであると判断した場合は、ブロック３８１１で新しい保護対象グループのすべての保護対象オブジェクトが未決の状態（つまり、ユーザによって保護されず、ユーザ操作が未決の状態）に戻り、ブロック３８１７でルーチンが終了する。グループには保護対象オブジェクトが含まれていないので、オブジェクトを未決の状態に戻すだけでなく、保護対象グループを削除してもよい。
【０１７６】
判断のブロック３８０５に戻り、中断の前にすべてのリソースが割り当てられていたと判断した場合は、ブロック３８１３で、実行したインテント変換ルーチンで生成した最後のチェックポイントを特定する。前述のように、チェックポイントはインテント変換ルーチンの２つの異なるポイントで生成される。具体的には、リソースが割り当てられた後にチェックポイントが生成され、保護計画が作成または更新された後と準備計画が作成された後に再びチェックポイントが生成される。ブロック３８１３で最後のチェックポイントを特定すると、ブロック３８１５に示すようにインテント変換ルーチンは特定した最後のチェックポイントから再開し、ブロック３８１７で処理を終了する。
【０１７７】
記憶場所で物理オブジェクトを保護するにはいくつかの方法がある。たとえば、複製をサーバなどのコンピューティングデバイスで保持し、アーカイブをテープのように取り外し可能な媒体などの物理媒体に格納してもよい。ユーザが希望する保護のタイプは、保護インテントの一部すなわち高水準の目標として示され、前述のようにインテント変換ルーチンによって一連の計画に変換される。テープやその他の取り外し可能媒体にデータをアーカイブする場合に、１つまたは複数の物理媒体を介して特定の時点での保護対象グループのデータの表現または特定の時点へのデータの変更を含む「データセット」を作成することでデータ保護が機能する。データセットは１つまたは複数の保護対象オブジェクトに関連する１つまたは複数のアーカイブパスによって得られる。さらに、回復には複数の回復ソースを使用でき、複数のデータセットを使用できるので、個々のデータセットは１つまたは複数の回復ソースを含むことができる。
【０１７８】
本発明の１つの実施形態によると、媒体は管理対象の基本的なオブジェクトである他のバックアップアプリケーションとは異なり、媒体自体でなく、データセットおよびデータセットと媒体との関係が管理される。
【０１７９】
アーカイブは、長期にわたって（週、月、年単位で）データを保持するように設計されている。アーカイブされた媒体は、通常はオフサイトで保存されるので、地震や火事のように運用場所全体に影響を及ぼす災害から保護される。アーカイブされた媒体は、サーバやディスクの喪失またはユーザの過失などの小規模な機能停止からの回復に備えてオンサイトで保存してもよい。さらに、複製とアーカイブの両方を使用する実施形態では、アーカイブした媒体を複製として記憶場所に保存してもよいし、運用場所や他の場所に保存してもよい。
【０１８０】
図３９は、本発明の１つの実施形態による、データをアーカイブする計画を生成するアーカイブ保護計画作成ルーチンを示している。アーカイブ保護計画作成ルーチン３９００は、ブロック３９０１で開始され、ブロック３９０３でデータ保護の種類を受け取る。データ保護の種類については、アーカイブをオンサイトで保持するか、オフサイトで保持するか、またはオンサイトとオフサイトの両方で保持するかをユーザが指定する。ルーチンは、データ保護の種類を受け取るだけでなく、ブロック３９０５でデータ保護の期間を受け取る。データ保護の期間は、保護対象の情報を過去どれだけさかのぼって回復できるようにするかについてユーザが指定する高水準のインテントである。こうしたインテントは、ユーザが何を回復しようとするのかに関する目標として指定できる。
【０１８１】
たとえば、「最大で７年間のデータを回復できるようにしたい（Ｉ  ｗａｎｔ  ｔｏ  ｂｅ  ａｂｌｅ  ｔｏ  ｒｅｃｏｖｅｒ  ｄａｔａ  ｆｏｒ  ｕｐ  ｔｏ  ｓｅｖｅｎ  ｙｅａｒｓ）」というインテントの指定は、運用場所に７年前に存在していた情報データをユーザが回復できるようなアーカイブ計画に変換される。データの保存期間は、年、月、週、日のいずれの単位でもよい。アーカイブ保護計画作成ルーチン３９００は、ブロック３９０７に示すように、アーカイブデータの作成をいつ実行するかなどのスケジューリングインテントも受け取る。別の実施形態では、データ保護の形式も受け取ることができる。データ保護の形式には、完全バックアップ、差分バックアップ、増分バックアップが含まれるが、これに限定はされない。完全バックアップは、本明細書で使用する限り、すべての保護対象オブジェクトを記憶場所にコピーするバックアップである。差分バックアップは、本明細書で使用する限り、最新の完全バックアップ以降に変更された保護対象オブジェクトを記憶場所にコピーするバックアップである。増分バックアップは、本明細書で使用する限り、前回の何らかのバックアップ（完全、差分、増分のいずれか）以降に変更された保護対象オブジェクトのみをコピーするバックアップである。本明細書で説明するように、差分バックアップと増分バックアップは一般に「部分バックアップ」と呼ばれ、いずれかを意味する。ユーザは、アーカイブを運用場所にある元のデータから作成するか、記憶場所にあるコピーから作成するかを指定してもよい。
【０１８２】
アーカイブ保護計画作成ルーチン３９００は、データ保護の種類と保護の期間に基づいて、ユーザが指定した高水準の要件を満たすデフォルトのアーカイブスキーマが決定する。実際の実施形態では、データをアーカイブするための４種類のスキーマが存在する。第１のスキーマはｇｒｅａｔ  ｇｒａｎｄｆａｔｈｅｒ、ｇｒａｎｄｆａｔｈｅｒ、ｆａｔｈｅｒ、ｓｏｎ（ＧＧＦＳ）と呼ばれ、オンサイトで４週間保存する年次の完全バックアップとオフサイトで数年間保存するコピー、オンサイトで４週間保存する月次の完全バックアップとオフサイトで１年間保存するコピー、オンサイトで４週間保存する週次の完全バックアップとオフサイトで４週間保存するコピー、およびオンサイトで２週間保存する日次の差分バックアップを提供する。別の実施形態では、ブロック３９０３で指定した保護の種類に従って、オンサイトとオフサイトのいずれかのコピーのみを保持してもよい。さらに別の実施形態では、ブロック３９０３で指定した保護の種類に基づいて、特定の期間が経過した後にオンサイトのコピー自体を転送し、オフサイトで保持してもよい。もう１つのスキーマは、本明細書ではｇｒａｎｄｆａｔｈｅｒ、ｆａｔｈｅｒ、ｓｏｎ（ＧＦＳ）スキーマと呼ばれる。ＧＦＳスキーマは、オンサイトで４週間保存する月次の完全バックアップとオフサイトで１年間保存するコピー、オンサイトで４週間保存する週次の完全バックアップとオフサイトで４週間保存するコピー、オンサイトで２週間保存する日次の差分バックアップを提供する。
【０１８３】
もう１つのアーカイブスキーマは、本明細書ではｆａｔｈｅｒ、ｓｏｎ（ＦＳ）スキーマと呼ばれる。ＦＳスキーマは、オンサイトで４週間保存する週次の完全バックアップとオフサイトで４週間保存するコピー、オンサイトで２週間保存する日次の差分バックアップを提供する。もう１つのアーカイブスキーマは、本明細書ではｓｏｎ（Ｓ）スキーマと呼ばれる。Ｓスキーマは、オンサイトで１週間保存する日次の完全バックアップとオフサイトで１週間保存するコピーを提供する。最後に、標準の保護スキーマ以外のバックアップを提供する臨時のルーチンも利用できる。これは、オンサイトまたはオフサイトで保持する無期限の完全バックアップでもよい。
【０１８４】
当業者には言うまでもないが、デフォルトのアーカイブスキーマはユーザが任意のレベルで変更でき、追加／代わりのデフォルトのアーカイブスキーマを指定することもできる。たとえば、種類（オンサイト、オフサイト）、期間（月、年）、形式（完全、差分、増分）を変更してもよい。さらに、ユーザはアーカイブスキーマのスケジューリング制御を指定できる。たとえば、ユーザはスキーマを開始する曜日、アーカイブを生成する時刻、スキーマを曜日中心のカレンダーで指定するか月の日付中心のカレンダーで指定するかを指定してもよい。
【０１８５】
図３９に戻ると、デフォルトのアーカイブスキーマがユーザに提示され、ユーザは提示されたスキーマの任意の部分を変更できる。判断のブロック３９１１で、決定したアーカイブスキーマに対してユーザが変更を指定したかどうかを判断する。判断のブロック３９１１でユーザが変更を指定したと判断した場合は、ブロック３９１３でアーカイブスキーマが変更され、指定した変更が反映される。バックアップスキーマは、その任意の部分を変更でき、適用範囲を変更できる。たとえば、バックアップ形式（完全、差分、増分）、保存するオンサイトコピーの数、保存するオフサイトコピーの数、オフサイトコピーの保存期間、Ｓレベルを無効にするかどうか、バックアップで作成したデータセットを検証するかどうか、運用場所、記憶場所、あるいは他の場所でアーカイブを実行するかどうか、およびそれをいつ実行するか、週の開始日、営業日数などを変更してもよい。さまざまな理由により、Ｓレベルを無効化するのが望ましい。たとえば、ユーザがアーカイブと複製の両方を実装した場合は、日次のアーカイブ保護（Ｓレベル）を停止し、すべてのオンサイト回復要件を複製のみで処理するように指定してもよい。
【０１８６】
ブロック３９０９で決定したアーカイブスキーマがそのまま適用されるかまたはブロック３９１３に示すように変更されると、ブロック３９１５で、アーカイブ計画作成ルーチン３９００はアーカイブで保護するために必要な計画を生成する。前述のように、データを保護するために必要な計画には、リソース計画、準備計画、保護計画があってもよい。最後に、ブロック３９１５に示すように計画が生成されると、アーカイブ保護計画作成ルーチン３９００はブロック３９１７で終了する。
【０１８７】
図４０は、本発明の１つの実施形態による、アーカイブスキーマの生成に利用できるさまざまな生成の例を示す表である。表４０００は、週５日（月曜から金曜まで）生成する１つのオンサイトコピーを２週間保持し、オフサイトコピーを保持しない増分モードのバックアップを行うｓｏｎ世代４００１を示している。ｆａｔｈｅｒ世代４００３は１つのオンサイトコピーを４週間保存する完全モードのバックアップを行い、週に１度（たとえば土曜日に）完全バックアップを実行する。ただし、毎月１週（たとえば毎月の最終土曜日）は実行しない。同様に、ｆａｔｈｅｒ世代４００３は１つのオフサイトコピーを４週間保存する。ｇｒａｎｄｆａｔｈｅｒ世代４００５は１つのオンサイトコピーを４週間保存する完全モードのバックアップを行い、月に１度（たとえば毎月最終土曜日に）完全バックアップを実行する。ただし、年に１月（たとえば年の最後の土曜日）は実行しない。さらに、ｇｒａｎｄｆａｔｈｅｒ世代４００５は１つのオフサイトコピーを１２か月間保存する。最後にｇｒｅａｔ  ｇｒａｎｄｆａｔｈｅｒ世代４００７は、１つのオンサイトコピーを４週間保存する完全モードのバックアップを行い、年に１度（たとえば年の最後の土曜日に）完全バックアップを実行する。さらに、ｇｒｅａｔ  ｇｒａｎｄｆａｔｈｅｒ世代４００７は１つのオフサイトコピーを７年間保存する。
【０１８８】
曜日中心のカレンダーに従って（月の最終土曜日、年の最終土曜日など）スケジュールする代わりに、月の日付中心（ｐｈｙｓｉｃａｌ  ｃａｌｅｎｄａｒ）のカレンダーに従ってスケジュールしてもよい。たとえば、月末、年末、月初めなどにジョブを実行するようにスケジュールしてもよい。こうした曜日は、土曜日でもそうでなくてもよい。当業者には言うまでもないが、本発明の実施形態では任意のタイプのスケジューリングおよび／またはカレンダーを利用でき、曜日中心のカレンダーや月の日付中心のカレンダーは例として挙げたにすぎない。スケジューリングの別の態様は、ジョブを実行する期間を指定する機能である。ジョブを実行する期間をスケジュールすることで、ユーザはジョブを実行できる期間を指定できる。さらに、データ保護システムはジョブが指定した時間に完了しないと認識した場合に、事前に警告を発することができる。あるいは、スケジュールした実行時間内にジョブが完了しない場合は、自動的に終了して再スケジュールすることもできる。
【０１８９】
当業者には言うまでもないが、ｓｏｎ４００１、ｆａｔｈｅｒ４００３、ｇｒａｎｄｆａｔｈｅｒ４００５、ｇｒｅａｔ  ｇｒａｎｄｆａｔｈｅｒ４００７などの世代は、図４０に関連して説明した保護計画に関する別のバリエーションを利用するように変更してもよい。唯一の要件は、親は子の同等またはスーパーセットであることである。たとえば、ｆａｔｈｅｒ世代は完全バックアップであり、ｓｏｎ世代は完全バックアップ、差分バックアップ、増分バックアップのいずれかである。さらに、オンサイトとオフサイトで保持するコピーの数は、０からユーザが希望する任意の数までの任意の組み合わせでよい。保存期間とコピー作成の頻度も、ユーザの希望どおりに調整できる。
【０１９０】
データ保護システムでは、長期間データを保護するためのアーカイブスキーマを作成するだけでなく、媒体の継続的な割り当て、ローテーション、ボールティグ（ｖａｕｌｔｉｎｇ）（オフサイトの保管）、廃棄も可能である。このように、本発明の１つの実施形態により、各保護対象グループは媒体プールに関連付けられる。媒体プールは、媒体のコンテナであるが、さまざまなインテントを適用して媒体の割り当てと再利用を制御するオブジェクトでもある。図４１に関連して詳細に説明するように、コロケーションインテントなど、媒体の割り当てを制御するさまざまなインテントがある。本発明の１つの実施形態により使用するコロケーションインテントの例には、ジョブコロケーションインテント、ｓｏｎコロケーションインテント、ｆａｔｈｅｒ／ｓｏｎコロケーションインテントがある。ジョブコロケーションインテントは、同じジョブ内のタスクに同じ媒体を使用しようとする。これで、ジョブが複数のタスクで構成され、その複数のタスクのデータが唯一の媒体に収まる場合に、媒体の取り付け／取り外しの回数を減らすことができる。ｓｏｎコロケーションインテントは、ＧＧＦＳ、ＧＦＳ、ＦＳ、Ｓのいずれかのアーカイブスキーマを指定したｓｏｎジョブにおける媒体の使い方を制御する。ｓｏｎコロケーションインテントを指定すると、特定のサイクル（たとえば１週間のサイクル）の最初のｓｏｎジョブは新しい媒体で開始するが、後続のｓｏｎは十分な領域がなくなるまですべて同じ媒体に追加される。ｆａｔｈｅｒ／ｓｏｎ  コロケーションインテントを使用すると、週次の完全バックアップおよび後続の日次の差分バックアップと増分バックアップは同じ媒体に格納される。
【０１９１】
図４１は、本発明の１つの実施形態による、ジョブコロケーションインテントとｓｏｎコロケーションインテントが指定された場合に、データをアーカイブするための媒体を割り当てるルーチンを示す流れ図である。言うまでもないが、アーカイブ用の媒体を割り当てるのにコロケーションインテントの他の組み合わせを指定してもよい。図４１に関連して説明するルーチンは１つの例にすぎない。媒体割り当てルーチン４１００は、媒体が必要な場合はいつでも実行される。媒体割り当てルーチン４１００は、ブロック４１０１で開始され、判断のブロック４１０２でジョブコロケーションが指定されているかどうかを判断する。ジョブコロケーションが指定されていないと判断した場合に、媒体割り当てルーチンは判断のブロック４１１１に進み、後述するように処理を継続する。しかし、判断のブロック４１０２で、ジョブコロケーションが指定されていると判断した場合は、判断のブロック４１０３で媒体を割り当てようとするタスクが置換ジョブのタスクかどうかを判断する。置換ジョブは、前のジョブが正常に終了しなかった場合にこれに置き換えられるジョブである。判断のブロック４１０３でタスクが置換ジョブのタスクであると判断した場合に、ルーチンはブロック４１０５で正常に終了しなかった元のジョブに割り当てられて使用されたものと同じ物理媒体を割り当てようとする。
【０１９２】
しかし、ブロック４１０３でタスクが置換ジョブのタスクではないと判断した場合は、判断のブロック４１０７でタスクがジョブの最初のタスクかどうかを判断する。タスクがジョブの最初のタスクではないと判断した場合は、ブロック４１０９で媒体割り当てルーチン４１００はすでに同じジョブの前のタスクに割り当てられているものと同じ媒体を割り当てようとする。
【０１９３】
しかし、判断のブロック４１０７でタスクがジョブの最初のタスクであると判断した場合は、判断のブロック４１１１で保護対象のデータセットが最初のｓｏｎデータセットかどうかを判断する。ブロック４１１１で保護対象のデータセットが最初のｓｏｎデータセットであると判断した場合は、判断のブロック４１１２でＦＳコロケーションインテントが指定されているかどうかを判断する。ＦＳコロケーションインテントが指定されている場合に、媒体割り当てルーチン４１００はブロック４１１３で同じサイクルのｆａｔｈｅｒデータセットで使用された媒体を割り当てようとする。サイクルとは、本明細所で使用する限り、アーカイブセットに対してスケジュールされた期間（数日または数週間など）である。しかし、判断のブロック４１１２でＦＳコロケーションインテントが指定されていないと判断した場合に、ルーチンは後述する判断のブロック４１１５に進む。
【０１９４】
判断のブロック４１１１でデータセットがｓｏｎデータセットではない、あるいはサイクルの最初のｓｏｎではないと判断した場合は、判断のブロック４１１４でデータセットが２番目以降のｓｏｎデータセットかどうかを判断する。データセットが２番目以降のｓｏｎデータセットであると判断した場合は、判断のブロック４１１８でＦＳコロケーションインテントまたはＳコロケーションインテントが指定されているかどうかを判断する。ＦＳコロケーションインテントまたはＳコロケーションインテントが指定されている場合に、媒体割り当てルーチン４１００はブロック４１１６で同じサイクルの最後のｓｏｎデータセットで使用された媒体を割り当てようとする。しかし、判断のブロック４１１８でＦＳコロケーションインテントもＳコロケーションインテントも指定されていないと判断した場合に、ルーチンは後述するブロック４１１５に進む。
【０１９５】
しかし、判断のブロック４１１４でタデータセットが２番目以降のｓｏｎデータセットではないと判断した場合は、判断のブロック４１１５で世代の同じ再利用可能な媒体を使用できるかどうかを判断する。たとえば、データセットがｆａｔｈｅｒデータセットの場合は、使用可能な媒体に他のｆａｔｈｅｒデータセットが格納されているかどうかを判断する。判断のブロック４１１５で世代の同じ再利用可能な媒体を使用できると判断した場合に、媒体割り当てルーチン４１００はブロック４１１７で世代の同じものから最も古い再利用可能な媒体を選択し、これを割り当てようとする。
【０１９６】
判断のブロック４１１５で、世代の同じ再利用可能な媒体を使用できないと判断した場合、または判断のブロック４１２７で、ブロック４１０５、４１０９、４１１３、４１１７の割り当てのいずれかが正常に終了しなかったと判断した場合は、判断のブロック４１１９で、プール内に空き媒体があるかどうかを判断する。判断のブロック４１１９で、プール内に媒体があると判断した場合に、媒体割り当てルーチン４１００はブロック４１２１でプールから空き媒体を取得し、これを割り当てようとする。
【０１９７】
最後に、判断のブロック４１１９で、特定の保護対象グループのプール内に空き媒体がないと判断した場合に、媒体割り当てルーチン４１００はブロック４１２３で追加の媒体を取得しようとする。追加の媒体を取得するには、保護対象グループのプールに媒体を追加する必要があることをユーザに通知するか、または既存の空き媒体プールに問い合わせる。空き媒体プールには、別の保護対象グループに関連付けられていない媒体が含まれている。空き媒体プールに空き媒体がない場合は、記憶場所に空き媒体を追加し、空き媒体プールに割り当てる必要があることをユーザに通知する。媒体割り当てルーチン４１００は、ブロック４１２５に示すように、追加の媒体を割り当てて終了するか、追加の媒体を割り当てられない場合はエラーになる。
【０１９８】
図４１に関連して説明したインテントだけでなく、媒体プールのアクティビティを制御する追加のインテントを使用してもよい。たとえば、ユーザは、媒体プールで保持できる媒体数の上限を指定する上限インテントを指定してもよい。上限インテントを使用することで、プールへの上限を超える不必要な媒体の追加（ユーザまたは自動による）が回避される。同様に、１日あたりの上限インテントを使用して２４時間以内に特定のプールに割り当てる空き媒体の項目数を制御してもよい。上限や１日あたりの上限を使用することで、空き媒体プールから特定のプールへの不必要な媒体の追加あるいは過失による媒体の追加（ユーザまたは自動による）が回避される。
【０１９９】
アーカイブ保護のための媒体割り当てに対して、最小しきい値インテントを指定してもよい。最小しきい値インテントは、さまざまな媒体プールへの割り当てに使用できる空き媒体プール内の媒体数の最小値を指定する。空き媒体の数が最小値を下回ると、記憶場所に媒体を追加し、空き媒体のプールに割り当てる必要があることをユーザに通知する。再利用可能な媒体を再利用する前、または空き媒体プールに提供して再割り当てする前に消去する必要があるかどうかを示す媒体消去インテントを指定してもよい。
【０２００】
運用場所から記憶場所への保護対象オブジェクトの複製またはコピーは、各場所にインストールされたエージェントのペア間で実行される。このエージェントペアの動作はデータプロテクタで制御する。たとえば、複製の場合は、運用場所にはクローンエージェントがインストールされ、記憶場所には複製エージェントがインストールされている。クローンエージェントと複製エージェントの動作はデータプロテクタで制御する。さらに、データムーバー（ｄａｔａ  ｍｏｖｅｒ）は、エージェントペア間のパイプの役割を果たす。データムーバーは、エージェント間の相互認証を行い、オプションでデータの暗号化、復号化、圧縮、解凍を実行する。さらに、データムーバーはデータ送信中のデータ保護システムによるネットワーク帯域幅消費を制限するスロットル（ｔｈｒｏｔｔｌｉｎｇ）フロー制御を備えている。
【０２０１】
図４２は、本発明の１つの実施形態によるデータ保護システムを示すブロック図である。データ保護システム４２００には、運用場所４２０３から記憶場所４２０５へのデータ（保護対象オブジェクト）の転送を管理するデータプロテクタ４２０１が含まれる。前述のように、複製の場合、運用場所４２０３にはクローンエージェント４２０７と運用場所４２０３から記憶場所４２０５へのデータの流れを制御するデータムーバーの一部４２０９Ａが含まれる。同様に、記憶場所４２０５には、複製エージェント４２１１と運用場所４２０３からの情報を取得するデータムーバーの別の一部４２０９Ｂが含まれる。運用場所４２０３、記憶場所４２０５、データプロテクタ４２０１の間の対話を使用して運用場所４２０３から記憶場所４２０５にデータを転送し、データプロテクタ４２０１と通信することでデータ転送の有効性を検証する。
【０２０２】
データは、運用場所４２０３からデータムーバー４２０９Ａを介し、通信チャネル４２１３を経由して、データムーバー４２０９Ｂをから記憶場所４２０５に送信される。データ保護システムは、運用場所４２０３から記憶場所４２０５へのデータの転送を監視する機能を備えており、こうした通信チャネルに障害が発生した場合に中断したデータ転送を再開できる。データの転送を最初からやり直さずに再開できるようにするためには、データ転送の状態を定期的に追跡し、保存する必要がある。この作業は、運用場所４２０３から記憶場所４２０５へのデータの転送を監視するデータプロテクタ４２０１で実行する。
【０２０３】
データは、通信チャネル４２１３を介してデータブロックまたはレコードの形で転送される。こうした送信システムでは、データの一部が運用場所４２０３に保持され、データの一部が記憶場所４２０５に保持される。通信チャネルに障害が発生した場合は、データ転送が中断され、送信状態の同期が失われる可能性がある。たとえば、運用場所４２０３から送信したレコードの数と記憶場所４２０５で正常に受信したレコードの数が異なる場合がある。この問題を解決するために、データプロテクタ４２０１はデータ転送を停止または開始する場合に運用場所４２０３と記憶場所４２０５のそれぞれに命令することでデータ転送プロセスを監視し、制御する。
【０２０４】
データを保護するために、運用場所４２０３に配置されたクローンエージェント４２０７は、データムーバー４２０９を介して記憶場所４２０５に配置された複製エージェント４２１１にデータを転送する。データは、運用場所にある保護対象オブジェクトの複製またはコピーを作成するためにデータレコードとして通信チャネル４２１３を介して送信される。クローンエージェントと複製エージェントは、データ転送の状態を本明細書でレコードチェックポイントと呼ぶ特殊なデータブロックとしてデータプロテクタ４２０１に送信する。レコードチェックポイントは、データプロテクタ４２０１で受信され、データベースに格納される。さらに、データプロテクタ４２０１はクローンエージェントと複製エージェントに命令／コマンドを送信する。
【０２０５】
一般に、運用場所に配置されたクローンエージェント４２０７は、通信チャネル４２１３を介して２種類のデータレコードを転送する。第１のデータレコードタイプは、運用場所にある保護対象オブジェクトへの変更である。第２のデータレコードタイプには、保護対象オブジェクトデータに関する情報（メタデータ）が含まれる。メタデータを含むレコードは、データ保護システムによって生成される。後述するように、送信され、記憶場所に格納されたデータのコピーは、メタデータを使用して有効性が確認される。メタデータは、たとえばデータのチェックサムであってもよい。
【０２０６】
運用場所４２０３からのデータ転送の状態は、データレコードストリームがクローンエージェントの変更ログ（図４３〜４７）から複製エージェントのスピルログ（ｓｐｉｌｌ  ｌｏｇ）（図４３〜４７）に送信されるときに、データレコードストリームに専用のデータマーカー（レコードチェックポイント）を挿入することで、クローンエージェント４２０７から送信される。１つの実際の実施形態では、運用場所にあるデータムーバー４２０９Ａからデータストリームを送信するときに、データストリームの終わりにレコードチェックポイントを付加する。別の実施形態では、変更ログにレコードチェックポイントを追加し、データストリームと共にデータアイテムとして送信してもよい。記憶場所のデータムーバー４２０９Ｂでデータストリームを受信すると、データとレコードチェックポイントがスピルログに格納される。
【０２０７】
複製エージェント４２１１はデータストリーム内のこうしたレコードチェックポイントをデータプロテクタ４２０１に転送する。さらに、複製エージェントは独自のレコードチェックポイントを生成し、同様にデータプロテクタ４２０１に転送する。データプロテクタは、クローンエージェント４２０７と複製エージェント４２１１の両方で生成したレコードチェックポイントに含まれる情報を使用して、操作を開始または停止するコマンドを送信する。
【０２０８】
データプロテクタ４２０１は、レコードチェックポイントを受信すると、これを自動的にデータベースに格納する。したがって、データ保護システムは通信障害、プロセス、およびシステム再起動に対して回復が可能である。
【０２０９】
本発明の実際の実施形態において、クローンエージェント４２０７は、本明細書で「クラスＣのチェックポイント」および「クラスＡのチェックポイント」と呼ばれる２種類のチェックポイントを生成する。クラスＣのチェックポイントは、クローンエージェント４２０７から複製エージェント４２１１に送信されたデータの状態を表している。クラスＡのチェックポイントは、メタデータレコードを生成するプロセス全体における位置を表している。
【０２１０】
複製エージェント４２１１は、本明細書で「クラスＢのチェックポイント」と呼ばれる１種類のチェックポイントを生成する。クラスＢのチェックポイントは、複製エージェント４２１１が受信し、適用するデータレコードを指定する。
【０２１１】
クラスＣとクラスＢのチェックポイントはデータチェックポイントである。こうしたチェックポイントは、クローンエージェント４２０７から複製エージェント４２１１へのデータ送信を再開するときと、複製エージェント４２１１で受信したデータレコードの適用を再開するときに使用される。クラスＡのチェックポイントはメタデータチェックポイントである。このチェックポイントは、メタデータを生成するクローンエージェント４２０７上で長時間続くプロセスを監視する場合に使用される。クラスＡのチェックポイントによって、データ送信が中断した場合に、このように長時間続くプロセスの繰り返しの作業量が削減される。
【０２１２】
より詳細には、クラスＣのチェックポイントはクローンエージェント４２０７システムと複製エージェント４２１１システム上のデータストリーム内の位置へのポインタを含んでいる。クラスＣのチェックポイントは、クローンエージェント４２０７によって生成され、複製エージェント４２１１に転送される。複製エージェント４２１１は、スピルログ内の最後に受信したレコードのポインタを使用してクラスＣのチェックポイントを更新する。
【０２１３】
クラスＢのチェックポイントには、記憶場所４２０５に配置された複製エージェント４２１１が最後に適用したデータレコードへのポインタが含まれる。データプロテクタ４２０１がクラスＢのチェックポイントを受信すると、このチェックポイントはデータプロテクタ４２０１に対してクラスＢのチェックポイントより前のデータブロックはすべて記憶場所に格納されたデータの複製に適用されたことを示している。
【０２１４】
クラスＡのチェックポイントは、メタデータ生成中にクローンエージェント４２０７で処理された保護対象データの量を示している。複製エージェントがクラスＡのチェックポイントを受信すると、複製エージェントは必要に応じてその独自のメタデータを追加してクラスＡのチェックポイントをデータプロテクタに転送する。データプロテクタがクラスＡのチェックポイントを受信すると、このチェックポイントに含まれる位置までメタデータの生成が完了したことを意味する。１つの実施形態では、クラスＡのチェックポイントを連続的に参照し（たとえば連番を付けて）、クラスＡのチェックポイントが失われていないかをデータ保護システムが判断できるようにしてもよい。クラスＡのチェックポイントが失われている場合は、相違リストの要素が失われている可能性があるので、検証を再開する。後述するように、相違リストには複製と一致しない保護対象オブジェクトを特定する情報が含まれる。こうしたオブジェクトは、運用場所で生成されたメタデータを記憶場所で生成されたメタデータと比較することで特定される。
【０２１５】
前述の３種類のチェックポイント以外に、データプロテクタ４２０１は特殊なマーカートークンを生成し、これを運用場所４３０３に配置されたクローンエージェントに送信してデータレコードストリームに挿入することができる。このトークンは、クローンエージェント４２０７から通信チャネル４２１３を介して複製エージェント４２１１に送信される。複製エージェント４２１１は、トークンを受信するとこれをデータプロテクタ４２０１に送信する。このマーカートークンの目的は、メタデータの生成を再開する前のデータ通信の送信からクラスＡのチェックポイントをすべてクリアすることである。システム全体のクラスＡのチェックポイントをすべて通過することで、クローンエージェント４２０７ですでに生成されているメタデータが送信され、この場合にのみメタデータの生成が再開される。このことの利点は、データレコードの送信ログがオーバーフローしないようにすることであり（メタデータ生成のプロセスがクローンエージェント４２０７の送信能力をはるかに上回る場合）、同じメタデータを繰り返し生成しないようにすることである。これは、データプロテクタ４２０１はマーカートークンを受信する前にすべてのメタデータを参照するためである。
【０２１６】
図４３〜４４は、本発明の１つの実施形態によるデータ保護システムで実行するデータ転送監視ルーチンを示す流れ図である。前述のように、運用場所４３０３と記憶場所４３０５とのデータ転送は、ユーザまたは別の担当者が保護対象データを変更するのに応答して開始される。あるいは、スケジュールされたジョブ実行時に開始される。保護対象データの変更に応答して、運用場所４３０３では変更ログ４３０７に保護対象データの変更のレコードを記録する。たとえば、Ｒ1、Ｒ2、Ｒ3、Ｒ4、Ｒ5、Ｒ6は、運用場所４３０３のクローンエージェントによって変更ログ４３０７に記録された個々の変更レコードである。変更ログ４３０７内のレコードはデータムーバーによって変更ログ４３０７から定期的に抽出され、バッチにまとめて記憶場所４３０５に送信される。さらに、クローンエージェントが変更ログ４３０７内の最後に送信されたレコードの位置へのポインタを含むクラスＣのチェックポイントを生成し、送信バッチの終わりにクラスＣのチェックポイントを追加する。たとえば、クローンエージェントは変更ログ４３０７からレコードＲ１、Ｒ２、Ｒ３を抽出し、こうしたレコードをバッチにまとめてこのバッチを運用場所４３０５に送信する。Ｒ３の変更ログ４３０７内の位置（この場合は変更ログ内の位置４）へのポインタを含むクラスＣのチェックポイント４３１１が生成される。このクラスＣのチェックポイントは、運用場所４３０５に送信されるバッチの終わりに付加される。
【０２１７】
上の例ではデータの送信バッチごとにクラスＣのチェックポイントを生成でき、送信できることを示しているが、別の実施形態では、送信するデータの容量に基づいてクラスＣのチェックポイントを生成できる。このような実施形態では、あらかじめ指定した最小の送信サイズを超えた場合にのみ、クラスＣのチェックポイントを生成してもよい。さらに別の実施形態では、クラスＣのチェックポイントの生成と送信は、前のクラスＣのチェックポイントが生成され、送信されてからの時間に基づいていてもよい。さらに、あらかじめ指定したデータ送信の回数に基づいて、クラスＣのチェックポイントを生成し、送信してもよい。たとえば、５回目ごとのデータ送信で、クラスＣのチェックポイントを生成し、送信してもよい。さらに、本発明の実施形態では、チェックポイントを生成し、送信する技術の任意の組み合わせを利用できる。たとえば、データが最小のサイズを超えた場合または５回目ごとの送信で、クラスＣのチェックポイントを生成できる。
【０２１８】
記憶場所４３０５に配置された複製エージェントは、データムーバーを介して送信されたレコードとクラスＣのチェックポイントを受信し、送信されたレコードとクラスＣのチェックポイントをスピルログ４３１３に格納する。さらに、記憶場所４３０５に配置された複製エージェントは、クラスＣのチェックポイント４３１１を受信すると、クラスＣのチェックポイントのスピルログ４３１３内の位置を示す第２のポインタをクラスＣのチェックポイントに追加する。この場合、クラスＣのチェックポイント４３１１に追加されたポインタは、スピルログ内の位置１０６へのポインタである。したがって、クラスＣのチェックポイント４３１３には、変更ログ４３０７内の最終送信位置とスピルログ４３１３内のクラスＣチェックポイントの位置の両方の位置へのポインタが含まれる。ここで、複製エージェントによってクラスＣのチェックポイント４３１５がデータプロテクタ４３０１に転送される。データプロテクタ４３０１は、クラスＣのチェックポイントをデータベースに記録する。別の実施形態では、クラスＣのチェックポイントがスピルログには格納されず、代わりに複製エージェントはバッチで最後に送信された変更レコードを指定するポインタをクラスＣのチェックポイントに追加してから、データプロテクタ４３０１にクラスＣのチェックポイントを転送する。
【０２１９】
図４４を参照すると、データプロテクタ４３０１は記憶場所４３０５からクラスＣのチェックポイントを受信すると、このクラスＣのチェックポイントをデータプロテクタのデータベースに格納し、運用場所４３０３に送信する。運用場所４３０３でクラスＣのチェックポイントの確認を受信することで、運用場所はクラスＣのチェックポイントより前に送信したすべてのレコードを記憶場所４３０５で受信したこと、およびこうした送信レコードが変更ログ４３０７からパージされる可能性があることを確認する。
【０２２０】
記憶場所４３０５に配置された複製エージェントは、レコードを受信し、こうしたレコードをスピルログ４３１３に格納するだけでなく、記憶場所４３０５に配置されたデータの複製への受信したレコードの適用を開始する。複製エージェントは、事前に指定したポイントで、複製データ４３１７に最後に適用したレコードのスピルログ４３１３内の位置を示すポインタを含むクラスＢのチェックポイントを生成する。あらかじめ指定したポイントは、たとえば処理されたデータの量、最後のクラスＢのチェックポイントからの経過時間、あるいはこの２つの組み合わせに基づいていてもよいが、これに限定はされない。たとえば、複製エージェントはスピルログ４３１３内の位置１０３からＲ1を適用し、スピルログ４３１３のからＲ2を適用し、複製データ４３１７にＲ2を適用してから、スピルログ内の位置１０４への参照を含むクラスＢのチェックポイントを生成してもよい。生成されたクラスＢのチェックポイント４３１９は、記憶場所４３０５に配置された複製エージェントによってデータプロテクタ４３０１に転送される。データプロテクタ４３０１は、クラスＢのチェックポイントをデータベースに格納し、データ転送が中断した場合に利用できる。
【０２２１】
さらに、データプロテクタ４３０１は記憶場所４３０５からクラスＢのチェックポイントを受信すると、このクラスＢのチェックポイントをデータプロテクタのデータベースに格納し、クラスＢのチェックポイントの確認を記憶場所４３０５に返送する。記憶場所４３０５でクラスＢのチェックポイントの確認を受信することで、データプロテクタが複製データ４３１７に適用された最後のレコードの位置を記録したこと、およびこうしたレコードがスピルログ４３１３からパージされる可能性があることを記憶場所４３０５に対して確認する。
【０２２２】
レコードを転送し、転送したレコードを記憶場所で複製データに適用するプロセスとチェックポイントのサイクルによって、記憶場所４３０５に対して運用場所４３０３からのレコード送信の精度を確認し、クラスＢのチェックポイントの確認を受信することで、失敗した結果、データ送信を再開する場合に利用できる情報をデータプロテクタ４３０１に提供する。
【０２２３】
図４５は、本発明の１つの実施形態による、運用場所４３０３から記憶場所４３０５への変更レコードの送信を再開するデータ保護システムを示す流れ図である。説明のために、システムは運用場所４３０３から記憶場所４３０５にデータを送信していたが、何らかの原因で送信が中断し、システムが送信を再開しようとしていると仮定する。
【０２２４】
データの送信を再開するために、データプロテクタ４３０１はデータプロテクタ４３０１のデータベースに格納したクラスＣとクラスＢチェックポイントの最後の記録を参照し、運用場所４３０３と記憶場所４３０５の再開する位置を特定する。たとえば、データプロテクタ４３０１は、記録されたクラスＢのチェックポイントＢ２を参照し、最後のレコードが適用されたスピルログ４３１３内の位置が１０７であったことを特定する。したがって、データプロテクタ４３０１は記憶場所４３０５の複製エージェントに対してスピルログの位置１０８からレコードの適用を開始し、次に受信したデータレコードをスピルログの位置１１１より後（すなわちスピルログの位置１１２）に格納するように命令するコマンドを生成し、記憶場所４３０５に送信する。複製エージェントが受信したレコードの格納を開始する位置（１１２）は、データプロテクタ４３０１のデータベースに最後に記録されたクラスＣのチェックポイントを参照することで特定される。この例において、データプロテクタ４３０１はクラスＣのチェックポイントＣ３を参照し、記憶場所４３０５で受信したことが最後に確認されたクラスＣのチェックポイントがスピルログ内の位置１１１にあることを特定する。
【０２２５】
同様に、データプロテクタ４３０１は最後に受信したクラスＣのチェックポイントＣ３を参照し、運用場所４３０３から最後に送信され、記憶場所４３０５で正常に受信したレコードが変更ログの位置９に配置されたことを確認する。したがって、データプロテクタ４３０１は運用場所４３０３に配置されたクローンエージェントに対して記憶場所４３０５への送信をレコード１０から開始するように命令するコマンドを生成し、運用場所４３０３に送信する。
【０２２６】
概して、データレコードの送信を効率的に再開するために、データプロテクタ４３０１は３つのコマンドを生成し、送信する。変更ログ４３０７内の送信開始ポイントを指定するｓｔａｒｔ  ｓｅｎｄｉｎｇ  ｒｅｃｏｒｄｓコマンドが生成され、運用場所４３０３に送信される。スピルログ４３１３内の適用を再開する位置を指定するｓｔａｒｔ  ａｐｐｌｙｉｎｇ  ｒｅｃｏｒｄｓコマンドが生成され、記憶場所４３０５に送信される。第３のコマンド、つまりスピルログ４３１３内の新しく受信したレコードを格納する位置を指定するｓｔａｒｔ  ｓｔｏｒｉｎｇ  ｒｅｃｅｉｖｅｄ  ｒｅｃｏｒｄｓコマンドが生成され、記憶場所４３０５に送信される。
【０２２７】
クラスＢおよびクラスＣなどのチェックポイントを参照し、ｓｔａｒｔ  ａｐｐｌｙｉｎｇ  ｒｅｃｏｒｄｓコマンド、ｓｔａｒｔ  ｓｅｎｄｉｎｇ  ｒｅｃｏｒｄｓコマンド、およびｓｔａｒｔ  ｓｔｏｒｉｎｇ  ｒｅｃｅｉｖｅｄ  ｒｅｃｏｒｄｓコマンドを生成することで、データ保護システムは自らを再同期化でき、データ転送における既知のチェックポイントから再開すれば、データの先頭から送信を開始する必要はない。データが失われることもない。
【０２２８】
運用場所４３０３から記憶場所４３０５への変更レコードの送信を監視するだけでなく、前述のように、データ保護システムは記憶場所４３０５に配置された複製データ４３１７の整合性を検証する機能を備えている。本発明の実際の実施形態において、データの有効性確認は運用場所４３０３から有効性確認レコードを送信し、これを記憶場所４３０５に格納されたレコードと比較することで実施される。
【０２２９】
図４６と４７は、本発明の１つの実施形態による、複製４３１７の有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチンを開始するために、データプロテクタ４３０１は運用場所４３０３に対して有効性確認を開始するためのコマンドを発行する。ｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎコマンドの受信に応答して、クローンエージェントは運用場所４３０３にある各保護対象オブジェクトに関するメタデータの生成を開始する。このメタデータがレコードとして変更ログ４３０７に追加され、変更レコードと共に送信される。レコードとメタデータは、前述のように、変更ログ４３０７から記憶場所４３０５に送信される。記憶場所４３０５では、前述のように、変更レコードを受信するとこのレコードを複製データ４３１７に適用する。Ｖ1などのメタデータレコードを適用すると、記憶場所４３０５に配置された複製エージェントは複製データ４３１７の同じ部分についてメタデータを計算する。２つのメタデータを比較し、複製データの該当する部分の有効性と整合性を確認する。メタデータが一致しない場合に、複製エージェントは複製４３１７と一致しない保護対象オブジェクトを示す相違リストを生成する。
【０２３０】
当業者には言うまでもないが、メタデータを使用して複製データを保護対象オブジェクトと比較する作業は、比較するデータのチェックサムを作成すること、および／またはデータの最終更新時刻など、他の任意の指標（ｉｎｄｉｃｉａ）を比較することで実施できる。
【０２３１】
Ｖ1やＶ2などの一連のメタデータレコードが変更ログ４３０７に追加された後、あらかじめ指定した時点で、運用場所４３０３に配置されたクローンエージェントは変更ログ４３０７にレコードとして追加するクラスＡのチェックポイントを生成する。生成されたクラスＡのチェックポイント（Ａ1など）は、変更レコードおよびメタデータレコードと共に通信チャネルを介して記憶場所４３０５に送信される。
【０２３２】
記憶場所４３０５に配置された複製エージェントがクラスＡのチェックポイントを受信すると、複製エージェントはクラスＡのチェックポイントとメタデータ比較の結果として生成された相違リスト（ある場合）をデータプロテクタ４３０１に転送する。図４６に示すように、クラスＡのチェックポイントはパージされるまでスピルログに保持できる。あるいは、クラスＡのチェックポイントを受信すると同時に相違リストと共に転送してもよい。したがって、スピルログに格納しなくてもよい。
【０２３３】
データプロテクタ４３０１は、クラスＡのチェックポイントと相違リストを受信し、クラスＡのチェックポイントと相違リストをデータベースに格納する。相違リストは運用場所に転送され、指定された保護対象オブジェクトは再複製されて記憶場所に再送される。指定された保護対象オブジェクトの再複製と再送は、相違リストの受信に応答して実行してもよいし、後で（たとえば複製の有効性確認が完了してから）実行するようにスケジュールしてもよい。
【０２３４】
クラスＡのチェックポイントには、それ自体の中で特定の保護対象オブジェクトが指定されており、そのオブジェクトに至るまでのメタデータが計算されている。たとえば、ｓｅｒｖｅｒ１上のＣ：＼にある保護対象オブジェクトのメタデータが生成されており、最後にメタデータを生成した保護対象オブジェクトがｓｅｒｖｅｒ１上のＣ：＼ｆｉｌｅ５０の場合は、クラスＡのチェックポイントにｓｅｒｖｅｒ１上のＣ：＼ｆｉｌｅ５０への参照が含まれる。この情報はデータプロテクタ４３０１よってデータベースに格納されるので、データ送信が中断した場合に、有効性確認を再開する参照ポイントとなる。
【０２３５】
図４７は、本発明の１つの実施形態による、有効性確認が特定の時点で中断した場合に、有効性確認を再開するために本データ保護システムで生成される有効性確認再開ルーチンの再開を示す流れ図である。このルーチンを説明するために、まずデータ送信が中断し、再開しようとしていると仮定する。データ送信を再開する場合に、データプロテクタ４３０１は図４７にＡpとして示すマーカートークンを生成して送信する。マーカートークンはデータプロテクタ４３０１で生成する独自のトークンであり、データの有効性確認を再開する前に、システム全体を循環し、すべてのメタデータとクラスＡチェックポイントをクリアする。
【０２３６】
マーカーＡpはデータプロテクタ４３０１から運用場所４３０３に送信され、運用場所４３０３に配置されたクローンエージェントによって変更ログ４３０７に追加される。運用場所４３０３でマーカートークンＡpを受信すると、クローンエージェントはマーカーＡpを変更ログ４３０７に追加し、続いてマーカーＡpを記憶場所４３０５に送信する。記憶場所４３０５でマーカートークンＡpを受信すると、記憶場所４３０５に配置された複製エージェントはこのマーカートークンＡpをデータプロテクタ４３０１に転送する。
【０２３７】
データプロテクタ４３０１でマーカートークンＡpを受信すると、データプロテクタ４３０１はこれまでに生成されたシステムに関するすべてのメタデータが運用場所４３０３から記憶場所４３０５に送信されたことを認識する。データプロテクタ４３０１は、クラスＡのチェックポイントのデータベースを参照すると、送信された最新のクラスＡのチェックポイントを特定し、運用場所でデータの有効性確認を再開する位置を含むｒｅｓｔａｒｔコマンドの準備をする。データプロテクタ４３０１は、運用場所４３０３にｒｅｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎコマンドとデータの有効性確認を再開するポイントの指定を送信する。
【０２３８】
たとえば、図４７を参照すると、データプロテクタ４３０１がデータベースから前回の有効性確認ルーチン実行中にメタデータを計算した最新の保護対象オブジェクトはｓｅｒｖｅｒ１上のＣ：＼ｆｉｌｅ１００３である。したがって、データプロテクタ４３０１はｓｅｒｖｅｒ１のボリュームＣ：上のｆｉｌｅ１００３までのすべてのファイルに関してメタデータが生成され、送信されたことを認識し、その結果、運用場所４３０３に対してｓｅｒｖｅｒ１上のＣ：＼ｆｉｌｅ１００３より後のメタデータ生成を指示するｒｅｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎコマンドを生成する。
【０２３９】
図４８Ａは、本発明の１つの実施形態による、運用場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。コマンド処理ルーチン４８００は、ブロック４８０１で開始され、判断のブロック４９０３で受信したコマンドが「ｓｔａｒｔ  ｔｒａｎｓｍｉｓｓｉｏｎ」コマンドかどうかを判断する。前述のように、データ保護システム全体に配置されたエージェントを制御するコマンドはデータプロテクタで生成される。判断のブロック４８０３で、受信したコマンドが「ｓｔａｒｔ  ｔｒａｎｓｍｉｓｓｉｏｎ」コマンドであると判断した場合は、ブロック４８０５で送信開始ポイントを特定する。送信開始ポイントは、「ｓｔａｒｔ  ｔｒａｎｓｍｉｓｓｉｏｎ」コマンドで指定してもよい。送信開始ポイントは、変更ログ内のデータの送信を開始する位置である。
【０２４０】
さらに、ブロック４８０７で送信終了ポイントを特定する。送信終了ポイントは、さまざまな方法で指定できる。たとえば、送信終了ポイントは、変更ログ内の最新のレコードを検出し、これを送信終了ポイントとして使用する、データ送信の最大サイズを指定し、ログ内でこのサイズに達するポイントを特定するなどの方法で特定できる。送信の開始ポイントと終了ポイントを特定すると、ブロック４８０９でコマンド処理ルーチン４８００はデータ送信フロー（図４８Ｂ）に制御を渡す。
【０２４１】
判断のブロック４８０３に戻り、受信したコマンドが「ｓｔａｒｔ  ｔｒａｎｓｍｉｓｓｉｏｎｓ」コマンドではないと判断した場合は、判断のブロック４８１１で受信したコマンドが「ｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎ」コマンドかどうかを判断する。判断のブロック４８１１で、受信したコマンドが「ｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎ」コマンドであると判断した場合は、ブロック４８１３で運用場所の有効性確認を開始する位置を特定する。送信の開始ポイントおよび終了ポイントと同様に、位置は「ｓｔａｒｔ  ｔｒａｎｓｍｉｓｓｉｏｎ」コマンドで指定してもよいし、別の方法で取得してもよい。運用場所内で有効性確認を開始する位置を特定すると、コマンド処理ルーチン４８００は、ブロック４８１５に示すように、有効性確認ルーチン（図４８Ｃ）に制御を渡す。
【０２４２】
判断のブロック４８１１で、受信したコマンドが「ｓｔａｒｔ  ｖａｌｉｄａｔｉｏｎ」コマンドではないと判断した場合は、判断のブロック４８１７で、受信したコマンドがＣのチェックポイントの確認かどうかを判断する。Ｃのチェックポイントの確認であると判断した場合は、ブロック４８１９に示すように、Ｃのチェックポイントが確認される前に送信された変更ログ内のレコードが変更ログからパージされ、ブロック４８２１でルーチンが終了する。ただし、判断のブロック４８１７で、受信したチェックポイントがＣのチェックポイントの確認ではないと判断した場合は、受信したコマンドがマーカートークンＡpである。ブロック４８２３でマーカートークンＡpを変更ログに挿入し、ブロック４８２５でルーチンが終了する。
【０２４３】
図４８Ｂは、本発明の１つの実施形態による、運用場所から記憶場所に変更レコードを送信するデータ送信ルーチンを示す流れ図である。データ送信ルーチン４８３０は、ブロック４８３１で開始され、ブロック４８３３で変更ログから取得した変更レコードのグループをバッチに一括して送信する。レコードのバッチには任意の数のレコードを含めることができる。レコードのバッチ作成は、変更ログが最大サイズに達した場合、変更が発生した後、あらかじめ指定した時点で行われる。当業者には言うまでもないが、前述のレコードのバッチを作成するタイミングとレコードのバッチサイズは例にすぎず、本発明の実施形態では、レコードのバッチを作成する任意のタイミングとサイズを利用できる。たとえば、レコードのバッチに唯一のレコードを含め、データ保護システムに変更が発生するたびにバッチを作成してもよい。
【０２４４】
ブロック４８３５で、レコードのバッチが運用場所から送信される。レコードのバッチを送信する以外に、クラスＣのチェックポイントが生成されてレコードのバッチの終わりに追加され、レコードのバッチの一部として送信される。前述のように、クラスＣのチェックポイントには、レコードのバッチに含まれる最新の変更レコードの変更ログ内の位置へのポインタが含まれる。判断のブロック４８３７で、変更ログ内に他にもレコードがあるかどうかを判断する。判断のブロック４８３７で他にもレコードがあると判断した場合は、データ送信ルーチン４８３０はブロック４８３３に制御を返し、ルーチンは継続する。しかし、判断のブロック４８３７で他に送信するレコードがないと判断した場合は、ブロック４８３９に示すようにこのルーチンが終了する。
【０２４５】
図４８Ｃは、本発明の１つの実施形態による、データの有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチン４８４０は、ブロック４８４１で開始され、判断のブロック４８４３で、運用場所内に有効性を確認する必要のあるオブジェクトがあるかどうかを判断する。判断のブロック４８４３で、有効性を確認する必要のあるレコードが他にはないと判断した場合は、ブロック４８４４に示すようにこのルーチンが終了する。ただし、有効性を確認する必要のあるレコードが他にはないと判断した場合は、ブロック４８４５でオブジェクトのメタデータを作成する。特に、メタデータを生成する最初のオブジェクトは、コマンド処理ルーチン４８００（図４８Ａ）のブロック４８１３で特定した開始位置に対応するオブジェクトである。メタデータを生成すると、このメタデータが変更ログにメタデータレコード（Ｖ）として追加される。
【０２４６】
判断のブロック４８４７で、クラスＡのチェックポイントが生成されて変更ログに追加されるかどうかを判断する。前述のように、クラスＡのチェックポイントはメタデータレコードを生成して送信するプロセス全体における位置を表しており、データの有効性確認を再開するときに利用される。さらに、クラスＡのチェックポイントには一連のマーカーが含まれており、送信されたクラスＡのチェックポイントの１つが受信されていないかどうかを判断できる。判断のブロック４８４７で、クラスＡのチェックポイントが生成されると判断した場合、ブロック４８４９でチェックポイントが生成されてレコードとして変更ログに追加され、変更ログ内の他のレコードと共にバッチに一括して送信される。変更ログにクラスＡのチェックポイントを追加すると、有効性確認ルーチン４８４０は判断のブロック４８４３に制御を返し、ルーチンは継続する。しかし、判断のブロック４８４７でクラスＡのチェックポイントをを生成しないと判断した場合は、有効性確認ルーチン４８４０は判断のブロック４８４３に制御を返して継続する。
【０２４７】
図４９Ａは、本発明の１つの実施形態による、記憶場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。コマンド処理ルーチン４９００は、ブロック４９０１で開始され、判断のブロック４９０３で受信したコマンドが「ｓｔａｒｔ  ｒｅｃｅｐｔｉｏｎ」コマンドかどうかを判断する。「ｓｔａｒｔ  ｒｅｃｅｐｔｉｏｎ」コマンドは、記憶場所で運用場所から送信されるレコードの受信を開始せよという命令である。判断のブロック４９０３で、コマンドが「ｓｔａｒｔ  ｒｅｃｅｐｔｉｏｎ」コマンドであると判断した場合は、ブロック４９０５で、受信したレコードを格納するスピルログ内の開始ポイントを特定する。スピルログ内の位置の特定は、「ｓｔａｒｔ  ｒｅｃｅｐｔｉｏｎ」コマンドまたは別の命令内で位置を受け取ることで決定できる。受信したレコードの格納を開始するスピルログ内の位置を特定すると、コマンド処理ルーチン４９００は、ブロック４９０７に示すように、レコード受信ルーチン（図４９Ｂ）に制御を渡す。
【０２４８】
判断のブロック４９０３に戻り、受信したコマンドが「ｓｔａｒｔ  ｒｅｃｅｐｔｉｏｎ」コマンドではないと判断した場合は、判断のブロック４９０９で受信したコマンドが「ｓｔａｒｔ  ａｐｐｌｉｃａｔｉｏｎ」コマンドかどうかを判断する。受信したコマンドが「ｓｔａｒｔ  ａｐｐｌｉｃａｔｉｏｎ」コマンドの場合は、ブロック４９１１でレコードの適用を開始するスピルログ内の開始位置を特定する。レコード受信開始位置と同様に、スピルログ内の位置の特定は、「ｓｔａｒｔ  ａｐｐｌｉｃａｔｉｏｎ」コマンドで指定された位置または別のコマンドとして受信した位置によって特定される。適用を開始するスピルログ内の位置を特定すると、コマンド処理ルーチン４９００は、変更レコード適用ルーチン（図４９Ｃ）に制御を渡す。
【０２４９】
判断のブロック４９０９で、コマンドが「ｓｔａｒｔ  ａｐｐｌｉｃａｔｉｏｎ」コマンドではないと判断した場合は、コマンドがクラスＢのチェックポイントの確認であり、ブロック４９１５で、確認されたクラスＢのチェックポイントが送信される前に記憶場所でコピーに適用されたスピルログに含まれるすべてのレコードがログからパージされる。ブロック４９１７でルーチンが終了する。
【０２５０】
図４９Ｂは、本発明の１つの実施形態による、記憶場所でレコードを受信するレコード受信ルーチンを示す流れ図である。レコード受信ルーチン４９２０は、ブロック４９２１で開始され、ブロック４９２３で次に到着するレコードを受信する。前述のように、レコードの送信は、有線、無線などを含むがそれに限定はされない任意のタイプの送信媒体を使用して実行できる。判断のブロック４９２５で、受信したレコードがクラスＣのチェックポイントかどうかを判断する。クラスＣのチェックポイントである場合は、クラスＣのチェックポイントのスピルログ内の位置がクラスＣのチェックポイントに追加され、ブロック４９２７に示すように、クラスＣのチェックポイントをデータプロテクタに転送する。判断のブロック４９２５で、レコードがクラスＣのチェックポイントではないと判断した場合は、判断のブロック４９２９で、レコードがマーカートークンＡpかどうかを判断する。レコードがマーカートークンの場合は、ブロック４９３１でマーカートークンをデータプロテクタに送信する。
【０２５１】
判断のブロック４９２９で、レコードがマーカートークンではないと判断した場合は、判断のブロック４９３５で、レコードがクラスＡのチェックポイントかどうかを判断する。判断のブロック４９３５でレコードがクラスＡのチェックポイントであると判断した場合は、ブロック４９３７でクラスＡのチェックポイントと相違リストをデータプロテクタに転送する。判断のブロック４９３５で、レコードがクラスＡのチェックポイントではないと判断した場合、またはレコードをデータプロテクタに転送（ブロック４９２７、４９３１、４９３７）した後は、ブロック４９３９に示すように受信したレコードをスピルログに追加する。判断のブロック４９４１で、他にも受信したレコードがあるかどうかを判断する。他にもレコードがある場合は、レコード受信ルーチン４９２０がブロック４９２３に戻って処理を継続する。他にレコードがない場合は、ブロック４９４３でこのルーチンが終了する。
【０２５２】
図４９Ｃは、本発明の１つの実施形態による、記憶場所に格納された複製に変更レコードを適用する変更レコード適用ルーチンを示す流れ図である。レコード適用ルーチン４９５０は、ブロック４９５１で開始され、ブロック４９５３でスピルログからレコードを取得する。判断のブロック４９５５で、取得したレコードにメタデータが含まれるかどうかを判断する。レコードにメタデータが含まれると判断した場合は、ブロック４９５７でメタデータを複製に格納された対応するオブジェクトと比較する。前述のように、メタデータは最終更新時刻、サイズ、計算したチェックサムなど、オブジェクトに関する任意の形の識別情報でよい。判断のブロック４９５９で、メタデータの比較に基づいてメタデータが異なるかどうかを判断する。比較したメタデータが異なる場合は、ブロック４９６１で、メタデータを比較したオブジェクトの識別情報が相違リストに追加される。特定されたオブジェクトを相違リストに追加するとき（ブロック４９６１）、または判断のブロック４９４９でメタデータが異なっていないと判断した場合に、変更レコード適用ルーチン４９５０は判断のブロック４９６５に進んで処理を継続する。判断のブロック４９５５に戻り、レコードがメタデータでないと判断した場合は、レコードが変更レコードなので、ブロック４９６３に示すようにこれを複製に適用する。
【０２５３】
判断のブロック４９６５で、クラスＢのチェックポイントを生成する必要があるかどうかを判断する。前述のように、クラスＢのチェックポイント生成は任意の形の基準に基づいて作成できる。たとえば、変更レコードを適用するたびに、あるいはあらかじめ指定した期間が経過した後などにクラスＢのチェックポイントを生成してもよい。判断のブロック４９６５でクラスＢのチェックポイントを生成する必要があると判断した場合は、判断のブロック４９６７で相違リストが空かどうかを判断する。相違リストが空でないと判断した場合に、ブロック４９６９でルーチン４９５０はクラスＡのチェックポイントの受信を待機する。相違リストが空ではない場合にクラスＡのチェックポイントを待機することで、システムが再起動した場合に相違リストへの追加を生成したメタデータレコードが失われないことが保証される。クラスＢのチェックポイントを送信する前にクラスＡのチェックポイントを受信することで、相違リストを送信するときに、相違リストの生成に利用されたすべてのメタデータレコードが必要なくなることが保証される。判断のブロック４９６７で相違リストが空であると判断した場合は、ブロック４９６９でクラスＡのチェックポイントを受信するときに、ブロック４９７１に示すように、クラスＢのチェックポイントを生成し、送信する。
【０２５４】
判断のブロック４９６５に戻り、クラスＢのチェックポイントを生成しないと判断した場合、クラスＢのチェックポイントを送信（ブロック４９７１）した後に、判断のブロック４９７３でまだ複製に適用されていないレコードが他にもスピルログ内にあるかどうかを判断する。他にもレコードがある場合に、変更レコード適用ルーチン４９５０はブロック４９５３に戻って処理を継続する。しかし、判断のブロック４９７３で適用する必要のあるレコードが他にないと判断した場合は、ブロック４９７５に示すようにこのルーチンが終了する。
【０２５５】
本発明の実施形態は、仮バージョンによる複製および／または取り外し可能な媒体へのデータのアーカイブコピーのような任意のバックアップ技術を使用して、運用場所のデータを保護する機能を提供する。本発明の実施形態において、運用場所のデータを保護する機能は、データ保護システムのさまざまな部分に配置されたエージェントが実行する操作の分散された制御と連携によって実現する。たとえば、エージェントは運用場所、記憶場所、および／またはデータプロテクタのいずれの場所に配置してもよい。こうしたアクティビティはジョブと呼ばれており、通常はスケジュールに基づいて実行される。ジョブは多くの場合にリモートエージェントとの通信を必要とするので、通常は非同期であり、完了までに長時間かかる場合もある。ジョブは、スケジュールされたアクティビティの単位であり、１度だけ実行することも、定期的に実行することもできる。ジョブは１つまたは複数のタスクで構成される。タスクはシリアルにもパラレルにも実行できる。さらに、ジョブはいずれかのタスクが失敗した場合に失敗する場合もあるが、すべてのタスクが完了または失敗するまで続行する場合もある。
【０２５６】
データを保護するために、ジョブは保護対象グループのすべてのメンバーについて、所定のアクティビティを実行するように編成される。データの保護は、特定のジョブに適したアクティビティを実行するタスクを含むジョブの編成によって実現する。たとえば、保護計画または回復計画には１つまたは複数のジョブとこうしたジョブのスケジュールが含まれる。本発明の実際の実施形態において、ジョブは、保護、回復、検出、ハウスキーピング（ｈｏｕｓｅｋｅｅｐｉｎｇ）の４タイプのいずれかと考えることができる。保護ジョブは、複製、仮バージョン管理、アーカイブ、ステージングなど、データ保護のアクティビティを実行する。保護タスクはそれぞれ保護対象グループに関連付けられる。回復ジョブは、複製、データセット、アーカイブ、あるいはそれらの組み合わせからのデータの回復を実行する。回復タスクはそれぞれ回復ソースに関連付けられる。初期検出ルーチン（図２５）とスケジュールされた検出ルーチン（図２６）のような検出ジョブは、データプロテクタの外部のエンティティを検出する。検出は、検索、ナビゲーション、自動検出グループのリフレッシュまたは保存検索の結果、および保護対象グループのメンバーシップ決定のために実行する。ハウスキーピングジョブは、データ保護システムを保守するために必要なアクティビティを実行する。ハウスキーピングジョブには、インストールされたエージェントのバージョン調査、サマリー証跡（ｓｕｍｍａｒｙ  ｔｒａｉｌ）、媒体の移行、データ保護システムデータベースのガーベッジコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）が含まれる。
【０２５７】
データ保護システムの各ジョブは、ジョブマネージャで監視する。ジョブマネージャは、ジョブの全体的な進捗を監視し、データプロテクタデータベースからこうしたジョブに関連するデータを読み込み、こうしたジョブから受け取った情報をマネージャが保守するデータプロテクタデータベースの特定の部分に書き込む。ジョブマネージャが保守するデータベースの一部について、データベースのこの部分に情報を書き込むことができるデータ保護システムの唯一のマネージャである。
【０２５８】
図５０は、本発明の１つの実施形態による、複数のタスクを含むジョブを示すブロック図である。前述のように、ジョブ５０００にはタスク１（５００１）、タスク２（５００２）のように１つまたは複数のタスクが含まれており、タスクＮ（５００３）に示すようにその数は任意である。ジョブの各タスクは、タスクエグゼキュータ（ｅｘｅｃｕｔｏｒ）（５００５、５００７）によって実行され、管理される。タスクエグゼキュータ５００５は、タスク２（５００２）などのタスクを実行するときに、データ保護システム全体に分散するさまざまなエージェントが実行する１つまたは複数のコマンドを生成できる。たとえば、タスクエグゼキュータ５００５はタスク２（５００２）を実行するための３つの異なるコマンドを生成でき、各コマンドを異なるエージェントが実行する。タスク２（５００２）の第１のコマンドはエージェントＡ（５００９）が実行し、第２のコマンドはエージェントＢ（５０１１）が実行し、第３のコマンドはエージェントＣ（５０１３）が実行してもよい。タスクのタイプとジョブのタイプによって、エージェント５００９〜５０１３はコマンドをシリアルにもパラレルにも実行できる。
【０２５９】
ジョブのプロパティは、ジョブのすべてのタスクに適用される。ジョブの個々のタスクにも固有のプロパティを指定できる。保護ジョブのジョブとタスクのプロパティは、グループ計画のジョブ作成の一部としてインテント変換によって決定する。本発明の実際の実施形態において、すべてのジョブには、成功／失敗の対処、およびパラレルの実行またはシリアルのみの実行のプロパティがあってもよい。さらに、データの移動を伴う任意のジョブには、暗号化、圧縮、スロットル、およびコロケーションインテントのプロパティがあってもよい。
【０２６０】
各タスクエグゼキュータ（ｅｘｅｃｕｔｏｒ）５００５、５００７は、有限ステートマシン（ＦＳＭ：ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）として生成できる。ＦＳＭは、入力に応じてＦＳＭをさまざまな状態に移行させる共通のエンジンで実行され、再開ロジック（ｒｅｓｔａｒｔ  ｌｏｇｉｃ）を実行する。たとえば、タスクエグゼキュータは、エージェントに対して以前に発行したコマンドからの応答に基づいて移行してもよい。共通エンジンを使用することで、すべてのＦＳＭの設計が設計に関する共通の方法論に準拠でき、ＦＳＭが同じ共通ブロックを共有できる（たとえば、ポーリングを行い、エージェントが有効かどうか、エージェントからステータスを取得したかどうかを判断する）。
【０２６１】
通常、タスクエグゼキュータはエージェントに対してコマンドを発行し、こうしたコマンドが成功したか失敗したか、およびこうしたコマンドからの応答によって、待機状態に移行したり待機状態から戻ったりする。さらに、タスクエグゼキュータ５００５、５００７は、タスク実行中に特定の時間が経過した場合、キャンセル要求に応答する場合（たとえば、そのジョブに対して指定された制限時間を超えたためにユーザがのキャンセルを要求した場合など）、またはデータベースの状態に基づいて生成される内部メッセージに応答する場合に移行できる。移行するたびに、タスクエグゼキュータはタスクを介してその移行を保存する。保存された移行ポイントは、データプロテクタデータベースに格納できる。タスクを介して移行ポイントを保存することで、予期しない終了イベント（停電など）に対して堅牢なデータ保護システムが提供される。再開時に、タスクエグゼキュータは保存されたポイントを参照し、タスクの適切な状態を特定し、このポイントの直後に失敗して必要なクリーンアップを実行することができる。
【０２６２】
たとえば、前述のように、複製のためのデータ送信ジョブでは、タスクエグゼキュータがジョブの各タスクを実行する適切なエージェントに対してコマンドを発行する。こうしたコマンドには、クローンエージェントに対して発行する変更レコードの送信開始コマンドが含まれる。同様に、タスクエグゼキュータは複製エージェントに対してレコードの受信と適用を開始するコマンドを発行する。エージェントがこうしたコマンドを実行すると、タスクエグゼキュータはタイマーを起動し、待機状態に移行する。移行する（コマンドを発行し、待機を開始する）たびに、タスクエグゼキュータはタスクの移行ポイントを保存する。タスクエグゼキュータが受信する応答には、チェックポイント、タイムアウトイベント、キャンセル要求などがある。応答を受信すると、タスクエグゼキュータはその応答に従ってタスクのそのポイントを保存する。このプロセスは、タスクが成功または失敗して終了するまで続く。
【０２６３】
タイムアウトイベントが発生した場合に、タスクエグゼキュータ５００５は各エージェントにポーリングしてエージェントが依然として有効かどうか、およびそのエージェントが実行するコマンドの移行に関する更新情報を取得できるかどうかを判断してもよい。移行ポイントを保存することで、堅牢性を向上するだけでなく、長時間続くアクティビティ、中間ポイント、チェックポイントから再開でき、失敗した場合に作業が全面的には失われないように設計される。たとえば、図４３〜４７に戻り、データの送信と有効性確認の間にチェックポイントが作成される。こうしたチェックポイントは、複製マネージャによって取得され、データプロテクタデータベースに格納される。図４３〜４７に関連して上で説明したように、失敗から再開するときに、こうしたチェックポイントにアクセスし、チェックポイントで指定するポイントからデータの送信や有効性確認を再開できる。
【０２６４】
タスクエグゼキュータ５００５、５００７は、タスクの実行を終了するだけでなく、本発明の１つの実施形態において、ジョブマネージャにタスクの完了と、タスクが成功したか失敗したかを通知する。ジョブマネージャは、ジョブを構成するすべてのタスクについてサマリー情報を提供する独自の証跡（ｔｒａｉｌ）を保持する。たとえば、ジョブ証跡には成功して終了したタスクの数が記録される。また、ジョブマネージャはタスクエグゼキュータから受け取った情報をデータプロテクタデータベースのタスク証跡に保存する。さらに、タスクエグゼキュータもタスクに関連するタスクエグゼキュータに固有の情報を伴う独自のタスク証跡を保持する。タスク証跡には、タスク実行中に発生したエラーやデータ保護システムのユーザに役立つタスクに関連する統計を記録してもよい。タスクのタイプに固有の証跡は、その特定のタスクに関連付けられたマネージャが受け取って保持する。タスクのタイプに固有の証跡には、データを移動するために必要な時間の合計、タスクを終了するために必要な時間の合計、送信するデータの全容量など、タスクに固有の情報を含めてもよい。データ保護システムを再起動するときに、タスク証跡を利用して失敗の原因となったエラーパスを特定できる。さらに、タスクはタスク専用のメタデータを保持してもよい。再開時にこの専用のメタデータを使用して失敗したタスクをクリーンアップし、このタスクが完了（失敗または成功）したときにタスク証跡を作成する。さらに、タスクエグゼキュータ５００５、５００７はタスクに関連するメタデータを管理してもよい。
【０２６５】
失敗した場合は、再開するときにジョブが非常に簡単なクリーンアップを実行する。ジョブはジョブ自体を再スケジュールせず、複雑な回復操作も実行しない。代わりに、失敗したジョブのタスクが物理オブジェクトの状態を簡単に更新して失敗する。失敗は、タスク証跡とジョブ証跡に記録される。プロンプトと自動回復操作を保証する重要なタスクの場合は、データ保護システムがヘルスマネージャを介してメイクアップジョブを作成し、これを使用してタスクが失敗したポイントまたはタスクで生成した最新のチェックポイントから完了までのジョブを実行する。ヘルスマネージャは、タスク証跡とデータベース内のさまざまなオブジェクトの状態を利用して、データ保護を続行できるより複雑な回復メカニズムを実装する。
【０２６６】
複製など、クリティカルとみなされるタスクの場合は、ヘルスマネージャがこうしたタスクを監視してもよい。１つの実施形態において、ヘルスプロバイダはヘルスマネージャによってインスタンス化される。クリティカルなタスクが失敗すると、失敗イベントが生成される。ヘルスプロバイダは、こうしたイベントを監視し、回復を実行する必要があるかどうかを判断する。回復が必要な場合は、メイクアップジョブを作成してスケジュールし、失敗した１つまたは複数のタスクを回復する。さらに、システム起動時にヘルスマネージャはヘルスプロバイダを起動する。各ヘルスプロバイダは、システムが前回終了したときに動作しており、失敗したタスクの回復が必要かどうかをそれぞれ独自に判断する。回復が必要な場合は、メイクアップジョブが作成されてスケジュールされる。メイクアップジョブには、失敗したジョブ内の唯一のタスクが失敗した場合は唯一のタスク含めてもよいが、開始されていないタスクを含めて失敗したジョブ内の未完の全タスクを含めてもよい。
【０２６７】
図５１は、本発明の１つの実施形態による、タスクの監視とメイクアップジョブの作成を示す流れ図である。前述のように、データ保護システムで実行する各処置は、複数のタスクを含むジョブの形で構成される。データプロテクタ５１０１は、運用場所５１０３にある保護対象オブジェクトの複製などのジョブを作成できる。こうしたオブジェクトは、１つまたは複数のタスクを実行した結果、記憶場所に転送され、格納される。このジョブは、データプロテクタ５１０１によって開始され、ジョブの各タスクは１つまたは複数のタスクエグゼキュータによって実行される。たとえば、複製ジョブでは、タスクエグゼキュータは複数のエージェントにコマンドを発行する。エージェント１つを運用場所５１０３に配置し、１つを記憶場所５１０５に配置してもよい。こうしたタスクが実行されて現在進行中であり、この例を説明するためにジョブが中断され、続いて回復される。ジョブの中断は、停電などのシステム障害によって発生する可能性がある。回復時に、データプロテクタ５１０１は、ジョブのタスクはシステム障害が発生する前に進行中であったことを特定する。データプロテクタ５１０１は、ジョブのタスクが進行中であったことを特定すると、タスク再開のコマンドを発行する。タスクを再開すると、タスクエグゼキュータはタスクを失敗し、失敗したタスクの簡単なクリーンアップを実行する。タスクがクリティカルな場合は、適切なヘルスプロバイダに通知する。
【０２６８】
メイクアップジョブは、前のジョブが終了した場所を特定するジョブである。メイクアップジョブには、前のジョブで失敗したタスクまたは前のジョブで開始されなかったタスクが含まれる。たとえば、失敗したジョブが複製ジョブの場合は、ヘルスプロバイダは複製ジョブのどのタスクが正常に終了していないかを特定し、失敗したタスクとそのジョブに関連する完了していない他のすべてのタスクを含むメイクアップジョブを作成する。失敗したタスクの受信に応答してメイクアップジョブを生成する場合は、ヘルスマネージャが失敗したタスクを特定し、そのタスクと場合によってはシリアルまたはパラレルに実行する必要のある他のタスクを含むジョブを作成する。メイクアップジョブを作成すると、ヘルスマネージャはメイクアップジョブを実行するようにスケジュールする。このメイクアップジョブは独自のジョブと同様にスケジュールどおりに処理され、メイクアップジョブのタスクが実行される。さらに、メイクアップジョブはその独自のジョブとしてスケジュールされるので、ジョブマネージャの観点からは他のジョブと同様に扱われ、ジョブマネージャはそれがメイクアップジョブであることを認識しなくてもよい。
【０２６９】
図５２は、本発明の１つの実施形態による、タスクエラーを特定し、そのタスクがクリティカルな場合にメイクアップジョブを作成するメイクアップジョブルーチンを示す流れ図である。メイクアップジョブルーチン５２００は、データ保護システムでも実行できるが、本発明の実際の実施形態ではヘルスマネージャで実行している。
【０２７０】
メイクアップジョブルーチン５２００は、ブロック５２０１で開始され、ブロック５２０３でタスクの失敗を受信する。前述のように、タスクが中断された場合は、再開するときにタスクエグゼキュータが前に実行していたタスクを再開して失敗させ、タスク失敗の通知を発行する。タスクエグゼキュータは、失敗したタスクのクリーンアップ（ｃｌｅａｎ−ｕｐ）を実行する。
【０２７１】
判断のブロック５２０５で、メイクアップジョブルーチン５２００は失敗したタスクがクリティカルかどうかを判断する。別の実施形態では、どのタスクをクリティカルと見なすかをユーザが指定できる。判断のブロック５２０５で、失敗したタスクがクリティカルであると判断した場合は、ブロック５２０７で、この未完のタスクと関連のタスク（ある場合）を特定する。ブロック５２０９で、メイクアップジョブルーチン５２００は未完のタスクのそれぞれについてメイクアップジョブを作成し、ブロック５２１１でメイクアップジョブをスケジュールする。
【０２７２】
判断のブロック５２０５で、失敗したタスクがクリティカルであると判断した場合は、ブロック５２１３に示すように、メイクアップジョブルーチンが終了する。タスクが何度も実行されるルーチンジョブの一部である場合はクリティカルでないと特定される。たとえば、バックグラウンド複製の複製ジョブは、複製ジョブが毎時間実行されるようにスケジュールされている場合はクリティカルではないと見なされる。このように、複製ジョブはスケジュールに従って繰り返し処理されるので、データ保護システムでは複製ジョブのタスクはクリティカルではないと判断される。
【０２７３】
メイクアップジョブをスケジュールする必要があるかどうかの判断に加えて、データプロテクタはジョブマネージャを介して、タスクの失敗に応じて、失敗したタスクを含むジョブを続行するかジョブも失敗するかを判断する。失敗したタスクがジョブも失敗すると判断されたタスクの場合は、ジョブマネージャによって関連のジョブが失敗する。タスクがクリティカル（したがって、メイクアップジョブが必要）と見なされる場合でも、必ずしもジョブは失敗しなくてもよい。同様に、クリティカルでないタスクの失敗によってジョブが失敗する場合もある。たとえば、ジョブに複数のデータソースからの複製が含まれる場合は、１つの複製タスク（クリティカルなタスク）が失敗してもジョブの失敗にはならない場合もある。
【０２７４】
前述のように、データ保護システムにはデータ保護システムの特定の部分を制御するマネージャが含まれる。たとえば、データ保護システムには複製マネージャ、構成マネージャ、ヘルスマネージャ、サマリマネージャ（ｓｕｍｍａｒｙ  ｍａｎａｇｅｒ）、ジョブマネージャ、メディアマネージャ、アーカイブマネージャなどを含めてもよいが、これに限定はされない。各マネージャは、データプロテクタデータベースの特定の部分を保守する。データベースの各部分は、対応するマネージャ以外は書き込めない一連のテーブルで構成される。こうしたテーブルは、任意のマネージャや外部のアプリケーションで読み出すことができるが、各テーブルにデータを書き込むことができるのは対応するマネージャに限定されるので、並行処理の制御や同期化ロジックは該当するマネージャが所有する。ヘルスマネージャは、タスクとジョブを監視する以外に、他のマネージャも監視する。ヘルスマネージャは、マネージャに関連付けられたタスクの失敗に応答するように構成されており、マネージャに対応するデータベースの状態を調べてどのような回復処置が必要かを判断できる。
【０２７５】
さらに、マネージャには、マネージャの機能を実装する１つまたは複数のタスクエグゼキュータを含めることもできる。たとえば、複製マネージャには、複製タスクエグゼキュータ、仮バージョンタスクエグゼキュータ、仮バージョンからの回復タスクエグゼキュータを含むがこれに限定はされない複製に関連するすべてのタスクエグゼキュータを含めることができる。
【０２７６】
データ保護システムの物理オブジェクト（たとえば、複製、媒体、ディスク、ライブラリ、ドライブ）について、状態モデルが保守される。各状態モデルは、オブジェクトがとる可能性のある状態と状態間で許可される移行を説明する。たとえば、図３７は本発明の１つの実施形態による複製の状態モデルを示している。状態モデルは、オブジェクトのライフサイクルを説明し、オブジェクトが１つの状態から別の状態に移行するにはどのようなアクティビティを実行する必要があるかを示している。たとえば、複製が無効な状態３７０５にある場合に（図３７）、データ保護システムはこの状態に基づいて有効性確認ジョブを実行し、複製を有効状態に実行する必要があることを認識する。オブジェクトの状態は、多くの場合にヘルスプロバイダ（ｈｅａｌｔｈ  ｐｒｏｖｉｄｅｒ）への入力である。
【０２７７】
状態モデルを保守することで、ヘルスプロバイダで回復に利用できる既知の状態を維持し、それによってエラー処理を簡素化する。さらに、オブジェクトの状態を監視することで、データ保護システムがエラーの状態をどう処理したかをユーザに示している。
【０２７８】
データ保護システムでは、データ保護システムの一部が生成したイベントも監視しており、データ保護システム自体の全体的なステータスについてユーザに報告する。あるいは、レポートによってデータ保護システム内のさまざまな物理オブジェクトに関する特定の情報を提供してもよい。たとえば、運用場所のサーバを利用できない場合は、ユーザに問題を通知し、推奨される対処を提示するエラーレポートが生成される。
【０２７９】
イベントはデータ保護システムによってレビューされ、このレビューに基づいてレビューイベントに関するレポートが生成される。レポートは、情報、警告、エラーの３種類のいずれかに分類できる。全体として、レポートがエラーレポートの場合はユーザの対処が必要なことを示している。警告レポートの場合は、ユーザの対処が直ちに必要なわけではないが、警告が自動でも手作業でも解除されない場合は対処が必要になる可能性がある。最後に、レポートが情報レポートは、ユーザの対処は必要ないことをユーザに通知し、データ保護システムに関する情報を提供する。当業者には言うまでもないが、レポートは、情報、警告、エラー以外の形でも、それに代わる形で提供できる。
【０２８０】
レポートは、データ保護システムのさまざまな部分で生成したイベントをレビュー（ｒｅｖｉｅｗｉｎｇ）することによって作成される。こうしたイベントに基づいて、データ保護システムはイベントとデータ保護システムの該当する部分の状態に関するレポートをコンパイルする。したがって、ユーザにはデータ保護システムで生成したすべてのイベントが提示されるのではなく、情報レポート、警告レポート、エラーレポートのいずれかに分類されたレポートが提供される。提供されたレポートには、必要に応じてデータ保護システムで検出した問題を解決するための推奨される方法が必要に応じて記載される。最新のジョブのタスクが失敗したかどうかにかかわらず、レポートを生成できる。たとえば、後述するように、最新のコピージョブが成功しても（ブロック５４０９）、記憶場所でコピーを保守するためのディスク領域があらかじめ指定したしきい値を超えた場合は（ブロック５４１１）、データ保護システムで警告に分類されるイベントが生成され、ディスク領域の割り当てを増やす必要があることを通知する警告レポートがユーザに提供される（ブロック５４１３）。
【０２８１】
レポートのタイプ（情報、警告、エラー）は，データ保護システムの特定の部分を分析することによって決まる。たとえば、仮バージョン診断ルーチン５７００（図５７）を参照すると、あらかじめ指定した期間と持続期間全体について欠落する仮バージョンの数が計算され（ブロック５７２５）、こうした期間にわたって欠落する仮バージョンのパーセンテージに基づいてレポートの分類（警告、エラー）が決まる。
【０２８２】
さらに、一部のインスタンスでは、一連のテストを実行してレポートに記載する提言を決定してもよい。たとえば、コピー診断ルーチン５４００において、コピーが有効でないと判断し（５４０３）、有効性確認ジョブが失敗したと判断した場合に（５４４５）、データ保護システムはユーザ向けに生成されたエラーレポートにどのような推奨されるソリューションを記載するかを、一連のテスト（判断のブロック５４４７、５４５１、５４５５、５４５９）を介して決定する。同様の例が回復診断ルーチン５９００（図５９）でも示されている。具体的に、ジョブが失敗したと判断した場合に（５９１１）、データ保護システムはユーザ向けに生成されたエラーレポートにどのような推奨されるソリューションを記載するかを、一連のテスト（判断のブロック５９１７、５９２１、５９２５、５９２９）を介して決定する。
【０２８３】
図５３は、本発明の１つの実施形態により、データのコピーに関連する問題を診断し、問題が検出された場合に示された訂正に関する報告を生成する方法を示す流れ図である。前述のように、レポートは、エラー、警告、情報の３つの状態に分類できる。
【０２８４】
診断ルーチン５３００は、ブロック５３０１で開始され、ブロック５３０３でコピー診断ルーチンを実行する。このルーチンについては、図５４〜５６に関連して詳細に説明する。診断ルーチン５３００は、コピー診断ルーチン５３０３を実行する以外に仮バージョン診断ルーチンを実行する。このルーチンについては、図５５〜５８に関連して説明する。最後に、診断ルーチン５３００はデータ保護システムが発行した警告が他にもあるかどうかを判断する。
【０２８５】
判断のブロック５３０９で、コピー診断ルーチン、仮バージョン診断ルーチン検出されたエラー、またはその他の警告で示されたエラーがあるかどうかを判断する。判断のブロック５３０９でエラーが検出されたと判断した場合は、判断のブロック５３１１で、エラーを説明し、報告されたエラーを解決するための推奨される手順をユーザに提言するエラーレポートが生成される。ただし、判断のブロック５３０９でエラーが検出されないと判断した場合は、判断のブロック５３１３でコピー診断ルーチン、仮バージョン診断ルーチンのいずれかで生成された警告、またはその他の警告で示されるものがあるかどうかを判断する。判断のブロック５３１３で警告が検出されたと判断した場合は、ブロック５３１５で、警告を説明し、警告を解決するために実行できる手順をユーザに提示する警告レポートが生成される。最後に、判断のブロック５３１３で警告が検出されなかったと判断した場合は、判断のブロック５３１５で、データ保護システムに問題がないこと、およびデータ保護システムはユーザが要求したとおりに情報を保護していることをユーザに通知する情報レポートが生成される。
【０２８６】
ブロック５３０３、５３０５、５３０７の各ルーチンを介して進み、こうしたルーチンの最も重大な問題を判断することで（判断のブロック５３０９、５３１３）、問題の可能性を１つのレポートとしてユーザに通知できる。たとえば、エラーが特定された場合に、エラーと推奨されるソリューションを提示し、より深刻な問題であるエラーが解決するまで、警告レポートまたは情報レポートを抑制してもよい。
【０２８７】
図５４は、本発明の１つの実施形態による、本データ保護システムにおけるデータのコピーに伴う問題の可能性を診断するコピー診断ルーチンを詳細に示す流れ図である。コピー診断ルーチンは、複製、アーカイブ、あるいは複製とアーカイブの両方の任意のタイプのストレージに利用できる。以下で詳述するように、コピー診断ルーチン５４００は最終的なコピーのタスクが成功したか失敗したかを判断する。最終的なコピーのタスクが失敗した場合は、コピーモードがバックグラウンドかバックアップか（ブロック５４１７）によって後続のパスが異なる。１日に１度実行されるタスクの失敗は毎時間実行されるタスクの失敗よりはるかに重要なので、こうした失敗に基づいてさまざまなレポートが生成される。たとえば、バックグラウンドモードでタスクが失敗すると、失敗の数があらかじめ指定した下側限界を超えた場合にユーザに情報レポートが提供さる。また、バックグラウンドモードで頻繁に実行されるようにスケジュールされたタスクでは、後に実行される同じタスクで問題を自動的に解決できるので、レポートは生成されない。これとは対照的に、コピーモードがバックアップの場合は、警告レポートとエラーレポートのいずれかがユーザに提供される。
【０２８８】
コピー診断ルーチン５４００は、ブロック５４０１で開始され、判断のブロック５４０３でコピーが有効かどうかを判断する。判断のブロック５４０３で、コピーが有効であると判断した場合は、判断のブロック５４０５でコピージョブが現在実行中かどうかを判断する。判断のブロック５４０５でコピージョブが実行中であると判断した場合は、ブロック５４０７でデータ保護システムはコピーの最新の状態を示し、コピージョブが現在実行中であることをユーザに通知する情報レポートを生成する。
【０２８９】
しかし、判断のブロック５４０５でコピージョブが現在実行中でないと判断した場合は、判断のブロック５４０９で最新のコピージョブが成功したかどうかを判断する。判断のブロック５４０９で最新のコピージョブが成功したと判断した場合は、判断のブロック５４１１で最新のコピージョブからディスク利用しきい値の警告が生成されたかどうかを判断する。ディスク利用しきい値の警告は、コピーが現在格納されている記憶場所のディスク領域が少なくなっていることをデータ保護システムが確認するのに応じて生成される。たとえば、複製のディスク領域が少なくなっている場合、またはアーカイブがテープの媒体でなくディスクに対して実行される場合、またはプール内の媒体が少なくなっているか空きプール内の媒体が少なくなっている場合は、ディスク利用しきい値の警告が生成してもよい。このしきい値レベルはあらかじめ指定されており、あらかじめ指定したサイズに達すると、しきい値の警告が生成される。
【０２９０】
判断のブロック５４１１でディスク利用しきい値の警告が生成されたと判断した場合は、ブロック５４１３で記憶場所があらかじめ指定したしきい値を超えたことを示す警告レポートが生成され、コピーに追加のディスク領域を割り当てるように提言する。別の実施形態では、データ保護システムはユーザにしきい値の警告を通知するエラーレポートを生成するだけでなく、コピーの現在のディスク領域の状態を確認することで警告がまだ妥当かどうかを調べることもできる。
【０２９１】
判断のブロック５４１１でディスク利用しきい値の警告が生成されていないと判断した場合は、ブロック５４１５でデータ保護システムの該当する部分に問題がないことを通知するレポートがユーザに提供される。
【０２９２】
判断のブロック５４０９に戻り、最新のコピージョブが成功しなかったと判断した場合は、判断のブロック５４１７で保護のモードがバックグラウンドモードかどうかを判断する。本明細書で説明するように、バックグラウンドモードの保護はたとえば毎時間、１日２４時間、週７日といったように、ほとんど連続的にコピーが行われるデータ保護システムの運用モードでありる。あるいは、コピーのモードはバックアップモードでもよい。バックアップモードの保護は、比較的コピーの頻度の低い運用モードである。たとえば、アーカイブおよび／または複製を夜間に実行してもよい。
【０２９３】
判断のブロック５４１７で、コピーのモードがバックグラウンドであると判断した場合は、ブロック５４１９で前に失敗したコピージョブの数を計算する。判断のブロック５４２１で、ブロック５４１９で計算した前に失敗したコピージョブの数があらかじめ指定した下側限界を超えているかどうかを判断する。判断のブロック５４２１で前に失敗したコピージョブの数があらかじめ指定した下側限界を超えていないと判断した場合は、ブロック５４２２でデータ保護システムが現在のところ期待どおりに動作していることをユーザに通知する情報レポートが生成される。失敗したコピージョブの数を計算し、レポートを生成するかどうかを判断する限界と比較することで、データ保護システムはユーザに通知せずに問題を解決する機会を提供する。たとえば、コピージョブが毎時間生成され、１つが欠落する場合は、次の時間のコピージョブが成功すればデータ保護システムはこの問題を解決できる。
【０２９４】
しかし、判断のブロック５４２１で前に失敗したコピージョブの数があらかじめ指定した下側限界を超えていると判断した場合は、判断のブロック５４２３で前に失敗したコピージョブの数がもう１つの上側限界を超えているかどうかを判断する。判断のブロック５４２１で前に失敗したコピージョブの数があらかじめ指定した上側限界を超えていないと判断した場合は、ブロック５４２４で失敗したコピージョブの数をユーザに通知する警告レポートが生成される。警告レポートでは、失敗したコピージョブの数があらかじめ指定した上側限界の（クリティカルな）数を超えていないので、現在のところユーザの対処は必要ないことも通知している。
【０２９５】
判断のブロック５４１７で保護のモードがバックグラウンドモードではない、つまりバックアップモードであると判断した場合、または判断のブロック５４２３で失敗したコピージョブの数が事前に指定した上側限界超えていると判断した場合は、ブロック５４２５（図５５）に示すように、コピー診断ルーチン５４００が最新のタスク失敗の原因を確認する。本発明の１つの実施形態において、コピージョブ失敗の原因はコピージョブ自体に含まれるタスクで生成されるタスク証跡から確認できる。前述のように、タスクの証跡にはタスク自体、タスクの作業内容、タスクが完了したこと、あるいはタスクが失敗した原因に関するメタデータが含まれる。
【０２９６】
判断のブロック５４２７で、失敗の原因はユーザが前のコピージョブをキャンセルしたことかどうかを判断する。判断のブロック５４２７でコピージョブ失敗の原因はユーザがジョブをキャンセルしたことであると判断した場合は、コピー失敗の通知は無視される。しかし、判断のブロック５４２７で前にコピーが失敗した原因はユーザがジョブをキャンセルしたこと以外であると判断した場合は、判断のブロック５４３１で前にコピーが失敗した原因はデータ保護システムが運用場所に接続できなかったことかどうかを判断する。コピー診断ルーチン（図５４〜５６）について上で説明したように、運用場所などの場所に接続できないのは、ネットワークの切断や電源の問題、あるいは運用サーバがメンテナンスなどの作業のためにそのときにシャットダウンされていたことなど、外部のさまざまなイベントによる可能性がある。
【０２９７】
判断のブロック５４３１で最新のコピージョブが失敗した原因はデータ保護システムが運用場所に接続できなかったことであると判断した場合は、ブロック５４３３で前のコピージョブが正常に終了しなかったことをユーザに通知し、ネットワークおよび／または運用場所を調べてデータ保護システムが運用場所に接続できなかった原因を特定するように提言するレポートを生成する。
【０２９８】
判断のブロック５４３１で前の失敗の原因はデータ保護システムが運用場所に接続できなかったことではないと判断した場合は、判断のブロック５４３５で前の失敗の原因はデータ保護システムがコピーを実行するエージェントに接続できなかったことかどうかを判断する。失敗した原因がコピーを実行するエージェントに接続できなかったことであると判断した場合は、ブロック５４３７に示すように、ユーザにエラーを通知し、エージェントを調べ、場合によってはルーチンを再開するように、および／またはエージェントのインストールを確認し、および／またはエージェントを再インストールするようにユーザに提言する警告レポートが生成される。
【０２９９】
しかし、前の失敗の原因はユーザのキャンセル（ブロック５４２７）、運用場所に接続できなかったこと（ブロック５４３１）、エージェントに接続できなかったこと（ブロック５４３５）のいずれでもなかったと判断した場合は、問題が不明であり、データ保護システムは失敗の原因を特定できなかったことをユーザに通知し、コピーに関連するネットワーク接続とエージェントを調べるようにユーザに提言するエラーレポートが生成される。
【０３００】
図５４に戻り、判断のブロック５４０３で、コピー診断ルーチン５４００で診断を行うコピーが有効でないと判断した場合は、判断のブロック５４３７（図５６）で、診断を行うコピーが無効（つまり、図３７の無効な状態３７０５）かどうかを判断する。判断のブロック５４３７で、診断を行うコピーが無効であると判断した場合に、コピー診断ルーチンはブロック５４３９でデータソースのコピーが初期化されていないことをユーザに通知する。別の実施形態では、ブロック５４３９で診断を行う特定のデータソースのコピーが初期化されていないことをユーザに通知し、初期化ジョブを生成するかどうかをユーザに問い合わせるレポートがユーザに提供される。
【０３０１】
判断のブロック５４３７で、コピーが無効であると判断した場合は、判断のブロック５４４１で診断を行うコピーの有効性確認ジョブが現在実行中かどうかを判断する。判断のブロック５４４１で、診断を行うコピーの有効性確認ジョブが現在実行中であると判断した場合は、ブロック５４４３で診断を行うコピーの有効性確認が現在実行中であることと、現在のところ処置は必要ないことをユーザに通知する警告レポートが生成される。
【０３０２】
判断のブロック５４４１で、有効性確認ジョブが実行中でないと判断した場合は、判断のブロック５４４５でコピー診断ルーチン５４００は前の有効性確認ジョブが実行されて失敗したかどうかを判断する。判断のブロック５４４５で、有効性確認ジョブが実行されて失敗したと判断した場合は、判断のブロック５４４７で失敗はユーザが有効性確認ジョブをキャンセルした結果かどうかを確認する。判断のブロック５４４５で、前に実行した有効性確認ジョブが失敗しなかったと判断した場合、または前に実行した有効性確認ジョブが失敗したが失敗はユーザがキャンセルした結果ではないと判断した場合は、ブロック５４４９で失敗をユーザに通知し、有効性確認ジョブを実行するようにユーザに提言するエラーレポートが生成される。あるいは、有効性確認ジョブを自動で実行してもよい。
【０３０３】
しかし、判断のブロック５４４７で、前に実行して失敗した有効性確認ジョブがユーザのキャンセル以外の原因で失敗したと判断した場合は、ブロック５４４９で前の有効性確認ジョブに関連付けられたタスク証跡から失敗の原因を特定する。ブロック５４４９で特定した失敗の原因を利用して、ブロック５４５１でコピー診断ルーチン５４００は前に実行した有効性確認ジョブが失敗した原因がコピーに使用できる記憶場所の容量の不足かどうかを判断する。判断のブロック５４５１で、記憶場所のコピーの領域に空きがないと判断した場合は、ブロック５４５３で記憶場所に空きがないことをユーザに通知し、コピーするための領域を増やすようにユーザに提言するエラーレポートが生成される。ディスク領域の割り当てを増やすには、場合によっては複製用のディスク領域を追加する必要がある。
【０３０４】
判断のブロック５４５１で、失敗の原因は領域不足でないと判断した場合は、ブロック５４５５で失敗の原因はデータ保護システムが記憶場所に全く接続できなかったことかどうかを判断する。判断のブロック５４５５で、データ保護システムがコピーを有効性確認しようとしたが記憶場所に接続できなかったと判断した場合は、エラーレポートが生成される。このエラーレポートは、記憶場所にアクセスできなかったことをユーザに通知し、データ保護システムと記憶場所との通信、ターゲットボリュームとの通信、記憶場所自体の整合性を確認するようにユーザに提言する。
【０３０５】
判断のブロック５４５５で、失敗の原因は記憶場所にアクセスできないことではないと判断した場合は、判断のブロック５４５９で、運用場所で変更ログのオーバーフローが発生したかどうかを判断する。ログのオーバーフローの原因として、運用場所で変更ログのキューに非常に多くの変更が追加されたこと、および／または記憶場所でスピルログに空きがなくなったことが考えられる。これは、変更レコードと有効性確認レコードが生成される速度が、記憶場所に送信され、処理される速度より速い場合に発生する場合がある。判断のブロック５４５９で、失敗の原因はログのオーバーフローであると判断した場合は、ブロック５４６１に示すように、ログのオーバーフローをユーザに通知し、ログがオーバーフローしたことを特定し、ログのサイズを拡張するようにユーザに提言するエラーレポートが生成される。
【０３０６】
最後に、判断のブロック５４５９でコピー診断ルーチン５４００が失敗の原因はログのオーバーフローではないと判断した場合は、ブロック５４６３で失敗をユーザに通知し、運用サーバ、データプロテクタ、記憶サーバに通信の問題の可能性またはその他の問題の可能性がないか、失敗が続くかどうかを確認し、データ保護システムを再初期化するようにユーザに提言するエラーレポートが生成される。
【０３０７】
診断保護の問題の別の例は、仮バージョンの診断である。仮バージョン診断ルーチンについては、図５３（ブロック５３０５）に示す診断ルーチン全体に関連して言及し、図５７に関連して詳細に説明する。
【０３０８】
図５７は、本発明の１つの実施形態による、本データ保護システムで生成される仮バージョンに伴う問題の可能性を診断する仮バージョン診断ルーチンを示す流れ図である。仮バージョン診断ルーチン５７００は、ブロック５７０１で開始され、判断のブロック５７０３で、仮バージョンを作成するコピーが有効な状態かどうかを判断する。判断のブロック５７０３で、仮バージョンを生成するコピーが有効な状態であると判断した場合は、判断のブロック５７０５でそのコピーの最新の仮バージョンジョブが成功したかどうかを判断する。判断のブロック５７０５で、コピーの最新の仮バージョンジョブが成功しなかったと判断した場合は、ブロック５７０７でその仮バージョンジョブが失敗した原因をその仮バージョンジョブに関連付けられたタスクの証跡から確認する。
【０３０９】
判定のブロック５７０９で、説明と仮バージョンを再作成するようにという提言を記載するエラーレポートが生成される。別の実施形態では、データ保護システムは説明を記載するエラーレポートを生成するだけでなく、後続の仮バージョンを取得する仮バージョンジョブを自動的にスケジュールできる。
【０３１０】
判断のブロック５７０３に戻り、仮バージョンを作成するコピーが有効な状態でないと判断した場合は、仮バージョン診断ルーチン５７００は図５６に示すブロックに関連して前述したように処理を継続する。
【０３１１】
判断のブロック５７０５で、有効なコピーの仮バージョンジョブが成功したと判断した場合は、判断のブロック５７１１で仮バージョンが実際に取得されたかどうかを判断する。判断のブロック５７１１で、仮バージョンが実際に作成されなかったと判断した場合は、判断のブロック５７１３で、コピージョブの失敗があったかどうかを判断する。判断のブロック５７１３で、コピージョブの失敗があったと判断した場合は、図５５で図示し、説明したブロックに関連して前述したように、仮バージョン診断ルーチン５７００は処理を継続する。
【０３１２】
しかし、判断のブロック５７１１で仮バージョンが作成されたと判断し、さらに判断のブロック５７１３でコピージョブの失敗がなかったと判断した場合は、データ保護システムに対してコピーに関するアクティビティがなかったこと、したがって仮バージョンが必要なかったことを示している。さらに、コピーおよび／または仮バージョンに問題がないので、ブロック５７１５でコピーに関するアクティビティが存在せず、仮バージョンが作成されなかったことをユーザに通知する情報レポートが作成される。
【０３１３】
判断のブロック５７１１に戻り、仮バージョンジョブが実行され、仮バージョンが作成されたと判断した場合は、ブロック５７２１（図５８）に示すように、回復が必要な場合に対象となる最も古い仮バージョンが使用可能かどうかを判断する。対象となる最も古い仮バージョンが使用可能であるかどうかを判断することで、持続時間インテントが満たされているかどうかを確認する。たとえば、持続時間が少なくとも１年前の情報を回復できるものであり、対象となる最も古い仮バージョン（１年前のもの）が使用可能である場合は、持続時間インテントが満たされていることが確認される。判断のブロック５７２１で、対象となるた最も古い仮バージョンが回復に利用できないと判断した場合は、対象となる最も古い仮バージョンが回復に利用できないことと、その最も可能性の高い原因はディスク領域の不足であることをユーザに通知するエラーレポートが生成される。エラーレポートには、ブロック５７２３に示すように、仮バージョンに対してより大きなディスク領域を割り当てるようにというユーザへの提言も記載される。
【０３１４】
判断のブロック５７２１で、対象となる最も古い仮バージョンが使用可能であると判断した場合は、ブロック５７２５で、仮バージョン診断ルーチン５７００はあらかじめ指定した期間にわたって欠落したコピーの数と、持続期間全体にわたって欠落したコピーの総数を計算する。欠落した仮バージョンを計算するためのあらかじめ指定した期間は、１週間、２週間、１月など、持続期間全体より短い任意の期間をあらかじめ指定できる。持続期間全体は、ユーザが保護インテントをセットアップする上で保護対象オブジェクトを回復できる最長の期間を設定する場合にユーザが指定する。欠落したコピーを計算することで、度数インテントが満たされるかどうかを確認する。
【０３１５】
判断のブロック５７２７で、ブロック５７２５で計算したあらかじめ指定した期間にわたる仮バージョンの欠落が０％を上回るかどうかを判断する。判断のブロック５７２７で仮バージョンの欠落がないと判断した場合は、判断のブロック５７２９で、持続期間全体にわたる仮バージョンの欠落が５０％を下回るかどうかを判断する。判断のブロック５７２９で、持続期間全体にわたる仮バージョンの欠落が５０％を下回ると判断した場合は、ブロック５７３１で、本データ保護システムの仮バージョン部分に問題がないことをユーザに通知する情報レポートが生成される。前述のように、データ保護システムでは問題を即座に報告しないことで、問題が発生した場合にユーザの介入を必要とせずに解決する機会を得る。たとえば、期間全体にわたって欠落するコピーの数が１０％であるが今後のコピージョブが成功すればこのパーセンテージは時間の経過に伴って減少し、ユーザにアラートを送信する必要はない。
【０３１６】
しかし、ブロック５７２９で持続期間全体にわたって仮バージョンの欠落が５０％を上回ると判断した場合は、ブロック５７３３で現在欠落している仮バージョンのパーセンテージを示し、欠落する仮バージョンのパーセンテージを監視する以外に対処は必要ないことをユーザに提言する警告レポートが生成される。
【０３１７】
判断のブロック５７２７で、あらかじめ指定した期間内にいくつかの仮バージョンの欠落があると判断した場合は、判断のブロック５７３５であらかじめ指定したこの期間内の仮バージョンの欠落数が０〜２０％であるかどうかを判断する。判断のブロック５７３５であらかじめ指定したこの期間内の仮バージョンの欠落数が０〜２０％であると判断した場合は、判断のブロック５７３７で持続期間全体にわたる仮バージョンの欠落が５０％を下回るかどうかを判断する。判断のブロック５７３７で持続期間全体にわたるが５０％を下回ると判断した場合は、ブロック５７３９で仮バージョン欠落のパーセンテージを示し、欠落する仮バージョンのパーセンテージを監視する以外に対処は必要ないことをユーザに提言する警告レポートが生成される。
【０３１８】
ただし、判断のブロック５７３７で持続期間全体にわたる仮バージョンの欠落が５０％を上回ると判断した場合は、ブロック５７４１で欠落する仮バージョンのパーセンテージをユーザに通知するエラーレポートが生成される。さらに、ブロック５７４１で生成されたエラーレポートは、保護が期待したとおりに実行されないことをユーザに通知し、指定した保護パラメータと運用場所と記憶場所の設定を確認するようにユーザに提言する。
【０３１９】
判断のブロック５７３５に戻り、あらかじめ指定した期間内の仮バージョンの欠落数が０〜２０％ではないと判断した場合は、判断のブロック５７４３で持続期間全体にわたる仮バージョンの欠落が５０％を下回るかどうかを判断する。判断のブロック５７４３で持続期間全体にわたって欠落する仮バージョンの総数が５０％を下回ると判断した場合は、ブロック５７４５で保護が期待したとおりに実行されないことをユーザに通知し、持続期間全体にわたって欠落する仮バージョンの総パーセンテージをユーザに示し、さらにコピー自体の整合性と保護スケジュールを確認するようにユーザに提言するエラーレポートが生成される。最後に、判断のブロック５７４３で持続期間全体にわたって欠落する仮バージョンの数が５０％を上回ると判断した場合は、ブロック５７４７に示すように、保護が一貫して不十分であったことをユーザに通知し、運用場所と記憶場所の両方について保護とディスクの設定を確認するようにユーザに提言するエラーレポートが生成される。
【０３２０】
上の仮バージョン診断ルーチン５７００に関する説明では特定のパーセンテージを使用したが、本発明の実施形態では事前に指定した任意のパーセンテージを使用でき、本明細書に示すパーセンテージは説明のみを目的とするものであることは当業者には言うまでもない。
【０３２１】
図５９は、本発明の１つの実施形態による、本データ保護システムにおける情報の回復に伴う問題の可能性を診断する回復診断ルーチンを示す流れ図である。回復診断ルーチン５９００は、ブロック５９０１で開始され、判断のブロック５９０３で回復ジョブが現在実行中かどうかを判断する。判断のブロック５９０３で、回復診断ルーチン５９００が実行中であると判断した場合は、判断のブロック５９０５で実行中の回復ジョブに関連するタスクによって警告が生成されたかどうかを判断する。判断のブロック５９０５で、実行中の回復ジョブに関連するタスクによって警告が生成されていないと判断した場合は、データ保護システムに回復関連の問題がないことをユーザに通知する情報レポートを生成する。判断のブロック５９０５で、現在実行中のジョブに関連するタスクによって警告が生成されていると判断した場合は、ブロック５９０９で、現在実行中の回復ジョブが１つまたは複数の警告を生成したことをユーザに通知し、こうした警告をユーザに通知し、解決が必要な場合はこうした警告を解決するための推奨される方法を提示する警告レポートを生成する。たとえば、現在実行中のジョブではファイルが現在開いているのでファイルを復元できないことを表す警告を生成してもよい。
【０３２２】
判断のブロック５９０３で回復ジョブが現在実行されていないと判断した場合は、判断のブロック５９１１で、最近の回復ジョブ（たとえば、過去７２時間以内に実行された回復ジョブ）が失敗したかどうかを判断する。判断のブロック５９１１で最近の回復ジョブが失敗していない、すなわちすべてが正常に終了しているか回復ジョブが実行されていないと判断した場合は、ブロック５９１３で本データ保護システムの回復部分に問題がないことをユーザに通知するレポートが生成される。
【０３２３】
判断のブロック５９１１で、最近実行された回復ジョブが失敗したと判断した場合は、ブロック５９１５でそのジョブが失敗した原因をそのジョブに関連付けられたタスク証跡から確認する。前述のように、特定のジョブに関連付けられたタスク証跡には、タスクが失敗した場合にタスクが失敗した原因を含めてタスク自体に関する情報が記録される。
【０３２４】
判断のブロック５９１７で、ブロック５９１５で確認された失敗の原因を利用して、この回復ジョブの失敗はデータ保護システムがデータを回復する運用場所に接続できなかったことによるかどうかを判断する。判断のブロック５９１７で回復ジョブが失敗した原因はデータ保護システムがデータを回復する運用場所に接続できなかったことであると判断した場合は、ブロック５９１９で最近の回復ジョブが失敗した原因をユーザに通知し、運用場所のネットワーク接続を確認し、運用場所のエージェントが適切に動作していることを確認するようにユーザに提言する。コピー診断ルーチン（図５４〜５６）について上で説明したように、運用場所などの場所に接続できないのは、ネットワークの切断や電源の問題、あるいは運用場所がメンテナンスなどの作業のためにオフラインになっていたことなど、外部の複数のイベントによる可能性がある。
【０３２５】
判断のブロック５９１７で回復ジョブが失敗した原因はデータ保護システムがデータを回復する運用場所に接続できなかったことではないと判断した場合は、判断のブロック５９２１で最近の回復ジョブが失敗した原因は運用場所のターゲットを利用できなかったことかどうかを判断する。運用場所のターゲットは、運用場所内で回復するデータが記録されている物理的な部分と考えてよい。判断のブロック５９２１でターゲットが利用できないと判断した場合は、ブロック５９２３に示すように、回復ジョブが失敗した原因をユーザに通知し、運用サーバの問題のありそうな物理的な場所を点検するようにユーザに提言する。
【０３２６】
判断のブロック５９２１で回復ジョブが失敗した原因は運用場所のターゲットが利用できなかったことではないと判断した場合は、判断のブロック５９２５で回復ジョブが失敗した原因は回復ジョブのタスクが記憶場所からデータを読み出せなかったことかどうかを判断する。回復ジョブのタスクが記憶場所からデータを読み出せなかったと判断した場合は、ブロック５９２７で回復ジョブが失敗した原因をユーザに通知し、記憶場所のディスクおよび／または媒体を点検するようにユーザに提言するエラーレポートが生成される。
【０３２７】
判断のブロック５９２５で回復ジョブが失敗した原因はタスクが記憶場所からデータを読み出せなかったことではないと判断した場合は、判断のブロック５９２９で回復データを回復する運用場所のディスクに現在空き領域がないかどうかを判断する。判断のブロック５９２９でディスクに空き領域がないと判断した場合は、ブロック５９３１で回復する場所のディスクに回復するための十分な領域がないことをユーザに通知し、別の場所に回復するか運用場所のディスク領域を増やすようにユーザに提言するエラーレポートが生成される。
【０３２８】
最終的に、判断のブロック５９２９で回復ジョブが失敗した原因は運用場所のディスクに空き領域がないことではないと判断した場合は、前回の回復ジョブで不明なエラーが発生したことをユーザに通知し、回復ジョブに戻るようにユーザに提言するレポートが生成される。
【０３２９】
本発明の好ましい実施形態について図示し、説明してきたが、本発明の精神と範囲を逸脱しない限りさまざまな変更が可能なことは、当業者には言うまでもない。
【０３３０】
排他的な特性または権限を主張する本発明の実施形態は、特許請求の範囲に定義される。
【符号の説明】
【０３３１】
６０１  ドメイン
６０７  サーバ
６０９  共有
６１１  ボリューム
６１３  マウントポイント
６１５  フォルダ
４２０１  データプロテクタ
４２０３  運用場所
４２０５  記憶場所
４２０７  クローンエージェント
４２０９Ａ  データムーバー
４２０９Ｂ  データムーバー
４２１１  複製エージェント
【図１Ａ】
2011248913.tif 000003
【図１Ｂ】
2011248913.tif 000004
【図１Ｃ】
2011248913.tif 000005
【図２】
2011248913.tif 000006
【図３】
2011248913.tif 000007
【図４】
2011248913.tif 000008
【図５】
2011248913.tif 000009
【図６】
2011248913.tif 000010
【図７】
2011248913.tif 000011
【図８】
2011248913.tif 000012
【図９Ａ】
2011248913.tif 000013
【図９Ｂ】
2011248913.tif 000014
【図１０】
2011248913.tif 000015
【図１１】
2011248913.tif 000016
【図１２】
2011248913.tif 000017
【図１３】
2011248913.tif 000018
【図１４】
2011248913.tif 000019
【図１５】
2011248913.tif 000020
【図１６】
2011248913.tif 000021
【図１７】
2011248913.tif 000022
【図１８】
2011248913.tif 000023
【図１９】
2011248913.tif 000024
【図２０】
2011248913.tif 000025
【図２１】
2011248913.tif 000026
【図２２】
2011248913.tif 000027
【図２３Ａ】
2011248913.tif 000028
【図２３Ｂ】
2011248913.tif 000029
【図２４】
2011248913.tif 000030
【図２５】
2011248913.tif 000031
【図２６】
2011248913.tif 000032
【図２７】
2011248913.tif 000033
【図２８】
2011248913.tif 000034
【図２９】
2011248913.tif 000035
【図３０】
2011248913.tif 000036
【図３１】
2011248913.tif 000037
【図３２】
2011248913.tif 000038
【図３３】
2011248913.tif 000039
【図３４】
2011248913.tif 000040
【図３５】
2011248913.tif 000041
【図３６】
2011248913.tif 000042
【図３７】
2011248913.tif 000043
【図３８】
2011248913.tif 000044
【図３９】
2011248913.tif 000045
【図４０】
2011248913.tif 000046
【図４１】
2011248913.tif 000047
【図４２】
2011248913.tif 000048
【図４３】
2011248913.tif 000049
【図４４】
2011248913.tif 000050
【図４５】
2011248913.tif 000051
【図４６】
2011248913.tif 000052
【図４７】
2011248913.tif 000053
【図４８Ａ】
2011248913.tif 000054
【図４８Ｂ】
2011248913.tif 000055
【図４８Ｃ】
2011248913.tif 000056
【図４９Ａ】
2011248913.tif 000057
【図４９Ｂ】
2011248913.tif 000058
【図４９Ｃ】
2011248913.tif 000059
【図５０】
2011248913.tif 000060
【図５１】
2011248913.tif 000061
【図５２】
2011248913.tif 000062
【図５３】
2011248913.tif 000063
【図５４】
2011248913.tif 000064
【図５５】
2011248913.tif 000065
【図５６】
2011248913.tif 000066
【図５７】
2011248913.tif 000067
【図５８】
2011248913.tif 000068
【図５９】
2011248913.tif 000069