(57)【要約】【課題】  複数の記憶システムを有するデータ処理システムにおいてデータ整合性を維持しつつ高速かつ効率的にデータ複製を行い、構成要素で障害が発生した場合にデータ複製を再開するまでに要する時間を短くする。【解決手段】  記憶システムＡ（１００Ａ）でホストコンピュータ１８０からの命令に基づき複製対象データであるＤＡＴＡ１の更新を行うと共に、ジャーナルの作成（ＪＮＬ１）と記憶システムＢ（１００Ｂ）での複製データであるＤＡＴＡ２の更新とジャーナルの作成（ＪＮＬ２）とを行う。記憶システムＣ（１００Ｃ）は、前記更新に非同期で記憶システムＢ（１００Ｂ）からジャーナルを取得し（ＪＮＬ３）、複製データであるＣＯＰＹ１の更新を行う。記憶システムＢ（１００Ｂ）で障害が発生した場合、ジャーナル取得先が記憶システムＡ（１００Ａ）に変更され、取得ジャーナルによりＣＯＰＹ１が更新される。【選択図】  図１
2005316684.tif 000002
【特許請求の範囲】
【請求項１】
制御部と記憶装置とを備えデータを記憶領域に格納する機能を備える複数の記憶システムを有し、これらが通信線で接続され前記記憶システム間でデータの複製を保持するデータ処理システムであって、
第一の記憶システムは、複製対象のデータである第一のデータを保持し、第二の記憶システムは、第一のデータの複製である第二のデータを保持し、第三の記憶システムは、第一のデータの複製である第三のデータを保持し、
前記第一の記憶システムの第一のデータのデータ更新と同期で、前記第二の記憶システムの第二のデータのデータ更新と、前記第一および第二のデータのデータ更新に関する情報をデータ更新順序の識別子を含んだジャーナルとして作成して前記第一、第二の記憶システムの少なくともいずれかの記憶領域に格納する処理とを行い、
また、前記第一のデータのデータ更新とは非同期で、前記ジャーナルを前記第三の記憶システムの記憶領域に転送して格納し、このジャーナルを用いて前記第三の記憶システムが前記第一の記憶システムでのデータ更新順序に従って前記第三のデータのデータ更新を行うことを特徴とするデータ処理システム。
【請求項２】
制御部と記憶装置とを備えデータを記憶領域に格納する機能を備える複数の記憶システムを有し、これらが通信線で接続され前記記憶システム間でデータの複製を保持するデータ処理システムであって、
第一の記憶システムは、複製対象のデータである第一のデータを保持し、第二の記憶システムは、第一のデータの複製である第二のデータを保持し、第三の記憶システムは、第一のデータの複製である第三のデータを保持し、
前記第一の記憶システムは、ホストコンピュータからの命令に基づき前記第一のデータのデータ更新を行い、これと同期で、前記第一、第二の記憶システム間の通信線を介して第二の記憶システムに対し前記第二のデータについてのデータ更新の命令を行い、前記データ更新の命令に基づき前記第二の記憶システムは前記第二のデータのデータ更新を行い、該データ更新に関する情報をデータ更新順序の識別子を含んだジャーナルとして作成して第二の記憶システム内の記憶領域に格納し、
前記第三の記憶システムは、前記第一および第二のデータのデータ更新とは非同期で、前記第二、第三の記憶システム間の通信線を介して第二の記憶システムから前記ジャーナルを取得して第三の記憶システム内の記憶領域に格納し、前記格納したジャーナルを用いて前記第一の記憶システムでのデータ更新順序に従って前記第三のデータについてデータ更新を行うことを特徴とするデータ処理システム。
【請求項３】
制御部と記憶装置とを備えデータを記憶領域に格納する機能を備える複数の記憶システムを有し、これらが通信線で接続され前記記憶システム間でデータの複製を保持するデータ処理システムであって、
第一の記憶システムは、複製対象のデータである第一のデータを保持し、第二の記憶システムは、第一のデータの複製である第二のデータを保持し、第三の記憶システムは、第一のデータの複製である第三のデータを保持し、
ホストコンピュータが通信線を通じて前記第一の記憶システムを使用し前記第一のデータにアクセスして情報処理を行い、
前記第一の記憶システムは、前記ホストコンピュータからの命令に基づき前記第一のデータのデータ更新を行い、該データ更新に関する情報をデータ更新順序の識別子を含んだ第一のジャーナルとして作成して第一の記憶システム内の記憶領域に格納し、このデータ更新と同期で、前記第一、第二の記憶システム間の通信線を介して第二の記憶システムに対し前記識別子を含んで前記第二のデータについてのデータ更新の命令を行い、前記データ更新の命令に基づき前記第二の記憶システムは前記第二のデータのデータ更新を行い、該データ更新に関する情報を、前記第一の記憶システムから受信した前記識別子を含む情報を用いて第二のジャーナルとして作成して第二の記憶システム内の記憶領域に格納し、
前記第三の記憶システムは、前記第一および第二のデータのデータ更新とは非同期で、前記第二、第三の記憶システム間の通信線を介して第二の記憶システムから前記第二のジャーナルを取得して第三のジャーナルとして第三の記憶システム内の記憶領域に格納し、前記第三のジャーナルを用いて前記識別子をもとに前記第一の記憶システムでの第一のデータの更新順序に従って前記第三のデータについてデータ更新を行い、
障害発生時には、前記記憶システム間で前記各ジャーナルの転送を行い、転送されたジャーナルを用いてデータ更新を行うことを特徴とするデータ処理システム。
【請求項４】
請求項３記載のデータ処理システムにおいて、
前記第二の記憶システムで障害が発生した場合、
前記第三の記憶システムは、前記第一、第三の記憶システム間の通信線を介して第一の記憶システムの第一のジャーナルから第三のジャーナルとの差分を取得し、前記第三のジャーナルとして第三の記憶システム内の記憶領域に格納し、前記第三のジャーナルを用いて前記識別子をもとに前記第一の記憶システムでの第一のデータの更新順序に従って前記第三のデータについてデータ更新を行うことを特徴とするデータ処理システム。
【請求項５】
請求項４記載のデータ処理システムにおいて、
前記第二の記憶システムで障害が発生した場合、
前記第一、第三の記憶システム間での命令および応答の送受信により、前記非同期のデータ更新の処理における複製元を前記第二の記憶システムから第一の記憶システムに変更し、前記第三の記憶システムは前記第一の記憶システムの第一のジャーナルからデータを取得して前記第三のデータについてデータ更新を行うことを特徴とするデータ処理システム。
【請求項６】
請求項４記載のデータ処理システムにおいて、
前記第二の記憶システムが障害から回復後、
前記第二の記憶システムは、前記第一のデータの更新に非同期で、前記第一、第二の記憶システム間の通信線を介して第一の記憶システムの第一のジャーナルからデータを取得し、前記第二のジャーナルとして第二の記憶システム内の記憶領域に格納し、前記第二のジャーナルを用いて前記識別子をもとに前記第一の記憶システムでの第一のデータの更新順序に従って前記第二のデータについてデータ更新を行うことを特徴とするデータ処理システム。
【請求項７】
請求項６記載のデータ処理システムにおいて、
前記第二の記憶システムが障害から回復後、
前記第二の記憶システムが前記第一の記憶システムの第一のジャーナルについて取得済みで前記第二のデータについてデータ更新済みになると、前記第一の記憶システムと第二の記憶システムでの前記第一のデータについてのデータ複製を前記非同期での処理から前記同期での処理に変更し、前記第一のデータのデータ更新に同期で第二のデータの更新を行うことを特徴とするを特徴とするデータ処理システム。
【請求項８】
請求項３記載のデータ処理システムにおいて、
前記第一の記憶システムを使用し前記第一のデータにアクセスして情報処理を行う第一のホストコンピュータで障害が発生し、前記第二の記憶システムおよびそれを使用する第二のホストコンピュータを用いて処理を継続・再開する場合、
前記第二の記憶システムは、前記第二のホストコンピュータからの命令に基づき前記第二のデータのデータ更新を行うと共に該データ更新に関する情報を前記識別子を含んだ前記第二のジャーナルとして作成して第二の記憶システム内の記憶領域に格納し、このデータ更新に同期で、前記第一、第二の記憶システム間の通信線を介して第一の記憶システムに対し前記識別子を含んで前記第一のデータについてのデータ更新の命令を行い、前記データ更新の命令に基づき前記第一の記憶システムは、前記第一のデータについてデータ更新を行うと共に該データ更新に関する情報を前記識別子を用いて前記第一のジャーナルとして作成して第一の記憶システム内の記憶領域に格納することを特徴とするデータ処理システム。
【請求項９】
請求項８記載のデータ処理システムにおいて、
前記第一、第二の記憶システム間での命令および応答の送受信により、前記同期のデータ更新の処理における複製元を前記第一の記憶システムから第二の記憶システムに変更し、前記第二の記憶システムの前記第二のデータのデータ更新に同期で前記第一の記憶システムの第一のデータのデータ更新を行うことを特徴とするデータ処理システム。
【請求項１０】
請求項３記載のデータ処理システムにおいて、
前記第一、第二、および第三の各ジャーナルは、データ更新に用いられたデータのコピーと、前記データ更新時のライト命令と、前記データ更新順序の識別子として更新番号もしくは更新時刻と、を有して構成されることを特徴とするデータ処理システム。
【請求項１１】
請求項３記載のデータ処理システムにおいて、
前記各記憶システムは、データ更新順序を守る必要のあるデータのグループを登録し該グループ内のデータにおけるデータ更新毎に更新番号を割り当て、このグループについての情報を前記ジャーナルに含め、
前記複製を保持する記憶システムでは、複製のデータに対し前記グループにおける更新番号順にデータ更新処理を行うことを特徴とするデータ処理システム。
【請求項１２】
請求項３記載のデータ処理システムにおいて、
前記第三の記憶システムは、前記第二の記憶システムに対しリード命令を行い、これに対し前記第二の記憶システムは、前記識別子をもとに前記第二のジャーナルから未送信分のジャーナルのデータを送信することを特徴とするデータ処理システム。
【請求項１３】
請求項３記載のデータ処理システムにおいて、
前記第三の記憶システムは、前記第二の記憶システムに対し前記識別子をもとに送信ジャーナル指定の命令を行い、前記第二の記憶システムは、前記指定に基づき前記第二のジャーナルから指定されたジャーナルのデータを送信することを特徴とするデータ処理システム。
【請求項１４】
請求項３記載のデータ処理システムにおいて、
前記第二の記憶システムは、前記第三の記憶システムに対し前記第二のジャーナルからのジャーナルのデータについてのライト命令を行い、これに対し前記第三の記憶システムは、前記ジャーナルのデータを受信して記憶領域にライトすることを特徴とするデータ処理システム。
【請求項１５】
請求項３記載のデータ処理システムにおいて、
前記非同期の処理において前記記憶システム間でジャーナルの転送を行うタイミングに関し、ジャーナルの転送のための命令を一定の時間間隔で定期的に行うことを特徴とするデータ処理システム。
【請求項１６】
請求項３記載のデータ処理システムにおいて、
前記非同期の処理において前記記憶システム間でジャーナルの転送を行うタイミングを、前記記憶システムで保持するあるいは送受信したジャーナルの個数によって決定することを特徴とするデータ処理システム。
【請求項１７】
請求項３記載のデータ処理システムにおいて、
前記非同期の処理において前記記憶システム間でジャーナルの転送を行うタイミングを、前記記憶システムで保持するあるいは送受信したジャーナルまたはライトデータの容量によって決定することを特徴とするデータ処理システム。
【請求項１８】
請求項３記載のデータ処理システムにおいて、
前記非同期の処理において前記記憶システム間でジャーナルの転送を行うタイミングを、前記記憶システム間の通信線における通信負荷状況または前記記憶システムの処理負荷状況に基づき決定することを特徴とするデータ処理システム。
【請求項１９】
請求項３記載のデータ処理システムにおいて、
前記各記憶システムは、前記各ジャーナルを自記憶システム内のジャーナル用の記憶領域に格納し、前記識別子をもとに前記データ更新順序が最古のジャーナルからその記憶領域を開放することを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶システムを有するデータ処理システムに関し、特に記憶システム間でのデータ複製および障害時のデータ複製の継続および再開を行う技術に関する。
【背景技術】
【０００２】
近年、顧客に対して常に継続したサービスを提供するために、データを記憶するストレージ装置等の記憶システムに障害が発生した場合でもサービスを提供できるよう、複数の記憶システム間でのデータ複製に関する技術、特に遠隔サイト間でのデータ複製および障害時のデータ複製の継続・再開のための技術が重要となっている。複数の記憶システムを有するデータ処理システムにおいて第一の記憶システムに格納された情報を第二および第三の記憶システムに複製する技術として、以下の特許文献に開示された技術が存在する。
【０００３】
特許文献１には、三つの記憶システム間で、第一の記憶システムが、第一の記憶システムに格納されたデータを第二の記憶システムに転送（コピー）し、さらに第二の記憶システムが、前記転送されたデータを複製して第三の記憶システムに転送（コピー）する技術が開示されている。計算機と第一の記憶システムとは通信リンクにより接続され、第一の記憶システムと第二の記憶システムとは通信リンクにより接続され、さらに第二の記憶システムと第三の記憶システムとは通信リンクにより接続されている。第一の記憶システムは、複製対象の第一の論理ボリュームを保持する。第二の記憶システムは、第一の論理ボリュームの複製である第二の論理ボリューム、および、第二の論理ボリュームの複製である第三の論理ボリュームを保持する。第三の記憶システムは、第三の論理ボリュームの複製である第四の論理ボリュームを保持する。第二の記憶システムは、第二の論理ボリュームから第三の論理ボリュームへのデータ複製処理と、第三の論理ボリュームから第四の論理ボリュームへのデータ複製処理とを排他的に実行する。
【特許文献１】米国特許６２０９００２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記特許文献１に開示された技術では、前記第一の論理ボリュームと第四の論理ボリュームとのデータの差異を管理していない。そのため、前記第二の記憶システムで障害が発生した場合、前記第四の論理ボリュームにおいてデータ複製を再開するためには、データの差異が不明なことから前記第一の論理ボリュームの全データを第三の記憶システムに転送（コピー）する必要がある。その間、前記第一の論理ボリュームについての完全な複製が存在しない状態となるため、この間の処理において要する時間は極力短くなることが好ましい。しかし、当該時間は、複製対象のデータ（前記第一の論理ボリューム）の量に比例して大きくなるという問題がある。
【０００５】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、複数の記憶システムを有し、第一の記憶システムに格納された複製対象の第一の論理ボリュームを第二および第三の記憶システムに複製するデータ処理システムにおいて、データの整合性を維持しつつ高速かつ効率的にデータ複製を行い、構成要素において障害が発生した場合にも複製先の論理ボリュームにおいてデータ複製を再開するまでに要する時間を短くすることができ、さらに複製先の論理ボリュームを最新にするまでの間もデータの整合性を維持できる技術を提供することである。前記データ複製の再開とは、複製先の複製データを複製元のデータ（前記第一の論理ボリューム）と一致させて最新にし、完全な複製を保持する状態となることである。
【０００６】
また、本発明の目的は、前記複製を保持する第二の記憶システムで障害が発生した場合に、前記第二の記憶システムの保持する複製をもとに複製を保持する第三の記憶システムの保持する論理ボリュームにおいてデータ複製を再開するまでに要する時間を短くすることができる技術を提供することである。
【０００７】
さらに、本発明の目的は、前記第二の記憶システムが障害から回復した場合に、第二の記憶システムの保持する論理ボリュームにおいてデータ複製を再開するまでに要する時間を短くする技術を提供することである。
【０００８】
さらに、本発明の目的は、前記第一の記憶システムを使用する計算機（ホストコンピュータ）で障害が発生し、前記第二の記憶システムを利用して処理を継続・再開する場合に、二つ以上の記憶システム（前記第一および第三の記憶システム）でデータの複製を保持する技術を提供することである。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明のデータ処理システムは、制御部（記憶装置制御装置）と記憶装置とを備えデータを記憶領域に格納する機能を備える複数の記憶システムを有し、これらが通信線で接続され前記記憶システム間でデータの複製を行って複製データを保持するデータ処理システムであって、以下の構成を有することを特徴とする。
【００１０】
本発明のデータ処理システムは、第一、第二、第三の少なくとも三つの記憶システムを有し、例えばそれぞれ離れたサイトに配置される。第一の記憶システムは、複製対象のデータである第一のデータ（正論理ボリューム）を保持し、第二の記憶システムは、第一のデータの複製である第二のデータ（副論理ボリューム）を保持し、第三の記憶システムは、第一のデータの複製である第三のデータ（副論理ボリューム）を保持する。ホストコンピュータ等が通信線を通じて第一の記憶システムを使用し第一のデータにアクセスして情報処理を行う。
【００１１】
本発明のデータ処理システムは、第一の記憶システムの第一のデータのデータ更新と同期で、第二の記憶システムの第二のデータのデータ更新と、第一および第二のデータのデータ更新に関する情報をデータ更新順序の識別子を含んだジャーナルとして作成して第一、第二の記憶システムの少なくともいずれかの記憶領域に格納する処理とを行い、また、第一のデータのデータ更新とは非同期で、前記ジャーナルを第三の記憶システムの記憶領域に転送（コピー）して格納し、このジャーナルを用いて第三の記憶システムが第一の記憶システムでのデータ更新順序に従って第三のデータのデータ更新を行うことを特徴とする。
【００１２】
本発明のデータ処理システムは、記憶システム間のデータ複製の方式（モード）として、同期データ複製と非同期データ複製とを有し、これを記憶システム間で行う。第一のデータを保持する第一の記憶システムと、第二のデータを保持する第二の記憶システムとで同期データ複製を行い、第二のデータを保持する第二の記憶システムと第三のデータを保持する第三の記憶システムとで非同期データ複製を行う。
【００１３】
前記同期データ複製は、正論理ボリュームのデータ更新に同期で、副論理ボリュームのデータ更新を通信線を介して命令して行わせる。記憶システムではデータ更新と共にデータ更新に関する情報をジャーナルとして作成して記憶領域に格納する。
【００１４】
前記非同期データ複製は、正論理ボリュームのデータ更新に非同期で、副論理ボリュームのデータ更新を通信線を介した前記ジャーナルの転送（コピー）に基づき行わせる。記憶システム間でデータ更新に必要なジャーナルを転送（コピー）し、第三の記憶システムは副論理ボリュームに対して前記ジャーナルによる更新反映すなわち正論理ボリュームにおけるデータ更新分に対応するライトデータの書き込みによるデータ更新を行う。この更新反映の際は、ジャーナルの持つ更新情報に従って正論理ボリュームにおけるデータの更新順序に従ったデータ更新を行う。
【００１５】
本発明のデータ処理システムは、通常の運用時は、第一の記憶システムは、ホストコンピュータからの命令に基づき第一のデータのデータ更新を行うと共に、第二の記憶システムに命令して第二のデータのデータ更新を行わせ、このデータ更新に関する情報をジャーナルとして作成させる。第二の記憶システムは第一の記憶システムからの命令に基づき第二のデータのデータ更新を行う共に前記ジャーナルを作成して第二の記憶システム内のジャーナル用記憶領域に格納する。
【００１６】
あるいは、第一の記憶システムは、ホストコンピュータからの命令に基づき第一のデータのデータ更新を行うと共に、このデータ更新に関する情報を第一のジャーナルとして作成してこれを第一の記憶システム内のジャーナル用記憶領域に格納し、第二の記憶システムに命令して第二のデータのデータ更新を行わせ、このデータ更新に関する情報を第二のジャーナルとして作成させる。第二の記憶システムは第一の記憶システムからの命令に基づき第二のデータのデータ更新を行う共に、第二のジャーナルを作成して記憶領域に格納する。
【００１７】
前記ジャーナルは、具体的には、更新に用いられたデータ（ホストコンピュータからの第一のデータに対する更新の命令（ライト命令等）に付随するライトデータ）のコピーと、更新情報とを有して構成される。前記更新情報は、更新時のライト命令等や、データ更新順序の識別子として更新番号もしくは更新時刻等を有して構成される。
【００１８】
第一の記憶システムは、第一のデータのデータ更新の際、これと同期で、第一、第二の記憶システム間の通信線を介して、第二の記憶システムに対し第二のデータのデータ更新の命令をリモートライト命令等により行いデータ更新させる。このデータ更新の命令には、第一の記憶システムでのデータ更新に関するデータ更新順序の識別子（更新番号もしくは更新時刻等）を含む情報が付随する。
【００１９】
第二の記憶システムは、第一の記憶システムからのデータ更新の命令およびデータ更新順序の識別子を含む情報に基づき第二のデータについて第一のデータと対応するデータの更新を行うと共に、このデータ更新に関する情報を第二のジャーナルとして作成し、格納する。前記第二のジャーナルの作成の際、第二の記憶システムは、第一の記憶システムから受信したデータ更新順序の識別子を含む情報を用いた更新情報を作成し、この更新情報を用いてジャーナルを作成する。
【００２０】
あるいは、前記第一の記憶システムは、前記第二の記憶システムへのデータ更新の命令の際、前記第一のジャーナルの転送（コピー）を行い、前記第二の記憶システムは、前記第一のジャーナルを受信して前記第二のジャーナルとして記憶領域に格納してもよい。
【００２１】
一方、第三の記憶システムは、第二、第三の記憶システム間の通信線を介して、第二の記憶システムから前記第二のジャーナルを取得（コピー）し、第三のジャーナルとして第三の記憶システム内のジャーナル用記憶領域に格納する。第三の記憶システムは、第三のジャーナルを用いて、データ更新順序の識別子をもとに、第一の記憶システムでの第一のデータの更新順序に従って、第三のデータについて第一のデータと対応するデータの更新を行う。
【００２２】
前記同期データ複製により、第二のデータは第一のデータと一致し第一のジャーナルは第二のジャーナルと一致する。前記非同期データ複製により、第三のデータは、第二のデータおよび第一のデータの更新後、第二のジャーナルからの更新分のデータの取得および第三のジャーナルによるすべての更新反映の時点で、第一のデータと一致する。
【００２３】
本発明のデータ処理システムは、障害発生時には、記憶システム間で各ジャーナルの転送を行ってこれを用いて各データのデータ更新を行うことでデータ複製を再開する。
【００２４】
また、本発明のデータ処理システムは、前記通常の運用時に前記非同期データ複製における複製元すなわちジャーナル取得先である第二の記憶システムで障害が発生した場合、非同期データ複製における複製元を同期データ複製の複製元である第一の記憶システムに変更して非同期データ複製を継続・再開する。前記障害発生について記憶システムで認識後、例えば、第一、第三の記憶システム間での命令および応答の送受信により、第三の記憶システムおよび第一の記憶システムは、非同期データ複製における複製元を第二の記憶システムから第一の記憶システムに変更する。
【００２５】
前記障害発生後、第三の記憶システムは、第一の記憶システムと第三の記憶システム間の通信線を介して、第一の記憶システムの第一のジャーナルから、第三のデータをデータ更新して最新にするために必要な分のジャーナル、つまり第一のジャーナルと第三のジャーナルの差分を取得し、第三のジャーナルとして第三の記憶システム内のジャーナル用記憶領域に格納する。第三の記憶システムは、第三のジャーナルを用いて、データ更新順序の識別子をもとに、第一の記憶システムでの第一のデータの更新順序に従って、第三のデータについて第一のデータと対応するデータの更新を行う。前記障害発生後、これらの処理を続けて行うことにより、第三の記憶システムで第一のジャーナルと第三のジャーナルの差分を第三のデータに更新反映した時点で第三のデータと第一のデータが一致してデータ複製の再開つまり完全な複製の保持状態となる。
【００２６】
さらに、本発明のデータ処理システムは、前記障害発生後に第二の記憶システムが障害から回復した場合、第二の記憶システムで第一の記憶システムの保持する第一のデータについての非同期データ複製を開始する。第二の記憶システムは、第一のデータのデータ更新に非同期で、第一、第二の記憶システム間の通信線を介して第一の記憶システムの第一のジャーナルからデータを取得（コピー）し、第二のジャーナルとして第二の記憶システム内のジャーナル用記憶領域に格納する。第二の記憶システムは、第二のジャーナルを用いて、データ更新順序の識別子をもとに、第一の記憶システムでの第一のデータの更新順序に従って、第三のデータについて第一のデータと対応するデータの更新を行う。
【００２７】
さらに、本発明のデータ処理システムは、前記第二の記憶システムが第一の記憶システムの第一のデータについての非同期データ複製を開始後、第一のジャーナルをもとに第二のデータをデータ更新して最新にした後、前記第一の記憶システムの第一のデータについての非同期データ複製を同期データ複製に変更する。
【００２８】
第二の記憶システムが障害から回復後、第二の記憶システムは、第一、第二の記憶システム間の通信線を介して第一の記憶システムの第一のジャーナルからデータを取得（コピー）し、第一の記憶システムで第一のジャーナルについてすべて送信済み、つまり第二の記憶システムですべて取得済みとなり、それらを前記第二のデータについて更新反映してデータ更新済みになると、前記第一の記憶システムと第二の記憶システムでの前記第一のデータについてのデータ複製の方式を非同期データ複製から同期データ複製に変更する。この変更により、前記通常の運用時の処理と同様に、前記第一のデータのデータ更新に同期で第二のデータの更新が行われる。
【００２９】
また、本発明のデータ処理システムは、第一の記憶システムを使用して複製対象データである第一のデータにアクセスし情報処理を行う第一のホストコンピュータで障害が発生し、複製データである第二のデータを保持する第二の記憶システムおよびそれを使用する第二のホストコンピュータを利用して処理（前記データ複製およびホストコンピュータによる情報処理）を継続・再開する場合に対応する。
【００３０】
この場合、前記障害発生後、前記第二のホストコンピュータ等からの命令に基づき、前記第一、第二の記憶システム間での命令および応答の送受信により前記同期データ複製における複製元と複製先を交換し、前記第二のデータについての同期データ複製を開始する。第二の記憶システムは、第二のホストコンピュータからの命令に基づき第二のデータのデータ更新を行うと共に、この第二のデータのデータ更新に関する情報を第二のジャーナルとして作成し、これを第二の記憶システム内のジャーナル用記憶領域に格納する。第一の記憶システムは、第二の記憶システムが保持する第二のデータの複製を第一のデータとして保持する。
【００３１】
第二の記憶システムは、前記第二のデータのデータ更新の際、第一、第二の記憶システム間の通信線を介して、第一の記憶システムに対し第一のデータのデータ更新の命令をリモートライト命令等により行いデータ更新させる。このデータ更新の命令には、第二の記憶システムが第二のジャーナルを作成するときに使用したデータ更新順序の識別子（更新番号もしくは更新時刻等）を含む情報が付随する。
【００３２】
第一の記憶システムは、第二の記憶システムからのデータ更新の命令およびデータ更新順序の識別子に基づき第一のデータについて第二のデータと対応するデータの更新を行うと共に、このデータ更新に関する情報を第一のジャーナルとして作成し、第一の記憶システム内のジャーナル用記憶領域に格納する。第一のジャーナルの作成の際、第一の記憶システムは、第二の記憶システムから受信したデータ更新順序の識別子を含む情報を用いた更新情報を作成し、この更新情報を用いてジャーナルを作成する。
【００３３】
一方、第三の記憶システムは、第二、第三の記憶システム間の通信線を介して、前記第二および第一のデータの更新に非同期で、前記第二の記憶システムの第二のジャーナルからデータを取得し、第三のジャーナルとしてジャーナル用記憶領域に格納する。第三の記憶システムは、第二の記憶システムが保持する第二のデータの複製を第三のデータとして保持しており、前記第三のジャーナルを用いて、第二の記憶システムでの第二のデータの更新順序に従って、第三のデータについて第二の記憶システムのデータと対応するデータを更新する。
【００３４】
また、本発明のデータ処理システムでは、副論理ボリュームのデータ整合性を保つために、記憶システムで、データ更新順序を守る必要のある論理ボリュームを同じグループに登録し、グループ内のデータにおけるデータ更新毎に更新番号を割り当て、このグループについての情報をジャーナルの更新情報内に含める。副論理ボリュームを保持する記憶システムでは、副論理ボリュームのグループに対し前記更新番号順にデータ更新処理を行うことを特徴とする。
【００３５】
また、本発明のデータ処理システムは、前記第一、第二、および第三の各ジャーナルの作成・格納に関して、前記各記憶システムは、前記更新情報として、前記データ更新順序の識別子等の他に、ライト命令の論理アドレス、ライトデータのサイズ、ライトデータを格納した論理ボリュームの論理アドレス、データ更新順序を守る必要のある論理ボリュームのグループを示すグループ番号等を含んでも良い。
【００３６】
また、本発明のデータ処理システムは、前記第三の記憶システムは、前記第二の記憶システムに対しジャーナルのリードのためのリード命令を行い、これに対し前記第二の記憶システムは、前記識別子をもとに前記第二のジャーナルから未送信分のデータを送信することを特徴とする。一つの命令に対し第二の記憶システムから第三の記憶システムに対して未送信分のデータをまとめて送信してもよいし、一つずつ送信するようにしてもよい。一つの命令に対する送信ジャーナル数は、第三の記憶システムがリード命令等に付随して指定してもよいし、前記グループの登録の際等にユーザが記憶システムに対し指定してもよい。前記リード命令は通常のリード命令でも専用の命令（ジャーナルリード命令）でもよい。例えば第二の記憶システムの持つグループ管理のための情報やジャーナル格納管理のための情報等を第三の記憶システムにも転送して保持させ、これをもとに第三の記憶システムが第二の記憶システムからジャーナルをリードする。
【００３７】
また、本発明のデータ処理システムは、前記第三の記憶システムは、前記第二の記憶システムに対し前記識別子をもとに送信ジャーナルの指定を行い、前記第二の記憶システムは、前記第二のジャーナルから前記指定されたジャーナルのデータを送信することを特徴とする。前記送信ジャーナル指定は、単一のジャーナルの指定でもよいし、複数のジャーナルの指定あるいは送信ジャーナル数の指定等でもよい。
【００３８】
また、本発明のデータ処理システムは、前記第三の記憶システム側からリード命令を行うのではなく、前記第二の記憶システム側が前記第三の記憶システムに対し前記第二のジャーナルからのジャーナルのデータについてのライト命令を行い、これに対し前記第三の記憶システムが前記ジャーナルのデータを受信して指定領域に格納することを特徴とする。前記ライト命令は通常のライト命令でも専用の命令（ジャーナルライト命令）でもよい。例えば、第三の記憶システムの持つグループ管理のための情報やジャーナル格納管理のための情報を第二の記憶システムにも転送しておき、これをもとに第二の記憶システムは、第三の記憶システムにおける第三のジャーナルの記憶領域に対しジャーナルのデータをライトする。
【００３９】
また、本発明のデータ処理システムでは、前記非同期データ複製において、第三の記憶システムと第二の記憶システムとの間でジャーナルの転送（コピー）を行うタイミングに関しては、ジャーナルの取得ためのリード命令等を一定の時間間隔で定期的に行ってもよいし、第二、第三の記憶システムで保持するあるいは送受信したジャーナルの個数、あるいは第二、第三の記憶システムで保持するあるいは送受信したジャーナルの容量（またはライトデータの容量）によって決定してもよい。例えば、第二の記憶システムの保持する第二のジャーナルについての数や容量等の情報もしくはジャーナル格納管理のための情報等を第三の記憶システムにも転送して保持し、第三の記憶システムでその情報に基づき決定する。また、第二、第三の記憶システム間の通信線における通信負荷状況、第二、第三の記憶システムの処理負荷等に基づき決定してもよい。
【００４０】
また、本発明のデータ処理システムでは、前記非同期データ複製において、さらに、第二、第三の記憶システム間の通信線における転送能力もしくは負荷等に応じて動的に一つのリード命令に対する送信ジャーナル数を変更するようにしてもよい。
【００４１】
また、本発明のデータ処理システムでは、前記ジャーナルを記憶システム内で記憶装置に格納してもよいし、記憶システム内でシステムが利用するキャッシュメモリ等に格納してもよい。また、前記ジャーナルを所定箇所に集中して格納してもよいし、複数箇所に分散して格納してもよい。また、一つのグループについてのジャーナルに対し、一つの論理ボリュームを割り当ててもよいし、複数の論理ボリュームを割り当ててもよい。また、各記憶システムでのジャーナルの格納のための記憶領域の容量を等しくしてもよいし、異なる容量としてもよい。
【００４２】
また、本発明のデータ処理システムは、前記各記憶システムは、前記各ジャーナルを自記憶システム内のジャーナル用の記憶領域に格納し、前記識別子をもとに前記データ更新順序が最古のジャーナルからその記憶領域を開放することで常に新しいジャーナルを記憶容量に応じて保持することを特徴とする。データ更新に反映済みのジャーナルの記憶領域を随時開放してもよいし、ジャーナル格納領域が不足した時点で開放してもよい。
【００４３】
前記ジャーナルの記憶領域の開放に関しては、第二の記憶システムで第三の記憶システムからのジャーナルのリード命令の受信処理時に行ってもよいし、第三の記憶システムにジャーナルを送信した後に行ってもよい。また、第三の記憶システムがジャーナルのリード命令に付随して取得の必要のないジャーナルあるいはどこまで更新済みか示す更新番号を指定し、その指定に従ってジャーナルの記憶領域を開放するようにしてもよい。
【００４４】
また、本発明のデータ処理システムでは、前記ジャーナルの転送に関しては、記憶システム間で前記データ更新順序の識別子をもとに更新番号の順にジャーナルを送信してもよいし、更新番号の順に送信せずともよい。
【発明の効果】
【００４５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００４６】
本発明によれば、複数の記憶システム間でデータの整合性を維持しつつ高速かつ効率的にデータ複製が可能である。さらに、記憶システムやホストコンピュータ等、構成要素で障害が発生した場合にも、ジャーナル転送によるデータ更新を行うことにより、データ複製を再開するまでに要する時間を短くでき、かつデータの整合性を維持することができ、速やかに処理を継続・再開することができる。
【００４７】
また、第一の記憶システムに格納された複製対象の第一の論理ボリュームを第二および第三の記憶システムに複製するデータ処理システムにおいて、複製を保持する第二の記憶システムで障害が発生した場合に、第二の記憶システムの保持する複製をもとに複製を保持する第三の記憶システムの保持する論理ボリュームにおいてデータ複製を再開するまでに要する時間を短くすることができる。
【００４８】
さらに、前記第二の記憶システムが障害から回復した場合に、第二の記憶システムの保持する論理ボリュームにおいてデータ複製を再開するまでに要する時間を短くすることができる。
【００４９】
さらに、前記第一の記憶システムを使用する計算機で障害が発生し、前記第二の記憶システムを利用して処理を継続・再開する場合に、二つ以上の記憶システム（前記第一および第三の記憶システム）でデータの複製を保持することができる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一概念に基づく構成部分には原則として同一符号を付し、その繰り返しの説明は省略する。
【００５１】
＜データ処理システムの構成＞
図１は、本発明の一実施の形態であるデータ処理システムの論理的な構成を示すブロック図である。本実施の形態のデータ処理システムは、制御部（記憶装置制御装置）と記憶装置とを備えデータを記憶領域に格納する機能を備える複数の記憶システム（後述する図２の１００）を有して構成される。複数の記憶システム１００として、記憶システムＡ（正記憶システム）１００Ａ、記憶システムＢ（副記憶システム）１００Ｂ、記憶システムＣ（副記憶システム）１００Ｃの三つを有し、記憶システムＡ（１００Ａ）を利用するホストコンピュータ１８０と、これらの間で通信を行うための通信線を有する。これら複数の記憶システム１００は、特に災害等の障害発生に備えるためにそれぞれ地理的に離れたサイトに配置される。通信線として、ホストコンピュータ１８０と記憶システムＡ（１００Ａ）とが接続パス１９０により接続される。また、記憶システムＡ（１００Ａ）と、記憶システムＢ（１００Ｂ）および記憶システムＣ（１００Ｃ）とが接続パス２００により接続されている。さらに、記憶システムＢ（１００Ｂ）と記憶システムＣ（１００Ｃ）とが接続パス２００により接続されている。
【００５２】
図１に示す状態では、記憶システムＡ（１００Ａ）は複製対象データを保持する正記憶システムであり、記憶システムＢ（１００Ｂ）および記憶システムＣ（１００Ｃ）は前記複製対象データについての複製（複製データ）を保持する副記憶システムである。ホストコンピュータ１８０は、記憶システムＡ（１００Ａ）に保持されるデータにアクセスして情報処理（データ処理）を行う。
【００５３】
複製対象のデータを保持する記憶システムと複製データを保持する記憶システムとの区別を容易とするために、複製対象のデータを保持する側を「正」、複製を保持する側を「副」とし、この正副の状態に応じて、複製対象のデータを保持する記憶システムＡを正記憶システムあるいは正記憶システムＡ、複製データを保持する記憶システムＢを、副記憶システムあるいは副記憶システムＢ、複製データを保持する記憶システムＣを、副記憶システムあるいは副記憶システムＣ等のように呼ぶこととする。正副の状態は後述するように状況によって変化する。副記憶システム１００Ｂは、後述する同期データ複製によって、正記憶システム１００Ａの保持するデータの複製を保持する。副記憶システム１００Ｃは、後述する非同期データ複製によって、副記憶システム１００Ｂの保持するデータをもとに正記憶システム１００Ａの保持するデータの複製を保持する。
【００５４】
ホストコンピュータ１８０は、ＣＰＵやメモリを備え、ＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。ホストコンピュータ１８０は、例えばＰＣやワークステーション、あるいはメインフレームコンピュータ等である。ホストコンピュータ１８０は、正記憶システム１００Ａを利用して企業や個人等のユーザに対する処理を実行する他、正記憶システム１００Ａを保守・管理するためのコンピュータとしても利用できる。ホストコンピュータ１８０と正記憶システム１００Ａの間は、接続パス１９０としてＬＡＮ等のネットワークや専用線による直接接続等により接続され、所定の通信プロトコルにより通信が行われる。ホストコンピュータ１８０は、通信線により正記憶システム１００Ａの制御部に接続され、論理ボリュームに対するアクセス命令を行う。
【００５５】
複数の記憶システム１００間は、接続パス２００としてネットワークや専用線による直接接続等により接続され、所定の通信プロトコルにより通信が行われる。記憶システム１００は、接続パス２００を通じて記憶システム１００の制御部同士が通信を行うことでデータをリモートで転送（コピー）する機能を有する。
【００５６】
本実施の形態のデータ処理システムでは、記憶システム１００において複製対象データの更新時には更新についてのジャーナルを作成して記憶領域に格納し、このジャーナルをもとにデータ複製を行う。各記憶システム１００においてジャーナルを保持し、後述する非同期データ複製では、記憶システム１００間で必要なジャーナルの転送を行い、複製データに対しジャーナルのデータにより更新反映を行うことで複製対象データに一致させる。本実施の形態のデータ処理システムでは、通常の運用時、記憶システム１００間でのデータ複製、つまり複製データ保持状態の維持を行い、また記憶システム１００等のシステム構成要素における障害時には、障害状態でない記憶システム１００間でジャーナルの転送を行ってジャーナルのデータにより更新反映を行うことで前記データ複製を継続・再開する。記憶システム１００間のデータ複製の方式（モード）として、同期データ複製と非同期データ複製とがあり、通常の運用時には、三つの記憶システム（１００Ａ〜１００Ｃ）間で、同期データ複製と非同期データ複製の二種類のデータ複製を行うことで、一つの複製対象データに対して二つの複製データが保持される。同期データ複製は、複製対象データの更新に同期して複製データを更新する処理であり、複製データは複製対象データと完全に一致する。非同期データ複製は、複製対象データの更新に非同期でジャーナルをもとに複製データを更新する処理であり、複製データは複製対象データの更新の暫く後に完全に一致する。
【００５７】
図１に示す状態では、正記憶システム１００Ａと副記憶システム１００Ｂは、命令受信処理２１０、リードライト処理２２０を行う。副記憶システム１００Ｃは、ＪＮＬＲＤ（ジャーナルリード）処理２４０、リードライト処理２２０、リストア処理２５０を行う。記憶システム１００の正副の状態によって行う処理が変わる。正記憶システム１００Ａは、論理ボリューム２３０として、ＤＡＴＡ１，ＤＡＴＡ２，ＤＡＴＡ３、およびＪＮＬ１等を保持する。副記憶システム１００Ｂは、論理ボリューム２３０として、ｄａｔａ１，ｄａｔａ２，ｄａｔａ４、およびＪＮＬ２等を保持する。副記憶システム１００Ｃは、論理ボリューム２３０として、ＣＯＰＹ１，ＣＯＰＹ２，ｄａｔａ５、およびＪＮＬ３等を保持する。また、矢印で示される２７０は、ホストコンピュータ１８０からの正記憶システム１００Ａの保持するデータの更新のための命令の発行、および正記憶システム１００Ａでのデータ更新およびジャーナル作成・格納を示す。２７５は、前記正記憶システム１００Ａのデータ更新に同期の、副記憶システム１００Ｂでのデータ更新およびジャーナル作成・格納を示す。２８０は、前記正記憶システム１００Ａおよび副記憶システム１００Ｂでのデータ更新およびジャーナル作成・格納に非同期の、副記憶システム１００Ｃでの副記憶システム１００Ｂからのジャーナルのリードおよび格納を示す。２９０は、副記憶システム１００Ｃでの保持データに対する、ジャーナルのデータによるリストア（更新反映すなわち複製対象データでの更新分についての反映（書き込み）によるデータ更新）を示す。各処理の詳細については後述する。
【００５８】
記憶システム１００の持つ記憶領域は、論理的に分割して管理されており、分割された記憶領域を論理ボリュームと呼ぶこととする。処理対象のデータは論理ボリュームに対応して扱われる。記憶システム１００は、記憶システム１００内にある一つ以上の記憶装置（図２の１５０）上の記憶領域に、データに対応した論理ボリューム２３０を保持する。論理ボリューム２３０の容量および記憶システム１００内の物理的な格納位置（物理アドレス）は、記憶システム１００に接続したコンピュータ等の保守端末もしくはホストコンピュータ１８０を用いて指定できる。各論理ボリューム２３０の物理アドレスは、後述するボリューム情報４００に格納する。物理アドレスは、例えば、記憶システム１００内の一つ以上の記憶装置を識別する番号（記憶装置番号）と、記憶装置内の記憶領域を一意に示す数値、例えば、記憶装置の記憶領域の先頭からの位置とで構成される。以下の説明では、物理アドレスは、記憶装置番号と記憶装置の記憶領域の先頭からの位置の組とする。
【００５９】
記憶システム１００が格納しているデータの参照・更新は、論理ボリューム２３０を識別する番号（論理ボリューム番号）と、記憶領域を一意に示す数値、例えば、論理ボリュームの記憶領域の先頭からの位置とにより一意に指定することができ、以下、論理ボリューム番号と論理ボリュームの記憶領域の先頭からの位置（論理アドレス内位置）の組を論理アドレスと呼ぶ。また以下の説明では、論理ボリューム２３０は、一つの記憶装置の記憶領域であるが、論理アドレスと物理アドレスの変換により、一つの論理ボリュームを複数の記憶装置の記憶領域に対応付けることも可能である。
【００６０】
複製対象のデータと複製データとの区別を容易とするために、複製対象の論理ボリューム２３０を正論理ボリューム、複製データである論理ボリューム２３０を副論理ボリュームと呼ぶこととする。一対の正論理ボリュームと副論理ボリュームをペアと呼ぶ。ペアとなる正論理ボリュームと副論理ボリュームの関係および状態等は後述するペア情報５００に格納する。
【００６１】
また、論理ボリューム２３０内および論理ボリューム２３０間のデータの更新順序を守るために、グループという管理単位を設ける。例えば、ホストコンピュータ１８０が、第一の正論理ボリュームの第一のデータを更新し、その後、その第一のデータを読み出し、その第一のデータの数値を用いて、第二の正論理ボリュームの第二のデータを更新する処理を行うとする。第一の正論理ボリュームから第一の副論理ボリュームへのデータ複製処理と、第二の正論理ボリュームから第二の副論理ボリュームへのデータ複製処理とが独立に行われる場合、第一の副論理ボリュームへの第一のデータの複製処理よりも前に、第二の副論理ボリュームへの第二のデータの複製処理が行われる場合がある。第二の副論理ボリュームへの第二のデータの複製処理と第一の副論理ボリュームへの第一のデータの複製処理との間に、障害等により第一の副論理ボリュームへの第一のデータの複製処理が停止した場合、第一の副論理ボリュームと第二の副論理ボリュームのデータ整合性が無くなってしまう。
【００６２】
このような場合にも第一の副論理ボリュームと第二の副論理ボリュームのデータ整合性を保つために、データの更新順序を守る必要のある論理ボリュームを同じグループに登録し、データの更新毎に、後述するグループ情報６００における更新番号を割り当て、更新番号順に副論理ボリュームに対する複製処理（データ更新処理）を行わせる。更新番号の代わりに更新時刻を用いてもよい。例えば、図１では、正記憶システム１００Ａの持つ論理ボリュームＤＡＴＡ１と論理ボリュームＤＡＴＡ２がグループ１（以下、グループ番号ｎのグループをグループｎと表記する）を構成する。さらに、論理ボリュームＤＡＴＡ１の複製である論理ボリュームｄａｔａ１と、論理ボリュームＤＡＴＡ２の複製である論理ボリュームｄａｔａ２とは、副記憶システム１００Ｂ内でグループ１およびグループ２を構成する。同様に、論理ボリュームｄａｔａ１の複製である論理ボリュームＣＯＰＹ１と、論理ボリュームｄａｔａ２の複製である論理ボリュームＣＯＰＹ２とは、副記憶システム１００Ｃ内でグループ１を構成する。正記憶システム１００Ａのグループ１と副記憶システム１００Ｂのグループ１が対応し、副記憶システム１００Ｂのグループ２と副記憶システム１００Ｃのグループ１が対応する。
【００６３】
正記憶システム１００Ａは、複製対象である正論理ボリュームＤＡＴＡ１，ＤＡＴＡ２のデータを更新する際、後述するジャーナルを作成し、正記憶システム１００Ａ内の論理ボリュームに格納する。本実施の形態の説明では、グループ毎にジャーナルのみを格納する論理ボリューム（以下、特にジャーナル論理ボリュームと呼ぶ）を割り当てる。図１では、グループ１のジャーナル論理ボリュームは、ＪＮＬ１である。同様に、副記憶システム１００Ｂは、副記憶システム１００Ｂの持つ副論理ボリュームｄａｔａ１，ｄａｔａ２のデータを更新する際、後述するジャーナルを作成し、副記憶システム１００Ｂ内のジャーナル論理ボリュームに格納する。図１では、副記憶システム１００Ｂのグループ１およびグループ２のジャーナル論理ボリュームは、ＪＮＬ２である。
【００６４】
副記憶システム１００Ｃのグループにもジャーナル論理ボリュームを割り当てる。このジャーナル論理ボリュームは、副記憶システム１００Ｂから副記憶システム１００Ｃに対し転送したジャーナルを格納するために使用する。ジャーナルをジャーナル論理ボリュームに格納することにより、例えば、副記憶システム１００Ｃの負荷が高い場合に、副記憶システム１００Ｂからのジャーナル受信時に副論理ボリュームＣＯＰＹ１，ＣＯＰＹ２のデータ更新を行わず、暫く後、副記憶システム１００Ｃの負荷が低い時に副論理ボリュームＣＯＰＹ１，ＣＯＰＹ２のデータ更新を行うようにすることもできる。さらに、接続パス２００が複数ある場合、これを通じて副記憶システム１００Ｂから副記憶システム１００Ｃへのジャーナルの転送を多重に行い、接続パス２００の転送能力を有効に利用することができる。データの更新順序のために、副記憶システム１００Ｃに多くのジャーナルが溜まる可能性はあるが、副論理ボリュームのデータ更新にすぐに使用できないジャーナルはジャーナル論理ボリュームに格納されることにより問題とならない。図１では、副記憶システム１００Ｃのグループ１のジャーナル論理ボリュームは、ＪＮＬ３である。
【００６５】
＜記憶システムの構成＞
図２に、本実施の形態のデータ処理システムの構成要素となる記憶システム１００の内部構造を示す。本実施の形態では、記憶システム１００は、ストレージ装置である。記憶システム１００は、一つ以上のＣＨＡ（ホストアダプタ）１１０、一つ以上のＤＫＡ（ディスクアダプタ）１２０、一つ以上のＣＡＣＨＥ（キャッシュメモリ）１３０、一つ以上のＳＭ（共有メモリ）１４０、一つ以上のＨＤＤ（記憶装置）１５０、一つ以上のＳＷＩＴＣＨ（スイッチ）１６０、一つ以上の接続線１７０を備えて構成される。ホストアダプタ１１０、ディスクアダプタ１２０、キャッシュメモリ１３０、共有メモリ１４０は、スイッチ１６０により相互間が接続されている。ディスクアダプタ１２０と記憶装置１５０とは接続線１７０によって接続されている。また、図示していないが、記憶システム１００の設定、監視、保守等を行うための保守端末がすべてのホストアダプタ１１０とディスクアダプタ１２０とに専用線を用いて接続されている。
【００６６】
記憶装置１５０は、ハードディスクドライブ等であり、複数の記憶装置１５０によりＲＡＩＤを構成してもよい。記憶装置１５０により提供される物理的な記憶領域である物理ボリュームには、論理的な記憶領域である論理ボリュームを対応させることができる。
【００６７】
記憶システム１００は、命令受信処理２１０他の各種処理を制御する制御部（記憶装置制御装置）として、ホストアダプタ１１０とディスクアダプタ１２０とを有しており、処理に対応するプログラムをプロセッサにより実行する。ホストアダプタ１１０は、ホストコンピュータ１８０と通信を行うための通信インターフェイスと入出力命令を授受する機能を備え、ホストコンピュータ１８０とキャッシュメモリ１３０間のデータ転送を制御する。ホストアダプタ１１０は、接続パス１９０、接続パス２００により、ホストコンピュータ１８０、他の記憶システム１００と接続される。ディスクアダプタ１２０は、記憶装置１５０に対するデータのリード、ライト等の制御を行い、キャッシュメモリ１３０と記憶装置１５０との間のデータ転送を制御する。
【００６８】
キャッシュメモリ１３０は、主にホストコンピュータ１８０から受信したデータあるいは記憶装置１５０から読み出したデータを一時的に記憶するメモリである。共有メモリ１４０は、記憶システム１００内のすべてのホストアダプタ１１０とディスクアダプタ１２０とが共有して使用するメモリであり、主に制御情報等を記憶する。なお、ホストアダプタ１１０からディスクアダプタ１２０に対するデータのリードやライトの指示をキャッシュメモリ１３０および共有メモリ１４０を介して行う構成の他、ホストアダプタ１１０から直接ディスクアダプタ１２０に対し指示を行う構成とすることもできる。また、キャッシュメモリ１３０および共有メモリ１４０相当のメモリがホストアダプタ１１０やディスクアダプタ１２０の各々に分散されて設けられる構成でも構わない。
【００６９】
管理者等のユーザは、記憶システム１００に接続される前記保守端末やホストコンピュータ１８０等を通じて、例えば、複数の記憶装置１５０の増減やＲＡＩＤ構成の設定、接続パスの設定、論理ボリュームの設定、記憶システム１００の動作状態の確認、障害発生時の障害部位の特定、障害監視対象や内容、障害通知先の設定等を、所定のユーザインターフェイスを通じて行うことができる。なお保守端末を記憶システム１００に内蔵とする構成も外付けする構成も可能である。
【００７０】
＜ジャーナルの構成＞
ジャーナルは、記憶システム１００の保持する複製対象データ（正論理ボリューム）のデータ更新時に、データ更新に関する情報として作成されるデータであり、ライトデータと更新情報３００とを有して構成される。ライトデータは、ホストコンピュータ１８０からの正論理ボリュームのデータ更新処理時に用いられたデータ（更新位置に対する書き込みデータ）のコピーである。更新情報３００は、更新毎のライトデータおよびジャーナル自体を管理する情報であり、ライト命令を受信した時刻（更新時刻）、グループ番号、更新番号（後述するグループ情報６００の更新番号）、ライト命令の論理アドレス、ライトデータのデータサイズ、ライトデータを格納したジャーナル論理ボリュームの論理アドレス等からなる。更新情報３００は、データ更新の識別子として、前記ライト命令を受信した時刻（更新時刻）と更新番号とを有する。これによりデータの更新順序を識別する。データ更新の識別子としては、前記更新時刻と更新番号のどちらか一方のみを保持することとしてもよい。またホストコンピュータ１８０からのライト命令内にライト命令の作成時刻が存在する場合は、前記ライト命令を受信した時刻の代わりに当該ライト命令内の作成時刻を使用してもよい。
【００７１】
図３と図４を用いて、ジャーナルにおける更新情報３００の例を説明する。図３は、ジャーナルにおける更新情報３００の一例について示す。この例では、更新情報３００は、１９９９年３月１７日の２２時２０分１０秒に受信したライト命令を記憶する。当該ライト命令は、ライトデータを論理ボリューム番号１の論理ボリューム（正論理ボリューム＃１）の記憶領域の先頭から７００の位置に格納する命令であり、データサイズは３００である。ジャーナルのライトデータは、論理ボリューム番号４の論理ボリューム（ジャーナル論理ボリューム＃４）の記憶領域の先頭から１５００の位置から格納されている。論理ボリューム番号１の論理ボリュームはグループ１に属し、グループ１のデータ複製開始から４番目のデータ更新であることがわかる。
【００７２】
図４は、前記図３に対応して、ジャーナル論理ボリュームにおける更新情報３００とライトデータの関係を説明する図である。図４では、前記正論理ボリューム＃１の記憶領域３４０と前記ジャーナル論理ボリューム＃４の記憶領域３５０について示している。ジャーナル論理ボリュームは、例えば、更新情報３００を格納する記憶領域（更新情報領域）とライトデータを格納する記憶領域（ライトデータ領域）に分割して使用する。更新情報領域は、更新情報領域の先頭から、更新番号の順に更新情報３００を格納し、更新情報領域の終端に達すると、再び更新情報領域の先頭から格納する。３１０は、更新情報３００を格納している領域を示す。ライトデータ領域は、ライトデータ領域の先頭からライトデータを格納し、ライトデータ領域の終端に達すると、再びライトデータ領域の先頭から格納する。３３０は、ライトデータを格納している領域を示す。更新情報領域とライトデータ領域の比は、固定値でもよいし、保守端末あるいはホストコンピュータ１８０により設定可能としてもよい。３２０は、ライト命令の論理アドレスおよびライトデータのデータサイズで指示される、正論理ボリュームにおけるデータ更新領域を示す。これらの情報は、後述するポインタ情報７００内に保持する。以下の説明では、ジャーナル論理ボリュームを更新情報３００とライトデータの領域に分割して使用するが、論理ボリュームの記憶領域の先頭から、ジャーナルつまり更新情報３００とライトデータを連続に格納する方式を採ってもよい。
【００７３】
＜データ更新の動作＞
図５および前記図１を用いて、正記憶システム１００Ａの正論理ボリュームＤＡＴＡ１へのデータ更新を副記憶システム１００Ｂの副論理ボリュームｄａｔａ１および副記憶システム１００Ｃの副論理ボリュームＣＯＰＹ１に反映する動作について概説する。図５は、本実施の形態のデータ処理システムにおいて、動作の流れに沿って時系列で、記憶システム１００（記憶システムＡ〜記憶システムＣ）およびホストコンピュータ１８０間の命令および応答の送受信と、各記憶システム１００が保持するジャーナルについて説明する図であり、特に、正記憶システム１００Ａの正論理ボリュームへのデータ更新を副記憶システム１００Ｂの副論理ボリュームおよび副記憶システム１００Ｃの副論理ボリュームに反映する動作について示す。時刻ｔ１では、初期状態として、全記憶システム１００は、更新番号１（ＳＥＱ＃１）のジャーナルを保持する。図中の四角形をデータ更新に対応するジャーナルとし、その数字は更新番号を示すものとする。また命令や応答における更新番号ｎをＳＥＱ＃ｎあるいは単に＃ｎのように表記する。以下（１）〜（６）で動作について説明する。
【００７４】
（１）正記憶システム１００Ａは、ホストコンピュータ１８０から正論理ボリュームＤＡＴＡ１内のデータに対するライト命令を受信すると、後述する命令受信処理２１０およびリードライト処理２２０によって、正論理ボリュームＤＡＴＡ１内のデータの更新と、ジャーナル論理ボリュームＪＮＬ１へのジャーナルの作成・格納と、副記憶システム１００Ｂ内の副論理ボリュームｄａｔａ１の対応するデータの更新の命令とを行う（図１の２７０）。副論理ボリュームｄａｔａ１のデータの更新は、リモートライト命令（ＲＷＲ命令）により行う。リモートライト命令は、ホストコンピュータ１８０からのライト命令とライトデータと前記ジャーナルの更新情報３００を含む。ここで更新情報３００は、前記図３で示したようなすべての情報は必須ではなく、更新番号もしくはライト命令を受信した時刻（更新時刻）を含めばよい。時刻ｔ２では、正記憶システム１００Ａは、ホストコンピュータ１８０からのライト命令を受信し、正論理ボリュームの更新と、更新番号２（ＳＥＱ＃２）のジャーナルをジャーナル論理ボリュームに格納する。さらに、副記憶システム１００Ｂに対し更新情報３００として更新番号２を含んだリモートライト命令（ＲＷＲ命令  ＳＥＱ＃２）を送信する。
【００７５】
（２）副記憶システム１００Ｂは、正記憶システム１００Ａからのリモートライト命令を受け、後述する命令受信処理２１０およびリードライト処理２２０によって、副論理ボリュームｄａｔａ１内の対応するデータの更新と、ジャーナル論理ボリュームＪＮＬ２にジャーナルの作成・格納を行う。ジャーナルの更新番号および更新時刻は、リモートライト命令内の数値を使用する（図１の２７５）。時刻ｔ２では、記憶システムＢ（１００Ｂ）は、リモートライト命令を受信し、副論理ボリュームのデータ更新と、更新番号２のジャーナルをジャーナル論理ボリュームに格納し、記憶システムＡ（１００Ａ）に応答を返す。
【００７６】
（３）正記憶システム１００Ａは、リモートライト命令の応答を受けた後、ホストコンピュータ１８０にライト命令の終了を報告する。以上は正論理ボリュームのデータ更新に同期した不可分の処理であり、従って、正記憶システム１００Ａ内の正論理ボリュームＤＡＴＡ１と副記憶システム１００Ｂ内の副論理ボリュームｄａｔａ１のデータは完全に一致する。このようなデータ複製を同期データ複製と呼ぶ。さらに、一つのライト命令に関するジャーナル論理ボリュームＪＮＬ１のジャーナルの更新番号とジャーナル論理ボリュームＪＮＬ２のジャーナルの更新番号は一致する。時刻ｔ２では、記憶システムＡ（１００Ａ）は、リモートライト命令の応答を受信し、ホストコンピュータ１８０にライト命令の終了を報告する。その後、時刻ｔ３に、記憶システムＡ（１００Ａ）は、ホストコンピュータ１８０からの次の更新のライト命令を受信し、同様な処理により、記憶システムＡ（１００Ａ）と記憶システムＢ（１００Ｂ）は、更新番号３（ＳＥＱ＃３）のジャーナルを保持する。
【００７７】
（４）一方、副記憶システム１００Ｃは、後述するジャーナルリード処理２４０によって、副記憶システム１００Ｂからジャーナルをリードし、リードしたジャーナルを、リードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ３に格納する（図１の２８０）。この処理は前記同期データ複製の処理つまり正記憶システム１００Ａおよび副記憶システム１００Ｂにおけるデータ更新とは非同期で行われる。時刻ｔ４では、記憶システムＣ（１００Ｃ）は、記憶システムＢ（１００Ｂ）にジャーナルリード（ＪＮＬＲＤ）命令を送信し、記憶システムＢ（１００Ｂ）から、更新番号２および３のジャーナル（記憶システムＣ（１００Ｃ）で未取得のジャーナル）を読み出し（ＪＮＬ（＃２，＃３））、ジャーナル論理ボリュームＪＮＬ３に格納する。
【００７８】
（５）副記憶システム１００Ｂは、副記憶システム１００Ｃからジャーナルリード命令を受信すると、後述する命令受信処理２１０およびリードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ２からジャーナルを読み出し、副記憶システム１００Ｃに送信する（図１の２８０）。時刻ｔ４では、記憶システムＢ（１００Ｂ）は、記憶システムＣ（１００Ｃ）のジャーナルリード命令を受信し、記憶システムＣ（１００Ｃ）に更新番号２および３のジャーナル（記憶システムＣ（１００Ｃ）に対し未送信のジャーナル）を送信する。この際、送信したジャーナルより古い更新番号１のジャーナルの記憶領域を開放してもよい。
【００７９】
（６）副記憶システム１００Ｃは、後述するリストア処理２５０およびリードライト処理２２０によって、ポインタ情報７００を用いて、更新番号（ＳＥＱ＃）の昇順に、ジャーナル論理ボリュームＪＮＬ３からジャーナルを読み出し、これにより副論理ボリュームＣＯＰＹ１のデータを更新する（図１の２９０）。以上は正論理ボリュームのデータ更新に非同期の自律的処理であり、従って、副記憶システム１００Ｂ内の論理ボリュームｄａｔａ１と副記憶システム１００Ｃ内の論理ボリュームＣＯＰＹ１のデータは、論理ボリュームＤＡＴＡ１および論理ボリュームｄａｔａ１の更新の暫く後には、完全に一致する。このようなデータ複製を非同期データ複製と呼ぶ。時刻ｔ５では、記憶システムＣ（１００Ｃ）は、ジャーナル論理ボリュームから更新番号１のジャーナルを読み出し、副論理ボリュームのデータを更新する。この際、不要となった更新番号１のジャーナルの記憶領域を開放してもよいし、あるいはジャーナルの格納領域が不足した時点で最古のジャーナルの記憶領域を開放する方式を採ってもよい。その後、記憶システムＡ（１００Ａ）は、ホストコンピュータ１８０からのライト命令を受信し、同様な処理により、記憶システムＡ（１００Ａ）と記憶システムＢ（１００Ｂ）は、更新番号４（ＳＥＱ＃４）のジャーナルを保持する。上記ライト命令の応答において、記憶システムＢ（１００Ｂ）が、時刻ｔ４で記憶領域の開放したジャーナルの更新番号を記憶システムＡ（１００Ａ）に送信し、記憶システムＡ（１００Ａ）が受信した更新番号までのジャーナルの記憶領域を開放するようにしてもよい。記憶システムＡ（１００Ａ）に記憶領域を開放したジャーナルの更新番号を知らせる方法は、専用の命令を使用してもよい。
【００８０】
その後、時刻ｔ６で、記憶システムＣ（１００Ｃ）は、記憶システムＢ（１００Ｂ）にジャーナルリード命令を送信し、記憶システムＢ（１００Ｂ）から更新番号４（ＳＥＱ＃４）のジャーナルを読み出し、ジャーナル論理ボリュームＪＮＬ３に格納する。
【００８１】
＜ボリューム情報の構成＞
図６に、記憶システム１００が保持するボリューム情報４００の一例を示す。ボリューム情報４００は、論理ボリューム２３０を管理する情報であり、論理ボリューム番号、ボリューム状態、フォーマット形式、容量、同期ペア番号、非同期ペア番号、物理アドレス（記憶装置番号および先頭からの位置）を保持する。ボリューム情報４００は、ホストアダプタ１１０およびディスクアダプタ１２０から参照可能なメモリ、例えば共有メモリ１４０に格納される。
【００８２】
ボリューム情報４００において、ボリューム状態は、“正常”、“正”、“副”、“正副”、“異常”、“未使用”のいずれかを保持する。ボリューム状態が“正常”もしくは“正”である論理ボリューム２３０は、ホストコンピュータ１８０から正常にアクセス可能な論理ボリュームであることを示す。ボリューム状態が“副”、“正副”である論理ボリューム２３０は、ホストコンピュータ１８０からのアクセスを許可してもよい。ボリューム状態が“正”である論理ボリューム２３０は、データの複製が行われている論理ボリュームであることを示す。ボリューム状態が“副”である論理ボリューム２３０は、複製に使用されている論理ボリュームであることを示す。ボリューム状態が“正副”である論理ボリューム２３０は、複製に使用されている論理ボリュームであり、かつ、データの複製が行われている論理ボリュームであることを示す。ボリューム状態が“異常”の論理ボリューム２３０は、障害により正常にアクセスできない論理ボリュームであることを示す。障害とは、例えば、論理ボリューム２３０を保持する記憶装置１５０の故障等である。ボリューム状態が“未使用”の論理ボリューム２３０は、使用していない論理ボリュームであることを示す。
【００８３】
ボリューム情報４００において、同期ペア番号および非同期ペア番号は、ボリューム状態が“正”、“副”、“正副”の場合に有効であり、後述するペア情報５００を特定するためのペア番号を保持する。保持するペア番号が存在しない場合は、無効値（例えば、“０”）を設定する。図６に示す例では、論理ボリューム番号１の論理ボリュームは、フォーマット形式が「ＯＰＥＮ３」、容量が３ＧＢ、記憶装置番号１の記憶装置１５０の記憶領域における先頭からデータが格納されており、アクセス可能で、データの複製対象であることを示す。
【００８４】
前述した図１の場合における、正記憶システム１００Ａのボリューム情報４００を前記図６に、副記憶システム１００Ｂのボリューム情報４００を図７に、副記憶システム１００Ｃのボリューム情報４００を図８にそれぞれ示す。
【００８５】
＜ペア情報の構成＞
図９に、記憶システム１００が保持するペア情報５００の一例を示す。ペア情報５００は、ペアを管理する情報であり、ペア番号、ペア状態、正記憶システム番号、正論理ボリューム番号、副記憶システム番号、副論理ボリューム番号、グループ番号、コピー済みアドレスを保持する。ペア情報５００は、ホストアダプタ１１０およびディスクアダプタ１２０から参照可能なメモリ、例えば共有メモリ１４０に格納する。
【００８６】
ペア情報５００において、ペア状態は、“正常”、“異常”、“未使用”、"コピー未”、“コピー中”のいずれかを保持する。ペア状態が“正常”の場合は、正論理ボリューム２３０のデータ複製が正常に行われていることを示す。ペア状態が“異常”の場合は、障害により正論理ボリューム２３０の複製が行えないことを示す。障害とは、例えば、接続パス２００の断線などである。ペア状態が“未使用”の場合は、当該ペア番号の情報は有効でないことを示す。ペア状態が“コピー中”の場合は、後述する初期コピー処理中であることを示す。ペア状態が“コピー未”の場合は、後述する初期コピー処理がまだ行われていないことを示す。
【００８７】
ペア情報５００において、正記憶システム番号は、正論理ボリューム２３０を保持する正記憶システム１００を特定する番号を保持する。副記憶システム番号は、副論理ボリューム２３０を保持する副記憶システム１００を特定する番号を保持する。グループ番号は、正記憶システムの場合は、正論理ボリュームが属するグループ番号を保持する。副記憶システムの場合は、副論理ボリュームが属するグループ番号を保持する。コピー済みアドレスは、後述する初期コピー処理において説明する。図９の、ペア番号１のペア情報は、データ複製対象が正記憶システムＡ内の正論理ボリューム番号１の論理ボリュームで、データ複製先が副記憶システムＢ内の副論理ボリューム番号１の論理ボリュームであり、データ複製処理が正常に行われていることを示す。
【００８８】
前述した図１の場合における、正記憶システム１００Ａのペア情報５００を前記図９に、副記憶システム１００Ｂのペア情報５００を図１０に、副記憶システム１００Ｃのペア情報５００を図１１にそれぞれ示す。
【００８９】
＜グループ情報の構成＞
図１２に、記憶システム１００が保持するグループ情報６００の一例を示す。グループ情報６００は、グループ番号、グループ状態、ペア集合、ジャーナル論理ボリューム番号、更新番号、複製種類、相手記憶システム番号、相手グループ番号を保持する。グループ情報６００は、ホストアダプタ１１０およびディスクアダプタ１２０から参照可能なメモリ、例えば共有メモリ１４０に格納する。
【００９０】
グループ情報６００において、グループ状態は、“正常”、“異常”、“未使用”、“停止”、“準備中”のいずれかを保持する。グループ状態が“正常”の場合は、ペア集合のうち少なくとも一つのペア状態が“正常”であることを示す。グループ状態が“異常”の場合は、ペア集合のうちすべてのペア状態が“異常”であることを示す。グループ状態が“未使用”の場合は、当該グループ番号の情報は有効でないことを示す。正記憶システムの場合、グループ状態の“停止”は、ジャーナルの作成を一時的に行わないことを示す。これは、グループ状態が“正常”の場合に、ジャーナルの作成を一時的に停止したい場合に使用する。副記憶システムの場合、グループ状態の“停止”は、ジャーナルリード処理を一時的に行わないことを示す。これは、グループ状態が“正常”の場合に、正記憶システムからジャーナルをリードすることを一時的に停止したい場合に使用する。グループ状態が“準備中”の場合は、後述するデータ複製開始処理中であることを示す。
【００９１】
グループ情報６００において、正記憶システムの場合、ペア集合はグループ番号が示すグループに属するすべての正論理ボリュームのペア番号を保持する。副記憶システムの場合、ペア集合はグループ番号が示すグループに属するすべての副論理ボリュームのペア番号を保持する。ジャーナル論理ボリューム番号は、当該グループ番号のグループに属するジャーナル論理ボリューム番号を示す。当該グループ番号のグループに属するジャーナル論理ボリュームが存在しない場合は、無効値（例えば、“０”）を設定する。更新番号は、初期値は「１」であり、ジャーナルを作成した場合に変更する。更新番号は、ジャーナルの更新情報３００に記憶し、後述するリストア処理２５０においてデータの更新順序を守るために使用する。
【００９２】
グループ情報６００において、複製種類は、データ複製の方式を示す情報であり、“同期”、“非同期”のいずれかを保持する。複製種類が“同期”の場合、同期データ複製であり、正論理ボリュームと副論理ボリュームの更新は同時に行われる。従って、正論理ボリュームのデータと副論理ボリュームのデータは完全に一致する。複製種類が“非同期”の場合、非同期データ複製であり、副論理ボリュームの更新は、正論理ボリュームの更新の後に行われる。従って、正論理ボリュームのデータと副論理ボリュームのデータが一致していない期間（副論理ボリュームのデータが正論理ボリュームのデータより古い状態）があり、暫く後、つまり更新反映された時点で、副論理ボリュームのデータは正論理ボリュームのデータと完全に一致する。
【００９３】
グループ情報６００において、正記憶システムの場合、相手記憶システム番号は、グループに属するペアの副論理ボリュームを保持する副記憶システム番号を保持する。副記憶システムの場合、相手記憶システム番号は、グループに属するペアの正論理ボリュームを保持する正記憶システム番号を保持する。正記憶システムの場合、相手グループ番号は、グループに属するペアの副論理ボリュームが属するグループ番号を保持する。副記憶システムの場合、相手グループ番号は、グループに属するペアの正論理ボリュームが属するグループ番号を保持する。例えば、図１２の、グループ番号１のグループ情報６００は、ペア番号１，２のペア情報５００から、正論理ボリューム番号１，２の正論理ボリュームと、ジャーナル論理ボリューム番号４のジャーナル論理ボリュームから構成されており、正常に同期データ複製処理が行われていることを示す。
【００９４】
前述した図１の場合における、正記憶システム１００Ａのグループ情報６００を前記図１２に、副記憶システム１００Ｂのグループ情報６００を図１３に、副記憶システム１００Ｃのグループ情報６００を図１４にそれぞれ示す。
【００９５】
＜ポインタ情報の構成＞
図１５に、記憶システム１００が保持するポインタ情報７００の一例について示す。また図１６は、図１５のポインタ情報７００の設定例に対応するジャーナル論理ボリュームの構造を説明する図である。図１６では、ジャーナル論理ボリューム＃４について示している。ポインタ情報７００は、当該グループのジャーナル論理ボリュームを管理する情報であり、更新情報領域先頭アドレス、ライトデータ領域先頭アドレス、更新情報最新アドレス、更新情報最古アドレス、ライトデータ最新アドレス、ライトデータ最古アドレス、リード開始アドレス、リトライ開始アドレスを保持する。
【００９６】
ポインタ情報７００において、更新情報領域先頭アドレスは、ジャーナル論理ボリュームの更新情報３００を格納する記憶領域（更新情報領域）の先頭の論理アドレスを保持する。ライトデータ領域先頭アドレスは、ジャーナル論理ボリュームのライトデータを格納する記憶領域（ライトデータ領域）の先頭の論理アドレスを保持する。更新情報最新アドレスは、次にジャーナルを格納する場合に更新情報３００の格納に使用する先頭の論理アドレスを保持する。更新情報最古アドレスは、最古の（更新番号が小さい）ジャーナルの更新情報３００を格納する先頭の論理アドレスを保持する。ライトデータ最新アドレスは、次にジャーナルを格納する場合にライトデータの格納に使用する先頭の論理アドレスを保持する。ライトデータ最古アドレスは、最古の（更新番号が小さい）ジャーナルのライトデータを格納する先頭の論理アドレスを保持する。リード開始アドレスとリトライ開始アドレスは、後述するジャーナルリード受信処理において使用する。
【００９７】
図１５および図１６に示すポインタ情報７００の例では、ジャーナルの更新情報３００を格納する領域（更新情報領域）は、論理ボリューム番号４の論理ボリューム（ジャーナル論理ボリューム＃４）の記憶領域における先頭から６９９の位置までであり、ジャーナルのライトデータを格納する領域（ライトデータ領域）は、同論理ボリュームの記憶領域における７００の位置から２６９９の位置までである。ジャーナルの更新情報３００は、同論理ボリュームの記憶領域における５０の位置から２４９の位置まで格納されており、次のジャーナルの更新情報３００は、同論理ボリュームの記憶領域における２５０の位置から格納する。ジャーナルのライトデータは同論理ボリュームの記憶領域における１３００の位置から２１９９の位置まで格納されており、次のジャーナルのライトデータは、同論理ボリュームの記憶領域における２２００の位置から格納する。
【００９８】
前述した図１の場合における、正記憶システム１００Ａのポインタ情報７００を前記図１５に、副記憶システム１００Ｂのポインタ情報７００を図１７に、副記憶システム１００Ｃのポインタ情報７００を図１８にそれぞれ示す。
【００９９】
上述したボリューム情報４００、ペア情報５００、グループ情報６００、及びポインタ情報７００は、共有メモリ１４０に格納されていることが好ましい。しかし、この場合に限らず、これらの情報を、キャッシュメモリ１３０、ホストアダプタ１１０、ディスクアダプタ１２０、その他記憶装置１５０に集中して格納または分散して格納することとしてもよい。
【０１００】
下記の説明では、一つのグループに一つのジャーナル論理ボリュームを割り当てる形態としているが、一つのグループに複数のジャーナル論理ボリュームを割り当ててもよい。例えば、一つのグループに二つのジャーナル論理ボリュームを割り当て、ジャーナル論理ボリューム毎にポインタ情報７００を設け、交互にジャーナルを格納する。これにより、ジャーナルの記憶装置１５０への書き込みが分散でき、性能の向上が見込める。さらに、ジャーナルのリード性能も向上する。別の例としては、一つのグループに二つのジャーナル論理ボリュームを割り当て、通常は一つのジャーナル論理ボリュームのみを使用する。もう一方のジャーナル論理ボリュームは、使用しているジャーナル論理ボリュームの性能が低下した場合もしくは障害発生で使用できない場合などに使用する。性能が低下する場合の例は、ジャーナル論理ボリュームの記憶領域が、複数の記憶装置１５０から構成されＲＡＩＤ方式でデータを保持しており、ＲＡＩＤを構成する記憶装置１５０の一台が故障中の場合である。
【０１０１】
＜データ複製開始の動作＞
次に、図１９、図２０を用いて、以下（１）〜（５）で、正記憶システム１００Ａから副記憶システム１００Ｂおよび副記憶システム１００Ｃに対してデータ複製を開始する手順（データ複製開始処理）を説明する。図１９は、データ複製開始処理の手順を説明するフローチャートである。
【０１０２】
（１）グループ作成について説明する（ステップＳ１９００）。ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、正記憶システム１００Ａのグループ情報６００を参照し、グループ状態が“未使用”のグループ番号Ａを取得する。同様に、副記憶システム１００Ｂのグループ番号Ｂを取得する。ユーザは、正記憶システム１００Ａに、保守端末あるいはホストコンピュータ１８０を使用して、グループ作成指示を行う。グループ作成指示は、指示対象グループ番号Ａ、相手記憶システム番号Ｂ、相手グループ番号Ｂ、複製種類“同期”からなる。
【０１０３】
グループ作成指示を受けて、正記憶システム１００Ａは、グループ情報６００を変更する。具体的には、正記憶システム１００Ａは、指示対象グループ番号Ａのグループ情報６００のグループ状態を“準備中”に、相手記憶システム番号を、指示された相手記憶システム番号Ｂに、相手グループ番号を、指示された相手グループ番号Ｂに、複製種類を指示された複製種類“同期”に変更する。グループ情報６００の更新番号を「１」（初期値）に設定する。さらに、正記憶システム１００Ａは、相手記憶システム番号Ｂの記憶システムに対して、グループ作成指示を行う。グループ作成指示の指示対象グループ番号は相手グループ番号Ｂ、相手記憶システム番号は正記憶システム１００Ａの記憶システム番号、相手グループ番号は指示対象グループ番号Ａ、複製種類は指示された複製種類“同期”とする。
【０１０４】
ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、副記憶システム１００Ｂのグループ情報６００を参照し、グループ状態が“未使用”のグループ番号Ｄを取得する。同様に、副記憶システム１００Ｃのグループ番号Ｃを取得する。ユーザは、副記憶システム１００Ｂに、保守端末あるいはホストコンピュータ１８０を使用して、グループ作成指示を行う。グループ作成指示は、指示対象グループ番号Ｄ、相手記憶システム番号Ｃ、相手グループ番号Ｃ、複製種類“非同期”からなる。
【０１０５】
グループ作成指示を受けて、副記憶システム１００Ｂは、グループ情報６００を変更する。具体的には、副記憶システム１００Ｂは、指示対象グループ番号Ｄのグループ情報６００のグループ状態を“準備中”に、相手記憶システム番号を、指示された相手記憶システム番号Ｃに、相手グループ番号を、指示された相手グループ番号Ｃに、複製種類を指示された複製種類“非同期”に変更する。グループ情報６００の更新番号を「１」（初期値）に設定する。さらに、副記憶システム１００Ｂは、相手記憶システム番号Ｃの記憶システムに対して、グループ作成指示を行う。グループ作成指示の指示対象グループ番号は相手グループ番号Ｃ、相手記憶システム番号は副記憶システム１００Ｂの記憶システム番号、相手グループ番号は指示対象グループ番号Ｄ、複製種類は指示された複製種類“非同期”とする。
【０１０６】
（２）ペア登録について説明する（Ｓ１９１０）。ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、同期データ複製対象を示す情報とデータ複製先を示す情報を指定し、ペア登録指示を正記憶システム１００Ａに対し行う。データ複製対象を示す情報は、データ複製対象のグループ番号Ａと正論理ボリューム番号Ａである。データ複製先を示す情報は、複製データを格納する副記憶システム１００Ｂ内の副論理ボリューム番号Ｂである。
【０１０７】
前記ペア登録指示を受けて、正記憶システム１００Ａは、ペア情報５００からペア状態が“未使用”のペア番号を取得し、ペア状態を“コピー未”に、正記憶システム番号に正記憶システム１００Ａを示す正記憶システム番号Ａを、正論理ボリューム番号に指示された正論理ボリューム番号Ａを、副記憶システム番号にグループ情報６００のグループ番号Ａの相手記憶システム番号を、副論理ボリューム番号に指示された副論理ボリューム番号Ｂを、グループ番号に指示されたグループ番号Ａを設定する。指示されたグループ番号Ａのグループ情報６００のペア集合に前記取得したペア番号を追加し、正論理ボリューム番号Ａのボリューム状態を“正”に変更する。
【０１０８】
正記憶システム１００Ａは、指示されたグループ番号Ａのグループ情報６００の相手記憶システムに対して、正記憶システム１００Ａを示す正記憶システム番号Ａ、グループ番号Ａのグループ情報６００の相手グループ番号Ｂ、正論理ボリューム番号Ａ、および副論理ボリューム番号Ｂを通知し、ペア登録を命令する。副記憶システム１００Ｂは、ペア情報５００から未使用のペア番号を取得し、ペア状態を“コピー未”に、正記憶システム番号に通知された正記憶システム番号Ａを、正論理ボリューム番号に通知された正論理ボリューム番号Ａを、副記憶システム番号に副記憶システム番号Ｂを、副論理ボリューム番号に通知された副論理ボリューム番号Ｂを、グループ番号に通知されたグループ番号Ｂを設定する。さらに、副記憶システム１００Ｂは、指示されたグループ番号Ｂのグループ情報６００のペア集合に前記取得したペア番号を追加し、副論理ボリューム番号Ｂのボリューム状態を“副”に変更する。
【０１０９】
次に、ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、非同期データ複製対象を示す情報とデータ複製先を示す情報を指定し、ペア登録指示を副記憶システム１００Ｂに行う。データ複製対象を示す情報は、データ複製対象のグループ番号Ｄと論理ボリューム番号Ｂである。データ複製先を示す情報は、複製データを格納する副記憶システム１００Ｃ内の副論理ボリューム番号Ｃである。
【０１１０】
前記ペア登録指示を受けて、副記憶システム１００Ｂは、ペア情報５００からペア状態が“未使用”のペア番号を取得し、ペア状態を“正常”に、正記憶システム番号に副記憶システム１００Ｂを示す記憶システム番号Ｂを、論理ボリューム番号に指示された論理ボリューム番号Ｂを、副記憶システム番号にグループ情報６００のグループ番号Ｄの相手記憶システム番号を、副論理ボリューム番号に指示された副論理ボリューム番号Ｃを、グループ番号に指示されたグループ番号Ｄを設定する。指示されたグループ番号Ｄのグループ情報６００のペア集合に前記取得したペア番号を追加し、論理ボリューム番号Ｂのボリューム状態を“副”から“正副”に変更する。
【０１１１】
さらに、副記憶システム１００Ｂは、指示されたグループ番号Ｄのグループ情報６００の相手記憶システムに対して、副記憶システム１００Ｂを示す正記憶システム番号Ｂ、グループ番号Ｄのグループ情報６００の相手グループ番号Ｃ、正論理ボリューム番号Ｂ、および副論理ボリューム番号Ｃを通知し、ペア登録を命令する。副記憶システム１００Ｃは、ペア情報５００から未使用のペア番号を取得し、ペア状態を“正常”に、正記憶システム番号に通知された正記憶システム番号Ｂを、正論理ボリューム番号に通知された正論理ボリューム番号Ｂを、副記憶システム番号に副記憶システム番号Ｃを、副論理ボリューム番号に通知された副論理ボリューム番号Ｃを、グループ番号に通知されたグループ番号Ｄを設定する。さらに、副記憶システム１００Ｃは、指示されたグループ番号Ｃのグループ情報６００のペア集合に前記取得したペア番号を追加し、副論理ボリューム番号Ｃのボリューム状態を“副”に変更する。
【０１１２】
以上の動作を全てのデータ複製対象のペアに対して行う。前記説明では、論理ボリュームのグループへの登録と、論理ボリュームのペアの設定とを同時に行う処理について説明したが、それぞれ個別に行ってもよい。
【０１１３】
（３）ジャーナル論理ボリューム登録について説明する（Ｓ１９２０）。ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、ジャーナルの格納に使用するジャーナル論理ボリュームをグループに登録する指示（ジャーナル論理ボリューム登録指示）を正記憶システム１００Ａに行う。ジャーナル論理ボリューム登録指示は、グループ番号と論理ボリューム番号からなる。
【０１１４】
正記憶システム１００Ａは、指示されたグループ番号のグループ情報６００のジャーナル論理ボリューム番号に指示された論理ボリューム番号を登録する。さらに、当該論理ボリュームのボリューム情報４００のボリューム状態を“正常”に設定する。
【０１１５】
同様に、副記憶システム１００Ｂのグループに対してもジャーナル論理ボリュームの登録を行う。ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、副記憶システム１００Ｂのボリューム情報４００を参照し、副記憶システム１００Ｂ、グループ番号Ｂ、ジャーナル論理ボリュームとして使用する論理ボリューム番号を指定して、ジャーナル論理ボリューム登録を正記憶システム１００Ａに行う。正記憶システム１００Ａは、ジャーナル論理ボリューム登録指示を副記憶システム１００Ｂに転送する。副記憶システム１００Ｂは、指示されたグループ番号Ｂのグループ情報６００のジャーナル論理ボリューム番号に指示された論理ボリューム番号を登録する。さらに当該論理ボリュームのボリューム情報４００のボリューム状態を“正常”に設定する。
【０１１６】
ユーザは、副記憶システム１００Ｂの保守端末あるいは副記憶システム１００Ｂに接続したホストコンピュータ１８０（１８０Ｂ）を使用して、グループ番号とジャーナル論理ボリュームとして使用する論理ボリューム番号を指定し、ジャーナル論理ボリューム登録指示を副記憶システム１００Ｂに行ってもよい。
【０１１７】
同様に、副記憶システム１００Ｃのグループに対してもジャーナル論理ボリュームの登録を行う。以上の動作をすべてのジャーナル論理ボリュームとして使用する論理ボリュームに対して行う。Ｓ１９１０とＳ１９２０の手順は逆でもよい。
【０１１８】
（４）データ複製開始処理について説明する（Ｓ１９３０）。ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、非同期データ複製処理を開始するグループ番号Ｄを指定し、非同期データ複製処理の開始を副記憶システム１００Ｂに指示する。副記憶システム１００Ｂは、グループ番号Ｄのグループ情報６００の相手記憶システムである副記憶システム１００Ｃに対し、グループ番号Ｃのグループ情報６００における相手グループ番号のグループ状態を“正常”に変更することと、後述するジャーナルリード処理２４０およびリストア処理２５０の開始を指示する。
【０１１９】
次に、ユーザは、保守端末あるいはホストコンピュータ１８０を使用して、同期データ複製処理を開始するグループ番号Ａを指定し、データ複製処理の開始を正記憶システム１００Ａに指示する。正記憶システム１００Ａは、グループＡに属するすべてのペア情報５００のコピー済みアドレスを０に設定する。正記憶システム１００Ａは、グループ番号Ａのグループ情報６００の相手記憶システムである副記憶システム１００Ｂに対し、グループ番号Ｂのグループ情報６００における相手グループ番号のグループ状態を“正常”に変更することを指示する。正記憶システム１００Ａは、グループ番号Ａのグループ情報６００におけるグループ状態を“正常”に変更し、後述する初期コピー処理を開始する。
【０１２０】
（５）初期コピー処理終了後の処理について説明する（Ｓ１９４０）。初期コピー処理が終了すると、正記憶システム１００Ａは、初期コピー処理の終了を副記憶システム１００Ｂに通知する。副記憶システム１００Ｂは、グループＢに属するすべての副論理ボリュームのペア状態を“正常”に変更する。
【０１２１】
＜初期コピー処理の動作＞
図２０は、初期コピー処理の手順について示すフローチャートである。初期コピー処理は、同期データ複製対象の正論理ボリュームの全記憶領域に対し、ペア情報５００のコピー済みアドレスを用いて、記憶領域の先頭から順に、単位サイズ毎にジャーナルを作成する。コピー済みアドレスは、初期値は０であり、ジャーナルの作成毎に、作成したデータ量を加算する。論理ボリュームの記憶領域の先頭から、コピー済みアドレスの一つ前までは、初期コピー処理においてジャーナルは作成済みである。初期コピー処理を行うことにより、正論理ボリュームの更新されていないデータを副論理ボリュームに転送することが可能となる。以下の説明では、正記憶システム１００Ａ内のホストアダプタＡが処理を行うように記載しているが、ディスクアダプタ１２０が処理を行ってもよい。以下（１）〜（５）で動作について説明する。
【０１２２】
（１）正記憶システム１００Ａ内のホストアダプタＡは、処理対象の同期データ複製のグループＡに属するペアでペア状態が“コピー未”である正論理ボリュームＡを取得し、ペアの状態を“コピー中”に変更して、以下の処理を繰り返す（ステップＳ２０１０，Ｓ２０２０）。正論理ボリュームＡが存在しない場合は、処理を終了する（Ｓ２０３０）。
【０１２３】
（２）Ｓ２０２０において、正論理ボリュームＡが存在した場合、ホストアダプタＡは、単位サイズ（例えば、１ＭＢ）のデータを対象にジャーナルを作成する。ジャーナル作成処理については後述する（Ｓ２０４０）。
【０１２４】
（３）ホストアダプタＡは、正論理ボリュームＡの同期ペアである副論理ボリュームのデータを更新するために、同期ペアである副論理ボリュームを保持する副記憶システムＢ（１００Ｂ）にリモートライト命令を送信する。リモートライト命令は、ライト命令、論理アドレス（論理ボリュームは同期ペア番号の副論理ボリュームＢ、論理ボリューム内位置はコピー済みアドレス）、データ量（単位サイズ）、Ｓ２０４０で使用した更新番号を含んでいる。なお、更新番号の代わりにジャーナルを作成した時刻でもよい（Ｓ２０４５）。リモートライト命令を受信した場合の副記憶システムＢ（１００Ｂ）の動作は後述する命令受信処理２１０において説明する。
【０１２５】
（４）ホストアダプタＡは、リモートライト命令の応答を受信後、コピー済みアドレスに作成したジャーナルのデータサイズを加算する（Ｓ２０５０）。
【０１２６】
（５）コピー済みアドレスが、正論理ボリュームＡの容量に達するまで、上記処理を繰り返す（Ｓ２０６０）。コピー済みアドレスが、正論理ボリュームＡの容量と等しくなった場合、ペア状態を“正常”に更新し、他の正論理ボリュームの処理を開始する（Ｓ２０７０）。
【０１２７】
上記フローでは、論理ボリュームを一つずつ対象として処理するように説明したが、複数の論理ボリュームを同時に処理してもよい。
【０１２８】
＜命令受信処理の動作＞
図２１は、命令受信処理２１０を説明する図であり、図２２は、命令受信処理２１０のフローチャートを示す。図２３は、ジャーナル作成処理のフローチャートを、図２４は、リモートライト命令受信処理のフローチャートを、図２５は、ジャーナル複製処理のフローチャートを、図２６は、リモートライト命令受信処理について説明する図をそれぞれ示す。これらの図を用いて、以下（１）〜（７）で、正記憶システム１００Ａが、ホストコンピュータ１８０からデータ複製対象の論理ボリューム２３０に対するライト命令を受信した場合の動作について説明する。
【０１２９】
（１）正記憶システム１００Ａ内のホストアダプタＡは、ホストコンピュータ１８０からアクセス命令を受信する。アクセス命令は、リード、ライト、後述するジャーナルリード等の命令、命令対象の論理アドレス、データ量等を含んでいる。以下、アクセス命令内における論理アドレスを論理アドレスＡ、論理ボリュームを論理ボリュームＡ、論理ボリューム内位置を論理ボリューム内位置Ａ、データ量をデータ量Ａとする（図２２のステップＳ２２００）。
【０１３０】
（２）ホストアダプタＡは、アクセス命令を判断する（Ｓ２２１０，Ｓ２２１５，Ｓ２２２５）。Ｓ２２１５の判断で、アクセス命令がジャーナルリード命令の場合は、後述するジャーナルリード受信処理を行う（Ｓ２９００）。アクセス命令がリモートライト命令の場合は、後述するリモートライト命令受信処理を行う（Ｓ２４００）。それら以外の命令、例えば、リード命令の場合は、従来のリード処理を行う（Ｓ２２３０）。
【０１３１】
（３）Ｓ２２１０の判断で、アクセス命令がライト命令の場合は、論理ボリュームＡのボリューム情報４００を参照し、ボリューム状態を調べる（Ｓ２２４０）。Ｓ２２４０の判断で、論理ボリュームＡのボリューム状態が、“正常”もしくは“正”以外の場合は、論理ボリュームＡへのアクセスは不可能なため、ホストコンピュータ１８０に異常終了を報告する（Ｓ２２４５）。
【０１３２】
（４）Ｓ２２４０の判断で、論理ボリュームＡのボリューム状態が、“正常”、“正”のいずれかの場合は、ホストアダプタＡは、キャッシュメモリ１３０を確保し、ホストコンピュータ１８０にデータ受信の準備ができたことを通知する。ホストコンピュータ１８０は、その通知を受け、ライトデータを正記憶システム１００Ａに送信する。ホストアダプタＡは、ライトデータを受信し、当該キャッシュメモリ１３０に格納する（Ｓ２２５０、図２１の２１００）。
【０１３３】
（５）ホストアダプタＡは、論理ボリュームＡのボリューム情報４００、ペア情報５００、グループ情報６００を参照し、論理ボリュームＡが同期データ複製対象かを調べる（Ｓ２２６０）。Ｓ２２６０の判断で、論理ボリュームＡのボリューム状態が“正”かつ、論理ボリュームＡの同期ペア番号のペアのペア状態が“正常”かつ、当該ペアが属するグループのグループ状態が“正常”である場合は、後述するジャーナル作成処理を行う（Ｓ２３００）。
【０１３４】
（６）ホストアダプタＡは、ジャーナル作成処理の結果が成功およびジャーナル作成不要の場合、同期ペア番号のペアの副記憶システム１００Ｂに、ホストコンピュータ１８０から受信したライトデータを格納するリモートライト命令を送信する（図２１の２１８０，２１８５）。リモートライト命令は、ライト命令、論理アドレス（論理ボリューム番号は同期ペア番号のペアの副論理ボリュームＢ、論理ボリューム内位置は論理ボリューム内位置Ａ）、データ量Ａ、Ｓ２３００で使用した更新番号を含んでいる。なお、更新番号の代わりにホストコンピュータ１８０からライト命令を受信した時刻（更新時刻）でもよい。Ｓ２３００のジャーナル作成処理が成功しなかった場合は、更新番号に無効を示す数値“０”を設定する。
【０１３５】
（７）Ｓ２２６０もしくは、Ｓ２２６５のリモートライト命令の応答を受信した後、ホストアダプタＡは、ディスクアダプタ１２０にライトデータを論理アドレスＡに対応する記憶装置１５０の記憶領域に書き込むことを命令し（図２１の２１６０）、ホストコンピュータ１８０に終了報告する（Ｓ２２７０，Ｓ２２８０）。その後、当該ディスクアダプタ１２０は、リードライト処理により、前記記憶領域にライトデータを格納する（図２１の２１７０）。
【０１３６】
＜ジャーナル作成処理の動作＞
次に、ジャーナル作成処理（Ｓ２５００）について説明する（図２３）。
【０１３７】
（１）ホストアダプタＡは、ジャーナル論理ボリュームのボリューム状態を調べる（ステップＳ２３１０）。Ｓ２３１０の判断で、ジャーナル論理ボリュームのボリューム状態が“異常”の場合は、ジャーナル論理ボリュームにジャーナルの格納が不可能なため、グループ状態を“異常”に変更し、処理を終了する（Ｓ２３１５）。この場合、ジャーナル論理ボリュームを正常な論理ボリュームに変更する等を行う。
【０１３８】
（２）Ｓ２３１０の判断で、ジャーナル論理ボリュームが正常である場合、ジャーナル作成処理を継続する。ジャーナル作成処理は、初期コピー処理内の処理であるか、命令受信処理内の処理であるかによって処理が異なる（Ｓ２３２０）。ジャーナル作成処理が命令受信処理内の処理の場合は、Ｓ２３３０からの処理を行う。ジャーナル作成処理が初期コピー処理内の場合は、Ｓ２３７０からの処理を行う。
【０１３９】
（３）ジャーナル作成処理が命令受信処理内の処理の場合、ホストアダプタＡは、ライト対象の論理アドレスＡが、初期コピー処理の処理対象となったかを調べる（Ｓ２３３０）。論理ボリュームＡのペア状態が“コピー未”の場合は、後に初期コピー処理においてジャーナル作成処理が行われるため、ジャーナルを作成せずに、ジャーナル作成不要として処理を終了する（Ｓ２３３５）。論理ボリュームＡのペア状態が“コピー中”の場合は、コピー済みアドレスが論理アドレス内位置Ａと等しいもしくは小さい場合は、後に初期コピー処理においてジャーナル作成処理が行われるため、ジャーナルを作成せずに、ジャーナル作成不要として処理を終了する（Ｓ２３３５）。上記以外、つまり、論理ボリュームＡのペア状態が“コピー中”かつコピー済みアドレスが論理アドレス内位置Ａより大きい場合もしくは論理ボリュームＡのペア状態が“正常”の場合は、既に初期コピー処理が完了しているため、ジャーナル作成処理を継続する。
【０１４０】
（４）次に、ホストアダプタＡは、ジャーナルがジャーナル論理ボリュームに格納可能であるかを調べる。ポインタ情報７００を用い、更新情報領域の未使用領域の有無を調べる（Ｓ２３４０）。ポインタ情報７００の更新情報最新アドレスと更新情報最古アドレスが等しい場合は、更新情報領域に未使用領域が存在しないため、ジャーナル作成失敗として処理を終了する（Ｓ２３９０）。
【０１４１】
Ｓ２３４０の判断で、更新情報領域に未使用領域が存在する場合は、ポインタ情報７００を用い、ライトデータ領域にライトデータが格納できるかを調べる（Ｓ２３４５）。ライトデータ最古アドレスが、ライトデータ最新アドレスとライトデータ最新アドレスにデータ量Ａを足した数値の範囲にある場合、当該ライトデータをライトデータ領域に格納できないため、ジャーナル作成失敗として処理を終了する（Ｓ２３９０）。
【０１４２】
（５）ジャーナルが格納可能である場合、ホストアダプタＡは、更新番号と更新情報３００を格納する論理アドレスとライトデータを格納する論理アドレスを取得し、更新情報３００をキャッシュメモリ１３０内に作成する。更新番号は、対象グループのグループ情報６００から取得し、１を足した数値をグループ情報６００の更新番号に設定する。更新情報３００を格納する論理アドレスは、ポインタ情報７００の更新情報最新アドレスであり、更新情報３００のサイズを足した数値をポインタ情報７００の更新情報最新アドレスに設定する。ライトデータを格納する論理アドレスは、ポインタ情報７００のライトデータ最新アドレスであり、ライトデータ最新アドレスにデータ量Ａを足した数値をポインタ情報７００のライトデータ最新アドレスに設定する。
【０１４３】
ホストアダプタＡは、上記取得した数値とグループ番号、ライト命令を受信した時刻（更新時刻）、ライト命令内の論理アドレスＡ、データ量Ａを更新情報３００に設定する（Ｓ２３５０、図２１の２１２０）。例えば、前記図１２に示すグループ情報６００、前記図１５に示すポインタ情報７００の状態で、グループ１に属する正論理ボリューム＃１（論理ボリューム番号１の論理ボリューム）の記憶領域の先頭から８００の位置にデータサイズ１００のライト命令を受信した場合、図２７に示す更新情報３００を作成する。グループ情報６００の更新番号は６、ポインタ情報７００の更新情報最新アドレスは３００（更新情報３００のサイズは５０とする）、ライトデータ最新アドレスは２３００となる。
【０１４４】
（６）ホストアダプタＡは、ディスクアダプタ１２０に、ジャーナルの更新情報３００とライトデータを記憶装置１５０に書き込むことを命令し、正常終了する（Ｓ２３６０、図２１の２１３０，２１４０，２１５０）。
【０１４５】
（７）ジャーナル作成処理が、初期コピー処理内の処理の場合は、Ｓ２３７０からの処理を行う。ホストアダプタＡは、ジャーナルが作成可能であるかを調べる。ポインタ情報７００を用い、更新情報領域の未使用領域の有無を調べる（Ｓ２３７０）。ポインタ情報７００の更新情報最新アドレスと更新情報最古アドレスが等しい場合は、更新情報領域に未使用領域が存在しないため、ジャーナル作成失敗として処理を終了する（Ｓ２３９０）。本実施の形態で示した初期コピー処理の場合、ジャーナルのライトデータは、正論理ボリュームからリードし、ライトデータ領域は使用しないため、ライトデータ領域の未使用領域の確認は不要である。
【０１４６】
（８）Ｓ２３７０の判断で、ジャーナルが作成可能である場合、ホストアダプタＡは、更新情報３００をキャッシュメモリ１３０内に作成する。更新情報３００のライト命令を受信した時刻（更新時刻）は、更新番号を取得した時刻を設定する。グループ番号は、論理ボリュームの同期ペア番号が属するグループ番号を設定する。更新番号は、グループ情報６００から取得し、１を足した数値をグループ情報６００の更新番号に設定する。ライト命令の論理アドレスとライドデータを格納したジャーナル論理ボリュームの論理アドレスは、初期コピー処理対象の論理アドレス（ペア情報５００のコピー済みアドレス）を設定する。ライトデータのデータサイズは、初期コピー処理の単位サイズを設定する。更新情報３００を格納する論理アドレスは、ポインタ情報７００の更新情報最新アドレスの位置であり、更新情報３００のサイズを足した数値をポインタ情報７００の更新情報最新アドレスに設定する（Ｓ２３８０、図２１の２１２０）。
【０１４７】
（９）ホストアダプタＡは、ディスクアダプタ１２０に、更新情報３００を記憶装置１５０に書き込むことを命令し、正常終了する（Ｓ２３８５、図２１の２１４０，２１５０）。
【０１４８】
上記説明では、更新情報３００をキャッシュメモリ１３０内に存在するように記載しているが、共有メモリ１４０内等に格納してもよい。
【０１４９】
ライトデータの記憶装置１５０への書き込みは、非同期、つまり、Ｓ２３６０およびＳ２３８５の直後でなくともよい。ただし、ホストコンピュータ１８０が、論理アドレスＡにライト命令を再び行い、キャッシュメモリ１３０内に保持するジャーナルのライトデータが上書きされる場合、ホストコンピュータ１８０からライトデータを受信する前に、記憶装置１５０に書き込む必要がある。もしくは、前記ライトデータを別のキャッシュメモリに退避させ、この退避させたキャッシュメモリの位置を更新情報３００に記憶し、後に更新情報３００のジャーナル論理ボリュームの論理アドレスに対応する記憶装置１５０に書き込みを行ってもよい。
【０１５０】
前述したジャーナル作成処理では、ジャーナルを記憶装置１５０に格納するとしていたが、ジャーナル用にあらかじめ一定量のキャッシュメモリをキャッシュメモリ１３０に用意しておき、当該キャッシュメモリをすべて使用してから記憶装置１５０にジャーナルを格納するようにしてもよい。ジャーナル用のキャッシュメモリ量については、例えば保守端末から指定する。
【０１５１】
＜リモートライト命令受信処理の動作＞
次に、副記憶システム１００ＢのホストアダプタＢが、正記憶システム１００Ａからリモートライト命令を受信した場合の処理（リモートライト命令受信処理）について説明する（図２４）。リモートライト命令は、ライト命令、論理アドレス（副論理ボリュームＢ、論理ボリューム内位置Ａ）、データ量Ａ、更新番号を含んでいる。
【０１５２】
（１）副記憶システム１００Ｂ内のホストアダプタＢは、論理ボリュームＢのボリューム情報４００を参照し、副論理ボリュームＢのボリューム状態を調べる（ステップＳ２４１０）。Ｓ２４１０の判断で、論理ボリュームＢのボリューム状態が“副”、“正副”以外の場合は、論理ボリュームＢへのアクセスは不可能なため、正記憶システム１００Ａに異常終了を報告する（Ｓ２４１５）。
【０１５３】
（２）Ｓ２４１０の判断で、論理ボリュームＢのボリューム状態が“副”もしくは“正副”の場合は、ホストアダプタＢは、キャッシュメモリ１３０を確保し、正記憶システム１００Ａにデータ受信の準備ができたことを通知する。正記憶システム１００Ａは、その通知を受け、ライトデータを副記憶システム１００Ｂに送信する。ホストアダプタＢは、ライトデータを受信し、当該キャッシュメモリ１３０に格納する（Ｓ２４２０、図２６の２６１０）。
【０１５４】
（３）リモートライト命令に含まれる更新番号を調べ、無効値“０”の場合は、正記憶システム１００Ａにおいてジャーナルが作成されていないため、Ｓ２５００のジャーナル複製処理を行わない（Ｓ２４３０）。
【０１５５】
（４）リモートライト命令に含まれる更新番号を調べ、有効値（“０”以外）の場合は、ジャーナル論理ボリュームのボリューム状態を調べる。ジャーナル論理ボリュームのボリューム状態が“異常”の場合は、ジャーナル論理ボリュームにジャーナルの格納が不可能なため、Ｓ２５００のジャーナル複製処理を行わない（Ｓ２４４０）。
【０１５６】
（５）Ｓ２４４０の判断で、ジャーナル論理ボリュームのボリューム状態が“正常”の場合は、後述するジャーナル複製処理（Ｓ２５００）を行う。
【０１５７】
（６）ホストアダプタＢは、ディスクアダプタ１２０にライトデータをリモートライト命令の論理アドレスに対応する記憶装置１５０の記憶領域に書き込むことを命令し、正記憶システムＡ（１００Ａ）に終了報告する（Ｓ２４６０，Ｓ２４７０、図２６の２６５０）。その後、当該ディスクアダプタ１２０は、リードライト処理により、前記憶領域にライトデータを格納する（図２６の２６６０）。
【０１５８】
＜ジャーナル複製処理の動作＞
次に、ジャーナル複製処理（Ｓ２５００）について説明する（図２５）。
【０１５９】
（１）ホストアダプタＢは、ジャーナルがジャーナル論理ボリュームに格納可能であるかを調べる。ポインタ情報７００を用い、更新情報領域の未使用領域の有無を調べる（ステップＳ２５１０）。ポインタ情報７００の更新情報最新アドレスと更新情報最古アドレスが等しい場合は、更新情報領域に未使用領域が存在しないため、最古のジャーナルの記憶領域を開放し、更新情報領域を確保する（Ｓ２５１５）。次に、ポインタ情報７００を用い、ライトデータ領域にライトデータが格納できるかを調べる（Ｓ２５２０）。ライトデータ最古アドレスが、ライトデータ最新アドレスとライトデータ最新アドレスにデータ量Ａを足した数値の範囲にある場合、当該ライトデータをライトデータ領域に格納できないため、最古のジャーナルからジャーナルの記憶領域を開放し、ライトデータを格納できるようにする（Ｓ２５２５）。
【０１６０】
（２）ホストアダプタＢは、更新情報３００をキャッシュメモリ１３０内に作成する。更新情報３００におけるライト命令を受信した時刻（更新時刻）は、リモートライト命令内の更新時刻を設定する。グループ番号は、論理ボリュームＢの同期ペア番号のペアが属するグループのグループ番号を設定する。更新番号は、リモートライト命令内の更新番号を設定する。ライト命令の論理アドレスは、リモートライト命令内の論理アドレスを設定する。ライトデータのデータサイズは、リモートライト命令内のデータ量Ａを設定する。ライドデータを格納したジャーナル論理ボリュームの論理アドレスは、ポインタ情報７００のライトデータ最新アドレスであり、ライトデータ最新アドレスにライトデータのサイズを足した数値をポインタ情報７００のライトデータ最新アドレスに設定する。更新情報３００を格納する論理アドレスは、ポインタ情報７００の更新情報最新アドレスであり、更新情報３００のサイズを足した数値をポインタ情報７００の更新情報最新アドレスに設定する（Ｓ２５３０、図２６の２６２０）。
【０１６１】
（３）ホストアダプタＢは、ディスクアダプタ１２０に、更新情報３００とライトデータを記憶装置１５０に書き込むことを命令し、ジャーナル作成成功として処理を終了する（Ｓ２５４０、図２６の２６３０）。その後、ディスクアダプタ１２０は、リードライト処理２２０により、記憶装置１５０に更新情報３００とライトデータを書き込み、キャッシュメモリ１３０を開放する（図２６の２６４０，２６６０）。
【０１６２】
このように、本実施の形態のデータ処理システムでは、副記憶システム１００Ｂは、古いジャーナルの記憶領域を開放しつつ、常に新しい複数のジャーナルを保持する。
【０１６３】
リードライト処理２２０は、ディスクアダプタ１２０が、ホストアダプタ１１０もしくはディスクアダプタ１２０から命令を受けて実施する処理である。実施する処理は、指定されたキャッシュメモリ１３０のデータを指定された論理アドレスに対応する記憶装置１５０内の記憶領域に書き込む処理、指定された論理アドレスに対応する記憶装置１５０内の記憶領域から指定されたキャッシュメモリ１３０にデータを読み込む処理等である。
【０１６４】
＜ジャーナルリード受信処理の動作＞
図２８は、ジャーナルリード命令を受信した副記憶システム１００ＢのホストアダプタＢの動作（ジャーナルリード受信処理）を説明する図であり、図２９は、それに対応するフローチャートである。これらを用いて、以下（１）〜（８）で、副記憶システム１００Ｂが副記憶システム１００Ｃからジャーナルリード命令を受信した場合の動作について説明する。
【０１６５】
（１）副記憶システム１００Ｂ内のホストアダプタＢは、副記憶システム１００Ｃからアクセス命令を受信する。アクセス命令は、ジャーナルリード命令であることを示す識別子、命令対象のグループ番号、リトライ指示の有無を含んでいる。以下、アクセス命令内のグループ番号をグループ番号Ｄとする（ステップＳ２９００、図２８の２８１０）。
【０１６６】
（２）ホストアダプタＢは、グループ番号Ｄのグループ状態が“正常”であるかを調べる（Ｓ２９１０）。Ｓ２９１０の判断で、グループ状態が“正常”以外、例えば“異常”の場合は、副記憶システム１００Ｃにグループ状態を通知し、処理を終了する。副記憶システム１００Ｃは、受信したグループ状態に応じて処理を行う。例えば、グループ状態が“異常”の場合は、ジャーナルリード処理を終了する（Ｓ２９１５）。
【０１６７】
（３）Ｓ２９１０の判断で、グループ番号Ｄのグループ状態が“正常”の場合、ホストアダプタＢは、ジャーナル論理ボリュームの状態を調べる（Ｓ２９２０）。Ｓ２９２０の判断で、ジャーナル論理ボリュームのボリューム状態が“正常”でない場合、例えば“異常”の場合は、グループ状態を“異常”に変更し、副記憶システム１００Ｃにグループ状態を通知し、処理を終了する。副記憶システム１００Ｃは、受信したグループ状態に応じて処理を行う。例えば、グループ状態が“異常”の場合は、ジャーナルリード処理を終了する（Ｓ２９２５）。
【０１６８】
（４）Ｓ２９２０の判断で、ジャーナル論理ボリュームのボリューム状態が“正常”の場合は、ジャーナルリード命令がリトライ指示かを調べる（Ｓ２９３０）。
【０１６９】
（５）Ｓ２９３０の判断で、ジャーナルリード命令がリトライ指示の場合、ホストアダプタＢは、前回送信したジャーナルを再度、副記憶システム１００Ｃに送信する。ホストアダプタＢは、キャッシュメモリ１３０を確保し、ディスクアダプタ１２０に、ポインタ情報７００のリトライ開始アドレスから、更新情報３００のサイズの情報をキャッシュメモリに読み込むことを命令する（図２８の２８２０）。
【０１７０】
ディスクアダプタのリードライト処理２２０は、記憶装置１５０から更新情報３００を読み込んでキャッシュメモリ１３０に格納し、ホストアダプタＢに通知する（図２８の２８３０）。
【０１７１】
ホストアダプタＢは、更新情報３００のリード終了の通知を受け、更新情報３００から、ライトデータの論理アドレスおよびライトデータのサイズを取得し、キャッシュメモリ１３０を確保し、ディスクアダプタ１２０にライトデータをキャッシュメモリに読み込むことを命令する（Ｓ２９４０、図２８の２８４０）。
【０１７２】
ディスクアダプタのリードライト処理２２０は、記憶装置１５０からライトデータを読み込んでキャッシュメモリ１３０に格納し、ホストアダプタＢに通知する（図２８の２８５０）。
【０１７３】
ホストアダプタＢは、ライトデータのリード終了の通知を受けて、更新情報３００とライトデータを副記憶システム１００Ｃに送信し、ジャーナルを保持しているキャッシュメモリ１３０を開放して、処理を終了する（Ｓ２９４５、図２８の２８６０）。
【０１７４】
（６）Ｓ２９３０の判断で、リトライ指示でない場合、ホストアダプタＢは、送信していないジャーナルが存在するかを調べ、存在すれば、ジャーナルを副記憶システム１００Ｃに送信する。ホストアダプタＢは、ポインタ情報７００のリード開始アドレスと更新情報最新アドレスを比較する（Ｓ２９５０）。
【０１７５】
リード開始アドレスが更新情報最新アドレスと等しい場合は、すべてのジャーナルを副記憶システム１００Ｃに送信済みであるため、副記憶システム１００Ｃに“ジャーナル無”の情報を送信し（Ｓ２９６０）、前回のジャーナルリード命令の時に副記憶システム１００Ｃに送信したジャーナルの記憶領域を開放する（Ｓ２９９０）。
【０１７６】
ジャーナルの記憶領域の開放処理は、ポインタ情報７００の更新情報最古アドレスに、リトライ開始アドレスを設定する。更新情報最古アドレスがライトデータ領域先頭アドレスとなった場合は、更新情報最古アドレスは０とする。ポインタ情報７００のライトデータ最古アドレスは、前回のジャーナルリード命令に応じて送信したライトデータのサイズを足した数値に変更する。ライトデータ最古アドレスが、ジャーナル論理ボリュームの容量以上の論理アドレスとなった場合は、ライトデータ領域先頭アドレスを減じ、補正する。
【０１７７】
（７）Ｓ２９５０の判断で、未送信のジャーナルが存在する場合、ホストアダプタＢは、キャッシュメモリ１３０を確保し、ディスクアダプタ１２０にポインタ情報７００のリード開始アドレスから、更新情報３００のサイズの情報をキャッシュメモリ１３０に読み込むことを命令する（図２８の２８２０）。
【０１７８】
ディスクアダプタのリードライト処理２２０は、記憶装置１５０から更新情報３００を読み込んでキャッシュメモリ１３０に格納し、ホストアダプタに通知する（図２８の２８３０）。
【０１７９】
ホストアダプタＢは、更新情報３００のリード終了の通知を受けて、更新情報３００から、ライトデータの論理アドレスおよびライトデータのサイズを取得し、キャッシュメモリ１３０を確保して、ディスクアダプタ１２０にライトデータをキャッシュメモリ１３０に読み込むことを命令する（Ｓ２９７０、図２８の２８４０）。
【０１８０】
ディスクアダプタのリードライト処理２２０は、記憶装置１５０からライトデータを読み込んでキャッシュメモリ１３０に格納し、ホストアダプタＢに通知する（図２８の２８５０）。
【０１８１】
ホストアダプタＢは、ライトデータのリード終了の通知を受けて、更新情報３００とライトデータを副記憶システム１００Ｃに送信し（Ｓ２９８０）、ジャーナルを保持しているキャッシュメモリ１３０を開放する（図２８の２８６０）。そして、ポインタ情報７００のリトライ開始アドレスにリード開始アドレスを設定し、リード開始アドレスに送信したジャーナルの更新情報３００のサイズを足した数値を設定する。
【０１８２】
（８）ホストアダプタＢは、前回のジャーナルリード命令の処理時に副記憶システム１００Ｃに送信したジャーナルの記憶領域を開放する（Ｓ２９９０）。
【０１８３】
上記ジャーナルリード受信処理では、副記憶システム１００Ｂは、ジャーナルを一つずつ副記憶システム１００Ｃに送信していたが、複数のジャーナルを同時に副記憶システム１００Ｃに送信するようにしてもよい。一つのジャーナルリード命令に対し送信するジャーナル数は、副記憶システム１００Ｃがジャーナルリード命令内に指定してもよいし、グループ登録の際等に、ユーザが副記憶システム１００Ｂ、副記憶システム１００Ｃに対し指定してもよい。さらに、副記憶システム１００Ｂと副記憶システム１００Ｃの接続パス２００の転送能力もしくは負荷等に応じて、動的に一つのジャーナルリード命令で送信するジャーナル数を変更するようにしてもよい。また、ジャーナル数ではなくジャーナルのライトデータのサイズを考慮してジャーナルの転送量を指定するようにしてもよい。
【０１８４】
上記ジャーナルリード受信処理では、ジャーナルを記憶装置１５０からキャッシュメモリ１３０に読み込んでいたが、ジャーナルがキャッシュメモリ１３０に存在する場合は、当該処理は不要である。
【０１８５】
上記ジャーナルリード受信処理内におけるジャーナルの記憶領域の開放処理は、次のリトライ指示でないジャーナルリード命令の処理時としたが、副記憶システム１００Ｃにジャーナルを送信した直後に開放してもよい。また、副記憶システム１００Ｃがジャーナルリード命令内に開放してよいジャーナルの更新番号を指示し、副記憶システム１００Ｂではその指示に従ってジャーナルの記憶領域を開放するようにしてもよい。
【０１８６】
＜ジャーナルリード処理の動作＞
図３０は、ジャーナルリード処理２４０を説明する図であり、図３１は、そのフローチャートを示す。図３２はジャーナル格納処理（Ｓ３２００）のフローチャートを示す。これらを用いて、以下（１）〜（６）で、副記憶システム１００ＣのホストアダプタＣが、副記憶システム１００Ｂからジャーナルを読み出し、ジャーナル論理ボリュームに格納する動作について説明する。
【０１８７】
（１）副記憶システム１００Ｃ内のホストアダプタＣは、グループ状態が“正常”かつ複製種類が“非同期”であれば、ジャーナルを格納するキャッシュメモリ１３０を確保し、ジャーナルリード命令であることを示す識別子、命令対象の副記憶システム１００Ｂのグループ番号、リトライ指示の有無、を含むアクセス命令を副記憶システム１００Ｂに送信する。以下、アクセス命令内のグループ番号をグループ番号Ｃとする（ステップＳ３１００、図３０の３０１０）。
【０１８８】
（２）ホストアダプタＣは、副記憶システム１００Ｂからの応答およびジャーナルを受信する（図３０の３０２０）。ホストアダプタＣは応答を調べ、応答が“ジャーナル無”の場合は、副記憶システム１００Ｂには指定したグループのジャーナルが存在しないため、一定時間後、副記憶システム１００Ｂにジャーナルリード命令を送信する（Ｓ３１２０，Ｓ３１２５）。
【０１８９】
（３）副記憶システム１００Ｂの応答が“グループ状態は異常”もしくは“グループ状態は未使用”の場合は、副記憶システム１００Ｃのグループ状態を、応答で受信したグループ状態に変更し、ジャーナルリード処理を終了する（Ｓ３１３０，Ｓ３１３５）。
【０１９０】
（４）副記憶システム１００Ｂの応答が上記以外、つまり正常終了の場合は、ジャーナル論理ボリュームのボリューム状態を調べる（Ｓ３１４０）。ジャーナル論理ボリュームのボリューム状態が“異常”の場合は、ジャーナル論理ボリュームにジャーナルの格納が不可能なため、グループ状態を“異常”に変更し、処理を終了する（Ｓ３１４５）。この場合、ジャーナル論理ボリュームを正常な論理ボリュームに変更する等を行い、グループの状態を正常に戻す。
【０１９１】
（５）Ｓ３１４０の判断で、ジャーナル論理ボリュームのボリューム状態が“正常”の場合は、後述するジャーナル格納処理（Ｓ３２００）を行う。ジャーナル格納処理（Ｓ３２００）が正常に終了した場合は（Ｓ３１５０−Ｙｅｓ）、次のジャーナルリード命令を送信する。もしくは、一定時間経過後、次のジャーナルリード命令を送信する（Ｓ３１００）。次のジャーナルリード命令を送信するタイミングは、一定の時間間隔で定期的に送信するものでもよく、受信したジャーナルの個数もしくは、接続パス２００の通信量、副記憶システム１００Ｃが保持しているジャーナルの容量、副記憶システム１００Ｃの負荷等によって決めてもよい。さらに、副記憶システム１００Ｂが保持しているジャーナルの容量もしくは副記憶システム１００Ｂのポインタ情報７００を副記憶システム１００Ｃから読み出し、その数値に基づいて決めてもよい。上記情報の転送は、専用の命令で行ってもよいし、ジャーナルリード命令の応答に含んでもよい。その後の処理は、Ｓ３１００以降と同じである。
【０１９２】
（６）Ｓ３２００のジャーナル格納処理が正常に終了しない場合は（Ｓ３１５０−Ｎｏ）、ジャーナル論理ボリュームの未使用領域が足りないため、受信したジャーナルを破棄し、一定時間後にリトライ指示のジャーナルリード命令を送信する（Ｓ３１５５）。もしくは、ジャーナルをキャッシュメモリ１３０に保持しておき、一定時間後に、再度ジャーナル格納処理を行う。これは、後述するリストア処理２５０が行われることにより、一定時間後には、ジャーナル論理ボリュームに未使用領域が増える可能性があるためである。この方式の場合は、ジャーナルリード命令にリトライ指示の有無は不要である。
【０１９３】
＜ジャーナル格納処理の動作＞
次に、ジャーナル格納処理（Ｓ３２００）について説明する（図３２）。
【０１９４】
（１）ホストアダプタＣは、ジャーナルがジャーナル論理ボリュームに格納可能であるかを調べる。ポインタ情報７００を用い、更新情報領域に未使用領域の有無を調べる（ステップＳ３２１０）。ポインタ情報７００の更新情報最新アドレスと更新情報最古アドレスが等しい場合は、更新情報領域に未使用領域が存在しないため、ジャーナル作成失敗として処理を終了する（Ｓ３２２０）。
【０１９５】
（２）Ｓ３２１０の判断で、更新情報領域に未使用領域が存在する場合は、ポインタ情報７００を用い、ライトデータ領域にライトデータが格納できるかを調べる（Ｓ３２３０）。ライトデータ最古アドレスが、ライトデータ最新アドレスとライトデータ最新アドレスにデータ量Ａを足した数値の範囲にある場合、ライトデータ領域にライトデータを格納できないため、ジャーナル作成失敗として処理を終了する（Ｓ３２２０）。
【０１９６】
（３）ジャーナルが格納可能である場合、ホストアダプタＣは、受信した更新情報３００のグループ番号とライトデータを格納したジャーナル論理ボリュームの論理アドレスを変更する。グループ番号は、副記憶システム１００Ｃのグループ番号に変更し、ジャーナル論理ボリュームの論理アドレスはポインタ情報７００のライトデータ最新アドレスに変更する。さらに、ホストアダプタＣは、ポインタ情報７００の更新情報最新アドレスを更新情報最新アドレスに更新情報３００のサイズを足した数値に、ライトデータ最新アドレスをライトデータ最新アドレスにライトデータのサイズを足した数値に変更する。さらに、ホストアダプタＣは、グループ情報６００の更新番号を受信した更新情報３００の更新番号に変更する（Ｓ３２４０）。
【０１９７】
（４）ホストアダプタＣは、ディスクアダプタ１２０に、更新情報３００とライトデータを記憶装置１５０に書き込むことを命令し、ジャーナル作成成功として処理を終了する（Ｓ３２５０、図３０の３０３０）。その後、ディスクアダプタ１２０は、リードライト処理２２０により、記憶装置１５０に更新情報３００とライトデータを書き込み、キャッシュメモリ１３０を開放する（図３０の３０４０）。
【０１９８】
上記ジャーナル格納処理では、ジャーナルを記憶装置１５０に格納するとしていたが、ジャーナル用にあらかじめ一定量のキャッシュメモリ１３０を用意しておき、当該キャッシュメモリをすべて使用してから、記憶装置１５０にジャーナルを格納するようにしてもよい。ジャーナル用のキャッシュメモリ量は、例えば保守端末から指定する。
【０１９９】
＜リストア処理の動作＞
図３３は、リストア処理２５０を説明する図であり、図３４は、そのフローチャートである。これらを用いて、以下（１）〜（６）で、副記憶システム１００ＣのホストアダプタＣが、リストア処理２５０として、ジャーナルを利用してデータの更新を行う動作について説明する。リストア処理２５０は副記憶システム１００Ｃのディスクアダプタ１２０が処理を行ってもよい。
【０２００】
（１）ホストアダプタＣは、グループ番号Ｃのグループ状態が“正常”もしくは“停止”であるかを調べる（ステップＳ３４１０）。Ｓ３４１０の判断で、グループ状態が“正常”および“停止”以外、例えば“異常”の場合は、リストア処理を終了する（Ｓ３４１５）。
【０２０１】
（２）Ｓ３４１０の判断で、グループ状態が“正常”もしくは“停止”の場合は、ジャーナル論理ボリュームのボリューム状態を調べる（Ｓ３４２０）。Ｓ３４２０の判断で、ジャーナル論理ボリュームのボリューム状態が“異常”の場合は、アクセス不可能なため、グループ状態を“異常”に変更し、処理を終了する（Ｓ３４２５）。
【０２０２】
（３）Ｓ３４２０の判断で、ジャーナル論理ボリュームのボリューム状態が“正常”の場合は、リストア処理対象のジャーナルが存在するかを調べる。ホストアダプタＣは、ポインタ情報７００の更新情報最古アドレスと更新情報最新アドレスを取得する。更新情報最古アドレスと更新情報最新アドレスが等しい場合、ジャーナルは存在しないため、リストア処理は一旦終了し、一定時間後、リストア処理を再開する（Ｓ３４３０）。
【０２０３】
（４）Ｓ３４３０の判断で、リストア処理対象のジャーナルが存在する場合、最古（最小）の更新番号を持つジャーナルに対して次の処理を行う。最古（最小）の更新番号を持つジャーナルの更新情報３００は、ポインタ情報７００の更新情報最古アドレスから格納されている。ホストアダプタＣは、キャッシュメモリ１３０を確保し、ディスクアダプタ１２０に対し更新情報最古アドレスから更新情報３００のサイズの情報をキャッシュメモリ１３０に読み込むことを命令する（図３３の３３１０）。
【０２０４】
ディスクアダプタ１２０のリードライト処理２２０は、記憶装置１５０から更新情報３００を読み込んでキャッシュメモリ１３０に格納し、ホストアダプタＣに通知する（図３３の３３２０）。
【０２０５】
ホストアダプタＣは、更新情報３００のリード終了の通知を受けて、更新情報３００から、ライトデータの論理アドレスおよびライトデータのサイズを取得し、キャッシュメモリ１３０を確保して、ディスクアダプタ１２０にライトデータをキャッシュメモリ１３０に読み込むことを命令する（図３３の３３３０）。
【０２０６】
ディスクアダプタ１２０のリードライト処理２２０は、記憶装置１５０からライトデータを読み込んでキャッシュメモリ１３０に格納し、ホストアダプタに通知する（Ｓ３４４０、図３３の３３４０）。
【０２０７】
（５）ホストアダプタＣは、更新情報３００から更新する副論理ボリュームの論理アドレスを求め、ディスクアダプタ１２０に副論理ボリュームにライトデータを書き込むことを命令する（Ｓ３４５０、図３３の３３５０）。ディスクアダプタのリードライト処理２２０は、副論理ボリュームの論理アドレスに対応する記憶装置１５０にデータを書き込み、キャッシュメモリ１３０を開放し、ホストアダプタに通知する（図３３の３３６０）。
【０２０８】
（６）ホストアダプタＣは、ディスクアダプタ１２０のライト処理完了の通知を受け、ジャーナルの記憶領域を開放する。ジャーナルの記憶領域の開放処理は、ポインタ情報７００の更新情報最古アドレスを更新情報３００のサイズを足した数値に変更する。更新情報最古アドレスが、ライトデータ領域先頭アドレスとなった場合は、更新情報最古アドレスは０とする。ポインタ情報７００のライトデータ最古アドレスは、ライトデータのサイズを足した数値に変更する。ライトデータ最古アドレスが、ジャーナル論理ボリュームの容量以上の論理アドレスとなった場合は、ライトデータ領域先頭アドレスを減じ、補正する。その後、ホストアダプタＣは、次のリストア処理を開始する（Ｓ３４６０）。
【０２０９】
前記リストア処理２５０では、記憶装置１５０からキャッシュメモリ１３０にジャーナルを読み込んでいたが、ジャーナルがキャッシュメモリ１３０に存在する場合は、当該処理は不要である。
【０２１０】
同期データ複製に関し、前記正論理ボリュームのデータ更新および副論理ボリュームのデータ更新の処理では、正記憶システム１００Ａおよび副記憶システム１００Ｂでジャーナルを作成していたが、副記憶システム１００Ｃは副記憶システム１００Ｂからジャーナルを取得するため、正記憶システム１００Ａではジャーナルを作成せず、副記憶システム１００Ｂでのみジャーナルを作成するようにしてもよい。また、正記憶システム１００Ａで作成したジャーナルをリモートライト命令等により副記憶システム１００Ｂの記憶領域に転送（コピー）するようにしてもよい。
【０２１１】
非同期データ複製に関し、前記ジャーナルリード受信処理とジャーナルリード処理では、副記憶システム１００Ｂが副記憶システム１００Ｃに対し送信するジャーナルをポインタ情報７００により決めていたが、副記憶システム１００Ｃが前記副記憶システム１００Ｂから送信するジャーナルについて決めてもよい。例えば、前記副記憶システム１００Ｃからのジャーナルリード命令に、更新番号の指定を追加する。この場合、副記憶システム１００Ｂにおけるジャーナルリード受信処理において、副記憶システム１００Ｃが指定した更新番号の更新情報３００の論理アドレスを求めるために、副記憶システム１００Ｂの共有メモリ１４０内に、更新番号から更新情報３００を格納した論理アドレスを求めるテーブルもしくは検索手段等を設ける。
【０２１２】
また前記ジャーナルリード受信処理とジャーナルリード処理では、ジャーナルの転送のためにジャーナルリード命令を用いていたが、通常のリード命令を用いてもよい。例えば、副記憶システム１００Ｂのグループ情報６００とポインタ情報７００をあらかじめ副記憶システム１００Ｃに転送しておき、これをもとに、副記憶システム１００Ｃは、副記憶システム１００Ｂのジャーナル論理ボリュームのデータつまりジャーナルをリード命令によりリードする。
【０２１３】
また前記ジャーナルリード受信処理では、更新番号の順に、副記憶システム１００Ｂから副記憶システム１００Ｃにジャーナルを送信するとしたが、更新番号の順に送信せずともよい。また、副記憶システム１００Ｂから副記憶システム１００Ｃに対し複数のジャーナルリード命令を送信してもよい。この場合、副記憶システム１００Ｃのリストア処理２５０において更新番号順にジャーナルを処理してデータ更新を行うために、副記憶システム１００Ｃに、更新番号から更新情報３００を格納した論理アドレスを求めるテーブルもしくは検索手段等を設ける。
【０２１４】
また前記ジャーナルリード受信処理とジャーナルリード処理では、副記憶システム１００Ｃが副記憶システム１００Ｂに対しジャーナルリード命令を送信してジャーナルを取得していたが、副記憶システム１００Ｂが副記憶システム１００Ｃに対しジャーナルを格納するようにライト命令（ジャーナルライト命令）を行ってもよい。この副記憶システム１００Ｃへのジャーナルのライト命令は、専用の命令（ジャーナルライト命令）を使用してもよいが、通常のライト命令を用いてもよい。例えば、副記憶システム１００Ｃのグループ情報６００とポインタ情報７００をあらかじめ副記憶システム１００Ｂに転送しておき、これをもとに、副記憶システム１００Ｂは、副記憶システム１００Ｃのジャーナル論理ボリュームにデータつまりジャーナルをライトするようにする。
【０２１５】
前述した例では、正記憶システム１００Ａのジャーナル論理ボリュームと副記憶システム１００Ｂのジャーナル論理ボリュームと副記憶システム１００Ｃのジャーナル論理ボリュームの記憶容量を等しくしていたが、異なる容量としてもよい。
【０２１６】
正記憶システム１００Ａのジャーナル論理ボリュームの記憶容量が大きい場合、後述する副記憶システム１００Ｂが障害から回復した際に副記憶システム１００Ｂでの非同期データ複製を開始できる可能性が高まる。副記憶システム１００Ｂのジャーナル論理ボリュームの記憶容量が大きい場合、副記憶システム１００Ｃの負荷が高いもしくは副記憶システム１００Ｂと副記憶システム１００Ｃの間の接続パス２００における通信量が多い場合等に副記憶システム１００Ｃでの非同期データ複製が中断する可能性を低くできる。副記憶システム１００Ｃのジャーナル論理ボリュームの記憶容量が大きい場合、副記憶システム１００Ｃの負荷が高い場合等に副記憶システム１００Ｃでの非同期データ複製が中断する可能性を低くできる。
【０２１７】
前述した本実施の形態のデータ処理システムでは、副記憶システム１００Ｂは、正記憶システム１００Ａが保持するデータの複製を保持しており、正記憶システム１００Ａは、複製対象データを更新する際、副記憶システム１００Ｂ内の該当するデータについてのデータ更新を命令する。それを受けて、副記憶システム１００Ｂは、該当するデータのデータ更新と、データ更新に関する情報をジャーナルとして格納する処理とを行う。副記憶システム１００Ｃは、正記憶システム１００Ａが保持するデータの複製を保持しており、自律的に副記憶システム１００Ｂからデータ更新のために必要なジャーナルを取得し、ジャーナルを用いて正記憶システム１００Ａでのデータ更新順序に従って正記憶システム１００Ａのデータと対応するデータを更新する。これにより、副記憶システム１００Ｂおよび副記憶システム１００Ｃは、データの整合性を維持しつつ、正記憶システム１００Ａのデータの複製を保持できる。
【０２１８】
＜記憶システムＢで障害が発生した場合の動作＞
次に、前述した動作を行う本実施の形態のデータ処理システムにおいて構成要素で障害が発生した際の動作について説明する。図３５に、本実施の形態のデータ処理システムにおいて、副記憶システム１００Ｂで障害が発生した場合に、副記憶システム１００Ｃでのデータ複製を再開する手順を示す。また図３６に、それに対応する、本実施の形態のデータ処理システムの論理的な構成を示すブロック図を示す。また図３７に、それに対応する、記憶システム１００およびホストコンピュータ１８０間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。なお図３７において示す時刻に関して、時刻ｔ６は前記図５おける時刻ｔ６と対応する。同様に他の図中に示す時刻に関しても時系列で対応している。以下の説明において、副記憶システム１００Ｂで障害が発生する前（時刻ｔ７）の正記憶システム１００Ａのボリューム情報４００は前記図６に、ペア情報５００は図９に、グループ情報６００は図１２に、ポインタ情報７００は図１５にそれぞれ示している。また副記憶システム１００Ｂで障害が発生する前（時刻ｔ７）の副記憶システム１００Ｂのボリューム情報４００は図７に、ペア情報５００は図１０に、グループ情報６００は図１３に、ポインタ情報７００は図１７にそれぞれ示す。また副記憶システム１００Ｂで障害が発生する前（時刻ｔ７）の副記憶システム１００Ｃのボリューム情報４００は図８に、ペア情報５００は図１１に、グループ情報６００は図１４に、ポインタ情報７００は図１８にそれぞれ示す。
【０２１９】
副記憶システム１００Ｃは、非同期データ複製を行っているため、副論理ボリュームＣＯＰＹ１と正論理ボリュームＤＡＴＡ１とでデータが一致していない場合がある。さらに、副記憶システム１００Ｃが、副記憶システム１００Ｂで格納されているすべてのジャーナルを保持していない場合、副論理ボリュームＣＯＰＹ１を正論理ボリュームＤＡＴＡ１と一致させることができない。図３７の時刻ｔ７では、正記憶システム１００Ａは更新番号２から５のジャーナルを、副記憶システム１００Ｂは更新番号４と５のジャーナルを、副記憶システム１００Ｃは更新番号２から４のジャーナルを保持する。図３７に示す例では、副論理ボリュームＣＯＰＹ１と正論理ボリュームＤＡＴＡ１とが一致しておらず、副記憶システム１００Ｃが更新番号５のジャーナルを保持していないため、副論理ボリュームＣＯＰＹ１と正論理ボリュームＤＡＴＡ１とを一致させることができない。以下（１）〜（４）で動作について説明する。
【０２２０】
（１）副記憶システム１００Ｂに障害が発生したことにより、副論理ボリューム（ｄａｔａ１，ｄａｔａ２等）、ジャーナル論理ボリューム（ＪＮＬ２）が使用不可能となる。それにより、副記憶システム１００Ｂ内の更新番号５のジャーナルについては、副記憶システム１００Ｃから読み出すことができない（ステップＳ３５１０、図３７の時刻ｔ８）。副記憶システム１００Ｂの障害は、例えば、ユーザが保守端末等を通じて副記憶システム１００Ｂを監視することで発見する。あるいは、正記憶システム１００Ａへのライト命令時における同期したリモートライト命令についての失敗の情報を当該ライト命令の応答に含めてホストコンピュータ１８０に通知すること等によりユーザに報告してもよい。
【０２２１】
（２）ユーザは、正記憶システム１００Ａの保守端末やホストコンピュータ１８０を使用して、正記憶システム１００Ａに対し、非同期複製元変更命令を行う。非同期複製元変更命令は、グループ単位で、非同期データ複製におけるデータ複製元（正論理ボリューム）を変更させる命令であり、複製元情報（正論理ボリューム（ｄａｔａ１，ｄａｔａ２）を保持する記憶システム番号Ｂとグループ番号Ｄ）、複製先情報（副論理ボリューム（ＣＯＰＹ１，ＣＯＰＹ２）を保持する記憶システム番号Ｃとグループ番号Ｃ）を含む（Ｓ３５２０、図３７の時刻ｔ９）。
【０２２２】
正記憶システム１００Ａは、非同期複製元変更命令を受信すると、正記憶システム１００Ａのボリューム情報４００、ペア情報５００、グループ情報６００を参照し、正記憶システム１００Ａ内のグループ状態が“未使用”のグループ番号Ｅを取得して、正記憶システム１００Ａ内のグループＡに属する論理ボリュームＡ（ＤＡＴＡ１，ＤＡＴＡ２）を正論理ボリューム、副記憶システム１００Ｃ内のグループＣに属する論理ボリュームＣ（ＣＯＰＹ１，ＣＯＰＹ２）を副論理ボリュームとする非同期データ複製のペアとなるように正記憶システム１００Ａのボリューム情報４００、ペア情報５００、グループ情報６００の変更を行う。ただし、論理ボリュームＡと論理ボリュームＣの組み合わせは、副記憶システム１００Ｂ内の論理ボリュームＢとペアとなっていた論理ボリュームとする。さらに、正記憶システム１００Ａは、グループＡに属していたジャーナル論理ボリュームをグループＥにおいて継続して使用するようにグループ情報６００を変更する。具体的には、正記憶システム１００Ａは、グループＥの更新番号をグループＡの更新番号に、グループＥのジャーナル論理ボリューム番号をグループＡのジャーナル論理ボリューム番号に変更する。非同期複製元変更命令の実行により、正記憶システム１００Ａは、ボリューム情報４００を前記図６から図３８に、ペア情報５００を前記図９から図３９に、グループ情報６００を前記図１２から図４０に、それぞれ変更する。
【０２２３】
正記憶システム１００Ａは、副記憶システム１００Ｃに対して、正記憶システム１００Ａ内のグループＥに属する論理ボリュームＡ（ＤＡＴＡ１，ＤＡＴＡ２）を正論理ボリューム、副記憶システム１００Ｃ内のグループＣに属する論理ボリュームＣ（ＣＯＰＹ１，ＣＯＰＹ２）を副論理ボリュームとする非同期データ複製のペアとなるように副記憶システム１００Ｃのボリューム情報４００、ペア情報５００、グループ情報６００を変更するよう命令する。ここでは非同期複製元変更命令の送信により行う。ただし、論理ボリュームＡと論理ボリュームＣの組み合わせは、副記憶システム１００Ｂ内の同一の論理ボリュームとペアとなっていた論理ボリュームとする。
【０２２４】
副記憶システム１００Ｃは、前記命令を受信し、副記憶システム１００Ｂへのジャーナルリード命令の送信を停止する。副記憶システム１００Ｃは、正記憶システム１００Ａおよび副記憶システム１００Ｃのボリューム情報４００、ペア情報５００、グループ情報６００を参照し、副記憶システム１００Ｃのペア情報５００、グループ情報６００を変更する。副記憶システム１００Ｃは、ペア情報５００を前記図１１から図４１に、グループ情報６００を前記図１４から図４２に変更する（Ｓ３５３０，Ｓ３５４０）。
【０２２５】
正記憶システム１００Ａは、非同期複製元変更命令の応答をホストコンピュータ１８０もしくは保守端末に行う。ユーザは、ホストコンピュータ１８０もしくは保守端末から非同期複製元変更の終了を認識し、正記憶システム１００Ａの使用を開始する（Ｓ３５５０，Ｓ３５６０）。
【０２２６】
（３）副記憶システム１００Ｃは、正記憶システム１００Ａにジャーナルリード（ＪＮＬＲＤ）位置指定命令を送信する（Ｓ３５７０、図３７の時刻ｔ１０）。このジャーナルリード位置指定命令は、正記憶システム１００Ａのポインタ情報７００を変更して副記憶システム１００Ｃからのジャーナルリード命令に対して正記憶システム１００Ａから送信されるジャーナルを指定する命令であり、相手グループ番号Ｅ、更新番号Ｃを含む。相手グループ番号は、グループ番号Ｃの相手グループ番号を指定する。更新番号は、グループ番号Ｃのグループ情報６００の更新番号に１を足した数値を指定する。図３７に示す例では、グループ番号２、更新番号５を指定する。
【０２２７】
正記憶システム１００Ａは、副記憶システム１００Ｃからジャーナルリード位置指定命令を受信した場合、ポインタ情報７００を参照し、更新番号Ｃのジャーナルを保持しているかを調べる。正記憶システム１００Ａは、ポインタ情報７００の更新情報最古アドレスの更新情報３００を記憶装置１５０から読み出し、最古（最小）の更新番号Ａを得る。
【０２２８】
更新番号Ａがジャーナルリード位置指定命令の更新番号Ｃと等しい、もしくは小さい場合は、正記憶システム１００Ａが更新番号Ｃのジャーナルを保持しているので、副記憶システム１００Ｃは、非同期データ複製を継続・再開することができる。この場合、正記憶システム１００Ａは、リード開始アドレスおよびリトライ開始アドレスを更新番号Ｃの更新情報３００を格納している論理アドレスに変更し、“再開可能”の応答を副記憶システム１００Ｃに返す。この時に、更新番号Ｃより以前のジャーナルの記憶領域を開放してもよい。図３７の時刻ｔ１０では、正記憶システム１００Ａは更新番号２から４のジャーナルの記憶領域を開放している。ただし、後述する副記憶システム１００Ｂでの非同期データ複製を開始するためには、正記憶システム１００Ａにおいて副記憶システム１００Ｂで障害が発生した時点以降のジャーナル（本例では更新番号６以降のジャーナル）が使用する記憶領域を開放してはいけない（Ｓ３５８０）。
【０２２９】
他方、更新番号Ａがジャーナルリード位置指定命令の更新番号Ｃより大きい場合は、正記憶システム１００Ａが副記憶システム１００Ｃに必要なジャーナルを保持していないため、副記憶システム１００Ｃにおいて非同期データ複製を継続・再開することができない。この場合は“再開不可能”の応答を副記憶システム１００Ｃに返し、前記図１９および図２０を用いて説明した手順により正記憶システム１００Ａから副記憶システム１００Ｃに対してデータ複製を開始する必要がある。
【０２３０】
（４）副記憶システム１００Ｃは、“再開可能”の応答を受信した場合、グループＣのグループ情報６００のグループ状態を“正常”に変更することで、正記憶システム１００Ａに対し、ジャーナルリード処理を開始する（Ｓ３５９０、図３７の時刻ｔ１１）。
【０２３１】
上記処理で副記憶システム１００Ｃが前記ジャーナルリード位置指定命令を行わないこととしてもよい。この場合、副記憶システム１００Ｃは、ジャーナルリード処理を開始し、正記憶システム１００Ａから最古のジャーナルを受信する。副記憶システム１００Ｃが受信したジャーナルの更新番号Ａが、グループ番号Ｃのグループ情報６００の更新番号Ｃに１を足した数値より大きい場合は、正記憶システム１００Ａが副記憶システム１００Ｃに必要なジャーナルを保持していないため、データ複製処理を中断する。また、受信したジャーナルの更新番号Ａが、更新番号Ｃと等しい、もしくは小さい場合は、当該ジャーナルを破棄し、ジャーナルリード処理を継続する。また、受信したジャーナルの更新番号Ａが、更新番号Ｃに１を足した数値と等しい場合は、受信したジャーナルをジャーナル論理ボリュームに格納し、ジャーナルリード処理を継続する。
【０２３２】
前述した本実施の形態のデータ処理システムでは、非同期複製元変更命令をホストコンピュータ１８０や正記憶システム１００Ａの保守端末から正記憶システム１００Ａに対し送信していたが、副記憶システム１００Ｃの保守端末や副記憶システム１００Ｃに接続したホストコンピュータ等を使用して副記憶システム１００Ｃに対し非同期複製元変換命令を送信してもよい。
【０２３３】
前述した本実施の形態のデータ処理システムでは、ジャーナルリード位置指定命令により副記憶システム１００Ｃでのデータの非同期データ複製が開始（再開）可能かを判断していたが、正記憶システム１００Ａのポインタ情報７００を副記憶システム１００Ｃに送信し、副記憶システム１００Ｃが受信したポインタ情報７００を参照してデータの非同期データ複製が開始可能かを判断するようにしてもよい。
【０２３４】
続いて、図４３および前記図３６を用いて、ホストコンピュータ１８０が正記憶システム１００Ａの使用を開始した後の、正記憶システム１００Ａの正論理ボリュームＤＡＴＡ１へのデータ更新を副記憶システム１００Ｃの副論理ボリュームＣＯＰＹ１に反映する動作について説明する。図４３に、それに対応する、記憶システム１００およびホストコンピュータ１８０間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。図４３の時刻ｔ１０に、ホストコンピュータ１８０が正記憶システム１００Ａの使用を開始する。正記憶システム１００Ａは更新番号５のジャーナルを、副記憶システム１００Ｃは更新番号２から４のジャーナルを保持する。時刻ｔ１１では、副記憶システム１００Ｃは、ジャーナルリード処理２４０によって、更新番号５のジャーナルを正記憶システム１００Ａからリードし、格納する。
【０２３５】
（１）正記憶システム１００Ａは、ホストコンピュータ１８０から正論理ボリュームＤＡＴＡ１内のデータに対するライト命令を受信すると、前述した命令受信処理２１０およびリードライト処理２２０によって、正論理ボリュームＤＡＴＡ１内のデータ更新と、ジャーナル論理ボリュームＪＮＬ１へのジャーナルの格納を行い、ホストコンピュータ１８０にライト命令の終了を報告する（図３６の３６００）。図４３の時刻ｔ１２では、正記憶システム１００Ａは、ホストコンピュータ１８０からのライト命令を受信し、正論理ボリュームの更新と、更新番号６のジャーナルのジャーナル論理ボリュームへの格納を行う。
【０２３６】
（２）副記憶システム１００Ｃは、前述したジャーナルリード処理２４０によって、正記憶システム１００Ａからジャーナルをリードし、リードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ３にジャーナルを格納する（図３６の３６１０）。図４３の時刻ｔ１３では、副記憶システム１００Ｃは、正記憶システム１００Ａにジャーナルリード命令を送信し、正記憶システム１００Ａから、更新番号６のジャーナルを読み出し、ジャーナル論理ボリュームＪＮＬ３に格納する。
【０２３７】
正記憶システム１００Ａは、副記憶システム１００Ｃからジャーナルリード命令を受信すると、命令受信処理２１０およびリードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ１からジャーナルを読み出し、副記憶システム１００Ｃに送信する（図３６の３６１０）。この際、送信したジャーナルより古い更新番号５のジャーナルの記憶領域を開放してもよい。図４３の例では、更新番号５のジャーナルの記憶領域を開放している。
【０２３８】
（３）副記憶システム１００Ｃは、リストア処理２５０およびリードライト処理２２０によって、ポインタ情報７００を用いて、更新番号の昇順に、ジャーナル論理ボリュームＪＮＬ３からジャーナルを読み出し、副論理ボリュームＣＯＰＹ１のデータを更新する（図３６の３６２０）。このようにして、正記憶システム１００Ａ内の正論理ボリュームＤＡＴＡ１と副記憶システム１００Ｃ内の副論理ボリュームＣＯＰＹ１のデータは、正論理ボリュームの更新の暫く後には、完全に一致する。図４３の時刻ｔ１４では、副記憶システム１００Ｃは、ジャーナル論理ボリュームから更新番号２のジャーナルを読み出し、副論理ボリュームのデータを更新する。この際、不要となった更新番号２のジャーナルの記憶領域を開放してもよいし、ジャーナルの格納領域が不足した時点で、最古のジャーナルの記憶領域を開放する方式を採ってもよい。
【０２３９】
前述した本実施の形態のデータ処理システムでは、正記憶システム１００Ａがジャーナルを作成し、副記憶システム１００Ｂが正記憶システム１００Ａから受信する更新番号および更新時刻を用いてジャーナルを作成する。さらに、副記憶システム１００Ｃが、副記憶システム１００Ｂからジャーナルを取得する。これにより、二つの記憶システムでデータの複製を保持することが可能となる。副記憶システム１００Ｂで障害が発生した場合、副記憶システム１００Ｃは、ジャーナル取得先つまり複製元を副記憶システム１００Ｂから正記憶システム１００Ａに変更する。これにより、副記憶システム１００Ｃは、データの整合性を維持しつつ、正記憶システム１００Ａのデータについてのデータ複製（非同期データ複製）を継続できる。
【０２４０】
＜記憶システムＢの回復後の動作＞
図４４に、本実施の形態のデータ処理システムにおいて、副記憶システム１００Ｂが障害から回復した後の副記憶システム１００Ｂでのデータ複製を再開する手順を示す。図４５に、それに対応する、記憶システム１００およびホストコンピュータ１８０間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。以下（１）〜（６）で動作について説明する。
【０２４１】
（１）ユーザが記憶システムＢ（１００Ｂ）を回復させる（図４４のステップＳ４４１０、図４５の時刻ｔ１５）。
【０２４２】
（２）ユーザは、正記憶システム１００Ａの保守端末もしくはホストコンピュータ１８０を使用して、正記憶システム１００Ａに対し、複製方式変更命令を送信する。この複製方式変更命令は、記憶システム１００間のデータ複製の方式（モード）について、グループ単位で、同期データ複製を非同期データ複製に変更する命令であり、複製元情報（正論理ボリューム（ＤＡＴＡ１，ＤＡＴＡ２）を保持する記憶システム番号Ａとグループ番号Ａ）、複製先情報（副論理ボリューム（ｄａｔａ１，ｄａｔａ２）を保持する記憶システム番号Ｂとグループ番号Ｂ）を含む（Ｓ４４２０）。
【０２４３】
（３）正記憶システム１００Ａは、複製方式変更命令を受信すると、グループ番号Ａのグループに属する論理ボリュームのデータ複製が非同期データ複製となるように、正記憶システム１００Ａのペア情報５００、グループ情報６００を変更する。複製方式変更命令により、正記憶システム１００Ａは、前記図３８に示すボリューム情報４００を図４６に、前記図３９に示すペア情報５００を図４７に、前記図４０に示すグループ情報６００を図４８にそれぞれ変更する（Ｓ４４３０）。
【０２４４】
さらに、正記憶システム１００Ａは、副記憶システム１００Ｂに対して、グループ番号Ｂのグループに属する論理ボリュームのデータ複製が非同期データ複製となるようにボリューム情報４００、グループ情報６００の変更を命令する。ここでは複製方式変更命令の送信により行う。副記憶システム１００Ｂは、指示されたグループＢのボリューム情報４００、グループ情報６００を変更する。複製方式変更命令により、副記憶システム１００Ｂは、前記図７に示すボリューム情報４００を図４９に、前記図１３に示すグループ情報６００を図５０に、それぞれ変更する（Ｓ４４４０）。
【０２４５】
（４）副記憶システム１００Ｂは、正記憶システム１００Ａにジャーナルリード位置指定命令を送信する（Ｓ４４５０）。ジャーナルリード位置指定命令は、正記憶システム１００Ａのポインタ情報７００を変更して、副記憶システム１００Ｂからのジャーナルリード命令に対して送信されるジャーナルを指定する命令であり、相手グループ番号Ａ、更新番号Ｂを含む。相手グループ番号は、グループ番号Ｂの相手グループ番号を指定する。更新番号は、グループ番号Ｂのグループ情報６００の更新番号に１を足した数値を指定する。図４５に示す例では、ジャーナルリード位置指定命令において、グループ番号１、更新番号６を指定する（Ｓ４４５０、図４５の時刻ｔ１６）。
【０２４６】
（５）正記憶システム１００Ａは、ジャーナルリード位置指定命令を受信した場合、ポインタ情報７００を参照し、更新番号Ｂのジャーナルを保持しているかを調べる。正記憶システム１００Ａは、ポインタ情報７００の更新情報最古アドレスの更新情報３００を記憶装置１５０から読み出し、最古（最小）の更新番号Ａを得る。
【０２４７】
更新番号Ａがジャーナルリード位置指定命令の更新番号Ｂと等しい、もしくは小さい場合は、正記憶システム１００Ａが更新番号Ｂのジャーナルを保持しているので、副記憶システム１００Ｂは、非同期データ複製を開始することができる。この場合、正記憶システム１００Ａは、リード開始アドレスおよびリトライ開始アドレスを更新番号Ｂの更新情報３００を格納しているアドレスに変更し、“開始可能”の応答を副記憶システム１００Ｂに返す。この時に、更新番号Ｂより以前のジャーナルの記憶領域を開放してもよい（Ｓ４４６０）。
【０２４８】
他方、更新番号Ａがジャーナルリード位置指定命令の更新番号Ｂより大きい場合は、正記憶システム１００Ａが副記憶システム１００Ｂに必要なジャーナルを保持していないため、副記憶システム１００Ｂにおいて非同期データ複製を開始することができない。この場合は、“開始不可能”の応答を副記憶システム１００Ｂに返し、前記図１９および図２０を用いて説明した手順により正記憶システム１００Ａから副記憶システム１００Ｂに対してデータ複製を開始する必要がある（Ｓ４４８０）。
【０２４９】
（６）副記憶システム１００Ｂは、“開始可能”の応答を受信した場合、グループＢのグループ情報６００のグループ状態を“正常”に変更することで、正記憶システム１００Ａに対し、ジャーナルリード処理を開始する（Ｓ４４９０、図４５の時刻ｔ１７）。
【０２５０】
副記憶システム１００Ｂが前記ジャーナルリード位置指定命令を行わないこととしてもよい。この場合、副記憶システム１００Ｂは、ジャーナルリード処理を開始し、正記憶システム１００Ａから最古のジャーナルを受信する。副記憶システム１００Ｂが受信したジャーナルの更新番号Ａが、グループ番号Ｂのグループ情報６００の更新番号に１を足した数値より大きい場合は、正記憶システム１００Ａが副記憶システム１００Ｂに必要なジャーナルを保持していないため、データ複製を中断する。また、受信したジャーナルの更新番号Ａが、更新番号Ｂと等しい、もしくは小さい場合は、当該ジャーナルを破棄し、ジャーナルリード処理を継続する。また、受信したジャーナルの更新番号Ａが、更新番号Ｂに１を足した数値と等しい場合は、受信したジャーナルをジャーナル論理ボリュームに格納し、ジャーナルリード処理を継続する。
【０２５１】
前述した本実施の形態のデータ処理システムでは、複製方式変更命令を正記憶システム１００Ａに対し送信していたが、副記憶システム１００Ｂの保守端末もしくは副記憶システム１００Ｂに接続したホストコンピュータ等を使用して副記憶システム１００Ｂに対し複製方式変換命令を送信してもよい。
【０２５２】
前述した本実施の形態のデータ処理システムでは、ジャーナルリード位置指定命令により、副記憶システム１００Ｂでのデータの非同期データ複製が開始（再開）可能かを判断していたが、正記憶システム１００Ａのポインタ情報７００を副記憶システム１００Ｂに送信して、副記憶システム１００Ｂが受信したポインタ情報７００を参照してデータの非同期データ複製が開始可能かを判断してもよい。
【０２５３】
続いて、図５１および図５２を用いて、ホストコンピュータ１８０が正記憶システム１００Ａの使用を開始した後の、正記憶システム１００Ａの正論理ボリュームＤＡＴＡ１へのデータ更新を副記憶システム１００Ｂの副論理ボリュームｄａｔａ１および副記憶システム１００Ｃの副論理ボリュームＣＯＰＹ１に反映する動作について説明する。図５１に、それに対応する、本実施の形態のデータ処理システムの論理的な構成を示すブロック図を示す。図５２に、それに対応する、記憶システム１００およびホストコンピュータ１８０間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。以下（１）〜（３）で動作について説明する。
【０２５４】
（１）正記憶システム１００Ａは、ホストコンピュータ１８０から正論理ボリュームＤＡＴＡ１内のデータに対するライト命令を受信すると、前述した命令受信処理２１０およびリードライト処理２２０によって、正論理ボリュームＤＡＴＡ１内のデータ更新と、ジャーナル論理ボリュームＪＮＬ１へのジャーナルの格納を行う（図５１の５１１０）。図５２の時刻ｔ１８では、正記憶システム１００Ａは、ホストコンピュータ１８０からのライト命令を受信し、正論理ボリュームの更新と、更新番号７のジャーナルのジャーナル論理ボリュームへの格納を行う。
【０２５５】
（２）副記憶システム１００Ｂは、前述したジャーナルリード処理２４０によって、正記憶システム１００Ａからジャーナルをリードし、リードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ２にジャーナルを格納する（図５１の５１２０）。図５２の時刻ｔ１９では、副記憶システム１００Ｂは、正記憶システム１００Ａにジャーナルリード命令を送信し、正記憶システム１００Ａから、更新番号７のジャーナルを読み出し、ジャーナル論理ボリュームＪＮＬ２に格納する。
【０２５６】
（３）副記憶システム１００Ｃは、前述したジャーナルリード処理２４０によって、正記憶システム１００Ａからジャーナルをリードし、リードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ３にジャーナルを格納する（図５１の５１３０）。図５２の時刻ｔ２０では、副記憶システム１００Ｃは、正記憶システム１００Ａにジャーナルリード命令を送信し、正記憶システム１００Ａから、更新番号７のジャーナルを読み出し、ジャーナル論理ボリュームＪＮＬ３に格納する。この際、不要となった（副記憶システム１００Ｂおよび副記憶システム１００Ｃに送信された）更新番号７のジャーナルの記憶領域を開放してもよいし、ジャーナルの格納領域が不足した時点で最古のジャーナルの記憶領域を開放する方式を採ってもよい。
【０２５７】
その後、副記憶システム１００Ｂおよび副記憶システム１００Ｃは、前述したリストア処理２５０において、更新番号の順にジャーナル論理ボリュームからジャーナルを読み出し、副論理ボリュームのデータを更新する（図５１の５１４０，５１５０）。
【０２５８】
前述した本実施の形態のデータ処理システムでは、正記憶システム１００Ａがジャーナルを作成する。副記憶システム１００Ｂおよび副記憶システム１００Ｃは、正記憶システム１００Ａからジャーナルを取得し、ジャーナルを使用して、正記憶システム１００Ａと対応するデータを更新する。これにより、副記憶システム１００Ｂと副記憶システム１００Ｃは、データの整合性を維持しつつ、正記憶システム１００Ａのデータの非同期データ複製を保持できる。
【０２５９】
さらに、図５３に、副記憶システム１００Ｂの非同期データ複製を同期データ複製に変更する手順を示す。図５４に、それに対応する、記憶システム１００およびホストコンピュータ１８０間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。
【０２６０】
副記憶システム１００Ｂは、前述したジャーナルリード処理２４０によって、正記憶システム１００Ａにジャーナルリード命令を送信する。ジャーナルリード命令に、リストア処理２５０を終了した最終（最大）更新番号を含める（ステップＳ５３１０）。正記憶システム１００Ａは、前述したジャーナルリード受信処理２４０と同様の方法によって、副記憶システム１００Ｂに対し送信していないジャーナルが存在するかを調べる（Ｓ５３２０）。送信していないジャーナルが存在する場合は、副記憶システム１００Ｂに当該ジャーナルを送信する（Ｓ５３３０）。副記憶システム１００Ｂは、正記憶システム１００Ａからジャーナルを受信し、前述したジャーナル格納処理を行う（Ｓ５３４０）。
【０２６１】
正記憶システム１００Ａは、Ｓ５３２０の判断で、副記憶システム１００Ｂに対し送信していないジャーナルが存在せず、副記憶システム１００Ｂにおいてすべてのジャーナルのリストア処理２５０が終了している場合、ジャーナルリード命令のグループのデータ複製方式を非同期データ複製から同期データ複製に変更し、副記憶システム１００Ｂに“同期複製開始”を送信する。また副記憶システム１００Ｂにおいてすべてのジャーナルのリストア処理２５０が終了していない場合、副記憶システム１００Ｂに“ジャーナル無”を送信する。副記憶システム１００Ｂにおいてすべてのジャーナルのリストア処理２５０が終了しているかの判断は、前記ジャーナルリード命令内の最終（最大）更新番号と、正記憶システム１００Ａのグループ番号１のグループ情報の更新番号により行う。前記ジャーナルリード命令内の最終（最大）更新番号＋１が、正記憶システム１００Ａのグループ番号１のグループ情報の更新番号と等しい場合、副記憶システム１００Ｂにおいてすべてのジャーナルについてリストア処理２５０が終了している。前記ジャーナルリード命令内の最終（最大）更新番号＋１が、正記憶システム１００Ａのグループ番号１のグループ情報の更新番号と等しいもしくは小さい場合、副記憶システム１００Ｂにおいてすべてのジャーナルについてリストア処理２５０が終了してはいない。正記憶システム１００Ａは、前記図４６に示すボリューム情報４００を図５５に、前記図４８に示すグループ情報６００を図５６に変更する（Ｓ５３５０）。
【０２６２】
副記憶システム１００Ｂは、正記憶システム１００Ａから“同期複製開始”の応答を受信すると、すべてのジャーナル（未反映分のジャーナル）についてリストア処理２５０を行って副論理ボリュームのデータ更新をしたか判断する（Ｓ５３６０）。すべてのジャーナルについてリストア処理２５０を行っていない場合は、Ｓ５３１０に戻る。すべてのジャーナルについてリストア処理２５０を行っている場合は、ジャーナルリード処理を停止し、当該グループのデータ複製方式を非同期データ複製から同期データ複製に変更する。副記憶システム１００Ｂは、前記図４９に示すボリューム情報４００を図５７に、前記図５０に示すグループ情報６００を図５８に変更する（Ｓ５３７０、図５４の時刻ｔ２１）。図５４の時刻ｔ２０からｔ２１の間に、副記憶システム１００Ｂは、すべてのジャーナル（更新番号４から７のジャーナル）についてリストア処理２５０を実施した後、正記憶システム１００Ａにジャーナルリード命令を送信する。前記ジャーナルリード命令内の最終（最大）更新番号は７である。
【０２６３】
その後、正記憶システム１００Ａは、ホストコンピュータ１８０から論理ボリュームに対するライト命令を受信すると、データ更新と、ジャーナル論理ボリュームへのジャーナルの格納と、副記憶システム１００Ｂへのリモートライト命令の送信とを行う。図５４の時刻ｔ２２では、正記憶システム１００Ａは、更新番号８のジャーナルをジャーナル論理ボリュームに格納する。副記憶システム１００Ｂは、正記憶システム１００Ａからのリモートライト命令を受信し、副論理ボリュームの対応するデータの更新を行う。さらに、副記憶システム１００Ｂは、ジャーナル論理ボリュームにジャーナルの格納を行ってもよい。
【０２６４】
その後、副記憶システム１００Ｃは、正記憶システム１００Ａからジャーナルをリードし、ジャーナル論理ボリュームにジャーナルを格納する。図５４の時刻ｔ２３では、副記憶システム１００Ｃは、正記憶システム１００Ａにジャーナルリード命令を送信し、正記憶システム１００Ａから更新番号８のジャーナルを読み出し、ジャーナル論理ボリュームに格納する。副記憶システム１００Ｃは、リストア処理２５０およびリードライト処理２２０によって、ポインタ情報７００を用いて、更新番号の昇順にジャーナル論理ボリュームからジャーナルを読み出して副論理ボリュームのデータを更新する。
【０２６５】
前述した本実施の形態のデータ処理システムでは、非同期データ複製において正記憶システム１００Ａで副記憶システム１００Ｂに対し未送信のジャーナルが存在せず、副記憶システム１００Ｂでリストア処理２５０によりデータ更新済みである場合、記憶システムＡ（１００Ａ）と記憶システムＢ（１００Ｂ）でのデータ複製方式を非同期データ複製から同期データ複製に変更する。これにより、副記憶システム１００Ｂは、データの整合性を維持しつつ、正記憶システム１００Ａのデータについての同期データ複製を開始できる。
【０２６６】
以上のような処理により、本実施の形態のデータ処理システムは、非同期データ複製における複製元つまりジャーナル取得先である副記憶システム１００Ｂでの障害発生時には、非同期データ複製における複製元を、同期データ複製の複製元である正記憶システム１００Ａに変更し、副記憶システム１００Ｃで複製データを複製対象データと一致させるために必要なジャーナルの転送（コピー）を正記憶システム１００Ａから行い、転送されたジャーナルにより更新反映してデータを一致させる。従来技術のように正記憶システムの複製対象データ（正論理ボリューム）の全データを副記憶システムに転送するような必要がなく、データ更新発生分のジャーナルを転送して更新反映する処理だけで済むので、短い時間でデータ複製を再開、つまり完全な複製データを保持する状態となることができる。
【０２６７】
＜ホストコンピュータで障害が発生した場合の動作＞
次に、図５９、図６０、図６１、図６２を用いて、本実施の形態のデータ処理システムにおいて、通常の運用時に正記憶システム１００Ａを利用する前記ホストコンピュータ（第一のホストコンピュータ）１８０で障害が発生した場合に、このホストコンピュータ１８０において行っている情報処理を、第二のホストコンピュータ（ホストコンピュータＢ）１８０Ｂおよび副記憶システム１００Ｂを用いて再開し、記憶システムＢ（１００Ｂ）のデータの同期データ複製を記憶システムＡ（１００Ａ）において開始する手順について説明する。図５９は、本実施の形態のデータ処理システムにおいて第一のホストコンピュータ１８０の障害発生時に記憶システムＢ（１００Ｂ）のデータの同期データ複製を記憶システムＡ（１００Ａ）において開始する手順を説明する図である。図６０は、それに対応する、記憶システム１００およびホストコンピュータ（１８０，１８０Ｂ）間の命令および応答の送受信と各記憶システム１００が保持するジャーナルについて説明する図を示す。図６０の時刻ｔ６は、前記図５における時刻ｔ６と対応している。図６１は、第一のホストコンピュータ１８０で障害が発生する前のデータ処理システムの論理的な構成を示すブロック図を示す。図６１の構成は、記憶システムＢ（１００Ｂ）に対し接続パス１９０を通じて接続される第二のホストコンピュータ１８０Ｂがある点を除けば図１と同様である。図６２は、第一のホストコンピュータ１８０で障害が発生した後に第二のホストコンピュータ１８０Ｂと記憶システムＢ（１００Ｂ）で処理を再開した際のデータ処理システムの論理的な構成を示すブロック図を示す。図６２では、記憶システム１００の状態が変わり、記憶システムＢが副記憶システムから正記憶システムに、記憶システムＡが正記憶システムから副記憶システムになる。以下（１）〜（５）で動作について説明する。
【０２６８】
以下の説明において、第一のホストコンピュータ１８０で障害が発生する前（図６０の時刻ｔ７）の正記憶システム１００Ａのボリューム情報４００は前記図６に、ペア情報５００は図９に、グループ情報６００は図１２に、ポインタ情報７００は図１５にそれぞれ示している。第一のホストコンピュータ１８０で障害が発生する前の副記憶システム１００Ｂのボリューム情報４００は図７に、ペア情報５００は図１０に、グループ情報６００は図１３に、ポインタ情報７００は図１７にそれぞれ示している。第一のホストコンピュータ１８０で障害が発生する前の副記憶システム１００Ｃのボリューム情報４００は図８に、ペア情報５００は図１１に、グループ情報６００は図１４に、ポインタ情報７００は図１８にそれぞれ示している。図６０の時刻ｔ７では、第一のホストコンピュータ１８０からのライト命令によるデータ更新により、正記憶システム１００Ａは更新番号２から５のジャーナルを、副記憶システム１００Ｂは更新番号４と５のジャーナルを、副記憶システム１００Ｃは更新番号２から４のジャーナルを保持する。
【０２６９】
（１）正記憶システム１００Ａを使用していた第一のホストコンピュータ１８０に障害が発生する（ステップＳ５９００、図６０の時刻ｔ８）。時刻ｔ９以降では、副記憶システム１００Ｂに接続されている第二のホストコンピュータ１８０Ｂを使用して記憶システムＢ（１００Ｂ）のデータについての同期データ複製の開始を行う。
【０２７０】
（２）ユーザは、第二のホストコンピュータ１８０Ｂもしくは副記憶システム１００Ｂの保守端末等を使用して、副記憶システム１００Ｂに対し同期複製交換命令を送信する（Ｓ５９１０、図６０の時刻ｔ９）。この同期複製交換命令は、グループ単位で、同期データ複製の正論理ボリュームと副論理ボリュームの関係を逆転させる命令であり、複製元情報（同期データ複製の正論理ボリューム（ＤＡＴＡ１，ＤＡＴＡ２）を保持する記憶システム番号Ａとグループ番号Ａ）、複製先情報（同期データ複製の副論理ボリューム（ｄａｔａ１，ｄａｔａ２）を保持する記憶システム番号Ｂとグループ番号Ｂ）を含む。
【０２７１】
副記憶システム１００Ｂは、同期複製交換命令を受信すると、記憶システムＢのボリューム情報４００、ペア情報５００、グループ情報６００を参照し、正記憶システム１００Ａ内のグループＡに属する論理ボリュームＡ（ＤＡＴＡ１，ＤＡＴＡ２）を副論理ボリューム、記憶システムＢ内のグループＢに属する論理ボリュームＢ（ｄａｔａ１，ｄａｔａ２）を正論理ボリュームとする同期データ複製のペアとなるように、記憶システムＢのボリューム情報４００、ペア情報５００を変更する。ただし、論理ボリュームＡと論理ボリュームＢの組み合わせは、既に同期データ複製のペアとなっていた論理ボリュームとする。同期複製交換命令により、記憶システムＢのボリューム情報４００は図６３に、ペア情報５００は図６４にそれぞれ変更される。
【０２７２】
記憶システムＢ（１００Ｂ）は、正記憶システム１００Ａに対して、記憶システムＡ内のグループＡに属する論理ボリュームＡ（ＤＡＴＡ１，ＤＡＴＡ２）を副論理ボリューム、記憶システムＢ内のグループＢに属する論理ボリュームＢ（ｄａｔａ１，ｄａｔａ２）を正論理ボリュームとする同期データ複製のペアとなるように記憶システムＡのボリューム情報４００、ペア情報５００を変更するように命令する。ここでは同期複製交換命令の送信により行う。ただし、論理ボリュームＡと論理ボリュームＢの組み合わせは、既に同期データ複製のペアとなっていた論理ボリュームとする（Ｓ５９２０，Ｓ５９３０）。
【０２７３】
（３）正記憶システム１００Ａは、受信した同期複製交換命令に従って、記憶システムＡのボリューム情報４００、ペア情報５００、グループ情報６００を参照して、記憶システムＡのボリューム情報４００、ペア情報５００を変更する。同期複製交換命令により、記憶システムＡのボリューム情報４００は図６５に、ペア情報５００は図６６にそれぞれ変更される。
【０２７４】
（４）記憶システムＢ（１００Ｂ）は、記憶システムＡ（１００Ａ）と記憶システムＢ（１００Ｂ）の各情報の変更を終えた後、同期複製交換命令の応答を前記ホストコンピュータ１８０Ｂもしくは保守端末等に返信する（Ｓ５９４０）。このような同期複製交換の手続きにより、記憶システムＢは正記憶システムに、記憶システムＡは副記憶システムになる。対応して副論理ボリューム（ｄａｔａ１，ｄａｔａ２等）は正論理ボリュームに、正論理ボリューム（ＤＡＴＡ１，ＤＡＴＡ２等）は副論理ボリュームになる。
【０２７５】
（５）ユーザは、前記第二のホストコンピュータ１８０Ｂもしくは保守端末等から同期複製交換の完了を認識し、正記憶システム１００Ｂの使用を開始する（Ｓ５９５０）。
【０２７６】
続いて、前記図６２を用いて、前記同期複製交換の完了後において正記憶システム１００Ｂの正論理ボリュームｄａｔａ１へのデータ更新を副記憶システム１００Ａの副論理ボリュームＤＡＴＡ１および副記憶システム１００Ｃの副論理ボリュームＣＯＰＹ１に反映する動作について、以下（１）〜（６）で説明する。
【０２７７】
（１）正記憶システム１００Ｂは、第二のホストコンピュータ１８０Ｂから正論理ボリュームｄａｔａ１内のデータに対するライト命令を受信すると、前述した命令受信処理２１０およびリードライト処理２２０によって、正論理ボリュームｄａｔａ１内のデータ更新と、ジャーナル論理ボリュームＪＮＬ２へのジャーナルの格納と、副記憶システム１００Ａ内の副論理ボリュームＤＡＴＡ１のデータ更新とを行う（図６２の６２１０，６２１５）。副論理ボリュームＤＡＴＡ１のデータ更新は、リモートライト命令により行う。このリモートライト命令は、第二のホストコンピュータ１８０Ｂからのライト命令とライトデータと前記ジャーナルの更新情報３００を含む。ここでの更新情報３００は、前記図３で示したようなすべての情報は必須ではなく、更新番号もしくは更新時刻を含めばよい。図６０の時刻ｔ１０では、正記憶システム１００Ｂは、ホストコンピュータ１８０Ｂからのライト命令を受信し、正論理ボリュームｄａｔａ１の更新と、更新番号６のジャーナルのジャーナル論理ボリュームＪＮＬ２への格納とを行い、さらに副記憶システム１００Ａに対し副論理ボリュームの対応するデータ更新のためのリモートライト命令を送信する。
【０２７８】
（２）副記憶システム１００Ａは、正記憶システム１００Ｂからのリモートライト命令を受け、前述した命令受信処理２１０およびリードライト処理２２０によって、副論理ボリュームＤＡＴＡ１内の対応するデータの更新と、ジャーナル論理ボリュームＪＮＬ１へのジャーナルの格納とを行う。このジャーナルの更新番号および更新時刻は、リモートライト命令内の数値を使用する（図６２の６２２０）。図６０の時刻ｔ１０では、副記憶システム１００Ａは、リモートライト命令を受信して、副論理ボリュームＤＡＴＡ１のデータ更新と更新番号６のジャーナルのジャーナル論理ボリュームＪＮＬ１への格納とを行い、正記憶システム１００Ｂに応答を返す。
【０２７９】
（３）正記憶システム１００Ｂは、リモートライト命令の応答を副記憶システム１００Ａから受けた後、第二のホストコンピュータ１８０Ｂに対しライト命令の終了を報告する。従って、正記憶システム１００Ｂ内の正論理ボリュームｄａｔａ１と副記憶システム１００Ａ内の副論理ボリュームＤＡＴＡ１のデータは完全に一致する。さらに、一つのライト命令に関するジャーナル論理ボリュームＪＮＬ１のジャーナルの更新番号とジャーナル論理ボリュームＪＮＬ２のジャーナルの更新番号は一致する。図６０の時刻ｔ１０では、正記憶システム１００Ｂは、副記憶システム１００Ａからリモートライト命令の応答を受信して、第二のホストコンピュータ１００Ｂに対しライト命令の終了を報告する応答を行う。
【０２８０】
（４）副記憶システム１００Ｃは、上記処理とは非同期で、前述したジャーナルリード処理２４０によって正記憶システム１００Ｂからジャーナルをリードし、リードしたジャーナルをリードライト処理２２０によってジャーナル論理ボリュームＪＮＬ３に格納する（図６２の６２３０）。図６０の時刻ｔ１１では、副記憶システム１００Ｃは、正記憶システム１００Ｂにジャーナルリード命令を送信し、正記憶システム１００Ｂから更新番号５および６のジャーナルを読み出し、ジャーナル論理ボリュームＪＮＬ３に格納する。
【０２８１】
（５）正記憶システム１００Ｂは、副記憶システム１００Ｃからジャーナルリード命令を受信すると、前述した命令受信処理２１０およびリードライト処理２２０によって、ジャーナル論理ボリュームＪＮＬ２からジャーナルを読み出し、副記憶システム１００Ｃに送信する（図６２の６２３０）。図６０の時刻ｔ１１では、正記憶システム１００Ｂは、副記憶システム１００Ｃからのジャーナルリード命令を受信し、副記憶システム１００Ｃに更新番号５および６のジャーナルを送信する。この際、送信したジャーナルより古い更新番号４のジャーナルについて破棄してもよい。
【０２８２】
（６）副記憶システム１００Ｃは、前述したリストア処理２５０およびリードライト処理２２０によって、ポインタ情報７００を用いて、更新番号の昇順に、ジャーナル論理ボリュームＪＮＬ３からジャーナルを読み出し、副論理ボリュームＣＯＰＹ１のデータを更新する（図６２の６２４０）。従って、正記憶システム１００Ｂ内の正論理ボリュームｄａｔａ１と副記憶システム１００Ｃ内の副論理ボリュームＣＯＰＹ１のデータは、副論理ボリュームＤＡＴＡ１および正論理ボリュームｄａｔａ１の更新の暫く後には、完全に一致する。この時、副記憶システム１００Ｃで、不要となったジャーナルの記憶領域を開放してもよいし、ジャーナルの格納領域が不足した時点で最古のジャーナルの記憶領域を開放する方式を採ってもよい。
【０２８３】
前述した本実施の形態のデータ処理システムでは、正記憶システム１００Ａを使用する第一のホストコンピュータ１８０で障害が発生し、副記憶システム１００Ｂおよびこれに接続される第二のホストコンピュータ１８０Ｂを用いて処理を継続・再開する場合に、記憶システムＢ（１００Ｂ）は、同期複製交換命令により同期データ複製におけるデータの複製元（正論理ボリューム）と複製先（副論理ボリューム）の関係を逆転する。これにより、データの整合性を維持しつつ、記憶システムＡ（１００Ａ）と記憶システムＣ（１００Ｃ）の二つの記憶システムにおいて、記憶システムＢ（１００Ｂ）のデータについての同期と非同期の二つのデータ複製が可能となる。
【０２８４】
以上、本発明者によってなされた発明を実施例の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０２８５】
本発明は、常時継続したサービスを提供する情報処理システム等に対して適用して障害発生等に備えてデータ保護を図る技術として利用可能である。
【図面の簡単な説明】
【０２８６】
【図１】本発明の一実施の形態のデータ処理システムにおける論理的な構成を示すブロック図である。
【図２】本発明の一実施の形態のデータ処理システムにおける記憶システムの内部構造を示すブロック図である。
【図３】本発明の一実施の形態における、ジャーナルにおける更新情報の例を説明する図である。
【図４】本発明の一実施の形態における、ジャーナル論理ボリュームにおける更新情報とライトデータの関係を説明する図である。
【図５】本発明の一実施の形態のデータ処理システムにおいて、第一の記憶システムの正論理ボリュームへのデータ更新を第二の記憶システムおよび第三の記憶システムの副論理ボリュームに反映する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図６】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図７】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図８】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図９】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図１０】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図１１】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図１２】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図１３】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図１４】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図１５】本発明の一実施の形態における、ポインタ情報の例を説明する図である。
【図１６】本発明の一実施の形態における、ジャーナル論理ボリュームの構造を説明する図である。
【図１７】本発明の一実施の形態における、ポインタ情報の例を説明する図である。
【図１８】本発明の一実施の形態における、ポインタ情報の例を説明する図である。
【図１９】本発明の一実施の形態における、データ複製を開始する手順を説明するフローチャートである。
【図２０】本発明の一実施の形態における、初期コピー処理を説明するフローチャートである。
【図２１】本発明の一実施の形態における、命令受信処理を説明する図である。
【図２２】本発明の一実施の形態における、命令受信処理のフローチャートである。
【図２３】本発明の一実施の形態における、ジャーナル作成処理のフローチャートである。
【図２４】本発明の一実施の形態における、リモートライト命令受信処理のフローチャートである。
【図２５】本発明の一実施の形態における、ジャーナル複製処理のフローチャートである。
【図２６】本発明の一実施の形態における、リモートライト命令受信処理を説明する図である。
【図２７】本発明の一実施の形態における、ジャーナル作成処理時の更新情報の例を説明する図である。
【図２８】本発明の一実施の形態における、ジャーナルリード受信処理を説明する図である。
【図２９】本発明の一実施の形態における、ジャーナルリード受信処理のフローチャートである。
【図３０】本発明の一実施の形態における、ジャーナルリード処理を説明する図である。
【図３１】本発明の一実施の形態における、ジャーナルリード処理のフローチャートである。
【図３２】本発明の一実施の形態における、ジャーナル格納処理のフローチャートである。
【図３３】本発明の一実施の形態における、リストア処理を説明する図である。
【図３４】本発明の一実施の形態における、リストア処理のフローチャートである。
【図３５】本発明の一実施の形態のデータ処理システムにおいて第二の記憶システムで障害が発生した場合に第三の記憶システムでのデータ複製を再開する手順を説明する図である。
【図３６】本発明の一実施の形態のデータ処理システムにおいて第二の記憶システムに障害が発生した場合に第三の記憶システムでのデータ複製を再開する際の論理的な構成を示すブロック図である。
【図３７】本発明の一実施の形態のデータ処理システムにおいて第二の記憶システムに障害が発生した場合に第三の記憶システムでのデータ複製を再開する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図３８】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図３９】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図４０】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図４１】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図４２】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図４３】本発明の一実施の形態のデータ処理システムにおいて、ホストコンピュータが第一の記憶システムの使用を開始した後に第一の記憶システムの正論理ボリュームへのデータ更新を第三の記憶システムの副論理ボリュームに反映する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図４４】本発明の一実施の形態のデータ処理システムにおいて、第二の記憶システムが回復した後に第二の記憶システムでのデータ複製を再開する手順を説明する図である。
【図４５】本発明の一実施の形態のデータ処理システムにおいて、第二の記憶システムが回復した後の第二の記憶システムでのデータ複製を再開する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図４６】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図４７】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図４８】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図４９】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図５０】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図５１】本発明の一実施の形態のデータ処理システムにおいて、ホストコンピュータが第一の記憶システムの使用を開始した後に第一の記憶システムの正論理ボリュームへのデータ更新を第二の記憶システムおよび第三の記憶システムの副論理ボリュームに反映する際の、論理的な構成を示すブロック図である。
【図５２】本発明の一実施の形態のデータ処理システムにおいて、ホストコンピュータが第一の記憶システムの使用を開始した後に第一の記憶システムの正論理ボリュームへのデータ更新を第二の記憶システムおよび第三の記憶システムの副論理ボリュームに反映する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図５３】本発明の一実施の形態のデータ処理システムにおいて、第二の記憶システムの非同期データ複製を同期データ複製に変更する手順を説明する図である。
【図５４】本発明の一実施の形態のデータ処理システムにおいて、第二の記憶システムの非同期データ複製を同期データ複製に変更する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図５５】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図５６】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図５７】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図５８】本発明の一実施の形態における、グループ情報の例を説明する図である。
【図５９】本発明の一実施の形態のデータ処理システムにおいて、第一のホストコンピュータの障害発生時に第二の記憶システムのデータの同期データ複製を第一の記憶システムにおいて開始する手順を説明する図である。
【図６０】本発明の一実施の形態のデータ処理システムにおいて、第一のホストコンピュータの障害発生時に第二の記憶システムのデータの同期データ複製を第一の記憶システムにおいて開始する際の、記憶システムおよびホストコンピュータ間の命令および応答の送受信と各記憶システムが保持するジャーナルについて説明する図である。
【図６１】本発明の一実施の形態のデータ処理システムにおいて第一のホストコンピュータで障害が発生する前の論理的な構成を示すブロック図である。
【図６２】本発明の一実施の形態のデータ処理システムにおいて第一のホストコンピュータで障害が発生した後に第二のホストコンピュータと第二の記憶システムで再開した際の論理的な構成を示すブロック図である。
【図６３】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図６４】本発明の一実施の形態における、ペア情報の例を説明する図である。
【図６５】本発明の一実施の形態における、ボリューム情報の例を説明する図である。
【図６６】本発明の一実施の形態における、ペア情報の例を説明する図である。
【符号の説明】
【０２８７】
１００…記憶システム、１００Ａ…記憶システムＡ、１００Ｂ…記憶システムＢ、１００Ｃ…記憶システムＣ、１１０…ＣＨＡ（ホストアダプタ）、１２０…ＤＫＡ（ディスクアダプタ）、１３０…ＣＡＣＨＥ（キャッシュメモリ）、１４０…ＳＭ（共有メモリ）、１５０…ＨＤＤ（記憶装置）、１６０…ＳＷＩＴＣＨ（スイッチ）、１７０…接続線、１８０…ホストコンピュータ、１８０Ｂ…ホストコンピュータＢ、１９０，２００…接続パス、２１０…命令受信処理、２２０…リードライト処理、２３０，ＤＡＴＡ１，ＤＡＴＡ２，ＤＡＴＡ３，ｄａｔａ１，ｄａｔａ２，ｄａｔａ４，ｄａｔａ５，ＣＯＰＹ１，ＣＯＰＹ２，ＪＮＬ１，ＪＮＬ２，ＪＮＬ３…論理ボリューム、２４０…ＪＮＬＲＤ（ジャーナルリード）処理、２５０…リストア処理、３００…更新情報、４００…ボリューム情報、５００…ペア情報、６００…グループ情報、７００…ポインタ情報。
【図１】
2005316684.tif 000003
【図２】
2005316684.tif 000004
【図３】
2005316684.tif 000005
【図４】
2005316684.tif 000006
【図５】
2005316684.tif 000007
【図６】
2005316684.tif 000008
【図７】
2005316684.tif 000009
【図８】
2005316684.tif 000010
【図９】
2005316684.tif 000011
【図１０】
2005316684.tif 000012
【図１１】
2005316684.tif 000013
【図１２】
2005316684.tif 000014
【図１３】
2005316684.tif 000015
【図１４】
2005316684.tif 000016
【図１５】
2005316684.tif 000017
【図１６】
2005316684.tif 000018
【図１７】
2005316684.tif 000019
【図１８】
2005316684.tif 000020
【図１９】
2005316684.tif 000021
【図２０】
2005316684.tif 000022
【図２１】
2005316684.tif 000023
【図２２】
2005316684.tif 000024
【図２３】
2005316684.tif 000025
【図２４】
2005316684.tif 000026
【図２５】
2005316684.tif 000027
【図２６】
2005316684.tif 000028
【図２７】
2005316684.tif 000029
【図２８】
2005316684.tif 000030
【図２９】
2005316684.tif 000031
【図３０】
2005316684.tif 000032
【図３１】
2005316684.tif 000033
【図３２】
2005316684.tif 000034
【図３３】
2005316684.tif 000035
【図３４】
2005316684.tif 000036
【図３５】
2005316684.tif 000037
【図３６】
2005316684.tif 000038
【図３７】
2005316684.tif 000039
【図３８】
2005316684.tif 000040
【図３９】
2005316684.tif 000041
【図４０】
2005316684.tif 000042
【図４１】
2005316684.tif 000043
【図４２】
2005316684.tif 000044
【図４３】
2005316684.tif 000045
【図４４】
2005316684.tif 000046
【図４５】
2005316684.tif 000047
【図４６】
2005316684.tif 000048
【図４７】
2005316684.tif 000049
【図４８】
2005316684.tif 000050
【図４９】
2005316684.tif 000051
【図５０】
2005316684.tif 000052
【図５１】
2005316684.tif 000053
【図５２】
2005316684.tif 000054
【図５３】
2005316684.tif 000055
【図５４】
2005316684.tif 000056
【図５５】
2005316684.tif 000057
【図５６】
2005316684.tif 000058
【図５７】
2005316684.tif 000059
【図５８】
2005316684.tif 000060
【図５９】
2005316684.tif 000061
【図６０】
2005316684.tif 000062
【図６１】
2005316684.tif 000063
【図６２】
2005316684.tif 000064
【図６３】
2005316684.tif 000065
【図６４】
2005316684.tif 000066
【図６５】
2005316684.tif 000067
【図６６】
2005316684.tif 000068