(57)【特許請求の範囲】
【請求項１】
アクセス要求を受けストレージ装置をアクセスするストレージシステムであって、
複数のストレージ装置と、
単一又は複数のストレージ装置に対してアクセス制御をするコントローラと、
前記コントローラからアクセス要求を受けストレージ装置を選択するスイッチ部と、
前記コントローラの前記アクセス要求に応答すべきストレージ装置の状態を確認し、該ストレージ装置に障害が発生している場合に、該ストレージ装置に代わって前記コントローラに該ストレージ装置の状態情報を送信して応答する代理応答部と、
を備え、前記コントローラは、前記ストレージ装置がリカバリ処理中であるとの状態情報を前記代理応答部から受けると、前記ストレージ装置と共通情報を記録する他のストレージ装置があれば、該他のストレージ装置に対して情報を書込み又は前記他のストレージ装置から情報の読み出しを行なうことを特徴とするストレージシステム。
【請求項２】
更に、前記複数のストレージ装置の状態情報を記憶する状態情報記憶部とを備え、該状態情報記憶部にある前記状態情報に基づき、前記代理応答部が応答することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
更に、共通情報を記録する２以上のストレージ装置の何れかのストレージ装置間で記憶情報に不整合を生じた場合、記憶情報の整合化に用いられるストレージ装置情報又はアドレス情報を記憶する整合化情報記憶部と、
を備えることを特徴とする請求項１又は請求項２に記載のストレージシステム。
【請求項４】
更に、共通情報を記録する２以上のストレージ装置の何れかのストレージ装置間で記憶情報に不整合を生じた場合、記憶情報の整合化に用いられるストレージ装置情報又はアドレス情報を記憶する整合化情報記憶部を備え、
前記コントローラは、任意のタイミング又は所定の時間間隔でリカバリ処理中の前記ストレージ装置に対してアクセス要求を行い、前記ストレージ装置のリカバリが完了すると、前記整合化情報記憶部に記憶された前記ストレージ情報又は前記アドレス情報を用いて前記ストレージ装置と前記他のストレージ装置との間で記憶情報を整合させることを特徴とする請求項１又は請求項２に記載のストレージシステム。
【請求項５】
アクセス要求を受けストレージ装置をアクセスするストレージシステムの制御方法であって、
単一又は複数のストレージ装置に対してアクセス制御をするステップと、
アクセス要求を受けストレージ装置を選択するステップと、
前記コントローラの前記アクセス要求に応答すべきストレージ装置の状態を確認し、該ストレージ装置に障害が発生している場合、該ストレージ装置に代わって前記コントローラに該ストレージ装置の状態情報を送信して応答するステップと、
前記ストレージ装置がリカバリ処理中であるとの状態情報を前記コントローラが前記代理応答部から受けると、前記ストレージ装置と共通情報を記録する他のストレージ装置があれば、前記ストレージ装置に対して情報を書込み又は前記他のストレージ装置から情報の読み出しを行なうステップと、
を含むことを特徴とするストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置でＲＡＩＤ（Redundant Array of Inexpensive Disks）を構成する等、複数のストレージ装置を用いるストレージシステムの制御に関し、例えば、障害時の処理を迅速化したストレージシステム及びその制御方法に関する。
【背景技術】
【０００２】
ストレージシステムに関し、ループ接続された複数のストレージ装置のループ異常を検出した場合、ストレージ装置を並列に診断することにより、ループの自動復旧時間を短縮することが知られている（特許文献１）。
【０００３】
ディスクドライブの障害検出に関し、ディスクドライブと下位通信制御部との間に接続されているスイッチ回路のエラーをエラー監視部から下位通信制御部に通知し、障害回復処理を開始することが知られている（特許文献２）。
【０００４】
データ転送システムに関し、下流の装置に診断データを送信した上流の装置が自身のレシーバで送信診断データを受信することにより、障害箇所を特定することが知られている（特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３１６８７９公報
【特許文献２】特開２００７−１４１１８５公報
【特許文献３】特開２００６−２８５５１９公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、このようなストレージシステムでは、ストレージ装置に障害を生じた場合、そのストレージ装置の継続使用を確保するため、ストレージ装置に対するテスト等の診断処理機能や、ソフトウェアリセットやハードウェアリセット等のリカバリ処理機能を備えている。
【０００７】
このような診断処理機能やリカバリ処理機能を備えていても、これらの機能はコントローラ側とストレージ装置との間で実行される入出力（Ｉ／Ｏ）処理と異なるため、コントローラがストレージ装置の状態把握までに時間を要する。リカバリ処理に時間がかかれば、リカバリの結果、ストレージ装置の継続使用が可能であっても、一定時間以上が経過すれば、コントローラでは故障と判断し、リカバリ処理が無駄になる。
【０００８】
そこで、本開示のストレージシステム又はその制御方法の目的は、ストレージ装置等に障害が発生しても継続的なアクセスを可能にすることにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本開示のストレージシステムは、コントローラからアクセス要求を受けるストレージ装置に障害が発生している場合、該ストレージ装置に代わって代理応答部がコントローラに該ストレージ装置の状態情報を送信して応答し、前記コントローラは、前記ストレージ装置がリカバリ処理中であるとの状態情報を前記代理応答部から受けると、前記ストレージ装置と共通情報を記録する他のストレージ装置があれば、該他のストレージ装置に対して情報を書込み又は前記他のストレージ装置から情報の読み出しを行なう構成である。
【００１０】
また、本開示のストレージシステムの制御方法は、単一又は複数のストレージ装置に対してアクセス制御をするステップと、アクセス要求に応答すべきストレージ装置に障害が発生している場合、該ストレージ装置に代わって前記コントローラに該ストレージ装置の状態情報を送信して応答するステップと、前記ストレージ装置がリカバリ処理中であるとの状態情報を前記コントローラが前記代理応答部から受けると、前記ストレージ装置と共通情報を記録する他のストレージ装置があれば、前記ストレージ装置に対して情報を書込み又は前記他のストレージ装置から情報の読み出しを行なうステップとを含んでいる。
【発明の効果】
【００１１】
本開示のストレージシステム又はその制御方法によれば、次の何れかの効果が得られる。
【００１２】
(1) アクセス要求を受けたストレージ装置に障害があれば、該ストレージ装置に代わって代理応答部が応答することができ、応答処理の迅速化を図ることができる。
【００１３】
(2) 代理応答部で応答後又は応答中に、ストレージ装置のリカバリ処理又は診断処理を実行でき、このような処理をコントローラ側の処理と分離して行うことができ、コントローラ側の処理への影響を軽減することができる。
【００１４】
そして、本発明の他の目的、特徴及び利点は、添付図面及び各実施の形態を参照することにより、一層明確になるであろう。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態に係るストレージシステムの一例を示す図である。
【図２】ストレージシステムの処理手順の一例を示すフローチャートである。
【図３】第２の実施の形態に係るストレージシステムの一例を示す図である。
【図４】代理応答部の一例を示す図である。
【図５】コントロールモジュールのハードウェア構成の一例を示す図である。
【図６】代理応答部のハードウェア構成の一例を示す図である。
【図７】アドレス管理テーブルの一例を示す図である。
【図８】更新データ管理テーブルの一例を示す図である。
【図９】代理応答動作の一例を示す図である。
【図１０】代理応答動作の一例を示す図である。
【図１１】代理応答動作の一例を示す図である。
【図１２】代理応答動作の一例を示す図である。
【図１３】Ｄｉｓｋリカバリ処理動作の一例を示すフローチャートである。
【図１４】コマンド発行及び応答の処理手順の一例を示すフローチャートである。
【図１５】Ｄｉｓｋリカバリの処理手順の一例を示すフローチャートである。
【図１６】Ｄｉｓｋリカバリの処理手順の一例を示すフローチャートである。
【図１７】データ整合化の処理手順の一例を示すフローチャートである。
【図１８】ディスクリカバリが成功した場合の各部処理の相関関係の一例を示す図である。
【図１９】ディスクリカバリが成功した場合の各部処理の相関関係の一例を示す図である。
【図２０】冗長構成におけるリカバリ処理中のデータ読出し処理を示す図である。
【図２１】冗長構成におけるリカバリ処理中のデータ書込み処理を示す図である。
【図２２】冗長構成におけるリカバリ処理中のデータ整合化処理を示す図である。
【図２３】第３の実施の形態に係る冗長構成におけるリカバリ処理中のデータ復元処理を示す図である。
【図２４】冗長構成におけるリカバリ処理中のパリティ生成処理を示す図である。
【図２５】冗長構成におけるリカバリ処理中の整合化データ生成処理を示す図である。
【図２６】比較例に係るストレージシステムを示す図である。
【図２７】比較例に係るアドレス管理テーブルを示す図である。
【図２８】比較例に係るディスクリカバリ処理シーケンスを示すフローチャートである。
【図２９】比較例に係るディスクの故障診断処理シーケンスを示すフローチャートである。
【発明を実施するための形態】
【００１６】
〔第１の実施の形態〕
【００１７】
第１の実施の形態について、図１を参照する。図１はストレージシステムの一例を示している。
【００１８】
このストレージシステム２は、本開示のストレージシステムの一例であって、複数の記憶手段を備えるデータ記憶システムであって、例えば、ディスクアレイサブシステムを構成する。このストレージシステム２には、図示しないホストコンピュータが接続され、このホストコンピュータにアクセス要求に応じてデータを提供し、又はホストコンピュータからのデータを保存する。
【００１９】
このストレージシステム２には、図１に示すように、コントローラ４、複数のスイッチ部６１、６２・・・６Ｎ、複数のストレージ装置８１１、８１２・・・８１Ｎ、８２１、８２２・・・８２Ｎ、・・・８Ｎ１、８Ｎ２・・・８ＮＮが含まれている。この実施の形態のストレージシステム２では、複数のスイッチ部６１、６２・・・６Ｎを備えているが、単一のスイッチ部例えば、スイッチ部６１で構成してもよい。
【００２０】
各スイッチ部６１、６２・・・６Ｎはそれぞれ個別にストレージ装置８１１、８１２・・・８ＮＮに代わって応答する代理応答部１０１、１０２・・・１０Ｎを備える。この実施の形態では、代理応答部１０１がスイッチ部６１に、代理応答部１０２がスイッチ部６２に、代理応答部１０Ｎがスイッチ部６Ｎに設置されている。
【００２１】
コントローラ４は、既述のホストコンピュータに接続され、該ホストコンピュータとのデータの授受、スイッチ部６１、６２・・・６Ｎの制御、ストレージ装置８１１、８１２・・・８ＮＮの単一又は複数のストレージ装置に対してアクセス制御をする。
【００２２】
スイッチ部６１、６２・・・６Ｎは、各スイッチ部６１、６２・・・６Ｎに接続されているストレージ装置８１１、８１２・・・８ＮＮの選択手段の一例であって、コントローラ４からアクセス要求を受け、アクセス対象であるストレージ装置を選択する。
【００２３】
各ストレージ装置８１１、８１２・・・８ＮＮは、データの記録媒体の一例であって、各ストレージ装置８１１、８１２・・・８ＮＮと、コントローラ４との間には情報を循環させるループ（Backend Loop）が構成されている。ストレージ装置８１１、８１２・・・８ＮＮは、磁気ディスク、光磁気ディスク、ＳＳＤ（Solid state drive ）等の半導体ディスク等の記録媒体であり、又はデータの読出し又は書込みに用いるディスクドライブであってもよい。そして、ストレージ装置８１１、８１２・・・８ＮＮのデータ保存には、保存データの信頼性や、ストレージシステム２の信頼性を向上させるため、ＲＡＩＤシステム等の冗長構成が採用されている。Backend Loopは、データ転送の高速化のための手段の一例である。
【００２４】
そこで、このストレージシステム２では、コントローラ４の入出力（Ｉ／Ｏ）の発行等、コントローラ４からのアクセス要求を受けるストレージ装置８１１、８１２・・・８ＮＮの何れか（又は複数）に障害が発生している場合、対応する代理応答部１０１、１０２・・・１０Ｎの何れかがストレージ装置に代わってコントローラ４に応答する。例えば、スイッチ部６１に接続されているストレージ装置８１２がアクセス要求を受け、そのストレージ装置８１２に障害が発生していれば、代理応答部１０１がストレージ装置８１２に代わって応答する。
【００２５】
次に、この代理応答の処理手順について、図２を参照する。図２は代理応答を含む処理手順の一例を示している。
【００２６】
この処理手順は、本開示のストレージシステムの制御方法の一例、又はその制御方法を用いた制御プログラムの一例である。この処理手順では、図２に示すように、コントローラ４がアクセス要求を受け、ストレージ装置をアクセスする処理であって、単一又は複数のストレージ装置８１１、８１２・・・８ＮＮに対してアクセス制御をする（ステップＳ１０１）。
【００２７】
スイッチ部６１、６２・・・６Ｎは、コントローラ４からアクセス要求を受け、アクセス要求の対象装置であるストレージ装置をストレージ装置８１１、８１２・・・８ＮＮから選択する（ステップＳ１０２）。
【００２８】
このアクセス要求に対し、代理応答部１０１、１０２・・・１０Ｎでは、アクセス要求に応答すべきストレージ装置に障害が発生しているかを判断する（ステップＳ１０３）。
【００２９】
アクセス要求に応答すべきストレージ装置に障害が発生していれば（ステップＳ１０３のＹＥＳ）、応答すべきストレージ装置８１１、８１２・・・８ＮＮに代わり、既述の代理応答部１０１、１０２・・・１０Ｎが応答し（ステップＳ１０４）、この処理を終了する。
【００３０】
アクセス要求に応答すべきストレージ装置に障害が発生していなければ（ステップＳ１０３のＮＯ）、そのストレージ装置８１１、８１２・・・８ＮＮがアクセス要求に応答し（ステップＳ１０５）、この処理を終了する。
【００３１】
このようなストレージシステム又は代理応答処理によれば、次のような効果が得られる。
【００３２】
(1) アクセス要求を受けたストレージ装置８１１、８１２・・・８ＮＮに障害があれば、該ストレージ装置に代わって代理応答部１０１、１０２・・・１０Ｎが応答し、ストレージ装置による処理を待つことがないので、応答処理の迅速化が図られる。
【００３３】
(2) 代理応答部１０１、１０２・・・１０Ｎで応答した後又は応答中に、ストレージ装置のリカバリ処理又は診断処理を実行でき、このような処理をコントローラ４側の処理と分離して行うことができ、コントローラ側の処理への影響を軽減することができる。
【００３４】
(3) 代理応答部１０１、１０２・・・１０Ｎに各ストレージ装置の状態情報を蓄積すれば、その状態情報に応じた処理を迅速に実行できる。
【００３５】
〔第２の実施の形態〕
【００３６】
第２の実施の形態について、図３を参照する。図３は第２の実施の形態に係るストレージシステムの一例を示す図である。図３において、図１と同一部分には同一符号を付してある。
【００３７】
このストレージシステム２は本開示のストレージシステムの一例である。このストレージシステム２では、図３に示すように、ストレージコントロールモジュール（以下単に「ＣＭ」又は「コントローラ」と称する。）４０とともに、複数のＰＢＣ（Port Bypass Circuit ）モジュール６０１、６０２・・・６０Ｎが含まれ、ＰＢＣモジュール６０１はその一つである。
【００３８】
ＣＭ４０は既述のコントローラ４の一例であって、このＣＭ４０はホストコンピュータからアクセス要求を受け、該アクセス要求に対応するＤｉｓｋ７１１、７１２・・・７１Ｎに対するＩ／Ｏ処理を実行する。このＣＭ４０にはディスク制御部４２及び更新データ管理テーブル４４が含まれている。
【００３９】
ディスク制御部４２は、ホストコンピュータからのアクセス要求に対応するＤｉｓｋ７１１、７１２・・・７１Ｎに対するＩ／Ｏ発行等のアクセス要求を含むディスク制御を行う。
【００４０】
更新データ管理テーブル４４は、ストレージ情報を記憶するストレージ情報記憶部の一例であって、この実施の形態では、代理応答部１０１から取得したストレージ装置情報即ち、ディスク情報を記録する。
【００４１】
ＰＢＣモジュール６０１は、ＰＢＣ４６と、スイッチチップ４８とが搭載されている。ＰＢＣ４６は、既述のスイッチ部６１の一例であって、Ｄｉｓｋ７１１、７１２・・・７１Ｎが接続されるポートを制御するポート制御回路を構成し、アクセス要求の対象であるＤｉｓｋ７１１、７１２・・・７１Ｎを選択する選択手段である。
【００４２】
スイッチチップ４８には、既述の代理応答部１０１とともに、アドレス管理テーブル５０が備えられている。
【００４３】
代理応答部１０１は既述の代理応答部１０１（図１）に対応し、この実施の形態ではアクセス要求を受けたＤｉｓｋを診断している場合等、Ｄｉｓｋに障害がある場合（例えば、応答ができない場合）に、該Ｄｉｓｋに代わり、コマンド応答処理を行う機能部である。この代理応答部１０１は、アドレス管理テーブル５０にある各Ｄｉｓｋの状態情報に基づき、受信コマンドに対し、応答の可否を判断し、その結果としてＣＭ４０にＤｉｓｋの状態情報を通知する。
【００４４】
アドレス管理テーブル５０は、各Ｄｉｓｋ７１１、７１２・・・７１Ｎの状態情報を記憶する状態情報記憶部の一例である。このアドレス管理テーブル５０には、ルーティングのための情報としてＬｏｏｐ初期化時に決定されたデバイス即ち、Ｄｉｓｋ７１１、７１２・・・７１Ｎのアドレスと、接続先の情報を格納して管理する手段である。このアドレス管理テーブル５０には、アドレスに対応する各ディスクの状態情報（例えば、「Normal」）が格納され、この状態情報はＤｉｓｋ状態に応じて更新される変動情報である。
【００４５】
そして、Ｄｉｓｋ７１１、７１２・・・７１Ｎは、既述のストレージ装置８１１、８１２・・・８ＮＮの一例であって、磁気ディスク装置、光磁気ディスク装置等の記憶装置又はディスクドライブを含み、記録媒体のみに限定されない。ディスクドライブは、ディスク等の記録媒体を読み書きするための装置である。
【００４６】
次に、代理応答部１０１について、図４を参照する。図４は代理応答部の一例を示している。図４において、図３と同一部分には同一符号を付してある。
【００４７】
この代理応答部１０１は、ディスクに代わる応答手段の一例であって、ＣＭ４０からのアクセス要求に応答すべきストレージ装置としてＤｉｓｋ７１１、７１２・・・７１Ｎに障害が発生している場合、Ｄｉｓｋ７１１、７１２・・・７１Ｎに代わって応答する機能である。具体的には、ＣＭ４０からのＤｉｓｋ７１１、７１２・・・７１Ｎに対するＩ／Ｏ発行を受け、アドレス管理テーブル５０にある状態情報を対応するディスクに代わって応答する。
【００４８】
この代理応答部１０１は、既述の通り、ＰＢＣモジュール６０１にあるスイッチチップ４８に設置されている。この代理応答部１０１には、図４に示すように、通信部５２と、障害検出部５４と、テーブル更新部５６とを備える。
【００４９】
通信部５２は、ＣＭ４０からのアクセス要求に対応し、ＰＢＣ４６と情報を授受する手段である。
【００５０】
障害検出部５４は、ディスクに発生した障害の検出手段の一例であって、Ｄｉｓｋ７１１、７１２・・・７１Ｎの障害を検出し、又はＤｉｓｋ７１１、７１２・・・７１Ｎからの障害情報を検出する機能部である。
【００５１】
テーブル更新部５６は、情報更新手段の一例であって、障害検出部５４の検出情報に基づき、アドレス管理テーブル５０にある状態情報の更新を行う機能部であって、状態情報の書込み手段でもある。
【００５２】
次に、ＣＭ４０について、図５を参照する。図５はＣＭのハードウェア構成の一例を示している。
【００５３】
ＣＭ４０は、図示しないホストコンピュータとのデータの送受機能、代理応答部１０１等のアクセス機能、記憶情報の整合化機能、ストレージ情報管理機能等の各種の機能を実現する。これらの機能を実現するため、ＣＭ４０にはそのハードウェアとして例えば、ＣＰＵ（Central Processing Unit ）５８、入出力部９０、記憶部９２等を備える。
【００５４】
ＣＰＵ５８は、記憶部９２にある制御プログラムを実行する手段であって、次のような処理を行う。
【００５５】
(a) ホストコンピュータからのアクセス要求を受け、対応するディスクにＩ／Ｏを発行する。
【００５６】
(b) 代理応答部１０１に対し、一定の時間間隔又はランダムにコマンドを発行し、代理応答部１０１からディスクの状態情報（既述のストレージ装置情報である）を確認し、その情報を記憶部９２に格納する。
【００５７】
(c) 複数のストレージ装置の一例である既述のＤｉｓｋ７１１、７１２・・・７１Ｎが異なるＤｉｓｋ７１１、７１２・・・７１Ｎとの間で共通情報を記憶するＲＡＩＤ構成であれば、この情報の整合化処理を実行する。即ち、共通情報を記録する２以上のＤｉｓｋ７１１、７１２・・・７１Ｎの何れかのＤｉｓｋ間で記憶情報に不整合を生じた場合にはこれらの整合化処理を行う。
【００５８】
入出力部９０は、ＣＰＵ５８の制御によりデータの入出力を実行する手段の一例である。この入出力部９０にはバスを介してホストコンピュータやＰＣモジュール６０１が接続され、データの授受が行われる。
【００５９】
記憶部９２は、既述の制御プログラムを実行するためのＯＳ（Operating System）、既述の制御プログラムが格納されるとともに、データ記憶部が設定される。このデータ記憶部の一例として、既述の更新データ管理テーブル４４が設定されている。
【００６０】
この更新データ管理テーブル４４は、ストレージ情報記憶部又は整合化情報記憶部の何れか一方又は双方の一例である。ストレージ情報は、代理応答部１０１から取得したストレージ装置を表す情報（ストレージ装置情報）である。また、整合化情報は、複数のＤｉｓｋ間の格納情報の整合化のために用いる情報である。即ち、この整合化情報は、共通情報を記録する２以上のストレージ装置の例えば、Ｄｉｓｋ７１１、７１２・・・７１Ｎの何れかのストレージ装置間即ち、Ｄｉｓｋ間で記憶情報に不整合を生じた場合、記憶情報を整合化するストレージ装置情報又はアドレス情報である。
【００６１】
次に、代理応答部１０１について、図６を参照する。図６は代理応答部のハードウェア構成の一例を示している。
【００６２】
この代理応答部１０１は、既述の通り、Ｄｉｓｋ７１１、７１２・・・７１Ｎの代理応答機能、Ｄｉｓｋ７１１、７１２・・・７１Ｎの障害検出機能、アドレス管理テーブル５０の更新機能等の機能を実現する。これらの機能を実現するため、代理応答部１０１にはそのハードウェアとして例えば、ＣＰＵ９４、入出力部９６、記憶部９８等を備える。
【００６３】
ＣＰＵ９４は、記憶部９８にある制御プログラムを実行する手段であって、次のような処理を行う。
【００６４】
(a) ＣＭ４０からのアクセス要求に対応する。
【００６５】
(b) ＣＭ４０から一定の時間間隔又はランダムにコマンドを受け、ディスクの状態情報（既述のストレージ装置情報である）を確認し、その情報をＣＭ４０に応答する。
【００６６】
(c) 複数のストレージ装置として既述のＤｉｓｋ７１１、７１２・・・７１Ｎの障害発生を検出する。この検出で得た状態情報を記憶部９８に書き込む。
【００６７】
入出力部９６は、ＣＰＵ９４の制御によりデータの入出力を実行する手段の一例である。この入出力部９６にはバスを介して他の代理応答部１０２、１０３・・・１０Ｎ、ＣＭ４０、Ｄｉｓｋ７１１、７１２・・・７１Ｎが接続され、データの授受が行われる。
【００６８】
記憶部９８は、プログラムやデータの記憶手段であって、磁気ディスク装置、半導体メモリ等の記録媒体によって構成される。この記憶部９８には、プログラム記憶部１２２、データ記憶部１２４等が備えられる。プログラム記憶部１２２には、ＯＳ、制御プログラム、代理応答処理プログラム等の各種のプログラムが格納されている。
【００６９】
データ記憶部１２４は、既述の複数のストレージ装置の状態情報を記憶する状態情報等を記録し、管理する手段の一例であって、このデータ記憶部１２４には、既述のアドレス管理テーブル５０が格納されている。このアドレス管理テーブル５０は、各Ｄｉｓｋ７１１、７１２・・・７１Ｎのアドレスや接続先情報に加え、各Ｄｉｓｋの状態情報が格納されている。
【００７０】
次に、アドレス管理テーブル５０について、図７を参照する。図７はアドレス管理テーブルの一例を示している。
【００７１】
このアドレス管理テーブル５０には、既述のＣＭ４０からのアクセス要求に対応する処理の一例であるルーティング処理に用いる情報として、Ｌｏｏｐ初期化時に決定されたデバイスのアドレスと、その接続先情報及び状態情報が格納される。そこで、このアドレス管理テーブル５０には、図７のＡに示すように、アドレス部１２６、接続先ポート部１２８、状態情報部１３０が設定され、それぞれの項目に対応する情報が格納される。後述の比較例のアドレス管理テーブル５０と単純に比較すれば、状態情報部１３０が追加されている。
【００７２】
アドレス部１２６には、既述の通り、Ｌｏｏｐ初期化時に決定されたデバイスのアドレス情報が格納され、アドレス情報として例えば、０ｘ０１、０ｘ０２・・・０ｘＥＦが格納されている。接続先ポート部１２８には接続先情報としてポート番号が格納される。状態情報部１３０には、各Ｄｉｓｋの状態情報として正常であれば、その正常状態を表す「Normal」又は障害が発生してリカバリング状態であれば、リカバリング状態を表す「Recovering」が格納される。図７のＡに示すアドレス管理テーブル５０では、アドレス０ｘ０１、０ｘ０２、０ｘ０３のＤｉｓｋが「Normal」であり、アドレス０ｘＥＦにあるＤｉｓｋが「Recovering」であることを示している。
【００７３】
また、このアドレス管理テーブル５０には、リカバリング処理の後、継続使用できないＤｉｓｋがあれば、その状態情報として、継続使用不可を表す「Broken」が格納される。図７のＢに示すアドレス管理テーブル５０では、アドレス０ｘ０１、０ｘ０２、０ｘＥＦのＤｉｓｋが「Normal」であり、０ｘ０３のＤｉｓｋが「Broken」であることを示している。
【００７４】
次に、更新データ管理テーブル４４について、図８を参照する。図８は更新データ管理テーブル及びデータ構造の一例を示している。
【００７５】
この更新データ管理テーブル４４は、リカバリ処理中のＤｉｓｋを含むＲＡＩＤに対するデータ更新処理（Ｗｒｉｔｅ処理）のアドレス情報を記録する手段の一例である。このＷｒｉｔｅ処理では、リカバリ処理中のＤｉｓｋに保存されたデータの更新が行われ、この更新データ管理テーブル４４に記録したアドレスのデータは「整合性が崩れた状態＝データの冗長化が行われていない状態」となっている。
【００７６】
リカバリ成功後に行う整合化処理では、この更新データ管理テーブル４４に記録された情報に基づき、リカバリ処理中であったＤｉｓｋのデータを更新することにより、ＲＡＩＤの整合性を修復し、データを冗長化された状態に復元する。Ｄｉｓｋのリカバリ処理には、ディスクのデータ更新や、ＲＡＩＤの整合性の修復等の処理が含まれる。
【００７７】
そして、この更新データ管理テーブル４４には、整合化処理において更新が必要なＤｉｓｋとデータのアドレスを特定するための情報を記録する。アドレスは通常のＲＡＩＤであれば、ストライプ番号等が使用される。
【００７８】
そこで、この更新データ管理テーブル４４には、図８に示すように、要データ更新Ｄｉｓｋ部１３２と、更新データアドレス部１３４とが設定され、それぞれの項目に対応する情報が格納される。要データ更新Ｄｉｓｋ部１３２にはデータ更新が必要なＤｉｓｋを表す情報が格納され、この実施の形態では、Ｄｉｓｋ情報としてＤｉｓｋ１、Ｄｉｓｋ１、Ｄｉｓｋ２・・・が格納されている。更新データアドレス部１３４には、データ更新対象を表すアドレスが格納される。この場合、Ｄｉｓｋ１、Ｄｉｓｋ２がデータ更新を必要とし、データ更新が必要なアドレスは、Ｄｉｓｋ１の「ストライプ１」及び「ストライプ２」、Ｄｉｓｋ２の「ストライプ１９」であることを表している。
【００７９】
次に、ＰＢＣモジュール６０１の代理応答動作について、図９、図１０、図１１及び図１２を参照する。図９、図１０、図１１及び図１２は代理応答部の代理応答動作の一例を示している。図９、図１０、図１１及び図１２において、図３と同一部分には同一符号を付してある。
【００８０】
図９は、複数のＰＢＣモジュールの一つのＰＢＣモジュール６０１に接続されているＤｉｓｋ７１Ｎに特定異常が生じ、その障害が検出された場合を示している。このような障害が発生すると、対象Ｄｉｓｋ７１ＮとＬｏｏｐとの接続を切断する。代理応答部１０１は、アドレス管理テーブル５０にＤｉｓｋ７１Ｎの状態を記録する。
【００８１】
Ｄｉｓｋ７１Ｎでは、図１０に示すように、リカバリ処理１３６に遷移し、リカバリ処理中状態となる。この場合、代理応答部１０１は、アドレス管理テーブル５０にＤｉｓｋ７１Ｎのアドレス、接続先ポートとともに状態が「Recovering」であることを記録する。そして、Ｄｉｓｋ７１Ｎを管轄している代理応答部１０１は代理応答モードとなり、「代理応答中」の状態に移行する。
【００８２】
そして、図１１に示すように、ＣＭ４０からリカバリ処理中のＤｉｓｋ７１Ｎへのコマンド１３８が発行された場合、このコマンド１３８をＤｉｓｋ７１Ｎを管轄している代理応答部１０１が受ける。対象Ｄｉｓｋ７１Ｎはリカバリ処理状態を維持する。このとき、「代理応答中」の状態にある代理応答部１０１はＣＭ４０のアクセス要求に対して代理応答を行う。
【００８３】
この代理応答動作では、図１２に示すように、リカバリ処理中のＤｉｓｋ７１Ｎに代わり、代理応答部１０１が代理応答１４０を行う。この代理応答１４０は、ＣＭ４０に対し、Ｄｉｓｋ７１Ｎに代わる代理応答であること、Ｄｉｓｋ７１Ｎの状態情報として既述の「Recovering」中であることを通知する。
【００８４】
次に、Ｄｉｓｋリカバリ処理について、図１３を参照する。図１３はＰＢＣモジュールのＤｉｓｋリカバリ処理の処理手順の一例を示している。
【００８５】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、ＰＢＣモジュール６０１の動作概要を示している。この処理手順では、図１３に示すように、Ｄｉｓｋの特定異常を検出し（ステップＳ２０１）、対象ＤｉｓｋとＬｏｏｐとの接続を切断する（ステップＳ２０２）。対象Ｄｉｓｋの状態をアドレス管理テーブル５０に「Recovering」（図７のＡ）と記録し、Ｄｉｓｋリカバリ処理を開始する（ステップＳ２０３）。
【００８６】
コントローラ４からコマンドを受信したかの判定を行う（ステップＳ２０４）。コントローラ４からコマンドを受信していれば（ステップＳ２０４のＹＥＳ）、対象Ｄｉｓｋの状態が「Normal」以外のＤｉｓｋへのコマンドかを判定する（ステップＳ２０５）。
【００８７】
状態が「Normal」以外のＤｉｓｋへのコマンドであれば（ステップＳ２０５のＹＥＳ）、対象Ｄｉｓｋに代わってＤｉｓｋの状態を含むコマンド応答をコントローラ４に送信し（ステップＳ２０６）、ステップＳ２０４に戻る。
【００８８】
状態が「Normal」以外のＤｉｓｋへのコマンドでなければ（ステップＳ２０５のＮＯ）、受信コマンドを対象Ｄｉｓｋの接続ポートにそのまま転送し（ステップＳ２０７）、ステップＳ２０４に戻る。
【００８９】
ステップＳ２０４において、コントローラ４からコマンドを受信していなければ（ステップＳ２０４のＮＯ）、診断・リカバリ処理が終了したかの判定を行う（ステップＳ２０８）。診断・リカバリ処理が終了していなければ（ステップＳ２０８のＮＯ）、ステップＳ２０４に戻り、ステップＳ２０４〜Ｓ２０８の処理を実行する。
【００９０】
診断・リカバリ処理が終了していれば（ステップＳ２０８のＹＥＳ）、対象Ｄｉｓｋ（診断・リカバリ処理を実行したＤｉｓｋ）の継続使用が可能かの判断をする（ステップＳ２０９）。
【００９１】
対象Ｄｉｓｋの継続使用が可能であれば（ステップＳ２０９のＹＥＳ）、その対象ＤｉｓｋをＬｏｏｐに接続し（ステップＳ２１０）、接続のためのＬｏｏｐの初期化処理を実行し（ステップＳ２１１）、この処理を終了する。
【００９２】
また、対象Ｄｉｓｋの継続使用が可能でなければ（ステップＳ２０９のＮＯ）、その対象Ｄｉｓｋの状態をアドレス管理テーブル５０に「Broken」（図７のＢ）と記録し（ステップＳ２１２）、この処理を終了する。
【００９３】
次に、ＣＭ４０及びＰＢＣモジュール６０１の処理動作を説明する。
【００９４】
ＣＭ４０ではＤｉｓｋに発行したコマンドに対する応答について、その応答がＤｉｓｋから発せられたものか、代理応答部１０１が発したものかを判断する。この判断には、代理応答部１０１から発せられる情報に代理応答部１０１が発したことを表す識別情報を含ませておけばよい（この点は、後述の代理応答部１０２・・・１０Ｎについても同様である）。代理応答部１０１からの応答であると判断すれば、コマンドに含まれるＤｉｓｋの状態情報を識別する処理を実行する。そこで、ＣＭ４０では、この処理で識別したＤｉｓｋの状態情報として例えば、「Recovering」と「Broken」の２種類からその後の動作を決定する。
【００９５】
ＣＭ４０は代理応答部１０１から受けた応答の場合、Ｄｉｓｋの状態が「Broken」であれば、そのＤｉｓｋを故障として記憶し、Ｄｉｓｋが故障した際の処理を行う。Ｄｉｓｋの状態が「Recovering」であれば、そのＤｉｓｋのリカバリ処理が終了するまで、即ち、終了と判断できるまで、ＣＭ４０は、リカバリ処理中のＩ／Ｏ発行や終了判断のための以下の処理を行う。
【００９６】
(1) 対象Ｄｉｓｋに保存されたデータ領域の読み出し（Ｒｅａｄ）をする必要が発生すれば、データがレイド（ＲＡＩＤ）により冗長化されていれば、対象Ｄｉｓｋを除く冗長化されたＤｉｓｋからデータを読み出す。
【００９７】
(2) 対象Ｄｉｓｋに保存されたデータ領域に書き込み（Ｗｒｉｔｅ）する必要が発生した場合、データがＲＡＩＤにより冗長化されていれば、対象Ｄｉｓｋを除く冗長化されたＤｉｓｋに対してのみデータを書き込む。この書き込んだデータのＲＡＩＤ上のアドレスを対象Ｄｉｓｋの「Recovering」の状態が変化するまで、その記録を維持する。この記憶領域がＣＭ４０に設置された更新データ管理テーブル４４の更新データアドレスである。
【００９８】
(3) 対象Ｄｉｓｋの状態を監視するために、一定時間の間隔で対象Ｄｉｓｋに対してコマンドを発行し、代理応答部１０１からの応答内容を確認し、判断する。
【００９９】
(4) Ｄｉｓｋの状態が「Broken」であれば、対象Ｄｉｓｋを故障として記憶する。この場合、故障が発生したＤｉｓｋに対し、リカバリ処理等を行う。
【０１００】
(5) Ｌｏｏｐ初期化が発生し、その初期化後に対象ＤｉｓｋがＬｏｏｐに接続されていれば、対象Ｄｉｓｋが復旧したと判断し、記録内容に応じて対象Ｄｉｓｋについて、データの整合性処理を行う。
【０１０１】
(6) Ｌｏｏｐ初期化が発生し、その初期化後に対象ＤｉｓｋがＬｏｏｐから切り離されている場合は、対象Ｄｉｓｋがリカバリ中もしくは故障の可能性があると判断し、Ｄｉｓｋの故障判断を行う。その結果、Ｄｉｓｋが故障であると判断できた場合には、更新データ管理テーブル４４に記録した情報を破棄する。再度Ｌｏｏｐ初期化が発生し、対象ＤｉｓｋがＬｏｏｐに接続された場合には既述のデータの整合性処理を行う。
【０１０２】
次に、ＣＭ４０のコマンド発行及び応答について、図１４を参照する。図１４はコマンド発行及び応答の処理手順の一例を示している。
【０１０３】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、ＣＭ４０とＰＢＣモジュール６０１との通信処理及び応答内容の判断である。この処理手順では、図１４に示すように、ＣＭ４０がＤｉｓｋにＩ／Ｏを発行する（ステップＳ３０１）。このＩ／Ｏ発行に対し、ＣＭ４０が応答を受信する（ステップＳ３０２）。受信した応答が代理応答部１０１からの応答か否かを判断し（ステップＳ３０３）、代理応答部１０１からの応答でなければ（ステップＳ３０３のＮＯ）、この処理を終了する。
【０１０４】
代理応答部１０１からの応答であれば（ステップＳ３０３のＹＥＳ）、Ｄｉｓｋリカバリ中処理（図１５）に遷移する（ステップＳ３０４）。
【０１０５】
次に、Ｄｉｓｋリカバリ中処理について、図１５を参照する。図１５はＤｉｓｋリカバリ中処理の処理手順の一例を示している。
【０１０６】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、Ｄｉｓｋリカバリ中処理シーケンスである。ＣＭ４０におけるＤｉｓｋリカバリ中処理では、図１５に示すように、Ｄｉｓｋの識別情報が「Recovering」か判断する（ステップＳ４０１）。Ｄｉｓｋの識別情報が「Recovering」であれば（ステップＳ４０１のＹＥＳ）、対象Ｄｉｓｋに対してＩ／Ｏを発行する必要があるかを判定する（ステップＳ４０２）。対象Ｄｉｓｋに対してＩ／Ｏを発行する必要があれば（ステップＳ４０２のＹＥＳ）、リカバリ中Ｉ／Ｏ処理（図１６）を実行し（ステップＳ４０３）、リカバリ中Ｉ／Ｏ処理の終了後、ステップＳ４０２に遷移する。
【０１０７】
ステップＳ４０１において、Ｄｉｓｋの識別情報が「Recovering」でなければ（ステップＳ４０１のＮＯ）、対象Ｄｉｓｋを故障として記憶する（ステップＳ４０４）。この場合、対象Ｄｉｓｋが故障であるから、このＤｉｓｋリカバリ中処理を終了する。
【０１０８】
ステップＳ４０２において、対象Ｄｉｓｋに対してＩ／Ｏを発行する必要がなければ（ステップＳ４０２のＮＯ）、Ｌｏｏｐ初期化が発生したか否かを判断する（ステップＳ４０５）。
【０１０９】
Ｌｏｏｐ初期化が発生していれば（ステップＳ４０５のＹＥＳ）、対象ＤｉｓｋがＬｏｏｐから切り離されたかを判断する（ステップＳ４０６）。対象ＤｉｓｋがＬｏｏｐから切り離されていれば（ステップＳ４０６のＹＥＳ）、対象Ｄｉｓｋについては、従来の方法でＤｉｓｋ故障を判断するように記憶し（ステップＳ４０７）、このＤｉｓｋリカバリ中処理を終了する。
【０１１０】
ステップＳ４０５において、Ｌｏｏｐ初期化が発生していなければ（ステップＳ４０５のＮＯ）、代理応答部１０１からの応答から一定時間以上が経過したかを判断する（ステップＳ４０８）。代理応答部１０１からの応答から一定時間以上が経過していなければ（ステップＳ４０８のＮＯ）、ステップＳ４０２に戻る。また、代理応答部１０１からの応答から一定時間以上が経過していれば（ステップＳ４０８のＹＥＳ）、対象Ｄｉｓｋ宛にＤｉｓｋの識別情報を取得するためのＩ／Ｏを発行し（ステップＳ４０９）、ステップＳ４０１に戻る。
【０１１１】
ステップＳ４０６において、対象ＤｉｓｋがＬｏｏｐから切り離されていなければ（ステップＳ４０６のＮＯ）、データ整合化処理（図１７）を実行し（ステップＳ４１０）、その実行終了後、このＤｉｓｋリカバリ中処理を終了し、既述のステップＳ３０４（図１４）に遷移する。
【０１１２】
次に、リカバリ中Ｉ／Ｏ処理について、図１６を参照する。図１６はリカバリ中Ｉ／Ｏ処理の処理手順の一例を示している。
【０１１３】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、リカバリ中Ｉ／Ｏ処理（図１５のステップＳ４０３）を示している。この処理手順では、図１６に示すように、ＲＡＩＤによりデータが冗長化されているかを判断する。ＲＡＩＤによりデータが冗長化されていれば（ステップＳ５０１のＹＥＳ）、Ｉ／Ｏが書き込み（Write ）かを判断する（ステップＳ５０２）。Ｉ／Ｏが書き込みであれば（ステップＳ５０２のＹＥＳ）、冗長化されたＤｉｓｋへデータ又はパリティの書き込みを実行する（ステップＳ５０３）。書き込んだデータのアドレス情報を更新データ管理テーブル４４に記録し（ステップＳ５０４）、このリカバリ中Ｉ／Ｏ処理を終了し、既述のステップＳ４０３（図１５）に遷移する。
【０１１４】
ステップＳ５０１において、ＲＡＩＤによりデータが冗長化されていなければ（ステップＳ５０１のＮＯ）、ＣＭ４０はＩ／Ｏの発行を保留し（ステップＳ５０５）、このリカバリ中Ｉ／Ｏ処理を終了し、既述のステップＳ４０３（図１５）に遷移する。
【０１１５】
また、ステップＳ５０２において、Ｉ／Ｏが書き込みでなければ（ステップＳ５０２のＮＯ）、冗長化されたＤｉｓｋからデータ又はパリティの読み込み、元データを生成し（ステップＳ５０６）、このリカバリ中Ｉ／Ｏ処理を終了し、既述のステップＳ４０３（図１５）に遷移する。
【０１１６】
次に、データ整合化処理について、図１７を参照する。図１７はデータ整合化の処理手順の一例を示している。
【０１１７】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、データ整合化処理（図１５のステップＳ４１０）を示している。この処理手順では、図１７に示すように、更新データ管理テーブル４４に有効なアドレス情報があるか否かを判断する（ステップＳ６０１）。更新データ管理テーブル４４に有効なアドレス情報があれば（ステップＳ６０１のＹＥＳ）、データの整合性を取るため、更新データ管理テーブル４４にあるアドレス情報に基づき、冗長化されたＤｉｓｋから対象Ｄｉｓｋに書き込むべきデータを生成する（ステップＳ６０２）。
【０１１８】
生成したデータを対象Ｄｉｓｋに書き込み（ステップＳ６０３）、整合化処理が完了したアドレス情報を更新データ管理テーブル４４から消去し（ステップＳ６０４）、ステップＳ６０１に遷移する。
【０１１９】
また、ステップＳ６０１において、更新データ管理テーブル４４に有効なアドレス情報がなければ（ステップＳ６０１のＮＯ）、このデータ整合化処理を終了し、既述のステップＳ４１０（図１５）に遷移する。
【０１２０】
次に、ＣＭ４０、ＰＢＣモジュール６０１及びＤｉｓｋ７１１、７１２・・・７１Ｎの処理の相関関係について、図１８及び図１９を参照する。図１８及び図１９は既述のフローチャートで示した処理の相関関係の一例を示している。図１８及び図１９において、ａ、ｂ、ｃ、ｄはフローチャート間の接続子である。
【０１２１】
この処理手順は、本開示のストレージシステムの制御方法の一例であって、Ｄｉｓｋリカバリが成功した場合である。この処理手順には図１８に示すように、ＰＢＣモジュール６０１によるＤｉｓｋリカバリ処理Ｆ１、ＣＭ４０によるリカバリ中Ｉ／Ｏ処理Ｆ２、ＣＭ４０、ＰＢＣモジュール６０１及びＤｉｓｋ７１１、７１２・・・７１Ｎによるデータ整合化処理Ｆ３が含まれる。
【０１２２】
ＣＭ４０はＤｉｓｋ７１１、７１２・・・７１Ｎに対してＩ／Ｏを発行する（ステップＳ７０１）。このＩ／Ｏ発行を受けたＰＢＣモジュール６０１は、このＩ／Ｏ発行をＤｉｓｋに転送する（ステップＳ７０２）。Ｄｉｓｋは、Ｉ／Ｏ発行を受けてデータをＰＢＣモジュール６０１に出力する（ステップＳ７０３）。ＰＢＣモジュール６０１は、そのデータをＣＭ４０に転送する（ステップＳ７０４）。
【０１２３】
ＰＢＣモジュール６０１がＤｉｓｋの特定異常を検出し（ステップＳ７０５）、これによりＤｉｓｋリカバリ処理Ｆ１に移行する。ＰＢＣモジュール６０１がＤｉｓｋの特定異常を検出すると、Ｌｏｏｐとの接続を切断し（ステップＳ７０６）、リカバリ処理を開始し（ステップＳ７０７）、このリカバリ処理では、Ｄｉｓｋの状態をアドレス管理テーブル５０に「Recovering」と記録する。
【０１２４】
このＤｉｓｋリカバリ中に、ＣＭ４０からＤｉｓｋにＩ／Ｏが発行されると、このＩ／Ｏは、既述の通り、Ｐモジュール６０１が受け取る（ステップＳ７０８）。このＩ／Ｏ発行に対し、ＰＢＣモジュール６０１が代理応答部１０１で応答させるための処理を実行する（ステップＳ７０９）。この場合、ＰＢＣモジュール６０１はＤｉｓｋからの応答ができないことを認識しているので、代理応答部１０１に応答させるためのコマンドを発行する。この処理に応じ、代理応答部１０１がＤｉｓｋ状態情報を発行（ステップＳ７１０）、このＤｉｓｋ状態情報がＰＢＣモジュール６０１からＣＭ４０に転送される（ステップＳ７１１）。このＤｉｓｋ状態情報の発行により、Ｄｉｓｋの状態を「Recovering」と記録し、リカバリ中処理Ｆ２を開始する。
【０１２５】
Ｄｉｓｋリカバリ中処理Ｆ２では、更新データ管理テーブル４４にアドレス情報を記録する（ステップＳ７１２）。この場合、リカバリ中のＤｉｓｋを含むＲＡＩＤへの書き込み処理は、他のＤｉｓｋにだけデータを書き込み、特定異常が検出されたＤｉｓｋへの書き込みは後のデータ整合化処理Ｆ３で行う。
【０１２６】
Ｄｉｓｋリカバリ処理Ｆ１において、Ｄｉｓｋのリカバリ処理が成功し（ステップＳ７１３）、ＰＢＣモジュール６０１がＬｏｏｐにＤｉｓｋを接続し（ステップＳ７１４）、そのＬｏｏｐの初期化処理を実行する（ステップＳ７１５、Ｓ７１６）。
【０１２７】
そして、データ整合化処理Ｆ３では、図１９に示すように、ＣＭ４０が更新データ管理テーブル４４によりアドレス情報を確認する（ステップＳ７１７）。このアドレス情報に基づき、データの整合性を修復するためのデータを他のＤｉｓｋから生成させる。そこで、ＣＭ４０からＰＢＣモジュール６０１に対し、データの整合性を修復するための書き込みを行い（ステップＳ７１８）、そのデータは、ＰＢＣモジュール６０１からＤｉｓｋに対し転送される（ステップＳ７１９）。そして、ＣＭ４０は、更新データ管理テーブル４４にあるアドレス情報を消去する（ステップＳ７２０）。
【０１２８】
次に、処理内容について、図２０、図２１及び図２２を参照する。図２０はデータ読み出し処理、図２１はデータ書き込み処理、図２２はデータ整合化処理を示している。
【０１２９】
この処理内容には、ＲＡＩＤ１（ミラーリング）の冗長構成であって、(a) データ読み出し処理、(b) データ書き込み処理、(c) Ｄｉｓｋ間のデータ整合化処理が含まれる。
【０１３０】
(a) データ読み出し処理
【０１３１】
ＲＡＩＤ１（ミラーリング）では、図２０に示すように、Ｄｉｓｋ１とＤｉｓｋ２のそれぞれには同一の更新データアドレスに同一のデータＡ、Ｂ・・・Ｄが格納されている。即ち、Ｄｉｓｋ１及びＤｉｓｋ２には、同一のストライプ情報１、２・・・４に同一のデータＡ、Ｂ・・・Ｄが格納されている。
【０１３２】
この場合、Ｄｉｓｋ１はリカバリ処理中である（ステップＳ８０１）。そこで、リカバリ処理中のＤｉｓｋ１に対し、例えば、データＡの読み出し処理が行われた場合には、Ｄｉｓｋ１に代え、Ｄｉｓｋ１とミラーリングされているＤｉｓｋ２からデータＡの読み出し（Ｒｅａｄ）が実行される（ステップＳ８０２）。
【０１３３】
(b) データ書込み処理
【０１３４】
このデータの書込み処理は、図２１に示すように、ＲＡＩＤ１（ミラーリング）の冗長構成で、Ｄｉｓｋ１のリカバリ処理中（ステップＳ８１１）に、Ｄｉｓｋ２のデータＡにデータＡ’を上書き（書き込み）する処理である。このような書き込み処理（ステップＳ８１２）を実行すると、Ｄｉｓｋ１のストライプ情報１にあるデータＡと、Ｄｉｓｋ２のデータＡ’と相違することになる。
【０１３５】
このようなデータＡ、Ａ’の相違を回避するため、更新データ管理テーブル４４には、データ整合化処理（図２２）の準備として、更新が必要なＤｉｓｋ１及びデータアドレスを記録する（ステップＳ８１２）。そこで、更新データ管理テーブル４４には、要データ更新Ｄｉｓｋ部１３２に「Ｄｉｓｋ１」を格納し、更新データアドレス部１３４に「ストライプ１」を格納する。
【０１３６】
(c) データ整合化処理
【０１３７】
このデータの整合化処理は、ＲＡＩＤ１（ミラーリング）の冗長構成で、Ｄｉｓｋリカバリ処理が成功した場合のＤｉｓｋ間のデータ整合化処理である。このデータ整合化処理では、図２２に示すように、既述のデータの書込み処理で記録内容を更新された更新データ管理テーブル４４が参照される（ステップＳ８２１）。更新データ管理テーブル４４にある要データ更新Ｄｉｓｋ及び更新データアドレスが参照情報である。そこで、要データ更新Ｄｉｓｋ部１３２にある「Ｄｉｓｋ１」、更新データアドレス部１３４にある「ストライプ１」が用いられる。
【０１３８】
この場合、Ｄｉｓｋ１がリカバリに成功しているので、この整合化処理では、Ｄｉｓｋ２からデータＡ’の読み出しを行い（ステップＳ８２２）、このデータＡ’をＤｉｓｋ１のストライプ１にあるデータＡに上書き（書き込み）をし（ステップＳ８２３）、データＡをデータＡ’に書き替える。
【０１３９】
以上述べた第２の実施の形態の特徴事項、効果又は変形例等を以下に列挙する。
【０１４０】
(1) ＣＭ４０がリカバリ中のＤｉｓｋに対してＩ／Ｏを発行した場合、Ｄｉｓｋに代わってＣＭ４０に対して応答処理を行う代理応答部１０１がＰＢＣモジュール６０１に設置されている。ＰＢＣモジュール６０１がＤｉｓｋリカバリ処理を行う場合の切離しのためのＬｏｏｐの初期化処理が不要となる。
【０１４１】
(2) 代理応答部１０１は、リカバリ中のＤｉｓｋに代わってＣＭ４０に応答を行う際に、Ｄｉｓｋの状態情報を含めて応答を行う。ＣＭ４０側には応答内容からＤｉｓｋの状態（Recovering、Broken等）を把握するための機能を備えている。これにより、ＣＭ４０はＤｉｓｋに対する通常のＩ／Ｏ処理により、瞬時にＤｉｓｋの状態を把握できる。また、Ｄｉｓｋの故障判断が不要となり、ＣＭ４０はＤｉｓｋの状態に応じた対応ができる。
【０１４２】
(3) ＣＭ４０は、Ｄｉｓｋがリカバリ処理中であれば、リカバリ処理中のＤｉｓｋに含まれるデータが冗長化されているケース（ＲＡＩＤ構成の場合）では、処理中のＤｉｓｋからアクセス先を冗長化されたＤｉｓｋに対してデータ処理を行う。これにより、Ｄｉｓｋのリカバリ処理中であっても、Ｉ／Ｏ処理を継続して行うことができる。また、Ｉ／Ｏ処理が継続して行えるので、ストレージシステム２の利便性が向上する。
【０１４３】
(4) 予め、更新データ管理テーブル４４が用意されているので、ＣＭ４０が冗長化されたＤｉｓｋにデータを書き込む場合、書き込んだデータのアドレス（例えば、ＲＡＩＤのストライプ番号等）を随時記録して管理できる。
【０１４４】
(5) 更新データ管理テーブル４４とともに、データ整合性を図る機能部を備えている。Ｄｉｓｋのリカバリに成功した際に、記録していたアドレス情報に基づいてリカバリ中に書き込んだデータを読み出すことができる。そして、リカバリが成功したＤｉｓｋに対してコピーを行い、冗長化データの整合性を復旧することができる。これにより、Ｄｉｓｋのリカバリ処理中にデータ書き込みが発生し、冗長化されたデータとリカバリ処理中のＤｉｓｋ内のデータとの不整合が生じても、それをリカバリ処理完了後に解消できる。これが完了すれば、リカバリ処理前と全く同じ状態でＤｉｓｋを使用できる。
【０１４５】
(6) このストレージシステム２では、Ｄｉｓｋリカバリ処理が可能であり、斯かる処理の迅速化を図ることができる。
【０１４６】
(7) 障害のあるＤｉｓｋに代わり、代理応答部１０１、１０２・・・１０ＮがＣＭ４０からのアクセス要求に応答するので、リカバリ中のＤｉｓｋの効率的なＤｉｓｋ診断やリカバリ制御を行うことができる。
【０１４７】
(8) ディスクアレイサブシステムにおいて搭載されたＤｉｓｋに対するリカバリ処理又は診断処理（文中では基本的に「リカバリ処理」を例示している）にも適用でき、リカバリ処理時のディスクアレイサブシステムの性能向上に寄与する。
【０１４８】
(9) Ｄｉｓｋリカバリ処理中もデータへの継続アクセスが可能となり、リカバリ処理成功時もデータの冗長性や整合性を維持することができる。
【０１４９】
(10)  リカバリ処理時に必要なＬｏｏｐの初期化処理の回数を削減できる。
【０１５０】
(11)  Ｄｉｓｋに対するリカバリ処理において通常は最大２回発生するＬｏｏｐ初期化処理を１回（リカバリ成功時）又は０回（リカバリ失敗時）に減らすことができる。これにより、同処理において同一Ｌｏｏｐで発生するアクセス不可時間を減らし、ディスクアレイサブシステムの性能を向上させることができる。
【０１５１】
(12)  ＣＭ４０がＤｉｓｋの状態を迅速に把握でき、Ｄｉｓｋの冗長構成（ＲＡＩＤ）を使用することでＤｉｓｋリカバリ中であっても、Ｉ／Ｏ処理を継続して行うことが可能となる。
【０１５２】
(13)  Ｄｉｓｋに書き込まれるＷｒｉｔｅ情報が更新データ管理テーブル４４等の記録部に記録されている。そこで、Ｄｉｓｋリカバリが完了し、Ｄｉｓｋが使用可能な状態に復旧した際に、この記録情報を参照すれば、容易にデータの整合化を図ることができる。即ち、データの整合性維持が容易化できる。この結果、Ｄｉｓｋリカバリ処理前と同等なデータの冗長性を維持できる。
【０１５３】
〔第３の実施の形態〕
【０１５４】
次に、処理内容について、図２３、図２４及び図２５を参照する。図２３はデータ復元処理、図２４はパリティ生成処理、図２５は整合化データ生成処理を示している。
【０１５５】
この処理内容は、ＲＡＩＤ５で冗長構成された場合であって、(a) データ復元処理、(b) パリティ生成処理、(c) 整合化データ生成処理が含まれる。
【０１５６】
(a) データ復元処理
【０１５７】
このデータ復元化処理は、ＲＡＩＤ５の冗長構成でのデータ読み込み処理である。ＲＡＩＤ５は、記録データを修復するために冗長コードとしてパリティを全Ｄｉｓｋに分散保存する構成である。このＲＡＩＤ５（３＋１）では、図２３に示すように、Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３、Ｄｉｓｋ４にはデータＡ、Ｂ、Ｃ・・・Ｌが格納されている。Ｄｉｓｋ１にはデータＡ、Ｄ、Ｇ及びパリティＰ（ＪＫＬ）、Ｄｉｓｋ２にはデータＢ、Ｅ、Ｊ及びパリティＰ（ＧＨＩ）、Ｄｉｓｋ３にはデータＣ、Ｈ、Ｋ及びパリティＰ（ＤＥＦ）、Ｄｉｓｋ４にはパリティＰ（ＡＢＣ）及びデータＦ、Ｉ、Ｌが格納されている。
【０１５８】
この場合、Ｄｉｓｋ１はリカバリ処理中であるから（ステップＳ９０１）、Ｄｉｓｋ２、Ｄｉｓｋ３及びパリティが分散記録されているＤｉｓｋ４を用いることにより、データＡ、Ｂ、Ｃの読み出し（Ｒｅａｄ）が行われる（ステップＳ９０２）。
【０１５９】
(b) パリティ生成処理
【０１６０】
このパリティ生成処理は、ＲＡＩＤ５の冗長構成でのデータの書き込み処理である。このパリティ生成処理では図２４に示すように、Ｄｉｓｋ１のリカバリ処理中に（ステップＳ９１１）、Ｄｉｓｋ２のデータＢにはデータＢ’、Ｄｉｓｋ３のデータＣにはデータＣ’、Ｄｉｓｋ４のデータＰ（ＡＢＣ）にはデータＰ（Ａ’Ｂ’Ｃ’）を上書き（書き込み）する処理である。このような書き込み処理（ステップＳ９１２）を実行すると、Ｄｉｓｋ１のストライプ情報１にあるデータＡと、Ｄｉｓｋ４のデータＡ’とが相違することになる。
【０１６１】
このようなデータＡ、Ａ’の相違を回避するため、更新データ管理テーブル４４には、整合化データ生成処理（図２５）の準備として、更新が必要なＤｉｓｋ１及びデータアドレスを記録する（ステップＳ９１３）。そこで、更新データ管理テーブル４４には、要データ更新Ｄｉｓｋ部１３２に「Ｄｉｓｋ１」を格納し、更新データアドレス部１３４に「ストライプ１」を格納する。
【０１６２】
(c) 整合化データ生成処理
【０１６３】
この整合化データ生成処理は、ＲＡＩＤ５の冗長構成で、Ｄｉｓｋリカバリ処理が成功した場合のＤｉｓｋ間のデータ整合化処理である。この整合化データ生成処理では、既述のパリティ生成処理で記録内容を更新された更新データ管理テーブル４４が参照される（ステップＳ９２１）。更新データ管理テーブル４４にある要データ更新Ｄｉｓｋ及び更新データアドレスが参照情報である。そこで、要データ更新Ｄｉｓｋ部１３２にある「Ｄｉｓｋ１」、更新データアドレス部１３４にある「ストライプ１」を用いて整合化するためのデータを生成する。
【０１６４】
この場合、Ｄｉｓｋ１がリカバリに成功しているので、この整合化データ生成処理では、Ｄｉｓｋ２、Ｄｉｓｋ３及びＤｉｓｋ４を用いてデータＡ’の読み出しを行い（ステップＳ９２２）、このデータＡ’をＤｉｓｋ１のストライプ１にあるデータＡに上書き（書き込み）をし（ステップＳ９２３）、データＡをデータＡ’に書き替える。
【０１６５】
このようなデータの冗長化を用いた場合にも、上記第１の実施の形態及び上記第２の実施の形態と同様の効果が得られる。
【０１６６】
〔他の実施の形態〕
【０１６７】
(1) 第２の実施の形態では、複数のＰＢＣモジュールから一つのＰＢＣモジュール６０１を取り上げ、その構成、機能及び動作を説明したが、他のＰＢＣモジュール６０２・・・６０Ｎにおいても同様の構成及び機能を備え、既述の動作を得ることができる。
【０１６８】
(2) データの冗長構成として、ＲＡＩＤ１、ＲＡＩＤ５を例示したが、これに限定されない。他のデータの冗長化処理を併用する場合でも、本開示のストレージシステム及びその制御方法を利用できる。
【０１６９】
(3) 第２の実施の形態では、Ｄｉｓｋ７１１、７１２・・・７１Ｎを例示したが、これに限定されない。Ｄｉｓｋ以外の記録媒体を用いてストレージ装置を構成する場合にも、本開示のストレージシステム及びその制御方法を利用できる。
【０１７０】
(4) 上記実施の形態では、記憶情報を整合化する情報としてストレージ装置情報及びアドレス情報として、図８を例示し、要データ更新Ｄｉｓｋ情報及び更新データアドレス情報を例示したが、これに限定されない。アドレス情報は例えば、データの格納先だけでなく、データを特定する情報であってもよい。
【０１７１】
〔比較例〕
【０１７２】
この比較例はディスクアレイサブシステムである。このディスクアレイサブシステムでは、搭載されたＤｉｓｋから特定の異常を検出した場合、その異常を一時的に解消し、そのＤｉｓｋの継続使用を確保する対策が講じられている。この対策には、Ｄｉｓｋリカバリ処理機能、Ｄｉｓｋ診断処理機能がある。
【０１７３】
(1) Ｄｉｓｋリカバリ処理機能
【０１７４】
このＤｉｓｋリカバリ処理機能は、Ｄｉｓｋに対するソフトウェアリセットやハードウェアリセット等のリカバリ処理を行う機能である。
【０１７５】
(2) Ｄｉｓｋ診断処理機能
【０１７６】
このＤｉｓｋ診断処理機能は、リカバリ処理機能と類似した機能であって、Ｄｉｓｋに対するテストや診断処理を実行する。この機能を実行すれば、Ｄｉｓｋから異常が検出されない場合でも、異常が疑われる事象を検出した場合には、そのＤｉｓｋが正常な継続使用が可能か否かを判断する。
【０１７７】
このディスクアレイサブシステムについて、図２６及び図２７を参照する。このディスクアレイサブシステム２００は、上記(1) 又は(2) のような処理を実行し、Ｄｉｓｋを直接監視・制御することが可能なＰＢＣ２０１、２０２・・・２０Ｎを備えている。
【０１７８】
Ｄｉｓｋリカバリ処理を行う場合には、最初に、ＰＢＣ２０１がリカバリ対象のＤｉｓｋ３０１、３０２・・・３０ＮからＤｉｓｋ３０Ｎと、Backend Loopとの間の接続を切断した後、Ｌｏｏｐ初期化処理（ＬＩＰ）を行い、Backend Loopからリカバリ対象のＤｉｓｋ３０Ｎを論理的にも切り離す。これは、対象Ｄｉｓｋ３０ＮをBackend Loopから完全に切り離し、Ｉ／Ｏ処理への悪影響やＬｏｏｐ異常の発生を回避するための処理である。斯かる処理の目的は、第１に、リカバリ処理がBackend Loop内の他ＤｉｓｋのＩ／Ｏ処理への悪影響を防止することである。第２に、ＣＭ４００がリカバリ中の例えば、Ｄｉｓｋ３０Ｎに対してＩ／Ｏを発行しても、Ｌｏｏｐ異常を発生させないためである。
【０１７９】
このような処理の後、ＰＢＣ２０１がリカバリ対象であるＤｉｓｋ３０Ｎにリカバリ処理を実行する。このリカバリ処理の結果、そのＤｉｓｋの継続使用が可能であれば、再度、そのＤｉｓｋをBackend Loopに接続し、Backend Loopに組み込む。この接続の後、Ｌｏｏｐの初期化処理を行い、Ｄｉｓｋ３０Ｎに対し、ＣＭ４００がＩ／Ｏを発行可能な状態に戻す。
【０１８０】
この場合、リカバリ処理の結果、Ｄｉｓｋの継続使用が不可であれば、そのＤｉｓｋ３０ＮをBackend Loopから切り離された状態で維持し、以後、そのＤｉｓｋをストレージシステム内では故障したものとして扱う。
【０１８１】
ＰＢＣ２０１には、図２７に示すように、アドレスと接続先ポートを表す情報を格納したアドレス管理テーブル５００が設置されている。
【０１８２】
このＰＢＣによる処理シーケンスについて、図２８を参照すると、この処理手順では、Ｄｉｓｋの異常を検知し（ステップＳ１００１）、対象ＤｉｓｋとＬｏｏｐとの接続を切断する（ステップＳ１００２）。切離しのためのＬｏｏｐの初期化処理を実施し（ステップＳ１００３）、対象Ｄｉｓｋに対してリカバリ処理を実施する（ステップＳ１００４）。この処理の結果、対象Ｄｉｓｋが継続して使用可能かを判断する（ステップＳ１００５）。対象Ｄｉｓｋの継続使用が可能であれば（ステップＳ１００５のＹＥＳ）、対象ＤｉｓｋをＬｏｏｐに接続し（ステップＳ１００６）、接続のためのＬｏｏｐの初期化処理を実施し（ステップＳ１００７）、この処理を終了する。また、Ｄｉｓｋの継続使用が不可であれば（ステップＳ１００５のＮＯ）、対象Ｄｉｓｋを故障として記憶する（ステップＳ１００８）。
【０１８３】
ところで、Ｄｉｓｋに対してＩ／Ｏを発行するＣＭ４００では、ＰＢＣ２０１で既述の処理が実行された場合、ＰＢＣ２０１のＬｏｏｐ初期化処理によってBackend LoopからＤｉｓｋの切離しを検出し、対象Ｄｉｓｋに関連するＩ／Ｏ発行を一時的に保留する。その後、予め定められた所定時間内に再度のＬｏｏｐ初期化処理が実行され、その結果、そのＤｉｓｋがＬｏｏｐに組み込まれると、保留中のＩ／Ｏ処理が再開される。また、そのＤｉｓｋが既述の所定時間内にＬｏｏｐに組み込まれなければ、以後、対象Ｄｉｓｋは故障とし、保留中のＩ／Ｏに対しエラー処理を行う。
【０１８４】
このように、ＣＭ４００は、ＰＢＣ２０１側の処理内容に関係なく、Ｌｏｏｐから切り離される特定のＤｉｓｋに対し、所定時間以上、Ｉ／Ｏ発行ができない状態が継続すれば、故障と判断する。
【０１８５】
このＣＭ４００の処理シーケンスについて、図２９を参照すると、この処理手順では、Ｌｏｏｐの初期化が発生し（ステップＳ２００１）、ＤｉｓｋがＬｏｏｐから切り離されたことを検出する（ステップＳ２００２）。そこで、再度、Ｌｏｏｐ初期化が発生したかを判断する（ステップＳ２００３）。Ｌｏｏｐ初期化が発生すれば（ステップＳ２００３のＹＥＳ）、切り離されたＤｉｓｋが接続されたかを判断する（ステップＳ２００４）。切り離されたＤｉｓｋが接続されれば（ステップＳ２００４のＹＥＳ）、この処理を終了する。
【０１８６】
また、再度のＬｏｏｐ化の発生がない場合（ステップＳ２００３のＮＯ）や、切り離されたＤｉｓｋが接続されていない場合（ステップＳ２００４のＮＯ）には、Ｄｉｓｋが切離されてから一定時間が経過したかを判断する（ステップＳ２００５）。Ｄｉｓｋの切離しから一定時間が経過すれば（ステップＳ２００５のＹＥＳ）、対象Ｄｉｓｋを故障として記憶し（ステップＳ２００６）、この処理を終了する。
【０１８７】
このような処理には次のような課題がある。
【０１８８】
(1) リカバリ対象のＤｉｓｋに関連するＩ／Ｏ発行の保留時間が長くなる。リカバリ処理が開始されると、ＣＭ４００は、この処理が完了し、ＤｉｓｋがBackend Loopに再接続されるまで、又はＤｉｓｋを故障と判断可能となる一定時間以上が経過するまで、Ｉ／Ｏ発行を保留しなければならない。このため、ディスクアレイサブシステムは、ホストからの要求を一時的に処理できないし、システム全体のパフォーマンスに影響を与えることになる。
【０１８９】
(2) Ｌｏｏｐ初期化処理の度にBackend Loop内の全Ｄｉｓｋへのアクセスが一時的に停滞する。Ｌｏｏｐ初期化処理の時間は、ストレージサブシステムの構成規模（Ｄｉｓｋやコントローラの数）に比例して長くなる。Ｌｏｏｐ初期化処理中はＬｏｏｐ内の全Ｄｉｓｋへのアクセスが不可能となる。このため、Ｌｏｏｐ初期化処理の度に同一Backend Loop内の全Ｄｉｓｋへのアクセスが一時的に停滞するが、その停滞時間はストレージサブシステムの構成規模に応じて増大する。ＰＢＣによる既述の処理シーケンスでは最大でＬｏｏｐ初期化が２回行われている。アクセスの停滞時間が増大することは、ディスクアレイサブシステムの性能に悪影響を与える。
【０１９０】
(3) ＰＢＣがＤｉｓｋ異常を検出し、自動的に既述の(1) 、(2) の処理を実行しても、ＣＭ４００は処理対象のＤｉｓｋ３０Ｎがリカバリ中か、又はＰＢＣで既に故障であると判断されたのかを知ることができない。そのため、ＰＢＣに故障と判断され、切り離されたＤｉｓｋであっても、ＣＭ４００はＤｉｓｋの切離しから一定時間以上が経過するまでそのＤｉｓｋの故障を判断できない。ＰＢＣとＣＭとの間にＤｉｓｋの状態情報を送受信するための機構を設け、Ｄｉｓｋの状態情報を送受しても、斯かる処理は通常のＩ／Ｏ処理と異なるため、ＣＭ４００がＤｉｓｋ状態を把握するまでには相当な時間を要する。
【０１９１】
(4) リカバリの結果、Ｄｉｓｋが継続して使用可能であるとしても、Ｄｉｓｋのリカバリ処理に一定時間以上が必要であれば、その時間経過前に、ＣＭがＤｉｓｋ故障を判断することが予想される。
【０１９２】
このような比較例の課題は、上記実施の形態のストレージシステム及びその制御方法により解決されている。
【０１９３】
次に、以上述べた実施例を含む実施の形態に関し、更に以下の付記を開示する。以下の付記に本発明が限定されるものではない。
【０１９４】
（付記１）アクセス要求を受けストレージ装置をアクセスするストレージシステムであって、
複数のストレージ装置と、
単一又は複数の前記ストレージ装置に対してアクセス制御をするコントローラと、
前記コントローラからアクセス要求を受けストレージ装置を選択するスイッチ部と、
前記コントローラのアクセス要求に応答すべきストレージ装置に障害が発生している場合、該ストレージ装置に代わって応答する代理応答部と、
を備えることを特徴とするストレージシステム。
【０１９５】
（付記２）  更に、前記複数のストレージ装置の状態情報を記憶する状態情報記憶部とを備え、該状態情報記憶部にある前記状態情報に基づき、前記代理応答部が応答することを特徴とする付記１に記載のストレージシステム。
【０１９６】
（付記３）  更に、前記コントローラと前記ストレージ装置との間で情報を循環させるループと、
を備えることを特徴とする付記１に記載のストレージシステム。
【０１９７】
（付記４）  前記代理応答部が前記ストレージ装置に代わって応答している場合、該ストレージ装置のリカバリ処理を実施することを特徴とする付記１に記載のストレージシステム。
【０１９８】
（付記５）  更に、前記ストレージ装置の障害を検出する障害検出部を備え、該障害検出部が前記ストレージ装置の障害を検出した場合、前記スイッチ部は、障害を生じている前記ストレージ装置をループから切り離すことを特徴とする付記１に記載のストレージシステム。
【０１９９】
（付記６）  前記複数のストレージ装置は、異なるストレージ装置で共通情報を記憶するＲＡＩＤ構成であることを特徴とする付記１に記載のストレージシステム。
【０２００】
（付記７）  更に、共通情報を記録する２以上のストレージ装置の何れかのストレージ装置間で記憶情報に不整合を生じた場合、記憶情報の整合化に用いられるストレージ装置情報又はアドレス情報を記憶する整合化情報記憶部と、
を備えることを特徴とする付記１又は付記２に記載のストレージシステム。
【０２０１】
（付記８）  前記コントローラは、前記代理応答部から取得したストレージ装置情報を記録するストレージ情報記憶部を備えることを特徴とする付記１に記載のストレージシステム。
【０２０２】
（付記９）  前記コントローラは、任意のタイミング又は所定の時間間隔で前記代理応答部にアクセスを行い、ストレージ情報記憶部の記録情報を更新することを特徴とする付記１に記載のストレージシステム。
【０２０３】
（付記１０）  前記複数のストレージ装置は、記録ディスク又はディスクドライブであることを特徴とする付記１に記載のストレージシステム。
【０２０４】
（付記１１）  アクセス要求を受けストレージ装置をアクセスするストレージシステムの制御方法であって、
単一又は複数のストレージ装置に対してアクセス制御をするステップと、
アクセス要求を受けストレージ装置を選択するステップと、
前記アクセス要求に応答すべきストレージ装置に障害が発生している場合、該ストレージ装置に代わって応答するステップと、
を含むことを特徴とするストレージシステムの制御方法。
【０２０５】
（付記１２）  更に、複数のストレージ装置の状態情報を状態情報記憶部に記憶するステップと、
を含むことを特徴とする付記１１に記載のストレージシステムの制御方法。
【０２０６】
（付記１３）  前記アクセス要求に対しストレージ装置に代わって応答している場合に、該ストレージ装置のリカバリ処理を実施するステップと、
を含むことを特徴とする付記１１に記載のストレージシステムの制御方法。
【０２０７】
（付記１４）  更に、ストレージ装置の障害を検出するステップと、
障害を生じているストレージ装置をループから切り離すステップと、
を含むことを特徴とする付記１１に記載のストレージシステムの制御方法。
【０２０８】
（付記１５）  更に、共通情報を記録する２以上のストレージ装置の何れかのストレージ装置間で記憶情報に不整合を生じた場合、記憶情報を整合化するステップと、
を含むことを特徴とする付記１１に記載のストレージシステムの制御方法。
【０２０９】
以上説明したように、ストレージシステム及びその制御方法の最も好ましい実施の形態等について説明したが、本発明は、上記記載に限定されるものではなく、特許請求の範囲に記載され、又は発明を実施するための形態に開示された発明の要旨に基づき、当業者において様々な変形や変更が可能であることは勿論であり、斯かる変形や変更が、本発明の範囲に含まれることは言うまでもない。
【符号の説明】
【０２１０】
２  ストレージシステム
４  コントローラ
６１、６２・・・６Ｎ  スイッチ部
８１１、８１２・・・８１Ｎ・・・８Ｎ１・・・８ＮＮ  ストレージ装置
１０１、１０２・・・１０Ｎ  代理応答部
４０  コントロールモジュール（ＣＭ）
４４  更新データ管理テーブル
４８  スイッチチップ
５０  アドレス管理テーブル
７１１、７１２・・・７１Ｎ・・・７Ｎ１・・・７ＮＮ  Ｄｉｓｋ
【図１】
0005640543.tif 000002
【図２】
0005640543.tif 000003
【図３】
0005640543.tif 000004
【図４】
0005640543.tif 000005
【図５】
0005640543.tif 000006
【図６】
0005640543.tif 000007
【図７】
0005640543.tif 000008
【図８】
0005640543.tif 000009
【図９】
0005640543.tif 000010
【図１０】
0005640543.tif 000011
【図１１】
0005640543.tif 000012
【図１２】
0005640543.tif 000013
【図１３】
0005640543.tif 000014
【図１４】
0005640543.tif 000015
【図１５】
0005640543.tif 000016
【図１６】
0005640543.tif 000017
【図１７】
0005640543.tif 000018
【図１８】
0005640543.tif 000019
【図１９】
0005640543.tif 000020
【図２０】
0005640543.tif 000021
【図２１】
0005640543.tif 000022
【図２２】
0005640543.tif 000023
【図２３】
0005640543.tif 000024
【図２４】
0005640543.tif 000025
【図２５】
0005640543.tif 000026
【図２６】
0005640543.tif 000027
【図２７】
0005640543.tif 000028
【図２８】
0005640543.tif 000029
【図２９】
0005640543.tif 000030