(57)【要約】【課題】第１の記憶装置から遠距離に設置された第３の記憶装置へのデータのコピーが定期的にしか行われないため、第１の記憶装置と第１の記憶装置から近距離に設置された第２の記憶装置が同時に障害になった場合に失う更新データ大きくなる。【解決手段】第１の記憶装置に二つの記憶領域を作成し、第１の記憶装置が有する第１の記憶領域から第２の記憶装置が有する記憶領域に対しては同期リモートコピーを行い、第１の記憶装置が有する第２の記憶領域から第３の記憶装置が有する記憶領域に対しては非同期リモートコピーを行う。また、第一の記憶装置にアクセスを行う計算機に第１の記憶装置が有する両記憶領域にミラーリングする。【選択図】  図２
2005062928.tif 000002
【特許請求の範囲】
【請求項１】
計算機及び記憶装置を有するシステムにおいて、
前記計算機が前記記憶装置へデータを二重化して複数の記憶領域へ書き込み、
前記記憶装置は、前記二重化して書き込まれた前記複数の記憶領域のうち第一の記憶領域へのデータ更新の内容を該記憶装置と接続される第二の記憶装置へ、該記憶領域への前記計算機の前記データ更新の要求が完了する前に転送し、
前記記憶装置は、前記二重化して書き込まれた前記複数の記憶領域のうち第二の記憶領域への前記データ更新の内容を該記憶装置と接続される第三の記憶装置へ、該記憶領域への前記計算機の前記データ更新の要求の完了後に転送することを特徴とする計算機システム。
【請求項２】
前記記憶装置は、前記第二の記憶装置との間の接続に異常が発生した場合は、前記計算機の前記第一の記憶領域及び前記第二の記憶領域のデータの更新要求を受け付けないことを特徴とする請求項１記載の計算機システム。
【請求項３】
前記記憶装置は、前記第二の記憶装置からデータを受信して前記第一の記憶領域に格納されていたデータを再構成することを特徴とする請求項２記載の計算機システム。
【請求項４】
前記記憶装置は、前記第三の記憶装置からデータを受信して前記第一の記憶領域に格納されていたデータを再構成することを特徴とする請求項２記載の計算機システム。
【請求項５】
第一のサイト、第二のサイト及び第三のサイトを有するシステムにおいてデータを複製する方法であって、
各サイトは計算機及び記憶装置を有し、
前記第一のサイトでデータを二重化して第一及び第二の記憶領域へ保存し、
前記第一の記憶領域の更新データを前記第二のサイトへ同期リモートコピーで転送し、
前記第二の記憶領域の更新データを前記第三のサイトへ非同期リモートコピーで転送することを特徴とするデータの複製方法。
【請求項６】
前記第一のサイトに障害が発生した場合に、
前記第二のサイトに含まれる計算機で前記第一のサイトに含まれる計算機で行われていた処理を継続し、
前記第二のサイトが有する記憶装置の記憶領域の更新データを前記第三のサイトへ転送することを特徴とする請求項５記載のデータ複製方法。
【請求項７】
前記第一のサイトが復旧した場合、前記第二のサイトの計算機で実行されていた処理を前記第一のサイトの計算機が継続し、前記第二のサイトの記憶装置に格納されていたデータを前記第一のサイトが有する記憶装置へ転送し、前記第一のサイトは、前記二重化、前記同期リモートコピー及び前記非同期リモートコピーの処理を再開することを特徴とする請求項６記載のデータ複製方法。
【請求項８】
前記第一のサイトが復旧した場合、前記第二のサイトの計算機で実行されていた処理を前記第一のサイトの計算機が継続し、前記第三のサイトの記憶装置に格納されていたデータを前記第一のサイトが有する記憶装置へ転送し、前記第一のサイトは、前記二重化、前記同期リモートコピー及び前記非同期リモートコピーの処理を再開することを特徴とする請求項６記載のデータ複製方法。
【請求項９】
前記第一のサイトに障害が発生した場合に、前記第三のサイトに含まれる計算機で前記第一のサイトに含まれる計算機で行われていた処理を継続し、
前記第二のサイトが有する記憶装置に格納されるデータを前記第三のサイトへ転送して前記第二及び第三のサイトが有する記憶装置のデータの内容を一致させ、前記第三のサイトの記憶装置へのデータ更新の内容を前記第二のサイトの記憶装置へ転送することを特徴とする請求項５記載のデータ複製方法。
【請求項１０】
前記第一のサイトに障害が発生した場合に、前記第三のサイトに含まれる計算機で前記第一のサイトに含まれる計算機で行われていた処理を継続し、
前記第三のサイトの記憶装置へのデータ更新の内容を前記第二のサイトの記憶装置へ転送することを特徴とする請求項５記載のデータ複製方法。
【請求項１１】
前記第一のサイトが復旧した場合、前記第三のサイトの計算機で実行されていた処理を前記第一のサイトの計算機が継続し、前記第三のサイトの記憶装置に格納されていたデータを前記第一のサイトが有する記憶装置へ転送し、前記第一のサイトは、前記二重化、前記同期リモートコピー及び前記非同期リモートコピーの処理を再開することを特徴とする請求項１０記載のデータ複製方法。
【請求項１２】
前記第一のサイトが復旧した場合、前記第三のサイトの計算機で実行されていた処理を前記第一のサイトの計算機が継続し、前記第二のサイトの記憶装置に格納されていたデータを前記第一のサイトが有する記憶装置へ転送し、前記第一のサイトは、前記二重化、前記同期リモートコピー及び前記非同期リモートコピーの処理を再開することを特徴とする請求項１０記載のデータ複製方法。
【請求項１３】
計算機及び記憶装置を有し、
前記計算機は、前記記憶装置の第一の記憶領域へデータベースのログを書き込み、前記記憶装置の第二の記憶領域へデータベースのデータを格納し、
前記記憶装置は、前記第一の記憶領域への更新データ及び前記第二の記憶領域への更新データを前記記憶装置と接続される第二の記憶装置へ同期リモートコピーで転送し、
前記計算機は、前記ログを該計算機と接続された第二の計算機へ転送することを特徴とする計算機システム。
【請求項１４】
第一、第二及び第三のサイトを有するシステムにおけるデータ複製方法であって、
前記第一のサイトが有する計算機が、前記第一のサイトの記憶装置の第一の記憶領域へデータベースのログを書き込み、前記第一のサイトの記憶装置の第二の記憶領域へデータベースのデータを格納し、
前記記憶装置が、前記第一の記憶領域への更新データ及び前記第二の記憶領域への更新データを前記第二のサイトへ同期リモートコピーで転送し、
前記計算機が、前記ログを前記第三のサイトへ転送することを特徴とするデータ複製方法。
【請求項１５】
前記第一のサイトに障害が発生した場合、前記第二のサイトに格納された前記ログと前記第三のサイトに格納された前記ログの内容を一致させて、前記第二のサイトが有する計算機で前記第一のサイトの計算機で実行していた処理を継続することを特徴とする請求項１４記載のデータ複製方法。
【請求項１６】
前記第一のサイトに障害が発生した場合、前記第二のサイトに格納された前記ログと前記第三のサイトに格納された前記ログの内容を一致させて、前記第三のサイトが有する計算機で前記第一のサイトの計算機で実行していた処理を継続することを特徴とする請求項１４記載のデータ複製方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置を含んだ情報処理システムに関し、さらに詳しくは複数の情報処理システム間で記憶装置に格納されたデータを転送する技術に関する。
【０００２】
【従来の技術】
記憶装置を有する情報処理システムにおいて電源障害や天災等によって記憶装置に障害が発生した場合、当該情報処理システムを使用する業務が一時的に停止したり、最悪の場合、記憶装置に格納されたデータが失われることがある。このような事態を回避するために、当該情報処理システムとは異なる遠隔地に用意された記憶装置に、当該情報処理装置の記憶装置に格納されたデータを転送して複製する技術（以下「リモートコピー」と称する）が存在する。
【０００３】
リモートコピーには同期リモートコピー及び非同期リモートコピーの二種類が存在し、各々長所と短所がある。具体的には、同期リモートコピーでは、情報処理システムの記憶装置は、情報処理システムの計算機からの書き込み要求があった場合、遠隔地に存在する記憶装置にその書き込み要求に付随するデータの転送が完了した後に、その書き込み要求に対する応答を計算機に行う。したがって、同期リモートコピーでは障害によるデータ消失が少ないが、記憶装置間の回線遅延が増加すると計算機と記憶装置間のＩ／Ｏ性能が悪化する。
【０００４】
一方、非同期リモートコピーでは、情報処理システムの記憶装置は、書き込み要求に対する計算機への返答と書き込み要求に付随するデータの遠隔地への転送とを独立したタイミングで実施する。したがって、非同期リモートコピーは記憶装置間の距離が長くても性能低下を招きにくいが、データ消失の可能性は同期リモートコピーより高くなる。
【０００５】
近年、双方のリモートコピーの短所を補うために、複数の情報処理システム（以下「サイト」）を用いたリモートコピーの技術が利用され始めている。
【０００６】
例えば、特許文献１では、第一のサイトが有する記憶装置から近距離にある第二のサイト（第二の記憶装置を含む）及び第一のサイトから遠距離の第三のサイト（第三の記憶装置を含む）を含むシステムが開示されている。そして、本システムでは、二つのモードが交互に実行される。
【０００７】
具体的には、第一のモードは、第一の記憶装置から第二の記憶装置へ同期リモートコピーが行われ、さらにリモートコピーされたデータは第二の記憶装置内で複製される。尚、このモードでは、第二の記憶装置から第三の記憶装置に対するリモートコピーは行われない。
【０００８】
一方、第二のモードでは、第一の記憶装置から第二の記憶装置への同期リモートコピーを継続しつつ、第二の記憶装置から第三の記憶装置への非同期リモートコピーが行われる。ただし、このモードでは、第二の記憶装置内でのデータの複製は中止されている。
【０００９】
また、非特許文献１でも、第一のサイトが有する記憶装置から近距離にある第二のサイト（第二の記憶装置を含む）及び第一のサイトから遠距離の第三のサイト（第三の記憶装置を含む）を含むシステムが開示されている。そして、本システムでは、第一の記憶装置から第三の記憶装置へのコピーを行うために二つのモードが交互に実行される。
【００１０】
具体的には、常に第一の記憶装置から第二の記憶装置へ同期リモートコピーが行われている。又、第一のモードでは、第一のサイトの計算機が書き込んだデータが第一の記憶装置内で複製される。尚、このモードでは、第一の記憶装置から第三の記憶装置に対するリモートコピーは行われない。
【００１１】
一方、第二のモードでは、第一の記憶装置から第三の記憶装置への非同期リモートコピーが行われる。ただし、このモードでは、第一の記憶装置内でのデータの複製は中止されている。
【００１２】
【特許文献１】
米国特許第６２０９００２号
【非特許文献１】
Ｃｌａｕｓ  Ｍｉｋｋｅｌｓｅｎほか，”Ａｄｄｒｅｓｓｉｎｇ  Ｆｅｄｅｒａｌ  Ｇｏｖｅｒｎｍｅｎｔ  Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｗｉｔｈ  Ｈｉｔａｃｈｉ  Ｆｒｅｅｄｏｍ  Ｓｔｏｒａｇｅ”（発行元  ＨＩＴＡＣＨＩ  ＤＡＴＡ  ＳＹＳＴＥＭＳ、２００２年１１月発行）
【００１３】
【発明が解決しようとする課題】
特許文献１及び非特許文献１に開示された技術では、第三の記憶装置へのデータのコピーが定期的にしか行われないため、第一の記憶装置と第二の記憶装置が同時に障害になった場合に失われるデータが多くなる可能性がある。
本発明の目的は、第一の記憶装置と第二の記憶装置が同時に障害になった場合に失うデータ量を少なくする情報処理システムを提供することである。
【００１４】
【課題を解決するための手段】
本発明の一実施形態として、複数のサイトを有するシステムで、第一のサイトの複数の記憶領域にデータを二重化して格納し、そのうちの第一の記憶領域へのデータ更新の内容を第二のサイトへ同期リモートコピーで転送し、そのうちの第二の記憶領域へのデータ更新の内容を第三のサイトへ非同期リモートコピーを用いて転送する構成とする。
【００１５】
更に、第一のサイトが障害等で使用不能となった場合に、第二のサイト又は第三のサイトで第一のサイトが行っていた処理を継続し、かつ他のサイトへ更新データを送信することで、データの複製を行う。
【００１６】
更に、第一のサイトが復旧した場合、第二のサイト又は第三のサイトから第一のサイトへデータを転送し、その後、第一のサイトで同期及び非同期のリモートコピーを再開する構成も考えられる。
【００１７】
【発明の実施の形態】
図１は、本発明を適用した情報システムの第一の実施形態を示す図である。
情報システムは、３つのサイト、具体的には、Ｐｒｉｍａｒｙサイト１００、Ｓｙｎｃサイト１７０及びＡｓｙｎｃサイト１８０を有する。各々のサイトは通信線１６０を介して相互に接続されている。尚、上述したように、サイトとは、計算機及び計算機と接続される記憶装置から構成される情報処理システムである。尚、サイト内の構成は以下の実施形態に限定されないのは言うまでもない。
【００１８】
Ｐｒｉｍａｒｙサイト１００は通常時にユーザが使用するサイトで、その計算機では、ユーザが使用するアプリケーションが実行される。
Ｓｙｎｃサイト１７０は、Ｐｒｉｍａｒｙサイト１００と地理的に異なる場所に存在するサイトである。Ａｓｙｎｃサイト１８０は、Ｐｒｉｍａｒｙサイト１００及びＳｙｎｃサイト１７０と地理的に異なる場所に存在するサイトである。尚、Ｐｒｉｍａｒｙサイト１００とＳｙｎｃサイト１７０との間の距離は、Ｐｒｉｍａｒｙサイト１００とＡｓｙｎｃサイト１８０との間の距離よりも短いとして、以下説明する。
【００１９】
Ｐｒｉｍａｒｙサイト１００は、ホスト１１０、記憶装置１２０及びチャネルエクステンダ１５０を有する情報処理システムである。ホスト１１０は記憶装置１２０に対してデータの書き込み又は読み出し（以下「Ｉ／Ｏ」）を行う計算機である。記憶装置１２０は、ホスト１１０が用いるデータを保存する装置であり、ホスト１１０からのＩ／Ｏを処理する。尚、他のサイトも同様の構成を有する。
【００２０】
ホスト１１０と記憶装置１２０は通信線１３０を通して接続されている。ここで通信線１３０としてはファイバーチャネルやＡＴＭ、イーサネット（登録商標）等が考えられるが、ホスト１１０と記憶装置１２０の間でＩ／Ｏ処理を行うことができる媒体であればこれ以外であってもよい。
【００２１】
又、記憶装置１２０とチャネルエクステンダ１５０は通信線１４０を介して接続されている。通信線１４０はファイバーチャネルで構成することが考えられるが、前述の目的を果たすことができればこれ以外であってもよい。
【００２２】
チャネルエクステンダ１５０は、ネットワーク１４０を経由して記憶装置１２０から受信した情報を通信線１６０を経由して他サイトへ転送したり、通信線１６０を経由して他サイトから受信した情報を通信線１４０を通して記憶装置１２０へ転送するための装置である。尚、通信線１４０と通信線１６０が直接結合可能な場合は、チャネルエクステンダ１５０は存在しなくてもよい。
【００２３】
ホスト１１０は、ＯＳやアプリケーション等のプログラムを実行するＣＰＵ１１１、メモリ１１２、通信線１３０を用いて記憶装置１２０とのＩ／Ｏを行うためのアダプタＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）１１３を有し、これらは内部ネットワーク１１４で相互結合されている。ここで、ＣＰＵ１１１やメモリ１１２、ＨＢＡ１１３はホスト１１０内に複数存在してもよく、さらにホスト１１０はこれ以外の装置を有しても良い。また、内部ネットワーク１１４はＩ／Ｏバスやメモリバスで構成されることが考えられるが、本ネットワークに接続された機器を互いに通信させることが出来ればこれ以外の構成であってもよい。
【００２４】
記憶装置１２０は、Ｉ／Ｏを処理したり、後述するアクセス制御やリモートコピーを実現するためのプログラムを実行するＣＰＵ１２１、メモリ１２２、ＣＨＡ１２３、ＲＣＡ１２４及び複数の記憶デバイス１２５を有する。
【００２５】
ＣＨＡ１２３は、記憶装置１２０が通信線１３０と接続するためのアダプタである。
ＲＣＡ１２４（Ｒｅｍｏｔｅ  Ｃｏｐｙ  Ａｄａｐｅｒ）は、記憶装置１２０から通信線１４０及びチャネルエクステンダ１５０を介して他サイトの記憶装置と通信するためのアダプタである。
なお、ＣＨＡ１２３とＲＣＡ１２４は一つのアダプタとして存在してもよく、また、通信線１３０、通信線１４０及び通信線１６０は互いが同一の通信線であっても良い。
【００２６】
記憶デバイス１２５は、ホスト１１０から転送されたデータを保存するためのデバイスであり、例えばＨＤＤ、光磁気ディスク、ＣＤ−ＲＯＭ、メモリディスク、ＦｌａｓｈＲＯＭ等が考えられるがこれ以外のものであってもよい。また、高信頼化のためにＲＡＩＤのような方法で複数の記憶デバイスをまとめて一つの仮想的な記憶デバイスとしてもよい。更に、前述の仮想的な記憶デバイスや元の記憶デバイスの領域を分割した後にこれを論理的な記憶デバイスとして取り扱っても良い。なお、ここには図示していないが、記憶装置１２０は記憶デバイス１２５に格納されるデータをキャッシングするためのキャッシュメモリを有してもよい。
また、図１では、通信線１６０はスター型接続の構成であるが、各サイト間で通信可能であればこれ以外のトポロジーを採用してもよい。
【００２７】
図２は、各サイトが有するプログラムやデータの構成を示す図である。これらのプログラムやデータは、それぞれの装置のメモリに格納される。尚、これらのプログラムによって各装置のＣＰＵで実行される処理は、専用のハードウエアによって実現されても良い。
【００２８】
Ｐｒｉｍａｒｙサイト１００のホスト１１０は、アプリケーションプログラム（以下「アプリケーション」）２０１、システム設定プログラム２１１、ミラープログラム２１２及びミラー設定情報２１３を有する。
アプリケーション２０１は、具体的にはデータベースプログラムやＷｅｂサーバープログラムである。ホスト１１０の使用者は、アプリケーション２０１をＣＰＵ１１１で実行させることで、記憶装置１２０にデータを書き込むことができる。尚、アプリケーション２０１は複数あってもよい。
【００２９】
ミラープログラム２１２は、記憶装置１２０がホスト１１０に提供する一つ以上の記憶領域を用いて、ホスト１１０がデータの複製（以下「ミラーリング」）を記憶装置１２０に作成する際にＣＰＵ１１０で実行されるプログラムである。ミラー設定情報２１３には、ミラーリングを行うために必要な設定情報が含まれる。
ここで、記憶領域とは、記憶デバイス１２５に含まれる一つ以上のブロックまたはトラック等の単位から構成される領域であり、例としてはボリュームやパーティション、スライスがある。
【００３０】
Ｐｒｉｍａｒｙサイト１００の記憶装置１２０は、アクセス制御プログラム２２１、同期リモートコピープログラム２２２、非同期リモートコピープログラム２２３及び記憶領域管理プログラム２２４を有する。
記憶領域管理プログラム２２４は、記憶装置１２０内の記憶デバイス１２５をホスト１１０がアクセス対象とする記憶領域として提供するための設定や管理を行う際にＣＰＵ１２１で実行されるプログラムである。ここで、記憶領域管理プログラム２２４は、記憶デバイス１２５の利用されていない領域の一部または全てを用いてホスト１１０に対して記憶領域を提供するための設定を記憶装置１２０が行ったり、既に設定された記憶領域を削除して再び利用されていないものとする設定を行ったり、既に設定された記憶領域に対してホスト１１０からどのような識別子でアクセスさせるかについての設定（パス設定）を行う際に実行される。
ここで、図２の記憶領域２２５Ａと記憶領域２２５Ｂは、記憶領域管理プログラム２２４に基づいて作成された記憶領域である。
【００３１】
なお、ホスト１１０が記憶領域にアクセスするために用いる識別子を外部記憶領域識別子と呼ぶ。この外部記憶領域識別子の例として、ファイバーチャネルを用いたシステムの場合はポート番号及びＬＵＮの組が、ＥＳＣＯＮ（登録商標）やＦＩＣＯＮを用いた場合はコントロールユニット番号及びデバイス番号の組が、ＩＰネットワークを用いる場合はＩＰアドレスやポート番号が考えられるが、ホスト１１０が記憶領域にアクセスするための識別子として用いることが出来るものであればこれ以外の情報又は情報の組合せが識別子として用いられても良い。
【００３２】
アクセス制御プログラム２２１は、記憶装置１２０内の記憶領域に対するホスト１１０からのアクセス要求を制御する際にＣＰＵ１２１で実行されるプログラムである。
【００３３】
同期リモートコピープログラム２２２は、記憶装置１２０内の記憶領域と記憶装置１２０とは別な記憶装置内に存在する記憶領域との間で同期リモートコピーを行う際に、ＣＰＵ１２１で実行されるプログラムである。以後の説明では、コピー元となる記憶領域を正記憶領域、コピー先となる記憶領域を副記憶領域と呼ぶことにする。また、正記憶領域を有する記憶装置を正記憶装置、副記憶領域を有する記憶装置を副記憶装置と呼ぶことにする。
【００３４】
同期リモートコピーが実行される際、二つの記憶領域のデータおよびコピーの状況を示したり操作するために、リモートコピーのペアである正副記憶装置は、複数のペア状態（Ｓｉｍｐｌｅｘ、Ｉｎｉｔｉａｌ−Ｃｏｐｙｉｎｇ、Ｄｕｐｌｅｘ、Ｓｕｓｐｅｎｄ及びＤｕｐｌｅｘ−Ｐｅｎｄｉｎｇ）を示す情報を管理する。尚、ペア状態の情報には、お互いの記憶領域がリモートコピーのペア関係であることを示す情報も含まれる。
【００３５】
Ｓｉｍｐｌｅｘ状態は、正副の記憶領域間での同期リモートコピーが開始されていない状態である。Ｄｕｐｌｅｘ状態は、同期リモートコピーが開始され、後述する初期化コピーも完了して正副の記憶領域の内容が同一となった状態である。同期リモートコピーの場合、正記憶領域に対して行われた書き込みの内容が副記憶領域に対しても反映された後に、書き込みを行ったホスト１１０に対して正常完了のメッセージが返される。従って、書き込み途中の記憶領域を除けば、正記憶領域のデータと副記憶領域のデータの内容は同じとなる。
【００３６】
ただし、例えば記憶領域毎に一意な識別子が保存される場合等では、記憶領域の特定の部分について正副の記憶領域の内容が同一でない場合があっても良いものとする。なお、こうしたデータの同一性を、以降の説明では巨視的に同一であるという表現する。また、ペアがＤｕｐｌｅｘ状態中に、例えば正副記憶領域でのデータ同一性を保持するため等の目的で副記憶領域に対する書き込み要求を拒否あるいはこれに類する処理を行っても良いものとする。
【００３７】
Ｉｎｉｔｉａｌ−Ｃｏｐｙｉｎｇ状態は、Ｓｉｍｐｌｅｘ状態からＤｕｐｌｅｘ状態へ遷移するまでの中間状態であり、この期間中に、必要ならば正記憶領域から副記憶領域への初期化コピー（正記憶領域に既に格納されていたデータのコピー）が行われる。初期化コピーが完了し、Ｄｕｐｌｅｘ状態へ遷移するために必要な処理が終わった段階でペア状態はＤｕｐｌｅｘとなる。
【００３８】
Ｓｕｓｐｅｎｄ状態は、正記憶領域に対する書き込みの内容を副記憶領域に反映させない状態である。この状態では、正副の記憶領域のデータの巨視的な同一性は保障されなくなる。オペレータやホスト、又は記憶装置を管理する計算機（図示せず）の指示を契機に、ペア状態は、他の状態からＳｕｓｐｅｎｄ状態へ遷移する。それ以外に、正記憶領域から副記憶領域への同期リモートコピーを行うことが出来なくなった場合に自動的にペア状態がＳｕｓｐｅｎｄ状態に遷移することが考えられる。
【００３９】
以後の説明では、後者の場合を障害Ｓｕｓｐｅｎｄ状態と呼ぶことにする。障害Ｓｕｓｐｅｎｄ状態となる代表的な原因としては、正副の記憶領域の障害、正副の記憶装置の障害、正副間の通信路障害が考えられる。なお、Ｄｕｐｌｅｘ状態の副記憶装置で副記憶領域に対する書き込み要求を拒否またはそれに類する処理を行っていた場合は、副記憶装置は、障害Ｓｕｓｐｅｎｄ状態で書き込み処理を許可してもよい。さらに正副記憶装置は、Ｓｕｓｐｅｎｄ状態となった以降の正副の記憶領域に対する書き込み位置を記録してもよい。
【００４０】
また、正記憶装置は、障害Ｓｕｓｐｅｎｄ状態時に正記憶領域に対する書き込みを拒否しても良い。こうすると、正記憶装置と副記憶装置との間の通信路が切断された後でも正副の記憶装置のデータが同一であるため、切断後に正記憶装置に障害が発生した場合でもデータ消失を防ぐことが出来る。
【００４１】
Ｄｕｐｌｅｘ−Ｐｅｎｄｉｎｇ状態は、Ｓｕｓｐｅｎｄ状態からＤｕｐｌｅｘ状態に遷移するまでの中間状態である。この状態では、正記憶領域と副記憶領域のデータの内容を巨視的に一致させるために、正記憶領域から副記憶領域へのデータのコピーが実行される。正副記憶領域のデータの同一性を確保できた後にペア状態はＤｕｐｌｅｘとなる。なお、Ｄｕｐｌｅｘ−Ｐｅｎｄｉｎｇ状態におけるデータのコピーは、Ｓｕｓｐｅｎｄ状態で正副記憶装置が記録した書き込み位置を利用して更新が必要な部分だけをコピーする差分コピーが用いられても良い。
【００４２】
なお、以上の説明ではＩｎｉｔｉａｌ−Ｃｏｐｙｉｎｇ状態とＤｕｐｌｅｘ−Ｐｅｎｄｉｎｇ状態は別々な状態としたが、これらをまとめて一つの状態として管理装置の画面に表示したり、状態を遷移させても良い。
【００４３】
非同期リモートコピープログラム２２３は、記憶装置１２０内の記憶領域と記憶装置１２０とは別な記憶装置内に存在する記憶領域との間で非同期リモートコピーを実行する際に、ＣＰＵ１２１で実行されるプログラムである。既に説明したように、非同期リモートコピーでは、Ｄｕｐｌｅｘ状態の副記憶領域に対する書き込みデータの反映は、記憶装置１２０のホスト１１０に対する書き込みの正常完了メッセージの送信とは無関係（非同期）に行われる。
【００４４】
非同期リモートコピーの場合、正記憶領域から副記憶領域へのデータコピーの方法として、以下の方法がある。
例えば、正記憶装置が、データが書き込まれた記憶領域のアドレスを含んだ制御情報及び書き込まれたデータの組（以下「ログエントリ」）を、データの書き込みの度に作成し、これを副記憶装置へ転送し、副記憶領域へ反映させる方法がある。さらにこの発展形として、ログエントリの制御情報に書き込みの時間順序を示す情報を含め、副記憶領域へログエントリを反映させる際にはこの時間順序を示す情報を利用して時間順序どおりに反映する方法がある。
【００４５】
また、本方法の効率的な方法として、正記憶領域の同一領域に対する書き込みが連続して発生した場合には、正記憶装置は、途中の書き込みに対するログエントリは副記憶装置へ転送せず、最後の書き込みに対するログエントリのみを転送する方法がある。また、正記憶装置がキャッシュメモリを有する場合、正記憶装置がキャッシュメモリ上に書き込まれたデータを示すポインタをログエントリの制御情報に付加し、キャッシュメモリ上のデータが別な書き込み処理によって更新されるまではログエントリ作成用のデータコピーを遅延させる方法もある。
【００４６】
非同期リモートコピーが実行される際にも、正副記憶装置は、ペア状態（Ｓｉｍｐｌｅｘ、Ｉｎｉｔｉａｌ−Ｃｏｐｙｉｎｇ、Ｄｕｐｌｅｘ、Ｓｕｓｐｅｎｄ、Ｄｕｐｌｅｘ−Ｐｅｎｄｉｎｇ及びＳｕｓｐｅｎｄｉｎｇ）を管理する。Ｓｉｍｐｌｅｘ、Ｉｎｉｔｉａｌ−Ｃｏｐｙｉｎｇ、Ｓｕｓｐｅｎｄ及びＤｕｐｌｅｘ−Ｐｅｎｄｉｎｇ状態については同期リモートコピーと同様である。
【００４７】
Ｄｕｐｌｅｘ状態も基本的には同期リモートコピーの場合と同じであるが、書き込みデータの副記憶領域への反映が非同期に行われるため、データの同一性は同期リモートコピーとは異なる。
Ｓｕｓｐｅｎｄｉｎｇ状態とは、Ｄｕｐｌｅｘ状態からＳｕｓｐｅｎｄ状態へ遷移するまでの中間状態であり、非同期リモートコピーの場合は、Ｓｕｓｐｅｎｄｉｎｇ状態を経由してＳｕｓｐｅｎｄ状態へ遷移する。尚、この状態で、正副記憶装置は、両記憶装置のメモリで保持されているログエントリを副記憶装置へ反映させる処理を行っても良い。また、同期リモートコピーのＳｕｓｐｅｎｄ状態で述べた正副の記憶領域に対する書き込み位置の記録を行っている場合は、正副記憶装置は、反映できなかったログエントリを書き込み位置の記録に加える。
【００４８】
Ｓｙｎｃサイト１７０の記憶装置２７２は、同期リモートコピープログラム２２２及び非同期リモートコピープログラム２２３を有する。また、図示はしていないが、記憶装置２７２も記憶領域管理プログラム２２４を有し、記憶領域２２５Ｃはこのプログラムに基づいて作成された記憶領域である。なお、記憶装置２７２にはこれ以外のプログラム（例えばアクセス制御プログラム２２１）が含まれていても良い。
【００４９】
Ａｓｙｎｃサイト１８０の記憶装置２８２は、非同期リモートコピープログラム２２３を有する。記憶装置２７２の場合と同様に、記憶装置２８２も記憶領域管理プログラム２２４（図示せず）を有し、記憶領域２２５Ｄは、このプログラムに基づいて作成された記憶領域である。また、記憶装置２８２にはこれ以外のプログラム（例えばアクセス制御プログラム２２１）が含まれていても良い。
【００５０】
ここで、記憶領域２２５Ａ、記憶領域２２５Ｂ、記憶領域２２５Ｃ及び記憶領域２２５Ｄは、リモートコピーで使用される際には、すべて同じ記憶容量であることが望ましい。ただし、リモートコピーを行うことができるのであれば、各記憶領域の容量が異なっていてもよい。
【００５１】
以下、簡単に本実施形態での動作を説明する。尚、以下プログラムが主語になる場合は、各プログラムが格納されている装置のＣＰＵが実際の処理を行っているものとする。更に、プログラム間でデータが遣り取りされる記載は、実際には、計算機で使用されるプログラム間通信（共通のメモリ等を介してプログラムが同一のデータを扱う）が実行されているものとする。
【００５２】
本実施形態では、ホスト１１０上のアプリケーション２０１で生成された書き込み用のデータを、ホスト１１０上のミラープログラム２１２が複製して、記憶装置１２０が有する二つの記憶領域に送信する（ミラーリング）。
【００５３】
Ｐｒｉｍａｒｙサイトの正記憶装置においては、同期リモートコピープログラム２２２が、二つの記憶領域のうち一方の記憶領域を用いてコピー処理を行い、記憶領域に格納されたデータをＳｙｎｃサイトの記憶領域へ同期リモートコピーする。又非同期リモートコピープログラム２２３が、もう一方の記憶領域を用いてコピー処理を行い、もう一方の記憶領域に格納されたデータをＡｓｙｎｃサイトの記憶領域に非同期リモートコピーする。
【００５４】
更に、Ｐｒｉｍａｒｙサイトが被災した場合は、ＳｙｎｃサイトまたはＡｓｙｎｃサイトのどちらかでアプリケーションの処理を再開する。Ｓｙｎｃサイトの場合、同期リモートコピーによってコピーされた記憶領域が用いられる。一方、Ａｓｙｎｃサイトの場合は、非同期リモートコピーによってコピーされた記憶領域が用いられる場合と、さらにＳｙｎｃサイトから記憶領域の差分データをＡｓｙｎｃサイトにコピーしてからアプリケーションを再開する場合がある。
【００５５】
以下、本実施形態における処理の各詳細について説明する。
まず、ホスト１１０のＣＰＵ１１１が実行するミラーリングについて説明する。ＣＰＵ１１１は、ミラープログラム２１２を実行することで、記憶装置１２０が有する二つ以上の記憶領域に同一のデータを格納し、その複数の記憶領域を１つの仮想的な記憶領域（以下「仮想記憶領域」）としてアプリケーションに提供する。
【００５６】
尚、ＰｒｉｍａｒｙサイトとＳｙｎｃサイト間で通信路障害が発生した場合、記憶装置１２０はホスト１１０に対して記憶領域２２５Ａに対する書き込みを拒否することができる。この場合、この拒否通知を受け取ったミラーリングプログラム２１２は、記憶領域２２５Ｂへの書き込みも行わずにアプリケーション２０１に書き込み失敗を通知しても良い。なお、以後の説明ではミラーリングに使用される一つ以上の記憶領域の集合をミラーグループと呼ぶことにする。
【００５７】
図８は、ホスト１１０が仮想記憶領域（ミラーグループから構成される）を管理するためのミラー設定情報２１３の内容を示すブロック図である。
ミラー設定情報２１３は、１つの仮想記憶領域の設定に関する情報を登録するエントリ８１０を仮想記憶領域の数だけ有する。各々のエントリ８１０は、仮想記憶領域のミラーグループに所属する記憶領域に割り当てられている外部記憶領域識別子を登録するフィールド８０１、同期状態情報を登録するフィールド８０２、障害状態を登録するフィールド８０３及び保護設定情報を登録するフィールド８０４を有する。
【００５８】
同期状態情報は、ミラーグループに新たに記憶領域を追加した場合のデータの同期状態を示す情報である。ミラーグループに追加された直後の記憶領域には未だミラーグループに属する記憶領域のデータが複製されていないので、この記憶領域に対する同期状態情報は同期が取れていないことを示す情報となる。その後、既にミラーグループに所属している記憶領域からこの新しい記憶領域へデータのコピーが完了して他の記憶領域のデータと同期が取れた状態になった段階で、この記憶領域に対応する同期状態情報は同期が取れたことを示す情報となる。また、障害状態となった記憶領域に対しても同期が取れていないことを示す情報が設定される。
【００５９】
障害状態情報は、エントリに対応する記憶領域の障害状態を示す情報である。ここで、障害状態には、記憶領域が利用不可能になった状態のほか、同期リモートコピーの障害Ｓｕｓｐｅｎｄ書き込み禁止の設定によって記憶領域が書き込み禁止になった状態も含まれる。
【００６０】
保護設定情報は、ミラーグループに所属するいずれかの記憶領域が同期リモートコピーの障害Ｓｕｓｐｅｎｄ書き込み禁止の設定によって書き込み禁止となった場合に、その記憶領域へのアプリケーション２０１からの更新を拒否することを示す情報である。
【００６１】
図９は、ミラーグループに所属する記憶領域への書き込み処理のフローを示す図である。本処理は、正記憶装置から他サイトへのデータの転送の如何に関わらず、システムの使用者等の指示によって開始される。
ホスト１１０は、アプリケーション２０１で発生した仮想記憶領域へのデータの書き込み要求の処理を開始する（ステップ９０１）。
書き込み要求の処理を開始したら、ホスト１１０は、ミラーグループに所属している各記憶領域に対応するフィールド８０３の障害状態情報をチェックし、障害Ｓｕｓｐｅｎｄ書き込み禁止の設定によって書き込み禁止になっている記憶領域が存在するかどうかチェックする（ステップ９０６、９０７、９０８、９０９）
書込み禁止になっている記憶領域が一つでも存在した場合、ホスト１１０は、アプリケーション２０１に対して書き込みの異常終了を報告し、処理を終了する。なお、報告には障害Ｓｕｓｐｅｎｄ書き込み禁止が異常終了の原因であることをあわせて報告してもよい（ステップ９１０）。
【００６２】
書き込み禁止になっている記憶領域が存在しない場合、ホスト１１０は、ミラーグループに所属する記憶領域を指し示すために用いる変数ｉと書き込みが成功した記憶領域の数を示すために用いる変数ｊの値をゼロに初期化する（ステップ９０２、９１１）。
【００６３】
その後、ホスト１１０は、ミラーグループに所属している各記憶領域に対して、まずフィールド８０３に登録されている障害状態情報をチェックして、障害状態でなければデータの書き込みを行う。また、障害状態であれば変数ｉをインクリメントして次の記憶領域に対する処理へ移る（ステップ９１２、９１３、９０３、９１５）。
【００６４】
ホスト１１０は、ステップ９１５でのデータの書き込み結果をチェックし、書き込み成功ならば変数ｉとｊをインクリメントして次の記憶領域に対する処理へ移る。失敗ならば、当該記憶領域に対応するフィールド８０３の障害状態情報を書き換えて、障害が発生したことを記録する（ステップ９１６、９１４、９１７）。
【００６５】
その後、ホスト１１０は、書き込み失敗の理由が障害Ｓｕｓｐｅｎｄ書き込み禁止によるものならば、障害Ｓｕｓｐｅｎｄ書き込み禁止となっている記憶領域から既に書き込みが完了した記憶領域へ、書き込みの対象となったアドレス領域に格納されたデータのコピーを記憶装置１２０に指示し、ミラーグループに属する記憶領域のデータをデータ書き込み前の状態に戻す。なお、障害Ｓｕｓｐｅｎｄ書込み禁止に遭遇する前に既に更新してしまった記憶領域にコピー先を限定してコピーの効率化を図っても良い（ステップ９１８、９２０）。
【００６６】
ステップ９２０の処理後、ミラープログラム２１２は、アプリケーション２０１に対して書き込みの異常終了を報告し、処理を終了する。なお、報告には障害Ｓｕｓｐｅｎｄ書き込み禁止が原因であることをあわせて報告してもよい（ステップ９２１）。
【００６７】
ステップ９１２でミラーグループに所属する全ての記憶領域に対する処理が終わったと判断したら、ホスト１１０は、変数ｊをチェックして書き込みが正常終了した記憶領域の数が一つ以上存在するか確認する。もし存在すればミラープログラム２１２は、アプリケーション２０１に対して正常終了を報告し、そうでなければ異常終了を報告する（ステップ９１９、９２２、９２３）。
【００６８】
以上の処理を行って、ホスト１１０は、ミラーグループへのデータの更新をする。又、以上の処理を行うことで、ミラープログラム２１２は、副記憶装置の記憶領域２２５Ｃに対して更新データが反映されない記憶領域がミラーグループに存在する場合には、ミラー処理中にアプリケーションに対して書き込み異常終了を返す、即ちミラーグループの他の記憶領域へのデータ更新を行わないことができる。この様な処理を障害保護処理といい、障害保護処理を行う設定を障害保護設定と称する。尚、上述のステップで、障害保護設定を行わない、即ちミラーグループのある記憶領域へのデータの書き込みが許可されなくても、他の記憶領域へのデータの書き込みを許可する構成でも良い。
【００６９】
したがって、ＰｒｉｍａｒｙサイトからＳｙｎｃサイトへの通信路障害等が原因である障害Ｓｕｓｐｅｎｄが発生した後にＰｒｉｍａｒｙサイトが障害停止したとしても、記憶領域２２５Ｃと記憶領域２２５Ｄのデータ内容が同一となる（記憶領域２２５Ａと２２５Ｂの内容の一致が保証されるから）ため、以後に述べる復旧処理で記憶領域２２５Ｃと記憶領域２２５Ｄ間でのリモートコピーのペアを設定を行う際の初期化コピーを省略することができる。
【００７０】
図６は、ホスト１１０における、ミラーグループに新たに記憶領域を追加する場合の処理手順を示す図である。なお、記憶領域の追加指示（外部記憶領域識別子の情報を含む）はホスト１１０の使用者、ホスト１１０上のプログラム、管理計算機からミラープログラム２１２へ行われるが、これ以外の計算機が追加指示をミラープログラム２１２へ出してもよい。また、追加指示はホスト１１０の使用が開始される時点で出されることが考えられるが、本発明はこれに限定されない。
【００７１】
まずホスト１１０は、追加対象である記憶領域に割り振られた外部記憶領域識別子を追加先のミラーグループに対応するエントリ８１０のフィールド８０１に追加する。また、追加したフィールド８０１に対応するフィールド８０２には同期がとれていないことを示す情報を、フィールド８０３には正常状態を示す情報を書き込む（ステップ６０１）。
【００７２】
その後、アプリケーション２０１で書き込み要求が発生した場合、ホスト１１０は、ミラーグループ内の他の記憶領域と追加対象である記憶領域の両方にデータを書き込むようにする。
又、追加された記憶領域と既存のミラーグループに格納されていたデータとが同期が取れるまでは、ホスト１１０は、アプリケーション２０１で読み込み要求が発生した場合は、追加対象である記憶領域ではなく、ミラーグループ内の既に同期状態である記憶領域からデータを読み出す（ステップ６０２）。
【００７３】
その後、ホスト１１０は、ミラーグループ内の既に同期状態である記憶領域から追加対象である記憶領域へのデータコピーを記憶装置１２０へ指示する。なお、データコピーは記憶領域全体を対象とすることが考えられるが、事前にコピーの必要が無い領域がビットマップ等でわかる場合は、当該領域のコピーを行わなくても良い（ステップ６０４）。
追加対象の記憶領域へのデータのコピーの完了後、ホスト１１０は、追加対象の記憶領域のフィールド８０２の情報を同期状態を示す情報に更新する（ステップ６０５）。
【００７４】
その後、アプリケーション２０１で読み込み要求が発生した場合、ホスト１１０は、追加対象である記憶領域も含めたミラーグループ内の既に同期状態である記憶領域からデータを転送する（ステップ６０６）。
【００７５】
次に、本実施形態におけるシステムの同期、非同期リモートコピーの初期設定の処理（以下「初期化処理」）について説明する。なお、本処理はホスト１１０のプログラムに基づいてＣＰＵ１１１で実行されるが、ホスト１１０の管理者が直接記憶装置へ設定情報を入力することで実行されたり、それ以外の計算機によって実行されてもよい。
図３は、初期化処理の処理手順を示す図である。なお、システムの初期状態として、記憶領域２２５Ａは既に作成済み及びパス設定済みで、ミラー設定情報２１３には記憶領域２２５Ａが単独でミラーグループを組むことを示す情報が登録されている状態を想定する。以下、正記憶装置は、図３の左側の処理ステップと右側の処理ステップを並行して行う。
【００７６】
ホスト１１０は、記憶領域２２５Ｂの作成を正記憶装置に指示し、パス設定やアクセス制限設定等の設定を行う。好ましい形態としては、記憶領域２２５Ｂのアクセス制限設定は記憶領域２２５Ａと同じにする。しかし、記憶領域２２５Ｂがホスト１１０からアクセス可能であればこれ以外のアクセス制限設定を行っても良い。
その後、ホスト１１０は、先述した処理手順に従ってミラーグループに記憶領域２２５Ｂを追加する（ステップ３０４）。
【００７７】
その後、正記憶装置は、ホスト１１０の指示に従って非同期リモートコピープログラム２２３の実行を開始し、記憶領域２２５ＢからＡｓｙｎｃサイトに存在する記憶領域２２５Ｄに対して非同期リモートコピーにおける初期化コピーを開始し、そのペア状態がＤｕｐｌｅｘになるまで待つ（ステップ３０５）。
【００７８】
一方、正記憶装置は、ホスト１１０の指示に従って同期リモートコピープログラム２２２を実行して、記憶領域２２５ＡからＳｙｎｃサイトに存在する記憶領域２２５Ｃに対して同期リモートコピーにおける初期化コピーを開始し、ペア状態がＤｕｐｌｅｘになるまで待つ（ステップ３１０）。
その後、正記憶装置は、ステップ３０５とステップ３１０の両方の処理が終わるのを待つ（ステップ３０６）。
【００７９】
尚、上記の処理では、既に作成されている記憶領域２２５Ａを同期リモートコピーの正記憶領域として用いたが、新たに追加した記憶領域２２５Ｂが同期リモートコピーの正記憶領域として用いられても良い。この場合、記憶領域２２５Ａと記憶領域２２５Ｂに対する操作を入れ替えるだけで、後は上述の手順と同様でよい。さらに、本処理の前に予め記憶領域２２５Ｂを作成してミラーグループに登録しておき、ステップ３０２から３０４の処理を省略しても良い。
【００８０】
又、初期化処理におけるホスト１１０からの同期又は非同期リモートコピーの開始指示には、正記憶領域、副記憶領域、正記憶装置、副記憶装置を指定する情報、すなわちリモートコピーのペアを指定する情報が含まれている。あるいは別の実施形態として、ホスト１１０又は管理用の計算機からペアを指定する情報が予め正副記憶装置へ送信され、リモートコピーの開始指示には、そのペアを指定する識別子だけが含まれていても良い。
以上の処理により、本システムにおける同期、非同期リモートコピーの実施（以下「通常運用」）準備が整う。
【００８１】
次に、本実施形態のシステムの通常運用時における動作を説明する。
図４は、システムの動作におけるデータの移動を概念的に示す模式図である。なお、本図において、矢印４０１から矢印４０５はホスト１１０から送信された書き込み要求に対応するデータの流れを示すものである。尚、本図では、既に図３で示した初期化処理が済んでいるとする。
【００８２】
まず、ホスト１１０のアプリケーション２０１で仮想記憶領域のデータの更新が要求されると、ホスト１１０はミラープログラム２１２の実行を開始して、更新用のデータ（以下「更新データ」）の処理を開始する（矢印４０１）。
ホスト１１０は、仮想記憶領域に含まれるミラーグループ全てに更新データを送信するため、更新データを複製して、矢印４０２と矢印４０３のように記憶領域２２５Ａと記憶領域２２５Ｂへ転送する。転送順序は問わない。又、実際のデータの更新の手順は、上述した通りである。
【００８３】
正記憶装置は、記憶領域２２５Ａに対する更新データを受信した場合、更新データを記憶領域２２５Ａに反映した上で、その更新データを記憶領域２２５Ｃに対して転送する。尚、記憶領域２２５Ａへの反映は、実際には正記憶装置が有するキャッシュメモリへの書き込みの完了であっても良い（矢印４０５）。
記憶領域２２５Ｃに対する更新データの反映が終わったら、正記憶装置は、ホスト１１０に対して記憶領域２２５Ａに対する書き込みの正常終了メッセージを返す。
【００８４】
一方、正記憶装置は、記憶領域２２５Ｂに対して更新データが転送された場合、記憶領域２２５Ｂへ更新データを書き込み、ホスト１１０に対して記憶領域２２５Ｂに対する書き込みの正常終了メッセージを返す。その後、正記憶装置は、記憶領域２２５Ｂに対して書き込まれた更新データを、正常終了メッセージと非同期に記憶領域２２５Ｄに対して転送する。（矢印４０４）
記憶領域２２５Ａと記憶領域２２５Ｂの両方に対する更新データの書き込みの書き込み正常終了メッセージを受信したミラープログラム２１２は、アプリケーション２０１に対して書き込み正常終了メッセージを返す。
なお、ホスト１１０から記憶領域２２５Ａ及び記憶領域２２５Ｂへの更新データの転送は、互いに独立なタイミングで行われても良い。
【００８５】
次に、本実施形態において、Ｐｒｉｍａｒｙサイト１００で障害等によるシステム停止が発生した場合の他サイトでのアプリケーションの再開手順、及びＰｒｉｍａｒｙサイト１００が復活した場合の復帰手順について説明する。
尚、ホスト１１０におけるミラーリングが保護情報設定がオンで行われていれば、Ｐｒｉｍａｒｙサイト１００の記憶装置１２０とＳｙｎｃサイトの記憶装置２７２の間の通信が停止した後にＰｒｉｍａｒｙサイト１００が障害で停止した場合でも、ホスト１１０は、アプリケーション２０１に対して書き込み完了を通知した更新データを消失することはない。これは記憶装置間の通信が出来なくなった状況では、ホスト１１０は、アプリケーションからの書き込み処理を停止させるからである。
【００８６】
図１０は、Ｐｒｉｍａｒｙサイト１００がシステム停止になった際に、Ｐｒｉｍａｒｙサイト１００で実行されていたアプリケーションを、Ｓｙｎｃサイト１７０で再開する手順を示す図である。
記憶領域２２５Ａから記憶領域２２５Ｃに対する同期リモートコピーのペア状態によって記憶領域２２５Ｃに対して書き込みができない状態ならば、Ｓｙｎｃサイト１７０のホスト２７１は、記憶装置２７２が有する同期リモートコピーのペア状態を変更し、記憶領域２２５Ｃへの書き込みを可能にする。なお、前述のペア状態の情報の変更としてはペア状態をＳｉｍｐｌｅｘに遷移させることが考えられる（ステップ１００１、１００２）。
【００８７】
その後、ホスト２７１にてアプリケーション２０１を起動し、記憶領域２２５Ｃを用いて処理を再開する（ステップ１００３）。
次に、ホスト２８１が、記憶領域２２５Ｂから記憶領域２２５Ｄに対する非同期リモートコピーのペア状態をＳｉｍｐｌｅｘに遷移させるように、記憶装置２８２に指示する（ステップ１００４）。
【００８８】
この際、記憶装置２７２と記憶装置２８２との間で通信可能であれば、ホスト２７１は、記憶領域２２５Ｃから記憶領域２２８Ｄへの非同期リモートコピープログラム２２３によるペア設定及び非同期リモートコピーの開始を記憶装置２７２へ指示し、ペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１００５、１００６、１００７）。
【００８９】
これにより、Ｓｙｎｃサイトでアプリケーションが再起動し、かつ、そのアプリケーションによる更新データがＡｓｙｎｃサイトへ転送される。
【００９０】
図５は、図１０の処理手順の結果、Ｓｙｎｃサイト１７０でアプリケーションが再開された後のシステム状態を示したブロック図である。
Ｓｙｎｃサイト１７０のホスト２７１が記憶領域２２５Ｃに対して発行したデータの更新（矢印５０１）は、記憶装置２７２が非同期リモートコピーを実行することで、非同期に記憶領域Ｄ２２８に対して反映される（矢印５０２）。
【００９１】
したがって、Ｓｙｎｃサイト１７０でアプリケーションの実行を再開した後で、Ｓｙｎｃサイト１７０が災害停止した場合でも、Ａｓｙｎｃサイト１８０の記憶領域２２５Ｄを用いることで、Ｓｙｎｃサイトで更新された最近のデータについては消失の可能性があるものの、それ以外のデータについては消失を回避することが可能となる。
図１１は、Ｓｙｎｃサイト１７０でアプリケーション処理を再開した状態から、通常運用状態（Ｐｒｉｍａｒｙサイト１００の運用）への復帰手順を示す図である。
まず、Ｐｒｉｍａｒｙサイト１００を復旧させる。この際、ホスト１１０には、記憶領域２２５Ａのミラー設定情報２１３の設定が施されておらず、記憶装置１２０においてペア情報も存在しないものとする（ステップ１１０１）。
その後、ホスト２７１かホスト２８２が、記憶装置２７２か記憶装置２８２に対して指示することで、記憶領域２２５Ｃから記憶領域２２５Ｄに対する非同期リモートコピーのペア状態をＳｉｍｐｌｅｘに遷移させる（ステップ１１０２）。
【００９２】
その後、記憶装置２７２は、ホスト２７１の指示に基づいて記憶領域２２５Ｃから記憶領域２２５Ａに対して同期リモートコピーを開始し、ペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１１０３、１１０４）。
次に、使用者又は管理者が、ホスト２７１上のアプリケーション２０１を停止する（ステップ１１０５）。
【００９３】
その後、ホスト２７１またはホスト１１０は、ステップ１１０３、１１０４で作成されたペアの正副関係を入れ替え、記憶領域２２５Ａから記憶領域２２５Ｃに対して同期リモートコピーを行うよう、記憶装置１２０に指示する。もし、同期リモートコピープログラム２２２でこのような処理が実行できない場合、使用者は、一旦記憶領域２２５Ａと２２５Ｃのペア状態の情報を削除してから、逆方向にペアを設定することになる。その場合、既に記憶領域２２５Ａと記憶領域２２５Ｃは同じデータを有するため、逆方向の同期リモートコピーの初期化コピーは省略されてもよい（ステップ１１０６）。
【００９４】
この時点では、ホスト１１０には記憶領域２２５Ａを用いるための設定情報が登録されていないため、使用者は、記憶領域２２５Ａを含めたミラーグループを仮想記憶領域としてアプリケーション２０１に提供する設定を行う（ステップ１１０７）。
その後、使用者は、ホスト１００上のアプリケーション２０１を再起動し、記憶領域２２５Ａを用いた処理を再開する（ステップ１１０８）。
【００９５】
ホスト１１０は、ステップ１１０７で設定されたミラーグループに記憶領域２２５Ｂを追加する（ステップ１１０９）。
記憶装置１２０は、ホスト１１０の指示に従って、記憶領域２２５Ｂから記憶領域２２５Ｄに対する非同期リモートコピーを開始する（ステップ１１１０）。
その後、記憶装置１２０は、記憶領域Ｂ２２６のデータが記憶領域２２５Ａのデータ内容と一致し、ステップ１１１０のペア状態がＤｕｐｌｅｘになるまで待つ。
【００９６】
尚、上述した手順において、ステップ１１０５のアプリケーション２０１の停止は、このステップより前に実行されてもよく、ステップ１１０８のアプリケーション２０１の再起動は、このステップよりも後に実行されてもよい。
上述の処理によって、Ｐｒｉｍａｒｙサイトにおける処理を再開し、かつ、同期及び非同期リモートコピー間のデータの整合性も復旧することが出来る。
【００９７】
図１２は、Ｓｙｎｃサイト１７０でアプリケーション処理を再開した状態から、通常運用状態（Ｐｒｉｍａｒｙサイト１００の運用）への復帰手順の別例を示す図である。尚、以下の処理において、Ｐｒｉｍａｒｙサイトには既に記憶領域２２５Ａ及びＢが設定されている（ただしミラーグループの設定は未だ）とする。
まず、使用者は、ホスト２７１でのアプリケーション２０１の実行を停止する（ステップ１２０１）。
【００９８】
ホスト２８１及びホスト２７１は、記憶領域２２５Ｃ及び記憶領域２２５Ｄが有するデータの内容が同期したことを確認して、ペア状態の情報の削除を記憶装置２８２及び２７２へ指示する（ステップ１２０２、１２０３）。
ホスト２７１は、記憶領域２２５Ｃから記憶領域２２５Ｂにデータをコピーするよう、記憶装置２７２へ指示する（ステップ１２０４）。
その後、記憶装置１２０は、ホスト１１０等の指示に基づいて記憶領域２２５Ｂから記憶領域２２５Ｄに対する非同期リモートコピーを開始する。なお、記憶領域２２５Ｂと記憶領域２２５Ｄには既に同じデータが格納されているため、非同期リモートコピーにおける初期化コピーは省略されてもよい（ステップ１２０５）。
【００９９】
この時点で、ホスト１１０には、記憶領域２２５Ｂを用いるためのミラー設定情報が存在しないため、使用者は、記憶領域２２５Ｂを含めたミラーグループを仮想記憶領域としてアプリケーション２０１に提供する設定を行う（ステップ１２０６）。
使用者は、ホスト１１０のアプリケーション２０１を再起動し、記憶領域２２５Ｂを用いた処理を再開させる（ステップ１２０７）。
その後、使用者は、ステップ１２０６のミラーグループに記憶領域２２５Ａを追加する（ステップ１２０８）。
【０１００】
その後、記憶装置１２０は、ホスト１１０の指示に従い、記憶領域２２５Ａから記憶領域２２５Ｃに対する同期リモートコピーを開始する（ステップ１２０９）。
ホスト１１０は、記憶領域２２５Ａのデータが記憶領域２２５Ｂのデータ内容と一致し、ステップ１２０９のペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１２１０、１２１１）。
【０１０１】
尚、ステップ１２０７のアプリケーションの再起動をステップ１２０９の後にすることで、ステップ１２０９の初期化コピーを省略することができる。その場合はさらに、ステップ１２０４でホスト１１０が記憶領域２２５Ａとなる記憶領域へのコピーを記憶領域２２５Ｂと共に記憶装置２７２へ指示し、ステップ１２０８の記憶領域２２５Ａ追加時のミラーグループ作成時のコピーを省略してもよい。
上述した二つの処理によって、Ｐｒｉｍａｒｙサイトが復旧した際に、システムでは非同期リモートコピーからでも、同期リモートコピーからでも先に再開することができる。
【０１０２】
図１３は、Ｐｒｉｍａｒｙサイト障害時に、Ａｓｙｎｃサイト１８０でアプリケーションの実行を再開する手順を示す図である。
記憶装置２８２が有する記憶領域２２５Ｂから記憶領域２２５Ｄに対する非同期リモートコピーのペア状態情報が記憶領域２２５Ｄに対して書き込みができないことを示す状態ならば、ホスト２８１は、記憶装置２８２へペア状態の情報の変更を指示し、記憶領域２２５Ｄへの書き込みを可能にする。なお、ペア状態の情報の変更の方法の例としてはペア状態をＳｉｍｐｌｅｘに遷移させることが考えられる（ステップ１３０１、１３０２）。
【０１０３】
ホスト２８１にてアプリケーション２０１が起動され、記憶領域２２５Ｄを用いて処理が再開される。なお、再開に際して、アプリケーション２０１による復旧処理を行っても良い。具体的には、データベースの場合ならば（１）ＤＢにライトバック方式のバッファが存在することによる不整合が発生するため、トランザクションログを用いて修復する、（２）コミットされていないトランザクションの書き込みをトランザクションログを使ってトランザクション前の状態に戻す処理等である（ステップ１３０３）。
これにより、Ａｓｙｎｃサイトでアプリケーションの実行が再開できる。
【０１０４】
図１４は、Ｐｒｉｍａｒｙサイト１００が障害等で停止した際に、Ｓｙｎｃサイト１７０の記憶領域２２５Ｃのデータを利用してＡｓｙｎｃサイト１８０上でアプリケーション２０１を再開する手順例を示す図である。
ホスト２７１及びホスト２８１は、記憶装置２７２と記憶装置２８２との間が通信可能か確認し、通信不可能であれば、本手順ではなく、例えば前述のＡｓｙｎｃサイト１７０での再開手順を行う（ステップ１４０１）。
【０１０５】
ホスト２７１及びホスト２８１は、記憶領域２２５Ａから記憶領域２２５Ｃに対する同期リモートコピーのペア状態の情報と、記憶領域２２５Ｂから記憶領域２２５Ｄに対する非同期リモートコピーのペア状態をＳｉｍｐｌｅｘに遷移させるように記憶装置２７２及び２８２へ指示する（ステップ１４０２、１４０３）。
その後、ホスト２７１又はホスト２８１は、記憶領域２２５Ｄのデータを記憶領域２２５Ｃのデータと同じにするよう、記憶装置２７２又は２８２へ指示を出す。
【０１０６】
具体的な方法としては、記憶領域２２５Ｃから記憶領域２２５Ｄに対して非同期リモートコピーを実行して、ペア状態がＤｕｐｌｅｘになるまで待つ方法、同期リモートコピーを行う方法又は記憶領域２２５Ｃに対して更新がなされていない場合には、通常のＩ／Ｏコマンドを利用してコピーを行う方法等がある。また、記憶領域２２５Ｃと記憶領域２２５Ｄとの間の差分情報が利用できるのであれば、これを利用してもよい（ステップ１４０４）。
【０１０７】
次にホスト２８１は、記憶領域２２５Ｄから記憶領域２２５Ｃに対する非同期リモートコピーを記憶装置２８２へ指示し、双方のデータ内容がＤｕｐｌｅｘになるまで待つ。なお、上記のステップで既に記憶領域２２５Ｃと記憶領域２２５Ｄのデータ内容が同一であることを利用して、非同期リモートコピーの初期化コピーを省略してもよい（ステップ１４０５）。
ホスト２８１にてアプリケーション２０１を起動し、記憶領域Ｄ２２７を用いて処理を再開する。なお、再開に際して、アプリケーション２０１による復旧処理を行っても良い（ステップ１４０６）。
上述の処理により、よりＰｒｉｍａｒｙサイトでの最新の更新データが格納されているＳｙｎｃサイトからデータをＡｓｙｎｃサイトへコピーした上で、Ａｓｙｎｃサイトでアプリケーションの実行を再開することができる。
【０１０８】
図１５は、Ａｓｙｎｃサイト１８０でアプリケーションを再開した後に、通常運用状態（Ｐｒｉｍａｒｙサイトでのアプリケーション実行）へ復帰する手順例を示す図である。
まず、Ｐｒｉｍａｒｙサイト１００を復旧させる。この際、記憶領域２２５Ａから記憶領域２２５Ｄに関して記憶装置１２０にはリモートコピーのペア情報が存在せず、ホスト１１０には記憶領域２２５Ａのミラー設定情報２１３の設定はされていないものとする（ステップ１５０１）。
【０１０９】
次に、ホスト２８１は、もし存在するのであれば、記憶領域２２５Ｄから記憶領域２２５Ｃに対する非同期リモートコピーのペア状態の情報を削除するよう、記憶装置２８２に指示する（ステップ１５０２）。
次に、ホスト２８１が記憶領域２２５Ｄから記憶領域２２５Ｂに対する非同期リモートコピーの開始を記憶装置２８２に指示し、ペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１５０３、１５０４）。
ホスト２８１上のアプリケーション２０１を停止させる（ステップ１５０５）。
【０１１０】
その後、ホスト１１０は、ステップ１５０３、１５０４で作成されたペアの正副関係を入れ替え、記憶領域２２５Ｂから記憶領域２２５Ｄに対して非同期リモートコピーを行うように記憶装置１２０に指示する。もし、非同期リモートコピープログラム２２３の実行でこのような処理が出来ない場合、ホスト１１０は、ペア状態をＳｐｌｉｔにした後にＳｉｍｐｌｅｘに遷移し、逆方向にペアを設定することを記憶装置１２０に指示する。その場合、記憶領域２２５Ｂと記憶領域２２５Ｄは同じデータを有するため、逆方向の同期リモートコピーの初期化コピーは省略されてもよい（ステップ１５０６）。
【０１１１】
ホスト１１０には記憶領域２２５Ｂを用いるための設定が存在しないため、ホスト１１０は、記憶領域２２５Ｂを含めたミラーグループを仮想記憶領域としてアプリケーション２０１に提供する設定を行う（ステップ１５０７）。
ホスト１００上のアプリケーション２０１を再起動し、記憶領域２２５Ｂを用いた処理を再開する（ステップ１５０８）。
次に、ホスト１１０はステップ１５０７のミラーグループに記憶領域２２５Ａを追加する（ステップ１５０９）。
【０１１２】
記憶装置１２０が、ホスト１１０の指示に基づいて、記憶領域２２５Ａから記憶領域２２５Ｃに対する同期リモートコピーを開始する（ステップ１５１０）。
その後、ホスト１１０は、記憶領域２２５Ａのデータが記憶領域２２５Ｂのデータと一致し、ステップ１５１０のペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１５１１、１５１２）。
【０１１３】
尚、ステップ１５０５のアプリケーション２０１の停止はこのステップでの処理より前に実行されてもよく、ステップ１５０８のアプリケーション２０１の再起動はそのステップよりも後に実行されてもよい。
【０１１４】
図１６は、Ａｓｙｎｃサイト１８０でアプリケーションを再開した後に、通常運用状態（Ｐｒｉｍａｒｙサイトでのアプリケーション実行）へ復帰する別の手順例を示す図である。
ホスト２８１は、アプリケーション２０１を停止する（ステップ１６０１）。
【０１１５】
ホスト２８１は、記憶領域２２５Ｃと記憶領域２２５Ｄのデータを同じにしてから、ペア状態をＳｉｍｐｌｅｘに遷移させるように、記憶装置２８２に指示する（ステップ１６０２、１６０３）。
ホスト２８１は、記憶領域２２５Ｄから記憶領域２２５Ａにデータをコピーするよう、記憶装置２８２に指示する（ステップ１６０４）。
その後、記憶装置１２０は、ホスト１１０の指示に基づいて、記憶領域２２５Ａから記憶領域２２５Ｃに対して同期リモートコピーを開始する。なお、記憶領域２２５Ａと記憶領域２２５Ｃは同じデータを有するため、初期化リモートコピーは省略されてもよい（ステップ１６０５）。
【０１１６】
ホスト１１０には記憶領域２２５Ａを用いるための設定が存在しないため、ホスト１１０は、記憶領域２２５Ａを含めたミラーグループを仮想記憶領域としてアプリケーション２０１に提供する設定を行う（ステップ１６０６）。
ホスト１１０のアプリケーション２０１を再起動し、記憶領域２２５Ａを用いた処理を再開する（ステップ１６０７）。
ホスト１１０は、ステップ１６０６のミラーグループに記憶領域２２５Ｂを追加する（ステップ１６０８）。
記憶装置１２０は、ホスト１１０の指示に基づいて、記憶領域２２５Ｂから記憶領域２２５Ｄに対する同期リモートコピーを開始する（ステップ１６０９）。
【０１１７】
記憶領域２２５Ｂのデータが記憶領域２２５Ａのデータ内容と一致し、ステップ１６０９のペア状態がＤｕｐｌｅｘになるまで待つ（ステップ１６１０、１６１１）。
【０１１８】
尚、ステップ１６０７のアプリケーションの再起動をステップ１６０９の後に実行することで、ステップ１６０９の初期化コピーを省略することができる。その場合はさらに、ステップ１６０４で一度記憶領域２２５Ｂのコピーを同時に行い、ステップ１６０８の追加時の初期化コピーを省略してもよい。
【０１１９】
次に、通常運用状態において、記憶領域２２５Ａが障害等の発生により使用不可能になった場合の処理について説明する。
図７は、通常運用状態において記憶領域２２５Ａが障害等の発生により使用不可能になった場合の処理の概要を示す図である。
【０１２０】
記憶領域２２５Ａが使用不能になった場合、記憶装置１２０による記憶領域２２５Ｃに対する更新データの反映は停止される。しかし、障害保護設定がされていない場合、ホスト１１０は、記憶領域２２５Ｂに対して書き込みが正常終了すればアプリケーション２０１に対しても正常終了のメッセージを通知する。このため、記憶装置２７２と記憶装置２８２との間でデータの一致が取れない、具体的には、記憶装置２７２には存在しないデータが記憶装置１２０及び２８２に存在することになる。
【０１２１】
上述の不都合を解消して、記憶装置２７２におけるデータ消失の防止を優先させるために、上述の事態が発生した場合、本実施形態においては、記憶領域２２５Ｂから記憶領域２２５Ｃへデータを反映させる設定に変更する手順を実行する。
図１７は、記憶領域２２５Ａの障害の発見から上記設定を変更して同期リモートコピーを再開する手順例を示す図である。
【０１２２】
ホスト１１０が、アプリケーション２０１での書き込み要求に基づいて、記憶領域２２５Ａと記憶領域２２５Ｂへ書き込み要求を発行する（ステップ１７０１、１７０２）。
本例においては、記憶領域２２５Ａに障害が発生しているので、記憶装置１２０は、記憶領域２２５Ａに対する書き込み失敗をホスト１１０に報告する（ステップ１７０３）。
【０１２３】
書き込み失敗を受信したホスト１１０は、記憶領域２２５Ａと記憶領域２２５Ｃとのペア状態の情報を削除するよう、記憶装置１２０に指示する（ステップ１７０４）。
又、ホスト１１０は、記憶領域２２５Ｂと記憶領域２２５Ｄとのペア状態をＳｉｍｐｌｅｘに遷移させるように、記憶装置１２０に指示する（ステップ１７０５）。
【０１２４】
記憶装置１２０は、ホスト１１０の指示に基づいて、記憶領域２２５Ｂから記憶領域２２５Ｃに対して同期リモートコピーを開始する。なお、記憶領域２２５Ｂにだけ更新されたデータが存在するので、記憶領域２２５Ｂと記憶領域２２５Ｃとのデータの内容は、常に同じとは限らない。しかし、この場合でも以下に示す手順で初期化コピーを省略できる（ステップ１７０６）。
【０１２５】
ステップ１７０６にて初期化コピーが省略された場合、ホスト１１０が、ステップ１７０１にて行われた記憶領域２２５Ｂに対する書き込み要求を記憶領域２２５Ｂに対して再度発行する。この処理で、記憶領域２２５Ｂと記憶領域２２５Ｃのデータの内容が同じになる。なお、書き込み要求の再発行は、ミラープログラム２１２の実行に基づいてホスト１１０が行っても良いし、アプリケーション２０１の実行に基づいてホスト１１０が行っても良いし、それ以外のソフトウェアの実行に基づいてホスト１１０が行っても良い（ステップ１７０７）。
【０１２６】
なお、上述の処理のステップ１７０４を実行中にＳｙｎｃサイト１７０に障害が発生した場合、記憶領域２２５Ｄの一部分に記憶領域２２５Ｂのデータが反映された状態となり、Ａｓｙｎｃサイトにおいてアプリケーション２０１の再開ができなくなる場合がある。これに対する対策としては、ステップ１７０４を実行する前にＡｓｙｎｃサイトで記憶領域２２５Ｄのバックアップを行うことが考えられる。
【０１２７】
なお、本実施形態では、説明の簡略化のために、アプリケーション２０１はミラープログラム２１２が提供する一つの記憶領域のみを用いるように記載していたが、本発明はこれに制限されない。具体的には、アプリケーション２０１が二つ以上の記憶領域を用いる場合、上述した記憶領域２２５Ａから記憶領域２２５Ｄの組を複数個用意し、ミラーグループも複数個作成する。また、図９に示した書き込み処理以外は、記憶領域が関係する処理を複数回繰り返すことで対応できる。
【０１２８】
図９に示した処理の場合も同様に、処理を記憶領域の組の数分繰り返すことが考えられる。しかし、複数個存在する記憶領域２２５Ａのいずれか一つが障害Ｓｕｓｐｅｎｄによる書き込み禁止がなされた場合にそれ以外の記憶領域２２５Ａに対する書き込みも拒否することで、記憶装置１２０は、記憶領域２２５Ａ全体としてみた場合の一貫性を維持できる。したがってこの場合、図９のステップ９０７やステップ９１２の処理で扱われる記憶領域の数を一つのミラーグループに所属する記憶領域の数とするのではなく、それぞれ複数個存在する記憶領域２２５Ａと記憶領域２２５Ｂの組の数と考える。これにより、全ての記憶領域について処理を繰り返すよりも処理ステップ数を削減することが可能となる。
【０１２９】
また、本実施形態において、記憶領域２２５Ａと記憶領域２２５Ｂは別々な記憶装置内に存在してもよい。この場合、ミラープログラム２１２は、データの複製を各々異なる記憶装置へ転送する。さらに、ミラープログラム２１２は記憶装置１２０に存在してもよい。この場合、システム（特に記憶装置１２０）は、以下に示す手順に従って、Ｓｙｎｃサイト１７０とＡｓｙｎｃサイト１８０にリモートコピーを行う。
【０１３０】
（１）ホスト１１０から記憶装置１２０に対して書き込み要求が送られる。
（２）記憶装置１２０内のミラープログラム２１２が、書き込み要求に従って記憶領域２２５Ａと記憶領域２２５Ｂに書き込みを行う。
（３）同期リモートコピープログラム２２２は記憶領域２２５Ａに対する書き込みを受け取り、Ｓｙｎｃサイトの記憶領域２２５Ｃに対して書き込み要求を転送したことを確認してからミラープログラム２１２に書き込み完了を返す。
【０１３１】
（４）一方、非同期リモートコピープログラム２２３は記憶領域２２５Ｂに対する書き込みをログエントリ化してからミラープログラム２１２に書き込み完了を返す。
（５）ミラープログラム２１２は両方の書き込み完了が返されたらホスト１１０に対して書き込み完了を返す。
（６）非同期リモートコピープログラム２２３はログエントリをＡｓｙｎｃサイトに転送し、順序関係を保って記憶領域２２５Ｄに書き込みを反映させる。
【０１３２】
以上の動作中にＰｒｉｍａｒｙサイト１００に障害が発生した場合は、システムはＳｙｎｃサイトかＡｓｙｎｃサイトのどちらかでアプリケーションを再開する。
尚、この場合のミラーグループの設定等は、ホスト１１０に設定用のアプリケーションを導入して管理者がそのアプリケーションを使用して設定するか、記憶装置１１０が有する管理端末から管理者が設定する等が考えられる。
【０１３３】
次に、本発明の第２の実施形態について説明する。
図１８は、第２の実施形態であるシステム概要を示す図である。本実施形態と第１の実施形態との相違点は、各サイトに中間サーバー１８０１、１８０２、１８０３が追加されたことである。中間サーバーとは、各サイトのホストと記憶装置との間のＩ／Ｏを中継する働きを持つ計算機で、例えば、ＮＦＳやＣＩＦＳのファイルサーバーや、仮想的なボリュームを提供するバーチャリゼーションサーバーなどが考えられる。
【０１３４】
なお、中間サーバーは記憶装置１２０内や、ホスト１１０内に存在してもよい（例えば、機能が豊富なネットワークインターフェースとして）。特に、Ｐｒｉｍａｒｙサイト１００の中間サーバー１８０１にはミラープログラム２１２が格納され、第１の実施形態においてホスト１１０が行っていたミラーリングの処理を中間サーバー１８０１が実行する。これにより、ホスト１１０に何ら変更を加えることなく、第１の実施形態で説明した処理が実施可能となる。
【０１３５】
なお、各サイトのホスト、中間サーバー、記憶装置を接続するネットワークは第一の実施例同様、どのような転送媒体やトポロジーであってもよい。
【０１３６】
次に、第１の実施形態を応用した第３の実施形態について説明する。
図１９は、第３の実施形態のシステムの概要を示すブロック図である。なお、本図においては以下説明に必要な部分のみ図示して残りを省略したが、本実施形態でも第１の実施形態における各種プログラムやハードウェアは存在する。ただし、非同期リモートコピープログラム２２３は本実施形態では必須ではない。
【０１３７】
第１と第２の実施形態では記憶装置に非同期リモートコピープログラムが存在することを前提としたが、本実施形態では、データベースシステムで生成されるログの転送によって、非同期リモートコピーの代替とする。以後、このようなリモートコピーをデータベースによる非同期リモートコピーと呼ぶ。
【０１３８】
データベース１９０７は、アプリケーション２０１がクエリーの処理を要求するデータベースを制御するプログラムである。データベース１９０７を実行中のホスト１１０は、アプリケーション２０１が要求したクエリーを完了（以下「コミット」）する際に、必ず記憶装置１２０が有するログ用記憶領域ＡＬ１９０２へログを書き込む。また、図示はしていないが、ホスト１１０は、データベース１９０７の記憶領域ＡＤ１９０１（テーブルを保存するための記憶領域）用のバッファを持ち、ログに対応した更新をすぐには書き込まず、バックグラウンドで記憶領域ＡＤ１９０１へ書き込む。
【０１３９】
また、データベース１９０７では、コミットされ、かつ更新内容が既に記憶領域ＡＬ１９０２に書き込まれたクエリーの最新時刻、具体的には書き込まれたログの最新時刻（またはそれより少し古い時刻）がログとともに管理されている。従って、ホスト１１０は、データベースの復旧の際にはこの時刻のログから復旧処理を開始することになる。また、ログにはクエリーによって変更されるデータの変更前と変更後のデータが登録される。
【０１４０】
なお、データベースでは、前述した時間の代わりに、前述の時間をクエリー毎に割り当てるなどしたシーケンシャルなＩＤを用いたり、これらの両方を情報として持つことがある。ここで、ＩＤの場合は予め連続した番号を割り振るというルールを設定しておけば欠番が認識できるという特長を持つが、それ以外はどちらを使用しても特に差異がないので、以後の説明では時間を使用した場合について説明する。
【０１４１】
記憶領域ＣＤ１０９３は、記憶領域ＡＤ１９０１と同期リモートコピーのペアとなる記憶領域である。記憶領域ＣＬ１０９４は、記憶領域ＡＬ１９０２と同期リモートコピーのペアとなる記憶領域である。
【０１４２】
ホスト１１０は、ＤＢログ送信プログラム１９０８を実行することで、データベース１９０７の処理で生成されるログをＡｓｙｎｃサイト１８０のホスト２８１へ送信する。なお、ログ転送の際、ホスト１１０がログをログ用記憶領域ＡＬ１９０２から定期的に取り出してホスト２８１へ送付するが、これ以外に、ホスト１１０がログ用記憶領域ＡＬ１９０２にデータを保存する前に、直接データをホスト２８１へ転送しても良い。
【０１４３】
ホスト２８１は、ＤＢログ受信プログラム１９０９を実行することで、ホスト１１０が転送したログを受け取り、ログ用記憶領域ＤＬ１９０６へログの追加を行い、記憶領域ＤＤ１９０５へ更新データの書き込みを行う。既に述べたように、ログにはクエリーによって変更されたデータのデータの変更前と変更後のデータの片方または両方が存在するため、Ａｓｙｎｃサイト１８０がこのログを元に記憶領域Ｄ１９０５に対して書き込みを行えば、非同期リモートコピーと同じ処理を行うことができる。
【０１４４】
なお、転送されるログの代わりにアプリケーション２０１で生成されたクエリーそのものを転送し、このクエリーをホスト２８１上で再実行する方法も考えられる。
【０１４５】
なお、本実施形態においても、第１の実施形態で説明した図１０から図１６の処理と同様の処理が行われる。ただし、各処理において、記憶領域２２５Ａを記憶領域ＡＤ１９０１及びログ用記憶領域ＡＬ１０９２に、記憶領域２２５Ｃを記憶領域ＣＤ１９０３及びログ用記憶領域ＣＬ１０９４に、記憶領域２２５Ｄを記憶領域ＤＤ１９０５及びログ用記憶領域ＤＬ１０９６に入れ替える。又、図１０から図１６の各処理において、ミラーグループに関連する処理及び記憶領域２２５Ａと記憶領域２２５Ｂとの間のデータコピー処理を削除し、これ以外の記憶領域２２５Ｂが関係する処理を記憶領域２２５Ａと読み替える。
【０１４６】
また、データベース１９０７は各々役割が異なる二つの記憶領域を用いるように記述したが、一つの記憶領域をそれに割り当てても良く、また３つ以上の記憶領域を用いても良い。
【０１４７】
なお、Ｐｒｉｍａｒｙサイトが障害停止した際に、ＳｙｎｃサイトとＡｓｙｎｃサイト間で非同期のリモートコピーを作成することでアプリケーションの実行を再開する場合については、以下に示す方法を用いることで、図１０で説明した処理手順よりも初期化コピーの処理時間を短縮できる。
【０１４８】
図２０は、Ｐｒｉｍａｒｙサイトが時刻Ｔｉｍｅ０にて障害停止した場合のＳｙｎｃサイト１７０とＡｓｙｎｃサイト１８０の状態を示す図である。
まず、ログ用記憶領域ＣＬ１９０４は同期リモートコピー２２２によって常に最新の状態となっていたため、以下の関係が成り立つ。なお以下で、ログ記憶領域ＣＬ１９０４が有する最新のログの時刻をＴｉｍｅＣＬＮｅｗ、記憶領域ＣＤ１９０３に反映され、不必要となったログの最新（またはそれより少し古い）時刻をＴｉｍｅＣＤＮｅｗ、ログ記憶領域ＤＬ１９０６が有する最新のログの時刻をＴｉｍｅＤＬＮｅｗ、記憶領域ＤＤ１９０５に反映され、不必要となったログの最新（またはそれより少し古い）時刻をＴｉｍｅＤＤＮｅｗとする。
【０１４９】
（Ａ）ＴｉｍｅＣＬＮｅｗ以後に実行完了したクエリーは存在しない
（Ｂ）ＴｉｍｅＣＬＮｅｗはＴｉｍｅＣＤＮｅｗと同じ時刻か、より新しい時刻（データベースはログ用の記憶領域に先に書き込むため）である。
（Ｃ）ＴｉｍｅＤＬＮｅｗはＴｉｍｅＤＤＮｅｗと同じ時刻か、より新しい時刻（データベースはログ用の記憶領域に先に書き込むため）である。
（Ｄ）ＴｉｍｅＣＬＮｅｗはＴｉｍｅＤＬＮｅｗと同じ時刻か、より新しい時刻（Ｐｒｉｍａｒｙサイト１００からＡｓｙｎｃサイト１８０へのコピーは非同期で行われるため）である。
（Ｅ）ＴｉｍｅＣＤＮｅｗはＴｉｍｅＤＤＮｅｗと同じ時刻か、より新しい時刻（Ｐｒｉｍａｒｙサイト１００からＡｓｙｎｃサイト１８０へのコピーは非同期で行われるため）である。
【０１５０】
図２１は、図２０の状態において、Ｓｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へデータベースによる非同期リモートコピーを行うための手順を示す図である。
ホスト２７１及びホスト２８１は、ＴｉｍｅＣＬＮｅｗ、ＴｉｍｅＣＤＮｅｗ、ＴｉｍｅＤＬＮｅｗ、及びＴｉｍｅＤＤＮｅｗの情報を収集する（ステップ２１０１）。
【０１５１】
ホスト２７１及びホスト２８１は、ログ用記憶領域ＣＬ１９０４が有するログの最古の時刻ＴｉｍｅＣＬＯｌｄと、ログ用記憶領域ＤＬ１９０４が有するログの最古の時刻ＴｉｍｅＤＬＯｌｄの情報を収集する（ステップ２１０２）。
次に、ホスト２７１又はホスト２８１は、ＴｉｍｅＣＬＯｌｄとＴｉｍｅＤＬＮｅｗとを比較する（ステップ２１０３）。
【０１５２】
ＴｉｍｅＣＬＯｌｄがＴｉｍｅＤＬＮｅｗより一つだけ新しい時刻、具体的には、先ほど述べた更新順序を示すカウンタで一つ分新しい時刻と同じか、より古い時刻ならば、Ｓｙｎｃサイト１７０は、ＴｉｍｅＤＬＮｅｗより一つだけ新しい時刻からＴｉｍｅＣＬＮｅｗまでのログをＡｓｙｎｃサイト１８０へ転送する。これによって、Ｓｙｎｃサイト１７０に存在するログはすべてＡｓｙｎｃサイト１８０にも存在するようになる（ステップ２１０４）。
【０１５３】
一方、ＴｉｍｅＣＬＯｌｄがＴｉｍｅＤＬＮｅｗより二つ以上カウンタの値が新しい時刻である場合、Ａｓｙｎｃサイト１８０に転送すべきログの一部をＳｙｎｃサイトですでに削除してしまったことを意味するため、記憶装置２７２は、ログ用記憶領域ＣＬ１９０４をログ用記憶領域ＤＬ１９０６へ、記憶領域ＣＤ１９０３を記憶領域ＤＤ１９０５へコピーする（ステップ２１０９）。
【０１５４】
ステップ２１０４又はステップ２１０９の終了後、Ｓｙｎｃサイト１７０にてデータベース１９０７の復旧処理を行う。通常、データベースではログを用いて復旧処理が行われる。具体的には、ログ用記憶領域に蓄積されたログを古い順からデータベースのデータに適用し、最後までログを適用した後に、コミットがされていないクエリーに関係したログについてはロールバックが行われる（ステップ２１０５）。
【０１５５】
Ａｓｙｎｃサイトにてステップ２１０５と同様の復旧処理を実施する（ステップ２１０６）。
ホスト２７１又はホスト２８１が、Ｓｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へのデータベースによる非同期リモートコピーを開始する（ステップ２１０７）。
データベース１９０７はアプリケーション２０１と共に処理を再開する（ステップ２１０８）。
【０１５６】
なお、コピー量削減のため、ログ用記憶領域間のデータコピーについては、ログ用記憶領域ＣＬ１９０４とログ用記憶領域ＤＬ１９０６が有するログを比較して、ログ用記憶領域ＤＬ１９０６が有していないログ（かつ復旧処理に必要な期間）だけを転送する方法が考えられる。また、記憶領域に保存されているテーブルを構成する各ページにはそのページに適用された最新のログを示す情報が含まれることがあり、サイト間でこれを比較し、差異のあるページだけをコピーすることも考えられる。
【０１５７】
また、Ｓｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へ最新データをコピーしてからＡｓｙｎｃサイトで復旧する場合は、ステップ２１０６までの処理はそのまま実行し、それ以降の処理でＳｙｎｃサイト１７０とＡｓｙｎｃサイト１８０の関係を入れ替えることで対処可能となる。
【０１５８】
次に、本発明の第４の実施形態について述べる。本実施形態では、同期リモートコピーは他の実施形態と同様に記憶装置で行い、非同期リモートコピーはホスト上のソフトウェアによって実現される。さらに、本実施形態では、ホスト１１０はジャーナルファイルシステム２２０２を用いることで、Ｐｒｉｍａｒｙサイトが障害停止した際の復旧処理にて行われる記憶領域２２５Ｃと記憶領域２２５Ｄ間の非同期リモートコピーの初期化コピーにかかる時間の短縮化を行う。
【０１５９】
図２２は、本実施形態の構成概要を示したブロック図である。
ホスト１１０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行することで、ファイルシステム２２０２やアプリケーション２０１からの書き込み要求を受付け、書き込みデータと時間順序情報をまとめてエントリとして保持した後に記憶領域２２５Ａに対して書き込み処理を行う。又、ホスト１１０は、同プログラム２２０１を実行することで、作成したエントリをホスト２８１へ送受信したり、ホスト２８１の同プログラムについては受信したエントリから記憶領域に書き込みデータを反映させる処理も行う。
【０１６０】
ジャーナルファイルシステム２２０２とは、ファイルシステムのファイル毎に存在するメタデータの変更をログの形で記憶領域上に保持するファイルシステムのことで、ホスト障害時のファイルシステムのメタデータチェックの時間短縮を実現したファイルシステムである。なお、メタデータのログを蓄積する領域（メタデータログ領域）は記憶領域の定められた範囲に割り当てることが考えられるが、メタデータログ領域は拡張可能であってもよい。いずれの場合でも、メタデータ領域に対して書き込みが行われれば同期リモートコピーによって同様の書き込みデータが記憶領域２２５Ｃにも存在することになる。
【０１６１】
さらにファイルが更新される場合、メタデータの更新契機は、ファイルオープン、クローズ、キャッシングされたブロックデータの更新、及び記憶領域上のブロックデータの更新等が考えられる。しかし、更新対象ファイルのオープンからクローズまでの間に一回でもメタデータの更新が行われれば、上記の条件が発生した場合に必ずメタデータを更新する処理が行われる必要はなく、これ以外の契機で更新が行われてもよい。また、メタデータログ領域以外の記憶領域上のメタデータの更新はメタデータログ領域の更新と同時であってもよく、非同期であってもよい。
【０１６２】
以下、本実施形態で、ファイルの更新処理がどのように行われるかについて説明する。
（１）アプリケーションがファイルを書き込み権限つきでオープンする。
（２）データを更新する。ジャーナルファイルシステム２２０２はバッファキャッシュを経由して、ブロック書き込みの要求を非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１に送信する。ホスト１１０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行して書き込み要求を記憶領域２２５Ａに対して発行し、エントリを作成してホスト１１０で保持する。その後、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１はジャーナルファイルシステムに対して書き込み完了メッセージを送信する。
【０１６３】
（３）記憶装置１２０は、同期リモートコピープログラム２２２を実行して、記憶領域２２５Ａに書き込まれた更新データを記憶領域２２５Ｃに対して反映させる。
（４）ホスト１１０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行して、（２）にて作成したエントリをＡｓｙｎｃサイト１８０へ転送し、転送が完了したら当該エントリを削除する。
（５）Ａｓｙｎｃサイト１８０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行して、受け取ったエントリを元に順序を守りながら記憶領域２２５Ｄに更新データを反映させる。
【０１６４】
（６）アプリケーション２０１はファイルをクローズする。この段階で最低一回はメタデータの更新が行われている。その際の更新手順はメタデータログ領域内のメタデータとそれ以外のメタデータの両方について以下の（Ａ）から（Ｄ）のステップをたどり、Ｓｙｎｃサイト１７０とＡｓｙｎｃサイト１８０へ伝達される。
【０１６５】
（Ａ）ホスト１１０がメタデータを更新する。ジャーナルファイルシステム２２０２はブロック書き込みの要求を非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１に送信する。ホスト１１０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行することで、書き込み要求を記憶領域２２５Ａに対して発行し、エントリを作成してホスト１１０上で保持する。その後、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１は、ジャーナルファイルシステムに対して書き込み完了メッセージを送信する。
【０１６６】
（Ｂ）記憶装置１２０は、同期リモートコピープログラム２２２を実行することで、記憶領域２２５Ａに書き込まれた更新メタデータを記憶領域２２５Ｃに対して反映させる。
（Ｃ）ホスト１１０は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行して、（Ａ）にて作成したエントリをＡｓｙｎｃサイト１８０へ転送し、転送が完了したら当該エントリを削除する。
【０１６７】
（Ｄ）Ａｓｙｎｃサイト１８０のホスト２８１は、非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１を実行して、受け取ったエントリを元に順序を守りながら記憶領域２２５Ｄに更新メタデータを反映させる。
【０１６８】
なお、メタデータログ領域は状況によっては容量不足となることもあるので、古いメタデータのログを削除する必要がある。本実施形態では、以下のステップにてメタデータのログを削除することで、メタデータログ領域にログが存在しないファイルは記憶領域Ｃ２２７と記憶領域Ｄ２２８で同じデータを有することを保障する。
（１）ジャーナルファイルシステム２２０２は削除するログを決定する。
【０１６９】
（２）削除対象のログがその他のログと同じファイルに関連しているのであれば、削除対象のログを削除して処理が終わる。
（３）削除対象のログがその他のログと同じファイルに関連していないのであれば、ジャーナルファイルシステム２２０２はこのファイルに関連する記憶領域（メタデータについては対象としなくてもよい）のブロックアドレスを得る。
【０１７０】
（４）Ｐｒｉｍａｒｙサイト１００の非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１の実行によって作成されるエントリを検索し、（３）で得たブロックアドレスを更新するエントリがＰｒｉｍａｒｙサイト１００に存在しなくなるまで待つ
（５）削除対象のログを削除する。
【０１７１】
本実施形態において、Ｐｒｉｍａｒｙサイト１００の障害停止時の復旧処理でＳｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へ非同期リモートコピー機能つき仮想記憶領域提供プログラム２２０１による非同期リモートコピーを行うための手順は以下の通りである。
（１）Ｓｙｎｃサイト１７０の記憶領域２２５Ｃのメタデータログ領域に存在するログを検索し、更新が発生したファイルの一覧を得る。
【０１７２】
（２）ホスト２７１は、（１）にて得たファイルのデータを記憶領域２２５Ｃから記憶領域２２５Ｄに対してコピーするよう、記憶装置２７２へ指示する。
（３）Ｓｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へのデータベースによる非同期リモートコピーを開始する。
（４）Ｓｙｎｃサイト１７０でアプリケーション２０１の処理を再開する。
【０１７３】
また、本実施形態にて、Ｓｙｎｃサイト１７０からＡｓｙｎｃサイト１８０へ最新データをコピーしてからＡｓｙｎｃサイトで復旧する場合は、上述した処理のうち（３）までの処理はそのまま実行し、それ以降の処理でＳｙｎｃサイト１７０とＡｓｙｎｃサイト１８０の関係を入れ替えれば良い。
【０１７４】
上述した全ての実施形態において、通常運用時のＡｓｙｎｃサイト１８０に対する更新データの伝達は非同期リモートコピーによって継続的に行われるため、ＰｒｉｍａｒｙサイトとＳｙｎｃサイトの両方が障害停止した場合に消失する更新データ量が少なくなる。
また、記憶装置が特殊な機能を有さずに、複数の記憶領域を用いて同じデータの同期リモートコピーと非同期リモートコピーを実現することが可能なため、幅広い記憶装置に対して本発明を適用できる。
【０１７５】
【発明の効果】
本発明によれば、ＰｒｉｍａｒｙサイトとＳｙｎｃサイトの両方が障害停止した場合に消失する更新データ量が少なくすることができる。
【図面の簡単な説明】
【図１】システムのハードウェア図である。
【図２】本実施例の機能構成を表したブロック図である。
【図３】本実施例のシステム初期化手順を示したフロー図である。
【図４】本実施例の通常運用状態を示したブロック図である。
【図５】Ｐｒｉｍａｒｙサイトが障害停止した場合にＳｙｎｃサイトでアプリケーション処理を再開した場合の状態を示したブロック図である。
【図６】ミラーグループへ記憶領域を追加する手順を示したフロー図である。
【図７】Ｓｙｎｃサイトに対応した記憶領域に障害が発生した状態を示したブロック図である。
【図８】設定情報を示す図である。
【図９】記憶領域同期保護が有効な場合のＰｒｉｍａｒｙサイトでの書き込み処理の手順について示したフロー図である。
【図１０】Ｐｒｉｍａｒｙサイトに障害が発生した場合に、Ｓｙｎｃサイトでアプリケーション処理を再開する手順を示したフロー図である。
【図１１】Ｓｙｎｃサイトでアプリケーション処理を再開後にＰｒｉｍａｒｙサイトが復旧した際の通常運用状態への復帰手順を示したフロー図である。
【図１２】Ｓｙｎｃサイトでアプリケーション処理を再開後にＰｒｉｍａｒｙサイトが復旧した際の通常運用状態への復帰手順を示したフロー図である。
【図１３】ＰｒｉｍａｒｙサイトやさらにＳｙｎｃサイトが障害停止した際にＡｓｙｎｃサイトでアプリケーション処理を再開する処理手順を示したフロー図である。
【図１４】Ｐｒｉｍａｒｙサイトが障害停止した際にＡｓｙｎｃサイトでアプリケーション処理を再開する手順を示したフロー図である。
【図１５】Ａｓｙｎｃサイトでアプリケーション処理を再開後にＰｒｉｍａｒｙサイトやさらにＳｙｎｃサイトが復旧した際の通常運用状態への復帰手順を示したフロー図である。
【図１６】Ａｓｙｎｃサイトでアプリケーション処理を再開後にＰｒｉｍａｒｙサイトやさらにＳｙｎｃサイトが復旧した際の通常運用状態への復帰手順を示したフロー図である。
【図１７】記憶領域Ａに障害が発生した場合に、同期リモートコピーを継続するための処理手順を示したフロー図である。
【図１８】第２の実施形態の構成例を表したブロック図である。
【図１９】第３の実施形態の構成例を表したブロック図である。
【図２０】第３の実施形態において、Ｐｒｉｍａｒｙサイトが障害停止した後の状態を示したブロック図である。
【図２１】第３の実施形態における、Ｐｒｉｍａｒｙサイトが障害停止した際のＳｙｎｃサイトでのアプリケーション処理を再開する手順を示した図である。
【図２２】第４の実施形態の構成例を表したブロック図である。
【符号の説明】
１００…Ｐｒｉｍａｒｙサイト、１７０…Ｓｙｎｃサイト、１８０…Ａｓｙｎｃサイト、１１０…ホスト。
【図１】
2005062928.tif 000003
【図２】
2005062928.tif 000004
【図３】
2005062928.tif 000005
【図４】
2005062928.tif 000006
【図５】
2005062928.tif 000007
【図６】
2005062928.tif 000008
【図７】
2005062928.tif 000009
【図８】
2005062928.tif 000010
【図９】
2005062928.tif 000011
【図１０】
2005062928.tif 000012
【図１１】
2005062928.tif 000013
【図１２】
2005062928.tif 000014
【図１３】
2005062928.tif 000015
【図１４】
2005062928.tif 000016
【図１５】
2005062928.tif 000017
【図１６】
2005062928.tif 000018
【図１７】
2005062928.tif 000019
【図１８】
2005062928.tif 000020
【図１９】
2005062928.tif 000021
【図２０】
2005062928.tif 000022
【図２１】
2005062928.tif 000023
【図２２】
2005062928.tif 000024