説明

ボリュームへの変更を追跡するシステムおよび方法

ボリュームへの変更を追跡するコンピュータにより実施される方法が開示される。この方法は、1)ボリュームの第1のスナップショットを識別するステップ、2)第1のスナップショットが作成されたウィンドウを識別するステップであって、ウィンドウは、第1のスナップショット前に発生したことが分かっている第1の時点で始まり、前記第1のスナップショット後に発生したことが分かっている第2の時点で終わるステップと、3)ウィンドウ内に発生したボリュームへの少なくとも1つの変更を識別するステップと、4)ウィンドウ内で発生した少なくとも1つの変更を、第1のスナップショットおよび第1のスナップショット後に作成された第2のスナップショットの両方に関連付けるステップとを含み得る。対応するシステムおよびコンピュータ可読媒体も開示される。

【発明の詳細な説明】
【技術分野】
【0001】
データをバックアップするいくつかの従来の方法は、計算システムの1つまたは複数のボリュームのスナップショットに基づいてバックアップを作成することを含み得る。例えば、従来のボリュームに基づくバックアッププログラムは、ボリュームの初期スナップショットに基づいてボリュームの基本(または完全)バックアップを作成し得る。ボリュームのブロックが変更された場合、従来のボリュームに基づくバックアッププログラムは、1)新しいスナップショットをとり、2)最後のスナップショットから変更されたボリュームの各ブロック(例えば、各セクタまたは各クラスタ)を識別し、次に、3)変更された各ブロックを取り込むことにより、(追加の完全バックアップとは対照的に)ボリュームの増分バックアップを作成し得る。
【背景技術】
【0002】
状況によっては、バックアッププログラムの開発者は、第三者スナップショットプロバイダにより提供される特定の機能または利点を利用するために、プログラムを1つまたは複数の第三者スナップショットプロバイダと統合したい場合がある。例えば、ソフトウェアに基づくバックアッププログラムの開発者は、ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットにより提供される性能恩益を利用するために、ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットプロバイダにより提供されるスナップショットを利用しサポートしたい場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
不都合なことに、従来のバックアッププログラムは、通常、第三者スナップショットが作成される厳密な時点を識別できないため、第三者スナップショットを利用する、または完全にサポートすることができない場合がある。例えば、多くの第三者スナップショットプロバイダ(ハードウェアに基づくスナップショットプロバイダおよびオフホストスナップショットプロバイダ)は、前のスナップショットの作成から変更されたボリュームのブロックを追跡または識別しないため、従来のバックアッププログラムは通常、第三者スナップショットから増分バックアップを作成することができない。したがって、従来のボリュームに基づくバックアッププログラムは、第三者スナップショットプロバイダにより提供されるスナップショットからの完全バックアップ(増分バックアップとは対照的に)の作成しか利用しサポートすることができない場合がある。
【課題を解決するための手段】
【0004】
より詳細に後述するように、本開示は、一般的には、ボリュームへの変更を追跡するシステムおよび方法に関する。一例では、そのようなシステムおよび方法は、バックアッププログラムが第三者スナップショットプロバイダにより作成されたスナップショットをサポートできるようにし得る。例えば、さらに詳細に後述するように、本開示は、ソフトウェアに基づくバックアッププログラムがハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。
【0005】
一例では、ボリュームへの変更を追跡する方法は、1)(例えば、第三者スナップショットプログラムにより作成された)ボリュームの第1のスナップショットを識別すること、2)第1のスナップショットが作成されたウィンドウを識別すること、3)ウィンドウ内に変更されたボリュームの各ブロックを識別すること、次に4)ウィンドウ内に変更されたボリュームの各ブロックへの参照を、第1のスナップショットに関連付けられた第1のリストおよび第1のスナップショットの後に作成された第2のスナップショットに関連付けられた第2のリストの両方に追加することを含み得る。
【0006】
一例では、ウィンドウは、第1のスナップショットが作成される前に発生したことが分かっている第1の時点(すなわち、明らかに第1のスナップショットの作成前に発生した時点)から始まり、第1のスナップショットが作成された後に発生したことが分かっている第2の時点(すなわち、明らかに第1のスナップショットの作成後に発生した時点)で終わり得る。ウィンドウの開始前に発生したブロック変更への参照は、第1のスナップショットに関連付けられた第1のリストに追加し得る一方で、ウィンドウの終了後に発生したブロック変更への参照は、第2のスナップショットに関連付けられた第2のリストに追加し得る。特定の例では、第1および第2のスナップショットに関連付けられた第1および第2のリストを使用して、ボリュームの完全バックアップまたは増分バックアップを作成し得る。
【0007】
上述した方法に対応するシステムおよびコンピュータ可読媒体も開示される。上記実施形態のうちの任意の実施形態からの特徴は、本明細書において説明される一般原理に従って互いに組み合わせて使用し得る。これらおよび他の実施形態、特徴、および利点が、添付の図面および特許請求の範囲と併せて以下の詳細な説明を読むことにより、より十分に理解される。
【0008】
添付図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と併せて、これら図面は、本開示の様々な原理を実証し説明する。
【図面の簡単な説明】
【0009】
【図1】少なくとも1つの実施形態によるボリュームへの変更を追跡する例示的なシステムのブロック図である。
【図2】少なくとも1つの実施形態によるボリュームへの変更を追跡する例示的なネットワーク化された環境のブロック図である。
【図3】さらなる実施形態によるボリュームへの変更を追跡する例示的な仮想環境のブロック図である。
【図4】少なくとも1つの実施形態によるボリュームへの変更を追跡するコンピュータにより実施される例示的な方法の流れ図である。
【図5】一実施形態によるボリュームへの変更を追跡する例示的なタイミング図である。
【図6】少なくとも1つの実施形態によるボリュームに対して行われた変更を識別する、スナップショットのリストを作成するコンピュータにより実施される例示的な方法の流れ図である。
【図7】本明細書において説明し、かつ/または示される実施形態のうちの1つまたは複数を実施可能な例示的な計算システムのブロック図である。
【発明を実施するための形態】
【0010】
図面全体を通して、同一の参照文字および説明は、同様であるが必ずしも同一である必要はない要素を示す。本明細書において説明される例示的な実施形態には様々な変更および代替の形態が可能であるが、特定の実施形態が例として図面に示されており、それら特定の実施形態について本明細書において詳細に説明する。しかし、本明細書において説明される例示的な実施形態は、開示される特定の形態への限定を意図しない。むしろ、本開示は、添付の特許請求の範囲内に入るすべての変更、均等物、および代替を包含する。
【0011】
さらに詳細に後述するように、本開示は、一般的には、ボリュームへの変更を追跡するシステムおよび方法に関する。一例では、そのようなシステムおよび方法は、バックアッププログラムが第三者スナップショットプロバイダにより作成されたスナップショットをサポートできるようにし得る。例えば、さらに詳細に後述するように、本開示は、ソフトウェアに基づくバックアッププログラムがハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。
【0012】
以下に、図1〜図3を参照して、ボリュームへの変更を追跡する例示的なシステムの詳細な説明を提供する。ボリュームへの変更を追跡するタイミング図の説明も、図5に関連して提供する。対応するコンピュータにより実施される例示的な方法の説明も、図4および図6に関連して提供する。さらに、本明細書において説明され示される実施形態のうちの1つまたは複数を実施可能な例示的な計算システムの説明を、図7に関連して説明する。
【0013】
図1は、ボリュームへの変更を追跡する例示的なシステム100のブロック図である。本明細書において使用される用語「ボリューム」は一般に、任意の種類または形態の物理的、論理的、または計算システムの仮想化されたボリュームを指す。図1に示すように、例示的なシステム100は、1つまたは複数のタスクを実行する1つまたは複数のモジュール102を備え得る。例えば、例示的なシステム100は、ボリュームのスナップショット(状況によっては、第三者スナップショットプロバイダにより作成され得る)を識別するスナップショット識別モジュール104を備え得る。
【0014】
例示的なシステム100は、さらに詳細に後述するように、ボリュームへの変更を追跡する変更追跡モジュール106も備え得る。さらに、例示的なシステム100は、計算システムのバックアップを作成する(場合によっては、第三者スナップショットに基づいて))バックアップ作成モジュール108を備え得る。本明細書において使用される用語「バックアップ」は、計算システムのファイル、プログラム、またはボリュームの少なくとも一部分の任意の種類または形態のバックアップを指し得る。さらに、本明細書において使用される用語「スナップショット」は一般に、データのポイントインタイムコピーを指す。特定の例では、スナップショットは、計算装置のバックアップを作成するためのガイドとして機能し得る。
【0015】
図1に示すように、例示的なシステム100は、1つまたは複数のデータベース120も備え得る。例えば、例示的なシステム100は、ボリュームに対して行われた変更を識別するリスト(「変更リスト」)を記憶する変更リストデータベース122を備え得る。例示的なシステム100は、1つまたは複数の計算システムのバックアップを記憶するバックアップデータベース123も備え得る。別個の装置として示されるが、図1のデータベース120のうちの1つまたは複数は、単一のデータベースまたは単一の計算装置の部分も表し得る。
【0016】
特定の実施形態では、モジュール102のうちの1つまたは複数は、計算装置により実行されると、計算装置に、ボリュームに対して行われた変更を追跡するために必要な1つまたは複数のタスクを実行させ得る1つまたは複数のソフトウェアアプリケーションまたはプログラムを表し得る。例えば、さらに詳細に後述するように、モジュール102のうちの1つまたは複数は、図2に示す計算装置(例えば、クライアント202、サーバ206、および記憶装置208(1)〜(N))、図3に示す計算装置(例えば、仮想マシンサーバ302、仮想マシンクライアント304、仮想ボリューム305、記憶装置308、およびプロキシサーバ310)、および図7の計算装置(例えば、計算システム710)等の1つまたは複数の計算装置上で実行されるように構成されたソフトウェアモジュールを表し得る。モジュール102のうちの1つまたは複数は、ボリュームへの変更を追跡するために必要な1つまたは複数のタスクを実行するように構成された1つまたは複数の専用コンピュータのすべてまたは部分も表し得る。
【0017】
さらに、図1のデータベース120のうちの1つまたは複数は、1つまたは複数の計算装置の部分を表し得る。例えば、データベース120のうちの1つまたは複数は、図2、図3、および図7に示す例示的な計算システムの部分を表し得る。あるいは、データベース120のうちの1つまたは複数は、図2、図3、および図7に示す例示的な計算装置等の計算装置がアクセス可能な1つまたは複数の物理的に別個の装置を表し得る。
【0018】
図4は、ボリュームへの変更を追跡するコンピュータにより実施される例示的な方法400の流れ図である。この図に示すように、ステップ402において、ボリュームの第1のスナップショットを識別し得る。例えば、図1のスナップショット識別モジュール104は、第三者スナップショットプロバイダがスナップショットを作成したことを判断し得る。
【0019】
ステップ404において、システムは、ステップ402において識別された第1のスナップショットが作成されたウィンドウを識別し得る。一例では、このウィンドウは、ステップ402において識別された第1のスナップショットが作成される前に発生したことが分かっている第1の時点(すなわち、明らかに第1のスナップショットの作成前に発生した時点)で始まり、第1のスナップショットが作成された後に発生したことが分かっている第2の時点(すなわち、明らかに第1のスナップショットの作成後に発生した時点)で終わる。
【0020】
図5は、ボリュームのスナップショットが作成されたウィンドウを識別するタイミング図の図である。この図に示すように、第1のスナップショット504の第1のスナップショットウィンドウ512は、第1のスナップショット504の作成前に発生したことが分かっている第1の時点A1および第1のスナップショット504の作成後に発生したことが分かっている第2の時点B1を識別することにより、識別し得る。図4に戻ると、ステップ406において、システムは、そのウィンドウ内に発生したボリュームへの少なくとも1つの変更を識別し得る。例えば、変更追跡モジュール106は、図5の第1のスナップショットウィンドウ512内に変更されたボリュームの各ブロックを識別し得る。本明細書において使用される用語「ブロック」は、ボリューム内のアドレス指定可能な領域の最低レベルを指し得る。さらなる例では、変更追跡モジュール106により識別されるブロックは、ウィンドウ内に変更されたボリュームのセクタ、ファイル、ファイルの部分、クラスタ、クラスタの部分、または他の同様のものであり得る。
【0021】
ステップ408において、システムは、406において識別された変更に、第1のスナップショットおよび第1のスナップショット後に作成された第2のスナップショットを関連付け得る。例えば、図1の変更追跡モジュール106は、図5の第1のスナップショットウィンドウ512内に発生したすべての変更を、第1のスナップショット504および第2のスナップショット506の両方に関連付け得る。特定の例では、スナップショット(第三者スナップショットプロバイダにより提供され得る)はそのような関連付けについて何も知らない場合があるため、そのような関連付けは論理的な関連付けを表し得る。
【0022】
図4のステップ408は、様々な方法で実行し得る。例えば、ステップ408は、ステップ404において識別されたウィンドウ内で変更されたボリュームの各ブロックへの参照を、第1のスナップショットおよび第2のスナップショットの両方に追加することを含み得る。代替の実施形態では、ステップ408は、ステップ404において識別されたウィンドウ内に変更されたボリュームの各ブロックへの参照を、第1のスナップショットに関連付けられた第1の変更リストおよび第2のスナップショットに関連付けられた第2の変更リストの両方に追加することを含み得る。
【0023】
例えば、変更追跡モジュール106は、第1のスナップショットウィンドウ512内に変更されたボリュームの各ブロックへの参照を、第1のスナップショット504に関連付けられた第1の変更リスト508および第2のスナップショット506に関連付けられた第2の変更リスト510の両方に追加し得る。詳細に上述したように、本明細書において使用される語句「変更リスト」は、前回のスナップショット以来、ボリュームに対して行われた変更を識別するリストを指し得る。変更リストは、様々な方法でボリュームへの変更を識別し得る。例えば、変更リストは、変更されたボリューム内のブロックのインデックスの順序つきリストを表し得る。さらなる例では、変更リストは、ボリューム内の各ブロックに1ビットを含むビットマップを表し得る。最初、ビットマップ内のすべてのビットは論理0であり得る。しかし、ブロックへの変更が識別された場合、各変更ブロックに対応するビットを論理1に設定し得る。
【0024】
したがって、少なくとも1つの実施形態では、変更リスト508および510は、前回のスナップショット以来、行われたボリューム上のブロックを識別し得る。特定の例では、変更リスト508および510を使用して、ボリュームの増分バックアップを作成し得る。図4のステップ408の完了後、図4の例示的な方法400は終了し得る。
【0025】
詳細に上述したように、図5の変更リスト508および510は、ボリュームの前回のスナップショット以来、ボリュームへの変更を識別し得る。図6は、ボリュームの変更リストを作成するコンピュータにより実施される例示的な方法600の流れ図である。少なくとも1つの実施形態では、ステップ602は、図4のステップ408の完了後、開始し得る。図6に示すように、ステップ602において、システムは、第1のスナップショットの作成に先行する前のスナップショットの前に発生したことが分かっている時点(すなわち、明らかに前のスナップショットの作成前に発生した時点)を識別し得る。例えば、図1の変更追跡モジュール106は、第1のスナップショット504の前に作成された、前のスナップショット502の前に発生したことが分かっている図5の時点A0を識別し得る。
【0026】
ステップ604において、システムは、時点A0(すなわち、図5の前のスナップショット502よりも前に発生したことが分かっている時点)と時点B1(すなわち、第1のスナップショット504の後に発生したことが分かっている時点)との間で変更されたボリュームの各ブロックを識別し得る。
【0027】
ステップ606において、システムは、時点A0と時点B1との間で変更されたボリュームの各ブロックへの参照、を第1のスナップショット504に関連付けられた第1の変更リスト508に追加し得る。
【0028】
ステップ608において、システムは、第1のスナップショット504の前に発生したことが分かっている第3の時点および第2のスナップショット506の後に発生したことが分かっている第4の時点(すなわち、明らかに第2のスナップショット506の作成前に発生した時点)を識別し得る。例えば、図1の変更追跡モジュール106は、第1のスナップショット504の前に発生したことが分かっている第3の時点として時点A1を識別し、図5の第2のスナップショット506の後に発生したことが分かっている第4の時点としてB2を識別し得る。
【0029】
ステップ610において、システムは、図5の時点A1と時点B2との間で変更されたボリュームの各ブロックを識別し得る。ステップ612において、時点A1と時点B2との間で変更されたボリュームの各ブロックへの参照を、第2のスナップショット506に関連付けられた第2の変更リスト510に追加し得る。詳細に上述したように、特定の例では、変更リスト508および510を使用して、ボリュームの増分スナップショットまたはバックアップを作成し得る。図6のステップ612の完了後、例示的な方法600は終了し得る。
【0030】
詳細に上述したように、本明細書において説明する例示的なシステムおよび方法は、バックアッププログラムが、第三者スナップショットが作成された厳密な時点を識別できない場合であっても、バックアッププログラムが、第三者スナップショットをサポートできるようにし得る。例えば、本明細書において説明する例示的なシステムおよび方法は、ソフトウェアに基づくバックアッププログラムの開発者が、ハードウェアに基づくスナップショットおよびオフホストスナップショットにより提供される性能恩益を利用するために、ハードウェアに基づくスナップショットプロバイダまたはオフホストスナップショットプロバイダにより提供されるスナップショットを利用しサポートできるようにし得る。
【0031】
さらに、近代の計算システムの速度により、第三者スナップショットが作成されるウィンドウは非常に短い時間ウィンドウに低減され得る。したがって、このウィンドウ内に変更するボリューム上のブロック数は、比較的小さいであろう。それにも関わらず、前のスナップショット以来、実際に変更されなかったブロックが、増分バックアップに不必要に追加される場合であっても、最新のスナップショット以来、変更されたボリュームの各ブロックはまだバックアップ内に含まれているため、それら追加ブロックは決して、結果として生成されるバックアップの有効性に影響しない。
【0032】
本明細書において説明する例示的なシステムおよび方法は、様々な方法で利用し得る。例えば、図1の例示的なシステム100のすべてまたは部分は、ハードウェアに基づくスナップショットを作成可能な、図2の例示的なネットワーク化されたシステム200等のネットワーク化されたシステムの部分を表し得る。この図に示すように、例示的なシステム200は、ネットワーク204を介してサーバ206およびプロキシサーバ207と通信するクライアント202を備え得る。
【0033】
クライアント202は一般に、コンピュータ可読命令を実行可能な任意の種類または形態のクライアント側計算装置を表し得る。特定の例では、クライアント202はボリューム203を備え得る。ボリューム203は一般に、データおよび/またはコンピュータ可読媒体を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。ボリューム203の例としては、物理ボリューム、論理ボリューム、および仮想ボリュームが挙げられるが、これらに限定されない。特定の実施形態では、クライアント202は、図1の例示的なシステム100の1つまたは複数の部分を備え得る。例えば、図1のモジュール102のうちの1つまたは複数は、クライアント202に記憶し得、クライアント202で実行されるように構成され得る。同様に、図1のモジュール120のうちの1つまたは複数は、図2のクライアント202の部分を表し得る。
【0034】
少なくとも1つの実施形態では、クライアント202は、ネットワーク204を介してサーバ206およびプロキシサーバ207と通信し得る。ネットワーク204は一般に、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含む任意の種類または形態の通信ネットワークまたは計算ネットワークを表す。
【0035】
サーバ206は一般に、任意の種類または形態のサーバ側計算装置を表す。特定の実施形態では、サーバ206は、クライアント202のボリューム203のハードウェアスナップショットを作成し記憶するように構成されたSAN装置を表し得る。特定の実施形態では、サーバ206は、図1の例示的なシステム100の1つまたは複数の部分を備え得る。例えば、図1のモジュール102のうちの1つまたは複数をサーバ206に記憶し、サーバ206で実行されるように構成し得る。同様に、サーバ206は、図1のデータベース120のうちの1つまたは複数を備え得る。
【0036】
プロキシサーバ207は一般に、任意の種類または形態のサーバ側計算装置を表す。特定の実施形態では、プロキシサーバ207は、サーバ206により作成され、サーバ206に記憶されているボリューム203のハードウェアスナップショットにアクセスし得る。この例では、プロキシサーバ207は、サーバ206により提供されるボリューム203のハードウェアスナップショットに基づいて、ボリューム203のバックアップを作成し得る。
【0037】
図2に示すように、例示的なシステム200は、1つまたは複数の記憶装置208(1)〜(N)も備え得る。記憶装置208(1)〜(N)は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。特定の実施形態では、記憶装置(1)〜(N)は、クライアント202のボリューム203等の計算システムのボリュームのスナップショットまたはバックアップを記憶し得る。
【0038】
上述したように、本明細書において説明する例示的なシステムおよび方法は、ソフトウェアに基づくバックアッププログラムが、ハードウェアに基づくスナップショットから増分バックアップを作成できるようにし得る。例えば、図4の例示的な方法400を参照すると、図4のステップ402において、図1のスナップショット識別モジュール104は、図2のボリューム203の第1のハードウェアスナップショットを識別し得る。特定の実施形態では、ボリューム203のこの第1のハードウェアスナップショットは、記憶装置208(1)〜(N)に記憶し得る。
【0039】
図4のステップ404において、図1の変更追跡モジュール106は、ボリューム203の第1のハードウェアスナップショット(ステップ402において識別された)が作成されたウィンドウを識別し得る。例えば、変更追跡モジュール106は、ステップ402において識別された第1のハードウェアスナップショットが作成される前に発生したことが分かっている第1の時点(すなわち、明らかに第1のハードウェアスナップショットの作成前に発生した時点)および第1のハードウェアスナップショットが作成された後に発生したことが分かっている第2の時点(すなわち、明らかに第1のハードウェアスナップショットの作成後に発生した時点)を識別し得る。
【0040】
図4のステップ406において、図1の変更追跡モジュール106は、ステップ404において識別されたウィンドウ内に変更されたボリューム203の各ブロックを識別することにより、図2のボリューム203への少なくとも1つの変更を識別し得る。ステップ408において、図1の変更追跡モジュール106は、ウィンドウ内に変更された図2のボリューム203の各ブロックへの参照を、第1のハードウェアスナップショットに関連付けられた第1の変更リストおよび第1のハードウェアスナップショット後に作成された第2のハードウェアスナップショットに関連付けられた第2の変更リストに追加し得る。少なくとも1つの例では、図1のバックアップ作成モジュール108は、これら第1および第2の変更リストを使用して、ボリューム203の増分バックアップを作成し得る。
【0041】
さらなる例では、図1の例示的なシステム100のすべてまたは部分は、オフホストスナップショットを作成可能な、図3の例示的な仮想環境300等の仮想環境の部分を表し得る。この図に示すように、仮想環境300は、仮想マシンサーバ302、仮想マシンクライアント304、SANファブリック306、記憶装置308、およびプロキシサーバ310を含み得る。仮想マシンサーバ302は一般に、仮想マシンクライアント304等の1つまたは複数の仮想マシンクライアントを提供可能であるか、またはそのようなクライアントへのアクセスを提供可能な任意の種類または形態の装置を表す。特定の実施形態では、仮想マシンサーバ302は、プロセッサ、メモリ、記憶装置、およびネットワーク化されたリソースを抽象化することにより、複数の仮想マシンに分割された単一のサーバを表し得る。仮想マシンサーバ302の例としては、VMWARE ESX、MICROSOFT HYPERV、またはこれらと同様のものが挙げられるが、これらに限定されない。
【0042】
図3に示すように、仮想マシンサーバ302は、少なくとも1つの仮想マシンクライアント304を備え得る。仮想マシンクライアント304は一般に、任意の種類または形態の仮想マシン環境を表す。特定の実施形態では、仮想マシンクライアント304は仮想ボリューム305を備え得る。ボリューム305は一般に、データおよび/またはコンピュータ可読命令を記憶する任意の種類または形態の仮想記憶装置を表す。仮想ボリューム305の例としては、論理ボリュームおよび仮想ボリュームが挙げられるが、これらに限定されない。
【0043】
図3に示すように、仮想マシンサーバ302は、SANファブリック306と通信し得る。SANファブリック306は一般に、複数の記憶装置間の通信に役立つことが可能な任意の種類または形態のコンピュータネットワークまたはアーキテクチャを表す。図3に示す例では、SANファブリック306は、仮想マシンサーバ302、記憶装置308、および/またはプロキシサーバ310の間の通信に役立ち得る。一例では、SANファブリック306は、仮想マシンサーバ302およびプロキシサーバ310が記憶装置308をマウントしアクセスできるようにし得る。
【0044】
図2の記憶装置208(1)〜(N)と同様に、記憶装置308は一般に、データおよび/またはコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。一例では、記憶装置308は、仮想マシンクライアント304の仮想ボリューム305を記憶し得る。図3のプロキシサーバ310は一般に、仮想マシンサーバ302により記憶装置308に保持されるスナップショットにアクセス可能な任意の種類または形態のプロキシサーバを表す。プロキシサーバ310の例としては、VMWAREのVIRTUAL CONSOLIDATED BACKUP(VCB)が挙げられるが、これに限定されない。
【0045】
特定の実施形態では、図1からのモジュール102のうちの1つまたは複数は、仮想環境300の1つまたは複数の部分に記憶され、それ(ら)で実行されるように構成され得る。例えば、モジュール102のうちの1つまたは複数は、仮想マシンサーバ302、仮想マシンクライアント304、記憶装置308、および/またはプロキシサーバ310に記憶され、それ(ら)で実行されるように構成され得る。同様に、仮想マシンサーバ302、仮想マシンクライアント304、仮想ボリューム305、記憶装置308、および/またはプロキシサーバ310は、図1のデータベース120のうちの1つまたは複数を備え得る。
【0046】
この例(および潜在的に図2に示す例)では、モジュール102は、ソフトウェアに基づくバックアッププログラムがオフホスト増分バックアップ(すなわち、バックアップされる機構上のボリュームに作成されたスナップショットを介してバックアップされるものと異なり、バックアップを実行中の機構にアクセス可能な計算システムで作成されたバックアップ)をサポートできるようにし得る。例えば、図4の例示的な方法400を参照すると、ステップ402において、図1のスナップショット識別モジュール104は、記憶装置308に記憶されている図3の仮想マシンクライアント304の仮想ボリューム305の第1のオフホストスナップショットを識別し得る。
【0047】
ステップ404において、図1の変更追跡モジュール106は、仮想マシンクライアント304の仮想ボリューム305の第1のオフホストスナップショット(ステップ402において識別される)が作成されたウィンドウを識別し得る。例えば、変更追跡モジュール106は、ステップ402において識別された第1のオフホストスナップショットが作成される前に発生したことが分かっている第1の時点(すなわち、明らかに第1のオフホストスナップショットの作成前に発生した時点)および第1のオフホストスナップショットが作成された後に発生したことが分かっている時点(すなわち、明らかに第1のオフホストスナップショットの作成後に発生した時点)を識別し得る。
【0048】
このウィンドウは様々な方法で識別し得る。例えば、変更追跡モジュール106は、当分野で既知のように、仮想マシンクライアント304上のドライバスタック内の通信を監視し、かつ/または仮想マシンクライアント304により利用されるスナップショット前後のスクリプトを利用して、データを無活動状態にすることにより、このウィンドウを識別し得る。
【0049】
ステップ406において、図1の変更追跡モジュール106は、ステップ404において識別されたウィンドウ内に発生した図3の仮想マシンクライアント304の仮想ボリューム305への各変更を識別し得る。ステップ408において、図1の変更追跡モジュール106は、ウィンドウ内の仮想マシンクライアント304の仮想ボリューム305に発生した各変更への参照を、第1のオフホストスナップショットに関連付けられた第1の変更リストおよび第1のオフホストスナップショット後に作成された第2のスナップショットに関連付けられた第2の変更リストの両方に追加し得る。特定の実施形態では、これらリストは、仮想マシンクライアント304により利用されるスナップショット前後のスクリプトを使用して、プロキシサーバ310に送信し得る。少なくとも1つの例では、図1のバックアップ作成モジュール108は、これら第1および第2の変更リストを使用して、仮想マシンクライアント304の仮想ボリューム305の増分バックアップを作成し得る。
【0050】
図7は、本明細書において説明され、かつ/または示される実施形態のうちの1つまたは複数を実施可能な例示的な計算システム710のブロック図である。計算システム710は一般に、コンピュータ可読命令を実行可能な任意のシングルプロセッサまたはマルチプロセッサの計算装置または計算システムを広く表す。計算システム710の例としては、ワークステーション、ラップトップ、クライアント側端末、分散計算システム、ハンドヘルド装置、または他の任意の計算システムもしくは装置が挙げられるが、これらに限定されない。その最も基本的な構成では、計算システム710は、少なくとも1つのプロセッサ714およびシステムメモリ716を備え得る。
【0051】
プロセッサ714は一般に、データを処理可能であるか、または命令を解釈し実行することが可能な任意の種類または形態の処理ユニットを表す。特定の実施形態では、プロセッサ714は、ソフトウェアアプリケーションまたはモジュールから命令を受信し得る。これら命令は、プロセッサ714に、本明細書において説明され、かつ/または示される例示的な実施形態のうちの1つまたは複数の機能を実行させ得る。例えば、プロセッサ714は、単独で、または他の要素と組み合わせて、本明細書において説明する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの1つまたは複数を実行し得、かつ/または実行する手段であり得る。プロセッサ714は、本明細書において説明され、かつ/または示される他の任意のステップ、方法、またはプロセスも実行し得、かつ/または実行する手段でもあり得る。
【0052】
システムメモリ716は一般に、データおよび/または他のコンピュータ可読命令を記憶可能な任意の種類または形態の揮発性または不揮発性の記憶装置または記憶媒体を表す。システムメモリ716の例としては、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または他の任意の適したメモリ装置が挙げられるが、これらに限定されない。必要なわけではないが、特定の実施形態では、計算システム710は、揮発性メモリユニット(例えば、システムメモリ716等)および不揮発性記憶装置(例えば、詳細に後述するような一次記憶装置732等)の両方を備え得る。
【0053】
特定の実施形態では、例示的な計算システム710は、プロセッサ714およびシステムメモリ716に加えて、1つまたは複数の構成要素または要素も備え得る。例えば、図7に示すように、計算システム710は、メモリコントローラ718、入出力(I/O)コントローラ720、および通信インタフェース722を備え得、これらのそれぞれは通信基盤712を介して相互接続し得る。通信基盤712は一般に、計算装置の1つまたは複数の構成要素間の通信に役立つことが可能な任意の種類または形態の基盤を表す。通信基盤712の例としては、通信バス(ISA、PCI、PCIe、または同様のバス等)およびネットワークが挙げられるが、これらに限定されない。
【0054】
メモリコントローラ718は一般に、メモリまたはデータを処理可能であるか、または計算システム710の1つまたは複数の構成要素間の通信に役立つことが可能な任意の種類または形態の装置を表す。例えば、特定の実施形態では、メモリコントローラ718は、通信基盤712を介するプロセッサ714、システムメモリ716、およびI/Oコントローラ720間の通信を制御し得る。特定の実施形態では、メモリコントローラ718は、単独で、または他の要素と組み合わせて、識別すること、関連付けること、追加すること、および/または作成すること等の本明細書において説明され、かつ/または示されるステップまたは特徴のうちの1つまたは複数を実行し得、かつ/または実行する手段であり得る。
【0055】
I/Oコントローラは一般に、計算装置の入出力機能を調整し、かつ/または制御することが可能な任意の種類または形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ720は、プロセッサ714、システムメモリ716、通信インタフェース722、ディスプレイアダプタ726、入力インタフェース730、およびストレージインタフェース734等の計算システム710の1つまたは複数の要素間でのデータの転送を制御し得るか、または転送に役立ち得る。I/Oコントローラ720は、例えば、本明細書において説明する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップを実行するため、または実行する手段として使用し得る。I/Oコントローラ720は、本開示に記載される他のステップおよび特徴を実行するため、かつ/または実行する手段としても使用し得る。
【0056】
通信インタフェース722は、例示的な計算システム710と1つまたは複数の追加の装置との間の通信に役立つことが可能な任意の種類または形態の通信装置またはアダプタを広く表す。例えば、特定の実施形態では、通信インタフェース722は、計算システム710と追加の計算システムを含む私設または公衆ネットワークとの間の通信に役立ち得る。通信インタフェース722の例としては、有線ネットワークインタフェース(ネットワークインタフェースカード等)、無線ネットワークインタフェース(無線ネットワークインタフェースカード等)、モデム、および他の任意の適したインタフェースが挙げられるが、これらに限定されない。少なくとも1つの実施形態では、通信インタフェース722は、インターネット等のネットワークへの直接リンクを介して遠隔サーバへの直接接続を提供し得る。通信インタフェース722は、例えば、ローカルエリアネットワーク(イーサネットネットワークまたは無線IEEE802.11ネットワーク等)、パーソナルエリアネットワーク(BLUETOOTHまたはIEEE802.15ネットワーク等)、電話回線網、ケーブル回線網、セルラ電話接続、衛星データ接続、または他の任意の適した接続を通して、そのような接続を間接的にも提供し得る。
【0057】
特定の実施形態では、通信インタフェース722は、外部バスまたは通信チャネルを介しての計算システム710と1つまたは複数の追加のネットワークまたは記憶装置との間の通信に役立つように構成されたホストアダプタも表し得る。ホストアダプタの例としては、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAアダプタ、およびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネットアダプタ、またはこれらと同様のものが挙げられるが、これらに限定されない。通信インタフェース722は、計算システム710が分散計算または遠隔計算を行えるようにもし得る。例えば、通信インタフェース722は、遠隔装置から命令を受信し、または実行のための命令を遠隔装置に送信し得る。特定の実施形態では、通信インタフェース722は、単独で、または他の要素と組み合わせて、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの1つまたは複数を実行し得、かつ/または実行する手段であり得る。通信インタフェース722は、本開示に記載する他のステップおよび特徴を実行するため、かつ/または実行する手段としても使用し得る。
【0058】
図7に示すように、計算システム710は、ディスプレイアダプタ726を介して通信基盤712に結合された少なくとも1つの表示装置724も備え得る。表示装置724は一般に、ディスプレイアダプタ726により転送される情報を視覚的に表示可能な任意の種類または形態の装置を表す。同様に、ディスプレイアダプタ726は一般に、通信基盤712から(または当分野において既知のように、フレームバッファから)表示装置724に表示するためのグラフィックス、テキスト、および他のデータに転送する任意の種類または形態の装置を表す。
【0059】
図7に示すように、例示的な計算システム710は、入力インタフェース730を介して通信基盤712に結合された少なくとも1つの入力装置728も備え得る。入力装置728は一般に、コンピュータまたは人間により生成された入力を例示的な計算システム710に提供可能な任意の種類または形態の入力装置を表す。入力装置728の例としては、キーボード、ポインティングデバイス、音声認識装置、または他の任意の適した入力装置が挙げられるが、これらに限定されない。少なくとも1つの実施形態では、入力装置728は、単独で、または他の要素と組み合わせて、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの1つまたは複数を実行し得、かつ/または実行する手段であり得る。入力装置728は、本開示に記載する他のステップおよび特徴を実行するため、かつ/または実行する手段としても使用し得る。
【0060】
図7に示すように、例示的な計算システム710は、ストレージインタフェース734を介して通信基盤712に結合された一次記憶装置732およびバックアップ記憶装置733も備え得る。記憶装置732および733は一般に、データおよび/またはコンピュータ可読命令を記憶可能な任意の種類または形態の記憶装置または記憶媒体を表す。例えば、記憶装置732および733は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、またはこれらと同様のものであり得る。ストレージインタフェース734は一般に、記憶装置732および733と計算システム710の他の構成要素との間でデータを転送する任意の種類または形態のインタフェースまたは装置を表す。
【0061】
特定の実施形態では、記憶装置732および733は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されたリムーバブル記憶ユニットに対して書き込みおよび/または読み取りを行うように構成され得る。適したリムーバブル記憶ユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、またはこれらと同様のものが挙げられるが、これらに限定されない。記憶装置732および733は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム710にロードできるようにする他の同様の構造または装置も備え得る。例えば、記憶装置732および733は、ソフトウェア、データ、または他のコンピュータ可読情報を読み書きするように構成され得る。記憶装置732および733は、計算システム710の部分であってもよく、または他のインタフェースシステムを通してアクセスされる別個の装置であってもよい。
【0062】
記憶装置732および733は、単独で、または他の要素と組み合わせて、例えば、本明細書において開示する識別するステップ、関連付けるステップ、追加するステップ、および作成するステップのうちの1つまたは複数を実行するため、かつ/または実行する手段としても使用し得る。記憶装置732および733は、本開示に記載する他のステップおよび特徴を実行するため、かつ/または実行する手段としても使用し得る。
【0063】
多くの他の装置またはサブシステムを計算システム710に接続し得る。逆に、本明細書において説明され、かつ/または示される実施形態を実施するために、図7に示す構成要素および装置のすべてが存在する必要があるわけではない。上で参照される装置およびサブシステムは、図7に示す方法と異なる方法で相互接続してもよい。計算システム710は、任意の数のソフトウェア構成、ファームウェア構成、および/またはハードウェア構成を利用してもよい。例えば、本明細書において開示する例示的な実施形態のうちの1つまたは複数は、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ばれる)としてコンピュータ可読媒体に符号化し得る。語句「コンピュータ可読媒体」は一般に、コンピュータ可読命令を記憶または搬送することが可能な任意の形態または装置、キャリア、または媒体を指す。コンピュータ可読媒体の例としては、搬送波等の伝送型媒体ならびに磁気記憶媒体(例えば、ハードディスクドライブおよびフロッピーディスク)、光学記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えば、固体状態ドライブおよびフラッシュメディア)、および他の分散システム等の物理的媒体が挙げられるが、これらに限定されない。
【0064】
コンピュータプログラムを含むコンピュータ可読媒体を計算システム710にロードし得る。次に、コンピュータ可読媒体に記憶されているコンピュータプログラムのすべてまたは部分をシステムメモリ716ならびに/あるいは記憶装置732および733の様々な部分に記憶し得る。プロセッサ714により実行されると、計算システム710にロードされたコンピュータプログラムは、プロセッサ714に、本明細書において説明され、かつ/または示される例示的な実施形態のうちの1つまたは複数の機能を実行させ得、かつ/または実行する手段であり得る。追加または代替として、本明細書において説明され、かつ/または示される例示的な実施形態のうちの1つまたは複数をファームウェアおよび/またはハードウェアで実施してもよい。例えば、計算システム710は、本明細書において開示する例示的な実施形態のうちの1つまたは複数を実施するように構成された特定用途向け集積回路(ASIC)として構成し得る。
【0065】
詳細に上述したように、計算システム710は、単独で、または他の要素と組み合わせて、本明細書において説明され、かつ/または示される例示的な方法のステップのうちの1つまたは複数を実行し得、かつ/または実行する手段であり得る。例えば、ボリュームに対して行われた変更を追跡するコンピュータにより実施される方法は、ボリュームの第1のスナップショットを識別することを含み得る。第1のスナップショットは、ソフトウェアスナップショットおよび/またはハードウェアスナップショットを含み得る。この方法は、第1のスナップショットが作成されたウィンドウを識別することも含み得る。このウィンドウは、第1のスナップショット前に発生したことが分かっている第1の時点で始まり、第1のスナップショット後に発生したことが分かっている第2の時点で終わり得る。
【0066】
この方法は、ウィンドウ内に発生したボリュームへの少なくとも1つの変更を識別すること、およびウィンドウ内に発生したそのような変更に第1のスナップショットおよび第2のスナップショットの両方を関連付けることをさらに含み得る。第2のスナップショットは、第1のスナップショットの後に作成し得る。特定の実施形態では、ボリュームへの少なくとも1つの変更を識別することは、ウィンドウ内に変更されたボリュームの各ブロックを識別することを含み得る。
【0067】
特定の実施形態では、この方法は、1)第1のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別すること、2)前のスナップショット前に発生したことが分かっている時点と第2の時点との間で変更したボリュームの各ブロックを識別すること、次に、3)前のスナップショット前に発生したことが分かっている時点と第2の時点との間で変更されたボリュームの各ブロックへの参照を、第1のスナップショットに関連付けられた第1のリストに追加することをさらに含み得る。次に、前のスナップショットを使用して、ボリュームの完全バックアップを作成し得る。同様に、第1のリストを使用して、ボリュームの第1の増分バックアップを作成し得る。
【0068】
いくつかの実施形態では、方法は、第2のスナップショット後に発生したことが分かっている第3の時点を識別すること、および第1の時点と第3の時点との間で変更されたボリュームの各ブロックを識別することをさらに含み得る。次に、第1の時点と第3の時点との間で変更されたボリュームの各ブロックへの参照を、第2のスナップショットに関連付けられた第2のリストに追加し得る。変更されたブロックへの参照を対応するリストに追加する上記プロセスは、第1および第2のリストを作成することを含み得る。
【0069】
少なくとも1つの実施形態では、ウィンドウ内に発生した少なくとも1つの変更を第1および第2のスナップショットの両方に関連付けるに当たり、方法は、ウィンドウ内で変更されたボリュームの各ブロックへの参照を第1および第2のリストの両方に追加することを含み得る。他の実施形態では、第1のリストを使用して、ボリュームの第1の増分バックアップを作成し得る。同様に、第2のリストを使用して、ボリュームの第2の増分バックアップを作成し得る。
【0070】
さらなる実施形態では、ネットワーク化された環境内でボリュームへの変更を追跡するシステムは、少なくとも1つのボリュームを備える少なくとも1つのクライアントを備え得る。サーバはクライアントと通信し得る。サーバは、ボリュームの第1のスナップショットが作成されたウィンドウを識別するように構成された変更追跡モジュールも備え得る。このウィンドウは、第1のスナップショット前に発生したことが分かっている第1の時点で始まり、第1のスナップショット後に発生したことが分かっている第2の時点で終わり得る。
【0071】
変更追跡モジュールは、ウィンドウ内に発生したボリュームへの少なくとも1つの変更を識別し、ウィンドウ内に発生した少なくとも1つの変更を第1のスナップショットおよび第2のスナップショットの両方に関連付けるようにも構成され得る。第2のスナップショットは、第1のスナップショット後に作成し得る。
【0072】
いくつかの実施形態では、変更追跡モジュールは、第1のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するように構成され得る。変更追跡モジュールは、前のスナップショット前に発生したことが分かっている時点と第2の時点との間で変更されたボリュームの各ブロックを識別するようにも構成され得る。特定の実施形態では、変更追跡モジュールは、前のスナップショット前に発生したことが分かっている時点と第2の時点との間で変更されたボリュームの各ブロックへの参照を第1のリストに追加するようにさらに構成され得る。第1のリストは、第1のスナップショットに関連付けられ得る。
【0073】
他の実施形態では、変更追跡モジュールは、第2のスナップショット後に発生したことが分かっている第3の時点を識別するように構成され得る。変更追跡モジュールは、第1の時点と第3の時点との間で変更されたモジュールの各ブロックを識別するようにさらに構成され得る。第1の時点と第3の時点との間で変更されたボリュームの各ブロックへの参照を第2のリストに追加し得る。第2のリストを第2のスナップショットに関連付け得る。変更追跡モジュールは、ウィンドウ内に発生した少なくとも1つの変更を第1および第2のスナップショットの両方に関連付け得る。上記関連付けは、ウィンドウ内に変更されたボリュームの各ブロックへの参照を第1および第2のリストの両方に追加することを含み得る。
【0074】
様々な実施形態では、変更追跡モジュールはバックアップ作成モジュールを備え得る。バックアップ作成モジュールは、前のスナップショットを使用してボリュームの完全バックアップを作成するように構成され得る。バックアップ作成モジュールは、第1のリストおよび/または第1のスナップショットを使用して、ボリュームの第1の増分バックアップを作成するようにも構成され得る。
【0075】
さらなる実施形態では、仮想環境内でボリュームへの変更を追跡するシステムは、少なくとも1つの仮想マシンクライアントを備える仮想マシンサーバを備え得る。このシステムは、仮想マシンサーバと通信するストレージエリアネットワークも備え得る。さらに、システムは、仮想マシンクライアントの第1のスナップショットが作成されたウィンドウを識別するように構成された変更追跡モジュールを備え得る。上記ウィンドウは、第1のスナップショット前に発生したことが分かっている第1の時点で始まり、第1のスナップショット後に発生したことが分かっている第2の時点で終わり得る。
【0076】
変更追跡モジュールは、ウィンドウ内に発生した仮想マシンクライアントへの少なくとも1つの変更を識別し、少なくとも1つの変更を第1および第2のスナップショットを関連付けるようにさらに構成され得る。第2のスナップショットは、第1のスナップショット後に作成し得る。
【0077】
少なくとも1つの実施形態では、変更追跡モジュールは、1)第1のスナップショットに先行する前のスナップショット前に発生した時点を識別し、2)前のスナップショット前に発生したことが分かっている時点と第2の時点との間で発生した仮想マシンクライアントへの各変更を識別し、3)上記変更への参照を第1のスナップショットに関連付けられた第1のリストに追加するようにさらに構成され得る。
【0078】
特定の実施形態では、変更追跡モジュールは、記憶装置ネットワークと通信するプロキシサーバを備え得る。記憶装置ネットワークと通信するプロキシサーバは、バックアップ作成モジュールをさらに備え得る。バックアップ作成モジュールは、前のスナップショットを使用して仮想マシンクライアントの完全バックアップを作成するように構成され得る。バックアップ作成モジュールは、第1のリストを使用して、仮想マシンクライアントの第1の増分バックアップを作成するようにさらに構成され得る。
【0079】
いくつかの実施形態では、変更追跡モジュールは、第2のスナップショット後に発生したことが分かっている第3の時点を識別するように構成され得る。変更追跡モジュールは、第1の時点と第3の時点との間で発生した仮想マシンクライアントへの各変更を識別するようにも構成され得る。第1の時点と第3の時点との間で発生した仮想マシンクライアントへの各変更への参照を、第2のスナップショットに関連付けられた第2のリストに追加し得る。さらに、変更追跡モジュールは、ウィンドウ内に発生した少なくとも1つの変更を第1および第2のスナップショットの両方を関連付け得る。上記関連付けは、仮想マシンクライアントにウィンドウ内に発生した各変更への参照を、第1および第2のリストの両方に追加することを含み得る。
【0080】
上記開示に、特定のブロック図、タイミング図、フローチャート、および例を使用して様々な実施形態を説明したが、本明細書において説明され、かつ/または図示される各図の構成要素、フローチャートのステップ、動作、および/または構成要素は、独立して、かつ/または集合的に、広範囲のハードウェア構成、ソフトウェア構成、またはファームウェア構成(またはこれらの任意の組み合わせ)を使用して実施し得る。さらに、他の構成要素内に含まれる構成要素のいかなる開示も、同じ機能を達成するために、他の多くの構造を実施可能なため、例示的な性質のものであるとみなされるべきである。
【0081】
本明細書において説明され、かつ/または図示されるプロセスパラメータおよびステップシーケンスは、単なる例として与えられ、必要に応じて変更が可能である。例えば、本明細書において図示され、かつ/または説明されるステップは、特定の順序で図示または説明され得るが、これらのステップは、必ずしも図示または説明された順序で実行される必要はない。本明細書において説明され、かつ/または図示される例示的な様々な方法は、本明細書において説明されるか、もしくは図示されるステップのうちの1つもしくは複数を省いてもよく、または開示されるステップに加えて他のステップを含んでもよい。
【0082】
さらに、様々な実施形態を完全に機能する計算システムの文脈の中で本明細書において説明し、かつ/または図示したが、配布を実際に実行するために使用されるコンピュータ可読媒体の特定の種類に関係なく、これら例示的な実施形態のうちの1つまたは複数を様々な形態のプログラム製品として配布してもよい。本明細書に開示される実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実施してもよい。これらソフトウェアモジュールは、コンピュータ可読記憶媒体または計算システムに記憶可能なスクリプト、バッチ、または他の実行可能ファイルを含み得る。いくつかの実施形態では、これらソフトウェアモジュールは、本明細書において開示された例示的な実施形態のうちの1つまたは複数を実行するように、計算システムを構成し得る。
【0083】
上記説明は、当業者が、本明細書において開示した例示的な実施形態の様々な態様を最良に利用できるようにするために提供された。この例示的な説明は、網羅的であることを意図しない。すなわち、開示されるいかなる厳密な形態にも限定されないことを意図する。多くの変更および変形が、本開示の主旨および範囲から逸脱せずに可能である。本明細書において開示する実施形態は、すべての点で限定ではなく例示として考えられるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照されたい。
【0084】
別段に記される場合を除き、本明細書および特許請求の範囲において使用される場合、用語「a」または「an」は、「少なくとも1つの」を意味するものと解釈されるべきである。さらに、使いやすさのために、単語「含む」および「有する」は、本明細書および特許請求の範囲において使用される場合、単語「備える」と同義であり、同じ意味を有する。

