(57)【要約】【課題】本発明は、簡易かつ高速にシステム運用させ得る計算機システムを提案する。【解決手段】第一のストレージシステムと、第二のストレージシステムと含む計算機システムであって、第一のストレージシステムは、第一のボリュームに記憶されたデータを第二のストレージシステムの第二のボリュームに転送するデータ転送部を備え、第二のストレージシステムは、スナップショット作成指示に基づいて、第二のボリュームのスナップショットを第三のボリュームに作成するスナップショット作成部を備え、スナップショット作成部は、データ転送部により第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにした。【選択図】図９
2008040762.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、前記第一のストレージシステムから送信される前記データを記憶する第二のボリュームを有する第二のストレージシステムとを含む計算機システムであって、
前記第一のストレージシステムは、
前記第一のボリュームに記憶された前記データを前記第二のストレージシステムの前記第二のボリュームに転送するデータ転送部
を備え、
前記第二のストレージシステムは、
スナップショット作成指示に基づいて、前記第二のボリュームのスナップショットを第三のボリュームに作成するスナップショット作成部
を備え、
前記スナップショット作成部は、
前記データ転送部により前記第一のボリュームから前記第二のボリュームに前記データを転送しているときに前記スナップショット作成指示を受信した場合、前記第一のボリュームから前記第二のボリュームに前記データの転送が終了するまで、前記第二のボリュームのスナップショットの前記第三のボリュームへの作成を遅延させる
ことを特徴とする計算機システム。
【請求項２】
前記スナップショット作成部は、
前記データ転送部により前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記スナップショット作成指示を受信した場合、即時に前記第二のボリュームのスナップショットを前記第三のボリュームに作成する
ことを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記データ転送部は、
前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送する
ことを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記第二のストレージシステムは、
前記第二のボリュームに記憶された前記データを第四のボリュームに転送する第二のデータ転送部
を備え、
前記第二のデータ転送部は、
前記第一のボリュームから前記第二のボリュームに前記データの転送が終了すると、前記第二のボリュームから前記第四のボリュームに前記データの転送を開始し、
前記データ転送部は、
前記第二のボリュームから前記第四のボリュームに前記データの転送が終了すると、前記第一のボリュームから前記第二のボリュームに前記データの転送を開始する
ことを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記第一のストレージシステムは、
前記第一のボリュームに新たに記憶された更新対象のデータの内容を記録する第一の更新ビットマップと、
前記第二のストレージシステムに転送する転送対象のデータの内容を記録する差分ビットマップと
を備え、
前記データ転送部は、
一定期間ごとに前記更新ビットマップ及び前記差分ビットマップの内容を入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送する
ことを特徴とする請求項３に記載の計算機システム。
【請求項６】
前記第二のストレージシステムは、
前記第三のボリュームに新たに記憶すべき更新対象のデータの内容を記録する第二の更新ビットマップ
を備え、
前記スナップショット作成部は、
スナップショット作成指示に基づいて、前記第二のビットマップのすべてのビットを、前記第三のボリュームに新たに記憶すべきという内容に変更し、その後、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送する
ことを特徴とする請求項１に記載の計算機システム。
【請求項７】
前記スナップショット作成部は、
前記第二のボリュームへの書込み要求を受信したときに、当該書込み要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記書き込み要求に対応するデータを前記第二のボリュームの記憶領域に書き込む
ことを特徴とする請求項６に記載の計算機システム。
【請求項８】
前記スナップショット作成部は、
前記第三のボリュームへのアクセス要求を受信したときに、当該アクセス要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記アクセス要求に対応するデータを、前記第三のボリュームの記憶領域から読み出し、又は前記第三のボリュームの記憶領域に書き込む
ことを特徴とする請求項６に記載の計算機システム。
【請求項９】
前記第二のストレージシステムは、
前記第一のストレージシステムから転送された前記データを前記第二のボリュームに転送する第三の転送部と、
前記第一のストレージシステムから転送された前記データを記憶する受信差分バッファと、
前記第二のボリュームに適用する適用対象のデータを記憶する適用差分バッファと
を備え、
前記第三のデータ転送部は、
一定期間ごとに前記受信差分バッファ及び前記適用差分バッファを入れ替えることにより、前記第一のストレージシステムから転送された前記データをまとめて、前記第二のボリュームに適用する
ことを特徴とする請求項３に記載の計算機システム。
【請求項１０】
前記第一のストレージシステムは、
前記第一のボリュームに新たに記憶された更新対象のデータを記憶するキャプチャ差分バッファと、
前記第二のストレージシステムに転送する転送対象のデータを記憶する転送差分バッファと
を備え、
前記データ転送部は、
一定期間ごとに前記キャプチャ差分バッファ及び前記転送差分バッファを入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムに転送する
ことを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記スナップショット作成部は、
前記上位装置から送信された指定マーカと、前記第二のボリュームのマーカ領域に記憶されたマーカが一致し、かつ前記データ転送部により前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記第二のボリュームのスナップショットを前記第三のボリュームに作成する
ことを特徴とする請求項１に記載の計算機システム。
【請求項１２】
上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、前記第一のストレージシステムから送信される前記データを記憶する第二のボリュームを有する第二のストレージシステムとを含む計算機システムのスナップショット作成方法であって、
前記第一のボリュームに記憶された前記データを前記第二のストレージシステムの前記第二のボリュームに転送する第一のステップと、
スナップショット作成指示に基づいて、前記第二のボリュームのスナップショットを第三のボリュームに作成する第二のステップと
を備え、
前記第二のステップでは、
前記第一のステップにおいて前記第一のボリュームから前記第二のボリュームに前記データを転送しているときに前記スナップショット作成指示を受信した場合、前記第一のボリュームから前記第二のボリュームに前記データの転送が終了するまで、前記第二のボリュームのスナップショットの前記第三のボリュームへの作成を遅延させる
ことを特徴とするスナップショット作成方法。
【請求項１３】
前記第二のステップでは、
前記第一のステップにおいて前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記スナップショット作成指示を受信した場合、即時に前記第二のボリュームのスナップショットを前記第三のボリュームに作成する
ことを特徴とする請求項１２に記載のスナップショット作成方法。
【請求項１４】
前記第一のステップでは、
前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送する
ことを特徴とする請求項１２に記載のスナップショット作成方法。
【請求項１５】
前記第二のボリュームに記憶された前記データを第四のボリュームに転送する第三のステップ
を備え、
前記第三のステップでは、
前記第一のボリュームから前記第二のボリュームに前記データの転送が終了すると、前記第二のボリュームから前記第四のボリュームに前記データの転送を開始し、
前記第一のステップでは、
前記第二のボリュームから前記第四のボリュームに前記データの転送が終了すると、前記第一のボリュームから前記第二のボリュームに前記データの転送を開始する
ことを特徴とする請求項１４に記載のスナップショット作成方法。
【請求項１６】
前記第一のステップでは、
一定期間ごとに、前記第一のボリュームに新たに記憶された更新対象のデータの内容を記録する第一の更新ビットマップ及び前記第二のストレージシステムに転送する転送対象のデータの内容を記録する差分ビットマップの内容を入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送する
ことを特徴とする請求項１４に記載のスナップショット作成方法。
【請求項１７】
前記第二のステップでは、
スナップショット作成指示に基づいて、前記第三のボリュームに新たに記憶すべき更新対象のデータの内容を記録する第二のビットマップのすべてのビットを、前記第三のボリュームに新たに記憶すべきという内容に変更し、その後、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送する
ことを特徴とする請求項１２に記載のスナップショット作成方法。
【請求項１８】
前記第二のステップでは、
前記第二のボリュームへの書込み要求を受信したときに、当該書込み要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記書き込み要求に対応するデータを前記第二のボリュームの記憶領域に書き込む
ことを特徴とする請求項１７に記載のスナップショット作成方法。
【請求項１９】
前記第二のステップでは、
前記第三のボリュームへのアクセス要求を受信したときに、当該アクセス要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記アクセス要求に対応するデータを、前記第三のボリュームの記憶領域から読み出し、又は前記第三のボリュームの記憶領域に書き込む
ことを特徴とする請求項１７に記載のスナップショット作成方法。
【請求項２０】
前記第一のストレージシステムから転送された前記データを前記第二のボリュームに転送する第四のステップ
を備え、
前記第四のステップでは、
一定期間ごとに、前記第一のストレージシステムから転送された前記データを記憶する受信差分バッファ及び前記第二のボリュームに適用する適用対象のデータを記憶する適用差分バッファを入れ替えることにより、前記第一のストレージシステムから転送された前記データをまとめて、前記第二のボリュームに適用する
ことを特徴とする請求項１４に記載のスナップショット作成方法。
【請求項２１】
前記第一のステップでは、
一定期間ごとに、前記第一のボリュームに新たに記憶された更新対象のデータを記憶するキャプチャ差分バッファ及び前記第二のストレージシステムに転送する転送対象のデータを記憶する転送差分バッファを入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムに転送する
ことを特徴とする請求項２０に記載のスナップショット作成方法。
【請求項２２】
前記第二のステップでは、
前記上位装置から送信された指定マーカと、前記第二のボリュームのマーカ領域に記憶されたマーカが一致し、かつ前記第一のステップにおいて前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記第二のボリュームのスナップショットを前記第三のボリュームに作成する
ことを特徴とする請求項１２に記載のスナップショット作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びそのスナップショット作成方法に関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータとストレージシステムとをネットワークにより接続し、ホストコンピュータで処理されるデータを、ネットワークを介して送受信してストレージシステムに格納するコンピュータシステムが実用化されている。
【０００３】
このようなコンピュータシステムにおいて、ネットワークを介し、ローカルサイトのストレージシステムのボリューム群及びリモートサイトのストレージシステムのボリューム群を、ボリューム間コピーを実行するためのペア関係になるように構成し、ローカルサイトのストレージシステムのボリューム群からリモートサイトのストレージシステムのボリューム群にデータのコピー（複製）を行うことにより、ローカルサイトのストレージシステムで災害が発生した場合でもデータの消失を防ぐリモートコピー技術が知られている。
【０００４】
リモートコピー技術に関する従来技術として、例えば非特許文献１及び非特許文献２には、ローカルサイトのストレージシステムのボリューム群の変更差分を、一定時間毎にまとめて非同期にリモートサイトのストレージシステムに転送することで、リモートサイトのストレージシステムのボリューム群に、ローカルサイトのストレージシステムのボリューム群のバックアップを作成する非同期リモートコピー技術が開示されている。
【０００５】
しかしながら、かかる非同期リモートコピー技術では、ローカルサイトのストレージシステムのボリューム群の変更差分をリモートサイトのストレージシステムのボリューム群に転送するに際し、ホストコンピュータからローカルサイトのストレージシステムのボリューム又はボリューム群に書き込まれた順序に対する整合性が保証されない。
【０００６】
従って、かかる非同期リモートコピー技術では、転送中にローカルサイトのストレージシステムが災害等で故障した場合、リモートサイトのストレージシステムのボリューム群の整合性が保証されないため、データが破損してしまう場合がある。
【０００７】
そこで、かかる非同期リモートコピー技術とローカルコピー技術とを組み合わせることにより、リモートサイトのストレージシステムにおいて、ホストコンピュータからの書き込み順序に対する整合性のとれたボリュームの存在を、任意時点で保障するリモートコピー技術が開示されている。具体的に、当該リモートコピー技術では、ローカルサイトのストレージシステムの第一のボリューム群からリモートサイトのストレージシステムの第二のボリューム群に非同期リモートコピーを行い、すべての変更差分を転送した後、第二のボリューム群からリモートサイトのストレージシステムの第四のボリューム群にローカルコピーを行う。このように、非同期リモートコピーとローカルコピーとを交互に実施することにより、ローカルサイトのストレージシステムの第一のボリューム群の変更差分をリモートサイトのストレージシステムの第二のボリューム群に転送するときには、第四のボリューム群において、整合性のとれたボリューム群の存在が保証される。
【０００８】
また、非特許文献３にて、リモートサイトのストレージシステムにおいて、差分バッファに差分データを一次的に保存することによって、ローカルサイトのストレージシステムが災害等で故障し、以降のデータの転送が行われない場合でも、リモートサイトのストレージシステムでホストコンピュータからローカルサイトのストレージシステムに書き込まれた順序に対する整合性の取れたボリューム群を構成することができるリモートコピー技術が開示されている。
【非特許文献１】IBM REDBOOKS - Disaster Recovery with DB2 UDB for zOS   2004年11月
【非特許文献２】IBM REDBOOKS - The IBM TotalStorage DS8000 Series: Copy Services with IBM Eserver zSeries   2006年2月
【非特許文献３】Using Asynchronous Replication for Business Continuity Between Two or More Sites  2004年12月
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、非同期リモートコピー技術とローカルコピー技術とを組み合わせた上述のリモートコピー技術では、当該リモートコピー技術のシステム運用中にリモートサイトのストレージシステムにおいて、テストなどの用途のために第二のボリューム群及び第四のボリューム群を使用した場合には、当該リモートコピー技術におけるシステム運用をテストの実行が終了するまで中断する必要がある。また、当該テストを実行するときに、第二のボリューム群及び第四のボリューム群に書き込みが行われた場合には、正しいバックアップが取れなくなる可能性がある。
【００１０】
このため、リモートサイトのストレージシステムに新規の第三のボリューム群を用意し、第二のボリューム群のスナップショットを第三のボリューム群として作成することが考えられる。しかしながら、第二のボリューム群のスナップショットを第三のボリューム群として作成した場合には、第二のボリューム群が変更差分のコピー中である場合があるため、ホストコンピュータからローカルサイトのストレージシステムに書き込まれた順序性に対する整合性は保障されないこととなる。
【００１１】
このとき、整合性が保障されたスナップショットを作成するには、上述のリモートコピー技術におけるシステム運用を中断して、整合性が保障される状態にするコマンドをローカルサイト側で発行した後、第二のボリュームのスナップショットを作成し、その後、上述のリモートコピー技術におけるシステム運用を再開するコマンドをローカルサイト側で発行する必要があった。このため、ローカルサイトのストレージシステムでの上述のリモートコピー技術におけるシステム運用の停止、再開といった煩雑な作業が発生し、システム運用に影響が発生することとなる。
【００１２】
また、非特許文献３に記載されたリモートコピー技術についても、当該リモートコピー技術におけるシステム運用中に、リモートサイトのストレージシステムにおける第二のボリューム群のスナップショットを作成する場合には、差分バッファのデータを適用中の場合があるため、整合性が保証されない可能性がある。
【００１３】
本発明は以上の点を考慮してなされたもので、簡易かつ高速にシステム運用させ得る計算機システム及びそのスナップショット作成方法を提案するものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため本発明においては、上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、第一のストレージシステムから送信されるデータを記憶する第二のボリュームを有する第二のストレージシステムと含む計算機システムであって、第一のストレージシステムは、第一のボリュームに記憶されたデータを第二のストレージシステムの第二のボリュームに転送するデータ転送部を備え、第二のストレージシステムは、スナップショット作成指示に基づいて、第二のボリュームのスナップショットを第三のボリュームに作成するスナップショット作成部を備え、スナップショット作成部は、データ転送部により第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにした。
【００１５】
従って、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
【００１６】
また、本発明においては、上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、第一のストレージシステムから送信されるデータを記憶する第二のボリュームを有する第二のストレージシステムと含む計算機システムのスナップショット作成方法であって、第一のボリュームに記憶されたデータを第二のストレージシステムの第二のボリュームに転送する第一のステップと、スナップショット作成指示に基づいて、第二のボリュームのスナップショットを第三のボリュームに作成する第二のステップとを備え、第二のステップでは、第一のステップにおいて第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにした。
【００１７】
従って、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
【発明の効果】
【００１８】
本発明によれば、第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにしたことにより、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができ、かくして、簡易かつ高速にシステム運用させ得る計算機システム及びそのスナップショット作成方法を実現できる。
【発明を実施するための最良の形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）第一の実施の形態
図１は、本発明の第一の実施の形態における計算機システム１００の概略的な構成を示している。計算機システム１００は、ホストコンピュータ１０１、第一のストレージシステム１０２Ａ及び第二のストレージシステム１０２Ｂを、ネットワーク１０３を介して接続することにより構成されている。また、計算機システム１００は、内部状態を参照する管理端末１０４をネットワーク１０３を介して、又は直接、第一のストレージシステム１０２Ａ及び第二のストレージシステム１０２Ｂに接続することにより構成されている。
【００２１】
第一のストレージシステム１０２Ａは、後述する一又は複数のドライブ２１１Ａ、２２１Ｂにより提供される物理的な記憶領域上に設定され、データが記憶される１又は複数の第一のボリューム群１１１Ａを有している。また、第二のストレージシステム１０２Ｂは、第一のボリューム群１１１Ａと同様に構成された第二のボリューム群１１１Ｂ、第三のボリューム群１１１Ｃ及び第四のボリューム群１１１Ｄを有している。
【００２２】
第一のボリューム群１１１Ａ及び第二のボリューム群１１１Ｂは、リモートコピーのボリューム間コピーを実行するためのペア関係１２１である。計算機システム１００は、第一のボリューム群１１１Ａ及び第二のボリューム群１１１Ｂ間においてリモートコピー１２２を実行する。また、第二のボリューム群１１１Ｂ及び第四のボリューム群１１１Ｄは、ローカルコピーのボリューム間コピーを実行するためのペア関係１２３であり、計算機システム１００は、第二のボリューム群１１１Ｂ及び第四のボリューム群１１１Ｄ間においてローカルコピー１２４を実行する。このように、計算機システム１００では、２つのペア関係により、リモートコピーシステムを構成する。
【００２３】
第三のボリューム群１１１Ｃは、第二のボリューム群１１１Ｂのスナップショット１２４のターゲットとなるボリューム群である。スナップショット１２５が実行された後のボリューム群である第三のボリューム群１１１Ｃは、テストなどの用途でホストコンピュータ１０１等からアクセスされる。
【００２４】
第一のストレージシステム１０２Ａは、第一のボリューム群１１１Ａと対応する２つのビットマップである更新ビットマップ１１２Ａ及び差分ビットマップ１１２Ｂを有している。更新ビットマップ１１２Ａは、第一のボリューム群１１１Ａへのデータ書き込みによる更新部分を表している。差分ビットマップ１１２Ｂは、第二のストレージシステム１０２Ｂの第二のボリューム群１１１Ｂに転送する差分データを表している。また、第二のストレージシステム１０２Ｂは、第二のボリューム群１１１Ｂと対応する更新ビットマップ１１２Ｃを有しており、第三のボリューム群１１１Ｃと対応する更新ビットマップ１１２Ｄを有している。
【００２５】
一般的に、第一のストレージシステム１０２Ａは、ローカルサイト側に物理的に設置され、第二のストレージシステム１０２Ｂは、災害等の影響を避けるために、ローカルサイトから距離の離れたリモートサイト側に物理的に設置される。
【００２６】
図２は、計算機システム１００における内部の概略的な構成を示している。第一のストレージシステム１０２Ａは、記憶制御装置２０１Ａと、当該記憶制御装置２０１Ａに接続された記憶装置２０２Ａから構成されている。記憶装置２０２Ａは、複数個のドライブ２１１Ａによって構成されている。記憶制御装置２０１Ａは、ネットワーク１０３と接続される入出力部２２１Ａと、管理端末１０４及びネットワーク１０３と接続される管理入出力部２２２Ａと、記憶制御装置２０１Ａに対してユーザなどが指示を与えることができる保守端末２２３Ａと、各種プログラムやデータが配置されるメモリ２２４Ａと、主にメモリ２２４Ａ上の各種プログラムを動作させるプロセッサ２２５Ａから構成されている。なお、上述のドライブ２１１Ａは、ハードディスク等の磁気記憶媒体のみでなく、半導体メモリなどを用いることも考えられる。また、メモリ２２４Ａを記憶媒体として記憶制御装置を構成することも考えられる。この場合には、記憶装置２０２Ａは、接続することなく、ストレージシステムを構成することができる。また、記憶装置２０２Ａの代わりに他のストレージシステムをファイバチャネル等で接続し、記憶装置として動作させることも考えられる。
【００２７】
第二のストレージシステム１０２Ｂは、メモリ２２４Ｂ上に記憶されている各種プログラムや情報等が異なる点を除いて第一のストレージシステム１０２Ａと同様に構成されており、第二のストレージシステム１０２Ｂの各構成要素について、第一のストレージシステム１０２Ａの構成要素と同一部分に、同一符号に添え字「Ａ」に代えて添え字「Ｂ」を付している。なお、計算機システム１００では、第二のストレージシステム１０２Ｂがバックアップ用のストレージシステムという観点から、第一のストレージシステム１０２Ａのドライブ２１１Ａを、例えば、ＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスクドライブから構成し、第二のストレージシステム１０２Ｂのドライブ２１１Ｂを、例えば、ＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクデバイスから構成することもできる。
【００２８】
第一のストレージシステム１０２Ａのメモリ２２４Ａ上には、後述するコピー管理プログラム２３１Ｂと連携してリモートコピーの実行制御等を行うコピー管理プログラム２３１Ａと、第一のストレージシステム１０２Ａの第一のボリューム群１１１Ａから第二のストレージシステム１０２Ｂの第二のボリューム群１１１Ｂの差分データを間欠的に転送する制御等を行うリモートコピープログラム２３２と、第一のボリューム群１１１Ａへのデータアクセス（読み書き）の制御を行うＩ／Ｏ（Input/Output）制御プログラム２３３Ａと、後述するマーカの書き込みを制御するマーカ制御プログラム２３４と、複数の更新ビットマップ１１２Ａと、複数の差分ビットマップ１１２Ｂと、ペア情報２３５Ａと、書き込み対象のデータを保持する目的等で使用されるサイドファイル２３６とが格納されている。
【００２９】
また、第二のストレージシステム１０２Ｂのメモリ２２４Ｂ上には、コピー管理プログラム２３１Ａと連携したリモートコピー及びローカルコピーの実行制御等を行うコピー管理プログラム２３１Ｂと、ローカルコピープログラム２３７と、第二〜第四のボリューム群１１１Ｂ〜１１２Ｄへのデータアクセスの制御を行うＩ／Ｏ制御プログラム２３３Ｂと、スナップショット拡張プログラム２３８と、スナップショットプログラム２３９と、ローカルコピー制御情報２４０と、複数の更新ビットマップ１１２Ｃ、１１２Ｄと、ペア情報２３５Ｂとが格納されている。
【００３０】
図３〜図６は、第一及び第二のストレージシステム１０２Ａ、１０２Ｂの内部で保持されているデータ構造を示している。
【００３１】
図３は、更新ビットマップ１１２Ａ、１１２Ｃ及び１１２Ｄ並びに差分ビットマップ１１２Ｂの概略的な説明である。更新ビットマップ１１２Ａ、１１２Ｃ及び１１２Ｄ並びに差分ビットマップ１１２Ｂは、第一〜第三のボリューム群１１１Ａ〜１１１Ｃに対応して存在し、当該第一〜第三のボリューム群１１１Ａ〜１１１Ｃの全ての記憶領域に対して、一定サイズの記憶領域３０２と一対一に対応するビット３０１の集合体である。それぞれのビット３０１は、第一〜第三のボリューム群１１１Ａ〜１１２Ｃの対応する記憶領域３０２に格納されたデータが、ある時点から更新ありか、更新なしかの情報を有している。更新ビットマップ１１２Ａ、１１１Ｃ及び１１１Ｄは、一定期間内に、対応する第一〜第三のボリューム群１１１Ａ〜１１２Ｃに対するデータの書き込みが行われた記憶領域３０２を記録する用途や、記憶領域３０２へのデータコピーの要否を判定する用途等に使用される。差分ビットマップ１１２Ｂは、リモートコピーを実施する上でコピーすべきデータを第一のボリューム群１１１Ａの記憶領域３０２から参照する用途に使用される。詳細については、後ほどのプログラムの動作説明で行う。
【００３２】
図４は、ペア情報２３５Ａのテーブル構造を示している。ペア情報２３５Ａは、ペア識別子３１１Ａと、コピー元のボリュームであるソースボリューム名３１２Ａと、コピー先のボリュームであるターゲットボリューム名３１３Ａと、リモートコピーのペアの関係を表すペア関係３１４Ａとを項目として有し、リストによって構成されている。なお、ペア情報２３５Ｂは、ペア関係３１４Ｂについて、リモートコピーやローカルコピー、スナップショットなどのペアの関係を表す点を除いて、ペア情報２３５Ａと同様に構成されている。
【００３３】
図５は、サイドファイル２３６のテーブル構造を示している。サイドファイル２３６は、ボリューム名３２１と、記憶領域アドレス３２２と、格納データ３２３とを項目として有し、リストによって構成されている。サイドファイル２３６は、主に、書き込みしようとしている記憶領域の書き込み前のデータを保存することを目的として、一時的にデータの保存を行う。サイドファイル２３６は、例えば、差分ビットマップ１１２Ｂを参照しながらデータを第二のストレージシステム１０２Ｂに転送を行う際に、並行してホストコンピュータ１０１より第二のボリュームに１１１Ｂデータが書き込まれる場合、差分ビットマップ１１２Ｂに対応した記憶領域が変更されてしまう可能性があるため、当該記憶領域に現在書き込まれているデータを一時的に格納し、データの転送時に必要であれば参照するといったような使用法が考えられる。また、サイドファイル２３６は、メモリ２２４Ａ上だけでなく、記憶装置２０２Ａ内の記憶領域に存在する場合も考えられる。詳細については、後ほどのプログラムの動作説明で行う。
【００３４】
図６は、ローカルコピー制御情報２４０のテーブル構造を示している。ローカルコピー制御情報２４０は、ボリューム名３３１と、ローカルコピー制御フラグ３３２と、実行待ちフラグ３３３とを項目として有し、リストによって構成されている。ローカルコピー制御フラグ３３２は、当該ボリュームに対してスナップショットを作成する際に作成可能かどうか判定する用途で使用される。この場合、ローカルコピー制御フラグ３３２がオン（ＯＮ）である場合には、リモートコピーが終了しているため、ローカルコピーを実行しても良いという旨を示しており、ローカルコピー制御フラグ３３２がオフ（ＯＦＦ）である場合には、リモートコピーが実行中であるため、ローカルコピーを実行してはならない旨を示している。実行待ちフラグ３３３は、スナップショットが実行中であるため、ローカルコピー終了報告を第一のストレージシステム１０２Ａに送信することを防止する用途で使用される。また、この場合、実行待ちフラグ３３３がオン（ＯＮ）である場合には、スナップショットが実行中であるため、リモートコピーを実行してはならない（ローカルコピー終了報告を送信してはならない）という旨を示しており、実行待ちフラグ３３３がオフ（ＯＦＦ）である場合には、スナップショットが終了しているため、リモートコピーを実行しても良い（ローカルコピー終了報告を送信しても良い）旨を示している。
【００３５】
図７及び図８は、リモートコピーシステムの動作の概要を示している。第一のストレージシステム１０２Ａは、図７に示すように、第一のボリューム群１１１Ａに対して一定期間に書き込まれた書き込み対象のデータをまとめて第一のボリューム群１１１Ａから第二のボリューム群１１１Ｂに転送するリモートコピー１２２を実行する。次に、第二のストレージシステム１０２Ｂは、図８に示すように、第二のボリューム群１１１Ｂから第四のボリューム群１１１Ｄに転送するローカルコピー１２４を実行する。この計算機システム１００では、上述のリモートコピー１２２及びローカルコピー１２４を交互に周期実行することにより、第二のストレージシステムにおいてデータ整合性の取れたボリュームの存在を保証するリモートコピーシステムを構成する。データ整合性についての詳細な説明については、後ほど行う。
【００３６】
図９は、第一〜第四のボリューム群１１１Ａ〜１１１Ｄの更新状態を時系列で示している。この場合、第一のボリューム群１１１Ａの更新状態を時系列で表したものが３４１Ａであり、第二のボリューム群１１１Ｂの更新状態を時系列で表したものが３４１Ｂであり、第三のボリューム群１１１Ｃの更新状態を時系列で表したものが３４１Ｃであり、第四のボリューム群１１１Ｄの更新状態を時系列で表したものが３４１Ｄである。
【００３７】
第一のストレージシステム１０２Ａは、タイミングＴ１において、第一のボリューム群１１１Ａに対応する更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの内容の入れ替えを実行する。第一のストレージシステム１０２Ａにおけるこの時点の第一のボリューム群１１１Ａの更新状態をＡとする。
【００３８】
次に、第一のストレージシステム１０２Ａのリモートコピープログラム２３２は、第二のボリューム群１１１Ｂの更新状態をＡにするために、差分ビットマップ１１２Ｂの内容を参照し、差分データを第二のストレージシステム１０２Ｂに転送するリモートコピー１２２Ａを実行する。この第二のストレージシステム１０２Ｂの第二のボリューム群１１１Ｂへの差分データの適用期間である差分適用期間Ｄ１は、ホストコンピュータ１０１からの書き込み順序に非依存で第二のボリューム群１１１Ｂにデータが書き込まれるため、第二のボリューム群１１１Ｂの書き込み順序に対するデータ整合性が保証されない。
【００３９】
やがて、第二のボリューム群１１１Ｂは、リモートコピー１２２Ａが終了して、更新状態をＡにするための差分データの適用期間である差分適用期間Ｄ１が終了すると（タイミングＴ２）、更新状態がＡとなり、これにより第一のボリューム群１１１Ａと第二のボリューム群１１１Ｂとのデータ整合性が保証されることとなる。
【００４０】
次に、第二のストレージシステム１０２Ｂのローカルコピープログラム２２１は、第四のボリューム群１１１Ｄの更新状態をＡにするために、第二のボリューム群１１１Ｂから第四のボリューム群１１１Ｄに差分データを転送するローカルコピー１２４Ａを実行する。この第四のボリューム群１１１Ｄへの差分データの適用期間である差分適用期間Ｄ２は、第四のボリューム群１１１Ｄに書き込まれた書き込み対象のデータに対する整合性が保証されない可能性がある。
【００４１】
やがて、第四のボリューム群１１１Ｄは、ローカルコピー１２４Ａが終了して、差分データの適用期間である差分適用期間Ｄ２が終了すると（タイミングＴ３）、更新状態がＡとなり、これにより第二のボリューム群１１１Ｂと第四のボリューム群１１１Ｄとのデータ整合性が保証される。
【００４２】
以上のように、計算機システム１００では、第二のボリューム群１１１Ｂが差分適用期間Ｄ１である場合には、第四のボリューム群１１１Ｄのデータ整合性が保証され、第四のボリューム１１２Ｄが差分適用期間Ｄ２の場合には、第二のボリューム群１１１Ｂのデータ整合性が保証されているため、リモートコピーシステムの運用中に第二のストレージシステム１０２Ｂにおいて、常にデータ整合性の取れたボリュームの存在を保証している。
【００４３】
また、計算機システム１００では、ローカルコピー１２４Ａが終了すると、ローカルコピー終了報告を第一のストレージシステム１０２Ａに送信し（３４２）、これにより第一のストレージシステム１０２Ａのリモートコピープログラム２３２が一回分のループを終える。その後、第一のストレージシステム１０２Ａは、タイミングＴ４において、再び第一のボリューム群１１１Ａに対応する更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの内容の入れ替えを実行する。そして、第一のストレージシステム１０２Ａ及び第二のストレージシステム１０２Ｂは、この時点における第一のストレージシステムの第一のボリューム群１１１Ａの更新状態をＢとすると、上述の場合と同様に、第二のボリューム群１１１Ｂ及び第四のボリューム群１１１Ｄの更新状態をＢにするため、リモートコピー１２２Ｂ及びローカルコピー１２４Ｂを間欠的に実行する。
【００４４】
ここで、第二のストレージシステム１０２Ｂは、このようなリモートコピーシステムの運用中に、タイミングＴ５（第二のボリューム群１１１Ｂの差分適用期間Ｄ１）において、第二のボリューム群１１１Ｂから第三のボリューム群１１１Ｃへのスナップショット作成指示が発生した場合には、第二のボリューム群１１１Ｂへの差分適用期間Ｄ１が終了するまでスナップショット実行を遅延させる（遅延期間Ｄ３）。そして、第二のストレージシステム１０２Ｂは、第二のボリューム群１１１Ｂへの差分適用期間Ｄ１が終了すると、スナップショットを実行する（３４３）。この場合、第二のストレージシステム１０２Ｂは、スナップショットの実行自体を即座に終了させて、有限時間内に第二のボリューム群１１１Ｂの全データを第三のボリューム群１１１Ｃにコピーするバックグラウンドコピーを実行する（３４４）。
【００４５】
また、第二のストレージシステム１０２Ｂは、バックグラウンドコピー中に第二のボリューム群１１１Ｂにデータ書き込みが発生した場合には、Ｉ／Ｏ制御プログラム２１６Ｂを実行することにより、第二のボリューム群１１１Ｂにおける当該記憶領域のデータを第三のボリューム群１１１Ｃの対応する記憶領域にコピーし、その後、第二のボリューム群１１１Ｂにおける当該記憶領域にデータ書き込みを実行する。Ｉ／Ｏ制御プログラム２１６Ｂの動作については、後ほどフローチャート図にて説明する。
【００４６】
次に、第一のストレージシステム１０２ＡにおけるＩ／Ｏアクセス処理（ローカルサイト側）の一例について説明する。図１０は、この第一のストレージシステム１０２ＡにおけるＩ／Ｏアクセス処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【００４７】
プロセッサ２２５Ａは、ホストコンピュータ１０１からＩ／Ｏアクセス（書き込み要求又は読み出し要求）を受信すると、Ｉ／Ｏアクセスを実行するプログラムであるＩ／Ｏ制御プログラム２３３Ａを実行することにより、図１０に示す第一のＩ／Ｏアクセス処理手順ＲＴ１に従って、当該Ｉ／Ｏアクセスの種別が書き込み要求であるか否かをチェックする（Ｓ１）。
【００４８】
そして、プロセッサ２２５Ａは、Ｉ／Ｏアクセスの種別が書き込み要求でない場合（Ｓ１：ＮＯ）には、Ｉ／Ｏアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し（Ｓ２）、この後、図１０に示す第一のＩ／Ｏアクセス処理手順ＲＴ１を終了する（Ｓ８）。
【００４９】
これに対して、プロセッサ２２５Ａは、当該Ｉ／Ｏアクセスの種別が書き込み要求である場合には（Ｓ１：ＹＥＳ）、ペア情報２３５Ａを参照することにより、書き込み要求に対応するボリュームがリモートコピーのソースボリュームであるか否かをチェックする（Ｓ３）。
【００５０】
そして、プロセッサ２２５Ａは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームでない場合（Ｓ３：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ７）、この後、図１０に示す第一のＩ／Ｏアクセス処理手順ＲＴ１を終了する（Ｓ８）。
【００５１】
これに対して、プロセッサ２２５Ａは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームである場合（Ｓ３：ＹＥＳ）には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ１１２Ａのビット３０１を「ＯＮ」（コピー要（更新あり））（図３）に変更する（Ｓ４）。
【００５２】
続いて、プロセッサ２２５Ａは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」であり、かつ、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル２３６に記憶されていないか否かをチェックする（Ｓ５）。
【００５３】
この場合、プロセッサ２２５Ａは、サイドファイル２３６に旧データが記憶されているか否かを更新ビットマップ１１２Ａや差分ビットマップ１１２Ｂに記録し、対応するサイドファイル２３６の各要素への参照（アドレス等で表現される）を記録することで、サイドファイル２３６への記憶の有無の判定及びデータの参照を行うことも考えられる。
【００５４】
そして、プロセッサ２２５Ａは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ１１２Ｂのビット３０１が「ＯＦＦ」（コピー不要（更新なし））（図３）であるか、又は、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル２３６に記憶されている場合（Ｓ５：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ７）、この後、図１０に示す第一のＩ／Ｏアクセス処理手順ＲＴ１を終了する（Ｓ８）。
【００５５】
これに対して、プロセッサ２２５Ａは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」であり、かつ、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル２３６に記憶されていない場合（Ｓ５：ＹＥＳ）には、書き込み要求に対応するボリュームの記憶領域に記憶されている旧データを読み出してサイドファイル２３６に記憶する（Ｓ６）。
【００５６】
この場合、プロセッサ２２５Ａは、具体的に、書き込み要求に対応するボリュームの記憶領域の位置を表すボリューム名３２１及び、記憶領域アドレス３２２と共に、読み出した旧データをサイドファイル２３６に記憶する。
【００５７】
やがて、プロセッサ２２５Ａは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ７）、この後、図１０に示す第一のＩ／Ｏアクセス処理手順ＲＴ１を終了する（Ｓ８）。
【００５８】
なお、プロセッサ２２５Ａは、メモリ２２４Ａ上のキャッシュに配置されたデータを、ホストコンピュータ１０１やプログラムに参照させる方法や、記憶装置２０２Ａの対応するドライブからデータを読み出し、データをホストコンピュータ１０１や各種プログラムに参照させる方法によって、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータの読み出しを実現する。
【００５９】
またなお、プロセッサ２２５Ａは、メモリ２２４Ａ上のキャッシュに書き込み対象のデータを書き込み、ホストコンピュータ１０１や各種プログラムへ書き込み終了を通知し、非同期的に記憶装置２０２Ａの対応するドライブに書き込み対象のデータを書き込むことによって、書き込み要求に対応するボリュームに、書き込み対象のデータの書き込みを実現する。さらに、プロセッサ２２５Ａは、同期的に記憶装置２０２Ａの対応するドライブに書き込み対象のデータを書き込むことによっても実現することができる。
【００６０】
次に、第二のストレージシステム１０２ＢにおけるＩ／Ｏアクセス処理（リモートサイト側）の一例について説明する。図１１〜図１３は、この第二のストレージシステム１０２ＢにおけるＩ／Ｏアクセス処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【００６１】
プロセッサ２２５Ｂは、ホストコンピュータ１０１からＩ／Ｏアクセスを受信する、又は第一のストレージシステム１０２Ａのリモートコピープログラム２３２が実行されることによってＩ／Ｏアクセス要求を受信すると、Ｉ／Ｏアクセスを実行するプログラムであるＩ／Ｏ制御プログラム２２３Ｂを実行することにより、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２に従って、ペア情報２３５Ｂを参照することにより、Ｉ／Ｏアクセスに対応するボリュームがローカルコピーのソースボリュームであるか否かをチェックする（Ｓ１１）。
【００６２】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがローカルコピーのソースボリュームでない場合（Ｓ１１：ＮＯ）には、ペア情報２３５Ｂを参照することにより、Ｉ／Ｏアクセスに対応するボリュームがスナップショットのターゲットボリュームであるか否かをチェックする（Ｓ１２）。
【００６３】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがスナップショットのターゲットボリュームでない場合（Ｓ１２：ＮＯ）には、Ｉ／Ｏアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し（Ｓ１３）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００６４】
これに対して、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがローカルコピーのソースボリュームである場合（Ｓ１１：ＹＥＳ）には、当該Ｉ／Ｏアクセスの種別が書き込み要求であるか否かをチェックする（Ｓ２１）（図１２）。
【００６５】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスの種別が書き込み要求でない場合（Ｓ２１：ＮＯ）には、Ｉ／Ｏアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し（Ｓ２２）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００６６】
これに対して、プロセッサ２２５Ｂは、当該Ｉ／Ｏアクセスの種別が書き込み要求である場合には（Ｓ２１：ＹＥＳ）、ペア情報２３５Ｂを参照することにより、書き込み要求に対応するボリュームがスナップショットのソースボリュームであるか否かをチェックする（Ｓ２３）。
【００６７】
そして、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームがスナップショットのソースボリュームでない場合（Ｓ２３：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ１１２Ｃのビット３０１を「ＯＮ」に変更し（Ｓ２４）、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ２５）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００６８】
これに対して、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームがスナップショットのソースボリュームである場合（Ｓ２３：ＹＥＳ）には、当該スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ２６）。
【００６９】
そして、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」でない場合（Ｓ２６：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ１１２Ｃのビット３０１を「ＯＮ」に変更し（Ｓ２４）、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ２５）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００７０】
これに対して、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」である場合（Ｓ２６：ＹＥＳ）には、スナップショットのターゲットボリュームの記憶領域に、書き込み要求に対応するボリュームの記憶領域に現在記憶されているデータをコピーする（Ｓ２７）。
【００７１】
続いて、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１を「ＯＦＦ」に変更する（Ｓ２８）。
【００７２】
やがて、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ１１２Ｃのビット３０１を「ＯＮ」に変更し（Ｓ２４）、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ２５）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００７３】
これに対して、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがスナップショットのターゲットボリュームである場合（Ｓ１３：ＹＥＳ）には、Ｉ／Ｏアクセスに対応するボリューム（スナップショットのターゲットボリューム）の記憶領域の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ３１）（図１３）。
【００７４】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームの記憶領域の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」でない場合（Ｓ２６：ＮＯ）には、Ｉ／Ｏアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し（Ｓ３２）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００７５】
これに対して、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームの記憶領域の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」でない場合（Ｓ２６：ＹＥＳ）には、書き込み要求に対応するボリュームの記憶領域に対応するスナップショットのソースボリュームの記憶領域に現在記憶されているデータを、Ｉ／Ｏアクセスに対応するボリュームの記憶領域にコピーする（Ｓ３３）。
【００７６】
続いて、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームの記憶領域の更新ビットマップ１１２Ｄのビット３０１を「ＯＦＦ」に変更する（Ｓ３４）。
【００７７】
やがて、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し（Ｓ３２）、この後、図１１〜図１３に示す第二のＩ／Ｏアクセス処理手順ＲＴ２を終了する（Ｓ１４）。
【００７８】
なお、プロセッサ２２５Ａは、Ｉ／Ｏ制御プログラム２３３Ａと同様の方法によって、Ｉ／Ｏアクセスに対応するデータを読み書きするボリュームの記憶領域へのデータの読み書きを実現する。
【００７９】
次に、第一のストレージシステム１０２Ａにおけるコピー管理処理（ローカルサイト側）の一例について説明する。図１４は、この第一のストレージシステム１０２Ａにおけるコピー管理処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【００８０】
プロセッサ２２５Ａは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム２３１Ａを実行することにより、図１４に示す第一のコピー管理処理手順ＲＴ３に従って、リモートコピー１２２を実行する（Ｓ４１）。続いて、プロセッサ２２５Ａは、リモートコピー１２２が終了するのを待機モードで待ち受ける（Ｓ４２）。やがて、プロセッサ２２５Ａは、リモートコピー１２２が終了すると（Ｓ４２：ＹＥＳ）、第二のストレージシステム１０２Ｂにローカルコピー開始指示を送信する（Ｓ４３）。
【００８１】
続いて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからのローカルコピー終了報告を受信するのを待機モードで待ち受ける（Ｓ４４）。やがて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからのローカルコピー終了報告を受信すると（Ｓ４４：ＹＥＳ）、この後、再び、リモートコピー１２２を実行し（Ｓ４１）、リモートコピー１２２が終了するのを待ち受ける待機モードに戻り（Ｓ４２）、この後同様の処理を繰り返す（Ｓ４１〜Ｓ４４）。
【００８２】
次に、第二のストレージシステム１０２Ｂにおけるコピー管理処理（リモートサイト側）の一例について説明する。図１５は、この第二のストレージシステム１０２Ｂにおけるコピー管理処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【００８３】
プロセッサ２２５Ｂは、初期時、コピー管理を実行するプログラムであるコピー管理プログラム２３１Ｂを実行することにより、図１５に示す第二のコピー管理処理手順ＲＴ４に従って、第一のストレージシステム１０２Ａからローカルコピー開始指示を受信するのを待機モードで待ち受ける（Ｓ５１）。やがて、プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａからローカルコピー開始指示を受信すると（Ｓ５１：ＹＥＳ）、ローカルコピー制御情報２４０における、ローカルコピー開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＮ」に変更する（Ｓ５２）。
【００８４】
続いて、プロセッサ２２５Ｂは、ローカルコピー開始指示に対応するボリュームのローカルコピー１２４を実行する（Ｓ５３）。続いて、プロセッサ２２５Ｂは、予め指定された時間待機する指定時間待機処理が終了するのを待機モードで待ち受ける（Ｓ５４）。やがて、プロセッサ２２５Ｂは、指定時間待機処理が終了すると（Ｓ５４：ＹＥＳ）、ローカルコピー制御情報２４０における、ローカルコピー開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＦＦ」に変更する（Ｓ５５）。
【００８５】
続いて、プロセッサ２２５Ｂは、ローカルコピー１２４が終了するのを待機モードで待ち受ける（Ｓ５６）。やがて、プロセッサ２２５Ｂは、ローカルコピー１２４が終了すると（Ｓ５６：ＹＥＳ）、ローカルコピー制御情報２４０における、ローカルコピー開始指示に対応するボリュームの実行待ちフラグ３３３を「ＯＦＦ」に変更する（Ｓ５７）。
【００８６】
続いて、プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａにローカルコピー終了報告を送信し（Ｓ５８）、この後、再び、第一のストレージシステム１０２Ａからローカルコピー開始指示を受信するのを待ち受ける待機モードに戻り（Ｓ５１）、この後同様の処理を繰り返す（Ｓ５１〜Ｓ５８）。
【００８７】
なお、プロセッサ２２５Ｂは、リモートコピーシステムの運用において、更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの入れ替え間隔を制御するため、指定時間待機処理を実行する。この場合、更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの入れ替え間隔が長いほど、更新ビットマップ１１１Ａに上書きされる書き込み対象のデータの量が多くなるため、全体的なデータ転送量を削減することができる。一方、更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの入れ替え間隔が短いほど、障害時点に近いデータに復元できる可能性が高くなる。この間隔は、需要に対するトレードオフにより個別具体的に決定する。
【００８８】
次に、第一のストレージシステム１０２Ａにおけるリモートコピー処理の一例について説明する。図１６は、この第一のストレージシステム１０２Ａにおけるリモートコピー処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【００８９】
プロセッサ２２５Ａは、所定のタイミングで、コピー管理プログラム２３１Ａによってリモートコピー１２２を実行するプログラムであるリモートコピープログラム２３２を実行することにより、図１６に示すリモートコピー処理手順ＲＴ５に従って、更新ビットマップ１１２Ａと差分ビットマップ１１２Ｂとの内容を入れ替える（Ｓ６１）。
【００９０】
続いて、プロセッサ２２５Ａは、差分ビットマップ１１２Ｂの最初のビット３０１を調査対象とする（Ｓ６２）。続いて、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ６３）。
【００９１】
そして、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」でない場合（Ｓ６３：ＮＯ）には、ステップＳ６８に進む。これに対して、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」である場合（Ｓ６３：ＹＥＳ）には、調査対象の差分ビットマップ１１２Ｂのビット３０１に対応する記憶領域のデータがサイドファイル２３６に記憶されているか否かをチェックする（Ｓ６４）。
【００９２】
そして、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１に対応する記憶領域のデータがサイドファイル２３６に記憶されていない場合（Ｓ６４：ＮＯ）には、調査対象の差分ビットマップ１１２Ｂのビット３０１に対応する記憶領域のデータを第二のストレージシステム１０２Ｂに送信する（Ｓ６５）。これに対して、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１に対応する記憶領域のデータがサイドファイル２３６に記憶されている場合（Ｓ６４：ＹＥＳ）には、調査対象の差分ビットマップ１１２Ｂのビット３０１に対応するサイドファイル２３６に記憶されているデータを第二のストレージシステム１０２Ｂに送信する（Ｓ６６）。
【００９３】
やがて、プロセッサ２２５Ａは、調査対象の差分ビットマップ１１２Ｂのビット３０１を「ＯＦＦ」に変更する（Ｓ６７）。続いて、プロセッサ２２５Ａは、差分ビットマップ１１２Ｂの最後のビット３０１まで調査対象としたか否かをチェックする（Ｓ６８）。
【００９４】
そして、プロセッサ２２５Ａは、差分ビットマップ１１２Ｂの最後のビット３０１まで調査対象としていない場合（Ｓ６８：ＮＯ）には、差分ビットマップ１１２Ｂの次のビット３０１を調査対象として（Ｓ６９）、この後、再び、調査対象の差分ビットマップ１１２Ｂのビット３０１が「ＯＮ」であるか否かをチェックし（Ｓ６３）、この後同様の処理を繰り返す（Ｓ６３〜Ｓ６８）。
【００９５】
これに対して、プロセッサ２２５Ａは、差分ビットマップ１１２Ｂの最後のビット３０１まで調査対象とした場合（Ｓ６８：ＹＥＳ）には、この後、図１６に示すリモートコピー処理手順ＲＴ５を終了する（Ｓ７０）。
【００９６】
次に、第二のストレージシステム１０２Ｂにおけるローカルコピー処理の一例について説明する。図１７は、この第二のストレージシステム１０２Ｂにおけるローカルコピー処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【００９７】
プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａからローカルコピー開始指示を受信すると、コピー管理プログラム２３１Ｂによってローカルコピー１２４を実行するプログラムであるローカルコピープログラム２３７を実行することにより、図１７に示すローカルコピー処理手順ＲＴ６に従って、更新ビットマップ１１２Ｃの最初のビット３０１を調査対象とする（Ｓ７１）。続いて、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｃのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ７２）。
【００９８】
そして、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｃのビット３０１が「ＯＮ」でない場合（Ｓ７２：ＮＯ）には、ステップＳ７５に進み、これに対して、調査対象の更新ビットマップ１１２Ｃのビット３０１が「ＯＮ」である場合（Ｓ７２：ＹＥＳ）には、調査対象の更新ビットマップ１１２Ｃのビット３０１に対応する記憶領域のデータをローカルコピーのターゲットボリュームの記憶領域に記憶する（Ｓ７３）。
【００９９】
やがて、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｃのビット３０１を「ＯＦＦ」に変更する（Ｓ７４）。続いて、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｃの最後のビット３０１まで調査対象としたか否かをチェックする（Ｓ７５）。
【０１００】
そして、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｃの最後のビット３０１まで調査対象としていない場合（Ｓ７５：ＮＯ）には、更新ビットマップ１１２Ｃの次のビット３０１を調査対象として（Ｓ７６）、この後、再び、調査対象の更新ビットマップ１１２Ｃのビット３０１が「ＯＮ」であるか否かをチェックし（Ｓ７２）、この後同様の処理を繰り返す（Ｓ７２〜Ｓ７５）。
【０１０１】
これに対して、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｃの最後のビット３０１まで調査対象とした場合（Ｓ７５：ＹＥＳ）には、この後、図１７に示すローカルコピー処理手順ＲＴ６を終了する（Ｓ７７）。
【０１０２】
次に、第二のストレージシステム１０２Ｂにおけるスナップショット処理の一例について説明する。図１８は、この第二のストレージシステム１０２Ｂにおけるスナップショット処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１０３】
プロセッサ２２５Ｂは、ホストコンピュータ１０１や管理端末１０４、その他保守端末２２３Ａ、２２３Ｂやプログラムから、ユーザやプログラムの指示によりスナップショットのソースボリューム及びスナップショットのターゲットボリュームの入力を受信すると、スナップショット１２５を実行するプログラムであるスナップショットプログラム２３９を実行することにより、図１８に示すスナップショット処理手順ＲＴ７に従って、スナップショットのターゲットボリュームに対応するビット３０１がすべて「ＯＮ」の状態である更新ビットマップ１１２Ｄを作成する（更新ビットマップ１１２Ｄをスナップショットのターゲットボリュームに対応するビット３０１がすべて「ＯＮ」の状態に変更する）（Ｓ８１）。
【０１０４】
続いて、プロセッサ２２５Ｂは、スナップショットのソースボリューム名及びスナップショットのターゲットボリューム名を表す情報とスナップショットのペア関係であることを表す情報をペア情報２３５Ｂのリストに追加することにより、ペア関係を作成する（Ｓ８２）。続いて、プロセッサ２２５Ｂは、バックグラウンドコピー処理を実行して（Ｓ８３）、この後、図１８に示すスナップショット処理手順ＲＴ７を終了する（Ｓ８４）。
【０１０５】
次に、第二のストレージシステム１０２Ｂにおけるバックグラウンドコピー処理の一例について説明する。図１９は、この第二のストレージシステム１０２Ｂにおけるバックグラウンドコピー処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１０６】
プロセッサ２２５Ｂは、ペア関係が作成されると、図１９に示すバックグラウンドコピー処理手順ＲＴ８に従って、更新ビットマップ１１２Ｄの最初のビット３０１を調査対象とする（Ｓ９１）。続いて、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ９２）。
【０１０７】
そして、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」でない場合（Ｓ９２：ＮＯ）には、ステップＳ９５に進み、これに対して、調査対象の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」である場合（Ｓ９２：ＹＥＳ）には、調査対象の更新ビットマップ１１２Ｄのビット３０１に対応する記憶領域のデータをスナップショットのターゲットボリュームの記憶領域に記憶する（Ｓ９３）。
【０１０８】
やがて、プロセッサ２２５Ｂは、調査対象の更新ビットマップ１１２Ｄのビット３０１を「ＯＦＦ」に変更する（Ｓ９４）。続いて、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｄの最後のビット３０１まで調査対象としたか否かをチェックする（Ｓ９５）。
【０１０９】
そして、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｄの最後のビット３０１まで調査対象としていない場合（Ｓ９５：ＮＯ）には、更新ビットマップ１１２Ｄの次のビット３０１を調査対象として（Ｓ９６）、この後、再び、調査対象の更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」であるか否かをチェックし（Ｓ９２）、この後同様の処理を繰り返す（Ｓ９２〜Ｓ９５）。
【０１１０】
これに対して、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｄの最後のビット３０１まで調査対象とした場合（Ｓ９５：ＹＥＳ）には、この後、図１９に示すバックグラウンドコピー処理手順ＲＴ８を終了する（Ｓ９７）。
【０１１１】
なお、プロセッサ２２５Ｂは、更新ビットマップ１１２Ｄが各種制御プログラム等によって「ＯＦＦ」の状態にされず、かつ更新ビットマップ１１２Ｄのサイズが有限であるため、有限時間内にバックグラウンドコピー処理を終了することができる。また、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームがホストコンピュータ１０１等からＩ／Ｏアクセス可能であるため、バックグラウンドコピー処理を実行しない場合も考えられる。さらに、プロセッサ２２５Ｂは、バックグラウンドコピー処理を実行しない場合や、バックグラウンドコピー処理が実行中である場合には、スナップショットのターゲットボリュームへの読み出し処理に対して、スナップショットのソースボリュームからのデータをコピーするオーバヘッドが発生するため、若干性能が低下する可能性がある。
【０１１２】
次に、第二のストレージシステム１０２Ｂにおける拡張スナップショット処理の一例について説明する。図２０は、この第二のストレージシステム１０２Ｂにおける拡張スナップショット処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１１３】
プロセッサ２２５Ｂは、ホストコンピュータ１０１や管理端末１０４、その他保守端末２２３Ａ、２２３Ｂやプログラムから、ユーザやプログラムにより、スナップショット作成指示を受信すると、スナップショット作成指示によるスナップショット１２５を実行するプログラムであるスナップショット拡張プログラム２３８を実行することにより、図２０に示す拡張スナップショット処理手順ＲＴ９に従って、ペア情報２３５Ｂを参照することにより、スナップショット作成指示に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームであるか否かをチェックする（Ｓ１０１）。
【０１１４】
そして、プロセッサ２２５Ｂは、スナップショット作成指示に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームでない場合（Ｓ１０１：ＮＯ）には、この後、図２０に示す拡張スナップショット処理手順ＲＴ９を終了する（Ｓ１０６）。これに対して、プロセッサ２２５Ｂは、スナップショット作成指示に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームである場合（Ｓ１０１：ＹＥＳ）には、ローカルコピー制御情報２４０における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」であるか否かをチェックする（Ｓ１０２）。
【０１１５】
そして、プロセッサ２２５Ｂは、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」でない場合（Ｓ１０２：ＮＯ）には、当該ソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」になるのを待機モードで待ち受ける。これに対して、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」である場合、又は「ＯＮ」になった場合（Ｓ１０２：ＹＥＳ）には、ローカルコピー制御情報２４０における、スナップショット作成指示に対応するソースボリュームの実行待ちフラグ３３３を「ＯＮ」に変更する（Ｓ１０３）。
【０１１６】
続いて、プロセッサ２２５Ｂは、スナップショット作成指示に対応するソースボリュームから、対応するターゲットボリュームへのスナップショット１２５を実行する（Ｓ１０４）。続いて、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、スナップショット作成指示に対応するソースボリュームの実行待ちフラグ３３３を「ＯＦＦ」に変更する（Ｓ１０５）。やがて、プロセッサ２２５Ｂは、この後、図２０に示す拡張スナップショット処理手順ＲＴ９を終了する（Ｓ１０６）。
【０１１７】
このようにして、第一の実施の形態における計算機システム１００では、第一のボリューム群１１１Ａから第二のボリューム群１１１Ｂへの非同期のリモートコピー１２２による転送中以外は、第二のボリューム群１１１Ｂの上合性が取れていることを利用して、当該転送中に第二のボリューム群１１１Ｂから第三のボリューム群１１１Ｃのスナップショットの作成指示が行われた場合、スナップショットの作成をリモートコピー１２２による転送後まで遅延させ、リモートコピー１２２による転送中でない場合にスナップショットの作成指示が行われた場合、即時にスナップショットを作成する。
【０１１８】
従って、第一の実施の形態における計算機システム１００では、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
【０１１９】
（２）第二の実施の形態
図２１は、本発明の第二の実施の形態における計算機システム１００の概略的な構成を示している。計算機システム１００では、第一のストレージシステム１０２Ａにおいて、更新ビットマップ１１２Ａ、差分ビットマップ１１２Ｂの代わりに、キャプチャ差分バッファ１３１Ａ、転送差分バッファ１３１Ｂが設けられており、第二のストレージシステムにおいて、更新ビットマップ１１２Ｃ、第四のボリューム群１１１Ｄの代わりに、受信差分バッファ１３１Ｃ、適用差分バッファ１３１Ｄが設けられており、これらキャプチャ差分バッファ１３１Ａ、転送差分バッファ１３１Ｂ、受信差分バッファ１３１Ｃ及び適用差分バッファ１３１Ｄを用いてリモートコピーシステムを運用する点を除いて、第一の実施の形態における計算機システム１００と同様に構成されている。
【０１２０】
第一の実施の形態では、例えば、第二のストレージシステム１０２Ｂにおいて、２つのボリューム群を管理することによってデータ整合性の取れたボリュームを保証するが、第二の実施の形態では、第二のストレージシステム１０２Ｂ内に書き込み対象のデータを蓄積する受信差分バッファ１３１Ｃ及び適用差分バッファ１３１Ｄを設けることによって、データ整合性の取れたボリュームを保証する。
【０１２１】
ここで、第二の実施の形態における動作を概略的に説明する。第一のストレージシステム１０２Ａは、ホストコンピュータ１０１等からの書き込み対象のデータを第一のボリューム群１１１Ａに記憶すると同時にキャプチャ差分バッファ１３１Ａに記憶する（１４１）。次に、第一のストレージシステム１０２Ａは、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂを入れ替える（１４２）。この場合、第一のストレージシステム１０２Ａは、入れ替えた後に、再び、ホストコンピュータ１０１等からの書き込み対象のデータを第一のボリューム群１１１Ａに記憶すると同時にキャプチャ差分バッファ１３１Ａに記憶する（１４１）。次に、第一のストレージシステム１０２Ａは、転送差分バッファ１３１Ｂの内容を第二のストレージシステム１０２Ｂの受信差分バッファ１３１Ｃに転送する（リモートコピー１４３）。次に、第二のストレージシステム１０２Ｂは、受信差分バッファ１４１Ｃと適用差分バッファ１４１Ｄを入れ替える（１４４）。この場合、第一のストレージシステム１０２Ａは、入れ替えた後に、再び、転送差分バッファ１３１Ｂの内容を第二のストレージシステム１０２Ｂの受信差分バッファ１３１Ｃに転送する（リモートコピー１４３）。次に、第二のストレージシステム１０２Ｂは、適用差分バッファ１４１Ｄの内容を第二のボリューム群１４１２Ｂに適用する（ローカルコピー１４５）。
【０１２２】
この計算機システム１００では、ステップＳ１１２を周期的に実行することにより、第二のストレージシステム１０２Ｂにおいて、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成する。そして、この計算機システム１００では、上述のリモートコピーシステムの運用中に第二のボリューム群１１１Ｂの整合性の取れた状態のスナップショット１２５を第三のボリューム群１１１Ｃに作成する。データ整合性についての詳細な説明は後ほど行う。
【０１２３】
図２２は、第二の実施の形態における計算機システム１００における内部の概略的な構成を示している。計算機システム１００では、第一のストレージシステム１０２Ａにおける記憶制御装置２０１Ａのメモリ２２４Ａにおいて、更新ビットマップ１１２Ａ、差分ビットマップ１１２Ｂ及びサイドファイル２３６の代わりに、キャプチャ差分バッファ１３１Ａ、転送差分バッファ１３１Ｂが設けられており、第二のストレージシステム１０２Ｂにおける記憶制御装置２０１Ｂのメモリ２２４Ｂにおいて、更新ビットマップ１１２Ｃの代わりに、受信差分バッファ１３１Ｃ、適用差分バッファ１３１Ｄが設けられており、コピー管理プログラム２３１Ａ、２３１Ｂ、リモートコピープログラム２３２、Ｉ／Ｏ制御プログラム２３３Ａ、２３３Ｂ、ローカルコピープログラム２３７の処理内容が第一の実施例のプログラムと異なる点を除いて、第一の実施の形態における計算機システム１００と同様に構成されている。これらプログラムについては、後ほどフローチャートで説明を行う。
【０１２４】
図２３は、キャプチャ差分バッファ１３１Ａのテーブル構造を示している。キャプチャ差分バッファ１３１Ａは、ボリューム名３５１Ａ、当該ボリューム上の対応する記憶領域を示す対象アドレス３５２Ａ、及び書き込み対象のデータ３５３Ａを項目に有し、リストによって構成されている。
【０１２５】
この計算機システム１００では、キャプチャ差分バッファ１３１Ａの他の実装方法としては、書き込み対象のデータの代わりに、メモリ２２４Ａ上のキャッシュへのポインタを保持する方法がある。この場合、Ｉ／Ｏ制御プログラム２３３Ａが書き込み対象のデータをキャッシュに保持する場合には、リモートコピーによる転送や記憶領域へのＩ／Ｏアクセスが終了するまで、キャッシュに書き込み対象のデータを保持しておき、キャプチャ差分バッファ１３１Ａにキャッシュ上のデータへのポインタを保持することで、二重にデータを保持しない分、使用メモリ量を削減可能である。
【０１２６】
なお、転送差分バッファ１３１Ｂ、受信差分バッファ１３１Ｃ及び適用差分バッファ１３１Ｄのテーブル構造は、キャプチャ差分バッファ１３１Ａと同様に構成されている。
【０１２７】
図２４は、第一〜第三のボリューム群１１１Ａ〜１１１Ｃ並びにキャプチャ差分バッファ１３１Ａ、転送差分バッファ１３１Ｂ、受信差分バッファ１３１Ｃ及び適用差分バッファ１３１Ｄの更新状態を時系列で示している。この場合、第一のボリューム群１１１Ａの更新状態を時系列で表したものが３６１Ａで、第二のボリューム群１１１Ｂの更新状態を時系列で表したものが３６１Ｂで、第三のボリューム群１１１Ｃの更新状態を時系列で表したものが３６１Ｃで、キャプチャ差分バッファ１３１Ａの差分データの状態を時系列で表したものが３６２Ａで、転送差分バッファ１３１Ｂの差分データの状態を時系列で表したものが３６２Ｂで、受信差分バッファ１３１Ｃの差分データの状態を時系列で表したものが３６２Ｃで、適用差分バッファ１３１Ｄの差分データの状態を時系列で表したものが３６２Ｄである。
【０１２８】
第一のストレージシステム１０２Ａでは、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとを入れ替えたタイミングＴ１１において、第一のボリューム群１１１Ａの更新状態がＡとすると、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとを入れ替えた後の転送差分バッファ１３１Ｂの内容が第二のボリューム群１１１ＢをＡにするための書き込み対象のデータの集合となる（３６３）。
【０１２９】
第一のストレージシステム１０２Ａは、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとを入れ替えた後、継続してキャプチャ差分バッファ１３１Ａにホストコンピュータ１０１からの書き込み対象のデータを記憶する（３６４）。この場合、第一のストレージシステム１０２Ａは、キャプチャ差分バッファ１３１Ａへの書き込み対象のデータの記憶の際に、同じ記憶領域への書き込みが発生した際、当該記憶領域に記憶されているデータを削除することにより、リモートコピー実行時のデータ転送量を削減する。また、第一のストレージシステム１０２Ａは、記憶領域を示す対象アドレスからキャプチャ差分バッファ１３１Ａ上の要素への参照をビットマップで管理することも考えられる。なお、差分バッファにおける要素とは、当該差分バッファの所定の記憶領域にデータが記憶されている状態のことをいう。
【０１３０】
次に、第一のストレージシステム１０２Ａは、転送差分バッファ１３１Ｂの書き込み対象のデータを第二のストレージシステム１０２Ｂの受信差分バッファ１３１Ｃに転送する（リモートコピー１４３）。第二のストレージシステム１０２Ｂでは、リモートコピー１４３の実行後、受信差分バッファ１３１Ｃの内容が第二のボリューム群１１１Ｂを更新状態Ａにするための書き込み対象のデータの集合となる（３６５）。
【０１３１】
次に、第一のストレージシステム１０２Ａは、差分バッファ入れ替え指示を第二のストレージシステム１０２Ｂに送信する（３６６）。これにより、第二のストレージシステム１０２Ｂは、受信バッファ１３１Ｃと適用差分バッファ１３１Ｄとを入れ替える。
【０１３２】
次に、第二のストレージシステム１０２Ｂは、差分バッファ入れ替え終了報告を第一のストレージシステム１０２Ａに送信する（３６７）。これにより、第一のストレージシステム１０２Ａは、再び、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとを入れ替える（１４２）ことが可能となり、タイミングＴ１２において、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとを入れ替え、この後、同様の処理を繰り返す。
【０１３３】
一方、第二のストレージシステム１０２Ｂでは、適用差分バッファ１３１Ｄの内容を第二のボリューム群１１１Ｂに適用する（ローカルコピー１１５Ａ）。その際、第二のストレージシステム１０２Ｂは、ホストコンピュータ１０１からの書き込み順序に非依存で第二のボリューム群１１１Ｂに適用差分バッファ１３１Ｄの書き込み対象のデータを適用するため、第二のボリューム群１１１Ｂの書き込み順序に対するデータ整合性が保証されない可能性がある（差分適用期間Ｄ１１）。やがて、第二のボリューム群１１１Ｂは、適用差分バッファ１３１Ｄからの書き込み対象のデータの適用が終了すると、更新状態がＡとなり（３６８）、これにより第一のボリューム群１１１Ａと第二のボリューム群１１１Ｂとのデータ整合性が保証されることとなる。
【０１３４】
以上のように、計算機システム１００では、第二のストレージシステム１０２Ｂに、書き込み対象のデータを蓄積する受信バッファ１３１Ｃ及び適用差分バッファ１３１Ｄを有することで、第二のボリューム群１１１Ｂの整合性を保証するために必要な書き込み対象のデータを保持しているため、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成することができる。
【０１３５】
ここで、第二のストレージシステム１０２Ｂは、このようなリモートコピーシステムの運用中に、タイミングＴ１３（第二のボリューム群１１１Ｂの差分適用期間Ｄ１１）において、第二のボリューム群１１１Ｂから第三のボリューム群１１１Ｃへのスナップショット作成指示が発生した場合には、第二のボリューム群１１１Ｂへの差分適用期間Ｄ１１が終了するまでスナップショット実行を遅延させる（遅延期間Ｄ１２）。そして、第二のストレージシステム１０２Ｂは、第二のボリューム群１１１Ｂへの差分適用期間Ｄ１１が終了すると、スナップショットを実行する（３６９）。この場合、第二のストレージシステム１０２Ｂは、スナップショットの実行自体を即座に終了させて、有限時間内に第二のボリューム群１１１Ｂの全データを第三のボリューム群１１１Ｃにコピーするバックグラウンドコピーを実行する（３７０）。
【０１３６】
また、第二のストレージシステム１０２Ｂは、バックグラウンドコピー中に第二のボリューム群１１１Ｂにデータ書き込みが発生した場合には、上述の第一の実施の形態と同様に、Ｉ／Ｏ制御プログラム２１６Ｂを実行することにより、バックグラウンドコピー処理実行中も第二のボリューム群１１１Ｂへの書き込み対象のデータの適用を実行する（Ｓ１１５Ｂ）。
【０１３７】
次に、第二の実施の形態における第一のストレージシステム１０２ＡのＩ／Ｏアクセス処理（ローカルサイト側）の一例について説明する。図２５は、この第一のストレージシステム１０２ＡにおけるＩ／Ｏアクセス処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【０１３８】
プロセッサ２２５Ａは、ホストコンピュータ１０１からＩ／Ｏアクセスを受信すると、Ｉ／Ｏアクセスを実行するプログラムであるＩ／Ｏ制御プログラム２３３Ａを実行することにより、図２５に示す第一のＩ／Ｏアクセス処理手順ＲＴ１０に従って、当該Ｉ／Ｏアクセスの種別が書き込み要求であるか否かをチェックする（Ｓ１１１）。
【０１３９】
そして、プロセッサ２２５Ａは、Ｉ／Ｏアクセスの種別が書き込み要求でない場合（Ｓ１１１：ＮＯ）には、Ｉ／Ｏアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し（Ｓ１１２）、この後、図２５に示す第一のＩ／Ｏアクセス処理手順ＲＴ１０を終了する（Ｓ１１６）。
【０１４０】
これに対して、プロセッサ２２５Ａは、当該Ｉ／Ｏアクセスの種別が書き込み要求である場合には（Ｓ１１１：ＹＥＳ）、ペア情報２３５Ａを参照することにより、書き込み要求に対応するボリュームがリモートコピーのソースボリュームであるか否かをチェックする（Ｓ１１３）。
【０１４１】
そして、プロセッサ２２５Ａは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームでない場合（Ｓ１１３：ＮＯ）には、ステップＳ１１５に進むこれに対して、プロセッサ２２５Ａは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームである場合（Ｓ１１３：ＹＥＳ）には、書き込み要求に対応する書き込み対象のデータをキャプチャ差分バッファ１３１Ａに記憶する（Ｓ１１４）。
【０１４２】
やがて、プロセッサ２２５Ａは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ１１５）、この後、図２５に示す第一のＩ／Ｏアクセス処理手順ＲＴ１０を終了する（Ｓ１１６）。
【０１４３】
なお、プロセッサ２２５Ａは、書き込み対象のデータをキャプチャ差分バッファ１３１Ａに記憶するとき、既に書き込み対象のデータが差分キャプチャバッファ１３１Ａの同じ記憶領域に記憶されている場合は、その要素を書き込み対象のデータで上書きすることでキャプチャ差分バッファ１３１Ａのデータ量を削減し、第二のストレージシステム１０２Ｂへのデータ転送量を削減する。またなお、プロセッサ２２５Ａは、第一の実施の形態と同様の方法によって、データの読み書きを実現する。
【０１４４】
次に、第二の実施の形態における第二のストレージシステム１０２ＢのＩ／Ｏアクセス処理（リモートサイト側）の一例について説明する。図２６及び図２７は、この第二のストレージシステム１０２ＢにおけるＩ／Ｏアクセス処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１４５】
プロセッサ２２５Ｂは、ホストコンピュータ１０１からＩ／Ｏアクセスを受信する、又は第一のストレージシステム１０２Ａのリモートコピープログラム２３２が実行されることによってＩ／Ｏアクセス要求を受信すると、Ｉ／Ｏアクセスを実行するプログラムであるＩ／Ｏ制御プログラム２２３Ｂを実行することにより、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１に従って、ペア情報２３５Ｂを参照することにより、Ｉ／Ｏアクセスに対応するボリュームがリモートコピーのターゲットボリュームであるか否かをチェックする（Ｓ１２１）。
【０１４６】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがリモートコピーのターゲットボリュームでない場合（Ｓ１２１：ＮＯ）には、ペア情報２３５Ｂを参照することにより、Ｉ／Ｏアクセスに対応するボリュームがスナップショットのターゲットボリュームであるか否かをチェックする（Ｓ１２２）。
【０１４７】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがスナップショットのターゲットボリュームでない場合（Ｓ１２２：ＮＯ）には、Ｉ／Ｏアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し（Ｓ１２３）、この後、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１を終了する（Ｓ１２４）。
【０１４８】
これに対して、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスに対応するボリュームがリモートコピーのターゲットボリュームである場合（Ｓ１２１：ＹＥＳ）には、当該Ｉ／Ｏアクセスの種別が書き込み要求であるか否かをチェックする（Ｓ１３１）（図２７）。
【０１４９】
そして、プロセッサ２２５Ｂは、Ｉ／Ｏアクセスの種別が書き込み要求でない場合（Ｓ１３１：ＮＯ）には、Ｉ／Ｏアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し（Ｓ１３２）、この後、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１終了する（Ｓ１２４）。
【０１５０】
これに対して、プロセッサ２２５Ｂは、当該Ｉ／Ｏアクセスの種別が書き込み要求である場合には（Ｓ１３１：ＹＥＳ）、ペア情報２３５Ｂを参照することにより、書き込み要求に対応するボリュームがスナップショットのソースボリュームであるか否かをチェックする（Ｓ１３３）。
【０１５１】
そして、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームがスナップショットのソースボリュームでない場合（Ｓ１３３：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ１３４）、この後、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１を終了する（Ｓ１２４）。
【０１５２】
これに対して、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームがスナップショットのソースボリュームである場合（Ｓ１３３：ＹＥＳ）には、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」であるか否かをチェックする（Ｓ１３５）。
【０１５３】
そして、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」でない場合（Ｓ１３５：ＮＯ）には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ１３４）、この後、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１を終了する（Ｓ１２４）。
【０１５４】
これに対して、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１が「ＯＮ」である場合（Ｓ１３５：ＹＥＳ）には、スナップショットのターゲットボリュームの記憶領域に、書き込み要求に対応するボリュームの記憶領域に現在記憶されているデータをコピーする（Ｓ１３６）。
【０１５５】
続いて、プロセッサ２２５Ｂは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ１１２Ｄのビット３０１を「ＯＦＦ」に変更する（Ｓ１３７）。
【０１５６】
やがて、プロセッサ２２５Ｂは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み（Ｓ１３４）、この後、図２６及び図２７に示す第二のＩ／Ｏアクセス処理手順ＲＴ１１を終了する（Ｓ１２４）。なお、プロセッサ２２５Ｂは、第一の実施の形態と同様の方法によって、データの読み書きを実現する。
【０１５７】
次に、第二の実施の形態における第一のストレージシステム１０２Ａのコピー管理処理（ローカルサイト側）の一例について説明する。図２８は、この第一のストレージシステム１０２Ａにおけるコピー管理処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【０１５８】
プロセッサ２２５Ａは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム２３１Ａを実行することにより、図２８に示す第一のコピー管理処理手順ＲＴ１２に従って、リモートコピー１４３を実行する（Ｓ１４１）。続いて、プロセッサ２２５Ａは、リモートコピー１４３が終了するのを待機モードで待ち受ける（Ｓ１４２）。やがて、プロセッサ２２５Ａは、リモートコピー１４３が終了すると（Ｓ１４２：ＹＥＳ）、第二のストレージシステム１０２Ｂに差分バッファ入れ替え開始指示を送信する（Ｓ１４３）。
【０１５９】
続いて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからの差分バッファ入れ替え終了報告を受信するのを待機モードで待ち受ける（Ｓ１４４）。やがて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからの差分バッファ入れ替え終了報告を受信すると（Ｓ１４４：ＹＥＳ）、この後、再び、リモートコピー１４３を実行し（Ｓ１４１）、リモートコピー１４３が終了するのを待ち受ける待機モードに戻り（Ｓ１４２）、この後同様の処理を繰り返す（Ｓ１４１〜Ｓ１４４）。
【０１６０】
次に、第二の実施の形態における第二のストレージシステム１０２Ｂのコピー管理処理（リモートサイト側）の一例について説明する。図２９は、この第二のストレージシステム１０２Ｂにおけるコピー管理処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１６１】
プロセッサ２２５Ｂは、初期時、コピー管理を実行するプログラムであるコピー管理プログラム２３１Ｂを実行することにより、図２９に示す第二のコピー管理処理手順ＲＴ１３に従って、第一のストレージシステム１０２Ａから差分バッファ入れ替え開始指示を受信するのを待機モードで待ち受ける（Ｓ１５１）。やがて、プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａから差分バッファ入れ替え開始指示を受信すると（Ｓ１５１：ＹＥＳ）、受信差分バッファ１３１Ｃと適用差分バッファ１３１Ｄとの内容を入れ替える（Ｓ１５２）。
【０１６２】
続いて、プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａに差分バッファ入れ替え終了報告を送信する（Ｓ１５３）。続いて、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＦＦ」に変更する（Ｓ１５４）。続いて、プロセッサ２２５Ｂは、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー１４５を実行する（Ｓ１５５）。
【０１６３】
続いて、プロセッサ２２５Ｂは、ローカルコピー１４５が終了するのを待機モードで待ち受ける（Ｓ１５６）。やがて、プロセッサ２２５Ｂは、ローカルコピー１４５が終了すると（Ｓ１５６：ＹＥＳ）、ローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＮ」に変更する（Ｓ１５７）。
【０１６４】
続いて、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ３３３が「ＯＦＦ」であるか否かをチェックする（Ｓ１５８）。
【０１６５】
そして、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ３３３が「ＯＦＦ」でない場合（Ｓ１５８：ＮＯ）には、当該ソースボリュームのコピー制御フラグ３３２が「ＯＦＦ」になるのを待機モードで待ち受ける。これに対して、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ３３３が「ＯＦＦ」である場合、又は「ＯＦＦ」になった場合（Ｓ１５８：ＹＥＳ）には、この後、再び、第一のストレージシステム１０２Ａから差分バッファ入れ替え開始指示を受信するのを待ち受ける待機モードに戻り（Ｓ１５１）、この後同様の処理を繰り返す（Ｓ１５１〜Ｓ１５８）。
【０１６６】
なお、プロセッサ２２５Ｂは、ステップＳ１５４でローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＦＦ」に変更し、ステップＳ１５７でローカルコピー制御情報２４０における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ３３２を「ＯＮ」に変更する。このように、第二の実施の形態では、第一の実施の形態における図１５に示す第二のコピー管理処理手順ＲＴ４と逆になっているが、その理由としては、ローカルコピー１４５の実行が適用差分バッファ１３１Ｄの内容を第二のボリューム群１１１Ｂに適用することであり、第二のボリューム群１１１Ｂがスナップショットのソースボリューム群となるため、ローカルコピー１４５の実行中にデータ整合性が保証されないからである。
【０１６７】
次に、第二の実施の形態における第一のストレージシステム１０２Ａのリモートコピー処理の一例について説明する。図３０は、この第一のストレージシステム１０２Ａにおけるリモートコピー処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【０１６８】
プロセッサ２２５Ａは、所定のタイミングで、コピー管理プログラム２３１Ａによってリモートコピー１４３を実行するプログラムであるリモートコピープログラム２３２を実行することにより、図３０に示すリモートコピー処理手順ＲＴ１４に従って、キャプチャ差分バッファ１３１Ａと転送差分バッファ１３１Ｂとの内容を入れ替える（Ｓ１６１）。
【０１６９】
続いて、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの要素があるか否かをチェックする（Ｓ１６２）。そして、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの要素がない場合（Ｓ１６２：ＮＯ）には、この後、図３０に示すリモートコピー処理手順ＲＴ１４を終了する（Ｓ１６８）。これに対して、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの要素がある場合（Ｓ１６２：ＹＥＳ）には、転送差分バッファ１３１Ｂの最初の要素を調査対象とする（Ｓ１６３）。
【０１７０】
続いて、プロセッサ２２５Ａは、調査対象の転送差分バッファ１３１Ｂの要素のデータを第二のストレージシステム１０２Ｂに送信する（Ｓ１６４）。続いて、プロセッサ２２５Ａは、調査対象の転送差分バッファ１３１Ｂの要素のデータを削除する（Ｓ１６５）。
【０１７１】
続いて、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの最後の要素まで調査対象としたか否かをチェックする（Ｓ１６６）。そして、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの最後の要素まで調査対象としていない場合（Ｓ１６６：ＮＯ）には、転送差分バッファ１３１Ｂの次の要素を調査対象として（Ｓ１６７）、この後、再び、調査対象の転送差分バッファ１３１Ｂの要素のデータを第二のストレージシステム１０２Ｂに送信し（Ｓ１６４）、この後同様の処理を繰り返す（Ｓ１６４〜Ｓ１６６）。
【０１７２】
これに対して、プロセッサ２２５Ａは、転送差分バッファ１３１Ｂの最後の要素まで調査対象とした場合（Ｓ１６６：ＹＥＳ）には、この後、図３０に示すリモートコピー処理手順ＲＴ１４を終了する（Ｓ１６８）。
【０１７３】
次に、第二の実施の形態における第二のストレージシステム１０２Ｂのローカルコピー処理の一例について説明する。図３１は、この第二のストレージシステム１０２Ｂにおけるローカルコピー処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１７４】
プロセッサ２２５Ｂは、第一のストレージシステム１０２Ａから差分バッファ入れ替え開始指示を受信すると、コピー管理プログラム２３１Ｂによってローカルコピー１４５を実行するプログラムであるローカルコピープログラム２３７を実行することにより、図３１に示すローカルコピー処理手順ＲＴ１５に従って、適用差分バッファ１３１Ｄの要素があるか否かをチェックする（Ｓ１７１）。そして、プロセッサ２２５Ｂは、適用差分バッファ１３１Ｄの要素がない場合（Ｓ１７１：ＮＯ）には、この後、図３１に示すローカルコピー処理手順ＲＴ１５を終了する（Ｓ１７７）。これに対して、プロセッサ２２５Ｂは、適用差分バッファ１３１Ｄの要素がある場合（Ｓ１７１：ＹＥＳ）には、適用差分バッファ１３１Ｄの最初の要素を調査対象とする（Ｓ１７２）。
【０１７５】
続いて、プロセッサ２２５Ｂは、調査対象の適用差分バッファ１３１Ｄの要素のデータを、当該要素が示すボリュームの記憶領域に記憶する（Ｓ１７３）。続いて、プロセッサ２２５Ａは、調査対象の適用差分バッファ１３１Ｄの要素のデータを削除する（Ｓ１７４）。
【０１７６】
続いて、プロセッサ２２５Ｂは、適用差分バッファ１３１Ｄの最後の要素まで調査対象としたか否かをチェックする（Ｓ１７５）。そして、プロセッサ２２５Ｂは、適用差分バッファ１３１Ｄの最後の要素まで調査対象としていない場合（Ｓ１７５：ＮＯ）には、適用差分バッファ１３１Ｄの次の要素を調査対象として（Ｓ１７６）、この後、再び、調査対象の適用差分バッファ１３１Ｄの要素のデータを、当該要素が示すボリュームの記憶領域に記憶し（Ｓ１７３）、この後同様の処理を繰り返す（Ｓ１７３〜Ｓ１７５）。
【０１７７】
これに対して、プロセッサ２２５Ｂは、適用差分バッファ１３１Ｄの最後の要素まで調査対象とした場合（Ｓ１７５：ＹＥＳ）には、この後、図３１に示すローカルコピー処理手順ＲＴ１５を終了する（Ｓ１７７）。
【０１７８】
このようにして第二の実施の形態における計算機システム１００では、第二のストレージシステム１０２Ｂに、書き込み対象のデータを蓄積する受信バッファ１３１Ｃ及び適用差分バッファ１３１Ｄを有することで、第二のボリューム群１１１Ｂの整合性を保証するために必要な書き込み対象のデータを保持しているため、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成することができる。
【０１７９】
（３）第三の実施の形態
第三の実施例では、マーカを使用する方法について説明する。第三の実施例における計算機システム１００は、マーカを使用する点を除いて、第一または第二の実施の形態における計算機システム１００と同様に構成されている。マーカは、ボリュームの状態を表す識別子で、ホストコンピュータ１０１等がある時点で第一のストレージシステム１０２Ａに対して、マーカ作成指示を行う。例えば、ホストコンピュータ１０１は、所定のボリューム群において「ある重要なデータが書き込まれた」などの条件が満たされた時点で、指定マーカ作成指示を行う。その後、計算機システム１００では、リモートサイトにある第二のストレージシステム１０２Ｂでリモートコピーシステムの運用中に第二のボリューム群１１１Ｂのスナップショットを作成する際に、マーカを使用する方法によって、特定の条件が満たされたボリューム群のスナップショットを作成する。
【０１８０】
図３２は、第三の実施形態におけるマーカの構造を示している。マーカは、所定のボリューム群の状態を表す用途として用いられる。所定のボリューム群１１１と一対一に対応する記憶領域３０２をマーカ領域として割り当てる。例えば、計算機システム１００では、記憶制御装置２０１Ａのメモリ２２４Ａ上に記憶領域３０２を確保する方法や、ボリューム群１１１の一部に記憶領域３０２を確保する方法が考えられる。
【０１８１】
図３３は、第三の実施の形態における第一のストレージシステム１０２Ａのマーカ処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。プロセッサ２２５Ａは、ホストコンピュータ１０１や管理端末１０４、その他保守端末２２３Ａ、２２３Ｂやプログラムから、ユーザやプログラムにより、マーカ作成指示を受信すると、マーカ作成処理を実行するプログラムであるマーカ制御プログラム２３４を実行することにより、図３３に示すマーカ処理手順ＲＴ１６に従って、マーカ作成指示に対応するボリュームのマーカ領域に指定マーカを書き込み（Ｓ１８１）、この後、図３３に示すマーカ処理手順ＲＴ１６を終了する（Ｓ１８２）。
【０１８２】
次に、第三の実施の形態における第一のストレージシステム１０２Ａのコピー管理処理（ローカルサイト側）の一例について説明する。図３５は、この第一のストレージシステム１０２Ａにおけるコピー管理処理に関するプロセッサ２２５Ａの具体的な処理手順を示したフローチャートである。
【０１８３】
プロセッサ２２５Ａは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム２３１Ａを実行することにより、図３５に示す第一のコピー管理処理手順ＲＴ１７に従って、リモートコピー１２２を実行する（Ｓ１９１）。続いて、プロセッサ２２５Ａは、リモートコピー１２２が終了するのを待機モードで待ち受ける（Ｓ９２）。やがて、プロセッサ２２５Ａは、リモートコピー１２２が終了すると（Ｓ１９２：ＹＥＳ）、リモートコピーのソースボリュームのマーカ領域のデータを、リモートコピーのターゲットボリュームのマーカ領域に適用する（Ｓ１９３）。
【０１８４】
この場合、プロセッサ２２５Ａは、例えば、ボリューム１１１上の記憶領域にマーカ領域を割り当てた場合、リモートコピーによる書き込み対象のデータの第二のストレージシステム１０２Ｂへの転送と同様に、マーカ領域に適用する。また、プロセッサ２２５Ａは、例えば、メモリ２２４Ａ上の記憶領域３０２にマーカ領域を割り当てた場合、適用時にマーカ領域のデータを第二のストレージシステム１０２Ｂにネットワーク１０３を通して転送し、第二のストレージシステム１０２Ｂに第一のストレージシステム１０２Ａから転送されたデータをローカルコピーの実行前にメモリ２２４Ｂ上の記憶領域３０２に書き込むことにより、マーカ領域に適用する。さらに、プロセッサ２２５Ａは、リモートコピーの実行中においても、マーカ領域に適用する。
【０１８５】
続いて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂにローカルコピー開始指示を送信する（Ｓ１９４）。続いて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからのローカルコピー終了報告を受信するのを待機モードで待ち受ける（Ｓ１９５）。やがて、プロセッサ２２５Ａは、第二のストレージシステム１０２Ｂからのローカルコピー終了報告を受信すると（Ｓ１９５：ＹＥＳ）、この後、再び、リモートコピー１２２を実行し（Ｓ１９１）、リモートコピー１２２が終了するのを待ち受ける待機モードに戻り（Ｓ１９２）、この後同様の処理を繰り返す（Ｓ１９１〜Ｓ１９５）。
【０１８６】
なお、本実施の形態では、第一の実施の形態におけるコピー管理処理に関するプロセッサ２２５Ａの具体的な処理手順に適用した場合について述べたが、第二の実施の形態におけるコピー管理処理に関するプロセッサ２２５Ａの具体的な処理手順に適用した場合にも同様である。
【０１８７】
次に、第三の実施の形態における第二のストレージシステム１０２Ｂの拡張スナップショット処理の一例について説明する。図３５は、この第二のストレージシステム１０２Ｂにおける拡張スナップショット処理に関するプロセッサ２２５Ｂの具体的な処理手順を示したフローチャートである。
【０１８８】
プロセッサ２２５Ｂは、ホストコンピュータ１０１や管理端末１０４、その他保守端末２２３Ａ、２２３Ｂやプログラムから、ユーザやプログラムにより、指定マーカの入力を受信すると、指定マーカの入力によるスナップショット１２５を実行するプログラムであるスナップショット拡張プログラム２３８を実行することにより、図３５に示す拡張スナップショット処理手順ＲＴ１８に従って、ペア情報２３５Ｂを参照することにより、指定マーカの入力に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームであるか否かをチェックする（Ｓ２０１）。
【０１８９】
そして、プロセッサ２２５Ｂは、指定マーカの入力に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームでない場合（Ｓ１０１：ＮＯ）には、この後、図３５に示す拡張スナップショット処理手順ＲＴ１８を終了する（Ｓ１０６）。これに対して、プロセッサ２２５Ｂは、指定マーカの入力に対応するソースボリュームが第二のボリューム群１１１Ｂのボリュームである場合（Ｓ２０１：ＹＥＳ）には、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ３３２が「ＯＮ」であるか否かをチェックする（Ｓ２０２）。
【０１９０】
そして、プロセッサ２２５Ｂは、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」でない場合（Ｓ２０２：ＮＯ）には、当該ソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」になるのを待機モードで待ち受ける。これに対して、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＮ」である場合、又は「ＯＮ」になった場合（Ｓ２０２：ＹＥＳ）には、第二のボリューム群１１１Ｂのボリュームにおいて、マーカを表すデータと、指定マーカが等しいか否かをチェックする（Ｓ２０３）。
【０１９１】
そして、プロセッサ２２５Ｂは、第二のボリューム群１１１Ｂのボリュームにおいて、マーカを表すデータと、指定マーカが等しくない場合（Ｓ２０３：ＮＯ）には、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ３３２が「ＯＦＦ」であるか否かをチェックする（Ｓ２０４）。そして、プロセッサ２２５Ｂは、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＦＦ」でない場合（Ｓ２０４：ＮＯ）には、当該ソースボリュームのローカルコピー制御フラグ３３２が「ＯＦＦ」になるのを待機モードで待ち受ける。これに対して、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ３３２が「ＯＦＦ」である場合、又は「ＯＦＦ」になった場合（Ｓ２０４：ＹＥＳ）には、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ３３２が「ＯＮ」であるか否かをチェックし（Ｓ２０２）、この後同様の処理を繰り返す（Ｓ２０２〜Ｓ２０４）。
【０１９２】
これに対して、プロセッサ２２５Ｂは、第二のボリューム群１１１Ｂのボリュームにおいて、マーカを表すデータと、指定マーカが等しい場合（Ｓ２０３：ＹＥＳ）には、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームの実行待ちフラグ３３３を「ＯＮ」に変更する（Ｓ２０５）。
【０１９３】
続いて、プロセッサ２２５Ｂは、指定マーカの入力に対応するソースボリュームから、対応するターゲットボリュームへのスナップショット１２５を実行する（Ｓ２０６）。続いて、プロセッサ２２５Ｂは、ローカルコピー制御情報２４０における、指定マーカの入力に対応するソースボリュームの実行待ちフラグ３３３を「ＯＦＦ」に変更する（Ｓ２０７）。やがて、プロセッサ２２５Ｂは、この後、図３５に示す拡張スナップショット処理手順ＲＴ１８を終了する（Ｓ２０８）。
【０１９４】
このようにして、第三の実施の形態における計算機システム１００では、第二のボリューム群１１１Ｂのボリュームにおいて、マーカを表すデータと、指定マーカが一致し、かつローカルコピー制御情報２４０における、指定マーカの入力に対応するローカルコピー制御フラグ３３２が「ＯＮ」であるときにスナップショットを作成することができる。
【産業上の利用可能性】
【０１９５】
本発明は、ホストコンピュータとストレージシステムとをネットワークにより接続し、ホストコンピュータで処理されるデータを、ネットワークを介して送受信してストレージシステムに格納するコンピュータシステムに広く適用することができる。
【図面の簡単な説明】
【０１９６】
【図１】第一の実施の形態による計算機システムの概略的な構成を示すブロック図である。
【図２】計算機システムの内部の概略的な構成を示すブロック図である。
【図３】更新ビットマップ及び差分ビットマップの説明に供する概念図である。
【図４】ペア情報の説明に供する概念図である。
【図５】サイドファイルの説明に供する概念図である。
【図６】ローカルコピー制御情報の説明に供する概念図である。
【図７】リモートコピーシステムの動作の説明に供する概念図である。
【図８】リモートコピーシステムの動作の説明に供する概念図である。
【図９】第一〜第四のボリューム群の更新状態の説明に供する概念図である。
【図１０】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図１１】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図１２】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図１３】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図１４】コピー管理処理手順を示すフローチャートである。
【図１５】コピー管理処理手順を示すフローチャートである。
【図１６】リモートコピー処理手順を示すフローチャートである。
【図１７】ローカルコピー処理手順を示すフローチャートである。
【図１８】スナップショット処理手順を示すフローチャートである。
【図１９】バックグラウンドコピー処理手順を示すフローチャートである。
【図２０】拡張スナップショット処理手順を示すフローチャートである。
【図２１】第二の実施の形態による計算機システムの概略的な構成を示すブロック図である。
【図２２】計算機システムの内部の概略的な構成を示すブロック図である。
【図２３】差分バッファの説明に供する概念図である。
【図２４】第一〜第三のボリューム群及び差分バッファの更新状態の説明に供する概念図である。
【図２５】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図２６】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図２７】Ｉ／Ｏアクセス処理手順を示すフローチャートである。
【図２８】コピー管理処理手順を示すフローチャートである。
【図２９】コピー管理処理手順を示すフローチャートである。
【図３０】リモートコピー処理手順を示すフローチャートである。
【図３１】ローカルコピー処理手順を示すフローチャートである。
【図３２】マーカの説明に供する概念図である。
【図３３】マーカ処理手順を示すフローチャートである。
【図３４】コピー管理処理手順を示すフローチャートである。
【図３５】拡張スナップショット処理手順を示すフローチャートである。
【符号の説明】
【０１９７】
１００……計算機システム、１０１……ホストコンピュータ、１０２Ａ……第一のストレージシステム、１０２Ｂ……第二のストレージシステム、１０３……ネットワーク、１０４……管理端末、１１１Ａ〜１１１Ｄ……第一〜第四のボリューム群、１１２Ａ、１１２Ｃ、１１２Ｄ……更新ビットマップ、１１２Ｂ……差分ビットマップ、１２１……リモートコピーのペア関係、１２２、１４１……リモートコピー、１２３……ローカルコピーのペア関係、１２４、１４２……ローカルコピー、１２５……スナップショット、２０１Ａ、２０１Ｂ……記憶制御装置、２０２Ａ、２０２Ｂ……記憶装置、２２４Ａ、２２４Ｂ……メモリ、２２５Ａ、２２５Ｂ……プロセッサ、２３１Ａ、２３１Ｂ……コピー管理プログラム、２３２……リモートコピープログラム、２３３Ａ、２３３Ｂ……Ｉ／Ｏ制御プログラム、２３４……マーカ制御プログラム、２３５Ａ、２３５Ｂ……ペア情報、２３６……サイドファイル、２３７……ローカルコピープログラム、２３８……スナップショット拡張プログラム、２３９……スナップショットプログラム、２４０……ローカルコピー制御情報
【図１】
2008040762.tif 000003
【図２】
2008040762.tif 000004
【図３】
2008040762.tif 000005
【図４】
2008040762.tif 000006
【図５】
2008040762.tif 000007
【図６】
2008040762.tif 000008
【図７】
2008040762.tif 000009
【図８】
2008040762.tif 000010
【図９】
2008040762.tif 000011
【図１０】
2008040762.tif 000012
【図１１】
2008040762.tif 000013
【図１２】
2008040762.tif 000014
【図１３】
2008040762.tif 000015
【図１４】
2008040762.tif 000016
【図１５】
2008040762.tif 000017
【図１６】
2008040762.tif 000018
【図１７】
2008040762.tif 000019
【図１８】
2008040762.tif 000020
【図１９】
2008040762.tif 000021
【図２０】
2008040762.tif 000022
【図２１】
2008040762.tif 000023
【図２２】
2008040762.tif 000024
【図２３】
2008040762.tif 000025
【図２４】
2008040762.tif 000026
【図２５】
2008040762.tif 000027
【図２６】
2008040762.tif 000028
【図２７】
2008040762.tif 000029
【図２８】
2008040762.tif 000030
【図２９】
2008040762.tif 000031
【図３０】
2008040762.tif 000032
【図３１】
2008040762.tif 000033
【図３２】
2008040762.tif 000034
【図３３】
2008040762.tif 000035
【図３４】
2008040762.tif 000036
【図３５】
2008040762.tif 000037