図1Aは、本発明の実施形態によるデータの保護および回復を管理するためのデータ保護システムのブロック図である。本明細書で説明するデータ保護システム100の諸実施形態は、システム管理者などのユーザに、データの保護および回復を容易に管理する能力を提供する。通常、作成ロケーション103において積極的に作成され、変更されているデータに関して、データ管理およびデータ保護が所望される。そのデータは、保護され、データのレプリカまたはコピーとして格納ロケーション105に格納される。格納ロケーションは、作成ロケーションから遠隔のロケーションであること、および/または作成ロケーションと同一のロケーションであることが可能である。さらに、格納ロケーションは、異なる形態のストレージのための複数のロケーションを含むことが可能である。例えば、データのレプリカが、1つのロケーションで保持され、そのデータのアーカイブが、第2のロケーションで保持されることが可能である。したがって、格納ロケーションは、一般に、データが格納され、保護されることが可能なロケーションの任意の組合せ、および/または任意のタイプのロケーションを表す。
本明細書で説明するとおり、データ保護システム100は、作成ロケーション103および格納ロケーション105と通信して、作成ロケーション103と格納ロケーション105の間におけるデータの保護および流れを監視するデータプロテクタ101を含む。図1Aに示したデータプロテクタ101は、サーバなどの単一のコンピューティングデバイス上に存在することも、複数のコンピューティングデバイスにわたって分散されることも可能である。データプロテクタ101は、作成ロケーション103および/または格納ロケーション105などの、データ保護システム100内部の異なるコンピューティングデバイス上に配置されるエージェントを展開し、そのようなエージェントと通信して、複数のデバイス間におけるデータ保護の分散された制御および管理を可能にする。データ保護システム100によって提供されるデータ保護のタイプの例には、一時バージョンのレプリケーション、テープまたはディスクなどの取り外し可能な媒体への従来のアーカイブ、レプリケーションとアーカイブの両方の組合せが含まれるが、以上には限定されない。他の任意の形態および/または組合せの保護を本発明の諸実施形態で利用することができ、レプリケーション、一時バージョン、およびアーカイブは、単に例に過ぎないことが理解されよう。
図1Bは、データ保護システム100の代替の実施形態を示す。詳細には、データプロテクタ110は、作成ロケーション111に部分的に、または全体として存在することが可能である。そのような実施形態では、データプロテクタ110は、プロテクタ110自体と作成ロケーション111の間、およびプロテクタ110自体と格納ロケーション113の間の通信を提供する。
図1Cは、本発明の実施形態による、データを保護するため、およびデータを回復するために使用されるデータ保護システム100のさらに別の実施形態を示す。図1Cに示すとおり、データプロテクタ120は、格納ロケーション123に部分的に、または全体として存在することが可能である。そのような実施形態では、データプロテクタ120は、プロテクタ120自体と格納ロケーション123の間、およびプロテクタ120と作成ロケーション121の間の通信を提供する。
図2は、本発明の実施形態による、データを保護するため、およびデータを回復するためのデータ保護システム200の別のブロック図である。データ保護システム200は、作成ロケーション1 203、作成ロケーション2 205、ないし作成ロケーションN 207などの、複数の作成ロケーションが、データプロテクタ201と対話して、作成ロケーションを起点とするデータのレプリカおよび/または一時バージョンを格納することができることを示す。データプロテクタ201は、作成ロケーション203、205、207と通信し、格納ロケーションA209、格納ロケーションB211、および格納ロケーションX213などの、それぞれの格納ロケーションにおいて、それらの作成ロケーション上に存在するデータの保護を提供する。本明細書で説明する諸実施形態は、任意の数および組合せのデータ作成ロケーションおよびデータ格納ロケーションで利用することができる。
理解され、図1A〜図2に示すとおり、データを保護するため、およびデータを回復するために、本発明の諸実施形態に従ってデータ保護システムの任意のタイプの構成を利用することができる。
全体的に、本明細書で説明するデータ保護システムの諸実施形態は、データ保護システムのユーザが、高レベルで、作成ロケーションにおけるどのようなデータが重要であるか、ならびに、どのようにユーザがそのデータを保護することを所望するかを指定する能力を提供する。詳細には、本明細書で説明するシステムは、特定の作成ロケーションにおけるどのようなデータをユーザが保護することを所望するか、ならびにどのようにユーザがそのデータを保護することを所望するかを論理的に識別する能力をユーザに提供する。データ保護システムは、その論理的識別を、データを保護するようにスケジュールされ、実行される一連の「ジョブ」に変換する。以下に説明するとおり、ジョブは、ユーザによって識別されたデータを保護するために必要である詳細な情報を含む。例えば、ジョブは、レプリケーション、検証、一時バージョン管理、アーカイブ、および媒体管理などを実行することができる。
論理レベルでデータを選択する能力をユーザに提供するため、データ保護システムは、「名前空間」および「名前空間要素」の形態で、作成ロケーションに格納されたデータの論理的表現をユーザに提供する。本明細書で説明する名前空間は、アプリケーションの論理的表現である。例えば、データ保護システム内部で名前空間として表現されることが可能なアプリケーションには、分散ファイルシステム(「DFS」)、ローカルファイルシステム、SharePointなどのWebアプリケーション名前空間、およびExchange名前空間が含まれるが、以上には限定されない。理解されるとおり、典型的なアプリケーションのリストは、単に例示目的であり、まったく限定を意図するものではない。任意のタイプのアプリケーションが、データ保護システムで使用され、名前空間として識別されることが可能である。
本明細書で説明する名前空間要素は、データなどの物理的オブジェクトの論理的な表現であり、名前空間を構成する1次エンティティである。例えば、名前空間要素は、DFSリンク、サーバ、共有、ボリューム、フォルダ、またはExchangeストレージグループであることが可能であるが、以上には限定されない。一般に説明すると、Exchangeストレージグループは、共通ログを共有するデータベースの集合である。当業者には理解されるとおり、名前空間要素を使用して、任意のタイプの物理的オブジェクト、または物理的オブジェクトの集合を表現することができる。
データを保護するため、ユーザは、論理的名前空間内を探索し、またはナビゲートして、名前空間要素の1つまたは複数を選択する。選択された名前空間要素は、既存の「保護されたグループ」に関連付けられるか、または新たな保護されたグループを作成するのに使用される。名前空間要素が保護されたグループに関連付けられると、その名前空間要素に関連する物理的オブジェクト(データ)も、保護されたグループの一部となる。本明細書で説明する保護されたグループは、名前空間要素の論理的グループ化であり、同一の保護規則が適用される、関連した保護されたオブジェクトである。
各名前空間要素は、保護されたグループに追加されることが可能な、本明細書で「保護可能なオブジェクト」と呼ぶ、1つまたは複数の物理的オブジェクト(データ)を探し出すのに使用される。探し出されると、保護可能なオブジェクトは、保護のために選択されることが可能である。保護可能なオブジェクトが、保護のために選択されると、選択された保護可能なオブジェクトは、保護されたグループの一部である「保護されたオブジェクト」になる。本明細書で説明する保護可能なオブジェクトは、保護されることが可能な物理的情報/データである。例えば、保護可能なオブジェクトは、フォルダ、ファイル、電子メールボックス、データベース、Webサイトなどであることが可能であるが、以上には限定されない。本明細書で使用する保護されたオブジェクトは、識別され、保護のために選択されている保護可能なオブジェクトである。
保護されたグループを作成することに加え、ユーザは、高レベルで、どのように、いつ(どれだけ頻繁に)、どれだけの期間、保護されたグループが保護されることを所望するかを指定することができる。さらに、ユーザは、どれだけの期間、保護されたグループのコピーおよびアーカイブが保持されることを所望するかを指定することができる。そのような高レベルの指定は、レプリケーション、アーカイブ、媒体管理、および以上の任意の組合せなどの、すべての保護活動にわたることが可能である。ユーザによって与えられた指定に基づき、保護されたグループのオブジェクトを保護するための詳細なプランが作成される。
データを回復するため、ユーザは、論理的名前空間内を探索し、またはナビゲートして、ユーザが回復することを所望するデータを探し出す能力を与えられる。次に、回復されるべきデータまでの論理的パスを使用して、以下に説明するとおり、1つまたは複数の回復可能なオブジェクトが探し出される。それぞれの回復可能なオブジェクトは、保護されたオブジェクトのバージョン、またはその一部分を表す。
図3は、本発明の実施形態による、作成ロケーションに位置する保護可能なオブジェクトの最初の選択および保護を示すデータ保護システム300の流れ図である。図3に示すとおり、データ保護システム300は、作成ロケーション305にエージェントを展開して、作成ロケーション305に位置する保護可能なオブジェクトの検出を可能にし、それらの保護可能なオブジェクトに対応する名前空間および名前空間要素を識別する。それらの名前空間および名前空間要素は、ユーザインターフェース303上でユーザ対話のために公開され、表示される。
例えば、図4は、本発明の実施形態による、ユーザ対話およびユーザ選択のためにユーザインターフェース303上で公開され、表示される複数の名前空間および名前空間要素のブロック図を示す。当業者には理解されるとおり、図4の例示は、単に典型的であり、他の任意の構成が、本発明の諸実施形態で表示されることが可能である。例えば、表示は、ボリュームを含むが、共有を含まないことが可能である。
表示400は、DFS ROOTS名前空間401およびSERVERS名前空間403を示す。DFS ROOTS名前空間401は、ともにDFS ROOTである2つの名前空間要素405、407を含む。DFS ROOTS名前空間401の下で識別される名前空間要素は、\\ABCD\PUBLIC405および\\EFG\PRIVATE407である。さらに、SERVERS名前空間403は、いくつかの名前空間要素409、411、413、415、421、423、425を含む。これらの名前空間要素が、いくつかの追加の名前空間要素を含むことも可能である。例えば、SERVER1 409は、SHARES名前空間要素タイプ411などの、いくつかの名前空間要素タイプを含む。同様に、SHARES名前空間要素タイプ411は、SHARE1名前空間要素413およびSHARE2名前空間要素415を含む。さらに、SHARES名前空間要素411、SHARES名前空間要素413、およびSHARES名前空間要素415はすべて、保護可能なオブジェクトの論理的表現である。
ユーザは、展開(expand)ボックス417のような、展開ボックスまたは縮小(collapse)ボックスを選択することにより、名前空間および名前空間要素の表示400と対話することができる。さらに、ユーザは、選択ボックス419のような選択ボックスを選択することにより、1つまたは複数の名前空間要素を保護のために選択することができる。代替の実施形態では、保護のために名前空間要素を選択することができることに加えて、ユーザは、保護のために名前空間を選択することもできる。
図3を再び参照すると、ユーザインターフェース303上で名前空間および名前空間要素の表示400が表わされると、ユーザは、名前空間要素のいずれがデータ保護システム300によって保護されることを所望するかを選択する。さらに、ユーザは、選択された名前空間要素に関する「保護インテント」を提供することができる。本明細書で説明する保護インテントは、選択されたデータがどのように保護されるべきかについての高レベルの記述である。例えば、ユーザは、一晩おきにオブジェクトのコピーをバックアップし、1年の期間にわたって週単位のコピーを保持することによって選択された名前空間要素が保護されるべきことを示すことができる。選択された名前空間要素、および関連する保護インテントは、ユーザインターフェース303からデータプロテクタ301に転送される。
データプロテクタ301は、選択された名前空間要素、および保護インテントを使用して、選択された名前空間要素で識別された保護可能なオブジェクトのための保護されたグループを作成する。選択されると、保護可能なオブジェクトは、保護されたオブジェクトになる。保護されたグループは、選択された名前空間要素、関連する保護されたオブジェクトのID、ならびに保護されたオブジェクトがどのように保護されるべきかについての詳細なプランを含む。さらに、データプロテクタ301は、以下に説明するとおり、少なくとも1つの自動検出グループを作成する。ある実施形態では、データプロテクタ301は、以下に説明するとおり、保存探索(saved searches)ルーチンも作成することができる。
保護されたグループの作成は、選択された論理的オブジェクト(名前空間要素)を、作成ロケーション上に位置する適切な保護可能なオブジェクトにマップすることによって達せられる。次に、識別された保護可能なオブジェクトが、保護されたグループのメンバとして追加され、保護されたオブジェクトになる。保護可能なオブジェクトは、既存の保護されたグループに追加されることも、新たな保護されたグループを形成することも可能である。さらに、保護インテントを使用して、保護されたグループを保護するためのグループプランが作成される。グループプランには、以下にそれぞれ詳細に説明する、リソースプラン、準備プラン、および保護プランが含まれるが、以上には限定されない。グループプラン、およびグループ内のプランは、1つまたは複数のジョブ、およびスケジュール設定パラメータから成る。リソースプランの場合、割り当てられるべきリソースの量が明らかにされる。割り当てられるリソースには、レプリカのためのディスクスペース、ディスクまたはテープなどの、アーカイブのための取り外し可能な媒体、レプリカと取り外し可能な媒体の両方の組合せなどが含まれることが可能であるが、以上には限定されない。スケジュール設定パラメータは、ジョブがいつ実行されるべきであるかを明らかにする。
保護されたグループ、データを保護するためのプラン、自動検出グループ、および保存探索の生成の後、データプロテクタ301は、保護のために作成ロケーション305および格納ロケーション307を準備する。詳細には、データプロテクタは、通信、ならびに作成ロケーション305から格納ロケーション307へのデータの転送を可能にするエージェント群を展開する。作成ロケーションおよび格納ロケーションが保護のために準備されると、保護が開始され、保護されたオブジェクトに関するデータのコピーが、作成ロケーション305から格納ロケーション307に転送される。転送されたデータのコピーは、以下に説明するとおり、レプリカ、アーカイブコピー、または他の任意のタイプのデータ保護として保持されることが可能である。
以下により詳細に説明するとおり、保護のために格納ロケーション307を準備する際、データプロテクタ301は、ユーザによって要求された物理的オブジェクトのコピーを格納するために必要なリソースを(リソースプランを介して)割り当てる。保護を開始するため、ジョブが開始されて、作成ロケーション305に格納されている、選択された保護可能なオブジェクトの初期コピーが作成され、そのコピーが伝送され、格納ロケーション307にそのコピーが格納される。コピーがレプリカである場合、コピーは、次に、検証ジョブの実行を介して、コピーの正確さを確実にするために検証される。コピーが、取り外し可能な媒体にアーカイブされる場合、初期コピーは、選択された保護可能なオブジェクトの完全バックアップである。初期コピーが生成された後、データプロテクタ301は、そのコピーを定期的に更新するジョブを作成するか、または作成ロケーション305に位置する情報に対して行われた変更を使用して、(アーカイブの場合と同様に)追加のコピーを作成する。
選択された名前空間要素に関連する作成ロケーション305に格納された保護可能なオブジェクトを識別するため、データプロテクタ301は、論理的オブジェクト(名前空間要素)を物理的オブジェクト(保護可能なオブジェクト)にマップする。図4を再び参照すると、それぞれが複数の名前空間要素を有する2つの名前空間、DFS ROOTS401およびSERVERS名前空間403が表示されている。ユーザは、1つまたは複数の名前空間要素を選択することができる。一実施形態では、名前空間要素が選択されると、包含されるすべての名前空間要素も既定で選択される。図4を例として使用すると、ユーザが、SERVER1 409上でストレージグループ1 421を選択した場合、DATABASE A 423およびDATABASE B 425も自動的に選択される。ユーザは、1つまたは複数の名前空間要素を選択解除することもできる。
各名前空間要素は、作成ロケーション305に位置する1つまたは複数の保護可能なオブジェクトにマップされる。例えば、名前空間要素、\\ABCD\PUBLIC405は、複数の保護可能なオブジェクトにマップされる。図5を参照すると、名前空間要素、\\ABCD\PUBLIC505が、作成ロケーション305に位置する3つの保護可能なオブジェクトにマップされている。詳細には、名前空間要素、\\ABCD\PUBLIC505は、D:\FOLDER ON SERVER1 507、D:\FOLDER ON SERVER2 509、およびF:\ON SERVER3 511にマップされている。保護可能なオブジェクト507、509、511のそれぞれは、作成ロケーション305内部に位置している。
データプロテクタが、名前空間を探索し、ナビゲートするため、ならびに名前空間要素505などの論理的オブジェクトを物理的オブジェクトにマップするために、名前空間と名前空間要素を関連付けるスキーマが作成される。スキーマは、アプリケーション名前空間の構成の抽象表現であり、可能な名前空間には、分散ファイルシステムおよびExchangeが含まれるが、以上には限定されない。
図6は、本発明の実施形態による、名前空間のタイプとボリュームスキーマを表す名前空間要素のタイプを関連付けるための1つのそのようなスキーマのブロック図を示す。スキーマは、有向グラフとして表され、グラフ内のノードは、アプリケーション名前空間内の名前空間要素のタイプを表し、リンクは、名前空間要素間の包含関係および接合(junction)関係を表す。名前空間要素のタイプ間における包含関係および接合関係は、それらのタイプのインスタンスを関係付けることができる可能な形のすべてを表す。図6を参照すると、包含関係は、一重矢印(single arrow)の線で示され、接合関係は、2重矢印の線で示されている。例えば、タイプ「DFSルート」603の名前空間要素は、タイプ「共有」609の名前空間要素に対する接合617を表すことが可能であり、SHARE609は、VOLUME611に対する接合619、またはFOLDER615に対する接合を表すことが可能である。
包含関係は、親が、子から論理的に構成される名前空間要素間の単純明快な親/子関係である。例えば、DOMAIN601は、SERVER607を含み623、DFS ROOT603を含む625。SERVER607は、SHARE609を含み627、VOLUME611を含む629。VOLUME611は、FOLDER615を含み631、MOUNT POINT613を含む633。FOLDER615は、他のフォルダを含むこと、およびファイルを含むことも可能である(図示せず)。
接合関係は、ソース名前空間要素が、目標名前空間要素の論理上のシノニム(synonym)である、つまり、ソースパスと目標パスが、2つの異なる名前空間内で同一の基礎にあるオブジェクトを表す、ソース/目標関係である。接合関係は、1対多関係であることが可能である。つまり、単一のソース名前空間要素が、複数の目標名前空間要素を有することが可能であり、その場合、目標は、ソースによって表される基礎にあるデータが取り出される代替のロケーションを表す。例えば、DFS ROOT603は、目標として複数のSHARE609にマップされる617ことが可能である。また、接合関係は、多対1であることも可能であり、つまり接合の目標が、他の名前空間内で複数の論理名を有することが可能である。例えば、FOLDER615は、このFOLDER615にマップされる621多数の共有609を有することが可能である。
さらに、複数の論理的名前空間要素が、同一の保護可能なオブジェクトにマップされることも可能である。例えば、SHARE1名前空間要素513が、E:\PRIVATE ON SERVER1 515にマップされる。同様に、SHARE2名前空間要素517が、E:\PRIVATE ON SERVER1 515にマップされることも可能である。
図7は、本発明の実施形態による、論理的名前空間要素を物理的な保護可能なオブジェクトにマップするためのスキーマのブロック図を示す。詳細には、スキーマ700は、ドメインABCD701が、DFS ROOT−公開703および3つのサーバ705に対する包含関係を有することを示す。同様に、DFS ROOT−公開703は、リンク1 707A、リンク2 707B、およびリンク3 707Cを含む3つのDFSリンク707に対する包含関係を有する。リンク1 707A、リンク2 707B、およびリンク3 707Cはそれぞれ、共有711に対する接合関係を含む。詳細には、リンク1 707Aは、\\SERVER1\SHAREに対する接合を含み、リンク2 707Bは、\\SERVER2\SHAREに対する接合を含み、リンク3 707Cは、\\SERVER3\SHAREに対する接合を含む。\\SERVER1\SHARE、\\SERVER2\SHARE、\\SERVER2\SHAREはそれぞれ、DFS名前空間とは異なる名前空間内の論理的オブジェクトである。これが、DFSリンク707と共有711の間の接合719の走査(traversal)によって示される。詳細には、\\SERVER1\SHARE、\\SERVER2\SHARE、および\\SERVER3\SHAREは、UNCサーバ名前空間内にある。共有711を参照すると、\\ABCD\PUBLICのマッピングを完成させるために、共有のそれぞれが何にマップされるかについての特定が行われる。前述したとおり、共有は、ボリューム713および/またはフォルダ717にマップされることが可能である。このため、この例を続けると、論理的オブジェクト、\\SERVER1\SHAREは、D:\FOLDER ON SERVER1にマップされ、\\SERVER2\SHAREは、D:\FOLDER ON SERVER2にマップされ、\\SERVER3\SHAREは、F:\ON SERVER3にマップされるものと判定される。D:\FOLDER ON SERVER1、D:\FOLDER ON SERVER2、およびF:\ON SERER3は、\\ABCD\PUBLIC505の論理的オブジェクトによって表される3つの物理的な保護可能なオブジェクトである。
図7の例で示されるとおり、スキーマ600(図6)を利用すると、論理的な名前空間要素から、その名前空間要素によって表される作成ロケーション上に格納された物理的オブジェクトに対するマッピング関係を特定することができる。スキーマ600内の各ポイントから、そのポイントからマッピングの次の部分にリンクするのに、どのような関係を探索することができるかが分かっている。
データプロテクタの名前空間走査能力は、ブラウズ、探索、ならびに論理的名前空間および論理的名前空間要素から、作成ロケーションに格納された物理的オブジェクトへのマッピングのために、任意のタイプのアプリケーションに適用することができる。例えば、ユーザインターフェースを介して、ユーザは、ワイルドカードを含む探索パラメータを指定することができ、データ保護システムは、名前空間および名前空間要素の既存のリストにクエリを行い、適切な結果を提供することができる。ユーザインターフェースは、探索要求をデータプロテクタに送り、データプロテクタは、結果をユーザインターフェースに送り返す。データプロテクタは、「探索」、「ナビゲート」、および名前空間間の「マッピング」を行う一般的な動作をサポートし、各アプリケーション名前空間の固有の構造が、スキーマの中にキャプチャされることが可能である。次に、新たなアプリケーションをサポートするようにデータプロテクタを拡張するのに、包含関係および接合関係を走査する基本的な動作をその名前空間に対して実行するモジュール、ならびに、どのようにそれらの動作をより広い「探索」動作、「ナビゲート」動作、および「マップ」動作に構成するかを記述するスキーマを提供する必要がある。
また、本発明の諸実施形態は、非データ保護アプリケーションのためにも使用することができる。例えば、作成ロケーションにわたって、または作成ロケーション内のサーバのセットにわたって、ストレージがどのように使用されているかを示すストレージレポートが作成されることが可能である。そのような実施形態では、ユーザは、DFSルートの下の100MBより大きいすべてのファイルを示すようにレポートを構成することができる。
作成ロケーションは、保護されることが可能ないくつかの異なるタイプのオブジェクトを含む。例えば、図8は、本発明の実施形態による、データ保護システムによって保護されることが可能である保護可能なオブジェクトを含む作成ロケーション800のブロック図を示す。作成ロケーション800内に含まれているのが、3つのサーバ801、803、および805である。各サーバは、独自のコンピューティングデバイス、または単一のサーバとして見える一組のコンピューティングデバイスである。各サーバは、中央のロケーションに存在することも、地理的に分散されていることも可能である。
SERVER−1 801などのサーバ内に含まれているのが、1つまたは複数の「データソース」である。本明細書で使用するデータソースは、データプロテクタによって操作されるアプリケーションデータを高レベルに抽象化したものである。データソースは、データソースの物理的データを1つまたは複数の保護可能なオブジェクトとして公開し、データソース自体、保護可能なオブジェクトであることが可能である。データソースは、単一のサーバ内に含まれ、サーバは、1つまたは複数のデータソースを含むことが可能である。例えば、SERVER−1 801は、2つのデータソース、データソース1(DS1)807およびデータソース2(DS2)821を含む。
同様に、データソース1 807は、6つの保護可能なオブジェクト809、811、813、815、817、および819を含む。同様に、データソース2 821は、2つの保護可能なオブジェクト823および825を含む。データソースが保護可能なオブジェクトを含むことに加えて、データソース自体、保護可能なオブジェクトであることが可能である。さらに、保護可能なオブジェクトが、他の保護可能なオブジェクトを含むことも可能である。例えば、データソース3 835は、8つの保護可能なオブジェクト827、829、831、833、837、839、841、843を含む。保護可能なオブジェクト837は、保護可能なオブジェクト839を含み、オブジェクト839は、保護可能なオブジェクト841および843を含む。
SERVER−3 805は、4つのデータソース、データソース4(DS4)845、データソース5(DS5)851、データソース6(DS6)857、およびデータソース7(DS7)859を含む。4つのデータソース845、851、857、および859のそれぞれが、保護可能なオブジェクトであることが可能である。データソース4 845内に含まれるのが、2つの保護可能なオブジェクト847および849である。データソース5 851は、2つの保護可能なオブジェクト853および855を含み、データソース6 857は、保護可能なオブジェクトをまったく含まず、データソース7 859は、2つの保護可能なオブジェクト861および863を含む。
各保護可能なオブジェクトは、データ保護システムが、異なるレベルの細分性で各データソース内の保護可能なオブジェクトを公開することを可能にする特定の保護可能なオブジェクトの種類のものである。例えば、データ保護システムは、Exchangeストレージグループデータソース全体を保護可能なオブジェクトとして、ストレージグループという保護されたオブジェクトの種類とともに公開することが可能である。また、データ保護システムは、同一のストレージグループデータソースを、データベースという保護可能なオブジェクトの種類を有する、複数の保護可能なオブジェクトに分割することもできる。同一の保護可能なオブジェクトに、2つ以上の異なる保護可能なオブジェクトの種類が存在することさえ可能である。例えば、データ保護システムは、ボリュームを、ブロックレベルで、ある保護可能なオブジェクトの種類の保護可能なオブジェクトとして公開し、ファイルレベルで、別の保護可能なオブジェクトの種類の保護可能なオブジェクトとして公開することができる。
データソースの例には、オペレーティングシステム、システムボリューム、Exchangeストレージグループ、SQLデータベースなどが含まれるが、以上には限定されない。サーバに関する保護可能なオブジェクトの種類の例には、レジストリやアクティブディレクトリなどの、システムに保護されたファイル、およびオペレーティングシステムデータストアが含まれるが、以上には限定されない。ファイルシステムボリュームの保護可能なオブジェクトの種類には、ディレクトリおよびファイルが含まれるが、以上には限定されない。ファイルシステムボリュームエンティティは、ファイル共有またはDFSによってリンクされた目標名前空間要素によって探し出されることが可能である。Exchangeストレージグループに関する保護可能なオブジェクトの種類には、データベースおよびメールボックスが含まれるが、以上には限定されない。
前述したとおり、それぞれの選択可能な名前空間要素は、保護可能なオブジェクト801〜863(図8)などの1つまたは複数の保護可能なオブジェクトにマップされる。それぞれの保護可能なオブジェクトは、ある保護可能なオブジェクトの種類のものであり、それぞれの保護可能なオブジェクトは、単一のデータソース内にある。さらに、各データソースは、作成ロケーションの単一のサーバ内にある。
図5および図7に関連して説明した、ユーザが、名前空間要素、\\ABCD\PUBLIC405(図4)を選択し、保護可能なオブジェクトに対するその名前空間要素のマッピングを続ける実施例を再び参照して、本発明の実施形態による、それらの保護可能なオブジェクトのマッピング、および保護されたグループにする関連付けを図9Aおよび図9Bに関連して説明する。
ユーザから見て、保護されたグループのメンバは、ユーザが選択し、保護されたグループに追加した名前空間要素、ならびに自動検出グループ(以下に説明する)の結果として追加された保護可能なオブジェクトによって定義される。さらに、データ保護システムは、保護されたグループの中の各名前空間要素がいずれの保護されたオブジェクトにマップされるか、ならびに、それらの保護されたオブジェクトのそれぞれの状態をユーザが見ることができるようにする。
前述した実施例を再び参照すると、名前空間要素、\\ABCD\PUBLIC405は、次の3つの異なる保護可能なオブジェクトにマップされる。すなわち、D:\FOLDER ON SERVER1 507、D:\FOLDER SERVER2 509、およびF:\ON SERVER3 511である。図7に関連して説明したマッピングを済ませ、図9Aを参照すると、D:\FOLDER ON SERVER1 507は、SERVER1 901上のデータソース、D:\907内に含まれるフォルダ909を参照する。D:\FOLDER ON SERVER2 509は、SERVER2 903上のデータソース、D:\935上に含まれるフォルダ927を参照する。最後に、F:\ON SERVER3 511は、SERVER3 905上のデータソースF:\951を参照する。図9Bを参照すると、名前空間要素、\\ABCD\PUBLIC505の選択は、図9Aに関連して説明した、保護されたオブジェクトにマップされ、それらのオブジェクトは、保護されたグループ930に関連付けられる。前述したとおり、選択された保護されたオブジェクトの中に含まれる保護可能なオブジェクトは、保護されたグループの中に自動的に含められることが可能である。例えば、SERVER3 905上のF:\951に部分的にマップされる\\ABCD\PUBLIC505の選択により、追加の保護可能なオブジェクト953および955が含められることが可能である。というのは、オブジェクト953および955は、SERVER3 905上の保護されたオブジェクトF:\951内に含まれるからである。図9Bに示すとおり、保護されたグループ930は、SERVER1 901、SERVER2 903、およびSERVER3 905などの、異なるサーバ上に位置する保護されたオブジェクトを含むことが可能である。
図10は、本発明の実施形態による、選択された名前空間要素、マップ済みの保護されたオブジェクト、および保護されたグループのプロパティを含む保護されたグループのブロック図を示す。詳細には、保護されたグループ1030が、名前空間要素、\\ABCD\PUBLIC1005、前述した実施例に関連して説明した、マップ済みの保護されたオブジェクトのそれぞれ、および選択済みの保護されたオブジェクト内に含まれる保護されたオブジェクトを含む。詳細には、保護されたグループ1030は、D:\FOLDER ON SERER1 1009、D:\FOLDER ON SERVER2 1027の保護されたオブジェクトを含む。さらに、保護されたグループ1030は、F:\ON SERVER3 1051、ならびに保護されたオブジェクト、F:\ON SERVER3 1051内に含まれる2つの保護されたオブジェクト1053、1055を含む。
保護されたグループ1030などのそれぞれの保護されたグループは、スケジュール1041、スペース割り当て規則1043などを含むことが可能なグループプラン1040を含む。グループプランは、グループを保護するためのジョブ、およびその他の情報を含む。保護されたグループは、操作の簡略化のために保護されたオブジェクトを集める。保護されたグループの中のすべての保護されたオブジェクトは、保護インテントの同一の集合から生成された同一のグループプランを共有する。
要するに、保護されたグループは、1つまたは複数の保護された名前空間要素を含む。それぞれの保護された名前空間要素により、1つまたは複数の保護可能なオブジェクトが探し出される。保護可能なオブジェクトは、データソース上に位置する。データソースは、少なくとも1つの保護されたグループのメンバであることが可能である。保護している間、保護されたグループマッピングが、定期的に再評価されて、保護されたグループ自体の中に含められるべき可能性がある、新たに検出された保護可能なオブジェクトが識別され、保護されたオブジェクトに至る論理的パスの変更が検出される。以下に説明するこの定期的評価は、自動検出グループを使用して達せられる。
次に、図11、図12、図13、図16、図23B、図25、図26、図27、図28、図29、図30、図31、図32、図33、図34、図35、図36、図38、図39、41、図48A、図48B、図48C、図49A、図49B、図49C、図52、図53、図54、図55、図56、図57、図58、および図59を参照すると、本発明の諸実施形態によって実施される、複数の異なるルーチンが示されている。ルーチンは、サーバなどの単一のコンピューティングデバイス上で実施されても、いくつかのコンピューティングデバイスに分散されてもよいことが当業者には理解されよう。図11、図12、図13、図16、図23B、図25、図26、図27、図28、図29、図30、図31、図32、図33、図34、図35、図36、図38、図39、41、図48A、図48B、図48C、図49A、図49B、図49C、図52、図53、図54、図55、図56、図57、図58、および図59は、特定の諸機能を実行するためのブロックを示す。代替の実施形態では、より多くのブロック、またはより少ないブロックを使用することもできる。本発明の実施形態において、ブロックは、ソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア機能、ソフトウェアサブルーチン、ソフトウェアメソッド、ソフトウェアインスタンス、コードフラグメント(fragment)、ハードウェア動作、およびユーザ動作を単独で、または組合せで表すことが可能である。
図11は、本発明の実施形態による、保護されたグループを保護するためのプランを構成するための構成ルーチンの流れ図である。構成ルーチン1100は、ブロック1101で始まり、ブロック1103で、ルーチンは、ユーザインターフェースと対話するユーザから、名前空間要素の選択、および保護インテントを獲得する。以下に説明するとおり、ユーザは、保護のために複数の名前空間要素を選択することができる。与えられた保護インテントは、選択された要素のすべてに適用される。ブロック1105で、選択された名前空間要素が、適切な保護可能なオブジェクトにマップされる。
判定ブロック1107で、追加の名前空間要素が、前に選択された名前空間要素に含められるように選択されているかどうかが判定される。ブロック1107で、追加の名前空間要素が選択されていると判定された場合、ルーチンは、ブロック1103の選択された名前空間要素を獲得することに戻る。しかし、判定ブロック1107で、追加の名前空間要素がまったく存在しないと判定された場合、ブロック1109で、データプロテクタが、ブロック1105でマップされた関連する保護可能なオブジェクトを保護するために使用される、選択された名前空間要素に関する保護されたグループを生成する。保護されたグループに加えられた保護可能なオブジェクトは、保護されたオブジェクトになる。
ブロック1111で、保護のためのグループプランが、ブロック1103でユーザによって与えられた保護インテントに基づいて生成される。保護のためのグループプランは、保護の頻度、および所望される保護のタイプを含むことが可能である。保護タイプの例には、「バックグラウンド保護」、「バックアップ保護」、およびアーカイブ保護が含まれるが、以上には限定されない。バックグラウンド保護とは、保護がほぼ継続的である(例えば、コピーが、毎時間、1日24時間、週7日、更新される)保護タイプを指す。バックアップ保護とは、保護が特定の時点(例えば、夜間に1回、毎晩)行われるようにスケジュールされる保護タイプを指す。グループプランは、保護されたグループのすべての保護されたオブジェクトに適用される。グループプランの生成を以下に説明し、「インテント変換」と呼ぶ(図31〜図34)。
ブロック1113で、保護されたオブジェクトを含む保護ロケーション、およびオブジェクトのコピーが格納される格納ロケーションが、保護のために準備される。例えば、データプロテクタが、格納ロケーションに格納され、正確さに関して検証されるデータの初期コピーを作成する。ブロック1115で示すとおり、保護が開始され、選択された名前空間要素に関連する保護されたオブジェクトがコピーされ、格納された後、ルーチンは、ブロック1117で終了する。
図12は、本発明の実施形態による、ブロック1109(図11)で述べた、保護されたグループの作成をより詳細に説明する保護されたグループ作成ルーチンを示す。保護されたグループ作成ルーチン1200は、ブロック1201で始まり、ブロック1203で、保護が実行されるべき名前空間要素の選択が受け取られる。さらに、選択された名前空間要素に関する保護インテントも受け取られる。判定ブロック1205で、受け取られた名前空間要素が、新たな保護されたグループに追加されるべきか、または既存の保護されたグループに含められるべきかが判定される。名前空間要素が、新たな保護されたグループに追加されるべきでないと判定された場合、ブロック1207で、名前空間要素が含められるべき既存の保護されたグループの選択が獲得される。
ブロック1209で、以下により詳細に説明するとおり(図13)、名前空間要素に関連するデータソースの重複が解決される。最後に、ブロック1211で、既存の保護されたグループが、追加の名前空間要素、および関連する保護可能なオブジェクトを含むように更新される。さらに、ユーザは、保護されたグループに関するグループプランを変更するオプションを有することも可能である。
判定ブロック1205を再び参照すると、受け取られた名前空間要素が、新たな保護されたグループに追加されるべきであると判定された場合、ブロック1213で、それらの名前空間要素に関連するデータソースの重複が解決される。ブロック1215で、新たな保護されたグループの名前が受け取られる。一実施例では、新たな保護されたグループの名前は、ユーザインターフェースを介してユーザによって与えられることが可能である。代替として、保護されたグループの名前は、データ保護システム自体によって自動的に生成されることも可能である。ブロック1217で、グループプランが、保護されたグループに関して、データ保護システムに前に与えられた保護インテントに依存して作成される。ブロック1219で、保護されたグループを作成するルーチンが完了する。
図13は、本発明の実施形態による、2つ以上の保護されたグループの中に含まれるデータソースの重複を検出するための、ブロック1209および1213(図12)に対応する重複検出ルーチンを示す。重複検出ルーチン1300は、ブロック1301で始まり、判定ブロック1303で、選択された名前空間要素に関連する保護可能なオブジェクトの包含側(containing)データソースが、別の保護されたグループ(既存の保護されたグループ)の中に現在、含まれているかどうかが判定される。選択された名前空間要素に関連する保護可能なオブジェクトを含むデータソースが、既存の保護されたグループの中にまったく含まれていないと判定された場合、ルーチンは、ブロック1313で終了し、保護されたグループ作成ルーチン1200(図12)などの適切なルーチンに制御を戻す。
しかし、選択された名前空間要素に関連する保護可能なオブジェクトの包含側データソースが、既存の保護されたグループの中に含まれている(すなわち、重複)と判定された場合、判定ブロック1305〜1307で、検出された重複がどのように解決されるべきかについての判定が行われる。本発明の実際の実施形態では、重複の解決は、ユーザの決定に依存する。例えば、重複が検出された場合、最新の保護されたグループから、重複するデータソース(「競合する保護可能なオブジェクト」)の保護可能なオブジェクトを除外する(1305)、または重複を生じさせる、競合する保護可能なオブジェクトを含むデータソースを既存の保護されたグループから除去し、そのデータソースを最新の保護されたグループに追加する(1307)オプションが、ユーザに与えられることが可能である。代替の実施形態では、重複検出ルーチン1300の中を進むために使用される、重複を解決するためのグローバルポリシーが、ユーザによって与えられることも可能である。さらに別の実施形態では、重複を生じさせる保護可能なオブジェクトを保護されたグループに追加しようとする試みは、失敗をもたらす。
判定ブロック1305で、競合する保護可能なオブジェクトが、そのオブジェクトが現在、追加されている保護されたグループ(最新の保護されたグループ)から除外されるべきかどうかについての判定が行われる。判定ブロック1305で、競合する保護可能なオブジェクトが、最新の保護されたグループから除外されるべきであると判定された場合、その保護可能なオブジェクトは、最新の保護されたグループから除去されるが、競合を生じさせた既存の保護されたグループの中に残り、重複検出ルーチンは、ブロック1313で示すとおり、制御を開始ルーチンに戻す。
判定ブロック1305で、競合する保護可能なオブジェクトが、最新の保護されたグループから除外されるべきでないと判定された場合、ルーチンは、判定ブロック1307で、保護可能なオブジェクトのデータソース、ならびにそのデータソース内に含まれるすべての保護されたオブジェクトを既存の保護されたグループから除去し、除去されたデータソース、除去された保護されたオブジェクト、および競合する保護可能なオブジェクトを最新の保護されたグループに追加するかどうかを判定する。データソース、および包含される保護されたオブジェクトが、既存の保護されたグループから除去され、最新の保護されたグループに追加された場合、ルーチンは、ブロック1313で完了し、制御を、制御がやって来た適切なルーチンに戻す。
判定ブロック1307で、競合する保護可能なオブジェクトのデータソース、およびすべての包含される保護されたオブジェクトが、既存の保護されたグループから除去されて、最新の保護されたグループに追加されるべきではないと判定された場合、重複検出ルーチン1300が、ブロック1311で示すとおり、重複エラー(failure)を生じさせ、ブロック1313で完了する。
ユーザが、作成ロケーション上に格納された物理的オブジェクト(保護可能なオブジェクト)を、それらの保護可能なオブジェクトを表す名前空間要素を選択することによって保護することができるのと同様に、ユーザは、回復されるべき物理的オブジェクトを表す名前空間要素の選択により、物理的オブジェクト(回復可能なオブジェクト)を回復することもできる。図14は、本発明の実施形態による、保護されたオブジェクトを回復するための回復プロセスの流れを示すデータ保護システムの流れ図である。オブジェクトを回復するのに、ユーザは、回復されるべき保護されたオブジェクトを表す1つまたは複数の名前空間要素を選択する。データプロテクタ1401は、名前空間要素の選択を受け取ったことに応答して、格納ロケーション1403にクエリを行い、ユーザによって与えられた、選択された名前空間要素に関連する回復可能なオブジェクトの一時バージョンを明らかにする。代替の実施形態では、格納ロケーション1403にクエリを行い、一時バージョンを明らかにすることは必要でない可能性がある。例えば、アーカイブからの回復では、データプロテクタ1401は、利用可能な一時バージョンを明らかにする情報を含むカタログまたはデータベースを探索することにより、一時バージョンを明らかにすることができる。明らかにされた一時バージョンは、合成され、データを回復することができる時点の表現としてユーザに提供される。
ユーザは、回復されるべき時点を選択し、その時点に関する回復インテントを与える。回復インテントの例を以下により詳細に説明する。何が回復されるべきか、および対応する回復インテントについてユーザから受け取ると、データプロテクタ1401によって回復プランが作成され、実行されて、格納ロケーション1403上に位置する適切な回復可能なオブジェクトが、回復され、作成ロケーション1405に伝送される。
図15は、本発明の実施形態による、格納ロケーション1403上に含まれることが可能である回復可能なオブジェクトのより詳細な表示を示すブロック図である。一般に、回復は、破損した、または欠落している保護されたオブジェクト(または保護されたオブジェクトの諸部分)を前の一時バージョンに戻す。一時バージョン設定は、不連続であることも、ほぼ連続的であることも可能である。不連続な一時バージョンは、保護されたオブジェクトの現存する時点の完全なコピー(persisting point−in−time full copy)から生じる。不連続な一時バージョンの回復は、保護されたオブジェクトの復元だけを要求することも、復元の後、追加の回復処理を要求することも可能である。ほぼ連続的な一時バージョンは、保護されたオブジェクトに関連するログの現存する時点のコピーから生じる。回復は、ログのロールフォワード(roll forward)アプリケーションによって行われる。本発明の実施形態では、ロールフォワードは、ログ内に含まれる任意の時点で停止することができる。
本明細書で説明する回復可能なオブジェクトは、保護されたオブジェクトの回復の可能性を表す。それぞれの回復可能なオブジェクトは、1つまたは複数の回復ソースから生成されることが可能である。回復ソースは、レプリカに関連する一時バージョン上、レプリカ内、アーカイブテープ上、またはディスク上のアーカイブされたコピー上に位置することが可能である。
次に、図15を参照すると、保護されたオブジェクト1509が、1つまたは複数の回復可能なオブジェクト1511、1513、1515、1517、1519、1521を含むことが可能である。一般に、回復可能なオブジェクトは、保護されたオブジェクトより細粒度が高いことが可能である。例えば、保護されたオブジェクトは、D:\FOLDER ON SERVER1 1509のようなフォルダであることが可能である。その保護されたオブジェクト1509は、複数の回復可能なオブジェクトを含むことが可能である。例えば、保護されたオブジェクト、D:\FOLDER ON SERVER1 1509は、FILE1 1511、FILE2 1513、FILE3 1515、FILE4 1517、FILE5 1519、およびFILE6 1521を含む、6つの回復可能なオブジェクトを含むことが可能である。さらに、保護されたオブジェクト1509も、回復可能なオブジェクトである。
保護されたオブジェクトおよび保護方法の最初の選択により、しばしば、使用できる回復可能なオブジェクトおよび/または回復に必要な作業が決まる。例えば、保護されたオブジェクトが、メールボックスを含むデータベース群を含むExchangeストレージグループである場合、そのストレージグループ内のすべてのデータベースが暗黙のうちに保護されることが可能である。ストレージグループ全体、またはデータベースの1つまたは複数が、回復されることが可能であり、したがって、それらは回復可能なオブジェクトである。保護が、アーカイブ(以下に説明する)だけによって実行され、レプリケーションが実行されない場合、メールボックス回復は、非常に時間がかかる(高価である)可能性が高い。保護が、アーカイブだけでなく、レプリケーションによっても実行される場合、レプリカからのメールボックス回復は、大幅により高速になる(より安価になる)可能性がある。
保護されたオブジェクトが、ストレージグループのデータベースである場合、ストレージグループは、完全には保護されない可能性があるが、選択されたデータベース内に含まれるメールボックス群は、保護される。しかし、保護されたオブジェクトがメールボックスである場合、関連するデータベースまたはストレージグループの暗黙の保護は、存在しない可能性がある。保護が、アーカイブだけによって実行され、レプリケーションが実行されない場合、アーカイブが、選択されたメールボックス以外を回復することができる可能性は低い。代替として、メールボックスが、異なる保護されたグループの一部としてレプリケートされるデータベースの一部であること分かっている場合、メールボックス回復は、他方の保護されたグループのレプリカから行われ、アーカイブ媒体からは行われないことも可能である。
図16は、本発明の実施形態による、格納ロケーションから保護されたオブジェクトを回復するための回復ルーチンを示す。回復ルーチン1600は、ブロック1601で始まり、ブロック1603で、回復されるべき名前空間要素の選択が、ユーザインターフェース上に表示された名前空間要素と対話するユーザから受け取られる。ユーザは、回復されるべきデータに関する回復インテントも与えることができる。ブロック1605で、データが回復されるべき特定の時点のバージョンの選択が受け取られる。本発明の実施形態では、ユーザは、回復が行われるべき特定の時点を与える。別の実施形態では、一時バージョンが、選択された名前空間要素に関して明らかにされ、選択のためにユーザに提供されることが可能である。
ブロック1607で、さらなる要素が回復のために選択されているかどうかが判定される。さらなる要素が回復のために選択されていると判定された場合、ルーチンは、ブロック1603に戻り、回復されるべきそれらのさらなる名前空間要素の選択を受け取る。しかし、回復されるべきさらなる要素がまったく存在しないと判定された場合、ブロック1609で、回復可能なオブジェクトは、前述したマッピングスキーマ、および受け取られた回復インテントを利用して、格納ロケーション上に位置する適切な回復ソースにマップされる。
必要な回復ソースが明らかにされると、ブロック1611で、回復プランが作成される。回復プランは、適切な回復ソースから回復可能なオブジェクトの要求された時点のバージョンを合成するためのプロセスを含む。ブロック1613で、そのプランが実行され、明らかにされた回復可能なオブジェクトが回復される。ブロック1615で、回復ルーチンが終了する。
前述したとおり、保護されたグループを作成することに加え、データ保護システムは、自動検出グループおよび保存探索を生成することも行う。自動検出グループおよび保存探索は、作成ロケーションに対する変更をユーザに知らせる自動化された手段を提供する。例えば、変更には、サーバ、Exchangeストレージグループ、データベース、ボリューム、および共有などのコンピューティングデバイスの追加または除去、ならびに名前空間要素と保護可能なオブジェクトの間におけるマッピングの変更が含まれることが可能である。作成ロケーション変更の通知をユーザに与えることにより、ユーザが、保護される必要がある新たなデータを保護する適切なアクションを行うことができるようになり、データが再配置された場合、または除去された場合に、ユーザの保護計画を調整することができるようになる。
自動検出グループは、保護されるべきものを、別々の物理的リソースセットとしてではなく、クエリとして記述するための仕組みである。例えば、組織が、すべてのファイルサーバを、\\FILESRV1、\\FILESRV2などのように、\\FILESRV*として名付けたものと想定されたい。その組織のユーザが、\\FILESRV*という名前のあらゆるサーバ上のすべての共有を定期的に探索する自動検出グループを作成することができる。自動検出グループは、すべてのそのような共有を探し出し、ユーザが、それらの共有に位置する、または関連する任意の保護可能なオブジェクトの保護を選択する、または拒否することを可能にする。さらに、本発明の実施形態では、自動検出グループは、定期的に再評価されることが可能であり、ユーザは、あらゆる新たな共有の通知を受けて、それらの新たな共有の保護を承認する、または拒否する機会を与えられることが可能である。さらに、再評価は、除去された既存の共有を明らかにし、除去の通知をユーザに与える。
自動検出グループは、データプロテクタによって、名前空間要素と保護可能なオブジェクトの間のマッピングを追跡するのにも使用されることが可能である。前述した実施例を再び参照して、ユーザが、パス、\\ABCD\PUBLICを保護したものと想定されたい。データ保護システムは、\\ABCD\PUBLICという名前、ならびにD:\FOLDER ON SERVER1、D:\FOLDER ON SERVER2、およびF:\FOLDER ON SERVER3などの保護されたオブジェクトへのマッピングを含む自動検出グループを自動的に生成する。将来、\\ABCD\PUBLICが、同一サーバ上、または異なるサーバ上の異なるフォルダを指すように変更された場合、ユーザは、データプロテクタによってその変更について知らされ、保護を調整する機会を与えられる。
図17〜図24は、本発明の実施形態による、自動検出グループを作成し、利用することに関する流れ図を示す。図17〜図24の説明に関して、データ保護システムが、保護が所望されるいくつかのサーバ(作成ロケーション1703として示す)のある職場に設置されたばかりであるものと想定する。
データ保護システム1700の初期設定の後、データプロテクタ1701が、作成ロケーション1703にクエリを行い、作成ロケーション内に含まれる保護可能なオブジェクトを表す名前空間および名前空間要素を明らかにする。データプロテクタ1701は、ユーザが対話し、選択するために、名前空間、および包含される名前空間要素の階層表示の形態で、ユーザインターフェース1705を介して名前空間および名前空間要素をユーザに公開する。
ユーザは、ユーザインターフェース1705と対話して、\\ABCD\PUBLIC名前空間要素1707などの1つまたは複数の名前空間要素を、保護のために選択することができる。名前空間要素を保護のために選択することに加えて、ユーザは、関連する保護可能なオブジェクトがどのように保護されることをユーザが所望するかを明らかにする保護インテントを与える。選択された名前空間要素、および保護インテントの指示は、データプロテクタ1701に戻される。
次に、図18を参照すると、データプロテクタ1701は、名前空間要素の選択を、作成ロケーション1703上に位置する保護可能なオブジェクトにマップする。例えば、名前空間要素、\\ABCD\PUBLIC1707が選択されると、データプロテクタは、前述したとおり、名前空間スキームを利用して、その名前空間要素を保護可能なオブジェクトにマップする。そのマッピングにより、名前空間要素、\\ABCD\PUBLIC1707が、保護可能なオブジェクト、D:\FOLDER ON SERVER1 1709、および保護可能なオブジェクト、D:\FOLDER ON SERVER2 1711にマップされることが明らかになる。代替の実施形態では、名前空間要素の初期検出中、要素は、その時点で対応する保護可能なオブジェクトにマップされることが可能である。
データプロテクタ1701は、選択された名前空間要素、保護されたオブジェクトになる保護可能なオブジェクトの識別、自動検出グループ1713、および自動検出グループテーブル1715を含む、保護されたグループを作成する。前述したとおり、ユーザによって与えられたインテントに基づき、保護されたグループは、保護されたグループが実際にどのように保護されるべきかを記述するグループプランも含む。自動検出グループ1713は、\\ABCD\PUBLIC\*などの名前空間探索パラメータ、ならびに保護されたオブジェクト、D:\FOLDER ON SERVER1、および保護されたオブジェクト、D:\FOLDER ON SERVER2に対するその名前空間要素の最新のマッピングを含む。選択された名前空間要素に関する名前空間探索パラメータを含む自動検出グループ1713を作成することにより、その名前空間探索パラメータに一致する作成ロケーションに対する追加、除去、および再マッピングを以降に探索する能力がデータプロテクタに与えられる。あらゆるそのような変更が、保護に関して重要になる可能性があるため、警告を介してユーザに報告される。警告は、様々な形態でユーザに与えられることが可能である。例えば、警告は、ユーザインターフェース、電子メール、ページ、音声メッセージなどを介して与えられることが可能である。
自動検出グループ1713を作成することに加えて、データプロテクタ1701は、保護されたオブジェクトに対する最新のマッピングの識別、およびそれらの保護されたオブジェクトに関する情報を含む、自動検出グループテーブル1715も作成する。詳細には、情報には、保護されたオブジェクトに対するマッピングが、一致列(match column)1717の示すところにより、自動検出グループ1713の中に含まれる自動検出グループパラメータに一致するかどうか、保護されたオブジェクトが、保留状態列1719の示すところにより、現在、ユーザアクション待ち(pending user action)であるかどうか、マップ済みの保護されたオブジェクトが、プラン保護(「PP」)の列1721の示すところにより、グループプランの下で、現在、保護されているかどうか、およびユーザ保護(「PU」)の列1731の示すところにより、マップ済みの保護されたオブジェクトが、現在、ユーザによって保護されているかどうかが含まれる。以下に説明するとおり、オブジェクトは、ユーザによっては保護されているが、データ保護システムによっては未だ保護されていない可能性がある。例えば、ユーザが、特定のオブジェクトを保護することを所望することを示して、そのオブジェクトをユーザによって保護されているようにすることが可能であるが、オブジェクトは、その保護されたオブジェクトに関してインテント変換が完了するまで、プランによって保護されるようにならない可能性がある。
保護されたグループ、自動検出グループ、グループプラン、および自動検出グループテーブルの作成の後、データ保護システムは、本発明の実施形態によれば、保護のために作成ロケーションおよび格納ロケーションを準備する。ロケーションが、保護のために準備された後(例えば、リソースプラン)、選択された保護可能なオブジェクトの初期コピーを作成するための初期ステップが実行され(準備プラン)、次に、保護が開始される(保護プラン)。
選択済みの保護されたオブジェクトが保護されて、何らかの所定の時間が経過した後、データ保護システムは、自動検出グループを実行し、作成ロケーション1703を再マップする。例えば、自動検出グループは、毎晩1回、実行されるようにスケジュールされることが可能である。夜間に、または作成ロケーションにおける活動が少ない何らかの時間帯に自動検出グループを実行することにより、作成ロケーションにかかる負荷の量が軽減される。
説明のため、図17〜図24に関連して説明する実施例に戻ると、自動検出グループが実行され、自動検出グループ結果1723(図19)により、\\ABCD\PUBLIC\*という自動検出グループ探索パラメータに一致する唯一の保護可能なオブジェクトは、D:\FOLDER ON SERVER2という保護可能なオブジェクトであることが明らかにされる。データプロテクタ1701は、自動検出グループ結果1723を自動検出グループテーブル1715と比較する。この実施例では、比較により、D:\FOLDER ON SERVER1という保護されたオブジェクトが、自動検出グループ探索パラメータともはや一致しないことが明らかになる。D:\FOLDER ON SERVER1は、様々な理由で、探索パラメータともはや一致しないことが可能である。例えば、D:\FOLDER ON SERVER1が、もはや存在しないこと、またはD:\FOLDER ON SERVER1が、\\ABCD\PUBLICの下に、もはやマップされていないことが可能である。
比較の後、テーブル1715が更新されて、D:\FOLDER ON SERVER1という保護されたオブジェクトが、結果の中で戻されておらず、したがって、一致列1717の中で「N」で示されるとおり、自動検出グループ探索パラメータともはや一致しないことが示される。さらに、自動検出グループテーブル1715は、D:\FOLDER ON SERVER1という保護されたオブジェクトに関して更新されて、列1719の中の「Y」で示されるとおり、ユーザ対話が、その保護されたオブジェクトに関して、現在、保留状態(pending)であることが示される。ユーザ対話は、保護されたオブジェクトが、自動検出グループパラメータともはや一致しないために、現在、保留状態である。D:\FOLDER ON SERVER1は、PP列1721およびPU列1731の中のYで示されるとおり、プランの下で保護されており、ユーザによって保護されているというマークが付けられたままになる。
また、自動検出グループテーブル1715は、更新されて、D:\FOLDER ON SERVER2が、自動検出グループ探索パラメータと一致し、列1721および列1731の中の「Y」でそれぞれ示されるとおり、プランにおいて保護され、ユーザによって保護されたままであることも示される。最後に、保護されたオブジェクト、D:\FOLDER ON SERVER2に関して、このオブジェクトは、一致し、保護されているため、保留状態列1719の中の「N」で示されるとおり、保留状態のユーザアクションはまったくないという指示が行われる。
次に、図20を参照すると、自動検出グループが実行され、自動検出グループテーブルが更新され、警告が生成された後の翌朝、ユーザが、データ保護システムにアクセスし、D:\FOLDER ON SERVER1という保護されたオブジェクトが、自動検出グループ探索パラメータにもはや一致しないという通知をデータ保護システムから与えられる。
これに応答して、データ保護システムは、その保護されたオブジェクトを保護されたグループから除去するようにという指示をユーザから受け取る。データプロテクタ1701は、自動検出グループを更新して、保護されたグループからD:\FOLDER ON SERVER1のマッピングを除去し、自動検出グループテーブル1715を更新する。詳細には、D:\FOLDER ON SERVER1には、PU列1731の中の「N」で示されるとおり、もはや、ユーザによって保護されていないというマークが付けられ、保留状態列1719の中の「N」で示されるとおり、もはや保留状態ではないというマークが付けられる。この時点で、D:\FOLDER ON SERVER1は、保護されたグループからD:\FOLDER ON SERVER1を除去するようにインテント変換がまだ実行されていないため、プランによって保護されたままである。
オブジェクトは、自動検出グループテーブル1715の中に保持され、ユーザによって保護されていないというマークが付けられて、自動検出ルーチンの次の実行によってそのオブジェクトが識別された場合、承認待ち(pending approval)としてユーザに提示されないようにする。というのは、オブジェクトは、保護から既に除外されているからである。オブジェクトは、もはやユーザによって保護されていないので、保護可能なオブジェクトとなる。
図21は、前の実施例を続け、ユーザが、D:\FOLDER ON SERVER1をもはや保護することを所望しないことを示した後のある時点で、インテント変換が実行される。インテント変換が実行されると、グループプランが更新され、D:\FOLDER ON SERVER1が、保護されたグループから除去される。D:\FOLDER ON SERVER1は、保護されたグループによってもはや保護されていないものの、保護されたグループの既存の一時バージョンは、格納ロケーションに格納されたままであり、D:\FOLDER ON SERVER1が、プランによって保護されなくなる時点まで、D:\FOLDER ON SERVER1を回復するのに利用することができる。インテント変換が完了すると、自動検出グループテーブル1715が更新される。詳細には、D:\FOLDER ON SERVER1に、PP列1721の中の「N」で示されるとおり、プランによって保護されていないというマークが付けられる。
インテント変換が完了した後のある時点で、自動検出グループが、再び実行され、作成ロケーション1703にクエリを行い、自動検出グループ探索パラメータを、作成ロケーション1703上に位置するオブジェクトに再マップする。自動検出グループ探索パラメータのマッピングが完了すると、自動検出グループ結果1725が提供され、探索パラメータが、D:\FOLDER ON SERVER2という保護されたオブジェクト、およびE:\FOLDER ON SERVER2という新たな保護されたオブジェクト1727にマップされるという指示を含む。この場合も、データプロテクタ1701は、その結果を自動検出グループテーブル1715と比較する。この比較により、D:\FOLDER ON SERVER2という保護されたオブジェクトが、自動検出グループ探索パラメータとやはり一致し、ユーザアクション待ちではなく、ユーザとグループプランの両方によって保護されたままであることが示される。さらに、E:\FOLDER ON SERVER2という新たな保護可能なオブジェクトは、自動検出グループ探索パラメータと一致し、PP列1721の中の「N」で示されるとおり、グループプランによって現在、保護されておらず、PU列1731の中の「N」で示されるとおり、ユーザによって現在、保護されておらず、保留状態列1719の中の「Y」で示されるとおり、現在、ユーザアクション待ちである。比較が完了すると、自動検出グループテーブル1715は、更新されて、新たなマッピング、およびすべてのオブジェクトのステータスが明らかにされる。
E:\FOLDER ON SERVER2の保護可能なオブジェクトは、プランまたはユーザによって現在、保護されていない。何故なら、このオブジェクトは、自動検出グループによって新たに明らかにされたからである。データ保護システム1701は、ユーザに与えられる警告を生成して、保護されたグループの中の保護されたオブジェクトに類似した、新たな保護可能なオブジェクトが、作成ロケーションに追加されていることを示す。警告が生成されるのは、ユーザが、保護されたグループの一部として、この新たに明らかにされた保護可能なオブジェクトを追加で保護することに関心がある可能性があるからである。
図22で、ユーザは、警告を受け取っており、自動検出グループによって自動的に明らかにされた、新たに明らかにされた保護可能なオブジェクトの保護を開始する応答を与える。E:\FOLDER ON SERVER2という保護可能なオブジェクトも、保護されたグループに追加され、これにより、保護されたオブジェクトになる。同様に、データプロテクタ1701は、自動検出グループテーブル1715に、E:\FOLDER ON SERVER2というオブジェクトが、もはやユーザアクション待ちではなく、ユーザによって保護されているが、この時点ではプランによって保護されていないという指示を追加する。
図23Aは、前述した実施例を続け、新たに明らかにされた保護可能なオブジェクトを保護されたグループに追加するユーザによる指示の後のある時点で、インテント変換が実行され、E:\FOLDER ON SERVER2が、プランによって保護されるようになる。インテント変換が完了すると、自動検出グループログ1715が更新されて、PP列1721の中の「Y」で示されるとおり、E:\FOLDER ON SERVER2が、現時点で、プランによって保護されていることが示される。
インテント変換が完了した後のある時点で、データプロテクタ1701は、自動検出グループルーチンを再び実行し、\\ABCD\PUBLIC\*という自動検出グループ探索パラメータを、作成ロケーション1703に位置するオブジェクトに再マップする。自動検出グループルーチンが完了すると、データプロテクタは、D:\FOLDER ON SERVER2、およびE:\FOLDER ON SERVER3 1729というマッピングを明らかにしている。これらの結果は、自動検出グループテーブル1715と比較し、テーブル1715を更新するのに使用されて、D:\FOLDER ON SERVER2という保護されたオブジェクトが、自動検出グループ探索パラメータにやはり一致し、ユーザアクション待ちではなく、データ保護システムによって保護されたままであり、ユーザによって保護されたままであることが示される。さらに、E:\FOLDER ON SERVER2という以前に保護されていたオブジェクトは、自動検出ルーチンによって識別されなかったが、ユーザおよび保護プランによって保護されたままであり、したがって、ユーザアクション待ちであることが示される。さらに、E:\FOLDER ON SERVER3という新たな保護可能なオブジェクトの追加が、自動検出グループ探索パラメータに一致しているとして明らかにされるが、このオブジェクトは、新たに明らかにされ、したがって、ユーザアクション待ちであるため、ユーザまたは保護プランによって、現在、保護されていない。自動検出グループテーブルが更新されると、データプロテクタ1701は、E:\FOLDER ON SERVER2という以前に保護されていたオブジェクトが、自動検出グループ探索パラメータともはや一致せず、E:\FOLDER ON SERVER3が作成ロケーションに追加されており、自動検出グループ探索パラメータと一致することを明らかにすることを含む警告を生成する。この警告は、保護されたオブジェクト、E:\FOLDER ON SERVER2が、E:\FOLDER ON SERVER3に移動されている可能性があることをユーザに示す可能性がある。そのような変更の自動検出なしには、ユーザは、古いオブジェクトを保護し続け、新たなオブジェクトに対する保護を提供していない可能性がある。
図23Bは、本発明の実施形態による、図23Aで検出されるような、保護された名前空間要素の再マップを解決するための再マップ解決ルーチンを示す。再マップ解決ルーチン2300は、名前空間要素が移動されている可能性があると判定された場合に実行される。例えば、E:\FOLDER ON SERVER2に以前にマップされていた、\\ABCD\PUBLIC\LINK3が、E:\FOLDER ON SERVER3にマップされている可能性がある。
再マップ解決ルーチン2300は、ブロック2301で開始する。ブロック2303で、自動検出グループが評価され、保護された名前空間要素が、ある保護可能なオブジェクトから別の保護可能なオブジェクトに再マップされていると判定される。判定ブロック2305〜2309で、再マップがどのように解決されるべきかについての判定が行われる。
詳細には、判定ブロック2305で、新たなマッピングが排他的に保護されるべきかどうかの判定が行われる。新たなマッピングが排他的に保護されるべきであると判定された場合、ブロック2311で、古いマッピングに、ユーザによって保護されていないというマークが付けられ、新たなマッピングに、ユーザによって保護されているというマークが付けられる。しかし、新たなマッピングが排他的に保護されるべきではないと判定された場合、判定ブロック2307で、古いマッピングが排他的に保護されるべきかどうかの判定が行われる。古いマッピングが排他的に保護されるべきである場合、ブロック2311で、古いマッピングに、ユーザによって保護されているというマークが付けられ、新たなマッピングに、保護されていないというマークが付けられる。しかし、判定ブロック2307で、古いマッピングが排他的に保護されるべきではないと判定された場合、判定ブロック2309で、両方のマッピングが保護されるべきかどうかが判定される。
判定ブロック2309で、両方のマッピングが保護されるべきであると判定された場合、ブロック2311で、両方のマッピングに、ユーザによって保護されているというマークが付けられる。しかし、両方のマッピングが保護されるべきでないと判定された場合、ブロック2311で、両方のマッピングに、ユーザによって保護されていないというマークが付けられる。
ブロック2313で、インテント変換ルーチンが、前述したとおり、実行される。インテント変換が完了すると、保護されたオブジェクトが、更新されて、古い保護されたオブジェクトと新たな保護されたオブジェクトの両方に関して、プランにおいて保護されているというフラグ(protected in plan flag)が、ユーザによって保護されているというフラグ(protected by user flag)と同一の値を含むようになる。ブロック2315で、インテント変換ルーチンは終了する。
図24は、以上の実施例の前述した部分の場合と同様に、ユーザが、前に実行された自動検出グループルーチンによって検出された変更を明らかにする警告を与えられることを示す。ユーザは、自動検出グループ探索パラメータのマッピングを更新して、E:\FOLDER ON SERVER3という新たに明らかにされた保護可能なオブジェクトを含め、E:\FOLDER ON SERVER2という、より古い保護されたオブジェクトのマッピングを除去する(図23Bのブロック2305)。データ保護システム1701は、マッピングを更新する指示をユーザから受け取ったことに応答して、新たな保護されたオブジェクトを含めるように保護されたグループを更新する。さらに、データプロテクタ1701は、自動検出グループテーブル1715を更新して、E:\FOLDER ON SERVER2が、ユーザによってもはや保護されていないが、この時点で、プランによって保護されたままであることを明らかにし、E:\FOLDER ON SERVER3という保護されたオブジェクトの新たなマッピングが、ユーザによって保護されているが、プランによってまだ保護されていないことを示す。
ユーザが変更を示した後のある時点で、インテント変換が実行され、グループプランによって保護されることから、E:\FOLDER ON SERVER2が取り除かれ、E:\FOLDER ON SERVER3が、グループプランによって保護されるように追加される。理解されるとおり、インテント変換は、ユーザが、保護されたグループの変更(オブジェクトの追加、またはオブジェクトの除去)を示した後、任意の時点で実行されることが可能である。例えば、インテント変換は、ユーザが、保護されたグループに対する変更を示した直後に実行されることも、数日後に実行されることも可能である。さらに、自動検出グループルーチンとインテント変換は、互いに独立であることが可能である。自動検出グループルーチンは、ユーザが、保護されたグループに対する変更を示した時点とインテント変換実行の間に複数回、実行されることが可能である。そのような実例では、自動検出グループがリフレッシュされた後、変更されるオブジェクトに関する警告は、まったく生成されない。というのは、グループプランに対する実際の変更は、まだ行われていないものの、ユーザが、命令を既に与えているからである。
図25は、本発明の実施形態による、最上位の名前空間要素と保護可能なオブジェクトの間のマッピングを最初に検出するための初期検出ルーチンの流れ図を示す。初期検出ルーチン2500は、ブロック2501で開始し、ブロック2503で、作成ロケーションのすべての容易に検出可能なオブジェクトの名前空間および名前空間要素が、明らかにされる。容易に検出可能なオブジェクトは、作成ロケーションの最上位のオブジェクトである。例えば、DFSルート、サーバ、Exchangeサーバ、およびSTSサーバなどの名前空間および名前空間要素が、最上位のオブジェクトに関して容易に検出されることが可能である。ブロック2505で、作成ロケーションの検出された最上位の名前空間および名前空間要素が、データプロテクタのメモリ(例えば、データベース)の中に保存される(persiseted)。ブロック2507で、初期検出ルーチン2500が、完了する。
図26は、本発明の実施形態による、作成ロケーションに位置する名前空間と名前空間要素と保護可能なオブジェクトとの間におけるマッピングの検出のためのスケジュールされた検出ルーチンの流れ図を示す。詳細には、スケジュールされた検出ルーチン2600は、ブロック2601で開始し、ブロック2603において、初期検出ルーチン2500(図25)が、実行され、作成ロケーションにおける最上位の名前空間要素が明らかにされる。前述したとおり、最上位の名前空間要素の格納済みのコピーは、データ保護システムによって利用され、ユーザが、探索の時点で作成ロケーションを再検出しなくてても、従って、探索時間およびナビゲーション時間を増加させることなしに、作成ロケーションにかかる負荷を取り除いて、作成ロケーションの中をナビゲートすること、および/または作成ロケーションの特定の部分を探索することを可能にする。
判定ブロック2605で、実行されるべき既存の保存探索(以下に説明する)が存在するかどうかが判定される。判定ブロック2605で、実行されるべき保存探索が存在すると判定された場合、ブロック2607で、その保存探索が実行される。しかし、判定ブロック2605で、既存の保存探索が存在しないと判定された場合、判定ブロック2609で、更新されるべき既存の自動検出グループが存在するかどうかが判定される。判定ブロック2609で、更新されるべき既存の自動検出グループが存在すると判定された場合、ブロック2611で、図17〜図24の実施例に関連して前述したとおり、それらの自動検出グループが更新される。ルーチンは、ブロック2617で完了する。
図27は、本発明の実施形態による、自動検出グループ作成ルーチンの流れ図である。自動検出グループ作成ルーチン2700は、ブロック2701で開始し、ブロック2703で、ユーザが保護することを所望する名前空間要素の選択が受け取られる。名前空間要素の選択を受け取ることに加えて、それらの名前空間要素に関連する保護可能なオブジェクトも受け取られる。ブロック2705で、それらの名前空間要素に関連するデータソースの重複が存在すれば、その重複が解決される。重複解決は、図13に関連して前述した。
重複が解決された後、ブロック2707で、選択された名前空間要素を明らかにする自動検出グループリストが作成される。さらに、クエリパラメータが生成され、選択された名前空間要素に類似した他の名前空間要素を明らかにするために使用される自動検出グループの中に含められる。クエリパラメータは、物理的リソース(例えば、SERVER1上のすべてのボリューム)、名前空間に対する何らかのクエリ(例えば、DFS ROOT\productsの下のすべての共有)、または何らかの組合せ(\\FILESRV*という名前のサーバ上のすべての共有)として表現されることが可能である。さらに、クエリパラメータは、既存の名前空間要素の何らかのプロパティに基づくことも可能である。
それぞれのケースで、データ保護システムは、自動検出グループのメンバシップを常に把握しており、そのグループに対する変更をユーザに通知する。ブロック2709で、自動検出グループ、および選択された名前空間要素のリストが、保護されたグループに追加される。前述したとおり、保護されたグループは、既存の保護されたグループであることも、選択された名前空間要素に関して新たに作成された保護されたグループであることも可能である。ブロック2711で、自動検出グループ作成ルーチンが終了する。
図27に関連して前述したとおり作成される自動検出グループは、保護されるべき可能性があるオブジェクトを、別々の物理的リソースセットとしてではなく、クエリとして記述する方法である。変更が検出されると、ユーザは、自動検出グループに関連し、および/または保護されたグループの一部であるオブジェクトを保護するためのプランに対する変更を承認するか、または拒否することができる。例えば、自動検出グループが、サーバ群、\\FILESRV*上のすべての共有に関する探索パラメータを含み、新たなサーバ、\\FILESRV10が、10個の新たな共有とともに届いた場合、ユーザは、その新たな共有のそれぞれの保護を承認する、または拒否するオプションを有する。
前述したとおり、データ保護システムは、ユーザに報告された自動検出グループ変更に対する応答の記録をとる。例えば、ユーザが、新たに明らかにされた保護可能なオブジェクトの保護を拒否した場合、以降、その保護可能なオブジェクトが作成ロケーションから後に除去された場合、ユーザに通知は送信されない。詳細には、保護可能なオブジェクトに関して除外されたというフラグ(excluded flag)が設定されると、ユーザは、そのオブジェクトを保護することを所望せず、将来のすべての通知を自動的に無視することを所望すると示したことになる。ある実施形態では、オブジェクトを1回、拒否することにより、除外されたというフラグが自動的に設定されることはない。さらに、オブジェクトが拒否された回数の記録がとられ、所定の回数(例えば、5回)の拒否の後、そのオブジェクトには、除外されたというマークが付けられる。除外されたオブジェクトの以降の識別は、ユーザに警告されない。
データ保護システムは、ユーザが保護されることを所望する各名前空間要素に関する自動検出グループを自動的に作成し、構成する。例えば、ユーザが、サーバ、\\FILESRV1上の共有を保護する場合、データ保護システムは、物理的リソース(例えば、\\FILESRV1上のボリュームX:上のFOLDER1)に対する\\FILESRV1\SHARE1のマッピングから成る自動検出グループを構成する。\\FILESRV1\SHARE1が消えた場合、または共有から物理的リソースへのマッピングが変更された場合、ユーザは、その変更の通知を受け、どのように対処するかについて、いくつかのオプションを与えられる(図23B)。例えば、\\FILESRV1\SHARE1が、この場合、ボリュームY上のFOLDER1にマップされるものと想定されたい。ユーザは、X:\FOLDER1を保護することを続けるオプション、X:\FOLDER1を保護することを止めるオプション、およびY:\FOLDER1を保護することを開始するオプション、または両方のオブジェクトを保護するオプションを有する。このようにして、ユーザは、保護しようとしている名前空間要素に対するあらゆる変更、および実際に保護されている物理的オブジェクトについて知らされる。
図28および図29は、本発明の実施形態による、自動検出グループ更新ルーチンの流れ図を示す。自動検出グループ更新ルーチン2800は、ブロック2801で開始し、ブロック2803で、自動検出グループ結果からの保護可能なオブジェクトが選択される。自動検出グループ結果は、その自動検出グループの名前空間要素がマップされる、または以前にマップされていた保護可能なオブジェクトのそれぞれを明らかにする自動検出グループマッピングシーケンスの実行の後に生成される。判定ブロック2805で、選択された保護可能なオブジェクトが、現在、ユーザによって保護されているかどうかが判定される。
判定ブロック2805で、選択された保護可能なオブジェクトが、現在、ユーザによって保護されていないと判定された場合、判定ブロック2807で、選択された保護可能なオブジェクトが、現在、ユーザからの承認を待っているかどうかの判定が行われる。保護可能なオブジェクトは、以前に明らかにされ、警告を介してユーザに報告済みであり、そのオブジェクトが保護されたグループに追加されるべきかどうかをユーザが明らかにしていない場合、保護されたグループに追加されるようにユーザからの承認を、現在、待っている可能性がある。図17〜図24に関連して前述したとおり、オブジェクトは、自動検出グループテーブルの中で保留状態列を「Y」に設定することにより、承認を待っていると識別されることが可能である。判定ブロック2807で、保護可能なオブジェクトが、承認を待っていないと判定された場合、判定ブロック2809で、選択された保護可能なオブジェクトが、保護から除外されているかどうかが判定される。前述したとおり、保護可能なオブジェクトは、保護可能なオブジェクトが保護されることをユーザが所望せず、保護可能なオブジェクトに対する変更を通知されることも所望しないというユーザからの識別によって、保護から除外されることが可能である。そのような識別は、自動検出グループテーブル内のオブジェクトに、ユーザによって除外されたというマークを付けることによって明らかにされる。
判定ブロック2809で、選択された保護可能なオブジェクトが、現在、保護から除外されていないと判定された場合、ブロック2811で、新たな保護可能なオブジェクトを明らかにし、ユーザが、保護されたグループへの保護可能なオブジェクトの追加を承認すること、および/または保護されたグループから保護可能なオブジェクトを明確に除外する応答を要求する警報が生成される。ブロック2813で、保護可能なオブジェクトに、ユーザによる承認待ちであり、ユーザによって保護されておらず、プランによって保護されていないというマークが付けられる。
選択された保護可能なオブジェクトが、現在、ユーザによって保護されていない(ブロック2805)、ユーザからの保護承認を待っている(2807)、または保護から除外されている(2809)と判定された場合、判定ブロック2815で、自動検出グループ結果として明らかにされたさらなる保護可能なオブジェクトが存在するかどうかが判定される。判定ブロック2815で、追加の保護可能なオブジェクトが存在すると判定された場合、ルーチンは、ブロック2803に戻り、自動検出グループ結果として明らかにされた、それぞれのさらなる保護可能なオブジェクトに関するプロセスを続ける。しかし、判定ブロック2815で、自動検出グループ結果として明らかにされたさらなる保護可能なオブジェクトが存在しない場合、ブロック2817(図29)で、自動検出グループの既存の保護されたオブジェクトが明らかにされる。
判定ブロック2818で、既存の保護されたオブジェクトに、ユーザによって保護されているというマークが付けられているかどうかの判定が行われる。既存の保護されたオブジェクトに、ユーザによって保護されているというマークが付けられていないと判定された場合、ルーチンは、判定ブロック2821に進む。しかし、既存の保護されたオブジェクトが、ユーザによって保護されていると判定された場合、判定ブロック2819で、既存の保護されたオブジェクトが、自動検出グループの実行によって生成された結果の中に含まれるかどうかが判定される。判定ブロック2819で、既存の保護されたオブジェクトが、新たに生成された自動検出グループ結果の中に含まれると判定された場合、判定ブロック2821で、自動検出グループのさらなる既存の保護されたオブジェクトが存在するかどうかの判定が行われる。判定ブロック2821で、自動検出グループのさらなる既存の保護されたオブジェクトが存在すると判定された場合、ルーチンは、ブロック2817に戻り、継続する。判定ブロック2821で、自動検出グループに関して、さらなる既存の保護されたオブジェクトが存在しないと判定された場合、ルーチンは、ブロック2827で終了する。
判定ブロック2819を再び参照すると、明らかにされた既存の保護されたオブジェクトが、新たに生成された自動検出グループ結果の中に含まれていない場合、判定ブロック2822で、保留状態フラグを確認することにより、変更をユーザに通知する警告が、ユーザに以前に送信されているかどうかが判定される。警告が以前に送信されている場合、変更は、警告を介してユーザに報告され、ブロック2823で示すとおり、ユーザによって保護されたオブジェクトに対するマッピングがもはや存在しないことが明らかにされる。ブロック2825で、その保護されたオブジェクトに、保護されたグループからの除去待ちであり、自動検出グループ探索パラメータと一致していないが、現在、ユーザによって保護されているというマークが付けられる。保護されたグループからの保護されたオブジェクトの除去は、格納ロケーションからその保護されたオブジェクトのいずれの実際のコピーも除去しない。当業者には理解されるとおり、除去待ちと承認待ちは、保留状態の単一のステータスとして記録にとられることが可能である。前述したとおり、オブジェクトが自動検出グループ探索パラメータと一致するかどうかを記録にとることにより、オブジェクトが除去されるべきであるか、または追加されるべきであるかが明らかになる。
オブジェクトが自動検出ルーチンによって明らかにされると、オブジェクトが、ユーザアクション待ちであるか、プランによって保護されているか、ユーザによって保護されているか、および自動検出探索パラメータと一致するかを記録にとることに加えて、オブジェクトが、最初に明らかにされ、自動検出グループテーブルに追加された際、オブジェクトが明らかにされた日付と時刻も記録される。さらに、自動検出グループテーブルの中で存在する保護されたオブジェクトが、自動検出グループルーチンによってもはや明らかにされない場合、そのオブジェクトが消えた日付と時刻も記録される。
データ保護システムは、ユーザが名前空間要素を選択したことに応答して、自動検出グループを自動的に作成することに加えて、保存探索を自動的に作成することも行う。別の実施形態では、保存探索は、データ保護システムが設置されると生成されることが可能である。さらに別の実施形態では、保存探索は、ユーザによって作成されることも可能である。
保存探索は、サーバなどの作成ロケーションのセグメントが、現れた場合、または消えた場合にユーザに知らせるのに使用される。例えば、保存探索を利用することにより、データ保護システムが、新たなサーバ、新たなDFSルート、もはや存在しないサーバ、もはや存在しないDFSルート、新たなSTSサーバ、もはや存在しないSTSサーバなどについてユーザに知らせる能力が提供される。それぞれの保存探索に関連しているのが、同一の保存探索の以前の評価中に探し出された名前空間要素のリストである。保存探索は、探索の開始ポイントを表す名前空間要素、および戻されるべき包含された名前空間要素を記述する探索基準のセットを含む。自動検出グループとは異なり、保存探索は、保護されたオブジェクトではなく、名前空間要素を扱う。例えば、保存探索は、企業の営業部に属するすべてのサーバを明らかにするように作成することができる。これは、一般に、有効な自動検出グループではない。しかし、自動検出グループと同様に、保存探索は、探索パラメータと一致する名前空間要素を明らかにする保存探索結果テーブルを保持する。
探索と一致する名前空間要素に関して、ステータスが保持される。例えば、各名前空間要素に関して、最初に明らかにされた時刻と最後に確認された(last seen)時刻の情報が保持される。この情報も、変更を検出するのに使用されることが可能である。名前空間要素が保存探索によって初めて明らかにされると、その識別の日付を明らかにするタイムスタンプが保存され、その名前空間要素が作成ロケーションから除去されると、その名前空間要素が最後に確認された日付と時刻を明らかにするタイムスタンプも保存される。実際の実施形態では、作成ロケーションにおける変更が検出された場合にはいつでも、警告がユーザに与えられる。例えば、作成ロケーションに対する名前空間要素の追加、および/または名前空間要素の除去により、その変更をユーザに明らかにする警告がユーザに対して生成される。ある実施形態では、サーバ上のすべての共有に関する保存探索が、そのサーバ上の共有が保護されるべきことをユーザが明らかにしたことに応答して作成される。同様に、サーバ上のすべてのボリュームに関する保存探索が、そのサーバ上のボリュームが保護された場合に作成される。サーバに対して変更が行われると(例えば、適宜、共有またはボリュームの追加)、ユーザにその変更が通知される。
自動検出グループおよび保存探索の結果は、データプロテクタのナビゲーション機能および探索機能のパフォーマンスを向上させるのにも使用することができる。自動検出グループおよび保存探索は、固定記憶域の中に定期的に結果をキャッシュすることができ、したがって、ナビゲーション結果および探索結果が頻繁に変化しない場合、またはいくらかの陳腐さ(staleness)が許容できる場合、データプロテクタは、それらのキャッシュされた結果を利用して、ユーザが開始したナビゲーションおよび探索に対するより迅速な応答性を提供することができる。
ユーザが保護されたグループをどのように保護することを所望するか(例えば、レプリカ、アーカイブ、レプリカとアーカイブの両方)、およびどれだけ時間を遡って回復できることをユーザが所望するか(期間)を記述する保護インテントが、ユーザによって与えられる。例えば、ユーザは、そのデータに関して、選択されたグループのデータのレプリカが毎晩、生成されること、コピーが、格納ロケーションにおけるリムーバブルな媒体上に格納されること、そのコピーが、週1回、更新されること、および最大で4つのコピーがリムーバブルな媒体上に保持されることを所望する可能性がある。さらに、ユーザは、少なくとも1カ月経過した情報を回復できることを所望することを指定することができる。
格納ロケーションに、例えば、レプリカ、アーカイブ、またはレプリカとアーカイブの両方としてデータを保護することは、リソースが、そのデータのコピーに割り当てられることとともに、そのプロセス自体に要求されるリソースを要求する。さらに、それらのリソースを要求される状態にするのに、いくつかのジョブが要求され、保護の正確さを保つのに、持続的な(ongoing)ジョブが必要である。データを保護するためのジョブの使用は、以下により詳細に説明する。リソースおよびジョブを手動でセットアップすることは、面倒であり、誤りが生じやすい可能性がある。さらに、リソースおよびジョブは、保護されるオブジェクトのセットが変更された場合はいつでも、例えば、自動検出グループによって検出された変更に応答して、変更される必要がある可能性がある。ユーザが、詳細なリソースおよびジョブを手動で指定することを要求する代りに、ユーザは、名前空間要素の選択、および保護インテントを与えることにより、単に何が保護されるべきかを指定することができる。この情報が、次に、選択されたデータの保護を維持するためのグループプランを生成するのに使用される。一実施形態では、グループプランは、3つのコンポーネント、すなわち、リソースプラン、準備プラン、および保護プランを含む。
リソースプランは、保護を可能にするのに必要とされるリソースを獲得するのに必要なジョブのリストを含む。準備プランは、明らかにされたデータの保護をセットアップするのに必要とされる1回限りのジョブのリストを含む。例えば、1回限りのジョブは、作成ロケーションから格納ロケーションへのデータの初期のコピーおよび転送である。保護プランは、保護されたデータの正確さおよび整合性を維持するのに要求される持続的なジョブのリストを含む。
ユーザによって明らかにされた保護インテントから、オブジェクトを保護するための詳細なプランへの変換を、本明細書で「インテント変換」と呼び、「インテント変換」として説明する。本発明の実際の実施形態では、インテント変換は、保護されたグループ、およびその保護されたグループに関して与えられた保護インテントに対して作用する。保護インテントは、論理的表現として表され、目標として表明されることが可能である。目標は、所望される保護のレベル(細分性)、どのようにデータが保護されるべきか、どれだけの期間、データが保護されるべきか、どれだけ頻繁にデータが保護されるべきかなどを明らかにすることができる。例えば、ユーザは、「実行ファイル共有の30分の分量を超えて失わず、すべてのコンテンツを1年間、保持する」という保護インテントを明らかにすることができる。保護インテントからの動詞が、インテントを、オブジェクトを保護するための詳細なプランに変換するためのアクションとして使用される。前述の実施例を参照すると、このインテントに関する対応するアクションは、「30分毎にボリュームおよびフォルダをレプリケートする」、「毎週、アーカイブする」、および「1年間の媒体保持でオフサイト(offsite)に格納する」である。
本発明の実施形態では、保護インテントを明らかにする保護テンプレートが、ユーザによって選択され、選択された保護されたグループを保護するためのプランを生成するのに使用されることが可能である。保護テンプレートは、適切な動詞、および既定のプロパティを含む、1つまたは複数のプロトタイプジョブ定義を含む。保護テンプレートは、既定のプロトタイプスケジュールも含む。例えば、「1時間ごとのレプリケーション、3つの一時バージョンが、日中に作成される、毎晩、アーカイブする、転送のための暗号化なし、格納ロケーションにおける暗号化なし」が、既定のプロトタイプスケジュールである。ユーザは、保護テンプレートを取り消し、明示的に変更する能力を有する。例えば、ユーザは、前の保護テンプレートを変更して、1時間ごとのレプリケーションを作成し、日中に1つの一時バージョンだけを作成し、毎週、アーカイブし、転送のための暗号化を行わず、格納ロケーションにおいて暗号化を行わないことができる。前述した既定のプロトタイプスケジュールの中で明らかにされた「転送のための暗号化なし」は、作成ロケーションから格納ロケーションに伝送される際に、データが暗号化される必要がないことを明らかにする。代替として、データは、作成ロケーションと格納ロケーションの間における伝送のために暗号化されてもよい。「格納ロケーションにおける暗号化なし」は、レプリカとして、またはアーカイブされて、格納ロケーションに格納されたデータが、暗号化される必要がないことを明らかにする。代替として、格納されるデータは、暗号化することもできる。例えば、テープなどのリムーバブルな媒体にアーカイブされる作成ロケーションのコピーを暗号化することができる。さらに、レプリカとして格納されるコピーも同様に、または代替として、暗号化することができる。当業者には理解されるとおり、伝送および格納のためにデータを暗号化するために、任意の暗号化技術を本発明の諸実施形態で利用することができる。
図30は、本発明の実施形態による、保護インテントを、データのセットを保護するためのプランに変換することに関する流れ図を示す。ユーザインターフェース3003を介してデータ保護システムと対話するユーザが、保護されるべき名前空間要素のリストを選択する。保護されるべき名前空間要素の選択は、データプロテクタ3001に転送され、これに応答して、データプロテクタは、ユーザインターフェース3003を介して、保護インテント既定値をユーザに与える。詳細には、データプロテクタは、選択された名前空間要素を受け取ると、選択された名前空間要素に関連する保護可能なオブジェクトを明らかにし、ユーザに与えられる保護インテントの既定のリストを明らかにする。
ユーザは、保護インテント既定値を受け取ったことに応答して、ユーザインターフェース3003と対話し、適切な既定値を変更するか、または選択する。データプロテクタ3001は、選択または変更を受け取り、そのインテントを格納し、オブジェクトに関する保護されたグループを作成する。インテントは、任意のフォーマットで格納されることが可能であり、バイナリ、拡張マークアップ言語(XML)、またはデータベーステーブルを含むが、以上には限定されない。データプロテクタ3001は、保護インテント既定値に任意の変更を適用し、変更された保護インテントを使用して、保護されたグループを保護するための詳細なプランを作成する。詳細なプランもまた、任意のフォーマットで格納されることが可能であり、バイナリ、XML,またはデータベーステーブルを含むが、以上には限定されない。
保護されたグループを保護するための詳細なプランを作成することと同様に、データプロテクタは、表明された回復インテント、回復パラメータ、および回復されるべき名前空間要素の選択を所与として、選択された回復可能なオブジェクトに関する回復プランを作成する能力も有する。回復プランを作成するために、データプロテクタは、必要な回復リソースを特定し、それらのリソースを適切に順序付ける。さらに、データプロテクタは、どこにデータが復元されるべきかを明らかにする物理的パスである回復目標も特定する。
いくつかの異なる回復インテントが、どのように回復が行われるかを制御するために指定されることが可能である。例えば、上書きインテントにより、ファイルを作成ロケーションに回復しようとした際、作成ロケーションにそのファイルが既に存在していると判定された場合、何が行われるかが制御される。限定されるものではないが、常に上書きすること、決して上書きしないこと、2つのうち新しい方を使用することを含む、いくつかの代替が提供されることが可能である。指定されることが可能な別の回復インテントは、復元されるオブジェクトのセキュリティがどのように設定されるべきかというものである。例えば、復元されるオブジェクトのセキュリティが、親オブジェクトからのセキュリティを継承するように指定されることが可能である(例えば、フォルダに復元されるファイルのセキュリティが、そのフォルダと同一のセキュリティを受ける)。代替のモデルは、回復されるオブジェクトのセキュリティを、オブジェクトがバックアップされた当時のとおりに正確に復元することである。インテントは、回復されるオブジェクトが、伝送中、および/または格納される際に、暗号化されるかどうかも指定することができる。
図31および図32は、本発明の実施形態による、保護インテントを、作成ロケーションに位置する物理的オブジェクトを保護するための詳細なプランに変換するためのインテント変換ルーチンの流れ図を示す。インテント変換ルーチン3200は、ブロック3201で開始し、ブロック3203で、保護されるべき名前空間要素の選択、および選択された名前空間要素に関して適用されるべき保護インテントが、受け取られる。前述したとおり、名前空間要素は、作成ロケーションに位置する保護可能なオブジェクトにマップされる。さらに、前述したとおり、名前空間要素の選択、および関連する保護可能なオブジェクトは、データ保護システムによって、保護インテントが適用される保護されたグループにまとめられる。ブロック3205で、その保護されたグループに、「変換中」のマークが付けられる。「保護されたグループ」に「変換中」のマークを付けることにより、インテント変換が正常に完了するか、または失敗するまで、ユーザが、保護されたグループに対して変更を行うことが防止され、ユーザが行ったあらゆる変更が、ロールバックされる。
ブロック3207で、選択済みの保護されたグループに十分に保護を提供するのに必要なリソース要件が、計算される。リソース要件は、どのような変更が、保護されたグループに要求されるかを特定することにより、明らかにされる。保護されたグループに要求される可能性がある変更の例には、新たなデータソースが、保護されたグループに追加されること、データソースが、保護されたグループから除去されること、保護されたグループに関するデータソースが、保護されたオブジェクトを追加すること、または除去することによって変更されること、リソースが追加されること、または取り戻される(reclaimed)こと(例えば、レプリカに対するディスクスペースの追加または除去、アーカイブに対するリムーバブルな媒体の追加または除去)、保護されたグループに関して保護目標または保護スケジュールが調整されること、または新たな保護されたグループが初めて追加されることが含まれるが、以上には限定されない。さらに、必要なリソースのサイズは、コピーされ、格納ロケーションに格納される作成ロケーション上に位置する保護されたオブジェクトのサイズ、ならびに指定されている特定の保護方法および保護インテントを明らかにすることによって特定される。
ブロック3209で、リソースプランが生成され、実行されて、保護されたグループに保護を提供するのに必要なリソースが割り当てられる。リソースプランは、必要とされるリソースを特定し、それらのリソースを獲得するのに必要なあらゆるジョブを含む。例えば、そのようなジョブには、ディスクスペースを割り当てること、既存のストレージスペースを増加させること、テープ媒体を割り当てること、テープライブラリチェンジャ(changer)およびテープライブラリドライブを割り当てること、空き媒体プールからテープを要求することが含まれることが可能である。リソースプランの中に含まれるジョブは、ユーザが所望する保護のタイプに依存する。例えば、レプリケーションの場合、ジョブには、レプリカおよび一時バージョンにディスクリソースを割り当てること、および場合により、ログ領域にリソースを割り当てることが含まれる。ブロック3209で生成されたリソースプランに関連するジョブは、実行され、保護されたグループに必要なリソースが割り当てられる。
リソースが割り当てられた後、ブロック3211で、データ保護システムによってチェックポイントが作成される。代替の実施形態では、リソースプランは、それらのリソースを割り当てるのに必要なジョブの作成だけを含み、それらのジョブの実行は、実際に含まない。リソースプランに関連するジョブの実行は、準備プランの一環としてスケジュールされ、実行されることが可能である。そのような実施形態では、チェックポイントは、インテント変換が完了するまで生成されない。このため、インテント変換が完了しなかった場合、最初から再スタートしなければならない。ブロック3209に関して前述したとおり、リソースの割り当ての後、チェックポイントを作成することにより、インテント変換ルーチンが、正常に完了しなかった場合、このルーチンが再スタートすることが可能な既知のポイントがもたらされる。
リソース割り当てジョブの実行中にリソースの一部が割り当てられるが、全部は、割り当てられないことがあり得るため(例えば、システムが、物理的リソースの全部ではなく、一部を割り当てた後、クラッシュする)、本発明の一実施形態には、インテント変換ルーチンの不完全な実行において完全に割り当てられていないリソースを消去する(clean up)クリーンアップルーチンが含まれる。このクリーンアップルーチンは、ある形で振舞うようにシステムのリソース割り当てを設計することによって達せられる。実際の実施形態では、リソースは、データソースごとに割り当てられ、所与のデータソースに必要なすべてのリソースが割り当てられるか、またはまったく割り当てられない。リソースの全部ではなく、一部が割り当てられ、割り当てジョブが中断された場合、リソース割り当てプランの割り当てジョブの前回の実行からの部分的に割り当てられたリソースを消去する、リフレッシュジョブが作成される。クリーンアップルーチンが、部分的に割り当てられたリソースを消去すると、データ保護システムは、必要に応じて、リソースの再割り当てを行うことができる。インテント変換は、リソースが正常に割り当てられた、それらの新たな保護されたオブジェクトに関して続けられることが可能である。
図31を再び参照すると、ブロック3211で、ブロック3209におけるリソースの割り当てが正常に完了した後、チェックポイントが生成される。リソースが割り当てられた後のチェックポイントの作成により、リソースが割り振られた後、ただし、完了より前にインテント変換ルーチン3200が中断された場合、生じた可能性がある問題を、データ保護システムが解決する能力が提供される。例えば、データ保護システムが、インテント変換ルーチンの完了より前に、ただし、ブロック3211で示すとおり、最初のチェックポイントが追加された後にクラッシュした場合、再起動時に、データ保護システムは、インテント変換ルーチンが中断されていることを明らかにし、リソースの割り当てに続いて追加されたチェックポイントを探し出す。チェックポイントを明らかにすることにより、既に割り当て済みのリソースを使用することができ、インテント変換ルーチン3200が、完全に再スタートして、リソースの再割り当てを行う必要なしに、そのチェックポイントから再開されることが可能である。インテント変換ルーチンに対する中断の後、再スタートすることを、図38に関連して以下により詳細に説明する。
判定ブロック3213で、インテント変換ルーチン3200が、保護されたグループに現在、関連する既存のジョブおよび/またはタスクが存在するかどうかを判定する。判定ブロック3213で、保護されたグループに関連する既存のジョブおよび/またはタスクが存在すると判定された場合、ブロック3215で、それらのジョブおよびタスクが、登録解除され、ブロック3217で示すとおり、アクティブなジョブが存在すれば、そのジョブが終了される。ジョブおよびタスクは、保護されたグループが、初めて作成されたのではなく、変更されている場合、その保護されたグループに関して、前から存在している可能性がある。
判定ブロック3213で、保護されたグループに関して、既存のジョブおよび/またはタスクが存在しないと判定された場合、またはブロック3217における既存のジョブおよび/またはタスクの終了の後、インテント変換ルーチン3200は、ブロック3219で、保護プランを作成し、スケジュールする。以下により詳細に説明するとおり、保護プランは、格納ロケーションにおける保護されたグループのコピーの正確さを、時を経て保つのに必要であるジョブのリストを含む。さらに、インテント変換ルーチン3200は、ブロック3221で、準備プランを作成し、スケジュールする。以下により詳細に説明するとおり、準備プランは、保護プランに関連するジョブが実行されることが可能であり、保護されたグループの保護の正確さが実現されることが可能であるような状態に、作成ロケーションおよび格納ロケーションを移すのに利用される、1回限りのジョブのリストを含む。例えば、保護されたグループが作成されるのが初めてであり、レプリカ上に格納される必要がある場合、レプリカ上に存在する、その保護されたグループに関連するデータのコピーは存在しない。このため、準備プランに関連するジョブの1つは、保護されたオブジェクトのコピーを作成すること、およびレプリカ上にそのコピーを格納することであることが可能である。
次に、図32を参照すると、ブロック3225で、インテント変換ルーチン3200が、前述した保存探索および自動検出グループを作成する。前述したとおり、それらの自動検出グループおよび保存探索は、スケジュールされた検出ルーチンの一部として実行される。
リソースプラン、準備プラン、保護プラン、保存探索、および自動検出グループのためのジョブが作成された後、ブロック3227で、ジョブの作成の完了を示す第2のチェックポイントが、データ保護システムに追加される。前述し、以下により詳細に説明するとおり、このチェックポイントは、データ保護システムによって、インテント変換ルーチン3200中に生じた中断から回復するのに使用されることが可能である。例えば、ブロック3227で示すとおり、チェックポイントが作成された後にインテント変換ルーチン3200が中断された場合、再スタート中、データ保護システムは、インテント変換ルーチン3200が進行中であったことを明らかにし、プランおよびジョブが作成済みであることを示すチェックポイントを探し出す。チェックポイントが明らかにされると、インテント変換ルーチン3200が、そのチェックポイントから再開され、完了させられることが可能である。
ブロック3229で、新たに保護されたオブジェクト、および保護から除去された以前に保護されていたオブジェクトのステータスが、更新されて、保護プランにオブジェクトが含められること、および保護プランからオブジェクトが除外されることが反映される。ブロック3209で、リソース割り当てエラーを有しているというマークが付けられた、保護されたオブジェクトは、「保留状態」に戻される。ブロック3231で、すべてのチェックポイントが除去され、保護されたグループに、「変換中ではない」というマークが付けられる。すべての保護されたオブジェクトが除去された場合、保護されたグループは、削除されることが可能である。ブロック3233で、インテント変換ルーチン3200が完了する。
図33は、本発明の実施形態による、保護されたグループに関する保護プランを作成するための保護プラン作成ルーチンの流れ図である。保護プラン作成ルーチン3300は、ブロック3219(図31)に関連して前述した保護プランの作成およびスケジュールをより詳細に説明する。保護プラン作成ルーチン3300は、ブロック3301で開始し、ブロック3303で、保護されたグループに関するコピージョブが作成され、スケジュールされる。コピージョブは、作成ロケーションにおいて1つまたは複数の保護可能なオブジェクトに対して行われた変更を、格納ロケーションに格納された、対応する1つまたは複数の保護可能なオブジェクトのコピーにコピーするジョブである。例えば、日中に、ユーザが、作成ロケーションに位置する保護されたオブジェクトを変更した場合、コピージョブが実行されると、それらの変更がコピーされ、格納ロケーションに転送され、格納路ケーションに格納された、対応する一つまたは複数の保護可能コピーは、それらの変更を含むように更新される。
ブロック3305で、保護プラン作成ルーチン3300は、一時バージョンジョブを作成し、スケジュールする。一時バージョンジョブは、格納ロケーションにおいてデータの実際のバージョン設定を実行するようにスケジュールされたジョブである。一時バージョンの作成は、当業者には周知であり、本明細書で詳細に説明することはしない。
ブロック3307で、検証ルーチンが作成され、スケジュールされる。実行されると、ジョブは、図35に関連して以下により詳細に説明するとおり、検証ルーチンを実行する。ブロック3309で、保護プラン作成ルーチン3300が完了する。
図34は、本発明の実施形態による、準備プランを実行するための準備プラン実行ルーチンの流れ図である。準備プラン実行ルーチン3400は、ブロック3401で開始し、ブロック3403で、保護されたグループを保護するために、追加のリソースが必要とされるかどうかの判定が行われる。前述したとおり、格納ロケーションにおいて保護されたグループを保護するために必要なリソースを特定するために、リソースプランが生成される。一実施形態では、それらのリソースは、準備プランの作成および実行に先立って、リソースプラン中に割り当てられることが可能である。
判定ブロック3403で、リソースが必要とされると判定された場合、ブロック3405で、それらのリソースを割り当てるためにリソースプランの中で作成されたジョブが実行され、リソースが割り当てられる。
ブロック3405におけるリソースの割り当ての後、またはブロック3403において、保護されたグループの保護のために追加のリソースが必要とされないと判定された場合、ブロック3407で、保護されたグループに関連する物理的オブジェクトの初期コピーが作成され、格納ロケーションに転送され、前もって割り当てられたリソース上に格納される。保護されたグループの初期コピーが作成され、格納ロケーションに格納されると、レプリケーションのため、ブロック3409で、初期コピーが、作成ロケーションに位置する実際の物理的オブジェクトを用いて検証される。検証は、図35に関連して以下に説明する。
判定ブロック3411で、保護されたグループから除去された保護されたオブジェクトが存在するかどうかの判定が行われる。ブロック3411で、保護されたオブジェクトが保護されたグループから除去されていると判定された場合、ブロック3413で、準備プランは、それらのオブジェクトを監視することを止めるジョブを含み、それらのオブジェクトは、保護可能なオブジェクトに留まる。監視はリソースを消費するので、ジョブは必要なくなると、監視することを止める。ブロック3415で、準備プラン実行ルーチン3400は完了する。
前述したとおり、本明細書で説明するルーチンを実行するために、より多くのブロック、またはより少ないブロックを使用してもよい。例えば、コピーすることが、媒体読み込みを介して達せられる場合、準備プラン3400は、データの初期コピーを作成すること(ブロック3407)をしない。同様に、コピーがアーカイブのためである場合、準備プラン3400は、データの初期コピーを作成すること(ブロック3407)をしない。
図35は、本発明の実施形態による、格納ロケーションに位置するデータのコピーを検証するための検証ルーチンの流れ図である。検証ルーチン3500は、ブロック3501で開始し、ブロック3503で、検証ルーチン3500は、作成ロケーションに位置する物理的オブジェクトに関する検証パラメータを獲得する。当業者には理解されるとおり、検証パラメータは、作成ロケーションに位置する物理的オブジェクトのチェックサムであることが可能である。代替として、検証パラメータは、作成ロケーションにおける物理的オブジェクトの最終変更時刻、または作成ロケーションに位置する物理的オブジェクトのサイズであることも可能である。一般に、検証パラメータは、作成ロケーションに位置する物理的オブジェクトに関する任意のタイプの識別であることが可能である。
ブロック3505において、検証ルーチン3500は、格納ロケーションに位置するオブジェクトに関する検証パラメータを獲得する。作成ロケーションにおけるオブジェクトに関する検証パラメータと同様に、格納ロケーションにおけるオブジェクトの検証パラメータも、チェックサム、最終変更時刻、ファイルサイズなどであることが可能である。
ブロック3507で、格納ロケーションに位置するオブジェクトが、作成ロケーションに位置する保護されたオブジェクトと一致することを確認するために、ブロック3503で獲得された作成ロケーションにおける保護されたオブジェクトの検証パラメータと、ブロック3505で獲得された格納ロケーションにおけるオブジェクトの検証パラメータが比較される。判定ブロック3509で、ブロック3507で比較されたパラメータが一致するかどうかの判定が行われる。ブロック3509で、パラメータが一致しないと判定された場合、ブロック3513で、検証ルーチン3500は、作成ロケーションからの一致しない保護されたオブジェクトを再コピーして、格納ロケーションに位置するオブジェクトを置き換え、判定ブロック3511に進む。
しかし、判定ブロック3509で、パラメータが一致すると判定された場合、ブロック3511で、保護されたグループに関して、まだ検証されていない、さらなるデータが存在するかどうかの判定が行われる。保護されたグループに関して検証されていない、格納ロケーションに位置するさらなるデータが存在すると判定された場合、検証ルーチンは、ブロック3503に戻り、プロセスが続けられる。代替として、判定ブロック3511で、さらなるデータが存在しないと判定された場合、格納ロケーションは検証され、検証ルーチンは、ブロック3515で完了し、格納ロケーションに位置するオブジェクトが保護されたオブジェクトと一致することが確認される。
コピーの正確さを確認するためにインテント変換中に準備プランの一部として実行される検証ルーチンに加えて、物理的オブジェクトの保護の正確さを後に再確認するために、検証ルーチンがスケジュールされることも可能である。さらに、検証ルーチンは、格納ロケーションに位置するオブジェクトのコピーを有効な状態にするためにスケジュールされ、実行されることも可能である。格納ロケーションに位置する物理的オブジェクトのコピーは、システムがクラッシュした場合、またはその他の予定外な変更が生じた場合に、無効な状態にあることがあり得る。例えば、レプリカは、変更ログ(以下に説明する)が、格納ロケーションにおいてそれらの変更を適用することができなかったためにオーバーフローした場合に、無効になる可能性がある。
図36は、本発明の実施形態による、格納ロケーションに位置するオブジェクトのコピーを検証するための、スケジュールされた検証ルーチンの流れ図である。スケジュールされた検証ルーチン3600は、ブロック3601で開始し、ブロック3603で、ルーチンは、検証されるべき格納ロケーションに位置する保護されたグループのオブジェクトのコピーを明らかにする。判定ブロック3605で、明らかにされたコピーが、有効な状態にあるか、無効な状態にあるかの判定が行われる。判定ブロック3605で、明らかにされたコピーが無効な状態にあると判定された場合、ブロック3607で、スケジュールされた検証ルーチン3600は、図35に関連して説明した検証ルーチン3500を実行する。
しかし、判定ブロック3605で、コピーが有効な状態にあると判定された場合、判定ブロック3609で、有効性が確認される必要がある、格納ロケーションに位置する保護されたグループのさらなるコピーが存在するかどうかの判定が行われる。判定ブロック3609で、さらなるコピーが、有効性を確認される必要があると判定された場合、スケジュールされた検証ルーチン3600は、ブロック3603に戻り、検証されるべきさらなるコピーを明らかにし、そのプロセスを続ける。しかし、判定ブロック3609で、検証されるべき、格納ロケーションに位置するさらなるコピーが存在しないと判定された場合、スケジュールされた検証ルーチン3600は、ブロック3611で示すとおり、完了する。
図37は、本発明の実施形態による、レプリカに関する状態遷移のブロック図を示す。リソース割り当て中に格納ロケーションの一部を割り当てるのに先立って、レプリカは、未割り当ての状態にある。インテント変換が、保護されたグループにリソースを割り当てた後、レプリカは、割り当て済みの状態に遷移する。コンテンツ(保護されたグループのコピー)は、次に、転送され、格納ロケーションに格納されなければならない。転送および格納は、ディスク−ディスク間初期設定を使用して(データ保護システムによって自動的に)、自動化された媒体読み込みにより、または管理者によって手動で(例えば、手動の媒体読み込みにより)、達せられることが可能である。ディスク−ディスク間初期設定が行われる場合、インテントトランスレータ(translator)が、初期コピージョブを自動的に作成する。初期コピージョブは、実行されると、レプリカを無効な状態にする。コピーが、媒体読み込みを使用して初期設定される場合、ユーザは、媒体読み込みが完了すると、そのことを示し、レプリカは、その時点で無効な状態にされる。
レプリカが無効な状態になると、検証ジョブが実行されて、レプリカを有効な状態にすることが必要である。前述したとおり、検証ジョブは、格納ロケーションにおけるコピーが作成ロケーションにおける保護されたオブジェクトと一致することを確認する。
レプリカは、割り当て済みの状態3703、無効な状態3705、または有効な状態3711にあることに加えて、欠落状態3713に遷移することも可能である。例えば、時とともに、特定の保護されたグループに関するレプリカのために割り当てられた物理的媒体に障害が生じて、レプリカが欠落状態になる可能性がある。欠落状態3713から、データ保護システムは、ユーザからの対話を使用して、レプリケートされていた情報が、保護され続ける必要があるかどうかを判定する。保護されたグループが、引き続き保護されるべきである場合、リソースが、再割り当てされて、レプリカは、割り当て済みの状態3703に再び遷移させられる。欠落状態3713から、レプリカに関連する情報が、もはや保護される必要がないと判定された場合、レプリカは、破棄された状態3707に遷移することが可能であり、保護されたグループに関するレプリケーションは、データ保護システムによってもはや実行されない。
レプリカは、欠落状態3713に一時的に遷移することも可能である。例えば、ディスクが、何らかのハードウェアの問題に起因して、一時的に接続を断たれ、または利用できなくなり、その後、再び利用可能になる可能性がある。そのような実例では、ディスクが再び利用可能になると、レプリカは、有効な状態3711または無効な状態3705に戻ることが可能である。
破棄された状態3707は、保護されたグループを保護することをもはや所望しないことをユーザが示したことに応答して達せられる。レプリカは、他の任意の状態から破棄された状態3707に遷移することも可能である。例えば、レプリカが無効な状態3705にある場合、ユーザは、レプリカ上にコピーされた保護されたオブジェクトを保護することをもはや所望しないことを示すことができ、レプリカは、破棄された状態3707に遷移させられる。レプリカを破棄された状態にすることにより、レプリカ上にコピーされた、保護されたオブジェクトを保護することをユーザが終えたことがデータ保護システムに対して示され、ハードディスクなどの物理的媒体は、空き媒体プールに戻されることが可能となり、他の保護されたグループに割り当てられることが可能となる。
本発明の実施形態では、レプリカ上にコピーされた保護されたオブジェクトの保護を続けることをもはや所望しないことをユーザが示した場合、レプリカは、停止状態3709に遷移し、レプリカ、およびレプリカの一時バージョンが、有限期間にわたって保持される。情報がもはや保護されないと示された後、その情報を保持することにより、ユーザが保護を停止した時点まで、その情報を回復する能力が、ユーザに与えられる。
図38は、本発明の実施形態による、前回のインテント変換ルーチン中に生じた中断の後に、インテント変換ルーチンを再スタートするための再スタートルーチンの流れ図を示す。再スタートルーチン3800は、ブロック3801で開始し、判定ブロック3803で、ルーチンは、保護されたグループが、現在、インテント変換中であるかどうかを判定する。判定ブロック3803で、保護されたグループがインテント変換中であったと判定された場合、判定ブロック3805で、全部のリソースが、インテント変換中の保護されたグループに割り当てられていたかどうかの判定が行われる。判定ブロック3805で、全部のリソースは割り当てられていなかったと判定された場合、再スタートより前に割り当てられていたあらゆるリソースは、ブロック3806で示されるとおり、割り振り解除される。前に割り当てられていたリソースの割り振り解除の後、判定ブロック3807で、インテント変換中の保護されたグループが、新たな保護されたグループであったかどうかが判定される。判定ブロック3807で、保護されたグループが新たな保護されたグループではなかったと判定された場合、ブロック3808で、ルーチンは、既存の保護されたグループに追加されていた新たなオブジェクトを保留状態に戻す。詳細には、新たなオブジェクトは、ユーザによって保護されておらず、ユーザアクション待ちの状態に戻る。
ブロック3809で、既存の保護されたグループに、変換中ではないというマークが付けられ、ブロック3817で、ルーチンが完了する。既存のグループを変換中ではない状態に戻し、新たなオブジェクトを保留状態に戻すことにより、データ保護システムは、試みられた変換より前の状態に戻される。詳細には、新たなオブジェクトは、既存の保護されたグループに再び追加されなければならず、既存の保護されたグループのオブジェクトは、インテント変換ルーチンにおける最初の試行より前に保護されていたとおりに、保護され続ける。
判定ブロック3807を再び参照して、中断が生じた時点でインテント変換中であった保護されたグループが、新たな保護されたグループであったと判定された場合、ブロック3811で、新たな保護されたグループのすべての保護されたオブジェクトが、保留状態(すなわち、ユーザによって保護されておらず、ユーザアクション待ちである)に戻され、ルーチンは、ブロック3817で完了する。オブジェクトを保留状態に戻すことに加えて、保護されたグループは、グループ内に保護されたオブジェクトが存在しないので、削除されることも可能である。
判定ブロック3805を再び参照すると、中断に先立って全部のリソースが割り当てられていたと判定された場合、ブロック3813で、試みられたインテント変換ルーチンによって生成された最後のチェックポイントが明らかにされる。前述したとおり、チェックポイントは、インテント変換ルーチンの中で2つの異なるポイントで生成される。詳細には、チェックポイントは、リソースが割り当てられた後に生成され、保護プランが作成された、または更新された後、および準備プランが作成された後に再び生成される。ブロック3813で最後のチェックポイントが明らかにされると、インテント変換ルーチンは、ブロック3815で示すとおり、明らかにされた最後のチェックポイントから再スタートされ、プロセスは、ブロック3817で完了する。
格納ロケーションにおいて物理的オブジェクトを保護することができるいくつかの方法が存在する。例えば、レプリカが、サーバなどのコンピューティングデバイス上に保持されること、アーカイブコピーが、テープ、または他の取り外し可能な媒体などの物理的媒体上に格納されることなどが可能である。ユーザによって所望される保護のタイプは、前述したとおり、インテントトランスレータによって一組のプランに変換される、保護インテントの一部、または高レベルの目標として与えられる。テープ上、または他の取り外し可能な媒体上へのデータのアーカイブの場合、データ保護は、特定の時点における保護されたグループのデータの表現、またはある時点との関係におけるその表現の変更を、1つまたは複数の物理的媒体を介して含む、「データセット」を作成することによって機能する。データセットは、1つまたは複数の保護されたオブジェクトに関連する1つまたは複数のアーカイブパスの結果である。さらに、各データセットは、1つまたは複数の回復ソースを含むことが可能である。というのは、複数の回復ソースが、回復に寄与することが可能だからである。複数のデータセットが、回復に寄与するのに必要である可能性もある。
媒体が管理される1次オブジェクトである他のバックアップアプリケーションとは異なり、本発明の実施形態によれば、媒体自体ではなく、データセット、および媒体とのデータセットの関連が管理される。
アーカイブは、長期間(数週間、数カ月、または数年間程度の)にわたってデータを保持するように設計される。アーカイブされた媒体は、通常、オフサイトに保持されて、地震または火災などの、作成ロケーション全体に影響を与える災害から保護される。アーカイブされた媒体は、サーバまたはディスクの損失、またはユーザエラーを含む、より小規模な停止(outage)からの回復のために、オンサイトにも保持されることが可能である。さらに、レプリケーションとアーカイブをともに利用する諸実施形態の場合、アーカイブされた媒体は、レプリカとともに格納ロケーションに、作成ロケーションに、または別個のロケーションに保持されることが可能である。
図39は、本発明の実施形態による、データをアーカイブするためのプランを生成するためのアーカイブ保護プラン作成ルーチンを示す。アーカイブ保護プラン作成ルーチン3900は、ブロック3901で開始し、ブロック3903で、ルーチンは、データ保護種類を受け取る。データ保護種類は、ユーザが、データをオンサイトでアーカイブすることを所望するか、オフサイトでアーカイブすることを所望するか、またはオンサイトとオフサイトの両方でアーカイブすることを所望するかについて、ユーザによって明らかにされる。データ保護種類を受け取ることに加え、ブロック3905で、ルーチンは、データ保護期間も受け取る。データ保護の期間は、保護された情報をどれだけ過去に遡って回復できることを所望するかについてユーザによって与えられる、高レベルのインテントである。これらのインテントは、ユーザが何を回復できることを所望するかについての目標として表明されることが可能である。
例えば、「過去7年間までのデータを回復できることを私は所望する」というインテントを与えることは、7年前に作成ロケーションに存在していた情報に関するデータをユーザが回復できることを可能にするアーカイブプランになる。データ保護期間は、数年間、数カ月間、数週間、または数日間であることが可能である。ブロック3907で示すとおり、アーカイブ保護プラン作成ルーチン3900は、データをアーカイブするアクションがいつ行われることをユーザが所望するかなどの、スケジュール設定インテントも受け取る。代替の実施形態では、データ保護フォーマットも受け取られることが可能である。データ保護フォーマットには、完全バックアップ、差分バックアップ、および増分バックアップが含まれるが、以上には限定されない。本明細書で使用する完全バックアップとは、すべての保護されたオブジェクトが格納ロケーションにコピーされるバックアップである。本明細書で使用する差分バックアップとは、前回の完全バックアップ以来、変更されている保護されたオブジェクトが格納ロケーションにコピーされるバックアップである。本明細書で使用する増分バックアップとは、何らかの前回のバックアップ(完全、差分、または増分)以来、変更されている保護されたオブジェクトだけがコピーされるバックアップである。本明細書の説明では、差分バックアップおよび増分バックアップは、一般に、「部分バックアップ」と呼ばれ、「部分バックアップ」によりどちらも表されるものとする。また、ユーザは、アーカイブが、作成ロケーションにおける元のデータから作成されるべきか、あるいはアーカイブが、格納ロケーションにおけるコピーから作成されるべきかを指定することもできる。
データ保護種類およびデータ保護期間に基づき、アーカイブ保護プラン作成ルーチン3900は、ユーザによって指定された高レベルの要件を満たす既定のアーカイブスキームを特定する。実際の実施形態では、データをアーカイブするための4つの異なるタイプのスキームが存在する。曽祖父、祖父、父、息子(GGFS)と呼ばれる第1のスキームは、オンサイトで4週間、保持され、オフサイトで数年間、コピーが保持される毎年の完全バックアップ、オンサイトで4週間、保持され、オフサイトで1年間、コピーが保持される毎月の完全バックアップ、オンサイトで4週間、保持され、オフサイトで4週間、コピーが保持される毎週の完全バックアップ、およびオンサイトで2週間、保持される毎日の差分バックアップを提供する。代替の実施形態では、オンサイトコピーだけ、またはオフサイトコピーだけが、ブロック3903で明らかにされた保護種類に依存して保持されることが可能である。別の実施形態では、オンサイトコピー自体が、ブロック3903で明らかにされた保護種類に基づき、ある期間の後、オフサイトに転送されて、保持されることが可能である。別のスキームは、本明細書で、祖父、父親、息子(GFS)スキームと呼ばれる。GFSスキームは、オンサイトで4週間、保持され、オフサイトで1年間、コピーが保持される毎月の完全バックアップ、オンサイトで4週間、保持され、オフサイトで4週間、コピーが保持される毎週の完全バックアップ、およびオンサイトで2週間、保持される毎日の差分バックアップを提供する。
別のアーカイブスキームは、父親、息子(FS)スキームと呼ばれる。FSスキームは、オンサイトで4週間、保持され、オフサイトで4週間、コピーが保持される毎週の完全バックアップ、およびオンサイトで2週間、保持される毎日の差分バックアップを提供する。本明細書で述べる別のアーカイブスキームは、息子(S)スキームである。Sスキームは、オンサイトで4週間、保持され、オフサイトで1週間、コピーが保持される毎日の完全バックアップを提供する。最後に、通常の保護スキームのほかに行われるバックアップを提供する臨時ルーチンも利用可能である。このルーチンは、オンサイトまたはオフサイトに保持される、有効期限を有さない完全バックアップであることが可能である。
既定のアーカイブスキームは、ユーザによって任意のレベルで変更されることが可能であり、追加/代替の既定のアーカイブスキームも提示されることが可能であることが、当業者には理解されよう。例えば、種類(オンサイト、オフサイト)、期間(月、年)、およびフォーマット(完全、差分、増分)が変更されることが可能である。さらに、ユーザは、アーカイブスキームに関するスケジュール設定コントロールを指定することもできる。例えば、ユーザは、スキームが開始されるべき曜日、アーカイブが生成されるべき時刻、スキームが企業カレンダで運用されるべきか、月々のカレンダで運用されるべきかなどを指定することもできる。
図39を再び参照すると、既定のアーカイブスキームがユーザに提供され、ユーザは、提供されたスキームの任意の部分を取り消す能力を与えられる。判定ブロック3911で、特定されたアーカイブスキームに対する何らかの取り消しをユーザが提供したかどうかの判定が行われる。判定ブロック3911で、ユーザが取り消しを提供したと判定された場合、ブロック3913で、アーカイブスキームは、それらの取り消しを含むように変更される。取り消しは、バックアップスキームの任意の部分に関して提供されることが可能であり、範囲が様々であることが可能である。例えば、取り消しには、バックアップフォーマット(完全、差分、増分)、保持されるべきオンサイトコピーの数、保持されるべきオフサイトコピーの数、オフサイトコピーの保持期間、Sレベルを無効にするかどうか、バックアップによってもたらされたデータセットが検証されるべきか、またいつ検証されるべきか、アーカイブが作成ロケーションにおいて行われるべきか、格納ロケーションにおいて行われるべきか、または別の場所で行われるべきか、開始の曜日、稼動日(working days)数などが含まれることが可能である。Sレベルを無効にすることは、様々な理由で好ましい可能性がある。例えば、ユーザが、アーカイブとレプリケーションをともに実施した場合、ユーザは、毎日のアーカイブ保護(Sレベル)を省き、すべてのオンサイト回復要件に対処するのにレプリケーションに依拠することを決めることができる。
ブロック3909で特定されたアーカイブスキームが、ブロック3913で示すとおり、受け入れられるか、または変更されると、ブロック3915で、アーカイブプラン作成ルーチン3900が、アーカイブによってデータを保護するのに必要なプランを生成する。前述したとおり、データを保護するのに必要なプランには、リソースプラン、準備プラン、および保護プランが含まれることが可能である。最後に、ブロック3915で示すとおりプランが生成された後、アーカイブ保護プラン作成ルーチン3900は、ブロック3917で完了する。
図40は、本発明の実施形態による、アーカイブスキームを生成するために使用されることが可能な異なる世代の実施例を示すテーブルである。テーブル4000は、週5日(例えば、月曜〜金曜)行われる1回のオンサイトコピーを2週間、保持し、オフサイトコピーは保持しない増分バックアップモードを有する息子世代4001を明らかにする。父親世代4003は、4週間、保持される1回のオンサイトコピーを伴う完全バックアップモードを維持し、完全バックアップは、完全バックアップが実行されない1週間(例えば、各月の最終土曜日)を例外として、毎週1回(例えば、土曜日)実行される。同様に、父親世代4003は、1回のオフサイトコピーを4週間、保持する。祖父世代4005は、オンサイトコピーが行われない毎年1カ月(例えば、年の最終土曜日)を例外として、毎月1回(例えば、各月の最終土曜日)生成される1回のオンサイトコピーを4週間、保持する完全バックアップモードを有する。さらに、祖父世代4005は、1回のオフサイトコピーを12カ月間、保持する。最後に、曽祖父世代4007は、4週間、保持され、毎年1回(例えば、年の最終土曜日)生成される1回のオンサイトコピーを保持する完全バックアップモードを有する。さらに、曽祖父世代4007は、1回のオフサイトコピーを7年間、保持する。
企業カレンダによるスケジュール設定(月の最終土曜日、年の最終土曜日など)の代替として、スケジュール設定は、フィジカルカレンダに従って達せられることも可能である。例えば、ジョブは、月の最後の日、年の最後の日、月の最初の日などに行われるようにスケジュールされることが可能である。それらの日は、土曜日であっても、土曜日でなくてもよい。当業者には理解されるとおり、任意のタイプのスケジュール設定および/またはカレンダ設定を本発明の諸実施形態で利用することができ、企業カレンダまたはフィジカルカレンダを利用することは、単に実施例として与えられている。スケジュール設定の別の態様は、ジョブが実行されるべき時期を指定する能力である。ジョブの実行時間に関する時期をスケジュール設定することにより、ジョブが実行されることが可能な特定の時間帯を明らかにする能力がユーザに与えられる。さらに、データ保護システムは、ジョブが指定された時刻までに完了しない可能性があることを保護システムが確認した場合、事前の警告を提供することができる。代替として、ジョブが、実行時間のスケジュールされた期間中に完了しない場合、そのジョブが、自動的に終了させられ、場合により、再スケジュールされることができる。
当業者には理解されるとおり、息子4001、父親4003、祖父4005、および曽祖父4007などの世代は、図40に関連して説明した保護プランの様々なバリエーションを利用するように変更することもできる。唯一の要件は、親が、子と等しいか、または子の上位集合であることである。例えば、父親世代が完全バックアップである場合、息子世代は、完全バックアップ、差分バックアップ、または増分バックアップであることが可能である。さらに、オンサイトまたはオフサイトで保持されるコピーの数は、0から、ユーザによって所望される任意の数までの任意の組合せであることが可能である。保持時間、ならびにコピーが行われる頻度も、ユーザの所望に応じて調整されることが可能である。
データの長期保護のためのアーカイブスキームを作成することに加えて、データ保護システムは、媒体の継続的な割り当て、交替、保管(オフサイト格納)、および撤収(retirement)も提供する。このため、本発明の実施形態によれば、それぞれの保護されたグループには、媒体プールが関連付けられている。媒体プールは、媒体のコンテナであるとともに、媒体の割り当ておよびリサイクルを管理するために様々なインテントが配置されるオブジェクトでもある。図41に関連して以下により詳細に説明するとおり、並置(collocation)インテントなどの、媒体割り当てを管理するための、いくつかのタイプのインテントが存在する。本発明の実施形態に従って使用されることが可能な並置インテントの例が、ジョブ並置インテント、息子並置インテント、および父親/息子並置インテントである。ジョブ並置インテントは、同一のジョブ内のタスクに関して、同一の媒体を使用しようと試みる。これにより、ジョブが複数のタスクを有する場合、媒体のマウント/マウント解除の回数が少なくなり、それらのタスクからのデータが、単一の媒体上に収まる。息子の並置インテントにより、GGFSアーカイブスキーム、GFSアーカイブスキーム、FSアーカイブスキーム、またはSアーカイブスキームの息子ジョブに関して、媒体がどのように使用されるかが制御される。息子の並置インテントが指定された場合、サイクル(週サイクルなどの)の最初の息子ジョブは、新たな媒体上で開始されるが、後続のすべての息子は、同一の媒体が利用できないか、または十分なスペースを含まないのではない限り、同一の媒体に追加しようと試みる。父親/息子並置インテントの使用により、毎週の完全バックアップ、ならびに後続の毎日の差分バックアップおよび増分バックアップが、同一の媒体上に格納されるようになる。
図41は、本発明の実施形態による、ジョブ並置インテントおよび息子並置インテントのそれぞれが指定されている場合に、データをアーカイブするために媒体を割り当てるためのフロールーチンである。理解されるとおり、アーカイブのために媒体を割り当てるために、並置インテントの他の組合せを指定することもでき、図41に関連して説明するルーチンは、一実施例に過ぎない。媒体割り当てルーチン4100は、媒体が必要とされる場合に、いつでも実行される。媒体割り当てルーチン4100は、ブロック4101で開始され、判定ブロック4102で、ジョブ並置が指定されているかどうかが判定される。ジョブ並置が指定されていないと判定された場合、媒体割り当てルーチンは、判定ブロック4111に進み、以下に説明するとおり続けられる。しかし、判定ブロック4102で、ジョブ並置が指定されていると判定された場合、判定ブロック4103で、媒体を割り当てようと試みているタスクが、置き換えジョブからであるかどうかの判定が行われる。置き換えジョブは、正常に完了しなかった前回のジョブに置き換わるジョブである。判定ブロック4103で、タスクが置き換えジョブからであると判定された場合、ブロック4105で、ルーチンは、正常に完了しなかった最初のジョブにおいて使用され、割り当てられていたのと同一の物理的媒体を割り当てようと試みる。
しかし、ブロック4103で、タスクが置き換えジョブからではないと判定された場合、判定ブロック4107で、タスクが、ジョブからの最初のタスクであるかどうかの判定が行われる。タスクが、ジョブからの最初のタスクではないと判定された場合、ブロック4109で、媒体割り当てルーチン4100は、同一のジョブの前回のタスクに既に割り当てられていた媒体を割り当てようと試みる。
しかし、判定ブロック4107で、タスクが、ジョブからの最初のタスクであると判定された場合、判定ブロック4111で、保護されているデータセットが、第1の息子データセットであるかどうかの判定が行われる。ブロック4111で、保護されているデータセットが、第1の息子データセットであると判定された場合、判定ブロック4112で、FS並置インテントが指定されているかどうかが判定される。FS並置インテントが指定されている場合、ブロック4113で、媒体割り当てルーチン4100は、同一サイクルの父親データセットによって使用される媒体を割り当てようと試みる。本明細書で説明するサイクルとは、アーカイブセットに関するスケジュールされた時間の長さ(数日間または数週間などの)である。しかし、判定ブロック4112で、FS並置インテントが指定されていないと判定された場合、ルーチンは、以下に説明する判定ブロック4115に進む。
判定ブロック4111で、データセットが、息子データセットではない、またはサイクルの最初の息子ではないと判定された場合、判定ブロック4114で、データセットが、第2以降の息子データセットであるかどうかが判定される。データセットが、第2以降の息子データセットであると判定された場合、判定ブロック4118で、FS並置インテントまたはS並置インテントが指定されているかどうかが判定される。FS並置インテントまたはS並置インテントが指定されている場合、ブロック4116で、媒体割り当てルーチン4100は、同一サイクルの最後の息子データセットによって使用された媒体を割り当てようと試みる。しかし、判定ブロック4118で、FS並置インテントもS並置インテントも指定されていないと判定された場合、ルーチンは、以下に説明するブロック4115に進む。
しかし、判定ブロック4114で、データセットが第2以降の息子データセットではないと判定された場合、判定ブロック4115で、リサイクル可能な媒体が同一世代から利用可能であるかどうかの判定が行われる。例えば、データセットが父親データセットである場合、利用可能な媒体上に含まれる他の父親データセットが存在するかどうかの判定が行われる。判定ブロック4115で、同一世代からの利用できるリサイクル可能な媒体が存在すると判定された場合、ブロック4117で、媒体割り当てルーチン4100は、同一世代から利用できる最も古いリサイクル可能な媒体を選択し、その媒体を割り当てようと試みる。
判定ブロック4115で、同一世代から利用できる媒体が存在しないと判定された場合、または判定ブロック4127で、ブロック4105、4109、4113、4117の試みられた割り当てのいずれかが、正常に完了しなかったと判定された場合、判定ブロック4119で、プールの中に空いている媒体が存在するかどうかの判定が行われる。判定ブロック4119で、プール内に媒体が存在すると判定された場合、ブロック4121で、媒体割り当てルーチン4100は、プールからその空き媒体を獲得し、その媒体が割り当てのために使用される。
最後に、判定ブロック4119で、特定の保護されたグループに関するプール内に、空き媒体がまったく存在しないと判定された場合、媒体割り当てルーチン4100は、ブロック4123で、追加の媒体を獲得しようと試みる。追加の媒体は、保護されたプールに追加の媒体が要求されるとユーザに通知すること、または既存の空き媒体プールにクエリを行うことにより、獲得することができる。空き媒体プールは、別の保護されたグループに関連付けられていない媒体を含む。空き媒体プールの中で空き媒体がまったく用意されていない場合、ユーザは、追加の空き媒体が、格納ロケーションに追加され、空き媒体プールに割り当てられる必要があるという通知を受ける。媒体割り当てルーチン4100は、ブロック4125で示すとおり、追加の媒体が割り当てられた後に完了するか、または追加の媒体が割り当てられることが可能でない場合、失敗する。
図41に関連して説明したインテントに加え、追加のインテントが、媒体プールの活動を制御するのに利用されることが可能である。例えば、媒体プールの中に保持されることが可能な媒体の最大数を指定する最大限度インテントが、ユーザによって指定されることが可能である。最大限度インテントを利用することにより、プールに対する最大限度を超えた媒体の不必要な追加(ユーザによるか、または自動的な)が防止される。同様に、1日最大限度インテントを使用して、24時間中に特定のプールに割り当てられる空き媒体のアイテムの数を制限することができる。最大限度および1日最大限度の利用により、空きプールから特定のプールへの媒体の不必要な割り当て、または偶然の割り当てが防止される。
また、最小閾値インテントも、アーカイブ保護のための媒体割り当てのために指定することができる。最小閾値インテントは、様々な媒体プールへの割り当てのために、空き媒体プールの中で用意されていなければならない媒体の最小限の数を指定する。空き媒体の数が、最小限の量を下回って低下した場合、ユーザは、追加の媒体が格納ロケーションに追加され、空き媒体プールに割り当てられる必要があるという通知を受ける。リサイクル可能な媒体が、再使用される、または再割り当てのために空き媒体プールに解放されるのに先立って、消去される必要があるかどうかを制御する、媒体消去インテントも指定することができる。
作成ロケーションから格納ロケーションへの保護されたオブジェクトのレプリケーションまたはコピーは、各ロケーションにインストールされたエージェントのペアの間で行われる。エージェントのペアのアクションは、データプロテクタによって制御される。例えば、レプリケーションのため、クローン(clone)エージェントが、作成ロケーションにインストールされ、レプリケーションエージェントが、格納ロケーションにインストールされる。クローンエージェントおよびレプリケーションエージェントのアクションは、データプロテクタによって制御される。さらに、データムーバ(mover)が、エージェントのペアの間におけるコンジット(conduit)として作用する。データムーバは、エージェント間の相互認証を確実にし、オプションとして、データ暗号化、データ解読、データ圧縮、またはデータ伸張を実行する。さらに、データムーバは、データ伝送中にデータ保護システムによって消費されるネットワーク帯域幅を制限するスロットル(throttling)フロー制御を含む。
図42は、本発明の実施形態によるデータ保護システムのブロック図を示す。データ保護システム4200は、作成ロケーション4203から格納ロケーション4205へのデータ(保護されたオブジェクト)の転送を管理するためのデータプロテクタ4201を含む。前述したとおり、レプリケーションのため、作成ロケーション4203は、クローンエージェント4207、ならびに作成ロケーション4203から格納ロケーション4205へのデータの流れを制御するためのデータムーバ部4209Aを含む。同様に、格納ロケーション4205は、レプリケーションエージェント4211、ならびに作成ロケーション4203から情報を獲得するためのデータムーバの第2の部分4209Bを含む。作成ロケーション4203、格納ロケーション4205、およびデータプロテクタ4201の間の対話を使用して、作成ロケーション4203から格納ロケーション4205にデータが転送され、データプロテクタ4201との通信によって、そのデータの転送の有効性が検証される。
データは、データムーバ4209Aを介して作成ロケーション4203から通信チャネル4213経由で、データムーバ4209Bを介して格納ロケーション4205に伝送される。データ保護システムは、作成ロケーション4203から格納ロケーション4205へのデータの転送を監視する能力を含み、そのような通信チャネルに障害が生じた場合、中断されたデータ転送を再開する能力を有する。最初からやり直すのではなく、データの転送を再開することができるように、データ転送の状態は、記録がとられ、定期的に保存される必要がある。これは、データプロテクタ4201が、作成ロケーション4203から格納ロケーション4205へのデータの転送を監視することによって達せられる。
データは、通信チャネル4213を介して、データブロックまたはデータレコードの形態で転送される。そのような伝送システムでは、データの一部は、作成ロケーション4203によって保持され、データの一部は、格納ロケーション4205によって保持される。通信チャネルに障害が生じた場合、データ転送は、中断され、伝送状態が同期を失う可能性がある。例えば、作成ロケーション4203が、格納ロケーション4205によって正常に受信されたレコードの数とは異なる数のレコードを伝送している可能性がある。この問題を解決するため、データプロテクタ4201が、データ転送をいつ停止すべきか、またはいつ開始すべきかを作成ロケーション4203および格納ロケーション4205に個々に命令することにより、データ伝送プロセスを監視し、制御する。
データの保護のため、作成ロケーション4203に位置するクローンエージェント4207は、データムーバ4209を介して、格納ロケーション4205に位置するレプリケーションエージェント4211にデータを転送する。このデータは、作成ロケーションに位置する保護されたオブジェクトのレプリカまたはコピーを作成する目的で、通信チャネル4213を介して、データレコードとして伝送される。クローンエージェントおよびレプリケーションエージェントは、データ転送状態をデータプロテクタ4201に、レコードチェックポイントと本明細書で呼ばれる特別なデータブロックとして通信する。レコードチェックポイントは、データプロテクタ4201によって受信され、データベースの中に格納される。さらに、データプロテクタ4201は、命令/コマンドをクローンエージェントおよびレプリケーションエージェントに通信する。
一般に、作成ロケーションにおけるクローンエージェント4207が通信チャネル4213を介して伝送する2つのタイプのデータレコードが存在する。第1のタイプのデータレコードは、作成ロケーションに位置する保護されたオブジェクトに対して行われた変更を表す。第2のタイプのデータレコードは、保護されたオブジェクトのデータについての情報(メタデータ)を含む。メタデータを含むレコードは、データ保護システムによって生成される。以下に説明するとおり、メタデータは、伝送されて、格納ロケーションに格納されるデータのコピーを検証するために使用され、例えば、データのチェックサムであることが可能である。
作成ロケーション4203からのデータ転送の状態は、クローンエージェント(図43〜図47)の変更ログからレプリケーションエージェント(図43〜図47)のスピル(spill)ログにデータレコードストリームが伝送される際に、データレコードストリームの中に特別なデータマーカ(レコードチェックポイント)を挿入することにより、クローンエージェント4207から通信される。実際の実施形態では、レコードチェックポイントは、データストリームが、作成ロケーションのデータムーバ4209Aによって伝送される際に、データストリームの終端に付加される。代替の実施形態では、レコードチェックポイントは、変更ログに追加され、データストリームとともにデータの項目として伝送されることも可能である。格納ロケーションのデータムーバ4209Bによってデータストリームが受信されると、データおよびレコードチェックポイントは、スピルログの中に格納される。
レプリケーションエージェント4211は、データストリームの中でそのようなレコードチェックポイントを見つけると、それらのレコードチェックポイントをデータプロテクタ4201に転送する。加えて、レプリケーションエージェントは、独自のレコードチェックポイントを生成し、それらのチェックポイントもデータプロテクタ4201に転送する。クローンエージェント4207とレプリケーションエージェント4211の両方によって生成されたレコードチェックポイントの中に含まれる情報が、データプロテクタによって、動作を開始する、または停止するコマンドを送信する際に使用される。
データプロテクタ4201は、レコードチェックポイントのいずれかを受信すると、そのチェックポイントをデータベースの中に自動的に格納し、データ保護システムが、通信障害、プロセス、およびシステム再スタートに対して回復力があるようにする。
本発明の実際の実施形態では、クローンエージェント4207は、本明細書で「クラスCチェックポイント」および「クラスAチェックポイント」と呼ぶ、2つのタイプのチェックポイントを生成する。クラスCチェックポイントは、クローンエージェント4207からレプリケーションエージェント4211に送信されるデータレコードの状態を表す。クラスAチェックポイントは、メタデータレコードを生成するプロセス全体の中における位置を表わす。
レプリケーションエージェント4211は、本明細書で「クラスBチェックポイント」と呼ぶ、1つのタイプのレコードチェックポイントを生成する。クラスBチェックポイントは、レプリケーションエージェント4211によって受信され、適用されたデータレコードを明らかにする。
クラスCチェックポイントおよびクラスBチェックポイントは、データチェックポイントである。クラスCチェックポイントおよびクラスBチェックポイントは、クローンエージェント4207からレプリケーションエージェント4211へのデータの伝送を再開するため、およびレプリケーションエージェント4211上で受信されたデータレコードの適用を再開するために使用される。クラスAチェックポイントは、メタデータチェックポイントである。クラスAチェックポイントは、メタデータを生成するクローンエージェント上の長期実行(long−runnning)プロセスを監視するために使用される。クラスAチェックポイントを生成することにより、データ伝送が中断された場合に、そのような長期実行プロセスのために繰り返される作業の量が削減される。
より詳細には、クラスCチェックポイントは、クローンエージェント4207システム上、およびレプリケーションエージェント4211システム上のデータレコードストリーム内の位置に対するポインタを含む。クラスCチェックポイントは、クローンエージェント4207によって生成され、レプリケーションエージェント4211に転送される。レプリケーションエージェント4211は、エージェント4211のスピルログの中の最後に受信されたレコードのポインタで、クラスCチェックポイントを更新する。
クラスBチェックポイントは、格納ロケーション4205においてレプリケーションエージェント4211によって最後に適用されたデータレコードに対するポインタを含む。データプロテクタ4201が、クラスBチェックポイントを受信すると、それにより、クラスBチェックポイントに先立つすべてのデータブロックが、格納ロケーションに格納されたデータのレプリカに適用済みであることがデータプロテクタ4201に明らかにされる。
クラスAチェックポイントは、メタデータを生成する間にクローンエージェント4207によって処理された、保護されたデータの量を示す。レプリケーションエージェントによってクラスAチェックポイントが受信されると、レプリケーションエージェントは、必要な場合、独自のメタデータを追加し、クラスAチェックポイントをデータプロテクタに転送する。データプロテクタが、クラスAチェックポイントを受信すると、これは、チェックポイントの中に含まれる位置まで、メタデータ生成が完了していることを意味する。ある実施形態では、クラスAチェックポイントは、順次に参照されて(例えば、順次に番号が付けられて)、クラスAチェックポイントが抜かされているかどうかをデータ保護システムが判定することができるようにする。クラスAチェックポイントが抜かされている場合、検証は、差分リストの要素が欠落している可能性が存在するため、再スタートされる。以下に説明するとおり、差分リストは、レプリカにおいて一致しない保護されたオブジェクトを明らかにする情報を含む。それらのオブジェクトは、作成ロケーションにおいて生成されたメタデータを格納ロケーションにおいて生成されたメタデータと比較することによって明らかにされる。
前述した3つのチェックポイントタイプに加えて、データプロテクタ4201は、特別なマーカトークンを生成し、データレコードストリームの中に挿入されるように、作成ロケーション4203に位置するクローンエージェントにそのトークンを送信することができる。このトークンは、次に、クローンエージェント4207によって、通信チャネル4213を介して、レプリケーションエージェント4211に伝送される。受信すると、レプリケーションエージェント4211は、トークンをデータプロテクタ4201に送り返す。マーカトークンの目的は、メタデータ生成を再開するのに先立って、あらゆるデータ通信伝送からすべてのクラスAチェックポイントをクリアすることである。すべてのクラスAチェックポイントにシステムの中を通らせることにより、クローンエージェント4207によって既に生成されていたメタデータが伝送された後、初めて、メタデータ生成が再開される。そのようにすることの利点は、データレコード伝送ログが、オーバーフローすることが防止され(メタデータ生成プロセスが、クローンエージェント4207が送信することができるよりも、はるかに速い場合)、データプロテクタ4201が、マーカトークンを受信するのに先立って、すべてのメタデータを確認するため、同一のメタデータが複数回、生成されることが回避されることである。
図43〜図44は、本発明の実施形態による、データ保護システムによって実行されるデータ転送監視ルーチンの流れ図を示す。前述したとおり、作成ロケーション4303と格納ロケーション4305の間のデータ転送は、ユーザまたは別の個人が、保護されたデータに変更を行ったことに応答して、またはスケジュールされたジョブ実行時刻に開始される。ユーザによって行われた、保護されたデータに対する変更に応答して、作成ロケーション4303は、保護されたデータに対する変更のレコードを変更ログ4307に記録する。例えば、R1、R2、R3、R4、R5、およびR6はそれぞれ、作成ロケーション4303におけるクローンエージェントによって変更ログ4307に記録された変更レコードである。定期的に、変更ログ4307の中に含まれるレコードが、データムーバによって変更ログ4307からプルされ、一括されて、格納ロケーション4305に伝送される。さらに、クローンエージェントは、伝送される最後のレコードの変更ログ4307の中の位置に対するポインタを含むクラスCチェックポイントを生成し、伝送バッチの終端にそのクラスCチェックポイントを付加する。例えば、クローンエージェントは、変更ログ4307からレコードR1、R2、およびR3をプルして、それらのレコードを一括し、そのバッチを作成ロケーション4305に伝送することができる。このケースでは、変更ログ位置4である、R3の変更ログ4307の中における位置に対するポインタを含むクラスCチェックポイント4311が生成される。クラスCチェックポイントは、作成ロケーション4305に伝送されるバッチの終端に付加される。
前述の実施例は、クラスCチェックポイントが生成され、データのすべての伝送バッチとともに伝送されることが可能であることを示しているが、代替の実施形態では、クラスCチェックポイントは、伝送されるデータの量に基づいて生成されることも可能である。そのような実施形態では、クラスCチェックポイントは、データの量が、事前定義された最小伝送サイズを超えた場合にだけ生成されることが可能である。さらに別の実施形態では、クラスCチェックポイントの生成および伝送は、前のクラスCチェックポイントが生成され、伝送されて以来の時間に依存することも可能である。さらに、クラスCチェックポイントは、所定の回数のデータ伝送において生成され、伝送されることも可能である。例えば、クラスCチェックポイントは、5回のデータ伝送ごとに生成され、伝送されることが可能である。さらに、チェックポイントを生成するため、および伝送するための方法の任意の組合せを、本発明の諸実施形態で利用することができる。例えば、クラスCチェックポイントは、データが最小サイズを超えた場合、または5回の伝送ごとに生成されることが可能である。
格納ロケーション4305に位置するレプリケーションエージェントは、データムーバを介して、伝送されたレコード、およびクラスCチェックポイントを受信し、その伝送されたレコード、およびクラスCチェックポイントをスピルログ4313の中に格納する。さらに、クラスCチェックポイント4311を受信すると、格納ロケーション4305のレプリケーションエージェントは、クラスCチェックポイントのスピルログ4313の中における位置を明らかにする第2のポインタをクラスCチェックポイントに追加する。このケースでは、クラスCチェックポイント4311に追加されるポインタは、スピルログ位置106に対するポインタである。このため、クラスCチェックポイント4315は、変更ログ4307の最後の伝送位置の場所と、スピルログ4313の中のクラスCチェックポイントの場所の両方に対するポインタを含む。クラスCチェックポイント4315は、次に、レプリケーションエージェントによってデータプロテクタ4301に転送される。データプロテクタ4301は、データベースの中にクラスCチェックポイントを記録する。代替の実施形態では、クラスCチェックポイントは、スピルログの中に格納されず、代りに、レプリケーションエージェントが、バッチとともに伝送された最後の変更レコードを明らかにするポインタをクラスCチェックポイントに追加し、そのクラスCチェックポイントをデータプロテクタ4301に転送する。
次に、図44を参照すると、データプロテクタ4301が、格納ロケーション4305からクラスCチェックポイントを受信すると、そのクラスCチェックポイントをデータプロテクタのデータベースの中に格納し、クラスCチェックポイント確認を作成ロケーション4303に伝送する。作成ロケーション4303によるクラスCチェックポイント確認の受信により、クラスCチェックポイントに先立って伝送されたすべてのレコードが、格納ロケーション4305によって受信されていること、および、それらの伝送済みのレコードを変更ログ4307から削除する(purge)ことができることが、作成ロケーションに明らかにされる。
レコードを受信し、それらのレコードをスピルログ4313の中に格納することに加えて、格納ロケーション4305に位置するレプリケーションエージェントは、格納ロケーション4305に位置するデータのレプリカに受信されたレコードを適用することを始める。所定のポイントで、レプリケーションエージェントは、レプリケーションデータ4317に適用された最後のレコードのスピルログ4313内における位置に対するポインタを含むクラスBチェックポイントを生成する。所定のポイントは、例えば、処理されたデータの量、最後のクラスBチェックポイントが生成されてからの時間、または以上2つの組合せに基づくことが可能であるが、以上には限定されない。例えば、レプリケーションエージェントは、スピルログ4313位置103からのR1、スピルログ4313位置104からのR2を適用し、レプリカデータ4317にR2を適用した後、スピルログ位置104に対する参照を含むクラスBチェックポイントを生成することができる。生成されたクラスBチェックポイント4319は、格納ロケーション4305上のレプリケーションエージェントによって、データプロテクタ4301に転送される。データプロテクタ4301は、そのクラスBチェックポイントをデータベースの中に格納して、データ転送の中断が生じた場合に、そのレコードが使用されることを可能にする。
さらに、格納ロケーション4305からのクラスBチェックポイントの受信に応答して、データプロテクタ4301は、そのクラスBチェックポイントをデータプロテクタ4301のデータベースの中に格納し、クラスBチェックポイント確認を格納ロケーション4305に送り返す。格納ロケーション4305によるクラスBチェックポイント確認の受信により、データプロテクタが、レプリカデータ4317に適用されたレコードの最後の位置を記録したこと、およびそれらのレコードをスピルログ4313から削除することができることが、格納ロケーション4305に明らかにされる。
レコードを転送し、それらのレコードを格納ロケーションにおけるレプリカデータに適用するプロセス、およびチェックポイントの循環(cycling)により、作成ロケーション4303から格納ロケーション4305へのレコードの伝送の正確さが確認され、障害の結果としてデータ伝送を再スタートするためにデータプロテクタ4301が使用することができる情報が、データプロテクタ4301に提供される。
図45は、本発明の実施形態による、作成ロケーション4303から格納ロケーション4305への変更レコードの伝送を再スタートするデータ保護システムの流れ図を示す。説明のために、システムは、作成ロケーション4303から格納ロケーション4305にデータを転送しており、何らかの理由で、その伝送が中断され、システムが伝送を再開するものと想定する。
データの伝送を再開するために、データプロテクタ4301は、データプロテクタ4301のデータベース上に格納された、最後に記録されたクラスCチェックポイントおよびクラスBチェックポイントを参照して、格納ロケーション4303および格納ロケーション4305に関する再スタート位置を明らかにする。例えば、B2という記録されたクラスBチェックポイントを参照して、データプロテクタ4301は、スピルログ4313から最後のレコードの適用が行われたスピルログ4313の中の位置は、位置107であったと判定する。このため、データプロテクタ4301は、スピルログ位置108からレコードを適用することを開始し、スピルログ位置111の後(すなわち、スピルログ位置112)に、次に受信されたデータレコードを格納するように、格納ロケーション4305のレプリケーションエージェントに命令する、格納ロケーション4305に伝送されるコマンドを生成する。レプリケーションエージェントが受信されたレコード(112)を格納することを開始する位置(112)は、データプロテクタ4301のデータベースの中に記録された最後のクラスCチェックポイントを参照することによって明らかにされる。この実施例では、データプロテクタ4301は、C3というクラスCチェックポイントを参照して、格納ロケーション4305によって受信された最後の既知のクラスCチェックポイントが、スピルログ位置111に位置することを明らかにする。
同様に、データプロテクタ4301は、C3という最後に受信されたクラスCチェックポイントを参照して、格納ロケーション4305によって正常に受信されたとデータプロテクタ4301に分かる、作成ロケーション4303によって伝送された最後のレコードは、変更ログ位置9に位置していたことを明らかにする。このため、データプロテクタ4301は、レコード10から、格納ロケーション4305にレコードを送信することを開始するように、作成ロケーション4303に位置するクローンエージェントに命令する、作成ロケーション4303に伝送されるコマンドを生成する。
全体を通して、データレコードの伝送を効率的に再開するため、データプロテクタ4301は、3つのコマンドを生成し、送信する。変更ログ4307の中の伝送開始ポイントを明らかにするレコード送信開始コマンドが生成され、作成ロケーション4303に伝送される。適用が再開されるべきスピルログ4313内の位置を明らかにするレコード適用開始コマンドが、格納ロケーション4305に送信される。新たに受信されたレコードがどこに格納されるべきかについて、スピルログ4313内の位置を明らかにする第3のコマンドである受信レコード格納開始コマンドも、生成され、格納ロケーション4305に送信される。
クラスBやクラスCなどのチェックポイントを参照すること、ならびにレコード適用開始コマンド、レコード送信開始コマンド、および受信レコード格納開始コマンドを生成することにより、データ保護システムが、最初からデータの伝送を開始する必要なしに、およびいずれのデータも失うことなしに、データ転送内の既知のチェックポイントから再スタートすることで、自らを再同期することが可能になる。
前述したとおり、作成ロケーション4303から格納ロケーション4305への変更レコードの伝送を監視することに加えて、データ保護システムは、格納ロケーション4305に位置するレプリカデータ4317の整合性を検証する能力も有する。本発明の実際の実施形態では、データの検証は、格納ロケーション4305におけるレコードと比較される検証レコードを作成ロケーション4303から伝送することによって達せられる。
図46および図47は、本発明の実施形態によるレプリカ4317を検証するための検証ルーチンの流れ図を示す。検証ルーチンを開始するために、データプロテクタ4301は、検証を開始するように作成ロケーション4303に発行されるコマンドを生成する。検証開始コマンドを受信したことに応答して、作成ロケーション4303におけるクローンエージェントは、作成ロケーション4303に位置するそれぞれの保護されたオブジェクトに関するメタデータを生成することを開始する。このメタデータは、レコードとして変更ログ4307に追加され、変更レコードと一緒に伝送される。レコードおよびメタデータは、前述したとおり、変更ログ4307から格納ロケーション4305に伝送される。変更レコードを受信すると、格納ロケーション4305に位置するレプリケーションエージェントは、前述したとおり、そのレコードをレプリカデータ4317に適用する。V1などのメタデータレコードを適用すると、格納ロケーション4305に位置するレプリケーションエージェントは、レプリカデータ4317の同一部分に関するメタデータを計算する。メタデータのその2つの項目が比較されて、レプリカデータのその部分の有効性および完全性が確認される。メタデータが一致しなかった場合、レプリケーションエージェントは、レプリカ4317において一致しない保護されたオブジェクトを明らかにする差分リストを生成する。
当業者には理解されるとおり、メタデータを利用して、レプリカデータを保護されたデータと比較することは、比較されるべきデータに関するチェックサムを生成すること、および/またはデータに関する最後の変更時刻などの、他の任意の識別する印(identifying indicia)を比較することにより、達することができる。
V1やV2などのメタデータレコードのセットが変更ログ4307の中に含められた後の所定の時点で、作成ロケーション4303に位置するクローンエージェントが、変更ログ4307にレコードとして追加されるクラスAチェックポイントを生成する。A1などのクラスAチェックポイントは、変更レコードおよびメタデータレコードとともに、通信チャネルを介して格納ロケーション4305に伝送される。
格納ロケーション4305におけるレプリケーションエージェントによってクラスAチェックポイントが受信されると、レプリケーションエージェントは、そのクラスAチェックポイント、ならびにメタデータを比較したことの結果として生成された差分リストをデータプロテクタ4301に転送する。図46に示すとおり、クラスAチェックポイントは、削除されるまで、スピルログの中に保持されることが可能である。代替として、クラスAチェックポイントが受信されると、クラスAチェックポイントは、差分リストとともに転送され、スピルログの中に格納されないことも可能である。
データプロテクタ4301は、クラスAチェックポイントおよび差分リストを受信し、そのクラスAチェックポイントおよび差分リストをデータベースの中に記録する。差分リストは、作成ロケーションに転送され、明らかにされた、保護されたオブジェクトは、再レプリケートされて、格納ロケーションに再伝送される。明らかにされた、保護されたオブジェクトの再レプリケーションおよび再伝送は、差分リストを受信したことに応答して行われることも、何らかの後の時点で(例えば、レプリケーションの検証が完了した後に)行われるようにスケジュールされることも可能である。
クラスAチェックポイントは、自らの内部に、特定の保護されたオブジェクトの識別を含み、そのオブジェクトまで、メタデータ計算が済んでいる。例えば、メタデータが、SERVER1におけるC:\上に位置する保護されたオブジェクトに関して生成されており、メタデータが生成された最後の保護されたオブジェクトが、SERVER1上のC:\file50であった場合、クラスAチェックポイントは、SERVER1上のC:\file50への参照を含む。この情報は、データプロテクタ4301によってデータベースの中に格納されて、データ伝送の中断が生じた場合、データプロテクタ4301が、検証を再スタートする参照ポイントを有するようにする。
図47は、本発明の実施形態による、特定の時点で検証が中断された場合に、検証を再スタートするためにデータ保護システムによって生成される検証ルーチンの再スタートを説明する流れ図を示す。以下の説明では、データ伝送がまず中断され、次に再開されるものと想定する。データ伝送を再開する際、データプロテクタ4301は、図47にApとして示すマーカトークンを生成し、送信する。マーカトークンは、システムからすべてのメタデータおよびクラスAチェックポイントがクリアされてから、データの検証が再開されるように、システムの中を循環させられる、データプロテクタ4301によって生成される固有のトークンである。
マーカトークンApは、データプロテクタ4301から作成ロケーション4303に伝送され、作成ロケーション4303に位置するクローンエージェントによって変更ログ4307の中に含められる。作成ロケーション4303によってマーカトークンApが受信されると、クローンエージェントは、マーカトークンApを変更ログ4307に追加し、その後、マーカトークンApを格納ロケーション4305に伝送する。格納ロケーション4305によってマーカトークンApが受信されると、格納ロケーション4305に位置するレプリケーションエージェントは、マーカトークンApをデータプロテクタ4301に戻すように転送する。
データプロテクタ4301によってマーカトークンApが受信されると、データプロテクタ4301は、前に生成されているシステムに関するすべてのメタデータが、作成ロケーション4303から格納ロケーション4305に伝送されていることを認識する。データプロテクタ4301は、クラスAチェックポイントのあるデータベースを参照して、伝送された最後のクラスAチェックポイントを明らかにし、作成ロケーションがデータの検証を再スタートすべき位置を含む再スタートコマンドを準備する。データプロテクタ4301は、検証再スタートコマンド、ならびにデータの検証が再開されるべきポイントの識別を作成ロケーション4303に伝送する。
例えば、図47を参照すると、データプロテクタ4301は、データプロテクタ4301のデータベースから、前回の検証ルーチン中にメタデータが計算された最後の保護されたオブジェクトは、C:\file 1003 ON SERVER1であったことを明らかにする。このため、データプロテクタ4301は、SERVER1におけるボリュームC:上のfile1003までのすべてのファイルに関して、メタデータが生成され、伝送されていることが分かり、このため、C:\file 1003 ON SERVER1後のメタデータの生成を再スタートするように作成ロケーション4303に命令する検証再スタートコマンドを生成する。
図48Aは、本発明の実施形態による、作成ロケーションによって受信されるコマンドを処理するためのコマンド処理ルーチンの流れ図である。コマンド処理ルーチン4800は、ブロック4801で開始し、判定ブロック4803で、受信されたコマンドが「伝送開始」コマンドであるかどうかの判定が行われる。前述したとおり、コマンドは、データ保護システム全体に展開されるエージェント群を制御するために、データプロテクタによって生成される。判定ブロック4803で、受信されたコマンドが「伝送開始」コマンドであったと判定された場合、ブロック4805で、伝送開始ポイントが明らかにされる。伝送開始ポイントは、「伝送開始」コマンドの中に含まれることが可能である。伝送開始ポイントは、データ伝送が開始されるべき変更ログ内の位置を明らかにする。
さらに、ブロック4807で、伝送終了ポイントが明らかにされる。伝送終了ポイントは、様々な形で特定されることが可能である。例えば、伝送終了ポイントは、変更ログ内に含まれる最後のレコードを探し出し、そのレコードを伝送終了ポイントとして使用すること、データ伝送の最大サイズを特定し、そのサイズに達したログ内のポイントを明らかにすることなどにより、明らかにすることができる。伝送開始ポイントおよび伝送終了ポイントが明らかにされると、ブロック4809で、コマンド処理ルーチン4800は、制御をデータ伝送フローに渡す(図48B)。
判定ブロック4803を再び参照して、受信されたコマンドが「伝送開始」コマンドではないと判定された場合、判定ブロック4811で、受信されたコマンドが「検証開始」コマンドであるかどうかが判定される。判定ブロック4811で、コマンドが「検証開始」コマンドであると判定された場合、ブロック4813で、どこで検証が開始されるべきかについて、作成ロケーション内の位置が明らかにされる。伝送の開始ポイントおよび終了ポイントの場合と同様に、この位置は、検証開始コマンドの中に含まれることも、別個に獲得されることも可能である。検証が開始されるべき作成ロケーション内の位置が明らかにされると、コマンド処理ルーチン4800は、ブロック4815で示すとおり、制御を検証ルーチン(図48C)に渡す。
判定ブロック4811で、受信されたコマンドが「検証開始」コマンドではないと判定された場合、判定ブロック4817で、受信されたコマンドがCチェックポイント確認であるかどうかが判定される。受信されたコマンドがCチェックポイント確認であった場合、ブロック4819で示すとおり、確認されたCチェックポイントに先立って伝送された変更ログの中に含まれるレコードが、変更ログから削除され、ルーチンは、ブロック4821で完了する。しかし、判定ブロック4817で、受信されたコマンドがCチェックポイント確認ではないと判定された場合、受信されたコマンドは、マーカトークンApである。ブロック4823で、マーカトークンApは、変更ログに入れられ、ルーチンは、ブロック4825で完了する。
図48Bは、本発明の実施形態による、作成ロケーションから格納ロケーションに変更レコードを伝送するためのデータ送信ルーチンの流れ図である。データ送信ルーチン4830は、ブロック4831で開始し、ブロック4833で、変更ログから獲得された一群の変更レコードが、伝送のために一括される。レコードのバッチは、任意の数のレコードであることが可能である。レコードのバッチを作成することは、変更ログの最大サイズに達したことに応答して行われても、変更が行われた後に行われても、所定の時点で行われてもよい。当業者には理解されるとおり、与えられたレコードのバッチを生成するタイミング、およびレコードのバッチのサイズは、単に実施例であり、レコードのバッチを作成するための任意のタイミングおよびサイズを本発明の諸実施形態で利用することができる。例えば、レコードのバッチは、1つだけのレコードを含むことも可能であり、データ保護システムに対して変更が行われるたびに作成されることも可能である。
ブロック4835で、レコードのバッチは、作成ロケーションから伝送される。レコードのバッチを伝送することに加えて、クラスCチェックポイントが生成され、レコードのバッチの終端に付加され、レコードのバッチの一部として伝送される。前述したとおり、クラスCチェックポイントは、レコードのバッチの中に含まれる最後の変更レコードの変更ログ内における位置に対するポインタを含む。判定ブロック4837で、変更ログ内にさらなるレコードが存在するかどうかの判定が行われる。判定ブロック4837で、さらなるレコードが存在すると判定された場合、データ送信ルーチン4830は、ブロック4833に制御を戻し、ルーチンが続けられる。しかし、判定ブロック4837で、伝送されるべきレコードがもはや存在しないと判定された場合、ブロック4839で示すとおり、ルーチンは、完了する。
図48Cは、本発明の実施形態によるデータを検証するための検証ルーチンの流れ図である。検証ルーチン4840は、ブロック4841で開始し、判定ブロック4843で、検証が行われる必要がある作成ロケーション内のオブジェクトが存在するかどうかが判定される。判定ブロック4843で、検証されるべきさらなるオブジェクトが存在しないと判定された場合、ブロック4844で示すとおり、ルーチンは、終了する。しかし、検証されるべきさらなるオブジェクトが存在すると判定された場合、ブロック4845で、オブジェクトに関するメタデータが生成される。詳細には、メタデータが生成されることが可能な最初のオブジェクトは、コマンド処理ルーチン4800(図48A)のブロック4813で明らかにされた開始位置に対応するオブジェクトである。メタデータが生成されると、メタデータは、メタデータレコード(V)の形態で変更ログに追加される。
判定ブロック4847で、クラスAチェックポイントが生成され、変更ログに追加されるべきかどうかの判定が行われる。前述したとおり、クラスAチェックポイントは、メタデータレコードを生成し、伝送するプロセス全体の中の位置を表わし、データ検証を再スタートするために使用することができる。さらに、クラスAチェックポイントは、伝送されたクラスAチェックポイントの中で受信されていないチェックポイントがないかどうかを判定することができるように、順次マーカも含むことが可能である。判定ブロック4847で、クラスAチェックポイントが生成されるべきであると判定された場合、ブロック4849で、チェックポイントが生成され、一括されて、変更ログ内に含まれる他のレコードとともに伝送されるレコードとして、変更ログに追加される。変更ログにクラスAチェックポイントを追加すると、検証ルーチン4840は、制御を判定ブロック4843に戻し、ルーチンが続けられる。しかし、判定ブロック4847で、クラスAチェックポイントがまったく生成されるべきでないと判定された場合、検証ルーチン4840は、判定ブロック4843に戻り、続けられる。
図49Aは、本発明の実施形態による、格納ロケーションによって受信されるコマンドを処理するためのコマンド処理ルーチンの流れ図である。コマンド処理ルーチン4900は、ブロック4901で始まり、判定ブロック4903で、受信されたコマンドが「受信開始」コマンドであるかどうかの判定が行われる。「受信開始」コマンドは、作成ロケーションから伝送されるレコードの受信を開始するようにという、格納ロケーションに対する命令である。判定ブロック4903で、コマンドが「受信開始」コマンドであると判定された場合、ブロック4905で、受信されたレコードを格納するための、スピルログ内からの開始ポイントが明らかにされる。スピルログ内の位置を明らかにすることは、「受信開始」コマンド内に含まれる位置を受信することにより、または別個の命令として受信することにより、決められることが可能である。受信されたレコードを格納することをどこから始めるかについて、スピルログ内の位置が明らかにされると、コマンド処理ルーチン4900は、ブロック4907で示すとおり、制御をレコード受信ルーチン(図49B)に渡す。
判定ブロック4903を再び参照すると、受信されたコマンドが「受信開始」コマンドではないと判定された場合、判定ブロック4909で、受信されたコマンドが「適用開始」コマンドであるかどうかが判定される。受信されたコマンドが適用開始コマンドであった場合、ブロック4911で、レコードを適用することを始めるスピルログ内の開始位置が明らかにされる。レコード受信開始位置の場合と同様に、スピルログ内の識別は、「適用開始」コマンド内に含められた位置、別個のコマンドとして受信される位置、または他の何からの手段によって明らかにされる位置によって明らかにされることが可能である。適用を開始すべきスピルログ内の位置が明らかにされると、コマンド処理ルーチン4900は、制御を変更レコード適用ルーチン(図49C)に渡す。
判定ブロック4909で、コマンドが「適用開始」コマンドではないと判定された場合、コマンドは、クラスBチェックポイント確認であり、ブロック4915で、確認されたクラスBチェックポイントの伝送に先立って格納ロケーションにおけるコピーに適用されていた、スピルログ内に含まれるすべてのレコードが、スピルログから削除される。ブロック4917で、ルーチンは完了する。
図49Bは、本発明の実施形態による、格納ロケーションにおいてレコードを受信するためのレコード受信ルーチンの流れ図である。レコード受信ルーチン4920は、ブロック4921で開始し、ブロック4923で、次の着信するレコードが受信される。前述したとおり、レコードの伝送は、有線、無線などを含むが、以上には限定されない、任意のタイプの伝送媒体を使用して達せられることが可能である。判定ブロック4925で、受信されたレコードがクラスCチェックポイントであるかどうかが判定される。受信されたレコードがクラスCチェックポイントであった場合、クラスCチェックポイントのスピルログ位置は、クラスCチェックポイントに追加され、そのクラスCチェックポイントが、ブロック4927で示すとおり、データプロテクタに転送される。しかし、判定ブロック4925で、レコードがクラスCチェックポイントではないと判定された場合、判定ブロック4929で、レコードがマーカトークンApであるかどうかが判定される。レコードがマーカトークンであった場合、ブロック4931で、マーカトークンは、データプロテクタに転送される。
判定ブロック4929で、レコードがマーカトークンではないと判定された場合、判定ブロック4935で、レコードがクラスAチェックポイントであるかどうかが判定される。判定ブロック4935で、レコードがクラスAチェックポイントではないと判定された場合、または、レコードをデータプロテクタに転送した後(ブロック4927、4931、4937)、受信されたレコードは、ブロック4939で示すとおり、スピルログに追加される。判定ブロック4941で、受信済みのさらなるレコードが存在するかどうかが判定される。さらなるレコードが存在する場合、レコード受信ルーチン4920は、ブロック4923に戻り、ルーチンが続けられる。さらなるレコードがまったく存在しない場合、ルーチンは、ブロック4943で完了する。
図49Cは、本発明の実施形態による、格納ロケーションにおけるレプリカに変更レコードを適用するための変更レコード適用ルーチンの流れ図である。レコード適用ルーチン4950は、ブロック4951で開始し、ブロック4953で、レコードがスピルログから獲得される。判定ブロック4955で、獲得されたレコードが、保護されたオブジェクトに関するメタデータを含むかどうかが判定される。レコードがメタデータを含むと判定された場合、ブロック4957で、そのメタデータが、レプリカ上に格納された、対応するオブジェクトと比較される。前述したとおり、メタデータは、最終変更時刻、サイズ、計算されたチェックサムなどの、オブジェクトに関する任意の形態のID(identification)であることが可能である。判定ブロック4959で、メタデータが比較されると、メタデータが異なるかどうかが判定される。比較されたメタデータが異なる場合、ブロック4961で、メタデータが比較されたオブジェクトのIDが、差分リストに追加される。明らかにされたオブジェクトが差分リストに追加された後(ブロック4961)、または判定ブロック4959で、メタデータが異なっていないと判定された場合、変更レコード適用ルーチン4950は、判定ブロック4965に進み、続けられる。判定ブロック4955に戻り、レコードがメタデータではないと判定された場合、レコードは、変更レコードであり、ブロック4963で示すとおり、レプリカに適用される。
判定ブロック4965で、クラスBチェックポイントが生成されるべきかどうかが判定される。前述したとおり、クラスBチェックポイントの生成は、任意の形態の基準に基づいて生じさせられることが可能である。例えば、クラスBチェックポイントは、変更レコードが適用されるたびに生成されること、所定の期間の後に生成されることなどが可能である。判定ブロック4965で、クラスBチェックポイントが生成されるべきであると判定された場合、判定ブロック4967で、差分リストが空であるかどうかが判定される。差分リストが空でないと判定された場合、ブロック4969で、ルーチン4950は、クラスAチェックポイントの受信を待つ。差分リストが空でない場合にクラスAチェックポイントを待つことにより、システムが再スタートされた場合に、差分リストへの追加を生成したメタデータレコードは失われないことが確実になる。クラスBチェックポイントの伝送に先立ってクラスAチェックポイントを受信することにより、差分リストが送信された時点で、その差分リストを生成するのに利用されたすべてのメタデータレコードがもはや必要とされないことが確実になる。判定ブロック4967で、差分リストが空であると判定された場合、またはブロック4969におけるクラスAチェックポイントの受信後、ブロック4971で示すとおり、クラスBチェックポイントが生成され、伝送される。
判定ブロック4965を再び参照すると、クラスBチェックポイントが生成されるべきではないと判定された場合、またはクラスBチェックポイントの伝送の後(ブロック4971)、判定ブロック4973で、レプリカにまだ適用されていない、さらなるレコードがスピルログの中に存在するかどうかが判定される。追加のレコードが存在する場合、変更レコード適用ルーチン4950は、ブロック4953に戻り、続けられる。しかし、判定ブロック4973で、適用されるべき追加のレコードが存在しないと判定された場合、ルーチンは、ブロック4975で示すとおり、完了する。
本発明の諸実施形態は、一時バージョン設定を使用するレプリケーション、および/またはリムーバブルな媒体へのデータのコピーのアーカイブなどの、任意のタイプのバックアップ技術を使用して、作成ロケーションにおけるデータを保護する能力を提供する。本発明の実施形態では、作成ロケーションにおけるデータを保護する能力は、データ保護システムの異なる部分に配置されたエージェント群によって実行されるアクションの分散制御および協調を使用することを介して達せられる。例えば、エージェントは、作成ロケーション、格納ロケーション、および/またはデータプロテクタロケーションに配置されていることが可能である。ジョブと呼ばれるそれらの活動は、典型的に、スケジュールに従って実行される。ジョブには、しばしば、リモートエージェントとの通信が関与するので、ジョブは、通常、非同期であり、完了するまでに長い時間がかかる可能性がある。ジョブは、1回だけ実行される、または定期的に実行されることが可能な、スケジュールされた活動単位である。ジョブは、1つまたは複数のタスクから成る。タスクは、順次に実行されることも、並行に実行されることも可能である。さらに、ジョブは、タスクのいずれかが失敗した場合、失敗することも、すべてのタスクを、タスクが完了するか、失敗するまで実行することを続けることも可能である。
データ保護のため、ジョブは、保護されたグループのすべてのメンバに関して所与の活動を実行するように編成される。データ保護は、特定のジョブに関して適切な活動を実行するためのタスクを含むジョブを編成することを介して行われる。例えば、保護または回復プランは、1つまたは複数のジョブ、およびそれらのジョブのためのスケジュールを含む。本発明の実際の実施形態では、ジョブは、次の4つの異なるタイプ、すなわち、保護、回復、検出、およびハウスキーピング(housekeeping)の1つであることが可能である。保護ジョブは、レプリケーション、一時バージョン管理、アーカイブ、またはデータセットステージング(staging)などのデータ保護活動を実行する。各保護タスクは、保護されたグループに関連する。回復ジョブは、レプリカ、データセット、アーカイブ、または以上の組合せからデータ回復を実行する。各回復タスクは、回復ソースに関連する。初期検出ルーチン(図25)やスケジュールされた検出ルーチン(図26)などの検出ジョブは、データプロテクタ外部のエンティティを検出する。検出は、探索、ナビゲーション、自動検出グループリフレッシュまたは保存探索、および保護されたグループのメンバシップ特定のために実行される。ハウスキーピングジョブは、データ保護システムメンテナンスのために必要な諸活動を実行する。ハウスキーピングジョブには、エージェントインストールバージョン調査(agent installed version survey)、概要軌跡(summary trail)の作成、媒体移動(media migration)、保護システムデータベースガーベッジコレクション(garbage collection)が含まれる。
データ保護システムの各ジョブは、ジョブマネージャによって監視される。ジョブマネージャは、ジョブの全体的な進行を監視し、それらのジョブに関連するデータプロテクタデータベースから情報を読み取り、それらのジョブから受け取られた情報を、ジョブマネージャが維持するデータプロテクタデータベースの特定の部分に書き込む。ジョブマネージャが維持するデータベースの部分に関して、情報をデータベースのその部分に書き込むことができるのは、データ保護システムのマネージャだけである。
図50は、本発明の実施形態による複数のタスクを含むジョブのブロック図である。前述したとおり、ジョブ5000は、タスク1 5001、タスク2 5002、タスクN 5003で示す任意の数までのタスクなどの、1つまたは複数のタスクを含む。ジョブの各タスクは、タスクエグゼキュータ5005、5007によって実行され、管理される。タスクエグゼキュータ5005は、タスク2 5002のようなタスクを実行する際、データ保護システム全体に分散された、異なるエージェントによって実行される、1つまたは複数のコマンドを生成することができる。例えば、タスクエグゼキュータ5005は、異なるエージェントによってそれぞれが完了される、タスク2 5002に関する、異なる3つのコマンドを生成することができる。タスク2 5002に関する第1のコマンドは、エージェントA5009によって実行されることが可能であり、第2のコマンドは、エージェントB5011によって実行されることが可能であり、第3のコマンドは、エージェントC5013によって実行されることが可能である。タスクのタイプ、およびジョブのタイプに依存して、エージェント5009〜5013は、コマンドを順次に実行することも、並行に実行することもできる。
ジョブプロパティは、ジョブのすべてのタスクに適用される。ジョブの特定のタスクも、特定のプロパティを有することが可能である。保護ジョブに関するジョブプロパティおよびタスクプロパティは、グループプランのジョブを作成することの一部として、インテントトランスレータによって特定される。本発明の実際の実施形態では、すべてのジョブは、次のプロパティを有する。すなわち、成功/失敗時のアクション、ならびに並行の実行、または順次だけの実行である。さらに、データの移動が関わるあらゆるジョブは、次のプロパティを有することが可能である。すなわち、暗号化、圧縮、スロットル、および並置インテントである。
各タスクエグゼキュータ5005、5007は、入力に応答して異なる状態を経て有限状態マシン(FSM)を遷移させ、状態を保存し(persist)、再スタートロジックを実行する共通エンジンによって実行される、FSMとして生成されることが可能である。例えば、タスクエグゼキュータは、エージェントに対して前に発行されたコマンドからの応答に基づいて遷移することが可能である。共通エンジンを利用することにより、すべてのFSMの設計が、共通の設計方法に従うことを可能にし、異なるFSMが、同一の共通ブロック(エージェントが起動中(alive)であるかどうかを判定するためにポーリングを行うこと、およびエージェントからステータスを獲得することなど)を共有することを可能にする。
通常、タスクエグゼキュータは、エージェントにコマンドを発行し、コマンドの成功または失敗、およびコマンドからもたらされる応答に基づいて待ち状態に出入りする。さらに、タスクエグゼキュータ5005、5007は、タスクの実行中に特定の時間が経過した後、キャンセル要求(例えば、ユーザからのキャンセル要求、ジョブが、そのジョブに割り当てられた最大時間を超過したことに起因する、内部キャンセル要求など)に応答して、またはデータベースの状態に基づいて生成された内部メッセージに応答して、遷移することが可能である。各遷移で、タスクエグゼキュータは、タスクにおける進行を保存する(persist)。保存された進行ポイントは、データプロテクタデータベースの中に格納されることが可能である。タスクにおける進行ポイントを保存することにより、予期しない終了(停電などの)が生じた場合の堅牢性がデータ保護システムに提供される。再スタート時に、タスクエグゼキュータは、保存されたポイントを参照し、タスクの適切な状態を明らかにし、そのポイントから即時に失敗させて(fail)、必要である可能性があるクリーンアップを実行することができる。
例えば、レプリケーションのためのデータ伝送ジョブの場合、前述したとおり、タスクエグゼキュータは、ジョブの各タスクを実行するために、適切なエージェントにコマンドを発行する。それらのコマンドのなかには、変更レコードの伝送を開始するようにクローンエージェントに発行されるコマンドが含まれる。同様に、タスクエグゼキュータは、レコードを受信すること、および適用することを開始するように、レプリケーションエージェントにコマンドを発行する。エージェントがそれらのコマンドを実行すると、タスクエグゼキュータは、タイマーを開始し、待ち状態に遷移する。各遷移(コマンド発行、待機開始)で、タスクエグゼキュータは、タスクに関する進行のポイントを保存する(persist)。タスクエグゼキュータによって受信されることが可能な応答は、チェックポイント、タイムアウトイベント、キャンセル要求などであることが可能である。応答を受信すると、タスクエグゼキュータは、その応答に従って遷移し、タスクにおけるそのポイントを保存する。このプロセスは、タスクが成功または失敗を通じて完了するまで続けられる。
タイムアウトイベントが生じた場合、タスクエグゼキュータ5005は、各エージェントにポーリングも行って、エージェントが依然、起動中であるかどうかを判定し、場合により、そのエージェントによって実行されるコマンドの進行に関する最新情報を獲得することができる。遷移ポイントを保存して、堅牢性を高めることに加え、長期実行活動が、中間ポイントであるチェックポイントから再スタートされることが可能であるように設計され、障害が生じた場合に、すべての作業が失われることはないようにする。例えば、図43ないし47を再び参照すると、データ伝送中、およびデータ検証中、チェックポイントが作成される。それらのチェックポイントは、レプリケーションマネージャによって獲得され、データ保護データベースの中に格納される。図43〜図47に関連して前述したとおり、障害からの再スタート時に、それらのチェックポイントは評価されることが可能であり、データ伝送およびデータ検証は、チェックポイントによって明らかにされるポイントから再開されることが可能である。
タスクを完了まで実行することに加えて、タスクエグゼキュータ5005、5007は、本発明の実施形態では、タスクの完了、およびタスクが成功して完了したか、または失敗して完了したかについて、ジョブマネージャに通知する。ジョブマネージャは、ジョブの中のすべてのタスクに関する概要情報を与える独自の軌跡(trail)を保持する。例えば、ジョブ軌跡は、成功して完了したタスクの数を含むことが可能である。ジョブマネージャは、タスクエグゼキュータから受け取られた情報も、データプロテクタデータベース内のタスク軌跡の中に保存する。さらに、タスクエグゼキュータが、タスクに関連するタスクエグゼキュータ固有の情報とともに、独自のタスク軌跡を保持することも可能である。タスク軌跡は、タスク中に見つかったあらゆるエラー、ならびにデータ保護システムのユーザに役立つ、タスクに関連する統計を含むことが可能である。タスクタイプ固有の軌跡が、その特定のタスクに関連するマネージャによって受け取られ、保持される。タスクタイプ固有の軌跡は、データを移動するのにかかった合計時間、タスクを完了するのにかかった合計時間、転送されたデータの総量などの、タスク固有の情報を含むことが可能である。データ保護システムの再スタート時に、タスク軌跡を利用して、障害をもたらしたエラーパスを明らかにすることができる。さらに、タスクが、タスク専用(private)メタデータを保持することが可能である。この専用メタデータを再スタート時に使用して、失敗したタスクをクリーンアップすること、およびタスクの完了(成功または失敗)時にタスク軌跡を作成することができる。さらに、タスクエグゼキュータ5005、5007は、タスクに関連するメタデータを管理することもできる。
失敗の場合、再スタート時に、ジョブは、非常に簡単なクリーンアップを行う。ジョブは、自らを再スケジュールすること、または複雑な回復アクションを実行することはしない。代りに、失敗したジョブのタスクは、単にあらゆる物理的オブジェクト状態を更新し、失敗する。失敗は、タスク軌跡およびジョブ軌跡の中に記録される。自動化された回復活動を促すのに値するだけ十分に重要なタスクの場合、データ保護システムは、ヘルス(health)マネージャを介して、タスクが失敗したポイントから、またはタスクによって生成された最後のチェックポイントにおいてジョブを最後まで完了させるのに使用される、埋め合わせジョブを作成することができる。ヘルスマネージャは、タスク軌跡、ならびにデータベース内の様々なオブジェクトの状態を利用して、より複雑な回復機構を実施して、データ保護が進められることを可能にする。
レプリケーションなどの重要と考えられるタスクに関して、ヘルスマネージャは、それらのタスクを監視することができる。ある実施形態では、ヘルスプロバイダのインスタンスが、ヘルスマネージャによって作成される。重要なタスクは、失敗すると、失敗イベントを生じさせる。ヘルスプロバイダは、それらのイベントを監視し、回復が実行される必要があるかどうかを判定する。回復が必要である場合、1つまたは複数の失敗したタスクを回復するように埋め合わせジョブが作成され、スケジュールされる。さらに、システム起動時に、ヘルスマネージャが、ヘルスプロバイダを開始する。各ヘルスプロバイダは、システムが前回終了された時点で実行されていたことが可能な、失敗したタスクの回復が必要であるかどうかについての、交互の(alternate)判定、および独立の判定を行う。回復が必要である場合、埋め合わせジョブが作成され、スケジュールされる。埋め合わせジョブは、失敗したジョブ内に単一のタスクの失敗が存在する場合に単一のタスクを含むことも、開始されていないタスクも含め、失敗したジョブからのすべての未完了のタスクを含むことも可能である。
図51は、本発明の実施形態による、タスクの監視、および埋め合わせジョブの作成を示す流れ図である。前述したとおり、データ保護システム内の各アクションは、いくつかのタスクを有するジョブの形態で編成される。データプロテクタ5101は、1つまたは複数のタスクの実行の結果として、転送され、格納ロケーション5105に格納される、作成ロケーション5103における保護されたオブジェクトのレプリケーションなどの、ジョブを作成することができる。このジョブは、データプロテクタ5101によって開始され、ジョブの各タスクは、1つまたは複数のタスクエグゼキュータによって実行される。例えば、レプリケーションジョブの場合、タスクエグゼキュータは、いくつかのエージェントにコマンドを発行し、エージェントの1つは、作成ロケーション5103に配置されていることが可能であり、1つは、格納ロケーション5105に配置されていることが可能である。それらのタスクは、実行され、現在、進行中であり、この実施例では、ジョブは中断され、その後、回復される。ジョブ中断は、停電などのシステム障害を介して生じる可能性がある。回復時に、データプロテクタ5101は、システム障害に先立って進行中であったジョブのタスクを明らかにする。進行中であったジョブのタスクが明らかにされると、データプロテクタ5101は、タスクを再スタートするコマンドを発行する。タスクの再スタート時に、タスクエグゼキュータが、そのタスクを失敗させ、失敗したタスクの簡単なクリーンアップを実行する。タスクが重要であった場合、適切なヘルスプロバイダが通知を受ける。
埋め合わせジョブは、前のジョブが中断したところから再開するジョブである。埋め合わせジョブは、前のジョブの中の失敗したタスク、または前のジョブの中で開始されなかったタスクを含む。例えば、失敗したジョブがレプリケーションジョブであった場合、ヘルスプロバイダは、レプリケーションジョブのどのようなタスクが成功して完了しなかったかを明らかにし、未完了のタスク、ならびにそのジョブに関して完了しなかった他のタスクのすべてを含む埋め合わせジョブを作成する。埋め合わせジョブが、失敗したタスクを受け取ったことに応答して生成される場合、ヘルスマネージャは、その失敗したタスクを明らかにし、そのタスク、ならびに、場合により、そのジョブとともに順次に、または並行に実行されるべき他のタスクを含むジョブを作成する。埋め合わせジョブを生成すると、ヘルスマネージャは、その埋め合わせジョブを実行のためにスケジュールする。次に、その埋め合わせジョブが、あたかも独自のジョブであるかのようにスケジュールされ、その埋め合わせジョブのタスクが実行される。さらに、埋め合わせジョブは、独自のジョブとしてスケジュールされるため、ジョブマネージャから見ると、他のいずれのジョブとも同様に扱われ、ジョブマネージャは、それが埋め合わせジョブであることを知らない可能性がある。
図52は、本発明の実施形態による、タスクが重要である場合に、タスク失敗を明らかにし、埋め合わせジョブを作成するための埋め合わせジョブルーチンの流れ図である。埋め合わせジョブルーチン5200は、データ保護システムによって実行されることが可能であり、あるいは、本発明の実際の実施形態では、ヘルスマネージャによって実行されることが可能である。
埋め合わせジョブルーチン5200は、ブロック5201で開始し、ブロック5203で、タスク失敗を受け取る。前述したとおり、タスクが中断された場合、再スタート時に、タスクエグゼキュータは、前に実行されていたタスクを再スタートし、失敗させて、タスク失敗通知を発行する。タスクエグゼキュータは、その失敗したタスクに関するクリーンアップを実行する。
判定ブロック5205で、埋め合わせジョブルーチン5200は、失敗したタスクが重要であったかどうかを判定する。代替の実施形態では、ユーザが、どのようなタスクが重要であると見なされるかを指定することができる。判定ブロック5205で、失敗したタスクが重要であったと判定された場合、ブロック5207で、未完了のタスク、および関連するタスクが明らかにされる。ブロック5209で、埋め合わせジョブルーチン5200が、未完了のタスクのそれぞれに関する埋め合わせジョブを作成し、ブロック5211で、埋め合わせジョブがスケジュールされる。
判定ブロック5205を再び参照すると、失敗したタスクが重要ではなかったと判定された場合、ブロック5213で示すとおり、埋め合わせジョブルーチンは完了する。タスクは、複数回実行されるルーチンジョブの一部である場合、重要ではないと識別されることが可能である。例えば、バックグラウンドレプリケーションのためのレプリケーションジョブは、そのレプリケーションジョブが、1時間ごとに実行されるようにスケジュールされている場合、重要ではないと見なされることが可能である。このため、このレプリケーションジョブは、スケジュールどおりに再び行われるため、データ保護システムは、このレプリケーションジョブのタスクが重要ではないと判定することができる。
埋め合わせジョブがスケジュールされるべきかどうかを判定することに加えて、データプロテクタは、ジョブマネージャを介して、タスク失敗に応答して、失敗したジョブを含むジョブが続けられるべきか、または、やはり失敗させられるべきかを判定する。失敗したタスクが、ジョブを失敗させると判定されたタスクである場合、ジョブマネージャは、その関連するジョブを失敗させる。タスクは、重要である(このため、埋め合わせジョブを必要とする)と考えられる可能性があるものの、ジョブが失敗することを要求しない可能性がある。同様に、重要でないタスクの失敗により、ジョブ失敗がもたらされる可能性もある。例えば、ジョブが、複数のデータソースからのレプリケーションを含む場合、レプリケーションタスク(重要なタスク)の1つの失敗により、ジョブの失敗がもたらされない可能性がある。
前述したとおり、データ保護システムは、データ保護システムの特定の諸部分を制御するマネージャ群を含む。例えば、データ保護システムは、レプリケーションマネージャ、構成マネージャ、ヘルスマネージャ、概要マネージャ、ジョブマネージャ、媒体マネージャ、アーカイブマネージャなどを含むことが可能であるが、以上には限定されない。各マネージャは、データプロテクタデータベースの特定の部分を維持する。データベースの各部分は、対応するマネージャだけによって書き込まれることが可能な一組のテーブルから成る。それらのテーブルは、任意のマネージャ、および他の外部アプリケーションによって読み取られることが可能であるが、対応するマネージャだけが、テーブルにデータを書き込むことができるマネージャであるため、すべての同時実行制御および同期のロジックは、そのマネージャによって所有される。ヘルスマネージャは、タスクおよびジョブを監視することに加えて、他のマネージャ群も監視することができる。ヘルスマネージャは、このマネージャに関連するタスクのいずれの失敗にも応答するように構成され、このマネージャに対応するデータベースの状態を検査して、どのような回復アクションが必要であるかを特定することができる。
さらに、マネージャは、マネージャの機能を実施する1つまたは複数のタスクエグゼキュータも含むことが可能である。例えば、レプリケーションマネージャは、レプリケーションタスクエグゼキュータ、一時バージョン設定タスクエグゼキュータ、および一時バージョンからの回復タスクエグゼキュータを含むが、以上には限定されなず、レプリカに関連するすべてのタスクエグゼキュータを含むことが可能である。
データ保護システムの物理的オブジェクト(例えば、レプリカ、媒体、ディスク、ライブラリ、ドライブ)に関して、状態モデルが保持される。各状態モデルは、オブジェクトが置かれていることができる可能な状態、および状態間の許容できる遷移を表す。例えば、図37は、本発明の実施形態によるレプリカに関する状態モデルを示す。状態モデルは、オブジェクトのライフサイクルを表し、オブジェクトをある状態から別の状態に遷移させるのに、どのような活動が実行される必要があるかを示す。例えば、レプリカが無効な状態3705(図37)にある場合、その状態に基づき、データ保護システムは、検証ジョブが実行されて、レプリカを有効な状態3711にしなければならないことを知る。オブジェクトの状態は、しばしば、ヘルスプロバイダに対する入力である。
状態モデルを保持することにより、回復のためにヘルスプロバイダによって利用されることが可能な既知の状態が保持されて、エラー処理が簡単になる。さらに、オブジェクトの状態を監視することにより、データ保護システムがどのようにエラー状態を扱うかが、ユーザに提示される。
データ保護システムは、データ保護システムの諸部分によって生成されたイベントも監視し、データ保護システム自体の全体的なステータスに関するレポートをユーザに提供する。代替として、レポートは、データ保護システム内部の異なる物理的オブジェクトに関する特定の情報を提供することも可能である。例えば、作成ロケーションにおける、あるサーバが利用できない場合、その問題についてユーザに知らせ、示唆される問題解決法を提供するレポートエラーが生成されることが可能である。
イベントは、データ保護システムによって点検され、その点検に基づき、点検イベントに関するレポートが生成される。このレポートは、次の3つのカテゴリの1つに分類される。すなわち、情報、警告、およびエラーである。概して、レポートは、エラーレポートである場合、ユーザアクションが必要であることを明らかにする。レポートは、警告レポートである場合、即時のユーザアクションは必要ないが、警告が、自動的に、またはユーザによって解決されない場合、必要になる可能性があることを明らかにする。最後に、レポートは、情報レポートである場合、ユーザからのアクションが要求されないことをユーザに知らせ、データ保護システムに関する情報を提供する。当業者には理解されるとおり、レポートは、情報、警告、およびエラーに加えて、またはこれらの代替として、任意の形態で提示されることも可能である。
レポートは、データ保護システムの異なる部分によって生成されたイベントを点検することによって作成される。それらのイベントに基づき、データ保護システムは、それらのイベント、ならびにデータ保護システムのその部分の状態に関するレポートを編集する。このため、ユーザには、データ保護システムによって生成されたイベントのすべてが提供されるのではなく、代りに、情報レポート、警告レポート、またはエラーレポートに分類されているレポートが提供される。提供されるレポートは、必要な場合、データ保護システムによって検出された問題に対する、示唆される解決を含むことも可能である。レポートは、前回のジョブでタスクが失敗したかどうかに関わらず、生成されることが可能である。例えば、以下に例示するとおり、前回のコピージョブが成功した場合でさえ(ブロック5409)、格納ロケーションにおいてそのコピーを保持するために使用されるディスクスペースが、所定の閾値を超えた場合(ブロック5411)、データ保護システムが警告として分類するイベントが生成され、ユーザがより多くのディスクスペースを割り当てることを所望するであろうことをユーザに知らせる警告レポートが、ユーザに提供される(ブロック5413)。
レポートタイプ(情報、警告、エラー)は、データ保護システムの特定の諸部分を分析することによって決められることが可能である。例えば、一時バージョン診断ルーチン5700(図57)を参照すると、所定の期間中に抜けた一時バージョンの数、および合計保持期間が計算され(ブロック5725)、レポート分類(警告、エラー)についての決定が、それらの期間中に抜けた一時バージョンの割合に基づいて決められる。
さらに、一部の実例では、レポートの中に含められるべき示唆を決める一連の試験が実行されることが可能である。例えば、コピー診断ルーチン5400において、コピーが有効ではないと判定され5403、検証ジョブが失敗した5445場合、データ保護システムは、一連の試験(判定ブロック5447、5451、5455、5459)を介して、どのような示唆される問題解決法が、ユーザに対して生成されるエラーレポートの中に含められるべきかを判定することに移る。同様の実施例が、回復診断ルーチン5900(図59)において例示されている。詳細には、ジョブが失敗したと判定された場合5911、データ保護システムは、一連の試験(判定ブロック5917、5921、5925、5929)を介して、どのような示唆される問題解決法が、エラーレポートの中に含められるべきかを判定する。
図53は、本発明の実施形態による、データのコピーに関連する問題を診断すること、および問題が検出された場合に、示唆された訂正を伴うレポートを生成することに関する流れ図を示す。前述したとおり、レポートは、3つのカテゴリ、すなわち、エラー、警告、および情報の1つに分類することができる。
診断ルーチン5300は、ブロック5301で開始し、ブロック5303で、ルーチンは、図54〜図56に関連して詳細に説明するコピー診断ルーチンを実行する。コピー診断ルーチン5303を実行することに加えて、診断ルーチン5300は、図55〜図58に関連して説明する一時バージョン診断ルーチンを実行する。最後に、診断ルーチン5300は、データ保護システムによって発行された他の警告が存在するかどうかを判定する。
判定ブロック5309で、コピー診断ルーチン、一時バージョン診断ルーチンのいずれか1つにおいて検出された、または他の警告によって提供されたエラーが存在するかどうかの判定が行われる。判定ブロック5309で、エラーが検出されたと判定された場合、判定ブロック5311で、そのエラーを表すエラーレポートが生成され、その報告されたエラーを解決するために行われるべき、示唆される措置をユーザに提供する。しかし、判定ブロック5309で、エラーが検出されなかったと判定された場合、判定ブロック5313で、コピー診断ルーチン、一時バージョン診断ルーチンのいずれか1つから生成された、または他の警告によって提供された警告が存在していたかどうかの判定が行われる。判定ブロック5313で、警告が検出されたと判定された場合、ブロック5315で、ユーザに対する警告を表し、警告を解決するために実行されることができる可能な措置をユーザに提供する警告レポートが生成される。最後に、判定ブロック5313で、警告が検出されなかったと判定された場合、判定ブロック5317で、データ保護システムに問題がなく、データ保護システムがユーザによって要求された情報を保護しているという情報レポートが生成される。
ブロック5303、5305、および5307のルーチンのそれぞれを経て進み、次に、それらのルーチンの最も深刻な問題を特定すること(判定ブロック5309、5313)により、いずれの潜在的な問題も、単一のレポートとして提供されることが可能である。例えば、エラーが明らかにされた場合、そのエラーおよび示唆される問題解決法が提示されることが可能であり、より深刻な問題である、そのエラーが解決されるまで、警告レポートまたは情報レポートは、差し控えられることが可能である。
図54は、本発明の実施形態による、データ保護システムにおいてデータをコピーすることに関する潜在的な諸問題を診断するためのコピー診断ルーチンの詳細を説明する流れ図を示す。コピー診断ルーチンは、レプリカストレージ、アーカイブ、あるいはレプリカとアーカイブの両方などの、任意のタイプのストレージに関して利用することができる。以下により詳細に説明するとおり、コピー診断ルーチン5400は、前回のコピータスクが成功したか、または失敗したかを判定する。前回のコピータスクが失敗した場合、コピーモードがバックグラウンドであるか、またはバックアップであるかに基づき、異なるパスが辿られる(ブロック5417)。1日に1回、実行され、失敗するタスクは、毎時間、実行され、失敗するタスクより重大であるため、それらの失敗に基づいて異なるレポートが生成される。例えば、モードがバックグラウンドであり、タスクが失敗した場合、失敗の回数が所定の下限を超えていない場合には、情報レポートがユーザに提供されることが可能である。代替として、バックグラウンドモードの場合、頻繁に実行されるようにスケジュールされたタスクに関して、まったくレポートが生成されないことも可能である。というのは、そのタスクの後の実行により、問題が自動的に解決される可能性があるからである。対照的に、コピーモードがバックアップであり、タスクが失敗した場合、警告レポートまたはエラーレポートがユーザに提供されることが可能である。
コピー診断ルーチン5400は、ブロック5401で開始し、判定ブロック5403で、コピーが有効であるかどうかの判定が行われる。判定ブロック5403で、コピーが有効であると判定された場合、判定ブロック5405で、コピージョブが現在、実行されているかどうかの判定が行われる。判定ブロック5405で、コピージョブが実行されていると判定された場合、ブロック5407で、データ保護システムが、コピーの最後の状態を明らかにし、コピージョブが現在、実行されているという指示をユーザに提供する情報レポートを生成する。
しかし、判定ブロック5405で、コピージョブが現在、実行されていないと判定された場合、判定ブロック5409で、前回のコピージョブが成功したかどうかの判定が行われる。判定ブロック5409で、前回のコピージョブが成功したと判定された場合、判定ブロック5411で、ディスク使用率閾値警告が、前回のコピージョブから生成されているかどうかの判定が行われる。ディスク使用率閾値警告は、コピーが現在、格納されている格納ロケーションの部分の利用可能なディスクスペースが不足していることをデータ保護システムが明らかにしたことに応答して、生成される。例えば、レプリカ上のディスクスペースが不足している場合はいつでも、またはアーカイブが、テープ媒体ではなく、ディスクに対して実行され、プール内の媒体が不足しているか、または空きプール内の媒体が不足している場合、ディスク使用率閾値警告が生成されることが可能である。この閾値レベルは、達すると、閾値警告を生成する、所定の事前設定されたサイズ値である。
判定ブロック5411で、ディスク使用率閾値警告が生成されたと判定された場合、ブロック5413で、格納ロケーションにおけるディスク使用率が所定の閾値を超えたことを示す警告レポートが生成され、コピーに追加のディスクスペースが割り当てられるべきであるという示唆を与える。代替の実施形態では、閾値警告をユーザに知らせる警告レポートを生成することに加えて、データ保護システムは、コピーに関する現在のディスクスペースステータスを確認することにより、警告が依然として該当するかどうかを確かめることもできる。
判定ブロック5411で、ディスク使用率閾値警告が生成されていないと判定された場合、ブロック5415で、データ保護システムのその部分に関連する問題が存在しないことを示す情報レポートが、ユーザに提供される。
判定ブロック5409を再び参照すると、前回のコピージョブが成功しなかった場合、判定ブロック5417で、保護モードがバックグラウンドモードであるかどうかの判定が行われる。本明細書で説明するとおり、バックグラウンド保護モードは、コピーがほぼ連続的であるデータ保護システムの動作モードである。例えば、週7日、1日24時間、毎時間である。代替として、コピーのモードは、バックアップモードであることも可能である。バックアップ保護モードは、コピーが比較的、低頻度である動作モードである。例えば、アーカイブおよび/またはレプリケーションが、毎晩、行われることが可能である。
判定ブロック5417で、コピーのモードがバックグラウンドであると判定された場合、ブロック5419で、前に失敗したコピージョブの回数が計算される。判定ブロック5421で、ブロック5419で計算された、失敗したコピージョブの回数が、所定の下限を超えたかどうかの判定が行われる。判定ブロック5421で、前に失敗したコピージョブの回数が、所定の下限を超えなかった場合、ブロック5422で、データ保護システムが現在、予期されるとおりに動作していることをユーザに知らせる情報レポートが生成される。失敗したコピージョブの回数を計算し、その回数を限度値と比較して、レポートを生成するかどうかを決めることにより、データ保護システムが、ユーザに通知する必要なしに、問題を解決する機会が提供される。例えば、コピージョブが1時間ごとに生成されており、1回抜けた場合、データ保護システムは、次の時間、コピージョブが成功して完了した場合、その問題を解決することができる。
しかし、判定ブロック5421で、前に失敗したコピージョブの回数が、所定の下限を超えたと判定された場合、判定ブロック5423で、前に失敗したコピージョブの回数が、第2の上限値を超えたかどうかの判定が行われる。前に失敗したコピージョブの回数が、所定の上限値を超えなかったと判定された場合、ブロック5424で、失敗したコピージョブの回数をユーザに知らせる警告レポートが生成される。この警告レポートは、失敗したコピージョブの回数が、所定のより高い(重大な)回数に達しておらず、現在、ユーザによるアクションが要求されていないこともユーザに知らせる。
判定ブロック5417で、保護モードがバックグラウンドモードではない、すなわち、バックアップモードであると判定された場合、または判定ブロック5423で、失敗したコピージョブの回数が、所定の上限値を超えたと判定された場合、コピー診断ルーチン5400は、ブロック5425(図55)で示すとおり、前回のタスク失敗の理由を獲得する。本発明の実施形態では、コピージョブの失敗の理由は、コピージョブ自体の中に含まれるタスクによって生成されるタスク軌跡から獲得することができる。前述したとおり、タスク軌跡は、タスク自体、タスクが何を行っていたか、タスクが完了したこと、またはタスクがなぜ失敗したかに関するメタデータを含む。
判定ブロック5427で、失敗の理由が、ユーザが前のコピージョブをキャンセルしたことであったかどうかの判定が行われる。判定ブロック5427で、コピージョブが、ユーザがそのジョブをキャンセルしたことに応答して失敗したと判定された場合、コピー失敗の通知は無視される。しかし、判定ブロック5427で、ユーザによってキャンセルされた以外の理由で前のコピーが失敗したと判定された場合、判定ブロック5431で、前のコピージョブが、データ保護システムが作成ロケーションに接触することができなかったために失敗したのかどうかの判定が行われる。作成ロケーションに接触できないことは、ネットワーク停止、電力供給問題、または作成サーバが現在、メンテナンス、または他の操作のためにシャットダウンされていることなどの、いくつかの異なるタイプの外部イベントからもたらされる可能性がある。
判定ブロック5431で、前回のコピージョブが、データ保護システムが作成ロケーションに接触することができなかったために失敗したと判定された場合、ブロック5433で、前のコピージョブが成功して完了していないことをユーザに明らかにし、データ保護システムがなぜ、作成ロケーションに接触することができなかったのかを特定する目的で、ユーザがネットワークおよび/または作成ロケーションを調べるようにという示唆をユーザに与えるレポートが生成される。
判定ブロック5431で、前の失敗が、データ保護システムが作成ロケーションに接触することができなかったために生じたのではないと判定された場合、判定ブロック5435で、前の失敗が、データ保護システムが、コピーを実行するエージェントに接触できなかったために生じたのかどうかの判定が行われる。失敗が、コピーを行うエージェントに接触できないことに起因して生じたと判定された場合、ブロック5437で示すとおり、そのエラーをユーザに知らせ、ユーザが、エージェントを検査すべきであり、場合により、ルーチンを再スタートし、および/またはエージェントの設定(installation)を調べ、および/または必要な場合、エージェントを再インストールすべきであるという示唆を与える警告レポートが生成される。
しかし、前の失敗が、ユーザのキャンセル(ブロック5427)、作成ロケーションに接触できないこと(ブロック5431)、またはエージェントに接触できないこと(ブロック5435)に起因していないと判定された場合、問題は、未知であり、データ保護システムが、失敗の原因を特定することができなかったことをユーザに知らせ、ネットワーク接続、およびコピーに関与するエージェントをユーザが調べるべきであるという示唆を与えるエラーが生成される。
図54を再び参照すると、判定ブロック5403で、コピー診断ルーチン5400を使用して診断が実行されているコピーが、有効ではないと判定された場合、判定ブロック5437(図56)で、診断されているコピーが無効である(すなわち、無効な状態(図37)にある)かどうかの判定が行われる。判定ブロック5437で、診断されているコピーが無効でないと判定された場合、ブロック5439で、コピー診断ルーチンは、そのデータソースに関するコピーが初期設定されていないとユーザに通知する。代替の実施形態では、ブロック5439で、診断されているその特定のデータソースに関するコピーが初期設定されていないことを明らかにし、初期設定ジョブを生成することをユーザが所望するかどうかをユーザに尋ねるレポートが、ユーザに提供されることが可能である。
判定ブロック5437で、コピーが無効であると判定された場合、判定ブロック5441で、診断されているコピーに対して、検証ジョブが現在、実行されているかどうかの判定が行われる。判定ブロック5441で、診断されている特定のコピーに対して検証ジョブが現在、実行されていると判定された場合、ブロック5443で、診断されているコピーが、検証ジョブによって現在、検証中であること、および現在、アクションが必要ないことをユーザに知らせる警告レポートが生成される。
判定ブロック5441で、検証ジョブが実行されていないと判定された場合、判定ブロック5445で、コピー診断ルーチン5400は、前の検証ジョブが実行され、失敗しているかどうかを判定する。判定ブロック5445で、検証ジョブが実行されており、失敗していると判定された場合、判定ブロック5447で、その失敗が、ユーザによる検証ジョブのキャンセルの結果であったかどうかの判定が行われる。判定ブロック5445で、前に実行された検証ジョブが失敗しなかったと判定された場合、または前に実行された検証ジョブが失敗し、その失敗が、ユーザによってキャンセルされた結果であったと判定された場合、ブロック5449で、その失敗をユーザに知らせ、ユーザが検証ジョブを実行すべきことを示唆するエラーレポートが生成される。代替として、検証ジョブは、自動的に実行されてもよい。
しかし、判定ブロック5447で、失敗した、前に実行された検証ジョブが、ユーザによってキャンセルされた以外の理由で失敗したと判定された場合、ブロック5450で、その失敗の理由が、その前の検証ジョブに関連するタスク軌跡から獲得される。ブロック5450で獲得された失敗の理由を利用して、コピー診断ルーチン5400は、判定ブロック5451で、失敗した、前に実行された検証ジョブが、コピーのために利用可能な格納ロケーションの量がいっぱいであったために失敗したのかどうかを判定する。判定ブロック5451で、格納ロケーションにおけるコピーのためのスペースがいっぱいであったと判定された場合、ブロック5453で、格納ロケーションがいっぱいであるとユーザに知らせ、ユーザが、コピーの格納のためにさらなるディスクスペースを割り当てるべきであるという示唆を与えるエラーが報告される。より多くのディスクスペースを割り当てることには、レプリカのためにさらなるディスクスペースを追加することが含まれることが可能である。
判定ブロック5451で、失敗が、不十分なスペースの結果ではなかったと判定された場合、ブロック5455で、失敗は、データ保護システムが、格納ロケーションに接触することができなかったことの結果であったのかどうかの判定が行われる。判定ブロック5455で、データ保護システムが、コピーを検証するために格納ロケーションに接触することができなかったと判定された場合、エラーレポートが生成される。エラーレポートは、格納ロケーションにアクセスできなかったことをユーザに知らせ、データ保護システムと格納ロケーションの間の通信、目標ボリュームとの通信、および格納ロケーション自体の整合性をユーザが調べるべきであると示唆する。
判定ブロック5455で、失敗は、格納ロケーションにアクセスできなかったことの結果ではなかったと判定された場合、判定ブロック5459で、作成ロケーションにおいて変更ログオーバーフローが存在したかどうかについての判定が行われる。ログオーバーフローは、余りにも多くの変更が、作成ロケーションにおける変更ログの中でキューに入れられていること、および/または格納ロケーションにおけるスピルログがいっぱいになってきていることにより、もたらされる可能性がある。これは、変更レコードおよび検証レコードが、格納ロケーションに伝送され、格納ロケーションにおいて処理されるよりも速く生成されている場合に生じる可能性がある。判定ブロック5459で、失敗は、ログオーバーフローの結果であったと判定された場合、ブロック5461で示すとおり、そのログオーバーフローをユーザに知らせ、ログがオーバーフローしたことを示し、ログが適切にサイズ変更されるべきことを示唆するエラーレポートが生成される。
最後に、コピー診断ルーチン5400が、判定ブロック5459で、失敗は、ログオーバーフローの結果ではなかったと判定した場合、ブロック5463で、その失敗をユーザに知らせ、通信問題の可能性、または他の問題の可能性について、作成サーバ、データプロテクタ、およびストレージサーバをユーザが調べるべきことを示唆し、失敗が続く場合、データ保護システムを再初期設定するように示唆するエラーレポートが生成される。
保護問題を診断する別の例が、一時バージョンの診断である。一時バージョン診断ルーチンについては、図53(ブロック5305)で示した全体的な診断ルーチンに関連して触れており、図57に関連してより詳細に説明する。
図57は、本発明の実施形態による、データ保護システムによって生成された一時バージョンが抱える潜在的な問題を診断するための一時バージョン診断ルーチンを説明する流れ図を示す。一時バージョン診断ルーチン5700は、ブロック5701で開始し、判定ブロック5703で、一時バージョンが作成されているコピーが、有効な状態にあるかどうかの判定が行われる。判定ブロック5703で、一時バージョンが生成されているコピーが有効な状態にあると判定された場合、判定ブロック5705で、そのコピーの前回の一時バージョンジョブが成功したかどうかについて判定が行われる。判定ブロック5705で、コピーの前回の一時バージョンジョブが成功しなかったと判定された場合、判定ブロック5707で、その一時バージョンジョブの失敗の理由が、一時バージョンジョブのタスクに関連するタスク軌跡から獲得される。
判定ブロック5709で、説明を提供し、一時バージョンが再び作成されるべきであるとユーザに示唆するエラーレポートが生成される。代替の実施形態では、説明を提供するレポートを生成することに加えて、データ保護システムは、次の一時バージョンを作成するための一時バージョンジョブを自動的にスケジュールすることができる。
判定ブロック5703を再び参照すると、一時バージョンが作成されるべきコピーが、有効な状態にないと判定された場合、一時バージョン診断ルーチン5700は、図56に示したブロック群に関して、前述したとおり続けられる。
判定ブロック5705で、有効なコピーの前回の一時バージョンジョブが成功したと判定された場合、判定ブロック5711で、一時バージョンが実際に作成されたかどうかの判定が行われる。判定ブロック5711で、一時バージョンが実際に作成されていないと判定された場合、判定ブロック5713で、コピージョブ失敗があったかどうかの判定が行われる。判定ブロック5713で、コピージョブ失敗があったと判定された場合、一時バージョン診断ルーチン5700は、図55に例示し、説明するブロックに関して、前述したとおりに続けられる。
しかし、判定ブロック5711で、一時バージョンが作成されなかったと判定され、判定ブロック5713で、コピージョブ失敗がなかったと判定された場合、そのことにより、そのコピーに対する活動が存在せず、したがって、一時バージョンは必要なかったことが、データ保護システムに明らかになる。さらに、コピー、および/または一時バージョンに関して問題が存在しないため、ブロック5715で、コピーに対する活動が存在せず、したがって、一時バージョンは作成されなかったことをユーザに知らせる情報レポートが生成される。
判定ブロック5711を再び参照すると、一時バージョンジョブが実行され、一時バージョンが作成されたと判定された場合、判定ブロック5721(図58)で示すとおり、回復が必要となった場合、最も古い意図された一時バージョンが利用可能であるかどうかの判定が行われる。最も古い意図された一時バージョンが利用可能であるかどうかを判定することにより、期間(duration)インテントが満たされているかどうかが確認される。例えば、期間インテントが、少なくとも1年経過した情報を回復することが可能であるべきことである場合、最も古い意図された一時バージョン(1年経過したもの)が利用可能であることにより、期間インテントが満たされていることが確認される。判定ブロック5721で、最も古い意図された一時バージョンが、回復のために利用できないと判定された場合、最も古い意図された一時バージョンが利用できないこと、およびその原因はおそらく、ディスクスペースの不足に起因することをユーザに知らせるエラーレポートが生成される。エラーレポートは、ブロック5723で示すとおり、一時バージョンにより多くのディスクスペースを割り当てるようにという示唆もユーザに与える。
判定ブロック5721で、最も古い意図された一時バージョンが利用可能であると判定された場合、ブロック5725で、一時バージョン診断ルーチン5700は、所定の期間中に抜けたコピーの数を計算し、総保持期間中に抜けたコピーの総数を計算する。抜けた一時バージョン数が計算される所定の期間は、総保持期間より短い、1週間、2週間、1カ月などの、任意の時間の長さであることが可能である。総保持期間は、保護インテントをセットアップする際に、保護されたオブジェクトを回復できることをユーザが所望する全体の時間の長さを明らかにする時点で、ユーザによって明らかにされる。抜けたコピーの数を計算することにより、頻度インテントが満たされているかどうかが確認される。
判定ブロック5727で、ブロック5725において抜けたコピーが計算された所定の期間にわたって抜けている一時バージョンが、0%を超えているかどうかの判定が行われる。判定ブロック5727で、抜けている一時バージョンが存在しないと判定された場合、判定ブロック5729で、総保持期間にわたって抜けている一時バージョンが、50%未満であるかどうかの判定が行われる。判定ブロック5729で、総保持期間にわたって抜けている一時バージョンの数が、50%未満であると判定された場合、ブロック5731で示すとおり、データ保護システムの一時バージョン部分に関して、現在、問題が存在しないことをユーザに知らせる情報レポートが生成される。前述したとおり、問題を即時に報告しないことにより、データ保護システムは、ユーザの関与を必要とすることなしに、いずれの問題も解決する機会を有する。例えば、総保持期間にわたって抜けたコピーの数が、10%であるが、将来のコピージョブが成功して完了すると判定された場合、この割合は、ユーザに警告する必要なしに、時とともに低下する。
しかし、ブロック5729において、総保持期間にわたって抜けている一時バージョンが50%を超えていると判定された場合、ブロック5733で示すとおり、現在、抜けている一時バージョンの割合を明らかにし、抜けた一時バージョンの割合を継続的に監視すること以外は、アクションが必要ないことを示唆する警告レポートが生成される。
判定ブロック5727で、所定の期間にわたっていくつかの一時バージョンが抜けていると判定された場合、判定ブロック5735で、その所定の期間にわたって一時バージョンが抜けた数が、0%から20%までの間にあるかどうかの判定が行われる。判定ブロック5735で、所定の期間にわたって抜けたコピーの数が、0%から20%までの間にあると判定された場合、判定ブロック5737で、総保持期間にわたって抜けた一時バージョンの数が、50%未満であるかどうかの判定が行われる。判定ブロック5737で、総保持期間にわたって抜けた一時バージョンの数が、50%未満であると判定された場合、ブロック5739で、抜けた一時バージョンの割合を提供し、抜けた一時バージョンの割合を監視する以外、アクションが要求されないことを示唆する警告レポートが生成される。
しかし、ブロック5737で、総保持期間にわたって抜けた一時バージョンの割合が、50%を超えたと判定された場合、ブロック5741で、抜けている一時バージョンの割合をユーザに知らせるエラーレポートが生成される。さらに、ブロック5741で生成されるエラーレポートは、保護が、予期されるとおりに実行されていないことをユーザに知らせ、明らかにされた保護パラメータ、ならびに作成ロケーションおよび格納ロケーションに関するディスクセットアップをユーザが調べるべきであると示唆する。
判定ブロック5735を再び参照すると、所定の期間にわたって抜けている一時バージョンのパーセンテージが、0%から20%までの間にないと判定された場合、判定ブロック5743で、総保持期間にわたって抜けている一時バージョンの数が、50%未満であるかどうかの判定が行われる。判定ブロック5743で、総保持期間にわたって抜けている一時バージョンの総数が、50%未満であると判定された場合、ブロック5745で、保護が、予期されたとおりに実行されていないことをユーザに知らせ、総保持期間にわたって抜けた一時バージョンの割合をユーザに提供し、ユーザがコピー自体の整合性を調べ、保護スケジュールを調べるべきであると示唆するエラーレポートが生成される。最後に、判定ブロック5743で、総保持期間にわたって抜けている一時バージョンの数が、50%を超えていると判定された場合、ブロック5747で示すとおり、保護が、一貫して不良であることをユーザに知らせ、作成ロケーションと格納ロケーションの両方において保護セットアップおよびディスクセットアップをユーザが調べるべきであると示唆するエラーレポートが生成される。
一時バージョン診断ルーチン5700の以上の説明に関して、特定の割合を利用しているが、任意の所定の割合を本発明の諸実施形態で利用することができ、本明細書で供する割合は、単に説明目的であることが、当業者には理解されよう。
図59は、本発明の実施形態による、データ保護システムにおける情報の回復に関する潜在的な諸問題を診断するための回復診断ルーチンを説明する流れ図である。回復診断ルーチン5900は、ブロック5901で開始し、判定ブロック5903で、回復ジョブが現在、実行されているかどうかの判定が行われる。判定ブロック5903で、回復ジョブが現在、実行されている場合、判定ブロック5905で、回復診断ルーチン5900は、実行中の回復ジョブに関連するタスクから警告が生成されているかどうかを判定する。判定ブロック5905で、実行中の回復ジョブに関連するタスクによって警告が生成されていないと判定された場合、データ保護システムに関する回復関連問題が存在しないことをユーザに知らせる情報レポートが生成される。判定ブロック5905で、現在、実行中のジョブに関連するタスクから警告が生成されていると判定された場合、ブロック5909で、現在、実行中の回復ジョブが、1つまたは複数の警告を生成したことをユーザに知らせる警告レポートが生成され、それらの警告をユーザに知らせ、何らかの解決が必要な場合、それらの警告を解決する、示唆されるアプローチを提供する。例えば、現在、実行中のジョブが、ファイルが現在、開いているために、ファイルを復元できなかったことを示す警告を生成することが可能である。
判定ブロック5903で、回復ジョブが現在、実行されていないと判定された場合、判定ブロック5911で、最近の回復ジョブ(例えば、過去72時間以内に実行された回復ジョブ)が完了することができなかったかどうかの判定が行われる。判定ブロック5911で、完了することができなかった最近の回復ジョブが存在しない、すなわち、すべて成功して完了した、または回復ジョブがまったく実行されていないと判定された場合、ブロック5913で、データ保護システムの回復部分に関連する問題は存在しないことをユーザに知らせるレポートが生成される。
判定ブロック5911で、最近、実行された回復ジョブが失敗したと判定された場合、ブロック5915で、そのジョブの失敗の理由が、そのジョブに関連するタスク軌跡から獲得される。前述したとおり、特定のジョブに関連するタスクに関するタスク軌跡は、タスクが失敗した場合は、タスクがなぜ失敗したかを含め、タスク自体に関する情報を含む。
判定ブロック5917で、ブロック5915で獲得された失敗の理由を利用して、回復ジョブの失敗は、データ保護システムが、データが回復されるべき先の作成ロケーションに接触することができなかったことの結果であったのかどうかの判定が行われる。判定ブロック5917で、回復ジョブ失敗の理由が、データ保護システムが作成ロケーションに接触することができなかったことであったと判定された場合、ブロック5919で、前回の回復ジョブ失敗の理由をユーザに知らせ、ユーザが、作成ロケーションにおけるネットワーク接続を調べ、作成ロケーション上のエージェントを調べて、エージェントが適切に動作していることを確実にすべきであると示唆するエラーレポートが生成される。コピー診断ルーチン(図54〜図56)に関連して前述したとおり、作成ロケーションなどのロケーションに接触できないことは、ネットワーク停止、電力問題、または作成ロケーションが、メンテナンス、または他の操作のためにオフラインにされていることなどの、いくつかの外部イベントの結果である可能性がある。
判定ブロック5917で、回復ジョブ失敗の理由は、データ保護システムが作成ロケーションに接触できなかったことではないと判定された場合、判定ブロック5921で、回復ジョブ失敗の理由は、作成ロケーション上の目標が利用できなかったことの結果であったのかどうかが判定される。作成ロケーション上の目標は、回復されたデータが記録されるべき作成ロケーションの物理的部分であることが可能である。判定ブロック5921で、目標が利用できなかったと判定された場合、ブロック5923で示すとおり、回復ジョブ失敗の理由をユーザに知らせ、潜在的な問題に関して作成サーバ上の物理的ロケーションをユーザが調べるべきであると示唆するエラーレポートが生成される。
判定ブロック5921で、回復ジョブ失敗は、作成ロケーション上の目標が利用できなかったことの結果ではなかったと判定された場合、判定ブロック5925で、回復ジョブ失敗の理由は、回復ジョブのタスクが、格納ロケーションからデータを読み取ることができなかったことであるかどうかが判定される。回復ジョブのタスクが、格納ロケーションからデータを読み取ることができなかったと判定された場合、ブロック5927で、回復ジョブ失敗の理由をユーザに知らせ、格納ロケーションにおけるディスクおよび/または媒体をユーザが調べるべきであるという示唆を与えるエラーレポートが生成される。
判定ブロック5925で、回復ジョブ失敗の理由は、タスクが、格納ロケーションから読み取ることができなかったことの結果ではなかったと判定された場合、判定ブロック5929で、回復データが回復されるべき先の作成ロケーションにおけるディスクが、現在、いっぱいであるかどうかの判定が行われる。判定ブロック5929で、ディスクがいっぱいであると判定された場合、ブロック5931で、作成ロケーションにおけるディスクが、要求されたデータを回復するための十分な余地を有さないことをユーザに知らせ、ユーザが、代替のロケーションにデータを回復するか、または作成ロケーションにおけるディスクスペースを増加させるべきであると示唆するエラーレポートが生成される。
最後に、判定ブロック5929で、回復ジョブ失敗の理由は、作成ロケーションにおけるディスクがいっぱいであったことの結果ではなかったと判定された場合、前の回復ジョブにおいて未知のエラーが生じたことをユーザに知らせ、ユーザが回復ジョブを再実行すべきであることを示唆するレポートが生成される。
本発明の好ましい実施形態を図示し、説明してきたが、本発明の趣旨および範囲を逸脱することなく、様々な変更を加えることができることが理解されよう。