(57)【特許請求の範囲】
【請求項１】
中央処理装置とマスタ側ディスク装置がケーブルで接続され、前記マスタ側ディスク装置とリモート側ディスク装置がケーブルで接続され、前記中央処理装置とマスタ側ディスク装置とリモート側ディスク装置の間が、双方向のデータ転送、多重処理を行うインターフェイスで接続され、
前記マスタ側ディスク装置は、前記ケーブルを接続する第１のポートと、前記第１のポートに接続するヘッダ変換バッファと、前記ヘッダ変換バッファのフレームのヘッダ部の情報を変換するヘッダ変換制御回路と、前記中央処理装置からのデータが読み書きされるディスクドライブと、を有し、
前記中央処理装置からマスタ側ディスク装置へのデータ書き込みのチャネルコマンドワードチェイン処理と前記マスタ側ディスク装置からリモート側ディスク装置へのデータ書き込みのチャネルコマンドワードチェイン処理とを並行して、前記中央処理装置からの受信と前記リモート側ディスク装置への送信とを同一の前記第１のポートで行うものであり、
前記中央処理装置からマスタ側ディスク装置に発行されたデータ書き込み処理のチャネルコマンドワードチェインのフレームを、前記マスタ側ディスク装置の前記第１のポートで受信し、当該フレームのデータ書き込み処理を前記マスタ側ディスク装置内で行い、当該マスタ側ディスク装置内の処理と並行して、前記チャネルコマンドワードチェインのフレームを前記ヘッダ変換バッファに格納して前記ヘッダ変換制御回路によって当該フレームのヘッダ部の情報を前記リモート側ディスク装置への送信用にヘッダ変換し、当該変換されたフレームを前記第１のポートを介して前記リモート側ディスク装置へ送信し、
前記ヘッダ変換では、ヘッダ内の送信先ＩＤ及び送信元ＩＤを変え、チャネルコマンドワードチェインの対象のデバイスアドレスをマスタ側のデバイスアドレスからリモート側のデバイスアドレスに変え、
前記リモート側ディスク装置内では、前記マスタ側ディスク装置から受信した前記書き込み処理のチャネルコマンドワードチェインのフレームを処理してその応答を前記マスタ側ディスク装置へ送信し、
前記マスタ側ディスク装置では、前記マスタ側ディスク装置内の処理が終了し且つ前記リモート側ディスク装置からの応答を受けると前記中央処理装置へ応答を送信すること、を特徴とするデータ保証システム。
【請求項２】
一つまたは複数の中央処理装置とマスタ側ディスク装置がファイバーケーブルで接続され、前記マスタ側ディスク装置と一つまたは複数のリモート側ディスク装置がファイバーケーブルで接続され、前記中央処理装置−マスタ側ディスク装置間、及び前記マスタ側ディスク装置−リモート側ディスク装置間に、装置間接続をスイッチングするディレクタ装置が介在し、前記ディレクタ装置−マスタ側ディスク装置間は物理的に同一の前記ファイバーケーブルで接続され、前記中央処理装置とマスタ側ディスク装置とリモート側ディスク装置の間が、双方向のデータ転送、多重処理を行うファイバーチャネルプロトコルを用いて接続され、
前記マスタ側ディスク装置は、前記ファイバーケーブルを接続する第１のポートと、前記第１のポートに接続する送受信バッファと、前記送受信バッファに接続するヘッダ変換バッファを含む内部バッファと、フレームのヘッダ部を変換するヘッダ変換を含む前記ファイバーチャネルプロトコルに従う制御を行うプロトコル制御部と、前記内部バッファに接続するキャッシュメモリと、前記キャッシュメモリに接続するディスクドライブと、前記内部バッファ−キャッシュメモリ間のデータ処理を制御するチャネルアダプタ制御部と、前記キャッシュメモリ−ディスクドライブ間のデータ処理を制御するディスクアダプタ制御部と、を有し、
前記ファイバーチャネルプロトコルに従って前記中央処理装置からマスタ側ディスク装置へのデータ書き込みのチャネルコマンドワードチェイン処理と前記マスタ側ディスク装置からリモート側ディスク装置へのデータ書き込みのチャネルコマンドワードチェイン処理とを並行して、前記中央処理装置からの受信と前記リモート側ディスク装置への送信とを同一の前記第１のポートで行うものであり、
前記中央処理装置からマスタ側ディスク装置に発行されたデータ書き込み処理のチャネルコマンドワードチェインのフレームを、前記マスタ側ディスク装置は、前記第１のポートで受信して前記送受信バッファに格納し、当該フレームを前記プロトコル制御部によって解析し前記リモート側ディスク装置へ転送する場合には当該フレームを前記ヘッダ変換バッファに格納し、
前記マスタ側ディスク装置内の処理として、前記内部バッファの前記書き込み処理のフレームのデータを前記チャネルアダプタ制御部によって前記キャッシュメモリへ格納し、前記キャッシュメモリのデータを前記ディスクアダプタ制御部によって前記ディスクドライブへ書き込み処理を行い、
前記マスタ側ディスク装置内の処理と並行して、前記ヘッダ変換バッファのフレームを前記プロトコル制御部によって前記リモート側ディスク装置への送信用にヘッダ変換し、当該変換されたフレームを前記送受信バッファへ転送し当該送受信バッファから前記第１のポートを介して前記リモート側ディスク装置へ送信し、
前記ヘッダ変換では、ヘッダ内の送信先ＩＤをマスタ側からリモート側へ変え、送信元ＩＤを中央処理装置側からマスタ側へ変え、チャネルコマンドワードチェインの対象のデバイスアドレスをマスタ側のデバイスアドレスからリモート側のデバイスアドレスに変え、チャネルコマンドワードチェインのエクスチェンジのＩＤをマスタ側が管理するＩＤに変え、チャネルコマンドワードチェインのパスのＩＤをマスタ−リモート間のパスのＩＤに変え、
前記リモート側ディスク装置内では、前記マスタ側ディスク装置から受信した前記書き込み処理のチャネルコマンドワードチェインのフレームを処理してその応答を前記マスタ側ディスク装置へ送信し、
前記マスタ側ディスク装置では、前記マスタ側ディスク装置内の処理が終了し且つ前記リモート側ディスク装置からの応答を受けると前記ヘッダ変換して前記中央処理装置へ応答を送信すること、を特徴とするデータ保証システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メインフレームやオープン系サーバ等の中央処理装置（以降、ＣＰＵと称す）とマスタディスク制御装置（以降、ＭＣＵと称す）とリモートディスク制御装置（以降、ＲＣＵと称す）構成において、ファイバーチャネルを用いて接続される同期型のリモートコピー処理システムに関し、特に、ＭＣＵとＲＣＵ間のリモートコピー処理を高速及び、単一ポートで行うことを目的とするデータ保証システムに関する。
【０００２】
【従来の技術】
ＭＣＵ（マスタディスク制御装置）とＲＣＵ（リモートディスク制御装置）は、ディスクサブシステムの制御装置で、それぞれディスク駆動装置が接続されている。
【０００３】
ＭＣＵはホストプロセッサからマスタ側のディスク駆動装置へのI/Oオペレーションおよびマスタ及びリモート側のディスク駆動装間のコピー操作を制御する。さらにＭＣＵはリモートコピーのステータスと構成を管理する機能を提供する。
【０００４】
ＲＣＵは、ＭＣＵに指示された書込み操作を実行する。
同期型リモートコピーを行う従来技術としては、ＣＰＵ、ＭＣＵとＲＣＵ間を、ＥＳＣＯＮ（Enterprise System Connection）プロトコル（公知例 Enterprise Systems Architecture/390 ESCON I/O Interface）により接続した構成でのＰｅｅｒ−ｔｏ−Ｐｅｅｒ Ｒｅｍｏｔｅ Ｃｏｐｙがある（公知例 IBM Enterprise Storage Server Peer-toPeer Remote Copy、同一データの複製を複数台のEnterprise Storage Server上に置いて一貫性を維持する機能）。
【０００５】
情報処理システムは複数のチャネル装置と、チャネルに接続される一つまたは複数の入出力装置等を具備する。チャネルは入出力装置に対するコマンドコード、カウント、データアドレスを含むチャネルコマンドワード（ＣＣＷ：Channel Command Word）により、行うべき入出力動作を指定される。ＣＣＷは始めにプログラムによってＣＰＵの主記憶装置上に用意される。ＣＣＷにはコマンドチェインフラグがあり、チャネルはこのフラグが“１”のＣＣＷを実行した後、次のＣＣＷを連続して実行する。この動作をコマンドチェインと呼ぶ。
【０００６】
一般的にＥＳＣＯＮプロトコルを用いた同期型リモートコピー処理の場合は、ＣＰＵとＭＣＵ間でコマンドチェイン毎にそのコマンドが正常に終了したかを示すステータスを送信するプロトコルであることから、ＭＣＵ側の書き込みデータが確定した時点でＲＣＵにデータを転送する方式を取る。
【０００７】
例えば、２つのレコードを書き込み処理する場合、ＤＸ（Define Extext）／ＬＯＣ（LOCate record）／ＷＲＵＰＤ（Write Update Data）／ＷＲＵＰＤのＣＣＷチェインを用いる（公知例 IBM 3990/9390 Storage Control Reference）。「DEFINE EXTENT」、「LOCATE RECORD」（LOCATE RECORD コマンドにより、処理レコード数とデータ長が与える）これらはディスク制御コマンドであり、チャネルで指定されるデバイス上のディスクヘッドの位置合わせを指定し、「Write Update Data」はそこへのデータのアップデートを指示する。このＣＣＷチェインを発行した時のＣＰＵとＭＣＵ間の動作シーケンス及び、ＭＣＵからＲＣＵ側へのデータ転送タイミングと動作シーケンスを図２に示す。
【０００８】
まず、ＣＰＵから最初のコマンドであるＤＸのコマンドフレーム（DX CMD）をＭＣＵに対して送信する（２０１）。ＭＣＵはこれを受けてＤＸコマンドを受領したことを示すコマンドレスポンスフレーム（CMR）をＣＰＵに対して送信する（２０２）。
【０００９】
ＣＰＵはこれを受けてコマンドレスポンスを受領したことを示すコマンドレスポンス受領フレーム（ACPT CMR）をＭＣＵに対して送信する（２０３）。ＣＰＵはこれに続き、ＤＸコマンドのデータフレーム（DX DATA）をＭＣＵに対して送信する（２０４）。ＭＣＵはこれを受けてＤＸコマンドの処理を実行し、正常終了したならば、ＤＸコマンドが正常終了を示すステータスフレーム（STS'0C'）をＣＰＵに対して送信する（２０５）。
【００１０】
ＣＰＵはこれを受けてＤＸコマンドにコマンドチェインするＬＯＣのコマンドフレーム（LOC CMD）をＭＣＵに対して送信する（２０６）。ＭＣＵはこれを受けてＬＯＣコマンドを受領したことを示すコマンドレスポンス（CMR）をＣＰＵに対して送信する（２０７）。
【００１１】
ＣＰＵはこれを受けてＬＯＣコマンドのデータフレーム（LOC DATA）をＭＣＵに対して送信する（２０８）。ＭＣＵはこれを受けてＬＯＣコマンドの処理を実行し、正常終了したならば、ＬＯＣコマンドが正常終了したことを示すステータスフレーム（STS'0C'）をＣＰＵに対して送信する（２０９）。
【００１２】
ＣＰＵはこれを受けてＬＯＣコマンドにコマンドチェインするレコード１書き込みのためのＷＲＵＰＤコマンドフレーム（WRUPD#1 CMD）をＭＣＵに対して送信する（２１０）。ＭＣＵはこれを受けてレコード１のＷＲＵＰＤコマンドを受領したこと示すコマンドレスポンスフレーム（CMR）を送信する（２１１）。
【００１３】
ＣＰＵはこれを受けてレコード１のＷＲＵＰＤのデータフレーム（WRUPD#1 DATA）をＭＣＵに対して送信する（２１２）。ＭＣＵはこれを受けたタイミングでディスク駆動装置の当該トラックのレコード１から書き込みがあることを示すコマンドフレーム（WR CMD）をＲＣＵに対して送信する（２５１）。
【００１４】
また、ＭＣＵはＭＣＵ内でレコード１のＷＲＵＰＤコマンドの処理を実行し、正常終了したならば、レコード１のＷＲＵＰＤが正常終了したことを示すステータスフレーム（STS'0C'）をＣＰＵに対して送信する（２１３）。
【００１５】
ＣＰＵはこれを受けてレコード１のＷＲＵＰＤコマンドにコマンドチェインするレコード２書き込みのためのＷＲＵＰＤコマンドフレーム（WRUPD#2 CMD）をＭＣＵに対して送信する（２１４）。ＭＣＵはこれを受けてレコード２のＷＲＵＰＤコマンドを受領したこと示すコマンドレスポンスフレーム（CMR）をＣＰＵに対して送信する（２１５）。
【００１６】
ＣＰＵはこれを受けてレコード２のＷＲＵＰＤのデータフレーム（WRUPD#2 DATA）をＭＣＵに対して送信する（２１６）。一方、ＲＣＵはレコード１からの書き込みがあることを示すコマンドフレームを受けてコマンドフレームを受領したことを示すコマンドレスポンスフレーム(CMR)をＭＣＵに対して送信する（２５２）。
【００１７】
ＭＣＵはこれを受けて、ＣＣＷチェインの最後または、トラックの最後のデータ（本図ではレコード２の全データフレーム）を受領しているかをチェックし、受領していないならばレコード２の全データフレームの待ち状態となり、もし受領しているならば、レコード１、レコード２の書き込みデータ（WR DATA）の要求量に応じてデータをＲＣＵに送信する（２５３）。
【００１８】
ＭＣＵはレコード２のＷＲＵＰＤのデータフレームを受けて、ＭＣＵ内でレコード２のＷＲＵＰＤコマンド処理を実行し、正常終了したならば、ＲＣＵへのデータ書き込みが終了するまでＣＰＵとＭＣＵ間の接続を一時的に切り離しをするため、チャネルエンドを示すステータスフレーム（STS'08'）をＣＰＵに対して送信する（２１７）。
【００１９】
ＣＰＵはこれを受けてＣＣＷチェインの最後のステータスを受領したことを示すステータス受領フレーム（STS ACPT）をＭＣＵに対して送信する（２１８）。ＭＣＵはこれを受けてステータス受領フレームを受領したことを示すデバイスレベルアクノーレッジフレームをＣＰＵに対して送信する（２１９）。
【００２０】
一方、ＲＣＵはレコード１、レコード２のデータフレームを受けて、ＲＣＵ内で書き込み処理を実行し、正常終了したならば、正常終了したことを示すステータスフレーム（STS'0C'）をＭＣＵに対して送信する（２５４）。ＭＣＵはこれを受けて、ステータスを受領したことを示すステータス受領フレーム（STS ACPT）をＲＣＵに対して送信する（２５５）。
【００２１】
ＲＣＵはこれを受けてステータス受領フレームを受領したことを示すデバイスレベルアクノーレッジフレーム(DEVACK)をＭＣＵに対して送信し（２５６）、リモート側への書き込み処理は完了する。
【００２２】
また、ＭＣＵはＲＣＵからの正常終了ステータスを受領したことで、リモート側への書き込み処理が完了したと判断し、この契機でデバイスエンドのステータスを報告するために、ＣＰＵに対して再接続要求であるリクエストコネクションフレーム（REQ CON）を送信する（２２０）。
【００２３】
ＣＰＵはこれを受けて再接続要求を受領したことを示すコネクション受領フレームをＭＣＵに対して送信する（２２１）。ＭＣＵはこれを受けて再接続が受け付けられたと認識し、デバイスエンドを示すステータスフレーム（STS'04'）をＣＰＵに対して送信する（２２２）。
【００２４】
ＣＰＵはこれを受けてデバイスエンドのステータスを受領したことを示すステータス受領フレームをＭＣＵに対して送信する（２２３）。ＭＣＵはこれを受けてステータス受領フレームを受領したことを示すデバイスレベルアクノーレッジフレーム(DEVACK)をＣＰＵに送信し（２２４）、ＣＰＵからの書き込み処理が完了する。
【００２５】
以上のようにＥＳＣＯＮプロトコルにおける一般的なリモートコピー処理では、ＣＰＵからＭＣＵへのＣＣＷチェインの最後またはトラックの最後までのデータ転送が完了した時点でＭＣＵからＲＣＵへのデータ転送を開始する処理方式となるため、ＣＰＵ−ＭＣＵ間とＭＣＵ−ＲＣＵ間のデータ転送が並行して行われず、性能に影響する。
【００２６】
次にファイバーチャネルの技術について説明する。ファイバーチャネルの基礎となる部分は、ＡＮＳＩのＦＣ−ＰＨ（Fibre Channel PHysical and signalling）で規格化されている。ファイバーチャネルを用いた上位レベルのプロトコルは、ＦＣ−ＰＨに準拠することにより、共通のファイバーチャネル上で複数の上位レベルプロトコルが動作可能である。ＦＣ−ＰＨにはファイバーチャネルの特徴である、双方向の同時データ転送が定義されていて、これによりデータの受送信が並行することが可能となっている。
【００２７】
また、ＦＣ−ＰＨには、エクスチェンジという概念が定義されている。ＣＰＵがディスクサブシステムに対して発行する１つの入出力命令に関してディスク制御装置との間でやりとりされるコマンドフレームとデータフレームの一連の送受信シーケンスをエクスチェンジという。このエクスチェンジを使用することにより、多重処理が可能となっている。
【００２８】
また、ＦＣ−ＰＨにはファイバーチャネルの一般的なフレーム構造が定義されている。フレームはSOF(Start_of_Frame)、Frame Header、DataField、CRC（Cyclic Redundancy Check character）、EOF（End_of_Frame）から構成され、このうちFrame Header内に送信先アドレスを示すＤ＿ＩＤ（Destination_ID）と、送信元のアドレスを示すＳ＿ＩＤ（Source_ID）が含まれている。このＦＣ−ＰＨで定義された共通のＤ＿ＩＤ、Ｓ＿ＩＤによって送信方向が決定される。
【００２９】
【発明が解決しようとする課題】
本発明の目的は、リモートコピー処理で、ＣＰＵ−ＭＣＵ間とＭＣＵ−ＲＣＵ間のデータ転送を並行して行い、且つ、ＣＰＵからの受信とＲＣＵへの送信を同一ポートで実現するものである。
【００３０】
【課題を解決するための手段】
本発明のデータ保証システムは、ファイバーチャネルプロトコルを用いたリモートコピー処理であり、ファイバーチャネルプロトコルの特徴である双方向のデータ転送、多重処理を活用し、ヘッダ変換バッファとヘッダ変換制御部から構成されるヘッダ変換回路を用いて、ＣＰＵから受領したフレームをＭＣＵ内のヘッダ変換バッファに一旦格納し、フレームのヘッダ部をＲＣＵ送信用に変換し送信することで課題を解決する。
【００３１】
【発明の実施の形態】
以下、図面を参照しながら、本発明の一実施例であるファイバーチャネルにおけるデータ保証システムについて説明する。
【００３２】
図１は本発明の一実施例であるファイバーチャネルプロトコルを用いたリモートコピーシステムの構成を示す図である。本実施例の構成は、大きくは中央処理装置であるＣＰＵ（１０１）と、マスタ側ディスク制御装置であるＭＣＵ（１０２）と、マスタ側のディスク駆動装置であるＤＫＵ（１０３）と、リモート側ディスク制御装置であるＲＣＵ（１０４）と、リモート側のディスク駆動装置であるＤＫＵ（１０５）と、ＣＰＵ−ＭＣＵ−ＲＣＵ間の接続をスイッチングするディレクタ装置（１０６）と、ＣＰＵとディレクタ装置間を接続するファイバーケーブル（１０７）と、ディレクタ装置とＭＣＵ間を接続するファイバーケーブル（１０８）と、ディレクタ装置とＲＣＵを接続するファイバーケーブル（１０９）から構成される。
【００３３】
中央処理装置は、メインフレームであっても良いし、オープン系のサーバであっても良い。また接続構成としては、ディレクタ装置を介在せずに、ＣＰＵ−ＭＣＵ間及び、ＭＣＵ−ＲＣＵ間を直接ファイバーケーブルで結合した構成であっても良い。
【００３４】
さらに、ＲＣＵが複数存在し、これをＭＣＵ−ディレクタ間は単一ファイバーケーブルでディレクタ装置から複数ＲＣＵに接続する構成、または、ＭＣＵから直接複数ＲＣＵに接続する構成であっても良い。
【００３５】
さらに、複数ＣＰＵが存在し、これをＭＣＵ−ディレクタ間は単一ファイバーケーブルでディレクタ装置から複数ＣＰＵに接続、または、ＭＣＵと直接複数ＣＰＵに接続する構成であっても良い。本発明の基礎となるＭＣＵの内部構造は、ＣＰＵまたはＲＣＵからのフレームを受信するための受信バッファ（１１１）と、ＣＰＵまたはＲＣＵへフレームを送信するための送信バッファ（１１２）と、ＣＰＵから受信したフレームをヘッダ変換してＲＣＵへ転送、または、ＲＣＵから受信したフレームをヘッダ変換してＣＰＵへ転送するためのヘッダ変換バッファ（１１３）と、ヘッダ変換バッファを含み、またＣＰＵから受信したフレームをＭＣＵ内でのＣＡＣＨＥ（１１５）に転送するための一時的データ格納領域である内部バッファ（１１４）と、高速処理等の目的でドライブの一部情報を格納するＣＡＣＨＥ（１１５）と、ＲＣＵ送信のためヘッダ変換処理等の制御を行うファイバープロトコル制御部（１１６）と、内部バッファ（１１４）とＣＡＣＨＥ（１１５）間のデータ処理を制御するチャネルアダプタ制御部（１１７）と、ＣＡＣＨＥ（１１５）とディスクドライブ間のデータ処理を制御するディスクアダプタ制御部（１１８）から構成される。
【００３６】
例えば、ＣＰＵとＭＣＵとＲＣＵ間を接続するメインフレームのファイバーチャネルであるＦＩＣＯＮ（Fibre Channel Connection）は、ＡＮＳＩで規格されているＦＣ−ＳＢ−２（FIBRE CHANNEL SINGLE-BYTE COMMAND CODE SET-2 MAPPING PROTOCOL）をベースとしている。このＦＩＣＯＮの特徴としては、ファイバーチャネルプロトコルを用いていることから、送信・受信が双方向に行えること及び、エクスチェンジという単位を多重で処理することが可能である。
【００３７】
つまり、単一ケーブル上でＣＰＵからＭＣＵへの書き込み処理のＣＣＷチェインデータ受信中に、ＭＣＵからＲＣＵへの書き込み処理のＣＣＷチェインデータ送信が可能である。また、ＦＩＣＯＮにはコマンドチェインをパイプラインで送信する特徴もあり、これによりＣＣＷチェイン内のコマンド毎に正常終了のステータスを受領することなく、パイプライン的に連続してコマンドの発行が可能である。この構成を用いて、ＣＰＵから発行されたフレームを受信バッファに格納し、ＦＩＣＯＮプロトコル制御部にてフレームの解析処理を行い、その結果リモート側のＲＣＵに転送が必要なフレームならば、内部バッファに転送してヘッダの変換処理を行い、送信バッファに転送することによりＲＣＵへ並行処理することが可能となる。
【００３８】
図３及び図４はフレームの受信からの全体的な処理フローを示した図である。まず、フレームを受信した契機でそのフレームがＣＰＵまたはＲＣＵから受信したフレームかを判定する（３０１）。もしＣＰＵまたはＲＣＵからの受信フレームならば、受信バッファからフレーム情報、コマンド情報、パラメタ情報を取り込む（３０２）。
【００３９】
次に、受信したフレームがＣＰＵから受信したかを判定する（３０３）。もしＣＰＵからの受信フレームならば、リモートコピー対象ＣＣＷチェイン情報が確定か、不確定かを判定する（３０４）。
【００４０】
もし、リモートコピー対象ＣＣＷチェイン情報が不確定ならば、リモートコピー対象外ＣＣＷチェイン情報が確定か、不確定かを判定する（３０５）。もし、リモートコピー対象外ＣＣＷチェイン情報が不確定ならば、コマンド情報とパラメタ情報を用いてリモートコピー要否の解析処理を行う（３０６）。この解析処理については図５で詳細を述べる。
【００４１】
次に、３０６の解析結果から、リモートコピー要情報が要に設定されているかを判定する（３０７）。もしリモートコピー要情報が不確定ならば、リモートコピー不要情報が不要に設定されているかを判定する（３０８）。もし、リモートコピー不要情報が不確定ならば、受信したフレームを内部バッファに転送し、以降のコマンドフレームの解析処理でリモートコピー要否が決定するまで蓄積しておく（３０９）。
【００４２】
次に当該フレームのＭＣＵ内での処理を実行し（３１０）、フレーム受信処理に戻る。もし、３０８の判定処理で、リモートコピー不要情報が不要に設定されているならば、リモートコピー処理が不要であることから、今まで内部バッファに蓄積しておいたフレームを解放する（３１１）。
【００４３】
次に、当該ＣＣＷチェインがリモートコピー対象外ＣＣＷチェインであることを示す情報を設定する（３１２）。次に、当該フレームのＭＣＵ内での処理を実行し（３１３）、フレーム受信処理に戻る。もし、３０７の判定処理で、リモートコピー要情報が要に設定されているならば、リモートコピー処理が必要であることから、まずフレーム情報を内部バッファに転送する（３２１）。
【００４４】
次に、今まで内部バッファに蓄積したフレームとともに、ヘッダの変換処理を実行する（３２２）。このヘッダ変換の対象となるヘッダ情報については、図６で詳細を述べる。次に、ヘッダを変換したフレームを送信バッファに転送し、ＲＣＵへ送信する（３２３）。次に、当該ＣＣＷチェインがリモートコピー対象ＣＣＷチェインであることを示す情報を設定する（３２４）。
【００４５】
次に、当該フレームのＭＣＵ内での処理を実行し（３２５）、フレーム受信処理に戻る。もし、３０５の判定処理で、リモートコピー対象外ＣＣＷチェイン情報が確定していたならば、リモートコピー処理が不要であることから、３１１以降の処理へ移る。もし、３０４の判定処理で、リモートコピー対象ＣＣＷチェイン情報が確定していたならば、リモートコピーが必要であることから、３２１以降の処理へ移る。もし、３０３の判定処理で、ＭＣＵからの受信フレームならば、ＭＣＵ側での当該受信フレーム相当の処理が終了しているかを判定する（３３１）。もし、処理終了済みならば、ＣＰＵにフレームを送信する必要があることから、まずフレーム情報を内部バッファに転送する（３３２）。次に、ヘッダの変換処理を実行する（３３３）。
【００４６】
次に、ヘッダを変換したフレームを送信バッファに転送し、ＣＰＵへ送信し（３３４）、フレーム受信処理に戻る。もし、３３１の判定処理で、ＭＣＵ側での当該受信フレーム相当の処理が終了していないならば、当該フレームがＲＣＵで処理終了していることを示す情報を設定し（３４１）、フレーム受信処理に戻る。もし、３０１の判定処理で、ＭＣＵ内部でのフレームならば、ＲＣＵ側での当該受信内部フレーム相当の処理が終了しているかを判定する（３５１）。
【００４７】
もし、処理終了済みならば、送信バッファ上に送信フレームを生成し、ＣＰＵに送信し（３５２）、フレーム受信処理に戻る。もし、３５１の判定処理で、ＲＣＵ側での当該受信内部フレーム相当の処理が終了していないならば、当該フレームがＭＣＵで処理終了していることを示す情報を設定し（３６１）、フレーム受信処理に戻る。
【００４８】
図５は受信したフレーム内のコマンド情報及び、パラメタ情報からリモートコピー要否を解析するフローを示した図である。まず、コマンド情報及び、パラメタ情報を取り込む（４０１）。次に、コマンドがＲＥＡＤ（読み出し処理）またはＷＲＩＴＥ（書き込み処理）の可能性のあるコマンドかを判定する（４０２）。もし、ＲＥＡＤまたはＷＲＩＴＥの可能のあるコマンドならば、ＲＥＡＤまたはＷＲＩＴＥ系コントロールコマンドかを判定する（４０３）。
【００４９】
もし、ＲＥＡＤまたはＷＲＩＴＥ系のコントロールコマンドであるならば、パラメタ情報及び、ＭＣＵで管理しているリモートコピー対象領域情報より、当該ＣＣＷチェインがリモートコピー対象範囲へのＷＲＩＴＥアクセスかを判定する（４０４）。
【００５０】
もし、リモートコピー対象範囲へのＷＲＩＴＥアクセスであることが断定できなかったならば、コマンド情報からコマンドチェイン条件を判定する（４０５）。もし、コマンドチェインしないならば、リモートコピー対象外のＣＣＷチェインであるため、リモートコピー不要情報を設定し（４０６）、次の処理へ移る。もし、４０５の判定処理で、コマンドチェインするのであれば、リモートコピー要否が不確定であるため、リモートコピー情報は不確定のまま、次の処理へ移る。もし、４０４の判定処理で、リモートコピー対象範囲へのＷＲＩＴＥアクセスであったならば、リモートコピーが必要であることから、リモートコピー要情報を設定し（４１１）、次の処理へ移る。
【００５１】
もし、４０３の判定処理で、ＲＥＡＤまたはＷＲＩＴＥコマンドそのものであったならば、ＷＲＩＴＥコマンドであるか、ＲＥＡＤコマンドであるか判定する（４２１）。もし、ＲＥＡＤコマンドであるならば、コマンド情報からコマンドチェイン条件を判定する（４２２）。
【００５２】
もし、コマンドチェインしないならば、リモートコピー対象外のＣＣＷチェインであるため、リモートコピー不要情報を設定し（４２３）、次の処理へ移る。もし、４２２の判定処理で、コマンドチェインするのであれば、リモートコピー要否が不確定であるため、リモートコピー情報は不確定のまま、次の処理へ移る。もし、４２１の判定処理で、ＷＲＩＴＥコマンドであるならば、ＭＣＵで管理しているリモートコピー対象領域情報より、リモートコピー対象範囲へのアクセスかを判定する（４３１）。
【００５３】
もし、リモートコピー対象範囲へのアクセスならば、リモートコピーが必要であるため、リモートコピー要情報を設定して（４３２）、次の処理へ移る。もし、４３１の判定処理で、リモートコピー対象範囲へのアクセスでないならば、リモートコピーが不要であるため、リモートコピー不要情報を設定し（４４１）、次の処理へ移る。
【００５４】
もし、４０２の判定処理で、ＲＥＡＤまたはＷＲＩＴＥの可能性ないコマンドあるならば、リモートコピーが不要であるため、リモートコピー不要情報を設定し（４５１）、次の処理へ移る。
【００５５】
図６はＦＩＣＯＮデバイスレベルのフレームフォーマットとヘッダ変換処理で変換対象となる情報を示した図である。ＦＩＣＯＮデバイスレベルのフレームは、Start of Frame(SOF) ４バイトと、FC-PH Frame Header ２４バイト（５０１）と、FC-SB-2 Header ８バイト（５０２）と、IU Header ８バイトと、DIB Header １２バイトと、FC-SB-2 LRC ４バイトと、DIB Data ０から２０１６バイトと、FC-PH LRC ４バイトと、End of Frame(EOF) ４バイトから構成される。
【００５６】
但し、ＦＣ−ＳＢ−２の階層では、８１９２バイトのインフォーメションユニット（以降ＩＵと称す）という単位でデータを扱うため、FC-SB-2 HeaderからDIB Dataまでの合計が２０４８バイトを超えるＩＵの場合は、Start of Frame(SOF) ４バイトと、FC-PH Frame Header ２４バイト（５０１）と、DIB Data ０から２０４８バイトと、FC-PH LRC ４バイトと、End of Frame(EOF) ４バイトから構成されるフレームとなる。
【００５７】
このうち、５０１のFC-PH Frame Headerは、R_CTL Field １バイトと、D_ID Field ３バイト（５１１）と、CS_CTL Field １バイトと、S_ID Field ３バイト（５１２）と、TYPE Field １バイトと、F_CTL Field ３バイトと、SEQ_ID Field １バイトと、DF_CTL Field １バイトと、SEQ_CNT Field ２バイトと、OX_ID Field ２バイト（５１３）と、RX_ID ２バイトと、Parameter Field ４バイトから構成される。また、５０２のFC-SB-2 Headerは、Reserved １バイトと、Channel Image ID 1バイト（５２１）と、Reserved １バイトと、Control-Unit Image ID １バイト（５２２）と、Device Address ２バイト（５２３）と、Reserved ２バイトから構成される。
【００５８】
ＣＰＵから受信したフレームをＲＣＵに送信するためのヘッダ変換処理では、ＭＣＵ内で管理している、リモートコピーにより作成されたペアボリュームのペア情報をもとに、まずフレームの送信先を示すD_ID（５１１）をＭＣＵのD_IDからＲＣＵのD_IDに変換する。また、フレームの送信元を示すS_ID（５１２）をＣＰＵのS_IDからＭＣＵのS_IDに変換する。また、ＣＣＷチェインのエクスチェンジを示すOX_ID（５１３）をＣＰＵで管理しているOX_IDからＭＣＵで管理するOX_IDに変換する。また、ＣＣＷチェインの処理対象となる論理パスのCH Image ID（５２１）をＣＰＵ−ＭＣＵ間の論理パスのCH Image IDからＭＣＵ−ＲＣＵ間の論理パスのCH Image IDに変換する。
【００５９】
また、ＣＣＷチェインの処理対象となる論理パスのCU Image ID（５２２）をＣＰＵ−ＭＣＵ間の論理パスのCU Image IDからＭＣＵ−ＲＣＵ間の論理パスのCU Image IDに変換する。また、ＣＣＷチェインの処理対象となるDevice Address（５２３）をＭＣＵのDevice AddressからリモートコピーのペアとなるＲＣＵのDevice Addressに変換する。
【００６０】
一方、ＲＣＵから受信したフレームをＣＰＵに送信するためのヘッダ変換処理では、ＭＣＵ内で管理しているリモートコピーのペア情報をもとに、まずフレームの送信先を示すD_ID（５１１）をＭＣＵのD_IDからＣＰＵのD_IDに変換する。また、フレームの送信元を示すS_ID（５１２）をＲＣＵのS_IDからＭＣＵのS_IDに変換する。
【００６１】
また、ＣＣＷチェインのエクスチェンジを示すOX_ID（５１３）をＲＣＵで管理しているOX_IDからＭＣＵで管理するOX_IDに変換する。また、ＣＣＷチェインの処理対象となる論理パスのCH Image ID（５２１）をＭＣＵ−ＲＣＵ間の論理パスのCH Image IDからＣＰＵ−ＭＣＵ間の論理パスのCH Image IDに変換する。また、ＣＣＷチェインの処理対象となる論理パスのCU Image ID（５２２）をＭＣＵ−ＲＣＵ間の論理パスのCU Image IDからＣＰＵ−ＭＣＵ間の論理パスのCU Image IDに変換する。また、ＣＣＷチェインの処理対象となるDevice Address（５２３）をＲＣＵのDevice AddressからリモートコピーのペアとなるＭＣＵのDevice Addressに変換する。
【００６２】
図７は本発明を適用した時のＣＰＵとＭＣＵ間の動作シーケンス及び、ＭＣＵからＲＣＵ側へのデータ転送タイミングと動作シーケンスを示す図である。まず、ＣＰＵからＤＸ（Define Extext）のコマンド及び、ＤＸのパラメタを含むＣＭＤ＋ＤＡＴＡフレーム（DX CMD+DATA）をＭＣＵに対して送信する（６０１）。ＭＣＵはこれを受けてフレームの解析処理を行う。ＤＸコマンドのパラメタからは、当該ＣＣＷチェインがリモートコピー対象であるかは不確定のため、ＲＣＵへの送信せず、内部バッファに蓄積する。
【００６３】
ＣＰＵはこれに続き、ＬＯＣ（LOCate record）のコマンド及び、パラメタを含むＣＭＤ＋ＤＡＴＡフレーム（LOC CMD+DATA）をＭＣＵに対して送信する（６０２）。ＭＣＵはこれを受けてフレームの解析処理を行う。ＬＯＣコマンドのパラメタには、当該ＣＣＷチェインがリモートコピー対象であるかを判定可能な情報が含まれている。
【００６４】
ここで、もしリモートコピー要と判定されたならば、先に受領して内部バッファに蓄積中のＤＸ ＣＭＤ＋ＤＡＴＡのヘッダ変換処理を行い、ＲＣＵに対して送信する（６５１）。また、これに続きＬＯＣ ＣＭＤ＋ＤＡＴＡのヘッダ変換処理を行い、ＲＣＵに対して送信する（６５２）。
【００６５】
ＣＰＵは６０２に続き、レコード１のＷＲＵＰＤ（Write Update Data）コマンド及び、レコード１のデータを含むＣＭＤ＋ＤＡＴＡフレーム（WRUPD#1 CMD+DATA）をＭＣＵに対して送信する（６０３）。ＭＣＵはこれを受けて、既に当該ＣＣＷチェインがリモートコピー対象となっているので、WRUPD#1 CMD+DATAをヘッダの変換処理を行い、ＲＣＵに対して送信する（６５３）。
【００６６】
ＣＰＵは６０３に続き、レコード２のＷＲＵＰＤコマンド及び、レコード２のデータを含むＣＭＤ＋ＤＡＴＡフレーム（WRUPD#2 CMD+DATA）をＭＣＵに対して送信する（６０４）。ＭＣＵはこれを受けて、既に当該ＣＣＷチェインがリモートコピー対象となっているので、WRUPD#2 CMD+DATAをヘッダの変換処理を行い、ＲＣＵに対して送信する（６５４）。
【００６７】
ＲＣＵは６５１のDX CMD+DATAを受信し、ＤＸコマンドを受領したことを示すコマンドレスポンスフレーム（CMR）をＭＣＵに対して送信する（６５５）。ＭＣＵはこれを受けて、ＭＣＵ内部でのＤＸコマンドの受領処理が完了しているならば、CMRのヘッダ変換処理を行い、ＣＰＵに対して送信する（６０５）。
【００６８】
ＲＣＵは６５５に続いて、LOC CMD+DATA、WRUPD#1 CMD+DATA、WRUPD#2 CMD+DATAの処理を実行し、WRUPD#2 CMD+DATAの処理が正常に終了した時点で、WRUPD#2 CMD+DATAが正常終了したことを示すステータスフレーム(STS'0C')をＭＣＵに対して送信する（６５６）。ＭＣＵはこれを受けて、ＭＣＵ内部でのレコード２のＷＲＵＰＤコマンドの処理が正常完了しているならば、STS'0C'のヘッダ変換処理を行い、ＣＰＵに対して送信する（６０６）。ＣＰＵはこれを受けて、正常終了のステータスを受領したことを示すステータス受領フレーム（STS ACPT）をＭＣＵに対して送信する（６０７）。
【００６９】
ＭＣＵはこれを受けて、STS ACPTのヘッダ変換処理を行い、ＲＣＵに対して送信し（６５７）、ＣＣＷチェインの処理が完結する。以上、述べたようにデータ転送を並行に行うことができ、データ転送タイミングと動作シーケンスを示す従来技術例（図２）と図７を比較すると、明らかに処理性能が向上することが解かる。
【００７０】
【発明の効果】
本発明のデータ保証システムは、ＦＩＣＯＮプロトコルを用いたリモートコピー処理であり、ＣＰＵから受領したフレームをＭＣＵ内の内部バッファに一旦格納し、フレームのヘッダ部をＲＣＵ送信用に変換し送信することにより、ＣＰＵ−ＭＣＵ間とＭＣＵ−ＲＣＵ間のデータ転送を並行に行うことができ処理性能が向上する。また、ＣＰＵからの受信とＲＣＵへの送信を同一ポートで実現することができる。
【図面の簡単な説明】
【図１】  ファイバープロトコルを用いたリモートコピーシステムの構成を示す図である。
【図２】  ＥＳＣＯＮプロトコル上でのＣＰＵとＭＣＵ間の動作シーケンス及び、ＭＣＵからＲＣＵ側へのデータ転送タイミングと動作シーケンスを示す図である。
【図３】  フレームの受信からの全体的な処理フローを示した図である。
【図４】  フレームの受信からの全体的な処理フローを示した図である。
【図５】  受信したフレーム内のコマンド情報及び、パラメタ情報からリモートコピー要否を解析するフローを示した図である。
【図６】  デバイスレベルのフレームフォーマットとヘッダ変換処理で変換対象となる情報を示した図である。
【図７】  本発明を適用した時のＣＰＵとＭＣＵ間の動作シーケンス及び、ＭＣＵからＲＣＵ側へのデータ転送タイミングと動作シーケンスを示す図である。
【符号の説明】
１０１・・・中央処理装置（ＣＰＵ）
１０２・・・マスタ側ディスク制御装置（ＭＣＵ）
１０３・・・マスタ側のディスク駆動装置
１０４・・・リモート側ディスク制御装置（ＲＣＵ）
１０５・・・リモート側のディスク駆動装置
１０６・・・ディレクタ装置
１０７・・・ＣＰＵとディレクタ装置間を接続するファイバーケーブル
１０８・・・ディレクタ装置とＭＣＵ間を接続するファイバーケーブル
１０９・・・ディレクタ装置とＲＣＵを接続するファイバーケーブル
１１１・・・受信バッファ
１１２・・・送信バッファ
１１３・・・内部バッファ
１１４・・・ＣＡＣＨＥ
１１５・・・ファイバープロトコル制御部
１１６・・・チャネルアダプタ制御部
１１７・・・ディスクアダプタ制御部。
【図１】
0004148663.tif 000002
【図２】
0004148663.tif 000003
【図３】
0004148663.tif 000004
【図４】
0004148663.tif 000005
【図５】
0004148663.tif 000006
【図６】
0004148663.tif 000007
【図７】
0004148663.tif 000008