(57)【特許請求の範囲】
【請求項１】
複数のディスクシステムを備える第１の記憶装置コンポーネントを有する第１のコンピュータシステムと、
複数のディスクシステムを備える第２の記憶装置コンポーネントを有する第２のコンピュータシステムとを含み、
第１および第２の記憶装置コンポーネントはデータネットワークによってデータを交換するように構成され、前記第１および前記第２の記憶装置コンポーネントにある複数のディスクシステムは、それぞれ関係付けられており、前記第１のコンピュータシステムにある前記複数のディスクシステムのうちの第１のディスクシステムは、ホストシステムから送信されるデータのブロックを前記第１のディスクシステムに書込み、データパケットを、前記第１のディスクシステムから、前記第２のコンピュータシステムの前記複数のディスクシステムのうち、前記第１のディスクシステムに対応する第２のディスクシステムに伝送するためにプログラムコードで構成されたメモリを有しており、データパケットはデータブロック、タイムスタンプおよびシーケンス番号を含むものであり、
前記第２のディスクシステムは、前記関係付けられた第１のディスクシステムが送信するデータパケットを受信し、データパケットに含まれているタイムスタンプおよびシーケンス番号に基づきリミットタイムスタンプを取得し、タイムスタンプをリミットタイムスタンプと比較することにより候補データパケットを選択し、候補データパケットを第２の記憶装置システムに書込むようにプログラムコードにより構成されたメモリを有しており、
前記第１の記憶装置コンポーネントに書込まれるデータのブロックは、前記第１の記憶装置コンポーネントにおけると同じ順序で前記第２の記憶装置コンポーネントに書込まれるものである、システム。
【請求項２】
第２のメモリがさらに、タイムスタンプの中からそれらの対応するシーケンス番号に基づきリミットタイムスタンプを取得し、それらの対応するタイムスタンプをリミットタイムスタンプと比較することによってデータパケットの中から候補データパケットを選択するようにプログラムコードにより構成されている、請求項１記載のシステム。
【請求項３】
データネットワークがコネクションレス型ネットワークである、請求項１記載のシステム。
【請求項４】
データパケットがそれらが送信されたものと同じ順序で受信されると保証できないものとしてデータネットワークが特徴づけられる、請求項１記載のシステム。
【請求項５】
データネットワークがワイドエリアネットワークである、請求項４記載のシステム。
【請求項６】
第１の記憶装置コンポーネントが複数の第１のデータ記憶装置を有し、第２の記憶装置コンポーネントが複数の第２のデータ記憶装置を有し、第１のデータ記憶装置の各々は第２のデータ記憶装置の１個と対応しており、ここにおいて、第１のデータ記憶装置の１個に格納されたデータが対応する第２のデータ記憶装置の１個にも格納される、請求項１記載のシステム。
【請求項７】
第１のディスクシステムの各々が複数の第１のディスク装置よりなり、第２のディスクシステムの各々が複数の第２のディスク装置よりなり、第１のディスク装置の各々は第２のディスク装置の１個と関係付けられている、請求項１記載のシステム。
【請求項８】
第１のディスク装置は各々、第１のディスク装置が属する第１のディスクシステムとは独立に、第２のディスク装置のうちの１個と関係付けられている、請求項７記載のシステム。
【請求項９】
ローカルシステムに含まれるデータをリモートシステムにバックアップする方法であって、
ローカルデータ記憶装置が複数のローカルディスクシステムよりなり、リモートデータ記憶装置が複数のリモートディスクシステムよりなり、各ローカルディスクシステムがそれぞれリモートディスクシステムと関係付けられており、
データのブロックを第１のローカルデータ記憶装置に書込むことと、
各ローカルディスクシステムは、格納された１個以上のデータパケットを、それぞれ関係付けられたリモートディスクシステムに送信することと、データパケットはデータのブロック、タイムスタンプおよびシーケンス番号を含むものであり、
前記ローカルシステムからデータパケットを受信することと、
そのデータのブロックがリモートデータ記憶装置に書込まれるデータパケットを、データパケットのシーケンス番号およびタイムスタンプに基づきリミットタイムスタンプを取得することと、それらの関係するタイムスタンプをリミットタイムスタンプと比較することによってデータパケットの中からそのデータパケットを選択されることとを含む、方法。
【請求項１０】
次のデータパケットのシーケンス番号を増分することをさらに含む、請求項９記載の方法。
【請求項１１】
ローカルデータ記憶装置が複数のローカルディスク装置よりなり、リモートデータ記憶装置が複数のリモートディスク装置よりなり、各ローカルディスク装置がリモートコピーペアを規定するためにリモートディスク装置の１個と対にされている、請求項９記載の方法。
【請求項１２】
ローカルディスク装置にデータの複数のブロックを書込むことと、各リモートディスク装置がその関係する複数のデータパケットに基づくシーケンス番号のリストを有するようにリモートディスク装置に複数のデータパケットを送信することとをさらに含み、該方法はさらに、シーケンス番号の各リストについて、シーケンス番号の最も長い連続を取得することと、その最も長い連続から最高値のシーケンス番号を取得することと、最高値のシーケンス番号に対応するタイムスタンプを取得することと、それによって、タイムスタンプのリストを生成することとを含み、該方法はさらに、タイムスタンプのリストの中で最早タイムスタンプに基づきデータパケットを選択することを含む、請求項１１記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ記憶装置システム、詳細には、データネットワーク環境においてデータ記憶装置システムのデータの完全性を維持することに関する。
【０００２】
【従来の技術】
従来、データ処理システムは、高速な高信頼性データバスによって各自の関係するデータ記憶装置システムにアクセスできる。しかし、その機会は、ネットワーク通信の広範囲に及ぶ用途が拡大し続けるにつれ、ますます利用可能になっている。ＩＰ（インターネットプロトコル）は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）ネットワークが確立される基本的なパケットデリバリサービスを提供する。ＩＰは、十分に規定されたプロトコルであり、それゆえ、ＩＰを用いてサーバシステムが記憶装置システムとデータを交換し、記憶装置システムが他の記憶装置システムとデータを交換する、ネットワークベースのデータ記憶アクセスのためのトランスポート／ネットワーク層を提供する自然な候補である。
【０００３】
しかし、ＩＰの性質は、データ記憶アクセスシステムの領域におけるいくつかの独自な問題を呈する。第一に、ＩＰはコネクションレス型プロトコルである。これは、ＩＰがデータの伝送に先んじてエンドツーエンド接続を確立するために制御情報を交換しないことを意味する。ＩＰは誤り検出・回復機構をまったく含まない。従って、ＩＰは接続されたネットワークにデータを送達するためには信頼できるが、そのデータが正しく受信されたか、またはそれが送信された順序でデータが受信されているかを保証するためのいかなる機構も存在しない。コネクション型サービスが要求される場合、ＩＰは、接続を確立するためにより高次の階層プロトコルに頼る。
【０００４】
デュアルリモートコピー機能が必要とされるデータ記憶装置システムにおいて、ＩＰベースの伝送は問題を呈する。リモートコピー機能は、一次データ記憶装置での災害回復を実現するという目的で、リモートサイトにおける一次データ記憶装置のリアルタイムコピーを可能にする。この機能がその目的を果たすために、データの完全性を保証することが重要である。同期および非同期の２種類のリモートコピーがある。
【０００５】
同期型リモートコピーでは、ローカルＨＯＳＴによるその関係するローカルディスクシステムへの書込み要求は、書込まれたデータがローカルディスクシステムからリモートディスクシステムに転送された後まで完了しない。従って、同期型コピーの場合、ローカルおよびリモートディスクシステム間のデータの完全性を保証することは容易である。
【０００６】
非同期型リモートコピーでは、ローカルＨＯＳＴによる書込み要求は、ローカルディスクがリモートディスクへのその転送を完了する前に、完了する。名称が暗示する通り、ローカルディスクからリモートディスクへの転送動作が完了しているかどうかにかかわらず、制御はローカルＨＯＳＴに返される。従って、非同期型コピー動作の間のデータの完全性は、リモートディスクのデータがローカルディスクにおけると同じ順序で書込まれるように、リモートディスクシステムでのデータの正しい着信順序に依存する。
【０００７】
これを実現するために、ローカルディスクシステムは、リモートディスクに送られるデータとともにタイムスタンプを含める。リモートにおいてデータはそのタイムスタンプに従って書込まれる。従って例えば、リモートディスクがタイムスタンプ７：００を備えるデータを受信した時には、それはすでに、タイムスタンプが７：００より前である全部のデータを受信している。
【０００８】
【発明が解決しようとする課題】
しかし、ＩＰベースのネットワークにおいて、パケットが乱順で着信できる場合、７：００のタイムスタンプを有するデータパケットは、それ以前のタイムスタンプを有するデータパケットが先行することもあればしないこともあり得る。その結果、伝送プロトコルがＩＰのようなコネクションレス型トランスポートモデルに基づく場合、リモートディスクシステムにおいてデータの完全性を保証することは難しい。
【０００９】
ＩＰが磁気テープシステムで使用された時には別の問題が生じる。磁気テープへの読出しおよび書込み動作はシーケンシャルであり、従って、アドレス指定は固定である。従ってデータパケットが乱順でリモートサイトに着信した場合、データは間違った順序でテープに書込まれる。破壊された記憶装置システムをテープから復元するための以降の回復動作は結果として破損データを生じるであろう。
【００１０】
信頼できるＩＰベースのデータ回復システムを提供するための必要性が存在する。
【００１１】
【課題を解決するための手段】
本発明に従ったデータ記憶装置システムは、ローカル記憶装置コンポーネントおよびリモート記憶装置コンポーネントよりなる。ローカル記憶装置コンポーネントに書込まれるデータは、データネットワークによってリモート記憶装置コンポーネントにデータパケットで送られる。
【００１２】
データパケットは、ローカル記憶装置コンポーネントで書込まれるデータのコピー、タイムスタンプおよびシーケンス番号を含む。複数のそうしたデータパケットがリモート記憶装置コンポーネントで受信される。データパケットは、各データパケットに関係するシーケンス番号およびタイムスタンプに基づきリモート記憶装置コンポーネントでの書込みのために選択される。
【００１３】
本発明の１実施形態において、ローカルおよびリモート記憶装置コンポーネントはそれぞれ、複数のローカルおよびリモートディスク装置として構成される。各ローカルディスク装置はリモートディスク装置と関係づけられる。そのような各対はリモートコピーペアと呼ばれる。この実施形態では、各リモートコピー単位は関係するシーケンス番号を有する。
【００１４】
本発明の別の実施形態において、ローカルディスク装置はローカルディスクシステムにグループ化される。同様に、各リモートディスク装置はリモートディスクシステムにグループ化される。本発明のこの実施形態では、少なくとも１個の共通のリモートコピーペアを有する各対のローカルおよびリモートディスクシステムについてシーケンス番号が存在する。
【００１５】
本発明の別の実施形態において、リモートコピーペアはデータの完全性ペアグループにグループ化される。この実施形態では、少なくとも１個のデータの完全性ペアグループを共通に有するローカルおよびリモートディスクシステムの各対についてシーケンス番号が存在する。
【００１６】
本発明の教示は、添付する詳細な説明を以下の図面とともに検討することによって容易に理解することができる。
【００１７】
【発明の実施の形態】
図１を参照すれば、本発明の１実施形態に従ったコンピュータシステムが示されている。ローカルコンピュータシステム１００は、少なくともローカルＨＯＳＴシステム１０２および少なくともローカルディスクシステム１０４を含む。リモートコンピュータシステム１０１は少なくともリモートディスクシステム１０５を含む。リモートＨＯＳＴシステム１０３は必ずしもリモートコンピュータシステム１０１に必要なわけではない。個々のローカルディスクシステム１０４は通信路１１２によってリモートディスクシステム１０５と接続される。通信路１１２は、伝送されたデータパケットが必ずしもそれらが送られた順序で着信するわけではないことを特徴とするネットワークである。ＩＰベースのネットワークはこの振舞いを示す。一般に、コネクションレス型ネットワークはこの振舞いを示す。例えば、ワイドエリアネットワーク（ＷＡＮ）はＩＰに基づくことができる。しかし、本発明はＷＡＮに限定されるものではない。
【００１８】
ローカルディスクシステム１０４は、リモートディスクシステム１０５において維持される関係するリアルタイムコピーを有する少なくともローカルディスク装置１０６を含む。リモートディスクシステム１０５は、ローカルディスク装置１０６のリアルタイムコピーを含んでいる少なくともリモートディスク装置１０７を含む。ローカルディスク装置１０６およびリモートディスク装置１０７よりなるペアは、リモートコピーペア１０８と称する。その中においてデータの完全性が保証されなければならないリモートコピーペア１０８のグループは、データの完全性ペアグループ１０９と称する。データの完全性ペアグループ１０９に属するローカルディスク装置１０６のグループは、データの完全性ローカルディスクグループ１１０と称する。同様に、リモートシステムでは、１個のデータの完全性ペアグループ１０９に属するリモートディスク装置１０７のグループは、データの完全性リモートディスクグループ１１１と称する。
【００１９】
データの完全性ローカルディスクグループ１１０は、単一のローカルディスクシステム１０４から、または、２個以上のローカルディスクシステム１０４からのローカルディスク装置１０６を含み得る。その結果、ローカルディスクシステム１０４の構成要素であるローカルディスク装置１０６は、１個以上のデータの完全性ペアグループ１０９に見ることができる。データの完全性リモートディスク装置グループ１１１は、１個以上のリモートディスクシステム１０５に属するリモートディスク装置１０７より構成され得る。従って、リモートディスクシステム１０５は、異なるデータの完全性ペアグループ１０９に属するリモートディスク装置１０７を有することができる。
【００２０】
ローカルＨＯＳＴシステム１０２の動作の経過の間に、データはローカルディスクシステム１０４に書込まれる必要があるであろう。ローカルＨＯＳＴは、ローカルディスクシステム１０４に記憶される「書込みデータ」１１３を転送する。ローカルディスクシステム１０４はまた、書込みデータ１１３をデータ回復のためにリモートディスクシステム１０５にも送る。本発明によれば、ローカルディスクシステム１０４がリモートディスクシステム１０５に書込まれる書込みデータ１１３を送る際に、それはタイムスタンプ１１４およびシーケンス番号１１５も送る。タイムスタンプ１１４は、ローカルディスクシステムがローカルＨＯＳＴシステム１０２からその要求を受信した時刻を示す。シーケンス番号１１５は書込みデータ１１３のシーケンス番号である。シーケンス番号１１５は、ローカルディスク装置１０４が書込みデータ１１３をリモートディスクシステム１０５に送る時に生成される。ローカルディスクシステム１０４は、シーケンス番号１１４を選定し、それらがシーケンシャルに生成されていることを保証する。
【００２１】
データの完全性を実現するために、データの完全性ペアグループ１０９のリモートディスク装置１０７に書込まれるデータの順序は、そのデータの完全性ペアグループの対応するローカルディスク装置１０６に書込まれる同一データの順序と同じである必要がある。データの完全性ペアグループ１０９におけるデータの完全性を保証するために、リモートディスクシステム１０５の中でのタイムスタンプ１１４を比較することが必要である。なぜなら、リモートディスクシステム１０５のうちの１個が７：００のタイムスタンプ１１４を備える書込みデータ１１３を受信したのに対して、リモートディスクシステム１０５の別のものがもっと早いタイムスタンプを備える書込みデータ１１３をすでに受信していることが起こり得るからである。
【００２２】
従って、リモートシステム１０１は、複数のスレーブリミットタイムスケジュールプロセス１１６を含む。各リモートディスクシステム１０５は、関係するスレーブリミットタイムスケジュールプロセス１１６を有する。リモートシステムはさらに、単一のマスタリミットタイムスケジュールプロセス１１７を含む。スレーブリミットタイムスケジュールプロセス１１６はそれぞれ、タイムスタンプ１１４の情報をマスタリミットタイムスケジュールプロセス１１７に送る。マスタリミットタイムスケジュールプロセス１１７はその後、リモートディスク装置１０７にデステージングを許可するために最も早い時間を決定する。この最早時間は、タイムリミット１１８として各スレーブタイムリミットスケジュールプロセス１１６に送られる。
【００２３】
本発明によれば、ローカルディスクシステム１０４は、データパケットが乱順でリモートシステムに着信した場合でもリモートコピーシステムにおけるデータの完全性を保証するために、書込みデータ１１３の各パケットとともにシーケンス番号１１５を送る。
【００２４】
図２を参照すれば、本発明の実施形態において、この図は、すべてのリモートコピーペア１０８が１個のシーケンス番号を有する、ローカルディスクシステムおよびリモートディスクシステムにおけるプロセスを示す。ローカルディスクシステム１０４は、キャッシュメモリ２０２を有するローカルディスク制御装置２００を備える。リモートディスクシステム１０５は、キャッシュメモリ２０３を備えるリモートディスク制御装置２０１を含む。
【００２５】
プロセスは、ローカルコンピュータシステム１００において、Ｌ（ローカル）書込みデータ受信プロセス２１０、Ｌ書込みデータ送信プロセス２１１、Ｌ書込みデータ送信完了プロセス２１２およびＬ書込みデータデステージプロセスを含む。リモートコンピュータシステム１０１は、Ｒ（リモート）書込みデータ受信プロセス２１４、Ｒ書込みデータデステージプロセス２１５、マスタリミットタイムスケジュールプロセス１１７およびスレーブリミットタイムスケジュールプロセス１１６を含む。各プロセスは、その各自のローカルディスク制御装置２００またはリモートディスク制御装置２０１において起動する。
【００２６】
各リモートコピーペア１０８について、ローカルディスクアドレス２０４、リモートディスクアドレス２０５、データの完全性グループＩＤ２０６およびシーケンスカウンタ２０７を含むリモートコピーペアデータ記憶装置２０３が存在する。ローカルディスクアドレス２０４およびリモートディスクアドレス２０５はそれぞれ、書込み動作のためにリモートコピーペア１０８を構成するローカルディスク装置およびリモートディスク装置の行先アドレスである。データの完全性ペアグループＩＤ２０６は、リモートコピーペアが属するデータの完全性ペアグループ１０９を識別する。図２に例示する通り、各リモートコピーペア１０８は関係するシーケンス番号１１５を有する。シーケンスカウンタ２０７は、リモートディスクに送られる書込みデータ１１３と関係づけられているシーケンス番号１１５を与える。
【００２７】
キャッシュメモリ２０２は、各リモートコピーペア１０８について、書込みデータ１１３、リモートディスクアドレス２０８、位置決め情報２０９、シーケンス番号１１５およびタイムスタンプ１１４よりなるデータ構造も含む。このように、ローカルＨＯＳＴ１０２からローカルディスクシステムに送られる書込みデータの各ブロックについて１個の当該データ構造が存在し、それによって、ローカルＨＯＳＴ１０２による典型的な書込み動作のために複数の当該データ構造を生じる。例えば、位置決め情報は、パーソナルコンピュータに共通に見られるディスク駆動装置のディスクブロックアドレスである。従来のメインフレームシステムでは、位置決め情報は一般に、シリンダ番号、ヘッド番号およびレコード番号である。
【００２８】
ここで図２および５を参照して、Ｌ書込みデータ受信プロセス２１０の処理を説明する。このプロセスは、ローカルＨＯＳＴシステム１０２から書込み要求を受信した時にローカルディスクシステムにおいて実行される。最初に、ローカルディスクシステム１０４はローカルＨＯＳＴシステム１０２から書込み要求を受信する（ステップ５００）。書込み要求は、ローカルディスク装置１０６のアドレス情報および、書込みデータ１１３が書込まれるローカルディスク装置１０６の位置を指定する。次に、ローカルディスクシステム１０４は、書込まれる実際の書込みデータ１１３を受信し、それをキャッシュメモリ２０２にキャッシュする（ステップ５０１）。ローカルディスクシステム１０４は、リモートコピーペア１０８の対応するリモートディスク装置１０７のリモートディスクアドレス２０５をリモートコピーペアデータ記憶装置２０３から取得し、それをリモートディスクアドレス２０８としてキャッシュメモリに格納する。書込み要求において指定された位置は、位置決め情報２０９としてキャッシュメモリに格納される（ステップ５０２）。ローカルディスクシステムはその後、ローカルＨＯＳＴシステムからタイムスタンプを受信し、それをタイムスタンプ１１４としてキャッシュメモリ２０２に格納する（ステップ５０３）。タイムスタンプ１１４は、生成されるタイムスタンプ１１４がローカルディスクシステム１０４の全部に共通である限り、ローカルＨＯＳＴシステム１０４以外によっても生成できる。複数のローカルＨＯＳＴシステム１０２が存在する実施形態では、ＨＯＳＴシステム間で共通のタイムスタンプ値を付与する共有クロックが存在することが前提とされる。最後に、ローカルディスクシステム１０４は、ローカルＨＯＳＴシステム１０２に書込み要求の完了を示す（ステップ５０４）。
【００２９】
図２および６を参照して、Ｌ書込みデータ送信プロセス２１１の処理を説明する。このプロセスは、ローカルディスクシステムが書込みデータ１１３をリモートディスクシステム１０５に送る準備ができた時に実行される。図２に示す本発明の実施形態によれば、各リモートコピーペア１０８について１個のＬ書込みデータ送信プロセス２１１が存在する。このプロセスは、Ｌ書込みデータ受信プロセス２１０に関して非同期に実行される。
【００３０】
ローカルディスクシステム１０４は、リモートディスクシステムに送られるリモートコピーペア１０８において待機している書込みデータ１１３の全部のうちで時間的に最早関係するタイムスタンプ１１４を有する書込みデータ１１３を選択する（ステップ６００）。ローカルディスクシステムはその後、シーケンスカウンタ２０７の現在値を、選択された書込みデータ１１３（すなわち、その関係するタイムスタンプが時間的に最も早い書込みデータ）に関係づけられるシーケンス番号１１５とみなす。シーケンスカウンタ２０７は増分される（ステップ６０１）。次に、選択された書込みデータ１１３ならびにその関係するタイムスタンプ１１４、シーケンス番号１１５、リモートディスクアドレス情報２０８および位置決め情報２０９は、リモートディスクシステム１０５に送られる（ステップ６０２、図１も参照）。
【００３１】
本発明によれば、Ｌ書込みデータ送信プロセス２１１はその後、完了に関するリモートディスクシステム１０５からのいずれの指標も待たずに、次の書込みデータ１１３を処理することに進む。このようにして、高速なデータ転送速度が実現される。しかし、パケットが乱順で着信する可能性がある。それゆえ、ローカルディスクシステム１０４は、リモートディスクシステム１０５に属するいずれかの書込みデータ１１３が、まだ送られていないリモートコピーペア１０８に存在するかどうかを確認する（ステップ６０３）。肯定であれば、処理はステップ６００に継続する。否定であれば、プロセスはしばらく待機し（ステップ６０４）、その後ステップ６０３に継続する。
【００３２】
ステップ６０４での待機は、送られる書込みデータがまったく存在しない状況に適応するためである。ステップ６０３で送信する書込みデータがまったく存在しなければ、Ｌ書込みデータ送信プロセス２１１は行うべき処理がまったくない。従って、ステップ６０４は、送信すべき書込みデータがあるかどうかを知るために再び確認する前にプロセスを暫時休止するために使用される。
【００３３】
次に図２および７を参照して、Ｌ書込みデータ送信完了プロセス２１２の処理を説明する。このプロセスは、ローカルディスクシステム１０４がリモートディスクシステム１０５への書込みデータ１１３の転送の完了の通知を受信した時に実行される。ローカルディスクシステムは、リモートディスクシステム１０５から書込みデータ１１３の転送の通知を受信する（ステップ７００）。ローカルディスクシステム１０４はその後、対応するタイムスタンプ１１４およびシーケンス番号１１５の値をヌルにする。書込みデータ１１３はすでにリモートディスクシステム１０５に送られているので、これらのフィールドはもはやローカルディスクシステム１０４によって使用されない。
【００３４】
リモートディスクシステム１０４への書込みデータ１１３の転送が完了した後、書込みデータ１１３はＬ書込みデータデステージプロセス２１３によってローカルディスク装置１０４に書込まれる。このプロセスは、ローカルディスク装置１０６への書込みデータ１１３の実際の書込みをもたらし、公知の常法に従って実行される。
【００３５】
次に図２および８を参照して、Ｒ書込みデータ受信プロセス２１４を検討する。このプロセスは、ローカルディスクシステム１０４から書込みデータ１１３を受信した時に、リモートディスクシステム１０５において実行される。図２に示す本発明の実施形態によれば、各リモートコピーペア１０８についてＲ書込みデータ受信プロセス２１４が存在する。リモートディスクシステム１０５は、受信された書込みデータ１１３ならびにその関係するタイムスタンプ１１４、シーケンス番号１１５、リモートディスクアドレス情報２０８および位置決め情報２０９をキャッシュメモリ２０３に格納する（ステップ８００）。リモートディスクシステム１０５は、そのシーケンス番号１１５とともに書込みデータ１１３の転送の完了指標をローカルディスクシステムに返送する（ステップ８０１）。
【００３６】
キャッシュメモリ２０３は、各リモートコピーペア１０８について、受信された書込みデータ１１３、リモートディスクアドレス２０８、位置決め情報２０９、シーケンス番号１１５およびタイムスタンプ１１４よりなるデータ構造を含む。従って、ローカルＨＯＳＴ１０２から受信された書込みデータ１１３の各ブロックについて１個のそのようなデータ構造が存在し、それによって、複数の当該データ構造を生じる。
【００３７】
次に図２および９を参照して、スレーブリミットタイムスケジュールプロセス１１６を説明する。スレーブプロセス１１６は、ある時間実行し、終了する。このプロセスは周期的に起動する。図２に示す本発明の実施形態において、各リモートコピーペア１０８が関係するシーケンス番号１１５を有することを想起されたい。実際、リモートコピーペア１０８において待機している書込みデータ１１３の各ブロックについて、関係するシーケンス番号１１５が存在する。従って、各リモートコピーペア１０８はシーケンス番号１１５のリストを持ち得る。さらに、リモートディスクシステム１０５が、それと関係する複数のリモートコピーペア１０８を有し得ることを想記されたい。従って、各リモートディスクシステム１０５は複数のシーケンス番号のリストを持ち得る。
【００３８】
各リモートコピーペア１０８について、スレーブリミットタイムスケジュールプロセス１１６は、そのリモートコピーペアのシーケンス番号のリストを検査する（ステップ９０１）。それは、連続している番号の最長の連続を見つけ、その連続から最大シーケンス番号を返す。例えば、リモートコピーペアが以下のシーケンス番号のリストを含むと仮定する。
．．．，１１，１２，１３，１４，１５，１６，１７，１８，１９，２０，２１，２２，２３，２４，２５，２６，２８，２９
【００３９】
上記の例では、シーケンス番号２７がまだ受信されていないので、２６以下であるシーケンス番号は連続している。従って、プロセスは、この連続の中で最高値のシーケンス番号である「２６」を選択する。次に、プロセスは、その最高値の（最大の）シーケンス番号と関係するタイムスタンプ１１４を検索する。これが各リモートコピーペアについて繰り返され、タイムスタンプのリストを生じる。
【００４０】
このタイムスタンプのリストから、最早タイムスタンプが選択される（ステップ９０１）。各スレーブリミットタイムスケジュールプロセス１１６は、このようにして１個のそうした最早タイムスタンプを生成する。各スレーブプロセスからの最早タイムスタンプはその後、マスタリミットタイムスケジュールプロセス１１７に送られる（ステップ９０２、図１も参照）。各スレーブプロセスはその後、マスタリミットタイムスケジュールプロセス１１７からリミットタイム値１１８を受信するために待ち（ステップ９０３）、値をキャッシュ２０２に格納する（ステップ９０４、図１も参照）。
【００４１】
次に図２および１０を参照して、マスタリミットタイムスケジュールプロセス１１７を説明する。このプロセスは、リモートディスクシステムがスレーブプロセス１１６のそれぞれからタイムスタンプ１１４を受信した時に起動する。マスタプロセス１１７は、受信されたタイムスタンプから最早タイムスタンプを選択し（ステップ１０００）、選択されたタイムスタンプをリミットタイム１１８として各スレーブプロセス１１６に送る（ステップ１００１）。
【００４２】
次に図２および１１を参照して、Ｒ書込みデータデステージプロセス２１５を説明する。このプロセスは、リモートディスクシステム１０５が、リモートコピーペア１０８に関係する書込みデータ１１３を、そのリモートコピーペア１０８と関係するリモートディスク装置１０７にデステージした時に実行される。リモートディスクシステム１０４は、関係するタイムスタンプ１１４が最も早い候補書込みデータ１１３を選択する（ステップ１１００）。その後それは、選択されたタイムスタンプを、マスタリミットタイムスケジュールプロセス１１７により規定されたリミットタイム１１８と比較する（ステップ１１０１）。選択されたタイムスタンプ１１４がリミットタイム１１８より遅ければ、リモートディスク装置１０５は暫時待機し（ステップ１１０２）、その後、処理をステップ１１００で続ける。選択されたタイムスタンプ１１４がリミットタイム１１８に等しいか、またはそれより早い場合、リモートディスクシステム１０５は、その関係するリモートディスクアドレス２０８および位置決め情報２０９に従って候補書込みデータ１１３をデステージする（すなわち、ディスクに書込む）（ステップ１１０３）。書込みデータならびにその関係するタイムスタンプ、シーケンス番号、リモートディスクアドレス情報２０８および位置決め情報２０９は、キャッシュメモリ２０３から除去される（ステップ１１０４）。
【００４３】
以下の例が役立つであろう。以下を有すると仮定する。
書込みデータＡ、タイムスタンプ１０：００
書込みデータＢ、タイムスタンプ１０：０２
書込みデータＣ、タイムスタンプ１０：０４
リミットタイム：１０：０１
【００４４】
この例において、Ｒ書込みデータデータデステージプロセスは書込みデータＡを選択し、それは最早タイムスタンプ（１０：００）を有する。次に、Ｒ書込みデータデステージプロセスは、そのタイムスタンプ（１０：００）がリミットタイム（１０：０１）より早いので、書込みデータＡをリモートディスク装置１０７へデステージする。書込みデータＡのデステージングの後、書込みデータＢが最早タイムスタンプを有する。しかし、書込みデータＢのタイムスタンプ（１０：０２）よりリミットタイム（１０：０１）が早いので、書込みデータＢはデステージされることができない。書込みデータＢのデステージングは、リミットタイム１１８がスレーブリミットタイムスケジュールプロセス１１６およびマスタリミットタイムスケジュールプロセス１１７によって１０：０２より遅い時刻に更新された後に可能になる（図９および図１０に示す）。
【００４５】
ここで図３を参照して本発明の別の実施形態を説明する。図３のシステム図は、図２に示したものと本質的に同じであるが、以下の相違がある。図３に示す本発明の実施形態では、ローカルディスクシステム１０４と関係づけられている各リモートディスクシステム１０５についてシーケンス番号１１５が存在する。図２では、各リモートコピーペア１０８についてシーケンス番号が存在することを想起されたい。しかし、図３に示す実施形態の場合、ローカルディスクシステム１０４は、少なくとも１個のリモートコピーペア１０８をそのローカルディスクシステムと共有する各リモートディスク１０４システムについて１個のシーケンス番号１１５を有する。従って、図３においてわかる通り、各リモートディスクシステムについて、シーケンスカウンタ３００およびリモートディスクシステムアドレス３０１よりなるデータペアが存在する。従って、ローカルディスクシステムが２個のリモートディスクシステムと関係づけられている場合、ローカルディスクシステムに含まれる２個の当該データペアが存在するはずである。
【００４６】
図３に示す実施形態において、Ｌ書込みデータ受信プロセス２１０は、図２に示す実施形態に関連して説明したものと同じである。
【００４７】
ここで図２および１２を参照して、図３に示す本発明の実施形態についてＬ書込みデータ送信プロセス２１１を説明する。少なくとも１個のリモートコピーペア１０８をこのローカルディスクシステム１０４と共有する各リモートディスク装置について１個のＬ書込みデータ送信プロセス２１１が存在する。ローカルディスクシステム１０４は、対応するリモートディスクシステム１０５に属する書込みデータ１１３の全部から、タイムスタンプ１１４が時間的に最も早く、リモートディスクシステム１０５にまだ送信されていない書込みデータ１１３を選択する（ステップ１２００）。ローカルディスクシステム１０４はその後、そのリモートディスクシステムに対応するシーケンスカウンタ３００の現在値を、選択された書込みデータ１３３（すなわち、関係するタイムスタンプが時間的に最も早い書込みデータ）と関係するシーケンス番号１１５にコピーする。シーケンスカウンタ３００が増分される（ステップ６０１）。次に、選択された書込みデータ１１３ならびにその関係するタイムスタンプ１１４、シーケンス番号１１５、リモートディスクアドレス情報２０８および位置決め情報２０９が、リモートディスクシステム１０５に送信される（ステップ６０２）。プロセスはその後、図６の説明に従って継続する。
【００４８】
図３に示す本発明の実施形態において、Ｌ書込み送信完了プロセス２１２は、図２に示す本発明の実施形態に関連して説明したものと同じである。
【００４９】
図３に示す実施形態において、リモートディスクシステム１０５は、リモートコピーペア１０８をリモートディスクシステム１０５と共有するすべてのローカルディスクシステム１０４について、シーケンスカウンタ３００およびローカルディスクシステムアドレス３０２よりなるデータペアを含む。リモートディスクシステムと関係する各ローカルディスクシステムについて１個の当該データペアが存在する。
【００５０】
リモートコピーペア１０８をローカルディスクシステム１０５と共有するすべてのローカルディスクシステムについてＲ書込みデータ受信プロセス２１４が存在する。図３の実施形態において、Ｒ書込みデータ受信プロセス２１４は、図２に示す実施形態に関連して説明したものと同じである。同様に、マスタリミットタイムスケジュールプロセス１１７およびＲ書込みデータデステージプロセス２１５も図２に示す本発明の実施形態の説明と同じである。
【００５１】
ここで図１３を参照して、図３に示す本発明の実施形態に従ったスレーブリミットタイムスケジュールプロセス１１６を検討する。各リモートディスクシステム１０５について１個のスレーブプロセスが存在する。このプロセスは、以下の相違はあるが、図２の実施形態に関してと本質的に同じである。
【００５２】
少なくとも１個のリモートコピーペア１０８を共有する各ローカルディスクシステム１０４について、スレーブリミットタイムスケジュールプロセス１１６は、そのローカルディスクシステム１０４から受信されたシーケンス番号のリストを検査する（ステップ１３００）。プロセスは、連続であるシーケンス番号１１４の最大シーケンス番号を見つけ、その最大シーケンス番号に対応するタイムスタンプ１１５を返す。これは、タイムスタンプのリストを生成するために、少なくとも１個のリモートコピーペア１０８をリモートディスクシステムと共有する各ローカルディスクシステムについて繰り返される。このタイムスタンプのリスト１１から、最早タイムスタンプが選択され（ステップ９０１）、マスタタイムリミットスケジュールプロセス１１７に送達される（ステップ９０２）。このようにして、各スレーブリミットタイムスケジュールプロセス１１６は、各リモートディスクシステム１０５について１個のそうした最早タイムスタンプを探索する。プロセスはその後、マスタリミットタイムスケジュールプロセス１１７からリミットタイム値１１８を受信するために待機し（ステップ９０３）、値をキャッシュ２０２に格納する（ステップ９０４）。
【００５３】
次に図４を参照して、本発明の別の実施形態を説明する。図４のシステム図は、以下の相違はあるが、図２に関して示したものと本質的に同じである。図４に示す本発明の実施形態において、ローカルディスクシステムは、そのローカルディスクシステム１０４と共通してデータの完全性ペアグループ１０９を有する各リモートディスクシステム１０５について１個のシーケンス番号１１５を有する。例えば、ローカルディスクシステムＸが、関係するデータの完全性ペアグループＺを有するとする。データの完全性ペアグループはさらに、５個のリモートコピーペアグループＲＣＰ１〜ＲＣＰ５よりなる。さらに、リモートコピーペアグループＲＣＰ１およびＲＣＰ２はリモートディスクシステムＡと関係し、リモートコピーペアＲＣＰ３はリモートディスクシステムＢと関係し、ＲＣＰ４およびＲＣＰ５はリモートディスクシステムＣと関係するとみなす。この特定の例において、ローカルディスクシステムＸは、データの完全性ペアグループＺと関係する３個のシーケンス番号を有する。
【００５４】
【表１】
0004066617.tif 000002
【００５５】
図２〜４に示す実施形態の間の相違は、ローカルディスクシステム１０４が７個のローカルディスク装置および２個のリモートディスクシステム１０５を有する、上記の例示的な機器構成に示されている。両矢印はリモートコピーペアを示す。例えば、ローカルディスク装置５およびリモートディスク装置１は、リモートコピーペア１０８を規定する。さらに、実線で描かれたリモートコピーペアは一体で１個のデータの完全性グループを規定するのに対し、破線で描かれたリモートコピーペアは一体で第２のデータの完全性グループを規定する。
【００５６】
従って、図２に示された本発明の実施形態によれば、ローカルディスクシステム１０４はそのディスク装置（合計７個のシーケンス番号）のそれぞれについて関係するシーケンス番号１１４を有するであろう。図４に示す実施形態によれば、ローカルディスクシステム１０４は、ローカルディスクシステム１０５と共通してリモートコピーペアを有する各リモートディスクシステム１０５について１個ずつ、２個の関係するシーケンス番号を有する。図４に示す実施形態によれば、ローカルディスクシステム１０４は、データの完全性ペアグループ１０９をローカルディスクシステム１０４と共有する各リモートディスクシステム１０５について１個ずつ、４個の関係するシーケンス番号１１４を有する。実線で描かれたデータの完全性ペアグループは２個のリモートディスクシステム１０４間で共有され、同様に、破線で描かれたデータの完全性ペアグループは２個のリモートディスクシステム１０４間で共有される。
【００５７】
さらに図４について続ければ、図示の通り、データの完全性ペアグループ１０９によってローカルディスクシステム１０４と関係づけられている各リモートディスクシステム１０５について、データの完全性ペアグループ情報データ構造４００がローカルディスクシステム１０４に存在する。データ構造４００は、データの完全性グループＩＤ４０１および、リモートディスクシステムアドレス４０３およびシーケンスカウンタ４０２よりなる１個以上のデータペアを含む。データの完全性ペアグループ１０９の各リモートディスクシステム１０５について１個の当該データペアが存在する。リモートディスクシステム１０５は、データの完全性ペアグループ１０８によってリモートディスクシステム１０５と関係づけられている各ローカルディスクシステム１０４について類似のデータ構造を備える。
【００５８】
図４に示す本発明の実施形態において、Ｌ書込み送信完了プロセス２１０およびＬ書込み送信完了プロセス２１２は、図２に示す本発明の実施形態に従って動作する。
【００５９】
次に図１４を参照して、図４に示す本発明の実施形態のＬ書込みデータ送信プロセス２１１を説明する。少なくとも１個のデータの完全性ペアグループ１０９をそのローカルディスクシステム１０４と共有する各リモートディスク装置についてＬ書込みデータ送信プロセス２１１が存在する。ローカルディスクシステム１０４は、対応するデータの完全性ペアグループ１０９に属する書込みデータ１１３の全部から、タイムスタンプ１１４が時間的に最も早く、リモートディスクシステム１０５にまだ送信されていない書込みデータ１１３を選択する（ステップ１４００）。ローカルディスクシステムはその後、ターゲットリモートディスクシステムに対応するシーケンスカウンタ４０３の現在値を、選択された書込みデータ１１３（すなわち、関係するタイムスタンプが時間的に最も早い書込みデータ）と関係するシーケンス番号１１５にコピーする。シーケンスカウンタ４０３が増分される（ステップ６０１）。次に、選択された書込みデータ１１３ならびにその関係するタイムスタンプ１１４、シーケンス番号１１５、リモートディスクアドレス情報２０８および位置決め情報２０９が、リモートディスクシステムに送られる（ステップ６０２）。プロセスはその後、図６に関する説明に従って継続する。
【００６０】
図４に示す本発明の実施形態において、Ｒ書込みデータ受信プロセス２１４は、そのリモートディスクシステム１０５と関係するデータの完全性ペアグループ１０９を共有する各ローカルディスク装置１０４と関係づけられている。処理は図８に示すフローチャートに従って進行する。
【００６１】
マスタリミットタイムスケジュールプロセス１１７およびＲ書込みデータデステージプロセス２１５は、図２に示す本発明の実施形態に関する説明と同様にして動作する。
【００６２】
次に図１５を参照して、図４に示す本発明の実施形態に従ったスレーブリミットタイムスケジュールプロセス１１６を検討する。各リモートディスクシステム１０５について１個のスレーブプロセスが存在する。このプロセスは、以下の相違はあるが、図２の実施形態に関してと本質的に同じである。
【００６３】
データの完全性ペアグループによってリモートディスクシステムと関係づけられている各ローカルディスクシステム１０４について、スレーブリミットタイムスケジュールプロセス１１６は、そのローカルディスクシステムから受信されたシーケンス番号のリストを検査する（ステップ１５００）。プロセスは、連続であるシーケンス番号１１４の最大シーケンス番号を見つけ、最大シーケンス番号に対応するタイムスタンプ１１５を返す。これは、タイムスタンプのリストを生成するために、データの完全性ペアグループ１０９によってリモートディスクシステムと関係する各ローカルディスクシステム１０４について繰り返される。タイムスタンプのこのリストから、最早タイムスタンプが選択され（ステップ９０１）、マスタタイムリミットスケジュールプロセス１１７に送達される（ステップ９０２）。このようにして、各スレーブリミットタイムスケジュールプロセス１１６は、各リモートディスクシステム１０５について１個のそうした最早タイムスタンプを探索する。プロセスはその後、マスタリミットタイムスケジュールプロセス１１７からリミットタイム値１１８を受信するために待機し（ステップ９０３）、値をキャッシュ２０２に格納する（ステップ９０４）。
【００６４】
ここで、リモートサイトに磁気テープ（ＭＴ）記憶装置システムが配備された状況における本発明の実施形態の検討のために図１６に話を移す。ローカルコンピュータシステム１６００は、少なくともローカルＨＯＳＴシステム１６０２および、ローカルディスクシステムといった少なくともローカル記憶装置システム１６０４を含む。ローカルコンピュータシステムはスイッチシステム１６０６を含み得る。少なくともリモートＭＴシステム１６０５を含むリモートコンピュータシステム１６０１が存在する。リモートＨＯＳＴシステム１６０３は、必ずしもリモートコンピュータシステム１６０１に存在するわけではない。
【００６５】
ローカルＨＯＳＴシステム１６０１、ローカルディスクシステム１６０４およびスイッチシステム１６０６は、通信路１６１３によってリモートディスクシステム１６０５と接続される。通信路１６１３は、その送信データパケットが必ずしもそれらが送られた順序で着信するわけではないことを特徴とするネットワークである。例えば、ＩＰベースのネットワークはこの振舞いを呈する。本発明のこの実施形態において、読取り／書込みデータの単位をブロックと称する。各ブロックは、自身を識別するために使用されるブロックＩＤを有する。
【００６６】
ローカル記憶装置システム１６０４は、少なくとも１個のローカル記憶装置１６０７および、キャッシュメモリ１６１１を備える記憶制御装置１６０９を有する。リモートＭＴシステム１６０５は、少なくとも１個のリモートＭＴ装置１６０８および、キャッシュメモリ１６１１を備えるＭＴ制御装置１６１０を含む。ローカルＨＯＳＴシステム１６０２はメインメモリ１６１２を有する。スイッチシステム１６０６はキャッシュメモリ１６１１も備える。
【００６７】
図１６に示す本発明の実施形態によれば、リモートＭＴ装置１６０８への読出し要求および書込み要求はそれぞれ、読み出されるデータ１６２４または書込まれるデータ１６２５に伴うシーケンス番号１６１４を含む。
【００６８】
図１６はまた、ローカルＨＯＳＴシステム１６０２、ローカルディスクシステム１６０４、リモートＭＴシステム１６０５およびスイッチシステム１６０６のプロセスも示している。読出し要求発行プロセス１６１５および書込み要求発行プロセス１６１６は、ローカルＨＯＳＴシステム１６０２、ローカルディスクシステム１６０４およびスイッチシステム１６０６において提供される。リモートＭＴシステム１６０５は、読出し要求受信プロセス１６１７および書込み要求受信プロセス１６１８を含む。
【００６９】
読出し要求発行プロセス１６１５の処理は図１７に概説されている。このフローは、ローカルＨＯＳＴシステム１６０２、ローカル記憶装置システム１６０４およびスイッチシステム１６０６の間で共通である。ローカル記憶制御装置１６０９のキャッシュメモリ１６１１に（またはメインメモリ１６１２に）コピーされるシーケンスカウンタ１６２３が、読取り／書込み要求が発行された時に、シーケンス番号１６１４の値を付与する（ステップ１７００）。プロセスはその後、読出し要求をリモートＭＴシステム１６０５に発行する（ステップ１７０１）。プロセスはその後、シーケンスカウンタ１６２３を増分する（ステップ１７０２）。
【００７０】
次に（ステップ１７０３）、読出し要求発行プロセスは、発行された要求の数を確認する。その数が値ｍ未満であれば、処理は、次の要求を発行するためにステップ１７００に継続する。ｍの値は一般に＞２であり、好ましくは経験的に決定される。その目的は、現在の要求の完了前に次の要求を送信することによってより良好な性能を得ることである。
【００７１】
数がｍ未満でなければ、プロセスは、リモートＭＴシステム１６０５からのデータ転送通知を待つ（ステップ１７０４）。読出し要求発行プロセス１６１５がリモートＭＴシステム１６０５からのデータ転送通知を受信すると、それは読出しデータ１６２４およびシーケンス番号１６１４を受信し、シーケンスカウンタ１６２３に従ってそれをキャッシュメモリ１６１１に（またはメインメモリ１６１２に）格納する（ステップ１７０５）。次に、読出し要求発行プロセス１６１５は、リモートＭＴシステム１６０５から全部のデータ転送通知を受信したかどうかを確認する（ステップ１７０６）。否定であれば、プロセスは、データ転送通知を待つためにステップ１７０３に継続する。
【００７２】
書込み要求発行プロセス１６１６の処理は、図１８に示すフローチャートに概説されている。このフローは、ローカルＨＯＳＴシステム１６０２、ローカル記憶装置システム１６０４およびスイッチシステム１６０６間で共通である。書込み要求発行プロセスは、シーケンス番号１６１４に対するシーケンスカウンタ１６２３の内容をキャッシュメモリ１６１１に（またはメインメモリ１６１２に）コピーし（ステップ１８００）、シーケンス番号１６１４および書込みデータ１６２５を伴う書込み要求をリモートＭＴシステム１６０５に発行する（ステップ１８０１）。その後、シーケンスカウンタ１６２３を増分する（ステップ１８０２）。ステップ１８０３において、書込み要求発行プロセス１６１６は、発行された要求の数を確認する。その数が値ｍ未満であれば、次の要求を発行するためにステップ１８００にジャンプする。そうでなければ、プロセスはリモートＭＴシステムからのデータ転送通知を待つ（ステップ１８０４）。書込み要求発行プロセス１６１６がリモートＭＴシステム１６０５から通知を受信すると（ステップ１８０５）、プロセスはリモートＭＴシステム１６０５から全部のデータ転送通知を受信したかどうかを確認する（ステップ１８０６）。否定であれば、データ転送通知を待つためにステップ１８０３にジャンプする。
【００７３】
リモートＭＴシステム１６０５の読出し要求受信プロセス１６１７のフローは、図１９に示す。リモートＭＴシステム１６０５は、ＭＴ制御装置１６１０のキャッシュメモリ１６１１に読出しデータ１６２４を有する。１群の読出しデータ１６２４が、１個のリモートＭＴ装置１６０８から読み出され、ＭＴ待ち行列１６２６に格納される。各待ち行列エントリは、読出しデータ１６２４およびその対応するブロックＩＤ情報１６２７よりなるデータペアである。読出しデータ１６２４およびそのブロックＩＤ情報１６２７は、ブロックＩＤ情報１６２７に従って待ち行列に挿入される。従って、ＭＴ待ち行列１６２６はブロックＩＤ情報１６２７によって順序づけられる。この順序づけは、データブロックが要求側ローカルＨＯＳＴ１６０１に返送されるべき順序を示している。従って、一連の読出し要求は、適切な順番で受信されていれば、単に各データブロックを、それらがＭＴ待ち行列１６２６に存在する順序で送ることによって満たされるであろう。
【００７４】
待ち行列１６２６は、二重連係データ構造である。それゆえ、各待ち行列エントリはさらに、次のブロックＩＤ情報１６２７を含む待ち行列エントリをポイントする正方向ポインタ１６３０および、以前のブロックＩＤ情報１６２７を含む待ち行列エントリをポイントする逆方向ポインタ１６３１を含む。ヘッドポインタ１６２８がＭＴ待ち行列１６２６の先頭をポイントし、テールポインタ１６２９がＭＴ待ち行列１６２６の末尾をポイントする。次のシーケンス番号カウンタ１６３２は、次の読出し要求によりアクセスされるべき読出しデータ１６２４に対応するシーケンス番号１６１４を含む。それゆえ、カウンタ１６３２の現在値は、ＭＴ待ち行列の先頭のデータブロックに対応する。
【００７５】
動作時、読出し要求受信プロセス１６１７は、ローカルＨＯＳＴ１６０１からシーケンス番号１６１４とともに読出し要求を受信する（ステップ１９００）。読出し要求受信プロセスは、受信されたシーケンス番号１６１４を次のシーケンス番号カウンタ１６３２と比較する（ステップ１９０１）。それが等しい場合、プロセスは、受信されたシーケンス番号１６１４および、（ヘッドポインタ１６２８によってポイントされる）ＭＴ待ち行列１６２６の先頭の読出しデータ１６２４を、受信されたシーケンス番号１６１４とともに、読出し要求発行プロセス１６１５へ送る（ステップ１９０２）。シーケンス番号カウンタ１６３２はその後更新され、ＭＴ待ち行列の次の読出しデータ１６２４のブロックＩＤ情報１６２７を参照する（ステップ１９０３）。プロセスはその後ステップ１９０７に継続する。
【００７６】
受信されたシーケンス番号が次のシーケンス番号カウンタ１６３２と等しくない場合、それは、乱順の読出し要求が受信されたことを意味する。ステップ１９０４において、読出し要求受信プロセス１６１７は、要求されている読出しデータのブロックＩＤ情報１６２７を計算する。詳細には、読出し要求受信プロセスは、次のシーケンス番号カウンタ１６３２と受信されたシーケンス番号１６１４との間の差Ｄを取得し、その差ＤをＭＴ待ち行列１６２６の先頭の読出しデータ１６２４のブロックＩＤ情報Ｂに加算する。すなわち、Ｂ＋Ｄは見つけるべきブロックＩＤ情報１６２７である。ステップ１９０５において、読出し要求受信プロセスは、ブロックＩＤ情報１６２７がＢ＋Ｄである待ち行列エントリを探索する。待ち行列１６２６のそのエントリにある読出しデータ１６２４は、受信されたシーケンス番号１６１４とともに、読出し要求発行プロセス１６１５に送られる（ステップ１９０６）。処理はステップ１９０７に続く。
【００７７】
ステップ１９０７において、読出し要求受信プロセス１６１７は、送信された読出しデータ１６２４に対応する待ち行列エントリを削除する。このように、シーケンス番号１６１４を使用することによって、リモートＭＴシステム１６０５は、たとえ読出し要求が通信路１６１３の性質のため乱順になった場合でも間違いなくアクセスされた読出しデータ１６２４を認識することができる。図１７に戻って言えば、受信データは、受信されたシーケンス番号１６１４に従って組み立てられる。従って、リモートシステムにおける読出し要求が乱順になった場合、シーケンス番号は、それらが正しい順序で満たされるように保証する。同様に、ローカルシステムにおいて受信データが乱順になった場合も、それはシーケンス番号１６１４により正しく組み立てられる。
【００７８】
リモートＭＴシステム１６０５における書込み要求受信プロセス１６１８のフローは、図２０に示す。書込まれるデータのＭＴ待ち行列１６２６の構造は、読出しデータ１６２４のそれと同じである。書込みデータ１６２５の場合、ＭＴ装置１６０５の次のシーケンス番号カウンタ１６３２は、テールポインタ１６２９によってポイントされる書込みデータのシーケンス番号１６１４よりも１だけ大きい。
【００７９】
リモートコンピュータにおける書込み要求受信プロセス１６１８は、シーケンス番号１６１４および書込みデータ１６２５を伴う書込み要求を受信し、書込みデータをキャッシュメモリ１６１１に格納する（ステップ２０００）。次に、書込み要求受信プロセス１６１８は、シーケンス番号１６１４が次のシーケンス番号カウンタ１６３２と等しいかまたはそれより大きいかどうかを確認する（ステップ２００１）。等しければ、それは対応する書込みＭＴ待ち行列１６２６の末尾の受信された書込みデータ１６２５を挿入し、従ってＭＴ待ち行列の情報を更新する（ステップ２００２）。プロセスはその後、受信された書込みデータ１６２５のブロックＩＤを計算し、それをブロックＩＤ情報１６２７に格納する（ステップ２００３）。その後、Ｄ２（シーケンス番号１６１４と次のシーケンス番号カウンタ１６３２との差）＋１を次のシーケンス番号カウンタ１６３２に加算し（ステップ２００４）、ステップ２００９にジャンプする。
【００８０】
受信されたシーケンス番号が次のシーケンス番号カウンタ１６３２より小さい場合、プロセスは、次のシーケンス番号カウンタ１６３２と受信されたシーケンス番号１６１４との差を計算する（ステップ２００５）。プロセスは、書込みデータ１６２４を挿入するためのＭＴ待ち行列１６２６の位置を見つけ、従ってＭＴ待ち行列の情報を更新する（ステップ２００７）。その後プロセスは、受信された書込みデータ１６２５のブロックＩＤを計算し、それをブロックＩＤ情報１６２７に格納する（ステップ２００８）。次に、書込み要求受信プロセスは書込み要求の完了を通知し、受信されたシーケンス番号１６１４を書込み要求発行プロセス１６１６に返送する（ステップ２００９）。このようにして、シーケンス番号１６１４を使用することによって、リモートＭＴシステム１６０５はやはり、たとえ書込み要求が通信路１６１３のために乱順になった場合でも間違いなく書込みデータ１６２５のブロックＩＤを認識することができる。
【００８１】
図２１は、ＭＴ記憶装置システムに関する本発明の別の実施形態を示す。本発明のこの実施形態は、図１６に示す実施形態と本質的に同じである。相違は、乱順の発生を検出し、当該発生を訂正するために、図１６において使用されたシーケンス番号１６１４の代わりに次のブロックＩＤ情報１７００、１７０１を使用することである。
【００８２】
【発明の効果】
本発明によれば、信頼できるＩＰベースのデータ回復システムを提供することができる。
【図面の簡単な説明】
【図１】本発明の一般化したシステム図である。
【図２】シーケンス番号がリモートコピーペアごとに割り当てられる本発明の１実施形態の一般化したブロック図である。
【図３】シーケンス番号がリモートディスクシステムごとに維持される本発明の別の実施形態の一般化したブロック図である。
【図４】シーケンス番号がデータの完全性ペアグループごとに管理される本発明の別の実施形態の一般化したブロック図である。
【図５】本発明の１実施形態に従ったプロセスフローを概説する。
【図６】本発明の１実施形態に従ったプロセスフローを概説する。
【図７】本発明の１実施形態に従ったプロセスフローを概説する。
【図８】本発明の１実施形態に従ったプロセスフローを概説する。
【図９】本発明の１実施形態に従ったプロセスフローを概説する。
【図１０】本発明の１実施形態に従ったプロセスフローを概説する。
【図１１】本発明の１実施形態に従ったプロセスフローを概説する。
【図１２】図６に示すプロセスフローの代替実施形態を示す。
【図１３】図９に示すプロセスフローの代替実施形態を示す。
【図１４】図６に示すプロセスフローの別の代替実施形態を示す。
【図１５】図９に示すプロセスフローの別の代替実施形態を示す。
【図１６】本発明の磁気テープ記憶装置システムの実施形態を示す。
【図１７】磁気テープ記憶装置システムによる本発明の実施形態におけるプロセスフローを示す。
【図１８】磁気テープ記憶装置システムによる本発明の実施形態におけるプロセスフローを示す。
【図１９】磁気テープ記憶装置システムによる本発明の実施形態におけるプロセスフローを示す。
【図２０】磁気テープ記憶装置システムによる本発明の実施形態におけるプロセスフローを示す。
【図２１】本発明の別の磁気テープ実施形態である。
【符号の説明】
１００…ローカルコンピュータシステム、１０１…リモートコンピュータシステム、１０２…ローカルＨＯＳＴシステム、１０３…リモートＨＯＳＴシステム、１０４…ローカルディスクシステム、１０５…リモートディスクシステム、１０６…ローカルディスク装置、１０７…リモートディスク装置、１０８…リモートコピーペア、１０９…データの完全性ペアグループ、２００…ローカルディスク制御装置、２０１…リモートディスク制御装置、２０２…キャッシュメモリ、４０２…シーケンスカウンタ、１６０５…リモートＭＴシステム、１６０６…スイッチシステム、１６０８…リモートＭＴ装置、１６１０…ＭＴ制御装置、１６１２…メインメモリ。
【図１】
0004066617.tif 000003
【図２】
0004066617.tif 000004
【図３】
0004066617.tif 000005
【図４】
0004066617.tif 000006
【図５】
0004066617.tif 000007
【図６】
0004066617.tif 000008
【図７】
0004066617.tif 000009
【図８】
0004066617.tif 000010
【図９】
0004066617.tif 000011
【図１０】
0004066617.tif 000012
【図１１】
0004066617.tif 000013
【図１２】
0004066617.tif 000014
【図１３】
0004066617.tif 000015
【図１４】
0004066617.tif 000016
【図１５】
0004066617.tif 000017
【図１６】
0004066617.tif 000018
【図１７】
0004066617.tif 000019
【図１８】
0004066617.tif 000020
【図１９】
0004066617.tif 000021
【図２０】
0004066617.tif 000022
【図２１】
0004066617.tif 000023