(57)【要約】【課題】潜在故障状態の記憶装置を検出すること。【解決手段】ストレージ制御装置１０１は、１または複数の記憶装置Ｄそれぞれの負荷状況およびレスポンス状況を表す性能情報（例えば、性能情報１１０）を取得する。１または複数の記憶装置Ｄは、上位装置１０２からの要求に応じてアクセスされる。ストレージ制御装置１０１は、取得した性能情報に基づいて、１または複数の記憶装置Ｄのうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置Ｄを検出する。【選択図】図１
2019036163.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からの要求に応じてアクセスされる１または複数の記憶装置を制御するストレージ制御装置であって、
前記１または複数の記憶装置それぞれの負荷状況およびレスポンス状況を表す性能情報を取得し、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置を検出する、
制御部を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、アクセスがないと判断した記憶装置を抽出し、
抽出した前記記憶装置に対して、負荷が前記第１の閾値を超えないように、規定量分のアクセスコマンドを発行した際のレスポンスタイムを計測し、
抽出した前記記憶装置のうち、計測した前記レスポンスタイムが前記第２の閾値以上となる記憶装置を検出する、
ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
検出した前記記憶装置に対してリダンダントコピーを実施する、ことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
検出した前記記憶装置が、アクセスがないと判断した記憶装置のときは、代替記憶装置が複数存在する場合に、当該記憶装置に対してリダンダントコピーを実施する、ことを特徴とする請求項２に記載のストレージ制御装置。
【請求項５】
前記アクセスコマンドには、前記上位装置からの要求に応じて発行されるアクセスコマンドよりも低い優先度が設定される、ことを特徴とする請求項２に記載のストレージ制御装置。
【請求項６】
上位装置からの要求に応じてアクセスされる１または複数の記憶装置を制御するコンピュータに、
前記１または複数の記憶装置それぞれの負荷状況およびレスポンス状況を表す性能情報を取得し、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置を検出する、
処理を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、および制御プログラムに関する。
【背景技術】
【０００２】
従来、リダンダントコピー（Ｒｅｄｕｎｄａｎｔ  Ｃｏｐｙ）と呼ばれるリカバリ処理がある。リダンダントコピーでは、統計加点処理等を利用して故障の予兆を検知し、バックグラウンドで被疑ディスクから代替ディスク（ホットスペア）へのデータ移行を実施する。
【０００３】
先行技術としては、例えば、障害の発生時にポイントを減点し、障害に至らないがコマンド処理時間が処理時間基準値を超える応答遅延の時にポイントを減点し、ポイントが第１のポイント基準値を下回った場合に不良部品を縮退するディスクアレイ装置がある。また、被仮想化ストレージの障害を検知した場合、当該障害による波及範囲を調べ、対処が必要なデバイスを特定し、当該デバイスの性能や信頼性などの属性に適応する移行先デバイスを決定し、仮想化ストレージに対してデバイス移行を指示する技術がある。また、未割り当てのデータ記憶装置を用いて劣化したデータ記憶アレイを最良の信頼性、最良の性能及び最良の効率に復元することができると判定される場合に、未割り当てのデータ記憶装置を含むように劣化したデータ記憶アレイを再構成する技術がある。また、ホストからアクセスが無いディスクストレージ装置の待機状態において、ディスクストレージ装置の機能に関する所定の検査、好ましくはリードテスト、ライトサーボテスト、ライトテストのうちの少なくとも１つのテストを実施する技術がある。また、マスタディスク側のディスク装置と上位装置との間におけるデータバスを経由した入出力処理情報（イベント）の授受を、スレーブ側のディスク装置がモニタして自装置内に採取して記憶し、記憶したイベント情報を自装置内で再現する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２５２６９２号公報
【特許文献２】特開２００５−３２６９３５号公報
【特許文献３】特開２００７−２００２９９号公報
【特許文献４】特開２００１−５６１６号公報
【特許文献５】特開２００３−１５０３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、レスポンスタイムアウトや媒体エラーは発生していないものの、動作がスローダウンしている潜在故障状態の記憶装置を発見することが難しい。
【０００６】
一つの側面では、本発明は、潜在故障状態の記憶装置を検出することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、上位装置からの要求に応じてアクセスされる１または複数の記憶装置を制御するストレージ制御装置であって、前記１または複数の記憶装置それぞれの負荷状況およびレスポンス状況を表す性能情報を取得し、取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置を検出するストレージ制御装置が提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、潜在故障状態の記憶装置を検出することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。
【図２】図２は、ストレージシステム２００のシステム構成例を示す説明図である。
【図３】図３は、ストレージ制御装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、性能情報テーブル２２０の記憶内容の一例を示す説明図である。
【図５】図５は、コンフィグテーブル２３０の記憶内容の一例を示す説明図である。
【図６】図６は、ストレージ制御装置１０１の機能的構成例を示すブロック図である。
【図７】図７は、リダンダントコピーの具体的な処理内容の一例を示す説明図である。
【図８】図８は、ストレージ制御装置１０１の第１の潜在故障検出処理手順の一例を示すフローチャート（その１）である。
【図９】図９は、ストレージ制御装置１０１の第１の潜在故障検出処理手順の一例を示すフローチャート（その２）である。
【図１０】図１０は、ストレージ制御装置１０１の第２の潜在故障検出処理手順の一例を示すフローチャートである。
【図１１】図１１は、新診断処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるストレージ制御装置、および制御プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。図１において、ストレージ制御装置１０１は、上位装置１０２からのストレージ１０３に対する要求を処理するコンピュータである。上位装置１０２は、情報処理を行うコンピュータであり、例えば、業務処理を行う業務サーバである。ストレージ１０３に対する要求は、例えば、ストレージ１０３に対するＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）要求である。
【００１２】
ストレージ１０３は、データを記憶する１以上の記憶装置Ｄ（図１の例では、記憶装置Ｄ１〜Ｄ３）を含む。記憶装置Ｄは、例えば、ハードディスク、光ディスク、フラッシュメモリなどである。例えば、ストレージ制御装置１０１は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構成のストレージ装置に適用される。
【００１３】
ここで、ストレージ装置内のディスク故障の予兆を検知した際のリカバリ処理として、リダンダントコピーがある。リダンダントコピーでは、ディスク故障の予兆を検知すると、バックグラウンドで被疑ディスクから代替ディスク（ホットスペア）へのデータ移行を実施する。
【００１４】
被疑ディスクの検出には、例えば、統計加点処理が利用される。統計加点処理は、各ディスク装置（例えば、記憶装置Ｄ）について、レスポンスタイムアウトや媒体エラーが発生するたびに加点していき、監視期間内に統計加点値が閾値を超えたディスク装置を被疑ディスクとして検出する処理である。
【００１５】
また、定期的にストレージ装置内のディスク装置を診断する機能として、パトロール診断処理と呼ばれるものがある。パトロール診断処理では、ホスト（例えば、上位装置１０２）からのＩ／Ｏ要求とは非同期に、全ディスク装置（ホットスペアを含む）に対してデータの入力／出力のためのＩ／Ｏコマンドを発行して故障診断を行う。
【００１６】
パトロール診断処理は、ディスク装置のエラーを早期に検出して故障ディスクの切り離しを行うことにより、二重故障によるデータロストやデータ化けを防ぐことを主な目的としている。ただし、パトロール診断処理には時間がかかる。例えば、４［ＴＢ］のディスクの場合、ディスク内の全領域を診断するために、２週間程度を要する。また、パトロール診断処理においても、被疑ディスクの検出には、例えば、統計加点処理が利用される。
【００１７】
しかしながら、統計加点処理では、レスポンスタイムアウトや媒体エラーなどの深刻度が高いエラーだけが統計加点の対象となっている。したがって、統計加点処理では、レスポンスタイムアウトや媒体エラーは発生していないものの、動作がスローダウンしている潜在故障状態（故障予防の交換対象）のディスク装置を発見することが難しい。
【００１８】
例えば、ホストからのＩ／Ｏ要求に応じたディスク装置へのアクセスのレスポンスが、通常数ミリセックで終わるところ、数十〜数百ミリセックかかることがある。数秒程度（例えば、５秒以上）かかるようであれば、統計加点の対象となるが、数十〜数百ミリセック程度（例えば、５秒未満）であれば、統計加点の対象とならない。しかし、統計加点の対象とならない遅延（例えば、５秒未満の遅延）であっても、それが日常的に発生すると、ディスク装置がスローダウンしてホストへの応答性能の低下を招いてしまう。
【００１９】
ディスク装置が潜在故障状態となる要因としては、ディスク装置の経年劣化、外的要因による損傷、ディスク上の微少な塵埃や潤滑油の轍などが挙げられる。例えば、ディスク上の微少な塵埃によって読み込みに失敗してリトライ動作が発生した場合、最終的に読み込むことができれば、レスポンスタイムアウトや媒体エラーは発生しないもののレスポンスに時間がかかることがある。
【００２０】
なお、スローダウンしているディスク装置を検出するために、統計加点の対象とする事象の条件を厳しくすることが考えられる。例えば、遅延のエラーを検出するための閾値を低く設定することで、スローダウンを引き起こすような遅延もエラーとして検出することが可能となる。ところが、エラーを検出するための閾値を低くしただけでは、アクセス集中による繁忙状態に起因するレスポンス低下と、潜在故障状態に起因するレスポンス低下とを区別することができない。
【００２１】
そこで、本実施の形態では、レスポンスタイムアウトや媒体エラーは発生していないものの、スローダウンしている潜在故障状態の記憶装置Ｄを検出するストレージ制御装置１０１について説明する。以下、ストレージ制御装置１０１の処理例について説明する。
【００２２】
（１）ストレージ制御装置１０１は、上位装置１０２からのＩ／Ｏ要求に応じてアクセスされる１または複数の記憶装置Ｄそれぞれの負荷状況およびレスポンス状況を表す性能情報を取得する。ここで、記憶装置Ｄの負荷状況は、アクセスにかかる負荷を表しており、例えば、ビジー率によって表される。ビジー率は、所定期間（例えば、直近１時間）での記憶装置Ｄの負荷状況を示す指標値である（単位：％）。
【００２３】
また、記憶装置Ｄのレスポンス状況は、記憶装置Ｄに対してアクセスコマンドを発行してから応答があるまでのレスポンスタイム（応答時間）によって表される（単位：秒）。図１の例では、ストレージ１０３内の各記憶装置Ｄ１〜Ｄ３の負荷状況およびレスポンス状況を表す性能情報１１０が取得される。
【００２４】
（２）ストレージ制御装置１０１は、取得した性能情報に基づいて、１または複数の記憶装置Ｄのうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置Ｄを検出する。ここで、第１および第２の閾値は、任意に設定可能である。
【００２５】
第１の閾値は、記憶装置Ｄの負荷が第１の閾値以上となると、記憶装置Ｄが高負荷状態であると判断できる値に設定される。高負荷状態は、例えば、アクセス集中による繁忙状態である。より具体的には、例えば、記憶装置Ｄの負荷状況がビジー率によって表される場合、第１の閾値は、５０％程度の値に設定される。
【００２６】
第２の閾値は、記憶装置Ｄについてのタイムアウト値よりも低い値である。タイムアウト値とは、レスポンスタイムアウト（Ｉ／Ｏタイムアウト）を判断するための値（応答時間）である。具体的には、例えば、第２の閾値は、記憶装置Ｄについての統計加点処理やパトロール診断処理において、レスポンスタイムアウトを判断する値よりも低い値である。一例として、レスポンスタイムアウトを判断する値が「５秒」の場合、第２の閾値は、例えば、２秒程度の値に設定される。
【００２７】
図１の例では、ストレージ制御装置１０１は、取得した性能情報１１０に基づいて、ストレージ１０３内の記憶装置Ｄ１〜Ｄ３のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置Ｄを検出する。ここでは、記憶装置Ｄ１〜Ｄ３のうち、記憶装置Ｄ３の負荷が第１の閾値より低く、かつ、記憶装置Ｄ３のレスポンスタイムが第２の閾値以上である場合を想定する。この場合、記憶装置Ｄ３が検出される。
【００２８】
このように、ストレージ制御装置１０１によれば、上位装置１０２からのＩ／Ｏ要求に応じてアクセスされる１または複数の記憶装置Ｄのうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置Ｄを検出することができる。これにより、レスポンスタイムアウトや媒体エラーは発生していないものの、スローダウンしている潜在故障状態の記憶装置Ｄを早期に発見することができる。また、繁忙状態に起因してレスポンスが低下している記憶装置Ｄを、潜在故障状態の記憶装置Ｄとして誤検出するのを防ぐことができる。
【００２９】
図１の例では、潜在故障状態の記憶装置Ｄとして、記憶装置Ｄ３が検出される。このため、例えば、記憶装置Ｄ３に対してリダンダントコピーを実施することで、統計加点処理では検出できないような微妙な不具合により、運用に影響を与えるような不調を抱えている記憶装置Ｄ３を切り離すことができる。これにより、潜在故障状態である記憶装置Ｄ３の性能劣化の影響によるストレージ１０３全体の応答性能の低下を抑えることができる。
【００３０】
（ストレージシステム２００のシステム構成例）
つぎに、図１に示したストレージ制御装置１０１をストレージシステム２００に適用した場合について説明する。ストレージシステム２００は、例えば、ＲＡＩＤ５，６等の冗長化されたシステムである。
【００３１】
図２は、ストレージシステム２００のシステム構成例を示す説明図である。図２において、ストレージシステム２００は、ストレージ装置２０１と、ホスト装置２０２と、を含む。ストレージシステム２００において、ストレージ装置２０１およびホスト装置２０２は、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３２】
ストレージ装置２０１は、ストレージ制御装置１０１とストレージＳＴを含む。ストレージＳＴは、複数のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含む。ただし、ＨＤＤの代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いることにしてもよい。ストレージＳＴは、１以上のホットスペアＨＳを含む。ホットスペアＨＳは、代替用のＨＤＤである。
【００３３】
ストレージＳＴにおいて、例えば、１以上のＨＤＤからＲＡＩＤグループが作成される。図２の例では、ＨＤＤ１〜ＨＤＤ４からＲＡＩＤグループＧ１が作成されている。ＨＤＤ５〜ＨＤＤ８からＲＡＩＤグループＧ２が作成されている。なお、図１に示したストレージ１０３は、例えば、ストレージＳＴに対応する。
【００３４】
ストレージ制御装置１０１は、ストレージＳＴ内の各ＨＤＤにアクセス可能であり、ホスト装置２０２からのストレージＳＴに対するＩ／Ｏ要求を処理する。ストレージ制御装置１０１は、不図示の構成情報や割当情報を有する。構成情報には、例えば、ストレージシステム２００において作成された論理ボリュームや、ＲＡＩＤグループを構成するディスクについての種々の管理情報が格納される。割当情報には、例えば、シン・プロビジョニング構成における割り当て単位（チャンク）ごとの情報や、割り当て済みのチャンクに対する論理アドレスと物理アドレスの対応情報が格納される。
【００３５】
また、ストレージ制御装置１０１は、性能情報テーブル２２０およびコンフィグテーブル２３０を有する。性能情報テーブル２２０およびコンフィグテーブル２３０の記憶内容については、図４および図５を用いて後述する。ストレージシステム２００において、ストレージ制御装置１０１とホスト装置２０２は、例えば、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）やｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）で接続される。
【００３６】
ホスト装置２０２は、ストレージＳＴへのＩ／Ｏ要求を行うコンピュータである。具体的には、例えば、ホスト装置２０２は、ストレージシステム２００により提供される論理ボリュームに対するデータのリード／ライトを要求する。例えば、ホスト装置２０２は、ストレージシステム２００を利用する業務サーバである。図１に示した上位装置１０２は、例えば、ホスト装置２０２に対応する。
【００３７】
なお、図２の例では、ストレージ制御装置１０１およびホスト装置２０２をそれぞれ１台のみ表記したが、ストレージシステム２００に複数のストレージ制御装置１０１やホスト装置２０２が含まれることにしてもよい。また、図２の例では、ストレージＳＴにおいて、ＲＡＩＤグループＧ１，Ｇ２が作成されることにしたが、１あるいは３以上のＲＡＩＤグループが作成されることにしてもよい。
【００３８】
（ストレージ制御装置１０１のハードウェア構成例）
図３は、ストレージ制御装置１０１のハードウェア構成例を示すブロック図である。図３において、ストレージ制御装置１０１は、プロセッサであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、Ｉ／Ｏコントローラ３０４と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００３９】
ここで、ＣＰＵ３０１は、ストレージ制御装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４０】
通信Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して外部装置（例えば、図２に示したホスト装置２０２）に接続される。そして、通信Ｉ／Ｆ３０３は、ネットワーク２１０と装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｏコントローラ３０４は、ＣＰＵ３０１の制御にしたがって、ストレージＳＴ（図２参照）に対するアクセスを行う。
【００４１】
（性能情報テーブル２２０の記憶内容）
つぎに、ストレージ制御装置１０１が有する性能情報テーブル２２０の記憶内容について説明する。性能情報テーブル２２０は、例えば、図３に示したメモリ３０２により実現される。
【００４２】
図４は、性能情報テーブル２２０の記憶内容の一例を示す説明図である。図４において、性能情報テーブル２２０は、ＲＡＩＤグループＩＤ、ディスクＩＤ、コマンド発行数、発行待ちコマンド数、ビジー率およびレスポンスタイムのフィールドを有する。各フィールドに情報を設定することで、性能情報４００−１〜４００−８がレコードとして記憶される。
【００４３】
ここで、ＲＡＩＤグループＩＤは、ストレージＳＴ（図２参照）内のＲＡＩＤグループを一意に識別する識別子である。ディスクＩＤは、ＲＡＩＤグループＩＤにより識別されるＲＡＩＤグループ内のＨＤＤ（ディスク装置）を一意に識別する識別子である。コマンド発行数（Ｑｕｅ−ｉｎ−ｐｒｏｑは、ディスクＩＤにより識別されるＨＤＤに発行中のアクセスコマンド（ライトコマンド、リードコマンド）の数である。なお、コマンド発行数の上限値は、例えば、３０である。
【００４４】
発行待ちコマンド数（Ｑｕｅ−ｗａｉｔ）は、ＨＤＤに対する発行待ちのアクセスコマンドの数である。アクセスコマンドには優先度が設定される。優先度としては、例えば、Ｈｉｇｈ、Ｎｏｒｍａｌ、Ｌｏｗのいずれかが設定される。優先度は、「Ｌｏｗ→Ｎｏｒｍａｌ→Ｈｉｇｈ」の順に高くなる。優先度が高いアクセスコマンドほど優先して処理される。
【００４５】
ビジー率は、直近１時間でのＨＤＤの負荷状況を示す指標値である（単位：％）。例えば、ビジー率は、ＨＤＤの発行待ちコマンド数とＨＤＤの処理能力（回転スピードなど）を考慮して算出される。例えば、ビジー率が０％の場合、直近１時間でＨＤＤへのアクセスがないことを示す。ビジー率が５０％未満の場合、直近１時間でのＨＤＤへのアクセスの負荷状況が通常状態であることを示す。ビジー率が５０％以上の場合、直近１時間でのＨＤＤへのアクセスの負荷状況が高負荷状態であることを示す。
【００４６】
レスポンスタイムは、ＨＤＤに対してアクセスコマンドを発行してから応答があるまでの応答時間である（単位：秒）。例えば、レスポンスタイムは、直近のアクセスコマンドについてのレスポンスタイムであってもよく、また、過去数回分のアクセスコマンドについてのレスポンスタイムの平均であってもよい。
【００４７】
なお、性能情報テーブル２２０は、直近数回分（例えば、３回分）のアクセスコマンドについて、発行時のコマンド発行数、発行待ちコマンド数、およびアクセスコマンドの優先度を保持することにしてもよい。性能情報テーブル２２０は、例えば、定期的または所定のタイミングで更新される。所定のタイミングは、例えば、ホスト装置２０２からのＩ／Ｏ要求が処理されたタイミングや、後述する診断用コマンドが実行されたタイミングである。
【００４８】
（コンフィグテーブル２３０の記憶内容）
つぎに、ストレージ制御装置１０１が有するコンフィグテーブル２３０の記憶内容について説明する。コンフィグテーブル２３０は、例えば、図３に示したメモリ３０２により実現される。
【００４９】
図５は、コンフィグテーブル２３０の記憶内容の一例を示す説明図である。図５において、コンフィグテーブル２３０は、ＲＡＩＤグループＩＤ、ＲＡＩＤステータス、ディスクＩＤおよびチェックフラグのフィールドを有し、各フィールドに情報を設定することで、コンフィグ情報５００−１，５００−２をレコードとして記憶する。
【００５０】
ここで、ＲＡＩＤグループＩＤは、ストレージＳＴ（図２参照）内のＲＡＩＤグループを一意に識別する識別子である。ＲＡＩＤステータスは、ＲＡＩＤグループＩＤにより識別されるＲＡＩＤグループの状態を示す。ＲＡＩＤステータスとしては、例えば、Ａｖａｉｌａｂｌｅ、Ｒｅｂｕｉｌｄ、Ｅｘｐｏｓｅｄのいずれかが設定される。ＲＡＩＤステータス「Ａｖａｉｌａｂｌｅ」は、データの冗長性がある状態を示す。ＲＡＩＤステータス「Ｒｅｂｕｉｌｄ」は、データの冗長性を復旧中の状態を示す。ＲＡＩＤステータス「Ｅｘｐｏｓｅｄ」は、データの冗長性がない状態を示す。
【００５１】
ディスクＩＤは、ＲＡＩＤグループ内のＨＤＤを一意に識別する識別子である。チェックフラグは、ＨＤＤが診断対象であるか否かを示す。診断対象とは、後述する新診断処理の処理対象となるＨＤＤである。チェックフラグ「０」は、ＨＤＤが診断対象であることを示す。チェックフラグ「１」は、ＨＤＤが診断対象外であることを示す。チェックフラグは、初期状態では「０」である。
【００５２】
（ストレージ制御装置１０１の機能的構成例）
図６は、ストレージ制御装置１０１の機能的構成例を示すブロック図である。図６において、ストレージ制御装置１０１は、Ｉ／Ｏ処理部６０１と、取得部６０２と、検出部６０３と、診断部６０４と、復旧部６０５と、を含む。Ｉ／Ｏ処理部６０１〜復旧部６０５は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、通信Ｉ／Ｆ３０３、Ｉ／Ｏコントローラ３０４により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２に記憶される。
【００５３】
Ｉ／Ｏ処理部６０１は、ホスト装置２０２からのストレージＳＴに対するＩ／Ｏ要求を処理する。Ｉ／Ｏ要求は、ライト要求またはリード要求である。ライト要求は、例えば、ストレージシステム２００により提供される論理ボリュームに対してデータの書き込みを要求するものである。リード要求は、例えば、論理ボリュームに対してデータの読み込みを要求するものである。
【００５４】
具体的には、例えば、Ｉ／Ｏ処理部６０１は、ホスト装置２０２からのＩ／Ｏ要求に応じて、ＲＡＩＤグループ内のＨＤＤに対してアクセスコマンドを発行し、当該アクセスコマンドに対する応答コマンドを受け取る。アクセスコマンドは、リードコマンドまたはライトコマンドである。
【００５５】
また、Ｉ／Ｏ処理部６０１は、ホスト装置２０２からのＩ／Ｏ要求に対する応答を行う。具体的には、例えば、Ｉ／Ｏ処理部６０１は、ホスト装置２０２からのライト要求に対するライト完了応答や、リード要求に対するリードデータをホスト装置２０２に通知する。
【００５６】
取得部６０２は、ストレージＳＴ内のＨＤＤの負荷状況およびレスポンス状況を表す性能情報を取得する。ここで、ＨＤＤの負荷状況は、アクセスにかかる負荷を表しており、例えば、ビジー率によって表される。ＨＤＤのレスポンス状況は、例えば、ＨＤＤに対してアクセスコマンドを発行してから応答があるまでのレスポンスタイムによって表される。
【００５７】
具体的には、例えば、取得部６０２は、ホスト装置２０２からのＩ／Ｏ要求が処理されたことに応じて、ストレージＳＴ内の各ＨＤＤの負荷状況およびレスポンス状況を表す性能情報を取得する。より詳細に説明すると、例えば、取得部６０２は、ＨＤＤのコマンド発行数とＨＤＤの処理能力（回転スピードなど）を考慮してビジー率を算出することにより、ＨＤＤの負荷状況を表す性能情報を取得することにしてもよい。
【００５８】
また、取得部６０２は、ＨＤＤにアクセスコマンドを発行してから応答があるまでのレスポンスタイムを計測することにより、ＨＤＤのレスポンス状況を表す性能情報を取得することにしてもよい。この際、取得部６０２は、ＲＡＩＤグループ全体のレスポンスタイムを計測することにしてもよい。ＲＡＩＤグループ内のＨＤＤ間ではアクセスコマンドを発行してから応答があるまでの時間にはばらつきが生じる。ＲＡＩＤグループ全体のレスポンスタイムは、ＲＡＩＤグループ内のＨＤＤにアクセスコマンドを発行してから、最も遅い応答があるまでの時間に相当する。
【００５９】
取得された性能情報は、例えば、図４に示した性能情報テーブル２２０に記憶される。これにより、ストレージ制御装置１０１は、ホスト装置２０２からのＩ／Ｏ要求に応じてアクセスされるＲＡＩＤグループ内のＨＤＤの負荷状況およびレスポンス状況を監視することができる。
【００６０】
検出部６０３は、潜在故障ディスクを検出する。ここで、潜在故障ディスクとは、潜在故障状態のＨＤＤである。具体的には、例えば、検出部６０３は、取得部６０２によって取得された性能情報に基づいて、ストレージＳＴ内のＨＤＤのうち、負荷が閾値αより低く、かつ、レスポンスタイムが閾値β以上のＨＤＤを、潜在故障ディスクとして検出する。
【００６１】
ここで、閾値α、閾値βは、任意に設定可能である。閾値αは、ＨＤＤの負荷が閾値α以上となると、ＨＤＤが高負荷（繁忙状態）であると判断できる値に設定される。例えば、ＨＤＤの負荷状況がビジー率によって表される場合、閾値αは、５０％程度の値に設定される。閾値αは、図１で説明した「第１の閾値」に相当する。
【００６２】
閾値βは、ＨＤＤについての統計加点処理やパトロール診断処理において、レスポンスタイムアウトを判断する値よりも低い値である。例えば、ＨＤＤのレスポンスタイムアウトを判断する値が「５秒」の場合、閾値βは、２秒程度の値に設定される。閾値βは、図１で説明した「第２の閾値」に相当する。
【００６３】
より具体的には、例えば、検出部６０３は、性能情報テーブル２２０を参照して、ＲＡＩＤグループ内のＨＤＤのうち、ビジー率が閾値αより低く、かつ、レスポンスタイムが閾値β以上のＨＤＤを、潜在故障ディスクとして検出する。ＲＡＩＤグループは、例えば、ホスト装置２０２からのＩ／Ｏ要求に応じてアクセスされたＲＡＩＤグループである。
【００６４】
一例として、閾値αを「５０％」とし、閾値βを「２秒」とする。また、ホスト装置２０２からのＩ／Ｏ要求に応じてＲＡＩＤグループＧ１へのアクセスがあった際のＨＤＤ１のビジー率ｂ１を「３０％」、レスポンスタイムｔ１を「２．２秒」とする。この場合、検出部６０３は、ＨＤＤ１のビジー率ｂ１が閾値αより低く、かつ、ＨＤＤ１のレスポンスタイムｔ１が閾値β以上のため、ＨＤＤ１を潜在故障ディスクとして検出する。また、ＨＤＤ２のビジー率ｂ２を「６０％」、レスポンスタイムｔ１を「３．２秒」とする。この場合、検出部６０３は、ＨＤＤ２のレスポンスタイムｔ２が閾値β以上であるものの、ＨＤＤ２のビジー率ｂ２が閾値α以上のため、ＨＤＤ２を潜在故障ディスクとして検出しない。すなわち、ＨＤＤ２は、繁忙状態に起因してレスポンスが低下していると判断される。
【００６５】
ただし、ＲＡＩＤグループへのアクセスであっても、当該ＲＡＩＤグループ内の一部のＨＤＤへのアクセスが発生しないことがある。例えば、ＲＡＩＤ５では、ＲＡＩＤグループ内のＨＤＤにデータが分散して格納される。しかし、例えば、データサイズが小さいデータの場合、分割データもパリティデータも格納されないＨＤＤ、すなわち、アクセスされないＨＤＤが出てくることがある。このような事象は、ＲＡＩＤグループ内のＨＤＤ数が多くなるほど生じる可能性は高い。
【００６６】
また、ホスト装置２０２のアクセス傾向によっては、ある期間全くアクセスされないＲＡＩＤグループが出てくることもある。このため、ホスト装置２０２からのＩ／Ｏ要求に応じて計測される性能だけでは、潜在故障状態となっているＨＤＤを判断できない場合がある。
【００６７】
そこで、ストレージ制御装置１０１は、ストレージＳＴ内のＨＤＤのうち、アクセスがないと判断されるＨＤＤを診断対象ディスクとして抽出し、診断対象ディスクに対してダミーのアクセスを実行して性能診断を行う。以下の説明では、診断対象ディスクに対する診断処理を、既存のパトロール診断処理と区別するために、「新診断処理」と表記する場合がある。
【００６８】
診断部６０４は、取得された性能情報に基づいて、ストレージＳＴ内のＨＤＤのうち、診断対象ディスクを抽出する。ここで、診断対象ディスクとは、アクセスがないと判断されるＨＤＤである。具体的には、例えば、診断部６０４は、性能情報テーブル２２０を参照して、ストレージＳＴ内のＨＤＤのうち、ビジー率が０％のＨＤＤを、アクセスがないＨＤＤと判断する。そして、診断部６０４は、アクセスがないと判断したＨＤＤを診断対象ディスクとして抽出する。ただし、診断部６０４は、ストレージＳＴ内のＨＤＤのうち、ビジー率が所定値以下（例えば、５％以下）のＨＤＤを、アクセスがないＨＤＤとして判断することにしてもよい。
【００６９】
一例として、ＨＤＤ４のビジー率ｂ４を「０％」とすると、診断部６０４は、ビジー率が０％のＨＤＤ４を、診断対象ディスクとして抽出する。なお、コンフィグテーブル２３０（図５参照）内の、診断対象ディスクとして抽出されなかったＨＤＤのチェックフラグには「１」が設定される。
【００７０】
また、診断部６０４は、抽出した診断対象ディスクに対して、負荷が閾値αを超えないように、規定量分のアクセスコマンドを発行した際のレスポンスタイムを計測する。ここで、規定量分のアクセスコマンドは、高負荷状態とならないようにＨＤＤに対して適度な負荷をかけるためのアクセスコマンドであり、ＨＤＤの性能に応じて適宜設定される。適度な負荷とは、例えば、ビジー率が４０％程度の負荷である。規定量分のアクセスコマンドは、例えば、コマンド発行数によって指定される。
【００７１】
一例として、ビジー率が４０％となるコマンド発行数を「３０」とする。この場合、診断部６０４は、例えば、ホスト装置２０２からのＩ／Ｏ要求とは非同期に、診断対象ディスクに対して、コマンド発行数「３０」を維持するように、リード／ライトコマンドを発行する。リード／ライトコマンドは、リードしたデータをそのまま書き戻す診断用コマンドである。なお、診断用コマンドの実行に応じて、性能情報テーブル２２０内の診断対象ディスクの性能情報が更新される。
【００７２】
また、診断部６０４は、パトロール診断処理が実行中の場合、診断対象ディスクのうち、パトロール診断済みの領域以外の領域を、診断領域として選定することにしてもよい。そして、診断部６０４は、リード／ライトを実施する範囲に偏りがでないように、診断用コマンドにより、選定した診断領域内をランダムアクセスすることにしてもよい。
【００７３】
また、診断対象ディスクは、アクセスがないと判断されたＨＤＤではあるものの、診断用コマンドが、ホスト装置２０２からのＩ／Ｏ要求に応じて発行されるアクセスコマンドと競合する可能性がある。Ｉ／Ｏ要求と競合すると、Ｉ／Ｏ性能に影響を与えるおそれがある。さらに、診断中はＣＰＵ負荷が上がるため、Ｉ／Ｏ性能に影響を与えるおそれがある。
【００７４】
このため、診断部６０４は、診断コマンドに対して、ホスト装置２０２からのＩ／Ｏ要求に応じて発行されるアクセスコマンドよりも低い優先度（例えば、Ｌｏｗ）を設定することにしてもよい。これにより、Ｉ／Ｏ要求と競合した場合に、Ｉ／Ｏ要求に応じて発行されるアクセスコマンドを優先させることができる。
【００７５】
また、診断部６０４は、診断領域のサイズに応じて診断処理時間Ｔを設定することにしてもよい。具体的には、例えば、診断部６０４は、診断領域のサイズが「１００ＧＢ」の場合、診断処理時間Ｔを「５分」程度に設定する。これにより、新診断処理が行われる時間を制限して、Ｉ／Ｏ性能に与える影響を抑えることができる。
【００７６】
また、診断部６０４は、冗長性がないＲＡＩＤグループや、リカバリ処理中のＲＡＩＤグループについては、負荷が高く、かつ、データ復旧中のため、診断対象外とすることにしてもよい。また、ストレージ制御装置１０１は、診断対象ディスクに対する新診断処理を頻繁に実施させないために、１日に実施する回数を制限することにしてもよい（例えば、１日１回）。
【００７７】
また、検出部６０３は、診断部６０４によって抽出された診断対象ディスクのうち、診断部６０４によって計測されたレスポンスタイムが閾値β以上となるＨＤＤを、潜在故障ディスクとして検出する。なお、負荷が閾値αを超えないように規定量分のアクセスコマンドを発行したとしても、ホスト装置２０２からのＩ／Ｏ要求に応じたアクセスが急激に増加して診断対象ディスクが高負荷状態となる場合がある。
【００７８】
このため、例えば、検出部６０３は、性能情報テーブル２２０を参照して、診断対象ディスクのうち、ビジー率が閾値αより低く、かつ、レスポンスタイムが閾値β以上のＨＤＤを、潜在故障ディスクとして検出することにしてもよい。これにより、繁忙状態に起因してレスポンスが低下している診断対象ディスクを、潜在故障ディスクとして検出してしまうのを防ぐことができる。
【００７９】
例えば、診断対象ディスクとして抽出されたＨＤＤ４のビジー率ｂ４を「４０％」、レスポンスタイムｔ４を「３秒」とする。この場合、検出部６０３は、ＨＤＤ４のビジー率ｂ４が閾値αより低く、かつ、ＨＤＤ４のレスポンスタイムｔ４が閾値β以上のため、ＨＤＤ４を潜在故障ディスクとして検出する。
【００８０】
復旧部６０５は、検出部６０３によって検出された潜在故障ディスクに対してリダンダントコピーを実施する。リダンダントコピーは、バックグラウンドで潜在故障ディスクからホットスペアＨＳへのデータ移行を行い、データ移行後のホットスペアＨＳを、潜在故障ディスクに換えてＲＡＩＤグループに組み込む処理である。
【００８１】
なお、リダンダントコピーの具体的な処理内容については、図７を用いて後述する。
【００８２】
また、検出された潜在故障ディスクが、アクセスがないと判断された診断対象ディスクのときは、アクセスがある潜在故障ディスクに比べて、リダンダントコピーを実施する緊急性は低い。このため、復旧部６０５は、検出された潜在故障ディスクが、アクセスがないと判断された診断対象ディスクのときは、ホットスペアＨＳが複数存在する場合に、当該潜在故障ディスクに対してリダンダントコピーを実施することにしてもよい。
【００８３】
（リダンダントコピー）
つぎに、図７を用いて、潜在故障ディスクに対するリダンダントコピーの具体的な処理内容について説明する。
【００８４】
図７は、リダンダントコピーの具体的な処理内容の一例を示す説明図である。図７において、ＲＡＩＤグループ＄１内のＨＤＤ＃１，ＨＤＤ＃２のうち、ＨＤＤ＃１が潜在故障ディスクとして検出される場合を想定する。また、ここでは、ＨＤＤ＃１，ＨＤＤ＃２において、データ２重化されているものとする。
【００８５】
（ｉ）ストレージ制御装置１０１は、ＨＤＤ＃１を潜在故障ディスクとして検出する。なお、ＨＤＤ＃１は、潜在故障ディスクとして検出されたもののまだ使用可能な状態である。このため、ホスト装置２０２からのＩ／Ｏ要求に伴うＨＤＤ＃１へのアクセスは実施される。ただし、リード要求やデータコピーは、正常状態であるＨＤＤ＃２を主体として行われる。
【００８６】
（ｉｉ）ストレージ制御装置１０１は、バックグラウンドでＨＤＤ＃２からホットスペア＃３へのデータコピーを行う。このデータコピーは、ＨＤＤ＃１からホットスペア＃３へのデータ移行に相当する。データコピー中において、ホスト装置２０２からのＩ／Ｏ要求に伴うアクセスは、ホットスペア＃３にも実施される。すなわち、潜在故障ディスクであるＨＤＤ＃１が切り離されるまでは、データ３重化の状態で運用される。なお、ＨＤＤ＃２へのアクセス時にエラーが発生した場合には、ＨＤＤ＃１に切り替えてアクセスが実施される。
【００８７】
（ｉｉｉ）ストレージ制御装置１０１は、バックグラウンドでＨＤＤ＃２からホットスペア＃３へのデータコピーが完了すると、ＨＤＤ＃１を切り離して、ホットスペア＃３をＲＡＩＤグループ＄１に組み込む。これにより、データの冗長性を確保しつつ、潜在故障状態であるＨＤＤ＃１を切り離すことができる。
【００８８】
（ストレージ制御装置１０１の各種制御処理手順）
つぎに、ストレージ制御装置１０１の各種制御処理手順について説明する。以下の説明では、統計加点処理やパトロール診断処理でＩ／Ｏタイムアウトを判断するためのタイムアウト値を「５秒」とする。また、閾値αを「５０％」とし、閾値βを「２秒」とする。また、アクセスがないＨＤＤを判断するためのビジー率を「０％」とする。
【００８９】
まず、図８および図９を用いて、ストレージ制御装置１０１の第１の潜在故障検出処理手順について説明する。第１の潜在故障検出処理は、ホスト装置２０２からのＩ／Ｏ要求を処理する際に実行される。
【００９０】
図８および図９は、ストレージ制御装置１０１の第１の潜在故障検出処理手順の一例を示すフローチャートである。図８のフローチャートにおいて、まず、ストレージ制御装置１０１は、ホスト装置２０２からのＩ／Ｏ要求を処理する（ステップＳ８０１）。なお、Ｉ／Ｏ要求に対するホスト装置２０２への応答は適宜行われる。
【００９１】
そして、ストレージ制御装置１０１は、ストレージＳＴ内のＨＤＤの負荷状況およびレスポンス状況を表す性能情報を取得する（ステップＳ８０２）。取得された性能情報は、性能情報テーブル２２０に記憶される。つぎに、ストレージ制御装置１０１は、ホスト装置２０２からのＩ／Ｏ要求に応じてアクセスされたＲＡＩＤグループ全体のレスポンスタイムが５秒以上であるか否かを判断する（ステップＳ８０３）。
【００９２】
ここで、ＲＡＩＤグループ全体のレスポンスタイムが５秒未満の場合（ステップＳ８０３：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ８０５に移行する。一方、ＲＡＩＤグループ全体のレスポンスタイムが５秒以上の場合（ステップＳ８０３：Ｙｅｓ）、ストレージ制御装置１０１は、性能情報テーブル２２０を参照して、アクセスされたＲＡＩＤグループ内のＨＤＤのレスポンスタイムが５秒以上であるか否かを判断する（ステップＳ８０４）。
【００９３】
ここで、ＨＤＤのレスポンスタイムが５秒未満の場合（ステップＳ８０４：Ｎｏ）、ストレージ制御装置１０１は、アクセスされたＲＡＩＤグループ全体のレスポンスタイムが２秒以上であるか否かを判断する（ステップＳ８０５）。ここで、ＲＡＩＤグループ全体のレスポンスタイムが２秒未満の場合（ステップＳ８０５：Ｎｏ）、ストレージ制御装置１０１は、本フローチャートによる一連の処理を終了する。
【００９４】
一方、ＲＡＩＤグループ全体のレスポンスタイムが２秒以上の場合（ステップＳ８０５：Ｙｅｓ）、ストレージ制御装置１０１は、図９に示すステップＳ９０１に移行する。
【００９５】
また、ステップＳ８０４において、ＨＤＤのレスポンスタイムが５秒以上の場合（ステップＳ８０４：Ｙｅｓ）、ストレージ制御装置１０１は、統計加点処理を実行して（ステップＳ８０６）、本フローチャートによる一連の処理を終了する。
【００９６】
統計加点処理は、アクセスされたＲＡＩＤグループ内のＨＤＤのうちレスポンスタイムが５秒以上であるＨＤＤに加点していき、統計加点値が閾値を超えたＨＤＤを被疑ディスクとして検出する処理である。被疑ディスクとして検出されたＨＤＤに対しては、例えば、リダンダントコピーが実施される。
【００９７】
図９のフローチャートにおいて、まず、ストレージ制御装置１０１は、アクセスされたＲＡＩＤグループ内のＨＤＤのうち選択されていない未選択のＨＤＤを選択する（ステップＳ９０１）。つぎに、ストレージ制御装置１０１は、コンフィグテーブル２３０を参照して、選択したＨＤＤのチェックフラグが「０」であるか否かを判断する（ステップＳ９０２）。
【００９８】
ここで、チェックフラグが「０」ではない場合（ステップＳ９０２：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ９０６に移行する。一方、チェックフラグが「０」の場合（ステップＳ９０２：Ｙｅｓ）、ストレージ制御装置１０１は、コンフィグテーブル２３０を参照して、アクセスされたＲＡＩＤグループのＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」であるか否かを判断する（ステップＳ９０３）。
【００９９】
ここで、ＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」ではない場合（ステップＳ９０３：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ９０６に移行する。一方、ＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」の場合（ステップＳ９０３：Ｙｅｓ）、ストレージ制御装置１０１は、性能情報テーブル２２０を参照して、選択したＨＤＤのビジー率ｂが０％であるか否かを判断する（ステップＳ９０４）。
【０１００】
ここで、ビジー率が０％の場合（ステップＳ９０４：Ｙｅｓ）、ストレージ制御装置１０１は、ステップＳ９０８に移行する。一方、ビジー率が０％ではない場合（ステップＳ９０４：Ｎｏ）、ストレージ制御装置１０１は、性能情報テーブル２２０を参照して、選択したＨＤＤのビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上であるか否かを判断する（ステップＳ９０５）。
【０１０１】
ここで、ビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上ではない場合（ステップＳ９０５：Ｎｏ）、ストレージ制御装置１０１は、選択したＨＤＤのチェックフラグに「１」を設定して（ステップＳ９０６）、ステップＳ９０８に移行する。
【０１０２】
一方、ビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上の場合（ステップＳ９０５：Ｙｅｓ）、ストレージ制御装置１０１は、選択したＨＤＤに対してリダンダントコピーを実施する（ステップＳ９０７）。なお、ＨＤＤのリダンダントコピーを実施中は、当該ＨＤＤを含むＲＡＩＤグループのＲＡＩＤステータスは「Ｒｅｂｕｉｌｄ」となる。
【０１０３】
そして、ストレージ制御装置１０１は、アクセスされたＲＡＩＤグループ内のＨＤＤのうち選択されていない未選択のＨＤＤがあるか否かを判断する（ステップＳ９０８）。ここで、未選択のＨＤＤがある場合（ステップＳ９０８：Ｙｅｓ）、ストレージ制御装置１０１は、ステップＳ９０１に戻る。
【０１０４】
一方、未選択のＨＤＤがない場合（ステップＳ９０８：Ｎｏ）、ストレージ制御装置１０１は、本フローチャートによる一連の処理を終了する。これにより、レスポンスタイムアウト（Ｉ／Ｏタイムアウト）は発生していないものの、スローダウンしている潜在故障ディスクを検出してリダンダントコピーを実施することができる。
【０１０５】
また、繁忙状態に起因してレスポンスが低下しているＨＤＤを、潜在故障ディスクとして誤検出するのを防ぐことができる。また、ＲＡＩＤグループが復旧中や冗長性を失っているときに潜在故障ディスクに対するリダンダントコピーが実施されないように制御することができる。また、アクセスがないと判断したＨＤＤ（チェックフラグ「０」のＨＤＤ）を、診断対象ディスクとして抽出することができる。
【０１０６】
つぎに、図１０を用いて、ストレージ制御装置１０１の第２の潜在故障検出処理手順について説明する。第２の潜在故障検出処理は、定期的（例えば、毎日２４時）、または、所定のタイミング（例えば、ストレージシステム２００の管理者により指定されるタイミング）で実行される。
【０１０７】
図１０は、ストレージ制御装置１０１の第２の潜在故障検出処理手順の一例を示すフローチャートである。図１０のフローチャートにおいて、まず、ストレージ制御装置１０１は、ストレージＳＴ内のＨＤＤのうち選択されていない未選択のＨＤＤを選択する（ステップＳ１００１）。
【０１０８】
つぎに、ストレージ制御装置１０１は、コンフィグテーブル２３０を参照して、選択したＨＤＤのチェックフラグが「０」であるか否かを判断する（ステップＳ１００２）。ここで、チェックフラグが「０」ではない場合（ステップＳ１００２：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ１００４に移行する。
【０１０９】
一方、チェックフラグが「０」の場合（ステップＳ１００２：Ｙｅｓ）、ストレージ制御装置１０１は、新診断処理を実行する（ステップＳ１００３）。新診断処理の具体的な処理手順については、図１１を用いて後述する。そして、ストレージ制御装置１０１は、選択したＨＤＤのチェックフラグを「０」で初期化する（ステップＳ１００４）。
【０１１０】
つぎに、ストレージ制御装置１０１は、ストレージＳＴ内のＨＤＤのうち選択されていない未選択のＨＤＤがあるか否かを判断する（ステップＳ１００５）。ここで、未選択のＨＤＤがある場合（ステップＳ１００５：Ｙｅｓ）、ストレージ制御装置１０１は、ステップＳ１００１に戻る。
【０１１１】
一方、未選択のＨＤＤがない場合（ステップＳ１００５：Ｎｏ）、ストレージ制御装置１０１は、本フローチャートによる一連の処理を終了する。これにより、ストレージＳＴ内の診断対象ディスク（チェックフラグ「０」のＨＤＤ）に対して新診断処理を実施することができる。
【０１１２】
つぎに、図１１を用いて、図１０のステップＳ１００３の新診断処理の具体的な処理手順について説明する。
【０１１３】
図１１は、新診断処理の具体的処理手順の一例を示すフローチャートである。図１１のフローチャートにおいて、まず、ストレージ制御装置１０１は、コンフィグテーブル２３０を参照して、診断対象ディスクを含むＲＡＩＤグループのＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」であるか否かを判断する（ステップＳ１１０１）。なお、診断対象ディスクは、図１０のステップＳ１００１において選択されたＨＤＤである。
【０１１４】
ここで、ＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」ではない場合（ステップＳ１１０１：Ｎｏ）、ストレージ制御装置１０１は、新診断処理を呼び出したステップに戻る。一方、ＲＡＩＤステータスが「Ａｖａｉｌａｂｌｅ」の場合（ステップＳ１１０１：Ｙｅｓ）、ストレージ制御装置１０１は、診断対象ディスクのうち、パトロール診断済みの領域以外の領域を、診断領域として選定する（ステップＳ１１０２）。
【０１１５】
つぎに、ストレージ制御装置１０１は、診断用コマンド（リード／ライトコマンド）に優先度「Ｌｏｗ」を設定する（ステップＳ１１０３）。そして、ストレージ制御装置１０１は、規定量分の診断用コマンドにより、選定した診断領域をランダムアクセスする（ステップＳ１１０４）。この際、ストレージ制御装置１０１は、規定量分の診断用コマンドを発行した際のレスポンスタイムを計測し、性能情報テーブル２２０に性能情報を記憶する。
【０１１６】
つぎに、ストレージ制御装置１０１は、性能情報テーブル２２０を参照して、診断対象ディスクのビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上であるか否かを判断する（ステップＳ１１０５）。
【０１１７】
ここで、ビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上ではない場合（ステップＳ１１０５：Ｎｏ）、ストレージ制御装置１０１は、診断領域へのランダムアクセスを開始してから診断処理時間Ｔを経過したか否かを判断する（ステップＳ１１０６）。
【０１１８】
ここで、診断処理時間Ｔを経過していない場合（ステップＳ１１０６：Ｎｏ）、ストレージ制御装置１０１は、ステップＳ１１０４に戻る。一方、診断処理時間Ｔを経過した場合（ステップＳ１１０６：Ｙｅｓ）、ストレージ制御装置１０１は、新診断処理を呼び出したステップに戻る。
【０１１９】
また、ステップＳ１１０５において、ビジー率ｂが５０％未満であり、かつ、レスポンスタイムｔが２秒以上の場合（ステップＳ１１０５：Ｙｅｓ）、ストレージ制御装置１０１は、ホットスペアＨＳが２本以上あるか否かを判断する（ステップＳ１１０７）。ここで、ホットスペアＨＳが２本以上ない場合（ステップＳ１１０７：Ｎｏ）、ストレージ制御装置１０１は、新診断処理を呼び出したステップに戻る。
【０１２０】
一方、ホットスペアＨＳが２本以上ある場合（ステップＳ１１０７：Ｙｅｓ）、ストレージ制御装置１０１は、診断対象ディスク（潜在故障ディスク）に対してリダンダントコピーを実施して（ステップＳ１１０８）、新診断処理を呼び出したステップに戻る。
【０１２１】
これにより、アクセスがないと判断された診断対象ディスクのうち、潜在故障状態のＨＤＤを検出してリダンダントコピーを実施することができる。また、ＲＡＩＤグループが復旧中や冗長性を失っているときに新診断処理が実施されないように制御することができる。
【０１２２】
以上説明したように、実施の形態にかかるストレージ制御装置１０１によれば、ホスト装置２０２からのＩ／Ｏ要求に応じてアクセスされるストレージＳＴ内のＨＤＤの負荷状況およびレスポンス状況を表す性能情報を取得することができる。そして、ストレージ制御装置１０１によれば、取得した性能情報に基づいて、ストレージＳＴ内のＨＤＤのうち、負荷が閾値αより低く、かつ、レスポンスタイムが閾値β以上のＨＤＤを、潜在故障ディスクとして検出することができる。
【０１２３】
これにより、レスポンスタイムアウト（Ｉ／Ｏタイムアウト）は発生していないものの、スローダウンしている潜在故障ディスクを検出することができる。また、レスポンスタイムだけでなく負荷も考慮するため、繁忙状態に起因してレスポンスが低下しているＨＤＤを、潜在故障ディスクとして誤検出するのを防ぐことができる。
【０１２４】
また、ストレージ制御装置１０１によれば、性能情報に基づいて、ストレージＳＴ内のＨＤＤのうち、アクセスがないと判断したＨＤＤを診断対象ディスクとして抽出することができる。また、ストレージ制御装置１０１によれば、抽出した診断対象ディスクに対して、負荷が閾値αを超えないように、規定量分の診断用コマンドを発行した際のレスポンスタイムを計測することができる。そして、ストレージ制御装置１０１によれば、抽出した診断対象ディスクのうち、計測したレスポンスタイムが閾値β以上となるＨＤＤを、潜在故障ディスクとして検出することができる。
【０１２５】
これにより、アクセスがない、あるいは、アクセスがほとんどないＨＤＤについても、ホスト装置２０２からのＩ／Ｏ要求とは非同期に診断用コマンドを発行して性能診断することで、スローダウンしている潜在故障ディスクを検出することができる。
【０１２６】
また、ストレージ制御装置１０１によれば、検出した潜在故障ディスクに対してリダンダントコピーを実施することができる。これにより、データの冗長性を確保しつつ、潜在故障状態であるＨＤＤを切り離すリカバリ処理を自動で行うことができ、潜在故障状態であるＨＤＤの性能劣化の影響によるＲＡＩＤグループ全体の応答性能の低下を抑えることができる。
【０１２７】
また、ストレージ制御装置１０１によれば、検出した潜在故障ディスクが、アクセスがないと判断した診断対象ディスクのときは、ホットスペアＨＳが２本以上ある場合に、当該潜在故障ディスクに対してリダンダントコピーを実施することができる。
【０１２８】
これにより、潜在故障ディスクが、アクセスがないと判断された診断対象ディスクのときは、ホットスペアＨＳが複数存在する場合に、リダンダントコピーを実施することができる。このため、頻繁にアクセスがあるような潜在故障ディスクに対するリダンダントコピーを実施する際にホットスペアＨＳがないという事態が生じる可能性を低減させることができる。
【０１２９】
また、ストレージ制御装置１０１によれば、診断用コマンドに、ホスト装置２０２からのＩ／Ｏ要求に応じて発行されるアクセスコマンドよりも低い優先度を設定することができる。これにより、ホスト装置２０２からのＩ／Ｏ要求と競合した場合に、Ｉ／Ｏ要求に応じて発行されるアクセスコマンドを、診断用コマンドよりも優先して処理させることができ、Ｉ／Ｏ性能に与える影響を抑えることができる。
【０１３０】
これらのことから、実施の形態にかかるストレージ制御装置１０１によれば、レスポンスタイムアウトや媒体エラーは発生していないものの、スローダウンしている潜在故障状態のＨＤＤを早期に発見することができる。また、リダンダントコピーを利用した自動リカバリ処理により、潜在故障状態であるＨＤＤの性能劣化の影響によるＲＡＩＤグループ全体の応答性能の低下を抑えることができる。
【０１３１】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをストレージ制御装置等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３３】
（付記１）上位装置からの要求に応じてアクセスされる１または複数の記憶装置を制御するストレージ制御装置であって、
前記１または複数の記憶装置それぞれの負荷状況およびレスポンス状況を表す性能情報を取得し、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置を検出する、
制御部を有することを特徴とするストレージ制御装置。
【０１３４】
（付記２）前記制御部は、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、アクセスがないと判断した記憶装置を抽出し、
抽出した前記記憶装置に対して、負荷が前記第１の閾値を超えないように、規定量分のアクセスコマンドを発行した際のレスポンスタイムを計測し、
抽出した前記記憶装置のうち、計測した前記レスポンスタイムが前記第２の閾値以上となる記憶装置を検出する、
ことを特徴とする付記１に記載のストレージ制御装置。
【０１３５】
（付記３）前記制御部は、
検出した前記記憶装置に対してリダンダントコピーを実施する、ことを特徴とする付記１または２に記載のストレージ制御装置。
【０１３６】
（付記４）検出した前記記憶装置が、アクセスがないと判断した記憶装置のときは、代替記憶装置が複数存在する場合に、当該記憶装置に対してリダンダントコピーを実施する、ことを特徴とする付記２に記載のストレージ制御装置。
【０１３７】
（付記５）前記アクセスコマンドには、前記上位装置からの要求に応じて発行されるアクセスコマンドよりも低い優先度が設定される、ことを特徴とする付記２に記載のストレージ制御装置。
【０１３８】
（付記６）前記第２の閾値は、前記１または複数の記憶装置それぞれについてのタイムアウト値よりも低い値である、ことを特徴とする付記１〜５のいずれか一つに記載のストレージ制御装置。
【０１３９】
（付記７）前記１または複数の記憶装置それぞれの負荷状況は、ビジー率によって表される、ことを特徴とする付記１〜６のいずれか一つに記載のストレージ制御装置。
【０１４０】
（付記８）前記１または複数の記憶装置それぞれのレスポンス状況は、アクセスコマンドを発行してから応答があるまでのレスポンスタイムによって表される、ことを特徴とする付記１〜７のいずれか一つに記載のストレージ制御装置。
【０１４１】
（付記９）上位装置からの要求に応じてアクセスされる１または複数の記憶装置を制御するコンピュータに、
前記１または複数の記憶装置それぞれの負荷状況およびレスポンス状況を表す性能情報を取得し、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、負荷が第１の閾値より低く、かつ、レスポンスタイムが第２の閾値以上の記憶装置を検出する、
処理を実行させることを特徴とする制御プログラム。
【０１４２】
（付記１０）前記コンピュータに、
取得した前記性能情報に基づいて、前記１または複数の記憶装置のうち、アクセスがないと判断した記憶装置を抽出し、
抽出した前記記憶装置に対して、負荷が前記第１の閾値を超えないように、規定量分のアクセスコマンドを発行した際のレスポンスタイムを計測し、
抽出した前記記憶装置のうち、計測した前記レスポンスタイムが前記第２の閾値以上となる記憶装置を検出する、
処理を実行させることを特徴とする付記９に記載の制御プログラム。
【０１４３】
（付記１１）前記コンピュータに、
検出した前記記憶装置に対してリダンダントコピーを実施する、処理を実行させることを特徴とする付記９または１０に記載の制御プログラム。
【０１４４】
（付記１２）前記リダンダントコピーを実施する処理は、
検出した前記記憶装置が、アクセスがないと判断した記憶装置のときは、代替記憶装置が複数存在する場合に、当該記憶装置に対してリダンダントコピーを実施する、ことを特徴とする付記１１に記載の制御プログラム。
【符号の説明】
【０１４５】
１０１  ストレージ制御装置
１０２  上位装置
１０３，ＳＴ  ストレージ
１１０  性能情報
２００  ストレージシステム
２０１  ストレージ装置
２０２  ホスト装置
２１０  ネットワーク
２２０  性能情報テーブル
２３０  コンフィグテーブル
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  通信Ｉ／Ｆ
３０４  Ｉ／Ｏコントローラ
６０１  Ｉ／Ｏ処理部
６０２  取得部
６０３  検出部
６０４  診断部
６０５  復旧部
【図１】
2019036163.tif 000003
【図２】
2019036163.tif 000004
【図３】
2019036163.tif 000005
【図４】
2019036163.tif 000006
【図５】
2019036163.tif 000007
【図６】
2019036163.tif 000008
【図７】
2019036163.tif 000009
【図８】
2019036163.tif 000010
【図９】
2019036163.tif 000011
【図１０】
2019036163.tif 000012
【図１１】
2019036163.tif 000013