(57)【要約】【課題】ホストインタフェースがアクティブ−アクティブ方式のストレージシステムでＪＲＭを実現すること。【解決手段】データが書き込まれるセグメントを管理する制御モジュール５がＬＵＮ毎に管理するビットマップを用いてライト処理及び等価性回復処理を実現する。すなわち、制御モジュール５は、管理するＬＵＮについて、ビットマップをビットマップ記憶部６１に記憶する。そして、ミラーＬＵＮ制御部５６が、ビットマップの該当箇所を１にしてターゲットセグメントとミラーセグメントへのデータの書込みを制御し、両セグメントへの書込みが完了するとビットマップを０にリセットする。また、等価性回復部制御部６３が、ビットマップ記憶部６１を参照して等価性回復処理を行う。【選択図】図２
2016024656.tif 000002
【特許請求の範囲】
【請求項１】
ミラー制御を行うデータの等価性回復処理に用いるマップ情報を記憶装置の所定の記憶管理単位で記憶するマップ情報記憶部と、
自身がアクセスを制御する第１の記憶装置を収納した第１の筐体と他のストレージ制御装置がアクセスを制御する第２の記憶装置を収納した第２の筐体との間でミラー制御を行い、データの書込みでは前記マップ情報記憶部を用いて前記第１の記憶装置及び前記第２の記憶装置へのデータの書込みを制御するミラー制御部と
を備えたことを特徴とするストレージ制御装置。
【請求項２】
障害が発生した場合に、前記マップ情報記憶部を参照して前記等価性回復処理を行う等価性回復制御部をさらに備えたことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記第２の記憶装置における前記所定の記憶管理単位の領域を透過的にアクセスする内部イニシエータをさらに備え、
前記第２の記憶装置へのアクセスを制御するストレージ制御装置は、前記第２の記憶装置における前記所定の記憶管理単位の領域を当該ストレージ制御装置から透過的にアクセスさせる内部ターゲット制御部を備え、
前記ミラー制御部は、前記内部イニシエータにより前記内部ターゲット制御部を介して前記第２の記憶装置へのデータの書込みを制御することを特徴とする請求項１又は２に記載のストレージ制御装置。
【請求項４】
前記マップ情報記憶部に記憶されるマップ情報は、前記第１の記憶装置のアクセス単位の１つの領域には前記所定の記憶管理単位の１つの情報だけを含めて前記第１の記憶装置に格納されることを特徴とする請求項１、２又は３に記載のストレージ制御装置。
【請求項５】
第１の記憶装置と第１のストレージ制御装置とを収納した第１の筐体と第２の記憶装置と第２のストレージ制御装置とを収納した第２の筐体を有するストレージシステムにおいて、
前記第１のストレージ制御装置は、
ミラー制御を行うデータの等価性回復処理に用いるマップ情報を記憶装置の所定の記憶管理単位で記憶するマップ情報記憶部と、
前記第１の筐体と前記第２の筐体との間でミラー制御を行い、データの書込みでは前記マップ情報記憶部を用いて前記第１の記憶装置及び前記第２の記憶装置へのデータの書込みを制御するミラー制御部とを備え、
前記第２のストレージ制御装置は、
前記ミラー制御部の制御の下に前記第２の記憶装置へのデータの書込みを制御する書込み制御部
を備えたことを特徴とするストレージシステム。
【請求項６】
ミラー制御を行うデータの等価性回復処理に用いるマップ情報を記憶装置の所定の記憶管理単位でメモリに書込み、
第１のストレージ制御装置がアクセスを制御する第１の記憶装置を収納した第１の筐体と第２のストレージ制御装置がアクセスを制御する第２の記憶装置を収納した第２の筐体との間でミラー制御を行い、データの書込みでは前記メモリに書込んだマップ情報を用いて前記第１の記憶装置及び前記第２の記憶装置へのデータの書込みを制御する
処理を前記第１のストレージ制御装置に実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステム及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
ＨＤＤ等の記憶装置を収容した複数の筐体で構築されたストレージシステムは、筐体間のミラーリング（筐体間ミラー）によりデータを多重化して記憶するとともに高速等価性回復機構（ＪＲＭ：Just  Resynchronization  Mechanism）を備える。ここで、ＪＲＭとは、記憶装置の故障などでミラー間のデータが不一致となった場合に、等価性回復処理を実施して、データの等価性を回復させる機能である。
【０００３】
図８は、ＪＲＭを説明するための図である。図８に示すように、ＪＲＭには、データがライトされた場合の動作と、制御モジュールの故障が発生した場合の動作とがある。データがライトされた場合の動作では、ストレージシステムを制御する制御モジュールは、ライトが要求されると（１）、ビットマップの該当ビットに印をつける（例えば、‘１’を書き込む）（２）。
【０００４】
ここで、ビットマップとは、記憶装置のセグメント毎にライト処理中であるか否かを示すマップである。ビットマップでは、１つのセグメントに１ビットが対応づけられ、ライト処理中のセグメントに対応するビットには印がつけられる。また、１つのセグメントの大きさは２５６ＭＢである。
【０００５】
そして、制御モジュールは、ミラー対象の２つのＬＵＮ（Logical  Unit  Number：論理ユニット番号）の記憶装置にデータを格納する（３）。そして、２つの記憶装置へのデータの格納が完了すると、制御モジュールは、ビットマップの該当ビットの印を消す（例えば、該当ビットに書き込み済みの‘１’を‘０’に変更する）（４）。
【０００６】
制御モジュール故障が発生した場合の動作では、制御モジュールは、ビットマップの印のあるビットを確認し（５）、印のあるビットに対する範囲の一方のデータを他方に上書きする（６）。このとき、どちらからどちらへ上書きするかは重要ではなく、データ不一致を回避することが優先される。そして、制御モジュールは、該当ビットの印を消す（７）。
【０００７】
このように、制御モジュールは、故障が発生した時にライト処理中であったセグメントをビットマップを用いて特定し、特定したセグメントについて、ミラー関係にある一方のデータを他方のデータに上書きすることで、等価性を回復することができる。
【０００８】
なお、各筐体は２つ以上の制御モジュールを有し、ビットマップの該当ビットに印をつける制御は、ストレージシステムを使用する業務サーバからライト要求を受けた制御モジュールが担当する。
【０００９】
また、第１のストレージに第１論理ボリュームを備え、第２のストレージに第１論理ボリュームをコピーした第２論理ボリューム、第２論理ボリュームをコピーした第３論理ボリュームを備え、第３論理ボリュームから第１論理ボリュームを回復する従来技術がある。
【００１０】
また、リモートコピーが実行される第１サイトと第２サイトの各ノードに管理テーブルを備え、第１サイトが障害で停止した場合、第１サイトがクライアントに提供していた論理ディレクトリを第２サイトに管理テーブルを用いて再現する従来技術がある。
【００１１】
また、コピー元筐体からコピー先筐体にデータをコピーするストレージシステムで、グループ化したデータのステータス情報をグループ毎に管理することによって、ストレージ装置側でデータの一貫性を管理する従来技術がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００３−２３３５１８号公報
【特許文献２】特開２００９−３４９９号公報
【特許文献３】特開２０１１−１６４８００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
近年、さまざまな業務の処理がクラウド環境で実現されつつあり、業務の処理の高速化、分散化に適したストレージシステムが要求されている。ストレージシステムの構成として、アクティブ−スタンバイ方式とアクティブ−アクティブ方式がある。
【００１４】
ここで、アクティブ−スタンバイ方式とは、ストレージシステムを使用する業務サーバからのアクセス要求をアクティブな１の制御モジュールだけが受け付ける方式である。一方、アクティブ−アクティブ方式とは、業務サーバからのアクセス要求をどの制御モジュールも受け付けることができる方式である。アクティブ−アクティブ方式は、業務サーバからのアクセス要求に対する処理が複雑になるが、プライマリの制御モジュールの負荷をセカンダリの制御モジュールに分散できる、障害からの復旧が迅速に行えるなどの長所があるため、アクティブ−アクティブ方式のストレージシステムが増加する傾向にある。
【００１５】
しかしながら、アクティブ−アクティブ方式のストレージシステムでは、制御モジュール間の等価状態の管理が複雑になってしまい、そのことが高速等価性回復機能を実現する妨げとなっている。
【００１６】
本発明は、１つの側面では、アクティブ−アクティブ方式のストレージシステムで、等価回復機能を実現することを目的とする。
【課題を解決するための手段】
【００１７】
本願の開示するストレージ制御装置は、１つの態様において、ミラー制御を行うデータの等価性回復処理に用いるマップ情報を記憶装置の所定の記憶管理単位で記憶するマップ情報記憶部を備える。また、本願の開示するストレージ制御装置は、自身がアクセスを制御する第１の記憶装置を収納した第１の筐体と他のストレージ制御装置がアクセスを制御する第２の記憶装置を収納した第２の筐体との間でミラー制御を行うミラー制御部を備える。また、前記ミラー制御部は、データの書込みでは前記マップ情報記憶部を用いて前記第１の記憶装置及び前記第２の記憶装置へのデータの書込みを制御する。
【発明の効果】
【００１８】
１実施態様によれば、アクティブ−アクティブ方式のストレージシステムで、等価回復機能を実現することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例に係るストレージシステムの構成を示す図である。
【図２】図２は、制御モジュールの構成を示す図である。
【図３】図３は、実施例に係る筐体間ミラー処理を説明するための図である。
【図４】図４は、ディスク装置のブロックとＬＵＮ毎のビットマップとの関係を示す図である。
【図５Ａ】図５Ａは、ライト処理のシーケンスを示す第１の図である。
【図５Ｂ】図５Ｂは、ライト処理のシーケンスを示す第２の図である。
【図６】図６は、ミラーボリュームの等価性回復処理のシーケンスを示す図である。
【図７】図７は、ストレージ制御プログラムを実行する制御モジュールのハードウェア構成を示す図である。
【図８】図８は、ＪＲＭを説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示するストレージ制御装置、ストレージシステム及びストレージ制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００２１】
まず、実施例に係るストレージシステムの構成について説明する。図１は、実施例に係るストレージシステムの構成を示す図であり、実施例に係るストレージシステムは、アクティブ−アクティブ方式のストレージシステムである。図１に示すように、ストレージシステム１は、シェルフ＃１、シェルフ＃２及びシェルフ＃３の３つのシェルフ３とインターコネクトスイッチ４とを有する。なお、ここでは説明の便宜上、３つのシェルフ３のみを示したが、ストレージシステム１は、スケールアウト型の装置であり、４つ以上のシェルフ３を有してよい。
【００２２】
シェルフ３は、２つの制御モジュール５と、４つのディスク装置６とを収容する筐体である。制御モジュール５は、業務サーバ２からのアクセス要求に基づいてディスク装置６へのアクセスを制御する。制御モジュール＃１〜制御モジュール＃６の各制御モジュール５は、業務サーバ２からのアクセス要求を受け付けることができ、他の制御モジュール５を介して、他のシェルフ３に収容されたディスク装置６にアクセスすることができる。
【００２３】
ディスク装置６は、業務サーバ２が使用するデータを記憶する装置である。ディスク装置６は、１または複数のＨＤＤやＳＳＤで構築された記憶装置であるが、ディスク装置の代わりに１または複数のフラッシュメモリ等で構築された記憶装置を用いてもよい。なお、ここでは説明の便宜上、４つのディスク装置６を示したが、シェルフ３は、２つ以下や５つ以上のディスク装置６を有してよい。インターコネクトスイッチ４は、制御モジュール５を接続するスイッチである。
【００２４】
図２は、制御モジュール５の構成を示す図である。図２に示すように、制御モジュール５は、ホストインタフェース５１と、インタコネクトインタフェース５２と、ＳＡＳ（Serial-Attached  SCSI）５３と、ターゲット制御部５４と、スナップショット／シンプロ制御部５５と、ミラーＬＵＮ制御部５６とを有する。また、制御モジュール５は、内部イニシエータ５７と、内部ターゲット制御部５８と、ＲＡＩＤ（Redundant  Array  of  Inexpensive  Disks）制御部５９と、ディスク制御部６０とを有する。また、制御モジュール５は、ビットマップ記憶部６１と、ミラーＬＵＮ情報記憶部６２と、等価性回復制御部６３とを有する。
【００２５】
ホストインタフェース５１は、業務サーバ２とのインタフェースであり、業務サーバ２からストレージシステム１へのアクセス要求を受け付け、アクセス処理の結果を業務サーバ２へ応答する。インタコネクトインタフェース５２は、インターコネクトスイッチ４とのインタフェースであり、インターコネクトスイッチ４との間でデータやコマンドの送受信を行う。ＳＡＳ５３は、ディスク装置６とのインタフェースであり、ディスク装置６との間でデータやコマンドの送受信を行う。
【００２６】
ターゲット制御部５４は、業務サーバ２に対して標準ボリューム、シンプロビジョニングボリューム、ミラーボリュームなどの仮想的なボリュームを公開し、当該ボリュームへのアクセスを受け付けるモジュールである。ここで、シンプロビジョニングボリュームとは、実際にデータが書き込まれる際に物理ボリュームの割り当てが行われるボリュームであり、ミラーボリュームは、ミラーデータを格納するボリュームである。スナップショット／シンプロ制御部５５は、スナップショットの作成及びシンプロビジョニング制御を行う。
【００２７】
ミラーＬＵＮ制御部５６は、管理するＬＵＮに対するＩ／Ｏを制御するとともに、ミラー関係にあるセグメントをＬＵＮ単位で管理するモジュールであり、等価性を維持するための等価状態を示すビットマップの管理と、ミラー関係にあるセグメントへのアクセスを制御する。なお、制御モジュール５が故障した場合には、故障した制御モジュール５が管理するＬＵＮは、他の制御モジュール５に引き継がれる。
【００２８】
内部イニシエータ５７は、自制御モジュール５に配置されたディスク装置６のように、他の制御モジュール５に配置されたディスク装置６を透過的アクセスするためのモジュールである。内部ターゲット制御部５８は、自制御モジュール５に配置されたディスク装置６を他の制御モジュール５の内部イニシエータ５７から透過的にアクセスできるように制御するモジュールである。つまり、内部イニシエータ５７は、業務サーバ２のように、ライト要求を発行し、内部ターゲット制御部５８は、ライト要求を受信してディスク装置６へライトコマンドを発行することができる。
【００２９】
ＲＡＩＤ制御部５９は、自制御モジュール５に配置されたディスク装置６をＲＡＩＤ制御するモジュールである。ディスク制御部６０は、ＳＡＳ５３を介してディスク装置６へのアクセスを制御する。
【００３０】
ビットマップ記憶部６１は、自制御モジュール５に割り当てられたＬＵＮに関するビットマップを記憶する。ビットマップは、ディスク装置６に記憶されるが、ディスク装置６から読み出されてビットマップ記憶部６１に記憶され、アクセスされる。また、ビットマップ記憶部６１が更新されると、ビットマップ記憶部６１の情報がディスク装置６に書込まれる。
【００３１】
ミラーＬＵＮ情報記憶部６２は、ミラー関係にあるＬＵＮの情報を記憶する。具体的には、ミラーＬＵＮ情報記憶部６２は、ミラー関係にあるＬＵＮの組を記憶する。等価性回復制御部６３は、等価性回復イベントが発生した場合に、ミラーＬＵＮ情報記憶部６２を参照してミラー関係にあるＬＵＮの等価性を回復する処理を実行する。ここで、等価性回復イベントとは、制御モジュール５の故障などである。
【００３２】
次に、実施例に係る筐体を跨いで実行される筐体間ミラー処理について説明する。図３は、実施例に係る筐体間ミラー処理を説明するための図である。図３は、業務サーバ２からのライト要求を制御モジュール＃２が受け付け、ライト要求に対応するＬＵＮのディスク装置６が制御モジュール＃４でアクセスされ、ミラーデータが格納されるディスク装置６が制御モジュール＃６でアクセスされる場合を示す。
【００３３】
制御モジュール＃２のターゲット制御部５４は、業務サーバ２からのライト要求を受け付けると、ライト要求の対象となる仮想ボリュームを管理する制御モジュールへ制御を渡す。ここでは、ライト要求の対象となる仮想ボリュームを管理する制御モジュールは制御モジュール＃２であるとする。図２では、仮想ボリュームを管理する制御モジュールをＶＤＩＳＫ担当制御モジュールで示す。
【００３４】
ターゲット制御部５４から制御を渡されたスナップショット／シンプロ制御部５５は、ライト要求の対象となる仮想ボリュームに割り当てられたＬＵＮのディスク装置６を制御する制御モジュール＃４のミラーＬＵＮ制御部５６に制御を渡す。このとき、スナップショット／シンプロ制御部５５は、制御モジュール＃２の内部イニシエータ５７及び制御モジュール＃４の内部ターゲット制御部５８を経由して、制御モジュール＃４のミラーＬＵＮ制御部５６に制御を渡す。すると、制御モジュール＃４のミラーＬＵＮ制御部５６が、ＬＵＮ毎に管理するビットマップを用いて、ミラー元の制御モジュール＃４が制御するディスク装置６及びミラー先の制御モジュール＃６が制御するディスク装置６にデータを書込むように制御する。このとき、制御モジュール＃４のミラーＬＵＮ制御部５６は、制御モジュール＃４の内部イニシエータ５７及び制御モジュール＃６の内部ターゲット制御部５８を経由して、制御モジュール＃６が制御するディスク装置６にデータを書込むように制御する。
【００３５】
このように、制御モジュールが各自担当するＬＵＮ毎に等価状態を示すビットマップを管理することによって、アクティブ−アクティブ方式のストレージシステム１は、ＪＲＭを実現することができる。なお、アクティブ−アクティブ方式のストレージシステムでは、業務サーバ２からのアクセス要求を全てのアクティブな制御モジュールが受け付けるため、仮想ボリューム毎にビットマップを全ての制御モジュールに持たすこともできる。
【００３６】
しかしながら、ビットマップを全てのアクティブな制御モジュールに持たすと、ビットマップの容量が増え、また、他の制御モジュールで更新されたビットマップの更新内容の取得のために、制御モジュール間での通信が必要になり、ビットマップの処理でオーバーヘッドが発生する。さらに、スケールアウト型のストレージシステムの規模が拡張していくほどオーバーヘッドが顕著になる。実施例に係るストレージシステム１は、ＪＲＭ用のビットマップの容量を最小にすることができ、同時に余計な制御モジュール間通信をなくし、性能劣化を抑えることができる。
【００３７】
また、実施例に係るストレージシステム１は、ビットマップについて、ディスク装置６の１ブロックに異なるＬＵＮのビットを入れないようにする。したがって、制御モジュールは、異なるＬＵＮのビットマップを異なるブロックから読出す。
【００３８】
図４は、ディスク装置６のブロックとＬＵＮ毎のビットマップとの関係を示す図である。図４に示すように、ＬＵＮ＃００用のビットマップのビットだけがブロック６６に含まれ、ＬＵＮ＃０１用のビットマップのビットだけがブロック６７に含まれる。ここで、ブロックはディスク装置６へのアクセス単位であり、１ブロックは、４０９６バイト又は５１２バイトである。
【００３９】
したがって、実施例に係るストレージシステム１は、異なるＬＵＮのビットマップをアクセスする際に、排他制御を行う必要がなく、ビットマップアクセス時の排他制御によるオーバーヘッドをなくすことができる。
【００４０】
また、１ブロックの中のＬＵＮのビットの操作は、ディスク装置６から１ブロックを読出し、１ビットを変更してから、この１ブロックをディスク装置６に書戻すという操作となる。ライトを開始する時のビットの印付けについてはディスク装置６まで書戻すことは処理順序的に必須である。一方、ライト終了時のビットの印消しはビットマップ記憶部６１上で消しておくだけに留め、次の別なライトを開始する時に一緒にディスク装置６へ書戻してもよい。この方法だと、障害発生時に等価性回復のための上書き処理が若干余計に発生する可能性があるが、障害の時なのでそれほどデメリットは大きくなく、逆に普段のライト処理でのディスク書込み回数が減らせるので、通常動作が速くなるという効果がある。
【００４１】
次に、ライト処理のシーケンスについて説明する。図５Ａ及び図５Ｂは、ライト処理のシーケンスを示す図である。なお、図５Ａ及び図５Ｂでは、業務サーバ２からのライト要求を制御モジュール＃２が受け付ける。また、ライト要求の対象となる最初のセグメントは、制御モジュール＃４が制御するディスク装置６にあり、ミラーデータが格納されるセグメントは、制御モジュール＃６が制御するディスク装置６にある。
【００４２】
図５Ａに示すように、業務サーバ２で動作するアプリケーションが制御モジュール＃２へライト要求を発行する（ステップＳ１）。すると、制御モジュール＃２のターゲット制御部５４が、ライト要求を受け付け、ライト要求の対象となる仮想ボリュームを管理する制御モジュール（ここでは制御モジュール＃２）のスナップショット／シンプロ制御部５５へ制御を渡す（ステップＳ２）。
【００４３】
そして、スナップショット／シンプロ制御部５５は、仮想ボリュームの属性に応じたスナップショット処理及びシンプロビジョニング処理を行う（ステップＳ３）。そして、スナップショット／シンプロ制御部５５は、仮想ボリュームに割り当てられたＬＵＮのディスク装置の中でライト要求でアクセスされるセグメントの範囲を特定し、セグメント毎のライト処理に分割する（ステップＳ４）。
【００４４】
そして、スナップショット／シンプロ制御部５５は、内部イニシエータ５７に、該当セグメントを管理している制御モジュールにライトＩ／Ｏを発行するように指示し、内部イニシエータ５７が、制御モジュール＃４にライトＩ／Ｏを発行する（ステップＳ５）。
【００４５】
すると、制御モジュール＃４の内部ターゲット制御部５８が、ライトＩ／Ｏを受け取ってＩ／Ｏアクセスされたターゲットセグメントを特定する（ステップＳ６）。そして、ミラーＬＵＮ制御部５６が、ビットマップの該当ビットを１に設定し、ビットマップをディスク装置６に書込む（ステップＳ７）。
【００４６】
すなわち、ミラーＬＵＮ制御部５６は、ＲＡＩＤ制御部５９にビットマップの待避を指示し（ステップＳ８）、ＲＡＩＤ制御部５９は、図５Ｂに示すように、ディスク制御部６０にビットマップの書込みを指示する（ステップＳ９）。そして、ディスク制御部６０がビットマップをディスク装置６に書込む（ステップＳ１０）。
【００４７】
そして、ミラーＬＵＮ制御部５６は、ビットマップのディスク装置６への書込みが完了すると、ミラーセグメントを特定し（ステップＳ１１）、ターゲットセグメント及びミラーセグメントにデータの書込みを指示する（ステップＳ１２及びステップＳ１３）。
【００４８】
そして、制御モジュール＃４のディスク制御部６０がターゲットセグメントに対してライトを実行する（ステップＳ１４）。また、制御モジュール＃４の内部イニシエータ５７が、制御モジュール＃６の内部ターゲット制御部５８にミラーセグメントへのデータの書込みを指示する。すると、制御モジュール＃６の内部ターゲット制御部５８がＲＡＩＤ制御部５９にミラーセグメントへのデータの書込みを指示する。
【００４９】
そして、制御モジュール＃６のＲＡＩＤ制御部５９がミラーセグメントへライトＩ／Ｏを発行し（ステップＳ１５）、ディスク制御部６０がミラーセグメントに対してライトを実行する（ステップＳ１６）。
【００５０】
そして、２つのライトが完了すると、等価性が保てたので、ミラーＬＵＮ制御部５６は、ビットマップの該当ビットを０に設定し、ビットマップをディスク装置６に書込む（ステップＳ１７）。すなわち、ミラーＬＵＮ制御部５６は、ＲＡＩＤ制御部５９にビットマップの待避を指示し（ステップＳ１８）、ＲＡＩＤ制御部５９は、ディスク制御部６０にビットマップの書込みを指示する（ステップＳ１９）。そして、ディスク制御部６０がビットマップをディスク装置６に書込む（ステップＳ２０）。
【００５１】
そして、ビットマップのディスク装置６への書込みが完了すると、スナップショット／シンプロ制御部５５は、ライトＩ／Ｏが複数のセグメントに渡っていて他のセグメントについても処理が必要か否かを判定する（ステップＳ２１）。その結果、他のセグメントについて処理が必要でない場合には、ターゲット制御部５４がアプリケーションへ書込みの完了を応答する。
【００５２】
一方、他のセグメントについて処理が必要である場合には、スナップショット／シンプロ制御部５５は、内部イニシエータ５７に、該当セグメントを管理している制御モジュールにライトＩ／Ｏを発行するように指示し、内部イニシエータ５７が、制御モジュール＃ｎにライトＩ／Ｏを発行する（ステップＳ２２）。ここで、制御モジュール＃ｎは、該当セグメントを管理している制御モジュールである。
【００５３】
そして、制御モジュール＃ｎがミラーセグメントを管理する制御モジュール＃ｍとともに、ステップＳ６〜ステップ２０と同様のセグメント書込処理を行い、セグメント書込処理が完了すると、スナップショット／シンプロ制御部５５は、ステップＳ２１に戻る。
【００５４】
このように、ターゲットセグメントを管理する制御モジュールのミラーＬＵＮ制御部５６が、内部イニシエータ５７と、ミラーセグメントを管理する制御モジュールのターゲット制御部５８と連携することで、セグメント単位で筐体間ミラーを行うことができる。
【００５５】
次に、ミラーボリュームの等価性回復処理のシーケンスについて説明する。図６は、ミラーボリュームの等価性回復処理のシーケンスを示す図である。なお、図６では、制御モジュール＃４と制御モジュール＃６との間でミラーボリュームの等価性回復処理を行う場合について説明する。
【００５６】
図６に示すように、等価性回復制御部６３は、等価性回復イベントの発生を検知する（ステップＳ３１）と、ミラーＬＵＮ情報記憶部６２を参照して、当該制御モジュールが管理しているＬＵＮとミラー関係にあるミラーＬＵＮを特定する。そして、等価性回復制御部６３は、ミラー関係にあるＬＵＮの組について、等価性の回復をＬＵＮ制御部５６に指示する（ステップ３２）。
【００５７】
すると、ミラーＬＵＮ制御部５６は、ＲＡＩＤ制御部５９にミラー関係にあるＬＵＮの１組に関するミラー状態を示すビットマップの読出しを指示し（ステップＳ３３）、ＲＡＩＤ制御部５９は、ディスク制御部６０にビットマップの読出しを指示する。そして、ディスク制御部６０は、ビットマップを読出し（ステップＳ３４）、ＲＡＩＤ制御部５９経由でミラーＬＵＮ制御部５６に渡す。
【００５８】
そして、ミラーＬＵＮ制御部５６は、ビットマップに等価性回復が必要なセグメントが存在するか否かを判定し（ステップＳ３５）、等価性回復が必要なセグメントが存在しない場合には、ステップ３３に戻って、次のＬＵＮの組についての等価性回復を行う。
【００５９】
一方、等価性回復が必要なセグメントが存在する場合には、ミラーＬＵＮ制御部５６は、ビットマップを基に、ミラー関係が崩れているセグメントについて復旧を実施する（ステップＳ３６）。
【００６０】
すなわち、ミラーＬＵＮ制御部５６は、ミラー関係が崩れている各セグメントについて、自制御モジュールセグメントのデータのリードをＲＡＩＤ制御部５９に指示し（ステップＳ３７）、ＲＡＩＤ制御部５９は、データのリードをディスク制御部６０に指示する。そして、ディスク制御部６０がセグメントデータを読出し（ステップＳ３８）、ミラーＬＵＮ制御部５６がＲＡＩＤ制御部５９経由でセグメントデータを受け取る。
【００６１】
そして、ミラーＬＵＮ制御部５６は、ミラーセグメントへのデータのライトを内部イニシエータ５７に指示し（ステップＳ３９）、内部イニシエータ５７は、制御モジュール＃６の内部ターゲット制御部５８にミラーセグメントへのデータのライトを指示する。そして、制御モジュール＃６の内部ターゲット制御部５８は、ミラーセグメントへのデータのライトをＲＡＩＤ制御部５９に指示する。
【００６２】
そして、ＲＡＩＤ制御部５９は、ミラーセグメントへのデータのライトをディスク制御部６０に指示し、ディスク制御部６０がセグメントにデータを書込む（ステップＳ４０）。そして、データの書込みが完了すると、ミラーＬＵＮ制御部５６は、修復したセグメントについてビットマップの該当ビットを０に設定する（ステップＳ４１）。
【００６３】
そして、ミラーＬＵＮ制御部５６は、ＲＡＩＤ制御部５９にディスク装置６が記憶するビットマップの更新を指示し、ＲＡＩＤ制御部５９は、ディスク制御部６０にビットマップの更新を指示する。そして、ディスク制御部６０は、ビットマップを更新する（ステップＳ４２）。
【００６４】
そして、ビットマップの更新が完了すると、ミラーＬＵＮ制御部５６は、全てのセグメントを処理し終えたか否かを判定し（ステップＳ４３）、未処理のセグメントがある場合には、ステップＳ３７に戻って次のセグメントを処理する。一方、全てのセグメントを処理し終えた場合には、ミラーＬＵＮ制御部５６は、ステップＳ３３に戻って次のＬＵＮの組についての等価性回復を行う。
【００６５】
このように、制御モジュールが自分の管理するＬＵＮについて等価性回復処理を行うことによって、ストレージシステム１は、仮想ボリューム間の等価性を回復することができる。
【００６６】
上述してきたように、実施例では、データが書込まれるターゲットセグメントを管理する制御モジュール５がＬＵＮ毎に管理するビットマップを用いてライト処理及び等価性回復処理を実現する。すなわち、制御モジュール５は、管理するＬＵＮについて、ビットマップをビットマップ記憶部６１に記憶する。そして、ミラーＬＵＮ制御部５６が、ビットマップの該当箇所を１にしてターゲットセグメントとミラーセグメントへのデータの書込みを制御し、両セグメントへの書込みが完了するとビットマップを０にリセットする。また、等価性回復部制御部６３が、ビットマップ記憶部６１を参照して等価性回復処理を行う。
【００６７】
したがって、アクティブ−アクティブ方式のストレージシステム１で等価性回復処理を実現することができる。また、ＬＵＮへのＩ／Ｏは、シンプロビジョニングやワイドストライピングによって複数のＬＵＮに分散されるので、ビットマップをＬＵＮ単位でＬＵＮを担当するＬＵＮ担当制御モジュールが管理することにより、制御モジュール５間で負荷を分散することができる。したがって、ビットマップを制御モジュール間で共有する必要がない。
【００６８】
また、実施例では、データが書込まれるターゲットセグメントを管理する制御モジュール５の内部イニシエータ５７と、ミラーセグメントを管理する制御モジュール５の内部ターゲット制御部５８とが、連携してミラーセグメントへのデータの書込みを制御する。したがって、制御モジュール５は、自装置が管理するセグメントと同様に、他の制御モジュール５が管理するセグメントにデータを書込むことができる。
【００６９】
また、実施例では、ストレージシステム１は、ディスク装置６の１つのブロックに、１つのＬＵＮに関するビットマップだけを格納するので、ビットマップを読出す際にＬＵＮ間で排他処理を行う必要がなく、排他制御によるオーバーヘッドをなくすことができる。
【００７０】
なお、実施例では、制御モジュール５の制御機能について説明したが、制御モジュール５の制御機能の一部をソフトウェアによって実現することで、同様の機能を有するストレージ制御プログラムを得ることができる。そこで、ストレージ制御プログラムを実行する制御モジュールのハードウェア構成について説明する。
【００７１】
図７は、ストレージ制御プログラムを実行する制御モジュールのハードウェア構成を示す図である。なお、ここでは、図２に示した機能のうち、ホストインタフェース５１、インタコネクトインタフェース５２及びＳＡＳ５３を除いた機能をソフトウェアで実現する場合について説明する。
【００７２】
図７に示すように、制御モジュール５は、ホストインタフェース５１と、インタコネクトインタフェース５２と、ＳＡＳ５３と、ＲＡＭ（Random  Access  Memory）７１と、ＣＰＵ（Central  Processing  Unit）７２と、不揮発性記憶部７３とを有する。
【００７３】
ＲＡＭ７１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ７２は、ＲＡＭ７１からプログラムを読み出して実行する中央処理装置である。不揮発性記憶部７３は、プログラムを記憶する不揮発性の記憶部であり、例えば、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリなどである。そして、コンピュータの一例であるＣＰＵ７２において実行されるストレージ制御プログラムは、不揮発性記憶部７３に記憶され、ＲＡＭ７１に読み出されてＣＰＵ７２によって実行される。
【００７４】
また、実施例では、２つのＬＵＮ間でミラー処理及びＪＲＭを行う場合について説明したが、本発明はこれに限定されるものではなく、３つ以上のＬＵＮ間でミラー処理及びＪＲＭを行う場合にも同様に適用することができる。
【符号の説明】
【００７５】
１    ストレージシステム
２    業務サーバ
３    シェルフ
４    インターコネクトスイッチ
５    制御モジュール
６    ディスク装置
５１    ホストインタフェース
５２    インタコネクトインタフェース
５３    ＳＡＳ
５４    ターゲット制御部
５５    スナップショット／シンプロ制御部
５６    ミラーＬＵＮ制御部
５７    内部イニシエータ
５８    内部ターゲット制御部
５９    ＲＡＩＤ制御部
６０    ディスク制御部
６１    ビットマップ記憶部
６２    ミラーＬＵＮ情報記憶部
６３    等価性回復制御部
６６，６７    ブロック
７１    ＲＡＭ
７２    ＣＰＵ
７３    不揮発性記憶部
【図１】
2016024656.tif 000003
【図２】
2016024656.tif 000004
【図３】
2016024656.tif 000005
【図４】
2016024656.tif 000006
【図５Ａ】
2016024656.tif 000007
【図５Ｂ】
2016024656.tif 000008
【図６】
2016024656.tif 000009
【図７】
2016024656.tif 000010
【図８】
2016024656.tif 000011