(57)【要約】  データを記憶する方法を開示する。この方法は、第１記憶装置の指定の位置にデータを書き込む要求を受け取るステップを備えている。この方法は、更に、前記指定の位置にデータを書き込む前に、前記指定の位置に記憶されたベースデータのコピーを第２記憶装置に記憶するステップと、前記指定の位置にデータを書き込むステップとを備えている。【選択図】図１
2008507777.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する方法であって、
第１記憶装置の指定の位置にデータを書き込む要求を受け取るステップと、
前記指定の位置にデータを書き込む前に、前記指定の位置に記憶されたベースデータのコピーを第２記憶装置に記憶するステップと、
前記指定の位置にデータを書き込むステップと、
を備えた方法。
【請求項２】
前記第１記憶装置には第１ホストが関連され、前記第２記憶装置には第２ホストが関連される、請求項１に記載の方法。
【請求項３】
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたかどうか決定するステップと、
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたと決定された場合には、前記指定の位置に現在記憶されている現在データのコピーを前記第２記憶装置に記憶せずに、前記指定の位置にデータを書き込むステップと、
を更に備えた請求項１に記載の方法。
【請求項４】
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたかどうか決定する前記ステップは、複写ブロックデータ構造体を使用することを含む、請求項３に記載の方法。
【請求項５】
前記複写ブロックデータ構造体はブロック複写指示子を含む、請求項４に記載の方法。
【請求項６】
前記複写ブロックデータ構造体はビットマップを含む、請求項４に記載の方法。
【請求項７】
前記ベースデータは、記憶されたデータブロックを含む、請求項１に記載の方法。
【請求項８】
前記ベースデータは、前記指定の位置を前記ベースデータに関連した状態に回復するのに使用される、請求項１に記載の方法。
【請求項９】
前記ベースデータに関連した状態は、前記ベースデータに関連したバックアップ事象が発生した時間を含む、請求項８に記載の方法。
【請求項１０】
前記ベースデータに関連した事象は、前記第１記憶装置の少なくとも一部分に対して実行され又は要求されるスナップショットバックアップを含み、前記第１記憶装置の少なくとも一部分は、前記指定の位置を含む、請求項９に記載の方法。
【請求項１１】
前記指定の位置を、前記ベースデータに関連した状態に回復する要求を受け取るステップと、前記第２記憶装置から前記ベースデータを検索するステップと、前記指定の記憶位置へ前記ベースデータを書き込むステップと、を更に備えた請求項１に記載の方法。
【請求項１２】
前記第１記憶装置に関連した第１ホストに、前記ベースデータにアクセスする要求を受け取るステップと、前記第２記憶装置に記憶されたベースデータのコピーを、前記第２記憶装置に関連した第２ホストから検索するステップと、を更に備えた請求項１に記載の方法。
【請求項１３】
データを記憶するシステムであって、
第１記憶装置の指定の位置にデータを書き込む要求を受け取り、
前記指定の位置にデータを書き込む前に、前記指定の位置に記憶されたベースデータのコピーを第２記憶装置に記憶し、更に、
前記指定の位置にデータを書き込む、
というように構成されたプロセッサと、
前記プロセッサに結合され且つ前記プロセッサにインストラクションを与えるように構成されたメモリと、
を備えたシステム。
【請求項１４】
前記第１記憶装置には第１ホストが関連され、前記第２記憶装置には第２ホストが関連される、請求項１３に記載のシステム。
【請求項１５】
前記プロセッサは、更に、
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたかどうか決定し、
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたと決定された場合には、前記指定の位置に現在記憶されている現在データのコピーを前記第２記憶装置に記憶せずに、前記指定の位置にデータを書き込む、
というように構成された請求項１３に記載のシステム。
【請求項１６】
前記プロセッサは、更に、前記指定の位置を、前記ベースデータに関連した状態に回復する要求を受け取り、前記第２記憶装置から前記ベースデータを検索し、そして前記指定の記憶位置へ前記ベースデータを書き込むように構成された、請求項１３に記載のシステム。
【請求項１７】
前記プロセッサは、更に、前記第１記憶装置に関連した第１ホストに、前記ベースデータにアクセスする要求を受け取り、そして前記第２記憶装置に記憶されたベースデータのコピーを、前記第２記憶装置に関連した第２ホストから検索するように構成された、請求項１３に記載のシステム。
【請求項１８】
データを記憶するためのコンピュータプログラム製品であって、コンピュータ読み取り可能な媒体に具現化されるコンピュータプログラム製品において、
第１記憶装置の指定の位置にデータを書き込む要求を受け取り、
前記指定の位置にデータを書き込む前に、前記指定の位置に記憶されたベースデータのコピーを第２記憶装置に記憶し、更に、
前記指定の位置にデータを書き込む、
ためのコンピュータ命令を備えたコンピュータプログラム製品。
【請求項１９】
前記コンピュータプログラム製品は、更に、
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたかどうか決定し、そして
前記指定の位置に関連したベースデータが前記第２記憶装置に既に記憶されたと決定された場合には、前記指定の位置に現在記憶されている現在データのコピーを前記第２記憶装置に記憶せずに、前記指定の位置にデータを書き込む、
ためのコンピュータ命令を備えた請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記ベースデータは、前記指定の位置を、前記ベースデータに関連した状態に回復するのに使用される、請求項１８に記載のコンピュータプログラム製品。
【請求項２１】
前記コンピュータプログラム製品は、更に、前記指定の位置を、前記ベースデータに関連した状態に回復する要求を受け取り、前記第２記憶装置から前記ベースデータを検索し、そして前記指定の記憶位置へ前記ベースデータを書き込むためのコンピュータインストラクションを備えた、請求項１８に記載のコンピュータプログラム製品。
【請求項２２】
前記コンピュータプログラム製品は、更に、前記第１記憶装置に関連した第１ホストに、前記ベースデータにアクセスする要求を受け取り、そして前記第２記憶装置に記憶されたベースデータのコピーを、前記第２記憶装置に関連した第２ホストから検索するためのコンピュータ命令を備えた請求項１８に記載のコンピュータプログラム製品。
【請求項２３】
データを記憶する方法であって、
第１記憶装置からの全てのベースデータを、第２記憶装置のマスターセットにコピーするステップと、
前記第１記憶装置の指定の位置にデータを書き込む要求を受け取るステップと、
前記指定の位置におけるデータが変化したという指示をリストに記憶するステップと、
指定のベースタイムに、前記記憶された指示を使用して、前記第２記憶装置に関連したリモートホストへ、前記指定の位置に記憶されたデータのレプリカをその時間のものとして送信するステップと、を備え、
前記リモートホストは、前記レプリカデータを前記マスターセットに合併する前に、前記指定の位置に記憶されたベースデータのコピーを作成してそのコピーを前記マスターセットに記憶するように構成された方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データレプリカをリモート記憶することに係る。
他のアプリケーションの相互参照：本出願は、全ての目的で参考としてここに組み入れられた２００５年７月２３日に出願された“SNAP REPLICATION”と題する米国仮特許出願第６０／５９０，５９５号（代理人整理番号LEGAP072+）の優先権を主張する。
【背景技術】
【０００２】
コンピュータのデータは、新たな又は改善された情報が入手できるにつれて、時間と共に変化し又は更新される。ある状況においては、特定の時点で存在した情報を回復し又はそれにアクセスできることが望ましい。このようなことが望まれるのは、例えば、現在データが失われるか又は崩壊し、或いはデータに対するその後の変化が望ましくないと決定されるためである。その１つの解決策は、ソース記憶装置に記憶された全てのデータをコピーし、そしてユーザがデータの回復を希望するたびにそのコピーを別の記憶装置へ転送することである。しかしながら、このような解決策は、膨大なネットワーク、プロセッサ及び記憶リソースを消費し、多くの場合、たとえデータに変化がなくても、同じデータが何回もコピーされることになる。それ故、ネットワーク及び処理リソースを効率的に使用する仕方で特定の時点に対するデータを回復できるようにすることが有用である。
【０００３】
本発明の種々の実施形態が以下の詳細な説明及び添付図面に開示される。
【発明を実施するための最良の形態】
【０００４】
本発明は、プロセス、装置、システム、事柄の構成、コンピュータ読み取り可能なストレージ媒体等のコンピュータ読み取り可能な媒体、或いは光学的又は電子的通信リンクを経てプログラムインストラクションが送信されるコンピュータネットワークとして実施されることを含む多数の仕方で実施することができる。本明細書において、これらの実施、又は本発明がとり得る他の形態を、技術と称することができる。タスクを遂行するように構成されるとして説明されるプロセッサ又はメモリのようなコンポーネントは、所与の時間にタスクを遂行するように一時的に構成される一般的コンポーネント、又はタスクを遂行するために製造される特定のコンポーネントの両方を包含する。一般に、ここに開示するプロセスのステップの順序は、本発明の範囲内で変更することができる。
【０００５】
本発明の原理を例示した添付図面を参照して、本発明の１つ以上の実施形態を以下に詳細に説明する。本発明は、これらの実施形態について説明するが、いずれかの実施形態に限定されるものではない。本発明の範囲は、特許請求項のみによって限定され、本発明は、多数の変更や修正や均等物を包含する。本発明を完全に理解するために、多数の具体的な詳細を以下に述べる。これらの細部は、例示のために設けられたもので、これら具体的な詳細の幾つか又は全部を伴うことなく特許請求の範囲に基づいて本発明を実施することができる。明瞭化のために、本発明に関連した技術的分野で知られている技術的資料は、本発明を不必要に不明瞭にしないために、ここでは詳細に述べない。
【０００６】
ベースデータレプリカをリモート記憶することについて開示する。複写システムが、ソースデータを、それがベースタイム又は他のベースラインに存在したのと同じ状態に回復できるようにするベースタイム又は他のベースライン確立基準が選択される。第１記憶装置の指定の位置に新たなデータ又は変更されたデータを書き込む要求を受け取ると、その指定の位置からのデータのコピーが、そのデータにオーバーライトする前に１つ以上の他の記憶装置に記憶される。新たなデータ又は変更されたデータは、次いで、第１記憶装置のその指定の位置に書き込まれる。ある実施形態では、指定の記憶位置に記憶されたデータは、ベースタイム又は他のベースラインの後にその指定の位置にデータが初めて書き込まれるときだけ、１つ以上の他の記憶装置に書き込まれる。ある実施形態では、ベースデータに関連したソースホストから離れた記憶装置に複写データが記憶され、ベースデータを、ローカルに記憶する必要なく保存できるようにする。
【０００７】
図１は、ベースデータレプリカをリモート記憶するためのシステムの一実施形態を示す図である。図示された実施例において、ソースシステム１００は、記憶装置１０２及びプロセッサ１０４を備えている。ある実施形態では、ソースシステム１００は、ホストコンピュータシステムである。記憶装置１０２とプロセッサ１０４との間でデータを転送することができる。又、プロセッサ１０４と、このケースではターゲットリモートシステム１０６及び１１２で表わされた複数のターゲットリモートシステムとの間でも、データを転送することができる。ある実施形態では、ソースシステム１００は、プロセッサ１０４に結合されたネットワークインターフェイスカードのような図１に示されていない通信インターフェイスを備え、この通信インターフェイスは、ソースシステムから、例えば、１つ以上のネットワークを経て、ターゲットリモートシステム１０６及び１１２のようなターゲットリモートシステムへデータを送信するのに使用される構成である。ターゲットリモートシステム１０６は、プロセッサ１０８及び記憶装置１１０を備え、これらの間でデータを転送することができ、そしてターゲットリモートシステム１１２も、同様に、プロセッサ１１４及び記憶装置１１６を備え、これらの間でもデータを転送することができる。種々の実施形態において、ターゲットリモート記憶装置は、ソースシステム内の第２の記憶装置としてソースシステムに直接的に取り付けられるか、外部取り付け記憶装置としてソースシステムに取り付けられるか、又はネットワーク取り付け記憶装置としてソースシステムに取り付けられる。ある実施形態では、ソースシステム１００は、記憶装置１０２に記憶されたベースデータに新たなデータ又は更新されたデータをオーバーライトする前に、そのベースデータのレプリカを、１０６及び１１２のような１つ以上のターゲットリモートシステムへ送信するように構成される。ある実施形態では、ベースデータのレプリカは、ベースタイム又は他のベースライン事象の後に記憶装置１０２の指定の位置に初めて書き込むときにターゲットリモートシステムへ送信される。次いで、レプリカデータを使用して、その後にベースデータを検索し、例えば、そのとき存在していたデータのコピーをターゲットリモートシステムからアクセスすることができる。ある実施形態では、レプリカデータをソースシステムへ送信し、そしてそのレプリカに関連する時間に又は状態で存在していたデータを回復するか、及び／又はさもなければ、ソースシステムに得られるようにすることができる。
【０００８】
ある実施形態では、レプリカデータに関連した時点、例えば、スナップショットの時間に存在していて、記憶装置１０２に記憶されたソースデータのファイルシステム表示が、ターゲットリモートシステムに生成されると共に、そのときに存在していた記憶装置のビューが、例えば、以前のファイルバージョンを見出すためにユーザがナビゲートできるツリー又はフォルダ構造として、リモートシステム上で使用できるようにされる。ある実施形態では、ソースシステムにおいてスナップショットが撮られるたびに、最後のスナップショット以後、ソースシステム上で変更されたブロックのコピー、即ちこれらブロックにおける新たなデータが、リモートシステムへ送信されて、リモートシステム上のソースブロックのマスターコピーに合併される。ある実施形態では、ターゲットリモート記憶装置が２つ以上のソースシステムからベースデータブロックを受け容れるように構成されると共に、このような多数のシステムからのファイル又は他のデータの以前のバージョンがリモートターゲットシステムからアクセスされてもよい。
【０００９】
図２は、データのためのソースシステムの実施形態を示す。図示された実施例では、ソースシステム２００は、アプリケーション２０２と、ファイルシステム２０４と、複写ドライバ２０６と、記憶装置ドライバ２０８とを備えている。アプリケーション２０２は、複写アプリケーション、例えば、ソース記憶装置（又はその一部分）に記憶されたデータの状態を表わす関連記憶装置又はその一部分の「スナップショット」を、そのスナップショットに関連した時間（又は事象）に、ユーザが記憶できるようにするバックアップ及び回復アプリケーションを含む。ある実施形態では、複写アプリケーションは、複写ドライバ２０６と通信し、例えば、ベースタイム又は他のベースライン事象が指定の時間に生じたか又は生じるであろうことを複写ドライバ２０６に通知する。ある実施形態では、複写ドライバ２０６は、アプリケーション２０２から、例えば、ファイルシステム２０４を経て要求を受け取り、記憶装置ドライバ２０８に関連した記憶装置上の指定の位置に指定のデータを書き込むように構成される。ある実施形態では、複写ドライバ２０６は、第２の記憶位置、例えば、ソースシステム２００から離れて位置された第２記憶装置へ、記憶装置ドライバ２０８に関連した記憶装置上の指定の記憶位置に記憶されたベースデータのレプリカを送信し、これは、例えば、適用アプリケーション２０２からファイルシステム２０４を経て受け取った新たなデータ又は更新されたデータを記憶装置ドライバ２０８へ渡す前に、記憶装置ドライバ２０８を使用して、指定の記憶位置に記憶されたベースデータを読み取り、そしてその読み取ったベースデータのコピーを第２記憶装置へ送信することにより行なわれる。
【００１０】
図３は、ベースデータが、二次の、例えば、リモート記憶位置へ既にコピーされた記憶装置ブロックを追跡するために、一実施形態に使用される複写ブロックデータ構造体を示す。ここに示す実施例では、複写ブロックデータ構造体３００は、複数のブロック番号と、複数の対応する複写ブロック指示子とを備えている。複数のブロック番号は、図３において、ブロック＃０、ブロック＃１、ブロック＃２、及びブロック＃３で表わされる。同様に、複数の複写ブロック指示子は、図３において、複写ブロック指示子＃０、複写ブロック指示子＃１、複写ブロック指示子＃２、及び複写ブロック指示子＃３で表わされる。ある実施形態では、複写ブロックデータ構造体は、ビットマップを備え、ビットマップにおける各ビットは、ソース記憶装置上のブロックに対応し、そして「０」又は「１」のビット状態は、データブロックに関連したベースデータのレプリカがリモート記憶されたかどうか指示する。ある実施形態では、ソースシステムにおける複写ブロックデータ構造体、例えば、ビットマップは、スナップショットが撮られるたびに、リセットされる。ある実施形態では、リモートターゲットシステムは、ソースシステムで撮られる各スナップショットに対してベースデータブロックレプリカのプール(pool)を維持する。ソースシステムにおいて新たなスナップショットが撮られるときに新たなプール(pool)が生成される。
【００１１】
ある実施形態では、時間と共に（例えば、予め構成された及び／又は構成可能な時間周期の後に、及び／又は予め構成された及び／又は構成可能な事象、及び／又はある数、グループ、及び／又はシリーズ又はシーケンスの事象が発生した後に）、以前のスナップショットに関連したプールがリモートシステムで引退し、これは、例えば、それらを、リモートシステムに記憶されたソースシステムデータブロックのマスターセットに合体させ、及び／又は廃れた又はもはや関心のない記憶されたベースデータのブロックを削除し、その後、リモートシステムにおける複写データブロックプールが引退したスナップショットに関連した時間に又は状態で存在していた形態ではデータにアクセスできないようにすることにより行なわれる。
【００１２】
図４は、ベースデータレプリカをリモート記憶するためのプロセスの一実施形態を示す。ここに示す実施例では、ソース記憶装置の指定の位置にデータを書き込むための要求が受け取られる。ある実施形態では、ソース記憶装置の指定の位置にデータを書き込むことは、ソース記憶装置に１つ以上のデータブロックを書き込むことを含み、その結果、１つ以上のデータブロックに記憶されたベースデータ（もしあれば）がオーバーライトされることになる。４０２において、ソース記憶装置の指定の位置からのベースデータのコピーが、１つ以上のターゲットリモート記憶装置（１つ又は複数）に記憶される。ある実施形態では、複写アプリケーションがベースデータを後で回復できるようにするため、１つ以上のベースデータブロックが１つ以上のターゲットリモート装置に記憶される。４０４において、ソース記憶装置の指定の位置にデータが書き込まれる。このため、ソース記憶装置の指定の位置において、１つ以上のベースデータブロックが要求されたデータでオーバーライトされる。
【００１３】
図５は、複写システムを構成するプロセスの一実施形態を示す。ある実施形態では、このシステムは、複写アプリケーション及び複写ドライバを備えている。ここに示す実施例では、５００において、ベースデータのレプリカを記憶するためにシステムが初期化される。ある実施形態では、初期化は、ベースデータを複写すべきところのソースデータブロックを選択し、ベースデータのレプリカを記憶すべき１つ以上のターゲットリモートシステムを選択し、そして複写ドライバを初期化することを含む。５０２において、ベースデータのための基準が選択される。ベースデータは、ベースタイムに発生すると定義することができ、ここで、ベースタイムは、周期的に（例えば、週に一度）指定されるか、定義された時間に指定されるか、事象が発生するときに（例えば、ソフトウェアバージョンの発売、又は所定量のデータが変更された後に）指定されるか、或いはベースデータのリモート記憶コピーが望まれることを決定する他の仕方で指定される。ある実施形態では、事象は、スナップショットバックアップであり、ここで、スナップショットバックアップは、スナップショット時に存在したデータと同じ状態にデータを回復させることができる。ある実施形態では、ソースシステムのユーザは、スナップショット又は他のベースライン事象が発生すべきであることを任意の時間に指示してもよい。５０４において、ベースデータレプリカを記憶するためのシステムがアクチベートされる。
【００１４】
ある実施形態では、初期化は、ソースデータブロックをターゲットリモートシステムへコピーして、データブロックのマスターセットを生成することを含む。
【００１５】
図６は、ベースデータレプリカをリモート記憶するためのプロセスの一実施形態を示す。６００において、選択されたベースタイムに、複写ブロックデータ構造体が初期化される。ある実施形態では、複写ブロックデータ構造体は、図３の複写ブロックデータ構造体３００及び／又はビットマップを備え、そして６００は、図３における「ブロック複写指示子」値のようなブロック状態ビット又は他の値を、ブロックに関連したベースデータがまだ複写されていないことを指示する値又は状態にリセットすることを含む。６０２において、ベースデータに対するソースデータブロックを含む記憶装置の特定位置にデータブロックを書き込むための要求が受け取られる。要求が受け取られると、６０４において、記憶装置の特定位置に関連したベースデータのレプリカがターゲットリモートシステムに記憶されたかどうか決定される。ベースデータのレプリカがまだ記憶されていない場合には、６０６において、その特定位置に現在記憶されているデータのコピーが１つ以上のターゲットリモートシステムへ送信され、そして複写ブロックデータ構造体は、コピーがリモート記憶されたことを指示するように変更される。制御は、６０８へと進む。レプリカが記憶された場合、又は６０６においてレプリカが記憶されると、６０８において、受け取られたデータが、要求時に、特定位置に書き込まれる。６１０において、図６のプロセスの現在繰り返しが終了したかどうか決定される。ある実施形態では、６１０において、選択されたベースタイム以後、全てのソースデータブロックが複写された（即ち、データブロックのレプリカが１つ以上のターゲットリモートシステムに記憶された）場合に、現在繰り返しが終了したと決定される。ある実施形態では、６１０において、次のベースタイムに到達するか、又は他の何らかのベースライン事象が発生した場合に、現在繰り返しが終了したと決定される。６１０において、現在繰り返しが終了しないと決定された場合には、制御が６０２へと進み、特定位置にデータを書き込む次の要求を受け取ったときにプロセスが続けられる。６１０において、現在繰り返しが終了したと決定された場合には、６１２において、別のベースタイムがあるかどうか決定される。別のベースタイムがある場合には、６１４において、次のベースタイムが選択され、制御が６００へと進む。別のベースタイムがない場合には、プロセスが終了となる。
【００１６】
図７は、データブロックを１つ以上のリモートターゲットシステムにコピーするためのプロセスの一実施形態を示す。ある実施形態において、図７のプロセスは、図６の６０６を実施するのに使用される。図示された実施例では、７００において、プロセスは、第１の選択されたターゲットリモートシステムでスタートする。７０２において、データブロックは、選択されたターゲットリモートシステムにコピーされる。７０４において、最後のターゲットリモートシステムかどうか決定される。最後のターゲットリモートシステムでない場合には、７０６において、次のターゲットリモートシステムが選択され、そして制御は、７０２へ進む。最後のターゲットリモートシステムである場合には、７０８において、データブロックが複写ブロックデータ構造体に複写されたことが指示され、プロセスが終了となる。種々の実施形態において、データブロックがターゲットリモートシステムへパラレルにブロードキャストされるか、又はデータブロックを１つのターゲットリモートシステムへ送信し、該システムが、次いで、そのデータブロックを別のターゲットリモートシステムへ渡す（等々で、結局、全てのターゲットリモートシステムがデータブロックを受け取る）こともできる。
【００１７】
図８は、一実施形態におけるソースシステム及びリモートシステム記憶ブロックのタームシーケンスの一実施例を示す。ここに示す実施例では、時間ｔ＝０に、スナップショット１が発生し、ソースシステムは、ブロックＡ0、Ｂ0及びＣ0を記憶し、そしてリモートシステムは、ブロックを記憶しない。時間ｔ＝１に、ブロックＢ0は、Ｂ1に変化し、これは、Ｂ0（ベースデータブロック）のコピーをリモートシステムへ送信させる。時間ｔ＝２に、ブロックＢ1は、Ｂ2に変化し、これは、Ｂ0（ベースデータブロック）が既に送信されているので、いずれのコピーも送信させない。時間ｔ＝３に、スナップショット２が発生し、そして最後のスナップショット以来送信された全てのブロックを収集することにより、スナップ１ブロックセットがＢ0と共にリモートシステムに生成される。時間ｔ＝４に、ブロックＢ2及びＣ0がＢ4及びＣ4に変化し、これは、Ｂ2及びＣ0（ベースデータブロック）のコピーをリモートシステムへ送信させる。時間ｔ＝５に、ブロックＡ0及びＣ4がＡ5及びＣ5に変化し、これは、コピーＡ0（ベースデータブロック）を送信させる。Ｃ4は、最後のスナップショット以来Ｃ0が既に送信されているので、送信されないことに注意されたい。時間ｔ＝６に、スナップショット３が発生し、そして最後のスナップショット以後に送信された全てのブロックを収集することにより、スナップ２ブロックセットが、Ａ0、Ｂ2及びＣ0と共にリモートシステムに生成される。このように、ベースブロックのブロックセットが生成されて、そのブロックセットに関連したスナップショットに関連する時間に存在していたソースデータセットの全部又は一部分にアクセスすることができ、これは、そのブロックセットを含む適用ブロックを、ソースデータセットの対応部分と合併させることにより行われ、これは、実施形態に基づき、ソースシステム及び／又はリモートシステムにおいて行うことができる。
【００１８】
図９は、データを回復するプロセスの一実施形態を示す。ここに示す実施例では、９００において、特定のベースタイムにデータがあった状態にデータを回復するための要求が受け取られる。９０２において、その要求されたデータに対応するベースデータブロックがターゲットリモートシステムから検索されて、データを回復させる。ある実施形態では、特定のベースタイムにデータがあった状態にデータを回復するために、ソースシステムからの記憶されたブロックが要求される。９０４において、記憶装置の指定の位置にベースデータブロックが書き込まれ、プロセスが終了となる。ある実施形態では、図９のプロセスは、ベースタイム、又はベースライン事象に関連した時間に存在していた、ドキュメント又は他のファイルのようなデータのバージョンを検索するのに使用できる。ある実施形態では、ある時点における記憶装置のファイルシステム表示がソースシステムに生成されると共に、その指定の時点に存在していた記憶装置のビューがユーザに提示される。
【００１９】
図１０は、データレプリカをリモート記憶するためのプロセスの一実施形態を示す。１０００において、ベースデータブロックのマスターセットがソースシステムからリモートシステムへコピーされる。１００１において、最後のベースタイム以後にソースシステムのどのブロックが変更されたかを追跡するのに使用される変更ブロックデータ構造体が初期化される。ある実施形態では、この変更ブロックデータ構造体は、図３の複写ブロックデータ構造体３００及び／又はビットマップを備え、そして１００１は、図３の「ブロック複写指示子」値のようなブロック状態ビット又は他の値を、そのブロックに関連したベースデータが変化していて複写の必要があることを指示する値又は状態へとリセットすることを含む。１００２において、ベースデータに対するソースデータブロックを含む記憶装置の特定位置にデータブロックを書き込む要求が受け取られる。要求が受け取られると、１００４において、記憶されたデータブロックが、変更ブロックデータ構造体において変更されたと既にマークされたかどうか決定される。記憶されたデータブロックが、変更ブロックデータ構造体において変更されたとまだマークされない場合には、１００６において、記憶されたブロックは、変更ブロックデータ構造体において変更された（そして複写の必要がある）とマークされる。変更されたブロックが、変更ブロックデータ構造体において、変更されたとして既にリストされているか（１００４）、或いは変更ブロックデータ構造体が、１００６において、ブロックを複写する必要があることを指示するように変更されると、１００８において、次のベース事象が生じたかどうか、例えば、スナップショットが要求されたかどうか決定される。１００８において、ベース事象が生じなかったと決定されると、１０１０において、図１０のプロセスが終了したかどうか決定される。ある実施形態では、プロセスは、ユーザにより終了されてもよいし、規定の時間に終了されてもよいし、或いは他の仕方で終了されてもよい。プロセスが終了しない場合には、制御が１００２へ進み、特定の位置にデータを書き込む次の要求が受け取られたときに処理が続けられる。１００８において、ベース事象が発生し及び／又は要求されたことが決定され、例えば、スナップショットを記憶する要求が受け取られた場合には、１０１２において、最後のベース事象以後に変更されたブロックにおいてソースシステムに記憶された現在データのコピーがリモートシステムへ送信され、そして制御が１００１へと進み、ここで、変更ブロックデータ構造体がリセットされる。種々の実施形態において、変更されたブロックに現在記憶されたデータは、変更がなされたときに、小さなバッチで、規則的なインターバルで、及び／又はスナップショットのようなベース事象が生じたときに、リモートシステムへ送信される。ある実施形態では、リモートシステムは、変更されたデータをマスターセットに合併する前に、ベースデータのコピーを各変更ブロックに記憶する。ある実施形態では、ソースシステムは、変更されたデータをブロックに記憶する前に、ベースデータのコピーを記憶する。ある実施形態では、ソースシステムは、ベースデータのコピーをリモートシステムに送信するように構成してもよい。
【００２０】
図１１は、一実施形態においてソースシステム及びリモートシステムの記憶ブロックのタイムシーケンスの一実施例を示す。ここに示す実施例では、時間ｔ＝０において、スナップショット１が発生し、ソースシステムは、ブロックＡ0、Ｂ0及びＣ0を記憶し、そしてリモートシステムは、コピーが送信されて、ブロックＡ0、Ｂ0及びＣ0を記憶する。時間ｔ＝１に、ブロックＢ0は、Ｂ1に変化し、これは、ブロックＢが変更されたこと及び次のスナップショットの時間に複写の必要があることを変更ブロックデータ構造体が指示するようにさせる。ある実施形態では、変更されたブロック（即ち、そのときこれらブロックに記憶されたもの）は、スナップショットが撮られるときにリモートシステムへバッチで送信される。時間ｔ＝２に、ブロックＢ1は、Ｂ2に変化し、これは、このブロックが変化したことを変更ブロックデータ構造体が既に指示しているので、更なるアクションを促すことはない。時間ｔ＝３に、スナップショット２が発生する。ソースシステムは、最後のスナップショット以後に変更されたことが、例えば、変更ブロックデータ構造体のチェックにより決定されているブロックに記憶された現在（即ち変更された）データのコピーをリモートシステムへ送信する。リモートシステムでは、変更されたブロックがリモートシステムにおいてマスターコピーセットに合併される前に、Ｂ0を複写することによりスナップ１ブロックセットが生成される。時間ｔ＝４に、ブロックＢ2及びＣ0がＢ4及びＣ4へ変化し、これは、ブロックＢ及びＣが変化したこと、及びリモートシステムが次のブロックセットを生成できるようにするためにこれらデータブロックが次のスナップショットの前に（又は次のスナップショットに）複写される必要があることを、変更ブロックデータ構造体が指示するようにさせる。時間ｔ＝５に、ブロックＡ0及びＣ4がＡ5及びＣ5へと変化し、これは、Ａ0（ベースデータブロック）が変更されたこと、及びリモートシステムが次のブロックセットを生成できるようにするためにこのデータブロックが次のスナップショットの前に複写される必要があることを、変更ブロックデータ構造体が指示するようにさせる。Ｃへの変更は既に指示されているので、Ｃ4への変更により変更ブロックデータ構造体が変更されないことに注意されたい。時間ｔ＝６に、スナップショット３が発生し、ソースシステムは、最後のスナップショット以後に変更されたブロックに現在記憶されたデータをリモートシステムへ送信し、そしてスナップ２ブロックセットがリモートシステムにおいてＡ0、Ｂ2及びＣ0と共に生成され、これは、変更されたブロックがリモートシステムにおいてマスターコピーセットに合併される前にＡ0、Ｂ2及びＣ0をコピーすることにより行なわれる。
【００２１】
図１２は、データを回復するプロセスの一実施形態を示す。ここに示す例では、１２００において、データを、それが特定のベースタイムにあった状態に回復する要求が受け取られる。１２０２において、リモートシステムにおけるベースデータブロックのマスターコピーセット及び介在するブロックセットを使用して、データを回復するが、これは、例えば、適用ベースデータブロックがもしあればこれを、マスターコピーセットからの適用ブロックと合併して、以前の時点、例えば、以前のスナップショットのときに存在していた要求されたデータ、例えば、ファイルに関連したブロックのセットを発生することにより行なわれる。１２０４において、ベースデータブロックが記憶装置の指定の位置に書き込まれ、プロセスが終了となる。ある実施形態では、図１２のプロセスは、ベースタイム、又はベースライン事象に関連した時間に存在していたドキュメント又は他のファイルのようなデータのバージョンを検索するのに使用できる。ある実施形態では、ある時点における記憶装置のファイルシステム表示がターゲットリモートシステムに生成され、そしてその指定の時点に存在していた記憶装置のビューがユーザに提示される。
【００２２】
本発明の理解を明瞭にするために幾つかの実施形態を詳細に説明したが、本発明は、これらの詳細に限定されない。本発明は、多数の別の仕方でも実施できる。ここに開示する実施形態は、単なる例示に過ぎず、本発明をこれに限定するものではない。
【図面の簡単な説明】
【００２３】
【図１】ベースデータレプリカをリモート記憶するためのシステムの一実施形態を示す図である。
【図２】データのソースシステムの一実施形態を示す図である。
【図３】一実施形態における複写されたブロックデータ構造を示す図である。
【図４】ベースデータレプリカをリモート記憶するためのプロセスの一実施形態を示す図である。
【図５】複写システムのためのプロセスの一実施形態を示す図である。
【図６】ベースデータレプリカを記憶するシステムをアクチベートするためのプロセスの一実施形態を示す図である。
【図７】データブロックを１つ以上のリモートターゲットシステムへコピーするためのプロセスの一実施形態を示す図である。
【図８】レプリカデータブロックのタイムシーケンスの一例を示す図である。
【図９】データを回復するプロセスの一実施形態を示す図である。
【図１０】データレプリカをリモート記憶するためのプロセスの一実施形態を示す図である。
【図１１】レプリカデータブロックのタイムシーケンスの一例を示す図である。
【図１２】データを回復するためのプロセスの一実施形態を示す図である。
【図１】
2008507777.tif 000003
【図２】
2008507777.tif 000004
【図３】
2008507777.tif 000005
【図４】
2008507777.tif 000006
【図５】
2008507777.tif 000007
【図６】
2008507777.tif 000008
【図７】
2008507777.tif 000009
【図８】
2008507777.tif 000010
【図９】
2008507777.tif 000011
【図１０】
2008507777.tif 000012
【図１１】
2008507777.tif 000013
【図１２】
2008507777.tif 000014
【国際調査報告】
2008507777.tif 000015
2008507777.tif 000016