(57)【特許請求の範囲】
【請求項１】
磁気ディスク装置と該磁気ディスク装置を制御する磁気ディスク制御装置とを有する正センタおよび副センタをそなえ、該正センタ側磁気ディスク制御装置と該副センタ側磁気ディスク制御装置との間を複数本の通信回線により接続してなるリモートシステムにおいて、該複数本の通信回線を通じて該正センタ側磁気ディスク制御装置から該副センタ側磁気ディスク制御装置へデータ転送を行なうためのリモート転送方法であって、
複数のトラックを、その順序性を保証しながら、該正センタ側磁気ディスク制御装置から該副センタ側磁気ディスク制御装置へ連続的に転送する順序性保証モードが正センタ側ホストにより指定されている場合、
該正センタ側磁気ディスク制御装置は、該正センタ側ホストからの同一の入出力要求によって転送される複数のトラックには同一の識別番号と該正センタ側ホストからの送出順に対応したシリアル番号とを付与し、前記の識別番号およびシリアル番号を付与された当該複数のトラックを該複数本の通信回線により同時に該副センタ側磁気ディスク制御装置に転送し、
該副センタ側磁気ディスク制御装置は、
該正センタ側から転送され該副センタ側で書き込まれたトラックに付与された識別番号と、その識別番号を有し且つ最後に該副センタ側で書き込まれたトラックに付与されたシリアル番号ＬＳＮとを対応させて保持する順序性管理テーブルをそなえ、
該正センタ側から新たなトラックが転送されてくると、当該トラックに付与されているシリアル番号ＳＮと、該順序性管理テーブルに保持されている、当該トラックに付与された識別番号に対応する前記シリアル番号ＬＳＮとを比較し、
ＳＮ≠ＬＳＮ＋１である場合、他のトラックの書込によって該順序性管理テーブルの前記シリアル番号ＬＳＮが更新されてＳＮ＝ＬＳＮ＋１となるまで、当該トラックに対して書込許可を与えないで当該トラックを待機させる一方、
ＳＮ＝ＬＳＮ＋１である場合、当該トラックに対して書込許可を与え、当該トラックの該副センタ側磁気ディスク装置への書込を完了した時点で該順序性管理テーブルの前記シリアル番号ＬＳＮとして当該トラックの前記シリアル番号ＬＳＮを登録・更新するとともに、
あるトラックの転送時に回線障害により転送エラーが発生した場合、
該正センタ側磁気ディスク制御装置は、
該複数の通信回線のうち他に未使用の通信回線が存在するか否かを確認し、
未使用の通信回線が存在する場合、その未使用の通信回線を使用して、転送エラーを生じた当該トラックの転送を行なう一方、
未使用の通信回線が存在しない場合、現在転送中のトラックに付与されているシリアル番号の中に、転送エラーを生じた当該トラックに付与されているシリアル番号よりも大きいシリアル番号が存在するか否かを判断し、
該当するシリアル番号が存在しない場合、使用中の通信回線が解放されるまで転送エラーを生じた当該トラックの転送を待機させる一方、
該当するシリアル番号が存在する場合、該当するシリアル番号を有するトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して、転送エラーを生じた当該トラックの転送を行なうことを特徴とする、磁気ディスク制御装置によるリモート転送方法。
【請求項２】
該順序性管理テーブルが、該副センタ側磁気ディスク制御装置内の資源を管理／制御するリソースモジュールによって管理されていることを特徴とする、請求項１記載の磁気ディスク制御装置によるリモート転送方法。
【請求項３】
該順序性管理テーブルが、当該トラックを該副センタ側磁気ディスク装置へ書き込む前に一時的に書き込むためのキャッシュメモリ上にそなえられていることを特徴とする、請求項１記載の磁気ディスク制御装置によるリモート転送方法。
【請求項４】
磁気ディスク装置と該磁気ディスク装置を制御する磁気ディスク制御装置とを有する正センタおよび副センタをそなえ、該正センタ側磁気ディスク制御装置と該副センタ側磁気ディスク制御装置との間を複数本の通信回線により接続してなるリモートシステムにおいて、該複数本の通信回線を通じて該正センタ側磁気ディスク制御装置から該副センタ側磁気ディスク制御装置へデータ転送を行なうためのリモート転送方法であって、
複数のトラックを、その順序性を保証しながら、該正センタ側磁気ディスク制御装置から該副センタ側磁気ディスク制御装置へ連続的に転送する順序性保証モードが正センタ側ホストにより指定されている場合、
該正センタ側磁気ディスク制御装置は、該正センタ側ホストからの同一の入出力要求によって転送される複数のトラックには同一の識別番号と該正センタ側ホストからの送出順に対応したシリアル番号とを付与し、前記の識別番号およびシリアル番号を付与された当該複数のトラックを該複数本の通信回線により同時に該副センタ側磁気ディスク制御装置に転送し、
あるトラックの転送時に回線障害により転送エラーが発生した場合、
該正センタ側磁気ディスク制御装置は、
該複数の通信回線のうち他に未使用の通信回線が存在するか否かを確認し、
未使用の通信回線が存在する場合、その未使用の通信回線を使用して、転送エラーを生じた当該トラックの転送を行なう一方、
未使用の通信回線が存在しない場合、現在転送中のトラックに付与されているシリアル番号の中に、転送エラーを生じた当該トラックに付与されているシリアル番号よりも大きいシリアル番号が存在するか否かを判断し、
該当するシリアル番号が存在しない場合、使用中の通信回線が解放されるまで転送エラーを生じた当該トラックの転送を待機させる一方、
該当するシリアル番号が存在する場合、該当するシリアル番号を有するトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して、転送エラーを生じた当該トラックの転送を行なうことを特徴とする、磁気ディスク制御装置によるリモート転送方法。
【発明の詳細な説明】
【０００１】
（目次）
発明の属する技術分野
従来の技術（図１６〜図１８）
発明が解決しようとする課題（図１９〜図２５）
課題を解決するための手段
発明の実施の形態
〔Ａ〕第１実施形態の説明（図１〜図６）
〔Ｂ〕第２実施形態の説明（図７〜図１０）
〔Ｃ〕第３実施形態の説明（図１１，図１２）
〔Ｄ〕第４実施形態の説明（図１３〜図１５）
〔Ｅ〕その他
発明の効果
【０００２】
【発明の属する技術分野】
一般に、本来の業務を行なう正センタ（業務システム）の設置場所とは別の場所（遠隔地）に副センタ（バックアップシステム）を設置し正センタの業務を副センタによりバックアップ可能に構成したシステムでは、各センタに、リモート転送機能を有する磁気ディスク制御装置〔以下、リモートＦＣＵ（Ｆｉｌｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）という〕がそなえられている。
【０００３】
本発明は、上述したリモートＦＣＵにより正センタ側から副センタ側へリモート転送を行なう際に、転送データ（トラック）の順序性を保証する機能を実現するためのリモート転送方法に関する。
【０００４】
【従来の技術】
近年、本来の業務を行なう正センタ（業務システム）の動作が地震等の災害や突発的な故障により停止した場合にそなえ、図１６に示すように、正センタ１Ａの設置場所とは別の遠隔地に副センタ（バックアップシステム）１Ｂを設置することが一般的になっている。
【０００５】
このように、遠隔地における副センタ１Ｂにより正センタ１Ａの業務をバックアップ可能にしたシステムの構成について、図１６を参照しながら説明する。なお、図１６において、正センタ１Ａと副センタ１Ｂとで同じ機能を果たす構成要素には同じ数字を符号として付与し、また、正センタ１Ａに属する構成要素を示す符号には“Ａ”を付し、副センタ１Ｂに属する構成要素を示す符号には“Ｂ”を付している。
【０００６】
正センタ１Ａは、ホスト（ＣＰＵ）２Ａ，磁気ディスク制御装置（以下、ＦＣＵという）３Ａ，磁気ディスク装置（ボリューム）４Ａおよびアダプタ５Ａを有して構成されている。ホスト２Ａは、本来の業務のための処理を行なうもので、アダプタ５Ａを介して通信回線６に接続されている。ＦＣＵ３Ａは、ホスト２Ａと磁気ディスク装置４Ａとの間に介装され、ホスト２Ａからの入出力信号（以下、単にＩ／Ｏと呼ぶ場合がある）に応じて磁気ディスク装置４Ａに対する書込／読出制御を行なうものである。
【０００７】
副センタ１Ｂも、正センタ１Ａと同様、ホスト（ＣＰＵ）２Ｂ，ＦＣＵ３Ｂ，磁気ディスク装置（ボリューム）４Ｂおよびアダプタ５Ｂを有して構成されている。ホスト２Ｂは、バックアップ時に正センタ１Ａから業務のための処理を引き継いで行なうもので、アダプタ５Ｂを介して通信回線６に接続されている。ＦＣＵ３Ｂは、ホスト２Ｂと磁気ディスク装置４Ｂとの間に介装され、ホスト２Ｂからの入出力信号に応じて磁気ディスク装置４Ｂに対する書込／読出制御を行なうものである。
【０００８】
そして、正センタ１Ａにおいて、業務の実行に伴い磁気ディスク装置４Ａのデータが変更された場合には、変更されたデータについての情報が、ホスト２Ａおよびアダプタ５Ａを通じて通信回線６へ送り出され、この通信回線６を介して副センタ１Ｂへ送信される。その情報は、副センタ１Ｂにおいて、通信回線６からアダプタ５Ｂを通じてホスト２Ｂで受信され、このホスト２Ｂは、ＦＣＵ３Ｂに対してＩ／Ｏを出力することにより、磁気ディスク装置４Ｂのデータに対して正センタ１Ａの磁気ディスク装置４Ａのデータと同一の変更を施す。これにより、正センタ１Ａの磁気ディスク装置４Ａと副センタ１Ｂの磁気ディスク装置４Ｂとには常に同じデータが保持される。つまり、常時、副センタ１Ｂの磁気ディスク装置４Ｂには、正センタ１Ａの磁気ディスク装置４Ａと等価なボリューム（リモートシャドウボリューム）が構築される。
【０００９】
従って、万一、正センタ１Ａまたは副センタ１Ｂのいずれか一方の動作が地震等の災害や突発的な故障によって停止した場合、動作停止を免れた他方のセンタ１Ｂまたは１Ａにはデータが保持されることになるので、他方のセンタ１Ｂまたは１Ａは、直ちに動作停止したセンタ１Ａまたは１Ｂの動作を引き継いで行ない、業務をバックアップすることができる。
【００１０】
しかしながら、ホスト２Ａは本来の業務のための処理を行なっており元々負荷が大きいため、上述のように正センタ１Ａのホスト２Ａが副センタ１Ｂへのデータ転送を行なう場合、あまり大きなデータを転送できず効率のよい転送を行なうことができなかった。
そこで、正センタ１Ａおよび副センタ１Ｂのそれぞれにおいて、図１６に示すＦＣＵ３Ａおよび３Ｂに代え、図１７に示すように、リモート転送機能を有するＦＣＵ（以下、リモートＦＣＵという）１０Ａおよび１０Ｂをそなえ、これらのリモートＦＣＵ１０Ａ，１０Ｂの間を通信回線６により接続したリモートシステムが提案され用いられている。このリモートシステムでは、正センタ１Ａから副センタ１Ｂへのデータ転送（リモート転送）が、リモートＦＣＵ１０Ａによって行なわれるので、ホスト２Ａの負荷が分散され、データ転送を効率よく行なえるようになる。
【００１１】
なお、リモートＦＣＵ１０Ａ，１０Ｂ間を接続する通信回線６としては例えば高速ディジタル回線やＡＴＭ回線が用いられる。また、ホスト２Ａ，２ＢとリモートＦＣＵ１０Ａ，１０Ｂとの間はチャネルインタフェースにより接続されるほか、リモートＦＣＵ１０Ａ，１０Ｂと磁気ディスク装置（ボリューム）４Ａ，４Ｂとの間はＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）インタフェースあるいはＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）インタフェースにより接続される。
【００１２】
上述したリモートＦＣＵ１０Ａ，１０Ｂの構成を、図１８により説明する。この図１８に示すように、リモートＦＣＵ１０Ａ，１０Ｂのそれぞれは、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１１，ＲＭ（Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ）１２，ＴＳ（Ｔａｂｌｅ  Ｓｔｏｒａｇｅ）１３，ＲＡ（Ｒｅｍｏｒｔ  Ａｄａｐｔｅｒ）１４，ＣＦＥ（Ｃａｃｈｅ  Ｆｕｎｃｔｉｏｎ  Ｅｎｇｉｎｅ）１５，ＳＳ（Ｓｈａｒｅｄ  Ｓｔｏｒａｇｅ）１６，ＤＡ（Ｄｅｖｉｃｅ  Ａｄａｐｔｅｒ）１７およびＣ−ＢＵＳ（Ｃｏｎｔｒｏｌ−ＢＵＳ）１８を有して構成されている。
【００１３】
ここで、ＣＡ１１は、ホスト２Ａ，２Ｂとの外部インタフェース制御を担当するモジュールであり、ＲＭ１２は、基本動作に関する、リモートＦＣＵ１０Ａ，１０Ｂ内における資源の管理／制御を担当するモジュールであり、ＴＳ１３は、ＲＭ１２に付設され、リモートＦＣＵ１０Ａ，１０Ｂ内の資源管理用のテーブルとして使用されるメモリである。
【００１４】
ＲＡ１４は、回線制御装置（図示省略）を使用し、通信回線６を介して他のリモートＦＣＵ１０Ａまたは１０Ｂとの間のデータの転送を担当する回線通信モジュールであり、ＣＦＥ１５は、ＳＳ１６におけるキャッシュメモリ１６ａ（図１７参照）の管理を担当するモジュールである。ここでは、キャッシュメモリ１６ａなどを含む共用メモリ部を総称してＳＳ（符号１６）と呼んでいる。なお、通常、各リモートＦＣＵ１０Ａ，１０Ｂには複数個（例えば２個〜８個）のＲＡ１４が搭載されており、正センタ１Ａと副センタ１Ｂとの間は複数本（例えば２本〜８本）の回線が敷設されている。ただし、図１７ではＲＡ１４および通信回線６はそれぞれ１つだけ図示されている。
【００１５】
ＤＡ１７は、下位装置である磁気ディスク装置（ボリューム）４Ａ，４Ｂとのインタフェース制御を担当するモジュールであり、Ｃ−ＢＵＳ１８は、上述した各機能モジュール（符号１１〜１７）が互いにコミュニケーションを行なうためのルートで、モジュール間の制御情報の送受信に使用されるものである。
上述のごとく構成されたリモートシステムでのデータの流れについて、図１７を参照しながら説明する。
【００１６】
図１７に示すように、リモートＦＣＵ１０Ａ内のＲＡ１４は、通信回線６を介し、遠隔地にある副センタ１ＢにおけるリモートＦＣＵ１０Ｂ内のＲＡ１４に接続されており、正センタ１Ａ内では、ホスト２Ａからのデータは、リモートＦＣＵ１０ＡのＣＡ１１により受け取られて、一旦、ＳＳ１６上のキャッシュメモリ１６ａに書き込まれる。
【００１７】
そして、キャッシュメモリ１６ａに書き込まれたデータ（トラック）は、ＲＡ１４により複数のパケットに分割されて副センタ１Ｂ側のリモートＦＣＵ１０Ｂに転送される。また、正センタ１Ａにおいて、キャッシュメモリ１６ａから磁気ディスク装置４Ａへの書込は、リモートＦＣＵ１０ＡのＤＡ１７により適当なタイミングで実行される。
【００１８】
一方、副センタ１Ｂ内では、正センタ１Ａ側のリモートＦＣＵ１０Ａからのデータは、リモートＦＣＵ１０ＢのＲＡ１４により受け取られて、一旦、ＳＳ１６上のキャッシュメモリ１６ａに書き込まれる。そして、キャッシュメモリ１６ａに書き込まれたデータ（トラック）は、ＤＡ１７により適当なタイミングで磁気ディスク装置４Ｂに書き込まれる。
【００１９】
【発明が解決しようとする課題】
ところで、正センタ１Ａ側のホスト２Ａは、リモートＦＣＵ１０Ａに対してＩ／Ｏを発行する際、順序性保証モードを指定することにより、リモートＦＣＵ１０Ａに、順序性を保証したデータ書込／転送を行なわせることができる。
ここで、順序性を保証したデータ書込／転送とは、正センタ１Ａ側において、ホスト２ＡからリモートＦＣＵ１０Ａに対しトラックＴ１，Ｔ２，Ｔ３の順で書込／転送すべきデータを送った場合、正センタ１Ａ側の磁気ディスク装置４Ａおよび副センタ１Ｂ側のリモートＦＣＵ１０Ｂにも全く同じ順番でデータ（トラックＴ１，Ｔ２，Ｔ３）の書込／転送を行なうことである。
【００２０】
正センタ１Ａ側のホスト２Ａが上述のような順序性保証モードを指定した時、正センタ１Ａ側において、ホスト２ＡからリモートＦＣＵ１０Ａへ送られるデータの順序性、および、リモートＦＣＵ１０Ａから磁気ディスク装置４Ａへ送られるデータの順序性は、制御上、必ず保証される。
しかし、副センタ１Ｂ側において、リモートＦＣＵ１０Ｂは、正センタ１Ａ側からのトラックをその到着順に磁気ディスク装置４Ｂに書き込んでいるため、順序性が損なわれる可能性がある（即ち、磁気ディスク装置４Ｂに書き込まれるトラックの順序が、正センタ１Ａ側のホスト２Ａから送出されたデータの順序と異なってしまうおそれがある）。
【００２１】
以下に、順序性が保たれているデータ書込／転送と、保たれていないデータ書込／転送と、順序性を保証した転送機能の必要性とについて、図１９〜図２５を参照しながら説明する。
まず、順序性が保たれているデータ書込／転送について、図１９および図２０により説明する。ここで、図１９は、順序性が保たれているデータ書込／転送を説明するための図、図２０は、順序性が保たれているデータ書込／転送を、時間軸および図１９中の▲１▼〜▲４▼に対応させて説明するためのフローチャートである。なお、図１９中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００２２】
ただし、図１９に示すリモートシステムでは、正センタ１Ａ側のリモートＦＣＵ１０Ａと副センタ１Ｂ側のリモートＦＣＵ１０Ｂとの間が２本の通信回線６−１，６−２により接続されている。つまり、リモートＦＣＵ１０Ａに２個のＲＡ１４（以下それぞれＲＡ０１，ＲＡ０２として区別し表記する）が搭載されるとともに、リモートＦＣＵ１０Ｂにも２個のＲＡ１４（以下それぞれＲＡ０３，ＲＡ０４として区別／表記する）が搭載され、ＲＡ０１とＲＡ０３との間が通信回線６−１により接続され、ＲＡ０２とＲＡ０４との間が通信回線６−２により接続されている。
【００２３】
図１９および図２０に示すように、正センタ１Ａ側において、ホスト２Ａは、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、トラックＴ１およびＴ２を、順次、書き込む（▲１▼および▲３▼参照）。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
そして、リモートＦＣＵ１０Ａは、ＲＡ０１により、先にキャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲２▼参照）。
【００２４】
これに引き続いて、リモートＦＣＵ１０Ａは、次にキャッシュメモリ１６ａに書き込まれたトラックＴ２を転送するが、このとき、通信回線６−１（ＲＡ０１／ＲＡ０３パス）が使用中であることから、ＲＡ０２により、トラックＴ２を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲４▼参照）。
【００２５】
このように、図１９および図２０に示したデータ転送例では、トラックＴ１，Ｔ２は、ホスト２Ａから送り出された順序のまま、リモートＦＣＵ１０ＡからリモートＦＣＵ１０Ｂへ転送されるので、副センタ１Ｂ側では、その順序性を保持した状態でトラックＴ１，Ｔ２が磁気ディスク装置４Ｂに書き込まれることになる。
【００２６】
一方、順序性が保たれていないデータ書込／転送について、図２１および図２２により説明する。ここで、図２１は、順序性が保たれていないデータ書込／転送を説明するための図、図２２は、順序性が保たれていないデータ書込／転送を、時間軸および図２１中の▲１▼〜▲５▼に対応させて説明するためのフローチャートである。なお、図２１中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００２７】
図２１および図２２に示すように、正センタ１Ａ側において、ホスト２Ａは、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、トラックＴ１およびＴ２を、順次、書き込む（▲１▼および▲３▼参照）。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
そして、リモートＦＣＵ１０Ａは、ＲＡ０１により、先にキャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０ＢへのトラックＴ１の転送を開始する（▲２▼参照）。
【００２８】
これに引き続き、リモートＦＣＵ１０Ａは、次にキャッシュメモリ１６ａに書き込まれたトラックＴ２を転送するが、このとき、通信回線６−１（ＲＡ０１／ＲＡ０３パス）が使用中であることから、ＲＡ０２により、トラックＴ２を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲４▼参照）。
【００２９】
このようにＲＡ０１およびＲＡ０２がいずれも転送を行なっている際に、通信回線６−１上の故障等によりトラックＴ１の転送に失敗すると、リモートＦＣＵ１０Ａは、ＲＡ０２により、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用してトラックＴ１の転送を試みようとするが、この時点では、通信回線６−２（ＲＡ０２／ＲＡ０４パス）はトラックＴ２を転送するために使用されているため、その転送（▲４▼）が完了するまで、トラックＴ１の転送は待たされることになる。そして、ＲＡ０２によるトラックＴ２の転送が完了すると、ＲＡ０２により、トラックＴ１を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲５▼参照）。
【００３０】
このように、図２１および図２２に示したデータ転送例では、転送エラーの発生により、副センタ１Ｂ側のリモートＦＣＵ１０Ｂのトラック到着順序（つまりは磁気ディスク装置４Ｂへの書込順序）が、正センタ１Ａ側でのトラック送出順序と異なってしまい、順序性が損なわれる。具体的には、トラックＴ１，Ｔ２の順序で送出されたものが、トラックＴ２，Ｔ１の順序でリモートＦＣＵ１０Ｂに到着して磁気ディスク装置４Ｂに書き込まれることになる。
【００３１】
次に、順序性を保証した転送機能の必要性について、図２３〜図２５により説明する。ここで、図２３（ａ）および図２３（ｂ）は、それぞれ、順序性を保証しながら転送されるべき２つのトラックＴ１，Ｔ２の具体例を示す図、図２４は、図２３（ａ）および図２３（ｂ）にそれぞれ示す２つのトラックＴ１，Ｔ２が順序性を保証されながら転送された時の副センタ１Ｂ側のリモートＦＣＵ１０Ｂの動作を説明するための図、図２５は、図２３（ａ）および図２３（ｂ）にそれぞれ示す２つのトラックＴ１，Ｔ２の転送順序が逆になった時の副センタ１Ｂ側のリモートＦＣＵ１０Ｂの動作を説明するための図である。
【００３２】
順序性保証機能が必要になるのは、例えば、複数のデータブロックを１回のＩ／Ｏ〔ホスト２Ａからの一度のＳＩＯ（Ｓｔａｒｔ  Ｉ／Ｏ）要求〕で転送処理するケースである。
正センタ１Ａ側から副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ多数のデータブロックを１回のＩ／Ｏで転送する際、転送すべきデータブロックを１つのレコードの容量だけでは転送できないために、複数のトラックに分割されて転送される場合がある。例えば、図２３（ａ）に示すように、後続する各データブロックを管理するインデックスを含むデータブロックＤＢ１と、更新データを含む多数のデータブロックＤＢ２，…，ＤＢｍとが転送され、図２３（ｂ）に示すように、トラックＴ２により、更新データを含むデータブロックＤＢ（ｍ＋１），…とが転送される場合がある。
【００３３】
このとき、データブロックＤＢｍとＤＢ（ｍ＋１）とに１組の更新データが含まれている場合、先のデータブロックＤＢｍにリカバリフラグのオン／オフがセットされる。このリカバリフラグの役割と、２つのトラックＴ１，Ｔ２が順序性を保証されながら転送された時の副センタ１Ｂ側のリモートＦＣＵ１０Ｂの動作とについて、図２４を参照しながら説明する。
【００３４】
２つのトラックＴ１，Ｔ２が順序性を保証されながら転送された時、副センタ１Ｂ側のリモートＦＣＵ１０Ｂでは、図２４に示すように、トラックＴ１により転送されてきたデータブロックＤＢｍからリカバリフラグおよび更新データを書き出してから（▲１▼参照）、後続のトラックＴ２により転送されてきたデータブロックＤＢ（ｍ＋１）から、データブロックＤＢｍの更新データと組になる更新データを書き出す（▲２▼参照）。この後、データブロックＤＢ（ｍ＋１）を管理するポインタを、データブロックＤＢ１のインデックスに書き出す（▲３▼参照）。
【００３５】
ここで、データブロックＤＢｍのリカバリフラグをオンにセットしておけば、図２４に示す動作▲２▼と▲３▼との間でシステムダウンが発生した場合でも、データブロックＤＢ（ｍ＋１）を書き出した状態に進むことができる。即ち、データブロックＤＢ１からデータブロックＤＢ（ｍ＋１）へのポインタを張ることにより、ディスクの内容を復元することができる。
【００３６】
これに対し、転送エラーの発生等に伴い２つのトラックＴ１，Ｔ２の転送順序が逆になった時、副センタ１Ｂ側のリモートＦＣＵ１０Ｂでは、図２５に示すように、まず、トラックＴ２により先に転送されてきたデータブロックＤＢ（ｍ＋１）から、データブロックＤＢｍの更新データと組になる更新データを書き出してから（▲２▼参照）、次にトラックＴ１により転送されてきたデータブロックＤＢｍからリカバリフラグおよび更新データを書き出すことになる（▲１▼参照）。この後、データブロックＤＢ（ｍ＋１）を管理するポインタを、データブロックＤＢ１のインデックスに書き出す（▲３▼参照）。
【００３７】
このとき、万一、図２５に示す動作▲２▼と▲１▼との間でシステムダウンが発生した場合には、その時点でトラックＴ１で転送されるデータブロックｍに含まれるリカバリフラグは未到着であるため、リカバリフラグがオフとして扱われる。つまり、リモートＦＣＵ１０Ｂにおいてリカバリ処理は必要ないものと判断され、データブロックＤＢ（ｍ＋１）へのインデックスは何も更新されない。従って、データブロックＤＢ（ｍ＋１）の領域はデータが存在しない領域であると判断され、その後のデータ処理で、データブロックＤＢ（ｍ＋１）の領域は別のデータにより上書きされてしまい、データ破壊が生じるおそれがある。
【００３８】
このようなデータ破壊の発生を防止するために、順序性保証機能が必要となってくる。
本発明は、このような課題に鑑み創案されたもので、順序性保証モードが指定されている際には、転送エラーが発生したとしても順序性を確実に保証しながらデータ（トラック）を正センタ側から副センタ側へ転送できるようにした、磁気ディスク制御装置によるリモート転送方法を提供することを目的とする。
【００３９】
【課題を解決するための手段】
上記目的を達成するために、本発明の磁気ディスク制御装置によるリモート転送方法（請求項１）は、磁気ディスク装置とこの磁気ディスク装置を制御する磁気ディスク制御装置とを有する正センタおよび副センタをそなえ、正センタ側磁気ディスク制御装置と副センタ側磁気ディスク制御装置との間を複数の通信回線により接続してなるリモートシステムにおいて、これら複数の通信回線を通じて正センタ側磁気ディスク制御装置から副センタ側磁気ディスク制御装置へデータ転送を行なうための方法であって、複数のトラックを、その順序性を保証しながら正センタ側磁気ディスク制御装置から副センタ側磁気ディスク制御装置へ連続的に転送する順序性保証モードが正センタ側ホストにより指定されている場合、正センタ側磁気ディスク制御装置は、正センタ側ホストからの同一の入出力要求によって転送される複数のトラックには同一の識別番号と正センタ側ホストからの送出順に対応したシリアル番号とを付与し、前記の識別番号およびシリアル番号を付与された当該複数のトラックを複数本の通信回線により同時に副センタ側磁気ディスク制御装置に転送し、副センタ側磁気ディスク制御装置は、正センタ側から転送され副センタ側で書き込まれたトラックに付与された識別番号と、その識別番号を有し且つ最後に副センタ側で書き込まれたトラックに付与されたシリアル番号ＬＳＮとを対応させて保持する順序性管理テーブルをそなえ、正センタ側から新たなトラックが転送されてくると、当該トラックに付与されているシリアル番号ＳＮと、順序性管理テーブルに保持されている、当該トラックに付与された識別番号に対応する前記シリアル番号ＬＳＮとを比較し、ＳＮ≠ＬＳＮ＋１である場合、他のトラックの書込によって順序性管理テーブルの前記シリアル番号ＬＳＮが更新されてＳＮ＝ＬＳＮ＋１となるまで、当該トラックに対して書込許可を与えないで当該トラックを待機させる一方、ＳＮ＝ＬＳＮ＋１である場合、当該トラックに対して書込許可を与え、当該トラックの副センタ側磁気ディスク装置への書込を完了した時点で順序性管理テーブルの前記シリアル番号ＬＳＮとして当該トラックの前記シリアル番号ＬＳＮを登録・更新するとともに、あるトラックの転送時に回線障害により転送エラーが発生した場合、正センタ側磁気ディスク制御装置は、複数の通信回線のうち他に未使用の通信回線が存在するか否かを確認し、未使用の通信回線が存在する場合、その未使用の通信回線を使用して、転送エラーを生じた当該トラックの転送を行なう一方、未使用の通信回線が存在しない場合、現在転送中のトラックに付与されているシリアル番号の中に、転送エラーを生じた当該トラックに付与されているシリアル番号よりも大きいシリアル番号が存在するか否かを判断し、該当するシリアル番号が存在しない場合、使用中の通信回線が解放されるまで転送エラーを生じた当該トラックの転送を待機させる一方、該当するシリアル番号が存在する場合、該当するシリアル番号を有するトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して、転送エラーを生じた当該トラックの転送を行なうことを特徴としている。
【００４２】
このとき、順序性管理テーブルを、副センタ側磁気ディスク制御装置内の資源を管理／制御するリソースモジュールによって管理してもよいし（請求項２）、当該トラックを副センタ側磁気ディスク装置へ書き込む前に一時的に書き込むためのキャッシュメモリ上にそなえてもよい（請求項３）。
また、本発明の磁気ディスク制御装置によるリモート転送方法（請求項４）は、磁気ディスク装置とこの磁気ディスク装置を制御する磁気ディスク制御装置とを有する正センタおよび副センタをそなえ、正センタ側磁気ディスク制御装置と副センタ側磁気ディスク制御装置との間を複数本の通信回線により接続してなるリモートシステムにおいて、複数本の通信回線を通じて正センタ側磁気ディスク制御装置から副センタ側磁気ディスク制御装置へデータ転送を行なうための方法であって、複数のトラックを、その順序性を保証しながら、正センタ側磁気ディスク制御装置から副センタ側磁気ディスク制御装置へ連続的に転送する順序性保証モードが正センタ側ホストにより指定されている場合、正センタ側磁気ディスク制御装置は、正センタ側ホストからの同一の入出力要求によって転送される複数のトラックには同一の識別番号と該正センタ側ホストからの送出順に対応したシリアル番号とを付与し、前記の識別番号およびシリアル番号を付与された当該複数のトラックを複数本の通信回線により同時に副センタ側磁気ディスク制御装置に転送し、あるトラックの転送時に回線障害により転送エラーが発生した場合、正センタ側磁気ディスク制御装置は、複数の通信回線のうち他に未使用の通信回線が存在するか否かを確認し、未使用の通信回線が存在する場合、その未使用の通信回線を使用して転送エラーを生じた当該トラックの転送を行なう一方、未使用の通信回線が存在しない場合、現在転送中のトラックに付与されているシリアル番号の中に、転送エラーを生じた当該トラックに付与されているシリアル番号よりも大きいシリアル番号が存在するか否かを判断し、該当するシリアル番号が存在しない場合、使用中の通信回線が解放されるまで転送エラーを生じた当該トラックの転送を待機させる一方、該当するシリアル番号が存在する場合、該当するシリアル番号を有するトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して転送エラーを生じた当該トラックの転送を行なうことを特徴としている。
【００４３】
上述した本発明のリモート転送方法（請求項１〜３）では、副センタ側磁気ディスク制御装置において、正センタ側から転送されてきたトラックのシリアル番号ＳＮが、順序性管理テーブルに保持されているシリアル番号ＬＳＮ（そのトラックと同一Ｉ／Ｏに属するトラックのうち最後に書き込まれたもののシリアル番号）に、１を加算した値に等しいか否かを判断する。例えばそのトラックのＳＮがＬＳＮ＋２である場合（ＳＮ≠ＬＳＮ＋１）、そのトラックは、シリアル番号としてＬＳＮ＋１を付与されたトラックよりも先に転送されて来たことになり、所定の順序性を損なう状態になっているものと判断することができる。
【００４４】
従って、ＳＮ≠ＬＳＮ＋１である場合には、他のトラックの書込により順序性管理テーブルのシリアル番号ＬＳＮが更新されてＳＮ＝ＬＳＮ＋１となるまで、そのトラックを待機させる。つまり、トラックの転送中にエラーが発生し、副センタ側へのトラックの転送順序が逆転して所定の順序性が損なわれたとしても、副センタ側でトラックの順序調整を行なうことができる。
【００４５】
このとき、あるトラックの転送時に回線障害により転送エラーが発生し、その転送エラーを生じたトラックを転送するための未使用の通信回線が存在せず、さらに、現在転送中のトラックのシリアル番号の中に、転送エラーを生じたトラックのシリアル番号よりも大きいシリアル番号が存在するという３つの条件が万一重なった場合について考える。この場合、そのトラックの後に書き込まれるべきトラックが、先に副センタ側へ転送され、転送エラーを生じたトラックが転送されてくるのを待機している状態であるが、使用可能な通信回線が存在しないため、転送エラーを生じたトラックを転送できない状態でロックする転送デッドロックが生じてしまう。
【００４６】
そこで、上述した３つの条件が重なった場合には、正センタ側磁気ディスク制御装置により、転送デッドロック状態のトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して転送エラーを生じたトラックの転送を行ない、転送デッドロックを回避する（請求項１，４）。
【００４７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
本発明の実施形態（第１〜第４実施形態）としての磁気ディスク制御装置によるリモート転送方法が適用されるリモートシステムは、図１７に示したものと同様であり、本発明の実施形態（第１〜第４実施形態）における磁気ディスク制御装置つまりリモートＦＣＵ１０Ａ，１０Ｂは、図１８に示したものと同様であるので、これらのシステムやリモートＦＣＵ１０Ａ，１０Ｂについての詳細な説明は省略する。図中、既述の符号と同一の符号は同一もしくは同様の部分を示しているので、その説明は省略する。
【００４８】
また、以下に説明する本実施形態のリモートシステム（図２，図４，図８，図１１，図１４参照）でも、正センタ１Ａ側のリモートＦＣＵ１０Ａと副センタ１Ｂ側のリモートＦＣＵ１０Ｂとの間が２本の通信回線６−１，６−２により接続されている。つまり、リモートＦＣＵ１０Ａに２個のＲＡ１４（以下それぞれＲＡ０１，ＲＡ０２として区別し表記する）が搭載されるとともに、リモートＦＣＵ１０Ｂにも２個のＲＡ１４（以下それぞれＲＡ０３，ＲＡ０４として区別／表記する）が搭載され、ＲＡ０１とＲＡ０３との間が通信回線６−１により接続され、ＲＡ０２とＲＡ０４との間が通信回線６−２により接続されている。
【００４９】
〔Ａ〕第１実施形態の説明
まず、図１〜図３を参照しながら、本発明の第１実施形態としてのリモート転送方法について説明する。なお、図１および図２は、それぞれ、第１実施形態のリモート転送方法を説明するためのシーケンス図およびブロック図、図３は、第１実施形態のリモート転送方法を、時間軸および図１および図２中の▲１▼〜▲８▼に対応させて説明するためのフローチャートである。また、図２中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【００５０】
本発明の第１実施形態としてのリモート転送方法を実現すべく、第１実施形態のリモートシステムにおいて、順序性保証モードの指定時には、正センタ１０Ａ側のリモートＦＣＵ１０Ａ（ＣＡ１１）は、ホスト２Ａから１つのトラックの転送依頼を受けると、その時点ではトラックを受け取った旨の通知（Ｃｈａｎｎｅｌ  Ｅｎｄ）のみをホスト２Ａへ報告して“Ｄｅｖｉｃｅ  Ｅｎｄ”を返送せず、転送依頼を受けたトラックを副センタ１Ｂ側のリモートＦＣＵ１０Ｂに転送し、その転送を完了した時点でホスト２Ａに転送完了通知として“Ｄｅｖｉｃｅ  Ｅｎｄ”を送り返すように構成されている。
【００５１】
また、順序性保証モードの指定時には、正センタ１Ａ側のホスト２Ａは、リモートＦＣＵ１０Ａに対するトラックの転送依頼を１つずつ行ない、リモートＦＣＵ１０Ａから転送完了通知（Ｄｅｖｉｃｅ  Ｅｎｄ）を受領してから、次のトラックの転送依頼をリモートＦＣＵ１０Ａに対して発行するように構成されている。
なお、上述した第１実施形態の特徴的な機能／構成は、いずれも、従来から用いられているリモート転送を実現するためのファームウェア（プログラム）に、若干の変更を施すことによって容易に実現される。
【００５２】
次に、転送エラーが発生しない状態での、第１実施形態によるリモート転送方法の手順について、図１〜図３を参照しながら説明する。
図１〜図３に示すように、正センタ１Ａ側において、ホスト２Ａにより順序性保証モードが指定されている場合、ホスト２Ａは、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、トラックＴ１を１つだけ書き込む（▲１▼参照）。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
【００５３】
そして、リモートＦＣＵ１０Ａは、トラックＴ１を受け取ると、ホスト２Ａに対して“Ｃｈａｎｎｅｌ  Ｅｎｄ  ”を報告するとともに（▲２▼参照）、ＲＡ０１により、キャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲３▼参照）。副センタ１ＢへのトラックＴ１の転送を完了すると、リモートＦＣＵ１０Ａは、ホスト２Ａに対して転送完了通知（Ｄｅｖｉｃｅ  Ｅｎｄ）を報告する（▲４▼参照）。
【００５４】
リモートＦＣＵ１０Ａから転送完了通知を受けたホスト２Ａは、トラックＴ１に続く２つ目のトラックＴ２を、１つだけ、リモートＦＣＵ１０Ａのキャッシュメモリ１６ａに対して書き込む（▲５▼参照）。
この後、リモートＦＣＵ１０Ａは、前述と同様、トラックＴ２を受け取ると、ホスト２Ａに対して“Ｃｈａｎｎｅｌ  Ｅｎｄ  ”を報告するとともに（▲６▼参照）、ＲＡ０１により、キャッシュメモリ１６ａに書き込まれたトラックＴ２を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲７▼参照）。副センタ１ＢへのトラックＴ１の転送を完了すると、リモートＦＣＵ１０Ａは、ホスト２Ａに対して転送完了通知（Ｄｅｖｉｃｅ  Ｅｎｄ）を報告する（▲８▼参照）。
【００５５】
従って、トラックＴ１，Ｔ２は、ホスト２Ａから１つずつ送出され、トラックＴ１の転送完了するまでトラックＴ２の送出が行なわれないので、副センタ１Ｂ側では、その順序性を保持した状態でトラックＴ１，Ｔ２が磁気ディスク装置４Ｂ（キャッシュメモリ１６ａ）に書き込まれることになる。
一方、トラックＴ１の転送中に回線障害等により転送エラーが発生した場合の、第１実施形態によるリモート転送方法の手順について、図４〜図６を参照しながら説明する。ここで、図４は、本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を説明するためのブロック図、図５は、本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を説明するためのシーケンス図、図６は、本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を、時間軸および図４および図５中の▲１▼〜▲９▼に対応させて説明するためのフローチャートである。なお、図４中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００５６】
図４〜図６に示すように、正センタ１Ａ側において、ホスト２Ａにより順序性保証モードが指定されている場合、ホスト２Ａは、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、トラックＴ１を１つだけ書き込む（▲１▼参照）。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
【００５７】
そして、リモートＦＣＵ１０Ａは、トラックＴ１を受け取ると、ホスト２Ａに対して“Ｃｈａｎｎｅｌ  Ｅｎｄ  ”を報告するとともに（▲２▼参照）、ＲＡ０１により、キャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送するが、その転送が、回線エラー（回線障害）により失敗した場合、リモートＦＣＵ１０Ａは、代わりのパスを使用してトラックＴ１の転送を行なうと判断する（▲３▼参照）。
【００５８】
このとき、もう一方の通信回線６−２（ＲＡ０２／ＲＡ０４パス）は未使用状態であるので、リモートＦＣＵ１０Ａは、その通信回線６−２を使用してトラックＴ１を副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲４▼参照）。
通信回線６−２を通じて副センタ１ＢへのトラックＴ１の転送を完了すると、リモートＦＣＵ１０Ａは、ホスト２Ａに対して転送完了通知（Ｄｅｖｉｃｅ  Ｅｎｄ）を報告する（▲５▼参照）。
【００５９】
リモートＦＣＵ１０Ａから転送完了通知を受けたホスト２Ａは、トラックＴ１に続く２つ目のトラックＴ２を、１つだけ、リモートＦＣＵ１０Ａのキャッシュメモリ１６ａに対して書き込む（▲６▼参照）。
この後、リモートＦＣＵ１０Ａは、トラックＴ２を受け取ると、ホスト２Ａに対して“Ｃｈａｎｎｅｌ  Ｅｎｄ  ”を報告するとともに（▲７▼参照）、ＲＡ０１により、キャッシュメモリ１６ａに書き込まれたトラックＴ２を読み出し、回線障害の発生した通信回線６−１を使用せずに通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する（▲８▼参照）。副センタ１ＢへのトラックＴ１の転送を完了すると、リモートＦＣＵ１０Ａは、ホスト２Ａに対して転送完了通知（Ｄｅｖｉｃｅ  Ｅｎｄ）を報告する（▲９▼参照）。
【００６０】
このように、本発明の第１実施形態としてのリモート転送方法によれば、順序性保証モードがホスト２Ａにより指定されている状態では、ホスト２Ａは、トラックの転送依頼を１つずつ行ない、１つのトラックの転送依頼をリモートＦＣＵ１０Ａに対して行なうと、そのトラックについての転送完了通知をリモートＦＣＵ１０Ａから受けるまで、次のトラックの転送依頼を発行しないので、トラックは、ホスト２Ａから、リモートＦＣＵ１０Ａを通じて一つずつ副センタ１Ｂ側へ転送されることになる。
【００６１】
つまり、図４〜図６により説明した通り、トラックの転送中にエラーが発生したとしても、通信障害の発生した通信回線６−１以外の通信回線６−２を使用して、そのトラックの転送を完了するまで次のトラックの転送開始を抑止することができるので、トラックの順序性を確実に保証することができる。
〔Ｂ〕第２実施形態の説明
次に、図７〜図１０を参照しながら、本発明の第２実施形態としてのリモート転送方法について説明する。なお、図７は第２実施形態のリモート転送方法で用いられる順序性管理テーブルの例を示す図、図８は第２実施形態のリモート転送方法を説明するためのブロック図、図９は、第２実施形態のリモート転送方法を、時間軸および図８中の (1)〜(10)に対応させて説明するためのフローチャート、図１０（ａ）〜図１０（ｄ）は、それぞれ、第２実施形態のリモート転送方法を実行した際の順序性管理テーブルの登録状態を示す図である。また、図８中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【００６２】
本発明の第２実施形態としてのリモート転送方法を実現すべく、第２実施形態のリモートシステムにおけるホスト１Ａ，リモートＦＣＵ１０Ａおよび１０Ｂは以下のような機能を有している。
第２実施形態では、正センタ１Ａ側において、ホスト２Ａは、第１実施形態の場合と異なり、従来と同様、複数のトラックを所定の順序でリモートＦＣＵ１０Ａに対して順次送出し、リモートＦＣＵ１０Ａは、複数本（本実施形態では２本のみ図示）の通信回線６−１，６−２を同時に使用して副センタ１Ｂ側へ転送するようになっている。
【００６３】
ただし、第２実施形態では、順序性保証モードの指定時において、リモートＦＣＵ１０Ａは、通信回線６−１もしくは６−２を通じて転送するトラックに、以下の情報（ａ１），（ａ２）を付与する。
（ａ１）トラック番号（シリアル番号ＳＮ）：ホスト２Ａからの同一Ｉ／Ｏに属するトラックについて、そのＩ／Ｏに関し何番目のトラックであるか示す情報。このトラック番号は、ホスト２ＡからリモートＦＣＵ１０Ａへのトラックの送出順序と一致する。
【００６４】
（ａ２）ＩＤ値（識別番号）：ホスト２Ａからの同一Ｉ／Ｏに属するトラックには、同一のＩＤ値が付与され、ＩＤ値により、そのトラックの属するＩ／Ｏを識別することができるようになっている。このＩＤ値は、リモートＦＣＵ１０Ａにより、ホスト２Ａから新たなＩ／Ｏ（Ｓｔａｒｔ  Ｉ／Ｏ）を受ける度にインクリメントされる。
【００６５】
また、第２実施形態における副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいては、ＲＭ１２（ＴＳ１３）内に、前述したＩＤ値とトラック番号（ＳＮ）とを保持する順序性管理テーブル（Ｔａｂｌｅ）２０がそなえられている。
この順序性管理テーブル２０は、正センタ１Ａ側から転送され副センタ１Ｂ側で書き込まれたトラックに付与されたＩＤ値と、そのＩＤ値を有し且つ最後に副センタ１Ｂ側で書き込まれたトラックに付与されたトラック番号（シリアル番号）ＬＳＮとを対応させて保持するものである。つまり、順序性管理テーブル２０におけるトラック番号としては、そのＩＤ値に関し、リモートＦＣＵ１０ＢのＳＳ１６上に確保されたキャッシュメモリ１６ａに、最後に書き込んだトラックのトラック番号がＬＳＮとして書き込まれる。
【００６６】
順序性管理テーブル２０に保持される値の具体例を図７に示す。この図７に示す具体例では、ＩＤ値“０００１”を有するトラックについてはトラック番号“０００１”つまり１番目のトラックの書込だけを完了しており、ＩＤ値“０００２”を有するトラックについてはトラック番号“０００５”つまり５番目のトラックの書込まで完了しており、ＩＤ値“０００３”を有するトラックについてはトラック番号“０００７”つまり７番目のトラックの書込まで完了していることになる。
【００６７】
副センタ１Ｂ側のリモートＦＣＵ１０ＢにおけるＲＡ１４は、正センタ１Ａ側のＲＡ１４からトラックを受信すると、そのトラックのＩＤ値とトラック番号ＳＮとをＲＭ１２に通知し、キャッシュメモリ１６ａへの書込要求を行なう機能を有している。
副センタ１Ｂ側のリモートＦＣＵ１０ＢにおけるＲＭ１２は、ＲＡ１４からの要求に応じ、２つの条件（ｂ１），（ｂ２）によって以下のような動作を行なうようになっている。
【００６８】
条件（ｂ１）：ＲＡ１４から通知されたトラック番号が“１”であれば、順序性管理テーブル２０内で未使用領域もしくは一番古い領域にＩＤ値およびトラック番号を書き込む。ただし、ＩＤ値としてはＲＡ１４から通知されたＩＤ値をそのまま書き込むが、トラック番号としてはまず“０”を書き込む。その後、ＲＭ１２は、ＲＡ１４に対して、そのトラックのキャッシュメモリ１６ａへの書込許可を通知する。順序性管理テーブル２０のトラック番号“０”は、そのトラックのキャッシュメモリ１６ａへの書込が完了した時点で“１”に書き換えられる。
【００６９】
条件（ｂ２）：ＲＡ１４から通知されたトラック番号が“１”以外であれば、順序性管理テーブル２０内に、そのトラックのＩＤ値と同じものが保持されているかを検索する。同じＩＤ値が既に保持されている場合には、ＲＡ１４から通知されたトラック番号ＳＮと順序性管理テーブル２０に既に保持されているトラック番号ＬＳＮとを比較し、ＳＮ＝ＬＳＮ＋１であるか否かを判断する。ＲＭ１２は、ＳＮ＝ＬＳＮ＋１であれば、ＲＡ１４に対して、そのトラックのキャッシュメモリ１６ａへの書込許可を通知する一方、ＳＮ≠ＬＳＮ＋１であれば、ＲＡ１４に対して、そのトラックのキャッシュメモリ１６ａへの書込許可を与えない。なお、トラックのＩＤ値と同じものが順序性管理テーブル２０内に保持されていない場合にも、ＲＭ１２は、ＲＡ１４に対して、そのトラックのキャッシュメモリ１６ａへの書込許可を与えない。
【００７０】
さらに、ＲＡ１４は、ＲＭ１２からの応答として書込許可通知を受けた場合、そのトラックを、ＳＳ１６上に確保されたキャッシュメモリ１６ａに書き込む一方で、不許可通知を受けた場合、そのトラックの書込をしばらく待機させてから、再度、ＲＭ１２に対して問い合わせを行なうように動作する。
また、ＲＡ１４は、キャッシュメモリ１６ａにトラックを書き込んだ後、ＲＭ１２に対し、再度、そのトラックのＩＤ値およびトラック番号ＳＮを通知し、順序性管理テーブル２０に登録するように要求し、この要求を受けたＲＭ１２は、順序性管理テーブル２０から同じＩＤ値を検索し、そのＩＤ値とリンクするトラック番号領域に、ＲＡ１４から通知されたトラック番号ＳＮをＬＳＮとして書き込むように動作する。
【００７１】
なお、上述した第２実施形態の特徴的な機能／構成は、いずれも、従来から用いられているリモート転送を実現するためのファームウェア（プログラム）に、若干の変更を施すことによって容易に実現される。
次に、第２実施形態によるリモート転送方法の手順について、図８〜図１０を参照しながら説明する。
【００７２】
図８および図９に示すように、正センタ１Ａ側において、ホスト２Ａにより順序性保証モードが指定されている場合、ホスト２Ａは、まず、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、同一Ｉ／Ｏに属するトラックＴ１およびＴ２を、順次、書き込む〔（１）  および（６）  参照〕。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
【００７３】
そして、リモートＦＣＵ１０Ａは、ＲＡ０１により、先にキャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ１には、ＩＤ値＝０００１およびトラック番号＝０００１が付加される〔（２）  参照〕。
【００７４】
これに引き続いて、リモートＦＣＵ１０Ａは、次にキャッシュメモリ１６ａに書き込まれたトラックＴ２を転送するが、通信回線６−１（ＲＡ０１／ＲＡ０３パス）が使用中であることから、ＲＡ０２により、トラックＴ２を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ２には、ＩＤ値＝０００１およびトラック番号＝０００２が付加される〔（７）  参照〕。
【００７５】
副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいて、まず、正センタ１Ａ側から転送されてきたトラックＴ１をＲＡ０３が受信し、このＲＡ０３は、トラックＴ１のＩＤ値＝０００１およびトラック番号＝０００１も同時にＲＭ１２に通知し、ＲＭ１２に対しトラックＴ１を書き込んでよいか否か問い合わせる。このとき、ＲＭ１２は、前述した条件（ｂ１）に従って動作し、トラックＴ１の書込許可をＲＡ０３に通知する〔（３）  参照〕。このＲＭ１２の動作により、順序性管理テーブル２０は、図１０（ａ）に示す状態から図１０（ｂ）に示す状態となる。
【００７６】
ＲＭ１２からの書込許可通知を受けたＲＡ０３は、ＳＳ１６上に確保されたキャッシュメモリ１６ａにトラックＴ１を書き込んだ後〔（４）  参照〕、ＲＭ１２に対し、再度、ＩＤ値＝０００１およびトラック番号＝０００１を通知して順序性管理テーブル２０への登録を要求し、この要求に応じてＲＭ１２は、順序性管理テーブル２０にトラック番号を登録する〔（５）  参照〕。これにより、順序性管理テーブル２０は、図１０（ｂ）に示す状態から図１０（ｃ）に示す状態となる。
【００７７】
また、副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいては、トラックＴ１の書込処理中〔（３）  および（４）  参照〕に、正センタ１Ａ側からのトラックＴ２をＲＡ０４が受信すると、このＲＡ０４は、トラックＴ２のＩＤ値＝０００１およびトラック番号＝０００２も同時にＲＭ１２に通知し、ＲＭ１２に対しトラックＴ２を書き込んでよいか否か問い合わせる。このとき、順序性管理テーブル２０は図１０（ｂ）に示す状態であり、ＲＭ１２は、前述した条件（ｂ２）に従って動作する。即ち、ＳＮ≠ＬＳＮ＋１（ここで、ＳＮ＝２，ＬＳＮ＝０で、２≠０＋１）であって、トラックＴ１がキャッシュメモリ１６ａ上に書き込まれていないことから、ＲＭ１２は、ＲＡ０４に対し、トラックＴ２の書込不許可を通知する〔図８の（８）  ，図９の（８）−１参照〕。
【００７８】
ＲＭ１２からの書込不許可通知を受けたＲＡ０４は、ＲＭ１２からトラックＴ２の書込許可を貰えるまで、ＲＭ１２に対し繰り返し問い合わせる〔図８の（８）  ，図９の（８）−２参照〕。
その間に、ＲＡ０３によりトラックＴ１の書込を完了し〔（４）  参照〕、順序性管理テーブル２０への登録を完了すると〔（５）  参照〕、順序性管理テーブル２０が図１０（ｃ）に示すごとく更新され、ＳＮ＝ＬＳＮ＋１（ここで、ＳＮ＝２，ＬＳＮ＝１で、２＝１＋１）となるので、ＲＭ１２は、トラックＴ２の書込許可をＲＡ０４に通知する〔図８の（８）  ，図９の（８）−３参照〕。
【００７９】
ＲＭ１２からの書込許可通知を受けたＲＡ０４は、ＳＳ１６上に確保されたキャッシュメモリ１６ａにトラックＴ２を書き込んだ後〔（９）  参照〕、ＲＭ１２に対し、再度、ＩＤ値＝０００１およびトラック番号＝０００２を通知して順序性管理テーブル２０への登録を要求し、この要求に応じてＲＭ１２は、順序性管理テーブル２０にトラック番号を登録する〔（１０）参照〕。これにより、順序性管理テーブル２０は、図１０（ｃ）に示す状態から図１０（ｄ）に示す状態となる。
【００８０】
このように、本発明の第２実施形態としてのリモート転送方法によれば、順序性保証モードがホスト２Ａにより指定されている状態では、副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいて、正センタ１Ａ側から転送されてきたトラックのトラック番号（シリアル番号）ＳＮが、順序性管理テーブル２０に保持されているシリアル番号ＬＳＮ（そのトラックと同一Ｉ／Ｏに属するトラックのうち最後に書き込まれたもののトラック番号）に、１を加算した値に等しいか否かを判断する。例えば、そのトラックのトラック番号ＳＮがＬＳＮ＋２である場合（ＳＮ≠ＬＳＮ＋１）、そのトラックは、トラック番号としてＬＳＮ＋１を付与されたトラックよりも先に転送されて来たことになり、所定の順序性を損なう状態になっているものと判断することができる。
【００８１】
従って、ＳＮ≠ＬＳＮ＋１である場合には、他のトラックの書込により順序性管理テーブル２０のシリアル番号ＬＳＮが更新されてＳＮ＝ＬＳＮ＋１となるまで、そのトラックを待機させる。つまり、万一、トラックの転送中にエラーが発生し、副センタ１Ｂ側へのトラックの転送順序が逆転して所定の順序性が損なわれたとしても、副センタ１Ｂ側でトラックの順序調整を行なうことができるので、トラックの順序性を確実に保証することができる。
【００８２】
図８では、説明上、２本の通信回線６−１，６−２のみ図示しているが、３本以上の通信回線をそなえておけば、トラックＴ１の転送中に通信回線６−１における通信障害により転送エラーが生じた場合、図示しない３本目の通信回線によりトラックＴ１が副センタ１Ｂ側へ転送される。このとき、トラックＴ１はトラックＴ２よりも後に副センタ１Ｂに到着することになるが、リモートＦＣＵ１０Ｂでは、前述のごとく、トラックＴ１が書き込まれるまでトラックＴ２の書込を待機させているので、トラックＴ１がトラックＴ２よりも後に到着しても、トラックＴ１，Ｔ２の順で書込が行なわれ、その順序性が損なわれることがない。
【００８３】
また、本発明の第２実施形態としてのリモート転送方法では、順序性保証モードの指定時に、第１実施形態と異なって２本以上の通信回線６−１，６−２を同時に使用できるので、トラックの転送効率を、第１実施形態よりも大幅に向上させることができる。
〔Ｃ〕第３実施形態の説明
次に、図１１および図１２を参照しながら、本発明の第３実施形態としてのリモート転送方法について説明する。なお、図１１は本発明の第３実施形態としてのリモート転送方法を説明するためのブロック図、図１２は本発明の第３実施形態としてのリモート転送方法を、時間軸および図１１中の  （１）〜（１０）に対応させて説明するためのフローチャートである。また、図１１中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【００８４】
本発明の第３実施形態としてのリモート転送方法を実現すべく、第３実施形態のリモートシステムにおけるホスト１Ａ，リモートＦＣＵ１０Ａおよび１０Ｂも、第２実施形態と同様、以下のような機能を有している。
つまり、第３実施形態でも、正センタ１Ａ側において、ホスト２Ａは、第２実施形態と同様、複数のトラックを所定の順序でリモートＦＣＵ１０Ａに対して順次送出し、リモートＦＣＵ１０Ａは、複数本（本実施形態では２本のみ図示）の通信回線６−１，６−２を同時に使用して副センタ１Ｂ側へ転送するようになっている。
【００８５】
また、第３実施形態でも、順序性保証モードの指定時において、リモートＦＣＵ１０Ａは、通信回線６−１もしくは６−２を通じて転送するトラックに、前述と同様のトラック番号（ａ１）およびＩＤ値（ａ２）を付与する。
ただし、第３実施形態における副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいては、ＳＳ１６上に確保されたキャッシュメモリ１６ａ上に、前述したＩＤ値とトラック番号（ＳＮ）とを保持する順序性管理テーブル２０がそなえられている。第２実施形態と第３実施形態とで構成上大きく異なる点は、この順序性管理テーブル２０がＲＭ１２ではなくキャッシュメモリ１６ａにそなえられている点である。順序性管理テーブル２０については、第２実施形態において前述した通りであるので、その説明は省略する。
【００８６】
なお、第２実施形態では、トラック書込が可能である否かの判断をＲＭ１２がＲＡ１４からの要求に応じて行なっていたのに対し、第３実施形態では、順序性管理テーブル２０がキャッシュメモリ１６ａ上にそなえられているので、上記判断は、ＲＡ１４がキャッシュメモリ１６ａ上の順序性管理テーブル２０を読み出して行なっている。
【００８７】
つまり、第３実施形態のリモートＦＣＵ１０ＢにおけるＲＡ１４は、正センタ１Ａ側のＲＡ１４からトラックを受信すると、キャッシュメモリ１６ａから順序性管理テーブル２０を読み込み、その順序性管理テーブル２０内の情報と受信したトラックのＩＤ値とトラック番号ＳＮとを比較し、２つの条件（ｃ１），（ｃ２）によって以下のような動作を行なうようになっている。
【００８８】
条件（ｃ１）：正センタ１Ａ側のＲＡ１４から通知されたトラック番号が“１”であれば、順序性管理テーブル２０内で未使用領域もしくは一番古い領域にＩＤ値およびトラック番号を書き込む。ただし、ＩＤ値としてはＲＡ１４から通知されたＩＤ値をそのまま書き込むが、トラック番号としてはまず“０”を書き込む。その後、ＲＡ１４は、そのトラックをキャッシュメモリ１６ａへ書き込む。順序性管理テーブル２０のトラック番号“０”は、そのトラックのキャッシュメモリ１６ａへの書込が完了した時点で“１”に書き換えられる。
【００８９】
条件（ｃ２）：正センタ１Ａ側のＲＡ１４から通知されたトラック番号が“１”以外であれば、順序性管理テーブル２０内に、そのトラックのＩＤ値と同じものが保持されているかを検索する。同じＩＤ値が既に保持されている場合には、トラック番号ＳＮと順序性管理テーブル２０に既に保持されているトラック番号ＬＳＮとを比較し、ＳＮ＝ＬＳＮ＋１であるか否かを判断する。ＲＡ１４は、ＳＮ＝ＬＳＮ＋１であれば、そのトラックをキャッシュメモリ１６ａへ書き込む一方、ＳＮ≠ＬＳＮ＋１であれば、そのトラックのキャッシュメモリ１６ａへの書込を行なわず、そのトラックの書込をしばらく待機させてから、再度、キャッシュメモリ１６ａから順序性管理テーブル２０の読み込みを行なうように動作する。なお、トラックのＩＤ値と同じものが順序性管理テーブル２０内に保持されていない場合にも、ＲＡ１４は、そのトラックのキャッシュメモリ１６ａへの書込を行なわず、そのトラックの書込をしばらく待機させてから、再度、キャッシュメモリ１６ａから順序性管理テーブル２０の読み込みを行なうように動作する。
【００９０】
リモートＦＣＵ１０ＢのＲＡ１４は、上述のようにしてトラックの書込が可能であると判断すると、キャッシュメモリ１６ａにトラックを書き込み、書込完了後、順序性管理テーブル２０からトラックのＩＤ値と同じＩＤ値を検索し、そのＩＤ値とリンクするトラック番号領域に、そのトラックのトラック番号ＳＮをＬＳＮとして書き込むように動作する。
【００９１】
なお、上述した第３実施形態の特徴的な機能／構成は、いずれも、従来から用いられているリモート転送を実現するためのファームウェア（プログラム）に、若干の変更を施すことによって容易に実現される。
次に、第３実施形態によるリモート転送方法の手順について、図１１および図１２を参照しながら説明する。なお、その際、第２実施形態の説明に用いた図１０（ａ）〜図１０（ｄ）も参照する。
【００９２】
図１１および図１２に示すように、正センタ１Ａ側において、ホスト２Ａにより順序性保証モードが指定されている場合、ホスト２Ａは、まず、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、同一Ｉ／Ｏに属するトラックＴ１およびＴ２を、順次、書き込む〔（１）  および（６）  参照〕。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
【００９３】
そして、リモートＦＣＵ１０Ａは、ＲＡ０１により、先にキャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ１には、ＩＤ値＝０００１およびトラック番号＝０００１が付加される〔（２）  参照〕。
【００９４】
これに引き続いて、リモートＦＣＵ１０Ａは、次にキャッシュメモリ１６ａに書き込まれたトラックＴ２を転送するが、通信回線６−１（ＲＡ０１／ＲＡ０３パス）が使用中であることから、ＲＡ０２により、トラックＴ２を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ２には、ＩＤ値＝０００１およびトラック番号＝０００２が付加される〔（７）  参照〕。
【００９５】
副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいて、まず、正センタ１Ａ側から転送されてきたトラックＴ１をＲＡ０３が受信すると、このＲＡ０３は、キャッシュメモリ１６ａから順序性管理テーブル２０を読み込み、トラックＴ１の書込の是非を判断する。このとき、ＲＡ１４は、前述した条件（ｃ１）に従って動作し、トラックＴ１の書込が可能であると判断する〔（３）  参照〕。このＲＡ１４の動作により、順序性管理テーブル２０は、図１０（ａ）に示す状態から図１０（ｂ）に示す状態となる。
【００９６】
そして、ＲＡ０３は、ＳＳ１６上に確保されたキャッシュメモリ１６ａにトラックＴ１を書き込んだ後〔（４）  参照〕、キャッシュメモリ１６ａ上の順序性管理テーブル２０のトラックＴ１に対応するトラック番号領域を更新しトラックＴ１のトラック番号ＳＮをＬＳＮとして反映させる〔（５）  参照〕。これにより、順序性管理テーブル２０は、図１０（ｂ）に示す状態から図１０（ｃ）に示す状態となる。
【００９７】
また、副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいては、トラックＴ１の書込処理中〔（３）  および（４）  参照〕に、正センタ１Ａ側からのトラックＴ２をＲＡ０４が受信し、このＲＡ０４は、キャッシュメモリ１６ａから順序性管理テーブル２０を読み込み、トラックＴ２の書込の是非を判断する。このとき、順序性管理テーブル２０は図１０（ｂ）に示す状態であり、ＲＡ０４は、前述した条件（ｃ２）に従って動作する。即ち、ＳＮ≠ＬＳＮ＋１（ここで、ＳＮ＝２，ＬＳＮ＝０で、２≠０＋１）であって、トラックＴ１がキャッシュメモリ１６ａ上に書き込まれていないことから、ＲＡ０４は、トラックＴ２の書込を不可と判断する〔図１１の（８）  ，図１２の（８）−１参照〕。
【００９８】
トラックＴ２の書込が不可であると判断したＲＡ０４は、順序性管理テーブル２０のトラック番号が“０００１”となるまで、キャッシュメモリ１６ａから繰り返し順序性管理テーブル２０を読み込む〔図１１の（８）  ，図１２の（８）−２参照〕。
その間に、ＲＡ０３によりトラックＴ１の書込を完了し〔（４）  参照〕、順序性管理テーブル２０への登録を完了すると〔（５）  参照〕、順序性管理テーブル２０が図１０（ｃ）に示すごとく更新され、ＳＮ＝ＬＳＮ＋１（ここで、ＳＮ＝２，ＬＳＮ＝１で、２＝１＋１）となるので、ＲＡ０４は、トラックＴ２の書込が可能であると判断する〔図１１の（８）  ，図１２の（８）−３参照〕。
【００９９】
トラックＴ２の書込が可能であると判断したＲＡ０４は、ＳＳ１６上に確保されたキャッシュメモリ１６ａにトラックＴ２を書き込んだ後〔（９）  参照〕、キャッシュメモリ１６ａ上の順序性管理テーブル２０のトラックＴ２に対応するトラック番号領域を更新しトラックＴ２のトラック番号ＳＮをＬＳＮとして反映させる〔（１０）参照〕。これにより、順序性管理テーブル２０は、図１０（ｃ）に示す状態から図１０（ｄ）に示す状態となる。
【０１００】
このように、本発明の第３実施形態としてのリモート転送方法によっても、前述した第２実施形態と同様の作用効果を得ることができる。
〔Ｄ〕第４実施形態の説明
ところで、上述した第２および第３実施形態によってリモート転送を行なう場合、図８や図１１に図示すように２回線構成で１回線に障害が発生したり、３本以上の通信回線を有していても回線障害が発生した時点で未使用の通信回線が存在しなかったりすると、下記のような転送デッドロックが生じることがある。
【０１０１】
あるトラックの転送時に回線障害により転送エラーが発生し、その転送エラーを生じたトラックを転送するための未使用の通信回線が存在せず、さらに、現在転送中のトラックのトラック番号の中に、転送エラーを生じたトラックのトラック番号よりも大きいものが存在するという３つの条件が万一重なった状態が生じたものとする。
【０１０２】
このとき、そのトラックの後に書き込まれるべきトラックが、先に副センタ１Ｂ側へ転送され、転送エラーを生じたトラックが転送されてくるのを待機している状態であるが、使用可能な通信回線が存在しないため、転送エラーを生じたトラックを転送できない状態でロックする転送デッドロックが生じてしまう。
そこで、本発明の第４実施形態としてのリモート転送方法では、上述した３つの条件が重なった場合には、正センタ１Ａ側のリモートＦＣＵ１０Ａにより、転送デッドロック状態のトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して転送エラーを生じたトラックの転送を行ない、転送デッドロックを回避するようにしている。
【０１０３】
このような第４実施形態としてのリモート転送方法について、図１３〜図１５を参照しながら説明する。ここで、図１３は本発明の第４実施形態としてのリモート転送方法を説明するためのフローチャート、図１４は本発明の第４実施形態としてのリモート転送方法（回線障害による転送エラー発生時）を説明するためのブロック図、図１５は、本発明の第４実施形態としてのリモート転送方法（回線障害による転送エラー発生時）を、時間軸および図１４中の▲１▼〜▲７▼に対応させて説明するためのフローチャートである。
【０１０４】
第４実施形態によるリモート転送方法は、第２実施形態および第３実施形態によるリモート転送方法のいずれにも適用することができるが、第４実施形態では、第３実施形態によるリモート転送方法に適用した場合について説明する。
第４実施形態における正センタ１Ａ側のリモートＦＣＵ１０Ａは、第３実施形態のリモートＦＣＵ１０Ａに、図１３にフローチャート（ステップＳ１〜Ｓ５）で示す機能を追加したものである。
【０１０５】
つまり、図１３に示すように、あるトラックの転送時に回線障害により転送エラーが発生した場合、リモートＦＣＵ１０Ａは、複数の通信回線のうち他に未使用の転送パス（通信回線）が存在するか否かを確認し（ステップＳ１）、未使用の転送パスが存在する場合（ステップＳ１からＹＥＳルート）、その未使用の転送パスを使用して転送エラーを生じたトラックの転送を行なう（ステップＳ２）。
【０１０６】
一方、未使用の転送パスが存在しない場合（ステップＳ１からＮＯルート）、リモートＦＣＵ１０Ａは、現在転送中のトラックに付与されているトラック番号と、転送エラーを生じたトラックに付与されているトラック番号とを比較し、転送中のトラック番号の中に、転送エラーを生じたトラックのトラック番号よりも大きい番号が存在するか否かを判断する（ステップＳ３）。
【０１０７】
該当するシリアル番号が存在しない場合（ステップＳ３からＮＯルート）、リモートＦＣＵ１０Ａは、使用中のいずれかの転送パスが解放されるまで転送エラーを生じたトラックの転送を待機させる一方（ステップＳ４）、該当するシリアル番号が存在する場合（ステップＳ３からＹＥＳルート）、該当するシリアル番号を有するトラックの転送を中断させ、そのトラックの転送のために使用中だった転送パスを使用して、転送エラーを生じたトラックの転送を行なう（ステップＳ５）。
【０１０８】
さて、次に、図１４および図１５を参照しながら、図１３にて上述した機能を追加された、第４実施形態によるリモート転送方法（回線障害による転送エラー発生時）について説明する。
図１４および図１５に示すように、正センタ１Ａ側において、ホスト２Ａにより順序性保証モードが指定されている場合、ホスト２Ａは、まず、リモートＦＣＵ１０ＡのＳＳ１６上に確保されたキャッシュメモリ１６ａに対して、同一Ｉ／Ｏに属するトラックＴ１およびＴ２を、順次、書き込む（▲１▼および▲３▼参照）。この時点で、２本の通信回線６−１，６−２はいずれも使用されていないものとする。
【０１０９】
そして、リモートＦＣＵ１０Ａは、ＲＡ０１により、先にキャッシュメモリ１６ａに書き込まれたトラックＴ１を読み出し、通信回線６−１（ＲＡ０１／ＲＡ０３パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ１には、ＩＤ値＝０００１およびトラック番号＝０００１が付加される（図１４の▲２▼，図１５の▲２▼−１参照）。
【０１１０】
これに引き続いて、リモートＦＣＵ１０Ａは、次にキャッシュメモリ１６ａに書き込まれたトラックＴ２を転送するが、通信回線６−１（ＲＡ０１／ＲＡ０３パス）が使用中であることから、ＲＡ０２により、トラックＴ２を読み出し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して副センタ１Ｂ側のリモートＦＣＵ１０Ｂへ転送する。このとき、トラックＴ２には、ＩＤ値＝０００１およびトラック番号＝０００２が付加される（図１４の▲４▼，図１５の▲４▼−１参照）。
【０１１１】
しかし、トラックＴ１の転送中に、その通信回線６−１上における回線障害による転送エラーが発生し、トラックＴ１の転送に失敗すると、リモートＦＣＵ１０Ａは、代わりの転送パスとして未使用パスを探すが、他の通信回線６−２（ＲＡ０２／ＲＡ０４パス）も使用中であるため、未使用パスが無いと判断する（図１４の▲２▼，図１５の▲２▼−２参照）。
【０１１２】
その間に、副センタ１Ｂ側のリモートＦＣＵ１０Ｂにおいては、正センタ１Ａ側からのトラックＴ２をＲＡ０４が受信し、このＲＡ０４は、キャッシュメモリ１６ａから順序性管理テーブル２０を読み込み、トラックＴ２の書込の是非を判断し、トラックＴ１がキャッシュメモリ１６ａ上に書き込まれていないことから、ＲＡ０４は、トラックＴ２の書込を不可と判断する（図１４の▲４▼，図１５の▲４▼−２参照〕。トラックＴ２の書込が不可であると判断したＲＡ０４は、順序性管理テーブル２０のトラック番号が“０００１”となるまで、キャッシュメモリ１６ａから繰り返し順序性管理テーブル２０を読み込む（図１４の▲４▼，図１５の▲４▼−３参照）。
【０１１３】
これに並行して、正センタ１Ａ側のリモートＦＣＵ１０Ａは、転送に失敗したパスのトラック番号が“１”であり且つ転送中のパス（通信回線６−２；ＲＡ０２／ＲＡ０４パス）のトラック番号“２”であることから、ＲＡ０２／ＲＡ０４パスによる転送を中断すべく中断指示を出力する（図１４の▲２▼，図１５の▲２▼−３参照）。
【０１１４】
これによりＲＡ０２からＲＡ０４に対し中断の指示が行なわれ（▲５▼参照）、副センタ１Ｂ側において、ＲＡ０４は、ＲＡ０２からの中断指示によりトラックＴ２に対する処理を中断する（▲５▼′参照）。
この後、リモートＦＣＵ１０Ａは、副センタ１０Ｂ側のリモートＦＣＵ１０Ｂに対し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して、転送に失敗したトラックＴ１を転送する（▲６▼参照）。このときのリモートＦＣＵ１０Ｂでの動作説明については、第３実施形態と同様であるので省略する。
【０１１５】
そして、リモートＦＣＵ１０Ａは、副センタ１０Ｂ側のリモートＦＣＵ１０Ｂに対し、通信回線６−２（ＲＡ０２／ＲＡ０４パス）を使用して、転送に失敗したトラックＴ１を転送する（▲７▼参照）。このときのリモートＦＣＵ１０Ｂでの動作説明についても、第３実施形態と同様であるので省略する。
このように、本発明の第４実施形態としてのリモート転送方法によれば、所定の条件が重なって転送デッドロックが生じた場合でも、正センタ１Ａ側のリモートＦＣＵ１０Ａによって、転送デッドロック状態のトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して転送エラーを生じたトラックの転送を行なうことにより、転送デッドロックが確実に回避され、トラックを確実に転送することができる。
【０１１６】
〔Ｅ〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、１０Ａと１０Ｂとの間が２本の通信回線６により接続されている場合について説明しているが、本発明はこれに限定されるものではなく、３本以上の通信回線６により接続してもよい。
【０１１７】
【発明の効果】
以上詳述したように、本発明の磁気ディスク制御装置によるリモート転送方法（請求項１〜３）によれば、トラックの転送中にエラーが発生し、副センタ側へのトラックの転送順序が逆転して所定の順序性が損なわれたとしても、副センタ側でトラックの順序調整を行なうことができるので、トラックの順序性を確実に保証することができる。
【０１１９】
また、本発明の磁気ディスク制御装置によるリモート転送方法（請求項１，４）によれば、所定の条件が重なって転送デッドロックが生じた場合、正センタ側磁気ディスク制御装置によって、転送デッドロック状態のトラックの転送を中断させ、そのトラックの転送のために使用中だった通信回線を使用して転送エラーを生じたトラックの転送を行なうことにより、転送デッドロックが確実に回避され、トラックを確実に転送することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態としてのリモート転送方法を説明するためのシーケンス図である。
【図２】本発明の第１実施形態としてのリモート転送方法を説明するためのブロック図である。
【図３】本発明の第１実施形態としてのリモート転送方法を、時間軸および図１および図２中の▲１▼〜▲８▼に対応させて説明するためのフローチャートである。
【図４】本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を説明するためのブロック図である。
【図５】本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を説明するためのシーケンス図である。
【図６】本発明の第１実施形態としてのリモート転送方法（転送エラー発生時）を、時間軸および図４および図５中の▲１▼〜▲９▼に対応させて説明するためのフローチャートである。
【図７】本発明の第２実施形態としてのリモート転送方法で用いられる順序性管理テーブルの例を示す図である。
【図８】本発明の第２実施形態としてのリモート転送方法を説明するためのブロック図である。
【図９】本発明の第２実施形態としてのリモート転送方法を、時間軸および図８中の  （１）〜（１０）に対応させて説明するためのフローチャートである。
【図１０】（ａ）〜（ｄ）は、それぞれ、本発明の第２実施形態としてのリモート転送方法を実行した際の順序性管理テーブルの登録状態を示す図である。
【図１１】本発明の第３実施形態としてのリモート転送方法を説明するためのブロック図である。
【図１２】本発明の第３実施形態としてのリモート転送方法を、時間軸および図１１中の  （１）〜（１０）に対応させて説明するためのフローチャートである。
【図１３】本発明の第４実施形態としてのリモート転送方法を説明するためのフローチャートである。
【図１４】本発明の第４実施形態としてのリモート転送方法（回線障害による転送エラー発生時）を説明するためのブロック図である。
【図１５】本発明の第４実施形態としてのリモート転送方法（回線障害による転送エラー発生時）を、時間軸および図１４中の▲１▼〜▲７▼に対応させて説明するためのフローチャートである。
【図１６】本来の業務を行なう正センタとバックアップ用の副センタとをそなえたシステムの従来構成を示すブロック図である。
【図１７】正センタおよび副センタにおけるリモートＦＣＵ間を通信回線により接続したリモートシステムの一般的構成の一例を示すブロック図である。
【図１８】一般的なリモートＦＣＵの構成を示すブロック図である。
【図１９】順序性が保たれているデータ書込／転送を説明するためのブロック図である。
【図２０】順序性が保たれているデータ書込／転送を、時間軸および図１９中の▲１▼〜▲４▼に対応させて説明するためのフローチャートである。
【図２１】順序性が保たれていないデータ書込／転送を説明するためのブロック図である。
【図２２】順序性が保たれていないデータ書込／転送を、時間軸および図２１中の▲１▼〜▲５▼に対応させて説明するためのフローチャートである。
【図２３】（ａ）および（ｂ）は、それぞれ、順序性を保証しながら転送されるべき２つのトラックの具体例を示す図である。
【図２４】図２３（ａ）および図２３（ｂ）にそれぞれ示す２つのトラックが順序性を保証されながら転送された時の副センタ側リモートＦＣＵの動作を説明するための図である。
【図２５】図２３（ａ）および図２３（ｂ）にそれぞれ示す２つのトラックの転送順序が逆になった時の副センタ側リモートＦＣＵの動作を説明するための図である。
【符号の説明】
１Ａ  正センタ（業務システム）
１Ｂ  副センタ（バックアップシステム）
２Ａ  正センタ側ホスト（ＣＰＵ）
２Ｂ  副センタ側ホスト（ＣＰＵ）
４Ａ  正センタ側磁気ディスク装置（ボリューム）
４Ｂ  副センタ側磁気ディスク装置（ボリューム）
６  通信回線
１０Ａ  正センタ側リモートＦＣＵ（正センタ側磁気ディスク制御装置）
１０Ｂ  副センタ側リモートＦＣＵ（副センタ側磁気ディスク制御装置）
１１  ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）
１２  ＲＭ（Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ）
１３  ＴＳ（Ｔａｂｌｅ  Ｓｔｏｒａｇｅ）
１４  ＲＡ（Ｒｅｍｏｔｅ  Ａｄａｐｔｅｒ）
１５  ＣＦＥ（Ｃａｃｈｅ  Ｆｕｎｃｔｉｏｎ  Ｅｎｇｉｎｅ）
１６  ＳＳ（Ｓｈａｒｅｄ  Ｓｔｏｒａｇｅ）
１６ａ  キャッシュメモリ
１７  ＤＡ（Ｄｅｖｉｃｅ  Ａｄａｐｔｅｒ）
１８  Ｃ−ＢＵＳ（Ｃｏｎｔｒｏｌ−ＢＵＳ）
２０  順序性管理テーブル（Ｔａｂｌｅ）
【図１】
0003612209.tif 000002
【図２】
0003612209.tif 000003
【図３】
0003612209.tif 000004
【図４】
0003612209.tif 000005
【図５】
0003612209.tif 000006
【図６】
0003612209.tif 000007
【図７】
0003612209.tif 000008
【図８】
0003612209.tif 000009
【図９】
0003612209.tif 000010
【図１０】
0003612209.tif 000011
【図１１】
0003612209.tif 000012
【図１２】
0003612209.tif 000013
【図１３】
0003612209.tif 000014
【図１４】
0003612209.tif 000015
【図１５】
0003612209.tif 000016
【図１６】
0003612209.tif 000017
【図１７】
0003612209.tif 000018
【図１８】
0003612209.tif 000019
【図１９】
0003612209.tif 000020
【図２０】
0003612209.tif 000021
【図２１】
0003612209.tif 000022
【図２２】
0003612209.tif 000023
【図２３】
0003612209.tif 000024
【図２４】
0003612209.tif 000025
【図２５】
0003612209.tif 000026