WO2015125227A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2015125227A1
WO2015125227A1 PCT/JP2014/053885 JP2014053885W WO2015125227A1 WO 2015125227 A1 WO2015125227 A1 WO 2015125227A1 JP 2014053885 W JP2014053885 W JP 2014053885W WO 2015125227 A1 WO2015125227 A1 WO 2015125227A1
Authority
WO
WIPO (PCT)
Prior art keywords
journal
volume
primary
ownership
storage device
Prior art date
Application number
PCT/JP2014/053885
Other languages
English (en)
French (fr)
Inventor
純 宮下
伸一 平松
武藤 淳一
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/053885 priority Critical patent/WO2015125227A1/ja
Publication of WO2015125227A1 publication Critical patent/WO2015125227A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本発明のストレージシステムは、正ストレージ装置、副ストレージ装置の間でジャーナルを利用した、ボリュームのリモートコピーを行う。正ストレージ装置、副ストレージ装置ともに複数のプロセッサボード(MPB)を有し、各MPBにジャーナルボリュームを割り当てる。正ストレージ装置の各MPBは、自身がオーナ権を持つ正ボリュームへのライトデータからジャーナルを生成し、自身に割り当てられたジャーナルボリュームに対してジャーナルを格納し、副ストレージ装置に送信する。副ストレージ装置の各MPBは、自身に割り当てられたジャーナルボリュームに格納されたジャーナルを、副ボリュームに対して反映する。また、正ストレージ装置では、各ジャーナルボリュームに定期的にタイムスタンプを挿入し、副ストレージ装置では各ジャーナルボリュームに挿入されている共通のタイムスタンプのうち、最大値を有するタイムスタンプ以前に格納されているジャーナルを副ボリュームへ反映させる処理を行う。

Description

ストレージシステム
 本発明は、ストレージ装置間のボリュームコピー技術に関する。
 ITの進歩やインターネットの普及などにより、企業等における計算機システムが扱うデータ量は増加を続けており、データを格納するストレージ装置に対しても、高い性能が要求されている。そのため、中規模以上のストレージ装置(ストレージシステム)では、データアクセス要求を処理するコントローラ/プロセッサを複数搭載する構成をとるものが多い。
 一般に、複数のプロセッサ搭載するストレージ装置の場合、ストレージ装置の有する各ボリュームに対するアクセス要求の処理を担当するプロセッサは、あらかじめ一意に決定されている。以下、複数のプロセッサ(プロセッサ1、プロセッサ2)を有するストレージ装置において、あるボリュームAに対するアクセス要求の処理を担当するプロセッサが、プロセッサ1であった場合、「プロセッサ1はボリュームAのオーナ権を持つ」と表現する。ストレージ装置に接続されるホスト計算機からボリュームAに対するアクセス(たとえばリード要求)を、オーナ権を持たないプロセッサが受信した場合、オーナ権を持たないプロセッサは一旦、オーナ権を持つプロセッサにアクセス要求を転送し、オーナ権を持つプロセッサでアクセス要求の処理を行い、処理結果をオーナ権を持たないプロセッサに返送する、という処理が行われるため、オーバヘッドが大きい。性能低下の発生を回避するため、特許文献1ではオーナ権を有するコントローラ/プロセッサに対してアクセス要求を割り振る専用ハードウェア(LR:ローカルルータ)を備えたストレージシステムについて開示している。特許文献1におけるストレージ装置では、ホストからボリュームアクセスコマンドを受領するホスト(チャネル)インタフェース(I/F)に備えられたLRは、オーナ権を有するコントローラ/プロセッサを特定し、そのコントローラ/プロセッサに対してコマンドを転送する。これにより複数のプロセッサに適切に処理を割り振ることを可能としている。
特表2013-517537号公報
 ところで高可用性を要求されるシステムでは、正ストレージ装置のボリューム(正ボリューム)の複製を副ストレージ装置のボリューム(副ボリューム)に格納するという、いわゆるリモートコピー技術が用いられることが多い。リモートコピー技術の実現態様として、ジャーナルを利用したリモートコピー技術がある。この技術では、ホスト計算機から正ボリュームへ書き込まれたデータをジャーナルとして、正ストレージ装置内のジャーナルボリューム(正ジャーナルボリューム)というボリュームにも格納する。そして、ジャーナルボリュームに格納されたジャーナルを、副ストレージ装置のジャーナルボリューム(副ジャーナルボリューム)に転送し、副ストレージ装置では、副ジャーナルボリュームに格納されたジャーナルに基づいて、副ボリュームへのデータ更新を行う。
 また、リモートコピー技術における複製対象ボリュームの数は1つに限定されず、複数の正ボリュームの複製を副ストレージ装置に作成可能である。プロセッサを複数搭載可能なストレージ装置の場合、ボリュームの数が増えても当該ボリュームのアクセス処理(リード・ライト処理)を担当するプロセッサを増加させることで、負荷分散が可能である。ただしジャーナルを利用したリモートコピー技術では、正ストレージ装置の複数のボリュームに対する更新は、正ジャーナルボリュームへ格納され、副ジャーナルボリュームへと転送される。そしてジャーナルボリュームに対するオーナ権を持つプロセッサは1つだけであるため、複製対象ボリュームの数が増加した場合、ストレージ装置に搭載するプロセッサ数を増やしても、ジャーナルボリュームに対する処理が性能上のボトルネックとなる。
 さらに、正ボリュームと正ジャーナルボリュームのオーナ権を持つプロセッサがそれぞれ異なる場合、正ボリュームに格納されたデータの複製をジャーナルボリュームに格納する処理を行う時に、正ボリュームのオーナ権を持つプロセッサと正ジャーナルボリュームのオーナ権を持つプロセッサの間で要求のやり取り(通信)が発生し、処理性能の悪化を招く。
 また、リモートコピー技術で求められる要件の一つに、データ一貫性の保証があげられる。ここでいうデータ一貫性とは、副ストレージ装置の各副ボリュームに格納される複製データが、ホスト計算機から正ストレージ装置の各正ボリュームに対して書き込まれる各データの書き込み順と同じ順で、副ストレージ装置の各副ボリュームに格納されることを保証することである。特にミッションクリティカルシステムでは、障害発生時の回復等を考慮して、ホスト計算機からストレージ装置にライトされた各データが、ライト要求の発行順にストレージ装置の記憶媒体に格納されることを期待して設計されていることがある。そのため、正ストレージ装置において、最初にボリュームにデータaを書き込み、その後データbを書き込んだ場合、副ストレージ装置のボリュームにも、データaがデータbより先に書き込まれることが期待される。逆にデータbがデータaより先に書き込まれ、データbが書き込まれた直後に障害が発生した場合、副ストレージ装置のボリュームに格納された複製データにデータ一貫性がなく、業務継続できない事態が発生することがある。ジャーナルボリュームに対するオーナ権を持つプロセッサが1つだけの場合、当該1つのプロセッサが書き込み順序を管理すればよいため、データ一貫性の保証は比較的容易であるが、たとえばジャーナルボリュームに対する処理の負荷分散のために、ジャーナルボリュームに対する処理を複数プロセッサに担当させるようにすると、データ一貫性を保証することが難しくなる。
 本発明の目的は、ジャーナルを利用したリモートコピーの性能を向上させ、かつデータ一貫性の保証を可能にすることにある。
 上記課題を解決するために、本発明のストレージシステムは、正ストレージ装置、副ストレージ装置の複数のプロセッサごとにジャーナルボリュームを割り当て、正ストレージ装置の各プロセッサは、自身がオーナ権を持つ正ボリュームへのライトデータからジャーナルを生成し、自身に割り当てられたジャーナルボリュームに対してジャーナルを格納し、副ストレージ装置に送信する。副ストレージ装置の各プロセッサはそれぞれ、自身に割り当てられたジャーナルボリュームに格納されたジャーナルを、副ボリュームに対して反映する。
 また、本発明の正ストレージ装置では、各ジャーナルボリュームに定期的にタイムスタンプを挿入し、副ストレージ装置では各ジャーナルボリュームに挿入された共通のタイムスタンプより前に格納されているジャーナルを副ボリュームへ反映させる処理を行う。
 本発明のストレージシステムでは、リモートコピー処理の負荷を複数のプロセッサに分散でき、性能向上を可能とするとともに、データ一貫性の保証を可能としている。
