(57)【特許請求の範囲】
【請求項１】
複数の記憶制御装置間でプライマリボリュームとセカンダリボリュームとを設定し、前記プライマリボリュームから前記セカンダリボリュームにデータの転送を非同期で行う非同期リモートコピーシステムの制御方法において、
第１の記憶制御装置にプライマリボリュームを設定する第１のステップと、
第２の記憶制御装置にセカンダリボリュームを設定する第２のステップと、
前記プライマリボリュームから前記セカンダリボリュームに対して行われる非同期リモートコピーにおいて、前記第１の記憶制御装置からのデータを受信した前記第２の記憶制御装置は、受信したデータを前記セカンダリボリュームに書き込んで更新する前に、更新前のデータを前記第２の記憶制御装置において予め設定されているプールボリュームに退避させる第３のステップと、
前記第１の記憶制御装置に接続されている第１の上位装置の業務を前記第２の記憶制御装置に接続されている第２の上位装置が引き継ぐ際、前記プライマリボリュームから前記セカンダリボリュームに対して現在行っている非同期リモートコピーのサイクルを中止する第４のステップと、
前記セカンダリボリュームのデータを確定する第５のステップと、
前記データが確定したセカンダリボリュームから前記プライマリボリュームへのデータのコピーが必要な前記セカンダリボリュームの特定領域を決定する第６のステップと、
前記第１の記憶制御装置の前記プライマリボリュームをセカンダリボリュームに変更する第７のステップと、
前記第２の記憶制御装置の前記セカンダリボリュームをプライマリボリュームに変更する第８のステップと、
前記セカンダリボリュームにおける特定領域のデータを前記セカンダリボリュームから前記プライマリボリュームへコピーする第９のステップと、
前記第２の記憶制御装置の前記変更したプライマリボリュームから前記第１の記憶制御装置の前記変更したセカンダリボリュームに対して非同期リモートコピーを再開する第１０のステップとを備え、
前記第６のステップにおいて決定される特定領域は、
前記第４のステップにおいて中止された非同期リモートコピーの現在のサイクルで、前記プライマリボリュームから前記セカンダリボリュームに対してコピーされるべきであったが、未だコピーされていない差分データがあることを示す転送ビットマップにより示される領域と、
前記第１の上位装置から前記第２の上位装置に業務が引き継がれた以降、前記第２の上位装置から前記セカンダリボリュームにデータが書き込まれたこと及び前記第２の記憶制御装置に予め設定されている前記プールボリュームに退避させた更新前のデータを前記セカンダリボリュームにリストアしたことを示すセカンダリボリューム変更ビットマップにより示される領域と、
前記現在の非同期リモートコピーのサイクルが開始されてから、前記第１の上位装置から前記第２の上位装置に業務が引き継がれるまでの間に、前記第１の上位装置から前記プライマリボリュームに対してデータの書込みがあった領域と
を論理和演算することにより定まる
非同期リモートコピーシステムの制御方法。
【請求項２】
前記第５のステップは、
前記セカンダリボリュームを、前回のサイクルの非同期リモートコピーが終了した時点のデータと、前記第２の上位装置が前記第１の上位装置から前記業務を引き継いだ後前記第２の上位装置から前記セカンダリボリュームに対してライトされたデータを加えた状態の姿にすること
を含む請求項１記載の非同期リモートコピーシステムの制御方法。
【請求項３】
前記第５のステップは、
前記非同期リモートコピーの現在のサイクルにおいて、前記セカンダリボリュームの前記プライマリボリュームの差分データが格納された領域に、当該差分データを格納する前のデータを前記プールボリュームに退避させるステップと、前記退避させたデータを前記セカンダリボリュームにリストアするステップと
を有する請求項１記載の非同期リモートコピーシステムの制御方法。
【請求項４】
第１のストレージシステムと第２のストレージシステムとの間でデータを非同期でリモートコピーする非同期リモートコピーシステムにおいて、
前記第１のストレージシステムは、
第１の計算機に接続する第１の記憶制御装置を備え、
前記第１の記憶制御装置は、
第１の論理記憶領域を有する第１の記憶デバイスと、第１のメモリと、第１のコントローラとを備え、
前記第２ストレージシステムは、
第２の計算機に接続する第２の記憶制御装置を備え、
前記第２記憶制御装置は、
第２の論理記憶領域を有する第２の記憶デバイスと、第２のメモリと、第２のコントローラとを備え、
前記第１のコントローラは、
前記第１の論理記憶領域をプライマリボリュームと認識し、前記第２の論理記憶領域をセカンダリボリュームと認識して、前記第１の論理記憶領域に対する前記第１の計算機からのライトアクセスに基づく差分データを前記第２の論理記憶領域に非同期でリモートコピーを行い、
前記第２のコントローラは、
前記プライマリボリュームから前記セカンダリボリュームに対して行われる非同期リモートコピーにおいて、前記第１の記憶制御装置からのデータを受信すると、受信したデータを前記セカンダリボリュームに書き込んで更新する前に、更新前のデータを前記第２の記憶制御装置において予め設定されている第２の退避ボリュームに退避させておき、
前記非同期リモートコピーが実行されている間、前記第１の計算機の業務を引き継いだ前記第２の計算機からのコマンドに基づいて、前記第２の論理記憶領域をプライマリボリュームとし、前記第１の論理記憶領域をセカンダリボリュームとして、前記第２の論理記憶領域のデータイメージを前記第１の論理記憶領域のデータイメージに一致させる制御情報を前記第２のメモリに格納し、当該制御情報に基づいて、前記非同期リモートコピーの前回のサイクルが終了した時点での前記第２の論理記憶領域の特定ブロックのデータを前記第１の論理記憶領域にコピーし、
前記第２のメモリは、
前記第２の論理記憶領域から前記第１の論理記憶領域へデータがコピーされるべき、前記第２の論理記憶領域の特定ブロックを管理し、
前記第２のメモリが管理する前記特定ブロックは、
前記非同期リモートコピーの現在のサイクルで、前記第１の論理記憶領域から前記第２の論理記憶領域に対して書き込まれるべきであったが、未だ書き込まれていない差分データがあることを示す転送ビットマップにより示される領域と、
前記第１の計算機から前記第２の計算機に業務が引き継がれた以降、前記第２の計算機から前記第２の論理記憶領域にデータが書き込まれたこと及び前記第２の計算機に予め設定されている第２の退避ボリュームに退避させた更新前のデータを前記第２の論理記憶領域にリストアしたことを示すセカンダリボリューム変更ビットマップにより示される領域と、
前記現在の非同期リモートコピーのサイクルが開始されてから、前記第１の計算機から前記第２の計算機に業務が引き継がれるまでの間に、前記第１の上位装置から前記第１の論理記憶領域に対してデータの書き込みがあった領域と
を論理和演算することにより定まる
リモートコピーシステム。
【請求項５】
前記第１のコントローラは、
前記第１の計算機からの書き込みデータが更新記憶された、前記第１の論理記憶領域のブロックを管理する第１の管理部と、
当該書き込み前のデータを退避させる第１の退避ボリュームと、
前記非同期リモートコピーの際に、前記第２の論理記憶領域に転送されるべき差分データが格納されている前記第１の論理記憶領域のブロックを管理する第２の管理部と、
を備える請求項４記載のリモートコピーシステム。
【請求項６】
前記第２のコントローラは、
前記第２の計算機からの書き込みデータが更新記憶された、前記第２の論理記憶領域のブロックを管理する第３の管理部と、
前記第２の論理記憶領域に前記差分データが書き込まれたブロックを管理する第４の管理部と、
前記差分データが書き込まれる前のデータを退避させる前記第２の退避ボリュームと、
を備える請求項５記載のリモートコピーシステム。
【請求項７】
前記第２のコントローラは、
前記第４の管理部により管理されるブロックを前記第３の管理部に登録する
請求項６記載のリモートコピーシステム。
【請求項８】
前記第２のコントローラは、
前記第２の退避ボリュームの退避データを前記第２の論理記憶領域にリストアする
請求項７記載のリモートコピーシステム。
【請求項９】
前記第２のコントローラは、
前記第１の管理部と前記第２の管理部とにより管理されるブロックを前記第３の管理部に登録する
請求項７記載のリモートコピーシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムを用いたリモートコピーシステムに関するものであり、特に、リモートコピーシステムを構成する第１のストレージシステムと第２のストレージシステムと間で、メインサイトとリモートサイトの役割を交換する機能を持った非同期リモートコピーシステムに関するものである。なお、以後の説明において、この機能をスワップ機能ということがある。
【背景技術】
【０００２】
データセンタのような大規模なデータを取り扱うデータベースシステムでは、ホストシステムとは別に構成されたストレージシステムを用いてデータを管理することが行なわれている。このようなストレージシステムとして、例えば、ディスクアレイシステムが知られている。
【０００３】
ディスクアレイシステムは、アレイ状に配列された多数のディスクドライブをＲＡＩＤ（Redundant Array of Inexpensive Disks）管理する。多数のディスクドライブが提供する物理的な記憶領域上には、少なくとも１つ以上の論理ユニットが形成され、この論理ユニットがホストシステムに提供される。ホストシステムは、論理ユニットを一つの物理的なデバイスとして認識し、論理ユニットへのデータアクセスを行う。
【０００４】
この種のストレージシステムでは、災害等に備えてデータを確実に保護するための措置が講じられている。例えば、特開２００５−２９３４６９号公報には、メインサイトにある正記憶制御装置の複製元ボリュームに書き込まれるデータを、リモートサイトにある副記憶制御装置の複製先ボリュームにリモートコピーし、データを二重化することで、耐障害性を高めるシステムが開示されている。
【０００５】
このリモートコピーには、メインサイトのホストから正記憶制御装置へのホストＩＯと、正記憶制御装置から副記憶制御装置へのリモートコピーＩＯとを同期的に処理する同期リモートコピーと、ホストＩＯとリモートコピーＩＯを非同期的に処理する非同期リモートコピーとがある。
【０００６】
非同期リモートコピーでは、正記憶制御装置は複製元ボリュームに対する差分データを所定周期、例えば５分毎で確定させ、この差分データをその周期毎に副記憶制御装置の複製先ボリュームに転送することが行なわれている。以後の説明において、複製元ボリュームをプライマリボリュームといい、複製先ボリュームをセカンダリボリュームということもある。
【特許文献１】特開２００５−２９３４６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
同期リモートコピーを実行するシステムは、プライマリボリュームとセカンダリボリュームとにホストからのライトデータを同期して２重書を行なっているために、スワップ機能の実行がユーザから要求された段階で、リモートサイトのセカンダリボリュームをプライマリボリュームに昇格させ、メインサイトのプライマリボリュームをセカンダリボリュームに変更し、リモートサイトとメインサイトの役割を交換すれば、このスワップ機能を実現できる。
【０００８】
これに対して、スワップ機能を持たない、従来の非同期リモートコピーシステムでは、メインサイトのプライマリボリュームに対するデータ更新は数分から数十分遅れてリモートサイトのセカンダリボリュームに反映されるために、非同期リモートコピーが実行されている途中のセカンダリボリュームは、確定できない中途半端な状態であり、リモートコピーシステムに対してスワップ機能を実行するコマンドが発行された時点のセカンダリボリュームをそのままプライマリボリュームに昇格することができない。
【０００９】
そこで、非同期リモートコピーシステムでスワップ機能を実現するためには、セカンダリボリュームのデータイメージを、非同期リモートコピーが実行されているサイクルの前の状態まで戻し、メインサイトのプライマリボリュームをリモートサイトのセカンダリボリュームに一致、即ち、両ボリュームを、スワップ機能を実現する際に一旦同期させる必要がある。
【００１０】
この際、セカンダリボリュームの全データをプライマリボリュームに全コピーすると、全コピーの終了までには長時間を要し、メインサイトとリモートサイトとを結ぶ通信回線に与える通信負荷も大きなものとなる。
【００１１】
本発明は、このような課題を解決するために、プライマリボリュームとセカンダリボリュームとの間で非同期リモートコピーを行っていても、短時間でスワップ機能を実現可能な非同期リモートコピーシステムの制御方法及び非同期リモートコピーシステムを提供することを目的とするものである。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、本発明は、スワップ機能を実行する際に、非同期リモートコピーが行なわれているサイクルにおいて、セカンダリボリュームのデータを確定し、データが確定したセカンダリボリュームからプライマリボリュームへのデータのコピーが必要な、セカンダリボリュームの領域を決定することによって、セカンダリボリュームからプライマリボリュームに全コピーを行なわなくても、非同期リモートコピーシステムにおいてもスワップ機能を実現できるようにしたことを特徴とするものである。
【発明の効果】
【００１３】
本発明によれば、短時間でスワップ機能を実現可能な非同期リモートコピーシステム、及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、各図を参照しながら本発明の実施形態について説明する。図１は、本発明に係わる非同期リモートコピーシステムを実現するストレージシステム１０のシステム構成を示すものである。ストレージシステム１０は、メインサイトに設置されている正記憶制御装置２０と、リモートサイトに設置されている副記憶制御装置５０と、を備えている。
正記憶制御装置２０、副記憶制御装置５０、正ホストシステム１００、及び副ホストシステム１１０は、ＳＡＮ（Storage Area Network）１２０を介して相互に接続されている。
【００１５】
正ホストシステム１００は、常用系のホストシステムであり、主として、正ホストシステムが正常なときに、正記憶制御装置２０にＩ／Ｏ処理を要求する。副ホストシステム１１０は、待機系のホストシステムであり、主として、常用系のホストシステムに障害が発生したときに、副記憶制御装置５０にＩ／Ｏ処理を要求し、障害発生時に正ホストシステム１００が行っていた処理を引き継ぐ。正ホストシステム１００、及び副ホストシステム１１０は、例えば、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。正ホストシステム１００には正記憶制御装置２０を制御する、RAIDマネージャと称されるプログラムが常駐し、副ホストシステム１１０にも同様に副記憶制御装置５０を制御するRAIDマネージャが常駐している。
【００１６】
ストレージシステム１０は、正記憶制御装置２０に書き込まれたデータが副記憶制御装置５０にリモートコピーされるように構成されている。副記憶制御装置５０は、正記憶制御装置２０が過去に保持していたデータイメージと同一のデータイメージを保持する。これにより、正記憶制御装置２０に障害が生じた場合でも、副記憶制御装置５０を用いて、正記憶制御装置２０の業務を引き継ぐことが可能になる。
【００１７】
リモートコピー方式としては、正記憶制御装置２０にデータが書き込まれた段階で、正記憶制御装置２０が正ホストシステム１００にライト完了を報告し、所定期間毎の各ステップにおいて、正記憶制御装置から副記憶制御装置にデータを転送する非同期リモートコピーが採用される。
【００１８】
正記憶制御装置２０は、主に、コントローラ３０と、記憶装置４０とを備えている。コントローラ３０は、ＬＡＮ（Local Area Network）インターフェース３１、フロントエンドインターフェース３２、ＣＰＵ３３、データ転送コントローラ３４、キャッシュメモリ３５、ローカルメモリ３６、及びバックエンドインターフェース３７を備えている。
【００１９】
コントローラ３０は、複数のディスクドライブ４１をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式においては、複数のディスクドライブ４１が一つのＲＡＩＤグループとして管理される。ＲＡＩＤグループ上には、正ホストシステム１００からのアクセス単位である複数の論理ボリューム４２が定義されている。それぞれの論理ボリューム４２には、ＬＵＮ（Logical Unit Number）がアサインされる。
【００２０】
ＣＰＵ３３は、正ホストシステム１００からのデータ入出力要求に応答して、複数のディスクドライブ４１へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御するプロセッサである。
【００２１】
ローカルメモリ３６には、各種マイクロプログラム、及びボリューム管理テーブルなどが格納されている。各種マイクロプログラム、及びボリューム管理テーブルの詳細については、後述する。
【００２２】
キャッシュメモリ３５は、ディスクドライブ４１に書き込むためのライトデータ、又はディスクドライブ４１から読み出したリードデータを一時的に格納するバッファメモリである。キャッシュメモリ３５は、電源バックアップされており、正記憶制御装置２０に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
【００２３】
データ転送コントローラ３４は、キャッシュメモリ３５、フロントエンドインターフェース３２、バックエンドインターフェース３７、及びＣＰＵ３３を相互に接続し、正ホストシステム１００とディスクドライブ４１との間のデータ転送を制御する。正ホストシステム１００からのライトアクセスが要求されると、データ転送コントローラ３４は、フロントエンドインターフェース３２を介して正ホストシステム１００から受け取ったデータをキャッシュメモリ３５に書き込み、その後、そのライトデータをディスクドライブ４１へ非同期書き込みすることを目的として、そのライトデータをバックエンドインターフェース３７へ転送する。また、正ホストシステム１００からのリードアクセスが要求されると、バックエンドインターフェース３７を介してディスクドライブ４１から読みとったリードデータをキャッシュメモリ３５に書き込むとともに、フロントエンドインターフェース３２にそのリードデータを転送する。
【００２４】
フロントエンドインターフェース３２は、正ホストシステム１００とのインターフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づく正ホストシステム１００からのブロックアクセス要求を受信する機能を有する。
【００２５】
バックエンドインターフェース３７は、ディスクドライブ４１とのインターフェースを制御するコントローラであり、例えば、ディスクドライブ４１を制御するプロトコルに基づくディスクドライブ４１へのデータ入出力要求を制御する機能を有する。
【００２６】
ＬＡＮインターフェース３１は、ＬＡＮ９０に接続するインターフェースであり、ＴＣＰ／ＩＰに基づいて管理端末８０との間でデータ及び制御信号の送受信を制御する。
【００２７】
記憶装置４０は、複数のディスクドライブ４１を備える。ディスクドライブ４１は、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＡＳ（Serial Attached SCSI）ディスクドライブ或いはＳＣＳＩ（Small Computer System Interface）ディスクドライブ等のストレージデバイスである。
【００２８】
正記憶制御装置２０は、ＬＡＮ（Local Area Network）９０を介して管理端末８０に接続されている。管理端末８０は、例えば、ＣＰＵ、メモリ及びディスプレイ等のハードウェア資源を備えるコンピュータシステムである。システム管理者は、管理端末８０を入力操作することにより、正記憶制御装置２０を管理するためのコマンドを正記憶制御装置２０に送信する。正記憶制御装置２０を管理するためのコマンドとして、例えば、ディスクドライブ４１の増設或いは減設、又はＲＡＩＤ構成の変更を指示するためのコマンド、正ホストシステム１００と正記憶制御装置２０との間の通信パスを設定するためのコマンド、ＣＰＵ３３のマイクロプログラムをローカルメモリ３６にインストールするためのコマンド、正記憶制御装置２０の動作状態の確認や故障部位を特定するためのコマンド等がある。
【００２９】
副記憶制御装置５０は、正記憶制御装置と同様に、コントローラ６０と、記憶装置７０とを備えている。コントローラ６０の構成は、コントローラ６０は、複数のディスクドライブ７１をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式においては、複数のディスクドライブ７１が一つのＲＡＩＤグループとして管理される。
【００３０】
ＲＡＩＤグループ上には、副ホストシステム１１０からのアクセス単位である複数の論理ボリューム７２が定義されている。それぞれの論理ボリューム７２には、ＬＵＮ（Logical Unit Number）がアサインされる。論理ボリュームは論理的な記憶領域である。コントローラ６０と記憶装置７０のハードウエア構成などは、正記憶制御装置２０のものと同じである。
【００３１】
図２は、正記憶制御装置２０及び副記憶制御装置５０のローカルメモリ３６に格納されている各種マイクロプログラム及びボリューム管理テーブルを示す。ローカルメモリ３６は、ビットマップ制御プログラム２００、リモートコピー実行プログラム２１０、制御プログラム２２０、及びボリューム管理テーブル２３０を格納する。
【００３２】
ビットマップ制御プログラム２００は、後述のビットマップに関する制御処理を実行する。リモートコピー実行プログラム２１０は、リモートコピーを実行する。制御プログラム２２０は、ビットマップ制御プログラム２００、及びリモートコピー実行プログラム２１０を制御する。ボリューム管理テーブル２３０は、複数の論理ボリューム４２（７２）に関する情報を格納する。
【００３３】
図３はボリューム管理テーブル２３０のテーブル構造を示す。ボリューム管理テーブル２３０には、複数の論理ボリュームの各々について、論理ボリューム（以下、「ＶＯＬ」と略記することがある。）を識別するためのＶＯＬ−ＩＤと、その論理ボリュームへのアクセスパスを示すパス情報と、その論理ボリュームの種類と、その論理ボリュームがプールボリュームであるか否かを示すフラグと、その論理ボリュームを含んだボリュームペアに関する情報（以下、「ペア情報」と記す。）と、が対応付けられて格納される。
【００３４】
ボリューム管理テーブル２３０に格納される情報は、正記憶制御装置２０及び副記憶制御装置５０のそれぞれに対して、管理端末８０又はそれぞれのホストシステムを介して入力される。副記憶制御装置５０に対しても独自に管理端末８０を設けるか、あるいは正記憶制御装置の管理端末８０が副記憶制御装置５０を制御するようにしても良い。
【００３５】
ボリュームの種類としては、例えば、「プライマリ」、「セカンダリ」、「プール」がある。「プライマリ」という種類のボリュームは、リモートコピー処理において、正記憶制御装置にあって、コピー元となるボリュームである。
【００３６】
「セカンダリ」という種類のボリュームは、リモートコピー処理において、副記憶制御装置にあって、コピー先となるボリュームである。記憶制御装置の正副の立場が交換（スワップ）される際には、ボリュームのプライマリ又はセカンダリの立場も変更される。
【００３７】
なお、プールボリュームは、パス情報が未定義のボリュームである。プールボリュームフラグは、それに対応する論理ボリュームがプールボリュームであるか否かを示す。具体的には、例えば、プールボリュームフラグが「１」であれば、それに対応する論理ボリュームは、プールボリュームであり、プールボリュームフラグが「０」であれば、それに対応する論理ボリュームは、プールボリュームでないことを示している。
【００３８】
ペア情報には、例えば、ペア相手情報、及びペア状態が含まれている。ペア相手情報には、例えば、ペア相手となる論理ボリューム（以下、ペア相手ＶＯＬ）に関する情報として、ペア相手ＶＯＬを有する記憶制御装置のＩＤ、ペア相手ＶＯＬのＶＯＬ−ＩＤ、及びパス情報などがある。ペア状態としては、例えば、「ＳＭＰＬ」、「ＣＯＰＹ」、「ＰＡＩＲ」、「ＰＳＵＥ」、「ＳＰＬＩＴ」、「ＳＳＷＳ」などがある。
【００３９】
「ＳＭＰＬ」とは、ペア生成前の正副関係のない状態を示す。「ＣＯＰＹ」は、プライマリボリュームのデータをセカンダリボリュームにコピーする形成コピー中の状態を示す。「ＣＯＰＹ」では、セカンダリボリュームへのライトは禁止される。
「ＰＡＩＲ」は、プライマリボリュームからセカンダリボリュームへ非同期コピーを行っている状態を示す。「ＰＡＩＲ」では、セカンダリボリュームへのライトは禁止される。
【００４０】
「ＰＳＵＥ」は、プライマリボリュームからセカンダリボリュームへ非同期コピーを停止している状態を示す。「ＰＳＵＥ」では、セカンダリボリュームへのリード／ライトは禁止される。「ＰＳＵＥ」では、プライマリボリュームへのライトは可能であるが、セカンダリボリュームへのデータ転送が禁止される。
【００４１】
「ＳＰＬＩＴ」は、プライマリボリュームとセカンダリボリュームとを論理的に分離して、プライマリボリュームの更新前後の差分データのみをセカンダリボリュームにコピーする状態を示す。「ＳＳＷＳ」は、セカンダリボリュームがリード／ライト可能な状態を示す。「ＳＳＷＳ」では、セカンダリボリュームのデータは、前回の確定内容にリストアされ、プライマリボリュームは、［ＰＳＵＥ］に遷移する。
【００４２】
ＣＰＵ３３は、ボリューム管理テーブル２３０を参照することにより、アクセスすべき論理ボリューム４２の種類、及びペア情報を特定することができる。また、ＣＰＵ３３は、プールボリュームが後述の仮想ボリュームに割り当てられた場合には、そのプールボリュームへのパスを表す情報を定義し、定義されたパス情報をボリューム管理テーブル２３０に登録することができる。また、ＣＰＵ３３は、アサインされなくなったプールボリュームについてのパス情報を消去することにより、プールボリュームを未使用状態にすることができる。ＣＰＵ３３は、各プールボリュームについて、パス情報が登録されているか否かにより、各プールボリュームが使用中であるか、或いは未使用状態であるかを判別することができる。
【００４３】
図４は正記憶制御装置２０が実行する非同期リモートコピーの処理概要を示す。正記憶制御装置２０は、ＣＰＵ３３、キャッシュメモリ３５、プライマリボリューム（Ｐ-ＶＯＬ）６００、仮想ボリューム（Ｐ＿ＶＶＯＬ）６１０、複数のプールボリューム６２０、内部スナップショットビットマップ３１０、及び転送差分ビットマップ５１０を備える。内部スナップショットビットマップ３１０及び転送差分ビットマップ５１０は、プライマリボリューム又はプールボリュームに関する制御情報であり、ローカルメモリ３６に記憶されている。
【００４４】
プールボリューム６２０は、非同期リモートコピー期間中にプライマリボリューム６００に正ホストシステム１００からライトＩＯがあった場合に、更新前のデータを退避させるための論理ボリュームである。
【００４５】
仮想ボリューム６１０は、正記憶制御装置２０のＣＰＵ３３がプライマリボリューム６００からセカンダリボリューム（Ｓ-ＶＯＬ）７００へ差分データを非同期リモートコピーするために利用される仮想的な論理ボリュームである。
【００４６】
非同期リモートコピーシステムは、メインサイトからリモートサイトにデータコピー開始から終了までの一つのサイクルを正ホストシステムからプライマリボリュームへのライトＩＯとは非同期で繰り返している。非同期リモートコピーを行なっている現在のサイクルでは、プライマリボリュームについて、前回のサイクル終了の際に確定した差分データが現在のサイクルの間にセカンダリボリュームに転送される。
【００４７】
リモートコピーシステムにおいて、プライマリボリューム６００とセカンダリボリューム７００とをそれぞれ複数設け、一つのプライマリボリュームと一つのセカンダリボリュームとを一つのペア関係として、複数のペア間でリモートコピーを行なうことができる。これら複数のペアは同一のコンシステンシグループを形成する。コンシステンシグループとは、データ更新の時間順序性が複数のペア間で保証されていることを意味している。
【００４８】
仮想ボリューム６１０は、キャッシュメモリ３５の記憶領域に形成される場合を、図４において例示したが、ディスクドライブ４１の記憶領域に形成されてもよい。
【００４９】
一つのプライマリボリューム６００と一つのセカンダリボリューム７００とのペアが複数ある場合には、全てのペアについてプールボリューム６２０が割り当てられている。この非同期リモートコピーペアが複数ある場合には、仮想ボリューム６１０も複数あり、各ペアに仮想ボリューム６１０が割り当てられる。一つの仮想ボリュームには一つのプライマリボリューム及びプールボリュームが割り当てられ、仮想ボリュームを介して、プライマリボリューム又はプールボリュームからデータがセカンダリボリュームに転送される。
なお、プールボリュームを複数設け、プライマリボリューム６００とセカンダリボリューム７００とのペアが複数ある場合には、各ペアについてプールボリュームが割り当てられても良い。
【００５０】
正記憶制御装置のキャッシュメモリ３５には、正ホストシステムからのライトＩＯに基づいてデータが更新された、プライマリボリューム６００の記憶領域を管理するためのビットマップ３１０が設定されている。ビットマップの各ビットは、プライマリボリューム及びセカンダリボリュームの各ブロックに対応している。これは後述の転送差分ビットマップ５１０についても同様である。ブロックとは論理アドレスで規定される領域である。
【００５１】
したがって、ＣＰＵ３３は、ビットマップを参照することにより、フラグがセットされたビットに対応する、プライマリボリュームのブロックに、正ホストシステムからのＩＯに基づくデータの更新があったと判断することができる。このビットマップを後述の転送差分ビットマップ５１０と区別するために、内部スナップショットビットマップと称することとする。
【００５２】
転送差分ビットマップ５１０は、プライマリボリューム６００からセカンダリボリューム７００に転送されるべき差分データの所在を管理するための制御情報である。ＣＰＵ３３は転送差分ビットマップ５１０を参照して、差分データをプライマリボリューム又はプールボリュームから読み出してセカンダリボリュームに転送する。
【００５３】
副記憶制御装置５０は副ホストシステム１１０と組み合わされて待機系システムを構成するために、正記憶制御装置２０と同様な構成を持っている。符号６３は正記憶制御装置２０のＣＰＵ３３に対応するＣＰＵであり、符号７００は既述のとおりセカンダリボリュームであり、符号７２０はプールボリューム６２０に対応するプールボリュームであり、符号６５はキャッシュメモリ３５に対応するキャッシュメモリであり、符号３２０は内部スナップショットビットマップ３１０に対応する内部スナップショットビットマップであり、符号７１０は仮想ボリューム６１０に対応する仮想ボリュームであり、符号５２０は転送ビットマップ５１０に対応する転送ビットマップである。
【００５４】
次に、図４に示す非同期リモートコピーシステムにおける、スワップ機能を実現するための動作を説明する。非同期リモートコピーのサイクルが実行されている間に、ストレージシステムがスワップ機能を実現するためには、プライマリボリュームをセカンダリボリュームに同期、すなわち、セカンダリボリュームのデータとプライマリボリュームのデータとを一致させる必要がある。
【００５５】
そのためには、第１にセカンダリボリュームのデータを確定させ、第２にセカンダリボリュームから必要な部分だけをプライマリボリュームにコピーすれば、スワップ機能の実現のための工程が短時間で済む。
【００５６】
セカンダリボリュームのデータを確定するために、セカンダリボリュームを、前回のサイクルの非同期リモートコピーが終了した時点のデータに、副ホストシステムが正ホストシステムから業務が委譲された後副ホストシステムからセカンダリボリュームに対してライトされたデータを加えたデータを持った姿にする。
【００５７】
第２にセカンダリボリュームから必要な部分だけをプライマリボリュームにコピーするために、セカンダリボリュームのコピーが必要な領域を決定する。この領域は、非同期リモートコピーの現在のサイクルで、プライマリボリュームの差分データが書き込まれた領域と、プライマリボリュームから差分データが書き込まれるべき領域と、副ホストシステムが正ホストシステムから業務を引き継いだ以降、副ホストシステムからセカンダリボリュームにデータが書き込まれた領域と、そして、現在の非同期リモートコピーのサイクルが開始された後、正ホストシステムが副ホストシステムに業務を引き継ぐまでに、プライマリボリュームに対して正ホストシステムからライトがあった領域に対応するセカンダリボリュームの領域と、を合計したものである。
【００５８】
以後具体的に説明する。図５乃至図１６は、非同期リモートコピーの一連の動作を説明するブロック図である。これらの図において、図４のハードウエア構成が簡略化されて示されている。なお、以後の説明において、正記憶制御装置２０のＣＰＵ３３を正ＣＰＵ３３といい、副記憶制御装置５０のＣＰＵ６３を副ＣＰＵ６３ということとする。
【００５９】
正ＣＰＵ３３は、非同期リモートコピーのサイクル毎に、正ホストシステム１００からのライトコマンドによるプライマリボリュームの差分データを確定させ、確定した差分データを次回の非同期リモートコピーのサイクルで副記憶制御装置５０に送信する。
【００６０】
図１６の（１）に示すように、正ＣＰＵ３３は、非同期リモートコピーが終了する時点・時刻で、内部スナップショットビットマップ３１０の全イメージを転送ビットマップ５１０にコピーする。この際、正ＣＰＵ３３は、図１６の（２）に示すように、内部スナップショットビットマップ３１０の全ビットをクリアする。この時点で、プライマリボリュームからセカンダリボリュームに転送されるべき、プライマリボリュームに対する差分データが確定することになる。
【００６１】
図５は、現在の非同期リモートコピーのサイクルの開始時点での、正記憶制御装置２０と副記憶制御装置５０内のボリューム及びビットマップの状態を示している。非同期リモートコピーの途中で、プライマリボリューム６００に正ホストシステム１００からライトコマンドＳ１００が発行されると、正ＣＰＵ３３は、図６に示すように、内部スナップショットビットマップ３１０の、ライトデータが書き込まれたブロックにフラグをセットする。内部スナップショットビットマップとして、５ビット×５ビットのものが例示されており、各ビットがボリュームの各ブロックに対応している。黒く塗られて図示されたビットにフラグが設定されていることを表している。これは他のビットマップについても同様である。
【００６２】
プライマリボリューム６００とセカンダリボリューム７００は、既述の“ＰＡＩＲ”に設定されて、セカンダリボリューム７００へ差分データが順次転送される（Ｓ１１０）。正ホストシステム１００からプライマリボリューム６００にライトアクセスがあると、正ＣＰＵ３３はプライマリボリューム６００の更新前のデータを、プライマリボリュームの各ブロック単位でプールボリューム６２０に退避させる（Ｓ１２０）。このように退避させる理由は、更新前のデータがセカンダリボリュームに転送されるべき、差分データであるかもしれないからである。
【００６３】
図６を参照してさらに説明を続ける。正ＣＰＵ３３は転送ビットマップ５１０をチェックして、フラグが設定されているビットに対応する、仮想ボリューム６１０のブロックに確定した差分データが割り当てられていると判断する。正ＣＰＵ３３は、転送ビットマップ５１０のフラグが設定されているビットに対応する、内部スナップショットビットマップ３１０のビットのフラグをチェックし、フラグが設定されていない場合にはプライマリボリューム６００の対応領域から差分データを読み出して、これを仮想ボリューム６１０の対応領域に割り当てる。
【００６４】
一方、内部スナップショットビットマップにフラグが設定されている場合には、プライマリボリュームの対応ブロックはライトコマンドＳ１００によって更新されており、更新前のデータ（差分データ）は、プールボリューム６２０にあるために、プールボリュームの対応領域から差分データを読み出して、これを仮想ボリューム６１０の対応領域に割り当てる。
【００６５】
正ＣＰＵ３３は仮想ボリューム６１０に割り当てられた差分データをセカンダリボリューム７００に転送する（Ｓ１１０）。正ＣＰＵ３３は、転送ビットマップ５１０に基づいて差分データをセカンダリボリュームに転送した場合には、転送された差分データに対応するブロックのフラグを順次クリアしていく。
【００６６】
差分データの転送を受けた副ＣＰＵ６３は、セカンダリボリューム７００に差分データを書き込む際に、セカンダリボリュームに対して差分データの書き込みがあった領域に対応する、内部スナップショットビットマップ３２０のビットにフラグをセットし、さらにセカンダリボリュームの更新前のデータをプールボリューム７２０に退避させる（Ｓ１３０）。
【００６７】
非同期リモートコピーの途中で、正ホストシステム１００に障害が発生して、待機系の、副ホストシステム１１０及び副記憶制御装置５０を稼動系に切り替える場合には、副ホストシステムのユーザ又は管理者１１０Ａは、副ホストシステムのRAIDマネージャ１１２に対して“Horctakeover”コマンドを実行する（Ｓ１４０）。RAIDマネージャはホストシステムが記憶制御装置を制御するエージェントソフトウェアである。
【００６８】
このコマンドは副ホストシステム１１０及び副記憶制御装置５０を稼動系、即ち正側に切り替えるためのものである。このコマンドを受けた副ホストシステム５０は副ＣＰＵ６３にセカンダリボリュームに対して後述のリストアを開始させるために、“S-VOL Takeover”コマンドを発行する（Ｓ１５０）。
【００６９】
セカンダリボリュームのペア状態が「ＳＳＷＳ」に変更された場合、副ＣＰＵはデータ転送によるセカンダリボリュームへの書き込みを禁止する。データ転送中にセカンダリボリュームへのデータ転送がエラーになることを契機に正ＣＰＵ３３はプライマリボリュームのペア状態を「ＰＳＵＥ」に変更し、セカンダリボリュームへのデータ転送を中断する。即ち、リモートコピーが中断又は中止される。
【００７０】
図７に示すように、“S-VOL Takeover”コマンドを受けた、副ＣＰＵ６３はRAIDマネージャ１１２に対して“S-VOL Takeover”コマンドに対する応答を返すとともに（Ｓ１６０）、セカンダリボリューム７００のペア状態を「ＳＳＷＳ」に変更する。副ホストシステム１１０は正ホストシステム１００の業務を引き継いで、セカンダリボリューム７００にライトコマンド（Ｓ１７０）の発行を開始する。ライトコマンドを受けた副ＣＰＵ６３はセカンダリボリューム７００にこのライトコマンドに伴うライトデータを書き込む。
【００７１】
副ＣＰＵ６３は、非同期リモートコピーの一つ前のサイクルで確定されたセカンダリボリュームのデータを再現するために、プールボリューム７２０に退避してあるデータをセカンダリボリューム７００に書き込む（Ｓ１８０）。副ＣＰＵ６３がプールボリューム７２０に退避してあるデータをセカンダリボリューム７００の特定領域に書き込んで、セカンダリボリュームを更新前の状態に戻す一連の処理をリストアという。このリストアによって、セカンダリボリュームを非同期リモートコピーの一つ前のサイクルで確定された姿、即ち、今回の非同期リモートコピーのサイクルが開始される前の姿に戻して、セカンダリボリュームのデータを確定させることができる。
【００７２】
副ＣＰＵ６３は、内部スナップショットビットマップ３２０のフラグをチェックし、プールボリューム７２０に退避したデータを、セカンダリボリュームのどの領域に書き込めばよいかを知ることができる。
【００７３】
図７の５２０は副記憶制御装置５０側の転送ビットマップである。この転送ビットマップは、正記憶制御装置２０側の転送ビットマップ５１０と同様に、正記憶制御装置と副記憶制御装置とが交換され、非同期リモートコピーが再開された以降、プライマリボリュームとなったボリューム７００からセカンダリボリュームとなったボリューム６００へ、ボリューム７００の差分データを転送すべき領域をＣＰＵが知るためのものであるが、正記憶制御装置と副記憶制御装置とが交換されている過程では、セカンダリボリュームからプライマリボリュームへ転送されるべきデータのセカンダリボリュームにおける位置を管理するための、Ｓ-ＶＯＬ（セカンダリボリューム）変更ビットマップとして機能する。
【００７４】
図７において、セカンダリボリュームに対して副ホストシステム１１０からライトコマンド（Ｓ１７０）が発行されると、ライトデータはセカンダリボリューム７００に書き込まれ、副ＣＰＵ６３はライトデータが書き込まれたブロックに対応する、Ｓ-ＶＯＬ変更ビットマップ５２０のビットにフラグをセットする。
【００７５】
ユーザ１１０Ａは、RAIDマネージャ１１２のS-VOL Takeoverコマンドに対する、副ＣＰＵ６３からRAIDマネージャへの応答から、副記憶制御装置５０で既述のリストア処理が開始されたことを知ることができる。
【００７６】
副ＣＰＵ６３はリストア処理の過程で、リストアの対象となっている退避データについて、リストアが終了する都度、内部スナップショットビットマップ３２０のフラグをＳ-ＶＯＬ変更ビットマップ５２０にコピーし、このフラグを内部スナップショットビットマップ３２０からクリアする。副ＣＰＵ６３は内部スナップショットビットマップ３２０の全フラグがクリアされた段階でリストアを終了する。図８に示す５２０ＡはＳ-ＶＯＬ変更ビットマップ５２０に登録された、リストアが終了したブロックに対応するフラグである、５２０Ｂはリストア期間中に副ホストシステム１１０からセカンダリボリューム７００にデータが書き込まれたブロックに対するフラグである。なお、このことは後に詳しく説明する。
【００７７】
副ＣＰＵ６３は、Ｓ-ＶＯＬ変更ビットマップ５２０を参照することによって、セカンダリボリュームに対して更新があったブロックを特定することができる。副ＣＰＵ６３は、リストアが行なわれている間、プライマリボリューム６００とセカンダリボリューム７００とのペア関係を解除するコマンドを受け付けない。
【００７８】
なお、セカンダリボリュームのペア状態を“ＳＳＷＳ”として説明したが、リストア期間中は、このペア状態が“ＳＳＷＳ（Ｒ）”としてテーブルに記録される。（Ｒ）はリストア中であることを示している。リストアが終了すると“ＳＳＷＳ（Ｒ）”が“ＳＳＷＳ”に変更される。ユーザは、クライアントコンピュータ又は管理装置の管理画面を観察して、セカンダリボリュームのペア状態が“ＳＳＷＳ（Ｒ）”が“ＳＳＷＳ”に変更したことによって、リストアが終了したことを知ることができる。
【００７９】
図８に示すように、S-VOL Takeoverコマンドに対する応答を受けたRAIDマネージャ１１２は、副ＣＰＵ６３に対して、正記憶制御装置２０と副記憶制御装置５０との役割を交換するコマンドである、“Swap Takeover” を発行する（Ｓ１９０）。
【００８０】
このコマンドを受けた副ＣＰＵ６３は、内部スナップショットビットマップ３２０をチェックして、フラグが残っていることを検出し、リストアが終了しておらず、正副をスワップすることができないと判定して、RAIDOマネージャ１１２に対して、エラー応答を返す（図９：Ｓ２００）。
【００８１】
図９に示すように、ユーザ１１０Ａは、RAIDマネージャ１１２の通知により、S-VOL Takeoverコマンドが開始されたこと、すなわち、既述のリストアが開始されたことを知ることができる。
【００８２】
図１０に示すように、副ＣＰＵ６３は内部スナップショットビットマップのフラグ３２０を全フラグがクリアされるまで繰り返しチェックし、全フラグがクリアされた段階で、リストアが終了したと判定することができる。副ＣＰＵ６３は、リストアが終了すると、セカンダリボリュームのステイタスを“ＳＳＷＳ（Ｒ）”から“ＳＳＷＳ”に変更する。ユーザは管理画面での表示から、セカンダリボリュームのステイタスが“ＳＳＷＳ（Ｒ）”から“ＳＳＷＳ”に変更されたことを知ることができる。
【００８３】
図１１に示すように、リストアが完了したら、ユーザ１１０ＡはRAIDマネージャ１１２に“pairresync-swapコマンド”Ｓ２１０を発行する。このコマンドは、プライマリボリューム６００をセカンダリボリューム７００に同期させるコマンド、即ち、セカンダリボリューム７００のデータイメージにプライマリボリューム６００のデータイメージを一致させるためのコマンドである。
【００８４】
図１２に示すように、このコマンドを受けたRAIDマネージャ１１２は、副ＣＰＵ６３に“Swap Takeoverコマンド”Ｓ２２０を再度発行する。このSwap Takeoverを受けた副ＣＰＵ６３は、正ＣＰＵ３３から内部スナップショットビットマップ３１０と転送ビットマップ５１０のビットパターンを得て、これらをS-VOL変更ビットマップ５２０にマージする。
【００８５】
内部スナップショットビットマップ３１０でフラグが立っている領域は、差分データを正ＣＰＵ３３によってセカンダリボリューム７００に転送している過程でプライマリボリューム６００に対して正ホストシステム１００からデータの更新があった領域であるから、システムを交換する際に、セカンダリボリューム７００の対応領域のデータをプライマリボリューム６００の対応領域にコピーする必要がある。
【００８６】
また、転送ビットマップ５１０においてフラグが設定されている領域は、差分データがセカンダリボリュームにまだ送られていないことを示すものであるから、セカンダリボリュームの対応領域からプライマリボリュームの対応領域にデータが転送される必要がある。
【００８７】
このように、内部スナップショットビットマップ３１０のビットパターンと転送ビットマップ５１０のビットパターンがS-VOL変更ビットマップ５２０にマージされる。副ＣＰＵ６３は、S-VOL変更ビットマップ５２０のビットパターンを参照することによって、プライマリボリューム６００へデータが転送されるべき、セカンダリボリューム７００の領域を知ることができる。
【００８８】
なお、このマージは、内部スナップショットビットマップ３１０と、転送ビットマップ５１０と、S-VOL変更ビットマップ５２０との互いに対応するビットの全てについて、フラグデータに関して論理和演算を適用することによって実現される。
【００８９】
図１３において、副ＣＰＵ６３はRAIDマネージャ１１２に“Swap-Takeoverコマンド”に対する応答Ｓ２３０を返す。RAIDマネージャ１１２はユーザ１１０ＡにSwap-Takeoverが開始されたことを通知する（Ｓ２４０）。
【００９０】
副ＣＰＵ６３はプライマリボリューム６００とセカンダリボリューム７００とを入れ替え、かつこれらのボリュームのペア情報を「ＣＯＰＹ」に設定する。副ＣＰＵ６３はS-VOL変更ビットマップ５２０に従って、フラグが立っているビットに対応する、プライマリボリューム７００の領域からデータを読み出し、このデータをセカンダリボリューム６００に転送する（Ｓ２４１）。
【００９１】
このデータはプライマリボリューム７００のセカンダリボリューム６００に対する差分に該当する。したがって、副ＣＰＵ６３はプライマリボリューム７００からこの差分に対応するデータだけをセカンダリボリューム６００に転送するだけで、待機系システムを稼動系システムに変更することができる。
【００９２】
図１４に示すように、プライマリボリューム７００からセカンダリボリューム６００にデータを転送している間での、副ホストシステム１１０から副記憶制御装置５０へライトコマンドが発行された場合は、データがプライマリボリューム７００にライトされる他、データの更新があった領域が副内部スナップショットビットマップ３２０にフラグの形で登録される。
【００９３】
副ＣＰＵ６３は、S-VOL変更ビットマップ５２０の各ビットを読み込んで、フラグが設定してあるブロックに対応するデータをプライマリボリューム７００からセカンダリボリューム６００にコピーする。副ＣＰＵ６３は、データを転送したブロックのフラグをクリアしていく。副ＣＰＵ６３はS-VOL変更ビットマップ５２０のフラグが設定されている全てのビットについてデータの転送を継続する。副ＣＰＵ６３はS-VOL変更ビットマップ５２０をチェックしてフラグが設定されていないことを確認して、プライマリボリュームからセカンダリボリュームへのデータ転送を終了させる。
【００９４】
次に、図１５に示すように、副ＣＰＵ６３がプライマリボリューム７００からセカンダリボリューム６００にデータの転送を終了させると、副ＣＰＵ６３はプライマリボリューム７００とセカンダリボリューム６００のペア情報を、非同期リモートコピーが行なわれる「ＰＡＩＲ」に変更する。さらに副ＣＰＵ６３は内部スナップショットビットマップ３２０におけるフラグが設定された差分ビットの情報を転送ビットマップ５２０にコピーする（Ｓ２４０）。
【００９５】
副ＣＰＵ６３はこの後内部スナップショットビットマップ３２０の、全差分ビットであるフラグをクリアして、副ホストシステム１１０を正ホストシステムに切り替え、正ホストシステム１００を副ホストシステムに切り替える。したがって、これにともない、符号２０が副記憶制御装置になり、符号５０が正記憶制御装置になる。
【００９６】
転送ビットマップ５２０は、S-VOL変更ビットマップは同一の制御情報であり、プライマリボリューム７００からセカンダリボリューム６００にデータをコピーした後内部スナップショットビットマップ３２０のデータの情報がコピーされた後は、プライマリボリュームになる前のセカンダリボリューム７００の更新位置を表すビットマップではなく、プライマリボリューム７００からセカンダリボリューム６００に差分データを転送すべき制御情報となったものである。
【００９７】
転送ビットマップ５２０にあるフラグ情報がプライマリボリューム７００のセカンダリボリューム６００に対する差分データが存在する、プライマリボリューム７００の論理アドレスを示すものである。以上によって、稼動系システムと待機系システムとが交換され、これによって、記憶制御装置５０がメインサイトを構成し、記憶制御装置２０がリモートサイトを構成する。
【００９８】
図５乃至図１６で説明した、非同期リモートコピーシステムにおけるスワップ機能の実現のための処理動作において、セカンダリボリュームにプールボリュームからデータをリストアしている最中に、副ホストシステムからライトコマンドがセカンダリボリュームに発行された場合の処理について補足して説明する。副ＣＰＵ６３が退避データのコピーが必要な、セカンダリボリュームのブロックにライトコマンド受領した場合の動作が図１７に示されている。
【００９９】
副ＣＰＵ６３は副ホストシステム１１０からライトコマンドを受領すると、ライトコマンドの対象となった、セカンダリボリューム７００のブロックに対応するビットについて、内部スナップショットビットマップ３２０にフラグが設定されているか否かをチェックする（図１７（１），（２））。
【０１００】
フラグが設定されている場合には、副ホストシステムからのライトデータをセカンダリボリューム７００に書き込む前に退避データをプールボリューム７２０からセカンダリボリューム７００にコピーする必要があるので、副ＣＰＵ６３は、このフラグがあるビットに対応する退避データをセカンダリボリュームにコピーし（図１７（３））、退避データをプールボリューム７２０から削除するとともに、S-VOL変更ビットマップ５２０の対応ビットにフラグをセットし、内部スナップショットビットマップの対応ビットからフラグをクリアする（図１７（４））。
【０１０１】
次いで、副ＣＰＵ６３は、ライトコマンドによるデータをセカンダリボリューム７００に書き込み、S-VOL変更ビットマップ５２０の対応ビットにフラグをセットする。この対応ビットには既にフラグが設定されているので、S-VOL変更ビットマップの状態に変化はない（図１７（５）））。
【０１０２】
一方、退避データのコピーが不要な、セカンダリボリューム７００のブロックに対して、副ＣＰＵ６３がライトコマンドを受領した場合の動作が図１８に示されている。副ＣＰＵ６３がセカンダリボリューム７００に対するライトコマンドを副ホストシステム１１０から受領すると、副ＣＰＵ６３はライトコマンドの対象ブロックにフラグがセットされているか否かについて内部スナップショットビットマップをチェックする（図１８（１），（２））。
【０１０３】
副ＣＰＵ６３はフラグがセットされていないと判定し、ライトデータをセカンダリボリューム７００の特定ブロックに書き込む。副ＣＰＵ６３はS-VOL変更ビットマップ５２０の対応ビットにフラグをセットする（図１８（３）。
【０１０４】
一方、退避データのコピーが済んだ、セカンダリボリュームのブロックに対して、副ＣＰＵ６３がライトコマンドを受領した場合の動作が図19に示されている。副ＣＰＵ６３がセカンダリボリューム７００に対するライトコマンドを副ホストシステム１１０から受領すると、副ＣＰＵ６３はライトコマンドの対象ブロックにフラグがセットされているか否かについて内部スナップショットビットマップ３２０をチェックする（図１９（１），（２））。
【０１０５】
副ＣＰＵ６３はフラグがセットされていないと判定し、ライトデータをセカンダリボリューム７００の特定ブロックに書き込む。副ＣＰＵ６３はS-VOL変更ビットマップ５２０の対応ビットにフラグをセットする（図１９（３））。但し、S-VOL変更ビットマップの対応ビットには既にフラグが退避データをセカンダリボリュームにコピーした段階でセットされているために、S-VOL変更ビットマップの状態には変化がない。
【０１０６】
既述の図９において、副ＣＰＵ６３はRAIDマネージャ１１２からのSwap Takeoverコマンドに対してエラーを応答し（Ｓ２０）、このエラー応答を契機として、ユーザ１１０ＡはリストアＳ１８０が終了するタイミングを把握して、“pairresync-swapコマンド”Ｓ２１０（図１１）を副ＣＰＵ６３に発行し、正副の記憶制御装置間でスワップ機能を実行できるようにした。これに代えて、副ＣＰＵ６３は、“Swap Takeoverコマンド”に対して、エラーを応答することなく、当該コマンドをリストアが終了するまで保留し、ユーザからの“pairresync-swapコマンド”の発行を待つことなく、スワップ機能が実行されるようにしても良い。
【０１０７】
また、“Swap Takeoverコマンド”に対してエラーを応答することなく、当該コマンドをリストアが終了するまで保留する場合、“Swap Takeoverコマンド”を受領したのがリストア完了前であっても、Swap Takeoverに対して正常に応答し、ペア状態が「ＳＳＷＳ」（実際には「ＳＳＷＳ（Ｒ）」）から「ＣＯＰＹ」（実際には「ＣＯＰＹ（Ｒ）」）に変更され、セカンダリボリュームはプライマリボリュームに、プライマリボリュームはセカンダリボリュームになる。
【図面の簡単な説明】
【０１０８】
【図１】本発明に係る非同期リモートコピーの実施形態を示すストレージシステムのハードウエアブロック図である。
【図２】各種マイクロプログラム及びボリューム管理テーブルの説明図である。
【図３】ボリューム管理テーブルの説明図である。
【図４】非同期リモートコピーにおけるスワップ機能を実現するためのハードウエア構成を示すブロック図である。
【図５】非同期リモートコピーにおけるスワップ機能を実現するための第１の段階を示すブロック図である。
【図６】非同期リモートコピーにおけるスワップ機能を実現する継続段階を示すブロック図である。
【図７】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図８】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図９】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１０】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１１】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１２】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１３】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１４】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１５】非同期リモートコピーにおけるスワップ機能を実現するためのさらに継続する段階を示すブロック図である。
【図１６】メインサイトの記憶制御装置における、内部スナップショットビットマップと転送ビットマップとに対する、ＣＰＵの制御の一例を示すブロック図である。
【図１７】セカンダリボリュームに対するプールボリュームへデータをリストアする過程で、副ホストシステムからセカンダリボリュームにライトアクセスがあった場合の、処理動作を示すブロック図である。
【図１８】図１７の第１の変形例である。
【図１９】その第２の変形例である。
【符号の説明】
【０１０９】
１０…ストレージシステム  ２０…正記憶制御装置  ５０…副記憶制御装置    ５１０，５２０…転送差分ビットマップテーブル  ６００…プライマリボリューム  ７００…セカンダリボリューム  ６１０，７１０…仮想ボリューム  ６２０，７２０…プールボリューム
【図１】
0005124183.tif 000002
【図２】
0005124183.tif 000003
【図３】
0005124183.tif 000004
【図４】
0005124183.tif 000005
【図５】
0005124183.tif 000006
【図６】
0005124183.tif 000007
【図７】
0005124183.tif 000008
【図８】
0005124183.tif 000009
【図９】
0005124183.tif 000010
【図１０】
0005124183.tif 000011
【図１１】
0005124183.tif 000012
【図１２】
0005124183.tif 000013
【図１３】
0005124183.tif 000014
【図１４】
0005124183.tif 000015
【図１５】
0005124183.tif 000016
【図１６】
0005124183.tif 000017
【図１７】
0005124183.tif 000018
【図１８】
0005124183.tif 000019
【図１９】
0005124183.tif 000020