(57)【特許請求の範囲】
【請求項１】
ボリュームに対して行われた変更を追跡するコンピュータにより実施される方法であって、
前記ボリュームの第１のスナップショットを識別するステップと、
前記第１のスナップショットが作成されたウィンドウを識別するステップであって、前記ウィンドウは、前記第１のスナップショット前に発生したことが分かっている第１の時点で始まり、前記第１のスナップショット後に発生したことが分かっている第２の時点で終わるステップと、
前記ウィンドウ内に発生した前記ボリュームへの少なくとも１つの変更を識別するステップと、
前記ウィンドウ内に発生した少なくとも１つの変更を前記第１のスナップショットおよび前記第１のスナップショット後に作成された第２のスナップショットの両方に関連付けるステップと
を含む、方法。
【請求項２】
前記ボリュームへの前記少なくとも１つの変更を識別するステップは、前記ウィンドウ内に変更された前記ボリュームの各ブロックを識別するステップを含む、請求項１に記載の方法。
【請求項３】
前記第１のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第２の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第２の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第１のスナップショットに関連付けられた第１のリストに追加するステップと
をさらに含む、請求項２に記載の方法。
【請求項４】
前記前のスナップショットを使用して、前記ボリュームの完全バックアップを作成するステップと、
前記第１のリストおよび前記第１のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第１の増分バックアップを作成するステップと
をさらに含む、請求項３に記載の方法。
【請求項５】
前記第２のスナップショット後に発生したことが分かっている第３の時点を識別するステップと、
前記第１の時点と前記第３の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記第１の時点と前記第３の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第２のスナップショットに関連付けられた第２のリストに追加するステップと
をさらに含む、請求項３に記載の方法。
【請求項６】
前記ウィンドウ内に発生した少なくとも１つの変更を前記第１のスナップショットおよび前記第２のスナップショットの両方に関連付けるステップは、前記ウィンドウ内に変更された前記ボリュームの各ブロックへの参照を前記第１のリストおよび前記第２のリストの両方に追加するステップを含む、請求項５に記載の方法。
【請求項７】
前記第１のリストを作成するステップと、
前記第２のリストを作成するステップと
をさらに含む、請求項５に記載の方法。
【請求項８】
前記第１のリストおよび前記第１のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第１の増分バックアップを作成するステップと、
前記第２のリストおよび前記第２のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第２の増分バックアップを作成するステップと
をさらに含む、請求項５に記載の方法。
【請求項９】
前記第１のスナップショットは、
ソフトウェアスナップショットと、
ハードウェアスナップショットと
を備える、請求項１に記載の方法。
【請求項１０】
ネットワーク化された環境内でボリュームへの変更を追跡するシステムであって、
少なくとも１つのボリュームを備える少なくとも１つのクライアントと、
前記クライアントと通信するサーバと、
前記サーバ上の変更追跡手段と
を備え、前記変更追跡手段は、
前記ボリュームの第１のスナップショットが作成されたウィンドウを識別するステップであって、前記ウィンドウは、前記第１のスナップショット前に発生したことが分かっている第１の時点で始まり、前記第１のスナップショット後に発生したことが分かっている第２の時点で終わるステップと、
前記ウィンドウ内に発生した前記ボリュームへの少なくとも１つの変更を識別するステップと、
前記ウィンドウ内に発生した少なくとも１つの変更を、前記スナップショットおよび前記第１のスナップショット後に作成された第２のスナップショットの両方に関連付けるステップと
を行うように構成される、システム。
【請求項１１】
前記変更追跡手段は、
前記第１のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第２の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記基本スナップショット前に発生したことが分かっている時点と前記第２の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第１のスナップショットに関連付けられた第１のリストに追加するステップと
を行うようにさらに構成される、請求項１０に記載のシステム。
【請求項１２】
バックアップ作成手段をさらに備え、前記バックアップ作成手段は、
前記前のスナップショットを使用して、前記ボリュームの完全バックアップを作成するステップと、
前記第１のリストおよび前記第１のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第１の増分バックアップを作成するステップと
を行うように構成される、請求項１１に記載のシステム。
【請求項１３】
前記変更追跡手段は、
前記第２のスナップショット後に発生したことが分かっている第３の時点を識別するステップと、
前記第１の時点と前記第３の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記第１の時点と前記第３の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第２のスナップショットに関連付けられた第２のリストに追加するステップと
を行うようにさらに構成される、請求項１１に記載のシステム。
【請求項１４】
前記変更追跡手段は、前記ウィンドウ内に変更された前記ボリュームの各ブロックへの参照を前記第１のリストおよび前記第２のリストに追加することにより、前記ウィンドウ内に発生した前記少なくとも１つの変更を、前記第１のスナップショットおよび前記第２のスナップショットの両方に関連付ける、請求項１３に記載のシステム。
【請求項１５】
バックアップ作成手段をさらに備え、前記バックアップ作成手段は、
前記第１のリストおよび前記第１のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第１の増分バックアップを作成するステップと、
前記第２のリストおよび前記第２のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第２の増分バックアップを作成するステップと
を行うように構成される、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
データをバックアップするいくつかの従来の方法は、計算システムの１つまたは複数のボリュームのスナップショットに基づいてバックアップを作成することを含み得る。例えば、従来のボリュームに基づくバックアッププログラムは、ボリュームの初期スナップショットに基づいてボリュームの基本（または完全）バックアップを作成し得る。ボリュームのブロックが変更された場合、従来のボリュームに基づくバックアッププログラムは、１）新しいスナップショットをとり、２）最後のスナップショットから変更されたボリュームの各ブロック（例えば、各セクタまたは各クラスタ）を識別し、次に、３）変更された各ブロックを取り込むことにより、（追加の完全バックアップとは対照的に）ボリュームの増分バックアップを作成し得る。
【背景技術】
【０００２】
状況によっては、バックアッププログラムの開発者は、第三者スナップショットプロバイダにより提供される特定の機能または利点を利用するために、プログラムを１つまたは複数の第三者スナップショットプロバイダと統合したい場合がある。例えば、ソフトウェアに基づくバックアッププログラムの開発者は、ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットにより提供される性能恩益を利用するために、ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットプロバイダにより提供されるスナップショットを利用しサポートしたい場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
不都合なことに、従来のバックアッププログラムは、通常、第三者スナップショットが作成される厳密な時点を識別できないため、第三者スナップショットを利用する、または完全にサポートすることができない場合がある。例えば、多くの第三者スナップショットプロバイダ（ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットプロバイダ）は、前のスナップショットの作成から変更されたボリュームのブロックを追跡または識別しないため、従来のバックアッププログラムは通常、第三者スナップショットから増分バックアップを作成することができない。したがって、従来のボリュームに基づくバックアッププログラムは、第三者スナップショットプロバイダにより提供されるスナップショットからの完全バックアップ（増分バックアップとは対照的に）の作成しか利用しサポートすることができない場合がある。
【課題を解決するための手段】
【０００４】
より詳細に後述するように、本開示は、一般的には、ボリュームへの変更を追跡するシステムおよび方法に関する。一例では、そのようなシステムおよび方法は、バックアッププログラムが第三者スナップショットプロバイダにより作成されたスナップショットをサポートできるようにし得る。例えば、さらに詳細に後述するように、本開示は、ソフトウェアに基づくバックアッププログラムがハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。
【０００５】
一例では、ボリュームへの変更を追跡する方法は、１）（例えば、第三者スナップショットプログラムにより作成された）ボリュームの第１のスナップショットを識別すること、２）第１のスナップショットが作成されたウィンドウを識別すること、３）ウィンドウ内に変更されたボリュームの各ブロックを識別すること、次に４）ウィンドウ内に変更されたボリュームの各ブロックへの参照を、第１のスナップショットに関連付けられた第１のリストおよび第１のスナップショットの後に作成された第２のスナップショットに関連付けられた第２のリストの両方に追加することを含み得る。
【０００６】
一例では、ウィンドウは、第１のスナップショットが作成される前に発生したことが分かっている第１の時点（すなわち、明らかに第１のスナップショットの作成前に発生した時点）から始まり、第１のスナップショットが作成された後に発生したことが分かっている第２の時点（すなわち、明らかに第１のスナップショットの作成後に発生した時点）で終わり得る。ウィンドウの開始前に発生したブロック変更への参照は、第１のスナップショットに関連付けられた第１のリストに追加し得る一方で、ウィンドウの終了後に発生したブロック変更への参照は、第２のスナップショットに関連付けられた第２のリストに追加し得る。特定の例では、第１および第２のスナップショットに関連付けられた第１および第２のリストを使用して、ボリュームの完全バックアップまたは増分バックアップを作成し得る。
【０００７】
上述した方法に対応するシステムおよびコンピュータ可読媒体も開示される。上記実施形態のうちの任意の実施形態からの特徴は、本明細書において説明される一般原理に従って互いに組み合わせて使用し得る。これらおよび他の実施形態、特徴、および利点が、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読むことにより、より十分に理解される。
【０００８】
添付図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これら図面は、本開示の様々な原理を実証し説明する。
【図面の簡単な説明】
【０００９】
【図１】少なくとも１つの実施形態によるボリュームへの変更を追跡する例示的なシステムのブロック図である。
【図２】少なくとも１つの実施形態によるボリュームへの変更を追跡する例示的なネットワーク化された環境のブロック図である。
【図３】さらなる実施形態によるボリュームへの変更を追跡する例示的な仮想環境のブロック図である。
【図４】少なくとも１つの実施形態によるボリュームへの変更を追跡するコンピュータにより実施される例示的な方法の流れ図である。
【図５】一実施形態によるボリュームへの変更を追跡する例示的なタイミング図である。
【図６】少なくとも１つの実施形態によるボリュームに対して行われた変更を識別する、スナップショットのリストを作成するコンピュータにより実施される例示的な方法の流れ図である。
【図７】本明細書において説明し、かつ／または示される実施形態のうちの１つまたは複数を実施可能な例示的な計算システムのブロック図である。
【発明を実施するための形態】
【００１０】
図面全体を通して、同一の参照文字および説明は、同様であるが必ずしも同一である必要はない要素を示す。本明細書において説明される例示的な実施形態には様々な変更および代替の形態が可能であるが、特定の実施形態が例として図面に示されており、それら特定の実施形態について本明細書において詳細に説明する。しかし、本明細書において説明される例示的な実施形態は、開示される特定の形態への限定を意図しない。むしろ、本開示は、添付の特許請求の範囲内に入るすべての変更、均等物、および代替を包含する。
【００１１】
さらに詳細に後述するように、本開示は、一般的には、ボリュームへの変更を追跡するシステムおよび方法に関する。一例では、そのようなシステムおよび方法は、バックアッププログラムが第三者スナップショットプロバイダにより作成されたスナップショットをサポートできるようにし得る。例えば、さらに詳細に後述するように、本開示は、ソフトウェアに基づくバックアッププログラムがハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。
【００１２】
以下に、図１〜図３を参照して、ボリュームへの変更を追跡する例示的なシステムの詳細な説明を提供する。ボリュームへの変更を追跡するタイミング図の説明も、図５に関連して提供する。対応するコンピュータにより実施される例示的な方法の説明も、図４および図６に関連して提供する。さらに、本明細書において説明され示される実施形態のうちの１つまたは複数を実施可能な例示的な計算システムの説明を、図７に関連して説明する。
【００１３】
図１は、ボリュームへの変更を追跡する例示的なシステム１００のブロック図である。本明細書において使用される用語「ボリューム」は一般に、任意の種類または形態の物理的、論理的、または計算システムの仮想化されたボリュームを指す。図１に示すように、例示的なシステム１００は、１つまたは複数のタスクを実行する１つまたは複数のモジュール１０２を備え得る。例えば、例示的なシステム１００は、ボリュームのスナップショット（状況によっては、第三者スナップショットプロバイダにより作成され得る）を識別するスナップショット識別モジュール１０４を備え得る。
【００１４】
例示的なシステム１００は、さらに詳細に後述するように、ボリュームへの変更を追跡する変更追跡モジュール１０６も備え得る。さらに、例示的なシステム１００は、計算システムのバックアップを作成する（場合によっては、第三者スナップショットに基づいて））バックアップ作成モジュール１０８を備え得る。本明細書において使用される用語「バックアップ」は、計算システムのファイル、プログラム、またはボリュームの少なくとも一部分の任意の種類または形態のバックアップを指し得る。さらに、本明細書において使用される用語「スナップショット」は一般に、データのポイントインタイムコピーを指す。特定の例では、スナップショットは、計算装置のバックアップを作成するためのガイドとして機能し得る。
【００１５】
図１に示すように、例示的なシステム１００は、１つまたは複数のデータベース１２０も備え得る。例えば、例示的なシステム１００は、ボリュームに対して行われた変更を識別するリスト（「変更リスト」）を記憶する変更リストデータベース１２２を備え得る。例示的なシステム１００は、１つまたは複数の計算システムのバックアップを記憶するバックアップデータベース１２３も備え得る。別個の装置として示されるが、図１のデータベース１２０のうちの１つまたは複数は、単一のデータベースまたは単一の計算装置の部分も表し得る。
【００１６】
特定の実施形態では、モジュール１０２のうちの１つまたは複数は、計算装置により実行されると、計算装置に、ボリュームに対して行われた変更を追跡するために必要な１つまたは複数のタスクを実行させ得る１つまたは複数のソフトウェアアプリケーションまたはプログラムを表し得る。例えば、さらに詳細に後述するように、モジュール１０２のうちの１つまたは複数は、図２に示す計算装置（例えば、クライアント２０２、サーバ２０６、および記憶装置２０８（１）〜（Ｎ））、図３に示す計算装置（例えば、仮想マシンサーバ３０２、仮想マシンクライアント３０４、仮想ボリューム３０５、記憶装置３０８、およびプロキシサーバ３１０）、および図７の計算装置（例えば、計算システム７１０）等の１つまたは複数の計算装置上で実行されるように構成されたソフトウェアモジュールを表し得る。モジュール１０２のうちの１つまたは複数は、ボリュームへの変更を追跡するために必要な１つまたは複数のタスクを実行するように構成された１つまたは複数の専用コンピュータのすべてまたは部分も表し得る。
【００１７】
さらに、図１のデータベース１２０のうちの１つまたは複数は、１つまたは複数の計算装置の部分を表し得る。例えば、データベース１２０のうちの１つまたは複数は、図２、図３、および図７に示す例示的な計算システムの部分を表し得る。あるいは、データベース１２０のうちの１つまたは複数は、図２、図３、および図７に示す例示的な計算装置等の計算装置がアクセス可能な１つまたは複数の物理的に別個の装置を表し得る。
【００１８】
図４は、ボリュームへの変更を追跡するコンピュータにより実施される例示的な方法４００の流れ図である。この図に示すように、ステップ４０２において、ボリュームの第１のスナップショットを識別し得る。例えば、図１のスナップショット識別モジュール１０４は、第三者スナップショットプロバイダがスナップショットを作成したことを判断し得る。
【００１９】
ステップ４０４において、システムは、ステップ４０２において識別された第１のスナップショットが作成されたウィンドウを識別し得る。一例では、このウィンドウは、ステップ４０２において識別された第１のスナップショットが作成される前に発生したことが分かっている第１の時点（すなわち、明らかに第１のスナップショットの作成前に発生した時点）で始まり、第１のスナップショットが作成された後に発生したことが分かっている第２の時点（すなわち、明らかに第１のスナップショットの作成後に発生した時点）で終わる。
【００２０】
図５は、ボリュームのスナップショットが作成されたウィンドウを識別するタイミング図の図である。この図に示すように、第１のスナップショット５０４の第１のスナップショットウィンドウ５１２は、第１のスナップショット５０４の作成前に発生したことが分かっている第１の時点Ａ１および第１のスナップショット５０４の作成後に発生したことが分かっている第２の時点Ｂ１を識別することにより、識別し得る。図４に戻ると、ステップ４０６において、システムは、そのウィンドウ内に発生したボリュームへの少なくとも１つの変更を識別し得る。例えば、変更追跡モジュール１０６は、図５の第１のスナップショットウィンドウ５１２内に変更されたボリュームの各ブロックを識別し得る。本明細書において使用される用語「ブロック」は、ボリューム内のアドレス指定可能な領域の最低レベルを指し得る。さらなる例では、変更追跡モジュール１０６により識別されるブロックは、ウィンドウ内に変更されたボリュームのセクタ、ファイル、ファイルの部分、クラスタ、クラスタの部分、または他の同様のものであり得る。
【００２１】
ステップ４０８において、システムは、４０６において識別された変更に、第１のスナップショットおよび第１のスナップショット後に作成された第２のスナップショットを関連付け得る。例えば、図１の変更追跡モジュール１０６は、図５の第１のスナップショットウィンドウ５１２内に発生したすべての変更を、第１のスナップショット５０４および第２のスナップショット５０６の両方に関連付け得る。特定の例では、スナップショット（第三者スナップショットプロバイダにより提供され得る）はそのような関連付けについて何も知らない場合があるため、そのような関連付けは論理的な関連付けを表し得る。
【００２２】
図４のステップ４０８は、様々な方法で実行し得る。例えば、ステップ４０８は、ステップ４０４において識別されたウィンドウ内で変更されたボリュームの各ブロックへの参照を、第１のスナップショットおよび第２のスナップショットの両方に追加することを含み得る。代替の実施形態では、ステップ４０８は、ステップ４０４において識別されたウィンドウ内に変更されたボリュームの各ブロックへの参照を、第１のスナップショットに関連付けられた第１の変更リストおよび第２のスナップショットに関連付けられた第２の変更リストの両方に追加することを含み得る。
【００２３】
例えば、変更追跡モジュール１０６は、第１のスナップショットウィンドウ５１２内に変更されたボリュームの各ブロックへの参照を、第１のスナップショット５０４に関連付けられた第１の変更リスト５０８および第２のスナップショット５０６に関連付けられた第２の変更リスト５１０の両方に追加し得る。詳細に上述したように、本明細書において使用される語句「変更リスト」は、前回のスナップショット以来、ボリュームに対して行われた変更を識別するリストを指し得る。変更リストは、様々な方法でボリュームへの変更を識別し得る。例えば、変更リストは、変更されたボリューム内のブロックのインデックスの順序つきリストを表し得る。さらなる例では、変更リストは、ボリューム内の各ブロックに１ビットを含むビットマップを表し得る。最初、ビットマップ内のすべてのビットは論理０であり得る。しかし、ブロックへの変更が識別された場合、各変更ブロックに対応するビットを論理１に設定し得る。
【００２４】
したがって、少なくとも１つの実施形態では、変更リスト５０８および５１０は、前回のスナップショット以来、行われたボリューム上のブロックを識別し得る。特定の例では、変更リスト５０８および５１０を使用して、ボリュームの増分バックアップを作成し得る。図４のステップ４０８の完了後、図４の例示的な方法４００は終了し得る。
【００２５】
詳細に上述したように、図５の変更リスト５０８および５１０は、ボリュームの前回のスナップショット以来、ボリュームへの変更を識別し得る。図６は、ボリュームの変更リストを作成するコンピュータにより実施される例示的な方法６００の流れ図である。少なくとも１つの実施形態では、ステップ６０２は、図４のステップ４０８の完了後、開始し得る。図６に示すように、ステップ６０２において、システムは、第１のスナップショットの作成に先行する前のスナップショットの前に発生したことが分かっている時点（すなわち、明らかに前のスナップショットの作成前に発生した時点）を識別し得る。例えば、図１の変更追跡モジュール１０６は、第１のスナップショット５０４の前に作成された、前のスナップショット５０２の前に発生したことが分かっている図５の時点Ａ０を識別し得る。
【００２６】
ステップ６０４において、システムは、時点Ａ０（すなわち、図５の前のスナップショット５０２よりも前に発生したことが分かっている時点）と時点Ｂ１（すなわち、第１のスナップショット５０４の後に発生したことが分かっている時点）との間で変更されたボリュームの各ブロックを識別し得る。
【００２７】
ステップ６０６において、システムは、時点Ａ０と時点Ｂ１との間で変更されたボリュームの各ブロックへの参照、を第１のスナップショット５０４に関連付けられた第１の変更リスト５０８に追加し得る。
【００２８】
ステップ６０８において、システムは、第１のスナップショット５０４の前に発生したことが分かっている第３の時点および第２のスナップショット５０６の後に発生したことが分かっている第４の時点（すなわち、明らかに第２のスナップショット５０６の作成前に発生した時点）を識別し得る。例えば、図１の変更追跡モジュール１０６は、第１のスナップショット５０４の前に発生したことが分かっている第３の時点として時点Ａ１を識別し、図５の第２のスナップショット５０６の後に発生したことが分かっている第４の時点としてＢ２を識別し得る。
【００２９】
ステップ６１０において、システムは、図５の時点Ａ１と時点Ｂ２との間で変更されたボリュームの各ブロックを識別し得る。ステップ６１２において、時点Ａ１と時点Ｂ２との間で変更されたボリュームの各ブロックへの参照を、第２のスナップショット５０６に関連付けられた第２の変更リスト５１０に追加し得る。詳細に上述したように、特定の例では、変更リスト５０８および５１０を使用して、ボリュームの増分スナップショットまたはバックアップを作成し得る。図６のステップ６１２の完了後、例示的な方法６００は終了し得る。
【００３０】
詳細に上述したように、本明細書において説明する例示的なシステムおよび方法は、バックアッププログラムが、第三者スナップショットが作成された厳密な時点を識別できない場合であっても、バックアッププログラムが、第三者スナップショットをサポートできるようにし得る。例えば、本明細書において説明する例示的なシステムおよび方法は、ソフトウェアに基づくバックアッププログラムの開発者が、ハードウェアに基づくスナップショットおよびオフホストスナップショットにより提供される性能恩益を利用するために、ハードウェアに基づくスナップショットプロバイダまたはオフホストスナップショットプロバイダにより提供されるスナップショットを利用しサポートできるようにし得る。
【００３１】
さらに、近代の計算システムの速度により、第三者スナップショットが作成されるウィンドウは非常に短い時間ウィンドウに低減され得る。したがって、このウィンドウ内に変更するボリューム上のブロック数は、比較的小さいであろう。それにも関わらず、前のスナップショット以来、実際に変更されなかったブロックが、増分バックアップに不必要に追加される場合であっても、最新のスナップショット以来、変更されたボリュームの各ブロックはまだバックアップ内に含まれているため、それら追加ブロックは決して、結果として生成されるバックアップの有効性に影響しない。
【００３２】
本明細書において説明する例示的なシステムおよび方法は、様々な方法で利用し得る。例えば、図１の例示的なシステム１００のすべてまたは部分は、ハードウェアに基づくスナップショットを作成可能な、図２の例示的なネットワーク化されたシステム２００等のネットワーク化されたシステムの部分を表し得る。この図に示すように、例示的なシステム２００は、ネットワーク２０４を介してサーバ２０６およびプロキシサーバ２０７と通信するクライアント２０２を備え得る。
【００３３】
クライアント２０２は一般に、コンピュータ可読命令を実行可能な任意の種類または形態のクライアント側計算装置を表し得る。特定の例では、クライアント２０２はボリューム２０３を備え得る。ボリューム２０３は一般に、データおよび／またはコンピュータ可読媒体を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。ボリューム２０３の例としては、物理ボリューム、論理ボリューム、および仮想ボリュームが挙げられるが、これらに限定されない。特定の実施形態では、クライアント２０２は、図１の例示的なシステム１００の１つまたは複数の部分を備え得る。例えば、図１のモジュール１０２のうちの１つまたは複数は、クライアント２０２に記憶し得、クライアント２０２で実行されるように構成され得る。同様に、図１のモジュール１２０のうちの１つまたは複数は、図２のクライアント２０２の部分を表し得る。
【００３４】
少なくとも１つの実施形態では、クライアント２０２は、ネットワーク２０４を介してサーバ２０６およびプロキシサーバ２０７と通信し得る。ネットワーク２０４は一般に、例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、またはインターネットを含む任意の種類または形態の通信ネットワークまたは計算ネットワークを表す。
【００３５】
サーバ２０６は一般に、任意の種類または形態のサーバ側計算装置を表す。特定の実施形態では、サーバ２０６は、クライアント２０２のボリューム２０３のハードウェアスナップショットを作成し記憶するように構成されたＳＡＮ装置を表し得る。特定の実施形態では、サーバ２０６は、図１の例示的なシステム１００の１つまたは複数の部分を備え得る。例えば、図１のモジュール１０２のうちの１つまたは複数をサーバ２０６に記憶し、サーバ２０６で実行されるように構成し得る。同様に、サーバ２０６は、図１のデータベース１２０のうちの１つまたは複数を備え得る。
【００３６】
プロキシサーバ２０７は一般に、任意の種類または形態のサーバ側計算装置を表す。特定の実施形態では、プロキシサーバ２０７は、サーバ２０６により作成され、サーバ２０６に記憶されているボリューム２０３のハードウェアスナップショットにアクセスし得る。この例では、プロキシサーバ２０７は、サーバ２０６により提供されるボリューム２０３のハードウェアスナップショットに基づいて、ボリューム２０３のバックアップを作成し得る。
【００３７】
図２に示すように、例示的なシステム２００は、１つまたは複数の記憶装置２０８（１）〜（Ｎ）も備え得る。記憶装置２０８（１）〜（Ｎ）は一般に、データおよび／または他のコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。特定の実施形態では、記憶装置（１）〜（Ｎ）は、クライアント２０２のボリューム２０３等の計算システムのボリュームのスナップショットまたはバックアップを記憶し得る。
【００３８】
上述したように、本明細書において説明する例示的なシステムおよび方法は、ソフトウェアに基づくバックアッププログラムが、ハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。例えば、図４の例示的な方法４００を参照すると、図４のステップ４０２において、図１のスナップショット識別モジュール１０４は、図２のボリューム２０３の第１のハードウェアスナップショットを識別し得る。特定の実施形態では、ボリューム２０３のこの第１のハードウェアスナップショットは、記憶装置２０８（１）〜（Ｎ）に記憶し得る。
【００３９】
図４のステップ４０４において、図１の変更追跡モジュール１０６は、ボリューム２０３の第１のハードウェアスナップショット（ステップ４０２において識別された）が作成されたウィンドウを識別し得る。例えば、変更追跡モジュール１０６は、ステップ４０２において識別された第１のハードウェアスナップショットが作成される前に発生したことが分かっている第１の時点（すなわち、明らかに第１のハードウェアスナップショットの作成前に発生した時点）および第１のハードウェアスナップショットが作成された後に発生したことが分かっている第２の時点（すなわち、明らかに第１のハードウェアスナップショットの作成後に発生した時点）を識別し得る。
【００４０】
図４のステップ４０６において、図１の変更追跡モジュール１０６は、ステップ４０４において識別されたウィンドウ内に変更されたボリューム２０３の各ブロックを識別することにより、図２のボリューム２０３への少なくとも１つの変更を識別し得る。ステップ４０８において、図１の変更追跡モジュール１０６は、ウィンドウ内に変更された図２のボリューム２０３の各ブロックへの参照を、第１のハードウェアスナップショットに関連付けられた第１の変更リストおよび第１のハードウェアスナップショット後に作成された第２のハードウェアスナップショットに関連付けられた第２の変更リストに追加し得る。少なくとも１つの例では、図１のバックアップ作成モジュール１０８は、これら第１および第２の変更リストを使用して、ボリューム２０３の増分バックアップを作成し得る。
【００４１】
さらなる例では、図１の例示的なシステム１００のすべてまたは部分は、オフホストスナップショットを作成可能な、図３の例示的な仮想環境３００等の仮想環境の部分を表し得る。この図に示すように、仮想環境３００は、仮想マシンサーバ３０２、仮想マシンクライアント３０４、ＳＡＮファブリック３０６、記憶装置３０８、およびプロキシサーバ３１０を含み得る。仮想マシンサーバ３０２は一般に、仮想マシンクライアント３０４等の１つまたは複数の仮想マシンクライアントを提供可能であるか、またはそのようなクライアントへのアクセスを提供可能な任意の種類または形態の装置を表す。特定の実施形態では、仮想マシンサーバ３０２は、プロセッサ、メモリ、記憶装置、およびネットワーク化されたリソースを抽象化することにより、複数の仮想マシンに分割された単一のサーバを表し得る。仮想マシンサーバ３０２の例としては、ＶＭＷＡＲＥ  ＥＳＸ、ＭＩＣＲＯＳＯＦＴ  ＨＹＰＥＲＶ、またはこれらと同様のものが挙げられるが、これらに限定されない。
【００４２】
図３に示すように、仮想マシンサーバ３０２は、少なくとも１つの仮想マシンクライアント３０４を備え得る。仮想マシンクライアント３０４は一般に、任意の種類または形態の仮想マシン環境を表す。特定の実施形態では、仮想マシンクライアント３０４は仮想ボリューム３０５を備え得る。ボリューム３０５は一般に、データおよび／またはコンピュータ可読命令を記憶する任意の種類または形態の仮想記憶装置を表す。仮想ボリューム３０５の例としては、論理ボリュームおよび仮想ボリュームが挙げられるが、これらに限定されない。
【００４３】
図３に示すように、仮想マシンサーバ３０２は、ＳＡＮファブリック３０６と通信し得る。ＳＡＮファブリック３０６は一般に、複数の記憶装置間の通信に役立つことが可能な任意の種類または形態のコンピュータネットワークまたはアーキテクチャを表す。図３に示す例では、ＳＡＮファブリック３０６は、仮想マシンサーバ３０２、記憶装置３０８、および／またはプロキシサーバ３１０の間の通信に役立ち得る。一例では、ＳＡＮファブリック３０６は、仮想マシンサーバ３０２およびプロキシサーバ３１０が記憶装置３０８をマウントしアクセスできるようにし得る。
【００４４】
図２の記憶装置２０８（１）〜（Ｎ）と同様に、記憶装置３０８は一般に、データおよび／またはコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。一例では、記憶装置３０８は、仮想マシンクライアント３０４の仮想ボリューム３０５を記憶し得る。図３のプロキシサーバ３１０は一般に、仮想マシンサーバ３０２により記憶装置３０８に保持されるスナップショットにアクセス可能な任意の種類または形態のプロキシサーバを表す。プロキシサーバ３１０の例としては、ＶＭＷＡＲＥのＶＩＲＴＵＡＬ  ＣＯＮＳＯＬＩＤＡＴＥＤ  ＢＡＣＫＵＰ（ＶＣＢ）が挙げられるが、これに限定されない。
【００４５】
特定の実施形態では、図１からのモジュール１０２のうちの１つまたは複数は、仮想環境３００の１つまたは複数の部分に記憶され、それ（ら）で実行されるように構成され得る。例えば、モジュール１０２のうちの１つまたは複数は、仮想マシンサーバ３０２、仮想マシンクライアント３０４、記憶装置３０８、および／またはプロキシサーバ３１０に記憶され、それ（ら）で実行されるように構成され得る。同様に、仮想マシンサーバ３０２、仮想マシンクライアント３０４、仮想ボリューム３０５、記憶装置３０８、および／またはプロキシサーバ３１０は、図１のデータベース１２０のうちの１つまたは複数を備え得る。
【００４６】
この例（および潜在的に図２に示す例）では、モジュール１０２は、ソフトウェアに基づくバックアッププログラムがオフホスト増分バックアップ（すなわち、バックアップされる機構上のボリュームに作成されたスナップショットを介してバックアップされるものと異なり、バックアップを実行中の機構にアクセス可能な計算システムで作成されたバックアップ）をサポートできるようにし得る。例えば、図４の例示的な方法４００を参照すると、ステップ４０２において、図１のスナップショット識別モジュール１０４は、記憶装置３０８に記憶されている図３の仮想マシンクライアント３０４の仮想ボリューム３０５の第１のオフホストスナップショットを識別し得る。
【００４７】
ステップ４０４において、図１の変更追跡モジュール１０６は、仮想マシンクライアント３０４の仮想ボリューム３０５の第１のオフホストスナップショット（ステップ４０２において識別される）が作成されたウィンドウを識別し得る。例えば、変更追跡モジュール１０６は、ステップ４０２において識別された第１のオフホストスナップショットが作成される前に発生したことが分かっている第１の時点（すなわち、明らかに第１のオフホストスナップショットの作成前に発生した時点）および第１のオフホストスナップショットが作成された後に発生したことが分かっている時点（すなわち、明らかに第１のオフホストスナップショットの作成後に発生した時点）を識別し得る。
【００４８】
このウィンドウは様々な方法で識別し得る。例えば、変更追跡モジュール１０６は、当分野で既知のように、仮想マシンクライアント３０４上のドライバスタック内の通信を監視し、かつ／または仮想マシンクライアント３０４により利用されるスナップショット前後のスクリプトを利用して、データを無活動状態にすることにより、このウィンドウを識別し得る。
【００４９】
ステップ４０６において、図１の変更追跡モジュール１０６は、ステップ４０４において識別されたウィンドウ内に発生した図３の仮想マシンクライアント３０４の仮想ボリューム３０５への各変更を識別し得る。ステップ４０８において、図１の変更追跡モジュール１０６は、ウィンドウ内の仮想マシンクライアント３０４の仮想ボリューム３０５に発生した各変更への参照を、第１のオフホストスナップショットに関連付けられた第１の変更リストおよび第１のオフホストスナップショット後に作成された第２のスナップショットに関連付けられた第２の変更リストの両方に追加し得る。特定の実施形態では、これらリストは、仮想マシンクライアント３０４により利用されるスナップショット前後のスクリプトを使用して、プロキシサーバ３１０に送信し得る。少なくとも１つの例では、図１のバックアップ作成モジュール１０８は、これら第１および第２の変更リストを使用して、仮想マシンクライアント３０４の仮想ボリューム３０５の増分バックアップを作成し得る。
【００５０】
図７は、本明細書において説明され、かつ／または示される実施形態のうちの１つまたは複数を実施可能な例示的な計算システム７１０のブロック図である。計算システム７１０は一般に、コンピュータ可読命令を実行可能な任意のシングルプロセッサまたはマルチプロセッサの計算装置または計算システムを広く表す。計算システム７１０の例としては、ワークステーション、ラップトップ、クライアント側端末、分散計算システム、ハンドヘルド装置、または他の任意の計算システムもしくは装置が挙げられるが、これらに限定されない。その最も基本的な構成では、計算システム７１０は、少なくとも１つのプロセッサ７１４およびシステムメモリ７１６を備え得る。
【００５１】
プロセッサ７１４は一般に、データを処理可能であるか、または命令を解釈し実行することが可能な任意の種類または形態の処理ユニットを表す。特定の実施形態では、プロセッサ７１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信し得る。これら命令は、プロセッサ７１４に、本明細書において説明され、かつ／または示される例示的な実施形態のうちの１つまたは複数の機能を実行させ得る。例えば、プロセッサ７１４は、単独で、または他の要素と組み合わせて、本明細書において説明する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの１つまたは複数を実行し得、かつ／または実行する手段であり得る。プロセッサ７１４は、本明細書において説明され、かつ／または示される他の任意のステップ、方法、またはプロセスも実行し得、かつ／または実行する手段でもあり得る。
【００５２】
システムメモリ７１６は一般に、データおよび／または他のコンピュータ可読命令を記憶可能な任意の種類または形態の揮発性または不揮発性の記憶装置または記憶媒体を表す。システムメモリ７１６の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、または他の任意の適したメモリ装置が挙げられるが、これらに限定されない。必要なわけではないが、特定の実施形態では、計算システム７１０は、揮発性メモリユニット（例えば、システムメモリ７１６等）および不揮発性記憶装置（例えば、詳細に後述するような一次記憶装置７３２等）の両方を備え得る。
【００５３】
特定の実施形態では、例示的な計算システム７１０は、プロセッサ７１４およびシステムメモリ７１６に加えて、１つまたは複数の構成要素または要素も備え得る。例えば、図７に示すように、計算システム７１０は、メモリコントローラ７１８、入出力（Ｉ／Ｏ）コントローラ７２０、および通信インタフェース７２２を備え得、これらのそれぞれは通信基盤７１２を介して相互接続し得る。通信基盤７１２は一般に、計算装置の１つまたは複数の構成要素間の通信に役立つことが可能な任意の種類または形態の基盤を表す。通信基盤７１２の例としては、通信バス（ＩＳＡ、ＰＣＩ、ＰＣＩｅ、または同様のバス等）およびネットワークが挙げられるが、これらに限定されない。
【００５４】
メモリコントローラ７１８は一般に、メモリまたはデータを処理可能であるか、または計算システム７１０の１つまたは複数の構成要素間の通信に役立つことが可能な任意の種類または形態の装置を表す。例えば、特定の実施形態では、メモリコントローラ７１８は、通信基盤７１２を介するプロセッサ７１４、システムメモリ７１６、およびＩ／Ｏコントローラ７２０間の通信を制御し得る。特定の実施形態では、メモリコントローラ７１８は、単独で、または他の要素と組み合わせて、識別すること、関連付けること、追加すること、および／または作成すること等の本明細書において説明され、かつ／または示されるステップまたは特徴のうちの１つまたは複数を実行し得、かつ／または実行する手段であり得る。
【００５５】
Ｉ／Ｏコントローラは一般に、計算装置の入出力機能を調整し、かつ／または制御することが可能な任意の種類または形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ７２０は、プロセッサ７１４、システムメモリ７１６、通信インタフェース７２２、ディスプレイアダプタ７２６、入力インタフェース７３０、およびストレージインタフェース７３４等の計算システム７１０の１つまたは複数の要素間でのデータの転送を制御し得るか、または転送に役立ち得る。Ｉ／Ｏコントローラ７２０は、例えば、本明細書において説明する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップを実行するため、または実行する手段として使用し得る。Ｉ／Ｏコントローラ７２０は、本開示に記載される他のステップおよび特徴を実行するため、かつ／または実行する手段としても使用し得る。
【００５６】
通信インタフェース７２２は、例示的な計算システム７１０と１つまたは複数の追加の装置との間の通信に役立つことが可能な任意の種類または形態の通信装置またはアダプタを広く表す。例えば、特定の実施形態では、通信インタフェース７２２は、計算システム７１０と追加の計算システムを含む私設または公衆ネットワークとの間の通信に役立ち得る。通信インタフェース７２２の例としては、有線ネットワークインタフェース（ネットワークインタフェースカード等）、無線ネットワークインタフェース（無線ネットワークインタフェースカード等）、モデム、および他の任意の適したインタフェースが挙げられるが、これらに限定されない。少なくとも１つの実施形態では、通信インタフェース７２２は、インターネット等のネットワークへの直接リンクを介して遠隔サーバへの直接接続を提供し得る。通信インタフェース７２２は、例えば、ローカルエリアネットワーク（イーサネットネットワークまたは無線ＩＥＥＥ８０２．１１ネットワーク等）、パーソナルエリアネットワーク（ＢＬＵＥＴＯＯＴＨまたはＩＥＥＥ８０２．１５ネットワーク等）、電話回線網、ケーブル回線網、セルラ電話接続、衛星データ接続、または他の任意の適した接続を通して、そのような接続を間接的にも提供し得る。
【００５７】
特定の実施形態では、通信インタフェース７２２は、外部バスまたは通信チャネルを介しての計算システム７１０と１つまたは複数の追加のネットワークまたは記憶装置との間の通信に役立つように構成されたホストアダプタも表し得る。ホストアダプタの例としては、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡアダプタ、およびｅＳＡＴＡホストアダプタ、ＡＴＡおよびＰＡＴＡホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネットアダプタ、またはこれらと同様のものが挙げられるが、これらに限定されない。通信インタフェース７２２は、計算システム７１０が分散計算または遠隔計算を行えるようにもし得る。例えば、通信インタフェース７２２は、遠隔装置から命令を受信し、または実行のための命令を遠隔装置に送信し得る。特定の実施形態では、通信インタフェース７２２は、単独で、または他の要素と組み合わせて、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの１つまたは複数を実行し得、かつ／または実行する手段であり得る。通信インタフェース７２２は、本開示に記載する他のステップおよび特徴を実行するため、かつ／または実行する手段としても使用し得る。
【００５８】
図７に示すように、計算システム７１０は、ディスプレイアダプタ７２６を介して通信基盤７１２に結合された少なくとも１つの表示装置７２４も備え得る。表示装置７２４は一般に、ディスプレイアダプタ７２６により転送される情報を視覚的に表示可能な任意の種類または形態の装置を表す。同様に、ディスプレイアダプタ７２６は一般に、通信基盤７１２から（または当分野において既知のように、フレームバッファから）表示装置７２４に表示するためのグラフィックス、テキスト、および他のデータに転送する任意の種類または形態の装置を表す。
【００５９】
図７に示すように、例示的な計算システム７１０は、入力インタフェース７３０を介して通信基盤７１２に結合された少なくとも１つの入力装置７２８も備え得る。入力装置７２８は一般に、コンピュータまたは人間により生成された入力を例示的な計算システム７１０に提供可能な任意の種類または形態の入力装置を表す。入力装置７２８の例としては、キーボード、ポインティングデバイス、音声認識装置、または他の任意の適した入力装置が挙げられるが、これらに限定されない。少なくとも１つの実施形態では、入力装置７２８は、単独で、または他の要素と組み合わせて、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの１つまたは複数を実行し得、かつ／または実行する手段であり得る。入力装置７２８は、本開示に記載する他のステップおよび特徴を実行するため、かつ／または実行する手段としても使用し得る。
【００６０】
図７に示すように、例示的な計算システム７１０は、ストレージインタフェース７３４を介して通信基盤７１２に結合された一次記憶装置７３２およびバックアップ記憶装置７３３も備え得る。記憶装置７３２および７３３は一般に、データおよび／またはコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。例えば、記憶装置７３２および７３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、またはこれらと同様のものであり得る。ストレージインタフェース７３４は一般に、記憶装置７３２および７３３と計算システム７１０の他の構成要素との間でデータを転送する任意の種類または形態のインタフェースまたは装置を表す。
【００６１】
特定の実施形態では、記憶装置７３２および７３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されたリムーバブル記憶ユニットに対して書き込みおよび／または読み取りを行うように構成され得る。適したリムーバブル記憶ユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、またはこれらと同様のものが挙げられるが、これらに限定されない。記憶装置７３２および７３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム７１０にロードできるようにする他の同様の構造または装置も備え得る。例えば、記憶装置７３２および７３３は、ソフトウェア、データ、または他のコンピュータ可読情報を読み書きするように構成され得る。記憶装置７３２および７３３は、計算システム７１０の部分であってもよく、または他のインタフェースシステムを通してアクセスされる別個の装置であってもよい。
【００６２】
記憶装置７３２および７３３は、単独で、または他の要素と組み合わせて、例えば、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの１つまたは複数を実行するため、かつ／または実行する手段としても使用し得る。記憶装置７３２および７３３は、本開示に記載する他のステップおよび特徴を実行するため、かつ／または実行する手段としても使用し得る。
【００６３】
多くの他の装置またはサブシステムを計算システム７１０に接続し得る。逆に、本明細書において説明され、かつ／または示される実施形態を実施するために、図７に示す構成要素および装置のすべてが存在する必要があるわけではない。上で参照される装置およびサブシステムは、図７に示す方法と異なる方法で相互接続してもよい。計算システム７１０は、任意の数のソフトウェア構成、ファームウェア構成、および／またはハードウェア構成を利用してもよい。例えば、本明細書において開示する例示的な実施形態のうちの１つまたは複数は、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ばれる）としてコンピュータ可読媒体に符号化し得る。語句「コンピュータ可読媒体」は一般に、コンピュータ可読命令を記憶または搬送することが可能な任意の形態または装置、キャリア、または媒体を指す。コンピュータ可読媒体の例としては、搬送波等の伝送型媒体ならびに磁気記憶媒体（例えば、ハードディスクドライブおよびフロッピーディスク）、光学記憶媒体（例えば、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、電子記憶媒体（例えば、固体状態ドライブおよびフラッシュメディア）、および他の分散システム等の物理的媒体が挙げられるが、これらに限定されない。
【００６４】
コンピュータプログラムを含むコンピュータ可読媒体を計算システム７１０にロードし得る。次に、コンピュータ可読媒体に記憶されているコンピュータプログラムのすべてまたは部分をシステムメモリ７１６ならびに／あるいは記憶装置７３２および７３３の様々な部分に記憶し得る。プロセッサ７１４により実行されると、計算システム７１０にロードされたコンピュータプログラムは、プロセッサ７１４に、本明細書において説明され、かつ／または示される例示的な実施形態のうちの１つまたは複数の機能を実行させ得、かつ／または実行する手段であり得る。追加または代替として、本明細書において説明され、かつ／または示される例示的な実施形態のうちの１つまたは複数をファームウェアおよび／またはハードウェアで実施してもよい。例えば、計算システム７１０は、本明細書において開示する例示的な実施形態のうちの１つまたは複数を実施するように構成された特定用途向け集積回路（ＡＳＩＣ）として構成し得る。
【００６５】
詳細に上述したように、計算システム７１０は、単独で、または他の要素と組み合わせて、本明細書において説明され、かつ／または示される例示的な方法のステップのうちの１つまたは複数を実行し得、かつ／または実行する手段であり得る。例えば、ボリュームに対して行われた変更を追跡するコンピュータにより実施される方法は、ボリュームの第１のスナップショットを識別することを含み得る。第１のスナップショットは、ソフトウェアスナップショットおよび／またはハードウェアスナップショットを含み得る。この方法は、第１のスナップショットが作成されたウィンドウを識別することも含み得る。このウィンドウは、第１のスナップショット前に発生したことが分かっている第１の時点で始まり、第１のスナップショット後に発生したことが分かっている第２の時点で終わり得る。
【００６６】
この方法は、ウィンドウ内に発生したボリュームへの少なくとも１つの変更を識別すること、およびウィンドウ内に発生したそのような変更に第１のスナップショットおよび第２のスナップショットの両方を関連付けることをさらに含み得る。第２のスナップショットは、第１のスナップショットの後に作成し得る。特定の実施形態では、ボリュームへの少なくとも１つの変更を識別することは、ウィンドウ内に変更されたボリュームの各ブロックを識別することを含み得る。
【００６７】
特定の実施形態では、この方法は、１）第１のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別すること、２）前のスナップショット前に発生したことが分かっている時点と第２の時点との間で変更したボリュームの各ブロックを識別すること、次に、３）前のスナップショット前に発生したことが分かっている時点と第２の時点との間で変更されたボリュームの各ブロックへの参照を、第１のスナップショットに関連付けられた第１のリストに追加することをさらに含み得る。次に、前のスナップショットを使用して、ボリュームの完全バックアップを作成し得る。同様に、第１のリストを使用して、ボリュームの第１の増分バックアップを作成し得る。
【００６８】
いくつかの実施形態では、方法は、第２のスナップショット後に発生したことが分かっている第３の時点を識別すること、および第１の時点と第３の時点との間で変更されたボリュームの各ブロックを識別することをさらに含み得る。次に、第１の時点と第３の時点との間で変更されたボリュームの各ブロックへの参照を、第２のスナップショットに関連付けられた第２のリストに追加し得る。変更されたブロックへの参照を対応するリストに追加する上記プロセスは、第１および第２のリストを作成することを含み得る。
【００６９】
少なくとも１つの実施形態では、ウィンドウ内に発生した少なくとも１つの変更を第１および第２のスナップショットの両方に関連付けるに当たり、方法は、ウィンドウ内で変更されたボリュームの各ブロックへの参照を第１および第２のリストの両方に追加することを含み得る。他の実施形態では、第１のリストを使用して、ボリュームの第１の増分バックアップを作成し得る。同様に、第２のリストを使用して、ボリュームの第２の増分バックアップを作成し得る。
【００７０】
さらなる実施形態では、ネットワーク化された環境内でボリュームへの変更を追跡するシステムは、少なくとも１つのボリュームを備える少なくとも１つのクライアントを備え得る。サーバはクライアントと通信し得る。サーバは、ボリュームの第１のスナップショットが作成されたウィンドウを識別するように構成された変更追跡モジュールも備え得る。このウィンドウは、第１のスナップショット前に発生したことが分かっている第１の時点で始まり、第１のスナップショット後に発生したことが分かっている第２の時点で終わり得る。
【００７１】
変更追跡モジュールは、ウィンドウ内に発生したボリュームへの少なくとも１つの変更を識別し、ウィンドウ内に発生した少なくとも１つの変更を第１のスナップショットおよび第２のスナップショットの両方に関連付けるようにも構成され得る。第２のスナップショットは、第１のスナップショット後に作成し得る。
【００７２】
いくつかの実施形態では、変更追跡モジュールは、第１のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するように構成され得る。変更追跡モジュールは、前のスナップショット前に発生したことが分かっている時点と第２の時点との間で変更されたボリュームの各ブロックを識別するようにも構成され得る。特定の実施形態では、変更追跡モジュールは、前のスナップショット前に発生したことが分かっている時点と第２の時点との間で変更されたボリュームの各ブロックへの参照を第１のリストに追加するようにさらに構成され得る。第１のリストは、第１のスナップショットに関連付けられ得る。
【００７３】
他の実施形態では、変更追跡モジュールは、第２のスナップショット後に発生したことが分かっている第３の時点を識別するように構成され得る。変更追跡モジュールは、第１の時点と第３の時点との間で変更されたモジュールの各ブロックを識別するようにさらに構成され得る。第１の時点と第３の時点との間で変更されたボリュームの各ブロックへの参照を第２のリストに追加し得る。第２のリストを第２のスナップショットに関連付け得る。変更追跡モジュールは、ウィンドウ内に発生した少なくとも１つの変更を第１および第２のスナップショットの両方に関連付け得る。上記関連付けは、ウィンドウ内に変更されたボリュームの各ブロックへの参照を第１および第２のリストの両方に追加することを含み得る。
【００７４】
様々な実施形態では、変更追跡モジュールはバックアップ作成モジュールを備え得る。バックアップ作成モジュールは、前のスナップショットを使用してボリュームの完全バックアップを作成するように構成され得る。バックアップ作成モジュールは、第１のリストおよび／または第１のスナップショットを使用して、ボリュームの第１の増分バックアップを作成するようにも構成され得る。
【００７５】
さらなる実施形態では、仮想環境内でボリュームへの変更を追跡するシステムは、少なくとも１つの仮想マシンクライアントを備える仮想マシンサーバを備え得る。このシステムは、仮想マシンサーバと通信するストレージエリアネットワークも備え得る。さらに、システムは、仮想マシンクライアントの第１のスナップショットが作成されたウィンドウを識別するように構成された変更追跡モジュールを備え得る。上記ウィンドウは、第１のスナップショット前に発生したことが分かっている第１の時点で始まり、第１のスナップショット後に発生したことが分かっている第２の時点で終わり得る。
【００７６】
変更追跡モジュールは、ウィンドウ内に発生した仮想マシンクライアントへの少なくとも１つの変更を識別し、少なくとも１つの変更を第１および第２のスナップショットを関連付けるようにさらに構成され得る。第２のスナップショットは、第１のスナップショット後に作成し得る。
【００７７】
少なくとも１つの実施形態では、変更追跡モジュールは、１）第１のスナップショットに先行する前のスナップショット前に発生した時点を識別し、２）前のスナップショット前に発生したことが分かっている時点と第２の時点との間で発生した仮想マシンクライアントへの各変更を識別し、３）上記変更への参照を第１のスナップショットに関連付けられた第１のリストに追加するようにさらに構成され得る。
【００７８】
特定の実施形態では、変更追跡モジュールは、記憶装置ネットワークと通信するプロキシサーバを備え得る。記憶装置ネットワークと通信するプロキシサーバは、バックアップ作成モジュールをさらに備え得る。バックアップ作成モジュールは、前のスナップショットを使用して仮想マシンクライアントの完全バックアップを作成するように構成され得る。バックアップ作成モジュールは、第１のリストを使用して、仮想マシンクライアントの第１の増分バックアップを作成するようにさらに構成され得る。
【００７９】
いくつかの実施形態では、変更追跡モジュールは、第２のスナップショット後に発生したことが分かっている第３の時点を識別するように構成され得る。変更追跡モジュールは、第１の時点と第３の時点との間で発生した仮想マシンクライアントへの各変更を識別するようにも構成され得る。第１の時点と第３の時点との間で発生した仮想マシンクライアントへの各変更への参照を、第２のスナップショットに関連付けられた第２のリストに追加し得る。さらに、変更追跡モジュールは、ウィンドウ内に発生した少なくとも１つの変更を第１および第２のスナップショットの両方を関連付け得る。上記関連付けは、仮想マシンクライアントにウィンドウ内に発生した各変更への参照を、第１および第２のリストの両方に追加することを含み得る。
【００８０】
上記開示に、特定のブロック図、タイミング図、フローチャート、および例を使用して様々な実施形態を説明したが、本明細書において説明され、かつ／または図示される各図の構成要素、フローチャートのステップ、動作、および／または構成要素は、独立して、かつ／または集合的に、広範囲のハードウェア構成、ソフトウェア構成、またはファームウェア構成（またはこれらの任意の組み合わせ）を使用して実施し得る。さらに、他の構成要素内に含まれる構成要素のいかなる開示も、同じ機能を達成するために、他の多くの構造を実施可能なため、例示的な性質のものであるとみなされるべきである。
【００８１】
本明細書において説明され、かつ／または図示されるプロセスパラメータおよびステップシーケンスは、単なる例として与えられ、必要に応じて変更が可能である。例えば、本明細書において図示され、かつ／または説明されるステップは、特定の順序で図示または説明され得るが、これらのステップは、必ずしも図示または説明された順序で実行される必要はない。本明細書において説明され、かつ／または図示される例示的な様々な方法は、本明細書において説明されるか、もしくは図示されるステップのうちの１つもしくは複数を省いてもよく、または開示されるステップに加えて他のステップを含んでもよい。
【００８２】
さらに、様々な実施形態を完全に機能する計算システムの文脈の中で本明細書において説明し、かつ／または図示したが、配布を実際に実行するために使用されるコンピュータ可読媒体の特定の種類に関係なく、これら例示的な実施形態のうちの１つまたは複数を様々な形態のプログラム製品として配布してもよい。本明細書に開示される実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実施してもよい。これらソフトウェアモジュールは、コンピュータ可読記憶媒体または計算システムに記憶可能なスクリプト、バッチ、または他の実行可能ファイルを含み得る。いくつかの実施形態では、これらソフトウェアモジュールは、本明細書において開示された例示的な実施形態のうちの１つまたは複数を実行するように、計算システムを構成し得る。
【００８３】
上記説明は、当業者が、本明細書において開示した例示的な実施形態の様々な態様を最良に利用できるようにするために提供された。この例示的な説明は、網羅的であることを意図しない。すなわち、開示されるいかなる厳密な形態にも限定されないことを意図する。多くの変更および変形が、本開示の主旨および範囲から逸脱せずに可能である。本明細書において開示する実施形態は、すべての点で限定ではなく例示として考えられるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照されたい。
【００８４】
別段に記される場合を除き、本明細書および特許請求の範囲において使用される場合、用語「ａ」または「ａｎ」は、「少なくとも１つの」を意味するものと解釈されるべきである。さらに、使いやすさのために、単語「含む」および「有する」は、本明細書および特許請求の範囲において使用される場合、単語「備える」と同義であり、同じ意味を有する。
【図１】
0005547727.tif 000002
【図２】
0005547727.tif 000003
【図３】
0005547727.tif 000004
【図４】
0005547727.tif 000005
【図５】
0005547727.tif 000006
【図６】
0005547727.tif 000007
【図７】
0005547727.tif 000008