(57)【要約】【課題】  簡易な構成で、システムの冗長性を確保する。【解決手段】  正記憶制御装置１と第１副記憶制御装置２とは同期方式で、正記憶制御装置１と第２副記憶制御装置３とは非同期読出し方式で、接続される。正記憶制御装置１は、更新データに管理番号（SEQ#）を設定し（S3）、ジャーナルデータを保存する（S4）。正記憶制御装置１は、更新データを第１副記憶制御装置２に送信する（S5）。第１副記憶制御装置２は、更新データを第１副ボリューム２Ａに書き込み（S6）、差分をビットマップテーブル２Ｂ，２Ｃで管理する（S7）。正記憶制御装置１が停止すると（S13）、第１副記憶制御装置２が新たに正記憶制御装置となる。第１副記憶制御装置２から第２副記憶制御装置３に差分コピーが行われる（S16）。【選択図】        図１
2007066162.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶制御装置に第２記憶制御装置及び第３記憶制御装置がそれぞれ接続されたストレージシステムにおいて、
前記第１記憶制御装置は、第１データボリュームと、この第１データボリュームの更新履歴を管理する第１ジャーナルボリュームと、上位装置が前記第１データボリュームにライトデータを書き込んだ場合に、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを前記第１ジャーナルボリュームに記憶させ、かつ、前記ライトデータを前記第２記憶制御装置に送信させる第１制御部とを備え、
前記第２記憶制御装置は、前記第１データボリュームに関係づけられる第２データボリュームと、前記第１制御部から受信した前記ライトデータを前記第２データボリュームに記憶させ、かつ、前記ライトデータの記憶位置を差分管理テーブルに記憶させる第２制御部とを備え、
前記第３記憶制御装置は、前記第１データボリュームに関係づけられる第３データボリュームと、前記第１ジャーナルボリュームに関係づけられる第２ジャーナルボリュームと、前記第１ジャーナルボリュームから前記ジャーナルデータを読み出して前記第２ジャーナルボリュームに記憶させ、かつ、前記第２ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて前記第３データボリュームの記憶内容を更新させる第３制御部とを備え、
前記第１記憶制御装置から前記第２記憶制御装置に切り替えられた場合、前記第２制御部は、前記差分管理テーブルに基づいて、差分データを前記第３記憶制御装置に送信し、前記差分データを前記第３ボリュームに記憶させるストレージシステム。
【請求項２】
前記第２制御部は、前記第２データボリュームを正ボリューム、前記第３データボリュームを副ボリュームとするコピーペアが形成された場合に、前記第１記憶制御装置から前記第２記憶制御装置への切替が完了した旨を前記上位装置に通知する請求項１に記載のストレージシステム。
【請求項３】
前記第１記憶制御装置から前記第２記憶制御装置に切り替えられた場合、前記第２制御部は、前記上位装置が前記第２データボリュームにライトデータを書き込むと、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第３ジャーナルボリュームに記憶させ、
前記第３制御部は、前記第３ジャーナルボリュームから前記ジャーナルデータを読み出して前記第２ジャーナルボリュームに記憶させ、かつ、前記第２ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて前記第３データボリュームの記憶内容を更新させる請求項１に記載のストレージシステム。
【請求項４】
前記差分管理テーブルは複数設けられており、
前記第２制御部は、前記複数の差分管理テーブルを切り替えながら使用する請求項１に記載のストレージシステム。
【請求項５】
前記差分管理テーブルは複数設けられており、
前記第２制御部は、前記第１記憶制御装置から前記第２記憶制御装置に切り替えられた場合、前記複数の差分管理テーブルのそれぞれの記憶内容に基づいて差分データを検出し、この検出された差分データを前記第３記憶制御装置に送信して、前記第３ボリュームに記憶させる請求項１に記載のストレージシステム。
【請求項６】
前記第１制御部は、前記上位装置から受信したライトデータに設定される管理番号の値が予め設定されている切替閾値に達した場合に、前記第２制御部に切替指示を発行し、かつ、前記第３制御部によって前記第１ジャーナルボリュームから読み出された前記ジャーナルデータに設定されている管理番号の値が予め設定されている消去閾値に達した場合に、前記第２制御部に消去指示を発行し、
前記第２制御部は、前記切替指示を受信した場合に、前記複数の差分管理テーブルのうち使用する差分管理テーブルを切り替え、前記消去指示を受信した場合に、前記複数の差分管理テーブルのうち現在使用中の差分管理テーブルの前に使用されていた差分管理テーブルの記憶内容を消去させる請求項５に記載のストレージシステム。
【請求項７】
第１記憶制御装置に第２記憶制御装置及び第３記憶制御装置がそれぞれ接続されたストレージシステムを管理するための方法であって、
第１記憶制御装置の有する第１データボリュームに上位装置がライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、
前記生成されたジャーナルデータを前記第１記憶制御装置の有する第１ジャーナルボリュームに記憶させるステップと、
前記ライトデータを前記第１記憶制御装置から前記第２記憶制御装置に送信させるステップと、
前記第１記憶制御装置から前記第２記憶制御装置に送信されたライトデータを前記第２記憶制御装置の有する第２データボリュームに記憶させるステップと、
前記ライトデータが前記第２データボリュームに記憶された記憶位置を差分管理テーブルに登録させるステップと、
所定のタイミングが到来した場合に、前記第３記憶制御装置から前記第１記憶制御装置にアクセスし、前記第１ジャーナルボリュームに記憶されている前記ジャーナルデータを取得するステップと、
前記取得されたジャーナルデータを前記第３記憶制御装置の有する第２ジャーナルボリュームに記憶させるステップと、
前記第２ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて、前記第３記憶制御装置の有する第３データボリュームの記憶内容を更新させるステップと、
を含んだことを特徴とするストレージシステムの管理方法。
【請求項８】
さらに、前記第１記憶制御装置に障害が発生したか否かを監視するステップと、
前記第１記憶制御装置に障害が発生した場合に、前記差分管理テーブルの記憶内容に基づいて、差分データを前記第３記憶制御装置に送信させ、前記差分データを前記第３ボリュームに記憶させるステップと、
前記第２データボリュームを正ボリュームとし、前記第３データボリュームを副ボリュームとするコピーペアを形成させるステップと、
前記コピーペアが形成された場合に、前記第１記憶制御装置から前記第２記憶制御装置への切替が完了した旨を前記上位装置に通知するステップと、
前記上位装置が前記第２データボリュームにライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、
前記生成されたジャーナルデータを前記第２記憶制御装置の有する第３ジャーナルボリュームに記憶させるステップと、
所定のタイミングが到来した場合に、前記第３記憶制御装置から前記第２記憶制御装置にアクセスし、前記第３ジャーナルボリュームに記憶されている前記ジャーナルデータを取得するステップと、
前記取得されたジャーナルデータを前記第２ジャーナルボリュームに記憶させるステップと、
前記第２ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて、前記第３データボリュームの記憶内容を更新させるステップと、
を含んだ請求項８に記載のストレージシステムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの管理方法に関する。
【背景技術】
【０００２】
ストレージシステムは、例えば、ディスクアレイサブシステム等と呼ばれる記憶制御装置を少なくとも１つ備えており、ホストコンピュータ（以下、「ホスト」）に、データストレージサービスを提供する。記憶制御装置は、多数のディスクドライブをアレイ状に配設し、RAID（Redundant Array of Independent Disks）に基づく記憶領域を構築することができる。
【０００３】
また、いわゆるディザスタリカバリシステムとして知られているように、広域災害等に備えて、メインサイトから遠く離れた場所にバックアップサイトを設置することも可能である。バックアップサイトには、バックアップ用の記憶制御装置が設置され、この記憶制御装置にはメインサイトと同一のデータ群が記憶される。これにより、メインサイトが障害等で停止した場合でも、バックアップサイトによってデータ処理サービスを継続することができる。しかし、メインサイトが復旧する前に、唯一のバックアップサイトに障害が発生した場合には、データ処理サービスをホストに提供することができない。
【０００４】
そこで、バックアップサイトを複数設け、メインサイトが停止した場合でも、システムの冗長性を確保できるようにした技術も提案されている（特許文献１）。この文献に記載の従来技術では、その段落番号０００８〜００１０に記載されているように、正記憶制御装置に複数の副記憶制御装置をそれぞれ接続する。正記憶制御装置の記憶内容が更新された場合、この更新内容は直ちに一方の副記憶制御装置に送信され、一方の副記憶制御装置の記憶内容に反映される。また、正記憶制御装置の記憶内容はジャーナルデータとして保存され、他方の副記憶制御装置は、このジャーナルデータを適宜読出して、自己の記憶内容に反映させる。そして、一方の副記憶制御装置は、正記憶制御装置からのデータ更新命令に基づいてジャーナルデータを作成し、このジャーナルデータを保存する。正記憶制御装置が停止した場合、他方の副記憶制御装置は、一方の副記憶制御装置からジャーナルデータを読出し、自己の記憶内容を更新させる。
【０００５】
他の従来技術としては、プライマリサイトの第１記憶装置の記憶内容とローカルサイトの第３記憶装置の記憶内容とをリモートコピーによって常時同期させておき、一方、第１記憶装置の記憶内容とリモートサイトの第２記憶装置の記憶内容とを周期的に一致させておく技術も知られている（特許文献２）。そして、プライマリサイトが被災した場合は、第１記憶装置の記憶内容と第２記憶装置の記憶内容との差分データのみを、第３記憶装置から第２記憶装置にリモートコピーさせる。
【特許文献１】特開２００５−８４９５３号公報
【特許文献２】特開２００５−７８４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記第１，第２の文献に記載の技術では、正記憶制御装置が停止した場合でも、複数の記憶制御装置によって冗長性を確保することができ、ストレージシステムの信頼性が向上する。しかし、前記第１の文献では、一方の副記憶制御装置は、データ更新が行われるたびに、ジャーナルデータを生成する必要があるため、一方の副記憶制御装置の負荷が増大する。また、一方の記憶制御装置内にジャーナルデータを保存するためのボリュームを用意する必要があり、構造が複雑化するという問題がある。
【０００７】
前記第２の文献に記載の技術では、第１記憶装置内で正ボリュームの複製ボリュームを作成し、この複製されたボリュームの記憶内容と第２記憶装置内のボリュームの記憶内容とを一致させる。従って、ボリューム複製処理等が必要であり、第１記憶装置の記憶内容と第２記憶装置の記憶内容とが不一致となる期間が比較的長くなる。また、正ボリュームと同容量の複製用ボリュームを予め用意しておく必要がある。
【０００８】
本発明は上記課題に鑑みてなされたもので、その目的は、一つの記憶制御装置が停止した場合でも、複数の記憶制御装置によって冗長性を確保し、かつ、比較的簡易な構成でデータの整合性を維持することができるようにしたストレージシステム及びストレージシステムの管理方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００９】
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムでは、第１記憶制御装置に第２記憶制御装置及び第３記憶制御装置がそれぞれ接続されている。そして、第１記憶制御装置は、第１データボリュームと、この第１データボリュームの更新履歴を管理する第１ジャーナルボリュームと、上位装置が第１データボリュームにライトデータを書き込んだ場合に、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第１ジャーナルボリュームに記憶させ、かつ、ライトデータを第２記憶制御装置に送信させる第１制御部とを備える。第２記憶制御装置は、第１データボリュームに関係づけられる第２データボリュームと、第１制御部から受信したライトデータを第２データボリュームに記憶させ、かつ、ライトデータの記憶位置を差分管理テーブルに記憶させる第２制御部とを備える。第３記憶制御装置は、第１データボリュームに関係づけられる第３データボリュームと、第１ジャーナルボリュームに関係づけられる第２ジャーナルボリュームと、第１ジャーナルボリュームからジャーナルデータを読み出して第２ジャーナルボリュームに記憶させ、かつ、第２ジャーナルボリュームに記憶されたジャーナルデータに基づいて第３データボリュームの記憶内容を更新させる第３制御部とを備える。そして、第１記憶制御装置から第２記憶制御装置に切り替えられた場合、第２制御部は、差分管理テーブルに基づいて、差分データを第３記憶制御装置に送信し、差分データを第３ボリュームに記憶させる。
【００１０】
即ち、第１記憶制御装置は、上位装置からライトデータを受信すると、このライトデータ（アドレス情報も含む）に管理番号を設定してジャーナルデータを保存すると共に、このライトデータを第２記憶制御装置に送信する。管理番号とは、データ更新の順序を管理するための番号であり、例えば、データ更新のたびに一つずつ増加する連続した番号として生成される。第２記憶制御装置は、第１データボリュームの更新と同期して、第２データボリュームを更新させる。第３記憶制御装置は、第１ジャーナルボリュームに記憶されているジャーナルデータを適当なタイミングで取得することにより、第３データボリュームを更新させる。従って、第１データボリュームと第２データボリュームとの内容は同期しており、第１データボリュームまたは第２データボリュームと第３データボリュームとは、その記憶内容に差異が生じる可能性がある。第２記憶制御装置は、ライトデータの記憶位置を差分管理テーブルに記憶させる。差分管理テーブルには、所定の時点以降において、第２データボリュームに行われたデータ更新が管理される。
【００１１】
災害等によって第１記憶制御装置の機能が停止したような場合、第１記憶制御装置から第２記憶制御装置に切り替えられ、第２記憶制御装置がメイン記憶制御装置として使用される。第２データボリュームには、第１データボリュームと同一内容が記憶されているため、第２記憶制御装置は、第１記憶制御装置が行っていたストレージサービスを引き続き提供することができる。第２制御部は、差分管理テーブルに記憶されている内容に基づいて差分データを検出し、この差分データを第３記憶制御装置に送信させる。第３記憶制御装置は、受信された差分データを第３ボリュームに記憶させる。これにより、第２データボリュームのバックアップが形成され、ストレージシステムの冗長性が維持される。
【００１２】
一つの実施形態では、第２制御部は、第２データボリュームを正ボリューム、第３データボリュームを副ボリュームとするコピーペアが形成された場合に、第１記憶制御装置から第２記憶制御装置への切替が完了した旨を上位装置に通知する。即ち、第２データボリュームと第３データボリュームとの記憶内容が一致するよりも前に、上位装置に切替完了を通知する。これにより、切替時間を短くすることができ、使い勝手が向上する。
【００１３】
一つの実施形態では、第１記憶制御装置から第２記憶制御装置に切り替えられた場合、第２制御部は、上位装置が第２データボリュームにライトデータを書き込むと、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第３ジャーナルボリュームに記憶させる。そして、第３制御部は、第３ジャーナルボリュームからジャーナルデータを読み出して第２ジャーナルボリュームに記憶させ、かつ、第２ジャーナルボリュームに記憶されたジャーナルデータに基づいて第３データボリュームの記憶内容を更新させる。即ち、第１記憶制御装置から第２記憶制御装置に切り替えられた場合、第２記憶制御装置は、第１記憶制御装置が行っていたと同様に、ジャーナルデータを生成して第３ジャーナルボリュームに記憶させる。第３記憶制御装置は、第１記憶制御装置に対して行っていたと同様に、第３ジャーナルボリュームからジャーナルデータを読み出して、第３データボリュームの記憶内容を更新させる。第２記憶制御装置がジャーナル管理を開始する場合、差分管理テーブルは不要となる。従って、差分管理テーブルを消去し、メモリ資源の空き領域を増大させることもできる。
【００１４】
一つの実施形態では、差分管理テーブルは複数設けられており、第２制御部は、複数の差分管理テーブルを切り替えながら使用する。例えば、第１差分管理テーブルと第２差分管理テーブルとの２つのテーブルを予め用意しておき、最初は第１差分管理テーブルを使用して差分を管理し、第１差分管理テーブルが満杯になった場合に、第１差分管理テーブルから第２差分管理テーブルに切り替えることもできる。この場合、第１差分管理テーブルの記憶内容は、それを保持する必要が無くなった時点で消去可能である。これにより、管理可能な差分データ量を増大させることができる。
【００１５】
一つの実施形態では、差分管理テーブルは複数設けられており、第２制御部は、第１記憶制御装置から第２記憶制御装置に切り替えられた場合、複数の差分管理テーブルのそれぞれの記憶内容に基づいて差分データを検出し、この検出された差分データを第３記憶制御装置に送信して、第３ボリュームに記憶させる。複数の差分管理テーブルを交互に切替ながら使用する場合、切替前の差分管理テーブルの記憶内容が不要となる前に、第１記憶制御装置から第２記憶制御装置への切替が行われる可能性がある。この場合、現在使用中の差分管理テーブルの記憶内容と前回使用されていた差分管理テーブルに記憶されている内容とを合計して、差分データを検出する。これにより、第２データボリュームと第３データボリュームとの記憶内容を一致させることができる。
【００１６】
一つの実施形態では、第１制御部は、上位装置から受信したライトデータに設定される管理番号の値が予め設定されている切替閾値に達した場合に、第２制御部に切替指示を発行し、かつ、第３制御部によって第１ジャーナルボリュームから読み出されたジャーナルデータに設定されている管理番号の値が予め設定されている消去閾値に達した場合に、第２制御部に消去指示を発行する。そして、第２制御部は、切替指示を受信した場合に、複数の差分管理テーブルのうち使用する差分管理テーブルを切り替え、消去指示を受信した場合に、複数の差分管理テーブルのうち現在使用中の差分管理テーブルの前に使用されていた差分管理テーブルの記憶内容を消去させる。
【００１７】
切替閾値は、複数の差分管理テーブルを切り替えさせるための切替指示の発行に使用される。消去閾値は、前回使用されていた差分管理テーブルの記憶内容を消去させるための消去指示の発行に使用される。切替閾値と消去閾値とは、それぞれ異なる値に設定してもよいし、同一の値に設定してもよい。両閾値を同一値に設定する場合は、記憶量を低減することができる。
【００１８】
なお、一つの実施形態では、第１，第２及び第３制御部は、第１，第２及び第２データボリュームの対応関係と第１，第２ジャーナルボリュームの対応関係とをそれぞれ予め把握している。従って、第１記憶制御装置から前記第２記憶制御装置に切り替える場合に、第２記憶制御装置は、第２データボリュームと第３データボリュームとのコピーペアを早期に形成することができ、切替時間を短くすることができる。
【００１９】
これに代えて、他の実施形態では、第２制御部は、第１データボリュームと第２データボリュームとの対応関係を予め把握していおり、第３制御部は、第１データボリュームと第３データボリュームとの対応関係及び第１ジャーナルボリュームと第２ジャーナルボリュームとの対応関係を予め把握している。第１記憶制御装置から第２記憶制御装置に切り替える場合に、第２制御部は、第３制御部から第２データボリュームと第３データボリュームとの対応関係を確認するための確認情報を取得し、この取得した確認情報に基づいて、第２データボリュームと第３データボリュームとによりコピーペアを形成する。即ち、第２制御部は、第３制御部から取得した確認情報に基づいて、第２ボリュームと同期させるべき第３ボリュームの存在を確認し、コピーペアを形成する。これにより、第２制御部及び第３制御部は、それぞれ第１記憶制御装置との対応関係のみを保持すればよく、対応関係を記憶するための記憶量を低減することができる。
【００２０】
本発明の他の観点に従うストレージシステムの管理方法は、第１記憶制御装置に第２記憶制御装置及び第３記憶制御装置がそれぞれ接続されたストレージシステムを管理するための方法であって、第１記憶制御装置の有する第１データボリュームに上位装置がライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、生成されたジャーナルデータを第１記憶制御装置の有する第１ジャーナルボリュームに記憶させるステップと、ライトデータを第１記憶制御装置から第２記憶制御装置に送信させるステップと、第１記憶制御装置から第２記憶制御装置に送信されたライトデータを第２記憶制御装置の有する第２データボリュームに記憶させるステップと、ライトデータが第２データボリュームに記憶された記憶位置を差分管理テーブルに登録させるステップと、所定のタイミングが到来した場合に、第３記憶制御装置から第１記憶制御装置にアクセスし、第１ジャーナルボリュームに記憶されているジャーナルデータを取得するステップと、取得されたジャーナルデータを第３記憶制御装置の有する第２ジャーナルボリュームに記憶させるステップと、第２ジャーナルボリュームに記憶されたジャーナルデータに基づいて、第３記憶制御装置の有する第３データボリュームの記憶内容を更新させるステップと、を含む。
【００２１】
さらに、第１記憶制御装置に障害が発生したか否かを監視するステップと、第１記憶制御装置に障害が発生した場合に、差分管理テーブルの記憶内容に基づいて、差分データを第３記憶制御装置に送信させ、差分データを第３ボリュームに記憶させるステップと、第２データボリュームを正ボリュームとし、第３データボリュームを副ボリュームとするコピーペアを形成させるステップと、コピーペアが形成された場合に、第１記憶制御装置から第２記憶制御装置への切替が完了した旨を上位装置に通知するステップと、上位装置が第２データボリュームにライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、生成されたジャーナルデータを第２記憶制御装置の有する第３ジャーナルボリュームに記憶させるステップと、所定のタイミングが到来した場合に、第３記憶制御装置から第２記憶制御装置にアクセスし、第３ジャーナルボリュームに記憶されているジャーナルデータを取得するステップと、取得されたジャーナルデータを第２ジャーナルボリュームに記憶させるステップと、第２ジャーナルボリュームに記憶されたジャーナルデータに基づいて、第３データボリュームの記憶内容を更新させるステップと、を含むこともできる。
【００２２】
本発明の手段、機能、ステップの少なくとも一部は、マイクロコンピュータにより読み込まれて実行されるコンピュータプログラムとして構成できる場合がある。このようなコンピュータプログラムは、例えば、ハードディスクや光ディスク等のような記憶媒体に固定して流通させることができる。または、インターネット等のような通信ネットワークを介して、コンピュータプログラムを供給することもできる。
【発明を実施するための最良の形態】
【００２３】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。図１（ａ）は、通常時の状態を示す。ストレージシステムは、例えば、「第１記憶制御装置」に該当する正記憶制御装置１と、「第２記憶制御装置」に該当する第１副記憶制御装置２と、「第３記憶制御装置」に該当する第２副記憶制御装置３と、「上位装置」に該当するホストコンピュータ４とを備えて構成可能である。
【００２４】
正記憶制御装置１は、正ボリューム（P-VOL）１Ａ及び正ジャーナルボリューム（P-JV）１Ｂとを備えている。「第１データボリューム」に該当する正ボリューム１Ａは、ホスト４によって使用されるデータを記憶しており、ホスト４によって更新される。「第１ジャーナルボリューム」に該当する正ジャーナルボリューム１Ｂは、正ボリューム１Ａの更新履歴を管理する。正ジャーナルボリューム１Ｂに記憶されるジャーナルデータは、例えば、更新データ（ライトデータ）と管理番号（SEQ#）とを対応付けることにより、構成される。
【００２５】
第１副記憶制御装置２は、正記憶制御装置１と通信可能に接続されており、「第２データボリューム」に該当する第１副ボリューム（S-VOL）２Ａと複数の差分管理テーブル２Ｂ，２Ｃとを備えている。なお、図中では、差分管理テーブルを「BM（BitMap）」と表示する。第１副ボリューム２Ａは、正ボリューム１Ａとコピーペアを形成しており、正ボリューム１Ａの更新内容が直ちに反映されるようになっている。
【００２６】
第１差分管理テーブル２Ｂ，第２差分管理テーブル２Ｃは、所定時点（差分管理が開始された時点）以降において、第１副データボリューム２Ａに書き込まれるライトデータの位置をそれぞれ管理する。記憶位置の管理単位としては、例えば、ブロック単位、トラック単位等を挙げることができる。例えば、あるブロックについてデータが更新された場合、そのブロックに対応するビットに「１」を設定することができる。これにより、第１副データボリューム２Ａのどの部分でデータが更新された否かを管理できる。
【００２７】
ここで、第１副記憶制御装置２は、例えば、正記憶制御装置１に比較的近い場所に設置することができる。正記憶制御装置１へのデータ更新内容は、直ちに第１副記憶制御装置２に送信される。第１副記憶制御装置２と正記憶制御装置１との間では、いわゆる同期方式でデータ書き込みが行われるようになっている。正記憶制御装置１にライトコマンドが発行された場合、正記憶制御装置１は、このライトコマンド及びライトデータを第１副記憶制御装置２に転送し、第１副記憶制御装置２からの処理完了報告を得てから、ホスト４に処理完了を報告する。従って、ライトコマンドを同期方式で処理する場合、第１副記憶制御装置２から正記憶制御装置１への応答遅延に注目する必要がある。正記憶制御装置１と第１副記憶制御装置２とが比較的近い場所に設置されている場合、両者の間の遅延は事実上無視することができる。
【００２８】
第２副記憶制御装置３は、正記憶制御装置１と通信可能に接続されており、第２副ボリューム３Ａ及び副ジャーナルボリューム３Ｂを備えている。第２副記憶制御装置３は、例えば、正記憶制御装置１の設置場所から遠く離れた場所に設けることができる。第２副ボリューム３Ａは「第３データボリューム」に、副ジャーナルボリューム３Ｂは「第２ジャーナルボリューム」に、それぞれ該当する。第２副記憶制御装置３は、所定のタイミングで随時、正記憶制御装置１のジャーナルボリューム１Ｂからジャーナルデータを読出し、副ジャーナルボリューム３Ｂに記憶させる。
【００２９】
第２副記憶制御装置３は、副ジャーナルボリューム３Ｂに記憶されたジャーナルデータに基づいて、第２副ボリューム３Ａの記憶内容を更新させる。従って、正ボリューム１Ａの記憶内容と第１副ボリューム２Ａの記憶内容とが事実上リアルタイムで同期しているのに対して、正ボリューム１Ａの記憶内容と第２副ボリューム３Ａの記憶内容との間には差分が生じる。第２副記憶制御装置３が正記憶制御装置１から全てのジャーナルデータを読み出すことにより、正ボリューム１Ａの記憶内容と第２副ボリューム３Ａの記憶内容とは一致する。
【００３０】
第１副記憶制御装置２と第２副記憶制御装置３とも通信可能に接続されている。但し、正記憶制御装置１が正常に稼動している通常時には、各副記憶制御装置２，３間で特別な通信を行う必要はない。各記憶制御装置１，２，３間を接続する通信ネットワークとしては、例えば、SAN（Storage Area Network）やLAN（Local Area Network）等を使用可能である。
【００３１】
図１（ｂ）は、正記憶制御装置１に障害が発生して停止した場合を示す。第１副記憶制御装置２は、停止した正記憶制御装置１に代わって、正記憶制御装置となる。正記憶制御装置となった記憶制御装置２は、第２副記憶制御装置３とデータ通信を行い、ボリューム２Ａとボリューム３Ａとによってコピーペアを形成させる。
【００３２】
全体動作について説明する。まず、図１（ａ）に示すように、ホスト４は、正ボリューム１Ａにアクセスしてデータを書き込む（Ｓ１）。正記憶制御装置１は、ホスト４から受信した更新データ（ライトデータ）を正ボリューム１Ａに書き込む（Ｓ２）。
【００３３】
正記憶制御装置１は、更新データに管理番号（SEQ#）を設定する（Ｓ３）。この管理番号は、更新の順序を管理するための番号であり、正ボリューム１Ａに更新データが書き込まれるたびに自動的に値が増加する。正記憶制御装置１は、管理番号と更新データとを対応付けてジャーナルデータを生成し、このジャーナルデータを正ジャーナルボリューム１Ｂに記憶させる（Ｓ４）。
【００３４】
また、正記憶制御装置１は、ホスト４から受信した更新データ５を、第１副記憶制御装置２に送信させる（Ｓ５）。この更新データ５には、データ本体と、このデータ本体を格納すべきアドレスとが含まれている。第１副記憶制御装置２は、更新データ５を第１副ボリューム２Ａに書き込む（Ｓ６）。第１副記憶制御装置２は、第１副ボリューム２Ａの更新位置を、差分管理テーブル２Ｂ，２Ｃのうちカレントテーブルとして選択されている方に記憶させる（Ｓ７）。各テーブル２Ｂ，２Ｃは、正記憶制御装置１からの切替指示に基づいて、交互に切り替えられて使用される。
【００３５】
第１副記憶制御装置２は、更新データを第１副ボリューム２Ａに書き込むと、書き込み完了を正記憶制御装置１に報告する。これにより、正記憶制御装置１は、正ボリューム１Ａへのデータ更新が完了した旨をホスト４に報告する。
【００３６】
一方、第２副記憶制御装置３は、例えば、比較的短い周期で正記憶制御装置１にアクセスし、正ジャーナルボリューム１Ｂからジャーナルデータ６を読み出す（Ｓ８）。第２副記憶制御装置３は、この読出したジャーナルデータ６を副ジャーナルボリューム３Ｂに記憶させる（Ｓ９）。第２副記憶制御装置３は、ジャーナルデータ６の順番を確認してから、第２副ボリューム３Ａに更新データを反映させる（Ｓ１０）。第２副記憶制御装置３は、副ジャーナルボリューム３Ｂによって、管理番号を管理する（Ｓ１１）。
【００３７】
正記憶制御装置１は、第２副記憶制御装置３によって正ジャーナルボリューム１Ｂから取り出されたジャーナルデータ６の管理番号を監視している。この取り出されたジャーナルデータ６の管理番号が、予め設定されている所定の切替閾値に達した場合、正記憶制御装置１は、第１副記憶制御装置２に切替指示を与える（Ｓ１２）。この切替指示を受信すると、第１副記憶制御装置２は、現在使用中の差分管理テーブルを別の差分管理テーブルに切り替える。
【００３８】
図１（ｂ）に示すように、何らかの障害が発生して正記憶制御装置１が停止した場合は（Ｓ１３）、第１副記憶制御装置が新たに正記憶制御装置となる。しかし、説明の便宜上、以下の説明でも、そのまま第１副記憶制御装置２と呼ぶ。従って、ホスト４のアクセス先は、正記憶制御装置１から第１副記憶制御装置２に切り替えられる（Ｓ１４）。正記憶制御装置１に接続されるホスト４と第１副記憶制御装置２に接続されるホスト４とが異なる場合、正記憶制御装置１に接続されるホスト４から第１副記憶制御装置２に接続されるホスト４に、使用するホストを切り替えることもできる。
【００３９】
第１副記憶制御装置２は、第１差分管理テーブル２Ｂの記憶内容と第２差分管理テーブル２Ｃの記憶内容との論理和をとってマージし（Ｓ１５）、差分データを検出する。そして、第２副記憶制御装置２は、この検出された差分データを第１副ボリューム２Ａから読出して、第２副記憶制御装置３に送信させる（Ｓ１６）。第２副記憶制御装置３は、受信した差分データを第２副ボリューム３Ａに記憶させる。
【００４０】
ボリューム２Ａ，３Ａ間での差分コピーが完了すると、第１副ボリューム２Ａと第２副ボリューム３Ａの記憶内容が一致する。第１副記憶制御装置２は、差分コピーが完了すると、ホスト４に、記憶装置間の切替が完了した旨を報告する。また、詳細は後述するが、第１副記憶制御装置２は、正記憶制御装置１と同様に動作するべく、ジャーナル管理を開始する。第１副記憶制御装置２は、ホスト４からライトコマンドを受信すると、ジャーナルデータを作成し、これを保存する。
【００４１】
第２副記憶制御装置３は、正記憶制御装置となった第１副記憶制御装置２にアクセスしてジャーナルデータを取り出し、このジャーナルデータに基づいて、第２副ボリューム３Ａの記憶内容を更新させる。
【００４２】
このように本実施形態では、正記憶制御装置１，第１副記憶制御装置２及び第２副記憶制御装置３をそれぞれ相互に接続し、正ボリューム１Ａの記憶内容を第１副ボリューム２Ａ及び第２副ボリューム３Ａにそれぞれ記憶させ、正記憶制御装置１が停止した場合には、第１副記憶制御装置２と第２副記憶制御装置３とでシステムの冗長性を確保する構成とした。従って、信頼性が向上する。
【００４３】
本実施形態では、第１副記憶制御装置２は、所定時点以降における第１副ボリューム２Ａのデータ更新を差分管理テーブル２Ｂ，２Ｃによって管理し、正記憶制御装置１の停止時には、差分データを第２副記憶制御装置３に転送して記憶させる構成とした。従って、第１副ボリューム２Ａと第２副ボリューム３Ａとの間でいわゆる全コピーを行う場合に比べて、ペア形成時間を短くすることができる。また、第１副記憶制御装置２は、第２副記憶制御装置３が第２副ボリューム３Ａをどこまで更新したかを管理する仕組みを備えず、所定時点以降の差分データを送信する。従って、制御構造を簡素化できる。
【００４４】
本実施形態では、正記憶制御装置となる第１副記憶制御装置２と第２副記憶制御装置３とを非同期読出し方式（UR方式とも呼ぶ）で接続する構成とした。即ち、各ボリューム２Ａ，３Ａ間に一時的な差分が生じるのを許容し、コピー元の記憶制御装置２によって差分データをジャーナルデータとして管理する構成とした。従って、各ボリューム２Ａ，３Ａによってコピーペアを形成した時点で、ホスト４に切替完了を報告することができ、切替時間を短くして使い勝手や信頼性を向上させることができる。以下、本実施形態をさらに詳述する。
【実施例１】
【００４５】
図２は、本発明に係るストレージシステムの全体構成を示す説明図である。図１との対応関係を述べると、正記憶制御装置１００は図１中の正記憶制御装置１に、第１副記憶制御装置２００は図１中の第１副記憶制御装置２に、第２副記憶制御装置３００は図１中の第２副記憶制御装置３に、ホスト１０Ａは図１中のホスト４に、それぞれ対応する。
【００４６】
このストレージシステムは、少なくとも一つ以上の正記憶制御装置１００と、複数の副記憶制御装置２００，３００と、ホスト１０Ａ，１０Ｂ，１０Ｃ及び管理端末２０Ａ，２０Ｂ，２０Ｃを備えて構成することができる。ホスト１０Ａ，１０Ｂ，１０Ｃ及び管理端末２０Ａ，２０Ｂ，２０Ｃは、少なくとも一部が同一であってもよい。例えば、ホスト１０Ａとホスト１０Ｂ、管理端末２０Ａと管理端末２０Ｂとは、それぞれ同一の装置であってもよい。
【００４７】
正記憶制御装置１００は、通常の運用時において、ホスト１０Ａにデータ入出力サービスを提供する装置である。詳細は後述するが、正記憶制御装置１００は、コントローラ１１０と、記憶部１２０とを備えて構成可能である。記憶部１２０には、正ジャーナルボリューム１３１と、複数の正データボリューム１３２，１３３を設けることができる。ホスト１０Ａは、例えば、メインフレームマシンやサーバマシン等のようなコンピュータ装置であり、コントローラ１１０を介して、データボリューム１３２，１３３にアクセスし、データの読み書きを行う。
【００４８】
正記憶制御装置１００は、例えば、SANやインターネット等のような通信ネットワーク５１０，５２０を介して、各副記憶制御装置２００，３００とそれぞれ接続することができる。詳細は後述するが、正記憶制御装置１００は、ホスト１０Ａによって行われたデータ更新に関する情報を、積極的にまたは消極的に、各副記憶制御装置２００，３００にそれぞれ供給する。
【００４９】
第１副記憶制御装置２００は、正記憶制御装置１００と同様に、コントローラ２１０と、記憶部２２０とを備えて構成可能である。記憶部２２０には、例えば、複数の第１副データボリューム２３２，２３３を設けることができる。これら各第１副データボリューム２３２，２３３は、それぞれ正データボリューム１３２，１３３に関係づけられており、両ボリューム間の記憶内容は一致する。第１副記憶制御装置２００は、正記憶制御装置１００といわゆる同期方式で接続されており、正データボリューム１３２，１３３へのデータ更新は、直ちに第１副データボリューム２３２，２３３に反映される。ホスト１０Ｂは、バックアップ用のホストコンピュータである。
【００５０】
第１副記憶制御装置２００は、例えば、正記憶制御装置１００に比較的近い場所に設けることができる。正記憶制御装置１００と第１副記憶制御装置２００間の距離を短くすることにより、各記憶制御装置１００，２００間でのデータ授受に要する遅延等を少なくすることができ、正記憶制御装置１００の応答性を高めることができる。
【００５１】
第２副記憶制御装置３００も、正記憶制御装置１００と同様に、コントローラ３１０と、記憶部３２０とを備えて構成することができる。記憶部３２０には、例えば、副ジャーナルボリューム３３１と、複数の第２副データボリューム３３２，３３３とを設けることができる。各第２副データボリューム３３２，３３３は、それぞれ正データボリューム１３２，１３３と関係づけられている。正データボリューム１３２，１３３と第２副データボリューム３３２，３３３とは、両者の記憶内容の不一致を許容する方式で、接続されている。この方式を本明細書では、非同期読出し方式（UR方式）と呼ぶ場合がある。非同期読出し方式では、正記憶制御装置１００に保存されているジャーナルデータを第２副記憶制御装置３００が定期的にまたは不定期に読み出して、自己のボリューム３３２，３３３に反映させる。第２副記憶制御装置３００は、例えば、SANやインターネット等の通信ネットワーク５３０を介して、第１副記憶制御装置２００に接続されている。ホスト１０Ｃは、バックアップ用のホストコンピュータである。
【００５２】
管理端末２０Ａ，２０Ｂ，２０Ｃは、それぞれが接続されている記憶制御装置１００，２００，３００の構成等を管理したり、各記憶制御装置１００，２００，３００の内部情報を取得するためのコンピュータ装置である。なお、後述のように、ホスト１０Ａ，１０Ｂ，１０Ｃに設けられたストレージ管理プログラム１２によって、各記憶制御装置１００，２００，３００に各種の指示等を与えることができる。従って、管理端末２０Ａ，２０Ｂ，２０Ｃは必ずしも必要ではない。
【００５３】
ホスト１０Ａが正データボリューム１３２，１３３を更新するたびに、正記憶制御装置１００から第１副記憶制御装置２００に、更新情報Ｄ１０が送信される。この更新情報Ｄ１０は、更新されたデータ及び格納先のアドレス情報を含む。
【００５４】
一方、ホスト１０Ａが正データボリューム１３２，１３３を更新するたびに、別の更新情報Ｄ２０が生成され、正ジャーナルボリューム１３１に記憶される。この更新情報Ｄ２０も、管理番号及び更新データを含むことができる。更新情報Ｄ２０は、ジャーナルデータと呼ぶこともできる。第２副記憶制御装置３００は、正記憶制御装置１００にアクセスして、更新情報Ｄ２０、即ち、ジャーナルデータＤ２０を読出し、副ジャーナルボリューム３３１に記憶させる。
【００５５】
図３は、ストレージシステムのハードウェア構成を示すブロック図である。正記憶制御装置１００が設けられている正サイトの構成を示すが、第１副記憶制御装置２００が設けられている第１副サイト及び第２副記憶制御装置３００が設けられている第２副サイトも、同様の構成を備えることができる。
【００５６】
ホスト１０Ａは、マイクロプロセッサやメモリ等を備えたコンピュータ装置であり、例えば、アプリケーションプログラム１１と、ストレージ管理プログラム１２と、HBA（Host Bus Adapter）１３とを備えて構成可能である。
【００５７】
アプリケーションプログラム１１は、図外に設けられたクライアント端末にデータ処理サービスを提供するプログラムであり、例えば、顧客管理プログラム、売上げ管理プログラム、電子メール管理プログラム等である。ストレージ管理プログラム１２は、正記憶制御装置１００（及び副記憶制御装置２００，３００）に対して各種の指示を与えるプログラムである。HBA１３は、正記憶制御装置１００（及び副記憶制御装置２００，３００）とのデータ通信を行うためのインターフェース制御部である。各HBA１３は、SAN等のネットワークCN１を介して、正記憶制御装置１００のポート１１１Ａにそれぞれ接続されている。
【００５８】
アプリケーションプログラム１１及びHBA１３は、それぞれ複数ずつ設けることができ、それぞれ独立して動作させることができる。また、HBA１３を複数設けることにより、いずれか一方の通信経路に障害が発生した場合でも、他方の通信経路を介して、正記憶制御装置１００にアクセスすることができる。
【００５９】
管理端末２０Ａは、マイクロプロセッサやメモリ等を備えたコンピュータ装置であり、ストレージ管理部２１が設けられている。ストレージ管理部２１は、正記憶制御装置１００の構成変更を指示したり、正記憶制御装置１００の各種状態を読み出して端末画面に表示させるものである。
【００６０】
正記憶制御装置１００は、例えば、少なくとも一つ以上のチャネルアダプタ１１１と、少なくとも一つ以上のディスクアダプタ１１２と、少なくとも一つ以上のキャッシュメモリ１１３と、少なくとも一つ以上の共有メモリ１１４と、接続部１１５，１１６と、サービスプロセッサ１１７と、記憶部１２０とを備えて構成可能である。図２に示したコントローラ１１０は、チャネルアダプタ１１１と、ディスクアダプタ１１２と、各メモリ１１３，１１４によって構成することができる。
【００６１】
チャネルアダプタ（以下、CHA）１１１は、ホスト１０Ａとの間のデータ授受を行うための上位通信制御部であり、例えば、マイクロプロセッサやローカルメモリ、データ転送回路等を備えて構成することができる。CHA１１１は、少なくとも一つ以上の通信ポート１１１Ａを備えている。いずれか一つまたは複数の通信ポート１１１Ａは、ネットワークCN１を介して、ホスト１０ＡのHBA１３に接続されている。また、別の複数の通信ポート１１１Ａは、ネットワーク５１０，５２０を介して、各副記憶制御装置２００，３００にそれぞれ接続されている。
【００６２】
ディスクアダプタ（以下、DKA）１１２は、記憶部１２０との間のデータ授受を行うための下位通信制御部であり、例えば、マイクロプロセッサやローカルメモリ、データ転送回路等を備えて構成可能である。DKA１１２は、CHA１１１と別体の制御基板として構成することもできるし、同一の制御基板上にCHA１１１の機能とDKA１１２の機能とを混載することもできる。
【００６３】
キャッシュメモリ１１３は、例えば、ホスト１０Ａによって使用されるユーザデータや一時的な管理用の情報等を記憶するメモリである。共有メモリ１１４は、例えば、正記憶制御装置１００を制御するための各種制御情報を記憶するメモリである。制御情報の一部は、CHA１１１やDKA１１２のローカルメモリにもコピーされる。キャッシュメモリ１１３及び共有メモリ１１４は、それぞれ別々のメモリ基板として構成してもよいし、同一のメモリ基板上にキャッシュメモリ１１３と共有メモリ１１４と混載してもよい。
【００６４】
接続部１１５は、各CHA１１１，各DKA１１２，キャッシュメモリ１１３及び共有メモリ１１４を相互に接続するためのものである。接続部１１５は、例えば、バスやクロスバスイッチ等として構成される。接続部１１６は、各DKA１１２とディスクドライブ１２１とをそれぞれ接続するためのものである。
【００６５】
サービスプロセッサ（以下、SVP）１１７は、正記憶制御装置１００の各種状態を監視したり、管理端末２０Ａからの指示に応じて制御情報を書き換えるものである。SVP１１７は、例えば、装置内ネットワークCN３を介して、各CHA１１１にそれぞれ接続されている。SVP１１７は、いずれか一つのCHA１１１を介して、DKA１１２や共有メモリ１１４等の情報を得ることもできる。なお、装置内ネットワークCN３によって、SVP１１７を、各CHA１１１及び各DKA１１２にそれぞれ接続させる構成でもよい。
【００６６】
記憶部１２０は、複数のディスクドライブ１２１を備えている。ディスクドライブ１２１としては、例えば、ハードディスクドライブ、半導体メモリドライブ、ホログラフィックメモリドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープドライブ等を挙げることができる。ディスクドライブ１２１の有する物理的な記憶領域を仮想化することにより、少なくとも一つ以上の論理的な記憶領域を生成することができる。この論理的な記憶領域は、論理ボリュームと呼ばれる。ホスト１０Ａは、論理ボリュームをアクセス対象としてアクセスする。上述した各ボリューム１３１，１３２，１３３は、それぞれ論理ボリュームである。
【００６７】
先に正記憶制御装置１００内の動作について簡単に説明する。ホスト１０Ａがリードコマンドを発行した場合、CHA１１１は、ホスト１０Ａから要求されたデータがキャッシュメモリ１１３上に存在するか否かを確認する。そのデータがキャッシュメモリ１１３上に記憶されている場合、CHA１１１は、そのデータをキャッシュメモリ１１３から読み出して、ホスト１０Ａに送信する。これに対し、ホスト１０Ａから要求されたデータがキャッシュメモリ１１３上に存在しない場合、CHA１１１は、そのデータの読出しをDKA１１２に要求する。CHA１１１からDKA１１２への指示は、共有メモリ１１４を介して行われる。共有メモリ１１４を随時参照しているDKA１１２は、CHA１１１からの指示を発見すると、そのデータをディスクドライブ１２１から読み出して、キャッシュメモリ１１３に記憶させる。これをステージング処理と呼ぶ。ステージング処理の完了は、共有メモリ１１４を介して、CHA１１１に通知される。ステージングの際に、DKA１１２は、物理アドレスを論理アドレス（LBA：Logical Block Address）に変換する。
【００６８】
ホスト１０Ａがライトコマンドを発行した場合、CHA１１１は、キャッシュメモリ１１３の空き容量等を確認し、ライトデータの受信が可能であれば、ホスト１０Ａからライトデータを受信する。CHA１１１は、受信したライトデータをキャッシュメモリ１１３に記憶させる。また、CHA１１１は、そのデータを論理ボリュームに書き込みべき旨をDKA１１２に指示する。この指示は、共有メモリ１１４を介して行われる。共有メモリ１１４を介して各種指示や報告を伝達することにより、比較的簡単な構成で、複数のCHA１１１，DKA１１２をそれぞれ独立して並行的に動作させることができる。
【００６９】
DKA１１２は、共有メモリ１１４を介してライトコマンドを発見すると、キャッシュメモリ１１３に記憶されているライトデータを論理ボリュームに書き込む。より詳しくは、DKA１１２は、そのライトデータの論理アドレスを物理アドレスに変換し、書き込みが要求された論理ボリュームを構成するディスクドライブ１２１の所定の場所にライトデータを記憶させる。その論理ボリュームがRAID構成を有する場合、ライトデータは複数のディスクドライブ１２１に分散して書き込まれる。キャッシュメモリ１１３からディスクドライブ１２１へのデータ転送をディステージ処理と呼ぶ。ディステージ処理の完了は、共有メモリ１１４を介して、CHA１１１に通知される。ディステージ処理は、正記憶制御装置１００の処理負荷やキャッシュメモリ１１３の空き容量等に基づいて、適当なタイミングで行うことができる。ライトコマンドの受信時に直ちにディステージ処理を行う必要はない。
【００７０】
CHA１１１は、ホスト１０Ａからのライトコマンド及びライトデータを、第１副記憶制御装置２００に転送する。そして、第１副記憶制御装置２００から書き込み完了の報告を受信すると、CHA１１１は、ホスト１０Ａに、ライトコマンドの処理が完了した旨を報告する。従って、正記憶制御装置１００及び第１副記憶制御装置２００のそれぞれにライトデータが保持された場合に、ホスト１０Ａにライトコマンドの処理が完了した旨が通知される。
【００７１】
さらに、CHA１１１は、ライトコマンド及びライトデータに管理番号を対応付けて、ジャーナルデータを生成し、このジャーナルデータを正ジャーナルボリューム１３１に記憶させる。このジャーナルデータは、第２副記憶制御装置３００からの読出し要求に基づいて、正記憶制御装置１００から第２副記憶制御装置３００に転送される。
【００７２】
図４は、各ボリュームの関係を模式的に示す説明図である。正サイト、即ち、正記憶制御装置１００の有する各ボリューム１３１，１３２，１３３は、それぞれ同一のジャーナルグループ１３０に属している。ジャーナルグループ１３０とは、ジャーナルデータが共通に管理されるグループである。データボリューム１３２，１３３のデータ更新が互いに整合していなければならない場合、これら各データボリューム１３２，１３３は同一のグループ１３０に所属する。各データボリューム１３２，１３３に対するデータ更新の履歴は、正ジャーナルボリューム１３１によってそれぞれ管理される。
【００７３】
同様に、第１副サイトにおいても、ジャーナルグループ２３０が設けられており、このジャーナルグループ２３０には、各第１副データボリューム２３２，２３３がそれぞれ所属している。第１副データボリューム２３２，２３３は、正データボリューム１３２，１３３に関係づけられており、各第１副データボリューム２３２，２３３の記憶内容は、正データボリューム１３２，１３３の記憶内容とほぼリアルタイムで一致する。このジャーナルグループ２３０を、第１副ジャーナルグループと呼ぶ場合もある。
【００７４】
第２副サイトにおいても、ジャーナルグループ３３０が設けられており、このジャーナルグループ３３０内には、副ジャーナルボリューム３３１，各第２副データボリューム３３２，３３３がそれぞれ設けられている。各第２副データボリューム３３２，３３３は、正データボリューム１３２，１３３に関係づけられており、時間差は生じるものの、各第２副データボリューム３３２，３３３の記憶内容は、正データボリューム１３２，１３３の記憶内容と一致するようになっている。各第２副データボリューム３３２，３３３のデータ更新の履歴は、副ジャーナルボリューム３３１によってそれぞれ管理される。
【００７５】
図５は、ジャーナルボリュームとデータボリュームとの関係を示す説明図である。ジャーナルボリュームは、ジャーナルグループ内に存在する各データボリュームへのデータ更新をそれぞれ管理する。ジャーナルボリュームの記憶領域の先頭側には、更新情報領域が設けられており、この更新情報領域に続く記憶領域には、ライトデータ領域が設けられている。
【００７６】
ライトデータ領域には、各データボリュームに書き込まれたライトデータのコピーが記憶される。更新情報領域には、ライトデータ領域に記憶されているライトデータの格納先アドレスと管理番号とが対応付けられて記憶されている。この管理番号及びジャーナルボリューム内での格納先アドレスからなる情報を、更新管理情報と呼ぶ場合がある。管理番号は、各データ更新についてそれぞれ発行される番号であり、更新順序を管理するためのものである。
【００７７】
更新情報領域及びライトデータ領域は、それぞれ繰り返して使用される。即ち、更新情報領域の終端アドレスまで使用された場合、先頭アドレスに戻って新たな更新管理情報（管理番号及び格納先アドレス）が上書きで記憶される。同様に、ライトデータ領域も、終端アドレスまで使用された場合、ライトデータ領域の先頭アドレスに戻って新たなライトデータを上書きで記憶される。
【００７８】
図６は、正データボリュームへのデータ更新に伴って、各副データボリュームのデータが更新される様子を模式的に示す説明図である。ここでは、説明の便宜上、正データボリューム１３２を例に挙げて説明する。
【００７９】
正記憶制御装置１００は、ホスト１０ＡからライトコマンドＤ１及びライトデータＤ２を受信すると、ライトデータを正データボリューム１３２に書き込む。同時に、正記憶制御装置１００は、このデータ更新を管理するための管理番号Ｄ３を生成する。管理番号Ｄ３は、例えば、各データ更新のたびに一つずつ値が増加するようにして生成される。
【００８０】
正記憶制御装置１００は、管理番号Ｄ３とライトコマンドＤ１及びライトデータとによって、ジャーナルデータＤ２０を生成する。このジャーナルデータＤ２０は、正ジャーナルボリューム１３１に記憶される。また、正記憶制御装置１００は、ライトコマンドＤ１及びライトデータＤ２によって、更新データＤ１０を生成する。この更新データＤ１０は、第１副記憶制御装置２００に送信される。更新データＤ１０とジャーナルデータＤ２０とは、共通の情報を含んで構成されるが、各副記憶制御装置２００，３００へ供給されるタイミングはそれぞれ異なる。
【００８１】
さらに、正記憶制御装置１００は、切替判定部１１０Ａと、消去判定部１１０Ｂと、閾値記憶部１１０Ｃとを備えている。各判定部１１０Ａ，１１０Ｂは、例えば、コンピュータプログラムとして構成することができる。閾値記憶部１１０Ｃは、例えば、共有メモリ１１４等に設けることができる。
【００８２】
切替判定部１１０Ａは、第２記憶制御装置３００によって正ジャーナルボリューム１３１から読み出されたジャーナルデータＤ２０中の管理番号が、閾値記憶部１１０Ｃに記憶されている閾値に達したか否かを判定する。その管理番号が閾値に達した場合（SEQ#≧閾値）、切替判定部１１０Ａは、第１副記憶制御装置１００に切替指示を与える。
【００８３】
消去判定部１１０Ｂは、ホスト１０Ａからのライト要求に応じて生成された管理番号Ｄ３が、閾値記憶部１１０Ｃに記憶されている閾値に達したか否かを判定する。生成された管理番号が閾値に達した場合、消去判定部１１０Ｂは、第１副記憶制御装置１００に消去指示を与える。
【００８４】
第１副記憶制御装置２００は、更新データＤ１０を受信すると、ライトデータＤ２を第１副データボリューム２３２に書き込む。また、第１副記憶制御装置２００は、ライトデータＤ２の記憶位置を、差分管理テーブルＴ１０中のビットマップテーブルＢＭ１，ＢＭ２のいずれか一方に記憶させる。差分管理テーブルＴ１０については、後述する。
【００８５】
ビットマップテーブルＢＭ１，ＢＭ２は、切替部２１０Ａによって切り替えられる。切替部２１０Ａは、正記憶制御装置１００からの切替指示に基づいて、カレントテーブルとして使用されるビットマップテーブルを選択する。二つのビットマップテーブルＢＭ１，ＢＭ２は、交互に使用される。切替部２１０Ａによって選択されているビットマップテーブルが、カレントテーブルとなる。
【００８６】
また、第１副記憶制御装置２００は、正記憶制御装置１００から消去指示を受信すると、切替前のビットマップテーブルをリセットし、その記憶内容を消去させる。
【００８７】
一方、第２副記憶制御装置３００は、比較的短い周期で、正ジャーナルボリューム１３１からジャーナルデータＤ２０を読み出し、読出したジャーナルデータＤ２０を副ジャーナルボリューム３３１に記憶させる。第２副記憶制御装置３００は、管理番号Ｄ３に基づいてジャーナルデータの順番が揃ったことを確認し、ジャーナルデータＤ２０に示されているデータ更新の内容を第２副データボリューム３３２に反映させる。この反映処理を、リストア処理とも呼ぶ。
【００８８】
図７は、正ジャーナルボリューム１３１と副ジャーナルボリューム３３１との関係を模式的に示す説明図である。上述の通り、各ジャーナルボリューム１３１，３３１は、それぞれ更新情報領域及びライトデータ領域を備えている。
【００８９】
正ジャーナルボリューム１３１の更新情報領域には、複数の更新管理情報（管理番号＋格納先アドレス）を記憶可能である。これら各更新管理情報のうち、更新情報領域の最も先頭側に位置する更新管理情報が含む管理番号は、ジャーナルボリューム１３１に記憶されている最古の管理番号であり、ジャーナルボリューム１３１から消去されたジャーナルデータの次のジャーナルデータに設定されている。更新情報領域の最後に記憶されている更新管理情報が含む管理番号は、ジャーナルボリューム１３１に記憶されている最新の管理番号であり、最も最近行われたデータ更新に設定されている。
【００９０】
副ジャーナルボリューム３３１の更新情報領域にも、複数の更新管理情報を記憶可能である。更新情報領域の最も先頭側に記憶されている更新管理情報に含まれる管理番号は、パージ済の管理番号を示す。パージ済管理番号とは、正記憶制御装置１００に消去が指示された最後のジャーナルデータに設定されている管理番号の次の番号である。リストア済管理番号とは、第２副データボリューム３３２に反映済のジャーナルデータの最後を示す番号である。コピー済管理番号とは、正ジャーナルボリューム１３１から副ジャーナルボリューム３３１にコピーされたジャーナルデータの末尾を示す番号である。
【００９１】
正ジャーナルボリューム１３１に記憶されているジャーナルデータと副ジャーナルボリューム３３１に記憶されているジャーナルデータとの間には、差分が生じる。この差分は、時間の経過につれて解消する。副ジャーナルボリューム３３１に記憶されているジャーナルデータは、適当なタイミングで、第２副データボリューム３３２に反映される。この反映に応じて、リストア済管理番号は繰り下がっていく。リストア済のジャーナルデータは、保持する必要がない。そこで、第２副記憶制御装置３００は、正記憶制御装置１００に、不要なジャーナルデータの末尾の管理番号を明示して、消去を指示する。
【００９２】
図８は、第１副記憶制御装置２００によって使用される差分管理テーブルＴ１０の構成を示す説明図である。この差分管理テーブルＴ１０は、例えば、第１副記憶制御装置２００の共有メモリ等に記憶させることができる。
【００９３】
差分管理テーブルＴ１０は、各ジャーナルグループ毎にそれぞれ用意される。図に示すように、ジャーナルグループ＃１のためにテーブルＴ１１が、ジャーナルグループ＃２のためにテーブルＴ１２が、それぞれ用意されている。
【００９４】
各ジャーナルグループを管理する差分管理テーブルには、複数のビットマップテーブルをそれぞれ含ませることができる。即ち、各ジャーナルグループは、複数のビットマップテーブルＢＭ１，ＢＭ２によって差分が管理される。
【００９５】
ビットマップテーブルＢＭ１，ＢＭ２では、差分管理対象のボリューム２３２，２３３を、例えば、ブロック単位やトラック単位等のように、所定の管理単位毎にそれぞれ区切り、各管理単位毎にそれぞれ１ビットずつの差分管理ビットを設定する。そして、データの更新が行われた場合、その更新位置（ライトデータの記憶位置）に対応する差分管理ビットを「１」に設定する。更新されていない場所については、差分管理ビットは「０」に設定される。従って、差分管理ビットが「１」に設定されている管理単位に対応する範囲のデータが、所定の時点以降に発生した差分データとなる。所定の時点とは、差分管理が開始された時点である。差分管理は、ユーザによる手動操作によって、または自動的に開始させることができる。
【００９６】
ここで、ビットマップテーブルＢＭ１，ＢＭ２の構成方法としては、種々のものが考えられる。例えば、比較的大きな記憶領域を有するビットマップテーブルを用意し、このビットマップテーブルの記憶領域をボリューム数で分割し、各ボリューム毎にそれぞれ割り当てることができる。また、ビットマップテーブルの記憶領域をジャーナルグループ数で分割して各ジャーナルグループにそれぞれ割当て、さらに、これら各ジャーナルグループ毎の記憶領域を該ジャーナルグループに属するボリューム数で分割し、各ボリュームにそれぞれ割り当てることもできる。あるいは、各ジャーナルグループの各ボリューム毎にそれぞれ個別にビットマップテーブルを用意してもよいし、各ビットマップテーブルのサイズをそれぞれ変えることもできる。
【００９７】
次に、図９は、正記憶制御装置１００によって使用されるペア管理テーブルを示す説明図である。このペア管理テーブルＴ２１は、例えば、正記憶制御装置１００の共有メモリ１１４等に記憶させることができる。後述の他のペア管理テーブルＴ２２，Ｔ２３も同様であるが、ペア管理テーブルＴ２１は、正データボリューム１３２，１３３と第１副データボリューム２３２，２３３及び第２副データボリュームとの対応関係を管理するためのものである。なお、第１副記憶制御装置２００の使用するペア管理テーブルＴ２２には、ビットマップテーブルＢＭ１，ＢＭ２を使用するための情報も設けられる。
【００９８】
さて、ペア管理テーブルＴ２１は、正データボリュームに関する情報と、その正データボリュームに対応する第１副データボリュームに関する情報と、その正データボリュームに対応する第２副データボリュームに関する情報と含んで構成される。
【００９９】
正データボリュームに関する情報には、例えば、正データボリュームを識別するためのボリューム番号（P-VOL#）と、その正データボリュームの属性と、その正データボリュームが属するジャーナルグループの番号とが含まれる。
【０１００】
正データボリュームに対応する第１副データボリュームに関する情報には、例えば、その正データボリュームに対応付けられている第１副データボリュームを特定するためのボリューム番号（第１S-VOL#）と、その第１副データボリュームの属するジャーナルグループを特定するための第１副ジャーナルグループ番号と、その第１副データボリュームとその正データボリュームとのペア種別を示す情報と、その第１副データボリュームとその正データボリュームとのペア状態を示す情報とが含まれる。
【０１０１】
同様に、正データボリュームに対応する第２副データボリュームに関する情報には、例えば、その正データボリュームに対応付けられている第２副データボリュームを特定するためのボリューム番号（第２S-VOL#）と、その第２副データボリュームの属するジャーナルグループを特定するための第２副ジャーナルグループ番号と、その第２副データボリュームとその正データボリュームとのペア種別を示す情報と、その第２副データボリュームとその正データボリュームとのペア状態を示す情報とが含まれる。
【０１０２】
ここで、ボリューム属性には、例えば、「正」と「未使用」とがある。「正」の属性が設定されたボリュームは、正データボリュームとして使用されていることを示す。「未使用」の属性が設定されたボリュームは、ボリュームとして用意はされているが、正データボリュームとしては使用されていないボリュームを示す。なお、これ以外の属性を採用することもできる。
【０１０３】
ペア種別には、例えば、「同期」と「非同期」を挙げることができる。「同期」とは、上述のように、正データボリュームへのデータ更新と副データボリュームへのデータ更新とが同期して行われることを示す。「非同期」とは、上述のように、正データボリュームへのデータ更新時期と副データボリュームへのデータ更新時期とが同期していないことを示す。「非同期」の場合、副記憶制御装置側から正記憶制御装置１００にジャーナルデータを読出しに行き、読出したジャーナルデータに基づいて副データボリュームへのデータ更新（リストア）が行われる。
【０１０４】
ペア状態には、例えば、「ペア」、「サスペンド」、「シンプレックス」等を挙げることができる。「ペア」とは、二つのボリュームがコピーペアを形成しており、コピー元ボリューム（正データボリューム）の記憶内容がコピー先ボリューム（副データボリューム）に反映される状態を示す。「サスペンド」とは、コピーペアは形成されているがコピーを停止している状態であり、コピー元ボリュームに生じたデータ更新は、コピー元で差分管理されている状態を示す。「シンプレックス」とは、コピーペアに関与しない通常のボリュームであることを示す。
【０１０５】
図１０は、第１副記憶制御装置２００により使用されるペア管理テーブルＴ２２を示す説明図である。このペア管理テーブルＴ２２は、例えば、第１副記憶制御装置２００の共有メモリ等に記憶させることができる。ペア管理テーブルＴ２２は、ペア管理テーブルＴ２１と同様に、第１副データボリューム２３２，２３３と正データボリューム１３２，１３３及び第２副データボリューム３３２，３３３との対応関係を管理する。
【０１０６】
ペア管理テーブルＴ２２は、第１副データボリュームに関する情報と、その第１副データボリュームに対応する正データボリュームに関する情報と、その正データボリュームに対応する第２副データボリュームに関する情報と、ビットマップテーブルＢＭ１，ＢＭ２を使用するための情報とを含んで構成される。ここでは、ビットマップテーブルを各ボリューム毎に区切って使用する例を示す。「カレントＢＭ＃」とは、そのボリュームの差分を現在管理しているビットマップテーブル（カレントテーブル）を識別するためのテーブル番号である。「ＢＭアドレス」とは、そのボリュームの差分を管理する領域の開始アドレスを示す情報である。
【０１０７】
図１１は、第２副記憶制御装置３００により使用されるペア管理テーブルＴ２３を示す説明図である。このペア管理テーブルＴ２３は、例えば、第２副記憶制御装置３００の共有メモリ等に記憶させることができる。ペア管理テーブルＴ２３は、ペア管理テーブルＴ２１，Ｔ２２と同様に、第２副データボリューム３３２，３３３と正データボリューム１３２，１３３及び第１副データボリューム２３２，２３３との対応関係を管理する。
【０１０８】
ペア管理テーブルＴ２３は、第２副データボリュームに関する情報と、その第２副データボリュームに対応する正データボリュームに関する情報と、その正データボリュームに対応する第１副データボリュームに関する情報と含んで構成される。
【０１０９】
図１２は、正記憶制御装置１００がライトコマンドを受信した場合の処理の概要を示すフローチャートである。後述する以下の各フローチャートでも同様であるが、フローチャートには、本発明を当業者が実施可能な程度に処理の概要が示されており、実際のプログラムとは異なる。
【０１１０】
正記憶制御装置１００は、ホスト１０Ａからライトコマンドを受信したか否かを監視している（Ｓ２１）。ライトコマンドを受信した場合（S21:YES）、正記憶制御装置１００は、ホスト１０Ａから受信したライトデータを、指定された正データボリュームの指定されたアドレスに書き込む（Ｓ２２）。
【０１１１】
また、正記憶制御装置１００は、そのライトデータについて管理番号を新たに取得し（Ｓ２３）、続いて後述のビットマップテーブル切替指示処理を行った後（Ｓ２４）、ジャーナルデータを生成する（Ｓ２５）。正記憶制御装置１００は、この生成したジャーナルデータを正ジャーナルボリューム１３１に記憶させる（Ｓ２６）。上述の通り、ジャーナルボリュームには、ジャーナルデータが生成順に記憶されていく。
【０１１２】
次に、正記憶制御装置１００は、ライトデータを第１副記憶制御装置２００に送信する（Ｓ２７）。そして、正記憶制御装置１００は、第１副記憶制御装置２００からの書込完了報告を待つ（Ｓ２８）。正記憶制御装置１００は、第１副記憶制御装置２００からライトデータの書込完了報告を受領すると（S28:YES）、ホスト１０Ａにライトコマンドの処理が完了した旨を報告する（Ｓ２９）。
【０１１３】
第１副記憶制御装置２００の動作に着目する。第１副記憶制御装置２００は、正記憶制御装置１００からライトデータを受信すると（S31:YES）、このライトデータを、対応する第１副データボリュームの所定の場所に書き込む（Ｓ３２）。所定の場所とは、そのライトデータを書き込むべきアドレスであり、ライトコマンドにより明示されている。
【０１１４】
次に、第１副記憶制御装置２００は、そのライトデータの記憶位置に対応する差分管理ビットを「１」に設定することにより、ビットマップデータを生成し（Ｓ３３）、この生成したビットマップデータを現在使用されているビットマップテーブルに記憶させる（Ｓ３４）。そして、第１副記憶制御装置２００は、ライトデータを第１副データボリュームに記憶させた旨を、正記憶制御装置１００に通知する（Ｓ３５）。
【０１１５】
次に、図１３は、第２副記憶制御装置３００によるデータ更新処理を示すフローチャートである。第２副記憶制御装置３００は、比較的短い周期で、正記憶制御装置１００にジャーナルデータの読出しを要求することができる（Ｓ４１）。
【０１１６】
正記憶制御装置１００は、第２副記憶制御装置３００からの読出し要求を受信すると（S42:YES）、正ジャーナルボリューム１３１からジャーナルデータを読出し（Ｓ４３）、後述のビットマップテーブル消去指示処理を行った後（Ｓ４４）、読出したジャーナルデータを第２副記憶制御装置３００に送信する（Ｓ４５）。ここで、正記憶制御装置１００は、第２副記憶制御装置３００によって保持されている最新の管理番号以降の管理番号が設定されているジャーナルデータを、第２副記憶制御装置３００に供給する。既に送信済のジャーナルデータは、第２副記憶制御装置３００に送信されない。
【０１１７】
第２副記憶制御装置３００は、正記憶制御装置１００からジャーナルデータを取得すると（Ｓ４６）、このジャーナルデータに設定されている管理番号を共有メモリ等に記憶させる（Ｓ４７）。そして、第２副記憶制御装置３００は、そのジャーナルデータを副ジャーナルボリューム３３１に書き込む（Ｓ４８）。第２副記憶制御装置３００は、適当なタイミングで、副ジャーナルボリューム３３１に記憶されたジャーナルデータを第２副データボリュームに反映させる（Ｓ４９）。即ち、第２副記憶制御装置３００は、正記憶制御装置１００からジャーナルデータを取得すると同時に、第２副データボリュームを更新させる必要は必ずしもない。
【０１１８】
図１４は、図１２中にＳ２４で示されたビットマップテーブル切替指示処理を示すフローチャートである。正記憶制御装置１００は、新たに取得された管理番号が閾値に達したか否かを判定する（Ｓ５１）。管理番号が閾値に達していない場合（S51:NO）、図１２に示す処理に戻る。
【０１１９】
管理番号が閾値に達した場合（S51:YES）、正記憶制御装置１００は、第１副記憶制御装置２００にビットマップテーブルの切替を指示する（Ｓ５２）。第１副記憶制御装置２００は、この切替指示を受信すると（Ｓ５３）、カレントビットマップテーブルを切り替える（Ｓ５４）。即ち、第１副記憶制御装置２００は、現在使用中のビットマップテーブルから待機中のビットマップテーブルに切り替え、ペア管理テーブルＴ２２中のカレントビットマップテーブルを示す情報を更新させる（Ｓ５５）。
【０１２０】
図１５は、図１３中にＳ４４で示されたビットマップテーブル消去指示処理を示すフローチャートである。正記憶制御装置１００は、第２副記憶制御装置３００によって読み出されたジャーナルデータの管理番号が閾値に達したか否かを判定する（Ｓ６１）。管理番号が閾値に達していない場合（S61:NO）、図１３に示す処理に戻る。
【０１２１】
管理番号が閾値に達した場合（S61:YES）、正記憶制御装置１００は、第１副記憶制御装置２００にビットマップテーブルの消去を指示する（Ｓ６２）。第１副記憶制御装置２００は、この消去指示を受信すると（Ｓ６３）、現在使用中のビットマップテーブルの前に使用されていたビットマップテーブル（切替前のビットマップテーブル）の記憶内容を消去させる（Ｓ６４）。即ち、そのビットマップテーブルの各差分管理ビットには、それぞれ「０」が設定される。
【０１２２】
図１６は、ビットマップテーブルの切替タイミングと消去タイミングとの関係を模式的に示す説明図である。横軸は時間の経過を、縦軸は管理番号をそれぞれ示す。また、図中の太い実線は、ホスト１０Ａからのライト要求毎に取得される管理番号の変化を、図中の波線は、第２副記憶制御装置３００によって読み出されたジャーナルデータの管理番号の変化を、それぞれ示す。なお、切替閾値及び消去閾値は、それぞれ「１０００」に設定されているものとする。
【０１２３】
実線のグラフに着目する。ライトコマンドが受信されるたびに、管理番号の値が増大していく。管理番号の値が「１０００」ずつ増加するたびに、ビットマップテーブルＢＭ１とＢＭ２とは交互に切り替えられていく。図中の右側には、カレントビットマップテーブルとして選択されたビットマップテーブルの番号が示されている。
【０１２４】
波線のグラフに着目する。第２副記憶制御装置３００によって読み出されたジャーナルデータの管理番号の値が「１０００」ずつ増加するたびに、切替前のビットマップテーブルの内容が消去される。例えば、時刻ｔ２では、カレントビットマップテーブルがＢＭ１からＢＭ２に切り替わっており、切替前のテーブルＢＭ１の記憶内容が消去される。
【０１２５】
切替指示のタイミングｔ１と消去指示のタイミングｔ２との間には、ある程度のずれが生じる。このずれの量は、ホスト１０Ａによる更新頻度や、正記憶制御装置１００と第２副記憶制御装置３００との間の通信状況等によって変化する。既に差分管理に使用されたビットマップテーブルは、いったん記憶内容が消去されてから、再度使用される。そのビットマップテーブルについて消去指示が与えられるよりも前に、切替指示が与えられないように、ビットマップテーブルのサイズ等を決定することができる。
【０１２６】
次に、障害等の発生によって、正記憶制御装置１００から第１副記憶制御装置２００に切り替えられる場合を説明する。図１７は、正記憶制御装置１００から第１副記憶制御装置２００に切り替えられる様子を示す模式図である。
【０１２７】
上述のように、正記憶制御装置１００は、その内部が物理的にも論理的にも冗長化されており、データの消失等を抑制している。しかし、例えば、災害等の障害によって、正記憶制御装置１００は停止する可能性がある。
【０１２８】
正記憶制御装置１００に障害が発生して停止すると、正記憶制御装置１００に代わって、第１副記憶制御装置２００がメイン記憶制御装置として選択される。第１副記憶制御装置２００は、新たな正記憶制御装置となり、第１副記憶制御装置２００の置かれているサイトが正サイトとなる。
【０１２９】
第１副記憶制御装置２００の有する各第１副データボリューム２３２，２３３は、それぞれ正データボリュームとなり、第２副記憶制御装置３００の有する各第２副データボリューム３３２，３３３とコピーペアを形成する。ここで、第１副データボリューム２３２，２３３と第２副データボリューム３３２，３３３とは、いわゆる非同期読出し方式によって、コピーペアを形成する。第２副記憶制御装置３００の視点から見ると、第２副記憶制御装置３００のジャーナルデータ取得元は、正記憶制御装置１００から第１副記憶制御装置２００に切り替えられることになる。後述のように、正記憶制御装置１００から第１副記憶制御装置２００に切り替わる際に、第１副記憶制御装置２００は、ジャーナルボリュームを生成し、ジャーナルデータによる差分管理を開始する。
【０１３０】
メイン記憶制御装置が切り替えられる場合の処理を図１８のフローチャートに基づいて説明する。例えば、第１副サイトのホスト１０Ｂまたは管理端末２０Ｂは、正記憶制御装置１００に障害が発生したことを検出すると（S71:YES）、メインホストを正サイトのホスト１０Ａから第１副サイトのホスト１０Ｂに切り替える（Ｓ７２）。説明の便宜上、ホスト１０Ｂが記憶制御装置への指示を行うものとして説明するが、管理端末２０Ｂを用いても良い。
【０１３１】
メインホストの切替は、自動的に行うことも可能であるし、システム管理者等のユーザによって手動操作で行うこともできる。例えば、ホスト１０Ａとホスト１０Ｂとの間のハートビート通信の停止等に基づいて、正サイトの障害を検出し、ホスト１０Ａからホスト１０Ｂに自動的に切り替えることが考えられる。また、例えば、正サイトの管理者から第１副サイトの管理者に、電子メールや電話等で切替を指示することにより、手動操作で切り替えることも可能である。
【０１３２】
なお、正記憶制御装置１００のみに障害が発生し、ホスト１０Ａが正常に稼動しており、かつ、ホスト１０Ａと第１副記憶制御装置２００との間に通信経路を設定できる場合には、ホスト１０Ａをそのままメインホストとして使用することもできる。この場合、メイン記憶制御装置のみが、正記憶制御装置１００から第１副記憶制御装置２００に切り替えられる。ここでは、災害等により、正サイトのホスト１０Ａ及び正記憶制御装置１００の両方が機能を停止したものとして説明する。
【０１３３】
第１副サイトのホスト１０Ｂは、第２副サイトの第２副記憶制御装置３００に、切替を指示する（Ｓ７３）。第２副記憶制御装置３００は、第１副サイトからの切替指示を受信すると（Ｓ７４）、第２副データボリューム３３２，３３３にコピーペアの削除をそれぞれ指示する（Ｓ７５）。これにより、各第２副データボリューム３３２，３３３は、それぞれ正データボリューム１３２，１３３とのコピーペアを解消し、シンプレックス状態に以降する。
【０１３４】
第１副サイトのホスト１０Ｂは、第１副データボリューム２３２，２３３に向けて、サスペンドコマンドを発行する（Ｓ７６）。これにより、各第１副データボリューム２３２，２３３は、正データボリューム１３２，１３３とのコピーペアを解消し、サスペンド状態に移行する。ホスト１０Ｂから第１副データボリューム２３２，２３３に対するデータ更新は、差分管理テーブルＴ１０によって管理される。
【０１３５】
ホスト１０Ｂは、第１副データボリューム２３２，２３３に対してResyncコマンドを発行する（Ｓ７７）。続いて、ホスト１０Ｂは、第１副ジャーナルグループを正ジャーナルグループに変更し（Ｓ７８）、第１副データボリューム２３２，２３３のボリューム属性をそれぞれ正データボリュームに変更させる（Ｓ７９）。
【０１３６】
そして、ホスト１０Ｂは、第１副記憶制御装置２００を介して、各ビットマップテーブルＢＭ１，ＢＭ２の内容をマージさせ（Ｓ８０）、マージ後のビットマップテーブルに基づいて、差分データを第１副記憶制御装置２００から第２副記憶制御装置３００に送信させる（Ｓ８１）。
【０１３７】
ここで、各ビットマップテーブルＢＭ１，ＢＭ２の記憶内容をマージさせるのは、図１６に示したように、ビットマップテーブルの切替タイミングと消去タイミングとの間にずれが生じるためである。従って、カレントビットマップテーブル及び前回使用されていたビットマップテーブルの両方を考慮して差分コピーを開始させる。
【０１３８】
第２副記憶制御装置３００は、差分データを受信すると（Ｓ８２）、第２副データボリューム３３２，３３３に記憶させる（Ｓ８３）。
【０１３９】
図１９は図１８に続くフローチャートである。ホスト１０Ｂは、第２副データボリューム３３２，３３３に向けて、状態変更コマンドを発行する（Ｓ８４）。第２副記憶制御装置３００は、この状態変更コマンドを受信すると（Ｓ８５）、第２副データボリューム３３２，３３３のペア状態を「ペア」に変更させる（Ｓ８６）。
【０１４０】
また、ホスト１０Ｂは、正データボリュームとなった第１副データボリューム２３２，２３３に向けて状態変更コマンドを発行し、各第１副データボリューム２３２，２３３のペア状態を「ペア」に変更させる（Ｓ８７）。さらに、ホスト１０Ｂは、第１副記憶制御装置２００にジャーナルボリュームを用意させる（Ｓ８８）。
【０１４１】
これにより、記憶制御装置１００から記憶制御装置２００への切替が正常に完了するため、第１副記憶制御装置２００からホスト１０Ｂに切替完了が報告される（Ｓ８９）。このように、正記憶制御装置となった第１副記憶制御装置２００と第２副記憶制御装置３００とを、非同期読出し方式で接続することにより、短時間で切替を完了できる。
【０１４２】
第１副記憶制御装置２００は、正記憶制御装置１００が行っていたと同様に、ホスト１０Ｂからのライト要求（更新要求）を受け付けるたびにジャーナルデータを生成し、このジャーナルデータをジャーナルボリューム２３１に記憶させる（Ｓ９０）。
【０１４３】
第２副記憶制御装置３００は、障害発生前に正記憶制御装置１００との間で行っていたように、比較的短い周期で、第１副記憶制御装置２００にジャーナルデータの読出しを要求する（Ｓ９１）。第１副記憶制御装置２００は、ジャーナルデータの読出し要求を受信すると（Ｓ９２）、ジャーナルボリューム２３１からジャーナルデータを読出し（Ｓ９３）、このジャーナルデータを第２副記憶制御装置３００に送信する（Ｓ９４）。
【０１４４】
第２副記憶制御装置３００は、ジャーナルデータを受信してジャーナルボリューム３３１に記憶させ（Ｓ９５）、適当なタイミングを見計らって、第２副ボリューム３３２，３３３の記憶内容を更新させる（Ｓ９６）。
【０１４５】
本実施例は、上述のように構成されるため、以下の効果を奏する。まず、本実施例では、本実施形態では、第１副記憶制御装置２００は、第１副ボリューム２３２，２３３のデータ更新をビットマップテーブルＢＭ１，ＢＭ２によって管理し、正記憶制御装置１００から第１副記憶制御装置２００への切替時には、第１副記憶制御装置２００から第２副記憶制御装置３に差分データのみをコピーさせる構成とした。従って、第１副ボリューム２Ａと第２副ボリューム３Ａとの間でいわゆる全コピーを行う場合に比べて、ペア形成時間を短くすることができる。また、第１副記憶制御装置２００は、第２副記憶制御装置３００が第２副ボリューム３３２，３３３をどこまで更新したかを管理する仕組みを備えず、所定時点以降の差分データを送信する。従って、制御構造を簡素化できる。
【０１４６】
本実施形態では、複数のビットマップテーブルＢＭ１，ＢＭ２を、不要となった記憶内容を消去しながら、交互に切り替えて使用する構成とした。従って、いずれか一方のビットマップテーブルを使用している間に、他方のビットマップテーブルをリセットさせて再使用に備えさせることができ、ビットマップテーブルのサイズを比較的小さくすることができる。これにより、差分管理に使用する管理情報（ビットマップテーブル）を低減することができ、第２記憶制御装置２００のメモリ資源を有効に利用することができる。
【０１４７】
本実施形態では、正記憶制御装置となる第１副記憶制御装置２００と第２副記憶制御装置３００とを非同期読出し方式（UR方式とも呼ぶ）で接続する構成とした。即ち、コピー元ボリュームとコピー先ボリュームとの間に一時的な差分が生じるのを許容し、コピー元の記憶制御装置２００によって差分をジャーナルデータとして管理する構成とした。従って、比較的速やかにホスト１０Ｂに切替完了を報告することができ、切替時間を短くして使い勝手や信頼性を向上させることができる。
【実施例２】
【０１４８】
図２０に基づいて本発明の第２実施例を説明する。本実施例を含む以下の実施例は、第１実施例の変形例に相当する。本実施例では、４台の記憶制御装置を用いてストレージシステムの冗長性を向上させている。
【０１４９】
図２０（ａ）は通常時の状態を示す説明図である。このストレージシステムでは、正記憶制御装置１００，第１副記憶制御装置２００，第２副記憶制御装置３００に加えて、第３副記憶制御装置４００が設けられている。
【０１５０】
第１実施例で述べたように、正記憶制御装置１００と第１副記憶制御装置２００とは同期方式で接続されており、正記憶制御装置１００と第２副記憶制御装置３００とは非同期読出し方式で接続されている。
【０１５１】
図２０（ｂ）は、正記憶制御装置１００に障害等が発生して停止した場合を示す説明図である。この場合、第１実施例と同様に、第１副記憶制御装置２００が正記憶制御装置となり、第２副記憶制御装置３００と非同期読出し方式で接続される。また、第１副記憶制御装置２００は、第３副記憶制御装置４００とも非同期読出し方式で接続される。
【０１５２】
図２０（ｃ）は、第１副記憶制御装置２００に障害等が発生して停止した場合を示す説明図である。この場合、第２副記憶制御装置３００が正記憶制御装置となり、第３副記憶制御装置４００と非同期読出し方式で接続される。
【０１５３】
このように。４台の記憶制御装置を用いてストレージシステムを構成する場合は、２度の障害が立て続けに発生した場合でも、ストレージシステムの冗長性を確保することができ、信頼性をさらに向上させることができる。なお、本発明は、４台の記憶制御装置で運用する場合に限らず、５台以上の記憶制御装置を用いる場合にも適用可能である。
【実施例３】
【０１５４】
図２１に基づいて、第３実施例を説明する。本実施例では、各記憶制御装置１００，２００，３００の対応関係を各記憶制御装置１００，２００，３００がそれぞれ保持するのではなく、各副記憶制御装置２００，３００は正記憶制御装置１００との対応関係のみを保持する。
【０１５５】
図２１は、第３実施例のストレージシステムで実行される処理の一部を示すフローチャートである。このフローチャートは、図１８で説明したフローチャートに対応しており、共通のステップを含んでいる。そこで、共通のステップの説明を省略し、特徴的なステップを中心に説明する。
【０１５６】
Ｓ７９の後、ホスト１０Ｂは、第２副記憶制御装置３００にペア確認情報の送信を要求する（Ｓ１０１）。ペア確認情報とは、第１副データボリューム２３２，２３３と第２副データボリューム３３２，３３３との対応関係を確認するための情報である。
【０１５７】
ここで、ペア確認情報としては、例えば、製品番号やM.VOL番号等を挙げることができる。製品番号とは、正記憶制御装置１００の装置識別番号である。M.VOL番号とは、第２副データボリューム３３２，３３３に対応する相手方ボリュームのボリューム番号である。これら正記憶制御装置１００の装置識別番号及び第２副データボリューム３３２，３３３に対応する相手方ボリュームのボリューム番号は、それぞれ第２副記憶制御装置３００によって保持されている。
【０１５８】
第２副記憶制御装置３００は、ペア確認情報の取得要求を受信すると（Ｓ１０２）、ペア確認情報を第１副記憶制御装置２００に送信する（Ｓ１０３）。第１副記憶制御装置２００は、ペア確認情報を取得すると（Ｓ１０４）、このペア確認情報と第１副記憶制御装置２００に予め記憶されているペア確認情報とが一致するか否かを判定する（Ｓ１０５）。
【０１５９】
両方のペア確認情報が一致する場合（S105:YES）、その第２副記憶制御装置３００は、第１副記憶制御装置２００と対応しており、接続可能な場合である。そこで、第１副記憶制御装置２００は、Ｓ８０以降のステップを実行する。これに対し、両方のペア確認情報が不一致の場合（S105:NO）、その第２副記憶制御装置３００は、第１副記憶制御装置２００に対応していない場合である。そこで、エラー処理が行われる（Ｓ１０６）。このエラー処理では、例えば、エラーメッセージをユーザに通知することができる。
【０１６０】
このように、ペア確認情報に基づいて、第１副記憶制御装置２００と第２副記憶制御装置３００とが対応するか否かを確認し、両者を接続させる構成とすることにより、各副記憶制御装置２００，３００で管理されるペア管理テーブルＴ２２，Ｔ２３の情報量を削減することができる。
【０１６１】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、通信プロトコルとして、SANやLANを例示したが、これに限定されるものではなく、例えば、iSCSI、ESCON（登録商標）、FICON（登録商標）等の他のプロトコルにも適用することができる。
【図面の簡単な説明】
【０１６２】
【図１】本発明の実施形態の全体概要を示す説明図である。
【図２】ストレージシステムの全体構成を示す説明図である。
【図３】正サイトの構成を示す説明図である。
【図４】各サイトのボリューム同士の対応関係を示す説明図である。
【図５】データボリュームとジャーナルボリュームとの関係を示す説明図である。
【図６】ホストからのデータ更新によって各副記憶制御装置に供給される情報の構成等を示す説明図である。
【図７】正ジャーナルボリュームと副ジャーナルボリュームとの関係を示す説明図である。
【図８】第１副記憶制御装置内において、差分管理を行うために用いられる管理テーブルの構成を示す説明図である。
【図９】正記憶制御装置内に保持されるペア管理テーブルを示す説明図である。
【図１０】第１副記憶制御装置内に保持されるペア管理テーブルを示す説明図である。
【図１１】第２副記憶制御装置内に保持されるペア管理テーブルを示す説明図である。
【図１２】ライトコマンドの処理を示すフローチャートである。
【図１３】非同期読出し方式により、第２副記憶制御装置がジャーナルデータを取得する処理を示すフローチャートである。
【図１４】ビットマップテーブルを切り替えさせる処理を示すフローチャートである。
【図１５】ビットマップテーブルの記憶内容を消去させる処理を示すフローチャートである。
【図１６】ビットマップテーブルの切替タイミングと消去タイミングとを模式的に示す説明図である。
【図１７】正記憶制御装置から第１副記憶制御装置にメイン記憶制御装置が切り替わる様子を示す説明図である。
【図１８】正サイトから第１副サイトに切り替える処理を示すフローチャートである。
【図１９】図１５に続くフローチャートである。
【図２０】第２実施例に係るストレージシステムの全体構成を模式的に示す説明図であって、（ａ）は通常時を、（ｂ）は正記憶制御装置から第１副記憶制御装置に切り替わった場合を、（ｃ）はさらに第１副記憶制御装置から第２副記憶制御装置に切り替わった場合を、それぞれ示す。
【図２１】第３実施例に係るストレージシステムによって実行される切替処理の一部を示すフローチャートである。
【符号の説明】
【０１６３】
１…正記憶制御装置、１Ａ…正ボリューム、１Ｂ…正ジャーナルボリューム、２…副記憶制御装置、２Ａ…副ボリューム、２Ｂ，２Ｃ…差分管理テーブル、３…副記憶制御装置、３Ａ…副ボリューム、３Ｂ…副ジャーナルボリューム、４…ホストコンピュータ、５…管理番号、６…更新データ、７…ジャーナルデータ、１０Ａ，１０Ｂ，１０Ｃ…ホストコンピュータ、１１…アプリケーションプログラム、１２…ストレージ管理プログラム、１３…ホストバスアダプタ、２０Ａ，２０Ｂ，２０Ｃ…管理端末、２１…ストレージ管理部、１００…正記憶制御装置、１１０…コントローラ、１１０Ａ…切替判定部、１１０Ｂ…消去判定部、１１０Ｃ…閾値記憶部、１１１…チャネルアダプタ、１１１Ａ…ポート、１１２…ディスクアダプタ、１１３…キャッシュメモリ、１１４…共有メモリ、１１５，１１６…接続部、１１７…サービスプロセッサ、１２０…記憶部、１２１…ディスクドライブ、１３０…ジャーナルグループ、１３１…正ジャーナルボリューム、１３２，１３３…正データボリューム、２００…第１副記憶制御装置、２１０…コントローラ、２２０…記憶部、２３０…ジャーナルグループ、２３１…ジャーナルボリューム、２３２，２３３…副データボリューム、３００…第２副記憶制御装置、３１０…コントローラ、３２０…記憶部、３３０…ジャーナルグループ、３３１…副ジャーナルボリューム、３３２，３３３…副データボリューム、４００…副記憶制御装置、５１０，５２０，５３０…通信ネットワーク
【図１】
2007066162.tif 000003
【図２】
2007066162.tif 000004
【図３】
2007066162.tif 000005
【図４】
2007066162.tif 000006
【図５】
2007066162.tif 000007
【図６】
2007066162.tif 000008
【図７】
2007066162.tif 000009
【図８】
2007066162.tif 000010
【図９】
2007066162.tif 000011
【図１０】
2007066162.tif 000012
【図１１】
2007066162.tif 000013
【図１２】
2007066162.tif 000014
【図１３】
2007066162.tif 000015
【図１４】
2007066162.tif 000016
【図１５】
2007066162.tif 000017
【図１６】
2007066162.tif 000018
【図１７】
2007066162.tif 000019
【図１８】
2007066162.tif 000020
【図１９】
2007066162.tif 000021
【図２０】
2007066162.tif 000022
【図２１】
2007066162.tif 000023