次に、本発明を実施するための最良の形態について図面を参照しつつ詳細に説明する。なお、本発明は以下に示す例に限定されるものではなく、その趣旨に応じて種々の変形及び応用を可能とするものである。
[第1の実施形態]
第1の実施形態は、副ストレージシステムの稼働状態に応じて、副ストレージシステムが受信したジャーナルに付属する時刻のうち最新時刻又は副ボリュームに最後に反映したジャーナルに付属する時刻のいずれか一方を選択し、これを目標復旧時点として計算機システムのユーザに提示するリモートコピーシステムを説明している。
これにより、計算機システムのユーザは、有効な目標復旧時点を容易に認識できるので、正サイト又は正ストレージシステムと副ストレージシステムとの間の通信回線に障害が発生した場合でも、ユーザは、判断に迷うことなく的確に目標復旧時点を指定でき、よって、確実にデータの復旧が行われることになる。
図1は、本発明の第1の実施形態に係るリモートコピーシステムの全体構成を示す図である。同図に示すように、本実施形態のリモートコピーシステムは、正サイトに配置された計算機システム100と、正サイトから物理的に遠距離に位置する副サイトに配置された計算機システム100とから構成される。以下では、正サイトを拠点とする計算機システム100を「計算機システム100a」と示し、副サイトを拠点とする計算機システム100を「計算機システム100b」と示すことにする。また、その他の構成要素について、特に区別する必要があるときは、これらに倣って示すこととする。
計算機システム100aは、正ホスト計算機110a及び正ストレージシステム120aを備える。また、副計算機システム100bは、副ホスト計算機110b及び副ストレージシステム120bを備える。同図では、正ホスト計算機110a及び副ホスト計算機110bがそれぞれ1台ずつ示されているが、これにこだわるものではない。同様に、正ストレージシステム120a及び副ストレージシステム120bもまた、複数あってもかまわない。また、「正」及び「副」とは両者の相対的関係において使用しているもので、例えば、図示された計算機システム100aであっても、他の図示されていない計算機システムとの関係においては、副計算機システムとなりうる。
正ホスト計算機110aと正ストレージシステム102とは、通信線130aを介して相互に通信可能に接続されており、副ホスト計算機110bと副ストレージシステム120bとは、通信線130bを介して相互に通信可能に接続されている。また、正ストレージシステム102と副ストレージシステムとの間は、通信線140を介して相互に通信可能に接続されている。
正ストレージシステム120aは、正コマンドデバイス121a、1つ以上の正ボリューム122a、及び1つ以上の正ジャーナルボリューム123aを有する。副ストレージシステム120bもまた、副コマンドデバイス121b、1つ以上の副ボリューム122b、及び1つ以上の副ジャーナルボリューム123bを有する。
正コマンドデバイス121a及び副コマンドデバイス121bはそれぞれ、正ホスト計算機110a及び副ホスト計算機110bから発行される各種のコマンドを受信することができるように構成されている。また、正コマンドデバイス121a及び副コマンドデバイス121bは、自ストレージシステム以外のストレージシステムと通信するための特別なボリュームとして利用される。
正ボリューム122aは、正ホスト計算機110a上のアプリケーションプログラムが使用するデータを格納する。副ボリューム122bは、ストレージシステムが有するリモートコピー機能によって作成される正ボリュームの複製である。
正ジャーナルボリューム123aは、正ボリューム122aの更新ログであるジャーナルを格納するボリュームである。正ストレージシステム120aは、正ボリューム122aを更新する場合、ジャーナルを正ジャーナルボリューム123aに書き込む。副ジャーナルボリューム123bは、通信線113を経由して正ジャーナルボリューム123aから取得したジャーナルを格納するボリュームである。
リモートコピーの実行の際には、1つの正ボリューム122aと1つの副ボリューム122bとによってコピーペアが構成され、また、複数のコピーペアの集合はコピーグループ124を構成する。
次に、計算機システム100の構成について説明する。
図2は、本発明の第1の実施形態に係るリモートコピーシステムの正ホスト計算機110aの構成を説明するための図である。
同図に示すように、正ホスト計算機110aは、プロセッサ200、メモリ201、及びI/O処理部202を備え、これらは通信路(図示せず)で接続される。副ホスト計算機110bの構成もまた、正ホスト計算機110aと同様である。
図3は、本発明の第1の実施形態に係るリモートコピーシステムの正ホスト計算機110aのメモリ201の内容を説明するための図である。
同図に示すように、メモリ201は、OS300、業務プログラム301、ストレージ運用プログラム302、ストレージ管理プログラム303、ボリューム定義テーブル304、コピーグループ定義テーブル305、コマンドデバイス定義テーブル306、経路定義テーブル307、及びコピーグループ管理テーブル308を記憶する。
業務プログラム301は、正ボリューム122aに対して、データを読み書きするOS300上で動作するアプリケーションプログラムである。
ストレージ運用プログラム302は、OS300上で動作するアプリケーションプログラムである。ストレージ運用プログラム302は、ストレージ管理プログラム303が提供するボリュームコピー処理を利用し、計算機システムの運用規則に従い、正ボリュームから副ボリュームにボリュームの複製を作成する。
ストレージ管理プログラム303もまた、OS300のアプリケーションプログラムである。ストレージ管理プログラム303は、ストレージ運用プログラム302に対してストレージシステムが持つボリュームコピー制御をするための処理を提供する。
ボリューム定義テーブル304、コピーグループ定義テーブル305、コマンドデバイス定義テーブル306、経路定義テーブル307は、ストレージ管理プログラム303が生成できる専用の制御テーブルである。これらは、OS300から読み書き可能なボリュームに格納されていても良い。これらの詳細は後述する。
コピーグループ管理テーブル308は、ストレージ管理プログラム303が提供するペア状態取得処理を呼び出したときに設定される領域で、ストレージシステムの状態が格納される。ストレージ運用プログラム302は、この領域を参照してストレージシステムの状態を取得する。
これらのプログラム及びテーブルは、正ストレージシステム120aに接続されている別の正ホスト計算機110aにも同様に存在しうる。副ホスト計算機110bもまた、同様の内容をそのメモリ201bに保持しても良い。
図4は、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機が保持するボリューム定義テーブル304の一例を示す図である。ボリューム定義テーブル304は、ストレージ管理プログラム303が扱うボリュームを定義するとともに、OS300が管理する装置アドレスとストレージシステムが管理する装置アドレスとを対応付ける。
即ち、同図に示すように、ボリューム定義テーブル304は、ボリュームアドレス400とデバイスID401とを含む1つ以上のエントリ有する。ボリュームアドレス400は、ストレージシステムが装置を識別するアドレスである。また、デバイスID401は、ストレージ管理プログラム303が動作するOS300が識別するアドレスである。
ストレージシステム120及びOS300は、それぞれ異なる情報を用いて装置を認識する。このため、以下では、ストレージシステム110が認識する装置アドレスをボリュームアドレスと表記することにする。また、OS300が認識する装置アドレスをデバイスIDと表記することにする。
図5は、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機110のメモリ201に展開されたコピーグループ定義テーブル305の一例を示す図である。コピーグループ定義テーブル305は、コピーグループ124を定義するテーブルである。
即ち、同図に示すように、コピーグループ定義テーブル305は、コピーグループID500、正コピーID501、副コピーID502、正ボリュームアドレス503、及び副ボリュームアドレス504を有する。
コピーグループID500は、コピーグループ124を一意に識別するための識別子であり、ストレージ運用プログラム302がコピーグループ124を選択するために使用される。
正コピーID501は、正ストレージシステム120aの資源であり、かつ、正ストレージシステム120aに属する1つ以上のジャーナルボリューム123aに関連付けられる識別子であり、副コピーID502は、副ストレージシステム120bの資源であり、かつ、副ストレージシステム120bに属する1つ以上のジャーナルボリューム123bに関連付けられる識別子である。ホスト計算機110上のアプリケーションプログラムから見た場合、正コピーID501及び副コピーID502はそれぞれ、ボリュームに対する書き込み順序を保障する単位となる。
正ボリュームアドレス503は、コピーグループ124に含まれる正ボリューム122aのボリュームアドレスである。また、副ボリュームアドレス504は、副ボリューム122bのボリュームアドレスである。
1つのコピーグループID500に対して、正コピーID501及び副コピーID502はそれぞれ、1つずつ存在しなければならない。1つの正ボリュームアドレス503に対してコピーペアとなる副ボリュームアドレス504は、1つだけ存在する。コピーグループ124は、1つ以上のコピーペアを持つことができる。つまり、1つのコピーグループID500に対して、1つ以上の正ボリュームアドレス503と副ボリュームアドレス504のペアが存在することができる。
なお、コピーグループ定義テーブル305には、複数のコピーグループID500が存在しても良い。
図6は、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機110が保持するコマンドデバイス定義テーブル306の一例を示す図である。コマンドデバイス定義テーブル306は、コマンドデバイスを定義するテーブルである。
即ち、同図に示すように、コマンドデバイス定義テーブル306は、コマンドデバイス・ボリュームアドレス600及びデバイスID601を有する。コマンドデバイス・ボリュームアドレス600は、ストレージシステムに属するコマンドデバイスのボリュームアドレスである。デバイスID601は、コマンドデバイスのデバイスIDである。
図7は、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機110が保持する経路定義テーブル307の一例を示す図である。経路定義テーブル307は、コマンドデバイス間の通信経路を定義するテーブルである。この通信経路を定義することで、ストレージ管理プログラム303は、遠隔地に配置されるOSが管理できないストレージシステムのボリュームに対してボリュームコピー制御や状態取得をすることができる。
即ち、同図に示すように、経路定義テーブル307は、始点ボリュームアドレス701及び終点ボリュームアドレス702を有する。始点ボリュームアドレス701は、コマンドを発行するコマンドデバイスのボリュームアドレスを指定する。終点ボリュームアドレス702は、コマンドを受信するコマンドデバイスのボリュームアドレスを指定する。
図8は、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機110が保持するコピーグループ管理テーブル308の一例を示す図である。
同図に示すように、コピーグループ管理テーブル308は、コピーグループID800、正コピーID801、副コピーID802、正ボリュームアドレス803、副ボリュームアドレス804、ペア状態805、及びコンシステンシー時刻806を有する。
コピーグループ管理テーブル308は、後述の図27に示すペア状態取得モジュール2704による処理結果が格納される領域である。このため、コピーグループID800、正コピーID801、副コピーID802、正ボリュームアドレス803、及び副ボリュームアドレス804は、コピーグループ定義テーブル305と同じ内容となる。
ペア状態805は、コピーグループに属するコピーペアの状態である。コンシステンシー時刻806は、コピーグループに対する目標復旧時点を表す。
次に、ストレージシステム100の構成について説明する。
図9は、本発明の第1の実施形態に係るリモートコピーシステムにおける正ストレージシステム120aの構成を示す図である。
同図に示すように、正ストレージシステム120aは、入出力制御部900、キャッシュ部910、共有メモリ部920、ディスク制御部930、及びディスク装置部940を備える。
入出力制御部900は、プロセッサ901、メモリ902、及びI/O受信部903を備える。I/O受信部903は、通信線130及び113を介して、正ホスト計算機110a及び副ストレージシステム120bとそれぞれ接続されている。
共有メモリ部920は、ボリュームに対してデータを書き込む入出力処理プログラム921、リモートコピーの制御を行うコピー処理プログラム922、コピー処理プログラム922の制御テーブルであるコピー管理テーブル923、ジャーナルボリューム管理テーブル924、及びストレージシステム内で障害が起きた時の処理を受け持つ障害回復プログラム925を有する。
コピー管理テーブル923及びジャーナルボリューム管理テーブル924はそれぞれコピーグループ及びジャーナルボリュームの状態を保持するためのテーブルである。これらのテーブルの詳細については、後述する。
副ストレージシステム120bもまた、正ストレージシステム120aと同様の入出力制御部900、キャッシュ部910、共有メモリ部920、ディスク制御部930、及びディスク装置部940を備える。
図10は、本発明の第1の実施形態に係るストレージシステム100のコピー処理プログラム922の構成を示す図である。同図に示すように、コピー処理プログラム922は、ジャーナル生成モジュール1000、ジャーナル読み込みモジュール1001、及びジャーナルリストアモジュール1002を備える。コピー処理プログラム922の各モジュールによる処理内容については、後述する。
次に、ストレージシステムにおける制御テーブルを説明する。
図11Aは、本発明の第1の実施形態に係るリモートコピーシステムにおけるストレージシステム110aが保持する正ジャーナルボリューム123aを示す図である。
同図に示すように、正ジャーナルボリューム123aは、正ボリューム122aの更新履歴を管理するジャーナル管理テーブル1100を有する。
ジャーナル管理テーブル1100は、図11Bに示すように、ジャーナルボリュームアドレス1101、データアドレス1102、更新データ1103、及びライトコマンド発行時刻1104を有する。
ジャーナルボリュームアドレス1101及びデータアドレス1102は、ライトコマンドに従うデータの書き込みが行われたそれぞれのアドレスである。更新データ1103は、正ボリューム122aのライトコマンドにより書き込まれたデータである。ライトコマンド発行時刻1104は、OS300がライトコマンドを発行する際にそれに付加される時刻である。
なお、副ストレージシステム110bの副ジャーナルボリューム123bもまた、これと同様の構成を有する。
図12は、本発明の第1の実施形態に係るリモートコピーシステムにおけるストレージシステム120が保持するコピー管理テーブル923を示す図である。コピー管理テーブル923は、正ストレージシステム120a及び副ストレージシステム120bによってそれぞれ保持され、コピーグループに含まれるコピーペアの状態を管理するテーブルである。
コピー管理テーブル923は、正コピーID1200、副コピーID1201、正ボリュームアドレス1202、副ボリュームアドレス1203、ペア状態1204、リストア完了コマンド時刻1205、及び有効フラグ1206を有する。
正コピーID1200及び副コピーID1201はそれぞれ、正ストレージシステム120a及び副ストレージシステム104の資源で、1つのコピーグループを識別するIDである。
正ボリュームアドレス1202及び副ボリュームアドレス1203は、コピーペアを構成する正ボリューム122a及び副ボリューム122bのアドレスである。
ペア状態1204は、コピーペアの状態を示す。コピーペアの状態は、例えば、Simplex状態、Copying状態、Duplex状態、Suspending状態、Suspend−Operation状態、Deleting状態、及びSuspend−Failure状態がある。即ち、ペア状態1204は、後述するペア形成処理(図16)やペア状態取得処理(図20A)において、正ストレージボリューム122aと副ストレージボリューム122bとから形成されたコピーグループ124のペア状態が記録・更新されたものである。換言すると、ペア形成処理では、例えば「Copying」状態が記録され、ペア状態取得処理では、ペア状態取得処理時のペア状態、例えば、「Copying」や「Suspend−Failure」といったペア状態に更新されるようになっている。コピーペアの各状態間の関係は、図28で詳細に説明される。
リストア完了時刻1205は、コピー処理プログラム922のジャーナルリストアモジュール1002によって、副ジャーナルボリューム123bに格納されたジャーナルを副ボリューム122bに反映されたとき、このジャーナルに付属する時刻が設定される。
有効フラグ1206はリストア完了時刻1205の有効又は無効のいずれかを示すフラグである。
図13は、本発明の第1の実施形態に係るリモートコピーシステムにおけるストレージシステム120が保持するジャーナルボリューム管理テーブル924を示す図である。
同図に示すように、ジャーナルボリューム管理テーブル924は、コピーID1300、ボリュームアドレス1301、ボリューム状態1302、ジャーナル受信時刻1303、及び有効フラグ1304を有する。
ボリューム状態1302は、当該ボリュームが障害中か否かの状態を示す。ジャーナル受信時刻1303は、受信したジャーナルに付属する時刻のうち最新時刻を設定する領域である。副ストレージシステム120bのジャーナルボリューム管理テーブル924bにおいては、正ストレージシステム120aから受信した最新のジャーナルに付属する時刻がジャーナル受信時刻1303となる。有効フラグ1304は、ジャーナル受信時刻1303が有効か否かを示すフラグである。
ここで、ホスト計算機110のストレージ管理プログラム303について説明する。
図27は、本発明の第1の実施形態に係るホスト計算機のストレージ管理プログラム303の構成を示す図である。
同図に示すように、ストレージ管理プログラム303は、ペア形成モジュール2700、コピー中断モジュール2701、コピー再開モジュール2702、コピー解除モジュール2703、及びペア状態取得モジュール2704を備える。ストレージ管理プログラム303は、これらのモジュールによって生成される命令をストレージシステム120に対して発行する。
ペア形成モジュール2700は、リモートコピーを開始していないSimplex状態のコピーペアをDuplex状態に移行させる処理を行う。Simplex状態の場合には、正ボリューム122aへの更新が副ボリューム122bへ反映されない。コピーペアがDuplex状態になると副ボリューム122bへの反映が行われる。
コピー中断モジュール2701は、Duplex状態のコピーペアのリモートコピーを一時中断させる処理を行う。コピー中断モジュール2701は、副ボリューム122bがいつの時点のものであるかを確定させる時に使用されうる。つまり、コピー中断モジュール2701は、どの時点のデータを副ボリューム108に反映させるかを確定する際や、システムや通信障害の発生時等に使用されうる。
コピー再開モジュール2702は、コピー中断処理や障害によってリモートコピーが一時中断している状態のコピーペアのリモートコピーを再開させる処理を行う。
コピー解除モジュール2703は、リモートコピーを解除し、コピーペアを非Simplex状態にする処理を行う。
ペア状態取得モジュール2704は、コピーペアの状態を取得するための処理を行う。ペア状態取得モジュール2704によって取得されるペア状態については、後述する。
図28は、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピーペアの状態を説明するための図である。
コピーペアの状態(「ペア状態」ということもある。)には、例えば、Simplex状態2800、Copying状態2801、Duplex状態2802、Suspending状態2803、Suspend−Operation状態2804、Deleting状態2805、及びSuspend−Failure状態2806がある。
Simplex状態2800とは、コピーペアを構成する前の初期状態である。また、既にリモートコピーが構成されているコピーペアに対してペア解除処理が実行された場合もSimplex状態になる。
Duplex状態2805とは、正ボリューム122aと副ボリューム122bが二重化されている状態である。コピーペアがDuplex状態のとき、正ボリューム122aへの書き込みが副ボリューム122bへ反映される。
Copying状態2801とは、ペア形成モジュール2700の処理による形成コピーの実行中又はコピー再開モジュール2702の処理による差分コピーの実行中を示す過渡的な状態である。形成コピー又は差分コピーが完了するとコピーペアの状態はDuplex状態へ遷移する。
Suspend−Operation状態2806とは、コピー中断2701の処理によってストレージ管理プログラム303がリモートコピーを一時停止した状態である。
Suspending状態2803とは、Duplex状態のコピーペアにコピー中断2701の処理を実行したとき、Suspend−Operation状態へ遷移するまでの過渡的な状態である。
Deleting状態2805とは、コピー解除2703の処理によってSimplex状態へ遷移するまでの過渡的状態である。Simplex状態2800とDeleting状態2805以外からこの状態へ遷移する。
Suspend−Failure状態2806とは、ハードウェア障害によって正ボリューム122aと副ボリューム122bの二重化(リモートコピー)が一時停止された状態である。Simplex状態とSuspend−Failure状態以外からこの状態へ遷移することがある。
図29は、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピーグループに関する操作を説明するための図である。同図では、正ホスト計算機110a上で動作するストレージ運用プログラム302が、ストレージ管理プログラム303の各モジュールによって提供される処理を利用して、コピーグループ操作をする際の命令の経路を示している。命令の経路には、正ボリューム122aへ指示する経路(2900)と、正コマンドデバイス121aへ指示する経路(2901)とがある。
同図を参照して、まず、ストレージ運用プログラム302は、ストレージ管理プログラム303の対応するモジュールを呼び出し、ストレージ管理プログラム303は、正ストレージシステムに対する命令を作成し、OS300が提供する入出力機能を利用して正ボリュームに対して所定のI/Oコマンドを発行する(2900)。或いは、ストレージ管理プログラム303は、正コマンドデバイス121aに対して所定のI/Oコマンドを発行しても良い(2901)。所定のI/Oコマンドについては、図14A〜図14Fを用いて説明される。
ストレージ管理プログラム303は、OS300から所定のI/Oコマンドに対する結果を受け取り、ストレージ運用プログラム302に結果を報告する。
また、コマンドデバイス121aに対してI/Oコマンドが発行される場合、自身に接続されたストレージシステム以外のストレージシステムに対してI/Oコマンドを転送することができる。この場合、正コマンドデバイス121aから副コマンドデバイス121bに対してI/Oコマンドが転送される(2902)。ストレージ管理プログラム303は、自身に接続されたストレージシステム以外のストレージシステムへ通信線140を介してI/Oコマンドを転送することで、自身に直接的に接続されていないストレージシステムのコピーグループに対して、リモートコピーの処理を実行することができる。
副ホスト計算機110b上で動作するストレージ管理プログラムもまた、副ボリューム122b又は副コマンドデバイス121bに対してI/Oコマンドを発行することで、正ホスト計算機110a上で動作するストレージ管理プログラムと同じ処理を実行することができる。
上記のようなデータ処理の流れは、共有メモリ部920に格納されたコピー処理プログラム922によって実行される。
図30は、本発明の第1の実施形態に係るリモートコピーシステムにおけるリモートコピー処理を説明するための図である。具体的には、同図は、リモートコピーシステムにおけるコピーペアの状態がDuplex状態の場合に、正ホスト計算機110a上で動作する業務プログラム301によって正ボリューム122aに書き込まれたデータが、副ボリューム122bに対しても書き込まれる場合のデータの流れを説明している。
同図を参照して、正ホスト計算機110a上で動作する業務プログラム301が、正ボリューム122aのデータに対する書き込み処理をOS300に要求すると、OS300は正ボリューム122aに対してライトコマンドを発行する(3000)。このとき、OS300は、ライトコマンドに当該コマンドを発行した時刻(タイムスタンプ)を付加する。正ストレージシステム120aがライトコマンドを受信すると、ジャーナル処理プログラムは、正ボリューム122aにライトコマンドの内容を書き込むとともに(3001)、ライトコマンドに付加された時刻に基づいてジャーナルを生成し、このジャーナルを正ジャーナルボリューム123aに書き込み(3002)、OS300にI/Oコマンド完了を報告する。
一方、副ストレージサブシステム103側では、ジャーナル読み込みモジュール1001が、正ジャーナルボリューム123aからジャーナルを読み出し、副ジャーナルボリューム123bに書き込む(3003)。
最後に、ジャーナルリストアモジュール1002は、副ジャーナルボリューム123bに格納されたジャーナルをジャーナルに付加された時刻の順序で副ボリューム122bに反映させる(3004)。
このようにして、正ボリュームへ書き込まれたライトコマンドは、正ボリュームの更新順序と同じ順序で副ボリュームに反映されることになる。
次に、本実施形態のリモートコピーシステムにおいて使用される各種のI/Oコマンドについて説明する。I/Oコマンドには、例えば、業務プログラム301からデータの書き込み要求を受け取ったOS300によって発行されるライトコマンド、及びストレージ管理プログラム303の各モジュール2700〜2704によって生成されるリモートコピーに関する各種のコマンドがある。
図14A〜図14Fは、本発明の第1の実施形態に係るリモートコピーシステムにおいて使用されるI/Oコマンドを説明するための図である。具体的には、同図Aは、ライトコマンド1400のフォーマットの一例を示し、同図Bは、ペア形成コマンド1410のフォーマットの一例を示し、同図Cは、コピー中断コマンド1420のフォーマットの一例を示し、同図Dは、コピー再開コマンド1430のフォーマットの一例を示す。また、同図Eは、コピー解除コマンド1500のフォーマットの一例を示し、同図Fは、ペア状態取得コマンド1510のフォーマットの一例を示す。
同図Aに示すライトコマンド1400は、命令コード1401、コマンド制御テーブル1402、及びコマンド発行時刻1403を有する。コマンド発行時刻は、OS300が付加する時刻情報である。
同図Bに示すペア形成コマンド1410は、命令コード1411、正コピーID1412、副コピーID1413、コピー元ボリュームアドレス1414、及びコピー先ボリュームアドレス1415を有する。コピー元ボリュームアドレス1414とコピー先ボリュームアドレス1415はそれぞれ、コピーペアを構成する正ボリューム122aのボリュームアドレスと副ボリューム122bのボリュームアドレスである。
同図Cに示すコピー中断コマンド1420は、命令コード1421、実行モード1422、コピー元ボリュームアドレス1423、コピー先ボリュームアドレス1424、及びペア中断コマンド発行時刻1425を有する。実行モード1422は、正ボリューム122aに書き込まれたが、副ボリューム106へ反映されていないジャーナルの扱いを指定する。具体的には、少なくとも「Flush」又は「Purge」のいずれかの属性が指定される。「Flush」は、ペア中断コマンド発行時刻1425に設定された時刻を以前のジャーナルを副ボリュームへ反映させてから、コピーペアをSuspend−Operation状態2804(図28)にするための指定である。これに対して、「Purge」は、ストレージシステムがペア中断コマンドを受け付けた時点で、ジャーナルを破棄し、直ちにコピーペアをSuspend−Operation状態2804(図28)にするための指定である。
「Purge」が指定された場合、ジャーナルは破棄されるため、ジャーナルに付加された時刻を目標復旧時点(コンシステンシー時刻)にすることはできない。この場合には、副ボリュームに反映したジャーナルの最新時刻が目標復旧時点となる。
コピー元ボリュームアドレス1424とコピー先ボリュームアドレス1425はそれぞれ、コピーペアを構成する正ボリュームのボリュームアドレスと副ボリュームのボリュームアドレスである。ペア中断コマンド発行時刻1425は、ペア中断コマンド1420を発行する時刻である。
同図Dに示すコピー再開コマンド1430は、命令コード1431、コピー元ボリュームアドレス1432、及びコピー先ボリュームアドレス1433を有する。
同図Eに示すコピー解除コマンド1500は、命令コード1501、コピー元ボリュームアドレス1502及びコピー先ボリュームアドレス1503を有する。コピー元ボリュームアドレス1502及びコピー先ボリュームアドレス1503はそれぞれ、コピーペアを構成する正ボリュームのボリュームアドレス及び副ボリュームのボリュームアドレスである。
同図Fに示すペア状態取得コマンド1510は、命令コード1511及び宛先ボリュームアドレス1512を有する。ストレージ運用プログラム302の指示の下、ストレージ管理プログラム303がペア状態取得コマンド1510を発行すると、これを受けたストレージシステム120のコピー処理プログラム922は、ペア状態テーブルを作成し、これを返す。
図15は、本発明の第1の実施形態に係るリモートコピーシステムにおけるペア状態テーブル1520を説明するための図である。ペア状態テーブル1520は、ペア状態取得コマンドに対する結果である。
同図に示すように、ペア状態テーブル1520は、コピー元ボリュームアドレス1521、コピー先ボリュームアドレス1522、正コピーID1523、副コピーID1524、ペア状態1525、及びコンシステンシー時刻1526を有する。本実施形態では、コンシステンシー時刻1526が目標復旧時点となる。
次に、本実施形態のリモートコピーシステムの各種の処理動作を、図16〜図22に示すフローチャートを用いて説明する。
本実施形態のリモートコピーシステムでは、ライトI/O処理、ペア形成処理、コピー中断処理、コピー再開処理、或いはコピー解除処理において障害が発生した場合、又はジャーナルボリュームに障害が発生した場合、コピー処理プログラム922がコピー管理テーブル923及びジャーナルボリューム管理テーブル924を更新する。そして、ペア状態取得処理が実行された際に、コピー処理プログラム922は、コピー管理テーブル923及びジャーナルボリューム管理テーブル924の状態に応じてペア状態テーブル1520に目標復旧時点(コンシステンシー時刻)を設定し、応答する。
図16は、本発明の第1の実施形態に係るリモートコピーシステムにおけるペア形成処理を説明するためのフローチャートである。
同図を参照して、まず、正ホスト計算機110a上のストレージ運用プログラム302は、コピーグループID500を指定し、ストレージ管理プログラム303にペア形成を指示する(1600)。これを受けて、ストレージ管理プログラム303は、コピーグループ内のボリュームに対してペア形成を指示する(1601)。
これを受けて、正ストレージシステム120aのコピー処理プログラム922は、コピー管理テーブル923に1ペア分のエントリを追加する(1602)。
続いて、コピー処理プログラム922は、正ボリューム122a上のデータのリモートコピーを実行する(1603)。リモートコピーは、ジャーナルの転送により行われる。これに伴い、コピー処理プログラム922は、コピー管理テーブル1200及びジャーナルボリューム管理テーブル924を更新する(1604)。具体的には、コピー処理プログラム922は、コピー管理テーブル923のペア状態1204を「Copying」にし、有効フラグ1206を「無効」にする。また、コピー処理プログラム922は、ジャーナルボリューム管理テーブル924の有効フラグ1304を「無効」にする。データコピーが完了すると、コピー処理プログラム922は、正ホスト計算機110a上のOS300にI/Oコマンド完了を報告する(1605)。
図17は、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピー中断処理を示すフローチャートである。
同図を参照して、まず、正ホスト計算機110a上のストレージ運用プログラム302は、コピーグループID500及び実行モード1422を指定し、ストレージ運用プログラム303にコピー中断を指示する(1700)。これを受けて、ストレージ管理プログラム303は、コピーグループ内のボリュームに対してコピー中断を指示する(1701)。
これを受けて、コピー処理プログラム922は、次に、データコピーを中断させる(1702)。これに伴い、コピー処理プログラム922は、コピー管理テーブル923を更新する(1703)。具体的には、コピー処理プログラム922は、コピー管理テーブル923のペア状態1204を「Suspending」にする。また、コピー処理プログラム922は、実行モード1422をチェックして(1704)、これが「Purge」である場合に、ジャーナルボリューム管理テーブル924の有効フラグ1304を「無効」にする(1705)。
そして、コピー処理プログラム922は、正ホスト計算機110a上のOS300にI/Oコマンド完了を報告する(1706)。
図18は、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピー再開処理を説明するためのフローチャートである。
同図を参照して、まず、正ホスト計算機110a上のストレージ運用プログラム302がコピーグループID500を指定し、ストレージ管理プログラム303にコピー再開を指示する(1800)。これを受けて、ストレージ管理プログラム303は、コピーグループ内のボリュームに対してコピー再開を指示する(1801)。
これを受けて、コピー処理プログラム922は、次に、データのコピーを再開させる(1802)。これに伴い、コピー処理プログラム922は、コピー管理テーブル923を更新する(1803)。具体的には、コピー処理プログラム922は、コピー管理テーブル923のペア状態1203を「Copying」にする。
そして、コピー処理プログラム922は、正ホスト計算機110a上のOS300にI/Oコマンド完了を報告する(1804)。
図19は、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピー解除処理を説明するためのフローチャートである。
同図を参照して、まず、正ホスト計算機110a上のストレージ運用プログラム302がコピーグループID500を指定し、ストレージ管理プログラム303にコピー解除を指示する(1900)。これを受けて、ストレージ管理プログラム303は、コピーグループ内のボリュームに対してコピー解除を指示する(1901)。
これを受けて、コピー処理プログラム922は、次に、データコピーを解除する(1902)。これに伴い、コピー処理プログラム922は、コピー管理テーブル923を変更する(1903)。具体的には、コピー処理プログラム922は、コピー管理テーブル923のペア状態1204を「Deleting」する。また、コピー処理プログラム922は、コピー元ボリュームアドレス1502と正ボリュームアドレス1202とが一致するコピー管理テーブル923のエントリを削除するとともに、コピー先ボリュームアドレス1503と副ボリュームアドレス1203とが一致するコピー管理テーブル923のエントリを削除する。
そして、コピー処理プログラム922は、正ホスト計算機110a上のOS300にI/Oコマンド完了を報告する(1905)。
図20Aは、本発明の第1の実施形態に係るリモートコピーシステムにおけるペア状態取得処理を説明するためのフローチャートである。
同図を参照して、まず、正ホスト計算機110a上のストレージ運用プログラム302は、コピーグループID500を指定し、ストレージ管理プログラム303にペア状態取得を指示する(2000)。これを受けて、ストレージ管理プログラム303は、指定されたコピーグループ124内のボリュームに対してペア状態取得を指示する(2001)。
これを受けて、コピー処理プログラム922は、次に、ペア状態テーブル1520を設定する(2002)。具体的には、コピー処理プログラム922は、ペア状態テーブル1520のコピー元ボリュームアドレス1521に正ボリュームアドレス1202を、コピー先ボリュームアドレス1522に副ボリュームアドレス1203を、正コピーID1523に正コピーID1200を、副コピーID1524に副コピーID1201を、そして、ペア状態1525にペア状態1204を設定する。続いて、コピー処理プログラム922は、コンシステンシー時刻設定処理Xを実行し、コンシステンシー時刻1526を設定する(2002)。
OS300は、ストレージ管理プログラム300にI/Oコマンド完了を報告する(2003)。これを受けて、ストレージ管理プログラム303は、コピーグループ管理テーブル305設定処理を呼び出す(2004)。そして、ストレージ管理プログラム303は、ストレージ運用プログラム302にI/Oコマンド完了とペア状態テーブル1520の内容とを報告する(2005)。
図20Bは、本発明の第1の実施形態に係るリモートコピーシステムにおけるコンシステンシー時刻設定処理Xを説明するためのフローチャートである。コンシステンシー時刻設定処理Xは、コピー処理プログラム922におけるペア状態取得モジュール2704の処理の一部である。
本実施形態では、コンシステンシー時刻設定処理Xによって、ストレージシステムの状態に応じた目標復旧時点(コンシステンシー時刻)の選択が行われる。
同図を参照して、まず、コピー処理プログラム922は、ペア状態1204をチェックする(2000b)。コピー処理プログラム922は、ペア状態1204が、Suspend−Operation状態、Suspending状態、Suspend−Failure状態、又はDuplex状態のいずれかであると判断する場合、さらに、有効フラグ1304をチェックする(2001b)。
コピー処理プログラム922は、有効フラグ1304が有効であると判断する場合、ジャーナル受信時刻1303を返す(2003b)。一方、有効フラグ1304が無効であると判断する場合には、コピー処理プログラム922は、さらに、有効フラグ1206をチェックする(2002b)。コピー処理プログラム922は、有効フラグ1206が有効であると判断する場合、リストア完了I/Oコマンド時刻1205を返す(2004b)。一方、有効フラグ1206が無効であると判断する場合、コピー処理プログラム922は、「無効」を返す(2005b)。
これに対して、ペア状態1204をチェックした結果(2000b)、これがSimplex状態、Copying状態、又はDeleting状態のいずれかであると判断する場合、「無効」を返す(2005b)。
図20Cは、本発明の第1の実施形態に係るリモートコピーシステムにおけるコピーグループ管理テーブル305設定処理を説明するためのフローチャートである。
同図を参照して、まず、ストレージ管理プログラム303は、コピーグループ管理テーブル308の所定のフィールドに対して設定を行う(2000c)。具体的には、ストレージ管理プログラム303は、コピーグループ管理テーブル308の正ボリュームアドレス803にペア状態テーブル1520のコピー元ボリュームアドレス1521を設定する。同様に、ストレージ管理プログラム303は、副ボリュームアドレス804にコピー先ボリュームアドレス1522を、正コピーID801に正コピーID1523を、副コピーID802に副コピーID1524を、そして、ペア状態804にペア状態1525を設定する。
ストレージ管理プログラム303は、次に、コピーグループ管理テーブル308のコンシステンシー時刻806にペア状態テーブル1520のコンシステンシー時刻1526を設定する(2001c)。
図21Aは、本発明の第1の実施形態に係るリモートコピーシステムにおける障害検出時処理を説明するためのフローチャートであり、具体的には、副ジャーナルボリューム122bにおいてハードウェア障害が検知されたときの処理を説明している。
同図を参照して、副ストレージシステム120bの障害回復プログラム925が、ディスク装置940の障害を検知する(2100a)。続いて、障害回復プログラム925は、障害が発生したディスク装置940のボリュームアドレスとコピー処理プログラム922に通知する(2101a)。
これを受けて、コピー処理プログラム922は、ジャーナルボリューム管理テーブル924を変更する(2102a)。具体的には、コピー処理プログラム922は、ジャーナルボリューム管理テーブル924のボリューム状態1302を「障害」に、有効フラグ1304を「無効」に設定する。また、コピー処理プログラム922は、コピー管理テーブル923のペア状態1204を「Suspend−Failure」に設定する。
図21Bは、本発明の第1の実施形態に係るリモートコピーシステムにおける障害回復時処理を説明するためのフローチャートであり、具体的には、副ジャーナルボリューム122bにおいてハードウェア障害の回復が検知されたときの処理を説明している。
同図を参照して、副ストレージサブシステム103の障害回復プログラム925が、ディスク装置940の障害回復を検知する(2100b)。続いて、障害回復プログラム925は、障害回復したディスク装置940のボリュームアドレスとコピー処理プログラム922に通知する(2101b)。
これを受けて、コピー処理プログラム922は、ジャーナルボリューム管理テーブル924のボリューム状態1302を「正常」に設定する(2102b)。
図22は、本発明の第1の実施形態に係るリモートコピーシステムにおける書き込み処理を説明するためのフローチャートである。具体的には、同図は、正ホスト計算機110aが、正ボリューム121aにデータを書き込むために、正ストレージシステム120aにライトコマンドを発行した場合の処理を示している。
同図を参照して、正ホスト計算機110a上の業務プログラム301は、OS300の制御の下、正ボリューム122aにデータの書き込みを要求する(2200)。これを受けて、正ストレージシステム120aのコピー処理プログラム922aは、入出力プログラム921にデータの書き込みを指示する(2201)。続いて、正ストレージシステム120aのコピー処理プログラム922aは、ジャーナルを生成し、正ジャーナルボリューム122aに書き込みを指示する(2202)。
また、副ストレージシステム120bのコピー処理プログラム922bは、正ストレージシステム120aからジャーナルを受信する(2203)。副ストレージシステム102のコピー処理プログラム922bは、受信したジャーナルを用いてジャーナルボリューム管理テーブル924を更新する(2204)。具体的には、副ストレージシステム102のコピー処理プログラム922bは、ジャーナルボリューム管理テーブル924のジャーナル受信時刻1303にライトコマンド発行時刻1104を、有効フラグ1304に「有効」を設定する。続いて、コピー処理プログラム922bは、副ジャーナルボリューム123bから未処理のジャーナルを順次に取り出し、副ボリュームに書き込む(2206)。そして、コピー処理プログラム922bは、取り出したジャーナルに基づいてコピー管理テーブル923を更新する(2206)。具体的には、コピー処理プログラム922bは、コピー管理テーブル923の有効フラグ1206を「有効」に、リストア完了コマンド時刻1205をライトコマンド発行時刻1104に設定する。
(具体例)
次に、本実施形態のリモートコピーシステムにおける障害復旧時点の算出例を説明する。
図31Aは、本発明の第1の実施形態に係るリモートコピーシステムにおけるホスト計算機100のコピーグループ定義テーブル305の一例を示す図である。また、図31Bは、本発明の第1の実施形態に係るリモートコピーシステムにおける正ストレージシステム120aのジャーナルボリューム管理テーブル924aの一例を示し、同図Cは、副ストレージシステム120bのジャーナルボリューム管理テーブル924bを示す図である。
本例では、3つのコピーペアで構成されるコピーグループ124が定義されている。即ち、図31Aに示すように、本例のコピーグループ定義テーブル305においては、コピーグループID500に「GRP01」、正コピーID501に「01」、副コピーID502に「02」が設定されている。また、正ボリュームアドレス503及び副ボリュームアドレス504にはそれぞれ、「P00」と「S00」のペア、「P01」と「S01」のペア、「P02」と「S02」のペアが設定されている。
また、図31Bに示すように、正ストレージシステム120aのジャーナルボリューム管理テーブル924aにおいては、コピーID1300に「01」が設定されている。このコピーID1300は、2つのジャーナルボリューム「X00」及び「X01」で構成されている。
また、図31Cに示すように、副ストレージシステム120bのジャーナルボリューム管理テーブル924bにおいては、コピーID1300に「02」が設定されている。同様に、このコピーID1300は、2つのジャーナルボリューム「Y00」及び「Y01」で構成されている。
図32は、本発明の第1の実施形態に係るリモートコピーシステムにおいて設定されたコピーグループ124に対する操作の一例を時系列に示した図である。
即ち、同図に示すように、正ホスト計算機110aのストレージ管理プログラム303は、以下のように処理を実行する。
10:00にペア状態取得処理を実行する。
10:05にペア形成処理を実行する。10:30にペア状態取得処理を実行する。
10:35に正ボリュームへ断続的にライトコマンドを発行する。
12:30にペア状態の処理を実行する。
12:40に以下のいずれかの事象によってコピーが中断する。
・実行モードをFlushにしてコピー中断処理を実行する。
・実行モードをPurgeにしてコピー中断処理を実行する。
・正ボリュームに障害が発生する。
・副ジャーナルボリュームに障害が発生する。
12:50に、ペア状態取得処理を実行する。
13:00に、コピー解除処理を実行する。
13:40に、ペア状態取得処理を実行する。
ここで、目標復旧時点(コンシステンシー時刻)を取得するための処理の概略を説明する。
目標復旧時点を選択するための制御フラグは、ペア形成処理、コピー中断処理、コピー削除処理、ライト処理、又は副ジャーナルボリュームにおける障害を契機に、設定される。
即ち、上述したように、目標復旧時点を選択するための制御フラグは、コピー管理テーブル923の有効フラグ1206及びジャーナルボリューム管理テーブル924の有効フラグ1304である。有効フラグ1206及び1304に対する設定は、図16〜図19、図21、及び図22に示したフローチャートに従ってなされる。
より具体的には、ジャーナルボリューム管理テーブル924の有効フラグ1306が「有効」になる契機は、正ボリューム122aに書き込みが行われ、副ストレージシステム120bが正ストレージシステム120aからジャーナルを受信し、副ジャーナルボリューム122bに格納された時である。
また、コピー管理テーブル923の有効フラグ1204が「有効」になる契機は、副ジャーナルボリューム122bに格納されたジャーナルが副ボリューム123bに反映された時である。
さらに、ジャーナルボリューム管理テーブル924の有効フラグ1306及びコピー管理テーブル923の有効フラグ1204が「無効」になる契機は、以下のとおりである。
第1は、ペア形成処理が実行された場合、当該コピーペアについてのコピー管理テーブル923のエントリが作成され、有効フラグ1204に「無効」、有効フラグ1306に「無効」がそれぞれ設定される。
第2は、実行モードに「Purge」を指定してコピー中断処理が実行された場合、有効フラグ1306に「無効」が設定される。
そして、第3は、副ジャーナルボリューム122bにおいて障害が発生した場合、有効フラグ1306に「無効」が設定される。
一方、障害になった副ジャーナルボリューム122bが回復した場合であっても、有効フラグ1306に「無効」は設定されない。
なお、ペア削除処理が実行された場合、ペア状態がSimplex状態になるため、当該コピーペアのコピー管理テーブル923のエントリは削除されることになる。
また、コピー処理が再開実行された場合、これらの制御フラグに変更はない。
本実施形態のコピー処理プログラム922は、上記制御フラグの設定とは非同期にペア状態取得処理を実行した契機に、制御フラグを判定し、目標復旧時刻(コンシステンシー時刻)を設定する。
以下に、図32に示したように、10:00、10:30、12:30、12:50、13:30、及び13:40におけるペア状態取得処理が実行された際の目標復旧時点を求める方法を説明する。
図33A〜図33Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてある時刻にペア状態取得処理が実行された場合の各テーブルの内容をそれぞれ示す図である。具体的には、図33Aは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、10:00にペア状態取得処理が実行された時点のコピー管理テーブル923の内容を示す図である。また、図33Bは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、10:00にペア状態取得処理が実行された時点の正ストレージシステム120aのジャーナルボリューム管理テーブル924aの内容を示す図であり、図33Cは、副ストレージシステム120bのジャーナルボリューム管理テーブル924bの内容を示す図である。さらに、図33Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、10:00にペア状態取得処理が実行された時点のペア状態テーブル1520の内容を示す図である。
即ち、10:00時点では、図33Bに示すジャーナルボリューム管理テーブル924a及び図33Cに示すジャーナルボリューム管理テーブル924bは、図31B及び図31Cのものと同じである。また、10:00時点では、図33Dに示すように、Simplex状態のため、コンシステンシー時刻1525はNULLであり、従って、目標復旧時点は存在しない。
図34A〜図34Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてある時刻にペア状態取得処理が実行された場合の各テーブルの内容をそれぞれ示す図である。具体的には、図34A〜図34Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、10:30にペア状態取得処理が実行された時点のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
10:30時点では、既に形成コピー処理が実行されているため、形成コピーの完了に伴ってペア状態1204はDuplex状態になっている。なお、形成コピーが未完了の場合はCopying状態である。
この時点での目標復旧時点は、以下のようにして求められる。
即ち、コピー処理プログラム922は、コンシステンシー時刻設定処理Xを呼び出し、図34Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「無効」であるため、コピー処理プログラム922は、図34Aに示すコピー管理テーブル923の有効フラグ1206が「有効」であるか否かを判定する。
本例では、有効フラグ1206は「無効」であるため、コピー処理プログラム922は、図34Dに示すペア状態テーブル1520のコンシステンシー時刻1526に目標復旧時点を設定しない。従って、コンシステンシー時刻1526はNULLである。
図35A〜図35Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてある時刻にペア状態取得処理が実行された場合の各テーブルの内容をそれぞれ示す図である。具体的には、図35A〜図35Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、12:30にペア状態取得処理が実行された時点のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
12:30時点では、ペア状態がDuplex状態で正ボリューム122aに書き込みが行われている。このため、正ボリューム122aに対する書き込みにより、正ストレージシステム120aにおいてジャーナルが生成され、生成されたジャーナルは副ストレージシステム120bに転送され、副ストレージシステム120bに到着したジャーナルは副ボリューム122bに反映されている。図35Cに示す副ストレージシステム120bのジャーナルボリューム管理テーブル924bのジャーナル受信時刻1303bは、ジャーナルボリューム123b毎に副ストレージシステム120bが受信したジャーナルに付属した時刻のうち最新の時刻が設定されている。
この時点での目標復旧時点は、以下のようにして求められる。
即ち、コピー処理プログラム922は、図35Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「有効」であるため、コピー処理プログラム922は、図35Cに示すジャーナルボリューム管理テーブル924bのジャーナル受信時刻1303b(つまり「12:24」)をペア状態テーブル1520のコンシステンシー時刻1526に目標復旧時点として設定する。
上述したように、図32に示すように、12:40の時点では、それらの要因として、実行モードが「Flash」でコピー中断処理が行われた場合、実行モードが「Purge」でコピー中断処理が行われた場合、正ボリューム122aが障害となった場合、及び副ジャーナルボリューム123bが障害となった場合の4つの方法で正サイトから副サイトへのコピーが中断された場合について述べた。以下では、それぞれの場合の処理について、図36〜図39を参照して説明する。
図36A〜図36Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてコピー中断処理後ある時刻にペア状態取得処理が実行された場合の各テーブルの内容をそれぞれ示す図である。具体的には、図36A〜図36Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、12:40に実行モードを「Flush」としてコピー中断の処理が実行され、12:50にペア状態取得処理が実行された時点のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
コピー処理プログラム922は、実行モードを「Flush」としてコピー中断処理を実行すると、コピー中断処理を実行した時点までの正ボリューム122aに対する更新(ジャーナル)を副ボリューム122bに反映させた後、ペア状態をSuspend―Operation状態に変更する。なお、コピー中断処理直後のペア状態は、Suspending状態である。
コピー中断処理を実行時点までのジャーナルは、副ストレージシステム120bによって読み出され、副ボリューム122bに書き込まれるため、図36Aに示すコピー管理テーブル923aのリストア完了時刻1295は、コピー中断処理を実行した時刻と同じ「12:40」となる。副ストレージシステム120bのジャーナルボリューム管理テーブル924bのジャーナル受信時刻1303bも、コピー中断処理を実行した時刻と同じ「12:40」である。
この時点での目標復旧時点は、以下のように求められる。
即ち、コピー処理プログラム922は、図36Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「有効」であるため、コピー処理プログラム922は、図36Bに示すジャーナルボリューム管理テーブル924bのジャーナル受信時刻1303b(つまり「12:40」)を目標復旧時点として同図Dに示すペア状態テーブル1520のコンシステンシー時刻1526に設定する。
図37A〜図37Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてコピー中断処理後ある時刻にペア状態取得処理が実行された場合の各テーブルの内容をそれぞれ示す図である。具体的には、図37A〜図37Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、12:40に実行モードを「Purge」としてコピー中断の処理が実行され、12:50にペア状態取得処理が実行された時点のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
コピー処理プログラム922は、実行モードを「Purge」としてコピー中断処理を実行すると、ジャーナルボリューム122に残っているジャーナルを破棄し、ペア状態をSuspend―Operation状態に変更する。
このため、同図Aに示すコピー管理テーブル923のリストア完了時刻1205は、コピー中断処理を実行した時刻(本例では「12:34」)以前である。ジャーナルは破棄されているため、副ストレージシステム120bのジャーナルボリューム管理テーブル924bの有効フラグ1304bは「無効」であり、従って、ジャーナル受信時刻1303bもまた「無効」である。
この時点での目標復旧時点は、以下のように求められる。
即ち、コピー処理プログラム922は、図37Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「無効」であるため、コピー処理プログラム922は、次に、同図Aに示すコピー管理テーブル923の有効フラグ1206が「有効」であるか否かを判定する。
この場合、有効フラグ1206は「有効」であるため、コピー処理プログラム922は、同図Aに示すコピー管理テーブル923のリストア完了時刻1205(つまり「12:33」)を目標復旧時点として同図Dに示すペア状態テーブル1520のコンシステンシー時刻1526に設定する。
図38A〜図38Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてある時刻に正ボリュームに障害が発生した場合の各テーブルの内容をそれぞれ示す図である。具体的には、図38A〜図38Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、12:40に正ボリューム122aに障害が発生した場合のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
正ボリューム122aに障害が発生すると、コピー管理テーブル923のペア状態1204は「Suspend−Failure」に変更される。
この場合、副ストレージシステム120bのジャーナルボリューム122bは、障害が発生していないため、正ボリュームに障害が発生していても副ジャーナルボリューム122bに転送されたジャーナルは、副ボリューム122bに反映される。
この時点での目標復旧時点は、以下のように求められる。
即ち、コピー処理プログラム922は、図38Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「有効」であるため、コピー処理プログラム922は、同図Cに示すジャーナルボリューム管理テーブル924bのジャーナル受信時刻1303(つまり「12:38」)を目標復旧時点として同図Dに示すペア状態テーブル1520のコンシステンシー時刻1526に設定する。
図39A〜図39Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてある時刻に副ボリューム122bに障害が発生した場合の各テーブルの内容をそれぞれ示す図である。具体的には、図39A〜図39Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、12:40に副ボリューム122bに障害が発生した場合のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
副ジャーナルボリュームに障害が発生したため、ペア状態はSuspend−Failure状態になっている。ジャーナルは、副ジャーナルボリューム120bに障害が発生する直前までに副ボリューム122bに反映されている。
この時点での目標復旧時点は、以下のように求められる。
即ち、コピー処理プログラム922は、図39Cに示すジャーナルボリューム管理テーブル924bの有効フラグ1304bが「有効」であるか否かを判定する。本例では、有効フラグ1304bは「無効」であるため、コピー処理プログラム922は、次に、同図Aに示すコピー管理テーブル923の有効フラグ1206が「有効」であるか否かを判定する。
この結果、有効フラグ1206は「有効」であるため、コピー処理プログラム922は、同図Aに示すコピー管理テーブル3602dのストア完了時刻1205(つまり「12:33」)を目標復旧時点として同図Dに示すペア状態テーブル1520のコンシステンシー時刻1526に設定する。
図40A〜図40Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいてペア解除処理後ある時刻にペア状態取得処理が実行された時点の各テーブルの内容をそれぞれ示す図である。具体的には、図40A〜図40Dは、本発明の第1の実施形態に係るリモートコピーシステムにおいて、13:00にペア解除処理が実行され、13:30にペア状態取得処理が実行された時点のコピー管理テーブル923、ジャーナルボリューム管理テーブル924a、ジャーナルボリューム管理テーブル924b、及びペア状態テーブル1520の内容をそれぞれ示す図である。
この場合には、13:00時点でペアは解除され、ペア状態はSimplex状態になっているため、この時点で目標復旧時点は存在しないことになる。
以上のように、本実施形態によれば、ストレージシステム120のコピー処理プログラム922は、ホスト計算機110からの指示を受けて、副ストレージシステム120bが受信した最新ジャーナルに付属する時刻又は副ボリュームに最後に反映させたジャーナルに付属する時刻の一方を有効な目標復旧時点として設定する。ストレージ運用プログラム302は、設定された目標復旧時点をユーザに提示し、従って、ユーザは、発生した障害の状況を考慮することなく、有効な目標復旧時点を容易に把握することができるようになる。
[第2の実施形態]
第2の実施形態は、ストレージ管理プログラム303が副ストレージシステム120bの状態を取得し、当該取得した状態に応じて、副ストレージシステム120bが受信した最新のジャーナルに付属する時刻又は副ボリューム122bに反映させたジャーナルに付属する時刻の一方を目標復旧時点として提示する。以下では、第1の実施形態と異なる点を中心に説明する。
図23は、本発明の第2の実施形態に係るリモートコピーシステムにおけるペア状態テーブル1520の一例を示す図である。
同図に示すように、本実施形態のペア状態テーブル1520’は、コンシステンシー時刻1526に代えて、第1のコンシステンシー時刻1527、第1の有効フラグ1528、第2のコンシステンシー時刻1529、及び第2の有効フラグ1530を有する。
第1のコンシステンシー時刻1527には、ストレージシステム120がペア状態取得コマンドを受信した場合に、コピー管理テーブル923のリストア完了時刻1205が目標復旧時点として設定される。
また、第2のコンシステンシー時刻1529には、ストレージシステム120がペア状態取得処理を受信したとき、ジャーナルボリューム管理テーブル924のジャーナル受信時刻1303が目標復旧時点として設定される。
第1の有効フラグ1528及び第2の有効フラグ1530には、コピー管理テーブル923の有効フラグ1206及びジャーナルボリューム管理テーブル924の有効フラグ1304の値がそれぞれ設定される。
図24は、本発明の第2の実施形態に係るリモートコピーシステムにおけるコンシステンシー時刻設定処理X’を説明するためのフローチャートである。
同図に示すように、コピー処理プログラム922は、コンシステンシー時刻設定処理X’を実行し、ペア状態テーブル1520の各フィールドに所定の値を設定する(2400)。即ち、コピー処理プログラム922は、ペア状態テーブル1520の第1のコンシステンシー時刻1527にコピー管理テーブル923のリストア完了時刻1205を設定し、第1の有効フラグ1528に有効フラグ1206を設定する。また、コピー処理プログラム922は、ペア状態テーブル1520の第2のコンシステンシー時刻1529にジャーナルボリューム管理テーブル924のジャーナル受信時刻1303を設定し、第2の有効フラグ時刻1530に有効フラグ1304を設定する。
上述した第1の実施形態では、ストレージシステム120が、有効な目標復旧時点の判定を行っていたが、本実施形態では、ホスト計算機110が、この判定を行う。即ち、第1の実施形態では、ホスト計算機110のストレージ運用プログラム302の指示の下、ストレージ管理プログラム303からペア状態取得コマンドを受けたストレージシステム120のコピー処理プログラム922が、有効フラグ1304及び有効フラグ1206を用いて、有効な目標復旧時点の判定を行い、目標復旧時点が設定されたペア状態テーブル2005をストレージ管理プログラム303に返し、ストレージ管理プログラム303は、これをそのままストレージ運用プログラム302に報告する。一方、本実施形態では、ストレージシステム110のコピー処理プログラム922は、ホスト計算機110のストレージ管理プログラム303からのコマンドに応じて、自身が保持する情報(コピー管理テーブル923及びジャーナルボリューム管理テーブル924の内容)をストレージ管理プログラム303に送信する。ストレージ管理プログラム303は、ストレージシステム120からのコマンド応答に基づいて、有効な目標復旧時点を判定する。
図25は、本発明の第2の実施形態に係るリモートコピーシステムにおけるコピーグループ管理テーブル設定処理を説明するためのフローチャートである。
同図を参照して、ストレージ管理プログラム303は、コピーグループ管理テーブル308の所定のフィールドに対して設定を行う(2500)。これは、図20Cのステップ2000cと同様である。次に、ストレージ管理プログラム303は、コンシステンシー時刻設定処理X’を行って、コンシステンシー時刻を取得する(2002)。
図26は、本発明の第2の実施形態に係るリモートコピーシステムにおけるコンシステンシー時刻設定処理X’を説明するためのフローチャートである。
同図を参照して、まず、ストレージ管理プログラム303は、ペア状態テーブル1520のペア状態1525をチェックする(2600)。ストレージ管理プログラム303は、ペア状態1525が、Suspend−Operation状態、Suspending状態、Suspend−Failure状態、又はDuplex状態のいずれかであると判断する場合、さらに、第2の有効フラグ1530をチェックする(2601)。
ストレージ管理プログラム303は、第2の有効フラグ1530が「有効」であると判断する場合、第2のコンシステンシー時刻1529を返す(2603)。一方、有効フラグ1304が無効であると判断する場合には、ストレージ管理プログラム303は、さらに、第1の有効フラグ1528をチェックする(2602)。ストレージ管理プログラム303は、有効フラグ1206が「有効」であると判断する場合、第1のコンシステンシー時刻1527を返す(2604)。一方、有効フラグ1206が無効であると判断する場合、コピー処理プログラム922は、「無効」を返す(2605)。
これに対して、ペア状態1525をチェックした結果(2600)、ペア状態1525がSimplex状態、Copying状態、又はDeleting状態のいずれかであると判断する場合、「無効」を返す(2005b)。
本実施形態では、ストレージ管理プログラム303は、ペア状態テーブル1520に基づいて、目標復旧時点(コンシステンシー時刻)を求めている。ペア状態テーブル1520の第1のコンシステンシー時刻1527及び第1の有効フラグ1528はそれぞれ、ジャーナルボリューム管理テーブル924のジャーナル受信時刻1303及び有効フラグ1304に対応し、また、第2のコンシステンシー時刻1529及び第2の有効フラグ1530はそれぞれ、コピー管理テーブル923のリストア完了時刻1205及び有効フラグ1206に対応する。従って、第1の実施形態で用いたジャーナル受信時刻1303、有効フラグ1304、リストア完了時刻1205、及び有効フラグ1206をそれぞれ対応するものに読み替えることで、本実施形態における目標復旧時点の算出例は、同様に説明される。
以上のように、本実施形態によれば、ストレージ運用プログラム302の指示の下、ホスト計算機110のストレージ管理プログラム303は、ストレージシステム120から取得した情報に従って、副ストレージシステム120bが受信した最新ジャーナルに付属する時刻又は副ボリュームに最後に反映させたジャーナルに付属する時刻の一方を有効な目標復旧時点として設定する。ストレージ運用プログラム302は、設定された目標復旧時点をユーザに提示し、従って、ユーザは、発生した障害の状況を考慮することなく、有効な目標復旧時点を容易に把握することができるようになる。
[その他の実施形態]
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替えまたは並行動作するように構成しても良い。