ストレージシステムおよび異常発生箇所判定方法
【課題】システム運用の継続性を高めつつ、異常発生箇所の判定精度を向上させる。
【解決手段】記憶装置21にアクセスしたときにリカバードエラーが発生した場合、データ冗長性判定部11は、アクセス対象のデータに冗長性があるかを判定する。冗長性がないと判定された場合、異常発生箇所判定部13aは、記憶装置21を異常発生箇所でないと判定するとともに、エラー履歴判定部12aは、アクセス先以外の記憶装置22に対する過去のアクセス時にリカバードエラーが発生したかを判定する。異常発生箇所判定部13aは、エラー履歴判定部12aの判定結果に基づいて、共通伝送路30が異常発生箇所かを判定する。
【解決手段】記憶装置21にアクセスしたときにリカバードエラーが発生した場合、データ冗長性判定部11は、アクセス対象のデータに冗長性があるかを判定する。冗長性がないと判定された場合、異常発生箇所判定部13aは、記憶装置21を異常発生箇所でないと判定するとともに、エラー履歴判定部12aは、アクセス先以外の記憶装置22に対する過去のアクセス時にリカバードエラーが発生したかを判定する。異常発生箇所判定部13aは、エラー履歴判定部12aの判定結果に基づいて、共通伝送路30が異常発生箇所かを判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステムおよび異常発生箇所判定方法に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)などの記憶装置に接続したストレージ制御装置としては、記憶装置へのアクセス時にエラーが発生するたびに、エラー点数表に点数を加算し、エラー点数表の点数が一定値に達すると、記憶装置を使用しないように切り離すものがある。例えば、ディスクアレイ装置へのアクセス処理のエラーが発生したとき、エラー点数表内の異常が発生したHDDに対応する欄に点数を加算するとともに、別のエラー表に対してそのHDDでの異常発生を示す情報を格納する機能を備え、エラー発生時に、エラー表に格納された情報に基づいてエラー点数表に加算する点数を決定するようにしたストレージ制御装置がある。また、エラー点数表に対して、アクセス対象の記憶装置だけでなく、記憶装置との間の伝送路についても異常の発生に応じた点数を加点するようにしたストレージ制御装置もある。
【0003】
一方、記憶装置などの周辺装置には、情報処理装置からアクセスを受けたときにエラーが発生した場合、そのエラーが周辺装置または接続経路のどちらに起因するかを判定する機能を備えるものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−205316号公報
【特許文献2】特開2000−132413号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ストレージ制御装置から記憶装置へのアクセス時に発生するエラーには、1回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生しないような、再現性のないエラーがある。このような再現性のないエラーが発生した場合には、仮にアクセス先の記憶装置またはアクセスに使用した伝送路にエラーの発生原因があったとしても、当面は記憶装置へのアクセス処理を継続できることが多い。
【0006】
例えば、データが異なる記憶装置に冗長化されて記録されるようなストレージシステムでは、一部の記憶装置の故障によりアクセス対象のデータに冗長性がなくなった状態のまま、故障していない記憶装置を用いてシステムを継続して運用したい場合がある。アクセス対象のデータに冗長性がない状態で、再現性のないエラーが発生した場合には、アクセス先の記憶装置を切り離さないままで当面は運用を継続できる可能性が高い。
【0007】
また、例えば、記憶装置に対して接続する伝送路が冗長化されているようなストレージシステムでは、一部の伝送路の故障により伝送路に冗長性がなくなった状態のまま、故障していない伝送路を用いてシステムを継続して運用したい場合もある。伝送路に冗長性がない状態で、再現性のないエラーが発生した場合には、アクセスに使用した伝送路を切り離さないままで当面は運用を継続できる可能性が高い。
【0008】
しかしながら、エラーが発生したにもかかわらずシステムの運用を継続するということは、異常発生箇所の判定基準を緩めることにもなり、その結果、異常発生箇所の判定精度が悪化する可能性があるという問題があった。
【0009】
本発明はこのような課題に鑑みてなされたものであり、システム運用の継続性を高めつつ、異常発生箇所の判定精度を向上させたストレージシステムおよび異常発生箇所判定方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように複数の記憶装置を管理する制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、データ冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。データ冗長性判定部は、上記の複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、共通伝送路が異常発生箇所かを判定する。
【0011】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
さらに、上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、伝送路冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。伝送路冗長性判定部は、上記の複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、上記の複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【0012】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
【発明の効果】
【0013】
開示のストレージシステムおよび異常発生箇所判定方法によれば、システム運用の継続性を高めつつ、異常発生箇所の判定精度が向上する。
【図面の簡単な説明】
【0014】
【図1】第1の実施の形態に係るストレージシステムの構成例を示す図である。
【図2】第2の実施の形態に係るストレージシステムの構成例を示す図である。
【図3】コンピュータのハードウェア構成例を示す図である。
【図4】第3の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【図5】DEのハードウェア構成例を示す図である。
【図6】CMのハードウェア構成例を示す図である。
【図7】デバイス管理テーブルに登録される情報の例を示す図である。
【図8】RAID管理テーブルに登録される情報の例を示す図である。
【図9】ディスクビットマップに登録される情報の例を示す図である。
【図10】CMが備える処理機能を示すブロック図である。
【図11】ケース3の状態の例を示す図である。
【図12】ケース4の状態の例を示す図である。
【図13】ケース5の状態の例を示す図である。
【図14】ケース6の状態の例を示す図である。
【図15】ケース6の状態の別の例を示す図である。
【図16】CMにおけるエラー発生時の処理手順の例を示すフローチャート(その1)である。
【図17】CMにおけるエラー発生時の処理手順の例を示すフローチャート(その2)である。
【図18】切り離し制御部の処理手順の例を示す図である。
【発明を実施するための形態】
【0015】
以下、実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。
【0016】
図1に示すストレージシステム1aは、制御装置10aと、複数の記憶装置とを備える。図1では例として2つの記憶装置21,22を示しているが、記憶装置の数は3つ以上であってもよい。制御装置10aは、共通伝送路30を通じて記憶装置21,22に接続し、記憶装置21,22に対して共通伝送路30を介してアクセス可能になっている。共通伝送路30は、制御装置10aと記憶装置21,22とを接続する伝送路の一部を構成するものであり、例えば、制御装置10aと記憶装置21,22との間で送受信されるデータを中継する中継装置などを含む。
【0017】
また、制御装置10aは、記憶装置21,22に対してデータを記録する際、そのデータが異なる記憶装置に冗長化されるように制御する。例えば、制御装置10aは、記憶装置21にデータを記録する際、そのデータと同一のデータを記憶装置22にも記録する。また、例えば、記憶装置が3つ以上ある場合には、制御装置10aは、RAID(Redundant Arrays of Inexpensive Disks)4,5,6のいずれかに従い、記録データと、その記録データに基づくパリティとを、それぞれ異なる記憶装置に記録してもよい。
【0018】
制御装置10aは、データ冗長性判定部11、エラー履歴判定部12aおよび異常発生箇所判定部13aを備える。また、制御装置10aは、切り離し制御部14aをさらに備えていてもよい。なお、データ冗長性判定部11、エラー履歴判定部12a、異常発生箇所判定部13aおよび切り離し制御部14aの処理は、例えば、制御装置10aが備えるCPU(Central Processing Unit)が所定のプログラムを実行することで実現される。
【0019】
データ冗長性判定部11は、記憶装置21,22のいずれかにアクセスしたときに、エラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。ここで言うエラーとは、例えば、「リカバードエラー」である。「リカバードエラー」とは、例えば、1回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生せずにアクセス処理が成功するような、再現性のないエラーを指す。また、「アクセス対象のデータに冗長性がある」とは、アクセス対象のデータ自体が、あるいは、アクセス対象のデータとこのデータの復元に用いられるデータ(例えばパリティ)とが、それぞれ異なる記憶装置に格納されている状態を言う。換言すると、「アクセス対象のデータに冗長性がない」とは、アクセス対象のデータまたはこのデータの復元に用いられるデータが記憶装置の故障によって失われると、アクセス対象の記録データを復元できない状態を言う。
【0020】
エラー履歴判定部12aは、リカバードエラーが発生したとき、記憶装置21,22のうちアクセス先以外の記憶装置に対する過去のアクセス時に、リカバードエラーが発生したかを判定する。例えば、エラー履歴判定部12aは、エラー履歴テーブル15aを参照して、記憶装置21,22のそれぞれに対する過去のアクセス時にリカバードエラーが発生していたかを判定する。
【0021】
エラー履歴テーブル15aには、例えば、記憶装置ごとに個別のフラグが登録される。例えば、図1中のエラー履歴テーブル15aにおいて、記憶装置#1,#2はそれぞれ記憶装置21,22に対応し、記憶装置#1,#2のそれぞれに対して、フラグの値として「0」,「1」が登録されている。そして、リカバードエラーが発生すると、リカバードエラーの発生時におけるアクセス先の記憶装置に対応する、エラー履歴テーブル15a内のフラグが、初期値「0」から、リカバードエラーが発生したことを示す「1」に更新される。なお、エラー履歴判定部12aは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報が登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【0022】
異常発生箇所判定部13aは、リカバードエラーが発生したとき、データ冗長性判定部11およびエラー履歴判定部12aの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部13aは、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置が異常発生箇所でないと判定するとともに、エラー履歴判定部12aによる判定結果に基づいて、共通伝送路30が異常発生箇所かを判定する。
【0023】
なお、異常発生箇所判定部13aは、例えば、異常が発生したと判定した箇所を、将来制御装置10aから切り離す候補に設定してもよい。ここで、記憶装置または伝送路を「切り離す」とは、記憶装置または伝送路を制御装置10aが使用することを不許可にすることを言う。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表16aに点数を加算する処理がある。
【0024】
ここで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、アクセス先の記憶装置で異常が発生したと判定して、その記憶装置を制御装置10aから切り離してしまうと、アクセス先のデータは復元不能の状態になってしまう。この状態では、通常、ストレージシステム1a全体の運用を停止する必要が生じる。ところが、リカバードエラーは、アクセス処理のリトライによって救済されるものであるので、仮にアクセス先の記憶装置の不具合が原因でリカバードエラーが発生したとしても、当面はその記憶装置を使用してそのまま運用を続行できる。冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部13aが、アクセス先の記憶装置が異常発生箇所でないと判定することで、ストレージシステム1aを継続して運用できるようになる。
【0025】
一方、エラー履歴判定部12aの処理によれば、アクセス先以外の記憶装置に対する過去のアクセス時にリカバードエラーが発生していた場合には、異常発生箇所が現在のアクセス先の記憶装置ではなく共通伝送路30である可能性が高いと推定できる。そこで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部13aは、エラー履歴判定部12aの判定結果を参照することで、共通伝送路30が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、共通伝送路30が異常発生箇所であると誤って判定される可能性が低くなり、共通伝送路30が不必要に制御装置10aから切り離されないようにすることができる。
【0026】
すなわち、異常発生箇所判定部13aによる上記判定処理により、冗長性のないデータが格納された記憶装置の使用をできるだけ継続できるようになる。これとともに、異常発生箇所が共通伝送路30であると誤って判定されることによって、共通伝送路30が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【0027】
なお、異常発生箇所判定部13aは、例えば、異常が発生した箇所についての情報をエラー点数表16aに登録してもよい。エラー点数表16aには、記憶装置21,22のそれぞれおよび共通伝送路30について、エラーの発生に応じた点数が個別に保持される。また、エラー点数表16aは、切り離し制御部14aによって参照される。切り離し制御部14aは、エラー点数表16aにおいて点数が所定のしきい値に達した記憶装置または共通伝送路30を、故障が発生したと判定して切り離す。
【0028】
異常発生箇所判定部13aは、例えば、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部12aにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表16aにおいてアクセス対象の記憶装置に加点せずに共通伝送路30に加点する。一方、異常発生箇所判定部13aは、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部12aにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表16aにおいてアクセス対象の記憶装置および共通伝送路30のいずれにも加点しない。
【0029】
このような異常発生箇所判定部13aの処理により、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、エラー点数表16aにおいて、アクセス先の記憶装置の点数が増加せずに共通伝送路30の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない共通伝送路30が誤って切り離されるという事態の発生確率を低減することができる。
【0030】
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。なお、図2では、図1と同様の構成要素には同じ符号を付して示す。
【0031】
図2に示すストレージシステム1bは、制御装置10bと、複数の記憶装置とを備える。図2では例として2つの記憶装置21,22を示しているが、記憶装置の数は3つ以上であってもよい。制御装置10bは、記憶装置21,22に対して、複数の共通伝送路を通じてアクセス可能になっている。図2では例として、2つの共通伝送路31,32を示しているが、共通伝送路は3つ以上あってもよい。
【0032】
制御装置10bは、伝送路冗長性判定部17、エラー履歴判定部12bおよび異常発生箇所判定部13bを備える。また、伝送路冗長性判定部17、制御装置10bは、切り離し制御部14bをさらに備えていてもよい。なお、エラー履歴判定部12b、異常発生箇所判定部13bおよび切り離し制御部14bの処理は、例えば、制御装置10bが備えるCPUが所定のプログラムを実行することで実現される。
【0033】
伝送路冗長性判定部17は、記憶装置21,22のいずれかにアクセスしたときに、エラーが発生した場合、記憶装置21,22との間の共通伝送路に冗長性があるかを判定する。ここで言う「エラー」とは、例えば、前述した「リカバードエラー」である。また、「共通伝送路に冗長性がある」とは、制御装置10bと記憶装置21,22との間が複数の共通伝送路を通じて接続されていることを指す。図2の例では、共通伝送路31,32のうちの一方が制御装置10bから切り離されている場合、共通伝送路に冗長性がない状態となる。
【0034】
エラー履歴判定部12bは、リカバードエラーが発生したとき、記憶装置21,22のうちアクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生したかを判定する。エラー履歴判定部12bは、例えば、エラー履歴テーブル15bを参照して、記憶装置21,22に対する同じ共通伝送路を通じた過去のアクセス時にリカバードエラーが発生していたかを判定する。
【0035】
エラー履歴テーブル15bには、図1のエラー履歴テーブル15aと同様に、記憶装置ごとに、リカバードエラーが発生したかを示すフラグが登録される。ただし、エラー履歴テーブル15bは、記憶装置21,22との間の共通伝送路31,32ごとに個別に設けられる。リカバードエラーが発生すると、アクセスに使用した共通伝送路に対応するエラー履歴テーブル15bが選択される。そして、選択されたエラー履歴テーブル15b内のフラグが、初期値「0」から、リカバードエラーが発生したことを示す「1」に更新される。
【0036】
なお、エラー履歴判定部12bは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報と、リカバードエラー発生時に使用していた共通伝送路を示す情報とが登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【0037】
異常発生箇所判定部13bは、リカバードエラーが発生したとき、伝送路冗長性判定部17およびエラー履歴判定部12bの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部13bは、伝送路冗長性判定部17によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路が異常発生箇所でないと判定するとともに、エラー履歴判定部12bによる判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【0038】
なお、異常発生箇所判定部13bは、例えば、図1の異常発生箇所判定部13aと同様に、異常が発生したと判定した箇所を、将来制御装置10bから切り離す候補に設定してもよい。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表16bに点数を加算する処理がある。
【0039】
ここで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、アクセスに使用した共通伝送路で異常が発生したと判定して、その共通伝送路を制御装置10bから切り離してしまうと、記憶装置21,22のいずれにもアクセスできない状態になり、ストレージシステム1b全体の運用を継続できない。ところが、前述のように、リカバードエラーはアクセス処理のリトライによって救済されるものであるので、仮にアクセスに使用した共通伝送路の不具合が原因でリカバードエラーが発生したとしても、当面はその共通伝送路を使用してそのまま運用を続行できる。共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部13bが、アクセスに使用した共通伝送路が異常発生箇所でないと判定することで、ストレージシステム1bを継続して運用できるようになる。
【0040】
一方、エラー履歴判定部12bの処理によれば、アクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生していない場合には、異常発生箇所がアクセスに使用した共通伝送路ではなくアクセス先の記憶装置である可能性が高いと推定できる。そこで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部13bは、エラー履歴判定部12bの判定結果を参照することで、アクセスに使用した共通伝送路が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、アクセス先の記憶装置が異常発生箇所であると誤って判定される可能性が低くなり、アクセス先の記憶装置が不必要に制御装置10bから切り離されないようにすることができる。
【0041】
すなわち、異常発生箇所判定部13bによる上記判定処理により、冗長性がない状態の共通伝送路の使用をできるだけ継続できるようになる。これとともに、異常発生箇所がアクセス先の記憶装置であると誤って判定されることによって、アクセス先の記憶装置が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【0042】
なお、異常発生箇所判定部13bは、例えば、異常が発生した箇所についての情報をエラー点数表16bに登録してもよい。エラー点数表16bには、記憶装置21,22のそれぞれおよび共通伝送路31,32のそれぞれについて、エラーの発生に応じた点数が個別に保持される。また、エラー点数表16bは、切り離し制御部14bによって参照される。切り離し制御部14bは、エラー点数表16bにおいて点数が所定のしきい値に達した記憶装置または共通伝送路を、故障が発生したと判定して、制御装置10bから切り離す。
【0043】
異常発生箇所判定部13bは、例えば、伝送路冗長性判定部17によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部12bにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表16bにおいてアクセスに使用した共通伝送路に加点せずにアクセス対象の記憶装置に加点する。一方、異常発生箇所判定部13bは、伝送路冗長性判定部17によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部12bにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表16bにおいてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない。
【0044】
このような異常発生箇所判定部13bの処理により、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、エラー点数表16bにおいて、アクセスに使用した共通伝送路の点数が増加せずにアクセス先の記憶装置の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない記憶装置が誤って切り離されるという事態の発生確率を低減することができる。
【0045】
なお、図1に示した制御装置10aおよび図2に示した制御装置10bは、例えば、次の図3に示すようなコンピュータとして実現できる。図3は、コンピュータのハードウェア構成例を示す図である。
【0046】
図3に示すコンピュータ50は、CPU51によって装置全体が制御されている。CPU51には、バス58を介して、RAM(Random Access Memory)52および複数の周辺機器が接続されている。
【0047】
RAM52は、コンピュータ50の主記憶装置として使用される。RAM52には、CPU51に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM52には、CPU51による処理に必要な各種データが格納される。
【0048】
バス58に接続されている周辺機器としては、HDD53、グラフィックI/F(インタフェース)54、入力I/F55、光学ドライブ装置56および通信I/F57がある。
【0049】
HDD53は、コンピュータ50の二次記憶装置として使用される。HDD53には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0050】
グラフィックI/F54には、モニタ54aが接続されている。グラフィックI/F54は、CPU51からの命令に従って、前述した案内画像などの各種の画像をモニタ54aに表示させる。
【0051】
入力I/F55には、例えば、キーボード55aおよびマウス55bが接続されている。入力I/F55は、キーボード55aやマウス55bからの出力信号をCPU51に送信する。なお、マウス55bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0052】
光学ドライブ装置56は、レーザ光などを利用して、光ディスク56aに記録されたデータの読み取りを行う。光ディスク56aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク56aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。
【0053】
通信I/F57は、ネットワーク7aに接続された他の装置との間でデータを送受信する。通信I/F57は、例えば、図1,図2に示した記憶装置21,22と接続する。なお、図1の共通伝送路30の一部や、図2の共通伝送路31,32のそれぞれの一部を構成する装置としては、例えば、ネットワーク7a上のハブなどの中継装置を適用可能である。
【0054】
〔第3の実施の形態〕
図4は、第3の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【0055】
図4に示すストレージシステム100は、DE(Drive Enclosure)200とCM300a,300b(Controller Module)とを備える。また、ストレージシステム100には、ホスト装置110が接続されている。
【0056】
DE200は、CM300a,300bからのアクセス制御対象となる複数の記憶装置を備える。DE200は、記憶装置としてHDDを備える。なお、DE200は、ストレージシステム100内の複数設けられていてもよい。また、DE200は、CM300a,300bとは別の筐体内に設けられていてもよい。また、DE200に設けられる記憶装置としては、例えば、SSDなどの他の種類の不揮発性記憶装置が使用されてもよい。
【0057】
CM300a,300bは、DE200内の複数のHDDによって実現される物理記憶領域をRAID(Redundant Arrays of Inexpensive Disks)によって管理し、この物理記憶領域に対するアクセスを制御する。また、CM300a,300bは、DE200内の複数のHDDによって実現される物理記憶領域に論理ボリュームを設定し、ホスト装置110から論理ボリュームに対するアクセス要求を受け付けて、そのアクセス要求に応じてDE200内のHDDにアクセスする。
【0058】
なお、CMは、ストレージシステム100内に3つ以上設けられていてもよい。CMが複数設けられることで、DE200に対するアクセス制御系統が冗長化され、アクセス制御処理の信頼性が向上する。
【0059】
ホスト装置110は、ユーザの操作に応じて、CM300a,300bに対して、CM300a,300bが提供する論理ボリュームへのアクセスを要求する。なお、ホスト装置110とCM300a,300bとは、例えば、FC(Fibre Channel)ケーブルを介して接続されている。
【0060】
図5は、DEのハードウェア構成例を示す図である。DE200は、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)エクスパンダ210,220と、複数のHDD230a〜230fとを備える。
【0061】
SASエクスパンダ210は、CM300aとHDD230a〜230fとの間でデータを中継する。SASエクスパンダ220は、CM300bとHDD230a〜230fとの間でデータを中継する。
【0062】
SASエクスパンダ210,220は、データの中継処理を制御するコントローラ回路211,221をそれぞれ備える。SASエクスパンダ210のコントローラ回路211は、データ中継処理の制御機能の他、例えば、CM300aからHDDへのアクセス要求に対する応答として、CM300aに対してセンス情報を返信する機能も備える。センス情報とは、例えば、SCSI規格で規定されたSK(Sense Key)、ASC(Additional Sense Code)、ASCQ(Additional Sense Code Qualifier)からなる情報である。コントローラ回路211は、センス情報を返信することで、SASエクスパンダ210自身が原因となってエラーが発生したことをCM300aに通知することができる。また、SASエクスパンダ220のコントローラ回路221も同様に、データ中継処理の制御機能の他、CM300bからHDDへのアクセス要求に対する応答として、センス情報を返信する機能も備える。
【0063】
HDD230a〜230fは、SASインタフェース処理を実行するコントローラ回路231a〜231fをそれぞれ備える。コントローラ回路231a〜231fは、アクセス元(CM300aまたはCM300b)からの要求に応じた動作を正しく実行できなかった場合に、上記のセンス情報をアクセス元に返信する機能を備える。
【0064】
図6は、CMのハードウェア構成例を示す図である。なお、CM300a,300bは同様のハードウェア構成を有するので、以下の説明では、主にCM300aの構成についてのみ説明する。
【0065】
CM300aは、CPU301によって装置全体が制御されている。CPU301には、RAM302および複数の周辺機器が接続されている。RAM302は、CM300aの主記憶装置として使用され、CPU301に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【0066】
CPU301には、周辺機器の例として、フラッシュメモリ303、CA(Channel Adapter)304およびIOC(In/Out Controller)305が接続されている。フラッシュメモリ303は、例えば、図示しないPCH(Platform Controller Hub)を介してCPU301と接続される。また、CA304およびIOC305は、例えば、PCI(Peripheral Component Interconnect)スイッチ306を通じてCPU301と接続されている。
【0067】
フラッシュメモリ303は、CM300aの二次記憶装置として使用され、CPU301によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、HDDなどの他の種類の不揮発性記憶装置が使用されてもよい。
【0068】
CA304は、ホスト装置110とCM300aとの間でデータを送受信するインタフェース処理を実行する。
IOC305は、SASインタフェース処理を実行する回路である。CM300aのIOC305には、CM300aに設けられたSASエクスパンダ307と、CM300bに設けられたSASエクスパンダ307の両方に接続されている。CM300aのSASエクスパンダ307は、DE200のSASエクスパンダ210に接続されている。一方、CM300bのSASエクスパンダ307は、DE200のSASエクスパンダ220に接続されている。
【0069】
CM300aのIOC305は、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通じて、DE200内のHDDにアクセスできるとともに、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通じて、DE200内のHDDにアクセスすることもできる。すなわち、CM300aのIOC305とDE200の各HDDとの間の経路は、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る経路と、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る経路とに冗長化されている。このように、CM300aとDE200とを接続する伝送路が冗長化されることで、CM300aからDE200の各HDDへのアクセス処理の信頼性が向上する。
【0070】
また、CM300bでも同様に、CM300bのIOC305とDE200の各HDDとの間の伝送路は、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る経路(以下、「伝送路P0」と呼ぶ)と、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る経路(以下、「伝送路P1」と呼ぶ)とに冗長化されている。このように、CM300bとDE200とを接続する伝送路が冗長化されることで、CM300bからDE200の各HDDへのアクセス処理の信頼性が向上する。
【0071】
なお、CM300aのPCIスイッチ306は、他方のCM300bのPCIスイッチ306と接続されている。CM300aのCPU301と、CM300bのCPU301とは、CM300aのPCIスイッチ306とCM300bのPCIスイッチ306とを接続する通信経路を通じて、互いにデータを送受信できるようになっている。
【0072】
次に、CM300a,300bで実行される処理について説明する。なお、CM300a,300bはともに同じ処理を実行可能であるので、以下の説明では、代表してCM300aについてのみ説明する。
【0073】
まず、CM300aが保持する情報について説明する。CM300aのフラッシュメモリ303には、デバイス管理テーブル、RAID管理テーブルおよびディスクビットマップが格納される。
【0074】
図7は、デバイス管理テーブルに登録される情報の例を示す図である。
デバイス管理テーブル310は、DE200との間の伝送路上のデバイスおよびDE200内の各HDDについての状態を示す情報を保持するテーブルである。デバイス管理テーブル310には、デバイスを識別する「デバイス名」に対応付けて、「ステータス」および「エラー点数」が登録される。
【0075】
「デバイス名」に登録されるデバイスとしては、DE200との間の伝送路上のSASエクスパンダがある。例えば、図9中の「Backend EXP#0」、「DE EXP#0」、「Backend EXP#1」および「DE EXP#1」は、それぞれCM300aのSASエクスパンダ307、DE200のSASエクスパンダ210、CM300bのSASエクスパンダ307、および、DE200のSASエクスパンダ220を指す。
【0076】
前述したように、CM300aとDE200とは、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る伝送路P0と、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る伝送路P1とによって接続されている。デバイス管理テーブル310では、伝送路上のSASエクスパンダの「デバイス名」が、伝送路P0と伝送路P1とに分類されて登録されている。
【0077】
また、「デバイス名」に登録されるデバイスとしては、DE200に設けられたHDDがある。例えば、図7中の「Disk#0」〜「Disk#5」は、それぞれDE200内のHDD230a〜230fを指す。
【0078】
「ステータス」は、対応するデバイスが使用可能な状態か否かを示すフラグ情報である。対応するデバイスが使用可能な状態の場合、「ステータス」は「1」とされ、対応するデバイスが使用不可能な状態の場合、「ステータス」は「0」とされる。CM300aは、「ステータス」の値が「1」から「0」に更新することで、この「ステータス」に対応するデバイスをCM300aから切り離す。
【0079】
「エラー点数」は、対応するデバイスにおいてエラーが発生した回数に応じて加算される点数である。「エラー点数」の初期値は「0」である。また、後述するように、CM300aは、「エラー点数」が所定のしきい値(例えば「255」)に達すると、この「エラー点数」に対応するデバイスをCM300aから切り離す。
【0080】
なお、CM300aとCM300bとは、例えば、それぞれ個別の情報が登録されたデバイス管理テーブル310を保持してもよい。あるいは、CM300aが保持するデバイス管理テーブル310と、CM300bが保持するデバイス管理テーブル310とが、同期されるようにしてもよい。
【0081】
図8は、RAID管理テーブルに登録される情報の例を示す図である。
RAID管理テーブル320は、RAIDに関する情報を保持するテーブルである。RAID管理テーブル320には、RAIDグループを識別する「RAIDグループ番号」に対応付けて、「RAIDレベル」、「使用ディスク」、「ステータス」および「論理ボリューム情報」が登録される。
【0082】
「RAIDレベル」には、RAIDグループに設定されたRAIDレベルが登録される。
「使用ディスク」には、DE200内のHDDのうち、RAIDグループで使用されるHDDを識別する情報が登録される。「使用ディスク」には、通常、1つのRAIDグループに対して複数のHDDが登録される。
【0083】
「ステータス」は、「使用ディスク」が示すHDDの状態を示すフラグである。「ステータス」に登録される値は、デバイス管理テーブル310において同じHDDに対応付けられた「ステータス」と同じになる。
【0084】
「論理ボリューム情報」には、RAIDグループに対して設定された論理ボリュームに関する情報が登録される。論理ボリュームに関する情報としては、例えば、設定された論理ボリュームの番号、論理ボリュームとして使用されるHDD上の物理領域の位置情報などがある。
【0085】
図9は、ディスクビットマップに登録される情報の例を示す図である。
ディスクビットマップ330は、CM300aからの過去のアクセス処理の際に、アクセスに対する応答を基に異常発生箇所を特定できないようなリカバードエラーが発生していたか否かを、アクセス先のHDDごと、かつ、アクセスに使用した伝送路ごとに保持する情報である。以下、アクセスに対する応答を基に異常発生箇所を特定できないエラーを、「非疑箇所不明のエラー」と呼ぶ。
【0086】
ディスクビットマップ330は、DE200内の各HDDと、前述の伝送路P0,P1のそれぞれとの組合せごとに、ビットを備える。ビットの値が「0」の場合、過去に非疑箇所不明のリカバードエラーが発生していないことを示し、ビットの値が「1」の場合、過去に非疑箇所不明のリカバードエラーが発生していたことを示す。例えば、図9において、「ディスク#0」および「伝送路P0」に対応するビットが「1」であれば、伝送路P0を通じて「ディスク#0」に対応するHDDにアクセスした際に、非疑箇所不明のリカバードエラーが発生していたことを示す。
【0087】
なお、CM300aは、ディスクビットマップ330上の各ビットについて、値を「0」から「1」に更新した後、一定時間が経過すると、値を自動的に「0」に戻してもよい。この場合、ディスクビットマップ330の各ビットは、過去の一定期間内に非疑箇所不明のリカバードエラーが発生したか否かを示すものとなる。
【0088】
なお、CM300aとCM300bとは、例えば、それぞれ個別の値が登録されたディスクビットマップ330を保持してもよい。あるいは、CM300aが保持するディスクビットマップ330と、CM300bが保持するディスクビットマップ330とが、同期されるようにしてもよい。
【0089】
次に、図10は、CMが備える処理機能を示すブロック図である。
CM300aは、アクセス制御部341、異常発生箇所判定部342および切り離し制御部343を備える。アクセス制御部341、異常発生箇所判定部342および切り離し制御部343の処理は、例えば、CM300aのCPU301が所定のプログラムを実行することで実現される。
【0090】
アクセス制御部341は、ホスト装置110からの要求に応じて、DE200内のHDDにアクセスする。アクセス制御部341は、RAID管理テーブル320に設定された論理ボリュームに含まれるデータに対するアクセス要求をホスト装置110から受け付け、RAID管理テーブル320の「論理ボリューム情報」に登録された情報を基に、アクセスを要求されたデータにアクセスする。
【0091】
また、アクセス制御部341は、RAID管理テーブル320の情報に基づいて、DE200内のHDDに記録するデータをRAIDによって管理する。アクセス制御部341は、データのアクセス要求を受けた場合、RAID管理テーブル320内の「ステータス」を基に、HDDへのアクセスを制御する。
【0092】
例えば、「RAIDレベル」にRAID4,5のいずれかが設定されている場合のデータ読み出し処理は、次のように行われる。同一RAIDグループに対応付けられた「使用ディスク」が示すすべてのHDDの「ステータス」が「1」である場合、アクセス制御部341は、「使用ディスク」が示すいずれかのHDDからデータを読み出す。一方、同一RAIDグループに対応付けられた「使用ディスク」が示すHDDのうち1つの「ステータス」が「0」である場合、アクセス制御部341は、次のいずれかの読み出し処理を行う。アクセス制御部341は、「使用ディスク」が示すHDDのうち「ステータス」が「1」であるいずれかのHDDからデータを読み出す。あるいは、アクセス制御部341は、「使用ディスク」が示すHDDのうち「ステータス」が「1」であるすべてのHDDからデータおよびパリティを読み出し、読み出したデータおよびパリティを基に読み出し対象のデータを復元する。
【0093】
また、アクセス制御部341は、HDDに対して伝送路P0,P1のどちらを通じてアクセスするかを、所定のルールに従って決定する。例えば、アクセス制御部341は、伝送路P0,P1を交互に選択することで、伝送路P0,P1のそれぞれにおける通信負荷ができるだけ均等になるようにする。ただし、アクセス制御部341は、デバイス管理テーブル310に登録された、SASエクスパンダについての「ステータス」に基づき、伝送路P0,P1の一方が使用不能である場合には、他方の伝送路を選択してHDDにアクセスする。
【0094】
また、アクセス制御部341は、HDDへのアクセス時にエラーが発生すると、同じアクセス処理をリトライする。さらに、アクセス制御部341は、リトライが成功したか否かにかかわらず、エラーが発生したことを異常発生箇所判定部342に通知する。また、アクセス制御部341は、アクセス先のHDDまたはアクセス経路上のSASエクスパンダから、エラーの内容を示すセンス情報を受信した場合には、受信したセンス情報を異常発生箇所判定部342に通知する。
【0095】
異常発生箇所判定部342は、アクセス制御部341によるアクセス処理においてエラーが発生したときに、異常発生箇所を判定し、異常発生箇所と判定したデバイスに対応する、デバイス管理テーブル310内の「エラー点数」の値を加点する。異常発生箇所判定部342は、このような判定処理を実現する処理機能として、加点処理部351、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354を備える。
【0096】
加点処理部351は、アクセス制御部341から通知されたセンス情報や、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354の各判定結果に基づいて、異常発生箇所を判定する。加点処理部351は、異常が発生したと判定したデバイスに対応する、デバイス管理テーブル310内の「エラー点数」の値を加点する。また、加点処理部351は、非疑箇所不明のリカバードエラーが発生したとき、ディスクビットマップ330のビットのうち、アクセス先のHDDとアクセス時に使用した伝送路とに対応するビットに「1」を設定する。
【0097】
データ冗長性判定部352は、エラー発生時におけるアクセス対象のデータに冗長性があるかを、RAID管理テーブル320に基づいて判定する。「データに冗長性がある」とは、アクセス対象のデータを含む論理ボリュームが設定されたRAIDグループにおいて、そのRAIDグループの物理領域を構成する複数のHDDのいずれか1つが使用不能の場合でも、データの復元が可能である状態を言う。例えば、データ冗長性判定部352は、RAID管理テーブル320において、「RAIDレベル」にRAID1,4,5のいずれかが設定されたRAIDグループに対応付けられた複数のHDDのうち、1つでも「ステータス」が「0」であれば、データに冗長性がないと判定する。
【0098】
伝送路冗長性判定部353は、エラー発生時において、DE200との間の伝送路に冗長性があるかを、デバイス管理テーブル310に基づいて判定する。「伝送路に冗長性がある」とは、DE200との間の伝送路P0,P1の両方が使用可能な状態であることを言う。伝送路冗長性判定部353は、デバイス管理テーブル310において、伝送路P0上のデバイス(CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210)、伝送路P1上のデバイス(CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220)のうち、1つでも「ステータス」が「0」であれば、伝送路に冗長性がないと判定する。
【0099】
副判定部354は、非疑箇所不明のリカバードエラーが発生したときに、ディスクビットマップ330に基づいて、異常発生箇所を判定する。副判定部354は、ディスクビットマップ330のうち、エラー発生時において使用していた伝送路に対応するビット群を参照し、エラー発生時のアクセス先以外のHDDに対応するビットの中に1つでも「1」が登録されている場合、伝送路上のデバイスで異常が発生したと判定する。一方、副判定部354は、上記のビット群のうち、エラー発生時のアクセス先以外のHDDに対応するすべてのビットが「0」である場合、アクセス先のHDDで異常が発生したと判定する。
【0100】
切り離し制御部343は、デバイス管理テーブル310内の「エラー点数」の値を監視し、「エラー点数」の値を基に対応するデバイスが故障したかを判定する。切り離し制御部343は、「エラー点数」の値が所定のしきい値に達したデバイスを、故障したと判定し、そのデバイスに対応する「ステータス」を「1」から「0」に更新することで、そのデバイスをCM300aから切り離す。切り離し制御部343は、デバイス管理テーブル310の「ステータス」を更新した際には、同じデバイスに対応付けられたRAID管理テーブル320内の「ステータス」も、デバイス管理テーブル310と同様に更新する。
【0101】
ところで、アクセス制御部341によるアクセス処理時に発生するエラーとしては、アクセスに対する応答を基に、エラーの原因となった異常が発生したデバイスを特定できるエラーと、特定できない「非疑箇所不明のエラー」とがある。前者のエラーは、異常発生箇所がアクセス先のHDDであるエラーと、異常発生箇所が伝送路上のデバイス(SASエクスパンダ)であるエラーとに分類される。
【0102】
異常発生箇所判定部342は、アクセス先のHDDで異常が発生したことを、例えば、HDDからアクセス制御部341に返信されたセンス情報を基に検知できる。HDD異常によって発生するエラーの例としては、HDDにおいて応答の準備ができていないことを示す「Not Ready」エラーなどがある。「Not Ready」エラーの例としては、センス情報における「SK/ASC/ASCQ」が「02h/04h/01h」(「h」は16進数表記を示す)となるエラーなどがある。
【0103】
また、異常発生箇所判定部342は、アクセスに使用した伝送路上のSASエクスパンダで異常が発生したことを、例えば、伝送路上のSASエクスパンダからアクセス制御部341に返信されるセンス情報を基に検知できる。SASエクスパンダからセンス情報が返信された場合、異常発生箇所判定部342は、センス情報の返信元のSASエクスパンダで異常が発生したと判定できる。さらに、異常発生箇所判定部342は、アクセス制御部341によるアクセスに対する応答が一定時間得られない場合には、伝送路上の最も近いSASエクスパンダ(例えば、伝送路P0上の、CM300aのSASエクスパンダ307)で異常が発生したと判定できる。
【0104】
また、HDDからアクセス制御部341に返信されたセンス情報からは、異常の発生箇所がHDDなのか、あるいは伝送路上のデバイスなのかを判定できないエラーがあり、このようなエラーが、非疑箇所不明のエラーとなる。非疑箇所不明のエラーの例としては、HDDが予測を超える量のデータを受信したことなどを示す「Data Over Run」エラーなどがある。「Data Over Run」エラーが発生した場合、センス情報における「ASC/ASCQ」は「0Dh/05h」となる。
【0105】
次に、異常発生箇所判定部342での判定/加点処理について、具体例を挙げて説明する。まず、以下のケース1〜3は、再現性のあるエラー(リトライしても再度発生するようなエラー)が発生した場合である。
【0106】
<ケース1:HDD異常によって再現性のあるエラーが発生した場合>
異常発生箇所判定部342の加点処理部351は、異常が発生したHDDに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0107】
<ケース2:伝送路異常によって再現性のあるエラーが発生した場合>
加点処理部351は、異常が発生したSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0108】
<ケース3:再現性のある非疑箇所不明のエラーが発生した場合>
加点処理部351は、アクセス先のHDDと、アクセスに使用した伝送路上のすべてのSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0109】
ここで、図11は、ケース3の状態の例を示す図である。
図11では、例として、CM300aからDE200のHDD230aにアクセスしたときに、再現性のある非疑箇所不明のエラーが発生した状態を示す。CM300aの加点処理部351(図10参照)は、エラーの原因となった異常の発生箇所が、アクセス先のHDD230aなのか、アクセスに使用した伝送路P0上のSASエクスパンダ(CM300aのSASエクスパンダ307またはDE200のSASエクスパンダ210)なのかを、判定できない。そこで、CM300aの加点処理部351は、HDD230a、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210のそれぞれに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。これにより、HDDまたはSASエクスパンダでの故障発生を見過ごす事態を防止できる。
【0110】
次に、リカバードエラーが発生した場合について例示する。
<ケース4:HDD異常によってリカバードエラーが発生した場合>
異常発生箇所判定部342の加点処理部351は、データ冗長性判定部352による、データに冗長性があるかの判定結果に応じて、加点を行うかを決定する。データに冗長性がある場合、加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。一方、データに冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。
【0111】
図12は、ケース4の状態の例を示す図である。
図12では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成し、これらのHDD230a〜230cを用いてデータを冗長化して記録しているものとする。また、「RLU#00」のRAIDレベルは、RAID1,4,5のいずれかであるとする。そして、CM300aからDE200のHDD230aにアクセスしたときに、HDD230aの異常に基づくリカバードエラーが発生したとする。
【0112】
このとき、「RLU#00」においてデータに冗長性がある、すなわち、「RLU#00」を構成するHDD230a〜230cのいずれも切り離されていない場合には、CM300aの加点処理部351(図10参照)は、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点する。
【0113】
一方、「RLU#00」においてデータに冗長性がない場合、CM300aの加点処理部351は、「エラー点数」の加点を行わない。図12は、HDD230cが切り離されていることにより、「RLU#00」においてデータに冗長性がなくなった状態を示す。仮に、この状態で、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点すると、HDD230aが切り離される可能性が高まる。「RLU#00」ではデータに冗長性がないため、HDD230aが切り離されてしまうと、「RLU#00」に対するアクセスは不可能になる。
【0114】
しかしながら、発生したエラーがリカバードエラーの場合、HDD230aで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、HDD230aを切り離さずに継続使用しても問題ない可能性が高い。そこで、図12に示すように、加点処理部351は、HDD230aでの異常発生によるリカバードエラーの発生時に、データに冗長性がない場合には、伝送路上のデバイスだけでなくアクセス先のHDD230aについても、「エラー点数」に加点しない。これにより、HDD230aが切り離されて「RLU#00」にアクセスできない事態が発生しにくくなり、HDD230aを継続して使用できるようになる。
【0115】
<ケース5:伝送路異常によってリカバードエラーが発生した場合>
CM300aの加点処理部351は、伝送路冗長性判定部353による、伝送路に冗長性があるかの判定結果に応じて、加点を行うかを決定する。伝送路に冗長性がある場合、加点処理部351は、異常が発生したSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。一方、伝送路に冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。
【0116】
図13は、ケース5の状態の例を示す図である。
図13では、例として、CM300aからDE200のHDD230aにアクセスしたときに、伝送路上のデバイスの異常によってリカバードエラーが発生した状態を示す。このとき、伝送路に冗長性がある、すなわち、伝送路P0,P1の両方とも切り離されていない場合には、CM300aの加点処理部351(図10参照)は、異常が発生したSASエクスパンダ(CM300aのSASエクスパンダ307またDE200のSASエクスパンダ210)に対応する、デバイス管理テーブル310の「エラー点数」を加点する。
【0117】
一方、伝送路に冗長性がない場合、CM300aの加点処理部351は、「エラー点数」の加点を行わない。図13は、伝送路P1が切り離されていることにより、伝送路に冗長性がなくなった状態を示す。仮に、この状態で、CM300aのSASエクスパンダ307またはDE200のSASエクスパンダ210の「エラー点数」を加点すると、伝送路P0が切り離される可能性が高まる。伝送路P1はすでに切り離されているため、伝送路P0が切り離されてしまうと、CM300aはDE200にアクセスできなくなる。
【0118】
しかしながら、発生したエラーがリカバードエラーの場合、伝送路P0上のSASエクスパンダで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、伝送路P0を切り離さずに継続使用しても問題ない可能性が高い。そこで、図13に示すように、加点処理部351は、伝送路P0上のSASエクスパンダでの異常発生によるリカバードエラーの発生時に、伝送路に冗長性がない場合には、アクセス先のHDD230aだけでなく伝送路上のSASエクスパンダについても、「エラー点数」に加点しない。これにより、伝送路P0が切り離されてDE200にアクセスできない事態が発生しにくくなり、DE200に対するアクセスを継続できるようになる。
【0119】
<ケース6:非疑箇所不明のリカバードエラーが発生した場合>
CM300aの加点処理部351は、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354のそれぞれの判定結果に基づいて、加点する対象のデバイスや、デバイスに加点するか否かを決定する。
【0120】
データに冗長性があり、かつ、伝送路にも冗長性がある場合、加点処理部351は、上記のケース3と同様に、アクセス先のHDDと、アクセスに使用した伝送路上のすべてのSASエクスパンダとに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。これにより、HDDまたはSASエクスパンダでの故障発生を見過ごす事態を防止できる。
【0121】
また、データに冗長性がなく、かつ、伝送路にも冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。これにより、同じHDDへのアクセスを継続できるようになる。
【0122】
さらに、データおよび伝送路のうち、一方に冗長性があり、他方の冗長性がない場合、加点処理部351は、副判定部354による判定結果に基づいて、異常発生箇所の絞り込みを行う。
【0123】
図14は、ケース6の状態の例を示す図である。
図14では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成しているが、HDD230cが切り離されているために、「RLU#00」においてデータに冗長性がない状態を示す。また、CM300aとDE200との間の伝送路には冗長性があるものとする。
【0124】
このような状態で、CM300aからDE200のHDD230aにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、CM300aの加点処理部351(図10参照)は、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点しない。これにより、「RLU#00」へのアクセスを継続できるようになる。
【0125】
しかしながら、仮にこのとき、伝送路P0上のSASエクスパンダに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、HDD230aの「エラー点数」は増加せず、伝送路P0上のSASエクスパンダの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因が伝送路P0ではなくHDD230aにあった場合、本来切り離すべきHDD230aが切り離されずに、故障が発生していない伝送路P0が切り離されてしまうという問題が生じる。
【0126】
このように、伝送路P0が誤って切り離される事態を発生しにくくするために、CM300aの加点処理部351は、副判定部354(図10参照)による判定結果に基づいて、伝送路P0上のSASエクスパンダの「エラー点数」に加点するか否かを決定する。副判定部354は、ディスクビットマップ330(図9,図10参照)における伝送路P0に対応するビット群を参照する。
【0127】
ここで、参照先のビット群において、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合、同じ伝送路P0を通じて過去に同様のリカバードエラーが発生した可能性が高いと推測できる。この場合、異常発生箇所はHDD230aではなく伝送路P0上のSASエクスパンダである可能性が高い。そこで、副判定部354は、図14の左下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合には、伝送路P0上のデバイスで異常が発生したと判定する。この場合、加点処理部351は、伝送路P0上の各SASエクスパンダに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
【0128】
一方、副判定部354は、図14の右下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するビットがすべて「0」である場合には、HDD230aで異常が発生したと判定する。この場合、加点処理部351は、「エラー点数」の加点を行わない。
【0129】
以上のように、副判定部354による判定結果を基に、伝送路上のデバイスの「エラー点数」に加点するか否かを決定することにより、異常発生箇所が伝送路上のデバイスであるか否かを正確に判定できる。その結果、本来切り離すべきHDDが切り離されずに、故障が発生していない伝送路が切り離されるという事態が発生しにくくなる。
【0130】
図15は、ケース6の状態の別の例を示す図である。
図15では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成し、HDD230a〜230cを用いてデータが冗長化されるように制御している。しかし、伝送路P1が切り離されているために、CM300aとDE200との間の伝送路には冗長性がないものとする。
【0131】
このような状態で、CM300aからDE200のHDD230aにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、CM300aの加点処理部351(図10参照)は、アクセスに用いた伝送路P0上のSASエクスパンダに対応する、デバイス管理テーブル310の「エラー点数」を加点しない。これにより、DE200へのアクセスを継続できるようになる。
【0132】
しかしながら、仮にこのとき、アクセス先のHDD230aに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、伝送路P0上のSASエクスパンダの「エラー点数」は増加せず、HDD230aの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因がHDD230aではなく伝送路P0上のSASエクスパンダにあった場合、本来切り離すべき伝送路P0が切り離されずに、故障が発生していないHDD230aが切り離されてしまうという問題が生じる。
【0133】
このように、HDD230aが誤って切り離される事態を発生しにくくするために、CM300aの加点処理部351は、副判定部354(図10参照)による判定結果に基づいて、アクセス先のHDD230aの「エラー点数」に加点するか否かを決定する。副判定部354は、ディスクビットマップ330(図9,図10参照)における伝送路P0に対応するビット群を参照する。
【0134】
ここで、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するビットがすべて「0」である場合、DE200内のHDDのうちHDD230aへのアクセス時にのみリカバードエラーが発生していたことになる。この場合、異常発生箇所は伝送路P0上のSASエクスパンダではなくHDD230aである可能性が高い。そこで、副判定部354は、図15の右下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するすべてのビットが「0」である場合には、HDD230aで異常が発生したと判定する。この場合、加点処理部351は、HDD230aに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
【0135】
一方、副判定部354は、図15の左下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合には、伝送路P0上のいずれかのSASエクスパンダにおいて異常が発生したと判定する。この場合、加点処理部351は、「エラー点数」の加点を行わない。
【0136】
以上のように、副判定部354による判定結果を基に、アクセス先のHDDの「エラー点数」に加点するか否かを決定することにより、異常発生箇所がアクセス先のHDDであるか否かを正確に判定できる。その結果、本来切り離すべき伝送路が切り離されずに、故障が発生していないHDDが切り離されるという事態が発生しにくくなる。
【0137】
次に、上記のケース1〜6を含む判定処理手順について、フローチャートを用いて説明する。図16,図17は、CMにおけるエラー発生時の処理手順の例を示すフローチャートである。
【0138】
[ステップS11]CM300aのアクセス制御部341が、ホスト装置110からの要求に応じて、DE200内のいずれかのHDDに対してアクセスしたときに、エラーが発生した場合、ステップS12以降の処理が実行される。
【0139】
[ステップS12]アクセス制御部341は、ステップS11と同様のアクセス処理をリトライする。
[ステップS13]ステップS12でのリトライにより再度エラーが発生した場合(すなわち、再現性のあるエラーが発生した場合。S13:No)、ステップS14の処理が実行される。一方、ステップS12でアクセスに成功した場合(すなわち、ステップS11で発生したエラーがリカバードエラーであった場合。S13:Yes)、ステップS19の処理が実行される。
【0140】
[ステップS14]CM300aの加点処理部351は、異常発生箇所が、ステップS11,S12でのアクセス先のHDDであるかを判定する。加点処理部351は、例えば、ステップS11またはステップS12でアクセス制御部341がアクセス先のHDDから受信したセンス情報を基に、異常発生箇所がアクセス先のHDDであるかを判定する。加点処理部351は、異常発生箇所がHDDであると判定した場合(S14:Yes)、ステップS15の処理を実行する一方、異常発生箇所がHDDでないと判定した場合(S14:No)、ステップS16の処理を実行する。
【0141】
[ステップS15]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
[ステップS16]加点処理部351は、異常発生箇所が、ステップS11,S12でのアクセスに用いた伝送路上のデバイスであるかを判定する。加点処理部351は、例えば、ステップS11またはステップS12で、アクセス制御部341が伝送路上のSASエクスパンダからセンス情報を受信した場合、あるいは、アクセス制御部341によるアクセスに対して一定時間以内に応答がなかった場合に、異常発生箇所が伝送路上のデバイスであると判定する。加点処理部351は、異常発生箇所が伝送路上のデバイスであると判定した場合(S16:Yes)、ステップS17の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合(S16:No)、ステップS18の処理を実行する。
【0142】
[ステップS17]加点処理部351は、ステップS11,S12でのアクセスに用いた伝送路上のSASエクスパンダのうち、異常が発生したSASエクスパンダについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0143】
なお、加点処理部351は、例えば、ステップS11またはステップS12で、アクセス制御部341が伝送路上のSASエクスパンダからセンス情報を受信した場合、そのセンス情報の送信元のSASエクスパンダを異常発生箇所と判定する。また、加点処理部351は、ステップS11またはステップS12でのアクセス制御部341によるアクセスに対して一定時間以内に応答がなかった場合には、使用した伝送路上のSASエクスパンダのうち、CM300aのIOC305に最も近いSASエクスパンダを異常発生箇所と判定する。
【0144】
[ステップS18]加点処理部351は、アクセス先のHDDと、アクセスに使用した伝送路上のSASエクスパンダのそれぞれについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0145】
[ステップS19]リカバードエラーが発生した場合(S13:Yes)、加点処理部351は、ステップS14と同様の処理手順で、異常発生箇所がアクセス先のHDDであるかを判定する。加点処理部351は、異常発生箇所がHDDであると判定した場合(S19:Yes)、ステップS20の処理を実行する一方、異常発生箇所がHDDでないと判定した場合(S19:No)、ステップS22の処理を実行する。
【0146】
[ステップS20]CM300aのデータ冗長性判定部352は、RAID管理テーブル320から、ステップS11,S12でのアクセス先が属するRAIDグループに対応付けられた、各HDDについての「ステータス」を参照する。データ冗長性判定部352は、RAIDグループに対応付けられたすべての「ステータス」が「1」である場合、アクセス対象のデータに冗長性があると判定する。一方、データ冗長性判定部352は、RAIDグループに対応付けられた「ステータス」のうち1つでも「0」である場合には、アクセス対象のデータに冗長性がないと判定する。なお、RAID管理テーブル320には、例えば、切り離し制御部343によって、RAIDグループごとにデータに冗長性があるか否かを示すフラグ情報が登録されてもよい。
【0147】
加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S20:Yes)、ステップS21の処理を実行する。一方、加点処理部351は、データに冗長性がない場合には(S20:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0148】
[ステップS21]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
[ステップS22]加点処理部351は、ステップS16と同様の処理手順で、異常発生箇所が伝送路上のデバイスであるかを判定する。加点処理部351は、異常発生箇所が伝送路上のデバイスであると判定した場合(S22:Yes)、ステップS23の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合(S22:No)、ステップS25の処理を実行する。
【0149】
[ステップS23]CM300aの伝送路冗長性判定部353は、デバイス管理テーブル310において伝送路P0,P1のそれぞれに属するデバイスに対応付けられた「ステータス」を参照する。伝送路冗長性判定部353は、伝送路P0,P1のそれぞれに属するデバイスのうち1つでも、「ステータス」が「0」であるデバイスがある場合に、伝送路に冗長性がないと判定する。なお、デバイス管理テーブル310には、例えば、切り離し制御部343によって、伝送路に冗長性があるか否かを示すフラグ情報が登録されてもよい。
【0150】
加点処理部351は、伝送路冗長性判定部353による判定結果に基づき、伝送路に冗長性がある場合には(S23:Yes)、ステップS24の処理を実行する。一方、加点処理部351は、伝送路に冗長性がない場合には(S23:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0151】
[ステップS24]加点処理部351は、ステップS17と同様の処理手順で、異常が発生したSASエクスパンダについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0152】
[ステップS25]リカバードエラーが発生し(S13:Yes)、異常発生箇所が特定できない場合(S19:No,S22:No)、加点処理部351は、ディスクビットマップ330のビットのうち、アクセス先のHDDとアクセス時に使用した伝送路とに対応するビットに「1」を設定する。
【0153】
なお、加点処理部351は、例えば、ディスクビットマップ330のビットに「1」を設定したとき、設定したビットを他方のCM300bに通知して、CM300aが保持するディスクビットマップ330とCM300bが保持するディスクビットマップ330とを同期させるようにしてもよい。
【0154】
また、加点処理部351は、ディスクビットマップ330のビットに「1」を設定した後、そのビットの値を一定時間後に「0」に戻してもよい。これにより、副判定部354による異常発生箇所の判定処理に対して、判定時に発生したエラーとは関連性の低い、極端に前に発生したエラーの影響が及ぶことが防止され、副判定部354の判定精度を高めることができる。
【0155】
[ステップS26]CM300aの伝送路冗長性判定部353は、ステップS23と同様の処理手順で、デバイス管理テーブル310に基づき、伝送路に冗長性があるかを判定する。加点処理部351は、伝送路冗長性判定部353による判定結果に基づき、伝送路に冗長性がある場合には(S26:Yes)、ステップS27の処理を実行する一方、伝送路に冗長性がない場合には(S26:No)、ステップS31の処理を実行する。
【0156】
[ステップS27]CM300aのデータ冗長性判定部352は、ステップS20と同様の処理手順で、RAID管理テーブル320に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S27:Yes)、ステップS28の処理を実行する一方、データに冗長性がない場合には(S27:No)、ステップS29の処理を実行する。
【0157】
[ステップS28]加点処理部351は、デバイス管理テーブル310において、ステップS11,S12でのアクセス先のHDDと、ステップS11,S12でのアクセスで使用した伝送路上のすべてのSASエクスパンダとに対応する「エラー点数」に加点する。
【0158】
[ステップS29]加点処理部351は、副判定部354に対して異常発生箇所の判定処理を依頼する。副判定部354は、ディスクビットマップ330のビットのうち、ステップS11,S12で使用した伝送路に対応するビット群を参照する。副判定部354は、参照したビット群における複数のビットが「1」である場合、ステップS11,S12で使用した伝送路上のデバイスにおいて異常が発生したと判定する。一方、副判定部354は、参照したビット群において「1」が設定されたビットが1つのみである場合、ステップS11,S12でのアクセス先のHDDで異常が発生したと判定する。
【0159】
加点処理部351は、副判定部354により、伝送路上のデバイスで異常が発生したと判定された場合(S29:Yes)、ステップS30の処理を実行する。一方、加点処理部351は、副判定部354により、アクセス先のHDDで異常が発生したと判定された場合(S29:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0160】
[ステップS30]加点処理部351は、デバイス管理テーブル310において、ステップS11,S12でのアクセスで使用した伝送路上のすべてのSASエクスパンダと対応する「エラー点数」に加点する。
【0161】
[ステップS31]データ冗長性判定部352は、ステップS20と同様の処理手順で、RAID管理テーブル320に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S31:Yes)、ステップS32の処理を実行する。一方、加点処理部351は、データに冗長性がない場合には(S31:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0162】
[ステップS32]加点処理部351は、副判定部354に対して異常発生箇所の判定処理を依頼する。副判定部354は、ステップS30と同様の処理手順で、異常発生箇所がアクセス先のHDDであるか、あるいはアクセスで使用した伝送路上のデバイスであるかを判定する。
【0163】
加点処理部351は、副判定部354により、アクセス先のHDDで異常が発生したと判定された場合(S32:No)、ステップS33の処理を実行する。一方、加点処理部351は、副判定部354により、伝送路上のデバイスで異常が発生したと判定された場合(S32:Yes)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0164】
[ステップS33]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
なお、上記の図16,図17の処理において、CM300aの加点処理部351は、「エラー点数」の加点を行ったとき、加点したデバイスを識別する情報を他方のCM300bにも通知して、CM300aが保持するデバイス管理テーブル310とCM300bが保持するデバイス管理テーブル310とを同期させるようにしてもよい。
【0165】
次に、図18は、切り離し制御部の処理手順の例を示す図である。
[ステップS51]CM300aの切り離し制御部343は、デバイス管理テーブル310の「エラー点数」に対して加点が行われたことを検知すると、ステップS52以降の処理を実行する。なお、切り離し制御部343は、例えば、加点処理部351から、「エラー点数」を更新したことの通知を受けたときに、ステップS52以降の処理を実行するようにしてもよい。
【0166】
[ステップS52]切り離し制御部343は、ステップS51で加点された「エラー点数」の値が、所定のしきい値に達したかを判定する。「エラー点数」の値がしきい値に達していた場合(S52:Yes)、切り離し制御部343は、ステップS53の処理を実行する。一方、「エラー点数」の値がしきい値に達していない場合(S52:No)、切り離し制御部343は処理を終了する。
【0167】
[ステップS53]切り離し制御部343は、デバイス管理テーブル310内の「ステータス」のうち、ステップS51で「エラー点数」が加点されたデバイスに対応する「ステータス」を、「1」から「0」に更新する。
【0168】
なお、切り離し制御部343は、例えば、デバイス管理テーブル310内の「ステータス」を更新したとき、更新した「ステータス」に対応するデバイスの識別情報を他方のCM300bに通知することで、CM300aが保持するデバイス管理テーブル310とCM300bが保持するデバイス管理テーブル310とを同期させてもよい。
【0169】
[ステップS54]このステップS54は、ステップS53においてHDDに対応付けられた「ステータス」が更新された場合に実行される。切り離し制御部343は、RAID管理テーブル320において「使用ディスク」に登録されたHDDのうち、ステップS53で「ステータス」を更新したHDDに対応付けられた「ステータス」を、「1」から「0」に更新する。
【0170】
以上の図18の処理により、「エラー点数」が一定値に達したデバイスが、CM300aから切り離されて、使用不能の状態になる。
以上説明した第3の実施の形態によれば、リカバードエラーが発生した場合に、できる限りシステムの運用を継続できる。これとともに、非疑箇所不明のリカバードエラーが発生したときの異常発生箇所の判定精度が向上し、故障していないデバイスが誤って切り離される事態の発生確率を低減できる。
【0171】
なお、上記の各実施の形態における制御装置やCMの処理機能は、コンピュータによって実現することができる。その場合、制御装置はCMが有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0172】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0173】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0174】
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【0175】
(付記2) 前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記1記載のストレージシステム。
【0176】
(付記3) 前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記2記載のストレージシステム。
【0177】
(付記4) 前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、前記データ冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記3記載のストレージシステム。
【0178】
(付記5) 前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定された場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記4記載のストレージシステム。
【0179】
(付記6) 前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しないことを特徴とする付記5記載のストレージシステム。
【0180】
(付記7) 複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【0181】
(付記8) 前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記7記載のストレージシステム。
【0182】
(付記9) 前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性があると判定された場合に、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置の両方に加点することを特徴とする付記8記載のストレージシステム。
【0183】
(付記10) 前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセスに使用した共通伝送路であると特定された場合、前記エラー点数表においてアクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセスに使用した共通伝送路に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス先の記憶装置のそれぞれに加点するかを、前記伝送路冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記9記載のストレージシステム。
【0184】
(付記11) 複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置において、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【0185】
(付記12) 複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置において、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【0186】
(付記13) 複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
アクセス対象のデータに冗長性がないと判定した場合、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて前記共通伝送路が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【0187】
(付記14) 前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、アクセス対象のデータに冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生したと判定した場合には、前記エラー点数表において前記共通伝送路に加点し、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記13記載の異常発生箇所判定方法。
【0188】
(付記15) 前記制御装置は、前記エラーが発生し、アクセス対象のデータに冗長性があると判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記14記載の異常発生箇所判定方法。
【0189】
(付記16) 前記制御装置は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、アクセス対象のデータに冗長性があるかの判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、アクセス対象のデータに冗長性があるかの判定結果と、前記過去のアクセス時に前記エラーが発生したかの判定結果とに基づいて決定する、
ことを特徴とする付記15記載の異常発生箇所判定方法。
【0190】
(付記17) 前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、アクセス対象のデータに冗長性がないと判定し、かつ、前記複数の記憶装置と接続する共通伝送路に冗長性がないと判定した場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記16記載の異常発生箇所判定方法。
【0191】
(付記18) 前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、共通伝送路に冗長性がないと判定したとき、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していない場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していた場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記17記載の異常発生箇所判定方法。
【0192】
(付記19) 複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所特定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
共通伝送路に冗長性がないと判定した場合、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【0193】
(付記20) 前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、共通伝送路に冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記過去のアクセス時に前記エラーが発生していたと判定した場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記19記載の異常発生箇所判定方法。
【符号の説明】
【0194】
1a,1b ストレージシステム
10a,10b 制御装置
11 データ冗長性判定部
12a,12b エラー履歴判定部
13a,13b 異常発生箇所判定部
14a,14b 切り離し制御部
15a,15b エラー履歴テーブル
16a,16b エラー点数表
17 伝送路冗長性判定部
21,22 記憶装置
30〜32 共通伝送路
【技術分野】
【0001】
本発明は、ストレージシステムおよび異常発生箇所判定方法に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)などの記憶装置に接続したストレージ制御装置としては、記憶装置へのアクセス時にエラーが発生するたびに、エラー点数表に点数を加算し、エラー点数表の点数が一定値に達すると、記憶装置を使用しないように切り離すものがある。例えば、ディスクアレイ装置へのアクセス処理のエラーが発生したとき、エラー点数表内の異常が発生したHDDに対応する欄に点数を加算するとともに、別のエラー表に対してそのHDDでの異常発生を示す情報を格納する機能を備え、エラー発生時に、エラー表に格納された情報に基づいてエラー点数表に加算する点数を決定するようにしたストレージ制御装置がある。また、エラー点数表に対して、アクセス対象の記憶装置だけでなく、記憶装置との間の伝送路についても異常の発生に応じた点数を加点するようにしたストレージ制御装置もある。
【0003】
一方、記憶装置などの周辺装置には、情報処理装置からアクセスを受けたときにエラーが発生した場合、そのエラーが周辺装置または接続経路のどちらに起因するかを判定する機能を備えるものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−205316号公報
【特許文献2】特開2000−132413号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ストレージ制御装置から記憶装置へのアクセス時に発生するエラーには、1回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生しないような、再現性のないエラーがある。このような再現性のないエラーが発生した場合には、仮にアクセス先の記憶装置またはアクセスに使用した伝送路にエラーの発生原因があったとしても、当面は記憶装置へのアクセス処理を継続できることが多い。
【0006】
例えば、データが異なる記憶装置に冗長化されて記録されるようなストレージシステムでは、一部の記憶装置の故障によりアクセス対象のデータに冗長性がなくなった状態のまま、故障していない記憶装置を用いてシステムを継続して運用したい場合がある。アクセス対象のデータに冗長性がない状態で、再現性のないエラーが発生した場合には、アクセス先の記憶装置を切り離さないままで当面は運用を継続できる可能性が高い。
【0007】
また、例えば、記憶装置に対して接続する伝送路が冗長化されているようなストレージシステムでは、一部の伝送路の故障により伝送路に冗長性がなくなった状態のまま、故障していない伝送路を用いてシステムを継続して運用したい場合もある。伝送路に冗長性がない状態で、再現性のないエラーが発生した場合には、アクセスに使用した伝送路を切り離さないままで当面は運用を継続できる可能性が高い。
【0008】
しかしながら、エラーが発生したにもかかわらずシステムの運用を継続するということは、異常発生箇所の判定基準を緩めることにもなり、その結果、異常発生箇所の判定精度が悪化する可能性があるという問題があった。
【0009】
本発明はこのような課題に鑑みてなされたものであり、システム運用の継続性を高めつつ、異常発生箇所の判定精度を向上させたストレージシステムおよび異常発生箇所判定方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように複数の記憶装置を管理する制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、データ冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。データ冗長性判定部は、上記の複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、共通伝送路が異常発生箇所かを判定する。
【0011】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
さらに、上記目的を達成するために、複数の記憶装置と、複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムが提供される。このストレージシステムにおいて、制御装置は、伝送路冗長性判定部と、エラー履歴判定部と、異常発生箇所判定部とを有する。伝送路冗長性判定部は、上記の複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、上記の複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する。エラー履歴判定部は、エラーが発生したとき、上記の複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時にエラーが発生したかを判定する。異常発生箇所判定部は、データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【0012】
また、上記目的を達成するために、上記のストレージシステムにおける制御装置と同様の処理を実行する異常発生箇所判定方法が提供される。
【発明の効果】
【0013】
開示のストレージシステムおよび異常発生箇所判定方法によれば、システム運用の継続性を高めつつ、異常発生箇所の判定精度が向上する。
【図面の簡単な説明】
【0014】
【図1】第1の実施の形態に係るストレージシステムの構成例を示す図である。
【図2】第2の実施の形態に係るストレージシステムの構成例を示す図である。
【図3】コンピュータのハードウェア構成例を示す図である。
【図4】第3の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【図5】DEのハードウェア構成例を示す図である。
【図6】CMのハードウェア構成例を示す図である。
【図7】デバイス管理テーブルに登録される情報の例を示す図である。
【図8】RAID管理テーブルに登録される情報の例を示す図である。
【図9】ディスクビットマップに登録される情報の例を示す図である。
【図10】CMが備える処理機能を示すブロック図である。
【図11】ケース3の状態の例を示す図である。
【図12】ケース4の状態の例を示す図である。
【図13】ケース5の状態の例を示す図である。
【図14】ケース6の状態の例を示す図である。
【図15】ケース6の状態の別の例を示す図である。
【図16】CMにおけるエラー発生時の処理手順の例を示すフローチャート(その1)である。
【図17】CMにおけるエラー発生時の処理手順の例を示すフローチャート(その2)である。
【図18】切り離し制御部の処理手順の例を示す図である。
【発明を実施するための形態】
【0015】
以下、実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。
【0016】
図1に示すストレージシステム1aは、制御装置10aと、複数の記憶装置とを備える。図1では例として2つの記憶装置21,22を示しているが、記憶装置の数は3つ以上であってもよい。制御装置10aは、共通伝送路30を通じて記憶装置21,22に接続し、記憶装置21,22に対して共通伝送路30を介してアクセス可能になっている。共通伝送路30は、制御装置10aと記憶装置21,22とを接続する伝送路の一部を構成するものであり、例えば、制御装置10aと記憶装置21,22との間で送受信されるデータを中継する中継装置などを含む。
【0017】
また、制御装置10aは、記憶装置21,22に対してデータを記録する際、そのデータが異なる記憶装置に冗長化されるように制御する。例えば、制御装置10aは、記憶装置21にデータを記録する際、そのデータと同一のデータを記憶装置22にも記録する。また、例えば、記憶装置が3つ以上ある場合には、制御装置10aは、RAID(Redundant Arrays of Inexpensive Disks)4,5,6のいずれかに従い、記録データと、その記録データに基づくパリティとを、それぞれ異なる記憶装置に記録してもよい。
【0018】
制御装置10aは、データ冗長性判定部11、エラー履歴判定部12aおよび異常発生箇所判定部13aを備える。また、制御装置10aは、切り離し制御部14aをさらに備えていてもよい。なお、データ冗長性判定部11、エラー履歴判定部12a、異常発生箇所判定部13aおよび切り離し制御部14aの処理は、例えば、制御装置10aが備えるCPU(Central Processing Unit)が所定のプログラムを実行することで実現される。
【0019】
データ冗長性判定部11は、記憶装置21,22のいずれかにアクセスしたときに、エラーが発生した場合、アクセス対象のデータに冗長性があるかを判定する。ここで言うエラーとは、例えば、「リカバードエラー」である。「リカバードエラー」とは、例えば、1回目のアクセス処理ではエラーが発生するものの、アクセス処理をリトライするとエラーが発生せずにアクセス処理が成功するような、再現性のないエラーを指す。また、「アクセス対象のデータに冗長性がある」とは、アクセス対象のデータ自体が、あるいは、アクセス対象のデータとこのデータの復元に用いられるデータ(例えばパリティ)とが、それぞれ異なる記憶装置に格納されている状態を言う。換言すると、「アクセス対象のデータに冗長性がない」とは、アクセス対象のデータまたはこのデータの復元に用いられるデータが記憶装置の故障によって失われると、アクセス対象の記録データを復元できない状態を言う。
【0020】
エラー履歴判定部12aは、リカバードエラーが発生したとき、記憶装置21,22のうちアクセス先以外の記憶装置に対する過去のアクセス時に、リカバードエラーが発生したかを判定する。例えば、エラー履歴判定部12aは、エラー履歴テーブル15aを参照して、記憶装置21,22のそれぞれに対する過去のアクセス時にリカバードエラーが発生していたかを判定する。
【0021】
エラー履歴テーブル15aには、例えば、記憶装置ごとに個別のフラグが登録される。例えば、図1中のエラー履歴テーブル15aにおいて、記憶装置#1,#2はそれぞれ記憶装置21,22に対応し、記憶装置#1,#2のそれぞれに対して、フラグの値として「0」,「1」が登録されている。そして、リカバードエラーが発生すると、リカバードエラーの発生時におけるアクセス先の記憶装置に対応する、エラー履歴テーブル15a内のフラグが、初期値「0」から、リカバードエラーが発生したことを示す「1」に更新される。なお、エラー履歴判定部12aは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報が登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【0022】
異常発生箇所判定部13aは、リカバードエラーが発生したとき、データ冗長性判定部11およびエラー履歴判定部12aの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部13aは、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置が異常発生箇所でないと判定するとともに、エラー履歴判定部12aによる判定結果に基づいて、共通伝送路30が異常発生箇所かを判定する。
【0023】
なお、異常発生箇所判定部13aは、例えば、異常が発生したと判定した箇所を、将来制御装置10aから切り離す候補に設定してもよい。ここで、記憶装置または伝送路を「切り離す」とは、記憶装置または伝送路を制御装置10aが使用することを不許可にすることを言う。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表16aに点数を加算する処理がある。
【0024】
ここで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、アクセス先の記憶装置で異常が発生したと判定して、その記憶装置を制御装置10aから切り離してしまうと、アクセス先のデータは復元不能の状態になってしまう。この状態では、通常、ストレージシステム1a全体の運用を停止する必要が生じる。ところが、リカバードエラーは、アクセス処理のリトライによって救済されるものであるので、仮にアクセス先の記憶装置の不具合が原因でリカバードエラーが発生したとしても、当面はその記憶装置を使用してそのまま運用を続行できる。冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部13aが、アクセス先の記憶装置が異常発生箇所でないと判定することで、ストレージシステム1aを継続して運用できるようになる。
【0025】
一方、エラー履歴判定部12aの処理によれば、アクセス先以外の記憶装置に対する過去のアクセス時にリカバードエラーが発生していた場合には、異常発生箇所が現在のアクセス先の記憶装置ではなく共通伝送路30である可能性が高いと推定できる。そこで、冗長性のないデータに対するアクセス時にリカバードエラーが発生した場合に、異常発生箇所判定部13aは、エラー履歴判定部12aの判定結果を参照することで、共通伝送路30が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、共通伝送路30が異常発生箇所であると誤って判定される可能性が低くなり、共通伝送路30が不必要に制御装置10aから切り離されないようにすることができる。
【0026】
すなわち、異常発生箇所判定部13aによる上記判定処理により、冗長性のないデータが格納された記憶装置の使用をできるだけ継続できるようになる。これとともに、異常発生箇所が共通伝送路30であると誤って判定されることによって、共通伝送路30が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【0027】
なお、異常発生箇所判定部13aは、例えば、異常が発生した箇所についての情報をエラー点数表16aに登録してもよい。エラー点数表16aには、記憶装置21,22のそれぞれおよび共通伝送路30について、エラーの発生に応じた点数が個別に保持される。また、エラー点数表16aは、切り離し制御部14aによって参照される。切り離し制御部14aは、エラー点数表16aにおいて点数が所定のしきい値に達した記憶装置または共通伝送路30を、故障が発生したと判定して切り離す。
【0028】
異常発生箇所判定部13aは、例えば、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部12aにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表16aにおいてアクセス対象の記憶装置に加点せずに共通伝送路30に加点する。一方、異常発生箇所判定部13aは、データ冗長性判定部11によってアクセス対象のデータに冗長性がないと判定されたとき、エラー履歴判定部12aにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表16aにおいてアクセス対象の記憶装置および共通伝送路30のいずれにも加点しない。
【0029】
このような異常発生箇所判定部13aの処理により、リカバードエラーの原因がアクセス先の記憶装置にあるにもかかわらず、エラー点数表16aにおいて、アクセス先の記憶装置の点数が増加せずに共通伝送路30の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない共通伝送路30が誤って切り離されるという事態の発生確率を低減することができる。
【0030】
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。なお、図2では、図1と同様の構成要素には同じ符号を付して示す。
【0031】
図2に示すストレージシステム1bは、制御装置10bと、複数の記憶装置とを備える。図2では例として2つの記憶装置21,22を示しているが、記憶装置の数は3つ以上であってもよい。制御装置10bは、記憶装置21,22に対して、複数の共通伝送路を通じてアクセス可能になっている。図2では例として、2つの共通伝送路31,32を示しているが、共通伝送路は3つ以上あってもよい。
【0032】
制御装置10bは、伝送路冗長性判定部17、エラー履歴判定部12bおよび異常発生箇所判定部13bを備える。また、伝送路冗長性判定部17、制御装置10bは、切り離し制御部14bをさらに備えていてもよい。なお、エラー履歴判定部12b、異常発生箇所判定部13bおよび切り離し制御部14bの処理は、例えば、制御装置10bが備えるCPUが所定のプログラムを実行することで実現される。
【0033】
伝送路冗長性判定部17は、記憶装置21,22のいずれかにアクセスしたときに、エラーが発生した場合、記憶装置21,22との間の共通伝送路に冗長性があるかを判定する。ここで言う「エラー」とは、例えば、前述した「リカバードエラー」である。また、「共通伝送路に冗長性がある」とは、制御装置10bと記憶装置21,22との間が複数の共通伝送路を通じて接続されていることを指す。図2の例では、共通伝送路31,32のうちの一方が制御装置10bから切り離されている場合、共通伝送路に冗長性がない状態となる。
【0034】
エラー履歴判定部12bは、リカバードエラーが発生したとき、記憶装置21,22のうちアクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生したかを判定する。エラー履歴判定部12bは、例えば、エラー履歴テーブル15bを参照して、記憶装置21,22に対する同じ共通伝送路を通じた過去のアクセス時にリカバードエラーが発生していたかを判定する。
【0035】
エラー履歴テーブル15bには、図1のエラー履歴テーブル15aと同様に、記憶装置ごとに、リカバードエラーが発生したかを示すフラグが登録される。ただし、エラー履歴テーブル15bは、記憶装置21,22との間の共通伝送路31,32ごとに個別に設けられる。リカバードエラーが発生すると、アクセスに使用した共通伝送路に対応するエラー履歴テーブル15bが選択される。そして、選択されたエラー履歴テーブル15b内のフラグが、初期値「0」から、リカバードエラーが発生したことを示す「1」に更新される。
【0036】
なお、エラー履歴判定部12bは、他の例として、リカバードエラー発生時のアクセス先記憶装置を示す情報と、リカバードエラー発生時に使用していた共通伝送路を示す情報とが登録された、リカバードエラーの履歴情報を基に、判定処理を行ってもよい。
【0037】
異常発生箇所判定部13bは、リカバードエラーが発生したとき、伝送路冗長性判定部17およびエラー履歴判定部12bの判定結果に基づいて、異常発生箇所を判定する。例えば、異常発生箇所判定部13bは、伝送路冗長性判定部17によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路が異常発生箇所でないと判定するとともに、エラー履歴判定部12bによる判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する。
【0038】
なお、異常発生箇所判定部13bは、例えば、図1の異常発生箇所判定部13aと同様に、異常が発生したと判定した箇所を、将来制御装置10bから切り離す候補に設定してもよい。異常が発生したと判定した箇所を切り離し候補に設定する処理の例としては、後述するエラー点数表16bに点数を加算する処理がある。
【0039】
ここで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、アクセスに使用した共通伝送路で異常が発生したと判定して、その共通伝送路を制御装置10bから切り離してしまうと、記憶装置21,22のいずれにもアクセスできない状態になり、ストレージシステム1b全体の運用を継続できない。ところが、前述のように、リカバードエラーはアクセス処理のリトライによって救済されるものであるので、仮にアクセスに使用した共通伝送路の不具合が原因でリカバードエラーが発生したとしても、当面はその共通伝送路を使用してそのまま運用を続行できる。共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部13bが、アクセスに使用した共通伝送路が異常発生箇所でないと判定することで、ストレージシステム1bを継続して運用できるようになる。
【0040】
一方、エラー履歴判定部12bの処理によれば、アクセス先以外の記憶装置に対する、同じ共通伝送路を通じた過去のアクセス時において、リカバードエラーが発生していない場合には、異常発生箇所がアクセスに使用した共通伝送路ではなくアクセス先の記憶装置である可能性が高いと推定できる。そこで、共通伝送路に冗長性がない状態でリカバードエラーが発生した場合に、異常発生箇所判定部13bは、エラー履歴判定部12bの判定結果を参照することで、アクセスに使用した共通伝送路が異常発生箇所であるかを正確に判定できるようになる。これにより、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、アクセス先の記憶装置が異常発生箇所であると誤って判定される可能性が低くなり、アクセス先の記憶装置が不必要に制御装置10bから切り離されないようにすることができる。
【0041】
すなわち、異常発生箇所判定部13bによる上記判定処理により、冗長性がない状態の共通伝送路の使用をできるだけ継続できるようになる。これとともに、異常発生箇所がアクセス先の記憶装置であると誤って判定されることによって、アクセス先の記憶装置が不必要に切り離される、という事態の発生確率を低減することができ、異常発生箇所の判定精度が向上する。
【0042】
なお、異常発生箇所判定部13bは、例えば、異常が発生した箇所についての情報をエラー点数表16bに登録してもよい。エラー点数表16bには、記憶装置21,22のそれぞれおよび共通伝送路31,32のそれぞれについて、エラーの発生に応じた点数が個別に保持される。また、エラー点数表16bは、切り離し制御部14bによって参照される。切り離し制御部14bは、エラー点数表16bにおいて点数が所定のしきい値に達した記憶装置または共通伝送路を、故障が発生したと判定して、制御装置10bから切り離す。
【0043】
異常発生箇所判定部13bは、例えば、伝送路冗長性判定部17によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部12bにより過去にリカバードエラーが発生していないと判定された場合には、エラー点数表16bにおいてアクセスに使用した共通伝送路に加点せずにアクセス対象の記憶装置に加点する。一方、異常発生箇所判定部13bは、伝送路冗長性判定部17によってアクセスに使用した共通伝送路に冗長性がないと判定されたとき、エラー履歴判定部12bにより過去にリカバードエラーが発生したと判定された場合には、エラー点数表16bにおいてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない。
【0044】
このような異常発生箇所判定部13bの処理により、リカバードエラーの原因がアクセスに使用した共通伝送路にあるにもかかわらず、エラー点数表16bにおいて、アクセスに使用した共通伝送路の点数が増加せずにアクセス先の記憶装置の点数が増加していくという事態が、発生しにくくなる。その結果、故障の発生していない記憶装置が誤って切り離されるという事態の発生確率を低減することができる。
【0045】
なお、図1に示した制御装置10aおよび図2に示した制御装置10bは、例えば、次の図3に示すようなコンピュータとして実現できる。図3は、コンピュータのハードウェア構成例を示す図である。
【0046】
図3に示すコンピュータ50は、CPU51によって装置全体が制御されている。CPU51には、バス58を介して、RAM(Random Access Memory)52および複数の周辺機器が接続されている。
【0047】
RAM52は、コンピュータ50の主記憶装置として使用される。RAM52には、CPU51に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM52には、CPU51による処理に必要な各種データが格納される。
【0048】
バス58に接続されている周辺機器としては、HDD53、グラフィックI/F(インタフェース)54、入力I/F55、光学ドライブ装置56および通信I/F57がある。
【0049】
HDD53は、コンピュータ50の二次記憶装置として使用される。HDD53には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0050】
グラフィックI/F54には、モニタ54aが接続されている。グラフィックI/F54は、CPU51からの命令に従って、前述した案内画像などの各種の画像をモニタ54aに表示させる。
【0051】
入力I/F55には、例えば、キーボード55aおよびマウス55bが接続されている。入力I/F55は、キーボード55aやマウス55bからの出力信号をCPU51に送信する。なお、マウス55bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0052】
光学ドライブ装置56は、レーザ光などを利用して、光ディスク56aに記録されたデータの読み取りを行う。光ディスク56aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク56aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。
【0053】
通信I/F57は、ネットワーク7aに接続された他の装置との間でデータを送受信する。通信I/F57は、例えば、図1,図2に示した記憶装置21,22と接続する。なお、図1の共通伝送路30の一部や、図2の共通伝送路31,32のそれぞれの一部を構成する装置としては、例えば、ネットワーク7a上のハブなどの中継装置を適用可能である。
【0054】
〔第3の実施の形態〕
図4は、第3の実施の形態に係るストレージシステムのシステム構成例を示す図である。
【0055】
図4に示すストレージシステム100は、DE(Drive Enclosure)200とCM300a,300b(Controller Module)とを備える。また、ストレージシステム100には、ホスト装置110が接続されている。
【0056】
DE200は、CM300a,300bからのアクセス制御対象となる複数の記憶装置を備える。DE200は、記憶装置としてHDDを備える。なお、DE200は、ストレージシステム100内の複数設けられていてもよい。また、DE200は、CM300a,300bとは別の筐体内に設けられていてもよい。また、DE200に設けられる記憶装置としては、例えば、SSDなどの他の種類の不揮発性記憶装置が使用されてもよい。
【0057】
CM300a,300bは、DE200内の複数のHDDによって実現される物理記憶領域をRAID(Redundant Arrays of Inexpensive Disks)によって管理し、この物理記憶領域に対するアクセスを制御する。また、CM300a,300bは、DE200内の複数のHDDによって実現される物理記憶領域に論理ボリュームを設定し、ホスト装置110から論理ボリュームに対するアクセス要求を受け付けて、そのアクセス要求に応じてDE200内のHDDにアクセスする。
【0058】
なお、CMは、ストレージシステム100内に3つ以上設けられていてもよい。CMが複数設けられることで、DE200に対するアクセス制御系統が冗長化され、アクセス制御処理の信頼性が向上する。
【0059】
ホスト装置110は、ユーザの操作に応じて、CM300a,300bに対して、CM300a,300bが提供する論理ボリュームへのアクセスを要求する。なお、ホスト装置110とCM300a,300bとは、例えば、FC(Fibre Channel)ケーブルを介して接続されている。
【0060】
図5は、DEのハードウェア構成例を示す図である。DE200は、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)エクスパンダ210,220と、複数のHDD230a〜230fとを備える。
【0061】
SASエクスパンダ210は、CM300aとHDD230a〜230fとの間でデータを中継する。SASエクスパンダ220は、CM300bとHDD230a〜230fとの間でデータを中継する。
【0062】
SASエクスパンダ210,220は、データの中継処理を制御するコントローラ回路211,221をそれぞれ備える。SASエクスパンダ210のコントローラ回路211は、データ中継処理の制御機能の他、例えば、CM300aからHDDへのアクセス要求に対する応答として、CM300aに対してセンス情報を返信する機能も備える。センス情報とは、例えば、SCSI規格で規定されたSK(Sense Key)、ASC(Additional Sense Code)、ASCQ(Additional Sense Code Qualifier)からなる情報である。コントローラ回路211は、センス情報を返信することで、SASエクスパンダ210自身が原因となってエラーが発生したことをCM300aに通知することができる。また、SASエクスパンダ220のコントローラ回路221も同様に、データ中継処理の制御機能の他、CM300bからHDDへのアクセス要求に対する応答として、センス情報を返信する機能も備える。
【0063】
HDD230a〜230fは、SASインタフェース処理を実行するコントローラ回路231a〜231fをそれぞれ備える。コントローラ回路231a〜231fは、アクセス元(CM300aまたはCM300b)からの要求に応じた動作を正しく実行できなかった場合に、上記のセンス情報をアクセス元に返信する機能を備える。
【0064】
図6は、CMのハードウェア構成例を示す図である。なお、CM300a,300bは同様のハードウェア構成を有するので、以下の説明では、主にCM300aの構成についてのみ説明する。
【0065】
CM300aは、CPU301によって装置全体が制御されている。CPU301には、RAM302および複数の周辺機器が接続されている。RAM302は、CM300aの主記憶装置として使用され、CPU301に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【0066】
CPU301には、周辺機器の例として、フラッシュメモリ303、CA(Channel Adapter)304およびIOC(In/Out Controller)305が接続されている。フラッシュメモリ303は、例えば、図示しないPCH(Platform Controller Hub)を介してCPU301と接続される。また、CA304およびIOC305は、例えば、PCI(Peripheral Component Interconnect)スイッチ306を通じてCPU301と接続されている。
【0067】
フラッシュメモリ303は、CM300aの二次記憶装置として使用され、CPU301によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、HDDなどの他の種類の不揮発性記憶装置が使用されてもよい。
【0068】
CA304は、ホスト装置110とCM300aとの間でデータを送受信するインタフェース処理を実行する。
IOC305は、SASインタフェース処理を実行する回路である。CM300aのIOC305には、CM300aに設けられたSASエクスパンダ307と、CM300bに設けられたSASエクスパンダ307の両方に接続されている。CM300aのSASエクスパンダ307は、DE200のSASエクスパンダ210に接続されている。一方、CM300bのSASエクスパンダ307は、DE200のSASエクスパンダ220に接続されている。
【0069】
CM300aのIOC305は、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通じて、DE200内のHDDにアクセスできるとともに、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通じて、DE200内のHDDにアクセスすることもできる。すなわち、CM300aのIOC305とDE200の各HDDとの間の経路は、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る経路と、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る経路とに冗長化されている。このように、CM300aとDE200とを接続する伝送路が冗長化されることで、CM300aからDE200の各HDDへのアクセス処理の信頼性が向上する。
【0070】
また、CM300bでも同様に、CM300bのIOC305とDE200の各HDDとの間の伝送路は、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る経路(以下、「伝送路P0」と呼ぶ)と、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る経路(以下、「伝送路P1」と呼ぶ)とに冗長化されている。このように、CM300bとDE200とを接続する伝送路が冗長化されることで、CM300bからDE200の各HDDへのアクセス処理の信頼性が向上する。
【0071】
なお、CM300aのPCIスイッチ306は、他方のCM300bのPCIスイッチ306と接続されている。CM300aのCPU301と、CM300bのCPU301とは、CM300aのPCIスイッチ306とCM300bのPCIスイッチ306とを接続する通信経路を通じて、互いにデータを送受信できるようになっている。
【0072】
次に、CM300a,300bで実行される処理について説明する。なお、CM300a,300bはともに同じ処理を実行可能であるので、以下の説明では、代表してCM300aについてのみ説明する。
【0073】
まず、CM300aが保持する情報について説明する。CM300aのフラッシュメモリ303には、デバイス管理テーブル、RAID管理テーブルおよびディスクビットマップが格納される。
【0074】
図7は、デバイス管理テーブルに登録される情報の例を示す図である。
デバイス管理テーブル310は、DE200との間の伝送路上のデバイスおよびDE200内の各HDDについての状態を示す情報を保持するテーブルである。デバイス管理テーブル310には、デバイスを識別する「デバイス名」に対応付けて、「ステータス」および「エラー点数」が登録される。
【0075】
「デバイス名」に登録されるデバイスとしては、DE200との間の伝送路上のSASエクスパンダがある。例えば、図9中の「Backend EXP#0」、「DE EXP#0」、「Backend EXP#1」および「DE EXP#1」は、それぞれCM300aのSASエクスパンダ307、DE200のSASエクスパンダ210、CM300bのSASエクスパンダ307、および、DE200のSASエクスパンダ220を指す。
【0076】
前述したように、CM300aとDE200とは、CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220を通る伝送路P0と、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210を通る伝送路P1とによって接続されている。デバイス管理テーブル310では、伝送路上のSASエクスパンダの「デバイス名」が、伝送路P0と伝送路P1とに分類されて登録されている。
【0077】
また、「デバイス名」に登録されるデバイスとしては、DE200に設けられたHDDがある。例えば、図7中の「Disk#0」〜「Disk#5」は、それぞれDE200内のHDD230a〜230fを指す。
【0078】
「ステータス」は、対応するデバイスが使用可能な状態か否かを示すフラグ情報である。対応するデバイスが使用可能な状態の場合、「ステータス」は「1」とされ、対応するデバイスが使用不可能な状態の場合、「ステータス」は「0」とされる。CM300aは、「ステータス」の値が「1」から「0」に更新することで、この「ステータス」に対応するデバイスをCM300aから切り離す。
【0079】
「エラー点数」は、対応するデバイスにおいてエラーが発生した回数に応じて加算される点数である。「エラー点数」の初期値は「0」である。また、後述するように、CM300aは、「エラー点数」が所定のしきい値(例えば「255」)に達すると、この「エラー点数」に対応するデバイスをCM300aから切り離す。
【0080】
なお、CM300aとCM300bとは、例えば、それぞれ個別の情報が登録されたデバイス管理テーブル310を保持してもよい。あるいは、CM300aが保持するデバイス管理テーブル310と、CM300bが保持するデバイス管理テーブル310とが、同期されるようにしてもよい。
【0081】
図8は、RAID管理テーブルに登録される情報の例を示す図である。
RAID管理テーブル320は、RAIDに関する情報を保持するテーブルである。RAID管理テーブル320には、RAIDグループを識別する「RAIDグループ番号」に対応付けて、「RAIDレベル」、「使用ディスク」、「ステータス」および「論理ボリューム情報」が登録される。
【0082】
「RAIDレベル」には、RAIDグループに設定されたRAIDレベルが登録される。
「使用ディスク」には、DE200内のHDDのうち、RAIDグループで使用されるHDDを識別する情報が登録される。「使用ディスク」には、通常、1つのRAIDグループに対して複数のHDDが登録される。
【0083】
「ステータス」は、「使用ディスク」が示すHDDの状態を示すフラグである。「ステータス」に登録される値は、デバイス管理テーブル310において同じHDDに対応付けられた「ステータス」と同じになる。
【0084】
「論理ボリューム情報」には、RAIDグループに対して設定された論理ボリュームに関する情報が登録される。論理ボリュームに関する情報としては、例えば、設定された論理ボリュームの番号、論理ボリュームとして使用されるHDD上の物理領域の位置情報などがある。
【0085】
図9は、ディスクビットマップに登録される情報の例を示す図である。
ディスクビットマップ330は、CM300aからの過去のアクセス処理の際に、アクセスに対する応答を基に異常発生箇所を特定できないようなリカバードエラーが発生していたか否かを、アクセス先のHDDごと、かつ、アクセスに使用した伝送路ごとに保持する情報である。以下、アクセスに対する応答を基に異常発生箇所を特定できないエラーを、「非疑箇所不明のエラー」と呼ぶ。
【0086】
ディスクビットマップ330は、DE200内の各HDDと、前述の伝送路P0,P1のそれぞれとの組合せごとに、ビットを備える。ビットの値が「0」の場合、過去に非疑箇所不明のリカバードエラーが発生していないことを示し、ビットの値が「1」の場合、過去に非疑箇所不明のリカバードエラーが発生していたことを示す。例えば、図9において、「ディスク#0」および「伝送路P0」に対応するビットが「1」であれば、伝送路P0を通じて「ディスク#0」に対応するHDDにアクセスした際に、非疑箇所不明のリカバードエラーが発生していたことを示す。
【0087】
なお、CM300aは、ディスクビットマップ330上の各ビットについて、値を「0」から「1」に更新した後、一定時間が経過すると、値を自動的に「0」に戻してもよい。この場合、ディスクビットマップ330の各ビットは、過去の一定期間内に非疑箇所不明のリカバードエラーが発生したか否かを示すものとなる。
【0088】
なお、CM300aとCM300bとは、例えば、それぞれ個別の値が登録されたディスクビットマップ330を保持してもよい。あるいは、CM300aが保持するディスクビットマップ330と、CM300bが保持するディスクビットマップ330とが、同期されるようにしてもよい。
【0089】
次に、図10は、CMが備える処理機能を示すブロック図である。
CM300aは、アクセス制御部341、異常発生箇所判定部342および切り離し制御部343を備える。アクセス制御部341、異常発生箇所判定部342および切り離し制御部343の処理は、例えば、CM300aのCPU301が所定のプログラムを実行することで実現される。
【0090】
アクセス制御部341は、ホスト装置110からの要求に応じて、DE200内のHDDにアクセスする。アクセス制御部341は、RAID管理テーブル320に設定された論理ボリュームに含まれるデータに対するアクセス要求をホスト装置110から受け付け、RAID管理テーブル320の「論理ボリューム情報」に登録された情報を基に、アクセスを要求されたデータにアクセスする。
【0091】
また、アクセス制御部341は、RAID管理テーブル320の情報に基づいて、DE200内のHDDに記録するデータをRAIDによって管理する。アクセス制御部341は、データのアクセス要求を受けた場合、RAID管理テーブル320内の「ステータス」を基に、HDDへのアクセスを制御する。
【0092】
例えば、「RAIDレベル」にRAID4,5のいずれかが設定されている場合のデータ読み出し処理は、次のように行われる。同一RAIDグループに対応付けられた「使用ディスク」が示すすべてのHDDの「ステータス」が「1」である場合、アクセス制御部341は、「使用ディスク」が示すいずれかのHDDからデータを読み出す。一方、同一RAIDグループに対応付けられた「使用ディスク」が示すHDDのうち1つの「ステータス」が「0」である場合、アクセス制御部341は、次のいずれかの読み出し処理を行う。アクセス制御部341は、「使用ディスク」が示すHDDのうち「ステータス」が「1」であるいずれかのHDDからデータを読み出す。あるいは、アクセス制御部341は、「使用ディスク」が示すHDDのうち「ステータス」が「1」であるすべてのHDDからデータおよびパリティを読み出し、読み出したデータおよびパリティを基に読み出し対象のデータを復元する。
【0093】
また、アクセス制御部341は、HDDに対して伝送路P0,P1のどちらを通じてアクセスするかを、所定のルールに従って決定する。例えば、アクセス制御部341は、伝送路P0,P1を交互に選択することで、伝送路P0,P1のそれぞれにおける通信負荷ができるだけ均等になるようにする。ただし、アクセス制御部341は、デバイス管理テーブル310に登録された、SASエクスパンダについての「ステータス」に基づき、伝送路P0,P1の一方が使用不能である場合には、他方の伝送路を選択してHDDにアクセスする。
【0094】
また、アクセス制御部341は、HDDへのアクセス時にエラーが発生すると、同じアクセス処理をリトライする。さらに、アクセス制御部341は、リトライが成功したか否かにかかわらず、エラーが発生したことを異常発生箇所判定部342に通知する。また、アクセス制御部341は、アクセス先のHDDまたはアクセス経路上のSASエクスパンダから、エラーの内容を示すセンス情報を受信した場合には、受信したセンス情報を異常発生箇所判定部342に通知する。
【0095】
異常発生箇所判定部342は、アクセス制御部341によるアクセス処理においてエラーが発生したときに、異常発生箇所を判定し、異常発生箇所と判定したデバイスに対応する、デバイス管理テーブル310内の「エラー点数」の値を加点する。異常発生箇所判定部342は、このような判定処理を実現する処理機能として、加点処理部351、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354を備える。
【0096】
加点処理部351は、アクセス制御部341から通知されたセンス情報や、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354の各判定結果に基づいて、異常発生箇所を判定する。加点処理部351は、異常が発生したと判定したデバイスに対応する、デバイス管理テーブル310内の「エラー点数」の値を加点する。また、加点処理部351は、非疑箇所不明のリカバードエラーが発生したとき、ディスクビットマップ330のビットのうち、アクセス先のHDDとアクセス時に使用した伝送路とに対応するビットに「1」を設定する。
【0097】
データ冗長性判定部352は、エラー発生時におけるアクセス対象のデータに冗長性があるかを、RAID管理テーブル320に基づいて判定する。「データに冗長性がある」とは、アクセス対象のデータを含む論理ボリュームが設定されたRAIDグループにおいて、そのRAIDグループの物理領域を構成する複数のHDDのいずれか1つが使用不能の場合でも、データの復元が可能である状態を言う。例えば、データ冗長性判定部352は、RAID管理テーブル320において、「RAIDレベル」にRAID1,4,5のいずれかが設定されたRAIDグループに対応付けられた複数のHDDのうち、1つでも「ステータス」が「0」であれば、データに冗長性がないと判定する。
【0098】
伝送路冗長性判定部353は、エラー発生時において、DE200との間の伝送路に冗長性があるかを、デバイス管理テーブル310に基づいて判定する。「伝送路に冗長性がある」とは、DE200との間の伝送路P0,P1の両方が使用可能な状態であることを言う。伝送路冗長性判定部353は、デバイス管理テーブル310において、伝送路P0上のデバイス(CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210)、伝送路P1上のデバイス(CM300bのSASエクスパンダ307およびDE200のSASエクスパンダ220)のうち、1つでも「ステータス」が「0」であれば、伝送路に冗長性がないと判定する。
【0099】
副判定部354は、非疑箇所不明のリカバードエラーが発生したときに、ディスクビットマップ330に基づいて、異常発生箇所を判定する。副判定部354は、ディスクビットマップ330のうち、エラー発生時において使用していた伝送路に対応するビット群を参照し、エラー発生時のアクセス先以外のHDDに対応するビットの中に1つでも「1」が登録されている場合、伝送路上のデバイスで異常が発生したと判定する。一方、副判定部354は、上記のビット群のうち、エラー発生時のアクセス先以外のHDDに対応するすべてのビットが「0」である場合、アクセス先のHDDで異常が発生したと判定する。
【0100】
切り離し制御部343は、デバイス管理テーブル310内の「エラー点数」の値を監視し、「エラー点数」の値を基に対応するデバイスが故障したかを判定する。切り離し制御部343は、「エラー点数」の値が所定のしきい値に達したデバイスを、故障したと判定し、そのデバイスに対応する「ステータス」を「1」から「0」に更新することで、そのデバイスをCM300aから切り離す。切り離し制御部343は、デバイス管理テーブル310の「ステータス」を更新した際には、同じデバイスに対応付けられたRAID管理テーブル320内の「ステータス」も、デバイス管理テーブル310と同様に更新する。
【0101】
ところで、アクセス制御部341によるアクセス処理時に発生するエラーとしては、アクセスに対する応答を基に、エラーの原因となった異常が発生したデバイスを特定できるエラーと、特定できない「非疑箇所不明のエラー」とがある。前者のエラーは、異常発生箇所がアクセス先のHDDであるエラーと、異常発生箇所が伝送路上のデバイス(SASエクスパンダ)であるエラーとに分類される。
【0102】
異常発生箇所判定部342は、アクセス先のHDDで異常が発生したことを、例えば、HDDからアクセス制御部341に返信されたセンス情報を基に検知できる。HDD異常によって発生するエラーの例としては、HDDにおいて応答の準備ができていないことを示す「Not Ready」エラーなどがある。「Not Ready」エラーの例としては、センス情報における「SK/ASC/ASCQ」が「02h/04h/01h」(「h」は16進数表記を示す)となるエラーなどがある。
【0103】
また、異常発生箇所判定部342は、アクセスに使用した伝送路上のSASエクスパンダで異常が発生したことを、例えば、伝送路上のSASエクスパンダからアクセス制御部341に返信されるセンス情報を基に検知できる。SASエクスパンダからセンス情報が返信された場合、異常発生箇所判定部342は、センス情報の返信元のSASエクスパンダで異常が発生したと判定できる。さらに、異常発生箇所判定部342は、アクセス制御部341によるアクセスに対する応答が一定時間得られない場合には、伝送路上の最も近いSASエクスパンダ(例えば、伝送路P0上の、CM300aのSASエクスパンダ307)で異常が発生したと判定できる。
【0104】
また、HDDからアクセス制御部341に返信されたセンス情報からは、異常の発生箇所がHDDなのか、あるいは伝送路上のデバイスなのかを判定できないエラーがあり、このようなエラーが、非疑箇所不明のエラーとなる。非疑箇所不明のエラーの例としては、HDDが予測を超える量のデータを受信したことなどを示す「Data Over Run」エラーなどがある。「Data Over Run」エラーが発生した場合、センス情報における「ASC/ASCQ」は「0Dh/05h」となる。
【0105】
次に、異常発生箇所判定部342での判定/加点処理について、具体例を挙げて説明する。まず、以下のケース1〜3は、再現性のあるエラー(リトライしても再度発生するようなエラー)が発生した場合である。
【0106】
<ケース1:HDD異常によって再現性のあるエラーが発生した場合>
異常発生箇所判定部342の加点処理部351は、異常が発生したHDDに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0107】
<ケース2:伝送路異常によって再現性のあるエラーが発生した場合>
加点処理部351は、異常が発生したSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0108】
<ケース3:再現性のある非疑箇所不明のエラーが発生した場合>
加点処理部351は、アクセス先のHDDと、アクセスに使用した伝送路上のすべてのSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。
【0109】
ここで、図11は、ケース3の状態の例を示す図である。
図11では、例として、CM300aからDE200のHDD230aにアクセスしたときに、再現性のある非疑箇所不明のエラーが発生した状態を示す。CM300aの加点処理部351(図10参照)は、エラーの原因となった異常の発生箇所が、アクセス先のHDD230aなのか、アクセスに使用した伝送路P0上のSASエクスパンダ(CM300aのSASエクスパンダ307またはDE200のSASエクスパンダ210)なのかを、判定できない。そこで、CM300aの加点処理部351は、HDD230a、CM300aのSASエクスパンダ307およびDE200のSASエクスパンダ210のそれぞれに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。これにより、HDDまたはSASエクスパンダでの故障発生を見過ごす事態を防止できる。
【0110】
次に、リカバードエラーが発生した場合について例示する。
<ケース4:HDD異常によってリカバードエラーが発生した場合>
異常発生箇所判定部342の加点処理部351は、データ冗長性判定部352による、データに冗長性があるかの判定結果に応じて、加点を行うかを決定する。データに冗長性がある場合、加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。一方、データに冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。
【0111】
図12は、ケース4の状態の例を示す図である。
図12では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成し、これらのHDD230a〜230cを用いてデータを冗長化して記録しているものとする。また、「RLU#00」のRAIDレベルは、RAID1,4,5のいずれかであるとする。そして、CM300aからDE200のHDD230aにアクセスしたときに、HDD230aの異常に基づくリカバードエラーが発生したとする。
【0112】
このとき、「RLU#00」においてデータに冗長性がある、すなわち、「RLU#00」を構成するHDD230a〜230cのいずれも切り離されていない場合には、CM300aの加点処理部351(図10参照)は、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点する。
【0113】
一方、「RLU#00」においてデータに冗長性がない場合、CM300aの加点処理部351は、「エラー点数」の加点を行わない。図12は、HDD230cが切り離されていることにより、「RLU#00」においてデータに冗長性がなくなった状態を示す。仮に、この状態で、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点すると、HDD230aが切り離される可能性が高まる。「RLU#00」ではデータに冗長性がないため、HDD230aが切り離されてしまうと、「RLU#00」に対するアクセスは不可能になる。
【0114】
しかしながら、発生したエラーがリカバードエラーの場合、HDD230aで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、HDD230aを切り離さずに継続使用しても問題ない可能性が高い。そこで、図12に示すように、加点処理部351は、HDD230aでの異常発生によるリカバードエラーの発生時に、データに冗長性がない場合には、伝送路上のデバイスだけでなくアクセス先のHDD230aについても、「エラー点数」に加点しない。これにより、HDD230aが切り離されて「RLU#00」にアクセスできない事態が発生しにくくなり、HDD230aを継続して使用できるようになる。
【0115】
<ケース5:伝送路異常によってリカバードエラーが発生した場合>
CM300aの加点処理部351は、伝送路冗長性判定部353による、伝送路に冗長性があるかの判定結果に応じて、加点を行うかを決定する。伝送路に冗長性がある場合、加点処理部351は、異常が発生したSASエクスパンダに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。一方、伝送路に冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。
【0116】
図13は、ケース5の状態の例を示す図である。
図13では、例として、CM300aからDE200のHDD230aにアクセスしたときに、伝送路上のデバイスの異常によってリカバードエラーが発生した状態を示す。このとき、伝送路に冗長性がある、すなわち、伝送路P0,P1の両方とも切り離されていない場合には、CM300aの加点処理部351(図10参照)は、異常が発生したSASエクスパンダ(CM300aのSASエクスパンダ307またDE200のSASエクスパンダ210)に対応する、デバイス管理テーブル310の「エラー点数」を加点する。
【0117】
一方、伝送路に冗長性がない場合、CM300aの加点処理部351は、「エラー点数」の加点を行わない。図13は、伝送路P1が切り離されていることにより、伝送路に冗長性がなくなった状態を示す。仮に、この状態で、CM300aのSASエクスパンダ307またはDE200のSASエクスパンダ210の「エラー点数」を加点すると、伝送路P0が切り離される可能性が高まる。伝送路P1はすでに切り離されているため、伝送路P0が切り離されてしまうと、CM300aはDE200にアクセスできなくなる。
【0118】
しかしながら、発生したエラーがリカバードエラーの場合、伝送路P0上のSASエクスパンダで発生した異常は即座に対処が必要な深刻なものでない可能性が高いことから、伝送路P0を切り離さずに継続使用しても問題ない可能性が高い。そこで、図13に示すように、加点処理部351は、伝送路P0上のSASエクスパンダでの異常発生によるリカバードエラーの発生時に、伝送路に冗長性がない場合には、アクセス先のHDD230aだけでなく伝送路上のSASエクスパンダについても、「エラー点数」に加点しない。これにより、伝送路P0が切り離されてDE200にアクセスできない事態が発生しにくくなり、DE200に対するアクセスを継続できるようになる。
【0119】
<ケース6:非疑箇所不明のリカバードエラーが発生した場合>
CM300aの加点処理部351は、データ冗長性判定部352、伝送路冗長性判定部353および副判定部354のそれぞれの判定結果に基づいて、加点する対象のデバイスや、デバイスに加点するか否かを決定する。
【0120】
データに冗長性があり、かつ、伝送路にも冗長性がある場合、加点処理部351は、上記のケース3と同様に、アクセス先のHDDと、アクセスに使用した伝送路上のすべてのSASエクスパンダとに対応する、デバイス管理テーブル310内の「エラー点数」に加点する。これにより、HDDまたはSASエクスパンダでの故障発生を見過ごす事態を防止できる。
【0121】
また、データに冗長性がなく、かつ、伝送路にも冗長性がない場合、加点処理部351は、「エラー点数」の加点を行わない。これにより、同じHDDへのアクセスを継続できるようになる。
【0122】
さらに、データおよび伝送路のうち、一方に冗長性があり、他方の冗長性がない場合、加点処理部351は、副判定部354による判定結果に基づいて、異常発生箇所の絞り込みを行う。
【0123】
図14は、ケース6の状態の例を示す図である。
図14では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成しているが、HDD230cが切り離されているために、「RLU#00」においてデータに冗長性がない状態を示す。また、CM300aとDE200との間の伝送路には冗長性があるものとする。
【0124】
このような状態で、CM300aからDE200のHDD230aにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、CM300aの加点処理部351(図10参照)は、アクセス先のHDD230aに対応する、デバイス管理テーブル310の「エラー点数」を加点しない。これにより、「RLU#00」へのアクセスを継続できるようになる。
【0125】
しかしながら、仮にこのとき、伝送路P0上のSASエクスパンダに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、HDD230aの「エラー点数」は増加せず、伝送路P0上のSASエクスパンダの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因が伝送路P0ではなくHDD230aにあった場合、本来切り離すべきHDD230aが切り離されずに、故障が発生していない伝送路P0が切り離されてしまうという問題が生じる。
【0126】
このように、伝送路P0が誤って切り離される事態を発生しにくくするために、CM300aの加点処理部351は、副判定部354(図10参照)による判定結果に基づいて、伝送路P0上のSASエクスパンダの「エラー点数」に加点するか否かを決定する。副判定部354は、ディスクビットマップ330(図9,図10参照)における伝送路P0に対応するビット群を参照する。
【0127】
ここで、参照先のビット群において、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合、同じ伝送路P0を通じて過去に同様のリカバードエラーが発生した可能性が高いと推測できる。この場合、異常発生箇所はHDD230aではなく伝送路P0上のSASエクスパンダである可能性が高い。そこで、副判定部354は、図14の左下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合には、伝送路P0上のデバイスで異常が発生したと判定する。この場合、加点処理部351は、伝送路P0上の各SASエクスパンダに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
【0128】
一方、副判定部354は、図14の右下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するビットがすべて「0」である場合には、HDD230aで異常が発生したと判定する。この場合、加点処理部351は、「エラー点数」の加点を行わない。
【0129】
以上のように、副判定部354による判定結果を基に、伝送路上のデバイスの「エラー点数」に加点するか否かを決定することにより、異常発生箇所が伝送路上のデバイスであるか否かを正確に判定できる。その結果、本来切り離すべきHDDが切り離されずに、故障が発生していない伝送路が切り離されるという事態が発生しにくくなる。
【0130】
図15は、ケース6の状態の別の例を示す図である。
図15では、例として、CM300aは、HDD230a〜230cによって1つのRAIDグループ「RLU#00」を構成し、HDD230a〜230cを用いてデータが冗長化されるように制御している。しかし、伝送路P1が切り離されているために、CM300aとDE200との間の伝送路には冗長性がないものとする。
【0131】
このような状態で、CM300aからDE200のHDD230aにアクセスしたときに、非疑箇所不明のリカバードエラーが発生したとする。このとき、CM300aの加点処理部351(図10参照)は、アクセスに用いた伝送路P0上のSASエクスパンダに対応する、デバイス管理テーブル310の「エラー点数」を加点しない。これにより、DE200へのアクセスを継続できるようになる。
【0132】
しかしながら、仮にこのとき、アクセス先のHDD230aに対応する「エラー点数」には加点するものとすると、その後に同様の原因によるリカバードエラーが発生し続けた場合、伝送路P0上のSASエクスパンダの「エラー点数」は増加せず、HDD230aの「エラー点数」のみ増加してしまう。もしリカバードエラーの発生要因がHDD230aではなく伝送路P0上のSASエクスパンダにあった場合、本来切り離すべき伝送路P0が切り離されずに、故障が発生していないHDD230aが切り離されてしまうという問題が生じる。
【0133】
このように、HDD230aが誤って切り離される事態を発生しにくくするために、CM300aの加点処理部351は、副判定部354(図10参照)による判定結果に基づいて、アクセス先のHDD230aの「エラー点数」に加点するか否かを決定する。副判定部354は、ディスクビットマップ330(図9,図10参照)における伝送路P0に対応するビット群を参照する。
【0134】
ここで、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するビットがすべて「0」である場合、DE200内のHDDのうちHDD230aへのアクセス時にのみリカバードエラーが発生していたことになる。この場合、異常発生箇所は伝送路P0上のSASエクスパンダではなくHDD230aである可能性が高い。そこで、副判定部354は、図15の右下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応するすべてのビットが「0」である場合には、HDD230aで異常が発生したと判定する。この場合、加点処理部351は、HDD230aに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
【0135】
一方、副判定部354は、図15の左下に示すように、参照先のビット群のうち、アクセス先のHDD230a以外のHDDに対応する少なくとも1つのビットが「1」である場合には、伝送路P0上のいずれかのSASエクスパンダにおいて異常が発生したと判定する。この場合、加点処理部351は、「エラー点数」の加点を行わない。
【0136】
以上のように、副判定部354による判定結果を基に、アクセス先のHDDの「エラー点数」に加点するか否かを決定することにより、異常発生箇所がアクセス先のHDDであるか否かを正確に判定できる。その結果、本来切り離すべき伝送路が切り離されずに、故障が発生していないHDDが切り離されるという事態が発生しにくくなる。
【0137】
次に、上記のケース1〜6を含む判定処理手順について、フローチャートを用いて説明する。図16,図17は、CMにおけるエラー発生時の処理手順の例を示すフローチャートである。
【0138】
[ステップS11]CM300aのアクセス制御部341が、ホスト装置110からの要求に応じて、DE200内のいずれかのHDDに対してアクセスしたときに、エラーが発生した場合、ステップS12以降の処理が実行される。
【0139】
[ステップS12]アクセス制御部341は、ステップS11と同様のアクセス処理をリトライする。
[ステップS13]ステップS12でのリトライにより再度エラーが発生した場合(すなわち、再現性のあるエラーが発生した場合。S13:No)、ステップS14の処理が実行される。一方、ステップS12でアクセスに成功した場合(すなわち、ステップS11で発生したエラーがリカバードエラーであった場合。S13:Yes)、ステップS19の処理が実行される。
【0140】
[ステップS14]CM300aの加点処理部351は、異常発生箇所が、ステップS11,S12でのアクセス先のHDDであるかを判定する。加点処理部351は、例えば、ステップS11またはステップS12でアクセス制御部341がアクセス先のHDDから受信したセンス情報を基に、異常発生箇所がアクセス先のHDDであるかを判定する。加点処理部351は、異常発生箇所がHDDであると判定した場合(S14:Yes)、ステップS15の処理を実行する一方、異常発生箇所がHDDでないと判定した場合(S14:No)、ステップS16の処理を実行する。
【0141】
[ステップS15]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
[ステップS16]加点処理部351は、異常発生箇所が、ステップS11,S12でのアクセスに用いた伝送路上のデバイスであるかを判定する。加点処理部351は、例えば、ステップS11またはステップS12で、アクセス制御部341が伝送路上のSASエクスパンダからセンス情報を受信した場合、あるいは、アクセス制御部341によるアクセスに対して一定時間以内に応答がなかった場合に、異常発生箇所が伝送路上のデバイスであると判定する。加点処理部351は、異常発生箇所が伝送路上のデバイスであると判定した場合(S16:Yes)、ステップS17の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合(S16:No)、ステップS18の処理を実行する。
【0142】
[ステップS17]加点処理部351は、ステップS11,S12でのアクセスに用いた伝送路上のSASエクスパンダのうち、異常が発生したSASエクスパンダについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0143】
なお、加点処理部351は、例えば、ステップS11またはステップS12で、アクセス制御部341が伝送路上のSASエクスパンダからセンス情報を受信した場合、そのセンス情報の送信元のSASエクスパンダを異常発生箇所と判定する。また、加点処理部351は、ステップS11またはステップS12でのアクセス制御部341によるアクセスに対して一定時間以内に応答がなかった場合には、使用した伝送路上のSASエクスパンダのうち、CM300aのIOC305に最も近いSASエクスパンダを異常発生箇所と判定する。
【0144】
[ステップS18]加点処理部351は、アクセス先のHDDと、アクセスに使用した伝送路上のSASエクスパンダのそれぞれについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0145】
[ステップS19]リカバードエラーが発生した場合(S13:Yes)、加点処理部351は、ステップS14と同様の処理手順で、異常発生箇所がアクセス先のHDDであるかを判定する。加点処理部351は、異常発生箇所がHDDであると判定した場合(S19:Yes)、ステップS20の処理を実行する一方、異常発生箇所がHDDでないと判定した場合(S19:No)、ステップS22の処理を実行する。
【0146】
[ステップS20]CM300aのデータ冗長性判定部352は、RAID管理テーブル320から、ステップS11,S12でのアクセス先が属するRAIDグループに対応付けられた、各HDDについての「ステータス」を参照する。データ冗長性判定部352は、RAIDグループに対応付けられたすべての「ステータス」が「1」である場合、アクセス対象のデータに冗長性があると判定する。一方、データ冗長性判定部352は、RAIDグループに対応付けられた「ステータス」のうち1つでも「0」である場合には、アクセス対象のデータに冗長性がないと判定する。なお、RAID管理テーブル320には、例えば、切り離し制御部343によって、RAIDグループごとにデータに冗長性があるか否かを示すフラグ情報が登録されてもよい。
【0147】
加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S20:Yes)、ステップS21の処理を実行する。一方、加点処理部351は、データに冗長性がない場合には(S20:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0148】
[ステップS21]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
[ステップS22]加点処理部351は、ステップS16と同様の処理手順で、異常発生箇所が伝送路上のデバイスであるかを判定する。加点処理部351は、異常発生箇所が伝送路上のデバイスであると判定した場合(S22:Yes)、ステップS23の処理を実行する一方、異常発生箇所が伝送路上のデバイスでないと判定した場合(S22:No)、ステップS25の処理を実行する。
【0149】
[ステップS23]CM300aの伝送路冗長性判定部353は、デバイス管理テーブル310において伝送路P0,P1のそれぞれに属するデバイスに対応付けられた「ステータス」を参照する。伝送路冗長性判定部353は、伝送路P0,P1のそれぞれに属するデバイスのうち1つでも、「ステータス」が「0」であるデバイスがある場合に、伝送路に冗長性がないと判定する。なお、デバイス管理テーブル310には、例えば、切り離し制御部343によって、伝送路に冗長性があるか否かを示すフラグ情報が登録されてもよい。
【0150】
加点処理部351は、伝送路冗長性判定部353による判定結果に基づき、伝送路に冗長性がある場合には(S23:Yes)、ステップS24の処理を実行する。一方、加点処理部351は、伝送路に冗長性がない場合には(S23:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0151】
[ステップS24]加点処理部351は、ステップS17と同様の処理手順で、異常が発生したSASエクスパンダについての、デバイス管理テーブル310の「エラー点数」に加点する。
【0152】
[ステップS25]リカバードエラーが発生し(S13:Yes)、異常発生箇所が特定できない場合(S19:No,S22:No)、加点処理部351は、ディスクビットマップ330のビットのうち、アクセス先のHDDとアクセス時に使用した伝送路とに対応するビットに「1」を設定する。
【0153】
なお、加点処理部351は、例えば、ディスクビットマップ330のビットに「1」を設定したとき、設定したビットを他方のCM300bに通知して、CM300aが保持するディスクビットマップ330とCM300bが保持するディスクビットマップ330とを同期させるようにしてもよい。
【0154】
また、加点処理部351は、ディスクビットマップ330のビットに「1」を設定した後、そのビットの値を一定時間後に「0」に戻してもよい。これにより、副判定部354による異常発生箇所の判定処理に対して、判定時に発生したエラーとは関連性の低い、極端に前に発生したエラーの影響が及ぶことが防止され、副判定部354の判定精度を高めることができる。
【0155】
[ステップS26]CM300aの伝送路冗長性判定部353は、ステップS23と同様の処理手順で、デバイス管理テーブル310に基づき、伝送路に冗長性があるかを判定する。加点処理部351は、伝送路冗長性判定部353による判定結果に基づき、伝送路に冗長性がある場合には(S26:Yes)、ステップS27の処理を実行する一方、伝送路に冗長性がない場合には(S26:No)、ステップS31の処理を実行する。
【0156】
[ステップS27]CM300aのデータ冗長性判定部352は、ステップS20と同様の処理手順で、RAID管理テーブル320に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S27:Yes)、ステップS28の処理を実行する一方、データに冗長性がない場合には(S27:No)、ステップS29の処理を実行する。
【0157】
[ステップS28]加点処理部351は、デバイス管理テーブル310において、ステップS11,S12でのアクセス先のHDDと、ステップS11,S12でのアクセスで使用した伝送路上のすべてのSASエクスパンダとに対応する「エラー点数」に加点する。
【0158】
[ステップS29]加点処理部351は、副判定部354に対して異常発生箇所の判定処理を依頼する。副判定部354は、ディスクビットマップ330のビットのうち、ステップS11,S12で使用した伝送路に対応するビット群を参照する。副判定部354は、参照したビット群における複数のビットが「1」である場合、ステップS11,S12で使用した伝送路上のデバイスにおいて異常が発生したと判定する。一方、副判定部354は、参照したビット群において「1」が設定されたビットが1つのみである場合、ステップS11,S12でのアクセス先のHDDで異常が発生したと判定する。
【0159】
加点処理部351は、副判定部354により、伝送路上のデバイスで異常が発生したと判定された場合(S29:Yes)、ステップS30の処理を実行する。一方、加点処理部351は、副判定部354により、アクセス先のHDDで異常が発生したと判定された場合(S29:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0160】
[ステップS30]加点処理部351は、デバイス管理テーブル310において、ステップS11,S12でのアクセスで使用した伝送路上のすべてのSASエクスパンダと対応する「エラー点数」に加点する。
【0161】
[ステップS31]データ冗長性判定部352は、ステップS20と同様の処理手順で、RAID管理テーブル320に基づき、アクセス対象のデータに冗長性があるかを判定する。加点処理部351は、データ冗長性判定部352による判定結果に基づき、データに冗長性がある場合には(S31:Yes)、ステップS32の処理を実行する。一方、加点処理部351は、データに冗長性がない場合には(S31:No)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0162】
[ステップS32]加点処理部351は、副判定部354に対して異常発生箇所の判定処理を依頼する。副判定部354は、ステップS30と同様の処理手順で、異常発生箇所がアクセス先のHDDであるか、あるいはアクセスで使用した伝送路上のデバイスであるかを判定する。
【0163】
加点処理部351は、副判定部354により、アクセス先のHDDで異常が発生したと判定された場合(S32:No)、ステップS33の処理を実行する。一方、加点処理部351は、副判定部354により、伝送路上のデバイスで異常が発生したと判定された場合(S32:Yes)、デバイス管理テーブル310の「エラー点数」に加点することなく、処理を終了する。
【0164】
[ステップS33]加点処理部351は、アクセス先のHDDに対応する、デバイス管理テーブル310の「エラー点数」に加点する。
なお、上記の図16,図17の処理において、CM300aの加点処理部351は、「エラー点数」の加点を行ったとき、加点したデバイスを識別する情報を他方のCM300bにも通知して、CM300aが保持するデバイス管理テーブル310とCM300bが保持するデバイス管理テーブル310とを同期させるようにしてもよい。
【0165】
次に、図18は、切り離し制御部の処理手順の例を示す図である。
[ステップS51]CM300aの切り離し制御部343は、デバイス管理テーブル310の「エラー点数」に対して加点が行われたことを検知すると、ステップS52以降の処理を実行する。なお、切り離し制御部343は、例えば、加点処理部351から、「エラー点数」を更新したことの通知を受けたときに、ステップS52以降の処理を実行するようにしてもよい。
【0166】
[ステップS52]切り離し制御部343は、ステップS51で加点された「エラー点数」の値が、所定のしきい値に達したかを判定する。「エラー点数」の値がしきい値に達していた場合(S52:Yes)、切り離し制御部343は、ステップS53の処理を実行する。一方、「エラー点数」の値がしきい値に達していない場合(S52:No)、切り離し制御部343は処理を終了する。
【0167】
[ステップS53]切り離し制御部343は、デバイス管理テーブル310内の「ステータス」のうち、ステップS51で「エラー点数」が加点されたデバイスに対応する「ステータス」を、「1」から「0」に更新する。
【0168】
なお、切り離し制御部343は、例えば、デバイス管理テーブル310内の「ステータス」を更新したとき、更新した「ステータス」に対応するデバイスの識別情報を他方のCM300bに通知することで、CM300aが保持するデバイス管理テーブル310とCM300bが保持するデバイス管理テーブル310とを同期させてもよい。
【0169】
[ステップS54]このステップS54は、ステップS53においてHDDに対応付けられた「ステータス」が更新された場合に実行される。切り離し制御部343は、RAID管理テーブル320において「使用ディスク」に登録されたHDDのうち、ステップS53で「ステータス」を更新したHDDに対応付けられた「ステータス」を、「1」から「0」に更新する。
【0170】
以上の図18の処理により、「エラー点数」が一定値に達したデバイスが、CM300aから切り離されて、使用不能の状態になる。
以上説明した第3の実施の形態によれば、リカバードエラーが発生した場合に、できる限りシステムの運用を継続できる。これとともに、非疑箇所不明のリカバードエラーが発生したときの異常発生箇所の判定精度が向上し、故障していないデバイスが誤って切り離される事態の発生確率を低減できる。
【0171】
なお、上記の各実施の形態における制御装置やCMの処理機能は、コンピュータによって実現することができる。その場合、制御装置はCMが有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0172】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0173】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0174】
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【0175】
(付記2) 前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記1記載のストレージシステム。
【0176】
(付記3) 前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記2記載のストレージシステム。
【0177】
(付記4) 前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、前記データ冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記3記載のストレージシステム。
【0178】
(付記5) 前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定された場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記4記載のストレージシステム。
【0179】
(付記6) 前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しないことを特徴とする付記5記載のストレージシステム。
【0180】
(付記7) 複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【0181】
(付記8) 前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記7記載のストレージシステム。
【0182】
(付記9) 前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性があると判定された場合に、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置の両方に加点することを特徴とする付記8記載のストレージシステム。
【0183】
(付記10) 前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセスに使用した共通伝送路であると特定された場合、前記エラー点数表においてアクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセスに使用した共通伝送路に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス先の記憶装置のそれぞれに加点するかを、前記伝送路冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする付記9記載のストレージシステム。
【0184】
(付記11) 複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置において、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【0185】
(付記12) 複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置において、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とする制御装置。
【0186】
(付記13) 複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
アクセス対象のデータに冗長性がないと判定した場合、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて前記共通伝送路が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【0187】
(付記14) 前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、アクセス対象のデータに冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生したと判定した場合には、前記エラー点数表において前記共通伝送路に加点し、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記13記載の異常発生箇所判定方法。
【0188】
(付記15) 前記制御装置は、前記エラーが発生し、アクセス対象のデータに冗長性があると判定した場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする付記14記載の異常発生箇所判定方法。
【0189】
(付記16) 前記制御装置は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、アクセス対象のデータに冗長性があるかの判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、アクセス対象のデータに冗長性があるかの判定結果と、前記過去のアクセス時に前記エラーが発生したかの判定結果とに基づいて決定する、
ことを特徴とする付記15記載の異常発生箇所判定方法。
【0190】
(付記17) 前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、アクセス対象のデータに冗長性がないと判定し、かつ、前記複数の記憶装置と接続する共通伝送路に冗長性がないと判定した場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする付記16記載の異常発生箇所判定方法。
【0191】
(付記18) 前記制御装置は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、共通伝送路に冗長性がないと判定したとき、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していない場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、
前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生していた場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記17記載の異常発生箇所判定方法。
【0192】
(付記19) 複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所特定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
共通伝送路に冗長性がないと判定した場合、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【0193】
(付記20) 前記制御装置は、
前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする処理をさらに実行し、
前記エラーが発生して、共通伝送路に冗長性がないと判定したとき、前記過去のアクセス時に前記エラーが発生していないと判定した場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記過去のアクセス時に前記エラーが発生していたと判定した場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする付記19記載の異常発生箇所判定方法。
【符号の説明】
【0194】
1a,1b ストレージシステム
10a,10b 制御装置
11 データ冗長性判定部
12a,12b エラー履歴判定部
13a,13b 異常発生箇所判定部
14a,14b 切り離し制御部
15a,15b エラー履歴テーブル
16a,16b エラー点数表
17 伝送路冗長性判定部
21,22 記憶装置
30〜32 共通伝送路
【特許請求の範囲】
【請求項1】
複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項2】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする請求項1記載のストレージシステム。
【請求項3】
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする請求項2記載のストレージシステム。
【請求項4】
前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、前記データ冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする請求項3記載のストレージシステム。
【請求項5】
前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定された場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする請求項4記載のストレージシステム。
【請求項6】
前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しないことを特徴とする請求項5記載のストレージシステム。
【請求項7】
複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項8】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする請求項7記載のストレージシステム。
【請求項9】
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性があると判定された場合に、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置の両方に加点することを特徴とする請求項8記載のストレージシステム。
【請求項10】
前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセスに使用した共通伝送路であると特定された場合、前記エラー点数表においてアクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセスに使用した共通伝送路に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス先の記憶装置のそれぞれに加点するかを、前記伝送路冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする請求項9記載のストレージシステム。
【請求項11】
複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
アクセス対象のデータに冗長性がないと判定した場合、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて前記共通伝送路が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【請求項12】
複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所特定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
共通伝送路に冗長性がないと判定した場合、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【請求項1】
複数の記憶装置と、前記複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定するデータ冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、前記共通伝送路が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項2】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表において前記共通伝送路に加点し、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする請求項1記載のストレージシステム。
【請求項3】
前記異常発生箇所判定部は、前記データ冗長性判定部によってアクセス対象のデータに冗長性があると判定された場合に、前記エラー点数表においてアクセス対象の記憶装置および前記共通伝送路の両方に加点することを特徴とする請求項2記載のストレージシステム。
【請求項4】
前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセス先の記憶装置であると特定された場合、前記エラー点数表において前記共通伝送路に加点せずに、前記データ冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセス先の記憶装置に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のそれぞれに加点するかを、前記データ冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする請求項3記載のストレージシステム。
【請求項5】
前記制御装置は、前記複数の記憶装置に対して複数の共通伝送路を通じてアクセスし、
前記エラー点数表は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路のそれぞれについて、エラーの発生に応じて点数を個別に保持し、
前記制御装置は、前記エラーが発生したとき、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部をさらに有し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記データ冗長性判定部によってアクセス対象のデータに冗長性がないと判定され、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定された場合、前記エラー点数表においてアクセス先の記憶装置および前記共通伝送路のいずれにも加点しない、
ことを特徴とする請求項4記載のストレージシステム。
【請求項6】
前記エラー履歴判定部は、前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、
前記異常発生箇所判定部は、前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できず、かつ、前記伝送路冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しないことを特徴とする請求項5記載のストレージシステム。
【請求項7】
複数の記憶装置と、前記複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置とを備えたストレージシステムにおいて、
前記制御装置は、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定する伝送路冗長性判定部と、
前記エラーが発生したとき、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定するエラー履歴判定部と、
前記データ冗長性判定部によって共通伝送路に冗長性がないと判定されたとき、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記エラー履歴判定部による判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する異常発生箇所判定部と、
を有することを特徴とするストレージシステム。
【請求項8】
前記制御装置は、前記複数の記憶装置のそれぞれおよび前記複数の共通伝送路について、エラーの発生に応じた点数を個別に保持するエラー点数表を参照し、前記エラー点数表において点数が所定のしきい値に達した記憶装置または共通伝送路を使用不許可にする切り離し制御部をさらに有し、
前記異常発生箇所判定部は、前記伝送路判定部によって共通伝送路に冗長性がないと判定されたとき、前記エラー履歴判定部により過去に前記エラーが発生していないと判定された場合には、前記エラー点数表においてアクセス先の記憶装置に加点し、前記エラー履歴判定部により過去に前記エラーが発生したと判定された場合には、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置のいずれにも加点しない、
ことを特徴とする請求項7記載のストレージシステム。
【請求項9】
前記異常発生箇所判定部は、前記伝送路冗長性判定部によって共通伝送路に冗長性があると判定された場合に、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス対象の記憶装置の両方に加点することを特徴とする請求項8記載のストレージシステム。
【請求項10】
前記異常発生箇所判定部は、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいてアクセスに使用した共通伝送路であると特定された場合、前記エラー点数表においてアクセス先の記憶装置に加点せずに、前記伝送路冗長性判定部の判定結果に基づいて、前記エラー点数表においてアクセスに使用した共通伝送路に加点するかを決定し、
前記エラーの発生箇所が、記憶装置へのアクセスに対する応答に基づいて特定できない場合、前記エラー点数表においてアクセスに使用した共通伝送路およびアクセス先の記憶装置のそれぞれに加点するかを、前記伝送路冗長性判定部および前記エラー履歴判定部の判定結果に基づいて決定する、
ことを特徴とする請求項9記載のストレージシステム。
【請求項11】
複数の記憶装置のそれぞれに共通伝送路を通じてアクセスするとともに、前記複数の記憶装置に記録するデータが異なる記憶装置に冗長化されるように前記複数の記憶装置を管理する制御装置における異常発生箇所判定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、アクセス対象のデータに冗長性があるかを判定し、
アクセス対象のデータに冗長性がないと判定した場合、アクセス先の記憶装置を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて前記共通伝送路が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【請求項12】
複数の記憶装置のそれぞれに複数の共通伝送路を通じてアクセス可能な制御装置における異常発生箇所特定方法であって、
前記制御装置が、
前記複数の記憶装置のうちの1つにアクセスしたときにエラーが発生した場合、前記複数の記憶装置と接続する共通伝送路に冗長性があるかを判定し、
共通伝送路に冗長性がないと判定した場合、アクセスに使用した共通伝送路を異常発生箇所でないと判定するとともに、前記複数の記憶装置のうちアクセス先の記憶装置以外の記憶装置に対する同じ共通伝送路を通じた過去のアクセス時に前記エラーが発生したかを判定し、その判定結果に基づいて、アクセス先の記憶装置が異常発生箇所かを判定する、
ことを特徴とする異常発生箇所判定方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−208625(P2012−208625A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−72572(P2011−72572)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]