(57)【特許請求の範囲】
【請求項１】
第１の装置から第２の装置宛に送信されるデータを記憶する第１の記憶領域のアドレスと前記データのコピー元領域およびコピー先領域を識別する属性情報とを関連付けた第１の管理情報と、前記第１の記憶領域に対応する第２の記憶領域のアドレスを管理する第２の管理情報とを記憶する管理情報記憶部と、
前記第１の管理情報により管理される前記第１の記憶領域のアドレスと前記第２の管理情報により管理される前記第２の記憶領域のアドレスとを交換し、前記属性情報を前記第２の管理情報に追加する情報処理部と、
前記第２の管理情報に含まれている前記属性情報を前記第２の装置に送信し、前記第１の管理情報と前記第２の管理情報との間で交換された前記第１の記憶領域のアドレスに記憶されている前記データを前記第２の装置に送信する送信部と、
を有することを特徴とする中継装置。
【請求項２】
前記第１の記憶領域の識別情報と前記第２の記憶領域の識別情報とを関連付けた関連情報を記憶する関連情報記憶部をさらに有し、
前記情報処理部は、前記第２の装置に前記データを送信する際に、前記関連情報記憶部が記憶している前記関連情報を参照して、前記第１の記憶領域の識別情報に関連付いている前記第２の記憶領域の識別情報を管理する前記第２の管理情報を特定し、
前記送信部は、前記第２の装置に前記データを送信する際に前記情報処理部が特定した前記第２の管理情報を参照し、前記第２の管理情報により管理されるアドレスに記憶されているデータを前記第２の装置に送信することを特徴とする請求項１記載の中継装置。
【請求項３】
前記情報処理部は、前記第１の記憶領域が確保されるタイミングに併せて前記第２の記憶領域を確保し、確保した前記第１の記憶領域の識別情報と前記第２の記憶領域の識別情報とを関連付けた前記関連情報を前記関連情報記憶部に記憶することを特徴とする請求項２記載の中継装置。
【請求項４】
第１の装置から第２の装置宛に送信されるデータを記憶する第１の記憶領域のアドレスと前記データのコピー元領域およびコピー先領域を識別する属性情報とを関連付けた第１の管理情報と、前記第１の記憶領域に対応する第２の記憶領域のアドレスを管理する第２の管理情報とを記憶する管理情報記憶部に記憶された前記第１の管理情報により管理される前記第１の記憶領域のアドレスと前記第２の管理情報により管理される前記第２の記憶領域のアドレスとを交換し、
前記属性情報を前記第２の管理情報に追加し、
前記第２の管理情報に含まれている前記属性情報を前記第２の装置に送信し、
前記第１の管理情報と前記第２の管理情報との間で交換された前記第１の記憶領域のアドレスに記憶されている前記データを前記第２の装置に送信する、
ことを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中継装置および中継方法に関する。
【背景技術】
【０００２】
ホスト装置と、ホスト装置のデータを格納するストレージ装置を備えるストレージシステムが知られている。
一般的なストレージシステムでは、ストレージシステムの性能や信頼性を向上するため等の目的で、データを二重化して複数のディスクに記録する技術が知られている。また、複数のストレージ装置を離れた位置に設置し、ストレージ装置間でデータを等価に保つリモートコピー機能が知られている。
【０００３】
ストレージ装置等の記憶装置への書き込み順序をデータベース自身で制御・保証することにより、サーバ等の装置障害や災害が発生した場合においてもリカバリを行う手段を保持する技術が知られている。リモートコピー機能を使用したストレージ装置においては、ホストからライトされたデータを転送する順序を維持しながらミラーリングのストレージ装置に対してデータを反映させる技術が知られている。順序性が保証されていれば、運用中のホスト装置が災害でダウンしても、予備のストレージシステムのホスト装置を使用して、ミラーリングされたストレージ装置に格納されているデータを基にデータ処理の継続が可能なためである。
【０００４】
また、リモートコピーにおいて、マスタストレージシステムとサブストレージシステムとの間の接続距離が長距離になると通信レスポンスが低下して、データコピーが遅延することが知られている。このため、マスタストレージシステムとサブストレージシステムとの間にコピー対象のデータを一時格納するキャッシュディスクを設ける技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２６０２９２号公報
【特許文献２】国際公開第２００８／１３９５４５号
【特許文献３】特開２００６−１５５２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図２２は、ストレージ装置のリモートコピー制御方法の一例である。
図２２（ａ）は、コピー元のストレージ装置７１の制御モジュール７４（ＣＭ０、ＣＭ１）の専用のバッファ７２とリモート接続されているストレージ装置８１の制御モジュール８４（ＣＭ０、ＣＭ１）の専用のバッファ８２間上でデータの転送を行うことによりミラーリングを実現する一例を示している。
【０００７】
１）コピー元のストレージ装置７１では、ホストからのデータＩ／Ｏ（１）〜Ｉ／Ｏ（５）をディスク装置７３に一旦格納し、その後、転送用のバッファ７２に格納する。
２）コピー元のストレージ装置７１からコピー先のストレージ装置８１に対してバッファ７２とバッファ８２間で定期的にデータを転送する。なお、コピー元のストレージ装置７１は、バッファ７２からコピー先のストレージ装置８１へ転送するタイミングをＣＭ０−ＣＭ１間で同期して転送している。
【０００８】
３）コピー先のストレージ装置８１では、コピー元のストレージ装置７１から転送されたデータをディスク装置８３に反映する。このとき、コピー先のストレージ装置８１にて、バッファ８２を出力するタイミングをＣＭ０−ＣＭ１間で同期している。
【０００９】
そして、バッファ７２、バッファ８２は複数あり、その複数のバッファ７２間、複数のバッファ８２間のそれぞれのデータを転送する順序を維持し、かつバッファ７２とバッファ８２とを対応させながらコピー元のストレージ装置７１からコピー先のストレージ装置８１にデータを転送している。この結果、コピー先のストレージ装置８１においてのデータを転送する順序を保証している。
【００１０】
ところで、最近では、システムとしてデータ保証の考えが強化されており、ミラーリングする装置は、１装置のみでなく、１つまたは複数の装置を介してミラーリングを実施する方法が知られている。例えば、図２２（ｂ）に示すように、ストレージ装置７１とストレージ装置８１を中継するストレージ装置９１には、バッファ９２を有する制御モジュール９３と、バッファ９４を有する制御モジュール９５が存在する。
【００１１】
１）コピー元のストレージ装置７１から転送され、バッファ９２に格納されたデータを一旦ディスク装置９６に格納する。バッファ９２内のデータのディスク装置９６への出力は並行して実施しているため、データを転送する順序は、考慮されていない。
【００１２】
２）ディスク装置９６に格納されたデータをバッファ９４へ格納した後、コピー先のストレージ装置８１に転送する動作を行う。ここで、ディスク装置９６に書き込まれた順序でバッファ９４へデータを格納するため、前述したように、データを転送する順序は保証されずに、ストレージ装置８１に転送する動作を行う。
【００１３】
このように、ストレージ装置９１とストレージ装置７１との間、ストレージ装置９１とストレージ装置８１との間毎に独立したリモートコピーを管理することになるため、複数装置にまたがったデータを転送する順序を保証できないという問題がある。
【００１４】
本発明はこのような点に鑑みてなされたものであり、受信用バッファが受信したデータをデータ送信用のバッファに移さずに他の装置に転送する中継装置および中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、開示の中継装置が提供される。この中継装置は、管理情報記憶部と、情報処理部と、送信部とを有する。
管理情報記憶部は、第１の装置から第２の装置宛に送信されるデータを記憶する第１の記憶領域のアドレスを管理する第１の管理情報と、第１の記憶領域に対応する第２の記憶領域のアドレスを管理する第２の管理情報とを記憶する。
【００１６】
情報処理部は、第１の管理情報により管理される第１の記憶領域のアドレスと第２の管理情報により管理される第２の記憶領域のアドレスとを交換する。
送信部は、第１管理情報と第２管理情報との間で交換された第１の記憶領域のアドレスに記憶されている情報を第２の装置に送信する。
【発明の効果】
【００１７】
第１の記憶領域に記憶されたデータを第２の記憶領域に移さずに第２の装置に転送することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態の中継装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】ストレージ装置の機能を示すブロック図である。
【図４】コマンドパラメータを説明する図である。
【図５】セッション管理データを説明する図である。
【図６】ＲＥＣバッファ管理データを説明する図である。
【図７】ＲＥＣバッファの設定組み合わせの一例を説明する図である。
【図８】バッファ識別データを説明する図である。
【図９】バッファセットデータを説明する図である。
【図１０】コピー元装置のセッションコマンド処理を示すフローチャートである。
【図１１】中継装置のセッションコマンド処理を示すフローチャートである。
【図１２】コピー先装置のセッションコマンド処理を示すフローチャートである。
【図１３】中継装置のセッションコマンド処理を示すフローチャートである。
【図１４】コピー元装置のセッションコマンド処理を示すフローチャートである。
【図１５】中継用ＲＥＣの初期コピー処理を示すフローチャートである。
【図１６】中継用ＲＥＣのバッファセット受信処理を示すフローチャートである。
【図１７】中継用ＲＥＣのバッファセット受信処理を示すフローチャートである。
【図１８】アドレス入れ替え部の処理を示すフローチャートである。
【図１９】ＲＥＣ対象データをストレージ装置に送信する処理の具体例を説明する図である。
【図２０】ＲＥＣ対象データをストレージ装置に送信する処理の具体例を説明する図である。
【図２１】ＲＥＣ対象データをストレージ装置に送信する処理の具体例を説明する図である。
【図２２】ストレージ装置のリモートコピー制御方法の一例である。
【発明を実施するための形態】
【００１９】
以下、実施の形態の中継装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の中継装置を示す図である。
【００２０】
第１の実施の形態の中継装置（コンピュータ）１は、第１の装置２から第２の装置３に送信されるデータ（例えばコピー対象の情報（コピー用情報））を中継する装置である。中継装置１は、ネットワークを介して第１の装置２および第２の装置３に接続されている。
【００２１】
第１の装置２は、筐体間リモートコピー（ＲＥＣ）機能を用いて第２の装置３にコピー用情報をコピーする。筐体間リモートコピー機能は、コピー元として指定された第１の装置２の図示しないボリュームに記憶されているコピー用情報を、コピー先として指定された第２の装置３のボリュームに、中継装置１を経由してコピーする機能である。そして、第１の装置２と第２の装置３との間でコピー用情報のコピーが完了することで、第１の装置１のボリュームに記憶されているコピー用情報と第２の装置３のボリュームに記憶されているコピー用情報の内容が等価になる。
【００２２】
第１の装置２と中継装置１と第２の装置３は、それぞれ第１の装置２と中継装置１と第２の装置３間で対応する複数のバッファを有する。これらのバッファはＲＡＭ（Random Access Memory）等により実現することができる。例えば、第１の装置２に設けられた１つのバッファに記憶されたコピー用情報は、このバッファが備える全ての記憶領域が一杯になるか、または、最初にコピー用情報が格納された時刻から一定時刻が経過することにより、中継装置１に送信される。
【００２３】
中継装置１は、第１の転送モードまたは第２の転送モードを用いて第２の装置３にコピー用情報を転送する。中継装置１は、図示しない管理装置の指示により、第１の転送モードと第２の転送モードを切り替えることができる。以下、第１の転送モードおよび第２の転送モードを順に説明する。
【００２４】
＜第１の転送モード＞
第１の転送モードでは、中継装置１は、コピー用情報に先立って送られてくるバッファ取得データを受信する。バッファ取得データを受信した中継装置１は、第１の装置２から送られてくるコピー用情報を記憶する複数のバッファで構成されるバッファ群１ａの中から、１つのバッファ（例えばバッファ１ａ１）を確保する。その後、第１の装置２からコピー用情報が送られてくると、中継装置１は、受信したコピー用情報を、確保したバッファ１ａ１に記憶する。そして、コピー用情報を全て受信すると、受信したコピー用情報をボリューム１ｃに記憶する。その後、中継装置１は、第２の装置３に送信するコピー用情報を記憶する複数のバッファで構成されるバッファ群１ｂの中から、１つのバッファ（例えばバッファ１ｂ１）を確保する。そして、中継装置１は、ボリューム１ｃに記憶したコピー用情報を、確保したバッファ１ｂ１に記憶する（書き込む）。
【００２５】
また、中継装置１は、コピー用情報を記憶している第１の装置２のバッファの開放を第１の装置２に依頼する。中継装置１は、以後の処理を第１の装置２とは非同期で行う。中継装置１は、バッファ１ｂ１が備える全ての記憶領域にコピー用情報が記憶されるか、または、最初にコピー用情報が格納された時刻から一定時刻が経過することにより、バッファ１ｂ１に記憶されたコピー用情報を第２の装置３に送信する。第２の装置３は、コピー用情報を受信すると、受信したコピー用情報を第２の装置３が備えるボリュームに記憶する。その後、第２の装置３は、バッファ１ｂ１の開放を中継装置１に依頼する。
【００２６】
この第１の転送モードにおいては、ボリューム１ｃからバッファ１ｂ１にコピー用情報を記憶しようとする際に、未だ第２の装置３に送信が完了していない他のコピー用情報がバッファ１ｂ１に残っている場合がある。これは、前述したように、バッファ１ｂ１が備える全ての記憶領域にコピー用情報が記憶されるか、または、最初にコピー用情報が格納された時刻から一定時刻が経過することにより、バッファ１ｂ１に記憶されたコピー用情報を第２の装置３に送信するからである。未だ第２の装置３に送信が完了していない他のコピー用情報がバッファ１ｂ１に残っている場合、中継装置１は、バッファ１ｂ１以外のバッファにコピー用情報を記憶することとなる。このため、コピー用情報を転送する順序が変化する場合がある。
【００２７】
＜第２の転送モード＞
中継装置１は、第２の転送モードを実行する情報処理部１ｄと、送信部１ｅと、領域ＩＤ記憶部１ｆと管理情報記憶部１ｇを有している。
【００２８】
情報処理部１ｄと、送信部１ｅは、中継装置１が有する図示しないＣＰＵ（Central Processing Unit）が備える機能により実現することができる。第２の転送モードでは、バッファ１ａ１が第１の記憶領域の一例であり、バッファ１ｂ１が第２の記憶領域の一例となる。
【００２９】
情報処理部１ｄは、コピー用情報に先立って第１の装置２から送られてくるバッファ取得情報を受信する。バッファ取得情報を受信した情報処理部１ｄは、コピー用情報が記憶されていないバッファ１ａ１とバッファ１ｂ１を確保する。そして、確保したバッファ１ａ１のＩＤ「0x01」とバッファ１ｂ１のＩＤ「0x02」を関連づけた関連情報１ｆ１を領域ＩＤ記憶部１ｆに記憶する。
【００３０】
その後、情報処理部１ｄは、コピー用情報の第１の装置２が備えるボリュームにおけるコピー元領域および第２の装置３が備えるボリュームにおけるコピー先領域を識別する属性情報を受信すると、関連情報１ｆ１を参照し、バッファ１ａ１のバッファＩＤ「0x01」に、当該属性情報とバッファ１ａ１のアドレス「0x1001」を関連づけた管理情報１ｄ１を作成する。また、バッファ１ｂ１のバッファＩＤ「0x02」に、バッファ１ｂ１のアドレス「0x1111」を関連づけた管理情報１ｄ２を作成する。情報処理部１ｄは、作成した管理情報１ｄ１および管理情報１ｄ２を管理情報記憶部１ｇに記憶する。
【００３１】
その後、情報処理部１ｄは、第１の装置２から第２の装置３宛に送信するコピー用情報を受信すると、受信したコピー用情報をバッファ１ａ１に記憶する。そして、情報処理部１ｄは、領域ＩＤ記憶部１ｆに記憶してある関連情報１ｆ１を参照し、バッファ１ａ１がバッファ１ｂ１に関連づけられていることを確認する。情報処理部１ｄは、管理情報記憶部１ｇを参照し、管理情報１ｄ１が備えるバッファ１ａ１のアドレス「0x1001」と管理情報１ｄ２が備えるバッファ１ｂ１のアドレス「0x1111」を交換する。また、情報処理部１ｄは、管理情報１ｄ１が備える属性情報を管理情報１ｄ２にコピーする。
【００３２】
中継装置１は、以後の処理を第１の装置２とは非同期で行う。中継装置１は、コピー用情報を記憶している第１の装置２のバッファの開放を第１の装置２に依頼する。
送信部１ｅは、第２の装置３にコピー用情報を送信する際に情報処理部１ｄがアドレスを交換した管理情報１ｄ２を参照し、管理情報１ｄ２に記憶されている属性情報を第２の装置３に送信する。その後、管理情報１ｄ２に記憶されているアドレス「0x1001」に記憶されているコピー用情報を第２の装置３に送信する。この処理によって、バッファ１ａ１に記憶されているコピー用情報をバッファ１ｂ１に移さずに第２の装置３にコピー用情報を転送することができる。このため、中継装置１を介してコピー用情報を送信する場合に、コピー用情報を送信する順序を保証することができる。
【００３３】
また、第２の転送モードによれば、コピー用情報をボリューム１ｃに記憶し、再度バッファ１ｂ１に記憶する手間を省略することができる。
なお、第１の実施の形態では、第１の転送モードと第２の転送モードを有する中継装置１を説明したが、中継装置１は、第２の転送モードを有していればよく、第１の転送モードを有するか否かは、任意である。
【００３４】
以下、第２の実施の形態において、開示の中継装置をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
【００３５】
ストレージシステム１０００は、ストレージ装置１００、２００、３００と、ストレージ装置１００、２００、３００それぞれに接続されたホスト装置５０ａ、５０ｂ、５０ｃを有している。
【００３６】
ストレージ装置１００は、ストレージ装置２００からストレージ装置３００へ送信されるＲＥＣ（Remote Equivalent Copy）対象のデータを転送する順序を保証して送信する機能を有している。
【００３７】
ストレージ装置１００、２００、３００のハードウェア構成は等しいため、以下、代表してストレージ装置１００のハードウェア構成を説明する。
ストレージ装置１００は、図示しないファイバチャネル（ＦＣ：Fibre Channel）スイッチを介してホスト装置５０ｂに接続されている。なお、図２では１つのホスト装置５０ｂがストレージ装置１００に接続されているが、複数のホスト装置が、ストレージ装置１００に接続されていてもよい。
【００３８】
ストレージ装置１００は、それぞれが複数のＨＤＤ６０を備えるドライブエンクロージャ（ＤＥ：Drive Enclosure）６０ａと、このドライブエンクロージャ６０ａの物理記憶領域をＲＡＩＤ（Redundant Arrays of Inexpensive/Independent Disks）によって管理する制御モジュール（ＣＭ：Controller Module）１０ａ、１０ｂとを有している。なお、本実施の形態では、ドライブエンクロージャ６０ａが備える記憶媒体としては、ＨＤＤ６０を例示したが、ＨＤＤ６０に限らず、ＳＳＤ等、他の記憶媒体を用いてもよい。以下、ドライブエンクロージャ６０ａが備える複数のＨＤＤ６０を区別しない場合は、「ＨＤＤ６０群」と言う。ＨＤＤ６０群の総容量は、例えば６００ＧＢ（Giga Byte）〜２４０ＴＢ（Tera Byte）である。
【００３９】
ストレージ装置１００は、２つの制御モジュール１０ａ、１０ｂを運用に使用することで、冗長性が確保されている。なお、ストレージ装置１００が備える制御モジュールの数は、２つに限定されず、３つ以上の制御モジュールにより冗長性が確保されていてもよいし、制御モジュール１０ａのみを使用した構成であってもよい。
【００４０】
制御モジュール１０ａ、１０ｂは、それぞれ同じハードウェア構成によって実現される。
制御モジュール１０ａ、１０ｂは、それぞれ、ホスト装置５０ｂからのデータアクセス要求に応じてドライブエンクロージャ６０ａが有するＨＤＤ６０の物理記憶領域へのデータアクセスをＲＡＩＤによって制御する。
【００４１】
制御モジュール１０ａ、１０ｂは、それぞれ同じハードウェア構成によって実現されるため、代表的に、制御モジュール１０ａのハードウェア構成を説明する。
制御モジュール１０ａは、ＣＰＵ１０１と、キャッシュメモリ１０２と、チャネルアダプタ（ＣＡ：Channel Adapter）１０３と、ＢＲＴ（Back end RouTer）１０４と、ＲＡ（Remote Adapter）１０５を備えている。
【００４２】
ＣＰＵ１０１は、図示しないフラッシュＲＯＭ等に記憶されたプログラムを実行することにより、制御モジュール１０ａ全体を統括的に制御する。
キャッシュメモリ１０２は、ＨＤＤ６０群に書き込まれているデータやＨＤＤ６０群から読み出したデータを一時的に記憶する。
【００４３】
そして、制御モジュール１０ａは、例えばホスト装置５０ｂからのデータ読み出し命令を受けたときに、読み出し対象のデータがキャッシュメモリ１０２に記憶されているか否かを判断する。読み出し対象のデータがキャッシュメモリ１０２に記憶されていれば、制御モジュール１０ａは、キャッシュメモリ１０２に記憶されている読み出し対象のデータをホスト装置５０ｂに送る。読み出し対象のデータをＨＤＤ６０群から読み出す場合に比べ、データを迅速にホスト装置５０ｂに送ることができる。
【００４４】
また、キャッシュメモリ１０２には、ＣＰＵ１０１による処理に必要なデータが一時的に記憶されてもよい。このキャッシュメモリ１０２としては、例えば、ＳＲＡＭ等の揮発性の半導体装置が挙げられる。また、キャッシュメモリ１０２の記憶容量は、特に限定されないが、一例として２〜６４ＧＢ程度である。
【００４５】
チャネルアダプタ１０３は、ファイバチャネルスイッチに接続され、ファイバチャネルスイッチを介してホスト装置５０ｂのチャネルに接続される。チャネルアダプタ１０３は、ホスト装置５０ｂと制御モジュール１０ａとの間でデータを送受信するインタフェース機能を提供する。
【００４６】
ＢＲＴ１０４は、ドライブエンクロージャ６０ａに接続されている。このＢＲＴ１０４は、ドライブエンクロージャ６０ａが備えるＨＤＤ６０群とキャッシュメモリ１０２との間でデータを送受信するインタフェース機能を提供する。制御モジュール１０ａは、ＢＲＴ１０４を介してドライブエンクロージャ６０ａが備えるＨＤＤ６０群との間でデータの送受信を行う。
【００４７】
ＲＡ１０５は、ネットワーク４１を介してストレージ装置２００のＲＡ２０５に接続されている。また、ＲＡ１０５は、ネットワーク４２を介してストレージ装置３００のＲＡ３０５に接続されている。
【００４８】
なお、制御モジュール１０ａ、１０ｂは、図示しないルータを介して互いに接続されている。例えば、ＨＤＤ６０群に書き込みを要求するデータがホスト装置５０ｂからファイバチャネルスイッチを介して制御モジュール１０ａに送信されると、ＣＰＵ１０１は、受信したデータをキャッシュメモリ１０２に格納する。また、ＣＰＵ１０１はデータの格納と共に、受信したデータを、ルータを介して制御モジュール１０ｂに送信する。そして、制御モジュール１０ｂは、制御モジュール１０ｂが有するＣＰＵが受信したデータを制御モジュール１０ｂが有するキャッシュメモリに格納する。この処理によって、制御モジュール１０ａ内のキャッシュメモリ１０２と制御モジュール１０ｂ内のキャッシュメモリとに同一のデータを記憶することができる。
【００４９】
ドライブエンクロージャ６０ａには、ドライブエンクロージャ６０ａが備える複数のＨＤＤ６０のうち、１つ、または複数のＨＤＤ６０により構成されたＲＡＩＤグループが形成されている。このＲＡＩＤグループは、「仮想ディスク」、「ＲＬＵ（RAID Logical Unit）」等と呼ばれる場合もある。
【００５０】
図２に示すドライブエンクロージャ６０ａ内には、ＲＡＩＤ５を構成するＲＡＩＤグループ６１を図示している。なお、ＲＡＩＤグループ６１のＲＡＩＤ構成は、一例であり、図示のＲＡＩＤ構成に限定されない。例えば、ＲＡＩＤグループ６１は、任意の個数のＨＤＤ６０を有することができる。また、ＲＡＩＤグループ６１は、ＲＡＩＤ６等、任意のＲＡＩＤ方式で構成することができる。
【００５１】
例えば、ＲＡＩＤグループ６１には、ＲＡＩＤグループ６１を構成するＨＤＤ６０の記憶領域が論理的に分割され、論理ボリュームが構成されている。分割された各論理ボリュームには、ＬＵＮ（Logical Unit Number）が設定されている。
【００５２】
ストレージシステム１０００は、ＲＥＣ機能を用いて転送するＲＥＣ対象のデータ（以下、「ＲＥＣ対象データ」と言う）の順序を保証するために、以下のようなコピーを行う。
【００５３】
制御モジュール２０ａは、キャッシュメモリ２０２の一部の記憶領域で構成されるバッファを有している。バッファには、ＲＥＣ対象データを記憶することができる。以下の説明では、ＲＥＣ対象データを記憶するバッファを「ＲＥＣバッファ」と言う。制御モジュール２０ｂもＲＥＣバッファを備えている。制御モジュール２０ａのみでＲＥＣバッファを保持すると、制御モジュール２０ａの通常の入出力（Ｉ／Ｏ）処理のために使用できるキャッシュメモリ２０２のメモリ容量が小さくなってしまう。そこで、ハードウェアを効率的に使用するために、ＲＥＣバッファを制御モジュール２０ａ、２０ｂに分散して持つようにする。
【００５４】
ストレージ装置２００は、ホスト装置５０ａから受け取ったＲＥＣ対象データを、ＲＥＣバッファに直接格納せずに、どの領域に書き込まれたかだけを示すデータをキャッシュメモリ２０２等に保持しておく。ストレージ装置２００は、ホスト装置５０ａから受信したＲＥＣ対象データのＲＡＩＤグループ６２への書き込みが完了した後に、任意のタイミングでＲＡＩＤグループ６２からＲＥＣ対象データを読み出してＲＥＣバッファへ格納する。制御モジュール２０ａ、２０ｂが備えるいずれかのＲＥＣバッファがＲＥＣ対象データで一杯になるか、最初にＲＥＣ対象データがＲＥＣバッファに格納された時刻から一定時刻が経過することにより、制御モジュール２０ａ、２０ｂそれぞれのＲＥＣバッファへのＲＥＣ対象データの記憶動作を同時に一旦停止して、ストレージ装置３００のＲＡＩＤグループ６３にコピーするＲＥＣ対象データ群を確定させる。ＲＥＣ対象データ群を確定した後に、制御モジュール２０ａ、２０ｂでＲＥＣバッファを切り替えて夫々新しいＲＥＣバッファへの格納処理を継続する。ストレージ装置２００は、確定したＲＥＣ対象データ群を、ストレージ装置１００に転送する。ストレージ装置１００は、ストレージ装置２００で作成されたＲＥＣ対象データ群の受信が完了すると、ストレージ装置２００にＲＥＣ対象データの受信完了を通知する。この通知により、ストレージ装置２００は、当該ＲＥＣ対象データ群が格納されているＲＥＣバッファを開放する。このような処理を行うことにより、ＲＥＣ対象データの順序性保証が実現されることになる。また、ＲＥＣ対象データの書き込み毎にストレージ装置１００、２００、３００それぞれが備える制御モジュール１０ａ、１０ｂ、２０ａ、２０ｂ、３０ａ、３０ｂ間の通信を行わなくてもＲＥＣ対象データの転送順序が保証されたリモートコピーを達成することができる。なお、一連の処理を絶え間なく行えるように、ＲＥＣバッファは複数存在し、パイプラインで動作する。
【００５５】
図２に示すようなハードウェア構成のストレージ装置１００、２００、３００内には、以下のような機能が設けられる。
図３は、ストレージ装置の機能を示すブロック図である。
【００５６】
ストレージ装置２００は、コマンド処理部２１０と、セッション管理データ格納部２２０と、バッファ群２３０と、ＲＥＣバッファ管理データ格納部２４０と、コピー制御部２５０とを有している。
【００５７】
コマンド処理部２１０は、ホスト装置５０ａが発行したコマンドパラメータに中継装置の識別子を追加し、中継ＲＥＣ開始コマンドを中継装置に発行する。
セッション管理データ格納部２２０は、ＲＥＣのセッションを管理するセッション管理データが格納されている。
【００５８】
バッファ群２３０は、複数のＲＥＣバッファを備えている。
ＲＥＣバッファ管理データ格納部２４０には、バッファ群２３０に記憶されているデータのうち、ＲＥＣ対象データを記憶するＲＥＣバッファの管理データ（ＲＥＣバッファ管理データ）が格納されている。このＲＥＣバッファ管理データは、図示しない管理装置を介してオペレータにより設定されるデータである。なお、ストレージ装置１００およびストレージ装置３００にもＲＥＣバッファ管理データ格納部２４０に格納されるＲＥＣバッファ管理データと同じデータが格納されている。
【００５９】
コピー制御部２５０は、ストレージ装置２００内において論理ボリューム６２ａに格納されたＲＥＣ対象データをストレージ装置２００内のバッファ群２３０のうち所定のＲＥＣバッファに格納する。そして、ＲＥＣバッファがＲＥＣ対象データで一杯になるか、または、ＲＥＣ対象データをＲＥＣバッファに格納し始めてから一定時刻を経過すると、このＲＥＣバッファ内のＲＥＣ対象データをまとめてネットワーク４１を介して接続されたストレージ装置１００に送信する。
【００６０】
コピー制御部２５０は、複数のＲＥＣバッファに記憶されたＲＥＣ対象データの順序性を維持しながら切り替えて行くことで順序性保証を行う機能を有している。これは、ＲＥＣコンシステンシバッファ内のデータが全てストレージ装置３００に書き込まれることが保証できれば、ホスト装置５０ａからのライトコマンドのデータの順序性は保たれるためである。
【００６１】
図４は、コマンドパラメータを説明する図である。
コマンドパラメータ２１０ａは、コピー元セッションＩＤ、コピー先セッションＩＤ、ＲＥＣ動作モードフラグ、ＲＥＣ転送モード、コピー元ボリューム番号、コピー先ボリューム番号、コピー元ボリューム開始ＬＢＡ（Logical Block Address）、コピー先ボリューム開始ＬＢＡ、コピー対象範囲、コピー元装置ＩＤ、コピー先装置ＩＤ、および中継装置ＩＤを有している。
【００６２】
コピー元セッションＩＤは、コピー元のストレージ装置（本実施の形態ではストレージ装置２００）で管理されるセッションＩＤである。コピー元セッションＩＤは、コピー元のストレージ装置２００が任意に設定することができる。
【００６３】
コピー先セッションＩＤは、コピー先のストレージ装置（本実施の形態ではストレージ装置３００）で管理されるセッションＩＤである。コピー先セッションＩＤは、コピー先のストレージ装置３００が任意に設定することができる。
【００６４】
ＲＥＣ動作モードフラグは、ＲＥＣの動作に関する指定をするフラグである。例えば、ストレージ装置１００をＲＥＣの中継装置に指定する場合は、「0x01」を設定する。同期モード指定の場合には、「0x02」を設定する
ＲＥＣ転送モードは、ＲＥＣの転送方式を示す。転送方式としては、ストレージ装置間で同期を取って転送を行う同期モード、およびストレージ装置間で同期を取らずに転送を行う非同期モードが存在する。
【００６５】
コピー元ボリューム番号は、コピー元の論理ボリューム（本実施の形態では論理ボリューム６２ａ）のＬＵＮである。
コピー先ボリューム番号は、コピー先の論理ボリューム（本実施の形態では論理ボリューム６３ａ）のＬＵＮである。
【００６６】
コピー元ボリューム開始ＬＢＡは、コピー元ボリュームのコピー開始位置を示すブロック単位のアドレスである。
コピー先ボリューム開始ＬＢＡは、コピー先ボリュームのコピー開始位置を示すブロック単位のアドレスである。
【００６７】
コピー対象範囲は、ＲＥＣ対象データのコピーを行う範囲である。
コピー元装置ＩＤは、ストレージ装置２００を識別するＩＤである。
コピー先装置ＩＤは、ストレージ装置３００を識別するＩＤである。
【００６８】
中継装置ＩＤは、ストレージ装置１００を識別するＩＤである。この中継装置ＩＤは、ＲＥＣ動作モードフラグが「0x01」に設定される場合に併せて設定される。
図５は、セッション管理データを説明する図である。
【００６９】
セッション管理データは、テーブル化されて格納されている。
セッション管理テーブル２２０ａには、セッション管理テーブル番号、コピー元セッションＩＤ、コピー先セッションＩＤ、ＲＥＣ動作モードフラグ、ＲＥＣ転送モード、コピー元ボリューム番号、コピー先ボリューム番号、コピー元ボリューム開始ＬＢＡ、コピー先ボリューム開始ＬＢＡ、コピー対象範囲、コピー元装置ＩＤ、コピー先装置ＩＤ、ＲＥＣバッファＩＤおよび中継装置ＩＤを有している。
【００７０】
セッション管理テーブル番号およびＲＥＣバッファＩＤ以外の要素は、コマンドパラメータ２１０ａにて説明したので説明を省略する。セッション管理テーブル番号は、当該セッション管理テーブル２２０ａを識別する番号である。ＲＥＣバッファＩＤは、当該ＲＥＣセッションに更新があった場合、ＲＥＣ対象データを、どのＲＥＣバッファにコピーし、データ転送が行われるかを示すパラメータが設定される。中継用ＲＥＣセッションの場合には、中継用ＲＥＣバッファのグループＩＤが設定される。
【００７１】
図６は、ＲＥＣバッファ管理データを説明する図である。
ＲＥＣバッファ管理データは、テーブル化されて格納されている。
ＲＥＣバッファ管理テーブル２４０ａには、装置ＩＤ、ＲＥＣバッファグループＩＤ、接続先装置ＩＤ、タイプ（Type）、サイズ（Size）、用途、転送間隔、監視時間、Ｈａｌｔ待機タイマ、および中継機能の欄が設けられている。
【００７２】
装置ＩＤの欄には、当該ＲＥＣバッファ管理テーブル２４０ａを保持する装置のＩＤが設定される。
ＲＥＣバッファグループＩＤの欄には、バッファ群２３０に作成したＲＥＣバッファのグループを識別するＩＤが設定される。
【００７３】
接続先装置ＩＤの欄には、当該ＲＥＣバッファの接続先の装置ＩＤが設定される。
タイプの欄には、当該ＲＥＣバッファが使用する種別を識別する値が設定される。例えば、「0x00」は、オープン（Open）向け、「0x01」は、メインフレーム（Mainframe）向けを示す。
【００７４】
サイズの欄には、当該ＲＥＣバッファのサイズを識別する値が設定される。例えば、「0x01」は、１２８ＭＢ（Mega Bytes）を示す。「0x02」は、２５６ＭＢを示す。
用途の欄には、当該ＲＥＣバッファの用途を示す値が設定される。例えば、送信用であれば「0x01」が設定される。受信用であれば「0x02」が設定される。
【００７５】
転送間隔の欄には、用途の欄が、「0x01」（送信用）である場合に、バッファの定期切り替え時間を示す値が設定される。例えば、１秒毎にバッファを切り替える場合は、「0x01」が設定される。２秒毎にバッファを切り替える場合は、「0x02」が設定される。この転送間隔は、任意の値に設定することができる。
【００７６】
監視時間の欄には、ＲＥＣバッファの使用率の監視時間を示す値が設定される。当該ＲＥＣバッファの使用率が１００％である状態が、設定した監視時間分続けば、当該ＲＥＣバッファに記憶されているデータをクリアするＲＥＣバッファＨａｌｔを起動する。
【００７７】
Ｈａｌｔ待機タイマの欄には、用途の欄が「0x01」（送信用）である場合に、当該ＲＥＣバッファの使用率が１００％となった場合、ホスト装置５０ａから受信したＩ／Ｏ要求を待たせる最大時間を示す値が設定される。設定した時間を経過しても未使用のバッファができない場合は、ＲＥＣバッファＨａｌｔを起動する。例えば、Ｉ／Ｏ要求を５秒待たせる場合は、「0x01」が設定される。Ｉ／Ｏ要求を５秒待たせる場合は、「0x02」が設定される。この転送間隔は、任意の値に設定することができる。
【００７８】
中継機能の欄には、当該ＲＥＣバッファが中継用のＲＥＣバッファか否かを示す値が設定される。ストレージ装置１００を介してＲＥＣを行う場合は、有効を示す「0x01」が設定される。ストレージ装置１００を介さずにストレージ装置３００との間でリモートコピーの順序を保証するＲＥＣ  Ｃｏｎｓｉｓｔｅｎｃｙを実行する場合には、無効を示す「0x00」が設定される。
【００７９】
図７は、ＲＥＣバッファの設定組み合わせの一例を説明する図である。
図７には、ＲＥＣバッファの組み合わせを上段に示し、上段に示したＲＥＣバッファの組み合わせを設定する複数のＲＥＣバッファ管理テーブル２４０ａを下段に示している。なお、図７のＲＥＣバッファ管理テーブル２４０ａは、任意の値に設定されている箇所については、具体的な値を記載せず、単に「任意」と表記している。また、紙面の都合上、ストレージ装置２００のＩＤを「Ａ」、ストレージ装置１００のＩＤを「Ｂ」、ストレージ装置３００のＩＤを「Ｃ」と表記している。また、タイプのオープンを「Ｏ」、メインフレームを「Ｍ」と表記している。
【００８０】
中継用のＲＥＣバッファとして機能するＲＥＣバッファは、次の（条件１）、（条件２）かつ、（条件３）を満たすものになる。（条件１）用途「受信」、かつ、中継機能「有効」のＲＥＣバッファが存在する。（条件２）用途「送信」、かつ、中継機能「有効」のＲＥＣバッファが存在する。（条件３）上記（条件１）および（条件２）を満たすＲＥＣバッファの「タイプ」が同じである。
【００８１】
図７に示す１行目のＲＥＣバッファ管理テーブル２４０ａのタイプは、オープン、用途は、送信であり、中継機能は、有効に設定されている。また、２行目のＲＥＣバッファ管理テーブル２４０ａのレコードは、タイプは、オープン、用途は、受信であり、中継機能は、有効に設定されている。従って、ストレージ装置２００のＲＥＣバッファグループＩＤ「＃００」に記憶されているＲＥＣ対象データは、ストレージ装置１００のＲＥＣバッファグループＩＤ「＃００」に記憶されるよう設定されている。
【００８２】
３行目のＲＥＣバッファ管理テーブル２４０ａのタイプは、オープン、用途は、送信であり、中継機能は、有効に設定されている。また、４行目のＲＥＣバッファ管理テーブル２４０ａのタイプは、オープン、用途は、受信であり、中継機能は、有効に設定されている。従って、ストレージ装置１００のＲＥＣバッファグループＩＤ「＃０１」に記憶されているＲＥＣ対象データは、ストレージ装置３００のＲＥＣバッファグループＩＤ「＃００」に記憶されるよう設定されている。
【００８３】
ここで、２行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件１）を満たす。また、３行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件２）を満たす。また、２行目のＲＥＣバッファ管理テーブル２４０ａと３行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件３）を満たす。従って、ストレージ装置１００のＲＥＣバッファグループＩＤ「＃００」のＲＥＣバッファグループとＲＥＣバッファグループＩＤ「＃０１」のＲＥＣバッファグループは、関連づけられていることを示している。
【００８４】
５行目のＲＥＣバッファ管理テーブル２４０ａのタイプは、オープン、用途は、送信であり、中継機能は、無効に設定されている。また、６行目のＲＥＣバッファ管理テーブル２４０ａのタイプは、オープン、用途は、受信であり、中継機能は、無効に設定されている。従って、ストレージ装置２００のＲＥＣバッファグループＩＤ「＃０１」に記憶されているデータは、ストレージ装置１００のＲＥＣバッファグループＩＤ「＃０２」に記憶されるよう設定されている。ここで、５行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件１）を満たさず、６行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件２）を満たさない。従って、ストレージ装置２００とストレージ装置１００との間で処理が完結していることを示している。
【００８５】
７行目のＲＥＣバッファ管理テーブル２４０ａは、タイプは、メインフレーム、用途は、送信であり、中継機能は、無効に設定されている。また、８行目のＲＥＣバッファ管理テーブル２４０ａは、タイプは、メインフレーム、用途は、受信であり、中継機能は、無効に設定されている。従って、ストレージ装置１００のＲＥＣバッファグループＩＤ「＃０３」に記憶されているデータは、ストレージ装置３００のＲＥＣバッファグループＩＤ「＃０１」に記憶されるよう設定されている。ここで、７行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件１）を満たさず、８行目のＲＥＣバッファ管理テーブル２４０ａは、上記（条件２）を満たさない。従って、ストレージ装置１００とストレージ装置３００との間で処理が完結していることを示している。
【００８６】
次に、制御モジュール１０ａが備える機能を説明する。制御モジュール１０ａは、コマンド処理部１１０と、ＲＥＣバッファ管理データ格納部１２０と、バッファ識別（Buffer Identify）データ格納部１３０と、コピー制御部１４０と、バッファセットデータ格納部１５０と、バッファ群１６０とを有している。バッファ識別データ格納部１３０は、管理情報記憶部の一例である。コピー制御部１４０は、情報処理部および送信部の一例である。バッファセットデータ格納部１５０は、関連情報記憶部の一例である。
【００８７】
コマンド処理部１１０は、ストレージ装置２００から受け取ったコマンドパラメータにストレージ装置１００のＩＤ、および中継ＲＥＣ動作であることを示すデータを追加する。
【００８８】
ＲＥＣバッファ管理データ格納部１２０には、図示しない管理装置を介してオペレータにより設定されたバッファ管理データが格納されている。
バッファ識別データ格納部１３０には、ＲＥＣ対象データを記憶するバッファ群１６０内のバッファのアドレスや、バッファに格納される予定のＲＥＣ対象データに関する属性データ等を含むバッファ識別データが、バッファ単位で格納されている。
【００８９】
コピー制御部１４０は、ストレージ装置２００からバッファセット送信コマンドを受信した場合、中継送信用ＲＥＣバッファを検索する。見つかれば、中継装置としての処理を行う。見つからなければ、当該ストレージ装置１００がデータコピー先の終端装置であると判断してストレージ装置２００との間で確立したＲＥＣセッションを用いてＲＥＣ対象データのコピー処理を行う。
【００９０】
コピー制御部１４０は、バッファセット確保部１４１とアドレス入れ替え部１４２とを有している。
バッファセット確保部１４１は、後述するバッファセットテーブルに記憶されるデータ項目を構成するバッファセットデータを受信すると、当該ストレージ装置１００が中継装置として処理を行うか否かを判断する。そして、バッファセット確保部１４１は、当該ストレージ装置１００が中継装置として処理を行うと判断すると、バッファセットデータを受信する。バッファセット確保部１４１は、バッファセットデータを受信すると、受信したバッファセットデータをバッファセットデータ格納部に格納する。そして、バッファセット確保部１４１は、中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファを確保する。バッファセット確保部１４１は、中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファを確保すると、確保した応答をストレージ装置２００に返す。この応答に応じてストレージ装置２００は、ＲＥＣ対象データ並びに、中継受信用ＲＥＣバッファ、および中継送信用ＲＥＣバッファそれぞれのバッファ識別データを送信する。バッファセット確保部１４１は、受信したＲＥＣ対象データを中継受信用ＲＥＣバッファに格納する。また、受信したバッファ識別データそれぞれをバッファ識別データ格納部１３０に格納する。
【００９１】
図８は、バッファ識別データを説明する図である。
バッファ識別データは、テーブル化されて格納されている。前述したように、バッファ識別データはＲＥＣバッファ単位で格納されているため、バッファ識別テーブル１３０ａは、１つのＲＥＣバッファにつき１つ作成される。
【００９２】
バッファ識別テーブル１３０ａには、状態、バッファＩＤ、サイズ、格納データ数、バッファアドレス、属性データの欄が設けられている。
状態の欄には、当該バッファ識別テーブル１３０ａが管理するバッファ（以下、当該バッファと言う）の状態を示す値が設定される。状態には、初期状態「0x00」、格納中「0x01」、格納完了「0x02」等がある。
【００９３】
バッファＩＤの欄には、ＲＥＣバッファのＩＤが設定される。
サイズの欄には、ＲＥＣバッファのサイズが設定される。本実施の形態では、８ＭＢであることを示す「0x08」固定となっている。
【００９４】
格納データ数の欄には、当該ＲＥＣバッファに格納しているＲＥＣ対象データの数が設定される。
バッファアドレスの欄には、当該ＲＥＣバッファの先頭アドレスが設定される。
【００９５】
属性データの欄には、格納されている各ＲＥＣ対象データの属性データが設定される。１つのＲＥＣ対象データの属性データは、セッション管理テーブル番号、コピー元ボリューム番号、コピー先ボリューム番号、コピー元ボリューム開始ＬＢＡ、コピー先ボリューム開始ＬＢＡおよびブロックサイズを有している。
【００９６】
なお、バッファ識別テーブル１３０ａに設定されているデータのうち、ストレージ装置３００に転送するデータは、属性データである。
アドレス入れ替え部１４２は、中継受信用ＲＥＣバッファのバッファ識別テーブル１３０ａのバッファアドレスと、中継送信用ＲＥＣバッファのバッファ識別テーブル１３０ａのバッファアドレスを入れ替える機能を有している。
【００９７】
バッファセットデータ格納部１５０には、バッファセット確保部１４１が確保した中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファに関するバッファセットデータが格納されている。
【００９８】
図９は、バッファセットデータを説明する図である。
バッファセットデータは、テーブル化されて格納されている。
バッファセットテーブル１５０ａには、バッファセットテーブルＩＤ、バッファＩＤ、中継送信用グループＩＤ、および中継送信用バッファセットテーブルＩＤの欄が設けられている。これらの項目のうち、バッファセットテーブルＩＤ、およびバッファＩＤは、ストレージ装置２００から受信したバッファセットデータに含まれているデータである。
【００９９】
バッファセットテーブルＩＤの欄には、当該バッファセットテーブル１５０ａを識別するＩＤが設定される。
バッファＩＤの欄には、ストレージ装置２００から通知される当該バッファセットを構成するバッファのＩＤ（バッファＩＤ）が設定される。図９では、２つの制御モジュール１０ａ、１０ｂそれぞれのバッファセットを構成するバッファＩＤが設定されている例を示している。転送時は、転送元のバッファＩＤと転送先のバッファＩＤとをペアに設定し、転送先のバッファＩＤを、そのバッファセットを構成するバッファのバッファＩＤ群として通知する。
【０１００】
中継送信用グループＩＤの欄には、当該バッファセットが、中継受信用ＲＥＣバッファのバッファセットである場合であってストレージ装置１００内に中継送信用ＲＥＣバッファが存在する場合に、バッファセット確保部１４１が確保したＲＥＣバッファグループＩＤが設定される。
【０１０１】
中継送信用バッファセットテーブルＩＤの欄には、中継送信用グループＩＤが設定されており、かつ、中継受信用ＲＥＣバッファのバッファセットと並行して確保される中継送信用グループのバッファセットテーブルのＩＤが設定される。
【０１０２】
なお、バッファセットテーブル１５０ａに設定されているデータのうち、ストレージ装置３００に転送するデータは、バッファＩＤの欄に設定されているデータである。
次に、本実施の形態の中継ＲＥＣバッファを使用するときのストレージシステム１０００の処理を説明する。
【０１０３】
図１０は、コピー元装置のセッションコマンド処理を示すフローチャートである。
［ステップＳ１］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドを受信すると、ステップＳ２に遷移する。
【０１０４】
［ステップＳ２］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドに含まれるコマンドパラメータ２１０ａとストレージ装置２００の構成データを比較し、コマンドパラメータ２１０ａに従ったセッションが作成できるか否かを判断する。コマンドパラメータ２１０ａに従ったセッションが作成できる場合（ステップＳ２のＹｅｓ）、ステップＳ４に遷移する。設定されたパラメータに従ったセッションが作成できない場合（ステップＳ２のＮｏ）、ステップＳ３に遷移する。
【０１０５】
［ステップＳ３］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドに含まれるコマンドパラメータ２１０ａが異常である応答を、ホスト装置５０ａに返す。その後、図１０の処理を終了する。
【０１０６】
［ステップＳ４］  コマンド処理部２１０は、コマンドパラメータ２１０ａのＲＥＣ動作モードフラグを参照し、当該ＲＥＣは中継ＲＥＣに指定されているか否かを判断する。当該ＲＥＣが中継ＲＥＣに指定されている場合（ステップＳ４のＹｅｓ）、ステップＳ６に遷移する。当該ＲＥＣが中継ＲＥＣに指定されていない場合（ステップＳ４のＮｏ）、ステップＳ５に遷移する。
【０１０７】
［ステップＳ５］  コマンド処理部２１０は、ストレージ装置３００との間でストレージ装置１００を使用しないＲＥＣセッションを作成する。なお、ストレージ装置１００を使用しないＲＥＣセッションの説明は省略する。その後、図１０の処理を終了する。
【０１０８】
［ステップＳ６］  コマンド処理部２１０は、コマンドパラメータ２１０ａに含まれる中継装置ＩＤおよび当該ストレージ装置２００の接続データを参照し、ストレージ装置２００が、中継装置（すなわち、ストレージ装置１００）に接続されているか否かを判断する。ストレージ装置２００が、ストレージ装置１００に接続されている場合（ステップＳ６のＹｅｓ）、ステップＳ８に遷移する。ストレージ装置２００が、ストレージ装置１００に接続されていない場合（ステップＳ６のＮｏ）、ステップＳ７に遷移する。
【０１０９】
［ステップＳ７］  コマンド処理部２１０は、中継装置接続異常応答をホスト装置５０ａに返す。その後、図１０の処理を終了する。
［ステップＳ８］  コマンド処理部２１０は、ストレージ装置１００への中継ＲＥＣ開始コマンドの発行準備を行う。発行準備が完了すると、ステップＳ９に遷移する。
【０１１０】
［ステップＳ９］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドをストレージ装置１００に発行する。その後、図１０の処理を終了する。
図１１は、中継装置のセッションコマンド処理を示すフローチャートである。
【０１１１】
［ステップＳ１１］  コマンド処理部１１０は、ストレージ装置２００から中継ＲＥＣ開始コマンドを受信すると、ステップＳ１２に遷移する。
［ステップＳ１２］  コマンド処理部１１０は、中継ＲＥＣ開始コマンドに含まれるコマンドパラメータ２１０ａのコピー先装置ＩＤを参照し、ストレージ装置１００がストレージ装置３００と接続されているか否かを判断する。ストレージ装置１００がストレージ装置３００と接続されている場合（ステップＳ１２のＹｅｓ）、ステップＳ１４に遷移する。ストレージ装置１００がストレージ装置３００と接続されていない場合（ステップＳ１２のＮｏ）、ステップＳ１３に遷移する。
【０１１２】
［ステップＳ１３］  コマンド処理部１１０は、コピー先装置接続異常応答をストレージ装置２００に返す。その後、図１１の処理を終了する。
［ステップＳ１４］  コマンド処理部１１０は、ストレージ装置１００への中継ＲＥＣ開始コマンドの発行準備を行う。発行準備が完了すると、ステップＳ１５に遷移する。
【０１１３】
［ステップＳ１５］  コマンド処理部１１０は、中継ＲＥＣ開始コマンドをストレージ装置３００に発行する。その後、図１１の処理を終了する。
図１２は、コピー先装置のセッションコマンド処理を示すフローチャートである。
【０１１４】
［ステップＳ２１］  コマンド処理部３１０は、中継ＲＥＣ開始コマンドを受信すると、ステップＳ２２に遷移する。
［ステップＳ２２］  コマンド処理部３１０は、中継ＲＥＣ開始コマンドに含まれるコマンドパラメータ２１０ａとストレージ装置３００の構成データとを比較し、コマンドパラメータ２１０ａに従ったセッション管理テーブル３２０ａが作成できるか否かを判断する。なお、セッション管理テーブル３２０ａの構成は、セッション管理テーブル２２０ａと同様である。コマンドパラメータ２１０ａに従ったセッション管理テーブル３２０ａが作成できると判断した場合（ステップＳ２２のＹｅｓ）、ステップＳ２４に遷移する。コマンドパラメータ２１０ａに従ったセッション管理テーブル３２０ａが作成できないと判断した場合（ステップＳ２２のＮｏ）、ステップＳ２３に遷移する。
【０１１５】
［ステップＳ２３］  コマンド処理部３１０は、パラメータ異常応答をストレージ装置１００に返す。その後、図１２の処理を終了する。
［ステップＳ２４］  コマンド処理部３１０は、中継ＲＥＣ開始コマンドに含まれるパラメータを用いてセッション管理テーブル３２０ａを作成する。コマンド処理部３１０は、作成したセッション管理テーブル３２０ａをセッション管理データ格納部３２０に格納する。その後、ステップＳ２５に遷移する。
【０１１６】
［ステップＳ２５］  コマンド処理部３１０は、中継ＲＥＣ開始コマンドの処理が正常に終了した応答をストレージ装置１００に返す。その後、図１２の処理を終了する。
図１３は、中継装置のセッションコマンド処理を示すフローチャートである。
【０１１７】
［ステップＳ３１］  コマンド処理部１１０は、ストレージ装置３００からの応答を受信すると、ステップＳ３２に遷移する。
［ステップＳ３２］  コマンド処理部１１０は、ストレージ装置３００からの応答が正常応答か否かを判断する。ストレージ装置３００からの応答が正常応答である場合（ステップＳ３２のＹｅｓ）、ステップＳ３３に遷移する。ストレージ装置３００からの応答が正常応答ではない場合（ステップＳ３２のＮｏ）、ステップＳ３４に遷移する。
【０１１８】
［ステップＳ３３］  コマンド処理部１１０は、正常応答をストレージ装置２００に返す。その後、図１３の処理を終了する。
［ステップＳ３４］  コマンド処理部１１０は、ストレージ装置３００からのパラメータ異常を引き継いで、エラー応答をストレージ装置２００に返す。その後、図１３の処理を終了する。
【０１１９】
図１４は、コピー元装置のセッションコマンド処理を示すフローチャートである。
［ステップＳ４１］  コマンド処理部２１０は、ストレージ装置１００からの応答を受信すると、ステップＳ４２に遷移する。
【０１２０】
［ステップＳ４２］  コマンド処理部２１０は、ストレージ装置１００からの応答が正常応答か否かを判断する。正常応答である場合（ステップＳ４２のＹｅｓ）、ステップＳ４３に遷移する。エラー応答である場合（ステップＳ４２のＮｏ）、ステップＳ４５に遷移する。
【０１２１】
［ステップＳ４３］  コマンド処理部２１０は、セッション管理テーブル２２０ａを作成する。なお、セッション管理テーブル２２０ａの内容は、セッション管理テーブル３２０ａの内容と同一である。コマンド処理部２１０は、作成したセッション管理テーブル２２０ａをセッション管理データ格納部２２０に格納する。その後、ステップＳ４４に遷移する。
【０１２２】
［ステップＳ４４］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドが正常に終了した応答をホスト装置５０ａに返す。その後、図１４の処理を終了する。
［ステップＳ４５］  コマンド処理部２１０は、中継ＲＥＣ開始コマンドのエラー応答をホスト装置５０ａに返す。その後、図１４の処理を終了する。
【０１２３】
次に、中継用ＲＥＣを用いた初期コピー処理を説明する。
図１５は、中継用ＲＥＣの初期コピー処理を示すフローチャートである。
［ステップＳ５１］  コピー制御部２５０は、初期コピー対象のセッションを検索する。初期コピーが必要なセッションが見つかった場合（ステップＳ５１のＹｅｓ）、ステップＳ５２に遷移する。初期コピーが必要なセッションが見つからなかった場合（ステップＳ５１のＮｏ）、図１５の処理を終了する。
【０１２４】
［ステップＳ５２］  コピー制御部２５０は、セッション管理テーブル２２０ａのコピー先セッションＩＤの欄を参照し、初期コピー対象のセッションが、ＲＥＣセッションか否かを判断する。初期コピー対象のセッションが、ＲＥＣセッションである場合（ステップＳ５２のＹｅｓ）、ステップＳ５４に遷移する。初期コピー対象のセッションが、ＲＥＣセッションではない場合（ステップＳ５２のＮｏ）、ステップＳ５３に遷移する。
【０１２５】
［ステップＳ５３］  コピー制御部２５０は、ローカルセッション（ストレージ装置２００内の論理ボリューム間）の初期コピーを実施する。その後、図１５の処理を終了する。
【０１２６】
［ステップＳ５４］  コピー制御部２５０は、セッション管理テーブル２２０ａのＲＥＣ動作モードフラグを参照し、初期コピー対象のセッション（ＲＥＣセッション）は、中継ＲＥＣセッションか否かを判断する。初期コピー対象のセッションが、中継ＲＥＣセッションである場合（ステップＳ５４のＹｅｓ）、ステップＳ５６に遷移する。初期コピー対象のセッションが、中継ＲＥＣセッションではない場合（ステップＳ５４のＮｏ）、ステップＳ５５に遷移する。
【０１２７】
［ステップＳ５５］  コピー制御部２５０は、ストレージ装置３００との間でストレージ装置１００を使用しないＲＥＣセッションの初期コピーを実施する。その後、図１５の処理を終了する。
【０１２８】
［ステップＳ５６］  コピー制御部２５０は、初期コピー開始データを参照し、初期コピー範囲を決定する。その後、ステップＳ５７に遷移する。
［ステップＳ５７］  コピー制御部２５０は、対象ＲＥＣバッファに空き領域が存在するか否かを判断する。対象ＲＥＣバッファに空き領域が存在する場合（ステップＳ５７のＹｅｓ）、ステップＳ５９に遷移する。対象ＲＥＣバッファに空き領域が存在しない場合（ステップＳ５７のＮｏ）、ステップＳ５８に遷移する。
【０１２９】
［ステップＳ５８］  コピー制御部２５０は、当該ＲＥＣバッファの切り替え処理を起動する。その後、ステップＳ５７に遷移する。
［ステップＳ５９］  コピー制御部２５０は、空き領域を確保する。その後、ステップＳ６０に遷移する。
【０１３０】
［ステップＳ６０］  コピー制御部２５０は、ステップＳ５６にて決定した範囲のデータを、ステップＳ５９にて確保した空き領域に書き込む。その後、ステップＳ６１に遷移する。
【０１３１】
［ステップＳ６１］  コピー制御部２５０は、初期コピー領域を管理しているコピービットマップのビットを「０」に設定する。その後、ステップＳ６１に遷移する。
［ステップＳ６２］  コピー制御部２５０は、初期コピー開始データを更新する。その後、図１５の処理を終了する。
【０１３２】
図１６および図１７は、中継用ＲＥＣのバッファセット受信処理を示すフローチャートである。
［ステップＳ７１］  バッファセット確保部１４１は、ストレージ装置２００からバッファセット送信コマンドを受信すると、ステップＳ７２に遷移する。
【０１３３】
［ステップＳ７２］  バッファセット確保部１４１は、ＲＥＣバッファ管理データ格納部１２０に格納されているＲＥＣバッファ管理テーブル（以下、ＲＥＣバッファ管理テーブル１２０ａと表記する）を参照し、ストレージ装置２００用の受信用ＲＥＣバッファが存在するか否かを判断する。具体的には、バッファセット確保部１４１は、装置先ＩＤの欄にストレージ装置２００のＩＤが設定されており、かつ、用途の欄が「受信」であるＲＥＣバッファ管理テーブル１２０ａが存在するか否かを判断する。ストレージ装置２００用の受信用ＲＥＣバッファが存在する場合、すなわち、装置先ＩＤの欄にストレージ装置２００のＩＤが設定されており、かつ、用途の欄が「受信」であるＲＥＣバッファ管理テーブル１２０ａが存在する場合（ステップＳ７２のＹｅｓ）、ステップＳ７４に遷移する。ストレージ装置２００用の受信用ＲＥＣバッファが存在しない場合、すなわち、装置先ＩＤの欄にストレージ装置２００のＩＤが設定されており、かつ、用途の欄が「受信」であるＲＥＣバッファ管理テーブル１２０ａが存在しない場合、（ステップＳ７２のＮｏ）、ステップＳ７３に遷移する。
【０１３４】
［ステップＳ７３］  バッファセット確保部１４１は、バッファセット送信コマンドに対するエラー応答をストレージ装置２００に返す。その後、図１６の処理を終了する。
［ステップＳ７４］  バッファセット確保部１４１は、ＲＥＣバッファ管理テーブル１２０ａを参照し、ストレージ装置２００用の受信用ＲＥＣバッファは、中継用のＲＥＣバッファか否かを判断する。具体的には、バッファセット確保部１４１は、ステップＳ７２にて存在すると判断したＲＥＣバッファ管理テーブル１２０ａの中継機能の欄が「有効」に設定されているか否かを判断する。ストレージ装置２００用の受信用ＲＥＣバッファが、中継用のＲＥＣバッファである場合、すなわち、ＲＥＣバッファ管理テーブル１２０ａの中継機能の欄が「有効」に設定されている場合（ステップＳ７４のＹｅｓ）、ステップＳ７６に遷移する。ストレージ装置２００用の受信用ＲＥＣバッファが、中継用のＲＥＣバッファではない場合、すなわち、ＲＥＣバッファ管理テーブル１２０ａの中継機能の欄が「有効」に設定されていない場合（ステップＳ７４のＮｏ）、ステップＳ７５に遷移する。なお、ステップＳ７２およびステップＳ７４の処理によって、前述した（条件１）を満たすか否かの判断が行われる。
【０１３５】
［ステップＳ７５］  バッファセット確保部１４１は、当該ストレージ装置１００がデータ転送目的の装置（終端装置）であると判断し、通常のＲＥＣ  Ｃｏｎｓｉｓｔｅｎｃｙモードの処理を行う。具体的には、コピー制御部１４０は、バッファセットデータを受信する処理を行う。その後、ＲＥＣ対象データがストレージ装置２００から送られてくると、送られてきたＲＥＣ対象データを論理ボリューム６１ａに記憶する。その後、図１６の処理を終了する。
【０１３６】
［ステップＳ７６］  バッファセット確保部１４１は、ＲＥＣバッファ管理テーブル１２０ａを参照し、中継送信用ＲＥＣバッファが定義されているか否かを判断する。具体的には、バッファセット確保部１４１は、前述した（条件２）、かつ、（条件３）を満たすＲＥＣバッファ管理テーブル１２０ａが存在するか否かを判断する。中継送信用ＲＥＣバッファが定義されている場合、すなわち、前述した（条件２）、かつ、（条件３）を満たすＲＥＣバッファ管理テーブル１２０ａが存在する場合（ステップＳ７６のＹｅｓ）、ステップＳ７７に遷移する。中継送信用ＲＥＣバッファが定義されていない場合、すなわち、前述した（条件２）、かつ、（条件３）を満たすＲＥＣバッファ管理テーブル１２０ａが存在しない場合（ステップＳ７６のＮｏ）、ステップＳ７５に遷移する。
【０１３７】
［ステップＳ７７］  バッファセット確保部１４１は、中継送信用ＲＥＣバッファに空き領域が存在するか否かを判断する。中継送信用ＲＥＣバッファに空き領域が存在する場合（ステップＳ７７のＹｅｓ）、ステップＳ７８に遷移する。中継送信用ＲＥＣバッファに空き領域が存在しない場合（ステップＳ７７のＮｏ）、空き領域ができるまで待機する。
【０１３８】
［ステップＳ７８］  バッファセット確保部１４１は、バッファセットデータを受信すると、受信したバッファセットデータをテーブル化してバッファセットデータ格納部１５０に格納する。その後、ステップＳ７９に遷移する。
【０１３９】
［ステップＳ７９］  バッファセット確保部１４１は、中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファを並行してバッファ群１６０内に確保する処理を開始する。その後、ステップＳ８０に遷移する。
【０１４０】
［ステップＳ８０］  バッファセット確保部１４１は、中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファの両方の確保が完了したか否かを判断する。中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファの両方の確保が完了した場合（ステップＳ８０のＹｅｓ）、ステップＳ８１に遷移する。中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファの両方の確保が完了していない場合（ステップＳ８０のＮｏ）、中継受信用ＲＥＣバッファおよび中継送信用ＲＥＣバッファの両方の確保の完了を待機する。
【０１４１】
［ステップＳ８１］  バッファセット確保部１４１は、ステップＳ７１にて受信したバッファセット送信コマンドに対する応答をストレージ装置２００に返す。その後、図１７の処理を終了する。
【０１４２】
図１８は、アドレス入れ替え部の処理を示すフローチャートである。
［ステップＳ９１］  アドレス入れ替え部１４２は、バッファセットデータとＲＥＣ対象データの受信が完了したか否かを判断する。バッファセットデータとＲＥＣ対象データの受信が完了した場合（ステップＳ９１のＹｅｓ）、ステップＳ９２に遷移する。バッファセットデータとＲＥＣ対象データの受信が完了していない場合（ステップＳ９１のＮｏ）、バッファセットデータとＲＥＣ対象データの受信の完了を待機する。
【０１４３】
［ステップＳ９２］  アドレス入れ替え部１４２は、バッファセットテーブル１５０ａの中継送信用バッファセットテーブルＩＤの欄に設定されている中継用バッファセットテーブルＩＤに一致するＩＤをバッファセットテーブルＩＤの欄に備えるバッファセットテーブル１５０ａを特定する。その後、ステップＳ９３に遷移する。
【０１４４】
［ステップＳ９３］  アドレス入れ替え部１４２は、ステップＳ９２にて特定したバッファセットテーブル１５０ａのバッファセット構成バッファＩＤの欄に設定されたバッファＩＤがバッファＩＤの欄に設定されたバッファ識別テーブル１３０ａを特定する。そして、特定したバッファ識別テーブル１３０ａの属性データの欄に、中継受信用ＲＥＣバッファのバッファ識別テーブル１３０ａの属性データの欄に設定されている属性データをコピーする。その後、ステップＳ９４に遷移する。
【０１４５】
［ステップＳ９４］  アドレス入れ替え部１４２は、中継受信用ＲＥＣバッファのバッファ識別テーブル１３０ａのバッファアドレスの欄に設定されているバッファのアドレスと、ステップＳ９３にて特定した中継送信用ＲＥＣバッファのバッファ識別テーブル１３０ａのバッファアドレスの欄に設定されているバッファのアドレスを入れ替える。その後、ステップＳ９５に遷移する。
【０１４６】
［ステップＳ９５］  アドレス入れ替え部１４２は、ストレージ装置２００の中継受信用ＲＥＣバッファの専有を解放する処理を開始する。また、中継送信用ＲＥＣバッファに関連づけられたバッファ識別テーブルに基づいて、ＲＥＣ対象データをストレージ装置３００に送信する処理を開始する。なお、この処理については、後の具体例にて説明する。その後、図１８の処理を終了する。
【０１４７】
図１８に示す処理によれば、ステップＳ９４にてＲＥＣバッファのアドレスを入れ替える。アドレスの入れ替えが終了すれば、ストレージ装置２００のＲＥＣバッファを解放してもよいため、ＲＥＣ対象データをストレージ装置３００に送信する処理の開始と同時にＲＥＣバッファの解放を開始することができる。
【０１４８】
次に、ステップＳ９５の中継送信用ＲＥＣバッファに関連づけられたバッファ識別テーブルに基づいて、ＲＥＣ対象データをストレージ装置３００に送信する処理の具体例を説明する。
【０１４９】
図１９〜図２１は、ＲＥＣ対象データをストレージ装置に送信する処理の具体例を説明する図である。
図７にて説明したＲＥＣバッファの設定組み合わせの一例のように、ストレージ装置１００でストレージ装置２００用の中継受信用ＲＥＣバッファのＲＥＣバッファグループＩＤを＃００とし、ストレージ装置３００用の中継送信用ＲＥＣバッファのＲＥＣバッファグループＩＤを＃０１とする。
【０１５０】
図１９に示すデータ群Ｄ０は、ストレージ装置２００からストレージ装置１００に転送されてくるバッファセットデータとＲＥＣ対象データの組み合わせを示している。
バッファセットデータＤ１には、バッファセットを構成するＲＥＣバッファのバッファＩＤ「0x1011」、「0x1111」が含まれている。
【０１５１】
属性データＤ２は、バッファＩＤ「0x1011」のＲＥＣバッファに転送されるＲＥＣ対象データＤ３の属性データである。属性データＤ２の個数は最大１０００個に設定されている。
【０１５２】
ＲＥＣ対象データＤ３は、バッファＩＤ「0x1011」のＲＥＣバッファに転送されるＲＥＣ対象データである。図１９では、ＲＥＣ対象データＤ３の容量は、最大８ＭＢに設定されている。
【０１５３】
属性データＤ４は、バッファＩＤ「0x1111」のＲＥＣバッファに転送されるＲＥＣ対象データの属性データである。属性データＤ４の個数は最大１０００個に設定されている。
ＲＥＣ対象データＤ５は、バッファＩＤ「0x1111」のＲＥＣバッファに転送されるＲＥＣ対象データである。図１９では、ＲＥＣ対象データＤ５の容量は、最大８ＭＢに設定されている。
【０１５４】
図２０に示す制御モジュール１０ａは、ＲＥＣバッファグループＩＤ「0x00」で確保したバッファセットテーブル１５０ａ１およびバッファ識別テーブル１３０ａ１を保持している。
【０１５５】
アドレス入れ替え部１４２は、バッファＩＤ「0x1010」向けのＲＥＣ対象データＤ３は、バッファ識別テーブル１３０ａ１のバッファアドレスの欄を参照する。そして、アドレス入れ替え部１４２は、バッファアドレスの欄に設定されている「0x0000000020400000」のＲＥＣバッファ１６１ａにコピー対象データを格納する。
【０１５６】
また、制御モジュール１０ａは、ＲＥＣバッファグループＩＤ「0x01」で確保したバッファセットテーブル１５０ａ２およびバッファ識別テーブル１３０ａ２を保持している。
ここで、ＲＥＣ  Ｃｏｎｓｉｓｔｅｎｃｙモードであれば、制御モジュール１０ａは、ステップＳ７５にて述べた処理を実行する。しかし、アドレス入れ替え部１４２は、ＲＥＣ  Ｃｏｎｓｉｓｔｅｎｃｙモードとは異なるモードの処理を行う。すなわち、アドレス入れ替え部１４２は、バッファ識別テーブル１３０ａ２のバッファアドレスの欄に設定されている「0x0000000080400000」のＲＥＣバッファ１６２ａにＲＥＣ対象データＤ３を格納しない。
【０１５７】
制御モジュール１０ｂは、ＲＥＣバッファグループＩＤ「0x00」で確保したバッファセットテーブル１５０ｂ１およびバッファ識別テーブル１３０ｂ１を保持している。
制御モジュール１０ｂのアドレス入れ替え部は、バッファＩＤ「0x1111」向けのＲＥＣ対象データＤ５は、バッファ識別テーブル１３０ｂ１のバッファアドレスの欄を参照する。そして、制御モジュール１０ｂのアドレス入れ替え部は、バッファアドレスの欄に設定されている「0x0000000020400000」のＲＥＣバッファ１６１ｂにＲＥＣ対象データＤ５を格納する。
【０１５８】
ここで、制御モジュール１０ｂのアドレス入れ替え部も、アドレス入れ替え部１４２と同様に、バッファ識別テーブル１３０ｂ２のバッファアドレスの欄に設定されている「0x0000000080400000」のＲＥＣバッファ１６２ｂにＲＥＣ対象データＤ５を格納しない。
【０１５９】
そして、バッファセット確保部１４１のバッファセットの確保が完了し、コピー対象データをストレージ装置２００から受信すると、図２１に示すように、アドレス入れ替え部１４２は、バッファ識別テーブル１３０ａ１に記憶されているバッファアドレスの欄に設定されている「0x0000000020400000」とバッファ識別テーブル１３０ａ２に記憶されているバッファアドレスの欄に設定されている「0x0000000080400000」を入れ替える。また、バッファ識別テーブル１３０ａ１に格納されている属性データは、そのままバッファ識別テーブル１３０ａ２にコピーする。
【０１６０】
また、制御モジュール１０ｂのアドレス入れ替え部は、バッファ識別テーブル１３０ｂ１に記憶されているバッファアドレスの欄に設定されている「0x0000000020400000」とバッファ識別テーブル１３０ｂ２に記憶されているバッファアドレスの欄に設定されている「0x0000000080400000」を入れ替える。また、バッファ識別テーブル１３０ｂ１に格納されている属性データは、そのままバッファ識別テーブル１３０ｂ２にコピーする。
【０１６１】
コピー制御部１４０は、アドレスの入れ替えおよびバッファ識別テーブル１３０ａ１の属性データのコピーが完了すると、ＲＥＣバッファグループＩＤ「0x00」に関するメモリ解放処理を行う。具体的には、コピー制御部１４０は、バッファセットテーブル１５０ａ１、バッファ識別テーブル１３０ａ１、およびＲＥＣバッファ１６２ａを解放する。また、コピー制御部１４０は、バッファ識別テーブル１３０ａ２のバッファアドレスおよび属性データの欄を参照し、バッファアドレスの欄に設定されている「0x0000000020400000」に記憶されているＲＥＣ対象データおよび属性データをストレージ装置１００に送信する処理を開始する。
【０１６２】
また、制御モジュール１０ｂのコピー制御部は、アドレスの入れ替えおよびバッファ識別テーブル１３０ｂ１の属性データのコピーが完了すると、ＲＥＣバッファグループＩＤ「0x00」に関するメモリ解放処理を行う。具体的には、制御モジュール１０ｂのコピー制御部は、バッファセットテーブル１５０ｂ１、バッファ識別テーブル１３０ｂ１、およびＲＥＣバッファ１６２ｂを解放する。また、制御モジュール１０ｂのコピー制御部は、バッファ識別テーブル１３０ｂ２のバッファアドレスおよび属性データの欄を参照し、バッファアドレスの欄に設定されている「0x0000000020400000」に記憶されているＲＥＣ対象データおよび属性データをストレージ装置１００に送信する処理を開始する。
【０１６３】
以上述べたように、ストレージ装置１００によれば、ストレージ装置２００から受信したＲＥＣ対象データを中継受信用ＲＥＣバッファに記憶したままストレージ装置３００に送信することができる。このため、ＲＥＣ対象データの受信が終了すると、直ちにストレージ装置３００にＲＥＣ対象データの送信を開始することで、ＲＥＣ対象データを転送する順序を保証することができる。
【０１６４】
また、ＲＥＣ対象データの転送に際し、論理ボリューム６１ａを使用しないので、論理ボリューム６１ａにＲＥＣ対象データを格納するという手間を省くことができる。
以上、本発明の中継装置および中継方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１６５】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、中継装置１および制御モジュール１０ａ、１０ｂが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１６６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６８】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【符号の説明】
【０１６９】
１  中継装置
１ａ、１ｂ、１６０、２３０、３３０  バッファ群
１ａ１、１ｂ１  バッファ
１ｃ  ボリューム
１ｄ  情報処理部
１ｄ１  第１の管理情報
１ｄ２  第２の管理情報
１ｅ  送信部
１ｆ  領域ＩＤ記憶部
１ｆ１  関連情報
１ｇ  管理情報記憶部
２  第１の装置
３  第２の装置
１０ａ、１０ｂ、２０ａ、２０ｂ、３０ａ、３０ｂ  制御モジュール
６１、６２、６３  ＲＡＩＤグループ
１００、２００、３００  ストレージ装置
１１０、２１０、３１０  コマンド処理部
１２０、２４０、３４０  ＲＥＣバッファ管理データ格納部
１３０  バッファ識別データ格納部
１３０ａ  バッファ識別テーブル
１４０、２５０、３５０  コピー制御部
１４１  バッファセット確保部
１４２  アドレス入れ替え部
１５０  バッファセットデータ格納部
１５０ａ  バッファセットテーブル
２１０ａ  コマンドパラメータ
２２０ａ  セッション管理テーブル
２４０ａ  ＲＥＣバッファ管理テーブル
２２０、３２０  セッション管理データ格納部
１０００  ストレージシステム
【図１】
0005845712.tif 000002
【図２】
0005845712.tif 000003
【図３】
0005845712.tif 000004
【図４】
0005845712.tif 000005
【図５】
0005845712.tif 000006
【図６】
0005845712.tif 000007
【図７】
0005845712.tif 000008
【図８】
0005845712.tif 000009
【図９】
0005845712.tif 000010
【図１０】
0005845712.tif 000011
【図１１】
0005845712.tif 000012
【図１２】
0005845712.tif 000013
【図１３】
0005845712.tif 000014
【図１４】
0005845712.tif 000015
【図１５】
0005845712.tif 000016
【図１６】
0005845712.tif 000017
【図１７】
0005845712.tif 000018
【図１８】
0005845712.tif 000019
【図１９】
0005845712.tif 000020
【図２０】
0005845712.tif 000021
【図２１】
0005845712.tif 000022
【図２２】
0005845712.tif 000023