(57)【特許請求の範囲】
【請求項１】
第一の計算機が通信可能に接続され第一の計算機からアクセスされる第一の記憶装置を有する第一のストレージサブシステム、前記第一のストレージサブシステムに通信可能に接続され第二の記憶装置と第一のジャーナル記憶装置とを有する第二のストレージサブシステム、及び前記第二のストレージサブシステムに通信可能に接続され第二のジャーナル記憶装置と第二の計算機からアクセスされる第三の記憶装置とを有する第三のストレージサブシステムを備えるストレージシステムで行われる記憶制御方法であり、
前記第一の記憶装置と前記第二の記憶装置を含んだ第一のコピーグループと、前記第二の記憶装置と前記第三の記憶装置を含んだ第二のコピーグループが、それぞれ形成されており、
前記第一のコピーグループでは、同期型リモートコピーが行われ、前記同期型リモートコピーでは、前記第一のストレージサブシステムが、前記第一の記憶装置へのデータの書込み要求を前記第一の計算機から受信した場合、その書込み要求中のデータを、前記第一の記憶装置に書くと共に、そのデータを前記第二の記憶装置に書くことのリモートコピー要求を前記第二のストレージサブシステムに送信し、その後、前記第二のストレージサブシステムから、所定の応答を受けたとき、書込み完了報告を、前記第一の計算機に返し、
前記第二のコピーグループでは、非同期型リモートコピーが行われ、前記非同期型リモートコピーでは、前記第二のストレージサブシステムが、前記第二の記憶装置に対するリモートコピー要求を受けた場合、その要求中のデータを、前記第二の記憶装置に書くと共に、そのデータとそのデータが前記第二の記憶装置に書かれた順序とを含んだジャーナルを生成し、そのジャーナルを、第一のジャーナル記憶装置に書き込み、前記第二の記憶装置にデータを書込むタイミングと非同期で、前記第一のジャーナル記憶装置内のジャーナルを、前記第三のストレージサブシステム送信し、前記第三のストレージサブシステム７は、前記第二のストレージサブシステムからジャーナルを受信した場合、受信したジャーナルを、前記第二のジャーナル記憶装置に書込み、前記ジャーナル記憶装置内の複数のジャーナルのうちの更新順序が最も若いジャーナルから順に、ジャーナル内のデータを、そのジャーナルから特定される前記第三の記憶装置における場所にリストアし、
前記第一のストレージサブシステムが、前記第一のコピーグループについて、前記第二の記憶装置内のデータ群を前記第一の記憶装置内のデータ群と同じにしたくても前記第一の記憶装置に書かれるデータが前記第二のストレージサブシステムへ転送されないが故にそれができないような状況である同期コピー不能状況が生じた場合、その後、前記第一の計算機からのライト要求に従い前記第一の記憶装置に新たにデータが書き込まれることにより、前記第一の記憶装置と前記第二の記憶装置とに差分が生じたならば、前記第一の記憶装置の複数の記憶領域にそれぞれ対応した複数のビットを含んだ差分ビットマップにおける、前記第一の記憶装置内の新たにデータが書かれた場所に対応するビットを、更新することで、前記第一の記憶装置内のどこに前記第一の記憶装置と前記第二の記憶装置との差分のデータがあるかを管理し、
複数の差分データが前記第一のストレージサブシステムに存在する状態で前記同期コピー不能状況が解除になった場合、前記第一のストレージサブシステムは、リストアの中断を意味するコマンドであるリストア中断コマンドを前記第二のストレージサブシステムに送信し、その後に、前記複数の差分データを前記第二のストレージサブシステムに送信し、その後、リストアの再開を意味するコマンドであるリストア再開コマンドを前記第二のストレージサブシステムに送信し、前記第二のストレージサブシステムが、前記リストア中断コマンドを受けてから、前記複数の差分データを受け、前記複数の差分データを前記第二の記憶装置に書き込み、前記複数の差分データをそれぞれ含んだ複数のジャーナルである複数の差分ジャーナルを前記第一のジャーナル記憶装置に書き込み、前記リストア再開コマンドを受け、前記リストア中断コマンド、前記複数の差分ジャーナル及び前記リストア再開コマンドの順に、それらを前記第三のストレージシステムに送信し、前記第三のストレージサブシステムが、前記リストア中断コマンド、前記複数の差分ジャーナル及び前記リストア再開コマンドを受けてそれらを前記第二のジャーナル記憶装置に書き、前記第二のジャーナル記憶装置から前記リストア中断コマンドを参照した場合、前記リストア再開コマンドを探し、前記リストア再開コマンドを見つけた場合、前記リストア中断コマンドと前記リストア再開コマンドとの間に存在する前記複数の差分ジャーナルに従う前記複数の差分データを前記第三の記憶装置にリストアすることを、実質的に時間を隔てることなく連続的に実行し、少なくとも前記複数の差分データを前記第三の記憶装置にリストアしている間は、前記第二の計算機から前記第三の記憶装置にアクセスされないよう排他制御を実行し、前記複数の差分データを前記第三の記憶装置にリストアした後、前記排他制御を止めることで前記第二の計算機から前記第三の記憶装置へのアクセスが可能となる、
記憶制御方法。
【請求項２】
第一の計算機が通信可能に接続され前記第一の計算機からアクセスされる第一の記憶装置を有する第一のストレージサブシステムと、
前記第一のストレージサブシステムに通信可能に接続され前記第二の記憶装置と第一のジャーナル記憶装置とを有する第二のストレージサブシステムと、
前記第二のストレージサブシステムに通信可能に接続され第二のジャーナル記憶装置と第二の計算機からアクセスされる第三の記憶装置とを有する第三のストレージサブシステムと
を備え、
前記第一の記憶装置と前記第二の記憶装置を含んだ第一のコピーグループと、前記第二の記憶装置と前記第三の記憶装置を含んだ第二のコピーグループが、それぞれ形成されており、
前記第一のコピーグループでは、同期型リモートコピーが行われ、前記同期型リモートコピーでは、前記第一のストレージサブシステムが、前記第一の記憶装置へのデータの書込み要求を前記第一の計算機から受信した場合、その書込み要求中のデータを、前記第一の記憶装置に書くと共に、そのデータを前記第二の記憶装置に書くことのリモートコピー要求を前記第二のストレージサブシステムに送信し、その後、前記第二のストレージサブシステムから、所定の応答を受けたとき、書込み完了報告を、前記第一の計算機に返し、
前記第二のコピーグループでは、非同期型リモートコピーが行われ、前記非同期型リモートコピーでは、前記第二のストレージサブシステムが、前記第二の記憶装置に対するリモートコピー要求を受けた場合、その要求中のデータを、前記第二の記憶装置に書くと共に、そのデータとそのデータが前記第二の記憶装置に書かれた順序とを含んだジャーナルを生成し、そのジャーナルを、第一のジャーナル記憶装置に書き込み、前記第二の記憶装置にデータを書込むタイミングと非同期で、前記第一のジャーナル記憶装置内のジャーナルを、前記第三のストレージサブシステム送信し、前記第三のストレージサブシステム７は、前記第二のストレージサブシステムからジャーナルを受信した場合、受信したジャーナルを、前記第二のジャーナル記憶装置に書込み、前記ジャーナル記憶装置内の複数のジャーナルのうちの更新順序が最も若いジャーナルから順に、ジャーナル内のデータを、そのジャーナルから特定される前記第三の記憶装置における場所にリストアし、
前記第一のストレージサブシステムが、前記第一のコピーグループについて、前記第二の記憶装置内のデータ群を前記第一の記憶装置内のデータ群と同じにしたくても前記第一の記憶装置に書かれるデータが前記第二のストレージサブシステムへ転送されないが故にそれができないような状況である同期コピー不能状況が生じた場合、その後、前記第一の計算機からのライト要求に従い前記第一の記憶装置に新たにデータが書き込まれることにより、前記第一の記憶装置と前記第二の記憶装置とに差分が生じたならば、前記第一の記憶装置の複数の記憶領域にそれぞれ対応した複数のビットを含んだ差分ビットマップにおける、前記第一の記憶装置内の新たにデータが書かれた場所に対応するビットを、更新することで、前記第一の記憶装置内のどこに前記第一の記憶装置と前記第二の記憶装置との差分のデータがあるかを管理し、
複数の差分データが前記第一のストレージサブシステムに存在する状態で前記同期コピー不能状況が解除になった場合、前記第一のストレージサブシステムは、リストアの中断を意味するコマンドであるリストア中断コマンドを前記第二のストレージサブシステムに送信し、その後に、前記複数の差分データを前記第二のストレージサブシステムに送信し、その後、リストアの再開を意味するコマンドであるリストア再開コマンドを前記第二のストレージサブシステムに送信し、前記第二のストレージサブシステムが、前記リストア中断コマンドを受けてから、前記複数の差分データを受け、前記複数の差分データを前記第二の記憶装置に書き込み、前記複数の差分データをそれぞれ含んだ複数のジャーナルである複数の差分ジャーナルを前記第一のジャーナル記憶装置に書き込み、前記リストア再開コマンドを受け、前記リストア中断コマンド、前記複数の差分ジャーナル及び前記リストア再開コマンドの順に、それらを前記第三のストレージシステムに送信し、前記第三のストレージサブシステムが、前記リストア中断コマンド、前記複数の差分ジャーナル及び前記リストア再開コマンドを受けてそれらを前記第二のジャーナル記憶装置に書き、前記第二のジャーナル記憶装置から前記リストア中断コマンドを参照した場合、前記リストア再開コマンドを探し、前記リストア再開コマンドを見つけた場合、前記リストア中断コマンドと前記リストア再開コマンドとの間に存在する前記複数の差分ジャーナルに従う前記複数の差分データを前記第三の記憶装置にリストアすることを、実質的に時間を隔てることなく連続的に実行し、少なくとも前記複数の差分データを前記第三の記憶装置にリストアしている間は、前記第二の計算機から前記第三の記憶装置にアクセスされないよう排他制御を実行し、前記複数の差分データを前記第三の記憶装置にリストアした後、前記排他制御を止めることで前記第二の計算機から前記第三の記憶装置へのアクセスが可能となる、
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御技術に関し、具体的には、リモートコピーを利用したデータのリストアに関する。
【背景技術】
【０００２】
複数台のストレージサブシステムを含んだストレージシステムが知られている。そのようなストレージステムとして、例えば、特開２００３−１２２５０９号公報に開示のシステムがある。特開２００３−１２２５０９号公報には、例えば、以下のことが開示されている。
【０００３】
（１）第一のストレージサブシステムに第二のストレージサブシステムが接続されており、第二のストレージシステムに第三のストレージシステムが接続されている。第一のストレージサブシステムと第二のストレージシステムとの間では、同期型リモートコピーが行われ、第二のストレージシステムと第三のストレージサブシステムとの間では、非同期型リモートコピーが行われる。非同期型リモートコピーでは、第二のストレージサブシステムでデータが更新された順序で、第二のストレージサブシステムから第三のストレージサブシステムにデータが転送される。
【０００４】
（２）また、ストレージサブシステム間で記憶されているデータの差分を管理し、その差分のデータを用いることで、データをリストアすることができることが開示されている。
【特許文献１】特開２００３−１２２５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、例えば、第一のストレージサブシステムが、第一の記憶装置を備えるとする。第二のストレージサブシステムが、第二の記憶装置を備えるとする。第三のストレージサブシステムが、第三の記憶装置を備えるとする。第一の記憶装置に書かれるデータが、リモートコピーにより、第二の記憶装置にも書かれるとする。第二の記憶装置に書かれるデータが、リモートコピーにより、第三の記憶装置に書かれるとする。ストレージシステムの外部に存在する装置（以下、外部装置）が、第一の記憶装置や第三の記憶装置にアクセスできるようになっているとする。
【０００６】
つまり、その環境では、第一の記憶装置でデータの更新が発生する場合には、そのタイミングと同期或いは非同期で、第二の記憶装置及び第三の記憶装置で順次にデータの更新が発生する。外部装置が第三の記憶装置にアクセスしたときには、第一の記憶装置でのデータの更新順序通りに第三の記憶装置のデータが更新されていることが保証されていると望ましい。しかし、そうするために、人間による面倒な操作が必要になると、誤った操作が行われる可能性が高く、問題である。
【０００７】
従って、本発明の目的は、第一の記憶装置に書かれるデータが第一のストレージサブシステムから第二のストレージサブシステムに転送されて第二の記憶装置に書かれ、第二の記憶装置に書かれるデータが第二のストレージサブシステムから第三のストレージサブシステムに転送されて第三の記憶装置に書かれるようになっている環境において、人間による面倒な操作を必要とすることなく、外部装置が第三の記憶装置にアクセスしたときに、第一の記憶装置でのデータの更新順序通りに第三の記憶装置のデータが更新されている可能性を高めることにある。
【０００８】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本発明の第一の側面に従う記憶制御方法は、第一のストレージサブシステム、前記第一のストレージサブシステムに通信可能に接続された第二のストレージサブシステム、及び前記第二のストレージサブシステムに通信可能に接続された第三のストレージサブシステムを備えるストレージシステムで行われる記憶制御方法である。この記憶制御方法は、保持されている差分データ群が送信される場合に、第一のストレージサブシステムが、差分データ群を挟むように第一の情報と第二の情報を送信することで、第三のストレージシステムの第三の記憶装置への差分データ群の反映を制御する。具体的には、以下の通りである。
【００１０】
前記第一のストレージサブシステムが、第一の記憶装置を備え、前記ストレージシステムの外部に存在する外部装置に通信可能に接続される。前記第二のストレージサブシステムが、第二の記憶装置と、ジャーナル群を記憶することができる第一のジャーナル記憶装置とを備える。前記第三のストレージサブシステムが、第三の記憶装置と、第二のジャーナル記憶装置とを備える。第一の記憶装置に書かれるデータが第一のストレージサブシステムから第二のストレージサブシステムに転送されて第二の記憶装置に書かれ、第二の記憶装置に書かれるデータが第二のストレージサブシステムから第三のストレージサブシステムに転送されて第三の記憶装置に書かれるような環境になっている。
【００１１】
前記第一のストレージサブシステムが、前記第一の記憶装置に書かれるデータを前記第二のストレーサブシステムに送信しない場合に、前記第一の記憶装置に新たにデータが書かれるならば、その新たに書かれるデータを、前記第一の記憶装置内のデータ群と前記第二の記憶装置内のデータ群との差分である差分データとして保持し、一以上の差分データを含んだ差分データ群を前記第二のストレージサブシステムに送信する場合、前記差分データ群を挟むように第一の情報と第二の情報とを前記第二のストレージサブシステムに送信する。
【００１２】
前記第二のストレージサブシステムは、前記第一の情報、前記差分データ群及び前記第二の情報を受信し、前記受信した差分データ群を前記第二の記憶装置に書き、前記差分データ群を含んだ一以上のジャーナルである差分ジャーナル群を前記第一のジャーナル記憶装置に書き、前記第一の情報、前記差分ジャーナル群及び前記第二の情報を、前記第三のストレージサブシステムに送信する。
【００１３】
前記第三のストレージサブシステムは、前記第一の情報、前記差分ジャーナル群及び前記第二の情報を受信し、前記差分ジャーナル群を前記第二のジャーナル記憶装置に書き、前記第一の情報及び前記第二の情報に基づいて、前記第二のジャーナル記憶装置内の前記差分ジャーナル群に含まれている前記差分データ群を前記第三の記憶装置に書く。
【００１４】
本発明の第一の態様では、前記第三のストレージサブシステムは、少なくとも前記差分ジャーナル群内の差分データ群を前記第三の記憶装置に書いている間、前記第三の記憶装置が前記外部装置又は前記別の外部装置からアクセスされないよう排他制御を行うことができる。
【００１５】
外部装置は、例えば、計算機或いはストレージサブシステムとすることができる。計算機としては、例えば、ホスト装置、ストレージサブシステムの保守を行うための保守端末など、種々の計算機を採用することができる。
【００１６】
本発明に第二の態様では、前記第一のストレージサブシステムは、前記第一の情報、前記差分データ群及び前記第二の情報の順に、それらを前記第二のストレージサブシステムに送信することができる。前記第二のストレージサブシステムは、前記第一の情報、前記差分ジャーナル群及び前記第二の情報の順を表したジャーナル群を作成することができる。前記第三のストレージサブシステムは、前記ジャーナル群を基に、前記差分ジャーナル群及び前記第二の情報を認識する前に前記第一の情報を認識することができる。この場合、前記第三のストレージサブシステムは、前記第一の情報を認識した場合、差分ジャーナル群を隔てて存在する前記第二の情報を探し、前記第二の情報を見つけた場合に、前記差分ジャーナル群内の前記差分データ群を、実質的に時間を隔てることなく連続的に前記第三の記憶装置に書くことができる。
【００１７】
本発明の第三の態様では、前記第一のストレージサブシステムは、前記第一の記憶装置の複数の記憶領域にそれぞれ対応した複数のビットを持った差分ビットマップを備え、前記第一の記憶装置の或る記憶領域にデータが書かれた場合に、前記或る記憶領域に対応するビットを更新し、再び前記或る記憶領域に新たにデータが書かれた場合には、前記或る記憶領域の更新済みのビットを更新しないようにすることができる。
【００１８】
本発明の第四の態様では、前記第一の記憶装置に書かれるデータを前記第二のストレーサブシステムに送信しない場合とは、前記第一のストレージサブシステムと前記第二のストレージサブシステムとが通信不可能になった場合、又は、前記第一の記憶装置と前記第二の記憶装置とを含んだコピーグループの状態が所定の状態に変更された場合であるとすることができる。
【００１９】
本発明の第五の態様では、前記環境では、前記第一のストレージサブシステムが、前記外部装置からデータを受信し、受信したデータを前記第一の記憶装置に書き、前記第一の記憶装置に書かれる前記データを、前記第二のストレージサブシステムに送信することができる。また、前記第二のストレージサブシステムが、前記第一のストレージサブシステムからデータを受信し、前記受信したデータを前記第二の記憶装置に書き、前記受信したデータと前記受信したデータが前記第二の記憶装置に書かれた順序とを含んだジャーナルを前記第一のジャーナル記憶装置に書き、前記第一のジャーナル記憶装置内のジャーナル群の各ジャーナルを前記第三のストレージサブシステムに送信することができる。また、前記第三のストレージサブシステムが、前記第二のストレージサブシステムから各ジャーナルを受信し、前記受信した各ジャーナルを前記第二のジャーナル記憶装置に書き、前記第二のジャーナル記憶装置内のジャーナル群の中から、前記順序が若い順にジャーナルを取得し、前記取得されたジャーナル内のデータを、前記第三の記憶装置に書くことができる。
【００２０】
上述した各サブストレージシステムが行う各処理は、各手段により実現することができる。各手段は、ハードウェア回路、コンピュータプログラム又はそれらの組み合わせにより実現することができる。
【発明の効果】
【００２１】
本発明によれば、第一の記憶装置に書かれるデータが第一のストレージサブシステムから第二のストレージサブシステムに転送されて第二の記憶装置に書かれ、第二の記憶装置に書かれるデータが第二のストレージサブシステムから第三のストレージサブシステムに転送されて第三の記憶装置に書かれるようになっている環境において、人間による面倒な操作を必要とすることなく、外部装置が第三の記憶装置にアクセスしたときに、第一の記憶装置でのデータの更新順序通りに第三の記憶装置のデータが更新されている可能性を高めることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の一実施形態に係るストレージシステムについて図面を用いて説明する。
【００２３】
図１は、本発明の一実施形態に係るストレージシステムの概要を示す図である。
【００２４】
本実施形態に係るストレージシステムには、第一のストレージサブシステム５と、第二のストレージサブシステム６と、第三のストレージサブシステム７とが含まれている。第一のストレージシステム３には、パス３を介して計算機１が通信可能に接続されており、且つ、パス８を介して第二のストレージサブシステム６が通信可能に接続されている。第二のストレージサブシステム６には、パス９を介して第三のストレージサブシステム７が通信可能に接続されている。第三のストレージサブシステム７には、パス４を介して計算機２が通信可能に接続されている。パス３，８，９及び４は、専用線或いは通信ネットワークにより設けることができる。また、各計算機１，２は、全てのストレージサブシステム５〜７に通信可能に接続されていても良い。
【００２５】
各ストレージサブシステム５〜７は、少なくとも一つの記憶装置を備えている。具体的には、例えば、第一〜第三のストレージサブシステム５〜７は、それぞれ、第一〜第三の記憶装置を備えている。そして、第一の記憶装置と第二の記憶装置を含んだ第一のコピーグループと、第二の記憶装置と第三の記憶装置を含んだ第二のコピーグループが、それぞれ形成されている。第一のコピーグループでは、第一の記憶装置に書かれるデータが、リモートコピーにより、第二の記憶装置に書かれる。第二のコピーグループでは、第二の記憶装置に書かれるデータが、リモートコピーにより、第三の記憶装置に書かれる。以下、コピーグループにおいて、コピー元になる記憶装置を、プライマリの記憶装置を略して「Ｐ−記憶装置」と呼び、コピー先になる記憶装置を、セカンダリの記憶装置を略して「Ｓ−記憶装置」と呼ぶ。それ故、以下、第一の記憶装置を、「Ｐ−記憶装置１０Ｐ」と記載し、第三の記憶装置を、「Ｓ−記憶装置１２Ｓ」と記載することにする。また、第二の記憶装置は、コピー先にもコピー元にもなるので、「ＳＰ−記憶装置１１ＳＰ」と記載することにする。各記憶装置１０Ｐ、１１ＳＰ、１２Ｓは、それぞれ、同一の記憶容量であるとすることができる。また、本実施形態では、計算機１がＰ−記憶装置１０Ｐにアクセスすることができるようになっており、計算機２がＳ−記憶装置１２Ｓにアクセスすることができるようになっている。
【００２６】
第一のコピーグループでは、同期型リモートコピーが行われる。同期型リモートコピーとは、Ｐ−記憶装置１０Ｐにデータが書かれることと同じタイミング（実質的に同じタイミング）で、そのデータを含んだ書込み要求が、第一のストレージサブシステム５から第二のストレージサブシステム６に送信され、ＳＰ−記憶装置１１ＳＰに書かれることを言う。具体的には、例えば、第一のストレージサブシステムは、Ｐ−記憶装置１０Ｐへのデータの書込み要求を受信した場合、その書込み要求中のデータを、図示しないキャッシュメモリ或いはＰ−記憶装置１０Ｐに書くと共に、そのデータをＳＰ−記憶装置１１ＳＰに書くことのリモートコピー要求を第二のストレージサブシステム６に送信し、その後、第二のストレージサブシステム６から、所定の応答（例えば、データを受信したことを意味する応答、或いは、データをＳＰ−記憶装置１０ＳＰに書いたことを意味する応答）を受けたとき、或いは、その所定の応答を受けることなく、所定の完了報告（例えば、書込み完了報告）を、計算機１に返すことができる。
【００２７】
一方、第二のコピーグループでは、非同期型リモートコピーが行われる。非同期型リモートコピーとは、ＳＰ−記憶装置１１ＳＰにデータが書かれることと異なるタイミングで、そのデータが、第二のストレージサブシステム６から第三のストレージサブシステム７に転送され、Ｓ−記憶装置１２Ｓに書かれることを言う。非同期型リモートコピーでは、ＳＰ−記憶装置１１ＳＰにデータが書かれるタイミングと非同期で、そのデータの第三のストレージサブシステムに対する転送が行われるため、ＳＰ−記憶装置１０ＳＰで、どのような順序でデータが更新されていったかを管理する必要が生じる。そのために、第二及び第三のストレージサブシステム６及び７に、それぞれ、ジャーナル記憶装置１４，１５が備えられる。第二のストレージサブシステム６は、ＳＰ−記憶装置１１ＳＰに対するリモートコピー要求を受けた場合、その要求中のデータを、ＳＰ−記憶装置１１ＳＰに書くと共に、そのデータを含んだ更新履歴情報（以下、それを「ジャーナル」と言う）を生成し、そのジャーナルを、ジャーナル記憶装置１４に書くことができる。ジャーナルには、例えば、データの他に、そのデータが書かれた場所を表す情報要素（例えば、論理ブロックアドレス（ＬＢＡ）と、そのデータが何番目に更新されたかを判別するための情報要素（例えば、ＳＰ−記憶装置１１ＳＰにデータが書かれた時刻或いは順番）とが含まれている。第二のストレージサブシステム６は、ＳＰ−記憶装置１１Ｓにデータを書込むタイミングと非同期で、ジャーナル記憶装置１４内のジャーナルを、第三のストレージサブシステム７に送信することができる。第二のストレージサブシステム６は、能動的に、ジャーナルを送信しても良いし、第三のストレージサブシステム７からの要求（例えば読出し要求）に応答して、ジャーナルを送信しても良い。
【００２８】
第三のストレージサブシステム７は、第二のストレージサブシステム６からジャーナルを受信した場合、受信したジャーナルを、ジャーナル記憶装置１５に書込む。そして、第三のストレージサブシステム７は、所定のタイミングで、ジャーナル記憶装置１５内の複数のジャーナルのうちの更新順序が最も若いジャーナルから順に、ジャーナル内のデータを、そのジャーナルから特定されるＳ−記憶装置１２Ｓにおける場所に書込む。これにより、Ｓ−記憶装置１２Ｓにデータがリストアされることになる。
【００２９】
以上のような構成により、Ｐ−記憶装置１０Ｐでデータが更新された順序でＳ−記憶装置１２Ｓのデータを更新することができる。
【００３０】
さて、この実施形態では、ＳＰ−記憶装置１１ＳＰ内のデータ群を、Ｐ−記憶装置１０Ｐ内のデータ群と同じにしたくても、Ｐ−記憶装置１０Ｐに書かれるデータが第二のストレージサブシステム６へ転送されないが故に、それができないような状況（以下、同期コピー不能状況）が生じる可能性がある。同期コピー不能状況が生じる原因としては、例えば、パス８に障害が発生した、第一のコピーグループの状態が後述するサスペンド状態にされた等が考えられる。このような状況において、Ｐ−記憶装置１０Ｐのデータが更新されると、Ｐ−記憶装置１０Ｐ内のデータ群と、ＳＰ−記憶装置１１ＳＰ内のデータ群との間に差分が生じる。
【００３１】
第一のストレージサブシステム５は、少なくとも同期コピー不能状況になった場合、換言すれば、上記のような差分が生じる状況になった場合には、その差分の管理を行うことができる。
【００３２】
具体的には、例えば、第一のストレージサブシステム５は、Ｐ−記憶装置１０Ｐの複数の記憶領域にそれぞれ対応した複数のビットを含んだビットマップ（以下、差分ビットマップ）を備え、その差分ビットマップを用いて、データの差分を管理することができる。より具体的には、例えば、第一のストレージサブシステム５は、Ｐ−記憶装置１０Ｐの各場所に新たにデータが書かれた場合に、その各場所に対応するビットを更新することができる（その際、第一のストレージサブシステム５は、例えば、更新済みのビットに対応する場所と同じ場所に更に新たにデータが書かれた場合には、そのビットを更新しない）。この結果、更新されている各ビットに対応した各場所に存在する各データが、Ｐ−記憶装置１０Ｐ内のデータ群とＳＰ−記憶装置１１ＳＰ内のデータ群との差分（以下、差分データ）ということになる。なお、各差分データは、Ｐ−記憶装置１０Ｐとは別の記憶資源（例えば、第一のストレージサブシステム５内のメモリ）に記憶されても良い。この実施形態では、差分ビットマップと各差分データを含んだ情報を、差分情報１３とする。第一のストレージサブシステム５は、差分情報１３では、どのビットにどの差分データが対応しているかを表す情報も含まれていても良い。
【００３３】
ところで、差分ビットマップを用いて複数の差分データを管理する場合、どのような順番で差分データが発生したかが管理されない。換言すれば、差分データの発生した順序は、保証されていない。
【００３４】
複数の差分データが第一のストレージサブシステム５に存在する状態で、同期コピー不能状況が解除になった場合、例えば、Ｐ−記憶装置１０Ｐ内のデータ群とＳＰ−記憶装置１１ＳＰ内のデータ群とを同じにするための再同期（以下、リシンク）操作が第一のコピーグループに対して行われた場合、第一のストレージサブシステム５は、複数の差分データを第二のストレージサブシステム６に転送することができる。このため、複数の差分データをそれぞれ含んだ複数のジャーナルがジャーナル記憶装置１４に記憶される。
【００３５】
しかし、それら複数の差分データは、発生順序が保証されておらず、且つ、第２のストレージサブシステムと第３のストレージサブシステム間は、通信可能に接続されている状態である。このため、順序性が保証されていない複数の差分データをそれぞれ含んだ複数のジャーナルが、第三のストレージサブシステム７へとそれぞれ送信されて、その保証されていない順序（つまり、Ｐ−記憶装置１０Ｐで発生した順序と異なる順序）で、ジャーナルを用いたリストアが行われる。その結果、Ｓ−記憶装置１２Ｓで、データの更新順序が保証されていない状態が発生する。その状態中に、計算機２からＳ−記憶装置１２Ｓがアクセスされてしまう可能性がある。
【００３６】
それを防ぐための方法として、計算機１或いは２のユーザに複数の操作を所定の順序で実行してもらう方法、具体的には、例えば、第二のコピーグループの状態を後述のサスペンド状態にするためのサスペンド操作を実行してから、第一のコピーグループに対してリシンク操作を実行し、更に、所望時点の順序性が保証されたデータをＳ−記憶装置１２Ｓに確定するための操作を行ってもらう方法が考えられる。
【００３７】
しかし、この方法では、誤った操作が行われる可能性があり、故に、Ｓ−記憶装置１２Ｓで、データの更新順序が保証されていない状態のＳ−記憶装置１２に計算機２からアクセスされてしまうことを防ぐことは難しい。
【００３８】
そこで、本実施形態では、以下の工夫により、人間に面倒な操作を行わせることなく上記のことを防ぐことができるようになっている。以下、その工夫について説明する。
【００３９】
第一のストレージサブシステム５は、リストアの実行を制御するためのコマンド（以下、リストア制御コマンド）１６を送信することができるようになっている。具体的には、例えば、第一のストレージサブシステム５は、複数の差分データを第二のストレージサブシステム６に送信する場合に（例えば、第一のコピーグループに対するリシンク命令を受けた場合に）、リストア中断コマンド（リストアの中断を意味するリストア制御コマンド１６）を第二のストレージサブシステム６に送信し、その後に、複数の差分データを送信する。第一のストレージサブシステム５は、複数の差分データの送信を終えた後、リストア再開コマンド（リストアの再開を意味するリストア制御コマンド１６）を第二のストレージサブシステム６に送信することができる。
【００４０】
これにより、第二のストレージサブシステム６は、リストア中断コマンドを受けてから、複数の差分データを受け、更にその後に、リストア再開コマンドを受けることができる。第二のストレージサブシステム６は、複数の差分データをＳＰ−記憶装置１１ＳＰに書き、且つ、複数の差分データをそれぞれ含んだ複数のジャーナル（以下、差分ジャーナル）をジャーナル記憶装置１４に書き込むことができる。第二のストレージサブシステム６は、リストア中断コマンド、複数の差分ジャーナル、リストア再開コマンドの順に、第三のストレージシステム７に送信する。
【００４１】
第三のストレージサブシステム７は、リストア中断コマンドとリストア再開コマンドに基づいて、複数の差分ジャーナルにそれぞれ含まれている複数の差分データをＳ−記憶装置１２Ｓにリストアすることができる。具体的には、例えば、第三のストレージサブシステム７は、リストア中断コマンド、複数の差分ジャーナル及びリストア再開コマンドを第二のジャーナル記憶装置１５に書き、第二のジャーナル記憶装置１５からリストア中断コマンドを参照した場合、リストア再開コマンドを探し、リストア再開コマンドを見つけた場合、リストア中断コマンドとリストア再開コマンドとの間に存在する複数の差分ジャーナルに基づくリストアを、実質的に時間を隔てることなく連続的に（換言すれば一気に）実行することができる。また、第三のストレージサブシステム７は、少なくとも複数の差分ジャーナルに基づくリストアを実行している間は、計算機２からＳ−記憶装置１２Ｓにアクセスされないような排他制御を実行することができる。排他制御は、種々の方法（例えば、外部装置からのアクセスを受けた場合にはそのアクセスを拒否する）で行うことができる。第三のストレージサブシステム７は、複数の差分ジャーナルに基づくリストアを完了した後、排他制御を止めることができる（つまり、計算機２からＳ−記憶装置１２Ｓへのアクセスを許可するようにすることができる）。
【００４２】
この実施形態によれば、複数の差分データが送信される前に、リストア中断コマンドが発行され、複数の差分データが送信され終えた後に、リストア再開コマンドが発行される。その結果、第三のストレージサブシステム７では、例外リストアが実行される前に、リストア中断コマンドが認識されて、計算機２からＳ−記憶装置１２Ｓへのアクセスの排他制御が開始され、例外リストアが完了した後に、リストア再開コマンドが認識されて、上記の排他制御が中止される。これにより、人間に面倒な操作を行わせることなく、データの更新順序が保証されていない状態のＳ−記憶装置１２Ｓに計算機２からアクセスされてしまうことを防ぐことができる。
【００４３】
なお、上記の実施形態では、第一のストレージサブシステム５は、差分情報１３を送信しても良い。その場合、第二のストレージサブシステム６は、差分ビットマップを用いて、複数の差分データをＳＰ−記憶装置１１ＳＰに書くことができる。
【００４４】
以下、本実施形態の具体例について説明する。
【００４５】
図２は、本発明の一実施形態に係る計算機１の構成例を示す。計算機１の構成例は計算機２にも適用することができるため、以下、計算機１を代表的に例に採り説明する。
【００４６】
計算機１は、ＣＰＵ２０２と、タイマ２０３と、メモリ２０４と、外部記憶装置２０５と、Ｉ／Ｏアダプタ２０６と、これらを接続する内部パス２０１とを備える。
【００４７】
ＣＰＵ２０２は、計算機１を制御するプロセッサである。ＣＰＵ２０２は、メモリ２０４に記憶されている各プログラムを読み込んで実行することができる。
【００４８】
タイマ２０３は、計算機１の時刻を管理する装置である。
【００４９】
メモリ２０４には、例えば、コピーグループ操作プログラム２１１と、オペレーティングシステム（ＯＳ）２１２と、アプリケーションプログラム（以下、アプリケーション）２１３とが記憶されている。
【００５０】
コピーグループ操作プログラム２１１は、ＯＳ２１２上で動作するアプリケーションの一種であって、ＯＳ２１２の機能を利用して第一のストレージサブシステム５へＩ／Ｏ要求を発行することができる。ここで発行されるＩ／Ｏ要求としては、例えば、コピーグループを操作するための操作コマンドがある。コピーグループの操作により、コピーグループの状態を変更することができる。コピーグループの状態には、例えば、結合状態、非結合状態、サスペンド状態、遷移中状態がある。
【００５１】
結合状態とは、コピーグループのプライマリの記憶装置と、セカンダリの記憶装置とが二重化形成されている状態のことである。ここで、プライマリの記憶装置とは、コピー元の記憶装置のことである。セカンダリの記憶装置とは、コピー先の記憶装置のことである。コピーグループが結合状態の場合には、プライマリの記憶装置にデータが書き込まれる場合に、それとほぼ同じタイミングで、セカンダリの記憶装置へもそのデータが書かれる。
【００５２】
非結合状態とは、コピーグループのプライマリの記憶装置と、セカンダリの記憶装置とが二重化形成されていない状態のことである。コピーグループが非結合状態の場合には、プライマリの記憶装置にデータが書かれても、セカンダリの記憶装置にはそのデータが書かれない。
【００５３】
サスペンド状態とは、コピーグループのプライマリの記憶装置と、セカンダリの記憶装置との二重化結合を一時的に中断している状態のことである。コピーグループがサスペンド状態の場合、第一のストレージサブシステム５は、プライマリの記憶装置にデータの書き込みが行なわれると、そのデータを差分データとして所定の記憶域（例えばメモリ或いは別の記憶装置）に記録しておくことができる。後に、サスペンド状態のコピーグループに対してリシンク操作が行われた場合、第一のストレージサブシステム５は、差分情報１３（或いはその情報１３中の差分データ）を、リモートコピーにより、セカンダリの記憶装置へ反映させることができる。
【００５４】
ＯＳ２１２は、コピーグループ操作プログラム２１１やアプリケーション２１３等の要求に従って、第一のストレージサブシステム５にＩ／Ｏ要求を発行することができる。
【００５５】
アプリケーション２１３は、ＯＳ２１２上で動作するプログラムである。また、コピーグループ操作プログラム２１１が動作中であっても、別のアプリケーション２１３が動作することもある。
【００５６】
外部記憶装置２０５は、計算機１を動作させるために必要なプログラムを記憶することができる記憶装置（例えばハードディスクドライブ）である。外部記憶装置２０５は、ＯＳ２１２から認識できれば何でもよい。
【００５７】
Ｉ／Ｏアダプタ２０６は、第一のストレージサブシステム５との通信を制御することができる一種のインターフェース装置である。ＯＳ２１３が発行したＩ／Ｏ要求は、内部パス２０１、Ｉ／Ｏアダプタ２０６を経由し、パス３を通じて、第一のストレージサブシステム５へ送られる。
【００５８】
図３は、第一のストレージサブシステム５及び第二のストレージサブシステム６のそれぞれの構成例を示す図である。なお、第一のストレージサブシステム５の構成例は、第二及び第三のストレージサブシステム６及び７に適用することができるので、以下、第一のストレージサブシステム５の構成例を例に採り説明する。
【００５９】
第一のストレージサブシステム５は、記憶制御装置３０１と、複数の記憶装置１０と、これらを接続する内部パス３４０とを備えている。
【００６０】
記憶制御装置３０１は、計算機１や他のストレージサブシステムからのＩ／Ｏ要求に従う制御等を行う部位である。記憶制御装置３０１は、例えば、ホストアダプタ３１２と、リモートＩ／Ｏアダプタ３１３と、リモートＩ／Ｏアダプタ３１４と、ＣＰＵ３１５と、タイマ３１６と、キャッシュメモリ３１７と、制御メモリ３１８と、記憶装置アダプタ３１９と、それらを接続する内部パス３１１とを備えることができる。
【００６１】
ホストアダプタ３１２は、計算機１から第一のストレージサブシステム５へのＩ／Ｏ要求を受け付ける部位である。各ストレージサブシステム５，６，７が受け得るＩ／Ｏ要求としては、例えば、記憶装置にデータを書き込むことの書込み要求、記憶装置からデータを読み出すことの読出し要求、コピーグループを操作することの操作コマンド、又は、リストア制御コマンド１６がある。
【００６２】
リモートＩ／Ｏアダプタ３１３、リモートＩ／Ｏアダプタ３１４は、他のストレージサブシステムとの通信を行なうための装置である。このうち、リモートＩ／Ｏアダプタ３１３をデータの送信用とし、リモートＩ／Ｏアダプタ３１４をデータの受信用とすることができる。送信用リモートＩ／Ｏアダプタ３１３は、パス８を介して他のストレージサブシステムが有する受信用のリモートＩ／Ｏアダプタ３１４へ接続される。第二のストレージサブシステム６の送信用リモートＩ／Ｏアダプタ３１３と第一のストレージサブシステム５の受信用リモートＩ／Ｏアダプタ３１４を接続することにより、逆方向の通信、つまり、第二のストレージサブシステム６から第一のストレージサブシステム５へデータを送信することが可能となる。また、送信用と受信用のリモートＩ／Ｏアダプタは一体となっていても構わない。
【００６３】
ＣＰＵ３１５は、記憶制御装置３０１全体を制御するプロセッサである。
【００６４】
タイマ３１６は、記憶制御装置３０１の時刻を管理する装置である。
【００６５】
キャッシュメモリ３１７は、記憶装置１０に書き込まれる、又は記憶装置１０から読み出されたデータを一時的に記憶することができる記憶領域である。
【００６６】
制御メモリ３１８とは、記憶制御装置３０１が第一のストレージサブシステム５を制御する時に使用する記憶領域のことである。詳細は後述するが、制御メモリ３１８は、例えば、データの読み書きを制御するプログラム、コピーグループの操作を実施するプログラム、リストア制御コマンド１６に従ってリストアを制御するプログラム、及びそれらのプログラムが参照する情報等を記憶することができる。
【００６７】
記憶装置アダプタ３１９は、記憶装置１０との通信を行なうための装置である。記憶装置１０内のデータは、内部パス３４０、記憶装置アダプタ３１９、及び、ホストアダプタ３１２又は送信用リモートＩ／Ｏアダプタ３１３を介して、計算機１又は他のストレージサブシステム（図２では第二のストレージサブシステム６）へ送信される。計算機１や、他のストレージサブシステムから同様の経路を介してデータを受信することができる。
【００６８】
以上が、第一のストレージサブシステム５の構成例についての説明である。なお、第一のストレージサブシステム５には不要であるが、第二のストレージサブシステム６には、ジャーナル記憶装置１４が備えられる（第三のストレージサブシステム７についても同様）。のジャーナル記憶装置１４は、ジャーナル３２０を記憶することができる。
【００６９】
なお、上述した説明において、記憶装置は、物理的な記憶装置であっても良いし、論理的な記憶装置であっても良い。物理的な記憶装置としては、例えば、ディスク型記憶装置（例えばハードディスクドライブ）を採用することができる。論理的な記憶装置としては、例えば、一以上の物理的な記憶装置上に設けられる論理ユニット（論理ボリューム或いは論理デバイスと呼ばれることもある）を採用することができる。
【００７０】
図４は、第一のストレージサブシステム５に備えられている制御メモリ３１８に記憶されている情報の一例を示す図である。第二のストレージサブシステム６や第三のストレージサブシステム７に備えられている制御メモリ３１８にも、図４に示す制御メモリ３１８に記憶される情報と実質的に同じ情報を記憶させることができる。
【００７１】
制御メモリ３１８には、制御プログラム４０１と管理情報４０２が記憶されている。
【００７２】
制御プログラム４０１は、第一のストレージサブシステム５を制御するための各種プログラムである。制御プログラム４０１には、例えば、計算機１からの記憶装置１０に対する書込み要求及び読出し要求を制御する入出力制御プログラム４１１や、コピーグループを制御するコピーグループ制御プログラム４１２が含まれる。
【００７３】
管理情報４０２には、種々のプログラムによって参照される情報が含まれる。管理情報４０２には、例えば、コピーグループ情報４２１と、ジャーナル管理情報４２２と、差分情報１３とが含まれる。ジャーナル管理情報４２２は、第二のストレージサブシステム６及び第三のストレージサブシステム７には存在し、第一のストレージサブシステム５では存在しなくても構わない。差分情報１３は、第一のストレージサブシステム５及び第二のストレージサブシステム６に存在し、第三のストレージシステム７には存在しなくても構わない。
【００７４】
図５は、コピーグループ情報４２１に含まれている情報の一例を示す図である。
【００７５】
コピーグループ情報４２１には、各コピーグループに対応した各エントリが含まれる。各エントリは、例えば、グループ識別番号５０１と、モード５０２と、プライマリの記憶装置の識別番号５０３と、セカンダリの記憶装置の識別番号５０４と、ジャーナル識別番号５０５と、ペア状態５０６とを含んでいる。
【００７６】
グループ識別番号５０１は、コピーグループを一意に識別する番号である。
【００７７】
モード５０２は、コピー方法を示す情報である。このコピー方法を示す情報として、例えば、プライマリの記憶装置とセカンダリの記憶装置は、同期しているのか非同期なのか、ジャーナルを用いたコピーであるのか、同一記憶装置内のコピーであるのか、又は、別の記憶装置からのコピーであるのか等がある。この実施形態の具体例では、Ｐ−記憶装置１０ＰとＳＰ−記憶装置１１ＳＰを含んだコピーグループのモード５０２は、"同期"であり、ＳＰ−記憶装置１１ＳＰとＳ−記憶装置１２Ｓを含んだコピーグループのモード５０２は、"非同期"である。
【００７８】
プライマリの記憶装置の識別番号５０３は、コピーグループのプライマリの記憶装置を一意に識別する情報である。
【００７９】
セカンダリの記憶装置の識別番号５０４は、プライマリの記憶装置の識別番号５０３に対応するセカンダリの記憶装置を一意に識別する情報である。
【００８０】
ジャーナル管理番号５０５は、後述のジャーナル管理情報４２２に関連付けられる情報（例えば、ジャーナル管理情報４２２の識別番号６０１）であり、ジャーナルを用いたコピー（換言すれば、非同期型リモートコピー）の場合に設定される。
【００８１】
プライマリの記憶装置の識別番号５０３と、セカンダリの記憶装置の識別番号５０４には、それぞれ、サブシステム識別番号５１１と装置アドレス５１２とが対応付けられている。サブシステム識別番号５１１は、記憶装置を備えるストレージサブシステムを一意に識別するための番号で、例えば、シリアル番号や製造番号が該当する。装置アドレス５１２は、ストレージサブシステム内で記憶装置を一意に識別するためのアドレス（例えば、Logical Unit Number（ＬＵＮ））が該当する。
【００８２】
ペア状態５０６は、コピーグループの状態を表し、例えば、結合状態と、非結合状態と、サスペンド状態と、遷移中状態とがある。
【００８３】
図６は、ジャーナル管理情報４２２に含まれている情報の一例を示す図である。
【００８４】
ジャーナル管理情報４２２には、複数のエントリが含まれ、各エントリが、識別番号６０１と、コピーグループ識別番号６０２と、装置アドレス６０３と、状態６０４とを含んでいる。
【００８５】
識別番号６０１は、エントリを識別する情報である。コピーグループ識別番号６０２には、グループ識別番号５０１が設定され、それにより、ジャーナル管理情報４２２とコピーグループ情報４２１とが関連付けられる。装置アドレス６０３は、ジャーナル記憶装置１４又は１５のアドレスを示す情報である。状態６０４は、記憶装置１１又は１２に対して、ジャーナルのリストアが行なわれているか中断しているかを示す情報である。
【００８６】
図７は、ジャーナル３２０に含まれている情報の一例を示す図である。
【００８７】
ジャーナル３２０には、ジャーナル識別番号７０１と、フラグ７０２と、時刻７０３と、データ７０４とが記録されている。
【００８８】
ジャーナル識別番号７０１は、ジャーナル３２０を一意に識別する情報である。フラグ７０２は、ジャーナル３２０に含まれているデータ７０４が、記憶装置に書かれたデータなのか（以下、"データ更新"）、リストア制御コマンドなのか（以下、"リストア制御"）を判別するための情報である。時刻７０３は、Ｉ／Ｏ要求が発行された時刻（例えば計算機１或いは第一のストレージサブシステム５から発行された時刻）を示す。データ７０４は、フラグ７０２が示す情報によって情報が異なる。フラグ７０２が"データ更新"である場合、データ７０４には、装置アドレス７１１（例えば、Ｓ−記憶装置１２Ｓの識別番号）と更新データ７１２（例えばＳＰ−記憶装置１１ＳＰに書かれたデータ）が含まれる。フラグ７０２が"リストア制御"である場合、データ７０４には、制御コード７２１が含まれる。この制御コード７２１には、例えば、"中断"を意味するコードと、"再開"を意味するコードとがある。
【００８９】
以下、本実施形態の具体例において行われる種々の処理の流れの一例を説明する。
【００９０】
図８は、計算機１からリシンク操作を受けた場合に第一のストレージサブシステム５が行う処理のフローチャートの一例である。
【００９１】
第一のストレージサブシステム５（特に記憶制御装置３０１）は、コピーグループ情報４２１から、リシンク操作の対象となっているコピーグループのエントリを検索し、そのエントリにおいて、ペア状態５０６が、サスペンド状態であるか否かの判定を行う（ステップ８０１）。ステップ８０１で、肯定的な判定結果が得られた場合は（ステップ８０１でＹＥＳ）、第一のストレージサブシステム５は、上記検索されたエントリのモード５０２を参照し、リシンク操作の対象となっているコピーグループが、ジャーナルを使用したコピー方法を採っているのか否かの判定を行う（ステップ８０２）。
【００９２】
ステップ８０２で、否定的な判定結果が得られた場合には（ステップ８０２でＮＯ）、第一のストレージサブシステム５は、リシンク操作の対象となっているコピーグループのセカンダリの記憶装置が、別のコピーグループではプライマリの記憶装置であり、且つ、その別のコピーグループではジャーナルを使用したコピー方法が採られているか否かの判定を行う（ステップ８０３）。この判定は、例えば、第二のストレージサブシステム６に存在するコピーグループ情報４２１を第二のストレージサブシステム６から参照させてもらうことで、行うことができる。
【００９３】
ステップ８０３で、肯定的な判定結果を得られた場合には（ステップ８０３でＹＥＳ）、第一のストレージサブシステム５は、リストア中断コマンドを第二のストレージサブシステム６へ送信する（ステップ８０４）。次に、第一のストレージサブシステム５は、リシンク操作の対象となっているコピーグループの差分情報１３を、第二のストレージサブシステム６に送信する（ステップ８０５）。そして、差分情報１３の送信を終えた後に、第一のストレージサブシステム５は、リストア再開コマンドを第二のストレージサブシステム６に送信する（ステップ８０６）。
【００９４】
なお、ステップ８０１で、否定的な判定結果が得られた場合は（ステップ８０１でＮＯ）、第一のストレージサブシステム５は、計算機１に、エラーを報告して終了することができる（ステップ８０７）。また、ステップ８０２で、肯定的な判定結果が得られた場合（ステップ８０２でＹＥＳ）、及び、ステップ８０３で、否定的な判定結果が得られた場合（Ｓ８０３でＮＯ）、第一のストレージサブシステム５は、差分情報１３を第二のストレージシステム６に送信して終了することができる（ステップ８０８）。
【００９５】
図９は、第一のストレージサブシステム５から情報を受信した場合に第二のストレージサブシステム６が行う処理のフローチャートの一例を示す。
【００９６】
第二のストレージサブシステム６は、第一のストレージサブシステム５から受信した情報が、リストア制御コマンド１６であるのか、そうでなければ書き込み要求であるのかの判定を行う（ステップ９０１、ステップ９０２）。
【００９７】
受信した情報がリストア制御コマンド１６であるならば、第二のストレージサブシステム６は、ジャーナル３２０のフラグ７０２を"リストア制御"に設定し、制御コード７２１に、そのコマンド１６で指定されているコード（"再開"または"中断"）を設定して、ジャーナル管理情報４２２の状態６０４を更新し、ジャーナル３２０をジャーナル記憶装置１４に追記する（ステップ９０３）。
【００９８】
第一のストレージサブシステム５から受信した情報が書き込み要求ならば、第二のストレージサブシステム６は、ＳＰ−記憶装置１１ＳＰに、その書込み要求内のデータを書く（ステップ９０４）。また、第二のストレージサブシステム６は、ＳＰ−記憶装置１１ＳＰに書いたデータのジャーナル３２０を作成し、ジャーナル記憶装置１４に追記する（ステップ９０５）。
【００９９】
なお、第二のストレージサブシステム６は、第一のストレージサブシステム５から受信した情報がリストア制御コマンド及び書き込み要求でなければ、エラーを第一のストレージサブシステム５に報告することができる（ステップ９０６）。
【０１００】
このように、リストア制御コマンド或いは書込み要求を受ける都度に、第一のジャーナル記憶装置１４には、ジャーナル３２０が増えていく。書込み要求中には、差分データが含まれているものもある。すなわち、第一のストレージサブシステム５から複数の差分データ（差分情報１３に含まれているデータ群）を受信した場合には、各差分データの受信順序に従う各差分ジャーナルが生成されて、第一のジャーナル記憶装置１４に記憶される。第一のジャーナル記憶装置１４内の各ジャーナルは、第三のストレージサブシステム７に転送されて、第二のジャーナル記憶装置１５に記憶される。第三のストレージサブシステム７は、第二のジャーナル記憶装置１５からジャーナルを取得し、そのジャーナル内のデータをＳ−記憶装置１２Ｓにリストアすることができる。
【０１０１】
図１０は、第三のストレージサブシステム７が行うリストアのフローチャートの一例を示す。
【０１０２】
第三のストレージサブシステム７は、第二のジャーナル記憶装置１５に存在するジャーナル群のうち、時刻の最も若いジャーナル３２０を参照する（ステップ１００１）。
【０１０３】
第三のストレージサブシステム７は、ジャーナル３２０におけるフラグ７０２とデータ７０４を参照して、参照したジャーナル３２０がリストア中断コマンドに関するものであると判別された場合（ステップ１００２でＮＯ、ステップ１００３でＹＥＳ）、そのジャーナル３２０の位置（例えば論理ブロックアドレス）を記憶して、リストアの実施を中断する（ステップ１００７）。リストアの実施を中断する場合、第三のストレージサブシステム７は、Ｓ−記憶装置１２Ｓに計算機２からアクセスすることの排他制御を開始する。
【０１０４】
次に、第三のストレージサブシステム７は、次に時刻が若いジャーナル３２０を参照する（ステップ１００６）。第三のストレージサブシステム７は、そのジャーナル３２０が書込み要求に関するものであると判別された場合（ステップ１００２でＮＯ、ステップ１００３でＮＯ、ステップ１００８でＹＥＳ）、リストア実施の中断中であれば（ステップ１００９でＮＯ）、さらに次に時刻が若いジャーナル３２０を参照する（ステップ１００６）。なお、第三のストレージサブシステム７は、リストア実施の中断中でなければ、ジャーナル３２０内のデータをＳ−記憶装置１２Ｓに書く。
【０１０５】
第三のストレージサブシステム７は、参照したジャーナル３２０がリストア再開コマンドに関するものであると判別された場合（ステップ１００２でＹＥＳ）、そのジャーナル３２０とステップ１００７で記憶した位置との間に存在するジャーナル群、つまり差分ジャーナル群内の差分データ群を、連続的に、Ｓ−記憶装置１２Ｓにリストアする（ステップ１００３でＹＥＳ、ステップ１００４）。差分データ群をリストアすることが終わった場合、リストア実施の中断を解除することができる。また、排他制御を止めることができる。なお、ステップ１００７で記憶した位置が見つからない場合には、エラーが報告されても良い。
【０１０６】
第三のストレージサブシステム７は、未参照のジャーナルが存在すれば（ステップ１００５でＮＯ）、ステップ１００６を行い、未参照のジャーナルが存在しなければ、終了することができる。
【０１０７】
上述した実施形態によれば、第一のストレージサブシステム５が、差分データ群の送信の前後にリストア中断コマンド及びリストア再開コマンドを送信し、それらのコマンドに基づいて、リストアが制御される。これにより、人間による面倒な操作を必要とすることなく、Ｐ−記憶装置１０Ｐでのデータの更新順序通りにＳ−記憶装置１２Ｓのデータが更新されている可能性を高めることができる。
【０１０８】
また、上述した実施形態では、複数のジャーナル内のデータは、連続的にリストアされなくても良いが、複数の差分ジャーナルにそれぞれ対応した複数の差分データは、連続的にリストアされる。これにより、Ｓ−記憶装置１２Ｓで順序性が保証されていない時間長を短く抑えることが期待できる。
【０１０９】
また、上述した実施形態では、複数の差分データがリストアされている間、Ｓ−記憶装置１２Ｓにアクセスされないよう排他制御が行われる。Ｓ−記憶装置１２Ｓで順序性が保証されていない間にＳ−記憶装置１２Ｓにアクセスされてしまうことを防ぐことができる。
【０１１０】
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【０１１１】
【図１】図１は、本発明の一実施形態に係るストレージシステムの概要を示す図である。
【図２】図２は、本発明の一実施形態に係る計算機１の構成例を示す。
【図３】図３は、第一のストレージサブシステム５及び第二のストレージサブシステム６のそれぞれの構成例を示す図である。
【図４】図４は、第一のストレージサブシステム５に備えられている制御メモリ３１８に記憶されている情報の一例を示す図である。
【図５】図５は、コピーグループ情報４２１に含まれている情報の一例を示す図である。
【図６】図６は、ジャーナル管理情報４２２に含まれている情報の一例を示す図である。
【図７】図７は、ジャーナル３２０に含まれている情報の一例を示す図である。
【図８】図８は、計算機１からリシンク操作を受けた場合に第一のストレージサブシステム５が行う処理のフローチャートの一例である。
【図９】図９は、第一のストレージサブシステム５から情報を受信した場合に第二のストレージサブシステム６が行う処理のフローチャートの一例を示す。
【図１０】図１０は、第三のストレージサブシステム７が行うリストアのフローチャートの一例を示す。
【符号の説明】
【０１１２】
１，２…計算機、３，４…パス、５，６，７…ストレージサブシステム、８，９…パス、１０，１１，１２…記憶装置、１０Ｐ…Ｐ−記憶装置、１１ＳＰ…ＳＰ記憶装置、１２Ｓ…Ｓ−記憶装置、１３…差分情報、１４，１５…ジャーナル記憶装置、１６…リストア制御コマンド、２０１…内部パス、２０２…ＣＰＵ、２０３…タイマ、２０４…メモリ、２０５…外部記憶装置、２０６…Ｉ／Ｏアダプタ、２１１…コピー操作プログラム、２１２…ＯＳ、２１３…アプリケーション、３０１…記憶制御装置、３１１，３１１Ａ，３１１Ｂ…内部パス、３１２…ホストアダプタ、３１３，３１４…リモートＩ／Ｏアダプタ、３１５…ＣＰＵ、３１６…タイマ、３１７…キャッシュメモリ、３１８…制御メモリ、３１９…記憶装置アダプタ、３２０…ジャーナル、４０１…制御プログラム、４０２…管理情報、４１１…入出力制御プログラム、４１２…コピーグループ制御プログラム、４２１…コピーグループ情報、４２２…ジャーナル管理情報、５０１…グループ識別番号、５０２…モード、５０３…プライマリの記憶装置の識別番号、５０４…セカンダリの記憶装置の識別番号、５０５…ジャーナル識別番号、５０６…ペア状態、５１１…記憶装置識別番号、５１２…装置アドレス、６０１…識別番号、６０２…コピーグループ識別番号、６０３…装置アドレス、６０４…状態、７０１…ジャーナル識別番号、７０２…フラグ、７０３…時刻、７０４…データ、７１１…装置アドレス、７１２…更新データ、７２１…制御コード
【図１】
0004756992.tif 000002
【図２】
0004756992.tif 000003
【図３】
0004756992.tif 000004
【図４】
0004756992.tif 000005
【図５】
0004756992.tif 000006
【図６】
0004756992.tif 000007
【図７】
0004756992.tif 000008
【図８】
0004756992.tif 000009
【図９】
0004756992.tif 000010
【図１０】
0004756992.tif 000011