(57)【要約】【課題】複数経路でストレージシステムのリモートコピー経路が設定されている場合に、各経路で同期したフェイルオーバの実現を目的とする。【解決手段】複数の第１記憶装置システムと、第１記憶装置システムの各々に接続される複数の第２記憶装置システムとを有し；各第２記憶装置システムは、第１記憶装置システムの第１論理ボリュームに格納されるデータの複製が格納される第２論理ボリュームを有し；第２論理ボリュームに格納されるデータの更新前に格納されていた更新前データ、及び、第２論理ボリュームに格納されるデータの時刻情報を格納する更新前データ記憶部を有し；各第２記憶装置システムは、更新前データ記憶部に格納される時刻情報に基づいて設定される回復時刻以前の更新前データを更新前データ記憶部から取得し、更新前データを、時刻情報の新しい順に第２論理ボリュームに書き込んで、第２論理ボリュームのデータを回復する。【選択図】  図１
2006023889.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置システム間でデータを複写するリモートコピーシステムであって、
計算機からデータが入出力される複数の第１記憶装置システムと、前記第１記憶装置システムの各々に接続される複数の第２記憶装置システムとを有し；
前記各第１記憶装置システムは、前記入出力されるデータが格納される第１論理ボリュームを有し、
前記各第２記憶装置システムは、前記第１論理ボリュームに格納されるデータの複製が格納される第２論理ボリュームを有し；
前記第２論理ボリュームに格納されるデータの更新前に格納されていた更新前データ、及び、前記第２論理ボリュームに格納されるデータの時刻情報を格納する更新前データ記憶部を有し；
前記各第２記憶装置システムは、
前記更新前データを前記更新前データ記憶部に格納した後、前記第１記憶システムから転送されたライトデータが前記第１記憶装置に書き込まれた順に、前記ライトデータを前記第２論理ボリュームに格納し、
前記更新前データ記憶部に格納される最新時刻情報のうち最も過去のものと、最古時刻情報のうち最も新しいものとの間で設定される回復時刻以前の更新前データを、前記更新前データ記憶部から取得し、
前記更新前データを、前記時刻情報の新しい順に、前記第２論理ボリュームに書き込んで、前記第２論理ボリュームのデータを前記回復時刻まで回復するリモートコピーシステム。
【請求項２】
前記時刻情報は、前記第１記憶装置システムにデータが入力された時刻である請求項１に記載のリモートコピーシステム。
【請求項３】
前記回復時刻は、前記各第２論理ボリュームに記憶されたデータの時刻情報の最新の時刻情報のうち、最も過去のものである請求項１に記載のリモートコピーシステム。
【請求項４】
前記更新前データ記憶部は、さらに、前記第２論理ボリュームに格納される更新後データを格納し、
前記各第２記憶装置システムは、
前記第２論理ボリュームに現在格納されている最新のデータの時刻情報と、前記回復時刻とを比較し、
前記第２論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より新しいときは、前記回復時刻以後の更新前データを前記更新前データ記憶部から取得し、前記取得した更新前データを前記時刻情報の新しい順に前記第２論理ボリュームに書き込み、
前記第２論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より古いときは、前記回復時刻以前の更新後データを前記更新前データ記憶部から取得し、前記取得した更新後データを前記時刻情報の古い順に前記第２論理ボリュームに書き込む請求項１に記載のリモートコピーシステム。
【請求項５】
前記第１記憶装置システムに接続される第１計算機と、前記第２記憶装置システムに接続される第２計算機と、を有し；
前記各第２記憶装置システムは、前記更新前データ記憶部を有し；
前記第１計算機は、前記第１記憶装置システムに対してデータを入出力し；
前記第２計算機は、
前記更新前データ記憶部に格納される時刻情報を、前記各第２記憶装置システムから取得し、
最も過去の最新時刻情報と最も新しい最古時刻情報を、前記取得した時刻情報から抽出し、
前記抽出された最も過去の最新時刻情報と、前記抽出された最も新しい最古時刻情報の間で回復時刻を決定し、
前記決定された回復時刻までのデータの回復を、前記各第２記憶装置システムに対して指示する請求項１に記載のリモートコピーシステム。
【請求項６】
前記第２計算機は、
前記第２論理ボリュームに格納されるデータの時刻情報を、前記各第２記憶装置システムから取得し、
前記第２論理ボリュームに格納されるデータの最新時刻情報のうち、最も過去の時刻情報を削除許可時刻に決定し、
前記決定された削除許可時刻を、前記各第２記憶装置システムに通知し；
前記各第２記憶装置システムは、前記通知された削除許可時刻より古い前記更新前データを、前記更新前データ記憶部から削除する請求項５に記載のリモートコピーシステム。
【請求項７】
複数の記憶装置システム間でデータを複写するリモートコピーシステムであって、
計算機からデータが入出力される複数の第１記憶装置システムと、前記第１記憶装置システムの各々に接続される複数の第２記憶装置システムと、前記第２記憶装置システムの各々に接続される複数の第３記憶装置システムとを有し；
前記各第１記憶装置システムは、前記入出力されるデータが格納される第１論理ボリュームを有し、
前記各第２記憶装置システムは、前記第１論理ボリュームに格納されるデータの複製が格納される第２論理ボリュームを有し、
前記各第３記憶装置システムは、前記第２論理ボリュームに格納されるデータの複製が格納される第３論理ボリュームを有し；
前記第３論理ボリュームに格納されるデータの更新前に格納されていた更新前データ、及び、前記第３論理ボリュームに格納されるデータの時刻情報を格納する更新前データ記憶部を有し；
前記各第３記憶装置システムは、
前記更新前データを前記更新前データ記憶部に格納した後、前記第２記憶システムから転送されたライトデータが前記第１記憶装置に書き込まれた順に、前記ライトデータを前記第３論理ボリュームに格納し、
前記更新前データ記憶部に格納される最新時刻情報のうち最も過去のものと、最古時刻情報のうち最も新しいものとの間で設定される回復時刻以前の更新前データを、前記更新前データ記憶部から取得し、
前記更新前データを、前記時刻情報の新しい順に、前記第３論理ボリュームに書き込んで、前記第３論理ボリュームのデータを前記回復時刻まで回復するリモートコピーシステム。
【請求項８】
前記時刻情報は、前記第１記憶装置システムにデータが入力された時刻である請求項７に記載のリモートコピーシステム。
【請求項９】
前記回復時刻は、前記各第２論理ボリュームに記憶されたデータの時刻情報の最新の時刻情報のうち、最も過去のものである請求項７に記載のリモートコピーシステム。
【請求項１０】
前記更新前データ記憶部は、さらに、前記第３論理ボリュームに格納される更新後データを格納し、
前記各第３記憶装置システムは、
前記第３論理ボリュームに現在格納されている最新のデータの時刻情報と、前記回復時刻とを比較し、
前記第３論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より新しいときは、前記回復時刻以後の更新前データを前記更新前データ記憶部から取得し、前記取得した更新前データを前記時刻情報の新しい順に前記第３論理ボリュームに書き込み、
前記第３論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より古いときは、前記回復時刻以前の更新後データを前記更新前データ記憶部から取得し、前記取得した更新後データを前記時刻情報の古い順に前記第３論理ボリュームに書き込む請求項７に記載のリモートコピーシステム。
【請求項１１】
前記第１記憶装置システムに接続される第１計算機と、前記第３記憶装置システムに接続される第２計算機と、を有し；
前記各第３記憶装置システムは、前記更新前データ記憶部を有し；
前記第１計算機は、前記第１記憶装置システムに対してデータを入出力し；
前記第２計算機は、
前記更新前データ記憶部に格納される時刻情報を、前記各第２記憶装置システムから取得し、
最も過去の最新時刻情報と最も新しい最古時刻情報を、前記取得した時刻情報から抽出し、
前記抽出された最も過去の最新時刻情報と、前記抽出された最も新しい最古時刻情報の間で回復時刻を決定し、
前記決定された回復時刻までのデータの回復を、前記各第３記憶装置システムに対して指示する請求項７に記載のリモートコピーシステム。
【請求項１２】
前記第２計算機は、
前記第３論理ボリュームに格納されるデータの時刻情報を、前記各第３記憶装置システムから取得し、
前記第３論理ボリュームに格納されるデータの最新時刻情報のうち、最も過去の時刻情報を削除許可時刻に決定し、
前記決定された削除許可時刻を、前記各第３記憶装置システムに通知し、
前記各第３記憶装置システムは、前記通知された削除許可時刻より古い前記更新前データを、前記更新前データ記憶部から削除する請求項１１に記載のリモートコピーシステム。
【請求項１３】
複数の正記憶装置システムに格納されているデータを複写する複数の副記憶装置システムであって、
前記各正記憶装置システムは、計算機から入出力されるデータが格納される正論理ボリュームを有し、
前記各副記憶装置システムは、前記正論理ボリュームに格納されるデータの複製が格納される副論理ボリュームを有し；
前記副論理ボリュームに格納されるデータの更新前に格納されていた更新前データ、及び、前記副論理ボリュームに格納されるデータの時刻情報を格納する更新前データ記憶部を有し；
前記更新前データを前記更新前データ記憶部に格納した後、前記正記憶装置システムから転送されたライトデータが前記正記憶装置に書き込まれた順に、前記ライトデータを前記副論理ボリュームに格納し、
前記更新前データ記憶部に格納される最新時刻情報のうち最も過去のものと、最古時刻情報のうち最も新しいものとの間で設定される回復時刻以前の更新前データを、前記更新前データ記憶部から取得し、
前記更新前データを、前記時刻情報の新しい順に、前記副論理ボリュームに書き込んで、前記副論理ボリュームのデータを前記回復時刻まで回復する記憶装置システム。
【請求項１４】
前記時刻情報は、前記正記憶装置システムにデータが入力された時刻である請求項１３に記載の記憶装置システム。
【請求項１５】
前記回復時刻は、前記各副論理ボリュームに記憶されたデータの時刻情報の最新の時刻情報のうち、最も過去のものである請求項１３に記載の記憶装置システム。
【請求項１６】
前記更新前データ記憶部は、さらに、前記副論理ボリュームに格納される更新後データを格納し、
前記副論理ボリュームに現在格納されている最新のデータの時刻情報と、前記回復時刻とを比較し、
前記副論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より新しいときは、前記回復時刻以後の更新前データを前記更新前データ記憶部から取得し、前記取得した更新前データを前記時刻情報の新しい順に前記副論理ボリュームに書き込み、
前記副論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より古いときは、前記回復時刻以前の更新後データを前記更新前データ記憶部から取得し、前記取得した更新後データを前記時刻情報の古い順に前記副論理ボリュームに書き込む請求項１３に記載の記憶装置システム。
【請求項１７】
前記更新前データ記憶部に格納される時刻情報を、前記各副記憶装置システムから取得し、
最も過去の最新時刻情報と最も新しい最古時刻情報を、前記取得した時刻情報から抽出し、
前記抽出された最も過去の最新時刻情報と、前記抽出された最も新しい最古時刻情報の間で回復時刻に決定し、
前記決定された回復時刻までのデータを回復する請求項１３に記載の記憶装置システム。
【請求項１８】
前記副論理ボリュームに格納されるデータの時刻情報を、前記各副記憶装置システムから取得し、
前記副論理ボリュームに格納されるデータの最新時刻情報のうち、最も過去の時刻情報を削除許可時刻に決定し、
前記決定された削除許可時刻を、前記他の副記憶装置システムに対して通知し、
前記決定された削除許可時刻より古い前記更新前データを、前記更新前データ記憶部から削除する請求項１７に記載の記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機が使用するデータの複製を複数の記憶装置システム（ストレージシステム）で保持するリモートコピーシステムに関し、特に、複数の記憶装置システム間で同期してロールバックする技術に関する。
【背景技術】
【０００２】
近年の計算機システムでは、使用されるデータの容量が増大し、データの更新頻度も高くなっている。このデータをどのようにバックアップし、また障害発生時にどれだけ迅速に正常稼働状態に復旧できるかが、ストレージ技術における重要課題となっている。これに対する一つの解決策として、磁気ディスクアレイを搭載した記憶サブシステム（外部記憶装置）を遠隔地に複数台設置して、それらの間を通信パスで接続し、一方の記憶サブシステムで更新されたデータを、ホスト計算機を経由せずに、自動的に他の記憶サブシステムにコピーする、リモートコピー技術がある（例えば、特許文献１参照。）。
【０００３】
また、正ストレージと副ストレージとの間でデータの整合を図る技術として、ライト時刻を用いるものが提案されている。すなわち、正ホスト（primary host）からライトデータを受領した正ストレージシステム（primary storage system）は、ライトデータ受領後直ちに、ライトデータの受領完了を、正ホストに報告するが、このあと正ホストはライトデータのコピーを、正ストレージシステムから読み出す。このライトデータには、ライト要求が発行された時刻であるライト時刻が付与されている。正側のホストがライトデータを読み出す際には、ライト時刻も正側のホストに送られる。さらに正ホストはライトデータとライト時刻を副ホスト（secondary host）に転送する。
【０００４】
ライトデータとライト時刻を受け取った副ホストは、ライト時刻などの情報を副ストレージシステム（secondary storage system）の制御用のボリュームに書き込む。さらに、各ライトデータに付与されたライト時刻を参照して、ライト時刻順にライトデータを副側のストレージシステムに書き込む。ライト時刻順にライトデータを副ストレージシステムに書き込むことによって、常に副ストレージシステムに整合性のあるデータを保持することができる（例えば、特許文献２参照。）。
【特許文献１】特開２００４−１３３６７号公報
【特許文献２】欧州特許第０６７１６８６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述した従来技術では、ホストがデータの転送および反映の処理を常時継続して行うため、ホストが常時起動している必要がある。さらに、前述した処理を実行するソフトウェアが常時動作している必要があり、前記ホストに処理負荷が常時発生する。
【０００６】
また、複数のストレージシステムが複数経路で接続されている場合に、ストレージシステム間のデータの非同期コピーは任意のタイミングで行われるので、各経路間のストレージシステム間でデータの更新時点が異なる。よって、フェイルオーバ時には、各経路間のストレージシステムに格納されるデータが整合しないことがある。これでは、副サイトによるサービスの提供に支障がある。
【０００７】
本発明は、複数経路でストレージシステムのリモートコピー経路が設定されている場合に、各経路で同期したフェイルオーバの実現を目的とする。
【課題を解決するための手段】
【０００８】
本発明は、複数の記憶装置システム間でデータを複写するリモートコピーシステムであって、計算機からデータが入出力される複数の第１記憶装置システムと、前記第１記憶装置システムの各々に接続される複数の第２記憶装置システムとを有し；前記各第１記憶装置システムは、前記入出力されるデータが格納される第１論理ボリュームを有し、前記各第２記憶装置システムは、前記第１論理ボリュームに格納されるデータの複製が格納される第２論理ボリュームを有し；前記第２論理ボリュームに格納されるデータの更新前に格納されていた更新前データ、及び、前記第２論理ボリュームに格納されるデータの時刻情報を格納する更新前データ記憶部を有し；前記各第２記憶装置システムは、前記更新前データを前記更新前データ記憶部に格納した後、前記第１記憶システムから転送されたライトデータが前記第１記憶装置に書き込まれた順に、前記ライトデータを前記第２論理ボリュームに格納し、前記更新前データ記憶部に格納される最新時刻情報のうち最も過去のものと、最古時刻情報のうち最も新しいものとの間で設定される回復時刻以前の更新前データを、前記更新前データ記憶部から取得し、前記更新前データを、前記時刻情報の新しい順に、前記第２論理ボリュームに書き込んで、前記第２論理ボリュームのデータを前記回復時刻まで回復する。
【０００９】
また、本発明では、前記更新前データ記憶部は、さらに、前記第２論理ボリュームに格納される更新後データを格納し、前記各第２記憶装置システムは、前記第２論理ボリュームに現在格納されている最新のデータの時刻情報と、前記回復時刻とを比較し、前記第２論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より新しいときは、前記回復時刻以後の更新前データを前記更新前データ記憶部から取得し、前記取得した更新前データを前記時刻情報の新しい順に前記第２論理ボリュームに書き込み、前記第２論理ボリュームに現在格納されている最新のデータの時刻情報が前記回復時刻より古いときは、前記回復時刻以前の更新後データを前記更新前データ記憶部から取得し、前記取得した更新後データを前記時刻情報の古い順に前記第２論理ボリュームに書き込む。
【００１０】
また、本発明では、前記第２記憶装置システムに接続される第２計算機を有し、前記第２計算機は、前記更新前データ記憶部に格納される時刻情報を、前記各第２記憶装置システムから取得し、最も過去の最新時刻情報と最も新しい最古時刻情報を、前記取得した時刻情報から抽出し、前記抽出された最も過去の最新時刻情報と、前記抽出された最も新しい最古時刻情報の間で回復時刻を決定し、前記決定された回復時刻までのデータの回復を、前記各第２記憶装置システムに対して指示する。
【００１１】
また、本発明では、前記第２計算機は、前記第２論理ボリュームに格納されるデータの時刻情報を、前記各第２記憶装置システムから取得し、前記第２論理ボリュームに格納されるデータの最新時刻情報のうち、最も過去の時刻情報を削除許可時刻に決定し、前記決定された削除許可時刻を、前記各第２記憶装置システムに通知し；前記各第２記憶装置システムは、前記通知された削除許可時刻より古い前記更新前データを、前記更新前データ記憶部から削除する。
【００１２】
すなわち、本発明の実施の形態では、正ストレージシステムは、ライト要求に付与されているライト時刻を前記データとともに副ストレージシステムに転送する。副ストレージシステムは、複製されたデータに転送されたデータを反映する前に、更新前データをジャーナルとして取得し、格納されているデータを更新前データに回復できるようにする。各副ストレージシステムは、正ストレージシステムから受領したデータを適当なタイミングで反映する。
【００１３】
そして、障害発生時は、管理プログラムが各副ストレージシステムからどのライト時刻までデータを反映したかの情報を収集して、データの反映の整合がとれた時点までのロールバックを指示する。副ストレージシステムがロールバックを実行することによって、各副ストレージシステムで整合がとれたデータを回復することができる。
【００１４】
また、管理ソフトは所定のタイミングで各副ストレージシステムからどのライト時刻のデータまで反映したかの情報を収集する。そして、データの反映の整合がとれた時点までのジャーナルの破棄を、副ストレージシステムに指示する。
【発明の効果】
【００１５】
本発明によると、正ストレージシステム及び副ストレージシステムが複数存在し、非同期リモートコピーで動作する場合でも、正ストレージシステムのＩ／Ｏ処理の負荷及びホストの負荷を増大させることはない。また、障害発生時に、複数ストレージシステム間でのデータの整合性を保持することができる。よって、大規模なディザスタリカバリシステムで有効である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して説明する。
【００１７】
図１は、第１実施形態の計算機システムのブロック図である。
【００１８】
本計算機システムは、複数台の記憶装置（正ストレージシステム）Ａ１００、複数台の記憶装置（副ストレージシステム）Ｂ１９０、ホスト計算機Ａ６００、ホスト計算機Ｂ６９０から構成される。ホスト計算機Ａ６００及びホスト計算機Ｂ６９０は、ＣＰＵ、メモリを有するコンピュータ装置である。ホスト計算機Ａ６００は、通常運用に供され、ホスト計算機Ｂ６９０は、通常時は待機状態にあるスタンバイ系である。
【００１９】
各記憶装置Ａ１００とホスト計算機Ａ６００とはＩ／Ｏパス９００で接続されている。さらに、各記憶装置Ｂ１９０とホスト計算機Ｂ６９０とはＩ／Ｏパス９００で接続されている。各記憶装置Ａ１００、各記憶装置Ｂ１９０、ホスト計算機Ａ６００及びホスト計算機Ｂ６９０はネットワーク９２０で接続されている。
【００２０】
また、ホスト計算機Ａ６００及びホスト計算機Ｂ６９０には、オペレーションシステム（ＯＳ）６１０とアプリケーションプログラム（ＡＰＰ）６２０が動作している。ＡＰＰ６２０には、データベースマネジメントシステム等のソフトウェアが含まれる。
【００２１】
ホスト計算機Ａ６００のＡＰＰ６２０は、ＯＳ６１０を介してＩ／Ｏ要求を発行する。発行されたＩ／Ｏ要求は、Ｉ／Ｏパス９００を介して記憶装置Ａ１００に転送される。同様に、ホスト計算機Ｂ６９０のＡＰＰ６２０は、ＯＳ６１０を介してＩ／Ｏ要求を発行する。発行されたＩ／Ｏ要求は、Ｉ／Ｏパス９００を介して記憶装置Ｂ１９０に転送される。
【００２２】
記憶装置Ａ１００は、制御部２００、制御用メモリ３００、キャッシュ４００及び論理ボリューム５００を備える。
【００２３】
制御部２００は、ライトデータ受領部Ａ２１０及びライトデータ転送部Ａ２２０を備える。制御部２００は、制御用メモリ３００にアクセスして、制御用メモリ３００に格納されている情報を用いて後述する処理を実行する。
【００２４】
制御用メモリ３００は、グループ管理情報３１０、相手論理ボリューム情報３２０及びライトデータ管理情報３３０を備える。
【００２５】
キャッシュ４００は、リードデータやライトデータを格納する高速なメモリである。記憶装置Ａ１００は、キャッシュ４００にデータを一時的に格納することによって、高いＩ／Ｏ処理性能を実現することができる。
【００２６】
なお、記憶装置Ａ１００の各部は、耐障害性、可用性のために二重化され、バックアップ電源が用意されていることが望ましい。
【００２７】
同じく、記憶装置Ｂ１９０は、制御部２００、制御メモリ３００、キャッシュ４００及び論理ボリューム５００を備える。
【００２８】
制御部２００は、ライトデータ受領部Ｂ２１１、ライトデータ反映部２４０及びジャーナル処理部Ｂ２６０を備える。制御メモリ３００とキャッシュ４００の機能は前述の記憶装置Ａ１００の説明と同様である。
【００２９】
記憶装置Ａ１００と記憶装置Ｂ１９０は、ホスト計算機Ａ６００及びホスト計算機Ｂ６９０に対し、データの記憶領域として論理ボリューム５００を提供する。一つの論理ボリューム５００は物理的に一つの装置によって構成されている必要はなく、例えば複数のディスクドライブに分散した記憶領域の集合であってもよい。また、論理ボリュームは、例えばミラー構成や、パリティデータを付加したＲＡＩＤ構成などの冗長性を持たせた構成であってもよい。
【００３０】
記憶装置Ａ１００と記憶装置Ｂ１９０は、転送パス９１０で接続されている。記憶装置Ａ１００と記憶装置Ｂ１９０は後述するように、一方の論理ボリュームの内容の複製を、他方の論理ボリュームに格納することができる。本実施の形態では、記憶装置Ａ１００の論理ボリューム５００の内容の複製が、記憶装置Ｂ１９０の論理ボリューム５００に格納される。すなわち、記憶装置Ａ１００の論理ボリューム５００の更新内容は、転送パス９１０を介して記憶装置Ｂ１９０に送られる。そして、その更新内容が記憶装置Ｂ１９０の論理ボリューム５００に格納される。
【００３１】
この記憶装置Ａ１００から記憶装置Ｂ１９０へ転送されたデータは、任意のタイミングで、論理ボリューム５００へ格納される。よって、各記憶装置Ｂ１９０に格納されたデータが記憶装置Ａ１００に書き込まれたライト時刻は同一ではないタイミングが存在する。すなわち、記憶装置Ａ１００に同時に書き込まれたデータが、ある記憶装置Ｂ１９０では論理ボリュームに反映されているが、他の記憶装置Ｂ１９０では論理ボリュームに反映されていない場合がある。
【００３２】
後述するように、記憶装置Ａ１００と記憶装置Ｂ１９０は、データの複製について論理ボリューム間の関係を示す管理情報を有する。この管理情報を用いて前述した複製データが記憶装置Ｂ１９０の論理ボリューム５００に格納される。論理ボリューム５００間の関係及び後述する論理ボリュームグループの関係は、ユーザによって必要に応じて設定される。
【００３３】
なお、記憶装置Ａ１００と記憶装置Ｂ１９０は一対一で接続されていなくてもよい。すなわち、正側（ソース）と副側（ターゲット）で、各論理ボリューム及び論理ボリュームグループが対応していれば、正側と副側の論理ボリュームや論理ボリュームグループが、接続されている記憶装置Ａ１００と記憶装置Ｂ１９０との間で、同数でなくてもよい。
【００３４】
記憶装置Ｂ１９０には、ジャーナル７００が記憶されている。ジャーナル７００は、論理ボリューム５００とは別の記憶領域を設けてもよいが、論理ボリューム５００の記憶領域の一部に設けてもよい。また、ジャーナル７００を、記憶装置Ｂ１９０内ではなく、記憶装置Ｂ１９０とは別に設けてもよい。
【００３５】
ジャーナル７００には、図８に示すように、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ反映される前の更新前データと、そのデータの管理情報が記憶されている。また、図１３に示す変形例では、更新前データ及び管理情報の他、記憶装置Ｂ１９０の論理ボリューム５００へ格納される更新後データ（ライトデータ）も記憶されている。
【００３６】
なお、前述した構成では、ホストＢ６９０と記憶装置Ａ１００とは直接接続されていないが、ホストＢ６９０と記憶装置Ａ１００とがＩ／Ｏパス（図示省略）で接続されていてもよい。この場合、ホストＢ６９０は、ホスト計算機Ａ６００や記憶装置Ｃ１８０に障害が発生した場合に、記憶装置Ａ１００の論理ボリューム５００の記憶内容を用いて、ホスト計算機Ａ６００が実行していた業務を引き継ぐことができる。
【００３７】
また、前述した構成では、管理ソフトＢ８９０はホストＢ６９０にて実行されているが、管理ソフトＢ８９０はホストＢ６９０、記憶装置Ａ１００又は記憶装置Ｂ１９０のいずれで実行されていてもよい。また、記憶装置Ａ１００及び記憶装置Ｂ１９０に接続されている図示されていない他の計算機で実行されていてもよい。
【００３８】
図２は、論理ボリュームグループの概念図である。
【００３９】
本実施の形態では、論理ボリューム間の関係はグループ化されている。図２において、破線は論理ボリューム５００間又は論理ボリュームグループ間の複製関係、すなわち、正側（ソース）と副側（ターゲット）との対応関係を示している。本実施形態ではこのような複数の論理ボリュームを有する論理ボリュームグループの単位で、記憶装置間のライトデータの転送、及び記憶装置Ｂ１９０におけるデータの反映を管理している。また、前述したような処理に必要なリソースは、論理ボリュームグループ単位で割り当てられている。
【００４０】
仮に、個々の論理ボリューム毎に、これらの複製関係を管理したり、リソースを割り当てると、管理対象が多く管理が煩雑になる。また、処理対象が多いため、処理に必要なリソースが増大する可能性がある。
【００４１】
一方、記憶装置Ａ１００全体を一つの単位とすると、論理ボリューム５００の特質に対応した管理が困難となる。特に、論理ボリューム５００に対して要求される性能が異なるホスト（例えば、メインフレームホストとオープンシステムホスト）を別のグループに分けて、それぞれのグループでライトデータを処理する。また、これらのライトデータの転送処理に対するユーザからの操作やチューニング条件の設定などを別々に受けられるようにすることが好ましい。
【００４２】
このような論理ボリュームグループを設けることで、ユーザや業務の必要に対応した、柔軟な複製処理及び論理グループの管理を提供することができる。
【００４３】
図３は、複製を作成している論理ボリューム５００（ソースとなる論理ボリューム）に対して、記憶装置Ａ１００がホスト計算機Ａ６００からライト要求を受領した場合の処理のフローチャートであり、ライトデータ受領部Ａ２１０によって実行される。
【００４４】
ライトデータ受領部Ａ２１０は、ホスト計算機Ａ６００からライト要求を受領する（ステップ１０００）。
【００４５】
そして、ライトデータをキャッシュ４００に格納する（ステップ１００１）。その後、グループ管理情報３１０を参照してシーケンシャル番号を与えてライトデータ管理情報３３０を作成する（ステップ１００２）。
【００４６】
最後に、ホスト計算機Ａ６００にライト完了を報告する（ステップ１００３）。
【００４７】
以上説明したライト要求受領処理には、キャッシュ４００に格納されたライトデータを論理ボリューム５００の物理的記録媒体（ディスクドライブ）へ書き込む処理や、記憶装置Ｂ１９０へライトデータを転送する処理等の時間のかかる処理は含まれない。これらの処理はライト要求受領処理の終了後に適当なタイミングで、ライトデータの受領と非同期に実行される。よって、ライトデータ受領部Ａ２１０がライト要求を受領してからライト完了を報告するまでの時間は短くてよく、ホスト計算機Ａ６００に対する高速な応答を実現することができる。
【００４８】
図４は、各論理ボリュームグループのグループ管理情報３１０の構成図である。
【００４９】
グループ管理情報３１０には、論理ボリュームグループの構成を管理する情報が定義されており、グループＩＤ３１１、シーケンシャル番号３１２、論理ボリューム数３１３、論理ボリュームＩＤ３１４、相手記憶装置ＩＤ３１５及び相手グループＩＤ３１６が含まれている。
【００５０】
グループＩＤ３１１は、記憶装置Ａ１００において論理ボリュームグループを特定するための符号である。
【００５１】
シーケンシャル番号３１２は、当該論理ボリュームグループに属する論理ボリュームに対するライトデータに連続的に与えられる番号である。シーケンシャル番号の初期値は、例えば、”０”で、順次１ずつ増やした番号がライトデータに与えられる。
【００５２】
論理ボリューム数３１３は、当該論理ボリュームグループに属している論理ボリュームの数である。
【００５３】
論理ボリュームＩＤ３１４は、当該論理ボリュームグループに属している論理ボリュームを、記憶装置Ａ１００において、一意に特定する符号である。
【００５４】
相手記憶装置ＩＤ３１５は、当該論理ボリュームグループと対となる論理ボリュームグループを有する記憶装置を特定する符号である。例えば本実施形態では、相手記憶装置ＩＤ３１５に記憶装置Ｂ１９０のシリアル番号を用いることによって、当該論理ボリュームグループに属する論理ボリュームの内容の複製を格納する記憶装置を特定する。
【００５５】
相手グループＩＤ３１６は、当該論理ボリュームグループの対となる論理ボリュームグループが属する論理ボリュームグループを、相手記憶装置（記憶装置Ｂ１９０）において、一意に特定する符号である。すなわち、相手グループＩＤ３１６によって、当該論理ボリュームグループに属する論理ボリュームの内容の複製を格納している論理ボリューム５００（相手論理ボリューム）が属する論理ボリュームグループが特定される。
【００５６】
図５は、各論理ボリュームの相手論理ボリューム情報３２０の構成図である。
【００５７】
相手論理ボリューム情報３２０には、ソース側とターゲット側の論理ボリュームの対の情報が定義されており、論理ボリュームＩＤ３２１、相手記憶装置ＩＤ３２２及び相手論理ボリュームＩＤ３２３が含まれている。
【００５８】
論理ボリュームＩＤ３２１は、ソース側の論理ボリューム（記憶装置Ａ１００の論理ボリューム５００）を特定する符号である。
【００５９】
相手記憶装置ＩＤ３２２は、論理ボリュームＩＤ３２１で特定される論理ボリュームと対となっている論理ボリューム（相手論理ボリューム）を有する記憶装置（記憶装置Ｂ１９０）を特定する符号である。例えば本実施形態では、相手記憶装置ＩＤ３２２に記憶装置Ｂ１９０のシリアル番号を用いることによって、当該論理ボリュームに格納されるデータの複製を格納する記憶装置が特定される。
【００６０】
相手論理ボリュームＩＤ３２３は、相手記憶装置（記憶装置Ｂ１９０）において、相手論理ボリュームを特定する符号である。すなわち、相手論理ボリュームＩＤ３２３によって、論理ボリュームに格納されるデータの複製を格納するターゲット側の論理ボリューム５００が特定される。
【００６１】
図６は、各ライトデータを管理するためのライトデータ管理情報３３０の構成図である。
【００６２】
ライトデータ管理情報３３０には、論理ボリュームに格納されたライトデータを管理する情報が定義されており、論理ボリュームＩＤ３３１、ライトアドレス３３２、ライトデータ長３３３、ライトデータポインタ３３４、シーケンシャル番号３３５、ライト時刻３３６、及び転送必要ビット３３７が含まれている。
【００６３】
論理ボリュームＩＤ３３１は、ライトデータが格納される論理ボリュームを一意に特定する符号である。
【００６４】
ライトアドレス３３２は、前記論理ボリュームにおける当該ライトデータのライト開始アドレスである。
【００６５】
ライトデータ長３３３は、当該ライトデータの長さである。
【００６６】
ライトデータポインタ３３４は、キャッシュ４００における当該ライトデータの格納領域の開始アドレスである。
【００６７】
シーケンシャル番号３３４は、ライトデータが書き込まれる論理ボリュームが属する論理ボリュームグループにおいて、ライトデータに連続的に与えられている番号である。
【００６８】
ライト時刻３３５は、ホストＡがライト要求６３０を発行した時刻６５０である。
【００６９】
転送必要ビット３３６は、当該ライトデータを記憶装置Ｂ１９０に転送する必要があるか否かを示す情報である。ライトデータ受領部Ａ２１０が、ライトデータを受領してライトデータ管理情報３３０を作成する際に、転送必要ビット３３６を設定する。
【００７０】
ライトデータ管理情報３３０は、例えば、論理ボリュームグループ毎にリスト形式で作成され、管理される。
【００７１】
図７は、記憶装置Ａ１００から記憶装置Ｂ１９０へのライトデータの転送処理のフローチャートである。この転送処理は、記憶装置Ａ１００のライトデータ転送部Ａ２２０と記憶装置Ｂ１９０のライトデータ受領部Ｂ２１１によって実行される。
【００７２】
まず、ライトデータ転送部Ａ２２０は、ライトデータ管理情報３３０を参照して、転送が必要なライトデータを特定する。その後、ライトデータ管理情報３３０、グループ管理情報３１０及び相手論理ボリューム情報３２０を参照して、記憶装置Ｂ１９０へ転送されるライトデータに関する情報を作成する（ステップ１１００）。
【００７３】
ステップ１１００で作成されるライトデータ情報には、ライトデータ管理情報３３０から取得したライトアドレス３３２、ライトデータ長３３３、シーケンシャル番号３３５、ライト時刻３３６が含まれる。また、作成されるライトデータ情報には、相手論理ボリューム情報３２０から取得した相手記憶装置ＩＤ３２２、相手論理ボリュームＩＤ３２３が含まれる。さらに、作成されるライトデータ情報には、論理ボリュームＩＤ３３１を用いてグループ管理情報３１０から参照した相手グループ番号が含まれる。
【００７４】
次に、ライトデータ転送部Ａ２２０は、ライトデータ及びステップ１１００で作成した情報を記憶装置Ｂ１９０に転送する（ステップ１１０１）。
【００７５】
その後、記憶装置Ｂのライトデータ受領部Ｂ２１１は、受信したライトデータと情報をキャッシュ４００に格納する（ステップ１１０２）。そして、受信した情報からライトデータ管理情報３３０を作成する（ステップ１１０３）。
【００７６】
最後に、ライトデータ受領部Ｂ２１１は、ライトデータ転送部Ａ２２０にライトデータ受領完了を報告する（ステップ１１０４）。この完了報告を受信した記憶装置Ａ１００のライトデータ転送部Ａ２２０は、ライトデータ受領完了の報告に対応するライトデータについて、ライトデータ管理情報３３０の転送必要ビットを未設定状態にクリアする。この時点で記憶装置Ａ１００は、記憶装置Ｂ１９０への転送用に保持していた転送済のライトデータをキャッシュ４００から破棄することができる。
【００７７】
記憶装置Ｂ１９０のライトデータ管理情報３３０には、記憶装置Ａ１００のライトデータ管理情報３３０と同一項目の情報が含まれている。以上の点で、記憶装置Ａ１００のライトデータ管理情報３３０とは異なるが、他は同じデータが格納される。
【００７８】
なお、論理ボリュームＩＤ３３１は、複製を格納するターゲット側の論理ボリューム５００を識別する符号である。ライトデータポインタ３３４は、記憶装置Ｂ１９０のキャッシュ４００におけるライトデータの格納領域の開始アドレスである。転送必要ビット３３７は常に未設定状態である。
【００７９】
記憶装置Ｂ１９０はグループ管理情報３１０を保有する。記憶装置Ｂ１９０のグループ管理情報３１０には、記憶装置Ａ１００のグループ管理情報３１０と同一項目の情報が含まれている。なお、グループＩＤ３１１は、複製を格納するターゲット側の論理ボリューム５００が属する論理ボリュームグループを特定するＩＤである。相手記憶装置ＩＤ３１５は、ソースとなる記憶装置（記憶装置Ａ１００）を特定する符号である。相手グループＩＤ３１６は、相手記憶装置（記憶装置Ａ１００）の相手論理ボリューム（ソースとなる論理ボリューム５００）が属する論理ボリュームグループを特定する符号である。
【００８０】
記憶装置Ｂ１９０は相手論理ボリューム情報３２０を保有する。記憶装置Ｂ１９０の相手論理ボリューム情報３２０には、記憶装置Ａ１００の相手論理ボリューム情報３２０と同一項目の情報が含まれている。なお、論理ボリュームＩＤ３２１は、複製を格納する論理ボリューム５００を特定する符号である。相手記憶装置ＩＤ３２２は、ソースとなる記憶装置（記憶装置Ａ１００）を特定する符号である。相手論理ボリュームＩＤ３２３は、相手記憶装置（記憶装置Ａ１００）の相手論理ボリューム（ソースとなる論理ボリューム５００）を特定するＩＤである。
【００８１】
なお、前述したライトデータ転送処理では、最初にライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１にライトデータを転送する（ステップ１１０１）。しかし、ライトデータ受領部Ｂ２１１がライトデータ転送部Ａ２２０にライトデータの転送要求を発行し、この要求を受領したライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１にライトデータを転送してもよい。先にライトデータの転送要求を発行させることによって、記憶装置Ｂ１９０の処理の状況や負荷、ライトデータの蓄積量等に応じて、ライトデータの転送のタイミングを制御することができる。
【００８２】
また、前述したライトデータ転送処理では、ライトデータ受領部Ｂ２１１がライトデータをキャッシュ４００に格納する（ステップ１１０２）。しかし、キャッシュ４００とは別に、ライトデータ格納用の論理ボリューム５００を用意して、ライトデータ格納用論理ボリューム５００にライトデータを格納してもよい。一般に、論理ボリューム５００はキャッシュ４００より大容量であるため、より多くのライトデータを蓄積することができる。
【００８３】
図８は、記憶装置Ｂ１９０におけるライトデータの反映処理のフローチャートである。
【００８４】
この反映処理は、ライトデータ反映部Ｂ２４０によって実行され、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ格納される。
【００８５】
まず、ライトデータ反映部Ｂ２４０は、ライトデータ管理情報を参照し、ライト時刻順かつシーケンシャル番号順にライトデータ管理情報を選択する。この処理によって、ライトデータを論理ボリューム５００へ格納する順序が定められる（ステップ１２００）。
【００８６】
その後、選択したライトデータ管理情報を参照して、論理ボリュームＩＤ、ライトアドレス及びライトデータ長を特定して、ライトデータを格納する論理ボリューム５００の領域を特定する（ステップ１２０１）。
【００８７】
次に、ステップ１２０１で特定されたライト領域に格納されていたデータを論理ボリューム５００から読み出し、ジャーナル７００に格納する（ステップ１２０２）。そして、新たに論理ボリューム５００に格納したライトデータのライト時刻をジャーナル管理情報の最新ライト時刻３６１に登録する。さらに、追加されたジャーナルの格納位置に基づいてジャーナル格納終了位置３６６を更新する（ステップ１２０３）。
【００８８】
最後に、選択したライト管理情報に対応するライトデータを、ステップ１２０１で特定されたライト領域に格納する（ステップ１２０４）。
【００８９】
以上の処理によって、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ反映される。また、ロールバック処理（図１１）で使用されるジャーナル７００に、記憶装置Ｂ１９０の論理ボリューム５００に記憶されていた過去のデータが格納される。
【００９０】
図９は、各論理ボリュームグループのジャーナル管理情報３６０の構成図である。
【００９１】
ジャーナル管理情報３６０には、ジャーナル７００を管理する情報が定義されており、グループＩＤ３６１、最新ライト時刻３６２、最古ライト時刻３６３、削除許可ライト時刻３６４、ジャーナル格納開始位置３６５、及びジャーナル格納終了位置３６６が含まれている。
【００９２】
グループＩＤ３６１は、論理ボリュームグループを一意に特定する符号である。
【００９３】
最新ライト時刻３６２及び最古ライト時刻３６３は、記録されているジャーナルの範囲である。具体的には、最新ライト時刻３６２は、どこまでのジャーナルが記録されているかを示し、最古ライト時刻３６３は、どこからのジャーナルが記録されているかを示す。
【００９４】
削除許可ライト時刻３６４は、どこまでのジャーナルを削除してよいかを示す情報である。削除許可ライト時刻３６４は、ジャーナルの領域が不足した場合に、ジャーナルを削除するときに使用される。
【００９５】
ジャーナル格納開始位置３６５及びジャーナル格納終了位置３６６は、論理ボリューム上のジャーナルの格納位置である。
【００９６】
図１０は、記憶装置Ｂ１９０のジャーナル７００の構成図である。
【００９７】
ジャーナル７００には、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ反映される前のデータと、そのデータの管理情報が記憶されている。ジャーナル７００には、シーケンシャル番号７０１、ライト時刻７０２、ジャーナルデータ長７０３、論理ボリュームＩＤ７０４、ライトアドレス７０５、ライトデータ長７０６、及び反映前データ７０７が含まれている。
【００９８】
シーケンシャル番号７０１は、ジャーナル７００に格納された反映前データを特定する符号であり、例えば”０”から”１”ずつ加算するように定められる。
【００９９】
ライト時刻７０２は、反映されるライトデータのライト時刻である。ジャーナルデータ長７０３は、シーケンシャル番号７０１から反映前データ７０７までの全てのデータの長さを示す。
【０１００】
論理ボリュームＩＤ７０４は、当該反映前データ７０７が格納されていた論理ボリューム５００のＩＤである。ライトアドレス７０５は、当該反映前データ７０７が格納されていた論理ボリューム５００のアドレスである。ライトデータ長７０６は、当該反映前データ７０７のデータ長である。
【０１０１】
以上説明したシーケンシャル番号７０１からライトデータ長７０６が反映前データ７０７に付されて、一つのジャーナルデータを構成している。そして、ジャーナル７００には、複数のジャーナルが含まれている。
【０１０２】
図１１は、記憶装置Ｂ１９０において論理ボリュームの内容の整合性を回復するロールバック処理のフローチャートである。
【０１０３】
まず、管理ソフトＢ８９０は、ジャーナル７００に格納されている最新ライト時刻及び最古ライト時刻を、全ての記憶装置Ｂ１９０に要求する（ステップ１３００）。
【０１０４】
記憶装置Ｂ１９０が最新ライト時刻及び最古ライト時刻の送信要求を受信すると、ジャーナル処理部Ｂ２６０は、各論理ボリュームグループのジャーナル管理情報３６０から最新ライト時刻３６１及び最古ライト時刻３６２を読み出して、当該記憶装置Ｂ１９０に格納されているジャーナルの範囲を報告する（ステップ１３０１）。
【０１０５】
その後、管理ソフトＢ８９０は、全ての記憶装置Ｂ１９０から、最新ライト時刻及び最古ライト時刻が報告されたかを確認する（ステップ１３０２）。
【０１０６】
そして、最新ライト時刻及び最古ライト時刻が全ての記憶装置Ｂ１９０から報告されていれば（ステップ１３０３）、管理ソフトＢ８９０は、各記憶装置Ｂ１９０の最新ライト時刻のうち、最も過去のライト時刻を抽出する（ステップ１３０４）。さらに、管理ソフトＢ８９０は、各記憶装置Ｂ１９０の最古ライト時刻のうち、最も新しいライト時刻を抽出する（ステップ１３０５）。
【０１０７】
その後、管理ソフトＢ８９０は、抽出された最も過去の最新ライト時刻と、最も新しい最古ライト時刻の間で、回復ライト時刻を決定する（ステップ１３０６）。すなわち、抽出された最も過去の最新ライト時刻と、最も新しい最古ライト時刻の間は、全ての記憶装置Ｂ１９０でジャーナルデータが格納されている。よって、その間の時刻であれば、全ての記憶装置Ｂ１９０で同期して過去の時点のデータに戻して整合性を回復することができる。なお、通常は、最新かつ整合性のとれた時刻まで回復することが望まれるので、ステップ１３０４で抽出された最も過去の最新ライト時刻が回復ライト時刻とすることが望ましい。
【０１０８】
その後、管理ソフトＢ８９０は、回復ライト時刻までのデータの回復を、全記憶装置Ｂ１９０に指示する（ステップ１３０７）。
【０１０９】
記憶装置Ｂ８９０がデータの回復指示を受信すると、ジャーナル処理部Ｂ２６０は、ジャーナル７００を参照して、ライト時刻７０２とは逆順（ライト時刻の新しい順）に反映前データを論理ボリューム５００に書き込んで、回復ライト時刻まで論理ボリューム５００の内容を書き戻す（ステップ１３０８）。
【０１１０】
ジャーナル処理部Ｂ２６０は、論理ボリューム５００の書き戻しが終了すると、管理ソフトＢ８９０に回復完了を報告する（ステップ１３０９）。
【０１１１】
その後、管理ソフトＢ８９０は、全ての記憶装置Ｂ１９０から回復完了が報告されたかを確認する（ステップ１３１０）。
【０１１２】
そして、全記憶装置Ｂ１９０で回復が完了していれば（ステップ１３１１）、管理ソフトＢ８９０は、ホストＢ６９０のＯＳ６１０及びアプリケーションプログラム６２０に、記憶装置Ｂ１９０の論理ボリューム５００が使用可能であることを通知する（ステップ１３１２）。
【０１１３】
以上説明したようにロールバック処理においては、抽出された最も過去の最新ライト時刻と、最も新しい最古ライト時刻との間で回復ライト時刻を定める。そして、全ての記憶装置Ｂ１９０が、同期して、該回復ライト時刻にデータを回復させる。
【０１１４】
図１２は、記憶装置Ｂ１９０に格納されたジャーナルの削除処理のフローチャートである。
【０１１５】
まず、管理ソフトＢ８９０は、ジャーナル７００に格納されている最新ライト時刻を、全ての記憶装置Ｂ１９０に要求する（ステップ１４００）。
【０１１６】
記憶装置Ｂ１９０が最新ライト時刻の送信要求を受信すると、ジャーナル処理部Ｂ２６０は、各論理ボリュームグループのジャーナル管理情報３６０から最新ライト時刻３６１を読み出して、当該記憶装置Ｂ１９０に格納されているジャーナルの最新ライト時刻を報告する（ステップ１４０１）。
【０１１７】
その後、管理ソフトＢ８９０は、全ての記憶装置Ｂ１９０から、最新ライト時刻が報告されたかを確認する（ステップ１４０２）。
【０１１８】
そして、最新ライト時刻が全ての記憶装置Ｂ１９０から報告されていれば（ステップ１４０３）、管理ソフトＢ８９０は、各記憶装置Ｂ１９０の最新ライト時刻のうち、最も過去のライト時刻を抽出する。そして、抽出された最も過去の最新ライト時刻を削除許可ライト時刻に決定する（ステップ１４０４）。すなわち、抽出された最も過去の最新ライト時刻までは、全ての記憶装置Ｂ１９０でライトデータの論理ボリューム５００への格納が完了している。よって、最も過去の最新ライト時刻までのジャーナル７００はロールバック処理（図１１）に用いられることがない。
【０１１９】
その後、管理ソフトＢ８９０は、決定した削除許可ライト時刻を、全記憶装置Ｂ８９０に通知する（ステップ１４０５）。
【０１２０】
記憶装置Ｂ１９０が削除許可ライト時刻を受信すると、ジャーナル処理部Ｂ２６０は、通知された削除許可ライト時刻をジャーナル管理情報の削除許可ライト時刻３６４に記録する（ステップ１４０６）。
【０１２１】
そして、記憶装置Ｂ１９０のジャーナル処理部Ｂ２６０は、ジャーナルのデータ量が増加し、予め定められたジャーナル格納領域が不足した場合は、ジャーナル管理情報３６０を参照して、最古ライト時刻から削除許可ライト時刻までのジャーナルの全部又は一部を削除する。これに伴い、格納されているジャーナルの最新のライト時刻をジャーナル管理情報の最新ライト時刻３６１に登録する。さらに、削除されたジャーナルの格納位置に基づいて、ジャーナル格納開始位置３６５及び／又はジャーナル格納終了位置３６６を更新する（ステップ１４０７）。
【０１２２】
以上説明したジャーナル削除処理は、所定のタイミングで（例えば、定期的に）、通常処理のバックグラウンドで実行される。また、記憶装置Ｂ１９０がジャーナルのデータ量を監視し、データ量が所定値より多くなった場合に、ジャーナル処理部Ｂ２６０が管理ソフトＢ８９０に要求することによって、このジャーナル削除処理を実行してもよい。
【０１２３】
以上説明したようにジャーナル削除処理においては、抽出された最も過去の最新ライト時刻を削除許可ライト時刻と定める。そして、削除許可ライト時刻より過去のジャーナルデータは、記憶装置Ｂ１９０のデータ回復に必要がないため、記憶装置Ｂ１９０が必要に応じて削除する。
【０１２４】
図１３は、記憶装置Ｂ１９０におけるライトデータの反映処理の変形例のフローチャートである。
【０１２５】
このライトデータ反映処理の変形例は、前述したライトデータ反映処理（図８）と比較して、ライトデータ自体もジャーナルに格納する点が異なる。
【０１２６】
まず、ライトデータ反映部Ｂ２４０は、ライトデータ管理情報３３０を参照し、ライト時刻順かつシーケンシャル番号順にライトデータ管理情報を選択する。この処理によって、ライトデータを論理ボリューム５００へ格納する順序が定められる（ステップ１５００）。
【０１２７】
その後、選択したライトデータ管理情報を参照して、論理ボリュームＩＤ、ライトアドレス及びライトデータ長を特定して、ライトデータを格納する論理ボリューム５００の領域を特定する（ステップ１５０１）。
【０１２８】
次に、ステップ１５０１で特定されたライト領域に格納されていたデータを論理ボリューム５００から読み出す。そして、読み出したデータとライトデータをジャーナル７００に格納する（ステップ１５０２）。そして、ジャーナル管理情報の最新ライト時刻３６１及びジャーナル格納終了位置３６６を更新する（ステップ１５０３）。
【０１２９】
最後に、選択したライト管理情報に対応するライトデータを、ステップ１５０１で特定されたライト領域に格納する（ステップ１５０４）。
【０１３０】
以上の処理によって、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ反映される。また、ロールバック処理（図１５）で使用されるジャーナル７００に、記憶装置Ｂ１９０の論理ボリューム５００に記憶されていた過去のデータ、及び当該論理ボリューム５００に書き込まれるデータが格納される。
【０１３１】
図１４は、ライトデータ反映処理の変形例（図１３）の場合の、ジャーナル７００の構成図である。
【０１３２】
ジャーナル７００には、記憶装置Ａ１００から転送されたライトデータが記憶装置Ｂ１９０の論理ボリューム５００へ反映される前のデータ、記憶装置Ｂ１９０の論理ボリューム５００へ格納されるデータ（ライトデータ）、及びこれらのデータの管理情報が記憶されている。
【０１３３】
この変形例のジャーナルには、シーケンシャル番号７０１、ライト時刻７０２、ジャーナルデータ長７０３、論理ボリュームＩＤ７０４、ライトアドレス７０５、ライトデータ長７０６、反映前データ７０７、及び反映後データ（ライトデータ）７０８が含まれている。なお、反映後データ７０８以外のデータは前述したジャーナル（図１０）と同じなので、その詳細な説明は省略する。
【０１３４】
また、この変形例のジャーナルの上位アドレス側には、シーケンシャル番号７０１、ライト時刻７０２、及びジャーナルデータ長７０３が格納されている。この反映後データの上位アドレス側に格納される管理情報７０１、７０２、７０３は、ジャーナル７００をアドレスの上位から検索する場合に用いられる。すなわち、ジャーナル７００をアドレスの上位から検索する場合に、一単位のジャーナルの最初の部分（ライト時刻及びジャーナルデータ長）を読み出せば、このジャーナルデータが必要かが分かり、効率的に次のジャーナルのデータを読むことができる。
【０１３５】
図１５は、ライトデータ反映処理の変形例（図１３）の場合の、記憶装置Ｂ１９０において論理ボリューム５００の内容の整合性を回復するロールバック及びロールフォワード処理のフローチャートである。
【０１３６】
まず、管理ソフトＢ８９０は、ジャーナル７００に格納されている最新ライト時刻及び最古ライト時刻を、全ての記憶装置Ｂ１９０に要求する（ステップ１６００）。
【０１３７】
記憶装置Ｂ１９０が最新ライト時刻及び最古ライト時刻の送信要求を受信すると、ジャーナル処理部Ｂ２６０は、各論理ボリュームグループのジャーナル管理情報３６０から最新ライト時刻３６１及び最古ライト時刻３６２を読み出して、当該記憶装置Ｂ１９０に格納されているジャーナルの範囲を報告する（ステップ１６０１）。
【０１３８】
その後、管理ソフトＢ８９０は、全ての記憶装置Ｂ１９０から、最新ライト時刻及び最古ライト時刻が報告されたかを確認する（ステップ１６０２）。
【０１３９】
そして、最新ライト時刻及び最古ライト時刻が全ての記憶装置Ｂ１９０から報告されていれば（ステップ１６０３）、管理ソフトＢ８９０は、各記憶装置Ｂ１９０の最新ライト時刻のうち、最も過去のライト時刻を抽出する（ステップ１６０４）。さらに、管理ソフトＢ８９０は、各記憶装置Ｂ１９０の最古ライト時刻のうち、最も新しいライト時刻を抽出する（ステップ１６０５）。
【０１４０】
その後、管理ソフトＢ８９０は、回復ライト時刻を、抽出された最も過去の最新ライト時刻と、最も新しい最古ライト時刻の間の時刻に決定する（ステップ１６０６）。すなわち、抽出された最も過去の最新ライト時刻と、最も新しい最古ライト時刻の間は、全ての記憶装置Ｂ１９０でジャーナルデータが格納されている。よって、その間の時刻であれば、全ての記憶装置Ｂ１９０で同期して過去のデータに回復することができる。なお、通常は、最新かつ整合性のとれた時刻まで回復することが望まれるので、ステップ１６０４で抽出された最も過去の最新ライト時刻が回復ライト時刻となる。
【０１４１】
その後、管理ソフトＢ８９０は、回復ライト時刻までのデータの回復を、全記憶装置Ｂ１９０に指示する（ステップ１６０７）。
【０１４２】
記憶装置Ｂ８９０がデータの回復指示を受信すると、ジャーナル処理部Ｂ２６０は、ジャーナル管理情報３６０を参照して、指示された回復ライト時刻は、回復済みライト時刻より前か後かを判定する（ステップ１６０８）。この回復済みライト時刻は、このロールバック及びロールフォワード処理（図１５）の実行前に、他のロールバック処理（図１１）又はロールバック及びロールフォワード処理（図１５）が実行された際に、回復したライト時刻として記録されたものである。
【０１４３】
この判定の結果、指示された回復ライト時刻が回復済みライト時刻より前であれば、ジャーナル処理部Ｂ２６０は、ジャーナル７００を参照して、ライト時刻７０２とは逆順（ライト時刻の新しい順）に反映前データを論理ボリューム５００に書き込んで、回復ライト時刻まで論理ボリューム５００の内容を書き戻す（ステップ１６０９）。その後、ステップ１６１１に進む。
【０１４４】
一方、指示された回復ライト時刻が回復済みライト時刻より後であれば、ジャーナル処理部Ｂ２６０は、ジャーナル７００を参照して、ライト時刻７０２順（ライト時刻の古い順）に反映後データを論理ボリューム５００に書き込んで、回復ライト時刻まで論理ボリューム５００の内容を反映する（ステップ１６１０）。その後、ステップ１６１１に進む。
【０１４５】
ジャーナル処理部Ｂ２６０は、論理ボリューム５００の書き戻しが終了すると、管理ソフトＢ８９０に回復完了を報告する（ステップ１６１１）。
【０１４６】
その後、管理ソフトＢ８９０は、全ての記憶装置Ｂ１９０から回復完了が報告されたかを確認する（ステップ１６１２）。
【０１４７】
そして、全記憶装置Ｂ１９０で回復が完了していれば（ステップ１６１３）、管理ソフトＢ８９０は、ホストＢのＯＳ６１０及びアプリケーション６２０に、記憶装置Ｂ１９０の論理ボリューム５００が使用可能であることを通知する（ステップ１６１４）。
【０１４８】
以上説明したようにロールバック処理の変形例においては、回復ライト時刻が回復済みライト時刻より前であれば、反映前データを用いて、回復ライト時刻までにデータを書き戻す。また、回復ライト時刻が回復済みライト時刻より後であれば、反映後データを用いて、回復ライト時刻にデータを反映する。よって、任意のライト時刻にデータを回復することができる。
【０１４９】
前述した各種処理において、記憶装置Ａ１００や記憶装置Ｂ１９０と管理ソフトＢ８９０との間の各種の指示、報告及び情報の送受信は、Ｉ／Ｏパス９００を経由しても、ネットワーク９２０を経由してもよい。
【０１５０】
図１６は、第２実施の形態の計算機システムのブロック図である。
【０１５１】
第２実施形態の計算機システムと前述した第１実施形態の計算機システムとの相違は、ホスト計算機Ａ６００は複数の記憶装置Ｃ１８０各々にＩ／Ｏパス９００を介して接続しており、複数の記憶装置Ｃ１８０は転送パス９１０を介して複数の記憶装置Ａ１００に接続している点である。
【０１５２】
すなわち、第２実施形態の計算機システムでは、記憶装置は、記憶装置Ｃ１８０、記憶装置Ａ１００及び記憶装置Ｂ１９０の３段階が設けられている。記憶装置Ａ１００は記憶装置Ｃ１８０の比較的近く（例えば、数ｋｍ）に設けられている。また、記憶装置Ｂ１９０は記憶装置Ａ１００の遠隔地（例えば、数百ｋｍ）に設けられている。各記憶装置は、記憶装置Ｃ１８０、記憶装置Ａ１００、記憶装置Ｂ１９０の順に直列的に接続（カスケード接続）されている。
【０１５３】
第２実施形態では、記憶装置Ｃ１８０の論理ボリューム５００に格納されているデータの複製を記憶装置Ａ１００の論理ボリューム５００に格納する。この記憶装置Ｃ１８０から記憶装置Ａ１００へのデータの複製は、同期コピー処理で実行される。
【０１５４】
また、さらに記憶装置Ａ１００の論理ボリューム５００に格納されているデータの複製を記憶装置Ｂ１９０の論理ボリューム５００に格納する。この記憶装置Ａ１００から記憶装置Ｂ１９０へのデータの複製は、第１実施形態で説明したと同様の非同期コピー処理で実行される。
【０１５５】
すなわち、第２実施形態では、記憶装置Ｃ１８０の論理ボリューム５００に格納されているデータの複製が記憶装置Ａ１００と記憶装置Ｂ１８０に格納される。この処理を実現するために、記憶装置Ｃ１８０は第１実施形態で説明した記憶装置Ａ１００と同様の構成や各種情報等を備える。
【０１５６】
なお、第２実施形態の記憶装置Ａ１００及び記憶装置Ｂ１９０は、第１実施形態の記憶装置Ａ１００及び記憶装置Ｂ１９０と同様の構成及び機能を有するので、その詳細な説明は省略する。
【０１５７】
記憶装置Ｃ１８０は、ホスト計算機Ａ６００から論理ボリューム５００へのライト要求を受領すると、受領したライトデータを記憶装置Ｃ１８０内の論理ボリューム５００に格納する。さらにライトデータ転送部Ｃ２２２が、受領したライトデータとライト時刻を記憶装置Ａ１００のライトデータ受領部Ａ２１０に転送する。
【０１５８】
このとき、前述したように、記憶装置Ｃ１８０から記憶装置Ａ１００へのデータ転送処理は、同期バックアップ処理によって行われる。具体的には、記憶装置Ｃ１８０は、ライトデータ受領部Ａ２１０からの受領完了通知を待って、ホスト計算機Ａ６００にライト完了通知を送る。これによって、記憶装置Ｃ１８０はライト要求をしたライトデータの複製が記憶装置Ａ１００に存在することを保証する。
【０１５９】
よって、例えば、記憶装置Ｃ１８０や転送パス９１０に障害が発生して、記憶装置Ａ１００にデータが転送できない場合に、ホスト計算機Ａ６００は、記憶装置Ａ１００に転送されなかったライトデータは書込処理が完了していないと認識する。また、記憶装置Ａ１００に受領されたライトデータは、記憶装置Ａ１００にも確実に格納されているので、予定される複製が記憶装置Ａ１００に存在する。さらに、記憶装置Ａ１００が受領したライトデータを、記憶装置Ｂ１９０に全て転送した後は、記憶装置Ｂ１９０にも予定される複製が存在するので、ホスト計算機Ａ６００が実行していた処理が中断した時点において、ホストＢ６９０は、ホスト計算機Ａ６００が書き込み済みだと認識しているデータと同じデータを用いて業務を引き継ぐことができる。
【０１６０】
さらに、第１実施形態と同様の処理によって、記憶装置Ａ１００の論理ボリューム５００に格納されているデータの複製を、記憶装置Ｂ１９０の論理ボリューム５００に格納する。この処理によって、例えば、記憶装置Ｃ１８０や転送パス９１０に障害が発生し記憶装置Ａ１００にデータが転送できなくなったとしても、ホスト計算機Ａ６００が処理を中断した際、ホストＢ６９０は、記憶装置Ｃ１８０に格納されているデータと同じ内容のデータを記憶装置Ｂ１９０から得ることができるので、このデータを用いて業務を引き継ぐことができる。
【図面の簡単な説明】
【０１６１】
【図１】第１実施形態の計算機システムのブロック図である。
【図２】論理ボリュームグループの概念図である。
【図３】記憶装置Ａがライト要求を受領した場合の処理のフローチャートである。
【図４】グループ管理情報の構成図である。
【図５】相手論理ボリューム情報３２０の構成図である。
【図６】ライトデータ管理情報３３０の構成図である。
【図７】記憶装置Ａから記憶装置Ｂへのライトデータの転送処理のフローチャートである。
【図８】記憶装置Ｂにおけるライトデータの反映処理のフローチャートである。
【図９】ジャーナル管理情報の構成図である。
【図１０】ジャーナルの構成図である。
【図１１】記憶装置Ｂにおいて論理ボリュームの内容の整合性を回復するロールバック処理のフローチャートである。
【図１２】記憶装置Ｂに格納されたジャーナルの削除処理のフローチャートである。
【図１３】記憶装置Ｂにおけるライトデータの反映処理の変形例のフローチャートである。
【図１４】図１３の場合の、ジャーナル７００の構成図である。
【図１５】図１３の場合の、記憶装置Ｂにおいて論理ボリューム５００の内容の整合性を回復するロールバック及びロールフォワード処理のフローチャートである。
【図１６】第２実施の形態の計算機システムのブロック図である。
【符号の説明】
【０１６２】
１００  記憶装置Ａ
１８０  記憶装置Ｃ
１９０  記憶装置Ｂ
２００  制御部
２１０  ライトデータ受領部Ａ
２１１  ライトデータ受領部Ｂ
２１２  ライトデータ受領部Ｃ
２２０  ライトデータ転送部Ａ
２２２  ライトデータ転送部Ｃ
２４０  ライトデータ反映部Ｂ
２６０  ジャーナル処理部Ｂ
３００  制御用メモリ
３１０  グループ管理情報
３２０  相手論理ボリューム管理情報
３３０  ライトデータ管理情報
３６０  ジャーナル管理情報
４００  キャッシュ
５００  論理ボリューム
６００  ホスト計算機Ａ
６１０  ＯＳ
６２０  アプリケーションプログラム（ＡＰＰ）
６３０  ライト要求
６４０  ライトデータ
６５０  ライト時刻
６９０  ホスト計算機Ｂ
８９０  管理ソフトＢ
９００  Ｉ／Ｏパス
９１０  転送パス
９２０  ネットワーク
【図１】
2006023889.tif 000003
【図２】
2006023889.tif 000004
【図３】
2006023889.tif 000005
【図４】
2006023889.tif 000006
【図５】
2006023889.tif 000007
【図６】
2006023889.tif 000008
【図７】
2006023889.tif 000009
【図８】
2006023889.tif 000010
【図９】
2006023889.tif 000011
【図１０】
2006023889.tif 000012
【図１１】
2006023889.tif 000013
【図１２】
2006023889.tif 000014
【図１３】
2006023889.tif 000015
【図１４】
2006023889.tif 000016
【図１５】
2006023889.tif 000017
【図１６】
2006023889.tif 000018