(57)【要約】【課題】アクティブ−アクティブ方式のストレージシステムにおいてストレージ制御装置に障害が発生した場合の処理時間を短縮すること。【解決手段】セグメントグループ毎に通常識別子とバディ識別子をミラーＬＵＮ管理テーブル４０ｂで対応付け、制御モジュール３の識別子と状態情報をモジュール管理テーブル４０ａで対応付ける。そして、ボリューム処理部４７がミラーＬＵＮ管理テーブル４０ｂ及びモジュール管理テーブル４０ａに基づいてミラーＬＵＮの処理を行う制御モジュール３を決定し、決定した制御モジュール３にＩ／Ｏを発行する。【選択図】図６
2016143248.tif 000002
【特許請求の範囲】
【請求項１】
データのミラー処理を制御する複数のストレージ制御装置の識別子を優先度とともにミラー処理の単位毎に記憶するミラー装置情報記憶部と、
ストレージ制御装置毎に正常か否かを示す状態情報を記憶する装置状態情報記憶部と、
ボリュームに対する入出力要求の発行先のストレージ制御装置を前記ミラー装置情報記憶部及び装置状態情報記憶部に基づいて決定し、該決定したストレージ制御装置に前記入出力要求を発行する入出力処理部と
を備えたことを特徴とするストレージ制御装置。
【請求項２】
前記入出力処理部により前記入出力要求が発行されるストレージ制御装置に障害が発生した場合に、障害が発生したストレージ制御装置の状態が異常であることを示すように前記装置状態情報記憶部を更新する更新部
をさらに備えたことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
１つのミラー処理の単位に対応付けられた複数のストレージ制御装置のうちミラー処理を行っていたストレージ制御装置に障害が発生した場合に、ミラーデータ間の等価性回復処理を行う等価性回復部
をさらに備えたことを特徴とする請求項２に記載のストレージ制御装置。
【請求項４】
前記入出力処理部は、前記入出力要求を発行したストレージ制御装置に障害が発生し、前記入出力要求に対してエラー応答を受け取った場合に、前記更新部により更新された装置状態情報記憶部及び前記ミラー装置情報記憶部に基づいて前記入出力要求の再発行先の他のストレージ制御装置を決定し、該決定した他のストレージ制御装置に前記入出力要求を再発行することを特徴とする請求項２に記載のストレージ制御装置。
【請求項５】
前記更新部は、前記障害からストレージ制御装置が復旧した場合に、復旧したストレージ制御装置の状態が正常であることを示すように前記装置状態情報記憶部を更新することを特徴とする請求項２に記載のストレージ制御装置。
【請求項６】
前記障害からストレージ制御装置が復旧した際に、前記更新部により前記装置状態情報記憶部が記憶する情報が更新されるまでは前記入出力処理部により発行される入出力要求を滞留させるように前記他のストレージ制御装置へ指示する指示部
をさらに備えたことを特徴とする請求項５に記載のストレージ制御装置。
【請求項７】
データのミラー処理を制御する複数のストレージ制御装置の識別子を優先度とともにミラー処理の単位毎に記憶するミラー装置情報記憶部と、ストレージ制御装置毎に正常か否かを示す状態情報を記憶する装置状態情報記憶部とに基づいて、ボリュームに対する入出力要求の発行先のストレージ制御装置を決定し、
決定したストレージ制御装置に前記入出力要求を発行する
処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
複数のストレージ制御装置を有するストレージシステムにおいて、ストレージシステムを利用する業務サーバからのアクセス方式には、アクティブ−スタンバイ方式とアクティブ−アクティブ方式がある。アクティブ−スタンバイ方式は、ストレージシステムを利用する業務サーバからのアクセス要求をアクティブな１つのストレージ制御装置だけが受け付ける方式である。一方、アクティブ−アクティブ方式は、業務サーバからのアクセス要求をどのストレージ制御装置も受け付けることができる方式である。
【０００３】
アクティブ−アクティブ方式は、業務サーバからのアクセス要求に対する処理が複雑になるが、ストレージ制御装置の負荷を分散できる、障害からの復旧が迅速に行える等の長所があるため、アクティブ−アクティブ方式のストレージシステムが増加する傾向にある。
【０００４】
なお、ボリューム切替に関して、切替元ボリュームのホスト内ＩＤと切替先ボリュームのストレージ内ＩＤとを対応付けた切替テーブルを参照して切替元ボリュームへのアクセス要求を切替先ボリュームに切替えることで、ホスト内ＩＤの枯渇を抑制する技術がある。
【０００５】
また、通常時にはストレージベースの第１のリモートコピーを行い、第１のリモートコピーに障害が発生するとホストベースの第２のリモードコピーに切り替えることにより、ホストへの負荷を抑えつつ障害対応を可能とする技術がある。
【０００６】
また、リモートコピーのボリュームペアのうちの第１のボリュームへのＩ／Ｏリクエストが失敗したときに、第２のボリュームにＩ／Ｏリスエストを送信し、第２のボリュームを最新の状態とすることでシステムの可用性を向上させる技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３０９６３８号公報
【特許文献２】特開２００６−２８５９１９号公報
【特許文献３】特開２００９−２６６１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、アクティブ−アクティブ方式のストレージシステムでは、ストレージ制御装置に障害が発生した場合に、ストレージシステムの等価性を保つために、処理に時間がかかるという問題がある。ここで、ストレージシステムの等価性が崩れるとは、冗長化のためにミラーリングした２つのデータが等しくなくなることである。
【０００９】
本発明は、１つの側面では、アクティブ−アクティブ方式のストレージシステムにおいてストレージ制御装置に障害が発生した場合の処理時間を短縮することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するストレージ制御装置は、１つの態様において、ミラー装置情報記憶部と、装置状態情報記憶部と、入出力処理部とを有する。ミラー装置情報記憶部は、データのミラー処理を制御する複数のストレージ制御装置の識別子を優先度とともにミラー処理の単位毎に記憶する。装置状態情報記憶部は、ストレージ制御装置毎に正常か否かを示す状態情報を記憶する。入出力処理部は、ボリュームに対する入出力要求の発行先のストレージ制御装置を前記ミラー装置情報記憶部及び装置状態情報記憶部に基づいて決定し、該決定したストレージ制御装置に前記入出力要求を発行する。
【発明の効果】
【００１１】
１実施態様によれば、ストレージ制御装置に障害が発生した場合の処理時間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、ミラーＬＵＮを説明するための図である。
【図２】図２は、制御モジュールがダウンしたときのミラーＬＵＮへのアクセスパスの切り替えを説明するための図である。
【図３Ａ】図３Ａは、等価性が崩れる例を説明するための第１の図である。
【図３Ｂ】図３Ｂは、等価性が崩れる例を説明するための第２の図である。
【図４】図４は、マネージャによって等価性を保つ方式を説明するための図である。
【図５】図５は、実施例に係るストレージシステムの構成を示す図である。
【図６】図６は、各制御モジュールの機能構成を示す図である。
【図７】図７は、モジュール管理テーブルの一例を示す図である。
【図８】図８は、ミラーＬＵＮ管理テーブルの一例を示す図である。
【図９】図９は、モジュール管理テーブルを用いたミラーＬＵＮへのＩ／Ｏを説明するための図である。
【図１０Ａ】図１０Ａは、制御モジュールがダウンした場合のモジュール管理テーブルの更新を説明するための図である。
【図１０Ｂ】図１０Ｂは、制御モジュールがダウンした場合のミラーＬＵＮへのＩ／Ｏを説明するための図である。
【図１１】図１１は、Ｉ／Ｏ再発行を説明するための図である。
【図１２】図１２は、高速等価性回復機構を説明するための図である。
【図１３】図１３は、等価性回復処理を説明するための図である。
【図１４Ａ】図１４Ａは、ダウンした制御モジュールの再起動時のＩ／Ｏの流れを説明するための第１の図である。
【図１４Ｂ】図１４Ｂは、ダウンした制御モジュールの再起動時のＩ／Ｏの流れを説明するための第２の図である。
【図１５】図１５は、ボリューム処理部によるＩ／Ｏ発行処理のフローを示すフローチャートである。
【図１６】図１６は、クラスタが制御モジュールの異常を検出した時の処理のフローを示すフローチャートである。
【図１７】図１７は、ダウン通知を受信した時のエージェントの処理のフローを示すフローチャートである。
【図１８】図１８は、制御モジュールが再起動した時の処理のフローを示すフローチャートである。
【図１９】図１９は、制御モジュールの再起動時のＩ／Ｏの流れを示すシーケンス図である。
【図２０】図２０は、ストレージ制御プログラムを実行する制御モジュールのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するストレージ制御装置及びストレージ制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１４】
まず、アクティブ−アクティブ方式のストレージシステムにおいて等価性を崩すことなくミラーボリュームを構成するためのミラーＬＵＮ（Logical  Unit  Number）について説明する。図１は、ミラーＬＵＮを説明するための図である。
【００１５】
図１において、ストレージシステムは、２台のシェルフ２ａを有する。シェルフ２ａは、２台の制御モジュール３ａとＬＵＮで識別される複数のディスク装置を収容する筐体である。なお、図１では、ディスク装置は省略されている。また、２台のシェルフ２ａは、シェルフ＃１及びシェルフ＃２と表され、４台の制御モジュール３ａは、制御モジュール＃１〜制御モジュール＃４と表される。
【００１６】
ミラーＬＵＮ４４は、複数のセグメントグループ４６を束ねた仮想的なディスク装置であり、１つの制御モジュール３ａに１つのミラーＬＵＮ４４が存在する。ここで、セグメントグループ４６は、ミラーリングの処理単位であり、複数のセグメントから構成される。また、セグメントは、ディスク領域の管理単位である。各セグメントグループ４６は、いずれかのミラーＬＵＮに属する。ただし、図１では、ミラーＬＵＮが２重化されており、１つのセグメントグループ４６が制御モジュール＃１のミラーＬＵＮ４４と制御モジュール＃２のミラーＬＵＮ４４に属する。また、制御モジュール＃３と制御モジュール＃４に存在するミラーＬＵＮ４４は省略されている。
【００１７】
ストレージシステムを利用する業務サーバ１０は、ストレージシステムが提供するボリューム４５へのアクセスを制御モジュール３ａに要求する。図１では、例えば、制御モジュール＃３及び制御モジュール＃４にボリューム４５へのアクセスを要求する。業務サーバ１０からのアクセス要求を受け付けた制御モジュール３ａは、ボリューム４５のアクセス領域を含むセグメントグループ４６が属するミラーＬＵＮ４４が存在する制御モジュール３ａへアクセス要求を送信する。すなわち、業務サーバ１０からのアクセス要求を受け付けた制御モジュール３ａは、ボリューム４５のアクセス領域を含むセグメントグループ４６が属するミラーＬＵＮ４４へ仮想的にアクセス要求を発行する。図１では、制御モジュール＃１及び制御モジュール＃２へアクセス要求が発行されている。
【００１８】
そして、アクセス要求が発行された制御モジュール３ａは、ミラーＬＵＮ４４の処理すなわちアクセス要求で指定されるセグメントグループ４６についてミラーリング処理を行う。アクセス要求が発行された制御モジュール３ａは、セグメントグループ４６へのデータの書き込みの場合、ミラーＬＵＮ４４が存在する制御モジュール３ａが２つのディスク装置にデータを書き込むように制御する。
【００１９】
このように、業務サーバ１０からボリューム４５へのアクセスをミラーＬＵＮ４４を経由して行うことによって、アクティブ−アクティブ方式のストレージシステムは、等価性を維持することができる。ミラーＬＵＮ４４を経由しないで業務サーバ１０から要求を受け付けた制御モジュール３ａがミラーリング処理を行うと、複数の制御モジュール３ａが同一セグメントグループ４６へ異なるデータを書き込むタイミングによっては等価性が崩れる場合がある。
【００２０】
次に、制御モジュール３ａがダウンしたときのミラーＬＵＮ４４へのアクセスパスの切り替えについて説明する。図２は、制御モジュール３ａがダウンしたときのミラーＬＵＮ４４へのアクセスパスの切り替えを説明するための図である。図２において、シェルフ＃１は、４台のディスク装置４を有する。
【００２１】
図２に示すように、制御モジュール＃１がダウンすると、バディ制御モジュール３ａである制御モジュール＃２へミラーＬＵＮ４４へのアクセスパスの切り替えが行われる。ここで、バディ制御モジュール３ａは、同じシェルフ２ａに含まれる他の制御モジュール３ａである。図２では、制御モジュール＃１のバディ制御モジュール３ａは制御モジュール＃２であり、制御モジュール＃２のバディ制御モジュール３ａは制御モジュール＃１である。
【００２２】
制御モジュール＃２は、制御モジュール＃１がダウンした場合に、制御モジュール＃１のミラーＬＵＮ４４へのアクセスを引き継ぐ。すなわち、業務サーバ１０からアクセス要求を受け付けた制御モジュール３ａは、制御モジュール＃１に対して行っていたミラーＬＵＮ４４へのアクセスを制御モジュール＃２へ切り替える。図２では、制御モジュール＃４が、制御モジュール＃１に対して行っていたミラーＬＵＮ４４へのアクセスを制御モジュール＃２へ切り替える。
【００２３】
そして、制御モジュール＃２が制御モジュール＃１の代わりにディスク装置４へアクセスする。制御モジュール＃２が制御モジュール＃１の代わりに行うディスク装置４へのアクセスは、バディアクセスと呼ばれる。なお、図２では、説明の便宜上、ミラーディスク装置４へのアクセスは省略されている。
【００２４】
このように、ミラーＬＵＮの存在する制御モジュール３ａがダウンした場合に、ミラーＬＵＮを介したアクセスをバディアクセスに切り替えることで、ストレージシステムは運用を継続することができる。そして、ダウンした制御モジュール３ａが再起動した場合には、ストレージシステムはバディアクセスを元の通常アクセスに切り替える。
【００２５】
ただし、アクセスパスをバディアクセスから通常のアクセスに切り替える場合に、等価性が崩れる場合がある。図３Ａ及び図３Ｂは、等価性が崩れる例を説明するための図である。図３Ａでは、制御モジュール＃２がダウンし、制御モジュール＃１がバディ制御モジュール３ａとして動作する場合を示す。
【００２６】
図３Ａに示すように、制御モジュール＃５は、ボリューム４５へのデータａのＷｒｉｔｅを業務サーバ１０から受信する（１）と、バディ制御モジュール３ａである制御モジュール＃１へデータａの書き込みを要求する（２）。すると、制御モジュール＃１は、データａを２つのディスク装置４へ書き込むようにミラー制御を行う。図３Ａでは、データが書き込まれる２つのディスク装置４のＬＵＮがｌｕｎ＃１及びｌｕｎ＃２と表わされている。
【００２７】
そして、ｌｕｎ＃１へデータａの書き込みが行われる（３）。ここで、ｌｕｎ＃１へのデータａの書き込みとは、ＬＵＮがｌｕｎ＃１であるディスク装置４へのデータａの書き込みを表す。以下、ＬＵＮがｌｕｎ＃ｎ（ｎは整数）であるディスク装置を単にｌｕｎ＃ｎと呼ぶ。
【００２８】
一方、ｌｕｎ＃２へのデータａの書き込みが何らかの理由で遅れる（４）とする。そして、その間に制御モジュール＃２の再起動が行われた（５）とする。すると、図３Ｂに示すように、ミラーＬＵＮの処理が制御モジュール＃２に切り替えられ（６）、制御モジュール＃４へ制御モジュール＃２の再起動が通知される（７）。そして、業務サーバ１０が同じ領域へデータｂのＷｒｉｔｅを制御モジュール＃４に要求する（８）と、制御モジュール＃４は、再起動が行われた制御モジュール＃２へデータｂの書き込みを要求する（９）。
【００２９】
そして、ｌｕｎ＃１へデータｂの書き込みが行われ（１０）、ｌｕｎ＃２へデータｂの書き込みが行われる（１１）。その後、遅れていた制御モジュール＃１からのｌｕｎ＃２へのデータａの書き込みが発生する（１２）。
【００３０】
このように、バディ制御モジュール３ａによるデータａの書き込みが何らかの理由により遅れると、再起動した制御モジュール３ａからのデータｂの書き込み後にデータａの書き込みが行われる場合があり、ｌｕｎ＃１とｌｕｎ＃２が不整合となる（１３）。
【００３１】
このような問題の発生を防ぐために、マネージャによって等価性を保つ方式が採用されている。ここで、マネージャとは、ストレージシステム全体を制御するモジュールである。マネージャは、複数の制御モジュール３ａのうちの１つで動作する。図４は、マネージャによって等価性を保つ方式を説明するための図である。図４では、制御モジュール＃３でマネージャ４３ａが動作する。
【００３２】
図４に示すように、制御モジュール＃２が再起動する（１）と、マネージャ４３ａは、ボリューム＃１への全アクセスを停止させる（２）。ここで、ボリューム＃１は、切り替えられた制御モジュール３ａに存在するミラーＬＵＮ４４にアクセス領域が含まれるボリューム４５である。
【００３３】
そして、業務サーバ１０から同じ領域へのデータｂのＷｒｉｔｅは停止される（３）。そして、ミラーＬＵＮの処理が制御モジュール＃２へ切り替えられる（４）と、マネージャ４３ａは、ボリューム＃１への全アクセスを再開させる（５）。すると、業務サーバ１０から同じ領域へのデータｂのＷｒｉｔｅの要求を受信していた制御モジュール＃５は、再起動した制御モジュール＃２へデータｂの書き込みを要求する（６）。そして、ｌｕｎ＃１へのデータｂの書き込みが行われ（７）、ｌｕｎ＃２へのデータｂの書き込みが行われる（８）。
【００３４】
このように、ダウンした制御モジュール３ａが復旧した際に、マネージャ４３ａは、ダウンした制御モジュール３ａに存在するミラーＬＵＮ４４にアクセス領域が含まれるボリューム４５へのアクセスを停止させることで、等価性が崩れることを防ぐことができる。
【００３５】
しかしながら、この方式には、ダウンした制御モジュール３ａに存在するミラーＬＵＮ４４にアクセス領域が含まれるボリューム４５をマネージャ４３ａが計算して各制御モジュール３にアクセスの停止を指示する処理に時間がかかるという問題がある。ミラーＬＵＮ４４は、多くのボリューム４５のセグメントグループ４６を束ねたものであるため、ミラーＬＵＮ４４にアクセス領域が含まれるボリューム４５の数は多く、ミラーＬＵＮ４４にアクセス領域が含まれるボリューム４５の計算には時間がかかる。したがって、マネージャ４３ａがボトルネックとなって、Ｉ（Input）／Ｏ（Output）停止時間が延びてしまう。また、マネージャ４３ａが動作する制御モジュール３ａがダウンした場合、マネージャ４３ａの再起動が必要になるため、切り替え処理が遅延する。
【００３６】
そこで、実施例に係るストレージシステムは、マネージャに負担をかけることなく等価性を保つように業務サーバ１０からのアクセスを制御する。図５は、実施例に係るストレージシステムの構成を示す図である。
【００３７】
図５に示すように、実施例に係るストレージシステム１は、３台のシェルフ２と、インタコネクトスイッチ５とを有する。３台のシェルフ２は、シェルフ＃１〜シェルフ＃３で表される。なお、ここでは説明の便宜上、３台のシェルフ２のみを示したが、ストレージシステム１は、任意の台数のシェルフ２を有してよい。
【００３８】
シェルフ２は、ストレージシステム１を制御する２台の制御モジュール３と、ＬＵＮで識別される４台のディスク装置４とを収容する筐体である。なお、ここでは説明の便宜上、４台のディスク装置４を示したが、シェルフ２は、任意の台数のディスク装置４を収容してよい。また、シェルフ＃１が収容する制御モジュール３は、制御モジュール＃１及び制御モジュール＃２で表され、シェルフ＃２が収容する制御モジュール３は、制御モジュール＃３及び制御モジュール＃４で表される。また、シェルフ＃３が収容する制御モジュール３は、制御モジュール＃５及び制御モジュール＃６で表される。
【００３９】
インタコネクトスイッチ５は、制御モジュール３間を接続するスイッチである。制御モジュール３は、インタコネクトスイッチ５を介して他の制御モジュール３と通信する。
【００４０】
制御モジュール３は、インタフェース３１と、インタコネクトインタフェース３２と、ＳＡＳ３３（Serial-Attached  SCSI）とを有する。インタフェース３１は、ストレージシステムを利用する業務サーバ１０と通信を行う装置である。インタコネクトインタフェース３２は、インタコネクトスイッチ５を介して他のインタコネクトインタフェース３２と通信を行う装置である。ＳＡＳ３３は、ディスク装置４と通信を行う装置である。
【００４１】
ディスク装置４は、業務サーバ１０が使用するデータを記憶する不揮発性記憶装置であり、ＨＤＤ（Hard  Disk  Drive）により実現される。なお、シェルフ２は、ディスク装置４の代わりにＳＳＤ（Solid  State  Drive）を収容しても用いてもよい。
【００４２】
図６は、各制御モジュール３の機能構成を示す図である。図６では、説明の便宜上、シェルフ＃３に収容される制御モジュール３は示さないが、シェルフ＃３に収容される制御モジュール３はシェルフ＃２に収容される制御モジュール３と同様の機能構成を有する。
【００４３】
図６に示すように、各制御モジュール３は、記憶部４０と、クラスタ４１と、エージェント４２と、ボリューム処理部４７と、ミラー制御部４８とを有する。また、制御モジュール＃２は、さらに、マネージャ４３を有する。なお、ここでは、制御モジュール＃２でマネージャ４３が動作するが、マネージャ４３は他の制御モジュール３で動作してもよく、いずれか１つの制御モジュール３でマネージャ４３が動作する。
【００４４】
記憶部４０は、ストレージシステム１の制御に使用されるデータを記憶する。記憶部４０は、モジュール管理テーブル４０ａとミラーＬＵＮ管理テーブル４０ｂとを記憶する。モジュール管理テーブル４０ａは、各制御モジュール３が正常であるか異常であるかを示すテーブルである。
【００４５】
図７は、モジュール管理テーブル４０ａの一例を示す図である。図７に示すように、モジュール管理テーブル４０ａは、識別子と状態情報を制御モジュール３毎に対応付けるテーブルである。識別子は、制御モジュール３を識別する番号である。状態情報は、制御モジュール３が正常であるか異常であるかを示す情報である。図７において、○は対応する制御モジュール３が正常であることを示し、×は対応する制御モジュール３がダウンしていることを示す。例えば、識別子が１である制御モジュール３すなわち制御モジュール＃１はダウンしている。
【００４６】
ミラーＬＵＮ管理テーブル４０ｂは、セグメントグループ４６と、ミラーＬＵＮ４４が存在する２つの制御モジュール３の番号とを対応付けるテーブルである。図８は、ミラーＬＵＮ管理テーブル４０ｂの一例を示す図である。図８に示すように、ミラーＬＵＮ管理テーブル４０ｂは、グループ番号と、通常識別子と、バディ識別子とを対応付ける。グループ番号は、セグメントグループ４６を識別する番号である。
【００４７】
通常識別子は、対応するセグメントグループ４６を含むミラーＬＵＮ４４が存在する制御モジュール３を識別する番号である。バディ識別子は、通常識別子で識別される制御モジュール３がダウンしている場合に代わりに使用されるバディ制御モジュール３を識別する番号である。すなわち、通常識別子で識別される制御モジュール３は、バディ識別子で識別される制御モジュール３より高い優先度でミラーＬＵＮ４４の処理を行う。例えば、番号が１であるセグメントグループ４６を含むミラーＬＵＮ４４は制御モジュール＃１と制御モジュール＃２に存在し、通常は制御モジュール＃１に存在するミラーＬＵＮ４４が用いられる。
【００４８】
クラスタ４１は、他の制御モジュール３のクラスタ４１と連携してストレージクラスタに関する制御を行う。ここで、ストレージクラスタとは、制御モジュール３が故障した場合に、他の制御モジュール３が故障した制御モジュール３の機能を自動的に引き継ぐ機能である。
【００４９】
エージェント４２は、制御モジュール３の状態を監視し、異常な制御モジュール３を検出するとクラスタ４１に通知する。クラスタ４１は、エージェント４２から異常な制御モジュール３を通知されると、その制御モジュール３をストレージシステム１から切り離す。また、クラスタ４１は、故障した制御モジュール３を他の全ての制御モジュール３に通知する。
【００５０】
エージェント４２は、クラスタ４１から故障した制御モジュール３を通知されると、モジュール管理テーブル４０ａを更新する。また、故障した制御モジュール３のバディ制御モジュール３のエージェント４２は、クラスタ４１から制御モジュール３の故障を通知されると、等価性回復処理を行う。
【００５１】
ボリューム処理部４７は、業務サーバ１０からのボリューム４５へのアクセス要求を処理する。ボリューム処理部４７は、アクセスされる領域についてミラーＬＵＮ４４が存在する２つの制御モジュール３をミラーＬＵＮ管理テーブル４０ｂを用いて特定する。そして、ボリューム処理部４７は、特定した２つの制御モジュール３のうち通常用いられる制御モジュール３が正常であれば通常用いられる制御モジュール３にＩ／Ｏを発行する。また、ボリューム処理部４７は、通常用いられる制御モジュール３が正常でなければ、バディ制御モジュール３にＩ／Ｏを発行する。
【００５２】
ここで、Ｉ／Ｏを発行するとは、ミラーＬＵＮ４４の処理を要求することである。また、ボリューム処理部４７は、制御モジュール３が正常であるか否かをモジュール管理テーブル４０ａを参照して判定する。
【００５３】
図９は、モジュール管理テーブル４０ａを用いたミラーＬＵＮ４４へのＩ／Ｏを説明するための図である。なお、図９〜図１４Ｂにおいて、ミラーＬＵＮ＃１は制御モジュール＃１に存在するミラーＬＵＮ４４であり、ミラーＬＵＮ＃２は制御モジュール＃２に存在するミラーＬＵＮ４４である。
【００５４】
業務サーバ１０からボリューム４５へのＩ／Ｏを受信すると（１）、ボリューム処理部４７は、モジュール管理テーブル４０ａを確認する（２）。そして、ボリューム処理部４７は、正常な制御モジュール３で優先度が最も高い制御モジュール３にＩ／Ｏを発行する（３）。優先度は、通常使用される制御モジュール３がバディ制御モジュール３より高い。したがって、図９では、制御モジュール＃１にＩ／Ｏが発行される。
【００５５】
このように、ボリューム処理部４７は、Ｉ／Ｏを発行する制御モジュール３をモジュール管理テーブル４０ａを参照して特定することで、通常使用される制御モジュール３が故障した場合にも、Ｉ／Ｏを発行する制御モジュール３を簡単に特定することができる。
【００５６】
図１０Ａは、制御モジュール３がダウンした場合のモジュール管理テーブル４０ａの更新を説明するための図であり、図１０Ｂは、制御モジュール３がダウンした場合のミラーＬＵＮ４４へのＩ／Ｏを説明するための図である。
【００５７】
図１０Ａに示すように、通常Ｉ／Ｏが発行される制御モジュール＃１がダウンする（１）と、クラスタ４１からのダウン通知に基づいて、制御モジュール＃１以外の全制御モジュール３のエージェント４２がモジュール管理テーブル４０ａを更新する（２）。図１０Ａでは、制御モジュール＃２〜＃４のモジュール管理テーブル４０ａにおいて制御モジュール＃１の状態が異常であることを示す×に更新される。
【００５８】
そして、図１０Ｂに示すように、ボリューム４５に対する業務サーバ１０からのＩ／Ｏを制御モジュール＃４が受信し（３）、制御モジュール＃４のボリューム処理部４７がモジュール管理テーブル４０ａを確認する（４）。そして、ボリューム処理部４７は、制御モジュール＃１が故障しているので、バディ制御モジュール３である制御モジュール＃２にＩ／Ｏを発行する（５）。
【００５９】
なお、制御モジュール＃１がダウンするタイミングによっては、制御モジュール＃１に発行したＩ／Ｏがボリューム処理部４７にエラーで返却される場合がある。そのような場合、ボリューム処理部４７は、図１１に示すように、バディ制御モジュール３にＩ／Ｏを再発行し、業務サーバ１０へはエラーが返らないようにする。
【００６０】
図６に戻って、ミラー制御部４８は、ミラーＬＵＮ４４に含まれるセグメントグループ４６へのアクセスを制御し、ミラーリングを行う。ミラー制御部４８は、アクセスがＷｒｉｔｅである場合には、２つのディスク装置４への書き込みを行う。
【００６１】
また、ミラー制御部４８は、等価性を回復するための高速等価性回復機構（ＪＲＭ：Just  Resynchronization  Mechanism）が等価性回復に用いるＪＲＭセグメントを管理する。ここで、ＪＲＭセグメントは、セグメントグループ４６毎に書き込み処理中であるか否かを示すビットの集まりである。
【００６２】
図１２は、高速等価性回復機構を説明するための図である。ミラー制御部４８は、セグメントグループ４６への書き込みを行う場合に、ＪＲＭセグメント４９の対応するビットを１にセットする。そして、ミラー関係にある２つのセグメントグループ４６への書き込みが終了すると、ミラー制御部４８は、ＪＲＭセグメント４９の対応するビットを０にリセットする。したがって、制御モジュール３がダウンした場合に、ＪＲＭセグメント４９に１がセットされているセグメントグループ４６は、等価性が崩れている可能性がある。
【００６３】
そこで、エージェント４２は、クラスタ４１から制御モジュール３のダウンを通知されると、ダウンした制御モジュール３が管理するＪＲＭセグメント４９を読み込み、１がセットされているセグメントグループ４６について等価性回復処理を行う。ここで、エージェント４２は、ダウンした制御モジュール３が管理するＪＲＭセグメント４９をマネージャ４３を経由せずに直接読み込む。すなわち、バディ制御モジュール３からＪＲＭセグメント４９を読み込むことが可能である。ＪＲＭセグメント４９は、各制御モジュール３に配置され、バディ制御モジュール３からのアクセスは通常のアクセスに比べ性能が劣るため、通常はＪＲＭセグメント４９を配置する制御モジュール３からアクセスされる。
【００６４】
図１３は、等価性回復処理を説明するための図である。図１３に示すように、制御モジュール＃１がダウンする（１）と、クラスタ４１はバディ制御モジュール３である制御モジュール＃２に等価性回復処理を依頼する（２）。すると、制御モジュール＃２のエージェント４２は、ＪＲＭセグメント４９を読み込み（３）、オンライン化を行う（４）。ここで、オンライン化とは、バディ制御モジュール３へのＩ／Ｏを受け付け可能とすることである。通常時はバディ制御モジュール３へのＩ／Ｏは受け付けられないが、異常時には、バディ制御モジュール３へのＩ／Ｏが受け付け可能となる。そして、エージェント４２は、ミラー関係にある２つのセグメントグループ４６について等価性の回復を行う（５）。
【００６５】
ただし、オンライン直後に等価性が回復していない領域にＩ／Ｏが来た場合はＩ／Ｏを滞留させておき、等価性回復後にバディ制御モジュール３が滞留させたＩ／Ｏを処理する。
【００６６】
図６に戻って、マネージャ４３は、ストレージシステム１を制御する。マネージャ４３はいずれか１つの制御モジュール３で動作し、動作する制御モジュール３が故障すると、クラスタ４１により別の制御モジュール３のマネージャ４３が起動される。また、各制御モジュール３には１つのミラーＬＵＮ４４が存在し、各制御モジュール３がミラー制御を行うセグメントグループ４６が定義される。
【００６７】
また、ダウンした制御モジュール３が再起動してミラーＬＵＮ４４へのアクセスをダウンした制御モジュール３へ切り戻す場合に、マネージャ４３は、切り替え元の制御モジュール３でＩ／Ｏを滞留させる。その理由は、切り戻すときにミラーＬＵＮ４４へのアクセスが切り替え元と切り替え先の２つの制御モジュール３で二重になることを防ぐためである。切り替え元の制御モジュール３は、ボリューム処理部４７からのＩ／Ｏを受け付けるが、一時的にＩ／Ｏ処理を滞留させる状態とし、切り替え完了後にエラーを返信してボリューム処理部４７にＩ／Ｏを再発行させる。
【００６８】
図１４Ａ及び図１４Ｂは、ダウンした制御モジュール３の再起動時のＩ／Ｏの流れを説明するための図である。図１４Ａに示すように、制御モジュール＃１は、再起動する（１）と、ミラーＬＵＮ４４を構築する（２）。また、マネージャ４３は、制御モジュール＃１の代わりにミラーＬＵＮ４４の処理を行っていた制御モジュール＃２にＩ／Ｏ滞留の開始を指示する（３）。
【００６９】
そして、ボリューム４５に対する業務サーバ１０からのＩ／Ｏを制御モジュール＃４が受信し（４）、制御モジュール＃４のボリューム処理部４７がモジュール管理テーブル４０ａを確認する（５）。そして、ボリューム処理部４７は、制御モジュール＃１が故障しているので、バディ制御モジュール３である制御モジュール＃２にＩ／Ｏを発行する（６）。ここで、制御モジュール＃２は、Ｉ／Ｏを処理せず、滞留させる（７）。
【００７０】
そして、図１４Ｂに示すように、マネージャ４３が各制御モジュール３にモジュール管理テーブル４０ａを更新するように指示し、各制御モジュール３のエージェント４２がモジュール管理テーブル４０ａを更新する（８）。図１４Ｂでは、制御モジュール＃１の状態が正常に更新されている。
【００７１】
そして、制御モジュール＃２は、Ｉ／Ｏの滞留を終了し（９）、滞留させたＩ／ＯについてＩ／Ｏエラーを制御モジュール＃４に返却する（１０）。すると、制御モジュール＃４のボリューム処理部４７は、更新されたモジュール管理テーブル４０ａを参照して制御モジュール＃１にＩ／Ｏを再発行する（１１）。
【００７２】
次に、ボリューム処理部４７によるＩ／Ｏ発行処理のフローについて説明する。図１５は、ボリューム処理部４７によるＩ／Ｏ発行処理のフローを示すフローチャートである。図１５に示すように、ボリューム処理部４７は、業務サーバ１０からＩ／Ｏを受信する（ステップＳ１）。
【００７３】
そして、ボリューム処理部４７は、Ｉ／Ｏ領域についてミラーＬＵＮ管理テーブル４０ｂを参照して通常識別子とバディ識別子を取得する（ステップＳ２）。そして、ボリューム処理部４７は、通常識別子で識別される制御モジュール３は正常であるか否かをモジュール管理テーブル４０ａを参照して判定する（ステップＳ３）。
【００７４】
そして、通常識別子で識別される制御モジュール３が正常である場合には、ボリューム処理部４７は、通常識別子で識別される制御モジュール３をＩ／Ｏの発行先として決定し（ステップＳ４）、決定した制御モジュール３へＩ／Ｏを発行する（ステップＳ５）。
【００７５】
一方、通常識別子で識別される制御モジュール３が正常でない場合には、ボリューム処理部４７は、バディ識別子で識別される制御モジュール３は正常であるか否かをモジュール管理テーブル４０ａを参照して判定する（ステップＳ６）。
【００７６】
そして、バディ識別子で識別される制御モジュール３が正常である場合には、ボリューム処理部４７は、バディ識別子で識別される制御モジュール３をＩ／Ｏの発行先として決定し（ステップＳ７）、決定した制御モジュール３へＩ／Ｏを発行する（ステップＳ５）。一方、バディ識別子で識別される制御モジュール３が正常でない場合には、ボリューム処理部４７は、マネージャ４３にエラーを報告する（ステップＳ８）。
【００７７】
このように、ボリューム処理部４７は、モジュール管理テーブル４０ａを参照して制御モジュール３の状態を判定することで、制御モジュール３に故障が発生した場合にもマネージャ４３に頼ることなく適切な制御モジュール３へＩ／Ｏを発行することができる。
【００７８】
次に、クラスタ４１が制御モジュール３の異常を検出した時の処理のフローについて説明する。図１６は、クラスタ４１が制御モジュール３の異常を検出した時の処理のフローを示すフローチャートである。
【００７９】
図１６に示すように、クラスタ４１は、制御モジュール３の異常を検出すると、異常が発生した制御モジュール３を切り離す（ステップＳ１１）。そして、異常が発生した制御モジュール３を除く全ての制御モジュール３に、異常が発生した制御モジュール３がダウンしたことを知らせるダウン通知を送信する（ステップＳ１２）。
【００８０】
図１７は、ダウン通知を受信した時のエージェント４２の処理のフローを示すフローチャートである。図１７に示すように、異常が発生した制御モジュール３以外の制御モジュール３のエージェント４２は、ダウン通知を受信すると、自装置が異常制御モジュール３のバディであるか否かを判定する（ステップＳ２１）。その結果、バディでない場合には、エージェント４２は、モジュール管理テーブル４０ａを更新して（ステップＳ２２）、処理を終了する。
【００８１】
一方、バディである場合には、エージェント４２は、等価性回復対象のセグメントグループ４６に対してステップＳ２３〜ステップＳ２７の間の処理を行う。すなわち、エージェント４２は、ＪＲＭセグメント４９を読み込み（ステップＳ２４）、等価性回復対象のセグメントグループ４６を特定する。
【００８２】
そして、エージェント４２は、オンライン化を行い（ステップＳ２５）、等価性回復処理を行う（ステップＳ２６）。そして、エージェント４２は、モジュール管理テーブル４０ａを更新して（ステップＳ２２）、処理を終了する。
【００８３】
このように、クラスタ４１が制御モジュール３の異常を検出した時にダウン通知を異常が発生した制御モジュール３を除く全ての制御モジュール３に送信し、エージェント４２がモジュール管理テーブル４０ａを更新する。したがって、ストレージシステム１は、制御モジュール３に異常が発生した場合にも、マネージャ４３を煩わすことなく簡単にバディ制御モジュール３への切り替えを行うことができる。
【００８４】
次に、制御モジュール３が再起動した時の処理のフローについて説明する。図１８は、制御モジュール３が再起動した時の処理のフローを示すフローチャートである。図１８に示すように、再起動した制御モジュール３は、ミラーＬＵＮを再構築する（ステップＳ３１）。
【００８５】
そして、切り替え元の制御モジュール３がミラーＬＵＮＩ／Ｏの滞留を開始する（ステップＳ３２）。ここで、ミラーＬＵＮＩ／Ｏとは、ミラーＬＵＮ４４が存在する制御モジュール３へ発行されるＩ／Ｏである。そして、各制御モジュール３は、モジュール管理テーブル４０ａを更新する（ステップＳ３３）。
【００８６】
そして、切り替え元の制御モジュール３は、ミラーＬＵＮＩ／Ｏの滞留を終了する（ステップＳ３４）。そして、切り替え元の制御モジュール３は、滞留Ｉ／Ｏをエラー返却し、発行した制御モジュール３へ再発行を要求する（ステップＳ３５）。
【００８７】
図１９は、制御モジュール３の再起動時のＩ／Ｏの流れを示すシーケンス図である。図１９に示すように、ダウンした制御モジュール３は、再起動を行い（ステップＳ４１）、ミラーＬＵＮを構築する（ステップＳ４２）。そして、再起動した制御モジュール３は、切り替え開始をマネージャ４３に依頼する（ステップＳ４３）。
【００８８】
そして、マネージャ４３が、切り替え元制御モジュール３にＩ／Ｏ滞留開始を指示する（ステップＳ４４）。その後、業務サーバ１０がＩ／Ｏを発行すると（ステップＳ４５）、Ｉ／Ｏを受信した制御モジュール３のボリューム処理部４７が、モジュール管理テーブル４０ａを確認し（ステップＳ４６）、切り替え元制御モジュール３にＩ／Ｏを発行する（ステップＳ４７）。そして、切り替え元制御モジュールがＩ／Ｏを滞留させる（ステップＳ４８）。
【００８９】
また、マネージャ４３は、全制御モジュール３にモジュール管理テーブル４０ａの更新を指示し（ステップＳ４９）、各制御モジュール３は、モジュール管理テーブル４０ａを更新してマネージャ４３に応答する（ステップＳ５０）。そして、マネージャ４３は、切り替え元制御モジュール３にＩ／Ｏ滞留の終了を指示する（ステップＳ５１）。すると、切り替え元制御モジュール３は、滞留させたＩ／ＯについてＩ／Ｏエラーを返却する（ステップＳ５２）。
【００９０】
すると、Ｉ／Ｏエラーを受信したボリューム処理部４７は、モジュール管理テーブル４０ａを確認し（ステップＳ５３）、再起動制御モジュール３にＩ／Ｏを再発行する（ステップＳ５４）。そして、再起動制御モジュールがＩ／Ｏの処理後、応答をボリューム処理部４７に返し（ステップＳ５５）、ボリューム処理部４７が業務サーバ１０に応答を返す（ステップＳ５６）。
【００９１】
このように、ダウンした制御モジュール３が再起動すると、切り替え元制御モジュールは、Ｉ／Ｏを滞留させ、モジュール管理テーブル４０ａが更新されると、Ｉ／Ｏエラーを返却する。したがって、ストレージシステム１は、ダウンした制御モジュール３の再起動時にマネージャ４３の処理負荷を高くすることなく、等価性を保つことができる。
【００９２】
なお、実施例では、制御モジュール３の機能について説明したが、制御モジュール３が有する機能をファームウェアによって実現することで、同様の機能を有するストレージ制御プログラムを得ることができる。そこで、ストレージ制御プログラムを実行する制御モジュール３のハードウェア構成について説明する。
【００９３】
図２０は、実施例に係るストレージ制御プログラムを実行する制御モジュール３のハードウェア構成を示す図である。図２０に示すように、制御モジュール３は、図５に示したインタフェース３１、インタコネクトインタフェース３２及びＳＡＳ３３に加えて、ＭＰＵ（Micro  Processing  Unit）３６と、フラッシュメモリ３７と、ＲＡＭ（Random  Access  Memory）３８とを有する。
【００９４】
ＭＰＵ３６は、ＲＡＭ３８に記憶されたファームウェアを読み出して実行する処理装置である。フラッシュメモリ３７は、ストレージ制御プログラムとしてファームウェアを記憶する不揮発性のメモリである。ＲＡＭ３８は、フラッシュメモリ３７から読み出されたファームウェアを記憶する揮発性メモリである。また、ＲＡＭ３８は、ファームウェアの実行に必要なデータ、ファームウェア実行の途中結果等を記憶する。
【００９５】
なお、ストレージ制御プログラムを記憶する記憶装置としては、他に磁気記憶装置、光ディスク、光磁気記録媒体等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）等がある。光ディスクには、ＤＶＤ（Digital  Versatile  Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto-Optical  disk）等がある。
【００９６】
ストレージ制御プログラムを流通させる場合には、例えば、ストレージ制御プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、ストレージ制御プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから制御モジュール３にストレージ制御プログラムを転送することもできる。
【００９７】
制御モジュール３は、例えば、可搬型記録媒体に記録されたストレージ制御プログラムもしくはサーバコンピュータから転送されたストレージ制御プログラムを、フラッシュメモリ３７に格納する。そして、ＭＰＵ３６は、フラッシュメモリ３７からストレージ制御プログラムを読み取り、ストレージ制御プログラムに従った処理を実行する。なお、ＭＰＵ３６は、可搬型記録媒体から直接ストレージ制御プログラムを読み取り、ストレージ制御プログラムに従った処理を実行することもできる。
【００９８】
上述してきたように、実施例では、セグメントグループ４６毎に通常識別子とバディ識別子をミラーＬＵＮ管理テーブル４０ｂで対応付け、制御モジュール３の識別子と状態情報をモジュール管理テーブル４０ａで対応付ける。そして、ボリューム処理部４７がミラーＬＵＮ管理テーブル４０ｂ及びモジュール管理テーブル４０ａに基づいてミラーＬＵＮの処理を行う制御モジュール３を決定し、決定した制御モジュール３にＩ／Ｏを発行する。したがって、ストレージシステム１は、制御モジュール３に障害が発生した場合にも、マネージャ４３が管理する構成情報に依存することなく、ミラーＬＵＮ４４の処理を行う制御モジュール３を簡単に切り替えることができる。このため、ストレージシステム１は、障害発生時の処理時間を短縮することができる。
【００９９】
また、実施例では、クラスタ４１からのダウン通知に基づいてエージェント４２がモジュール管理テーブル４０ａを更新する。したがって、ストレージシステム１は、制御モジュール３の障害状況をモジュール管理テーブル４０ａに迅速に反映することができる。
【０１００】
また、実施例では、クラスタ４１からのダウン通知に基づいてバディ制御モジュール３のエージェント４２が等価性回復処理を行う。したがって、ストレージシステム１は、障害が発生した場合にも、ミラーデータの等価性を保つことができる。
【０１０１】
また、実施例では、ミラーＬＵＮ４４の処理を行う制御モジュール３に障害が発生した場合に、ボリューム処理部４７はＩ／Ｏエラーを受け取ってバディ制御モジュール３へＩ／Ｏを再発行する。したがって、ミラーＬＵＮ４４の処理を行う制御モジュール３にＩ／Ｏ発行後に、発行先の制御モジュール３がダウンした場合にも、ストレージシステム１は、発行されたＩ／Ｏを確実に処理することができる。
【０１０２】
また、実施例では、障害が発生した制御モジュール３が復旧した場合に、エージェント４２がモジュール管理テーブル４０ａを更新する。したがって、ストレージシステム１は、ミラーＬＵＮの処理を行う制御モジュール３を簡単に切り戻すことができる。
【０１０３】
また、実施例では、障害が発生した制御モジュール３が復旧した場合に、バディ制御モジュール３がＩ／Ｏを滞留させ、モジュール管理テーブル４０ａが更新された後、滞留させたＩ／Ｏについてエラーを応答する。したがって、ストレージシステム１は、障害が発生した制御モジュール３が復旧した場合に等価性が崩れることを防ぐことができる。また、ストレージシステム１は、障害が発生した制御モジュール３が復旧した場合に、等価性を保つためにマネージャ４３が行う処理を少なくすることができる。したがって、ストレージシステム１は、障害復旧時にマネージャ４３による処理がボトルネックとなることを防ぎ、障害復旧の時間を短縮することができる。
【０１０４】
また、実施例では、シェルフ２が２台の制御モジュール３を有する場合について説明したが、本発明はこれに限定されるものではなく、シェルフ２が３台以上の制御モジュール３を有する場合にも同様に適用することができる。また、実施例では、同じシェルフ２内の２台の制御モジュール３の一方が他方の制御モジュール３のバディ制御モジュール３となる場合について説明した。しかし、本発明はこれに限定されるものではなく、別のシェルフ２内の制御モジュール３がバディ制御モジュール３となる場合にも同様に適用することができる。
【０１０５】
また、バディ制御モジュール３のエージェント４２は、等価性回復処理を行う場合に、セグメントグループ４６のアクセス属性がRead  Onlyでなく、かつ、ミラー面数が２以上のときに限り等価性回復処理を行ってもよい。その理由は、ボリューム処理部４７からのアクセスがRead  Onlyの場合やミラー面数が１の場合には等価性が崩れることがなく、これらのセグメントグループ４６は等価性回復対象から除外することができるためである。
【０１０６】
また、全制御モジュール３のダウン後に制御モジュール３が再起動してきた場合も等価性が崩れている可能性があるため、回復処理を行う必要がある。このとき、通常使われる制御モジュール３及びバディ制御モジュール３が同時に立ち上がってきた場合においても両制御モジュール３で等価性回復を行ってしまうと等価性が崩れるため、一方のみで回復処理を行う必要がある。クラスタ４１は、全制御モジュール３を等価的に管理しており、通常使われる制御モジュール３とバディ制御モジュール３の特別な構成を認識できない。この構成を認識できるのはマネージャ４３のみであるため、全制御モジュール３がダウンした場合には、マネージャ４３が等価性回復処理を行う。
【符号の説明】
【０１０７】
１    ストレージシステム
２，２ａ    シェルフ
３，３ａ    制御モジュール
４    ディスク装置
１０    業務サーバ
３１    インタフェース
３２    インタコネクトインタフェース
３３    ＳＡＳ
３６    ＭＰＵ
３７    フラッシュメモリ
３８    ＲＡＭ
４０    記憶部
４０ａ    モジュール管理テーブル
４０ｂ    ミラーＬＵＮ管理テーブル
４１    クラスタ
４２    エージェント
４３，４３ａ    マネージャ
４４    ミラーＬＵＮ
４５    ボリューム
４６    セグメントグループ
４７    ボリューム処理部
４８    ミラー制御部
４９    ＪＲＭセグメント
【図１】
2016143248.tif 000003
【図２】
2016143248.tif 000004
【図３Ａ】
2016143248.tif 000005
【図３Ｂ】
2016143248.tif 000006
【図４】
2016143248.tif 000007
【図５】
2016143248.tif 000008
【図６】
2016143248.tif 000009
【図７】
2016143248.tif 000010
【図８】
2016143248.tif 000011
【図９】
2016143248.tif 000012
【図１０Ａ】
2016143248.tif 000013
【図１０Ｂ】
2016143248.tif 000014
【図１１】
2016143248.tif 000015
【図１２】
2016143248.tif 000016
【図１３】
2016143248.tif 000017
【図１４Ａ】
2016143248.tif 000018
【図１４Ｂ】
2016143248.tif 000019
【図１５】
2016143248.tif 000020
【図１６】
2016143248.tif 000021
【図１７】
2016143248.tif 000022
【図１８】
2016143248.tif 000023
【図１９】
2016143248.tif 000024
【図２０】
2016143248.tif 000025