(57)【特許請求の範囲】
【請求項１】
第１の記憶領域を有する第１の記憶サブシステムと、前記第１の記憶領域に格納されるデータの複製データを格納するための第２の記憶領域をそれぞれ有する複数の第２の記憶サブシステムと、を備える記憶システムであって、
前記第１の記憶サブシステムは、
第１の記憶領域にライトデータを書き込むライト処理を実行するライト部と、
前記ライト処理に対応し、前記ライトデータを前記第２の記憶領域にコピーするためのコピー情報を、前記第２の記憶サブシステムに送信するコピー情報送信部と、
前記ライト処理ごとに、前記ライト処理に対応するコピー情報が属する時間的な区分であるライト区分を決定する区分決定部と、
前記コピー情報が属するライト区分を示す区分情報を、前記第２の記憶サブシステムに送信する区分情報送信部と、
を備え、
前記第２の記憶サブシステムは、それぞれに、
前記コピー情報を用いて、前記ライト処理に対応するコピー処理を実行するコピー実行部と、
前記区分情報を用いて、実行された各コピー処理の履歴情報を、前記コピー処理に用いられた前記コピー情報が属するライト区分ごとに作成する履歴作成部と、
を備え、
前記ライト区分ごとに作成される前記履歴情報は、そのライト区分が確定されているか、未確定であるかを示すステータス情報を含み、
複数の前記第２の記憶サブシステムのうち少なくとも一部は、
一の前記第２の記憶サブシステムが有する前記履歴情報と他の前記第２の記憶サブシステムが有する前記履歴情報うち、少なくとも一部を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとの差分を示す差分情報を作成する差分情報作成部と、
作成の対象である前記ライト区分に属する全てのコピー情報に対応するコピー処理の履歴が記録された場合に、前記ライト区分が確定されていることを示すように前記ステータス情報を設定する確定手段とを備え、
前記差分情報作成部は、
一の前記第２の記憶サブシステムと他の前記第２の記憶サブシステムからそれぞれ取得した前記ステータス情報に基づいて、前記差分情報の作成の可否を判断する判断部を備えると共に、
前記差分情報の作成が可能と判断された場合に、前記差分情報の作成を実行する記憶システム。
【請求項２】
請求項１に記載の記憶システムにおいて、
前記区分情報は、連続する２つの前記ライト区分である第１のライト区分と第２のライト区分との境界を示す境界情報を含み、
前記コピー情報送信部は、前記ライト処理が実行される順番に、対応する前記コピー情報を送信し、
前記区分情報送信部は、前記第１のライト区分に属する最後のコピー情報の送信と、前記第２のライト区分に属する最初のコピー情報の送信との間のタイミングで、前記境界情報を送信する記憶システム。
【請求項３】
請求項２に記載の記憶システムにおいて、
前記コピー情報と前記境界情報には、送信される順番に、共通の通し番号が付される記憶システム。
【請求項４】
請求項１に記載の記憶システムにおいて、
前記区分情報は、前記ライト区分を識別するための区分識別子を含み、
前記区分情報送信部は、前記コピー情報が属するライト区分の前記区分識別子を、各コピー情報に含めて送信する記憶システム。
【請求項５】
請求項１に記載の記憶システムにおいて、
前記第２の記憶サブシステムは、それぞれに、
前記ステータス情報が未確定の前記履歴情報と共に、直近に前記確定手段によって前記ステータス情報が確定に設定された所定の数のライト区分の前記履歴情報を保持する記憶システム。
【請求項６】
請求項１に記載の記憶システムにおいて、
前記ライト区分ごとに作成される前記履歴情報は、前記第２の記憶領域において、前記コピー処理によるデータ変更がなされた位置を特定するための位置情報である記憶システム。
【請求項７】
請求項６に記載の記憶システムにおいて、
前記位置情報は、前記第２の記憶領域を分割した複数のサブ記憶領域ごとに、前記コピー処理によるデータ変更の有無が記録されたマップである記憶システム。
【請求項８】
請求項１に記載の記憶システムにおいて、
前記ライト区分の時間的な長さは、各第２の記憶サブシステムにおける前記コピー処理の進捗度と、各第２の記憶サブシステムに前記履歴情報が保持される前記ライト区分の数とを考慮して設定される記憶システム。
【請求項９】
請求項１に記載の記憶システムにおいて、
前記ライト区分ごとに作成される前記履歴情報は、前記第２の記憶領域を分割した複数のサブ記憶領域ごとに、前記コピー処理によりデータの変更がなされたか否かを記録したマップを含む、記憶システム。
【請求項１０】
請求項１に記載の記憶システムにおいて、
前記第２の記憶サブシステムは、それぞれに、
前記確定がされていない前記履歴情報と共に、直近に前記確定がなされた所定の数のライト区分の前記履歴情報を保持し、
前記判断部は、
一の前記第２の記憶サブシステムと他の前記第２の記憶サブシステムのうち、前記コピー処理の進捗が遅い記憶サブシステムにおいて、最後に確定がなされた前記履歴情報に対応する前記ライト区分を第１のライト区分と呼ぶとき、
一の前記第２の記憶サブシステムと他の前記第２の記憶サブシステムのうち、前記コピー処理の進捗が早い記憶サブシステムが、前記第１のライト区分の直後の前記ライト区分である第２のライト区分の前記履歴情報を保持している場合に、前記差分情報の作成が可能であると判断する記憶システム。
【請求項１１】
請求項１０に記載の記憶システムにおいて、
前記差分情報作成部は、一の前記第２の記憶サブシステムと他の前記第２の記憶サブシステムが有する前記履歴情報のうち、前記第２のライト区分以降のライト区分の前記履歴情報を用いて、前記差分情報を作成する記憶システム。
【請求項１２】
請求項１ないし１１の何れか一つに記載の記憶システムにおいて、
前記差分情報を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとを一致させる同期部を備える記憶システム。
【請求項１３】
請求項１２に記載の記憶システムにおいて、
前記差分情報作成部と前記同期部は、前記第１の記憶領域に障害が発生した場合に動作する記憶システム。
【請求項１４】
第１の記憶領域を有する第１の記憶サブシステムと、前記第１の記憶領域に格納されるデータの複製データを格納するための第２の記憶領域を有する複数の第２の記憶サブシステムと、を備える記憶システムの制御方法であって、
第１の記憶領域にライトデータを書き込むライト処理を実行する第１のステップと、
前記ライト処理に対応し、前記ライトデータを各第２の記憶サブシステムの前記第２の記憶領域にコピーするコピー処理を実行する第２のステップと、
前記ライト処理ごとに、前記ライト処理に対応するコピー情報が属する時間的な区分であるライト区分を決定する第３のステップと、
各第２の記憶サブシステムにおいて、実行された各コピー処理の履歴を、前記コピー処理に用いられた前記コピー情報が属するライト区分ごとに作成する第４のステップと、
一の前記第２の記憶サブシステムが有する前記履歴情報と他の前記第２の記憶サブシステムが有する前記履歴情報うち、少なくとも一部を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとの差分を示す差分情報を作成する第５のステップと、
前記差分情報を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとを一致させる第６のステップと、
を備え、
前記ライト区分ごとに作成される前記履歴情報は、そのライト区分が確定されているか、未確定であるかを示すステータス情報を含み、
前記第４のステップは、作成の対象である前記ライト区分に属する全てのコピー情報に対応するコピー処理の履歴が前記履歴情報に記録された場合に、前記ライト区分が確定されていることを示すように前記ステータス情報を設定し、
前記第５のステップは、
前記ステータス情報を、一の前記第２の記憶サブシステムと他の前記第２の記憶サブシステムからそれぞれ取得するステップと、
前記ステータス情報に基づいて、前記差分情報の作成の可否を判断するステップと、
を含み、
前記差分情報の作成が可能と判断された場合に、前記差分情報が作成される制御方法。
【請求項１５】
請求項１４に記載の制御方法において、
前記第４のステップにおいて前記ライト区分ごとに作成される前記履歴情報は、前記第２の記憶領域を分割した複数のサブ記憶領域ごとに、前記コピー処理によりデータの変更がなされたか否かを記録したマップである制御方法。
【請求項１６】
請求項１４に記載の制御方法において、
前記第５のステップおよび前記第６のステップは、前記第１の記憶領域に障害が発生した場合に実行される制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システムの制御に関し、特に、複数の記憶サブシステムを備える記憶システムにおけるリモートコピー処理の制御に関する。
【背景技術】
【０００２】
記憶システムにおいて、データの信頼性を高めるためのリモートコピーが一般的に用いられている。リモートコピーとは、記憶システム内に正記憶サブシステムと副記憶サブシステムを設置し、正記憶サブシステムの記憶領域に書き込まれたデータを、副記憶サブシステムの記憶領域にコピーすることである。
【０００３】
さらに、記憶システムのデータの信頼性を高めるために、１つの正記憶サブシステムに格納されるデータを、２つ以上の副記憶サブシステムにリモートコピーすることも行われている（以下、マルチターゲット構成のリモートコピーともいう。）。このような記憶システムにおいて、例えば、正記憶サブシステムに何等かの不具合があった場合に、２つの副記憶サブシステムに格納されたコピーデータ間において、データの同一性を確保する必要が生じ得る。
【０００４】
例えば、正記憶サブシステムと、正記憶サブシステムにおけるデータの書き込みと同期してコピーデータの書き込みが行われる一の副記憶サブシステムと、正記憶サブシステムにおけるデータの書き込みとは非同期に、コピーデータの書き込みが行われる他の副記憶サブシステムとを備える記憶システムにおいて、上述した２つの副記憶サブシステム間におけるデータの同一性の確保を、両サブシステム間の差分データのコピーのみで行う技術が知られている（非特許文献１）。
【０００５】
【非特許文献１】EMC Corporation.、"Using Asynchronous Replication for Business Continuity between Two or More Sites"、［on line］、２００４年１２月、EMC Corporation.、［２００５年８月１０日検索］、インターネット＜URL：http://france.emc.com/products/software/srdf_a/pdf/C1058_srdf_asynchronous_mode_wp_ldv.pdf＞
【特許文献１】特開２００５−７８４５３号公報
【０００６】
上記従来技術によれば、例えば、正記憶サブシステムに障害が発生した場合に、２つの副記憶サブシステムで迅速にコピーペアを形成することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術は、記憶システムのシステム構成やリモートコピーの種類に対して、柔軟に対応できないおそれがあった。例えば、上記従来技術では、一の副記憶サブシステムは、予め定められた他の副記憶サブシステムとの間でしか、差分データのコピーによる同一性の確保を行えないという問題があった。したがって、上記従来技術は、限られた組み合わせのコピーペアしか、迅速に形成することはできないおそれがあった。
【０００８】
本発明は、上記課題を解決するためになされたものであり、２以上の副記憶サブシステムに対してリモートコピーを実行する記憶システムにおいて、２つの副記憶サブシステム間におけるデータの同一性の確保を、迅速かつ柔軟に実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題の少なくとも一部を解決するため、本発明の第１の態様は、第１の記憶領域を有する第１の記憶サブシステムと、前記第１の記憶領域に格納されるデータの複製データを格納するための第２の記憶領域をそれぞれ有する複数の第２の記憶サブシステムと、を備える記憶システムを提供する。本発明の第１の態様に係る記憶システムにおける前記第１の記憶サブシステムは、ライト部と、コピー情報送信部と、区分決定部と、区分情報送信部を含む。前記ライト部は、第１の記憶領域にライトデータを書き込むライト処理を実行する。前記コピー情報送信部は、前記ライト処理に対応し、前記ライトデータを前記第２の記憶領域にコピーするためのコピー情報を、前記第２の記憶サブシステムに送信する。前記区分決定部は、前記ライト処理ごとに、前記ライト処理に対応するコピー情報が属する時間的な区分であるライト区分を決定する。前記区分情報送信部は、前記コピー情報が属するライト区分を示す区分情報を、前記第２の記憶サブシステムに送信する。
本発明の第１の態様に係る記憶システムにおける前記第２の記憶サブシステムは、それぞれに、コピー実行部と、履歴作成部を備える。前記コピー実行部は、前記コピー情報を用いて、前記ライト処理に対応するコピー処理を実行する。前記履歴作成部は、前記区分情報を用いて、実行された各コピー処理の履歴情報を、前記コピー処理に用いられた前記コピー情報が属するライト区分ごとに作成する。
【００１０】
本発明の第１の態様に係る記憶システムによれば、第１の記憶サブシステムが、ライト処理が属するライト区分を決定し、複数の第２の記憶サブシステムが、それぞれに、コピー処理の履歴情報を、コピー処理と対応するライト処理が属するライト区分ごとに作成する。したがって、上記履歴情報を用いれば、複数の第２の記憶サブシステムがそれぞれ備える第２の記憶領域のうち、任意の２つの記憶領域間に生じているデータの差分を求めることができる。この結果、差分データのコピーのみを用いて、迅速に、上記任意の２つの記憶領域の同一性を確保できる。
【００１１】
本発明の第２の態様に係る記憶システムは、さらに、複数の前記第２の記憶サブシステムのうち少なくとも一部が、差分情報作成部と、同期部を備える。前記差分情報作成部は、一の前記第２の記憶サブシステムが有する前記履歴情報と他の前記第２の記憶サブシステムが有する前記履歴情報うち、少なくとも一部を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとの差分を示す差分情報を作成する。前記同期部は、前記差分情報を用いて、一の前記第２の記憶サブシステムが有する前記第２の記憶領域に記録されているデータと、他の前記第２の記憶サブシステムが有する前記第２の記憶領域に格納されているデータとを一致させる。
【００１２】
本発明の第２の態様に係る記憶システムによれば、一の第２の記憶サブシステムが有する第２の記憶領域に記録されているデータと、他の第２の記憶サブシステムが有する第２の記憶領域に格納されているデータとを、差分データを用いて迅速に一致させることができる。
【００１３】
なお、本発明は、種々の態様で実現することが可能であり、例えば、上記態様に係る記憶システムとホスト計算機とを備える計算機システムとして実現可能であり、記憶システムの制御方法として実現可能である。さらに、本発明は、上記方法を実現するためのコンピュータプログラム、例えば、記憶システムを構成する各記憶サブシステムの制御プログラム、として実現可能であり、また、これらのコンピュータプログラムを記録した記録媒体、これらのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照しつつ、実施例に基づいて説明する。
【００１５】
Ａ．実施例：
・計算機システムの構成：
図１〜図２を参照して、実施例に係る記憶システムの概略構成について説明する。図１は、本実施例に係る記憶システムを含む計算機システムの一構成例を模式的に示す説明図である。図２は、記憶サブシステムの構成を模式的に示す説明図である。
【００１６】
図１に示す計算機システム２０００は、記憶システム１０００を備えている。記憶システム１０００は、正記憶サブシステム１００ａと、２つの副記憶サブシステム１００ｂ、１００ｃを備えている。正記憶サブシステム１００ａは、２つの副記憶サブシステム１００ｂ、１００ｃと、通信線ＣＶを介してそれぞれ通信可能に接続されている。２つの副記憶サブシステム１００ｂ、１００ｃは、互いに通信線ＣＶを介して接続可能となっている。２つの副記憶サブシステム１００ｂ、１００ｃは、後述する正常時においては、接続されていても接続されていなくても良いが、後述する障害時には、互いに通信可能に接続される必要がある。各記憶サブシステム１００ａ〜１００ｃは、それぞれ、異なるサイトに設置されている。以下、正記憶サブシステム１００ａが、設置されているサイトをメインサイト、２つの副記憶サブシステム１００ｂ、１００ｃが設置されているサイトを、それぞれ、リモートサイト１、リモートサイト２と呼ぶ。
【００１７】
正記憶サブシステム１００ａは、メインサイトにおいて、正ホスト計算機２００ａと通信線ＣＶを介して接続されている。２つの副記憶サブシステム１００ｂ、１００ｃは、各リモートサイトにおいて、それぞれ、副ホスト計算機２００ｂ、２００ｃと通信線ＣＶを介して接続されている。通信線ＣＶは、例えば、ファイバチャネルプロトコルを用いてデータ通信を行うネットワーク（ＦＣ−ＳＡＮ）や、ｉＳＣＳＩプロトコルを用いてデータ通信を行うＩＰネットワーク（ＩＰ−ＳＡＮ）が用いられ得る。
【００１８】
次に各記憶サブシステム１００ａ〜１００ｃのハードウエア構成について説明する。各記憶サブシステム１００ａ〜１００ｃのハードウエア構成は、基本的に同一である。以下の説明において、各記憶サブシステム１００ａ〜１００ｃを区別する必要がない場合には、符号の末尾のアルファベットを省略するものとする。
【００１９】
記憶サブシステム１００は、図２に示すように、制御部１１０と、記憶部１２０とを備えている。制御部１１０は、記憶サブシステム１００全体を制御する。例えば、制御部１１０は、主に、外部機器からデータを受信して、記憶部１２０に書き込んだり、記憶部１２０からデータを読み出して、外部機器に送信したりする。制御部１１０は、入出力アダプタ１１１〜１１３と、メモリ１１４と、中央演算装置（ＣＰＵ）１１５、１１６と、ディスクアダプタ１１７〜１１９を備えている。これらの構成要素の数は、図２に示す数に限られるものではなく、例えば、メモリ１１４を複数個備えても良いし、ＣＰＵをさらに多数備えても良い。さらに、記憶サブシステム１００の信頼性を向上させるために、メモリ１１４を二重化しても良い。
【００２０】
入出力アダプタ１１１〜１１３は、外部機器とのデータやコマンドの入出力を実行するためのインターフェースである。メモリ１１４は、後述するように、制御部１１０の機能を実現するための制御プログラム等を格納している。ＣＰＵ１１５、１１６は、上述した制御プログラムを実行することにより、制御部１１０の機能を実現するプロセッサである。ディスクアダプタ１１７〜１１９は、記憶部１２０とのデータの入出力を実行するためのインターフェースである。
【００２１】
記憶部１２０は、多数のディスク装置から構成されている。図２には、多数のディスク装置のうち、４つのディスク装置１２１〜１２４を図示している。これらのディスク装置は、データが実際に格納される物理的な記憶領域を提供する。これらのディスク装置は、制御部１１０の制御に従って、物理的な記憶領域に対するデータの読み出し／書き込みを実行する。制御部１１０は、これらの物理的な記憶領域を論理的な記憶領域である論理ボリュームに対応付けて管理している。図２に示す例では、ディスク装置１２１〜１２４の物理的な記憶領域を、複数の論理ボリュームＶ１〜Ｖ３に対応付けている。論理ボリュームと、物理的な記憶領域との対応付けは、例えば、いわゆるＲＡＩＤ（Redundant Array of Inexpensive Disks）と呼ばれる方式（ＲＡＩＤ０、ＲＡＩＤ５等、複数の種別がある）に従って、行われる。
【００２２】
記憶サブシステム１００にアクセスする外部機器（例えば、上述した正ホスト計算機２００ａ）には、論理ボリュームが記憶領域として提供される。各論理ボリュームは、それぞれ独立した記憶領域として扱われ、固有の論理ボリューム識別子によって、識別される。
【００２３】
図１には、これらの論理ボリュームのうち、正記憶サブシステム１００ａの論理ボリュームＶａと、副記憶サブシステム１００ｂの論理ボリュームＶｂと、副記憶サブシステム１００ｃの論理ボリュームＶｃが図示されている。論理ボリュームＶａ、Ｖｂ、Ｖｃの識別子は、それぞれ「００００」、「ＦＦＡ０」、「０００１」とする。論理ボリュームＶａは、正ホスト計算機２００ａに提供されている記憶領域である。論理ボリュームＶｂおよびＶｃは、論理ボリュームＶａに格納されるデータの複製データを格納するための記憶領域である。正ボリュームと、正ボリュームに格納されたデータの複製データを格納するための副ボリュームとの組み合わせをコピーペアと呼ぶ。また、正ボリュームと副ボリュームとが異なる記憶サブシステム１００に存在するコピーペアを、リモートコピーペアと呼ぶ。つまり、論理ボリュームＶａと論理ボリュームＶｂは、論理ボリュームＶａを正ボリュームとし、論理ボリュームＶｂを副ボリュームとするリモートコピーペアを構成している。同様に、論理ボリュームＶａと論理ボリュームＶｃは、論理ボリュームＶａを正ボリュームとし、論理ボリュームＶｃを副ボリュームとするリモートコピーペアを構成している。以下、前者を第１のリモートコピーペアとも呼び、後者を第２のリモートコピーペアとも呼ぶ。
【００２４】
次に、図３〜図９を参照して、記憶サブシステム１００ａ〜１００ｃのメモリの内部構成について説明する。ここで、各記憶サブシステム１００ａ〜１００ｃが有する構成要素を区別する場合には、図２を参照して説明した対応する構成要素の符号の末尾に、アルファベットを付すこととする。例えば、正記憶サブシステム１００ａのメモリは、メモリ１１４ａと表現し、副記憶サブシステム１００ｂのメモリは、メモリ１１４ｂと表現する。
【００２５】
図３は、正記憶サブシステム１００ａのメモリ１１４ａの内部構成を示す概念図である。図４は、副記憶サブシステム１００ｂ、１００ｃのメモリ１１４ｂ、１１４ｃの内部構成を示す概念図である。図５は、ペア情報の内容を示す概念図である。図６は、カウント情報の内容を示す概念図である。図７は、更新ビットマップの内容を示す概念図である。図８は、ビットマップ管理情報の内容を示す概念図である。図９は、コピー情報管理テーブルの内容を示す概念図である。
【００２６】
正記憶サブシステム１００ａのメモリ１１４ａには、ペア情報２１０と、カウント情報２２０と、制御プログラム２３０が格納されている。さらに、メモリ１１４ａには、各種データ（例えば、外部機器から受信したデータ、記憶部１２０から読み出したデータ）を一時的に格納するキャッシュ領域２４０が確保されている。
【００２７】
ペア情報２１０は、上述したコピーペアを定義している情報である。ペア情報２１０は、コピーペアを構成する正ボリュームおよび副ボリュームを特定するための情報を含んでいる。正ボリュームおよび副ボリュームは、存在する記憶サブシステム１００の識別子と、記憶サブシステム１００内におけるボリューム識別子とによって特定される。例えば、正記憶サブシステム１００ａに格納されるペア情報２１０は、正ボリュームと副ボリュームのうち少なくとも一方が、正記憶サブシステム１００ａに存在するコピーペアについてのペア情報である。図５（ａ）に示す例では、ペア情報２１０の番号１の行は、上述した第１のリモートコピーペアについて定義している。ペア情報２１０の番号１の行には、正ボリュームとしての論理ボリュームＶａ（図１）を特定するため、正記憶サブシステム１００ａの識別子「＃１００」と、論理ボリュームＶａの識別子「００００」が記録されている。また、ペア情報２１０の番号１には、副ボリュームとしての論理ボリュームＶｂ（図１）を特定するため副記憶サブシステム１００ｂの識別子「＃１１０」と、論理ボリュームＶｂの識別子「ＦＦＡ０」が記録されている。同様にして、ペア情報２１０の番号２の行は、上述した第２のリモートコピーペアについて定義している。
【００２８】
さらに、ペア情報２１０は、各コピーペアのコピータイプ情報を含んでいる。コピータイプ情報は、例えば、同期コピーか非同期コピーかの別を表す情報である。簡単に説明すると、同期コピーは、外部機器から正ボリュームに対するライト要求を受信すると、副ボリュームを有する記憶サブシステム１００にコピー情報を送信し、記憶サブシステム１００からコピー情報の受信完了を示す応答があった後に、ライト要求の処理完了を外部機器に通知する。これに対し、非同期コピーは、外部機器から正ボリュームに対するライト要求を受信すると、コピー情報を送信する前に、ライト要求の処理完了を外部機器に通知する。非同期コピーにおいて、副ボリュームを有する記憶サブシステム１００へのコピー情報の送信は、バックグラウンドで行われる。
【００２９】
カウント情報２２０は、図６に示すように、ライト番号およびライト区分番号のカウント値を記録している。ライト番号は、リモートコピーペアの正ボリュームごとに記録される。ここで、ライト番号は、あくまで、リモートコピーペアの正ボリュームごとに取得され、リモートコピーペアごとではない。図１に示すように、リモートコピーペアの正ボリュームが論理ボリュームＶａ１つであれば、１つのライト番号が記録される。すなわち、正ボリュームが共通する複数のリモートコピーペア（例えば、図１における第１のリモートコピーペアと第２のリモートコピーペア）では、共通のライト番号が用いられる。一方、ライト区分番号は、１つの値を記録している。ライト番号およびライト区分番号については、後述する。
【００３０】
制御プログラム２３０は、正記憶サブシステム１００ａの制御部１１０ａの機能を実現するための様々なモジュールを含んでいるが、図３には、実施例の説明に必要なモジュールについてのみ図示している。制御プログラム２３０は、リード／ライトモジュール２３１と、正側リモートコピーモジュール２３２と、ライト区分管理モジュール２３３とを含んでいる。リード／ライトモジュール２３１は、外部機器（例えば、正ホスト計算機２００ａ）から送信されてくるライト要求およびリード要求を受信する。また、リード／ライトモジュール２３１は、ライト要求に対応するライトデータを、正記憶サブシステム１００ａ内の論理ボリュームに書き込むライト処理を実行する。さらに、リード／ライトモジュール２３１は、リード要求に対応するデータを、正記憶サブシステム１００ａ内の論理ボリュームから読み出し、外部機器に送信するリード処理を実行する。正側リモートコピーモジュール２３２は、正記憶サブシステム１００ａ内にあるリモートコピーペアの正ボリュームに対するライト処理に対応するコピー情報を、リモートコピー先、すなわち、リモートコピーペアの副ボリュームを有する記憶サブシステム１００（例えば、副記憶サブシステム１００ｂ）に送信する。コピー情報は、対応するライト処理におけるライトデータを副ボリュームにコピーするための情報である。ライト区分管理モジュール２３３は、ライト区分に関連する処理を実行する。ライト区分は、上述したライト処理に対応するコピー情報が属する時間的な区分である。ライト区分管理モジュール２３３は、サブモジュールとして、区分決定モジュール２３４と、区分情報送信モジュール２３５を含む。区分決定モジュール２３４は、ライト処理ごとに、ライト処理に対応するコピー情報が属するライト区分を決定する。ライト区分は、ライト処理ごとに定められるので、同一のライト処理に対応するコピー情報（例えば、複数の異なる副ボリュームに送信される各コピー情報）は、同一のライト区分に属する。各ライト区分は、ライト区分番号によって識別される。区分情報送信モジュール２３５は、区分情報を、リモートコピー先の記憶サブシステム１００に通知する。区分情報は、上述したコピー情報が属するライト区分を、リモートコピー先の記憶サブシステム１００において特定するための情報である。本実施例では、区分情報として、ＢＭマーカと呼ばれるデータと、各コピー情報に含められるライト区分番号とが用いられるが、これについての詳細は後述する。
【００３１】
副記憶サブシステム１００ｂ、１００ｃのメモリ１１４ｂ、１１４ｃには、それぞれ、ペア情報３１０と、ビットマップ管理情報３２０と、コピー情報管理テーブル３３０と、更新ビットマップ３４１〜３４３と、制御プログラム３５０が格納されている。さらに、メモリ１１４ｂ、１１４ｃには、上述したメモリ１１４ａと同様に、各種データ（例えば、外部機器から受信したデータ、記憶部１２０から読み出したデータ）を一時的に格納するキャッシュ領域３６０が確保されている。なお、以下の説明において、副記憶サブシステム１００ｂのメモリ１１４ｂに格納されている要素と、副記憶サブシステム１００ｃのメモリ１１４ｃに格納されている要素を区別する必要がある場合には、符号の末尾に、アルファベット「ｂ」「ｃ」を付すことによって区別する。例えば、副記憶サブシステム１００ｂの更新ビットマップは、符号「３４１ｂ〜３４３ｂ」を用いて表し、副記憶サブシステム１００ｃの更新ビットマップは、符号「３４１ｃ〜３４３ｃ」を用いて表す。
【００３２】
ペア情報３１０は、上述したペア情報２１０と同様に、コピーペアを定義している情報である。例えば、副記憶サブシステム１００ｂに格納されるペア情報３１０ｂは、正ボリュームと副ボリュームのうち少なくとも一方が、副記憶サブシステム１００ｂに存在するコピーペアについてのペア情報である。図５（ｂ）に示す例では、ペア情報３１０ｂの番号１の行は、副記憶サブシステム１００ｂの論理ボリュームＶｂを副ボリュームとする上述した第１のリモートコピーペアについて定義している。同様に、副記憶サブシステム１００ｃに格納されるペア情報３１０ｃは、正ボリュームと副ボリュームのうち少なくとも一方が、副記憶サブシステム１００ｃに存在するコピーペアについてのペア情報である。図５（ｃ）に示す例では、ペア情報３１０ｃの番号１の行は、副記憶サブシステム１００ｃの論理ボリュームＶｃを副ボリュームとする上述した第２のリモートコピーペアについて定義している。
【００３３】
更新ビットマップ３４１〜３４２は、リモートコピーペアの副ボリュームにおいて、リモートコピーによるデータの変更履歴を記録するためのマップである。更新ビットマップ３４１〜３４２は、副ボリュームごとに用意される。具体的には、更新ビットマップ３４１〜３４２は、副ボリュームを複数のサブ記憶領域に分割して、サブ記憶領域ごとに、リモートコピーによるデータ変更の有無を記録している。本実施例では、各論理ボリュームは、トラックと呼ばれる論理的なサブ記憶領域を用いて管理されている。図７には、論理ボリュームＶｂ、Ｖｃと、論理ボリュームＶｂ、Ｖｃ内部の複数のトラックＴＲとが概念的に示されている。論理ボリュームＶｂ、Ｖｃ内に図示された複数のブロックの１つ１つが、１つのトラックＴＲを表している。なお、図７の左側において、ハッチングされたトラックＴＲは、リモートコピーによるデータの変更がされたトラックを表している。本実施例において、更新ビットマップ３４１〜３４２は、図７の右側に示すように、記録対象の副ボリュームが有するトラックＴＲごとに用意された１ビットのデータＢＤの集合である。１つのトラックＴＲと、１つのデータＢＤは、１対１に対応している。そして、各データＢＤの初期値を「０」とし（図示省略）、図７右側に示すように、データの変更がされたトラックに対応するデータＢＤを「１」と変更する。１つの更新ビットマップには、１つの対象ライト区分が定められている。１つの更新ビットマップには、定められた対象ライト区分に属するコピー情報に対応するコピー処理の履歴が記録される。これについての詳細は後述する。
【００３４】
ビットマップ管理情報３２０は、上述した更新ビットマップ３４１〜３４３の属性を表す情報である。ビットマップ管理情報３２０は、図８に示すように、ビットマップ番号と、対象ライト区分と、ＢＭマーカ情報と、ステータスとを含む。ビットマップ番号は、３つの更新ビットマップ３４１〜３４３を識別するための識別子であり、それぞれ、１〜３が用いられている。対象ライト区分は、更新ビットマップの対象ライト区分のライト区分番号を示す。ＢＭマーカ情報は、更新ビットマップの対象ライト区分に対応するＢＭマーカに関する情報である。更新ビットマップの対象ライト区分に対応するＢＭマーカが、副記憶サブシステム１００ｂ、１００ｃにおいて受信されていない場合、ＢＭマーカ情報として「未受信」が記録されている。一方、更新ビットマップの対象ライト区分に対応するＢＭマーカが、副記憶サブシステム１００ｂ、１００ｃにおいて受信されると、ＢＭマーカに含まれるライト番号が、ＢＭマーカ情報として記録される。ステータスは、更新ビットマップが確定されているか、未確定であるかを示す情報である。これらの各情報の詳細については、後述する。
【００３５】
コピー情報管理テーブル３３０は、副記憶サブシステム１００ｂ、１００ｃが、コピー情報の受信状況を管理するためのテーブルである。コピー情報は、ライト番号により管理されており、コピー情報管理テーブル３３０には、受信されたコピー情報のライト番号が記録されている。また、コピー情報のライト番号は、リモートコピーペアの副ボリュームごとに記録されている。
【００３６】
制御プログラム３５０は、副記憶サブシステム１００ｂ、１００ｃの制御部１１０ｂ、１００ｃの機能を実現するための様々なモジュールを含んでいるが、図４には、実施例の説明に必要なモジュールについてのみ図示している。制御プログラム３５０は、副側リモートコピーモジュール３５１と、ビットマップ作成モジュール３５２と、ペア形成モジュール３５３とを含んでいる。副側リモートコピーモジュール３５１は、正ボリュームを有する記憶サブシステム１００（例えば、正記憶サブシステム１００ａ）から送信されてくるコピー情報を用いて、副ボリュームにライトデータを書き込むコピー処理を実行する。ビットマップ作成モジュール３５２は、上述した更新ビットマップの作成、すなわち、コピー処理の履歴情報の作成を実行する。ペア形成モジュール３５３は、正ボリュームに障害が発生した場合に、その正ボリュームの２つの副ボリュームを用いて新たなリモートコピーペアを形成する。例えば、図１において、論理ボリュームＶａに障害が発生した場合に、論理ボリュームＶｂを新たな正ボリュームとし、論理ボリュームＶｃを新たな副ボリュームとするリモートコピーペアを形成する。ペア形成モジュール３５３は、サブモジュールとして、差分情報作成モジュール３５４と、ペア同期モジュール３５６とを備える。差分情報作成モジュール３５４は、新たに形成すべきリモートコピーペアを構成する一方の論理ボリュームに記録されているデータと、他方の論理ボリュームに記録されているデータとの差分を示す差分情報を作成する。また、差分情報作成モジュール３５４は、差分情報の作成の可否を判断する可否判断モジュール３５５を備えている。ペア同期モジュール３５６は、差分情報を用いて、新たに形成すべきリモートコピーペアを構成する２つのボリューム間で、記録されているデータを一致させる。
【００３７】
・リモートコピー関連処理：
図１０〜図１８を参照して、本実施例におけるリモートコピー関連処理について説明する。リモートコピー関連処理は、正記憶サブシステム１００ａにおいて実行されるライト要求処理と、非同期書き込み処理と、非同期送信処理と、ライト区分管理処理を含む。リモートコピー関連処理は、副記憶サブシステム１００ｂ、１００ｃにおいて実行されるコピー情報処理と、ＢＭマーカ処理とを含む。図１０は、本実施例におけるリモートコピー関連処理の概要を示す説明図である。図１１は、コピー情報の一例を概念的に示す説明図である。図１２は、ＢＭマーカの一例を概念的に示す説明図である。図１３は、ライト要求処理の処理ルーチンを示すフローチャートである。図１４は、ライト区分管理処理の処理ルーチンを示すフローチャートである。図１５は、非同期書き込み処理の処理ルーチンを示すフローチャートである。図１６は、非同期送信処理の処理ルーチンを示すフローチャートである。図１７は、コピー情報処理の処理ルーチンを示すフローチャートである。図１８は、ＢＭマーカ処理の処理ルーチンを示すフローチャートである。
【００３８】
正ホスト計算機２００ａは、正記憶サブシステム１００ａから提供されている論理ボリュームＶａにデータを書き込む場合、ライト要求１０を正記憶サブシステム１００ａに送信する。ライト要求１０は、ライトデータと共に、正記憶サブシステム１００ａがライト処理を実行するために必要な属性情報を含む。属性情報には、例えば、ライトデータを書き込む位置を特定するためのアドレスやライトデータの大きさを表す情報が含まれる。リモートコピー関連処理は、図１０に示すように、正ホスト計算機２００ａからライト要求１０を受信することによって、開始される。まず、受信されたライト要求１０を処理するライト要求処理を説明する。
【００３９】
ライト要求処理は、正記憶サブシステム１００ａの制御部１１０ａが上述した制御プログラム２３０の正側リモートコピーモジュール２３２を用いて実行する処理である。ライト要求処理は、正記憶サブシステム１００ａがライト要求１０を受信すると、開始される。ライト要求処理が開始されると、制御部１１０ａは、ライト要求１０を取得する（ステップＳ１０２）。制御部１１０ａは、ライト要求１０がリモートコピーの対象か否かを判断する（ステップＳ１０４）。具体的には、制御部１１０ａは、ライト要求１０に含まれる属性情報からライトデータを書き込むべき論理ボリュームを特定する。制御部１１０ａは、上述したペア情報２１０（図５（ａ））を参照し、書き込むべき論理ボリュームが、リモートコピーペアの正ボリュームであるか否かを調べる。制御部１１０ａは、書き込むべき論理ボリュームがリモートコピーペアの正ボリュームである場合には、当該ライト要求１０がリモートコピーの対象であると判断する（ステップＳ１０４：ＹＥＳ）。一方、制御部１１０ａは、書き込むべき論理ボリュームがリモートコピーペアの正ボリュームでない場合には、当該ライト要求１０がリモートコピーの対象でないと判断する（ステップＳ１０４：ＮＯ）。図１０に、示すように、ライト要求１０が、論理ボリュームＶａに対するものである場合には、論理ボリュームＶａは上述した第１および第２のリモートコピーペアの正ボリュームであるから、当該ライト要求１０は、リモートコピーの対象であると判断される。
【００４０】
ライト要求１０がリモートコピーの対象でないと判断すると（ステップＳ１０４：ＮＯ）、制御部１１０ａは、正ホスト計算機２００ａに対してライト要求の処理完了を通知して（ステップＳ１２４）、本処理を終了する。一方、ライト要求１０がリモートコピーの対象であると判断すると（ステップＳ１０４：ＹＥＳ）、制御部１１０ａは、上述したカウント情報２２０に記録されているライト番号のカウント値を取得する（ステップＳ１０６）。取得されるライト番号のカウント値は、ライト要求が書き込み対象とする正ボリュームについての値である。次に、制御部１１０ａは、カウント情報２２０において、ライト要求が書き込み対象とする正ボリュームについて、ライト番号のカウント値をインクリメントしておく（ステップＳ１０８）。さらに、制御部１１０ａは、カウント情報２２０に記録されているライト区分番号のカウント値を取得する（ステップＳ１１０）。本ステップにより取得されたライト区分番号を有するライト区分が、処理中のライト要求に対応するライト処理および当該ライト処理に対応するコピー情報が属するライト区分とされる。後述するように、ライト区分番号は、時間の経過と共に更新されるので、ライト要求に対応するライト処理および当該ライト処理に対応するコピー情報が属するライト区分は、本処理において、ライト区分番号が取得される時を基準に決定されることになる。
【００４１】
ライト区分番号のカウント値が取得されると、制御部１１０ａは、コピー情報２０を生成する（ステップＳ１２２）。図１１に示すように、生成されるコピー情報２０は、ステップＳ１０２において取得されたライト要求１０に含まれる属性情報２１とライトデータ２４に加えて、ステップＳ１０６、Ｓ１１０においてそれぞれ取得されたライト番号２２、ライト区分番号２３を含む。
【００４２】
コピー情報２０が生成されると、制御部１１０ａは、非同期送信先はあるか否かを判断する（ステップＳ１１４）。具体的には、制御部１１０ａは、上述したペア情報２１０（図５（ａ））を参照して、ライト要求１０が書き込みを要求する論理ボリュームを正ボリュームとするリモートコピーペアのコピータイプ情報を取得する。そして、制御部１１０ａは、取得されたコピータイプ情報に「非同期コピー」がある場合には、非同期送信先はあると判断する（ステップＳ１１４：ＹＥＳ）。一方、制御部１１０ａは、取得されたコピータイプ情報に「非同期コピー」がない場合には、非同期送信先はないと判断する（ステップＳ１１４：ＮＯ）。
【００４３】
非同期送信先がないと判断されると（ステップＳ１１４：ＮＯ）、制御部１１０ａは、ステップＳ１１８に移行する。一方、非同期送信先があると判断されると（ステップＳ１１４：ＹＥＳ）、制御部１１０ａは、生成されたコピー情報２０を非同期送信の対象として登録する（ステップＳ１１６）。具体的には、メモリ１１４ａのキャッシュ領域２４０に、非同期送信の対象となるデータを格納するための領域が用意されており、当該領域にコピー情報２０が書き込まれることにより、非同期送信の対象として登録される。
【００４４】
続いて、制御部１１０ａは、同期送信先はあるか否かを判断する（ステップＳ１１８）。具体的には、制御部１１０ａは、ステップＳ１１４において取得されたコピータイプ情報に「同期コピー」がある場合には、同期送信先はあると判断する（ステップＳ１１８：ＹＥＳ）。一方、制御部１１０ａは、取得されたコピータイプ情報に「同期コピー」がない場合には、同期送信先はないと判断する（ステップＳ１１８：ＮＯ）。
【００４５】
同期送信先がないと判断されると（ステップＳ１１８：ＮＯ）、制御部１１０ａは、正ホスト計算機２００ａに対してライト要求の処理完了を通知して（ステップＳ１２４）、本処理を終了する。一方、同期送信先があると判断されると（ステップＳ１１８：ＹＥＳ）、制御部１１０ａは、生成されたコピー情報２０を、同期送信先、すなわち、リモートコピーの副ボリュームを有する記憶サブシステム１００に送信する（ステップＳ１２０）。そして、制御部１１０ａは、コピー情報の受信完了を示す完了応答を、同期送信から受信すると（ステップＳ１２２）、正ホスト計算機２００ａに対してライト要求の処理完了を通知して（ステップＳ１２４）、本処理を終了する。
【００４６】
論理ボリュームＶａ（図１）に対するライト要求１０が本処理によって処理された場合を考える。論理ボリュームＶａを正ボリュームとする第１のリモートコピーペアはコピータイプが同期コピーである（図５（ａ））。したがって、ステップＳ１２０において、コピー情報２０は、第１のコピーペアの副ボリュームである論理ボリュームＶｂを有する副記憶サブシステム１００ｂに送信される。さらに、論理ボリュームＶａを正ボリュームとする第２のリモートコピーペアはコピータイプが非同期コピーである（図５（ａ））。したがって、ステップＳ１１６において、コピー情報２０は、非同期送信対象に登録される。
【００４７】
次に、上述したライト要求処理と並行して行われているライト区分管理処理について説明する。ライト区分管理処理は、正記憶サブシステム１００ａの制御部１１０ａが上述した制御プログラム２３０のライト区分管理モジュール２３３を用いて実行する処理である。ライト区分管理処理は、正記憶サブシステム１００ａがライト要求を受け付けている時には、常に実行されている。ライト区分管理処理が開始されると、制御部１１０ａは、ライト区分番号を初期値に設定する（ステップＳ２０２）。ライト区分番号の初期値は、例えば、「＃０」とする。ここで、本明細書において、他の番号、例えば、ライト番号とはっきり区別するため、ライト区分番号は、数字の前に「＃」を付す。初期値とされたライト区間番号は、上述したカウント情報２２０に記録される。
【００４８】
次に、制御部１１０ａは、ライト区分の時間的な長さＴ（以下、区分期間Ｔという。）を設定する（ステップＳ２０４）。区分期間Ｔは、予め定められた所定値、例えば、１分とされる。制御部１１０ａは、続いて、ライト区分の更新時間か否かを判断する（ステップＳ２０６）。ライト区分は、上述した区分期間Ｔごとに更新される。本ステップでは、最近のライト区分の更新から区分期間Ｔが経過したか否かが判断されることになる。制御部１１０ａは、ライト区分の更新時間でないと判断すると（ステップＳ２０６：ＮＯ）、ライト区分の更新時間まで待機する。制御部１１０ａは、ライト区分の更新時間であると判断すると（ステップＳ２０６：ＹＥＳ）、カウント情報２２０からライト番号のカウント値を取得する（ステップＳ２０８）。取得されるライト番号のカウント値は、正記憶サブシステム１００ａに設定されているリモートコピーペアの正ボリュームごとに、１つずつ取得される。続いて、制御部１１０ａは、カウント情報２２０に記録されているライト番号のカウント値をインクリメントしておく（ステップＳ２１０）。
【００４９】
制御部１１０ａは、カウント情報２２０に記録されているライト区分番号のカウント値を取得する（ステップＳ２１２）。制御部１１０ａは、次に、カウント情報２２０に記録されているライト区分番号のカウント値をインクリメントしておく（ステップＳ２１４）。次に、制御部１１０ａは、ＢＭマーカ３０を生成する（ステップＳ２１６）。図１２に示すように、生成されるＢＭマーカ３０は、ＢＭマーカであることを示す属性情報３１と共に、ステップＳ２０８、Ｓ２１２においてそれぞれ取得されたライト番号３２、ライト区分番号３３を含む。
【００５０】
ＢＭマーカが生成されると、制御部１１０ａは、非同期送信先はあるか否かを判断する（ステップＳ２１８）。具体的には、１１０ａは、上述したペア情報２１０（図５（ａ））を参照して、正記憶サブシステム１００ａに正ボリュームが存在するリモートコピーペアの中に、コピータイプが非同期コピーであるものがあるか否かを判断する。そして、制御部１１０ａは、コピータイプが非同期コピーであるものがある場合には、非同期送信先はあると判断する（ステップＳ２１８：ＹＥＳ）。一方、制御部１１０ａは、コピータイプが非同期コピーであるものがない場合には、非同期送信先はないと判断する（ステップＳ２１８：ＮＯ）。
【００５１】
非同期送信先がないと判断されると（ステップＳ２１８：ＮＯ）、制御部１１０ａは、ステップＳ２２２に移行する。一方、非同期送信先があると判断されると（ステップＳ２１８：ＹＥＳ）、制御部１１０ａは、生成されたＢＭマーカを非同期送信の対象として登録する（ステップＳ２２０）。
【００５２】
続いて、制御部１１０ａは、同期送信先はあるか否かを判断する（ステップＳ２２２）。具体的には、制御部１１０ａは、上述したペア情報２１０（図５（ａ））を参照して、正記憶サブシステム１００ａに正ボリュームが存在するリモートコピーペアの中に、コピータイプが同期コピーであるものがあるか否かを判断する。そして、制御部１１０ａは、コピータイプが同期コピーであるものがある場合には、同期送信先はあると判断する（ステップＳ２２２：ＹＥＳ）。一方、制御部１１０ａは、コピータイプが同期コピーであるものがない場合には、同期送信先はないと判断する（ステップＳ２２２：ＮＯ）。
【００５３】
同期送信先がないと判断されると（ステップＳ２２２：ＮＯ）、制御部１１０ａは、ステップＳ２０６に戻り、次にライト区分更新時間まで待機する。一方、同期送信先があると判断されると（ステップＳ２２２：ＹＥＳ）、制御部１１０ａは、生成されたＢＭマーカ３０を、同期送信先、すなわち、リモートコピーの副ボリュームを有する記憶サブシステム１００に送信する（ステップＳ２２４）。ＢＭマーカは、本ステップにおいて、正記憶サブシステム１００ａに正ボリュームが存在するリモートコピーペアの副ボリュームを有する全ての記憶サブシステム１００に送信される。そして、制御部１１０ａは、ＢＭマーカ３０の受信完了を示す完了応答を、同期送信先から受信すると（ステップＳ２２６）、制御部１１０ａは、ステップＳ２０６に戻り、次にライト区分更新時間まで待機する。
【００５４】
本処理によって、一のライト区分に属するコピー情報の送信と、次のライト区分に属する最初コピー情報の送信との間のタイミングで、ＢＭマーカ３０が送信される。以上の説明から解るように、本実施例におけるＢＭマーカ３０は、特許請求の範囲における境界情報に相当する。
【００５５】
続いて、上述したライト要求処理と並行して行われている非同期書き込み処理について説明する。非同期書き込み処理は、正記憶サブシステム１００ａの制御部１１０ａが上述した制御プログラム２３０のリード／ライトモジュール２３１を用いて実行する処理である。
【００５６】
非同期書き込み処理は、正記憶サブシステム１００ａがライト要求を受け付けている時には、常に実行されている。非同期書き込み処理が実行されている間、制御部１１０ａは、常にメモリ１１４ａに、まだ書き込みがされていないライト要求１０が有るか否かを監視している（ステップＳ３０２）。書き込みがされていないライト要求１０が有ると判断すると（ステップＳ３０２：ＹＥＳ）、制御部１１０ａは、ライト要求１０に従って、ライトデータを、論理ボリュームに書き込むライト処理を実行する（ステップＳ３０４）。ここで、メモリ１１４ａに複数の未書き込みのライト要求１０がある場合には、ライト要求１０が受信された順番が解るようにメモリ１１４ａに格納されている。制御部１１０ａは、ライト要求が受信された順番に、論理ボリュームに書き込まれる。
【００５７】
次に、上述したライト要求処理と並行して行われている非同期送信処理について説明する。非同期送信処理は、正記憶サブシステム１００ａの制御部１１０ａが上述した制御プログラム２３０の正側リモートコピーモジュール２３２を用いて実行する処理である。
【００５８】
非同期送信処理は、正記憶サブシステム１００ａがライト要求を受け付けている時には、常に実行されている。非同期送信処理が実行されている間、制御部１１０ａは、常に、非同期送信対象に登録されているデータがあるか否かを監視している（ステップＳ４０２）。非同期送信対象に登録されているデータには、ライト要求処理において登録されたコピー情報２０（図１３：ステップ１１６）、および、ライト区分管理処理において登録されたＢＭマーカ３０（図１４：ステップＳ２１６）が含まれる。制御部１１０ａは、非同期送信対象に登録されているデータがあると判断すると（ステップＳ４０２：ＹＥＳ）、当該データを非同期送信先に送信する（ステップＳ４０４）。非同期送信先は、当該データがコピー情報２０である場合には、当該コピー情報２０に含まれる属性情報２１とペア情報２１０とを参照することによって特定される。一方、当該データがＢＭマーカ３０である場合には、ペア情報２１０を参照して特定される。ここで、非同期送信先は、１つに限られず、複数である場合もある。また、非同期送信対象のデータが複数登録されている場合には、非同期送信対象のデータは、登録された順番に送信される。そして、制御部１１０ａは、送信したデータの受信完了を示す完了応答を、同期送信先から受信すると（ステップＳ４０６）、送信したデータを、非同期送信対象から削除する（ステップＳ４０８）。その後、制御部１１０ａは、ステップＳ４０２にリターンする。
【００５９】
続いて、コピー情報処理について説明する。コピー情報処理は、副記憶サブシステム１００ｂ、１００ｃの制御部１１０ｂ、１１０ｃが、上述した制御プログラム３５０の副側リモートコピーモジュール３５１とビットマップ作成モジュール３５２を用いて実行する処理である。コピー情報処理は、副記憶サブシステム１００ｂ、１００ｃにおいて、コピー情報２０が受信されると、開始される。いずれの副記憶サブシステムにおいても同一の処理であるので、以下では、副記憶サブシステム１００ｂの制御部１１０ｂによるコピー情報処理を説明する。コピー情報処理を開始されると、制御部１１０ｂは、コピー情報２０を取得する（ステップＳ５０２）。制御部１１０ｂは、コピー情報２０の送信元（本実施例では、正記憶サブシステム１００ａ）に対して、コピー情報２０の受信完了を示す完了応答を送信する（ステップＳ５０４）。制御部１１０ｂは、取得されたコピー情報２０に従って、ライトデータを副ボリュームに書き込むコピー処理を実行する（ステップＳ５０６）。
【００６０】
制御部１１０ｂは、続いて、コピー情報２０に含まれるライト区分番号を取得する（ステップＳ５０８）。制御部１１０ｂは、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップは存在するか否かを判断する（ステップＳ５１０）。具体的には、制御部１１０ｂは、上述したビットマップ管理情報３２０を参照して、更新ビットマップ３４１〜３４３の対象ライト区分番号を調べる。取得されたライト区分番号のライト区分を記録対象とする更新ビットマップがある場合には（ステップＳ５１０：ＹＥＳ）、制御部１１０ｂは、ステップＳ５１６に移行する。取得されたライト区分番号のライト区分を記録対象とする更新ビットマップがない場合には（ステップＳ５１０：ＮＯ）、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップを新たに用意する（ステップＳ５１２）。例えば、未使用の更新ビットマップが存在する場合には、制御部１１０ｂは、その更新ビットマップの対象ライト区分を、取得されたライト区分番号のライト区分とする。また、未使用の更新ビットマップが存在しない場合には、制御部１１０ｂは、最も古いライト区分、すなわち、最もライト区分番号が小さいライト区分を対象ライト区分とする更新ビットマップをクリアする。そして、制御部１１０ｂは、クリアされた更新ビットマップの対象ライト区分を、取得されたライト区分番号のライト区分とする。制御部１１０ｂは、このような、更新ビットマップの属性の変更に応じて、ビットマップ管理情報３２０を更新する（ステップＳ５１４）。
【００６１】
制御部１１０ｂは、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップに、ステップＳ５０６において書き込んだライトデータの書き込み位置を記録する（ステップＳ５１６）。具体的には、制御部１１０ｂは、当該更新ビットマップにおいて、ライトデータが書き込まれたトラックＴＲに対応する１ビットのデータＢＤを「１」にする。そして、制御部１１０ｂは、処理中のコピー情報２０のライト番号２２の値を、コピー情報管理テーブル３３０に、副ボリュームごとに記録する（ステップＳ５１８）。
【００６２】
ついで、制御部１１０ｂは、更新ビットマップを確定するための処理（ステップＳ５２０〜Ｓ５２４）に移る。まず、制御部１１０ｂは、更新ビットマップ３４１〜３４３の中に、未確定、かつ、ＢＭマーカ３０を受信済みの更新ビットマップがあるか否かを判断する（ステップＳ５２０）。具体的には、制御部１１０ｂは、ビットマップ管理情報３２０を参照して、ビットマップ管理情報３２０において、ＢＭマーカ情報が未受信でなく、かつ、ステータスが未確定であると記録されている更新ビットマップがあるか否かを調べる。未確定、かつ、ＢＭマーカ３０を受信済みの更新ビットマップがないと判断すると（ステップＳ５２０：ＮＯ）、本処理を終了する。一方、ＢＭマーカ３０を受信済みの更新ビットマップがあると判断すると（ステップＳ５２０：ＹＥＳ）、当該更新ビットマップの対象ライト区分に属するコピー情報２０を全て受信しているか否かを判断する（ステップＳ５２２）。具体的には、制御部１１０ｂは、ビットマップ管理情報３２０における当該更新ビットマップのＢＭマーカ情報として記録されているライト番号（図８）を取得する。そして、制御部１１０ｂは、コピー情報管理テーブル３３０を参照して、ＢＭマーカ情報として記録されているライト番号未満のライト番号を有するコピー情報が全て受信されているか否かを判断する。
【００６３】
制御部１１０ｂは、当該更新ビットマップの対象ライト区分に属するコピー情報２０を全て受信していないと判断すると（ステップＳ５２２：ＮＯ）、本処理を終了する。一方、制御部１１０ｂは、当該更新ビットマップの対象ライト区分に属するコピー情報２０を全て受信していると判断すると（ステップＳ５２２：ＹＥＳ）、当該更新ビットマップを確定して（ステップＳ５２４）、本処理を終了する。更新ビットマップの確定は、ビットマップ管理情報３２０における当該更新ビットマップのステータスを「未確定」から「確定」に変更することによって行われる。
【００６４】
続いて、ＢＭマーカ処理について説明する。ＢＭマーカ処理は、副記憶サブシステム１００ｂ、１００ｃの制御部１１０ｂ、１１０ｃが、上述した制御プログラム３５０の副側リモートコピーモジュール３５１とビットマップ作成モジュール３５２を用いて実行する処理である。ＢＭマーカ処理は、副記憶サブシステム１００ｂ、１００ｃにおいて、ＢＭマーカ３０が受信されると、開始される。いずれの副記憶サブシステムにおいても同一の処理であるので、以下では、副記憶サブシステム１００ｂの制御部１１０ｂによるＢＭマーカ処理を説明する。ＢＭマーカ処理を開始されると、制御部１１０ｂは、ＢＭマーカ３０を取得する（ステップＳ６０２）。制御部１１０ｂは、ＢＭマーカ３０の送信元（本実施例では、正記憶サブシステム１００ａ）に対して、ＢＭマーカ３０の受信完了を示す完了応答を送信する（ステップＳ６０４）。
【００６５】
制御部１１０ｂは、続いて、ＢＭマーカ３０に含まれるライト区分番号を取得する（ステップＳ６０６）。制御部１１０ｂは、上述したコピー情報処理におけるステップＳ５１０と同様に、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップは存在するか否かを判断する（ステップＳ６０８）。取得されたライト区分番号のライト区分を記録対象とする更新ビットマップがある場合には（ステップＳ６０８：ＹＥＳ）、制御部１１０ｂは、ステップＳ６１２に移行する。取得されたライト区分番号のライト区分を記録対象とする更新ビットマップがない場合には（ステップＳ６０８：ＮＯ）、上述したコピー情報処理におけるステップＳ５１２と同様に、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップを新たに用意する（ステップＳ６１０）。
【００６６】
制御部１１０ｂは、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップについて、ビットマップ管理情報３２０を更新する（ステップＳ６１０）。具体的には、制御部１１０ｂは、ステップＳ５０６において書き込んだライトデータの書き込み位置を記録する。具体的には、取得されたライト区分番号のライト区分を記録対象とする更新ビットマップのＢＭマーカ情報を、「未受信」から「ＢＭマーカ３０に含まれるライト番号」に変更する。制御部１１０ｂは、ＢＭマーカ３０に含まれるライト番号をコピー情報管理テーブル３３０にも記録しておく（ステップＳ６１４）。
【００６７】
ついで、制御部１１０ｂは、更新ビットマップを確定するための処理（ステップＳ６１６〜Ｓ６１８）に移る。まず、制御部１１０ｂは、ＢＭマーカ３０に含まれるライト区分番号のライト区分に属するコピー情報２０を全て受信しているか否かを判断する（ステップＳ６１６）。具体的には、制御部１１０ｂは、コピー情報管理テーブル３３０を参照して、ＢＭマーカに含まれるライト番号未満のライト番号を有するコピー情報が全て受信されているか否かを判断する。制御部１１０ｂは、コピー情報２０を全て受信していないと判断すると（ステップＳ６１６：ＮＯ）、本処理を終了する。一方、制御部１１０ｂは、コピー情報２０を全て受信していると判断すると（ステップＳ６１６：ＹＥＳ）、ＢＭマーカ３０に含まれるライト区分番号のライト区分を対象ライト区分とする更新ビットマップを確定して（ステップＳ６１８）、本処理を終了する。
【００６８】
以上説明したリモートコピー関連処理を、図１０を参照して、さらに説明する。図１０には、各論理ボリュームＶａ、Ｖｂ、Ｖｃと、論理ボリュームＶａ、Ｖｂ、Ｖｃ内部の複数のトラックＴＲとが概念的に示されている。図１０には、論理ボリュームＶａに対する９つのライト要求１０が、正ホスト計算機２００ａから正記憶サブシステム１００ａへ順次送信される様子を示している。上述した非同期書き込み処理（図１５）によって、各ライト要求１０に対応するライト処理が、論理ボリュームＶａに対して実行される。また、上述したライト要求処理（図１３）と、非同期送信処理（図１６）によって、各ライト要求１０に対応するコピー情報２０が、論理ボリュームＶａとリモートコピーペアを構成する副ボリュームである論理ボリュームＶｂ、Ｖｃを有する副記憶サブシステム１００ｂ、１００ｃに、それぞれ送信される。
【００６９】
図１０において、正記憶サブシステム１００ａから副記憶サブシステム１００ｂへコピー情報２０が送信される様子と、正記憶サブシステム１００ａから副記憶サブシステム１００ｃへとコピー情報２０が送信される様子が概念的に示されている。図１０において、各コピー情報２０に付されている番号は、コピー情報２０に含まれるライト番号（図１１）である。図１０において、論理ボリュームＶａのトラックＴＲに記された番号は、そのトラックＴＲが、ライト要求１０に対応するライト処理が実行されたトラックＴＲであることを概念的に示している。ここで、理解の容易のため、論理ボリュームＶａのトラックＴＲに記された番号は、ライト処理に対応するコピー情報２０に含まれるライト番号とされている。
【００７０】
さらに、図１０には、上述したライト区分管理処理（図１４）と、非同期送信処理（図１６）によって、送信されたＢＭマーカ３０が、コピー情報２０同様に、正記憶サブシステム１００ａから副記憶サブシステム１００ｃへと送信される様子が示されている。先のＢＭマーカ３０のライト番号から、後のＢＭマーカ３０のライト番号のライト番号までに含まれるライト番号を有するコピー情報２０は、後のＢＭマーカ３０に含められたライト区分番号のライト区分に属する。例えば、図１０では、ライト番号５未満、すなわち、ライト番号１〜４までのコピー情報２０は、ライト区分＃１に属する。そして、ライト番号６から次のＢＭマーカ３０のライト番号９までのライト番号６〜８のコピー情報２０は、ライト区分＃２に属する。ここで、ライト区分＃ｎは、ライト区分番号が＃ｎであるライト区分を表すものとする。
【００７１】
ここで、図１０に示すように、同期送信により副記憶サブシステム１００ｂに送信されるコピー情報２０と、非同期送信により副記憶サブシステム１００ｃに送信されるコピー情報２０とは、対応する正ボリュームへのライト処理が同一であれば、同一のライト区分に属する。上述したライト要求処理からわかるように、正ボリュームである論理ボリュームＶａへのライト処理ごとに、対応するコピー情報が属するライト区分が定められているからである。
【００７２】
さらに、上述したコピー情報処理（図１７）により、副記憶サブシステム１００ｂおよび副記憶サブシステム１００ｃにおいて、コピー情報２０を用いたコピー処理が実行される。また、上述したコピー情報処理（図１７）、および、ＢＭマーカ処理（図１８）により、副記憶サブシステム１００ｂにおいて、更新ビットマップ３４１ｂ〜３４３ｂが作成され、副記憶サブシステム１００ｃにおいて、更新ビットマップ３４１ｃ〜３４３ｃが作成される。図１０には、副記憶サブシステム１００ｂにおいて、ライト番号１〜１１までのコピー情報２０を用いたコピー処理が実行された時点における論理ボリュームＶｂと、その時点における更新ビットマップ３４１ｂ〜３４３ｂが図示されている。また、副記憶サブシステム１００ｃにおいて、ライト番号１〜７までのコピー情報２０を用いたコピー処理が実行された時点における論理ボリュームＶｃと、その時点における更新ビットマップ３４１ｃ〜３４３ｃが図示されている。
【００７３】
図１０において、論理ボリュームＶｂおよび論理ボリュームＶｂのトラックＴＲの一部には、ライト番号が記されている。ライト番号が記されたトラックＴＲは、そのライト番号のコピー情報２０を用いたコピー処理により、ライトデータが書き込まれたトラックＴＲを示している。副記憶サブシステム１００ｂにおいて、更新ビットマップ３４１ｂは、ライト区分＃１が対象ライト区分である。更新ビットマップ３４１ｂは、ライト区分＃１に属するコピー情報２０に対応するコピー処理の履歴が全て記録されて、確定されている。同様にして、ライト区分＃２を対象ライト区分とする更新ビットマップ３４２ｂも、記録すべきコピー処理の履歴が全て記録されて確定されている。また、ライト区分＃３を対象ライト区分とする更新ビットマップ３４３ｂは、未確定である。この時点からさらに処理が進行して、ライト区分＃４に属するコピー情報２０あるいはＢＭマーカ３０が受信されると、更新ビットマップ３４１ｂはクリアされ、更新ビットマップ３４１ｂのライト区分は、ライト区分＃４とされることになる。
【００７４】
一方、副記憶サブシステム１００ｃにおいては、ライト番号１〜７までのコピー情報２０を用いたコピー処理が実行された時点が示されている。従って、ライト区分＃１が対象ライト区分である更新ビットマップ３４１ｃは確定している。そして、ライト区分＃２が対象ライト区分である更新ビットマップ３４２ｃは、まだ、ライト区分＃２に属するライト番号８のコピー情報２０が受信されていないため、未確定である。
【００７５】
以上説明したリモートコピー関連処理が実行されることにより、図１に示す記憶システム１０００において、リモートコピーが実現される。
【００７６】
・正ボリュームに障害が発生した際の処理：
図１９〜図２１を参照して、正ボリュームに障害が発生した際の処理について説明する。障害が発生した際の処理は、同一のボリュームを正ボリュームとするリモートコピーペアが２以上ある場合に、２つのリモートコピーペアの副ボリュームで新たなリモートコピーペアを形成するペア形成処理である。ペア形成処理により、データの冗長性を確保するシステム構成に、再び移行することができる。
【００７７】
図１９は、ペア形成処理の処理ルーチンを示すフローチャートである。図２０は、差分情報の作成可否について説明するための表である。図２１は、ペア形成処理の概要を示す説明図である。
【００７８】
図１に示す記憶システム１０００において、第１および第２のリモートコピーペアの正ボリュームである論理ボリュームＶａに障害が発生した場合を例に、ペア形成処理を説明する。前提として、ペア形成処理を実行するためには、副記憶サブシステム１００ｂと副記憶サブシステム１００ｃが、通信線ＣＶによって、通信可能に接続されている必要がある。ペア形成処理は、リモートコピーペアの副ボリュームを有する記憶サブシステム１００において実行される。図１に示す例では、副記憶サブシステム１００ｂまたは副記憶サブシステム１００ｃのいずれかにおいて実行される。いずれにおいても同一の処理が実行されるので、副記憶サブシステム１００ｂにおいて実行されるものとして説明する。
【００７９】
副記憶サブシステム１００ｂにおいて、ペア形成処理は、制御部１１０ｂが、上述した制御プログラム３５０のペア形成モジュール３５３を用いて実行する処理である。ペア形成処理は、副ホスト計算機２００ｂや、図示しない管理計算機を介して、ユーザから開始指示があった時に、開始される。ペア形成処理が開始されると、制御部１１０ｂは、新たに形成されるべきリモートコピーペアを構成する新正ボリュームおよび新副ボリュームを特定する（ステップＳ７０２）。ここで、区別を明確にするため、障害発生前に形成されていたリモートコピーペア、正ボリューム、副ボリュームは、「旧」を用語の前に付す。また、本処理により新たに形成されるリモートコピーペア、正ボリューム、副ボリュームは、「新」を用語の前に付す。新正ボリュームおよび新副ボリュームは、ユーザからの指示に従って特定される。以下、本ステップにおいて、副記憶サブシステム１００ｂの論理ボリュームＶｂが新正ボリュームとして、副記憶サブシステム１００ｃの論理ボリュームＶｃが新副ボリュームとして特定されたとして、説明する。
【００８０】
次に、制御部１１０ｂは、新正ボリュームと新副ボリュームの双方のペア情報を取得する（ステップＳ７０４）。具体的には、制御部１１０ｂは、メモリ１１４ｂに格納されているペア情報３１０ｂを取得する。さらに、制御部１１０ｂは、通信線ＣＶを介して、副記憶サブシステム１００ｃから記憶サブシステム１００ｃのメモリ１１４ｃに格納されているペア情報３１０ｃを取得する。
【００８１】
次に、制御部１１０ｂは、取得された双方のペア情報３１０ｂおよびペア情報３１０ｃを参照して、特定された新正ボリュームと新副ボリュームが、同一のボリュームを旧正ボリュームとして、旧リモートコピーペアを形成していたか否かを判断する（ステップＳ７０６）。図１の例では、新正ボリュームとして特定された論理ボリュームＶｂと、新副ボリュームとして特定された論理ボリュームＶｃとは、共に、論理ボリュームＶａを旧正ボリュームとする旧リモートコピーペアを形成していることがわかる。制御部１１０ｂは、旧正ボリュームが同一でないと判断すると（ステップＳ７０６：ＮＯ）、エラー処理を実行し（ステップＳ７１８）、本処理を終了する。エラー処理は、例えば、エラーにより本処理が異常終了されたことを、ユーザに対して通知する処理などである。一方、制御部１１０ｂは、旧正ボリュームが同一であると判断すると（ステップＳ７０６：ＹＥＳ）、新正ボリュームと新副ボリュームの双方のビットマップ管理情報を取得する（ステップＳ７０８）。具体的には、制御部１１０ｂは、メモリ１１４ｂに格納されているビットマップ管理情報３２０ｂを取得する。さらに、制御部１１０ｂは、通信線ＣＶを介して、副記憶サブシステム１００ｃから記憶サブシステム１００ｃのメモリ１１４ｃに格納されているビットマップ管理情報３２０ｃを取得する。
【００８２】
双方のビットマップ管理情報３２０ｂ、３２０ｃが取得されると、制御部１１０ｂは、新正ボリュームに格納されているデータと、新副ボリュームに格納されているデータとの差分を示す差分情報である差分ビットマップを作成できるか否かを判断する（ステップＳ７１０）。差分ビットマップの作成可否は、新正ボリュームとしての論理ボリュームＶｂの更新ビットマップ３４１ｂ〜３４３ｂの確定状況と、新副ボリュームとしての論理ボリュームＶｃの更新ビットマップ３４１ｃ〜３４３ｃの確定状況とに基づいて判断される。これらの確定状況は、上述したとおり、取得されたビットマップ管理情報３２０ａ、３２０ｃに記録されている（図８）。
【００８３】
図２１に示す例では、論理ボリュームＶｂについては、ライト区分＃４とライト区分＃５を対象ライト区分とする確定済み更新ビットマップが、副記憶サブシステム１００ｂに格納されている。一方、論理ボリュームＶｃについては、ライト区分＃３とライト区分＃４を対象ライト区分とする確定済み更新ビットマップが、副記憶サブシステム１００ｃに格納されている。従って、コピー処理の進捗が遅い論理ボリュームＶｃも、少なくともライト区分＃４に属するコピー情報２０に対応するコピー処理は実行済みであることが解る。この結果、論理ボリュームＶｂに格納されているデータと論理ボリュームＶｃに格納されているデータの差分は、ライト区分＃５以降のライト区分に属するコピー情報２０に対応するコピー処理によるものであることが解る。従って、進捗が早い方の論理ボリュームＶｂが有している最も古い（対象ライト区分番号が小さい）更新ビットマップが、ライト区分＃５以前のものであれば、差分ビットマップが作成可能である。図２１の例では、論理ボリュームＶｂについては、ライト区分＃５の更新ビットマップがあるので、差分ビットマップが作成可能である。
【００８４】
図２０を参照しながら、さらに詳しく、差分ビットマップの作成可否の判断について説明する。図２０の表の３番では、コピー処理の進捗が遅い方のボリューム、すなわち、論理ボリュームＶｃが、ライト区分＃１および＃２の確定済み更新ビットマップを有している。すなわち、論理ボリュームＶｂと論理ボリュームＶｃは、少なくともライト区分＃２に属するコピー情報２０に対応するコピー処理は実行済みである。従って、論理ボリュームＶｂと論理ボリュームＶｃの両方について、ライト区分＃３以降のライト区分を対象ライト区間とする更新ビットマップが揃っていれば、差分ビットマップが作成可能である。しかし、コピー処理の進捗が遅い方のボリューム、すなわち、論理ボリュームＶｂは、ライト区間＃４および＃５の確定済み更新ビットマップを有しているが、ライト区分＃３についての更新ビットマップを有していない。従って、かかる場合には、差分ビットマップの作成は不可能であると判断される。一般的に言えば、論理ボリュームＶｂと論理ボリュームＶｃの中でコピー処理の進捗が遅い方について、最後に確定がなされた更新ビットマップ（確定済み更新ビットマップのうち最も新しいもの）の対象ライト区分をライト区分＃ｎとする。この場合に、論理ボリュームＶｂと論理ボリュームＶｃの中でコピー処理の進捗が早い方について、ライト区分＃（ｎ＋１）を対象ライト区分とする更新ビットマップがあれば、差分ビットマップの作成が可能であると判断される。例えば、図２０の表における番号１および２の場合には、差分ビットマップの作成は可能である。
【００８５】
制御部１１０ｂは、差分ビットマップを作成できないと判断すると（ステップＳ７１０：ＮＯ）、エラー処理を実行して（ステップＳ７１８）、本処理を終了する。一方、制御部１１０ｂは、差分ビットマップを作成できると判断すると（ステップＳ７１０：ＹＥＳ）、差分ビットマップを作成する（ステップＳ７１２）。図２１に示す例では、制御部１１０ｂは、ライト区分＃５以降のライト区分の更新ビットマップ３４２ｂ、３４３ｂ、３４３ｃを統合して差分ビットマップ５００を作成する。一般的に言えば、論理ボリュームＶｂと論理ボリュームＶｃの双方の更新ビットマップのうち、上述したライト区分＃（ｎ＋１）以降のライト区分を対象ライト区分とする更新ビットマップを全て統合することにより、差分ビットマップ５００が作成される。差分ビットマップ５００では、統合に用いる更新ビットマップのいずれかにおいて更新有り（１ビットのデータＢＤが「１」）とされているトラックＴＲが、更新有りとされる。そして、差分ビットマップ５００では、統合に用いる更新ビットマップの全てにおいて更新無し（１ビットのデータＢＤが「０」）とされているトラックＴＲだけが、更新無しとされる。なお、差分ビットマップが形成できない場合、本実施例では、差分ビットマップの作成を中止して処理を終了しているが、他の実施例として、差分ビットマップが作成できない場合、新正ボリュームから新副ボリュームへ全てのデータをコピーする処理を実行する構成も考えられる。
【００８６】
制御部１１０ｂは、次に、作成された差分ビットマップ５００を参照して求められる差分データのみを、新正ボリュームから新副ボリュームにコピーする（ステップＳ７１４）。具体的には、図２１に示すように、作成された差分ビットマップ５００において、更新有りとされているトラックＴＲのデータのみを、論理ボリュームＶｂから論理ボリュームＶｃにコピーする。この結果、論理ボリュームＶｃの内容は、論理ボリュームＶｂの内容に一致させられる。なお、双方のボリューム（新正ボリュームと新副ボリューム）において未確定の更新ビットマップも統合して差分ビットマップを作成するのは、一のボリューム（新正ボリュームまたは新副ボリューム）において更新されており、かつ、他のボリューム（新副ボリュームまたは新正ボリューム）において更新されていないトラックについて、新正ボリューム側のデータを新副ボリューム側にコピーすることにより、新正ボリュームのデータと副ボリュームのデータとを一致させるためである。
【００８７】
次に、制御部１１０ｂは、論理ボリュームＶｂ（新正ボリューム）を有する副記憶サブシステム１００ｂと、論理ボリュームＶｃ（新副ボリューム）を有する副記憶サブシステム１００ｃの双方において、ペア情報３１０ｂ、３１０ｃを更新する（ステップＳ７１６）。すなわち、ペア情報３１０ｂ、３１０ｃにおいて、旧リモートコピーペアの情報が削除され、新リモートコピーペアの情報が記録される。異なる副記憶サブシステム１００ｃに格納されているペア情報３１０ｃの更新は、例えば、制御部１１０ｂが、副記憶サブシステム１００ｃに対して、ペア情報３１０ｃの更新指示を送信することによって実行される。ペア情報３１０ｂ、３１０ｃが更新されると、本処理は終了される。
【００８８】
以上説明した本実施例によれば、本実施例では、ライト処理ごとにライト区分を設定して、ライト区分単位で各副ボリューム（論理ボリュームＶｂ、Ｖｃ）におけるリモートコピー履歴を更新ビットマップ３４１〜３４３として記録する。この結果、差分ビットマップを作成し、差分データをコピーするだけで、論理ボリュームＶｂと、論理ボリュームＶｃとの内容を一致させることができる。この結果、例えば、論理ボリュームＶａに障害が発生した場合に、速やかに論理ボリュームＶｂと論理ボリュームＶｃとで新たなリモートコピーペアを形成することができる。
【００８９】
また、ビットマップ管理情報３２０を参照して、リモートコピーの進捗度を容易に把握できる。この結果、差分ビットマップの作成可否すなわち差分データのコピーのみによる新リモートコピーペアの形成可否を、容易に判断することができる。
【００９０】
また、ＢＭマーカ３０の送信、および、コピー情報２０にライト区分番号を含めることにより、副ボリュームを有する副記憶サブシステム１００ｂ、１００ｃに、コピー情報２０に対応するライト処理が属するライト区分を通知することができる。
【００９１】
また、各コピー情報２０と、ＢＭマーカ３０に連続する共通のライト番号を付しているため、例えば、通信線の混雑状況等によって、コピー情報２０やＢＭマーカ３０の送信順序が入れ替わったとしても、副記憶サブシステム１００ｂ、１００ｃ側で適切な順番を把握できる。
【００９２】
さらに、副ボリュームを有する記憶サブシステム１００ｂ、１００ｃは、自身が有する副ボリュームについての更新ビットマップ３４１〜３４３を記録するだけで良く、他の副ボリュームについては特に記録する必要がない。この結果、本実施例における方法は、特定の副記憶サブシステム１００ｂの負荷を高めることなく、後述するような多様なシステム構成に適用することができる。
【００９３】
例えば、本実施例における方法は、リモートコピーがいかなるタイプであっても適用できる。実施例では、論理ボリュームＶａと論理ボリュームＶｂにより形成される第１のリモートコピーペアが同期リモートコピーであり、論理ボリュームＶａと論理ボリュームＶｃにより形成される第２のリモートコピーペアが非同期リモートコピーであるが、例えば、両方が同期リモートコピーであっても良いし、両方が非同期リモートコピーであっても良い。本実施例における方法では、一方のリモートコピーペアが、他方のリモートコピーペアより進捗が早いことが前提とされていない。したがって、どちらのリモートコピーペアの進捗が早くても構わないし、リモートコピーの動作中にリモートコピーの進捗度が入れ替わっても良い。例えば、本実施例における方法は、図２２に示す記憶システムに対しても適用できる。図２２は、第１変形例に係る記憶システムの構成を模式的に示す説明図である。
【００９４】
第１変形例に係る記憶システム１０００は、図１に示す実施例に係る記憶システムと同様に、論理ボリュームＶａと論理ボリュームＶｂとにより形成される第１のリモートコピーペアと、論理ボリュームＶａと論理ボリュームＶｃとにより形成される第２のリモートコピーペアを有している。図１に示す実施例に係る記憶システムと異なる点は、第１変形例に係る記憶システム１０００は、第１および第２のリモートコピーペアともに非同期リモートコピーである点と、非同期コピーの仕組みが異なる点である。実施例における非同期リモートコピーでは、コピー情報２０を非同期送信対象として登録する際、正記憶サブシステム１００ａのキャッシュ領域２４０にコピー情報２０を格納していたが、第１変形例に係る記憶システム１０００では、コピー情報２０は、ジャーナルボリュームと呼ばれるボリュームに格納される。ジャーナルボリュームは、メモリ１１４の領域ではなく、記憶部１２０のディスク装置と対応付けられた論理ボリュームである。そして、図２２における第１のリモートコピーペアのためのジャーナルボリュームＪＮＬ１は、中間記憶サブシステム１００ｍの論理ボリュームを用いている。一方、図２２における第２のリモートコピーペアのためのジャーナルボリュームＪＮＬ２は、正記憶サブシステム１００ａ内の論理ボリュームを用いている。このように、ジャーナルボリュームは、正ボリュームと同じ記憶サブシステムに用意されても良いし、正ボリュームとは異なる記憶サブシステムに用意されても良い。また、上記実施例の非同期送信処理（図１６）では、制御部１１０ａは、一方的に、コピー情報２０を非同期送信先（例えば、副記憶サブシステム１００ｂ）に送信しているが、これに代えて、非同期送信先からの要求に応じて、コピー情報２０を送ることとしても良い。図２２の例では、ジャーナルボリュームＪＮＬ１、ＪＮＬ２を有するサブ記憶システム１００ｍ、１００ａに対して、副ボリュームを有する副記憶サブシステム１００ｂ、１００ｃをコピー情報２０の送信要求を送信する。ジャーナルボリュームＪＮＬ１、ＪＮＬ２を有するサブ記憶システム１００ｍ、１００ａは、送信要求に対する応答として、ジャーナルボリュームＪＮＬ１、ＪＮＬ２に格納されたコピー情報２０を、副記憶サブシステム１００ｂ、１００ｃに対して送信する。
【００９５】
本実施例における方法は、図２２に示すように、各副ボリュームについて、更新ビットマップのグループ３４０ｂ、３４０ｃを備えることにより、上述したようないずれのリモートコピーシステムにおいても適用できる。
【００９６】
さらに、本実施例における方法において、正ボリュームを有する記憶サブシステム１００は、コピー情報２０に加えて、ライト区分を通知する情報（ＢＭマーカ３０や、コピー情報２０に含まれるライト区分番号）を副ボリュームを有する記憶サブシステム１００に送信するだけで良く、副ボリュームを有する記憶サブシステム１００は、その副ボリュームについて更新ビットマップのグループを備えるだけで良い。従って、本実施例における方法は、図１に示すような、１つの正ボリュームに対して２つの副ボリュームを備えるシステムに限らず、１つの正ボリュームに対して３以上の副ボリュームを備えるシステムにおいても容易に適用することができる。
【００９７】
例えば、本実施例における方法は、図２３に示す記憶システムに対しても適用できる。図２３は、第２変形例に係る記憶システムの構成を模式的に示す説明図である。図２３に示す例では、正記憶サブシステム１００ａは、リモートコピーペアの正ボリュームである２つの論理ボリュームＶａ１およびＶａ２を有している。論理ボリュームＶａ１は、４つの異なる副記憶サブシステム１００ｂ〜１００ｃが有する論理ボリュームＶｂ、Ｖｃ、Ｖｄ１、Ｖｅ１と、それぞれ、リモートコピーペアを形成している。論理ボリュームＶｂは、２つの異なる副記憶サブシステム１００ｄ〜１００ｅが有する論理ボリュームＶｄ２、Ｖｅ２と、それぞれ、リモートコピーペアを形成している。図２３に示す記憶システムに、本実施例における方法を適用する場合には、各副ボリュームＶｂ、Ｖｃ、Ｖｄ１、Ｖｄ２、Ｖｅ１、Ｖｅ２について、それぞれ、更新ビットマップのグループ３４０ｂ、３４０ｃ、３４０ｄ１、３４０ｄ２、３４０ｅ１、３４０ｅ２が記録される。図２３に示す記憶システムでは、例えば、正記憶サブシステム１００ａに障害が発生した場合、論理ボリュームＶａ１の４つの副ボリュームＶｂ、Ｖｃ、Ｖｄ１、Ｖｅ１のうち、任意の２つの論理ボリュームにより、迅速に、新リモートコピーペアを形成することができる。任意の２つの論理ボリュームについて記録された更新ビットマップを用いて、任意の２つの論理ボリューム間の差分ビットマップを作成することができるからである。また、正記憶サブシステム１００ａに障害が発生した場合に、どの副ボリュームを用いて新リモートコピーペアを形成するかを予め決めておく必要がない。従って、ユーザは、障害の状況等に応じて、障害発生後に、柔軟に新リモートコピーペアを形成することができる。
【００９８】
・他の変形例：
上記実施例において、ライト区分の区分期間Ｔは予め定められているが、区分期間Ｔの定め方はこれに限られない。例えば、区分期間Ｔを動的に定めても良い。または、正ホスト計算機２００ａや管理計算機からの指示に従って区分期間Ｔを定めても良い。ライト要求が送信されてくる頻度が大きい場合に、区分期間Ｔが長すぎると、１つのライト区分に大量の変更が記録されることなる。この結果、障害発生時に、新正ボリュームと新副ボリュームとの間で、コピーすべき差分データの量が大きくなってしまう。一方で、副ボリューム間に生じているリモートコピーの進捗度の差が大きい場合に、区分期間Ｔが短すぎると、障害時において、差分ビットマップが作成不可能になる可能性が高くなる。区分期間Ｔは、ライト要求が送信されてくる頻度や、各副ボリューム間に生じているリモートコピーの進捗度の差などを考慮して定められる。
【００９９】
１つの副ボリュームあたりの更新ビットマップの数は、実施例における３つに限られるものではない。更新ビットマップを格納するメモリ１１４の容量や、副ボリューム間に生じて得るリモートコピーの進捗度の差を考慮して、任意の数とすることができる。また、更新ビットマップの数は、１つであっても機能する。例えば、更新ビットマップが１つであっても、現在記録されているライト区分以前のライト区分については確定していることが解るからである。差分ビットマップを作成する際に、進捗が遅れている方の旧副ボリュームについては、未確定の差分ビットマップしか用いない。従って、他の副ボリュームより進捗が遅れることが確実な副ボリュームについては、１つの更新ビットマップだけで良い場合が考えられる。
【０１００】
ライト区分ごとに、コピー処理の履歴を残すことができる仕組みは、実施例における更新ビットマップに限られるものではない。例えば、ライト区分ごとに、更新されたデータの先頭アドレスとデータの大きさを、ログに記録しておくこととしても良い。ただし、更新ビットマップは、１ビットのデータＢＤの集合であるので、比較的少ないデータ量で履歴情報を残すことができる利点がある。もちろん、更新ビットマップにおいて、データ変更の有無が記録されるサブ記憶領域の単位は、実施例のようなトラックＴＲ単位に限られない。論理ボリュームが、論理ブロックの集合としてＬＢＡ（logical block address）により管理されている場合には、１または複数の論理ブロックを１つの単位として、更新ビットマップを記録しても良い。
【０１０１】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【図面の簡単な説明】
【０１０２】
【図１】本実施例に係る記憶システムを含む計算機システムの一構成例を模式的に示す説明図である。
【図２】記憶サブシステムの構成を模式的に示す説明図である。
【図３】正記憶サブシステム１００ａのメモリ１１４ａの内部構成を示す概念図である。
【図４】副記憶サブシステムのメモリの内部構成を示す概念図である。
【図５】ペア情報の内容を示す概念図である。
【図６】カウント情報の内容を示す概念図である。
【図７】更新ビットマップの内容を示す概念図である。
【図８】ビットマップ管理情報の内容を示す概念図である。
【図９】コピー情報管理テーブルの内容を示す概念図である。
【図１０】本実施例におけるリモートコピー関連処理の概要を示す説明図である。
【図１１】コピー情報の一例を概念的に示す説明図である。
【図１２】ＢＭマーカの一例を概念的に示す説明図である。
【図１３】ライト要求処理の処理ルーチンを示すフローチャートである。
【図１４】ライト区分管理処理の処理ルーチンを示すフローチャートである。
【図１５】非同期書き込み処理の処理ルーチンを示すフローチャートである。
【図１６】非同期送信処理の処理ルーチンを示すフローチャートである。
【図１７】コピー情報処理の処理ルーチンを示すフローチャートである。
【図１８】ＢＭマーカ処理の処理ルーチンを示すフローチャートである。
【図１９】ペア形成処理の処理ルーチンを示すフローチャートである。
【図２０】差分情報の作成可否について説明するための表である。
【図２１】ペア形成処理の概要を示す説明図である。
【図２２】第１変形例に係る記憶システムの構成を模式的に示す説明図である。
【図２３】第２変形例に係る記憶システムの構成を模式的に示す説明図である。
【符号の説明】
【０１０３】
２０...コピー情報
２０同様...コピー情報
２１...属性情報
２２...ライト番号
２３...ライト区分番号
２４...ライトデータ
３０...ＢＭマーカ
３１...属性情報
３２...ライト番号
３３...ライト区分番号
１００、１００ａ〜１００ｅ...記憶サブシステム
１１０...制御部
１１１〜１１０...入出力アダプタ
１１４...メモリ
１１５、１１６...ＣＰＵ
１１７〜１１９...ディスクアダプタ
１２０...記憶部
１２１...ディスク装置
２００ａ〜２００ｃ...ホスト計算機
２１０...ペア情報
２２０...カウント情報
２３０...制御プログラム
２３１...リード／ライトモジュール
２３２...正側リモートコピーモジュール
２３３...ライト区分管理モジュール
２３４...区分決定モジュール
２３５...区分情報送信モジュール
２４０...キャッシュ領域
３１０...ペア情報
３２０...ビットマップ管理情報
３３０...コピー情報管理テーブル
３４１〜３４１...更新ビットマップ
３５０...制御プログラム
３５１...副側リモートコピーモジュール
３５２...ビットマップ作成モジュール
３５３...ペア形成モジュール
３５４...差分情報作成モジュール
３５５...可否判断モジュール
３５６...ペア同期モジュール
３６０...キャッシュ領域
５００...差分ビットマップ
１０００...記憶システム
２０００...計算機システム
ＪＮＬ１、ＪＮＬ２...ジャーナルボリューム
Ｖａ〜Ｖｃ、Ｖｄ１、Ｖｄ２、Ｖｅ１、Ｖｅ２...論理ボリューム
【図１】
0004773788.tif 000002
【図２】
0004773788.tif 000003
【図３】
0004773788.tif 000004
【図４】
0004773788.tif 000005
【図５】
0004773788.tif 000006
【図６】
0004773788.tif 000007
【図７】
0004773788.tif 000008
【図８】
0004773788.tif 000009
【図９】
0004773788.tif 000010
【図１０】
0004773788.tif 000011
【図１１】
0004773788.tif 000012
【図１２】
0004773788.tif 000013
【図１３】
0004773788.tif 000014
【図１４】
0004773788.tif 000015
【図１５】
0004773788.tif 000016
【図１６】
0004773788.tif 000017
【図１７】
0004773788.tif 000018
【図１８】
0004773788.tif 000019
【図１９】
0004773788.tif 000020
【図２０】
0004773788.tif 000021
【図２１】
0004773788.tif 000022
【図２２】
0004773788.tif 000023
【図２３】
0004773788.tif 000024