(57)【要約】【課題】ホスト装置の処理が過度に遅延することを防止しながら、入出力処理の中止が頻繁に発生することを防止することが可能な記憶制御装置を提供すること。【解決手段】記憶制御装置１１０は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット１２０及びホスト装置１３０のそれぞれと接続される。記憶制御装置は、ホスト装置からの入出力要求に応じて、入出力処理を行う旨を指示する入出力指示を記憶装置へ送信する。記憶制御装置は、入出力指示を送信してから第１の待機時間が経過するまでに処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知をホスト装置へ送信する。記憶制御装置は、入出力指示を送信してから、第１の待機時間よりも長い第２の待機時間が経過するまでに処理完了通知を受信しなかった場合、当該入出力指示に基づく入出力処理を中止する旨を指示する処理中止指示を記憶装置へ送信する。【選択図】図５
2010176179.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置であって、
前記ホスト装置からの入出力要求に応じて、前記記憶装置からデータを読み出す処理、及び／又は、前記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
前記入出力指示を前記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく前記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を前記ホスト装置へ送信するタイムアウト通知送信手段と、
前記入出力指示を前記記憶装置へ送信してから、前記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から前記処理完了通知を受信しなかった場合、当該入出力指示に基づく前記入出力処理を中止する旨を指示する処理中止指示を前記記憶装置へ送信する処理中止指示送信手段と、
を備える記憶制御装置。
【請求項２】
請求項１に記載の記憶制御装置であって、
前記記憶装置は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格に基づいた装置である記憶制御装置。
【請求項３】
請求項１又は請求項２に記載の記憶制御装置であって、
前記記憶ユニットは、複数の前記記憶装置を含む記憶制御装置。
【請求項４】
請求項３に記載の記憶制御装置であって、
前記記憶装置が前記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
前記記憶装置に対して取得された前記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を備える記憶制御装置。
【請求項５】
請求項４に記載の記憶制御装置であって、
前記使用禁止条件は、予め設定された期間内において、前記取得された処理実行時間が予め設定された閾値時間以上となった回数が、予め設定された閾値回数以上であるという条件である記憶制御装置。
【請求項６】
ホスト装置と接続された記憶制御システムであって、
データを記憶する少なくとも１つの記憶装置を含む記憶ユニットと、
前記ホスト装置からの入出力要求に応じて、前記記憶装置からデータを読み出す処理、及び／又は、前記記憶装置にデータを書き込む処理である入出力処理を行う入出力処理実行手段と、
前記入出力処理を開始してから第１の待機時間が経過するまでに当該入出力処理が完了しなかった場合、その旨を表すタイムアウト通知を前記ホスト装置へ送信するタイムアウト通知送信手段と、
前記入出力処理を開始してから前記第１の待機時間よりも長い第２の待機時間が経過するまでに当該入出力処理が完了しなかった場合、当該入出力処理を中止する処理中止手段と、
を備える記憶制御システム。
【請求項７】
請求項６に記載の記憶制御システムであって、
前記記憶ユニットは、複数の前記記憶装置を含む記憶制御システム。
【請求項８】
請求項７に記載の記憶制御システムであって、
前記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
前記複数の記憶装置の１つに対して取得された前記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を備える記憶制御システム。
【請求項９】
データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に適用される記憶制御方法であって、
前記ホスト装置からの入出力要求に応じて、前記記憶装置からデータを読み出す処理、及び／又は、前記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信工程と、
前記入出力指示を前記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく前記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を前記ホスト装置へ送信するタイムアウト通知送信工程と、
前記入出力指示を前記記憶装置へ送信してから、前記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から前記処理完了通知を受信しなかった場合、当該入出力指示に基づく前記入出力処理を中止する旨を指示する処理中止指示を前記記憶装置へ送信する処理中止指示送信工程と、
を含む記憶制御方法。
【請求項１０】
請求項９に記載の記憶制御方法であって、
前記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得工程と、
前記記憶ユニットが複数の前記記憶装置を含む場合において、当該複数の記憶装置のうちの１つに対して取得された前記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定されたとき、以降において、その記憶装置の使用を禁止する使用禁止工程と、
を含む記憶制御方法。
【請求項１１】
データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に、
前記ホスト装置からの入出力要求に応じて、前記記憶装置からデータを読み出す処理、及び／又は、前記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
前記入出力指示を前記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく前記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を前記ホスト装置へ送信するタイムアウト通知送信手段と、
前記入出力指示を前記記憶装置へ送信してから、前記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から前記処理完了通知を受信しなかった場合、当該入出力指示に基づく前記入出力処理を中止する旨を指示する処理中止指示を前記記憶装置へ送信する処理中止指示送信手段と、
を実現させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記記憶制御装置に、更に、
前記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
前記記憶ユニットが複数の前記記憶装置を含む場合において、当該複数の記憶装置のうちの１つに対して取得された前記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶する記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に関する。
【背景技術】
【０００２】
データを記憶する記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置が知られている。この記憶制御装置は、ホスト装置からの入出力要求に応じて、記憶装置からデータを読み出す処理（読出処理）、及び／又は、記憶装置にデータを書き込む処理（書込処理）である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する。
【０００３】
記憶装置は、記憶制御装置からの入出力指示に応じて入出力処理を実行する。記憶装置は、入出力処理が読出処理である場合、記憶装置からデータを読み出し、読み出したデータを含む処理完了通知を記憶制御装置へ送信する。処理完了通知は、入出力処理が完了した旨を表す情報である。また、記憶装置は、入出力処理が書込処理である場合、入出力指示に含まれるデータを記憶装置に書き込み、処理完了通知を記憶制御装置へ送信する。
【０００４】
この種の記憶制御装置の一つとして特許文献１に記載の記憶制御装置は、入出力指示を記憶装置へ送信してから待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知をホスト装置へ送信する。更に、この場合、記憶制御装置は、入出力指示に基づく入出力処理を中止する旨を指示する処理中止指示を記憶装置へ送信する。
【０００５】
これにより、記憶装置による入出力処理が遅延した場合、ホスト装置が実行している処理が過度に遅延することを防止することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−３２８７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ホスト装置が実行している処理が過度に遅延することを防止するために設定される待機時間は、比較的短い。従って、入出力処理が頻繁に中止されてしまうという問題があった。
【０００８】
このため、本発明の目的は、上述した課題である「ホスト装置の処理が過度に遅延することを防止するとともに、入出力処理の中止が頻繁に発生することを防止することができないこと」を解決することが可能な記憶制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態である記憶制御装置は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された装置である。
【００１０】
更に、この記憶制御装置は、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信手段と、
を備える。
【００１１】
また、本発明の他の形態である記憶制御システムは、ホスト装置と接続されたシステムである。
【００１２】
更に、この記憶制御システムは、
データを記憶する少なくとも１つの記憶装置を含む記憶ユニットと、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う入出力処理実行手段と、
上記入出力処理を開始してから第１の待機時間が経過するまでに当該入出力処理が完了しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力処理を開始してから上記第１の待機時間よりも長い第２の待機時間が経過するまでに当該入出力処理が完了しなかった場合、当該入出力処理を中止する処理中止手段と、
を備える。
【００１３】
また、本発明の他の形態である記憶制御方法は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に適用される方法である。
【００１４】
更に、この記憶制御方法は、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信工程と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信工程と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信工程と、
を含む。
【００１５】
また、本発明の他の形態であるプログラムは、
データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信手段と、
を実現させるためのプログラムである。
【発明の効果】
【００１６】
本発明は、以上のように構成されることにより、ホスト装置の処理が過度に遅延することを防止しながら、入出力処理の中止が頻繁に発生することを防止することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るディスクアレイ装置の概略構成を表す図である。
【図２】本発明の実施形態に係るコントローラの機能の概略を表すブロック図である。
【図３】本発明の実施形態に係るディスクアレイ装置の作動のうちの入出力指示送信要求を受信した際の作動を示したフローチャートである。
【図４】本発明の実施形態に係るディスクアレイ装置の作動のうちのタイムアウトが発生した際の作動を示したフローチャートである。
【図５】本発明の実施形態の変形例に係る記憶制御装置の機能の概略を表すブロック図である。
【発明を実施するための形態】
【００１８】
本発明の一形態である記憶制御装置は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された装置である。
【００１９】
更に、この記憶制御装置は、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信手段と、
を備える。
【００２０】
これによれば、記憶制御装置は、記憶装置が第１の待機時間内に入出力処理を完了しなかった場合、ホスト装置へタイムアウト通知を送信する。従って、ホスト装置が実行している処理が、過度に遅延することを防止することができる。
【００２１】
また、記憶装置が入出力処理を実行している時間が、第１の待機時間よりも長い第２の待機時間よりも長くならない限り、入出力処理は中止されない。従って、入出力処理の中止が頻繁に発生することを防止することができる。
【００２２】
このように、上記構成によれば、記憶装置による入出力処理が遅延した場合であっても、ホスト装置の処理が過度に遅延することを防止することができるとともに、入出力処理の中止が頻繁に発生することを防止することができる。
【００２３】
この場合、上記記憶装置は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格に基づいた装置であることが好適である。
【００２４】
ところで、ＳＡＴＡ規格においては、１つの入出力処理のみを中止する処理が定められていない。一方、実行中のすべての入出力処理を中止する処理は定められている。従って、記憶制御装置は、ＳＡＴＡ規格に基づいた記憶装置において、１つの入出力処理のみが比較的大きく遅延している場合であっても、実行中のすべての入出力処理を中止する旨を指示する必要がある。このため、無駄に中止される入出力処理が比較的多くなってしまうという問題があった。
【００２５】
これに対し、上記構成によれば、入出力処理の中止が頻繁に発生することを防止することができるので、特に、記憶装置がＳＡＴＡ規格に基づいた装置である場合、無駄に中止される入出力処理が比較的多くなることを確実に防止することができる。
【００２６】
この場合、上記記憶ユニットは、複数の上記記憶装置を含むことが好適である。
【００２７】
この場合、上記記憶制御装置は、
上記記憶装置が上記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
上記記憶装置に対して取得された上記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を備えることが好適である。
【００２８】
これによれば、例えば、入出力処理が比較的大きく遅延することが頻繁に発生している記憶装置の使用を禁止することができる。これにより、記憶ユニットが入出力指示を受信してから入出力処理を完了するまでの応答時間が過度に長くなることを防止することができる。
【００２９】
この場合、上記使用禁止条件は、予め設定された期間内において、上記取得された処理実行時間が予め設定された閾値時間以上となった回数が、予め設定された閾値回数以上であるという条件であることが好適である。
【００３０】
また、本発明の他の形態である記憶制御システムは、ホスト装置と接続されたシステムである。
【００３１】
更に、この記憶制御システムは、
データを記憶する少なくとも１つの記憶装置を含む記憶ユニットと、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う入出力処理実行手段と、
上記入出力処理を開始してから第１の待機時間が経過するまでに当該入出力処理が完了しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力処理を開始してから上記第１の待機時間よりも長い第２の待機時間が経過するまでに当該入出力処理が完了しなかった場合、当該入出力処理を中止する処理中止手段と、
を備える。
【００３２】
この場合、上記記憶ユニットは、複数の上記記憶装置を含むことが好適である。
【００３３】
この場合、上記記憶制御システムは、
上記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
上記複数の記憶装置の１つに対して取得された上記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を備えることが好適である。
【００３４】
また、本発明の他の形態である記憶制御方法は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に適用される方法である。
【００３５】
更に、この記憶制御方法は、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信工程と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信工程と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信工程と、
を含む。
【００３６】
この場合、上記記憶制御方法は、
上記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得工程と、
上記記憶ユニットが複数の上記記憶装置を含む場合において、当該複数の記憶装置のうちの１つに対して取得された上記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定されたとき、以降において、その記憶装置の使用を禁止する使用禁止工程と、
を含むことが好適である。
【００３７】
また、本発明の他の形態であるプログラムは、
データを記憶する少なくとも１つの記憶装置を含む記憶ユニット及びホスト装置のそれぞれと接続された記憶制御装置に、
上記ホスト装置からの入出力要求に応じて、上記記憶装置からデータを読み出す処理、及び／又は、上記記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する入出力指示送信手段と、
上記入出力指示を上記記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく上記入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知を上記ホスト装置へ送信するタイムアウト通知送信手段と、
上記入出力指示を上記記憶装置へ送信してから、上記第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から上記処理完了通知を受信しなかった場合、当該入出力指示に基づく上記入出力処理を中止する旨を指示する処理中止指示を上記記憶装置へ送信する処理中止指示送信手段と、
を実現させるためのプログラムである。
【００３８】
この場合、上記プログラムは、
上記記憶制御装置に、更に、
上記入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段と、
上記記憶ユニットが複数の上記記憶装置を含む場合において、当該複数の記憶装置のうちの１つに対して取得された上記処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、その記憶装置の使用を禁止する使用禁止手段と、
を実現させるためのプログラムであることが好適である。
【００３９】
上述した構成を有する、記憶制御システム、記憶制御方法、又は、プログラム、の発明であっても、上記記憶制御装置と同様の作用を有するために、上述した本発明の目的を達成することができる。
【００４０】
以下、本発明に係る、記憶制御装置、記憶制御システム、記憶制御方法、及び、プログラム、の実施形態について図１〜図５を参照しながら説明する。
【００４１】
＜実施形態＞
図１に示したように、実施形態に係るディスクアレイ装置１０は、ホストインタフェース１２と、キャッシュメモリ１３と、ディスクアレイユニット（記憶ユニット）１４と、コントローラ（記憶制御装置）１６と、を備える。
【００４２】
ディスクアレイ装置１０は、ホスト装置１１及び保守装置１５のそれぞれと通信可能に接続されている。ディスクアレイ装置１０は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成する装置である。
【００４３】
ホスト装置１１は、所定のプログラムを実行することにより入出力要求を生成する。入出力要求は、ディスクアレイ装置１０から（ディスクアレイ装置１０に記憶されている）データを読み出す処理（読出処理）、及び／又は、ディスクアレイ装置１０にデータを書き込む（ディスクアレイ装置１０にデータを記憶させる）処理（書込処理）である入出力処理を行う旨を要求する情報である。
【００４４】
ホスト装置１１は、生成した入出力要求をディスクアレイ装置１０へ送信する。更に、ホスト装置１１は、書込処理としての入出力処理を行う旨を要求する入出力要求を送信する場合、入出力要求とともに書込データをディスクアレイ装置１０へ送信する。
【００４５】
保守装置１５は、ディスクアレイ装置１０を保守するための情報処理装置である。保守装置１５は、ディスクアレイ装置１０に対する設定を変更するための処理、及び、ディスクアレイ装置１０に対して設定されている情報の表示を行う。
【００４６】
ディスクアレイユニット１４は、データを記憶する複数の記憶装置としてのハードディスク駆動装置（ＨＤＤ；Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４ａ，１４ｂ，１４ｃ，…を含む。各ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格に基づいた記憶装置である。
【００４７】
ホストインタフェース１２は、ホスト装置１１から入出力要求を受信する。キャッシュメモリ１３は、ホスト装置１１から受信した書込データ、又は、ホスト装置１１へ送信した読出データを記憶（キャッシュ）する。
【００４８】
ホストインタフェース１２は、受信した入出力要求が読出処理を行う旨を要求する情報（リードコマンド）である場合、キャッシュメモリ１３にその読出処理の対象となる読出データが記憶されているか否かを判定する。
そして、キャッシュメモリ１３に読出処理の対象となる読出データが記憶されている場合、ホストインタフェース１２は、その読出データをホスト装置１１へ送信する。
【００４９】
一方、キャッシュメモリ１３に読出処理の対象となる読出データが記憶されていない場合、ホストインタフェース１２は、その旨を表す入出力指示送信要求をコントローラ１６へ送信する。これにより、コントローラ１６は、読出処理の対象となるＨＤＤ１４ａ，１４ｂ，１４ｃ，…を特定するとともに、読出処理の対象となるデータの記憶位置を特定する。
【００５０】
そして、コントローラ１６は、特定したＨＤＤ１４ａ，１４ｂ，１４ｃ，…に記憶されているデータのうちの、特定した記憶位置に記憶されているデータを読み出す処理としての入出力処理を行う旨を指示する入出力指示を、当該特定したＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する。
【００５１】
ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、その入出力指示に応じて、記憶されているデータを読み出し、読み出したデータ（読出データ）をコントローラ１６を介してキャッシュメモリ１３へ送信する読出処理を行う。これにより、キャッシュメモリ１３は、読出データを記憶する。そして、ホストインタフェース１２は、この読出データをキャッシュメモリ１３から読み出し、読み出したデータをホスト装置１１へ送信する。
【００５２】
なお、コントローラ１６がＨＤＤ１４ａ，１４ｂ，１４ｃ，…から読出データを受信することは、コントローラ１６がＨＤＤ１４ａ，１４ｂ，１４ｃ，…から入出力指示に基づく入出力処理が完了した旨を表す処理完了通知を受信することに相当している。
【００５３】
また、ホストインタフェース１２は、受信した入出力要求が書込処理を行う旨を要求する情報（ライトコマンド）である場合、入出力要求とともに受信した書込データをキャッシュメモリ１３に記憶させ、その旨を表す入出力指示送信要求をコントローラ１６へ送信する。
【００５４】
これにより、コントローラ１６は、書込処理の対象となるＨＤＤ１４ａ，１４ｂ，１４ｃ，…を特定するとともに、書込処理の対象となるデータの記憶位置を特定する。そして、コントローラ１６は、キャッシュメモリ１３に記憶されている書込データを、特定したＨＤＤ１４ａ，１４ｂ，１４ｃ，…の、特定した記憶位置に書き込む処理としての入出力処理を行う旨を指示する入出力指示を、当該特定したＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する。
【００５５】
ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、その入出力指示に応じて、書込データを記憶する（書き込む）書込処理を行う。ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、書込データの書き込みが完了すると、その旨を表す書込完了通知をコントローラ１６へ送信する。
【００５６】
なお、コントローラ１６がＨＤＤ１４ａ，１４ｂ，１４ｃ，…から書込完了通知を受信することは、コントローラ１６がＨＤＤ１４ａ，１４ｂ，１４ｃ，…から入出力指示に基づく入出力処理が完了した旨を表す処理完了通知を受信することに相当している。
【００５７】
これにより、コントローラ１６は、入出力要求に基づく書込処理が完了した旨を表す書込処理完了通知を、ホストインタフェース１２を介してホスト装置１１へ送信する。
【００５８】
また、コントローラ１６は、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信してから、予め設定された第１の待機時間が経過するまでに当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…から当該入出力指示に基づく処理完了通知を受信しなかった（第１のタイムアウトが発生した）場合、その旨を表すタイムアウト通知をホスト装置１１へ送信する。
【００５９】
更に、コントローラ１６は、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信してから、予め設定された第２の待機時間が経過するまでに、当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…から当該入出力指示に基づく処理完了通知を受信しなかった（第２のタイムアウトが発生した）場合、処理中止指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する。ここで、処理中止指示は、上記入出力指示に基づく入出力処理を中止する旨を指示する情報である。また、第２の待機時間は、第１の待機時間よりも長い時間である。
【００６０】
ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、処理中止指示を受信すると、実行している入出力処理を中止（アボート又はキャンセル）する。
【００６１】
このように、コントローラ１６は、ホスト装置１１からの入出力要求に応じて、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…からデータを読み出す処理、及び／又は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する入出力指示送信手段を構成している。
【００６２】
また、コントローラ１６及びディスクアレイユニット１４は、ホスト装置１１からの入出力要求に応じて、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…からデータを読み出す処理、及び／又は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…にデータを書き込む処理である入出力処理を行う入出力処理実行手段を構成している。
【００６３】
更に、コントローラ１６は、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信（入出力処理を開始）してから第１の待機時間が経過するまでに当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…から当該入出力指示に基づく入出力処理が完了した旨を表す処理完了通知を受信（入出力処理が完了）しなかった場合、その旨を表すタイムアウト通知をホスト装置１１へ送信するタイムアウト通知送信手段を構成している。
【００６４】
加えて、コントローラ１６は、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信してから、第１の待機時間よりも長い第２の待機時間が経過するまでに、当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…から処理完了通知を受信しなかった場合、当該入出力指示に基づく入出力処理を中止する旨を指示する処理中止指示を当該ＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する処理中止指示送信手段を構成している。
【００６５】
また、コントローラ１６及びディスクアレイユニット１４は、入出力処理を開始してから第１の待機時間よりも長い第２の待機時間が経過するまでに当該入出力処理が完了しなかった場合、当該入出力処理を中止する処理中止手段を構成している。
【００６６】
以下、コントローラ１６が行う処理についてより具体的に説明する。
コントローラ１６は、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信すると、その入出力指示に基づく入出力処理を行うための入出力リソース（ＩＯリソース）を確保する。即ち、コントローラ１６は、ＩＯリソースを管理するための管理情報と、ＩＯリソースの状態が「実行中」状態であることを表す状態情報と、を対応付けて記憶する。ここで、ＩＯリソースは、コントローラ１６が有するデータ転送チャネル、転送用制御情報、及び、キャッシュメモリ１３内の転送データ用領域を含む。
【００６７】
転送用制御情報は、入出力処理の対象となるＨＤＤ１４ａ，１４ｂ，１４ｃ，…を特定するための情報、入出力処理の対象となるデータの記憶位置を特定するための情報、読み出し又は書き込みを表す情報、及び、入出力処理の対象となるデータのサイズを表す情報を含む。
【００６８】
そして、コントローラ１６は、第１のタイムアウトが発生した場合、第１のタイムアウトに係る入出力処理を行うためのＩＯリソースを保持する。即ち、コントローラ１６は、そのＩＯリソースに係る状態情報を、「完了待ち」状態を表す情報に変更する。更に、コントローラ１６は、ホストインタフェース１２を介してタイムアウト通知をホスト装置１１へ送信する。
【００６９】
その後、第２のタイムアウトが発生することなく、コントローラ１６が処理完了通知を受信した場合、コントローラ１６は、ＩＯリソースを保持したまま、そのＩＯリソースに係る状態情報を、「完了」状態を表す情報に変更する。
【００７０】
状態情報が「完了」状態を表す情報に設定されたＩＯリソースは、他の入出力処理によって使用可能となる。ところで、他の入出力処理によって使用されるまでの間にホスト装置１１から再び同じ入出力処理が要求された（リトライ処理が行われた）場合には、コントローラ１６は、そのＩＯリソースに保持されているデータを利用することができる。
【００７１】
そして、ホスト装置１１から入出力要求を受信した場合、コントローラ１６は、リトライ処理が行われたか否かを、保持されているＩＯリソースに基づいて判定する。具体的には、コントローラ１６は、同一のホスト装置から受信した同一の入出力要求に係るＩＯリソースが保持されている場合、リトライ処理が行われたと判定する。
【００７２】
そして、コントローラ１６は、リトライ処理が行われたと判定した場合において、前回の入出力処理を行うためのＩＯリソースに係る状態情報が「完了」状態を表す情報である場合、そのＩＯリソースに保持されているデータを利用して、読出データ又は書込処理完了通知をホスト装置１１へ送信する。
【００７３】
一方、コントローラ１６は、リトライ処理が行われたと判定した場合において、前回の入出力処理を行うためのＩＯリソースに係る状態情報が「完了待ち」状態を表す情報である場合、そのＩＯリソースに係る状態情報を、「実行中」状態を表す情報に変更する。
【００７４】
また、コントローラ１６は、リトライ処理が行われたと判定しなかった場合、新規にＩＯリソースを確保するとともに、新規に入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する。
【００７５】
また、コントローラ１６は、各ＨＤＤ１４ａ，１４ｂ，１４ｃ，…が入出力処理を完了するために要した時間である処理実行時間を取得する。そして、コントローラ１６は、各ＨＤＤ１４ａ，１４ｂ，１４ｃ，…に対して取得された処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定する。次いで、コントローラ１６は、使用禁止条件が満足されると判定された場合、以降において、そのＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する。
【００７６】
ここで、使用禁止条件は、予め設定された期間内において、取得された処理実行時間が予め設定された閾値時間以上となった回数が、予め設定された閾値回数以上であるという条件である。
【００７７】
このように、コントローラ１６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…が入出力処理を完了するために要した時間である処理実行時間を取得する処理実行時間取得手段を構成している。
【００７８】
更に、コントローラ１６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…に対して取得された処理実行時間に基づいて、所定の使用禁止条件が満足されるか否かを判定し、当該使用禁止条件が満足されると判定された場合、以降において、そのＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する使用禁止手段を構成している。
【００７９】
図２は、上記のように構成されたコントローラ１６の機能を表すブロック図である。コントローラ１６の機能は、ＩＯリソース管理部２０と、ＩＯ発行判定部２１と、ＩＯ発行部２２と、ＩＯリソース検索部２３と、ＩＯリソース状態判定部２４と、ＩＯリソース状態遷移部２５と、ＨＤＤ使用禁止部２６と、を含む。
【００８０】
本例では、コントローラ１６の機能は、図示しない中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、図示しない記憶装置（メモリ）に記憶されているプログラムを実行することにより実現される。なお、コントローラ１６の各機能は、回路等のハードウェアにより実現されていてもよい。
【００８１】
ＩＯリソース管理部２０は、ＩＯリソースを管理するための管理情報と、ＩＯリソースの状態を表す状態情報と、を対応付けて記憶する機能を含む。管理情報は、コントローラ１６が有するデータ転送チャネル（コントローラ１６がＨＤＤ１４ａ，１４ｂ，１４ｃ，…との間でデータを授受するためのチャネル）を特定するための情報、転送用制御情報、及び、キャッシュメモリ１３内の転送データ用の記憶領域を特定するための情報を含む。また、状態情報は、「リトライ実行中」、「実行中」、「完了待ち」、「完了」又は「未使用」を表す情報である。
【００８２】
ＩＯ発行判定部２１は、受信した入出力要求に基づいて、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信（発行）するか否かを判定する機能を含む。
【００８３】
ＩＯ発行部２２は、ＩＯ発行判定部２１により、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信すると判定された場合、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信する機能を含む。また、ＩＯ発行部２２は、第１のタイムアウト又は第２のタイムアウトの発生を監視する機能を含む。更に、ＩＯ発行部２２は、各ＨＤＤ１４ａ，１４ｂ，１４ｃ，…に対して処理実行時間を取得し、取得した処理実行時間を記憶する機能を含む。
【００８４】
ＩＯリソース検索部２３は、ＩＯ発行判定部２１により指定されたＩＯリソースをＩＯリソース管理部２０に記憶されている情報から検索する機能を含む。
【００８５】
ＩＯリソース状態判定部２４は、ＩＯリソースの状態を判定する機能を含む。ＩＯリソース状態判定部２４は、ＩＯ発行判定部２１による要求に応じてＩＯリソースの状態を応答する機能を含む。ＩＯリソース状態遷移部２５は、ＩＯリソースの状態を変更する（遷移させる）機能を含む。
【００８６】
ＨＤＤ使用禁止部２６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する機能を有する機能を含む。本例では、ＨＤＤ使用禁止部２６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ供給される電力を遮断することにより、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する。なお、ＨＤＤ使用禁止部２６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…とコントローラ１６との間の通信経路を遮断することによりＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止するように構成されていてもよい。
【００８７】
次に、上記のように構成されたディスクアレイ装置１０の作動について図３及び図４を参照しながら説明する。
【００８８】
ＩＯ発行判定部２１は、入出力指示送信要求を受信する（図３のステップＡ１０）と、キャッシュメモリ１３に記憶されている書込データを書き込む対象となるＨＤＤ１４ａ，１４ｂ，１４ｃ，…及び記憶位置、若しくは、データを読み出す対象となるＨＤＤ１４ａ，１４ｂ，１４ｃ，…及び記憶位置を特定する（図３のステップＡ１１）。
【００８９】
そして、ＩＯ発行判定部２１は、書込データ、特定したＨＤＤ１４ａ，１４ｂ，１４ｃ，…及び記憶位置に基づいて、ＩＯリソース検索部２３に同一領域へのアクセスを行っているＩＯリソースを検索させる（図３のステップＡ１２）。即ち、ＩＯ発行判定部２１は、同一領域へのアクセスを行っているＩＯリソースが存在するか否かを判定する。
【００９０】
ここで、「同一領域へのアクセスを行っているＩＯリソース」は、コントローラ１６が受信した入出力要求と同一の入出力要求であって、受信された入出力要求を送信してきたホスト装置と同一のホスト装置から送信された入出力要求に基づく入出力処理を行うために確保されたＩＯリソースを意味している。
【００９１】
コントローラ１６は、ＩＯリソースの転送用制御情報及びキャッシュメモリ１３にある転送データバッファを比較することにより、ＩＯリソースが同一領域へのアクセスを行っているか否かを判定する。コントローラ１６は、ＩＯリソースの転送用制御情報及びキャッシュメモリ１３にある転送データバッファのいずれもが一致している場合、ＩＯリソースが同一領域へのアクセスを行っていると判定する。
【００９２】
先ず、同一領域へのアクセスを行っているＩＯリソースが存在しない場合から説明する。
この場合、ＩＯ発行判定部２１は、新規にＩＯリソースを確保する。即ち、ＩＯ発行判定部２１は、ＩＯリソース検索部２３に、使用可能なＩＯリソースを検索させる。ＩＯ発行判定部２１は、検索結果として取得されたＩＯリソースに係る状態情報を、ＩＯリソース状態遷移部２５を用いて、「実行中」状態を表す情報に変更する（図３のステップＡ１３）。
【００９３】
ＩＯリソース検索部２３は、使用可能なＩＯリソースとして、先ず、状態情報が「未使用」状態を表す情報であるＩＯリソースを検索する。状態情報が「未使用」状態を表す情報であるＩＯリソースが存在しない場合、ＩＯリソース検索部２３は、状態情報が「完了」状態を表す情報であるＩＯリソースを検索する。
【００９４】
状態情報が「未使用」状態を表す情報であるＩＯリソース、及び、状態情報が「完了」状態を表す情報であるＩＯリソース、のいずれもが存在しない（即ち、ＩＯリソースが確保できなかった）場合（図３のステップＡ１４にて「Ｎｏ」）、コントローラ１６は、ホスト装置１１に、同一の入出力要求を再度送信する（リトライ処理を行う）ように要求する情報（リトライ応答）を送信する（図３のステップＡ１５）。
【００９５】
一方、状態情報が「未使用」状態を表す情報であるＩＯリソース、又は、状態情報が「完了」状態を表す情報であるＩＯリソースが存在している（即ち、ＩＯリソースが確保できた）場合（図３のステップＡ１４にて「Ｙｅｓ」）、確保したＩＯリソースを管理するための管理情報をＩＯ発行部２２に渡す。
【００９６】
ＩＯ発行部２２は、受け取った管理情報に基づいて、入出力指示をＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ送信（発行）する（図３のステップＡ１６、入出力指示送信工程）。
【００９７】
ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、その入出力指示に応じて、入出力処理（書込処理又は読出処理）を行う。
【００９８】
いま、入出力処理が第１の待機時間内に完了した場合を想定して説明を続ける。
この場合、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…による入出力処理が完了すると、ＩＯ発行部２２は、ＩＯ発行判定部２１へ正常終了応答を送る。
【００９９】
ＩＯ発行判定部２１は、正常終了応答を受け取ると、その正常終了応答に係るＩＯリソースの状態情報を「完了」状態を表す情報に、ＩＯリソース状態遷移部２５を用いて変更する。なお、状態情報が「完了」状態を表す情報であるＩＯリソースに係る、キャッシュメモリ１３内の転送データバッファ及び転送用制御情報は、保持される。また、このＩＯリソースは、新規にＩＯリソースが確保される際に、使用可能なＩＯリソースとなる。
【０１００】
次に、入出力処理が完了する前に、入出力処理が開始してから第１の待機時間が経過した場合を想定して説明を続ける。
この場合、ＩＯ発行部２２は、入出力処理が開始してから第１の待機時間が経過したことを検出する（図４のステップＢ１０にて「Ｙｅｓ」）。そして、ＩＯ発行部２２は、ＩＯ発行判定部２１にタイムアウト応答を送る。次いで、ＩＯ発行判定部２１は、タイムアウト応答を受け取ると、タイムアウト通知をホスト装置１１へ送信する（図４のステップＢ１１、タイムアウト通知送信工程）。
【０１０１】
ＩＯ発行判定部２１は、タイムアウト応答を受け取ると、そのタイムアウト応答に係るＩＯリソースの状態情報を「実行中」状態を表す情報から「完了待ち」状態を表す情報にＩＯリソース状態遷移部２５を用いて変更する（図４のステップＢ１２）。これにより、このＩＯリソースは、新規にＩＯリソースが確保される際に、使用不能なＩＯリソースとなる。
【０１０２】
このとき、コントローラ１６は、入出力処理が開始してから第１の待機時間が経過した場合であっても、その入出力処理を中止させることなく、入出力処理が完了するまで待機する（図４のステップＢ１４）。
【０１０３】
そして、コントローラ１６は、入出力処理が開始してから第１の待機時間よりも長い第２の待機時間が経過する前にＨＤＤ１４ａ，１４ｂ，１４ｃ，…から処理完了通知を受信すると（図４のステップＢ１５にて「Ｙｅｓ」）、その処理完了通知に係るＩＯリソースの状態情報を、ＩＯリソース状態遷移部２５を用いて、「完了」状態を表す情報に変更する（図４のステップＢ１６）。
【０１０４】
次に、同一領域へのアクセスを行っているＩＯリソースが存在する場合について説明する。
この場合（図３のステップＡ１２にて「Ｙｅｓ」）、ＩＯ発行判定部２１は、同一領域へのアクセスを行っているＩＯリソースを利用する。ＩＯ発行判定部２１は、ＩＯリソース状態判定部２４を用いて、このＩＯリソースの状態情報を取得する。
【０１０５】
先ず、取得された状態情報が「完了待ち」状態を表す情報であった場合から説明する。
この場合（図３のステップＡ１７にて「Ｙｅｓ」）、ＩＯ発行判定部２１は、新規に入出力指示を送信することなく、その状態情報を「リトライ実行中」を表す情報に、ＩＯリソース状態遷移部２５を用いて変更する。即ち、ＩＯ発行判定部２１は、入出力処理の完了を待機する（図３のステップＡ１８）。そして、ＩＯ発行判定部２１は、そのＩＯリソースの管理情報をＩＯ発行部２２に渡す。
【０１０６】
この場合において、ＩＯ発行部２２は、入出力処理が開始してから第１の待機時間が経過する前にＨＤＤ１４ａ，１４ｂ，１４ｃ，…による入出力処理が完了した場合、ＩＯ発行判定部２１へ正常終了応答を送る。
【０１０７】
一方、入出力処理が開始してから第１の待機時間が経過しても、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…による入出力処理が完了しなかった場合、ＩＯ発行部２２がＩＯ発行判定部２１にタイムアウト応答を送る（図４のステップＢ１１）ことにより、コントローラ１６は、ホスト装置１１へタイムアウト通知を送信し、入出力処理が完了するまで待機する（図４のステップＢ１４）。
【０１０８】
次に、取得された状態情報が「完了」状態を表す情報であった場合について説明する。
この場合（図３のステップＡ１９にて「Ｙｅｓ」）、既に入出力処理が完了している。従って、ＩＯ発行判定部２１は、入出力処理が正常に終了した旨を表す情報としての、読出データ又は書込処理完了通知をホスト装置１１へ送信する。そして、ＩＯ発行判定部２１は、ＩＯリソースの状態情報を、「未使用」状態を表す情報に、ＩＯリソース状態遷移部２５を用いて変更する。
【０１０９】
次に、入出力処理が開始してから第１の待機時間よりも長い第２の待機時間が経過しても、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…による入出力処理が完了しなかった場合について説明する。なお、ディスクアレイ装置１０は、第２の待機時間がユーザにより設定可能に構成されていてもよい。
【０１１０】
この場合（図４のステップＢ１５にて「Ｎｏ」）、ＩＯ発行部２２は、その入出力処理を実行しているＨＤＤ１４ａ，１４ｂ，１４ｃ，…へ、処理中止指示を送信する（図４のステップＢ１７、処理中止指示送信工程）。これにより、処理中止指示を受信したＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、実行しているすべての入出力処理を中止（アボート又はキャンセル）する。
【０１１１】
即ち、処理中止指示を受信したＨＤＤ１４ａ，１４ｂ，１４ｃ，…が実行していたすべての入出力処理は、エラーとなる。そして、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…は、エラー終了応答をコントローラ１６へ送信する。
【０１１２】
ＩＯ発行部２２は、エラー終了応答を受信すると、ＩＯ発行判定部２１にＩＯエラー応答を送る。ＩＯ発行判定部２１は、ＩＯエラー応答を受け取ると、そのＩＯエラー応答に係るキャッシュメモリ１３内の転送データバッファを開放し、そのＩＯエラー応答に係るＩＯリソースの状態情報をＩＯリソース状態遷移部２５を用いて「未使用」状態を表す情報に変更する。（図４のステップＢ１８）。
【０１１３】
次に、使用禁止条件が満足される場合に、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する処理に係るディスクアレイ装置１０の作動について説明する。
【０１１４】
ＩＯ発行部２２は、入出力処理が開始してから第１の待機時間が経過してもその入出力処理が完了しなかった（第１のタイムアウトが発生した）場合、その入出力処理が完了した時点にて、その入出力処理を完了するために要した時間である処理実行時間を取得し、取得した処理実行時間をＨＤＤ１４ａ，１４ｂ，１４ｃ，…毎に記憶する（図４のステップＢ１３、処理実行時間取得工程）。
【０１１５】
一方、コントローラ１６は、各ＨＤＤ１４ａ，１４ｂ，１４ｃ，…に対して、ＩＯ発行部２２に記憶されている処理実行時間に基づいて、使用禁止条件が満足されるか否かを、予め設定された判定周期が経過する毎に判定する。そして、あるＨＤＤ１４ａ，１４ｂ，１４ｃ，…に対して、コントローラ１６が使用禁止条件が満足されると判定した場合、ＩＯ発行部２２は、ＨＤＤ使用禁止部２６に、以降において、そのＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止させる（使用禁止工程）。
【０１１６】
これによれば、入出力処理が比較的大きく遅延することが頻繁に発生しているＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止することができる。これにより、ディスクアレイユニット１４が入出力指示を受信してから入出力処理を完了するまでの応答時間が過度に長くなることを防止することができる。
【０１１７】
なお、コントローラ１６は、あるＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止する際、そのＨＤＤ１４ａ，１４ｂ，１４ｃ，…の代わりに使用可能なＨＤＤ１４ａ，１４ｂ，１４ｃ，…が存在している場合（即ち、冗長性が確保されている場合）に限り、そのＨＤＤ１４ａ，１４ｂ，１４ｃ，…の使用を禁止するように構成されていることが好適である。
【０１１８】
以上、説明したように、本発明による記憶制御装置の実施形態によれば、コントローラ１６は、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…が第１の待機時間内に入出力処理を完了しなかった場合、ホスト装置１１へタイムアウト通知を送信する。従って、ホスト装置１１が実行している処理が、過度に遅延することを防止することができる。
【０１１９】
また、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…が入出力処理を実行している時間が、第１の待機時間よりも長い第２の待機時間よりも長くならない限り、入出力処理は中止されない。従って、入出力処理の中止が頻繁に発生することを防止することができる。
【０１２０】
このように、コントローラ１６によれば、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…による入出力処理が遅延した場合であっても、ホスト装置１１の処理が過度に遅延することを防止することができるとともに、入出力処理の中止が頻繁に発生することを防止することができる。
【０１２１】
更に、コントローラ１６によれば、入出力処理の中止が頻繁に発生することを防止することができるので、特に、ＨＤＤ１４ａ，１４ｂ，１４ｃ，…がＳＡＴＡ規格に基づいた装置である場合、無駄に中止される入出力処理が比較的多くなることを確実に防止することができる。
【０１２２】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、記憶装置は、ＳＡＴＡ規格に基づいた装置であったが、他の規格又は方式（例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）、及び、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等）に基づいた装置であってもよい。
【０１２３】
また、上記実施形態においては、記憶装置は、ハードディスク駆動装置であったが、磁気テープ装置、光ディスク装置、又は、半導体ディスク装置等の他の記憶装置であってもよい。
【０１２４】
また、図５に示したように、上記実施形態の変形例に係る記憶制御装置１１０は、データを記憶する少なくとも１つの記憶装置を含む記憶ユニット１２０及びホスト装置１３０のそれぞれと接続されている。
【０１２５】
記憶制御装置１１０の機能は、入出力指示送信部（入出力指示送信手段）１１１と、タイムアウト通知送信部（タイムアウト通知送信手段）１１２と、処理中止指示送信部（処理中止指示送信手段）１１３と、を含む。
【０１２６】
入出力指示送信部１１１は、ホスト装置１３０からの入出力要求に応じて、記憶装置からデータを読み出す処理、及び／又は、記憶装置にデータを書き込む処理である入出力処理を行う旨を指示する入出力指示を当該記憶装置へ送信する。
【０１２７】
タイムアウト通知送信部１１２は、入出力指示を記憶装置へ送信してから第１の待機時間が経過するまでに当該記憶装置から当該入出力指示に基づく入出力処理が完了した旨を表す処理完了通知を受信しなかった場合、その旨を表すタイムアウト通知をホスト装置１３０へ送信する。
【０１２８】
処理中止指示送信部１１３は、入出力指示を記憶装置へ送信してから、第１の待機時間よりも長い第２の待機時間が経過するまでに、当該記憶装置から処理完了通知を受信しなかった場合、当該入出力指示に基づく入出力処理を中止する旨を指示する処理中止指示を当該記憶装置へ送信する。
【０１２９】
この変形例によっても、上記実施形態と同様に、記憶装置による入出力処理が遅延した場合であっても、ホスト装置１３０の処理が過度に遅延することを防止することができるとともに、入出力処理の中止が頻繁に発生することを防止することができる。
【０１３０】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【産業上の利用可能性】
【０１３１】
本発明は、複数のＨＤＤを備えるディスクアレイ装置等に適用可能である。
【符号の説明】
【０１３２】
１０    ディスクアレイ装置
１１    ホスト装置
１２    ホストインタフェース
１３    キャッシュメモリ
１４    ディスクアレイユニット
１４ａ，１４ｂ，１４ｃ，…  ＨＤＤ
１５    保守装置
１６    コントローラ
２０    ＩＯリソース管理部
２１    ＩＯ発行判定部
２２    ＩＯ発行部
２３    ＩＯリソース検索部
２４    ＩＯリソース状態判定部
２５    ＩＯリソース状態遷移部
２６    ＨＤＤ使用禁止部
【図１】
2010176179.tif 000003
【図２】
2010176179.tif 000004
【図３】
2010176179.tif 000005
【図４】
2010176179.tif 000006
【図５】
2010176179.tif 000007