(57)【要約】  本発明の実施は、それらの有効なシャドーコピーが満了する前に、複製サイクル中に有効なシャドーコピーを保持するように構成された、システム、方法、および構成要素を提供する。具体的に言えば、１つまたは複数の構成要素は、新しいボリュームシャドーコピーに適用されることになるプロダクションサーバデータにおける変更のサイズおよびレートを識別する。その後、構成要素は、バックアップボリューム内に新しいボリュームシャドーコピーを格納すること、および、適切なスペースがある場合、バックアップボリューム上に変更を適用することが必要となる、格納領域を決定する。適切なスペース量がない場合、構成要素は、前の有効なシャドーコピーならびに新しいシャドーコピーの両方を保持するために、新しい処置を講じるべきであることを、システムに警告する。たとえばバックアップ管理者は、シャドーコピー格納スペースを増加すること、または新しいシャドーコピーを処理するために新しい格納媒体を割り当てることが、必要となる。
2009539162.tif 000002
【特許請求の範囲】
【請求項１】
バックアップサーバがデータバックアップおよび対応する更新を１つまたは複数のバックアップボリュームに適用するコンピュータ化システムにおいて、プロダクションサーバでのデータ変更の決定を、前記１つまたは複数のバックアップボリューム内にある使用可能なシャドーコピー格納スペースと互いに関連付けさせる方法であって、
プロダクションサーバでの１つまたは複数のデータ変更のセットを識別するステップと、
変更の合計サイズが正確に決定されるかまたは過大評価されるかのうちの１つであるように、シャドーコピー格納ボリュームに適用されることになる前記セット内の変更の合計サイズを決定するステップと、
前記シャドーコピー格納ボリューム内の使用可能なシャドーコピー格納スペースのサイズを識別するステップと、
有効期限に先立って有効なシャドーコピーが前記シャドーコピー格納ボリューム内に残るように、前記識別された使用可能なシャドーコピー格納スペースに前記１つまたは複数のデータ変更のセットを適用するステップと
を備えることを特徴とする方法。
【請求項２】
前記シャドーコピー格納ボリューム内の使用可能なシャドーコピー格納スペースのサイズを識別するステップは、前記使用可能なシャドーコピー格納スペースのサイズをボリュームシャドーコピーサービスに要求するステップを備えることを特徴とする請求項１に記載の方法。
【請求項３】
シャドーコピー格納ボリュームに適用されることになる前記セット内の変更の合計サイズを決定する前記ステップは、
前記セットの各新しいファイルにおける各データ部分に、および、前記セット内の任意のファイルに添付された各データ部分に、標準値を割り当てるステップと、
上書きされた各ファイルに前記標準値を割り当てるステップと、
前記セットの任意のファイルにおいて変更された各メタデータ部分に、前記標準値を割り当てるステップと、
前記プロダクションサーバでの前記変更の合計サイズが正確に決定されるかまたは過大評価されるかのうちの１つであるように、各割り当てられた標準値を追加するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記データ部分は、前記標準値が前記１つまたは複数のデータ変更のセット内で変更された各バイトブロックに割り当てられるような、バイトブロックであることを特徴とする請求項３に記載の方法。
【請求項５】
前記識別された使用可能なシャドーコピー格納スペースに前記１つまたは複数のデータ変更のセットを適用する前記ステップは、
前記使用可能なシャドーコピースペース内の未使用スペースの量を識別するステップと、
前記変更の合計サイズと前記識別された未使用スペースとを比較するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記未使用スペースの量が少なくとも前記変更の合計サイズと同じであることを識別するステップと、
前記１つまたは複数のデータ変更のセットを前記識別された未使用スペースに自動的に適用するステップと
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記未使用スペースの量が前記変更の合計サイズを収容するのに不十分であることを識別するステップをさらに備えることを特徴とする請求項５に記載の方法。
【請求項８】
満了した１つまたは複数のシャドーコピーを自動的に削除するステップと、
前記１つまたは複数のデータ変更のセットを前記識別された未使用スペースに自動的に適用するステップと
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
他の動作のために警告を発するステップをさらに備え、前記警告は、
（ｉ）削除可能な１つまたは複数のシャドーコピーの推奨と、
（ｉｉ）前記使用可能なシャドーコピー格納スペースの前記サイズを増加するための推奨と、
のうちの少なくとも１つを備えることを特徴とする請求項７に記載の方法。
【請求項１０】
前記バックアップサーバは、前記バックアップサーバで前記１つまたは複数のバックアップボリュームを監視するように構成されたボリュームフィルタドライバをさらに備え、前記ボリュームフィルタドライバは、前記１つまたは複数のバックアップボリュームのうちのいずれかに書き込むことが許される唯一のプロセスであることを特徴とする請求項１に記載の方法。
【請求項１１】
前記ボリュームフィルタドライバが、
使用可能なシャドーコピー格納スペースの識別された量に第１の値を割り当てるステップと、
前記１つまたは複数のデータ変更のそれぞれが前のデータの上書きを含むことを想定することによって、少なくとも部分的に前記セット内の前記変更の合計サイズを決定するステップと、
前記第１の値から前記変更の合計サイズを減分するステップと、
前記第１の値をゼロに減分した場合に、前記シャドーコピー格納ボリュームへのいかなる書き込みも停止するステップとを実行するように構成されたことを特徴とする請求項１０に記載の方法。
【請求項１２】
バックアップサーバがデータバックアップおよび対応する更新を１つまたは複数のバックアップボリュームに適用するコンピュータ化システムにおいて、前記１つまたは複数のバックアップボリュームにおける使用可能なシャドーコピー格納スペースを決定し、それによって、有効なシャドーコピーデータを削除することなく、プロダクションサーバから受け取ったデータ更新を適用するための方法であって、
プロダクションサーバから１つまたは複数のデータ変更を受け取るステップと、
初期セットにおける前記１つまたは複数のデータ変更のそれぞれに標準値を割り当てるステップと、
バックアップボリューム内の使用可能なシャドーコピー格納スペースの量が、前記バックアップボリューム内に格納された有効なシャドーコピーを保持するために過小評価されるように、前記量を計算するステップと、
前記１つまたは複数のデータ変更のそれぞれに対する標準値は、前記バックアップボリューム内の前記使用可能なシャドーコピー格納スペースの前記計算された量よりも小さいことを識別するステップと、
有効期限に先立って有効なシャドーコピーが前記シャドーコピー格納ボリューム内に残るように、前記１つまたは複数のデータ変更のそれぞれを前記バックアップボリュームに適用するステップと
を備えることを特徴とする方法。
【請求項１３】
前記プロダクションサーバによって報告されたバイトブロックサイズを、ボリュームシャドーコピーサービスによって報告された少なくとも近似のバイトブロックサイズに調整するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記１つまたは複数のデータ変更のそれぞれは、追加、変更、または上書きされたバイトブロックに対応することを特徴とする請求項１２に記載の方法。
【請求項１５】
バックアップボリューム内の使用可能なシャドーコピー格納スペースの量を計算する前記ステップは、
前記１つまたは複数のデータ変更のうちの第１のバイトブロックを識別するステップと、
前記未使用の使用可能なシャドーコピー格納スペースの量をボリュームシャドーコピーサービスに要求するステップと、
前記１つまたは複数のデータ変更のうちの第２のバイトブロックを識別するステップと、
前記未使用の使用可能なシャドーコピー格納スペースの量を前記ボリュームシャドーコピーサービスに再度要求するステップと
を備えることを特徴とする請求項１２に記載の方法。
【請求項１６】
バックアップボリューム内の使用可能なシャドーコピー格納スペースの量を計算する前記ステップは、
前記未使用の使用可能なシャドーコピー格納スペースの量を識別するステップと、
前記識別された未使用スペースの削減された部分を安全として設定するステップと、
前記安全として識別された未使用スペースの前記設定量を、前記未使用スペースの異なる量に修正する入力を受け取るステップと
を備えることを特徴とする請求項１２に記載の方法。
【請求項１７】
前記第１の複数に関する変更の合計サイズを決定するために、前記セット内の第１の複数のデータ変更に対応する前記標準値を合計するステップと、
前記第１の複数に関する前記変更の合計サイズと、前記識別された安全スペースとを比較するステップと
をさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記識別された安全スペースを、前記第１の複数のデータ変更の量だけ差し引くステップと、
第２の複数に関する変更の合計サイズを決定するために、第２の複数のデータ変更に対応する前記標準値を合計するステップと、
前記第２の複数に関する前記変更の合計サイズと、前記差し引かれた安全スペースとを比較するステップと
をさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記識別された使用可能なシャドーコピー格納スペース内の任意の近似エラーに関して調整するステップをさらに備え、該ステップは、
前記バックアップボリューム内の実際の変更を決定するために、前記第１および第２の複数のデータ変更を適用した後に、前記シャドーコピー格納スペース内の相違を計算するステップと、
削除されたブロックの実際の値を決定するために、上書きされたブロック数だけ前記実際の変更を削減するステップと
を備えることを特徴とする請求項１６に記載の方法。
【請求項２０】
バックアップサーバがデータバックアップおよび対応する更新を１つまたは複数のバックアップボリュームに適用するコンピュータ化システムにおいて、コンピュータ実行可能コードをその上に格納しているコンピュータプログラム製品であって、実行された場合、前記バックアップサーバ内の１つまたは複数のプロセッサに、
プロダクションサーバでの１つまたは複数のデータ変更のセットを識別するステップと、
変更の合計サイズが正確に決定されるかまたは過大評価されるかのうちの１つであるように、シャドーコピー格納ボリュームに適用されることになる前記セット内の変更の合計サイズを決定するためのステップと、
前記シャドーコピー格納ボリューム内の使用可能なシャドーコピー格納スペースのサイズを識別するステップと、
有効期限に先立って有効なシャドーコピーが前記シャドーコピー格納ボリューム内に残るように、前記識別された使用可能なシャドーコピー格納スペースに前記１つまたは複数のデータ変更のセットを適用するためのステップと
を備える方法を実行させることを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックアップサーバがデータバックアップおよび対応する更新を１つまたは複数のバックアップボリュームに適用するコンピュータ化システムにおいて、プロダクションサーバでのデータ変更の決定を、１つまたは複数のバックアップボリューム内にある使用可能なシャドーコピー格納スペースと互いに関連付けさせる方法に関する。
【背景技術】
【０００２】
概してコンピュータシステムおよび関連デバイスは、作業設定時におけるワードプロセッシング文書の作成、および、より高度なデータベースのために使用されるファイルの作成の一般的ケースなどの、様々な理由で、一般に使用される。こうした用途向けのコンピュータ化システムが普及してきたため、それらに関連付けられた様々なハードウェアおよびソフトウェア機能も増加してきた。たとえば、わずか数年前に従来のコンピュータシステムを実行可能にした様々なデータ処理（たとえばファイル、メール、データベースなど）タスクが、今では、さらに高速および小型のマルチタスクコンピュータシステムによって、より実行可能になる場合さえしばしばある。結果として、コンピュータシステムは任意の所与の組織（ｏｒｇａｎｉｚａｔｉｏｎ）内で激増し、各コンピュータシステムの要求タスクも増加している。当然のことながら、任意の所与のコンピュータシステムまたはコンピュータシステムセットの実行および管理に関連付けられたコストも増加している。
【０００３】
部分的には、増加の一途をたどるこうした機能のコストに結び付けられた任意の所与のコンピュータシステムに関する処理機能の向上により、しばしば組織は、リソース（たとえばハードウェアおよび／またはソフトウェアベースのリソース）の共有または分配において、いくつかの利点を見出す。具体的に言えば、組織は一般的に、いくつかのワークステーションが単一ノード（たとえば処理および／または格納ノード）の処理および格納リソースを共有するように、コンピュータシステムを編成する。たとえば組織は、１つのサーバノードにある単一の物理ボリュームをいくつかの異なるボリュームに区分し、ネットワークを介していくつかの個々のドライブとしてこれらにアクセスすることがある。これらの分割ドライブをユーザおよび／またはワークステーション間でさらに割り振ることが可能であり、その結果、たとえば、あるセットのパーソナルワークステーションはあるセットの分割ドライブにアクセスすることが可能であるが、他の異なるセットのパーソナルワークステーションは、異なるセットの分割ドライブのみにアクセス可能な場合がある。
【０００４】
こうした線に沿って、次に組織は、単一のサーバノードを区分して、複数の「仮想マシン」をホストする。簡単に言えば、仮想マシンとは、所与のホストコンピュータシステム上にあるドライブスペースのその独自の区画上への、オペレーティングシステムの固有のインストールである。仮想マシンは、たとえホストコンピュータシステムの物理リソースの一区画に過ぎない場合であっても、どの点から見ても別々のワークステーションとして出現するように構成することができる。たとえば仮想マシンは、ホストコンピュータのアドレスとは異なるネットワークアドレスを備えるネットワークを介して、アドレス指定することができる。さらに仮想マシン自体が、ホストの物理ディスク上にある仮想マシンに対して実行された割り振り内のいくつかの異なるドライブ区画をホストすることもできる。仮想マシンによって管理されるこれらのドライブパスは、異なるエンティティによって効果的に管理できることから、ホストコンピュータシステムによって管理されるドライブパスと同じ名前を付けることができる。
【０００５】
したがって、仮想マシンの少なくとも１つの利点は、それらを使用して、追加のコンピュータハードウェアを購入する追加コストを必ずしも必要とせずに、いくつかの異なる計算機能を提供できることである。たとえばある組織は、異なるネットワーク位置に異なるホストサーバを配置し、さらに何十および／または何百の仮想マシンを各ホストサーバ内に配置する場合がある。いくつかの仮想マシンをメールサーバまたはデータベースサーバとして使用し、他の仮想マシンを、たとえパーソナルワークステーションがローカルに配置されていたとしても、ネットワーククライアントによってアクセスされるパーソナルワークステーションコンピュータとして使用することができる。さらに仮想マシンがもはや不要である場合に、これらをホストサーバから容易に削除できるように、他の仮想マシンをテストの目的で使用することができる。
【０００６】
組織における仮想マシンの使用がより普及するにつれて、仮想マシンが適切に管理されることを保証する必要がさらに生じる。たとえば従来のサーバ管理者トポロジは、組織内でアカウントを構成し、パスワードを管理し、物理およびソフトウェアリソースを編成する、システム（たとえば、サーバ、ワークステーション、および／またはネットワーク）管理者のグループのようなものを含む。大規模エンタープライズの場合、それぞれに異なる責任が課せられたシステム管理者が多数存在する可能性さえある。
【０００７】
たとえば、１人のシステム管理者にはエンドユーザオフィス内でのワークステーションの提供およびセットアップが課せられ、他のシステム管理者にはエンドユーザへの特定のログインアカウントの提供が課せられ、さらに他のシステム管理者には、各コンピュータシステムへの物理接続（たとえば、ネットワーク接続、電源接続）の提供および監視が課せられる場合がある。こうした各システム管理者は、特定の地理的位置について全体を管理するシステム管理者に報告する必要がある可能性がある。組織の規模に応じて、管理システム管理者は、管理階層上位などの他のシステム管理者にさらに報告する必要がある可能性もある。
【０００８】
従来のシステムでは、通常、１人または数人のシステム管理者が数十のサーバおよびパーソナルワークステーションを管理することができる。しかしながら、多数の仮想マシンを実装している場合などの、潜在的に数百および／または数千にのぼるマシンの管理は、さらに複雑である。具体的に言えば、たとえ何千もの仮想マシンが比較的少数のホストサーバ上でホストされている場合であっても、１人または数人のシステム管理者ではそれらの仮想マシンの複雑さを管理できない可能性がある。特に、１００程度のユーザアカウントに関するパスワード要求を管理する責務を負うシステム管理者は、１０００台のコンピュータに対しては同じことを事実上管理できない場合がある。同様に、１００程度の物理コンピュータシステムそれぞれについて、十分な物理およびネットワークリソースを保証する責務を負うシステム管理者は、特に、組織内の他のマシンへのサービス提供を混乱させることなく、意図されたとおりに実行するために、潜在的に何千もの仮想マシンに十分なハードウェアおよびソフトウェアリソースが提供されることを保証しようとすることに追われる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
もちろん、余分な負担を処理するために単に追加のシステム管理者を雇用するだけでは、組織が第一に仮想マシンを使用することによって避けようとする可能性のある重大なコストの問題を提示する。したがって、組織内の仮想マシンの効果的な動作および管理に関して対処可能ないくつかの課題が存在する。
【課題を解決するための手段】
【００１０】
本発明の実施により、シャドーコピーが管理者のバックアップ目標／インテント（ｉｎｔｅｎｔ）に関して有効を維持する限り、シャドーコピーがバックアップボリューム内で保持されることを保証するように構成された、システム、方法、およびコンピュータプログラム製品に伴う、当分野の１つまたは複数の問題が解決される。特に、本発明の実施は、プロダクションサーバでの書き込みレートの決定に基づいて、バックアップボリューム上のシャドーコピー格納スペースの自動決定を提供する。その後、いくつかのケースでこうした使用可能スペースの決定を使用して、既存のシャドーコピーを保持するために、新しいシャドーコピーを作成できるか否かをさらに決定することができる。一実施では、バックアップボリューム内のシャドーコピー格納スペースは、プロダクションサーバ上で予測される書き込みレートに対処するために、各複製サイクルを自動的に再配分することができる。さらに、シャドーコピー格納スペースは、現在のシャドーコピー格納スペースを超えるシャドーコピーが適切な様式で処理できるように実質上ロックすることが可能であるため、以前のシャドーコピーであるが依然として有効なシャドーコピーを上書きするのを避けることができる。
【００１１】
たとえば、プロダクションサーバでのデータ変更の決定を、１つまたは複数のバックアップボリューム内にある使用可能なシャドーコピー格納スペースと互いに関連付けさせる方法は、プロダクションサーバ側での変更のサイズを決定することを含むことができる。こうした方法は、一般に、プロダクションサーバでの１つまたは複数のデータ変更のセットを識別すること、ならびに、変更の合計サイズが過大評価されるように、シャドーコピー格納ボリュームに適用されることになるセット内の変更の合計サイズを決定することを、含むことができる。加えて、この方法は、シャドーコピー格納ボリューム内の使用可能なシャドーコピー格納スペースのサイズを識別すること、および、識別された使用可能なシャドーコピー格納スペースに１つまたは複数のデータ変更のセットを適用するためのステップを含む。したがって最終的には、有効期限に先立って有効なシャドーコピーがシャドーコピー格納ボリューム内に残るように、ファイル変更を適用する。
【００１２】
代替方法は、受け取った変更を適用するための複製エージェント試行として、１つまたは複数のバックアップボリューム内での使用可能なシャドーコピー格納スペースを決定することにより多く基づく。こうした方法は、プロダクションサーバから１つまたは複数のデータ変更を受け取ること、および、１つまたは複数のデータ変更が適用される場合に、そのそれぞれの変更に標準値を割り当てることを含む。この方法は、バックアップボリューム内に格納された有効なシャドーコピーを保持するために、バックアップボリューム内での使用可能なシャドーコピー格納スペースの量が過小評価されるように、この量を計算することを含む。加えて、この方法は、１つまたは複数のデータ変更の初期セットの標準値が、バックアップボリューム内での使用可能なシャドーコピー格納スペースの計算された量よりも少ないことを識別することを含む。適切であれば、その後、１つまたは複数のデータ変更をバックアップボリュームに適用する。したがってこの方法では、有効期限に先立って、有効なシャドーコピーがシャドーコピー格納ボリューム内に残る。
【００１３】
本概要は、発明を実施するための最良の形態で詳細に後述する概念の選択を簡略化された形で紹介するために提供される。本概要は、請求される主題の主要な特徴または不可欠な特徴を識別することを意図するのではなく、請求される主題の範囲を決定する目的として使用されることを意図するのでもない。
【００１４】
本発明の追加の特徴および利点は以下の説明で示されることになり、この説明から部分的に明らかとなるか、または本発明の実施によって習得することができる。本発明の特徴および利点は、特に添付の特許請求の範囲で指摘された計器および組み合わせによって、実現および取得することができる。本発明のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかとなるか、または以下に示すような本発明の実施によって習得することが可能である。
【００１５】
本発明の前述および他の利点および特徴が取得可能な方法を説明するために、添付の図面に示された特定の実施形態を参照しながら、簡単に前述された本発明について、より具体的に説明する。これらの図面が本発明の典型的な諸実施形態のみを示すものであり、その範囲を限定するものとはみなされないことを理解しながら、本発明について、添付の図面を使用しながらさらに具体的および詳細に説明する。
【発明を実施するための最良の形態】
【００１６】
本発明は、シャドーコピーが管理者のバックアップ目標／インテントに関して有効を維持する限り、シャドーコピーがバックアップボリューム内で保持されることを保証するように構成された、システム、方法、およびコンピュータプログラム製品にまで及ぶ。特に、本発明の実施は、プロダクションサーバでの書き込みレートの決定に基づいて、バックアップボリューム上のシャドーコピー格納スペースの自動決定を提供する。その後、いくつかのケースでこうした使用可能スペースの決定を使用して、既存のシャドーコピーを保持するために、新しいシャドーコピーを作成できるか否かをさらに決定することができる。一実施では、バックアップボリューム内のシャドーコピー格納スペースは、プロダクションサーバ上で予測される書き込みレートに対処するために、各複製サイクルを自動的に再配分することができる。さらに、シャドーコピー格納スペースは、現在のシャドーコピー格納スペースを超えるシャドーコピーが適切な様式で処理できるように実質上ロックすることが可能であるため、以前のシャドーコピーであるが依然として有効なシャドーコピーを上書きするのを避けることができる。
【００１７】
以下の説明および特許請求の範囲からより完全に理解されるように、本発明の実施により、有効なシャドーコピーデータの損失を防ぐことができる。概して、本明細書で使用されるシャドーコピーの「妥当性」は、バックアップシステム１００に対するバックアップインテントに関し、ここではバックアップ管理者が、指定された時間にバックアップサーバで使用できる増分データ更新を維持するための特定の設定（すなわちインテント）を作成する。具体的に言えば、「有効な」シャドーコピーとは本質的に、特定の「バックアップインテント」によって定義されるような、未だ「満了」していないシャドーコピーである。たとえばバックアップ管理者が、シャドーコピーが一日にｘ回収集され、その後、削除されるかまたはおそらくアーカイブ媒体に移動されるまでに、少なくとも１４日間格納されることを示す、バックアップインテントを設定した場合、「有効な」シャドーコピーは少なくとも１４日より古いコピーではない。これとは対照的に、１４日より古いバックアップサーバのシャドーコピーは、「無効」または「満了」とみなされ、バックアップ管理者が希望する場合、削除またはアーカイブ媒体に移動することができる。
【００１８】
したがって本発明の実施は、一般に、シャドーコピー格納スペースが不十分なことによって、および／または、保護されているメインデータ用の格納領域における増加の結果として生じるシャドーコピー格納スペース（「ｄｉｆｆ領域」とも呼ばれる）における損失によって、その他の形で発生する可能性のある、有効なシャドーコピーデータの損失を防ぐように構成される。たとえば、一実施における１つまたは複数の構成要素は、プロダクションサーバで保護されることになるデータの増加を追跡するように、および、シャドーコピーデータを保持するように構成されたバックアップボリュームに関する使用および未使用のスペースを追跡するように、構成することができる。いかなる時点でも、バックアップボリューム内の有効なシャドーコピーデータが上書きされる危険性があると、構成要素が決定した場合、その構成要素は、少なくとも一時的に複製プロセスを停止する（たとえば、新しいシャドーコピーが作成されない）ことができる。その後、構成要素は、シャドーコピー格納スペースに対して自動調整を実行するか、または続行する前にバックアップ管理者に同じ指示を要求することができる。
【００１９】
本明細書では前置きとして、メインデータ用の格納領域は保護され、シャドーコピーデータ用の格納領域は別のボリューム上にある、本発明の実施について、予備的に説明する。しかしながら、こうしたアーキテクチャ上の概略は必須ではない。特に、本発明の実施は、同じバックアップボリュームがメインデータ用および対応する更新用（すなわち、シャドーコピーデータ）の割り振り済み格納領域を含む状況にも、適用可能である。
【００２０】
たとえば図１は、バックアップサーバ１１０（たとえば、データ保護マネージャ「ＤＰＭ」サーバ）と通信するプロダクションサーバ１０５（たとえば、メール、ファイル、またはデータベースサーバなど）を含む、バックアップシステム１００のアーキテクチャ上の概要を示す図である。図に示されるように、プロダクションサーバ１０５は、データ１２５などの保護されるデータの１つまたは複数のボリュームをさらに含む、格納媒体１１５を少なくとも含む。プロダクションサーバ１０５のログファイル１１３は、データ１２５に対するすべての変更を識別することができる。したがってログファイル１３５は、プロダクションサーバ１０５が最終的にバックアップサーバ１１０に渡すことになる更新１２３および１２７を含む。
【００２１】
図１は、バックアップサーバ１１０が複製エージェント１３０を備えることも示している。一般に、複製エージェント１３０は、プロダクションサーバ１０５と通信するように、および、格納媒体１２０などの１つまたは複数の接続されたバックアップ格納媒体の様々な特徴を追跡するように構成された、コンピュータ実行可能命令の１つまたは複数のセットを備える。たとえば図１は、複製エージェント１３０が、格納媒体１２０（および／または任意の他の接続されたバックアップ媒体）内の各ボリュームについての様々な使用および未使用スペース特徴を格納する、ボリューム特徴１５０構成要素を含むことができることを示す。
【００２２】
説明として、複製エージェント１３０および／または決定モジュール１３５は、必ずしもバックアップサーバ１１０上に常駐している構成要素である必要はない。具体的に言えば、複製エージェント１３０および／または決定モジュール１３５は、プロダクションサーバ１０５および／またはバックアップシステム１００内の任意の他のサーバ（図示せず）上に実装することができる。したがって、本明細書におけるバックアップサーバ１１０上の複製エージェント１３０および決定モジュール１３５の図は、主として、少なくとも１つの実施を示す際の便宜的なものである。
【００２３】
いずれにしても、決定モジュール１３５は、プロダクションサーバ１０５で保護されたデータ（たとえば１２５）に対する更新のサイズを識別することができる。一実施では、決定モジュール１３５は、一般的なアーカイブ期間（たとえば１４日間、すなわちシャドーコピーをアーカイブまたは削除するまで保持しておく時間）中に、複製サイクル（たとえば１５分ごと）にわたって、データ１２５内のすべての変更の実際のバイトサイズを決定する。しかしながら、こうした粒度の細かい決定は必ずしも必要でない場合がある。たとえば、場合によっては、データ更新をｄｉｆｆ領域（たとえば１４３）へコピーするためにどの程度のスペースが必要であるかをより控えめに見積もることが、より効率的な可能性がある。一実施では、これは、ファイル（またはバイト）ブロックに関してバイト変更を識別することによって実行することができる。
【００２４】
一般に、ファイルブロック（またはバイトブロック）とは、典型的には「ファイル」内のバイトセットである。本明細書および特許請求の範囲では、「ファイル」とは、その最も広い意味において、通常のユーザアプリケーションファイルではなく（またはこれに加えて）、電子メール、データベースプログラム、システムライブラリ、または構成要素などに関連付けられた、任意のタイプの離散データの集まりを含むものと理解されよう。いずれにしても、ファイルブロック内のバイトセットは、典型的には約４０９６バイトから約１６３８４バイトの固定サイズを典型的に有する。したがって、ファイルとは、何らかの任意数のバイトとして説明されることに加えて、３バイトブロックのセットとして説明される場合がある。したがって、以下の明細書および特許請求の範囲からより完全に理解されるように、複製エージェント１３０は（決定モジュール１３５を介して）、プロダクションサーバ１０５から書き込むことが必要なブロックの数（すなわち、変更のサイズ）、格納媒体１２０内で使用可能なブロックの数（すなわち、割り振られた格納サイズ）、またはそれらの何らかの組み合わせを、決定することができる。
【００２５】
たとえば、複製エージェント１３０は（決定モジュール１３５を介して）、複製プロセス中であるが、このデータと対応するバックアップボリュームとを同期させる（すなわち、これらの変更を適用する）前の、変更を追跡することによって、データ１２５への変更の合計サイズを決定することができる。これは、１つのインスタンスにおいて、ファイルシステムログ／ジャーナル（たとえば、更新シーケンス番号ジャーナル、ブロック変更ビットマップ、またはログファイル）１１３から、作成、修正、および／または削除されたすべてのファイルを決定することによって、実行可能である。その後、複製エージェント１３０は、ある種の標準値（すなわちブロック値）を、ファイル内のメタデータが変更されたかどうか、ファイルが新しいかどうか、ファイルに添付されているかどうか、所与のファイルブロック内の１つまたは複数のバイトが変更されたかどうか、および／または、ファイルが削除されているかどうかに関するものとすることができる。前述のように、次にこのブロック値が、最終的に格納媒体１２０にどれだけ書き込む必要があるかの控えめな過度の見積もりを提供することができる。
【００２６】
たとえば複製エージェント１３０は、各メタデータの変更に対するある種のブロック数を集計し、これを他のタイプのファイル変更に割り当てられたブロック値とは別にカウントするように、構成することができる。一実施では、複製エージェント１３０は、ファイル修正回数、セキュリティプロパティ、ファイル名、または何らかの他のファイル属性に関するファイルメタデータにおける変更を識別するごとに、１ブロックをカウントする。これらおよび他のメタデータプロパティのそれぞれが変更された場合、複製エージェント１３０は、いくつかの別々のブロックをカウントする必要がある場合がある。しかしながら、複製エージェント１３０は、同じメタデータフィールドに対するいくつかの変更（たとえば、いくつかのファイル名変更）を識別するなどの、相殺可能なメタデータ変更については単に１ブロックを識別するように最適化することができる。
【００２７】
複製エージェント１３０は、ファイルに追加されるすべての新しいブロックをカウントするように構成することもできる。たとえば、ログファイル１１３が新しく作成された３ブロックを有するファイルを識別すると、複製エージェント１３０は集計に３ブロックを追加することができる。代替として、添付されたファイルの場合、複製エージェント１３０は、所与のファイルに追加された各ブロックについて１つのブロック値のみを追加する可能性がある。同様に、複製エージェント１３０は、同じファイルブロック内の１つまたは複数のバイト変更について単一のブロックを追加するように、あるいは、同じファイル内のいくつかの異なるブロックにまたがっていくつかのバイトが変更されている場合、複数のブロックを追加するように、構成することができる。その後、複製エージェント１３０は、格納媒体１２０でどれだけのスペースが必要であるかの見積もりを得るために、これら個々の集計（すなわち、メタデータ変更の数、ファイル変更、作成、または添付の数）のそれぞれをまとめて追加することができる。
【００２８】
一部のケースでは、削除されたブロックの合計数を考慮の対象とすることによって、この集計を修正することも可能である。たとえば、一部のボリュームシャドーコピーサービスは、プロダクションサーバがその格納媒体（たとえば１１５）にあるそのブロックを削除したことを識別した場合、ブロックの以前のバージョンを、バックアップボリューム（たとえば１４０）からシャドーコピーボリューム（たとえば１４３）にコピーするように構成される。一部のケースでは、ボリュームシャドーコピーサービスは、所与の削除されたブロックが他のファイルまたはファイルブロックによって上書きされている場合に、ブロック内の削除を報告するようにのみ構成される可能性がある。他のケースでは、ボリュームシャドーコピーサービスは、総称バイト／ブロックの削除ならびにバイト／ブロックの上書きの両方を報告するように、構成される可能性がある。したがって複製エージェント１３０は、対応するバックアップボリュームに渡される必要があるブロックの最も正確な合計が反映されることを保証するために採用されたどのようなシャドーコピーサービスにも対処するように、構成することができる。
【００２９】
たとえば、複製エージェント１３０は、ファイルシステムジャーナル、ログファイル、またはブロック変更ビットマップ（たとえば１１３）から、上書きされている削除済みブロックの合計数、ならびにそれらの削除済みファイルのサイズのみを識別するように、構成することができる。一実施では、それらの削除済みブロックのサイズは、複数の複製サイクル（およびエラー訂正による変更）にまたがった累積値に基づくものとすることができる。これらの線に沿って、複製エージェント１３０は、すべての新しく追加されたブロックが、使用可能な場合に必ず削除済みブロックを上書きすることを想定するように構成することもできる。したがってこの例では、複製エージェント１３０は、データ１２５に関する変更の合計サイズが、メタデータ変更によるブロック数、新しく追加されたブロックの数、および、新しく追加されたブロックによって上書きされた削除済みブロックの数の、合計によって概算可能であることを、決定することができる。
【００３０】
プロダクションサーバ１０５での変更のサイズを識別すると同時に（またはその前に）、複製エージェント１３０は、識別された変更を適用するかどうかを識別するために、バックアップ格納媒体（たとえば１２０）での使用可能領域のサイズを決定することもできる。たとえば複製エージェント１３０は、ボリュームシャドーコピーサービス（図示せず）に照会することによって、メインバックアップボリューム１４０内のシャドーコピーに割り振られた格納領域内の未使用スペースの量を識別することができる。代替として、メインデータバックアップおよびシャドーコピーバックアップが別々のボリューム（たとえば１４０、１２５）に格納された場合、複製エージェント１３０は、シャドーコピーを格納するために使用されるボリューム内にどれだけの未使用スペース（たとえば１４７）が見つけられるかを識別する。いずれのケースでも、複製エージェント１３０は、プロダクションサーバ１０５での変更が、既存の有効なシャドーコピーを上書きすることなく格納媒体１２０に適用可能であるかどうかを判定する。
【００３１】
具体的に言えば、複製エージェント１３０が、プロダクションサーバ１０５からのファイル／データ変更（たとえば１２３、１２７）の合計サイズが、シャドーコピーに使用可能な使用可能未使用スペース（たとえば１４７）を超えないと識別した場合、複製エージェント１３０は、適宜これらの変更を単純に格納媒体１２０に適用することができる。他方で、保護されることになるデータの変更（たとえば１２３、１２７）のサイズが、計算されたシャドーコピーに使用可能なスペースを超える場合、複製エージェント１３０は、格納媒体１２０への変更の適用を少なくとも瞬間的に停止することができる。複製エージェント１３０は、バックアップ管理者（または適切なシステム構成要素）に指示するために、複製が停止したこと、およびシャドーコピーに割り振られた格納領域が完全に満杯であることを示す警告を、適切なインターフェースを介して発することもできる。
【００３２】
他のケースでは、複製エージェント１３０は、シャドーコピーに割り振られた格納領域が満杯ではないが、それにもかかわらず現在の変更を収容するためにはサイズが不十分であることを示すこともできる。代替として、複製エージェント１３０は、プロダクションサーバ１０５から識別された変更のレートを決定し、シャドーコピーに割り振られた使用可能スペースのサイズが不十分でないと見込まれることを示すエラーを発するように、構成することができる。複製エージェント１３０は、（たとえば、メインデータバックアップボリューム１４０内の割り振り部分を増加することによって、またはボリューム１４５の合計サイズを増加することによって）シャドーコピーを書き込むための使用可能スペースを増加するように、バックアップ管理者にプロンプトを出すこともできる。さらに複製エージェント１３０は、単にバックアップ管理者が、十分なサイズになるまで「先入れ先出し」順序で既存のシャドーコピーを削除することを推奨することもできる。たとえば一実施では、複製エージェント１３０は、どれだけのシャドーコピーを削除するかを推奨し、任意のこうした削除を実行した後に使用可能となる最終回復ポイントをバックアップ管理者に報告する。
【００３３】
適切であれば、その後複製エージェント１３０は、オリジナルスケジュールに従って複製サイクルを再始動または再開し、プロダクションサーバ１０５によって示された変更を適用することができる。複製サイクルが続行されるにつれて、複製エージェント１３０はシャドーコピー格納スペース内の使用可能未使用スペースの見積もりを続行することができる。たとえば、複製エージェント１３０が初期に保護をセットアップした場合、複製エージェント１３０は、使用および未使用スペースを識別し、この情報をボリューム特徴構成要素１５０内に格納する。こうしたケースでは、複製エージェント１３０は、シャドーコピー格納スペース（たとえば１４５）内の使用スペース（たとえば１４３）を０に設定し、バックアップ管理者によって以前に設定されたシャドーコピー格納スペース／ボリューム（またはメインデータバックアップボリューム１４０内の割り振り部分）１４５の上限値を、格納する可能性がある。複製の間、またはボリューム内の使用スペースを修正する任意の他の動作（たとえば妥当性検査およびエラー訂正）の間、複製エージェント１３０は、使用スペース量にブロック数を追加し続けることが可能であり、これは逆に言えば、以前に識別された未使用スペースからこれらの量を減じることになる。
【００３４】
したがって複製エージェント１３０は、書き込まれた内容によって、バックアップボリューム内にどれだけのスペースが残っている可能性があるかの見積もりを続けることができる。それにもかかわらず、複製エージェント１３０は、さらに残りの変更を適用する前に、この合計をさらに調整する必要がある可能性がある。複製エージェント１３０は、適宜（複製サイクルの前、またはサイクルの間）、使用スペース（たとえば１４３）から満了したシャドーコピーを削除し、適宜、使用スペース（たとえば１４３）からそれぞれの削除済みシャドーコピーのサイズを減じることができる。複製エージェント１３０は、割り振られたシャドーコピー格納スペース（または格納ボリューム、たとえば１４５）の上限への任意の修正を考慮することもできる。たとえば複製エージェント１３０は、バックアップ管理者から、シャドーコピーに割り振られた合計サイズの増加または減少に関する追加の入力を受け取ることができる。したがって適切であれば、複製エージェント１３０は、使用可能なシャドーコピー格納スペースに、任意の残りのファイルまたはファイルブロックを渡し続けることができる。
【００３５】
複製の開始および停止により、プロダクションサーバ１０５でログファイル１１３に書き込まれた内容と比較して、メインデータバックアップ（たとえば１４０）と任意のシャドーコピーバックアップ（たとえば１４５）との間に不整合のインスタンスが存在する可能性があることを、理解されよう。したがって、複製エージェント１３０は、ログファイル１１３内の任意のオーバフローに対処するために、整合性チェック（すなわち妥当性検査およびエラー訂正）を使用して同期化を実行（または推奨）するように、構成することもできる。こうした同期化については、以下でより詳細に説明する。
【００３６】
さらに図１の参照を続けると、複製エージェント１３０は、必ずしも変更の合計サイズを計算し、適切であればそれらの変更を適用するのではなく、どのスペースが使用可能であるかを継続して照会および決定し、受け取った更新の部分をシャドーコピー格納領域に適用するように構成することができる。前述の説明とは対照的に、この場合、プロダクションサーバ１０５から受け取るすべての変更のサイズを識別することではなく、シャドーコピーを書き込むための格納媒体１２０での未使用の使用可能スペースのサイズを識別することに、作業の大半を置くことができる。一般に、これを実行することが可能な本発明の実施に従ったいくつかのメカニズムが存在する。
【００３７】
一実施では、たとえば、複製サイクル中にプロダクションサーバ１０５からファイル変更を受け取る場合、複製エージェント１３０は、ファイルごとまたはブロックごとに、使用可能な未使用のシャドーコピー格納スペース（たとえば１４５）を照会し、その後、適切であれば、それぞれの次のファイル（またはブロック）を使用可能なシャドーコピー格納スペースに書き込むのみとすることができる。１つまたは複数のファイル（またはブロック）の次のセットに十分なスペースがない場合、複製エージェント１３０は警報を発することができる。しかしながら、バックアップボリュームに渡されている各ファイルまたはファイルブロックについて使用可能な未使用スペースを照会することは、リソース使用の観点から、一部のバックアップシステムにとって困難な可能性がある。したがって、複製エージェント１３０は、それにもかかわらず何が使用可能であるかのかなり控えめな見積もりを提供する、粒度の細かくない計算を使用するように構成することができる。
【００３８】
たとえば、複製エージェント１３０は、シャドーコピーを格納するための未使用スペースの「安全な」使用可能領域を計算し、その後、前述のようなファイルごとまたはブロックごとよりもかなり低い頻度で（たとえば、１０，０００ファイルまたはファイルブロックごとに）、この使用可能領域を照会するように、構成することができる。前述のように、安全な過小評価量を取っておくように試みることは、有効なシャドーコピーを保持するために役立つ可能性がある。加えて、こうした過小評価が役立つ可能性のある他の理由は、新しいブロックがそれらの削除済みブロックの一番上に書き込まれている場合、一部のボリュームシャドーコピーサービスが、削除済みブロックのデータ更新をシャドーコピー格納領域に適用するのみでよい可能性があることである。したがって、安全な過小評価制限を設定することは、使用可能スペースの以前の見積もりがその他の形で不十分であることがわかる場合に、既存のシャドーコピーの維持に役立つ可能性があり、すなわち、予想より多いデータ（すなわち上書きされたデータ）がシャドーコピー格納スペースに送信されることになる。
【００３９】
いずれにしても、複製エージェント１３０は、いずれかの方法で安全なシャドーコピー格納スペースを決定することができる。たとえば一実施では、複製エージェント１３０は、最初に、シャドーコピーを格納するために使用可能な未使用スペースのうちで現在使用可能な量を識別し、その後、所定の割合の未使用スペースを「安全」として設定することができる。たとえば一実施では、複製エージェント１３０は、未使用スペースの９０％を安全として識別する。したがって、ファイルまたはファイルブロックの初期セット（たとえば、１００，０００のファイルまたはブロックのうちの最初の１０，０００ファイルまたはファイルブロック）を使用し、安全な未使用スペースの値の概算（すなわち、未使用スペースの初期決定のうちの９０％）を知ることによって、複製エージェント１３０は、初期セットのファイルまたはファイルブロックのそれぞれを、使用可能な安全格納スペースに書き込むことができる。
【００４０】
ファイルまたはファイルブロックの第１のセットを書き込んだ後、複製エージェント１３０は、残りの使用可能な未使用スペースを（適切なボリュームシャドーコピーサービスを照会することなどによって）決定することが可能であり、未使用スペースの「９０％」を安全として再度設定することができる。次のファイルまたはファイルブロックのセットがこのスペース内に収まる場合、複製エージェント１３０は、以前のようにこれらのブロックを未使用スペースに書き込むのみとすることができる。しかしながら、複製エージェント１３０が、未使用スペースに関する新しい値が次のファイルまたはファイルブロックのセットに対して決して適切でないと判定した場合、複製エージェント１３０はいくつかの追加ステップを実行することができる。
【００４１】
たとえば一実施では、複製エージェント１３０は、安全な使用可能未使用スペースに収めることが可能な次のセットのそれらのファイルまたはファイルブロックのみを、単に書き込むのみである。いくつかのケースでは、複製エージェント１３０は、ファイルのブロックではなくファイルのみを書き込むように構成することが可能であり、それによって、メインデータ格納（たとえばボリューム１４０）とシャドーコピー格納（たとえばボリューム１４５）との整合性を維持する。たとえば、プロダクションサーバ１０５で２ブロックのファイルが変更された場合、複製エージェント１３０は、両方のファイルブロックを格納媒体１２０に書き込むか、あるいはブロックのうちの１つのみが収まる場合は、このファイル内のどちらのブロックも書き込まないように、構成することができる。
【００４２】
その後、複製エージェント１３０が、いかなる単一ファイル（すなわち、ファイル内で変更または追加されたブロック）も、安全な使用可能シャドーコピー格納スペースに書き込むことができないと判定した場合、複製エージェント１３０は、安全な使用可能サイズを、警報を発する適切な値（たとえば「０」）に設定することが可能である。これによって、複製エージェント１３０に、所与の書き込み動作が首尾良く完了できないこと、および、依然として収容する必要のあるｘ量のファイルまたはファイルブロックが存在することを示す、警報を発することができる。その後複製エージェント１３０は、バックアップ管理者が、シャドーコピーに対する合計割り振り格納領域（たとえば、ボリューム１４５のサイズ、またはボリューム１４０内の割り振りのサイズ）を増加すること、または、変更の適用を再試行する前に既存のシャドーコピーを削除することを、推奨することができる。こうした調整が実行可能であり、実行されると想定すると、複製エージェント１３０は前述のように、ファイルおよび／またはファイルブロックのセットを安全な使用可能シャドーコピー格納スペースに書き込むこのプロセスを繰り返すことができる。
【００４３】
これらの線に沿って、複製エージェント１３０は、ボリュームフィルタドライバ（図示せず）を使用し、バックアップサーバ１１０で、すべてのバックアップボリューム（たとえば、格納媒体１２０の１４０、１４５など）を監視することができる。これは、複製エージェント１３０以外の他のどのプロセスも、バックアップボリューム（すなわちシャドーコピー格納スペース１４５）に書き込むことができないことを保証するため、あるいは、たとえ他のプロセス／アプリケーションがバックアップボリュームに書き込んでいる場合であっても、有効なシャドーコピーが保持されることを保証するために同じチェックが実行され、これによって様々なセキュリティの利点を提供することができることを少なくとも確認するために、役立つ可能性がある。一実施では、たとえばボリュームフィルタドライバは、使用可能なシャドーコピー格納スペース（たとえば１４７）の量で初期設定された変数を格納することができる。複製エージェント１３０がメインデータバックアップボリューム（たとえば１４０）にデータを書き込むごとに、ボリュームフィルタドライバは、この書き込みの結果として削除済みデータが対応するシャドーコピーボリューム（たとえば１４５）に移動されることになると、想定することができる。こうしたケースでは、ボリュームフィルタは、各書き込みが既存のデータへの変更であり、新しい書き込みのみでなく上書きされたデータのコピーもシャドーコピー格納スペースに渡される必要があるという、極端なシナリオを想定するように構成することができる。
【００４４】
したがって、ボリュームフィルタドライバは、識別されたメインデータバックアップへの書き込みごとに、未使用の使用可能シャドーコピー格納スペースから１ブロックを減分するように構成することができる。ボリュームフィルタドライバは、（以下でより詳細に説明するように）使用可能な未使用シャドーコピー格納スペースのその決定を、定期的に同期化することもできる。最終的には、使用可能なシャドーコピーデータスペースの割り当てが０まで減分された場合、複製エージェント１３０（このケースでは、ボリュームフィルタドライバからそのデータを受け取る）は、格納媒体１２０へのいかなる書き込みも実行できなくなるため、シャドーコピー格納スペース（たとえば１４５）への書き込みはない。次に複製エージェント１３０は、前述の様々な収容動作のうちの任意の１つまたは複数を要求する、バックアップ管理者への警告を発することができる。
【００４５】
本明細書で説明する様々なサイズの近似に鑑みて、バックアップ管理者は、プロダクションサーバ１０５ファイルシステム内のブロックサイズが、バックアップ格納媒体１２０内の同じブロックと比べて異なるという問題を、解決することが必要な場合がある。具体的に言えば、複製サイクルまたは妥当性検査／エラー訂正に先立って計算されるブロック変更は、必ずしも、使用可能なシャドーコピースペース上での同じサイズのブロック変更につながるとは限らない場合がある。もちろん、プロダクションサーバ１０５でのファイルシステムブロックのサイズが、格納媒体１２０で管理されるブロックサイズよりも大きいかまたはこれに等しい場合、格納媒体１２０で使用可能な未使用スペースが実質的に過小評価されることになるため、いかなる問題もない可能性がある。他方で、プロダクションサーバ１０５でのブロックサイズが格納媒体１２０でのブロックサイズよりも小さい場合、格納媒体１２０での使用可能な未使用スペースは実質的に過大評価されることになり、結果としてシャドーコピーの早尚な上書き／削除が生じる可能性がある。こうしたケースでは、複製エージェント１３０は、使用可能な未使用スペースの量を過小評価するためにいくつかの追加のステップを実行することができる。
【００４６】
たとえば、複製エージェント１３０は、プロダクションサーバ１０５のブロックサイズおよびバックアップ格納媒体１２０のブロックサイズを、同じになるように設定することができる。これには、複製エージェント１３０が以前に決定された変更のサイズを正規化することが含まれる場合があるため、プロダクションサーバ１０５と格納媒体１２０との間のブロックの合致は、実質的に１対１である。代替として、複製エージェント１３０は、プロダクションサーバ１０５での変更によって合計ブロックの決定を調整し、１つまたは複数のブロックを追加し、それによってプロダクションサーバ１０５から受け取った変更の数を過大評価することができる。この点に関して、複製エージェント１３０は、変更済みブロックが連続的であると想定し、したがって、格納媒体１２０に書き込む必要があるプロダクションサーバ１０５での計算された変更済みブロックに１ブロックを追加するように、構成することができる。
【００４７】
代替として、複製エージェント１３０は、プロダクションサーバ１０５での変更済みブロックそれぞれの論理オフセットをウォークスルー（ｗａｌｋ  ｔｈｒｏｕｇｈ）するように構成することができる。こうしたケースでは、複製エージェントは、変更された（または新しい）連続ブロックの各セットに１ブロック値を追加し、変更された１つのスタンドアロンブロックを２ブロックとしてカウントすることもできる。他の代替実施では、複製エージェント１３０は、プロダクションサーバ１０５での変更済みファイルブロックの論理オフセットをウォークスルーし、これらの境界と、ボリュームシャドーコピーサービスによって使用されるような、格納媒体１２０で使用されるブロック境界とを比較することができる。バックアップサーバ１１０は、この比較を使用して、シャドーコピー格納スペース（たとえば１４５）に適用する必要のあるプロダクションサーバ１０５からの（格納媒体１２０で定義されたような）変更済みブロックの精密な数を決定することができる。
【００４８】
本明細書で説明される様々な近似に鑑みて、複製エージェント１３０は、使用可能なシャドーコピー格納スペースのその近似を、実際の使用可能なシャドーコピー格納スペースと定期的に同期化させることがさらに必要な場合がある。これは、経時的な複合近似エラーを防ぐために役立つ場合がある。一実施では、たとえば複製エージェント１３０は、プロダクションサーバ１０５での特定の変更を適用するために十分なスペースが存在することを識別した場合、ただしこうした変更を適用する前に、使用可能な未使用のシャドーコピー格納スペース（たとえば１４７）を決定することができる。その後、複製エージェント１３０は、これに「事前スペース」とラベル付けすることができる。プロダクションサーバ１０５からの変更を適用すると、次に複製エージェント１３０は、残りの使用可能シャドーコピー格納スペース（たとえば変更後の１４７）を照会（すなわち、ボリュームシャドーコピーサービスを照会）し、これに「事後スペース」とラベル付けすることができる。
【００４９】
中間でシャドーコピーが矯正されていないものと想定すると、シャドーコピー格納に適用される「実際の変更」は、「事前スペース」と「事後スペース」との間の相違によって表される。次に複製エージェント１３０は、修正済みブロックが、前述のように上書きされた削除済みブロックを含むという想定に基づき、「実際の変更」から修正済みブロック（新しいブロックとは対照的に）を減じることによって、削除済みブロックを計算することができる。これによって、「調整された削除済みブロック」の値を発生させることができる。次に複製エージェント１３０は、変更のサイズを計算する場合の前述のプロセスで、この「調整された削除済みブロック」を使用することができる。
【００５０】
したがって、前述のテキストは、バックアップ更新の有効なコピー（すなわちシャドーコピー）が、その意図された時間中存続できることを保証できる、いくつかの構成要素およびモジュールについて説明している。具体的に言えば、こうした実施は、バックアップ管理者などの技術者に過度に負担をかけることなく、現在のバックアップシステムを大幅に堅固な、信頼できる、効率的なバックアップシステムにするために適用することができる。本発明の実施については、意図された結果を達成するための一連の１つまたは複数の動作またはステップを含む方法の流れ図に関して説明することもできる。たとえば図２は、バックアップサーバで適用されることになるプロダクションサーバでの変更の合計サイズを識別する方法の流れ図を示し、図３は、変更の適用に先立って、バックアップサーバ内の使用可能な格納スペース識別するための方法の流れ図を示す。図２および図３については、図１に示された構成要素を参照しながら、以下で説明する。
【００５１】
具体的に言えば、図２は、プロダクションサーバでのファイル変更の決定を、１つまたは複数のバックアップボリューム内で使用可能なシャドーコピー格納スペースと互いに関連付けさせる、本発明の実施に従った方法が、１つまたは複数のファイル変更を識別する動作２００を含むことを示す。動作２００は、プロダクションサーバで１つまたは複数のデータ変更のセットを識別することを含む。たとえば複製エージェント１３０は、ログファイル１１３を介して、プロダクションサーバ１０５からデータ更新１２３および／または１２７を受け取る。
【００５２】
加えて、図２は、この方法が、セットに関する変更の合計サイズを決定するためのステップ２１０を含むことができることを示す。ステップ２１０は、シャドーコピー格納ボリュームに適用されることになるセット内の変更の合計サイズを、変更の合計サイズが過大評価されるように、決定することを含む。たとえば、ログファイル１１３を介して変更を受け取ると、複製エージェント１３０は、最終的にバックアップボリューム１４５に適用されることになる必要がある変更のサイズを近似する値を決定する。
【００５３】
一般に、ステップ２１０は任意の数または順序の対応する動作を含むことが可能であるが、ステップ２１０は、少なくとも１つの実施において、セットの各新しいファイルにおける各データ部分に標準値を割り当てる動作と、セット内の任意のファイルに添付された各データ部分に標準値を割り当てる動作と、上書きされた各ファイルに標準値を割り当てる動作とを含む。たとえば、複製エージェント１３０は、新しいブロック（たとえば新しいファイル、ファイル添付）、修正されたブロックを識別した場合、または上書きされたファイル（またはブロック）を識別した場合に、１バイトブロック値（または他の等価のデータサイズ）を割り当てる。ステップ２１０は、セットの任意のファイルにおいて変更された各メタデータ部分に標準値を割り当てる動作と、プロダクションサーバでの変更の合計サイズが近似されるように、各割り当てられた標準値を追加する動作とを、含むこともできる。たとえば複製エージェント１３０は、各メタデータ変更についてブロック（または取り消された変更について１ブロック）を追加し、その後、バックアップボリューム（たとえば１４５）に適用されることが必要となるブロックの合計サイズを近似するために、すべてのブロック割り当てを追加することができる。
【００５４】
加えて、図２は、この方法が、シャドーコピー格納スペースのサイズを識別する動作２２０を含むことができることを示す。動作２２０は、シャドーコピー格納ボリューム内の使用可能なシャドーコピー格納スペースのサイズを識別することを含む。たとえば、複製エージェント１３０は、一般化されたバックアップボリューム（たとえば１４０）内でどれだけのスペースが割り振り済みおよび未使用であるかの両方、または、シャドーコピー格納ボリューム（たとえば１４５）内でどれだけのスペースが未使用（たとえば１４７）であるか、を識別するために、ボリュームシャドーコピーサービスに照会する。
【００５５】
さらに図２は、この方法が、１つまたは複数のファイル変更のセットを適用するステップ２３０を含むことができることを示す。ステップ２３０は、有効期限に先立って有効なシャドーコピーがシャドーコピー格納ボリューム内に残るように、１つまたは複数のデータ変更のセットを、識別された使用可能なシャドーコピー格納スペースに適用することを含む。たとえば、プロダクションサーバ１０５からの変更の合計サイズを識別した場合、および適切なバックアップボリューム内でどれだけのスペースが未使用であるかを識別した場合、複製エージェント１３０は受け取った変更をバックアップボリュームに渡すことができる。
【００５６】
一般に、ステップ２３０は、任意の数または順序の対応する動作を含むことが可能であるが、ステップ２３０は、少なくとも１つの実施において、使用可能なシャドーコピースペース内の未使用スペースの量を識別する動作と、変更の合計サイズと識別された未使用スペースとを比較する動作とを含む。ステップ２３０は、未使用スペースの量が少なくとも変更の合計サイズと同じであることを識別する動作と、１つまたは複数のデータ変更のセットを識別された未使用スペースに自動的に適用する動作とを、含むこともできる。たとえば、複製エージェント１３０が、使用可能な未使用スペース（たとえば１４７）が少なくともプロダクションサーバ１０５から受け取った変更の合計サイズと同じであることを識別した場合、複製エージェント１３０は（たとえばボリュームシャドーコピーサービスを介して）、それらの受け取った変更をシャドーコピー格納スペースに渡すのみとすることができる。もちろん、本明細書で前述したように、使用可能なシャドーコピー格納スペースのサイズが不十分な場合、複製エージェント１３０は、満了したシャドーコピーを削除するか、またはさらなる動作のためにバックアップ管理者に警告を発することができる。
【００５７】
図３は、図２と同様の方法を示すが、単に更新を受け取り、シャドーコピー格納領域内でどれだけのスペースが使用可能であるかを決定するリソースを消費することに、より重点を置いている。具体的に言えば、図２は、１つまたは複数のバックアップボリュームにおける使用可能なシャドーコピー格納スペースを決定し、それによって、有効なシャドーコピーデータを削除することなく、プロダクションサーバから受け取ったデータ更新を適用するための方法が、プロダクションサーバからデータを受け取る動作３００を含むことができることを示す。動作３００は、プロダクションサーバから１つまたは複数のデータ変更を受け取ることを含む。たとえば、複製エージェント１３０は、ログファイル１１３を介してプロダクションサーバ１０５から（データ１２５に関する）１つまたは複数のデータ変更のセットを受け取る。
【００５８】
図２は、この方法が、受け取ったデータにブロック値を割り当てる動作３１０を含むことができることも示す。動作３１０は、初期セットにおける１つまたは複数のデータ変更のそれぞれに標準値を割り当てることを含む。たとえば、本明細書で前述したように、複製エージェント１３０は、どれだけの未使用スペースが使用可能であるかを継続的に決定するように、ある時点で単一のファイルまたは単一のブロックを対応するシャドーコピー格納スペース（たとえば１４５）内に渡すように構成することができる。したがって複製エージェントは、最初は、１つまたは複数のデータ更新のセット内にある初期ファイルを採用して、このファイルにどれだけのブロック値を割り当てるか（たとえば、添付について１ブロック、変更／修正済みの既存ブロックについて１ブロックなど）を決定する場合がある。
【００５９】
加えて図２は、この方法が、使用可能なシャドーコピー格納スペースを計算するステップ３２０を含むことができることを示す。ステップ３２０は、バックアップボリューム内の使用可能なシャドーコピー格納スペースの量が、バックアップボリューム内に格納された有効なシャドーコピーを保持するために過小評価されるように、この量を計算することを含む。たとえば、複製エージェント１３０は、複製エージェント１３０が（本明細書で理解されるような）「ファイル」をシャドーコピー格納スペースに渡し始めるごとに、どれだけのスペースが未使用であるかについて、ボリュームシャドーコピーサービスに定期的に照会することができる。すなわち複製エージェント１３０は、一般に、メインデータバックアップに直接データを渡し、ボリュームシャドーコピーサービス（図示せず）を使用して、シャドーコピーデータをシャドーコピー格納スペースに渡すことになるが、複製エージェント１３０は、使用可能な未使用スペースについてボリュームシャドーコピーサービスに照会することができる。複製エージェント１３０は、プロダクションサーバ１０５から受け取ったファイルのいくつかのセットごとに、使用可能な未使用スペースについてボリュームシャドーコピーサービスに照会し、その後、未使用スペースのある部分を安全とみなすのみとすることもできる。
【００６０】
ステップ３２０は、ステップを実施するために任意の数または順序の対応する動作を含むことができるが、ステップ３２０は、少なくとも一実施において、１つまたは複数のデータ変更のうちの第１のバイトブロックを識別する動作と、未使用の使用可能なシャドーコピー格納スペースの量をボリュームシャドーコピーサービスに要求する動作と、１つまたは複数のデータ変更のうちの第２のバイトブロックを識別する動作と、未使用の使用可能なシャドーコピー格納スペースの量をボリュームシャドーコピーサービスに再度要求する動作とを含む。代替として、ステップ３２０は、未使用の使用可能なシャドーコピー格納スペースの量を識別する動作と、識別された未使用スペースの削減された部分を安全として設定する動作と、第１の複数に関する変更の合計サイズを決定するために、セット内の第１の複数のデータ変更に対応する標準値を合計する動作とを、含むことができる。
【００６１】
図２は、この方法が、識別されたブロック値と計算された格納スペースとを比較する動作３３０を含むことができることをさらに示す。動作３３０は、１つまたは複数のデータ変更の初期セットの標準値が、バックアップボリューム内の使用可能なシャドーコピー格納スペースの計算された量よりも少ないことを識別することを含む。たとえば複製エージェント１３０は、初期ファイルまたはファイルのセットに関する変更の合計サイズ（たとえば、プロダクションサーバ１０５から受け取ったすべての変更のサブセット）が、使用可能な未使用スペースに関する瞬時照会結果より少ないか、または、シャドーコピー格納スペースの安全量に収まると以前にみなされた量より少ないかを、判定する。
【００６２】
さらに図２は、この方法が、受け取ったデータをバックアップボリュームに適用する動作３４０を含むことも示す。動作３４０は、有効期限に先立って有効なシャドーコピーがシャドーコピー格納ボリューム内に残るように、１つまたは複数のデータ変更の初期セットをバックアップボリュームに適用することを含む。たとえば、識別された未使用スペースまたは安全量の未使用スペース内に適切に収まる場合、複製エージェント１３０は、プロダクションサーバから受け取った初期ファイル（またはファイルのセット）を、バックアップボリューム内の未使用スペース（たとえば１４７）に渡すのみとすることができる。代替として、そのように実行することによって、既存であるが有効なシャドーコピーをバックアップボリュームから削除することになる場合、前述のように、複製エージェント１３０は警告を発するか、またはこれに対処するために他の自動処置を講じることができる。
【００６３】
したがって、本発明の実施は、シャドーコピーが尚早に削除される危険性なしに、それらの有効期間全体にわたって保持できることを保証するための、いくつかの構成要素、図式、および方法を提供する。具体的に言えば、本発明の実施は、様々な代替の観点（すなわち、変更の合計サイズ、シャドーコピー格納スペースの継続的監視、およびシャドーコピー格納スペースの有用な見積もり）からこれらの問題に対処できるようにする、様々なメカニズムを提供する。さらに本発明の実施は、２つのサーバ間でのデータサイズ測定の整合性を保証するため、および、様々な同期化プロセスを介して経時的に倍増する可能性のある近似エラーを緩和するための、いくつかのメカニズムを提供する。したがって、本発明の実施は、従来使用可能なメカニズムよりも、かなり効率的および信頼できるシャドーコピーバックアップメカニズムを提供する。
【００６４】
本発明の実施形態は、以下でより詳細に説明するような、様々なコンピュータハードウェアを含む特定用途向けまたは汎用のコンピュータを含むことができる。具体的に言えば、本発明の範囲内にある実施形態は、それらに格納されたコンピュータ実行可能命令またはデータ構造を搬送または有するための、コンピュータ読み取り可能媒体も含む。こうしたコンピュータ読み取り可能媒体は、汎用または特定用途向けのコンピュータによってアクセス可能な任意の使用可能媒体とすることができる。
【００６５】
例を挙げると、こうしたコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、コンピュータ実行可能命令またはデータ構造の形の所望のプログラムコード手段を搬送または格納するために使用可能であり、汎用または特定用途向けのコンピュータによってアクセス可能な、任意の他の媒体を含むが、これらに限定されることはない。情報が、ネットワークまたは他の通信接続（ハードワイヤード、無線、あるいはハードワイヤードまたは無線の組み合わせの、いずれか）を介して、コンピュータに転送または提供される場合、コンピュータは適切に、この接続をコンピュータ読み取り可能媒体とみなす。したがって任意のこうした接続は、厳密にコンピュータ読み取り可能媒体と呼ばれる。前述の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるものとする。
【００６６】
コンピュータ実行可能命令は、たとえば、汎用コンピュータ、特定用途向けコンピュータ、または特定用途向け処理デバイスに、ある種の機能または機能グループを実行させる、命令およびデータを含む。本主題について、構造的な機能および／または方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲で定義された主題が、必ずしも前述の特定の機能および動作に限定されるものではないことを理解されたい。むしろ、前述の特定の機能および動作は、特許請求の範囲を実施する例示的な形として開示されている。
【００６７】
本発明は、その趣旨または不可欠な特徴から逸脱することなく、他の特定の形で具体化することができる。前述の実施形態は、すべての点において単なる例示であり、限定的とみなされるべきではない。したがって本発明の範囲は、前述の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の意味および等価の範囲内にあるすべての変更は、それらの範囲内に包含されるものとする。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施に従った、複製エージェントがプロダクションサーバから更新を受け取り、この更新をバックアップボリュームに適用する、バックアップシステムにおけるプロダクションサーバおよびバックアップサーバを示す概略図である。
【図２】プロダクションサーバからの変更の合計サイズを識別することによって、プロダクションサーバからバックアップサーバへの変更を適用する方法における、一連の動作を示す流れ図である。
【図３】プロダクションサーバから受け取った変更を適用する前に、使用可能な未使用スペースの合計サイズを識別することによって、プロダクションサーバからバックアップサーバへの変更を適用する方法における、一連の動作を示す流れ図である。
【図１】
2009539162.tif 000003
【図２】
2009539162.tif 000004
【図３】
2009539162.tif 000005
【国際調査報告】
2009539162.tif 000006
2009539162.tif 000007