(57)【要約】【課題】ライトデータにライト時刻を付与しないホスト計算機がストレージシステムに書き込むデータに対しても、副ストレージシステムに格納されるデータの複製の整合性を保持する。【解決手段】副ストレージシステムには、受領した全てのマーカを記録する受領済みマーカ情報を備える。マスタ副ストレージシステムは、全ての副ストレージシステムから受領済みマーカ情報におけるマーカ番号を収集し、収集したマーカ番号から、全ての副ストレージシステムが受領しているマーカ番号の中で最大のマーカ番号を選び、当該マーカ番号までのデータ格納を、全ての副ストレージシステムに指示する。【選択図】図１
2008040536.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機からライトコマンドを受信する複数の正ストレージシステムと、
前記複数の正ストレージシステムを制御する第一の制御部と、
前記複数の正ストレージシステムにそれぞれ接続される複数の副ストレージシステムと、
前記複数の副ストレージシステムを制御する第二の制御部と
を備え、
前記第一の制御部は、マーカの作成順番を表すマーカ順番を含んだマーカ作成指示を前記複数の正ストレージシステムに送信し、
前記複数の正ストレージシステムの各々は、
プライマリの記憶デバイスと、
ジャーナル記憶領域と、
前記ホスト計算機からのライトコマンドに従うライト対象データを前記プライマリの記憶デバイスに書込むライト処理部と、
該ライト対象データの書き込みのジャーナルを作成して前記ジャーナル記憶領域に格納するジャーナル作成部と、
前記ジャーナル記憶領域内のジャーナルを、前記プライマリの記憶デバイスとペアを構成するセカンダリの記憶デバイスを備えた副ストレージシステムに送信するジャーナル送信部と
を備え、
前記マーカは、ライト対象データの書込みのジャーナルとは異なる種類のジャーナルであり、
前記ジャーナル作成部は、作成するジャーナルに、該ジャーナルの作成順番を表すジャーナル順番を含め、前記第一の制御部から前記マーカ作成指示を受信した場合には、該マーカ作成指示に含まれているマーカ順番を含んだマーカを作成して前記ジャーナル記憶領域に格納し、
前記複数の副ストレージシステムの各々は、
セカンダリの記憶デバイスと、
正ストレージシステムから受信したマーカに含まれているマーカ順番をマーカ順番情報に蓄積するマーカ順番蓄積部と、
前記第二の制御部からのマーカ順番要求に応答して、前記マーカ順番情報にある一以上のマーカ順番であるマーカ順番群を、前記第二の制御部に送信するマーカ順番送信部と、
前記第二の制御部からのデータ格納指示に従って、正ストレージシステムから受信したジャーナルを基に該ジャーナルに対応したライト対象データを前記セカンダリの記憶デバイスにデータ格納するデータ格納部と
を備え、
前記第二の制御部が、
前記マーカ順番情報の要求である前記マーカ順番要求を前記複数の副ストレージシステムにそれぞれ送信するマーカ順番要求部と、
前記複数の副ストレージシステからそれぞれ複数のマーカ順番群を受信し、前記複数のマーカ順番群の全てに含まれている共通のマーカ順番を選択するマーカ順番選択部と、
前記選択したマーカ順番までのデータ格納を行うことのデータ格納指示を前記複数の副ストレージシステムに送信するデータ格納指示部と
を有する、
リモートコピーシステム。
【請求項２】
前記マーカ順番選択部は、前記共通のマーカ順番が複数個存在する場合、複数の共通のマーカ順番のうち最大のマーカ順番を選択する、
請求項１記載のリモートコピーシステム。
【請求項３】
前記第一の制御部は、前記複数の正ストレージシステムにライト停止要求を送信し、該ライト停止要求に対するライト停止完了を前記複数の正ストレージシステムから受信した場合に、前記マーカ作成指示を前記複数の正ストレージシステムに送信し、
前記複数の正ストレージシステムの各々において、前記ライト処理部は、前記ライト停止要求を受信した場合、ライト停止状態となって、ライト停止完了を前記第一の制御部に送信し、ライト停止状態の間、ライトコマンドを受信しても、ライト完了を前記ホスト計算機に返さない、
請求項１記載のリモートコピーシステム。
【請求項４】
前記第一の制御部は、正ストレージシステムからマーカ作成完了を受信した場合に、該正ストレージシステムに、ライト停止解除要求を送信し、
前記複数の正ストレージシステムの各々において、前記ジャーナル作成部は、前記マーカ作成指示に応答してマーカを作成した場合に、マーカ作成完了を前記第一の制御部に送信し、前記ライト処理部は、前記第一の制御部からライト停止解除要求を受信した場合に、前記ライト停止状態を解除する、
請求項３記載のリモートコピーシステム。
【請求項５】
前記ライト処理部は、前記ライト停止状態になってから一定時間経った場合には、前記ライト停止解除要求を受けなくても該ライト停止状態を解除する、
請求項４記載のリモートコピーシステム。
【請求項６】
前記マーカ順番送信部は、前記送信するマーカ順番群に含める一以上のマーカ順番を、ライト対象データについてのジャーナル番号が連続している点までのマーカのマーカ順番に制御する、
請求項１記載のリモートコピーシステム。
【請求項７】
前記第一の制御部が、前記複数の正ストレージシステムのうちの一つの正ストレージシステムに存在し、該第一の制御部が存在する正ストレージシステムが、他の正ストレージシステムに対してマスタの正ストレージシステムとして動作する、
請求項１記載のリモートコピーシステム。
【請求項８】
前記第二の制御部が、前記複数の副ストレージシステムのうちの一つの副ストレージシステムに存在し、該第二の制御部が存在する副ストレージシステムが、他の副ストレージシステムに対してマスタの副ストレージシステムとして動作する、
請求項１記載のリモートコピーシステム。
【請求項９】
前記第一の制御部が、前記複数の正ストレージシステムのうちの一つの正ストレージシステムに存在し、該第一の制御部が存在する正ストレージシステムが、他の正ストレージシステムに対してマスタの正ストレージシステムとして動作し、
前記第二の制御部が、前記複数の副ストレージシステムのうちの一つの副ストレージシステムに存在し、該第二の制御部が存在する副ストレージシステムが、他の副ストレージシステムに対してマスタの副ストレージシステムとして動作し、
前記マーカ順番選択部は、前記共通のマーカ順番が複数個存在する場合、複数の共通のマーカ順番のうち最大のマーカ順番を選択し、
前記マスタの正ストレージシステムは、前記他の正ストレージシステムにライト停止要求を送信し、該ライト停止要求に対するライト停止完了を該他の正ストレージシステムから受信した場合に、前記マーカ作成指示を該他の正ストレージシステムに送信し、該他の正ストレージシステムからマーカ作成完了を受信した場合には、該他の正ストレージシステムに、ライト停止解除要求を送信し、
前記他の正ストレージシステムにおいて、前記ライト処理部は、前記ライト停止要求を受信した場合、ライト停止状態となって、ライト停止完了を前記第一の制御部に送信し、ライト停止状態の間、ライトコマンドを受信しても、ライト完了を前記ホスト計算機に返さず、前記ジャーナル作成部は、前記マーカ作成指示に応答してマーカを作成した場合に、マーカ作成完了を前記第一の制御部に送信し、前記ライト処理部は、前記第一の制御部からライト停止解除要求を受信した場合に、前記ライト停止状態を解除し、前記ライト停止状態になってから一定時間経った場合には、前記ライト停止解除要求を受けなくても該ライト停止状態を解除する、
請求項１記載のリモートコピーシステム。
【請求項１０】
ホスト計算機からライトコマンドを受信する複数の正ストレージシステムと、前記複数の正ストレージシステムを制御する第一の制御部と、前記複数の正ストレージシステムにそれぞれ接続される複数の副ストレージシステムと、前記複数の副ストレージシステムを制御する第二の制御部とを備えたリモートコピーシステムで実現するリモートコピー方法であり、
前記第一の制御部が、マーカの作成順番を表すマーカ順番を含んだマーカ作成指示を前記複数の正ストレージシステムに送信し、
前記複数の正ストレージシステムの各々が、ホスト計算機からライトコマンドを受信した場合、該ライトコマンドに従うライト対象データを前記プライマリの記憶デバイスに書込み、該ライト対象データの書き込みの、ジャーナルの作成順番を表すジャーナル順番を含んだジャーナルを作成し、該作成したジャーナルをジャーナル記憶領域に格納し、一方、前記第一の制御部から前記マーカ作成指示を受信した場合、該マーカ作成指示に含まれているマーカ順番を含んだジャーナルであるマーカを作成して前記ジャーナル記憶領域に格納し、
前記複数の正ストレージシステムの各々が、前記ジャーナル記憶領域内のジャーナルを、前記プライマリの記憶デバイスとペアを構成するセカンダリの記憶デバイスを備えた副ストレージシステムに送信し、
前記複数の副ストレージシステムの各々は、正ストレージシステムから受信したマーカに含まれているマーカ順番をマーカ順番情報に蓄積し、
前記第二の制御部が、前記マーカ順番情報の要求である前記マーカ順番要求を前記複数の副ストレージシステムにそれぞれ送信し、
前記複数の副ストレージシステムの各々は、前記第二の制御部からのマーカ順番要求に応答して、前記マーカ順番情報にある一以上のマーカ順番であるマーカ順番群を、前記第二の制御部に送信し、
前記第二の制御部が、前記複数の副ストレージシステからそれぞれ複数のマーカ順番群を受信し、前記複数のマーカ順番群の全てに含まれている共通のマーカ順番を選択し、前記選択したマーカ順番までのデータ格納を行うことのデータ格納指示を前記複数の副ストレージシステムに送信し、
前記複数の副ストレージシステムの各々が、前記第二の制御部からのデータ格納指示に従って、正ストレージシステムから受信したジャーナルを基に該ジャーナルに対応したライト対象データを前記セカンダリの記憶デバイスにデータ格納する、
リモートコピー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶媒体を備えたストレージシステムに関する。
【背景技術】
【０００２】
特許文献１には、計算機が使用するデータをストレージシステムが格納し、遠隔地に設置された別のストレージシステムにこのデータのコピーを、データのライト順を反映しつつ格納する技術が開示されている。特許文献１に示された処理では、正側のホスト計算機からライトデータを受領した正側のストレージシステムは、ライトデータ受領後直ちに、ライトデータの受領完了を、正側のホスト計算機に報告する。このあと正側のホスト計算機はライトデータのコピーを、正側のストレージシステムから読み出す。このライトデータには、ライトデータについてのライト要求が発行された時刻であるライト時刻が付与されていて、ライトデータが正側のホスト計算機に読み出される際には、ライト時刻も正側のホスト計算機に渡される。さらに正側のホスト計算機はライトデータとライト時刻を副側のホスト計算機に転送する。ライトデータとライト時刻を受け取った副側のホスト計算機は、ライト時刻などの情報を副側のストレージシステムにある制御用のボリュームに書き込み、さらに各ライトデータに付与されたライト時刻を参照してライト時刻順にライトデータを副側のストレージシステムに書き込む。ライト時刻順にライトデータを副側のストレージシステムに書き込むことで、副側のストレージシステムに整合性のあるデータを保持することができる。
【０００３】
ここで、もしライト順を無視してライトデータを副側のストレージシステムに反映（副側のストレージシステムにライトデータを格納することを、以下、データを反映する、とも表現する。）していくと、例えば銀行口座のデータベースにおいて口座Ａから口座Ｂに預金を移す処理において、口座Ａの減額と口座Ｂの増額を１つのトランザクションとして再現できず、例えば副側のストレージシステムにおいて、口座Ａの預金額を減額する前に口座Ｂの預金額を増額している期間が生じ得る。この場合、副側のストレージシステムにおいて口座Ａの預金額が減額される前に、正側のストレージシステムに障害が発生して使用不可能になると、副側のストレージシステムには整合性のないデータが残ることになり、そのあと副側のホスト計算機で業務を引き継いだとしても正しくない処理を行うことになる。従ってライト順を守って副側のストレージシステムにライトデータを格納することにより、整合性のあるデータを保持することができ、関連のあるデータに対する関連のある操作間の順序の正しさが保証される。
【０００４】
特許文献２には、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納されたデータを遠隔地に設置された別のストレージシステムにもコピーすることで、一方のストレージシステムが天災や火災などで使用不能になっても別のストレージシステムでデータを保持する技術が開示されている。
【０００５】
特許文献３には、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納されたデータを遠隔地に設置された別のストレージシステムにもコピーし、さらにこの別のストレージシステムが受信したデータを第三のストレージシステムにもコピーすることで、データに対するより高いレベルの冗長性を得る技術が開示されている。
【特許文献１】欧州特許出願公開第０６７２９８５号明細書
【特許文献２】米国特許第６０９２０６６号公報
【特許文献３】米国特許第６２０９００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示の技術では、ホスト計算機からのライトデータを副側のストレージシステムに反映する際に、ライトデータにホスト計算機が付与したライト時刻を用いてライト順序を守っているため、ホスト計算機がライトデータにライト時刻を付与しない場合は、副側のストレージシステムに格納しているデータの複製の整合性を保持することができない。いわゆるメインフレームのホスト計算機ではライト要求にライト時刻を付与できるが、いわゆるオープンシステムのホスト計算機ではライト要求にライト時刻を付与しない。従って、特許文献１に開示の技術ではオープンシステムのホスト計算機からのＩ／Ｏに対して、副側のストレージシステムに格納されるデータの複製の整合性を保持することができない。
【０００７】
また特許文献２および特許文献３にも、ホスト計算機にオープンシステムのホスト計算機が含まれている場合の副側のストレージシステムに格納されるデータの複製の整合性保持に関しての開示はない。
【０００８】
そこで、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納しているデータを別のストレージシステムに転送して別のストレージシステムでもデータの複製を保持する計算機システムにおいて、オープンシステムのホスト計算機のようにライトデータにライト時刻を付与しないホスト計算機がストレージシステムに書き込むデータに対しても、別のストレージシステム（即ち、副側のストレージシステム）に格納されるデータの複製の整合性を保持する技術を開示する。
【課題を解決するための手段】
【０００９】
本発明に従うリモートコピーシステムは、ホスト計算機からライトコマンドを受信する複数の正ストレージシステムと、前記複数の正ストレージシステムを制御する第一の制御部と、前記複数の正ストレージシステムにそれぞれ接続される複数の副ストレージシステムと、前記複数の副ストレージシステムを制御する第二の制御部とを備える。前記第一の制御部は、マーカの作成順番を表すマーカ順番を含んだマーカ作成指示を前記複数の正ストレージシステムに送信する。前記複数の正ストレージシステムの各々は、プライマリの記憶デバイスと、ジャーナル記憶領域と、前記ホスト計算機からのライトコマンドに従うライト対象データを前記プライマリの記憶デバイスに書込むライト処理部と、該ライト対象データの書き込みのジャーナルを作成して前記ジャーナル記憶領域に格納するジャーナル作成部と、前記ジャーナル記憶領域内のジャーナルを、前記プライマリの記憶デバイスとペアを構成するセカンダリの記憶デバイスを備えた副ストレージシステムに送信するジャーナル送信部とを備える。前記マーカは、ライト対象データの書込みのジャーナルとは異なる種類のジャーナルである。前記ジャーナル作成部は、作成するジャーナルに、該ジャーナルの作成順番を表すジャーナル順番を含め、前記第一の制御部から前記マーカ作成指示を受信した場合には、該マーカ作成指示に含まれているマーカ順番を含んだマーカを作成して前記ジャーナル記憶領域に格納する。前記複数の副ストレージシステムの各々は、セカンダリの記憶デバイスと、正ストレージシステムから受信したマーカに含まれているマーカ順番をマーカ順番情報に蓄積するマーカ順番蓄積部と、前記第二の制御部からのマーカ順番要求に応答して、前記マーカ順番情報にある一以上のマーカ順番であるマーカ順番群を、前記第二の制御部に送信するマーカ順番送信部と、前記第二の制御部からのデータ格納指示に従って、正ストレージシステムから受信したジャーナルを基に該ジャーナルに対応したライト対象データを前記セカンダリの記憶デバイスにデータ格納するデータ格納部とを備える。前記第二の制御部は、前記マーカ順番情報の要求である前記マーカ順番要求を前記複数の副ストレージシステムにそれぞれ送信するマーカ順番要求部と、前記複数の副ストレージシステからそれぞれ複数のマーカ順番群を受信し、前記複数のマーカ順番群の全てに含まれている共通のマーカ順番を選択するマーカ順番選択部と、前記選択したマーカ順番までのデータ格納を行うことのデータ格納指示を前記複数の副ストレージシステムに送信するデータ格納指示部とを有する。
【００１０】
前述した記憶デバイスは、物理的な記憶デバイスであっても良いし、論理的な記憶デバイスであっても良い。
【００１１】
また、ライト対象データのジャーナルは、ライト対象データを特定するための管理情報を含むことができる。ジャーナルには、その管理情報に加えて、ライトデータそれ自体が入っても良いし、ライトデータは入らなくても良い。
【００１２】
また、ジャーナル順番は、順序を特定できるような情報であれば種々の情報を採用可能である。例えば、番号であっても良いし、時刻を表すタイムスタンプであっても良い。また、マーカの順序はジャーナル順番から容易に求まるため、マーカ順番は、それぞれのマーカが特定できるような識別子であれば種々の情報を採用可能である。例えば、番号であっても良いし、マーカを特定するに充分な精度を持つ時刻を表すタイムスタンプであっても良いし、マーカを特定できる一意に定められた（しかし、順序を示す情報は含まなくて良い）名前であっても良い。
【００１３】
また、第一の制御部は、各正ストレージシステムに接続された第一の計算機であっても良いし、後述するように、前記複数の正ストレージシステムのうちの一つの正ストレージシステムであっても良い。同様に、第二の制御部は、各副ストレージシステムに接続された第二の計算機（前記第一の計算機でも良い）であっても良いし、後述するように、前記複数の副ストレージシステムのうちの一つの副ストレージシステムであっても良い。
【００１４】
第一の実施態様では、前記マーカ順番選択部は、前記共通のマーカ順番が複数個存在する場合、複数の共通のマーカ順番のうち最大のマーカ順番を選択する。
【００１５】
第二の実施態様では、前記第一の制御部は、前記複数の正ストレージシステムにライト停止要求を送信し、該ライト停止要求に対するライト停止完了を前記複数の正ストレージシステムから受信した場合に、前記マーカ作成指示を前記複数の正ストレージシステムに送信する。前記複数の正ストレージシステムの各々において、前記ライト処理部は、前記ライト停止要求を受信した場合、ライト停止状態となって、ライト停止完了を前記第一の制御部に送信し、ライト停止状態の間、ライトコマンドを受信しても、ライト完了を前記ホスト計算機に返さない。
【００１６】
第三の実施態様では、前記第二の実施態様において、前記第一の制御部は、正ストレージシステムからマーカ作成完了を受信した場合に、該正ストレージシステムに、ライト停止解除要求を送信する。前記複数の正ストレージシステムの各々において、前記ジャーナル作成部は、前記マーカ作成指示に応答してマーカを作成した場合に、マーカ作成完了を前記第一の制御部に送信し、前記ライト処理部は、前記第一の制御部からライト停止解除要求を受信した場合に、前記ライト停止状態を解除する。
【００１７】
第四の実施態様では、前記第三の実施態様において、前記ライト処理部は、前記ライト停止状態になってから一定時間経った場合には、前記ライト停止解除要求を受けなくても該ライト停止状態を解除する。
【００１８】
第五の実施態様では、前記マーカ順番送信部は、前記送信するマーカ順番群に含める一以上のマーカ順番を、ライト対象データについてのジャーナル番号が連続している点までのマーカのマーカ順番に制御する。
【００１９】
第六の実施態様では、前記第一の制御部が、前記複数の正ストレージシステムのうちの一つの正ストレージシステムに存在し、該第一の制御部が存在する正ストレージシステムが、他の正ストレージシステムに対してマスタの正ストレージシステムとして動作する。
【００２０】
第七の実施態様では、前記第二の制御部が、前記複数の副ストレージシステムのうちの一つの副ストレージシステムに存在し、該第二の制御部が存在する副ストレージシステムが、他の副ストレージシステムに対してマスタの副ストレージシステムとして動作する。
【００２１】
第八の実施態様では、前記第一の制御部が、前記複数の正ストレージシステムのうちの一つの正ストレージシステムに存在し、該第一の制御部が存在する正ストレージシステムが、他の正ストレージシステムに対してマスタの正ストレージシステムとして動作する。前記第二の制御部が、前記複数の副ストレージシステムのうちの一つの副ストレージシステムに存在する。該第二の制御部が存在する副ストレージシステムが、他の副ストレージシステムに対してマスタの副ストレージシステムとして動作する。前記マーカ順番選択部は、前記共通のマーカ順番が複数個存在する場合、複数の共通のマーカ順番のうち最大のマーカ順番を選択する。前記マスタの正ストレージシステムは、前記他の正ストレージシステムにライト停止要求を送信し、該ライト停止要求に対するライト停止完了を該他の正ストレージシステムから受信した場合に、前記マーカ作成指示を該他の正ストレージシステムに送信し、該他の正ストレージシステムからマーカ作成完了を受信した場合には、該他の正ストレージシステムに、ライト停止解除要求を送信する。なお、前記マーカ作成指示と前記ライト停止解除要求は、まとめて一つの指示として、前記他の正ストレージシステムに送信することもできる。前記他の正ストレージシステムにおいて、前記ライト処理部は、前記ライト停止要求を受信した場合、ライト停止状態となって、ライト停止完了を前記第一の制御部に送信し、ライト停止状態の間、ライトコマンドを受信しても、ライト完了を前記ホスト計算機に返さない。前記ジャーナル作成部は、前記マーカ作成指示に応答してマーカを作成した場合に、マーカ作成完了を前記第一の制御部に送信する。前記ライト処理部は、前記第一の制御部からライト停止解除要求を受信した場合に、前記ライト停止状態を解除し、前記ライト停止状態になってから一定時間経った場合には、前記ライト停止解除要求を受けなくても該ライト停止状態を解除する。なお、前記マーカ作成指示と前記ライト停止解除要求をまとめた一つの指示を前記ジャーナル作成部が受信した場合、マーカを作成し、ライト停止状態を解除し、マーカ作成完了を前記第一の制御部に送信することができる。
【００２２】
上述した各部は、例えば、メモリなどの記憶資源により構築することができる。また、他の各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【００２３】
本発明によれば、オープンシステムのホスト計算機のようにライトデータにライト時刻を付与しないホスト計算機が正ストレージシステムに書き込むデータに対しても、副ストレージシステムに格納されるデータの複製の整合性を保持することができる。
【発明を実施するための最良の形態】
【００２４】
本発明の一実施形態は、特開２００５−１９０４５６号公報に開示の技術（特に、その公報における実施例５に係る技術）の改良である。以下、その技術を、便宜上、「基礎技術」と言う。
【００２５】
この基礎技術は、複数の正ストレージシステムと複数の副ストレージシステムとの間でホスト計算機の介在なく非同期リモートコピーを実施するための技術である。非同期リモートコピーでは、副ストレージシステムに整合性のあるデータを格納することが課題となる。その基礎技術では、複数の正ストレージシステムから複数の副ストレージシステムヘ転送するライトデータの列に、「マーカ」と呼ばれる特殊なデータを適宜挿入することにより、副ストレージシステムがこのマーカを目印として整合性のあるデータを格納できるようにしている。
【００２６】
この基礎技術において、マーカ挿入を指示する正ストレージシステム（以下、マスタ正ストレージシステム）とその他の正ストレージシステムとの間の転送パスの一時障害などにより、一部の正ストレージシステムヘのマーカ挿入指示が一時的に停止し、そのため、マーカ作成が一時的に失敗したとする。
【００２７】
この場合、その障害が継続し、指示が停止している間は、マスタ正ストレージシステムは、正ストレージシステムからマーカ作成完了を受けない。このため、何の工夫も無いと、ホスト計算機からのライト要求を処理できなくなり、ホスト計算機での業務処理そのものが停止するおそれがある。
【００２８】
これを解消するための方法の一つとして、例えば、正ストレージシステムが、マーカを作成しなくても、一定時間後に、ライト処理を開始しても良い状態になる方法がある。しかし、この場合、マーカが挿入されないままライトデータが書かれていくことになるので、複数の正ストレージシステムと複数の副ストレージシステムとの間のデータ整合性が保てなくなる。
【００２９】
このことを防ぐためには、例えば、リモートコピーそのものを停止してしまう方法が考えられる。しかし、そうすると、複数の正ストレージシステムではデータが更新されていっているのにも関わらず、複数の副ストレージシステムでは全くデータが更新されないことになり、ディザスタリカバリの観点から、好ましい方法とはいえない。
【００３０】
そこで、本実施形態では、これらの問題点を解消することができるような、改良されたリモートコピーシステムが構築される。すなわち、本実施形態では、正ストレージシステム間の転送パスの一時的な障害におり、一部の正ストレージシステムで一時的にマーカ作成が失敗しても、整合性を保って非同期リモートコピーを継続することができる。
【００３１】
そこで、本実施形態では、以下のようなリモートコピーシステムが構築されている。そのリモートコピーシステムの概要は、以下の通りである。以下の説明では、複数の正ストレージシステムのうち、マーカ作成指示を出す正ストレージシステムを「マスタ正ストレージシステム」と言い、そうではない他の正ストレージシステムを、単に「正ストレージシステム」と呼ぶことにする。また、複数の副ストレージシステムのうち、一つを「マスタ副ストレージシステム」とし、他の副ストレージシステムを、単に「副ストレージシステム」と呼ぶことにする。
【００３２】
すなわち、それぞれの副ストレージシステムは、正ストレージシステムから受信したジャーナル群に含まれる一つまたは複数のマーカを記憶するマーカ記億部を含む。マスタ副ストレージシステムは、自身を含む全ての副ストレージシステムから、マーカ記億部に記憶されている複数のマーカ情報を収集する。そして、マスタ副ストレージシステムは、収集したマーカ情報を元に、全ての副ストレージシステムが受信しているマーカの中から最も新しいマーカを選び、そのマーカまでのデータ格納を全ての副ストレージシステムに支持する。これにより、たとえ一部のマーカが一部の副ストレージシステムに到着しなくても、整合性を保った非同期リモートコピーを継続することが可能となる。
【００３３】
以下、本実施形態について、図面を用いながら詳述する。
【００３４】
図１は、本発明の一実施形態に係るシステム全体構成図である。なお、以下の説明では、同種の要素には、同一の親番号（例えば２００）を付し、それらの要素を区別して説明する場合には、親番号と枝番号（例えば２００−１、２００−２）を用いて説明する。
【００３５】
１台以上のホスト計算機１００が、複数の正ストレージシステム２００に、ストレージネットワーク９００−１を経由して接続されている。また、各正ストレージシステム２００に、ストレージネットワーク９００−１を通じて、マスタ正ストレージシステム３００が接続される。マスタ正ストレージシステム３００も、ストレージネットワーク９００−１を経由してホスト計算機１００に接続されている。マスタ正ストレージシステム３００と正ストレージシステム２００とで複数台になれば良いので、正ストレージシステム２００は一台であってもよい。
【００３６】
マスタ正ストレージシステム３００は、正ストレージシステム２００の持つ機能に加えて、正側マスタ機能を持つストレージシステムである。
【００３７】
それぞれの正ストレージシステム２００は、複数台の副ストレージシステム４００とネットワークを経由して接続されている。また、各副ストレージシステム４００に、ストレージネットワーク９００−２を通じて、マスタ副ストレージシステム５００が接続される。マスタ副ストレージシステム５００と副ストレージシステム４００とで複数台になれば良いので、副ストレージシステム２００は一台であってもよい。
【００３８】
マスタ副ストレージシステム５００は、副ストレージシステム４００の持つ機能に加えて、副側マスタ機能を持つストレージシステムである。
【００３９】
図２は、ストレージシステムのハードウェア構成例を示す。
【００４０】
このハードウェア構成は、本実施形態に含まれるストレージシステム、すなわあち、正ストレージシステム２００、マスタ正ストレージシステム３００、副ストレージシステム４００、マスタ副ストレージシステム５００のハードウェア構成を示す。
【００４１】
ストレージシステムは、コントローラ２１０と、メモリ２３０と、Ｉ／Ｏポート２０５と、物理ボリューム２４０と、論理ボリューム２５０と、管理装置２６０とを有する。ストレージシステムは、コントローラ２１０により制御される。メモリ２３０は、コントローラ（例えばＣＰＵ）２１０で実行されるコンピュータプログラムや、そのコンピュータプログラムで使用されるデータを記憶することができる。また、メモリ２３０は、ホスト計算機１００の読み書きするデータを一時的に保管するキャッシュとして、一部の領域を使用することもできる。Ｉ／Ｏポート２０５により、ストレージネットワーク９００と接続され、ホスト計算機１００とデータをやり取りする。物理ボリューム２４０は、ホスト計算機１００から送られて来るデータを記憶するための物理的なハードウェアである。物理ボリューム２４０としては、例えば、ハードディスクドライブ、フラッシュメモリデバイスなどの、不揮発性の記憶デバイスが用いられる。論理ボリューム２５０は、ホスト計算機１００で実行されるアプリケーションプログラム（図示せず）がデータの読み書きのために指定する単位である。本実施形態では、論理ボリューム２５０は、物理ボリューム２４０そのものとして実装される場合もあれば、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）構成として複数の物理ボリューム２４０を用いて実装される場合もある。このような論理ボリューム２５０の実装については、一般的な実装方法であるため、本明細書に詳細は記述しない。管理装置２６０は、ストレージシステムを保守・管理するための装置である。また、ストレージシステムに対して特別な指示を与える機能を有することもある。
【００４２】
図３は、正ストレージシステム２００の構成例を示す。
【００４３】
コントローラ２１０、メモリ２３０、Ｉ／Ｏポート２０５及び管理装置２６０は、図２で説明したものと同じである。
【００４４】
正ストレージシステム２００は、一又は複数のデータボリューム２２３を持つ。データボリューム２２３は、ホスト計算機１００で実行されるアプリケーションがデータの読み書きに使う論理ボリューム２５０である。データボリューム２２３は、プライマリのボリュームとして、副ストレージシステム４００のセカンダリのボリュームとペアにされる。そのペアを管理するための情報は、図示しないが、メモリ２３０に記憶される。
【００４５】
さらに、正ストレージシステム２００は、ライトデータ受領プログラム２３２と、ライトデータ転送プログラム２３４と、正マスタ指示受領プログラム２３５と、ライトデータ管理情報２３６と、シーケンス番号情報２３８と、ライト保留情報２３９とを、メモリ２３０に有する。これらの構成や処理については、後述する。
【００４６】
図４は、マスタ正ストレージシステム３００の構成例を示す。
【００４７】
マスタ正ストレージシステム３００は、基本的な構成は正ストレージシステム２００と同等である。違いは、正側マスタプログラム３３２と、正マーカ番号情報３３４と、メモリ２３０に更に有することである。これらの構成や処理については、後述する。
【００４８】
図５は、副ストレージシステム４００の構成例を示す。
【００４９】
コントローラ２１０、メモリ２３０、Ｉ／Ｏポート２０５及び管理装置２６０は、図２で説明したものと同じである。
【００５０】
副ストレージシステム４００は、一又は複数のデータボリューム２２３を持つ。ここでのデータボリューム２２３は、正ストレージシステム２００の持つデータボリューム２２３の複製データを保持する論理ボリューム２５０である。正ストレージシステム２００の持つデータボリューム２２３と、副ストレージシステム３００の持つデータボリューム２２３は、それぞれデータボリューム２２３同士で対応関係を持つ。つまり、或る正ストレージシステム２００の持つ或るデータボリューム２２３を選ぶと、それに対応する副ストレージシステム３００の持つ或るデータボリュームが必ず存在する。このようなデータボリューム２２３同士の関係を、ボリュームペアと呼ぶ。また、以下、混同を避けるため、正ストレージシステムのデータボリューム２２３を、「プライマリボリューム」と言い、それとペアにされるデータボリューム２２３を、「セカンダリボリューム」と言う。
【００５１】
さらに、副ストレージシステム４００は、転送データ受領プログラム４３２と、ライトデータ反映プログラム４３４と、副マスタ指示受領プログラム４３５と、ライトデータ管理情報２３６と、受領済みマーカ情報４３８とを、メモリ２３０に有する。これらの構成や処理については、後述する。
【００５２】
図６は、マスタ副ストレージシステム５００の構成例を示す。
【００５３】
マスタ副ストレージシステム５００は、基本的な構成は副ストレージシステム４００と同等である。違いは、副側マスタプログラム５３２をメモリ２３０に有することである。副側マスタプログラム５３２の処理については、後述する。
【００５４】
図７は、ライトデータ管理情報２３６の構成例を示す。
【００５５】
ライトデータ管理情報２３６は、論理ボリュームＩＤ、ライトアドレス、ライトデータ長、ライトデータポインタ、シーケンス番号及びマーカ番号から成る。これらの設定値や設定方法については後述する。
【００５６】
図８は、シーケンス番号情報２３８の構成例を示す。
【００５７】
シーケンス番号情報２３８は、整数値を含み、例えば、０で初期化される。
【００５８】
図９は、ライト保留情報２３９の構成例を示す。
【００５９】
ライト保留情報２３９は、真偽値を含み、例えば、０で初期化される。
【００６０】
図１０は、正マーカ番号情報３３４の構成例を示す。
【００６１】
正マーカ番号情報３３４は、整数値を含み、例えば、０で初期化される。
【００６２】
図１１は、受領済みマーカ情報４３８の構成例を示す。
【００６３】
受領済みマーカ情報４３８は、マーカ番号とシーケンス番号の対を一又は複数組保持することができる構成となっている。図１１には、例えば、マーカ番号１のマーカ（以降、マーカ１と表記）とそれに対応するシーケンス番号１０１、マーカ２に対応するシーケンス番号２１０、マーカ４に対応するシーケンス番号５６０、マーカ５に対応するシーケンス番号１０２４などが保持されている様子が示されている。なお、マーカ３及びそれに対応するシーケンス番号が保持されていない。これは、未だ、マーカ３を、この受領済みマーカ情報４３８を有する副ストレージシステム４００が受領していないことを意味している。
【００６４】
図１２は、ライトデータ受領プログラム２３２のフローチャートの一例である。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するコントローラ（例えばＣＰＵ）によって処理が行われるものとする。また、以下のフローチャートの説明では、適宜、主語を省略するが、それは、コンピュータプログラムのフローチャートである限り、主語が省略されている動作の主語は、コンピュータプログラムである。
【００６５】
ライトデータ受領プログラム２３２は、正ストレージシステム２００、および、マスタ正ストレージシステム３００が、ホスト計算機１００からのライトコマンドを受領したときに、コントローラ２１０により実行されるプログラムである。本プログラムにより、ホスト計算機１００からのライトコマンドに含まれるライトデータ（書き込み対象のデータ）を、そのライトコマンドで指定されたプライマリボリュームに書き込むと共に、当該ライトデータに対応するライトデータ管理情報２３６を作成し、対応する副ストレージシステム（そのプライマリボリュームに対応したセカンダリボリュームを有する副ストレージシステム）４００への転送準備をする。
【００６６】
ライトデータ受領プログラム２３２は、ホスト計算機１００からのライトコマンドを受領した場合（ステップ１０００）、ライトコマンドに含まれるライトデータを、メモリ２３０が有するキャッシュに格納する（ステップ１０１０）。
【００６７】
続いて、ライトデータ受領プログラム２３２は、ライト保留情報２３９を参照し（ステップ１０２０）、ライト保留情報２３９が０なら、ステップ１０３０に進む。ステップ１０３０では、ライトデータ管理情報２３６を作成する。すなわち、ライトデータ受領プログラム２３２は、ライトコマンドに含まれるボリュームＩＤ（プライマリボリュームのＩＤ）と、ライトアドレス（例えば論理ブロックアドレス）と、ライトデータ長と、ライトデータを格納したキャッシュの先頭アドレスとを、ライトデータ管理情報２３６のそれぞれのフィールドに設定する。また、ライトデータ管理情報２３６のマーカ番号は、０に設定する。さらに、シーケンス番号情報２３８が保持するシーケンス番号に１を加え（ステップ１０４０）、加算後の値を、ライトデータ管理情報２３６のシーケンス番号に設定する（Ｓステップ１０５０）。
【００６８】
一方、ステップ１０２０で、ライト保留情報２３９が０以外なら、ステップ１０６０に進む。ライトデータ受領プログラム２３２は、ライト保留情報２３９が０になるか、あるいは、適当な時間（例えば予め定められた所定時間）が経過するまで待つ。休止時間経過後、ライトデータ受領プログラム２３２は、ライト保留情報２３９に０を書込み（ステップ１０７０）、ステップ１０３０に進む。これ以降の処理は、上記の通りである。
【００６９】
このようにして、ホスト計算機１００から受領したライトコマンドに対応するライトデータ管理情報２３６を作成する。さらに、ライト保留情報２３９が示す値により、ライトデータ管理情報２３６の作成を遅延させる。なお、上記ステップ１０６０にある適当な時間を、ユーザに設定させても良い。また、そのためのインターフェースを正ストレージシステム２００、あるいは、マスタ正ストレージシステム３００が備えていても良い。
【００７０】
図１３は、ライトデータ転送プログラム２３４のフローチャートの一例を示す。
【００７１】
ライトデータ転送プログラム２３４は、ライトデータ受領プログラム２３２により作成されたライトデータ管理情報２３６がメモリ２３０に存在する場合、正ストレージシステム２００、あるいは、マスタ正ストレージシステム３００のコントローラ２１０により実行されるプログラムである。本プログラムにより、ライトデータ受領プログラム２３２により作成されたライトデータ管理情報２３６に基づいて、ライトデータを副ストレージシステム４００に転送する。
【００７２】
まず、ライトデータ転送プログラム２３４は、適当なライトデータ管理情報２３６を一つ選ぶ（ステップ１１００）。
【００７３】
続いて、ライトデータ転送プログラム２３４は、選んだライトデータ管理情報２３６から、副ストレージシステム４００に送付すべきライトデータとライトデータ情報を求める。すなわち、ライトデータ転送プログラム２３４は、ライトデータポインタの示すアドレスに格納されているデータをライトデータとする。また、その情報２３６における論理ボリュームＩＤから、セカンダリボリュームの論理ボリュームＩＤを求め、その求められた論理ボリュームＩＤと、その情報２３６におけるライトアドレス、ライトデータ長、シーケンス番号、マーカ番号とを含んだものをライトデータ情報とする。ライトデータ転送プログラム２３４は、これらのライトデータとライトデータ情報とを、副ストレージシステム４００に送信する（ステップ１１１０）。
【００７４】
送信に成功した場合（ステップ１１２０）、ステップ１１３０に進み、ライトデータ管理情報２３６を削除する。なお、送信に失敗した場合には、ステップ１１１０に戻り、成功するまで送信を繰り返す。また、後述するが、ライトデータ管理情報２３６は、ホスト計算機からのライトデータはなく、「マーカ」と呼ぶ特殊なデータを表していることがある。この場合、ライトデータそのものは存在しないので、ライトデータは転送しない。
【００７５】
上記処理を、ライトデータ管理情報２３６がなくなるまで繰り返す。
【００７６】
このようにして、ライトデータ管理情報２３６を基に、ホスト計算機１００が書き込んだライトデータが、副ストレージシステム４００に転送される。
【００７７】
図１４は、正側マスタプログラム３３２のフローチャートの一例である。
【００７８】
正側マスタプログラム３３２は、全ての正ストレージシステム２００とマスタ正ストレージシステム３００（以降、全ての正ストレージシステム２００とマスタ正ストレージシステム３００のことを、単に、「全ての正ストレージシステム２００，３００」と呼ぶ）の正マスタ指示受領プログラム２３５に対して指示を出し、「マーカ」と呼ぶ特殊なライトデータ管理情報２３６を、全ての正ストレージシステム２００，３００で作成する。このマーカを目印に、副側で、データ格納を制御することにより、複数の副ストレージシステム４００，５００をまたがって、整合性を保証した非同期リモートコピーを実現することができる。なお、正側マスタプログラム３３２は、リモートコピーを実施している間中、マスタ正ストレージシステム３００のコントローラ２１０で動作し続ける。
【００７９】
まず、ステップ１２００で、一定時間、当プログラム３３２の処理を休止する。この休止時間長は、リモートコピーシステムのユーザに指定させても良く、そのためのインターフェースをマスタ正ストレージシステム３００が備えていても良い。続いて、正マーカ番号情報３３４におけるマーカ番号に１を加え（ステップ１２１０）、全ての正ストレージシステム２００，３００に対してライト保留指示を発行する（ステップ１２２０）。さらに、全ての正ストレージシステム２００，３００からライト保留完了通知が帰るのを待つ。続いて、全ての正ストレージシステム２００，３００に、マーカ作成指示を発行する（ステップ１２４０）。マーカ作成指示には、ステップ１２１０で更新した正マーカ番号情報３４４を含める。その後、ステップ１２００に戻り、以降、本処理を継続する。
【００８０】
図１５は、ライト保留処理のフローチャートの一例である。
【００８１】
ライト保留指示は、正マスタ指示受領プログラム２３５によって実行される処理の一部である。このライト保留指示は、マスタ正ストレージシステム３００が発行したライト保留指示を受信したときに、正ストレージシステム２００，３００のコントローラ２１０で実行される処理でされる。
【００８２】
ライト保留指示を受信したら、ライト保留情報２３９に０以外の値（例えば１）を設定し（ステップ１３００）、マスタ正ストレージシステム３００に、ライト保留完了通知を返信する（ステップ１３１０）。
【００８３】
図１６は、マーカ作成処理のフローチャートの一例である。
【００８４】
マーカ作成処理は、正マスタ指示受領プログラム２３５によって実行される処理の一部で、マスタ正ストレージシステム３００が発行したマーカ作成指示を受信したときに、正ストレージシステム２００，３００のコントローラ２１０で実行される処理である。
【００８５】
マスタ正ストレージシステム３００からのマーカ作成指示を受信した場合、ライト保留情報２３９に０が設定されているかどうかを調べる（ステップ１４００）。０が設定されていた場合、ステップ１４５０に進み、マスタ正ストレージシステム３００に、処理完了通知を返信する。０以外の値が設定されていた場合、ステップ１４１０に進み、マーカを示すライトデータ管理情報２３６を作成する。この場合、ライトデータ管理情報２３６の含む論理ボリュームＩＤと、ライトアドレスと、ライトデータ長と、キャッシュの先頭アドレスには、無効値を設定する。また、ライトデータ管理情報２３６のマーカ番号には、マーカ作成指示に含まれるマーカ番号を設定する。さらに、シーケンス番号情報２３８が保持するシーケンス番号に１を加え（ステップ１４２０）、加算後の値を、ライトデータ管理情報２３６のシーケンス番号に設定する（ステップ１４３０）。続いて、ライト保留情報２３９に０を設定し（ステップ１４４０）、マーカ作成処理完了通知をマスタ正ストレージシステム３００に返信する（ステップ１４５０）。
【００８６】
図１７は、転送データ受領プログラム４３２のフローチャートの一例を示す。
【００８７】
転送データ受領プログラム４３２は、正ストレージシステム２００のライトデータ転送プログラム２３４から送付されるライトデータ及びライトデータ情報を、副ストレージシステム４００が受信した場合に、コントローラ２１０で実行され、副ストレージシステム４００のメモリ２３０が有するキャッシュにライトデータを格納し、当該ライトデータに対応するライトデータ管理情報２３６を作成する。
【００８８】
正ストレージシステム２００のライトデータ転送プログラム２３４から送付されるライトデータ及びライトデータ情報を受信した場合、受信したライトデータ情報を基に、ライトデータ管理情報２３６を作成する（ステップ１５００）。すなわち、ライトデータ情報に含まれる論理ボリュームＩＤ、ライトアドレス、ライトデータ長、シーケンス番号、マーカ番号を、ライトデータ管理情報２３６のそれぞれのフィールドに設定する。
【００８９】
続いて、ライトデータ管理情報２３６に含まれるマーカ番号が０かどうかを調べ（ステップ１５１０）、０なら、ステップ１５２０に進む。この場合、送付されたライトデータ情報は、通常のライトデータ情報なので、ライトデータが取得できる。よって、受信したライトデータを、メモリ２３０の有するキャッシュに格納し（ステップ１５２０）、当該キャッシュの先頭アドレスを、ライトデータポインタに設定し（ステップ１５３０）、ステップ１５５０に進む。
【００９０】
一方、ステップ１５１０で、マーカ番号が０以外の場合、すなわち、受信したライトデータ情報がマーカを表していた場合、ステップ１５４０に進む。受信済みマーカ情報４３８に、当該マーカのマーカ番号とシーケンス番号を設定する。最後に、ステップ１５５０に進み、ライトデータ転送成功を、ストレージシステム２００に返信する。
【００９１】
図１８は、副側マスタプログラム５３２のフローチャートの一例を示す。
【００９２】
副側マスタプログラム５３２は、全ての副ストレージシステム４００とマスタ副ストレージシステム５００（以降、全ての副ストレージシステム４００とマスタ副ストレージシステム５００のことを、単に、「全ての副ストレージシステム４００，５００」と呼ぶ）の副マスタ指示受領プログラム４３５とライトデータ反映プログラム４３４に対して指示を出し、マーカ情報を基に、全ての副ストレージシステム４００，５００におけるデータ格納を制御する。なお、副側マスタプログラム５３２は、リモートコピーを実施している間中、マスタ副ストレージシステム５００のコントローラ２１０で動作し続ける。
【００９３】
ステップ１６００で、全ての副ストレージシステム４００，５００に、マーカ情報応答を指示する。ステップ１６１０で、全ての副ストレージシステム４００，５００から、マーカ情報が応答されるのを待つ。詳細は後述するが、応答されたマーカ情報には、一つ以上、典型的には複数のマーカ番号が含まれている。続いて、ステップ１６２０で、全ての副ストレージシステム４００，５００からの応答に含まれているマーカ番号のうち、最大のマーカ番号を選ぶ。例えば、３台の副ストレージシステムがある場合、１台目の副ストレージシステムからは、マーカ番号１，３，４，５が応答され、２台目からは、マーカ番号１，２，４，５が応答され、３台目からは、マーカ番号１，３，４が応答された場合、全ての応答に含まれるマーカ番号１，４の中から、最大のマーカ番号４を選択する。ステップ１６３０で、選択したマーカ番号までのデータ格納を、全ての副ストレージシステム４００，５００に指示し、ステップ１６００に戻る。以降、本処理を継続する。
【００９４】
図１９は、副側マスタ指示受領プログラム４３５のフローチャートの一例を示す。
【００９５】
副側マスタ処理受領プログラム４３５は、マスタ副ストレージシステム５００が発行したマーカ情報応答指示を受信した場合に、副ストレージシステム４００，５００のコントローラ２１０で実行される処理である。
【００９６】
マスタ副ストレージシステム５００からのマーカ情報応答指示を受信したら、メモリ２３０に格納されているライトデータ管理情報２３６を含むシーケンス番号の中から、連続しているシーケンス番号の最大値を求める（ステップ１７００）。例えば、シーケンス番号７００，７０１，７０２，７０５，７０７を含むライトデータ管理情報２３６がある場合、求めるシーケンス番号は７０２である。
【００９７】
続いて、受領済みマーカ情報４３８を参照し、ステップ１７００で求めたシーケンス番号以下のシーケンス番号と対応付けられるマーカ番号を全て求める（ステップ１７１０）。例えば、受領済みマーカ情報４３８が、図１１に例示した状態であり、求めたシーケンス番号が、上記の通り７０２の場合、求めるマーカ番号は、１，２，４の３個である。最後に、ステップ１７２０で、マスタ副ストレージシステム５００に、求めたマーカ番号を全て応答する。
【００９８】
図２０は、ライトデータ反映プログラム４３４のフローチャートの一例を示す。
【００９９】
ライトデータ範囲プログラム４３４は、マスタ副ストレージシステム５００が発行したデータ格納指示を受信したときに、副ストレージシステム４００，５００のコントローラ２１０で実行される処理である。
【０１００】
マスタ副ストレージシステム５００からのデータ格納指示を受信した場合、該指示中のマーカ番号を有した受領済みマーカ情報４３８のエントリを探し、当該マーカ番号と対応するシーケンス番号を求める（ステップ１８００）。次に、指示されたマーカ番号以下のマーカ番号を持つ受領済みマーカ情報４３８のエントリを削除する（ステップ１８１０）。次に、求めたシーケンス番号以下のシーケンス番号を含む全てのライトデータ管理情報２３６を選び、ライトデータ管理情報２３６に含まれる論理ボリュームＩＤ、ライトアドレス、ライトデータ長が示す、セカンダリボリュームの領域に、ライトデータポインタが指すライトデータを格納し、格納し終わったならば、当該ライトデータ格納情報２３６を削除する（ステップ１８２０）。
【０１０１】
このように、各副ストレージシステム４００が受領しているマーカを、最新のものだけではなく全て（但し、前述したように、シーケンス番号が連続している範囲におけるマーカ番号）、マスタ副ストレージシステム５００に収集する。マスタ副ストレージシステム５００は、共通のマーカ番号のうち、最大のマーカ番号を指定したデータ格納指示を、全副ストレージシステム４００，５００に送信する。これにより、格納指示に含まれるマーカ番号が、全ての副ストレージシステム４００，５００が受領していることを保証することになる。よって、一部のマーカが抜けた状態で非同期リモートコピーを継続しても整合性を保証することができる。
【０１０２】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ストレージネットワーク９００に限らず、他の方法で、各ストレージシステムが接続されても良い。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施形態に係るシステム全体構成図である。
【図２】ストレージシステムのハードウェア構成例を示す。
【図３】正ストレージシステム２００の構成例を示す。
【図４】マスタ正ストレージシステム３００の構成例を示す。
【図５】副ストレージシステム４００の構成例を示す。
【図６】マスタ副ストレージシステム５００の構成例を示す。
【図７】ライトデータ管理情報２３６の構成例を示す。
【図８】シーケンス番号情報２３８の構成例を示す。
【図９】ライト保留情報２３９の構成例を示す。
【図１０】正マーカ番号情報３３４の構成例を示す。
【図１１】受領済みマーカ情報４３８の構成例を示す。
【図１２】ライトデータ受領プログラム２３２のフローチャートの一例である。
【図１３】ライトデータ転送プログラム２３４のフローチャートの一例を示す。
【図１４】正側マスタプログラム３３２のフローチャートの一例である。
【図１５】ライト保留処理のフローチャートの一例である。
【図１６】マーカ作成処理のフローチャートの一例である。
【図１７】転送データ受領プログラム４３２のフローチャートの一例を示す。
【図１８】副側マスタプログラム５３２のフローチャートの一例を示す。
【図１９】副側マスタ指示受領プログラム４３５のフローチャートの一例を示す。
【図２０】ライトデータ反映プログラム４３４のフローチャートの一例を示す。
【符号の説明】
【０１０４】
１００…ホスト計算機、２００…正ストレージシステム、３００…マスタ正ストレージシステム、４００…副ストレージシステム、５００…マスタ副ストレージシステム
【図１】
2008040536.tif 000003
【図２】
2008040536.tif 000004
【図３】
2008040536.tif 000005
【図４】
2008040536.tif 000006
【図５】
2008040536.tif 000007
【図６】
2008040536.tif 000008
【図７】
2008040536.tif 000009
【図８】
2008040536.tif 000010
【図９】
2008040536.tif 000011
【図１０】
2008040536.tif 000012
【図１１】
2008040536.tif 000013
【図１２】
2008040536.tif 000014
【図１３】
2008040536.tif 000015
【図１４】
2008040536.tif 000016
【図１５】
2008040536.tif 000017
【図１６】
2008040536.tif 000018
【図１７】
2008040536.tif 000019
【図１８】
2008040536.tif 000020
【図１９】
2008040536.tif 000021
【図２０】
2008040536.tif 000022