(57)【特許請求の範囲】
【請求項１】
データを変更する手段（２１）と、データを受信する手段（２３）と、を有するデータネットワークであって、
データを受信するために前記データを変更する手段へ接続するための第１のデータ記憶装置（３２）と、
第２のデータ記憶装置（３４）、および前記第１のデータ記憶装置中で前記データを変更する手段が行う変更の識別を記録する第１のテーブル（R2トラックステータステーブル７６）と、
前記第１のテーブル中に記録された識別された変更に従って、そのモードの間に前記第２のデータ記憶装置（３４）が前記第１のデータ記憶装置（３２）からデータを受信するような、複数の動作モードの内の第１の動作モードを確立するための第１の手段（ESTABLISH又はREESTABLISH）と、を有し、
Ａ．データを変更する手段（２１）によって作られた前記第１のデータ記憶装置中の変更の識別を記録するための第２のテーブル（プロテクションビットテーブル７５）、および
Ｂ．複数の動作モードの内の第２の動作モード（CASCADE DIFFERENTIAL SPLIT）に動作をシフトする手段であって、当該第２の動作モードは、それが確立されているときに識別される、前の前記第２の動作モードへのシフト以後の前記第１のデータ記憶装置（３２）中の変更に対応する変更である、前記第２のテーブル（７５）中に記録された変更に従って、前記第２のデータ記憶装置（３４）から前記受信する手段（２３）にデータをコピーするためのモードであるような手段と、を有することを特徴とするデータネットワーク。
【請求項２】
請求項１に記載のデータネットワークにおいて、
前記データネットワーク内の転送は、データブロック（TRACKS）として起こり、前記第１のデータ記憶装置（３２）は、それぞれのデータブロックについての情報のための記憶装置（７４）を含み、変更の識別を記録する第３のテーブル（BCV/R1トラックステータステーブル７７）を有し、さらに、前記第２の動作モードへのシフト時に前記第２のテーブルの内容を前記第３のテーブルに転送する手段（８２）を有し、それによって前記第２のデータ記憶装置から第３のデータ記憶装置へ前記第３のテーブルによって識別されたデータブロックをコピーするデータネットワーク。
【請求項３】
請求項１に記載のデータネットワークにおいて、
前記第１及び第２のデータ記憶装置及び前記データを受信する手段内の転送は、データブロックとして起こり、前記第１のデータ記憶装置の一部（３２）は、それぞれのデータブロックへの変更についての情報を含み、前記第１のデータ記憶装置の一部の内容は、前記第２の動作モードへのシフトのときに最初の識別情報を提供するために前記第２のテーブル（７５）に転送されるデータネットワーク。
【請求項４】
請求項３に記載のデータネットワークにおいて、
そのセッションの間に制御手段が交互にかつ反復して前記第１及び第２の動作モードを使用可能にするようなカスケードセッションを実行するための、前記変更する手段から反復して生成される第１及び第２のコマンドに応答する前記制御手段を更に含むデータネットワーク。
【請求項５】
請求項４に記載のデータネットワークにおいて、
データはコピーによって転送され、第２の動作モード（CASCADE DIFFERENTIAL SPLIT）の間の最初の動作は前記第２のテーブルをその中のビットを所定の状態にセットすることによって初期化し、第３のテーブル（BCV/R1トラックステータステーブル７７）中のすべてのデータをカスケードセッションの第１の反復の間に所定の状態に設定し、それによって前記コピーは前記第２のデータ記憶装置（３４）中のすべてのデータを前記データを受信する手段（２３）にコピーするデータネットワーク。
【請求項６】
データを変更する設備（２１）と、データを受信する設備（２３）の間でデータを転送するための方法であって、
変更されたデータを受信するための第１のデータ記憶装置（３２）、
第２のデータ記憶装置、および
データを変更するための設備によって作られる前記第１のデータ記憶装置中の変更の識別を記録するための第１のテーブル（R2トラックステータステーブル７６）、および
前記第１のテーブル中の識別された変更に従って、そのモードの間に前記第２のデータ記憶装置が前記第１のデータ記憶装置からデータを受信するような、複数の動作モードの内の第１の動作モードを有するデータネットワークにおいて、
Ａ．データを変更するの設備によって作られた前記第１のデータ記憶装置中の変更の識別を記録するための第２のテーブル（プロテクションビットテーブル７５）を確立するステップ、および
Ｂ．複数の動作モードの内の第２の動作モードに動作をシフトするステップであって、当該第２の動作モードは、それが確立されているときに識別される、前の前記第２の動作モードへのシフト以後の前記第２のテーブル中の変更に対応する変更に従って、前記第２のデータ記憶装置（３４）から前記受信する設備（２３）にデータをコピーするためのモードであるようなステップと、を有することを特徴とする方法。
【請求項７】
請求項６に記載の方法において、
転送は、前記設備（２１、２３）内でデータブロック（TRACKS）として起こり、前記第１のデータ記憶装置（３２）は、それぞれのデータブロックについての情報のための記憶装置（７４）を含み、前記ステップは、変更の識別を記録するための第３のテーブル（BCV/R1トラックステータステーブル７７）を確立するステップ、および前記第２の動作モードへのシフト時に前記第２のデータ記憶装置から前記第３のデータ記憶装置へのデータのコピーを制御するために、第２のテーブル（７５）の内容を第３のテーブル（７７）へ転送するステップをさらに含む方法。
【請求項８】
請求項６に記載の方法において、
転送は、前記設備（２１、２３）内でデータブロック（TRACKS）として起こり、前記第１のデータ記憶装置の一部は、それぞれのデータブロックへの変更についての情報を含み、前記第１のデータ記憶装置（３２）の一部の内容は、前記第２の動作モードへのシフト時に、最初の識別情報を提供するために前記第２のテーブル（７５）に転送される方法。
【請求項９】
請求項８に記載の方法において、
前記変更する設備からの第１及び第２のコマンドの反復した生成は、そのセッションの間に前記第１及び第２の動作モードが反復的に使用可能にされるようなカスケードセッションを反復して実行する方法。
【請求項１０】
請求項６に記載の方法において、
データは、コピーによって転送され、前記第２の動作モード（CASCADE DIFFERENTIAL SPLIT）の間の最初の動作は、当該コピーが前記第２のデータ記憶装置中のすべてのデータを前記受信する設備にコピーするようなカスケードセッションにおける最初の反復の間に、前記第２のテーブル（７５）をその中のビットを所定の状態にセットすることによって初期化し、第３のテーブル（BCV/R1トラックステータステーブル７７）中のすべてのデータを所定の状態に設定する方法。
【発明の詳細な説明】
【０００１】
（関連出願とのクロス・リファレンス）
出願がこの発明と同じ譲受人に譲渡された、１９９６年５月３１日に出願されたリモートデータ設備の独立動作の方法及び装置(Method and Apparatus for Independent Operation of a Remote Data Facility)のための米国特許第０８／６５６，０３５号。
【０００２】
出願がこの発明と同じ譲受人に譲渡された、１９９７年４月２５日に出願された共通データセットへの独立かつ同時のアクセスのための方法及び装置(Method and Apparatus for Independent and Simultaneous Access to a Common Data Set)のための米国特許第０８／６５６，０３５号。
【０００３】
（技術分野）
この発明は、広くデータ処理ネットワーク中の冗長データ記憶デバイスに関し、より詳しくは、複数の冗長データ記憶ユニット(redundant data storage unit)を通じてデータをカスケードにする(cascade)ことを可能にする方法及び装置に関する。
【０００４】
（背景技術）
データの冗長性によるデータの健全性の維持は、非常に重要な問題となっている。データの冗長性は、いくつかの形態及びバリエーションを有する。単一のサイトでは、ミラリング(mirroring)又はRAIDの冗長性が、ディスク又は他の記憶装置の故障から保護する。１９９６年５月３１日に出願された米国特許第０８／６５６，０３５号などに記載された他の形態では、冗長性は、遠隔の位置にあるローカルなシステムを複製することによって達成される。遠隔の場所を使用することによって、１つの場所での自然災害などによってデータが失われることが防止される。
【０００５】
先の米国特許第０８／６５６，０３５号によると、すべてのデータ処理活動は、データ記憶設備中に記憶されたデータを処理するためのホストシステムを含む「ローカル」の又は「プロダクション(production)」のサイトで起こる。地理的に遠隔な又はバックアップのサイトは、復元(restoration)又は回復(recovery)データセットを維持するための「冗長な」設備として、データ記憶設備を含む。このシステムでは、プロダクションサイトでホストがプロダクションサイトデータ記憶設備にデータを書き込む度に、プロダクションデータ記憶設備は、リモート記憶設備にデータを自動的に書き込む。これらのアプリケーションの、ほとんどではないとしても多くでは、リモートサイトのデータ記憶設備にデータを書き込むことは、バックアップ手順がプロダクション設備の運転に影響を与えないように、広いバンド幅の通信リンクを通した転送を必要とする。T3及びESCONラインは、それらの費用にもかかわらず、通信リンクとして、典型的に好まれている。
【０００６】
米国特許第０８／８４２，９５３号は、プロダクションサイトで典型的に使用されるBCVデバイスを含む他の概念を開示する。このアプローチでは、データセット、例えば、プロダクションサイトのデータ記憶設備上の「論理ボリューム(logical volume)」、すなわち「プロダクションボリューム(production volume)」は、通常の方法で動作する。この同じサイトでの他の論理ボリュームは、「BCVボリューム(BCV volume)」として示される。ESTABLISHコマンドは、BCVボリュームをプロダクションボリュームに接続し、BCVボリュームは、プロダクションボリュームと同期する。SPLITコマンドは、その後、BCVボリュームをプロダクションボリュームから分離することができ、BCVボリューム上に記録されたデータを他のアプリケーションで利用できるようにすることができる。
【０００７】
この他のアプリケーションは、BCVボリューム上に記憶されたデータを変更することができる。結果として、BCVボリュームがプロダクションボリュームと再接続されるときはいつでも、BCVボリュームとプロダクションボリュームの両方の変化を表わすデータをBCVボリュームに転送する必要がある。他の選択肢は、別のESTABLISHコマンドを出すことによって、BCVボリュームをプロダクションボリュームに再接続することである。しかし、このコマンドは、BCVボリューム上のすべてのデータを置換するであろう。変化が起こったかどうかにかかわらす、プロダクションボリュームからのすべてのデータが、BCVボリュームに転送されなければならない。
【０００８】
過去では、プロダクションサイトでのデータ記憶設備の位置を示すことは、許容されてきた。特定の重要な用途では、第１の２つのサイトから遠隔の第３のサイトで更に他の復元コピーを記憶させることが今でも望まれ、またいくつかの状況では、それは義務的である。これによって、すべてプロダクションサイトの動作に透過的に(transparently)、プロダクションサイトから両方のリモートサイトにデータをコピーするためのアプローチが必要となる。プロダクションサイトから単一のリモートサイトにデータをコピーするための前述のアプローチを単に反復することは、過度の通信コストを含む。プロダクションサイトと第２のリモートサイトの間、あるいは第１と第２のリモートサイトの間のいずれかで、第２の高速通信リンクが必要となるであろう。必要なものは、よりコストの低い通信リンクを通じた、種々の遠隔に位置するサイトで存在するデータに重大な相違が全くない、すべてのデータ記憶設備が同期するか又はほぼ同期するような、冗長なデータのコピーを確立する方法である。
【０００９】
（発明の開示）
従って、本発明の目的は、よりコストの低い通信リンクを通じて通信することができる冗長なデータ記憶設備を確立するための方法及び装置を提供することである。
【００１０】
本発明の他の目的は、地理的に遠隔なサイトで、冗長なディスク記憶を実現するための方法及び装置を、経済的に提供することである。
【００１１】
本発明の更に他の目的は、経済的な通信リンクを使用して、２つ以上の地理的に遠隔なサイトに、冗長なデータ記憶を提供するための方法及び装置を提供することである。
【００１２】
本発明のまた更に他の目的は、経済的な低いバンド幅の通信リンクを使用して、２つ以上の地理的に遠隔なサイトに、冗長なデータ記憶を提供するための方法及び装置を提供することである。
【００１３】
本発明のまた更に他の目的は、プロダクションサイトで処理されるデータが、プロダクションサイトでの動作に透過的に達成される冗長性で、２つ以上の冗長な記憶サイトに記憶されるデータ処理ネットワークを提供することである。
【００１４】
本発明によると、プロダクション設備のような、データを変更するデータ処理設備から、リモートデータ記憶サイトは、データ記憶設備から遠隔の他のサイトにデータを転送する。リモートサイトのデータ記憶設備は、第１及び第２のデータ記憶装置(data store)を含む。第１のデータ記憶装置は、プロダクションサイトからデータを受信する。データ変更レコーダ(data change recorder)は、データ処理設備が第１のデータ記憶装置中で行った変更を識別する。第１の動作コントロール(operating control)は、その動作モードの間に前記変更レコーダ手段中で記録された変更に従って第１のデータ記憶装置からデータを受信する、そのような第１の動作モードを確立する。この動作が完了した後、第２の動作コントロールは、前記データ変更レコーダ中に記録された変更に従って、第２のデータ記憶装置から他のリモートサイトにデータをコピーするための第２の動作モードを確立する。
【００１５】
本発明の他の態様によると、データは、プロダクションサイトとリモートサイトの間で転送される。プロダクションサイトは、ホスト及びプロダクション記憶設備を含み、リモートサイト、リモート記憶設備は、トラック毎に(track-by-track basis)プロダクション設備からデータを受け取ることを特徴とする第１のデータ記憶装置、及び第２のデータ記憶装置を含む。ホストは、プロダクション設備が変更する第１のデータ記憶装置中のそれぞれのトラックを識別するための、複数のトラックステータステーブルの画定を可能にする、複数のカスケードコマンドを発行することができる。更に、ホストは、第１及び第２の動作モードを確立することができる。第１の動作モードでは、第２のデータ記憶装置は、トラックステータステーブル中に記録された変更に従って、第１のデータ記憶装置からデータを受信する。第２の動作モードの間では、第２のデータ記憶装置からのデータは、第２のモードが確立されるときに、トラックステータステーブル中に記録される変更に従って、リモート記憶設備にコピーされる。
【００１６】
（図面の簡単な説明）
添付の請求項は、本発明の主題を、特に指し示し、明確にクレームする。本発明の種々の目的、利点及び新しい特徴は、同様の参照番号は同様の部品を示す、そのような添付の図面と共に、以下の詳細な説明を読むことから、より完全に明らかになるであろう。
【００１７】
（本発明を実施するためのベストモード）
（一般的動作）
図１は、ローカル又はプロダクションサイト２１、第１のリモートサイト２２及び第２のリモートサイト２３に装置が設置されたデータ処理ネットワーク２０を示す。第１及び第２のリモートサイト２２及び２３は、典型的には、ローカルのプロダクションサイト２１から、及びお互いから、地理的に離れているであろう。しかし、明らかになっていくように、ローカルのプロダクションサイト２１及び第１のリモートサイト２２の装置は、一緒に置くことができるであろう。
【００１８】
冗長性の第１のレベルは、ローカルのプロダクションサイト２１と第１のリモートサイト２２の間の相互作用(interaction)を通じてデータ処理ネットワーク２０中で達成される。知られているように、１つ以上の中央プロセッサ及びメインメモリを含むホスト２４は、種々のプログラムで動作する。周期的に、ホスト２４は、ホストアダプタ２５を通じてディスク記憶デバイスへの転送を実行するであろう。このディスク記憶デバイスは、関連する情報を記憶するための別個のセクションに編成された多くの物理ディスクドライブを有することができる。これらは、ファイル又は他のデータブロックを含む。本発明の譲受人によって製造される装置の状況では、典型的な記憶セクションは、多くの隣接したディスクトラックを含む論理ボリュームであり、転送はトラック毎に実行される。図１では、R1論理ボリューム２６は、通常そのようなディスク記憶設備中に含まれる多くの論理ボリュームを表わす。明らかになっていくように、ホスト２４は、それがそのようなプロダクション記憶設備からホストアダプタ２５を通じて必要とするどのような情報も検索する。そのようなシステムは、技術上周知である。米国特許第０８／６５６，０３５号は、１つのそのようなシステムを開示する。
【００１９】
示されてはいないが、ローカルのプロダクションサイト２１は、R1論理ボリューム２６のための冗長性を提供することができる。例えば、R1ボリュームを、実際には、ミラリングしたり、又は種々のRAID構成によってホスト２４による割込み動作から特定の物理ディスクドライブの機能不全を防止する、そのような種々のRAID構成のいずれか１つで、論理ボリュームのアレイによって構成したりすることができる。明らかになっていくように、ローカルのプロダクションサイト２１で実施されるどのような冗長性の構成にも関わらず、本発明を適用することができる。
【００２０】
技術上知られ、本発明と同じ譲受人に譲渡されたヤナイ他への米国特許第５，５４４，３４７号に記載されているように、第１のリモートサイト２２でR1論理ボリューム２６中のデータをミラリングすることによって実施することができる他の冗長性の構成が開示される。この構成においてより具体的には、ローカルのプロダクションサイト２１は、ESCON又はT3通信ラインのような高速通信リンクを通じて、第１のリモートサイト２２中の対応するリモートアダプタ３１に接続するリモートアダプタ(remote adapter, RA)２７を含む。この構成では、ホスト２４がR1論理ボリューム２６にデータを書き込むごとに、R2論理ボリューム３２への転送のためにそのデータを高速通信リンクを通じて第１のリモート記憶サイト２２中のリモートアダプタ３１に転送することによって、リモートアダプタ２７は応答する。このように、それぞれのWRITE(書込み)動作は、R1論理ボリューム２６に関して遠隔のミラーとしての役割をするR2論理ボリューム３２に反映すなわち伝達される。もし、自然災害がローカルのプロダクションサイト２１を襲ったなら、データは、リモートサイトのR2論理ボリュームで簡単に利用できる。更に、もしホスト３３が第１のリモートサイト２２中に位置するなら、すべての動作は、検出されないデータの損失が全くないまま、連続した動作のために第１のリモートサイトにシフトすることができる。
【００２１】
前述のように、米国特許出願第８４２，９５３号は、データ記憶設備に関するBCV論理ボリュームを含むデータ処理ネットワークを開示する。本発明によると、BCV/R1論理ボリューム３４は、第１のリモートサイト２２中に含まれる。それは、第１のリモートサイト２２内の、好適にはR2論理ボリューム３２を含む物理ディスクドライブと異なる物理ディスクドライブ上に、任意の専用の論理ボリュームを含むことができる。
【００２２】
この発明によると、また後でより詳細に説明するように、BCV/R1論理ボリューム３４を、R2論理ボリューム３２又はリモートアダプタ３５のいずれかに接続することができる。第１の動作モードでは、BCV論理ボリューム３４は、R2論理ボリューム３２と同期する。BCV/R1論理ボリューム３４がリモートアダプタ３５に接続している第２の動作モードでは、データは、R2論理ボリューム４０又は他のデータレシーバへの転送のため、他の通信リンク３６を通じて、第２のリモートサイト２３中のリモートアダプタ３７に転送されるであろう。本発明の１つの実施形態では、第２のリモートサイト２３は、ホスト４１を含み、また第１のリモートサイト２２にホスト３３が存在する必要性をなくす。このようにして、第２のリモートサイト２３は、もし自然災害がローカルのプロダクションサイト２１で起きると、復元サイト又はデータで動作するための第２のサイトになる。
【００２３】
第２のリモートサイトは、オプションのBCV/R1論理ボリューム４２を含むように示される。後でより完全に説明するように、第２のリモートサイト２３にこの論理ボリュームを含ませることによって、第３のリモートサイトへの本発明に従って実施される機能の複製(replication)ができる。
【００２４】
一般的な条件では、本発明に従って構成されるリモートサイトは、データ記憶設備を構成する第１のリモートサイト２２の基本的な構造を有するであろう。それは、データを変更することができるローカルのプロダクションサイト２１への接続のために、R2論理ボリューム３２の形態の第１のデータ記憶装置を含む。BCV/R1論理ボリューム３４は、第２のデータ記憶装置を構成する。第１のコマンドに応答して、第１のリモートサイト２２中のデータ記憶設備は、その動作モードの間にR2論理ボリューム３２がリモートアダプタ３１からデータを受信し、それによってR1論理ボリューム２６中のデータになされた変更に応答する、そのような第１の動作モードで動作する。典型的には、これは、同期的に実施され、そのため高速通信リンク３０が必要である。この動作モードでは、BCV/R1論理ボリューム３４は、それのBCV又は第１の動作モードで動作していると考えられる。
【００２５】
本発明によると、BCV/R1論理ボリューム３４は、一旦、第１の動作モードで同期が達成されると、第２の又はR1の動作モードにシフトすることができる。第２の動作モードでは、第１のリモートサイトは、BCV/R1論理ボリューム３４からリモートアダプタ３５、通信リンク３６及びリモートアダプタ３７を通じて、R2論理ボリューム４０にデータを転送する。第１から第２の動作モードへのシフトのタイミングは、システムのオペレータによって決定されるであろう。しかし、第２の動作モードから第１の動作モードへのシフトは、一般的には、R2論理ボリューム４０へのデータ転送が完了した後に実施される。典型的には、第２の動作モードへのシフトの間の間隔は、R2論理ボリューム３２中の活動によって、分、時間又は更には日の期間になるであろう。
【００２６】
更に本発明によると、BCV/R1論理ボリューム３４が、それの第２の動作モードにシフトするたびに、第１の動作モードの間に変更されたデータトラックのみが、R2論理ボリューム４０に転送される。もしローカルのプロダクションサイト２１が、第２の動作モードへの連続したシフトの間にR2論理ボリューム３２の単一のトラックへの反復した変更をするなら、BCV/R1論理ボリューム３４からR2論理ボリューム４０への１つの転送のみが起こるであろう。そのような減少によって、通信リンク３６へのバンド幅の要件を減少させることができる。例えば、通信リンク３６を、低いバンド幅の電話線又はインターネットを通じて転送することができるようなレベルに減少させることができるであろう。
【００２７】
このように、本発明に従って、R1論理ボリューム２６になされたデータの変更は、R2論理ボリューム３２中で、そしてBCV/R1論理ボリューム３４を通じてR2論理ボリューム４０へと複製される。順番にデータを転送するこの処理は、カスケードとして特徴付けられ、ローカル又はプロダクションサイト２１でホスト２４によって処理されるカスケードコマンドセットによって制御される。
【００２８】
（カスケードコマンド処理）
より具体的には、システムのオペレータ、又はローカルのプロダクションサイト２１で処理されているアプリケーションプログラムは、第１のリモートサイト２２で実行されているカスケード動作を実行する。知られているように、図１のホスト２４は、カスケードコマンドセット中のコマンドを含む種々のコマンドを作り出すであろう。これらのコマンドは、ホストアダプタ２５を含む任意の数のデバイス又はアドレスに命令することができる。
【００２９】
ここで図１及び２を参照すると、ホストアダプタ２５がコマンドを受信するとき、ステップ４４は、そのコマンドをテストしてデコードするために普通の処理を使用する。そのテストは、正しいコマンドが受信されたかどうかを確定するために、文法、コンテキスト(context)及び他の関連するパラメータを分析する。ステップ４５は、そのコマンドが、カスケードコマンドセット中のコマンドの１つであるかどうか、すなわち、カスケードコマンドであるかどうかを確定する。もし、それがカスケードコマンドでなければ、ホストアダプタ２５は、対応する機能を実施するために手順４６を使用する。有効なカスケードコマンドを受信すると、ホストアダプタ２５は、そのコマンドをリモートアダプタ２７に転送するために、ステップ４７を使用する。
【００３０】
リモートアダプタ２７がステップ５０でコマンドを受信したとき、ステップ５１は、それ以上分析することなく、そのコマンドを通信リンク３０を通じてリモートアダプタ３１に、単に転送する。リモートアダプタ３１は、同様の処理を実行する。すなわち、リモートアダプタ３１は、ステップ５２でコマンドを受信し、及びそのコマンドをデバイスコントローラ４３に転送するためにステップ５３を使用する。
【００３１】
デバイスコントローラ３４が、ステップ５４でリモートアダプタ３１からコマンドを受信した後、デバイスコントローラ３４は、ステップ５５でコマンドをデコードし、及びステップ５６でそのコマンドを処理する。
【００３２】
カスケードコマンド又は他のコマンドによって定義された動作が完了したとき、デバイスコントローラ４３は、リモートアダプタ３１への転送のために、ステップ６０で受取り(acknowledgement)を生成し、ステップ６１、６２及び６３は、ホスト２４への転送のために、その受取りを通信リンクを逆に通してリモートアダプタ２７及びホストアダプタ２５に転送するための処理を表わす。
【００３３】
このように、この処理によって、ホスト２４中で動作しているプログラムが、今度はBCV/R1論理ボリューム３４の動作を制御する第１のリモートサイト中のデバイスコントローラ４３へのコマンドを発行することができる。ステップ６０から６３は、次に、ホストがすべてのそのような動作の完了に気づくように、必要なフィードバックを提供する。結果として、本発明を実施するための第１のリモートサイトで、図１のホスト３３のようなホストに対する要件がなくなる。
【００３４】
（第１のリモートサイト２２）
図１をもう一度参照すると、第１のリモートサイト２２は、本発明を実施するための、多くのステータスレジスタ及びテーブル及びプログラムモジュールを含む。コントロールモジュール７０は、ESTABLISHコマンドを処理するためのESTモジュール７１、DIFFERENTIAL SPLITコマンドを処理するためのDSモジュール７２、及びREESTABLISHコマンドを処理するためのREESTモジュール７３を含む、カスケードコマンドセット中のコマンドを含む種々のコマンドを処理するためのモジュールを含む。ESTABLISH及びREESTABLISHコマンドは、カスケード動作から独立して、機能も実行する。
【００３５】
論理ボリュームのそれぞれは、デバイスのための、個々の物理シリンダー、及びそれらのシリンダー内のトラックのステータスについての情報を維持するための専用の部分を含む。R2論理ボリューム３２の１つのそのような部分は、それぞれのトラックについてのステータスワードを含む専用の部分７４によって構成される。それぞれのステータスワードは、トラックについての情報を含み、種々のステータスの機能について利用可能な多くのビット位置(bit position)のために使用される。それらのビット位置の１つは、カスケード処理での使用のために割り当てられるであろうし、またそのビット位置は、ｎがR2論理ボリューム３２中のトラックの数と等しい場合の１×ｎのテーブルである、プロテクションビットテーブル(Protection Bit Table)７５として複製されるであろう。
【００３６】
第１のリモートサイト２２は、R2トラックステータステーブル７６及びBCV/R1トラックステータステーブル７７も含む。トラックステータステーブル７６及び７７のそれぞれは、複数の行、具体的には、４つのミラリングデバイス又はボリュームに割り当てられた４つの行を含む。BCV/R1論理ボリューム３４がR2論理ボリューム３２に接続しているときの通常動作では、R2トラックステータステーブル７６のM1行中のビット位置は、R2論理ボリューム３２中のトラックに対応し；M2行中のビット位置は、R1論理ボリューム２６中のトラックに対応し；及びM3行中のビット位置は、BCV動作モードで働いているBCV/R1論理ボリューム３４中のトラックに対応する。同様に、BCV/R1トラックステータステーブル７７は、BCV/R1論理ボリューム３４のためのトラックステータスを識別するためのM1行中のビット位置及びR2論理ボリューム４０のためのM2行中のビット位置を含む複数のミラー行を含む。
【００３７】
PBビットレジスタ８０は、カスケード動作の間に使用されることになるプロテクションビットテーブル７５中の選択されたビット位置を識別する。セッションフラグ８１は、システムがカスケードコマンドに応答して動作しているかどうかを指示する。コピープログラム８２は、後でより詳細に説明するように、第１のリモートサイト２２設備中の異なる論理ボリュームの間でのデータのコピーを行う。
【００３８】
（動作−第１の動作モード）
第１のリモートサイト２２は、リモートアダプタ３１で受信された変更に従って、その動作モードの間にコピープログラム８２がR2論理ボリューム３２の形態の第１のデータ記憶設備からBCV/R1論理ボリューム３４の形態の第２のデータ記憶設備にデータをコピーする、そのような第１の動作モードで動作するように、最初にコンフィギュレーション設定が行われるであろう。このコンフィギュレーションは、BCV/R1論理ボリューム３４上のデータがR2論理ボリューム３２上に記憶されたデータと等しくなるような時間まで、同じ状態を保つ。その後、第１の動作モードは、その同期を維持する。
【００３９】
（動作−第２の動作モード）
そのような同期が達成された後はいつでも、ホスト２４がDIFFERENTIAL SPLITカスケードコマンドを発行するときに、第２の動作モードを確立することができる。他には、第１のリモートサイトのオプションのホスト３３は、そのようなコマンドを生成することも可能であろう。コマンドを発行することは、カスケードセッションを開始する。
【００４０】
応答として、デバイスコントローラ４３は、BCV/R1論理ボリューム３４をR2論理ボリューム３２から分離し、図１のコピープログラムがBCV/R1論理ボリューム３４からリモートアダプタ３５を通じて、R2論理ボリューム４０を含む図１の第２のリモートサイト２３によって表わされるようなデータ受信デバイスにデータを転送することを可能にするであろう。それらの２つのボリュームが同期した後はいつでも、BCV/R1論理ボリューム３４をリモートアダプタ３５から分離し、それをR2論理ボリューム３２に再接続することによって、REESTABLISHコマンドはシステムを第１の動作モードに戻し、その後、コピープログラム８２は、BCV/R1論理ボリューム３４をR2論理ボリューム３２と再同期させるであろう。セッションは、後続のDIFFERENTIAL SPLIT及びREESTABLISHコマンドを発行することによって、CLOSE SESSIONコマンドが生成されるまで継続する。
【００４１】
図３は、より詳細にDIFFERENTIAL SPLITコマンドの受信に応答した動作を示す。ホストアダプタ２５が、ステップ９０で異なるコマンドが受信されたことを認識するとき、種々のあり得るエラーステータスを求めて、知られているように及び図２のステップ４４に関して説明されるように、コマンドをテストする。もし何かエラーが存在するなら、その手順は、技術上知られた報告手順を使用して中止される。もしエラーが存在しないなら、制御部(control)７０が応答できるように、リモートアダプタ２７、通信リンク３０及びリモートアダプタ３１を通じた転送のために、DIFFERENTIAL SPLITコマンドを転送するステップ９２に制御が移る。
【００４２】
DIFFERENTIAL SPLIT(DS)モジュール７２がステップ９３で応答するとき、それは、ロック(lock)が存在する間は、他のどのアプリケーションも選択された論理ボリュームに影響を与えることを防ぐために、普通のロック動作(locking operation)を実行する。ステップ９４は、セッションフラグ８１をモニタし、カスケードセッションが進行中であるかどうかを確認する。もしこれが、カスケード動作の最初のディファレンシャルスプリット(differential split)動作であれば、セッションフラグ８１は、セッションは進行中でないことを指示する。制御は、所定の記憶場所に記憶されたデータに基づいてプロテクションビットテーブル(protection bits table)７５を確立するステップ９５に進行する。例えば、ステップ９５は、R2論理ボリューム３２中の専用の部分７４から、プロテクションビットデータファイル(protection bits data file)を検索することができる。他には、ステップ９５は、メモリ中に維持されているそのようなファイルのコピーから、対応する情報を検索することができる。どのような形態でも、それぞれのエントリは、トラックに対応しており、それぞれのエントリは、任意の目的に割り当てることができる複数のビット部分を含む。ステップ９５は、開始されているセッションのための１つのビット位置を確立するため、異なるビット位置のどのような有効な使用も識別するテーブル（図示せず）から、使用されていないビット部分を選択する。そのようなビット位置を選択するための処理は、技術上周知である。次に、DSモジュール７２は、その選択されたビット位置をPB BITレジスタ８０中に記録する。
【００４３】
ステップ９６は、普通のモジュールから基本的なステップを使用して普通のスプリット動作を実行するための手順を表わす。この動作の詳細は、図４に示される。具体的には、ステップ１０１は、R2論理ボリューム３２のためのミラーとしてのBCV/R1論理ボリューム３４のミラリング動作を終了させる。この実行によって、コピープログラム８２が、R2論理ボリューム３２からBCV/R1論理ボリューム３４にデータを転送することが防止される。しかし、R2論理ボリューム３２へのそれぞれの転送は、R2トラックステータステーブル７６のM3行中に記録され、それによって、BCV/R1論理ボリューム３４中に反映されなかったR2論理ボリューム２６中の変化が指示されるであろう。
【００４４】
ステップ１０２は、前述の米国特許出願第０８／８４２，９５３号中にの記載のように、WRITE PENDING動作を管理する。次のステップ１０３は、第１のリモートサイト２２から第２のリモートサイトへのデータの転送がすべての識別情報を含むように、どの識別テーブル(identification table)も、R2論理ボリューム３２からBCV/R1論理ボリューム３４にコピーする。ステップ１０４は、次に、BCV/R1論理ボリューム３４を、第２のリモートサイト２３のR2論理ボリューム４０にデータをコピーするために割り当てる。これによって、コピープログラム８２は、適当な宛先、すなわちR2論理ボリューム４０にデータを転送することが可能になる。
【００４５】
図４の動作が完了したとき、図３のステップ１０５は、BCV/R1トラックステータステーブル７７のM2ビット位置中のすべてのビットをセットする。全てのビットをセットすることによって、すべてのトラック中のデータが、図１のR2論理ボリューム４０に転送されることになる動作環境が確立される。ステップ１０５は、どのような後続のDIFFERENTIAL SPLITの間でも、後述の他のパスが続くことが明確になるように、セッションフラグ８１もセットする。
【００４６】
ステップ１０６は、ロックを解除する。ステップ１０７は、BCV/R1トラックステータステーブル７７中のデータ、特にM3行中の情報に従って、BCV/R1論理ボリューム３４からR2論理ボリューム４０へのデータの転送を開始するコピープログラム８２を開始する。それぞれのコピー動作が起きると、BCV/R1トラックステータステーブル７７中の対応するM2ビットが消去される。全てのビットが消去されたとき、ステップ１１０は、完了ステータス(complete status)を通知(post)し、対応するメッセージは、ホストアダプタ２５に逆に転送され、それによって、転送が完了したホスト２４中で動作する対応するアプリケーションプログラムを指示する。
【００４７】
（動作−第１の動作モードに戻る）
すべてのデータがR2論理ボリューム４０に転送された後はいつでも、システムオペレータは、別のカスケードコマンドを構成するREESTABLISHコマンドを発行することができる。図５のステップ１１２は、ホストアダプタ２５でのそのコマンドの受信を表わす。ステップ１１３は、もしエラーが検出されたなら処理を中止する可能性がある、そのコマンドのコンテキスト及び文法のテストを表わす。エラーが検出されなければ、ホストアダプタ２５は、ステップ１１４を使用して、リモートアダプタ２７及び通信リンク３０を通じたリモートアダプタ３１への転送を制御するためのコマンドをデバイスコントローラ４３に渡す。
【００４８】
デバイスコントローラ４３は、ステップ１１５を使用して、そのようなコマンドの受信を指示する。ステップ１１６は、BCV/R1論理ボリューム３４を、R2トラックステータステーブル７６中の次に利用可能なデバイスのミラーの指示を有するローカルのBCVミラーとして追加する。ステップ１１７で、デバイスコントローラ４３は、DIFFERENTIAL SPLIT動作のための記憶設備として動作しているBCV/R1論理ボリューム３４をNOT READY(NR)にセットする。これによって、COPYプログラムが更にデータを第２のリモートサイト２３にコピーすることが防止される。どのWRITE PENDING動作も、ステップ１１８でINVALID状態にセットされる。前述のアプリケーションで説明したように、どのWRITE PENDING動作をセットすることも、記憶されているデータに影響を与えない。ステップ１２０は、次に、BCV/R1トラックステータステーブル７７のためのM4ビット位置中のビットを有するBCV/R1論理ボリューム３４（すなわち、M3ビット）に割り当てられたミラリングされた記憶場所にあったR2トラックステータステーブル７６中のどのビットもマージする。他のアプリケーションの間に、M4ビット位置は、BCV/R1デバイスのデータになされたどのような変更も、通常記録する。しかし、DIFFERENTIAL SPLITコマンドの間でシステムが第２のモードで動作しているとき、そのような変更はなされない。続いてステップ１２０は、第１のリモートサイトがDIFFERENTIAL SPLIT動作モードで動作していた間にR2論理ボリューム３２になされたどのような変更も表わすR2トラックステータステーブル７６のM3行中のビットを単に取得する。次のステップ１２１は、ロックを解除し、またステップ１２２は、ホストアダプタ２５に逆に転送される完了ステータス(complete status)を、ステップ１２３でホスト２４に通知する。ここで、コピープログラム８２を、R2トラックステータスレジスタテーブル７６中のM3ビット位置の内容に従って、R2論理ボリューム３２からBCV/R1論理ボリューム３４にデータを転送するために利用可能になる。それぞれの転送の間、コピープログラム８２は、R2トラックステータスレジスタテーブル７６のM3ビット位置中の対応するビットを消去する。しかし、プロテクションビットテーブル７５中の対応するビット位置は、変化しないままである。
【００４９】
（動作−R2論理ボリューム４０への書込み）
第１のリモートサイト２２のデータ記憶設備が、BCV/R1論理ボリューム３４からR2論理ボリューム４０にデータをコピーする第２の動作モードで動作する間隔の間、ホスト２４は、R1論理ボリューム２６及びR2論理ボリューム３２に書込み動作を発行し続けることができる。リモートアダプタ３１は、図６のステップ１３０でWRITEデータを受信する。その情報は、ステップ１３１でR2論理ボリューム３２に直ちに書き込まれ、R2トラックステータステーブル７６中の対応するエントリはステップ１３２で更新される。この場合、M3行中の対応するトラックビット位置は、WRITE動作がR2論理ボリューム３２への転送を引き起こしたが、BCV/R1論理ボリューム３４中の対応する変更を引き起こさなかったことを示すように更新されるであろう。次に、システムは、セッションフラグ８１を見て、カスケード動作が進行中であったかどうかを確認するであろう。もしそうであったなら、ステップ１３３は、制御をステップ１３４に移し、それによって、プロテクションビットテーブル７５及びトラックステータステーブル７６中のM3行が同一の情報を有するように、対応するステータスをプロテクションビットテーブル７５に書き込む。ステップ１３４は、もしカスケード動作が進行中でないなら、バイパスされる。ステップ１３５は、次に、その処理によって制御部７０が書込み動作を完了させる、そのような処理を表わす。通常動作の場合は、WRITE動作は、変更されたデータをBCV/R1論理ボリューム３４に転送することによって完了する。もし、BCV/R1論理ボリューム３４が接続されていなければ、WRITEリクエストは、WRITE PENDINGリクエストにされるであろう。
【００５０】
（動作−連続ディファレンシャルスプリット動作）
システムのオペレータが定義することができ、分、時間又は日で測定することができる、いくつかの追加の時間間隔の後、ホスト２１は、他のDIFFERENTIAL SPLITコマンドを発行する。デバイスコントローラ４３がそのコマンドを受信するとき、それの制御は、図３に示された手順に再び移される。しかし、この場合、図４のステップ１０１に関して説明したものと同様の方法で、ステップ９４がステップ１４１に分岐するようにセッションフラグ８１はセットされ、R2論理ボリューム３２へのミラーとしてのBCV/R1論理ボリューム３４の動作を終了させる。これによって、R2論理ボリューム３２からBCV論理ボリューム３４へのデータの転送が目的の、コピープログラム８２のどのような更なるアクションもできないようにされる。ステップ１４２は、ステップ１０２と同様に、全てのWRITE PENDING動作を管理する。
【００５１】
次に、DSモジュール７２は、ステップ１４３を使用して、プロテクションビットテーブル７５を、BCV/R1トラックステータステーブル７７中のM2行にコピーする。次に、DSモジュール７２は、プロテクションビットテーブル７５を消去する。これらの動作の後、BCV/R1トラックステータステーブル７７中のM2ビット位置は、処理されている最後のDIFFERENTIAL SPLITリクエストに続いて変更されたR2論理ボリューム３２中のそれらのトラックを指示する。プロテクションビットテーブル７５中のプロテクションビットを消去することは、論理ボリューム３２及び３４のロックを外すと同時に、どのWRITE PENDING動作も、プロテクションビットテーブル７５中の適当なビットをセットすることによって適切に記録されることを確実にする。
【００５２】
DSモジュール７２中の次の制御は、ステップ９３でかけられたロックを解除するためにステップ１４３からステップ１０６にシフトし、そしてステップ１０７にシフトし、その結果、コピープログラム８２が、BCV/R1論理ボリューム３４からR2論理ボリューム４０にデータを転送できるようになる。しかし、変更されたトラックの中のデータのみが送信されるであろう。すなわち、セッション中の最初の動作の後の全てのDIFFERENTIAL SPLIT動作は、変更されたトラック中のデータに対応する、増加する量の情報のみを送信するということは、このコマンドの性質である。更に、通信リンク３６を通じて実際に転送されたデータのトラックの数は、連続したDIFFERENTIAL SPLIT動作の間に起こる書込み動作の数より、通常かなり小さいであろう。例えば、もしそのような間隔の間に、R2論理ボリューム３２の同じトラック上の異なる領域への、１０回の書込み動作があったとしたら、BCV/R1デバイス３４は、最も新しい情報のみを含み、そして１つのトラック書込み動作のみが、第２のリモートサイト２３中のR2論理ボリューム４０を更新するために必要になるであろう。そのような反復する書込み動作が単一のトラックに発生するとき、通信リンク３６のためのバンド幅の要件を劇的に減少させることができる。要件を十分に減らすことができ、そして、T1ラインのような、少なくとも次のより低いレベルの通信バンド幅を使用することができることは、一般的にわかる。多くのアプリケーションでは、インターネットを通信リンク３６として使用することができるようなレベルに更にバンド幅の要件を減少させることができる。
【００５３】
DIFFERENTIAL SPLIT及びREESTABLISHコマンドの順番は、冗長なコピーのためのリポジトリとして、第２のリモートサイト２３を使用することが望まれる限り、反復して継続することができる。一旦、冗長なコピーを維持する必要がなくなったら、ホストは、所定のCLOSE SESSIONコマンドを生成することができる。このカスケードコマンドは、レジスタ８０中のPBビット位置の割り当てを開放し、カスケード動作を完了させるためにセッションフラグ８１を消去する。
【００５４】
本発明は、ローカルのプロダクションサイト２１が、プロダクションデータ記憶設備中でデータを周期的に変更するための装置を表わすような好適な実施の形態に関して説明してきた。本発明によると、第１のリモートサイトは、プロダクションサイトでデータをミラリングするための第１のデータ記憶装置を含む。BCV/R1論理ボリューム３４の形態の第２のデータ記憶装置は、２つの動作モードを有する。１つでは、BCV/R1論理ボリューム３４は、R2論理ボリューム３２のためのミラーとして働く。DIFFERENTIAL SPLIT又は同等のコマンドを発行することによって開始される他のモードでは、BCV/R1論理ボリューム３４は、R2論理ボリューム３２から分離され、BCV/R1トラックステータステーブル７７中で識別されたデータをR2論理ボリューム４０、又はBCV/R1論理ボリューム３４からのデータのためのレシーバとして働く第２のリモートサイト２３中の他の手段に伝達する。
【００５５】
プロテクションビットテーブル７５によって表わされるデータ変更記録装置は、第２の動作モードの間中、BCV/R1論理ボリューム３４の内容がR2論理ボリューム４０に転送されている間に、R2論理ボリューム３２へのどのような変更も記録する。制御がBCV/R1論理ボリューム３４を逆に第１の動作モードにシフトしているとき、データの変更の記録は、それらのデータブロック又はR2論理ボリューム３２からBCV/R1論理ボリューム３４に転送しなければならない他のデータブロックを識別する。この変更されたデータの記録は、システムが再びBCV/R1論理ボリューム３４の動作を第２の動作モードにシフトさせるとき、BCV/R1論理ボリューム３４から第２のリモートサイト２３のようなデータ受信サイトに転送されるようなトラックを更に制御する。
【００５６】
図１から６に示された具体的に開示された実施形態に行うことができる多くの変形がある。図１は、例えば、テーブル及びモジュールの特定の編成を表現する。第１のリモートサイト２２の全体の動作から減じることなく、その情報の異なるコンフィギュレーションで置きかえることができよう。図１から６は、単一の論理ボリュームに関連する動作を更に表現する。一般的に、ネットワークは、図１から６に示される動作及び装置を繰り返すことによって、それぞれをこれと同じ方法で扱うことができる複数の論理ボリュームを含むであろう。更に、種々のモジュールの説明は、説明の目的のために特定の順番を確立するが；他の補助的な動作のために必要なような他の動作のいくつかの削除又は追加も含むことができる、他の順番でもよいであろう。そのような順番は、動作モードの間のそれぞれの転送をシステムのオペレータが開始するために、マニュアルで制御することができる。他には、カスケードセッションのすべて又は部分を自動制御とすることもできよう。このように、本発明は特定の実施形態に関して開示してきたが、本発明の真の精神及び範囲内の、すべての変形及び変更を包含することが、添付の請求項の目的である。
【図面の簡単な説明】
【図１】  プロダクション設備及び２つの地理的に遠隔の設備を含むデータ処理ネットワークのブロック図である。
【図２】  プロダクション設備からリモート記憶設備へのコマンドの転送を示すフロー図である。
【図３】  DIFFERENTIAL SPLITコマンドに応答した図１のネットワークの動作を示す図である。
【図４】  図３で示された動作で使用される手順の詳細を示す図である。
【図５】  RE-ESTABLISHコマンドに応答した図１のネットワークの動作を示す図である。
【図６】  DIFFERENTIAL SPLITコマンドを処理した後に起きる他の動作を示す図である。
【図１】
0003769190.tif 000002
【図２】
0003769190.tif 000003
【図３】
0003769190.tif 000004
【図４】
0003769190.tif 000005
【図５】
0003769190.tif 000006
【図６】
0003769190.tif 000007