(57)【特許請求の範囲】
【請求項１】
チェンジトラッキングを用いたシステムリカバリのための、コンピュータにより実現される方法であって、
不揮発性電子ストレージへの書き込み要求を受信するステップと、
前記不揮発性電子ストレージ内の、前記書き込み要求に関連する電子ストレージ領域を識別するステップと、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットするステップと、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットするステップと、
前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするステップと
を含む方法。
【請求項２】
前記電子ストレージ領域を識別する領域インジケータをセットすべきか否かを決定するステップと、
前記領域インジケータをセットすべきであることを決定した場合に、前記領域インジケータをセットするステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記電子ストレージ領域を識別する前記領域インジケータをセットすべきか否かの決定は、前記領域インジケータが予めセットされていたか否かの決定に少なくとも部分的に基づくことを特徴とする請求項２に記載の方法。
【請求項４】
前記１つ以上のダーティー部分を識別する前記１つ以上の部分インジケータをセットすべきか否かを決定するステップと、
前記１つ以上の部分インジケータをセットするべきであることを決定した場合に、前記１つ以上の部分インジケータをセットするステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記１つ以上の部分インジケータをセットすべきか否かの決定は、
前記１つ以上の部分インジケータが予めセットされていたか否かの決定、
前記電子ストレージ領域のすべての部分インジケータが予めセットされていたか否かの決定、
前記電子ストレージ領域の割り当てられた部分をキャプチャすることの決定、及び
前記電子ストレージ領域の割り当てられた部分を復元することの決定、
の少なくとも１つに、少なくとも部分的に基づくことを特徴とする請求項４に記載の方法。
【請求項６】
１つ以上の部分インジケータをセットするステップは、前記揮発性電子ストレージ内にインジケータをセットすること、及び前記不揮発性電子ストレージ内にインジケータをセットすることを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記不揮発性電子ストレージ内の前記１つ以上の部分インジケータをセットする時点を識別することを、
所定期間に亘って追加の部分インジケータがセットされていないことの決定、前記電子ストレージ領域用のすべての部分インジケータがセットされたことの決定、及び前記識別された時点における、前記領域に関連するより低レベルのディスク動作、の少なくとも１つに基づいて行うステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記１つ以上の部分インジケータが前記不揮発性電子ストレージ内にセットされた後に、領域インジケータをアンセットするステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記１つ以上の部分インジケータは、１つ以上のダーティーなデータ部分を識別する、ビットマップ、ランリスト、レンジ、及びデータ構造、の少なくとも１つを備えることを特徴とする請求項１に記載の方法。
【請求項１０】
複数のレベルの領域インジケータを利用するステップをさらに含み、前記複数のレベルの領域インジケータは、電子ストレージのチェンジトラッキングのさらなる細分化を可能にすることを特徴とする請求項１に記載の方法。
【請求項１１】
前記ダーティー部分は、ブロック、セクタ、及びクラスタの少なくとも１つで構成されることを特徴とする請求項１に記載の方法。
【請求項１２】
前記ダーティー部分は、セグメントで構成されることを特徴とする請求項１に記載の方法。
【請求項１３】
電子ストレージのイメージを作成するステップと、
前記領域インジケータを用いて前記電子ストレージのダーティー領域を識別して前記電子ストレージのイメージを前記電子ストレージのバックアップと比較するステップと、
前記電子ストレージにおける、前記部分インジケータに対応する１つ以上の部分がバックアップ後に変更されていることの決定に基づいて、前記識別されたダーティー領域の前記１つ以上の部分インジケータを更新するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記領域インジケータを用いて電子ストレージのダーティー領域を識別して、増分バックアップを作成するステップをさらに含み、前記増分バックアップは、ダーティーとして示された領域の割り当てられた部分をキャプチャし、かつ、前記増分バックアップは、クリーン領域の変更された部分のみをキャプチャするものであることを特徴とする請求項１に記載の方法。
【請求項１５】
前記領域インジケータを用いて電子ストレージのダーティー領域を識別して１つ以上のデータ部分をバックアップから復元するステップであって、前記識別されたダーティー領域の割り当てられた部分の復元を行い、かつ、クリーン領域の１つ以上の変更された部分の復元を行うステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１６】
少なくとも１つのプロセッサによって可読であるように構成され、請求項１に記載の方法を実行するためのコンピュータプロセスを実行することを、前記少なくとも１つのプロセッサに命令するためのコンピュータプログラム命令を格納するための、少なくとも１つのプロセッサ可読ストレージ媒体。
【請求項１７】
チェンジトラキングを用いたシステムリカバリを提供するためのプログラムであって、
プロセッサに、
不揮発性電子ストレージへの書き込み要求を受信するステップと、
前記書き込み要求に関連付けられた前記不揮発性電子ストレージにおける電子ストレージ領域を識別するステップと、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットするステップと、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットするステップと、
前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするステップと
を実行させるプログラム。
【請求項１８】
チェンジトラッキングを用いたシステムリカバリを提供するシステムであって、
前記システムは、ネットワークに通信可能に結合された１つ以上のプロセッサを備え、
前記１つ以上のプロセッサは、
不揮発性電子ストレージへの書き込み要求を受信し、
前記不揮発性電子ストレージ内の、前記書き込み要求に関連する電子ストレージ領域を識別し、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットし、
前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットし、
前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするように構成される
システム。
【請求項１９】
前記１つ以上のプロセッサはさらに、前記領域インジケータを用いて、システム照合、システムバックアップ、及びシステム復元の少なくとも１つを行うように構成されていることを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、システムリカバリに関するものであり、特に、チェンジトラッキング（変更追跡）を用いたシステムリカバリのための方法に関するものである。
【背景技術】
【０００２】
変更されたデータをバックアップできるように、バックアップシステムは、前のバックアップ以降のデータの変更又は書き込み要求を追跡することができる。例えば、バックアップシステムは、変更されたデータの定期的な増分バックアップを行うことができる。変更されたデータのみをバックアップすることによって、全データの完全なバックアップよりも、使用する記憶空間を少なくすることができ、また、必要とするネットワークトラフィック及びディスク入出力（Ｉ／Ｏ）処理をより少なくすることができる。
【０００３】
バックアップすべきものを決定するために、データ変更を追跡することができる。メモリ上で変更されたが、未だディスクに書き込まれていない変更されたデータは、一般に、「ダーティー」なデータと称される。変更されたデータが一旦ディスクに書き込まれると、一般に、「クリーン」なデータと称される。
【０００４】
追跡されたデータ変更又は書き込み要求は、メモリに格納するかディスクに書き込むことができる。追跡されたデータ変更がディスクに書き込まれる場合、これらのデータ変更は、ディスクへの書き込み要求毎に、書き込み要求を必要とし得る。このオーバーヘッド及び追加的Ｉ／Ｏは、性能にとって許容できないことがある。追跡されたデータ変更がメモリに格納される場合には、追跡されたデータ変更の喪失を回避するために、これらのデータ変更は、システムシャットダウン時にディスクに書き込むことができる。システムがクラッシュした場合、不適切にシャットダウンされた場合又は障害に見舞われた場合には、追跡されたデータ変更が失われ得る。その場合、ユーザは２つの困難な選択肢に直面し得る。ユーザは、あり得る全ての変更を捕捉（キャプチャ）するために、全データの完全なバックアップを行うことができるが、これは増分バックアップよりも大きな記憶領域を必要とし、より時間がかかり得る。代案としては、ユーザは、照合（reconciliation）操作を行うことができ、これにより最後のバックアップ以来のデータへの変更（即ち、失われた、追跡された変更）を識別することができる。照合操作は、例えばディスクの使用ブロック等の使用されているストレージの部分を、最後のバックアップの部分と比較することによって変更を識別することができる。整合化操作の完了後には、増分バックアップを行うことができる。しかし、照合操作は、完全なバックアップに要するのと同じ又はより長い時間を要し、並びに同じ又はより多くのＩ／Ｏ処理を要し得る。
【０００５】
以上を考慮して、現行のシステムリカバリ技術は重大な問題及び欠点を伴うことがわかる。
【発明の概要】
【課題を解決するための手段】
【０００６】
チェンジトラッキングを用いたシステムリカバリのための方法を開示する。１つの特定好適例では、当該方法は、チェンジトラッキングを用いたシステムリカバリのための、コンピュータにより実現される方法として実現され、この方法は、不揮発性電子ストレージへの書き込み要求を受信するステップと、前記不揮発性電子ストレージ内の、前記書き込み要求に関連する電子ストレージ領域を識別するステップと、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットするステップと、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットするステップと、前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするステップとを含む。
【０００７】
この特定好適例の他の態様によれば、チェンジトラッキングを用いたシステムリカバリは、前記電子ストレージ領域を識別する領域インジケータをセットすべきか否かを決定するステップと、前記領域インジケータをセットすべきであることを決定した場合に、前記領域インジケータをセットするステップとをさらに含むことができる。
【０００８】
この特定好適例のさらなる態様によれば、前記電子ストレージ領域を識別する前記領域インジケータをセットすべきか否かを決定するステップは、前記領域インジケータが予めセットされていたか否かの決定に少なくとも部分的に基づくことができる。
【０００９】
この特定好適例の追加的な態様によれば、チェンジトラッキングを用いたシステムリカバリは、前記１つ以上のダーティー部分を識別する前記１つ以上の部分インジケータをセットすべきか否かを決定するステップと、前記１つ以上の部分インジケータをセットすべきことを決定した場合に、前記１つ以上の部分インジケータをセットするステップとをさらに含むことができる。
【００１０】
この特定好適例の追加的な態様によれば、前記１つ以上のダーティー部分を識別する前記１つ以上の部分インジケータをセットすべきか否かを決定するステップは、前記１つ以上の部分インジケータが予めセットされていたか否かの決定、前記電子ストレージ領域のすべての部分インジケータが予めセットされていたか否かの決定、前記電子ストレージ領域の割り当てられた部分をキャプチャすることの決定、及び前記電子ストレージ領域の割り当てられた部分を復元することの決定、の少なくとも１つに、少なくとも部分的に基づくことができる。
【００１２】
この特定好適例の追加的な態様によれば、１つ以上の部分インジケータをセットするステップは、揮発性電子ストレージ内にインジケータをセットすること及び不揮発性電子ストレージ内にインジケータをセットすることを含むことができる。
【００１３】
この特定好適例の追加的な態様によれば、不揮発性電子ストレージ内の前記１つ以上の部分インジケータをセットする時点を識別することは、所定期間に亘って追加の部分インジケータがセットされていないことの決定、前記電子ストレージ領域用のすべての部分インジケータがセットされたことの決定、及び前記識別される時点における、前記領域に関連するより低レベルのディスク動作、の少なくとも１つに基づくことができる。
【００１４】
この特定好適例の追加的な態様によれば、チェンジトラッキングを用いたシステムリカバリは、前記１つ以上の部分インジケータが不揮発性電子ストレージ内にセットされた後に、領域インジケータをアンセット（リセット）するステップをさらに含むことができる。
【００１５】
この特定好適例の追加的な態様によれば、前記１つ以上の部分インジケータは、１つ以上のダーティーなデータ部分を識別する、ビットマップ、ランリスト、レンジ（値域）、及びデータ構造、の少なくとも１つを備えることができる。
【００１６】
この特定好適例の追加的な態様によれば、チェンジトラッキングを用いたシステムリカバリは、複数のレベルの領域インジケータを利用するステップをさらに含むことができ、前記複数のレベルの領域インジケータは前記電子ストレージのチェンジトラッキングのさらなる細分化を可能にする。
【００１７】
この特定好適例の追加的な態様によれば、前記ダーティー部分は、ブロック、セクタ及びクラスタの少なくとも１つで構成することができる。
【００１８】
この特定好適例の追加的な態様によれば、前記ダーティー部分は、セグメントで構成することができる。
【００１９】
この特定好適例の追加的な態様によれば、前記チェンジトラッキングを用いたシステムリカバリは、前記電子ストレージのイメージを作成するステップと、前記領域インジケータを用いて前記電子ストレージのダーティー領域を識別して前記電子ストレージのイメージを前記電子ストレージのバックアップと比較するステップと、前記電子ストレージにおける、前記部分インジケータに対応する１つ以上の部分がバックアップ後に変更されていることの決定に基づいて、前記識別されたダーティー領域の前記１つ以上の部分インジケータを更新するステップとをさらに含むことができる。
【００２０】
この特定好適例の追加的な態様によれば、チェンジトラッキングを用いたシステムリカバリは、前記領域インジケータを用いて前記電子ストレージのダーティー領域を識別して、増分バックアップを作成するステップをさらに含み、前記増分バックアップは、ダーティーとして示された領域の割り当てられた部分をキャプチャし、かつ、前記増分バックアップは、クリーン領域の変更された部分のみをキャプチャするものである。
【００２１】
この特定好適例の追加的な態様によれば、チェンジトラッキングを用いたシステムリカバリは、前記領域インジケータを用いて前記電子ストレージのダーティー領域を識別して１つ以上のデータ部分をバックアップから復元するステップをさらに含み、このステップでは、識別されたダーティー領域の割り当て部分の復元を行い、かつ、クリーン領域の１つ以上の変更された部分の復元を行う。
【００２２】
この特定好適例の追加的な態様によれば、これらの方法は、少なくとも１つのプロセッサによって可読であるように構成され、請求項１に記載の方法を実行するためのコンピュータプロセスを実行することを、前記少なくとも１つのプロセッサに命令するためのコンピュータプログラム命令を格納するための、少なくとも１つのプロセッサ可読ストレージ媒体として実現することができる。
【００２３】
他の特定好適例では、これらの方法は、チェンジトラッキングを用いたシステムリカバリを提供するためのプログラムとして実現することができ、このプログラムは、プロセッサに、不揮発性電子ストレージへの書き込み要求を受信するステップと、前記不揮発性電子ストレージ内の、前記書き込み要求に関連する電子ストレージ領域を識別するステップと、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットするステップと、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットするステップと、前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするステップとを実行させる。
【００２４】
さらに他の特定好適例では、これらの方法は、チェンジトラッキングを用いたシステムリカバリを提供するシステムとして実現することができ、このシステムは、ネットワークに通信可能に結合された１つ以上のプロセッサを備え、前記１つ以上のプロセッサは、不揮発性電子ストレージへの書き込み要求を受信し、前記不揮発性電子ストレージ内の前記書き込み要求に関連する電子ストレージ領域を識別し、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、揮発性電子ストレージ内にセットし、前記電子ストレージ領域をダーティーとして識別する領域インジケータを、不揮発性電子ストレージ内にセットし、前記電子ストレージ領域の１つ以上のダーティー部分を識別する１つ以上の部分インジケータをセットするように構成されている。
【００２５】
この特定好適例の他の態様によれば、前記１つ以上のプロセッサは、前記領域インジケータを用いて、システム照合、システムバックアップ、及びシステム復元の少なくとも１つを行うように構成することができる。
【００２６】
以下、本発明を、添付の図面に示す好適な実施形態を参照しながら、より詳細に説明する。以下では本発明を、好適な実施形態を参照しながら説明するが、本発明はこれらの実施形態に限定されないことは明らかである。本明細書の教示に接した当業者であれば、追加的な実現、変更、実施形態、並びに他の使用分野を認識し、これらは本明細書に説明する本発明の範囲内であり、これらに関して、本発明は大きな有用性を有する。
【図面の簡単な説明】
【００２７】
本発明の一層の理解を促進するために、以下、添付の図面を参照し、同じ要素は同じ番号で参照される。これらの図面は、本発明を限定するものと解釈すべきものではなく、例示に過ぎないことを意図している。
【００２８】
【図１】本発明の実施形態による、システムリカバリを提供するシステムを示す図である。
【図２】本発明の実施形態による、システムリカバリを提供するモジュールを示す図である。
【図３】本発明の実施形態による、システムリカバリを提供する方法を示す図である。
【図４】本発明の実施形態による、システム照合を提供する方法を示す図である。
【図５】本発明の実施形態による、増分バックアップを提供する方法を示す図である。
【図６】本発明の実施形態による、システム復元を提供する方法を示す図である。
【発明を実施するための形態】
【００２９】
ここで図１を参照し、図１に、本発明の実施形態によるシステムリカバリを提供するためのシステム１００を示す。図１は、システム１００の略図であり、システム１００は、図示されていない追加の要素を含むことができる。ネットワーク要素１０４及び１１０は、ネットワーク１０２に通信可能に結合することができる。ネットワーク要素１０４は、変更トラッキング（追跡）モジュール１１４を含むことができる。コンピュータ１０８は、ネットワーク１０２に通信可能に結合することができる。データ１０６は、ネットワーク要素１０４に通信可能に結合することができる。ストレージ１１２は、ネットワーク要素１１０に通信可能に結合することができる。
【００３０】
ネットワーク１０２は、ローカルエリアネットワーク（LAN）、広域ネットワーク（WAN）、インターネット、セルラネットワーク、衛星ネットワーク、又はネットワーク要素１０４及び１１０、コンピュータ１０８、及びネットワーク１０２に通信可能に結合された他の装置の相互間の通信を可能にする他のネットワークとすることができる。
【００３１】
ネットワーク要素１０４及び１１０は、アプリケーションサーバ、バックアップサーバ、ネットワークストレージ装置、メディアサーバ、又はネットワーク１０２に通信可能に結合された他の装置とすることができる。ネットワーク要素１０４及び１１０は、アプリケーションデータ、バックアップデータ、又は他のデータの記憶のためにストレージ１１２を利用することができる。
【００３２】
ネットワーク要素１０４及び１１０は、それ自体と、バックアップ装置、バックアッププロセス、及び／又はストレージとの間で伝送されるデータを処理することができる、アプリケーションサーバ等のホストであることができる。
【００３３】
ネットワーク要素１１０は、ストレージ１１２に接続されたバックアップサーバとすることができる。１つ以上の実施形態では、ネットワーク要素１１０は、ストレージ１１２から受信したデータ又はストレージ１１２へ送信するデータを処理することができる。他の実施形態では、ネットワーク要素１１０は、ストレージエリアネットワークに結合されたネットワークアプライアンスを表すことができる。
【００３４】
コンピュータ１０８は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ又は他のコンピュータとすることができる。コンピュータ１０８は、ユーザ入力、データベース、ファイル、ウェブサービス、及び／又はアプリケーションプログラミングインタフェースから、データを受信することができる。コンピュータ１０８は、他のシステム、及び／又は、ローカル又はリモートストレージ、例えばデータ１１０、ネットワーク要素１０４及び１１０、及びストレージ１１２に対してクエリ（問合せ）を発することができる。コンピュータ１０８は、バックアップシステム、データリカバリシステム又は他のデータ管理システムへのユーザインタフェースを提供することができる。
【００３５】
データ１０６は、ネットワークからアクセス可能なストレージとすることができ、ネットワーク要素１０４及び１１０に対してローカルにすること、リモートにすること、あるいはこれらの組合せとすることができる。データ１０６は、テープ、ディスク、ストレージエリアネットワーク（SAN）、又は他のコンピュータからアクセス可能なストレージを利用することができる。１つ以上の実施形態では、データ１０６は、データベース又は他のアプリケーションインスタンスを表すことができる。
【００３６】
１つ以上の実施形態においては、ストレージ１１２内のデータは、スナップショット、又は他のファイルシステムのブロックレベルのバックアップ等のイメージとすることができる。ネットワーク要素１１０は、データをバックアップする要求を処理することのできる、バックアップサーバであることができる。
【００３７】
ネットワーク要素１０４は、変更トラッキングモジュール１１４を含むことができる。変更トラッキングモジュール１１４は、データ１０６への書き込み要求を追跡することができる。１つ以上の実施形態では、変更トラッキングモジュール１１４は、チェンジトラッキングドライバとすることができる。変更トラッキングモジュール１１４は、書き込み要求をインメモリ（メモリ上）で追跡することができ、あるいは、書き込み要求を、バックアップサーバ又はネットワーク要素１１０等の他のネットワーク要素に送信することができる。変更トラッキングモジュール１１４によって追跡した変更は、メモリに及び／又はディスク等の不揮発性ストレージに記憶することができる。
【００３８】
１つ以上の実施形態によれば、変更トラッキングモジュール１１４は、複数レベルのチェンジトラッキングを利用することができる。例えば、変更トラッキングモジュール１１４は、データ１０６等のストレージを、論理的に、領域に細分化するロジック又はデータを含むことができる。ボリューム等の記憶単位には、複数の領域が存在することができる。領域の個数は、ボリュームの大きさ又は他の要因に依存することができる。一部の実施形態では、領域の個数は、設定可能にすることができる。領域は、セグメント等、ストレージの論理的区分とすることができる。領域は、ブロック、セクタ、及び／又はクラスタ等、複数のデータ記憶部分で構成することができる。ブロック等、データ記憶部分の大きさは、オペレーティングシステム又は他の要因に依存することができる。一部の実施形態では、この大きさは、設定可能とすることができる。変更トラッキングモジュール１１４は、領域レベルで、及びブロックレベル等のより微細な精度で、変更を追跡することができる。
【００３９】
変更トラッキングモジュール１１４は、変更を追跡するために複数のデータ構造を作成することができ、これらのデータ構造は例えば、ビットマップ、ランリスト（例えば、使用されているストレージの最初の部分のアドレス及び使用されているストレージの長さ又は単位数を提供することのできるデータ構造）、アレイ、ポインタ、レンジ、及び電子ストレージの使用されている部分を効率的に識別するための他のデータ構造である。変更トラッキングモジュール１１４は、第１データ構造を用いて、電子ストレージの変更された領域を識別することができ、この第１データ構造は「ダーティー領域マップ」と称することができる。ダーティー領域マップは、変更トラッキングモジュール１１４によって追跡されている、ボリューム等の記憶単位上の領域毎に、１ビット又は他のインジケータを含むことができる。ダーティー領域マップは、揮発性及び不揮発性ストレージ内に維持することができる。
【００４０】
変更トラッキングモジュール１１４は、領域毎に、当該領域のデータ記憶部分、例えばブロック毎にビットまたは他のインジケータを有するデータ構造を維持することができる。これは、ブロックマップと称することができる。
【００４１】
変更トラッキングモジュール１１４によって書き込み要求が検出されると、変更トラッキングモジュール１１４は、この書き込み要求に対応する領域を識別して、この領域に対応する適切なビット又は他のインジケータを、ダーティー領域マップ中にセットすることができる。変更トラッキングモジュール１１４は、メモリ内の１つ以上のブロックマップ中に適切なビット又はインジケータをセットすることもでき、これらのビット又はインジケータは、各ダーティー領域の変更された部分を識別することができる。
【００４２】
上述のように、ダーティー領域マップは、揮発性及び不揮発性のストレージ内にて維持することができる。例えば、書き込みに先立って、メモリ内及びディスク上のダーティー領域マップ中に適切なビットをセットすることができる。適切なビットは、１つ以上のブロックマップに対して、インメモリでセットすることもできる。したがって、システムクラッシュ、不適切なシャットダウン又は他の障害が発生した場合、１つ以上の変更された領域を示すダーティー領域マップは、不揮発性メモリ内に保存することができる。
【００４３】
しかし、一部の実施形態によれば、追跡される書き込み要求の処理中には、ブロックマップを不揮発性ストレージに書き込むことができないことがある。例えば、書き込み要求は、ディスクに書き込むことができるが、システムリカバリのために変更されたブロックのトラッキングは、メモリに（例えば、１つ以上のブロックマップに）書き込むことができる。一旦、書き込み要求が完了すると、変更されたブロックのトラッキングをディスクに書き込むことができる。書き込み要求は一般に群発し、このため、多数の書き込み要求が連続的に、同じ領域に対して発生する。後続する、この領域への書き込み要求毎に、変更トラッキングモジュール１１４は、メモリ内のダーティー領域マップ中に適切なビットがセットされていることを確認することができ、そして、これらの書き込み要求は、変更を追跡するために追加の書き込みを必要とせずに処理することができる。一旦、或る領域への書き込み要求が停止又は一時停止すると、ダーティー領域マップ中でフラグ又はインジケータで示された１つ以上の領域について、変更トラッキングモジュール１１４は、不揮発性ストレージ上のブロックマップに書き込んで（例えば、ブロックマップをディスクへフラッシュ(flush)して）、どのブロックが変更されたかを示すことができる。一旦、或る領域についてのブロックマップを不揮発性ストレージに書き込むと、ダーティー領域マップを更新して、当該領域についてのインジケータをアンセット又はクリアすること（即ち、当該領域をクリーンとしてマークすること）ができる。
【００４４】
変更トラッキングモジュール１１４は、追加のフラグ又はインジケータを使用することができる。例えば、領域毎に２つの追加のインジケータを設けることができる。第１インジケータは、領域が以前にダーティーでなかった場合（例えば、最後のバックアップ以降その領域のブロックに変更が生じていない場合）に、セットすることができる。これは、変更トラッキングモジュール１１４が、まず、更新する必要があるブロックマップがディスク上に存在するか否かを確認せずに、当該領域についてのブロックマップをメモリから直接にディスクに書き込むことを可能にし得る。第２インジケータは、領域内のすべてのブロックが変更された場合に、セットすることができる。領域内のすべてのブロックが変更された場合、トラッキングモジュール１１４は、領域内のブロックの変更を追跡することを停止することができる（即ち、バックアップ操作等の後続の操作は、すべてのブロックをキャプチャすべきことを理解することができる）。
【００４５】
システムクラッシュ又は障害の場合には、ネットワーク要素１１０上で実行中のバックアッププロセス等のバックアップコンポーネント又はプロセスが、図４を参照して以下で詳述されるように、ダーティー領域マップを用いて照合操作を行うことができる。これは、変更／チェンジトラッキングを継続することを可能にし得る。バックアッププロセス又はバックアップコンポーネントは、照合操作に加えて、あるいはその代りに、他の操作を行うことができる。例えば、図５を参照して以下に詳述するように、バックアッププロセス又はバックアップコンポーネントは、ダーティー領域マップ及び１つ以上のブロックマップを用いて、増分バックアップを行うこともできる。バックアッププロセス又はバックアップコンポーネントはさらに、図５を参照して以下に説明するように、ダーティー領域マップ及び１つ以上のブロックマップを用いて、復元操作を行うことができる。
【００４６】
図２を参照し、図２に、本発明の実施形態による、システムリカバリを提供するためのリカバリ・チェンジトラッキングモジュール２１０を示す。図に示すように、リカバリ・チェンジトラッキングモジュール２１０は、１つ以上のコンポーネントを備えることができ、これらは、書き込みトラッキングモジュール２１２、照合モジュール２１４、増分バックアップモジュール２１６、復元モジュール２１８、及びエラーハンドリングモジュール２２０を含む。
【００４７】
書き込みトラッキングモジュール２１２は、ディスク等の不揮発性ストレージへ書き込むための割り込み又は要求を検出することができる。書き込みトラッキングモジュール２１２は、書き込み要求に関連する領域を特定し、当該領域がダーティーであること（即ち、当該領域に書き込みが行われているが、システムリカバリのために追跡されたブロック変更／チェンジは、不揮発性ストレージ内のブロックマップに保存されていないこと）を示すビット、フラグ、又は他のインジケータをセットすることができる。これらのインジケータ、ビット、又はフラグは、インメモリでセットして、ディスクへ書き込むことができる。
【００４８】
書き込みトラッキングモジュール２１２は、ブロック等、領域の複数部分の変更を追跡することができる。これらの変更は、メモリ内の１つ以上のブロック内に、フラグ、インジケータ、又はビットをセットすることによって追跡することができる。一旦、領域への書き込み要求が治まると、書き込みトラッキングモジュール２１２は、１つ以上のブロックマップを不揮発性ストレージに書き込む（例えば、ブロックマップをディスクへフラッシュする）ことができる。ブロックマップを不揮発性ストレージに書き込む時点の決定は、種々のアルゴリズムに基づくことができる。一部の実施形態によれば、領域への書き込み回数レベルを監視することができ、領域への書き込み回数レベルが特定の閾値を下回ってから特定期間後に、１つ以上のブロックマップを不揮発性ストレージに書き込むことができる。例えば、領域への書き込み要求が停止してから３０秒経過後に、ブロックマップを不揮発性ストレージに書き込むことができる。
【００４９】
一旦、領域についての１つ以上のブロックマップが不揮発性ストレージに書き込まれると、書き込みトラッキングモジュール２１２は、当該領域をクリーンとしてマークすることができる。書き込みトラッキングモジュール２１２は、ダーティー領域マップ中の適切な領域に対応するインジケータ、フラグ、又はビットをアンセット又はセットすることによって、領域をクリーンとしてマークすることができる。ダーティー領域マップは、複数の領域インジケータを含むことができる。一部の実施形態によれば、書き込みトラッキングモジュール２１２は、複数レベルのダーティー領域マップを管理することができる。例えば、最上位レベルマップは、ダーティー領域マップのサブレベルに対応するインジケータを含むことができる。これらのダーティー領域マップの各々は、複数のブロックマップを含むことができる。領域に対するブロックマップの個数、領域のレベルまたは領域レイヤの個数、ブロックマップの大きさ、及びダーティー領域マップの大きさは、ストレージの大きさ、利用可能なメモリ、ユーザの選択、算出されたバックアップシステム動作の処理時間を含む複数のファクタによって決定することができる。
【００５０】
照合モジュール２１４は、システムクラッシュ、不適切なシャットダウン、停電又は他のシステム障害後の、変更トラッキングの照合を可能にすることができる。このような照合は、ダーティー領域内の変更を識別して、不揮発性ストレージ内の１つ以上のブロックマップに書き込んで、ダーティー領域をクリーンとして設定することを可能にすることができる（例えば、ダーティー領域マップ中の対応するインジケータをリセットすることができる）。照合モジュール２１４は、システムクラッシュまたは停電後のストレージの、スナップショット等のイメージを作成することができる。そして照合モジュール２１４は、ダーティー領域マップを用いて、このイメージを最新のバックアップと比較することができる。照合モジュール２１４は、ブロック等の、イメージの１つ以上の部分を、最新のバックアップの対応する部分に対して照合することができる。照合モジュール２１４は、イメージ及び／又はバックアップの、ダーティー領域マップによってダーティーとして示された領域内の１つ以上の部分のみを照合することができる。バックアップにおける、イメージと異なる部分に対応する１つ以上のブロックマップを更新して、これらの部分が変更されたことを示すことができる（例えば、照合操作を、ダーティーとしてマークされている照合領域に向けることができるので、これらの領域は既にダーティーとして示されている場合がある）。一旦、ダーティー領域の変更された部分が、このダーティー領域の対応するブロックマップ中に適切に示されると、その領域についての照合プロセスは完了する。すべてのダーティー領域が照合されると、照合を完了することができる。ユーザの選択、システム設定、又は他のファクタによっては、照合プロセスは、ダーティー領域内のブロックマップのみに対して、インメモリで更新を行うことができる。ブロックマップの不揮発性コピーへの書き込みは、不揮発性ストレージ領域への書き込み動作のレベルに応じて、後で行うことができる。
【００５１】
１つ以上の実施形態では、照合モジュール２１４がイメージを作成すると、第２組のチェンジトラッキングマップを作成することがきる。照合プロセスは、以前のチェンジトラッキングマップの組（即ち、１つ以上のダーティー領域マップ及び１つ以上のブロックマップ）を用いて継続することができる。変更トラッキングは継続することができ、第２組のチェンジトラッキングマップを用いることができる。照合が完了した後は、以前のダーティー領域マップは必要でなくなり、破棄することができる。以前のブロックマップは、新しいブロックマップと、バックアップ時等の後の時点で併合することができる。
【００５２】
増分バックアップモジュール２１６は、システムクラッシュ、停電、又は他の障害の後の、増分バックアップを可能にすることができる。ダーティー領域マップ中でクリーンとして示された１つ以上の領域（例えば、ダーティー領域マップ中でフラグで示されていない領域）について、１つ以上の領域の１つ以上のブロックマップ中で変更されたものとしてマークされている部分（ブロック等）をバックアップすることができる。ダーティー領域マップ中でダーティーとしてマークされている１つ以上の領域については、１つ以上の領域内の使用されている全ての記憶部分をバックアップすることができる。このことは、完全なバックアップよりも大幅に高速にすることができ、書込み毎に、変更された各部分（ブロック等）が不揮発性ストレージ内でフラグで示されている場合に比べて、より小さい領域を使用し、より少ないオーバーヘッド及びＩ／Ｏ処理で済ますことができる。
【００５３】
復元モジュール２１８は、システムクラッシュ、停電、又は他の障害後のデータの復元を可能にすることができる。ユーザは、データをロールバックするか、システムを以前の状態に戻したいことがある（例えば、ソフトウェアのアップグレード又はインストールがクラッシュの原因となることがあり、復元によって、以前の安定なバージョンに戻すことができる）。復元モジュール２１８は、ダーティー領域マップ及び１つ以上のブロックマップを用いて、復元すべき、変更されたデータを識別することができる。ダーティー領域マップ中でクリーンとして示された１つ以上の領域内では、復元モジュール２１８は、１つ以上のブロックマップによって示される、最後のバックアップ以後に変更されたデータ部分のみを復元することができる。ダーティー領域マップ中でダーティーとしてマークされた１つ以上の領域内では、復元モジュール２１８は、データの全部分又は全ブロックを復元することができる。ダーティー領域の個数は、一般には少なく、クリーン領域内の変更された部分の個数は、全体の領域内の変更された部分の個数よりも大幅に少なくすることができる。したがって、復元に要する時間及びＩ／Ｏ処理は、完全な復元に要する時間及びＩ／Ｏ処理よりも大幅に少なくすることができる。
【００５４】
エラーハンドリングモジュール２２０は、変更トラッキング、変更トラッキングの照合、バックアップ、及び復元に関連するエラーを処理することができる。エラーハンドリングモジュール２２０は、変更トラッキング中に生じるエラー等のエラー及び他のエラー関連事象を記録しておくことができる。
【００５５】
図３を参照し、図３に、本発明の実施形態によるシステムリカバリを提供する方法３００を示す。ブロック３０２で、方法３００を開始することができる。
【００５６】
ブロック３０４では、方法３００は、ストレージへの書き込み要求を受信するステップを含むことができる。この要求は、ディスク、テープ、又は他の記憶媒体等のストレージへの書き込み要求を追跡しているデバイスドライバによって受信することができる。
【００５７】
ブロック３０６では、方法３００は、書き込み要求の対象とするストレージエリアに関連する領域を識別することを含むことができる。ボリューム等のストレージエリアの１つ以上の領域の大きさ及び個数は、ストレージエリアの大きさ、オペレーティングシステム、又は他のファクタに応じて変化し得る。一旦、書き込み要求に対応する領域を識別すると、対応するインジケータ、フラグ、又はダーティー領域マップに対応するビットを識別することができる。一部の実施形態では、複数のダーティー領域マップが存在することができ、適切なダーティー領域マップを識別することができる（例えば、最上位レベルのダーティー領域マップは、ストレージのさらなる細分化を提供することのできる複数の下位レベルダーティー領域マップへのインジケータを含むことができる）。
【００５８】
ブロック３０８では、方法３００は、ダーティー領域インジケータ、ビット、又はフラグをセットする必要があるか否かを決定することを含むことができる。領域の１つ以上のブロックマップをディスクへフラッシュして以来の、当該領域への最初の書き込み中には、当該領域は、ダーティー領域マップ中でクリーンとして示されていることがあり、当該領域がダーティーであることを示すためにインジケータをセットする必要があり得る。不揮発性ストレージ内の１つ以上のブロックマップ中に記録されていない、当該領域への他の書き込みが発生した場合には、当該領域は、ダーティー領域マップ中で既にダーティーとして示されており得る。領域をダーティーとセットすべきか否かを決定するに際しては、他のファクタを考慮することができる。例えば、領域のすべての部分が、不揮発性ストレージ内の対応するブロックマップ中で既に変更されたものとして示されている場合、一部の実施形態では、領域をダーティーとしてマークする必要がないことがある。対応する領域インジケータをセットすべき場合、方法３００は、ブロック３１０に進むことができる。対応する領域インジケータをセットすべきでない場合、方法３００はブロック３１２に進むことができる。
【００５９】
ブロック３１０では、方法３００は、ダーティーとしてマークすべき領域（即ち、当該領域への書き込み要求が受信された領域）に対応する適切なフラグ、ビット、又はインジケータをセットすることを含むことができる。フラグ、ビット、又は他のインジケータのセットは、インメモリで行うことができ、続いてダーティー領域マップの更新された部分をディスク等の不揮発性ストレージに書き込む。不揮発性ストレージへダーティー領域マップの更新を書き込んだ後は、方法３００は、ブロック３１１に進む。
【００６０】
ブロック３１１では、書き込み要求を完了することができる。書き込み要求において識別されたデータは、ディスク等の不揮発性ストレージに書き込むことができる。
【００６１】
ブロック３１２では、方法３００は、ストレージにおける、書き込み要求において変更された部分に対応する１つ以上のブロックインジケータを不揮発性ストレージに書き込むべきか否かを決定することを含むことができる。ブロックインジケータは、メモリ内のブロックマップ中にセットできる。しかし、ブロックマップをメモリからディスク等の不揮発性ストレージに書き込むべきか否かの決定を行うこともできる。決定は、発生しているストレージＩ／Ｏ処理のレベルに基づいて行うことができ、例えばディスクの対応する領域に関連するＩ／Ｏ処理のレベル等に基づくことができる。１つ以上の実施形態では、他のファクタも考慮することができる。例えば、不揮発性ストレージ上で或る領域のすべての部分が変更されたものとして示されている場合（例えば、不揮発性ストレージ内で或る領域についてのブロックマップのすべてのビットが以前にセットされ、かつ、以前に当該領域がクリーンとしてマークされている場合）、フラグ又はインジケータをセットすることができる。或る領域についてのブロックインジケータがすべてセットされているが故に又は他のファクタ故に、当該領域についての１つ以上のブロックインジケータをセットすべきでない場合、方法３００は、ブロック３２０で終了することができる。ストレージＩ／Ｏ処理のレベルにより又は他のファクタにより、或る領域についての１つ以上のブロックインジケータを現時点でセットすべきでない場合、方法３００は、ブロック３１４に進むことができる。或る領域についての１つ以上のブロックインジケータをセットすべきである場合、方法３００は、ブロック３１６に進むことができる。
【００６２】
ブロック３１４では、方法３００は、待機することを含むことができる。待機期間は、ユーザまたはシステムによって指定するか、アルゴリズムによって決定するか、あるいは入力として受信することができる。待機期間の終了後、方法３００は、ブロック３１２に戻ることができる。
【００６３】
ブロック３１６では、方法３００は、変更されたブロックに対応するブロックインジケータをセットすることを含むことができる。１つ以上のブロックマップを不揮発性ストレージに書き込むことができる。これは、前のブロックマップを不揮発性ストレージから読み込んで、それを更新することを含むことができる。一部の実施形態においては、追加のインジケータを用いることができる。例えば、領域が以前にダーティーではなかった場合に、その領域のためにセットするインジケータが存在することができる。このインジケータがセットされている場合、その領域内のブロックの更新は、ブロックマップの更新前に、不揮発性ストレージからブロックマップを読み込むことを必要しないことがある。なぜならば、その領域内のブロックマップは、以前にセットされていないからである。
【００６４】
ブロック３１８では、方法３００は、１つ以上の領域インジケータをクリアすることを含むことができる。一旦、領域についてのすべてのブロックマップをストレージに書き込むと、対応するダーティー領域マップ中の領域インジケータをクリアすることができる。
【００６５】
ブロック３２０では、方法３００を終了することができる。
【００６６】
図４を参照し、図４に、本発明の実施形態による、システム照合を提供する方法４００を示す。ブロック４０２では、方法４００を開始することができる。
【００６７】
ブロック４０４では、方法４００は、チェンジトラッキングを継続すべきか、あるいはバックアップまたは復元等の他の動作を行うべきかに関して決定すること、あるいはこれに関する入力を受信することを含むことができる。チェンジトラッキングを継続すべき場合、方法４００は、ブロック４１４に進むことができる。そうでない場合、方法４００は、ブロック４０６に進むことができる。
【００６８】
ブロック４０６では、方法４００は、次に行うべき動作について決定すること、あるいは、これについての入力を受信することを含むことができる。バックアップを取るべき場合、方法４００は、ブロック４１０に進むことができる。復元を行うべきである場合、方法４００は、ブロック４０８に進むことができる。
【００６９】
ブロック４０８では、方法４００は、復元操作を行うことを含むことができる。チェンジトラッキングを用いて復元操作を行うことは、図６を参照してより詳細に後述する。
【００７０】
ブロック４１０では、方法４００は、増分バックアップ等のバックアップを行うことを含むことができる。チェンジトラッキングを用いて増分バックアップを行うことは、図５を参照してより詳細に後述する。
【００７１】
ブロック４１４では、方法４００は、スナップショット等の、ストレージのイメージを作成することを含むことができる。１つ以上の実施形態によれば、一旦、イメージが作成されると、チェンジトラッキングを再開することができる。
【００７２】
ブロック４１６では、方法４００は、ダーティー領域マップによってダーティーとして示された領域内のイメージの部分と、バックアップ内の対応する部分とを比較することを含むことができる。比較によって、ダーティー領域における、バックアップ作成時以降に変更された１つ以上の部分を、識別することができる。
【００７３】
ブロック４１８では、方法４００は、１つ以上のフラグ、ビット、又は他のインジケータを、１つ以上のブロックマップ上で更新することを含むことができる。更新は、ブロック４１６内で変更されたものとして識別された部分に対応することができる。
【００７４】
ブロック４２０では、方法４００は、チェンジトラッキングを継続することを含むことができる。
【００７５】
ブロック４２２では、方法４００を終了することができる。
【００７６】
図５を参照し、図５に、本発明の実施形態による、増分バックアップを提供する方法５００を示す。ブロック５０２では、方法５００を開始することができる。
【００７７】
ブロック５０４では、方法５００は、領域がクリーンであるかダーティーであるかを決定することを含むことができる。方法５００は、１つ以上のダーティー領域マップを用いて、マップ上の対応するダーティー領域インジケータを識別することを含むことができる。対応するインジケータがセットされている場合には、方法５００は、ブロック５０８に進むことができる。対応するインジケータがセットされていない場合には、方法５００は、ブロック５０６に進むことができる。
【００７８】
ブロック５０６では、方法５００は、クリーンとして示された領域内の変更されたものとして示されたブロックを、バックアップ向けにキャプチャすることを含むことができる。変更されたブロックの部分集合のみ、即ちファイルシステムによって割り当てられたブロックのみをキャプチャすることができる。
【００７９】
ブロック５０８では、方法５００は、ダーティーとして示された領域内の、ファイルシステムによって割り当てられたブロックを、バックアップ向けにキャプチャすることを含むことができる。
【００８０】
ブロック５１０では、方法５００は、バックアップすべき領域がさらにあるか否かを決定することを含むことができる。バックアップすべき領域がさらにある場合には、方法５００は、ブロック５０４に戻ることができる。バックアップすべき領域がもう無い場合には、方法は、ブロック５１２に進むことができる。
【００８１】
ブロック５１２では、方法５００は、バックアップデータの重複を排除することを含むことができる。このような重複排除は、冗長データを削減及び／又は排除することができ、バックアップデータのために必要なストレージ及びＩ／Ｏ処理を削減することができる。例えば、ブロック５０８でキャプチャされたブロックの一部が以前のバックアップ以降変更されていない場合、このステップは、それらのブロックを、以前バックアップされているものとして識別することができる。これにより、ブロックが２回（即ち、冗長に）保存されることを回避することができる。
【００８２】
ブロック５１４では、方法５００を終了することができる。
【００８３】
図６を参照し、図６に、本発明の実施形態による、システム復元を提供する方法６００を示す。ブロック６０２では、方法６００を開始することができる。
【００８４】
ブロック６０４では、方法６００は、領域がクリーンであるかダーティーであるかを決定することを含むことができる。方法６００は、１つ以上のダーティー領域マップを用いて、マップ上の対応するダーティー領域インジケータを識別することを含むことができる。対応するインジケータがセットされている場合、方法６００は、ブロック６０８に進むことができる。対応するインジケータがセットされていない場合、方法６００は、ブロック６０５に進むことができる。
【００８５】
ブロック６０６では、方法６００は、クリーンとして示された領域内で変更されたものとして示されているブロック等のバックアップ部分を復元することを含むことができる。
【００８６】
ブロック６０８では、方法６００は、ダーティーとして示された領域内のすべてのバックアップブロックを復元することを含むことができる。
【００８７】
ブロック６１０では、方法６００は、追加の領域を復元するべきか否かを決定することを含むことができる。追加の領域を復元すべき場合、方法６００は、ブロック６０４に戻ることができる。復元すべき追加の領域が無い場合、方法６００は、ブロック６１２に進むことができる。
【００８８】
ブロック６１２では、方法６００を終了することができる。
【００８９】
なお、ここで、以上で説明した、本発明に基づくシステムリカバリを提供することは、一般に、入力データの処理及び出力データの生成を、ある程度含む。この入力データの処理及び出力データ生成は、ハードウエア又はソフトウェアで実現することができる。例えば、上述した本発明によれば、特定の電子部品を、システムリカバリ―用のモジュール内で、あるいは、システムリカバリの提供に関連する機能を実現するための類似または関連する回路内で用いることができる。代案としては、上述した本発明によれば、命令に従って動作する１つ以上のプロセッサが、システムリカバリの提供に関連する機能を実現することができる。こうした場合には、そのような命令を１つ以上のプロセッサ可読媒体（例えば、磁気ディスク又は他の記憶媒体）に格納することができること、あるいはそのような命令を、１つ以上の搬送波として具体化される１つ以上の信号を介して、１つ以上のプロセッサへ伝送することができることは、本発明の範囲内である。
【００９０】
本発明は、本明細書中にて説明した特定実施形態に限定されるものではない。実際に、以上の説明及び図面より本明細書で説明した実施形態及び変更に加えて、本発明の他の種々の実施形態又は変更が、当業者にとって明らかである。したがって、こうした他の実施形態及び変更は、本発明の範囲内であることを意図している。さらに、本明細書では、本発明を、特定環境内での特定目的用の特定の実施現に関連して説明してきたが、当業者は、本発明の有用性はこれらに限定されず、いくつもの目的用にいくつもの環境内で有益に実現することができることは、当業者の認める所である。したがって、以下の特許請求の範囲は、上述した本発明の全容とのその精神を考慮して解釈すべきである。
【図１】
0005669823.tif 000002
【図２】
0005669823.tif 000003
【図３】
0005669823.tif 000004
【図４】
0005669823.tif 000005
【図５】
0005669823.tif 000006
【図６】
0005669823.tif 000007