(57)【要約】【課題】障害発生モジュールを特定すること。【解決手段】障害情報登録部が障害検出モジュールから通知された障害情報を受信し、試験実行指示部が、かかる障害情報に基づいて障害発生時にアクセスしていたモジュールに対するアクセス試験の実行を各モジュールに指示し、試験結果受信部がアクセス試験の試験結果を受信したならば、障害箇所特定部がこのアクセス試験の試験結果に基づいて障害箇所を特定するよう構成する。また、サーバ要求制御部がアクセス試験の開始から終了までサーバ装置からのディスク入出力指示の実行を一時的に停止するよう構成する。【選択図】        図３
2006277079.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出装置であって、
前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示手段と、
前記試験指示手段の指示によって各モジュールで実行された各アクセス試験の結果基づいて障害が発生したモジュールを特定する特定手段と、
を備えたことを特徴とする障害検出装置。
【請求項２】
前記モジュールが障害を検出した場合に、上位装置から受け付けたディスクアクセス要求の実行を所定期間停止する停止手段をさらに備えたことを特徴とする請求項１に記載の障害検出装置。
【請求項３】
前記試験指示手段は、
前記アクセス試験の実行を指示してから所定期間経過するまでは、新たな障害が検出された場合であっても、前記アクセス試験の実行を指示しないことを特徴とする請求項１または２に記載の障害検出装置。
【請求項４】
前記試験指示手段は、
前記試験データの読み書きを所定間隔で所定回数繰り返すアクセス試験を実行するよう指示することを特徴とする請求項１、２または３に記載の障害検出装置。
【請求項５】
複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出方法であって、
前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示工程と、
前記試験指示工程の指示によって各モジュールで実行された各アクセス試験の結果および障害を検出したモジュールを示す情報に基づいて障害が発生したモジュールを特定する特定工程と、
を含んだことを特徴とする障害検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出装置および障害検出方法に関し、特に、障害が発生したモジュールを特定することができる障害検出装置および障害検出方法に関するものである。
【背景技術】
【０００２】
従来、多数の磁気ディスク装置（以下、単にディスク装置と呼ぶ）を接続することにより記憶容量の増大や入出力性能の向上を図ったストレージシステム（たとえば、ストレージ装置）が知られている。かかるストレージ装置は、個々のディスク装置に障害が発生した場合には、障害が発生したディスク装置のみを交換することにより、ストレージ装置としての運用を継続する。
【０００３】
このようなディスク装置の冗長化の機能を備えたストレージ装置は、ディスク装置の故障が発生した場合であっても運用を継続することが可能である。しかし、ストレージ装置の無停止運用を行うためには、ディスク装置のみならず、ストレージ装置全体を制御するコントローラや、各種構成装置といったモジュールも冗長化する必要がある。
【０００４】
このため、ストレージ装置を構成する各モジュールを冗長化したストレージ装置が出現するに至っている。このストレージ装置は、構成モジュールが故障した場合であっても、故障したモジュールのみを交換することにより、ストレージ装置の運用を継続しようとするものである。
【０００５】
なお、特許文献１には、故障したディスク装置を切り離し、切り離したディスク装置の故障診断を行う技術が開示されている。また、特許文献２には、障害が発生した場合に、ディスク装置の接続先となるチャネル装置の故障であるか、ディスク装置自体の故障であるかを判定する技術が開示されている。
【０００６】
【特許文献１】特開平１１−３０６６４４号公報
【特許文献２】特開昭６０−１０３２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記した従来のストレージ装置では、障害検出機構を備えたモジュールで障害を検出することができるものの、障害検出機構を備えないモジュールがデータの経路上に存在するため、障害が発生したモジュールを特定することができないという問題があった。このため、障害発生時には、保守員が手作業により、各モジュールが出力した障害ログなどを参照して障害モジュールを特定しなければならず、迅速な障害対応をすることができなかった。
【０００８】
また、特許文献１および特許文献２は、障害検出機構により障害が発生した装置を検出する技術であり、これらの技術を用いたとしても、上記した問題点を解決することはできない。
【０００９】
これらのことから、障害が発生したモジュールを特定することができるストレージ装置をいかにして実現するかが大きな課題となっている。なお、この課題は、ストレージ装置に設けられ、ストレージ装置内部の障害箇所を検出する障害検出装置を構成する場合についても同様に生じる課題である。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、障害が発生したモジュールを特定することができる障害検出装置および障害検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため請求項１に係る発明は、複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出装置であって、前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示手段と、前記試験指示手段の指示によって各モジュールで実行された各アクセス試験の結果に基づいて障害が発生したモジュールを特定する特定手段と、を備えたことを特徴とする。
【００１２】
また、請求項２に係る発明は、前記モジュールが障害を検出した場合に、上位装置から受け付けたディスクアクセス要求の実行を所定期間停止する停止手段をさらに備えたことを特徴とする。
【００１３】
また、請求項３に係る発明は、前記試験指示手段は、前記アクセス試験の実行を指示してから所定期間経過するまでは、新たな障害が検出された場合であっても、前記アクセス試験の実行を指示しないことを特徴とする。
【００１４】
また、請求項４に係る発明は、前記試験指示手段は、前記試験データの読み書きを所定間隔で所定回数繰り返すアクセス試験を実行するよう指示することを特徴とする。
【００１５】
また、請求項５に係る発明は、複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出方法であって、前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示工程と、前記試験指示工程の指示によって各モジュールで実行された各アクセス試験の結果および障害を検出したモジュールを示す情報に基づいて障害が発生したモジュールを特定する特定工程と、を含んだことを特徴とする。
とする。
【発明の効果】
【００１６】
請求項１または５の発明によれば、モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を複数のモジュールに指示し、各モジュールで実行された各アクセス試験の結果に基づいて障害が発生したモジュールを特定するよう構成したので、障害を検出していないモジュールあるいは障害を検出する機構を備えないモジュールも障害箇所の候補としたうえで、障害が発生したモジュールを特定することができるという効果を奏する。
【００１７】
また、請求項２の発明によれば、モジュールが障害を検出した場合に、上位装置から受け付けたディスクアクセス要求の実行を所定期間停止するよう構成したので、アクセス試験の影響が通常のデータアクセス処理に及ぶことを効果的に防止することができるという効果を奏する。
【００１８】
また、請求項３の発明によれば、アクセス試験の実行を指示してから所定期間経過するまでは、新たな障害が検出された場合であっても、アクセス試験の実行を指示しないよう構成したので、同一の障害理由に基づくアクセス試験が重複して実行されることを防止することにより、アクセス試験の実行に伴う処理の錯綜を効果的に防止することができるという効果を奏する。
【００１９】
また、請求項４の発明によれば、試験データの読み書きを所定間隔で所定回数繰り返すアクセス試験を実行するよう指示するよう構成したので、所定の負荷がかかった状態でのみ検出することが可能な障害を再現することにより、障害検出の信頼性を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係る障害検出装置および障害検出方法の好適な実施例を詳細に説明する。なお、以下では、ストレージ装置の全体制御を行うコントローラ内部に本発明に係る障害検出装置を設けた場合について説明する。また、本実施例によりこの発明が限定されるものではない。
【実施例】
【００２１】
まず、本発明の特徴部分である障害検出手法について図１を用いて説明する。図１は、本発明に係る障害検出手法の概念を示す図である。
【００２２】
本発明に係る障害検出手法では、障害検出対象となる装置を構成するモジュールが障害を検出すると（図１の（１）参照）、障害を検出したモジュールは、障害検出装置を備えたモジュールに障害発生情報を報告する（図１の（２）参照）。そして、この報告を受けたモジュールが全てのモジュールに対して「アクセス試験」を実行することを指示し（図１の（３）参照）、このアクセス試験の結果と、最初に障害を検出したモジュールの情報に基づいて障害箇所を特定する（図１の（４）参照）。
【００２３】
このように、本発明に係る障害検出手法は、障害が発生した箇所を特定する仕組みを設けた点に特徴がある。従来の障害検出手法では、障害が発生した旨を検出することはできたものの、障害発生箇所を特定することができなかったため、ストレージ装置の保守要員が、障害ログなどを参照しながら試行錯誤で障害箇所（障害モジュール）を特定し、特定した障害モジュールを交換する作業を行う必要があった。
【００２４】
ここで、従来の障害検出手法の概念について図１１を用いて説明しておく。図１１は、従来の障害検出手法の概念を示す図である。なお、同図ではディスクアレイ装置における障害検出手法について説明している。同図に示すように、サーバ装置は、このディスクアレイ装置に対して書込み処理（同図の「ライト」）および読出し処理（同図の「リード」）を行う。この際、ディスクに対する書込みデータや、ディスクからの読出しデータが、処理過程において破壊されることを防止するための「データ保証」を行うことが一般的である。
【００２５】
まず、図１１に示したディスクアレイ装置を構成する各モジュールについて説明する。同図の「ＣＡ」は、チャネルチャネルアダプタ（Channel  Adapter）であり、サーバ装置との接続を制御するモジュールである。同じく「ＤＡ」は、デバイスアダプタ（Device  Adapter）であり、ディスク装置との接続を制御するモジュールである。また、「ＣＭ」は、コントローラモジュール（Controller  Module）であり、ディスクアレイ装置全体の動作を制御するモジュールである。なお、このＣＭには、ディスクキャッシュとして用いられるメモリが内蔵されることが一般的である。そして、「ＲＴ」は、ルータ（RouTer）であり、上記したＣＡ、ＤＡおよびＣＭを相互に接続するモジュールである。
【００２６】
そして、これらのモジュールは、それぞれが冗長化されており、障害が発生した場合には、該当するモジュールを交換することにより、ディスクアレイ装置を連続運用することができる。
【００２７】
さて、上記した「データ保証」を行うために、上記した各モジュールでは、モジュールを通過するデータのデータチェックを行うことが一般的である。たとえば、ＣＡ（チャネルアダプタ）や、ＤＡ（デバイスアダプタ）では、ＣＲＣ（Cyclic  Redundancy  Check）チェックを行う。このＣＲＣチェックは、データ保証の対象データに、１６ビット〜３２ビットのＣＲＣコードを付加し、このＣＲＣコードを用いてチェック対象データのビットエラーを検出するものである。かかるＣＲＣチェックによれば、複数のビットが変化した場合であってもデータ異常を検出することができるので、ディスクコントローラなどにおけるデータチェックに用いられることが多い。
【００２８】
また、同図に示したように、ＣＭ（コントローラモジュール）やＲＴ（ルータ）では、パリティチェックを行うことが一般的である。このパリティチェックは、１ビットのビットエラーを検出するものであり、複数のビットエラーが発生した場合には、データ異常を検出することができない。このように、ディスクアレイ装置を構成するモジュールの中には、パリティチェックのみを行っているモジュールや、データチェック自体を行っていない（行うことができない）モジュールが存在する。
【００２９】
このため、上記したＣＲＣチェックを行っているモジュール（ＣＡおよびＤＡ）でデータエラーを検出した場合には、データの経路上のモジュール（ＣＭおよびＲＴ）が故障している可能性があるにもかかわらず、これらのモジュールの中で、どのモジュールが故障しているかを特定することができないという問題があった。
【００３０】
すなわち、従来の障害検出手法では、障害が発生しているモジュールを特定することができないために、交換すべきモジュールを判別できず、復旧作業を効率的に行うことができないという問題があった。特に、近年の情報処理システムの発展に伴って、無停止運転のニーズが高まっており、このニーズに応えるためにはいち早く障害モジュールを特定し、障害モジュールを交換することでシステム停止の危険性を回避する必要がある。
【００３１】
そこで、図１に示した本発明に係る障害検出手法では、上述したように、ＣＲＣチェックを行っているモジュール（ＣＡあるいはＤＡ）が障害を検出すると（図１の（１）参照）、障害検出装置を備えたモジュール（図１のＣＭ参照）に障害発生情報を報告する（図１の（２）参照）。そして、この報告を受けたモジュール（ＣＭ）が、アクセス試験機能を備えた全てのモジュール（図１のＣＡおよびＤＡ）に対してアクセス試験を実行することを指示し（図１の（３）参照）、このアクセス試験の結果に基づいて障害箇所を特定する（図１の（４）参照）こととしている。
【００３２】
このように、本発明に係る障害検出手法は、上記したＣＲＣチェック機能を備えていないモジュール（ＣＭあるいはＲＴ）が故障している場合であっても、障害箇所（障害モジュール）を特定することができるので、この障害モジュールを交換することにより、障害時の保守作業を迅速かつ効率的に行うことができる。
【００３３】
次に、図１および図１１に示した各モジュールの接続例について図２を用いて説明する。図２は、各モジュールの接続例を示す図である。同図に示すように、上記したＣＭ、ＲＴ、ＣＡおよびＤＡは、複数台ずつ設けられており、各モジュールを相互に接続することにより、特定のモジュールに障害が発生した場合であっても、障害モジュールを交換することにより運用を継続することができる構成をとっている。
【００３４】
たとえば、ＲＴ６０ａにはＣＡ７０およびＤＡ８０が、それぞれ複数台接続されている。また、ＣＭ５０ａは、４台のＲＴ（６０ａ〜６０ｄ）に接続されており、ＣＭ５０ａに障害が発生した場合には、他のＣＭ（５０ｂ〜５０ｄ）に、その機能を代替することができる。
【００３５】
なお、図２に示すＣＭ（５０ａ〜５０ｄ）の中の一台は、マスターＣＭとしての機能を果たすモジュールであり、以下で詳述するアクセス試験の試験結果を、このマスターＣＭに設けられた障害検出装置が集計することにより、被疑モジュールを特定することになる。
【００３６】
次に、本実施例に係る障害検出装置の構成について図２を用いて説明する。図２は、障害検出装置の構成を示す機能ブロック図である。なお、以下では、図２に示す障害検出装置１を、上記したＣＭ（コントローラモジュール）に設けた場合について説明することとする。
【００３７】
同図に示すように、障害検出装置１は、通信Ｉ／Ｆ部２と、制御部１０と、記憶部２０とを備えている。また、制御部１０は、サーバ要求制御部１１と、障害情報登録部１２と、試験実行指示部１３と、試験結果受信部１４と、障害箇所特定部１５とをさらに備えており、記憶部２０は、障害情報２１と、試験用記憶部２２とをさらに備えている。
【００３８】
通信Ｉ／Ｆ部２は、上記した各モジュールとデータ送受信を行うための通信デバイスである。この通信Ｉ／Ｆ部２は、障害検出装置１の外部から受信したデータを制御部１０に渡す処理を行うとともに、制御部１０から受け取ったデータを障害検出装置１の外部に送信する処理を行う。
【００３９】
制御部１０は、障害を検出したモジュール（以下、「障害検出モジュール」と呼ぶ）から障害情報を受け取ると、複数のモジュールに対して試験用記憶部２２に対するアクセス試験を実行するよう指示し、このアクセス試験の結果に基づいて障害箇所（障害モジュール）を特定する処理を行う処理部である。
【００４０】
障害情報登録部１２は、通信Ｉ／Ｆ部２を介して障害検出モジュールからの障害情報を受け取り、記憶部２０に障害情報２１として記憶させるとともに、サーバ要求制御部１１および試験実行指示部１３に対して障害情報を受け取った旨を通知する処理を行う処理部である。
【００４１】
また、この障害情報登録部１２は、いったん障害情報を受信した場合には、所定の時間が経過するまでは、新たな障害情報を受け付けない。このようにすることで、同一の障害理由に基づくアクセス試験が重複して実行されることを防止することにより、アクセス試験の実行に伴う処理の錯綜を効果的に防止することができる。
【００４２】
サーバ要求制御部１１は、サーバ装置からのディスク入出力指示の実行を一時的に停止する処理およびディスク入出力指示の実行を再開する処理を行う処理部である。具体的には、かかる入出力指示の実行を所定期間停止したり、アクセス試験の開始から終了までかかる入出力指示の実行を停止したりする。このように、サーバ要求制御部１１は、サーバ装置からのディスク入出力指示の実行を一時的に中止することとしたので、アクセス試験の影響が通常のデータアクセス処理に及ぶことを効果的に防止することができる。
【００４３】
試験実行指示部１３は、障害情報登録部１２からの通知により、記憶部２０の障害情報２１に基づいて複数のモジュールに対し、試験用記憶部２２への「アクセス試験」を実行するよう指示する処理部である。具体的には、障害発生時にアクセスしていたＣＭ（コントローラモジュール）の情報を障害情報２１から取得し、このＣＭを試験対象としたアクセス試験を行うよう複数のモジュールに指示する。また、各モジュールに対してアクセス試験の実行を指示する際には、試験対象となるＣＭ（コントローラモジュール）の識別番号に加えて、アクセス試験の実行先となる試験用記憶部２２内のアドレスを通知する。
【００４４】
ここで、この「アクセス試験」の内容について図４および図５を用いて説明しておく。図４は、試験内容の一例を示す図であり、図５は、データパターンの一例を示す図である。かかる試験実行指示部１３は、図４に示したアクセス試験の実行を、複数のモジュールに対して指示する。この指示に基づいて、各モジュールは、試験用記憶部２２の所定のエリアに対し、５１２バイト（以下、「５１２Ｂ」のように記載する）のデータに８バイトのブロックＩＤ（以下、「ＢＩＤ」と呼ぶ）を付加した５２０Ｂのデータを連続して８回書込む処理を行い（図４の「１」参照）、書込み処理が成功したか否かを確認する処理を行う（図４の「２」参照）。
【００４５】
つづいて、書込んだテストデータを読み出す処理を行い（図４の「３」参照）、読み出す処理が成功したか否かを確認する処理を行う（図４の「４」参照）。そして、書込んだデータと読み出したデータの先頭４Ｂを比較する処理を行う（図４の「５」参照）。
【００４６】
このような５つの処理を１セットとし、最初のセットではデータパターンＡ、次のセットではデータパターンＢというように、２つのデータパターンを交互に用いながら、これらのセットを０．５秒の間繰り返すこととしている。このように、試験用記憶部２２に対する書込みおよび読出し処理を、所定期間に渡り繰り返すことで、負荷状態を作り出すことができる。したがって、高負荷状態においてのみ発生する障害を効果的に検出することができる。
【００４７】
図５には、図４で示したデータパターンＡおよびデータパターンＢのデータ例を示している。図５に示したように、データパターンＡは、８つのデータ列を有しており、これらの８つのデータ列は、図４に示した各書込み処理および読出し処理において、それぞれ用いられる。
【００４８】
たとえば、図４の「１」で用いられる「５２０Ｂデータの８回連続書込み」では、図５の「１」〜「８」のデータが用いられることになる。なお、図５に示したＢＩＤ（ブロックＩＤ）は８Ｂであるものとする。また、図５に示したデータパターンＢは、データパターンＡのＸＯＲ（排他的論理和）をとったものである。
【００４９】
このように、異なるデータパターンを交互に用いることにより、特定のデータの書込みや読出しを行うことにより発生する障害を再現することができるので、障害検出の精度を向上させることができる。なお、図５では、アクセス試験のデータとして、各データ列のデータの内容がそれぞれ異なるものを使用した場合について説明したが、同一のデータを複数回（たとえば、８回）連続して書込んだり読出したりすることとしてもよい。
【００５０】
また、図４および図５に示したテストデータは一例を示したものであり、これらのテストデータとは異なるデータ長のデータを用いることとしてもよく、また、異なる繰り返しパターンを用いることとしてもよい。
【００５１】
図３の説明に戻り、試験結果受信部１４について説明する。この試験結果受信部１４は、各モジュールで実行されたアクセス試験の結果を受け取り、これらの結果を集計したものを障害箇所特定部１４に渡す処理を行う処理部である。たとえば、かかるアクセス試験の結果としては、ＣＲＣエラー検出、ＢＩＤエラー検出、Ｃｏｍｐａｒｅ（図４の「５」等を参照）エラー検出といった、検出したエラーの種別を示す情報が含まれる。
【００５２】
障害箇所特定部１５は、試験結果受信部１４から通知された情報に基づいて、障害箇所（障害が発生したモジュール）を特定する処理を行う処理部である。ここで、この障害箇所特定部１５が障害箇所を特定する手順について図６〜図９を用いて説明しておく。図６〜図９は、それぞれ、障害箇所特定の例１〜４を示す図である。
【００５３】
まず、障害箇所特定の例１について説明する。図６には、ＲＴ（ルータ）配下に複数のアダプタ（ＣＡあるいはＤＡ）が接続されており、この接続関係において、アクセス試験の結果、１個のアダプタが障害を検出した場合について示している。
【００５４】
この場合、障害箇所特定部１４は、図６に示すＣＡ（チャネルアダプタ）が障害を検出していることから、このＣＡを第１被疑箇所と、ＣＭおよびＲＴを第２、第３被疑箇所と特定する。なお、第１被疑箇所のモジュールは縮退させて活性保守の対象とすることになる。また、第２、第３被疑箇所のモジュールについても、第１被疑箇所のモジュールを交換後に障害が収束しない場合には、活性保守の対象とする。
【００５５】
次に、障害箇所特定の例２について説明する。図７には、ＲＴ（ルータ）配下に１個のアダプタ（図７ではＣＡ）のみが接続されており、この接続関係において、アクセス試験の結果、このＣＡが障害を検出した場合について示している。この場合、障害箇所特定部１４は、ＲＴおよびＣＡを第１被疑箇所と、ＣＭを第３被疑箇所と特定する。
【００５６】
次に、障害箇所特定の例３について説明する。図８には、ＲＴ（ルータ）配下に複数のアダプタ（ＣＡあるいはＤＡ）が接続されており、この接続関係において、アクセス試験の結果、複数のアダプタが障害を検出した場合について示している。この場合、障害箇所特定部１４は、ＲＴ配下の複数のアダプタが障害を検出していることから、このＲＴを第１被疑箇所と特定する。また、ＣＭを第２被疑箇所と、障害を検出したアダプタ（図７のＣＡおよびＤＡ）を第３被疑箇所と、それぞれ特定する。
【００５７】
次に、障害箇所特定の例４について説明する。図９には、複数のアダプタにおいて障害が検出されており、かかる障害を検出したアダプタが、同一のＣＭ配下の異なるＲＴにそれぞれ接続されている場合について示している。この場合、障害箇所特定部１４は、このＣＭを第１被疑箇所と特定し、障害を検出したアダプタが接続されているＲＴおよび障害を検出したアダプタを、第２、第３被疑箇所と特定する。
【００５８】
このように、障害箇所特定部１４は、アクセス試験の結果を試験結果受信部１４から受け取り、この試験結果に基づいて障害箇所（障害モジュール）を特定することとしたので、この障害モジュールを交換することにより、障害時の保守作業を迅速かつ効率的に行うことができる。
【００５９】
図３の説明に戻って記憶部２０について説明する。記憶部２０は、ＲＡＭ（Random  Access  Memory）などのメモリによって構成された記憶部であり、障害情報２１および試験用記憶部２２をさらに含んでいる。
【００６０】
障害情報２１は、障害を検出したモジュールから通知された情報である。この障害情報２１は、障害発生時に障害情報登録部１２によって記憶部２０に登録される。この障害情報２１は、障害検出モジュールが障害を検出した際にアクセスしていたＣＭ（コントローラモジュール）を示す情報を含んだ情報である。そして、試験実行指示部１３は、この障害情報２１に示されたＣＭに対するアクセス試験を各アダプタモジュール（ＣＡおよびＤＡ）に対して指示することになる。
【００６１】
試験用記憶部２２は、アクセス試験において各モジュールが試験データの書込み処理および読出し処理を行うエリアとなる記憶部である。具体的には、この試験用記憶部２２には、アダプタモジュール（ＣＡあるいはＤＡ）ごとのアクセスエリアが確保されており、各アダプタモジュールは、自モジュールに対して割り当てられたアクセスエリアに対してアクセス試験を実行する。たとえば、図４に示したように、５２０Ｂのデータを連続して８回書込む試験を行う場合には、少なくとも４１６０Ｂのアクセスエリアが各アダプタモジュール用にそれぞれ用意される。
【００６２】
次に、本実施例に係る障害検出装置１における障害検出処理の処理手順について図１０を用いて説明する。図１０は、障害検出処理の処理手順を示すフローチャートである。同図に示すように、障害情報登録部１２は、通信Ｉ／Ｆ部２を介して障害検出モジュールから障害情報を受信する（ステップＳ１０１）。そして、この障害情報登録部１２は、サーバＩ／Ｏのサスペンド（一時停止）をサーバ要求制御部１１に指示する（ステップＳ１０２）。以降、ステップＳ１０５まで、たとえば約１秒間のサスペンド状態が継続することになる。
【００６３】
そして、試験実行指示部１３は、障害情報２１に基づき、障害検出モジュールが障害を検出した際にアクセスしていたＣＭ（コントローラモジュール）に対するアクセス試験の実行を、複数のモジュール（ＣＡおよびＤＡ）に指示する（ステップＳ１０３）。そして、各モジュールがアクセス試験を完了すると、試験結果受信部１４は各モジュールからアクセス試験の結果を受信し（ステップＳ１０４）、このアクセス試験の完了をもってサーバ要求制御部１１にサーバＩ／Ｏのレジューム（再開）を指示する(ステップＳ１０５)。
【００６４】
つづいて、障害箇所特定部１５はアクセス試験の試験結果を試験結果受信部１４から受信し、図６〜図９に示した手順により障害箇所（障害モジュール）を特定する（ステップＳ１０６）。そして、障害モジュールを特定したならば、障害モジュールを縮退することにより活性保守の対象として（ステップＳ１０７）処理を終了する。
【００６５】
上述してきたように、本実施例では、障害情報登録部が障害検出モジュールから通知された障害情報を受信し、試験実行指示部が、かかる障害情報に基づいて障害発生時にアクセスしていたモジュールに対するアクセス試験の実行を各モジュールに指示し、試験結果受信部がアクセス試験の試験結果を受信したならば、障害箇所特定部がこのアクセス試験の試験結果に基づいて障害箇所を特定するよう構成した。また、サーバ要求制御部がアクセス試験の開始から終了までサーバ装置からのディスク入出力指示の実行を一時的に停止するよう構成した。したがって、障害検出機能を備えないモジュールに障害が発生した場合であっても、障害が発生したモジュールを特定することができる。また、アクセス試験の影響が通常のディスクアクセス処理に及ぶことを効果的に防止することができる。
【００６６】
なお、上述した実施例においては、障害検出装置をＣＭ（コントローラモジュール）内に設けた場合について説明したが、これに限らず、他のモジュールに設けたり、これらのモジュールの外部に設けたりすることとしてもよい。
【００６７】
また、上記の実施例では、本発明を実現する障害検出装置を機能面から説明したが、障害検出装置の各機能はストレージ装置を構成する各モジュールなどに設けられた組み込みコンピュータにプログラムを実行させることによって実現することもできる。
【００６８】
すなわち、本実施例で説明した各種の処理手順は、あらかじめ用意されたプログラムを上記コンピュータ上で実行することによって実現することができる。そして、これらのプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、これらのプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行するようにしてもよい。
【００６９】
（付記１）複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出装置であって、
前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示手段と、
前記試験指示手段の指示によって各モジュールで実行された各アクセス試験の結果に基づいて障害が発生したモジュールを特定する特定手段と、
を備えたことを特徴とする障害検出装置。
【００７０】
（付記２）前記モジュールが障害を検出した場合に、上位装置から受け付けたディスクアクセス要求の実行を所定期間停止する停止手段をさらに備えたことを特徴とする付記１に記載の障害検出装置。
【００７１】
（付記３）前記試験指示手段は、
前記アクセス試験の実行を指示してから所定期間経過するまでは、新たな障害が検出された場合であっても、前記アクセス試験の実行を指示しないことを特徴とする付記１または２に記載の障害検出装置。
【００７２】
（付記４）前記試験指示手段は、
前記試験データの読み書きを所定間隔で所定回数繰り返すアクセス試験を実行するよう指示することを特徴とする付記１、２または３に記載の障害検出装置。
【００７３】
（付記５）前記試験指示手段は、
所定のデータパターンを用いた読み書きと、該データパターンとは異なるデータパターンを用いた読み書きとを交互に行うアクセス試験を実行するよう指示することを特徴とする付記１〜４のいずれか一つに記載の障害検出装置。
【００７４】
（付記６）複数のモジュールで構成されるディスクコントローラに発生した障害を検出する障害検出方法であって、
前記モジュールが障害を検出した場合に、所定のメモリに対して試験データの読み書きを行うアクセス試験の実行を前記複数のモジュールに指示する試験指示工程と、
前記試験指示工程の指示によって各モジュールで実行された各アクセス試験の結果に基づいて障害が発生したモジュールを特定する特定工程と、
を含んだことを特徴とする障害検出方法。
【００７５】
（付記７）前記モジュールが障害を検出した場合に、上位装置から受け付けたディスクアクセス要求の実行を所定期間停止する停止工程をさらに含んだことを特徴とする付記６に記載の障害検出方法。
【００７６】
（付記８）前記試験指示工程は、
前記アクセス試験の実行を指示してから所定期間経過するまでは、新たな障害が検出された場合であっても、前記アクセス試験の実行を指示しないことを特徴とする付記６または７に記載の障害検出方法。
【００７７】
（付記９）前記試験指示工程は、
前記試験データの読み書きを所定間隔で所定回数繰り返すアクセス試験を実行するよう指示することを特徴とする付記６、７または８に記載の障害検出方法。
【００７８】
（付記１０）前記試験指示工程は、
所定のデータパターンを用いた読み書きと、該データパターンとは異なるデータパターンを用いた読み書きとを交互に行うアクセス試験を実行するよう指示することを特徴とする付記６〜９のいずれか一つに記載の障害検出方法。
【産業上の利用可能性】
【００７９】
以上のように、本発明に係る障害検出装置および障害検出方法は、ストレージ装置を構成するモジュールの中から障害が発生したモジュールを特定したい場合に有用であり、特に、各モジュールを冗長化したストレージ装置における障害発生モジュールの特定に適している。
【図面の簡単な説明】
【００８０】
【図１】障害検出手法の概念を示す図である。
【図２】各モジュールの接続例を示す図である。
【図３】障害検出装置の構成を示す機能ブロック図である。
【図４】試験内容の一例を示す図である。
【図５】データパターンの一例を示す図である。
【図６】障害箇所特定の例１を示す図である。
【図７】障害箇所特定の例２を示す図である。
【図８】障害箇所特定の例３を示す図である。
【図９】障害箇所特定の例４を示す図である。
【図１０】障害検出処理の処理手順を示すフローチャートである。
【図１１】従来の障害検出手法の概念を示す図である。
【００８１】
１  障害検出装置
２  通信Ｉ／Ｆ部
１０  制御部
１１  サーバ要求制御部
１２  障害情報登録部
１３  試験実行指示部
１４  試験結果受信部
１５  障害箇所特定部
２０  記憶部
２１  障害情報
２２  試験用記憶部
５０ａ、５０ｂ、５０ｃ、５０ｄ  ＣＭ（コントローラモジュール）
６０ａ、６０ｂ、６０ｃ、６０ｄ  ＲＴ（ルータ）
７０  ＣＡ（チャネルアダプタ）
８０  ＤＡ（デバイスアダプタ）
【図１】
2006277079.tif 000003
【図２】
2006277079.tif 000004
【図３】
2006277079.tif 000005
【図４】
2006277079.tif 000006
【図５】
2006277079.tif 000007
【図６】
2006277079.tif 000008
【図７】
2006277079.tif 000009
【図８】
2006277079.tif 000010
【図９】
2006277079.tif 000011
【図１０】
2006277079.tif 000012
【図１１】
2006277079.tif 000013