(57)【特許請求の範囲】
【請求項１】
記憶装置システムにおけるデータ対象の一貫性のある複製を作成する方法であって、
（ａ）前記データ対象の書込み操作により変更された１つ以上の領域をダーティ領域として決定する段階と、
（ｂ）１つ以上のダーティ領域を前記データ対象の複製にコピーする段階と、
（ｃ）前記データ対象の不変イメージを作成する段階と、
（ｄ）前記データ対象の一貫性のある複製を作成するために、前記データ対象の前記複製にコピーされなかったダーティ領域に対応する領域を、前記データ対象の前記不変イメージから前記データ対象の前記複製にコピーする段階と、
を含む方法。
【請求項２】
コピーする段階（ｂ）のために１つ以上のダーティ領域を選択する段階と、
前記選択されたダーティ領域をインフライト領域に指定する段階と、
を更に含む請求項１記載の方法。
【請求項３】
前記インフライト領域が前記データ対象の前記複製にコピーされたという受取通知を受け取る段階と、
前記受取通知を受け取ることに応答して前記インフライト領域の前記インフライト指定を取り除く段階と、
を更に含む請求項２記載の方法。
【請求項４】
前記データ対象の前記複製にコピーされなかった前記ダーティ領域が、コピーするために選択されなかった前記ダーティ領域及び前記受取通知が受け取られなかった前記インフライト領域を含む請求項３記載の方法。
【請求項５】
ある期間にわたってプロセッサ、メモリ、及びネットワーク資源の使用を償却する方法、及び作業負荷の書込み局所性に起因する高い比率の重ね書きがある時に、領域の過剰に不要なコピーを回避することを考慮する選択ヒューリスティックが、コピーするために１つ以上のダーティ領域を選択する際に使用される請求項２記載の方法。
【請求項６】
段階（ａ）及び（ｂ）が第１段階の間に実行され、段階（ｃ）及び（ｄ） が第２段階の間に実行され、前記第１段階及び第２段階は、所定の制約を満たすために必要に応じてその順に繰り返される請求項１記載の方法。
【請求項７】
第２段階の間に、前記データ対象のデータ領域への新規な書込み操作が、前記データ対象の前記不変イメージを変更せずに実行される請求項６記載の方法。
【請求項８】
各第２段階が完了すると前記データ対象の一貫性のある複製が生成され、前記データ対象の一貫性のある複製の履歴が維持される請求項６記載の方法。
【請求項９】
前記データ対象の最新の一貫性のある複製の不変イメージを作成する段階と、前記データ対象の前記複製を用いて段階（ａ）〜（ｄ）を繰り返す段階と、を更に含む請求項１記載の方法。
【請求項１０】
コピーする段階（ｂ）が反復的な方法で実行される請求項１記載の方法。
【請求項１１】
コピーする段階（ｂ）のために１つ以上のダーティ領域を選択する段階と、
前記選択されたダーティ領域をインフライト領域に指定する段階と、
を更に含み、選択及び指定の前記段階はコピーする段階（ｂ）の繰り返しごとに実行される請求項１０記載の方法。
【請求項１２】
記憶装置システムにおける第１プロトコル及び第２プロトコルを含む複製プロトコルに従ってデータ対象の一貫性のある複製を作成する方法であり、前記第１プロトコルは第１プロトコル段階の間に実行され、前記第２プロトコルは第２プロトコル段階の間に実行される方法であって、
前記第１プロトコル段階の間に、前記データ対象の書込み操作により変更された領域をダーティ領域と決定し、前記領域を前記データ対象の複製に選択的にコピーすることを可能にする記録を維持する段階と、
前記第２プロトコル段階の間に、前記データ対象の不変イメージを作成し、前記第１プロトコル段階の間に書き込まれたが前記データ対象の前記複製にコピーされなかった前記データ対象の前記領域に対応する前記データ対象の前記不変イメージのこれらの領域を前記データ対象の前記複製にコピーする段階と、
を含む方法。
【請求項１３】
前記第２プロトコル段階の終わりで、次の第１又は第２のプロトコル段階の間に変更できない前記データ対象の不変コピーが作られる請求項１２記載の方法。
【請求項１４】
前記第１プロトコル段階の間に、前記データ対象の前記複製にコピーされる領域を選択して、選択された領域の記録を維持する段階を更に含む請求項１３記載の方法。
【請求項１５】
書込みを示す前記記録が前記データ対象の前記複製にコピーされるために選択された前記データ対象の領域に対して更新される請求項１４記載の方法。
【請求項１６】
第１プロトコル段階の間に、前記選択された領域が前記データ対象の前記複製にコピーされたという受取通知を受け取る段階を更に含む請求項１５記載の方法。
【請求項１７】
選択された領域の前記記録が、前記受取通知が受け取られる領域に対して更新される請求項１６記載の方法。
【請求項１８】
ある期間にわたってプロセッサ、メモリ、及びネットワーク資源の使用を償却する方法、及び作業負荷の書込み局所性に起因する高い比率の重ね書きがある時に、領域の過剰に不要なコピーを回避することを考慮する前記領域が選択ヒューリスティックに従ってコピーするために選択される請求項１４記載の方法。
【請求項１９】
記憶複製システムであり、
データ対象を維持する少なくとも１つの第１コンピュータと、
前記第１コンピュータに接続して、前記データ対象の複製を維持する少なくとも１つの第２コンピュータと、
を備えるシステムであって、
前記第１コンピュータは、前記データ対象の書込み操作により変更された領域をダーティ領域であると決定し、前記ダーティ領域に対応する領域を前記第２コンピュータに選択的に送り、前記データ対象の不変イメージを作成し、前記第２コンピュータに送られていない前記ダーティ領域に対応する前記データ対象の前記不変イメージの領域を送るようにプログラムされ、
前記第２コンピュータは、前記第１コンピュータから前記ダーティ領域に対応する領域を受け取り、前記ダーティ領域に対応する領域を前記データ対象の前記複製に記憶し、前記第１コンピュータによってそうするように命令される時に、前記データ対象の前記複製の不変コピーを作成するようにプログラムされているシステム。
【請求項２０】
前記第１コンピュータが、ダーティ領域が識別される第１データレコード及び伝送のために選択されたダーティ領域が識別される第２データレコードを維持する請求項１９記載のシステム。
【請求項２１】
前記第１コンピュータが、前記データ対象の前記複製に記憶されなかったダーティ領域が識別される第３データレコードを維持する請求項２０記載のシステム。
【請求項２２】
前記第１コンピュータが、前記第１データレコード及び前記第２データレコードに基づいて前記第３データレコードを生成するようにプログラムされる請求項２１記載のシステム。
【請求項２３】
前記第１コンピュータが、前記データ対象の更新された一貫性のある複製が作成されたという受取通知を前記第２コンピュータから受け取った後に、前記第２及び第３のデータレコードのすべてのエントリをクリアするようにプログラムされている請求項２２記載のシステム。
【請求項２４】
前記第１コンピュータ及び前記第２コンピュータが別々の場所にある請求項１９記載のシステム。
【請求項２５】
前記第１コンピュータ及び前記第２コンピュータが同一の場所にある請求項１９記載のシステム。
【請求項２６】
前記第１コンピュータ及び前記第２コンピュータが同一のコンピュータの部分である請求項２５記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本願は２００８年４月４日に出願された米国仮特許出願第６１／０４２６９３号の利益を主張するものである。
【技術分野】
【０００２】
本発明は記憶複製のための方法及びシステムに関する。
【背景技術】
【０００３】
[0002]記憶複製は、データ対象（例えば、ファイル、物理ボリューム、論理ボリューム、ファイルシステム、その他）がある程度の冗長性を提供するために複製されるデータ保護戦略である。記憶複製は、多くの目的、例えば記憶装置故障時にデータ可用性を保証すること、サイト障害、又は計画的保守のために使用できる。記憶複製はまた、データ可用性を保証すること以外のためにも使用できる。例えば、作業負荷は、主要なデータ対象よりもむしろデータ対象の複製に向けられていてもよい。
[0003]しばしば、記憶複製方法は、通常故障又は災害時の潜在的データ損失に対する上限を指定する回復点目標（ＲＰＯ）として知られている制約をサポートするように設計されている。ＲＰＯは、時間、書込み操作、変更されるデータの量などに関して指定できる。例えば、データ対象の特定のセットのためのＲＰＯが２４時間として指定される場合は、このＲＰＯをサポートするように設計された記憶複製方法は、少なくとも２４時間毎にデータ対象のこの種のセットを複製することを必要とするだろう。この特定の方法は、各データ対象のためのＲＰＯが満たされるという様な方法でデータ対象内容を複製する。
【０００４】
[0004]典型的な記憶複製シナリオにおいて、データ対象の１つの主コピー及びデータ対象の１つ以上の複製がある。１つの記憶複製方法によれば、主要なデータ対象の不変イメージが作成され、次に、不変対象イメージの「ダーティ領域」が、対応する複製にコピーされる。「ダーティ領域」は、データ対象の部分が複製にコピーされた最後の点から変更された主要なデータ対象の部分を意味する。ダーティ領域のコピーが結果として一貫性のあるデータ対象複製になるように、主要なデータ対象の不変イメージの作成が必要である。不変対象イメージを作成して、ダーティ領域をデータ対象の複製にコピーするというこのサイクルは、対応するデータセットのためのＲＰＯを満たす頻度で繰り返される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0005]しかしながら、不変対象イメージを作成することは、計算、Ｉ／Ｏパフォーマンス、記憶空間、又は上記の全てに関してオーバーヘッドを必要とする。従って、記憶複製方法は、しばしば、不変対象イメージを作成して、稀にダーティ領域を複製するように設計され、結果として保守的な（長い）ＲＰＯになる。また、不変対象イメージは、通常、データ対象のためのＲＰＯを満たすのに丁度間に合うように作成される。このように、ダーティ領域は狭い時間ウインドウの間に転送され、これは、資源、例えばＣＰＵ、ディスク帯域幅、ネットワーク帯域幅等の効率的利用を困難にする。
【課題を解決するための手段】
【０００６】
[0006]本発明の１つ以上の実施形態は、記憶複製の間に必要とされるオーバーヘッドを減らす記憶複製プロトコルを提供する。その結果、記憶複製はより頻繁に実行でき、より積極的な（より短い）ＲＰＯを満たすことができる。
【０００７】
[0007]一実施形態において、記憶装置システムにおけるデータ対象の一貫性のある複製を作成する方法が提供される。本方法は、データ対象の書込み操作により変更された１つ以上の領域をダーティ領域として決定する段階と、１つ以上のダーティ領域をデータ対象の複製にコピーする段階と、を含む。本方法は更に、データ対象の不変イメージを作成する段階と、データ対象の一貫性のある複製を作成するために、データ対象の複製にコピーされなかったダーティ領域に対応する領域を、データ対象の不変イメージからデータ対象の複製にコピーする段階と、を含む。
【０００８】
[0008]他の実施形態では、記憶装置システムにおける第１プロトコル段階及び第２プロトコル段階を含む複製プロトコルによる、データ対象の一貫性のある複製を作成する方法が提供される。第１プロトコル段階の間に、書込み操作により変更されたデータ対象の領域が追跡され、変更された領域はデータ対象の複製に選択的にコピーされる。第２プロトコル段階の間に、データ対象の不変イメージが作成され、第１プロトコル段階の間に変更されたがデータ対象の複製にコピーされなかったデータ対象の領域に対応するデータ対象の不変イメージからの領域が、データ対象の複製にコピーされる。複製プロトコルの２つの段階は前記順序で繰り返し実行される。
【０００９】
[0009]本発明の一実施形態による記憶複製システムは、主要なデータ対象と関連した第１コンピュータ及び二次データ対象と関連した第２コンピュータを含む。第１コンピュータ及び第２コンピュータは同一か又は異なるコンピュータであってもよく、異なる場合は、それらは同一か又は異なる場所にあってもよい。第１コンピュータは、変更された主要なデータ対象の領域の経過を追って、書込み操作により変更された領域をダーティであると指定し、ダーティ領域に対応する領域を第２コンピュータに選択的に送り、主要なデータ対象の不変イメージを作成し、第２コンピュータにまだ送られていないダーティ領域に対応する主要なデータ対象の不変イメージの領域を送るようにプログラムされている。第２コンピュータは、主要なデータ対象からダーティ領域に対応する領域を受け取り、それらを二次データ対象に永続的に記憶し、二次データ対象が一貫性のある状態にある時、二次データ対象の不変イメージを作成するようにプログラムされている。
【図面の簡単な説明】
【００１０】
【図１】[0010]本発明の１つ以上の実施形態による記憶複製のためのプロトコルを略図で例示する。
【図２】[0011]データ対象への書込みを実行する方法のフロー図である。
【図３】[0012]複製ラウンドを実行する方法のフロー図である。
【図４】[0013]機会主義的な複製段階の間に領域を選択してコピーする方法のフロー図である。
【図５Ａ】[0014]一貫性のある複製段階を実行する方法のフロー図である。
【図５Ｂ】一貫性のある複製段階を実行する方法のフロー図である。
【発明を実施するための形態】
【００１１】
[0015]本発明の１つ以上の実施形態によれば、データ対象の一貫性のある複製はデータ対象のＲＰＯに従って周期的に作成される。一貫性のある複製を作成する方法は、データ対象の最初の複製から始まり、それはいかなる技術的に実現可能な方法で作成されるデータ対象のコピーでもよい。本方法は、多くの複製ラウンドによる書込み操作及び繰り返しにより変更されるデータ対象の領域の経過を追う。各複製ラウンドの終わりで、新しい一貫性のある複製が作成される。各複製ラウンドは２つの段階から成る。第１段階において、変更された領域はデータ対象からデータ対象の複製へ選択的に転送される。これらの転送は、必ずしも結果として一貫性のある複製になるというわけではない。第２段階において、データ対象の不変インスタンスが作成され、データ対象の不変インスタンスのすべてのダーティ領域はデータ対象の複製へ転送される。データ対象の複製における転送されたダーティ領域の永続的記憶は、結果として一貫性のある複製になる。次に、一貫性のある複製の不変イメージが作成され、第２段階は完了する。次に、新規な複製ラウンドが開始される。
【００１２】
[0016]本願明細書で使用しているように、書き込み操作Ｗ２の潜在的因果的先行オペレーションである同一対象に対するすべての書込み操作が同一の複製に反映される場合にのみ、データ対象の「一貫性のある」複製は書込み操作Ｗ２を反映する。書込み操作Ｗ２が書込み操作Ｗ１の完了後に発行される場合に限り、書込み操作Ｗ１は書込み操作Ｗ２の潜在的因果的先行オペレーションである。
【００１３】
[0017]図１は、本発明の１つ以上の実施形態による記憶複製のためのプロトコルを略図で例示する。図１に図示されるプロトコルは、機会主義的な複製プロトコル１３０及び一貫性のある複製プロトコル１４０を含むプロトコルであり、以下、その両方をより詳細に説明する。データ対象１１２は第１コンピュータ１１０内にあり、このプロトコルに従って複製される。データ対象１１２の複製は第２コンピュータ１５０内にある。第１コンピュータ１１０及び第２コンピュータ１５０は、同一のコンピュータ又は異なるコンピュータの部分でもよく、同一又は物理的に離れた場所（例えば、データセンター）にあってもよい。加えて、本願明細書中で開示されるデータ構造及びプロトコルは、ソフトウェア構成体、ハードウェア構成体、又はそれらのいかなる組み合わせでも用いるあらゆる技術的に実現可能な方法で実行されてもよい。
【００１４】
[0018]データ対象１１２は、ファイル、物理ボリューム、論理ボリューム、ファイルシステム等であり、それは第１コンピュータ１１０により管理される。データ対象１１２は、単一のデータ対象又は一組のデータ対象を含んでいてもよい。いずれにせよ、本願明細書では、説明を簡単にするために、単一のデータ対象１１２を使用する。また、データ対象１１２は１つ以上のデータ領域を含む。データ領域の細分性（the granularity of a data region）は、要因、例えば、下部の記憶装置の入出力アトミック性の単位、設計者がデータを複製することを望む細分性、新しく書き込まれたデータを追跡するために用いる方法等に基づいて設計者が決定できる設定可能なパラメータである。
【００１５】
[0019]不変データ対象１１４は、特定時点におけるデータ対象１１２の不変イメージを表す。本願明細書において例示される実施形態では、不変データ対象１１４は、データ対象１１２から一貫性のある複製プロトコル１４０の初めに作成され、データ対象１１２に対する新規な書込み操作が不変対象１１４を変更しないことを保証することによって、一貫性のある複製プロトコル１４０の実行中に保存される。いかなる技術的に実現可能な方法も、不変データ対象１１４を作成して保存するために使用できる。一つの例として、コピー・オン・ライト方法を使用できる。他の方法は、データ対象１１２全てをログ記録して、コピーを作成することを含む。このように、実施形態によっては、データ対象１１２は不変データ対象１１４とそこで実行されるあらゆる書込み操作との論理合成となることがある。
【００１６】
[0020]第１コンピュータ１１０はデータ対象１１２のダーティ領域を追跡する。データ領域が書込み操作により変更された場合は、それは「ダーティ」である。ダーティ領域の追跡はいかなる技術的に実現可能な方法で達成してもよい。データ対象のダーティ領域を追跡するために使用される方法に応じて、種々のデータ構造を使用できる。本願明細書に例示される本発明の実施形態では、アクティブデータ構造１２２が使用される。アクティブデータ構造１２２は、単一のデータ構造として、より大きいデータ構造の一部として、又は複数のデータ構造として実施できる。実施例は、ビットマップ、ログ、及びチェックサム・リストを含むが、これらに限定されるものではない。
【００１７】
[0021]第２コンピュータ１５０にあるデータ対象１１２の複製は、データ対象複製１５２及び一貫性のあるデータ対象複製１５４を含む。データ対象複製１５２及び一貫性のあるデータ対象複製１５４は両方共データ対象１１２の複製を表す。しかしながら、データ対象複製１５２は一貫性のある複製でなくてもよい。データ対象複製１５２は、機会主義的な複製プロトコル１３０及び一貫性のある複製プロトコル１４０の間に更新される。一貫性のある複製プロトコル１４０の終わりに、データ対象複製１５２は一貫性のある状態にある。次に、データ対象１５２の不変イメージが作成され、最新の一貫性のあるデータ対象複製１５４になる。こうするために、いかなる技術的に可能な方法を使用してもよい。一つの例として、コピー・オン・ライト方法を用いてもよい。他の方法は、データ対象１１２全てをログ記録して、コピーを作成する段階を含む。このように、実施形態によっては、データ対象複製１５２は単に、一貫性のあるデータ対象複製１５４とそれが第１コンピュータ１１０から受け取った変更点との論理合成となることがある。
【００１８】
[0022]データ対象１１２から不変データ対象１１４を作成するために使用する方法は、データ対象複製１５２から新しい一貫性のあるデータ対象複製１５４を作成するために使用する方法と同じ方法である必要はない。また、一実施形態において、最新の一貫性のあるデータ複製のみが第２コンピュータ１５０によって維持される。別の実施形態では、一貫性のあるデータ複製の履歴が、第２コンピュータ１５０によって維持される。
【００１９】
[0023]特定のＲＰＯを満足させる効果的な記憶複製プロトコルを実行するために、機会主義的な複製プロトコル１３０及び一貫性のある複製プロトコル１４０を含む複製プロトコルが周期的に実行される。各複製ラウンドは、データ対象１１２の新しい一貫性のあるデータ複製を作成する。データ対象１１２の最初の一貫性のあるデータ複製は、いかなる技術的に実現可能な方法で作成されてもよい。一実施形態において、これは、データ対象１１２のすべての領域をダーティであると指定し、続いて複製プロトコルを実行することにより行われる。
【００２０】
[0024]複製プロトコルの各複製ラウンドは、機会主義的な複製段階を含み、その間に機会主義的な複製プロトコル１３０が実行され、その後に、一貫性のある複製プロトコル１４０が実行される、一貫性のある複製段階が続く。機会主義的な複製段階の間に、第１コンピュータ１１０は、データ対象複製１５２に適用されるダーティ領域を求めてアクティブデータ構造１２２を走査する。ダーティ領域はデータ対象１１２から選択的に読み取られ、データ対象複製１５２に書き込まれる。機会主義的な複製プロトコル１３０を終了した後に、第１コンピュータ１１０は、一貫性のある複製段階を開始する。この段階では、それは不変データ対象１１４を作成し、不変データ対象１１４からデータ対象複製１５２において反映されないいかなるダーティ領域も複製して（更に後述するように）、データ対象複製１５２に永続的に記憶するために、それらを第２コンピュータ１５０へ転送する。これらの書込みが実行された後に、データ対象複製１５２は一貫性のある状態にあり、第２コンピュータ１５０はデータ対象複製１５２の不変イメージを作成し、それは新しい一貫性のあるデータ対象複製１５４になる。一貫性のある複製段階の終了後、不変データ対象１１４を除去でき、新規な複製ラウンドは機会主義的な複製段階を再開することにより開始できる。
【００２１】
[0025]インフライト・データ構造１３２が機会主義的な複製段階の間に用いられ、第１コンピュータ１１０と第２コンピュータ１５０との間の「インフライト」であるデータ対象１１２のダーティ領域の経過を追う。本願明細書で使用しているように、「インフライト」ダーティ領域は、データ対象の複製に永続的に記憶するために転送される過程にあるダーティ領域である。より詳しくは、１つ以上のダーティ領域がアクティブデータ構造１２２から選択されると、「アトミックな」動作で、選択されたダーティ領域はアクティブデータ構造１２２から除去され、インフライト・データ構造１３２に加えられる。次に、選択されたダーティ領域はデータ対象１１２から読み取られ、データ対象複製１５２に記憶されるために第２コンピュータ１５０に送られる。本願明細書で使用しているように、「アトミックな」動作のステップが実行される時は、プロトコルの他のいかなる部分も、例えば、書込み操作完了を理由としては、関係のあるデータ構造を変更しない。１つ以上の領域がデータ対象複製１５２の永続的記憶装置に書き込まれたという受取通知を受け取ると、インフライト・データ構造１３２は、これらのダーティ領域がもはやインフライトではないことを示すために更新される。
【００２２】
[0026]アクティブデータ構造１２２からのダーティ領域の選択及び選択されたダーティ領域をいつ転送すべきかという決定は、いかなる技術的に実現可能な選択ヒューリスティックを用いても行われる。選択ヒューリスティックは、１つ以上のダーティ領域を選択してもよいし、どれも選択しなくてもよい。また、選択ヒューリスティックは、以下を含むがこれに限られない、多くの要因を考慮できる：（１）ある期間にわたってプロセッサ、メモリ、及びネットワーク資源の使用を償却する方法、及び（２）作業負荷の書込み局所性に起因する高い比率の重ね書きがある時に、領域の過剰に不要なコピーを回避する。更に、アクティブデータ構造１２２がこの種の選択についてチェックされる頻度は、システム設計者により決定されてもよい。
【００２３】
[0027]特定のデータ領域がデータ対象複製１５２に記憶されるために第２コンピュータ１５０に伝送するために選択された後は、データ対象１１２への新規な書込みは、そのデータ領域を対象としてもよい。この種のシナリオでは、アクティブデータ構造１２２は、データ領域が再びダーティであることを反映するために更新される。データ領域がデータ対象１１２から読み取られる時に応じて、データ領域の新しいバージョン又はデータ領域の古いバージョンを転送できる。しかしながら、データ領域の古いバージョンが転送される場合であっても、アクティブデータ構造１２２は、データ領域がダーティであることをまだ反映している。従って、データ領域の新しいバージョンは、同じ機会主義的な複製段階の間に、又は次の一貫性のある複製段階の間に続いて転送される。
【００２４】
[0028]一貫性のある転送データ構造１４２が一貫性のある複製段階の間に用いられ、データ対象複製１５２に永続的に記憶されなかったデータ対象１１２のダーティ領域の経過を追う。開始時に、一貫性のある複製プロトコル１４０はアトミック動作として、以下の３つのステップを実行する：１）アクティブデータ構造１２２及びインフライト・データ構造１３２に反映されたダーティ領域を反映するために、一貫性のあるデータ構造１４２を更新し、２）アクティブデータ構造１２２及びインフライト・データ構造１３２からダーティ領域へのいかなる参照も除去し、３）不変データ対象１１４を作成する。続いて、一貫性のある転送データ構造１４２に反映されたダーティ領域の全てが、不変データ対象１１４からデータ対象複製１５２へコピーされる。これらの領域がコピーされた後は、データ対象複製１５２はデータ対象１１２の一貫性のある複製である。
【００２５】
[0029]機会主義的な複製段階の間に送られたが、第２コンピュータ１５０によってまだ受け取られなかったいかなるデータ領域もデータ対象複製１５２に最終的に反映される点に留意する必要がある。その理由は、インフライト・データ構造１３０で識別されたダーティ領域は一貫性のある転送データ構造１４２に反映されることにある。このように、これらのデータ領域は一貫性のある複製段階の間に再び送られる。他の実施形態では、すべてのインフライト・ダーティ領域が送られ、データ対象複製１５２に永続的に記憶されるまで、一貫性のある複製段階の開始は遅延させられる。
【００２６】
[0030]一貫性のある複製段階の間は、ダーティ領域はアクティブデータ構造１２２に反映され続けてもよい。しかしながら、これらのダーティ領域は、関連した不変データ対象１１４の作成に続くデータ対象１１２への書込みに対応する。新規な複製ラウンドが開始されると、これらのダーティ領域を有するアクティブデータ構造１２２は、次の機会主義的なプロトコル段階又は一貫性のあるプロトコル段階の間に、第２コンピュータ１５０への転送のためにチェックされる。
【００２７】
[0031]また、インフライト・データ構造１３２及び一貫性のある転送データ構造１４２は、ソフトウェア構成体、ハードウェア構成体、又はいかなるそれらの組み合わせを用いる、いかなる技術的に可能な方法で実行されてもよい。例えば、インフライト・データ構造１３２は、インフライト・ダーティ領域の全てを識別するログを使用して実行できる。特定領域の成功した永続的記憶の受取通知を受け取った後に、その領域はログから除去される。一貫性のある転送データ構造１４２をログとして実行してもよい。インフライト・データ構造１３２及び一貫性のあるデータ構造１４２が同時に用いられないので、同じデータ構造がインフライト・データ構造１３２及び一貫性のある転送データ構造１４２のために用いられてもよい。
【００２８】
[0032]図２は、図１のデータ対象１１２への書込みを実行する方法のフロー図である。方法２００は、第１コンピュータ１１０によって実行され、ステップ２０２から始まり、そこでは、第１コンピュータ１１０は、データ対象１１２に含まれる１つ以上のデータ領域への書込み操作を発行する。ステップ２０４で、第１コンピュータ１１０はデータ対象１１２への書込み操作を実行する。ステップ２０６で、第１コンピュータ１１０は、書込み操作によって対象とされるデータ領域がダーティであることを反映するためにアクティブデータ構造１２２を変更する。当業者は、この変更態様が、提示されたプロトコルへの対応する変更態様を有する書込み操作の発行に応じて実行可能であると認めるであろう。方法２００は、次に、ステップ２０２に戻り、そこでは、第１コンピュータ１１０が新規な書込み操作を発行する。方法２００は、この様に続き、ステップ２０２〜２０６をループする。
【００２９】
[0033]図３は複製ラウンドを実行する方法のフロー図である。方法３００は、第１コンピュータ１１０及び第２コンピュータ１５０によって実行され、ステップ３０２から始まり、そこでは、最初のデータ対象複製１５２が作成される。当業者は、最初のデータ対象複製を作成するために適用できる複数の方法があることを認めるであろう。例えば、それは、データ対象１１２のすべての領域をダーティである指定し、機会主義的な複製プロトコル１３０及び一貫性のある複製プロトコル１４０を実行することによって、最初に作成されてもよい。あるいは、最初のデータ対象複製は、その内容及びアクティブデータ構造１２２が共にデータ対象１１２の最新の内容を反映する限り、いかなる技術的に実現可能な方法でも作成される、データ対象１１２のコピーでもよい。方法３００の開始時点では、一貫性のあるデータ対象複製１５４はなくてもよい。
【００３０】
[0034]ステップ３０４で、機会主義的な複製段階が始まる。ステップ３０６で、選択頻度及び選択ヒューリスティックに応じて、アクティブデータ構造１２２で指定される１つ以上のダーティ領域が、データ対象１１２からデータ対象複製１５２にコピーされるか、又は何もコピーされない。図１に関連して上述したように、選択頻度は設計者によって規定される。データ対象複製１５２にコピーするためのデータ対象１１２の１つの特定領域を選択して、送るための一連の方法ステップは図４に関して後で更に詳細に説明される。ステップ３０８で、記憶複製が機会主義的な複製段階のままである場合は、方法３００はステップ３０６に戻る。方法３００はこの様に続き、記憶複製が一貫性のある複製段階に入るまでステップ３０６〜３０８をループする。
【００３１】
[0035]ステップ３０８で、記憶複製が一貫性のある複製段階への移行にある場合は、方法３００はステップ３１０へ進む。ステップ３１０で、機会主義的な複製段階は終了する。ステップ３１１において、一貫性のある複製段階が始まる。複製ラウンドの一貫性のある複製段階を実行するための一連の方法ステップは、図５に関して後で更に詳細に説明される。ステップ３１０の後に、方法３００はステップ３０６へ戻ってループして、新規な複製ラウンドを機会主義的な複製プロトコルの再開で始める。方法３００はこの様に続き、ステップ３０６〜３１２をループし、記憶複製が終了するまで順次の複製ラウンドを実行する。
【００３２】
[0036]図４は、機会主義的な複製段階の間にデータ対象複製１５２にコピーするためにデータ対象１１２の１つの特定領域を選択して送る方法４００のフロー図である。方法４００は、データ対象１１２の１つの特定領域に対して実行される一連のステップを表す。機会主義的な複製段階の間に、方法４００は、データ対象１１２の多くの異なる領域に対して並列処理の所定の最大程度まで同時に実行できる。
【００３３】
[0037]方法４００は第１コンピュータ１１０により実行されて、ステップ４０２から始まり、そこでは、選択頻度及び選択ヒューリスティックに応じて、アクティブデータ構造１２２で指定される１つ以上のダーティ領域は、第２コンピュータ１５０へ送るためにデータ対象１１２から選択されるか、又は何も選択されない。ステップ４０４は、１つのアトミック動作として実行される一組の動作又は操作を含む。ステップ４０４で、アクティブデータ構造１２２は、選択されたダーティ領域がもはやダーティ領域でないことを反映するために更新され、インフライト・データ構造１３２は、選択されたダーティ領域をインフライトであると規定するために変更される。ステップ４０６で、選択されたダーティ領域はデータ対象１１２から読み取られる。ステップ４０８で、データ対象複製１５２に永続的に記憶するため、第２コンピュータ１５０への選択されたダーティ領域の伝送が開始される。
【００３４】
[0038]ステップ４１０で、第１コンピュータ１１０は、選択されたダーティ領域の１つ以上がデータ対象複製１５２に永続的に記憶されたという、第２コンピュータ１５０からの受取通知を待つ。ステップ４１２で、インフライト・データ構造１３２は、受取通知された領域がもはやインフライトではないことを反映するために変更される。ステップ４１４で、選択されたダーティ領域の全てに対する受取通知が受け取られなかった場合は、方法４００はステップ４１０に戻る。選択されたダーティ領域の全てに対する受取通知が受け取られたときに、方法４００は選択されたダーティ領域に関して終わる。
【００３５】
[0039]機会主義的なデータ・プロトコル１３０が実行される間に、一貫性のある複製プロトコル１４０を開始してもよい点に留意する必要がある。これによって機会主義的な複製プロトコル１３０が生じ、従って方法４００はすべての領域が実行され、終了する。
【００３６】
[0040]図５Ａ及び５Ｂは、一貫性のある複製段階を実行する方法５００のフロー図を例示する。方法５００は、図３のステップ３１１の後に第１コンピュータ１１０によって実行される。ステップ５０４は、１つのアトミック動作として実行される一連の動作を含む。ステップ５０４で、第１コンピュータ１１０は、不変データ対象１１４を作成し、どのデータ領域がダーティ且つインフライトであるかを決定するためにアクティブデータ構造１２２及びインフライト・データ構造１３２を読み取り、ダーティ且つインフライトな領域を反映するために一貫性のある転送データ構造１４２をセットし、領域のいずれもダーティ又はインフライトでないことを反映するためにアクティブデータ構造１２２及びインフライト・データ構造１３２を変更する。図１に関連して上述したように、一貫性のある転送データ構造１４２は、アクティブデータ構造１２２及びインフライト・データ構造１３２で識別されるすべてのダーティ領域への参照を含む。
【００３７】
[0041]ステップ５０６〜５１２は、一貫性のある転送データ構造１４２で識別される１つの特定のダーティ領域に対して実行される一連のステップを表す。これらのステップは、多くの異なるダーティ領域に対して並列処理の所定の最大程度まで同時に実行され、一貫性のある転送データ構造１４２で識別されるダーティ領域の全てを処理するために、必要に応じて繰り返すことができる。ステップ５０６で、第１コンピュータ１１０は、第２コンピュータ１５０に伝送するために不変データ対象１１４からダーティ領域を読み取る。ステップ５０８で、不変データ対象１１４から読み取られたダーティ領域は、データ対象複製１５２に永続的に記憶するために、第２コンピュータ１５０に送られる。ステップ５１０で、第１コンピュータ１１０は、ダーティ領域がデータ対象複製１５２に永続的に記憶された第２コンピュータ１５０からの受取通知を処理する。ステップ５１２で、一貫性のある転送データ構造１４２は、受取通知された領域がもはやダーティでないことを反映するために変更される。
【００３８】
[0042]ステップ５１４で、第１コンピュータ１１０は、一貫性のある転送データ構造１４２で識別されたダーティ領域の全てに対する受取通知が受け取られたかどうかを絶えず検査する。その場合は、方法５００はステップ５１６へ進む。ステップ５１６で、第１コンピュータ１１０は、新しい一貫性のあるデータ対象複製１５４になるようにデータ対象複製１５２の不変イメージを作成するために第２コンピュータ１５０に通知する。一実施形態において、以前の一貫性のあるデータ対象複製は中断される。他の実施形態では、多くの従来の一貫性のあるデータ対象複製インスタンスを保持できる。ステップ５１８で、不変データ対象１１４の使用は中断される。ステップ５２０で、一貫性のある複製段階は終了する。
【００３９】
[0043]一実施形態において、一貫性のあるプロトコル段階が始まった後に、インフライト領域がまだ存在することがあり、それの転送は以前の機会主義的なプロトコル段階により開始されていた。現在の一貫性のある複製段階によって転送されるいかなる領域がデータ対象複製１５２に永続的に記憶される前には、以前の機会主義的なプロトコル段階の一部として転送されたすべてのインフライト領域がデータ対象複製１５２に永続的に記憶されるように、第１コンピュータ１１０及び第２コンピュータ１５０はプログラムされている。
【００４０】
[0044]他の実施形態では、すべてのインフライト・ダーティ・ブロックが送られて、データ対象複製１５２に永続的に記憶されるまで、一貫性のある複製段階の開始は方法３００のステップ３１０において遅延させられる。この種の実施形態では、ステップ５０４で、１つのアトミック動作で、第１コンピュータ１１０は、不変データ対象１１４を作成し、どのデータ領域がダーティであるかについて決定するためにアクティブデータ構造１２２を読み取り、ダーティ領域を反映するために一貫性のある転送データ構造１４２をセットして、領域のいずれもダーティでないことを反映するためにアクティブデータ構造１２２を変更する。この種の実施形態では、インフライト・データ構造１３２が一貫性のある複製段階の間に用いられないことに留意すべきである。
【００４１】
[0045]上述が本発明の種々の実施形態に向けられる一方、本発明のその他の更なる実施形態をその基本的な範囲を逸脱しないで考案できる。また、本発明の実施形態は、ハードウェア又はソフトウェアで、あるいはハードウェアとソフトウェアとの組み合わせで実施できる。本発明の一実施形態は、コンピュータシステム用としてのプログラム製品として行うことができる。プログラム製品のプログラムは、実施形態の機能（本願明細書中に記載されている方法を含む）を規定して、様々なコンピュータ可読記憶媒体に含ませることができる。
【図１】
0005480243.tif 000002
【図２】
0005480243.tif 000003
【図３】
0005480243.tif 000004
【図４】
0005480243.tif 000005
【図５Ａ】
0005480243.tif 000006
【図５Ｂ】
0005480243.tif 000007