(57)【要約】【課題】複製を作成しても複製を作成しない場合に比べて応答時間が長くならず、複製数を増やしても応答時間が長くならないシステムを提供する。【解決手段】データ転送部１１は、上位装置２から受信した書き込み要求およびデータを、主ストレージ部１２と一時記憶部１４とに転送する。主ストレージ部１２は、主ストレージ部１２でデータ保存を実行する順序を表す順序情報を一時記憶部１４に送信する。一時記憶部１４は、主ストレージ部１２から送信された順序情報に基づいて副ストレージ部１３に書き込み要求およびデータを転送する。【選択図】図１
2007219809.tif 000002
【特許請求の範囲】
【請求項１】
複数の上位装置から受信した同一のデータを保存する第１および第２の記憶手段を有してなるデータ記憶システムであって、
前記第１の記憶手段は、前記上位装置から受信したデータの保存を実行する順序を表す順序情報を前記第２の記憶手段に送信することを特徴とするデータ記憶システム。
【請求項２】
複数の上位装置から受信した同一のデータを保存する第１および第２の記憶手段を有してなるデータ記憶システムであって、
前記第１の記憶手段は、
前記上位装置から受信したデータを保存するとともに、該データの保存を実行する順序を表す順序情報を前記第２の記憶手段に送信する主ストレージ手段を有し、
前記第２の記憶手段は、
前記上位装置から受信したデータを保存する副ストレージ手段と、
前記副ストレージ手段の前段に配置され、前記上位装置から受信したデータを一時保存し、前記主ストレージ手段から受信した順序情報に基づく順序で、一時保存されているデータを前記副ストレージ手段に転送する一時記憶手段とを有することを特徴とするデータ記憶システム。
【請求項３】
前記主ストレージ手段および前記一時記憶手段は、前記上位装置からデータの書き込み要求を受信し、該データを保存する領域を確保してから、前記上位装置にデータ要求を行うことで前記上位装置からデータを受信することを特徴とする、請求項２に記載のデータ記憶システム。
【請求項４】
前記主ストレージ手段は、前記上位装置から書き込み要求を受信すると、該書き込み要求の識別子と該書き込み要求を受信した順序を表す実行順序とを前記順序情報として前記第２の記憶手段に送信し、
前記一時記憶手段は、前記上位装置から受信した書き込み要求も一時保存し、前記主ストレージ手段から受信した順序情報に含まれる実行順序に基づく順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを前記副ストレージ手段に転送することを特徴とする、請求項２に記載のデータ記憶システム。
【請求項５】
前記一時記憶手段は、前記主ストレージ手段から受信した順序情報に含まれる実行順序を、該順序情報に含まれる識別子に対応する書き込み要求およびデータと対応付けて保存し、予め設定した条件を満たした時に、次に転送を実行する実行順序が割り当てられている書き込み要求およびデータを前記副ストレージ手段に転送する動作を繰り返すことを特徴とする、請求項２に記載のデータ記憶システム。
【請求項６】
前記主ストレージ手段は、前記上位装置から書き込み要求を受信すると、該書き込み要求を受信した順序で、該書き込み要求の識別子を前記順序情報として前記第２の記憶手段に送信し、
前記一時記憶手段は、前記上位装置から受信した書き込み要求も一時保存し、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを前記副ストレージ手段に転送することを特徴とする、請求項２に記載のデータ記憶システム。
【請求項７】
前記一時記憶手段は、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを所定のリンクの最後尾に接続して保存し、予め設定した条件を満たした時に、前記所定のリンクの先頭に接続されている書き込み要求およびデータを前記副ストレージ手段に転送し、前記所定のリンクから切り離す動作を繰り返すことを特徴とする、請求項６に記載のデータ記憶システム。
【請求項８】
複数の上位装置から送信されるデータを保存するデータ記憶システムを構成するデータ記憶装置であって、
前記上位装置から受信したデータの保存を実行する順序を表す順序情報を、前記データ記憶システムを構成する他方のデータ記憶装置に送信する手段を有することを特徴とするデータ記憶装置。
【請求項９】
複数の上位装置から送信されるデータを保存するデータ記憶システムを構成するデータ記憶装置であって、
前記上位装置から受信したデータを保存するとともに、該データの保存を実行する順序を表す順序情報を、前記データ記憶システムを構成する他方のデータ記憶装置に送信する主ストレージ手段を有することを特徴とするデータ記憶装置。
【請求項１０】
前記主ストレージ手段は、前記上位装置からデータの書き込み要求を受信し、該データを保存する領域を確保してから、前記上位装置にデータ要求を行うことで前記上位装置からデータを受信することを特徴とする、請求項９に記載のデータ記憶装置。
【請求項１１】
前記主ストレージ手段は、前記上位装置から書き込み要求を受信すると、該書き込み要求の識別子と該書き込み要求を受信した順序を表す実行順序とを前記順序情報として前記他方のデータ記憶装置に送信することを特徴とする、請求項９に記載のデータ記憶装置。
【請求項１２】
前記主ストレージ手段は、前記上位装置から書き込み要求を受信すると、該書き込み要求を受信した順序で、該書き込み要求の識別子を前記順序情報として前記他方のデータ記憶装置に送信することを特徴とする、請求項９に記載のデータ記憶装置。
【請求項１３】
複数の上位装置から送信されるデータを保存するデータ記憶システムを構成するデータ記憶装置であって、
前記データ記憶システムを構成する他方のデータ記憶装置にて前記上位装置から受信したデータの保存を実行する順序を表す順序情報を、前記他方のデータ記憶装置から受信する手段を有することを特徴とするデータ記憶装置。
【請求項１４】
複数の上位装置から送信されるデータを保存するデータ記憶システムを構成するデータ記憶装置であって、
前記上位装置から受信したデータを保存する副ストレージ手段と、
前記副ストレージ手段の前段に配置され、前記上位装置から受信したデータを一時保存し、前記データ記憶システムを構成する他方のデータ記憶装置から受信した順序情報であって前記他方のデータ記憶装置にて前記上位装置から受信したデータの保存を実行する順序を表す順序情報に基づく順序で、一時保存されているデータを前記副ストレージ手段に転送する一時記憶手段とを有することを特徴とするデータ記憶装置。
【請求項１５】
前記一時記憶手段は、前記上位装置からデータの書き込み要求を受信し、該データを保存する領域を確保してから、前記上位装置にデータ要求を行うことで前記上位装置からデータを受信することを特徴とする、請求項１４に記載のデータ記憶装置。
【請求項１６】
前記一時記憶手段は、前記上位装置から受信した書き込み要求も一時保存し、前記他方のデータ記憶装置にて前記上位装置から受信した書き込み要求の識別子と該書き込み要求を受信した順序を表す実行順序とを前記順序情報として前記他方のデータ記憶装置から受信した場合、前記順序情報に含まれる実行順序に基づく順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを前記副ストレージ手段に転送することを特徴とする、請求項１４に記載のデータ記憶装置。
【請求項１７】
前記一時記憶手段は、前記他方のデータ記憶装置から受信した順序情報に含まれる実行順序を、該順序情報に含まれる識別子に対応する書き込み要求およびデータと対応付けて保存し、予め設定した条件を満たした時に、次に転送を実行する実行順序が割り当てられている書き込み要求およびデータを前記副ストレージ手段に転送する動作を繰り返すことを特徴とする、請求項１４に記載のデータ記憶装置。
【請求項１８】
前記一時記憶手段は、前記上位装置から受信した書き込み要求も一時保存し、前記他方のデータ記憶装置にて前記上位装置から書き込み要求を受信した順序で該書き込み要求の識別子を前記順序情報として前記他方のデータ記憶装置から受信した場合、前記他方のデータ記憶装置から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを前記副ストレージ手段に転送することを特徴とする、請求項１４に記載のデータ記憶装置。
【請求項１９】
前記一時記憶手段は、前記他方のデータ記憶装置から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを所定のリンクの最後尾に接続して保存し、予め設定した条件を満たした時に、前記所定のリンクの先頭に接続されている書き込み要求およびデータを前記副ストレージ手段に転送し、前記所定のリンクから切り離す動作を繰り返すことを特徴とする、請求項１８に記載のデータ記憶装置。
【請求項２０】
複数の上位装置から送信される同一のデータを保存する第１および第２の記憶手段によるデータ記憶方法であって、
前記上位装置から順次送信されるデータを前記第１の記憶手段に保存する順序を表す順序情報を作成するステップと、
前記順序情報を前記第１の記憶手段から前記第２の記憶手段に送信するステップとを有することを特徴とするデータ記憶方法。
【請求項２１】
複数の上位装置から送信される同一のデータを保存する主ストレージ手段および副ストレージ手段と、前記副ストレージ手段の前段に配置された一時記憶手段とによるデータ記憶方法であって、
前記上位装置から送信されるデータを前記主ストレージ手段および前記一時記憶手段で受信する受信ステップと、
前記上位装置から順次送信されるデータを前記主ストレージ手段に保存する順序を表す順序情報を作成し、該順序情報を前記主ストレージ手段から前記一時記憶手段に送信する送信ステップと、
前記上位装置から送信されたデータを前記一時記憶手段に一時保存し、前記主ストレージ手段から受信した順序情報に基づく順序で、一時保存されているデータを前記一時記憶手段から前記副ストレージ手段に転送する転送ステップとを有することを特徴とするデータ記憶方法。
【請求項２２】
前記受信ステップでは、前記上位装置からデータの書き込み要求が送信された場合、該データを保存する領域を前記主ストレージ手段および前記一時記憶手段に確保してから、前記主ストレージ手段および前記一時記憶手段から前記上位装置にデータ要求を行うことで、前記上位装置からデータを送信することを特徴とする、請求項２１に記載のデータ記憶方法。
【請求項２３】
前記送信ステップでは、前記上位装置から受信した書き込み要求の識別子と該書き込み要求を受信した順序を表す実行順序とを前記順序情報として作成し、該順序情報を前記主ストレージ手段から前記一時記憶手段に送信し、
前記転送ステップでは、前記上位装置から受信した書き込み要求も前記一時記憶手段に一時保存し、前記主ストレージ手段から受信した順序情報に含まれる実行順序に基づく順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送することを特徴とする、請求項２１に記載のデータ記憶方法。
【請求項２４】
前記転送ステップでは、前記主ストレージ手段から受信した順序情報に含まれる実行順序を、該順序情報に含まれる識別子に対応する書き込み要求およびデータと対応付けて前記一時記憶手段に保存し、予め設定した条件を満たした時に、次に転送を実行する実行順序が割り当てられている書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送する動作を繰り返すことを特徴とする、請求項２１に記載のデータ記憶方法。
【請求項２５】
前記送信ステップでは、前記上位装置から書き込み要求を受信した順序で、該書き込み要求の識別子を前記順序情報として、前記主ストレージ手段から前記一時記憶手段に送信し、
前記転送ステップでは、前記上位装置から受信した書き込み要求も前記一時記憶手段に一時保存し、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送することを特徴とする、請求項２１に記載のデータ記憶方法。
【請求項２６】
前記転送ステップでは、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを所定のリンクの最後尾に接続して前記一時記憶手段に保存し、予め設定した条件を満たした時に、前記所定のリンクの先頭に接続されている書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送し、前記所定のリンクから切り離す動作を繰り返すことを特徴とする、請求項２５に記載のデータ記憶方法。
【請求項２７】
複数の上位装置から送信される同一のデータを保存する第１および第２の記憶手段を有するデータ記憶システムを構成するコンピュータに、
前記上位装置から順次送信されるデータを前記第１の記憶手段に保存する順序を表す順序情報を作成するステップと、
前記順序情報を前記第１の記憶手段から前記第２の記憶手段に送信するステップとを実行させることを特徴とするデータ記憶プログラム。
【請求項２８】
複数の上位装置から送信される同一のデータを保存する主ストレージ手段および副ストレージ手段と、前記副ストレージ手段の前段に配置された一時記憶手段とを有するデータ記憶システムを構成するコンピュータに、
前記上位装置から送信されるデータを前記主ストレージ手段および前記一時記憶手段で受信する受信ステップと、
前記上位装置から順次送信されるデータを前記主ストレージ手段に保存する順序を表す順序情報を作成し、該順序情報を前記主ストレージ手段から前記一時記憶手段に送信する送信ステップと、
前記上位装置から送信されたデータを前記一時記憶手段に一時保存し、前記主ストレージ手段から受信した順序情報に基づく順序で、一時保存されているデータを前記一時記憶手段から前記副ストレージ手段に転送する転送ステップとを実行させることを特徴とするデータ記憶プログラム。
【請求項２９】
前記受信ステップでは、前記上位装置からデータの書き込み要求が送信された場合、該データを保存する領域を前記主ストレージ手段および前記一時記憶手段に確保してから、前記主ストレージ手段および前記一時記憶手段から前記上位装置にデータ要求を行うことで、前記上位装置からデータを送信することを特徴とする、請求項２８に記載のデータ記憶プログラム。
【請求項３０】
前記送信ステップでは、前記上位装置から受信した書き込み要求の識別子と該書き込み要求を受信した順序を表す実行順序とを前記順序情報として作成し、該順序情報を前記主ストレージ手段から前記一時記憶手段に送信し、
前記転送ステップでは、前記上位装置から受信した書き込み要求も前記一時記憶手段に一時保存し、前記主ストレージ手段から受信した順序情報に含まれる実行順序に基づく順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送することを特徴とする、請求項２８に記載のデータ記憶プログラム。
【請求項３１】
前記転送ステップでは、前記主ストレージ手段から受信した順序情報に含まれる実行順序を、該順序情報に含まれる識別子に対応する書き込み要求およびデータと対応付けて前記一時記憶手段に保存し、予め設定した条件を満たした時に、次に転送を実行する実行順序が割り当てられている書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送する動作を繰り返すことを特徴とする、請求項２８に記載のデータ記憶プログラム。
【請求項３２】
前記送信ステップでは、前記上位装置から書き込み要求を受信した順序で、該書き込み要求の識別子を前記順序情報として、前記主ストレージ手段から前記一時記憶手段に送信し、
前記転送ステップでは、前記上位装置から受信した書き込み要求も前記一時記憶手段に一時保存し、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送することを特徴とする、請求項２８に記載のデータ記憶プログラム。
【請求項３３】
前記転送ステップでは、前記主ストレージ手段から順序情報を受信した順序で、該順序情報に含まれる識別子に対応する書き込み要求およびデータを所定のリンクの最後尾に接続して前記一時記憶手段に保存し、予め設定した条件を満たした時に、前記所定のリンクの先頭に接続されている書き込み要求およびデータを、前記一時記憶手段から前記副ストレージ手段に転送し、前記所定のリンクから切り離す動作を繰り返すことを特徴とする、請求項３２に記載のデータ記憶プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一のデータを複数のストレージ部に保存するデータ記憶システム、データ記憶方法、データ記憶プログラムに関する。
【背景技術】
【０００２】
従来より、データ記憶システムにおいては、障害発生時にデータの損失を防ぐことを目的として、同一のデータを複数のストレージ部に保存することによりデータを複製している。
【０００３】
図１１の構成では、データ転送部３１が上位装置３３から受信した同一のデータをストレージ部３２ａ，３２ｂに同時に転送し、ストレージ部３２ａ，３２ｂの各々にデータを保存している。このようなデータ複製方法をミラーリングと呼ぶ。特に、ハードディスク間で行うミラーリングはＲＡＩＤ１（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ  １、非特許文献１参照）として知られている。ミラーリングは複数のストレージ部に同時にデータを転送するため、複製データを作成する場合も（ストレージ部３２ａ，３２ｂが両方ある場合）、複製データを作成しない場合（ストレージ部３２ａ，３２ｂの一方しかない場合）に比べて上位装置３３への応答時間の増加が無いという利点がある。
【０００４】
ところが、図１２の構成では、複数のデータ転送部４１ａ，４１ｂと複数のストレージ部４２ａ，４２ｂとが通信網４４を介して接続されている。この構成では、複数のデータ転送部４１ａ，４１ｂが同一のストレージ部にアクセスする場合がある。この場合、単純に複数のストレージ部にデータを転送するミラーリングでは、ストレージ部間でデータの一貫性が無くなる状態が発生する。これは次の様な場合である。
【０００５】
例えば、ストレージ部４２ａ，４２ｂに対して、ほぼ同一時刻に、データ転送部４１ａが上位装置４３ａから受信したデータａを、データ転送部４１ｂが上位装置４３ｂから受信したデータｂを、同一のアドレスに書き込もうとする場合、通信網４４における遅延等により、ストレージ部４２ａにはデータａがデータｂよりも先に到着し、ストレージ部４２ｂにはデータｂがデータａよりも先に到着する可能性がある。この時、２つの書き込みが行われた後には先に到着したデータは後に到着したデータにより上書きされるために、ストレージ部４２ａにはデータｂが保存され、ストレージ部４２ｂにはデータａが保存される結果となる。すなわち、ストレージ部４２ａ，４２ｂ間のデータの一貫性が崩れた状態となる。
【０００６】
複数の上位装置が設けられている場合のミラーリングにおいては、ストレージ部間のデータの一貫性を保つ方法として、２相ロックと呼ばれる方式を応用した次の方法が知られている（非特許文献２参照）。図１２の構成において、データ転送部４１ａがストレージ部４２ａ，４２ｂにデータの書き込みを行う時には、まず、ストレージ部４２ａをロックし、他のデータ転送部４１ｂから書き込みおよびロックができない状態にする。次に、データ転送部４１ａは、ストレージ部４２ｂをロックし、他のデータ転送部４１ｂから書き込みおよびロックができない状態にする。その後、データ転送部４１ａは、ストレージ部４２ａとストレージ部４２ｂにデータの書き込みを行い、書き込みが終了した後にストレージ部４２ａ，４２ｂのロックを解除する。データ転送部４１ｂが書き込み要求を行う時も同様の手順を取る。
【０００７】
例えば、ストレージ部４２ａ，４２ｂに対して、ほぼ同一時刻に、データ転送部４１ａが上位装置４３ａから受信したデータａを、データ転送部４１ｂが上位装置４３ｂから受信したデータｂを、同一のアドレスに書き込もうとする場合、データ転送部４１ａ，４１ｂはいずれもストレージ部４２ａのロックを試みる。データ転送部４１ａがデータ転送部４１ｂよりも先にストレージ部４２ａをロックした場合、データ転送部４１ａはストレージ部４２ｂのロックを行い、データａをストレージ部４２ａ，４２ｂに書き込み、ストレージ部４２ａ，４２ｂのロックを解除する。データ転送部４１ｂは、データ転送部４１ａがストレージ部４２ａのロックを解除するまでストレージ部４２ａをロックできない。したがって、データ転送部４１ａがストレージ部４２ａのロックを解除した後に、データ転送部４１ｂはストレージ部４２ａ，ストレージ部４２ｂの順でロックを行い、データｂをストレージ部４２ａ，４２ｂに書き込み、ストレージ部４２ａ，４２ｂのロックを解除する。このため、ストレージ部４２ａ，４２ｂともデータａが保存された後にデータｂが保存されるため、ストレージ部４２ａ，４２ｂ間でデータの一貫性が崩れることが無い。
【非特許文献１】David A Patterson, Garth Gibson, and Randy H Katz、 A Case for Redundant Arrays of Inexpensive Disks (RAID)
【非特許文献２】滝沢誠著、「データベースシステム入門技術解説〜基礎から詳細技術まで〜」、株式会社ソフト・リサーチ・センター、1991年3月1日 第1刷発行、p.188-197
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、２相ロックを用いたミラーリングは、複数のストレージ部を順次ロックする処理が必要であるため、複製を作成すると、複製を作成しない場合に比べて応答時間が長くなるという課題がある。
【０００９】
さらに、２相ロックを用いたミラーリングは、複数のストレージ部を順次ロックする処理が必要であるため、複製データの数、すなわちストレージ部の数が増える程、応答時間が長くなるという課題がある。
【００１０】
そこで、本発明の目的は、データの一貫性を保ちつつ複製を作成する場合も、複製を作成しない場合に比べて応答時間が長くならないデータ記憶システム、データ記憶方法、データ記憶プログラムを提供することにある。
【００１１】
また、本発明の他の目的は、複製データの数を増やしても応答時間が長くならないデータ記憶システム、データ記憶方法、データ記憶プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の第１の態様のデータ記憶システムは、
複数の上位装置から受信した同一のデータを保存する第１および第２の記憶手段を有してなるデータ記憶システムであって、
前記第１の記憶手段は、前記上位装置から受信したデータの保存を実行する順序を表す順序情報を前記第２の記憶手段に送信し、
前記第２の記憶手段は、前記上位装置から受信したデータを、前記第１の記憶手段から受信した前記順序情報に基づく順序で保存することを特徴としている。
【００１３】
この構成によれば、第１の記憶手段が、データの保存を実行する順序を表す順序情報を第２の記憶手段に送信するため、第１の記憶手段と第２の記憶手段との間でデータの一貫性を保つことができる。また、上位装置と第１および第２の記憶手段との間の通信と、第１の記憶手段と第２の記憶手段との間の通信とは並行して行われるため、複製を作成しても複製を作成しない場合に比べて応答時間が長くなることがない。さらに、第２の記憶手段の数を増やした場合にも、上位装置と全ての第２の記憶手段との間の通信と、第１の記憶手段と全ての第２の記憶手段との間の通信とは並行して行われるため、通信回数の増加による応答時間の増加が無い。
【００１４】
上記目的を達成するために本発明の第２の態様のデータ記憶システムは、
複数の上位装置から受信した同一のデータを保存する第１および第２の記憶手段を有してなるデータ記憶システムであって、
前記第１の記憶手段は、
前記上位装置から受信したデータを保存するとともに、該データの保存を実行する順序を表す順序情報を前記第２の記憶手段に送信する主ストレージ手段を有し、
前記第２の記憶手段は、
前記上位装置から受信したデータを保存する副ストレージ手段と、
前記副ストレージ手段の前段に配置され、前記上位装置から受信したデータを一時保存し、前記主ストレージ手段から受信した順序情報に基づく順序で、一時保存されているデータを前記副ストレージ手段に転送する一時記憶手段とを有することを特徴としている。
【００１５】
この構成によれば、主ストレージ手段が、データの保存を実行する順序を表す順序情報を送信し、一時記憶手段が、上位装置からのデータを一時保存し、主ストレージ手段からの順序情報に基づく順序で、一時保存していたデータを副ストレージ手段に転送する。そのため、主ストレージ手段と副ストレージ手段には、同じ順序でデータが送信されることになるため、主ストレージ手段と副ストレージ手段との間でデータの一貫性を保つことができる。また、上位装置と主ストレージ手段および一時記憶手段との間の通信と、主ストレージ手段と一時記憶手段との間の通信とは並行して行われるため、複製を作成しても複製を作成しない場合に比べて応答時間が長くなることがない。さらに、副ストレージ手段の数を増やした場合にも、上位装置と全ての一時記憶手段との間の通信と、主ストレージ手段と全ての一時記憶手段との間の通信とは並行して行われるため、通信回数の増加による応答時間の増加が無い。
【発明の効果】
【００１６】
本発明によれば、第１の記憶手段から第２の記憶手段に対し、データの保存を実行する順序を表す順序情報が送信されるため、第１の記憶手段と第２の記憶手段との間でデータの一貫性を保つことができるという効果が得られる。
【００１７】
それに加えて、上位装置と第１および第２の記憶手段との間の通信と、第１の記憶手段と第２の記憶手段との間の通信とは並行して行われるため、複製を作成しても複製を作成しない場合に比べて応答時間が長くならないという効果が得られる。
【００１８】
さらに、第２の記憶手段の数を増やした場合にも、上位装置と全ての第２の記憶手段との間の通信と、第１の記憶手段と全ての第２の記憶手段との間の通信とは並行して行われるため、通信回数の増加による応答時間の増加が無いという効果が得られる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２０】
図１を参照すると、本発明の一実施形態によるデータ記憶システム１は、データ転送部１１と、主ストレージ部１２と、副ストレージ部１３と、副ストレージ部１３に対応して設けられた一時記憶部１４と、通信網１５とから構成されている。
【００２１】
なお、主ストレージ部１２が、第１の記憶手段を構成する。また、副ストレージ部１３と一時記憶部１４とが、第２の記憶手段を構成する。
【００２２】
データ転送部１１、主ストレージ部１２、および一時記憶部１４は、通信網１５により相互に接続されており、相互に通信することが可能である。また、一時記憶部１４は、その後段に１対１で接続されている副ストレージ部１３と通信することが可能であり、データ転送部１１は、その前段に１対１で接続されている上位装置２と通信することが可能である。
【００２３】
上位装置２は、データ転送部１１に対して、書き込み要求およびデータ、または読み出し要求を送信するホストコンピュータ等である。
【００２４】
データ転送部１１は、上位装置２と主ストレージ部１２および一時記憶部１４との間に配置されている。データ転送部１１は、上位装置２から送信されてきた書き込み要求およびデータを、主ストレージ部１２および一時記憶部１４に転送する。一方、データ転送部１１は、上位装置２から送信されてきた読み出し要求については、通常は、主ストレージ部１２のデータを読み出すために主ストレージ部１２に転送するが、副ストレージ部１３もしくは一時記憶部１４のデータを読み出すために一時記憶部１４に転送しても良い。
【００２５】
なお、データ転送部１１は、上位装置２と１対１で接続されているが、通信網１５等を介して複数または１つの上位装置２と接続されていても良い。
【００２６】
また、データ転送部１１は、上位装置２とは別個独立にデータ記憶システム１の内部に設けられているが、上位装置２の内部に設けられていても良い。
【００２７】
主ストレージ部１２は、上位装置２から書き込み要求があった場合は、上位装置２からデータ転送部１１を介して送信されてきたデータを保存し、データの保存を実行する順序を表す順序情報を一時記憶部１４に送信する。なお、順序情報は、主ストレージ部１２から一時記憶部１４に直接送信される必要は無く、データ転送部１１などを経由して送信されても良い。また、主ストレージ部１２は、複数のデータ転送部１１から複数の書き込み要求を受信した場合は、書き込み要求を受信した順序でデータの保存、順序情報の送信を行う。
【００２８】
また、主ストレージ部１２は、上位装置２から読み出し要求があった場合は、保存していたデータをデータ転送部１１を介して上位装置２に送信する。
【００２９】
主ストレージ部１２は、複数設けることが可能である。ただし、その場合、複数の主ストレージ部１２の各々には重複しないようにアドレス空間を割り当て、特定のアドレスに対してデータを保存する主ストレージ部１２は１つだけになるようにする。
【００３０】
一時記憶部１４は、副ストレージ部１３の前段に配置されている。一時記憶部１４は、データ転送部１１から送信されてきた書き込み要求およびデータを一時的に保持し、主ストレージ部１２から送信されてきた順序情報に基づいて副ストレージ部１３にデータを転送する順序を決定し、決定した順序で副ストレージ５３に書き込み要求およびデータを転送する。
【００３１】
副ストレージ部１３は、一時記憶部１４から書き込み要求を受信した順序で、一時記憶部１４から受信したデータ、すなわち主ストレージ部１２に保存されるデータの複製を保存する。副ストレージ部１３は、複数設けることが可能である。
【００３２】
なお、主ストレージ部１２と副ストレージ部１３との関係については、例えば、１つの主ストレージ部１２に対して１つの副ストレージ部１３を設けること（後述の実施例１〜３参照）、１つの主ストレージ部１２に対して複数の副ストレージ部１３を設けること（後述の実施例４，５参照）、１つの副ストレージ部１３に対して複数の主ストレージ部１２を設けること（後述の実施例６参照）などが可能であるが、詳細は後述する。
【００３３】
通信網１５は、上述したように、データ転送部１１、主ストレージ部１２、および一時記憶部１４を相互に接続する通信網である。通信網１５は、バス、イーサネット、インターネット網など、データ記憶システム１に適した任意の通信網とすれば良い。
【００３４】
なお、データ転送部１１、主ストレージ部１２、副ストレージ部１３、および一時記憶部１４は、それぞれ独立した装置に設けても良い。この場合、データ転送部１１、主ストレージ部１２、副ストレージ部１３、および一時記憶部１４は、イーサネット、インターネット網などの通信網１５を介して互いに接続することもでき、または、イーサネット、インターネット網などの２以上の異なる通信網１５のいずれかに接続し、これら通信網をルータなどの中継器で相互に接続することもできる。また、データ転送部１１、主ストレージ部１２、副ストレージ部１３、および一時記憶部１４は、コンピュータなどの同一の装置に設けても良い。この場合、データ転送部１１、主ストレージ部１２、副ストレージ部１３、および一時記憶部１４は、バスなどの通信網１５を介して互いに接続することができる。
【００３５】
以下に、図１に示したデータ記憶システム１において、上位装置２から書き込み要求があった場合の動作について説明する。
【００３６】
データ転送部１１は、上位装置２から書き込み要求およびデータを受信すると、受信した書き込み要求およびデータを、該当するアドレスを担当する主ストレージ部１２と、該当するアドレスを担当する副ストレージ部１３の前段に配置された全ての一時記憶部１４とに転送する。
【００３７】
主ストレージ部１２は、データ転送部１１からの書き込み要求に従ってデータを保存するとともに、データの保存を実行する順序を表す順序情報を、該当するアドレスを担当する副ストレージ部１３の前段に配置された全ての一時記憶部１４に送信する。
【００３８】
一時記憶部１４は、データ転送部１１から書き込み要求およびデータを受信すると、受信した順序で書き込み要求およびデータを一時的に保存しておく。そして、一時記憶部１４は、主ストレージ部１２から送信された順序情報に基づいて副ストレージ部１３にデータを転送する順序を決定し、決定した順序で書き込み要求およびデータを副ストレージ部１３に転送する。
【００３９】
副ストレージ部１３は、一時記憶部１４から書き込み要求を受信した順序で、一時記憶部１４から受信したデータを保存する。
【００４０】
上述したように本実施形態においては、主ストレージ部１２は、データの保存を実行する順序を表す順序情報を一時記憶部１４に送信し、一時記憶部１４は、順序情報に基づいて副ストレージ部１３にデータを送信する順序を決定する。そのため、複数の上位装置２からの複数の書き込み要求が主ストレージ部１２と一時記憶部１４とに異なる順序で到着した場合も、主ストレージ部１２への保存順序と副ストレージ部１３への保存順序とが一致することになる。すなわち、主ストレージ部１２と副ストレージ部１３との間でデータの一貫性が保証される。
【００４１】
また、本実施形態においては、データ転送部１１と主ストレージ部１２との間の通信と、データ転送部１１と一時記憶部１４との間の通信は並行して行われるのに加え、主ストレージ部１２と一時記憶部１４との間の順序情報を送信するための通信は、データ転送部１１と主ストレージ部１２および一時記憶部１４との間のデータ転送や応答のための通信と並行して行う事が可能である。よって、複製データを作成するための通信回数の増加による応答時間の増加が無い。
【００４２】
さらには、複製データの数を増やした場合にも、データ転送部１１と全ての一時記憶部１４との間の通信と、主ストレージ部１２と全ての一時記憶部１４との間の通信とは並行して行われるため、通信回数の増加による応答時間の増加が無い。
【実施例】
【００４３】
次に、本発明の具体的な実施例について説明する。
（実施例１）
図２を参照すると、本実施例によるデータ記憶システム１は、その基本構成自体は図１と同様である。ただし、本実施例では、１つの主ストレージ部１２に対して、主ストレージ部１２と同じアドレス空間が割り当てられている副ストレージ部１３を１つ設けた構成となっており、１つの主ストレージ部１２が保存するデータの複製を１つの副ストレージ部１３が保存する。
【００４４】
なお、図２において、データ転送部１１ａ，１１ｂおよび上位装置２ａ，２ｂはそれぞれ２つずつ設けられているが、特に数は制限されない。
【００４５】
主ストレージ部１２は、処理部１２１と記憶部１２２とから構成されている。
【００４６】
副ストレージ部１３は、処理部１３１と記憶部１３２とから構成されている。
【００４７】
一時記憶部１４は、処理部１４１と記憶部１４２とから構成されている。
【００４８】
主ストレージ部１２の記憶部１２２と副ストレージ部１３の記憶部１３２は、ハードディスク群であってもＲＡＩＤ構成から成るディスクアレイであっても良く、または、半導体メモリとハードディスクの階層構造からなる装置であっても良い。また、一時記憶部１４の記憶部１４２は、ＤＲＡＭ等の半導体メモリであってもハードディスク等であっても良いが、高速で不揮発性であることが望ましい。
【００４９】
ここで、本実施例によるデータ記憶システム１において、上位装置２ａがデータ転送部１１ａに書き込み要求をした時の動作について、図３のシーケンス図を用いて説明する。
【００５０】
図３を参照すると、まず、上位装置２ａは、データ転送部１１ａに対し書き込み要求（以下、ライトコマンドと表記）を送信する（ステップ３０１）。ライトコマンドには、書き込み開始アドレス（以下、開始アドレスと表記）および書き込みデータ長（以下、データ長と表記）の情報が含まれる。
【００５１】
データ転送部１１ａは、上位装置２ａから受信したライトコマンドにライトコマンドを一意に判別できるコマンド識別子を付加して、そのライトコマンドを主ストレージ部１２と一時記憶部１４とに転送する（ステップ３０２，３０３）。
【００５２】
主ストレージ部１２の処理部１２１は、データ転送部１１ａからのライトコマンドを受信すると、記憶部１２２にライトコマンドのデータ長に応じた書き込み領域を確保した後に、データ転送部１１ａにデータ要求を送信する（ステップ３０４）。
【００５３】
また、主ストレージ部１２の処理部１２１は、データ転送部１１ａからのライトコマンドに対し、ライトコマンドを受信した順序に応じた実行順序を付加し、その実行順序とコマンド識別子とを順序情報として一時記憶部１４に送信する（ステップ３０５）。
【００５４】
一時記憶部１４の処理部１４１は、データ転送部１１ａからのライトコマンドを受信すると、ライトコマンドに含まれる情報を記憶部１４２に保存し、さらに、ライトコマンドに含まれるデータ長に応じた書き込み領域を記憶部１４２に確保した後に、データ転送部１１ａにデータ要求を送信する（ステップ３０６）。また、処理部１４１は、主ストレージ部１２から順序情報を受信すると、記憶部１４２に保存されているライトコマンドの中から順序情報のコマンド識別子と一致するコマンド識別子を持つライトコマンドを検索し、検索したライトコマンドに対応付けて実行順序を記憶部１４２に保存する。
【００５５】
データ転送部１１ａは、主ストレージ部１２と一時記憶部１４との両方からデータ要求を受信すると、そのデータ要求を上位装置２ａに送信する（ステップ３０７）。データ転送部１１ａは、上位装置２ａからデータを受信すると（ステップ３０８）、そのデータを主ストレージ部１２と一時記憶部１４とに転送する（ステップ３０９，３１０）。
【００５６】
主ストレージ部１２の処理部１２１は、データ転送部１１ａから受信したデータをあらかじめ用意した記憶部１２２の書き込み領域に書き込み、確認メッセージをデータ転送部１１ａに送信する（ステップ３１１）。
【００５７】
一時記憶部１４の処理部１４１は、データ転送部１１ａから受信したデータをあらかじめ用意した記憶部１４２の書き込み領域に書き込む。さらに、処理部１４１は、実行順序とデータとがいずれも揃った時点で、確認メッセージをデータ転送部１１ａに送信する（ステップ３１２）。
【００５８】
データ転送部１１ａは、主ストレージ部１２と一時記憶部１４との両方から確認メッセージを受信すると、上位装置２ａに確認メッセージを送信する（ステップ３１３）。
【００５９】
以降、一時記憶部１４の処理部１４１は、あらかじめ設定した条件を満たした時に、記憶部１４２から次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータを検索し、副ストレージ部１３に送信する。さらに処理部１４１は、次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータを検索して副ストレージ部１３に送信する動作を、該当するライトコマンドおよびデータが検索されなくなるまで繰り返す。
【００６０】
副ストレージ部１３の処理部１３１は、一時記憶部１４からライトコマンドを受信した順序で記憶部１３２にデータを保存する。
【００６１】
ここで、上位装置２ａがデータ転送部１１ａに書き込み要求をした時の一時記憶部１４のさらに詳しい動作について、図４のフローチャートを用いて説明する。この場合、一時記憶部１４は、上位装置２ａからの１つのライトコマンドに対して、コマンド識別子、開始アドレス、データ長、データ、および実行順序を保存することになる。
【００６２】
図４を参照すると、一時記憶部１４の処理部１４１は、待ち受け状態で（ステップＡ１）、外部からの何らかの情報を受信すると（ステップＡ２）、受信した情報の内容を解析する（ステップＡ３）。
【００６３】
例えば、ステップＡ２で受信した情報がライトコマンドであった場合（ステップＡ４）、処理部１４１は、ライトコマンドに含まれるコマンド識別子と開始アドレスとデータ長とを記憶部１４２に一時的に保存し（ステップＡ８）、データ長に応じた書き込み領域をデータ領域として記憶部１４２に確保する（ステップＡ９）。以降、処理部１４１は、データ転送部１１ａにデータ要求を送信した後（ステップＡ１０）、再度ステップＡ１に戻り、待ち受け状態となる。
【００６４】
また、ステップＡ２で受信した情報がデータであった場合（ステップＡ５）、処理部１４１は、あらかじめ記憶部１４２に確保しておいたデータ領域にデータを保存する（ステップＡ１１）。以降、再度ステップＡ１に戻り、待ち受け状態となる。
【００６５】
また、ステップＡ２で受信した情報が順序情報であった場合（ステップＡ６）、処理部１４１は、記憶部１４２に保存されているライトコマンドの中から順序情報に含まれるコマンド識別子と一致するコマンド識別子を持つライトコマンドを検索し、検索したライトコマンドに対応づけて実行順序を記憶部１４２に保存する（ステップＡ１２）。続いて、処理部１４１は、実行順序を保存した後に、あらかじめ設定しておいたデータ転送条件を満たし、副ストレージ部１４にライトコマンドおよびデータを転送するか否かを判別する（ステップＡ１３）。データ転送条件を満たす場合とは、例えば、一時記憶部１４の記憶部１４２の空き容量が一定量を下回った場合や、副ストレージ部１３に転送していないライトコマンドの数が一定数以上になった場合などがある。データ転送条件を満たした場合（ステップＡ１４）、処理部１４１は、記憶部１４２に保存されている、次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータを、副ストレージ部１３に送信する動作を、次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータが検索されなくなるまで繰り返す（ステップＡ１５）。あるいは、一時記憶部１４の処理部１４１は、あらかじめ設定しておいた値に基づいて、副ストレージ部１３に一度に転送するライトコマンド数もしくはデータ量を決定してもよい。以降、再度ステップＡ１に戻り、待ち受け状態となる。
【００６６】
なお、ステップＡ２で受信した情報がライトコマンド、データ、または順序情報のいずれでもない場合、一時記憶部１４の処理部１４１は、予め設定されたエラー処理を行う（ステップＡ７）。
【００６７】
また、一時記憶部１４の処理部１４１は、副ストレージ部１３に転送したライトコマンドおよびデータについては、記憶部１４２から消去しても良い。
【００６８】
これにより、副ストレージ部１３には、主ストレージ部１２にデータが保存されるのと同じ順序でデータが保存されるので、主ストレージ部１２と副ストレージ部１３との間のデータは一貫したものとなる。
【００６９】
ここで、主ストレージ部１２と副ストレージ部１３との間でデータ保存順序が同じになることについて、図５を用いて説明する。
【００７０】
図５の例では、データ転送部１１ａが上位装置２ａからライトコマンドａを受信したのとほぼ同時刻に、データ転送部１１ｂが上位装置２ｂからライトコマンドｂを受信した場合を考える。ライトコマンドａ，ｂの内容を図５Ａに示す。ライトコマンドａ，ｂは、いずれも開始アドレス２００ｈからデータ長４０ｈセクタのライトを要求するコマンドであるとする。なお、数値の後にｈをつけたものは１６進数を表す。
【００７１】
データ転送部１１ａは、ライトコマンドａにコマンド識別子（ここでは１−００１０とする）を付加してライトコマンドａ’を生成する。データ転送部１１ｂは、ライトコマンドｂにコマンド識別子（ここでは２−０００５とする）を付加してライトコマンドｂ’を生成する。コマンド識別子は、データ転送部１１ａ，１１ｂ間で同じものを付加しないように、データ転送部１１ａ，１１ｂ毎に異なる体系とする。データ転送部１１ａ，１１ｂでそれぞれ生成されたライトコマンドａ’，ｂ’の内容を図５Ｂに示す。
【００７２】
データ転送部１１ａはライトコマンドａ’を、データ転送部１１ｂはライトコマンドｂ’をそれぞれ主ストレージ部１２と一時記憶部１４に送信する。
【００７３】
ここでは、主ストレージ部にはライトコマンドａ’がライトコマンドｂ’よりも先に到着し、一時記憶部１４にはライトコマンドｂ’がライトコマンドａ’よりも先に到着した場合を考える。
【００７４】
主ストレージ部１２の処理部１２１は、ライトコマンドａ’をライトコマンドｂ’よりも先に処理する。処理部１２１は、ライトコマンドａ’の実行順序を１とし、ライトコマンドａ’のコマンド識別子と実行順序とを順序情報ａとして一時記憶部１４に送信する。また、処理部１２１は、ライトコマンドｂ’の実行順序を２とし、コマンドｂ’のコマンド識別子と実行順序とを順序情報ｂとして一時記憶部１４に送信する。主ストレージ部１２から一時記憶部１４に送信される順序情報ａ，ｂの内容を図５Ｃに示す。
【００７５】
一時記憶部１４の処理部１４１は、まず、ライトコマンドｂ’を受信すると、ライトコマンドｂ’に含まれる情報を記憶部１４２に保存し、データ長（４０ｈセクタ）のデータを保存するデータ領域を記憶部１４２に確保する。また、処理部１４１は、ライトコマンドｂ’に対応する実行順序を保存する実行順序領域を記憶部１４２に確保する。このときの記憶部１４２の状態を図５Ｄに示す。
【００７６】
一時記憶部１４の処理部１４１は、次に、ライトコマンドａ’を受信すると、ライトコマンドａ’に含まれる情報を記憶部１４２に保存し、データ長（４０ｈセクタ）のデータを保存するデータ領域を記憶部１４２に確保する。また、処理部１４１は、ライトコマンドａ’に対応する実行順序を保存する実行順序領域を記憶部１４２に確保する。このときの記憶部１４２の状態を図５Ｅに示す。
【００７７】
一時記憶部１４の処理部１４１は、主ストレージ部１２から順序情報ａを受信すると、記憶部１４２に保存されたライトコマンドの中から順序情報ａに含まれるコマンド識別子と一致するライトコマンドを持つライトコマンドを検索し、検索したライトコマンドに対応付けて、順序情報ａに含まれる実行順序を、記憶部１４２のあらかじめ確保した実行順序領域に保存する。また、処理部１４１は、主ストレージ部１２から順序情報ｂを受信すると、記憶部１４２に保存されたライトコマンドの中から順序情報ｂに含まれるコマンド識別子と一致するライトコマンドを持つライトコマンドを検索し、検索したライトコマンドに対応付けて、順序情報ｂに含まれる実行順序を、記憶部１４２のあらかじめ確保した実行順序領域に保存する。このときの記憶部１４２の状態を図５Ｆに示す。
【００７８】
一時記憶部１４の処理部１４１は、ライトコマンドａ’に対応するデータａを受信すると、記憶部１４２のあらかじめ確保したデータ領域にデータａを保存し、ライトコマンドｂ’に対応するデータｂを受信すると、記憶部１４２のあらかじめ確保したデータ領域にデータｂを保存する。このときの記憶部１４２の状態を図５Ｇに示す。
【００７９】
以降、一時記憶部１４の処理部１４１は、記憶部１４２が図５Ｇの状態の時にあらかじめ設定しておいたデータ転送条件を満たした場合、実行順序の値１が対応付けられているライトコマンドａ’およびデータａを検索して副ストレージ部１３に送信する。次に、処理部１４１は、実行順序の値２が対応付けられているライトコマンドｂ’およびデータｂを検索して副ストレージ部１３に送信する。次に、処理部１４１は、実行順序の値３が対応付けられているライトコマンドおよびデータを検索するが、検索できないので、副ストレージ部１３への送信動作を終了する。なお、次にデータ転送条件を満たした場合には、実行順序が３の値から検索を開始する。
【００８０】
なお、一時記憶部１４には、データ転送部１１ａからのライトコマンドａ’よりも主ストレージ部１２からの順序情報ａが先に到着する可能性もある。この場合、一時記憶部１４の処理部１４１は、順序情報ａを一時的に保存しておき、ライトコマンドａ’が到着した時点で、ライトコマンドａ’に対応付けて実行順序を保存しても良い。
【００８１】
また、一時記憶部１４には、主ストレージ部１２からの順序情報ｂよりもデータ転送装置１１ｂからのデータｂが先に到着する可能性もある。この場合、一時記憶部１４の処理部１４１は、先にデータｂを保存しておく。
【００８２】
本実施例においては、副ストレージ部１３へのデータ保存は、一時記憶部１４に保存された実行順序に基づいて行われることになるため、データａはデータｂよりも先に保存される。このため、主ストレージ部１２においても副ストレージ部１３においても、データａはデータｂよりも先に保存されることになる。すなわち、主ストレージ部１２と副ストレージ部１３との間ではデータの一貫性が保たれる。
【００８３】
なお、上位装置２ａ，２ｂからデータ転送部１１ａ，１１ｂに読み出し要求が送信された場合は、主ストレージ部１２が、保存されたデータを読み出してデータ転送部１１ａ，１１ｂを介して上位装置２ａ，２ｂに送信する。ただし、副ストレージ部１３または一時記憶部１４が、副ストレージ部１３と一時記憶部１４に保存されたデータの中から読み出し要求に含まれる読み出し開始アドレスの最新のデータを抽出してデータ転送部１１ａ，１１ｂを介して上位装置２ａ，２ｂに送信しても良い。
（実施例２）
本実施例によるデータ記憶システム１は、実施例１とは図２の構成において同じであるが、シーケンスにおいて実施例１とは異なる。
【００８４】
ここで、本実施例によるデータ記憶システム１において、上位装置２ａがデータ転送部１１ａに書き込み要求をした時の動作について、図６のシーケンス図を用いて説明する。
【００８５】
データ転送部１１ａは、上位装置２ａからライトコマンドを受信すると（ステップ６０１）、ライトコマンドのデータ長に応じた記憶領域をデータ転送部１１ａの内部に一時的に確保した後に、上位装置２ａにデータ要求を送信し（ステップ６０２）、上位装置２ａからデータを受信する（ステップ６０３）。データ転送部１１ａは、ライトコマンドにライトコマンドを一意に判別できるコマンド識別子を付加して、主ストレージ部１２と一時記憶部１４とにライトコマンドを転送する（ステップ６０４，６０５）。
【００８６】
主ストレージ１２の処理部１２１は、データ転送部１１ａからのライトコマンドを受信すると、ライトコマンドのデータ長に応じた書き込み領域を記憶部１２２に確保した後に、データ転送部１１ａにデータ要求を送信する（ステップ６０６）。
【００８７】
また、主ストレージ１２の処理部１２１は、データ転送部１１ａからのライトコマンドに対し、ライトコマンドを受信した順序に応じた実行順序を付加し、その実行順序とコマンド識別子とを順序情報として一時記憶部１４に送信する（ステップ６０７）。
【００８８】
一時記憶部１４の処理部１４１は、データ転送部１１ａからのライトコマンドを受信すると、ライトコマンドのデータ長に応じた書き込み領域を記憶部１４２に確保した後に、データ転送部１１ａにデータ要求を送信する（ステップ６０８）。また、一時記憶部１４の処理部１４１は、主ストレージ部１２から順序情報を受信すると、順序情報のコマンド識別子と一致するコマンド識別子を持つライトコマンドに対応付けて、順序情報の実行順序を記憶部１４２に保存する。
【００８９】
データ転送部１１ａは、主ストレージ部１２と一時記憶部１４との両方から、データ要求を受信すると、主ストレージ部１２と一時記憶部１４とにデータを転送する（ステップ６０９，６１０）。
【００９０】
主ストレージ１２の処理部１２１は、データ転送部１１ａから受信したデータをあらかじめ確保しておいた記憶部１２２の書き込み領域に書き込み、確認メッセージをデータ転送部１１ａに送信する（ステップ６１１）。
【００９１】
一時記憶部１４の処理部１４１は、データ転送部１１ａから受信したデータをあらかじめ確保しておいた記憶部１４２の書き込み領域に書き込む。処理部１４１は、実行順序とデータとがいずれも揃った時点で確認メッセージをデータ転送部１１ａに送信する（ステップ６１２）。
【００９２】
データ転送部１１ａは、主ストレージ部１２と一時記憶部１４の両方から確認メッセージを受信すると、上位装置２ａに確認メッセージを送信する（ステップ６１３）。
【００９３】
一時記憶部１４の処理部１４１は、あらかじめ設定した条件を満たした時に、記憶部１４２から次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータを検索して副ストレージ部１３に送信する動作を、次に転送を実行する実行順序が対応付けられているライトコマンドおよびデータが検索されなくなるまで繰り返す。
【００９４】
副ストレージ部１３の処理部１３１は、一時記憶部１４からライトコマンドを受信した順序で記憶部１３２にデータを保存する。
【００９５】
本実施例においては、データ転送部１１ａは主ストレージ部１２と一時記憶部１４にライトコマンドを送信する前に上位装置２ａからデータを受信するため、主ストレージ部１２と一時記憶部１４からデータ要求を受けた直後に主ストレージ部１２と一時記憶部１４にデータを送信する事ができる。このため、主ストレージ部１２と一時記憶部１４は１つのコマンドに対してライトコマンドを受信してから確認メッセージを送信するまでに要する時間を短縮でき、リソースを有効に使用できるという効果がある。
（実施例３）
本実施例によるデータ記憶システム１は、実施例１とは図２の構成および図３のシーケンスにおいて同じであるが、順序情報のデータ構造および一時記憶部１４の動作において実施例１とは異なる。
【００９６】
本実施例においては、通信網１５には、任意の１ノードと別の任意の１ノードとの間の通信においては順序性が保証されるプロトコルを用いる。すなわち、主ストレージ部１２が一時記憶部１４に送信する順序情報は、主ストレージ部１２が発信した順序で一時記憶部１４が受信することが保証される。
【００９７】
本実施例においては、主ストレージ部１２は、主ストレージ部１２におけるライトコマンドの実行順序を決定すると、コマンド識別子のみを順序情報として一時記憶部１４へ送信する。一時記憶部１４は、主ストレージ部１２から順序情報を受信した順序に基づき副ストレージ部１３へデータを転送する順序を決定する。
【００９８】
ここで、一時記憶部１４のデータ構造について、図７を用いて説明する。
【００９９】
一時記憶部１４の処理部１４１は、１つのライトコマンドに対し、コマンド識別子と開始アドレスとデータ長とデータとをデータセットとして記憶部１４２上で管理する。データセットの構造を図７Ａに示す。
【０１００】
一時記憶部１４の処理部１４１は、記憶部１４２上で、データ転送部１１ａ，１１ｂからライトコマンドを受信した順序で、そのライトコマンドに対するデータセットを一時的に順序未決定リンクのデータセットの最後尾に接続する。データセットが順序未決定リンクに接続された状態を図７Ｂに示す。なお、図７Ｂにおいて、順序未決定headはリンク先のデータセットが順序未決定リンクのデータセットの先頭であることを表し、順序未決定tailはリンク元のデータセットが順序未決定リンクのデータセットの最後尾である事を表す。
【０１０１】
一時記憶部１４の処理部１４１は、記憶部１４２上で、主ストレージ部１２から順序情報を受信した順序で、その順序情報を順序情報キューに蓄積する。順序情報が順序情報キューに蓄積された状態を図７Ｃに示す。順序情報キューはいわゆるＦＩＦＯ（ＦｉｒｓｔＩｎＦｉｒｓｔＯｕｔ）構造であり、先に挿入された情報が先に取り出されるようになっている。
【０１０２】
一時記憶部１４の処理部１４１は、記憶部１４２上で、順序情報キューから最初に取り出される順序情報のコマンド識別子に一致するデータセットを、順序未決定リンクに接続されたデータセットの中から検索し、検索したデータセットを順序未決定リンクから切り離して順序決定済みリンクのデータセットの最後尾に接続する。データセットが順序決定済みリンクに接続された状態を図７Ｄに示す。なお、図７Ｄにおいて、順序決定済みheadはリンク先のデータセットが順序決定済みリンクのデータセットの先頭であることを表し、順序決定済みtailはリンク元のデータセットが順序決定済みリンクのデータセットの最後尾である事を表す。
【０１０３】
以上の動作によって、順序決定済みリンクには、主ストレージ１２で書き込みが実行されるライトコマンドと同じ順序で、データセットが接続される。
【０１０４】
以降、一時記憶部１４の処理部１４１は、あらかじめ設定しておいたデータ転送条件を満たした時に、記憶部１４２の順序決定済みリンクの先頭にあるデータセットからライトコマンドおよびデータを抽出し、副ストレージ部１３に送信し、ライトコマンドおよびデータの送信が終了したデータセットは順序決定済みリンクから切り離す。さらに処理部１４１は、順序決定済みリンクに接続されたデータセットが無くなるまで、順序決定済みリンクの先頭にあるデータセットからライトコマンドおよびデータを抽出して副ストレージ部１３に送信し、送信が終了したデータセットを順序決定済みリンクから切り離す動作を繰り返す。
【０１０５】
このように、順序決定済みリンクに接続された順序で副ストレージ部１３へのライトコマンドおよびデータの転送を行うため、副ストレージ部１３でデータを保存する順序は主ストレージ部１２でデータを保存する順序と同じになる。
【０１０６】
ここで、一時記憶部の動作、および主ストレージ部１２と副ストレージ部１３との間でのデータ保存順序が同じになることについて、図８を用いて説明する。
【０１０７】
図８の例では、データ転送部１１ａが上位装置２ａからライトコマンドａを受信したほぼ同時刻に、データ転送部１１ｂが上位装置２ｂよりライトコマンドｂを受信した場合を考える。ライトコマンドａ，ｂの内容を図８Ａに示す。ライトコマンドａ，ｂは、いずれも開始アドレス２００ｈからデータ長４０ｈセクタのライトを要求するコマンドであるとする。
【０１０８】
データ転送部１１ａは、ライトコマンドａにコマンド識別子（ここでは１−００１０とする）を付加してライトコマンドａ’を生成する。データ転送部１１ｂは、ライトコマンドｂにコマンド識別子（ここでは２−０００５とする）を付加してライトコマンドｂ’を生成する。コマンド識別子は、データ転送部１１ａ，１１ｂ間で同じものを付加しないように、データ転送部１１ａ，１１ｂ毎に異なる体系とする。データ転送部１１ａ，１１ｂでそれぞれ生成されたライトコマンドａ’，ｂ’の内容を図８Ｂに示す。
【０１０９】
データ転送部１１ａはライトコマンドａ’を、データ転送部１１ｂはライトコマンドｂ’を、主ストレージ部１２と一時記憶部１４とに送信する。
【０１１０】
ここでは、主ストレージ部１２にはライトコマンドａ’がライトコマンドｂ’よりも先に到着し、一時記憶部１４にはライトコマンドｂ’がライトコマンドａ’よりも先に到着した場合を考える。
【０１１１】
主ストレージ部１２の処理部１２１は、ライトコマンドａ’をライトコマンドｂ’よりも先に処理する。処理部１２１は、ライトコマンドａ’に含まれるコマンド識別子のみを順序情報ａとして一時記憶部１４に送信した後に、ライトコマンドｂ’に含まれるコマンド識別子のみを順序情報ｂとして一時記憶部１４に送信する。主ストレージ部１２から一時記憶部１４に送信される順序情報ａ，ｂの内容を図８Ｃに示す。
【０１１２】
一時記憶部１４の処理部１４１は、まず、ライトコマンドｂ’を受信すると、ライトコマンドｂ’に含まれる情報と、データ長（４０ｈセクタ）のデータを保存する領域をデータセットとして記憶部１４２に保存する。さらに、処理部１４１は、ライトコマンドｂ’に対するデータセットを順序未決定リンクの最後尾に接続する。このときの記憶部１４２の状態を図８Ｄに示す。
【０１１３】
一時記憶部１４の処理部１４１は、次に、ライトコマンドａ’を受信すると、ライトコマンドａ’に含まれる情報と、データ長（４０ｈセクタ）のデータを保存する領域をデータセットとして記憶部１４２に保存する。さらに、処理部１４１は、ライトコマンドａ’に対するデータセットを順序未決定リンクの最後尾に接続する。このときの記憶部１４２の状態を図８Ｅに示す。
【０１１４】
一時記憶部１４には、主ストレージ部１２からの順序情報が、順序情報ａ、順序情報ｂの順序で受信される。そのため、一時記憶部１４の処理部１４１は、順序情報キューに、順序情報ａ、順序情報ｂの順序で順序情報を挿入する。この場合、最初に順序情報キューから取り出されるのは順序情報ａである。そのため、処理部１４１は、順序未決定リンクに接続されているデータセットの中から、順序情報ａに含まれるコマンド識別子と一致するコマンド識別子を持つデータセットを検索し、検索したデータセットを順序未決定リンクから切り離し、順序決定済みリンクの最後尾に接続する。このときの記憶部１４２の状態を図８Ｆに示す。また、次に順序情報キューから取り出されるのは順序情報ｂである。そのため、処理部１４１は、順序未決定リンクに接続されているデータセットの中から、順序情報ｂに含まれるコマンド識別子と一致するコマンド識別子を持つデータセットを検索し、検索したデータセットを順序未決定リンクから切り離し、順序決定済みリンクの最後尾に接続する。このときの記憶部１４２の状態を図８Ｇに示す。
【０１１５】
一時記憶部１４の処理部１４１は、ライトコマンドａ’に対応するデータａを受信すると、記憶部１４２のあらかじめ確保したデータ領域にデータａを保存し、ライトコマンドｂ’に対応するデータｂを受信すると、記憶部１４２のあらかじめ確保したデータ領域にデータｂを保存する。このときの記憶部１４２の状態を図８Ｈに示す。
【０１１６】
以降、一時記憶部１４の処理部１４１は、記憶部１４２が図８Ｈの状態の時にあらかじめ設定しておいたデータ転送条件を満たした場合、記憶部１４２の順序決定済みリンクの先頭にあるデータセットからライトコマンドａ’およびデータａを抽出して副ストレージ部１３に送信し、ライトコマンドａ’およびデータａを持つデータセットを順序決定済みリンクから切り離す。次に、処理部１４１は、順序決定済みリンクの先頭にあるデータセットからライトコマンドｂ’およびデータｂを抽出して副ストレージ部１３に送信し、ライトコマンドｂ’およびデータｂを持つデータセットを順序決定済みリンクから切り離す。この時点で、順序決定済みリンクにはデータセットが接続されていない状態となるので、処理部１４１は副ストレージ部１３への送信動作を終了する。
【０１１７】
なお、一時記憶部１４には、データ転送部１１ａからのライトコマンドａ’よりも主ストレージ部１２からの順序情報ａが先に到着する可能性もある。この場合、一時記憶部１４の処理部１４１は、順序情報キューの先頭にある順序情報に対応するライトコマンドが到着するまでは、順序決定済みリンクの最後尾にデータセットを接続する処理は行わない。
【０１１８】
また、一時記憶部１４には、主ストレージ部１２からの順序情報ｂよりもデータ転送装置１１ｂからのデータｂが先に到着する可能性もある。この場合、一時記憶部１４の処理部１４１は、順序未決定リンクに接続された状態のままでデータｂを保存しておく。
【０１１９】
本実施例においては、副ストレージ部１３へのデータ保存は、一時記憶部１４で順序決定済みリンクにデータセットが接続された順序で行われることになるため、データａはデータｂよりも先に保存される。このため、主ストレージ部１２においても副ストレージ部１３においても、データａはデータｂよりも先に保存されることになる。すなわち、主ストレージ部１２と副ストレージ部１３との間ではデータの一貫性が保たれる。
【０１２０】
また、本実施例においては、一時記憶部１４から副ストレージ部１３にコマンドおよびデータを送信する順序でデータセットが順序決定済みリンクにつながるデータ構造を持つため、一時記憶部１４の処理部１４１が副ストレージ部１３にコマンドおよびデータを送信する度に送信対象となるコマンドおよびデータを検索する必要がない。このため、一時記憶部１４から副ストレージ部１３へのコマンドおよびデータの送信処理の高速化を図ることができるという効果がある。
（実施例４）
図９を参照すると、本実施例によるデータ記憶システム１は、１つの主ストレージ部１２に対して、それぞれに主ストレージ部１２と同じアドレス空間が割り当てられている副ストレージ部１３ａ，１３ｂを２つ設けた構成となっており、１つの主ストレージ部１２が保存するデータの複製を２つの副ストレージ部１３ａ，１３ｂが重複して保存する点で実施例１とは異なる。
【０１２１】
なお、図９においては、１つの主ストレージ部１２に対して２つの副ストレージ部１３ａ，１３ｂとこれに対応する２つの一時記憶部１４ａ，１４ｂが設けられているが、３つ以上設けても良い。この場合、全ての副ストレージ部には、いずれも主ストレージ部１２に保存されるデータの複製が保存される。
【０１２２】
ここで、本実施例の動作と実施例１の動作との異なる点について説明する。
【０１２３】
データ転送部１１ａ，１１ｂは、ライトコマンドおよびデータを主ストレージ部１２と全ての一時記憶部１４ａ，１４ｂとに送信する。また、データ転送部１１ａ，１１ｂは、主ストレージ部１２と全ての一時記憶部１４ａ，１４ｂからデータ要求を受信した後に、上位装置２ａ，２ｂにデータ要求を送信する。また、データ転送部１１ａ，１１ｂは、主ストレージ部１２と全ての一時記憶部１４ａ，１４ｂから確認メッセージを受信した後に、上位装置２ａ，２ｂに確認メッセージを送信する。また、主ストレージ部１２は、順序情報を全ての一時記憶部１４ａ，１４ｂに送信する。なお、一時記憶部１４ａ，１４ｂおよび副ストレージ部１３ａ，１３ｂの動作は実施例１と同じである。
【０１２４】
本実施例においては、１つの主ストレージ部１２と２つの副ストレージ部１３ａ，１３ｂの計３箇所のストレージ部に同一のデータが保存されるため、２箇所のストレージ部で障害があった場合でもデータが失われないという効果がある。
【０１２５】
また、本実施例においては、データ転送部１１ａ，１１ｂと全ての一時記憶部１４ａ，１４ｂとの間の通信は並行して行われるのに加え、主ストレージ部１２と全ての一時記憶部１４ａ，１４ｂとの間の通信は並行して行われる。そのため、データ転送部１１ａ，１１ｂが上位装置２ａ，２ｂからライトコマンドを受信してから、上位装置２ａ，２ｂに確認メッセージを送信するまでの時間は、一時記憶部１４ａ，１４ｂと副ストレージ部１３ａ，１３ｂとの組数に依らない。このため、上位装置２ａ，２ｂへの応答時間を長くすることなく、冗長度を増やすことができる。
（実施例５）
本実施例によるデータ記憶システム１は、実施例４とは図９の構成において同じであるが、１つの主ストレージ部１２が保存するデータの複製を２つの副ストレージ部１３ａ，１３ｂが分散して保存する点で実施例４とは異なる。
【０１２６】
なお、図９においては、１つの主ストレージ部１２に対して２つの副ストレージ部１３ａ，１３ｂとこれに対応する２つの一時記憶部１４ａ，１４ｂが設けられているが、３つ以上設けても良い。
【０１２７】
ここで、本実施例の動作と実施例４の動作との異なる点について説明する。
【０１２８】
主ストレージ部１２は、０ｈから１００００ｈまでのアドレス空間を持ち、副ストレージ部１３ａは、主ストレージ部１２の０ｈからＢＦＦＦｈまでのアドレスに保存されたデータの複製を保存し、副ストレージ部１３ｂは、主ストレージ部１２のＣ０００ｈから１００００ｈまでのアドレスに保存されたデータの複製を保存するものとする。
【０１２９】
例えば、データ転送装置１１ａが、上位装置２ａから開始アドレスＤ０００ｈでデータ長１００ｈのライトコマンドを受信した場合を考える。このライトコマンドに従ってデータを保存するのは、主ストレージ部１２および副ストレージ部１３ｂである。そのため、データ転送装置１１ａは、主ストレージ部１２と副ストレージ部１３ｂの前段にある一時記憶部１４ｂに対してのみ、ライトコマンドおよびデータを送信する処理と、データ要求および確認メッセージを受信する処理とを行えば良い。また、主ストレージ部１２は、一時記憶部１４ｂに対してのみ、順序情報を送信する処理を行えば良い。
【０１３０】
あるいは、次のようにしても良い。データ転送部１１ａは、開始アドレスとは無関係に主ストレージ部１２と全ての一時記憶部１４ａ，１４ｂとに対し、上記の処理を行い、主ストレージ部１２は、全ての一時記憶部１４ａ，１４ｂに対し、上記の処理を行う。一時記憶部１４ａ，１４ｂは、対応する副ストレージ部１３ａ，１３ｂのアドレスとは無関係の通信については無視する。データ転送部１１ａは、無関係の一時記憶部１４ａ，１４ｂからのデータ要求および確認メッセージの待ち受けは行わない。
【０１３１】
本実施例においては、主ストレージ部１２の複製データを複数の副ストレージ部１３ａ，１３ｂに分散して保存する事ができる。このため、主ストレージ部１２の使用状況に応じて一時記憶部１４ａ，１４ｂと副ストレージ部１３ａ，１３ｂの数を変更できるという効果がある。すなわち、主ストレージ部の使用容量が小さな場合は一時記憶部１４ａと副ストレージ部１３ａのみを接続しておき、主ストレージ部の使用容量が増えた時点で一時記憶部１４ｂと副ストレージ部１３ｂを新たに接続する事が可能である。
（実施例６）
図１０を参照すると、本実施例によるデータ記憶システム１は、１つの副ストレージ部１３に対して、副ストレージ部１３のアドレス空間の一部が互いに重複しないように割り当てられている主ストレージ部１２ａ，１２ｂを２つ設けた構成となっており、２つの主ストレージ部１２ａ，１２ｂの両方が保存するデータの複製を１つの副ストレージ部１３が保存する点で実施例１とは異なる。
【０１３２】
なお、図１０においては、１つの副ストレージ部１３に対して２つの主ストレージ部１２ａ，１２ｂが設けられているが、３つ以上設けても良い。この場合、副ストレージ部１３には、全ての主ストレージ部に保存されるデータの複製が保存される。
【０１３３】
ここで、本実施例の動作と実施例４の動作との異なる点について説明する。
【０１３４】
主ストレージ部１２ａは、０ｈからＢＦＦＦｈまでのアドレス空間を持ち、主ストレージ部１２ｂは、Ｃ０００ｈから１００００ｈまでのアドレス空間を持ち、副ストレージ部１３は、主ストレージ部１２ａ，１２ｂの０ｈから１００００ｈまでのアドレスに保存されるデータの複製を保存するものとする。
【０１３５】
例えば、データ転送装置１１ａが、上位装置２ａから開始アドレスＤ０００ｈでデータ長１００ｈのライトコマンドを受信した場合を考える。このライトコマンドに従ってデータを保存するのは、主ストレージ部１２ｂおよび副ストレージ部１３である。そのため、データ転送装置１１ａは、主ストレージ部１２ｂと副ストレージ部１３の前段にある一時記憶部１４とに対してのみ、ライトコマンドおよびデータを送信する処理と、データ要求および確認メッセージを受信する処理とを行えば良い。また、主ストレージ部１２ｂのみが、一時記憶部１４に対し、順序情報を送信する処理を行えば良い。
【０１３６】
あるいは、次のようにしても良い。データ転送部１１ａは、開始アドレスとは無関係に全ての主ストレージ部１２ａ，１２ｂと一時記憶部１４とに対し、上記の処理を行う。主ストレージ部１２ａ，１２ｂは、自身のアドレスとは無関係の通信については無視する。データ転送部１１ａは、無関係の主ストレージ部１２ａ，１２ｂからのデータ要求および確認メッセージの待ち受けは行わない。
【０１３７】
また、一時記憶部１４は、主ストレージ部１２ａ，１２ｂの両方から順序情報を受信するが、順序情報を受信した順序に従って再度新しい体系で順序をつけ直して良い。もしくは、一時記憶部１４は、主ストレージ部１２ａ，１２ｂの各々から受信した順序情報を別々の体系で扱っても良い。
【０１３８】
本実施例においては、複数の主ストレージ部１２ａ，１２ｂのデータの複製を１つの副ストレージ部１３に集約して保存できるため、複数の主ストレージ部１２ａ，１２ｂの複製を作成するために必要な一時記憶部１４と副ストレージ部１３の数が主ストレージ部１２ａ，１２ｂの数よりも少なくて良いという効果がある。
【０１３９】
なお、本発明においては、データ記憶システム１を１台のコンピュータで実現する場合、データ記憶システム１の内部に、上記で説明した処理を実行するためのプログラムを記録した記録媒体を設けてもよい。この記録媒体は磁気ディスク、半導体メモリまたはその他の記録媒体であってもよい。このプログラムは、記録媒体からデータ記憶システム１に読み込まれ、データ記憶システム１の動作を制御する。具体的には、データ記憶システム１の不図示のＣＰＵ（Central Processing Unit）がプログラムの制御によりデータ記憶システム１内のハードウェア資源に特定の処理を行うよう指示することにより上記の処理が実現される。
【産業上の利用可能性】
【０１４０】
本発明のデータ記憶システムは、計算機システムに外付けする信頼の高いデータ記憶システムとして適用することができる。
【０１４１】
また、本発明のデータ記憶システムは、災害対策のための遠隔ミラーリングシステムに適用することもできる。
【図面の簡単な説明】
【０１４２】
【図１】本発明のデータ記憶システムの構成を示すブロック図である。
【図２】本発明の実施例１〜３によるデータ記憶システムの構成を示すブロック図である。
【図３】本発明の実施例１によるデータ記憶システムの動作を説明するシーケンス図である。
【図４】本発明の実施例１に係る一時記憶部の動作を説明するフローチャートである。
【図５Ａ】本発明の実施例１に係る上位装置が送信したライトコマンドを示す図である。
【図５Ｂ】本発明の実施例１に係るデータ転送部が生成したライトコマンドを示す図である。
【図５Ｃ】本発明の実施例１に係る主ストレージ部が送信した順序情報を示す図である。
【図５Ｄ】本発明の実施例１に係る一時記憶部の状態を示す図である。
【図５Ｅ】本発明の実施例１に係る一時記憶部の状態を示す図である。
【図５Ｆ】本発明の実施例１に係る一時記憶部の状態を示す図である。
【図５Ｇ】本発明の実施例１に係る一時記憶部の状態を示す図である。
【図６】本発明の実施例２によるデータ記憶システムの動作を説明するシーケンス図である。
【図７Ａ】本発明の実施例３に係る一時記憶部が管理するデータセットの構造を示す図である。
【図７Ｂ】本発明の実施例３に係る一時記憶部がデータセットを接続する順序未決定リンクを示す図である。
【図７Ｃ】本発明の実施例３に係る一時記憶部が順序情報を蓄積する順序情報キューを示す図である。
【図７Ｄ】本発明の実施例３に係る一時記憶部がデータセットを接続する順序決定済みリンクを示す図である。
【図８Ａ】本発明の実施例３に係る上位装置が送信したライトコマンドを示す図である。
【図８Ｂ】本発明の実施例３に係るデータ転送部が生成したライトコマンドを示す図である。
【図８Ｃ】本発明の実施例３に係る主ストレージ部が送信した順序情報を示す図である。
【図８Ｄ】本発明の実施例３に係る一時記憶部の状態を示す図である。
【図８Ｅ】本発明の実施例３に係る一時記憶部の状態を示す図である。
【図８Ｆ】本発明の実施例３に係る一時記憶部の状態を示す図である。
【図８Ｇ】本発明の実施例３に係る一時記憶部の状態を示す図である。
【図８Ｈ】本発明の実施例３に係る一時記憶部の状態を示す図である。
【図９】本発明の実施例４，５によるデータ記憶システムの構成を示すブロック図である。
【図１０】本発明の実施例６によるデータ記憶システムの構成を示すブロック図である。
【図１１】従来のデータ記憶システムの一構成例を示すブロック図である。
【図１２】従来のデータ記憶システムの他の構成例を示すブロック図である。
【符号の説明】
【０１４３】
１    データ記憶システム
２，２ａ，２ｂ    上位装置
１１，１１ａ，１１ｂ    データ転送部
１２，１２ａ，１２ｂ    主ストレージ部
１３，１３ａ，１３ｂ    副ストレージ部
１４，１４ａ，１４ｂ    一時記憶部
１５    通信網
１２１    主ストレージ部の処理部
１２２    主ストレージ部の記憶部
１３１    副ストレージ部の処理部
１３２    副ストレージ部の記憶部
１４１    一時記憶部の処理部
１４２    一時記憶部の記憶部
【図１】
2007219809.tif 000003
【図２】
2007219809.tif 000004
【図３】
2007219809.tif 000005
【図４】
2007219809.tif 000006
【図５Ａ】
2007219809.tif 000007
【図５Ｂ】
2007219809.tif 000008
【図５Ｃ】
2007219809.tif 000009
【図５Ｄ】
2007219809.tif 000010
【図５Ｅ】
2007219809.tif 000011
【図５Ｆ】
2007219809.tif 000012
【図５Ｇ】
2007219809.tif 000013
【図６】
2007219809.tif 000014
【図７Ａ】
2007219809.tif 000015
【図７Ｂ】
2007219809.tif 000016
【図７Ｃ】
2007219809.tif 000017
【図７Ｄ】
2007219809.tif 000018
【図８Ａ】
2007219809.tif 000019
【図８Ｂ】
2007219809.tif 000020
【図８Ｃ】
2007219809.tif 000021
【図８Ｄ】
2007219809.tif 000022
【図８Ｅ】
2007219809.tif 000023
【図８Ｆ】
2007219809.tif 000024
【図８Ｇ】
2007219809.tif 000025
【図８Ｈ】
2007219809.tif 000026
【図９】
2007219809.tif 000027
【図１０】
2007219809.tif 000028
【図１１】
2007219809.tif 000029
【図１２】
2007219809.tif 000030