本発明の一実施形態に係るストレージシステムの構成図である。 論理ボリューム管理テーブルの内容を示す。 ペア管理テーブルの内容を示す。 従来のストレージ装置において、ジャーナルを利用したリモートコピーを実行する場合の、各ボリュームとMPBとの関係を表した図である。 本発明の実施例に係るストレージシステムにおける、各ボリュームとMPBとの関係を説明する図である。 反映ジャーナルボリュームテーブルの内容を示す。 ジャーナルの構造の概要を説明する図である。 シーケンス番号管理テーブルの内容を示す。 メタデータのフォーマットを示す。 ジャーナル作成処理のフローを示す。 タイムスタンプ挿入処理のフローを示す。 格上げ処理のフローを示す。 ジャーナルボリュームに格納されたデータの一例を示す。 オーナ権移動情報テーブルの内容を示す。 順序制御用テーブルの内容を示す。 P-VOLのオーナ権が変更された時の、正ストレージ装置10aの実行する処理の流れを示す。 RESTARTマーカ格納処理のフローを示す。 P-VOLまたはS-VOLのオーナ権が変更された場合の、副ストレージ装置におけるジャーナル格上げ処理のフローを示す。 ジャーナルボリュームにENDマーカ、RESTARTマーカが格納された場合の状態の一例を示す。
 以下、図面を参照して、本発明の一実施形態に係るストレージシステムを説明する。なお、本発明は、以下に説明する実施形態に限定されるものではない。
 図1は、本発明の一実施形態に係るストレージシステムの構成を示す。ストレージシステムは、ホスト2からのI/O要求を受け付ける正ストレージ装置10a、正ストレージ装置10aに接続される副ストレージ装置10b、管理端末13からなる。
 正ストレージ装置10aは、たとえばファイバチャネルケーブル6等の伝送線によってホスト2や副ストレージ装置10bと接続されるとともに、イーサネット5等の伝送線によって管理端末13と接続される。図1では、正ストレージ装置10aとホスト2または副ストレージ装置10bの間に伝送線しか記載されていないが、正ストレージ装置10aとホスト2または副ストレージ装置10bの間に、スイッチやチャネルエクステンダ等の機器が接続されている構成でも良い。また、正ストレージ装置10aと管理端末13の間にも、スイッチが挿入される構成もあり得る。
 正ストレージ装置10aは、ストレージコントローラ(以下、「コントローラ」と略記することもある)11と複数のドライブ121を備えるディスクユニット12から構成される。ストレージコントローラ11は、正ストレージ装置10aで行われるI/O処理などの制御を実行するプロセッサボードであるMPB111、ホスト2や副ストレージ装置10bとのデータ転送インタフェースであるチャネルアダプタ(CHA)112、ディスクユニット12とのデータ転送インタフェースであるディスクアダプタ(DKA)113、キャッシュデータや制御情報などを格納するメモリを備えたメモリパッケージ(CMPK)114が、スイッチ(SW)115で相互接続された構成をとる。各構成要素(MPB111、CHA112、DKA113、CMPK114)の数は、図1に示された数に限定されるものではないが、高可用性の確保のため、通常各構成要素は複数存在する。また、これら構成要素を後で増設することも可能である。
 各MPB111は、1以上(たとえば4個、8個等)のプロセッサ(MPとも呼ばれる)141と、当該プロセッサ141が使用するデータを格納するローカルメモリ142を有する、プロセッサパッケージボードである。またローカルメモリ142には、MPB111内の各MP141が共有アクセス可能な領域と、特定のMP141だけがアクセスする専用領域の、2種類の領域が存在する。本明細書では、各MP141が共有アクセス可能な領域のことをPMと呼び、特定のMP141だけがアクセスする専用領域のことをLMと呼ぶ。そしてローカルメモリ142のことを、LM/PM142と表記することもある。
 CMPK114は、ホスト2からのライトデータやドライブ121から読み出されたデータを一時格納する、いわゆるディスクキャッシュとして用いられる領域であるCM144と、MPB111が使用する制御情報等を格納する領域であるSM143とを有する。SM143に格納される情報は、全MPB111の全MP141からアクセス可能である。CMPK114は、停電等の障害が発生してもデータ消失を防ぐためにバッテリバックアップ等の手段を備えていてもよい。
 ディスクユニット12には複数のドライブ121を備え、各ドライブ121には主にホスト2からのライトデータが格納される。ドライブ121には、一例としてHDDなどの磁気ディスクが用いられるが、SSD(Solid State Drive)等、HDD以外の記憶媒体を用いてもよい。
 副ストレージ装置10bは、正ストレージ装置10aと同様の構成要素を有する装置である(図1では内部構成の記載を省略している)。ただし、各構成要素(MPB111、CHA112、ドライブ121等)の数は正ストレージ装置10aと同じである必要はない。以下、正ストレージ装置10a、副ストレージ装置10bが共通に備えている機能等を説明する場合、正ストレージ装置10a、副ストレージ装置10bを区別せず、「ストレージ装置10」と表記する。なお、図1では明示していないが、副ストレージ装置10bにも管理端末が接続される。この管理端末は、正ストレージ装置10aに接続される管理端末と別の端末である場合もあれば、正ストレージ装置10aに接続される管理端末が、伝送線によって副ストレージにも接続されている構成であってもよい。
 続いて、本発明の実施例1におけるストレージ装置10(正ストレージ装置10a、副ストレージ装置10b)で取り扱うボリューム、及びリモートコピー機能について説明する。まずボリュームについて説明する。ストレージ装置10は、自身のディスクユニット12に存在する複数のドライブ121の中の2以上のHDDを用いてRAIDグループを形成する。そしてRAID技術に基づいたデータ格納、つまりホスト2からのライトデータを所定サイズ(たとえば16KB等)に分割し、分割されたデータからパリティ(冗長データ)を生成し、分割されたデータと、生成されたパリティとをRAIDグループ内の各HDDに格納する処理を行う。またストレージ装置10は、1つのRAIDグループの記憶領域を1または複数の論理ボリューム(LDEVとも呼ばれる)としてホスト2に提供する(ホストからアクセス可能な状態にする)態様をとる。これらの処理は、MP141で実行される制御プログラムの働きにより、実現される。なお、これらの処理は周知のストレージ装置で行われている処理であり、また本発明のリモートコピー処理と直接関係のない処理であるので、詳細な説明は行わない。
 図2に示す論理ボリューム管理テーブル200は、ストレージ装置10内の各論理ボリュームを管理するためのテーブルである。各論理ボリュームには各ストレージ装置10内で一意な識別番号が付されており、それを論理ボリューム番号と呼ぶ(LDEV#あるいはVOL#と呼ばれることもある)。また詳細は後述するが、本発明の実施例1に係るストレージ装置10では、各論理ボリュームに対する処理(データリード、ライト処理等)を担当する権利を有するMPB111が一意に定められており、論理ボリューム管理テーブル200には、各論理ボリューム200-1に対する処理を担当する権利を有するMPB111(200-2)の情報(識別番号)が格納される。論理ボリューム管理テーブル200は、正ストレージ装置10a、副ストレージ装置10bそれぞれが有する情報で、各ストレージ装置10のSM143に格納される。
 なお正ストレージ装置10aが管理している論理ボリューム管理テーブル200には、正ストレージ装置10aが管理する各論理ボリュームの情報(LDEV#)と、各論理ボリュームに対する処理を担当する権利を有する正ストレージ装置10aのMPB111についての情報が格納されており、副ストレージ装置10bが管理している論理ボリューム管理テーブル200には、副ストレージ装置10bが管理する各論理ボリュームの情報(LDEV#)と、各論理ボリュームに対する処理を担当する権利を有する副ストレージ装置10bのMPB111についての情報が格納されている。
 ストレージ装置10における、論理ボリュームに対する処理の概要を説明する。たとえばホスト2からボリュームに対するアクセス要求を受信した場合を例にとる。ホスト2が論理ボリューム(たとえばLDEV#が0番であるとする)に対するリード要求を発行すると、当該要求はホスト2が接続されているCHA112により受信される。CHA112内には、論理ボリューム管理テーブル200と同様の情報、つまり各論理ボリュームの処理を担当するMPB111の情報を保持している(なお、論理ボリューム管理テーブル200の内容が更新されると、CHA112が有する情報も更新される)。CHA112はこの情報をもとに、アクセス要求をMPB111に転送する。図2の例では、LDEV#(200-1)が0番の論理ボリュームの処理を担当する権利を持つMPB#(200-2)は1番であるので、1番のMPB111に要求が転送される。
 その後、要求を受信したMPB111が当該論理ボリュームに対するリード要求の処理を行う。具体的にはドライブ121からデータをCM144に読み出し、読み出されたCM144上のデータを、CHA112を経由してホスト2に返送する。以下、論理ボリュームの処理を担当する権利のことを「オーナ権」と呼び、論理ボリューム管理テーブル200が管理する、各論理ボリューム200-1に対する処理を担当するMPB111(200-2)の情報のことをオーナ権情報と呼ぶ。そして図2の論理ボリューム管理テーブル200に記載の例では、LDEV#(200-1)が0番の論理ボリュームの処理を担当するMPB#(200-2)は1番だが、この場合、1番のMPB111がLDEV#が0番のボリュームのオーナ権を有するMPBである、と表現する。
 なお、ここではリード処理について中心に説明したが、ホスト2からライト要求を受信した場合にも同様に、CHA112が適切な(ライト対象論理ボリュームのオーナ権を有する)MPB111に要求を転送し、オーナ権を有するMPB111が論理ボリュームに対するライト処理を行うことができる。また、各論理ボリュームに対するオーナ権は、ストレージシステムの管理者が管理端末等を用いて設定するが、別の実施態様として、ストレージシステム(正副ストレージ装置10a、10b)のMPB111が自動的に設定できるようにしてもよい。いずれの場合にも、論理ボリュームにオーナ権が設定されると、論理ボリューム管理テーブル200に、オーナ権を有するMPBの番号がMPB#(200-2)に登録される。
 また、上の説明では、「MPBが…処理を行う」のように、MPBが動作主体となって各種処理を行っているかのような説明がなされている箇所があるが、実際に各種処理を行う動作主体は、MPB111に搭載されているいずれかのプロセッサ141である。そして、あるMPBがあるLDEVのオーナ権を有すると定義された場合、当該MPB内の任意のプロセッサが、当該LDEVについての処理をすることができる。そのため、本明細書では、「MPBが…処理を行う」と記載されている箇所は、特に断りのない限り、MPB内の任意のプロセッサが処理を行うことを表すものとする。
 続いてリモートコピー機能について概要を説明する。本発明の実施例1に係るストレージ装置10では、ジャーナルを用いたリモートコピーを行う。ジャーナルを用いたリモートコピーは、たとえば米国特許出願公開第2005/0073887号明細書等に開示されている機能であるので、以下では本発明に関係する部分の概要のみ説明する。
 リモートコピー機能は、正ストレージ装置10aの論理ボリューム(LDEV)のデータの複製(ミラーコピー)を副ストレージ装置10bの論理ボリューム(LDEV)に作成する機能である。本明細書では、複製対象となる正ストレージ装置10aの論理ボリュームのことをプライマリボリューム(P-VOL)と呼び、P-VOLのデータの複製先である副ストレージ装置10bの論理ボリュームのことを、セカンダリボリューム(S-VOL)と呼ぶ。またP-VOLの複製データが格納されるS-VOLのことを、P-VOLと「ペア関係にあるボリューム」と呼ぶ(逆に、S-VOLの複製元データが格納されているP-VOLも、当該S-VOLとペア関係にあるボリューム、と呼ばれることもある)。そしてP-VOL及び当該P-VOLの複製データが格納されるS-VOLの組のことを、「ペア」あるいは「ペアボリューム」と呼ぶ。
 図3にペア管理テーブル300の構成を示す。ストレージ装置10では、各ペアに識別子を付して管理しており、この識別子をペア番号と呼ぶ。そしてペア管理テーブル300には、各ペアのP-VOL、S-VOLの情報(P-VOLの属するストレージ装置を特定可能な識別番号であるPDKC#(303)、P-VOLのLDEV#(304)、S-VOLの属するストレージ装置を特定可能な識別番号であるSDKC#(305)、S-VOLのLDEV#(306))を管理する。またペア管理テーブル300内にある「状態(302)」の欄には、各ペアの状態(コピーが行われている状態であるか否か等)を表す情報が格納される。また、MPB#(307)の欄には、S-VOLのオーナ権を持つ、副ストレージ装置10bのMPBの番号が格納される。このテーブルは正ストレージ装置10a、副ストレージ装置10b双方のSM143に存在し、いずれのSM143にも同内容のテーブルが格納される。
 ジャーナルを用いたリモートコピーでは、正副ストレージ装置(10a、10b)それぞれに、コピーデータを一時的に格納するためのボリュームを用意する。このボリュームのことをジャーナルボリューム(JVOLと呼ばれることもある)と呼ぶ。ジャーナルボリュームには、P-VOLやS-VOLと同じく、論理ボリューム(LDEV)が用いられる。ただし、P-VOLやS-VOLはそれぞれ、正ストレージ装置10a、副ストレージ装置10bに接続されたホスト計算機(ホスト2など)に提供される(ホスト計算機からアクセス可能な)ボリュームであって、ストレージシステムの管理者によって、ホスト2からアクセス可能なように設定されている論理ボリュームであるのに対し、ジャーナルボリュームはホスト2などのホスト計算機から直接アクセスされることのない(ホスト2からアクセス可能に設定されていない)ボリュームである。
 ジャーナルを用いたリモートコピーによるコピー処理の流れは以下の通りである。正ストレージ装置10aがホストからP-VOLに対するライト要求及び当該ライト要求で指定されたライトデータを受け付けると、正ストレージ装置10aはP-VOLにライトデータを格納する処理を実行するとともに、ライトデータの複製の作成を行う。この作成されたライトデータの複製は、先入れ先出し(FIFO)の要領で正ストレージ装置10aのJVOL(正ジャーナルボリュームまたは正JVOLとも呼ばれる)に格納される。またライトデータの複製が正ジャーナルボリュームに格納される際、各ライトデータの複製には、その書き込み順を示す番号であるシーケンス番号等のメタデータが付されて格納される。正ジャーナルボリュームのデータはその後、ファイバチャネルケーブル6を介して副ストレージ装置10bに接続されているCHA112を経由して、副ストレージ装置10bに送信され、副ストレージ装置10bのジャーナルボリューム(副ジャーナルボリュームまたは副JVOLとも呼ばれる)に書き込まれる。副ストレージ装置10bでは、たとえば定期的に副ジャーナルボリュームからデータを取出し、データに付されているシーケンス番号に従って、順番にS-VOLにデータを格納していく。これによりP-VOLからS-VOLへのデータ複製(ミラーリング)が実現される。
 この処理の流れと、先に述べたボリュームのオーナ権の関係を、図4を用いて説明する。図4は、従来のストレージシステム(正ストレージ装置Mと副ストレージ装置R。以下、正ストレージ装置MのことをMCU、副ストレージ装置RのことをRCUと呼ぶこともある)において、ジャーナルを利用したリモートコピーを実行する場合の、各ボリュームとMPBとの関係を表した概念図である。MPB#0~MPB#3と記されたボックスが、ストレージ装置のMPBを表し(MPB#Xとは、番号XのMPBであることを表す)、当該ボックス中に記載された円筒形のオブジェクトがそれぞれ、ボリューム(P-VOL、S-VOL、JVOL)を表している。また、図中の点線はデータの流れを表している。
 また、たとえば図4の中のP-VOL(401)はMPB#0のボックス中に記載されているが、これはP-VOL(401)のオーナ権をMPB#0が持つことを表している。また、正ストレージ装置M、副ストレージ装置Rの両方において、JVOLがMPB#0のボックス内に記載されているが、これは正JVOL、副JVOLのオーナ権をそれぞれ、正ストレージ装置MのMPB#0、副ストレージ装置RのMPB#0が持つことを表している。なお本明細書では、あるボリューム(仮にボリュームVとする)のオーナ権をMPB#X(番号XのMPB)が有している状態のことを、「ボリュームVがMPB#Xに割り当てられている」と呼ぶこともある。たとえば図4の構成では、P-VOL(401)のオーナ権をMPB#0が持つので、P-VOL(401)がMPB#0に割り当てられている、と表現することもある。
 従来のストレージシステムにおけるジャーナルを利用したリモートコピーでは、ストレージ装置内の特定の1つのMPBだけが、ジャーナルボリュームに対するオーナ権を持つ(図4の例ではMPB#0)。そのため、ホストから各ボリューム401~404にデータが書き込まれた時、各ボリューム401~404へのデータの書き込み処理(ディスクキャッシュにデータを格納したり、ディスクキャッシュ上のデータをドライブに書き込む等の処理)は、当該ボリュームに対するオーナ権を有するMPBが実行する。しかし、ジャーナルを利用したリモートコピーに係る処理、つまりボリュームに書き込まれるデータの複製を作成して当該複製を正JVOLに格納する処理や、正ストレージ装置のJVOLのデータを副JVOLに転送する等の処理は、ジャーナルボリュームに対するオーナ権を持つMPB#0だけが行う。また副ストレージ装置10bにおいても、ジャーナルを利用したリモートコピーに係る処理(正ストレージ装置10aから転送されてくるデータを副JVOLに格納し、当該格納されたデータの内容をS-VOLに反映する処理)は、副JVOLのオーナ権を有する(副ストレージ装置の)MPB(MPB#0)が実施する。そのために、ジャーナルを利用したリモートコピーに係る処理を行うMPBが性能上のボトルネックとなり、スケーラビリティに欠ける。
 図5を用いて、本発明の実施例1に係るストレージシステムにおいて、ジャーナルを利用したリモートコピーを実行する場合の、各ボリュームとMPBとの関係を説明する。図中、<1>~<5>の番号が付されたオブジェクト(ボリューム)はP-VOLを表し、<1’>~<5’>の番号が付されたオブジェクト(ボリューム)はS-VOLを表している。そしてA~Pの符号が付されたオブジェクト(ボリューム)は正ストレージ装置10aのJVOL(正JVOL)、A’~P ’の符号が付されたオブジェクト(ボリューム)は副ストレージ装置10bのJVOL(副JVOL)を表す。
 従来のストレージシステムと異なる点は、各MPB111に複数のジャーナルボリュームのオーナ権が割り当てられている点である。この構成では、各ジャーナルボリュームに対する処理(ジャーナルの生成、格納等)は、当該ジャーナルボリュームのオーナ権が割り当てられているMPBが担当するので、リモートコピーによるコピー対象ボリューム(P-VOL、S-VOL)の数が増加しても、特定のMPBに負荷が集中することがないという利点がある。なお、各MPBに割り当てられるP-VOL、S-VOLの数も、1つに限定されない。
 理由は後述するが、本発明の実施例1に係るストレージシステムでは、正ストレージ装置10aの各MPB111に割り当てられている正ジャーナルボリュームの数は、副ストレージ装置10bのMPB111の数に等しくなるように、ストレージシステムが設定される必要がある。同様に、副ストレージ装置10bの各MPB111に割り当てられている副ジャーナルボリュームの数も、正ストレージ装置10aのMPB111の数に等しくなるように、ストレージシステムが設定される必要がある。そのため、リモートコピー機能を実行する前には、正副ストレージ装置10a、10bのそれぞれに、正ストレージ装置10aの持つMPBの数と、副ストレージ装置10bの持つMPBの数の積に等しい数のジャーナルボリュームが用意されている必要がある。ジャーナルボリュームの用意は、ストレージシステムの管理者が管理端末を用いて、未使用のボリューム(ホスト2からアクセスされるボリュームとして設定されていないボリューム)をジャーナルボリュームとして設定する方法を採用してもよいし、あるいはストレージ装置10a、10bのMPB111が、リモートコピー機能が実行される(たとえばP-VOLとS-VOLのペア関係が定義される等)ことを契機に、自動的に未使用のボリュームをジャーナルボリュームとして設定する方法を採ってもよい。また、本発明の実施例1に係るストレージシステムでは、ジャーナルボリュームとして選定されたボリュームの情報(論理ボリューム番号等)を、後述する反映ジャーナルボリュームテーブル500に格納して管理する。
 図6を用いて、各ジャーナルボリュームの用途について説明する。図6に記載のテーブル(反映ジャーナルボリュームテーブル500)は、正ストレージ装置10a及び副ストレージ装置10bの持つ全ジャーナルボリュームについての情報を格納したテーブルである。正ストレージ装置10aのMPBは、作成したジャーナルをジャーナルボリュームに格納する際には、このテーブルを参照して、格納先ジャーナルボリュームを一意に特定する。この情報は正ストレージ装置10a及び副ストレージ装置10bのSM143に格納されている。
 反映ジャーナルボリュームテーブル500は、テーブル500-1、テーブル500-2という、2つのテーブルから成る。VOL#(501)、P-VOLオーナ権を持つMPB#(502)、S-VOLオーナ権を持つMPB#(503)の項目からなるテーブル500-1は、正ストレージ装置10a内の各ジャーナルボリュームについての情報を格納するためのテーブルである。またVOL#(511)、P-VOLオーナ権を持つMPB#(512)、S-VOLオーナ権を持つMPB#(513)の項目からなるテーブル500-2は、副ストレージ装置10b内の各ジャーナルボリュームについての情報を格納するためのテーブルである。VOL#(501)、VOL#(511)はそれぞれ、正ストレージ装置10a、副ストレージ装置10b内のジャーナルボリュームの論理ボリューム番号を格納する欄である。
 そしてテーブル500-1の各行は、P-VOLオーナ権を持つMPB#(502)で特定されるMPB(正ストレージ装置10aのMPB)がP-VOLのオーナ権を持っており、かつS-VOLオーナ権を持つMPB#(503)で特定されるMPB(副ストレージ装置10bのMPB)がS-VOLのオーナ権を持っているペアボリュームについてのジャーナルが、VOL#(501)で特定される論理ボリューム番号のジャーナルボリュームに格納されることを表している。同様に、テーブル500-2の各行は、P-VOLオーナ権を持つMPB#(512)で特定されるMPB(正ストレージ装置10aのMPB)がP-VOLのオーナ権を持っており、かつS-VOLオーナ権を持つMPB#(513)で特定されるMPB(副ストレージ装置10bのMPB)がS-VOLのオーナ権を持っているペアボリュームについてのジャーナル(正ストレージ装置10aから送信されてくるジャーナル)が、VOL#(511)で特定される論理ボリューム番号のジャーナルボリュームに格納されることを表している。
 たとえばテーブル500-1を参照すると、VOL#(501)がAの行には、P-VOLオーナ権を持つMPB#(502)の欄に0、S-VOLオーナ権を持つMPB#(503)の欄に0が格納されている。これは、論理ボリューム番号がAのジャーナルボリューム(ジャーナルボリュームA)には、(正ストレージ装置10aの)0番のMPBに割り当てられているP-VOLのうち、(副ストレージ装置10bの)0番のMPBに割り当てられているS-VOLとペア関係にあるP-VOLへのライトデータに基づいて生成されるジャーナルが格納されることを表している。またテーブル500-2を参照すると、VOL#(511)がB’の行には、P-VOLオーナ権を持つMPB#の欄(512)に0、S-VOLオーナ権を持つMPB#(513)の欄に1が格納されている。これは、論理ボリューム番号がB’のジャーナルボリューム(ジャーナルボリュームB’)には、(正ストレージ装置10aの)0番のMPBに割り当てられているP-VOLのうち、(副ストレージ装置10bの)1番のMPBに割り当てられているS-VOLとペア関係にあるP-VOLへのライトデータに基づいて生成されるジャーナルが格納されることを表している。
 このように、本発明の実施例1に係るストレージシステムではジャーナルの格納先が、P-VOLのオーナ権を持つMPBのMPB#とS-VOLのオーナ権を持つMPBのMPB#とに依存しているため、正ストレージ装置10aの各MPB111に割り当てられるジャーナルボリュームを、副ストレージ装置10bのMPB111の数と同数用意し、副ストレージ装置10bの各MPB111に割り当てられるジャーナルボリュームも、正ストレージ装置10aのMPB111の数と同数用意することにしている。そしてジャーナルボリュームを用意する(未使用のボリュームをジャーナルボリュームとして設定する)際には、ストレージシステムの管理者がジャーナルボリュームの設定をする場合であっても、ストレージ装置のMPBが設定をする場合であっても、反映ジャーナルボリュームテーブル500に格納すべき内容(正ストレージ装置10aのジャーナルボリュームの場合には、P-VOLオーナ権を持つMPB#(502)、S-VOLオーナ権を持つMPB#(503)の情報。副ストレージ装置10bのジャーナルボリュームの場合には、P-VOLオーナ権を持つMPB#(512)とS-VOLオーナ権を持つMPB#(503)の情報)に格納されるMPB#も同時に決定して、反映ジャーナルボリュームテーブル500に当該決定した内容を格納する必要がある。同様に未使用のボリュームを副ストレージ装置10bのジャーナルボリュームとして設定する際には、P-VOLオーナ権を持つMPB#(512)とS-VOLオーナ権を持つMPB#(513)に格納されるMPB#も同時に決定して、反映ジャーナルボリュームテーブル500に当該決定した内容を格納する必要がある。
 図5を参照しながら、この関係を具体的に説明する。図5では、ボリューム(P-VOL)<1>の複製は、ボリューム(S-VOL)<1’>に作成され(つまりP-VOL<1>とS-VOL<1’>がペアボリュームである)、そしてP-VOL<2>の複製はS-VOL<2’>に作成される(つまりP-VOL<2>とS-VOL<2’>がペアボリュームである)という関係にある場合の例を示している。そしてP-VOL<1>と<2>はMPB#0に割り当てられているが、S-VOL<1’>と<2’>が割り当てられているMPBはそれぞれ異なる(S-VOL<1’>はMPB#0に割り当てられているがS-VOL<2’>はMPB#1に割り当てられている)場合の例を示している。そして各ジャーナルボリューム(A~P,A’~P’)と、P-VOLオーナ権を持つMPB及びS-VOLオーナ権を持つMPBの関係は、図6に示された反映ジャーナルボリュームテーブル500の内容の通りであるとする。
 この時、P-VOL<1>にホスト2からデータ書き込みがあると、それに対応したジャーナルがMPB#0で生成され、生成されたジャーナルはボリュームAに格納される。またP-VOL<2>にホスト2からデータ書き込みがあると、それに対応したジャーナルがMPB#0で生成され、生成されたジャーナルはボリュームBに格納される。そして、ボリュームAに格納されたジャーナルは、副ストレージ装置10bのジャーナルボリューム(ボリュームA’)に転送され、ボリュームBに格納されたジャーナルは、副ストレージ装置10bのジャーナルボリューム(ボリュームB’)に転送される。その後副ストレージ装置10bでは、ボリュームA‘のオーナ権を持つMPB#0が、ジャーナルボリューム(ボリュームA’)に格納されたジャーナルをS-VOL<1‘>に反映し、ボリュームB‘のオーナ権を持つMPB#1が、ジャーナルボリューム(ボリュームB’)に格納されたジャーナルをS-VOL<2‘>に反映する。
 続いて図7を用いて、ジャーナルボリューム600に格納されるジャーナルの構造(フォーマット)の概要を説明する。本発明の実施例1に係る正ストレージ装置10aでは、P-VOLに対してホスト2からライトコマンドを受信するたびに、当該ライトコマンドで指定されたライトデータをS-VOLに転送するためのジャーナル610を1つ作成する。作成されたジャーナル610は、(正ストレージ装置10aの)ジャーナルボリューム600に格納されることによって、副ストレージ装置10bに送信される。
 先に述べたとおり、本発明の実施例1に係るストレージシステムでは、ジャーナルボリュームを一種のFIFOとして使用する。そのため、初期状態、つまりジャーナルボリューム600にジャーナルが未書き込みの状態の時には、正ストレージ装置10aのMPB111は、ジャーナルボリューム600の先頭に作成したジャーナル610を格納する。その後ジャーナルをジャーナルボリューム600に格納する際には、前回格納されたジャーナル610の直後に新規に作成されたジャーナルを格納する。そして正ストレージ装置10aが副ストレージ装置10bにジャーナルを送信する場合にも、ジャーナルボリューム600の先頭に作成したジャーナル610から順に読み出して送信していく(すでにいくつかのジャーナル610を送信済みの場合には、前回の送信処理で送信済みのジャーナル610の直後に格納されているジャーナル610から順に送信する)。なお、ジャーナル610を送信する際、ジャーナル610を1つずつ読み出し(及び送信)する必要はなく、複数のジャーナル610をまとめて読み出して送信するようにしてもよい。
 また、副ストレージ装置10bに送信されたジャーナルを、副ストレージ装置10bのMPBがジャーナルボリュームに書き込む際にも同様に、ジャーナルボリュームの先頭から順に書き込んでいく。また副ストレージ装置10bのジャーナルボリュームに格納されたジャーナルの内容をS-VOLに反映する際にも、副ストレージ装置10bはジャーナルボリュームの先頭から順にジャーナルを読み出して、S-VOLに反映する。
 ジャーナルのフォーマットの説明に戻る。ジャーナル610は、管理情報610-1とジャーナルデータ610-2から構成される。ジャーナルデータ610-2の領域には、P-VOLに対してホスト2から受信するライトコマンドとともに到来するライトデータが格納され、管理情報610-1は以下に説明するように、ジャーナルデータ610-2のデータ内容を記述した情報が格納される。
 管理情報610-1は、種別651とメタデータ652から構成される。ジャーナル610には、P-VOLに対して書き込まれるデータ(ジャーナルデータ610-2)以外の情報が格納されることがあり、種別651はその内容を説明するための情報である。種別651に指定される情報の種類は後述する。メタデータ652には、種別651で指定される種類に依存して、異なる種類の情報が格納される。図7では、ジャーナル610に、P-VOLに対して書き込まれるデータが格納されている場合のメタデータについて説明している。この場合、メタデータ652には、シーケンス番号(SEQ#と表記されることもある)(652-1)、ライトデータの書き込み位置を表す情報のセットであるLDEV#(652-2)とLBA(652-3)とデータ長(652-4)、そしてジャーナルデータのジャーナルボリューム上の格納位置を表すポインタ(652-5)の情報が格納される。シーケンス番号(652-1)については後述する。LDEV#(652-2)は、ホスト2から受信するライトコマンドに含まれている、P-VOLを特定する情報(論理ボリューム番号)である。LBA(652-3)そしてデータ長(652-4)もまた、ホスト2から受信するライトコマンドに含まれている情報で、P-VOL上のデータ書き込み範囲を特定する情報である。ジャーナル610を受信する副ストレージ装置10bでは、このLDEV#(652-2)とLBA(652-3)とデータ長(652-4)の情報に基づいて、ジャーナルデータ610-2の内容をS-VOLに反映する。ポインタ(652-5)は、管理情報610-1に対応するジャーナルデータの、ジャーナルボリューム上の格納位置を表す情報で、たとえばジャーナルボリュームのLBAが格納される。ただしポインタ(652-5)に格納される情報は、管理情報610-1に対応するジャーナルデータの、ジャーナルボリューム上の格納位置を特定できる情報であればよく、ジャーナルボリュームのLBAに限定されない。たとえば管理情報(610-1)の先頭からの相対位置を表す情報が含まれていても良い。
 シーケンス番号(652-1)について説明する。ジャーナルを作成する際、各ジャーナルには0から始まる一意な順序番号が付され、これをシーケンス番号と呼ぶ。図8に、正ストレージ装置10aが管理するシーケンス番号管理テーブル700を示す。正ストレージ装置10aでは、ジャーナル作成時に、各ジャーナルボリューム内で一意なシーケンス番号を付すように制御するため、あるジャーナルボリューム(仮に、JVOL Bとする)にジャーナルを格納する際、シーケンス番号管理テーブル700のVOL#がBの行のSEQ#の欄に格納されている値を、メタデータ652のシーケンス番号(652-1)に格納し、その後シーケンス番号管理テーブル700のSEQ#に1加算する。シーケンス番号管理テーブル700は、SM143に全ジャーナルボリュームのシーケンス番号を格納して管理するようにしてもよいし、また各MPB111が、自身に割り当てられているジャーナルボリュームのシーケンス番号の情報のみを、自身のPM142で管理するようにしてもよい。
 シーケンス番号は、副ストレージ装置10bにおいて、ジャーナルデータの内容をS-VOLに反映する際に使用される。ジャーナルデータの内容をS-VOLに反映する際、ジャーナルボリュームに格納されている、S-VOLに未反映のジャーナルのうち、最も小さなシーケンス番号が付されたジャーナルを選択して、S-VOLにジャーナルデータの内容を反映する処理を行う。これにより、正ストレージ装置10aにおいてホスト2から各データをP-VOLに対して書き込んだ順序と同じ順序で、S-VOLに対しても各データを反映させることができる。
 続いて種別651の説明を行う。先に述べたとおり、ジャーナル610には、P-VOLに対して書き込まれるデータ(ジャーナルデータ610-2)以外の情報が格納されることがある。本発明の実施例に係るストレージシステムでは、正ストレージ装置10aがジャーナル610に書き込む情報として、P-VOLに対するライトデータ(の複製)以外に、以下の(1)~(3)で説明する3つの情報がある。
 (1)タイムスタンプ
 本発明の実施例1に係る正ストレージ装置10aでは、各MPB111が自身に割り当てられたジャーナルボリュームにジャーナル610を書き込む処理を行う他に、定期的に各ジャーナルボリュームにタイムスタンプを格納する処理を行う。図9(A)は、ジャーナルボリュームに格納されるタイムスタンプのメタデータのフォーマットを表す。タイムスタンプは、SEQ#(652-1)とタイムスタンプ(Timestamp)情報(652-T)を有するメタデータ652のみで構成されるもので、ジャーナルデータ610-2は存在しない(言い換えれば、ジャーナルデータのサイズは0である)。SEQ#(652-1)は先に説明したとおりの情報で、タイムスタンプに付されたシーケンス番号を表す。タイムスタンプ情報(652-T)は時刻情報(時分秒など)を格納してもよいが、本発明の実施例1に係る正ストレージ装置10aでは、一定周期(1秒など)でカウントアップされるカウンタの値(カウンタ情報と呼ぶ)がSM143に格納されており、タイムスタンプをジャーナルボリュームに格納する際には、このカウンタ情報をSM143から読み出し、読み出されたカウンタ情報をタイムスタンプ情報(652-T)とするメタデータ652を作成し、ジャーナルボリュームに格納する。またカウンタ情報に格納される値は、特定のMPB111が一定周期でカウントアップしている。タイムスタンプの具体的な用いられ方は後述する。
 (2)ENDマーカ
 ENDマーカ及びRESTARTマーカは、P-VOL(またはS-VOL)のオーナ権を持つMPBが変更されたときに、正ストレージ装置10aがジャーナルボリュームに挿入する情報である。タイムスタンプと同様、ENDマーカ及びRESTARTマーカもメタデータのみで構成される情報で、ジャーナルデータ610-2を有さない情報である。なお、ENDマーカ及びRESTARTマーカは、実施例2に係るストレージシステムにおいて用いられる情報であるので、具体的な用いられ方は実施例2で説明する。
 ENDマーカのメタデータの構成について、図9(B)に示す。ENDマーカのメタデータは、SEQ#(652-1)、マーカフラグ(652-M1)、LDEV#(652-M2)、変更前ジャーナルボリューム番号(JVOL#)(652-M3)、変更後JVOL#(652-M4)、変更前SEQ#(652-M5)で構成される。SEQ#(652-1)は、ENDマーカ自体に付されたシーケンス番号を表す。マーカフラグ(652-M1)には、ENDマーカの場合には「E」が格納される。LDEV#(652-M2)はオーナ権が変更されたP-VOLのLDEV#が格納される領域である。
 変更前JVOL#(652-M3)には、P-VOL(LDEV#(652-M2)に格納されたLDEV#を有するP-VOL)または当該P-VOLとペア関係にあるS-VOLのオーナ権が変更される前に、当該P-VOLのジャーナルが格納されていたジャーナルボリュームの論理ボリューム番号が格納される。変更後JVOL#には、P-VOLまたは当該P-VOLとペア関係にあるS-VOLのオーナ権が変更された後に、当該P-VOLのジャーナルが格納されるジャーナルボリュームの論理ボリューム番号が格納される。変更前SEQ#(652-M5)には、ENDマーカ自体に付されたシーケンス番号(つまりSEQ#(652-1)と同じ内容)が格納される。ただし別の実施形態として、P-VOL(または当該P-VOLとペア関係にあるS-VOL)のオーナ権が変更される前のジャーナルボリュームに、最後に格納されたジャーナル(ENDマーカの直前に格納されたジャーナル)に付されたシーケンス番号を格納するようにしてもよい。
 (3)RESTARTマーカ
 RESTARTマーカのメタデータを構成する情報は、図9(C)に示されているように、ENDマーカのメタデータを構成する情報と同じである。ENDマーカとRESTARTマーカの違いは、RESTARTマーカには、マーカフラグ(652-M1)に、値「R」が格納される点である。マーカフラグ(652-M1)以外の情報、つまりSEQ#(652-1)、LDEV#(652-M2)、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)には、ENDマーカの説明の際に述べたものと同じ情報が格納される。また変更前SEQ#(652-M5)には、ENDマーカの変更前SEQ#(652-M5)と同内容が格納される。
 このようにジャーナルには、P-VOLに対して書き込まれるデータの格納されるジャーナル(以下、通常ジャーナルと呼ぶ)に加え、タイムスタンプ、ENDマーカ、RESTARTマーカが存在する。ジャーナル610の種別651の欄には、これら4種類のジャーナルを識別できる情報が格納される。本発明の実施例では、種別651の欄に、通常ジャーナルの場合には「1」、タイムスタンプの場合には「2」、ENDマーカの場合には「3」、RESTARTマーカの場合には「4」が格納される。ただし種別651に格納される情報はこれに限定されない。
 なお、ジャーナルボリュームにジャーナルの格納される態様は、図7のように管理情報610-1とジャーナルデータ610-2とが隣接して格納される態様に限定されるものではない。たとえば米国特許出願公開第2005/0073887号明細書等に開示されているように、管理情報とジャーナルデータとが別領域に格納されるようにするなど、様々な格納態様をとることも可能である。
 続いて図10を用いて、本発明のストレージ装置10におけるジャーナル作成処理を説明する。この処理は、正ストレージ装置10aの各MPBで実行される処理で、正ストレージ装置10aのLDEVに対して書き込みを要求するライトコマンド(ライト要求)をホスト2から受領した時に、当該LDEVに対するライト要求を処理するMPB(つまりライト対象のLDEVのオーナ権を持つMPB)が、当該LDEVに対するライト要求の処理直後(具体的にはライトデータをCM144に格納した直後)に実行する。
 S1では、MPB111はライト対象のLDEVがペアを構成するボリュームであるか判断する。この判断はペア管理テーブル300内のP-VOL#(304)の欄に、ライト対象のLDEVのLDEV番号が含まれているかを判断することで行われる。ライト対象のLDEVがペアを構成するボリュームでなかった場合(S1:N)には、処理を終了するが、ライト対象のLDEVがペアを構成するボリュームであった場合(S1:Y)、S2に進む。
 S2では、MPB111はこの処理(ジャーナル作成処理)を実行しているMPB#を取得する。ストレージ装置10は、MPBで実行される各プログラムが、当該プログラムを実行しているMPBのMPB#を取得できる機能を備えており、それを利用する。ここで得られたMPB#が、ライト対象LDEV(つまりP-VOL)のオーナ権を有するMPBのMPB#である。
 S3では、MPB111はライト対象のLDEV(P-VOL)に対応する(ペア関係にある)S-VOLのオーナ権を有している副ストレージ装置10bのMPB#の情報を取得する。この処理では、ペア管理テーブル300内から、ライト対象LDEVのLDEV#がP-VOL#(304)の欄に格納されている行を探索し、当該行のMPB#(307)に格納されているMPB#を取得する。
 S4では、MPB111は反映ジャーナルボリュームテーブル500を参照し、ジャーナルを格納すべきジャーナルボリュームを特定し、S5では、ジャーナルを作成して、S4で特定されたジャーナルボリュームに対して、作成されたジャーナルを書き込む。ここで作成されるジャーナルは、図7に示すフォーマットのジャーナル610(ジャーナルデータ610-2と、そのメタデータ652としてSEQ#(652-1)、LDEV#(652-2)、LBA(652-3)、データ長(652-4)、ポインタ(652-5)を含むジャーナル)である。ジャーナル作成の方法は周知の方法であるため、説明は省略する。
 また、S5の実行後には、シーケンス番号管理テーブル700のSEQ#の欄の値を1加算する。たとえばシーケンス番号管理テーブル700が図8の状態にあり、ジャーナル作成処理でVOL# Bのジャーナルボリュームにジャーナルを作成・格納した場合、ジャーナルのSEQ#(652-1)にはシーケンス番号管理テーブル700の内容を格納するので、作成されたジャーナルのSEQ#には222が格納されている。そしてジャーナルを(VOL# Bの)ジャーナルボリュームに格納した直後、シーケンス番号管理テーブル700のVOL# Bに対応するSEQ#の値を223に更新する。以上でジャーナル作成処理が終了する。
 続いて図11を用いて、タイムスタンプ挿入処理について説明する。タイムスタンプ挿入処理では、先に述べたタイムスタンプ(図9)をジャーナルボリュームに挿入する処理である。この処理は、正ストレージ装置10a内の特定の1つのMPBが定期的に実行する。本発明の実施例1においては、タイムスタンプ挿入処理を実行するMPBは、あらかじめもっともMPB#の小さいMPB111(MPB#が0番のMPB111)が実行するものとするが、どのMPB111がタイムスタンプ挿入処理を実行するようにしてもよい。
 タイムスタンプ挿入処理は一定周期(数秒間隔等)で実行される処理である。S11ではまず、MPB111は前回タイムスタンプ挿入処理を実行してから一定の時間が経過したか判定し、まだ一定の時間が経過していない場合には処理を終了する。一定の時間が経過していた場合、S12に進む。
 S12では、タイムスタンプ挿入処理を実行しているMPB111は、他の全てのMPB111に対し、I/O処理を保留させる。これにより各MPB111で実行中のI/O処理は一時中断される。またこの時、ジャーナルボリュームに対するデータ書き込みも中断される。なお、タイムスタンプ挿入処理を実行しているMPB111が実行中のI/O処理、ジャーナルボリュームに対するデータ書き込み処理も中断される。
 S13では、タイムスタンプ挿入処理を実行しているMPB111は、他の全てのMPB111に対し、タイムスタンプの挿入を指示する。指示を受けた各MPB111はSM143上のカウンタ情報を読み出し、当該カウンタ情報を含むタイムスタンプ(図9(A))を作成し、これを各MPB111に割り当てられている各ジャーナルボリュームに格納する。タイムスタンプの作成時に、シーケンス番号を格納する点は、通常のジャーナル作成処理(図10 S5)と同様である。またタイムスタンプ挿入処理を実行しているMPB111も、タイムスタンプの作成、ジャーナルボリュームへの格納処理を行う。なお、各MPB111でのカウンタ情報の取得方法は、各MPB111が直接SM143上のカウンタ情報を読み出す方法に限定されない。たとえばタイムスタンプ挿入処理を実行しているMPB111がSM143からカウンタ情報を読み出し、読み出されたカウンタ情報を各MPB111に送信し、各MPB111が送付されたカウンタ情報をもとにタイムスタンプを作成するようにしてもよい。いずれの方法を採るにせよ、S13の処理を実行することで、各MPB111がオーナ権を有する全ジャーナルボリュームに、共通の(同一値の)タイムスタンプ情報(カウンタ情報)を持つタイムスタンプが挿入されればよい。
 S14では、タイムスタンプ挿入処理を実行しているMPB111は、他の全てのMPB111に対し、I/O処理の再開を指示する。またタイムスタンプ挿入処理を実行しているMPB111自身もI/O処理を再開する。これによりタイムスタンプ挿入処理が終了する。
 図10、11で説明したジャーナル作成処理、タイムスタンプ挿入処理により、ジャーナルボリュームに格納されたジャーナルは、定期的に副ストレージ装置10bに送信される。本発明の実施例1におけるストレージシステムでは、複数のジャーナルボリュームを用いているが、ジャーナルの送信元、送信先は一意に定められているので、正副ストレージ装置(10a、10b)は、定められた規則に従って適切な送信先ジャーナルボリュームへとジャーナルを送信する。正ストレージ装置10aの各ジャーナルボリュームに格納されたジャーナルの送信先は、反映ジャーナルボリュームテーブル500を参照することで判明する。具体的な方法は次の通りである。まず、正側ジャーナルボリュームのVOL#501で特定されるジャーナルボリュームに対応する、P-VOLオーナ権を持つMPB#502とS-VOLオーナ権を持つMPB#503の組を特定する。続いてこの組と同じ、P-VOLオーナ権を持つMPB#512とS-VOLオーナ権を持つMPB#513の組を特定する。この組に対応したVOL#511で特定される、副ストレージ装置10bのジャーナルボリュームが、送信先ジャーナルボリュームとなる。
 参考までに、正ストレージ装置10aのVOL#501がCのジャーナルボリュームの送信先ジャーナルボリュームを特定する例を用いて説明する。正ストレージ装置10aの論理ボリューム番号(VOL#501)がCのジャーナルボリュームに対応する、P-VOLオーナ権を持つMPB#502は0、そしてS-VOLオーナ権を持つMPB#503は2である。そしてこれと同じP-VOLオーナ権を持つMPB#512とS-VOLオーナ権を持つMPB#513の組(つまり、P-VOLオーナ権を持つMPB#512が0で、S-VOLオーナ権を持つMPB#523は2)に対応付けられた論理ボリューム番号(VOL#511)はC’であるから、正ストレージ装置10aのVOL#501がCのジャーナルボリュームの送信先ジャーナルボリュームのVOL#は、C’ということがわかる。
 正ストレージ装置10aの各ジャーナルボリュームに格納されたジャーナルを送信する際には、正ストレージ装置10a(のMPB111)は上で説明したように反映ジャーナルボリュームテーブル500を参照して送信先ジャーナルボリュームのVOL#を特定し、副ストレージ装置10bに対して、特定されたVOL#のボリューム(ジャーナルボリューム)にジャーナルを格納することを指示する情報とともにジャーナルを送信する。副ストレージ装置10bは、指示情報に指定された論理ボリューム番号(VOL#)のジャーナルボリュームにジャーナルを格納する。なお、正ストレージ装置10aから副ストレージ装置10bへのジャーナルの送信処理の具体的な処理は、上記の送信先ジャーナルボリュームの特定方法を除いては、従来の方法(たとえば米国特許出願公開第2005/0073887号明細書等に開示の方法)と同様の方法を用いることができるので、詳細な説明は省略する。また、ジャーナルの送信の際、1回の送信処理で1つのジャーナルだけが送信されるわけではなく、複数個のジャーナルをまとめて送信することができる。ただし、1回の送信処理で1つのジャーナルだけを送信する方法を採用してもよい。
 また、正ストレージ装置10aにおけるジャーナルボリューム内データの副ストレージ装置10bへの送信、及び副ストレージ装置10bにおける、受信したジャーナルのジャーナルボリュームへの格納はそれぞれ、ジャーナルボリュームのオーナ権を持つMPBが独立に実施する。そのため、正ストレージ装置10aの各ジャーナルボリュームに同時期に格納された各ジャーナルデータ(各P-VOLに対する更新データの複製)が、必ずしも同時期に副ストレージ装置10bのジャーナルボリュームに格納されているわけではない。
 続いて図12を用いて、副ストレージ装置10bの各ジャーナルボリュームに格納されたジャーナルの内容を、S-VOLに反映する処理の流れを説明する。なお、以下では、副ストレージ装置10bの各ジャーナルボリュームに格納されたジャーナルの内容を、S-VOLに反映する処理のことを、「格上げ処理」と呼ぶ。この処理は副ストレージ装置10bで定期的に実施される。
 本発明の実施例1における副ストレージ装置10bにおける格上げ処理では、正ストレージ装置10aから送信されたジャーナルのうち、所定の条件を満たす範囲のジャーナルのみを格上げする。格上げ処理の際、副ストレージ装置10bの特定の1つのMPB111が、他MPB111から情報を集めて、格上げするジャーナルの範囲を決定する処理を行う。本発明の実施例1においては、この処理を実行するMPB111は、あらかじめもっともMPB#の小さいMPB111(MPB#が0番のMPB111)が実行するものとするが、どのMPB111がタイムスタンプ挿入処理を実行するようにしてもよい。またこの処理を実行するMPB111のことを「代表MPB」と呼ぶ。
 S21では、代表MPBは他MPBに対して、各MPB111に割り当てられているジャーナルボリューム内のタイムスタンプ情報を要求する。各MPB111はこの要求を受け付けると、自身に割り当てられている全ジャーナルボリューム内に格納されているタイムスタンプを検査し、ジャーナルボリュームごとに、タイムスタンプ情報の最大値を抽出する(S31)。続いて、抽出された、各ジャーナルボリューム内のタイムスタンプ最大値の中の最小値を特定し、特定された最小値を代表MPBに返信する(S32)。S31~S32の処理は、各MPB111が自身に割り当てられている全ジャーナルボリューム内に共通に含まれているタイムスタンプの最大値を特定する処理と言い換えることもできる。なお、このS31に相当する処理は、代表MPBにおいても実施される。
 全MPBからタイムスタンプ情報を返送されると、代表MPBではS22の処理に進む。S22では、全MPB(これには代表MPBも含まれる)から返信されたタイムスタンプ情報の中からさらに、最小値を特定する(この特定された最小値を「タイムスタンプT」と呼ぶ)。なお、この処理の結果特定されるタイムスタンプTとは、副ストレージ装置10bの全ジャーナルボリューム内に共通に含まれている(複数の)タイムスタンプ情報の最大値といえる。代表MPBは、ここで特定されたタイムスタンプTが格納されているジャーナル(タイムスタンプ)以前のジャーナルまでを、格上げ対象として決定する。
 図13を用いて、格上げ対象決定の概念について説明する。図中の要素600-0、600-1、600-2、600-3はそれぞれ、副ストレージ装置10bの各MPB111(MPB#0、MPB#1、MPB#2、MPB#3)に割り当てられているジャーナルボリュームを表している。そして各ジャーナルボリューム(600-0、600-1、600-2、600-3)に、図13に示されている内容の情報(通常ジャーナル、タイムスタンプ)が格納されている場合を想定する(なお、この図では、各MPBに割り当てられているジャーナルボリュームの数が1つの場合について記載している)。この図ではいくつかのジャーナルボリュームにタイムスタンプ#0、タイムスタンプ#1、タイムスタンプ#2が格納されているが、タイムスタンプ#2がタイムスタンプ#1より後の時刻を表し、タイムスタンプ#1がタイムスタンプ#0より後の時刻を表す情報とする。この図の例では、MPB#1、MPB#2に割り当てられているジャーナルボリュームにはタイムスタンプ#2が格納されているが、MPB#0、MPB#3に割り当てられているジャーナルボリュームには、タイムスタンプ#1までしか格納されていない。
 本発明の実施例1におけるストレージシステムの場合、各MPBが独立して、自身に割り当てられているジャーナルボリュームについてのジャーナル送受信を行うので、正ストレージ装置10aにおいて、正ストレージ装置10aの各ジャーナルボリュームに同時期に格納されたデータが、副ストレージ装置10bのジャーナルボリュームに同時期に格納される保証はない。そのため、たとえば図13の例では、MPB#3に割り当てられているジャーナルボリューム600-3には、タイムスタンプ#1より後にジャーナル(通常ジャーナル)が格納されていないが、しばらく後にジャーナルが格納される可能性がある。ただしジャーナルの送信の際、正ストレージ装置10aのジャーナルボリュームの先頭に格納されているジャーナルから順に副ストレージ装置10bに送信するので、正ストレージ装置10aにおいてタイムスタンプ#1が各ジャーナルボリュームに格納された時点までの全データは、副ストレージ装置10bの各ジャーナルボリュームに格納されていることは保証されている(正確には、正ストレージ装置10aから副ストレージ装置10bへのデータ転送の過程で何らかの障害が発生した場合に、特定のジャーナルが送信されない事態が発生する可能性もある。ただし、1つのジャーナルボリューム内に格納される各ジャーナルには連続したシーケンス番号が付与されていることを利用し、副ストレージ装置10bにおいて、副ストレージ装置10bの各ジャーナルボリュームに格納された各ジャーナルのシーケンス番号がすべて連続しているかをジャーナルボリュームごとにチェックし、シーケンス番号が連続していない場合には、未到着のジャーナルの再送を行わせる等の対処をとることで、正ストレージ装置10aにおいてタイムスタンプ#1がジャーナルボリュームに格納された時点までの全データが、副ストレージ装置10bのジャーナルボリュームに格納されていることを保証することができる。この処理は、従来のストレージシステムのリモートコピー処理においても行われている周知の処理なので、詳細な処理の説明はここでは行わない)。
 そのため、この場合には、各ジャーナルボリュームに格納されているタイムスタンプ最大値(タイムスタンプ#1またはタイムスタンプ#2)のうち、最小値のタイムスタンプ(タイムスタンプ#1)よりも前に格納されているジャーナル(図中の斜線部の領域)のみを格上げ対象とする。このような制御を行うことにより、各S-VOLのデータ更新順序・データ一貫性を保証している(タイムスタンプ#1より前にP-VOLに書き込まれたデータがすべてS-VOLに反映されるまでは、タイムスタンプ#1以降にP-VOLに書き込まれたデータがS-VOLに反映されることがない)。
 また、各MPBに割り当てられているジャーナルボリュームが複数ある場合には、先に述べたように、各MPBに割り当てられている複数のジャーナルボリュームに格納されているタイムスタンプのタイムスタンプ情報の最大値のうち、最も小さい値を代表MPBに送信し、代表MPBでは各MPBから送信されたタイムスタンプ情報からさらに最も小さい値を選出し、そのタイムスタンプよりも前に格納されているジャーナル全てを格上げ対象とすることで、各S-VOLに格上げされるデータの一貫性が保証される。
 図12の説明に戻る。S23では、代表MPBは、S22で決定された格上げ対象の範囲の情報を他のMPBに対して通知する。ここで通知する格上げ対象の範囲の情報は、たとえば、S22で特定された最小のタイムスタンプ情報(タイムスタンプT)であり、これを受信した各MPBは、ジャーナルボリューム内に格納されているジャーナル(かつ、以前に実行された格上げ処理において未処理のジャーナル)のうち、受信したタイムスタンプ情報(タイムスタンプT)を含むタイムスタンプより前に格納されているジャーナルを格上げ対象として決定し、S-VOLへの格上げ処理を行う(S33)。格上げ処理自体は、従来のジャーナルを利用したリモートコピーと同様の処理であるため、詳細な説明は省略するが、ジャーナルボリュームの先頭から順に、これまでに格上げ処理対象となっていないジャーナルを読み出し、各ジャーナルに付与されているシーケンス番号の順に、各ジャーナルに含まれるジャーナルデータ(図7の610-2部分)のS-VOLへの反映を行う。また代表MPBでも同様にジャーナルの格上げ処理を行い(S24)、処理を終了する。なお後述するが、P-VOLあるいはS-VOLのオーナ権が運用中に変更された場合、S24,S33で行われる格上げ処理は、従来のジャーナルを利用したリモートコピー処理とは若干異なる処理を行う(図18)。
 以上が、本発明の実施例1に係るストレージシステムにおける、通常時のリモートコピー処理の流れである。本発明の実施例1に係るストレージシステムでは、正ストレージ装置は各MPBに対して複数の(副ストレージ装置のMPB数と同数の)ジャーナルボリュームを割り当てる。そして正ストレージ装置の各MPBは、自身がオーナ権を持つP-VOLに対するライトデータからジャーナルを作成する処理を自MPBで行う。
 また、副ストレージ装置においても各MPBに対して複数の(正ストレージ装置のMPB数と同数の)ジャーナルボリュームが割り当てられている。副ストレージ装置において実行される格上げ処理でも、自身がオーナ権を持つS-VOLに対する格上げ処理だけを各MPBが行うようになっている点が、特定のMPBのみがジャーナル作成や格上げ処理を行う従来のリモートコピー処理とは異なる。これにより、ジャーナル作成や格上げ処理の負荷を複数のプロセッサに分散させることができる。
 さらに、正ストレージ装置の各MPBは、ジャーナルボリュームに定期的にタイムスタンプを挿入し、タイムスタンプの挿入されたジャーナルを副ストレージ装置に送信する。副ストレージ装置では格上げ処理の際、各ジャーナルボリュームに共通に格納されているタイムスタンプのうち、最大のタイムスタンプ(仮にこれをTと呼ぶ)以前に格納されているジャーナルのみを格上げ対象とすることで、副ストレージ装置に確実に到着している時点までのデータのみをS-VOLに反映する。これにより、S-VOLのデータ一貫性を保証することを可能にしている。
 続いて、本発明の実施例2に係るストレージシステムについて説明する。本発明の実施例2に係るストレージシステムの構成は、実施例1で説明したものと同じであるので説明を省略する。
 本発明の実施例2に係るストレージシステムの、実施例1に係るストレージシステムとの違いは、実施例2に係るストレージシステムでは、リモートコピー処理中にP-VOLあるいはS-VOLのオーナ権が変更されることが許される点である。本明細書に開示されているような、複数のプロセッサを有するストレージ装置の場合、何らかの理由、例えば負荷が特定のプロセッサに集中した等の理由により、各LDEVのオーナ権を持つプロセッサが変更される場合がある。以下では、本発明の対象としているリモートコピー処理対象であるP-VOLあるいはS-VOLのオーナ権が変更された場合に行う処理について説明する(逆に、P-VOLあるいはS-VOLのオーナ権が変更されない場合の処理及び当該処理で参照・更新される各種情報の内容は、実施例1で説明したものと同じである)。
 まず、P-VOLあるいはS-VOLのオーナ権が変更された場合に対処するために必要となる制御情報について説明する。図14は本発明の実施例2に係る正ストレージ装置10aが管理するオーナ権移動情報テーブル1100の内容を示している。この情報は正ストレージ装置10aのSM143に格納される。
 オーナ権移動情報テーブル1100には、正ストレージ装置10aが管理するLDEV(厳密にはP-VOL)1101ごとに、初回アクセスビット1102、変更前S-VOLオーナ権1103、変更後S-VOLオーナ権1104、変更前JVOL#1105の情報を持つ。初回アクセスビット1102は、当該ビットに対応するLDEV1101のオーナ権が変更された後、ライトI/O要求を受け付けたか否かを示す情報であり、オーナ権が変更された直後に、オーナ権変更処理を行ったMPB111によって、1が格納される。そしてオーナ権変更後に、当該ビットに対応するLDEVに対するライトI/Oを受け付け、当該ライトI/Oにより書き込まれるデータのジャーナルを作成する時点で、当該ビットが0に変更される。変更前JVOL#1105と変更前SEQ#1106にはそれぞれ、当該情報に対応するP-VOL(LDEV#1101で特定される番号のLDEV)のオーナ権が変更される前の正ジャーナルボリュームの論理ボリューム番号、そして当該正ジャーナルボリュームに最後に格納されたジャーナル(ENDマーカ)のシーケンス番号が格納される。
 変更前S-VOLオーナ権1103及び変更後S-VOLオーナ権1104は、P-VOL(LDEV#1101で特定されるLDEV)とペア関係にある、副ストレージ装置10bのLDEV(S-VOL)のオーナ権が変更された場合に使用される欄である。S-VOLのオーナ権が変更された場合、変更前のオーナ権を持つMPBのMPB#(副ストレージ装置10bの)が欄1103に、変更後のオーナ権を持つMPBのMPB#(副ストレージ装置10bの)が欄1104に格納される。なお、S-VOLのオーナ権が変更されていない場合には、欄1103、1104には無効値(NULL等)が格納されている。
 図15を用いて、順序制御用テーブル1200について説明する。順序制御用テーブル1200は、副ストレージ装置10bが格上げ処理中に、ジャーナルボリュームにENDマーカ(図9(B)を用いて説明したもの)が格納されていることを検出した際に、検出したENDマーカについての情報を格納するテーブルである。この情報は、副ストレージ装置10bのSM143に格納される。
 順序制御用テーブル1200には、正ストレージ装置10aが管理するLDEV(P-VOL)1201ごとに、ENDマーカビット1202、変更前JVOL#1204、変更後JVOL#1205、変更前JVOLSEQ#1206の情報を持つ。
 ENDマーカビット1202の欄には、初期状態では0が格納される。そして副ストレージ装置10bがジャーナル格上げ処理中に、格上げ対象のジャーナル中にENDマーカが含まれていることを検出した際に、ENDマーカビット1202に1を格納する。そして変更前JVOL#1204、変更後JVOL#1205、変更前JVOLSEQ#1206には、ENDマーカに格納されている変更前JVOL#(図9 652-M3)、変更後JVOL#(図9 652-M4)、シーケンス番号(図9 652-M5)が格納される。
 オーナ権は、P-VOLのオーナ権が変更される場合以外に、このP-VOLとペア関係にあるS-VOLのオーナ権が変更されることもある。そして、両方がほぼ同時期に変更されることもあり得るため、1つのLDEV1201に対して、ENDマーカに格納されている情報を格納する欄が複数設けられている。
 次に、LDEV(P-VOLまたはS-VOL)のオーナ権が変更された時に、正ストレージ装置10aまたは副ストレージ装置10bが実行する処理について説明していく。まず図16を用いて、P-VOLのオーナ権が変更された時に正ストレージ装置10aのMPB111が実行する処理について説明する。
 以下、正ストレージ装置10aにおいて、P-VOL(LDEV#はN番とする)のオーナ権を持つMPB111が、MPB#がK番のMPB(以下、このMPB111を「MPB(#K)」と記載する)から、L番のMPB(以下、このMPB111を「MPB(#L)」と記載する)に変更された場合について説明する。またこの時、P-VOLのライトデータについてのジャーナルを格納するジャーナルボリュームの論理ボリューム番号は、オーナ権変更前はA(以下、この識別番号のジャーナルボリュームをJVOL Aと表記する)、オーナ権変更後はE(以下、この識別番号のジャーナルボリュームをJVOL Eと表記する)に変更されるものとする。
 オーナ権の変更は、ストレージ装置10の管理者が管理端末を操作することで変更する場合、またはMPB111が何らかの理由(たとえばあるMPB111が、特定のMPB111の負荷が他MPB111より高くなっていることを検知した等)で管理者による操作とは無関係に変更する場合があり得るが、どちらの場合でも図16に記載の処理が行われる。P-VOLのオーナ権の変更の際、最初に正ストレージ装置10a内の任意の1つのMPB111がその処理を担当する。当該MPB111は、ペア管理テーブル300を参照し、オーナ権の変更されるLDEVが、リモートコピーのペアボリュームであるか確認し、ペアボリュームである場合、たとえばP-VOLであることが判明した場合、当該P-VOLの変更前のオーナ権を持つMPB111(ここではMPB(#K))に、オーナ権の変更されるLDEVのLDEV#、変更後にオーナ権を持つMPBのMPB#(ここではMPB(#L))を通知し、オーナ権の変更処理をMPB(#K)が実施するよう指示する。MPB(#K)はこの通知を受信すると、図16の処理を開始する。
 S101でMPB(#K)は、P-VOLのオーナ権が変更される前のジャーナルボリューム(JVOL A)に格納するためのENDマーカを作成する。ENDマーカの作成に必要な情報は、図9に示されているように、シーケンス番号(652-1)、LDEV番号(つまりP-VOLのLDEV#)(652-M2)、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)、変更前SEQ#(652-M5)である。変更前JVOL#(652-M3)及び変更後JVOL#(652-M4)についての情報は、図16の処理開始前にオーナ権の変更処理を実施するように指示してきたMPB111から受信した情報である、オーナ権の変更されるLDEVのLDEV#及び変更後にオーナ権を持つMPBのMPB#の情報、そして変更前にオーナ権を持つMPBのMPB#の情報(これは図16の処理を実行しているMPB自身のMPB#である)を用いて、反映ジャーナルボリュームテーブル500を検索することで特定できる。シーケンス番号(652-1)及び変更前SEQ#(652-M5)は、シーケンス番号管理テーブル700を参照することで得ることができる。MPB(#K)は、ENDマーカを作成し、P-VOLのオーナ権が変更される前のジャーナルボリューム(JVOL A)にENDマーカを格納する。
 S102では、MPB(#K)は、オーナ権移動情報テーブル1100の内容を更新する。具体的には、LDEV#1101に、オーナ権が変更されるLDEVのLDEV#と同一の番号が格納されている行の、初回アクセスビット1102、変更前S-VOLオーナ権1103、変更後S-VOLオーナ権1104、変更前JVOL#1105、変更前SEQ#1106の内容を変更する。初回アクセスビット1102の欄には「1」を格納し、変更前JVOL#1105には、オーナ権変更前に用いられていたジャーナルボリュームの識別番号「A」を格納し、変更前SEQ#1106には、S101で作成したENDマーカの変更前SEQ#(652-M5)の値を格納する。またS-VOLオーナ権の欄(1103、1104)には無効値を格納する。
 S103では、MPB(#K)は論理ボリューム管理テーブル200に登録されている、オーナ権の情報(MPB#(200-2))を更新することで、オーナ権の変更を行い、処理を終了する。つまりENDマーカはP-VOLのオーナ権が変更される直前に、ジャーナルボリュームに挿入され、これ以降、このジャーナルボリューム(ENDマーカの格納されたジャーナルボリューム)には、オーナ権の変更されたP-VOLについてのジャーナルは格納されない。
 この後、オーナ権変更後のMPB111(MPB(#L))にて、RESTARTマーカの挿入処理を行う必要があるが、この処理はオーナ権変更後のMPB111(MPB(#L))において、オーナ権が変更されたP-VOLに対するライトデータからジャーナルを作成し、作成されたジャーナルをジャーナルボリューム(JVOL E)に格納する契機(図10のジャーナル格納処理の実行される契機)で行う。
 RESTARTマーカ挿入処理の説明の前に、副ストレージ装置10bでS-VOLのオーナ権が変更された場合に、正ストレージ装置10a及び副ストレージ装置10bで行われる処理について説明しておく。S-VOLのオーナ権変更もP-VOLのオーナ権変更と同様、ストレージ装置10の管理者が管理端末を操作することで変更する場合、またはMPB111が何らかの理由で管理者による操作とは無関係に変更する場合があり得るが、いずれの場合の以下で説明する処理が行われる。
 副ストレージ装置10bでLDEVのオーナ権の変更が行われると、副ストレージ装置10bのMPBは、副ストレージ装置10bで管理している論理ボリューム管理テーブル200のオーナ権の情報(MPB#(200-2))を更新し、その後、オーナ権の変更が行われたLDEVが正ストレージ装置10aのLDEVとペア関係にあるLDEVであるか判断する。これはペア管理テーブル300を参照することで判断できる。
 オーナ権変更が行われたLDEVが正ストレージ装置10aのLDEVとペア関係にあるLDEVであった場合、副ストレージ装置10bのMPBは正ストレージ10aのMPBに対し、S-VOLのオーナ権の変更が発生したことを通知する。この通知の際、副ストレージ装置10bのMPBは、オーナ権が変更されたLDEV(S-VOL)とペア関係にあるP-VOLのLDEV#、当該S-VOLのオーナ権の変更前にオーナ権を有していたMPBのMPB#、及び当該S-VOLのオーナ権の変更後にオーナ権を有することになったMPBのMPB#の情報(つまり、オーナ権移動情報テーブル1100の、LDEV#1101、変更前S-VOLオーナ権1103、変更後S-VOLオーナ権1104に格納すべき情報)を通知する。なお、オーナ権変更の通知を行う副ストレージ装置10bのMPB及び副ストレージ装置10bから通知を受信する正ストレージ装置10aのMPBは、任意のMPBでよい。また、この通知の方法は、正ストレージ装置10aと副ストレージ装置10bを接続するファイバチャネルケーブル6等の伝送線を介した通知であっても、イーサネット5を経由した通知であってもよい。
 正ストレージ装置10aのMPBはこの通知を受けると、オーナ権移動情報テーブル1100のLDEV#1101が、通知された情報のLDEV#と等しい行について、変更前S-VOLオーナ権1103、変更後S-VOLオーナ権1104の値を、通知された情報(S-VOLのオーナ権の変更前にオーナ権を有していたMPBのMPB#、及びS-VOLのオーナ権の変更後にオーナ権を有することになったMPBのMPB#)で更新する。これにより、S-VOLのオーナ権が変更された旨の情報が、正ストレージ装置10aのオーナ権移動情報テーブル1100に格納されることになる。
 図17を用いて、本発明の実施例2に係る正ストレージ装置10aのMPBが実行する、ジャーナルデータ作成及び格納処理の流れを説明する。図17に記載の各ステップのうち、S111~S125までが、RESTARTマーカの挿入に関係する処理で、S126は、図10で説明した処理(ジャーナルデータ作成及び格納処理)である。また、S111~S113が、P-VOLのオーナ権変更に伴って挿入される必要が生じたRESTARTマーカの挿入処理であり、S122~S125が、S-VOLのオーナ権変更に伴って挿入される必要が生じたENDマーカ及びRESTARTマーカの挿入処理である。
 なお、以下では、図17の処理の前に、図16を用いて説明したP-VOLのオーナ権変更に係る処理が実施され、ジャーナル作成対象となっているP-VOLのオーナ権をMPB(#L)が有している場合を例にとって説明する。S111では、MPB(#L)はオーナ権移動情報テーブル1100の内容を参照し、LDEV1101に、P-VOLのLDEV#と同一の番号が格納されている行の初回アクセスビット1102の情報を取得する。初回アクセスビット1102が「1」であった場合(S112:Y)、ENDマーカが(オーナ権変更前のジャーナルボリュームに)格納されてから最初のライト処理であるので、RESTARTマーカの作成、格納処理を行う(S113)。
 RESTARTマーカの作成に必要な情報は、図9に示されているように、シーケンス番号(652-1)、LDEV番号(つまりP-VOLのLDEV#)(652-M2)、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)、変更前SEQ#(652-M5)である。変更前JVOL#(652-M3)、変更前SEQ#(652-M5)は、オーナ権移動情報テーブル1100の変更前JVOL#1105、変更前SEQ#1106を参照することで取得できる。変更後JVOL#(652-M4)についての情報は、P-VOLのオーナ権変更後にオーナ権を持つMPBのMPB#(これは本処理を実行しているMPBのMPB#である)と、ペア管理テーブル300に登録されているMPB#307(S-VOLのオーナ権を持つ、副ストレージ装置10bのMPB#の情報)とを用いて、反映ジャーナルボリュームテーブル500を検索することで取得できる。またシーケンス番号(652-1)は、シーケンス番号管理テーブル700を参照することで得ることができる。
 S113では、MPB(#L)はこれらの情報をもとにRESTARTマーカを作成し、ジャーナルボリューム(JVOL E)に格納する。さらに、RESTARTマーカの作成及びジャーナルボリュームへの格納に加え、オーナ権移動情報テーブル1100の、LDEV1101にP-VOLのLDEV#と同一の番号が格納されている行における、初回アクセスビット1102と変更前JVOL#1105と変更前SEQ#1106の内容を更新する。具体的には、初回アクセスビット1102の内容を「0」に変更し、変更前JVOL#1105及び変更前SEQ#1106の内容を無効値(NULL)に変更する。これらの処理が終了した後、処理はS122に進む。
 一方、S112の判定で、初回アクセスビット1102が「0」であった場合(S112:N)は、RESTARTマーカを作成済みの場合、あるいはP-VOLのオーナ権変更が発生していない場合であるため、S113の処理は行わず、S122に進む。
 S122以降では、ENDマーカ、RESTARTマーカの作成要否の確認処理、そしてENDマーカ、RESTARTマーカの作成が必要な場合には、ENDマーカ、RESTARTマーカの作成が行われる。S122でMPB(#L)は、オーナ権移動情報テーブル1100の内容を参照し、現在ジャーナル作成対象としているP-VOLとペア関係にあるS-VOLのオーナ権変更が発生したか判定する。具体的にはMPB(#L)は、オーナ権移動情報テーブル1100のS-VOLオーナ権の欄(1103、1104)に有効な値(無効値でない値)が格納されていれば、S-VOLのオーナ権変更が発生したと判断し、S-VOLオーナ権の欄(1103、1104)に無効値が格納されていれば、S-VOLのオーナ権変更が発生していないと判断する。
 S122で、オーナ権変更が発生していないと判定された場合(S122:N)、S126に移り、P-VOLのジャーナルデータの作成、格納処理を行って(図10と同じ処理)、図16の処理を終了する。S-VOLのオーナ権変更が発生したと判定された場合(S-VOLオーナ権1103に有効な値が格納されていた場合)、S124に進む。
 S124では、ENDマーカの作成、及びENDマーカのジャーナルボリュームへの格納を行う。ENDマーカの作成に必要な情報は、図9に示されているように、シーケンス番号(652-1)、LDEV番号(つまりP-VOLのLDEV#)(652-M2)、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)、変更前SEQ#(652-M5)である。オーナ権変更前のJVOL#、オーナ権変更後のJVOL#についての情報は、P-VOLのオーナ権を持つMPBのMPB#(これは本処理を実行しているMPBのMPB#である)と、オーナ権移動情報テーブル1100に格納されている変更前S-VOLオーナ権1103と変更後S-VOLオーナ権1104の情報を用いて、反映ジャーナルボリュームテーブル500を検索することで特定できる。シーケンス番号(652-1)及び変更前SEQ#(652-M5)は、シーケンス番号管理テーブル700を参照することで得ることができる。MPB(#L)は、ENDマーカを作成し、S-VOLのオーナ権が変更される前のジャーナルボリューム(JVOL E)にENDマーカを格納する。
 S125では、RESTARTマーカの作成、ジャーナルボリューム(オーナ権変更後のジャーナルボリューム)へのRESTARTマーカの格納を行う。RESTARTマーカの作成に必要な情報は、シーケンス番号(652-1)を除いて、ENDマーカに格納した情報と同じであるので、S124で作成したENDマーカに格納した情報を用いて、RESTARTマーカを作成する。MPB(#L)はRESTARTマーカを作成すると、S-VOLのオーナ権が変更された後のジャーナルボリュームにRESTARTマーカを格納する。これ以降、オーナ権が変更されたS-VOLとペア関係にあるP-VOLに対するライトデータに基づいて生成されるジャーナルは、オーナ権が変更された後のジャーナルボリュームに書き込まれる。そしてオーナ権が変更される前のジャーナルボリュームのENDマーカより後には、当該S-VOLとペア関係にあるP-VOLに対するライトデータに基づいて生成されるジャーナルは格納されない。
 またS125では、RESTARTマーカの作成及びジャーナルボリュームへの格納に加え、オーナ権移動情報テーブル1100、ペア管理テーブル300の内容更新も行う。具体的には、ペア管理テーブル300について、現在ジャーナル作成対象としているP-VOLのLDEV#に対応する行(P-VOL#304が、現在ジャーナル作成対象としているP-VOLのLDEV#と等しい行)の、MPB#307の欄に、S-VOLのオーナ権を持つ、副ストレージ装置10bのMPB#を格納する(これは変更後S-VOLオーナ権1104に格納されている値を格納すればよい)。そしてオーナ権移動情報テーブル1100については、現在ジャーナル作成対象としているP-VOLのLDEV#に対応する行の、変更前S-VOLオーナ権1103、変更後S-VOLオーナ権1104の内容を無効値(NULL)に変更する。
 S125の処理が終了すると、S126でP-VOLのジャーナルデータの作成及び格納処理(図10と同じ処理)を行って、図17の処理を終了する。
 図16、17の処理でジャーナルボリュームに格納された、ENDマーカ及びRESTARTマーカは、副ストレージ装置10bにおける格上げ処理で用いられる。あるP-VOL(あるいはS-VOL)のオーナ権が変更されると、P-VOLに対するライトデータに基づいて作成されるジャーナルの格納されるジャーナルボリュームが、オーナ権変更前後で変更される。つまりオーナ権変更前に作成されたジャーナルは、オーナ権変更前に使用していたジャーナルボリュームに格納され、オーナ権変更後に作成されたジャーナルは、オーナ権変更後に使用するジャーナルボリュームに格納されることになる。この場合、オーナ権変更前のジャーナルボリュームに格納されたジャーナルが、オーナ権変更後のジャーナルボリュームに格納されたジャーナルよりも時間的に先に、S-VOLに反映(格上げ)された場合には、S-VOLへのデータ書き込み順は、P-VOLに対するデータ書き込み順と同じになるため、データ一貫性が保証される。逆に、オーナ権変更後のジャーナルボリュームに格納されたジャーナルが、オーナ権変更前のジャーナルボリュームに格納されたジャーナルよりも時間的に先に、S-VOLに反映された場合、S-VOLへのデータ書き込み順は、P-VOLに対するデータ書き込み順と逆になるので好ましくない。そこで副ストレージ装置10bでは、ジャーナルボリュームに格納されたENDマーカ及びRESTARTマーカを用いて、オーナ権変更前のジャーナルボリュームに格納されたジャーナルが、オーナ権変更後のジャーナルボリュームに格納されたジャーナルよりも先にS-VOLに反映(格上げ)されるように制御する。
 図18を用いて、P-VOLまたはS-VOLのオーナ権が変更された場合の、副ストレージ装置10bにおけるジャーナル格上げ処理について説明する。この処理は副ストレージ装置10bで行われる格上げ処理の一部、具体的には先に説明した図12における処理のS24、S33に相当する処理である(つまり、リモートコピー処理中にP-VOLあるいはS-VOLのオーナ権が変更されることを許す場合の格上げ処理は、図12のS24、S33の処理が、以下で説明する図18に記載された処理に置き換わったものである)。
 またこの処理は、各MPB111が自身に割り当てられているジャーナルボリュームごとに実行する(つまり4つのジャーナルボリューム(JVOL A,B,C,D)が割り当てられているMPB111では、JVOL A,B,C,Dそれぞれについて図18の処理を実行する。一例として、4つのジャーナルボリューム(JVOL A,B,C,D)が割り当てられているMPB111では、図18の処理を実行する4つの独立したプロセス(またはスレッド)を動作させることで、格上げ処理が行われる。
 S201では、MPB111はジャーナルボリュームから、今回の格上げ処理で格上げ対象となっているジャーナル(複数)を読み出す。
 S202では、MPB111はS201で読み出した各ジャーナルについて、ジャーナルの種別651を先頭のジャーナルから順に確認し、RESTARTマーカが存在するか判定する。RESTARTマーカが含まれていた場合(S202:Y)、順序制御用テーブル1200を参照し、S202で検出したRESTARTマーカに対応したENDマーカの情報が格納されているか判定する(S203)。
 S203では具体的には、順序制御用テーブル1200内のLDEV#1201が、RESTARTマーカに含まれているLDEV#(652-M2)と同一で、かつRESTARTマーカに含まれている、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)、そして変更前SEQ#(652-M5)がそれぞれ、変更前JVOL#1204、変更後JVOL#1205、変更前JVOLSEQ#1206と等しい行があるか判定する。当該判定がYesの場合(S204:Y)、他のジャーナルボリュームに対して行われている格上げ処理によって、S202で検出したRESTARTマーカに対応したENDマーカより前にジャーナルボリュームに格納されているジャーナルが処理済み(格上げ処理済み)であることを意味する。そのためこの場合、S206に進み、S201で読み出したジャーナルについて格上げ処理を実施する。
 なお、格上げ処理の完了後、順序制御用テーブル1200内の情報を無効化する。具体的には順序制御用テーブル1200において、LDEV#1201がRESTARTマーカに含まれているLDEV#と同一で、かつRESTARTマーカに含まれている、変更前JVOL#(652-M3)、変更後JVOL#(652-M4)、そして変更前SEQ#(652-M5)がそれぞれ、変更前JVOL#1204、変更後JVOL#1205、変更前JVOLSEQ#1206と等しい行について、ENDマーカビット1202、変更前JVOL#1204、変更後JVOL#1205、変更前JVOLSEQ#1206の内容を無効値(NULL)に変更する。
 S204での判定がNoの場合には、一定時間待ち(S205)、再びS203に戻って順序制御用テーブル1200を参照し、ENDマーカまでのジャーナルについて格上げ処理が終了したか判定する(S204)。判定がYesであれば、S206以降の処理に進む。なお、RESTARTマーカが複数含まれていた場合(これは、複数のP-VOLあるいはS-VOLのオーナ権が変更されていた場合に発生し得る)、順序制御用テーブル1200に全てのRESTARTマーカに対応したENDマーカの情報が格納されるまで、S203~S205の処理を繰り返す。
 S207で、MPB111は今回読み出したジャーナル(かつS206で格上げ処理が行われたジャーナルでもある)の中にENDマーカが含まれていたか判定する。ENDマーカが含まれていなかった場合(S207:N)には、そのまま処理を終了する。ENDマーカが含まれていた場合(S207:Y)、ENDマーカに格納されている内容を順序制御用テーブル1200に反映する(S208)。具体的には、ENDマーカのLDEV#(652-M2)の値と順序制御用テーブル1200のLDEV#1201の値が等しい行について、ENDマーカに含まれている変更前JVOL#(652-M3)及び変更後JVOL#(652-M4)の内容を、変更前JVOL#1204、変更後JVOL#1205に格納する。またENDマーカに格納されている変更前SEQ#(652-M5)の内容を、変更前JVOLSEQ#1206に格納する。そしてENDマーカビット1202に1を格納し、ジャーナル格上げ処理を終了する。
 なお、順序制御用テーブル1200に、あるLDEV(P-VOL、S-VOL)についてのENDマーカの情報を格納する処理を行うプロセス(またはスレッド)は、S202の処理で、当該LDEVに対するRESTARTマーカが含まれていると判定する処理を行ったプロセス(またはスレッド)とは異なる(独立した)プロセス(またはスレッド)である。なぜならば、ENDマーカやRESTARTマーカが格納される場合とは、P-VOL/S-VOLのオーナ権が変更された場合であり、ENDマーカはオーナ権変更前にジャーナルを格納していたジャーナルボリュームに格納され、RESTARTマーカはオーナ権変更後にジャーナルを格納するジャーナルボリュームに格納されるためである。
 たとえば、図19のように、MPB#3に割り当てられたジャーナルボリュームからRESTARTマーカ2002が検出された場合、ENDマーカ2001は異なるジャーナルボリューム(MPB#1に割り当てられたジャーナルボリューム)に存在している。そのため、MPB#3において図18の処理を実行しているときにRESTARTマーカを検出した場合、しばらく待機していると、MPB#1で実行されるジャーナル格上げ処理においてENDマーカが検出され、その結果MPB#1は順序制御用テーブル1200にENDマーカを検出した旨を反映する処理を行う。そのため、MPB#3は順序制御用テーブル1200の内容を観測し続けていれば、MPB#1でENDマーカが格納される直前までのジャーナルが格上げされたことを確認することができる。
 図19の例では、ENDマーカ2001の格納されたジャーナルボリュームが割り当てられているMPBと、RESTARTマーカ2002の格納されたジャーナルボリュームが割り当てられているMPBとが異なる場合について図示されているが、ENDマーカ2001の格納されたジャーナルボリュームとRESTARTマーカ2002の格納されたジャーナルボリュームとが、同一MPBに割り当てられている場合でも、同様である。
 以上が、P-VOLまたはS-VOLのオーナ権が変更された場合の、副ストレージ装置10bにおけるジャーナル格上げ処理の説明である。本発明の実施例2に係るストレージシステムでは、このような処理を行うため、オーナ権変更前のジャーナルボリュームに格納されたジャーナルが、オーナ権変更後のジャーナルボリュームに格納されたジャーナルよりも先にS-VOLに反映(格上げ)されるため、データ一貫性を保証することができる。
 なお、S-VOLのオーナ権が変更された旨の通知は、副ストレージ装置10bでS-VOLのオーナ権が変更された後に、副ストレージ装置10bから正ストレージ装置10aに通知され、オーナ権移動情報テーブル1100にオーナ権が変更された旨の内容が格納される。その後正ストレージ装置10aでオーナ権移動情報テーブル1100の内容に基づいて、ジャーナルボリュームへのENDマーカ、RESTARTマーカの挿入が行われる。そのため、副ストレージ装置10bでのS-VOLのオーナ権の変更後から、正ストレージ装置10aでのジャーナルボリュームへのENDマーカ挿入処理の前まで(正確にはオーナ権移動情報テーブル1100の内容が更新される前まで)に、P-VOL(オーナ権が変更されたS-VOLとペア関係にあるP-VOL)へのライト、及び当該ライトに伴うジャーナル作成・格納が行われると、そのジャーナルはオーナ権変更前に用いられていた正ジャーナルボリューム、副ジャーナルボリュームに格納されることがある。そのため、副ストレージ装置10bでこのジャーナルの格上げ処理を行う際、当該ジャーナルの格納されているジャーナルボリュームのオーナ権を持つMPBと、当該ジャーナルの内容が反映されるべきS-VOLのオーナ権を持つMPBとが異なる状態が発生する。
 この場合のジャーナル格上げ処理では、たとえば以下のような処理を行うことで、ジャーナルの内容をS-VOLに反映する。ジャーナルボリュームのオーナ権を持つMPBがジャーナルの内容を解析して、ジャーナルデータ部分(610-2)をキャッシュに格納する。その後ジャーナルボリュームのオーナ権を持つMPBがS-VOLのオーナ権を持つMPBに、キャッシュ上に格納されたジャーナルデータ部分の内容をS-VOLの所定位置(ジャーナルのメタデータ652、具体的にはLBA652-3、データ長652-4で特定される位置)に格納するように指示する。S-VOLのオーナ権を持つMPBはその指示を受けて、キャッシュ上に格納されたジャーナルデータ部分の内容をS-VOLに反映する。
 そのため、この場合にはMPB間通信が発生し、若干処理性能が悪化することがある。ただし副ストレージ装置10bでS-VOLのオーナ権が変更されてから、正ストレージ装置10aで、ジャーナルボリュームへのENDマーカ、RESTARTマーカが挿入されるまでの時間はそれほど長くはないため、格上げ処理でMPB間通信を必要とするジャーナルの数はそれほど多くはないため、性能への影響は少ない。
 以上が、本発明の実施例に係るストレージシステムで実行される、ジャーナルを利用したリモートコピー処理の説明である。本発明の実施例に係るストレージシステムでは、複数のMPBがジャーナル作成、格上げ処理を行うため、ジャーナル作成や格上げ処理の負荷を複数のプロセッサに分散させることができる。また、ジャーナルに定期的に格納されるタイムスタンプを用いた、S-VOLへの反映(格上げ)可能なデータを調整することで、各ボリュームへのデータ書き込み順を制御できる。さらにリモートコピー運用中に、P-VOLあるいはS-VOLのオーナ権が変更されたとしても、オーナ権変更後のジャーナルボリュームに格納されたジャーナルが、オーナ権変更前のジャーナルボリュームに格納されたジャーナルよりも先にS-VOLに反映(格上げ)されないように制御することができる。
 以上、本発明の実施例を説明してきたが、これは本発明の説明のための例示であって、本発明を上で説明した実施例に限定する趣旨ではない。本発明は、他の種々の形態でも実施可能である。たとえば実施例に記載のストレージシステムにおいて、正副ストレージ装置10a、10b内のCHA112やMPB111等の要素数は、図に示された数に限定されるわけではない。また正ストレージ装置10a、副ストレージ装置10bで、CHA112やMPB111等の要素数が異なっていても、本発明は実施可能である。
 また、実施例では、正副ストレージ装置10a、10bの有する各種テーブルの情報は、SM143に格納される態様のほか、SM143に格納された情報をPM142に複製して、各MP141はPM142上の情報を主として利用するようにしてもよい。
 また、実施例では、各ボリュームのオーナ権の割り当て単位がプロセッサボード(MPB)であり、オーナ権を有するプロセッサボード内の任意のプロセッサが、ボリュームに対するアクセス処理を担当することになっているが、別の態様として、各ボリュームのオーナ権の割り当て単位をプロセッサ(MP141)にする(この場合、たとえばLDEV Aのオーナ権をMPB#0の第1MPのみが持ち、MPB#0の第1MP以外のMPはLDEV Aのオーナ権を持たない等の設定が可能になる)ようにしてもよい。
 また、実施例では、正ストレージ装置10aのMPBはそれぞれ、副ストレージ装置10bのMPB数と同数のジャーナルボリュームのオーナ権を有し、副ストレージ装置10bのMPBはそれぞれ、正ストレージ装置10aのMPB数と同数のジャーナルボリュームのオーナ権を有する構成の前提で説明したが、たとえば一部のMPBが、P-VOL(またはS-VOL)のオーナ権を有していない場合、当該MPBでジャーナルボリュームに対する処理が行われることはない。そのため、正ストレージ装置10aは、P-VOLのオーナ権を有するMPBのみがそれぞれ、副ストレージ装置10bのMPBのうち、S-VOLのオーナ権を有しているMPBの数と同数のジャーナルボリュームのオーナ権を有するようにし、副ストレージ装置10bは、S-VOLのオーナ権を有するMPBのみがそれぞれ、正ストレージ装置10aのMPBのうち、P-VOLのオーナ権を有しているMPBの数と同数のジャーナルボリュームのオーナ権を有するような構成をとってもよい。
 また本発明の実施例に係るストレージシステムでは、正副ストレージ装置のMPBが複数のジャーナルボリュームのオーナ権を有する構成であるが、これはP-VOLに対するライトデータに基づいて生成されるジャーナルの処理をP-VOLのオーナ権を持つMPBと同一のMPBで実施させること、またS-VOLへのデータ格上げ用のジャーナルの処理をS-VOLのオーナ権を持つMPBと同一のMPBで実施させるための一手法に過ぎない。たとえば正副ストレージ装置の各MPBが、1つのジャーナルボリュームのみのオーナ権を有する構成をとり、正ストレージ装置から副ストレージ装置へのジャーナル送信時に、各ジャーナル(タイムスタンプ、END/RESTARTマーカ含む)を適切な副ストレージ装置のジャーナルボリューム(当該ジャーナルに対応するS-VOLのオーナ権を有するMPBに割り当てられているジャーナルボリューム)に格納するようにしても、本発明の実施例に係るストレージシステムと同様の効果を得ることができる。
10a: 正ストレージ装置
10b: 副ストレージ装置
11: ストレージコントローラ
12:  ディスクユニット
13:  管理端末
111: MPB
112: CHA
113: DKA
114: CMPK
115: スイッチ
141: MP
142: LM/PM
143: SM
144: CM

Claims (15)

  1.  正ストレージ装置と副ストレージ装置から成るストレージシステムであって、
     前記正ストレージ装置は、ホスト計算機及び/または前記副ストレージ装置と接続するための正チャネルアダプタと、前記ホスト計算機に提供される複数のプライマリボリュームと、前記副ストレージ装置に転送すべきジャーナルを格納するための複数の正ジャーナルボリュームと、前記プライマリボリューム及び前記正ジャーナルボリュームに対するI/O処理を実行する複数の正プロセッサボードを有し、前記正プロセッサボードの各々は、前記複数の正ジャーナルボリュームのうちの1以上の正ジャーナルボリュームについての処理を担当する権利であるオーナ権を有するよう構成されており、
     前記副ストレージ装置は、ホスト計算機及び/または前記正ストレージ装置と接続するための副チャネルアダプタと、前記複数のプライマリボリュームのデータ複製を格納する複数のセカンダリボリュームと、前記正ストレージ装置から転送されてくるジャーナルを格納するための複数の副ジャーナルボリュームと、前記セカンダリボリューム及び前記副ジャーナルボリュームに対するI/O処理を実行する複数の副プロセッサボードを有し、前記副プロセッサボードの各々は、前記複数の副ジャーナルボリュームのうちの1以上の副ジャーナルボリュームについてのオーナ権を有するよう構成されており、
     前記正プロセッサボードは、前記プライマリボリュームのうちの前記正プロセッサボードがオーナ権を有する1のプライマリボリュームが指定されたライト要求を、前記ホスト計算機から受信すると、
     前記ライト要求及び前記ライト要求で指定されたライトデータをもとにジャーナルを作成し、前記正プロセッサボードがオーナ権を有する1の前記正ジャーナルボリュームにジャーナルを格納し、前記正ジャーナルボリュームに格納された前記ジャーナルを、前記1のプライマリボリュームのデータ複製を格納するペア関係にある前記セカンダリボリュームのオーナ権を有する、前記副ストレージ装置の副プロセッサボードがオーナ権を有する前記副ジャーナルボリュームに対して送信する、
    ことを特徴とする、ストレージシステム。
  2.  前記正プロセッサボードの各々は、前記副ストレージ装置の副プロセッサボードの数と同数の正ジャーナルボリュームについてオーナ権を有し、
     前記副プロセッサボードの各々は、前記正ストレージ装置の正プロセッサボードの数と同数の副ジャーナルボリュームについてオーナ権を有する、
    ことを特徴とする、請求項1に記載のストレージシステム。
  3.  前記副ストレージ装置の各副プロセッサボードは、前記副プロセッサボードがオーナ権を有する副ジャーナルボリュームから前記ジャーナルを読み出し、
     前記読み出されたジャーナルの内容に基づいて、前記副プロセッサボードがオーナ権を有する前記セカンダリボリュームの内容を更新する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  4.  前記正ストレージ装置は、前記正ジャーナルボリュームの各々に、定期的にタイムスタンプを格納し、前記タイムスタンプは、前記ジャーナルとともに前記副ストレージ装置へ送信され、
     前記副プロセッサボードの各々は、前記各セカンダリボリュームの内容を更新する際、前記副ジャーナルボリュームに含まれている1以上のタイムスタンプの中で、前記副ジャーナルボリュームの全てに共通に含まれているタイムスタンプの最大値より前に格納されているジャーナルの内容に基づいて、前記セカンダリボリュームの内容を更新する、
    ことを特徴とする、請求項3に記載のストレージシステム。
  5.  前記正ストレージ装置は、
     前記プライマリボリュームのオーナ権が、前記複数の正プロセッサボードのうちの第1正プロセッサボードから第2正プロセッサボードに変更される時、
     前記第1正プロセッサボードは、前記第1の正プロセッサボードがオーナ権を有する正ジャーナルボリュームにENDマーカを格納し、
     前記ENDマーカの格納後であって、前記プライマリボリュームについてのジャーナルが作成される前に、前記第2正プロセッサボードは、前記第2の正プロセッサボードがオーナ権を有する正ジャーナルボリュームにRESTARTマーカを格納する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  6.  前記副ストレージ装置は、
     前記セカンダリボリュームのオーナ権が、前記複数の副プロセッサボードのうちの第1副プロセッサボードから第2副プロセッサボードに変更されると、前記オーナ権の変更された旨の情報を前記正ストレージ装置に送信するよう制御され、
     前記オーナ権の変更されたセカンダリボリュームとペア関係にある前記プライマリボリュームのオーナ権を有する前記正プロセッサボードは、前記第1副プロセッサボードがオーナ権を有する第1副ジャーナルボリュームに送信すべきジャーナルを格納する、第1正ジャーナルボリュームと、前記第2副プロセッサボードがオーナ権を有する第2副ジャーナルボリュームに送信すべきジャーナルを格納する、第2正ジャーナルボリュームとを有しており、
     前記正ストレージ装置は、前記副ストレージ装置から前記オーナ権の変更された旨の情報を受信すると、
     前記オーナ権の変更されたセカンダリボリュームとペア関係にある前記プライマリボリュームのオーナ権を有する前記正プロセッサボードが、前記第1正ジャーナルボリュームにENDマーカを格納し、前記第2正ジャーナルボリュームにRESTARTマーカを格納する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  7.  前記副ストレージ装置の各副プロセッサボードは、前記副プロセッサボードがオーナ権を有する副ジャーナルボリュームから、1以上の前記ジャーナルを読み出し、
     前記読み出されたジャーナルの中に、前記RESTARTマーカが含まれていた場合、前記ENDマーカが前記副ストレージ装置で検出されたことが確認されるまで、前記副ジャーナルボリューム中の前記RESTARTマーカ以降に格納されていたジャーナルに対応する前記セカンダリボリュームの内容更新を待機する、
    ことを特徴とする、請求項5に記載のストレージシステム。
  8.  前記ENDマーカ及び前記RESTARTマーカには、オーナ権変更対象である前記プライマリボリュームの識別番号と、前記プライマリボリュームのオーナ権が変更される前に前記プライマリボリュームについてのジャーナルが格納されていたジャーナルボリュームである変更前ジャーナルボリュームの情報、前記プライマリボリュームのオーナ権が変更される直前に前記変更前ジャーナルボリュームに格納されたジャーナルに含まれているシーケンス番号、前記プライマリボリュームのオーナ権が変更された後に前記プライマリボリュームについてのジャーナルが格納されることになったジャーナルボリュームである変更後ジャーナルボリュームの情報のセットが含まれており、
     前記副ストレージ装置の各副プロセッサボードは、前記読み出されたジャーナルに前記ENDマーカが含まれていた場合、前記ENDマーカに含まれている、前記プライマリボリュームの識別番号、前記変更前ジャーナルボリュームの情報、前記シーケンス番号、前記変更後ジャーナルボリュームの情報の組を前記副ストレージ装置のメモリに記憶しておき、
     前記副ストレージ装置の各副プロセッサボードは、前記読み出されたジャーナルに前記RESTARTマーカが含まれていた場合、前記RESTARTマーカが含まれている情報のセットと一致する情報が、前記副ストレージ装置のメモリに記憶されていることが確認されるまでは、前記副ジャーナルボリューム中の前記RESTARTマーカ以降に格納されていたジャーナルに対応する前記セカンダリボリュームの内容更新を待機し、
     前記RESTARTマーカが含まれている情報のセットと一致する情報が、前記副ストレージ装置のメモリに記憶されていることが確認されると、前記副ジャーナルボリューム中の前記RESTARTマーカ以降に格納されていたジャーナルに基づいて、前記セカンダリボリュームの内容を更新する、
    ことを特徴とする、請求項7に記載のストレージシステム。
  9.  前記ホスト計算機から発行されるライト要求は、前記ホスト計算機に接続された前記正チャネルアダプタによって受信され、
     前記正チャネルアダプタは、受信した前記ライト要求で指定されている前記プライマリボリュームの識別番号に基づいて、前記ライト要求で指定されている前記プライマリボリュームのオーナ権を有する前記正プロセッサボードを特定し、
     前記正チャネルアダプタが前記特定された前記正プロセッサボードに対し、前記ライト要求を送信することにより、前記正プロセッサボードは前記ライト要求を受信する、
    ことを特徴とする、請求項1に記載のストレージシステム。
  10.  複数のプライマリボリュームと、複数の正ジャーナルボリュームと、前記プライマリボリューム及び前記正ジャーナルボリュームに対するI/O処理を実行する複数の正プロセッサボードを有し、ホスト計算機と前記プライマリボリュームの複製を格納する副ストレージ装置とに接続された正ストレージ装置であって、
     前記正プロセッサボードの各々は、前記複数の正ジャーナルボリュームのうちの1以上の正ジャーナルボリュームについての処理を担当する権利であるオーナ権を有するよう構成されており、
     前記正プロセッサボードは、前記プライマリボリュームのうちの前記正プロセッサボードがオーナ権を有する1のプライマリボリュームが指定されたライト要求を、前記ホスト計算機から受信すると、
     前記ライト要求及び前記ライト要求で指定されたライトデータをもとにジャーナルを作成し、前記正プロセッサボードがオーナ権を有する前記ジャーナルボリュームにジャーナルを格納し、前記正ジャーナルボリュームに格納された前記ジャーナルを、前記1のプライマリボリュームのデータ複製を格納する関係にある前記セカンダリボリュームのオーナ権を有する、前記副ストレージ装置が有する複数の副プロセッサボードのうちの1の副プロセッサボードがオーナ権を有する前記副ジャーナルボリュームに対して送信する、
    ことを特徴とする、正ストレージ装置。
  11.  前記正プロセッサボードの各々は、前記副ストレージ装置の副プロセッサボードの数と同数の正ジャーナルボリュームについてのオーナ権を有する、
    ことを特徴とする、請求項10に記載の正ストレージ装置。
  12.  前記プライマリボリュームのオーナ権が、前記複数の正プロセッサボードのうちの第1正プロセッサボードから第2正プロセッサボードに変更される時、
     前記第1正プロセッサボードは、前記第1の正プロセッサボードがオーナ権を有する正ジャーナルボリュームにENDマーカを格納し、
     前記ENDマーカの格納後であって、前記プライマリボリュームについてのジャーナルが作成される前に、前記第2正プロセッサボードは、前記第2の正プロセッサボードがオーナ権を有する正ジャーナルボリュームにRESTARTマーカを格納する、
    ことを特徴とする、請求項11に記載の正ストレージ装置。
  13.  複数のセカンダリボリュームと、複数の副ジャーナルボリュームと、前記セカンダリボリューム及び前記副ジャーナルボリュームに対するI/O処理を実行する複数の副プロセッサボードを有し、前記セカンダリボリュームの複製元ボリュームである複数のプライマリボリュームを有する正ストレージ装置とに接続された副ストレージ装置であって、
     前記副プロセッサボードの各々は、前記複数の副ジャーナルボリュームのうちの1以上の副ジャーナルボリュームについてのオーナ権を有するよう構成されており、
     前記副プロセッサボードは、前記正ストレージ装置から、前記副プロセッサボードがオーナ権を有する前記副ジャーナルボリュームを格納先として指定された前記ジャーナルを受信すると、前記ジャーナルを前記副プロセッサボードがオーナ権を有する前記副ジャーナルボリュームに格納した後、
     前記副プロセッサボードがオーナ権を有する副ジャーナルボリュームから前記ジャーナルを読み出し、
     前記読み出されたジャーナルの内容に基づいて、前記副プロセッサボードがオーナ権を有する前記セカンダリボリュームの内容を更新する、
    ことを特徴とする、副ストレージ装置。
  14.  前記副プロセッサボードの各々は、前記正ストレージ装置の正プロセッサボードの数と同数の副ジャーナルボリュームについてのオーナ権を有する、
    ことを特徴とする、請求項13に記載の副ストレージ装置。
  15.  前記副ストレージ装置の各副プロセッサボードは、前記副プロセッサボードがオーナ権を有する副ジャーナルボリュームから、1以上の前記ジャーナルを読み出し、
     前記読み出されたジャーナルの中に、前記プライマリボリュームまたはセカンダリボリュームのオーナ権が変更されたことを示す情報であるRESTARTマーカが含まれていた場合、前記プライマリボリュームまたはセカンダリボリュームのオーナ権が変更される直前に挿入される情報であるENDマーカが前記複数の副ジャーナルボリュームのいずれかから検出されたことが確認されるまで、前記副ジャーナルボリューム中の前記RESTARTマーカ以降に格納されていたジャーナルに対応する前記セカンダリボリュームの内容更新を待機する、
    ことを特徴とする、請求項14に記載の副ストレージ装置。
PCT/JP2014/053885 2014-02-19 2014-02-19 ストレージシステム WO2015125227A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/053885 WO2015125227A1 (ja) 2014-02-19 2014-02-19 ストレージシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/053885 WO2015125227A1 (ja) 2014-02-19 2014-02-19 ストレージシステム

Publications (1)

Publication Number Publication Date
WO2015125227A1 true WO2015125227A1 (ja) 2015-08-27

Family

ID=53877765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/053885 WO2015125227A1 (ja) 2014-02-19 2014-02-19 ストレージシステム

Country Status (1)

Country Link
WO (1) WO2015125227A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018055686A1 (ja) * 2016-09-21 2018-03-29 株式会社日立製作所 情報処理システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018506A (ja) * 2003-06-27 2005-01-20 Hitachi Ltd 記憶システム
JP2008269424A (ja) * 2007-04-23 2008-11-06 Hitachi Ltd ストレージシステム、ストレージシステム管理方法、及び計算機システム
WO2010122675A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びバックアップ方法
WO2011132223A1 (en) * 2010-04-21 2011-10-27 Hitachi,Ltd. Storage system and ownership control method for storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018506A (ja) * 2003-06-27 2005-01-20 Hitachi Ltd 記憶システム
JP2008269424A (ja) * 2007-04-23 2008-11-06 Hitachi Ltd ストレージシステム、ストレージシステム管理方法、及び計算機システム
WO2010122675A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びバックアップ方法
WO2011132223A1 (en) * 2010-04-21 2011-10-27 Hitachi,Ltd. Storage system and ownership control method for storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018055686A1 (ja) * 2016-09-21 2018-03-29 株式会社日立製作所 情報処理システム

Similar Documents

Publication Publication Date Title
US6883073B2 (en) Virtualized volume snapshot formation method
JP5142629B2 (ja) 仮想ボリュームのバックアップを行うストレージシステム及び方法
US8209505B2 (en) Storage system and method of taking over logical unit in storage system
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
CN111722791B (zh) 信息处理系统、存储系统和数据传输方法
US8589616B2 (en) Storage system group including scale-out storage system and management method therefor
JP5718533B1 (ja) ストレージシステムのデータ移行方法
US10191685B2 (en) Storage system, storage device, and data transfer method
US9058127B2 (en) Data transfer in cluster storage systems
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2005301590A (ja) ストレージシステム及びデータ複製方法
JP2006048358A (ja) 記憶システム及びデータ処理システム
JP2006309638A (ja) 計算機システムおよびその計算機システムに用いられるホスト計算機およびストレージ装置、ならびに、計算機システムに用いられるボリューム切替方法
US20120260051A1 (en) Computer system, management system and data management method
JP2007323218A (ja) バックアップシステム
US10031682B1 (en) Methods for improved data store migrations and devices thereof
JP5275692B2 (ja) ストレージシステム群
US11579983B2 (en) Snapshot performance optimizations
US20180246663A1 (en) Information system, management program, and program exchange method of information system
US10761764B1 (en) Storage system and data transfer method
WO2013076872A1 (ja) 計算機システム
US10761767B2 (en) Computer system and method for controlling storage apparatus that has replication direction from first logical device (in first storage) to second logical device (in second storage) and from said second logical device to third logical device (in said second storage), wherein said replication direction is reversed when second computer takes over for first computer
WO2019026222A1 (ja) ストレージシステム及びデータ転送制御方法
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
WO2015125227A1 (ja) ストレージシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14883462

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14883462

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP