(57)【要約】【課題】  二重書き可能なストレージシステムにおいて、ホストの負荷及びユーザの手間を低減した効率的な二重化復帰を含む制御を実現できる技術を提供する。【解決手段】  ホストから正副のストレージ装置のデータボリュームを対象としてデータを二重書きする。各ストレージ装置が、ホストからの更新データを含む情報を、ジャーナル（更新データ履歴情報）として保持する。二重書き対象の２つの系のうち一方が障害状態となった場合に二重化状態へ復帰させる際に、ストレージ装置間で、ホストを経由せずに、ジャーナルについて通信し、正常な系のジャーナルの一部である、ボリュームの同期化のために必要な最新の同期点以後の保持分を、復旧対象側の系へデータコピーにより転送し、それをもとにボリュームをリストアして同期化する。【選択図】  図８
2007086972.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから第１のストレージ装置の第１のボリュームと第２のストレージ装置の第２のボリュームとを対象としてデータを二重書きするストレージシステムであって、
前記二重書きにおける前記ホストコンピュータからの更新データを含む情報を、前記第１のストレージ装置が第１の更新データ履歴情報として保持し、前記第２のストレージ装置が第２の更新データ履歴情報として保持する第１の処理と、
前記ホストコンピュータから前記第１のボリュームへのパスを含む第１の系及び前記第２のボリュームへのパスを含む第２の系のうち一方の系がＩＯ不可な非二重化状態となった場合に、前記二重書きが可能な二重化状態へ復帰させる際に、
前記第１と第２のストレージ装置の間で、前記第１と第２の更新データ履歴情報に関して通信し、正常な系のストレージ装置の更新データ履歴情報のうち、前記第１と第２のボリュームのデータ内容の同期化のために必要な最新の同期点以後のデータを、前記ホストコンピュータを経由せずに、前記ＩＯ不可な復旧対象の系のストレージ装置へデータコピーして転送する第２の処理と、
前記復旧対象の系のストレージ装置が、前記ストレージ装置間の転送により得られた更新データ履歴情報のデータをもとに、自装置内の前記ボリュームへ反映して前記第１と第２のボリュームを同期化する第３の処理とを行うことを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムにおいて、
前記第１の処理と並行して、前記ホストコンピュータから前記第１と第２のストレージ装置の第１と第２の更新データ履歴情報に対し、定期的に、前記第１と第２のボリュームでのデータ二重化における同期点を識別するための情報を書き込む処理と、
前記第２の処理の際に、前記第１と第２のストレージ装置の間で通信により前記第１と第２の更新データ履歴情報に格納されている前記同期点を識別するための情報を読み出すことにより前記最新の同期点を検出し、前記第１と第２のストレージ装置の間で転送する前記更新データ履歴情報のデータを決める処理とを行うことを特徴とするストレージシステム。
【請求項３】
請求項２記載のストレージシステムにおいて、
前記二重化状態へ復帰させる際に、前記ホストコンピュータから前記正常な系のストレージ装置へ、前記第１と第２のボリュームのデータ内容の同期化のための指示を行い、前記指示を受けた正常な系のストレージ装置と他方の復旧対象の系のストレージ装置とで前記第２から第３の処理を行う処理と、
前記第３の処理の終了以後に、前記ホストコンピュータと前記第１及び第２のストレージ装置との間で通信することにより、前記ホストコンピュータが、前記第１及び第２のストレージ装置から前記同期化が完了したことを確認して、前記二重書きを再開する処理とを行うことを特徴とするストレージシステム。
【請求項４】
請求項３記載のストレージシステムにおいて、
前記第１及び第２のストレージ装置は、それぞれ、前記第３の処理を終了した直後に、前記ホストコンピュータへ、前記同期化を完了したことの通知を行い、
前記ホストコンピュータは、前記第１及び第２のストレージ装置の両方からの前記通知を受領した場合は、前記二重化状態へ復帰し、一定時間経過後も前記両方からの通知を受領できない場合は、前記同期化のための指示を行う処理に戻り、前記両方からの通知を受領するまで前記同期化及び確認の処理を繰り返すことを特徴とするストレージシステム。
【請求項５】
請求項３記載のストレージシステムにおいて、
前記ホストコンピュータが、前記同期化のための指示を行った以後に、一定時間毎に、前記第１及び第２のストレージ装置へ、それぞれのストレージ装置のボリュームの状態の確認のための要求を行い、
前記第１及び第２のストレージ装置のそれぞれは、前記要求に応じて、前記ホストコンピュータへ、自ストレージ装置のボリュームの状態の報告を行い、
前記ホストコンピュータは、前記第１及び第２のストレージ装置の両方から前記同期化を完了したことを示す前記状態の報告を受領した場合は、前記二重化状態へ復帰し、前記要求送信後に一定時間待機後も前記報告を受領できない場合は、前記同期化のための指示を行う処理に戻り、前記両方から前記報告を受領するまで前記同期化及び確認の処理を繰り返すことを特徴とするストレージシステム。
【請求項６】
ホストコンピュータから第１のストレージ装置の第１のボリュームと第２のストレージ装置の第２のボリュームとを対象としてデータの二重書きを行う二重化制御方法であって、
前記ホストコンピュータからの更新データを含む情報を、前記第１のストレージ装置が第１の更新データ履歴情報として保持し、前記第２のストレージ装置が第２の更新データ履歴情報として保持する第１の工程と、
前記ホストコンピュータから前記第１のボリュームへのパスを含む第１の系と前記第２のボリュームへのパスを含む第２の系とのうち一方の系がＩＯ不可な非二重化状態となった場合に、前記二重書きが可能な二重化状態へ復帰させる際に、
前記ホストコンピュータから正常な系のストレージ装置へ、前記第１と第２のボリュームのデータ内容の同期化のための指示を行う第２の工程と、
前記指示に従い、前記第１と第２のストレージ装置の間で、前記第１及び第２の更新データ履歴情報に関して通信する第３の工程と、
前記正常な系のストレージ装置の更新データ履歴情報のうち、前記第１と第２のボリュームのデータ内容の同期化のために必要な最新の同期点以後のデータを、復旧対象の系のストレージ装置へ前記ホストコンピュータを経由せずにデータコピーして転送する第４の工程と、
前記復旧対象の系のストレージ装置が、前記ストレージ装置間の転送により得られた更新データ履歴情報のデータをもとに、自装置内の前記ボリュームへ反映してデータ内容を前記第１と第２のボリュームで同期化する第５の工程と、
前記指示以後に、前記ホストコンピュータと前記第１及び第２のストレージ装置との間で通信して、前記ストレージ装置のボリュームの状態の情報を授受する第６の工程と、
前記状態の情報の授受により、前記ホストコンピュータが、前記第１及び第２のストレージ装置の両方から、前記同期化を完了したことを確認した場合には、前記二重化状態へ復帰し、一定時間経過後も前記両方から前記同期化を完了したことを確認できない場合には、前記第２の工程に戻り前記両方から前記同期化を完了したことを確認できるまで再試行する第７の工程とを有することを特徴とする二重化制御方法。
【請求項７】
ホストコンピュータから、第１のストレージ装置の第１のボリュームと第２のストレージ装置の第２のボリュームとを対象としてデータの二重書きを行う二重化制御方法の処理を行わせるプログラムであって、
前記ホストコンピュータからの更新データを含む情報を、前記第１のストレージ装置が第１の更新データ履歴情報として保持し、前記第２のストレージ装置が第２の更新データ履歴情報として保持する第１の工程と、
前記ホストコンピュータから前記第１のボリュームへのパスを含む第１の系と前記第２のボリュームへのパスを含む第２の系とのうち一方の系がＩＯ不可な非二重化状態となった場合に、前記二重書きが可能な二重化状態へ復帰させる際に、
前記ホストコンピュータから正常な系のストレージ装置へ、前記第１と第２のボリュームのデータ内容の同期化のための指示を行う第２の工程と、
前記指示に従い、前記第１と第２のストレージ装置の間で、前記第１及び第２の更新データ履歴情報に関して通信する第３の工程と、
前記正常な系のストレージ装置の更新データ履歴情報のうち、前記第１と第２のボリュームのデータ内容の同期化のために必要な最新の同期点以後のデータを、復旧対象の系のストレージ装置へ前記ホストコンピュータを経由せずにデータコピーして転送する第４の工程と、
前記復旧対象の系のストレージ装置が、前記ストレージ装置間の転送により得られた更新データ履歴情報のデータをもとに、自装置内の前記ボリュームへ反映してデータ内容を前記第１と第２のボリュームで同期化する第５の工程と、
前記指示以後に、前記ホストコンピュータと前記第１及び第２のストレージ装置との間で通信して、前記ストレージ装置のボリュームの状態の情報を授受する第６の工程と、
前記状態の情報の授受により、前記ホストコンピュータが、前記第１及び第２のストレージ装置の両方から、前記同期化を完了したことを確認した場合には、前記二重化状態へ復帰し、一定時間経過後も前記両方から前記同期化を完了したことを確認できない場合には、前記第２の工程に戻り前記両方から前記同期化を完了したことを確認できるまで再試行する第７の工程とを有する処理を行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ機能を備えハードディスクドライブ（ＨＤＤ）等の記憶装置上の記憶領域（ボリューム）に対してデータを入出力（ＩＯ）するストレージ装置（ディスクアレイ装置などともいう）、広くは記憶制御システムの技術に関する。特に、ホストコンピュータから二重のストレージ装置へのデータの二重書き（二重化ともいう）の処理、及び、二重のデータボリュームの同期化による二重化状態への復帰などを含む制御（二重化制御と称する）を行うストレージシステムの技術に関する。
【背景技術】
【０００２】
従来技術として、ホストとなるコンピュータと、ＲＡＩＤ機能を備える２台のストレージ装置とが通信接続されるストレージシステムにおいて、ホストからのデータ二重書き（二重化）の処理及び機能が実現されている。前記二重書きは、ホストから２台の各ストレージ装置（第１、第２のストレージ装置とする）の記憶ボリューム（第１、第２のボリュームとする）に対して同じデータを書き込むことにより、データが二重（あるいは複製）された状態を保持することである。
【０００３】
ストレージシステムにおいて、上記のようなホストからの二重書き機能は、データ冗長化、信頼性向上などに寄与し、今後も有効な機能である。
【０００４】
前記二重書き機能に関し、それと連動したストレージ装置及びストレージシステムの機能として、例えば、障害状態からの二重書き状態への自動的な復帰の機能は提供されていない。
【０００５】
前記ストレージシステムにおいて、前記二重書きの対象となる２つのデータＩＯ系（第１（正）の系及び第２（副）の系とする）のうち一方の障害などにより、二重化状態から非二重化状態になることが発生する。前記二重化状態は、第１、第２のボリュームのデータ内容がほぼ同じで同期している状態である。前記非二重化状態（換言すれば一重化状態）は、第１、第２のボリュームのデータ内容が異なり同期していない状態である。
【０００６】
前記二重書きの制御では、前記二重化状態から非二重化状態となった場合に、何らかの処理手順を通じて二重化状態へ復帰させることが必要となる。非二重化状態により第１、第２のボリュームのデータ内容に差が生じるので、障害部位の復旧と並行して、第１、第２のボリュームのデータ内容を同期化させる処理が必要となる。
【０００７】
特開平７−３６６２９号公報（特許文献１）には、多重化されたディスク装置の障害発生時における障害復旧を行うための復旧処理方法について記載されている。
【特許文献１】特開平７−３６６２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記二重化状態への復帰（以下、二重化復帰と称する）の方法として、二重書きでのオンライン業務実行可能な二重化状態への復旧までには、ホスト経由での人手による作業の介入が必要である。特に、ホストを経由して、正常側の系のストレージ装置の対象ボリューム（正常ボリューム）から、復旧対象側の系のストレージ装置の対象ボリューム（復旧対象ボリューム）へ、ボリュームデータを転送（コピー）する必要がある。その結果、復旧対象ボリュームを正常ボリュームとデータ同期化させる。
【０００９】
従来、前記復帰のためのデータ転送では、ホストから、通信接続を通じて、正常側の対象の大容量記憶装置の全記憶領域データをコピーする必要がある。特に、ホストは、ホスト経由のコピー処理作業の間、一旦通常業務を停止した上でコピー作業を行う必要がある。この方法では、ホスト経由であることにより、ホストの負荷及び作業を行うユーザの手間が大きく、全体の効率が良くないという問題がある。
【００１０】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、二重書き可能なストレージシステムにおいて、ホストの負荷及びユーザの手間を低減した効率的な二重化復帰を含む制御を実現できる技術を提供することにある。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明は、記憶制御装置（ＤＫＣ）と記憶装置（ＨＤＤ等）とを備えＲＡＩＤ機能を備える第１及び第２のストレージ装置と、ストレージ装置の記憶領域（ボリューム）に対するデータＩＯを行うホストコンピュータとを含んで構成されるストレージシステムの技術であって、以下に示すような技術的手段を備えることを特徴とする。
【００１２】
本システムは、ホストコンピュータから通信手段を介して第１、第２のストレージ装置へのデータの二重書き（二重化）の処理が実行可能な構成を有する。第１、第２のストレージ装置は、前記二重書きの対象となるデータボリューム（第１、第２のボリューム）を有する。ホストコンピュータから第１のボリュームへのパスを含むデータＩＯの系（第１の系）と、同様に第２のボリュームへのパスを含むデータＩＯの系（第２の系）とを有する。
【００１３】
本システムは、前記ホストコンピュータから第１と第２のボリュームに対する二重書きを含む前記第１と第２のボリュームのデータ内容が同期している二重化状態の制御と、障害等により前記第１と第２のボリュームのデータ内容が同期していない状態（非二重化状態）からの、前記第１と第２のボリュームのデータ内容の同期化による前記二重化状態への復帰の制御とを含む、二重化制御を行うものである。
【００１４】
本システムでは、ホストコンピュータと、第１及び第２のストレージ装置とにおいて、前記二重化制御の方法及び処理を実現するための相互に関連するプログラムをプロセッサにより実行する。詳しくは例えば以下である。
【００１５】
（１）本ストレージシステムは、以下の第１〜第４の処理を行う手段を有する。
【００１６】
第１に、二重書き実行時、第１及び第２のストレージ装置が、ホストコンピュータからの前記二重書きのＩＯを構成する更新ＩＯ要求に応じて、前記ボリュームに対し更新ＩＯ処理すると共に、前記更新ＩＯの情報（コマンド、アドレス及び更新データ等）を自ストレージ装置内に第１及び第２の更新データ履歴情報（ジャーナル）として保持、即ち更新順序付けを守って順に格納する処理を行う手段（実施の形態における二重化部、ＪＮＬ保持部に対応する）を有する。
【００１７】
第２に、二重書きの対象となる第１及び第２の系のうち、一方の系が、障害などによりＩＯ不可（異常）な、非二重化状態（換言すれば第１と第２のボリュームのデータ内容の同期が保証されない一重化状態）となった場合に、その非二重化状態から、第１と第２のボリュームのデータ内容を一致（同期化）させて二重書きが実行可能な二重化状態へ復帰させる際に、第１と第２のストレージ装置の間で、ホストコンピュータを経由せずに、第１及び第２のジャーナルの内容について通信し、正常な一方の系のストレージ装置のジャーナルの一部、即ち第１と第２のボリュームのデータ内容の同期化のために必要な最新の同期点以後の保持分データ（一方の系でのみ保持されているデータ）を、チェック及び確認してから、復旧対象の他方の系のストレージ装置へデータコピーして転送し、転送により第１と第２のジャーナルの内容を一致（同期化）させる処理を行う手段（ストレージ間通信部と同期点検出部）を有する。前記同期点は、第１と第２の系でデータ内容の同期が保証されている時点及び位置である。
【００１８】
第３に、復旧対象の系のストレージ装置が、ストレージ装置間の通信及び転送により得られたジャーナルのデータをもとに、前記更新分の更新ＩＯ情報を自身のボリュームへ反映して、データ内容を第１と第２のボリュームで同期化させる処理を行う手段（リストア部）を有する。
【００１９】
第４に、第１及び第２のストレージ装置のそれぞれとホストコンピュータとの間で、各ストレージ装置の状態、即ち前記ボリュームの稼働や前記コピー処理に関する状態を含む状態の情報を報告する処理を行う手段（ホストＩ/Ｆ制御部あるいは同期点検出部）を有する。
【００２０】
これらの処理により、ホストコンピュータと各ストレージ装置のボリュームとの系において一方の系の障害などによって非二重化状態となった後に、障害系の復旧を通じて二重化状態に復帰させる際に、ホストコンピュータを経由せずに第１と第２ストレージ装置の間で必要なジャーナルデータの転送をもとに第１と第２のボリュームのデータ同期化を行って二重化状態へ復帰できる。
【００２１】
また、例えばホストコンピュータと第１のストレージ装置は第１の通信リンクで接続し、ホストコンピュータと第２のストレージ装置は第２の通信リンクで接続し、第１と第２のストレージ装置は第３の通信リンクで接続する。また、障害系の復旧は、上記の処理を行う手段とは独立した復旧手段により並行して行われる。
【００２２】
（２）本システムは、さらに、ホストコンピュータから第１及び第２のストレージ装置の第１及び第２の各ジャーナルに対し、一定時間毎などの適宜タイミングで、前記更新ＩＯとは別に、第１と第２のボリュームでのデータ二重化における同期点を識別するための情報（同期マーカ）を書き込む処理を行う手段（マーカ書込部、ＪＮＬ保持部など）と、第１と第２のストレージ装置の間での通信により第１と第２のジャーナルに格納されている同期マーカを読み出すことにより最新の同期点を検出し、第１と第２のストレージ装置の間で転送するデータを決める処理を行う手段（同期点検出部）とを有する。同期マーカは、例えば時間的な順序を識別できる番号や時刻情報などを持つ形式である。第１と第２の系のジャーナル内において同一の同期マーカが確認される場合には、そのマーカ位置は前記同期点を示し、そのマーカ位置までに格納されている更新ＩＯ情報については第１と第２の系でのデータ同期が保証されている。ある同期マーカが一方の系のジャーナルにしか格納されていない場合は、他方の側では障害などにより同期マーカ及びその前後のＩＯが正常に完了されなかったことがわかる。複数のマーカのうち各マーカの識別番号などにより最新の同期点を検出できる。基本的に第１と第２のジャーナルに対し同じマーカを同時に書き込む形式である（障害系のジャーナルには書き込まれないことになる）。同期化のために必要な更新ＩＯ情報データは、第１及び第２のジャーナル内において両方に書き込まれている最新の同期マーカにより判断できる。
【００２３】
（３）本システムは、さらに、ホストコンピュータから正常な系のストレージ装置へ、前記ボリュームのデータ内容の同期化のための指示（同期指示）を行う処理を行う手段を有する。指示を受けたストレージ装置は、第１と第２のストレージ装置の間で、第１と第２のボリュームを同期化させる処理を実行する。ホストコンピュータと各ストレージ装置との通信により、各ストレージ装置は、ホストコンピュータへ、同期化が完了したことの通知（報告）または状態の情報の送信を行う。ホストコンピュータは、両方のストレージ装置からの前記通知を受領して同期化完了及び障害復旧を確認した場合は、二重化状態へ復帰する。
【００２４】
（４）本システムは、さらに、ホストコンピュータが、第１及び第２のストレージ装置の両方から前記第１と第２のボリュームのデータ内容の同期化を完了したことの通知（報告）を受領・確認した場合は、二重化状態へ復帰し、即ち二重書きを再開し、また一定時間経過後も前記両方の系から前記通知を受領できない場合は、両方の系から受領・確認するまで同様の処理（同期化及びその確認）を繰り返す処理を行う手段（二重化部等）を有する。
【００２５】
例えば、第１及び第２のストレージ装置が、それぞれ、前記ボリュームの同期化の終了後に、ホストコンピュータへ、前記同期化を完了したことを示す、完了通知を行う。ホストコンピュータは、第１及び第２のストレージ装置の両方からの完了通知を確認した場合は、二重化状態へ復帰する。一定時間経過後も確認できない場合は、前記同期指示などの処理に戻り、両方の系から確認がとれるまで同様の処理を繰り返す。
【００２６】
（５）また例えば、ホストコンピュータが、第１及び第２のストレージ装置のそれぞれへ、前記同期指示後に、一定時間毎のタイミングで、前記同期化を完了したかどうか調べるため、前記ボリュームの状態を含むストレージ装置の状態の確認のための要求を行う。第１及び第２のストレージ装置のそれぞれは、前記要求に応じて、自ストレージ装置の状態の情報の報告を行う。ホストコンピュータは、第１及び第２のストレージ装置の両方から前記同期化を完了したことを示す状態の情報の報告を確認した場合は、二重化状態へ復帰する。一定時間経過後も両方から確認できない場合は、前記同期指示などの処理に戻り、両方の系から確認がとれるまで同様の処理を繰り返す。
【００２７】
その他、ホストコンピュータ、第１及び第２のストレージ装置から通信アクセス可能な外部コンピュータを有する構成において、外部コンピュータに前記ジャーナルを保存して管理し、第１、第２のストレージ装置は、外部コンピュータのジャーナルに必要に応じてアクセスして利用するようにしてもよい。
【００２８】
（６）また、本二重化制御方法は、ホストコンピュータから、第１のストレージ装置の第１のボリュームと第２のストレージ装置の第２のボリュームとを対象としてデータの二重書き（二重化ＩＯ）を行う方法であって、以下の工程を有する。
【００２９】
第１に、通常時、第１及び第２のストレージ装置が、ホストコンピュータからの前記二重化ＩＯを構成する更新ＩＯ要求を、第１及び第２のジャーナルとして保持する工程を有する。第２に、前記第１及び第２の系のうち一方の系が障害などによりＩＯ不可な非二重化状態となった場合に二重化状態へ復帰させる際に、ホストコンピュータから正常な系のストレージ装置へ、ボリュームのデータ内容の同期化のための指示を行う工程を有する。第３に、前記指示に従い、前記第１と第２のストレージ装置の間で、第１及び第２のジャーナルについて通信する工程を有する。第４に、正常な一方の系のストレージ装置のジャーナルの一部、即ち同期化のために必要な最新の同期点以後の保持分データを、復旧対象の他方の系のストレージ装置へデータコピー転送する工程を有する。第５に、前記復旧対象の系のストレージ装置が、ストレージ装置間の転送により得られたジャーナルのデータをもとに、前記更新分の更新ＩＯ情報を自身のボリュームへ反映してデータ内容を第１と第２のボリュームで同期化する工程を有する。第６に、第１及び第２のストレージ装置のそれぞれからホストコンピュータに対し自ストレージ装置のボリュームの状態を含む状態の情報を報告する工程を有する。第７に、ホストコンピュータが、通信により、第１、第２のストレージ装置の両方から前記同期化を完了したことを確認した場合に、二重化状態へ復帰し、一定時間経過後も両方の系から確認できない場合に、両方の系から確認がとれるまで同様の処理（前記第２〜第６の処理）を繰り返し、同期化及び確認を再試行する工程を有する。これら工程に従い、ストレージ装置間でホストコンピュータを経由せずに第１及び第２のボリュームの同期化及び確認を行うことにより、二重化状態へ復帰できる。
【発明の効果】
【００３０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、二重書き環境において、二重化復帰の際、従来ホスト経由した第１、第２のストレージ装置間のデータコピーと、該コピー時の通常業務の停止を最小限にすることができ、ホストの負荷とユーザの手間を低減して全体的に効率化することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。図１〜図９は、本実施の形態を説明するための図である。
【００３２】
（実施の形態１）
実施の形態１では、概要として、ストレージシステムにおける二重化制御方法として、ホストから二重書き対象の正副の各ストレージ装置内に更新データと同期マーカを含むジャーナルを保存する。二重化復帰の際は、ホストからの指示により、ストレージ装置間で直接に通信して必要分のジャーナルデータを転送し、それをもとに対象ボリュームのデータをリストアすることにより、正副でデータ同期化する。ホストは、正副系からデータ同期化の完了通知を受領すると二重書きを再開する。両方の系から完了通知を確認できない場合は再度指示して同期化を繰り返す。
【００３３】
＜ストレージシステム＞
図１は、本発明の実施の形態１におけるストレージシステムの構成を示すものであり、特に二重化制御に係わる必要ブロックを示す。
【００３４】
本ストレージシステムは、ホストコンピュータ（以下、ホストと略称する）３００と、第１のストレージ装置（１００）及び第２ストレージ装置（２００）とが通信手段により接続される構成である。ホスト３００と第１のストレージ装置１００は、通信リンク４０１で接続され、ホスト３００と第２のストレージ装置２００は、通信リンク４０２で接続される。また、ストレージ装置１００とストレージ装置２００は、ネットワーク４００を介して通信リンク４０３で接続される。
【００３５】
二重書き機能及び構成に係わり、第１のストレージ装置１００は正ストレージ装置であり正ボリューム（５１）を有し、それと関係して、第２のストレージ装置２００は副ストレージ装置であり副ボリューム（５２）を有する。なお本システムで第１のストレージ装置１００と第２のストレージ装置２００は、基本的に同様の機能を備えたストレージ装置とするが、異なる種類の装置とした形態でもよい。
【００３６】
三者（１００，２００，３００）間の通信リンク（４０１，４０２，４０３）は、独立したものとし、二重化ＩＯとＪＮＬ転送等は独立して行われる。ホスト３００の通信処理部と第１のストレージ装置１００のホストＩ/Ｆ（インタフェース）制御部１１１とが通信リンク４０１で接続され、同様にホスト３００の通信処理部と第２のストレージ装置２００のホストＩ/Ｆ制御部１１１とが通信リンク４０２で接続される。なお、三者間の通信接続の形態は、例えばＳＡＮ（ストレージ・エリア・ネットワーク）などの１つのネットワーク上で相互接続される等、他の形態でもよい。
【００３７】
ホスト３００は、ＰＣ、サーバ、メインフレームコンピュータなどの情報処理装置である。ホスト３００が有するプロセッサ上でプログラムを実行することにより、ホスト３００としての機能が実現される。ホスト３００は、二重化制御を実現する二重化部３２０を有する。二重化部３２０には、Ｖ（ボリューム）状態管理部３０１、マーカ書込部３０２を含む。
【００３８】
各ストレージ装置（１００，２００）は、大別して、ＤＫＣ（ディスクコントローラ）１１０と、ＤＫＵ（ディスクユニット）１３０とを有する構成である。各ストレージ装置（１００，２００）内に、データＶ（ボリューム）及びＪＮＬ（ジャーナル）を保持する。
【００３９】
ＤＫＣ１１０は、ＤＫＵ１３０を接続しており、ＤＫＵ１３０内の各ＨＤＤ１３１と通信接続される。ＤＫＣ１１０は、外部のホスト３００や他のストレージ装置（２００）のＤＫＣ１１０やその他の情報処理装置などと通信接続される。ＤＫＣ１１０は、ＤＫＵ１３０の制御を含め、ホスト３００から記憶ボリュームへのデータＩＯを制御する記憶制御装置である。ＤＫＣ１１０は、ＤＫＵ１３０のＨＤＤ１３１上の記憶ボリュームに対してデータを読み書きし、また、ＨＤＤ１３１のグループに対して所定のＲＡＩＤレベルを設定してＲＡＩＤ制御が可能である。ＤＫＵ１３０は、複数のＨＤＤ１３１等の記憶装置を内部に接続している。なおＤＫＣ１１０に対し、ＤＫＵ１３０以外に外部の記憶装置が接続され、それらを制御するようにしてもよい。
【００４０】
ＤＫＣ１１０は、ホストＩ/Ｆ制御部１１１及びディスクＩ/Ｆ制御部１１２を含む処理部により構成される。ホストＩ/Ｆ制御部１１１は、ホスト３００との通信処理を制御する。ディスクＩ/Ｆ制御部１１２は、ＤＫＵ１３０のＨＤＤ１３１との通信処理を制御する。ＤＫＣ１１０は、その他、ＩＯデータや制御情報などを格納するメモリ部や処理部間のデータ転送処理を行う接続部などを備える。
【００４１】
ホストＩ/Ｆ制御部１１１では、二重化制御方法の処理に係わるプログラム１２０を実行する。各ストレージ装置（１００，２００）で同様の対応したプログラム１２０を有する。プログラム１２０により実現される処理部として、ＪＮＬ保持部１２１、ストレージ間通信部１２２、同期点検出部（同期処理部）１２３、リストア部１２４を含む。
【００４２】
本実施の形態では、ストレージ装置側では、ホストＩ/Ｆ制御部１１１がプログラム１２０を実行することで二重化制御方法に係わる処理を実現している。これに限らず、各ストレージ装置内の他の部分でソフトウェアまたはハードウェア的に同様の処理機能を実装してもよい。
【００４３】
第１のストレージ装置１００のＤＫＵ１３０に確保される論理ボリュームにおいて、第１のデータＶ５１と、それと関連付けられる第１のＪＮＬ６１とを有する。それらと関連付けられる形で、同様に、第２のストレージ装置２００のＤＫＵ１３０に確保される論理ボリュームにおいて、第２のデータＶ５２と、それと関連付けられる第２のＪＮＬ６２とを有する。第１のデータＶ５１を正ボリュームとも称し、第２のデータＶ５２を副ボリュームとも称する。第１のＪＮＬ６１を正ジャーナルとも称し、第２のＪＮＬ６２を副ジャーナルとも称する。
【００４４】
データＶ（５１，５２）は、ホスト３００からの二重化ＩＯにおけるデータＩＯ対象となるボリュームである。ＪＮＬ（６１，６２）は、関連付けられるデータＶ（５１，５２）についての更新データ履歴情報である。本実施の形態１では、ＪＮＬ（６１，６２）は、データＶ（５１，５２）と同様にＤＫＵ１３０内に論理ボリュームの形で保持される。
【００４５】
ＪＮＬ保持部１２１は、自ストレージ装置内にＪＮＬ（６１，６２）を保持・更新する処理及びその管理を行う。ＪＮＬ保持部１２１は、ホスト３００からの更新データ及び同期マーカを自ストレージ装置内のＪＮＬ（６１，６２）に書き込む。
【００４６】
ストレージ間通信部１２２は、ストレージ装置（１００，２００）間の通信リンク４０３を通じて直接に通信する処理を行う。ストレージ間通信部１２２は、例えば、論理ボリューム間のリモートコピーを制御するリモートコピー機能を含んでもよい。
【００４７】
同期点検出部１２３は、データＶ（５１，５２）及びＪＮＬ（６１，６２）に関し、データ同期点を検出する処理を含む同期（同期化）処理を管理する。
【００４８】
リストア部１２４は、自ストレージ装置内においてＪＮＬ（６１，６２）のデータを用いてデータＶ（５１，５２）をリストアする処理を行う。
【００４９】
本実施の形態１で、二重化復帰のための同期処理では、同期点検出部１２３とストレージ間通信部１２２とによりＪＮＬ同期化が行われ、次いでリストア部１２４によりデータＶ同期化が行われることになる。
【００５０】
また、ホストＩ/Ｆ制御部１１１は、ホスト３００との間で、二重化制御のための指示やＶ状態の報告などを授受する処理なども行う。
【００５１】
ホスト３００のＶ状態管理部３０１は、二重化制御に係わり、二重書き対象となる各ストレージ装置（１００，２００）の各データＶ（５１，５２）の状態を管理する。
【００５２】
また、マーカ書込部３０２は、二重書きのデータＩＯに伴い各ＪＮＬ（６１，６２）に対し同期マーカを書き込む処理、換言すれば、同期マーカを書き込むために、二重化ＩＯの更新データと共に同期マーカを送信する処理を行う。
【００５３】
図２は、本発明の実施の形態１におけるストレージシステムの構成を示すものであり、特にホスト３００とストレージ装置１００とのハードウェア構成例を示す。ホスト３００とストレージ装置１００は、所定の対応Ｉ/Ｆで接続される。また第１と第２のストレージ装置（１００，２００）間は、所定の対応Ｉ/Ｆで接続される。またＤＫＣ１１０−ＨＤＤ１３１間などが、所定の対応Ｉ/Ｆで接続される。本例ではこれらがファイバチャネル（ＦＣと略す）−Ｉ/Ｆで接続されるものとするが、その他Ｉ/Ｆでも構わない。
【００５４】
＜ホストコンピュータ＞
ホスト３００は、ＣＰＵ３１１、メモリ３１２、キーボードやマウス等の入力装置３１３、ディスプレイ等の出力装置３１４、補助記憶装置となるＨＤＤ３１５やＣＤドライブ３１６、通信処理部となるＨＢＡ（ホストバスアダプタ）３１７などを備える。ＣＰＵ３１１によりメモリ３１２上の各種プログラムが実行される。ホスト３００は、メモリ３１２上に、業務アプリケーションプログラム３４０、ストレージ管理・利用プログラム３３０を有する。
【００５５】
業務アプリケーションプログラム３４０は、ストレージ管理・利用プログラム３３０によるストレージ装置（１００，２００）に対するデータＩＯを利用して情報処理サービス（業務処理）を提供するためのプログラムである。業務アプリケーションプログラム３４０は、通常時に業務処理を実行する。ホスト３００は、ＰＣ等のクライアント装置と通信接続されてサービスを提供するサーバとして機能することもできる。
【００５６】
ストレージ管理・利用プログラム３３０は、ストレージ装置（１００，２００）に対するデータＩＯを含むストレージ利用及びストレージ管理のためのプログラムである。本実施の形態では、ストレージ管理・利用プログラム３３０は、二重化部３２０を含んでいる。二重化部３２０は、二重書き及び二重化復帰を含む二重化制御のための処理及びそのユーザＩ/Ｆを提供するためのプログラム部分である。二重化部３２０は、Ｖ状態管理部３０１、マーカ書込部３０２を含む。Ｖ状態管理部３０１は、図７で示すようなＶ状態管理情報３０５を管理する。二重化部３２０を通じて、二重化の対象となるデータＶ（５１，５２）等の設定が可能である。
【００５７】
ＨＢＡ３１７は、例えばＦＣ-Ｉ/Ｆ対応の複数のポートを内蔵した通信処理装置である。例えばＨＢＡ３１７の各ポートにより通信リンク４０１，４０２と接続する。
【００５８】
＜ストレージ装置＞
ストレージ装置１００は、例えば図示しない基本筐体と増設筐体とから構成できる。基本筐体は、最小構成単位であり、ＤＫＣ１１０が担う記憶制御機能と、ＤＫＵ１３０が担う記憶機能との両方を備える。増設筐体は、オプション単位であり、記憶機能を備える。各筐体間が通信ケーブルで通信可能に接続される。
【００５９】
基本筐体には、図示しない、バッテリ、ＡＣボックス、及びＡＣ−ＤＣ電源などの電源部や、ＤＫＣボックス及びＤＫＵボックスや、ＳＶＰ（サービスプロセッサ）１９０、操作パネル、ファン等が配備されている。
【００６０】
前記バッテリは、ＡＣ−ＤＣ電源に対して接続され、停電時のバックアップ電源として機能する。前記ＡＣボックスは、入力ＡＣ電源を接続し、前記ＡＣ−ＤＣ電源と接続される。前記ＡＣ−ＤＣ電源は、入力ＡＣ電源についてＡＣ−ＤＣ変換を行い、ＤＫＣ１１０等の各部位に対してＤＣ電源を供給する。
【００６１】
前記ＤＫＣボックスは、ＤＫＣ１１０を構成する制御パッケージを装着可能な複数のスロット等の構造を有する。制御パッケージは、各スロットにそれぞれ挿抜可能に接続され、パッケージ単位で交換可能となっている。ＤＫＣボックス内には、パッケージ相互接続のためのバックプレーンボードを有し、各パッケージがコネクタを介してバックプレーンボードに接続される。前記ＤＫＵボックスには、ＤＫＵ１３０を構成するＨＤＤ１３１等がそれぞれ挿抜可能に接続される。前記操作パネルは、装置の基本操作のためのスイッチや、各種情報表示を行う表示器などが配されている。前記複数のファンは、筐体内の部位に対して送風することにより空冷する。
【００６２】
ＤＫＣ１１０のＤＫＡ１２に対して接続網を介してＤＫＵ１３０内の各ＨＤＤ１３１が通信接続される。ＨＤＤ１３１は、ＤＫＡ１２側からの要求に応じてそのディスク領域にデータを読み書きする動作を行う。ＨＤＤ１３１における記憶領域単位は、例えばＬＢＡ（ロジカルブロックアドレス）に対応したブロック単位である。ＨＤＤ１３１としては各種Ｉ/Ｆのドライブが使用可能であり、対応Ｉ/ＦのＤＫＡ１２によりアクセスされる。ＤＫＵ１３０内には、例えばＦＣ−ＡＬ（Fibre Channel - Arbitrated Loop）により、多数のＨＤＤ１３１が接続される。
【００６３】
ストレージ装置１００は、一般に可用性向上のためにクラスタ構成が採られる。例えば、ＤＫＣ１１０が電源部などと共に二重の制御クラスタとして構成される。一方のクラスタが障害などによりダウンした際でも他方の正常なクラスタの稼動継続によりサービス提供が維持できる。
【００６４】
ＤＫＣ１１０は、制御パッケージに対応した処理部として、本例では、ＣＨＡ（チャネルアダプタ）１１、ＤＫＡ（ディスクアダプタ）１２、ＣＭ（キャッシュメモリ）１３、ＳＭ（シェアドメモリ）１４、ＳＷ（クロスバースイッチ）１５を有する。各部は、ＳＷ１５を介して相互に通信やデータ転送が可能に接続される。
【００６５】
ＣＨＡ１１は、外部装置に対するチャネルＩ/Ｆ制御を行う部位である。前記ホストＩ/Ｆ制御部１１１は、ＣＨＡ１１の機能に対応付けられる。ＤＫＡ１２は、ＨＤＤ１３１に対するディスクＩ/Ｆ制御を行う部位である。前記ディスクＩ/Ｆ制御部１１２は、ＤＫＡ１２の機能に対応付けられる。ＣＨＡ１１やＤＫＡ１２は、例えば、図示しない複数のポート部、ＭＰＵ（マイクロプロセッサユニット）、ワークメモリやプログラムメモリ、及びＤＭＡＣ（ダイレクトメモリアクセスコントローラ）などを備えて構成される。ポート部は、外部との間で対応Ｉ/Ｆのプロトコル通信処理を行う。ＭＰＵは、ポート部やＤＭＡＣの制御などを行う。ＤＭＡＣは、ＤＭＡデータ転送処理、例えばＣＭ１３との間のＩＯデータ転送処理を行う。本実施の形態では、各ＣＨＡ１１及びＤＫＡ１２は、１つ以上のＭＰＵが搭載されており、それぞれ独立して処理を実行可能である。
【００６６】
本実施の形態では、主にＣＨＡ１１での制御・処理を通じて、ホスト３００との間で二重化制御が可能である。ＣＨＡ１１は、二重化制御を行うためのプログラム１２０をＭＰＵにより実行する。なおＤＫＣ１１０内においてＣＨＡ１１以外の処理部に同様の処理を行わせるようにしてもよい。
【００６７】
ＣＭ１３やＳＭ１４は、ＤＫＣ１１０内でＣＨＡ１１等の各部に共用されるメモリである。なおこれらメモリは他クラスタからもアクセスされる。ＣＭ１３は、ボリュームに対するＩＯデータ等のキャッシュのために使用される。ＳＭ１４は、構成情報などの制御情報の格納に使用される。ＣＭ１３及びＳＭ１４上のデータ・情報はバックアップされ内容が保持される。ストレージ装置１００内の状態、例えば各部位の構成や障害状態や処理状況などは、随時、ＤＫＣ１１０内に有するＳＭ１４などのメモリに情報・データとして格納／読み書きされる。
【００６８】
ＳＷ１５は、ＣＨＡ１１、ＤＫＡ１２、ＣＭ１３、ＳＭ１４等の各部間の接続パスを切り替えてデータ転送する接続網である。各パスは、物理的なライン（バス）上に必要に応じて論理的なパスが設定されるものである。データＩＯに関し、正副のストレージ装置（１００，２００）の両方において、ホスト３００からデータＶ（５１，５２）及びＪＮＬ（６１，６２）までのパスを含むデータＩＯ系（それぞれ正系、副系と称する）が設定・確保される。
【００６９】
ＤＫＵ１３０において、記憶ボリュームは、ＨＤＤ１３１等による物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む、データを記憶するための記憶資源をいう。データＩＯ対象となる論理ボリュームは、例えばＬＵ１３３に対応付けられる。ＬＵ（論理ユニット）１３３は、ＬＤＥＶ（論理デバイス）１３２のセットと対応付けられる記憶領域である。ＬＤＥＶ１３２は、物理ボリューム（ＨＤＤ１３１）のグループ（ディスクアレイ）上に設定されＲＡＩＤ制御の単位となる記憶領域である。ホスト３００からアクセス可能な記憶領域を、ＲＡＩＤ制御により管理されたＲＡＩＤグループとして提供可能である。ホスト３００は例えばＬＵＮ（ＬＵ番号）やＬＢＡ等の識別情報を指定して対象ボリュームにアクセスする。
【００７０】
ＦＣ−Ｉ/Ｆ及びプロトコルにおいて、ＨＢＡ３１７とＣＨＡ１１の間やＣＨＡ１１間等で、例えば所定サイズのブロック単位でのアクセス及びデータ転送が行われる。データＶ（５１，５２）やＪＮＬ（６１，６２）等のデータは、下位プロトコルに応じて分割して処理される。
【００７１】
＜ＳＶＰ＞
ストレージ装置１００及びストレージ装置２００のＤＫＣ１１０には、内部のＬＡＮ１８０を通じて、それぞれＳＶＰ１９０が接続されている。ストレージ装置１００に接続されるＳＶＰ１９０を例に説明する。ＳＶＰ１９０は、ストレージ装置１００の保守・管理の機能を持つ情報処理装置であり、保守管理の処理のためのプログラムを実行するプロセッサ及びメモリを有する。ＳＶＰ１９０は、それら機能に対応したＧＵＩを提供する。ＳＶＰ１９０の構成は、例えば一般的なノート型ＰＣの形態である。ＳＶＰ１９０は、ＣＨＡ１１等の各部位に対して、ＬＡＮ１８０を通じて通信可能である。ＤＫＣ１１０内で使用するプログラム１２０は、例えばＳＶＰ１９０からＬＡＮ１８０を通じてＣＨＡ１１内のメモリへダウンロードしてＭＰＵにより実行可能である。
【００７２】
ＳＶＰ１９０の保守管理処理は、障害などによりホスト３００−ストレージ装置１００の系がデータＩＯ不可な状態になった場合における、自動的な対応処理や、ＳＶＰ１９０を操作する管理者による各種作業のための情報処理などである。例えば、副系の通信リンク４０２が障害になった場合、管理者は、ＳＶＰ１９０の機能あるいはホスト３００の備える保守管理機能などを通じて、障害原因を特定し、物理的な障害部位（例えば通信ケーブル）の交換作業なども含めて、障害部位の復旧を行う。
【００７３】
また、ＳＶＰ１９０やそれとは別の保守管理用の装置をストレージ装置１００の外部に通信接続する形態なども可能である。例えば、ホスト３００に保守管理用プログラムをインストールして使用することも可能である。
【００７４】
ＳＶＰ１９０は、保守管理処理により、ストレージ装置１００の各種情報を管理し、ＳＭ１４上の情報を参照／取得／更新できる。管理者によるＳＶＰ１９０の操作により、ディスプレイ画面へのＧＵＩ表示を通じて、例えば物理ディスクやＬＵ１３３やＲＡＩＤレベル等の構成の設定や確認、ＣＨＡ１１等において実行されるプログラムのインストール、障害時の分析や復旧のための処理などが可能である。
【００７５】
なお、本実施の形態では、ＳＶＰ１９０を利用して管理者が系の障害復旧作業を実施するものとするが、このような復旧のための手段に関しては特に限定されない。また、二重化復帰の処理は、障害復旧とは別に、ホスト３００主導で実行するものである。
【００７６】
＜通常のデータＩＯ処理＞
ホストコンピュータ３００からの二重化ＩＯを構成する２つのＩＯは、それぞれ通常のデータＩＯと略同様に処理される。ストレージ装置（１００,２００）における通常のデータＩＯ処理の手順は例えば以下である。ホストコンピュータ３００からのWrite（書き込み）／Read（読み出し）の要求に応じた、ストレージ装置１００でのデータボリューム５１に対するデータのWrite／Read処理を説明する。ＤＫＣ１１０では、ＣＨＡ１１とＤＫＡ１２の間でＳＷ１５を介して、ＳＭ１４に処理指示を格納してＣＭ１３にデータをキャッシュしながら、データ転送処理が行われる。
【００７７】
書き込みの場合は以下である。あるＣＨＡ１１がホストコンピュータ３００から受信したデータＩＯ要求が書き込み要求であった場合、当該ＣＨＡ１１は、書き込み要求をＳＭ１４に書き込むと共に、ホストコンピュータ３００から受信した書き込みデータをＣＭ１３に書き込む。一方、ＤＫＡ１２は、ＳＭ１４を監視しており、ＳＭ１４に書き込み要求が書き込まれたことを検出すると、当該書き込み要求に従ってＣＭ１３から書き込みデータを読み出して、対象ＨＤＤ１３１上に書き込む。
【００７８】
読み出しの場合は以下である。あるＣＨＡ１１がホストコンピュータ３００から受信したデータＩＯ要求が読み出し要求であった場合、当該ＣＨＡ１１は、読み出し対象となるデータがＣＭ１３に存在するかどうかを調べる。ここでＣＭ１３に前記読み出し対象データが存在する場合、ＣＨＡ１１はそのデータをホストコンピュータ３００に送信する。一方、ＣＭ１３に前記読み出し対象データが存在しない場合、ＣＨＡ１１は読み出し要求をＳＭ１４に書き込むと共に、ＳＭ１４を監視する。前記読み出し要求がＳＭ１４に書き込まれたことを検出したＤＫＡ１２は、対象ＨＤＤ１３１から読み出し対象データを読み出してＣＭ１３に書き込むと共に、その旨をＳＭ１４に書き込む。そしてＣＨＡ１１は、前記読み出し対象データがＣＭ１３に書き込まれたことを検出すると、そのデータをホストコンピュータ３００へ送信する。
【００７９】
なおＤＫＣ１１０の構成は他も可能である。ＣＨＡ１１とＤＫＡ１２の間での処理指示を、ＳＭ１３を介在させて間接的に行う構成の他、ＣＨＡ１１とＤＫＡ１２の間で直接的に行う構成なども可能である。またＣＨＡ１１とＤＫＡ１２の機能を両方持たせた処理部構成も可能である。またＣＭ１３等のメモリがＣＨＡ１１等の各々の処理部内に分散されて設けられた構成や、ＣＭ１３とＳＭ１４とが一体的なメモリ構成も可能である。またＳＷ１５なしで直接接続する構成や、ＣＰＵ中心にＣＨＡ１１等を制御する構成なども可能である。
【００８０】
＜二重化制御＞
次に、前記ストレージシステム構成上での二重化制御を説明する。図３〜図５は、本実施の形態のストレージシステムにおける二重化制御方法に従った二重化制御の流れとジャーナル状態の一例を示す。図３は、二重書き対象となる正副の２つの系が正常時の状態（Ｃ１とする）を示す。図４は、正副の一方の系における障害発生が検出され、二重化同期指示を発行する状態（Ｃ２とする）を示す。本例では副系の障害の場合で説明する。図５は、二重化復帰時における復旧時及び非復旧時の状態（Ｃ３とする）を示す。
【００８１】
図６は、正副のＪＮＬ（６１，６２）の内容の遷移の例を示す。図７は、Ｖ状態管理部３０１で管理されるＶ状態管理情報３０５及びその関連動作状態の遷移の例を示す。図８は、三者間での処理全体のシーケンスの例を示す。図３〜図８は、一つの処理例に対応している。
【００８２】
本ストレージシステムにおいて、基本的な構成情報等の設定に従って、自動的に二重書きが実行される（Ｃ１）。ホスト３００のユーザは、設定以外に特に操作入力せずに自動的に二重化制御を実行させることができる。また、障害検出時には（Ｃ２）、ホスト３００から自動的にあるいはユーザの操作入力により、二重化復帰のための正副の同期化を行わせる指示（同期指示）を正常系側へ行う。また一方、障害検出により管理者がＳＶＰ１９０を操作すること等により障害部位の復旧作業を実施する。ホスト３００が同期指示に従った正副系のデータＶ同期化を正系及び副系からの完了通知により確認すると（Ｃ３）、二重書きを再開する。すなわち二重化復帰が完了する。
【００８３】
正常時（Ｃ１）は、二重書き対象のデータ例えば“Ａ”が、ホスト３００から正及び副のストレージ装置（１００，２００）のデータＶ（５１，５２）へ書き込まれる。障害時（Ｃ２）には、二重書き対象のデータ例えば“Ｂ”が、ホスト３００から正のストレージ装置１００のデータＶ５１のみへ書き込まれる。復旧時（Ｃ３）には、復旧完了している場合は、二重書き対象のデータ例えば“Ｃ”が、ホスト３００から正だけでなく副のストレージ装置２００のデータＶ５２へも書き込みが再開される。Ｃ１〜Ｃ３の流れにおいて、例として図３〜図５及び図６に示すように、正副のＪＮＬ（６１，６２）の内容が変化している。
【００８４】
＜Ｃ１：正常時＞
まず、図３において、正副の両系が正常時（Ｃ１）、ホスト３００は、正副のデータＶ（５１，５２）に対し、二重化ＩＯ（二重書き）を実行する。二重化ＩＯは、データ書き込みなどの更新ＩＯを含む。ストレージ装置（１００，２００）で更新ＩＯを受領した場合、データＶ（５１，５２）及びＪＮＬ（６１，６２）共に内容が更新されることになる。二重書き処理では、例えば、ホスト３００から、正ボリューム５１と、それと関連付けされる副ボリューム５２とに対し、同じデータを略同じタイミングで書き込む。
【００８５】
ホスト３００は、Ｖ状態管理部３０１で、正副のストレージ装置（１００，２００）のデータＶ（５１，５２）の状態を例えば図７のＶ状態管理情報３０５のように管理している。この内容については後述する。
【００８６】
ホスト３００は、マーカ書込部３０２により、正副のデータＶ（５１，５２）に対し、定期的に同期マーカを出力して、正副ＪＮＬ（６１，６２）に書き込む。正副ストレージ装置（１００，２００）のホストＩ/Ｆ制御部１１１は、ホスト３００から同期マーカを受信すると、ＪＮＬ保持部１２１を介して、自身のＪＮＬ（６１，６２）に、書き込み済みの更新ＩＯ情報に繋げる形で同期マーカを書き込む。
【００８７】
正副ストレージ装置（１００，２００）は、ホスト３００から受領した更新ＩＯを処理する。ＪＮＬ保持部１２１は、更新ＩＯ情報や同期マーカを、自身のＪＮＬ（６１，６２）に保持する。
【００８８】
ＪＮＬ（６１，６２）における一単位の更新ＩＯ情報は、コマンド、アドレス、データを含む情報である。すなわち、更新ＩＯがデータＶ（５１，５２）へのデータ書き込みである場合、ＪＮＬ（６１，６２）に保存する更新ＩＯ情報は、ホスト３００からのWRITEコマンドと、対象データＶ（５１，５２）等におけるアドレスやサイズ等と、書き込みデータ本体とを含む情報である。この情報には、その他の書き込み時刻情報などを含めても構わない。
【００８９】
＜Ｃ２：障害検出時＞
次に、図４において、障害発生及び検出時（Ｃ２）、正系では二重化ＩＯにおけるＩＯが継続され、副系では障害によりＩＯが不可となっている。本例では副系の通信リンク４０２で障害が発生し検出されている。本状態では、ホスト３００からの二重化ＩＯのうち副系のＩＯ要求が実行されても障害により正常に完了できない。あるいは、ホスト３００は、その障害の認識により、副系のＩＯ要求の実行を停止して正系のみで一重書きを行う。
【００９０】
ホスト３００は、副系における障害を検出あるいは通知されると、それに応じてＶ状態管理部３０１がＶ状態管理情報３０５を更新し、これにより、障害状態の副系のストレージ装置２００あるいはその一部を切り離して閉塞させる。
【００９１】
ホスト３００は、正常である正系のストレージ装置１００に対し、同期指示、すなわち正副系のデータを同期化させて二重化の状態（Ｃ１）へ復帰させるための指示を実行する。
【００９２】
正常ストレージ装置（１００）では、通信リンク４０１を通じて前記同期指示を受領すると、これに従って同期化処理を開始する。同期点検出部１２３を中心に、正副ストレージ装置（１００，２００）及び対象となる正副のデータＶ（５１，５２）及びＪＮＬ（６１，６２）間で、ストレージ間通信部１２２及び通信リンク４０３を介して、それらＪＮＬ及びデータＶの同期化処理を行う。
【００９３】
同期化処理において、正常側ストレージ装置（１００）は、まず、同期点検出部１２３により、復旧対象側ストレージ装置（２００）の目的データＶ（５２）及びＪＮＬ（６２）の動作（コピー）可否のチェック、及び、目的ＪＮＬ中の最新の同期マーカの読み出し指示を行う。副ストレージ装置２００は、正ストレージ装置１００からの指示に基づき、チェック結果及び副ＪＮＬ６２から最新の同期マーカを読み出して送信する。
【００９４】
正ストレージ装置１００は、自装置内の正ＪＮＬ６１から最新の同期マーカの番号以降のＪＮＬデータを読み出して、ストレージ間通信部１２３及び通信リンク４０３により、副ストレージ装置２００側へ転送する。
【００９５】
副ストレージ装置２００では、正ストレージ装置１００から受領したＪＮＬデータを副ＪＮＬ６２内に追加的に格納し、これにより副ＪＮＬ６２の内容を正ＪＮＬ６１と同期させる。
【００９６】
副ストレージ装置２００のリストア部１２４は、更新された副ＪＮＬ６２のデータをもとに、副データＶ５２へデータとして反映（すなわち上書き更新）し、これにより副データＶ５２の内容を正データＶ５１と同期させる。
【００９７】
＜Ｃ３：二重化復帰時＞
次に、図５において、障害検出後の二重化復帰時（Ｃ３）、前記正副ストレージ装置（１００，２００）間で対象ＪＮＬ及びデータＶの同期化が完了すると、これら正副ストレージ装置とホスト３００との間で、二重化復帰のための正副系での同期化が正常に完了しているかどうかの確認を行う（前記同期指示に対する応答とも言い換えられる）。例えば、正副ストレージ装置（１００，２００）は、Ｃ２での同期化処理終了直後に、それぞれ、ホスト３００に対し、同期点検出部１２３等により、二重化復帰のための完了通知を行う。ここでそのホスト３００への完了通知は、正副系でのＪＮＬ（６１，６２）及びデータＶ（５１，５２）の同期化が完了したことをホスト３００へ通知（報告）する、何らかの形式の通信及び情報である。そして、前記同期化処理終了直後に副系（復旧対象系）が復旧済みであるか否かにより以下のように制御・処理が分岐する（（Ａ），（Ｂ）とする）。
【００９８】
（Ａ）副系復旧時：  前記同期化処理終了時、副系の障害部位である通信リンク４０３が管理者作業や自動対応処理などによって復旧済み状態であったとする。ホスト３００は、正副ストレージ装置（１００，２００）両方からの完了通知を一定時間内に受領すると、それに従いＶ状態管理情報３０５を更新し、正副データＶ（５１，５２）への二重化ＩＯを再開させる。即ちＣ１へ戻る。換言すれば、ＩＯ不可状態であった副データＶ５２及び副ＪＮＬ６２への書き込みを再開させる。
【００９９】
（Ｂ）副系未復旧時：  前記同期化処理終了時、副系の障害部位である通信リンク４０３が未だ復旧されていない又はその復旧が確認されていない状態であったとする。この場合、障害の影響により、副ストレージ装置２００からの完了通知をホスト３００が受領できない。よって、ホスト３００は、正ストレージ装置１００からの完了通知を正常に受領した時点から、一定時間経過後にも副ストレージ装置２００からの完了通知が受領できない場合は、Ｖ状態管理情報３０５で対象の副系のＶを再び一重化状態にして（あるいは一重化状態のままとして）副ストレージ装置２００またはその一部を閉塞させる（あるいは閉塞状態のままとする）。そして、ホスト３００は、Ｃ２へ戻り、再度、同期指示を実行し、正常に二重化復帰できるまでＣ２，Ｃ３と同様の試みを繰り返す。
【０１００】
なお、プログラム１２０内に、Ｖ状態をホスト３００へ報告する処理を行う処理部を含めて設けてもよい。
【０１０１】
＜更新データ履歴情報（ＪＮＬ）＞
図６において、上側の正ＪＮＬ６１と下側の副ＪＮＬ６２との内容の遷移及び関連動作タイミング（Ｔ０〜Ｔ９）を時間的順序（右方向矢印）に沿って示している。番号「１」〜「１５」の各ブロックは、それぞれ一単位の更新データ（換言すれば更新ＩＯ情報）を表す。更新データの番号は識別情報及び更新順序も表しており、その番号の昇順に更新データが各データＶ（５１，５２）に対し上書きされるものである。「Ｍ１」〜「Ｍ５」のブロックは、正副の同期点を表す同期マーカを表す。同期マーカの付属番号は、同期マーカを識別するものであり、大きいほどその同期点が最新のものであることを示す。一単位の更新データは、一つの更新ＩＯに対応するものとする。なおこれらの番号等はその他の形式の情報で管理しても構わないことは言うまでもない。
【０１０２】
Ｔ０から始まって、正副ＪＮＬ（６１，６２）に対し、更新データ「１」，「２」，「３」，同期マーカ「Ｍ１」，更新データ「４」，「５」の順に蓄積されている（Ｃ１）。Ｔ１は、同期マーカ「Ｍ１」が正副ＪＮＬ（６１，６２）で同時に書き込まれた、データ同期点である。Ｔ２の更新データ「５」までは、正副ＪＮＬ（６１，６２）で同時に書き込まれており、その内容が一致している。
【０１０３】
Ｔ３での副系の障害の発生により、正系のみでの一重化状態となり、ホスト３００から副ストレージ装置２００の副ボリューム５２への更新ＩＯ及び副ＪＮＬ６２への書き込みが不可な状態になっている。この後Ｔ４までの間、正系では正ボリューム５１に更新ＩＯが反映され正ＪＮＬ６１に更新データ「６」〜「１１」及び同期マーカ「Ｍ２」〜「Ｍ４」が順に書き込まれている。しかし、副系では、副ボリューム５２に更新ＩＯが反映されず副ＪＮＬ６２にも情報が書き込まれていない（Ｃ２）。
【０１０４】
Ｔ４では、副系の障害の検出及び復旧開始により、ホスト３００から正常な正系へ二重化復帰のための同期指示が行われている。Ｔ５では、まずＪＮＬ同期化処理として、正副ストレージ装置（１００，２００）のＪＮＬ（６１，６２）間で、同期化のために必要な、最新の同期点以降のＪＮＬデータである「４」〜「Ｍ４」までの更新データ及び同期マーカを、正系から副系へ転送している。すなわち正副のストレージ間通信部１２２及び通信リンク４０３を通じて、正ＪＮＬ６１から副ＪＮＬ６２へ該当ＪＮＬデータをコピーして、正副ＪＮＬ（６１，６２）の内容を同期化している。Ｔ５でのＪＮＬ同期化の後、そのＪＮＬデータをもとに副ボリューム５２がリストアされ、データＶ（５１，５２）の内容が同期化される。
【０１０５】
Ｔ５でのデータ同期化終了後のＴ６の時点で、副系の復旧が完了していない場合を示している。この場合、ホスト３００は副系からの完了通知を受領できないので、前記Ｃ２のような制御状態に戻る。Ｔ７では、ホスト３００から、再度、同期指示を正系に発行している。Ｔ８で、指示に従って、正副系で同様に同期化処理が行われ、前記Ｔ５（最新同期マーカ「Ｍ４」）以後における更新ＩＯに対応したＪＮＬデータである「１２」〜「１４」が副系へ転送される。
【０１０６】
本例ではＴ９の時点で障害部位復旧が完了した場合を示している。
【０１０７】
Ｔ１０は、同期化処理により副ＪＮＬ６２の内容が正ＪＮＬ６１の内容に追いついた後、副系の障害部位の復旧が完了している場合において、ホスト３００からの二重書き及び同期マーカ書き込みが再開された場合である。その後、正副系で、更新データ「１２」〜「１５」及び同期マーカ「Ｍ５」が順に書き込まれている。Ｔ１１は、再びＴ１のように同期マーカ「Ｍ５」が正副ＪＮＬ（６１，６２）で同時に書き込まれたデータ同期点である。
【０１０８】
なお前記Ｔ５及びＴ８では、短い時間でまとめてＪＮＬ転送が行われることを表している。また、このＪＮＬ転送処理中も、それと同時並行して、更新データ「１２」〜「１４」の例のように更新ＩＯが継続して行われ得ることを示している。
【０１０９】
＜ボリューム状態管理＞
図７において、Ｖ状態管理情報３０５における、正ストレージ装置１００の正ボリューム５１と副ストレージ装置２００の副ボリューム５２との組における状態の遷移を示している。ａ〜ｉの各行は、状態や関連動作を表し、上から下の行へ時間的に遷移する。左側は正ボリューム５１の状態を、右側は対応する副ボリューム５２の状態を、それぞれデバイス状態とコピー状態とに分けて示している。各状態は例えば状態ビット値で識別される。本例では、二重化制御のために必要な状態管理としてデータＶ（５１，５２）の状態の管理例を示しているが、通信リンクの状態の管理など、より詳細な管理を行っても構わない。
【０１１０】
デバイス状態として、「ＡＣＴ」（アクティブ）、「ＩＮＡＣＴ」（インアクティブ）がある。コピー状態として、「ＣＯＰＹ」（コピー）、「ＳＹＮＣ」（シンク）がある。デバイス状態は、論理ボリューム等に対応した状態であり、「ＡＣＴ」は、対象ボリュームがＩＯ可能な稼働状態であり、「ＩＮＡＣＴ」は、対象ボリュームがＩＯ不可な非稼働状態（閉塞状態とも対応する）である。コピー状態は、ストレージ装置及び論理ボリューム間のデータコピーに関する状態であり、「ＣＯＰＹ」は、正副ボリューム（５１，５２）間でデータコピー処理途中の状態（非同期状態）であり、「ＳＹＮＣ」は、正副ボリューム（５１，５２）間でデータ内容が同期している状態（同期状態）である。図７の各状態については、図８のシーケンスの流れと合わせて説明する。
【０１１１】
＜制御全体シーケンス＞
図８において、ホスト３００、正ストレージ装置１００の正ボリューム５１、副ストレージ装置２００の副ボリューム５２の三者間での二重化制御及び処理全体のシーケンス例を示している。Ｓ１等は、処理ステップを表す。
【０１１２】
まず、前記Ｃ１に対応して、ホスト３００でのＶ状態管理情報３０５において、状態ａでは、正ボリューム５１−副ボリューム５２においてデバイス状態が「ＡＣＴ−ＡＣＴ」であり、コピー状態は未設定である。
【０１１３】
状態ａ及びＳ１，Ｓ２で、ホスト３００は、正副データＶ（５１，５２）へ、二重化ＩＯを行っている。正副の両系でパスが正常なので、正副データＶ（５１，５２）への更新ＩＯ及び正副ＪＮＬ（６１，６２）への書き込みが正常に完了する。
【０１１４】
次に、状態ａの後、前記Ｃ２に対応して、副ボリューム５２へのパスを含む副系でその通信リンク４０２に障害が発生している（前記Ｔ３）。
【０１１５】
次に、状態ｂでは、正副のデバイス状態が「ＡＣＴ−ＩＮＡＣＴ」の状態である。すなわち、ホスト３００は、副系の障害を認識すると、該当副ボリューム５２を閉塞させるようにＶ状態管理情報３０５を更新している（デバイス状態を「ＡＣＴ」から「ＩＮＡＣＴ」に更新している）。Ｓ３，Ｓ４で、ホスト３００は、正副データＶ（５１，５２）へ二重化ＩＯにおけるＩＯ要求を行っている。しかし、Ｓ４で、副系の障害のため、当該ＩＯが正常に完了しない。前記Ｔ３〜Ｔ４のように、正常系の正ＪＮＬ６１でのみ更新データ及び同期マーカが書き込まれる。
【０１１６】
次に、Ｓ５で、ホスト３００は、正ボリューム５１を対象として、正ストレージ装置１００のホストＩ/Ｆ制御部１１１へ、二重化状態への復帰のための同期指示を送信している。Ｓ６で、正ストレージ装置１００は、ホスト３００からの同期要求を受信すると、同期点検出部１２３により、ストレージ間通信部１２２及び通信リンク４０３を通じて、対象となる副ボリューム５２のチェック、すなわち同期指示（Ｓ５）のパラメータが正しいか等の確認のための通信を行う。Ｓ７で、副ストレージ装置２００の同期点検出部１２３は、対象副ボリューム５２の状態を確認して、正ストレージ装置１００側へ報告する。例えば、同期のためのコピー動作が実行可能な状態であること等が報告される。
【０１１７】
一方、Ｓ１３では、ホスト３００は、前記Ｓ５の同期指示の送信から一定時間経過後に、正ストレージ装置１００へ、対象ボリューム５１についての状態確認のための要求（問い合わせ）を行っている。この時点では、まだ正副系での同期化処理途中である。そのため、Ｓ１４で、正ストレージ装置１００は、正ボリューム５１のコピー状態が「ＣＯＰＹ」である旨を応答としてホスト３００へ報告している。ホスト３００は、正ストレージ装置１００からの状態報告を受けて、Ｖ状態管理情報３０５を、状態ｃ「ＡＣＴ（ＣＯＰＹ）−ＩＮＡＣＴ」のように更新する。即ち、正ボリューム５１のコピー状態が「ＣＯＰＹ」に更新される。ホスト３００は、Ｓ１４により正副系でコピー途中であることを認識したので、続けて副系へＳ１３と同様の状態確認を要求する必要はない。
【０１１８】
状態ｃの後において、正ボリューム５１のコピー状態「ＣＯＰＹ」として、正副ストレージ装置（１００，２００)間で、ストレージ間通信部１２２及び通信リンク４０３を通じて、ＪＮＬ同期のためのディスク間データコピー処理中である。
【０１１９】
前記Ｓ７に続くＳ８に戻り、正ストレージ装置１００の同期点検出部１２３は、前記Ｓ６でチェック後、副ストレージ装置２００の同期点検出部１２３へ、マーカ要求を送信する。本要求は、正副の同期点の検出のために最新の同期マーカ（即ち付属番号が最も大きいもの）を読み出す要求である。Ｓ９で、副ストレージ装置２００は、要求に応じて、副ＪＮＬ６２に保持している最新の同期マーカを読み出して正ストレージ装置１００へ報告する。本例では、前記Ｔ４の時点では、副ＪＮＬ６２における最新の同期マーカである「Ｍ１」が報告される。
【０１２０】
次に、Ｓ１０〜Ｓ１２で、正ストレージ装置１００は、副ストレージ装置２００からの最新の同期マーカに基づき、それを自身の正ＪＮＬ６１のデータと比較して、副ボリューム５２及び副ＪＮＬ６２が正側との同期のために必要となる、差分のＪＮＬデータを、副ストレージ装置２００側へ、ストレージ間通信部１２２及び通信リンク４０３を通じて、転送（データコピー）する。本例では、前記Ｔ５で、ＪＮＬデータ「４」〜「Ｍ４」までを、Ｓ１０〜Ｓ１２で３回に分けて転送処理している。副ストレージ装置２００は、正ストレージ装置１００から受信したＪＮＬデータを副ＪＮＬ６２に反映して正副ＪＮＬを同期化する。そして、リストア部１２４により、副ＪＮＬ６２のデータ、すなわちデータＶ同期化に必要な分の更新データ「６」〜「１１」を、副ボリューム５２に反映して、副ボリューム５２を正ボリューム５１と同期化する。
【０１２１】
なお、Ｓ１２の後に同期化が終了した直後、前記Ｃ３で説明したように、正副のストレージ装置側からホスト３００へ完了通知を送信するようにしてもよいが、図８ではそれとは別の処理方法として、ホスト３００側から正副ストレージ装置へ状態確認のための通信（Ｓ１３，Ｓ１５，Ｓ２５，Ｓ２７，Ｓ２９等）を行う処理方法を示している。例えば、ホスト３００から、一定時間経過ごとに、状態確認の要求を正副のストレージ装置へ送信する。そして、ストレージ装置は、要求に従って、対象データＶの状態を報告する。ホスト３００は、ストレージ装置からの報告に従ってＶ状態管理情報３０５を更新し、二重化制御状態を更新する。両方の系のストレージ装置からデータＶ同期化が完了していることを示す状態の情報が受領するまで、前記状態確認の通信を繰り返す。前記ホスト３００が正副系の同期完了を確認するための２つの処理方法は、いずれを用いても構わない。
【０１２２】
次に、Ｓ１５で、ホスト３００は、前記Ｓ１３から一定時間経過後に、正ストレージ装置１００へ、対象データＶの状態確認の要求を送信している。Ｓ１６で、正ストレージ装置１００は、ホスト３００へ、対象ボリュームの状態を報告する。このとき、Ｓ１２までで正副ボリューム（５１，５２）間でデータコピー済みであり同期状態である。そのため、正ストレージ装置１００は、ホスト３００へ、正ボリューム５１のコピー状態が「ＳＹＮＣ」である旨を、前記図５の完了通知相当として報告している。ホスト３００は報告を受けて、Ｖ状態管理情報３０５を、状態ｄ「ＡＣＴ（ＳＹＮＣ）−ＩＮＡＣＴ」のように更新する。即ち、正ボリューム５１のコピー状態が「ＣＯＰＹ」から「ＳＹＮＣ」に更新される。
【０１２３】
またＳ１５に続けてＳ１７で、ホスト３００は、副ストレージ装置２００へ、対象データＶ５２の状態確認の要求を送信している。しかしこの時点では副系の通信リンク４０２の障害が未復旧であるため、当該状態確認が完了できない。ホスト３００は、状態確認の要求を送信してから、例えば一定時間まで応答を待機する。しかし、Ｓ１８で、その一定時間経過によるタイムアウトとなっている。
【０１２４】
状態ｄの後において、正ボリューム５１では、前記コピー処理の終了により、正副データＶ（５１，５２）でデータ同期完了状態となっている。また副系で副ボリューム５２へのパスが障害のままであり未復旧状態である。
【０１２５】
ホスト３００は、Ｓ１８でタイムアウトになった後、Ｓ１９で、再びＳ５のような同期指示を正ストレージ装置１００へ送信する。Ｓ２０〜Ｓ２４では、前記Ｓ６〜Ｓ１２と同様のＪＮＬ及びデータＶの同期化処理が行われる。前回の同期化処理から時間が経過しているため、図６のように、正系には新たな更新データ「１２」〜「１４」が蓄積されている。また、前記Ｓ１５から一定時間経過で状態未確認であることにより、Ｓ２５，Ｓ２６で、ホスト３００から正ストレージ装置１００へ、再度同様の状態確認の要求を送信している。この時点では、Ｓ１３，Ｓ１４と同様に正副間で再度コピー処理中であるため、Ｓ２６で、正ボリューム５１のコピー状態として「ＣＯＰＹ」の旨が報告される。ホスト３００は報告を受けて、Ｖ状態管理情報３０５を、状態ｅ「ＡＣＴ（ＣＯＰＹ）−ＩＮＡＣＴ」のように更新する。即ち、正ボリューム５１のコピー状態が「ＳＹＮＣ」から「ＣＯＰＹ」に更新される。
【０１２６】
次に、状態ｅの後、前記Ｃ３に対応して、副ボリューム５２へのパスを含む副系でその通信リンク４０２の障害復旧が完了している場合を示している（前記Ｔ９）。
【０１２７】
次に、Ｓ２７で、ホスト３００は、正ストレージ装置１００へ、前記Ｓ２５から一定時間経過により、再度、状態確認の要求を送信している。Ｓ２８で、正ストレージ装置１００は、正ボリューム５１が「ＳＹＮＣ」の旨を状態報告する。ホスト３００は報告を受けて、Ｖ状態管理情報３０５を、状態ｆ「ＡＣＴ（ＳＹＮＣ）−ＩＮＡＣＴ」のように更新する。即ち、正ボリューム５１のコピー状態が「ＣＯＰＹ」から「ＳＹＮＣ」に更新される。またＳ２７に続いてＳ２９で、ホスト３００は、副ストレージ装置２００へ、状態確認の要求を送信している。Ｓ３０で、副ストレージ装置２００は、副ボリューム５２が「ＳＹＮＣ」の旨を状態報告する。ホスト３００は報告を受けて、Ｖ状態管理情報３０５を、状態ｇ「ＡＣＴ（ＳＹＮＣ）−ＩＮＡＣＴ（ＳＹＮＣ）」のように更新する。即ち、副ボリューム５２のコピー状態が「ＳＹＮＣ」に更新される。
【０１２８】
状態ｇの後において、正副のボリューム５１で同期化が完了していることが確認された。ホスト３００は、Ｓ１９の同期指示に対する処理として、正副系での同期完了を正副のストレージ装置の両方から確認すると、Ｖ状態管理情報３０５を状態ｈ「ＡＣＴ（ＳＹＮＣ）−ＡＣＴ（ＳＹＮＣ）」のように更新する。即ち、副ボリューム５２のデバイス状態が「ＡＣＴ」に更新される。
【０１２９】
状態ｈの後において、ホスト３００は、副ストレージ装置２００の副ボリューム５２へのＩＯを再開する。状態ｉにおいて、Ｖ状態管理情報３０５が「ＡＣＴ−ＡＣＴ」であり、Ｓ３１，Ｓ３２で、ホスト３００は、正副ボリュームに対し二重化ＩＯを実行している。
【０１３０】
以上説明したように、本実施の形態によれば、ホスト３００と正副のストレージ装置（１００，２００）とを含む二重書き環境において、二重化復帰の際、ほぼホスト３００を経由せずに（即ちホスト３００とは制御通信のみ）、正副のストレージ装置（１００，２００）間で同期化処理の大部分（主にＪＮＬデータコピー処理）を実行する。またストレージ間データコピー対象となるＪＮＬデータは最新の同期マーカにより判断され、データＶやＪＮＬデータ全体のコピーは必要ではない。そのため、従来はホスト３００を経由していたストレージ装置間のデータコピーと、該コピー時の通常業務の停止などを最小限にすることができ、ホスト３００の処理負荷やユーザの手間を軽減した二重化制御が実現できる。
【０１３１】
（実施の形態２）
その他の実施の形態として、実施の形態２では、概要として、ストレージシステムにおける二重化制御方法として、ホストから二重書き対象の正副の各ストレージ装置内ではなく、別の外部コンピュータ内に、更新データと同期マーカを含むジャーナルを保存する。正副の各ストレージ装置は、必要に応じて外部コンピュータと通信してジャーナルを利用し、実施の形態１と同様な二重化復帰の制御を行う。
【０１３２】
図９は、実施の形態２として、実施の形態２のストレージシステムの構成を示す。実施の形態１では、正副のストレージ装置（１００，２００）内の記憶領域（論理ボリューム）に正副のＪＮＬ（６１，６２）を保存するが、実施の形態２では、ストレージ装置（１００，２００）の外部に通信可能に接続される外部コンピュータ５００内の記憶領域（ＪＮＬ管理部５０１）に保存する。各ストレージ装置（１００，２００）は、一時処理用ＪＮＬ（６１ｂ，６２ｂ）以外には基本的に内部にＪＮＬデータを保持せず、必要時に、ＪＮＬ通信部１２５によりＪＮＬ管理部５０１と通信してＪＮＬデータを使用する。ジャーナルの管理の仕方が異なるが、それ以外の制御は実施の形態１と同様である。
【０１３３】
例えば、ネットワーク４１０に、ホスト３００、正ストレージ装置１００、副ストレージ装置２００、及び外部コンピュータ５００が接続される。ネットワーク４１０上では、実施の形態１と同様の通信接続（通信リンク４０１等）も可能とする。
【０１３４】
外部コンピュータ５００は、ＪＮＬ管理部５０１を有し、前記ＪＮＬ（６１，６２）に相当するＪＮＬ（元ジャーナル）６０を保存及び管理する。外部コンピュータ５００は、少なくともＪＮＬを記憶するためのメモリ及びプロセッサ及び通信Ｉ/Ｆ機能を備える装置である。
【０１３５】
正副のストレージ装置（１００，２００）は、それぞれ、ＪＮＬ管理部５０１と対応した処理部であるＪＮＬ通信部１２５を有する。ＪＮＬ通信部１２５は、外部コンピュータ５００のＪＮＬ管理部５０１と通信して、ＪＮＬ６０のデータを参照や取得や更新する。それにより、自ストレージ装置内に、前記正ＪＮＬ６１や副ＪＮＬ６２は保持せずとも、一時処理用ＪＮＬ（６１ｂ，６２ｂ）を取得して処理可能である。
【０１３６】
実施の形態２における処理例は以下である。ホスト３００の二重化部３２０ｂは、二重化ＩＯや同期マーカ書き込みを、正副のストレージ装置（１００，２００）に対し行うと共に、ＪＮＬ保持部１２１ｂが、更新データや同期マーカを、ＪＮＬ通信部１２５を通じてＪＮＬ管理部５０１に対し書き込む。あるいは、ホスト３００から外部コンピュータ５００のＪＮＬ６０に対し更新データや同期マーカを書き込んでもよい。二重化復帰の際、正副のストレージ装置（１００，２００）は、ＪＮＬ６０のデータにアクセスし、必要分をコピーして取得し、前記データＶ同期化等の処理に用いる。
【０１３７】
実施の形態２では、各ストレージ装置でＪＮＬ全体を保持する必要がない分、メモリを節約できる等の効果がある。
【０１３８】
なお外部コンピュータ５００内のＪＮＬ６０は、正ストレージ装置１００及び副ストレージ装置２００のいずれからもアクセスされる。従って、外部コンピュータ５００は、それらのアクセスがより高速となるように考慮して通信処理機能を備えること及びストレージシステム内に配置されることが有効である。また、外部コンピュータ５００を例えば第３のストレージ装置としてもよい。また、本例では、１つの外部コンピュータ５００内に正副のＪＮＬを保存しているが、２つ以上の外部コンピュータに別々に保存する形態なども可能である。
【０１３９】
その他の実施の形態として、データの二重化だけでなく、四重化などの多重化にも適用可能である。また、データ二重化のために、二重書き（略同じタイミングで正副系に更新ＩＯを実行する方式）ではなく、正副系間のリモートコピー機能（ストレージ間通信部１２２）を利用して正系のデータの複製を副系に作成する方式を用いてもよい。また、正副のデータＶ（５１，５２）以外に、各ストレージ装置でそれらのミラーＶを保持して利用するようにしてもよい。
【０１４０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１４１】
本発明は、ストレージシステム等、データを多重に記憶する記憶制御システムやその装置などに利用可能である。
【図面の簡単な説明】
【０１４２】
【図１】本発明の実施の形態１におけるストレージシステムの構成を示し、特に二重化制御に係わる必要ブロックの構成を示す図である。
【図２】本発明の実施の形態１におけるストレージシステムの構成を示し、特にホストとストレージ装置とのハードウェア構成例を示す図である。
【図３】本発明の実施の形態１のストレージシステムにおける二重化制御方法に従った二重化制御の流れとジャーナル状態の一例を示し、二重書き対象となる正副の２つの系が正常時の状態（Ｃ１）を示す図である。
【図４】本発明の実施の形態１のストレージシステムにおける二重化制御方法に従った二重化制御の流れとジャーナル状態の一例を示し、正副の一方の系における障害発生が検出され、二重化同期指示を発行する状態（Ｃ２）を示す図である。
【図５】本発明の実施の形態１のストレージシステムにおける二重化制御方法に従った二重化制御の流れとジャーナル状態の一例を示し、二重化復帰時における復旧時及び非復旧時の状態（Ｃ３）を示す図である。
【図６】本発明の実施の形態１のストレージシステムでの一処理例における、正副のジャーナルの内容の遷移の例を示す図である。
【図７】本発明の実施の形態１のストレージシステムでの一処理例における、Ｖ状態管理部で管理されるＶ状態管理情報及びその関連動作状態の遷移の例を示す図である。
【図８】本発明の実施の形態１のストレージシステムでの一処理例における、ホスト、正及び副ストレージ装置の間での処理全体のシーケンスの例を示す図である。
【図９】本発明の実施の形態２におけるストレージシステムの構成を示し、特に二重化制御に係わる必要ブロックの構成を示す図である。
【符号の説明】
【０１４３】
１１…ＣＨＡ、１２…ＤＫＡ、１３…ＣＭ、１４…ＳＭ、１５…ＳＷ、５１…データＶ（正ボリューム）、５２…データＶ（副ボリューム）、６０…ＪＮＬ（元ジャーナル）、６１…ＪＮＬ（正ジャーナル）、６２…ＪＮＬ（副ジャーナル）、１００…ストレージ装置（正ストレージ装置）、１１０…ＤＫＣ、１１１…ホストＩ/Ｆ制御部、１１２…ディスクＩ/Ｆ制御部、１２０…プログラム、１２１，１２１ｂ…ＪＮＬ保持部、１２２…ストレージ間通信部、１２３，１２３ｂ…同期点検出部、１２４…リストア部、１２５…ＪＮＬ通信部、１３０…ＤＫＵ、１３１…ＨＤＤ、１３２…ＬＤＥＶ、１３３…ＬＵ、１８０…ＬＡＮ、１９０…ＳＶＰ、２００…ストレージ装置（副ストレージ装置）、３００…ホストコンピュータ、３０１…Ｖ状態管理部、３０２…マーカ書込部、３０３，３０３ｂ…Ｓ管理部、３０５…Ｖ状態管理情報、３１１…ＣＰＵ、３１２…メモリ、３１３…入力装置、３１４…出力装置、３１５…ＨＤＤ、３１６…ＣＤドライブ、３１７…ＨＢＡ、３２０…二重化部、３３０…ストレージ管理・利用プログラム、３４０…業務アプリケーションプログラム、４００，４１０…ネットワーク、４０１，４０２，４０３…通信リンク、５００…外部コンピュータ、５０１…ＪＮＬ管理部。
【図１】
2007086972.tif 000003
【図２】
2007086972.tif 000004
【図３】
2007086972.tif 000005
【図４】
2007086972.tif 000006
【図５】
2007086972.tif 000007
【図６】
2007086972.tif 000008
【図７】
2007086972.tif 000009
【図８】
2007086972.tif 000010
【図９】
2007086972.tif 000011