(57)【特許請求の範囲】
【請求項１】
イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法であって、
第１の時点においてソースストレージの第１のスナップショットを取得することと、
前記第１の時点で前記ソースストレージに割り振られているブロックの第１のブロック位置セットを識別することと、
前記第１のスナップショットのスナップショット後静止中に前記第１のスナップショットに書き込まれたブロックの第２のブロック位置セットを識別することであって、それにより、第１の静止スナップショットを生成する、前記第２のブロック位置セットを識別することと、
ブールＯＲ演算を前記第１のブロック位置セット及び前記第２のブロック位置セットに対して実行することにより、第３のブロック位置セットを計算することと、
前記第３のブロック位置セットにおけるブロックを前記第１の静止スナップショットから完全イメージバックアップにコピーすることと
前記第１の時点と第２の時点との間で前記ソースストレージで変更されたブロックの第４のブロック位置セットを追跡することと、
前記第２の時点において前記ソースストレージの第２のスナップショットを取得することと、
前記第２の時点で前記ソースストレージにおいて割り振られているブロックの第５のブロック位置セットを識別することと、
前記第２のスナップショットのスナップショット後静止中に前記第２のスナップショットに書き込まれたブロックの第６のブロック位置セットを識別することであって、それにより、第２の静止スナップショットを生成する、前記第６のブロック位置セットを識別することと、
ブールＯＲ演算を前記第２のブロック位置セット及び前記第４のブロック位置セットに対して実行することにより、第７のブロック位置セットを計算することと、
ブールＡＮＤ演算を前記第５のブロック位置セット及び前記第７のブロック位置セットに対して実行することにより、第８のブロック位置セットを計算することと、
ブールＯＲ演算を前記第６のブロック位置セット及び前記第８のブロック位置セットに対して実行することにより、第９のブロック位置セットを計算することと、
前記第９のブロック位置セットにおけるブロックを前記第２の静止スナップショットから増分イメージバックアップにコピーすることと
を含む、方法。
【請求項２】
前記第１のスナップショットを取得すること及び前記第２のスナップショットを取得することは、ボリュームシャドウコピーサービス（ＶＳＳ）によって実行される、請求項１に記載の方法。
【請求項３】
前記第１のスナップショットの前記スナップショット後静止及び前記第２のスナップショットの前記スナップショット後静止は、前記ＶＳＳによって実行される、請求項２に記載の方法。
【請求項４】
前記第１のスナップショットの前記スナップショット後静止及び前記第２のスナップショットの前記スナップショット後静止は、ＶＳＳライタによって実行される、請求項２に記載の方法。
【請求項５】
前記ＶＳＳライタは、アクティブディレクトリ（ＡＤ）サービス又はハイパーＶハイパーバイザである、請求項４に記載の方法。
【請求項６】
前記第１のブロック位置セットを識別することは、前記第１のスナップショットに記憶された前記ソースストレージの第１のファイルシステムブロック割り振りマップ（ＦＳＢＡＭ）にアクセスすることによって実行される、請求項１に記載の方法。
【請求項７】
前記第５のブロック位置セットを識別することは、前記第２のスナップショットに記憶された前記ソースストレージの第２のＦＳＢＡＭにアクセスすることによって実行される、請求項６に記載の方法。
【請求項８】
１つ又は複数のプログラムを記憶する１つ又は複数の非一時的コンピュータ可読媒体であって、前記プログラムは、実行されると、１つ又は複数のプロセッサに請求項１に記載の方法を実行させるように構成される、１つ又は複数の非一時的コンピュータ可読媒体。
【請求項９】
イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法であって、
第１の時点においてソースストレージの第１のスナップショットを取得することと、
前記第１の時点から前記ソースストレージの第１のファイルシステムブロック割り振りマップ（ＦＳＢＡＭ）にアクセスすることであって、前記第１のＦＳＢＡＭは、前記第１の時点で前記ソースストレージに割り振られているブロックのブロック位置を識別する、前記第１のＦＳＢＡＭにアクセスすることと、
前記第１のスナップショットの第１の静止マップにアクセスすることであって、前記第１の静止マップは、前記第１のスナップショットのスナップショット後静止中に前記第１のスナップショットに書き込まれたブロックのブロック位置を識別し、前記第１の静止マップにアクセスすることにより、第１の静止スナップショットが生成される、第１の静止マップにアクセスすることと、
ブールＯＲ演算を前記第１のＦＳＢＡＭ及び前記第１の静止マップに対して実行することにより、完全バックアップブロック位置を計算することと、
前記完全バックアップブロック位置におけるブロックを前記第１の静止スナップショットから完全イメージバックアップにコピーすることと
変更マップにおいて、前記第１の時点と第２の時点との間で前記ソースストレージにおいて変更されたブロックのブロック位置を追跡することと、
前記第２の時点において前記ソースストレージの第２のスナップショットを取得することと、
前記第２の時点から前記ソースストレージの第２のＦＳＢＡＭにアクセスすることであって、前記第２のＦＳＢＡＭは、前記第２の時点で前記ソースストレージにおいて割り振られているブロックのブロック位置を識別する、前記第２のＦＳＢＡＭにアクセスすることと、
前記第２のスナップショットの第２の静止マップにアクセスすることであって、前記第２の静止マップは、前記第２のスナップショットのスナップショット後静止中に前記第２のスナップショットに書き込まれたブロックのブロック位置を識別し、前記第２の静止マップにアクセスすることにより、第２の静止スナップショットが生成される、第２の静止マップにアクセスすることと、
ブールＯＲ演算を前記第１の静止マップ及び前記変更マップに対して実行し、次に、前記第２のＦＳＢＡＭとのブールＡＮＤ演算を実行し、次に、前記第２の静止マップとのブールＯＲ演算を実行することにより、増分バックアップブロック位置を計算することと、
前記増分バックアップブロック位置におけるブロックを前記第２の静止スナップショットから増分イメージバックアップにコピーすることと
を含む、方法。
【請求項１０】
前記第１のスナップショットを取得すること及び前記第２のスナップショットを取得することは、ボリュームシャドウコピーサービス（ＶＳＳ）によって実行される、請求項９に記載の方法。
【請求項１１】
前記第１のスナップショットの前記スナップショット後静止及び前記第２のスナップショットの前記スナップショット後静止は、前記ＶＳＳによって実行される、請求項１０に記載の方法。
【請求項１２】
前記第１のスナップショットの前記スナップショット後静止及び前記第２のスナップショットの前記スナップショット後静止は、ＶＳＳライタによって実行される、請求項１０に記載の方法。
【請求項１３】
前記ＶＳＳライタは、アクティブディレクトリ（ＡＤ）サービス又はハイパーＶハイパーバイザである、請求項１２に記載の方法。
【請求項１４】
前記第１のＦＳＢＡＭは前記第１のスナップショットに記憶される、請求項９に記載の方法。
【請求項１５】
前記第２のＦＳＢＡＭは前記第２のスナップショットに記憶される、請求項９に記載の方法。
【請求項１６】
１つ又は複数のプログラムを記憶する１つ又は複数の非一時的コンピュータ可読媒体であって、前記プログラムは、実行されると、１つ又は複数のプロセッサに請求項９に記載の方法を実行させるように構成される、１つ又は複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される実施形態は、イメージバックアップにおけるスナップショット後静止書き込みの捕捉に関する。
【背景技術】
【０００２】
ストレージとは、データをブロックで記憶可能なコンピュータ可読媒体である。ストレージは、記憶したデータ並びにデータへのスムーズで連続した動作への数え切れないほどの脅威に面している。これらの脅威を軽減するために、特定の時点でのソースストレージの状態を表すストレージでのデータのバックアップが作成され、何らかの将来の時間でのデータのリストアを可能にし得る。そのようなリストアは、例えば、ストレージが記憶データの破損を受ける場合、ストレージが利用不可能になる場合、又はユーザが第２の理想的なストレージを作成したい場合、望ましくなり得る。
【０００３】
ストレージは通常、有限数の固定長ブロックに論理的に分割される。ストレージはまた、通常、ストレージに記憶された各ファイルに割り振られたブロックのロケーションを追跡するファイルシステムを含む。ファイルシステムは、いかなるファイルにも割り振られていないブロックも追跡する。ファイルシステムは一般に、ファイルシステムメタデータと呼ばれる特別なデータ構造を使用して、割り振られたブロック及び割り振られていないブロックを追跡する。ファイルシステムメタデータも、ストレージの指定されたブロックに記憶される。
【０００４】
ソースストレージをバックアップする様々な技法が存在する。一般的な一技法は、ソースストレージに記憶された個々のファイルをファイル単位でバックアップすることを含む。この技法は多くの場合、ファイルバックアップと呼ばれる。ファイルバックアップは、ソースストレージのファイルシステムを開始点として使用し、ファイルを宛先ストレージに書き込むことによってバックアップを実行する。この手法を使用して、個々のファイルは、前回のバックアップから変更された場合、バックアップされる。ファイルバックアップは、少数の失われたか、又は破損したファイルを見つけてリストアするために有用であり得る。しかし、ファイルバックアップは、各ファイルがソースストレージ及び宛先ストレージのファイルシステム内のどこに存在するかについての情報の追跡及び記憶を必要とするため、帯域幅及び論理的オーバーヘッドの形態で大きなオーバーヘッドを含むこともある。
【０００５】
ソースストレージをバックアップする別の一般的な技法は、ソースストレージに記憶された個々のファイルのロケーションを無視し、その代わり単純に、ソースストレージに記憶された全ての割り振りブロックをバックアップする。この技法は、イメージバックアップと呼ばれることが多く、その理由は、バックアップが一般に、ソースストレージの割り振られた内容全体のイメージ又はコピーを含むか、又は表すためである。この手法を使用して、個々の割り振りブロックは、前回のバックアップから変更された場合、バックアップされる。イメージバックアップは、ソースストレージの全ての割り振りブロックをバックアップするため、ソースストレージに記憶されたファイルを構成するブロック及びファイルシステムメタデータを構成するブロックの両方をバックアップする。また、イメージバックアップは、個々のファイルではなく全ての割り振りブロックをバックアップするため、この手法は、割り振られていないブロックは一般にバックアップされないことから、割り振りブロックのみをバックアップするために、ファイルシステムメタデータの最低限の知識を利用することを超えて、ソースストレージに記憶されたファイルシステムメタデータ又はファイルを必ずしも認識する必要がない。
【０００６】
イメージバックアップは、ファイルシステムへの依存が最小であるため、ファイルバックアップと比較して高速であることができる。イメージバックアップはまた、シーキングが低減されるため、ファイルバックアップと比較して高速であることができる。特に、イメージバックアップ中、ブロックは一般に、比較的限られたシーキングで順次読み出される。これとは対照的に、ファイルバックアップ中、個々のファイルを構成するブロックは散乱し得、その結果、シーキングが比較的長くなる。
【０００７】
イメージバックアップを達成する一方法は、スナップショットを使用することであり、スナップショットは、他のプロセスを妨げずに、特定の時点でのソースストレージの状態を捕捉できるようにし、したがって、ソースストレージのダウンタイムを回避する。多くのスナップショットは、「コピーオンライト」方法論を利用し、この方法論では、スナップショット動作中にソースストレージが受信したあらゆる書き込みコマンドが、書き込みコマンドによって標的とされるロケーションにある元のデータブロックが、保管のために新しいロケーションにコピーされるまで、遅延されることを必要とする。このようにして、新しいロケーションに記憶された、コピーされた元ブロック及びソースストレージに記憶された変更されていない元ブロックは、スナップショット時に「凍結」され、「スナップショット」を定義し、このスナップショットが次に、ソースストレージのイメージバックアップの作成時に利用可能である。次に、イメージバックアップが作成されると、スナップショットの部分としてコピーされたデータブロックは、破棄することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
イメージバックアップの作成中にスナップショットを使用することに伴う一般的な一問題は、ソースストレージがスナップショット時に理想的な状態ではないことがあることである。例えば、スナップショットは、アプリケーションが、イメージバックアップのリストア中に有用であるソースストレージにデータを保存する前に、作成され得る。したがって、この有用なデータは、スナップショットに含まれず、したがって、スナップショットに基づいて作成されるイメージバックアップから欠落することになる。
【０００９】
ソースストレージがスナップショット時に理想的な状態にないことを減らすために、スナップショットをイメージバックアップの作成のために改善された状態にするようにスナップショットを変更するスナップショット後静止技術が開発された。例えば、幾つかのプラットフォームでは、ソフトウェアアプリケーションは、スナップショットが作成された後、スナップショットへの書き込み動作を発行することが許され得る。これは、これらのソフトウェアアプリケーションが、スナップショットがイメージバックアップの作成に使用される前に、スナップショットにスナップショット後静止書き込みを実行できるようにする。しかし、イメージバックアップチェイン内の各連続イメージバックアップは通常、スナップショット時でのソースストレージの厳密な状態を表す前のイメージバックアップに依存するとともに、スナップショット後静止技術は、スナップショットがもはや、スナップショット時でのソースストレージの厳密な状態を表さないようにさせるため、スナップショット後静止技術は通常、イメージバックアップチェインの作成に利用されない。したがって、イメージバックアップチェインでの個々のイメージバックアップは、スナップショット後静止技術によって提供される改善された状態を有さず、したがって、イメージバックアップチェインをリストアストレージにリストアするときが来た場合、それほど有用ではない。
【課題を解決するための手段】
【００１０】
本明細書で特許請求される趣旨は、任意の欠点を解消するか、又は上述した環境等の環境のみで動作する実施形態に限定されない。むしろ、この背景は、本明細書に記載される幾つかの実施形態が実施され得る一技術例を示すためにのみ提供されている。
【００１１】
一般に、本明細書に記載される実施形態例は、イメージバックアップにおいてスナップショット後静止書き込みを捕捉することに関する。本明細書に開示される実施形態例は、スナップショット後静止状態でのソースストレージを表すイメージバックアップチェイン内のイメージバックアップの少なくとも幾つかを用いて、イメージバックアップチェイン内の１つ又は複数のイメージバックアップを作成するために利用し得る。スナップショット後静止状態でのソースストレージを表すイメージバックアップをイメージバックアップチェインに含めることにより、イメージバックアップチェインをリストアストレージにリストアするときが来た場合、イメージバックアップはより有用になり得る。
【００１２】
一実施形態例では、イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法は、第１の時点においてソースストレージの第１のスナップショットを取得することと、第１の時点でソースストレージに割り振られているブロックの第１のブロック位置セットを識別することと、第１のスナップショットのスナップショット後静止中に第１のスナップショットに書き込まれたブロックの第２のブロック位置セットを識別することであって、それにより、第１の静止スナップショットを生成する、第２のブロック位置セットを識別することと、ブールＯＲ演算を第１のブロック位置セット及び第２のブロック位置セットに対して実行することにより、第３のブロック位置セットを計算することと、第３のブロック位置セットにおけるブロックを第１のスナップショットから完全イメージバックアップにコピーすることとを含み得る。
【００１３】
別の実施形態例では、イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法は、第１の時点においてソースストレージの第１のスナップショットを取得することと、第１の時点からソースストレージの第１のファイルシステムブロック割り振りマップ（ＦＳＢＡＭ）にアクセスすることであって、第１のＦＳＢＡＭは、第１の時点でソースストレージに割り振られているブロックのブロック位置を識別する、第１のＦＳＢＡＭにアクセスすることと、第１のスナップショットの第１の静止マップにアクセスすることであって、第１の静止マップは、第１のスナップショットのスナップショット後静止中に第１のスナップショットに書き込まれたブロックのブロック位置を識別し、第１の静止マップにアクセスすることにより、第１の静止スナップショットが生成される、第１の静止マップにアクセスすることと、ブールＯＲ演算を第１のＦＳＢＡＭ及び第１の静止マップに対して実行することにより、完全バックアップブロック位置を計算することと、完全バックアップブロック位置におけるブロックを第１のスナップショットから完全イメージバックアップにコピーすることとを含み得る。
【００１４】
上記概説及び以下の詳細な説明の両方が、説明的であり、特許請求される本発明の限定ではないことを理解されたい。
実施形態例について、添付図面の使用を通して更に具体的且つ詳細に記載し説明する。
【図面の簡単な説明】
【００１５】
【図１】イメージバックアップ及びリストアシステム例を示す概略ブロック図である。
【図２Ａ】イメージバックアップにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図２Ｂ】イメージバックアップにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図２Ｃ】図２Ａ及び図２Ｂの時系列から生じる線形イメージバックアップチェインを示す概略ブロック図である。
【図３Ａ】線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図３Ｂ】線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図３Ｃ】図３Ａ及び図３Ｂの時系列から生じる線形イメージバックアップチェインを示す概略ブロック図である。
【図４Ａ】分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図４Ｂ】分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列を示す概略ブロック図である。
【図４Ｃ】図４Ａ及び図４Ｂの時系列から生じる分岐イメージバックアップチェインを示す概略ブロック図である。
【図５】イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法例を示す概略フローチャートである。
【図６】線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する方法例を示す概略フローチャートである。
【図７】分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する方法例を示す概略フローチャートである。
【発明を実施するための形態】
【００１６】
本明細書で使用される場合、「ストレージ」という用語は、１つ又は複数のフロッピー（登録商標）ディスク、光ディスク、磁気ディスク、固体状態（フラッシュ）ディスク、又はボリューム等のそれらの何らかの論理部分等のブロックでデータを記憶可能なコンピュータ可読媒体を指す。本明細書で使用される場合、「ブロック」という用語は、ビットの固定長離散シーケンスを指す。幾つかのファイルシステムでは、ブロックは「クラスタ」と呼ばれることがある。幾つかの実施形態例では、各ブロックのサイズは、ブロックが記憶されるストレージの標準セクタサイズに一致するように構成し得る。例えば、各ブロックのサイズは５１２バイト（４０９６ビット）であり得、ここで、５１２バイトは標準セクタのサイズである。他の実施形態例では、各ブロックのサイズは、ブロックが記憶されるストレージの標準セクタサイズの倍数であるように構成し得る。例えば、各ブロックのサイズは、４０９６バイト（３２，７６８ビット）であり得、ここで、５１２バイト（４０９６ビット）が標準セクタのサイズであり、各ブロックが８つのセクタを含むことになる。幾つかのファイルシステムでは、ブロックはファイルシステムの割り振り単位であり、割り振りブロック及び空きブロックはファイルシステムによって追跡される。本明細書で使用される場合、「割り振りブロック」という用語は、ストレージのファイルシステムによってデータを記憶しているものとして現在追跡されているストレージ内のブロックを指す。本明細書で使用される場合、「空きブロック」という用語は、ストレージのファイルシステムによってデータを記憶しているものとして現在追跡されていないストレージ内のブロックを指す。本明細書で名詞として使用される場合、「バックアップ」という用語は、ストレージからの１つ又は複数のブロックのコピーを指す。本明細書で使用される場合、「完全バックアップ」という用語は、完全バックアップが、いかなる他のバックアップにも依存せずに、それ自体でリストアして、その時点でのストレージの状態を再生成することができるような、ある時点でのストレージの一意の各割り振りブロックの少なくとも１つのコピーを含むストレージの完全バックアップを指す。「完全バックアップ」は、その時点でのストレージの非一意の割り振りブロック及び空きブロックを含むこともできる。「完全バックアップ」のファイルフォーマット例は、シャドウプロテクト完全（ＳＰＦ：ＳｈａｄｏｗＰｒｏｔｅｃｔ  Ｆｕｌｌ）イメージバックアップフォーマットである。本明細書で使用される場合、「増分バックアップ」という用語は、増分バックアップが、ストレージの初期完全バックアップを含め、ストレージの全ての前のバックアップと共に、増分イメージバックアップチェインとして一緒にリストアされて、後続時点でのストレージの状態を再生成することができるような、ストレージの前回のバックアップの前時点と、増分バックアップの後続時点との間で変更されたストレージの一意の各割り振りブロックの少なくとも１つのコピーを含むストレージの少なくとも部分的なバックアップを指す。「増分バックアップ」は、前の時点と後続時点との間で変更されたストレージの非一意の割り���りブロック及び空きブロックを含むこともできる。「増分バックアップ」のファイルフォーマット例は、シャドウプロテクト増分（ＳＰＩ：ＳｈａｄｏｗＰｒｏｔｅｃｔ  Ｉｎｃｒｅｍｅｎｔａｌ）イメージバックアップフォーマットである。本明細書で使用される場合、「変更されたブロック」という用語は、そのブロックが前に割り振られて、変更されたため、又はそのブロックが、新たに割り振られて変更されたことによって変更されたため、変更されたブロックを指す。本明細書で使用される場合、「減分バックアップ」という用語は、減分バックアップが、ストレージの完全バックアップを含め、ストレージの後続する全ての減分バックアップと共に、減分イメージバックアップチェインとして一緒にリストアされて、前の時点でのストレージの状態を再生成することができるような、前の時点と後続時点との間で変更されたソースストレージ内のブロックに対応するストレージの完全バックアップからの一意の各割り振りブロックの少なくとも１つのコピーを含むストレージの少なくとも部分的なバックアップを指す。「減分バックアップ」は、ある時点と後続時点との間で変更されたソースストレージ内のブロックに対応するストレージの完全バックアップからの非一意の割り振りブロック及び空きブロックを含むこともできる。「完全バックアップ」、「増分バックアップ」、及び／又は「減分バックアップ」が、仮想メモリページネーションファイル及びマシンハイバーネーション状態ファイル等の内容がリストア目的で必要がないファイルに属するブロック等の特定の望ましくない割り振りブロックを除外し得ることが理解される。
【００１７】
図１は、例としてのイメージバックアップ・リストアシステム１００を示す概略ブロック図である。図１に開示されるように、システム１００は、ソースシステム１０２、宛先システム１０４、及びリストアシステム１０６を含み得る。システム１０２、１０４、及び１０６はそれぞれストレージ１０８、１１０、及び１１２を含み得る。ソースシステム１０２はバックアップモジュール１１４を含むこともでき、リストアシステム１０６はリストアモジュール１１６を含むこともできる。システム１０２、１０４、及び１０６は、ネットワーク１１８を介して互いに通信するように構成し得る。
【００１８】
宛先ストレージ１１０は、ソースストレージ１０８の１つ又は複数のイメージバックアップを記憶し得る。例えば、宛先ストレージ１１０は、完全イメージバックアップ１２０、第１の増分イメージバックアップ１２２、第２の増分イメージバックアップ１２４、及び第ｎの増分イメージバックアップ１２６を記憶し得、これらは一緒に増分イメージバックアップチェインを構成する。完全イメージバックアップ１２０は、時間ｔ（１）でのソースストレージの状態を表し得、第１の増分イメージバックアップ１２２は、時間ｔ（２）でのソースストレージの状態を表し得、第２の増分イメージバックアップ１２４は、時間ｔ（３）でのソースストレージの状態を表し得、第ｎの増分イメージバックアップ１２６は、時間ｔ（ｎ＋１）でのソースストレージの状態を表し得る。任意のイメージバックアップ１２０〜１２６は、リストアストレージ１１２にリストアし得る。
【００１９】
システム１０２、１０４、及び１０６のそれぞれは、例えば、ファイルサーバ、ウェブサーバ、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル消費者電子デバイス、スマートフォン、デジタルカメラ、ハードディスクドライブ、フラッシュメモリドライブ、及び仮想マシンを含め、ストレージをサポートし、他のシステムと通信することが可能な任意の計算デバイスであり得る。ネットワーク１１８は、例えば、ローカルエリアネットワーク（ＬＡＮ）、大都市圏ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、無線アプリケーションプロトコル（ＷＡＰ）ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、インターネット等のインターネットプロトコル（ＩＰ）ネットワーク、又はそれらの何らかの組合せを含め、任意の有線又は無線通信ネットワークであり得る。ネットワーク１１８は、１つ又は複数の仮想マシン及び／又は物理的マシンが通信できるようにするハイパーバイザのネットワークエミュレーションであってもよい。
【００２０】
宛先ストレージ１１０に記憶された増分イメージバックアップチェインは、バックアップモジュール１１４によって作成し得る。例えば、バックアップモジュール１１４は、実行されると、１つ又は複数のプロセッサに、ソースストレージ１０８の完全イメージバックアップ及び複数の増分イメージバックアップを作成するイメージバックアップ動作を実行させるように構成される１つ又は複数のプログラムであり得る。なお、これらのイメージバックアップはまず、ソースシステム１０２で作成され、次に、宛先システム１０４にコピーし得る。
【００２１】
例えば、完全イメージバックアップ１２０が作成されて、時間ｔ（１）での状態を捕捉し得る。このイメージバックアップ動作は、バックアップモジュール１１４が、時間ｔ（１）において割り振られたソースストレージ１０８の全ての一意の割り振りブロックをコピーし、一意の割り振りブロックを宛先ストレージ１１０に記憶するか、又は一意の割り振りブロックが宛先ストレージ１１０に既に記憶されていることを確認することを含み得る。時間ｔ（１）でのソースストレージ１０８の状態は、他のプロセスを妨げることなく、時間ｔ（１）においてソースストレージ１０８に記憶されたブロックを捕捉するために、本明細書に開示されるスナップショット方法を使用して捕捉し得、したがって、ソースストレージ１０８のダウンタイムを回避する。完全イメージバックアップ１２０は、ソースストレージ１０８のサイズ及び時間ｔ（１）での割り振りブロックの数に応じて、比較的大きくなり得る。その結果、宛先ストレージ１１０は、作成に比較的長い時間を要し、宛先ストレージ１１０内の比較的大きな領域を消費し得る。
【００２２】
次に、第１及び第２の増分イメージバックアップ１２２及び１２４が作成されて、時間ｔ（２）及びｔ（３）での状態をそれぞれ捕捉し得る。これは、時間ｔ（２）において存在するソースストレージ１０８の変更された一意の割り振りブロックのみをコピーし、変更された一意の割り振りブロックを宛先ストレージ１１０に記憶するか、又は変更された一意の割り振りブロックが宛先ストレージ１１０に既に記憶されていることを確認し、後に、時間ｔ（３）において存在するソースストレージ１０８の変更された一意の割り振りブロックのみをコピーし、変更された一意の割り振りブロックを宛先ストレージ１１０に記憶するか、又は変更された一意の割り振りブロックが宛先ストレージ１１０に既に記憶されていることを確認することを含み得る。時間ｔ（２）及びｔ（３）でのソースストレージ１０８の状態も、本明細書に開示されるスナップショット方法を使用して捕捉することができ、それにより、ソースストレージ１０８のダウンタイムが回避される。各増分イメージバックアップは、前のイメージバックアップの時間後に変更されたソースストレージ１０８からの一意の割り振りブロックのみを含み得る。したがって、第１の増分イメージバックアップ１２２は、時間ｔ（１）と時間ｔ（２）との間で変更されたソースストレージ１０８からの一意の割り振りブロックのみを含み得、第２の増分イメージバックアップ１２４は、時間ｔ（２）と時間ｔ（３）との間で変更されたソースストレージ１０８からの一意の割り振りブロックのみを含み得る。一般に、完全イメージバックアップ１２０と比較して、各増分イメージバックアップは、作成に比較的短い時間を要し、宛先ストレージ１１０内の比較的小さな記憶領域を消費し得る。
【００２３】
最後に、第ｎの増分イメージバックアップ１２６は、時間ｔ（ｎ＋１）での状態を捕捉するために作成し得る。これは、スナップショット技術を使用して、時間ｔ（ｎ＋１）において存在するソースストレージ１０８の変更された一意の割り振りブロックのみをコピーし、変更された一意の割り振りブロックを宛先ストレージ１１０に記憶するか、又は変更された一意の割り振りブロックが宛先ストレージ１１０に既に記憶されていることを確認することを含み得る。第ｎの増分イメージバックアップ１２６は、時間ｔ（ｎ）と時間ｔ（ｎ＋１）との間で変更されたソースストレージ１０８からの一意の割り振りブロックのみを含み得る。
【００２４】
したがって、増分イメージバックアップは、断続的に作成し得る。新しい増分イメージバックアップを作成する頻度は、万が一、ソースストレージ１０８が記憶ブロックの破損を受けるか、又は任意の所与の時点で利用できなくなる場合に失われることになるデータ量を調整するために、所望に応じて変更し得る。ソースストレージ１０８からのブロックは、最も古いイメージバックアップから最も新しいイメージバックアップまで、イメージバックアップをリストアストレージ１１２に適用すること、すなわち、まず完全イメージバックアップ１２０を適用し、次に特定の増分イメージバックアップまでの各後続増分イメージバックアップを適用することにより、特定の増分イメージバックアップの時点での状態にリストアすることができる。代替的には、ソースストレージ１０８からのブロックは、イメージバックアップをリストアストレージ１１２に同時に適用すること、すなわち、完全イメージバックアップ１２０及び特定の増分イメージバックアップまでの各後続増分イメージバックアップを同時に適用することにより、特定の増分イメージバックアップの時点での状態にリストアすることができる。
【００２５】
割り振りブロックのみが、上述した増分イメージバックアップ例に含まれるが、代替の実施態様では、完全イメージバックアップ又は増分イメージバックアップの作成中、割り振りブロック及び空きブロックの両方がバックアップされ得ることが理解される。これは通常、ブロックが使用され割り振られていた前の時点からのデータを空きブロックが含む場合、空きブロックの内容に興味があり得るため、フォレンジック目的で行われる。したがって、本明細書に開示されるような完全イメージバックアップ及び増分イメージバックアップの作成は、割り振りブロックに限定されず、空きブロックを含むこともできる。
【００２６】
さらに、完全イメージバックアップ及び増分イメージバックアップのみが上述されているが、ソースストレージ１０８が代わりに、完全イメージバックアップ及び１つ又は複数の減分イメージバックアップを作成することによってバックアップされてもよいことが理解される。減分イメージバックアップは、まず、完全イメージバックアップを作成して、初期時点での状態を捕捉し、次に、初期時点と後続時点との間で変更された完全イメージバックアップ内のブロックのみを変更することにより、後続時点での状態を捕捉するように完全イメージバックアップを更新することによって作成される。しかし、完全イメージバックアップの更新前では、変更されたブロックのロケーションに対応する完全イメージバックアップ内の任意の元のブロックは、減分イメージバックアップにコピーされ、したがって、初期時点でのソースストレージ１０８のリストアを可能にする（更新された完全イメージバックアップをリストアし、次に、減分イメージバックアップをリストアすることによるか、若しくは更新された完全イメージバックアップ及び減分イメージバックアップを同時にリストアすることにより）か、又は後続時点でのソースストレージ１０８のリストアを可能にする（単に更新された完全イメージバックアップをリストアすることにより）。１つの完全イメージバックアップのリストアは一般に、完全イメージバックアップ及び１つ又は複数の増分又は減分イメージバックアップのリストアよりも高速であるため、増分イメージバックアップの代わりに減分イメージバックアップを作成することにより、最新のイメージバックアップをより素早くリストアすることが可能になり得、その理由は、最新のイメージバックアップが常に、潜在的に増分イメージバックアップである代わりに完全イメージバックアップであるためである。したがって、本明細書に開示される方法は、増分イメージバックアップチェインでの実施に限定されず、減分イメージバックアップチェインでの実施も含み得る。
【００２７】
一実施形態例では、宛先システム１０４はネットワークサーバであり得、ソースシステム１０２は第１のデスクトップコンピュータであり得、ソースストレージ１０８は、第１のデスクトップコンピュータの１つ又は複数の磁気ハードドライブのボリュームであり得、リストアシステム１０６は第２のデスクトップコンピュータであり得、リストアストレージ１１２は、第２のデスクトップコンピュータの１つ又は複数の磁気ハードドライブのボリュームであり得、ネットワーク１１８はインターネットを含み得る。この実施形態例では、第１のデスクトップコンピュータは、宛先ストレージ１１０に記憶される完全イメージバックアップ１２０及び複数の増分イメージバックアップ１２２、１２４、及び１２６を作成することにより、バックアップジョブの一環として、インターネットを介して第１のデスクトップコンピュータのボリュームをネットワークサーバに周期的にバックアップするように構成し得る。第１のデスクトップコンピュータは、増分バックアップの作成への使用に向けて、変更されたブロックのみを容易に素早く識別するために、バックアップ間でのボリュームへの増分変更を追跡するように構成することもできる。第２のデスクトップコンピュータはまた、第１のデスクトップコンピュータがボリュームの破損を受ける場合、又は第１のデスクトップコンピュータのボリュームが利用できなくなる場合、ネットワークサーバからインターネットを介して、イメージバックアップのうちの１つ又は複数を第２のデスクトップコンピュータのボリュームにリストアするように構成し得る。
【００２８】
１つのみのストレージが図１のシステム１０２、１０４、及び１０６のそれぞれに開示されているが、システム１０２、１０４、及び１０６のうちの任意のシステムが代わりに、２つ以上のストレージを含んでもよいことが理解される。さらに、システム１０２、１０４、及び１０６は、ネットワーク１１８を介して通信するものとして図１に開示されているが、システム１０２、１０４、及び１０６が代わりに、互いに直接通信してもよいことが理解される。例えば、ソースストレージ１０８がリストアストレージ１１２と同じストレージを表す実施形態を含め、幾つかの実施形態では、システム１０２、１０４、及び１０６の任意の組合せが１つのシステムに組み合せ得る。さらに、図１のシステム１００において開示されるモジュールは、バックアップモジュール１１４及びリストアモジュール１１６のみであるが、モジュール１１４及び１１６の機能が、システム１０２、１０４、若しくは１０６のうちの任意のシステム又は別のシステムに存在する１つ又は複数の同様のモジュールで置換又は拡張し得ることが理解される。最後に、１つのみのソースストレージ及び１つのみのリストアストレージが図１のシステム１００に開示されているが、図１の宛先システム１０４が、複数のソースストレージを同時にバックアップし、且つ／又は複数のリストアストレージに同時にリストするように構成し得ることが理解される。例えば、宛先システム１０４が重複排除システム（イメージバックアップ内の重複ブロックを除去可能であり、且つ／又はイメージバックアップ間で重複ブロックを除去可能である）として構成される場合、宛先システム１０４の宛先ストレージ１１０にバックアップされるストレージの数が多いほど、冗長性が低減され、バックアップされるブロックの全体数が低減する可能性が高くなり、それに対応して、宛先ストレージ１１０の全体サイズ要件及び宛先ストレージ１１０にブロックを運ぶ帯域幅オーバーヘッドが低減することになる。
【００２９】
図１に関して特定の一環境について説明したが、図１の特定の環境が、本明細書に開示される方法例が実施可能な無数の環境の単なる１つであることが理解される。実施形態例の範囲は、いかなる特定の環境にも限定されることが意図されない。
【００３０】
図２Ａ及び図２Ｂは、イメージバックアップでのスナップショット後静止書き込みの捕捉の時系列２００を示す概略ブロック図である。図２Ｃは、図２Ａ及び図２Ｂの時系列２００から生じる線形イメージバックアップチェイン２０１を示す概略ブロック図である。特に、図２Ａ及び図２Ｂは、時間ｔ（１）、ｔ（１．２）、ｔ（２）、ｔ（２．３）、ｔ（３）、及びｔ（３．１）でのソースストレージ１０８の状態を開示している。完全イメージバックアップ１２０ａは、時間ｔ（１）におけるソースストレージ１０８の状態を表し、第１の増分イメージバックアップ１２２ａは、時間ｔ（２）におけるソースストレージ１０８の状態を表し、第２の増分イメージバックアップ１２４ａは、時間ｔ（３）におけるソースストレージ１０８の状態を表す。しかし、更に詳細に後述するように、イメージバックアップ１２０ａ、１２２ａ、及び１２４ａのそれぞれは、スナップショット後静止変更を更に含み、線形イメージバックアップチェイン２０１内の１つ又は複数のバックアップを図１のリストアストレージ１１２にリストアするときが来た場合、図２Ｃの線形イメージバックアップチェイン２０１（イメージバックアップ１２０ａ、１２２ａ、及び１２４ａで構成される）をより有用なものにする。
【００３１】
図２Ａに開示されるように、時間ｔ（１）でのソースストレージ１０８の状態は、割り振りブロックを位置（１）、（２）、（３）、（５）、及び（１０）に含み、空きブロックを位置（４）、（６）、（７）、（８）、（９）、及び（１１）を含む。これらの割り振りブロックは、時間ｔ（１）におけるファイルシステムブロック割り振りマップ（ＦＳＢＡＭ：ｆｉｌｅ  ｓｙｓｔｅｍ  ｂｌｏｃｋ  ａｌｌｏｃａｔｉｏｎ  ｍａｐ）２０２において反映され、ＦＳＢＡＭは、時間ｔ（１）でのソースストレージ１０８における割り振りブロックのブロック位置を識別する。時間ｔ（１）において、ソースストレージ１０８のスナップショット２０４が取得され、これはまず、時間ｔ（１）でのソースストレージ１０８の状態を捕捉する。ＦＳＢＡＭ２０２は、スナップショット２０４に記憶してもよく、又はスナップショット２０４とは別個に記憶してもよい。
【００３２】
時間ｔ（１）と時間ｔ（１．２）との間で、スナップショット２０４の状態は、位置（１）、（２）、（３）、（６）、及び（７）でのブロックへのスナップショット後静止書き込みによって変更され、その結果、時間ｔ（１．２）において静止スナップショット２０６が生成される。これらのスナップショット後静止書き込みは、静止マップ２０８において反映され、このマップは、スナップショット２０４のスナップショット後静止中にスナップショット２０４に書き込まれたブロックのブロック位置を識別し、その結果、静止スナップショット２０６が生成される。
【００３３】
例えば、マイクロソフト・ウィンドウズ（登録商標）（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））プラットフォームでは、ボリュームシャドウコピーサービス（ＶＳＳ：Ｖｏｌｕｍｅ  Ｓｈａｄｏｗ  Ｃｏｐｙ  Ｓｅｒｖｉｃｅ）フレームワークにより、スナップショット２０４が作成された後、ＶＳＳライタとして知られるソフトウェアアプリケーションが、ＶＳＳを通して間接的に、又はＶＳＳライタから直接、スナップショット２０４への書き込み動作を発行することができ得る。これにより、ＶＳＳ又はＶＳＳライタは、後述するように、スナップショット２０４が完全イメージバックアップ１２０の作成に使用される前に、スナップショット後静止書き込みをスナップショット２０４に対して実行することができる。本明細書に開示される方法例を使用して利用し得るＶＳＳライタの例としては、アクティブディレクトリ（ＡＤ）サービス及びハイパーＶハイパーバイザが挙げられる。
【００３４】
スナップショット２０４及び対応する静止スナップショット２０６が、様々な方法で実施可能なことが理解される。例えば、スナップショット２０４及び対応する静止スナップショット２０６は、図２Ａに示されるように、２つの完全に別個のスナップショットとして実施し得る。代替的には、スナップショット２０４及び対応する静止スナップショット２０６は、時間ｔ（１）においてスナップショット２０４に記憶されるような元のブロックと、時間ｔ（１）と時間ｔ（１．２）との間でのスナップショット２０４のスナップショット後静止の一環として書き込まれたブロックとの両方を記憶する１つのスナップショットとして実施し得、その結果、幾つかの個々のブロック位置に２つのブロックを記憶し得る（すなわち、スナップショット時の位置での元のブロック及びスナップショット後静止中の位置に書き込まれた新しいブロック）１つのスナップショットが生成される。この実施態様では、「スナップショット」への参照は、スナップショットのスナップショット後静止前の元のスナップショットに書き込まれたブロックを指し、「静止スナップショット」への参照は、スナップショットのスナップショット後静止の一環として書き込まれるブロックを指す。代替的には、スナップショット２０４及び対応する静止スナップショット２０６は、スナップショット２０４において、スナップショット２０４のスナップショット後静止中に書き込まれたブロックに対応するスナップショット２０４内の元のブロックを維持し、スナップショット後静止中に書き込まれたブロックを静止スナップショット２０６に書き込むことによって実施し得る。この実施態様では、スナップショット後静止中に書き込まれたブロックに対応しないスナップショット２０４内の元のブロックは、スナップショット２０４に保持し得るか、又は静止スナップショット２０６によって露出若しくはコピーし得る。したがって、本明細書では、任意の「スナップショット」及び対応する「静止スナップショット」が、上述した実施態様の任意の１つを使用して実施し得ることが理解される。
【００３５】
時間ｔ（１．２）において、完全イメージバックアップ１２０ａのブロック位置が、ＦＳＢＡＭ２０２及び静止マップ２０８に対してブールＯＲ演算を実行することにより計算される。本明細書で使用される場合、「ブールＯＲ演算を実行する」及び「ブールＡＮＤ演算を実行する」という語句は、これらのブール演算の均等物を実行することを指す。例えば、ブール演算子ＯＲ及びＡＮＤは一般に、ブールオペランド真及び偽に適用され、ブール演算それ自体の結果は一般に、真又は偽のいずれかである。したがって、ＦＳＢＡＭ２０２及び静止マップ２０８に対してブール演算を実行するために、ブロック位置は真及び偽オペランドの均等物に変換し得る。これは、例えば、値１，１，１，０，１，０，０，０，０，１，０を有するビットマップとしてＦＳＢＡＭ２０２を見なすことによって達成し得、ここで、「１」ビットは割り振りブロック位置を表し、「０」ビットは空きブロック位置を表す。同様に、静止マップも値１，１，１，０，０，１，１，０，０，０，０を有するビットマップとして見なし得、ここで、「１」ビットは変更されたブロックの位置を表し、「０」ビットは元のブロックの位置を表す。最後に、ブールＯＲ演算がこれらの２つのビットマップに対して実行することができ、ここで、「１」ビットは真を表し、「０」ビットは偽を表し、その結果、ビットマップ１，１，１，０，１，１，１，０，０，１，０が生成され、これは、時間ｔ（１．２）以降の時点での位置（１）、（２）、（３）、（５）、（６）、（７）、及び（１０）を列挙した完全バックアップブロック位置マップ２１０に表される。
【００３６】
最後に、完全イメージバックアップ１２０ａが、完全バックアップブロック位置マップ２１０に列挙された位置からのブロックを静止スナップショット２０６から完全イメージバックアップ１２０ａにコピーすることにより、時間ｔ（１．２）以降の時点において作成することができる。したがって、図２Ａの完全イメージバックアップ１２０ａは、時間ｔ（１）でのソースストレージ１０８の状態を表すが、スナップショット後静止変更を有しており、完全イメージバックアップ１２０ａを図１のリストアストレージ１１２にリストアするときが来たとき、完全イメージバックアップ１２０ａをより有用なものにし得る。
【００３７】
図２Ａに示されるように、時間ｔ（１）と時間ｔ（２）との間で、ソースストレージ１０８は変更される。特に、ブロックが位置（１）、（３）、（５）、（７）、（９）、及び（１１）に書き込まれる。時間ｔ（１）と時間ｔ（２）との間でのこれらの書き込みは、変更マップ２１２において反映され、このマップは、時間ｔ（１）と時間ｔ（２）との間でソースストレージ１０８において変更されたブロックのブロック位置の追跡に使用される。さらに、時間ｔ（２）前に、位置（３）及び（５）におけるブロックは空きになり、位置（６）及び（８）におけるブロックは割り振られるが、データはまだこれらのブロックに書き込まれておらず、位置（１）、（６）、（７）、（８）、（９）、（１０）、及び（１１）に割り振りブロックを含み、位置（２）、（３）、（４）、及び（５）に空きブロックを含む時間ｔ（２）でのソースストレージ１０８の状態が生成される。これらの割り振りブロックは、時間ｔ（２）においてＦＳＢＡＭ２１４において反映され、これは、時間ｔ（２）においてソースストレージ１０８に割り振られたブロックのブロック位置を識別する。時間ｔ（２）において、ソースストレージ１０８のスナップショット２１６が取得され、このスナップショットはまず、時間ｔ（２）でのソースストレージ１０８の状態を捕捉する。ＦＳＢＡＭ２１４は、スナップショット２１６に記憶してもよく、又はスナップショット２１６とは別個に記憶してもよい。
【００３８】
時間ｔ（２）と時間ｔ（２．３）との間で、スナップショット２１６の状態は、位置（１）、（６）、（７）、（８）、（９）、及び（１１）でのブロックへのスナップショット後静止書き込みによって変更され、その結果、静止スナップショット２１８が生成される。これらのスナップショット後静止書き込みは、静止マップ２２０において反映され、このマップは、スナップショット２１６のスナップショット後静止中にスナップショット２１６に書き込まれたブロックのブロック位置を識別し、その結果、時間ｔ（２．３）において静止スナップショット２１８が生成される。
【００３９】
時間ｔ（２．３）において、第１の増分イメージバックアップ１２２ａのブロック位置が、ブールＯＲ演算を静止マップ２０８及び変更マップ２１２に対して実行し、次に、ＦＳＢＡＭ２１４とのブールＡＮＤ演算を実行し、次に、静止マップ２２０とのブールＯＲ演算を実行することによって計算され、その結果、時間ｔ（２．３）において位置（１）、（６）、（７）、（８）、（９）、及び（１１）を列挙した増分バックアップブロック位置マップ２２２が生成される。
【００４０】
最後に、第１の増分イメージバックアップ１２２ａが、増分バックアップブロック位置マップ２２２に列挙された位置からのブロックを静止スナップショット２１８から第１の増分イメージバックアップ１２２ａにコピーすることにより、時間ｔ（２．３）以降に作成することができる。したがって、図２Ａの第１の増分イメージバックアップ１２２ａは、時間ｔ（２）でのソースストレージ１０８の状態を表すが、スナップショット後静止変更を有しており、第１の増分イメージバックアップ１２２ａを図１のリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ａをより有用なものにし得る。
【００４１】
図２Ａ及び図２Ｂに開示されるように、時間ｔ（２）と時間ｔ（３）との間で、ソースストレージ１０８は変更される。特に、ブロックが位置（１）、（３）、（５）、（７）、及び（９）に書き込まれる。時間ｔ（２）と時間ｔ（３）との間でのこれらの書き込みは、変更マップ２２４において反映され、このマップは、時間ｔ（２）と時間ｔ（３）との間でソースストレージ１０８において変更されたブロックのブロック位置を追跡するのに使用される。さらに、図２Ｂに開示されるように、時間ｔ（３）前に、位置（３）及び（７）におけるブロックは空きになり、位置（４）及び（８）におけるブロックは割り振られるが、データはまだこれらのブロックに書き込まれておらず、その結果、割り振りブロックを位置（１）、（４）、（５）、（８）、（９）、（１０）、及び（１１）に含むとともに、空きブロックを位置（２）、（３）、（６）、及び（７）に含む時間ｔ（３）でのソースストレージ１０８の状態になる。これらの割り振りブロックは、時間ｔ（３）におけるＦＳＢＡＭ２２６において反映され、これは、時間ｔ（３）でソースストレージ１０８において割り振られたブロックのブロック位置を識別する。時間ｔ（３）において、ソースストレージ１０８のスナップショット２２８が取得され、スナップショットはまず、時間ｔ（３）でのソースストレージ１０８の状態を捕捉する。ＦＳＢＡＭ２２６は、スナップショット２２８に記憶してもよく、又はスナップショット２２８とは別個に記憶してもよい。
【００４２】
時間ｔ（３）と時間ｔ（３．１）との間で、スナップショット２２８の状態は、位置（１）、（２）、（３）、（６）、及び（７）でのブロックへのスナップショット後静止書き込みによって変更され、その結果、時間ｔ（３．１）において静止スナップショット２３０が生成される。これらのスナップショット後静止書き込みは、静止マップ２３２において反映され、このマップは、スナップショット２２８のスナップショット後静止中にスナップショット２２８に書き込まれたブロックのブロック位置を識別し、その結果、静止スナップショット２３０が生成される。
【００４３】
時間ｔ（３．１）において、第２の増分イメージバックアップ１２４ａのブロック位置が、ブールＯＲ演算を静止マップ２２０及び変更マップ２２４に対して実行し、次に、ＦＳＢＡＭ２２６とのブールＡＮＤ演算を実行し、次に、静止マップ２３２とのブールＯＲ演算を実行することによって計算され、その結果、時間ｔ（３．１）において位置（１）、（２）、（３）、（５）、（６）、（７）、（８）、（９）、及び（１１）を列挙した増分バックアップブロック位置マップ２３４が生成される。
【００４４】
最後に、第２の増分イメージバックアップ１２４ａが、増分バックアップブロック位置マップ２３４に列挙された位置からのブロックを静止スナップショット２３０から第２の増分イメージバックアップ１２４ａにコピーすることにより、時間ｔ（３．１）以降に作成することができる。したがって、図２Ｂの第２の増分イメージバックアップ１２４ａは、時間ｔ（３）でのソースストレージ１０８の状態を表すが、スナップショット後静止変更を有しており、第２の増分イメージバックアップ１２４ａを図１のリストアストレージ１１２にリストアするときが来たとき、第２の増分イメージバックアップ１２４ａをより有用なものにし得る。
【００４５】
図２Ｃに開示されるように、図２Ａ及び図２Ｂの時系列２００は線形イメージバックアップチェイン２０１を生成し、このチェインでは、第２の増分イメージバックアップ１２４ａは第１の増分イメージバックアップ１２２ａに依存し、第１の増分イメージバックアップ１２２ａは完全イメージバックアップ１２０ａに依存する。線形イメージバックアップチェイン２０１は、あらゆるリストアで必要ではない幾つかのブロックを含み得るという点で、過剰包含であり得るが、線形イメージバックアップチェイン２０１でスナップショット後静止変更を捕捉することの利点は、過剰包含に起因するサイズのいかなる増大をも凌ぎ得る。
【００４６】
図３Ａ及び図３Ｂは、線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列３００を示す概略ブロック図である。図３Ｃは、図３Ａ及び図３Ｂの時系列３００から生じる線形イメージバックアップチェイン３０１を示す概略ブロック図である。図３Ａ及び図３Ｂの時系列３００は、多くの点で図２Ａ及び図２Ｂの時系列２００と同様であるため、時系列２００と異なる時系列３００の部分について主に、図３Ａ及び図３Ｂに関連して考察する。図３Ａ及び図３Ｂは、時間ｔ（１）、ｔ（１．２）、ｔ（２）、ｔ（２．３）、ｔ（３）、及びｔ（３．１）でのソースストレージ１０８の状態を開示しており、完全イメージバックアップ１２０ｂは、時間ｔ（１）におけるソースストレージ１０８の状態を表し、第１の増分イメージバックアップ１２２ｂは、時間ｔ（２）におけるソースストレージ１０８の状態を表し、第２の増分イメージバックアップ１２４ｂは、時間ｔ（３）におけるソースストレージ１０８の状態を表す。しかし、更に詳細に後述するように、イメージバックアップ１２０ｂ、１２２ｂ、及び１２４ｂは、スナップショット後静止変更を含む追加の静止増分イメージバックアップ１２１、１２３、及び１２５と対になり、線形イメージバックアップチェイン３０１内の１つ又は複数のバックアップを図１のリストアストレージ１１２にリストアするときが来たとき、図３Ｃの線形イメージバックアップチェイン３０１（イメージバックアップ１２０ｂ、１２２ｂ、及び１２４ｂと共に、対になった静止増分イメージバックアップ１２１、１２３、及び１２５で構成される）をより有用なものにする。
【００４７】
図３Ａに開示されるように、時間ｔ（１）でのソースストレージ１０８の状態は、割り振りブロック及び空きブロックを含み、これらは時間ｔ（１）でのＦＳＢＡＭ２０２において反映される。時間ｔ（１）において、ソースストレージ１０８のスナップショット２０４が取得される。時間ｔ（１）と時間ｔ（１．２）との間で、スナップショット２０４の状態は、スナップショット後静止書き込みによって変更され、その結果、静止スナップショット２０６が生成され、静止マップ２０８において反映される。
【００４８】
時間ｔ（１）以降において、ＦＳＢＡＭ２０２において識別されるブロック、すなわち、位置（１）、（２）、（３）、（５）、及び（１０）におけるブロックは、スナップショット２０４から完全イメージバックアップ１２０ｂにコピーされる。さらに、時間ｔ（１．２）以降において、静止マップ２０８において識別されるブロック、すなわち、位置（１）、（２）、（３）、（６）、及び（７）におけるブロックは、静止スナップショット２０６から静止増分イメージバックアップ１２１にコピーされる。したがって、図３Ａの完全イメージバックアップ１２０ｂは、時間ｔ（１）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２１は、スナップショット２０４に対して行われたスナップショット後静止変更を表し、完全イメージバックアップ１２０ｂ及び静止増分イメージバックアップ１２１を一緒にリストアできるようにし、これは、完全イメージバックアップ１２０ｂを図１のリストアストレージ１１２にリストアするときが来たとき、完全イメージバックアップ１２０ｂをより有用なものにし得る。
【００４９】
時間ｔ（１）と時間ｔ（２）との間で、ソースストレージ１０８は、変更マップ２１２において反映されるように変更され、時間ｔ（２）での割り振りブロックはＦＳＢＡＭ２１４において反映される。時間ｔ（２）において、ソースストレージ１０８のスナップショット２１６が取得される。時間ｔ（２）と時間ｔ（２．３）との間で、スナップショット２１６の状態は、スナップショット後静止書き込みによって変更され、その結果、静止スナップショット２１８が生成され、時間ｔ（２．３）において静止マップ２２０に反映される。
【００５０】
時間ｔ（２）以降、第１の増分イメージバックアップ１２２ｂのブロック位置が、ブールＯＲ演算を静止マップ２０８及び変更マップ２１２に対して実行し、次に、ＦＳＢＡＭ２１４とのブールＡＮＤ演算を実行することによって計算され、それにより、位置（１）、（６）、（７）、（９）、及び（１１）を列挙した増分バックアップブロック位置マップ３２２が生成される。
【００５１】
最後に、時間ｔ（２）以降、増分バックアップブロック位置マップ３２２において識別されたブロック、すなわち、位置（１）、（６）、（７）、（９）、及び（１１）におけるブロックは、スナップショット２１６から第１の増分イメージバックアップ１２２ｂにコピーされる。更に、時間ｔ（２．３）以降、静止マップ２２０において識別されるブロック、すなわち、位置（１）、（６）、（７）、（８）、（９）、及び（１１）におけるブロックは、静止スナップショット２１８から静止増分イメージバックアップ１２３にコピーされる。したがって、図３Ａの第１の増分イメージバックアップ１２２ｂは、時間ｔ（２）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２３は、スナップショット２１６に対して行われたスナップショット後静止変更を表し、第１の増分イメージバックアップ１２２ｂ及び静止増分イメージバックアップ１２３を一緒にリストアできるようにし、第１の増分イメージバックアップ１２２ｂを図１のリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ｂをより有用なものにし得る。
【００５２】
図３Ａ及び図３Ｂに開示されるように、時間ｔ（２）と時間ｔ（３）との間で、ソースストレージ１０８は、変更マップ２２４に反映されるように変更され、時間ｔ（３）での割り振りブロックはＦＳＢＡＭ２２６において反映される。時間ｔ（３）において、ソースストレージ１０８のスナップショット２２８が取得される。時間ｔ（３）と時間ｔ（３．１）との間で、スナップショット２２８の状態は、スナップショット後静止書き込みによって変更され、その結果、時間ｔ（３．１）において静止スナップショット２３０が生成され、時間ｔ（３．１）において静止マップ２３２に反映される。
【００５３】
時間ｔ（３）以降において、第２の増分イメージバックアップ１２４ｂのブロック位置が、ブールＯＲ演算を静止マップ２２０及び変更マップ２２４に対して実行し、次に、ＦＳＢＡＭ２２６とのブールＡＮＤ演算を実行することによって計算され、それにより、位置（１）、（５）、（８）、（９）、及び（１１）を列挙した増分バックアップブロック位置マップ３３４が生成される。
【００５４】
最後に、時間ｔ（３）以降において、増分バックアップブロック位置マップ３３４において識別されるブロック、すなわち、位置（１）、（５）、（８）、（９）、及び（１１）におけるブロックは、スナップショット２２８から第２の増分イメージバックアップ１２４ｂにコピーされる。さらに、時間ｔ（３．１）以降において、静止マップ２３２で識別されるブロック、すなわち、位置（１）、（２）、（３）、（６）、及び（７）におけるブロックは、静止スナップショット２３０から静止増分イメージバックアップ１２５にコピーされる。したがって、図３Ｂの第２の増分イメージバックアップ１２４ｂは、時間ｔ（３）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２５は、スナップショット２２８に対して行われたスナップショット後静止変更を表し、第２の増分イメージバックアップ１２４ｂ及び静止増分イメージバックアップ１２５を一緒にリストアできるようにし、これは、第２の増分イメージバックアップ１２４ｂを図１のリストアストレージ１１２にリストアするときが来たとき、第２の増分イメージバックアップ１２４ｂをより有用なものにし得る。
【００５５】
図３Ｃに開示されるように、図３Ａ及び図３Ｂの時系列３００は線形イメージバックアップチェイン３０１を生成し、このチェインでは、静止増分バックアップ１２５は第２の増分イメージバックアップ１２４ｂに依存し、第２の増分イメージバックアップ１２４ｂは静止増分イメージバックアップ１２３に依存し、静止増分イメージバックアップ１２３は第１の増分イメージバックアップ１２２ｂに依存し、第１の増分イメージバックアップ１２２ｂは静止増分イメージバックアップ１２１に依存し、静止増分イメージバックアップ１２１は完全イメージバックアップ１２０ｂに依存する。線形イメージバックアップチェイン３０１は、あらゆるリストアで必要ではない幾つかのブロックを含み得るという点で、過剰包含であり得るが、線形イメージバックアップチェイン３０１でスナップショット後静止変更を捕捉することの利点は、過剰包含に起因するサイズのいかなる増大をも凌ぎ得る。さらに、線形イメージバックアップチェイン３０１のリストア中、線形イメージバックアップチェイン３０１内の全てのバックアップイメージが利用可能であるが、リストアの有効性は、介在する静止増分イメージバックアップを無視することによって達成し得、これにより、リストアの速度を増大させるとともに、リストアのオーバーヘッドを低減し得る。例えば、静止増分イメージバックアップ１２５がリストアされる場合、リストアは、介在する静止増分イメージバックアップ１２３及び介在する静止増分イメージバックアップ１２１を無視し得、その代わり、リストアのために、静止増分イメージバックアップ１２５が第２の増分イメージバックアップ１２４ｂに従属するものと見なし、第２の増分イメージバックアップ１２４ｂは第１の増分イメージバックアップ１２２ｂに依存し、第１の増分イメージバックアップ１２２ｂは完全イメージバックアップ１２０ｂに依存する。
【００５６】
図４Ａ及び図４Ｂは、分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する時系列４００を示す概略ブロック図である。図４Ｃは、図４Ａ及び図４Ｂの時系列４００から生じる分岐イメージバックアップチェイン４０１を示す概略ブロック図である。図４Ａ及び図４Ｂの時系列４００は、多くの点で図３Ａ及び図３Ｂの時系列３００と同様であるため、時系列３００と異なる時系列４００の部分について主に、図４Ａ及び図４Ｂに関連して考察する。図４Ａ及び図４Ｂは、時間ｔ（１）、ｔ（１．２）、ｔ（２）、ｔ（２．３）、ｔ（３）、及びｔ（３．１）でのソースストレージ１０８の状態を開示しており、完全イメージバックアップ１２０ｂは、時間ｔ（１）におけるソースストレージ１０８の状態を表し、第１の増分イメージバックアップ１２２ｃは、時間ｔ（２）におけるソースストレージ１０８の状態を表し、第２の増分イメージバックアップ１２４ｃは、時間ｔ（３）におけるソースストレージ１０８の状態を表す。しかし、更に詳細に後述するように、イメージバックアップ１２０ｂ、１２２ｃ、及び１２４ｃは、スナップショット後静止変更を含む追加の静止増分イメージバックアップ１２１、１２３、及び１２５と対になり、分岐イメージバックアップチェイン４０１内の１つ又は複数のバックアップを図１のリストアストレージ１１２にリストアするときが来たとき、図４Ｃの分岐イメージバックアップチェイン４０１（イメージバックアップ１２０ｂ、１２２ｃ、及び１２４ｃと共に、対になった静止増分イメージバックアップ１２１、１２３、及び１２５で構成される）をより有用なものにする。
【００５７】
図４Ａに開示されるように、時系列４００における時間ｔ（１）と時間ｔ（２）との間での動作及び時間ｔ（２）と時間ｔ（２．３）との間での最初の２、３の動作は、図３Ａの時系列３００での対応する動作と同一である。しかし、時間ｔ（２）以降において、第１の増分イメージバックアップ１２２ｃのブロック位置は、ブールＡＮＤ演算を変更マップ２１２及びＦＳＢＡＭ２１４に対して実行することによって計算され、その結果、位置（１）、（７）、（９）、及び（１１）を列挙した増分バックアップブロック位置マップ４２２が生成される。
【００５８】
最後に、時間ｔ（２）以降において、増分バックアップブロック位置マップ４２２において識別されるブロック、すなわち、位置（１）、（７）、（９）、及び（１１）におけるブロックは、スナップショット２１６から第１の増分イメージバックアップ１２２ｃにコピーされる。さらに、時間ｔ（２．３）以降において、静止マップ２２０において識別されるブロックは、静止スナップショット２１８から静止増分イメージバックアップ１２３にコピーされる。したがって、図４Ａの第１の増分イメージバックアップ１２２ｃは、時間ｔ（２）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２３は、スナップショット２１６に対して行われたスナップショット後静止変更を表し、第１の増分イメージバックアップ１２２ｃ及び静止増分イメージバックアップ１２３を一緒にリストアできるようにし、第１の増分イメージバックアップ１２２ｃを図１のリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ｃをより有用なものにし得る。
【００５９】
図４Ａ及び図４Ｂに開示されるように、時系列４００における時間ｔ（２）とｔ（３）との間でのソースストレージ１０８への変更及び時間ｔ（３）と時間ｔ（３．１）との間での最初の２、３の動作は、図３Ａの時系列３００での対応する動作と同一である。しかし、時間ｔ（３）以降において、第２の増分イメージバックアップ１２４ｃのブロック位置は、ブールＡＮＤ演算を変更マップ２２４及びＦＳＢＡＭ２２６に対して実行することによって計算され、その結果、位置（１）、（５）、及び（９）を列挙した増分バックアップブロック位置マップ４３４が生成される。
【００６０】
最後に、時間ｔ（３）以降において、増分バックアップブロック位置マップ４３４において識別されるブロック、すなわち、位置（１）、（５）、及び（９）におけるブロックは、スナップショット２２８から第２の増分イメージバックアップ１２４ｃにコピーされる。さらに、時間ｔ（３．１）以降において、静止マップ２３２において識別されるブロックは、静止スナップショット２３０から静止増分イメージバックアップ１２５にコピーされる。したがって、図４Ｂの第２の増分イメージバックアップ１２４ｃは、時間ｔ（３）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２５は、スナップショット２２８に対して行われたスナップショット後静止変更を表し、第２の増分イメージバックアップ１２４ｃ及び静止増分イメージバックアップ１２５を一緒にリストアできるようにし、第２の増分イメージバックアップ１２４ｃを図１のリストアストレージ１１２にリストアするときが来たとき、第２の増分イメージバックアップ１２４ｃをより有用なものにし得る。
【００６１】
図４Ｃに開示されるように、図４Ａ及び図４Ｂの時系列４００は分岐イメージバックアップチェイン４０１を生成し、このチェインでは、第１の分岐において、静止増分バックアップ１２５は第２の増分イメージバックアップ１２４ｃに依存し、第２の増分イメージバックアップ１２４ｃは第１の増分イメージバックアップ１２２ｃに依存し、第１の増分イメージバックアップ１２２ｃは完全イメージバックアップ１２０ｂに依存する。第２の分岐では、静止増分イメージバックアップ１２３は第１の増分イメージバックアップ１２２ｃに依存し、第１の増分イメージバックアップ１２２ｃは完全イメージバックアップ１２０ｂに依存する。第３の分岐では、静止増分イメージバックアップ１２１は完全イメージバックアップ１２０ｂに依存する。分岐イメージバックアップチェイン４０１は、あらゆるリストアで必要ではない幾つかのブロックを含み得るという点で、過剰包含であり得るが、分岐イメージバックアップチェイン４０１でスナップショット後静止変更を捕捉することの利点は、過剰包含に起因するサイズのいかなる増大をも凌ぎ得る。さらに、分岐イメージバックアップチェイン４０１のリストア中、１つのみの分岐がリストア可能であり、したがって、分岐イメージバックアップチェイン４０１内のあらゆるイメージバックアップのトラバースが回避され、これにより、リストアの速度を増大させるとともに、リストアのオーバーヘッドを低減し得ることが理解される。
【００６２】
図５は、イメージバックアップにおいてスナップショット後静止書き込みを捕捉する例としての方法５００を示す概略フローチャートである。図６は、線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する例としての方法６００を示す概略フローチャートである。図７は、分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する例としての方法７００を示す概略フローチャートである。方法５００、６００、及び７００は、少なくとも幾つかの実施形態において、図１のバックアップモジュール１１４によって実施し得る。例えば、バックアップモジュール１１４は、１つ又は複数の非一時的コンピュータ可読媒体に記憶される１つ又は複数のプログラムであり得、プログラムは、実行されると、方法５００、６００、及び７００のステップのうちの１つ又は複数によって表されるように、方法５００、６００、及び７００の動作を１つ又は複数のプロセッサに実行させるように構成される。離散ステップとして示されるが、様々なステップは、所望の実施態様に応じて、追加のステップに分割してもよく、より少数のステップに組み合わせてもよく、並べ替えてもよく、又はなくしてもよい。方法５００については図１、図２Ａ〜図２Ｃ、及び図５を参照して考察し、方法６００については図１、図３Ａ〜図３Ｃ、及び図６を参照して考察し、方法７００については図１、図４Ａ〜図４Ｃ、及び図７を参照して考察する。
【００６３】
図５の方法５００は、第１の時点においてソースストレージの第１のスナップショットを取得するステップ５０２を含み得る。例えば、図１のバックアップモジュール１１４は、図２Ａに開示されるように、時間ｔ（１）においてソースストレージ１０８のスナップショット２０４を取得し得る。ステップ５０２でのスナップショット２０４のこの取得は、例えば、ＶＳＳによって実行し得る。
【００６４】
方法５００は、第１の時点においてソースストレージ内で割り振られているブロックの第１のブロック位置セットを識別するステップ５０４を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５０４において、図２Ａに開示されるように、時間ｔ（１）においてソースストレージ１０８で割り振られているブロックの第１のブロック位置セットを識別する、スナップショット２０４に記憶されてもよく、又はスナップショット２０４とは別個に記憶されてもよいソースストレージ１０８のＦＳＢＡＭ２０２にアクセスすることにより、第１のブロック位置セットを識別し得る。
【００６５】
方法５００は、第１のスナップショットのスナップショット後静止中、第１のスナップショットに書き込まれたブロックの第２のブロック位置セットを識別するステップ５０６を含み得、それにより、第１の静止スナップショットが生成される。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５０６において、時間ｔ（１）と時間ｔ（１．２）との間で生じたスナップショット２０４のスナップショット後静止中にスナップショット２０４に書かれたブロックの第２のブロック位置セットを識別する、スナップショット２０４の静止マップ２０８にアクセスし得、その結果、図２Ａに開示されるように、静止スナップショット２０６が生成される。ステップ５０６でのスナップショット２０４のスナップショット後静止は、例えば、ＶＳＳ及び／又はＶＳＳライタによって実行し得る。
【００６６】
方法５００は、ブールＯＲ演算を第１のブロック位置セット及び第２のブロック位置セットに対して実行することにより、第３のブロック位置セットを計算するステップ５０８を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５０８において、図２Ａに開示されるように、ＦＳＢＡＭ２０２からの第１のブロック位置セット及び静止マップ２０８からの第２のブロック位置セットに対してブールＯＲ演算を実行することにより、第３のブロック位置セットを計算し得る。
【００６７】
方法５００は、第３のブロック位置セットにおけるブロックを第１の静止スナップショットから完全イメージバックアップにコピーするステップ５１０を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５１０において、図２Ａに開示されるように、ステップ５０８において計算された第３のブロック位置セットにおけるブロックを静止スナップショット２０６から完全イメージバックアップ１２０ａにコピーし得る。ステップ５１０後、完全イメージバックアップ１２０ａは、時間ｔ（１）でのソースストレージ１０８の状態を表すが、スナップショット後静止変更を有しており、完全イメージバックアップ１２０ａを図１のリストアストレージ１１２にリストアするときが来たとき、完全イメージバックアップ１２０ａをより有用なものにし得る。
【００６８】
方法５００は、第１の時点と第２の時点との間でソースストレージにおいて変更されたブロックの第４のブロック位置セットを追跡するステップ５１２を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５１２において、図２Ａに開示されるように、時間ｔ（１）と時間ｔ（２）との間でソースストレージ１０８で変更されたブロックの第４のブロック位置セットを変更マップ２１２において追跡し得る。
【００６９】
方法５００は、第２の時点においてソースストレージの第２のスナップショットを取得するステップ５１４を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５１４において、図２Ａに開示されるように、時間ｔ（２）においてソースストレージ１０８のスナップショット２１６を取得し得る。ステップ５１４でのスナップショット２１６のこの取得は、例えば、ＶＳＳによって実行し得る。
【００７０】
方法５００は、第２の時点においてソースストレージで割り振られているブロックの第５のブロック位置セットを識別するステップ５１６を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５１６において、図２Ａに開示されるように、時間ｔ（２）においてソースストレージ１０８で割り振られているブロックの第５のブロック位置セットを識別する、スナップショット２１６に記憶されてもよく、又はスナップショット２１６とは別個に記憶されてもよいソースストレージ１０８のＦＳＢＡＭ２１４にアクセスすることにより、第５のブロック位置セットを識別し得る。
【００７１】
方法５００は、第２のスナップショットのスナップショット後静止中、第２のスナップショットに書き込まれたブロックの第６のブロック位置セットを識別するステップ５１８を含み得、それにより、第２の静止スナップショットが生成される。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５１８において、スナップショット２１６のスナップショット後静止中にスナップショット２１６に書き込まれたブロックのブロック位置を識別する図２Ａの静止マップ２２０にアクセスし得、それにより、静止スナップショット２１８が生成される。ステップ５１８でのスナップショット２１６のスナップショット静止は、例えば、ＶＳＳ及び／又はＶＳＳライタによって実行し得る。
【００７２】
方法５００は、ブールＯＲ演算を第２のブロック位置セット及び第４のブロック位置セットに対して実行することにより、第７のブロック位置セットを計算するステップ５２０を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５２０において、図２Ａに開示されるように、静止マップ２０８からの第２のブロック位置セット及び変更マップ２１２からの第４のブロック位置セットに対してブールＯＲ演算を実行することにより、第７のブロック位置セットを計算し得る。
【００７３】
方法５００は、ブールＡＮＤ演算を第５のブロック位置セット及び第７のブロック位置セットに対して実行することにより、第８のブロック位置セットを計算するステップ５２２を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５２２において、図２ＡのＦＳＢＡＭ２１４からの第５のブロック位置セット及びステップ５２０において計算された第７のブロック位置セットに対してブールＡＮＤ演算を実行することにより、第８のブロック位置セットを計算し得る。
【００７４】
方法５００は、第６のブロック位置セット及び第８のブロック位置セットに対してブールＯＲ演算を実行することにより、第９のブロック位置セットを計算するステップ５２４を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５２４において、図２Ａの静止マップ２２０からの第６のブロック位置セット及びステップ５２２において計算された第８のブロック位置セットに対してブールＯＲ演算を実行することにより、第９のブロック位置セットを計算し得る。
【００７５】
方法５００は、第９のブロック位置セットにおけるブロックを第２の静止スナップショットから増分イメージバックアップにコピーするステップ５２６を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ５２６において、図２Ａに開示されるように、ステップ５２４において計算された第９のブロック位置セットにおけるブロックを静止スナップショット２１８から第１の増分イメージバックアップ１２２ａにコピーし得る。ステップ５２６後、第１の増分イメージバックアップ１２２ａは、時間ｔ（２）でのソースストレージ１０８の状態を表すが、スナップショット後静止変更を有しており、第１の増分イメージバックアップ１２２ａを図１のリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ａをより有用なものにし得る。
【００７６】
方法５００の上記考察が、イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法の可能な実施態様の１つにすぎず、様々な変更が可能であり、意図されることが理解される。例えば、方法５００は、ステップ５１２〜５２６をなくすように変更し得る。別の例では、完全イメージバックアップは、異なる方法を使用して生成し得る。別の例では、方法５００は、ステップ５０２〜５１０のうちの１つ又は複数をなくすように変更し得る。
【００７７】
図６の方法６００は、図５の方法５００のステップ５０２、５０４、及び５０６とそれぞれ同一であるステップ６０２、６０４、及び６０６を含み得る。
方法６００は、第１のブロック位置セットにおけるブロックを第１のスナップショットから完全イメージバックアップにコピーするステップ６０８を含み得る。例えば、図１のバックアップモジュール１１４は、ステップ６０８において、ステップ６０４において計算された第１のブロック位置セットにおけるブロックをスナップショット２０４から図３Ａの完全イメージバックアップ１２０ｂにコピーし得る。
【００７８】
方法６００は、第２のブロック位置セットにおけるブロックを第１の静止スナップショットから第１の増分バックアップにコピーするステップ６１０を含み得る。例えば、図１のバックアップモジュール１１４は、ステップ６１０において、ステップ６０６において計算された第２のブロック位置セットにおけるブロックを静止スナップショット２０６から図３Ａの静止増分イメージバックアップ１２１にコピーし得る。
【００７９】
ステップ６１０後、完全イメージバックアップ１２０ｂは、時間ｔ（１）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２１は、スナップショット２０４に対して行われたスナップショット後静止変更を表し、完全イメージバックアップ１２０ｂ及び静止増分イメージバックアップ１２１を一緒にリストアできるようにし、これは、完全イメージバックアップ１２０ｂをリストアストレージ１１２にリストアするときが来たとき、完全イメージバックアップ１２０ｂをより有用なものにし得る。
【００８０】
方法６００は、第１の時点と第２の時点との間でソースストレージで変更された第３のブロック位置セットを追跡するステップ６１２を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６１２において、図３Ａに開示されるように、時間ｔ（１）と時間ｔ（２）との間でソースストレージ１０８で変更されたブロックの第３のブロック位置セットを変更マップ２１２において追跡し得る。
【００８１】
図６の方法６００は、図５の方法５００のステップ５１４と同一のステップ６１４を含み得る。
方法６００は、第２の時点でソースストレージに割り振られているブロックの第４のブロック位置セットを識別するステップ６１６を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６１６において、図３Ａに開示されるように、ソースストレージ１０８において割り振られたブロックの第４のブロック位置セットを識別する、スナップショット２１６に記憶されるか、又は代替的には、スナップショット２１６の外部に記憶されたソースストレージ１０８のＦＳＢＡＭ２１４にアクセスすることにより、第４のブロック位置セットを識別し得る。
【００８２】
方法６００は、第２のスナップショットのスナップショット後静止中に第２のスナップショットに書き込まれたブロックの第５のブロック位置セットを識別するステップ６１８を含み得、それにより、第２の静止スナップショットが生成される。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６１８において、スナップショット２１６のスナップショット後静止中にスナップショット２１６に書き込まれたブロックのブロック位置を識別する、図２Ａの静止マップ２２０にアクセスし得、その結果、図３Ａに開示されるように、静止スナップショット２１８が生成される。ステップ６１８でのスナップショット２１６のスナップショット後静止は、例えば、ＶＳＳ及び／又はＶＳＳライタによって実行し得る。
【００８３】
方法６００は、ブールＯＲ演算を第２のブロック位置セット及び第３のブロック位置セットに対して実行することにより、第６のブロック位置セットを計算するステップ６２０を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、は、ステップ６２０において、図３Ａに開示されるように、静止マップ２０８からの第２のブロック位置セット及び変更マップ２１２からの第３のブロック位置セットに対してブールＯＲ演算を実行することにより、第６のブロック位置セットを計算し得る。
【００８４】
方法６００は、ブールＡＮＤ演算を第４のブロック位置セット及び第６のブロック位置セットに対して実行することにより、第７のブロック位置セットを計算するステップ６２２を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６２２において、図３ＡのＦＳＢＡＭ２１４からの第４のブロック位置セット及びステップ６２０において計算された第６のブロック位置セットに対してブールＡＮＤ演算を実行することにより、第７のブロック位置セットを計算し得る。
【００８５】
方法６００は、第７のブロック位置セットにおけるブロックを第２のスナップショットから第２の増分イメージバックアップにコピーするステップ６２４を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６２４において、ステップ６２２において計算された第７のブロック位置セットにおけるブロックをスナップショット２１６から図３Ａの第１の増分イメージバックアップ１２２ｂにコピーし得る。
【００８６】
方法６００は、第５のブロック位置セットにおけるブロックを第２の静止スナップショットから第３の増分イメージバックアップにコピーするステップ６２６を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ６２６において、ステップ６１８において識別された第５のブロック位置セットにおけるブロックを第２の静止スナップショット２１８から図３Ａの静止増分イメージバックアップ１２３にコピーし得る。
【００８７】
ステップ６２６後、第１の増分イメージバックアップ１２２ｂは、時間ｔ（２）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２３は、スナップショット２１６に対して行われたスナップショット後静止変更を表し、第１の増分イメージバックアップ１２２ｂ及び静止増分イメージバックアップ１２３を一緒にリストアできるようにし、第１の増分イメージバックアップ１２２ｂをリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ｂをより有用なものにし得る。
【００８８】
方法６００の上記考察が、線形イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する方法の可能な実施態様の１つにすぎず、様々な変更が可能であり、意図されることが理解される。例えば、方法６００は、ステップ６１２〜６２６をなくすように変更し得る。追加又は代替として、ステップ６０４、６０８、及び６１０は省略し得、ステップ６０２及び６０６は、完全イメージバックアップ（図３Ａの完全イメージバックアップ１２０ｂ等）の作成中の代わりに増分イメージバックアップ（図３Ａの第１の増分イメージバックアップ１２２ｂ等）の作成中に実行し得、次に、イメージバックアップチェインの冒頭に位置決めされる完全増分イメージバックアップに対応する静止増分イメージバックアップ（図３Ａの静止増分イメージバックアップ１２１等）の作成あり又はなしで、ステップ６１２〜６２６が、後続増分イメージバックアップ（図３Ｂの第２の増分イメージバックアップ１２４ｂ等）の作成中に実行し得る。
【００８９】
図７の方法７００は、図６の方法６００のステップ６０２、６０４、６０６、６０８、６１０、６１２、６１４、６１６、及び６１８とそれぞれ同一であるステップ７０２、７０４、７０６、７０８、７１０、７１２、７１４、７１６、及び７１８を含み得る。
【００９０】
方法７００は、ブールＡＮＤ演算を第３のブロック位置セット及び第４のブロック位置セットに対して実行することにより、第６のブロック位置セットを計算するステップ７２０を含み得る。例えば、図１のバックアップモジュール１１４は、ステップ７２０において、図４Ａの変更マップ２１２からの第３のブロック位置セット及び図４ＡのＦＳＢＡＭ２１４からの第４のブロック位置セットに対してブールＡＮＤ演算を実行することにより、第６のブロック位置セットを計算し得る。
【００９１】
方法７００は、第６のブロック位置セットにおけるブロックを第２のスナップショットから完全イメージバックアップに依存する第２の増分イメージバックアップにコピーするステップ７２２を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ７２２において、ステップ７２０において計算された第６のブロック位置セットにおけるブロックをスナップショット２１６から図４Ａの第１の増分イメージバックアップ１２２ｃにコピーし得る。
【００９２】
方法７００は、第５のブロック位置セットにおけるブロックを第２の静止スナップショットから、第２の増分イメージバックアップに依存する第３の増分イメージバックアップにコピーするステップ７２４を含み得る。上記例を続けると、図１のバックアップモジュール１１４は、ステップ７２４において、ステップ７１８において識別された第５のブロック位置セットにおけるブロックを第２の静止スナップショット２１８から図４Ａの静止増分イメージバックアップ１２３にコピーし得る。
【００９３】
ステップ７２４後、第１の増分イメージバックアップ１２２ｃは、時間ｔ（１）でのソースストレージ１０８の状態を表し、静止増分イメージバックアップ１２３は、スナップショット２１６に対して行われたスナップショット後静止変更を表し、第１の増分イメージバックアップ１２２ｃ及び静止増分イメージバックアップ１２３を一緒にリストアできるようにし、第１の増分イメージバックアップ１２２ｃをリストアストレージ１１２にリストアするときが来たとき、第１の増分イメージバックアップ１２２ｃをより有用なものにし得る。
【００９４】
方法７００の上記考察が、分岐イメージバックアップチェインにおいてスナップショット後静止書き込みを捕捉する方法の可能な実施態様の１つにすぎず、様々な変更が可能であり、意図されることが理解される。例えば、ステップ７０４、７０８、及び７１０は省略し得、ステップ７０２及び７０６は、完全イメージバックアップ（図４Ａの完全イメージバックアップ１２０ｂ等）の作成中の代わりに増分イメージバックアップ（図４Ａの第１の増分イメージバックアップ１２２ｃ等）の作成中に実行し得、次に、イメージバックアップチェインの冒頭に位置決めされる完全増分イメージバックアップに対応する静止増分イメージバックアップ（図４Ａの静止増分イメージバックアップ１２１等）の作成あり又はなしで、ステップ７１２〜７２４が、後続増分イメージバックアップ（図４Ｂの第２の増分イメージバックアップ１２４ｃ等）の作成中に実行し得る。
【００９５】
本明細書に記載される実施形態は、更に詳細に後述するように、様々なコンピュータハードウェア又はソフトウェアモジュールを含め、専用又は汎用コンピュータの使用を含み得る。
【００９６】
本明細書に記載される実施形態は、記憶されたコンピュータ実行可能命令又はデータ構造を運ぶか、又は有する非一時的コンピュータ可読媒体を使用して実施し得る。そのようなコンピュータ可読媒体は、汎用又は専用コンピュータによってアクセスし得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、又はコンピュータ実行可能命令の形態のプログラムコード若しくはデータ構造を有する１つ若しくは複数の所望のプログラムを運ぶか、若しくは記憶するのに使用し得、汎用コンピュータ、専用コンピュータ、若しくは仮想マシン等の仮想コンピュータによってアクセスし処理し得る任意の他の記憶媒体を含む非一時的コンピュータ可読記憶媒体を含み得る。上記の組合せもコンピュータ可読媒体の範囲内に包含し得る。
【００９７】
コンピュータ実行可能命令は、例えば、１つ又は複数のプロセッサによって実行されると、汎用コンピュータ、専用コンピュータ、又は仮想マシン等の仮想コンピュータに、特定の方法、機能、方法群、又は機能群を実行させる命令及びデータを含む。本趣旨は、構造的特徴及び／又は方法論ステップに固有の用語で説明されたが、添付の特許請求の範囲で規定される趣旨が、上述した特定の特徴又はステップに必ずしも限定されないことを理解されたい。むしろ、上述した特定の特徴及びステップは、特許請求の範囲を実施する形態例として開示されている。
【００９８】
本明細書で使用される場合、「モジュール」という用語は、計算システムで実行されるソフトウェアオブジェクト又はルーチンを指し得る。本明細書に記載される様々なモジュール又はフィルタは、計算システムで実行される（例えば、別個のスレッドとして）オブジェクト又はプロセスとして実施し得る。本明細書に記載のシステム及び方法は、好ましくは、ソフトウェアで実施されるが、ハードウェア又はソフトウェアとハードウェアとの組合せでの実施も可能であり、意図される。
【００９９】
本明細書に記載される全ての例及び条件用語は、本発明者が当分野を促進させるために寄与する実施形態例及び概念を理解するに当たり、読み手を支援する教育的目的が意図され、そのような特に記載される例及び条件に限定されないものとして解釈されるべきである。
【符号の説明】
【０１００】
１００  イメージバックアップ・リストアシステム
１０２  ソースシステム
１０４  宛先システム
１０６  リストアシステム
１０８、１１０、１１２  ストレージ
１１４  バックアップモジュール
１１６  リストアモジュール
１１８  ネットワーク
１２０、１２０ａ、１２０ｂ  完全イメージバックアップ
１２１、１２３、１２５  静止増分イメージバックアップ
１２２、１２２ａ、１２２ｂ、１２２ｃ  第１の増分イメージバックアップ
１２４、１２４ａ、１２４ｂ、１２４ｃ  第２の増分イメージバックアップ
１２６  第ｎの増分イメージバックアップ
２００、３００、４００  時系列
２０１、３０１  線形イメージバックアップチェイン
２０２、２１４、２２６  ファイルシステムブロック割り振りマップ
２０４、２１６、２２８  スナップショット
２０６、２１８、２３０  静止スナップショット
２０８、２２０、２３２  静止マップ
２１０  完全バックアップブロック位置マップ
２１２、２２４  変更マップ
２２２、２３４、３３４、４２２、４３４  増分バックアップブロック位置マップ
４０１  分岐イメージバックアップチェイン
５００、６００、７００  方法
【要約】
【課題】イメージバックアップにおけるスナップショット後静止書き込みの捕捉。
【解決手段】一実施形態例では、イメージバックアップにおいてスナップショット後静止書き込みを捕捉する方法は、第１の時点においてソースストレージの第１のスナップショットを取得することと、第１の時点でソースストレージに割り振られているブロックの第１のブロック位置セットを識別することと、第１のスナップショットのスナップショット後静止中に第１のスナップショットに書き込まれたブロックの第２のブロック位置セットを識別することであって、それにより、第１の静止スナップショットを生成する、第２のブロック位置セットを識別することと、ブールＯＲ演算を第１のブロック位置セット及び第２のブロック位置セットに対して実行することにより、第３のブロック位置セットを計算することと、第３のブロック位置セットにおけるブロックを第１のスナップショットから完全イメージバックアップにコピーすることとを含み得る。
【選択図】  図５【図１】
0006031629.tif 000002
【図２Ａ】
0006031629.tif 000003
【図２Ｂ】
0006031629.tif 000004
【図２Ｃ】
0006031629.tif 000005
【図３Ａ】
0006031629.tif 000006
【図３Ｂ】
0006031629.tif 000007
【図３Ｃ】
0006031629.tif 000008
【図４Ａ】
0006031629.tif 000009
【図４Ｂ】
0006031629.tif 000010
【図４Ｃ】
0006031629.tif 000011
【図５】
0006031629.tif 000012
【図６】
0006031629.tif 000013
【図７】
0006031629.tif 000014