(57)【要約】【課題】性能異常を適切に検出することを課題とする。【解決手段】複数のディスクを搭載し、上位装置から当該ディスク各々に対して行われるアクセスを制御するディスクアレイ装置であって、ディスクへのアクセス経路を制御するＤＡ（Device  Adapter）各々の性能に関する情報を収集し、ＤＡ各々について収集した情報を、同一のアクセス経路を制御しているＤＡ間で相対的に比較し、当該比較の結果に基づいて性能に異常があると疑われる被疑ＤＡを検出する。また、ディスクアレイ装置は、被疑ＤＡを検出すると、当該被疑ＤＡについて当該検出の情報を加点形式で蓄積し、蓄積した情報の点数が所定の閾値を超過したことを条件として、通知情報を出力もしくは送信、あるいは、当該被疑ＤＡを排除するなどする。【選択図】図１
2010176513.tif 000002
【特許請求の範囲】
【請求項１】
ディスクへのアクセス経路を制御しているアダプタ各々の性能に関する情報を収集する性能情報収集部と、
前記性能情報収集部によって前記アダプタ各々について収集された情報を、同一の経路を制御しているアダプタ間で相対的に比較し、当該比較の結果に基づいて性能に異常があると疑われる被疑アダプタを検出する被疑アダプタ検出部と
を備えたことを特徴とするディスクアレイ装置。
【請求項２】
前記性能情報収集部は、前記性能に関する情報として、所定の時間内における前記アダプタのアイドル時間から導出される前記アダプタ各々の稼働率を収集し、
前記被疑アダプタ検出部は、前記稼働率を相対的に比較して前記被疑アダプタを検出することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記被疑アダプタ検出部によって被疑アダプタが検出されると、被疑アダプタが検出されたことを通知する通知情報を所定の出力部に出力もしくは通信部を経由して所定の宛先に送信する通知部をさらに備えたことを特徴とする請求項１または２に記載のディスクアレイ装置。
【請求項４】
前記被疑アダプタ検出部によって被疑アダプタが検出されると、当該被疑アダプタをアクセス経路の対象から排除する排除部をさらに備えたことを特徴とする請求項１〜３のいずれか一つに記載のディスクアレイ装置。
【請求項５】
前記被疑アダプタ検出部は、被疑アダプタが検出されると、当該被疑アダプタについて当該検出の情報を加点形式で蓄積し、
前記通知部は、前記被疑アダプタ検出部によって蓄積された情報の点数が所定の閾値を超過したことを条件として、前記通知情報を出力もしくは送信することを特徴とする請求項３に記載のディスクアレイ装置。
【請求項６】
前記被疑アダプタ検出部は、被疑アダプタが検出されると、当該被疑アダプタについて当該検出の情報を加点形式で蓄積し、
前記排除部は、前記被疑アダプタ検出部によって蓄積された情報の点数が所定の閾値を超過したことを条件として、当該アダプタを排除することを特徴とする請求項４に記載のディスクアレイ装置。
【請求項７】
ディスクへのアクセス経路を制御しているアダプタ各々の性能に関する情報を収集する性能情報収集手順と、
前記性能情報収集手順によって前記アダプタ各々について収集された情報を、同一の経路を制御しているアダプタ間で相対的に比較し、当該比較の結果に基づいて性能に異常があると疑われる被疑アダプタを検出する被疑アダプタ検出手順と
をコンピュータに実行させることを特徴とするディスクアレイ装置制御プログラム。
【請求項８】
ディスクを搭載するディスクアレイ装置によるディスクアレイ装置制御方法であって、
前記ディスクアレイ装置が、
ディスクへのアクセス経路を制御しているアダプタ各々の性能に関する情報を収集する性能情報収集ステップと、
前記性能情報収集ステップによって前記アダプタ各々について収集された情報を、同一の経路を制御しているアダプタ間で相対的に比較し、当該比較の結果に基づいて性能に異常があると疑われる被疑アダプタを検出する被疑アダプタ検出ステップと
を含んだことを特徴とするディスクアレイ装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置、ディスクアレイ装置制御プログラム及びディスクアレイ装置制御方法に関する。
【背景技術】
【０００２】
従来、データ入出力装置として、複数のディスクを搭載するディスクアレイ装置が用いられることがある。データ入出力装置の中でも、ディスクアレイ装置は、ディスクが冗長化されており、所定の数のディスクが故障したとしてもデータをロストしない。また、ディスクアレイ装置は、ディスクへのアクセス経路も冗長化されており、所定の数のアクセス経路が故障したとしてもディスクにアクセスすることができる。
【０００３】
ここで、アクセス経路の冗長化について具体的に説明する。ディスクアレイ装置は、リード処理等の各種処理を制御する制御モジュールを有する。かかる制御モジュールは、ディスクへのアクセス経路を制御するＤＡ（Device  Adapter：デバイス  アダプタ）を経由してディスクと接続される。具体的には、制御モジュールは、複数のＤＡを経由してディスクと接続されており、ディスクへのアクセス経路が冗長化されている。制御モジュールは、上位装置からアクセス要求を受け付けた場合に、アクセス経路を選択して、ディスクにアクセスすることになる。
【０００４】
このようなことから、ディスクアレイ装置が搭載するディスク数が増大すると、これに比例するように、ＤＡの数も増大する。特に、近年では、ディスクアレイ装置の最大記憶容量はペタバイトオーダーまで増大していることに伴って、ディスク数が増大しているので、ＤＡの数も増大している。ＤＡの数が増大すると、ＤＡが故障する可能性も増大する。このため、一般的には、ディスクアレイ装置が搭載するＤＡについて、定期的に動作チェック等のステータス監視を行い、常にＤＡの状態を監視することで、異常が発生したＤＡの早期検出、状態の正常化を図っている。
【０００５】
なお、近年では、コマンド処理時間が所定の閾値を超えているか否かを判定することで、ディスクアレイ装置を構成する構成部品を縮退する技術も提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５２６９２号公報
【特許文献２】特開２０００−８９９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記した従来の技術では、性能異常を適切に検出することができないという問題があった。具体的には、上記従来技術は、動作異常や処理異常を検出することができるものの、ＤＡの性能値が異常を示すような性能異常を検出することができなかった。これは、性能異常が発生しているＤＡは、性能が通常状態より低下するものの、異常と認識されない程度の性能で動作可能であるからである。しかし、いわゆる異常にはならない程度で動作するとは言うものの、性能異常によるデータアクセス遅延が発生すると、従来規定時間内に完了していた処理が規定時間内に完了しなくなる等、システムとして成り立たない事象も想定される。そのため、性能異常が発生しているＤＡを検出することは重要な課題となる。
【０００８】
なお、上述したコマンド処理時間が閾値を超えているか否かを判定して、構成部品であるＤＡを縮退する技術を用いたとしても、ＤＡの性能異常を適切に検出することができなかった。具体的には、本来、ＤＡに性能異常が発生しているか否かは、外部要因などにより一時的にＤＡが高負荷状態になっているかどうかといった他の点を併せて判断しなければならないはずである。しかし、かかる判断が複雑かつ困難である以上、上述した技術では、性能異常のＤＡを適切に検出するとは言い難い。
【０００９】
そこで、開示の技術は、上記に鑑みてなされたものであって、性能異常を適切に検出することが可能なディスクアレイ装置、ディスクアレイ装置制御プログラム及びディスクアレイ装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するディスクアレイ装置は、一つの態様において、ディスクへのアクセス経路を制御しているアダプタ各々の性能に関する情報を収集する性能情報収集部と、前記性能情報収集部によって前記アダプタ各々について収集された情報を、同一の経路を制御しているアダプタ間で相対的に比較し、当該比較の結果に基づいて性能に異常があると疑われる被疑アダプタを検出する被疑アダプタ検出部とを備える。
【発明の効果】
【００１１】
本願の開示するディスクアレイ装置の一つの態様によれば、性能異常を適切に検出することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るディスクアレイ装置の概要を説明するための図である。
【図２】図２は、ディスクアレイ装置の全体構成の一例を示すブロック図である。
【図３】図３は、ディスクアレイ装置の全体構成の一例を示すブロック図である。
【図４】図４は、ディスクアレイ装置の全体構成の一例を示すブロック図である。
【図５】図５は、実施例１に係るディスクアレイ装置の構成を示すブロック図である。
【図６】図６は、アクセス監視部を説明するための図である。
【図７】図７は、性能情報収集部を説明するための図である。
【図８】図８は、被疑ＤＡ検出部を説明するための図である。
【図９】図９は、運用判定・全体フローを示すフローチャートである。
【図１０】図１０は、性能情報収集開始処理を示すフローチャートである。
【図１１】図１１は、性能情報値収集処理を示すフローチャートである。
【図１２】図１２は、性能情報値チェック処理を示すフローチャートである。
【図１３】図１３は、ＤＡ性能異常チェック処理を示すフローチャートである。
【図１４】図１４は、異常検出後処理を示すフローチャートである。
【図１５】図１５は、同一経路ＤＡ異常検出処理を示すフローチャートである。
【図１６】図１６は、ディスクアレイ装置制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するディスクアレイ装置、ディスクアレイ装置制御プログラム及びディスクアレイ装置制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願に開示するディスクアレイ装置、ディスクアレイ装置制御プログラム及びディスクアレイ装置制御方法が限定されるものではない。
【実施例１】
【００１４】
［用語の説明］
まず、以下の実施例で用いる主要な用語を説明する。「ディスクアレイ装置」とは、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）グループを構成する複数のディスクを搭載し、上位装置であるホストからディスク各々に対して行われるアクセスを制御する装置である。また、「ＲＡＩＤ」とは、複数のディスクをまとめて１台のディスクとして管理する技術のことであり、「ディスクアレイ装置」がＲＡＩＤグループを構成する複数のディスクを制御することで、高速性や耐障害性などが向上される。
【００１５】
このような「ディスクアレイ装置」は、ディスクへのアクセス経路を制御するＤＡを経由してディスクにアクセスする。そして、「ディスクアレイ装置」は、一般に、複数のＤＡによりディスクと接続され、所定の数のＤＡが故障したとしてもディスクへのアクセスを可能にしている。
【００１６】
ところで、「ディスクアレイ装置」は、高速性や耐障害性を要求されるシステムに適していると言える一方で、「ディスクアレイ装置」が搭載するＤＡ数が増大することで、ＤＡが故障する可能性も増大するという事態が生じている。このため、ＤＡ故障を早期に検出し、「ディスクアレイ装置」の状態の正常化を図る仕組みが必要となるが、ＤＡ故障の中でも、性能異常を早期に検出することが難しい。
【００１７】
この点について簡単に説明すると、性能異常とは、動作異常や処理異常とは異なり、ＤＡの性能値が異常を示すような異常であり、いわゆる異常にはならない程度で動作してしまう異常である。具体的に例を挙げて説明すると、ＤＡにハード異常などの何らかの異常が発生していたとする。かかるハード異常がＤＡを動作不可能にするまでに至らない異常である場合、ＤＡは、性能が劣化するものの正常に動作することがある。このようなケースでは、結果としてはＤＡが正常に動作しているように見えてしまう。そのため、上述したようなハード異常に起因する性能異常を早期に検出することは難しい。
【００１８】
しかしながら、正常動作しているとは言うものの、高い確率で性能異常が再発するのであれば、高速性や耐障害性を要求されるシステムにとっては、いずれ致命的な故障となるおそれもある。このようなことから、このような性能異常も、動作異常や処理異常と同様、早期に検出しなければならない異常であることにかわりない。
【００１９】
［実施例１に係るディスクアレイ装置の概要］
次に、図１を用いて、実施例１に係るディスクアレイ装置の概要を説明する。図１は、実施例１に係るディスクアレイ装置の概要を説明するための図である。
【００２０】
図１に示したディスクアレイ装置１０は、ＣＭ（Controller  Module：コントローラ  モジュール）１００ａ〜１００ｄと、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄと、ＤＥ（Device  Enclosure：デバイス  エンクロージャ）部３００とを有する。ＣＭ１００ａ〜１００ｄは、リード処理やライト処理等を制御する制御モジュールである。なお、ＣＭ１００ａ〜１００ｄは、それぞれ同様の処理を行うので、以下では、ＣＭ１００ａ〜１００ｄのうち、ＣＭ１００ａを中心に説明する。ＤＥ部３００は、複数のディスクを搭載するＤＥ３１０〜３４０を有する。
【００２１】
図１に示した例において、ＣＭ１００ａは、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄを経由してＤＥ部３００と接続されている。具体的には、ＣＭ１００ａは、ＤＡ１２１ａ及び１２２ａを経由してＤＥ３１０と接続されており、ＤＡ１２１ｂ及び１２２ｂを経由してＤＥ３２０と接続されている。同様に、ＣＭ１００ａは、ＤＡ１２１ｃ及び１２２ｃを経由してＤＥ３３０と接続されており、ＤＡ１２１ｄ及び１２２ｄを経由してＤＥ３４０と接続されている。
【００２２】
すなわち、図１に示したディスクアレイ装置１０は、ディスクへのアクセス経路が二重化されており、１個のＤＡが故障したとしてもディスクへのアクセスを可能にしている。１例を挙げて説明すると、ＤＡ１２１ａ又はＤＡ１２２ａのいずれか一方が故障した場合であっても、ディスクアレイ装置１０は、ＤＥ３１０に搭載されるディスクにアクセス可能である。
【００２３】
このような構成の下、実施例１におけるＤＡは、自身の性能に関する情報を計上する。実施例１では、ＤＡが、性能に関する情報の一例として、アイドルである時間（アイドル時間）を累積計上するものとして説明する。
【００２４】
図１の例で説明すると、ＤＡ１２１ａは、Ｔｏｔａｌ  Ｔｉｍｅ：１０００［ミリ秒］のうち、Ｉｄｌｅ  Ｔｉｍｅ：５０［ミリ秒］を累積計上している。これは、ＤＡ１２１ａがアイドル時間の計測を開始してから１０００［ミリ秒］経過するまでの間に、アイドル時間の累計が５０［ミリ秒］であったことを示している。同様にして、ＤＡ１２１ａ以外の他のＤＡ１２１ｂ〜１２１ｄ及び１２２ａ〜１２２ｄも、自身のアイドル時間を累積計上する。
【００２５】
そして、ディスクアレイ装置１０は、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄから、ＤＡ各々の性能に関する情報（実施例１では、アイドル時間）を収集する（図１の（１）を参照）。図１に示した例では、ディスクアレイ装置１０のＣＭ１００ａは、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄに対して、「Ｔｏｔａｌ  Ｔｉｍｅ」及び「Ｉｄｌｅ  Ｔｉｍｅ」を送信するよう指示を行う。そして、ＣＭ１００ａは、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄから、「Ｔｏｔａｌ  Ｔｉｍｅ」及び「Ｉｄｌｅ  Ｔｉｍｅ」を取得する。
【００２６】
続いて、ＣＭ１００ａは、取得した「Ｔｏｔａｌ  Ｔｉｍｅ」及び「Ｉｄｌｅ  Ｔｉｍｅ」を元に、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄの稼働率（Ｂｕｓｙ率）をＤＡ毎に算出する。図１の例で説明すると、ＣＭ１００ａは、表１に示すように、ＤＡ１２１ａの稼働率として『９５』を算出し、ＤＡ１２２ａの稼働率として『１０』を算出し、ＤＡ１２１ｂの稼働率として『５』を算出している。同様にして、ＣＭ１００ａは、ＤＡ１２１ｃ、１２１ｄ及び１２２ｂ〜１２２ｄの稼働率も算出する。なお、図１中の表１に示した「ＤＡ  Ｎｏ」は、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄに付した符号に対応する。例えば、「ＤＡ  Ｎｏ」が１２１ａであるＤＡは、ＤＡ１２１ａである。
【００２７】
続いて、ＣＭ１００ａは、算出した稼働率を、同一のアクセス経路を制御しているＤＡ間で相対的に比較する（図１の（２）を参照）。なお、ここで言う「同一のアクセス経路を制御しているＤＡ」とは、ＣＭ１００ａが所定のＤＥへアクセスを行う場合に、アクセス経路になり得るＤＡを示す。以下では、同一のアクセス経路を制御している複数のＤＡを総称して「同一経路ＤＡ」と呼ぶこととする。例えば、図１に示した例では、ＤＡ１２１ａ及び１２２ａは、共に、ＣＭ１００ａからＤＥ３１０へのアクセス経路を制御しているため、「同一経路ＤＡ」である。同様に、ＤＡ１２１ｂと１２２ｂは、「同一経路ＤＡ」であり、ＤＡ１２１ｃと１２２ｃは、「同一経路ＤＡ」であり、ＤＡ１２１ｄと１２２ｄは、「同一経路ＤＡ」である。
【００２８】
ここで、稼働率を相対的に比較する処理の例について説明する。例えば、ＣＭ１００ａは、同一経路ＤＡである２個のＤＡの稼働率を比較し、ｎ倍（ｎは、別途設定される所定の値、例えば、２〜５の値など）以上の差分（差分比）があるか否かを判定する。そして、ＣＭ１００ａは、比較の結果、双方の稼働率にｎ倍以上の差がある場合に、稼働率の高いＤＡを、性能に異常があると疑われる被疑ＤＡとして検出する（図１の（３）を参照）。
【００２９】
図１の例を用いて説明する。なお、ここでは、上述したｎの値は「５」であるものとする。図１に示した例において、ＣＭ１００ａは、例えば、同一経路ＤＡであるＤＡ１２１ａの稼働率と、ＤＡ１２２ａの稼働率とを比較する。続いて、ＣＭ１００ａは、ＤＡ１２１ａの稼働率『９５』が、ＤＡ１２２ａの稼働率『１０』の５倍以上であると判定する。そして、ＣＭ１００ａは、比較の結果に基づいて、ＤＡ１２１ａを、被疑ＤＡとして検出する。
【００３０】
このように、実施例１に係るディスクアレイ装置１０は、同一経路ＤＡであるＤＡ間で、性能に関する情報を相対的に比較するので、性能異常が発生しているＤＡを適切に検出することができる。
【００３１】
性能異常が発生しているＤＡを適切に検出することができる点について具体的に説明する。複数のＤＡによってアクセス経路が冗長化されている場合、本来、かかる複数のＤＡの稼働率は、ほぼ均等になるはずである。これは、一般に、ＣＭ１００ａは、各ＤＡの稼働率がほぼ均等になるように、アクセス経路を選択するからである。このため、顕著に稼働率が高いＤＡは、何らかの異常（ハード異常等）が発生しており、通常処理以外の余分な処理（リトライ処理など）を行っていると考えられる。かかる余分な処理が繰り返し行われると、性能異常の要因になると考えられる。このようなことから、実施例１に係るディスクアレイ装置１０は、同一のアクセス経路を制御しているＤＡ間の稼働率を相対的に比較し、顕著に稼働率が高いＤＡを被疑ＤＡとして検出する。これにより、実施例１に係るディスクアレイ装置１０は、性能異常が発生しているＤＡを適切に検出することが可能になるのである。
【００３２】
なお、上記では、アクセス経路が二重化されている場合を前提として説明したが、本願に係るディスクアレイ装置はこれに限定されず、アクセス経路が三重化以上されている場合であっても適用することができる。以下では、アクセス経路が三重化以上されている場合も含めて説明する。
【００３３】
［実施例１に係るディスクアレイ装置の全体構成］
次に、図２〜図４を用いて、実施例１に係るディスクアレイ装置の全体構成について説明する。図２〜図４は、ディスクアレイ装置の全体構成の一例を示すブロック図である。
【００３４】
図２に示したディスクアレイ装置１０は、ＣＭ１００ａ、１００ｂ、・・・を有する。ここでは、ディスクアレイ装置１０は、運用に使用するＣＭが２ＣＭ以上あり、冗長が確保されている構成であるものとする。ＣＭ１００ａや１００ｂは、ディスクアレイ装置１０を制御する各部（ＣＰＵ１１１ａ等）や、図示しない上位装置（ＨＯＳＴ）との間の通信モジュール等を主に搭載する。
【００３５】
また、ディスクアレイ装置１０は、図２に示すように、ルータ（Router）１１ａを経由してＤＥ３１０と接続され、ルータ１１ｂを経由してＤＥ３２０と接続されている。ルータ１１ａは、ＤＡ１２１ａ及び１２２ａを有し、ルータ１１ｂは、ＤＡ１２１ｂ及び１２２ｂを有する。
【００３６】
すなわち、ＣＭ１００ａや１００ｂは、ＤＥ３１０へアクセスする場合、ＤＡ１２１ａ又は１２２ａのいずれかを経由する。また、ＣＭ１００ａや１００ｂは、ＤＥ３２０へアクセスする場合、ＤＡ１２１ｂ又は１２２ｂのいずれかを経由する。このように、図２に示したディスクアレイ装置１０は、ディスクへのアクセス経路が二重化されている。
【００３７】
なお、本願に開示するディスクアレイ装置の構成は、図２に示した構成例に限られず、他の構成にも適用することができる。そこで、図３及び図４に、ディスクアレイ装置の他の全体構成例を示す。
【００３８】
まず、図３に示したディスクアレイ装置２０の全体構成について説明する。図３に示したディスクアレイ装置２０は、ＣＥ（Controller  Enclosure：コントローラ  エンクロージャ）部２１と、ＤＥ部３００とに、筐体が分けられる。ＣＥ部２１は、ＣＭ１００ｅ及び１００ｆを有する。
【００３９】
図３に示すように、ディスクアレイ装置２０は、ＨＯＳＴ１２とＣＡ（Channel  adapter：チャネル  アダプタ）１３１ｅ等を経由して接続され、ＤＥ部３００とＤＡ１２１ｅ等を経由して接続される。ここで、ＣＡとは、チャネル側のアダプタの意味であり、ＤＡとは、デバイス側のアダプタという意味である。
【００４０】
また、ＣＭ１００ｅとＣＭ１００ｆとは相互に接続され、互いに通信可能である。つまり、図３に示した例において、ＣＭ１００ｅは、ＤＡ１２１ｅ又はＤＡ１２２ｅを経由してＤＥ部３００にアクセスすることが可能である上に、ＤＡ１２１ｆ又はＤＡ１２２ｆを経由してＤＥ部３００にアクセスすることも可能である。同様に、ＣＭ１００ｆは、ＤＡ１２１ｅ、１２２ｅ、１２１ｆ又は１２２ｆのいずれかを経由してＤＥ部３００にアクセスすることが可能である。すなわち、図３に示したディスクアレイ装置２０は、ディスクへのアクセス経路が四重化されていることになる。
【００４１】
なお、ディスクアレイ装置によっては、ＣＭ１００ｅとＣＭ１００ｆとが相互に接続されていない場合もある。かかる場合、ＣＭ１００ｅは、ＤＡ１２１ｅ又はＤＡ１２２ｅのいずれかを経由してＤＥ部３００へアクセスし、ＣＭ１００ｆは、ＤＡ１２１ｆ又は１２２ｆのいずれかを経由してＤＥ部３００にアクセスする。すなわち、図３に示した例において、ＣＭ１００ｅとＣＭ１００ｆとが相互に接続されていない場合、ディスクへのアクセス経路は、二重化されていることになる。
【００４２】
また、ディスクアレイ装置２０が、複数のディスクを外付けで搭載する場合には、ＤＡ１２１ｅ等はハードウェアであり、複数のディスクを内部に搭載する場合には、ＤＡ１２１ｅ等はソフトウェアである。実施例１においては、前者の場合を想定して説明するが、本願に係るディスクアレイ装置はこれに限られるものではなく、ディスクアレイ装置２０がディスクを搭載する形態については、いずれでもよい。
【００４３】
次に、図４に示したディスクアレイ装置３０の全体構成について説明する。図４に示したディスクアレイ装置３０は、ＤＡ１２１ｇ、１２２ｇ、１２１ｈ、・・・、１２２ｊから直接、もしくは、ルータを経由するなどして、複数のＤＥ３１０〜３４０と接続されている。また、ＣＭ１００ｇ〜１００ｊは、ＦＣ（Fibre  Channel）スイッチ１３を介してＨＯＳＴ１２と接続されている。
【００４４】
図４に示したＣＭ１００ｇ〜１００ｊは、相互に接続され、互いに通信可能である。つまり、図４に示した例において、ＣＭ１００ｇは、ＤＡ１２１ｇ〜１２１ｊ、１２２ｇ〜１２２ｊのいずれかを経由してＤＥ３１０〜３４０にアクセスすることが可能である。同様に、ＣＭ１００ｈ〜１００ｊは、ＤＡ１２１ｇ〜１２１ｊ、１２２ｇ〜１２２ｊのいずれかを経由してＤＥ３１０〜３４０にアクセスすることが可能である。すなわち、図４に示したディスクアレイ装置３０は、ディスクへのアクセス経路が八重化されていることになる。
【００４５】
［ＣＭの構成］
次に、図５を用いて、実施例１に係るディスクアレイ装置１０が有するＣＭの構成について説明する。図５は、実施例１に係るディスクアレイ装置１０の構成を示すブロック図である。図５に示したＣＭ１００は、図１に示したＣＭ１００ａ〜１００ｄに対応する。図５に示すように、ＣＭ１００は、ＤＡ１２１ａ〜１２１ｄ又は１２２ａ〜１２２ｄのいずれかを経由して、図示しないＤＥ部３００へアクセスする。
【００４６】
ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄは、それぞれ、アクセス監視部２２１ａ〜２２１ｄ、２２２ａ〜２２２ｄを有する。アクセス監視部２２１ａ〜２２１ｄ、２２２ａ〜２２２ｄは、それぞれ、ＤＡ１２１ａ〜１２１ｄ、１２２ａ〜１２２ｄのアイドル時間を累積計上する。例えば、アクセス監視部２２１ａは、ＤＡ１２１ａのアイドル時間を累積計上する。
【００４７】
図６を用いて具体的に説明する。図６は、アクセス監視部２２１ａを説明するための図である。図６に示した例では、アクセス監視部２２１ａは、１０００［ミリ秒］のうち、ＤＡ１２１ａのアイドル時間が５０［ミリ秒］であったことを累積計上している。
【００４８】
図５の説明に戻って、ＣＭ１００は、ＣＰＵ１１１ａ及び１１２ａに、ＩＯ制御部１１１と、Ｓｙｓｔｅｍ制御部１１２と、装置監視部１１３と、性能情報格納領域部１２０と、制御部１３０とを有する。なお、図５では、ＣＰＵについて冗長が確保されているものとして、２個のＣＰＵ１１１ａ及び１１２ａを示しているが、ＣＰＵ１１１ａ及び１１２ａは、同様の構成となる。
【００４９】
ＩＯ制御部１１１は、上位装置（ＨＯＳＴ）１２からのＩ／Ｏ（入出力）を制御する。Ｓｙｓｔｅｍ制御部１１２は、ディスクアレイ装置１０を制御する。装置監視部１１３は、ディスクアレイ装置１０の装置状態を監視する。これらの各部は、ディスクアレイ装置１０が一般的に有する部である。
【００５０】
実施例１に係るディスクアレイ装置１０は、上述したＩＯ制御部１１１、Ｓｙｓｔｅｍ制御部１１２、及び装置監視部１１３の他に、制御部１３０を有する。制御部１３０は、ディスクに対するアクセス状況を、記憶、管理、判断等する。具体的には、制御部１３０は、図５に示すように、性能情報収集部１３１と、被疑ＤＡ検出部１３２と、異常通知・排除部１３３とを有する。
【００５１】
性能情報収集部１３１は、ＤＡ各々の性能に関する情報を収集する。例えば、性能情報収集部１３１は、ＤＡ毎や、同一経路ＤＡ毎に、ＤＡ各々の性能に関する情報を定期的に収集し、収集した性能に関する情報を、性能情報格納領域部１２０に格納する。性能情報格納領域部１２０に格納された性能に関する情報は、被疑ＤＡ検出部１３２による処理に利用されるなどする。
【００５２】
具体的には、性能情報収集部１３１は、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄに対して、アイドル時間等を送信するよう指示を行い、アクセス監視部２２１ａ〜２２１ｄ、２２２ａ〜２２２ｄによって累積計上されたアイドル時間等を取得する。続いて、性能情報収集部１３１は、取得したアイドル時間等を元に、ＤＡ１２１ａ〜１２１ｄ及び１２２ａ〜１２２ｄについて、稼働率を算出する。
【００５３】
図７を用いて具体的に説明する。図７は、性能情報収集部１３１を説明するための図である。なお、ここでは、性能情報収集部１３１は、アクセス監視部２２１ａから図６に示した情報を取得したものとする。図７に示した例のように、性能情報収集部１３１は、ＤＡ１２１ａの稼働率（Ｂｕｓｙ率）として、『９５』を算出する。具体的には、性能情報収集部１３１は、アクセス監視部２２１ａから取得したＴｏｔａｌ  Ｔｉｍｅ『１０００』からＩｄｌｅ  Ｔｉｍｅ『５０』を減算する。そして、性能情報収集部１３１は、減算した値『９５０』を、Ｔｏｔａｌ  Ｔｉｍｅ『１０００』によって除算した後に、『１００』を乗算することにより、稼働率（Ｂｕｓｙ率）『９５』を算出する。同様にして、性能情報収集部１３１は、ＤＡ１２２ａ、１２１ｂ、・・・、１２２ｄについて、稼働率（Ｂｕｓｙ率）『１０』、『５』、・・・、『５』を算出する。
【００５４】
なお、実施例１においては、各ＤＡが有するアクセス監視部２２１ａ等がアイドル時間を累積計上し、性能情報収集部１３１がアクセス監視部２２１ａ等から取得したアイドル時間等を元に、各ＤＡの稼働率を算出する手法について説明した。しかし、本願に開示するディスクアレイ装置はこれに限られるものではない。例えば、本願に開示するディスクアレイ装置は、アクセス監視部２２１ａ等が、アイドル時間を累積計上するのみならず、稼働率の算出まで行い、性能情報収集部１３１が、アクセス監視部２２１ａ等から直接稼働率を取得してもよい。また、例えば、本願に開示するディスクアレイ装置は、性能情報収集部１３１が、各ＤＡのアイドル時間を直接収集してもよい。
【００５５】
被疑ＤＡ検出部１３２は、性能情報収集部１３１によってＤＡ各々について収集された情報を、同一経路ＤＡに該当する複数のＤＡ間で相対的に比較し、比較の結果に基づいて、性能に異常があると疑われる被疑ＤＡを検出する。
【００５６】
例えば、被疑ＤＡ検出部１３２は、性能情報収集部１３１によってＤＡ各々について収集された情報（実施例１においては、稼働率）を、性能情報格納領域部１２０から取得する。続いて、被疑ＤＡ検出部１３２は、同一経路ＤＡに該当する複数のＤＡ間で、稼働率が最も高い値と二番目に高い値とを比較し、ｎ倍（ｎは、別途設定される所定の値、例えば、２〜５の値など）以上の差分（差分比）がある場合に、稼働率が最も高いＤＡを、被疑ＤＡとして検出する。
【００５７】
また、例えば、被疑ＤＡ検出部１３２は、性能情報収集部１３１によってＤＡ各々について収集された情報（実施例１においては、稼働率）を、性能情報格納領域部１２０から取得し、同一経路ＤＡに該当する複数のＤＡについて、所定のＤＡの稼働率と、かかる複数のＤＡの平均稼働率とを比較し、一定値以上の差分がある場合に、所定のＤＡを、被疑ＤＡとして検出してもよい。
【００５８】
図８を用いて具体的に説明する。図８は、被疑ＤＡ検出部１３２を説明するための図である。図８に示した例において、ＤＡ１２１ａと１２２ａとが同一経路ＤＡであり、ＤＡ１２１ｂと１２２ｂとが同一経路ＤＡであり、ＤＡ１２１ｃと１２２ｃとが同一経路ＤＡであり、ＤＡ１２１ｄと１２２ｄとが同一経路ＤＡである。かかる場合に、被疑ＤＡ検出部１３２は、ＤＡ１２１ａの稼働率と、ＤＡ１２２ａの稼働率を比較する。同様に、被疑ＤＡ検出部１３２は、ＤＡ１２１ｂと１２２ｂの稼働率を比較し、ＤＡ１２１ｃと１２２ｃの稼働率を比較し、ＤＡ１２１ｄと１２２ｄの稼働率を比較する。
【００５９】
そして、被疑ＤＡ検出部１３２は、図８に示した例において、ＤＡ１２１ａの稼働率『９５』が、ＤＡ１２２ａの稼働率『１０』の５倍以上であるので、稼働率『９５』のＤＡ１２１ａを、被疑ＤＡとして算出する。
【００６０】
続いて、被疑ＤＡ検出部１３２は、検出した被疑ＤＡについて、検出の情報を加点形式で蓄積する。図８の例で説明すると、被疑ＤＡ検出部１３２は、被疑ＤＡとしてＤＡ１２１ａを検出した場合に、ＤＡ  Ｎｏ『１２１ａ』について、検出の情報を『１』と加点形式で、性能情報格納領域部１２０に蓄積する。
【００６１】
ここで、アクセス経路が三重化以上されている場合を例に挙げて、被疑ＤＡ検出部１３２による比較処理を説明する。例えば、図８に示した例において、８個のＤＡ１２１ａ、１２２ａ、・・・、１２２ｄが同一経路ＤＡであるものとする。かかる場合、被疑ＤＡ検出部１３２は、例えば、稼働率が最も高い『９５』と、二番目に高い値『１５』とを比較する。そして、被疑ＤＡ検出部１３２は、比較の結果、双方の稼働率の差分（差分比）が５倍以上であるので、稼働率『９５』のＤＡ１２１ａを、被疑ＤＡとして検出する。
【００６２】
異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって蓄積された情報の点数が所定の閾値を超過したことを条件として、被疑ＤＡが検出されたことを示す通知情報を通知したり、被疑ＤＡをアクセス経路の対象から排除したりする。例えば、異常通知・排除部１３３は、通知情報を所定の出力部（例えば、ディスプレイやスピーカなど）に出力したり、所定の宛先（例えば、システム管理者）に送信したりする。
【００６３】
言い換えると、異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって検出された被疑ＤＡについて、一定時間内監視を継続し、真に異常であると判断できる状態となった場合に、アラーム通知や被疑ＤＡの切り離しを実行する。例えば、異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって性能情報格納領域部１２０に蓄積された情報の点数をＤＡ毎に確認し、確認回数と異常加点との割合から異常と判断できる閾値を超過した場合に、通知情報の出力送信や、被疑ＤＡの切り離しなどを実行する。なお、前述した「異常と判断できる閾値」とは、予め設定された所定の値であり、例えば、『１００回中５０回』などの値である。この例の場合、異常通知・排除部１３３は、確認回数『１００回』に対して、異常加点を『５０回』検出した場合に、通知情報の出力送信や、被疑ＤＡの切り離しなどを実行する。
【００６４】
なお、異常通知・排除部１３３は、別途設定される設定に従い、通知情報の出力送信のみを行ったり、これと併せて被疑ＤＡの切り離しを行ったり、あるいは、通知情報の出力送信も切り離しも無効にするなど、様々な対応をとることができる。また、異常通知・排除部１３３は、通知情報とともに、ｓｎｍｐ  ｔｒａｐをあげてもよい。
【００６５】
性能情報格納領域部１２０は、図５に示すように、例えば、Ｄｉｓｋ性能情報や、ＲＡＩＤグループ性能情報や、Ｈｏｓｔアクセス性能情報や、ＤＡ性能情報などを格納する。ここで、Ｄｉｓｋ性能情報は、ディスク各々に関する性能の情報である。
【００６６】
ＲＡＩＤグループ性能情報は、ＲＡＩＤグループを構成しているディスクの組合せに関する情報や、ＲＡＩＤグループに対するリードアクセスが、シーケンシャルアクセス又はランダムアクセスのいずれであるかといった情報である。
【００６７】
Ｈｏｓｔアクセス性能情報は、上位装置からディスクに対して行われるアクセスの状況に関する情報等である。ＤＡ性能情報は、性能情報収集部１３１によって算出された各ＤＡの稼働率等である。なお、性能情報格納領域部１２０が格納する情報は、上記のものに限られず、運用の形態に応じて適宜変更されるものである。
【００６８】
［実施例１に係るディスクアレイ装置１０による処理の手順］
次に、図９〜図１５を用いて、実施例１に係るディスクアレイ装置１０による処理を説明する。図９は、運用判定・全体フローを示すフローチャートである。図１０は、性能情報収集開始処理を示すフローチャートである。図１１は、性能情報値収集処理を示すフローチャートである。図１２は、性能情報値チェック処理を示すフローチャートである。図１３は、ＤＡ性能異常チェック処理を示すフローチャートである。図１４は、異常検出後処理を示すフローチャートである。図１５は、同一経路ＤＡ異常検出処理を示すフローチャートである。
【００６９】
［運用判定・全体フロー（図９）］
まず、ディスアレイ装置１０は、被疑ＤＡを検出するための処理を行うか否かが予め決められているので、ＣＭ１００は、ＤＡの異常検出（性能に異常があると疑われる被疑ＤＡの検出）の論理が、運用状態にあるか否かのチェックを行う（ステップＳ１０１）。すなわち、ＣＭ１００は、ステップＳ１０１において、被疑ＤＡを検出するための処理を行う運用状態であるか否かをチェックする。
【００７０】
運用状態にない場合には（ステップＳ１０２否定）、すなわち、運用設定がなされていない場合には、ＤＡの異常検出の論理が未動作であるので、ＣＭ１００は処理を終了する。一方、運用状態にある場合には（ステップＳ１０２肯定）、ＣＭ１００は、ＤＡの異常検出の論理について、運用を開始する（ステップＳ１０３）。
【００７１】
ＤＡの異常検出の論理について、運用を開始すると、ＣＭ１００は、まず、性能情報収集開始処理を行う（ステップＳ１０４）。具体的には、ＣＭ１００は、性能情報収集部１３１に対して、ＤＡ各々の性能情報収集の開始を依頼する。なお、性能情報収集開始処理については、後に、図１０を用いて詳述する。
【００７２】
性能情報収集部１３１による性能情報収集処理が開始されると、ＣＭ１００は、図９のループで示される処理の手順を、一定時間間隔で繰り返し実行する。具体的には、まず、性能情報収集部１３１が、ＤＡ各々の性能情報値を収集する（ステップＳ１０５）。ここで、性能情報値とは、ＤＡ各々におけるアイドル時間や、アイドル時間等を元に算出された稼働率（ＤＡ性能情報）、その他、上述した性能情報格納領域部１２０に格納されているＲＡＩＤグループ性能情報などのことである。なお、性能情報値の収集処理については、後に、図１１を用いて詳述する。
【００７３】
続いて、被疑ＤＡ検出部１３２が、性能情報値をチェックする（ステップＳ１０６）。すなわち、被疑ＤＡ検出部１３２は、性能情報収集部１３１によってＤＡ各々について収集された情報に基づいて、同一経路ＤＡである複数のＤＡ間で動作状況を相対的に比較する。そして、被疑ＤＡ検出部１３２は、比較の結果に基づいて、性能に異常があると疑われる被疑ＤＡを検出し、検出した被疑ＤＡについて異常検出加点を行う。なお、性能情報値のチェック処理については、後に、図１２を用いて詳述する。
【００７４】
続いて、異常通知・排除部１３３が、ＤＡの性能異常をチェックする（ステップＳ１０７）。すなわち、異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって蓄積されている異常検出加点に基づいて、異常判定（性能異常が疑われる被疑ＤＡとして検出されたＤＡが、真に異常であるか否かの絞込み判定）を実施する。なお、ＤＡ性能異常のチェック処理については、後に、図１３を用いて詳述する。
【００７５】
そして、異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって性能異常が検出されたか否かを判定する（ステップＳ１０８）。ここで言う「性能異常」とは、被疑ＤＡとして検出されたＤＡが真に異常であるとさらに判定された場合を示す。性能異常が検出された場合には（ステップＳ１０８肯定）、異常通知・排除部１３３は、異常検出後処理を行う（ステップＳ１０９）。
【００７６】
すなわち、異常通知・排除部１３３は、ステップＳ１０８における判定の結果に基づいて、障害通知、または、リカバリ処理を実施する。ここで言う「障害通知」とは、被疑ＤＡが検出されたことを示す通知情報を所定の出力部に出力したり、所定の宛先に送信したりすることを示す。また、「リカバリ処理」とは、被疑ＤＡをアクセス経路の対象から排除することを示す。なお、異常検出後処理については、後に、図１４を用いて詳述する。
【００７７】
ステップＳ１０８において、性能異常が検出されなかった場合には（ステップＳ１０８否定）、異常通知・排除部１３３は、上述したステップＳ１０９の処理を行わない。
【００７８】
続いて、ＣＭ１００は、検出回数をチェックし（ステップＳ１１０）、一定周期チェックしたかを判定し（ステップＳ１１１）、一定周期チェックしている場合には（ステップＳ１１１肯定）、検出カウンタを初期化する（ステップＳ１１２）。一方、一定周期チェックしていない場合には（ステップＳ１１１否定）、検出カウンタを初期化しない。
【００７９】
続いて、ＣＭ１００は、ＤＡの異常検出の論理が、運用状態にあるか否かのチェックを行う（ステップＳ１１３）。運用状態にない場合には（ステップＳ１１４否定）、すなわち、運用設定が解除された場合には、ＣＭ１００は、各動作処理を終了し（ステップＳ１１５）、処理を終了する。一方、運用状態にある場合には（ステップＳ１１４肯定）、ＣＭ１００は、図９のループで示される処理の手順を繰り返し実行する。
【００８０】
［性能情報収集開始処理（図１０）］
次に、図９のステップＳ１０４における性能情報収集開始処理について詳細に説明する。まず、性能情報収集部１３１が、性能情報収集開始処理を開始し（ステップＳ２０１）、性能情報収集の対象となるＤＡをチェックする（ステップＳ２０２）。
【００８１】
対象となるＤＡのチェックが開始されると、ＣＭ１００は、図１０のループで示される処理の手順を、ＤＡの数分繰り返し実行する。具体的には、まず、性能情報収集部１３１は、ＤＡの実装状態や動作状態等をチェックする（ステップＳ２０３）。
【００８２】
チェックの結果、状態が良好であれば（ステップＳ２０４肯定）、性能情報収集部１３１は、性能情報収集開始の指示を行う（ステップＳ２０５）。すなわち、性能情報収集部１３１は、モジュールごとに、ＤＡ各々の性能情報収集を開始するよう指示を行う。ステップＳ２０４において、状態が良好でない場合には（ステップＳ２０４否定）、性能情報収集部１３１は、上述したステップＳ２０５の処理を行わない。
【００８３】
続いて、性能情報収集部１３１は、性能情報収集の対象となるＤＡの残数をチェックし（ステップＳ２０６）、残数がなければ（ステップＳ２０７肯定）、性能情報収集開始処理を終了する（ステップＳ２０８）。
【００８４】
［性能情報値収集処理（図１１）］
次に、図９のステップＳ１０５における性能情報値収集処理について詳細に説明する。まず、性能情報収集部１３１が、性能情報収集処理を開始し（ステップＳ３０１）、性能情報収集の対象となるＤＡをチェックする（ステップＳ３０２）。
【００８５】
対象となるＤＡのチェックが開始されると、ＣＭ１００は、図１１のループで示される処理の手順を、ＤＡの数分繰り返し実行する。具体的には、まず、性能情報収集部１３１は、ＤＡの実装状態や動作状態等をチェックする（ステップＳ３０３）。
【００８６】
チェックの結果、状態が良好でない場合には（ステップＳ３０４否定）、すなわち、ＤＡが未実装である場合や、ＤＡが故障している場合や、ＤＡの電源がオフである場合などには、性能情報収集部１３１は、かかるＤＡを対象外のＤＡであると判定して（ステップＳ３０５）、スキップする。
【００８７】
一方、状態が良好である場合には（ステップＳ３０４肯定）、性能情報収集部１３１は、性能情報収集状態をチェックする（ステップＳ３０６）。すなわち、性能情報収集部１３１は、未実装状態から実装状態になった場合や、故障状態から復帰状態になった場合の再起動処理を行う。
【００８８】
ここで、性能情報収集が動作中となっていない場合には（ステップＳ３０７否定）、性能情報収集部１３１は、性能情報収集開始の指示を行い（ステップＳ３０８）、初期値を設定する（ステップＳ３０９）。一方、性能情報収集がすでに動作中となっている場合には（ステップＳ３０７肯定）、性能情報収集部１３１は、性能情報値を送信するよう指示を行う（ステップＳ３１０）。すなわち、性能情報収集部１３１は、対象となるＤＡに対して、性能情報値を送信するよう指示を行う。ここで、性能情報値とは、ＤＡ各々におけるアイドル時間等のことである。
【００８９】
そして、性能情報収集部１３１は、性能情報値を管理メモリに格納する（ステップＳ３１１）。すなわち、性能情報収集部１３１は、性能情報値を、ＣＭ１００内のキャッシュメモリや、その他性能情報格納領域部１２０などに格納する。
【００９０】
続いて、性能情報収集部１３１は、性能情報収集の対象となるＤＡの残数をチェックし（ステップＳ３１２）、残数がなければ（ステップＳ３１３肯定）、性能情報収集処理を終了する（ステップＳ３１４）。なお、性能情報収集部１３１は、性能情報値として、ＤＡから送信されたアイドル時間の他に、アイドル時間等を元に算出された稼働率、その他、上述した性能情報格納領域部１２０に格納されているＲＡＩＤグループ性能情報などを、適宜格納する。これらの性能情報値は、必要に応じて適宜組み合わせるなどして利用される。
【００９１】
［性能情報値チェック処理（図１２）］
次に、図９のステップＳ１０６における性能情報値チェック処理について詳細に説明する。まず、被疑ＤＡ検出部１３２が、性能情報値チェック処理を開始する（ステップＳ４０１）。
【００９２】
性能情報値チェック処理が開始されると、被疑ＤＡ検出部１３２は、図１２のループで示される処理の手順を、同一経路ＤＡに該当するＤＡの数分繰り返し実行する。具体的には、被疑ＤＡ検出部１３２は、同一経路ＤＡ異常検出処理を行う（ステップＳ４０２）。すなわち、被疑ＤＡ検出部１３２は、同一のアクセス経路を制御している複数のＤＡについて、異常ＤＡ検出のチェックを行う。なお、同一経路ＤＡ異常検出処理については、後に、図１５を用いて詳述する。
【００９３】
続いて、被疑ＤＡ検出部１３２は、検出結果を確認し（ステップＳ４０３）、異常ＤＡが検出されていた場合には（ステップＳ４０４肯定）、対象となる異常ＤＡの検出情報を加点する（ステップＳ４０５）。すなわち、被疑ＤＡ検出部１３２は、異常が検出されたＤＡについて、検出の情報を加点形式で蓄積する。
【００９４】
その後、被疑ＤＡ検出部１３２は、性能情報値のチェック処理を終了する（ステップＳ４０６）。
【００９５】
［ＤＡ性能異常チェック処理（図１３）］
次に、図９のステップＳ１０７におけるＤＡ性能異常チェック処理について詳細に説明する。まず、異常通知・排除部１３３が、ＤＡ性能異常チェック処理を開始する（ステップＳ５０１）。
【００９６】
ＤＡ性能異常チェック処理が開始されると、異常通知・排除部１３３は、図１３のループで示される処理の手順を、ＤＡの数分繰り返し実行する。具体的には、まず、異常通知・排除部１３３は、ＤＡ性能異常検出の加点をチェックする（ステップＳ５０２）。すなわち、異常通知・排除部１３３は、被疑ＤＡ検出部１３２によって検出された異常ＤＡについて、検出の情報を加点形式で蓄積した点数をチェックする。
【００９７】
そして、異常通知・排除部１３３は、チェックした点数が所定の閾値以上である場合には（ステップＳ５０３肯定）、対象となるＤＡについて、異常検出フラグをオンにする（ステップＳ５０４）。閾値以上でない場合には（ステップＳ５０３否定）、異常通知・排除部１３３は、上述したステップＳ５０４の処理を行わない。
【００９８】
その後、異常通知・排除部１３３は、ＤＡ性能異常のチェック処理を終了する（ステップＳ５０５）。
【００９９】
［異常検出後処理（図１４）］
次に、図９のステップＳ１０９における異常検出後処理について詳細に説明する。まず、異常通知・排除部１３３は、異常検出後処理を開始する（ステップＳ６０１）。
【０１００】
異常検出後処理が開始されると、異常通知・排除部１３３は、図１４のループでしめされる処理の手順を、異常ＤＡとして検出したＤＡの数分繰り返し実行する。なお、ここで言う「異常ＤＡとして検出したＤＡ」とは、被疑ＤＡ検出部１３２によって被疑ＤＡとして検出されたＤＡのうち、異常通知・排除部１３３によって異常検出フラグがオンにされたＤＡを示す。
【０１０１】
具体的には、まず、異常通知・排除部１３３は、ディスクアレイ装置１０の設定状態に依存することから、処理モードをチェックする（ステップＳ６０２）。状態が、縮退優先であれば、切り離し処理を行う（ステップＳ６０３〜Ｓ６０４）。すなわち、異常通知・排除部１３３は、異常検出フラグがオンにされた被疑ＤＡを、アクセス経路の対象から排除する。
【０１０２】
また、異常通知・排除部１３３は、状態が、通報優先であれば、障害通報処理を行う（ステップＳ６０５）。すなわち、異常通知・排除部１３３は、異常検出フラグがオンにされた被疑ＤＡが検出されたことを示す通知情報を、所定の出力部に出力したり、所定の宛先に送信したりする。例えば、異常通知・排除部１３３は、通知情報をディスプレイに表示したり、スピーカに音声出力したり、ディスクアレイ装置１０の監視システムにメール送信したりする。
【０１０３】
また、異常通知・排除部１３３は、状態が、縮退優先や通報優先以外であれば、内部情報として保持する（ステップＳ６０６）。すなわち、異常通知・排除部１３３は、異常検出フラグがオンにされた被疑ＤＡについて、内部情報として保持する。
【０１０４】
その後、異常通知・排除部１３３は、異常検出後処理を終了する（ステップＳ６０７）。
【０１０５】
［同一経路ＤＡ異常検出処理（図１５）］
次に、図１２のステップＳ４０２における同一経路ＤＡ異常検出処理について詳細に説明する。まず、被疑ＤＡ検出部１３２は、同一のアクセス経路を制御しているＤＡについて、異常ＤＡ検出のチェック処理を開始する（ステップＳ７０１）。
【０１０６】
続いて、被疑ＤＡ検出部１３２は、同一経路ＤＡ（構成ＤＡ）の稼働率（Ｂｕｓｙ率）をチェックし（ステップＳ７０２）、稼働率（Ｂｕｓｙ率）が所定の値を超過しているか否かを判定する（ステップＳ７０３）。具体的には、被疑ＤＡ検出部１３２は、処理対象の同一経路ＤＡに該当する複数のＤＡのうち、１個でも稼働率が所定の値を超過しているか否かを判定する。
【０１０７】
なお、被疑ＤＡ検出部１３２は、ステップＳ７０２において、同一経路ＤＡに該当するＤＡが２個以上である場合に、稼働率（Ｂｕｓｙ率）をチェックする。すなわち、被疑ＤＡ検出部１３２は、同一経路ＤＡに該当するＤＡが１個である場合には、稼働率（Ｂｕｓｙ率）のチェックを行わず、処理を終了する。これは、アクセス経路が冗長化されていない場合には、ＤＡの稼働率が高くなることもあるからである。また、かかるＤＡがアクセス経路の対象から排除されることを防止するためでもある。
【０１０８】
図２の例を用いて説明する。図２の例において、ＤＡ１２１ａとＤＡ１２２ａは同一経路ＤＡである。したがって、ＤＡ１２１ａとＤＡ１２２ａとが処理対象の同一経路ＤＡである場合、被疑ＤＡ検出部１３２は、ＤＡ１２１ａの稼働率、又は、ＤＡ１２２ａの稼働率のいずれかが、所定の値を超過しているか否かを判定する。
【０１０９】
そして、同一経路ＤＡに該当する全てのＤＡについて、稼働率が所定の値を超過していない場合（ステップＳ７０３否定）、被疑ＤＡ検出部１３２は、かかる同一経路ＤＡに該当するＤＡに対して異常なしと判断する（ステップＳ７０４）。そして、被疑ＤＡ検出部１３２は、異常ＤＡ検出のチェック処理を終了する（ステップＳ７０５）。
【０１１０】
このように判断する理由について説明する。例えば、図２に示した例のように、ＤＡ１２１ｂとＤＡ１２２ｂとが同一経路ＤＡであるものとする。そして、ＤＡ１２１ｂの稼働率が『５』であり、ＤＡ１２２ｂの稼働率が『１』であるものとする。かかる場合、ＤＡ１２１ｂの稼働率『５』は、ＤＡ１２２ｂの稼働率『１』の５倍である。したがって、ＤＡ１２１ｂの性能が異常とも考えられる。しかし、稼働率が『５』である状態は、一般に、ＤＡの性能が異常であると言い難い。また、ＤＡの稼働率が『５』と『１』とであれば、同一経路ＤＡの稼働率は十分に分散されていると考えられる。このようなことから、被疑ＤＡ検出部１３２は、同一経路ＤＡに該当する全てのＤＡについて、稼働率が所定の値を超過していない場合には、ＤＡに性能異常が発生してないと判断する。
【０１１１】
一方、同一経路ＤＡに該当する複数のＤＡのうち、１個でも稼働率が所定の値を超過している場合（ステップＳ７０３肯定）、被疑ＤＡ検出部１３２は、かかる同一経路ＤＡに該当するＤＡ間で、稼働率（Ｂｕｓｙ率）を相対的に比較する（ステップＳ７０６）。
【０１１２】
比較の結果、差分がない場合には（ステップＳ７０７否定）、被疑ＤＡ検出部１３２は、異常なしと判断して（ステップＳ７０４）、異常ＤＡ検出のチェック処理を終了する（ステップＳ７０５）。すなわち、被疑ＤＡ検出部１３２は、ＤＡ間で稼働率を相対的に比較し、双方の稼働率にｎ倍（ｎは、別途設定される所定の値、例えば、２〜５の値など）以上の差がない場合には、被疑ＤＡはなしと判断して、チェックを終了する。
【０１１３】
このように判断する理由について説明する。稼働率にｎ倍以上の差がない場合、同一経路ＤＡの稼働率は十分に分散されているからである。例えば、図２に示した例のように、ＤＡ１２１ｂとＤＡ１２２ｂとが同一経路ＤＡであるものとする。そして、ＤＡ１２１ｂの稼働率が『９０』であり、ＤＡ１２２ｂの稼働率が『９１』であるものとする。かかる場合、ＤＡ１２１ｂ及びＤＡ１２２ｂの稼働率が高いため、ＤＡ１２１ｂ及びＤＡ１２２ｂに性能異常が発生しているとも考えられる。しかし、ＤＡ１２１ｂ及びＤＡ１２２ｂの稼働率には、ほとんど差がないので、同一経路ＤＡの稼働率は十分に分散されている。したがって、双方のＤＡの稼働率が高い場合であっても、一時的に高負荷状態になっていると考えられるので、双方のＤＡに性能異常は発生していないと判断する。
【０１１４】
一方、差分がある場合には（ステップＳ７０７肯定）、被疑ＤＡ検出部１３２は、アクセス状況をチェックする（ステップＳ７０８）。すなわち、被疑ＤＡ検出部１３２は、ＤＡ間で稼働率を相対的に比較し、双方の稼働率にｎ倍以上の差がある場合には、ＲｅａｄやＷｒｉｔｅのアクセス比率等をチェックする。
【０１１５】
そして、被疑ＤＡ検出部１３２は、Ｒｅａｄアクセスが過多である場合には（ステップＳ７０９肯定）、異常なしと判断して（ステップＳ７０４）、異常ＤＡ検出のチェック処理を終了する（ステップＳ７０５）。一方、Ｒｅａｄアクセスが過多でない場合には（ステップＳ７０９否定）、被疑ＤＡ検出部１３２は、異常ありと判断して（ステップＳ７１０）、異常ＤＡ検出のチェック処理を終了する（ステップＳ７０５）。
【０１１６】
ここで、上記ステップＳ７０８において、アクセス状況をチェックした理由について説明する。ディスアレイ装置１０は、アクセス経路が冗長化されている場合であっても、特定のアクセス経路に偏ってディスクアクセスを行うことがある。例えば、サイズの大きいデータに対して、単一のリードシーケンシャルアクセスが発生している場合、ディスアレイ装置１０は、アクセス経路を分散させずに、特定のアクセス経路を用いてＲｅａｄアクセスを行うことがある。このため、同一経路ＤＡ異常検出処理においては、稼働率をＤＡ間で相対的に比較するのみならず、上述したように、Ｒｅａｄアクセスの状況も併せて検討した上で、性能に異常があると疑われる被疑ＤＡであるか否かを検出する。なお、被疑ＤＡ検出部１３２は、例えば、性能情報格納領域部１２０に格納されているＲＡＩＤグループ性能情報などに基づいて、単一のリードシーケンシャルアクセスが発生しているか否かを判断する。
【０１１７】
［実施例１の効果］
上述してきたように、実施例１に係るディスクアレイ装置１０は、ディスクへのアクセス経路となるＤＡ各々の性能に関する情報を収集する。そして、ディスクアレイ装置１０は、収集した情報を、同一のアクセス経路を制御しているＤＡ間で相対的に比較し、比較の結果に基づいて性能に異常があると疑われる被疑ＤＡを検出する。これにより、実施例１に係るディスクアレイ装置１０は、性能異常が発生しているＤＡを適切に検出することが可能になる。
【０１１８】
また、実施例１によれば、性能に関する情報として、所定の時間内に行われたＤＡのアイドル時間から導出されるＤＡ各々の稼働率を収集し、稼働率を相対的に比較して被疑ＤＡを検出するので、性能異常を適切に検出することが可能になる。
【０１１９】
また、実施例１によれば、被疑ＤＡを検出すると、被疑ＤＡが検出されたことを通知する通知情報を所定の出力部に出力もしくは通信部を経由して所定の宛先に送信するので、性能異常に対する対処を適切に行うことが可能になる。
【０１２０】
また、実施例１によれば、被疑ＤＡを検出すると、当該被疑ＤＡをアクセス経路の対象から排除するので、性能異常に対する対処を適切に行うことが可能になる。
【０１２１】
また、実施例１によれば、被疑ＤＡを検出すると、被疑ＤＡについて検出の情報を加点形式で蓄積し、蓄積された情報の点数が所定の閾値を超過したことを条件として、通知情報を出力もしくは送信、あるいは、被疑ＤＡを排除するなどするので、性能異常をより正確に検出した上で、性能異常に対する対処を適切に行うことが可能になる。
【実施例２】
【０１２２】
［他の実施例］
ところで、本願に開示するディスクアレイ装置は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本願に開示するディスクアレイ装置の他の実施例について説明する。
【０１２３】
上記実施例１においては、ディスクアレイ装置が、被疑ＤＡを検出した後に、検出の情報を加点形式で蓄積し、蓄積した情報の点数が所定の閾値を超過したことを条件として、通報や切り離しが行われる事例について説明した。具体的には、実施例１では、性能異常が疑われる被疑ＤＡとして検出されたＤＡが真に異常であるか否かをさらに判定する事例について説明した。しかし、本願に開示するディスクアレイ装置はこれに限られるものではない。例えば、ディスクアレイ装置は、蓄積した情報の点数が所定の閾値を超過するか否かに関係なく、被疑ＤＡを検出した際に、当該被疑ＤＡが性能異常のＤＡであるとして、直ちに、通報や切り離しを行ってもよい。また、例えば、ディスクアレイ装置は、通報や切り離しを行わずに、被疑ＤＡを検出し、その情報を内部情報として保持してもよい。
【０１２４】
［比較処理］
また、上記実施例１においては、同一経路ＤＡの稼働率はほぼ均等になることが望ましいという立場から説明した。具体的には、上記実施例１では、本来、同一経路ＤＡの稼働率は均等であるはずなので、同一経路ＤＡの稼働率にｎ倍以上の差があった場合に、稼働率が高いＤＡを被疑ＤＡとして検出する例を説明した。しかし、ディスクアレイ装置によっては、同一経路ＤＡであっても、稼働率が均等にならないように設計される場合もあり得る。例えば、ＤＡ１２１とＤＡ１２２とが同一経路ＤＡである場合に、ＤＡ１２１とＤＡ１２２との稼働率が２：１になるように設計される場合もあり得る。このようなディスクアレイ装置では、ＤＡ１２１とＤＡ１２２との稼働率に差があっても性能異常が発生しているとは言い切れない。
【０１２５】
そこで、稼働率が均等にならないように設計されている場合、ディスクアレイ装置は、稼働率を補正した後に、比較処理を行ってもよい。例えば、上記例のように、同一経路ＤＡであるＤＡ１２１とＤＡ１２２との稼働率が２：１になるように設計されているものとする。そして、ＤＡ１２１の稼働率が『７０』であり、ＤＡ１２２の稼働率が『４０』であったものとする。かかる場合、ディスクアレイ装置は、ＤＡ１２１の稼働率『７０』を『２』で除算し、除算後の値『３５』と、ＤＡ１２２の稼働率『４０』とを比較してもよい。そして、ディスクアレイ装置は、比較の結果、双方の稼働率にｎ倍以上の差があった場合に、稼働率の高いＤＡを被疑ＤＡとして検出すればよい。
【０１２６】
［システム構成等］
また、上記実施例１において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる（例えば、異常通知・排除部によって利用される閾値は、ディスクアレイ装置の内部処理で自動生成されても、あるいは、ディスクアレイ装置の運用管理者によって入力されてもよい）。この他、上記文書中や図面中で示した処理手順、制御手順（図８〜１５）、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示（図２〜図５）のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２８】
［プログラム］
また、上記実施例１で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１６を用いて、上記の実施例１と同様の機能を有するディスクアレイ装置制御プログラムを実行するコンピュータの一例を説明する。図１６は、ディスクアレイ装置制御プログラムを実行するコンピュータを示す図である。
【０１２９】
図１６に示すように、コンピュータ１０００は、キャッシュ１００１、ＲＡＭ１００２、ＨＤＤ１００３、ＲＯＭ１００４、及びＣＰＵ１００５が、バス１００６によって接続されている。ここで、ＲＯＭ１００４には、上記の実施例１と同様の機能を発揮するディスクアレイ装置制御プログラム、つまり、図１６に示すように、ＩＯ制御プログラム１００４ａと、Ｓｙｓｔｅｍ制御プログラム１００４ｂと、装置監視プログラム１００４ｃと、性能情報収集プログラム１００４ｄと、被疑ＤＡ検出プログラム１００４ｅと、異常通知・排除プログラム１００４ｆとが予め記憶されている。
【０１３０】
そして、ＣＰＵ１００５は、これらのプログラム１００４ａ〜１００４ｆ各々を読み出して実行することで、図１６に示すように、各プログラム１００４ａ〜１００４ｆ各々は、ＩＯ制御プロセス１００５ａと、Ｓｙｓｔｅｍ制御プロセス１００５ｂと、装置監視プロセス１００５ｃと、性能情報収集プロセス１００５ｄと、被疑ＤＡ検出プロセス１００５ｅと、異常通知・排除プロセス１００５ｆとなる。なお、各プロセス１００５ａ〜１００５ｆ各々は、図５に示した、ＩＯ制御部１１１、Ｓｙｓｔｅｍ制御部１１２、装置監視部１１３、性能情報収集部１３１、被疑ＤＡ検出部１３２、及び異常通知・排除部１３３に各々対応する。
【０１３１】
また、ＨＤＤ１００３には、図１６に示すように、性能情報格納テーブル１００３ａが設けられる。なお、性能情報格納テーブル１００３ａは、図５に示した、性能情報格納領域部１２０に対応する。
【０１３２】
ところで、上記した各プログラム１００４ａ〜１００４ｆについては、必ずしもＲＯＭ１００４に記憶させておく必要はなく、例えば、コンピュータ１０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ１０００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１０００に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１３３】
１０、２０、３０  ディスクアレイ装置
１１ａ、１１ｂ  ルータ
１２  ＨＯＳＴ
１３  ＦＣスイッチ
２１  ＣＥ部
１００、１００ａ〜１００ｊ  ＣＭ
１１１  ＩＯ制御部
１１１ａ、１１１ｂ  ＣＰＵ
１１２  Ｓｙｓｔｅｍ制御部
１１３  装置監視部
１２０  性能情報格納領域部
１２１、１２１ａ〜１２１ｊ  ＤＡ
１２２、１２２ａ〜１２２ｊ  ＤＡ
１３０  制御部
１３１  性能情報収集部
１３２  被疑ＤＡ検出部
１３３  異常通知・排除部
２２１ａ  アクセス監視部
３００  ＤＥ部
３１０〜３４０  ＤＥ
【図１】
2010176513.tif 000003
【図２】
2010176513.tif 000004
【図３】
2010176513.tif 000005
【図４】
2010176513.tif 000006
【図５】
2010176513.tif 000007
【図６】
2010176513.tif 000008
【図７】
2010176513.tif 000009
【図８】
2010176513.tif 000010
【図９】
2010176513.tif 000011
【図１０】
2010176513.tif 000012
【図１１】
2010176513.tif 000013
【図１２】
2010176513.tif 000014
【図１３】
2010176513.tif 000015
【図１４】
2010176513.tif 000016
【図１５】
2010176513.tif 000017
【図１６】
2010176513.tif 000018