(57)【特許請求の範囲】
【請求項１】
複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記エラーの発生時に前記データ冗長性判定部によって前記アクセス対象のデータに冗長性がないと判定されたとき、前記アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部によって過去に前記エラーが発生したと判定された場合には、前記共通伝送路を異常発生箇所と判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項２】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、前記エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または前記共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によって前記アクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表において前記アクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記異常発生箇所判定部は、前記データ冗長性判定部によって前記アクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表において前記アクセス先の記憶装置および前記共通伝送路の両方に加点することを特徴とする請求項２記載のストレージシステム。
【請求項４】
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて前記アクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表において前記アクセス先の記憶装置に加点するかを決定することを特徴とする請求項３記載のストレージシステム。
【請求項５】
前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、前記エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によって前記アクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって前記接続する共通伝送路に冗長性がないと判定された場合、前記エラー点数表において前記アクセス先の記憶装置および前記複数の共通伝送路のいずれにも加点しない、
ことを特徴とする請求項４記載のストレージシステム。
【請求項６】
前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうち前記アクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって前記接続する共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表において前記アクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記複数の共通伝送路のうちアクセスに使用した共通伝送路および前記アクセス先の記憶装置のいずれにも加点しないことを特徴とする請求項５記載のストレージシステム。
【請求項７】
複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記エラーの発生時に前記伝送路冗長性判定部によって前記接続する共通伝送路に冗長性がないと判定されたとき、前記複数の共通伝送路のうちアクセスに使用した使用共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部によって過去に前記エラーが発生していないと判定された場合には、前記アクセス先の記憶装置を異常発生箇所と判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項８】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、前記エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって前記接続する共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表において前記アクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記使用共通伝送路および前記アクセス先の記憶装置のいずれにも加点しない、
ことを特徴とする請求項７記載のストレージシステム。
【請求項９】
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって前記接続する共通伝送路に冗長性があると判定された場合に、前記エラー点数表において前記使用共通伝送路および前記アクセス先の記憶装置の両方に加点することを特徴とする請求項８記載のストレージシステム。
【請求項１０】
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて前記使用共通伝送路であると特定された場合、前記エラー点数表において前記アクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表において前記使用共通伝送路に加点するかを決定することを特徴とする請求項９記載のストレージシステム。
【請求項１１】
複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
前記アクセス対象のデータに冗長性がないと判定した場合、前記複数の記憶装置のうちアクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうち前記アクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、前記エラーが発生したと判定した場合には、前記共通伝送路を異常発生箇所と判定する、
ことを特徴とする異常発生箇所判定方法。
【請求項１２】
複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
前記接続する共通伝送路に冗長性がないと判定した場合、前記複数の共通伝送路のうちアクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、前記エラーが発生していないと判定した場合には、前記アクセス先の記憶装置を異常発生箇所と判定する、
ことを特徴とする異常発生箇所判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムおよび異常発生箇所判定方法に関する。
【背景技術】
【０００２】
ＨＤＤ（Hard Disk Drive）などの記憶装置に接続したストレージ制御装置としては、記憶装置へのアクセス時にエラーが発生するたびに、エラー点数表に点数を加算し、エラー点数表の点数が一定値に達すると、記憶装置を使用しないように切り離すものがある。例えば、ディスクアレイ装置へのアクセス処理のエラーが発生したとき、エラー点数表内の異常が発生したＨＤＤに対応する欄に点数を加算するとともに、別のエラー表に対してそのＨＤＤでの異常発生を示す情報を格納する機能を備え、エラー発生時に、エラー表に格納された情報に基づいてエラー点数表に加算する点数を決定するようにしたストレージ制御装置がある。また、エラー点数表に対して、アクセス対象の記憶装置だけでなく、記憶装置との間の伝送路についても異常の発生に応じた点数を加点するようにしたストレージ制御装置もある。
【０００３】
一方、記憶装置などの周辺装置には、情報処理装置からアクセスを受けたときにエラーが発生した場合、そのエラーが周辺装置または接続経路のどちらに起因するかを判定する機能を備えるものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２０５３１６号公報
【特許文献２】特開２０００−１３２４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストレージ制御装置から記憶装置へのアクセス時に発生するエラーには、１回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生しないような、再現性のないエラーがある。このような再現性のないエラーが発生した場合には、仮にアクセス先の記憶装置またはアクセスに使用した伝送路にエラーの発生原因があったとしても、当面は記憶装置へのアクセス処理を継続できることが多い。
【０００６】
例えば、データが異なる記憶装置に冗長化されて記録されるようなストレージシステムでは、一部の記憶装置の故障によりアクセス対象のデータに冗長性がなくなった状態のまま、故障していない記憶装置を用いてシステムを継続して運用したい場合がある。アクセス対象のデータに冗長性がない状態で、再現性のないエラーが発生した場合には、アクセス先の記憶装置を切り離さないままで当面は運用を継続できる可能性が高い。
【０００７】
また、例えば、記憶装置に対して接続する伝送路が冗長化されているようなストレージシステムでは、一部の伝送路の故障により伝送路に冗長性がなくなった状態のまま、故障していない伝送路を用いてシステムを継続して運用したい場合もある。伝送路に冗長性がない状態で、再現性のないエラーが発生した場合には、アクセスに使用した伝送路を切り離さないままで当面は運用を継続できる可能性が高い。
【０００８】
しかしながら、エラーが発生したにもかかわらずシステムの運用を継続するということは、異常発生箇所の判定基準を緩めることにもなり、その結果、異常発生箇所の判定精度が悪化する可能性があるという問題があった。
【０００９】
本発明はこのような課題に鑑みてなされたものであり、システム運用の継続性を高めつつ、異常発生箇所の判定精度を向上させたストレージシステムおよび異常発生箇所判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように複数の記憶装置を管理する制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、データ冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。データ冗長性判定部は、上記の複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、共通伝送路が異常発生箇所かを判定する。
【００１１】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
さらに、上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、伝送路冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。伝送路冗長性判定部は、上記の複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、上記の複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【００１２】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
【発明の効果】
【００１３】
開示のストレージシステムおよび異常発生箇所判定方法によれば、システム運用の継続性を高めつつ、異常発生箇所の判定精度が向上する。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るストレージシステムの構成例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】コンピュータのハードウェア構成例を示す図である。
【図４】第３の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【図５】ＤＥのハードウェア構成例を示す図である。
【図６】ＣＭのハードウェア構成例を示す図である。
【図７】デバイス管理テーブルに登録される情報の例を示す図である。
【図８】ＲＡＩＤ管理テーブルに登録される情報の例を示す図である。
【図９】ディスクビットマップに登録される情報の例を示す図である。
【図１０】ＣＭが備える処理機能を示すブロック図である。
【図１１】ケース３の状態の例を示す図である。
【図１２】ケース４の状態の例を示す図である。
【図１３】ケース５の状態の例を示す図である。
【図１４】ケース６の状態の例を示す図である。
【図１５】ケース６の状態の別の例を示す図である。
【図１６】ＣＭにおけるエラー発生時の処理手順の例を示すフローチャート（その１）である。
【図１７】ＣＭにおけるエラー発生時の処理手順の例を示すフローチャート（その２）である。
【図１８】切り離し制御部の処理手順の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、実施の形態について図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例を示す図である。
【００１６】
図１に示すストレージシステム１ａは、制御装置１０ａと、複数の記憶装置とを備える。図１では例として２つの記憶装置２１，２２を示しているが、記憶装置の数は３つ以上であってもよい。制御装置１０ａは、共通伝送路３０を通じて記憶装置２１，２２に接続し、記憶装置２１，２２に対して共通伝送路３０を介してアクセス可能になっている。共通伝送路３０は、制御装置１０ａと記憶装置２１，２２とを接続する伝送路の一部を構成するものであり、例えば、制御装置１０ａと記憶装置２１，２２との間で送受信されるデータを中継する中継装置などを含む。
【００１７】
また、制御装置１０ａは、記憶装置２１，２２に対してデータを記録する際、そのデータが異なる記憶装置に冗長化されるように制御する。例えば、制御装置１０ａは、記憶装置２１にデータを記録する際、そのデータと同一のデータを記憶装置２２にも記録する。また、例えば、記憶装置が３つ以上ある場合には、制御装置１０ａは、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）４，５，６のいずれかに従い、記録データと、その記録データに基づくパリティとを、それぞれ異なる記憶装置に記録してもよい。
【００１８】
制御装置１０ａは、データ冗長性判定部１１、エラー履歴判定部１２ａおよび異常発生箇所判定部１３ａを備える。また、制御装置１０ａは、切り離し制御部１４ａをさらに備えていてもよい。なお、データ冗長性判定部１１、エラー履歴判定部１２ａ、異常発生箇所判定部１３ａおよび切り離し制御部１４ａの処理は、例えば、制御装置１０ａが備えるＣＰＵ（Central Processing Unit）が所定のプログラムを実行することで実現される。
【００１９】
データ冗長性判定部１１は、記憶装置２１，２２のいずれかにアクセスしたときに、エラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。ここで言うエラーとは、例えば、「リカバードエラー」である。「リカバードエラー」とは、例えば、１回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生せずにアクセス処理が成功するような、再現性のないエラーを指す。また、「アクセス対象のデータに冗長性がある」とは、アクセス対象のデータ自体が、あるいは、アクセス対象のデータとこのデータの復元に用いられるデータ（例えばパリティ）とが、それぞれ異なる記憶装置に格納されている状態を言う。換言すると、「アクセス対象のデータに冗長性がない」とは、アクセス対象のデータまたはこのデータの復元に用いられるデータが記憶装置の故障によって失われると、アクセス対象の記録データを復元できない状態を言う。
【００２０】
エラー履歴判定部１２ａは、リカバードエラーが発生したとき、記憶装置２１，２２のうちアクセス先以外の記憶装置に対する過去のアクセス時に、リカバードエラーが発生したかを判定する。例えば、エラー履歴判定部１２ａは、エラー履歴テーブル１５ａを参照して、記憶装置２１，２２のそれぞれに対する過去のアクセス時にリカバードエラーが発生していたかを判定する。
【００２１】
エラー履歴テーブル１５ａには、例えば、記憶装置ごとに個別のフラグが登録される。例えば、図１中のエラー履歴テーブル１５ａにおいて、記憶装置＃１，＃２はそれぞれ記憶装置２１，２２に対応し、記憶装置＃１，＃２のそれぞれに対して、フラグの値として「０」，「１」が登録されている。そして、リカバードエラーが発生すると、リカバードエラーの発生時におけるアクセス先の記憶装置に対応する、エラー履歴テーブル１５ａ内のフラグが、初期値「０」から、リカバードエラーが発生したことを示す「１」に更新される。なお、エラー履歴判定部１２ａは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報が登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【００２２】
異常発生箇所判定部１３ａは、リカバードエラーが発生したとき、データ冗長性判定部１１およびエラー履歴判定部１２ａの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部１３ａは、データ冗長性判定部１１によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置が異常発生箇所でないと判定するとともに、エラー履歴判定部１２ａによる判定結果に基づいて、共通伝送路３０が異常発生箇所かを判定する。
【００２３】
なお、異常発生箇所判定部１３ａは、例えば、異常が発生したと判定した箇所を、将来制御装置１０ａから切り離す候補に設定してもよい。ここで、記憶装置または伝送路を「切り離す」とは、記憶装置または伝送路を制御装置１０ａが使用することを不許可にすることを言う。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表１６ａに点数を加算する処理がある。
【００２４】
ここで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、アクセス先の記憶装置で異常が発生したと判定して、その記憶装置を制御装置１０ａから切り離してしまうと、アクセス先のデータは復元不能の状態になってしまう。この状態では、通常、ストレージシステム１ａ全体の運用を停止する必要が生じる。ところが、リカバードエラーは、アクセス処理のリトライによって救済されるものであるので、仮にアクセス先の記憶装置の不具合が原因でリカバードエラーが発生したとしても、当面はその記憶装置を使用してそのまま運用を続行できる。冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部１３ａが、アクセス先の記憶装置が異常発生箇所でないと判定することで、ストレージシステム１ａを継続して運用できるようになる。
【００２５】
一方、エラー履歴判定部１２ａの処理によれば、アクセス先以外の記憶装置に対する過去のアクセス時にリカバードエラーが発生していた場合には、異常発生箇所が現在のアクセス先の記憶装置ではなく共通伝送路３０である可能性が高いと推定できる。そこで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部１３ａは、エラー履歴判定部１２ａの判定結果を参照することで、共通伝送路３０が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、共通伝送路３０が異常発生箇所であると誤って判定される可能性が低くなり、共通伝送路３０が不必要に制御装置１０ａから切り離されないようにすることができる。
【００２６】
すなわち、異常発生箇所判定部１３ａによる上記判定処理により、冗長性のないデータが格納された記憶装置の使用をできるだけ継続できるようになる。これとともに、異常発生箇所が共通伝送路３０であると誤って判定されることによって、共通伝送路３０が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【００２７】
なお、異常発生箇所判定部１３ａは、例えば、異常が発生した箇所についての情報をエラー点数表１６ａに登録してもよい。エラー点数表１６ａには、記憶装置２１，２２のそれぞれおよび共通伝送路３０について、エラーの発生に応じた点数が個別に保持される。また、エラー点数表１６ａは、切り離し制御部１４ａによって参照される。切り離し制御部１４ａは、エラー点数表１６ａにおいて点数が所定のしきい値に達した記憶装置または共通伝送路３０を、故障が発生したと判定して切り離す。
【００２８】
異常発生箇所判定部１３ａは、例えば、データ冗長性判定部１１によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部１２ａにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表１６ａにおいてアクセス対象の記憶装置に加点せずに共通伝送路３０に加点する。一方、異常発生箇所判定部１３ａは、データ冗長性判定部１１によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部１２ａにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表１６ａにおいてアクセス対象の記憶装置および共通伝送路３０のいずれにも加点しない。
【００２９】
このような異常発生箇所判定部１３ａの処理により、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、エラー点数表１６ａにおいて、アクセス先の記憶装置の点数が増加せずに共通伝送路３０の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない共通伝送路３０が誤って切り離されるという事態の発生確率を低減することができる。
【００３０】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。なお、図２では、図１と同様の構成要素には同じ符号を付して示す。
【００３１】
図２に示すストレージシステム１ｂは、制御装置１０ｂと、複数の記憶装置とを備える。図２では例として２つの記憶装置２１，２２を示しているが、記憶装置の数は３つ以上であってもよい。制御装置１０ｂは、記憶装置２１，２２に対して、複数の共通伝送路を通じてアクセス可能になっている。図２では例として、２つの共通伝送路３１，３２を示しているが、共通伝送路は３つ以上あってもよい。
【００３２】
制御装置１０ｂは、伝送路冗長性判定部１７、エラー履歴判定部１２ｂおよび異常発生箇所判定部１３ｂを備える。また、伝送路冗長性判定部１７、制御装置１０ｂは、切り離し制御部１４ｂをさらに備えていてもよい。なお、エラー履歴判定部１２ｂ、異常発生箇所判定部１３ｂおよび切り離し制御部１４ｂの処理は、例えば、制御装置１０ｂが備えるＣＰＵが所定のプログラムを実行することで実現される。
【００３３】
伝送路冗長性判定部１７は、記憶装置２１，２２のいずれかにアクセスしたときに、エラーが発生した場合、記憶装置２１，２２との間の共通伝送路に冗長性があるかを判定する。ここで言う「エラー」とは、例えば、前述した「リカバードエラー」である。また、「共通伝送路に冗長性がある」とは、制御装置１０ｂと記憶装置２１，２２との間が複数の共通伝送路を通じて接続されていることを指す。図２の例では、共通伝送路３１，３２のうちの一方が制御装置１０ｂから切り離されている場合、共通伝送路に冗長性がない状態となる。
【００３４】
エラー履歴判定部１２ｂは、リカバードエラーが発生したとき、記憶装置２１，２２のうちアクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生したかを判定する。エラー履歴判定部１２ｂは、例えば、エラー履歴テーブル１５ｂを参照して、記憶装置２１，２２に対する同じ共通伝送路を通じた過去のアクセス時にリカバードエラーが発生していたかを判定する。
【００３５】
エラー履歴テーブル１５ｂには、図１のエラー履歴テーブル１５ａと同様に、記憶装置ごとに、リカバードエラーが発生したかを示すフラグが登録される。ただし、エラー履歴テーブル１５ｂは、記憶装置２１，２２との間の共通伝送路３１，３２ごとに個別に設けられる。リカバードエラーが発生すると、アクセスに使用した共通伝送路に対応するエラー履歴テーブル１５ｂが選択される。そして、選択されたエラー履歴テーブル１５ｂ内のフラグが、初期値「０」から、リカバードエラーが発生したことを示す「１」に更新される。
【００３６】
なお、エラー履歴判定部１２ｂは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報と、リカバードエラー発生時に使用していた共通伝送路を示す情報とが登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【００３７】
異常発生箇所判定部１３ｂは、リカバードエラーが発生したとき、伝送路冗長性判定部１７およびエラー履歴判定部１２ｂの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部１３ｂは、伝送路冗長性判定部１７によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路が異常発生箇所でないと判定するとともに、エラー履歴判定部１２ｂによる判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【００３８】
なお、異常発生箇所判定部１３ｂは、例えば、図１の異常発生箇所判定部１３ａと同様に、異常が発生したと判定した箇所を、将来制御装置１０ｂから切り離す候補に設定してもよい。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表１６ｂに点数を加算する処理がある。
【００３９】
ここで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、アクセスに使用した共通伝送路で異常が発生したと判定して、その共通伝送路を制御装置１０ｂから切り離してしまうと、記憶装置２１，２２のいずれにもアクセスできない状態になり、ストレージシステム１ｂ全体の運用を継続できない。ところが、前述のように、リカバードエラーはアクセス処理のリトライによって救済されるものであるので、仮にアクセスに使用した共通伝送路の不具合が原因でリカバードエラーが発生したとしても、当面はその共通伝送路を使用してそのまま運用を続行できる。共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部１３ｂが、アクセスに使用した共通伝送路が異常発生箇所でないと判定することで、ストレージシステム１ｂを継続して運用できるようになる。
【００４０】
一方、エラー履歴判定部１２ｂの処理によれば、アクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生していない場合には、異常発生箇所がアクセスに使用した共通伝送路ではなくアクセス先の記憶装置である可能性が高いと推定できる。そこで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部１３ｂは、エラー履歴判定部１２ｂの判定結果を参照することで、アクセスに使用した共通伝送路が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、アクセス先の記憶装置が異常発生箇所であると誤って判定される可能性が低くなり、アクセス先の記憶装置が不必要に制御装置１０ｂから切り離されないようにすることができる。
【００４１】
すなわち、異常発生箇所判定部１３ｂによる上記判定処理により、冗長性がない状態の共通伝送路の使用をできるだけ継続できるようになる。これとともに、異常発生箇所がアクセス先の記憶装置であると誤って判定されることによって、アクセス先の記憶装置が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【００４２】
なお、異常発生箇所判定部１３ｂは、例えば、異常が発生した箇所についての情報をエラー点数表１６ｂに登録してもよい。エラー点数表１６ｂには、記憶装置２１，２２のそれぞれおよび共通伝送路３１，３２のそれぞれについて、エラーの発生に応じた点数が個別に保持される。また、エラー点数表１６ｂは、切り離し制御部１４ｂによって参照される。切り離し制御部１４ｂは、エラー点数表１６ｂにおいて点数が所定のしきい値に達した記憶装置または共通伝送路を、故障が発生したと判定して、制御装置１０ｂから切り離す。
【００４３】
異常発生箇所判定部１３ｂは、例えば、伝送路冗長性判定部１７によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部１２ｂにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表１６ｂにおいてアクセスに使用した共通伝送路に加点せずにアクセス対象の記憶装置に加点する。一方、異常発生箇所判定部１３ｂは、伝送路冗長性判定部１７によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部１２ｂにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表１６ｂにおいてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない。
【００４４】
このような異常発生箇所判定部１３ｂの処理により、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、エラー点数表１６ｂにおいて、アクセスに使用した共通伝送路の点数が増加せずにアクセス先の記憶装置の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない記憶装置が誤って切り離されるという事態の発生確率を低減することができる。
【００４５】
なお、図１に示した制御装置１０ａおよび図２に示した制御装置１０ｂは、例えば、次の図３に示すようなコンピュータとして実現できる。図３は、コンピュータのハードウェア構成例を示す図である。
【００４６】
図３に示すコンピュータ５０は、ＣＰＵ５１によって装置全体が制御されている。ＣＰＵ５１には、バス５８を介して、ＲＡＭ（Random Access Memory）５２および複数の周辺機器が接続されている。
【００４７】
ＲＡＭ５２は、コンピュータ５０の主記憶装置として使用される。ＲＡＭ５２には、ＣＰＵ５１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ５２には、ＣＰＵ５１による処理に必要な各種データが格納される。
【００４８】
バス５８に接続されている周辺機器としては、ＨＤＤ５３、グラフィックＩ／Ｆ（インタフェース）５４、入力Ｉ／Ｆ５５、光学ドライブ装置５６および通信Ｉ／Ｆ５７がある。
【００４９】
ＨＤＤ５３は、コンピュータ５０の二次記憶装置として使用される。ＨＤＤ５３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００５０】
グラフィックＩ／Ｆ５４には、モニタ５４ａが接続されている。グラフィックＩ／Ｆ５４は、ＣＰＵ５１からの命令に従って、前述した案内画像などの各種の画像をモニタ５４ａに表示させる。
【００５１】
入力Ｉ／Ｆ５５には、例えば、キーボード５５ａおよびマウス５５ｂが接続されている。入力Ｉ／Ｆ５５は、キーボード５５ａやマウス５５ｂからの出力信号をＣＰＵ５１に送信する。なお、マウス５５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５２】
光学ドライブ装置５６は、レーザ光などを利用して、光ディスク５６ａに記録されたデータの読み取りを行う。光ディスク５６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク５６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【００５３】
通信Ｉ／Ｆ５７は、ネットワーク７ａに接続された他の装置との間でデータを送受信する。通信Ｉ／Ｆ５７は、例えば、図１，図２に示した記憶装置２１，２２と接続する。なお、図１の共通伝送路３０の一部や、図２の共通伝送路３１，３２のそれぞれの一部を構成する装置としては、例えば、ネットワーク７ａ上のハブなどの中継装置を適用可能である。
【００５４】
〔第３の実施の形態〕
図４は、第３の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【００５５】
図４に示すストレージシステム１００は、ＤＥ（Drive Enclosure）２００とＣＭ３００ａ，３００ｂ（Controller Module）とを備える。また、ストレージシステム１００には、ホスト装置１１０が接続されている。
【００５６】
ＤＥ２００は、ＣＭ３００ａ，３００ｂからのアクセス制御対象となる複数の記憶装置を備える。ＤＥ２００は、記憶装置としてＨＤＤを備える。なお、ＤＥ２００は、ストレージシステム１００内の複数設けられていてもよい。また、ＤＥ２００は、ＣＭ３００ａ，３００ｂとは別の筐体内に設けられていてもよい。また、ＤＥ２００に設けられる記憶装置としては、例えば、ＳＳＤなどの他の種類の不揮発性記憶装置が使用されてもよい。
【００５７】
ＣＭ３００ａ，３００ｂは、ＤＥ２００内の複数のＨＤＤによって実現される物理記憶領域をＲＡＩＤ（Redundant Arrays of Inexpensive Disks）によって管理し、この物理記憶領域に対するアクセスを制御する。また、ＣＭ３００ａ，３００ｂは、ＤＥ２００内の複数のＨＤＤによって実現される物理記憶領域に論理ボリュームを設定し、ホスト装置１１０から論理ボリュームに対するアクセス要求を受け付けて、そのアクセス要求に応じてＤＥ２００内のＨＤＤにアクセスする。
【００５８】
なお、ＣＭは、ストレージシステム１００内に３つ以上設けられていてもよい。ＣＭが複数設けられることで、ＤＥ２００に対するアクセス制御系統が冗長化され、アクセス制御処理の信頼性が向上する。
【００５９】
ホスト装置１１０は、ユーザの操作に応じて、ＣＭ３００ａ，３００ｂに対して、ＣＭ３００ａ，３００ｂが提供する論理ボリュームへのアクセスを要求する。なお、ホスト装置１１０とＣＭ３００ａ，３００ｂとは、例えば、ＦＣ（Fibre Channel）ケーブルを介して接続されている。
【００６０】
図５は、ＤＥのハードウェア構成例を示す図である。ＤＥ２００は、ＳＡＳ（Serial Attached SCSI，SCSI：Small Computer System Interface）エクスパンダ２１０，２２０と、複数のＨＤＤ２３０ａ〜２３０ｆとを備える。
【００６１】
ＳＡＳエクスパンダ２１０は、ＣＭ３００ａとＨＤＤ２３０ａ〜２３０ｆとの間でデータを中継する。ＳＡＳエクスパンダ２２０は、ＣＭ３００ｂとＨＤＤ２３０ａ〜２３０ｆとの間でデータを中継する。
【００６２】
ＳＡＳエクスパンダ２１０，２２０は、データの中継処理を制御するコントローラ回路２１１，２２１をそれぞれ備える。ＳＡＳエクスパンダ２１０のコントローラ回路２１１は、データ中継処理の制御機能の他、例えば、ＣＭ３００ａからＨＤＤへのアクセス要求に対する応答として、ＣＭ３００ａに対してセンス情報を返信する機能も備える。センス情報とは、例えば、ＳＣＳＩ規格で規定されたＳＫ（Sense Key）、ＡＳＣ（Additional Sense Code）、ＡＳＣＱ（Additional Sense Code Qualifier）からなる情報である。コントローラ回路２１１は、センス情報を返信することで、ＳＡＳエクスパンダ２１０自身が原因となってエラーが発生したことをＣＭ３００ａに通知することができる。また、ＳＡＳエクスパンダ２２０のコントローラ回路２２１も同様に、データ中継処理の制御機能の他、ＣＭ３００ｂからＨＤＤへのアクセス要求に対する応答として、センス情報を返信する機能も備える。
【００６３】
ＨＤＤ２３０ａ〜２３０ｆは、ＳＡＳインタフェース処理を実行するコントローラ回路２３１ａ〜２３１ｆをそれぞれ備える。コントローラ回路２３１ａ〜２３１ｆは、アクセス元（ＣＭ３００ａまたはＣＭ３００ｂ）からの要求に応じた動作を正しく実行できなかった場合に、上記のセンス情報をアクセス元に返信する機能を備える。
【００６４】
図６は、ＣＭのハードウェア構成例を示す図である。なお、ＣＭ３００ａ，３００ｂは同様のハードウェア構成を有するので、以下の説明では、主にＣＭ３００ａの構成についてのみ説明する。
【００６５】
ＣＭ３００ａは、ＣＰＵ３０１によって装置全体が制御されている。ＣＰＵ３０１には、ＲＡＭ３０２および複数の周辺機器が接続されている。ＲＡＭ３０２は、ＣＭ３００ａの主記憶装置として使用され、ＣＰＵ３０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００６６】
ＣＰＵ３０１には、周辺機器の例として、フラッシュメモリ３０３、ＣＡ（Channel Adapter）３０４およびＩＯＣ（In/Out Controller）３０５が接続されている。フラッシュメモリ３０３は、例えば、図示しないＰＣＨ（Platform Controller Hub）を介してＣＰＵ３０１と接続される。また、ＣＡ３０４およびＩＯＣ３０５は、例えば、ＰＣＩ（Peripheral Component Interconnect）スイッチ３０６を通じてＣＰＵ３０１と接続されている。
【００６７】
フラッシュメモリ３０３は、ＣＭ３００ａの二次記憶装置として使用され、ＣＰＵ３０１によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、ＨＤＤなどの他の種類の不揮発性記憶装置が使用されてもよい。
【００６８】
ＣＡ３０４は、ホスト装置１１０とＣＭ３００ａとの間でデータを送受信するインタフェース処理を実行する。
ＩＯＣ３０５は、ＳＡＳインタフェース処理を実行する回路である。ＣＭ３００ａのＩＯＣ３０５には、ＣＭ３００ａに設けられたＳＡＳエクスパンダ３０７と、ＣＭ３００ｂに設けられたＳＡＳエクスパンダ３０７の両方に接続されている。ＣＭ３００ａのＳＡＳエクスパンダ３０７は、ＤＥ２００のＳＡＳエクスパンダ２１０に接続されている。一方、ＣＭ３００ｂのＳＡＳエクスパンダ３０７は、ＤＥ２００のＳＡＳエクスパンダ２２０に接続されている。
【００６９】
ＣＭ３００ａのＩＯＣ３０５は、ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０を通じて、ＤＥ２００内のＨＤＤにアクセスできるとともに、ＣＭ３００ｂのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２２０を通じて、ＤＥ２００内のＨＤＤにアクセスすることもできる。すなわち、ＣＭ３００ａのＩＯＣ３０５とＤＥ２００の各ＨＤＤとの間の経路は、ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０を通る経路と、ＣＭ３００ｂのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２２０を通る経路とに冗長化されている。このように、ＣＭ３００ａとＤＥ２００とを接続する伝送路が冗長化されることで、ＣＭ３００ａからＤＥ２００の各ＨＤＤへのアクセス処理の信頼性が向上する。
【００７０】
また、ＣＭ３００ｂでも同様に、ＣＭ３００ｂのＩＯＣ３０５とＤＥ２００の各ＨＤＤとの間の伝送路は、ＣＭ３００ｂのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２２０を通る経路（以下、「伝送路Ｐ０」と呼ぶ）と、ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０を通る経路（以下、「伝送路Ｐ１」と呼ぶ）とに冗長化されている。このように、ＣＭ３００ｂとＤＥ２００とを接続する伝送路が冗長化されることで、ＣＭ３００ｂからＤＥ２００の各ＨＤＤへのアクセス処理の信頼性が向上する。
【００７１】
なお、ＣＭ３００ａのＰＣＩスイッチ３０６は、他方のＣＭ３００ｂのＰＣＩスイッチ３０６と接続されている。ＣＭ３００ａのＣＰＵ３０１と、ＣＭ３００ｂのＣＰＵ３０１とは、ＣＭ３００ａのＰＣＩスイッチ３０６とＣＭ３００ｂのＰＣＩスイッチ３０６とを接続する通信経路を通じて、互いにデータを送受信できるようになっている。
【００７２】
次に、ＣＭ３００ａ，３００ｂで実行される処理について説明する。なお、ＣＭ３００ａ，３００ｂはともに同じ処理を実行可能であるので、以下の説明では、代表してＣＭ３００ａについてのみ説明する。
【００７３】
まず、ＣＭ３００ａが保持する情報について説明する。ＣＭ３００ａのフラッシュメモリ３０３には、デバイス管理テーブル、ＲＡＩＤ管理テーブルおよびディスクビットマップが格納される。
【００７４】
図７は、デバイス管理テーブルに登録される情報の例を示す図である。
デバイス管理テーブル３１０は、ＤＥ２００との間の伝送路上のデバイスおよびＤＥ２００内の各ＨＤＤについての状態を示す情報を保持するテーブルである。デバイス管理テーブル３１０には、デバイスを識別する「デバイス名」に対応付けて、「ステータス」および「エラー点数」が登録される。
【００７５】
「デバイス名」に登録されるデバイスとしては、ＤＥ２００との間の伝送路上のＳＡＳエクスパンダがある。例えば、図９中の「Ｂａｃｋｅｎｄ  ＥＸＰ＃０」、「ＤＥ  ＥＸＰ＃０」、「Ｂａｃｋｅｎｄ  ＥＸＰ＃１」および「ＤＥ  ＥＸＰ＃１」は、それぞれＣＭ３００ａのＳＡＳエクスパンダ３０７、ＤＥ２００のＳＡＳエクスパンダ２１０、ＣＭ３００ｂのＳＡＳエクスパンダ３０７、および、ＤＥ２００のＳＡＳエクスパンダ２２０を指す。
【００７６】
前述したように、ＣＭ３００ａとＤＥ２００とは、ＣＭ３００ｂのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２２０を通る伝送路Ｐ０と、ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０を通る伝送路Ｐ１とによって接続されている。デバイス管理テーブル３１０では、伝送路上のＳＡＳエクスパンダの「デバイス名」が、伝送路Ｐ０と伝送路Ｐ１とに分類されて登録されている。
【００７７】
また、「デバイス名」に登録されるデバイスとしては、ＤＥ２００に設けられたＨＤＤがある。例えば、図７中の「Ｄｉｓｋ＃０」〜「Ｄｉｓｋ＃５」は、それぞれＤＥ２００内のＨＤＤ２３０ａ〜２３０ｆを指す。
【００７８】
「ステータス」は、対応するデバイスが使用可能な状態か否かを示すフラグ情報である。対応するデバイスが使用可能な状態の場合、「ステータス」は「１」とされ、対応するデバイスが使用不可能な状態の場合、「ステータス」は「０」とされる。ＣＭ３００ａは、「ステータス」の値が「１」から「０」に更新することで、この「ステータス」に対応するデバイスをＣＭ３００ａから切り離す。
【００７９】
「エラー点数」は、対応するデバイスにおいてエラーが発生した回数に応じて加算される点数である。「エラー点数」の初期値は「０」である。また、後述するように、ＣＭ３００ａは、「エラー点数」が所定のしきい値（例えば「２５５」）に達すると、この「エラー点数」に対応するデバイスをＣＭ３００ａから切り離す。
【００８０】
なお、ＣＭ３００ａとＣＭ３００ｂとは、例えば、それぞれ個別の情報が登録されたデバイス管理テーブル３１０を保持してもよい。あるいは、ＣＭ３００ａが保持するデバイス管理テーブル３１０と、ＣＭ３００ｂが保持するデバイス管理テーブル３１０とが、同期されるようにしてもよい。
【００８１】
図８は、ＲＡＩＤ管理テーブルに登録される情報の例を示す図である。
ＲＡＩＤ管理テーブル３２０は、ＲＡＩＤに関する情報を保持するテーブルである。ＲＡＩＤ管理テーブル３２０には、ＲＡＩＤグループを識別する「ＲＡＩＤグループ番号」に対応付けて、「ＲＡＩＤレベル」、「使用ディスク」、「ステータス」および「論理ボリューム情報」が登録される。
【００８２】
「ＲＡＩＤレベル」には、ＲＡＩＤグループに設定されたＲＡＩＤレベルが登録される。
「使用ディスク」には、ＤＥ２００内のＨＤＤのうち、ＲＡＩＤグループで使用されるＨＤＤを識別する情報が登録される。「使用ディスク」には、通常、１つのＲＡＩＤグループに対して複数のＨＤＤが登録される。
【００８３】
「ステータス」は、「使用ディスク」が示すＨＤＤの状態を示すフラグである。「ステータス」に登録される値は、デバイス管理テーブル３１０において同じＨＤＤに対応付けられた「ステータス」と同じになる。
【００８４】
「論理ボリューム情報」には、ＲＡＩＤグループに対して設定された論理ボリュームに関する情報が登録される。論理ボリュームに関する情報としては、例えば、設定された論理ボリュームの番号、論理ボリュームとして使用されるＨＤＤ上の物理領域の位置情報などがある。
【００８５】
図９は、ディスクビットマップに登録される情報の例を示す図である。
ディスクビットマップ３３０は、ＣＭ３００ａからの過去のアクセス処理の際に、アクセスに対する応答を基に異常発生箇所を特定できないようなリカバードエラーが発生していたか否かを、アクセス先のＨＤＤごと、かつ、アクセスに使用した伝送路ごとに保持する情報である。以下、アクセスに対する応答を基に異常発生箇所を特定できないエラーを、「非疑箇所不明のエラー」と呼ぶ。
【００８６】
ディスクビットマップ３３０は、ＤＥ２００内の各ＨＤＤと、前述の伝送路Ｐ０，Ｐ１のそれぞれとの組合せごとに、ビットを備える。ビットの値が「０」の場合、過去に非疑箇所不明のリカバードエラーが発生していないことを示し、ビットの値が「１」の場合、過去に非疑箇所不明のリカバードエラーが発生していたことを示す。例えば、図９において、「ディスク＃０」および「伝送路Ｐ０」に対応するビットが「１」であれば、伝送路Ｐ０を通じて「ディスク＃０」に対応するＨＤＤにアクセスした際に、非疑箇所不明のリカバードエラーが発生していたことを示す。
【００８７】
なお、ＣＭ３００ａは、ディスクビットマップ３３０上の各ビットについて、値を「０」から「１」に更新した後、一定時間が経過すると、値を自動的に「０」に戻してもよい。この場合、ディスクビットマップ３３０の各ビットは、過去の一定期間内に非疑箇所不明のリカバードエラーが発生したか否かを示すものとなる。
【００８８】
なお、ＣＭ３００ａとＣＭ３００ｂとは、例えば、それぞれ個別の値が登録されたディスクビットマップ３３０を保持してもよい。あるいは、ＣＭ３００ａが保持するディスクビットマップ３３０と、ＣＭ３００ｂが保持するディスクビットマップ３３０とが、同期されるようにしてもよい。
【００８９】
次に、図１０は、ＣＭが備える処理機能を示すブロック図である。
ＣＭ３００ａは、アクセス制御部３４１、異常発生箇所判定部３４２および切り離し制御部３４３を備える。アクセス制御部３４１、異常発生箇所判定部３４２および切り離し制御部３４３の処理は、例えば、ＣＭ３００ａのＣＰＵ３０１が所定のプログラムを実行することで実現される。
【００９０】
アクセス制御部３４１は、ホスト装置１１０からの要求に応じて、ＤＥ２００内のＨＤＤにアクセスする。アクセス制御部３４１は、ＲＡＩＤ管理テーブル３２０に設定された論理ボリュームに含まれるデータに対するアクセス要求をホスト装置１１０から受け付け、ＲＡＩＤ管理テーブル３２０の「論理ボリューム情報」に登録された情報を基に、アクセスを要求されたデータにアクセスする。
【００９１】
また、アクセス制御部３４１は、ＲＡＩＤ管理テーブル３２０の情報に基づいて、ＤＥ２００内のＨＤＤに記録するデータをＲＡＩＤによって管理する。アクセス制御部３４１は、データのアクセス要求を受けた場合、ＲＡＩＤ管理テーブル３２０内の「ステータス」を基に、ＨＤＤへのアクセスを制御する。
【００９２】
例えば、「ＲＡＩＤレベル」にＲＡＩＤ４，５のいずれかが設定されている場合のデータ読み出し処理は、次のように行われる。同一ＲＡＩＤグループに対応付けられた「使用ディスク」が示すすべてのＨＤＤの「ステータス」が「１」である場合、アクセス制御部３４１は、「使用ディスク」が示すいずれかのＨＤＤからデータを読み出す。一方、同一ＲＡＩＤグループに対応付けられた「使用ディスク」が示すＨＤＤのうち１つの「ステータス」が「０」である場合、アクセス制御部３４１は、次のいずれかの読み出し処理を行う。アクセス制御部３４１は、「使用ディスク」が示すＨＤＤのうち「ステータス」が「１」であるいずれかのＨＤＤからデータを読み出す。あるいは、アクセス制御部３４１は、「使用ディスク」が示すＨＤＤのうち「ステータス」が「１」であるすべてのＨＤＤからデータおよびパリティを読み出し、読み出したデータおよびパリティを基に読み出し対象のデータを復元する。
【００９３】
また、アクセス制御部３４１は、ＨＤＤに対して伝送路Ｐ０，Ｐ１のどちらを通じてアクセスするかを、所定のルールに従って決定する。例えば、アクセス制御部３４１は、伝送路Ｐ０，Ｐ１を交互に選択することで、伝送路Ｐ０，Ｐ１のそれぞれにおける通信負荷ができるだけ均等になるようにする。ただし、アクセス制御部３４１は、デバイス管理テーブル３１０に登録された、ＳＡＳエクスパンダについての「ステータス」に基づき、伝送路Ｐ０，Ｐ１の一方が使用不能である場合には、他方の伝送路を選択してＨＤＤにアクセスする。
【００９４】
また、アクセス制御部３４１は、ＨＤＤへのアクセス時にエラーが発生すると、同じアクセス処理をリトライする。さらに、アクセス制御部３４１は、リトライが成功したか否かにかかわらず、エラーが発生したことを異常発生箇所判定部３４２に通知する。また、アクセス制御部３４１は、アクセス先のＨＤＤまたはアクセス経路上のＳＡＳエクスパンダから、エラーの内容を示すセンス情報を受信した場合には、受信したセンス情報を異常発生箇所判定部３４２に通知する。
【００９５】
異常発生箇所判定部３４２は、アクセス制御部３４１によるアクセス処理においてエラーが発生したときに、異常発生箇所を判定し、異常発生箇所と判定したデバイスに対応する、デバイス管理テーブル３１０内の「エラー点数」の値を加点する。異常発生箇所判定部３４２は、このような判定処理を実現する処理機能として、加点処理部３５１、データ冗長性判定部３５２、伝送路冗長性判定部３５３および副判定部３５４を備える。
【００９６】
加点処理部３５１は、アクセス制御部３４１から通知されたセンス情報や、データ冗長性判定部３５２、伝送路冗長性判定部３５３および副判定部３５４の各判定結果に基づいて、異常発生箇所を判定する。加点処理部３５１は、異常が発生したと判定したデバイスに対応する、デバイス管理テーブル３１０内の「エラー点数」の値を加点する。また、加点処理部３５１は、非疑箇所不明のリカバードエラーが発生したとき、ディスクビットマップ３３０のビットのうち、アクセス先のＨＤＤとアクセス時に使用した伝送路とに対応するビットに「１」を設定する。
【００９７】
データ冗長性判定部３５２は、エラー発生時におけるアクセス対象のデータに冗長性があるかを、ＲＡＩＤ管理テーブル３２０に基づいて判定する。「データに冗長性がある」とは、アクセス対象のデータを含む論理ボリュームが設定されたＲＡＩＤグループにおいて、そのＲＡＩＤグループの物理領域を構成する複数のＨＤＤのいずれか１つが使用不能の場合でも、データの復元が可能である状態を言う。例えば、データ冗長性判定部３５２は、ＲＡＩＤ管理テーブル３２０において、「ＲＡＩＤレベル」にＲＡＩＤ１，４，５のいずれかが設定されたＲＡＩＤグループに対応付けられた複数のＨＤＤのうち、１つでも「ステータス」が「０」であれば、データに冗長性がないと判定する。
【００９８】
伝送路冗長性判定部３５３は、エラー発生時において、ＤＥ２００との間の伝送路に冗長性があるかを、デバイス管理テーブル３１０に基づいて判定する。「伝送路に冗長性がある」とは、ＤＥ２００との間の伝送路Ｐ０，Ｐ１の両方が使用可能な状態であることを言う。伝送路冗長性判定部３５３は、デバイス管理テーブル３１０において、伝送路Ｐ０上のデバイス（ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０）、伝送路Ｐ１上のデバイス（ＣＭ３００ｂのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２２０）のうち、１つでも「ステータス」が「０」であれば、伝送路に冗長性がないと判定する。
【００９９】
副判定部３５４は、非疑箇所不明のリカバードエラーが発生したときに、ディスクビットマップ３３０に基づいて、異常発生箇所を判定する。副判定部３５４は、ディスクビットマップ３３０のうち、エラー発生時において使用していた伝送路に対応するビット群を参照し、エラー発生時のアクセス先以外のＨＤＤに対応するビットの中に１つでも「１」が登録されている場合、伝送路上のデバイスで異常が発生したと判定する。一方、副判定部３５４は、上記のビット群のうち、エラー発生時のアクセス先以外のＨＤＤに対応するすべてのビットが「０」である場合、アクセス先のＨＤＤで異常が発生したと判定する。
【０１００】
切り離し制御部３４３は、デバイス管理テーブル３１０内の「エラー点数」の値を監視し、「エラー点数」の値を基に対応するデバイスが故障したかを判定する。切り離し制御部３４３は、「エラー点数」の値が所定のしきい値に達したデバイスを、故障したと判定し、そのデバイスに対応する「ステータス」を「１」から「０」に更新することで、そのデバイスをＣＭ３００ａから切り離す。切り離し制御部３４３は、デバイス管理テーブル３１０の「ステータス」を更新した際には、同じデバイスに対応付けられたＲＡＩＤ管理テーブル３２０内の「ステータス」も、デバイス管理テーブル３１０と同様に更新する。
【０１０１】
ところで、アクセス制御部３４１によるアクセス処理時に発生するエラーとしては、アクセスに対する応答を基に、エラーの原因となった異常が発生したデバイスを特定できるエラーと、特定できない「非疑箇所不明のエラー」とがある。前者のエラーは、異常発生箇所がアクセス先のＨＤＤであるエラーと、異常発生箇所が伝送路上のデバイス（ＳＡＳエクスパンダ）であるエラーとに分類される。
【０１０２】
異常発生箇所判定部３４２は、アクセス先のＨＤＤで異常が発生したことを、例えば、ＨＤＤからアクセス制御部３４１に返信されたセンス情報を基に検知できる。ＨＤＤ異常によって発生するエラーの例としては、ＨＤＤにおいて応答の準備ができていないことを示す「Ｎｏｔ  Ｒｅａｄｙ」エラーなどがある。「Ｎｏｔ  Ｒｅａｄｙ」エラーの例としては、センス情報における「ＳＫ／ＡＳＣ／ＡＳＣＱ」が「０２ｈ／０４ｈ／０１ｈ」（「ｈ」は１６進数表記を示す）となるエラーなどがある。
【０１０３】
また、異常発生箇所判定部３４２は、アクセスに使用した伝送路上のＳＡＳエクスパンダで異常が発生したことを、例えば、伝送路上のＳＡＳエクスパンダからアクセス制御部３４１に返信されるセンス情報を基に検知できる。ＳＡＳエクスパンダからセンス情報が返信された場合、異常発生箇所判定部３４２は、センス情報の返信元のＳＡＳエクスパンダで異常が発生したと判定できる。さらに、異常発生箇所判定部３４２は、アクセス制御部３４１によるアクセスに対する応答が一定時間得られない場合には、伝送路上の最も近いＳＡＳエクスパンダ（例えば、伝送路Ｐ０上の、ＣＭ３００ａのＳＡＳエクスパンダ３０７）で異常が発生したと判定できる。
【０１０４】
また、ＨＤＤからアクセス制御部３４１に返信されたセンス情報からは、異常の発生箇所がＨＤＤなのか、あるいは伝送路上のデバイスなのかを判定できないエラーがあり、このようなエラーが、非疑箇所不明のエラーとなる。非疑箇所不明のエラーの例としては、ＨＤＤが予測を超える量のデータを受信したことなどを示す「Ｄａｔａ  Ｏｖｅｒ  Ｒｕｎ」エラーなどがある。「Ｄａｔａ  Ｏｖｅｒ  Ｒｕｎ」エラーが発生した場合、センス情報における「ＡＳＣ／ＡＳＣＱ」は「０Ｄｈ／０５ｈ」となる。
【０１０５】
次に、異常発生箇所判定部３４２での判定／加点処理について、具体例を挙げて説明する。まず、以下のケース１〜３は、再現性のあるエラー（リトライしても再度発生するようなエラー）が発生した場合である。
【０１０６】
＜ケース１：ＨＤＤ異常によって再現性のあるエラーが発生した場合＞
異常発生箇所判定部３４２の加点処理部３５１は、異常が発生したＨＤＤに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。
【０１０７】
＜ケース２：伝送路異常によって再現性のあるエラーが発生した場合＞
加点処理部３５１は、異常が発生したＳＡＳエクスパンダに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。
【０１０８】
＜ケース３：再現性のある非疑箇所不明のエラーが発生した場合＞
加点処理部３５１は、アクセス先のＨＤＤと、アクセスに使用した伝送路上のすべてのＳＡＳエクスパンダに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。
【０１０９】
ここで、図１１は、ケース３の状態の例を示す図である。
図１１では、例として、ＣＭ３００ａからＤＥ２００のＨＤＤ２３０ａにアクセスしたときに、再現性のある非疑箇所不明のエラーが発生した状態を示す。ＣＭ３００ａの加点処理部３５１（図１０参照）は、エラーの原因となった異常の発生箇所が、アクセス先のＨＤＤ２３０ａなのか、アクセスに使用した伝送路Ｐ０上のＳＡＳエクスパンダ（ＣＭ３００ａのＳＡＳエクスパンダ３０７またはＤＥ２００のＳＡＳエクスパンダ２１０）なのかを、判定できない。そこで、ＣＭ３００ａの加点処理部３５１は、ＨＤＤ２３０ａ、ＣＭ３００ａのＳＡＳエクスパンダ３０７およびＤＥ２００のＳＡＳエクスパンダ２１０のそれぞれに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。これにより、ＨＤＤまたはＳＡＳエクスパンダでの故障発生を見過ごす事態を防止できる。
【０１１０】
次に、リカバードエラーが発生した場合について例示する。
＜ケース４：ＨＤＤ異常によってリカバードエラーが発生した場合＞
異常発生箇所判定部３４２の加点処理部３５１は、データ冗長性判定部３５２による、データに冗長性があるかの判定結果に応じて、加点を行うかを決定する。データに冗長性がある場合、加点処理部３５１は、アクセス先のＨＤＤに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。一方、データに冗長性がない場合、加点処理部３５１は、「エラー点数」の加点を行わない。
【０１１１】
図１２は、ケース４の状態の例を示す図である。
図１２では、例として、ＣＭ３００ａは、ＨＤＤ２３０ａ〜２３０ｃによって１つのＲＡＩＤグループ「ＲＬＵ＃００」を構成し、これらのＨＤＤ２３０ａ〜２３０ｃを用いてデータを冗長化して記録しているものとする。また、「ＲＬＵ＃００」のＲＡＩＤレベルは、ＲＡＩＤ１，４，５のいずれかであるとする。そして、ＣＭ３００ａからＤＥ２００のＨＤＤ２３０ａにアクセスしたときに、ＨＤＤ２３０ａの異常に基づくリカバードエラーが発生したとする。
【０１１２】
このとき、「ＲＬＵ＃００」においてデータに冗長性がある、すなわち、「ＲＬＵ＃００」を構成するＨＤＤ２３０ａ〜２３０ｃのいずれも切り離されていない場合には、ＣＭ３００ａの加点処理部３５１（図１０参照）は、アクセス先のＨＤＤ２３０ａに対応する、デバイス管理テーブル３１０の「エラー点数」を加点する。
【０１１３】
一方、「ＲＬＵ＃００」においてデータに冗長性がない場合、ＣＭ３００ａの加点処理部３５１は、「エラー点数」の加点を行わない。図１２は、ＨＤＤ２３０ｃが切り離されていることにより、「ＲＬＵ＃００」においてデータに冗長性がなくなった状態を示す。仮に、この状態で、アクセス先のＨＤＤ２３０ａに対応する、デバイス管理テーブル３１０の「エラー点数」を加点すると、ＨＤＤ２３０ａが切り離される可能性が高まる。「ＲＬＵ＃００」ではデータに冗長性がないため、ＨＤＤ２３０ａが切り離されてしまうと、「ＲＬＵ＃００」に対するアクセスは不可能になる。
【０１１４】
しかしながら、発生したエラーがリカバードエラーの場合、ＨＤＤ２３０ａで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、ＨＤＤ２３０ａを切り離さずに継続使用しても問題ない可能性が高い。そこで、図１２に示すように、加点処理部３５１は、ＨＤＤ２３０ａでの異常発生によるリカバードエラーの発生時に、データに冗長性がない場合には、伝送路上のデバイスだけでなくアクセス先のＨＤＤ２３０ａについても、「エラー点数」に加点しない。これにより、ＨＤＤ２３０ａが切り離されて「ＲＬＵ＃００」にアクセスできない事態が発生しにくくなり、ＨＤＤ２３０ａを継続して使用できるようになる。
【０１１５】
＜ケース５：伝送路異常によってリカバードエラーが発生した場合＞
ＣＭ３００ａの加点処理部３５１は、伝送路冗長性判定部３５３による、伝送路に冗長性があるかの判定結果に応じて、加点を行うかを決定する。伝送路に冗長性がある場合、加点処理部３５１は、異常が発生したＳＡＳエクスパンダに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。一方、伝送路に冗長性がない場合、加点処理部３５１は、「エラー点数」の加点を行わない。
【０１１６】
図１３は、ケース５の状態の例を示す図である。
図１３では、例として、ＣＭ３００ａからＤＥ２００のＨＤＤ２３０ａにアクセスしたときに、伝送路上のデバイスの異常によってリカバードエラーが発生した状態を示す。このとき、伝送路に冗長性がある、すなわち、伝送路Ｐ０，Ｐ１の両方とも切り離されていない場合には、ＣＭ３００ａの加点処理部３５１（図１０参照）は、異常が発生したＳＡＳエクスパンダ（ＣＭ３００ａのＳＡＳエクスパンダ３０７またＤＥ２００のＳＡＳエクスパンダ２１０）に対応する、デバイス管理テーブル３１０の「エラー点数」を加点する。
【０１１７】
一方、伝送路に冗長性がない場合、ＣＭ３００ａの加点処理部３５１は、「エラー点数」の加点を行わない。図１３は、伝送路Ｐ１が切り離されていることにより、伝送路に冗長性がなくなった状態を示す。仮に、この状態で、ＣＭ３００ａのＳＡＳエクスパンダ３０７またはＤＥ２００のＳＡＳエクスパンダ２１０の「エラー点数」を加点すると、伝送路Ｐ０が切り離される可能性が高まる。伝送路Ｐ１はすでに切り離されているため、伝送路Ｐ０が切り離されてしまうと、ＣＭ３００ａはＤＥ２００にアクセスできなくなる。
【０１１８】
しかしながら、発生したエラーがリカバードエラーの場合、伝送路Ｐ０上のＳＡＳエクスパンダで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、伝送路Ｐ０を切り離さずに継続使用しても問題ない可能性が高い。そこで、図１３に示すように、加点処理部３５１は、伝送路Ｐ０上のＳＡＳエクスパンダでの異常発生によるリカバードエラーの発生時に、伝送路に冗長性がない場合には、アクセス先のＨＤＤ２３０ａだけでなく伝送路上のＳＡＳエクスパンダについても、「エラー点数」に加点しない。これにより、伝送路Ｐ０が切り離されてＤＥ２００にアクセスできない事態が発生しにくくなり、ＤＥ２００に対するアクセスを継続できるようになる。
【０１１９】
＜ケース６：非疑箇所不明のリカバードエラーが発生した場合＞
ＣＭ３００ａの加点処理部３５１は、データ冗長性判定部３５２、伝送路冗長性判定部３５３および副判定部３５４のそれぞれの判定結果に基づいて、加点する対象のデバイスや、デバイスに加点するか否かを決定する。
【０１２０】
データに冗長性があり、かつ、伝送路にも冗長性がある場合、加点処理部３５１は、上記のケース３と同様に、アクセス先のＨＤＤと、アクセスに使用した伝送路上のすべてのＳＡＳエクスパンダとに対応する、デバイス管理テーブル３１０内の「エラー点数」に加点する。これにより、ＨＤＤまたはＳＡＳエクスパンダでの故障発生を見過ごす事態を防止できる。
【０１２１】
また、データに冗長性がなく、かつ、伝送路にも冗長性がない場合、加点処理部３５１は、「エラー点数」の加点を行わない。これにより、同じＨＤＤへのアクセスを継続できるようになる。
【０１２２】
さらに、データおよび伝送路のうち、一方に冗長性があり、他方の冗長性がない場合、加点処理部３５１は、副判定部３５４による判定結果に基づいて、異常発生箇所の絞り込みを行う。
【０１２３】
図１４は、ケース６の状態の例を示す図である。
図１４では、例として、ＣＭ３００ａは、ＨＤＤ２３０ａ〜２３０ｃによって１つのＲＡＩＤグループ「ＲＬＵ＃００」を構成しているが、ＨＤＤ２３０ｃが切り離されているために、「ＲＬＵ＃００」においてデータに冗長性がない状態を示す。また、ＣＭ３００ａとＤＥ２００との間の伝送路には冗長性があるものとする。
【０１２４】
このような状態で、ＣＭ３００ａからＤＥ２００のＨＤＤ２３０ａにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、ＣＭ３００ａの加点処理部３５１（図１０参照）は、アクセス先のＨＤＤ２３０ａに対応する、デバイス管理テーブル３１０の「エラー点数」を加点しない。これにより、「ＲＬＵ＃００」へのアクセスを継続できるようになる。
【０１２５】
しかしながら、仮にこのとき、伝送路Ｐ０上のＳＡＳエクスパンダに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、ＨＤＤ２３０ａの「エラー点数」は増加せず、伝送路Ｐ０上のＳＡＳエクスパンダの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因が伝送路Ｐ０ではなくＨＤＤ２３０ａにあった場合、本来切り離すべきＨＤＤ２３０ａが切り離されずに、故障が発生していない伝送路Ｐ０が切り離されてしまうという問題が生じる。
【０１２６】
このように、伝送路Ｐ０が誤って切り離される事態を発生しにくくするために、ＣＭ３００ａの加点処理部３５１は、副判定部３５４（図１０参照）による判定結果に基づいて、伝送路Ｐ０上のＳＡＳエクスパンダの「エラー点数」に加点するか否かを決定する。副判定部３５４は、ディスクビットマップ３３０（図９，図１０参照）における伝送路Ｐ０に対応するビット群を参照する。
【０１２７】
ここで、参照先のビット群において、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応する少なくとも１つのビットが「１」である場合、同じ伝送路Ｐ０を通じて過去に同様のリカバードエラーが発生した可能性が高いと推測できる。この場合、異常発生箇所はＨＤＤ２３０ａではなく伝送路Ｐ０上のＳＡＳエクスパンダである可能性が高い。そこで、副判定部３５４は、図１４の左下に示すように、参照先のビット群のうち、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応する少なくとも１つのビットが「１」である場合には、伝送路Ｐ０上のデバイスで異常が発生したと判定する。この場合、加点処理部３５１は、伝送路Ｐ０上の各ＳＡＳエクスパンダに対応する、デバイス管理テーブル３１０の「エラー点数」に加点する。
【０１２８】
一方、副判定部３５４は、図１４の右下に示すように、参照先のビット群のうち、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応するビットがすべて「０」である場合には、ＨＤＤ２３０ａで異常が発生したと判定する。この場合、加点処理部３５１は、「エラー点数」の加点を行わない。
【０１２９】
以上のように、副判定部３５４による判定結果を基に、伝送路上のデバイスの「エラー点数」に加点するか否かを決定することにより、異常発生箇所が伝送路上のデバイスであるか否かを正確に判定できる。その結果、本来切り離すべきＨＤＤが切り離されずに、故障が発生していない伝送路が切り離されるという事態が発生しにくくなる。
【０１３０】
図１５は、ケース６の状態の別の例を示す図である。
図１５では、例として、ＣＭ３００ａは、ＨＤＤ２３０ａ〜２３０ｃによって１つのＲＡＩＤグループ「ＲＬＵ＃００」を構成し、ＨＤＤ２３０ａ〜２３０ｃを用いてデータが冗長化されるように制御している。しかし、伝送路Ｐ１が切り離されているために、ＣＭ３００ａとＤＥ２００との間の伝送路には冗長性がないものとする。
【０１３１】
このような状態で、ＣＭ３００ａからＤＥ２００のＨＤＤ２３０ａにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、ＣＭ３００ａの加点処理部３５１（図１０参照）は、アクセスに用いた伝送路Ｐ０上のＳＡＳエクスパンダに対応する、デバイス管理テーブル３１０の「エラー点数」を加点しない。これにより、ＤＥ２００へのアクセスを継続できるようになる。
【０１３２】
しかしながら、仮にこのとき、アクセス先のＨＤＤ２３０ａに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、伝送路Ｐ０上のＳＡＳエクスパンダの「エラー点数」は増加せず、ＨＤＤ２３０ａの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因がＨＤＤ２３０ａではなく伝送路Ｐ０上のＳＡＳエクスパンダにあった場合、本来切り離すべき伝送路Ｐ０が切り離されずに、故障が発生していないＨＤＤ２３０ａが切り離されてしまうという問題が生じる。
【０１３３】
このように、ＨＤＤ２３０ａが誤って切り離される事態を発生しにくくするために、ＣＭ３００ａの加点処理部３５１は、副判定部３５４（図１０参照）による判定結果に基づいて、アクセス先のＨＤＤ２３０ａの「エラー点数」に加点するか否かを決定する。副判定部３５４は、ディスクビットマップ３３０（図９，図１０参照）における伝送路Ｐ０に対応するビット群を参照する。
【０１３４】
ここで、参照先のビット群のうち、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応するビットがすべて「０」である場合、ＤＥ２００内のＨＤＤのうちＨＤＤ２３０ａへのアクセス時にのみリカバードエラーが発生していたことになる。この場合、異常発生箇所は伝送路Ｐ０上のＳＡＳエクスパンダではなくＨＤＤ２３０ａである可能性が高い。そこで、副判定部３５４は、図１５の右下に示すように、参照先のビット群のうち、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応するすべてのビットが「０」である場合には、ＨＤＤ２３０ａで異常が発生したと判定する。この場合、加点処理部３５１は、ＨＤＤ２３０ａに対応する、デバイス管理テーブル３１０の「エラー点数」に加点する。
【０１３５】
一方、副判定部３５４は、図１５の左下に示すように、参照先のビット群のうち、アクセス先のＨＤＤ２３０ａ以外のＨＤＤに対応する少なくとも１つのビットが「１」である場合には、伝送路Ｐ０上のいずれかのＳＡＳエクスパンダにおいて異常が発生したと判定する。この場合、加点処理部３５１は、「エラー点数」の加点を行わない。
【０１３６】
以上のように、副判定部３５４による判定結果を基に、アクセス先のＨＤＤの「エラー点数」に加点するか否かを決定することにより、異常発生箇所がアクセス先のＨＤＤであるか否かを正確に判定できる。その結果、本来切り離すべき伝送路が切り離されずに、故障が発生していないＨＤＤが切り離されるという事態が発生しにくくなる。
【０１３７】
次に、上記のケース１〜６を含む判定処理手順について、フローチャートを用いて説明する。図１６，図１７は、ＣＭにおけるエラー発生時の処理手順の例を示すフローチャートである。
【０１３８】
［ステップＳ１１］ＣＭ３００ａのアクセス制御部３４１が、ホスト装置１１０からの要求に応じて、ＤＥ２００内のいずれかのＨＤＤに対してアクセスしたときに、エラーが発生した場合、ステップＳ１２以降の処理が実行される。
【０１３９】
［ステップＳ１２］アクセス制御部３４１は、ステップＳ１１と同様のアクセス処理をリトライする。
［ステップＳ１３］ステップＳ１２でのリトライにより再度エラーが発生した場合（すなわち、再現性のあるエラーが発生した場合。Ｓ１３：Ｎｏ）、ステップＳ１４の処理が実行される。一方、ステップＳ１２でアクセスに成功した場合（すなわち、ステップＳ１１で発生したエラーがリカバードエラーであった場合。Ｓ１３：Ｙｅｓ）、ステップＳ１９の処理が実行される。
【０１４０】
［ステップＳ１４］ＣＭ３００ａの加点処理部３５１は、異常発生箇所が、ステップＳ１１，Ｓ１２でのアクセス先のＨＤＤであるかを判定する。加点処理部３５１は、例えば、ステップＳ１１またはステップＳ１２でアクセス制御部３４１がアクセス先のＨＤＤから受信したセンス情報を基に、異常発生箇所がアクセス先のＨＤＤであるかを判定する。加点処理部３５１は、異常発生箇所がＨＤＤであると判定した場合（Ｓ１４：Ｙｅｓ）、ステップＳ１５の処理を実行する一方、異常発生箇所がＨＤＤでないと判定した場合（Ｓ１４：Ｎｏ）、ステップＳ１６の処理を実行する。
【０１４１】
［ステップＳ１５］加点処理部３５１は、アクセス先のＨＤＤに対応する、デバイス管理テーブル３１０の「エラー点数」に加点する。
［ステップＳ１６］加点処理部３５１は、異常発生箇所が、ステップＳ１１，Ｓ１２でのアクセスに用いた伝送路上のデバイスであるかを判定する。加点処理部３５１は、例えば、ステップＳ１１またはステップＳ１２で、アクセス制御部３４１が伝送路上のＳＡＳエクスパンダからセンス情報を受信した場合、あるいは、アクセス制御部３４１によるアクセスに対して一定時間以内に応答がなかった場合に、異常発生箇所が伝送路上のデバイスであると判定する。加点処理部３５１は、異常発生箇所が伝送路上のデバイスであると判定した場合（Ｓ１６：Ｙｅｓ）、ステップＳ１７の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合（Ｓ１６：Ｎｏ）、ステップＳ１８の処理を実行する。
【０１４２】
［ステップＳ１７］加点処理部３５１は、ステップＳ１１，Ｓ１２でのアクセスに用いた伝送路上のＳＡＳエクスパンダのうち、異常が発生したＳＡＳエクスパンダについての、デバイス管理テーブル３１０の「エラー点数」に加点する。
【０１４３】
なお、加点処理部３５１は、例えば、ステップＳ１１またはステップＳ１２で、アクセス制御部３４１が伝送路上のＳＡＳエクスパンダからセンス情報を受信した場合、そのセンス情報の送信元のＳＡＳエクスパンダを異常発生箇所と判定する。また、加点処理部３５１は、ステップＳ１１またはステップＳ１２でのアクセス制御部３４１によるアクセスに対して一定時間以内に応答がなかった場合には、使用した伝送路上のＳＡＳエクスパンダのうち、ＣＭ３００ａのＩＯＣ３０５に最も近いＳＡＳエクスパンダを異常発生箇所と判定する。
【０１４４】
［ステップＳ１８］加点処理部３５１は、アクセス先のＨＤＤと、アクセスに使用した伝送路上のＳＡＳエクスパンダのそれぞれについての、デバイス管理テーブル３１０の「エラー点数」に加点する。
【０１４５】
［ステップＳ１９］リカバードエラーが発生した場合（Ｓ１３：Ｙｅｓ）、加点処理部３５１は、ステップＳ１４と同様の処理手順で、異常発生箇所がアクセス先のＨＤＤであるかを判定する。加点処理部３５１は、異常発生箇所がＨＤＤであると判定した場合（Ｓ１９：Ｙｅｓ）、ステップＳ２０の処理を実行する一方、異常発生箇所がＨＤＤでないと判定した場合（Ｓ１９：Ｎｏ）、ステップＳ２２の処理を実行する。
【０１４６】
［ステップＳ２０］ＣＭ３００ａのデータ冗長性判定部３５２は、ＲＡＩＤ管理テーブル３２０から、ステップＳ１１，Ｓ１２でのアクセス先が属するＲＡＩＤグループに対応付けられた、各ＨＤＤについての「ステータス」を参照する。データ冗長性判定部３５２は、ＲＡＩＤグループに対応付けられたすべての「ステータス」が「１」である場合、アクセス対象のデータに冗長性があると判定する。一方、データ冗長性判定部３５２は、ＲＡＩＤグループに対応付けられた「ステータス」のうち１つでも「０」である場合には、アクセス対象のデータに冗長性がないと判定する。なお、ＲＡＩＤ管理テーブル３２０には、例えば、切り離し制御部３４３によって、ＲＡＩＤグループごとにデータに冗長性があるか否かを示すフラグ情報が登録されてもよい。
【０１４７】
加点処理部３５１は、データ冗長性判定部３５２による判定結果に基づき、データに冗長性がある場合には（Ｓ２０：Ｙｅｓ）、ステップＳ２１の処理を実行する。一方、加点処理部３５１は、データに冗長性がない場合には（Ｓ２０：Ｎｏ）、デバイス管理テーブル３１０の「エラー点数」に加点することなく、処理を終了する。
【０１４８】
［ステップＳ２１］加点処理部３５１は、アクセス先のＨＤＤに対応する、デバイス管理テーブル３１０の「エラー点数」に加点する。
［ステップＳ２２］加点処理部３５１は、ステップＳ１６と同様の処理手順で、異常発生箇所が伝送路上のデバイスであるかを判定する。加点処理部３５１は、異常発生箇所が伝送路上のデバイスであると判定した場合（Ｓ２２：Ｙｅｓ）、ステップＳ２３の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合（Ｓ２２：Ｎｏ）、ステップＳ２５の処理を実行する。
【０１４９】
［ステップＳ２３］ＣＭ３００ａの伝送路冗長性判定部３５３は、デバイス管理テーブル３１０において伝送路Ｐ０，Ｐ１のそれぞれに属するデバイスに対応付けられた「ステータス」を参照する。伝送路冗長性判定部３５３は、伝送路Ｐ０，Ｐ１のそれぞれに属するデバイスのうち１つでも、「ステータス」が「０」であるデバイスがある場合に、伝送路に冗長性がないと判定する。なお、デバイス管理テーブル３１０には、例えば、切り離し制御部３４３によって、伝送路に冗長性があるか否かを示すフラグ情報が登録されてもよい。
【０１５０】
加点処理部３５１は、伝送路冗長性判定部３５３による判定結果に基づき、伝送路に冗長性がある場合には（Ｓ２３：Ｙｅｓ）、ステップＳ２４の処理を実行する。一方、加点処理部３５１は、伝送路に冗長性がない場合には（Ｓ２３：Ｎｏ）、デバイス管理テーブル３１０の「エラー点数」に加点することなく、処理を終了する。
【０１５１】
［ステップＳ２４］加点処理部３５１は、ステップＳ１７と同様の処理手順で、異常が発生したＳＡＳエクスパンダについての、デバイス管理テーブル３１０の「エラー点数」に加点する。
【０１５２】
［ステップＳ２５］リカバードエラーが発生し（Ｓ１３：Ｙｅｓ）、異常発生箇所が特定できない場合（Ｓ１９：Ｎｏ，Ｓ２２：Ｎｏ）、加点処理部３５１は、ディスクビットマップ３３０のビットのうち、アクセス先のＨＤＤとアクセス時に使用した伝送路とに対応するビットに「１」を設定する。
【０１５３】
なお、加点処理部３５１は、例えば、ディスクビットマップ３３０のビットに「１」を設定したとき、設定したビットを他方のＣＭ３００ｂに通知して、ＣＭ３００ａが保持するディスクビットマップ３３０とＣＭ３００ｂが保持するディスクビットマップ３３０とを同期させるようにしてもよい。
【０１５４】
また、加点処理部３５１は、ディスクビットマップ３３０のビットに「１」を設定した後、そのビットの値を一定時間後に「０」に戻してもよい。これにより、副判定部３５４による異常発生箇所の判定処理に対して、判定時に発生したエラーとは関連性の低い、極端に前に発生したエラーの影響が及ぶことが防止され、副判定部３５４の判定精度を高めることができる。
【０１５５】
［ステップＳ２６］ＣＭ３００ａの伝送路冗長性判定部３５３は、ステップＳ２３と同様の処理手順で、デバイス管理テーブル３１０に基づき、伝送路に冗長性があるかを判定する。加点処理部３５１は、伝送路冗長性判定部３５３による判定結果に基づき、伝送路に冗長性がある場合には（Ｓ２６：Ｙｅｓ）、ステップＳ２７の処理を実行する一方、伝送路に冗長性がない場合には（Ｓ２６：Ｎｏ）、ステップＳ３１の処理を実行する。
【０１５６】
［ステップＳ２７］ＣＭ３００ａのデータ冗長性判定部３５２は、ステップＳ２０と同様の処理手順で、ＲＡＩＤ管理テーブル３２０に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部３５１は、データ冗長性判定部３５２による判定結果に基づき、データに冗長性がある場合には（Ｓ２７：Ｙｅｓ）、ステップＳ２８の処理を実行する一方、データに冗長性がない場合には（Ｓ２７：Ｎｏ）、ステップＳ２９の処理を実行する。
【０１５７】
［ステップＳ２８］加点処理部３５１は、デバイス管理テーブル３１０において、ステップＳ１１，Ｓ１２でのアクセス先のＨＤＤと、ステップＳ１１，Ｓ１２でのアクセスで使用した伝送路上のすべてのＳＡＳエクスパンダとに対応する「エラー点数」に加点する。
【０１５８】
［ステップＳ２９］加点処理部３５１は、副判定部３５４に対して異常発生箇所の判定処理を依頼する。副判定部３５４は、ディスクビットマップ３３０のビットのうち、ステップＳ１１，Ｓ１２で使用した伝送路に対応するビット群を参照する。副判定部３５４は、参照したビット群における複数のビットが「１」である場合、ステップＳ１１，Ｓ１２で使用した伝送路上のデバイスにおいて異常が発生したと判定する。一方、副判定部３５４は、参照したビット群において「１」が設定されたビットが１つのみである場合、ステップＳ１１，Ｓ１２でのアクセス先のＨＤＤで異常が発生したと判定する。
【０１５９】
加点処理部３５１は、副判定部３５４により、伝送路上のデバイスで異常が発生したと判定された場合（Ｓ２９：Ｙｅｓ）、ステップＳ３０の処理を実行する。一方、加点処理部３５１は、副判定部３５４により、アクセス先のＨＤＤで異常が発生したと判定された場合（Ｓ２９：Ｎｏ）、デバイス管理テーブル３１０の「エラー点数」に加点することなく、処理を終了する。
【０１６０】
［ステップＳ３０］加点処理部３５１は、デバイス管理テーブル３１０において、ステップＳ１１，Ｓ１２でのアクセスで使用した伝送路上のすべてのＳＡＳエクスパンダと対応する「エラー点数」に加点する。
【０１６１】
［ステップＳ３１］データ冗長性判定部３５２は、ステップＳ２０と同様の処理手順で、ＲＡＩＤ管理テーブル３２０に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部３５１は、データ冗長性判定部３５２による判定結果に基づき、データに冗長性がある場合には（Ｓ３１：Ｙｅｓ）、ステップＳ３２の処理を実行する。一方、加点処理部３５１は、データに冗長性がない場合には（Ｓ３１：Ｎｏ）、デバイス管理テーブル３１０の「エラー点数」に加点することなく、処理を終了する。
【０１６２】
［ステップＳ３２］加点処理部３５１は、副判定部３５４に対して異常発生箇所の判定処理を依頼する。副判定部３５４は、ステップＳ３０と同様の処理手順で、異常発生箇所がアクセス先のＨＤＤであるか、あるいはアクセスで使用した伝送路上のデバイスであるかを判定する。
【０１６３】
加点処理部３５１は、副判定部３５４により、アクセス先のＨＤＤで異常が発生したと判定された場合（Ｓ３２：Ｎｏ）、ステップＳ３３の処理を実行する。一方、加点処理部３５１は、副判定部３５４により、伝送路上のデバイスで異常が発生したと判定された場合（Ｓ３２：Ｙｅｓ）、デバイス管理テーブル３１０の「エラー点数」に加点することなく、処理を終了する。
【０１６４】
［ステップＳ３３］加点処理部３５１は、アクセス先のＨＤＤに対応する、デバイス管理テーブル３１０の「エラー点数」に加点する。
なお、上記の図１６，図１７の処理において、ＣＭ３００ａの加点処理部３５１は、「エラー点数」の加点を行ったとき、加点したデバイスを識別する情報を他方のＣＭ３００ｂにも通知して、ＣＭ３００ａが保持するデバイス管理テーブル３１０とＣＭ３００ｂが保持するデバイス管理テーブル３１０とを同期させるようにしてもよい。
【０１６５】
次に、図１８は、切り離し制御部の処理手順の例を示す図である。
［ステップＳ５１］ＣＭ３００ａの切り離し制御部３４３は、デバイス管理テーブル３１０の「エラー点数」に対して加点が行われたことを検知すると、ステップＳ５２以降の処理を実行する。なお、切り離し制御部３４３は、例えば、加点処理部３５１から、「エラー点数」を更新したことの通知を受けたときに、ステップＳ５２以降の処理を実行するようにしてもよい。
【０１６６】
［ステップＳ５２］切り離し制御部３４３は、ステップＳ５１で加点された「エラー点数」の値が、所定のしきい値に達したかを判定する。「エラー点数」の値がしきい値に達していた場合（Ｓ５２：Ｙｅｓ）、切り離し制御部３４３は、ステップＳ５３の処理を実行する。一方、「エラー点数」の値がしきい値に達していない場合（Ｓ５２：Ｎｏ）、切り離し制御部３４３は処理を終了する。
【０１６７】
［ステップＳ５３］切り離し制御部３４３は、デバイス管理テーブル３１０内の「ステータス」のうち、ステップＳ５１で「エラー点数」が加点されたデバイスに対応する「ステータス」を、「１」から「０」に更新する。
【０１６８】
なお、切り離し制御部３４３は、例えば、デバイス管理テーブル３１０内の「ステータス」を更新したとき、更新した「ステータス」に対応するデバイスの識別情報を他方のＣＭ３００ｂに通知することで、ＣＭ３００ａが保持するデバイス管理テーブル３１０とＣＭ３００ｂが保持するデバイス管理テーブル３１０とを同期させてもよい。
【０１６９】
［ステップＳ５４］このステップＳ５４は、ステップＳ５３においてＨＤＤに対応付けられた「ステータス」が更新された場合に実行される。切り離し制御部３４３は、ＲＡＩＤ管理テーブル３２０において「使用ディスク」に登録されたＨＤＤのうち、ステップＳ５３で「ステータス」を更新したＨＤＤに対応付けられた「ステータス」を、「１」から「０」に更新する。
【０１７０】
以上の図１８の処理により、「エラー点数」が一定値に達したデバイスが、ＣＭ３００ａから切り離されて、使用不能の状態になる。
以上説明した第３の実施の形態によれば、リカバードエラーが発生した場合に、できる限りシステムの運用を継続できる。これとともに、非疑箇所不明のリカバードエラーが発生したときの異常発生箇所の判定精度が向上し、故障していないデバイスが誤って切り離される事態の発生確率を低減できる。
【０１７１】
なお、上記の各実施の形態における制御装置やＣＭの処理機能は、コンピュータによって実現することができる。その場合、制御装置はＣＭが有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１７２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１７４】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【０１７５】
（付記２）  前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記１記載のストレージシステム。
【０１７６】
（付記３）  前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記２記載のストレージシステム。
【０１７７】
（付記４）  前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、前記データ冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記３記載のストレージシステム。
【０１７８】
（付記５）  前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定された場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記４記載のストレージシステム。
【０１７９】
（付記６）  前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しないことを特徴とする付記５記載のストレージシステム。
【０１８０】
（付記７）  複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【０１８１】
（付記８）  前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記７記載のストレージシステム。
【０１８２】
（付記９）  前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性があると判定された場合に、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置の両方に加点することを特徴とする付記８記載のストレージシステム。
【０１８３】
（付記１０）  前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセスに使用した共通伝送路であると特定された場合、前記エラー点数表においてアクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセスに使用した共通伝送路に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス先の記憶装置のそれぞれに加点するかを、前記伝送路冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記９記載のストレージシステム。
【０１８４】
（付記１１）  複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置において、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【０１８５】
（付記１２）  複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置において、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【０１８６】
（付記１３）  複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
アクセス対象のデータに冗長性がないと判定した場合、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて前記共通伝送路が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【０１８７】
（付記１４）  前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、アクセス対象のデータに冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生したと判定した場合には、前記エラー点数表において前記共通伝送路に加点し、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記１３記載の異常発生箇所判定方法。
【０１８８】
（付記１５）  前記制御装置は、前記エラーが発生し、アクセス対象のデータに冗長性があると判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記１４記載の異常発生箇所判定方法。
【０１８９】
（付記１６）  前記制御装置は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、アクセス対象のデータに冗長性があるかの判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、アクセス対象のデータに冗長性があるかの判定結果と、前記過去のアクセス時に前記エラーが発生したかの判定結果とに基づいて決定する、
ことを特徴とする付記１５記載の異常発生箇所判定方法。
【０１９０】
（付記１７）  前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、アクセス対象のデータに冗長性がないと判定し、かつ、前記複数の記憶装置と接続する共通伝送路に冗長性がないと判定した場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記１６記載の異常発生箇所判定方法。
【０１９１】
（付記１８）  前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、共通伝送路に冗長性がないと判定したとき、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していない場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していた場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記１７記載の異常発生箇所判定方法。
【０１９２】
（付記１９）  複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所特定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの１つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
共通伝送路に冗長性がないと判定した場合、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【０１９３】
（付記２０）  前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、共通伝送路に冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記過去のアクセス時に前記エラーが発生していたと判定した場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記１９記載の異常発生箇所判定方法。
【符号の説明】
【０１９４】
１ａ，１ｂ  ストレージシステム
１０ａ，１０ｂ  制御装置
１１  データ冗長性判定部
１２ａ，１２ｂ  エラー履歴判定部
１３ａ，１３ｂ  異常発生箇所判定部
１４ａ，１４ｂ  切り離し制御部
１５ａ，１５ｂ  エラー履歴テーブル
１６ａ，１６ｂ  エラー点数表
１７  伝送路冗長性判定部
２１，２２  記憶装置
３０〜３２  共通伝送路
【図１】
0005760585.tif 000002
【図２】
0005760585.tif 000003
【図３】
0005760585.tif 000004
【図４】
0005760585.tif 000005
【図５】
0005760585.tif 000006
【図６】
0005760585.tif 000007
【図７】
0005760585.tif 000008
【図８】
0005760585.tif 000009
【図９】
0005760585.tif 000010
【図１０】
0005760585.tif 000011
【図１１】
0005760585.tif 000012
【図１２】
0005760585.tif 000013
【図１３】
0005760585.tif 000014
【図１４】
0005760585.tif 000015
【図１５】
0005760585.tif 000016
【図１６】
0005760585.tif 000017
【図１７】
0005760585.tif 000018
【図１８】
0005760585.tif 000019