(57)【要約】【課題】消費記憶容量の増加を低減し処理負荷が低いレプリケーションペア複製を実現する。【解決手段】第１のストレージ装置が、第１のプライマリボリュームへデータのライトまたは更新を行った場合に、第１のレプリケーションペアに基づき、データを第２のストレージ装置に送信する。第１のストレージ装置が、第１のプライマリボリュームのスナップショットである第２のプライマリボリュームを作成または更新した場合に、第２のストレージ装置が、第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する。【選択図】図２Ｃ
2020052464.tif 000002
【特許請求の範囲】
【請求項１】
データが入出力される第１のプライマリボリュームを提供する第１のストレージ装置と、
前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置と、
を備え、
前記第１のストレージ装置が、前記第１のプライマリボリュームへデータのライトまたは更新を行った場合に、前記第１のレプリケーションペアに基づき、前記データを前記第２のストレージ装置に送信し、
前記第１のストレージ装置が、前記第１のプライマリボリュームのスナップショットである第２のプライマリボリュームを作成または更新した場合に、前記第２のストレージ装置が、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する
ストレージシステム。
【請求項２】
前記第２のプライマリボリュームと前記第２のセカンダリボリュームとのペアが、前記第１のレプリケーションペアの複製としての第２のレプリケーションペアであり、
前記第２のレプリケーションペアでは、前記第１のレプリケーションペアに基づき送受信されたデータのうち、前記第２のレプリケーションペアにて用いるデータを特定するための情報が送受信される
請求項１に記載のストレージシステム。
【請求項３】
前記第１のレプリケーションペアは、非同期リモートレプリケーションのためのペアであり、
前記第１のストレージ装置は、前記第１のプライマリボリュームに書き込まれたデータの番号である第１のジャーナル番号を含んだ情報である第１のプライマリ論理情報を有し、
前記第２のストレージ装置は、前記第１のプライマリボリュームについて前記第１のストレージ装置から受信したデータの番号と前記第１のセカンダリボリュームに反映されたデータの番号とのうちの少なくとも１つである第２のジャーナル番号を含んだ第１のセカンダリ論理情報を有し、
前記第２のストレージ装置が、第２のプライマリ論理情報と第２のセカンダリ論理情報との差分から特定される前記第２のプライマリボリュームの前記第２のセカンダリボリュームとの間の差分に相当するデータである差分データを、前記第２のセカンダリボリュームに反映し、
前記第２のプライマリ論理情報は、前記第２のプライマリボリュームが作成または更新されたときに、前記第１のプライマリ論理情報に基づいて更新され、
前記第２のセカンダリ論理情報は、前記第２のセカンダリボリュームが作成または更新されたときに、前記第１のセカンダリ論理情報に基づいて更新される
請求項１に記載のストレージシステム。
【請求項４】
前記第２のストレージ装置が、
前記第１のプライマリボリュームについて前記第１のストレージ装置から受信したデータを前記第１のセカンダリボリュームに反映することであるジャーナル反映を行う前に、前記第２のセカンダリボリュームを作成し、
前記第１のセカンダリボリュームへのジャーナル反映後に、前記第２のプライマリ論理情報と前記第２のセカンダリ論理情報との間の差分から特定される差分データを前記第２のセカンダリボリュームに反映する
請求項３に記載のストレージシステム。
【請求項５】
前記差分データの前記第２のセカンダリボリュームへの反映において、前記第２のストレージ装置が、前記第２のセカンダリ論理情報と前記第１のセカンダリ論理情報とを比較し、前記第２のセカンダリ論理情報と前記第１のセカンダリ論理情報とに差分がある場合には、当該差分から特定される前記第２のストレージ装置が有するデータを前記第２のセカンダリボリュームへ反映する
請求項３に記載のストレージシステム。
【請求項６】
前記第１のストレージ装置が、前記第２のプライマリボリュームを格納先としたデータのうちいずれの他のボリュームからも参照されないデータの属性を専有として管理し、
前記第２のストレージ装置が、前記第２のセカンダリボリュームを格納先としたデータのうちいずれの他のボリュームからも参照されないデータの属性を専有として管理し、
前記第２のレプリケーションペアが削除対象の場合、
前記第１のストレージ装置が、前記第２のプライマリボリュームを格納先としたデータのうち前記第２のプライマリボリュームについて属性が専有のデータを削除し、
前記第２のストレージ装置が、前記第２のセカンダリボリュームを格納先としたデータのうち前記第２のセカンダリボリュームについて属性が専有のデータを削除する
請求項２に記載のストレージシステム。
【請求項７】
前記第１のストレージ装置は、前記第１のプライマリボリュームに書き込まれたデータについてのハッシュ値を各論理アドレスについて含んだ情報である第１のプライマリ論物情報を有し、
前記第２のストレージ装置は、前記第１のセカンダリボリュームに書き込まれたデータについてのハッシュ値を各論理アドレスについて含んだ情報である第１のセカンダリ論物情報を有し、
前記第２のストレージ装置が、第２のプライマリ論物情報と第２のセカンダリ論物情報との差分から特定され前記第２のストレージ装置に既に存在するデータを、前記第２のセカンダリボリュームに反映し、
前記第２のプライマリ論物情報は、前記第２のプライマリボリュームが作成または更新されたときに、前記第１のプライマリ論物情報に基づいて更新され、
前記第２のセカンダリ論物情報は、前記第２のセカンダリボリュームが作成されたときに、前記第１のセカンダリ論物情報に基づいて更新される
請求項１に記載のストレージシステム。
【請求項８】
前記第２のセカンダリボリュームの複数の論理アドレスのうち、前記第２のプライマリボリュームとの間でそれぞれハッシュ値が異なる１以上の論理アドレスの各々について、前記第２のストレージ装置が、当該論理アドレスの参照先を、前記第２のプライマリボリュームについてのハッシュ値と同一のハッシュ値のデータが存在する領域とすることで、当該データを前記第２のセカンダリボリュームに反映する
請求項７に記載のストレージシステム。
【請求項９】
データが入出力される第１のプライマリボリュームを提供する第１のストレージ装置において、
前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置と接続されるインターフェース部と、
前記第１のプライマリボリュームへデータのライトまたは更新を行った場合に、前記第１のレプリケーションペアに基づき、前記データを前記第２のストレージ装置に送信するプロセッサ部と、
を備え、
前記第１のプライマリボリュームのスナップショットでありデータが入出力される第２のプライマリボリュームを作成または更新した場合に、前記第２のストレージ装置が前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新するために、前記プロセッサ部が、前記第２のプライマリボリュームを作成または更新を前記第２のストレージ装置に通知し、
前記通知には、前記第１のプライマリボリュームへライトまたは更新しかつ前記第２のストレージ装置に送信したデータのうち、前記第２のプライマリボリュームへ反映したデータを特定するための情報が含まれている
ストレージ装置。
【請求項１０】
データが入出力される第１のプライマリボリュームを提供する第１のストレージ装置と接続され、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置において、
前記第１のストレージ装置と接続されるインターフェース部と、
前記第１のレプリケーションペアに基づき、前記第１のプライマリボリュームへライトまたは更新を行ったデータを前記第１のストレージ装置から受信して、前記第１のセカンダリボリュームへ反映するプロセッサ部と、
を備え、
前記プロセッサ部が、
前記第１のプライマリボリュームのスナップショットである第２のプライマリボリュームの作成または更新にかかるデータを特定する情報を前記第１のストレージ装置から受信し、
前記情報に基づいて、前記第１のレプリケーションペアにより受信したデータのうち、第２のプライマリボリュームに関連するデータを特定し、
前記特定したデータに基づいて、前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する
ストレージ装置。
【請求項１１】
データが入出力される第１のプライマリボリュームを提供する第１のストレージ装置と、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置とを備えたシステムの記憶制御方法であって、
前記第１のストレージが、前記第１のプライマリボリュームへデータのライトまたは更新を行った場合に、前記第１のレプリケーションペアに基づき、前記データを前記第２のストレージ装置に送信し、
前記第１のストレージ装置が、前記第１のプライマリボリュームのスナップショットである第２のプライマリボリュームを作成または更新した場合に、前記第２のストレージ装置が、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する
記憶制御方法。
【請求項１２】
データが入出力される第１のプライマリボリュームを提供し、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置と接続される第１のストレージ装置の記憶制御方法であって、
前記第１のプライマリボリュームへデータのライトまたは更新を行った場合に、前記第１のレプリケーションペアに基づき、前記データを前記第２のストレージ装置に送信し、
前記第１のプライマリボリュームのスナップショットでありデータが入出力される第２のプライマリボリュームを作成または更新した場合に、前記第２のストレージ装置が前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新するために、前記プロセッサ部が、前記第２のプライマリボリュームを作成または更新を前記第２のストレージ装置に通知し、
前記通知には、前記第１のプライマリボリュームへライトまたは更新しかつ前記第２のストレージ装置に送信したデータのうち、前記第２のプライマリボリュームへ反映したデータを特定するための情報が含まれている
記憶制御方法。
【請求項１３】
データが入出力される第１のプライマリボリュームを提供する第１のストレージ装置と接続され、前記第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームを提供する第２のストレージ装置の記憶制御方法であって、
前記第１のレプリケーションペアに基づき、前記第１のプライマリボリュームへライトまたは更新を行ったデータを前記第１のストレージ装置から受信して、前記第１のセカンダリボリュームへ反映し、
前記第１のプライマリボリュームのスナップショットである第２のプライマリボリュームの作成または更新にかかるデータを特定する情報を前記第１のストレージ装置から受信し、
前記情報に基づいて、前記第１のレプリケーションペアにより受信したデータのうち、第２のプライマリボリュームに関連するデータを特定し、
前記特定したデータに基づいて、前記第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ストレージシステムにより行われるデータ処理に関する。
【背景技術】
【０００２】
企業内で利用されるストレージシステムは、一般的に１以上の装置を冗長に構成し、システムの可用性や信頼性を向上させて運用される。このようなストレージシステムの関連技術として以下の技術が挙げられる。
【０００３】
特許文献１は、可用性を向上させることができる情報システムを開示する。特許文献１によれば、第１のストレージ装置の第１のボリュームと、第２のストレージの第２のボリュームとが、同一のボリュームとしてホストに提供される。ホストは、第１のボリュームと第２のボリュームは違う経路を経由して接続される同一のボリュームとして認識する。
【０００４】
特許文献２は、第１のストレージ装置の第一のボリュームと第２のストレージ装置の第２のボリュームとがそれぞれ同じ仮想ＩＤをホスト計算機に応答するＨｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ（ＨＡ）ペア構成を開示する。特許文献２によれば、第１ストレージ装置又は第２ストレージ装置が、仮想ＩＤを複製先として指定したデータ複製指示をホストから受信すると、複製先ボリュームが存在するストレージ装置に応じて、第１ボリューム又は第２ボリュームのいずれかを複製元ボリュームとして選択し、複製元ボリュームから複製先ボリュームにデータを複製する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第２００９／０２７１５８２号明細書
【特許文献２】国際公開第２０１５／１８９９２５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００６】
また、以下の説明では、ボリューム間でのデータの複製のことを特に「レプリケーション」と呼ぶ。
【０００７】
近年、企業では、自然災害などの緊急事態が生じた場合に事業の継続や復旧を図るため、ＩＴシステムの事業継続計画（ＢＣＰ  ：  Ｂｕｓｉｎｅｓｓ  Ｃｏｎｔｉｎｕｉｔｙ  Ｐｌａｎ）対応が求められる。重要なデータを格納しうるストレージシステムにおいてもＢＣＰへの対応が必要となる。このようなケースを想定し、ストレージシステムは、ストレージ装置間でレプリケーションペア（リモートレプリケーションのためのボリュームペア）を構成する機能を備える。
【０００８】
例えば、ストレージシステムは、ディザスターリカバリー（ＤＲ  ：  Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙ）機能を備える。具体的には、例えば、ストレージシステムが、第１のデータセンタに設置した第１のストレージ装置のプライマリボリュームを第２のデータセンタに設置した第２のストレージ装置のセカンダリボリュームとデータを同期する（プライマリボリュームとセカンダリボリュームはボリュームペアを構成している）。そして、一方のデータセンタが災害等で被災し使用不能となった場合は、被災していない他方のデータセンタにフェイルオーバーすることにより、事業継続に必要なＩＴシステムを稼動させ続けることが可能である。
【０００９】
また、ＢＣＰ対策の観点では、ＩＴシステムとしての対策だけではなく、構築した前述のようなＤＲ機能のテストやトレーニングを定期的に実施し、有事の際のフェイルオーバー手順の確認や動作テストを継続的に実施することが必要となる。
【００１０】
しかし、前述のフェイルオーバーテストを実施する際は、テスト中に運用中であるＩＴシステムに影響を与えたり、ＩＴシステムの安定性を脅かしたりするような事態を避ける必要が生じる。また、フェイルオーバーテストを実施する場合は、ストレージ装置だけではなく、ストレージ装置に接続される上位のホストや、ミドルウェア（例えば、データベース管理システム）を含めたテストが必要とされる。このため、テストを実施する際は、運用中のＩＴシステムと同一のデータを用いてテストを実施する必要が生じると考えられる。
【００１１】
そこで、運用中の本番環境としてのレプリケーションペアとは別に、データや構成を同一とする、テスト環境としてのレプリケーションペアを構築すること、言い換えれば、既存のレプリケーションペアを複製することが考えられる。しかし、その構築されたレプリケーションペアは、テストのために一時的に必要なペアである。このため、テスト実施のために消費される記憶容量や、レプリケーションペアの構築に係る処理負荷をなるべく省力化するということが課題となりうる。
【００１２】
そこで、本発明の目的は、消費記憶容量の増加を低減し処理負荷が低いレプリケーションペア複製を実現することにある。
【課題を解決するための手段】
【００１３】
第１のストレージ装置が、第１のプライマリボリュームへデータのライトまたは更新を行った場合に、第１のレプリケーションペアに基づき、データを第２のストレージ装置に送信する。第１のストレージ装置が、第１のプライマリボリュームのスナップショットである第２のプライマリボリュームを作成または更新した場合に、第２のストレージ装置が、第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリュームのスナップショットである第２のセカンダリボリュームを作成または更新する。
【発明の効果】
【００１４】
消費記憶容量の増加を低減し処理負荷が低いレプリケーションペア複製を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例に係るストレージシステムを含んだシステム全体の構成の一例を示す。
【図２Ａ】実施例に係る非同期リモートレプリケーションの一例を示す。
【図２Ｂ】一比較例に係る非同期ペア複製の一例を模式的に示す。
【図２Ｃ】実施例に係る非同期ペア複製の一例を模式的に示す。
【図３】実施例に係る仮想複製の一例を模式的に示す。
【図４】管理情報の構成の一例を示す。
【図５】ＨＤＥＶテーブルの構成の一例を示す。
【図６】プールテーブルの構成の一例を示す。
【図７】プールＶＯＬテーブルの構成の一例を示す。
【図８】ＨＤＥＶ論物テーブルの構成の一例を示す。
【図９】ＨＤＥＶ物論テーブルの構成の一例を示す。
【図１０】ペア管理テーブルの構成の一例を示す。
【図１１】ＪＮＬ管理テーブルの構成の一例を示す。
【図１２】レプリケーションペアの複製処理のフローの一例を示す。
【図１３】ＳＹＮＣペア複製処理のフローの一例を示す。
【図１４Ａ】ＡＳＹＮＣペア複製処理のフローの一例を示す。
【図１４Ｂ】ＡＳＹＮＣペア複製処理の一変形例のうち図１４Ａが示すＡＳＹＮＣペア複製処理との相違点を含む部分を示す。
【図１５】仮想複製処理のフローの一例を示す。
【発明を実施するための形態】
【００１６】
本発明の一実施例について、図面を参照して説明する。
【００１７】
なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１８】
また、以下の説明では、「ｘｘｘテーブル」や「ｘｘｘリスト」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、この種の情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」や「ｘｘｘリスト」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルや各リストの構成は一例であり、１つのテーブルやリストは、２個以上のテーブルやリストに分割されてもよいし、２個以上のテーブルやリストの全部又は一部が１つのテーブルやリストであってもよい。
【００１９】
さらに、各情報の識別情報として「番号」を用いるが、識別情報として、番号に代えて又は加えて、番号以外の情報（例えば、「名」、「名前」、「ＩＤ」）を用いることができる。図では、番号は、「＃」と表記する。
【００２０】
また、以下の説明では、「インターフェース部」は、１個以上のインターフェースでよい。当該１個以上のインターフェースは、１個以上の同種の通信インターフェースデバイス（例えば１個以上のＮＩＣ（Network Interface Card））であってもよいし２個以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００２１】
また、以下の説明では、「メモリ部」は、１個以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも１つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【００２２】
また、以下の説明では、「ＰＤＥＶ部」は、１個以上のＰＤＥＶであり、典型的には補助記憶デバイスでよい。「ＰＤＥＶ」は、物理的な記憶デバイス（Physical storage DEVice）を意味し、典型的には、不揮発性の記憶デバイス、例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。つまり、ＰＤＥＶ部は、記憶デバイス部の一例である。
【００２３】
また、以下の説明では、「記憶部」は、メモリ部及びＰＤＥＶ部のうちの少なくとも１つ（典型的には少なくともメモリ部）である。
【００２４】
また、以下の説明では、「プロセッサ部」は、１個以上のプロセッサである。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサでもよい。少なくとも１つのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも１つのプロセッサは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサでもよい。
【００２５】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及び／又はインターフェース部等を用いながら行うため、処理の主語が、プロセッサ部（或いは、そのプロセッサ部を有するコントローラのようなデバイス）とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な（例えば非一時的な）記録媒体であってもよい。また、以下の説明において、２個以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２個以上のプログラムとして実現されてもよい。
【００２６】
また、以下の説明では、「ホストシステム」は、１以上のホスト計算機である。少なくとも１つのホスト計算機は、物理的な計算機上で実行される仮想的な計算機でもよい。
【００２７】
また、以下の説明では、「管理システム」は、１以上の管理計算機である。少なくとも１つの管理計算機は、物理的な計算機上で実行される仮想的な計算機でもよい。また、管理システムは、入出力コンソールとしての管理計算機（例えばクライアントとしての管理計算機）を含んでもよい。
【００２８】
また、以下の説明では、「ストレージシステム」は、複数台のストレージ装置を含んだシステムである。「ストレージ装置」は、複数個のＰＤＥＶを有するいわゆるディスクアレイ装置のようなストレージ装置でよいが、それに代えて、汎用計算機（例えば、ストレージ機能を発揮するためのソフトウェアをインストールし実行することで実現されるＳＤＳ（Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｓｔｏｒａｇｅ）やＳＤＤＣ（Ｓｏｆｔｗａｒｅ−ｄｅｆｉｎｅｄ  Ｄａｔａｃｅｎｔｅｒ）のようなソフトウェアデファインドの装置）でもよい。また、少なくとも１つのストレージ装置は、ストレージ装置としての機能に加えて、ホストシステムの少なくとも一部として機能を有してもよい。
【００２９】
また、以下の説明では、「データセット」とは、アプリケーションプログラムのようなプログラムから見た１つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。
【００３０】
また、以下の説明では、「ＲＡＩＤ」は、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓの略である。ＲＡＩＤグループは、複数のＰＤＥＶ（典型的には同種のＰ  ＤＥＶ）で構成され、そのＲＡＩＤグループに関連付けられたＲＡＩＤレベルに従いデータを記憶する。ＲＡＩＤグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するＲＡＩＤグループのことでよい。
【００３１】
また、以下の説明では、「ＶＯＬ」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。ＶＯＬは、実体的なＶＯＬ（ＲＶＯＬ）であってもよいし、仮想的なＶＯＬ（ＶＶＯＬ）であってもよい。「ＲＶＯＬ」は、そのＲＶＯＬを有するストレージシステムが有する物理的な記憶資源（例えば、１以上のＲＡＩＤグループ）に基づくＶＯＬでよい。「ＶＶＯＬ」は、外部接続ＶＯＬ（ＥＶＯＬ）と、容量拡張ＶＯＬ（ＴＰＶＯＬ）と、スナップショットＶＯＬとのうちのいずれでもよい。ＥＶＯＬは、外部のストレージシステムの記憶空間（例えばＶＯＬ）に基づいておりストレージ仮想化技術に従うＶＯＬでよい。ＴＰＶＯＬは、複数の仮想領域（仮想的な記憶領域）で構成されており容量仮想化技術（典型的にはＴｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ）に従うＶＯＬでよい。
【００３２】
また、以下の説明では、「プール」は、論理的な記憶領域（例えば複数のプールＶＯＬの集合）であり、用途ごとに用意されてよい。例えば、プールとして、ＴＰプールと、スナップショットプールとのうちの少なくとも１種類があってよい。ＴＰプールは、複数のページ（実体的な記憶領域）で構成された記憶領域でよい。ストレージコントローラが、ホストシステム（以下、ホスト）から受信したライト要求が指定するアドレスが属する仮想領域（ＴＰＶＯＬの仮想領域）にページが割り当てられていない場合、その仮想領域（ライト先仮想領域）にＴＰプールからページを割り当てる（ライト先仮想領域にページが割り当て済であってもページが新たにライト先仮想領域に割り当てられてもよい）。ストレージコントローラは、割り当てられたページに、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、オリジナルのＶＯＬから退避されたデータが格納される記憶領域でよい。１つのプールが、ＴＰプールとしてもスナップショットプールとしても使用されてもよい。「プールＶＯＬ」は、プールの構成要素となるＶＯＬでよい。プールＶＯＬは、ＲＶＯＬであってもよいしＥＶＯＬであってもよい。
【００３３】
また、以下の説明では、ホストから認識されるＶＯＬ（ホストに提供されるＶＯＬ）を「ＨＤＥＶ」と言うことがある。以下の説明では、ＨＤＥＶは、ＴＰＶＯＬ（又はＲＶＯＬ）であり、プールは、ＴＰプールである。しかし、本発明は、容量拡張技術（Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ）が採用されていないストレージ装置にも適用できる。
【００３４】
また、以下の説明では、「ＰＶＯＬ（Ｐｒｉｍａｒｙ  ＶＯＬ）」はレプリケーションやスナップショットの元ボリュームとなるＨＤＥＶのことであり、「ＳＶＯＬ（Ｓｅｃｏｎｄａｒｙ  ＶＯＬ）」はレプリケーションやスナップショット先となるＨＤＥＶのことである。
【００３５】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別して説明する場合は、参照符号を使用することがある。例えば、ストレージ装置を特に区別しないで説明する場合には、「ストレージ装置２０００」と記載し、個々のストレージ装置を区別して説明する場合には、「ストレージ装置２０００Ａ」、「ストレージ装置２０００Ｂ」のように記載することがある。
【００３６】
また、以下の説明では、「レプリケーションペア」は、リモートレプリケーションのためのＶＯＬペアを意味する。「同期ペア」は、同期リモートレプリケーションのためのレプリケーションペアを意味する。「非同期ペア」は、非同期リモートレプリケーションのためのレプリケーションペアを意味する。
【００３７】
図１は、実施例に係るストレージシステムを含んだシステム全体の構成を示す。
【００３８】
ネットワーク１００８に、ストレージシステム５００、１以上のホスト１００３、及び、管理サーバ１００４が接続されている。ネットワーク１００８は、１又は複数のネットワークの集合、例えばＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）やｉＳＣＳＩ  （Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）である。
【００３９】
ホスト１００３は、ホストシステムの略である。ホスト１００３は、Ｈ−Ｉ／Ｆ（ホストインターフェースデバイス）２００４を有している。ホスト１００３は、Ｈ−Ｉ／Ｆ２００４経由で、Ｉ／Ｏ要求（ライト要求又はリード要求）をストレージ装置２０００に送信したり、Ｉ／Ｏ要求の応答（例えば、ライト完了を含んだライト応答、又は、リード対象データを含んだリード応答）を受信したりする。Ｈ−Ｉ／Ｆ２００４は、例えば、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００４０】
管理サーバ１００４は、管理システムの一例であり、ストレージシステム５００の構成及び状態を管理する。管理サーバ１００４は、Ｍ−Ｉ／Ｆ（管理インターフェースデバイス）２００３を有している。管理サーバ１００４は、Ｍ−Ｉ／Ｆ２００３経由で、ストレージシステム５００内のストレージ装置２０００に命令を送信したりその命令の応答を受信したりする。Ｍ−Ｉ／Ｆ２００３は、例えばＮＩＣである。
【００４１】
ストレージシステム５００は、複数のストレージ装置２０００を有する。複数のストレージ装置２０００の一例が、ストレージ装置２０００Ａ（第１のストレージ装置の一例）と、ストレージ装置２０００Ｂ（第２のストレージ装置の一例）である。ストレージ装置２０００は、複数のＰＤＥＶ２００９と、複数のＰＤＥＶ２００９に接続されたストレージコントローラ６３０とを有する。複数のＰＤＥＶ２００９を含んだ１以上のＲＡＩＤグループが構成されていてよい。
【００４２】
ストレージコントローラ６３０は、Ｆ−Ｉ／Ｆ（フロントエンドインターフェースデバイス）２１４と、Ｂ−Ｉ／Ｆ（バックエンドインターフェースデバイス）２００６と、ＣＭ（キャッシュメモリ）２０１４と、ＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  ＲＡＭ）２０１３と、ＭＰＰＫ２１００（例えば二重化されたＭＰＰＫ２１００Ａ及び２１００Ｂ）と、それらの要素間の通信を中継する中継器２００７とを有する。中継器２００７は、例えばバス又はスイッチである。ＭＰＰＫ２１００が、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２００２及びＣＰＵ２００１を有する。Ｆ−Ｉ／Ｆ２１４及びＢ−Ｉ／Ｆ２００６が、インターフェース部の一例である。ＣＭ２０１４、ＮＶＲＡＭ２０１３、及び、ＤＲＡＭ２００２が、メモリ部の一例である。ＣＰＵ２００１が、プロセッサ部の一例である。
【００４３】
Ｆ−Ｉ／Ｆ２１４は、ホスト１００３又は管理サーバと通信するＩ／Ｆである。Ｂ−Ｉ／Ｆ２００６は、ＰＤＥＶ２００９と通信するＩ／Ｆである。
【００４４】
ＣＭ（例えばＤＲＡＭ）２０１４には、ＰＤＥＶ２００９に書き込まれるデータ又はＰＤＥＶ２００９から読み出されたデータがＭＰＰＫ２１００により一時格納される。ＮＶＲＡＭ２０１３には、電断時にバッテリ（図示せず）から電力を受けたＭＰＰＫ２１００によりＣＭ２０１４内のデータ（例えばダーティデータ（ＰＤＥＶ２００９に書き込まれていないデータ））が退避される。
【００４５】
ＭＰＰＫ２１００Ａ及び２１００Ｂによりクラスタが構成されている。ＭＰＰＫ２１００Ａ（２１００Ｂ）は、ＤＲＡＭ２００２Ａ（２００２Ｂ）と、それに接続されたＣＰＵ２００１Ａ（２００１Ｂ）とを有する。ＤＲＡＭ２００２Ａ（２００２Ｂ）には、ＣＰＵ２００１Ａ（２００１Ｂ）に実行される制御プログラム３０００Ａ（３０００Ｂ）と、ＣＰＵ２００１Ａ（２００１）Ｂにより参照又は更新される管理情報４０００Ａ（４０００Ｂ）とが格納される。ＣＰＵ２００１Ａ（２００１Ｂ）に制御プログラム３０００Ａ（３０００Ｂ）が実行されることにより、例えば、Ｉ／Ｏ処理や、アドレスの変換処理が実行される。制御プログラム３０００Ａ（３０００Ｂ）及び管理情報４０００Ａ（４０００Ｂ）のうちの少なくとも一方が、複数のＭＰＰＫ２１００Ａ及び２１００Ｂに共有の記憶領域（例えばＣＭ２０１４）に格納されてもよい。
【００４６】
＜非同期リモートレプリケーションの概要＞
【００４７】
図２Ａは、本実施例に係る非同期リモートレプリケーションの一例を示す。
【００４８】
ストレージ装置２０００Ａとストレージ装置２０００Ｂがネットワーク１００８を介してそれぞれの拠点に設置されている。ストレージ装置２０００ＡのＰＶＯＬ（Ｐｒｉｍａｒｙ  Ｖｏｌ）５１００Ａとストレージ装置２０００ＢのＳＶＯＬ（Ｓｅｃｏｎｄａｒｙ  Ｖｏｌ）５１００Ｂとの非同期ペアが構成されている。このとき、ＰＶＯＬとＳＶＯＬの関係は１対１である必要はなく１対複数ＳＶＯＬとなる構成でもよい。つまり、同一のＰＶＯＬについて、複数の非同期ペア（又は同期ペア）が存在してもよい。
【００４９】
ＰＶＯＬ５１００ＡからＳＶＯＬ５１００Ｂへの非同期ペアの構築は、例えば次のように行われる。管理サーバ１００４からの指示により、まずストレージ装置２０００Ａがストレージ装置２０００ＢにＰＶＯＬ５１００Ａ内の全データを送信し、ストレージ装置２０００ＢがそのデータをＳＶＯＬ５１００Ｂに書き込む。つまり、ＰＶＯＬ５１００ＡからＳＶＯＬ５１００Ｂへのレプリケーションが行われる。このレプリケーションのことを「形成レプリケーション」と呼ぶ。そして、ストレージ装置２０００Ａとストレージ装置２０００ＢはＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂをペアとして関連付ける。ペアとして関連付けられたＰＶＯＬ５１００Ａに対するホスト１００３Ａからの更新データは、ＰＶＯＬ５１００Ａに格納後、ペア相手であるＳＶＯＬ５１００Ｂに非同期でレプリケーションされる。このレプリケーションのことを「差分レプリケーション」と呼ぶ。
【００５０】
非同期リモートレプリケーションでは、ＪＶＯＬ（ジャーナルＶＯＬ）５２００が利用される。ＪＶＯＬ５２００は、ジャーナル（ＪＮＬ）が書き込まれるＶＯＬであり、ＪＮＬ記憶領域の一例である。ＪＮＬは、ＰＶＯＬに書き込まれたデータ（正確には、当該データの複製）と、当該データに関するメタデータとを含む。当該メタデータは、当該ＰＶＯＬにデータが書き込まれた順番（更新順番）を示すＪＮＬ番号と、当該データの書込み先のアドレスを示す書込み先情報とを含む。なお、Ｉ／Ｏの単位データ、又は、ＪＮＬに含まれる単位データ（例えば所定サイズのデータ）が、データセットの一例でよい。また、ＪＮＬ番号は、シーケンシャル番号（ＳＥＱ番号）と呼ばれてもよい。また、図２Ａの例によれば、ストレージ装置２０００ＡがＪＶＯＬ５２００Ａを有し、ストレージ装置２０００ＢがＪＶＯＬ５２００Ｂを有するが、どちらか一方のＪＶＯＬ５２００が無くてもよい。ＪＮＬ番号は、連続番号でよい。また、ＪＶＯＬ５２００は、ＰＶＯＬ毎又はＳＶＯＬ毎に用意されてもよいし、複数のＰＶＯＬ又は複数のＳＶＯＬに共通でもよい。
【００５１】
ストレージ装置２０００はＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂの整合性を保証するために、ホスト１００３ＡのＰＶＯＬ５１００Ａに対する更新順序を保証しながら、以下の手順でＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂを同期する。
【００５２】
図２Ａは、ストレージ装置２０００Ａがホスト１００３Ａからデータ「Ｃ」をＰＶＯＬ５１００Ａに書き込むためのライト要求を受信し、次にデータ「Ｄ」をＰＶＯＬ５１００Ａに書き込むためのライト要求を受信する例を示す。ストレージ装置２０００Ａは、データ「Ｃ」にＪＮＬ番号「３」を付与しデータ「Ｃ」とＪＮＬ番号「３」とを含んだＪＮＬをＪＶＯＬ５２００Ａに格納する。次に、ストレージ装置２０００Ａは、データ「Ｄ」にＪＮＬ番号「４」（次の番号）を付与しデータ「Ｄ」とＪＮＬ番号「４」とを含んだＪＮＬをＪＶＯＬ５２００Ａに格納する。ストレージ装置２０００Ａは、ＪＶＯＬ５２００Ａに格納されているＪＮＬのうちの送信対象のＪＮＬ（例えば、未送信のＪＮＬ、又は、ストレージ装置２０００Ｂから要求されたＪＮＬ）をストレージ装置２０００Ｂに送信し、送信されたＪＮＬが、ストレージ装置２０００ＢのＪＶＯＬ５２００Ｂに格納される。ストレージ装置２０００Ｂは、ＪＶＯＬ５２００Ｂに格納されたＪＮＬをＪＮＬ番号の順序でＳＶＯＬ５１００Ｂに反映する、つまり、データ「Ｃ」、「Ｄ」の順序でデータ「Ｃ」及び「Ｄ」をＳＶＯＬ５１００Ｂに書き込む。
【００５３】
このようにしてＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂは更新順序を保証しながら同期（一致）する。
【００５４】
＜一比較例に係る非同期ペア複製＞
【００５５】
図２Ｂは、一比較例に係る非同期ペア複製を模式的に示す。
【００５６】
ホスト１０３からＰＶＯＬ５１０Ａにデータが書き込まれた場合のＰＶＯＬ５１０ＡからＳＶＯＬ５１０Ｂへの当該データのレプリケーションの流れは、図２Ａを参照して説明した通りである。すなわち、当該データとＪＮＬ番号を含んだＪＮＬが、ストレージ装置２００ＡのＪＶＯＬ５２０Ａに書き込まれ、ＪＶＯＬ５２０Ａからストレージ装置２００ＢのＪＶＯＬ５２０Ｂに転送され、ＪＶＯＬ５２０ＢからＳＶＯＬ５１０Ｂに反映される。
【００５７】
ＰＶＯＬ５１０ＡとＳＶＯＬ５１０Ｂとの非同期ペアの複製は、以下のように行われる。
【００５８】
すなわち、ストレージ装置２００Ａが、管理サーバ１０４からの指示により、ＰＶＯＬ５１０Ａの複製をＰＶＯＬ５１０Ｃとして作成する。ＰＶＯＬ５１０Ｃは、ＰＶＯＬ５１０Ａからレプリケーションされたデータを格納するＶＯＬでもよいし、ＰＶＯＬ５１０Ａのスナップショットとして作成されたＶＯＬでもよい。
【００５９】
続いて、ストレージ装置２００Ｂが、ＰＶＯＬ５１０Ｃのペア相手となるＳＶＯＬ５１０Ｄを作成する。
【００６０】
このとき、ストレージ装置２００Ｂには、ＰＶＯＬ５１０Ｃの複製元となったＰＶＯＬ５１０Ａのペア相手であるＳＶＯＬ５１０Ｂが存在しているが、ＰＶＯＬ５１０ＣとＳＶＯＬ５１０Ｂの間にはペア関係はない。ＰＶＯＬ５１０Ｃを作成した時点でＰＶＯＬ５１０ＣとＳＶＯＬ５１０Ｂが同期していることは保証されていない。このため、ＳＶＯＬ５１０ＢをＳＶＯＬ５１０Ｄの複製元として利用することができない。したがって、ＳＶＯＬ５１０Ｄは、ＰＶＯＬ５１０Ｃから形成レプリケーションによって作成する必要がある。結果として、ストレージ装置２００Ａはストレージ装置２００ＢにＰＶＯＬ５１０Ｃ内の全データを送信する必要がある。このため、ＰＶＯＬ５１０Ｃのデータ量が多い場合は、ネットワーク１０８の通信データ量の増大や通信時間の増大が生じ、ＳＶＯＬ５１０Ｄの作成に係る時間、及び、通信帯域の圧迫などが問題となる。また、ＳＶＯＬ５１０ＤにはＰＶＯＬ５１０Ｃ内の全データが格納されるため、ストレージ装置２００Ｂが消費する記憶容量の増大も問題となる。
【００６１】
＜本実施例に係る非同期ペア複製＞
【００６２】
図２Ｃは、本実施例に係る非同期ペア複製を模式的に示す。
【００６３】
ストレージ装置２０００Ａ（制御プログラム３０００Ａ）が、管理サーバ１００４からの指示により、ＰＶＯＬ５１００Ａ（第１のプライマリボリュームの一例）のスナップショットをＰＶＯＬ５１００Ｃ（第２のプライマリボリュームの一例）として作成する。このとき、ストレージ装置２０００Ａ（制御プログラム３０００Ａ）が、ＰＶＯＬ５１００Ａの論理情報９００Ａ（第１のプライマリ論理情報の一例）の複製をＰＶＯＬ５１００Ｃの論理情報９００Ｃ（第２のプライマリ論理情報の一例）として作成する（Ｓ２０Ａ）。論理情報９００Ｃは、ＰＶＯＬ５１００Ｃが作成されたときの論理情報９００Ａの複製である。論理情報９００Ａは、ＰＶＯＬ５１００Ａに最近書き込まれたデータの番号である第１のジャーナル番号を含んだ情報であり、例えば、後述のＨＤＥＶ論物テーブル、ペア管理テーブル及びＪＮＬ管理テーブルの少なくとも一部を含む。ＰＶＯＬ５１００Ａ及び５１００Ｃのいずれも、ホスト１００３からデータが入出力され得るＶＯＬである。
【００６４】
同様に、管理サーバ１００４からの指示により、ストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）が、ＳＶＯＬ５１００Ｂ（第１のセカンダリボリュームの一例）のスナップショットをＳＶＯＬ５１００Ｄ（第２のセカンダリボリュームの一例）として作成する。このとき、ストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）は、ＳＶＯＬ５１００Ｂの論理情報９００Ｂ（第１のセカンダリ論理情報の一例）の複製を、ＳＶＯＬ５１００Ｄの論理情報９００Ｄ（第２のセカンダリ論理情報の一例）として作成する（Ｓ２０Ｂ）。論理情報９００Ｄは、ＳＶＯＬ５１００Ｄが作成されたときの論理情報９００Ｂの複製である。論理情報９００Ｂは、ＰＶＯＬ５１００Ａについてストレージ装置２０００Ａから最近受信したデータの番号とＳＶＯＬ５１００Ｂに最近反映されたデータの番号とのうちの少なくとも１つである第２のジャーナル番号を含んだ情報であり、例えば、後述のＨＤＥＶ論物テーブル、ペア管理テーブル及びＪＮＬ管理テーブルの少なくとも一部を含む。
【００６５】
このとき、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄはそれぞれ任意の時間で作成されるため、データの一致性は保証されない。
【００６６】
そこで、ストレージ装置２０００Ａ（制御プログラム３０００Ａ）とストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）の少なくとも１つが、論理情報９００Ｃと論理情報９００Ｄを互いに比較する（Ｓ４０）。論理情報９００Ｃ（例えば、第１のジャーナル番号）と論理情報９００Ｄ（例えば、第２のジャーナル番号）との間に差分があれば、当該差分から、ＰＶＯＬ５１００Ｃ内のデータのうちＳＶＯＬ５１００Ｄに未反映のデータである差分データが検出される。そして、ストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）は、ＳＶＯＬ５１００Ｄに未反映の当該差分データ（差分ＪＮＬ）を、ＳＶＯＬ５１００Ｄに反映する。差分データの全てがＳＶＯＬ５１００Ｄに反映された場合に、ＳＶＯＬ５１００ＤがＰＶＯＬ５１００Ｃと一致（同期）したこととなり、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの非同期ペア（ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂとの非同期ペアの複製）の完成となる。但し、その際、ストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）は、当該差分データに、ストレージ装置２０００Ｂに既に存在するデータ（例えば、ＳＶＯＬ５１００Ｂ（又はＪＶＯＬ５２００Ｂ）に存在するデータ）があれば、当該データをＳＶＯＬ５１００Ｄに参照させることで、当該データをＳＶＯＬ５１００Ｄに複製したこととする。差分データのうちのいずれのデータがストレージ装置２０００Ｂに既に存在するかは、論理情報９００Ｄと最新の論理情報９００Ｂとをストレージ装置２０００Ｂ（制御プログラム３０００Ｂ）が互いに比較することにより（すなわち、論理情報９００Ｄと最新の論理情報９００Ｂとの差分から）特定することが可能である。具体的には、論理情報９００Ｄにおける第２のジャーナル番号（送信側装置から最近受信したデータの番号）と最新の論理情報９００Ｂにおける第２のジャーナル番号（送信側装置から最近受信したデータの番号）とに差分があれば、当該差分に相当するデータは、既にストレージ装置２０００Ｂに存在するデータである。
【００６７】
このようにして、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄを同期することにより、ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂとの非同期ペアの複製として、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの非同期ペアを作成することができる。本実施例では、非同期ペア毎にＪＶＯＬペアが存在するため、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの非同期ペアについて、ＪＶＯＬ５２００ＣとＪＶＯＬ５２００Ｄとのペアが用意される。なお、複数の非同期ペアで一つのＪＶＯＬペアが共通であってもよい。
【００６８】
図２Ｃで示される非同期ペア複製によれば、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄがそれぞれ作成されたときにＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの間に差分が無ければ（ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄが一致していれば）、ストレージ装置２０００Ａからストレージ装置２０００Ｂへのデータ転送無しにＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの同期ペアが完成する。このため、通信帯域を圧迫せずストレージ装置２００Ｂが消費する記憶容量を増大せずに非同期ペア複製を実現することができる。
【００６９】
また、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの間に差分があっても、ストレージ装置２０００Ａからストレージ装置２０００Ｂに転送されるデータは、最大で、ＰＶＯＬ５１０００Ｃ内のデータうちの差分データ（正確には、差分データに対応した１以上のＪＮＬ）でよい。このため、通信帯域の圧迫やストレージ装置２００Ｂの消費記憶容量の増大を低減した非同期ペア複製を実現することができる。
【００７０】
更に、差分データのうち、ストレージ装置２０００Ｂ（例えばＳＶＯＬ５１００Ｂ）に既に存在するデータがあれば、当該データについては、当該データをＳＶＯＬ５１００Ｄに参照させることで、当該データをＳＶＯＬ５１００Ｄに複製したこととする。結果として、当該データについては、ストレージ装置２０００Ａからの転送は行われない。このため、通信帯域の圧迫やストレージ装置２００Ｂの消費記憶容量の増大を一層低減することができる。これは、ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂとの非同期ペアにおけるリモートレプリケーションが、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの非同期ペアにおけるリモートレプリケーションに依存しない（独立して行われる）ため、有用である。ＳＶＯＬ５１００Ｄの作成時点ではストレージ装置２０００Ｂには無かったデータが、ＳＶＯＬ５１００Ｄへ差分データを反映するときには既にストレージ装置２０００Ｂ（ＳＶＯＬ５１００Ｂ（又はＪＶＯＬ５２００Ｂ））に存在することがあり得るためである。
【００７１】
図２Ｃを参照して述べたレプリケーションペア複製は、非同期ペアに限らず同期ペアにも適用可能である。なお、非同期リモートレプリケーションでは、ホスト１００３からＰＶＯＬにデータが書き込まれたときに（例えば、ＰＶＯＬの書込み先に関連付けられたキャッシュ領域（ＣＭ２０１４における領域）に当該データが書き込まれたときに）、ストレージ装置２０００Ａからホスト１００３に応答が返るのに対し、同期リモートレプリケーションでは、当該データがＳＶＯＬに書き込まれたこと（例えば、ＳＶＯＬの書込み先に関連付けられたキャッシュ領域に当該データが書き込まれたこと）を示す応答をストレージ装置２０００Ａがストレージ装置２０００Ｂから受信したときに、ストレージ装置２０００Ａからホスト１００３に応答が返る。従って、同期リモートレプリケーションではＪＮＬの作成は不要である。
【００７２】
以下、本実施例を詳細に説明する。
【００７３】
図３は、ストレージ装置２０００Ａ内で実施される仮想複製を模式的に示す。なお、当該仮想複製は、ストレージ装置２０００Ｂについても同様である。
【００７４】
近年では、ストレージ装置の利用効率を高めるストレージ機能として、重複排除機能やスナップショット機能などのストレージ機能が搭載されることが一般的である。
【００７５】
重複排除機能は、ストレージ装置に格納されているデータから、同一又は異なるボリュームにおける異なる論理アドレス間で重複するデータを検出し、一のデータを共有データとして格納し残りのデータをストレージ装置から削除することで消費記憶容量（データ量）を削減する機能である。一方、スナップショット機能は、あるＶＯＬの指定時点（スナップショット取得時点）のスナップショット（すなわち、当該時点で当該ＶＯＬと内容を同一とするＶＯＬ複製）を作成する機能である。このＶＯＬ複製（スナップショット）は、複製元ＶＯＬのデータへの参照を示す情報を含んだ論理情報により構成する。このため、ストレージ装置では複製元ＶＯＬからデータ複製は不要である。故に、ストレージ装置の容量消費なく任意時点のＶＯＬ複製を作成することができる。仮想複製では、前述の重複排除機能やスナップショット機能が利用できる。
【００７６】
図３が示す例は、ＰＶＯＬ５１００Ａ（ＨＤＥＶ）を仮想複製することでＰＶＯＬ５１００Ｃ（ＨＤＥＶ）を作成する例である。
【００７７】
プール５５０１に関連付けられた論理領域として、共有領域（例えばプールＶＯＬ又はキャッシュ領域）５３００と共有領域５４００（例えばプールＶＯＬ又はキャッシュ領域）とがある。専有領域５３００は、ＶＯＬ（ＨＤＥＶ）毎に存在する。一の専有領域５３００は、当該専有領域５３００に対応したＶＯＬ（ＨＤＥＶ）のみを格納先としたデータ（非重複データ）を記憶した領域である。一方、共有領域５４００は、二以上のＶＯＬ（ＨＤＥＶ）を格納先としたデータ（重複データ）を記憶した領域である。言い換えれば、プール５５０１に格納されたデータには属性が関連付けられており、当該データが、一のＶＯＬ（ＨＤＥＶ）のみを格納先としたデータであれば、当該データの属性は“専有”であり、スナップショットの作成等により二以上のＶＯＬ（ＨＤＥＶ）を格納先としたデータとなれば、当該データの属性は“共有”である。専有領域５３００は、属性“専有”のデータを記憶した領域であり、共有領域５４００は、属性“共有”のデータを記憶した領域である。
【００７８】
ＰＶＯＬ５１００Ａには、専有領域５３００Ａが対応付けられていて、データ「Ａ」、「Ｂ」及び「Ｃ」が格納されていて、その状態において、ＰＶＯＬ５１００Ａの仮想複製が行われたとする。この場合、ＰＶＯＬ５１００Ｃ（ＰＶＯＬ５１００Ａのスナップショット）及び論理情報９００Ｃ（ＰＶＯＬ５１００Ａのスナップショット取得時点での論理情報９００Ａの複製）が作成される。このため、データ「Ａ」、「Ｂ」及び「Ｃ」は、ＰＶＯＬ５１００Ａ（論理情報９００Ａ）に加えてＰＶＯＬ５１００Ｃ（論理情報９００Ｃ）からも参照されることになり、結果として、データ「Ａ」、「Ｂ」及び「Ｃ」の属性は“専有”から“共有”に変わる。従って、図示の通り、データ「Ａ」、「Ｂ」及び「Ｃ」が共有領域５４００に存在することとなる。つまり、データ「Ａ」、「Ｂ」及び「Ｃ」は、実際に複製されること無しに、ＰＶＯＬ５１００ＡからＰＶＯＬ５１００Ｃに複製（レプリケーション）されたこととなる。
【００７９】
その後、ＰＶＯＬ５１００Ａにデータ「Ｆ」がホスト１００３Ａから書き込まれた場合、データ「Ｆ」が専有領域５３００Ａに格納される。また、ＰＶＯＬ５１００Ｃにデータ「Ｅ」がホスト１００３Ｂから書き込まれた場合、データ「Ｅ」が、ＰＶＯＬ５１００Ｃに対応付けられた専有領域５３００Ｃに格納される。
【００８０】
以上のように、専有領域５３００と共有領域５４００とにデータの格納先が区別されていることで、ＶＯＬ（ＨＤＥＶ）の削除を効率的に行うことが期待できる。例えば、ＰＶＯＬ５１００Ｃを削除する場合、ＰＶＯＬ５１００Ｃに関して属性“専有”のデータを削除してもよいが、属性“共有”のデータは他のＶＯＬ（ＨＤＥＶ）から参照されているため削除してはならない。そこで、ＰＶＯＬ５１００Ｃの削除では、ＰＶＯＬ５１００Ｃ内のデータのうち、専有領域５３００Ｃ内のデータのみを削除するといったことが可能である。これは、テスト等のためにＶＯＬ（ＨＤＥＶ）（特にスナップショット）の作成と削除が頻繁に行われるようなケース（具体的には、レプリケーションペアの複製と削除が頻繁に行われるようなケース）では有効である。
【００８１】
なお、上述したように、図３に例示の仮想複製は、ストレージ装置２０００Ｂについても行われる。すなわち、ストレージ装置２０００Ｂは、プールに関連付けられた領域として、ＳＶＯＬ５１００Ｂが対応付けられた専有領域と、ＳＶＯＬ５１００Ｄが対応付けられた別の専有領域と、ＳＶＯＬ５１００Ｂ及び５１００Ｄの両方から参照されるデータが格納される共有領域とを有してよい。そして、非同期ペアの複製（ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの非同期ペア）が削除される場合、当該複製の削除に加えて、ＰＶＯＬ５１００Ｃについて属性“専有”のデータとＳＶＯＬ５１００Ｄについて属性“専有”のデータとが削除されてよい。すなわち、ストレージ装置２０００Ａが、ＰＶＯＬ５１００Ｃを格納先としたデータのうちＰＶＯＬ５１００Ｃについて属性が“専有”のデータを削除し、同様に、ストレージ装置２０００ｂが、ＳＶＯＬ５１００Ｄを格納先としたデータのうちＳＶＯＬ５１００Ｄについて属性が“専有”のデータを削除する。
【００８２】
また、本発明では、プール５５０１に関して専有領域５３００と共有領域５４００といった区別がされている必要は無い。
【００８３】
図４は、管理情報４０００の構成を示す。
【００８４】
管理情報４０００は、複数の管理テーブルを含む。管理テーブルとして、例えば、ＨＤＥＶ５１００に関する情報を保持するＨＤＥＶテーブル４１００、プール５５０１に関する情報を保持するプールテーブル４２００、プールＶＯＬ５２０１に関する情報を保持するプールＶＯＬテーブル４３００、ＨＤＥＶの論物変換のためのＨＤＥＶ論物テーブル４４００、ＨＤＥＶの物論変換のためのＨＤＥＶ物論テーブル４５００、レプリケーションペアに関する情報を保持するペア管理テーブル４６００、及び、ＪＮＬに関する情報を保持するＪＮＬ管理テーブル４７００がある。管理情報４０００Ａ及び４０００Ｂ間で、少なくとも一部の情報が同期してもよい。
【００８５】
図５は、ＨＤＥＶテーブル４１００の構成を示す。
【００８６】
ＨＤＥＶテーブル４１００は、ＨＤＥＶ５１００毎にエントリ（レコード）を有する。各エントリは、ＨＤＥＶ番号４１０１、容量４１０２、ＶＯＬ種別４１０３及びプール番号４１０４といった情報を格納する。
【００８７】
ＨＤＥＶ番号４１０１は、ＨＤＥＶ５１００の識別番号を表す。容量４１０２は、ＨＤＥＶ５１００の容量を表す。ＶＯＬ種別４１０３は、ＨＤＥＶの種別（例えば、「ＲＶＯＬ」又は「ＴＰＶＯＬ」）を表す。プール番号４１０４は、ＨＤＥＶ５１００が関連付けられているプール５５０１の識別番号を表す。ＨＤＥＶ５１００にはそのＨＤＥＶ５１００が関連付けられているプール５５０１内の領域からデータ格納領域（ページ）が割り当てられる。
【００８８】
図６は、プールテーブル４２００の構成を示す。
【００８９】
プールテーブル４２００は、プール５５０１毎にエントリを有する。各エントリは、プール番号４２０１、プール容量４２０２、プール割当て容量４２０３及びプール使用容量４２０４といった情報を格納する。
【００９０】
プール番号４２０１は、プール５５０１の識別番号を表す。プール容量４２０２は、プール５５０１の定義された容量（具体的には、プール５５０１を構成する１以上のプールＶＯＬにそれぞれ対応した１以上のＶＯＬ容量の合計）を表す。プール割当て容量４２０３は、１以上のＨＤＥＶ５１００に割り当てられた実容量（具体的には、１以上のＨＤＥＶ５１００に割り当てられているページ群全体の容量）を表す。プール使用容量４２０４は、プール５５０１に格納されているデータの総量を表す。データについてデータ削減（圧縮及び重複排除のうちの少なくとも１つ）が行われた場合、データ削減後のデータ量を基にプール使用容量４２０４がＭＰＰＫ２１００により算出されてよい。なお、データ圧縮をＰＤＥＶ２００９が行う場合、ＭＰＰＫ２１００は、圧縮前のデータ量を基にプール使用容量４２０４を算出してもよいし、圧縮後のデータ量の通知をＰＤＥＶ２００９から受けてその圧縮後データ量を基にプール使用容量４２０４を算出してもよい。
【００９１】
図７は、プールＶＯＬテーブル４３００の構成を示す。
【００９２】
プールＶＯＬテーブル４３００は、プール番号４３０１毎のプールＶＯＬサブテーブル４３１０を有する。プールＶＯＬサブテーブル４３１０は、プール５５０１内のプールＶＯＬ毎にエントリを有する。各エントリは、プールＶＯＬ番号４３１１、ＰＤＥＶ種別４３１２及びプールＶＯＬ容量４３１３といった情報を格納する。
【００９３】
プールＶＯＬ番号４３１１は、プールＶＯＬの識別番号を表す。ＰＤＥＶ種別４３１２は、プールＶＯＬの基になっているＰＤＥＶ２００９の種別を表す。プールＶＯＬ容量４３１３は、プールＶＯＬの容量を表す。
【００９４】
図８は、ＨＤＥＶ論物テーブル４４００の構成を示す。以下の説明では、ＨＤＥＶ５１００におけるＬＢＡを「仮想ＬＢＡ」と呼ぶ。図では、仮想ＬＢＡを「ＶＬＢＡ」と表記する。
【００９５】
ＨＤＥＶ論物テーブル４４００は、ＨＤＥＶ５１００に属する論理アドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ  ：  ＬＢＡ）を、当該ＨＤＥＶ５１００に関連付けられたプール５５０１におけるＬＢＡへ変換するために（論物変換のために）参照されるテーブルである。ＨＤＥＶ論物テーブル４４００は、ＨＤＥＶ番号４４０１毎のＨＤＥＶ論物サブテーブル４４１０を有する。ＨＤＥＶ論物サブテーブル４４１０の各エントリは、仮想ＬＢＡ４４１１、プールＶＯＬ番号４４１２、ＬＢＡ４４１３及びサイズ４４１４である。
【００９６】
ＨＤＥＶ番号４４０１は、ＨＤＥＶ５１００の識別番号を表す。仮想ＬＢＡ４４１１は、ＨＤＥＶ５１００におけるＬＢＡを表す。プールＶＯＬ番号４４１２は、仮想ＬＢＡに関連付けられたＬＢＡを持つプールＶＯＬの識別番号を表す。ＬＢＡ４４１３は、仮想ＬＢＡに関連付けられたＬＢＡ（プールＶＯＬにおけるＬＢＡであり論物変換後のデータ格納位置の先頭ＬＢＡ）を表す。サイズ４４１４は、当該論物変換後のＬＢＡから取得されるデータのサイズを表す。
【００９７】
図９は、ＨＤＥＶ物論テーブル４５００の構成を示す。
【００９８】
ＨＤＥＶ物論テーブル４５００は、プールＶＯＬにおけるＬＢＡを仮想ＬＢＡに変換するために（物論変換のために）参照されるテーブルである。ＨＤＥＶ物論テーブル４５００は、プールＶＯＬ番号４５０１毎のＨＤＥＶ物論サブテーブル４５１０を有する。ＨＤＥＶ物論サブテーブル４５１０は、第１のリスト（ＬＢＡ４５１１とサイズ４５１２を格納したエントリのリスト）、及び、ＬＢＡ４５１１毎の第２のリスト（ＨＤＥＶ番号４５１４とＬＢＡ４５１５を格納したエントリのリスト）を有する。第２のリストは、例えば、他の領域と共有するデータを格納したＬＢＡでは、対応する複数のＨＤＥＶ番号及び仮想ＬＢＡが対応付けられ、一方で、他の領域と共有しないデータを格納したＬＢＡでは、対応する１つのＨＤＥＶ番号及び仮想ＬＢＡが対応付けられる。このようなリストの持ち方に代えて又は加えて、例えば、仮想ＬＢＡ毎に、上述したデータ属性（“専有”や“共有”）が管理されてもよい。
【００９９】
図１０は、ペア管理テーブル４６００の構成を示す。
【０１００】
ペア管理テーブル４６００は、レプリケーションペア毎にエントリを有する。各エントリは、Ｒペア番号４６０１、Ｊペア番号４６０２、ＰＶＯＬ番号４６０３、ペア装置ＩＤ４６０４、ＳＶＯＬ番号４６０５、同期方式４６０６及びペア状態４６０７といった情報を格納する。
【０１０１】
Ｒペア番号４６０１は、レプリケーションペアの識別番号を表す。Ｊペア番号４６０２は、レプリケーションペアについて使用されるＪＶＯＬペア（ストレージ装置２０００ＡにおけるＪＶＯＬ５２００とストレージ装置２０００ＢにおけるＪＶＯＬとのペア）の識別番号を表す。
【０１０２】
ＰＶＯＬ番号４６０２は、レプリケーションペアにおけるＰＶＯＬ（ＨＤＥＶ）のＨＤＥＶ番号を表す。
【０１０３】
ペア装置ＩＤ４６０４は、当該ＰＶＯＬとペア相手のＳＶＯＬの属するストレージ装置を識別するＩＤを表す。ＳＶＯＬ番号４６０６は、当該ＳＶＯＬ（ＨＤＥＶ）のＨＤＥＶ番号を表す。
【０１０４】
同期方式４６０６は、レプリケーションペアにおけるリモートレプリケーションの種類を表す。同期リモートレプリケーションが採用されたレプリケーションペアの同期方式４６０６は「ＳＹＮＣ」である。一方、非同期リモートレプリケーションが採用されたレプリケーションペアの同期方式４６０６は「ＡＳＹＮＣ」である。
【０１０５】
ペア状態４６０７は、レプリケーションペアの状態を表す。例えば、ＰＶＯＬとＳＶＯＬが同期（一致）していれば、ペア状態４６０７は「ＰＡＩＲ」である。また、例えば、ＰＶＯＬとＳＶＯＬが同期（一致）していなければ、ペア状態４６０７は「ＰＳＵＳ」である。
【０１０６】
図１１は、ＪＮＬ管理テーブル４７００の構成を示す。
【０１０７】
ＪＮＬ管理テーブル４７００は、ＪＶＯＬペア毎にエントリを有する。各エントリは、Ｊペア番号４７０１、ソースＪＶＯＬ番号４７０２、ペア装置ＩＤ４７０３、ターゲットＪＶＯＬ番号４７０４、最新ＪＮＬ番号４７０５、及び、反映ＪＮＬ番号４７０６といった情報を格納する。
【０１０８】
Ｊペア番号４７０１は、ＪＶＯＬペアの識別番号を表す。送信ＪＶＯＬ番号４７０３は、ＪＶＯＬペアのうちの送信側ＪＶＯＬの識別番号を表す。ペア装置ＩＤ４７０４は、ＪＶＯＬペアのうちの受信側ＪＶＯＬを有するストレージ装置２０００のＩＤを表す。ターゲットＪＶＯＬ番号４７０４は、ＪＶＯＬペアのうちの受信側ＪＶＯＬの識別番号を表す。
【０１０９】
最新ＪＮＬ番号４７０５は、本テーブル４７００を送信側装置（送信側ＪＶＯＬを持つストレージ装置）と受信側装置（受信側ＪＶＯＬを持つストレージ装置）のいずれの装置が有するかによって異なる。送信側装置では、最新ＪＮＬ番号４７０５は、送信側ＪＶＯＬに最近格納されたデータのＪＮＬ番号（ＳＥＱ番号（ライトシーケンス番号））を表す。受信側装置では、最新ＪＮＬ番号４７０５は、送信側装置から最近受信したデータのＪＮＬ番号を表す。
【０１１０】
反映ＪＮＬ番号４７０６は、本テーブル４７００を送信側装置と受信側装置のいずれの装置が有するかによって異なる。送信側装置では、反映ＪＮＬ番号４７０６は、受信側装置に最近送信したデータのＪＮＬ番号を表す。受信側装置では、反映ＪＮＬ番号４７０６は、受信側ＪＶＯＬからＳＶＯＬに最近格納されたデータのＪＮＬ番号を表す。
【０１１１】
以上のように、送信側装置では、最新ＪＮＬ番号４７０５が、第１のジャーナル番号の一例であり、送信側ＪＶＯＬに最近格納されたデータのＪＮＬ番号（言い換えれば、ＰＶＯＬに最近格納されたデータのＪＮＬ番号）を表し、反映ＪＮＬ番号４７０６が、受信側装置に最近送信されたデータ（ＪＮＬ）のＪＮＬ番号を表す。受信側装置では、最新ＪＮＬ番号４７０５又は反映ＪＮＬ番号４７０６が、第２のジャーナル番号の一例である。具体的には、受信側装置では、最新ＪＮＬ番号４７０５が、送信側装置から最近受信したデータのＪＮＬ番号（言い換えれば、受信側ＪＶＯＬに最近格納されたＪＮＬのＪＮＬ番号）を表し、反映ＪＮＬ番号４７０６が、受信側ＪＶＯＬからＳＶＯＬに最近格納されたデータのＪＮＬ番号を表す。
【０１１２】
＜レプリケーションペアの複製処理＞
【０１１３】
図１２は、レプケーションペアの複製処理のフローを示す。Ｓ１００１の指示は、制御プログラム３０００Ａ及び３０００Ｂのいずれか所定のプログラムが受信するが、本実施例では、制御プログラム３０００Ａが当該指示を受信するとする。
【０１１４】
Ｓ１００１で、制御プログラム３０００Ａが、管理サーバ１００４からペア複製指示を受信する。Ｓ１００２で、制御プログラム３０００Ａが、複製元ペアを特定し（具体的には、当該指示で指定されているペアを特定し）、管理情報４０００Ａ中のペア管理テーブル４６００から、複製元ペアの情報を参照する。Ｓ１００３で、制御プログラム３０００Ａが、複製元ペアの同期方式が「ＳＹＮＣ」か「ＡＳＹＮＣ」かを判断する。複製元ペアの同期方式が「ＳＹＮＣ」であれば、Ｓ１００４で、ＳＹＮＣペア複製処理が実施される。複製元ペアの同期方式が「ＡＳＹＮＣ」であれば、Ｓ１００５で、ＡＳＹＮＣペア複製処理が実施される。ペア複製後、Ｓ１００６で、制御プログラム３０００Ａ及び３０００Ｂの各々が、複製先ペアに関する情報（エントリ）を新規にペア管理テーブル４６００に追加する。当該エントリにおいて、ペア状態４６０７は“ＰＡＩＲ”である。
【０１１５】
図１３は、ＳＹＮＣペア複製処理のフローを示す。説明のため、ストレージ装置２０００ＡにおけるＶＯＬとストレージ装置２０００ＢにおけるＶＯＬの関係は、図２Ｃで説明した関係であるとする。つまり、ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂとのペアが、同期ペアであるとする。
【０１１６】
Ｓ３００１で、制御プログラム３０００Ａは、管理情報４０００Ａ内のペア管理テーブル４６００から、複製元ペアの情報を参照する。Ｓ３００２で、制御プログラム３０００Ａは、複製元ペアのペア装置ＩＤ４６０１及びＳＶＯＬ番号４６０５を取得する。Ｓ３００３で、制御プログラム３０００Ａは、制御プログラム３０００Ｂに、取得されたペア装置ＩＤ及びＳＶＯＬ番号を指定した複製指示（つまり、ＳＶＯＬ５１００Ｂの複製指示）を送信する。Ｓ３０１２で、制御プログラム３０００Ｂは、制御プログラム３０００ＡからＳＶＯＬ５１００Ｂの複製指示を受信する。
【０１１７】
Ｓ３００４で、制御プログラム３０００Ａは、ＰＶＯＬ５１００Ａ（複製元ペアのＰＶＯＬ番号４６０３が示すＶＯＬ（ＨＤＥＶ））の仮想複製処理（ＰＶＯＬ５１００Ｃの作成処理）を実行する。Ｓ３０１３で、制御プログラム３０００Ｂは、Ｓ３０１２で受信した複製指示に応答して、ＳＶＯＬ５１００Ｂの仮想複製処理（ＳＶＯＬ５１０００Ｃの作成処理）を実行する。
【０１１８】
Ｓ３００５で、制御プログラム３０００Ａは、制御プログラム３０００Ｂの仮想複製処理が終了するのを待つ。Ｓ３０１４で、制御プログラム３０００Ｂは、制御プログラム３０００Ａに仮想複製処理の完了を通知する。
【０１１９】
Ｓ３００６で、制御プログラム３０００Ａは、制御プログラム３０００Ｂの処理完了を確認する。
【０１２０】
Ｓ３００７で、制御プログラム３０００Ａは、制御プログラム３０００Ｂに、Ｓ３０１３で作成されたＳＶＯＬ５１００ＤのＨＤＥＶ論物サブテーブル４４１０を要求する。Ｓ３０１５で、制御プログラム３０００Ｂは、当該要求に応答して、制御プログラム３０００ＡにＳＶＯＬ５１００ＤのＨＤＥＶ論物サブテーブル４４１０を送信する。
【０１２１】
Ｓ３００８で、制御プログラム３０００Ａは、Ｓ３００４で作成されたＰＶＯＬ５１００ＣのＨＤＥＶ論物サブテーブル４４１０と、制御プログラム３０００ＢからのＨＤＥＶ論物サブテーブル４４１０とを比較する。Ｓ３００９で、制御プログラム３０００Ａは、Ｓ３００８での比較の結果から、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄが一致しているか否かを判断する。
【０１２２】
Ｓ３００９の判断結果が真の場合、ＳＹＮＣペア複製処理が終了する。
【０１２３】
Ｓ３００９の判断結果が偽の場合、Ｓ３０１０で、制御プログラム３０００Ａは、ＰＶＯＬ５１００Ｃ内のデータのうちＳＶＯＬ５１００Ｄとの差分に相当する差分データを特定し、特定した差分データを制御プログラム３０００Ｂに送信する。制御プログラム３０００Ｂは、Ｓ３０１６で、差分データを受信する。Ｓ３０１７で、制御プログラム３０００Ｂは、当該差分データをＳＶＯＬ５１００Ｄに格納する。結果として、ＰＶＯＬ５１００ＣにＳＶＯＬ５１００Ｄが同期（一致）する。
【０１２４】
なお、ＳＶＯＬ５１００ＤのＨＤＥＶ論物サブテーブル４４１０がストレージ装置２０００Ｂからストレージ装置２０００Ａに送信されることに代えて、ＰＶＯＬ５１００ＣのＨＤＥＶ論物サブテーブル４４１０がストレージ装置２０００Ａからストレージ装置２０００Ｂに送信されてよい。そして、ＨＤＥＶ論物サブテーブル４４１０同士の比較は、制御プログラム３０００Ａに代えて制御プログラム３０００Ｂにより行われてもよい。
【０１２５】
また、図１３の例によれば、ＰＶＯＬ５１００Ａ（及びＳＶＯＬ５１００Ｂ）の仮想複製処理の前にＰＶＯＬ５１００ＡについてＩ／Ｏの一時停止が行われない。つまり、Ｉ／Ｏ無停止とすることができる。しかし、ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂのペアが同期ペアであっても、ＰＶＯＬ５１００Ａの仮想複製処理とＳＶＯＬ５１００Ｂの仮想複製処理が同一タイミングで行われるとは限らないので、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄは一致しているとは限らない。そこで、点線枠１３００のような同期保証処理（図１３の例では、Ｓ３００７〜Ｓ３０１０、Ｓ３０１５及びＳ３０１６）が行われることで、ＰＶＯＬ５１００ＣにＳＶＯＬ５１００Ｄが一致することを保証できる。Ｓ３００７〜Ｓ３０１０、Ｓ３０１５及びＳ３０１６に代えて、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄの同期保証処理は、次のように行われてもよい。すなわち、例えば、ＨＤＥＶ論物サブテーブル４４１０に、仮想ＬＢＡ毎に、データ特徴を示すハッシュ値が含まれていてよい。制御プログラム３０００Ａが、Ｓ３００９で、各仮想ＬＢＡについて、ハッシュ値が同一か否かを判断してよい。Ｓ３００９の判断結果が偽の仮想ＬＢＡがある場合、制御プログラム３０００Ａは、差分データに代えて、当該仮想ＬＢＡと当該仮想ＬＢＡに対応したハッシュ値（ＰＶＯＬ５１００Ｃに関するハッシュ値）とを送信してよい。制御プログラム３０００Ｂは、ＳＶＯＬ５１００Ｄの当該仮想ＬＢＡについて、当該通知されたハッシュ値と同一ハッシュ値に対応した仮想ＬＢＡを、ＳＶＯＬ５１００Ｂ（ＳＶＯＬ５１００Ｄの複製元）のＨＤＥＶ論物サブテーブルから特定し、下記（ｘ）及び（ｙ）のいずれかを行ってよい（つまり、ＨＤＥＶ論物サブテーブル同士の差分から特定されストレージ装置２０００Ｂに既に存在するデータを、ＳＶＯＬ５１００Ｄに反映してよい）。いずれが行われても、ストレージ装置２０００Ａと２０００Ｂ間での差分データの転送を不要とすることができる。（ｙ）が行われる場合、ストレージ装置２０００Ｂ内でのデータの複製も不要とすることができる。（ｙ）が行われる場合、上述した重複排除機能は、ＶＯＬ間でのデータ重複の排除に加えて、同一ＶＯＬ内でのデータの重複も排除するようになっている機能である。また、ＰＶＯＬ５１００ＡのＨＤＥＶ論物サブテーブル４４１０が、第１のプライマリ論物情報の一例であり、ＰＶＯＬ５１００ＣのＨＤＥＶ論物サブテーブル４４１０が、第２のプライマリ論物情報の一例であり、ＳＶＯＬ５１００ＢのＨＤＥＶ論物サブテーブル４４１０が、第１のセカンダリ論物情報の一例であり、ＳＶＯＬ５１００ＤのＨＤＥＶ論物サブテーブル４４１０が、第２のセカンダリ論物情報の一例である。
（ｘ）ＳＶＯＬ５１００Ｄの当該仮想ＬＢＡに新たにページを割り当て、当該ページに、特定した仮想ＬＢＡに割り当てられているページ内のデータを複製する。
（ｙ）ＳＶＯＬ５１００Ｄの当該仮想ＬＢＡの参照先を、特定した仮想ＬＢＡに割り当てられているページとする（ＳＶＯＬ５１００ＤのＨＤＥＶ論物サブテーブルのうち当該仮想ＬＢＡに対応した情報４４１２〜４４１４を、特定した仮想ＬＢＡに割り当てられているページに対応した情報４４１２〜４４１４と同じ情報に更新する）。
【０１２６】
ＰＶＯＬ５１００Ａ（及びＳＶＯＬ５１００Ｂ）の仮想複製処理の前にＰＶＯＬ５１００ＡについてＩ／Ｏの一時停止が行われてもよい。この場合、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄは一致しているため、ＰＶＯＬ５１００Ａ（及びＳＶＯＬ５１００Ｂ）の仮想複製処理の後に（ＰＶＯＬ５１００ＡについてＩ／Ｏの再開前に（一時停止の解除前に））、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄの同期保証処理を行うことを不要とすることができる。
【０１２７】
図１４Ａは、ＡＳＹＮＣペア複製処理のフローを示す。図１４Ａでも、ストレージ装置２０００ＡにおけるＶＯＬとストレージ装置２０００ＢにおけるＶＯＬの関係は、図２Ｃで説明した関係であるとする。つまり、ＰＶＯＬ５１００ＡとＳＶＯＬ５１００Ｂとのペアが、非同期ペアである。
【０１２８】
Ｓ２００１で、制御プログラム３０００Ａは、管理情報４０００Ａ中のペア管理テーブル４６００から、複製元ペアの情報を参照する。Ｓ２００２で、制御プログラム３０００Ａは、ペア装置ＩＤ４６０１と、Ｊペア番号４６０２と、ＳＶＯＬ番号４６０５とを取得する。Ｓ２００３で、制御プログラム３０００Ａは、制御プログラム３０００Ｂに対し、複製元ペアに対応したＳＶＯＬ５１００Ｂ（取得したＳＶＯＬ番号４６０５が示すＳＶＯＬ）へＪＮＬを反映することの一時停止の指示を送信する。Ｓ２０１３で、制御プログラム３０００Ｂは、当該指示に応答して、ＳＶＯＬ５１００ＢへのＪＮＬ反映を一時停止する。
【０１２９】
Ｓ２００４で、制御プログラム３０００Ａは、ＰＶＯＬ５１００Ａの仮想複製処理（ＰＶＯＬ５１００Ｃの作成処理）を実行する。Ｓ２００５で、制御プログラム３０００Ａは、ＪＮＬ管理テーブル４７００から、複製元ペアに対応したＪＶＯＬペアの最新ＪＮＬ番号４７０５（＝Ｎ）を取得する。Ｓ２００６で、制御プログラム３０００Ａは、取得されたペア装置ＩＤ及びＳＶＯＬ番号を指定した複製指示（ＳＶＯＬ５１００Ｂの複製指示）を制御プログラム３０００Ｂに送信する。この複製指示は、Ｓ２００５で取得された最新ＪＮＬ番号を含む。Ｓ２０１４で、制御プログラム３０００Ｂは、複製元ペアの最新ＪＮＬ番号（＝Ｎ）を含んだ複製指示（ＳＶＯＬ５１００Ｂの複製指示）を受信する。
【０１３０】
Ｓ２００７で、制御プログラム３０００Ａは、制御プログラム３０００ＢのＳＶＯＬ５１００Ｂの複製処理完了を待つ。Ｓ２０１５で、制御プログラム３０００Ｂは、ＪＮＬ管理テーブル４７００を参照し、複製元ペアに対応したＪＶＯＬペアについての反映ＪＮＬ番号４７０６（＝Ｍ）を特定する。Ｓ２０１６で、制御プログラム３０００Ｂは、反映ＪＮＬ番号４７０６（＝Ｍ）がＳ２０１４で受信したＪＮＬ番号＝Ｎと一致するまで可能な限りのＪＮＬをＳＶＯＬ５１００Ｂに反映する（結果として、ＳＶＯＬ５１００Ｄの論理情報９００Ｄ中の反映ＪＮＬ番号が更新される）。Ｓ２０１７で、制御プログラム３０００Ｂは、当該処理が終了したこと（ＳＶＯＬ５１００Ｂに対応した反映ＪＮＬ番号（＝Ｍ）がＪＮＬ番号（＝Ｎ）に一致又はなるべく近づいた）ことを確認する。Ｓ２０１８で、制御プログラム３０００Ｂは、ＳＶＯＬ５１００Ｂの仮想複製処理（ＳＶＯＬ５１００Ｃの作成処理）を実行する。Ｓ２０１９で、制御プログラム３０００Ｂは、制御プログラム３０００Ａに仮想複製処理の完了を通知する。
【０１３１】
Ｓ２００８で、制御プログラム３０００Ａは、ＳＶＯＬ５１００Ｂの仮想複製処理の完了を確認する。Ｓ２０２０で、制御プログラム３０００Ｂは、Ｓ２０１３で停止していたＳＶＯＬ５１００ＢへのＪＮＬ反映を再開する。
【０１３２】
Ｓ２００９で、制御プログラム３０００Ａは、ＳＶＯＬ５１００Ｄの論理情報９００Ｄを要求する。Ｓ２０２１で、制御プログラム３０００Ｂは、当該要求に応答して、制御プログラム３０００Ａに、ＳＶＯＬ５１００Ｄの論理情報９００Ｄを送信する。
【０１３３】
Ｓ２０１０で、制御プログラム３０００Ａは、ＳＶＯＬ５１００Ｄの論理情報９００ＤをＰＶＯＬ５１００Ｃの論理情報９００Ｃと比較する。Ｓ２０１１で、制御プログラム３０００Ａは、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄが一致しているか否か（論理情報９００Ｃ中の第１のジャーナル番号と論理情報９００Ｄ中の第２のジャーナル番号（最新ＪＮＬ番号又は反映ＪＮＬ番号）が一致しているか否か）を判断する。
【０１３４】
Ｓ２０１１の判断結果が真の場合、ＡＳＹＮＣペア複製処理が終了する。
【０１３５】
Ｓ２０１１の判断結果が偽の場合は、Ｓ２０１２で、制御プログラム３０００Ａは、ＰＶＯＬ５１００ＣのうちＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄとの差分データを特定し、当該差分データ（当該差分データに対応する１以上のＪＮＬ）を制御プログラム３０００Ｂに送信する。制御プログラム３０００Ｂは、Ｓ２０２２で、当該差分データを受信し、Ｓ２０２３で、当該差分データをＳＶＯＬ５１００Ｄに反映する。結果として、ＰＶＯＬ５１００ＣにＳＶＯＬ５１００Ｄが同期（一致）する。ここでの「差分データ」は、ＰＶＯＬ５１００Ｃの最新ＪＮＬ番号（第１のジャーナル番号の一例）とＳＶＯＬ５１００Ｄの反映ＪＮＬ番号（第２のジャーナル番号の一例）との差分に相当するデータである。また、点線枠１４００Ａが示す処理が、ＰＶＯＬ５１００Ａ及びＳＶＯＬ５１００Ｂの各々の仮想複製処理後の同期保証処理の一例である。
【０１３６】
図１４Ｂは、ＡＳＹＮＣペア複製処理の一変形例のうち、図１４Ａが示すＡＳＹＮＣペア複製処理との相違点を含む部分を示す。
【０１３７】
図１４Ａが示すフローによれば、差分データの全てがストレージ装置２０００Ａからストレージ装置２０００Ｂに転送されるが、本変形例によれば、当該差分データのうち既にストレージ装置２０００Ｂに存在するデータである既存データについては、ストレージ装置２０００Ａからストレージ装置２０００Ｂへの転送は不要とされる。Ｓ２０２０でＪＮＬ反映が再開されるため（或いは、ＰＶＯＬ５１００Ａに対するＩ／Ｏは停止されずストレージ装置２０００Ａ及び２０００Ｂ間でのＪＮＬは継続中のため）、上述のような既存データが生じ得る。
【０１３８】
具体的には、例えば、図１４Ａに例示の同期保証処理に代えて、点線枠１４００Ｂが示す同期保証処理が行われる。
【０１３９】
Ｓ２１０９で、制御プログラム３０００Ａは、制御プログラム３０００Ｂに、ＳＶＯＬ５１００Ｄの論理情報９００Ｄに加えてＳＶＯＬ５１００Ｂの最新の論理情報９００Ｂを要求する。Ｓ２１２１で、制御プログラム３０００Ｂは、当該要求に応答して、制御プログラム３０００Ａに、ＳＶＯＬ５１００Ｄの論理情報９００ＤとＳＶＯＬ５１００Ｂの最新の論理情報９００Ｂとを送信する。
【０１４０】
Ｓ２１１０で、制御プログラム３０００Ａは、論理情報９００Ｃ及び９００Ｄ同士の比較に加えて、論理情報９００Ｄと最新の論理情報９００Ｂ同士を比較する。Ｓ２１１１で、制御プログラム３０００Ａは、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄが一致しているか否かに加えて、ＳＶＯＬ５１００ＤとＳＶＯＬ５１００Ｂが一致しているか否かを判断する。
【０１４１】
Ｓ２１１１で、ＰＶＯＬ５１００ＣとＳＶＯＬ５１００Ｄが一致しておらず、且つ、ＳＶＯＬ５１００Ｄ（論理情報９００Ｄ）と最新のＳＶＯＬ５１００Ｂ（最新の論理情報９００Ｂ）も一致していない場合、制御プログラム３０００Ａは、Ｓ２１１２で、下記の処理の少なくとも１つを行う。
・ＰＶＯＬ５１００ＣのＳＶＯＬ５１００Ｄとの差分データのうち、論理情報９００Ｄ（例えば、反映ＪＮＬ番号）と最新の論理情報９００Ｂ（例えば、最新のＳＶＯＬ５１００Ｂに対応した最新ＪＮＬ番号（又は反映ＪＮＬ番号））との差分に相当する既存データ（ストレージ装置２０００Ｂに既に存在するデータ）については、ＳＶＯＬ５１００Ｄの該当仮想ＬＢＡ（当該既に存在するデータに対応した仮想ＬＢＡ）と当該既に存在するデータを格納したページのＬＢＡとを制御プログラム３０００Ｂに通知する。
・ＰＶＯＬ５１００ＣのＳＶＯＬ５１００Ｄとの差分データのうち既存データ以外のデータについては、Ｓ２０１２と同様、制御プログラム３０００Ｂに送信する。
【０１４２】
Ｓ２１２２で、制御プログラム３０００Ｂは、差分データの少なくとも一部と、仮想ＬＢＡとそれの参照先ＬＢＡを含んだ通知とのうちの少なくとも１つを受信する。Ｓ２１２３で、制御プログラム３０００Ｂは、下記の処理の少なくとも１つを行う。
・差分データの少なくとも一部の少なくとも一つについては、当該少なくとも一部に該当するデータをＳＶＯＬ２１００Ｄに反映する。
・仮想ＬＢＡとそれの参照先ＬＢＡを含んだ通知については、当該通知を基に、ＳＶＯＬ２１００Ｄの当該仮想ＬＢＡの参照先を、当該ＬＢＡとする（ＳＶＯＬ２１００ＤのＨＤＥＶ論物サブテーブル４４１０における当該仮想ＬＢＡに、既存データを格納したページに対応するＬＢＡを関連付ける）。
【０１４３】
なお、論理情報９００Ｄ（及び９００Ｂ）がストレージ装置２０００Ｂからストレージ装置２０００Ａに送信されることに代えて、ＰＶＯＬ５１００Ｃの論理情報９００Ｃがストレージ装置２０００Ａからストレージ装置２０００Ｂに送信されてよい。そして、論理情報９００Ｃ及び９００Ｄ同士の比較（及び、論理情報９００Ｄと最新の論理情報９００Ｂ同士の比較）は、制御プログラム３０００Ａに代えて制御プログラム３０００Ｂにより行われてもよい。
【０１４４】
また、Ｓ２０１５〜Ｓ２０１７は、ＳＶＯＬ５１００Ｂの仮想複製処理の前に代えて、ＳＶＯＬ５１００Ｂの仮想複製処理の後（例えば、同期保証処理において）行われてもよい。
【０１４５】
図１５は、仮想複製処理のフローを示す。図１５の説明は、ストレージ装置２０００Ａ及び２０００Ｂのどちらでも同様である。図１５に説明において、「対象プログラム」は、制御プログラム３０００Ａ及び３０００Ｂのいずれかを意味し、「複製元ＨＤＥＶ」は、ＰＶＯＬ５１００Ａ又はＳＶＯＬ５１００Ｂを意味し、「複製先ＨＤＥＶ」は、ＰＶＯＬ５１００Ｃ又はＳＶＯＬ５１００Ｄを意味する。
【０１４６】
Ｓ４００１で、対象プログラムは、ＨＤＥＶテーブル４１００に複製先ＨＤＥＶに対応した新たなエントリを作成するため、ＨＤＥＶ番号４１０１（複製先ＨＤＥＶのＨＤＥＶ番号）を新たに採番し、当該新たなエントリを追加する。
【０１４７】
Ｓ４００２で、対象プログラムは、ＨＤＥＶ論物テーブル４４００に複製先ＨＤＥＶに対応した新たなエントリを作成するため、Ｓ４００１で取得したＨＤＥＶ番号をＨＤＥＶ番号４４０１とした当該新たなエントリを追加する。
【０１４８】
Ｓ４００３で、対象プログラムは、Ｓ４００１で追加したエントリに、複製元ＨＤＥＶに対応した容量４１０２、ＶＯＬ種別４１０３及びプール番号４１０４を複製する。
【０１４９】
Ｓ４００４で、対象プログラムは、Ｓ４００２で追加したエントリに、複製元ＨＤＥＶに対応したＨＤＥＶ論物サブテーブル４４１０を複製し、当該複製されたサブテーブル４４１０を関連付ける。
【０１５０】
Ｓ４００５で、対象プログラムは、Ｓ４００４で関連付けられたＨＤＥＶ論物サブテーブル４４１０を参照し、仮想ＬＢＡ４４１１毎に、ＶＶＯＬ番号４４１２とＬＢＡ４４１３を取得する。
【０１５１】
Ｓ４００６で、対象プログラムは、複製先ＨＤＥＶの仮想ＬＢＡ４４１１毎に、Ｓ４００５で得られたＶＶＯＬ番号とＬＢＡをキーにＨＤＥＶ物論テーブル４５００を参照し、ＨＤＥＶ物論サブテーブル４５１０の該当エントリ（当該キーに一致するエントリ）を特定する。
【０１５２】
Ｓ４００７で、対象プログラムは、Ｓ４００６で特定されたエントリ（ＨＤＥＶ物論サブテーブル４５１０におけるエントリ）に、Ｓ４００５で得られた複製先ＨＤＥＶのＨＤＥＶ番号と仮想ＬＢＡを追加する。これにより、プール５５０１におけるページに、複製元ＶＯＬに関する仮想ＬＢＡに加えて、複製先ＶＯＬに関する同一の仮想ＬＢＡが関連付けられたことになる。
【０１５３】
Ｓ４００８で、対象プログラムは、複製先ＨＤＥＶの終端仮想ＬＢＡまで処理がされていれば、当該仮想複製処理を終える。
【０１５４】
図１５によれば、複製元ＨＤＥＶの論理情報の一部の複製で、複製元ＨＤＥＶから複製先ＨＤＥＶに複製元ＨＤＥＶ内のデータが複製されたことになる。つまり、複製元ＨＤＥＶから複製先ＨＤＥＶへの実際のデータ複製無しに、ＨＤＥＶの複製がされる。なお、Ｓ４００５〜Ｓ４００８の一連の処理は、ＨＤＥＶの複製と同期的に実施されてもよいし、ＨＤＥＶの複製の実施後にＨＤＥＶの複製と非同期的に実施されてもよい。
【０１５５】
以上、一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例のみに限定する趣旨ではない。本発明は他の形態でも実施することが可能である。
【０１５６】
例えば、以上の説明を下記のように総括することができる。
【０１５７】
第１の例示的な観点によれば、ストレージシステム（５００）が、データが入出力される第１のプライマリボリューム（５１００Ａ）を提供する第１のストレージ装置（２０００Ａ）と、第１のプライマリボリュームと第１のレプリケーションペアを構成する第１のセカンダリボリューム（５１００Ｂ）を提供する第２のストレージ装置（２０００Ｂ）とを備える。第１のストレージ装置が、第１のプライマリボリュームへデータのライトまたは更新を行った場合に、第１のレプリケーションペアに基づき、データを第２のストレージ装置に送信する。第１のストレージ装置が、第１のプライマリボリュームのスナップショットである第２のプライマリボリューム（５１００Ｃ）を作成または更新した場合に、第２のストレージ装置が、第１のセカンダリボリュームのスナップショットである第２のセカンダリボリューム（５１００Ｄ）を作成または更新する。すなわち、第２のプライマリボリューム（５１００Ｃ）が作成された場合に、第２のセカンダリボリューム（５１００Ｄ）が作成される、または、第２のプライマリボリューム（５１００Ｃ）が更新された場合に、第２のセカンダリボリューム（５１００Ｄ）が更新される。
【０１５８】
第２の例示的な観点によれば、第１の例示的な観点において、第２のプライマリボリュームと第２のセカンダリボリュームとのペアが、第１のレプリケーションペアの複製としての第２のレプリケーションペアである。第２のレプリケーションペアでは、第１のレプリケーションペアに基づき送受信されたデータのうち、前記第２のレプリケーションペアにて用いるデータを特定するための情報が送受信される。
【０１５９】
第３の例示的な観点によれば、第１または第２の例示的な観点において、第１のレプリケーションペアは、非同期リモートレプリケーションのためのペアである。第１のストレージ装置は、第１のプライマリボリュームに書き込まれたデータの番号である第１のジャーナル番号を含んだ情報である第１のプライマリ論理情報（９００Ａ）を有する。第２のストレージ装置は、第１のプライマリボリュームについて第１のストレージ装置から受信したデータの番号と第１のセカンダリボリュームに反映されたデータの番号とのうちの少なくとも１つである第２のジャーナル番号を含んだ第１のセカンダリ論理情報（９００Ｂ）を有する。第２のストレージ装置が、第２のプライマリ論理情報（９００Ｃ）と第２のセカンダリ論理情報（９００Ｄ）との差分から特定される第２のプライマリボリュームの第２のセカンダリボリュームとの間の差分に相当するデータである差分データを、第２のセカンダリボリュームに反映する。第２のプライマリ論理情報は、第２のプライマリボリュームが作成または更新されたときに、第１のプライマリ論理情報に基づいて更新される。第２のセカンダリ論理情報は、第２のセカンダリボリュームが作成または更新されたときに、第１のセカンダリ論理情報に基づいて更新される。第１のプライマリ論理情報は、一つ以上の第１のジャーナル番号を含んでよく、当該一つ以上の第１のジャーナル番号は、第１のプライマリボリュームに最近書き込まれたデータの番号を第１のジャーナル番号の一つとして少なくとも含んでよく、その他に、それよりも過去に書き込まれたデータの番号を第１のジャーナル番号として含んでよい。第１のセカンダリ論理情報は、一つ以上の第２のジャーナル番号を含んでよく、当該一つ以上の第２のジャーナル番号は、第１のプライマリボリュームについて第１のストレージ装置から最近受信したデータの番号と第１のセカンダリボリュームに最近反映されたデータの番号とのうちの少なくとも１つを第２のジャーナル番号の一つとして少なくとも含んでよく、その他に、それよりも過去に受信したデータの番号と過去に反映されたデータの番号の少なくとも一つを第２のジャーナル番号として含んでよい。
【０１６０】
第４の例示的な観点によれば、第３の例示的な観点において、第２のストレージ装置が、第１のプライマリボリュームについて第１のストレージ装置から受信したデータを第１のセカンダリボリュームに反映することであるジャーナル反映を行う前に、第２のセカンダリボリュームを作成する。第２のストレージ装置が、第１のセカンダリボリュームへのジャーナル反映後に、第２のプライマリ論理情報と第２のセカンダリ論理情報との間の差分から特定される差分データを第２のセカンダリボリュームに反映する。
【０１６１】
第５の例示的な観点によれば、第３の例示的な観点において、差分データの第２のセカンダリボリュームへの反映において、第２のストレージ装置が、第２のセカンダリ論理情報と第１のセカンダリ論理情報とを比較する。第２のセカンダリ論理情報と第１のセカンダリ論理情報とに差分がある場合には、第２のストレージ装置が、当該差分から特定される第２のストレージ装置が有するデータを第２のセカンダリボリュームへ反映する。
【０１６２】
第６の例示的な観点によれば、第２の例示的な観点において、第１のストレージ装置が、第２のプライマリボリュームを格納先としたデータのうちいずれの他のボリュームからも参照されないデータの属性を専有として管理する。第２のストレージ装置が、第２のセカンダリボリュームを格納先としたデータのうちいずれの他のボリュームからも参照されないデータの属性を専有として管理する。第２のレプリケーションペアが削除対象の場合、第１のストレージ装置が、第２のプライマリボリュームを格納先としたデータのうち前記第２のプライマリボリュームについて属性が専有のデータを削除し、且つ、第２のストレージ装置が、第２のセカンダリボリュームを格納先としたデータのうち第２のセカンダリボリュームについて属性が専有のデータを削除する。
【０１６３】
第７の例示的な観点によれば、第１乃至第６の例示的な観点のいずれかにおいて、第１のストレージ装置は、第１のプライマリボリュームに書き込まれたデータについてのハッシュ値を各論理アドレスについて含んだ情報である第１のプライマリ論物情報（４４００）を有する。第２のストレージ装置は、第１のセカンダリボリュームに書き込まれたデータについてのハッシュ値を各論理アドレスについて含んだ情報である第１のセカンダリ論物情報（４４００）を有する。第２のストレージ装置が、第２のプライマリ論物情報と第２のセカンダリ論物情報との差分から特定され第２のストレージ装置に既に存在するデータを、第２のセカンダリボリュームに反映する。第２のプライマリ論物情報は、第２のプライマリボリュームが作成または更新されたときに、第１のプライマリ論物情報に基づいて更新される。第２のセカンダリ論物情報は、第２のセカンダリボリュームが作成されたときに、第１のセカンダリ論物情報に基づいて更新される。
【０１６４】
第８の例示的な観点によれば、第７の例示的な観点において、第２のセカンダリボリュームの複数の論理アドレスのうち、第２のプライマリボリュームとの間でそれぞれハッシュ値が異なる１以上の論理アドレスの各々について、第２のストレージ装置が、当該論理アドレスの参照先を、第２のプライマリボリュームについてのハッシュ値と同一のハッシュ値のデータが存在する領域とすることで、当該データを第２のセカンダリボリュームに反映する。
【符号の説明】
【０１６５】
２０００：ストレージ装置
１００３：ホスト
１００４：管理サーバ
【図１】
2020052464.tif 000003
【図２Ａ】
2020052464.tif 000004
【図２Ｂ】
2020052464.tif 000005
【図２Ｃ】
2020052464.tif 000006
【図３】
2020052464.tif 000007
【図４】
2020052464.tif 000008
【図５】
2020052464.tif 000009
【図６】
2020052464.tif 000010
【図７】
2020052464.tif 000011
【図８】
2020052464.tif 000012
【図９】
2020052464.tif 000013
【図１０】
2020052464.tif 000014
【図１１】
2020052464.tif 000015
【図１２】
2020052464.tif 000016
【図１３】
2020052464.tif 000017
【図１４Ａ】
2020052464.tif 000018
【図１４Ｂ】
2020052464.tif 000019
【図１５】
2020052464.tif 000020