図1Aは、本発明の1つの実施形態による、データの保護と回復を行うデータ保護システムを示すブロック図である。本明細書で説明するデータ保護システム100の実施形態を使用すると、システム管理者などのユーザはデータを容易に保護し、回復することができる。一般に、データの管理と保護は、運用場所103で頻繁に作成され、変更されるデータに対して要求される。こうしたデータは、記憶場所105でデータの複製またはコピーとして保護され、格納されている。記憶場所は、運用場所からリモートに配置してもよく、および/または運用場所と同じ場所でもよい。さらに、記憶場所には記憶形態の異なる複数の場所を含めてもよい。たとえば、データの複製を1つの場所に保持し、同じデータのアーカイブを別の場所に保持してもよい。したがって、記憶場所は一般にデータを格納し、保護する場所の任意の組み合わせおよび/またはタイプを表している。
本明細書で説明するように、データ保護システム100には、運用場所103および記憶場所105と通信し、運用場所103と記憶場所105の間におけるデータの保護と流れを監視するデータプロテクタ(data protector)101を備えている。データプロテクタ101は、図1Aに示すように、サーバなどの唯一のコンピューティングデバイス上に配置してもよいし、複数のコンピューティングデバイスに分散してもよい。データプロテクタ101は、運用場所103および/または記憶場所105など、データ保護システム100内のさまざまなコンピューティングデバイス上に配置されたエージェントを活用し、こうしたエージェントと通信して複数のデバイス間のデータ保護に対する分散型の制御と管理を実現する。データ保護システム100によって提供されるデータ保護のタイプの例としては、仮バージョンによる複製、テープやディスクのような取り外し可能な媒体への従来のアーカイブ、および複製とアーカイブの両方の組み合わせが含まれるが、これに限定はされない。他の任意の形態および/または組み合わせによる保護を本発明の実施形態で利用できること、および複製、仮バージョン、アーカイブは例にすぎないことは言うまでもない。
図1Bは、データ保護システム100の別の実施形態を示している。具体的に、データプロテクタ110はその一部または全体が運用場所111に配置されている。このような実施形態において、データプロテクタ110は、自らと運用場所111の間、および自らと記憶場所113の間の通信が可能である。
図1Cは、本発明の1つの実施形態による、データを保護し、回復するためのデータ保護システム100のさらに別の実施形態を示している。図1Cに示すように、データプロテクタ120はその一部または全体が記憶場所123に配置されている。このような実施形態において、データプロテクタ120は、自らと記憶場所123の間、および自らと運用場所121の間の通信が可能である。
図2は、本発明の1つの実施形態による、データを保護し、回復するためのデータ保護システム200を示す別のブロック図である。データ保護システム200は、運用場所1 203、運用場所2 205...運用場所N 207のように複数の運用場所がデータプロテクタ201と対話することで、運用場所から発生するデータの複製および/または仮バージョンを格納できることを示している。データプロテクタ2 201は、運用場所203、205、207と通信し、こうした運用場所にあるデータを記憶場所A 209、記憶場所B 211、記憶場所X 213のような個々の記憶場所で保護できる。本明細書で説明する実施形態は、任意の数のデータ運用場所および記憶場所の任意の組み合わせで利用できる。
言うまでもないが、図1A〜2に示すように、本発明の実施形態による、任意のタイプの構成によるデータ保護システムを利用してデータを保護でき、回復できる。
全体として、本明細書で説明するデータ保護システムの実施形態は、データ保護システムのユーザが、運用場所でどのデータが重要か、およびユーザはそのデータをどのように保護する必要があるのかを指定するための高水準の機能を提供する。特に、本明細書で説明するシステムは、特定の運用場所でどのデータを保護する必要があるのか、およびそのデータをどのように保護する必要があるのかを論理的に指定する機能を提供する。データ保護システムは、この論理的な指定を一連の「ジョブ」に変換し、ジョブをスケジュールし、実行することでデータを保護する。ジョブには、以下で説明するように、ユーザが指定したデータを保護するために必要な詳細情報が含まれる。たとえば、ジョブを使用して、複製、有効性確認、仮バージョン管理、アーカイブ、および媒体管理などを実行できる。
ユーザがデータを論理レベルで選択できるようにするために、データ保護システムはユーザに対して運用場所に格納されたデータの論理表現を「名前空間」および「名前空間要素」の形で提供する。名前空間は、本明細書で使用する限り、アプリケーションの論理表現である。たとえば、データ保護システム内で名前空間として表されるアプリケーションには、分散ファイルシステム(「DFS」)、ローカルファイルシステム、SharePointやExchange名前空間などのWebアプリケーション名前空間が含まれるがこれに限定はされない。言うまでもないが、例示的なアプリケーションのリストは単に例を示しており、いかなる限定を意味するものでもない。任意のタイプのアプリケーションをデータ保護システムと併用でき、名前空間として表される。
名前空間要素は、本明細書で使用する限り、データなどの物理オブジェクトの論理表現であり、名前空間を構成する主要なエンティティである。たとえば、名前空間要素は、DFS link、サーバ、共有、ボリューム、フォルダ、Exchange Storage Groupのいずれでもよいが、これに限定はされない。一般に、Exchange Storage Groupは共通のログを共有するデータベースの集まりである。当業者には言うまでもないが、名前空間要素を使用して任意のタイプの物理オブジェクトまたは物理オブジェクトの集まりを表すことができる。
データを保護するために、ユーザは論理的な名前空間で検索またはナビゲートし(navigate)、1つまたは複数の名前空間要素を選択する。選択した名前空間要素は、既存の「保護対象グループ」に関連付けられるか、またはこの名前空間要素を使用して新しい保護対象グループを作成する。名前空間要素が保護対象グループに関連付けられると、その名前空間要素に関連付けられた物理オブジェクト(データ)も保護対象グループの要素となる。保護対象グループは、本明細書で使用する限り、名前空間要素を論理的にグループ化したものであり、関連の保護対象オブジェクトに対して同じ保護規則が適用される。
各名前空間要素を使用して、本明細書で「保護可能オブジェクト」と呼ばれる1つまたは複数の物理オブジェクト(データ)を検出し、これを保護対象グループに追加できる。保護可能オブジェクトが検出されると、これを保護対象として選択できる。保護可能オブジェクトを保護対象として選択すると、選択した保護可能オブジェクトは保護対象グループの要素である「保護対象オブジェクト」になる。保護可能オブジェクトは、本明細書で使用する限り、保護対象となり得る物理的な情報/データである。たとえば、保護可能オブジェクトは、フォルダ、ファイル、電子メールボックス、データベース、Webサイトなどでよいがこれに限定はされない。保護対象オブジェクトは、本明細書で使用する限り、保護対象として指定し、選択した保護可能オブジェクトである。
保護対象グループを作成する以外に、ユーザは保護対象グループを保護する望ましい方法、タイミング(頻度)、期間について高水準の指定ができる。さらに、ユーザは保護対象グループのコピーまたはアーカイブを保持する期間を指定できる。こうした高水準の指定は、複製、アーカイブ、媒体管理、およびその任意の組み合わせなど、保護に関するあらゆる作業で利用できる。ユーザの指定に基づいて、保護対象グループのオブジェクトを保護するための詳細な計画が作成される。
ユーザは、データを回復する場合に、ユーザが回復しようとするデータを、論理的な名前空間で検索またはナビゲートすることで検出できる。以下で説明するように、ここで回復するデータへの論理パスを使用して、1つまたは複数の回復可能オブジェクトを検出する。個々の回復可能オブジェクトは、保護対象オブジェクトの1つのバージョンまたはその一部を表している。
図3は、本発明の1つの実施形態による、運用場所にある保護可能オブジェクトの最初の選択と保護を説明するデータ保護システム300を示す流れ図である。図3に示すように、データ保護システム300は、運用場所305にエージェントを配置して運用場所305にある保護可能オブジェクトを検出できるようにし、こうした保護可能オブジェクトに対応する名前空間と名前空間要素を特定する。このような名前空間と名前空間要素をユーザと対話できるように公開し、ユーザのインターフェイス303に表示する。
たとえば、図4は、ユーザが対話し、選択するためにユーザインターフェイス303上に公開され、表示された、本発明の1つの実施形態による複数の名前空間と名前空間要素を示すブロック図である。当業者には言うまでもないが、図4の表示は例示的なものにすぎず、本発明の実施形態では他の任意の構成で表示できる。たとえば、ボリュームは表示するが共有は表示しなくてもよい。
表示400は、DFS ROOTS名前空間401とSERVERS名前空間403を示している。DFS ROOTS名前空間401には、2つの名前空間要素405と407が含まれており、いずれもDFS ROOTである。DFS ROOTS名前空間401の下で特定される名前空間要素は、\\ABCD\PUBLIC 405と\\EFG\PRIVATE 407である。さらに、SERVERS名前空間403には、複数の名前空間要素409、411、413、415、421、423、425が含まれる。こうした名前空間要素には、さらにいくつかの名前空間要素が含まれていてもよい。たとえば、SERVER 409には、SHARES名前空間要素タイプ411など、いくつかの名前空間要素タイプが含まれる。同様に、SHARES名前空間要素タイプ411には、SHARE1名前空間要素413とSHARE2名前空間要素415が含まれる。さらに、SHARES名前空間要素411、SHARE1名前空間要素413、SHARE2名前空間要素415は、すべて保護可能オブジェクトの論理表現である。
ユーザは、展開ボックスまたは折りたたみボックス(たとえば展開ボックス417)を選択して名前空間と名前空間要素の表示400を操作できる。さらに、ユーザは選択ボックス(たとえば選択ボックス419)を選択することで、1つまたは複数の名前空間要素を保護対象として選択できる。別の実施形態では、ユーザは保護の対象とする名前空間要素を選択できるだけでなく、保護の対象とする名前空間を選択してもよい。
図3に戻り、ユーザインターフェイス303に名前空間と名前空間要素の表示400が表れると、ユーザはデータ保護システム300で保護する必要のある名前空間要素を選択する。さらに、ユーザは選択した名前空間要素の「保護インテント」を指定できる。保護インテントは、本明細書で使用する限り、選択したデータを保護する方法に関する高水準の記述である。たとえば、ユーザは毎晩1度オブジェクトのコピーをバックアップし、週次のコピーを1年間保持することで、選択した名前空間要素を保護するように指定できる。選択した名前空間要素と関連の保護インテントは、ユーザインターフェイス303からデータプロテクタ301に転送される。
データプロテクタ301は、選択した名前空間要素と保護インテントを使用して、選択した名前空間要素で特定される保護可能オブジェクトを含む保護対象グループを作成する。保護可能オブジェクトは、選択すると保護対象オブジェクトになる。保護対象グループには、選択した名前空間要素、特定された関連の保護対象オブジェクト、保護対象オブジェクトを保護する方法についての詳細な計画が含まれる。さらに、データプロテクタ301は以下で説明するように少なくとも1つの自動検出グループを作成する。1つの実施形態において、データプロテクタ301は、後述するように保存検索ルーチンも作成できる。
保護対象グループの作成は、選択した論理オブジェクト(名前空間要素)を運用場所にある関連の保護可能オブジェクトにマップすることによる。これで、特定された保護可能オブジェクトは保護対象グループのメンバーとして追加され、保護対象オブジェクトになる。保護可能オブジェクトは、既存の保護対象グループに追加することも、新しい保護対象グループを構成することもできる。さらに、保護インテントを使用して保護対象グループを保護するためのグループ計画を作成する。グループ計画には、リソース計画、準備計画、保護計画が含まれるがこれに限定はされない。それぞれの計画については、以下で詳細に説明する。グループ計画とグループ内の計画は、1つまたは複数のジョブとスケジュールパラメータから構成される。リソース計画では、割り当てるリソースの量を指定する。割り当てるリソースには、複製用のディスク領域、ディスクやテープなどのアーカイブ用の取り外し可能な媒体、複製と取り外し可能な媒体の両方の組み合わせなどを含めてもよいがこれに限定はされない。スケジュールパラメータは、ジョブをいつ実行するかを指定する。
データプロテクタ301は、保護対象グループ、データを保護するための計画、自動検出グループ、保存検索を生成した後、運用場所305と記憶場所307に対して保護の準備をする。具体的には、データプロテクタは通信を有効化し、運用場所305から記憶場所307にデータを転送するエージェントを配置する。運用場所と記憶場所における保護の準備が完了すると、保護が開始され、保護対象オブジェクトのデータのコピーが運用場所305から記憶場所307に転送される。転送されたデータのコピーは、以下で説明するように、複製、アーカイブコピー、または他の任意のデータ保護タイプとして保持できる。
以下で詳細に説明するように、記憶場所307に対して保護の準備をする場合に、データプロテクタ301はユーザの要求どおりに物理オブジェクトのコピーを格納するために必要なリソースを割り当てる(リソース計画に従って)。保護を開始するために、運用場所305に格納された保護可能オブジェクトの中から選択したオブジェクトの最初のコピーを作成し、コピーを転送し、コピーを記憶場所307に格納するジョブを開始する。コピーが複製の場合は、有効性確認ジョブを実行することでその有効性を確認し、複製が正確であることを保証する。コピーが取り外し可能な媒体にアーカイブされている場合に、最初のコピーは選択した保護可能オブジェクトの完全バックアップである。最初のコピーを生成すると、データプロテクタ301は、定期的にそのコピーを更新するジョブ、または運用場所305に配置された情報の変更を使用して追加のコピーを作成するジョブを作成する(アーカイブと同様)。
運用場所305に格納された保護可能オブジェクトの中から選択した名前空間要素に関連付けられたオブジェクトを特定するために、データプロテクタ301は、論理オブジェクト(名前空間要素)を物理オブジェクト(保護可能オブジェクト)にマップする。もう一度図4を参照すると、2つの名前空間、DFS ROOTS 401、SERVERS名前空間403が表示されており、それぞれが複数の名前空間要素を含んでいる。ユーザは名前空間要素の1つまたは複数を選択できる。1つの実施形態において、1つの名前空間要素を選択すると、この要素に含まれるすべての名前空間要素もデフォルトで選択される。図4を例にとり、ユーザがSERVER1 409のStorage Group1 421を選択すると、DATABASE A 423とDATABASE B 425も自動的に選択される。ユーザは選択した1つまたは複数の名前空間要素を除外してもよい。
各名前空間要素は、運用場所305にある1つまたは複数の保護可能オブジェクトにマップされる。たとえば、名前空間要素\\ABCD\PUBLIC 405は複数の保護可能オブジェクトにマップされる。図5を参照すると、名前空間要素\\ABCD\PUBLIC 505は、運用場所305に配置された3つの保護可能オブジェクトにマップされる。具体的に、名前空間要素\\ABCD\PUBLIC 505は、server1上のD:\folder 507、server2上のD:\folder 509、server3上のF:\ 511にマップされる。保護可能オブジェクト507、509、511は、それぞれ運用場所305内に配置されている。
データプロテクタが名前空間を検索し、ナビゲートし、さらに名前空間要素505などの論理オブジェクトから物理オブジェクトへのマップを行うために、名前空間と名前空間要素の関連付けスキーマが作成される。このスキーマはアプリケーション名前空間の構成の抽象表現であり、名前空間と考えられるものには分散ファイルシステムやExchangeが含まれるがこれに限定はされない。
図6は、本発明の1つの実施態様による、ボリュームスキーマ(Volumes Schema)を表す名前空間のタイプと名前空間要素のタイプの関連付けスキーマを示すブロック図である。このスキーマは有向グラフとして表わされており、グラフのノードはアプリケーション名前空間内の名前空間要素のタイプを表し、リンクは名前空間要素間の包含関係や結合関係を表している。名前空間要素のタイプ間の包含関係や結合関係は、このようなタイプのインスタンスが関係する可能性のあるすべての方法を表している。図6を参照すると、包含関係を矢印の付いた線で示し、結合関係を矢印が2つ付いた線で示している。たとえば、タイプ「DFS root」の名前空間要素603は、タイプ「共有」の名前空間要素609に接続でき617、共有609はボリューム611に接続できる619。またはフォルダ615に接続してもよい。
包含関係は名前空間要素間の直接的な親/子関係であり、親は論理的に子から構成されている。たとえば、ドメイン601には、サーバ607が含まれ623、さらにDFS ROOT603が含まれる625。サーバ607には、共有609が含まれ627、ボリューム611が含まれる629。ボリューム611には、フォルダ615が含まれ631、マウントポイント613が含まれる633。フォルダ615には、他のフォルダとファイルが含まれる(図示せず)。
結合関係はソース/ターゲットの関係であり、結合関係におけるソース名前空間要素はターゲット名前空間要素の論理的な同義語であり、ソースパスとターゲットパスは2つの異なる名前空間の同じ基本オブジェクトを表すことを意味する。結合関係は、1対多数の関係でもよい。すなわち、唯一のソース名前空間要素に対して複数のターゲット名前空間要素を指定できる。この場合、ターゲットはソースで表される基本的なデータを取得する選択的な場所を表す。たとえば、DFS root 603はターゲットとして複数の共有609にマップできる617。結合関係は多数対1でもよい。ちまり、接続のターゲットには他の名前空間における複数の論理名があってもよい。たとえば、フォルダ615では多くの共有609がこのフォルダ615にマップされてもよい621。
さらに、複数の論理的な名前空間要素を同じ保護可能オブジェクトにマップしてもよい。たとえば、SHARE1名前空間要素513はserver1 515のE:\PRIVATEにマップされる。同様に、SHARE2 名前空間要素517もSERVER1 515のE:\PRIVATEにマップできる。
図7は、本発明の1つの実施形態による、論理的な名前空間要素と物理的な保護可能オブジェクトとのマッピングスキーマを示すブロック図である。具体的に、スキーマ700はドメインABCD 701がDFS ROOT−public 703および3台のサーバ705と包含関係があることを示している。同様に、DFS ROOT−public 703は、link1 707A、link2 707B、link3 707Cを含む3つのDFS link 707と包含関係がある。Link1 707A、link2 707B、link3 707Cには、それぞれ共有711への結合関係がある。具体的には、Link1 707Aは\\server1\shareに接続し、link2 707Bは\\server2\shareに接続し、link3 707Cは\\server3\shareに接続する。\\server1\share、\\server2\share、\\server3\shareは、それぞれDFS名前空間とは異なる名前空間の論理オブジェクトである。これはDFS link 707と共有711との接続719をトラバースすること(traversal)によって示される。具体的に、\\server1\share、\\server2\share、\\server3\shareは、UNCサーバ名前空間にある。共有711を参照し、\\ABCD\PUBLICのマップを完了するために、各共有が何にマップされるかを特定する。前述のように、共有はボリューム713および/またはフォルダ717にマップできる。このように、例で続けると、論理オブジェクト\\server1\shareはserver1上の物理オブジェクトD:\folderにマップされ、\\server2\shareはserver2上のD:\folderにマップされ、\\server3\shareはserver3上のF:\にマップされることが特定される。server1上のD:\folder、server2上のD:\folder、server3上のF:\は、論理オブジェクト\\ABCD\PUBLIC 505で表される3つの物理的な保護可能オブジェクトである。
図7の例に示すように、これはスキーマ600(図6)を使用して、論理的な名前空間要素、その名前空間要素で表される運用場所にある物理オブジェクトへのマップの関係から特定できる。スキーマ600の各ポイントから、マップの次の要素にリンクするために、そのポイントからどの関係を検索できるのかがわかる。
データプロテクタの名前空間トラバース機能は、論理的な名前空間と名前空間要素から運用場所にある物理オブジェクトの参照、検索、マップを行う任意のタイプのアプリケーションに適用できる。たとえば、ユーザはユーザインターフェイスを介してワイルドカードなどの検索パラメータを指定でき、データ保護システムは既存の名前空間と名前空間要素のリストに問い合わせて適切な結果を返すことができる。ユーザインターフェイスは検索要求をデータプロテクタに渡し、データプロテクタはユーザインターフェイスに検索結果を返す。データプロテクタは、名前空間にまたがる「検索」、「ナビゲート」「マップ」という一般的な操作をサポートする。このとき、各アプリケーション名前空間の特定の構造をスキーマ内に取り込むことができる。データプロテクタを拡張して新しいアプリケーションをサポートするようにするには、名前空間上で基本の操作を実行して包含関係と結合をトラバースするモジュールと、こうした操作をより大規模な「検索」、「ナビゲート」、「マップ」の操作に構成する方法を説明するスキーマを用意するだけでよい。
本発明の1つの実施形態は、データ保護以外のアプリケーションにも適用できる。たとえば、記憶領域が運用場所全体あるいは運用場所内の一連のサーバ間でどのように使用されているかを示すストレージレポートを作成してもよい。こうした実施形態において、ユーザはDFS rootの下の100MBより大きなファイルをすべて表示するレポートを設定できる。
運用場所には、保護対象となり得るさまざまなタイプのオブジェクトが格納されている。たとえば、図8は、本発明の1つの実施形態による、本データ保護システムで保護できる保護可能オブジェクトを格納する運用場所800を示すブロック図である。運用場所800には、3台のサーバ801、803、805が配置されている。各サーバは、単独のコンピューティングデバイスでもよいし、1台のサーバと見なされるコンピューティングデバイスのグループでもよい。各サーバは、中央に配置されていてもよいし、地理的に分散していてもよい。
サーバ1 801などのサーバには、1つまたは複数の「データソース」が含まれる。データソースは、本明細書で使用する限り、データプロテクタで操作するアプリケーションデータの高水準の抽象化である。データソースはその物理的なデータが1つまたは複数の保護可能オブジェクトとして表示され、データソース自体が保護可能オブジェクトと考えられる。データソースは1台のサーバに含まれるが、1台のサーバには1つまたは複数のデータソースが含まれていてもよい。たとえばサーバ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が含まれている。
サーバ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 Storage Groupデータソース全体を保護可能オブジェクトとして表示でき、保護対象オブジェクトタイプはストレージグループとなる。また、データ保護システムは同じストレージグループのデータソースを、各保護可能オブジェクトの保護可能オブジェクトタイプがデータベースであるような複数の保護可能オブジェクトに分割することもできる。同じ保護可能オブジェクトが、2つ以上の異なる保護可能オブジェクトタイプであってもよい。たとえば、データ保護システムは、ブロックレベルで1つの保護可能オブジェクトタイプの保護可能オブジェクトとして、またファイルレベルでは別の保護可能オブジェクトタイプの保護可能オブジェクトとしてボリュームを表示できる。
データソースの例には、オペレーティングシステム、システムボリューム、Exchange Storage Group、SQLデータベースなどが含まれるが、これに限定はされない。サーバに関する保護可能オブジェクトタイプの例には、システム保護対象ファイルやオペレーティングシステムデータストア(レジストリやアクティブディレクトリなど)が含まれるが、これに限定はされない。ファイルシステムボリュームの保護可能オブジェクトタイプには、ディレクトリやファイルが含まれるが、これに限定はされない。ファイルシステムボリュームエンティティは、ターゲット名前空間要素にリンクされたファイル共有またはDFSによって検出できる。Exchange Storage Groupの保護可能オブジェクトタイプには、データベースやメールボックスが含まれるがこれに限定はされない。
前述のように、選択可能な名前空間要素は、それぞれ保護可能オブジェクト801〜863(図8)などの1つまたは複数の保護可能オブジェクトにマップされる。各保護可能オブジェクトは特定の保護可能オブジェクトタイプに分類され、各保護可能オブジェクトは唯一のデータソースに含まれる。さらに、各データソースは運用場所にある唯一のサーバに含まれる。
ユーザが名前空間要素\\ABCD\PUBLIC 405(図4)を選択し、引き続き名前空間要素を保護可能オブジェクトにマップする(図5と7に関連して説明したように)例をもう一度参照しながら、本発明の実施形態に従ってこうした保護可能オブジェクトと関連を保護対象グループにマップする方法について、図9A〜9Bに関連して説明する。
ユーザの観点から見ると、保護対象グループのメンバーは、ユーザが選択して保護対象グループに追加した名前空間要素、および自動検出グループ(後述)の結果として追加された保護可能オブジェクトによって定義される。さらに、データ保護システムを使用すると、ユーザは保護対象グループの各名前空間要素がどの保護対象オブジェクトにマップされるか、およびこうした各保護対象オブジェクトの状態を確認できる。
前の例に戻り、名前空間要素\\ABCD\PUBLIC 405は、3つの異なる保護可能オブジェクト、server1上のD:\folder 507、server2上のD:\folder 509、server3上のF:\ 511にマップされる。図7に関連して説明したマップを実行し、図9Aを参照すると、server1上のD:\folder 507は、server1 901上のデータソースD:\ 907に格納されたfolder 909を表す。server2上のD:\folder 509は、server2 903上のデータソースD:\ 935に格納されたfolder 927を表す。最後に、server3上のF:\ 511は、server3 905上のデータソースF:\ 951を表す。図9Bを参照すると、選択した名前空間要素\\ABCD\PUBLIC 505は、図9Aに関連して説明した保護対象オブジェクトにマップされ、こうしたオブジェクトは保護対象グループ930に関連付けられる。前述のように、選択した保護対象オブジェクトに含まれる保護可能オブジェクトは自動的に保護対象グループに含まれる。たとえば、一部がserver3 905上のF:\ 951にマップされる\\ABCD\PUBLIC 505を選択すると、保護可能オブジェクト953と955が追加される。これは、オブジェクト953と955がserver3 905上の保護対象オブジェクトF:\ 951に含まれるためである。図9Bに示すように、保護対象グループ930には、server1 901、server2 903、server3 905のように、異なるサーバ上に配置された保護対象オブジェクトを含めることができる。
図10は、本発明の1つの実施形態による、選択した名前空間要素を含む保護対象グループ、マッピングされた保護対象オブジェクト、および保護対象グループのプロパティを示すブロック図である。具体的には、保護対象グループ1030には、名前空間要素\\ABCD\PUBLIC 1005、前の例に関して説明したマップされた保護対象オブジェクトのそれぞれ、および選択した保護対象オブジェクトに含まれる保護対象オブジェクトが含まれる。具体的には、保護対象グループ1030には、保護対象オブジェクト、server1上のD:\folder 1009、server2上のD:\folder 1027が含まれる。さらに、保護対象グループ1030には、server3上の保護対象オブジェクトF:\ 1051とserver3上の保護対象オブジェクトF:\ 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、11、32、33、34、35、36、38、39、41、48A、48B、48C、49A、49B、49C、52、53、54、55、56、57、58、59では、特定の機能を実現するためのブロックを図示している。別の実施形態では、使用するブロックがこれより多くても少なくてもよい。本発明の実施形態において、ブロックはソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア関数、ソフトウェアサブルーチン、ソフトウェアメソッド、ソフトウェアインスタンス、コード片、ハードウェア操作、もしくはユーザ操作を、単独で、あるいは組み合わせによって表すことができる。
図11は、本発明の1つの実施形態による、保護対象グループを保護する計画を立てるための構成ルーチンを示す流れ図である。構成ルーチン1100は、ブロック1101で開始され、ブロック1103でルーチンはユーザインターフェイスを介して選択した名前空間要素と保護インテントを取得する。後述するように、ユーザは保護の対象として複数の名前空間要素を選択できる。指定した保護インテントは選択したすべての要素に適用される。ブロック1105で、選択した名前空間要素は該当する保護可能オブジェクトにマップされる。
判断のブロック1107で、前に選択した名前空間要素に追加される名前空間要素が選択されているかどうかを判断する。判断のブロック1107で、追加の名前空間要素が選択されていると判断した場合は、ルーチンはブロック1103の選択した名前空間要素の取得に戻る。しかし、判断のブロック1107で追加の名前空間要素がないと判断した場合に、ブロック1109でデータプロテクタは選択した名前空間要素に対応する保護対象グループを生成し、これを使用してブロック1105でマップされた関連の保護可能オブジェクトを保護する。保護対象グループに追加された保護可能オブジェクトは、保護対象オブジェクトになる。
ブロック1111で、ユーザがブロック1103で指定した保護インテントに基づいて、保護のためのグループ計画が生成される。保護に関するグループ計画には、保護の頻度や望ましい保護のタイプを含めることができる。保護タイプの例には、「バックグラウンド保護」、「バックアップ保護」、アーカイブ保護が含まれるが、これらに限定はされない。バックグラウンド保護は、ほとんど連続的に保護が行われる(たとえば24時間年中無休で1時間ごとにコピーを更新する)保護のタイプである。バックアップ保護は、特定のインスタンス(たとえば、夜間に一度、毎晩)を実行するようにスケジュールされる保護タイプである。グループ計画は、保護対象グループ内のすべての保護対象オブジェクトに適用される。グループ計画の生成については、以下で詳細に説明されており、「インテント変換」と呼んでいる(図31〜34)。
ブロック1113で、保護対象オブジェクトを格納する運用場所とこのオブジェクトのコピーを格納する記憶場所に対して保護の準備をする。たとえば、データプロテクタは記憶場所に格納され、有効性が確認されたデータの最初のコピーを作成する。ブロック1115に示すように、保護が継続され、選択した名前空間要素に関連付けられた保護対象オブジェクトがコピーされて格納された後、ルーチンはブロック1117で終了する。
図12は、本発明の1つの実施形態による、ブロック1109(図11)に示す保護対象グループの作成をより詳細に説明する保護対象グループ作成ルーチンを示している。保護対象グループ作成ルーチン1200は、ブロック1201で開始され、ブロック1203で保護の対象として選択した名前空間要素を受け取る。さらに、選択した名前空間要素に関する保護インテントも受け取る。判断のブロック1205で、受け取った名前空間要素を新しい保護対象グループに追加するか、それとも既存の保護対象グループに追加するかを判断する。名前空間要素を新しい保護対象グループに追加しないと判断した場合は、ブロック1207で、名前空間要素を追加する既存の保護対象グループを選択する。
ブロック1209で名前空間要素に関連付けられたデータソースの重複が解決される。このブロックについては、以下(図13)で詳細に説明する。最後にブロック1211で、追加の名前空間要素と関連の保護可能オブジェクトを含むように既存の保護対象グループが更新される。さらに、ユーザは保護対象グループのグループ計画を変更することもできる。
判断のブロック1205に戻り、受け取った名前空間要素を新しい保護対象グループに追加すると判断した場合は、ブロック1213で、それらの名前空間要素に関連付けられたデータソースの重複を解決する。ブロック1215で、新しい保護対象グループの名前を受け取る。1つの例では、ユーザがユーザインターフェイスを介して新しい保護対象グループの名前を指定してもよい。あるいは、保護対象グループの名前をデータ保護システム自体で自動的に生成してもよい。ブロック1217で、前にデータ保護システムに対して指定した保護インテントに基づいて、保護対象グループに関するグループ計画を作成する。ブロック1219で、保護対象グループ作成ルーチンが終了する。
図13は、本発明の1つの実施形態による、2つ以上の保護対象グループに含まれるデータソースの重複を検出する重複検出ルーチン(図12のブロック1209と1213に対応する)を示す図である。重複検出ルーチン1300は、ブロック1301で開始され、判断のブロック1303で、選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが別の保護対象グループ(既存の保護対象グループ)に現在含まれているかどうかを判断する。選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが既存の保護対象グループには含まれていないと判断した場合に、ルーチンはブロック1313で終了し、保護対象グループ作成ルーチン1200(図12)などの適切なルーチンに制御を返す。
しかし、選択した名前空間要素に関連付けられた保護可能オブジェクトを含むデータソースが既存の保護対象グループに含まれている(すなわち重複する)と判断した場合は、判断のブロック1305〜1307で、検出した重複をどのように解決すればよいかを判断する。本発明の実際の実施形態では、重複の解決はユーザの判断に基づいている。たとえば、重複が検出された場合に、ユーザは現在の保護対象グループから重複するデータソースの保護可能オブジェクト(「重複する保護可能オブジェクト」)を除外するか(1305)、あるいは既存の保護対象グループから重複の原因となっている重複する保護可能オブジェクトを含むデータソースを削除し、それを現在の保護対象グループに追加するか(1307)のオプションを選択できる。別の実施形態では、重複を解決するためのグローバルなポリシーをユーザが指定し、これを使用して重複検出ルーチン1300の処理を進めてもよい。さらに別の実施形態では、重複の原因となる保護対象グループに保護可能オブジェクトを追加しようとするとエラーになる。
判断のブロック1305で、重複する保護可能オブジェクトを現在追加しようとしている保護対象グループ(現在の保護対象グループ)から除外する必要があるかどうかを判断する。判断のブロック1305で、重複する保護可能オブジェクトを現在の保護対象グループから除外する必要があると判断した場合は、該当する保護可能オブジェクトが現在の保護対象グループから削除されるが、重複の原因となる既存の保護対象グループには残り、ブロック1313に示すように、重複検出ルーチンは自らを起動したルーチンに制御を返す。
判断のブロック1305で、重複する保護可能オブジェクトを現在の保護対象グループから除外する必要がないと判断した場合に、ルーチンは判断のブロック1307でこの保護可能オブジェクトのデータソースとそのデータソース内に含まれるすべての保護可能オブジェクトを既存の保護対象グループから削除し、削除したデータソース、削除した保護対象オブジェクト、重複する保護可能オブジェクトを現在の保護対象グループに追加するかどうかを判断する。データソースとこれに含まれる保護対象オブジェクトを既存の保護対象グループから削除し、現在の保護対象グループに追加した場合に、ルーチンはブロック1313で終了し、呼び出し元の適切なルーチンに制御を返す。
判断のブロック1307で、重複する保護可能オブジェクトのデータソースとこれに含まれるすべての保護対象オブジェクトを既存の保護対象グループから削除して現在の保護対象グループに追加する作業をしないと判断した場合に、重複保護ルーチン1300はブロック1311に示すように重複エラーを生成し、ブロック1313で終了する。
ユーザは保護可能オブジェクトを表す名前空間要素を選択することで、運用場所に格納された物理オブジェクト(保護可能オブジェクト)を保護できるのと同様に、回復する必要がある物理オブジェクト(回復可能オブジェクト)を表す名前空間要素を選択することで、この物理オブジェクトを回復することもできる。図14は、本発明の1つの実施形態による、保護対象オブジェクトを回復する回復プロセスの流れを説明する本データ保護システムを示す流れ図である。オブジェクトを回復するために、ユーザは回復する必要のある保護対象オブジェクトを表す1つまたは複数の名前空間要素を選択する。データプロテクタ1401は、選択した名前空間要素を受け取ると、記憶場所1403に問い合わせてユーザが指定する選択した名前空間要素に関連付けられた回復可能オブジェクトの仮バージョンを特定する。別の実施形態では、記憶場所1403に問い合わせて仮バージョンを特定する必要はない。たとえば、アーカイブから回復する場合に、データプロテクタ1401は使用可能な仮バージョンの識別情報を格納するカタログまたはデータベースを検索することで仮バージョンを特定してもよい。特定した仮バージョンが統合され、特定の時点の表現としてユーザに提供されると、この時点までのデータを復元できる。
ユーザは回復する特定の時点を選択し、その時点に関する回復インテントを指定する。回復インテントの例については以下に詳述する。ユーザから回復対象とこれに対応する回復インテントを受け取ると、データプロテクタ1401は回復計画を作成して実行し、記憶場所1403に格納された適切な回復可能オブジェクトを回復して運用場所1405に送信する。
図15は、本発明の1つの実施形態による、記憶場所1403に格納された回復可能オブジェクトのより詳細なビューを示すブロック図である。一般に、損傷または欠落した保護対象オブジェクト(あるいはその一部)は、回復によって以前の仮バージョンに戻る。仮バージョンは、離散的でもほぼ連続的でもよい。離散的な仮バージョンは、保存されている保護対象オブジェクトの現存する特定の時点の完全なコピーから得られる。離散的な仮バージョンの回復では、保護対象オブジェクトの復元のみでよい場合も、復元後に追加の回復処理が必要な場合もある。ほぼ連続的な仮バージョンは、保護対象オブジェクトに関連するログの現存する特定の時点のコピーから得られる。回復は、ログのロールフォワードアプリケーションによって実行される。本発明の1つの実施形態では、ロールフォワードはログに記録された任意の時点で停止できる。
回復可能オブジェクトは、本明細書で使用する限り、保護対象オブジェクトの回復可能な要素である。個々の回復可能オブジェクトは、1つまたは複数の回復ソースから生成できる。回復ソースは、複製に関連する仮バージョン、複製、アーカイブテープ、あるいはディスク上のアーカイブコピーのいずれにあってもよい。
ここで図15を参照すると、保護対象オブジェクト1509には、1つまたは複数の回復可能オブジェクト1511、1513、1515、1517、1519、1521が含まれている。一般に、回復可能オブジェクトは保護対象オブジェクトより細かく分割できる。たとえば、保護対象オブジェクトはserver1上のD:\folder 1509などのフォルダでもよい。この保護対象オブジェクト1509には、複数の回復可能オブジェクトが含まれていてもよい。たとえば、保護対象オブジェクトserver1上のD:\folder 1509には、6つの回復可能オブジェクト、すなわちファイル1 1511、ファイル2 1513、ファイル3 1515、ファイル4 1517、ファイル5 1519、ファイル6 1521が含まれる。さらに、保護対象オブジェクト1509も回復可能オブジェクトでもある。
多くの場合、初めに選択した保護対象オブジェクトと保護の方法によって、利用できる回復可能オブジェクトおよび/または回復に必要な作業が決まる。たとえば、保護対象オブジェクトがメールボックスを格納するデータベースを含むExchange Storage Groupの場合は、このストレージグループ内のすべてのデータベースは暗黙的に保護される。ストレージグループ全体、あるいは1つまたは複数のデータベースはいずれも回復できるので、回復可能オブジェクトである。アーカイブ(後述)のみで保護を実行し、複製を実行しない場合は、メールボックスの回復に非常に時間がかかる(費用がかかる)可能性がある。複製とアーカイブの両方で保護を実行すると、複製からのメールボックス回復は多くの場合にかなり高速である(安価である)。
保護対象オブジェクトがストレージグループのデータベースの場合は、ストレージグループ全体が保護されるわけではないが、選択したデータベースに格納されたメールボックスは保護される。しかし、保護対象オブジェクトがメールボックスの場合は、関連のデータベースにもストレージグループにも暗黙の保護は実行されない。保護をアーカイブのみで実行し、複製を実行しない場合は、選択したメールボックス以外のものをアーカイブで回復できる可能性は低い。あるいは、メールボックスがデータベースの要素であり、このデータベースが異なる保護対象グループの要素として複製されることが分かっている場合は、メールボックスの回復をアーカイブ媒体でなく他の保護対象グループの複製から実行できる。
図16は、本発明の1つの実施形態による、記憶場所から保護対象オブジェクトを回復する回復ルーチンを示している。回復ルーチン1600はブロック1601で開始され、ブロック1603で、ユーザからユーザインターフェイスに表示された名前空間要素を介して回復対象として選択した名前空間要素を受け取る。ユーザは、回復するデータに関する回復インテントも指定できる。ブロック1605で、データを回復するバージョンとして選択した特定の時点のバージョンを受け取る。本発明の1つの実施形態では、回復を実行する特定の時点をユーザが指定する。別の実施形態では、選択した名前空間要素の仮バージョンを特定して表示でき、ユーザはこの仮バージョンを選択できる。
ブロック1607で、回復対象として選択した要素が他にもあるかどうかを判断する。回復対象として選択した要素が他にもあると判断した場合に、ルーチンはブロック1603に戻り、回復対象として選択した他の名前空間要素を受け取る。しかし、回復する要素が他にはないと判断した場合は、ブロック1609で前述のマッピングスキーマと受け取った回復インテントを使用して回復可能オブジェクトを記憶場所にある適切な回復ソースにマップする。
必要な回復ソースを特定すると、ブロック1611で回復計画が作成される。回復計画には、適切な回復ソースから回復可能オブジェクトの必要な特定の時点のバージョンを統合するプロセスが含まれる。ブロック1613で計画を実行し、特定された回復可能オブジェクトを回復する。ブロック1615で、回復ルーチンが終了する。
前述のように、データ保護システムは、保護対象グループを作成するだけでなく、自動検出グループと保存検索の生成も行う。自動検出グループと保存検索は、運用場所の変更をユーザに通知するための自動的な手段である。たとえば、変更には、サーバなどのコンピューティングデバイス、Exchange Storage Group、データベース、ボリューム、および共有の追加や削除、さらに名前空間要素と保護可能オブジェクトとのマッピングの変更を含めてもよい。ユーザに運用場所の変更について通知すると、ユーザは適切な処置をとり、保護する必要のある新しいデータを保護し、データが移動されたり削除されたりした場合は保護戦略を調整することができる。
自動検出グループは、保護対象を個別の物理リソースのセットとしてではなく問い合わせとして記述するメカニズムである。たとえば、ある組織がすべてのファイルサーバを\\FILESRV*(\\FILESRV1、\\FILESRV2など)と命名すると仮定する。この組織のユーザは、\\FILESRV*という名前の任意のサーバ上にあるすべての共有を定期的に検索する自動検出グループを作成できる。自動検出グループによって該当する共有がすべて検出され、ユーザはこうした共有に格納された保護可能オブジェクト、あるいはこうした共有に関連付けられた保護可能オブジェクトの保護を選択または拒否できる。さらに、本発明の1つの実施形態では、自動検出グループを定期的に再評価でき、ユーザは新しい共有について通知され、こうした新しい共有の保護を承認または拒否する機会を与えられる。さらに、既存の共有が削除された場合は再評価でこれを特定し、削除をユーザに通知する。
データプロテクタで自動検出グループを使用すれば、名前空間要素と保護可能オブジェクトとのマッピングを追跡することもできる。上の例をもう一度参照し、ユーザがパス\\ABCD\PUBLICを保護していたと仮定する。データ保護システムは、\\ABCD\PUBLICという名前とserver1上のD:\folder、server2上のD:\folder、server31上のF:\folderなどの保護対象オブジェクトへのマッピングを含む自動検出グループを自動的に生成する。今後、\\ABCD\PUBLICが同じサーバ上または異なるサーバ上の異なるフォルダを参照するように変更されると、ユーザはデータプロテクタからこの変更を通知され、保護を調整する機会が与えられる。
図17〜24は、本発明の1つの実施形態による、自動検出グループを作成し、利用する方法を示す流れ図である。図17〜24について説明するために、保護を必要とする複数台のサーバが配置された場所(運用場所1703として図示)にデータ保護システムをインストールしたと仮定する。
データ保護システム1700を初期化すると、データプロテクタ1701は運用場所1703に問い合わせ、運用場所にある保護可能オブジェクトを表す名前空間と名前空間要素を特定する。データプロテクタ1701は、名前空間と名前空間要素を名前空間とこれに含まれる名前空間要素の階層表示の形でユーザインターフェイス1705を介してユーザに公開し、ユーザが操作でき、選択できるようにする。
ユーザインターフェイス1705を使用してやりとりするユーザは、\\ABCD\PUBLIC名前空間要素1707など、保護対象とする1つまたは複数の名前空間要素を選択できる。保護対象とする名前空間要素を選択するだけでなく、ユーザは関連の保護可能オブジェクトに対して望ましい保護の方法を特定する保護インテントを指定する。選択した名前空間要素と保護インテントの指示は、データプロテクタ1701に返される。
ここで図18を参照すると、データプロテクタ1701は選択した名前空間要素を運用場所1703にある保護可能オブジェクトにマップしている。たとえば、名前空間要素\\ABCD\PUBLIC 1707を選択すると、データプロテクタは前述のように名前空間スキーマを利用してその名前空間要素を保護可能オブジェクトにマップする。このマッピングは、名前空間要素\\ABCD\PUBLIC 1707が保護可能オブジェクトserver1上のD:\folder 1709と保護可能オブジェクトserver2上のD:\folder 1711にマップされることを示している。別の実施形態では、名前空間要素を最初に検出する間に、その時点でこの要素を対応する保護可能オブジェクトにマップしてもよい。
データプロテクタ1701は、選択した名前空間要素、保護可能オブジェクトの指定(保護対象オブジェクトとなる)、自動検出グループ1713、自動検出グループテーブル1715を含む保護対象グループを作成する。前述のように、保護対象グループには、ユーザが指定したインテントに基づいて、実際に保護対象グループをどのように保護するかを説明するグループ計画も含まれる。自動検出グループ1713には、\\ABCD\PUBLIC\*などの名前空間検索パラメータと、名前空間要素から保護対象オブジェクトserver1上のD:\folderとserver2上のD:\folderへの現在のマッピングが含まれる。選択した名前空間要素の名前空間検索パラメータを含む自動検出グループ1713を作成すると、続いてデータプロテクタは名前空間検索パラメータに一致する運用場所への追加、削除、再マップを検索できる。このような変更は保護を実行する上で重要なので、ある場合はアラートを使用してユーザに報告する。アラートはさまざまな形でユーザに提供できる。たとえば、アラートはユーザインターフェイス、電子メール、ポケットベル通知、音声メッセージなどを使用して提供できる。
自動検出グループ1713を作成するだけでなく、データプロテクタ1701は自動検出グループテーブル1715を作成する。このテーブルには保護対象オブジェクトへの現在マッピングの指定とこうした保護対象オブジェクトに関する情報が含まれる。具体的に、この情報には、保護対象オブジェクトへのマッピングが自動検出グループ1713に格納された自動検出グループパラメータと一致するかどうか(match列1717に示す)、保護対象オブジェクトが現在ユーザ操作が未決になっているかどうか(pending列1719に示す)、マップされた保護対象オブジェクトが現在グループ計画の下で保護されているかどうか(protected in plan(“PP”)列1721に示す)、マップされた保護対象オブジェクトがユーザによって現在保護されているかどうか(protected by user(“PU”)列1731に示す)などが含まれている。後述するように、オブジェクトはユーザによって保護されているが、まだデータ保護システムによっては保護されていない。たとえば、ユーザはある特定のオブジェクトを保護しようとしていることを通知し、このことでオブジェクトはユーザによって保護されるが、この保護対象オブジェクトのインテント変換が完了するまで、このオブジェクトは計画によっては保護されない。
本発明の1つの実施形態により、保護対象グループ、自動検出グループ、グループ計画、自動検出グループテーブルを作成した後、データ保護システムは運用場所と記憶場所に対して保護の準備をする。両方の場所に対して保護の準備(リソース計画など)をした後、選択した保護可能オブジェクトの最初のコピーを作成する最初のステップ(準備計画)を実行し、次に保護(保護計画)を開始する。
選択した保護対象オブジェクトの保護を実行してから所定の時間が経過した後で、データ保護システムは自動検出グループを実行し、運用場所1703を再マップする。たとえば、自動検出グループを毎晩1度実行するようスケジュールできる。夜間または運用場所の業務が少ないときに自動検出グループを実行すると、運用場所の負荷が軽減される。
説明のために、図17〜24に関連して説明した例に戻ると、自動検出グループが実行され、自動検出グループの結果1723(図19)は、自動検出グループの検索パラメータ\\ABCD\PUBLIC\*に一致する唯一の保護可能オブジェクトは、保護可能オブジェクトserver2上のD:\folderであることを示している。データプロテクタ1701は、自動検出グループの結果1723と自動検出グループテーブル1715を比較する。この例では、保護対象オブジェクトserver1上のD:\folderは自動検出グループの検索パラメータと一致しなくなっていることがわかる。server1上のD:\folderは、さまざまな理由で検索パラメータと一致しなくなった可能性がある。たとえば、server1上のD:\folderがなくなっていたり、D:\folderが\\ABCD\PUBLICの下にマップされなくなっていたりする可能性がある。
比較の後、保護対象オブジェクトserver1上のD:\folderは結果として返されなかったので、自動検出グループの検索パラメータに一致しなくなったこと(match列1717の「N」)を示すようにテーブル1715が更新される。さらに、自動検出グループテーブル1715は、保護対象オブジェクトserver1上のD:\folderについて、この保護対象オブジェクトに関するユーザの操作が現在未決であること(列1719の「Y」)を示すように更新される。保護対象オブジェクトが自動検出グループの検索パラメータと一致しなくなったので、ユーザの操作は現在のところ未決である。server1上のD:\folderは、計画の下で保護され、さらにユーザによって保護される(PP列1721とPU列1731のY)とマーク付けされたままである。
自動検出グループ1715が更新され、server2上のD:\folderが自動検出グループの検索パラメータに一致し、列1721と1731のそれぞれの「Y」で示されるように、計画およびユーザによって保護されたままであることを示している。最後に、保護対象オブジェクトserver2上のD:\folderについては、このオブジェクトが一致し、保護されているので、未決のユーザ操作はないこと(pending列1719の「N」)を示している。
ここで図20を参照すると、自動検出グループが実行された後、翌朝自動検出グループテーブルが更新され、アラートが生成される。ユーザはデータ保護システムにアクセスし、データ保護システムから、保護対象オブジェクトserver1上のD:\folderが自動検出グループの検索パラメータと一致しなくなっているという通知を受け取る。
これに応答して、データ保護システムは保護対象グループから保護対象オブジェクトを削除するようにというユーザの指示を受け取る。データプロテクタ1701は、自動検出グループを更新し、その結果server1上のD:\folderのマッピングが保護対象グループから削除され、自動検出グループテーブル1715が更新される。具体的には、server1上のD:\folderは、ユーザによって保護されない(PU列1731の「N」)とマーク付けされ、もはや未決でない(列1719の「N」)とマーク付けされる。この時点では、server1上のD:\folderを保護対象グループから削除するためのインテント変換がまだ再実行されていないので、server1上のD:\folderは引き続き計画によって保護されている。
このオブジェクトは自動検出テーブル1715に保持され、ユーザによって保護されないとマーク付けされているので、自動検出ルーチンの次の実行で指定された場合は、すでに保護から除外されており、ユーザの承認が未決とは表示されない。これで、オブジェクトはユーザによって保護されなくなり、保護可能オブジェクトになる。
図21は前の例の続きであり、ユーザがserver1上のD:\folderを保護する必要がなくなったことを通知した後の特定の時点でインテント変換が実行される。インテント変換を実行すると、グループ計画が更新され、server1上のD:\folderが保護対象グループから削除される。server1上のD:\folderが保護対象グループで保護されなくなっても、保護対象グループの既存の仮バージョンは記憶場所に格納されたままであり、これを使用すればserver1上のD:\folderを計画で保護されなくなった時点まで回復できる。インテント変換を終了すると、自動検出グループテーブル1715が更新される。具体的に、server1上のD:\folderは計画で保護されない(PP列1721に「N」)とマーク付けされる。
インテント変換完了後の特定の時点で、自動検出グループをもう一度実行し、運用場所1703に問い合わせて自動検出グループの検索パラメータを運用場所1703にあるオブジェクトに再マップする。自動検出グループの検索パラメータのマッピングが完了すると、自動検出グループの結果1725が提供され、検索パラメータが保護対象オブジェクトserver2上のD:\folderと新しい保護対象オブジェクトserver2上のE:\folder 1727にマップされたことを示している。データプロテクタ1701は、この結果をもう一度自動検出グループテーブル1715と比較する。この比較により、保護対象オブジェクトserver2上のD:\folderが再び自動検出グループの検索パラメータと一致し、ユーザ操作が未決でなく、引き続きユーザとグループ計画の両方によって保護された状態であることがわかる。さらに、新しい保護可能オブジェクトserver2上のE:\folderが自動検出グループの検索パラメータに一致し、現在はグループ計画によって保護されておらず(PP列1721の「N」)、現在ユーザによって保護されておらず(PU列1731の「N」)、現在ユーザ操作が未決(pending列1719の「Y」)である。比較が終了すると、自動検出グループテーブル1715が新しいマッピングとオブジェクトのすべてのステータスを表すように更新される。
保護可能オブジェクトserver2上のE:\folderは、自動検出グループによって新しく特定されたので、現在は計画によってもユーザによっても保護されていない。データ保護システム1701は、保護対象グループの保護対象オブジェクトと同様の新しい保護可能オブジェクトが運用場所に追加されたことを示すアラートを生成し、ユーザに送信する。アラートが生成されるのは、ユーザがこの新しく特定した保護可能オブジェクトを保護対象グループの一部として新たに保護することに注目するためである。
図22で、ユーザがアラートを受け取って応答を返し、自動検出グループによって自動的に指定された新しく特定された保護可能オブジェクトの保護が開始される。保護可能オブジェクトserver2上のE:\folderは、保護対象グループにも追加され、保護対象オブジェクトになる。同様に、データプロテクタ1701は、オブジェクトserver2上のE:\folderのユーザ操作が未決ではなくなり、ユーザによって保護されるが、この時点では計画によっては保護されないという表示を自動検出グループテーブル1715に追加する。
図23Aは前の例の続きであり、新しく特定された保護可能オブジェクトを保護対象グループに追加するようにユーザが指示した後の特定の時点でインテント変換が実行され、server2上のE:\folderが計画によって保護されるようになっている。インテント変換が完了すると、server2上のE:\folderが計画によって現在保護されている(PP列1721の「Y」)ことを示すように自動検出グループテーブル1715が更新される。
インテント変換完了後の特定の時点で、データプロテクタ1701は自動検出グループルーチンをもう一度実行し、自動検出グループの検索パラメータ\\ABCD\PUBLIC\*を運用場所1703にあるオブジェクトに再マップする。自動検出グループルーチンが終了すると、データプロテクタはserver2上のD:\folderとserver3上のE:\folder 1729のマッピングを特定している。この結果を使用して、自動検出グループテーブル1715を比較し、保護対象オブジェクトserver2上のD:\folderが再び自動検出グループの検索パラメータに一致し、ユーザ操作が未決でなく、データ保護システムによって保護されたままであり、ユーザによって保護されたままであることを示すようにテーブルを更新する。さらに、以前の保護対象オブジェクトserver2上のE:\folderは、自動検出ルーチンで特定されなかったが、ユーザと保護計画によって保護されたままであり、そのためユーザ操作は未決であることを示している。最後に、新しい保護可能オブジェクトserver3上のE:\folderの追加は、自検出動グループの検索パラメータへの一致として特定されるが、新しく特定されるので、現在はユーザにも保護計画にも保護されず、そのためユーザ操作は未決である。自動検出テーブルを更新すると、データプロテクタ1701は以前の保護対象オブジェクトserver2上のE:\folderが自動検出グループの検索パラメータと一致しなくなり、server3上のE:\folderが運用場所に追加され、自動検出グループの検索パラメータと一致することを示すアラートを生成する。このアラートにより、保護対象オブジェクトserver2上のE:\folderがserver3上のE:\folderに移動したことをユーザに通知できる。このような変更を自動検出しないと、ユーザは古いオブジェクトの保護を継続し、新しいオブジェクトを保護しない可能性がある。
図23Bは、本発明の1つの実施形態による、たとえば図23Aで検出されるような保護された名前空間要素の再マップを解決する再マップ解決ルーチンを示す図である。再マップ解決ルーチン2300は、名前空間要素が移動されたと判断した場合に実行される。たとえば、これまでServer2上のE:\folderにマップされていた\\ABCD\PUBLIC\LINK3をServer3上のE:\folderに再マップできる。
再マップ解決ルーチン2300は、ブロック2301で開始される。ブロック2303で自動検出グループを評価し、保護された名前空間要素が1つの保護可能オブジェクトから別の保護可能オブジェクトに再マップされたことを特定する。判断のブロック2305〜2309で、再マップをどのように解決するかを判断する。
具体的には、判断のブロック2305で、新しいマッピングを排他的に保護する必要があるかどうかを判断する。新しいマッピングを排他的に保護する必要があると判断した場合は、ブロック2311で、古いマッピングにユーザによって保護されないとマーク付けし、新しいマッピングにユーザによって保護されるとマーク付けする。新しいマッピングを排他的に保護する必要がないと判断した場合は、判断のブロック2307で古いマッピングを排他的に保護する必要があるかどうかを判断する。古いマッピングを排他的に保護する場合は、ブロック2311で古いマッピングにユーザによって保護されるとマーク付けし、新しいマッピングに保護されないとマーク付けする。しかし、判断のブロック2307で、古いマッピングを排他的に保護する必要がないと判断した場合は、判断のブロック2309で、両方のマッピングを保護する必要があるかどうかを判断する。
判断のブロック2309で、両方のマッピングを保護する必要があると判断した場合は、ブロック2311で両方のマッピングにユーザによって保護されるとマーク付けする。しかし、両方のマッピングを保護しないと判断した場合は、ブロック2311で両方のマッピングにユーザによって保護されないとマーク付けする。
ブロック2313で、本明細書で説明するインテント変換ルーチンを実行する。インテント変換が完了すると、新旧両方の保護対象オブジェクトについて、計画フラグの保護とユーザフラグの保護に同じ値が入るように保護対象オブジェクトが更新される。ブロック2315でルーチンが終了する。
図24は、この例の前の部分と同様に、以前に実行した自動検出グループルーチンで検出した変更を通知するアラートをユーザに送信する様子を示している。ユーザは、新しく特定された保護可能オブジェクトserver3上のE:\folderを追加し、古い保護対象オブジェクトserver2上のE:\folderのマッピングを削除するように(図23Bのブロック2305)、自動検出グループの検索パラメータのマッピングを更新することを選択する。データ保護システム1701は、ユーザからマッピングを更新するための指示を受け取り、それに応じて新しい保護対象オブジェクトを追加するように保護対象グループを更新する。さらに、データプロテクタ1701は、server2上のE:\folderはユーザには保護されないが、この時点では引き続き計画によって保護されていることを示しており、新しいマッピングによる保護対象オブジェクトserver3上のE:\folderはユーザには保護されるが、計画によってはまだ保護されていないことを示すように、自動検出グループテーブル1715を更新する。
ユーザが変更を指示した後の特定の時点でインテント変換を実行すると、server2上のE:\folderがグループ計画の保護対象から削除され、server3上のE:\folderがグループ計画の保護対象に追加される。言うまでもないが、ユーザが保護対象グループの変更(オブジェクトの追加またはオブジェクトの削除のいずれか)を指示した後の任意の時点でインテント変換を実行できる。たとえば、ユーザが保護対象グループへの変更を表示した直後にインテント変換を実行してもよいし、数日後に実行してもい。さらに、自動検出グループルーチンとインテント変換は互いに無関係でよい。自動検出グループルーチンは、保護対象グループへの変更をユーザが指示してからインテント変換を実行するまでの間に複数回実行してもよい。このような場合は、自動検出グループをリフレッシュしても、変更するオブジェクトに関するアラートは生成されない。これは、グループ計画への実際の変更はまだ行われていないが、ユーザはすでに指示を出しているためである。
図25は、本発明の1つの実施形態による、最上位レベルの名前空間要素と保護可能オブジェクトとのマッピングを最初に検出する初期検出ルーチンを示す流れ図である。初期検出ルーチン2500は、ブロック2501で開始され、ブロック2503で運用場所の容易に検出できるすべてのオブジェクトの名前空間と名前空間要素を特定する。容易に検出できるオブジェクトは、運用場所の最上位レベルのオブジェクトである。たとえば、名前空間と名前空間要素は、DFS root、サーバ、Exchangeサーバ、STSサーバなど、最上位レベルのオブジェクトの場合は容易に検出できる。ブロック2505で、検出された運用場所の最上位レベルの名前空間と名前空間要素をデータプロテクタのメモリ(データベースなど)に保存する。ブロック2507で初期検出ルーチン2500が終了する。
図26は、本発明の1つの実施形態による、名前空間および名前空間要素と運用場所にある保護可能オブジェクトとのマッピングを検出するスケジュールされた検出ルーチンを示す流れ図である。具体的に、スケジュールされた検出ルーチン2600は、ブロック2601で開始され、ブロック2603で初期検出ルーチン2500(図25)を実行し、運用場所の最上位レベルの名前空間要素を特定する。前述のように、データ保護システムでは最上位レベルの名前空間要素の格納されたコピーを使用してユーザが運用場所をナビゲートできるように、および/または検索時に運用場所を再検出しなくても運用場所の特定の部分を検索できるようにすることで、検索とナビゲーションの時間を短縮し、運用場所の負荷を軽減する。
判断のブロック2605で、実行する必要のある既存の保存検索(後述)があるかどうかを判断する。判断のブロック2605で実行する必要のある保存検索があると判断した場合は、ブロック2607で保存検索を実行する。しかし、判断のブロック2605で既存の保存検索がないと判断した場合は、判断のブロック2609で、更新する既存の自動検出グループがあるかどうかを判断する。判断のブロック2609で、更新する必要のある既存の自動検出グループがあると判断した場合は、ブロック2611で図17〜24の例に関連してすでに説明したように、その自動検出グループを更新する。ブロック2617でルーチンが終了する。
図27は、本発明の1つの実施形態による自動検出グループ作成ルーチンを示す流れ図である。自動検出グループ作成ルーチン2700は、ブロック2701で開始され、ブロック2703で、ユーザが保護対象として選択した名前空間要素を受け取る。選択した名前空間要素の他に、名前空間要素に関連付けられた保護可能オブジェクトも受け取る。ブロック2705で、名前空間要素に関連付けられたデータソースの重複を解決する。重複の解決については、図13に関連してすでに説明済みである。
重複が解決すると、ブロック2707で、選択した名前空間要素を表す自動検出グループのリストを作成する。さらに、問い合わせパラメータを生成して自動検出グループに追加し、選択した名前空間要素と同様の他の名前空間要素の特定に使用する。問い合わせパラメータは、物理リソース(たとえば、server1上のすべてのボリューム)、名前空間に関する問い合わせ(たとえばDFS ROOT\productsの下にあるすべての共有)、または両方の組み合わせ(たとえば、\\FILESRV*という名前のサーバ上にあるすべての共有)で表現できる。さらに、問い合わせパラメータは既存の名前空間要素のプロパティに基づいていてもよい。
いずれの場合にも、データ保護システムは自動検出グループのメンバーシップを追跡し、そのグループへの変更をユーザに通知する。ブロック2709で、自動検出グループと選択した名前空間要素のリストが保護対象グループに追加される。前述のように、保護対象グループは既存の保護対象グループでもよいし、選択した名前空間要素用に新しく作成した保護対象グループでもよい。ブロック2711で、自動検出グループ作成ルーチンが終了する。
自動検出グループは、図27に関連して前述したように作成され、保護する必要があるオブジェクトを個別の物理リソースのセットとしてではなく問い合わせとして潜在的に説明する方法である。変更が検出されると、ユーザは自動検出グループおよび/または保護対象グループの一部に関連付けられたオブジェクトを保護するための計画の変更を承認または拒否できる。たとえば、自動検出グループがサーバ\\FILESRV*上のすべての共有を検索する検索パラメータを含み、10個の新しい共有を伴う新しいサーバ\\FILESRV 10が追加されると、ユーザは新しい共有のそれぞれについて保護を承認または拒否するオプションを選択できる。
前述のように、データ保護システムはユーザに報告された自動検出グループの変更への応答を追跡する。たとえば、ユーザが新しく特定された保護可能オブジェクトの保護を拒否すると、後でその保護可能オブジェクトが運用場所から削除された場合に、それ以降ユーザには通知が送信されない。具体的には、ユーザがそのオブジェクトの保護を必要とせず、自動的にそれ以降のすべての通知を無視することを通知した場合は、保護可能オブジェクトの除外フラグが設定される。1つの実施形態では、オブジェクトの一度の拒否で自動的に除外フラグを設定することはない。さらに、オブジェクトが拒否された回数が追跡され、事前に指定した拒否回数(たとえば5回)に達すると、オブジェクトが除外とマーク付けされる。それ以降に除外オブジェクトが特定されても、ユーザにアラートは送信されない。
データ保護システムは、自動検出グループを自動的に作成し、ユーザが保護を必要とする各名前空間要素を検出するように設定する。たとえば、ユーザがサーバ\\FILESRV1上のshare1を保護する場合に、データ保護システムは\\FILESRV1\share1から物理リソース(たとえば\\FILESRV1上のボリュームX上のfolder1)へのマップを含む自動検出グループを設定する。\\FILESRV1\share1がなくなった場合、または共有から物理リソースへのマッピングが変更された場合は、ユーザにその変更が通知され、どのように処理するかについてのいくつかのオプションが示される(図23B)。たとえば、ここで\\FILESRV1\share1がボリュームY上のfolder1にマップされたとする。ユーザは、X:\folder1の保護を継続、X:\folder1の保護を停止してY:\folder1の保護を開始、あるいは両方のオブジェクトを保護のいずれかのオプションを選択できる。ユーザは、保護しようとする名前空間要素と実際に保護されている物理オブジェクトへの変更をこのような方法で通知される。
図28と29は、本発明の1つの実施形態による自動検出グループ更新ルーチンを示す流れ図である。自動検出グループ更新ルーチン2800は、ブロック2801で開始され、ブロック2803で自動検出グループの結果から保護可能オブジェクトを選択する。自動検出グループの結果は、自動検出グループのマッピングシーケンスを実行し、自動検出グループの名前空間要素がマップされる保護可能オブジェクト、あるいは以前にマップされた保護可能オブジェクトのそれぞれを特定した後に生成される。判断のブロック2805で、選択した保護可能オブジェクトが現在ユーザによって保護されているかどうかを判断する。
判断のブロック2805で、選択した保護可能オブジェクトが現在ユーザによって保護されていないと判断した場合は、判断のブロック2807で、選択した保護可能オブジェクトが現在ユーザの承認を待っているかどうかを判断する。保護可能オブジェクトは、以前に特定されてアラートを介してユーザに報告されたが、ユーザがそのオブジェクトは保護対象グループに追加する必要があるかどうかを指定していなかった場合に、保護対象グループへの追加に関して現在ユーザの承認待ちであると考えられる。図17〜24に関連して説明したように、オブジェクトは自動検出グループテーブルのpending列を「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で、保護対象オブジェクトは保護対象グループからの削除が未決であり、自動検出グループの検索パラメータに一致しないが、現在ユーザによって保護されているとマーク付けされる。保護対象グループからの保護対象オブジェクトを削除しても、記憶場所からその保護対象オブジェクトの実際のコピーが削除されるわけではない。当業者には言うまでもないが、未決の削除と未決の承認は未決の1つのステータスとして追跡できる。前述のように、オブジェクトが自動検出グループの検索パラメータと一致するかどうかを追跡することで、オブジェクトが削除されるか追加されるかが決まる。
オブジェクトが自動検出ルーチンによって特定されると、オブジェクトがユーザ操作が未決かどうか、計画によって保護されているかどうか、ユーザによって保護されているかどうか、自動検出の検索パラメータに一致するかどうか追跡されるだけでなく、オブジェクトが初めて特定され、自動検出グループテーブルに追加された場合は、特定された日付と時間も記録される。さらに、自動検出グループテーブルに存在する保護対象オブジェクトが自動検出グループルーチンで特定されなくなった場合は、なくなった日付と時間も記録される。
ユーザが名前空間要素を選択するのに応じて、データ保護システムは自動検出グループを自動的に作成するだけでなく、データ保護システムは保存検索も自動的に作成する。別の実施形態では、データ保護システムをインストールするときに保存検索を生成できる。さらに別の実施形態では、ユーザが保存検索を作成してもよい。
保存検索を使用すると、サーバなどの運用場所のセグメントを設置したり、除去する場合にユーザに通知できる。たとえば、データ保護システムは、保存検索を使用して、新しいサーバ、新しいDFS root、除去されたサーバ、除去されたDFS root、新しいSTSサーバ、除去されたSTSサーバなどをユーザに通知できる。各保存検索には、同じ保存検索を前回評価したときに検出された名前空間要素のリストが関連付けられている。保存検索には、検索の開始点を表す名前空間要素と、結果として返される名前空間要素を説明する一連の検索基準が含まれる。自動検出グループとは異なり、保存検索は保護可能オブジェクトではなく名前空間要素に対して機能する。たとえば、企業のマーケティング部門に属するすべてのサーバを特定する保存検索を作成できる。これは一般的に有効な自動検出グループではない。しかし、自動検出グループと同様に、保存検索も検索パラメータに一致する名前空間要素を特定する保存検索結果テーブルを保持する。
名前空間要素が検索に一致する場合は、そのステータスが保持される。たとえば、各名前空間要素が最初に特定された時刻と最後に参照された時刻の情報が保持される。こうした情報を使用して変更を検出することもできる。名前空間要素が保存検索で最初に特定されると、特定された日付を示すタイムスタンプが保持され、その名前空間要素が運用場所から削除されると、名前空間要素が最後に参照された日付と時刻を示すタイムスタンプも保持される。実際の実施形態では、運用場所で変更が検出されると必ずユーザにアラートが送信される。たとえば、運用場所で名前空間要素が追加および/または削除された場合は、その変更を示すユーザへのアラートが生成される。1つの実施形態では、そのサーバ上の共有を保護するようにというユーザの指定に応じて、サーバ上のすべての共有を返す保存検索が作成される。同様に、特定のサーバ上のボリュームを保護するというユーザ指定に応じて、そのサーバ上のすべてのボリュームを返す保存検索が作成される。サーバが変更されると(たとえば、必要に応じて共有またはボリュームが追加されると)、ユーザに変更が通知される。
自動検出グループと保存検索の結果を使用すると、データプロテクタのナビゲーションと検索機能のパフォーマンスを向上することもできる。自動検出グループと保存検索は、その結果を永続的なストレージに定期的に格納できるので、ナビゲーションと検索の結果がそれほど頻繁には変わらない場合、またはデータの多少の陳腐化が容認される場合に、データプロテクタはこのようなキャッシュに格納された結果を使用して、ユーザが開始するナビゲーションや検索に迅速に応答できる。
保護インテントは、ユーザが指定し、保護対象グループに対するどのような保護を希望するのか(たとえば、複製、アーカイブ、両方)、およびどの時点までさかのぼって回復できるようにするか(期間)を説明する。たとえば、ユーザは、選択したグループのデータの複製(このデータに対して毎晩生成される)、記憶場所にある取り外し可能な媒体に格納されたコピー(このコピーは週に1度更新される)、および取り外し可能媒体に保存された最大4つのコピーを保持するように要求できる。さらに、ユーザは少なくとも1か月前の情報を回復できるように指定してもよい。
記憶場所でデータを保護するには(たとえば、複製、アーカイブ、あるいはその両方として)、そのデータのコピーにリソースを割り当てる必要があるだけでなく、プロセス自体を実行するのにリソースが必要である。さらに、こうしたリソースを使用するのに必要な状態にするために多くのジョブが必要であり、また継続的なジョブは保護の精度を保持する必要がある。ジョブを使用してデータを保護する方法については、以下に詳述する。リソースを手作業で設定すると、ジョブは冗長なのでエラーが発生する恐れがある。さらに、リソースとジョブは、保護されているオブジェクトのセットを変更する場合は必ず、たとえば自動検出グループで検出した変更に応じて変更する必要がある。ユーザはリソースやジョブの詳細を手作業で指定する必要はなく、単に名前空間要素を選択し、保護インテントを指定することで、何を保護する必要があるのかを指定すればよい。次に、この情報を使用して選択したデータの保護を続けるためのグループ計画を生成する。1つの実施形態では、グループ計画に3つの構成要素、すなわちリソース計画、準備計画、保護計画が含まれる。
リソース計画には、保護の実現に必要なリソースを取得するために必要なジョブのリストが含まれる。準備計画には、指定されたデータの保護をセットアップするために必要な1度だけ実行するジョブのリストが含まれる。たとえば、1度だけ実行するジョブには初回のコピーや運用場所から記憶場所へのデータの転送がある。保護計画には、保護対象データの精度と整合性を保持するために必要な継続的なジョブのリストが含まれる。
ユーザが指定する保護インテントからオブジェクトを保護するための詳細計画への変換は、本明細書では「インテント変換」と読んで説明している。本発明の実際の実施形態において、インテント変換は保護対象グループとその保護対象グループに対して指定した保護インテントを操作する。保護インテントは論理表現として表現され、目標として表明できる。目標には、必要な保護のレベル(粒度)、データを保護する方法、データを保護する期間、データを保護する頻度などを指定できる。たとえば、ユーザは保護インテントを「実行ファイルの共有を30分以上失わず、すべての内容を1年間保持する」と指定してもよい。保護インテントをオブジェクトを保護するための詳細な計画に変換する場合は、インテントの動詞を処置として使用する。前の例を参照すると、このインテントに対応する処置は、「30分ごとにボリュームとフォルダを複製する」、「毎週アーカイブする」、「媒体をオフサイトで1年間保存する」である。
本発明の1つの実施形態において、ユーザは保護インテントを指定する保護テンプレートを選択し、これを使用して選択した保護対象グループを保護するための計画を生成する。保護テンプレートには、適切な動詞とデフォルトのプロパティを含む1つまたは複数のプロトタイプジョブの定義が含まれる。保護テンプレートには、デフォルトのプロトタイプスケジュールも含まれる。たとえば、「1時間ごとの複製、日中に作成する3つの仮バージョン、毎晩実行するアーカイブ、送信時の暗号化なし、記憶場所での暗号化なし」は、デフォルトのプロトタイプスケジュールである。ユーザは保護テンプレートを無効にして明示的に変更することができる。たとえば、ユーザは以前の保護テンプレートを変更し、1時間ごとの複製、日中の唯一の仮バージョン、1週間ごとのアーカイブを、送信時の暗号化なし、記憶場所での暗号化なしで作成できる。前述のデフォルトのプロトタイプスケジュールで指定する「送信時の暗号化なし」は、運用場所から記憶場所にそのデータを送信するときに暗号化する必要がないことを示している。運用場所と記憶場所との間でデータを暗号化して送信することもできる。「記憶場所での暗号化なし」は、複製かアーカイブのいずれかとして記憶場所に格納されたデータを暗号化する必要がないことを示している。格納されたデータを暗号化することもできる。たとえば、テープなどの取り外し可能な媒体にアーカイブされた運用場所のコピーを暗号化してもよい。さらに、複製として格納されたコピーも同様に暗号化してもよい。当業者には言うまでもないが、本発明の実施形態では、送信時および格納時のデータの暗号化に任意の暗号化技術を利用できる。
図30は、本発明の1つの実施形態により、保護インテントをデータセットの保護計画に変換する方法を示す流れ図である。ユーザはユーザインターフェイス3003を介してデータ保護システムと対話し、保護の対象となる名前空間要素のリストを選択する。保護対象として選択した名前空間要素はデータプロテクタ3001に転送され、データプロテクタはユーザインターフェイス3003を介してデフォルトの保護インテントをユーザに提示する。具体的に、データプロテクタは選択した名前空間要素を受け取るとその選択した名前空間要素に関連付けられた保護可能オブジェクトを特定し、デフォルトの保護インテントのリストを特定してユーザに提示する。
ユーザはデフォルトの保護インテントを受け取ると、ユーザインターフェイス3003を操作して適切なデフォルトを変更したり選択したりする。データプロテクタ3001はこの選択または変更を受け取ってインテントを格納し、オブジェクトに関する保護対象グループを作成する。インテントは、バイナリ、XML(Extensible Markup Language)、データベーステーブルなどを含むがこれに限定はされない任意の形態で格納できる。データプロテクタ3001は、デフォルトの保護インテントへの変更(ある場合)を適用し、変更された保護インテントを使用して保護対象グループを保護するための詳細な計画を作成する。計画も、バイナリ、XML、データベーステーブルなどを含むがこれに限定はされない任意の形態で格納できる。
保護対象グループを保護するための詳細な計画を作成するのと同様に、回復インテント、回復パラメータ、回復対象として選択した名前空間要素が指定された場合に、データプロテクタは選択した回復可能オブジェクトを回復するための回復計画も作成できる。回復計画を作成するために、データプロテクタは必要な回復ソースを特定し、これを適宜順序付ける。さらに、データプロテクタは回復のターゲットすなわちデータを復元する場所を示す物理パスを特定する。
さまざまな回復インテントを指定して回復方法を制御できる。たとえば、上書インテントは、運用場所にファイルを回復しようとしたときにファイルがすでに存在することが確認された場合にどうなるかを制御する。常に上書き、上書きしない、新しいファイルの使用を含むがこれに限定はされないいくつかの選択肢が提供される。他に指定できる回復インテントには、復元されたオブジェクトのセキュリティを設定する方法がある。たとえば、復元されたオブジェクトのセキュリティが親オブジェクトのセキュリティを継承するように指定してもよい(たとえば、フォルダに復元されたファイルのセキュリティはフォルダのセキュリティと同じになる)。別のモデルでは、回復されたオブジェクトのセキュリティをこのオブジェクトがバックアップされたときのセキュリティに正確に復元する。インテントには、回復されたオブジェクトを送信時および/または格納時に暗号化するかどうかを指定してもよい。
図31と32は、本発明の1つの実施形態による、保護インテントを運用場所にある物理オブジェクトを保護するための詳細な計画に変換するインテント変換ルーチンを示す流れ図である。インテント変換ルーチン3200は、ブロック3201で開始され、ブロック3203で、保護対象として選択した名前空間要素と、選択した名前空間要素に適用する保護インテントを受け取る。前述のように、名前空間要素は運用場所にある保護可能オブジェクトにマップされる。さらに、前述のように、選択した名前空間要素と関連の保護対象オブジェクトはデータ保護システムによって保護インテントを適用する保護対象グループにコンパイルされる。ブロック3205で、この保護対象グループは「変換中」とマーク付けされる。保護対象グループを「変換中」とマーク付けすることで、インテント変換が正常に終了するかまたは失敗して変更をロールバックするまで、ユーザが保護対象グループを変更するのを防止する。
ブロック3207で、選択した保護対象グループを適切に保護するために必要なリソース要件を計算する。リソース要件は、保護対象グループにどのような変更が必要かを判断して指定される。保護対象グループに必要な変更の例には、保護対象グループへの新しいデータソースの追加、保護対象グループからのデータソースの削除、保護対象オブジェクトの追加または削除による保護対象グループのデータソースの変更、リソースの追加または返還(たとえば、複製用のディスク領域の追加または削除、アーカイブ用の取り外し可能な媒体の追加または削除)、保護対象グループの保護の目標またはスケジュールの調整、新しい保護対象グループの初回の追加などが含まれるが、これに限定はされない。さらに、必要なリソースのサイズは、コピーして記憶場所に格納しようとする運用場所にある保護対象オブジェクトのサイズの特定と、指定された特定の保護方法と保護インテントによって決まる。
ブロック3209で、リソース計画を生成して実行し、保護対象グループの保護を実現するために必要なリソースを割り当てる。リソース計画によって必要なリソースが特定され、こうしたリソースの取得に必要なジョブがリソース計画に含まれる。たとえば、このようなジョブには、ディスク領域の割り当て、既存の記憶領域の拡張、テープ媒体の割り当て、テープライブラリチェンジャ(tape library changer)およびドライブの割り当て、空き媒体プールからのテープの要求などが含まれる。リソース計画に含まれるジョブは、ユーザが必要とする保護のタイプによって決まる。たとえば、複製の場合はジョブには複製と仮バージョンに使用するディスク領域の割り当てが含まれる。ログ領域用のリソース割り当てが含まれる場合もある。ブロック3209で、生成したリソース計画に関連するジョブが実行され、保護対象グループに必要なリソースが割り当てられる。
リソースの割り当てが完了すると、ブロック3211でデータ保護システムによってチェックポイントが作成される。別の実施形態では、リソース計画にはこうしたリソースを割り当てるのに必要なジョブの作成は含まれるが、こうしたジョブの実際の実行は含まれない。リソース計画に関連するジョブの実行は、準備計画の一部としてスケジュールされ、実行される。こうした実施形態では、インテント変換が完了するまでチェックポイントは生成されない。したがって、インテント変換が完了しなかった場合は、最初からやり直す必要がある。ブロック3209に関連して後述するように、リソースの割り当ての後にチェックポイントを作成することで、インテント変換ルーチンが正常に終了しなかった場合に、既知のポイントからルーチンを再開できる。
リソース割り当てジョブ実行中は、一部のリソースを割り当てたがすべてのリソースを割り当ててはいない可能性があるので(たとえば、物理リソースの一部を割り当てた後、他のリソースを割り当てる前にシステムがクラッシュした場合)、本発明の1つの実施形態には、インテント変換ルーチンの実行が未完の場合に割り当てが完了していないリソースをクリーンアップするクリーンアップルーチンが用意されている。このクリーンアップルーチンは、システムのリソース割り当てが特定の方法で動作するように設計されている。実際の実施形態では、リソースはデータソースごとに割り当てられ、特定のデータソースに必要なリソースをすべて割り当てるか、一切割り当てないかのいずれかである。一部のリソースを割り当てたがすべてを割り当ててはいない状態で割り当てジョブが中断した場合は、リフレッシュジョブが作成され、リソース割り当て計画の割り当てジョブを前回実行してから一部を割り当てたリソースがある場合はこれをクリーンアップする。一部を割り当てたリソースをクリーンアップルーチンでクリーンアップすると、データ保護システムは必要に応じてリソースを再割り当てできる。こうしてリソースを正常に割り当てた新しい保護対象オブジェクトに対して、インテント変換を継続できる。
図31に戻り、ブロック3209でリソースの割り当てが正常に終了すると、ブロック3211でチェックポイントが生成される。リソースの割り当てが完了した後にチェックポイントを作成することで、リソースの割り当てが完了した後でインテント変換ルーチン3200が中断して完了しなかった場合に何らかの問題が発生しても、データ保護システムはこれを解決できる。たとえば、インテント変換ルーチンが終了する前であるが第1のチェックポイントが追加された後にシステムがクラッシュした場合は、ブロック3211に示すように、データ保護システムは再起動時にインテント変換ルーチンが中断したことを認識し、リソースの割り当ての後に付加されたチェックポイントを検出する。チェックポイントを特定することで、前回のリソース割り当てを使用できるので、インテント変換ルーチン3200はこのチェックポイントから再開でき、初めからやり直したり、リソースを再割り当てしたりする必要はない。インテント変換ルーチンの中断後の再開については、図38に関連して詳細に説明する。
判断のブロック3213で、インテント変換ルーチン3200は現在保護対象グループに関連付けられている既存のジョブおよび/またはタスクがあるかどうかを判断する。判断のブロック3213で、保護対象グループに関連付けられている既存のジョブおよび/またはタスクがあると判断した場合は、ブロック3215でこうしたジョブとタスクの登録を解除し、ブロック3217に示すようにアクティブなジョブを終了する。保護対象グループを初めて作成するのでなく、変更する場合は、この保護対象グループに関連付けられたジョブとタスクはすでに存在している。
判断のブロック3213で、保護対象グループに関連付けられている既存のジョブおよび/またはタスクがないと判断した場合、またはブロック3217で既存のジョブおよび/またはタスクが終了した後は、インテント変換ルーチン3200はブロック3219で保護計画を作成し、スケジュールする。以下でより詳細に説明するように、保護計画には保護対象グループの正確なコピーを記憶場所に長期間保持するために必要なジョブのリストが含まれる。さらに、インテント変換ルーチン3200はブロック3221で準備計画を作成し、スケジュールする。以下で詳細に説明するように、準備計画には、運用場所と記憶場所を、保護計画に関連付けられたジョブを実行でき、保護対象グループの正確な保護を実現できる状態にするために1度だけ実行するジョブのリストが含まれる。たとえば、保護対象グループを初めて作成し、これを複製上に保存する場合に、複製上の保護対象グループに関連付けられたデータのコピーは存在しない。したがって、準備計画に関連付けられたジョブの1つを使用して保護対象オブジェクトのコピーを作成し、複製上にそのコピーを保存してもよい。
ここで図32を参照すると、ブロック3225で、インテント変換ルーチン3200は前述の保存検索と自動検出グループを作成する。前述のように、自動検出グループと保存検索はスケジュールされた検出ルーチンの一部として実行される。
リソース計画、準備計画、保護計画、保存検索、自動検出グループのジョブが作成された後、ブロック3227でジョブの作成完了を示す第2のチェックポイントがデータ保護システムに追加される。以上で言及し、以下で詳細に説明するように、データ保護システムではこのチェックポイントを使用してインテント変換ルーチン3200実行中に発生した中断から回復できる。たとえば、インテント変換ルーチン3200が、ブロック3227に示すようにチェックポイントを作成した後に中断した場合に、データ保護システムは再起動時にインテント変換ルーチン3200が実行中であったことを認識し、計画とジョブが作成されたことを示すチェックポイントを検出する。チェックポイントを特定すると、インテント変換ルーチン3200はこのチェックポイントから再開して終了する。
ブロック3229で、新しく保護対象となったオブジェクトとこれまで保護されていたが保護対象から除外されたオブジェクトが更新され、保護計画の追加と削除が反映される。ブロック3209でリソース割り当てエラーありとマーク付けされた保護対象オブジェクトは、「未決の状態」に戻る。ブロック3231で、すべてのチェックポイントが削除され、保護対象グループは「非変換中」とマーク付けされる。すべての保護対象オブジェクトが削除された場合は、保護対象グループを削除できる。ブロック3233でインテント変換ルーチン3200が終了する。
図33は、本発明の1つの実施形態による、保護対象グループを保護するための保護計画作成ルーチンを示す流れ図である。前述の保護計画の作成とスケジューリングでブロック3219(図31)に関連して引用した保護計画作成ルーチン3300について詳細に説明する。保護計画作成ルーチン3300は、ブロック3301で開始され、ブロック3303で保護対象グループのコピージョブを作成し、スケジュールする。コピージョブは、運用場所で発生した1つまたは複数の保護可能オブジェクトの変更を、記憶場所に格納された対応する1つまたは複数の保護可能オブジェクトのコピーにコピーするジョブである。たとえば、コピージョブは、運用場所にある保護対象オブジェクトをユーザが変更する日にコピージョブを実行すると、こうした変更がコピーされて記憶場所に転送され、こうした変更を反映するようにコピーが更新される。
ブロック3305で、保護計画作成ルーチン3300は仮バージョンジョブを作成し、スケジュールする。仮バージョンジョブは、記憶場所にあるデータの実際のバージョニングを実行するようにスケジュールされたジョブである。仮バージョンの作成は当業者にはよく知られているので、ここでは詳しい説明を省略する。
ブロック3307で、有効性確認ルーチンが作成され、スケジュールされる。実行すると、以下で図35に関連して詳細に説明する有効性確認ルーチンのジョブが実行される。ブロック3309で、保護計画作成ルーチン3300が終了する。
図34は、本発明の1つの実施形態による、準備計画を実行するための準備計画実行ルーチンを示す流れ図である。準備計画実行ルーチン3400は、ブロック3401で開始され、ブロック3403で保護対象グループを保護するのに追加のリソースが必要かどうかを判断する。前述のように、保護対象グループを保護するために記憶場所で必要なリソースを特定するリソース計画が作成される。1つの実施形態では、準備計画を作成して実行する前に、リソース計画でこうしたリソースを割り当てることができる。
判断のブロック3403でリソースが必要であると判断した場合は、ブロック3405で、リソース計画で作成したこのようなリソース割り当てのジョブを実行し、リソースを割り当てる。
ブロック3405のリソースの割り当てが完了した場合、またはブロック3403で保護対象グループを保護するために追加のリソースが必要ないと判断した場合は、ブロック3407で、保護対象グループに関連付けられた物理オブジェクトの最初のコピーを作成して記憶場所に送信し、あらかじめ割り当てたリソースに格納する。保護対象グループの最初のコピーが作成され、複製として記憶場所に格納されると、ブロック3409で運用場所にある実際の物理オブジェクトに対するコピーの有効性を確認する。有効性の確認については、図35に関連して後述する。
判断のブロック3411で、保護対象オブジェクトが保護対象グループから削除されたかどうかを判断する。判断のブロック3411で、保護対象オブジェクトが保護対象グループから削除されたと判断した場合は、ブロック3413で、こうしたオブジェクトの監視を中止するジョブを準備計画に含める。こうしたオブジェクトは引き続き保護可能オブジェクトである。監視はリソースを消費するので、監視が不要になった場合はこのジョブを使用して監視を中止する。ブロック3415で、準備計画実行ルーチン3400が終了する。
前述のように、本明細書で説明するルーチンを実行するためのブロックは、これより多い場合も少ない場合もある。たとえば、媒体のロードによってコピーを実行する場合は、準備計画3400ではデータの最初のコピーを作成しない(ブロック3407)。同様に、アーカイブ用のコピーの場合も、準備計画3400ではデータの最初のコピーを作成しない(ブロック3407)。
図35は、本発明の1つの実施形態による、記憶場所にあるデータのコピーの有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチン3500は、ブロック3501で開始され、ブロック3503で有効性確認ルーチン3500は運用場所にある物理オブジェクトの有効性確認パラメータを取得する。当業者には言うまでもないが、有効性確認パラメータは運用場所にある物理オブジェクトのチェックサムでもよい。あるいは、有効性確認パラメータは運用場所にある物理オブジェクトの最終更新時刻でも、運用場所にある物理オブジェクトのサイズでもよい。一般に、有効性確認パラメータは運用場所にある物理オブジェクトの任意のタイプの識別情報でよい。
ブロック3505で、有効性確認ルーチン3500は記憶場所にあるオブジェクトの有効性確認パラメータを取得する。運用場所にあるオブジェクトの有効性確認パラメータと同様に、記憶場所にあるオブジェクトの有効性確認パラメータも、チェックサム、最終更新時刻、ファイルサイズなどでよい。
ブロック3507で、記憶場所にあるオブジェクトが運用場所にあるオブジェクトに一致することを確認するために、ブロック3503で取得した運用場所にあるオブジェクトの有効性確認パラメータとブロック3505で取得した記憶場所にあるオブジェクトの有効性確認パラメータとを比較する。判断のブロック3509で、ブロック3507で比較したパラメータが一致するかどうかを判断する。ブロック3509でパラメータが一致しない場合、ブロック3513で有効性確認ルーチン3500は運用場所にある一致しない保護対象オブジェクトをもう一度コピーし、記憶場所にあるオブジェクトを置き換えて判断のブロック3511に進む。
しかし、判断のブロック3509でパラメータが一致すると判断した場合は、判断のブロック3511で、保護対象グループにまだ有効性を確認していないデータが他にもあるかどうかを判断する。保護対象グループに対して記憶場所にまだ有効性を確認していないデータがほかにもあると判断した場合に、有効性確認ルーチンはブロック3503に戻り、処理を継続する。しかし、判断のブロック3511で追加のデータがないと判断した場合は、記憶場所の有効性が確認されており、有効性確認ルーチンはブロック3515で終了する。この結果、記憶場所にあるオブジェクトは保護対象オブジェクトに一致することをが確認される。
有効性確認ルーチンをインテント変換中に準備計画の一部としてを実行してコピーが正確であることを確認するだけでなく、有効性確認ルーチンをスケジュールして引き続き物理オブジェクトの保護が正確であることを繰り返し確認してもよい。さらに、有効性確認ルーチンをスケジュールして実行し、記憶場所にあるオブジェクトのコピーを有効な状態にすることもできる。記憶場所にある物理オブジェクトのコピーは、システムがクラッシュした場合や、他の何らかのスケジュールされていない変更が発生した場合に、無効な状態になる可能性がある。たとえば、変更を記憶場所に適用できないために変更ログ(後述)がオーバーフローすると、複製が無効になる恐れがある。
図36は、本発明の1つの実施形態による、記憶場所にあるオブジェクトのコピーの有効性を確認するスケジュールされた有効性確認ルーチンを示す流れ図である。スケジュールされた有効性確認ルーチン3600は、ブロック3601で開始され、ブロック3603で、記憶場所にある保護対象グループのオブジェクトのコピーで有効性を確認する必要のあるものを特定する。判断のブロック3605で、特定されたコピーが有効な状態にあるか無効な状態にあるかを判断する。判断のブロック3605で、特定されたコピーが無効な状態にあると判断した場合に、スケジュールされた有効性確認ルーチン3600はブロック3607で図35に関連して説明する有効性確認ルーチン3500を実行する。
しかし、判断のブロック3605で、コピーが有効であると判断した場合は、判断のブロック3609で記憶場所にある保護対象グループのコピーで有効性の確認が必要なものが他にもあるかどうかを判断する。判断のブロック3609で、追加のコピーの有効性を確認する必要があると判断した場合は、有効性確認ルーチン3600はブロック3603に戻り、他に有効性を確認するコピーを特定し、処理を継続する。しかし、判断のブロック3609で記憶場所にあるコピーで有効性の確認が必要なものが他にはないと判断した場合は、ブロック3611に示すように有効性確認ルーチン3600が終了する。
図37は、本発明の1つの実施形態による複製の状態遷移を示すブロック図である。リソース割り当て時に記憶場所を割り当てるまで、複製は割り当てのない状態である。インテント変換で保護対象グループにリソースを割り当てると、複製は割り当て済みの状態に移行する。次に、コンテンツ(保護対象グループのコピー)を記憶場所に転送し、記憶場所に格納する必要がある。転送と格納は、ディスクツーディスクの初期化(データ保護システムで自動的に実行する)を使用して自動的に媒体をロードしても実行できるが、管理者が手作業で実行してもよい(たとえば手作業で媒体をロードする)。ディスクツーディスクの初期化を実行すると、インテント変換は自動的に最初のコピージョブを作成する。最初のコピージョブを実行すると、複製は無効な状態になる。媒体のロードを使用してコピーを初期化する場合は、媒体のロードがいつ終了するかをユーザが指定し、その時点で複製は無効な状態になる。
複製が無効な状態になると、有効性確認ジョブを実行して複製を有効な状態にする必要がある。前述のように、有効性確認ジョブは記憶場所にあるコピーが運用場所にある保護対象オブジェクトに一致することを確認する。
複製は、割り当て済みの状態3703、無効な状態3705、有効な状態3711以外に、欠落の状態3713に移行してもよい。たとえば、時間が経過すると、特定の保護対象グループの複製に割り当てられた物理媒体に障害が発生する可能性がある。この結果、複製は欠落の状態になる。データ保護システムは、欠落の状態3713から、ユーザとの対話によって、複製されていた情報を引き続き保護対象とする必要があるかどうかを判断する。保護対象グループの保護を継続する必要がある場合は、リソースを再割り当てし、その結果、複製を割り当て済みの状態3703に戻す必要がある。欠落の状態3713からこの複製に関連付けられた情報をそれ以降保護する必要はないと判断した場合は、複製が廃棄の状態3707に移行し、データ保護システムはこの保護対象グループの複製を実行しなくなる。
複製は、一時的に欠落の状態3711に移行してもよい。たとえば、ディスクは何らかのハードウェアの問題で一時的に切断されたり使用できなくなったりした後、まもなく使用可能な状態に戻る場合がある。こうした状況では、ディスクが再び使用可能になると、複製は有効な状態3711または無効な状態3705に戻る。
廃棄の状態3707は、保護対象グループを保護する必要がなくなったというユーザの指示に応答した結果である。複製は、他の任意の状態から廃棄の状態3707に移行できる。たとえば、複製が無効な状態3705にある場合に、ユーザはこの複製にコピーされる保護対象オブジェクトを保護する必要がなくなったことを表明し、この結果、複製は廃棄の状態3707に移行する。複製を廃棄の状態にすることで、ユーザはこの複製にコピーされる保護対象オブジェクトの保護を完了したこと、およびハードディスクなどの物理媒体を空き媒体プールに返し、他の保護対象グループに割り当ててもよいことをデータ保護システムに通知する。
本発明の1つの実施形態では、ユーザがこの複製にコピーされる保護対象オブジェクトの保護を継続する必要がなくなったことを通知すると、複製が停止の状態3709に移行し、この結果、複製とその仮バージョンは特定の期間にわたって保持される。保護対象でなくなったことを通知した後の情報が保持されるので、ユーザはこの情報を保護停止の時点まで回復できる。
図38は、本発明の1つの実施形態による、以前のインテント変換ルーチン実行中に発生した中断の後にインテント変換ルーチンを再開する再開ルーチンを示す流れ図である。再開ルーチン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つの実施形態によると、媒体は管理対象の基本的なオブジェクトである他のバックアップアプリケーションとは異なり、媒体自体でなく、データセットおよびデータセットと媒体との関係が管理される。
アーカイブは、長期にわたって(週、月、年単位で)データを保持するように設計されている。アーカイブされた媒体は、通常はオフサイトで保存されるので、地震や火事のように運用場所全体に影響を及ぼす災害から保護される。アーカイブされた媒体は、サーバやディスクの喪失またはユーザの過失などの小規模な機能停止からの回復に備えてオンサイトで保存してもよい。さらに、複製とアーカイブの両方を使用する実施形態では、アーカイブした媒体を複製として記憶場所に保存してもよいし、運用場所や他の場所に保存してもよい。
図39は、本発明の1つの実施形態による、データをアーカイブする計画を生成するアーカイブ保護計画作成ルーチンを示している。アーカイブ保護計画作成ルーチン3900は、ブロック3901で開始され、ブロック3903でデータ保護の種類を受け取る。データ保護の種類については、アーカイブをオンサイトで保持するか、オフサイトで保持するか、またはオンサイトとオフサイトの両方で保持するかをユーザが指定する。ルーチンは、データ保護の種類を受け取るだけでなく、ブロック3905でデータ保護の期間を受け取る。データ保護の期間は、保護対象の情報を過去どれだけさかのぼって回復できるようにするかについてユーザが指定する高水準のインテントである。こうしたインテントは、ユーザが何を回復しようとするのかに関する目標として指定できる。
たとえば、「最大で7年間のデータを回復できるようにしたい(I want to be able to recover data for up to seven years)」というインテントの指定は、運用場所に7年前に存在していた情報データをユーザが回復できるようなアーカイブ計画に変換される。データの保存期間は、年、月、週、日のいずれの単位でもよい。アーカイブ保護計画作成ルーチン3900は、ブロック3907に示すように、アーカイブデータの作成をいつ実行するかなどのスケジューリングインテントも受け取る。別の実施形態では、データ保護の形式も受け取ることができる。データ保護の形式には、完全バックアップ、差分バックアップ、増分バックアップが含まれるが、これに限定はされない。完全バックアップは、本明細書で使用する限り、すべての保護対象オブジェクトを記憶場所にコピーするバックアップである。差分バックアップは、本明細書で使用する限り、最新の完全バックアップ以降に変更された保護対象オブジェクトを記憶場所にコピーするバックアップである。増分バックアップは、本明細書で使用する限り、前回の何らかのバックアップ(完全、差分、増分のいずれか)以降に変更された保護対象オブジェクトのみをコピーするバックアップである。本明細書で説明するように、差分バックアップと増分バックアップは一般に「部分バックアップ」と呼ばれ、いずれかを意味する。ユーザは、アーカイブを運用場所にある元のデータから作成するか、記憶場所にあるコピーから作成するかを指定してもよい。
アーカイブ保護計画作成ルーチン3900は、データ保護の種類と保護の期間に基づいて、ユーザが指定した高水準の要件を満たすデフォルトのアーカイブスキーマが決定する。実際の実施形態では、データをアーカイブするための4種類のスキーマが存在する。第1のスキーマはgreat grandfather、grandfather、father、son(GGFS)と呼ばれ、オンサイトで4週間保存する年次の完全バックアップとオフサイトで数年間保存するコピー、オンサイトで4週間保存する月次の完全バックアップとオフサイトで1年間保存するコピー、オンサイトで4週間保存する週次の完全バックアップとオフサイトで4週間保存するコピー、およびオンサイトで2週間保存する日次の差分バックアップを提供する。別の実施形態では、ブロック3903で指定した保護の種類に従って、オンサイトとオフサイトのいずれかのコピーのみを保持してもよい。さらに別の実施形態では、ブロック3903で指定した保護の種類に基づいて、特定の期間が経過した後にオンサイトのコピー自体を転送し、オフサイトで保持してもよい。もう1つのスキーマは、本明細書ではgrandfather、father、son(GFS)スキーマと呼ばれる。GFSスキーマは、オンサイトで4週間保存する月次の完全バックアップとオフサイトで1年間保存するコピー、オンサイトで4週間保存する週次の完全バックアップとオフサイトで4週間保存するコピー、オンサイトで2週間保存する日次の差分バックアップを提供する。
もう1つのアーカイブスキーマは、本明細書ではfather、son(FS)スキーマと呼ばれる。FSスキーマは、オンサイトで4週間保存する週次の完全バックアップとオフサイトで4週間保存するコピー、オンサイトで2週間保存する日次の差分バックアップを提供する。もう1つのアーカイブスキーマは、本明細書ではson(S)スキーマと呼ばれる。Sスキーマは、オンサイトで1週間保存する日次の完全バックアップとオフサイトで1週間保存するコピーを提供する。最後に、標準の保護スキーマ以外のバックアップを提供する臨時のルーチンも利用できる。これは、オンサイトまたはオフサイトで保持する無期限の完全バックアップでもよい。
当業者には言うまでもないが、デフォルトのアーカイブスキーマはユーザが任意のレベルで変更でき、追加/代わりのデフォルトのアーカイブスキーマを指定することもできる。たとえば、種類(オンサイト、オフサイト)、期間(月、年)、形式(完全、差分、増分)を変更してもよい。さらに、ユーザはアーカイブスキーマのスケジューリング制御を指定できる。たとえば、ユーザはスキーマを開始する曜日、アーカイブを生成する時刻、スキーマを曜日中心のカレンダーで指定するか月の日付中心のカレンダーで指定するかを指定してもよい。
図39に戻ると、デフォルトのアーカイブスキーマがユーザに提示され、ユーザは提示されたスキーマの任意の部分を変更できる。判断のブロック3911で、決定したアーカイブスキーマに対してユーザが変更を指定したかどうかを判断する。判断のブロック3911でユーザが変更を指定したと判断した場合は、ブロック3913でアーカイブスキーマが変更され、指定した変更が反映される。バックアップスキーマは、その任意の部分を変更でき、適用範囲を変更できる。たとえば、バックアップ形式(完全、差分、増分)、保存するオンサイトコピーの数、保存するオフサイトコピーの数、オフサイトコピーの保存期間、Sレベルを無効にするかどうか、バックアップで作成したデータセットを検証するかどうか、運用場所、記憶場所、あるいは他の場所でアーカイブを実行するかどうか、およびそれをいつ実行するか、週の開始日、営業日数などを変更してもよい。さまざまな理由により、Sレベルを無効化するのが望ましい。たとえば、ユーザがアーカイブと複製の両方を実装した場合は、日次のアーカイブ保護(Sレベル)を停止し、すべてのオンサイト回復要件を複製のみで処理するように指定してもよい。
ブロック3909で決定したアーカイブスキーマがそのまま適用されるかまたはブロック3913に示すように変更されると、ブロック3915で、アーカイブ計画作成ルーチン3900はアーカイブで保護するために必要な計画を生成する。前述のように、データを保護するために必要な計画には、リソース計画、準備計画、保護計画があってもよい。最後に、ブロック3915に示すように計画が生成されると、アーカイブ保護計画作成ルーチン3900はブロック3917で終了する。
図40は、本発明の1つの実施形態による、アーカイブスキーマの生成に利用できるさまざまな生成の例を示す表である。表4000は、週5日(月曜から金曜まで)生成する1つのオンサイトコピーを2週間保持し、オフサイトコピーを保持しない増分モードのバックアップを行うson世代4001を示している。father世代4003は1つのオンサイトコピーを4週間保存する完全モードのバックアップを行い、週に1度(たとえば土曜日に)完全バックアップを実行する。ただし、毎月1週(たとえば毎月の最終土曜日)は実行しない。同様に、father世代4003は1つのオフサイトコピーを4週間保存する。grandfather世代4005は1つのオンサイトコピーを4週間保存する完全モードのバックアップを行い、月に1度(たとえば毎月最終土曜日に)完全バックアップを実行する。ただし、年に1月(たとえば年の最後の土曜日)は実行しない。さらに、grandfather世代4005は1つのオフサイトコピーを12か月間保存する。最後にgreat grandfather世代4007は、1つのオンサイトコピーを4週間保存する完全モードのバックアップを行い、年に1度(たとえば年の最後の土曜日に)完全バックアップを実行する。さらに、great grandfather世代4007は1つのオフサイトコピーを7年間保存する。
曜日中心のカレンダーに従って(月の最終土曜日、年の最終土曜日など)スケジュールする代わりに、月の日付中心(physical calendar)のカレンダーに従ってスケジュールしてもよい。たとえば、月末、年末、月初めなどにジョブを実行するようにスケジュールしてもよい。こうした曜日は、土曜日でもそうでなくてもよい。当業者には言うまでもないが、本発明の実施形態では任意のタイプのスケジューリングおよび/またはカレンダーを利用でき、曜日中心のカレンダーや月の日付中心のカレンダーは例として挙げたにすぎない。スケジューリングの別の態様は、ジョブを実行する期間を指定する機能である。ジョブを実行する期間をスケジュールすることで、ユーザはジョブを実行できる期間を指定できる。さらに、データ保護システムはジョブが指定した時間に完了しないと認識した場合に、事前に警告を発することができる。あるいは、スケジュールした実行時間内にジョブが完了しない場合は、自動的に終了して再スケジュールすることもできる。
当業者には言うまでもないが、son4001、father4003、grandfather4005、great grandfather4007などの世代は、図40に関連して説明した保護計画に関する別のバリエーションを利用するように変更してもよい。唯一の要件は、親は子の同等またはスーパーセットであることである。たとえば、father世代は完全バックアップであり、son世代は完全バックアップ、差分バックアップ、増分バックアップのいずれかである。さらに、オンサイトとオフサイトで保持するコピーの数は、0からユーザが希望する任意の数までの任意の組み合わせでよい。保存期間とコピー作成の頻度も、ユーザの希望どおりに調整できる。
データ保護システムでは、長期間データを保護するためのアーカイブスキーマを作成するだけでなく、媒体の継続的な割り当て、ローテーション、ボールティグ(vaulting)(オフサイトの保管)、廃棄も可能である。このように、本発明の1つの実施形態により、各保護対象グループは媒体プールに関連付けられる。媒体プールは、媒体のコンテナであるが、さまざまなインテントを適用して媒体の割り当てと再利用を制御するオブジェクトでもある。図41に関連して詳細に説明するように、コロケーションインテントなど、媒体の割り当てを制御するさまざまなインテントがある。本発明の1つの実施形態により使用するコロケーションインテントの例には、ジョブコロケーションインテント、sonコロケーションインテント、father/sonコロケーションインテントがある。ジョブコロケーションインテントは、同じジョブ内のタスクに同じ媒体を使用しようとする。これで、ジョブが複数のタスクで構成され、その複数のタスクのデータが唯一の媒体に収まる場合に、媒体の取り付け/取り外しの回数を減らすことができる。sonコロケーションインテントは、GGFS、GFS、FS、Sのいずれかのアーカイブスキーマを指定したsonジョブにおける媒体の使い方を制御する。sonコロケーションインテントを指定すると、特定のサイクル(たとえば1週間のサイクル)の最初のsonジョブは新しい媒体で開始するが、後続のsonは十分な領域がなくなるまですべて同じ媒体に追加される。father/son コロケーションインテントを使用すると、週次の完全バックアップおよび後続の日次の差分バックアップと増分バックアップは同じ媒体に格納される。
図41は、本発明の1つの実施形態による、ジョブコロケーションインテントとsonコロケーションインテントが指定された場合に、データをアーカイブするための媒体を割り当てるルーチンを示す流れ図である。言うまでもないが、アーカイブ用の媒体を割り当てるのにコロケーションインテントの他の組み合わせを指定してもよい。図41に関連して説明するルーチンは1つの例にすぎない。媒体割り当てルーチン4100は、媒体が必要な場合はいつでも実行される。媒体割り当てルーチン4100は、ブロック4101で開始され、判断のブロック4102でジョブコロケーションが指定されているかどうかを判断する。ジョブコロケーションが指定されていないと判断した場合に、媒体割り当てルーチンは判断のブロック4111に進み、後述するように処理を継続する。しかし、判断のブロック4102で、ジョブコロケーションが指定されていると判断した場合は、判断のブロック4103で媒体を割り当てようとするタスクが置換ジョブのタスクかどうかを判断する。置換ジョブは、前のジョブが正常に終了しなかった場合にこれに置き換えられるジョブである。判断のブロック4103でタスクが置換ジョブのタスクであると判断した場合に、ルーチンはブロック4105で正常に終了しなかった元のジョブに割り当てられて使用されたものと同じ物理媒体を割り当てようとする。
しかし、ブロック4103でタスクが置換ジョブのタスクではないと判断した場合は、判断のブロック4107でタスクがジョブの最初のタスクかどうかを判断する。タスクがジョブの最初のタスクではないと判断した場合は、ブロック4109で媒体割り当てルーチン4100はすでに同じジョブの前のタスクに割り当てられているものと同じ媒体を割り当てようとする。
しかし、判断のブロック4107でタスクがジョブの最初のタスクであると判断した場合は、判断のブロック4111で保護対象のデータセットが最初のsonデータセットかどうかを判断する。ブロック4111で保護対象のデータセットが最初のsonデータセットであると判断した場合は、判断のブロック4112でFSコロケーションインテントが指定されているかどうかを判断する。FSコロケーションインテントが指定されている場合に、媒体割り当てルーチン4100はブロック4113で同じサイクルのfatherデータセットで使用された媒体を割り当てようとする。サイクルとは、本明細所で使用する限り、アーカイブセットに対してスケジュールされた期間(数日または数週間など)である。しかし、判断のブロック4112でFSコロケーションインテントが指定されていないと判断した場合に、ルーチンは後述する判断のブロック4115に進む。
判断のブロック4111でデータセットがsonデータセットではない、あるいはサイクルの最初のsonではないと判断した場合は、判断のブロック4114でデータセットが2番目以降のsonデータセットかどうかを判断する。データセットが2番目以降のsonデータセットであると判断した場合は、判断のブロック4118でFSコロケーションインテントまたはSコロケーションインテントが指定されているかどうかを判断する。FSコロケーションインテントまたはSコロケーションインテントが指定されている場合に、媒体割り当てルーチン4100はブロック4116で同じサイクルの最後のsonデータセットで使用された媒体を割り当てようとする。しかし、判断のブロック4118でFSコロケーションインテントもSコロケーションインテントも指定されていないと判断した場合に、ルーチンは後述するブロック4115に進む。
しかし、判断のブロック4114でタデータセットが2番目以降のsonデータセットではないと判断した場合は、判断のブロック4115で世代の同じ再利用可能な媒体を使用できるかどうかを判断する。たとえば、データセットがfatherデータセットの場合は、使用可能な媒体に他のfatherデータセットが格納されているかどうかを判断する。判断のブロック4115で世代の同じ再利用可能な媒体を使用できると判断した場合に、媒体割り当てルーチン4100はブロック4117で世代の同じものから最も古い再利用可能な媒体を選択し、これを割り当てようとする。
判断のブロック4115で、世代の同じ再利用可能な媒体を使用できないと判断した場合、または判断のブロック4127で、ブロック4105、4109、4113、4117の割り当てのいずれかが正常に終了しなかったと判断した場合は、判断のブロック4119で、プール内に空き媒体があるかどうかを判断する。判断のブロック4119で、プール内に媒体があると判断した場合に、媒体割り当てルーチン4100はブロック4121でプールから空き媒体を取得し、これを割り当てようとする。
最後に、判断のブロック4119で、特定の保護対象グループのプール内に空き媒体がないと判断した場合に、媒体割り当てルーチン4100はブロック4123で追加の媒体を取得しようとする。追加の媒体を取得するには、保護対象グループのプールに媒体を追加する必要があることをユーザに通知するか、または既存の空き媒体プールに問い合わせる。空き媒体プールには、別の保護対象グループに関連付けられていない媒体が含まれている。空き媒体プールに空き媒体がない場合は、記憶場所に空き媒体を追加し、空き媒体プールに割り当てる必要があることをユーザに通知する。媒体割り当てルーチン4100は、ブロック4125に示すように、追加の媒体を割り当てて終了するか、追加の媒体を割り当てられない場合はエラーになる。
図41に関連して説明したインテントだけでなく、媒体プールのアクティビティを制御する追加のインテントを使用してもよい。たとえば、ユーザは、媒体プールで保持できる媒体数の上限を指定する上限インテントを指定してもよい。上限インテントを使用することで、プールへの上限を超える不必要な媒体の追加(ユーザまたは自動による)が回避される。同様に、1日あたりの上限インテントを使用して24時間以内に特定のプールに割り当てる空き媒体の項目数を制御してもよい。上限や1日あたりの上限を使用することで、空き媒体プールから特定のプールへの不必要な媒体の追加あるいは過失による媒体の追加(ユーザまたは自動による)が回避される。
アーカイブ保護のための媒体割り当てに対して、最小しきい値インテントを指定してもよい。最小しきい値インテントは、さまざまな媒体プールへの割り当てに使用できる空き媒体プール内の媒体数の最小値を指定する。空き媒体の数が最小値を下回ると、記憶場所に媒体を追加し、空き媒体のプールに割り当てる必要があることをユーザに通知する。再利用可能な媒体を再利用する前、または空き媒体プールに提供して再割り当てする前に消去する必要があるかどうかを示す媒体消去インテントを指定してもよい。
運用場所から記憶場所への保護対象オブジェクトの複製またはコピーは、各場所にインストールされたエージェントのペア間で実行される。このエージェントペアの動作はデータプロテクタで制御する。たとえば、複製の場合は、運用場所にはクローンエージェントがインストールされ、記憶場所には複製エージェントがインストールされている。クローンエージェントと複製エージェントの動作はデータプロテクタで制御する。さらに、データムーバー(data mover)は、エージェントペア間のパイプの役割を果たす。データムーバーは、エージェント間の相互認証を行い、オプションでデータの暗号化、復号化、圧縮、解凍を実行する。さらに、データムーバーはデータ送信中のデータ保護システムによるネットワーク帯域幅消費を制限するスロットル(throttling)フロー制御を備えている。
図42は、本発明の1つの実施形態によるデータ保護システムを示すブロック図である。データ保護システム4200には、運用場所4203から記憶場所4205へのデータ(保護対象オブジェクト)の転送を管理するデータプロテクタ4201が含まれる。前述のように、複製の場合、運用場所4203にはクローンエージェント4207と運用場所4203から記憶場所4205へのデータの流れを制御するデータムーバーの一部4209Aが含まれる。同様に、記憶場所4205には、複製エージェント4211と運用場所4203からの情報を取得するデータムーバーの別の一部4209Bが含まれる。運用場所4203、記憶場所4205、データプロテクタ4201の間の対話を使用して運用場所4203から記憶場所4205にデータを転送し、データプロテクタ4201と通信することでデータ転送の有効性を検証する。
データは、運用場所4203からデータムーバー4209Aを介し、通信チャネル4213を経由して、データムーバー4209Bをから記憶場所4205に送信される。データ保護システムは、運用場所4203から記憶場所4205へのデータの転送を監視する機能を備えており、こうした通信チャネルに障害が発生した場合に中断したデータ転送を再開できる。データの転送を最初からやり直さずに再開できるようにするためには、データ転送の状態を定期的に追跡し、保存する必要がある。この作業は、運用場所4203から記憶場所4205へのデータの転送を監視するデータプロテクタ4201で実行する。
データは、通信チャネル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)から複製エージェントのスピルログ(spill log)(図43〜47)に送信されるときに、データレコードストリームに専用のデータマーカー(レコードチェックポイント)を挿入することで、クローンエージェント4207から送信される。1つの実際の実施形態では、運用場所にあるデータムーバー4209Aからデータストリームを送信するときに、データストリームの終わりにレコードチェックポイントを付加する。別の実施形態では、変更ログにレコードチェックポイントを追加し、データストリームと共にデータアイテムとして送信してもよい。記憶場所のデータムーバー4209Bでデータストリームを受信すると、データとレコードチェックポイントがスピルログに格納される。
複製エージェント4211はデータストリーム内のこうしたレコードチェックポイントをデータプロテクタ4201に転送する。さらに、複製エージェントは独自のレコードチェックポイントを生成し、同様にデータプロテクタ4201に転送する。データプロテクタは、クローンエージェント4207と複製エージェント4211の両方で生成したレコードチェックポイントに含まれる情報を使用して、操作を開始または停止するコマンドを送信する。
データプロテクタ4201は、レコードチェックポイントを受信すると、これを自動的にデータベースに格納する。したがって、データ保護システムは通信障害、プロセス、およびシステム再起動に対して回復が可能である。
本発明の実際の実施形態において、クローンエージェント4207は、本明細書で「クラスCのチェックポイント」および「クラスAのチェックポイント」と呼ばれる2種類のチェックポイントを生成する。クラスCのチェックポイントは、クローンエージェント4207から複製エージェント4211に送信されたデータの状態を表している。クラスAのチェックポイントは、メタデータレコードを生成するプロセス全体における位置を表している。
複製エージェント4211は、本明細書で「クラスBのチェックポイント」と呼ばれる1種類のチェックポイントを生成する。クラスBのチェックポイントは、複製エージェント4211が受信し、適用するデータレコードを指定する。
クラスCとクラスBのチェックポイントはデータチェックポイントである。こうしたチェックポイントは、クローンエージェント4207から複製エージェント4211へのデータ送信を再開するときと、複製エージェント4211で受信したデータレコードの適用を再開するときに使用される。クラスAのチェックポイントはメタデータチェックポイントである。このチェックポイントは、メタデータを生成するクローンエージェント4207上で長時間続くプロセスを監視する場合に使用される。クラスAのチェックポイントによって、データ送信が中断した場合に、このように長時間続くプロセスの繰り返しの作業量が削減される。
より詳細には、クラスCのチェックポイントはクローンエージェント4207システムと複製エージェント4211システム上のデータストリーム内の位置へのポインタを含んでいる。クラスCのチェックポイントは、クローンエージェント4207によって生成され、複製エージェント4211に転送される。複製エージェント4211は、スピルログ内の最後に受信したレコードのポインタを使用してクラスCのチェックポイントを更新する。
クラスBのチェックポイントには、記憶場所4205に配置された複製エージェント4211が最後に適用したデータレコードへのポインタが含まれる。データプロテクタ4201がクラスBのチェックポイントを受信すると、このチェックポイントはデータプロテクタ4201に対してクラスBのチェックポイントより前のデータブロックはすべて記憶場所に格納されたデータの複製に適用されたことを示している。
クラスAのチェックポイントは、メタデータ生成中にクローンエージェント4207で処理された保護対象データの量を示している。複製エージェントがクラスAのチェックポイントを受信すると、複製エージェントは必要に応じてその独自のメタデータを追加してクラスAのチェックポイントをデータプロテクタに転送する。データプロテクタがクラスAのチェックポイントを受信すると、このチェックポイントに含まれる位置までメタデータの生成が完了したことを意味する。1つの実施形態では、クラスAのチェックポイントを連続的に参照し(たとえば連番を付けて)、クラスAのチェックポイントが失われていないかをデータ保護システムが判断できるようにしてもよい。クラスAのチェックポイントが失われている場合は、相違リストの要素が失われている可能性があるので、検証を再開する。後述するように、相違リストには複製と一致しない保護対象オブジェクトを特定する情報が含まれる。こうしたオブジェクトは、運用場所で生成されたメタデータを記憶場所で生成されたメタデータと比較することで特定される。
前述の3種類のチェックポイント以外に、データプロテクタ4201は特殊なマーカートークンを生成し、これを運用場所4303に配置されたクローンエージェントに送信してデータレコードストリームに挿入することができる。このトークンは、クローンエージェント4207から通信チャネル4213を介して複製エージェント4211に送信される。複製エージェント4211は、トークンを受信するとこれをデータプロテクタ4201に送信する。このマーカートークンの目的は、メタデータの生成を再開する前のデータ通信の送信からクラスAのチェックポイントをすべてクリアすることである。システム全体のクラスAのチェックポイントをすべて通過することで、クローンエージェント4207ですでに生成されているメタデータが送信され、この場合にのみメタデータの生成が再開される。このことの利点は、データレコードの送信ログがオーバーフローしないようにすることであり(メタデータ生成のプロセスがクローンエージェント4207の送信能力をはるかに上回る場合)、同じメタデータを繰り返し生成しないようにすることである。これは、データプロテクタ4201はマーカートークンを受信する前にすべてのメタデータを参照するためである。
図43〜44は、本発明の1つの実施形態によるデータ保護システムで実行するデータ転送監視ルーチンを示す流れ図である。前述のように、運用場所4303と記憶場所4305とのデータ転送は、ユーザまたは別の担当者が保護対象データを変更するのに応答して開始される。あるいは、スケジュールされたジョブ実行時に開始される。保護対象データの変更に応答して、運用場所4303では変更ログ4307に保護対象データの変更のレコードを記録する。たとえば、R1、R2、R3、R4、R5、R6は、運用場所4303のクローンエージェントによって変更ログ4307に記録された個々の変更レコードである。変更ログ4307内のレコードはデータムーバーによって変更ログ4307から定期的に抽出され、バッチにまとめて記憶場所4305に送信される。さらに、クローンエージェントが変更ログ4307内の最後に送信されたレコードの位置へのポインタを含むクラスCのチェックポイントを生成し、送信バッチの終わりにクラスCのチェックポイントを追加する。たとえば、クローンエージェントは変更ログ4307からレコードR1、R2、R3を抽出し、こうしたレコードをバッチにまとめてこのバッチを運用場所4305に送信する。R3の変更ログ4307内の位置(この場合は変更ログ内の位置4)へのポインタを含むクラスCのチェックポイント4311が生成される。このクラスCのチェックポイントは、運用場所4305に送信されるバッチの終わりに付加される。
上の例ではデータの送信バッチごとにクラスCのチェックポイントを生成でき、送信できることを示しているが、別の実施形態では、送信するデータの容量に基づいてクラスCのチェックポイントを生成できる。このような実施形態では、あらかじめ指定した最小の送信サイズを超えた場合にのみ、クラスCのチェックポイントを生成してもよい。さらに別の実施形態では、クラスCのチェックポイントの生成と送信は、前のクラスCのチェックポイントが生成され、送信されてからの時間に基づいていてもよい。さらに、あらかじめ指定したデータ送信の回数に基づいて、クラスCのチェックポイントを生成し、送信してもよい。たとえば、5回目ごとのデータ送信で、クラスCのチェックポイントを生成し、送信してもよい。さらに、本発明の実施形態では、チェックポイントを生成し、送信する技術の任意の組み合わせを利用できる。たとえば、データが最小のサイズを超えた場合または5回目ごとの送信で、クラスCのチェックポイントを生成できる。
記憶場所4305に配置された複製エージェントは、データムーバーを介して送信されたレコードとクラスCのチェックポイントを受信し、送信されたレコードとクラスCのチェックポイントをスピルログ4313に格納する。さらに、記憶場所4305に配置された複製エージェントは、クラスCのチェックポイント4311を受信すると、クラスCのチェックポイントのスピルログ4313内の位置を示す第2のポインタをクラスCのチェックポイントに追加する。この場合、クラスCのチェックポイント4311に追加されたポインタは、スピルログ内の位置106へのポインタである。したがって、クラスCのチェックポイント4313には、変更ログ4307内の最終送信位置とスピルログ4313内のクラスCチェックポイントの位置の両方の位置へのポインタが含まれる。ここで、複製エージェントによってクラスCのチェックポイント4315がデータプロテクタ4301に転送される。データプロテクタ4301は、クラスCのチェックポイントをデータベースに記録する。別の実施形態では、クラスCのチェックポイントがスピルログには格納されず、代わりに複製エージェントはバッチで最後に送信された変更レコードを指定するポインタをクラスCのチェックポイントに追加してから、データプロテクタ4301にクラスCのチェックポイントを転送する。
図44を参照すると、データプロテクタ4301は記憶場所4305からクラスCのチェックポイントを受信すると、このクラスCのチェックポイントをデータプロテクタのデータベースに格納し、運用場所4303に送信する。運用場所4303でクラスCのチェックポイントの確認を受信することで、運用場所はクラスCのチェックポイントより前に送信したすべてのレコードを記憶場所4305で受信したこと、およびこうした送信レコードが変更ログ4307からパージされる可能性があることを確認する。
記憶場所4305に配置された複製エージェントは、レコードを受信し、こうしたレコードをスピルログ4313に格納するだけでなく、記憶場所4305に配置されたデータの複製への受信したレコードの適用を開始する。複製エージェントは、事前に指定したポイントで、複製データ4317に最後に適用したレコードのスピルログ4313内の位置を示すポインタを含むクラスBのチェックポイントを生成する。あらかじめ指定したポイントは、たとえば処理されたデータの量、最後のクラスBのチェックポイントからの経過時間、あるいはこの2つの組み合わせに基づいていてもよいが、これに限定はされない。たとえば、複製エージェントはスピルログ4313内の位置103からR1を適用し、スピルログ4313のからR2を適用し、複製データ4317にR2を適用してから、スピルログ内の位置104への参照を含むクラスBのチェックポイントを生成してもよい。生成されたクラスBのチェックポイント4319は、記憶場所4305に配置された複製エージェントによってデータプロテクタ4301に転送される。データプロテクタ4301は、クラスBのチェックポイントをデータベースに格納し、データ転送が中断した場合に利用できる。
さらに、データプロテクタ4301は記憶場所4305からクラスBのチェックポイントを受信すると、このクラスBのチェックポイントをデータプロテクタのデータベースに格納し、クラスBのチェックポイントの確認を記憶場所4305に返送する。記憶場所4305でクラスBのチェックポイントの確認を受信することで、データプロテクタが複製データ4317に適用された最後のレコードの位置を記録したこと、およびこうしたレコードがスピルログ4313からパージされる可能性があることを記憶場所4305に対して確認する。
レコードを転送し、転送したレコードを記憶場所で複製データに適用するプロセスとチェックポイントのサイクルによって、記憶場所4305に対して運用場所4303からのレコード送信の精度を確認し、クラスBのチェックポイントの確認を受信することで、失敗した結果、データ送信を再開する場合に利用できる情報をデータプロテクタ4301に提供する。
図45は、本発明の1つの実施形態による、運用場所4303から記憶場所4305への変更レコードの送信を再開するデータ保護システムを示す流れ図である。説明のために、システムは運用場所4303から記憶場所4305にデータを送信していたが、何らかの原因で送信が中断し、システムが送信を再開しようとしていると仮定する。
データの送信を再開するために、データプロテクタ4301はデータプロテクタ4301のデータベースに格納したクラスCとクラスBチェックポイントの最後の記録を参照し、運用場所4303と記憶場所4305の再開する位置を特定する。たとえば、データプロテクタ4301は、記録されたクラスBのチェックポイントB2を参照し、最後のレコードが適用されたスピルログ4313内の位置が107であったことを特定する。したがって、データプロテクタ4301は記憶場所4305の複製エージェントに対してスピルログの位置108からレコードの適用を開始し、次に受信したデータレコードをスピルログの位置111より後(すなわちスピルログの位置112)に格納するように命令するコマンドを生成し、記憶場所4305に送信する。複製エージェントが受信したレコードの格納を開始する位置(112)は、データプロテクタ4301のデータベースに最後に記録されたクラスCのチェックポイントを参照することで特定される。この例において、データプロテクタ4301はクラスCのチェックポイントC3を参照し、記憶場所4305で受信したことが最後に確認されたクラスCのチェックポイントがスピルログ内の位置111にあることを特定する。
同様に、データプロテクタ4301は最後に受信したクラスCのチェックポイントC3を参照し、運用場所4303から最後に送信され、記憶場所4305で正常に受信したレコードが変更ログの位置9に配置されたことを確認する。したがって、データプロテクタ4301は運用場所4303に配置されたクローンエージェントに対して記憶場所4305への送信をレコード10から開始するように命令するコマンドを生成し、運用場所4303に送信する。
概して、データレコードの送信を効率的に再開するために、データプロテクタ4301は3つのコマンドを生成し、送信する。変更ログ4307内の送信開始ポイントを指定するstart sending recordsコマンドが生成され、運用場所4303に送信される。スピルログ4313内の適用を再開する位置を指定するstart applying recordsコマンドが生成され、記憶場所4305に送信される。第3のコマンド、つまりスピルログ4313内の新しく受信したレコードを格納する位置を指定するstart storing received recordsコマンドが生成され、記憶場所4305に送信される。
クラスBおよびクラスCなどのチェックポイントを参照し、start applying recordsコマンド、start sending recordsコマンド、およびstart storing received recordsコマンドを生成することで、データ保護システムは自らを再同期化でき、データ転送における既知のチェックポイントから再開すれば、データの先頭から送信を開始する必要はない。データが失われることもない。
運用場所4303から記憶場所4305への変更レコードの送信を監視するだけでなく、前述のように、データ保護システムは記憶場所4305に配置された複製データ4317の整合性を検証する機能を備えている。本発明の実際の実施形態において、データの有効性確認は運用場所4303から有効性確認レコードを送信し、これを記憶場所4305に格納されたレコードと比較することで実施される。
図46と47は、本発明の1つの実施形態による、複製4317の有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチンを開始するために、データプロテクタ4301は運用場所4303に対して有効性確認を開始するためのコマンドを発行する。start validationコマンドの受信に応答して、クローンエージェントは運用場所4303にある各保護対象オブジェクトに関するメタデータの生成を開始する。このメタデータがレコードとして変更ログ4307に追加され、変更レコードと共に送信される。レコードとメタデータは、前述のように、変更ログ4307から記憶場所4305に送信される。記憶場所4305では、前述のように、変更レコードを受信するとこのレコードを複製データ4317に適用する。V1などのメタデータレコードを適用すると、記憶場所4305に配置された複製エージェントは複製データ4317の同じ部分についてメタデータを計算する。2つのメタデータを比較し、複製データの該当する部分の有効性と整合性を確認する。メタデータが一致しない場合に、複製エージェントは複製4317と一致しない保護対象オブジェクトを示す相違リストを生成する。
当業者には言うまでもないが、メタデータを使用して複製データを保護対象オブジェクトと比較する作業は、比較するデータのチェックサムを作成すること、および/またはデータの最終更新時刻など、他の任意の指標(indicia)を比較することで実施できる。
V1やV2などの一連のメタデータレコードが変更ログ4307に追加された後、あらかじめ指定した時点で、運用場所4303に配置されたクローンエージェントは変更ログ4307にレコードとして追加するクラスAのチェックポイントを生成する。生成されたクラスAのチェックポイント(A1など)は、変更レコードおよびメタデータレコードと共に通信チャネルを介して記憶場所4305に送信される。
記憶場所4305に配置された複製エージェントがクラスAのチェックポイントを受信すると、複製エージェントはクラスAのチェックポイントとメタデータ比較の結果として生成された相違リスト(ある場合)をデータプロテクタ4301に転送する。図46に示すように、クラスAのチェックポイントはパージされるまでスピルログに保持できる。あるいは、クラスAのチェックポイントを受信すると同時に相違リストと共に転送してもよい。したがって、スピルログに格納しなくてもよい。
データプロテクタ4301は、クラスAのチェックポイントと相違リストを受信し、クラスAのチェックポイントと相違リストをデータベースに格納する。相違リストは運用場所に転送され、指定された保護対象オブジェクトは再複製されて記憶場所に再送される。指定された保護対象オブジェクトの再複製と再送は、相違リストの受信に応答して実行してもよいし、後で(たとえば複製の有効性確認が完了してから)実行するようにスケジュールしてもよい。
クラスAのチェックポイントには、それ自体の中で特定の保護対象オブジェクトが指定されており、そのオブジェクトに至るまでのメタデータが計算されている。たとえば、server1上のC:\にある保護対象オブジェクトのメタデータが生成されており、最後にメタデータを生成した保護対象オブジェクトがserver1上のC:\file50の場合は、クラスAのチェックポイントにserver1上のC:\file50への参照が含まれる。この情報はデータプロテクタ4301よってデータベースに格納されるので、データ送信が中断した場合に、有効性確認を再開する参照ポイントとなる。
図47は、本発明の1つの実施形態による、有効性確認が特定の時点で中断した場合に、有効性確認を再開するために本データ保護システムで生成される有効性確認再開ルーチンの再開を示す流れ図である。このルーチンを説明するために、まずデータ送信が中断し、再開しようとしていると仮定する。データ送信を再開する場合に、データプロテクタ4301は図47にApとして示すマーカートークンを生成して送信する。マーカートークンはデータプロテクタ4301で生成する独自のトークンであり、データの有効性確認を再開する前に、システム全体を循環し、すべてのメタデータとクラスAチェックポイントをクリアする。
マーカーApはデータプロテクタ4301から運用場所4303に送信され、運用場所4303に配置されたクローンエージェントによって変更ログ4307に追加される。運用場所4303でマーカートークンApを受信すると、クローンエージェントはマーカーApを変更ログ4307に追加し、続いてマーカーApを記憶場所4305に送信する。記憶場所4305でマーカートークンApを受信すると、記憶場所4305に配置された複製エージェントはこのマーカートークンApをデータプロテクタ4301に転送する。
データプロテクタ4301でマーカートークンApを受信すると、データプロテクタ4301はこれまでに生成されたシステムに関するすべてのメタデータが運用場所4303から記憶場所4305に送信されたことを認識する。データプロテクタ4301は、クラスAのチェックポイントのデータベースを参照すると、送信された最新のクラスAのチェックポイントを特定し、運用場所でデータの有効性確認を再開する位置を含むrestartコマンドの準備をする。データプロテクタ4301は、運用場所4303にrestart validationコマンドとデータの有効性確認を再開するポイントの指定を送信する。
たとえば、図47を参照すると、データプロテクタ4301がデータベースから前回の有効性確認ルーチン実行中にメタデータを計算した最新の保護対象オブジェクトはserver1上のC:\file1003である。したがって、データプロテクタ4301はserver1のボリュームC:上のfile1003までのすべてのファイルに関してメタデータが生成され、送信されたことを認識し、その結果、運用場所4303に対してserver1上のC:\file1003より後のメタデータ生成を指示するrestart validationコマンドを生成する。
図48Aは、本発明の1つの実施形態による、運用場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。コマンド処理ルーチン4800は、ブロック4801で開始され、判断のブロック4903で受信したコマンドが「start transmission」コマンドかどうかを判断する。前述のように、データ保護システム全体に配置されたエージェントを制御するコマンドはデータプロテクタで生成される。判断のブロック4803で、受信したコマンドが「start transmission」コマンドであると判断した場合は、ブロック4805で送信開始ポイントを特定する。送信開始ポイントは、「start transmission」コマンドで指定してもよい。送信開始ポイントは、変更ログ内のデータの送信を開始する位置である。
さらに、ブロック4807で送信終了ポイントを特定する。送信終了ポイントは、さまざまな方法で指定できる。たとえば、送信終了ポイントは、変更ログ内の最新のレコードを検出し、これを送信終了ポイントとして使用する、データ送信の最大サイズを指定し、ログ内でこのサイズに達するポイントを特定するなどの方法で特定できる。送信の開始ポイントと終了ポイントを特定すると、ブロック4809でコマンド処理ルーチン4800はデータ送信フロー(図48B)に制御を渡す。
判断のブロック4803に戻り、受信したコマンドが「start transmissions」コマンドではないと判断した場合は、判断のブロック4811で受信したコマンドが「start validation」コマンドかどうかを判断する。判断のブロック4811で、受信したコマンドが「start validation」コマンドであると判断した場合は、ブロック4813で運用場所の有効性確認を開始する位置を特定する。送信の開始ポイントおよび終了ポイントと同様に、位置は「start transmission」コマンドで指定してもよいし、別の方法で取得してもよい。運用場所内で有効性確認を開始する位置を特定すると、コマンド処理ルーチン4800は、ブロック4815に示すように、有効性確認ルーチン(図48C)に制御を渡す。
判断のブロック4811で、受信したコマンドが「start validation」コマンドではないと判断した場合は、判断のブロック4817で、受信したコマンドがCのチェックポイントの確認かどうかを判断する。Cのチェックポイントの確認であると判断した場合は、ブロック4819に示すように、Cのチェックポイントが確認される前に送信された変更ログ内のレコードが変更ログからパージされ、ブロック4821でルーチンが終了する。ただし、判断のブロック4817で、受信したチェックポイントがCのチェックポイントの確認ではないと判断した場合は、受信したコマンドがマーカートークンApである。ブロック4823でマーカートークンApを変更ログに挿入し、ブロック4825でルーチンが終了する。
図48Bは、本発明の1つの実施形態による、運用場所から記憶場所に変更レコードを送信するデータ送信ルーチンを示す流れ図である。データ送信ルーチン4830は、ブロック4831で開始され、ブロック4833で変更ログから取得した変更レコードのグループをバッチに一括して送信する。レコードのバッチには任意の数のレコードを含めることができる。レコードのバッチ作成は、変更ログが最大サイズに達した場合、変更が発生した後、あらかじめ指定した時点で行われる。当業者には言うまでもないが、前述のレコードのバッチを作成するタイミングとレコードのバッチサイズは例にすぎず、本発明の実施形態では、レコードのバッチを作成する任意のタイミングとサイズを利用できる。たとえば、レコードのバッチに唯一のレコードを含め、データ保護システムに変更が発生するたびにバッチを作成してもよい。
ブロック4835で、レコードのバッチが運用場所から送信される。レコードのバッチを送信する以外に、クラスCのチェックポイントが生成されてレコードのバッチの終わりに追加され、レコードのバッチの一部として送信される。前述のように、クラスCのチェックポイントには、レコードのバッチに含まれる最新の変更レコードの変更ログ内の位置へのポインタが含まれる。判断のブロック4837で、変更ログ内に他にもレコードがあるかどうかを判断する。判断のブロック4837で他にもレコードがあると判断した場合は、データ送信ルーチン4830はブロック4833に制御を返し、ルーチンは継続する。しかし、判断のブロック4837で他に送信するレコードがないと判断した場合は、ブロック4839に示すようにこのルーチンが終了する。
図48Cは、本発明の1つの実施形態による、データの有効性を確認する有効性確認ルーチンを示す流れ図である。有効性確認ルーチン4840は、ブロック4841で開始され、判断のブロック4843で、運用場所内に有効性を確認する必要のあるオブジェクトがあるかどうかを判断する。判断のブロック4843で、有効性を確認する必要のあるレコードが他にはないと判断した場合は、ブロック4844に示すようにこのルーチンが終了する。ただし、有効性を確認する必要のあるレコードが他にはないと判断した場合は、ブロック4845でオブジェクトのメタデータを作成する。特に、メタデータを生成する最初のオブジェクトは、コマンド処理ルーチン4800(図48A)のブロック4813で特定した開始位置に対応するオブジェクトである。メタデータを生成すると、このメタデータが変更ログにメタデータレコード(V)として追加される。
判断のブロック4847で、クラスAのチェックポイントが生成されて変更ログに追加されるかどうかを判断する。前述のように、クラスAのチェックポイントはメタデータレコードを生成して送信するプロセス全体における位置を表しており、データの有効性確認を再開するときに利用される。さらに、クラスAのチェックポイントには一連のマーカーが含まれており、送信されたクラスAのチェックポイントの1つが受信されていないかどうかを判断できる。判断のブロック4847で、クラスAのチェックポイントが生成されると判断した場合、ブロック4849でチェックポイントが生成されてレコードとして変更ログに追加され、変更ログ内の他のレコードと共にバッチに一括して送信される。変更ログにクラスAのチェックポイントを追加すると、有効性確認ルーチン4840は判断のブロック4843に制御を返し、ルーチンは継続する。しかし、判断のブロック4847でクラスAのチェックポイントをを生成しないと判断した場合は、有効性確認ルーチン4840は判断のブロック4843に制御を返して継続する。
図49Aは、本発明の1つの実施形態による、記憶場所で受信したコマンドを処理するコマンド処理ルーチンを示す流れ図である。コマンド処理ルーチン4900は、ブロック4901で開始され、判断のブロック4903で受信したコマンドが「start reception」コマンドかどうかを判断する。「start reception」コマンドは、記憶場所で運用場所から送信されるレコードの受信を開始せよという命令である。判断のブロック4903で、コマンドが「start reception」コマンドであると判断した場合は、ブロック4905で、受信したレコードを格納するスピルログ内の開始ポイントを特定する。スピルログ内の位置の特定は、「start reception」コマンドまたは別の命令内で位置を受け取ることで決定できる。受信したレコードの格納を開始するスピルログ内の位置を特定すると、コマンド処理ルーチン4900は、ブロック4907に示すように、レコード受信ルーチン(図49B)に制御を渡す。
判断のブロック4903に戻り、受信したコマンドが「start reception」コマンドではないと判断した場合は、判断のブロック4909で受信したコマンドが「start application」コマンドかどうかを判断する。受信したコマンドが「start application」コマンドの場合は、ブロック4911でレコードの適用を開始するスピルログ内の開始位置を特定する。レコード受信開始位置と同様に、スピルログ内の位置の特定は、「start application」コマンドで指定された位置または別のコマンドとして受信した位置によって特定される。適用を開始するスピルログ内の位置を特定すると、コマンド処理ルーチン4900は、変更レコード適用ルーチン(図49C)に制御を渡す。
判断のブロック4909で、コマンドが「start application」コマンドではないと判断した場合は、コマンドがクラスBのチェックポイントの確認であり、ブロック4915で、確認されたクラスBのチェックポイントが送信される前に記憶場所でコピーに適用されたスピルログに含まれるすべてのレコードがログからパージされる。ブロック4917でルーチンが終了する。
図49Bは、本発明の1つの実施形態による、記憶場所でレコードを受信するレコード受信ルーチンを示す流れ図である。レコード受信ルーチン4920は、ブロック4921で開始され、ブロック4923で次に到着するレコードを受信する。前述のように、レコードの送信は、有線、無線などを含むがそれに限定はされない任意のタイプの送信媒体を使用して実行できる。判断のブロック4925で、受信したレコードがクラスCのチェックポイントかどうかを判断する。クラスCのチェックポイントである場合は、クラスCのチェックポイントのスピルログ内の位置がクラスCのチェックポイントに追加され、ブロック4927に示すように、クラスCのチェックポイントをデータプロテクタに転送する。判断のブロック4925で、レコードがクラスCのチェックポイントではないと判断した場合は、判断のブロック4929で、レコードがマーカートークンApかどうかを判断する。レコードがマーカートークンの場合は、ブロック4931でマーカートークンをデータプロテクタに送信する。
判断のブロック4929で、レコードがマーカートークンではないと判断した場合は、判断のブロック4935で、レコードがクラスAのチェックポイントかどうかを判断する。判断のブロック4935でレコードがクラスAのチェックポイントであると判断した場合は、ブロック4937でクラスAのチェックポイントと相違リストをデータプロテクタに転送する。判断のブロック4935で、レコードがクラスAのチェックポイントではないと判断した場合、またはレコードをデータプロテクタに転送(ブロック4927、4931、4937)した後は、ブロック4939に示すように受信したレコードをスピルログに追加する。判断のブロック4941で、他にも受信したレコードがあるかどうかを判断する。他にもレコードがある場合は、レコード受信ルーチン4920がブロック4923に戻って処理を継続する。他にレコードがない場合は、ブロック4943でこのルーチンが終了する。
図49Cは、本発明の1つの実施形態による、記憶場所に格納された複製に変更レコードを適用する変更レコード適用ルーチンを示す流れ図である。レコード適用ルーチン4950は、ブロック4951で開始され、ブロック4953でスピルログからレコードを取得する。判断のブロック4955で、取得したレコードにメタデータが含まれるかどうかを判断する。レコードにメタデータが含まれると判断した場合は、ブロック4957でメタデータを複製に格納された対応するオブジェクトと比較する。前述のように、メタデータは最終更新時刻、サイズ、計算したチェックサムなど、オブジェクトに関する任意の形の識別情報でよい。判断のブロック4959で、メタデータの比較に基づいてメタデータが異なるかどうかを判断する。比較したメタデータが異なる場合は、ブロック4961で、メタデータを比較したオブジェクトの識別情報が相違リストに追加される。特定されたオブジェクトを相違リストに追加するとき(ブロック4961)、または判断のブロック4949でメタデータが異なっていないと判断した場合に、変更レコード適用ルーチン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つまたは複数のジョブとこうしたジョブのスケジュールが含まれる。本発明の実際の実施形態において、ジョブは、保護、回復、検出、ハウスキーピング(housekeeping)の4タイプのいずれかと考えることができる。保護ジョブは、複製、仮バージョン管理、アーカイブ、ステージングなど、データ保護のアクティビティを実行する。保護タスクはそれぞれ保護対象グループに関連付けられる。回復ジョブは、複製、データセット、アーカイブ、あるいはそれらの組み合わせからのデータの回復を実行する。回復タスクはそれぞれ回復ソースに関連付けられる。初期検出ルーチン(図25)とスケジュールされた検出ルーチン(図26)のような検出ジョブは、データプロテクタの外部のエンティティを検出する。検出は、検索、ナビゲーション、自動検出グループのリフレッシュまたは保存検索の結果、および保護対象グループのメンバーシップ決定のために実行する。ハウスキーピングジョブは、データ保護システムを保守するために必要なアクティビティを実行する。ハウスキーピングジョブには、インストールされたエージェントのバージョン調査、サマリー証跡(summary trail)、媒体の移行、データ保護システムデータベースのガーベッジコレクション(garbage collection)が含まれる。
データ保護システムの各ジョブは、ジョブマネージャで監視する。ジョブマネージャは、ジョブの全体的な進捗を監視し、データプロテクタデータベースからこうしたジョブに関連するデータを読み込み、こうしたジョブから受け取った情報をマネージャが保守するデータプロテクタデータベースの特定の部分に書き込む。ジョブマネージャが保守するデータベースの一部について、データベースのこの部分に情報を書き込むことができるデータ保護システムの唯一のマネージャである。
図50は、本発明の1つの実施形態による、複数のタスクを含むジョブを示すブロック図である。前述のように、ジョブ5000にはタスク1(5001)、タスク2(5002)のように1つまたは複数のタスクが含まれており、タスクN(5003)に示すようにその数は任意である。ジョブの各タスクは、タスクエグゼキュータ(executor)(5005、5007)によって実行され、管理される。タスクエグゼキュータ5005は、タスク2(5002)などのタスクを実行するときに、データ保護システム全体に分散するさまざまなエージェントが実行する1つまたは複数のコマンドを生成できる。たとえば、タスクエグゼキュータ5005はタスク2(5002)を実行するための3つの異なるコマンドを生成でき、各コマンドを異なるエージェントが実行する。タスク2(5002)の第1のコマンドはエージェントA(5009)が実行し、第2のコマンドはエージェントB(5011)が実行し、第3のコマンドはエージェントC(5013)が実行してもよい。タスクのタイプとジョブのタイプによって、エージェント5009〜5013はコマンドをシリアルにもパラレルにも実行できる。
ジョブのプロパティは、ジョブのすべてのタスクに適用される。ジョブの個々のタスクにも固有のプロパティを指定できる。保護ジョブのジョブとタスクのプロパティは、グループ計画のジョブ作成の一部としてインテント変換によって決定する。本発明の実際の実施形態において、すべてのジョブには、成功/失敗の対処、およびパラレルの実行またはシリアルのみの実行のプロパティがあってもよい。さらに、データの移動を伴う任意のジョブには、暗号化、圧縮、スロットル、およびコロケーションインテントのプロパティがあってもよい。
各タスクエグゼキュータ(executor)5005、5007は、有限ステートマシン(FSM:finite state machine)として生成できる。FSMは、入力に応じてFSMをさまざまな状態に移行させる共通のエンジンで実行され、再開ロジック(restart logic)を実行する。たとえば、タスクエグゼキュータは、エージェントに対して以前に発行したコマンドからの応答に基づいて移行してもよい。共通エンジンを使用することで、すべてのFSMの設計が設計に関する共通の方法論に準拠でき、FSMが同じ共通ブロックを共有できる(たとえば、ポーリングを行い、エージェントが有効かどうか、エージェントからステータスを取得したかどうかを判断する)。
通常、タスクエグゼキュータはエージェントに対してコマンドを発行し、こうしたコマンドが成功したか失敗したか、およびこうしたコマンドからの応答によって、待機状態に移行したり待機状態から戻ったりする。さらに、タスクエグゼキュータ5005、5007は、タスク実行中に特定の時間が経過した場合、キャンセル要求に応答する場合(たとえば、そのジョブに対して指定された制限時間を超えたためにユーザがのキャンセルを要求した場合など)、またはデータベースの状態に基づいて生成される内部メッセージに応答する場合に移行できる。移行するたびに、タスクエグゼキュータはタスクを介してその移行を保存する。保存された移行ポイントは、データプロテクタデータベースに格納できる。タスクを介して移行ポイントを保存することで、予期しない終了イベント(停電など)に対して堅牢なデータ保護システムが提供される。再開時に、タスクエグゼキュータは保存されたポイントを参照し、タスクの適切な状態を特定し、このポイントの直後に失敗して必要なクリーンアップを実行することができる。
たとえば、前述のように、複製のためのデータ送信ジョブでは、タスクエグゼキュータがジョブの各タスクを実行する適切なエージェントに対してコマンドを発行する。こうしたコマンドには、クローンエージェントに対して発行する変更レコードの送信開始コマンドが含まれる。同様に、タスクエグゼキュータは複製エージェントに対してレコードの受信と適用を開始するコマンドを発行する。エージェントがこうしたコマンドを実行すると、タスクエグゼキュータはタイマーを起動し、待機状態に移行する。移行する(コマンドを発行し、待機を開始する)たびに、タスクエグゼキュータはタスクの移行ポイントを保存する。タスクエグゼキュータが受信する応答には、チェックポイント、タイムアウトイベント、キャンセル要求などがある。応答を受信すると、タスクエグゼキュータはその応答に従ってタスクのそのポイントを保存する。このプロセスは、タスクが成功または失敗して終了するまで続く。
タイムアウトイベントが発生した場合に、タスクエグゼキュータ5005は各エージェントにポーリングしてエージェントが依然として有効かどうか、およびそのエージェントが実行するコマンドの移行に関する更新情報を取得できるかどうかを判断してもよい。移行ポイントを保存することで、堅牢性を向上するだけでなく、長時間続くアクティビティ、中間ポイント、チェックポイントから再開でき、失敗した場合に作業が全面的には失われないように設計される。たとえば、図43〜47に戻り、データの送信と有効性確認の間にチェックポイントが作成される。こうしたチェックポイントは、複製マネージャによって取得され、データプロテクタデータベースに格納される。図43〜47に関連して上で説明したように、失敗から再開するときに、こうしたチェックポイントにアクセスし、チェックポイントで指定するポイントからデータの送信や有効性確認を再開できる。
タスクエグゼキュータ5005、5007は、タスクの実行を終了するだけでなく、本発明の1つの実施形態において、ジョブマネージャにタスクの完了と、タスクが成功したか失敗したかを通知する。ジョブマネージャは、ジョブを構成するすべてのタスクについてサマリー情報を提供する独自の証跡(trail)を保持する。たとえば、ジョブ証跡には成功して終了したタスクの数が記録される。また、ジョブマネージャはタスクエグゼキュータから受け取った情報をデータプロテクタデータベースのタスク証跡に保存する。さらに、タスクエグゼキュータもタスクに関連するタスクエグゼキュータに固有の情報を伴う独自のタスク証跡を保持する。タスク証跡には、タスク実行中に発生したエラーやデータ保護システムのユーザに役立つタスクに関連する統計を記録してもよい。タスクのタイプに固有の証跡は、その特定のタスクに関連付けられたマネージャが受け取って保持する。タスクのタイプに固有の証跡には、データを移動するために必要な時間の合計、タスクを終了するために必要な時間の合計、送信するデータの全容量など、タスクに固有の情報を含めてもよい。データ保護システムを再起動するときに、タスク証跡を利用して失敗の原因となったエラーパスを特定できる。さらに、タスクはタスク専用のメタデータを保持してもよい。再開時にこの専用のメタデータを使用して失敗したタスクをクリーンアップし、このタスクが完了(失敗または成功)したときにタスク証跡を作成する。さらに、タスクエグゼキュータ5005、5007はタスクに関連するメタデータを管理してもよい。
失敗した場合は、再開するときにジョブが非常に簡単なクリーンアップを実行する。ジョブはジョブ自体を再スケジュールせず、複雑な回復操作も実行しない。代わりに、失敗したジョブのタスクが物理オブジェクトの状態を簡単に更新して失敗する。失敗は、タスク証跡とジョブ証跡に記録される。プロンプトと自動回復操作を保証する重要なタスクの場合は、データ保護システムがヘルスマネージャを介してメイクアップジョブを作成し、これを使用してタスクが失敗したポイントまたはタスクで生成した最新のチェックポイントから完了までのジョブを実行する。ヘルスマネージャは、タスク証跡とデータベース内のさまざまなオブジェクトの状態を利用して、データ保護を続行できるより複雑な回復メカニズムを実装する。
複製など、クリティカルとみなされるタスクの場合は、ヘルスマネージャがこうしたタスクを監視してもよい。1つの実施形態において、ヘルスプロバイダはヘルスマネージャによってインスタンス化される。クリティカルなタスクが失敗すると、失敗イベントが生成される。ヘルスプロバイダは、こうしたイベントを監視し、回復を実行する必要があるかどうかを判断する。回復が必要な場合は、メイクアップジョブを作成してスケジュールし、失敗した1つまたは複数のタスクを回復する。さらに、システム起動時にヘルスマネージャはヘルスプロバイダを起動する。各ヘルスプロバイダは、システムが前回終了したときに動作しており、失敗したタスクの回復が必要かどうかをそれぞれ独自に判断する。回復が必要な場合は、メイクアップジョブが作成されてスケジュールされる。メイクアップジョブには、失敗したジョブ内の唯一のタスクが失敗した場合は唯一のタスク含めてもよいが、開始されていないタスクを含めて失敗したジョブ内の未完の全タスクを含めてもよい。
図51は、本発明の1つの実施形態による、タスクの監視とメイクアップジョブの作成を示す流れ図である。前述のように、データ保護システムで実行する各処置は、複数のタスクを含むジョブの形で構成される。データプロテクタ5101は、運用場所5103にある保護対象オブジェクトの複製などのジョブを作成できる。こうしたオブジェクトは、1つまたは複数のタスクを実行した結果、記憶場所に転送され、格納される。このジョブは、データプロテクタ5101によって開始され、ジョブの各タスクは1つまたは複数のタスクエグゼキュータによって実行される。たとえば、複製ジョブでは、タスクエグゼキュータは複数のエージェントにコマンドを発行する。エージェント1つを運用場所5103に配置し、1つを記憶場所5105に配置してもよい。こうしたタスクが実行されて現在進行中であり、この例を説明するためにジョブが中断され、続いて回復される。ジョブの中断は、停電などのシステム障害によって発生する可能性がある。回復時に、データプロテクタ5101は、ジョブのタスクはシステム障害が発生する前に進行中であったことを特定する。データプロテクタ5101は、ジョブのタスクが進行中であったことを特定すると、タスク再開のコマンドを発行する。タスクを再開すると、タスクエグゼキュータはタスクを失敗し、失敗したタスクの簡単なクリーンアップを実行する。タスクがクリティカルな場合は、適切なヘルスプロバイダに通知する。
メイクアップジョブは、前のジョブが終了した場所を特定するジョブである。メイクアップジョブには、前のジョブで失敗したタスクまたは前のジョブで開始されなかったタスクが含まれる。たとえば、失敗したジョブが複製ジョブの場合は、ヘルスプロバイダは複製ジョブのどのタスクが正常に終了していないかを特定し、失敗したタスクとそのジョブに関連する完了していない他のすべてのタスクを含むメイクアップジョブを作成する。失敗したタスクの受信に応答してメイクアップジョブを生成する場合は、ヘルスマネージャが失敗したタスクを特定し、そのタスクと場合によってはシリアルまたはパラレルに実行する必要のある他のタスクを含むジョブを作成する。メイクアップジョブを作成すると、ヘルスマネージャはメイクアップジョブを実行するようにスケジュールする。このメイクアップジョブは独自のジョブと同様にスケジュールどおりに処理され、メイクアップジョブのタスクが実行される。さらに、メイクアップジョブはその独自のジョブとしてスケジュールされるので、ジョブマネージャの観点からは他のジョブと同様に扱われ、ジョブマネージャはそれがメイクアップジョブであることを認識しなくてもよい。
図52は、本発明の1つの実施形態による、タスクエラーを特定し、そのタスクがクリティカルな場合にメイクアップジョブを作成するメイクアップジョブルーチンを示す流れ図である。メイクアップジョブルーチン5200は、データ保護システムでも実行できるが、本発明の実際の実施形態ではヘルスマネージャで実行している。
メイクアップジョブルーチン5200は、ブロック5201で開始され、ブロック5203でタスクの失敗を受信する。前述のように、タスクが中断された場合は、再開するときにタスクエグゼキュータが前に実行していたタスクを再開して失敗させ、タスク失敗の通知を発行する。タスクエグゼキュータは、失敗したタスクのクリーンアップ(clean−up)を実行する。
判断のブロック5205で、メイクアップジョブルーチン5200は失敗したタスクがクリティカルかどうかを判断する。別の実施形態では、どのタスクをクリティカルと見なすかをユーザが指定できる。判断のブロック5205で、失敗したタスクがクリティカルであると判断した場合は、ブロック5207で、この未完のタスクと関連のタスク(ある場合)を特定する。ブロック5209で、メイクアップジョブルーチン5200は未完のタスクのそれぞれについてメイクアップジョブを作成し、ブロック5211でメイクアップジョブをスケジュールする。
判断のブロック5205で、失敗したタスクがクリティカルであると判断した場合は、ブロック5213に示すように、メイクアップジョブルーチンが終了する。タスクが何度も実行されるルーチンジョブの一部である場合はクリティカルでないと特定される。たとえば、バックグラウンド複製の複製ジョブは、複製ジョブが毎時間実行されるようにスケジュールされている場合はクリティカルではないと見なされる。このように、複製ジョブはスケジュールに従って繰り返し処理されるので、データ保護システムでは複製ジョブのタスクはクリティカルではないと判断される。
メイクアップジョブをスケジュールする必要があるかどうかの判断に加えて、データプロテクタはジョブマネージャを介して、タスクの失敗に応じて、失敗したタスクを含むジョブを続行するかジョブも失敗するかを判断する。失敗したタスクがジョブも失敗すると判断されたタスクの場合は、ジョブマネージャによって関連のジョブが失敗する。タスクがクリティカル(したがって、メイクアップジョブが必要)と見なされる場合でも、必ずしもジョブは失敗しなくてもよい。同様に、クリティカルでないタスクの失敗によってジョブが失敗する場合もある。たとえば、ジョブに複数のデータソースからの複製が含まれる場合は、1つの複製タスク(クリティカルなタスク)が失敗してもジョブの失敗にはならない場合もある。
前述のように、データ保護システムにはデータ保護システムの特定の部分を制御するマネージャが含まれる。たとえば、データ保護システムには複製マネージャ、構成マネージャ、ヘルスマネージャ、サマリマネージャ(summary manager)、ジョブマネージャ、メディアマネージャ、アーカイブマネージャなどを含めてもよいが、これに限定はされない。各マネージャは、データプロテクタデータベースの特定の部分を保守する。データベースの各部分は、対応するマネージャ以外は書き込めない一連のテーブルで構成される。こうしたテーブルは、任意のマネージャや外部のアプリケーションで読み出すことができるが、各テーブルにデータを書き込むことができるのは対応するマネージャに限定されるので、並行処理の制御や同期化ロジックは該当するマネージャが所有する。ヘルスマネージャは、タスクとジョブを監視する以外に、他のマネージャも監視する。ヘルスマネージャは、マネージャに関連付けられたタスクの失敗に応答するように構成されており、マネージャに対応するデータベースの状態を調べてどのような回復処置が必要かを判断できる。
さらに、マネージャには、マネージャの機能を実装する1つまたは複数のタスクエグゼキュータを含めることもできる。たとえば、複製マネージャには、複製タスクエグゼキュータ、仮バージョンタスクエグゼキュータ、仮バージョンからの回復タスクエグゼキュータを含むがこれに限定はされない複製に関連するすべてのタスクエグゼキュータを含めることができる。
データ保護システムの物理オブジェクト(たとえば、複製、媒体、ディスク、ライブラリ、ドライブ)について、状態モデルが保守される。各状態モデルは、オブジェクトがとる可能性のある状態と状態間で許可される移行を説明する。たとえば、図37は本発明の1つの実施形態による複製の状態モデルを示している。状態モデルは、オブジェクトのライフサイクルを説明し、オブジェクトが1つの状態から別の状態に移行するにはどのようなアクティビティを実行する必要があるかを示している。たとえば、複製が無効な状態3705にある場合に(図37)、データ保護システムはこの状態に基づいて有効性確認ジョブを実行し、複製を有効状態に実行する必要があることを認識する。オブジェクトの状態は、多くの場合にヘルスプロバイダ(health provider)への入力である。
状態モデルを保守することで、ヘルスプロバイダで回復に利用できる既知の状態を維持し、それによってエラー処理を簡素化する。さらに、オブジェクトの状態を監視することで、データ保護システムがエラーの状態をどう処理したかをユーザに示している。
データ保護システムでは、データ保護システムの一部が生成したイベントも監視しており、データ保護システム自体の全体的なステータスについてユーザに報告する。あるいは、レポートによってデータ保護システム内のさまざまな物理オブジェクトに関する特定の情報を提供してもよい。たとえば、運用場所のサーバを利用できない場合は、ユーザに問題を通知し、推奨される対処を提示するエラーレポートが生成される。
イベントはデータ保護システムによってレビューされ、このレビューに基づいてレビューイベントに関するレポートが生成される。レポートは、情報、警告、エラーの3種類のいずれかに分類できる。全体として、レポートがエラーレポートの場合はユーザの対処が必要なことを示している。警告レポートの場合は、ユーザの対処が直ちに必要なわけではないが、警告が自動でも手作業でも解除されない場合は対処が必要になる可能性がある。最後に、レポートが情報レポートは、ユーザの対処は必要ないことをユーザに通知し、データ保護システムに関する情報を提供する。当業者には言うまでもないが、レポートは、情報、警告、エラー以外の形でも、それに代わる形で提供できる。
レポートは、データ保護システムのさまざまな部分で生成したイベントをレビュー(reviewing)することによって作成される。こうしたイベントに基づいて、データ保護システムはイベントとデータ保護システムの該当する部分の状態に関するレポートをコンパイルする。したがって、ユーザにはデータ保護システムで生成したすべてのイベントが提示されるのではなく、情報レポート、警告レポート、エラーレポートのいずれかに分類されたレポートが提供される。提供されたレポートには、必要に応じてデータ保護システムで検出した問題を解決するための推奨される方法が必要に応じて記載される。最新のジョブのタスクが失敗したかどうかにかかわらず、レポートを生成できる。たとえば、後述するように、最新のコピージョブが成功しても(ブロック5409)、記憶場所でコピーを保守するためのディスク領域があらかじめ指定したしきい値を超えた場合は(ブロック5411)、データ保護システムで警告に分類されるイベントが生成され、ディスク領域の割り当てを増やす必要があることを通知する警告レポートがユーザに提供される(ブロック5413)。
レポートのタイプ(情報、警告、エラー)は,データ保護システムの特定の部分を分析することによって決まる。たとえば、仮バージョン診断ルーチン5700(図57)を参照すると、あらかじめ指定した期間と持続期間全体について欠落する仮バージョンの数が計算され(ブロック5725)、こうした期間にわたって欠落する仮バージョンのパーセンテージに基づいてレポートの分類(警告、エラー)が決まる。
さらに、一部のインスタンスでは、一連のテストを実行してレポートに記載する提言を決定してもよい。たとえば、コピー診断ルーチン5400において、コピーが有効でないと判断し(5403)、有効性確認ジョブが失敗したと判断した場合に(5445)、データ保護システムはユーザ向けに生成されたエラーレポートにどのような推奨されるソリューションを記載するかを、一連のテスト(判断のブロック5447、5451、5455、5459)を介して決定する。同様の例が回復診断ルーチン5900(図59)でも示されている。具体的に、ジョブが失敗したと判断した場合に(5911)、データ保護システムはユーザ向けに生成されたエラーレポートにどのような推奨されるソリューションを記載するかを、一連のテスト(判断のブロック5917、5921、5925、5929)を介して決定する。
図53は、本発明の1つの実施形態により、データのコピーに関連する問題を診断し、問題が検出された場合に示された訂正に関する報告を生成する方法を示す流れ図である。前述のように、レポートは、エラー、警告、情報の3つの状態に分類できる。
診断ルーチン5300は、ブロック5301で開始され、ブロック5303でコピー診断ルーチンを実行する。このルーチンについては、図54〜56に関連して詳細に説明する。診断ルーチン5300は、コピー診断ルーチン5303を実行する以外に仮バージョン診断ルーチンを実行する。このルーチンについては、図55〜58に関連して説明する。最後に、診断ルーチン5300はデータ保護システムが発行した警告が他にもあるかどうかを判断する。
判断のブロック5309で、コピー診断ルーチン、仮バージョン診断ルーチン検出されたエラー、またはその他の警告で示されたエラーがあるかどうかを判断する。判断のブロック5309でエラーが検出されたと判断した場合は、判断のブロック5311で、エラーを説明し、報告されたエラーを解決するための推奨される手順をユーザに提言するエラーレポートが生成される。ただし、判断のブロック5309でエラーが検出されないと判断した場合は、判断のブロック5313でコピー診断ルーチン、仮バージョン診断ルーチンのいずれかで生成された警告、またはその他の警告で示されるものがあるかどうかを判断する。判断のブロック5313で警告が検出されたと判断した場合は、ブロック5315で、警告を説明し、警告を解決するために実行できる手順をユーザに提示する警告レポートが生成される。最後に、判断のブロック5313で警告が検出されなかったと判断した場合は、判断のブロック5315で、データ保護システムに問題がないこと、およびデータ保護システムはユーザが要求したとおりに情報を保護していることをユーザに通知する情報レポートが生成される。
ブロック5303、5305、5307の各ルーチンを介して進み、こうしたルーチンの最も重大な問題を判断することで(判断のブロック5309、5313)、問題の可能性を1つのレポートとしてユーザに通知できる。たとえば、エラーが特定された場合に、エラーと推奨されるソリューションを提示し、より深刻な問題であるエラーが解決するまで、警告レポートまたは情報レポートを抑制してもよい。
図54は、本発明の1つの実施形態による、本データ保護システムにおけるデータのコピーに伴う問題の可能性を診断するコピー診断ルーチンを詳細に示す流れ図である。コピー診断ルーチンは、複製、アーカイブ、あるいは複製とアーカイブの両方の任意のタイプのストレージに利用できる。以下で詳述するように、コピー診断ルーチン5400は最終的なコピーのタスクが成功したか失敗したかを判断する。最終的なコピーのタスクが失敗した場合は、コピーモードがバックグラウンドかバックアップか(ブロック5417)によって後続のパスが異なる。1日に1度実行されるタスクの失敗は毎時間実行されるタスクの失敗よりはるかに重要なので、こうした失敗に基づいてさまざまなレポートが生成される。たとえば、バックグラウンドモードでタスクが失敗すると、失敗の数があらかじめ指定した下側限界を超えた場合にユーザに情報レポートが提供さる。また、バックグラウンドモードで頻繁に実行されるようにスケジュールされたタスクでは、後に実行される同じタスクで問題を自動的に解決できるので、レポートは生成されない。これとは対照的に、コピーモードがバックアップの場合は、警告レポートとエラーレポートのいずれかがユーザに提供される。
コピー診断ルーチン5400は、ブロック5401で開始され、判断のブロック5403でコピーが有効かどうかを判断する。判断のブロック5403で、コピーが有効であると判断した場合は、判断のブロック5405でコピージョブが現在実行中かどうかを判断する。判断のブロック5405でコピージョブが実行中であると判断した場合は、ブロック5407でデータ保護システムはコピーの最新の状態を示し、コピージョブが現在実行中であることをユーザに通知する情報レポートを生成する。
しかし、判断のブロック5405でコピージョブが現在実行中でないと判断した場合は、判断のブロック5409で最新のコピージョブが成功したかどうかを判断する。判断のブロック5409で最新のコピージョブが成功したと判断した場合は、判断のブロック5411で最新のコピージョブからディスク利用しきい値の警告が生成されたかどうかを判断する。ディスク利用しきい値の警告は、コピーが現在格納されている記憶場所のディスク領域が少なくなっていることをデータ保護システムが確認するのに応じて生成される。たとえば、複製のディスク領域が少なくなっている場合、またはアーカイブがテープの媒体でなくディスクに対して実行される場合、またはプール内の媒体が少なくなっているか空きプール内の媒体が少なくなっている場合は、ディスク利用しきい値の警告が生成してもよい。このしきい値レベルはあらかじめ指定されており、あらかじめ指定したサイズに達すると、しきい値の警告が生成される。
判断のブロック5411でディスク利用しきい値の警告が生成されたと判断した場合は、ブロック5413で記憶場所があらかじめ指定したしきい値を超えたことを示す警告レポートが生成され、コピーに追加のディスク領域を割り当てるように提言する。別の実施形態では、データ保護システムはユーザにしきい値の警告を通知するエラーレポートを生成するだけでなく、コピーの現在のディスク領域の状態を確認することで警告がまだ妥当かどうかを調べることもできる。
判断のブロック5411でディスク利用しきい値の警告が生成されていないと判断した場合は、ブロック5415でデータ保護システムの該当する部分に問題がないことを通知するレポートがユーザに提供される。
判断のブロック5409に戻り、最新のコピージョブが成功しなかったと判断した場合は、判断のブロック5417で保護のモードがバックグラウンドモードかどうかを判断する。本明細書で説明するように、バックグラウンドモードの保護はたとえば毎時間、1日24時間、週7日といったように、ほとんど連続的にコピーが行われるデータ保護システムの運用モードでありる。あるいは、コピーのモードはバックアップモードでもよい。バックアップモードの保護は、比較的コピーの頻度の低い運用モードである。たとえば、アーカイブおよび/または複製を夜間に実行してもよい。
判断のブロック5417で、コピーのモードがバックグラウンドであると判断した場合は、ブロック5419で前に失敗したコピージョブの数を計算する。判断のブロック5421で、ブロック5419で計算した前に失敗したコピージョブの数があらかじめ指定した下側限界を超えているかどうかを判断する。判断のブロック5421で前に失敗したコピージョブの数があらかじめ指定した下側限界を超えていないと判断した場合は、ブロック5422でデータ保護システムが現在のところ期待どおりに動作していることをユーザに通知する情報レポートが生成される。失敗したコピージョブの数を計算し、レポートを生成するかどうかを判断する限界と比較することで、データ保護システムはユーザに通知せずに問題を解決する機会を提供する。たとえば、コピージョブが毎時間生成され、1つが欠落する場合は、次の時間のコピージョブが成功すればデータ保護システムはこの問題を解決できる。
しかし、判断のブロック5421で前に失敗したコピージョブの数があらかじめ指定した下側限界を超えていると判断した場合は、判断のブロック5423で前に失敗したコピージョブの数がもう1つの上側限界を超えているかどうかを判断する。判断のブロック5421で前に失敗したコピージョブの数があらかじめ指定した上側限界を超えていないと判断した場合は、ブロック5424で失敗したコピージョブの数をユーザに通知する警告レポートが生成される。警告レポートでは、失敗したコピージョブの数があらかじめ指定した上側限界の(クリティカルな)数を超えていないので、現在のところユーザの対処は必要ないことも通知している。
判断のブロック5417で保護のモードがバックグラウンドモードではない、つまりバックアップモードであると判断した場合、または判断のブロック5423で失敗したコピージョブの数が事前に指定した上側限界超えていると判断した場合は、ブロック5425(図55)に示すように、コピー診断ルーチン5400が最新のタスク失敗の原因を確認する。本発明の1つの実施形態において、コピージョブ失敗の原因はコピージョブ自体に含まれるタスクで生成されるタスク証跡から確認できる。前述のように、タスクの証跡にはタスク自体、タスクの作業内容、タスクが完了したこと、あるいはタスクが失敗した原因に関するメタデータが含まれる。
判断のブロック5427で、失敗の原因はユーザが前のコピージョブをキャンセルしたことかどうかを判断する。判断のブロック5427でコピージョブ失敗の原因はユーザがジョブをキャンセルしたことであると判断した場合は、コピー失敗の通知は無視される。しかし、判断のブロック5427で前にコピーが失敗した原因はユーザがジョブをキャンセルしたこと以外であると判断した場合は、判断のブロック5431で前にコピーが失敗した原因はデータ保護システムが運用場所に接続できなかったことかどうかを判断する。コピー診断ルーチン(図54〜56)について上で説明したように、運用場所などの場所に接続できないのは、ネットワークの切断や電源の問題、あるいは運用サーバがメンテナンスなどの作業のためにそのときにシャットダウンされていたことなど、外部のさまざまなイベントによる可能性がある。
判断のブロック5431で最新のコピージョブが失敗した原因はデータ保護システムが運用場所に接続できなかったことであると判断した場合は、ブロック5433で前のコピージョブが正常に終了しなかったことをユーザに通知し、ネットワークおよび/または運用場所を調べてデータ保護システムが運用場所に接続できなかった原因を特定するように提言するレポートを生成する。
判断のブロック5431で前の失敗の原因はデータ保護システムが運用場所に接続できなかったことではないと判断した場合は、判断のブロック5435で前の失敗の原因はデータ保護システムがコピーを実行するエージェントに接続できなかったことかどうかを判断する。失敗した原因がコピーを実行するエージェントに接続できなかったことであると判断した場合は、ブロック5437に示すように、ユーザにエラーを通知し、エージェントを調べ、場合によってはルーチンを再開するように、および/またはエージェントのインストールを確認し、および/またはエージェントを再インストールするようにユーザに提言する警告レポートが生成される。
しかし、前の失敗の原因はユーザのキャンセル(ブロック5427)、運用場所に接続できなかったこと(ブロック5431)、エージェントに接続できなかったこと(ブロック5435)のいずれでもなかったと判断した場合は、問題が不明であり、データ保護システムは失敗の原因を特定できなかったことをユーザに通知し、コピーに関連するネットワーク接続とエージェントを調べるようにユーザに提言するエラーレポートが生成される。
図54に戻り、判断のブロック5403で、コピー診断ルーチン5400で診断を行うコピーが有効でないと判断した場合は、判断のブロック5437(図56)で、診断を行うコピーが無効(つまり、図37の無効な状態3705)かどうかを判断する。判断のブロック5437で、診断を行うコピーが無効であると判断した場合に、コピー診断ルーチンはブロック5439でデータソースのコピーが初期化されていないことをユーザに通知する。別の実施形態では、ブロック5439で診断を行う特定のデータソースのコピーが初期化されていないことをユーザに通知し、初期化ジョブを生成するかどうかをユーザに問い合わせるレポートがユーザに提供される。
判断のブロック5437で、コピーが無効であると判断した場合は、判断のブロック5441で診断を行うコピーの有効性確認ジョブが現在実行中かどうかを判断する。判断のブロック5441で、診断を行うコピーの有効性確認ジョブが現在実行中であると判断した場合は、ブロック5443で診断を行うコピーの有効性確認が現在実行中であることと、現在のところ処置は必要ないことをユーザに通知する警告レポートが生成される。
判断のブロック5441で、有効性確認ジョブが実行中でないと判断した場合は、判断のブロック5445でコピー診断ルーチン5400は前の有効性確認ジョブが実行されて失敗したかどうかを判断する。判断のブロック5445で、有効性確認ジョブが実行されて失敗したと判断した場合は、判断のブロック5447で失敗はユーザが有効性確認ジョブをキャンセルした結果かどうかを確認する。判断のブロック5445で、前に実行した有効性確認ジョブが失敗しなかったと判断した場合、または前に実行した有効性確認ジョブが失敗したが失敗はユーザがキャンセルした結果ではないと判断した場合は、ブロック5449で失敗をユーザに通知し、有効性確認ジョブを実行するようにユーザに提言するエラーレポートが生成される。あるいは、有効性確認ジョブを自動で実行してもよい。
しかし、判断のブロック5447で、前に実行して失敗した有効性確認ジョブがユーザのキャンセル以外の原因で失敗したと判断した場合は、ブロック5449で前の有効性確認ジョブに関連付けられたタスク証跡から失敗の原因を特定する。ブロック5449で特定した失敗の原因を利用して、ブロック5451でコピー診断ルーチン5400は前に実行した有効性確認ジョブが失敗した原因がコピーに使用できる記憶場所の容量の不足かどうかを判断する。判断のブロック5451で、記憶場所のコピーの領域に空きがないと判断した場合は、ブロック5453で記憶場所に空きがないことをユーザに通知し、コピーするための領域を増やすようにユーザに提言するエラーレポートが生成される。ディスク領域の割り当てを増やすには、場合によっては複製用のディスク領域を追加する必要がある。
判断のブロック5451で、失敗の原因は領域不足でないと判断した場合は、ブロック5455で失敗の原因はデータ保護システムが記憶場所に全く接続できなかったことかどうかを判断する。判断のブロック5455で、データ保護システムがコピーを有効性確認しようとしたが記憶場所に接続できなかったと判断した場合は、エラーレポートが生成される。このエラーレポートは、記憶場所にアクセスできなかったことをユーザに通知し、データ保護システムと記憶場所との通信、ターゲットボリュームとの通信、記憶場所自体の整合性を確認するようにユーザに提言する。
判断のブロック5455で、失敗の原因は記憶場所にアクセスできないことではないと判断した場合は、判断のブロック5459で、運用場所で変更ログのオーバーフローが発生したかどうかを判断する。ログのオーバーフローの原因として、運用場所で変更ログのキューに非常に多くの変更が追加されたこと、および/または記憶場所でスピルログに空きがなくなったことが考えられる。これは、変更レコードと有効性確認レコードが生成される速度が、記憶場所に送信され、処理される速度より速い場合に発生する場合がある。判断のブロック5459で、失敗の原因はログのオーバーフローであると判断した場合は、ブロック5461に示すように、ログのオーバーフローをユーザに通知し、ログがオーバーフローしたことを特定し、ログのサイズを拡張するようにユーザに提言するエラーレポートが生成される。
最後に、判断のブロック5459でコピー診断ルーチン5400が失敗の原因はログのオーバーフローではないと判断した場合は、ブロック5463で失敗をユーザに通知し、運用サーバ、データプロテクタ、記憶サーバに通信の問題の可能性またはその他の問題の可能性がないか、失敗が続くかどうかを確認し、データ保護システムを再初期化するようにユーザに提言するエラーレポートが生成される。
診断保護の問題の別の例は、仮バージョンの診断である。仮バージョン診断ルーチンについては、図53(ブロック5305)に示す診断ルーチン全体に関連して言及し、図57に関連して詳細に説明する。
図57は、本発明の1つの実施形態による、本データ保護システムで生成される仮バージョンに伴う問題の可能性を診断する仮バージョン診断ルーチンを示す流れ図である。仮バージョン診断ルーチン5700は、ブロック5701で開始され、判断のブロック5703で、仮バージョンを作成するコピーが有効な状態かどうかを判断する。判断のブロック5703で、仮バージョンを生成するコピーが有効な状態であると判断した場合は、判断のブロック5705でそのコピーの最新の仮バージョンジョブが成功したかどうかを判断する。判断のブロック5705で、コピーの最新の仮バージョンジョブが成功しなかったと判断した場合は、ブロック5707でその仮バージョンジョブが失敗した原因をその仮バージョンジョブに関連付けられたタスクの証跡から確認する。
判定のブロック5709で、説明と仮バージョンを再作成するようにという提言を記載するエラーレポートが生成される。別の実施形態では、データ保護システムは説明を記載するエラーレポートを生成するだけでなく、後続の仮バージョンを取得する仮バージョンジョブを自動的にスケジュールできる。
判断のブロック5703に戻り、仮バージョンを作成するコピーが有効な状態でないと判断した場合は、仮バージョン診断ルーチン5700は図56に示すブロックに関連して前述したように処理を継続する。
判断のブロック5705で、有効なコピーの仮バージョンジョブが成功したと判断した場合は、判断のブロック5711で仮バージョンが実際に取得されたかどうかを判断する。判断のブロック5711で、仮バージョンが実際に作成されなかったと判断した場合は、判断のブロック5713で、コピージョブの失敗があったかどうかを判断する。判断のブロック5713で、コピージョブの失敗があったと判断した場合は、図55で図示し、説明したブロックに関連して前述したように、仮バージョン診断ルーチン5700は処理を継続する。
しかし、判断のブロック5711で仮バージョンが作成されたと判断し、さらに判断のブロック5713でコピージョブの失敗がなかったと判断した場合は、データ保護システムに対してコピーに関するアクティビティがなかったこと、したがって仮バージョンが必要なかったことを示している。さらに、コピーおよび/または仮バージョンに問題がないので、ブロック5715でコピーに関するアクティビティが存在せず、仮バージョンが作成されなかったことをユーザに通知する情報レポートが作成される。
判断のブロック5711に戻り、仮バージョンジョブが実行され、仮バージョンが作成されたと判断した場合は、ブロック5721(図58)に示すように、回復が必要な場合に対象となる最も古い仮バージョンが使用可能かどうかを判断する。対象となる最も古い仮バージョンが使用可能であるかどうかを判断することで、持続時間インテントが満たされているかどうかを確認する。たとえば、持続時間が少なくとも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は、本発明の1つの実施形態による、本データ保護システムにおける情報の回復に伴う問題の可能性を診断する回復診断ルーチンを示す流れ図である。回復診断ルーチン5900は、ブロック5901で開始され、判断のブロック5903で回復ジョブが現在実行中かどうかを判断する。判断のブロック5903で、回復診断ルーチン5900が実行中であると判断した場合は、判断のブロック5905で実行中の回復ジョブに関連するタスクによって警告が生成されたかどうかを判断する。判断のブロック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で回復ジョブが失敗した原因は運用場所のディスクに空き領域がないことではないと判断した場合は、前回の回復ジョブで不明なエラーが発生したことをユーザに通知し、回復ジョブに戻るようにユーザに提言するレポートが生成される。
本発明の好ましい実施形態について図示し、説明してきたが、本発明の精神と範囲を逸脱しない限りさまざまな変更が可能なことは、当業者には言うまでもない。
排他的な特性または権限を主張する本発明の実施形態は、特許請求の範囲に定義される。