(57)【特許請求の範囲】
【請求項１】
ホストからＩＯ要求を受信し、データを格納する第１データボリュームと、前記第１データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第１ジャーナルボリュームと、を有する第１ストレージ装置と、
前記ホストからＩＯ要求を受信し、前記第１ストレージ装置に接続され、前記第１データボリュームの二重化データが格納される第２データボリュームと、第２データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第２ジャーナルボリュームと、を有する第２ストレージ装置と、
前記第１ストレージ装置に接続され、前記第１ストレージ装置から受信する前記ジャーナルデータを用いて前記第１データボリュームとリモートコピーペアが構成される第３データボリュームを有する第３ストレージ装置と、
を備え、
前記第１ストレージ装置は、前記第１データボリュームに仮想ボリューム識別子を付与し、前記第１データボリュームを仮想ボリュームとして前記ホストに提供し、
前記第２ストレージ装置は、前記第２データボリュームに前記第１データボリュームと同じ前記仮想ボリューム識別子を付与し、前記第２データボリュームを前記仮想ボリュームとして前記ホストに提供し、
前記第１ストレージ装置に前記ホストから第１データが書き込まれると、
前記第１ストレージ装置は、前記第１データボリュームに前記第１データを書き込み、前記第１ジャーナルボリュームに前記第１データ及び第１更新番号をジャーナルデータとして格納し、前記第１データ及び前記第１更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置は、前記第２データボリュームのうち前記第１データボリュームに対応する第２データボリュームに前記第１データを書き込み、前記第１データ及び前記第１更新番号をジャーナルデータとして前記第２ジャーナルボリュームに格納し、
前記第２ストレージ装置に前記ホストから第２データが書き込まれると、
前記第２ストレージ装置は、前記第２データを前記第１ストレージ装置に送信し、前記第１ストレージ装置は、前記第１データボリュームに前記第２データを書き込み、前記第１ジャーナルボリュームに前記第２データ及び第２更新番号をジャーナルデータとして格納し、前記第２更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置は、前記第２データボリュームに前記第２データを書き込み、前記第２データ及び前記第２更新番号を前記第２ジャーナルボリュームに格納する
ことを特徴とする、ストレージシステム。
【請求項２】
前記第３ストレージ装置は、前記第１ストレージ装置の前記第１データボリューム及び前記第１ジャーナルボリュームまたは、前記第２ストレージ装置の前記第２データボリューム及び第２ジャーナルボリュームに対応する前記第３データボリューム及び第３ジャーナルボリュームを有し、
前記第１ストレージ装置は、前記第３ストレージ装置からの要求に応じて、前記第１ジャーナルボリュームに格納された前記ジャーナルデータを前記第３のストレージ装置に送信し、
前記第３ストレージ装置は、前記ジャーナルデータを前記第３ジャーナルボリュームに格納し、前記ジャーナルデータを用いて復元したデータを前記第３データボリュームに書き込む
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項３】
前記第１ストレージ装置に障害が発生した場合、
前記第２ストレージ装置は、前記第２データボリュームへの第３データの書き込みに対して第３更新番号を付与し、前記第２ストレージ装置の前記第２ジャーナルボリュームに前記第３データ及び前記第３更新番号をジャーナルデータとして格納し、
前記第３ストレージ装置は、前記第３データ及び第３更新番号をもとに前記第３データボリュームへのリモートコピーを実行する
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項４】
前記第３ストレージ装置は、前記第１ストレージ装置に破棄が可能なジャーナルデータの更新番号を通知し、
前記第１ストレージ装置は、前記第２ストレージ装置に破棄が可能なジャーナルデータの更新番号を通知する
ことを特徴とする、請求項３に記載のストレージシステム。
【請求項５】
前記第１ストレージ装置は、前記第１データのライトコマンドとともに前記第１更新番号を前記第２ストレージ装置に送信し、
前記第１ストレージ装置は、前記第２データのライトコマンドへの完了応答とともに前記第２更新番号を送信する
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項６】
前記第１ストレージ装置と前記第２ストレージ装置とのペア状態がサスペンドのとき、
前記第１ストレージ装置及び前記第２ストレージ装置は、前記第１データボリュームまたは前記第２データボリュームへの前記データの書き込みに対して、前記データの差分情報を管理する
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項７】
ホストからＩＯ要求を受信する第１ストレージ装置及び第２ストレージ装置と、前記第１ストレージ装置または前記第２ストレージ装置に接続された第３ストレージ装置と、を備えたストレージシステムにおけるデータ管理方法であって、
前記第１ストレージ装置は、データを格納する第１データボリュームと、前記第１データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第１ジャーナルボリュームと、を有し、
前記第２ストレージ装置は、前記第１ストレージ装置に接続され、前記第１データボリュームの二重化データが格納される第２データボリュームと、第２データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第２ジャーナルボリュームと、を有し、
前記第１ストレージ装置は、前記第１データボリュームに仮想ボリューム識別子を付与し、前記第１データボリュームを仮想ボリュームとして前記ホストに提供し、
前記第２ストレージ装置は、前記第２データボリュームに前記第１データボリュームと同じ前記仮想ボリューム識別子を付与し、前記第２データボリュームを前記仮想ボリュームとして前記ホストに提供し、
前記第３ストレージ装置は、前記第１ストレージ装置から受信する前記ジャーナルデータを用いて前記第１データボリュームとリモートコピーペアが構成される第３データボリュームを有し、
前記第１ストレージ装置に前記ホストから第１データが書き込まれると、
前記第１ストレージ装置が、前記第１データボリュームに前記第１データを書き込み、前記第１ジャーナルボリュームに前記第１データ及び第１更新番号をジャーナルデータとして格納し、前記第１データ及び前記第１更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置が、前記第２データボリュームのうち前記第１データボリュームに対応する第２データボリュームに前記第１データを書き込み、前記第１データ及び前記第１更新番号をジャーナルデータとして前記第２ジャーナルボリュームに格納する、第１のステップと、
前記第２ストレージ装置に前記ホストから第２データが書き込まれると、
前記第２ストレージ装置が、前記第２データを前記第１ストレージ装置に送信し、前記第１ストレージ装置が、前記第１データボリュームに前記第２データを書き込み、前記第１ジャーナルボリュームに前記第２データ及び第２更新番号をジャーナルデータとして格納し、前記第２更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置が、前記第２データボリュームに前記第２データを書き込み、前記第２データ及び前記第２更新番号を前記第２ジャーナルボリュームに格納する、第２のステップと
を含むことを特徴とする、データ管理方法。
【請求項８】
前記第３ストレージ装置は、前記第１ストレージ装置の前記第１データボリューム及び前記第１ジャーナルボリュームまたは、前記第２ストレージ装置の前記第２データボリューム及び第２ジャーナルボリュームに対応する前記第３データボリューム及び第３ジャーナルボリュームを有し、
前記方法は
前記第１ストレージ装置が、前記第３ストレージ装置からの要求に応じて、前記第１ジャーナルボリュームに格納された前記ジャーナルデータを前記第３ストレージ装置に送信し、
前記第３ストレージ装置が、前記ジャーナルデータを前記第３ジャーナルボリュームに格納し、前記ジャーナルデータを用いて復元したデータを前記第３データボリュームに書き込む、第３のステップ
を含むことを特徴とする、請求項７に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びデータ管理方法に関し、複数のストレージ装置でデータを管理するストレージシステム及びデータ管理方法に適用して好適なるものである。
【背景技術】
【０００２】
一般に、情報システムでは、記憶デバイスとして、例えば、多数のＨＤＤ（ハードディスクドライブ）を搭載するストレージ装置が備えられ、そのようなストレージ装置を１つ以上含むストレージシステムが、ストレージエリアネットワーク（ＳＡＮ：Storage Area Network）経由で、複数の上位装置（例えばホスト計算機）からアクセスされる。ストレージ装置では、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）技術に従う高信頼化方法を採用することにより、ＨＤＤ単体の信頼性を超えた信頼性を提供している。しかし、大規模な地震や津波、台風などの自然災害が発生すると、ストレージ装置そのものが復旧困難となる可能性がある。このような場合、上記ＲＡＩＤによる信頼性のみでは、情報システムの可用性（サービス継続性）を満足できない状況となる。例えば、金融機関がサービスを停止した場合、経済活動への影響も大きいことから、災害等に備えて遠隔地へバックアップを作成する技術が求められている。【０００３】
このような状況に対する高可用化技術として、特許文献１では、第１のストレージ装置と第２のストレージ装置を含むローカルサイトと、第３のストレージ装置と第４のストレージ装置を含むリモートサイトとの間でリモートコピーする構成が開示されている。ホスト計算機は、第１のストレージ装置に対してリード／ライト要求をする。第２のストレージ装置は、第１のストレージ装置のバックアップであり、第１のストレージ装置に障害が発生した場合に、第２のストレージ装置にフェイルオーバーして業務が継続される。【０００４】
ここで、２つのストレージ装置、例えばストレージ装置Ａとストレージ装置Ｂに同一の識別子を付与し、ストレージ装置Ａが物理ボリュームＡに対応する仮想ボリュームＡをホスト計算機に提供し、ストレージ装置Ｂが物理ボリュームＢに対応し、仮想ボリュームＡと同じ識別子を持つ仮想ボリュームＢをホスト計算機に提供する構成とすると、一般的な交替パス機能を有するホスト計算機からは、各ストレージ装置内の物理ボリュームが１つの仮想ボリュームとして認識される。【０００５】
この構成において、ホスト計算機は、両方のストレージ装置にアクセス（リード/ライト）が可能となる。これにより、冗長性を確保しつつ、２台のストレージ装置にアクセスの負荷を分散させることができる。【０００６】
この機能を実現するためには、２つの物理ボリューム間のデータを同期しておく必要がある。このため、ライト処理では、二つの物理ボリュームにデータが書き込まれた後に書き込み完了となるため、応答に時間がかかる。そこで、応答性能が重視される業務においては、物理ボリューム間の距離を比較的近距離とする必要がある。このため、広域災害が発生すると、２つのストレージ装置がともに使用不可となる可能性があった。そこで、業務継続性を高めるために、リモートコピーにより、遠距離のデータセンタにバックアップを持つことが必要となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１３４９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の通り、サービス継続性を向上させるためにストレージ装置が冗長化される。しかし、特許文献１の技術では、冗長化したストレージ装置のリソースを有効に活用することができなかった。【０００９】
つまり、上記特許文献１の技術では、第１のストレージ装置が通常運用に用いられ、第２のストレージ装置は第１のストレージ装置の障害時に用いられるものである。特許文献１では、ホスト計算機は第１のストレージ装置にのみアクセスし、第１のストレージ装置へのライト要求に対してシーケンシャル番号が付与され、そのシーケンシャル番号が第２のストレージ装置に通知される構成となっている。したがって、特許文献１には、ホスト計算機がボリュームＡとボリュームＢを同じボリュームと認識してライト要求を送信する環境において、いずれのストレージ装置にライト要求が送信された場合であっても、２つのストレージ装置にまたがってジャーナルのシーケンシャル番号の順序性を保証することは開示されていない。【００１０】
また、特許文献１の技術では、通常運用時には第１のストレージ装置がホスト計算機からのアクセスを受けることになる。第１のストレージ装置の複数ボリュームを含むジャーナルグループに対してジャーナルを作成している場合、すなわち、複数のボリュームへのライトに対して一連のシーケンシャル番号を付与している場合には、ある１つのボリュームに障害が発生した場合に、ボリューム毎にフェイルオーバーすることができず、そのジャーナルグループ単位で第２のストレージ装置にフェイルオーバーしなければならなかった。このため、ホスト計算機は一方のストレージ装置にしかアクセスすることができず、第１のストレージ装置及び第２のストレージ装置のリソースを有効活用することができないという問題があった。【００１１】
本発明は以上の点を考慮してなされたもので、二重化したストレージ装置に対してリモートコピーを形成することで耐障害性を高め、二重化したストレージ装置それぞれがデータ及びリモートコピーに用いるデータの更新情報を格納し、ホスト計算機が通常運用時にいずれのストレージ装置にもアクセスできるようにすることでストレージ装置のリソースを有効活用することが可能な計算機システム及びデータ管理方法を提案しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために本発明においては、ホストからＩＯ要求を受信し、データを格納する第１データボリュームと、前記第１データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第１ジャーナルボリュームと、を有する第１ストレージ装置と、前記ホストからＩＯ要求を受信し、前記第１ストレージ装置に接続され、前記第１データボリュームの二重化データが格納される第２データボリュームと、第２データボリュームに書き込まれるデータと前記データが書き込まれた順序を示す更新番号とを含むジャーナルデータを格納する第２ジャーナルボリュームと、を有する第２ストレージ装置と、前記第１ストレージ装置に接続され、前記第１ストレージ装置から受信する前記ジャーナルデータを用いて前記第１データボリュームとリモートコピーペアが構成される第３データボリュームを有する第３ストレージ装置と、を設け、前記第１ストレージ装置は、前記第１データボリュームに仮想ボリューム識別子を付与し、前記第１データボリュームを仮想ボリュームとして前記ホストに提供し、前記第２ストレージ装置は、前記第２データボリュームに前記第１データボリュームと同じ前記仮想ボリューム識別子を付与し、前記第２データボリュームを前記仮想ボリュームとして前記ホストに提供し、前記第１ストレージ装置に前記ホストから第１データが書き込まれると、前記第１ストレージ装置は、前記第１データボリュームに前記第１データを書き込み、前記第１ジャーナルボリュームに前記第１データ及び第１更新番号をジャーナルデータとして格納し、前記第１データ及び前記第１更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置は、前記第２データボリュームのうち前記第１データボリュームに対応する第２データボリュームに前記第１データを書き込み、前記第１データ及び前記第１更新番号をジャーナルデータとして前記第２ジャーナルボリュームに格納し、前記第２ストレージ装置に前記ホストから第２データが書き込まれると、前記第２ストレージ装置は、前記第２データを前記第１ストレージ装置に送信し、前記第１ストレージ装置は、前記第１データボリュームに前記第２データを書き込み、前記第１ジャーナルボリュームに前記第２データ及び第２更新番号をジャーナルデータとして格納し、前記第２更新番号を前記第２ストレージ装置に送信し、前記第２ストレージ装置は、前記第２データボリュームに前記第２データを書き込み、前記第２データ及び前記第２更新番号を前記第２ジャーナルボリュームに格納することを特徴とする、ストレージシステムが提供される。
【発明の効果】
【００１３】
本発明によれば、二重化したストレージ装置に対してリモートコピーを形成することで耐障害性を高め、二重化したストレージ装置それぞれがデータ及びリモートコピーに用いるデータの更新情報を格納し、ホスト計算機が通常運用時にいずれのストレージ装置にもアクセスできるようにすることでストレージ装置のリソースを有効活用することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る概要を説明する概念図である。
【図２】同実施形態にかかるストレージ装置のハードウェア構成を示すブロック図である。
【図３】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図４】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図５】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図６】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図７】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図８】同実施形態にかかるＨＡ構成によるボリューム冗長化機能を説明する概念図である。
【図９】同実施形態にかかるＲＣ構成との連携処理を説明する概念図である。
【図１０】同実施形態にかかるＲＣ構成との連携処理を説明する概念図である。
【図１１】同実施形態にかかるＲＣ構成との連携処理を説明する概念図である。
【図１２】同実施形態にかかるパージ処理について説明する概念図である。
【図１３】同実施形態にかかる第１物理ボリューム障害発生時の処理を説明する概念図である。
【図１４】同実施形態にかかる第２物理ボリューム障害発生時の処理を説明する概念図である。
【図１５】同実施形態にかかる第１及び第２物理ボリューム障害発生時の処理を説明する概念図である。
【図１６】同実施形態にかかる第１ストレージ装置障害発生時の処理を説明する概念図である。
【図１７】同実施形態にかかる第２ストレージ装置障害発生時の処理を説明する概念図である。
【図１８】同実施形態にかかる第３ストレージ装置障害発生時の処理を説明する概念図である。
【図１９】同実施形態にかかる第４ストレージ装置障害発生時の処理を説明する概念図である。
【図２０】同実施形態にかかるパス障害発生時の処理を説明する概念図である。
【図２１】同実施形態にかかるパス障害発生時の処理を説明する概念図である。
【図２２】同実施形態にかかる第３及び第４物理ボリューム障害発生時の処理を説明する概念図である。
【図２３】同実施形態にかかる第１及び第２ストレージ装置障害発生時の処理を説明する概念図である。
【図２４】同実施形態にかかる障害サスペンド時の処理を説明する概念図である。
【図２５】同実施形態にかかる第２ジャーナルボリューム障害発生時の処理を説明する概念図である。
【図２６】同実施形態にかかる第２ジャーナルボリューム及び第１ストレージ装置障害発生時の処理を説明する概念図である。
【図２７】同実施形態にかかる第１ジャーナルボリューム障害発生時の処理を説明する概念図である。
【図２８】同実施形態にかかる第１ジャーナルボリューム及び第２ストレージ装置障害発生時の処理を説明する概念図である。
【図２９】同実施形態にかかるジャーナル登録前の状態を説明する概念図である。
【図３０】同実施形態にかかるジャーナルグループの登録処理を説明する概念図である。
【図３１】同実施形態にかかるＲＣ構成のペア形成処理を説明する概念図である。
【図３２】同実施形態にかかるＲＣ構成のペア形成における初期コピー処理を説明する概念図である。
【図３３】同実施形態にかかる差分ビットマップを用いた初期コピーを説明する概念図である。
【図３４】同実施形態にかかる初期コピー時の障害発生を説明する概念図である。
【図３５】同実施形態にかかる初期コピー時の障害発生を説明する概念図である。
【図３６】同実施形態にかかる初期コピー時障害発生時の処理を説明する概念図である。
【図３７】同実施形態にかかるサスペンド操作時の処理を説明する概念図である。
【図３８】同実施形態にかかるペア形成状態を管理するビットマップを説明する概念図である。
【図３９】同実施形態にかかるサスペンド操作時の処理を説明する概念図である。
【図４０】同実施形態にかかるサスペンド操作時の処理を説明する概念図である。
【図４１】同実施形態にかかるサスペンド操作時の処理を説明する概念図である。
【図４２】同実施形態にかかるサスペンド中のＩ／Ｏ操作を説明する概念図である。
【図４３】同実施形態にかかるペア再開動作を説明する概念図である。
【図４４】同実施形態にかかるペア再開動作を説明する概念図である。
【図４５】同実施形態にかかるペア再開動作を説明する概念図である。
【図４６】同実施形態にかかるペア再開動作を説明する概念図である。
【図４７】同実施形態にかかるリード／ライト処理を示すフローチャートである。
【図４８】同実施形態にかかるリード／ライト処理を示すフローチャートである。
【図４９Ａ】同実施形態にかかるマスタ側のライト処理を示すフローチャートである。
【図４９Ｂ】同実施形態にかかるマスタ側のライト処理を示すフローチャートである。
【図５０】同実施形態にかかる二重ライト処理を二重ライト処理示すフローチャートである。
【図５１Ａ】同実施形態にかかるスレーブ側のライト処理を示すフローチャートである。
【図５１Ｂ】同実施形態にかかるスレーブ側のライト処理を示すフローチャートである。
【図５２】同実施形態にかかるマスタ側のリストア処理を示すフローチャートである。
【図５３】同実施形態にかかるＳＶＯＬ側の二重ライト転送処理を示すフローチャートである。
【図５４】同実施形態にかかるＳＶＯＬ側の二重ライト受領処理を示すフローチャートである。
【図５５】同実施形態にかかるＳＶＯＬ側のパージ処理を示すフローチャートである。
【図５６】同実施形態にかかるＰＶＯＬ側マスタのパージ処理を示すフローチャートである。
【図５７】同実施形態にかかるＰＶＯＬ側スレーブのパージ処理を示すフローチャートである。
【図５８】同実施形態にかかるＰＶＯＬ側マスタ障害によるジャーナル属性切り替え処理を示すフローチャートである。
【図５９】同実施形態にかかるＰＶＯＬ側マスタ障害によるジャーナル属性切り替え処理を示すフローチャートである。
【図６０】同実施形態にかかるＰＶＯＬ側マスタ障害によるジャーナル属性切り替えを示すフローチャートである。
【図６１】同実施形態にかかるＰＶＯＬ側マスタ障害によるジャーナル属性切り替えを示すフローチャートである。
【図６２】同実施形態にかかるＰＶＯＬ側マスタ障害によるジャーナル属性切り替えを示すフローチャートである。
【図６３】同実施形態にかかるＳＶＯＬ側マスタ障害によるジャーナル属性切り替えを示すフローチャートである。
【図６４】同実施形態にかかるＳＶＯＬ側マスタ障害によるジャーナル属性切り替えを示すフローチャートである。
【図６５】本発明の第２の実施形態に係るマーカを利用したデータの書き込み処理を説明する概念図である。
【図６６】同実施形態にかかるフリーズ及びマーカ発行処理を説明する概念図である。
【図６７】同実施形態にかかるマーカを利用したリストア処理を説明する概念図である。
【図６８】同実施形態にかかるマーカを利用したリストア処理を説明する概念図である。
【図６９】同実施形態にかかるマーカを利用したパージ処理を説明する概念図である。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
（１）第１の実施の形態
（１−１）本実施の形態の概要
まず、図１を参照して、本実施の形態の概要について説明する。図１に示すように第１ストレージ装置１００及び第２ストレージ装置１５０に同一の仮想ストレージ装置ＩＤが付与され、第１ストレージ装置１００及び第２ストレージ装置１５０はホスト計算機からは１つの仮想ストレージ装置１０と認識される。第１ストレージ装置１００及び第２ストレージ装置１５０は２つのストレージ装置それぞれで管理される２つの物理ボリュームに、同一の仮想ボリュームＩＤ（Global Device IDともいう）を付与してホスト計算機に提供する機能を有する。交代パス機能を有するホスト計算機３０からは、第１仮想ストレージ装置１０内の２つの物理ボリュームが同一のボリュームであると認識される。このような異なるストレージ装置の２つのボリュームを仮想化してデータを二重化する構成をＨＡ（High-Availability）構成と称し、ＨＡ構成のプライマリ側をＨＡプライマリ、セカンダリ側をＨＡセカンダリと称して以下説明する場合もある。
【００１６】
上記機能を実現させるためには、第１ストレージ装置１００と第２ストレージ装置１５０の２つの物理ボリュームのデータを同期しておく必要がある。また、本実施の形態では、応答性能を向上させるため、第１ストレージ装置１００で管理される物理ボリュームと第２ストレージ装置１５０で管理される物理ボリュームとは、近距離に設置される。ただし、第１ストレージ装置と第２ストレージ装置とは遠距離に設置されてもよい。
【００１７】
さらに、第２仮想ストレージ装置２０は、第１仮想ストレージ装置１０とは遠距離に位置し、第３ストレージ装置２００及び第４ストレージ装置２５０の２つのストレージ装置から構成される。第２仮想ストレージ装置２０も、第１仮想ストレージ装置１０と同様に、第３ストレージ装置２００及び第４ストレージ装置２５０の２つのストレージ装置で管理される２つの物理ボリュームに、同一の仮想ボリュームIDを付与してホスト計算機３０に提供する機能を有する。このような、ＨＡ構成によるボリュームの冗長化機能については、後で詳細に説明する。
【００１８】
また、非同期のリモートコピー機能により、第３ストレージ装置２００及び第４ストレージ装置２５０で管理される物理ボリュームにデータがバックアップされる。広域災害が発生して近距離にある第１ストレージ装置１００及び第２ストレージ装置１５０の２つの物理ボリュームのいずれもが使用不可となった場合には、ホスト計算機３０からのアクセスが第１仮想ストレージ装置１０とは遠距離に位置する第２仮想ストレージ装置２０に切り替えられる。このような非同期のリモートコピー機能によりデータをバックアップする構成をＲＣ（Remote Copy）構成と称して以下説明する場合もある。
【００１９】
これにより、２台のストレージ装置のリソースを有効活用しつつ、非同期のリモートコピーにより遠距離に位置するストレージ装置にデータをバックアップしてシステムの可用性を高めることが可能となる。なお、取りうる構成として、例えば、第１ストレージ装置と第２ストレージ装置が同じデータセンタ内に設置され、第３ストレージ装置と第４ストレージ装置が異なる遠隔地のデータセンタ内に設置される。あるいは、４つのストレージ装置がそれぞれ異なる４つのデータセンタに設置されてもよい。
【００２０】
また、第１仮想ストレージ装置１０と第２仮想ストレージ装置２０との間のリモートコピーは、ジャーナルデータを用いた非同期のリモートコピーが実施される。ジャーナルデータとは、データとデータが書き込まれた順番を示すシーケンシャル番号とを含むデータである。
【００２１】
図１に示すように、第１ストレージ装置１００は、データが格納される物理ボリューム（ＬＤＥＶ：Logical  DEVice）である第１物理ボリューム１０１Ａ及び１０１Ｂと、ジャーナルデータが格納される物理ボリュームである第１ジャーナルボリューム１０２を有する。同様に、第２ストレージ装置１５０は、第２物理ボリューム１５１Ａ及び１５１Ｂと、ジャーナルデータが格納される第２ジャーナルボリューム１５２を有する。
【００２２】
第１ストレージ装置１００は、ホスト計算機３０からライト要求を受信した場合、ライト要求にしたがって、データを第１物理ボリューム１０１Ａまたは１０１Ｂに格納し、かつ、そのデータのジャーナルデータ（データ及びデータが書き込まれた順番を示すシーケンシャル番号）を第１ジャーナルボリューム１０２に格納する。そして、第１ストレージ装置１００は、第２ストレージ装置１５０にデータとシーケンシャル番号を転送する。第２ストレージ装置１５０は、受信したデータを第２物理ボリューム１５１Ａまたは１５１Ｂに格納し、受信したシーケンシャル番号に基づいてジャーナルを作成して第２ジャーナルボリューム１５２に格納する。
【００２３】
また、第３ストレージ装置２００は、第１ストレージ装置１００にリードジャーナル（ＲＤＪＮＬ）コマンドを発行し、第１ジャーナルボリューム１０２に格納されたジャーナルを受け取ることで、第１ストレージ装置１００へのライト要求とは非同期にリモートコピーを実施する。すなわち、第３ストレージ装置２００は、第１ストレージ装置１００から受け取ったジャーナルを第３ジャーナルボリューム２０２に格納し、ジャーナルに含まれるシーケンシャル番号に基づいてデータを第３物理ボリューム２０１Ａまたは２０１Ｂに格納することで、ボリュームを復元する。また、第４ストレージ装置２５０にも、第３ストレージ装置２００からデータとシーケンシャル番号が転送され、ライトデータが第４物理ボリューム２５１Ａまたは２５１Ｂに格納される。
【００２４】
本実施の形態では、上記したように、ホスト計算機３０から、第１ストレージ装置１００に対してだけでなく、第２ストレージ装置１５０に対してもリード／ライト要求がなされる。また、第１ストレージ装置１００が有する第１物理ボリュームと第２ストレージ装置が有する第２物理ボリュームは、ホスト計算機からは同一のボリュームと認識される。このとき、データの書き込みに応じて作成されるジャーナルのシーケンシャル番号の順序性が問題となる。本実施の形態では、ジャーナルのシーケンシャル番号を取得するストレージ装置を第１ストレージ装置１００または第２ストレージ装置１５０のいずれかに固定することにより、ジャーナルのシーケンシャル番号の順序性を保証している。
【００２５】
例えば、第１物理ストレージ装置１００が必ずジャーナルのシーケンシャル番号を取得することとし、ホスト計算機３０から第１ストレージ装置１００にライトされた場合でも、第２ストレージ装置１５０にライトされた場合でも、第１ストレージ装置１００でジャーナルのシーケンシャル番号を取得する。そして、第１ストレージ装置１００で取得したジャーナルのシーケンシャル番号が第２ストレージ装置１５０に転送されて、データと当該シーケンシャル番号が第２ストレージ装置１５０の第２ジャーナルボリューム１５２に格納される。このようにして、第１仮想ストレージ装置１０におけるジャーナルのシーケンシャル番号の順序性を保証することが可能となる。
【００２６】
（１−２）計算機システムの構成
本実施の形態にかかる計算機システムは、図１に示すように、第１ストレージ装置１００及び第２ストレージ装置１５０を含む第１仮想ストレージ装置１０と、第３ストレージ装置２００及び第４ストレージ装置２５０を含む第２仮想ストレージ装置２０と、ホスト計算機３０とから構成される。
【００２７】
第１ストレージ装置１００及び第２ストレージ装置１５０は、ホスト計算機３０とＩ／Ｏネットワーク５０Ａ及び５０Ｂを介して接続される。また、第１ストレージ装置１００と第２ストレージ装置１５０とは、Ｉ／Ｏネットワーク５０Ｃを介して接続される。また、第１ストレージ装置１００と第３ストレージ装置２００とは、Ｉ／Ｏネットワーク４０Ａを介して接続され、第２ストレージ装置１５０と第４ストレージ装置２５０とは、Ｉ／Ｏネットワーク４０Ｂを介して接続される。さらに、第３ストレージ装置２００と第４ストレージ装置２５０とは、Ｉ／Ｏネットワーク４０Ｃを介して接続される。
【００２８】
なお、図１では、第１ストレージ装置１００と第３ストレージ装置２００とが、Ｉ／Ｏネットワーク４０Ａを介して接続され、第２ストレージ装置１５０と第４ストレージ装置２５０とが、Ｉ／Ｏネットワーク４０Ｂを介して接続されているが、かかる例に限定されず、第１ストレージ装置１００と第４ストレージ装置２５０とがＩ／Ｏネットワークを介して接続され、第２ストレージ装置１５０と第３ストレージ装置２００とが、Ｉ／Ｏネットワークを介して接続されていてもよい。
【００２９】
第１ストレージ装置１００、第２ストレージ装置１５０、第３ストレージ装置２００及び第４ストレージ装置２５０のハードウェア構成は後で詳細に説明する。
【００３０】
ホスト計算機３０は、第１仮想ストレージ装置１０または第２仮想ストレージ装置２０に対してデータのリード／ライト要求をする。ホスト計算機３０には、内部ネットワークがあり、そのネットワークに、プロセッサと、メモリと、Ｉ／Ｏポートとが接続されている。プロセッサは、演算処理装置として機能し、メモリに記憶されているプログラムや演算パラメータ等にしたがって、ホスト計算機３０の動作を制御する。
【００３１】
Ｉ／Ｏネットワーク４０Ａ〜Ｃ及び５０Ａ〜Ｃは、ファイバーチャネルによる接続が第一に考えられるが、それ以外でも、ＦＩＣＯＮ（FIbre CONnection：登録商標）やＥｔｈｅｒｎｅｔ（登録商標）とＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）とｉＳＣＳＩ（internet ＳＣＳＩ（Small Computer System Interface））の組み合わせや、Ｅｔｈｅｒｎｅｔ（登録商標）とＮＦＳ(Network File System)やＣＩＦＳ(Common InternetFile System)等のネットワークファイルシステムの組み合わせ等が考えられる。さらに、Ｉ／Ｏネットワーク１３００は、Ｉ／Ｏリクエストを転送可能な通信装置であればこれ以外でもよい。
【００３２】
（１−３）ストレージ装置の構成
次に、図２を参照して、第１ストレージ装置１００のハードウェア構成について説明する。図２に示すように、第１ストレージ装置１００は、コントローラ１１０Ａ、１１０Ｂ（以降、コントローラ１１０と総称して説明する場合もある）と、キャッシュメモリ１１８と、複数のＨＤＤ（ハードディスクドライブ（Hard Disk Drive））１２０とを備える。コントローラ１１０及びキャッシュメモリ１１８は、それぞれ複数のコンポーネントから構成してもよい。複数のコンポーネントで構成することにより、コンポーネント単体に障害が発生して閉塞した場合でも、残りのコンポーネントを用いてリードやライトに代表されるＩ／Ｏリクエストを引き続き受けることができる。なお、第１ストレージ装置は、ＨＤＤの代わりに、または、ＨＤＤに加えてＳＳＤ（Solid State Drive）などの記憶デバイスを備えても良い。
【００３３】
コントローラ１１０Ａは、第１ストレージ装置１００の動作を制御する装置（例えば回路基盤）である。コントローラ１１０Ａには、内部ネットワーク１１７があり、その内部ネットワーク１１７に、Ｉ／Ｏポート１１３、キャッシュポート１１６、管理ポート１１４、バックエンドポート１１５、プロセッサ（例えばＣＰＵ（Central Processing Unit））１１１及びメモリ１１２が接続されている。コントローラ１１０Ａと、コントローラ１１０Ｂとキャッシュメモリ１１８とは、内部ネットワーク１１７にて相互に接続される。また、コントローラ１１０と各ＨＤＤ１２０とは、複数のバックエンドネットワーク１２１にて相互に接続される。
【００３４】
また、図２では、Ｉ／Ｏポート１１３は、コントローラ１１０に一つ存在することになっているが、実際には、複数のＩ／Ｏポート１１３がコントローラ１１０に存在してもよい。
【００３５】
また、第２ストレージ装置１５０、第３ストレージ装置２００及び第４ストレージ装置２５０のハードウェア構成は、第１ストレージ装置１００と同様のため省略する。
【００３６】
以上のハードウェア構成によって、第１ストレージ装置１００、第２ストレージ装置１５０、第３ストレージ装置２００または第４ストレージ装置２５０のＨＤＤ１２０に保存された全て又は一部のデータを、ホスト３０が読出したり書き込んだりすることができるようになる。なお、以下では、各ストレージ装置を主語として処理を説明する場合もあるが、実際には、各ストレージ装置のメモリ１１２に記憶されているプログラムに基づいてプロセッサ１１１がその処理を実行することは言うまでもない。
【００３７】
コントローラは、複数のＨＤＤをＲＡＩＤグループとして制御する。また、コントローラは、ＲＡＩＤグループに基づく記憶領域を分割して１つ以上の物理ボリュームを構成する。つまり、物理ボリュームはＲＡＩＤグループ内の複数のＨＤＤそれぞれの記憶領域の一部に基づいて構成される。コントローラは、ホスト計算機からボリュームに対するリード／ライト要求を受領すると、ボリュームに対応するＨＤＤを特定し、データの読み出し／書き込みを実行する。
【００３８】
なお、ＲＡＩＤグループは、特定のＲＡＩＤレベルで複数のＨＤＤを１つにまとめたものである。ＲＡＩＤレベルは、例えば、同じデータを複数のドライブに同時に書き込む「ミラーリング」と呼ばれるＲＡＩＤ１、ＨＤＤに格納するデータを複数のドライブに分割して書き込む際にパリティデータも記録するＲＡＩＤ５、パリティデータを２重に記録し同時に２台のドライブが故障した場合に備えるＲＡＩＤ６などが挙げられる。本実施の形態では、ＲＡＩＤレベルは何れのレベルでもよい。
【００３９】
（１−４）ＨＡ構成によるボリューム冗長化
次に、図３〜８を参照して、ＨＡ構成によるボリューム冗長化機能について説明する。上記したように、ボリューム冗長化機能は、異なる物理ボリュームに同一の仮想ボリュームＩＤを付与することにより、あたかも１つのボリュームであるようにホスト計算機３０に認識させる機能である。
【００４０】
図３を用いて仮想ストレージ装置及び仮想ボリュームについて説明する。第１のストレージ装置１００及び第２のストレージ装置１５０は、同一の仮想ストレージ装置ＩＤをホスト計算機３０に提供する。これにより、図３に示すように、ホスト計算機３０は、第１のストレージ装置１００と第２のストレージ装置１５０とを区別せず、仮想ストレージ装置１０を認識する。各ストレージ装置は、それぞれのストレージ装置ＩＤと仮想ストレージ装置ＩＤの対応関係を保持する。例えば、各ストレージ装置のメモリ１１２上にストレージ装置ＩＤと仮想ストレージ装置ＩＤのマッピングテーブルが格納される。仮想ストレージ装置は、複数設定されてもよい。
【００４１】
各ストレージ装置のポートＩＤ（例えば、WWN: World Wide Name）にストレージ装置ＩＤが含まれる場合は、ポートＩＤに対して仮想ポートＩＤが設定されてもよい。つまり、仮想ストレージ装置上に複数の仮想ポートが存在し、各仮想ポートが複数の物理ストレージ装置上のポートのいずれかに対応付けられる。そして、ホスト計算機３０は、いずれの物理ストレージ装置にポートが存在するかを区別することなく、仮想ポートＩＤを指定してアクセス要求を発行する。この場合、各物理ストレージ装置は、メモリ上に仮想ポートと物理ストレージ装置のポートの対応関係を示す情報（例えば、マッピングテーブル）を保持する。
【００４２】
ホスト計算機３０が認識する仮想ボリューム１１は、第１ストレージ装置１００の第１物理ボリューム１０１と第２ストレージ装置１５０の第２物理ボリューム１５１とで二重化して管理されている。具体的に、第１物理ボリューム１０１の物理ＩＤと第２物理ボリューム１５１の物理ＩＤに、同一の仮想ボリューム１１の仮想ボリュームＩＤが対応づけられて管理されている。各ストレージ装置は、仮想ボリュームＩＤと仮想ボリュームＩＤに対応付けられている複数の物理ボリュームＩＤの対応関係を保持する。例えば、各ストレージ装置のメモリ１１２上に仮想ボリュームＩＤと物理ボリュームＩＤのマッピングテーブルが格納される。
【００４３】
このため、ホスト計算機３０は、複数のストレージ装置を１台の仮想ストレージ装置１０と認識することができ、物理ボリュームに対するアクセスと同様に、仮想ボリューム１１にアクセスすることができる。そして、仮想ボリューム１１を介していずれかの物理ボリュームに書き込まれたデータは、もう一方の物理ボリュームに書き込まれてデータが二重化される。
【００４４】
したがって、ＨＡ構成ではないストレージシステムの場合には、物理ボリュームに障害が発生するとデータへのアクセスが不可能となってしまうが、上記したボリューム冗長化機能により、二重化された一方の物理ボリュームに障害が発生しても、他方の物理ボリュームを使用してデータへのアクセスが可能となる。
【００４５】
また、旧物理ストレージ装置から新物理ストレージ装置にデータを移行する際には、物理ストレージ装置を仮想化して、新ストレージ装置を旧ストレージ装置と同一の仮想ストレージ装置としてホスト計算機に認識させることにより、移行前後で同様の運用を実施することが可能となる。つまり、ホスト計算機が業務を停止することなく、物理ストレージ装置のリプレースが可能となる。
【００４６】
上記したように、ボリューム冗長化機能では、二重化されている一方の物理ボリュームが使用不可となっても、他方の物理ボリュームを使用してデータへのアクセスを可能としている。このため、障害発生時以外には、２つの物理ボリュームにデータを二重化して書き込む必要がある。ここで、図４及び図５を参照して、データを二重化する際のライト処理について説明する。
【００４７】
図４に示すように、第１仮想ストレージ装置１０は、第１ストレージ装置１００及び第２ストレージ装置１５０から構成される。以下では、ＨＡ構成のプライマリ装置（ＨＡプライマリ）を第１ストレージ装置１００とし、ＨＡ構成のセカンダリ装置（ＨＡ）を第２ストレージ装置１５０として説明する。ＨＡ構成では、データの整合性を保つため、２つの装置のうちいずれの装置のボリュームから書き込むかを示す書き込みルールを予め決める必要がある。以下では、ＨＡプライマリ側、すなわち、第１ストレージ装置１００から先に書き込むライト処理について説明する。
【００４８】
図４に示すように、ホスト計算機３０から第１ストレージ装置１００に書き込み要求がされると（Ｓ１０１）、第１ストレージ装置１００はデータを第１物理ボリューム１０１に書き込む（Ｓ１０２）。そして、第１ストレージ装置１００は、データを第２ストレージ装置１５０に転送し（Ｓ１０３）、第２ストレージ装置１５０は、第２物理ボリューム１５１にデータを書き込む（Ｓ１０４）。図４に示すクォーラムディスク（Quorum Disk）の役割については後で詳細に説明する。
【００４９】
また、図５に示すように、ホスト計算機３０から第２ストレージ装置１５０に書き込み要求がされると（Ｓ１１１）、第２ストレージ装置１５０はデータを第１ストレージ装置１００に転送する（Ｓ１１２）。そして、第１ストレージ装置１００が第１物理ボリューム１０１にデータを書き込んだ後（Ｓ１１３）、第２ストレージ装置１５０の第２物理ボリューム１５１にもデータが書き込まれる（Ｓ１１４）。
【００５０】
次に、リード処理について説明する。例えば、プライマリ側にのみデータがライトされた状態で、プライマリ側にのみライトされたデータがリードされることが考えられる。このとき、セカンダリ側にデータをライトする前にプライマリ側が障害により使用不可となり、セカンダリ側にリードコマンドが発行されると、プライマリ側のデータより古いデータがリードされてしまうことが考えられる。このようなデータの不整合を回避するため、ライト処理に応じてリード処理の順序性を保証する手段と、同一データ範囲へのライト処理とリード処理を排他制御することが考えられる。以下、詳細に説明する。
【００５１】
まず、図６及び図７を参照して、リード処理の順序性を保証する手段について説明する。リード処理におけるデータのリード順序は、上記した書き込みルールに応じて異なる。ライト処理の順番をプライマリ側からセカンダリ側とした場合には、セカンダリ側からリード処理を実行する。逆に、ライト処理の順番をセカンダリ側からプライマリ側とした場合には、プライマリ側からリード処理を実行する。
【００５２】
以下では、セカンダリ側からリード処理する場合について説明する。図６に示すように、ホスト計算機３０から第１ストレージ装置１００に読み込み要求がされると（Ｓ１２１）、第１ストレージ装置１００から第２ストレージ装置１５０に読み込み要求が通知されて、第２ストレージ装置１５０の第２物理ボリューム１５１からデータがリードされる（Ｓ１２２）。
【００５３】
また、図７に示すように、ホスト計算機３０から第２ストレージ装置１５０に読み込み要求がされると（Ｓ１３１）、第２ストレージ装置１５０の第２物理ボリューム１５１からデータがリードされる（Ｓ１３２）。このように、ホスト計算機３０からリードの読み込み要求があった場合に、必ずセカンダリ側からデータをリードすることにより、ボリューム障害時のデータの不整合を回避することができる。
【００５４】
次に、図８を参照して、ライト処理とリード処理の排他制御について説明する。ホスト計算機３０から第１ストレージ装置に書き込み要求がされ（Ｓ１４１）、第１のボリューム１０１にデータが書き込まれる（Ｓ１４２）。その後、第２ストレージ装置１５０にデータが転送される前に第１ストレージ装置１００に障害が発生した場合には、第２ストレージ装置へのデータ転送（Ｓ１４５）と第２物理ボリューム１５１へのデータの書き込み（Ｓ１４６）がされない。
【００５５】
このとき、第２ストレージ装置１５０にデータの読み込み要求がされると（Ｓ１４７）、第２物理ボリューム１５１には新しいデータが書き込まれてないため、古いデータがリードされる（Ｓ１４８）。一方、第１ストレージ装置１００側では、新しいデータの第２ストレージ装置１５０側での書き込みが完了しない限り第１ボリューム１０１へのリードコマンドを排他する。これにより、データ転送前に第１ストレージ装置１００に障害が発生しても、第１ストレージ装置１００側で新しいデータをリードさせていないため、データの巻き戻りが発生せず、ボリューム障害時のデータの不整合を回避することができる。
【００５６】
次に、ＨＡ構成を形成する際の初期コピーについて説明する。ＨＡ構成の初期コピーではＨＡ構成のプライマリ側（ＨＡプライマリ側）の全データをＨＡ構成のセカンダリ（ＨＡセカンダリ側）にコピーする。そして、先頭データ位置から最終データ位置までを差分ビットマップ管理して、先頭から最終まで、差分ビットマップがＯＮのデータを順番にコピーする。初期コピー時は、全データの差分ビットマップがＯＮに設定される。
【００５７】
リード／ライト処理の動作は上記と同様に、ＨＡプライマリ側からＨＡセカンダリ側の順でライト処理が実施されるとする。初期コピーが完了したデータ位置へのライト処理動作は、ＨＡプライマリ側からＨＡセカンダリ側の順で実施される。また、初期コピーが完了していないデータ位置へのライト処理は、セカンダリ側にはライトされず、ＨＡプライマリ側のみライト処理が実施され、ＨＡプライマリ側にライトされたデータは初期コピーによりＨＡセカンダリ側にライトされる。
【００５８】
なお、初期コピー中にＨＡプライマリ側で障害が発生した場合には、ＨＡセカンダリ側のデータはコピーが完了しておらず使用不可のため、ＨＡプライマリ側でクォーラムディスクのロック（Rock）が取得される。クォーラムディスク１０５は、装置間の調停を行うために使用される記憶デバイスである。ＨＡ構成では、クォーラムディスク１０５に対してＳＣＳＩコマンドを用いて共有排他制御が実施される。上記したように、初期コピー中にＨＡプライマリ側で障害が発生した場合には、ＨＡプライマリ側でクォーラムディスクのロックが取得される、ＨＡセカンダリ側へのアクセスがガードされる。
【００５９】
次に、初期コピー完了後に障害が発生した場合について説明する。
【００６０】
（ＨＡプライマリボリューム障害／装置障害）
ＨＡプライマリ側で障害が発生した場合には、ＨＡプライマリ側にデータが二重化されないため、ＨＡプライマリ側のデータはＨＡセカンダリ側に比べて古いデータとなる。ホスト計算機３０から古いデータへのアクセスを防ぐため、ＨＡセカンダリ側でクォーラムディスク１０５のロックが取得される。ＨＡセカンダリ側でのロック取得により、ＨＡプライマリ側へのアクセスがガードされる。また、ＨＡセカンダリ側でクォーラムディスク１０５のロックが取得された時点で、ＨＡセカンダリ側だった第２ストレージ装置１５０がＨＡプライマリ側の属性を有する。そして、ＨＡプライマリ側に２重化できないデータは、ＨＡセカンダリ側で差分管理される。
【００６１】
（ＨＡセカンダリボリューム障害／装置障害）
また、ＨＡセカンダリ側で障害が発生した場合には、ＨＡプライマリ側でクォーラムディスク１０５のロックが取得される。ＨＡプライマリ側でのロック取得により、ＨＡセカンダリ側へのアクセスがガードされる。また、ＨＡセカンダリに二重化できないデータは、ＨＡプライマリ側で差分管理される。
【００６２】
（パス障害）
例えば、ホスト計算機３０からセカンダリ側に書き込み要求がされたが、パス障害によりプライマリ側へのデータの書き込みが不可となったとする。この場合、ＨＡセカンダリ側でクォーラムディスク１０５のロックが取得される。ＨＡセカンダリ側でのロック取得により、ＨＡプライマリ側へのアクセスがガードされる。また、ホスト計算機３０からプライマリ側に書き込み要求がされたが、パス障害によりセカンダリ側へのデータの書き込みが不可となったとする。この場合、ＨＡプライマリ側でクォーラムディスク１０５のロックが取得される。ＨＡプライマリ側でのロック取得により、ＨＡセカンダリ側へのアクセスがガードされる。
【００６３】
（クォーラムディスク障害）
また、クォーラムディスク１０５に障害が発生した場合には、ＨＡプライマリ側の定期的な検査により障害が検出される。そして、ＨＡプライマリ側でクォーラムディスクのロックが取得され、ＨＡセカンダリ側を閉塞状態とする。これは、クォーラムディスク１０５の障害発生後、プライマリ側とセカンダリ側のデータが同期できなくなった場合に、どちらのデータが最新データであるかの判断を容易にするためである。そして、クォーラムディスクの障害が回復した後に、クォーラムディスク１０５にＨＡプライマリ側のロック取得情報を書き込む。
【００６４】
次に、ＨＡ構成における障害回復処理について説明する。まず、ＨＡセカンダリ側の障害が回復した場合について説明する。まず、ＨＡセカンダリ側の障害箇所を回復する。そして、ＨＡプライマリ側からＨＡセカンダリ側にリシンク操作を実施する。リシンク操作実施により、ＨＡプライマリ側とＨＡセカンダリ側との間の差分データがコピーされる。そして、リシンク完了時に、ＨＡプライマリ側のクォーラムディスク１０５のロック状態を解除する。そして、ホスト計算機３０からＨＡセカンダリ側へのパスを回復して、ＨＡセカンダリ側の閉塞状態を回復する。
【００６５】
また、リシンク操作による差分データコピー中、差分ビットマップがＯＮになっているデータ範囲へのライト処理は、差分ビットマップをＯＮにしたまま、ＨＡプライマリ側のみライト処理し、差分コピーによってＨＡセカンダリ側にコピーする。ＨＡプライマリ／ＨＡセカンダリ側の両方にライト処理をして差分ビットマップをＯＦＦとすることも考えられるが、この場合、ＨＡセカンダリ側へのライト処理後にＨＡプライマリ側で差分ビットマップをＯＦＦする処理により、レスポンスタイムが増加してしまう。また、差分ビットマップがＯＦＦとなっているデータ範囲へのライト処理は、差分ビットマップはＯＦＦのまま、ＨＡプライマリ側、ＨＡセカンダリ側の両方にデータを二重書き込みする。
【００６６】
次に、ＨＡプライマリ側の障害が回復した場合について説明する。まず、元のＨＡプライマリ側の障害箇所を回復する。なお、クォーラムディスク１０５のロック取得時点から、ＨＡセカンダリ側とＨＡプライマリ側の役割を逆転させる。そして、元のＨＡセカンダリ側から元のＨＡプライマリ側にリシンク操作を実施する。リシンク操作実施により、元のＨＡセカンダリ側から元のＨＡプライマリ側との間の差分データがコピーされる。そして、リシンク完了時に、元のＨＡセカンダリのクォーラムディスクのロック状態を解除する。そして、ホスト計算機３０から元のＨＡプライマリ側へのパスを回復して、ＨＡプライマリ側の閉塞状態を回復する。
【００６７】
また、リシンク操作による差分データコピー中、差分ビットマップがＯＮになっているデータ範囲へのライト処理は、差分ビットマップをＯＮにしたまま、元のＨＡセカンダリ側のみライト処理し、差分コピーによって元のＨＡプライマリ側にコピーする。元のＨＡセカンダリ／元のＨＡプライマリ側の両方にライト処理をして差分ビットマップをＯＦＦとすることも考えられるが、この場合、元のＨＡプライマリ側へのライト処理後にＨＡセカンダリ側で差分ビットマップをＯＦＦする処理により、レスポンスタイムが増加してしまう。また、差分ビットマップがＯＦＦとなっているデータ範囲へのライト処理は、差分ビットマップはＯＦＦのまま、元のＨＡセカンダリ側、元のＨＡプライマリ側の両方にデータを二重書き込みする。
【００６８】
（１−５）非同期リモートコピー機能との連携
次に、上記した非同期のリモートコピー機能との連携について説明する。以下では、上記したＨＡ構成と、非同期のリモートコピー機能によりデータをバックアップする構成であるＲＣ構成とを連携した場合の処理について説明する。
【００６９】
（ライト処理その１）
図９を参照して、ホスト計算機３０からＨＡプライマリ側に書き込み要求がされた場合の通常処理について説明する。図９は、図１の構成と同様に、第１ストレージ装置１００及び第２ストレージ装置１５０は、ボリュームを二重化するＨＡ構成を形成し、第３ストレージ装置２００及び第４ストレージ装置２５０もＨＡ構成を形成している。また、第１ストレージ装置及び第２ストレージ装置を含む第１仮想ストレージ装置１０と、第３ストレージ装置２００及び第４ストレージ装置２５０を含む第２仮想ストレージ装置２０とは非同期のリモートコピー機能によりデータが二重化されるＲＣ構成を形成している。
【００７０】
まず、ホスト計算機３０から第１ストレージ装置１００に書き込み要求がされると（Ｓ２０１）、第１ストレージ装置１００はデータを第１物理ボリューム１０１Ａに書き込む（Ｓ２０２）。そして、第１ストレージ装置１００は、データのシーケンシャル番号を取得して（Ｓ２０３）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ２０４）。そして、第１ストレージ装置１００は、データとシーケンシャル番号を第２ストレージ装置１５０に転送して、データの二重化処理を実施する（Ｓ２０５）。なお、図９に示すように、ＨＡ構成のプライマリ側、すなわち、ジャーナルを作成する側のジャーナル属性（図中ＪＮＬＧ状態と表記）はマスタ（図中Ｍａｓｔｅｒ）となり、ＨＡ構成のセカンダリ側、すなわち作成されたジャーナルを受け取る側のジャーナル属性はスレーブとなる。
【００７１】
第２ストレージ装置１５０は、第２物理ボリューム１５１Ａにデータを書き込み（Ｓ２０６）、ステップＳ２０５で送信されたシーケンシャル番号を用いて第２ジャーナルボリューム１５２にジャーナルを作成する（Ｓ２０７）。そして、第２ストレージ装置１５０は、第１ストレージ装置１００に終了応答し（Ｓ２０８）、第１ストレージ装置１００はホスト計算機３０に終了応答する（Ｓ２０９）。
【００７２】
続いて、第３ストレージ装置２００は、非同期にＲＤＪＮＬコマンドを発行して、第１ストレージ装置１００の第１ジャーナルボリューム１０２に格納されているジャーナルを取得する（Ｓ２１１）。第３ストレージ装置２００は、第３ジャーナルボリューム２０２にジャーナルデータを格納し（Ｓ２１２）、ジャーナルデータからデータを復元するリストア処理を実施する（Ｓ２１３）。第３ストレージ装置２００は、データとシーケンシャル番号を第４ストレージ装置２５０に転送して、データの二重化処理を実施する（Ｓ２１４）。
【００７３】
そして、第４ストレージ装置２５０はデータを第４物理ボリューム２５１Ａに書き込み（Ｓ２１５）、第３ストレージ装置２００はデータを第３物理ボリューム２０１Ａに書き込む（Ｓ２１６）。
【００７４】
（ライト処理その２）
次に、図１０を参照して、ホスト計算機３０からＨＡセカンダリ側に書き込み要求がされた場合の通常処理について説明する。
【００７５】
まず、ホスト計算機３０から第２ストレージ装置１５０に書き込み要求がされると（Ｓ２２１）、第２ストレージ装置１５０は、データを第１ストレージ装置１００に転送する（Ｓ２２２）。そして、第１ストレージ装置１００は、データを第１物理ボリューム１０１Ａに書き込み（Ｓ２２３）、データのシーケンシャル番号を取得して（Ｓ２２４）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ２２５）。そして、第１ストレージ装置１００は、データとシーケンシャル番号を第２ストレージ装置１５０に転送して、終了応答する（Ｓ２２６）。
【００７６】
第２ストレージ装置１５０は、第２物理ボリューム１５１Ａにデータを書き込み（Ｓ２２７）、ステップＳ２２６で送信されたシーケンシャル番号を用いて第２ジャーナルボリューム１５２にジャーナルを作成する（Ｓ２２８）。そして、第２ストレージ装置１５０は、ホスト計算機３０に終了応答する（Ｓ２２９）。
【００７７】
続く第２仮想ストレージ装置２０の第３ストレージ装置２００及び第４ストレージ装置２５０における非同期のリモートコピーの処理は図９の処理と同様のため、詳細な説明は省略する。
【００７８】
（ライト処理その３）
また、図１１は、ホスト計算機３０からＨＡプライマリ側及びＨＡセカンダリ側の両方に書き込み要求がされた場合の通常処理について説明しているが、ＨＡプライマリ側に書き込み要求がされた場合は図９で説明した処理と同様であり、ＨＡセカンダリ側に書き込み要求がされた場合は図１０で説明した処理と同様であるため、詳細な説明は省略する。また、ＨＡプライマリ側及びＨＡセカンダリ側の両方に書き込み要求がされた場合も、非同期のリモートコピー処理は、図９の処理と同様のため詳細な説明は省略する。
【００７９】
本実施の形態では、各ストレージ装置が複数ボリュームを有していた場合、複数ボリュームに対してジャーナルを作成している。具体的に、図１１に示すように、第１のストレージ装置１００の第１物理ボリューム１０１Ｂにデータの書き込みがされた場合には（Ｓ２４２）、当該データに対するシーケンシャル番号が取得されて（Ｓ２４３）、第１ジャーナルボリューム１０２にジャーナルが作成される（Ｓ２４４）。また、第１物理ボリューム１０１Ａにデータの書き込みがされた場合には（Ｓ２５３）、当該データに対するシーケンシャル番号が取得されて（Ｓ２５４）、第１ジャーナルボリューム１０２にジャーナルが作成される（Ｓ２５５）。
【００８０】
このように、本実施の形態では、複数ボリュームへの書き込みに対して一連のシーケンシャル番号を付与する。複数ボリュームのうち１つのボリュームに障害が発生した場合に、障害が発生したボリュームが属するジャーナルグループ単位でフェイルオーバーさせることなく、ボリューム単位でフェイルオーバーさせることができる。これにより、障害発生時にホスト計算機３０からのアクセスが一方のストレージ装置に偏って、リソースを有効活用できなくなる事態を回避することができる。
【００８１】
（パージ処理）
次に、ジャーナルデータを破棄するパージ処理について説明する。図１２に示すように、第２仮想ストレージ装置２０において二重化処理（Ｓ２６４、Ｓ２６５）が正常に実施され、第３ストレージ装置２００の第３物理ボリューム２０１Ｂにデータが書き込まれ（Ｓ２６６）、ジャーナルデータがパージされる（Ｓ２６７）。
【００８２】
第３ストレージ装置２００は、ＲＤＪＮＬコマンドを用いて第１ストレージ装置１００からジャーナルを取得する際に、ジャーナルのパージ可能なシーケンシャル番号を第１ストレージ装置１００に通知する（Ｓ２６８）。第１ストレージ装置１００は、第１ジャーナルボリューム１０２からステップＳ２６８で通知されたジャーナルをパージする（Ｓ２６９）。そして、第１ストレージ装置１００は第２ストレージ装置１５０にジャーナルのパージ可能なシーケンシャル番号を通知する（Ｓ２７０）。第２ストレージ装置１５０は、ステップＳ２７０で通知されたシーケンシャル番号のジャーナルを第２ジャーナルボリューム１５２からパージする（Ｓ２７１）。
【００８３】
（１−６）障害パターン
次に、上記したＨＡ構成と、非同期のリモートコピー機能によりデータをバックアップする構成であるＲＣ構成とを連携した構成において、障害が発生した場合の処理について説明する。
【００８４】
（障害パターン１）
図１３は、第１ストレージ装置１００の第１物理ボリューム１０１Ａに障害が発生した場合を示す。図１３に示すように、ホスト計算機３０から第２ストレージ装置１５０に書き込み要求がされると（Ｓ２２１）、第２ストレージ装置１５０は、データを第１ストレージ装置１５０に転送する（Ｓ２２２）。しかし、第１物理ボリューム１０１Ａに障害が発生しているためデータの書き込みはせずに、データのシーケンシャル番号を取得して（Ｓ２２４）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ２２５）。
【００８５】
ステップＳ２２６以降は、図１０に示す書き込み処理と同様のため、詳細な説明は省略する。このように、第１物理ボリューム１０１Ａに障害が発生した場合でも、第１ストレージ装置１００でデータのシーケンシャル番号を取得してジャーナルを作成することにより、上記したＨＡ構成におけるデータの順序性を確保しつつ、ボリューム障害発生後、さらに別のペアボリューム（例えば、第１物理ボリューム１０１Ｂと第２物理ボリューム１５１Ｂのペア）のいずれかに障害が発生した場合でも、非同期のリモートコピーを継続することを可能としている。
【００８６】
（障害パターン２）
図１４は、第２ストレージ装置１５０の第２物理ボリューム１５１Ｂに障害が発生した場合を示す。図１４に示すように、ホスト計算機３０から第１ストレージ装置１００に書き込み要求がされると（Ｓ２０１）、第１ストレージ装置１００はデータを第１物理ボリューム１０１Ｂに書き込む（Ｓ２０２）。そして、第１ストレージ装置１００は、データのシーケンシャル番号を取得して（Ｓ２０３）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ２０４）。そして、第１ストレージ装置１００は、データとシーケンシャル番号を第２ストレージ装置１５０に転送して、データの二重化処理を実施する（Ｓ２０５）。
【００８７】
第２ストレージ装置１５０は、第２物理ボリューム１５１Ｂに障害が発生しているため、第２物理ボリューム１５１Ｂへのデータの書き込みはせずに、ステップＳ２０５で送信されたシーケンシャル番号を用いて第２ジャーナルボリューム１５２にジャーナルを作成する（Ｓ２０７）。そして、第２ストレージ装置１５０は、第１ストレージ装置１００に終了応答し（Ｓ２０８）、第１ストレージ装置１００はホスト計算機３０に終了応答する（Ｓ２０９）。
【００８８】
続く第２仮想ストレージ装置２０の第３ストレージ装置２００及び第４ストレージ装置２５０における非同期のリモートコピーの処理は図９の処理と同様のため、詳細な説明は省略する。
【００８９】
このように、第２物理ボリューム１０１Ｂに障害が発生した場合でも、第１ストレージ装置１００でデータのシーケンシャル番号を取得してジャーナルを作成することにより、上記したＨＡ構成におけるデータの順序性を確保しつつ、ボリューム障害発生後、さらに別のペアボリュームに障害が発生したような場合でも、非同期のリモートコピーを継続することを可能としている。
【００９０】
（障害パターン３）
図１５は、第１ストレージ装置１００の第１物理ボリューム１０１Ａ及び第２ストレージ装置２００の第２物理ボリューム１５１Ｂに障害が発生した場合を示す。図１５に示すように、第１物理ボリューム１０１Ａ及び第２物理ボリューム１５１Ｂに障害が発生した場合には、ステップＳ２５３及びステップＳ２４６において、両ボリュームにデータの書き込みはされない。しかし、ステップＳ２４３及びステップＳ２４４で、シーケンシャル番号の取得とジャーナルの作成は実施される。また、ステップＳ２４７におけるジャーナル作成も実施される。
【００９１】
このように、両装置のボリュームに障害が発生してもジャーナルの作成を継続することにより、第１ストレージ装置１００または第２ストレージ装置１５０のボリューム障害が発生した後、さらに別のペアボリュームに障害が発生したような場合でも、非同期のリモートコピーを継続することを可能としている。
【００９２】
（障害パターン４）
図１６は、第１ストレージ装置１００に障害が発生した場合を示す。第１ストレージ装置１００に障害が発生すると、第２ストレージ装置１５０に書き込み要求がされても、第１ストレージ装置１００にデータを転送することができず、ステップＳ２２２〜ステップＳ２２６までの二重化処理を実施することができない。具体的に、第２ストレージ装置１５０は、第１ストレージ装置１００への二重化ライト処理不可を検出し、クォーラムディスク１０５においてジャーナルロックを取得した後は、ジャーナルの二重化ライト処理を停止する。
【００９３】
そして、第２ストレージ装置１５０は、クォーラムディスク１０５において、ボリュームペア及びジャーナルグループのすべてのロックが取得できた場合に、第２ストレージ装置１５０をプライマリ側に切り替える。そして、ジャーナル属性（図中ＪＮＬＧ状態と表記）をスレーブ（Slave）からマスタ（Master）に切り替えて、第２物理ボリューム１５１Ａにデータを書き込む（Ｓ２２７）。第２ストレージ装置１５０は、第２ジャーナルボリューム１５２に作成済みのジャーナルのシーケンシャル番号に１を加算したシーケンシャル番号を採番して（Ｓ３０１）、ジャーナルを作成する（Ｓ３０２）。
【００９４】
なお、第１ストレージ装置１００が障害となった場合には、ジャーナルグループ及びボリュームペアのロック状態を閉塞状態（Blocked）とする。また、第１ストレージ装置１００がロック状態をブロック（Block）状態に設定する前にダウンした場合には、第１ストレージ装置１００の回復時に、クォーラムディスク１０５を読み込み、ＨＡ構成の相手側がLockを取得している場合には、自身のロック状態をブロック（Block）状態に遷移させる。
【００９５】
そして、第２ストレージ装置１５０は、第４ストレージ装置２５０にジャーナル属性のマスタが切り替わったこと、すなわち、第２ストレージ装置１５０がプライマリ側となったことを通知する。なお、第２ストレージ装置１５０と第３ストレージ装置２００とがネットワークを介して接続されている場合には、第３ストレージ装置２００にジャーナル属性のマスタ切り替えを通知してもよい。
【００９６】
第４ストレージ装置２５０は、第２ストレージ装置１５０からのジャーナル属性切り替えの通知を受けて、ジャーナル属性をマスタに変更、また、第３ストレージ装置２００に対してＲＤＪＮＬ停止指示を発行する。また、第３ストレージ装置２００は、ＲＤＪＮＬ停止指示を受領して、ＲＤＪＮＬコマンドの発行を停止する。そして、第４ストレージ装置２５０は、第２ストレージ装置１５０に対してリストア済みのシーケンシャル番号に１を加算してＲＤＪＮＬコマンド（Ｓ３１１）を発行してジャーナルを取得し（Ｓ３１２）、リストアを開始する（Ｓ３１３）。
【００９７】
そして、第４ストレージ装置２５０は、データとシーケンシャル番号を第３ストレージ装置２００に転送して、データの二重化処理を実施する（Ｓ３１４）。第３ストレージ装置２００はデータを第３物理ボリューム２０１Ａに書き込み（Ｓ３１５）、第４ストレージ装置２５０はデータを第４物理ボリューム２５１Ａに書き込む（Ｓ３１６）。
【００９８】
上記したように、第１ストレージ装置１００及び第２ストレージ装置１５０では、ＨＡ構成により複数ボリュームもジャーナルも二重管理されている。このため、第１ストレージ装置１００に障害が発生した場合でも、ホスト計算機３０から第２ストレージ装置１５０へのアクセスをそのまま継続し、第２ストレージ装置１５０とＲＣ構成のセカンダリ側のストレージ装置との間でのリモートコピーを継続することができる。
【００９９】
（障害パターン５）
図１７は、第２ストレージ装置１５０に障害が発生した場合を示す。ホスト計算機３０から第１ストレージ装置１００に書き込み要求がされると（Ｓ２０１）、第１ストレージ装置１００はデータを第１物理ボリューム１０１Ａに書き込む（Ｓ２０２）。そして、第１ストレージ装置１００は、データのシーケンシャル番号を取得して（Ｓ２０３）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ２０４）。
【０１００】
そして、第１ストレージ装置１００は、第２ストレージ装置１５０の第２物理ボリューム１５１Ａへの二重化ライト不可を検出し、クォーラムディスク１０５のジャーナル属性のロックを取得した後、二重化ライト処理を停止する。
【０１０１】
続く第２仮想ストレージ装置２０の第３ストレージ装置２００及び第４ストレージ装置２５０における非同期のリモートコピーの処理は図９の処理と同様のため、詳細な説明は省略する。
【０１０２】
上記のように第２ストレージ装置１５０に障害が発生した場合でも、図１６に示す第１ストレージ装置１００に障害が発生した場合と同様に、ホスト計算機３０から第１ストレージ装置１００へのアクセスをそのまま継続し、第１ストレージ装置１００とＲＣ構成のセカンダリ側のストレージ装置との間でのリモートコピーも継続することができる。
【０１０３】
（障害パターン６）
図１８は、第３ストレージ装置２００に障害が発生した場合を示す。図１８では、図１１と同様に、ホスト計算機３０からＨＡプライマリ側及びＨＡセカンダリ側の両方に書き込み要求がされている。
【０１０４】
第１ストレージ装置１００は、第３ストレージ装置２００からのＲＤＪＮＬコマンドの途絶を検出すると、第１仮想ストレージ装置１０におけるプライマリ側とセカンダリ側を切り替えるため、ジャーナル属性のマスタ／スレーブを切り替える。そして、第２ストレージ装置１５０は、第１ストレージ装置１００からの通知により、ジャーナル属性をマスタに切り替えて、第４ストレージ装置２５０にマスタ切り替えを指示する。
【０１０５】
なお、第１ストレージ装置１００と第４ストレージ装置２５０が接続されている場合には、第１仮想ストレージ装置１０においてプライマリ側とセカンダリ側の切り替えをせずに、第１ストレージ装置１００から第４ストレージ装置２５０にＲＤＪＮＬコマンドを発行させるように切り替え通知をしてもよい。
【０１０６】
そして、第４ストレージ装置２５０は、第２ストレージ装置１５０からの通知により、ジャーナル属性をマスタに切り替える。また、第３ストレージ装置２００への２重化ライト処理が不可のため、クォーラムディスク１０５において、ボリュームペア及びジャーナル属性のロックを取得する。
【０１０７】
なお、上記したように、第１ストレージ装置１００から第４ストレージ装置２５０にＲＤＪＮＬコマンド発行の切り替え通知がなされた場合には、第３ストレージ装置２００への二重化ライト不可のため、クォーラムディスク１０５において、ボリュームペア及びジャーナル属性のロックを取得する。そして、第４ストレージ装置２５０のジャーナル属性をマスタに切り替え、ＲＤＪＮＬコマンドを発行するためのパスを第２ストレージ装置１５０から第１ストレージ装置１００に切り替える。
【０１０８】
そして、第４ストレージ装置２５０は、第２ストレージ装置１５０に対してリストア済みのシーケンシャル番号に１を加算して、ＲＤＪＮＬコマンドを発行してジャーナルを取得し（３１２）、リストアを開始する（Ｓ３１３）。第３ストレージ装置２００への二重化処理は不可のため、第４ストレージ装置２５０は第４物理ボリューム２５１Ｂにデータを書き込む（Ｓ３１６）。
【０１０９】
なお、第１ストレージ装置１００と第４ストレージ装置２５０とが接続されている場合には、第１ストレージ装置１００と第２ストレージ装置１５０との間でマスタ／スレーブ切り替えをせずに、第４ストレージ装置２５０が第１ストレージ装置１００にＲＤＪＮＬコマンドを発行して、ジャーナルデータを取得するようにしてもよい。
【０１１０】
上記したように、第３ストレージ装置２００及び第４ストレージ装置２５０では、ＨＡ構成により複数ボリュームもジャーナルも二重管理されている。このため、上記したように、第３ストレージ装置２００に障害が発生した場合でも、第４ストレージ装置２５０にＲＤＪＮＬコマンドの発行等の処理を引き継いで、第４ストレージ装置２５０と第１仮想ストレージ装置１０との間でのリモートコピーを継続することができる。
【０１１１】
（障害パターン７）
図１９は、第４ストレージ装置２５０に障害が発生した場合を示す。この場合、ＲＣ構成におけるセカンダリ側の第２仮想ストレージ装置２０側でデータの二重化処理（Ｓ２６４、Ｓ２６５）が実施されない。第３ストレージ装置２００は、第４ストレージ装置２５０への二重化ライト不可を検出して、第３ストレージ装置２００のボリュームペアのロック及びジャーナル属性のロックを取得して、二重化処理を停止する。
【０１１２】
第４ストレージ装置２５０に障害が発生している間は、ＲＣ構成のセカンダリ側においてデータを二重管理することはできないが、第３ストレージ装置２００と第１仮想ストレージ装置１０との間でのリモートコピーをそのまま継続することができる。
【０１１３】
（障害パターン８）
図２０は、第１ストレージ装置１００と第３ストレージ装置２００とを接続するパスに障害があった場合を示す。第１ストレージ装置１００は、第３ストレージ装置２００からのＲＤＪＮＬコマンドの途絶を検出すると、第１仮想ストレージ装置１０におけるプライマリ側とセカンダリ側を切り替えるため、ジャーナル属性のマスタ／スレーブを切り替える。そして、第２ストレージ装置１５０は、第１ストレージ装置１００からの通知により、ジャーナル属性をマスタに切り替えて、第４ストレージ装置２５０にマスタ切り替えを指示する。
【０１１４】
なお、第１ストレージ装置１００と第４ストレージ装置２５０が接続されている場合には、第１仮想ストレージ装置１０においてプライマリ側とセカンダリ側の切り替えをせずに、第１ストレージ装置１００から第４ストレージ装置２５０にＲＤＪＮＬコマンドを発行させるように切り替え通知をしてもよい。
【０１１５】
そして、第４ストレージ装置２５０は、第２ストレージ装置１５０からの通知により、ジャーナル属性をマスタに切り替える。
【０１１６】
なお、上記したように、第１ストレージ装置１００から第４ストレージ装置２５０にＲＤＪＮＬコマンド発行の切り替え通知がなされた場合には、第４ストレージ装置２５０のジャーナル属性をマスタに切り替え、ＲＤＪＮＬコマンドを発行するためのパスを第２ストレージ装置１５０から第１ストレージ装置１００に切り替える。
【０１１７】
そして、第４ストレージ装置２５０は、リストア済みのジャーナルのシーケンシャル番号に１を加算して第２ストレージ装置１５０にＲＤＪＮＬコマンドを発行してジャーナルを取得し（３１２）、リストアを開始する（Ｓ３１３）。そして、第３ストレージ装置２００は、データとシーケンシャル番号を第４ストレージ装置２５０に転送して、データの二重化処理を実施する（Ｓ３１４）。第３ストレージ装置２００はデータを第３物理ボリューム２０１Ａに書き込み（Ｓ３１５）、第４ストレージ装置２５０はデータを第４物理ボリューム２５１Ａに書き込む（Ｓ３１６）。
【０１１８】
上記したように、第３ストレージ装置２００及び第４ストレージ装置２５０では、ＨＡ構成により複数ボリュームもジャーナルも二重管理されている。このため、上記したように、第１ストレージ装置１００と第３ストレージ装置２００とを接続するパスに障害があった場合でも、第４ストレージ装置２５０にＲＤＪＮＬコマンドの発行等の処理を引き継いで、第４ストレージ装置２５０と第１仮想ストレージ装置１０との間でのリモートコピーを継続することができる。また、と第３ストレージ装置２００との間でデータの二重化処理も継続することができる。
【０１１９】
（障害パターン９）
図２１は、第２ストレージ装置１５０と第４ストレージ装置２００とを接続するパスに障害があった場合を示す。この障害は、ＨＡ構成における二重化処理にも、ＲＣ構成における非同期のリモートコピー処理にも影響がないため、図１１に示す通常処理と同様の処理が行われる。
【０１２０】
第２ストレージ装置１５０と第４ストレージ装置２００とを接続するパスに障害があった場合でも、第４ストレージ装置２５０の第４物理ボリューム２５１にデータが書き込まれるため、第２仮想ストレージ装置２０におけるデータの二重化を継続することができる。
【０１２１】
（障害パターン１０）
図２２は、ＲＣ構成を形成するリモートコピー側のボリューム障害を示す。図２２では、第３ストレージ装置２００の第３物理ボリューム２０１Ａ及び第４ストレージ装置２５０の第４物理ボリューム２５１Ｂに障害が発生している。この場合、リモートコピー側で障害が発生した物理ボリュームにデータの書き込みはされず、データは二重化されない。しかし、第３ストレージ装置２００から第４ストレージ装置２５０にデータのシーケンシャル番号が通知されるため、第４ストレージ装置２５０の第４ジャーナルボリュームに最新のシーケンシャル番号が格納される。
【０１２２】
上記したように、本実施の形態では、ＲＣ構成のセカンダリ側の第３ストレージ装置２００及び第４ストレージ装置２５０によりＨＡ構成が形成されている。このため、リストア処理を実行するＲＣ構成のセカンダリ側でボリューム障害が発生しても、障害が発生していないペアのボリュームでリストア処理を継続することが可能となる。
【０１２３】
（障害パターン１１）
図２３は、第１仮想ストレージ装置１０の第１ストレージ装置１００及び第２ストレージ装置１５０に障害が発生した場合を示す。この場合には、ホスト計算機３０から第１仮想ストレージ装置１０へのアクセスが不可となる。このため、ホスト計算機３０とは別の遠隔地のホスト計算機に切り替えられて、当該ホスト計算機から第３ストレージ装置２００または第４ストレージ装置２５０にデータのライト処理がなされる。この場合のライト処理は、図１１における通常のライト処理と同様のため、詳細な説明は省略する。
【０１２４】
本実施の形態では、ＲＣ構成のセカンダリ側も第３ストレージ装置２００及び第４ストレージ装置２５０でＨＡ構成を形成しているため、ＲＣ構成のプライマリ側の第１ストレージ装置１００及び第２ストレージ装置１５０の両装置で障害が発生した場合でも、遠隔地等に位置するＲＣ構成のセカンダリ側で、プライマリ側のＨＡ構成と同様の構成を即時に実現することが可能となる。
【０１２５】
（障害パターン１２）
図２４は、第１ストレージ装置１００と第３ストレージ装置２００との間のパス障害及び、第２ストレージ装置１５０と第４ストレージ装置２５０との間のパス障害の発生により障害サスペンドとなる場合を示す。
【０１２６】
第１ストレージ装置１００は、第３ストレージ装置２００からのＲＤＪＮＬコマンドの途絶を検出すると、ジャーナル属性のマスタ／スレーブを切り替えて、第１仮想ストレージ装置１０におけるプライマリ側とセカンダリ側を切り替えようとする。しかし、第２ストレージ装置１５０側でもＲＤＪＮＬコマンドの途絶を検出しているため、切り替え不可と判断し、ＲＣ構成のペア状態をサスペンドとする。ここでは、ＲＣ構成における非同期のリモートコピーが実施されない状態を、ペア状態のサスペンドと称して以下説明する。第１ストレージ装置１００は、第２ストレージ装置１５０にサスペンドを通知して、第２ストレージ装置１５０のペア状態もサスペンドとする。
【０１２７】
非同期のリモートコピーが実施されない場合、すなわち、ペア状態がサスペンドとなった後におけるホスト計算機３０からのアクセスは、ＲＣ構成のないＨＡ構成の場合、すなわち、上記した図４〜図７に示すＨＡ構成のリード／ライト処理と同様である。ただし、ライト処理の際には、第１ストレージ装置１００及び第２ストレージ装置１５０の両装置でライトされたデータ範囲の差分ビットマップをＯＮにする。この差分ビットマップを利用して、パス障害が回復した後に、第１仮想ストレージ装置１０と第２仮想ストレージ装置２０との間のペア状態を同期させることができる。
【０１２８】
また、第３ストレージ装置２００は、ＲＤＪＮＬコマンドによるジャーナルの取得ができないため、ジャーナル属性のマスタ／スレーブを切り替えて、第２仮想ストレージ装置２０におけるプライマリ側とセカンダリ側を切り替えようとする。しかし、第４ストレージ装置２５０側でもＲＤＪＮＬコマンドによるジャーナルの取得ができないため、ペア状態をサスペンドとする。第３ストレージ装置２００は、第４ストレージ装置２５０にもサスペンドを通知して、第４ストレージ装置２５０のペア状態もサスペンドとする。
【０１２９】
このように、パス障害により非同期のリモートコピーが実施されずペア状態がサスペンドとなった場合でも、ＲＣ構成のプライマリ側におけるＨＡ構成での二重管理を継続させることができる。また、パス障害が回復した場合には、差分ビットマップを利用して迅速にＲＣ構成によるリモートコピーを再開することが可能となる。
【０１３０】
（障害パターン１３）
図２５は、第２ストレージ装置１５０の第２ジャーナルボリューム１５２に障害が発生した場合を示す。この場合、第２ストレージ装置１５０におけるジャーナル作成が不可となる。しかし、第２物理ボリューム１５１Ａ及び１５１Ｂへのデータの二重化は継続され、非同期のリモートコピーは第１ストレージ装置１００との間で継続されている。このため、第２ストレージ装置１５０と第４ストレージ装置２５０との間のペア状態は維持される。ただし、第２ストレージ装置１５０は、ジャーナル作成が不可となっている間に、第２物理ボリューム１５１Ａまたは１５１Ｂに書き込まれたデータの差分ビットマップをＯＮとする。
【０１３１】
例えば、第２ジャーナルボリューム１５２に障害が発生した後、第１ストレージ装置１００に障害が発生した場合に、ＲＣ構成におけるペア状態はサスペンドとなる。上記障害発生時に第２ストレージ装置１５０側で差分ビットマップをＯＮとしていない場合には、ＲＣ構成のペア状態が回復したときに、障害発生前のデータも含むすべてのデータをコピーしなければならない。したがって、第２ストレージ装置１５０側でＲＣ構成のための差分ビットマップをＯＮとする必要がある。
【０１３２】
（障害パターン１４）
図２６は、図２５に示したように、第２ストレージ装置１５０の第２ジャーナルボリューム１５２で障害が発生した後、第１ストレージ装置１００で障害が発生した場合を示す。
【０１３３】
この場合、第１ストレージ装置１００においても、第２ストレージ装置１５０においてもジャーナルを作成することができないため、非同期のリモートコピーをすることができず、ＲＣ構成のペア状態がサスペンドとなる。
【０１３４】
ホスト計算機３０は、第２ストレージ装置１５０に対してリード／ライト処理を行うことができるため、第２ストレージ装置１５０の第２物理ボリューム１５１Ａ及び１５１Ｂに対してデータのリード／ライト処理が実施される。第２ストレージ装置１５０は、ライト処理が実施された場合には、書き込まれたデータの差分ビットマップをＯＮとする。そして、障害が回復して、非同期のリモートコピーが復活した場合には、差分ビットマップを用いてＲＣ構成のペア状態を同期させる。
【０１３５】
このように、ＲＣ構成のプライマリ側においてジャーナルが作成できなくなった場合でも、障害発生時に差分ビットマップをＯＮにしておくことにより、障害が回復した場合に、すべてのデータをコピーする必要がなく、差分ビットマップがＯＮとなっているデータのみコピーすればよいため、迅速にＲＣ構成によるリモートコピーを再開することが可能となる。
【０１３６】
（障害パターン１５）
図２７は、第１ストレージ装置１００の第１ジャーナルボリューム１０２に障害が発生した場合を示す。この場合、第１ストレージ装置１００におけるジャーナル作成が不可となる。しかし、第１物理ボリューム１０１Ａ、１０１Ｂのデータの二重化は継続され、非同期のリモートコピーは継続されているため、ＲＣ構成におけるペア状態は維持される。ただし、第１ストレージ装置１００は、ジャーナル作成が不可となっている間に、第１物理ボリューム１０１Ａまたは１０１Ｂに書き込まれたデータの差分ビットマップをＯＮとする。
【０１３７】
例えば、第１ジャーナルボリューム１０２に障害が発生した後、第２ストレージ装置１５０に障害が発生した場合に、ＲＣ構成におけるペア状態はサスペンドとなる。上記障害発生時に第１ストレージ装置１００側で差分ビットマップをＯＮとしていない場合には、ＲＣ構成のペア状態が回復したときに、障害発生前のデータも含むすべてのデータをコピーしなければならない。したがって、第１ストレージ装置１００側でＲＣ構成のための差分ビットマップをＯＮとする必要がある。
【０１３８】
また、第１ジャーナルボリューム１０２に障害が発生した後は、第２ストレージ装置１５０がジャーナル属性のマスタに切り替えられ、第２ストレージ装置１５０側でデータのシーケンシャル番号を取得する。また、第２仮想ストレージ装置２０側の第３ストレージ装置２００及び第４ストレージ装置２５０側でも、ジャーナル属性のマスタ／スレーブを切り替えて、第４ストレージ装置２５０がＲＤＪＮＬコマンドを発行するようにしてもよい。
【０１３９】
上記したように、第１ストレージ装置１００及び第２ストレージ装置１５０では、ＨＡ構成により複数ボリュームもジャーナルも二重管理されている。このため、上記したように第１ストレージ装置１００の第１ジャーナルボリューム１０２に障害が発生した場合でも、ホスト計算機３０から第１ストレージ装置１００へのアクセスをそのまま継続し、第２ストレージ装置１５０とＲＣ構成のセカンダリ側のストレージ装置との間でのリモートコピーも継続することができる。また、第１ジャーナルボリューム１０２に障害が発生している間は、差分ビットマップをＯＮとしておくことにより、第１ジャーナルボリューム１０２の障害が回復した場合に、第１ストレージ装置１００と第２ストレージ装置１５０との間で迅速にジャーナルデータを同期させることができる。
【０１４０】
（障害パターン１６）
図２８は、図２７に示したように、第１ストレージ装置１００の第１ジャーナルボリューム１０２で障害が発生した後、第２ストレージ装置２００で障害が発生した場合を示す。
【０１４１】
この場合、第１ストレージ装置１００においても、第２ストレージ装置１５０においてもジャーナルを作成することができないため、非同期のリモートコピーをすることができず、ＲＣ構成のペア状態がサスペンドとなる。なお、第１ストレージ装置１００は、パージ処理が未処理のジャーナルデータがある場合には、第３ストレージ装置２００にジャーナルを取得させて、第３ストレージ装置２００でデータをリストア、第４ストレージ装置２５０にデータを二重化した後に、ジャーナルデータをパージ、サスペンドしてもよい。
【０１４２】
また、第１ストレージ装置１００は、ライト処理が実施された場合には、書き込まれたデータの差分ビットマップをＯＮとする。そして、障害が回復して、非同期のリモートコピーが復活した場合には、差分ビットマップを用いてＲＣ構成のペア状態を同期させる。
【０１４３】
このように、ＲＣ構成のプライマリ側においてジャーナルが作成できなくなった場合でも、障害発生時に差分ビットマップをＯＮにしておくことにより、障害が回復した場合に、すべてのデータをコピーする必要がなく、差分ビットマップがＯＮとなっているデータのみコピーすればよいため、迅速にＲＣ構成によるリモートコピーを再開することが可能となる。
【０１４４】
（１−７）システムの初期形成
（ジャーナル登録前）
次に、上記したＨＡ構成及びＲＣ構成を有する計算機システムの初期形成について説明する。図２９は、第１仮想ストレージ装置１０においてジャーナルを登録する前の状態を示す。第１仮想ストレージ装置１０でジャーナルが登録される前の状態は、第１ストレージ装置１００と第２ストレージ装置１５０との間でＨＡ構成が形成されているのみで、第１仮想ストレージ装置１０と第２仮想ストレージ装置２０との間のＲＣ構成が形成されていない状態である。したがって、ホスト計算機３０からのアクセスは、ＲＣ構成のないＨＡ構成の場合、すなわち、上記した図４〜図７に示すＨＡ構成のリード／ライト処理と同様である。
【０１４５】
なお、図２９に示すように、ジャーナル登録前は、第１ストレージ装置１００及び第２ストレージ装置１５０のペア状態（図中Pair状態）は無効、ジャーナル属性は無効（図中Invalidと表記）状態となる。また、第１クォーラムディスク１０５のロック状態（図中Lock状態と表記）において、第１ストレージ装置１００と第２ストレージ装置１５０の両装置の物理ボリュームのロック状態は有効であるが、両装置のジャーナルボリュームのロック状態は無効である。
【０１４６】
また、ＲＣ構成のペアが形成されていない状態であるため、第３ストレージ装置２００及び第４ストレージ装置２５０のペア状態も、ジャーナル属性も、ジャーナルボリュームのロック状態も無効である。
【０１４７】
（ジャーナル登録）
図３０は、第１仮想ストレージ装置１０におけるジャーナルグループ（ＪＮＬＧ）の登録を示す。ジャーナルグループの登録は、第１ストレージ装置１００、第２ストレージ装置１５０、第３ストレージ装置２００及び第４ストレージ装置２５０の各装置でそれぞれ実施される。各装置がジャーナルグループを登録することにより、ＲＣ構成のペア形成が可能となる。各装置でジャーナルグループが登録されると、各装置のジャーナルボリュームのジャーナル属性が初期状態を意味するInitialとなる。
【０１４８】
ジャーナル属性が初期状態の間は、ＲＣ構成のペア形成がなされていないため、ＲＣのペア状態は無効（Invalid）状態のままである。なお、ホスト計算機３０からのアクセスは、ＲＣ構成のないＨＡ構成の場合、すなわち、上記した図４〜図７に示すＨＡ構成のリード／ライト処理と同様である。
【０１４９】
（ＲＣ構成ペア形成）
図３１は、ジャーナルグループが登録された後の、ＲＣ構成のペア形成処理を示す。第１ストレージ装置１００または第２ストレージ装置１５０のいずれかで最初のＲＣペア形成指示を受領する。ＲＣ構成のプライマリボリュームに指定されたボリュームがＨＡ構成の場合、ＨＡ構成を形成する相手側にもＲＣペア形成指示を伝播する。そして、第１ストレージ装置１００及び第２ストレージ装置１５０の両装置でＲＣペアを形成する。
【０１５０】
第１仮想ストレージ装置１０側では、ＨＡ構成のプライマリ側のジャーナル属性をマスタ属性に設定し、ＨＡ構成のセカンダリ側のジャーナル属性をスレーブ属性に設定する。また、第２仮想ストレージ装置２０側のジャーナル属性のマスタ／スレーブ属性は、第１仮想ストレージ装置１０側のＲＣ構成のペアとなるように設定する。
【０１５１】
図３１では、第１ストレージ装置１００がＨＡ構成のプライマリ側でジャーナル属性はマスタ属性、第２ストレージ装置１５０がＨＡ構成のセカンダリ側でジャーナル属性はスレーブ属性となる。また、第１ストレージ装置１００とＲＣ構成のペアを形成する第３ストレージ装置２００のジャーナル属性はマスタ属性、第２ストレージ装置１５０とＲＣ構成のペアを形成する第４ストレージ装置２５０のジャーナル属性はスレーブ属性となる。
【０１５２】
また、上記のようにＲＣ構成のペアが登録されると、クォーラムディスク１０５のジャーナル属性のロック状態もロックなし（図中No Lockと表記）状態で初期化される。そして、ＲＣのペア状態を無効（Invalid）状態からコピー（Copy）状態に変更して、ＲＣ構成のプライマリボリュームからＲＣ構成のセカンダリボリュームへの初期コピーが開始される。
【０１５３】
なお、上記ＲＣ構成のペア形成処理中のホスト計算機３０からのアクセスは、ＲＣ構成のないＨＡ構成の場合、すなわち、上記した図４〜図７に示すＨＡ構成のリード／ライト処理と同様である。
【０１５４】
（初期コピー）
図３２は、ＲＣ構成のペア形成における初期コピー処理を示す。図３２に示すように、初期コピー処理では、まず、第１ストレージ装置１００が、第１物理ボリューム１０１Ａの先頭スロットから最終スロットまでのデータを順番に読み出し（Ｓ５１２）、シーケンシャル番号を付与して（Ｓ５１１）、第１ジャーナルボリューム１０２にジャーナルを作成する（Ｓ５１３）。
【０１５５】
そして、第１ストレージ装置１００は、第２ストレージ装置１５０にシーケンシャル番号及びデータスロット番号を転送する（Ｓ５１４）。第２ストレージ装置１５０は、第１ストレージ装置１００から転送されたデータスロット番号に対応するデータを第２物理ボリューム１５１Ａから読み出し（Ｓ５１５）、シーケンシャル番号をもとに第２ジャーナルボリューム１５２にジャーナルを作成する（Ｓ５１６）。そして、第１ストレージ装置１００は、データの差分ビットマップをＯＦＦする（Ｓ５１７）。
【０１５６】
ホスト計算機３０からのライト処理と同様に、初期コピー処理においても、第１ストレージ装置１００がシーケンシャル番号を取得する。上記したステップＳ５１１〜ステップＳ５１７の処理を実施後、第１ストレージ装置１００は、コピーポインタを次のスロットに進めて、ステップＳ５１１〜ステップＳ５１７の処理を繰り返す。第１ストレージ装置１００は、先頭スロットから最終スロットまでステップＳ５１１〜ステップＳ５１７の処理を繰り返し実施する。
【０１５７】
ＲＣ構成を形成するためのコピー処理は、上記した図９の非同期のリモートコピーの処理と同様のため、詳細な説明は省略する。
【０１５８】
ここで、図３３を参照して、差分ビットマップを用いた初期コピーの詳細について説明する。ＰＶＯＬ側（ＲＣ構成のプライマリ側）のＨＡプライマリ／ＨＡセカンダリ、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のＨＡプライマリ／ＨＡセカンダリのすべてに持つ。すなわち、図３２では、第１〜第４ストレージ装置のすべての装置が、ＲＣ構成を形成するための差分ビットマップを持つ。第１〜第４ストレージ装置のすべての装置が正常な状態で上記したＲＣ構成のペア形成を実施した場合には、ＰＶＯＬ側でジャーナル属性がマスタ属性を持つ第１ストレージ装置１００の差分ビットマップを使用して初期コピーが制御される。
【０１５９】
（初期コピーその１）
図３３に示すように、コピーペア形成後、初期コピー開始時には、差分ビットマップはすべてＯＮ（１）にされており、コピーポインタは先頭スロットに位置付けされる。
【０１６０】
（初期コピーその２）
そして、ＨＡプライマリ側からＨＡセカンダリの順にジャーナル作成が完了すると、ジャーナル作成したデータ範囲の差分ビットマップがＯＦＦ（０）される。そして、ＨＡプライマリ側及びＨＡセカンダリ側の両方で初期コピー用のジャーナルデータを作成すると、次のスロットにコピーポインタが進められる。
【０１６１】
（初期コピーその３）
図３２のステップＳ５１１〜ステップＳ５１７の処理を繰り返し実施されて、初期コピーが完了すると、すべての差分ビットマップがＯＦＦされ、コピーポインタがデータの最終位置に進む。
【０１６２】
（初期コピー中のリード／ライト処理）
また、初期コピー中にホスト計算機３０からデータの読み込み要求があった場合には、上記した図６または図７のＨＡ構成におけるリード処理と同様にデータがリードされる。
【０１６３】
また、初期コピー中にホスト計算機３０からデータの書き込み処理があった場合には、コピー済みの領域、すなわちビットマップがＯＦＦの領域への書き込み処理か、コピー未処理の領域、すなわち、ビットマップがＯＮの領域への書き込み処理かで異なる動作となる。
【０１６４】
コピー済みの領域に書き込み処理があった場合には、上記した図１１のＨＡ構成とＲＣ構成との連携時におけるライト処理と同様にデータがライトされる。すなわち、ＨＡ構成のプライマリ側でシーケンシャル番号が取得され、ＨＡプライマリ側からＨＡセカンダリ側の順にデータが２重化され、ＨＡプライマリ及びＨＡセカンダリの両方でジャーナルが作成される。なお、同範囲へのライト処理及び初期コピーは排他される。
【０１６５】
一方、コピー未処理の領域に書き込み処理があった場合には、図４または図５に示すＲＣ構成と連携していない場合のライト処理と同様にデータがライトされる。すなわち、ジャーナルの作成は実施されずに、ＨＡプライマリ側からＨＡセカンダリ側の順にデータが２重化される。この場合、差分ビットマップはＯＮのままである。
【０１６６】
（初期コピー時の障害）
図３４は、初期コピー時にＨＡセカンダリ側、すなわち、第２ストレージ装置１５０の第２物理ボリューム１５１Ａに障害が発生した場合を示す。この場合は、図３２に示す初期コピー処理と同様のコピー処理が実施される。図３４に示すように、第２物理ボリューム１５１Ａに障害が発生し、ＨＡセカンダリ側が閉塞状態となると、ＨＡセカンダリ側のデータを用いてジャーナルデータを作成することができないが、ＨＡプライマリ側からジャーナルデータを転送することにより、図３２に示す初期コピー処理と同様にＨＡセカンダリ側でジャーナルデータを作成することができる。
【０１６７】
図３５は、初期コピー時にＨＡプライマリ側、すなわち、第１ストレージ装置１００の第１物理ボリューム１０１Ａに障害が発生した場合を示す。この場合は、ＨＡセカンダリ側の差分ビットマップを使用して初期コピーが制御される。
【０１６８】
図３５に示すように、第１物理ボリューム１０１Ａに障害が発生し、ＨＡプライマリ側が閉塞状態の場合、第２ストレージ装置１５０のデータをリードして（Ｓ５３１）、当該データが第１ストレージ装置１００に転送される（Ｓ５３２）。そして、第１ストレージ装置１００は、シーケンシャル番号を取得して（Ｓ５３３）、ジャーナルを作成し（Ｓ５３４）、シーケンシャル番号を第２ストレージ装置１５０に送信する。第２ストレージ装置１５０は、送信されたシーケンシャル番号をもとにジャーナルを作成し（Ｓ５３５）、差分ビットマップをＯＦＦにする（Ｓ５３６）。ステップＳ５３１〜ステップＳ５３６の処理がデータのスロット分繰り返される。
【０１６９】
図３６は、初期コピー時にＨＡプライマリ側、すなわち、第１ストレージ装置１００の第１物理ボリューム１０１Ａに障害が発生した場合に、ＨＡプライマリ側の差分ビットマップを使用して初期コピーを制御する場合を示す。
【０１７０】
図３６で示すように、まず、第１ストレージ装置１００がシーケンシャル番号を取得して（Ｓ５４１）、シーケンシャル番号とスロット番号が第２ストレージ装置１５０に転送される（Ｓ５４２）。第１物理ボリューム１０１Ａに障害が発生し、ＨＡプライマリ側が閉塞状態であるため、第２ストレージ装置１５０がスロット番号に対応するデータをリードして（Ｓ５４３）、ジャーナルを作成する（Ｓ５４４）。
【０１７１】
そして、第２ストレージ装置１５０は、リードしたデータを第１ストレージ装置１００に転送する（Ｓ５４５）。第１ストレージ装置１００は、ステップＳ５４１で取得したシーケンシャル番号とステップＳ５４５で転送されたデータを用いてジャーナルを作成し（Ｓ５４６）、差分ビットマップをＯＦＦにする（Ｓ５４７）。ステップＳ５４１〜ステップＳ５４７の処理がデータのスロット分繰り返される。
【０１７２】
（１−８）サスペンド操作時の動作
（サスペンド操作１）
まず、ＨＡプライマリ側でサスペンド操作を制御する場合について説明する。図３７に示すように、ＨＡプライマリ側、すなわち、第１ストレージ装置１００がサスペンド操作を受領すると（Ｓ６０１）、ジャーナル属性をサスペンドとする（Ｓ６０２）。そして、第１ストレージ装置１００は、第２ストレージ装置１５０にサスペンド操作を伝播し（Ｓ６０３）、第２ストレージ装置１５０は、ジャーナル属性をサスペンドとする（Ｓ６０４）。
【０１７３】
また、ＨＡセカンダリ側、すなわち、第２ストレージ装置１５０がサスペンド操作を受領した場合には、第１ストレージ装置１００にサスペンド操作を伝播して、上記ステップＳ６０２〜ステップＳ６０４の処理を実施する。第１ストレージ装置１００及び第２ストレージ装置１５０の両法のジャーナル属性にサスペンド状態を設定した後に、サスペンド操作の完了応答を返す。
【０１７４】
（サスペンド操作２）
図３７に示すように、第１ストレージ装置１００及び第２ストレージ装置１５０でジャーナル属性をサスペンド状態に遷移させた後、当該ジャーナルグループに所属するＲＣ構成のペアをサスペンドさせる。
【０１７５】
サスペンドの状態は、ジャーナルグループ毎に、ジャーナルグループを形成する物理ボリュームのビットマップで管理されている。ＨＡ構成及びＲＣ構成を連携させた場合、ＲＣ構成のプライマリ側のＨＡプライマリ及びＨＡセカンダリ、及び、セカンダリ側のＨＡプライマリ及びＨＡセカンダリの各々で物理ボリュームのペア形成状態をビットマップ管理している。
【０１７６】
図３８に示すように、ペア形成状態を管理するビットマップは、初期状態、すなわち、ペアが形成される前はＯＦＦとなっている。そして、ジャーナルグループに属する物理ボリュームのペアが形成されると、ビットマップがＯＮされる。ＲＣ構成のペアをサスペンドする際には、サスペンド状態となったジャーナルグループに属するペアの物理ボリュームをビットマップから検索して、対象となるペアをサスペンドさせる。
【０１７７】
図３８に示すように、例えば、ＣＵ＃０〜ＣＵ＃２５５を有し、各々のＣＵ＃に対してＤＥＶ＃０〜ＤＥＶ＃２５５を持つストレージ装置であるとする。サスペンド処理を実施する場合には、ジャーナルグループに属する物理ボリュームをビットマップから検索して、ＣＵ＃、ＤＥＶ＃を特定することでサスペンド操作の対象となるペアをサスペンドさせる。
【０１７８】
図３９に示すように、ＲＣ構成のプライマリ側のＨＡプライマリが正常である場合には、ＨＡプライマリでサスペンド処理を制御する。ＲＣ構成のプライマリ側のＨＡプライマリにおけるペア形成のビットマップをもとに、第１ストレージ装置１００は、ジャーナルグループに属するすべてのペアをサスペンド状態に遷移させる（Ｓ６１１）。第１ストレージ装置１００は、すべてのペアをサスペンド状態に遷移させた後、ＨＡプライマリ側でシーケンシャル番号を取得して（Ｓ６１２）、当該シーケンシャル番号を付与してサスペンドマーカを作成する（Ｓ６１３）。
【０１７９】
また、第１ストレージ装置１００は、取得したシーケンシャル番号を付与して、ＲＣ構成のプライマリ側のＨＡセカンダリ側にもサスペンド指示を送信する（Ｓ６１４）。サスペンド指示を受領した第２ストレージ装置１５０は、ペア形成ビットマップをもとに、すべてのペアをサスペンド状態に遷移させた後（Ｓ６１５）、ＨＡプライマリ側から転送されたシーケンシャル番号でサスペンドマーカを作成する（Ｓ６１６）。
【０１８０】
なお、サスペンドマーカ作成前に作成されたジャーナルデータは、すべてＲＣ構成のセカンダリ側にリストアする。そのため、サスペンド操作を受領した後、ジャーナルデータがＲＣ構成のセカンダリ側にリストアされるまでは、サスペンド過渡中の状態とする。そして、ジャーナルデータがすべてリストアされた後に、サスペンド状態に遷移する。
【０１８１】
（サスペンド操作３）
図４０は、ＲＣ構成のセカンダリ側をサスペンド状態に遷移する場合を示す。図４０に示すように、ＲＣ構成のセカンダリ側のＨＡプライマリ側である第３ストレージ装置２００が、ＲＣ構成のプライマリ側のＨＡプライマリ側である第１ストレージ装置１００にＲＤＪＮＬコマンドを発行して、第１ストレージ装置１００で作成されたサスペンドマーカを検出すると（Ｓ６２１）、サスペンドマーカを第３ジャーナルボリューム２０２に格納し（Ｓ６２２）、サスペンドマーカをリストアする（Ｓ６２３）。第３ストレージ装置２００は、ステップＳ６２３におけるサスペンドマーカをリストアして、ジャーナル属性をサスペンド過渡中に遷移させ、すべてのペアをサスペンド状態にした後、ジャーナルグループ状態のサスペンドを確定させる。
【０１８２】
そして、第３ストレージ装置２００は、第４ストレージ装置２５０にシーケンシャル番号とともにサスペンド指示を送信して（Ｓ６２５）、第４ストレージ装置２５０もサスペンド状態に遷移させる。なお、サスペンドマーカはシーケンシャル番号にしたがって、ＲＣ構成を形成する第２仮想ストレージ装置２０側で処理されるため、サスペンドマーカを作成する前に作成済みのジャーナルデータはすべて第２仮想ストレージ装置２０側の物理ボリュームにリストアされ、その後、サスペンド状態に遷移する。
【０１８３】
（サスペンド操作４）
上記したように、第２仮想ストレージ装置２０側の第３ストレージ装置２００は、ジャーナルグループに属するすべての物理ボリュームをサスペンド状態に遷移させると、図４１に示すように、第１ストレージ装置１００にサスペンドが完了したことを通知する（Ｓ６３１）。第１ストレージ装置１００は、サスペンド完了を通知されると、第２ストレージ装置１５０にサスペンド確定指示を送信する（Ｓ６３２）。
【０１８４】
第２ストレージ装置１５０は、すべてのペア状態をサスペンドに遷移させる（Ｓ６３３）。具体的に、第２ストレージ装置１５０は、ペア形成ビットマップをもとに、ジャーナルグループに属するペアをサスペンド過渡状態からサスペンド状態に確定させる。
【０１８５】
第１ストレージ装置１００側でも、すべてのペア状態をサスペンドに遷移させる（Ｓ６３４）。具体的に、ペア形成ビットマップをもとにジャーナルグループに属するペアをサスペンド過渡状態からサスペンド状態に確定させる。
【０１８６】
上記したように、ペア状態がサスペンド過渡状態からサスペンド確定状態に遷移することにより、ＲＣ構成のセカンダリ側では、サスペンド操作を実施する前にライト処理されたデータが、すべてＲＣ構成のセカンダリ側の物理ボリュームにコピーされていることが保証されている状態とみなすことができる。
【０１８７】
（サスペンド中のＩ／Ｏ操作）
図４２は、サスペンド中にホスト計算機３０からのＩ／Ｏ操作を示す。サスペンド中にホスト計算機３０からデータの読み込み要求があった場合には、上記した図６または図７のＨＡ構成におけるリード処理と同様にデータがリードされる。また、サスペンド中にホスト計算機３０からデータの書き込み要求があった場合には、上記した図４または５の図ＨＡ構成におけるライト処理と同様にデータがライトされる。すなわち、第１仮想ストレージ装置１０におけるライト処理時にジャーナルは作成されない。
【０１８８】
ただし、差分ビットマップをＯＮにして、ＲＣ構成のプライマリ側とセカンダリ側の差分位置を記録する。したがって、ＨＡプライマリ側の第１ストレージ装置１００においても、ＨＡセカンダリ側の第２ストレージ装置１５０においてもデータ書き込み時にジャーナルを作成せずに、差分ビットマップをＯＮにする。このように差分ビットマップをＯＮにする理由は、図２４に示す障害パターン１２の障害サスペンドの場合と同様の理由である。
【０１８９】
（ペア削除操作）
ペア削除操作時のＲＣ構成およびＨＡ構成における動作は、上記したサスペンド操作と同様である。ただし、サスペンド操作時とは異なり、ジャーナルグループの状態について、サスペンド過渡状態はSimplex過渡状態となり、サスペンド確定状態はSimplex確定状態、サスペンドマーカは削除マーカに変更となる。また、サスペンド操作では、サスペンド過渡状態で差分ビットマップをＯＮにしていたが、ペア削除時のSimplex過渡状態では、差分ビットマップはＯＮにしない点でサスペンド操作の動作と異なっている。また、ペア削除操作では、削除したジャーナルグループに属するペアの物理ボリュームをビットマップから検索して、対象となるペアのビットマップをＯＮからＯＦＦに変更する。
【０１９０】
（ペア再開操作）
上記したサスペンド状態のペアにペア再開操作を実施すると、ペアが再開され、差分ビットマップが記録されている差分データがＲＣ構成のプライマリ側からセカンダリ側にコピーされる。ＲＣ構成におけるプライマリ側からセカンダリ側へのコピー処理は、上記した初期コピーにおけるコピー処理と同様の動作となる。
【０１９１】
上記した初期コピー時では、差分ビットマップをすべてＯＮに設定し、すべてのデータに対してジャーナルデータを作成して、ＲＣ構成のセカンダリ側にデータがコピーされていた。一方、ペア再開時には、差分ビットマップを参照して、差分がＯＮとなっているデータのみについてジャーナルデータを作成し、ＲＣ構成のプライマリ側の物理ボリュームからセカンダリ側の物理ボリュームにデータがコピーされる。また、初期コピー時と同様に、ＲＣ構成のプライマリ側のＨＡプライマリ側とＨＡセカンダリ側の両方でジャーナルデータが作成される。
【０１９２】
なお、ＳＷＡＰ指定のペア再開操作が実施された場合は、ＲＣ構成のセカンダリ側からプライマリ側に上記と同様に差分コピーがなされる。また、サスペンド状態でＲＣ構成のプライマリ側とセカンダリ側の両方にデータがライトされている場合もある。例えば、サスペンド状態でＲＣ構成のプライマリ側に接続されているホスト計算機３０に障害が発生し、ホスト計算機３０がＲＣ構成のセカンダリ側にフェイルオーバーした場合には、ＲＣ構成のセカンダリ側にもデータがライトされる。この場合には、ペア再開時に、ＲＣ構成のプライマリ側とセカンダリ側の差分ビットマップをマージした後、差分コピーを動作させる。
【０１９３】
差分ビットマップのマージ処理は、まず、ＲＣ構成のプライマリ側のＨＡプライマリ側、ＲＣ構成のセカンダリ側のＨＡプライマリ側の差分ビットマップをマージする。そして、差分データをＲＣ構成のプライマリ側のＨＡプライマリ側とＨＡセカンダリ側の両方に反映させる。ＲＣ構成のプライマリ側の差分ビットマップをマージした後、ＲＣ構成のセカンダリ側のＨＡプライマリ側とＨＡセカンダリ側の差分ビットマップをクリアにする。ＳＷＡＰ指定のペア再開操作の場合は、マージした差分ビットマップをＲＣ構成の元セカンダリ側に反映、ＲＣ構成の元プライマリ側の差分ビットマップをクリアして、ＲＣ構成の元セカンダリ側から元プライマリ側に差分コピーを動作させる。
【０１９４】
ＲＣ構成のプライマリ側でペア再開操作を受領すると、ＲＣ構成のプライマリ側は、ジャーナルグループの状態をサスペンド状態からノーマル状態に遷移させる。そして、ＲＣ構成のセカンダリ側と通信して、すべてのジャーナルグループ状態をサスペンド状態からノーマル状態に遷移させる。その後、ＲＣ構成のプライマリ側のＨＡプライマリ側のペア形成ビットマップを参照して、ジャーナルグループに所属するすべてのＲＣ構成のペアをサスペンド状態からコピー状態に遷移させて、ペア状態を再開する。なお、サスペンド状態からコピー状態への遷移については、初期コピーでコピー状態に遷移させるのと同様の動作である。そして、すべてのジャーナルグループのペア状態をサスペンド状態からコピー状態に遷移させる。
【０１９５】
なお、ペア再開操作により、ＲＣ構成のプライマリ側からセカンダリ側へのデータコピー中のホスト計算機３０からのＩ／Ｏ操作は初期形成における初期コピー中のＩ／Ｏ操作と同様である。以下、図４３〜図４６を参照して、ペア再開動作の詳細を説明する。
【０１９６】
（ペア再開その１）
図４３に示すように、第１ストレージ装置１００がペア再開操作を受領すると（Ｓ７０１）、第１ストレージ装置１００は第３ストレージ装置２００にペア再開指示を転送する（Ｓ７０２）。そして、第３ストレージ装置２００は第４ストレージ装置２５０にペア再開指示を伝播する（Ｓ７０３）。そして、第４ストレージ装置２５０及び第３ストレージ装置２００のジャーナルグループ状態がサスペンドからノーマルに遷移される（Ｓ７０４、Ｓ７０５）。
【０１９７】
また、第１ストレージ装置１００は、第２ストレージ装置にペア再開指示を伝播する（Ｓ７０６）。そして、第２ストレージ装置１５０及び第１ストレージ装置１００のジャーナルグループ状態がサスペンドからノーマルに遷移される（Ｓ７０７、Ｓ７０８）。
【０１９８】
（ペア再開その２）
図４４では、第１ストレージ装置１００から第２ストレージ装置１５０、第３ストレージ装置２００及び第４ストレージ装置２００にペア再開指示が転送または伝播されて、各装置において、ジャーナルグループに所属するすべてのペアの状態がサスペンド状態からコピー状態に遷移される。
【０１９９】
具体的に、第１物理ボリューム１０１Ａのペア再開指示がされ（Ｓ７１１、Ｓ７１２、Ｓ７１５）、各装置で第１ボリューム１０１Ａとジャーナルグループが同じ物理ボリュームのペア状態が再開される（Ｓ７１３、Ｓ７１４、Ｓ７１６、Ｓ７１７）。続いて、第１物理ボリューム１０１Ｂのペア再開指示がされ（Ｓ７１８、Ｓ７１９、Ｓ７２２）、各装置で第１ボリューム１０１Ａとジャーナルグループが同じ物理ボリュームのペア状態が再開される（Ｓ７２０、Ｓ７２１、Ｓ７２３、Ｓ７２４）。
【０２００】
（ペア再開その３）
図４５は、ＲＣ構成のプライマリ側とセカンダリ側の差分ビットマップのマージ処理を示す。まず、第１ストレージ装置１００から第３ストレージ装置２００に第１物理ボリューム１０１Ａの差分ビットマップ取得指示が送信される（Ｓ７３１）。第３ストレージ装置２００は、第１物理ボリューム１０１Ａのペアである第３物理ボリューム２０１Ａの差分ビットマップを取得して（Ｓ７３２）、取得した差分ビットマップを第１ストレージ装置１０に転送する（Ｓ７３３）。
【０２０１】
第１ストレージ装置１００は、第１物理ボリューム１０１Ａの差分ビットマップを取得する（Ｓ７３４）。また、第１ストレージ装置１００は、ステップＳ７３３で転送された第３物理ボリューム２０１Ａの差分ビットマップを第２ストレージ装置１５０に伝播する（Ｓ７３５）。第１ストレージ装置１００及び第２ストレージ装置１５０は、第１物理ボリューム１０１Ａと第３物理ボリューム２０１Ａに対応する差分ビットマップをマージする（Ｓ７３６、Ｓ７３７）。
【０２０２】
第１ストレージ装置１００は、第３ストレージ装置２００に第３物理ボリューム２０１Ａの差分ビットマップのクリアを指示する（Ｓ７３８）。第３ストレージ装置２００は、第４ストレージ装置に第３物理ボリューム２０１Ａの差分ビットマップのクリア指示を伝播する（Ｓ７３９）。第３ストレージ装置２００及び第４ストレージ装置２５０は、第３物理ボリューム２０１Ａに対応する差分ビットマップをクリアする（Ｓ７４０、Ｓ７４１）。
【０２０３】
図４６に、差分マージ開始前と差分マージ実施後の差分ビットマップの状態を示す。図４６に示すように、差分マージ開始前は、ＲＣ構成のプライマリ側（ＰＶＯＬ側）の差分ビットマップと、ＲＣ構成のセカンダリ側（ＳＶＯＬ）側とで、いずれかの差分ビットマップがＯＮであるスロットについてはＰＶＯＬ側の差分ビットマップがＯＮとなる。例えば、ＰＶＯＬ側の差分ビットマップが１で、ＳＶＯＬ側の差分ビットマップが０の場合には、差分マージ実施後のＰＶＯＬ側の差分ビットマップが１となる。このように、ＰＶＯＬ側で差分ビットマップがマージされた後、ＳＶＯＬ側の差分ビットマップはすべてＯＦＦとされる。
【０２０４】
このように、ＰＶＯＬ側とＳＶＯＬ側で差分ビットマップをマージした後、ＰＶＯＬ側で差分ビットマップがＯＮとなっているスロットのみＳＶＯＬ側にデータがコピーされる。
【０２０５】
（１−９）ストレージシステムの動作
（１−９−１）通常時のストレージシステムの動作の詳細
次に、ストレージシステムの動作の詳細について説明する。まず、図４７を参照して、リード／ライト（Read/Write）処理について説明する。ホスト計算機３０は、仮想ストレージ装置の仮想ボリューム（ＧＤＥＶ）に対して、リード／ライト要求を発行する。ホスト計算機３０は、仮想ストレージ装置上に複数の仮想ポートが存在すると認識している。ホスト計算機３０が、いずれかの仮想ポートにリード／ライト要求を発行すると、各仮想ポートに対応付けられている物理ストレージ装置のポートにリード／ライト要求が送信されることになる。つまり、ある仮想ポートには第１ストレージ装置のポートが対応付けられ、他の仮想ポートには第２ストレージ装置のポートが対応付けられる。図４７では、第１ストレージ装置のポートに対応付けられている仮想ストレージ装置のポートにリード／ライト要求が発行された場合を示す。図４７に示すように、第１ストレージ装置１００は、ホスト計算機３０からリード／ライト要求を受領すると（Ｓ１００１）、ホスト計算機３０に指定されたＬＵＮ（Logical Unit Number）を、第１ストレージ装置１００内の仮想ボリューム（ＧＤＥＶ）を識別するＧＤＥＶ  ＩＤに変換する（Ｓ１００２）。
【０２０６】
そして、第１ストレージ装置１００は、ＧＤＥＶ  ＩＤから物理ボリュームのＩＤを特定し、ＧＤＥＶに対応する物理ボリュームがＨＡ構成であるかを判定する（Ｓ１００３）。ステップＳ１００３において、ＨＡ構成ではないと判定された場合には、第１ストレージ装置１００は、通常のリード／ライト処理を実行する（Ｓ１００４）。一方、ステップＳ１００３において、ＨＡ構成であると判定された場合には、当該物理ボリュームがＲＣ構成であるかを判定する（Ｓ１００５）。ここで、物理ボリュームがＨＡ構成であるか、ＲＣ構成であるかは、メモリ等に記憶されている制御情報に含まれる各物理ボリュームの構成情報（図示せず）において管理されている。
【０２０７】
ステップＳ１００５において、物理ボリュームがＲＣ構成ではないと判定された場合には、ＨＡ構成におけるリード／ライト処理を実行する（Ｓ１００６）。一方、ステップＳ１００５において、物理ボリュームがＲＣ構成であると判定された場合には、ＨＡ構成であり、かつ、ＲＣ構成におけるリード／ライト処理を実行する（Ｓ１００７）。
【０２０８】
以下では、ＨＡ構成であり、かつ、ＲＣ構成である場合のライト処理について説明する。図４８に示すように、第１ストレージ装置１００は、ジャーナル属性がマスタかを判定する（Ｓ１０１０）。
【０２０９】
ステップＳ１０１０において、第１ストレージ装置１００のジャーナル属性がマスタであると判定された場合には、ホスト計算機３０から受領したライトコマンドを実行する（Ｓ１０１２）。一方、ステップＳ１０１０において、第１ストレージ装置１００のジャーナル属性がマスタではないと判定された場合、すなわち、第１ストレージ装置１００のジャーナル属性がスレーブであると判定された場合には、ライトコマンドを転送する（Ｓ１０１１）。
【０２１０】
上記したように、本実施の形態では、ＨＡ構成を形成する２つのストレージ装置間で、いずれの装置が先にライト処理するかを予め決めている。本実施の形態では、ＨＡ構成のプライマリ側すなわち、ジャーナル属性がマスタである装置が先にライト処理を実行することとしている。したがって、ジャーナル属性がスレーブである場合には、ライト処理を実施するマスタ側にデータを転送する。
【０２１１】
（マスタ側のライト処理）
次に、図４９Ａ及び４９Ｂを参照して、ジャーナル属性がマスタである第１ストレージ装置１００のライト処理について説明する。
【０２１２】
図４９Ａに示すように、まず、第１ストレージ装置１００は、ＨＡ構成のペア状態を取得して（Ｓ１０２１）、ＨＡ構成のペア状態がブロック（Block）状態かを判定する（Ｓ１０２２）。ＨＡ構成のプライマリ側とセカンダリ側との間でデータの差分が発生した場合、すなわち、同期に失敗した場合には、旧データへのアクセスをガードする必要がある。本実施の形態では、上記したクォーラムディスク１０５のロック情報（Lock情報）を用いて、差分発生時の旧データへのアクセスをガードしている。
【０２１３】
ステップＳ１０２２において、ＨＡ構成のペア状態がブロック（Block）状態であると判定された場合には、第１ストレージ装置１００は、ホスト計算機３０からのＩ／Ｏかを判定する（Ｓ１０２３）。ステップＳ１０２３において、ホスト計算機３０からの応答であると判定された場合には、第１ストレージ装置１００は、ＲＳＰ（Response）にチェック応答を返す（Ｓ１０２４）。一方、ステップＳ１０２３において、ホスト計算機３０からの応答ではないと判定された場合には、ストレージ装置１００は、ステップＳ１０３７以降の処理を実行する。
【０２１４】
また、ステップＳ１０２２において、ＨＡ構成のペア状態がブロックではないと判定された場合には、第１ストレージ装置１００は、ＧＤＥＶ状態を取得して（Ｓ１０２５）、アクセス対象の物理ボリュームへのアクセスがブロック（Block：ハードウェア障害などにより書き込み不可の状態）されているかを判定する（Ｓ１０２６）。
【０２１５】
ステップＳ１０２６において、アクセス対象の物理ボリュームへのアクセスがブロック（Block）されていると判定された場合には、第１ストレージ装置１００は、ＨＡ構成のペア状態をブロック（Block）に設定する（Ｓ１０２７）。そして、第１ストレージ装置１００は、ホスト計算機３０からのＩ／Ｏかを判定し（Ｓ１０２８）、ホスト計算機３０からのＩ／ＯであればＲＳＰにチェック応答を返し（Ｓ１０２９）、処理を終了する。
【０２１６】
一方、ステップＳ１０２８において、ホスト計算機３０からのＩ／Ｏではないと判定された場合には、第１ストレージ装置１００は、ＲＳＰにチェック応答とともに、ＨＡプライマリ側がブロック状態であることを応答して（Ｓ１０３０）、ステップＳ１０３７以降の処理を実行する。ステップＳ１０３０の応答により、ＨＡプライマリ側である第１ストレージ装置１００がブロック（Block）状態であることをＨＡセカンダリ側である第２ストレージ装置１５０に通知し、第２ストレージ装置１５０にクォーラムディスク１０５のＬｏｃｋを取得させる。
【０２１７】
ステップＳ１０２６において、アクセス対象の物理ボリュームのアクセスがブロックされていないと判定された場合には、第１ストレージ装置１００は、書き込み対象の第１物理ボリューム１０１にライト処理を実施する（Ｓ１０３１）。そして、ＨＡ構成のペア状態を取得して（Ｓ１０３２）、ＨＡプライマリ側でロック（Lock）を取得しているかを判定する（Ｓ１０３３）。
【０２１８】
ステップＳ１０３３において、ＨＡプライマリ側でロック（Lock）取得していると判定された場合には、第１ストレージ装置１００は、ＨＡ構成における差分ビットマップをＯＮにする（Ｓ１０３４）。そして、第１ストレージ装置１００は、ホスト計算機３０からのＩ／Ｏかを判定し（Ｓ１０３５）、ホスト計算機３０からのＩ／Ｏであれば、ステップＳ１０３７以降の処理を実行し、ホスト計算機３０からのＩ／ＯでなければＲＳＰにチェック応答とともにＬｏｃｋ応答を返す（Ｓ１０３６）。
【０２１９】
ステップＳ１０３３において、ＨＡプライマリ側でロック（Lock）を取得している場合、すなわち、ＨＡセカンダリ側に障害が発生している場合には、ＨＡ構成における差分ビットマップをＯＮにして、ＨＡセカンダリ側の回復後に差分データをコピーする。これにより、障害回復時にＨＡ構成を回復することが可能となる。また、ライト処理がＨＡセカンダリ側からの二重化ライトの場合には、ＨＡセカンダリ側のＨＡ状態をブロック（Block）状態に遷移させるため、ＲＳＰにチェック応答し、チェック応答にＨＡプライマリ側のロック（Lock）状態を付加してＨＡセカンダリ側に通知する。これにより、ＨＡセカンダリ側のＨＡ状態をブロック（Block）状態に遷移させることができる。
【０２２０】
続いて、第１ストレージ装置１００は、ＲＣ構成のペア状態を取得して（Ｓ１０３７）、第１ストレージ装置１００と第３ストレージ装置２００とのペア状態が、ペア（Pair）かを判定する（Ｓ１０３８）。
【０２２１】
ステップＳ１０３８において、ペア（Pair）ではないと判定された場合には、第１ストレージ装置１００は、ペア状態がコピー（Copy）かを判定する（Ｓ１０３９）。ステップＳ１０３９において、ペア状態がコピー（Copy）であると判定された場合には、第１ストレージ装置１００は、ＲＣ構成における差分ビットマップを取得する（Ｓ１０４０）。そして、第１ストレージ装置１００は、ステップＳ１０４０で取得した差分ビットマップに対応するデータをコピー済みか判定し（Ｓ１０４１）、コピー済みの場合はステップＳ１０４５以降の処理を実行し、コピー済みでない場合にはステップＳ１０４８以降の処理を実行する。
【０２２２】
一方、ステップＳ１０３９において、ペア状態がコピーではないと判定された場合には、第１ストレージ装置１００は、ペア状態がサスペンド（Suspend）かを判定する（Ｓ１０４２）。ステップＳ１０４２において、ペア状態がサスペンドであると判定された場合には、第１ストレージ装置１００は、ＲＣ構成における差分ビットマップをＯＮにする（Ｓ１０４３）。一方、ステップＳ１０４２において、ペア状態がサスペンドではないと判定された場合には、第１ストレージ装置１００は、ＲＳＰにチェック応答を返す（Ｓ１０４４）。
【０２２３】
ステップＳ１０３８において、コピー状態がペアであると判定された場合には、第１ストレージ装置１００は、アクセス対象の第１物理ボリューム１０１のジャーナルグループ番号を取得し（Ｓ１０４５）、シーケンシャル番号を取得、更新して（Ｓ１０４６）、ジャーナルを作成する（Ｓ１０４７）。
【０２２４】
そして、第１ストレージ装置１００は、ホスト計算機３０からのＩ／Ｏかを判定して（Ｓ１０４８）、ホスト計算機３０からのＩ／Ｏではない場合は、ＲＳＰにシーケンシャル番号を設定する（Ｓ１０５５）。
【０２２５】
一方、ステップＳ１０４８において、ホスト計算機３０からのＩ／Ｏであると判定された場合には、第１ストレージ装置１００は、コマンド（CMD）にシーケンシャル番号を付与する（Ｓ１０４９）。そして、第１ストレージ装置１００は、ＨＡ構成のペア状態を取得して（Ｓ１０５０）、ペア状態がロック（Lock）かを判定する（Ｓ１０５１）。
【０２２６】
ステップＳ１０５１において、ＨＡ構成のペア状態がロック（Lock）の場合には、第１ストレージ装置１００は、コマンドにブロック（Block）を指定する（Ｓ１０５２）。ステップＳ１０５２において、第１ストレージ装置１００は、ＨＡセカンダリ側である第２ストレージ装置１５０に当該コマンドを転送し、第２ストレージ装置１５０のＨＡ状態をブロック（Block）に遷移させる。
【０２２７】
続いて、第１ストレージ装置１００は、二重ライト転送を実行して（Ｓ１０５３）、終了応答を返し（Ｓ１０５４）、処理を終了する。ステップＳ１０５３における二重ライト転送処理は、後で詳細に説明する。
【０２２８】
（二重ライト処理）
次に、図５０を参照して、ステップＳ１０５３における二重ライト処理の詳細について説明する。図５０に示すように、第１ストレージ装置１００は、第２ストレージ装置１５０にデータの二重化処理のために、ライトデータを送信する（Ｓ１０６１）。そして、第１ストレージ装置１００は、送信結果を確認する（Ｓ１０６２）。
【０２２９】
そして、第１ストレージ装置１００は、送信結果が良好（Good）かを判定し（Ｓ１０６３）、良好（Good）である場合には、応答コマンドにGoodを設定して（Ｓ１０６４）、終了応答する（Ｓ１０７６）して処理を終了する。
【０２３０】
一方、ステップＳ１０６３において、送信結果が良好（Good）ではない場合には、第１ストレージ装置１００は、送信結果がＣｈｅｃｋ応答であり、ＨＡセカンダリ側でＬｏｃｋ取得されているかを判定する（Ｓ１０６５）。ステップＳ１０６５において、ＨＡセカンダリ側である第２ストレージ装置１５０でＬｏｃｋ取得している場合には、ＨＡセカンダリ側のデータが最新で、ＨＡプライマリ側のデータが旧データとなってしまうため、ＨＡ状態をBlockとして、ＨＡプライマリ側の旧データへのアクセスをガードする。
【０２３１】
ステップＳ１０６５において、送信結果がCheck応答でありＨＡセカンダリ側でＬｏｃｋ取得されていると判定された場合には、第１ストレージ装置１００は、ＨＡ状態をBlockに設定し（Ｓ１０６６）、応答コマンドにCheckを設定し（Ｓ１０７６）、終了応答して（Ｓ１０７６）処理を終了する。
【０２３２】
また、ステップＳ１０６５において、送信結果がＣｈｅｃｋ応答でありＨＡセカンダリ側でＬｏｃｋ取得されていないと判定された場合には、第１ストレージ装置１００は、クォーラムロック（Quorum Lock）を取得する（Ｓ１０６８）。ＨＡセカンダリ側の送信結果が良好（Good）ではなく、Check応答にLock取得が付与されていない場合には、ＨＡセカンダリ側で二重ライト不可の状態となるため、ＨＡプライマリ側でLockを取得して、ＨＡプライマリ側とＨＡセカンダリ側との間の差分データを差分管理する必要がある。
【０２３３】
第１ストレージ装置１００は、ステップＳ１０６８でクォーラムロック（Quorum Lock）を取得後、ロック取得結果を確認して（Ｓ１０６９）、ロック取得結果が良好（Good）かを判定する（Ｓ１０７０）。
【０２３４】
ステップＳ１０７０において、ロック取得結果が良好（Good）の場合には、第１ストレージ装置１００は、ＨＡ状態にLockを設定し（Ｓ１０７１）、ＨＡ構成の差分ビットマップをＯＮにして（Ｓ１０７２）、応答コマンドにGoodを設定し（Ｓ１０７３）、終了応答する（Ｓ１０７６）。
【０２３５】
一方、ステップＳ１０７０において、ロック取得結果が良好（Good）ではない場合には、第１ストレージ装置１００は、ＨＡ状態にBlockを設定し（Ｓ１０７４）、応答コマンドにCheckを設定し（Ｓ１０７４）、終了応答して（Ｓ１０７５）処理を終了する。
【０２３６】
（スレーブ側のライト処理）
次に、図５１Ａ及び５１Ｂを参照して、ジャーナル属性がスレーブである第２ストレージ装置１５０のライト処理について説明する。まず、第２ストレージ装置１５０は、ホスト計算機３０からのＩ／Ｏかを判定する（Ｓ１０８１）。ステップＳ１０８１において、ホスト計算機３０からのＩ／Ｏであると判定された場合には、第２ストレージ装置１５０は、ＨＡ構成のペア状態を取得して（Ｓ１０８２）、ペア状態がＮｏｒｍａｌかを判定する（Ｓ１０８３）。一方、ステップＳ１０８３において、ホスト計算機３０からのＩ／Ｏではないと判定された場合には、第２ストレージ装置１５０は、ステップＳ１１０５以降の処理を実行する。
【０２３７】
ＨＡセカンダリ側である第２ストレージ装置１５０においてLock取得している場合には、コマンドにBlockを指定して、ＨＡプライマリ側のＨＡ状態をBlockに遷移させる必要がある。また、第２ストレージ装置１５０がLock取得しておらず、ＨＡプライマリ側のデータが最新となり、ＨＡセカンダリ側が旧データとなった場合には、ＨＡセカンダリ側の旧データへのアクセスをガードする必要がある。
【０２３８】
ステップＳ１０８３において、ＨＡ構成のペア状態がNormalであると判定された場合には、第２ストレージ装置１５０は、ステップＳ１０８７の処理を実行する。一方、ステップＳ１０８３において、ＨＡ構成のペア状態がNormalではないと判定された場合には、第２ストレージ装置１５０は、自身がLock取得しているかを判定する（Ｓ１０８４）。
【０２３９】
ステップＳ１０８４において、自身がLock取得していると判定された場合には、第２ストレージ装置１５０は、ＨＡプライマリ側のＨＡ状態をBlockに遷移させるために、コマンドにBlockを指定する（Ｓ１０８５）。一方、ステップＳ１０８４において、自身がLock取得していないと判定された場合には、Check応答して（Ｓ１０８６）処理を終了する。
【０２４０】
続いて、第２ストレージ装置１５０は、第１ストレージ装置１００にライトコマンドを転送する（Ｓ１０８７）。本実施の形態では、上記したように、ＨＡプライマリ側が先にライト処理することとしている。このため、ホスト計算機３０からＨＡセカンダリ側にライト要求を受領した場合でも、ＨＡセカンダリ側でデータをライトする前に、ＨＡプライマリ側にデータを転送してＨＡプライマリ側にデータをライトする。
【０２４１】
そして、第２ストレージ装置１５０は、転送結果を確認して（Ｓ１０８８）、転送結果が良好（Good）であるかを判定する（Ｓ１０８９）。ステップＳ１０８９において、転送結果が良好（Good）であると判定された場合には、第２ストレージ装置１５０は、ＲＳＰからシーケンシャル番号を取得する（Ｓ１０９０）。上記したように、ＨＡプライマリ側である第１ストレージ装置１００でライト処理が実行され、シーケンシャル番号が取得されるため、ＨＡセカンダリ側は、ＨＡプライマリ側で取得されたシーケンシャル番号を、ＲＳＰを介して受け取る。
【０２４２】
ステップＳ１０８９において、転送結果が良好（Good）ではないと判定された場合には、第２ストレージ装置１５０は、転送結果がCheck応答であり、ＨＡプライマリ側でLock取得されているかを判定する（Ｓ１０９１）。ステップＳ１０９１において、転送結果がCheck応答であり、ＨＡプライマリ側でLock取得されている場合には、第２ストレージ装置１５０は、ＨＡセカンダリ側のＨＡ状態をBlockに設定して（Ｓ１０９２）、Check応答を返し（Ｓ１０９３）、処理を終了する。
【０２４３】
ステップＳ１０９１において、転送結果がＣｈｅｃｋ応答であり、ＨＡプライマリ側でLock取得されていないと判定された場合には、ＨＡ構成のペア状態を取得して（Ｓ１０９４）、ＨＡセカンダリ側でLock取得しているかを判定する（Ｓ１０９５）。ＨＡプライマリ側に転送したコマンドがCheck応答となった場合には、ＨＡプライマリ側へのライト処理が失敗しているため、ＨＡセカンダリ側でLockを取得してＩ／Ｏ処理を継続する。
【０２４４】
ステップＳ１０９５において、ＨＡセカンダリ側でLock取得していると判定された場合には、第２ストレージ装置１５０は、ステップＳ１１０２以降の処理を実行する。一方、ステップＳ１０９５において、ＨＡセカンダリ側でLock取得していないと判定された場合には、第２ストレージ装置１５０は、クォーラムロック（Quorum Lock）を取得して（Ｓ１０９６）、Ｌｏｃｋ取得結果を確認する（Ｓ１０９７）。
【０２４５】
第２ストレージ装置１５０は、Lock取得結果が良好（Good）かを判定し（Ｓ１０９８）、良好（Good）である場合には、ＨＡセカンダリ側のＨＡ状態にLockを設定して（Ｓ１０９９）、ステップＳ１１０２以降の処理を実行する。一方、ステップＳ１０９８において、Lock取得結果が良好（Good）ではないと判定された場合には、ＨＡセカンダリ側のＨＡ状態にBlockを設定して（Ｓ１１００）、Check応答を返し（Ｓ１１０１）、処理を終了する。
【０２４６】
そして、第２ストレージ装置１５０は、ステップＳ１１０２において、ＲＣ構成のペア状態を取得して（Ｓ１１０２）、ＲＣ構成のペア状態がサスペンド（Suspend）かを判定する（Ｓ１１０３）。このとき、第２ストレージ装置１５０は、ＨＡプライマリ側である第１ストレージ装置１００からシーケンシャル番号を取得していないため、ＲＣ構成をペア状態にしてＩ／Ｏ処理を継続するためには、第２ストレージ装置１５０のジャーナル属性をマスタに切り替える必要がある。
【０２４７】
ステップＳ１１０３において、ＲＣ構成のペア状態がサスペンドであると判定された場合には、第２ストレージ装置１５０は、ステップＳ１１０５以降の処理を実行する。一方、ステップＳ１１０３において、ＲＣ構成のペア状態がサスペンドではないと判定された場合には、第２ストレージ装置１５０は、ジャーナル属性をマスタに切り替える（Ｓ１１０４）。
【０２４８】
続いて、ステップＳ１１０５において、第２ストレージ装置１５０は、ＨＡ構成のペア状態を取得して、ＨＡ構成のペア状態がブロック（Block）かを判定する（Ｓ１１０６）。ステップＳ１１０６においてＨＡ構成のペア状態がブロック（Block）であると判定された場合には、第２ストレージ装置１５０は、ステップＳ１１１９以降の処理を実行する。
【０２４９】
一方、ステップＳ１１０６において、ＨＡ構成のペア状態がブロックではないと判定された場合には、第２ストレージ装置１５０は、ＧＤＥＶ状態を取得して（Ｓ１１０７）、アクセス対象の物理ボリュームへのアクセスがブロック（ハードウェア障害などにより書き込み不可の状態）されているかを判定する（Ｓ１１０８）。
【０２５０】
ステップＳ１１０８において、アクセス対象の物理ボリュームへのアクセスがブロックされていると判定された場合には、第２ストレージ装置１５０は、ＨＡ構成のペア状態をブロック（Block）に設定する（Ｓ１１０９）。そして、第２ストレージ装置１５０は、ホスト計算機３０からのＩ／Ｏかを判定し（Ｓ１１１０）、ホスト計算機３０からのＩ／ＯであればＲＳＰにチェック応答を返し（Ｓ１１１２）処理を終了する。
【０２５１】
一方、ステップＳ１１１０において、ホスト計算機３０からのＩ／Ｏではないと判定された場合、ストレージ装置１００は、ＲＳＰにチェック応答とともに、ＨＡセカンダリ側がブロック（Block）状態であることを応答して（Ｓ１１１１）、ステップＳ１１１９以降の処理を実行する。ステップＳ１１１１の応答により、ＨＡセカンダリ側である第２ストレージ装置１５０がブロック状態であることをＨＡプライマリ側である第１ストレージ装置１００に通知し、第１ストレージ装置１００にクォーラムディスク１０５のLockを取得させる。
【０２５２】
また、ステップＳ１１０８において、アクセス対象の物理ボリュームのアクセスがブロック（Block）されていないと判定された場合には、第２ストレージ装置１５０は、書き込み対象の第２物理ボリューム１５１にライト処理を実施する（Ｓ１１１３）。そして、ＨＡ構成のペア状態を取得して（Ｓ１１１４）、ＨＡセカンダリ側でＬｏｃｋを取得しているかを判定する（Ｓ１１１５）。
【０２５３】
ステップＳ１１１５において、ＨＡセカンダリ側でLock取得していると判定された場合には、第２ストレージ装置１００は、ＨＡ構成における差分ビットマップをＯＮにする（Ｓ１１１６）。そして、第２ストレージ装置１５０は、ホスト計算機３０からのＩ／Ｏかを判定し（Ｓ１１１７）、ホスト計算機３０からのＩ／Ｏであれば、ステップＳ１１１９以降の処理を実行し、ホスト計算機３０からのＩ／ＯでなければＲＳＰにチェック応答とともにＬｏｃｋ応答を返す（Ｓ１１１８）。
【０２５４】
ステップＳ１１１５において、ＨＡセカンダリ側でＬｏｃｋを取得している場合、すなわち、ＨＡプライマリ側に障害が発生している場合には、ＨＡ構成における差分ビットマップをＯＮにして、ＨＡプライマリ側の回復後に差分データをコピーする。これにより、ＨＡプライマリ側の障害回復後にＨＡ構成を回復することが可能となる。また、ライト処理がＨＡプライマリ側からの二重化ライトの場合には、ＨＡプライマリ側のＨＡ状態をBlock状態に遷移させるため、ＲＳＰにチェックを応答し、チェック応答の不可情報にＨＡセカンダリ側のLock状態をＨＡプライマリ側に通知する。これにより、ＨＡプライマリ側のＨＡ状態をBlock状態に遷移させることができる。
【０２５５】
続いて、第２ストレージ装置１００は、ＲＣ構成のペア状態を取得して（Ｓ１１１９）、第２ストレージ装置１５０と第４ストレージ装置２５０とのペア状態が、ペア（Ｐａｉｒ）かを判定する（Ｓ１１２０）。
【０２５６】
ステップＳ１１２０において、ペアではないと判定された場合には、第２ストレージ装置１５０は、ペア状態がコピー（Copy）かを判定する（Ｓ１１２１）。ステップＳ１１２１）において、ペア状態がコピーであると判定された場合には、第２ストレージ装置１５０は、ＲＣ構成における差分ビットマップを取得する（Ｓ１１２２）。そして、第２ストレージ装置１５０は、ステップＳ１１２２で取得した差分ビットマップに対応するデータをコピー済みか判定し（Ｓ１１２３）、コピー済みの場合はステップＳ１１２７以降の処理を実行し、コピー済みでない場合にはステップＳ１１３３以降の処理を実行する。
【０２５７】
一方、ステップＳ１１２１において、ペア状態がコピーではないと判定された場合には、第２ストレージ装置１５０は、ペア状態がサスペンド（Suspend）かを判定する（Ｓ１１２４）。ステップＳ１１２４において、ペア状態がサスペンドであると判定された場合には、第２ストレージ装置１５０は、ＲＣ構成における差分ビットマップをＯＮにする（Ｓ１１２５）。一方、ステップＳ１１２４において、ペア状態がサスペンドではないと判定された場合には、第２ストレージ装置１５０は、ＲＳＰにチェック応答を返し（Ｓ１１２６）処理を終了する。
【０２５８】
ステップＳ１１２０において、コピー状態がペアであると判定された場合には、第２ストレージ装置１５０は、アクセス対象の第２物理ボリューム１５１のジャーナルグループ番号を取得する（Ｓ１１２７）。そして、第２ストレージ装置１５０は、ジャーナル属性の切り替えが発生するかを判定する（Ｓ１１２８）。
【０２５９】
ステップＳ１１２８において、ジャーナル属性の切り替えが発生したと判定された場合には、第２ストレージ装置１５０は、第２ジャーナルボリューム１５２に記憶しているシーケンシャル番号を付与してジャーナルデータを作成する（Ｓ１１３０）。一方、ステップＳ１１２８において、ジャーナル属性の切り替えが発生していないと判定された場合には、第２ストレージ装置１５０は、ＲＳＰからシーケンシャル番号を取得する（Ｓ１１２９）。
【０２６０】
そして、第２ストレージ装置１５０は、シーケンシャル番号を更新して（Ｓ１１３１）、ジャーナルを作成し（Ｓ１１３２）、終了応答を返し（Ｓ１１３３）処理を終了する。
【０２６１】
（マスタ側のリストア処理）
次に、図５２を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がマスタである第３ストレージ装置２００のリストア処理について説明する。
【０２６２】
図５２に示すように、まず、第３ストレージ装置２００は、ＨＡ構成のペア状態を取得して（Ｓ１１４１）、ＨＡ構成のペア状態がNormalかを判定する（Ｓ１１４２）。ステップＳ１１４２において、ＨＡ構成のペア状態がNormalであると判定された場合には、ステップＳ１１４６以降の処理を実行する。
【０２６３】
一方、ステップＳ１１４２において、ＨＡ構成のペア状態がNormalではないと判定された場合には、第３ストレージ装置２００は、自身がLock取得しているかを判定する（Ｓ１１４３）。
【０２６４】
ステップＳ１１４３において、自身がLock取得していると判定された場合には、第３ストレージ装置１００は、ＨＡセカンダリ側のＨＡ状態をBlockに遷移させるために、コマンドにBlockを指定する（Ｓ１１４４）。一方、ステップＳ１１４３において、自身がLock取得していないと判定された場合には、第３ストレージ装置３００は、ＨＡセカンダリ側にLock取得させるために、コマンドにLockを指定する（Ｓ１１４５）。
【０２６５】
そして、ステップＳ１１４６において、第３ストレージ装置３００は、ＧＤＥＶ状態を取得して（Ｓ１１４６）、ＧＤＥＶ状態がNormalかを判定する（Ｓ１１４７）。
【０２６６】
ステップＳ１１４７において、ＧＤＥＶ状態がNormalであると判定された場合には、第３ストレージ装置２００は、リストア処理を実施して（Ｓ１１４８）、リストア済みのシーケンシャル番号を更新する（Ｓ１１４９）。
【０２６７】
一方、ステップＳ１１４７において、ＧＤＥＶ状態がNormalではないと判定された場合には、第３ストレージ装置２００は、ＨＡ状態にBlockを指定して（Ｓ１１５０）、ＨＡセカンダリ側である第４ストレージ装置２５０にLock取得させるため、コマンドにLockを指定する（Ｓ１１５１）。
【０２６８】
続いて、第３ストレージ装置２００はコマンドにシーケンシャル番号を設定して、ＲＣ構成のセカンダリ側の第４ストレージ装置２５０に二重ライト処理を実施するためにデータを転送して（Ｓ１１５３）、処理を終了する。ステップＳ１１５３におけるＳＶＯＬ二重ライト転送処理については、後で詳細に説明する。
【０２６９】
ステップＳ１１５３では、ＨＡ状態がＢｌｏｃｋで、ＧＤＥＶ状態がＢｌｏｃｋである場合、すなわち、第３ストレージ装置２００が閉塞した場合でもＨＡセカンダリ側にデータをライトするため、二重化するためのライトデータを送信している。また、ＨＡプライマリ側でＬｏｃｋ取得し、ＨＡセカンダリ側にライト不可の状態、すなわち、スレーブ側のＨＡセカンダリ側のボリュームが閉塞した場合でも、ＨＡセカンダリ側にシーケンシャル番号を転送している。例えば、その後、ＲＣ構成のセカンダリ側のＳＶＯＬのＨＡプライマリ側からＰＶＯＬへのＲＤＪＮＬパスが閉塞した場合に、ＨＡセカンダリ側は転送されたシーケンシャル番号を用いてＲＣ構成のプライマリ側（ＰＶＯＬ側）からジャーナルを読み込んでリストア処理を再開することができる。
【０２７０】
（ＳＶＯＬ側の二重ライト転送処理）
次に、図５３を参照して、上記したステップＳ１１５３において実行されるＳＶＯＬ側（ＲＣ構成のセカンダリ側）のＨＡプライマリ側である第３ストレージ装置２００による二重ライト転送処理について説明する。
【０２７１】
図５３に示すように、第３ストレージ装置２００は、第４ストレージ装置２５０に二重化するためのライトデータを送信する（Ｓ１１６１）。そして、第３ストレージ装置２００は、送信結果を確認する（Ｓ１１６２）。
【０２７２】
そして、第３ストレージ装置２００は、送信結果が良好（Good）かを判定し（Ｓ１１６３）、良好（Good）である場合には、終了応答する（Ｓ１１７６）。一方、ステップＳ１１６３において、送信結果が良好（Good）ではない場合には、第３ストレージ装置２００は、転送結果がCheck応答であり、ＨＡセカンダリ側でLock取得されているかを判定する（Ｓ１１６４）。ステップＳ１１１６４において、ＨＡセカンダリ側である第４ストレージ装置２５０でLock取得されていると判定された場合には、ＨＡセカンダリ側のデータが最新で、ＨＡプライマリ側のデータが旧データとなってしまうため、ＨＡ状態をBlock状態にして、ＨＡプライマリ側の旧データへのアクセスをガードする。
【０２７３】
ステップＳ１１６４において、送信結果がチェック応答であり、ＨＡセカンダリ側でLock取得されている場合には、第３ストレージ装置２００は、ＨＡ状態をBlockに設定し（Ｓ１１６５）、終了応答して（Ｓ１１７６）処理を終了する。
【０２７４】
また、ステップＳ１１６４において、送信結果がチェック応答であり、ＨＡセカンダリ側でLock取得されていないと判定された場合には、第３ストレージ装置２００は、ＨＡ構成のペア状態を取得する（Ｓ１１６６）。そして、第３ストレージ装置２００自身がLock取得しているかを判定する（Ｓ１１６７）。
【０２７５】
ステップＳ１１６７において、第３ストレージ装置２００自身がLock取得していると判定された場合には、ＨＡ構成の差分ビットマップをＯＮにして（Ｓ１１７５）、終了応答して（Ｓ１１７６）処理を終了する。
【０２７６】
一方、ステップＳ１１６７において、第３ストレージ装置２００自身がLock取得していないと判定された場合には、第３ストレージ装置２００は、ＨＡペア状態がBlockかを判定する（Ｓ１１６８）。
【０２７７】
ステップＳ１１６８において、ＨＡ構成のペア状態がBlockであると判定された場合には、第３ストレージ装置２００は、ＲＣ構成のセカンダリ側のＨＡプライマリにもＨＡセカンダリにもライトできない状態であるとして、ＲＣペアを障害サスペンド（Suspend）させて（Ｓ１１７３）、終了応答して（Ｓ１１７６）処理を終了する。
【０２７８】
一方、ステップＳ１１６８において、ＨＡ構成のペア状態がBlockではないと判定された場合には、第３ストレージ装置２００は、第２クォーラムディスク２０５のクォーラムロック（Quorum Lock）を取得する（Ｓ１１６９）。そして、第３ストレージ装置２００は、ロック取得結果を確認して（Ｓ１１７０）、ロック取得結果が良好（Good）かを判定する（Ｓ１１７１）。
【０２７９】
ステップＳ１１７１において、ロック取得結果が良好（Good）の場合には、第３ストレージ装置２００は、ＨＡ状態にLockを設定し（Ｓ１１７２）、ＨＡ構成の差分ビットマップをＯＮにして（Ｓ１１７５）、終了応答する（Ｓ１１７６）。一方、ステップＳ１１７１において、ロック取得結果が良好（Good）ではない場合には、第３ストレージ装置２００は、ＨＡ状態にBlockを設定し（Ｓ１１７４）、ＨＡ構成の差分ビットマップをＯＮにして（Ｓ１１７５）、終了応答して（Ｓ１１７６）処理を終了する。
【０２８０】
（ＳＶＯＬ側の二重ライト受領処理）
次に、図５４を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のＨＡセカンダリ側である第４ストレージ装置２５０二重ライト受領処理について説明する。
【０２８１】
図５４に示すように、第４ストレージ装置２５０は、ＨＡ構成のペア状態を取得して（Ｓ１１８１）、ペア状態がNormalかを判定する（Ｓ１１８２）。ステップＳ１１８２において、ペア状態がNormalであると判定された場合には、第４ストレージ装置２５０は、ＨＡセカンダリ側である第４ストレージ装置２５０にLock取得指示がされているかを判定する（Ｓ１１８３）。例えば、ＨＡプライマリ側でライト処理ができなかった場合には、ＨＡセカンダリ側にLock取得が指示されるため、ＨＡセカンダリ側でLock取得する必要がある。
【０２８２】
ステップＳ１１８２において、ペア状態がNormalではないと判定された場合には、第４ストレージ装置２５０は、自身がLock取得しているかを判定し（Ｓ１１９０）、Lock取得している場合には、ステップＳ１１９５以降の処理を実行する。一方、ステップＳ１１９０において、Lock取得していないと判定された場合には、第４ストレージ装置２５０は、Lock取得指示されているかを判定する（Ｓ１１９１）。
【０２８３】
ステップＳ１１９１において、ペア状態がＮｏｒｍａｌではなく、自身がＬｏｃｋ取得もしておらず、Ｌｏｃｋ取得指示がされている状態は、ＨＡプライマリ側でもＨＡセカンダリ側でもライト処理ができない状態である。この場合には、ＨＡプライマリ側にチェック応答を返し、ＨＡプライマリ側でＲＣペアの障害サスペンドとさせる。
【０２８４】
ステップＳ１１９１において、Ｌｏｃｋ取得指示されていると判定された場合には、第４ストレージ装置２５０は、ＨＡプライマリ側にチェック応答を返し（Ｓ１１９２）、処理を終了する。一方、ステップＳ１１９１において、Ｌｏｃｋ取得指示がされていないと判定された場合には、第４ストレージ装置２５０は、Block指示がされているかを判定する（Ｓ１１９３）。
【０２８５】
ステップＳ１１９３において、Ｂｌｏｃｋ指示がされていると判定された場合には、ＨＡプライマリ側でLock取得している状態であるため、第４ストレージ装置２５０は、リストア済みのシーケンシャル番号を更新する（Ｓ１２００）。一方、ステップＳ１１９３においてBlock指示がされていないと判定された場合には、チェック応答にＢｌｏｃｋを設定（Ｓ１１９４）して、Ｓ１２００以降の処理を実施する。ＨＡプライマリ側からのLock取得指示もBlock指示もない場合とは、ＨＡプライマリ側でLock取得していない状態であるため、ＨＡプライマリ側でLock取得させる必要がある。
【０２８６】
ステップＳ１１８３において、Lock取得が指示されている場合には、第４ストレージ装置２５０は、第２クォーラムディスク２０５のクォーラムロック（Quorum Rock）を取得して（Ｓ１１８４）、Lock取得結果を確認する（Ｓ１１８５）。
【０２８７】
第４ストレージ装置２５０は、Ｌｏｃｋ取得結果が良好（Good）かを判定し（Ｓ１１８６）、良好（Good）である場合には、ＨＡセカンダリ側のＨＡ状態にLockを設定する（Ｓ１１８７）。そして、第４ストレージ装置２５０は、ＨＡ構成の差分ビットマップをＯＮにして（Ｓ１１８９）、ステップＳ１１９５以降の処理を実行する。一方、ステップＳ１０９において、Lock取得結果が良好（Good）ではないと判定された場合には、Ｃｈｅｃｋ応答を返し（Ｓ１１８８）処理を終了する。
【０２８８】
ステップＳ１１８３において、Ｌｏｃｋ取得が指示されていない場合には、ステップＳ１１９５以降の処理を実行する。
【０２８９】
ステップＳ１１９５において、第４ストレージ装置２５０は、ＧＤＥＶペア状態を取得して、ＧＤＥＶペア状態がNormalかを判定する（Ｓ１１９６）。ステップＳ１１９６において、ＧＤＥＶペア状態がNormalであると判定された場合には、第４ストレージ装置２５０は、書き込み対象の第４物理ボリューム２５１にライト処理を実施する（Ｓ１１９９）。
【０２９０】
一方、ステップＳ１１９６において、ＧＤＥＶペア状態がNormalではないと判定された場合には、第４ストレージ装置２５０は、ＨＡのペア状態をBlockに設定し、チェック応答を返し（Ｓ１１９８）、Ｓ１２００以降の処理を実施する。
【０２９１】
そして、ステップＳ１２００において、第４ストレージ装置２５０は、リストア済みのシーケンシャル番号を更新して、終了応答し（１２０１）処理を終了する。
【０２９２】
（ＳＶＯＬ側のパージ処理）
次に、図５５を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のパージ処理について説明する。
【０２９３】
図５５に示すように、自身のジャーナル属性がマスタかを判定する（Ｓ１２１１）。ステップＳ１２１１において、ジャーナル属性がマスタではないと判定された場合には、第３ストレージ装置２００は、処理を終了する。以下では、第３ストレージ装置２００がＳＶＯＬ側のマスタであるとして説明する。
【０２９４】
ステップＳ１２１１において、ジャーナル属性がマスタであると判定された場合には、第３ストレージ装置２００は、リストア済みのシーケンシャル番号を取得する（Ｓ１２１２）。そして、第３ストレージ装置２００は、リストア済みのシーケンシャル番号までのジャーナルをパージする（Ｓ１２１３）。
【０２９５】
続いて、第３ストレージ装置２００は、ＲＤＪＮＬコマンドにパージ可能シーケンシャル番号を設定する（Ｓ１２１４）。そして、第３ストレージ装置２００は、ＰＶＯＬ側のジャーナル属性がマスタである第１ストレージ装置１００にＲＤＪＮＬコマンドを発行する（Ｓ１２１５）。
【０２９６】
（ＰＶＯＬ側マスタのパージ処理）
次に、図５６を参照して、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタのパージ処理について説明する。以下では、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタの装置を第１ストレージ装置１００として説明する。
【０２９７】
第１ストレージ装置１００は、ＲＤＪＮＬコマンドを受領して（Ｓ１２２１）、パージ可能シーケンシャル番号（ＳＥＱ＃）を取得する（Ｓ１２２２）。そして、パージ可能シーケンシャル番号までのジャーナルをパージする（Ｓ１２２３）。
【０２９８】
続いて、コマンドパラメータにパージ可能シーケンシャル番号を設定し（Ｓ１２２４）、ＰＶＯＬ側のジャーナル属性がスレーブの第２ストレージ装置１５０にパージ指示コマンドを発行する（Ｓ１２２５）。
【０２９９】
（ＰＶＯＬ側スレーブのパージ処理）
次に、図５７を参照して、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がスレーブのパージ処理について説明する。以下では、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタの装置を第２ストレージ装置１５０として説明する。
【０３００】
第２ストレージ装置１５０は、第１ストレージ装置１００からパージ指示コマンドを受領する（Ｓ１２３１）。そして、第２ストレージ装置１５０は、パージ可能シーケンシャル番号を取得し（Ｓ１２３２）、パージ可能シーケンシャル番号までのジャーナルをパージする（Ｓ１２３３）。
【０３０１】
（１−９−２）障害時のストレージシステムの動作の詳細
次に、図５８〜図６４を参照して、障害時のストレージシステムの動作の詳細について説明する。
【０３０２】
（ＰＶＯＬ側マスタ障害によるジャーナル属性切り替えその１）
まず、図５８を参照して、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のマスタの障害によるジャーナル属性の切り替え処理について説明する。以下では、ＰＶＯｌ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタの装置を第１ストレージ装置１００、ジャーナル属性がスレーブの装置を第２ストレージ装置１５０とし、第２ストレージ装置１５０でジャーナル属性をスレーブからマスタに切り替える場合について説明する。
【０３０３】
まず、第２ストレージ装置１５０は、ジャーナル属性がスレーブかを判定し（Ｓ１３０１）、ジャーナル属性がスレーブである場合には、ヘルスチェックを発行する（Ｓ１３０２）。第２ストレージ装置１５０は、ジャーナル属性がマスタである第１ストレージ装置１００の障害をヘルスチェックにより検出する。
【０３０４】
そして、第２ストレージ装置１５０は、ステップＳ１３０２で発行したヘルスチェックに対して応答があったかを判定する（Ｓ１３０３）。ステップＳ１３０３において、ヘルスチェックに応答があった場合には、第２ストレージ装置１５０は、ヘルスチェックが成功であったことを記録する（Ｓ１３０４）。
【０３０５】
一方、ステップＳ１３０３において、ヘルスチェックに応答がなかった場合には、第２ストレージ装置１５０は、前回のヘルスチェックに成功しているかを判定する（Ｓ１３０５）。ステップＳ１３０５において、前回のヘルスチェックに成功していると判定された場合には、ヘルスチェックが失敗であったことを記録する（Ｓ１３０６）。そして、第２ストレージ装置１５０は、現在時刻をヘルスチェック開始時間に設定して（Ｓ１３０７）、ステップＳ１３１０以降の処理を実行する。
【０３０６】
一方、ステップＳ１３０５において、前回のヘルスチェックに成功していないと判定された場合には、第２ストレージ装置１５０は、ヘルスチェック開始からの経過時間を算出する（Ｓ１３０８）。そして、第２ストレージ装置１５０は、ステップＳ１３０８で算出した経過時間が所定の閾値を経過しているかを判定する（Ｓ１３０９）。
【０３０７】
ステップＳ１３０９において、算出した経過時間が所定の閾値を経過していると判定された場合には、第２ストレージ装置１５０は、ステップＳ１３１１以降の処理を実行する。一方、ステップＳ１３０９において、算出した経過時間が所定の閾値を経過していないと判定された場合には、第２ストレージ装置１５０は、ステップＳ１３１０以降の処理を実行する。
【０３０８】
ステップＳ１３１０において、第２ストレージ装置１５０は、ジャーナル属性の切り替え要求があったかを判定する（Ｓ１３１０）。ステップＳ１３１０における切り替え要求は、上記したヘルスチェックにより実施される切り替えではなく、ジャーナル属性がマスタである第１ストレージ装置１００のジャーナルボリューム１０２が閉塞した場合などにより実施されるジャーナル属性の切り替えである。
【０３０９】
ステップＳ１３１０において、切り替え要求があったと判定された場合には、第２ストレージ装置１５０は、ステップＳ１３１１以降の処理を実行する。一方、ステップＳ１３１０において、切り替え要求がなかったと判定された場合には、第２ストレージ装置１５０は、処理を終了する。
【０３１０】
ステップＳ１３１１において、第２ストレージ装置１５０は、第１クォーラムディスク１０５に対して、当該装置に属するジャーナルグループの全ペアのＬｏｃｋを取得し（Ｓ１３１１）、当該ジャーナルグループのLockも取得する（Ｓ１３１２）。
【０３１１】
そして、第２ストレージ装置１５０は、ステップＳ１３１１及びステップＳ１３１２におけるLock取得に成功したかを判定する（Ｓ１３１３）。ステップＳ１３１３において、Lock取得に成功したと判定された場合には、第２ストレージ装置１５０は、ジャーナル属性をスレーブからマスタに切り替える（Ｓ１３１４）。そして、第２ストレージ装置１５０は、ＳＶＯＬ側にジャーナル属性のスレーブからマスタへの切り替えを通知する（Ｓ１３１５）。
【０３１２】
一方、ステップＳ１３１３において、Lock取得に失敗したと判定された場合には、第２ストレージ装置１５０は、処理を終了する。
【０３１３】
続いて、第２ストレージ装置１５０は、ＳＶＯＬ側のジャーナル属性の切り替えが成功したかを判定する（Ｓ１３１６）。ステップＳ１３１６において、ＳＶＯＬ側のジャーナル属性の切り替えが成功したと判定された場合には、第２ストレージ装置１５０は、処理を終了する。一方、ステップＳ１３１６において、ＳＶＯｌ側のジャーナル属性の切り替えが失敗したと判定された場合には、第２ストレージ装置１５０は、ジャーナル属性のＲＣのペア状態をサスペンドとする（Ｓ１３１７）。
【０３１４】
（ＰＶＯＬ側マスタ障害によるジャーナル属性切り替えその２）
次に、図５９を参照して、上記ステップＳ１３１５におけるＳＶＯＬ側のジャーナル属性の切り替え処理について説明する。以下では、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がマスタの装置を第３ストレージ装置２００、ジャーナル属性がスレーブの装置を第４ストレージ装置２５０とし、第４ストレージ装置２５０でジャーナル属性をスレーブからマスタに切り替える場合について説明する。
【０３１５】
第４ストレージ装置２５０は、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がマスタである第３ストレージ装置２００にジャーナル属性のマスタからスレーブへの切り替えを通知する（Ｓ１３２１）。
【０３１６】
第４ストレージ装置２５０は、上記ステップＳ１３１５において第２ストレージ装置１５０からジャーナル属性の切り替え通知を受領すると、自身のジャーナル属性をスレーブからマスタに切り替える前に、マスタ側のジャーナル属性を切り替えさせる必要がある。
【０３１７】
第４ストレージ装置２５０は、マスタ側のジャーナル属性の切り替えが成功したかを判定する（Ｓ１３２２）。
【０３１８】
ステップＳ１３２２において、マスタ側のジャーナル属性の切り替えが成功したと判定された場合には、第４ストレージ装置２５０は、リストア可能シーケンシャル番号を第３ストレージ装置から取得し（Ｓ１３２３）、リストア可能シーケンシャル番号を記憶する（Ｓ１３２４）。そしてリストア可能シーケンシャル番号に１を加算してリストア開始シーケンシャル番号として（Ｓ１３２５）、ステップＳ１３３４以降の処理を実行する。
【０３１９】
なお、第４ストレージ装置２５０が第３ストレージ装置２００と通信可能な場合には、第３ストレージ装置２００でリストア可能なシーケンシャル番号までは第３ストレージ装置２００でリストア処理を実施させる。そして、第４ストレージ装置２５０は、リストア可能なシーケンシャル番号に１を加算して、ＲＤＪＮＬコマンドの発行及びリストア処理を開始する。
【０３２０】
一方、ステップＳ１３２２において、マスタ側のジャーナル属性の切り替えが失敗したと判定された場合には、第４ストレージ装置２５０は、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタである第１ストレージ装置１００の障害による切り替え指示かを判定する（Ｓ１３２６）。ステップＳ１３２６において、第１ストレージ装置１００の障害による切り替え指示であると判定された場合には、第４ストレージ装置２５０は、ＰＶＯＬ側に切り替え失敗を応答する（Ｓ１３２７）。
【０３２１】
一方、ステップＳ１３２６において、第１ストレージ装置１００の障害による切り替え指示ではないと判定された場合には、第４ストレージ装置２５０は、リストア済みのシーケンシャル番号を取得する（Ｓ１３２８）。そして、第４ストレージ装置２５０は、リストア済みのシーケンシャル番号に１を加算する（Ｓ１３２９）。
【０３２２】
ステップＳ１３２６において第１ストレージ装置１００の障害による切り替え指示ではないと判定された場合は、ＳＶＯＬ側のマスタである第３ストレージ装置２００に障害が発生し、ＳＶＯＬ側のマスタとの通信が失敗することも想定される。この場合には、ＳＶＯＬ側のスレーブである第４ストレージ装置２５０の第４ジャーナルボリューム２５２で記憶しているリストア済みのシーケンシャル番号を取得して、当該番号に１を加算してＲＤＪＮＬコマンドの発行及びリストア処理を開始する。
【０３２３】
そして、第４ストレージ装置２５０は、第２クォーラムディスク２０５に対して、当該装置に属するジャーナルグループの全ペアのＬｏｃｋを取得し（Ｓ１３３０）、当該ジャーナルグループのＬｏｃｋも取得する（Ｓ１３３１）。
【０３２４】
そして、第４ストレージ装置２５０は、ステップＳ１３３０及びステップＳ１３３１におけるLock取得に成功したかを判定する（Ｓ１３３２）。ステップＳ１３３２において、Lock取得に失敗したと判定された場合には、第４ストレージ装置２５０は、ＰＶＯＬ側に切り替え失敗を応答する（Ｓ１３３３）。
【０３２５】
一方、ステップＳ１３３２において、Lock取得に成功したと判定された場合には、第４ストレージ装置２５０は、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタである第１ストレージ装置１００の障害による切り替え指示かを判定する（Ｓ１３３４）。
【０３２６】
ＳＶＯＬ側のジャーナル属性をスレーブからマスタに切り替えるパターンとしては、ＰＶＯＬ側のマスタ障害による切り替えと、ＳＶＯＬ側のマスタ障害による切り替えの２つのパターンが考えられる。ＰＶＯＬ側のマスタ障害の場合には、ＳＶＯＬ側のマスタでＲＤＪＮＬコマンドを発行済みのデータをＳＶＯＬ側のマスタでリストアさせる必要がある。そのため、スレーブ状態からマスタ過渡状態に設定して、ＳＶＯＬ側のマスタでＲＤＪＮＬコマンド発行済みのデータがリストアされるのを待つ。また、ＳＶＯＬ側のマスタ障害の場合には、過渡状態を経ずにマスタに切り替える。
【０３２７】
ステップＳ１３３４において、第１ストレージ装置１００の障害による切り替え指示であると判定された場合には、第４ストレージ装置２５０は、ジャーナル属性をスレーブからマスタ過渡状態に切り替える（Ｓ１３３５）。一方、ステップＳ１３３４において、第１ストレージ装置１００の障害による切り替え指示ではないと判定された場合には、第４ストレージ装置２５０は、ジャーナル属性をスレーブからマスタに切り替える（Ｓ１３３６）。
【０３２８】
そして、第４ストレージ装置２５０は、リストア開始シーケンシャル番号からＲＤＪＮＬコマンドの発行を開始して（Ｓ１３３７）処理を終了する。
【０３２９】
（ＰＶＯＬ側マスタ障害によるジャーナル属性切り替えその３）
次に、図６０を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がスレーブの第４ストレージ装置２５０における、ジャーナル属性のマスタ過渡状態からマスタへの切り替え処理について説明する。
【０３３０】
図６０に示すように、第４ストレージ装置２５０は、ジャーナル属性がマスタ過渡状態かを判定し（Ｓ１３４１）、マスタ過渡状態ではない場合は、第４ストレージ装置２５０は、処理を終了する。
【０３３１】
ステップＳ１３４１において、ジャーナル属性がマスタ過渡状態であると判定された場合には、第４ストレージ装置２５０は、リストア可能シーケンシャル番号を取得し（Ｓ１３４２）、リストア済みシーケンシャル番号を取得する（Ｓ１３４３）。
【０３３２】
ＳＶＯＬ側のスレーブは、ジャーナル属性をスレーブからマスタに切り替える際に、一旦、マスタ過渡状態に設定されて、マスタ側からリストア済みのシーケンシャル番号を取得する。そして、先に通知されたリストア可能シーケンシャル番号と比較することにより、マスタ側におけるリストア処理の残データを把握して、リストア状況を監視することができる。
【０３３３】
そして、第４ストレージ装置２５０は、ステップＳ１３４２とステップＳ１３４３で取得したシーケンシャル番号が一致するかを判定する（Ｓ１３４４）。ステップＳ１３４４において、シーケンシャル番号が一致すると判定された場合には、第４ストレージ装置２５０は、ジャーナル属性をマスタ過渡状態からマスタに切り替えて（Ｓ１３４５）、リストア処理を開始する（Ｓ１３４６）。
【０３３４】
ＳＶＯ側のスレーブである第４ストレージ装置２５０は、ステップＳ１３４４において、リストア可能シーケンシャル番号とリストア済みシーケンシャル番号が一致していることにより、ＳＶＯＬ側のマスタでの残データのリストア処理が完了したと判断して、ジャーナル属性をマスタ過渡状態からマスタ状態に確定させてリストア処理を開始する。
【０３３５】
一方、ステップＳ１３４４において、シーケンシャル番号が一致しないと判定された場合には、第４ストレージ装置２５０は処理を終了する。
【０３３６】
（ＰＶＯＬ側マスタ障害によるジャーナル属性切り替えその４）
次に、図６１を参照して、上記ステップＳ１３２１において実行される、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がマスタの第３ストレージ装置２００における、ジャーナル属性のマスタからスレーブへの切り替え処理について説明する。
【０３３７】
図６１に示すように、第３ストレージ装置２００は、ジャーナル属性の切り替え通知を受領する（Ｓ１３５１）。
【０３３８】
第３ストレージ装置２００は、リストア可能シーケンシャル番号を取得して（Ｓ１３５２）、当該シーケンシャル番号をリストア停止シーケンシャル番号に設定する（Ｓ１３５３）。
【０３３９】
そして、第３ストレージ装置２００は、ジャーナル属性をマスタからスレーブに切り替えて（Ｓ１３５４）、ＲＤＪＮＬコマンドの発行を停止する（Ｓ１３５５）。
【０３４０】
続いて、第３ストレージ装置２００は、リストア可能シーケンシャル番号を応答し（Ｓ１３５６）、ジャーナル属性の切り替え成功を応答する（Ｓ１３５７）。
【０３４１】
ＳＶＯＬ側でジャーナル属性をマスタからスレーブに切り替える場合には、ＲＤＪＮＬコマンドを停止する。ただし、すでにＲＤＪＮＬコマンドを発行済みに対するデータは、リストア処理未実施のデータとして存在する。リストア可能シーケンシャル番号はこのデータに付された番号である。このため、リストア処理未実施のデータをリストア後にマスタからスレーブに切り替えられる。このように、ＲＤＪＮＬコマンドの発行を停止し、残データをリストアしている状態がスレーブ過渡状態である。
【０３４２】
また、上記したように、ＳＶＯＬ側のスレーブは、マスタからリストア可能シーケンシャル番号を通知されて、ＳＶＯＬマスタ側でリストア可能シーケンシャル番号までのリストアが完了するのを監視する。そして、ＳＶＯＬ側のスレーブは、リストア可能シーケンシャル番号までのリストアが完了すると、先に通知されたリストア可能シーケンシャル番号に１を加算してリストア処理を開始する。
【０３４３】
（ＰＶＯＬ側マスタ障害によるジャーナル属性切り替えその５）
次に、図６２を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のジャーナル属性がマスタの第３ストレージ装置２００における、ジャーナル属性のスレーブ過渡状態からスレーブへの切り替え処理について説明する。
【０３４４】
第３ストレージ装置２００は、ジャーナル属性がスレーブ過渡状態かを判定する（Ｓ１３６１）。ステップＳ１３６１において、ジャーナル属性がスレーブ過渡状態ではない、すなわち、正常状態であると判定された場合には、第３ストレージ装置２００は、リストア処理を実施し（Ｓ１３６９）、リストア済みシーケンシャル番号を更新して（Ｓ１３７０）、処理を終了する。
【０３４５】
一方、ステップＳ１３６１において、ジャーナル属性がスレーブ過渡状態であると判定された場合には、第３ストレージ装置２００は、リストア済みシーケンシャル番号を取得し（Ｓ１３６２）、リストア停止シーケンシャル番号を取得する（Ｓ１３６３）。
【０３４６】
そして、第３ストレージ装置２００は、ステップＳ１３６２で取得したシーケンシャル番号とステップＳ１３６３で取得したシーケンシャル番号とが一致するかを判定する（Ｓ１３６４）。
【０３４７】
上記したように、ジャーナル属性がスレーブ過渡状態の場合には、残データをシーケンシャル番号の順番でリストアして、リストア停止シーケンシャル番号までリストアが完了した時点でリストア処理を停止して、ジャーナル属性をスレーブ過渡状態からスレーブに確定する。また、切り替え前にスレーブ側だった元のスレーブ側は元のマスタ側での残データのリストアが完了し、かつ、リストアが停止した時点で、取得したシーケンシャル番号に１を加算してリストア処理を再開する。
【０３４８】
ステップＳ１３６４において、シーケンシャル番号が一致すると判定された場合には、第３ストレージ装置２００は、ジャーナル属性をスレーブ過渡状態からスレーブに切り替えて（Ｓ１３６５）、リストア処理を停止して（Ｓ１３６６）、処理を終了する。
【０３４９】
一方、ステップＳ１３６４において、シーケンシャル番号が一致しないと判定された場合には、第３ストレージ装置２００は、残データのリストア処理を実施して（Ｓ１３６７）、リストア済みのシーケンシャル番号を更新して（Ｓ１３６８）、処理を終了する。
【０３５０】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその１）
次に、図６３を参照して、ＳＶＯＬ側（ＲＣ構成のセカンダリ側）のマスタの障害によるジャーナル属性の切り替え処理について説明する。
【０３５１】
以下では、ＰＶＯＬ側（ＲＣ構成のプライマリ側）のジャーナル属性がマスタの装置を第１ストレージ装置１００、ジャーナル属性がスレーブの装置を第２ストレージ装置１５０とし、第１ストレージ装置１００でジャーナル属性をマスタからスレーブに切り替える場合について説明する。
【０３５２】
まず、第１ストレージ装置１００は、ジャーナル属性がマスタかを判定する（Ｓ１３７１）。ステップＳ１３７１において、ジャーナル属性がマスタではない場合には、第１ストレージ装置１００は、処理を終了する。
【０３５３】
一方、ステップＳ１３７１において、ジャーナル属性がマスタであると判定された場合には、第１ストレージ装置１００は、ＲＤＪＮＬコマンド受領時間からの経過時間を算出し（Ｓ１３７２）、経過時間が閾値を超過しているかを判定する（Ｓ１３７３）。
【０３５４】
ステップＳ１３７３において、経過時間が閾値を超過していないと判定された場合には、第１ストレージ装置１００は処理を終了する。
【０３５５】
一方、ステップＳ１３７３において、経過時間が閾値を超過していると判定された場合には、第１ストレージ装置１００は、ＰＶＯＬ側のスレーブである第２ストレージ装置１５０にジャーナル属性の切り替えを指示する（Ｓ１３７４）。
【０３５６】
そして、第１ストレージ装置１３７４は、スレーブ側のジャーナル属性の切り替えが成功したかを判定する（Ｓ１３７５）。ステップＳ１３７５において、スレーブ側のジャーナル属性の切り替えが成功したと判定された場合には、第１ストレージ装置１００は、自身のジャーナル属性をマスタからスレーブに切り替える（Ｓ１３７６）。一方、ステップＳ１３７５において、スレーブ側のジャーナル属性の切り替えが失敗したと判定された場合には、第１ストレージ装置１００は、処理を終了する。
【０３５７】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその２）
次に、図６４を参照して、上記ステップＳ１３７４において実行されるＰＶＯＬ側のスレーブである第２ストレージ装置１５０にジャーナル属性の切り替えを指示する処理について説明する。
【０３５８】
図６４に示すように、第２ストレージ装置１５０は、ジャーナル属性の切り替え通知を受領する（Ｓ１３８１）。第２ストレージ装置１５０は、ジャーナル属性をスレーブからマスタに切り替える（Ｓ１３８２）。
【０３５９】
そして、ＳＶＯＬ側のスレーブにジャーナル属性の切り替えを通知する（Ｓ１３８３）。
【０３６０】
そして、ステップＳ１３８３においてＳＶＯＬ側のスレーブのジャーナル属性の切り替えが成功したかを判定し（Ｓ１３８４）、切り替えが成功した場合には、終了応答して（Ｓ１３８６）、処理を終了する。
【０３６１】
一方、ステップＳ１３８３において、ＳＶＯＬ側のスレーブのジャーナル属性の切り替えに失敗したと判定された場合には、ジャーナルグループのＲＣペアをサスペンドし（Ｓ１３８５）、終了応答して（Ｓ１３８６）処理を終了する。
【０３６２】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその３）
上記ステップＳ１３８３における、ＳＶＯＬ側（ＲＣセカンダリ側）のジャーナル属性がスレーブの第４ストレージ装置２５０のジャーナル属性切り替え処理は、図５９の処理と同様のため、詳細な説明は省略する。
【０３６３】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその４）
また、第４ストレージ装置２５０における、ジャーナル属性のマスタ過渡状態からマスタへの切り替え処理も図６０の処理と同様のため、詳細な説明は省略する。
【０３６４】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその５）
また、第４ストレージ装置２５０のジャーナル属性切り替え処理で実行される、第３ストレージ装置２００における、ジャーナル属性のマスタからスレーブへの切り替え処理は、図６１の処理と同様のため、詳細な説明は省略する。
【０３６５】
（ＳＶＯＬ側マスタ障害によるジャーナル属性切り替えその６）
また、第３ストレージ装置２００における、ジャーナル属性のスレーブ過渡状態からスレーブへの切り替え処理は、図６２の処理と同様のため、詳細な説明は省略する。
【０３６６】
（１−１０）本実施の形態の効果
以上のように、本実施の形態によれば、第１ストレージ装置１００で取得したジャーナルのシーケンシャル番号を第２ストレージ装置１５０に転送して、データと当該シーケンシャル番号が第２ストレージ装置１５０の第２ジャーナルボリューム１５２に格納して、第１仮想ストレージ装置１０におけるジャーナルのシーケンシャル番号の順序性を保証する。また、第３ストレージ装置２００は、第１ストレージ装置１００にリードジャーナルコマンドを発行し、第１ジャーナルボリューム１０２に格納されたジャーナルを受け取ることで、第１ストレージ装置１００へのライト要求とは非同期にリモートコピーを実施する。また、第４ストレージ装置２５０にも、第３ストレージ装置２００からデータとシーケンシャル番号が転送され、第４ストレージ装置２５０は、受信したデータを第４物理ボリューム２５１Ａまたは２５１Ｂに格納する。これにより、近距離に位置するストレージ装置のリソースを有効活用しつつ、非同期リモートコピーにより遠距離に位置するストレージ装置にデータをバックアップしてシステムの可用性を高めることが可能となる。
【０３６７】
（２）第２の実施の形態
（２−１）本実施の形態の概要
第１の実施形態では、通常時は第２仮想ストレージ装置２０に含まれる第３ストレージ装置２００または第４ストレージ装置２５０のいずれかの装置から、第１仮想ストレージ装置１０に含まれる第１ストレージ装置１００または第２ストレージ装置１５０のいずれかの装置にＲＤＪＮＬコマンドを発行して、非同期のリモートコピーが実施される構成となっている。この場合、ジャーナルのシーケンシャル番号を取得する装置を第１ストレージ装置１００と第２ストレージ装置１５０のいずれかに固定して、シーケンシャル番号の順序性を保証していた。
【０３６８】
本実施の形態では、第３ストレージ装置２００または第４ストレージ装置２５０のいずれの装置も、それぞれ、第１ストレージ装置または第２ストレージ装置１５０のいずれかの装置にＲＤＪＮＬコマンドを発行して、非同期のリモートコピーを実施する構成としている。この場合、第１ストレージ装置１００及び第２ストレージ装置２００の両装置でシーケンシャル番号を取得するため、第１ストレージ装置１００と第２ストレージ装置２００との間でシーケンシャル番号は同期していない。しかし、第３ストレージ装置２００及び第４ストレージ装置２５０において、どこまでデータをリストアしてもよいかを示すリストア許可マーカを利用してリストア処理を実施することにより、ＲＣ構成のプライマリ側である第１仮想ストレージ装置１０とセカンダリ側である第２仮想ストレージ装置２０との間でデータを同期させている。
【０３６９】
（２−２）計算機システムの構成
本実施の形態にかかる計算機システムは、第１の実施の形態にかかる計算機システムの構成と同様のため、以下異なる構成についてのみ詳細に説明する。
【０３７０】
本実施の形態では、ホスト計算機３０の制御アプリ３１から定期的にフリーズ（Freeze）とマーカが発行され、フリーズ（Freeze）とマーカによりデータの書き込み処理やリストア処理が制御される点で第１の実施の形態と異なる構成となっている。制御アプリ３１から発行されるフリーズ（Freeze）は、ライトコマンドを待機させるコマンドである。フリーズ（Freeze）が発行されると、第１ストレージ装置１００及び第２ストレージ装置１５０は、データの書き込み処理を実施せずに待機状態（フリーズ（Freeze）状態）となる。
【０３７１】
フリーズ（Freeze）が発行された後に発行されるマーカは、データのどの時点でフリーズ（Freeze）したかを示す情報である。第１ストレージ装置１００及び第２ストレージ装置１５０はそれぞれ独自にシーケンシャル番号を取得するが、共通のマーカを付したジャーナルを作成する。第３ストレージ装置２００または第４ストレージ装置２５０は、このマーカ付きのジャーナルを用いてリストアを実施する。第３ストレージ装置２００または第４ストレージ装置２５０は、マーカが示す範囲のデータをリストアすることにより、両装置でリストアするデータを同期させることができる。
【０３７２】
（２−３）ストレージ装置の構成
第１ストレージ装置１００、第２ストレージ装置１５０、第３ストレージ装置２００及び第４ストレージ装置２５０の構成は第１の実施の形態と同様のため、詳細な説明は省略する。
【０３７３】
（２−４）マーカを利用したＨＡ構成とＲＣ構成との連携
次に、図６５〜図６９を参照して、上記したマーカを利用してＨＡ構成を形成する第１ストレージ装置１００及び第２ストレージ装置２００を含む第１仮想ストレージ装置１０と、第１仮想ストレージ装置１０とＲＣ構成を形成する第３ストレージ装置２００及び第４ストレージ装置２５０を含む第２仮想ストレージ装置２０との連携について説明する。
【０３７４】
（書込み処理）
まず、図６５を参照して、データの書き込み処理について説明する。図６５に示すように、ホスト計算機３０から第１ストレージ装置１００に書き込み要求がされると（Ｓ８０１）、第１ストレージ装置１００はデータを第１物理ボリューム１０１Ａに書き込む（Ｓ８０２）。そして、第１ストレージ装置１００は、データのシーケンシャル番号を取得して（Ｓ８０３）、第１ジャーナルボリューム１０２Ａにジャーナルを作成する（Ｓ８０４）。そして、第１ストレージ装置１００は、データを第２ストレージ装置２００に転送して、データの二重化処理を実施する（Ｓ８０５）。
【０３７５】
第２ストレージ装置１５０は、第２物理ボリューム１５１Ａにデータを書き込み（Ｓ８０６）、データのシーケンシャル番号を取得して（Ｓ８０７）、第２ジャーナルボリューム１５２Ａにジャーナルを作成する（Ｓ８０８）。そして、第２ストレージ装置１５０は、第１ストレージ装置１００に終了応答し（Ｓ８０９）、第１ストレージ装置１００はホスト計算機３０に終了応答する（Ｓ８１０）。このように、ＵＡ構成のプライマリ側である第１ストレージ装置１００及び第２ストレージ装置では、シーケンシャル番号をそれぞれ独自に取得している。
【０３７６】
次に、ＲＣ構成のセカンダリ側のリストア処理について説明する。第３ストレージ装置２００は、非同期にＲＤＪＮＬコマンドを発行して、第１ストレージ装置１００の第１ジャーナルボリューム１０２に格納されているジャーナルを取得する（Ｓ８１１）。第３ストレージ装置２００は、第３ジャーナルボリューム２０２にジャーナルデータを格納する（Ｓ８１２）。
【０３７７】
また、第４ストレージ装置２５０も、非同期にＲＤＪＮＬコマンドを発行して、第２ストレージ装置１５０の第２ジャーナルボリューム１５２に格納されているジャーナルを取得する（Ｓ８２１）。第４ストレージ装置２５０は、第４ジャーナルボリューム２５２にジャーナルデータを格納する（Ｓ８２２）。
【０３７８】
（フリーズ及びマーカ発行）
次に、図６６を参照して、フリーズ（Freeze）及びマーカ発行によるフリーズ（Freeze）設定処理及びマーカ付ジャーナル作成処理について説明する。
【０３７９】
図６６に示すように、ホスト計算機３０の制御アプリ３１からフリーズ（Freeze）が発行されると（Ｓ８３１）、第１ストレージ装置１００は、第１物理ボリューム１０１Ａ及び１０１Ｂに対してライトコマンドを待機させるフリーズ（Freeze）を設定する（Ｓ８３２）。そして、第２ストレージ装置１５０にフリーズ（Freeze）が発行されたことを伝播する（Ｓ８３３）。第２ストレージ装置１５０も、第１物理ボリューム１０１Ａ及び１０１Ｂに対してライトコマンドを待機させるフリーズ（Freeze）を設定する（Ｓ８３４）。
【０３８０】
ホスト計算機３０の制御アプリ３１からフリーズ（Freeze）が発行された後、マーカが発行されると（Ｓ８３５）、第１ストレージ装置１００は、シーケンシャル番号を取得して（Ｓ８３６）、マーカ付ジャーナルを作成する（Ｓ８３７）。その後、第１ストレージ装置１００は、第１物理ボリューム１０１Ａ及び１０１Ｂに対してフリーズ（Freeze）状態を解除して（Ｓ８３８）、第２ストレージ装置１５０にマーカを伝播する（Ｓ８３９）。
【０３８１】
第２ストレージ装置１５０は、シーケンシャル番号を取得し（Ｓ８４０）、マーカ付ジャーナルを作成する（Ｓ８４１）。その後、第１ストレージ装置１００は、第１物理ボリューム１０１Ａ及び１０１Ｂに対してフリーズ（Freeze）状態を解除する（Ｓ８４２）。
【０３８２】
また、第３ストレージ装置２００は、ＲＤＪＮＬコマンドにより、マーカ付きのジャーナルを第１ストレージ装置１００から取得して（Ｓ８４３）、マーカ付きジャーナルを第３ジャーナルボリューム２０２に格納する（Ｓ８４４）。また、第４ストレージ装置２５０も、ＲＤＪＮＬコマンドにより、マーカ付きのジャーナルを第２ストレージ装置１５０から取得して（Ｓ８４５）、マーカ付きジャーナルを第３ジャーナルボリューム２０２に格納する（Ｓ８４６）。
【０３８３】
（リストア処理）
次に、図６７及び６８を参照して、マーカを利用したリストア処理について説明する。図６７に示すように、ホスト計算機３０の制御アプリ３１からリストア可能マーカ番号取得指示が発行されると（Ｓ８５１）、第１ストレージ装置１００は、第１ジャーナルボリューム１０２からリストア可能マーカ番号を取得する（Ｓ８５２）。そして、第１ストレージ装置１００は、リストア可能マーカ番号をホスト計算機３０に報告する（Ｓ８５３）。また、ホスト計算機３０の制御アプリ３１は、第２ストレージ装置１５０にも同様にリストア可能マーカ番号取得指示を発行し、第２ストレージ装置１５０でもリストア可能マーカ番号が取得される。
【０３８４】
ホスト計算機３０は、第１ストレージ装置１００及び第２ストレージ装置１５０のリストア可能マーカ番号が揃ったところで、リストア可能マーカ番号をリストア指示マーカ番号として第１ストレージ装置１００及び第２ストレージ装置１５０に通知する（Ｓ８５４）。
【０３８５】
第２ストレージ装置１５０は、ホスト計算機３０からリストア指示マーカ番号が通知されると、第２ジャーナルボリューム１５２からシーケンシャル番号を取得して（Ｓ８５５）、リストア指示マーカ番号を含むリストア指示用のジャーナルを作成する（Ｓ８５６）。第１ストレージ装置１００も同様に、リストア指示マーカ番号を用いてリストア指示マーカ番号を含むリストア指示用のジャーナルを作成する。
【０３８６】
そして、第３ストレージ装置２００は、ＲＤＪＮＬコマンドにより、リストア指示用ジャーナルを第１ストレージ装置１００から取得して（Ｓ８５７）、リストア指示マーカ番号を含むリストア指示用ジャーナルを第３ジャーナルボリューム２０２に格納する（Ｓ８５８）。また、第４ストレージ装置２５０も、ＲＤＪＮＬコマンドにより、リストア指示用ジャーナルを第１ストレージ装置１００から取得して（Ｓ８５７）、リストア指示マーカ番号を含むリストア指示用ジャーナルを第３ジャーナルボリューム２０２に格納する（Ｓ８６０）。
【０３８７】
そして、図６８に示すように、第３ストレージ装置２００は、第３ジャーナルボリューム２０２にリストア指示用ジャーナルを検出すると（Ｓ８６１）、リストア指示用ジャーナルに含まれるリストア指示マーカ番号までのジャーナルを第３物理ボリューム２０１Ａ及び２０１Ｂにリストアする（Ｓ８６２）。第４ストレージ装置２５０も同様に、第４ジャーナルボリューム２５２にリストア指示用ジャーナルを検出すると（Ｓ８６３）、リストア指示用ジャーナルに含まれるリストア指示マーカ番号までのジャーナルを第４物理ボリューム２５１Ａ及び２５１Ｂにリストアする（Ｓ８６４）。
【０３８８】
第３ストレージ装置２００と第４ストレージ装置２５０との間では、ジャーナルデータのシーケンシャル番号は同期されていないが、上記したように、リストア指示マーカ番号までのジャーナルをリストアすることにより、リストアするデータを同期させることができる。
【０３８９】
（パージ処理）
次に、図６９を参照して、パージ処理について説明する。第３ストレージ装置２００または第４ストレージ装置２５０から発行されるＲＤＪＮＬコマンドにリストア済みのマーカ番号が含まれている。第１ストレージ装置１００は、第３ストレージ装置２００からリストア済みマーカ番号を通知されると（Ｓ８７１）、第１ジャーナルボリューム１０２からリストア済みマーカ番号までのデータをパージする（Ｓ８７２）。また、第２ストレージ装置１５０も同様に、第４ストレージ装置２５０からリストア済みマーカ番号を通知されると（Ｓ８７３）、第２ジャーナルボリューム１５２からリストア済みマーカ番号までのデータをパージする（Ｓ８７４）。
【０３９０】
上記したように、第３ストレージ装置２００及び第４ストレージ装置２５０において、リストア指示マーカ番号までのジャーナルは、リストア指示マーカ番号順にリストアが実施されている限り、各装置の物理ボリュームにリストアされていることが保証されている。したがって、第３ストレージ装置２００または第４ストレージ装置２５０から通知されたリストア済みマーカ番号まではリストア済みである、パージが可能であると判断することができる。
【０３９１】
（２−５）本実施の形態の効果
以上のように、本実施の形態によれば、第３ストレージ装置２００及び第４ストレージ装置２５０において、どこまでデータをリストアしてもよいかを示すリストア許可マーカを利用してリストアを実施することにより、ＲＣ構成のプライマリ側である第１仮想ストレージ装置１０とセカンダリ側である第２仮想ストレージ装置２０との間でデータを同期させることができる。これにより、近距離に位置するストレージ装置のリソースを有効活用しつつ、リモートコピーにより遠距離に位置するストレージ装置にデータをバックアップしてシステムの可用性を高めることが可能となる。
【符号の説明】
【０３９２】
１０      第１仮想ストレージ装置
２０      第２仮想ストレージ装置
３０      ホスト計算機
１００    第１ストレージ装置
１０１    第１物理ボリューム
１０２    第１ジャーナルボリューム
１１０    コントローラ
１１２    メモリ
１１８    キャッシュメモリ
１２０    ハードディスクドライブ
１５０    第２ストレージ装置
１５１    第２物理ボリューム
１５２    第２ジャーナルボリューム
２００    第３ストレージ装置
２０１    第３物理ボリューム
２０２    第３ジャーナルボリューム
２５０    第４ストレージ装置
２５１    第４物理ボリューム
２５２    第４ジャーナルボリューム
【図１】
0005990641.tif 000002
【図２】
0005990641.tif 000003
【図３】
0005990641.tif 000004
【図４】
0005990641.tif 000005
【図５】
0005990641.tif 000006
【図６】
0005990641.tif 000007
【図７】
0005990641.tif 000008
【図８】
0005990641.tif 000009
【図９】
0005990641.tif 000010
【図１０】
0005990641.tif 000011
【図１１】
0005990641.tif 000012
【図１２】
0005990641.tif 000013
【図１３】
0005990641.tif 000014
【図１４】
0005990641.tif 000015
【図１５】
0005990641.tif 000016
【図１６】
0005990641.tif 000017
【図１７】
0005990641.tif 000018
【図１８】
0005990641.tif 000019
【図１９】
0005990641.tif 000020
【図２０】
0005990641.tif 000021
【図２１】
0005990641.tif 000022
【図２２】
0005990641.tif 000023
【図２３】
0005990641.tif 000024
【図２４】
0005990641.tif 000025
【図２５】
0005990641.tif 000026
【図２６】
0005990641.tif 000027
【図２７】
0005990641.tif 000028
【図２８】
0005990641.tif 000029
【図２９】
0005990641.tif 000030
【図３０】
0005990641.tif 000031
【図３１】
0005990641.tif 000032
【図３２】
0005990641.tif 000033
【図３３】
0005990641.tif 000034
【図３４】
0005990641.tif 000035
【図３５】
0005990641.tif 000036
【図３６】
0005990641.tif 000037
【図３７】
0005990641.tif 000038
【図３８】
0005990641.tif 000039
【図３９】
0005990641.tif 000040
【図４０】
0005990641.tif 000041
【図４１】
0005990641.tif 000042
【図４２】
0005990641.tif 000043
【図４３】
0005990641.tif 000044
【図４４】
0005990641.tif 000045
【図４５】
0005990641.tif 000046
【図４６】
0005990641.tif 000047
【図４７】
0005990641.tif 000048
【図４８】
0005990641.tif 000049
【図４９Ａ】
0005990641.tif 000050
【図４９Ｂ】
0005990641.tif 000051
【図５０】
0005990641.tif 000052
【図５１Ａ】
0005990641.tif 000053
【図５１Ｂ】
0005990641.tif 000054
【図５２】
0005990641.tif 000055
【図５３】
0005990641.tif 000056
【図５４】
0005990641.tif 000057
【図５５】
0005990641.tif 000058
【図５６】
0005990641.tif 000059
【図５７】
0005990641.tif 000060
【図５８】
0005990641.tif 000061
【図５９】
0005990641.tif 000062
【図６０】
0005990641.tif 000063
【図６１】
0005990641.tif 000064
【図６２】
0005990641.tif 000065
【図６３】
0005990641.tif 000066
【図６４】
0005990641.tif 000067
【図６５】
0005990641.tif 000068
【図６６】
0005990641.tif 000069
【図６７】
0005990641.tif 000070
【図６８】
0005990641.tif 000071
【図６９】
0005990641.tif 000072