【特許請求の範囲】
【請求項1】
ボリュームに対して行われた変更を追跡するコンピュータにより実施される方法であって、
前記ボリュームの第1のスナップショットを識別するステップと、
前記第1のスナップショットが作成されたウィンドウを識別するステップであって、前記ウィンドウは、前記第1のスナップショット前に発生したことが分かっている第1の時点で始まり、前記第1のスナップショット後に発生したことが分かっている第2の時点で終わるステップと、
前記ウィンドウ内に発生した前記ボリュームへの少なくとも1つの変更を識別するステップと、
前記ウィンドウ内に発生した少なくとも1つの変更を前記第1のスナップショットおよび前記第1のスナップショット後に作成された第2のスナップショットの両方に関連付けるステップと
を含む、方法。
【請求項2】
前記ボリュームへの前記少なくとも1つの変更を識別するステップは、前記ウィンドウ内に変更された前記ボリュームの各ブロックを識別するステップを含む、請求項1に記載の方法。
【請求項3】
前記第1のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第2の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第2の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第1のスナップショットに関連付けられた第1のリストに追加するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記前のスナップショットを使用して、前記ボリュームの完全バックアップを作成するステップと、
前記第1のリストおよび前記第1のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第1の増分バックアップを作成するステップと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記第2のスナップショット後に発生したことが分かっている第3の時点を識別するステップと、
前記第1の時点と前記第3の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記第1の時点と前記第3の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第2のスナップショットに関連付けられた第2のリストに追加するステップと
をさらに含む、請求項3に記載の方法。
【請求項6】
前記ウィンドウ内に発生した少なくとも1つの変更を前記第1のスナップショットおよび前記第2のスナップショットの両方に関連付けるステップは、前記ウィンドウ内に変更された前記ボリュームの各ブロックへの参照を前記第1のリストおよび前記第2のリストの両方に追加するステップを含む、請求項5に記載の方法。
【請求項7】
前記第1のリストを作成するステップと、
前記第2のリストを作成するステップと
をさらに含む、請求項5に記載の方法。
【請求項8】
前記第1のリストおよび前記第1のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第1の増分バックアップを作成するステップと、
前記第2のリストおよび前記第2のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第2の増分バックアップを作成するステップと
をさらに含む、請求項5に記載の方法。
【請求項9】
前記第1のスナップショットは、
ソフトウェアスナップショットと、
ハードウェアスナップショットと
を備える、請求項1に記載の方法。
【請求項10】
ネットワーク化された環境内でボリュームへの変更を追跡するシステムであって、
少なくとも1つのボリュームを備える少なくとも1つのクライアントと、
前記クライアントと通信するサーバと、
前記サーバ上の変更追跡モジュールと
を備え、前記変更追跡モジュールは、
前記ボリュームの第1のスナップショットが作成されたウィンドウを識別するステップであって、前記ウィンドウは、前記第1のスナップショット前に発生したことが分かっている第1の時点で始まり、前記第1のスナップショット後に発生したことが分かっている第2の時点で終わるステップと、
前記ウィンドウ内に発生した前記ボリュームへの少なくとも1つの変更を識別するステップと、
前記ウィンドウ内に発生した少なくとも1つの変更を、前記スナップショットおよび前記第1のスナップショット後に作成された第2のスナップショットの両方に関連付けるステップと
を行うように構成される、システム。
【請求項11】
前記変更追跡モジュールは、
前記第1のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第2の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記基本スナップショット前に発生したことが分かっている時点と前記第2の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第1のスナップショットに関連付けられた第1のリストに追加するステップと
を行うようにさらに構成される、請求項10に記載のシステム。
【請求項12】
バックアップ作成モジュールをさらに備え、前記バックアップ作成モジュールは、
前記前のスナップショットを使用して、前記ボリュームの完全バックアップを作成するステップと、
前記第1のリストおよび前記第1のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第1の増分バックアップを作成するステップと
を行うように構成される、請求項11に記載のシステム。
【請求項13】
前記変更追跡モジュールは、
前記第2のスナップショット後に発生したことが分かっている第3の時点を識別するステップと、
前記第1の時点と前記第3の時点との間で変更された前記ボリュームの各ブロックを識別するステップと、
前記第1の時点と前記第3の時点との間で変更された前記ボリュームの各ブロックへの参照を、前記第2のスナップショットに関連付けられた第2のリストに追加するステップと
を行うようにさらに構成される、請求項11に記載のシステム。
【請求項14】
前記変更追跡モジュールは、前記ウィンドウ内に変更された前記ボリュームの各ブロックへの参照を前記第1のリストおよび前記第2のリストに追加することにより、前記ウィンドウ内に発生した前記少なくとも1つの変更を、前記第1のスナップショットおよび前記第2のスナップショットの両方に関連付ける、請求項13に記載のシステム。
【請求項15】
バックアップ作成モジュールをさらに備え、前記バックアップ作成モジュールは、
前記第1のリストおよび前記第1のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第1の増分バックアップを作成するステップと、
前記第2のリストおよび前記第2のスナップショットのうちの少なくとも一方を使用して、前記ボリュームの第2の増分バックアップを作成するステップと
を行うように構成される、請求項13に記載のシステム。
【請求項16】
仮想環境内でボリュームへの変更を追跡するシステムであって、
少なくとも1つの仮想マシンクライアントを備える仮想マシンサーバであって、前記仮想マシンクライアントは少なくとも1つの仮想ボリュームを備える、仮想マシンサーバと、
前記仮想マシンサーバと通信するストレージエリアネットワークと、
変更追跡モジュールと
を備え、
前記変更追跡モジュールは、
前記仮想ボリュームの第1のスナップショットが作成されたウィンドウを識別するステップであって、前記ウィンドウは、前記第1のスナップショット前に発生したことが分かっている第1の時点で始まり、前記第1のスナップショット後に発生したことが分かっている第2の時点で終わるステップと、
前記ウィンドウ内で発生した前記仮想ボリュームへの少なくとも1つの変更を識別するステップと、
前記ウィンドウ内に発生した前記少なくとも1つの変更を、前記第1のスナップショットおよび前記第1のスナップショット後に作成された第2のスナップショットに関連付けるステップと
を行うように構成される、システム。
【請求項17】
前記変更追跡モジュールは、
前記第1のスナップショットに先行する前のスナップショット前に発生したことが分かっている時点を識別するステップと、
前記基本スナップショット前に発生したことが分かっている時点と前記第2の時点との間で発生した前記仮想ボリュームに対する各変更を識別するステップと、
前記前のスナップショット前に発生したことが分かっている時点と前記第2の時点との間で発生した前記仮想ボリュームに対する各変更への参照を、前記第1のスナップショットに関連付けられた第1のリストに追加するステップと
を行うようにさらに構成される、請求項16に記載のシステム。
【請求項18】
前記ストレージエリアネットワークと通信するプロキシサーバをさらに備え、前記プロキシサーバは、バックアップ作成モジュールを備え、前記バックアップ作成モジュールは、
前記前のスナップショットを使用して、前記仮想ボリュームの完全バックアップを作成するステップと、
前記第1のリストおよび前記第1のスナップショットのうちの少なくとも一方を使用して、前記仮想ボリュームの第1の増分バックアップを作成するステップと
を行うように構成される、請求項17に記載のシステム。
【請求項19】
前記変更追跡モジュールは、
前記第2のスナップショット後に発生したことが分かっている第3の時点を識別するステップと、
前記第1の時点と前記第3の時点との間で発生した前記仮想ボリュームに対する各変更を識別するステップと、
前記第1の時点と前記第3の時点との間で発生した前記仮想ボリュームに対する各変更への参照を、前記第2のスナップショットに関連付けられた第2のリストに追加するステップと
を行うようにさらに構成される、請求項18に記載のシステム。
【請求項20】
前記変更追跡モジュールは、前記ウィンドウ内に前記仮想ボリュームに対して発生した各変更への参照を前記第1のリストおよび前記第2のリストの両方に追加することにより、前記ウィンドウ内に発生した前記少なくとも1つの変更を前記第1のスナップショットおよび前記第2のスナップショットの両方に関連付ける、請求項19に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2012−527656(P2012−527656A)
【公表日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−516445(P2011−516445)
【出願日】平成21年6月16日(2009.6.16)
【国際出願番号】PCT/US2009/047494
【国際公開番号】WO2010/002582
【国際公開日】平成22年1月7日(2010.1.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.Bluetooth
3.フロッピー
【出願人】(510331825)シマンテック・コーポレーション (2)
【Fターム(参考)】