(57)【特許請求の範囲】
【請求項１】
第１の制御装置と、第２の制御装置と、第３の制御装置とを有するストレージシステムであって、
前記第１の制御装置は、
第１の領域と第２の領域とを有する第１のバッファと、
ホスト装置から書き込みが要求されたデータを、第１の記録媒体に書き込むとともに前記第２の制御装置に送信し、前記ホスト装置に書き込み完了を通知する同期コピー処理と、前記第１の記録媒体に書き込まれたデータを前記第１の領域に格納し、前記第１の領域の空き領域が不足した場合に、バッファ切り替えを前記第２の制御装置に通知するとともに、その通知後に前記第１の記録媒体に書き込まれるデータの前記第１のバッファにおける格納先を前記第２の領域に切り替える格納処理と、前記第１の領域に格納された第１のデータをまとめて前記第３の制御装置に送信し、前記第２の領域に格納された第２のデータをまとめて前記第３の制御装置に送信する非同期コピー処理と、を実行する第１の制御部と、
を有し、
前記第２の制御装置は、
第３の領域と第４の領域とを有する第２のバッファと、
前記第１の制御部から送信された前記第１のデータを第２の記録媒体と前記第３の領域とに格納し、前記バッファ切り替えが通知されると、その通知後に前記第１の制御部から送信された前記第２のデータを前記第２の記録媒体と前記第４の領域とに格納する第２の制御部と、
を有し、
前記第３の制御装置は、
第５の領域と第６の領域とを有する第３のバッファと、
前記第１のデータを受信して前記第５の領域を介して第３の記録媒体に格納し、前記第２のデータを受信して前記第６の領域を介して前記第３の記録媒体に格納する第３の制御部と、
を有するストレージシステム。
【請求項２】
前記第２の制御部は、前記バッファ切り替えの通知後に前記第１の制御装置が停止すると、前記ホスト装置からの書き込み要求の受信処理を前記第１の制御部から引き継いで、書き込みが要求されたデータを前記第２の記録媒体と前記第４の領域とに格納するとともに、前記第３の領域に格納された前記第１のデータを前記第３の制御装置に送信し、
前記第３の制御部は、前記第２の制御部から送信された前記第１のデータを受信し、前記第５の領域を介して前記第３の記録媒体に格納する、
請求項１記載のストレージシステム。
【請求項３】
前記第２の制御部は、前記バッファ切り替えの通知後に前記第１の制御装置が停止すると、前記第１のデータのうち前記第３の制御装置が前記第１の制御装置から未受信のデータを、前記第３の領域から前記第３の制御装置に送信する、
請求項２記載のストレージシステム。
【請求項４】
前記第２の制御部は、前記ホスト装置から書き込みが要求されたデータの受信および前記第２の記録媒体と前記第４の領域とに対する格納と、前記第３の領域から前記第３の制御装置に対する前記未受信のデータの送信とを、並行して実行する、
請求項３記載のストレージシステム。
【請求項５】
前記第１の制御装置が動作中の状態において、前記第３の制御部は、前記第１の制御部から受信した前記第１のデータを前記第５の領域を介して前記第３の記録媒体に格納する処理が完了すると、バッファ解放を前記第１の制御装置と前記第２の制御装置とに通知するとともに、前記第５の領域を未使用領域に変更し、
前記第１の制御部は、前記バッファ解放の通知に応じて前記第１の領域を未使用領域に変更し、
前記第２の制御部は、前記バッファ解放の通知に応じて前記第３の領域を未使用領域に変更する、
請求項１乃至４のいずれか１項に記載のストレージシステム。
【請求項６】
前記第１のデータとして前記第１の領域と同容量のデータが前記第１の記録媒体に書き込まれた場合に、前記第１の領域の空き領域が不足したと判定される、
請求項１乃至５のいずれか１項に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関する。
【背景技術】
【０００２】
ストレージ装置に記録されたデータをバックアップのために他のストレージ装置にコピーするリモートコピーの方法として、同期コピーと非同期コピーとが知られている。同期コピーでは、コピー元装置は、ホスト装置から書き込みが要求されたデータを記憶するとともに、そのデータをコピー先装置にコピーし、コピーが完了した後にホスト装置に書き込みの完了を通知する。一方、非同期コピーでは、コピー元装置は、書き込みが要求されたデータを記憶した段階でホスト装置に対して書き込みの完了を通知し、これとは非同期のタイミングでデータをコピー先装置にコピーする。
【０００３】
同期コピーは、データを常に二重化できる反面、装置間の距離が長いほどＲＴＴ（Round-Trip Time）が増加して書き込みの応答性能が悪化するという特性を有する。このため、広範囲に及ぶ大規模な災害を想定してコピー先装置を遠距離に配置する用途には、非同期コピーが適している。
【０００４】
これに関連して、ストレージ装置を３拠点に配置し、第１のストレージ装置から第２のストレージ装置に対して同期コピーが行われ、第１のストレージ装置から第３のストレージ装置に対して非同期コピーが行われるシステムが提案されている。このシステムによれば、バックアップ拠点の増加によってデータロストの可能性を低減できるだけでなく、第１のストレージ装置でのホスト装置に対する応答性能に影響を与えずに、第３のストレージ装置を遠距離に配置できる。
【０００５】
また、非同期コピー技術の一例として、順序性が保証されたコピーが可能な次のような方法が提案されている。この方法では、コピー元装置は、第１の記録媒体のデータを第１の記録専用バッファに格納し、このバッファがフルになるとバッファ内のデータをまとめてコピー先装置に送信する。コピー先装置は、受信したデータを第２の記録専用バッファに格納し、データの受信を完了するとこのバッファ内のデータを第２の記録媒体に展開する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１２２５０９号公報
【特許文献２】特開２００６−２６０２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、上記のようにストレージ装置を３拠点に配置したシステムにおいて、第１のストレージ装置から第３のストレージ装置に対して、記録専用バッファを用いた上記方法を適用して順序性が保証された非同期コピーを行うことを考える。この構成によれば、第１のストレージ装置が障害などによって停止した場合、ホスト装置からの要求に応じたＩ／Ｏ（In/Out）処理を第２のストレージ装置が引き継ぐことができる。しかし、第１のストレージ装置が停止した時点では、第２のストレージ装置と第３のストレージ装置にそれぞれ記憶されたデータが等価になっていない可能性がある。非同期コピーを開始するためにこれらのデータを等価にしようすると、書き込みの順序性が失われる可能性がある。順序性を保証したままこれらのデータを等価にするためには、同期コピーのコピー先に、非同期コピーが未実行のデータについての順序性を保証するための何らかの仕組みを設ける必要がある。
【０００８】
１つの側面では、本発明は、非同期コピーが未実行のデータの順序性を保証可能なストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、第１の制御装置と、第２の制御装置と、第３の制御装置とを有するストレージシステムが提供される。このストレージシステムにおいて、第１の制御装置は、第１のバッファと第１の制御部とを有する。第１のバッファは、第１の領域と第２の領域とを有する。第１の制御部は、ホスト装置から書き込みが要求されたデータを、第１の記録媒体に書き込むとともに第２の制御装置に送信し、ホスト装置に書き込み完了を通知する同期コピー処理と、第１の記録媒体に書き込まれたデータを第１の領域に格納し、所定の条件が満たされると、バッファ切り替えを第２の制御装置に通知するとともに、その通知後に第１の記録媒体に書き込まれるデータの第１のバッファにおける格納先を第２の領域に切り替える格納処理と、第１の領域に格納された第１のデータをまとめて第３の制御装置に送信し、第２の領域に格納された第２のデータをまとめて第３の制御装置に送信する非同期コピー処理と、を実行する。また、第２の制御装置は、第２のバッファと第２の制御部とを有する。第２のバッファは、第３の領域と第４の領域とを有する。第２の制御部は、第１の制御部から送信された第１のデータを第２の記録媒体と第３の領域とに格納し、バッファ切り替えが通知されると、その通知後に第１の制御部から送信された第２のデータを第２の記録媒体と第４の領域とに格納する。また、第３の制御装置は、第３のバッファと第３の制御部とを有する。第３のバッファは、第５の領域と第６の領域とを有する。第３の制御部は、第１のデータを受信して第５の領域を介して第３の記録媒体に格納し、第２のデータを受信して第６の領域を介して第３の記録媒体に格納する。
【発明の効果】
【００１０】
１つの側面では、非同期コピーが未実行のデータの順序性を保証できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】順序性が保証された非同期コピー技術を説明するための参考図である。
【図５】各ＣＭが備える処理機能の構成例を示すブロック図である。
【図６】コピーセッションテーブルの構成例を示す図である。
【図７】バッファ部およびバッファセットテーブルの構成例を示す図である。
【図８】ストレージ装置がいずれも正常に動作している状態でのコピー処理例の概要を示す図（その１）である。
【図９】ストレージ装置がいずれも正常に動作している状態でのコピー処理例の概要を示す図（その２）である。
【図１０】ストレージ装置がいずれも正常に動作している状態でのコピー処理例の概要を示す図（その３）である。
【図１１】フェイルオーバしたときの処理例を示す図である。
【図１２】バッファ初期設定プロセスの処理手順の例を示すシーケンス図である。
【図１３】ライトＩ／Ｏプロセスの処理手順の例を示すシーケンス図である。
【図１４】バッファ格納プロセスの処理手順の例を示すシーケンス図である。
【図１５】切り替え・解放プロセスの処理手順の例を示すシーケンス図（その１）である。
【図１６】切り替え・解放プロセスの処理手順の例を示すシーケンス図（その２）である。
【図１７】フェイルオーバプロセスの処理手順の例を示すシーケンス図である。
【図１８】切り替え前世代についてのライトＩ／Ｏ再開プロセスの処理手順を示すシーケンス図である。
【図１９】切り替え前世代についての切り替え・解放プロセスの処理手順を示すシーケンス図である。
【図２０】切り替え済み世代についての再同期プロセスの処理手順を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、制御装置１０，２０，３０を有する。また、制御装置１０，２０のいずれかにはホスト装置１が接続可能である。
【００１３】
制御装置１０，２０，３０は、記録媒体１１，２１，３１をそれぞれ有する。なお、図１では例として、記録媒体１１，２１，３１はそれぞれ制御装置１０，２０，３０の内部に搭載されているが、それぞれ制御装置１０，２０，３０の外部に接続されていてもよい。
【００１４】
制御装置１０は、ホスト装置１からの要求に応じて記録媒体１１へのアクセスを制御する。また、制御装置１０は、記録媒体１１に書き込まれたデータを、バックアップのために制御装置２０，３０の記録媒体２１，３１にコピーする機能を備える。制御装置１０から制御装置２０へは同期コピーが実行され、制御装置１０から制御装置３０へは非同期コピーが実行される。
【００１５】
制御装置２０は、記録媒体１１に書き込まれたデータを制御装置１０から受信し、記録媒体２１に書き込む。また、制御装置２０は、障害の発生などによって制御装置１０の動作が停止すると、ホスト装置１からの書き込み要求に応じた処理を制御装置１０から引き継ぐ。すなわち、この状態では、制御装置２０は、ホスト装置１からの要求に応じて記録媒体２１へのアクセスを制御する。これとともに、制御装置２０は、記録媒体２１に書き込まれたデータを、非同期コピーによって制御装置３０の記録媒体３１にバックアップする。
【００１６】
制御装置３０は、制御装置１０または制御装置２０から送信されたデータを記録媒体３１に書き込む。
また、制御装置１０はさらに、バッファ１２と制御部１３を有する。バッファ１２は、例えば、制御装置１０が備えるＲＡＭ（Random Access Memory）に確保される。制御部１３は、例えば、制御装置１０が備えるプロセッサとして実現される。制御装置２０はさらに、バッファ２２と制御部２３を有する。バッファ２２は、例えば、制御装置２０が備えるＲＡＭに確保される。制御部２３は、例えば、制御装置２０が備えるプロセッサとして実現される。制御装置３０はさらに、バッファ３２と制御部３３を有する。バッファ３２は、例えば、制御装置３０が備えるＲＡＭに確保される。制御部３３は、例えば、制御装置３０が備えるプロセッサとして実現される。
【００１７】
バッファ１２には、記録媒体１１から制御装置３０に送信されるデータが一時的に格納される。バッファ２２には、記録媒体２１に書き込まれたデータが一時的に格納される。バッファ３２には、制御装置１０または制御装置２０から送信されたデータが一時的に格納される。これらのバッファ１２，２２，３２は、それぞれ複数の領域を有している。図１の例では、バッファ１２は領域１２ａ，１２ｂを有し、バッファ２２は領域２２ａ，２２ｂを有し、バッファ３２は領域３２ａ，３２ｂを有する。
【００１８】
制御部１３は、次に示す「同期コピー処理」、「格納処理」および「非同期コピー処理」を実行する。
同期コピー処理では、制御部１３は、ホスト装置１から書き込みが要求されたデータを、記録媒体１１に書き込むとともに制御装置２０に送信し、ホスト装置１に書き込み完了を通知する。
【００１９】
制御部２３は、制御部１３から送信されたデータを、記録媒体２１とバッファ２２の領域２２ａとに格納する。なお、領域２２ａへのデータの格納は、記録媒体２１への格納とは非同期のタイミングで実行されてもよい。すなわち、同期コピー処理により、少なくとも、記録媒体１１に格納されたデータと記録媒体２１に格納されたデータとは常に等価となる。
【００２０】
格納処理では、制御部１３は、記録媒体１１に書き込まれたデータをバッファ１２の領域１２ａに格納する。そして、制御部１３は、所定の条件が満たされると、バッファ切り替えを制御装置２０に通知するとともに、ホスト装置１から記録媒体１１に書き込まれるデータの格納先をバッファ１２の領域１２ａから領域１２ｂに切り替える。したがって、バッファ切り替えの通知後における格納処理では、記録媒体１１に書き込まれたデータが領域１２ｂに格納される。
【００２１】
制御部２３は、制御部１３からバッファ切り替えが通知されると、その通知後に制御部１３から送信されるデータを、記録媒体２１とバッファ２２の領域２２ｂとに格納する。すなわち、制御部２３は、バッファ切り替えが通知された後に記録媒体２１に書き込まれるデータの格納先を、領域２２ａから領域２２ｂに切り替える。
【００２２】
非同期コピー処理では、制御部１３は、領域１２ａに格納されたデータをまとめて制御装置３０に送信する。すなわち、制御部１３は、領域１２ａに対するデータの格納が完了した後、領域１２ａ内のデータを制御装置３０に送信する。また、制御部１３は、領域１２ｂに格納されたデータをまとめて制御装置３０に送信する。
【００２３】
制御部３３は、制御部１３から送信された領域１２ａのデータを受信し、受信したデータをバッファ３２の領域３２ａに一時的に格納した後、記録媒体３１に格納する。また、制御部３３は、制御部１３から送信された領域１２ｂのデータを受信し、受信したデータをバッファ３２の領域３２ｂに一時的に格納した後、記録媒体３１に格納する。
【００２４】
このような非同期コピーによれば、バッファの領域単位でデータがコピーされる。したがって、制御装置１０と制御装置３０との間では、ホスト装置１からの書き込みの順序性が保証された非同期コピーを実行できる。
【００２５】
一方、制御装置１０と制御装置２０との間の同期コピーでは、バッファ切り替えの通知により、バッファにおける使用領域の切り替えタイミングが同期される。これにより、制御装置１０から制御装置２０に対しても、バッファの領域単位でデータをコピーできるようになる。その結果、制御装置１０から制御装置３０への非同期コピーが未実行のデータについても、制御装置２０が保持するデータによって書き込みの順序性を保証できる。
【００２６】
このように制御装置１０から制御装置２０，３０の両方に対してバッファの領域単位でデータがコピーされることにより、障害などによって制御装置１０の動作が停止した場合に、制御装置２０と制御装置３０との間で順序性が保証された非同期コピーを実行できるようになる。
【００２７】
例えば、バッファ切り替えの通知後に制御装置１０が停止すると、制御装置２０は、ホスト装置１からの書き込み要求の受信処理を制御部１３から引き継ぐ。そして、制御装置２０は、ホスト装置１から書き込みが要求されたデータを、記録媒体２１とバッファ２２の領域２２ｂとに格納する。これとともに、制御装置２０は、領域２２ａに格納されたデータを制御装置３０に送信する。制御装置３０は、制御部２３から送信された領域２２ａのデータを受信し、領域３２ａを介して記録媒体３１に格納する。
【００２８】
このように、制御装置１０が停止した後、制御装置２０から制御装置３０に対してバッファの領域単位で非同期コピーが実行される。したがって、制御装置２０と制御装置３０との間で順序性が保証された非同期コピーを実行できる。
【００２９】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００，２００，３００およびホスト装置４００を含む。ホスト装置４００とストレージ装置１００，２００とは、例えば、ＳＡＮ（Storage Area Network）５１を介して接続されている。ストレージ装置１００とストレージ装置２００とは、例えば、専用の通信回線を介して接続され、ストレージ装置１００，２００とストレージ装置３００とは、例えば、ＷＡＮ（Wide Area Network）５２を介して接続されている。ストレージ装置１００とストレージ装置２００との距離と比較して、ストレージ装置３００は遠距離に配置されている。
【００３０】
ストレージ装置１００は、ＣＭ（Controller Module）１１０，１１０ａとＤＥ（Drive Enclosure）１２０，１２０ａを有する。ＤＥ１２０，１２０ａのそれぞれには、複数の記憶装置が搭載されている。それらの記憶装置は、例えばＨＤＤ（Hard Disk Drive）であり、その場合、ＤＥ１２０，１２０ａはディスクアレイ装置である。ＣＭ１１０は、ＤＥ１２０内の記憶装置に対するアクセスを制御する制御装置であり、ＣＭ１１０ａは、ＤＥ１２０ａ内の記憶装置に対するアクセスを制御する制御装置である。
【００３１】
同様に、ストレージ装置２００は、ＣＭ２１０，２１０ａとＤＥ２２０，２２０ａを有しており、ストレージ装置３００は、ＣＭ３１０，３１０ａとＤＥ３２０，３２０ａを有している。なお、図２のストレージシステムにおいては、ＣＭ１１０，１１０ａ，２１０，２１０ａ，３１０，３１０ａが相互に接続されている。
【００３２】
ＣＭ１１０は、ホスト装置４００からの要求に応じて、ＤＥ１２０内の記憶装置によって実現される論理ボリュームに対するアクセスを制御できるようになっている。同様に、ＣＭ１１０ａは、ホスト装置４００からの要求に応じて、ＤＥ１２０ａ内の記憶装置によって実現される論理ボリュームに対するアクセスを制御できるようになっている。ＣＭ１１０，１１０ａは、対応する論理ボリュームに対するアクセス時に利用するキャッシュをそれぞれが保持する分散キャッシュ方式でアクセス制御を行う。
【００３３】
ストレージ装置２００は、ストレージ装置１００が運用状態のとき、待機状態になっている。この状態では、ＣＭ２１０，２１０ａは、それぞれＣＭ１１０，１１０ａ内のキャッシュのデータを受信してバックアップする。ストレージ装置１００内のキャッシュのデータは、同期コピーによってストレージ装置２００にバックアップされる。そして、ストレージ装置１００に障害が発生したとき、ストレージ装置２００は待機状態から運用状態に遷移し（すなわちフェイルオーバし）、ホスト装置４００からの要求に応じた論理ボリュームへのアクセス制御を短時間で引き継ぐ。
【００３４】
ストレージ装置３００も、ストレージ装置１００が運用状態のとき、ストレージ装置１００内のキャッシュのデータを受信してバックアップする。具体的には、ＣＭ３１０，３１０ａは、それぞれＣＭ１１０，１１０ａ内のキャッシュのデータを受信してバックアップする。ただし、ストレージ装置１００内のキャッシュのデータは、非同期コピーによってストレージ装置２００にバックアップされる。そして、ストレージ装置１００に障害が発生したとき、ストレージ装置３００は，運用状態に遷移したストレージ装置２００内のキャッシュのデータをバックアップする。
【００３５】
このように、図２に示すストレージシステムでは、ストレージ装置１００，２００，３００が正常に動作しているとき、キャッシュのデータが三重にバックアップされ、これによってキャッシュのデータが失われるリスクが低減されている。また、遠隔地に配置されたストレージ装置３００に同期コピーによってデータをバックアップした場合、ＲＴＴが増大してホスト装置４００に対する応答速度が大きく低下してしまう。しかし、図２のストレージシステムによれば、ストレージ装置３００には非同期コピーによってデータがバックアップされるので、このような応答速度の低下を防止できる。換言すると、ホスト装置４００に対する応答性能を落とさずに、ストレージ装置３００を遠隔地に配置することができるので、影響が広範囲に及ぶ大きな災害が発生した場合にデータが失われるリスクを低減できる。
【００３６】
図３は、ＣＭのハードウェア構成例を示す図である。この図３では、ＣＭ１１０を例示する。
ＣＭ１１０は、プロセッサ１１１、ＲＡＭ１１２、ＳＳＤ（Solid State Drive）１１３、ＣＡ（Channel Adapter）１１４、ＤＩ（Drive Interface）１１５およびＲＡ（Remote Adapter）１１６，１１７を有する。これらの構成要素は、バス１１８を介して接続されている。
【００３７】
プロセッサ１１１は、ＣＭ１１０全体を統括的に制御する。プロセッサ１１１は、マルチプロセッサであってもよい。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３８】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＲＡＭ１１２には、プロセッサ１１１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１１２には、プロセッサ１１１による処理に必要な各種データが格納される。
【００３９】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の記憶装置が用いられてもよい。
【００４０】
ＣＡ１１４は、ホスト装置４００と通信するためのインタフェースである。ＤＩ１１５は、ＤＥ１２０と通信するためのインタフェースである。ＤＩ１１５は、例えば、ＳＡＳ（Serial Attached SCSI）インタフェースである。ＲＡ１１６は、ストレージ装置２００と通信するためのインタフェースであり、ＲＡ１１７は、ストレージ装置３００と通信するためのインタフェースである。
【００４１】
以上のハードウェア構成によってＣＭ１１０の処理機能が実現される。なお、ＣＭ１１０ａ，２１０，２１０ａ，３１０，３１０ａについても、図３と同様のハードウェア構成によって実現される。
【００４２】
ところで、前述のように、ストレージ装置１００のキャッシュに書き込まれたデータは、ストレージ装置２００，３００にリモートコピーされる。また、ストレージ装置１００とストレージ装置２００との間では同期コピーが行われ、ストレージ装置１００とストレージ装置３００との間では非同期コピーが行われる。特に、ストレージ装置１００とストレージ装置３００との間では、データ書き込みの順序性が保証された非同期コピーが行われる。
【００４３】
ここで、本実施の形態で利用される、順序性が保証された非同期コピー技術について、図４を用いて説明する。
図４は、順序性が保証された非同期コピー技術を説明するための参考図である。図４では例として、ホスト装置（図示せず）から送信されたライトデータをコピー元装置５００が受信し、そのライトデータが非同期コピーによってコピー先装置６００にバックアップされる構成とする。
【００４４】
コピー元装置５００はＣＭ５１０，５２０を有し、コピー先装置６００はＣＭ６１０，６２０を有する。ＣＭ５１０，５２０は、コピー元となる記録媒体５１１，５２１と、非同期コピーの際に利用されるバッファ５１２，５２２とをそれぞれ有する。ＣＭ６１０，６２０は、コピー先となる記録媒体６１１，６２１と、非同期コピーの際に利用されるバッファ６１２，６２２とをそれぞれ有する。バッファ５１２，５２２，６１２，６２２はそれぞれ、複数の分割領域に分割されている。
【００４５】
なお、図４において各分割領域に記載された数字は、各分割領域のＩＤを示す。以下の説明では、ＩＤが「ｘｘｘ」の分割領域を「分割領域（ｘｘｘ）」と表記する。
非同期コピー処理においては、バッファ５１２，５２２，６１２，６２２のそれぞれから分割領域が１つずつ選択され、選択された分割領域が、ホスト装置から同一期間に書き込まれたライトデータの格納に利用される。そこで、以下の説明では、各分割領域を「世代」という概念で識別する場合がある。図４の例では、分割領域（０００），（０１０），（１００），（１１０）が同一世代に属する。また、分割領域（００１），（０１１），（１０１），（１１１）が同一世代に属する。また、分割領域（００２），（０１２），（１０２），（１１２）が同一世代に属する。また、分割領域（００３），（０１３），（１０３），（１１３）が同一世代に属する。また、同一世代に属する分割領域の組み合わせを「バッファセット」と呼ぶ。
【００４６】
ＣＭ５１０は、ホスト装置からライト要求を受信すると、ホスト装置から送信されたライトデータを記録媒体５１１に書き込み（ステップＳ１１ａ）、ホスト装置にライト完了を通知する。ＣＭ５２０も同様に、ホスト装置から送信されたライトデータを所定の記録媒体５２１に書き込み（ステップＳ１１ｂ）、ホスト装置にライト完了を通知する。
【００４７】
ＣＭ５１０は、記録媒体５１１への書き込みとは非同期のタイミングで、記録媒体５１１に書き込まれたデータを分割領域（０００）に格納（コピー）する（ステップＳ１２ａ）。ＣＭ５２０も同様に、記録媒体５２２への書き込みとは非同期のタイミングで、記録媒体５２２に書き込まれたデータを分割領域（０１０）に格納（コピー）する（ステップＳ１２ｂ）。
【００４８】
その後、コピー元装置５００では、分割領域（０００），（０１０）の少なくとも一方の残容量がなくなるか、または一定時間が経過すると、バッファセットの切り替えが行われる。バッファセットの切り替えとは、ライトデータの格納先とする分割領域を切り替えることを指す。バッファセットの切り替え発生により、記録媒体５１１，５２１に書き込まれたデータの格納先は、次世代のバッファセットに属する分割領域（００１），（０１１）にそれぞれ切り替えられる。これとともに、前世代のバッファセットに属する分割領域（０００），（０１０）は、転送の対象となる。
【００４９】
ＣＭ５１０は、分割領域（０００）の残容量がなくなるか、または一定時間が経過すると、分割領域（０００）に格納されたデータをまとめてコピー先装置６００のＣＭ６１０に転送する（ステップＳ１３ａ）。ＣＭ５２０も同様に、分割領域（０１０）に格納されたデータをまとめてコピー先装置６００のＣＭ６２０に転送する（ステップＳ１３ｂ）。
【００５０】
ＣＭ６１０は、ＣＭ５１０から受信したデータを分割領域（１００）に一時的に格納し、すべてのデータを格納すると、分割領域（１００）に格納されたデータを記録媒体６１１に書き込む（ステップＳ１４ａ）。ＣＭ６２０も同様に、ＣＭ５２０から受信したデータを分割領域（１１０）に一時的に格納し、すべてのデータを格納すると、分割領域（１１０）に格納されたデータを記録媒体６２１に書き込む（ステップＳ１４ｂ）。以下、バッファ６１２，６２２から記録媒体６１１，６２１への書き込みを「展開」と呼ぶ。
【００５１】
分割領域（１００），（１１０）に格納されたデータの展開が完了すると、分割領域（０００），（０１０），（１００），（１１０）が属するバッファセットは未使用領域に戻される。このように分割領域が未使用領域に戻されることを「解放」と呼ぶ。
【００５２】
以上のように、コピー用のバッファを用い、バッファセット単位で装置間のデータ転送およびバッファから記録媒体へのデータの展開を行うことで、順序性が保証される。
ここで、図２を参照しながら説明を続ける。図２に示した本実施の形態に係るストレージシステムにおいても、ストレージ装置１００とストレージ装置３００との間では、基本的に図４に示した技術を用いて、順序性が保証された非同期コピーが行われる。また、ストレージ装置１００に障害が発生した場合には、ホスト装置４００からの要求に応じたアクセス制御をストレージ装置２００が引き継ぐ。このとき、ストレージ装置２００とストレージ装置３００との間で、順序性が保証された非同期コピーをできるだけ短時間に引き継ぐことが、このストレージシステムでの１つの課題となる。
【００５３】
ストレージ装置１００とストレージ装置２００との間では、同期コピーにより常に同じデータが保持された状態となる。一方、ストレージ装置１００とストレージ装置３００との間で非同期コピーによるデータの転送中にストレージ装置１００に障害が発生すると、ストレージ装置２００とストレージ装置３００との間ではデータが等価にならない。１つの方法として、ストレージ装置２００とストレージ装置３００との間でデータを等価にした後、ストレージ装置２００がホスト装置４００からの要求に応じたアクセス制御を再開する方法が考えられる。しかしこの場合、アクセス制御の再開までに時間がかかる。それに加えて、データを等価にする際に順序性が保証されるような制御が行われる必要がある。
【００５４】
このような問題に対して、本実施の形態では、ストレージ装置１００が運用状態のとき、ストレージ装置２００とストレージ装置３００との間で「デルタコピーセッション」と呼ぶ擬似的なコピーセッションが設定される。このデルタコピーセッションでは、フェイルオーバ後の非同期コピーで利用するためのバッファをストレージ装置２００にもあらかじめ設けておく。そして、バッファセットの切り替えや解放をストレージ装置１００とストレージ装置２００とで同期させることで、ストレージ装置２００のバッファの制御状態をストレージ装置１００のバッファと等価の状態に保つ。
【００５５】
これにより、フェイルオーバの直前にストレージ装置３００との間で実行中であった、非同期コピーに係るデータ転送を、フェイルオーバ後にストレージ装置２００が短時間で引き継ぐことを可能にする。これとともに、引き継いだデータ転送をバックグラウンドで実行しながら、ホスト装置４００からの要求に応じたアクセス制御をストレージ装置２００が短時間で引き継ぐことを可能にする。
【００５６】
図５は、各ＣＭが備える処理機能の構成例を示すブロック図である。
まず、ＣＭ１１０は、制御部１３０、キャッシュ１４０、バッファ部１５０および管理情報記憶部１６０を有する。制御部１３０の処理は、プロセッサ１１１が所定のプログラムを実行することで実現される。キャッシュ１４０およびバッファ部１５０は、ＲＡＭ１１２の記憶領域の一部によって実現される。管理情報記憶部１６０は、ＲＡＭ１１２またはＳＳＤ１１３の記憶領域の一部によって実現される。
【００５７】
制御部１３０は、ホスト装置４００からの要求に応じた論理ボリュームに対するアクセスを、キャッシュ１４０を用いて制御する。例えば、制御部１３０は、論理ボリュームに対するアクセスをライトスルー方式を用いて制御する。また、制御部１３０は、キャッシュ１４０に書き込んだデータのＣＭ２１０，３１０に対するコピー処理を実行する。
【００５８】
キャッシュ１４０には、ホスト装置４００からのアクセス対象の論理ボリュームに含まれる少なくとも一部のデータが、一時的に格納される。バッファ部１５０には、キャッシュ１４０からＣＭ２１０，３１０に転送されるデータが一時的に格納される。管理情報記憶部１６０には、コピー処理で参照される各種の情報が格納される。
【００５９】
なお、図示しないが、ＣＭ１１０ａもＣＭ１１０と同様の処理機能を備える。ただし、バッファの世代管理といったリモートコピー処理全体の制御に関しては、ＣＭ１１０はマスタとして動作し、ＣＭ１１０ａはスレーブとして動作する。
【００６０】
ＣＭ２１０は、制御部２３０、キャッシュ２４０、バッファ部２５０および管理情報記憶部２６０を有する。制御部２３０の処理は、ＣＭ２１０が備えるプロセッサが所定のプログラムを実行することで実現される。キャッシュ２４０およびバッファ部２５０は、ＣＭ２１０が備えるＲＡＭの記憶領域の一部によって実現される。管理情報記憶部２６０は、ＣＭが備えるＲＡＭまたはＳＳＤの記憶領域の一部によって実現される。
【００６１】
制御部２３０は、ストレージ装置１００が運用状態のとき、ＣＭ１１０から転送されるデータをキャッシュ２４０に格納する処理を実行する。このとき、制御部２３０は、キャッシュ２４０に格納したデータについてのインデックス情報を、データ照合のためにＣＭ３１０に送信する。また、障害発生によりストレージ装置１００が停止すると、制御部２３０は、論理ボリュームに対するアクセス制御をＣＭ１１０の制御部１３０から引き継ぐ。このとき、制御部２３０は、ホスト装置４００からの要求に応じた論理ボリュームに対するアクセスを、キャッシュ２４０を用いて制御する。これとともに、制御部２３０は、キャッシュ２４０のデータを非同期でＣＭ３１０にコピーする処理を実行する。
【００６２】
ストレージ装置１００が運用状態のとき、キャッシュ２４０には、ＣＭ１１０のキャッシュ１４０に格納されたデータに対応するコピーデータが格納される。また、バッファ部２５０には、ＣＭ１１０から転送されたデータが一時的に格納される。ストレージ装置２００が運用状態に遷移すると、キャッシュ２４０は論理ボリュームに対するアクセスのために利用され、バッファ部２５０には、キャッシュ２４０からＣＭ３１０に転送されるデータが一時的に格納される。
【００６３】
管理情報記憶部２６０には、コピー処理で参照される各種の情報が格納される。
なお、図示しないが、ＣＭ２１０ａもＣＭ２１０と同様の処理機能を備える。
ＣＭ３１０は、制御部３３０、キャッシュ３４０、バッファ部３５０および管理情報記憶部３６０を有する。制御部３３０の処理は、ＣＭ３１０が備えるプロセッサが所定のプログラムを実行することで実現される。キャッシュ３４０およびバッファ部３５０は、ＣＭ３１０が備えるＲＡＭの記憶領域の一部によって実現される。管理情報記憶部３６０は、ＣＭが備えるＲＡＭまたはＳＳＤの記憶領域の一部によって実現される。
【００６４】
制御部３３０は、ＣＭ１１０，２１０のうち運用状態のＣＭから転送されたデータを、キャッシュ３４０に格納する。キャッシュ３４０には、ＣＭ１１０のキャッシュ１４０またはＣＭ２１０のキャッシュ２４０に格納されたデータに対応するコピーデータが格納される。バッファ部３５０には、ＣＭ１１０またはＣＭ２１０から転送されたデータが一時的に格納される。管理情報記憶部３６０には、コピー処理、すなわち受信したデータをキャッシュ３４０に格納する処理において参照される各種の情報が格納される。
【００６５】
なお、図示しないが、ＣＭ３１０ａもＣＭ３１０と同様の処理機能を備える。
図６は、コピーセッションテーブルの構成例を示す図である。本実施の形態では、ストレージ装置１００が正常に運用されている状態において、ストレージ装置１００とストレージ装置２００との間では、同期コピーセッションが設定される。また、ストレージ装置１００とストレージ装置３００との間では、非同期コピーセッションが設定される。さらに、ストレージ装置２００とストレージ装置３００との間では、前述したデルタコピーセッションが設定される。
【００６６】
ＣＭ１１０の管理情報記憶部１６０には、ストレージ装置１００に設定されたコピーセッションの情報を保持するコピーセッションテーブル１６１が保持される。同様に、ＣＭ２１０の管理情報記憶部２６０には、ストレージ装置２００に設定されたコピーセッションの情報を保持するコピーセッションテーブル２６１が保持される。また、ＣＭ３１０の管理情報記憶部３６０には、ストレージ装置３００に設定されたコピーセッションの情報を保持するコピーセッションテーブル３６１が保持される。
【００６７】
コピーセッションテーブル１６１，２６１，３６１は、対象装置、セッション種別、自装置の種別およびデルタ関連情報の項目を有する。対象装置の項目には、コピーセッションが設定されたストレージ装置の識別情報が登録される。なお、図６において、装置「Ａ」，「Ｂ」，「Ｃ」は、それぞれストレージ装置１００，２００，３００を示す。セッション種別の項目には、コピーセッションの種別が登録される。自装置の種別の項目には、自装置がコピーセッションにおけるコピー元かコピー先かを示す情報が登録される。
【００６８】
デルタ関連情報の項目には、同期コピーセッションまたは非同期コピーセッションが設定された装置が、デルタコピーセッションにおけるコピー元とコピー先のどちらになっているかを示す情報が登録される。デルタコピーセッションでは、デルタコピーセッションが設定されたストレージ装置間だけでなく、もう１台のストレージ装置との間で行われる処理がある。同期コピーセッションまたは非同期コピーセッションが設定されたＣＭは、デルタ関連情報を参照することで、デルタコピーセッションに関係するどのような処理を実行すべきかを認識することができる。
【００６９】
なお、図示しないが、ＣＭ１１０ａの管理情報記憶部にも、コピーセッションテーブル１６１と同じ情報が登録されたコピーセッションテーブルが保持される。同様に、ＣＭ２１０ａの管理情報記憶部には、コピーセッションテーブル２６１と同じ情報が登録されたコピーセッションテーブルが保持される。また、ＣＭ３１０ａの管理情報記憶部には、コピーセッションテーブル３６１と同じ情報が登録されたコピーセッションテーブルが保持される。
【００７０】
図７は、バッファ部およびバッファセットテーブルの構成例を示す図である。
ＣＭ１１０のバッファ部１５０は、バッファ１５１とバッファインデックステーブル（ＢＩＴ）１５２を含む。同様に、ＣＭ２１０のバッファ部２５０は、バッファ２５１とバッファインデックステーブル２５２を含み、ＣＭ３１０のバッファ部３５０は、バッファ３５１とバッファインデックステーブル３５２を含む。
【００７１】
バッファ１５１には、ＣＭ１１０からＣＭ３１０に送信されるデータが一時的に格納される。バッファ２５１には、ＣＭ２１０がＣＭ１１０から受信したデータが一時的に格納される。また、フェイルオーバ後には、バッファ２５１には、ＣＭ２１０からＣＭ３１０に送信されるデータが一時的に格納される。バッファ３５１には、ＣＭ３１０がＣＭ１１０またはＣＭ２１０から受信したデータが一時的に格納される。バッファ１５１，２５１，３５１は、それぞれ同数の分割領域に分割されている。なお、各分割領域に記載された数字は、分割領域のＩＤを示す。
【００７２】
バッファインデックステーブル１５２には、バッファ１５１の各分割領域に格納されるデータのインデックスが登録される。インデックスは、データのアドレス情報を示し、具体的には論理ボリューム名、ＬＢＡ（Logical Block Address）およびサイズを含む。同様に、バッファインデックステーブル２５２には、バッファ２５１の各分割領域に格納されるデータのインデックスが登録され、バッファインデックステーブル３５２には、バッファ３５１の各分割領域に格納されるデータのインデックスが登録される。
【００７３】
なお、図示しないが、ＣＭ１１０ａ，２１０ａ，３１０ａのバッファ部も、バッファとインデックステーブルを含む。
ＣＭ１１０の管理情報記憶部１６０には、バッファセットテーブル１６２が保持される。バッファセットテーブル１６２には、非同期コピーセッションの処理において利用されるバッファセットを示す情報が登録される。バッファセットを示す情報は、コピー元の分割領域のＩＤとコピー先の分割領域のＩＤを含む。例えば図７では、コピー元が分割領域（００００）、コピー先が分割領域（２０００）の組み合わせと、コピー元が分割領域（０１００）、コピー先が分割領域（２１００）の組み合わせとが、同一世代のバッファセットとして登録されている。
【００７４】
ＣＭ２１０の管理情報記憶部２６０には、バッファセットテーブル２６２が保持される。バッファセットテーブル２６２には、デルタコピーセッションの処理において利用されるバッファセットを示す情報が登録される。例えば図７では、コピー元が分割領域（１０００）、コピー先が分割領域（２０００）の組み合わせと、コピー元が分割領域（１１００）、コピー先が分割領域（２１００）の組み合わせとが、同一世代のバッファセットとして登録されている。
【００７５】
バッファセットテーブル１６２とバッファセットテーブル２６２との間では、コピー先として同じＩＤの分割領域が登録されたバッファセットが登録されており、このようなバッファセットが同一世代のバッファセットとして利用される。このような情報登録方法によれば、ＣＭ１１０からＣＭ２１０に対してコピー先の分割領域のＩＤを送信することで、世代を通知できる。これにより、ＣＭ１１０とＣＭ２１０との間で世代（バッファセット）の切り替えや解放の処理を同期させることができる。
【００７６】
なお、ＣＭ１１０ａの管理情報記憶部にも、バッファセットテーブル１６２と同一の情報が登録されたバッファセットテーブルが保持される。また、ＣＭ２１０ａの管理情報記憶部にも、バッファセットテーブル２６２と同一の情報が登録されたバッファセットテーブルが保持される。
【００７７】
次に、図８〜図１０は、ストレージ装置がいずれも正常に動作している状態でのコピー処理例の概要を示す図である。
図８に示すように、初期状態では、ホスト装置４００は書き込み要求をストレージ装置１００に送信する。例えば、ＣＭ１１０は、ホスト装置４００から書き込みが要求されたライトデータを受信すると（ステップＳ２１ａ）、ライトデータをキャッシュ１４０に格納するとともに、ライトデータをＣＭ２１０に送信する（ステップＳ２１ｂ）。送信されたライトデータは、ＣＭ２１０のキャッシュ２４０に格納される。ＣＭ１１０は、キャッシュ１４０，２４０にライトデータが格納されると、書き込み完了通知をホスト装置４００に送信する。このようにしてＣＭ１１０とＣＭ２１０との間での同期コピーが実現される。なお、実際には、この時点でライトデータのインデックスがＣＭ１１０のバッファインデックステーブル１５２とＣＭ２１０のバッファインデックステーブル２５２とに登録される。
【００７８】
また、キャッシュ１４０，２４０へのライトデータの書き込みとは非同期のタイミングで、次のような処理が実行される。ＣＭ１１０は、非同期コピーセッションの処理として、ライトデータをインデックス情報に基づいてバッファ１５１の分割領域に格納する（ステップＳ２２ａ）。また、ＣＭ２１０は、デルタコピーセッションの処理として、ライトデータをインデックス情報に基づいてバッファ２５１の分割領域に格納する（ステップＳ２２ｂ）。図８の例では、分割領域（００００），（１０００）にライトデータが格納される。
【００７９】
上記手順により、ホスト装置４００から送信されたデータがキャッシュ１４０，２４０に書き込まれる。これにより、キャッシュ１４０，２４０に格納されたデータは常に等価となる。また、この書き込みと並列に、キャッシュ１４０に書き込まれたデータがバッファ１５１に格納されるとともに、キャッシュ２４０に書き込まれたデータがバッファ２５１に格納される。インデックスが分割領域に対応付けて記録されていることから、バッファセットの切り替えが発生するまでにキャッシュ１４０，２４０にそれぞれ格納されたデータは、それぞれ分割領域（００００），（１０００）に格納可能な状態となる。したがって、バッファ１５１，２５１に格納されるデータも実質的に常に等価となる。
【００８０】
なお、ホスト装置４００はＣＭ１１０ａに対しても書き込み要求を送信できる。この書き込み要求に応じて、ＣＭ１１０ａ，２１０ａは、それぞれＣＭ１１０，２１０と同様の処理を実行する。
【００８１】
この後、図９に示すように、ＣＭ１１０は、ホスト装置４００からデータの書き込み要求を受信したとき（ステップＳ３１ａ）に、分割領域（００００）に空き領域がなく、そのデータを格納できないと判定したとする。このとき、ＣＭ１１０は、ＣＭ２１０に対してバッファセットの切り替えを通知する（ステップＳ３１ｂ）。これにより、これ以後にキャッシュ１４０，２４０に書き込まれるデータの書き込み先となる分割領域が、ＣＭ１１０とＣＭ２１０とで同期して切り替えられる。換言すると、バッファセットの世代がＣＭ１１０とＣＭ２１０とで同期して切り替えられる。
【００８２】
すなわち、切り替え通知の後、キャッシュ１４０に書き込まれたライトデータはＣＭ２１０に送信されてキャッシュ２４０に格納され（ステップＳ３１ｃ）、格納が完了すると、ＣＭ１１０からホスト装置４００へ書き込み完了通知が送信される。そして、この後の非同期のタイミングで、ライトデータは、キャッシュ１４０，２４０から次世代のバッファセット、すなわち、分割領域（０００１），（１００１）にそれぞれ格納される（ステップＳ３２ａ，Ｓ３２ｂ）。
【００８３】
なお、バッファセットの切り替え通知は、ＣＭ１１０ａ，２１０ａにも通知される。これにより、ＣＭ１１０ａ，２１０ａでもデータの格納先の分割領域が切り替えられる。
一方、前世代のバッファセットのデータについては次のような処理が実行される。ＣＭ１１０は、非同期コピーセッションの処理として、切り替えの発生前までにキャッシュ１４０に書き込まれたすべてのデータが分割領域（００００）に格納されると、その分割領域内のデータをＣＭ３１０に転送する（ステップＳ３３ａ）。すなわち、ＣＭ１１０は、分割領域単位でデータをまとめてＣＭ３１０に転送する。このとき、ＣＭ１１０は、バッファ３５１における格納先の分割領域のＩＤ「２０００」をデータとともに転送する。ＣＭ３１０は、受信したデータをバッファ３５１の分割領域（２０００）に一時的に格納し、格納が完了すると、格納されたデータをキャッシュ３４０に書き込む（ステップＳ３３ｂ）。
【００８４】
また、ＣＭ２１０は、デルタコピーセッションの処理として、切り替えの発生前までにキャッシュ２４０に書き込まれたすべてのデータが分割領域（１０００）に格納されると、格納されたデータを示すインデックスをＣＭ３１０に転送する（ステップＳ３３ｃ）。すなわち、インデックスのみ転送され、格納されたデータの転送が抑止される点が、非同期コピーセッションとは異なるデルタコピーセッションの１つの特徴である。
【００８５】
ＣＭ３１０は、ＣＭ１１０から受信したデータとＣＭ２１０から受信したインデックスとを照合する。そして、ＣＭ３１０は、照合に成功すると、図１０に示すように、バッファセットの解放をＣＭ１１０，２１０に通知する（ステップＳ４１ａ，Ｓ４１ｂ）。ＣＭ１１０，２１０，３１０は、それぞれ分割領域（００００），（１０００），（２０００）を解放、すなわち未使用領域に戻す。
【００８６】
なお、ＣＭ３１０ａも同様に、分割領域からキャッシュへのデータ格納が完了し、かつ、インデックスを用いた照合に成功すると、バッファセットの解放をＣＭ１１０ａ，２１０ａに通知する。これにより、ＣＭ１１０ａ，２１０ａ，３１０ａでも同世代に属する分割領域が同期して解放される。
【００８７】
このように、本実施の形態のストレージシステムによれば、バッファセットの切り替えおよび解放のタイミングがストレージ装置１００，２００，３００の間で同期される。これにより、どのようなタイミングでストレージ装置１００の動作が停止した場合でも、ホスト装置４００から書き込みが要求されたデータが世代ごとに確実に保存される。そのため、ストレージ装置２００がフェイルオーバし、ストレージ装置２００からストレージ装置３００への非同期コピーセッションを、順序性を保証したまま再開することができる。
【００８８】
図１１は、フェイルオーバしたときの処理例を示す図である。この図１１を用いて、フェイルオーバしたときの処理の具体例を説明する。図１１では、図９のように分割領域（００００）から分割領域（２０００）へデータが転送されている途中で、ストレージ装置１００の動作が停止した場合の処理例を示す。
【００８９】
ストレージ装置１００の動作が停止すると、ホスト装置４００が備えるアクセス先制御機能により、ホスト装置４００からの書き込み要求先は、ストレージ装置１００からストレージ装置２００へ自動的に変更される。このとき、ホスト装置４００が備える業務サーバ機能が認識する論理的な書き込み先ボリュームが変更されることなく、物理的な書き込み先が変更される。
【００９０】
また、ストレージ装置２００は、ストレージ装置３００との間に設定されていたデルタコピーセッションを、非同期コピーセッションに変更する（ステップＳ５１）。そして、ＣＭ２１０は、現世代のデータ格納先として分割領域（１０００）が使用中であることを認識し、ホスト装置４００からの書き込み要求の受信を開始する。
【００９１】
ＣＭ２１０は、ホスト装置４００から受信したライトデータをキャッシュ２４０に書き込む（ステップＳ５２）とともに、そのライトデータのインデックスを分割領域（１００１）に対応付けてバッファインデックステーブル２５２に記録する。ＣＭ２１０は、インデックスの記録が完了すると、ホスト装置４００に書き込み完了通知を送信する。このようにして、ホスト装置４００からの要求に応じたアクセス制御がＣＭ１１０からＣＭ２１０に引き継がれる。さらに、ＣＭ２１０は、所定のタイミングで、キャッシュ２４０に書き込まれたデータを分割領域（１００１）に格納する（ステップＳ５３）。
【００９２】
一方、前世代、すなわち分割領域（１０００），（２０００）に関する処理としては、次のような処理が実行される。ストレージ装置１００の動作が停止した時点では、キャッシュ２４０から分割領域（１０００）へのデータ格納が完了しているものとすると、分割領域（１０００），（２０００）にそれぞれ格納されているデータには差分がある。ここで、ＣＭ２１０は、分割領域（１０００）に格納すべきすべてのデータのインデックスを保持している。このため、ＣＭ２１０は、ＣＭ３１０が保持している分割領域（２０００）に対応するインデックスと、ＣＭ２１０が保持している分割領域（１０００）とを比較して、分割領域（２０００）と分割領域（１０００）との差分データを判別できる。
【００９３】
ＣＭ２１０は、判別された差分データだけを分割領域（１０００）からＣＭ３１０の分割領域（２０００）に転送する（ステップＳ５４）。転送が完了し、かつ、分割領域（２０００）のデータがキャッシュ３４０に書き込まれると、分割領域（１０００），（２０００）は解放される。
【００９４】
このように、バッファ（００００）からバッファ（２０００）へのデータ転送が未完了であっても、バッファ（００００）と同一のデータがバッファ（１０００）に保持されている。このため、ＣＭ２１０は、バッファ（１０００）に保持されたデータを用いて未完了分のデータ転送を継続できる。この後、バッファ（１００１）へのデータ格納が完了すると、バッファ（１００１）のデータがバッファ（２００１）に転送されるが、バッファ（２０００）のデータがキャッシュ３４０に書き込まれる前にバッファ（２００１）のデータがキャッシュ３４０に書き込まれることはない。したがって、ＣＭ３１０は、ホスト装置４００からの書き込みの順序性を保証した状態のまま、キャッシュ３４０にデータを書き込むことができる。
【００９５】
また、上記のようなＣＭ２１０による差分データの判別や転送の処理は、ホスト装置４００からの書き込み要求に応じたキャッシュ２４０への書き込み制御と並行して実行できる。このため、ストレージ装置１００の動作が停止したとき、ＣＭ２１０は、ホスト装置４００からの要求に応じたアクセス制御を時間を空けずに引き継ぐとともに、そのバックグラウンドで、前世代のバッファセットに関する残りの処理を実行できる。なお、ＣＭ２１０ａとＣＭ３１０ａについても同様である。
【００９６】
次に、ストレージシステムの処理手順についてシーケンス図を用いて説明する。以下の説明では、主としてＣＭ１１０，２１０，３１０の処理について説明し、必要に応じてＣＭ１１０ａ，２１０ａ，３１０ａの処理についても補足して説明する。
【００９７】
まず、図１２〜図１６を用いて、ストレージ装置１００，２００，３００が正常に動作している場合の処理を説明する。
図１２は、バッファ初期設定プロセスの処理手順の例を示すシーケンス図である。
【００９８】
ＣＭ１１０の制御部１３０は、ＣＭ３１０に対してバッファ要求を送信する（ステップＳ１０１ａ）。ＣＭ２１０の制御部２３０も同様に、ＣＭ３１０に対してバッファ要求を送信する（ステップＳ１０１ｂ）。ＣＭ３１０の制御部３３０は、バッファ３５１の領域をＲＡＭ上に確保し、確保した領域の情報、具体的にはバッファ３５１内の各分割領域のＩＤをＣＭ１１０，２１０に通知する（ステップＳ１０２ａ，Ｓ１０２ｂ）。
【００９９】
なお、実際には、ＣＭ１１０ａ，２１０ａとＣＭ３１０ａとの間でも同様の処理が実行される。また、ＣＭ１１０ａは、ＣＭ３１０ａから通知されたバッファの情報と、ＣＭ１１０ａに確保したバッファの情報とをＣＭ１１０に通知する。同様に、ＣＭ２１０ａは、ＣＭ３１０ａから通知されたバッファの情報と、ＣＭ２１０ａに確保したバッファの情報とをＣＭ２１０に通知する。
【０１００】
これにより、ＣＭ１１０，２１０，３１０においてバッファセットが設定される。すなわち、ＣＭ１１０の制御部１３０は、バッファセットテーブル１６２を作成して、管理情報記憶部１６０に登録するとともに、ＣＭ１１０ａに通知する（ステップＳ１０３ａ）。また、ＣＭ２１０の制御部２３０は、バッファセットテーブル２６２を作成して、管理情報記憶部２６０に登録するとともに、ＣＭ２１０ａに通知する（ステップＳ１０３ｂ）。ＣＭ３１０の制御部３３０は、確保したバッファの情報を図示しない管理情報に登録する（ステップＳ１０３ｃ）。
【０１０１】
図１３は、ライトＩ／Ｏプロセスの処理手順の例を示すシーケンス図である。
ＣＭ１１０の制御部１３０は、現世代で使用するバッファセットを獲得する（ステップＳ１１１）。具体的には、制御部１３０は、バッファセットテーブル１６２から未使用のバッファセットを選択する。なお、図示しないが、制御部１３０は、獲得したバッファセットをＣＭ１１０ａに通知する。
【０１０２】
次に、制御部１３０は、獲得したバッファセットに含まれるコピー先の分割領域のＩＤを、ＣＭ２１０に通知する（ステップＳ１１２）。ＣＭ２１０の制御部２３０は、通知された分割領域のＩＤに基づいて、現世代で使用するバッファセットを獲得する（ステップＳ１１３）。具体的には、制御部２３０は、バッファセットテーブル２６２から、通知された分割領域がコピー先として登録されたバッファセットを選択する。なお、図示しないが、制御部２３０は、獲得したバッファセットをＣＭ２１０ａに通知する。制御部２３０は、バッファセット獲得の完了通知をＣＭ１１０に送信する（ステップＳ１１４）。
【０１０３】
以上の処理により、ストレージ装置１００とストレージ装置２００との間で、同じ世代に属する分割領域が対応付けられる。なお、ステップＳ１１２ではコピー先の分割領域のＩＤが通知されるが、他の例として、世代を識別する世代番号が通知されてもよい。
【０１０４】
上記手順により現世代のバッファセットが獲得されると、ホスト装置４００からの要求に応じたＩ／Ｏ処理が開始または再開される。制御部１３０は、ホスト装置４００からデータの書き込み要求を受信し、ライトデータを受信する（ステップＳ１１５）。すると、制御部１３０は、現世代のバッファセットにおけるコピー元の分割領域に、受信したライトデータを格納できるだけの空き領域があるかを判定する（ステップＳ１１６）。
【０１０５】
ステップＳ１１６で空き領域がないと判定された場合、図１５に示す切り替え・解放プロセスが開始され（ステップＳ１１７）、ライトＩ／Ｏプロセスは終了する。この場合、ＣＭ１１０ａ，２１０，２１０ａでのライトＩ／Ｏプロセスも終了する。
【０１０６】
一方、ステップＳ１１６で空き領域があると判定された場合、制御部１３０は、ライトデータについてのインデックスをバッファインデックステーブル１５２における現世代の分割領域に対応する領域に書き込む。これとともに、制御部１３０は、ライトデータをキャッシュ１４０に書き込む（ステップＳ１１８）。そして、制御部１３０は、ライトデータをＣＭ２１０に送信する（ステップＳ１１９）。このとき、バッファセットにおけるコピー先の分割領域のＩＤが、ライトデータに付加されて送信される。なお、コピー先の分割領域のＩＤの代わりに世代番号が付加されてもよい。
【０１０７】
制御部２３０は、受信したライトデータについてのインデックスを、バッファインデックステーブル２５２における現世代の分割領域、すなわちライトデータに付加されたＩＤの分割領域に対応する領域に書き込む。これとともに、制御部２３０は、ライトデータをキャッシュ２４０に書き込む（ステップＳ１２０）。制御部２３０は、インデックスおよびライトデータの書き込みが完了すると、ＣＭ１１０に完了通知を送信する（ステップＳ１２１）。制御部１３０は、完了通知を受信すると、ホスト装置４００に書き込みが完了したことを示す応答を送信する（ステップＳ１２２）。
【０１０８】
以上のステップＳ１１５〜Ｓ１２２の処理は、一定時間が経過するまで繰り返し実行される。また、一定時間が経過した場合には、ステップＳ１１７と同様に切り替え・解放プロセスが開始され、ライトＩ／Ｏプロセスは終了する。
【０１０９】
図１４は、バッファ格納プロセスの処理手順の例を示すシーケンス図である。図１４に示すバッファ格納プロセスは、図１３に示したライトＩ／Ｏプロセスが開始された後の任意のタイミングで、ライトＩ／Ｏプロセスと並行して実行される。
【０１１０】
ＣＭ１１０の制御部１３０は、ライトＩ／Ｏプロセスにおいてホスト装置４００からの１回目の書き込み要求に対して応答した後（すなわち、図１３のステップＳ１２２が１回目に実行された後）の任意のタイミングで、以下の処理を実行する。制御部１３０は、バッファインデックステーブル１５２に登録された現世代のバッファセットに対応するインデックスに基づいて、キャッシュ１４０に書き込まれたデータをバッファ１５１における現世代のバッファセットに属する分割領域に格納する（ステップＳ１３１ａ）。なお、現世代のバッファセットとは、図１３のステップＳ１１１で獲得されたバッファセットである。制御部１３０は、該当するインデックスに対応するすべてのデータをバッファ１５１に格納したかを判定し（ステップＳ１３２ａ）、未格納のデータがある場合はステップＳ１３１ａを再度実行し、すべてのデータの格納が完了すると処理を終了する。なお、ＣＭ１１０ａの制御部も上記と同様の処理を実行する。
【０１１１】
一方、ＣＭ２１０の制御部２３０は、ライトＩ／ＯプロセスにおいてＣＭ１１０から受信した最初のデータをキャッシュ２４０に格納した後（すなわち、図１３のステップＳ１２０が１回目に実行された後）の任意のタイミングで、以下の処理を実行する。制御部２３０は、バッファインデックステーブル２５２に登録された現世代のバッファセットに対応するインデックスに基づいて、キャッシュ２４０に書き込まれたデータをバッファ２５１における現世代のバッファセットに属する分割領域に格納する（ステップＳ１３１ｂ）。なお、現世代のバッファセットとは、図１３のステップＳ１１３で獲得されたバッファセットである。制御部２３０は、該当するインデックスに対応するすべてのデータをバッファ２５１に格納したかを判定し（ステップＳ１３２ｂ）、未格納のデータがある場合はステップＳ１３１ｂを再度実行し、すべてのデータの格納が完了すると処理を終了する。なお、ＣＭ２１０ａの制御部も上記と同様の処理を実行する。
【０１１２】
図１５、図１６は、切り替え・解放プロセスの処理手順の例を示すシーケンス図である。図１３に示したライトＩ／Ｏプロセスにおいてバッファセットの切り替え条件が満たされると、以下の切り替え・解放プロセスが開始される。切り替え条件が満たされる場合とは、図１３のステップＳ１１６で空き領域がないと判定された場合か、または、図１３の処理開始から一定時間が経過した場合である。
【０１１３】
ＣＭ１１０の制御部１３０は、ＣＭ２１０に対してバッファセットの切り替えを通知する（ステップＳ１４１）。このとき、制御部１３０は、ＣＭ１１０ａ，２１０ａに対してもバッファセットの切り替えを通知する。これにより、ＣＭ１１０，１１０ａ，２１０，２１０ａにおいて、次世代のバッファセットを用いて図１３のライトＩ／Ｏプロセスが開始される（ステップＳ１４２）。
【０１１４】
次に、制御部１３０は、図１４のステップＳ１３１ａにおけるバッファ１５１へのデータ格納処理が完了したかを判定し（ステップＳ１４３ａ）、完了していない場合にはデータ格納処理の完了を待ち合わせる。そして、データ格納処理が完了すると、制御部１３０は、バッファ１５１における現世代のバッファセットに対応する分割領域に格納されたデータを、ＣＭ３１０に送信する（ステップＳ１４４ａ）。このとき、制御部１３０は、データの格納先とする分割領域のＩＤ（現世代のバッファセットにおけるコピー先の分割領域のＩＤ）を、データに付加して送信する。ＣＭ３１０の制御部３３０は、データを受信し、バッファ３５１の分割領域のうち、データに付加されたＩＤが示す分割領域に、受信したデータを格納する（ステップＳ１４４ｂ）。
【０１１５】
一方、ＣＭ２１０の制御部２３０は、図１４のステップＳ１３１ｂにおけるバッファ２５１へのデータ格納処理が完了したかを判定し（ステップＳ１４３ｂ）、完了していない場合にはデータ格納処理の完了を待ち合わせる。そして、データ格納処理が完了すると、制御部２３０は、バッファインデックステーブル２５２に登録された現世代のバッファセットに対応するインデックスを、ＣＭ３１０に送信する（ステップＳ１４５ａ）。ＣＭ３１０の制御部３３０は、ＣＭ２１０からのインデックスを受信し、例えばＲＡＭに一時的に格納する（ステップＳ１４５ｂ）。
【０１１６】
制御部３３０は、ステップＳ１４５ｂで受信したインデックスを用いてデータの照合を行う（ステップＳ１４６）。具体的には、制御部３３０は、受信したすべてのインデックスに対応するデータを、ステップＳ１４４ｂで受信できたかを判定する。受信できたと判定されると、制御部３３０は、ステップＳ１４４ｂでバッファ３５１の分割領域に格納されたデータを、キャッシュ３４０に展開する（ステップＳ１４７）。
【０１１７】
このようにステップＳ１４６の照合を行うことにより、ＣＭ２１０が保持するデータとＣＭ３１０が保持するデータとを確実に等価にすることができ、ストレージシステムにおけるコピー処理の信頼性を向上させることができる。なお、ステップＳ１４６で照合に失敗した場合には、例えば、差分データがＣＭ２１０からＣＭ３１０に転送される。
【０１１８】
ステップＳ１４７の展開が完了すると、制御部３３０は、バッファセットの解放をＣＭ１１０，２１０に通知する（ステップＳ１４８ａ，Ｓ１４８ｂ）。制御部１３０，２３０，３３０は、現世代のバッファセットに属する分割領域を解放する（ステップＳ１４９ａ，Ｓ１４９ｂ，Ｓ１４９ｃ）。制御部２３０は、解放が完了すると、解放の完了をＣＭ１１０に通知する（ステップＳ１５０ａ）。また、制御部３３０は、解放が完了すると、解放の完了をＣＭ１１０に通知する（ステップＳ１５０ｂ）。
【０１１９】
なお、図１５、図１６におけるステップＳ１４３ａ，Ｓ１４３ｂ以後の処理は、ＣＭ１１０ａ，２１０ａ，３１０ａでも実行される。ただし、ステップＳ１４９ａ〜Ｓ１４９ｃの解放が完了すると、解放の完了がＣＭ１１０に通知される。
【０１２０】
次に、図１７〜図２０を用いて、障害などによってストレージ装置１００の動作が停止した場合の処理について説明する。
図１７は、フェイルオーバプロセスの処理手順の例を示すシーケンス図である。
【０１２１】
ＣＭ２１０の制御部２３０は、ストレージ装置１００が停止したことを検知すると（ステップＳ１６１）、有効なバッファセットの世代を確認する（ステップＳ１６２）。有効なバッファセットとは、解放されていない使用中のバッファセットを指す。また、制御部２３０は、ＣＭ３１０に対してデルタコピーセッションのサスペンドを通知する（ステップＳ１６３）。さらに、制御部２３０は、ＣＭ３１０に対してデルタコピーセッションの動作モードを非同期モードに変更することを通知する（ステップＳ１６４）。なお、ステップＳ１６３，Ｓ１６４の通知は、ＣＭ２１０ａ，３１０ａに対しても行われる。
【０１２２】
これにより、ＣＭ２１０の制御部２３０およびＣＭ３１０の制御部３３０は、デルタコピーセッションの動作モードを非同期コピーモードに変更する（ステップＳ１６５ａ，Ｓ１６５ｂ）。非同期コピーモードでは、ＣＭ２１０とＣＭ３１０との間で非同期コピーセッションと同様のコピー処理が行われる。ＣＭ２１０ａ，３１０ａでも同様に、デルタコピーセッションの動作モードが非同期コピーモードに変更される。
【０１２３】
この後、ＣＭ２１０，２１０ａ，３１０，３１０ａでは、有効なバッファセットの世代のそれぞれについての処理が開始される（ステップＳ１６６）。有効なバッファセットの世代には、そのバッファセットの使用が開始されてからバッファセットの切り替えが行われていない「切り替え前世代」と、バッファセットの切り替えが行われた「切り替え済み世代」とがある。切り替え前世代については図１８の処理が開始され、切り替え済み世代については図２０の処理が開始される。
【０１２４】
図１８は、切り替え前世代についてのライトＩ／Ｏ再開プロセスの処理手順を示すシーケンス図である。切り替え前世代では、対応する分割領域が満たされる量のデータの書き込みがホスト装置４００から要求される前に、ストレージ装置１００が停止している。このため、ＣＭ２１０は、次のようなライトＩ／Ｏプロセスによって、ホスト装置４００からの要求に応じた書き込み制御をＣＭ１１０から引き継ぐ。
【０１２５】
ライトＩ／Ｏプロセスでは、まず、ＣＭ２１０の制御部２３０は、ＣＭ１１０から受信してキャッシュ２４０に書き込み済みのデータの中に、バッファ２５１の分割領域に格納済みのデータがあるかを判定する（ステップＳ１７１）。キャッシュ２４０に書き込み済みのデータとは、バッファインデックステーブル２５２に登録された該当世代（切り替え前世代）についてのインデックスに対応するデータである。また、格納済みのデータがある場合とは、キャッシュ２４０から分割領域への格納処理がすでに開始されている場合である。
【０１２６】
格納済みのデータがある場合、制御部２３０は、キャッシュ２４０に書き込み済みのデータを分割領域に格納する、図１８の右側に示すバッファ格納プロセスを、ライトＩ／Ｏプロセスと並行して即座に開始する（ステップＳ１７２）。一方、格納済みのデータがない場合、制御部２３０は、任意のタイミングでバッファ格納プロセスを開始する。
【０１２７】
次に、制御部２３０は、ホスト装置４００からの書き込み要求の送信先がストレージ装置２００に変更されると、ホスト装置４００からの書き込み要求の受信を開始する。すなわち、制御部２３０は、ホスト装置４００からデータの書き込み要求を受信し、ライトデータを受信する（ステップＳ１７３）。制御部２３０は、ライトデータについてのインデックスをバッファインデックステーブル２５２における該当世代の分割領域に対応する領域に書き込む。これとともに、制御部２３０は、ライトデータをキャッシュ２４０に書き込む（ステップＳ１７４）。そして、制御部２３０は、ホスト装置４００に書き込みが完了したことを示す応答を送信する（ステップＳ１７５）。
【０１２８】
ステップＳ１７３〜Ｓ１７５の処理は、バッファセットの切り替え条件が満たされるまで繰り返される。切り替え条件が満たされる場合とは、該当世代の分割領域の残容量がなくなる場合か、または一定時間が経過した場合である。
【０１２９】
一方、バッファ格納プロセスでは、制御部２３０は、バッファインデックステーブル２５２に登録された該当世代のバッファセットに対応するインデックスに基づいて、キャッシュ１４０に書き込まれたデータをバッファ２５１における該当世代の分割領域に格納する（ステップＳ１８１）。制御部２３０は、該当するインデックスに対応するすべてのデータを分割領域に格納したかを判定し（ステップＳ１８２）、未格納のデータがある場合はステップＳ１８１を再度実行し、すべてのデータの格納が完了すると処理を終了する。
【０１３０】
図１９は、切り替え前世代についての切り替え・解放プロセスの処理手順を示すシーケンス図である。
ＣＭ２１０の制御部２３０は、図１８のライトＩ／Ｏ再開プロセスの実行中にバッファセットの切り替え条件が満たされたかを監視する（ステップＳ１９１）。そして、切り替え条件が満たされると、制御部２３０は、バッファセットの切り替え処理を実行する（ステップＳ１９２）。具体的には、制御部２３０は、ＣＭ２１０ａにバッファセットの切り替えを通知し、新たなバッファセットを用いたライトＩ／Ｏプロセスを開始する。これにより、図１９の処理と並行して、ＣＭ２１０，２１０ａでそれぞれ新たなバッファセットが獲得され、獲得されたバッファセットを用いて図１８のステップＳ１７３〜Ｓ１７５の処理が実行される。
【０１３１】
次に、制御部２３０は、図１８のステップＳ１８１におけるバッファ２５１へのデータ格納処理が完了したかを判定し（ステップＳ１９３）、完了していない場合にはデータ格納処理の完了を待ち合わせる。そして、データ格納処理が完了すると、制御部２３０は、バッファ２５１における該当世代のバッファセットに対応する分割領域に格納されたデータを、ＣＭ３１０に送信する（ステップＳ１９４ａ）。このとき、制御部２３０は、データの格納先とする分割領域のＩＤを、データに付加して送信する。
【０１３２】
ＣＭ３１０の制御部３３０は、データを受信し、バッファ３５１の分割領域のうち、データに付加されたＩＤが示す分割領域に、受信したデータを格納する（ステップＳ１９４ｂ）。そして、制御部３３０は、分割領域へのデータの格納が完了すると、分割領域のデータをキャッシュ３４０に展開する（ステップＳ１９５）。
【０１３３】
展開が完了すると、制御部３３０は、バッファセットの解放をＣＭ２１０に通知する（ステップＳ１９６）。制御部２３０，３３０は、該当世代のバッファセットに属する分割領域を解放する（ステップＳ１９７ａ，１９７ｂ）。制御部３３０は、解放が完了すると、解放の完了をＣＭ２１０に通知する（ステップＳ１９８）。これにより、該当世代についてのコピー処理が完了する。
【０１３４】
以上の図１８、図１９の処理により、ホスト装置４００からの要求に応じたアクセス制御をＣＭ２１０が短時間で引き継ぐことができる。これとともに、ＣＭ２１０は、引き継ぎ直前に獲得されていた最新世代のバッファセットを用いて非同期コピーを実行することができる。
【０１３５】
図２０は、切り替え済み世代についての再同期プロセスの処理手順を示すシーケンス図である。
ＣＭ２１０のキャッシュ２４０には、動作を停止したＣＭ１１０のキャッシュ１４０と同じデータが書き込まれている。また、ＣＭ２１０のバッファインデックステーブル２５２には、該当する分割領域に格納すべきデータのインデックスが記録されている。そこで、ＣＭ２１０の制御部２３０は、このインデックスに基づいて、キャッシュ２４０から該当する分割領域に対するデータの格納が完了しているかを判定する（ステップＳ２０１）。完了していない場合、制御部２３０は、インデックスに基づいて、キャッシュ２４０から該当する分割領域に対してデータを格納する（ステップＳ２０２）。一方、完了している場合にはステップＳ２０２の処理はスキップされる。
【０１３６】
次に、制御部２３０は、該当世代のバッファセットに属するコピー先の分割領域のＩＤを指定して、この分割領域に対応するインデックスの送信をＣＭ３１０に要求する。ＣＭ３１０の制御部３３０は、指定された分割領域に対応するインデックスをバッファインデックステーブル３５２から読み出し、ＣＭ２１０に送信する（ステップＳ２０３）。
【０１３７】
制御部２３０は、ステップＳ２０１で参照したインデックスと、ＣＭ３１０から受信したインデックスとを比較する。制御部２３０は、その比較結果に基づいて、ＣＭ２１０の該当する分割領域に格納されているデータとＣＭ３１０の該当する分割領域に格納されているデータとの差分データを判別する。制御部２３０は、差分データを分割領域から読み出し、格納先の分割領域のＩＤとともにＣＭ３１０に送信する（ステップＳ２０４ａ）。制御部３３０は、差分データを受信して、該当する分割領域に格納する（ステップＳ２０４ｂ）。これにより、該当世代のバッファセットに属するコピー元の分割領域とコピー先の分割領域とが等価になる。
【０１３８】
差分データの格納が完了すると、制御部３３０は、分割領域に格納されているすべてのデータをキャッシュ３４０に展開する（ステップＳ２０５）。展開が完了すると、制御部３３０は、バッファセットの解放をＣＭ２１０に通知する（ステップＳ２０６）。そして、制御部２３０，３３０は、該当世代のバッファセットに属する分割領域を解放する（ステップＳ２０７ａ，Ｓ２０７ｂ）。制御部３３０は、解放が完了すると、解放の完了をＣＭ２１０に通知する（ステップＳ２０８）。
【０１３９】
なお、以上の図２０の処理は、ＣＭ２１０ａ，３１０ａでも実行される。ただし、ステップＳ２０７ａ，Ｓ２０７ｂの解放が完了すると、解放の完了がＣＭ２１０に通知される。
【０１４０】
以上の処理では、図１８、図１９の処理と、図２０の処理のそれぞれにおいて、バッファセット単位でＣＭ２１０からＣＭ３１０へのデータ転送が行われる。これにより、フェイルオーバ後も順序性が保証された非同期コピーを実行できる。
【０１４１】
また、図１８、図１９の処理と図２０の処理とは並行して実行される。これにより、例えば、図１８のステップＳ１７３〜Ｓ１７５におけるホスト装置４００からの要求に応じたアクセス制御処理を開始したとき、そのバックグラウンドで、図２０における異なる世代についてのデータコピー処理を実行できる。したがって、順序性を保った状態でデータをストレージ装置３００にバックアップできるだけでなく、ホスト装置４００からの要求に応じたアクセス制御をストレージ装置２００が短時間で引き継ぐことができる。
【０１４２】
なお、上記の各実施の形態に示した装置（例えば、制御装置１０，２０，３０、ＣＭ１１０，１１０ａ，２１０，２１０ａ，３１０，３１０ａ）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【０１４５】
１  ホスト装置
１０，２０，３０  制御装置
１１，２１，３１  記録媒体
１２，２２，３２  バッファ
１２ａ，１２ｂ，２２ａ，２２ｂ，３２ａ，３２ｂ  領域
１３，２３，３３  制御部
【図１】
0006708923.tif 000002
【図２】
0006708923.tif 000003
【図３】
0006708923.tif 000004
【図４】
0006708923.tif 000005
【図５】
0006708923.tif 000006
【図６】
0006708923.tif 000007
【図７】
0006708923.tif 000008
【図８】
0006708923.tif 000009
【図９】
0006708923.tif 000010
【図１０】
0006708923.tif 000011
【図１１】
0006708923.tif 000012
【図１２】
0006708923.tif 000013
【図１３】
0006708923.tif 000014
【図１４】
0006708923.tif 000015
【図１５】
0006708923.tif 000016
【図１６】
0006708923.tif 000017
【図１７】
0006708923.tif 000018
【図１８】
0006708923.tif 000019
【図１９】
0006708923.tif 000020
【図２０】
0006708923.tif 000021