(57)【要約】【課題】本発明は、主に３サイト以上のＮサイトに配置した記憶制御装置間のリモートコピーにおいて、任意サイトの被災後、速やかに残サイト間のリモートコピー構成を自動的に再構成し、リモートコピーを再開することを目的とする。【解決手段】リモートコピー対象ボリューム毎に、オリジナルボリュームＶ１が同じ他の記憶装置システム２のリモートコピー対象ボリュームの情報を予め登録しておく。コピー元記憶装置システム２の障害発生時、障害を発生した記憶装置システム２をコピー元とするリモートコピー対象ボリュームのコピー元ボリュームを、新たに登録済みのコピー元ボリュームから選択し、リモートコピーを再開する。【選択図】図１
2004348174.tif 000002
【特許請求の範囲】
【請求項１】
第一の記憶装置システムと第二の記憶装置システムに接続され、記憶制御装置と記憶装置を有する記憶装置システムにおいて、
前記記憶制御装置は、データを管理する情報を格納する管理情報メモリを備え、
前記管理情報メモリは、前記第二の記憶装置システムの情報を備え、
前記記憶制御装置は、前記第一の記憶装置システムからデータを受信し、
前記第一の記憶装置システムからデータを受信できなくなった場合、前記第二の記憶装置システムの情報を用いて、前記第二の記憶装置システムからデータを受信するように処理する、記憶装置システム。
【請求項２】
前記記憶制御装置は、前記管理情報メモリに予め登録されている記憶装置システムの中から、前記第二の記憶装置システムを選択する、請求項１記載の記憶装置システム。
【請求項３】
前記管理情報メモリは、記憶装置システムの優先度を示す情報を備え、
前記記憶制御装置は、前記優先度に応じて、前記記憶装置システムを選択する、請求項２記載の記憶装置システム。
【請求項４】
前記管理情報メモリは、データの優先度を示す情報を備え、
前記記憶制御装置は、データの優先度に応じて、前記データを転送するか否かを判断する、請求項２記載の記憶装置システム。
【請求項５】
前記第一の記憶装置システムからデータを受信できる状態になった場合、前記第一の記憶装置システムからデータを受信するように処理する、請求項１記載の記憶装置システム。
【請求項６】
前記記憶制御装置は、前記第一の記憶装置システムに障害が発生したことを検出し、前記検出を契機に、前記第二の記憶装置システムからデータを受信するように処理を行う、請求項１記載の記憶装置システム。
【請求項７】
前記記憶制御装置は、前記第一の記憶装置システムから通知を受信したのを契機に、前記第二の記憶装置システムからデータを受信するように処理を行う、請求項１記載の記憶装置システム。
【請求項８】
前記第二の記憶装置システムからデータを受信する場合において、
前記第一の記憶装置システムにおけるデータの受信の中断を、データを転送する先である記憶装置システムへ通知する手段を有する、請求項１記載の記憶装置システム。
【請求項９】
前記管理情報メモリは、前記記憶装置システムが有するデータと前記第二の記憶装置システムが有するデータの差分を管理するための差分管理情報を備え、
前記記憶制御装置は、前記差分管理情報を用いて、前記第二の記憶装置システムからデータを受信するように処理する、請求項１記載の記憶装置システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストを介さず、記憶装置システム間でデータを２重化する技術に関する。
【０００２】
【従来の技術】
災害等による記憶装置システム内のデータ損失を避ける技術として、遠隔地の記憶装置システムにデータを２重化するリモートコピーがある。ここで、記憶装置システムは、記憶制御装置と記憶装置を含むものとする。また、リモートコピーとは、記憶装置システムが、記憶装置システム内のデータを遠隔地にある別の記憶装置システムに転送し、その記憶装置システム内の記憶装置にデータを格納する技術である。リモートコピーに関しては、異なる記憶制御装置間でホストコンピュータ（以下、ホストと呼ぶ）を介さずデータを複製する技術が開示されている（特許文献１参照）。
【０００３】
近年、リモートコピーを３つ以上のサイト間で実施したい、という要求がある。ここでサイトとは、ホストや記憶装置システム等が設置してある場所を指す。
【０００４】
３サイト間のリモートコピーに関しては、第２のサイトにおいて、第１のサイトから受領したデータをまとめて第３のサイトへ転送する技術が開示されている（特許文献２参照）。この技術によれば、第２のサイトにあるデータが第１のサイトから複数回更新されても、第３のサイトへデータを送る際には最後に更新されたデータのみを送ればよいため、サイト間の転送路の通信コスト増加を抑えることができる。
【０００５】
【特許文献１】
特開平１１−８５４０８号公報
【特許文献２】
米国特許６２０９００２号公報
【０００６】
【発明が解決しようとする課題】
データ損失を避けるためのＮ（Ｎ≧３）サイト間リモートコピーの運用として、Ｎサイトの内の１サイトが自然災害などにより被災した場合、速やかに残りのＮ−１サイトでリモートコピーを再構成し、リモートコピーを継続する形態が望まれる。
【０００７】
しかし、従来技術では、１サイトが被災した時、コピー元の変更を考慮していない。このため、被災したサイトの記憶装置システムを直接的、または、間接的にコピー元とする記憶装置システムのリモートコピーが中断し、復旧するまではリモートコピーを再開することができない、という問題があった。
【０００８】
本発明の目的は、主に３サイト以上のＮサイトに配置された記憶装置システム間において、任意サイトの被災後、速やかにリモートコピーを再開することにある。
【０００９】
【課題を解決するための手段】
この目的を達成するために、データの転送を受ける記憶装置システムが、該記憶装置システムにデータを転送するコピー元の記憶装置システムに障害が発生した場合に、他の記憶装置システムにデータのコピー元を切り替える処理を行う。その際、該記憶装置システムは、管理情報メモリに予め登録しておいた記憶装置システムを新たなコピー元として選択する。データの転送を継続するか否かは、データの優先度や、新たなコピー元の優先度に応じて決定してもよい。
【００１０】
ここで、コピー元とは、リモートコピーにおいて、他の記憶装置システムにデータを転送する記憶装置システムと定義し、記憶装置システムＡのデータが記憶装置システムＢに転送される場合、「記憶装置システムＡをコピー元とする記憶装置システムＢ」または、「記憶装置システムＡをコピー元とする、記憶装置システムＢが有するボリュームＣ」のように表現する。また、コピー先とは、リモートコピーにおいて、他の記憶装置システムから転送されたデータが格納されるボリュームを有する記憶装置システム、と定義し、「記憶装置システムＢを記憶装置システムＡのコピー先とする」または、「記憶装置システムＢを、記憶装置システムＡが有するボリュームＣのコピー先とする」のように表現する。更に、「直接的に」とは、記憶装置システムＢが他の記憶装置システムを介さずに、記憶装置システムＡのデータを受信することを意味し、「間接的に」とは、記憶装置システムＢが一つ以上の記憶装置システムを介して、記憶装置システムＡのデータを受信することを意味する。
【００１１】
【発明の実施の形態】
図１に、本発明を適用した構成図を示す。各サイトでは、ホスト１や記憶装置システム２等がＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といったローカルネットワークＴ２によって互いに接続されている。一方、各サイトの記憶装置システム２の内、リモートコピーを実行する記憶装置システム２同士は、グローバルネットワークＴ１を介して接続されている。グローバルネットワークＴ１は、一般に公衆通信回線であり、通信サービスを提供する業者から有料で借り受けて利用する場合が多い。ただし、ローカルネットワークＴ２、グローバルネットワークＴ１の構成が、本発明を限定するものではない。図１は、あるボリュームのデータとそのコピー先に注目した場合、データがサイト１からサイト２を経てサイト（Ｋ−１）とサイトＮへ、また、サイトＫを経てサイト（Ｎ−１）へと転送される様子を示している。
【００１２】
サイト１の記憶装置システム２＿１は、ホスト１から直接書き込まれたデータを格納するオリジナルボリュームＶ１を有する。サイト２やサイトＫの記憶装置システム２＿２、２＿ｋは、他の記憶装置システム２から転送されてきたデータを格納し、他の記憶装置システムへ更に転送されるデータを格納する中間ボリュームＶ２を有する。サイト（Ｋ−１）、サイトＮ、そしてサイト（Ｎ−１）の記憶装置システム２＿（ｋ−１）、２＿Ｎ、２＿（Ｎ−１）は、他の記憶装置システム２から転送されてきたデータで、かつ他の記憶装置システム２へ転送されないデータを格納する末端ボリュームＶ３を有する。ここで、ボリュームとは、磁気ディスクなどの記憶媒体を取り扱う単位のことであり、論理的な単位でも物理的な単位でも構わない。
【００１３】
リモートコピーの動作は大きく２つに分けられる。一つは、ホスト１又は他の記憶装置システム２からの書き込み要求（以下、「ライト要求」と呼ぶ）に対する書き込み処理（以下、「ライト処理」と呼ぶ）の終了報告前に副記憶制御装置にデータを転送する同期リモートコピーである。もう一つは、ライト処理の終了報告後にライト要求とは非同期に、副記憶制御装置にデータを転送する非同期リモートコピーである。非同期リモートコピーでは、データベース等のアプリケーションに対してログの更新順序を保証するために、正記憶制御装置内のボリュームに対する更新順序通りに、副記憶制御装置内のボリュームを更新する必要がある。これを実現するために、非同期リモートコピーでは、副記憶制御装置において、正記憶制御装置から受領したデータを後述のシーケンス番号通りにボリューム（あるいはキャッシュメモリ５）に格納する方法がある。この方法を正式化という。ここで、正記憶制御装置とは、データを転送するコピー元の記憶制御装置を指し、副記憶制御装置とは、正記憶制御装置からデータを転送されたコピー先の記憶制御装置を指す。
【００１４】
図１においては、「１対多」であるサイト１から見たサイト２とサイトＫの関係、「多段」であるサイト１―サイト２―サイト（Ｋ−１）の関係がある。「１対多」は「多段」に比べてオリジナルボリュームを有するコピー元から末端ボリュームを有するコピー先にデータが到達するまでの遅延が小さいため、各コピー先のデータをよりコピー元に格納されたデータに近い状態に保つことができる。しかし、コピー元がデータを直接転送するコピー先が多いため、コピー元の負荷が増大する。
【００１５】
図２に、記憶装置システム２の構成を示す。ソフトウェアは丸で囲んで表示している。記憶装置システム２は、記憶制御装置２１、記憶装置２２、記憶制御装置２１への通知や記憶制御装置２１内部の状態を表示するための保守端末２３を備える。ただし、保守端末２３は必須ではない。
【００１６】
記憶制御装置２１は、チャネルインタフェース３、ディスクインタフェース４、キャッシュメモリ５、及び管理情報メモリ６を有する。尚、図示していないが、チャネルインタフェース３とディスクインタフェース４は複数存在する。また、キャッシュメモリ５及び管理情報メモリ６は２重化されている。
【００１７】
尚、他の実施形態として、チャネルインタフェース３内とディスクインタフェース４内に存在するＣＰＵ３０及び４０の替わりに、チャネルインタフェース３、ディスクインタフェース４、キャッシュメモリ５、及び管理情報メモリ６等を統括する１つのＣＰＵが記憶制御装置２１内にあってもよい。
【００１８】
チャネルインタフェース３及びディスクインタフェース４は、入出力部３８、４１を介して、キャッシュメモリ５及び管理情報メモリ６のそれぞれとパスで接続されている。パスによる接続は、スイッチ接続やバス接続でもよく、本発明を限定するものではない。
【００１９】
チャネルインタフェース３は、入出力部３７、ローカルネットワークＴ２又はグローバルネットワークＴ１を介して、ホスト１、コピー元又はコピー先と接続されている。
【００２０】
チャネルインタフェース３内のメモリ３００には、ライトプログラム３１、リモートコピー中断プログラム３２、非同期転送プログラム３３、ボリューム通知転送プログラム３４、差分コピープログラム３５、及びリモートコピー再開プログラム３６が格納されている。
【００２１】
チャネルインタフェース３内のＣＰＵ３０は、ライトプログラム３１を実行して、ホスト１からのライト要求や、コピー元からのライト要求に応じてライト処理を行う。
【００２２】
ＣＰＵ３０は、リモートコピー中断プログラム３２及びリモートコピー再開プログラム３６を実行して、コピー元が被災した場合、登録しておいた別の記憶装置システム２へコピー元を切り替える処理を行う。別の記憶装置システム２をコピー元として登録する方法については、後述する。
【００２３】
ＣＰＵ３０は、非同期転送プログラム３３を実行して、記憶装置システム２が非同期リモートコピーのコピー元である場合に、データをライト要求とは非同期にコピー先に転送する処理を行う。
【００２４】
ＣＰＵ３０は、ボリューム通知転送プログラム３４を実行して、記憶装置システム２のリモートコピー対象ボリュームに対する処理の内容をコピー先へ通知する。ここで、リモートコピー対象ボリュームとは、他の記憶装置システム２にデータの複製を保存する対象となるボリュームである。また、リモートコピー対象ボリュームに対する処理とは、後述のリモートコピー中断、リモートコピー再開、差分コピー終了などの処理である。差分コピーとは、後述する差分データのリモートコピーを意味する。
【００２５】
ＣＰＵ３０は、任意サイトの被災後、残サイト間でリモートコピーを再開する場合、差分コピープログラム３５を実行して、残サイト間のボリューム内容を一致させる処理を行う。
【００２６】
ディスクインタフェース４は、入出力部４２を介して記憶装置２２と接続されている。また、ディスクインタフェース４内のメモリ４００には、非同期正式化プログラム４１が格納されている。記憶装置システム２が非同期リモートコピーのコピー先である場合、ディスクインタフェース４内のＣＰＵ４０は、非同期正式化プログラム４１を実行して、データを正式化し、正式化したデータを記憶装置２２に格納する処理を行う。
【００２７】
キャッシュメモリ５は、データを格納する不揮発性メモリであり、ホスト１から読み書きされるデータを格納する。キャッシュメモリ５の構成は、通常領域と仮領域に大別できる。これらの領域については後述する。
【００２８】
管理情報メモリ６は、データの管理情報を格納する不揮発性メモリであり、記憶装置システム２同士がリモートコピーをするために必要な、シーケンス管理情報及びボリューム管理情報を格納する。尚、管理情報メモリ６に格納している情報をキャッシュメモリ５に格納しても良い。
【００２９】
図３ａ、ｂにシーケンス管理情報の内容の一例を示す。以下、図３ａの各行をシーケンス管理情報エントリと呼ぶ。シーケンス管理情報は、非同期リモートコピーにおいて、ホスト１から書き込まれる順序（以下、ライト順序と呼ぶ）でデータを正式化するために使用される情報である。シーケンス管理情報には、シーケンス番号、転送対象情報、正式化対象情報、シーケンス番号カウンタ、転送対象管理情報及び正式化対象管理情報が含まれる。シーケンス番号、転送対象情報及び正式化対象情報は、シーケンス管理情報エントリに格納される情報として、複数存在する。
【００３０】
シーケンス番号は、ホスト１から入力されたデータの単位毎に、ライト順序に従って付与される番号である。
【００３１】
転送対象情報は、記憶装置システム２から他の記憶装置システム２へ転送するデータを、シーケンス管理情報エントリを用いてキュー構造により管理するための情報である。具体的には、他のシーケンス管理情報エントリの位置を示すアドレス、または、後述する転送対象管理情報の位置を示すアドレスであり、これらアドレスは、シーケンス管理情報エントリの対応する領域に格納される。この情報により、記憶装置システム２は、あるシーケンス管理情報エントリに対応するデータの次に転送すべきデータ等を検索することが出来る。
【００３２】
正式化対象情報は、正式化対象であるデータを、シーケンス管理情報エントリを用いてキュー構造により管理するための情報である。具体的には、他のシーケンス管理情報エントリのアドレス、または、後述する正式化対象管理情報のアドレスであり、これらアドレスは、シーケンス管理情報エントリの対応する領域に格納される。この情報により、記憶装置システム２は、あるシーケンス管理情報エントリに対応するデータの次に正式化すべきデータ等を検索することが出来る。
【００３３】
シーケンス番号カウンタは、ホスト１からのライト順序を記録するために使用する情報である。
【００３４】
転送対象管理情報は、非同期リモートコピーのコピー元において、コピー先にデータを転送する順序を管理する為の情報であり、シーケンス管理情報エントリからなるキュー構造のキューヘッダとして、以下のように使用される。
【００３５】
まず、ＣＰＵ３０は、新たに書き込まれたデータに対して、シーケンス管理情報エントリを確保する。次に、データの書き込み元がホスト１の場合、書き込まれたデータのシーケンス番号をシーケンス番号カウンタから取得する。また、データの書き込み元が他の記憶装置システム２の場合、受領したデータに含まれるシーケンス番号を取得する。そして、ＣＰＵ３０は、確保したシーケンス管理情報エントリに取得したシーケンス番号を書き込む。尚、データの書き込み元がホスト１の場合、ＣＰＵ３０は、シーケンス番号取得後、シーケンス番号カウンタの値を更新する。
【００３６】
ＣＰＵ３０は、転送対象管理情報をキューヘッダとするシーケンス管理情報エントリのキューを先頭から参照し、シーケンス番号が進む順（昇順）となるように、新たに作成したシーケンス管理情報エントリをキュー構造に接続する。これは、小さいシーケンス番号に対応するデータほど、ホスト１から書き込まれた時期が早いため、キューの先頭のシーケンス管理情報エントリに対応するデータから順に、コピー先に転送するためである。ここで、図３ｂにおける転送対象管理情報の上の欄は、キューの先頭のシーケンス管理情報エントリのアドレスを示し、下の欄は、キューの最後尾のシーケンス管理情報エントリのアドレスを示す。したがって、新たに書き込まれたデータに最新のシーケンス番号が付与される場合、転送対象管理情報の下の欄には、そのデータに対応するシーケンス管理情報エントリが格納されるアドレスが登録される。
【００３７】
転送対象管理情報をキューヘッダとするキュー構造に接続されたシーケンス管理情報エントリに対応するデータのことを、以下、転送対象データと呼ぶ。また、以上のような操作を施すことを、「データを転送対象データに登録する」と呼ぶ。
【００３８】
正式化対象管理情報は、非同期リモートコピーのコピー先において、コピー元から受領したが未だ正式化されていないデータのライト順序を管理する情報であり、シーケンス管理情報エントリからなるキュー構造のキューヘッダとして使用される。
【００３９】
正式化されていないデータについても、「データを転送対象データに登録する」ことと同様の操作が施される。これは、ホスト１からのライト順序を保証するために、キューの先頭のシーケンス管理情報エントリに対応するデータから順に、シーケンス番号に従って正式化しなければならないためである。正式化対象管理情報をキューヘッダとするキューに接続されたシーケンス管理情報エントリに対応するデータのことを、以下、正式化対象データと呼ぶ。また、この操作を施すことを、「データを正式化対象データに登録する」と呼ぶ。ここで、正式化されたが転送されていないデータも存在するため、転送対象情報の欄と正式化対象情報の欄は必ずしも一致しない。
【００４０】
尚、末端ボリュームのデータには、データを転送対象データに登録する操作は施されない。もはや、転送する必要がないからである。また、オリジナルボリュームのデータには、データを正式化対象データに登録する操作は施されない。ホスト１から書き込まれたばかりで、データのライト順序は保証されているからである。
【００４１】
図４ａ、ｂにボリューム管理情報の内容の一例を示す。
【００４２】
ボリューム管理情報には、リモートコピー対象フラグ、シーケンス管理情報番号、最新シーケンス番号、差分管理情報、登録コピー先情報、コピー再開指示フラグ、コピー再開優先度、新規コピー元優先度、登録コピー元情報、有効コピー元情報及び総コピー元情報等が含まれる。更に、登録コピー先情報には、複数のコピー先となる記憶装置システム２に対応するそれぞれのコピー先の情報が含まれる。登録コピー元情報についても同様である。
【００４３】
また、差分管理情報は、ビットマップ、そのビットマップが使用されているか否かを示すビットマップ有効フラグ、ビットマップの記録を開始した際のシーケンス番号を示す記録開始シーケンス番号、ビットマップの記録を開始した時点からの累計更新データ量を示す累計更新データ量カウンタを有する。尚、ビットマップ及びその管理情報（ビットマップ有効フラグ等）は、後述するビットマップ切り替え等のために、予め複数用意される。また、差分コピー時の差分情報に用いるための差分コピー用ビットマップも差分管理情報に含まれる。尚、差分管理情報の詳細については後述する。
【００４４】
ここで、ボリューム管理情報は、ボリューム毎に存在してもよいし、任意の記憶領域毎でもよい。記憶制御装置２１は、記憶装置システム２間で共有できる任意の記憶領域の単位毎にボリューム管理情報を持つことができ、その記憶領域単位でリモートコピーを実行することができる。
【００４５】
リモートコピー対象フラグは、対象となるボリュームがコピー元、または、コピー先のいずれかであることを示す情報である。具体的には、コピー元又はコピー先となる場合にＯＮを示す情報である。
【００４６】
シーケンス管理情報番号は、ボリューム管理情報で管理されるボリュームに対応するシーケンス管理情報を指定する番号である。
【００４７】
最新シーケンス番号は、ボリュームが同期リモートコピーのコピー先のボリュームならば受領済みデータの中で、非同期リモートコピーのコピー先のボリュームならば正式化済みデータの中で、最も進んでいるシーケンス番号を表す。
【００４８】
差分管理情報は、ボリューム中の更新箇所を記録している情報（以下、差分情報と呼ぶ）を管理する情報である。サイト被災等により他サイトとのボリューム内容を一致させる必要が生じた場合に使用される。
【００４９】
ここで、Ｎサイト間リモートコピーの差分情報の管理方法として２通りが考えられる。第一の管理方法として、２サイト間のリモートコピーにおける差分管理を応用した方法がある。すなわち、正常時にデータのやりとりは無いが、サイト被災時にはデータを一致させることを想定しているサイト間で、予め差分管理を実施しておく方法である。また、第二の管理方法として、任意のサイト間での差分管理を目的とした方法がある。すなわち、差分情報の記録を開始するホスト１からの更新情報を、ホスト１が更新するデータを有するボリュームとそのコピー先全体で共有し、各ボリュームがそれぞれ管理するボリュームの更新内容を差分情報として記録する方法である。尚、元のデータと更新されたデータとの間の異なる部分のデータを、差分データと呼ぶ。
【００５０】
具体的な差分情報として、以下の例がある。まず、ボリューム管理情報で管理される記憶領域において、あるシーケンス番号以降に更新された領域をビットマップとして記録する。更に、ビットマップによる記録開始前に、差分管理を行うコピー元ボリュームとコピー先ボリュームを持つ記憶装置システム２間で通信を行い、ビットマップの記録を開始する際のシーケンス番号を一致させておく。本差分情報に基づいて両ボリュームの内容を一致させる場合、まず、内容の一致を行う時点における最新シーケンス番号が進んでいる方のボリュームを特定する。その後、最新シーケンス番号の進んでいる方のボリュームに対応する差分管理のビットマップで示される更新領域に格納されたデータをもう一方のボリュームへデータをコピーする。
【００５１】
また、差分コピー量を一定以下に抑えるため以下の方法を行っても良い。まず、ビットマップの記録を開始した時点からの累計更新データ量を記憶装置システム２で記録する。そして、累計更新データ量が閾値を超えた場合、差分管理を行うコピー元ボリュームとコピー先ボリュームを持つ記憶装置システム間で通信を行い、現在使用中のビットマップの記録を開始した際のシーケンス番号より進んだ新しいシーケンス番号を記憶装置システム間で共有する。更に、それぞれの記憶装置システム２において、コピー元ボリュームとコピー先ボリュームの最新シーケンス番号が共有されたシーケンス番号に到達した時点で、使用中のビットマップとは別のビットマップの記録を開始し、使用していたビットマップの記録を中断する。この方法によると、現在使用中のビットマップを新しい別のビットマップに切り替えて、差分コピーの対象となる差分データの量を削減できる。
【００５２】
上述したビットマップを用いた差分情報は、２つ以上の任意のボリューム間の差分管理に適用できる。つまり、前記の、差分情報の第一の管理方法にも第二の管理方法にも用いることができる。
【００５３】
特に、上述の差分情報を差分情報の第二の管理方法に用いると、以下のようになる。すなわち、オリジナルボリュームを持つ記憶装置システム２において、ビットマップの記録を開始するシーケンス番号を決定し、そのシーケンス番号をリモートコピーデータの転送と共に中間ボリュームや末端ボリュームを持つ記憶装置システム２に通知する。これにより、ビットマップの記録を開始する際の特定のシーケンス番号を、オリジナルボリューム、中間ボリューム又は末端ボリュームを持つ記憶装置システム２間で共有することができる。また、オリジナルボリュームを持つ記憶装置システム２において、ビットマップの記録を開始した時点からの累計更新データ量が閾値を超えた際、現在使用中のビットマップへ更新領域の記録を開始したシーケンス番号より進んだ新しいシーケンス番号を決定する。その後、オリジナルボリュームを有する記憶装置システム２は、決定した新しいシーケンス番号をリモートコピーデータの転送と共に中間ボリュームや末端ボリュームを持つ記憶装置システム２に通知する。その後、オリジナルボリューム、中間ボリューム又は末端ボリュームを持つそれぞれの記憶装置システム２は、各ボリュームの最新シーケンス番号が通知された新しいシーケンス番号に到達した時点で、使用中のビットマップとは別のビットマップの記録を開始し、その後、先に使用していたビットマップの記録を中断する。また、本例においてオリジナルボリューム、中間ボリューム、及び末端ボリュームの内、任意のボリューム間の内容を差分コピーにより一致させる場合は、内容を一致させる時点で最新シーケンス番号が一番進んでいるボリュームを特定し、その特定されたボリュームのビットマップで示される更新領域に記録されたデータを、特定されたボリュームから他のボリュームへコピーすれば良い。
【００５４】
以下の差分管理の説明では、差分情報として上述のビットマップを用いるものとする。
【００５５】
尚、リモートコピー自体は、同一サイト内の異なる記憶装置システム２間で実行することも可能である。例えば、ホスト１から読み出し要求やライト要求を受け付けながら、データの格納場所を変更する目的に利用することができる。
【００５６】
登録コピー先情報は、ボリューム管理情報に対応するボリュームのコピー先として登録されているコピー先の情報であり、具体的には、登録コピー先有効フラグ、アドレス情報、記憶装置システム製造番号、ポート番号及びボリューム番号等を含む（図４ｂ）。図４ｂの各行を登録コピー先情報エントリと呼ぶ。登録コピー先情報には、登録されたコピー先の数分だけ、登録コピー先情報エントリが含まれる。登録コピー先有効フラグは、登録されたコピー先が、コピー先として使用できる状態であるか否かを示す情報である。アドレス情報は、ネットワークのプロトコルに応じた情報で、コピー先のアドレスを表す。記憶装置システム製造番号は、ネットワーク上の記憶装置システム２を特定する番号である。ポート番号は、記憶装置システム２において、チャネルインタフェース３の外部接続パスを特定する番号である。ボリューム番号は、ボリューム管理情報に対応するボリュームのデータがコピーされる登録コピー先のボリュームの番号である。
【００５７】
コピー再開指示フラグは、コピー元被災等によるリモートコピーの一時中断後、ボリューム管理情報に対応するボリュームのリモートコピー再開が要求されていることを示す情報であり、要の場合にＯＮを示す情報がエントリに設定される。
【００５８】
コピー再開優先度は、コピー元被災等によるリモートコピーの一時中断後、ボリューム管理情報に対応するボリュームのリモートコピー再開優先度を表す情報である。優先度の値の大きなボリュームから優先してリモートコピーが再開される。
【００５９】
新規コピー元優先度は、有効な登録コピー元が複数ある場合に、どのコピー元を新規のコピー元とするか決定するときに使用する情報である。
【００６０】
登録コピー元情報は、ボリューム管理情報に対応するボリュームのコピー元として登録されているコピー元の情報であり、その構成は、登録コピー先情報と同様である。例えば、登録コピー先情報の登録コピー先有効フラグは、登録コピー元情報の登録コピー元有効フラグに対応する。
【００６１】
有効コピー元情報は、登録コピー元情報において登録されているコピー元の内、どのコピー元が現在のコピー元であるかを示す情報である。
【００６２】
総コピー元情報は、ボリューム管理情報に対応するボリュームのオリジナルボリュームＶ１を特定する情報であり、その構成は、登録コピー先情報と同様である。ただし、総コピー元情報には、一つのエントリしか含まれない。以下、オリジナルボリュームＶ１を有する記憶装置システム２を総コピー元と呼ぶ。
【００６３】
登録コピー先情報、コピー再開指示フラグ、コピー再開優先度、登録コピー元情報、及び総コピー元情報の登録は、ユーザ自身、または、保守員等が行う。
【００６４】
尚、シーケンス管理情報は予め複数設定され、それぞれのシーケンス管理情報に対して、ボリューム管理情報又はボリューム管理情報群が対応付けられる。ボリューム管理情報に対応するシーケンス管理情報は、ボリューム管理情報に含まれるシーケンス管理情報番号により特定される。上記の設定や対応付けは、ユーザ自身、または、保守員等により行われる。
【００６５】
図５に、各記憶装置システム２において、ライトプログラム３１が実行される場合の処理について説明する。
【００６６】
ＣＰＵ３０は、ライト要求を受領し（ステップ５０１）、ライト要求元がホスト１かつデータを書き込む対象のボリューム（以下、ライト対象ボリュームと呼ぶ）がコピー元のボリュームでないか確認する。このことは、リモートコピー対象フラグで確認する（ステップ５０２）。
【００６７】
受領したライト要求がリモートコピーに関連しないボリュームへのライト要求である場合、ＣＰＵ３０はデータをキャッシュメモリ５の通常領域に格納する（ステップ５０３）。そして、ライト要求元にライト終了を報告する（ステップ５０４）。尚、キャッシュメモリ５の通常領域に書き込まれたデータは、ホスト１からのライト要求とは非同期に、ＣＰＵ４０が記憶装置２２に書き込む。
【００６８】
ライト要求元がホスト１かつライト対象ボリュームがコピー元で無い場合以外の場合、ＣＰＵ３０は、ライト要求元がホスト１であるか確認する（ステップ５０５）。
【００６９】
ライト要求元がホスト１の場合、ＣＰＵ３０は、ホスト１から書き込まれたボリュームに対応するボリューム管理情報のシーケンス管理情報番号を参照し、対応するシーケンス管理情報のシーケンス管理情報エントリを新たに確保する。そして、受信したデータのシーケンス番号をシーケンス番号カウンタから取得し、新たに確保されたシーケンス管理情報エントリにシーケンス番号を書き込む（付与する）。その後、シーケンス番号カウンタの値を更新しておく。
【００７０】
シーケンス番号の付与は、リモートコピーの同期、非同期に関係なく実行される。これは、仮にボリュームの直接のコピー先が同期リモートコピーのコピー先だけであったとしても、これらのコピー先の更に先が非同期リモートコピーを実行することがあるためである（ステップ５０６）。
【００７１】
ステップ５０５において、ライト要求元がホスト１でない場合、ＣＰＵ３０は、ライト要求に関わるデータが差分データであるか確認する（ステップ５２２）。
【００７２】
差分データの場合、ＣＰＵ３０は、ステップ５２３以降の処理を実行する。ステップ５２３以降の処理については後述する。差分データでない場合、ＣＰＵ３０は、受領したデータに対応するシーケンス管理情報エントリを確保し、データと共に受領したシーケンス番号を含むシーケンス管理情報を管理情報メモリ６に格納する（ステップ５０７）。
【００７３】
その後、ＣＰＵ３０は、ライト対象ボリュームが非同期リモートコピーのコピー先か否か判断する（ステップ５０８）。
【００７４】
ここで、キャッシュメモリ５へのデータの格納方法について説明する。ライト対象ボリュームが非同期リモートコピーのコピー先のボリュームである場合、ＣＰＵ３０は、受領したデータを一旦キャッシュメモリ５の仮領域に保存し、シーケンス番号に従って正式化する。本実施形態では、データをキャッシュメモリ５の仮領域から通常領域に移動することを正式化と呼ぶ。ライト対象ボリュームが非同期リモートコピーのコピー元のボリュームである場合、ＣＰＵ３０は、非同期リモートコピーのコピー先に未転送のデータを更新するデータを受信した場合は、更新前の未転送のデータをキャッシュメモリ５の仮領域に保存した上で、受信したデータをキャッシュメモリ５の通常領域に格納する。また、ライト対象ボリュームが非同期リモートコピーのコピー先かつコピー元のボリュームである場合は、コピー先のボリュームである場合と同じ処理が実行される。尚、差分データの場合は、説明の簡素化のため、図５の中では異なるステップとして示している。
【００７５】
非同期リモートコピーのコピー先である場合、上述したように、ＣＰＵ３０は、データをホスト１からの更新順を示すシーケンス番号に従って書き込む必要があるため、一旦、データをキャッシュメモリ５の仮領域に格納する（ステップ５０９）。そして、格納したデータを正式化対象データに登録する（ステップ５１０）。更に、ＣＰＵ３０は、ライト対象ボリュームが非同期リモートコピーのコピー元であるか判断する（ステップ５１１）。コピー元である場合、ＣＰＵ３０は、仮領域に格納されたデータを転送対象データに登録する（ステップ５１２）。
【００７６】
ライト対象ボリュームが非同期リモートコピーのコピー先でない場合、ＣＰＵ３０は、ライト対象ボリュームが非同期リモートコピーのコピー元であるか判断する（ステップ５１３）。コピー元である場合、データをキャッシュメモリ５の通常領域に格納する。しかし、非同期リモートコピーのコピー先へ未転送のデータを更新するデータを受信した場合は、未転送のデータをキャッシュメモリ５の仮領域へ移動した上で、更新するデータを通常領域に格納する（ステップ５１４）。更に、ＣＰＵ３０は、差分管理情報を更新する。具体的には、差分管理情報の有効なビットマップにおいて、更新するデータに対応する領域のビットを設定する。更に、累計更新データ量カウンタに更新データ量を加算する（ステップ５１５）。
【００７７】
ステップ５１３において、ライト対象ボリュームが非同期リモートコピーのコピー先でもコピー元でもないと判断した場合、ＣＰＵ３０は、データをキャッシュメモリ５の通常領域に格納する（ステップ５１６）。更に、ＣＰＵ３０は、差分管理情報を更新（具体的には、ステップ５１５同様、差分管理情報のビットマップにおいて、更新するデータに対応する領域のビットを設定し、更に、累計更新データ量カウンタに更新データ量を加算する）し（ステップ５１７）、ステップ５１８以降の処理を実行する。
【００７８】
一方、ステップ５２２でデータが差分データであると判断した場合、ＣＰＵ３０は、データをキャッシュメモリ５の通常領域に格納する（ステップ５２３）。その後、ＣＰＵ３０は、差分管理情報の更新を行う。具体的には、差分コピーの進捗を記録するため、差分コピー開始前に受領した差分情報を格納している差分コピー用ビットマップについて、差分データに対応する場所のビットを解除する（ステップ５２４）。
【００７９】
ステップ５１１、５１２及び５１７の後、ＣＰＵ３０は、ライト対象ボリュームが同期リモートコピーのコピー元であるか判断する（ステップ５１８）。コピー元である場合、ＣＰＵ３０は、同期リモートコピーのコピー先にデータ及びデータに対応するシーケンス管理情報エントリの内容を転送する。尚、ライト要求元へのライト要求を受領してからライト終了を報告するまでの時間を短縮するために、複数のコピー先に対し並列に、例えばマルチキャストによって、同期リモートコピーが実行されても良い。（ステップ５１９）。
【００８０】
データ等の転送後又はコピー元でない場合、ＣＰＵ３０は、受領したデータが、転送対象データ及び正式化対象データのいずれにも登録されていないか判断する（ステップ５２０）。
いずれのデータでもない場合、ＣＰＵ３０は、該データに対応するシーケンス管理情報エントリは不要であるため、先に確保されたシーケンス管理情報エントリを解放する（ステップ５２１）。
【００８１】
最後に、ＣＰＵ３０は、ライト要求元にライト終了を報告（ステップ５０４）し、処理を終了する。
【００８２】
一方、ステップ５２４で差分管理情報の更新を行ったＣＰＵ３０は、ライト要求元に書き込みの終了を報告する（ステップ５２５）。
【００８３】
次に、ＣＰＵ３０は、ライト対象ボリュームがコピー元であるか判断する（ステップ５２６）。コピー元である場合、ＣＰＵ３０は、同期および非同期リモートコピーのコピー先に差分データを転送する（ステップ５２７）。差分データの転送後及びコピー元でない場合、ＣＰＵ３０は処理を終了する。差分コピーは、複数のコピー先に対し並列に、例えばマルチキャストによって実行されても良い。
【００８４】
図６に、非同期リモートコピーのコピー元において、非同期転送プログラム３３が実行される場合の処理について説明する。このプログラムは、シーケンス管理情報単位毎に実行されても良い。また、一定周期や対象データ量に応じて実行されても良い。本処理によって、非同期リモートコピーのコピー元から随時、コピー元で更新されたデータの内容がコピー先にコピー元へのライト要求とは非同期に転送される。
【００８５】
まず、ＣＰＵ３０は、転送対象データに登録されたデータを選択する（ステップ６０１）。
【００８６】
次に、ＣＰＵ３０は、非同期リモートコピーのコピー先に、選択したデータを転送する（ステップ６０２）。複数のコピー先に対するデータ転送時間を短縮するために、複数のコピー先に対し並列に、例えばマルチキャストによって、データを転送しても良い。
【００８７】
次に、ＣＰＵ３０は、転送したデータの転送対象データとしての登録を解除する（ステップ６０３）。
【００８８】
次に、ＣＰＵ３０は、転送したデータが正式化対象データにも登録されているか判断する（ステップ６０４）。登録されていない場合、ＣＰＵ３０は、転送したデータの管理が不要となるため、このデータに対応していたシーケンス管理情報エントリを解放する（ステップ６０５）。そして、ＣＰＵ３０は、転送したデータがキャッシュメモリ５の仮領域を使用していた場合には、仮領域も解放する（ステップ６０６）。一方、転送したデータが正式化対象データに登録されている場合、ＣＰＵ３０は、そのまま処理を終了する。
【００８９】
図７に、非同期リモートコピーのコピー先において、非同期正式化プログラム４１が実行される場合の処理について説明する。本処理は、シーケンス管理情報単位毎に実行されても良い。また、一定周期や対象データ量に応じて実行されても良い。この処理によって、データが正式化され、キャッシュメモリ５の通常領域に格納される。尚、本実施形態においては、キャッシュメモリ５に格納されたデータを記憶装置２２に転送することについては特に説明しないが、この処理は、ＣＰＵ４０が公知の技術に基づいて実施する。
【００９０】
まず、ＣＰＵ４０は、正式化対象データに登録されたデータを選択する（ステップ７０１）。選択方法は、シーケンス番号が連続している複数のデータの内、最も小さい番号に対応するデータから順に、連続する番号のうち最も進んでいる番号より１小さい番号に対応するデータまで選択する。
【００９１】
次に、ＣＰＵ４０は、選択した正式化対象データが全て正式化済みか判断する（ステップ７０２）。正式化済みでない場合、ＣＰＵ４０は、正式化対象として選択したデータの内、最も古いシーケンス番号に対応するデータを正式化する（ステップ７０３）。
【００９２】
次に、ＣＰＵ４０は、正式化したデータの正式化対象データとしての登録を解除する（ステップ７０４）。
【００９３】
次に、ＣＰＵ４０は、差分管理情報を更新する。具体的には、ステップ５１５同様、差分管理情報の有効なビットマップにおいて、正式化したデータに対応する領域のビットを設定する。更に、累計更新データ量カウンタに更新データ量を加算する（ステップ７０５）。その後、ステップ７０２の処理に戻る。
【００９４】
ステップ７０２でデータが正式化済みであると判断した場合、ＣＰＵ４０は、正式化したデータが転送対象データにも登録されているか判断する（ステップ７０６）。
【００９５】
登録されていない場合、ＣＰＵ４０は、該データの管理が不要となるため、該データに対応するシーケンス管理情報エントリを解放し（ステップ７０７）、該データが使用していたキャッシュメモリ５の仮領域を解放する（ステップ７０８）。一方、正式化したデータが転送対象データである場合、ＣＰＵ４０はそのまま処理を終了する。
【００９６】
図８に、図１に例示した、オリジナルボリュームＶ１＿１にホスト１からデータを書き込まれた場合、中間ボリュームＶ２＿２（同期リモートコピーのコピー先とする）、Ｖ２＿Ｋ（非同期リモートコピーのコピー先とする）、末端ボリュームＶ３＿（Ｋ−１）、Ｖ３＿（Ｎ−１）、Ｖ３＿Ｎ（すべて非同期リモートコピーのコピー先とする）へデータが転送される際の各システムにおける処理手順を示す。
【００９７】
オリジナルボリュームＶ１＿１を持つ記憶装置システム２＿１は、ホスト１からのライト要求を受領し（ステップ１２０１）、ライト要求に付随するデータにシーケンス番号を付与し（ステップ１２０２）、シーケンス番号が付与されたデータをキャッシュメモリ５に格納する（ステップ１２０３）。更に、非同期リモートコピーのコピー先である中間ボリュームＶ２＿Ｋのために、キャッシュメモリ５に格納されたデータを転送対象データとして登録する（ステップ１２０４）。その後、同期リモートコピーのコピー先である中間ボリュームＶ２＿２を持つ記憶装置システム２＿２へ、キャッシュメモリに格納されたデータとシーケンス番号を転送する（ステップ１２０５）。
【００９８】
記憶装置システム２＿２は、受領したデータをキャッシュメモリ５に格納し（ステップ１２０６）、併せて受領したシーケンス番号を管理情報メモリ６に格納する。更に、記憶装置システム２＿２は、非同期リモートコピーのコピー先である末端ボリュームＶ３＿（Ｋ−１）、Ｖ３＿Ｎのために、受領したデータを転送対象データとして登録する（ステップ１２０７）。記憶装置システム２＿１は、記憶装置システム２＿２からのデータ受領の応答を受け、ホスト１にライト終了を報告する（ステップ１２０８）。以上でホスト１からのライト要求は終了する。
【００９９】
記憶装置システム２＿２においては、所定のタイミングで、ステップ１２０７で登録したデータが転送対象として選択され、Ｖ３＿（Ｋ−１）、Ｖ３＿Ｎへ、データ及びシーケンス番号が転送される（ステップ１２０９）。
【０１００】
末端ボリュームＶ３＿（Ｋ−１）、Ｖ３＿Ｎを持つ記憶装置システム２＿（Ｋ−１）、２＿Ｎは、受領したデータをキャッシュメモリ５の仮領域に格納し（ステップ１２１０、１２１２）、受領したデータを正式化対象データとして登録する（ステップ１２１１、１２１３）。その後、これらの記憶装置システム２において、登録されたデータが正式化対象データとして選択され、正式化される（ステップ１２１４、１２１５）。
【０１０１】
一方、記憶装置システム２＿１は、ステップ１２０４で登録されたデータを転送対象として選択し、非同期リモートコピーのコピー先である中間ボリュームＶ２＿Ｋへ、データとシーケンス番号を転送する（ステップ１２１６）。
【０１０２】
記憶装置システム２＿Ｋは、受領したデータをキャッシュメモリ５の仮領域に格納し（ステップ１２１７）、受領したデータを正式化対象データとして登録し（ステップ１２１８）、非同期リモートコピーのコピー先である末端ボリュームＶ３＿（Ｎ−１）のために転送対象データとして登録する（ステップ１２１９）。その後、記憶装置システム２＿Ｋでは、登録されたデータが正式化対象データとして選択され、正式化される（ステップ１２２０）。
【０１０３】
中間ボリュームＶ２＿Ｋを格納している記憶装置システム２＿Ｋと、末端ボリュームＶ３＿（Ｎ−１）を格納している記憶装置システム２＿（Ｎ−１）が実行するステップ１２２１〜ステップ１２２４は、ステップ１２０９〜ステップ１２１５の処理と同様である。
【０１０４】
図９は、中間ボリュームＶ２、または、末端ボリュームＶ３を持つ記憶装置システム２において、ＣＰＵ３０によりコピー元の障害が検出された時の処理について説明するフローチャートである。
【０１０５】
まず、ＣＰＵ３０は、コピー元の障害を検出する。例えば、記憶装置システム２は、データ転送時やコピー元とコピー先の間で一定頻度で実行されている転送パスの確認時等にタイムアウトやエラーリトライアウトが発生した場合に、コピー元の障害と判断する（ステップ８０１）。
【０１０６】
次に、ＣＰＵ３０は、管理情報メモリ６の情報に基づいて、コピー元が障害を起こしているか否かを調べていないボリュームを選択する（ステップ８０２）。
【０１０７】
次に、ＣＰＵ３０は、選択されたボリュームに対応するコピー元が障害を起こしているか否かを調べる。具体的には、有効コピー元情報として登録されているコピー元が障害を起こしたコピー元と同じか否かで判断する（ステップ８０３）。選択されたボリュームに対応するコピー元が障害を起こしている場合、ＣＰＵ３０は、選択されたボリュームについてリモートコピー中断プログラム３２を起動する。リモートコピー中断プログラムを起動することにより、リモートコピー中断処理が行われる。これらの処理については、後述する（ステップ８０４）。
【０１０８】
次に、ＣＰＵ３０は、全リモートコピー対象ボリュームについて、ステップ８０２からステップ８０４の処理を実行したか否かを調べる（ステップ８０５）。実行した場合は、ステップ８０６の処理を実行する。実行していない場合は、ステップ８０２に戻って処理を実行する。
【０１０９】
次に、ＣＰＵ３０は、コピー元に障害の有った全ボリュームのリモートコピーが中断したか判断する（ステップ８０６）。中断していない場合、ＣＰＵ３０は一定時間待ち（ステップ８０７）、再びステップ８０６の処理を実行する。
【０１１０】
中断している場合、ＣＰＵ３０は、ボリューム管理情報を確認することで、リモートコピーを再開するボリュームとして、コピー元に障害の有ったボリューム群中で、未だリモートコピーを再開しておらず、かつ、コピー再開指示フラグＯＮ、かつ、コピー再開優先度が最も高いボリュームを選択する。これは、優先度の高いデータのリモートコピーを、より早く確実に再開するためである。
【０１１１】
尚、優先度の低いボリュームに対しては、コピー再開指示フラグをＯＦＦとし、障害が発生した時点でリモートコピーを中止しても良い。また、優先度が中程度のボリュームに対しては、コピー再開指示フラグをＯＮとし、かつ、コピー再開優先度を低く設定することで、該ボリュームのリモートコピーが再開されて記憶装置システム２の負荷が高まることにより、より優先度の高いボリュームのリモートコピーが再開できなくなるケースを避けるようにしても良い。更に、オリジナルボリュームにより近いサイトにある中間ボリュームや末端ボリューム程コピー再開優先度が高い値となるように設定し、最低限必要なリモートコピーの多重度を確保するようにしても良い（ステップ８０８）。
【０１１２】
次に、ＣＰＵ３０は、選択したボリュームに対して、リモートコピー再開プログラムを起動する。リモートコピー再開プログラムについては後述する（ステップ８０９）。
【０１１３】
次に、ＣＰＵ３０は、新たなコピー元からリモートコピー再開通知を受領したか判断する。具体的には、後述する新しいコピー元の記憶装置システム２で実行される差分コピープログラムにおける、図１２のステップ１１０３のリモートコピー再開通知を検出したか否かを判断する。ここで新たなコピー元との間での差分コピー処理の終了を待たない理由としては、コピー再開プログラムの起動によって生じるボリュームの差分コピー処理が終了するまでには長時間を要する可能性があり、差分コピー処理の終了を待っているとリモートコピーの再開に時間がかかること、また、一旦リモートコピーが再開されれば、新規に再開するリモートコピーの影響により既に再開されたリモートコピーが再び中断されることはないため、１つのボリュームに対するリモートコピーが再開された後であれば、新たなボリュームのリモートコピー再開処理を続けて行っても、意図した優先度でリモートコピーを再開できる点がある。また、より単純な方法として、ステップ８０９のリモートコピー再開プログラムの起動によってリモートコピーが再開されたことを契機に、コピー元からリモートコピー再開通知を受領したと判断しても良い（ステップ８１０）。リモートコピー再開通知を受領していない場合、ＣＰＵ３０は一定時間待ち（ステップ８１１）、再びステップ８１０の処理を実行する。
【０１１４】
次に、ＣＰＵ３０は、コピー元に障害の有った全ボリュームについて、ステップ８０８からステップ８１１の処理を実行したか否かを調べる（ステップ８１２）。実行した場合は、処理を終了する。実行していない場合は、再度ステップ８０８以降の処理を実行する。
【０１１５】
尚、コピー元の障害を検出した場合ではなく、コピー元の負荷が高くなった等の理由で、リモートコピー処理の継続が困難になったことを示す過負荷通知をコピー元から受領したことを契機にコピー元を切り替えてもよい。コピー元の負荷の具体例としては、例えば、非同期リモートコピーにおいて、キャッシュメモリ５の仮領域の利用率があらかじめ設定した閾値を超えた場合等が挙げられる。
【０１１６】
また、ユーザ自身または保守員等による保守端末２３からの指示を契機としてコピー元を切り替えてもよい。ここで、全ての記憶装置システム２は、図４ａ、ｂに示す情報に基づいて、各リモートコピー対象ボリュームの現在のコピー元、総コピー元、及び現在のコピー先を特定することができる。したがって、ユーザ自身や保守員等は、オリジナルボリューム、中間ボリューム、及び末端ボリュームのいずれかを持つ任意の記憶装置システム２に保守端末やホスト１等を通じて指示を出すだけで、あるオリジナルボリュームと、該オリジナルボリュームのリモートコピー先となるすべての中間ボリューム、末端ボリュームのコピー元切り替え操作を指示することができる。
【０１１７】
更に、新たに管理端末を有する管理サイトを設け、管理端末にオリジナルボリュームを持つすべての記憶装置システム２が有する情報、例えば総コピー元情報を登録する構成も可能である。この場合、ユーザは、管理端末を用いて、ネットワークに接続された記憶装置システム２が有するすべてのオリジナルボリュームと、すべてのオリジナルボリュームのコピー先におけるすべての中間ボリューム及び末端ボリュームのコピー元切り替え操作を指示することができる。尚、既存のサイトを管理サイトとして使用する、即ち、あるホスト１を管理端末として使用しても良い。
【０１１８】
また、管理端末に他サイトの記憶装置システム２がアクセスすることで、例えば、コピー元の障害を、コピー元の更にコピー元が検出後、管理端末を介してコピー先に通知することができる。コピー先は、この通知を契機にコピー元を切り替えてもよい。
【０１１９】
図１０は、図９のステップ８０４で起動されるリモートコピー中断プログラム３２の処理手順に関するフローチャートである。
【０１２０】
まず、ＣＰＵ３０は、リモートコピーの中断が指示されたボリュームが同期リモートコピーのコピー先であるか、非同期リモートコピーのコピー先であるかを調べる（ステップ９０１）。非同期の場合、ＣＰＵ３０は、正式化できるデータについて正式化する（ステップ９０２）。
【０１２１】
同期の場合、又は非同期においてデータの正式化を終了したら、ＣＰＵ３０は、リモートコピー中断の対象となるボリュームにコピー先が存在するか判断する（ステップ９０３）。
【０１２２】
コピー先がある（中間ボリュームＶ２に相当）場合、ＣＰＵ３０は、ボリュームの直接のコピー先全てに対し、リモートコピーの中断を通知する（ステップ９０４）。コピー先がない（末端ボリュームＶ３に相当）場合、ＣＰＵ３０は、処理を終了する。
【０１２３】
次に、ＣＰＵ３０は、ボリュームの直接のコピー先全てからリモートコピー中断通知の受領報告があるか判断する（ステップ９０５）。
【０１２４】
報告がない場合、ＣＰＵ３０は一定時間待ち（ステップ９０６）、再びステップ９０５の処理を実行する。報告があった場合、ＣＰＵ３０は、リモートコピー中断処理を終了する。
【０１２５】
また、上述したステップ９０４で発行されたリモートコピー中断通知等を受けた記憶装置システム２は、ボリューム通知転送プログラム３４を実行することで、ステップ９０１からステップ９０６と同様の処理を行う。この場合、リモートコピー中断通知を受領した記憶装置システム２は、リモートコピー中断通知に関わるボリュームと同じ最新シーケンス番号でリモートコピーを中断する。
【０１２６】
そして、ボリュームの直接のコピー先全てからリモートコピー中断通知受領報告があった場合は、記憶装置システム２は、リモートコピー中断通知受領報告をリモートコピー中断通知の受領元に送信する。
【０１２７】
尚、ＣＰＵ３０は、ボリューム通知転送プログラム３４を実行することにより、リモートコピー中断通知の他にも、リモートコピー再開通知、差分コピー通知等を他の記憶装置システム２へ転送する。ただし、リモートコピー再開通知、差分コピー通知等では、リモートコピー中断通知と異なり、ステップ９０１及びステップ９０２は実行されない。
【０１２８】
図１１は、図９のステップ８０９で起動されるリモートコピー再開プログラム３６のリモートコピー再開処理について説明するフローチャートである。
【０１２９】
まず、ＣＰＵ３０は、コピー元に障害が発生したボリュームの各登録コピー元情報における登録コピー元有効フラグを参照し、有効な登録コピー元があるか否か判断する（ステップ１００１）。有効な登録コピー元がない場合、ＣＰＵ３０は、コピー元を切り替えてリモートコピーを継続することはできないため、処理を終了する。
【０１３０】
有効な登録コピー元がある場合、ＣＰＵ３０は、新規コピー元優先度を参照して、優先度の高いコピー元を選択する。新規コピー元優先度は、ユーザが予め登録コピー元に対して設定しておく。また、ボリュームに格納されるデータの優先度に応じて登録コピー元の数を増減し、登録コピー元の数が多い優先度の高いボリュームについては、サイト障害発生時により高い可能性でリモートコピーを継続できるようにしてもよい。また、コピー元を切り替えることは、新たなコピー元に新たに負荷を与えることになるため、優先度の低いボリュームに対しては、コピー元を登録せず、障害が発生した時点でリモートコピーを中止してもよい（ステップ１０２６）。
【０１３１】
次に、選択した有効な登録コピー元について、ＣＰＵ３０は、有効な登録コピー元と自記憶装置システム２との間のパスが未形成であるか判断する。具体的には、他のボリューム管理情報を順に参照し、他のボリューム管理情報の有効コピー元情報に登録されたコピー元の記憶装置システム番号とポート番号のうち、有効な登録コピー元として選択されたものと一致するものがあれば、パスは形成済みであると判断する（ステップ１００２）。
【０１３２】
パスが未形成の場合、ＣＰＵ３０は、登録コピー元のアドレス情報が示す記憶装置システム２と通信し、パスを形成する（ステップ１００３）。
【０１３３】
パス形成後あるいは既にパスが形成されている場合、ＣＰＵ３０は、新たなコピー元が有するボリュームに対応するボリューム管理情報の登録コピー先に、コピー元に障害が発生したボリュームを登録できるか判断する（ステップ１０２７）。新たなコピー元が有するボリュームに対応するボリューム管理情報の登録コピー先の数が既に閾値を超えている場合には、新たなコピー元が過負荷となるのを避けるため、ＣＰＵ３０は、新たなコピー先が有するボリュームのコピー先への登録を中止し、登録コピー元有効フラグを無効とし（ステップ１０２８）、再びステップ１００１の処理を実行する。
【０１３４】
新たなコピー元が有するボリュームの登録コピー先に、コピー元に障害が発生したボリュームを登録できる場合、ＣＰＵ３０は、新たなコピー元が有するボリュームのオリジナルボリュームＶ１が、リモートコピー再開の対象となっているボリュームのオリジナルボリュームと一致するか、総コピー元情報を用いて判断する（ステップ１００４）。ステップ１００４の要件を満たさない場合、ＣＰＵ３０はコピー元を切り替えてリモートコピーを継続することはできないため、処理を終了する。
【０１３５】
ステップ１００４の要件を満たす場合、ＣＰＵ３０は、リモートコピー再開の対象となっているボリュームに対応する有効コピー元情報を新たなコピー元の情報に変更する。この時点で、コピー元が新たなコピー元に切り替わる（ステップ１００５）。
【０１３６】
障害が発生したコピー元が総コピー元である場合、登録コピー元は存在しないため、ＣＰＵ３０は処理を終了する。この場合、総コピー元とコピー先との間のリモートコピーが同期リモートコピーならば、総コピー元とコピー先とのデータは一致しているため、総コピー元の業務をそのままコピー先が引継ぐことができる。一方、総コピー元とコピー先との間のリモートコピーが非同期リモートコピーならば、総コピー元からコピー先に未転送のデータが失われるのは避けられない。しかし、コピー先のデータの一貫性は確保できるため（コピー先のデータを、総コピー元の過去のある時点の状態にできる）、一貫性を確保しているデータを利用してコピー先で業務を再開できる（ステップ１００６）。
【０１３７】
次に、ＣＰＵ３０は、最新シーケンス番号を新たなコピー元に要求する（ステップ１００７）。
【０１３８】
最新シーケンス番号を受信したＣＰＵ３０は、受信した最新シーケンス番号がリモートコピー再開対象であるボリュームの最新シーケンス番号より進んでいるか判断する（ステップ１００８）。
【０１３９】
進んでいない場合、ＣＰＵ３０は一定時間待ち（ステップ１００９）、再度ステップ１００７の処理を実行する。これは、差分コピーを実行するために、差分コピーにおけるコピー元となるボリュームの更新状態が、リモートコピーの中断したボリュームに対して、進んだ状態となるのを待つ処理である。
【０１４０】
進んでいる場合、ＣＰＵ３０は、リモートコピー再開対象であるボリュームと新たなコピー元のボリュームとの間のリモートコピーの再開と、差分コピーの実行を新たなコピー元に要求する。この要求により、新たなコピー元の記憶装置システム２において、差分コピープログラム３５が実行される。差分コピープログラム３５については後述する（ステップ１０１０）。
【０１４１】
次に、ＣＰＵ３０は、新たなコピー元からリモートコピー再開通知と差分情報を受領したか判断する。ＣＰＵ３０が受領するリモートコピー再開通知及び差分情報は、新たなコピー元となる記憶装置システムが差分コピープログラム３５を実行することによってコピー先に送信する応答である。（ステップ１０１１）。
【０１４２】
受領しない場合、ＣＰＵ３０は、一定時間待ち（ステップ１０１２）、再びステップ１０１１の処理を実行する。受領した場合、ＣＰＵ３０は、リモートコピー再開の対象であるボリュームの直接のコピー先があるか否かを判断し（ステップ１０１３）、ある場合にリモートコピー再開と差分情報を通知する。これらの情報を通知された各記憶装置システム２がボリューム通知転送プログラム３４を実行することにより、リモートコピー再開と差分情報の通知は、末端ボリュームまで伝達される（ステップ１０１４）。尚、伝達された差分情報は、各記憶装置システム２のＣＰＵ３０が、差分コピー用ビットマップに格納する。
【０１４３】
次に、ＣＰＵ３０は、ボリュームの直接のコピー先全てからリモートコピー再開完了報告と差分情報受領報告を受領したか否か判断する（ステップ１０１５）。報告を受領していない場合、ＣＰＵ３０は、一定時間待ち（ステップ１０１６）、再びステップ１０１５の処理を実行する。
【０１４４】
報告がある場合、ＣＰＵ３０は、リモートコピー再開が完了したと判断し、ステップ１０１１〜ステップ１０１６と同様な手順で、新たなコピー元からの差分コピー終了通知の受領と、リモートコピー再開対象のボリュームのコピー先への差分コピー終了の伝達を実行する。尚、差分コピーにおけるコピー先のＣＰＵ３０は、差分コピー終了通知受領時において、差分コピー開始前に受領し差分コピー中に更新し続けた差分情報を参照し、差分データをすべて受領したか判断する。受領していない差分データが存在する場合、ＣＰＵ３０は、差分コピー終了報告に受領していない差分データの情報を挿入し、コピー元に差分データの再送を要求する。具体的には、差分コピー用ビットマップにおいて、未だ解除されていないビットが存在するか判断し、未だ解除されていないビットが存在する場合、ＣＰＵ３０は、当該ビットに対応する差分データの位置情報を差分コピー終了報告に挿入する（ステップ１０１７〜ステップ１０２２）。
【０１４５】
次に、ＣＰＵ３０は、差分コピー終了報告に差分データ再送要求が含まれているか判断する（ステップ１０２３）。再送要求がある場合、ＣＰＵ３０は、新たなコピー元に差分データの再送を要求し（ステップ１０２４）、再度ステップ１０１７以降の処理を実行する。再送要求がない場合、ＣＰＵ３０は、新たなコピー元に差分コピー完了を報告し（ステップ１０２５）、処理を終了する。
【０１４６】
図１２は、新たなコピー元の記憶装置システム２において、差分コピープログラム３５が実行される場合の処理について説明するフローチャートである。
【０１４７】
まず、図１１のステップ１０１０における要求に応じて、ＣＰＵ３０は、新たなコピー元となるボリュームの登録コピー先情報エントリに、リモートコピー再開通知を受領したボリュームの情報を登録し、登録コピー先有効フラグを設定する（ステップ１１０１）。
【０１４８】
次に、ＣＰＵ３０は、新たなコピー元となるボリュームと差分コピー通知を受領したボリューム（コピー先のボリューム）間の差分情報を決定する。具体的には、新たなコピー元となるボリュームの通知を受領した時点の差分管理情報のビットマップを、差分コピー用ビットマップ領域にコピーすることで決定する（ステップ１１０２）。尚、差分情報の決定方法は、差分管理情報の持ち方により異なる。
【０１４９】
次に、ＣＰＵ３０は、リモートコピー再開通知を送信した記憶装置システム２へリモートコピー再開と決定した差分情報を通知する。この通知は、ステップ１０１１で検出される（ステップ１１０３）。
【０１５０】
次に、ＣＰＵ３０は、差分データをコピー先に転送する（ステップ１１０４）。その後、ＣＰＵ３０は、全ての差分データの転送が終了したか判断する（ステップ１１０５）。
【０１５１】
終了していない場合、ＣＰＵ３０は、差分データを差分コピー通知を受領したボリューム（コピー先）へ転送し（ステップ１１０６）、再度ステップ１１０５の処理を実行する。終了した場合、ＣＰＵ３０は、差分コピー通知の受領元へ差分コピーの終了を通知する。この通知は、ステップ９１７で検出される（ステップ１１０７）。
【０１５２】
次に、ＣＰＵ３０は、差分コピー通知の受領元からの報告が差分データの再送か判断する（ステップ１１０８）。
【０１５３】
再送要求である場合、ＣＰＵ３０は、要求された差分データを再送し（ステップ１１０９）、再度ステップ１１０７の処理を実行する。再送要求でない場合、ＣＰＵ３０は報告が差分コピー完了であることを確認し、処理を終了する。
【０１５４】
図１３は、中間ボリュームＶ２を持つ記憶装置システム２においてコピー元の障害が検出され、その結果、新たなコピー元が選択され、リモートコピーが再開されるまでの処理手順の具体例を示す図である。図示するように、コピー元の障害を検出した記憶装置システム２は、コピー元障害の検出処理、リモートコピー再開プログラム及びリモートコピー中断プログラムを並行して実行する。
【０１５５】
コピー元障害を検出した記憶装置システム２は（ステップ１３０１）、コピー元に障害が発生しているボリュームそれぞれに対してリモートコピー中断プログラム３２の実行を開始する（ステップ１３０２）。
【０１５６】
コピー元に障害が発生しているボリュームの一つについて、記憶装置システム２は、非同期リモートコピーの正式化できるデータを正式化（ステップ１３０３）し、ボリュームの直接のコピー先に対してリモートコピー中断を通知する（ステップ１３０４）。
【０１５７】
一方、記憶装置システム２は、コピー元に障害のあった全ボリュームのリモートコピーが中断した後（ステップ１３０５）、優先度の高い順にリモートコピーを再開するボリュームを選択し（ステップ１３０６）、当該ボリュームに対して、リモートコピー再開プログラム３６を起動する（ステップ１３０７）。
【０１５８】
リモートコピー再開プログラム３６を実行する記憶装置システム２は、新たなコピー元として、優先度の高い順に登録コピー元を選択し（ステップ１３０８）、必要ならばパスを形成する（ステップ１３０９）。更に、記憶装置システム２は、新たなコピー元が有するボリュームと当該リモートコピーを再開するボリュームのオリジナルボリュームの一致を確認し（ステップ１３１０）、有効コピー元を新たなコピー元へ変更することで、現在のコピー元を新たなコピー元へ切り替える（ステップ１３１１）。次に、記憶装置システム２は、新たなコピー元が有するボリュームの最新シーケンス番号が当該リモートコピーを再開するボリュームの最新シーケンス番号より進むまで待ち（ステップ１３１２）、新たなコピー元へ、リモートコピーの再開と差分コピーの実行を要求する（ステップ１３１３）。
【０１５９】
新たなコピー元となる記憶装置システム２は、ステップ１３１３のリモートコピーの再開と差分コピーの実行の要求を受領すると、差分コピープログラム３５を起動する。
【０１６０】
新たなコピー元となる記憶装置システム２は、新たなコピー元が有するボリュームのコピー先に当該リモートコピーを再開するボリュームを登録し（ステップ１３１４）、差分情報を決定する（ステップ１３１５）。更に新たなコピー元となる記憶装置システム２は、リモートコピーの再開と決定した差分情報を、ステップ１３１３のリモートコピーの再開と差分コピーの実行の要求元となる記憶装置システム２へ通知する（ステップ１３１６）。
【０１６１】
その後、コピー元障害を検出した記憶装置システムは、リモートコピー再開プログラム３６を実行して、ステップ１３１６により通知されたリモートコピーの再開と決定した差分情報を、当該リモートコピーを再開するボリュームの直接のコピー先に対して通知する（ステップ１３１７）。
【０１６２】
一方、記憶装置システム２は、ステップ１３１６により通知されたリモートコピーの再開を検出し、次に優先度の高いリモートコピーを再開するボリュームを選択し（ステップ１３１８）、選択したボリュームに対して、リモートコピー再開プログラム３６の実行を開始する（ステップ１３１９）。
【０１６３】
新たなコピー元となる記憶装置システムは、差分データをコピー元障害を検出した記憶装置システムに転送する（ステップ１３２０）。当該差分データを受信したコピー元障害を検出した記憶装置システム２は、ライトプログラム３１を実行することで、更に、当該リモートコピーを再開するボリュームの直接のコピー先に差分データを転送する（ステップ１３２１）。
【０１６４】
また、差分データの転送と並行して、新たなコピー元となる記憶装置システムは、ライトプログラム３１を実行し、受領したリモートコピーデータを、コピー元障害を検出した記憶装置システム２を含むコピー先へ転送する（ステップ１３２２）。コピー元障害を検出した記憶装置システム２は、ライトプログラム３１を実行して、更に、当該リモートコピーデータの受領とは同期または非同期に、当該リモートコピーを再開するボリュームの直接のコピー先にリモートコピーデータを転送する（ステップ１３２３）。
【０１６５】
更に、新たなコピー元となる記憶装置システムは、差分データの転送が終了すると、差分コピーの終了を、ステップ１３１３のリモートコピーの再開と差分コピーの実行の要求元へ通知する（ステップ１３２４）。
【０１６６】
コピー元障害を検出した記憶装置システムは、リモートコピー再開プログラム３６を実行することで、ステップ１３２４により通知された差分コピーの終了を、当該リモートコピーを再開するボリュームの直接のコピー先に対して通知する（ステップ１３２５）。
【０１６７】
当該差分コピーの終了の通知をもって、コピー元障害を検出した記憶装置システム２は、当該リモートコピーを再開するボリュームについてのリモートコピー再開プログラム３６、及び差分コピープログラム３５を終了する。
【０１６８】
次に、被災から回復したサイトに再びリモートコピーの業務を行わせるための、サイトの回復手順について説明する。
【０１６９】
まず、サイトに含まれる各装置、例えば記憶装置システム２を被災前の状態に人手等により回復する。具体的には、新たに、または、復旧させた施設を確保し、ホスト１や記憶装置システム２を人手等により設置・接続する。また、他サイトとの間の通信路も確保する。
【０１７０】
次に、回復したサイトの各記憶装置システム２において、災害等によってリモートコピーを中断する前のリモートコピー対象ボリュームの内、中間ボリューム、または、末端ボリュームについて、リモートコピーが中断する前にコピー元だった記憶装置システム２からリモートコピーによりボリュームを再構成する。手順の概要は、以下の通りである。
【０１７１】
まず、回復したサイトの各記憶装置システム２において、以前にコピー元だった記憶装置システム２との間の転送パスを設定する。次に、回復した記憶装置システム２が有するボリュームを、コピー元だった記憶装置システム２のボリュームに再びコピー先ボリューム（中間ボリューム又は末端ボリューム）として設定し、再びコピー元となったボリュームに含まれるデータ全体と更新内容の転送を開始する。コピー先ボリュームの設定は、リモートコピー中断前と同じ設定でも、全く異なる設定でも良い。
【０１７２】
次に、リモートコピーによりボリュームの内容が回復したボリュームでコピー先ボリュームが設定されているボリューム（つまり中間ボリューム）がある場合、記憶装置システム２は、コピー先として設定されている記憶装置システム２に対して、記憶装置システム２の回復を通知する。
【０１７３】
記憶装置システム２の回復の通知を受信したコピー先は、リモートコピー中断プログラム３２及びリモートコピー再開プログラム３６を実行し、コピー元を回復した記憶装置システム２に切り替える。
【０１７４】
以上より、被災から回復したサイトに再びリモートコピーの業務を行わせることができる。
【０１７５】
本発明によれば、主に３サイト以上のＮサイトに配置された記憶装置システム間において、任意サイトの被災後、速やかにリモートコピーを再開することができる。
【図面の簡単な説明】
【図１】Ｎサイト間のリモートコピーの構成例を示す図。
【図２】記憶装置システムの構成例を示す図。
【図３】シーケンス管理情報とキャッシュメモリの関係の一例を示す図。
【図４】ボリューム管理情報の一例を示す図。
【図５】記憶装置システムで実行するライト処理の一例を示す図
【図６】非同期コピー元の記憶装置システムで実行する非同期転送処理の一例を示す図。
【図７】非同期コピー先の記憶装置システムで実行する非同期正式化処理の一例を示す図。
【図８】Ｎサイト間のリモートコピーにおける、各記憶装置システムでの処理の概要の一例を示す図。
【図９】コピー元の障害を検出した記憶装置システムで実行する障害処理の一例を示す図。
【図１０】コピー元の障害を検出した記憶装置システムで実行するリモートコピー中断処理の一例を示す図。
【図１１】コピー元の障害を検出した記憶装置システムで実行するリモートコピー再開処理の一例を示す図。
【図１２】コピー元の障害を検出した記憶装置システムが新たなコピー元とする記憶装置システムで実行する差分コピープログラムの一例を示す図。
【図１３】コピー元を切り替えて新たなコピー元でリモートコピーを再開する手順の一例を示す図。
【符号の説明】
１：ホスト  ２：記憶装置システム  ２１：記憶制御装置  ２２：記憶装置  ２３：保守端末  ３：チャネルインタフェース  ４：ディスクインタフェース  ５：キャッシュメモリ  ６：管理情報メモリ
【図１】
2004348174.tif 000003
【図２】
2004348174.tif 000004
【図３】
2004348174.tif 000005
【図４】
2004348174.tif 000006
【図５】
2004348174.tif 000007
【図６】
2004348174.tif 000008
【図７】
2004348174.tif 000009
【図８】
2004348174.tif 000010
【図９】
2004348174.tif 000011
【図１０】
2004348174.tif 000012
【図１１】
2004348174.tif 000013
【図１２】
2004348174.tif 000014
【図１３】
2004348174.tif 000015