(57)【特許請求の範囲】
【請求項１】
第１データ記憶部に対して一組の操作を行う実行手段と、前記第１データ記憶部に対するのと同じ前記一組の操作が前記第２データ記憶部に対して行われるようにする誘発手段とを備えるシステムを使用する方法であって、
前記方法は、
前記実行手段により、第１データ記憶部に対して一組の操作を行う実行ステップであって、
前記第１データ記憶部に対する一組の操作における各操作は、前記第１データ記憶部内のある時点のデータから内容が変更されたデータを前記第１データ記憶部に作成することと、前記第１データ記憶部に関連する第１のスナップショット・データ記憶部を作成すること、のうち少なくとも一方を行い、かつ、
前記一組の操作は前記第１データ記憶部内の選択されたデータを第２データ記憶部にコピーする際に行われる実行ステップと、
前記誘発手段により、前記第１データ記憶部に対するのと同じ前記一組の操作が前記第２データ記憶部に対して行われるようにする誘発ステップであって、
前記第１データ記憶部に対して行われる前記一組の操作により前記変更されたデータが作成され、かつ、前記第２データ記憶部にコピーされた前記選択されたデータに前記変更されたデータの一部が含まれていない場合に、前記第２データ記憶部に対して前記一組の操作が行われることに応じて、前記第２データ記憶部内の第２のデータが前記変更されたデータの一部のコピーを含むように更新される誘発ステップと、を具備し、
前記誘発ステップは、複製ストリームに、コマンドを含む命令を挿入すること、及び、前記命令を送信することを含み、
前記コマンドは、前記一組の操作のうち少なくとも１つの操作を行うように構成されており、
前記一組の操作は、前記一組の操作のうち順序付けられたサブセットを含み、前記一組の操作のうち前記順序付けられたサブセットの操作は、前記第１データ記憶部及び前記第２データ記憶部の両方に対して一連の順序に従って行われ、前記一連の順序は前記第１データ記憶部と前記第２データ記憶部との間で一貫性を保証するように設定される、方法。
【請求項２】
前記一組の操作のうち１つの操作により、第３データ記憶部内の第３のデータから前記第１データ記憶部内の第１のデータの一部を復元し、
前記第２データ記憶部に対して行われるようにする前記一組の操作では、第４データ記憶部内の第４のデータから前記第２データ記憶部内の第２のデータの対応する部分を復元させ、前記第１のデータの一部を復元した後及び前記第２のデータの対応する部分を復元させた後、前記第１のデータの一部及び前記第２のデータの一部が同一となる、
請求項１に記載の方法。
【請求項３】
前記一組の操作のうち１つの操作により、前記第１データ記憶部内の前記第１のデータを第３データ記憶部内の第３のデータに同期させ、
前記第２データ記憶部に対して行われるようにする前記一組の操作では、前記第３データ記憶部に対応する第４データ記憶部内の第４のデータに前記第２データ記憶部内の第２のデータを同期させ、前記第１のデータの一部を同期させた後及び前記第２のデータを同期させた後、前記第１のデータと前記第２のデータが同一となる、
請求項１に記載の方法。
【請求項４】
前記一組の操作のうち１つの操作により、前記第１データ記憶部に関連する第１のスナップショット・データ記憶部を作成することにより前記第１データ記憶部の構成を変更し、前記第１データ記憶部内の第１データの第１のスナップショットが前記第１のスナップショット・データ記憶部に記憶され、
前記第２データ記憶部に対して行われるようにする前記一組の操作では、前記第２データ記憶部に関連する第２のスナップショット・データ記憶部を作成させ、前記第２データ記憶部内の第２データの第２のスナップショットは前記第２のスナップショット・データ記憶部に記憶され、前記第１のスナップショットと前記第２のスナップショットは同一のデータを含む、
請求項１に記載の方法。
【請求項５】
前記第２のスナップショット・データ記憶部が作成された後、前記第１のスナップショット・データ記憶部において変更されたデータを、前記第２のスナップショット・データ記憶部にコピーする、
請求項４に記載の方法。
【請求項６】
前記選択データが前記第２データ記憶部にコピーされる際、変更されたデータが前記第２のスナップショット・データ記憶部にコピーされる、請求項５に記載の方法。
【請求項７】
前記一組の操作を行われる最中の第１の時点において、前記第１データ記憶部に対して前記一組の操作における第１の操作が行われ、かつ、該記第１の操作が前記第１データ記憶部に対して行われるとき該第１データ記憶部が第１のデータを具備する場合、
前記第１の時点より後の第２の時点において、前記第１の操作が前記第２データ記憶部に対して行われるとき前記第２データ記憶部が前記第１のデータのコピーを具備する、
請求項１に記載の方法。
【請求項８】
前記一組の操作が行われる最中の第１の時点において、前記第１データ記憶部が第１のデータを具備する場合、第２の時点において、前記第２データ記憶部が前記第１の時点における前記第１データ記憶部と一貫性のある状態にある場合、前記第２データ記憶部が前記第１のデータのコピーを具備する、
請求項１に記載の方法。
【請求項９】
前記変更されたデータの作成は、前記第１データ記憶部上の前記一連の順序における指定された位置で行われ、
前記指定された位置は、前記一連の順序における第１の変更データと前記一連の順序における第２の変更データとの間であり、
前記第１の変更データと前記第２の変更データは前記一連の順序において前記指定された位置を除いて隣り合っており、
前記第２データ記憶部に対して行われるようにする前記一組の操作は、前記変更されたデータのコピーを前記第２データ記憶部上の前記一連の順序における前記指定された位置で作成させることを含む、
請求項１に記載の方法。
【請求項１０】
前記変更されたデータのコピーを前記指定された位置で作成させることは、前記実行手段が、前記第１データ記憶部から前記第２データ記憶部へコピーされる前記第１データ記憶部の前記選択されたデータ内にコマンドを挿入し、前記指定された位置において前記変更されたデータのコピーを作成することを含む、請求項９に記載の方法。
【請求項１１】
前記順序付けられた操作のサブセットは、前記一組の操作における全ての操作を含む、
請求項1に記載の方法。
【請求項１２】
前記一組の操作は、更に、前記一組の操作のうち指示されていないサブセットを含み、
ここで、
前記指示されていないサブセットは前記一連の順序における指定された点において実行され、
前記一連の順序における指定された点は、前記一連の順序における第１の各点と前記一連の順序における第２の各点との間であり、
前記第１の各点は前記一連の順序において前記第２の各点と隣り合っており、
前記指定されていないサブセットにおける各操作は、前記指定されていないサブセットにおける他の操作と並行して行うことができる、
請求項１に記載の方法。
【請求項１３】
前記第２データ記憶部に対して行われるようにする前記一組の操作は、前記一組の操作を行う少なくとも１のコマンドを前記第２データ記憶部上で実行させることを含む、請求項１に記載の方法。
【請求項１４】
前記選択されたデータは、書き込み操作の結果変更された第１のデータから成る、請求項１に記載の方法。
【請求項１５】
前記一組の操作には前記書き込み操作が含まれない、請求項１４に記載の方法。
【請求項１６】
前記選択されたデータは、前記第１データ記憶部に記憶された第１のデータのスナップショットの一部から成り、
前記スナップショットの一部は第２の書き込み操作の結果変更される、
請求項１に記載の方法。
【請求項１７】
前記一組の操作には前記第２の書き込み操作が含まれない、請求項１６に記載の方法。
【請求項１８】
前記選択されたデータが前記第２データ記憶部にコピーされた後、前記第２データ記憶部が前記選択されたデータのコピーを更に含むこととなる、請求項１に記載の方法。
【請求項１９】
前記第１のデータ記憶部に対応する一次ノードに障害が発生すると、
前記第１データ記憶部における選択されたデータの一部であって、コピー用に保存されるが、前記第２データ記憶部に未だコピーされていない一部を特定し、
前記第１のデータ及び前記第２のデータが同一になるように、前記一部のみが前記第２データ記憶部にコピーされるようにする、
ステップを更に具備する請求項１に記載の方法。
【請求項２０】
前記第１のデータ記憶部における第２の変更されたデータであって、前記第１のデータ記憶部に対して前記一組の操作が行われた後かつ前記第２のデータ記憶部に対して前記一組の操作が行われる前に作成され、前記第２データ記憶部にコピーされた選択されたデータに含まれていない第２の変更データを特定し、
前記第２のデータ及び前記第１のデータが同一になるように、前記第２の変更データのみを前記第２データ記憶部にコピーする、
ステップを更に具備する請求項１に記載の方法。
【請求項２１】
第１データ記憶部に対して一組の操作を行う実行手段であって、前記第１データ記憶部に対する一組の操作における各操作として、前記第１データ記憶部内のある時点のデータから内容が変更されたデータを前記第１データ記憶部に作成することと、前記第１データ記憶部に関連する第１のスナップショット・データ記憶部を作成すること、のうち少なくとも一方を行い、かつ、前記一組の操作は前記第１データ記憶部内の選択されたデータを第２データ記憶部にコピーする際に行われる実行手段と、
前記第１データ記憶部に対するのと同じ前記一組の操作が前記第２データ記憶部に対して行われるようにする誘発手段であって、前記第１データ記憶部に対して行われる前記一組の操作により前記変更データが作成され、かつ、前記第２データ記憶部にコピーされた前記選択されたデータに前記変更されたデータの一部が含まれていない場合に、前記第２データ記憶部に対して前記一組の操作が行われることに応じて、前記第２データ記憶部内の第２のデータが前記変更されたデータの一部のコピーを含むように更新される誘発手段と、を具備し、
前記一組の操作は、前記一組の操作のうち順序付けられたサブセットを含み、前記一組の操作のうち前記順序付けられたサブセットの操作は、前記第１データ記憶部及び前記第２データ記憶部の両方に対して一連の順序に従って行われ、前記一連の順序は前記第１データ記憶部と前記第２データ記憶部との間で一貫性を保証するように設定される、システム。
【請求項２２】
前記変更されたデータのコピーを生成することが前記第２データ記憶部上の前記一連の順序における指定された位置で行われるようにする第２の手段、を更に具備し、
前記変更されたデータの作成は、前記第１データ記憶部上の前記一連の順序における指定された位置で行われ、
前記指定された位置は、前記一連の順序における第１の変更データと前記一連の順序における第２の変更データとの間であり、
前記第１の変更データと前記第２の変更データは前記一連の順序において前記指定された位置を除いて隣り合っている、
請求項２１に記載のシステム。
【請求項２３】
前記第１データ記憶部から前記第２データ記憶部へコピーされる前記第１データ記憶部の選択されたデータにコマンドを挿入し、前記指定された位置において前記変更されたデータのコピーを作成する実行手段、を更に具備する請求項２２に記載のシステム。
【請求項２４】
前記一組の操作は、更に、前記一組の操作のうち指示されていないサブセットを含み、
ここで、
前記指示されていないサブセットは前記一連の順序における指定された点において実行され、
前記一連の順序における指定された時点は、前記一連の順序における第１の各点と前記一連の順序における第２の各点との間であり、
前記第１の各点は前記一連の順序において前記第２の各点と隣り合っており、
前記指定されていないサブセットにおける各操作は、前記指定されていないサブセットにおける他の操作と並行して行うことができる、
請求項２３に記載のシステム。
【請求項２５】
第１データ記憶部に対して一組の操作を行う実行手段と、前記第１データ記憶部に対するのと同じ前記一組の操作が前記第２データ記憶部に対して行われるようにする誘発手段とを備えるシステムを使用する方法であって、
前記方法は、
前記実行手段により、第１データ記憶部に対して一組の操作を行う実行ステップであって、
前記第１データ記憶部に対する一組の操作における各操作では、前記第１データ記憶部内のある時点のデータから内容が変更されたデータを前記第１データ記憶部に作成することと、前記第１データ記憶部に関連する第１のスナップショット・データ記憶部を作成すること、のうち少なくとも一方を行い、かつ、
前記一組の操作は前記第１データ記憶部内の選択されたデータを第２データ記憶部にコピーする際に行われる実行ステップと、
前記誘発手段により、前記第１データ記憶部に対するのと同じ前記一組の操作が前記第２データ記憶部に対して行われるようにする誘発ステップであって、
前記第１データ記憶部に対して行われる前記一組の操作により前記変更されたデータが作成され、かつ、前記第２データ記憶部にコピーされた前記選択されたデータに前記変更されたデータの一部が含まれていない場合に、前記第２データ記憶部に対して前記一組の操作が行われることに応じて、前記第２データ記憶部内の第２のデータが前記変更されたデータの一部のコピーを含むように更新される誘発ステップと、を具備し、
前記一組の操作のうち１つの操作は、前記第１データ記憶部に関連する第１のスナップショット・データ記憶部を作成することにより前記第１データ記憶部の構成を変更し、前記第１データ記憶部内の第１データの第１のスナップショットは前記第１のスナップショット・データ記憶部に記憶され、
前記第２データ記憶部に対して行われるようにする前記一組の操作の誘発は、前記第２データ記憶部に関連する第２のスナップショット・データ記憶部を作成させ、前記第２データ記憶部内の第２データの第２のスナップショットは前記第２のスナップショット・データ記憶部に記憶され、前記第１のスナップショットと前記第２のスナップショットは同一のデータを含み、
前記方法は、
前記第２のスナップショット・データ記憶部が作成された後、前記第１のスナップショット・データ記憶部において変更されたデータを、前記第２のスナップショット・データ記憶部にコピーする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願の一部は著作権により保護されている要素を含む。特許商標庁のファイルや記録から分かるとおり、著作権者は特許文献及び特許情報開示の何れかによる複製に異議はないが、その他の場合には無断転載を禁じる。
【背景技術】
【０００２】
情報は事業を動かす原動力である。日常の業務でデータや情報にますます依存するようになっている企業にとって、データの損失や破損による予定外のダウンタイムは企業の評価を下げ、企業収益に打撃を与えることがある。企業はデータの破損及び損失により課せられるコストをますます意識してきており、そのような事態を予測し復旧するための対策をとっている。多くの場合、このような対策としては、企業の業務に利用される「実」データである一次データあるいは製造データを保護する。様々な物理的記憶装置上であって多くの場合は遠隔地にある一次データのバックアップコピーを作成することにより、確実に該一次データの１バージョンを一貫して継続的に利用できるようにする。
【０００３】
ハードウェアあるいはソフトウェアの障害が発生した場合やその後の復旧作業における２つの関心事は、データ損失を防止することと、一次データ記憶領域とバックアップデータ記憶領域との間で一貫性を保つことである。一貫性により、たとえ一次データのバックアップコピーが一次データと同一でない場合でも（例えば、バックアップコピーの更新が一次データの更新より遅れる場合がある）、バックアップコピーが過去の時点で実際に起きた一次データの状態を常に表すことが保証される。アプリケーションが一次データに対する一連の書き込み作業Ａ、Ｂ、Ｃを実行する場合、バックアップコピーに対してこれらの書き込み作業を同様の順序で実行することにより一貫性を保つことができる。バックアップコピーは、一次データにおいて実際に発生していない状態、例えば、書き込み作業Ｃが書き込み作業Ｂの前に実行された場合に起こり得た状態を反映することはない。一組の書き込み作業におけるいくつかの書き込み作業は同時に行うこともでき、該書き込み作業のうち一部あるいは全てを不可分操作することにより二次ノード上のデータを一貫性のある状態にすることができる。
【０００４】
一貫性を実現し、データ損失を回避する方法の１つとして、一次データに対する各更新を、好ましくはリアルタイムで、バックアップコピーに対しても行う方法がある。このように「重複する」更新は、一次データを管理するアプリケーション・プログラムと同様のプログラムによって、一次データの１以上の「ミラー」コピーに対して局所的に行われる。データのミラー・コピーは、通常、一次ノードに取り付けられた装置、あるいは一次ノードによって即時アクセス可能な装置上で保持されるため、一次ノードの障害や一次ノードを介してアクセス可能なデータの破損による影響を受ける。
【０００５】
したがって、ミラー・コピーを局所的に作成してもデータ損失を防止することはできないため、多くの場合一次データを二次的な場所に複製する。しかしながら、遠隔地でデータのコピーを保持することにより別の問題が生じる。一次データが破損しており、一次データを破損した更新の結果を複製によってデータのバックアップコピーに反映させる場合、作成されたデータのコピー毎に、破損したデータを「バックアウト」し、一次データを以前の状態に復元することが必要である。従来は、一次データが破損する前に作成されたバックアップコピーから一次データを復元することにより、上記の問題を解決していた。一般的に、バックアップコピーは、一次データを記憶する記憶装置とアクセス速度が同じである記憶装置上で作成される。一次データが一旦復元されると、一次データ全体が各バックアップコピーにコピーされ、一次データとバックアップコピーの間における一貫性が確保される。その後ようやく一次データを用いて更新や複製等の通常の操作を行うことが可能になる。
【０００６】
一次データ全体を各バックアップコピーにコピーする上述の技術によって、一次的な場所と二次的な場所の間におけるデータの一貫性が確保される。しかしながら、一次データ全体を二次的な場所における各バックアップコピーにコピーする方法では、一次データのうち小さいサブセットのみが変更された場合にネットワークの帯域幅を無駄に使用してしまうことになる。更に、ネットワークを介して一次データ全体をコピーする際、特にテラバイト単位のデータのようにデータ量が大きい場合には、データのバックアップコピーを作成するために膨大な時間がかかってしまう。これらの要因全てにより、通常操作の再開が遅れてしまい、ダウンタイムによる多額のコストが企業に課されることがある。
【０００７】
一次データの破損や一次ノードの障害が発見された後、操作の早急な再開を可能にする一次データの一貫した最新のコピーを維持する機能が必要とされている。
【発明の概要】
【０００８】
本発明は、最小限のネットワーク帯域を用いる高効率かつ低コストの方法により、一次データの一貫性のある最新のコピーを二次ノード上で維持する機能を提供する。複製中に取り込まれたアプリケーションによる書き込み操作以外の操作の結果変更されたデータが複製された場合に変更されたデータを複製する必要なく、一次データの一貫性のある最新のコピーが維持される。データが同一である時点で、選択された記憶管理作業を一次データ記憶部及び二次データ記憶部に対して行うことにより、両記憶部内に記憶されたデータの一貫性が確実に保たれる。ディスク上に記憶されたデータの再編や、以前に作成されたデータコピーからのデータ復元等、データの大規模な変更を行う操作では、変更データの二次データ記憶部へのコピーを避けることにより、時間と費用が節約される。
【０００９】
これらの選択された記憶管理操作には、一次データ記憶部に記憶される変更データを作成する操作が含まれ、該変更データは二次ノードに複製されない。例えば、スナップショット・ボリュームからのデータ復元は、一次データ記憶部に記憶されているデータに影響を与える操作であるが、この復元によって得られる変更データは複製されない。
【００１０】
その他の記憶管理操作が選択され、一次及び二次データ記憶部の両方に対して実行される。これらの操作は一次データ記憶部のデータを直接変更する種類の操作ではないが、一次データ記憶部に記憶されている変更データに対して影響を与える。例えば、スナップショット・ボリューム作成のような構成 (configuration) 変更は、一次データ記憶部に記憶されている変更データに影響しないが、該データのコピーを作成するものである。しかしながら、その後にスナップショットを利用して一次データ記憶部のデータを復元し、その際にスナップショット・ボリュームのコピーが二次データ記憶部に存在しない場合、一次及び二次データ記憶部におけるデータには一貫性がない。したがって、二次データ記憶部に対して行うために選択される操作には、スナップショットを作成する操作が含まれる。本発明によれば、一次データ記憶部を復元するために用いるデータのコピーを含む二次スナップショット・ボリュームが、二次データ記憶部のデータのコピーを復元するために確実に使用可能となる。一次及び二次データ記憶部のデータを同一にすることにより、複製の際に変更される各データ項目の複製を避けることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明が動作することができるシステム環境の一例を示す。
【図２】一次データの一貫性のある最新のコピーを二次ノード上で維持する方法の一例を示すフローチャートである。
【図３Ａ】図１のシステムにおいて行われる一連の動作を示す図であって、一次データのスナップショット作成前における一連のデータ更新を示す。
【図３Ｂ】図３Ａのスナップショット作成後における一連のデータ更新を示す。
【図３Ｃ】、図３Ａ及び３Ｂに示す更新により得られたデータの複製、及び複製ストリーム中に挿入されるコマンドを示す。
【図３Ｄ】図３Ｄのコマンドの二次ノードへの到達を示す。
【図３Ｅ】二次ノードにおけるコマンド実行に対する二次ノード上でのスナップショット作成を示す。
【図３Ｆ】図３Ａ及び３Ｂに示す全ての更新が二次ノード上の記憶領域に書き込まれた後のシステムを示す。
【図４】本発明を動作するために用いられるコンピュータ・システムの構成例を示す。
【発明を実施するための形態】
【００１２】
本発明を十分に理解するためには、上述の図面について添付請求項を含む以下の詳細な説明を参照すること。本発明はいくつかの実施例に関して説明するが、本発明はここに挙げる実施例に限定されるものではなく、添付請求項によって定義されるような本発明の範囲内に無理なく含まれる代案、変更、及び等価要素を包含するものである。
【００１３】
以下の説明では、本発明を十分に理解できるように数多くの詳細な具体策を説明のために示す。しかしながら、このような詳細な具体策がなくても本発明を実施できることは当業者に明らかであろう。
【００１４】
明細書中における「一実施例」や「実施例」という語は、該実施例に関連して説明される特定の特徴、構造、あるいは特性が、本発明の少なくとも一実施例に含まれることを意味する。明細書中に「一実施例において」という語句があっても、それは必ずしも同一の実施例を示すものではなく、相互に他の実施例を除外する別々の実施例あるいは代替的な実施例を示すものでもない。更に、様々な特徴について説明するが、それらが、ある実施例で見られる特徴であり、その他の実施例ではみられない特徴である場合がある。同様に、様々な要件について説明するが、それらがいくつかの実施例についての要件であり、その他の実施例についての要件ではない場合がある。
【００１５】
専門用語について
「一貫性のある」及び「一貫性」という用語は、ここではデータの正確なコピーであるバックアップコピーあるいは以前の時点に存在していたデータの状態を正確に表すバックアップコピーを説明するために用いられる。以前の時点に存在していたデータの状態を正確に表すため、データの書き込み作業及び複製が行われている間、「一貫性」という用語を用いてバックアップコピーが前の時点で完了していた全書き込み作業により作成されたコピーを含むことを示す。更に、一貫性を得るため、以前の時点では開始されていない書き込み作業により作成されたデータをバックアップコピーに含むことはできない。以前の時点で進行していた書き込み作業により作成されたデータの一貫性の判断について、以下の段落で説明する。
【００１６】
以前の時点で進行中であり様々な異なるデータを同時に更新していた書き込み作業により書き込まれたデータが、進行中の書き込み作業により書き込まれたデータの全てをバックアップコピーが含むか、または部分的に含むか、または全てを含まない場合に一貫性があると考えられる。例えば、ブロック１〜４が値「ＡＡＡＡ」を含み、一次ノードに障害が発生した際にブロック１及び２の値を「ＢＢ」に変更する書き込み作業が進行中である場合について考える。ブロック１〜４のデータは、値「ＡＡＡＡ」（どちらのブロックに対する書き込み作業も以前の時点より前に完了していないことを示す）、「ＢＡＡＡ」（ブロック１に対する書き込みは以前の時点より前に完了しているがブロック２に対する書き込みは完了していないことを示す）、「ＡＢＡＡ」（ブロック２に対する書き込みは以前の時点より前に完了しているがブロック１に対する書き込みは完了していないことを示す）、または「ＢＢＡＡ」（どちらのブロックに対する書き込み作業も以前の時点より前に完了していることを示す）を有するバックアップコピーとの一貫性があると考えられる。
【００１７】
これら４つの状況のうち１つだけが一度に起こり得るものであるが、各状況は、書き込み操作の実行タイミングによっては、一次データの妥当な起こり得る状態を表しているため、一貫性があるものと考えられる。二次データが一次データの以前の状態を正確にコピーしたものになるように複製の際にデータの厳密な一貫性を保証するため、いくつかの実施例では書き込み操作を短時間ブロックし、進行中の書き込み作業が該書き込み作業の結果を複製する前に完了されるようにすることができる。
【００１８】
「書き込み操作」及び「更新操作」という用語は同義に用いられ、データを変更することを示す。「変更」及び「修正」という用語は、データについて用いられる場合、既存のデータを更新することのほか、新しいデータを追加することも含む。「変更」及び「修正」という用語は、データ記憶領域の構成 (configuration) について用いられる場合、既存の構成を変更すること、及び／または新しい構成を追加することを含む。
【００１９】
データ記憶部は、１以上の動的あるいは静的ランダム・アクセス記憶装置、１以上の磁気あるいは光データ記憶ディスク、または１以上のその他の記憶装置等、１以上の物理的装置のグループとして具体化することができる。一次データのバックアップコピーに関して、バックアップ用記憶装置は、テープ等の逐次アクセス記憶装置よりもディスク等の直接アクセス記憶装置であることが好ましい。ディスクは、一次データのバックアップコピーを記憶するために用いる論理記憶ボリュームを構成するようにグループ化されることが多いため、「ストレージ」、「データストレージ」、及び「データ記憶部」という用語が、ここでは「ボリューム」及び「記憶ボリューム」と同義に用いられる。しかしながら、当業者は、ここで説明するシステム及び方法は他の種類の記憶部にも適用することができ、「ボリューム」という用語は限定的に用いられるものではないことを認めるであろう。一次データを記憶する記憶ボリュームを、ここでは一次ボリュームと称し、一次データのバックアップコピーを記憶する記憶ボリュームを、ここではバックアップ・ボリューム、二次ボリューム、あるいは遠隔ボリュームと称する。データのスナップショットを記憶する記憶ボリュームを、ここではスナップショット・ボリュームと称する。
【００２０】
「ホスト」及び「ノード」という用語は、以下に示す図４で説明するコンピュータ・システムを説明するために同義に用いられる。一次データ／ボリュームを管理するネットワークにおけるノードをここでは一次ノードと称し、一次データ自体ではなく一次データのバックアップコピーを維持するネットワークにおけるノードをここでは二次ノード、バックアップ・ノード、あるいは遠隔ノードと称する。
【００２１】
「データの一部」という語句は、データ全体、またはデータの全体ではなく一部のみを含む場合がある。同様に、「一組の」操作、または操作の「サブセット」という用語は、操作の全て、または操作の全てではなく一部のみを含む場合がある。
【００２２】
序論
本発明は、最小限のネットワーク帯域を用いる高効率かつ低コストの方法により、二次ノード上で一次データの一貫性のある最新のコピーを維持する機能を提供する。複製中に取り込まれたアプリケーションによる書き込み操作以外の操作の結果変更されたデータが複製された場合に変更データを複製する必要なく、一次データの一貫性のある最新のコピーが維持される。データが同一である時点で、選択された記憶管理操作を一次及び二次データ記憶部に対して行うことにより、該データ記憶部内に記憶されたデータの一貫性が確実に保たれる。
【００２３】
一次及び二次データの一貫性を得るために、一次データ記憶部に対して行われた操作の全てを二次データに対して行うことはない。代わりに、選択された記憶管理操作のみを一次及び二次データ記憶部の両方に対して行う。一次及び二次データ記憶部の両方に対して行う操作の種類には、データを変更して一次データ記憶部に記憶する操作が含まれるが、この場合二次ノードに変更データは複製されない。例えば、スナップショット・ボリュームからのデータ復元は、一次データ記憶部に記憶されているデータに影響を与える操作であるが、該復元によって得られた変更データは複製されない。
【００２４】
その他の種類の記憶管理操作が選択され、一次及び二次データ記憶部の両方に対して行われるが、該操作は一次データ記憶部のデータを直接変更するものではないが、一次データ記憶部に記憶されているデータに影響を与える場合がある。例えば、スナップショット・ボリューム作成等の構成変更は一次データ記憶部に記憶されているデータに影響しないが、スナップショットと呼ばれる該データのコピーを作成する。スナップショットは物理的記憶装置に書き込む必要がないため、一次データ記憶部内のデータの状態を再構成するために用いることができるメモリ内の「仮想」コピーとすることができる。しかしながら、その後、一次データ記憶部内のデータを復元するためにスナップショットが用いられた場合であって、その際に二次ノードにおいて、二次データ記憶部を復元するために用いられるスナップショット・ボリュームのコピーが利用できない場合、一次及び二次データ記憶部内のデータには一貫性がなくなり、または一貫性を回復させるために高コストの操作が必要となる。一貫性を回復させるための操作の一例としては、回復作業により変更された全データを二次データ記憶部にコピーすることが挙げられる。本発明によって、一次データ記憶部を復元するために用いられるデータのコピーを格納する二次スナップショット・ボリュームを、二次データ記憶部内のデータを復元するために確実に利用できる。一次及び二次データ記憶部に同一のデータを供給することにより、複製中に変更された各データ項目の複製を避けることができる。
【００２５】
一組の操作に含めるべき操作の例としては、一次データ記憶部のサイズを変更する操作、一次データ記憶部のスナップショットを作成する操作、スナップショットのスナップショットを作成する操作、スナップショットを復元する操作、スナップショットをリフレッシュする操作、及びアプリケーションによりスナップショットにデータを書き込む操作が含まれる。これらの操作は、複製ストリームにおけるデータに対して同じ各時点で行われるべきである。書き込み操作の順序付けを複製ストリームと協調させることにより、一次データ記憶部に対する２つの操作間で行われる全ての書き込み作業が、二次ノードに対する該２つの操作間で二次データ記憶部に確実に適用されるため、同一のデータに適用されることになる。
【００２６】
一次及び二次データ記憶部の両方で同一のデータを有する状態を「スナップショット・ツリー」と表現することができ、該スナップショット・ツリーでは、一次ノード上の一次データの全コピー（スナップショット）が、二次ノード上の同一のデータの対応するコピー（スナップショット）を有する。同一のデータを含むスナップショット・ツリーに対して同一の操作を行うことにより、操作により変更データが作成され複製中には取り込まれない場合に、変更データの複製を避けることができる。上記のように、スナップショットは物理的記憶装置に書き込む必要がないため、一次データの状態を再構成するために用いることができるメモリ内の「仮想」コピーとすることができる。
【００２７】
図１は、本発明が動作できるシステム環境の一例を示す。２つのノード、すなわち一次ノード１１０Ａ及び二次ノード１１０Ｂが示されている。ソフトウェア・プログラム・アプリケーション１１５Ａ及び記憶マネージャ／リプリケータ１２０Ａが一次ノード１１０Ａ上で動作する。アプリケーション１１５Ａは、変更ログ１３０Ａ及びデータ記憶部１４０Ａに記憶することができる一次データを管理する。
【００２８】
変更ログ１３０Ａは、データに加えられた変更がデータ記憶部１４０Ａに書き込まれる前に該変更が書き込まれる「ステージング領域」と考えられる。変更ログ１３０Ａ等の変更ログは単にログとも呼ばれ、いくつかの異なる方法で構成することができる。例えば、ログのエントリにより、データの特定された領域に対して実行される操作を表すことができる。または、ログを、各領域に対する一組の操作を保持するように構成してもよい。その他のログ構造も可能であり、本発明を実施するために特定の変更ログ構造が要求されることはない。本発明は、ログがなくても実施することが可能であるが、ログを用いることが好ましい。
【００２９】
記憶マネージャ／リプリケータ１２０Ａは、アプリケーション１１５Ａによる一次データへの書き込み動作をインターセプトし、該一次データへの変更を二次ノード１１０Ｂに複製する。記憶マネージャ／リプリケータ１２０Ａにより行われる複製は、一次データ記憶部及び二次データ記憶部の両方に更新が一貫して適用される限り、同期的、非同期的、及び／または周期的に行うことができる。アプリケーション１１５Ａ及び記憶マネージャ／リプリケータ１２０Ａは、一次ノード１１０Ａ等、同一のコンピュータ・システム上で動作できるが、一次ノード１１０Ａによって表されるハードウェア及びソフトウェア構成は様々である。アプリケーション１１５Ａ及び記憶マネージャ／リプリケータ１２０Ａは別々のコンピュータ・システム上で動作することができ、変更ログ１３０Ａは非永続的あるいは永続的な記憶装置に記憶することができ、データ記憶部１４０Ａは１以上の物理的記憶装置を含むことができる論理記憶部上に記憶された１組のデータの論理的表現である。
【００３０】
更に、図中ではアプリケーション１１５Ａ、記憶マネージャ／リプリケータ１２０Ａ、変更ログ１３０Ａ、及びデータ記憶部１４０Ａが一次ノード１１０Ａ内で相互に接続されているが、このような接続状態は単なる例示であり、他の連結構造を採用することも可能であることを当業者は理解できるであろう。例えば、アプリケーション１１５Ａ、記憶マネージャ／リプリケータ１２０Ａ、変更ログ１３０Ａ、及びデータ記憶部１４０Ａのうち１以上の要素を、物理的には一次ノード１１０Ａによって表されるノードの外部であって該ノードに結合することができる。
【００３１】
二次データ記憶部１４０Ｂは一次データ記憶部１４０Ａから論理的に分離されており、物理的に分離することも可能であるが、物理的に分離することは本発明を実施するための要件ではない。一次ノード１１０Ａの記憶マネージャ／リプリケータ１２０Ａは、複製リンク１２０Ｃを介して二次ノード１１０Ｂの記憶マネージャ／リプリケータ１２０Ｂと通信を行う。また、二次ノード１１０Ｂは、変更ログ１３０Ｂ及び一次データの複製を記憶するためのデータ記憶部１４０Ｂを有し、二次ノード１１０Ｂのハードウェア及びソフトウェア構成は上記と同様に、種々の構成をとることができる。
【００３２】
記憶マネージャ／リプリケータ１２０Ａはアプリケーション１１５Ａによる一次データへの書き込み動作をインターセプトし、変更データを複製するように構成されているため、アプリケーション１１５Ａが関与しない他の操作（データ記憶部１４０Ａのディスクを再フォーマットする等）を行うことによる一次データへの変更が複製されない場合がある。このような操作について図２を参照し更に説明する。
【００３３】
図２は、二次ノード上で一次データの一貫性のある最新のコピーを維持する方法の一例を示すフローチャートである。「一次データ記憶部に対して一組の操作を行う」ステップ２１０において、１以上の操作から成る一組の操作が一次データ記憶部に対して行われる。一組の操作における各操作は、一次データ記憶部に記憶されたデータを変更するか、あるいは一次データ記憶部の構成を変更する。一次データ記憶部から少なくとも１の二次データ記憶部への選択データのコピー（例えば複製）中に上記一組の操作が行われる。一次データ記憶部に対して行われた操作の全てが二次データ記憶部に対しても行われるのではなく、選択された操作のみが上記一組の操作に含まれる。
【００３４】
１実施例において、ある特定の操作により一次データ記憶部内のデータが変更されると、一次データ記憶部から二次データ記憶部への選択データがコピー（複製）される際に変更データが取り込まれない場合にのみ、変更データが二次データ記憶部へコピーされる。しかしながら、変更データの全体ではなくその一部が一次データ記憶部から二次データ記憶部へコピーされることは本発明の範囲内である。
【００３５】
ある特定の操作により一次データ記憶部の構成のみが変更されると、該操作が後に一次データ記憶部のデータに影響を与える可能性がある選択された種類の操作である場合に、該操作が二次データ記憶部に対して実行される。このような構成変更の一例として、スナップショット・ボリュームを作成することができる。本発明は、更に、一次データ記憶部及び二次データ記憶部内のデータが一貫性を持つように二次データ記憶部に対して一組の操作を実行させることを含む。例えば、一組の操作により変更データが作成され、該変更データが二次データ記憶部にコピーされた選択データに含まれていない場合、二次データ記憶部に対して一組の操作が行われた後に変更データのコピーが二次データ記憶部に記憶される。一組の操作における各操作が行われる前に一次データ記憶部及び二次データ記憶部内で同一のデータを持つことにより、データの一貫性が得られる。したがって、複製中の一組の操作に影響される各データ項目をコピーせずにデータの一貫性が得られる。
【００３６】
この一組の操作は、例えば図１に示す記憶マネージャ／リプリケータ１２０Ａにより実行することができる。記憶マネージャ／リプリケータ１２０Ａは、例えば一次データ記憶部に対して一組の操作を実行する実行モジュール、手段、あるいは指示としての役目を果たすが、その他の実行モジュール、手段、あるいは指示によって具体化することも本発明の範囲内である。このような実行モジュール、手段、あるいは指示の機能を提供することが可能な市販されている記憶マネージャ／リプリケータの一例として、カリフォルニア州マウンテンビューのベリタス・ソフトウェア株式会社により製造されているベリタス・ボリューム・マネージャ（登録商標）とベリタス・ボリューム・リプリケータ（登録商標）との組み合わせが挙げられる。
【００３７】
「一次データ記憶部に対して一組の操作を実行する」ステップ２１０から「複製ストリームにおけるデータ変更について各操作の各時刻を特定する」ステップ２２０へ制御が移行する。複製ストリームにおけるデータ変更に関する各操作の各時刻は、一次データ記憶部内のデータとの一貫性を維持するために二次データ記憶部内のデータに対して行われる各更新を適正な順序で確実に行うために用いられる。複製ストリームにおけるデータ変更について各操作の各時刻を特定するための技術の一つについて、図３Ｂ及び図３Ｃを参照しながら以下で説明する。
【００３８】
「複製ストリームにおけるデータ変更について各操作の各時刻を特定する」ステップ２２０から「複製ストリームにおける同時刻において二次データ記憶部に対し一組の操作における各操作を行わせる」ステップ２３０へと操作が移行する。上記のように、一次データ記憶部及び二次データ記憶部におけるデータの一貫性を維持するため、二次データ記憶部に対する構成あるいはデータへの各変更が、一次データ記憶部に対して行った各変更とそれぞれ同じ時刻で（例えば、同じ順序で）行われるように操作を行うべきである。
【００３９】
記憶マネージャ／リプリケータ１２０Ａは、二次データが一組の操作により得られた変更データを含むように二次データ記憶部に対して一組の操作を行うモジュール、手段、あるいは指示としての役目を果たすが、その他の実行モジュール、手段、あるいは指示によって具体化することも本発明の範囲内である。上記のように、このような市販されている記憶マネージャ／リプリケータの一例として、カリフォルニア州マウンテンビューのベリタス・ソフトウェア株式会社により製造されているベリタス・ボリューム・マネージャ（登録商標）とベリタス・ボリューム・リプリケータ（登録商標）との組み合わせが挙げられる。
【００４０】
また、記憶マネージャ／リプリケータ１２０Ａは、スナップショットを作成し、二次データ記憶部の対応するスナップショットを作成するためのスナップショット作成モジュール、手段、あるいは指示、一次データ記憶部のスナップショットから一次データ記憶部の一部を復元し、二次データ記憶部の対応する部分を対応するスナップショットから復元させるための復元モジュール、手段、あるいは指示、操作を実行させるコマンドを挿入するための挿入モジュール、手段、あるいは指示、操作を実行させるコマンドを送信するための送信モジュール、手段、あるいは指示、一次データの２つのスナップショットを同期させ、二次データの対応する２つのスナップショットを同期させるための同期モジュール、手段、あるいは指示等、他の種類のモジュール、手段、及び指示としても考えることもできる。モジュール、手段、及び指示は、記憶マネージャ／リプリケータ１２０Ａが他の機能を実行するために実施することもできる。または、記憶マネージャ／リプリケータ１２０Ａについて上述した機能は、別個の記憶マネージャ及び複製モジュールとして実施することもでき、または上述の実施例とは異なる方法で実施することもできる。
【００４１】
図３Ａ〜３Ｆは図１のシステムで行われる一連の動作を示す。結果として得られるスナップショットが同一になるような一次データ記憶部及び二次データ記憶部のスナップショット・ボリュームの作成とともに、データへの様々な更新を示す。
図３Ａは、一次データのスナップショット作成前の、一次記憶部内のデータに対する一連の更新動作を示す。動作３．１では、アプリケーション１１５Ａが、一次ノード１１０Ａ上の複製記憶グループ２４０Ａのボリューム２４０Ａ２に対して更新（書き込み操作結果または変更データとも呼ぶ）を作成する一組の操作を記憶マネージャ／リプリケータ１２０Ａを介して行う。これらの更新データは更新２２０−ａ〜２２０−ｉを含み、各更新は逐次（英数字順に）行われる。ここでは一組の更新を複製ストリームとも称する。動作３．２では、ボリューム２４０Ａ２の対応するスナップショット２４０Ａ２−ｓｓが作成される。スナップショット２４０Ａ２−ｓｓの作成は、複製記憶グループ２４０Ａを含む一次データ記憶部１４０Ａの構成に影響を与える操作である。スナップショット２４０Ａ２−ｓｓは、一組の更新２２０−ａ〜２２０−ｉから得られたデータを含む。
【００４２】
図３Ｂは、図３Ａに示すスナップショットが作成された後に行われる別の一組の更新を示す。動作３．３は、ボリューム２４０Ａ２に対する一組の更新２２０−ｊ〜２２０−ｍを示す。本例に示すように、更新２２０−ｉは、スナップショット２４０Ａ２−ｓｓを作成するスナップショット操作前、最後に行われる書き込み操作の結果であり、更新２２０−ｊは、スナップショット操作後、最初に行われる書き込み操作の結果である。
【００４３】
図３Ｃは、図３Ａ及び図３Ｂの更新から得られたデータの複製、及び複製ストリームに挿入されたコマンドを示す。一次記憶ボリューム２４０Ａ２は、全ての更新２２０−ａ〜２２０−ｍが既に書き込まれたことを示している。データがアプリケーション１１５Ａから記憶マネージャ／リプリケータ１２０Ａを介してボリューム２４０Ａ２に送られる際に、記憶マネージャ／リプリケータ１２０Ａは各書き込み操作の結果を複製のために取り込む。一次ノード１１０Ａ上の記憶マネージャ／リプリケータ１２０Ａ及び二次ノード１１０Ｂ上の記憶マネージャ／リプリケータ１２０Ｂからの複製ストリームが示されている。更新２２０−ａが二次ノード１１０Ｂのボリューム２４０Ｂ２内に示されているが、該更新２２０−ａは、複製ストリームの最初の書き込み操作の結果複製されたものである。更新２２０−ｂが記憶マネージャ／リプリケータ１２０Ｂとボリューム２４０Ｂ２との間を伝送されている様子が示されており、更新２２０−ｃが記憶マネージャ／リプリケータ１２０Ｂに到達している様子が示されている。
【００４４】
更新２２０−ｃより後の更新から更新２２０−ｉまでが、コマンド２１０より前で、一次ノード１１０Ａと二次ノード１１０Ｂの間を伝送中である様子が示されている。コマンド２１０はスナップショット作成操作を実行するための指示であり、複製ストリーム中であって、一次データ記憶部及び二次データ記憶部への各更新が同じ順序で確実に行われるような位置にされる。更新２２０−ｊ〜２２０−ｍが複製ストリームにおけるコマンド２１０より後に複製される様子が示されている。更新２２０−ｍより後の追加更新は示されていないが、二次ノード１１０Ｂへの更新を中止するまで一次ノード１１０Ａへの更新を中止する必要はない。一次データ記憶部及び二次データ記憶部のデータを同期させる操作が行われる間、複製操作を継続することができる。しかしながら、複製を休止し、全ての更新が二次データ記憶部に複製されるまで待機し、全ての更新が複製された時点で操作を行った後、複製を再開することも本発明の範囲に含まれる。
【００４５】
図３Ｄは、コマンド２１０の二次ノードへの到達を示す。ここでは更新２２０−ａ〜２２０−ｉが二次データ記憶部２４０Ｂ２に記憶されている。コマンド ２１０の後には、更新２２０−ｊ〜２２０−ｍを含む伝送中の更新が続く。
【００４６】
図３Ｅは、二次ノード１１０Ｂにおけるコマンド２１０の実行に対する二次ノード上でのスナップショット作成を示す。更新２２０−ａ〜２２０−ｉを含むスナップショット・ボリューム２４０Ｂ２−ｓｓが作成される。更新２２０−ｊ〜２２０−ｍは、二次ノード１１０Ｂ上のボリューム２４０Ｂ２に複製中である。
【００４７】
図３Ｆは、図３Ａ及び図３Ｂに示す全更新が二次ノード上の記憶領域に書き込まれた後のシステムを示す。二次ノード１１０Ｂ上のボリューム２４０Ｂ２は各更新２２０−ａ〜２２０−ｍを含み、一次ノード１１０Ａ上のボリューム２４０Ａ２の複製である。二次ノード１１０Ｂ上のスナップショット・ボリューム２２０Ｂ２−ｓｓは更新２２０−ａ〜２２０−ｉを含み、一次ノード１１０Ａ上のスナップショット・ボリューム２２０−Ａ２の複製である。スナップショット・ボリューム２４０Ａ２−ｓｓの作成前の最後の操作とその後の最初の操作との間の複製ストリームへコマンド２１０を挿入した結果、スナップショット・ボリューム２４０Ｂ２−ｓｓがスナップショット・ボリューム２４０Ａ２−ｓｓの正確な複製として作成されている。複製ストリームの一部として既に複製されているデータのほかにネットワークを介してデータを送る必要がないため、このプロセスはさらに効率的になっている。単一のコマンドを挿入することにより、データの一部を再度複製することなく、二次ノード１１０Ｂ上に複製を作成することができる。
【００４８】
上記操作により一次データ記憶領域のスナップショットが作成される場合、二次データ記憶領域に対して行わせる操作には、二次データ記憶領域の対応するスナップショットの作成が含まれる。二次データ記憶領域に対して操作を行った後、一次データ記憶領域のスナップショットは第１データを含み、二次データ記憶領域の対応するスナップショットは第１データの複製を含む。
【００４９】
一次データ記憶領域の別のバックアップコピーからデータの一部が上記操作により復元される場合、二次データ記憶領域内のデータの対応する一部がデータ記憶領域の対応するバックアップコピーから復元される。例えば、一次データが一次ノード上のスナップショットから復元される場合、二次ノード上の一次データのコピーが二次ノード上のスナップショットの対応するコピーから復元される。スナップショット作成等、一次ノードに対する一組の操作における各操作が二次ノード上でも確実に行われるように、スナップショットの対応するコピーが二次ノード上にも存在する。二次データ領域における対応するスナップショットは、一次データ記憶領域内のスナップショットの複製であるため、二次データ領域の同一データによる復元に利用することができる。
【００５０】
上記操作により一次データ記憶領域の２つのスナップショットが同期される場合、二次データ記憶領域に対して行わせる操作には、二次データ記憶領域の対応する第１スナップショット及び対応する第２スナップショットを同期させる操作が含まれる。一次データ記憶領域の第１スナップショットが第１データを含む場合、二次データ領域の同期操作後、二次データ記憶領域の対応するスナップショットは該第１データの複製を含む。同様に、一次データ記憶領域の第２スナップショットが第２データを含む場合、二次データ領域の同期操作後、二次データ記憶領域の対応するスナップショットは該第２データの複製を含む。
【００５１】
１実施例において、一次データ記憶領域に対応するノードに障害が発生すると、複製するように指定された一組の変更のうち保留中の変更が二次データ記憶領域になされていない場合に該保留中の変更が特定される。そして、該保留中の変更が二次データ記憶領域で行われる。
【００５２】
少なくとも１の実施例において、スナップショット・ボリュームが二次データ上に作成されると、一次スナップショット・ボリュームと二次ノード上の対応するスナップショット・ボリュームとの間に複製関係が成立する。複製関係の成立により、一次スナップショットにおけるデータの変更が、二次ノード上の対応するスナップショットにコピーされた選択スナップショット・データに含まれることになる。複製関係が成立する結果、一次スナップショット・ボリュームに対する各更新が二次ノード上の対応するスナップショット・ボリュームに複製されるので、二次ノード上の対応するスナップショット・ボリュームは、一次スナップショット・ボリュームとの同期状態が維持される。
【００５３】
当業者は、対応するスナップショット・ボリューム及び複製関係が２以上の二次ノード上で成立することを認めるであろう。上述した技術により、データの更新が二次ノードに一度だけ複製され、データを変更する操作を含む他の操作を行うためのコマンドが複製ストリーム中に含まれた状態で、一次データの多数のコピーが維持される。
【００５４】
あるイベント後や設定された時間の経過時に一組の変更が複製されるように複製が周期的に行われる場合、各記憶管理操作が行われた後に保留中の変更を複製することが望ましい。これにより、二次データ記憶領域に対して記憶管理操作が行われる前に、同一の変更が二次データ記憶領域に同一の順番で適用される。
【００５５】
データに対する一組の変更を一次データ記憶領域から二次データ記憶領域へ複製する複製モジュールは、操作を実行するソフトウェアの外部のソフトウェアにより実行してもよい。このような場合、一次データ記憶領域におけるデータに対する一組の保留中の変更が、二次データ記憶領域に対する操作が行われる前に二次データ記憶領域に対してなされるように複製ソフトウェアを構成することが望ましい。
【００５６】
複製において略同じ時点で操作を行う実施例
本発明の別の実施例では、更新が一次及び二次ノードにおいて同じ順番で行われる限り、必ずしも該コマンドが複製ストリームにおけるちょうど同じ時点で実行されることを保証せずに、一次ノード１１０Ａに対して操作が行われる時と略同じ時に、一次ノード１１０Ａから二次ノード１１０Ｂへコマンドを送信することができる。複製ストリームにコマンドを挿入することなく、コマンドが略同じ時点で発行されることを保証するためには、その他の機構を用いることもできる。例えば、一対のスナップショットを略同じ時点で一次及び二次データ記憶領域に作成することができる。
【００５７】
本発明の上記実施例では、一次記憶領域上にスナップショットが作成される後、かつ、二次記憶領域上でのスナップショットの作成操作前に、一次データに対する第２組の変更を行うことができる。例えば、該第２組の変更が複製用にログ記録されているが複製はされていない場合がある。一次及び二次データ記憶領域の一貫性を確保するために、第２組の変更は二次データ記憶領域においてなすべき変更として特定される。一対のスナップショットが一旦作成されると、該２枚のスナップショット間で相違があるデータの領域を特定し、該特定された領域に対してのみ一次スナップショットから二次スナップショットへデータを複製することにより、該２枚のスナップショットが早急に同期される。この同期操作により、二次記憶領域が一次記憶領域との一貫性を持つように、第２組の変更が第２のデータ記憶領域に確実になされる。
【００５８】
２つのスナップショット・ボリュームを同期させる技術は、２００３年７月１日付で出願され「データ・ボリュームにおける関係及び操作の柔軟な階層構造」というタイトルがつけられているアナンド Ａ．ケクル、ジョン Ａ．コルグローブ、オレグ・キセレフ、ロナルド Ｓ．カール、及びニランヤン Ｓ．ペンダーカールを発明者とする米国特許出願Ｎｏ．１０／６１０，６０３（弁護士事件番号ＶＲＴ００１１ＵＳ、依頼人整理番号ＶＲＴＳ００７３）において説明されている。
【００５９】
別個のセキュリティ領域が設けられる実施例
更に別の実施例では、一次データ記憶領域に対して操作を行うユーザあるいはプロセスが二次データ記憶領域に対して同一の操作を行うためには増設されたセキュリティ障壁を通過しなければならないよう、追加セキュリティ領域を一次及び二次ノードに対して作成することができる。通常、高い可用性及び耐災害性を理由に複製が行われる場合、二次データ記憶部は一次データ記憶部から物理的に分離されており、一次及び二次データ記憶部は別々のノードにより管理される。通常、一次ノードは一次データの全ミラー・コピーにアクセスでき、アクセス不可能な二次データは、一次データ自体に対して（または一次ノードにおけるデータのコピーに対して）読み出し操作を行われなければならないことを意味する。しかしながら、データ・セキュリティの観点から考えると、一次ノードが二次データにアクセスできないことにより、データのバックアップコピーを破損から保護する追加セキュリティ障壁が提供される。一次データが悪意のある侵入者、管理者のミス、あるいはソフトウェアやハードウェアの不具合により損なわれる場合、局所的にアクセス可能な記憶領域のみが直接的な危険に晒される。また、バックアップデータを破損するためには、上記追加セキュリティ障壁を乗り越えなくてはならず、データを破損する破壊的な行為を繰り返さなければならない。
【００６０】
再び図１を参照すると、個別のセキュリティ領域を設ける実施例のシステム構造は、一次ノード１１０Ａが二次ノード１１０Ｂと分離したセキュリティ領域内で動作できるように設計される。複製リンク１０２Ｃは、記憶マネージャ／リプリケータ１２０Ａ及び１２０Ｂのみがアクセス可能であり、アプリケーション１１５Ａや、一次ノード１１０Ａ上で動作するその他のプロセスがアクセスできないように構成することができる。一次ノード１１０Ａ及び二次ノード１１０Ｂのアクセス・アカウントは、特にシステム管理・特権的アカウントは、異なるパスワードで構成することができる。記憶マネージャ／リプリケータ１２０Ａは、アプリケーション１１５Ａによる一次データへの書き込み操作をインターセプトし、変更データを複製するように構成されているため、アプリケーション１１５Ａが関与しないその他の破壊的な行為（データ記憶部１４０Ａ内のディスクを再フォーマットする等）の結果なされたデータへの変更は複製されない場合がある。
【００６１】
その他のセキュリティに関する特徴として、システムは、複製リンク１０２Ｃが一次ノード１１０Ａ及び１１０Ｂのセキュリティ領域間の唯一の通信リンクとなるように設計することができる。また、システムは、記憶マネージャ／リプリケータ１２０Ａ及び１２０Ｂにより利用されるプロトコルに従うデータのみが複製リンク１０２Ｃを越えて送信されるように設計することもできる。一次及び二次データ記憶部１４０Ａ及び１４０Ｂがストレージ・エリア・ネットワーク（ＳＡＮ、図示せず）を介して接続されている場合、一次及び二次データ記憶部１４０Ａ及び１４０Ｂを２つの別々の物理的ネットワークの一部として実施することにより追加のセキュリティ障壁を提供するように構成することができる。
【００６２】
上記別個のセキュリティ領域を設ける実施例では、一次ノード１１０Ａはデータ記憶部１４０Ｂに対して直接的にアクセスすることはできない。二次ノード１１０Ｂ上のデータにアクセスするためには、一次ノード１１０Ａが二次ノード１１０Ｂにデータを要求し、一次データ記憶部１４０Ａ内のデータに対して操作を行う。そして、記憶マネージャ／リプリケータ１２０Ａは、複製リンク１２０Ｃを介して更新を記憶マネージャ／リプリケータ１２０Ｂに複製する。
【００６３】
別個のセキュリティ領域において一次データ及び二次データを維持する技術は、２００３年１０月３１日付で出願され「システム及びデータのセキュリティのための同期的複製」というタイトルがつけられているオレグ・キセレフを発明者とする米国特許出願Ｎｏ．１０／６９９，４７５（弁護士整理番号ＶＲＴ００９６、依頼人整理番号ＶＲＴＳ０３９５）において説明されている。
【００６４】
上述した本発明の実施例は、様々なコンピュータ及びネットワーク環境において実施することができる。本発明を実施するために使用されるコンピュータ環境の一例について、図４を参照し、以下で説明する。
【００６５】
コンピュータ・システムの一例
図４は、本発明を実施するために適しているコンピュータ・システム４１０を示すブロック図である。コンピュータ・システム４１０は、コンピュータ・システム４１０主要なサブシステム、例えば、中央処理装置４１４、システム・メモリ４１７（一般的にはＲＡＭであるが、ＲＯＭやフラッシュＲＡＭ等でもよい）、入出力コントローラ４１８、オーディオ出力インターフェース４２２を介したスピーカーシステム４２０等の外部オーディオ装置、ディスプレイ・アダプタ４２６を介したディスプレイ画面４２４等の外部装置、シリアルポート４２８及び４３０、キーボード４３２（キーボード・コントローラ４３３に接続している）、ストレージ・インターフェース４３４、フロッピー（登録商標）ディスク４３８を受けるように機能するフロッピーディスクドライブ４３７、ファイバー・チャンネル・ネットワーク４９０に接続するように機能するホスト・バス・アダプタ（ＨＢＡ）インターフェース・カード４３５Ａ、ＳＣＳＩバス４３９に接続するように機能するホスト・バス・アダプタ（ＨＢＡ）インターフェース・カード４３５Ｂ、及び光ディスク４４２を受けるように機能する光ディスク・ドライブ４４０を相互に接続するバス４１２を含む。また、マウス４４６（あるいはシリアルポート４２８を介してバス４１２に連結されている他のポイント・アンド・クリック方式の装置）、モデム４４７（シリアルポート４３０を介してバス４１２に連結されている）、及びネットワーク・インターフェース４４８（バス４１２に直接連結されている）も含む。
【００６６】
バス４１２は、上記のように、中央処理装置４１４と、読み出し専用メモリ（ＲＯＭ）やフラッシュメモリ（どちらも図示せず）及びランダムアクセスメモリ（ＲＡＭ）（図示せず）を含むことができるシステム・メモリ４１７との間でデータ通信を可能にする。ＲＡＭは、一般的に、オペレーティングシステム及びアプリケーション・プログラムが読み込まれる主記憶装置であり、通常少なくとも６４メガバイトのメモリ空間を提供する。ＲＯＭやフラッシュメモリは、コードの中でも特に、周辺要素との対話等の基本ハードウェア動作を制御する基本入出力システム（ＢＩＯＳ）を含むことができる。コンピュータ・システム４１０に常駐するアプリケーションは、一般的に、ハードディスク・ドライブ（例えば固定ディスク４４４）、光ディスク・ドライブ（例えば光ディスク・ドライブ４４０）、フロッピーディスク装置４３７、あるいはその他の記憶媒体等のコンピュータ読み取り可能な媒体上に記憶され、それらを介してアクセス可能である。更に、アプリケーションは、ネットワークモデム４４７やネットワーク・インターフェース４４８を介してアクセスされた場合、アプリケーション及びデータ通信技術に従い変調された電気信号の形式とすることができる。
【００６７】
ストレージ・インターフェース４３４は、コンピュータ・システム４１０のその他のストレージ・インターフェースと同様に、情報の記憶及び／または検索用の標準的なコンピュータ読み取り可能な媒体、例えば固定ディスク・ドライブ４４４に接続することができる。固定ディスク・ドライブ４４４は、コンピュータ・システム４１０の一部でもよいし、分離して他のインターフェース・システムを介しアクセスしてもよい。モデム４４７は、電話リンクを介して遠隔サーバに直接接続してもよく、インターネット・サービス・プロバイダ（ＩＳＰ）を介してインターネットに直接接続してもよい。ネットワーク・インターフェース４４８は、直接ネットワークリンクを介して遠隔サーバに、ＰＯＰ（接続拠点）を介してインターネットに直接接続してもよい。ネットワーク・インターフェース４４８は、このような接続をデジタル移動電話接続、セルラ・デジタル・パケット・データ（ＣＤＰＤ）接続、デジタル衛星データ接続等の無線技術により提供することができる。
【００６８】
その他多くの装置やサブシステム（図示せず）を同様な方法で（例えばバーコードリーダ、ドキュメント・スキャナ、デジタルカメラ等）接続することができる。反対に、本発明を実施するためには図４に示す装置の全てがある必要はない。装置及びサブシステムは、図４に示した方法とは異なる方法で相互に接続することができる。図４に示すようなコンピュータ・システムの作用は、本技術分野で容易に理解することができるため本出願では詳細に説明しない。本発明を実施するためのコードは、例えばシステム・メモリ４１７、固定ディスク４４４、光ディスク４４２、及びフロッピーディスク４３８のうち、１以上のコンピュータ読み取り可能な記憶媒体に記憶することができる。更に、コンピュータ・システム４１０は、如何なる種類のコンピュータ装置でもよく、パーソナル・データ・アシスタント（ＰＤＡ）、ネットワーク・アプライアンス、ＸＷｉｎｄｏｗ端末、あるいはその他のコンピュータ装置を含む。コンピュータ・システム４１０上に設けられるオペレーティングシステムとして、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、あるいはその他の周知なオペレーティングシステムを用いることができる。また、コンピュータ・システム４１０は、Ｎｅｔｓｃａｐｅ Ｎａｖｉｇａｔｏｒ（登録商標）やＭｉｃｒｏｓｏｆｔ Ｅｘｐｌｏｒｅｒ（登録商標）等、ＪａｖａＳｃｒｉｐｔインタープリタ（Ｊａｖａは登録商標）を有するＨＴＴＰ対応ウェブブラウザ等の多数のインターネット・アクセス・ツールをサポートしている。
【００６９】
その他の実施例
本発明は、上記利点やそれらに内在する利点を実現するために適している。本発明は、特定の実施例を参照して描写、説明、定義したが、そのような参照は本発明を限定するものではなく、そのような限定が推測されるものでもない。本発明は、関連技術分野の当業者によりなされ得るように、形式及び機能の点で相当な改良や変更、均等物による差し替えを行うことができる。描写され、説明された実施例は単なる例示であり本発明の範囲を網羅するものではない。
【００７０】
上記詳細な説明では、ブロック図、フローチャート、及び例示により本発明の各種実施例を説明した。当業者は、各ブロック図の構成要素、フローチャートの工程、操作、及び／または例示された構成要素を、個々に及び／または一括して、幅広いハードウェア、ファームウェア、あるいはこれらの組み合わせにより実現できることを理解するであろう。
【００７１】
本発明は、完全に機能するコンピュータ・システムに照らして説明したが、本発明は様々な形式のプログラム製品として配布することができ、本発明は、実際に配布を行うために用いられる信号が記録されている媒体の種類に関わらず適用されることを当業者は理解するだろう。信号が記録されている媒体の例としては、フロッピーディスクやＣＤ−ＲＯＭのような書き込み可能な媒体、ディジタル・アナログ通信リンクのような通信型の媒体、及び将来開発される媒体記憶配信システムが挙げられる。
【００７２】
上述の実施例は、何らかのタスクを実行するソフトウェア・モジュールにより実施することができる。ここで、ソフトウェア・モジュールには、スクリプト、バッチ、あるいはその他の実行可能なファイルを含めることができる。ソフトウェア・モジュールは、マシンで読み取り可能な、あるいはコンピュータで読み取り可能なディスク・ドライブ等の記憶媒体上に記憶することができる。本発明の実施例に従いソフトウェア・モジュールを記憶するための記憶装置としては、例えば、磁気フロッピーディスク、ハードディスク、ＣＤ−ＲＯＭやＣＤ−Ｒ等の光ディスクがある。また、本発明の実施例に従いファームウェアあるいはハードウェア・モジュールを記憶するための記憶装置は、マイクロプロセッサ／メモリ・システムに恒久的に、取り外し可能に、あるいは遠隔的に連結される半導体ベースのメモリとしてもよい。したがって、モジュールをコンピュータ・システム・メモリ内に記憶し、該コンピュータ・システムがモジュールの機能を実行するように構成することができる。その他、コンピュータで読み取り可能な新しい種類の様々な記憶媒体を用い、ここで説明したモジュールを記憶してもよい。
【００７３】
上述の説明は本発明を単に説明したものであり、限定的に解釈するべきではない。本発明の範囲内における他の実施例も可能である。当業者は、ここで開示した構造及び方法を提供するために必要な工程を容易に実施するとともに、操作パラメータや工程の順序は一例として示されただけであって、所望の構造を実現するために変更し、本発明の範囲内で改良できることを理解するであろう。ここで開示した実施例は、ここで行った説明に基づき変更及び改良することができる。したがって、本発明は、あらゆる側面における均等物を十分に考慮し、添付請求項の範囲のみによって限定されるものである。
【図１】
0005386005.tif 000002
【図２】
0005386005.tif 000003
【図３Ａ】
0005386005.tif 000004
【図３Ｂ】
0005386005.tif 000005
【図３Ｃ】
0005386005.tif 000006
【図３Ｄ】
0005386005.tif 000007
【図３Ｅ】
0005386005.tif 000008
【図３Ｆ】
0005386005.tif 000009
【図４】
0005386005.tif 000010