(57)【要約】【課題】診断監視コントローラの障害時でも障害監視が実施できるとともに、高い精度で容易に障害部位の特定ができるブレードサーバを提供する。【解決手段】診断の対象である診断対象ブロック１３２と診断監視コントローラ１３１とを備える複数のサーバ１３０と、複数のサーバ１３０の障害を管理するひとつの障害管理モジュール１２０と、各サーバ１３０の診断監視コントローラ１３１と、障害管理モジュール１２０とを接続する入出力ライン１５２と、各サーバ１３０の診断監視コントローラ１３１と、複数のサーバ１３０の複数の診断対象ブロック１３２とを接続する診断共通ライン１５１とを備え、診断監視コントローラ１３１ｂは、診断共通ライン１５１を介して、診断対象ブロック１３２ａを診断する。【選択図】図２
2013196410.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備え、
前記障害管理モジュールは、
前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信し、
前記複数のサーバの各サーバの前記診断モジュールは、
前記障害管理モジュールから前記通常診断要求を受信すると、前記複数のサーバの各サーバの前記診断対象ブロックを診断し、診断した結果を通常診断応答として前記障害管理モジュールに送信し、
前記障害管理モジュールは、
前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信し、
前記障害管理モジュールから前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールは、前記障害用通信路を介して、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを診断し、診断した結果を障害時診断応答として前記障害管理モジュールに送信することを特徴とするサーバ装置。
【請求項２】
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備え、
前記障害管理モジュールは、
前記複数のサーバのいずれかのサーバの前記診断対象ブロックの診断をする場合に、前記複数のサーバの少なくとも２つサーバの前記診断モジュールに対して、前記いずれかのサーバの前記診断対象ブロックの診断を要求する複合診断要求を送信し、
前記少なくとも２つのサーバの各サーバの前記診断モジュールは、
前記障害管理モジュールから前記複合診断要求を受信すると、前記障害用通信路を介して、前記いずれかのサーバの前記診断対象ブロックを診断し、診断した結果を複合診断応答として前記障害管理モジュールに送信することを特徴とするサーバ装置。
【請求項３】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとをバス接続方式により接続することを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとをネットワーク接続方式により接続することを特徴とする請求項１または２に記載のサーバ装置。
【請求項５】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを無線接続方式により接続することを特徴とする請求項１または２に記載のサーバ装置。
【請求項６】
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備えたサーバ装置の障害管理方法において、
前記障害管理モジュールが、前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信する通常診断要求工程と、
前記複数のサーバの各サーバの前記診断モジュールが、前記通常診断要求工程により前記障害管理モジュールから前記通常診断要求を受信すると、前記複数のサーバの各サーバの前記診断対象ブロックを診断し、診断した結果を通常診断応答として前記障害管理モジュールに送信する通常診断応答工程と、
前記障害管理モジュールが、前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信する障害時診断要求工程と、
前記障害管理モジュールから前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールが、前記障害用通信路を介して、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを診断し、診断した結果を障害時診断応答として前記障害管理モジュールに送信する障害時診断応答工程と
を備えることを特徴とするサーバ装置の障害管理方法。
【請求項７】
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備えたサーバ装置の障害管理プログラムにおいて、
前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信する通常診断要求送信ステップと、
前記複数のサーバの各サーバの前記診断モジュールから、前記通常診断要求に対する応答として、前記複数のサーバの各サーバの前記診断対象ブロックを診断した結果である通常診断応答を受信する通常診断応答受信ステップと、
前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信する障害時診断要求送信ステップと、
前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールから、前記障害時診断要求に対する応答として、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを前記障害用通信路を介して診断した結果である障害時診断応答を受信する障害時診断応答受信ステップと
をコンピュータに実行させることを特徴とする障害管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、１筐体に複数のサーバを搭載するサーバ装置、サーバ装置の障害管理方法、及びサーバ装置の障害管理プログラムに関する。
【背景技術】
【０００２】
１筐体に複数のブレード（サーバブレード）を装着したブレードサーバがある。ブレードサーバに装着される各「ブレード」には、メモリやハードディスク、ＣＰＵなどが配置されている。図１３に、比較例のブレードサーバ全体のブロック図を示す。ブレードサーバのブレードサーバ筐体は、複数のブレード、２重化された共通コンポーネント（電源、ＦＡＮ等）、ブレードサーバ全体を管理する総合管理モジュールから構成される。各ブレードには、診断・障害管理コントローラを搭載し、内部の障害管理および診断を行う。総合管理モジュールは、各ブレードの診断・障害管理コントローラを経由して障害管理および診断を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８７０２１号公報
【特許文献２】特開２００８−１４０２８０号公報
【特許文献３】特開２０１０−０９８５９１号公報
【特許文献４】特開２００２−０８２８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のブレードサーバは、上述した構成を有するので、ブレードの診断・障害管理コントローラや、ブレードが接続されたバス経路等の周辺部位が障害となった場合、そのブレードについては、ブレード状態の監視や診断を実施することが全くできなくなるという課題がある。リモートで障害管理や保守を実施するシステム用途が多いブレードサーバにおいては、運用上監視不可であるという深刻な状況になってしまう。
【０００５】
上記課題を回避するために、診断・障害管理コントローラの２重化が考えられるが、各ブレード内の回路部増大と切替え制御の仕組みとが必要となり、コストもかかり複雑化することから、各ブレード内での冗長化は実際にはあまり用いられてこなかった。
【０００６】
また、ブレードサーバには、障害時にリモート診断等により、障害部位の切分けを的確に高い精度で実施することが要求される。しかし、従来の自サーバ内の診断・障害監視コントローラの通常監視や個別診断のみでは、複合要因の障害条件の検出や特定には時間がかかり迅速な障害対応ができないという課題がある。
【０００７】
本発明は、上記のような課題を解決することを主な目的の一つとしており、各ブレードが他ブレードの診断・障害管理を実施できるような専用ラインを設けることにより、診断監視コントローラの障害時でも障害監視が実施できるとともに、高い精度で容易に障害部位の特定ができるブレードサーバを提供する。
【課題を解決するための手段】
【０００８】
本発明に係るサーバ装置は、
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備え、
前記障害管理モジュールは、
前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信し、
前記複数のサーバの各サーバの前記診断モジュールは、
前記障害管理モジュールから前記通常診断要求を受信すると、前記複数のサーバの各サーバの前記診断対象ブロックを診断し、診断した結果を通常診断応答として前記障害管理モジュールに送信し、
前記障害管理モジュールは、
前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信し、
前記障害管理モジュールから前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールは、前記障害用通信路を介して、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを診断し、診断した結果を障害時診断応答として前記障害管理モジュールに送信することを特徴とする。
【０００９】
本発明に係るサーバ装置は、
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路とを備え、
前記障害管理モジュールは、
前記複数のサーバのいずれかのサーバの前記診断対象ブロックの診断をする場合に、前記複数のサーバの少なくとも２つサーバの前記診断モジュールに対して、前記いずれかのサーバの前記診断対象ブロックの診断を要求する複合診断要求を送信し、
前記少なくとも２つのサーバの各サーバの前記診断モジュールは、
前記障害管理モジュールから前記複合診断要求を受信すると、前記障害用通信路を介して、前記いずれかのサーバの前記診断対象ブロックを診断し、診断した結果を複合診断応答として前記障害管理モジュールに送信することを特徴とする。
【００１０】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとをバス接続方式により接続することを特徴とする。
【００１１】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとをネットワーク接続方式により接続することを特徴とする。
【００１２】
前記障害用通信路は、前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを無線接続方式により接続することを特徴とする。
【００１３】
本発明に係る障害管理方法は、
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路と
を備えたサーバ装置の障害管理方法であって、
前記障害管理モジュールが、前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信する通常診断要求工程と、
前記複数のサーバの各サーバの前記診断モジュールが、前記通常診断要求工程により前記障害管理モジュールから前記通常診断要求を受信すると、前記複数のサーバの各サーバの前記診断対象ブロックを診断し、診断した結果を通常診断応答として前記障害管理モジュールに送信する通常診断応答工程と、
前記障害管理モジュールが、前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信する障害時診断要求工程と、
前記障害管理モジュールから前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールが、前記障害用通信路を介して、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを診断し、診断した結果を障害時診断応答として前記障害管理モジュールに送信する障害時診断応答工程と
を備えることを特徴とする。
【００１４】
本発明に係る障害管理プログラムは、
複数のサーバであって、各サーバが、診断の対象である診断対象ブロックと前記診断対象ブロックを診断する診断モジュールとを備える複数のサーバと、
前記複数のサーバの障害を管理するひとつの障害管理モジュールであって、前記複数のサーバの各サーバの前記診断モジュールと接続される障害管理モジュールと、
前記複数のサーバの各サーバの前記診断モジュールと、前記複数のサーバの複数の前記診断対象ブロックとを接続する障害用通信路と
を備えたサーバ装置の前記障害管理モジュールの障害管理プログラムであって、
前記複数のサーバの各サーバの前記診断モジュールに対して、前記複数のサーバの各サーバの前記診断対象ブロックの診断を要求する通常診断要求を送信する通常診断要求送信ステップと、
前記複数のサーバの各サーバの前記診断モジュールから、前記通常診断要求に対する応答として、前記複数のサーバの各サーバの前記診断対象ブロックを診断した結果である通常診断応答を受信する通常診断応答受信ステップと、
前記診断モジュールから前記通常診断応答を受信しなかった場合に、前記通常診断応答を受信しなかったサーバの前記診断モジュールに障害があると判断し、前記通常診断応答を受信しなかったサーバ以外のいずれかのサーバの前記診断モジュールに対し、前記通常診断応答を受信しなかったサーバの前記診断対象ブロックの診断を要求する障害時診断要求を送信する障害時診断要求送信ステップと、
前記障害時診断要求を受信した前記いずれかのサーバの前記診断モジュールから、前記障害時診断要求に対する応答として、前記通常診断応答を受診しなかったサーバの前記診断対象ブロックを前記障害用通信路を介して診断した結果である障害時診断応答を受信する障害時診断応答受信ステップと
をコンピュータである前記障害管理モジュールに実行させることを特徴とする。
【発明の効果】
【００１５】
本発明に係るサーバ装置によれば、複数のサーバのうちの一のサーバの診断モジュールが障害となった場合でも、障害時通信路を介して、他のサーバの診断モジュールが一のサーバの診断対象ブロックを診断することができるので、新たなコンポーネントを追加することなく、診断モジュール障害時の診断機能を代替することができ、障害管理の信頼性が向上する。
【００１６】
本発明に係るサーバ装置によれば、複数のサーバのうちの一のサーバの診断対象ブロックに対して、障害時通信路を介して、他のサーバの診断モジュールから診断することができるので、複数の診断モジュールからの同時診断・複合診断によって障害部位検出や障害部位の切分けができ、障害時診断の精度を高めることができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に係るサーバ装置１００の機能ブロック図である。
【図２】実施の形態１に係るサーバ装置１００の詳細ブロック構成図である。
【図３】実施の形態１に係る診断共通ライン１５１をバス接続方式により実現する場合の詳細構成図である。
【図４】実施の形態１に係る診断共通ライン１５１をネットワーク接続方式により実現する場合の詳細構成図である。
【図５】実施の形態１に係る障害管理モジュール１２０のハードウェア資源の一例を示す図である。
【図６】実施の形態１に係るサーバ装置１００の障害管理方法の動作を示すフローチャート図である。
【図７】実施の形態２に係るサーバ装置１００の障害特定方式の一例を示す図である。
【図８】実施の形態２に係るサーバ１３０のメモリ１３７の詳細構成図である。
【図９】実施の形態２に係るサーバ１３０のディスク１３５の詳細構成図である。
【図１０】実施の形態２に係る診断コマンド１の処理の流れを示すフローチャート図である。
【図１１】実施の形態２に係る診断コマンド２の処理の流れを示すフローチャート図である。
【図１２】実施の形態３に係るサーバ装置１００の障害特定方式の一例を示す図である。
【図１３】比較のためのブレードサーバ全体の機能ブロック図である。
【発明を実施するための形態】
【００１８】
実施の形態１．
図１は、本実施の形態に係るサーバ装置１００の機能ブロック図である。図１を用いて、サーバ装置１００の機能ブロック構成について説明する。
【００１９】
サーバ装置１００は、サーバ筐体１１０、障害管理モジュール１２０、サーバ１３０、２重化された周辺モジュール１４０、サーバ間通信バス１５０、診断共通ライン１５１、入出力ライン１５２を備える。
【００２０】
本実施の形態に係るサーバ装置１００は、例えば、１つのサーバ筐体１１０にブレードと呼ばれるサーバ１３０を複数装着したブレードサーバである。サーバ筐体１１０は、ブレードと呼ばれるサーバ１３０を装着するための複数の差込口を備える。図１に示すように、サーバ装置１００は、サーバ１〜サーバｎの複数のサーバ１３０を備えるものとする。
【００２１】
複数のサーバ１３０の各サーバ１３０は、診断の対象である診断対象ブロック１３２と、診断対象ブロック１３２を診断する診断監視コントローラ１３１とを備える。複数のサーバの各サーバ１３０は、それぞれがサーバコンピュータとしての動作が可能であり、それぞれがＣＰＵ、メモリ、Ｉ／Ｏ、ディスク（ＨＤＤ）等を備えている。
【００２２】
診断対象ブロック１３２とは、サーバ１３０に搭載されているＣＰＵ、メモリ、Ｉ／Ｏ、ディスク等である。診断監視コントローラ１３１は、各サーバ１３０のＣＰＵ、メモリ、Ｉ／Ｏ、ディスク等を診断するサービスプロセッサであり、各サーバ１３０に搭載されている。
【００２３】
障害管理モジュール１２０は、複数のサーバ１３０の各サーバ１３０の障害を管理するひとつの障害管理モジュール１２０であって、複数のサーバ１３０の各サーバ１３０の診断監視コントローラ１３１（診断モジュール）と接続される。
【００２４】
例えば、障害管理モジュール１２０は、複数のサーバ１３０の複数の診断監視コントローラ１３１に対して、診断対象ブロック１３２の診断を要求する診断要求信号を順次送信する。そして、複数のサーバ１３０の複数の診断監視コントローラ１３１から診断結果を順次受け取ることにより、複数のサーバ１３０の障害を管理する。障害管理モジュール１２０は、例えば、上記の診断要求信号の送信処理を定期的に実行するなどして、複数のサーバ１３０の障害を管理する。
【００２５】
周辺モジュール１４０は、サーバ１３０に給電するための電源、サーバ装置１００全体の放熱のためのファン等を備える。また、周辺モジュール１４０は、電源、ファン等を監視する監視ユニット１４１を備える。周辺モジュール１４０については冗長化されており、サーバ装置１００は、２重化された周辺モジュール１４０ａ，１４０ｂを備える。
【００２６】
診断共通ライン１５１は、各サーバ１３０のサービスプロセッサ（診断監視コントローラ１３１）が他サーバ１３０の診断・障害監視も実施できるように設けられた専用ライン（データの伝送路、通信路）である。診断共通ライン１５１は、各サーバ１３０の診断監視コントローラ１３１と診断対象ブロック１３２（ＣＰＵ、メモリ、ディスク、Ｉ／Ｏ等）との間を、それぞれ接続する。これにより、診断監視コントローラ１３１が他のサーバ１３０の診断対象ブロック１３２にアクセスするためのパスができる。
【００２７】
診断共通ライン１５１は、各サーバ１３０の診断監視コントローラ１３１（診断モジュール）と、サーバ装置１００が備える全てのサーバ１３０の診断対象ブロック１３２とを接続する障害用通信路の一例である。
【００２８】
サーバ間通信バス１５０は、各サーバ１３０同士を接続する。また、入出力ライン１５２は、障害管理モジュール１２０と、各診断監視コントローラ１３１とを接続する入出力ラインであり、全ての診断監視コントローラ１３１は障害管理モジュール１２０と直接接続されている。
【００２９】
図２は、本実施の形態に係るサーバ装置１００の詳細ブロック構成図である。図２では、サーバ装置１００の備えるサーバ１〜サーバｎのうちの、サーバａ（サーバ１３０ａ）とサーバｂ（サーバ１３０ｂ）とを詳細に示している。以下の説明において構成部にａ，ｂ等の添え字を付す場合は、サーバ１３０ａあるいはサーバ１３０ｂ等に対応する構成部であるものとする。
【００３０】
診断対象ブロック１３２は、ノードコントローラ１３３、Ｉ／Ｏ１３４、ディスク１３５（ＨＤＤ）、ＣＰＵ１３６、メモリ１３７を備える。ノードコントローラ１３３は、診断対象であるＩ／Ｏ１３４、ディスク１３５、ＣＰＵ１３６、メモリ１３７等と診断監視コントローラ１３１との間のインタフェースを制御する。
【００３１】
診断共通ライン１５１は、サーバ１３０ａの診断監視コントローラ１３１ａとノードコントローラ１３３ａとの間と、サーバ１３０ｂの診断監視コントローラ１３１ｂとノードコントローラ１３３ｂとの間とを接続する。これにより、サーバ１３０ａの診断監視コントローラ１３１ａは、サーバ１３０ｂの診断監視コントローラ１３１ｂを介さずに、サーバ１３０ｂのノードコントローラ１３３ｂにアクセスできる。つまり、サーバ１３０ａの診断監視コントローラ１３１ａは、サーバ１３０ｂの診断監視コントローラ１３１ｂを介さずに、サーバ１３０ｂの診断対象ブロック１３２ｂを診断できる。同様に、サーバ１３０ｂの診断監視コントローラ１３１ｂも、サーバ１３０ａの診断監視コントローラ１３１ａを介さずに、サーバ１３０ａの診断対象ブロック１３２ａを診断できる。
【００３２】
サーバ間通信バス１５０は、各サーバ１３０のノードコントローラ１３３間を接続するバスである。
【００３３】
障害管理モジュール１２０と診断監視コントローラ１３１ａとは、入出力ライン１５２ａにより接続されており、障害管理モジュール１２０と診断監視コントローラ１３１ｂとは、入出力ライン１５２ｂにより接続されている。
【００３４】
図３は、本実施の形態に係る診断共通ライン１５１をバス接続方式により実現する場合の詳細構成図である。図４は、本実施の形態に係る診断共通ライン１５１をネットワーク接続方式により実現する場合の詳細構成図である。図３及び図４を用いて、診断共通ライン１５１の接続方式について説明する。
【００３５】
図３は、バス接続方式により診断共通ライン１５１を実現する場合を示している。診断監視コントローラ１３１はバスコントローラ１３１１を備え、ノードコントローラ１３３はバスコントローラ１３３１を備える。サーバ１３０ａのバスコントローラ１３１１ａとバスコントローラ１３３１ａとの間と、サーバ１３０ｂのバスコントローラ１３１１ｂとバスコントローラ１３３１ｂとの間とを、サーバ筐体１１０（ブレードシャーシ）のバックボードにおいて接続する。他のサーバ（サーバ１〜サーバｎ）についても同様である。
【００３６】
バス接続方式により診断共通ライン１５１を実現する場合には、サーバ１３０のスロットＩＤをそのまま使用して、各ノードコントローラ１３３を識別することができる。スロットＩＤとは、サーバ筐体１１０の差込口に対して付された識別子（ＩＤ）である。
【００３７】
図４は、ネットワーク接続方式により診断共通ライン１５１を実現する場合を示している。診断監視コントローラ１３１はＬＡＮコントローラ１３１２を備え、ノードコントローラ１３３はＬＡＮコントローラ１３３２を備える。そして、ＬＡＮコントローラ１３１２とＬＡＮコントローラ１３３２との間には、ＨＵＢポートコネクタ１３５０を備える。
【００３８】
サーバ１３０ａのＨＵＢポートコネクタ１３５０ａと、サーバ１３０ｂのＨＵＢポートコネクタ１３５０ｂとを、サーバ筐体１１０（ブレードシャーシ）のバックボードにおいて接続する。
【００３９】
ネットワーク接続方式により診断共通ライン１５１を実現する場合には、例えば、各ノードコントローラ１３３に対してネットワークアドレスを設定することにより、各ノードコントローラ１３３識別する。また、ネットワーク接続方式により診断共通ライン１５１を実現した場合には、サーバ装置１００の外部のネットワークにも接続することができる。例えば、ＬＡＮを経由して、外部の装置から障害管理をすることも可能である。
【００４０】
あるいは、無線接続方式により診断共通ライン１５１を実現してもよい。この場合も、各ノードコントローラ１３３に対して無線通信用アドレスを設定することにより、各ノードコントローラ１３３を識別する。
【００４１】
次に、本実施の形態に係る障害管理モジュール１２０のハードウェア構成例について説明する。図５は、本実施の形態に係る障害管理モジュール１２０のハードウェア資源の一例を示す図である。なお、図５の構成は、あくまでも障害管理モジュール１２０のハードウェア構成の一例を示すものであり、障害管理モジュール１２０のハードウェア構成は図５に記載の構成に限らず、他の構成であってもよい。
【００４２】
図５において、障害管理モジュール１２０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）９１４、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。障害管理モジュール１２０は、表示装置９０１を備えていてもよい。
【００４３】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
【００４４】
通信ボード９１５などは、入力装置の一例である。また、通信ボード９１５、表示装置９０１などは、出力部、出力装置の一例である。通信ボード９１５は、ネットワークに接続されていてもよい。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていてもよい。
【００４５】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１を利用しながら実行する。なお障害管理モジュール１２０は、大容量の記憶領域を必要としないため、磁気ディスク装置９２０は、半導体メモリ（フラッシュメモリ）で代替可能である。
【００４６】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００４７】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ・Ｉｎｐｕｔ・Ｏｕｔｐｕｔ・Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。障害管理モジュール１２０の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００４８】
上記プログラム群９２３には、本実施の形態の説明において「〜部」、「〜モジュール」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００４９】
ファイル群９２４には、本実施の形態の説明において、「〜の判断」、「〜の判別」、「〜の比較」、「〜の参照」、「〜の抽出」、「〜の指定」、「〜の特定」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
【００５０】
また、本実施の形態で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５１】
また、本実施の形態の説明において「〜部」、「〜モジュール」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
【００５２】
また、「〜部」、「〜モジュール」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、本実施の形態の「〜部」、「〜モジュール」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」の手順や方法をコンピュータに実行させるものである。
【００５３】
図６は、本実施の形態に係るサーバ装置１００の障害管理方法の動作を示すフローチャートである。図２及び図６を用いて、サーバ装置１００の障害管理方法について説明する。以下に説明する処理は、障害管理モジュール１２０、診断監視コントローラ１３１、ノードコントローラ１３３が、処理装置（ＣＰＵ）を用いて実行するものとする。
【００５４】
障害管理モジュール１２０は、サーバ１の診断監視コントローラ１３１からサーバｎの診断監視コントローラ１３１までを巡回でポーリングして、各サーバ１３０の診断対象ブロック１３２のステータス（状態情報）のチェックを開始する（Ｓ１１０）。
【００５５】
障害管理モジュール１２０は、複数のサーバ１３０の各サーバ１３０（処理対象のサーバ１３０）の診断監視コントローラ１３１（診断モジュール）に対して、処理対象のサーバ１３０の診断対象ブロック１３２の診断を要求する通常診断要求１６０（図２参照）を、入出力ライン１５２を介して送信する。
【００５６】
処理対象のサーバ１３０の診断監視コントローラ１３１は、障害管理モジュール１２０から通常診断要求１６０を受信すると、処理対象のサーバ１３０（つまり、自サーバ１３０）の診断対象ブロック１３２を診断し、診断した結果を通常診断応答１６１として障害管理モジュール１２０に入出力ライン１５２を介して送信する。
【００５７】
処理対象のサーバ１３０の診断監視コントローラ１３１は、障害管理モジュール１２０から通常診断要求１６０を受信すると、処理対象のサーバ１３０のノードコントローラ１３３に通常診断要求１６０を送信する。ノードコントローラ１３３は、診断監視コントローラ１３１から通常診断要求１６０を受信すると、通常診断要求１６０に基づいて、診断対象ブロック１３２の診断を実行する。
【００５８】
通常診断要求１６０がメモリ１３７やディスク１３５を診断することを要求するものである場合、ノードコントローラ１３３は、メモリ１３７やディスク１３５にデータを書き込み、書き込んだデータを読み込み、書き込んだデータと読み込んだデータとが等しいか否かを判定することにより、メモリ１３７やディスク１３５が正常であるか否かを判定する。
【００５９】
また、通常診断要求１６０がＣＰＵ１３２を診断することを要求するものである場合、ノードコントローラ１３３は、ＣＰＵ１３２に演算命令を出し、ＣＰＵ１３２の演算結果と予め記憶している演算結果とが等しいか否かを判定することにより、ＣＰＵ１３２が正常であるか否かを判定する。あるいは、ノードコントローラ１３３は、ＣＰＵ１３２のキャッシュメモリに対してデータを書き込み、書き込んだデータを読み込んで、書き込んだデータと読み込んだデータとが等しいか否かを判定することにより、ＣＰＵ１３２が正常であるか否かを判定する。
【００６０】
また、通常診断要求１６０がＩ／Ｏ１３４を診断することを要求するものである場合、ノードコントローラ１３３は、Ｉ／Ｏ１３４に対し、パスの状態を一定間隔で確認するパスヘルスチェックを実行してＩ／Ｏ１３４が正常であるか否かを判定する。
【００６１】
ノードコントローラ１３３は、以上のような方法を用いて、診断対象ブロック１３２内の診断対象に対し診断を実行し、その診断結果を診断監視コントローラ１３１に送信する。診断監視コントローラ１３１は、ノードコントローラ１３３から受信した診断結果を通常診断応答１６１として障害管理モジュール１２０に送信する。
【００６２】
Ｓ１２０において、障害管理モジュール１２０は、サーバ１３０の診断監視コントローラ１３１に正常に接続でき、サーバ１３０の情報（ステータス）を入手できるかを判定する。障害管理モジュール１２０は、処理対象のサーバ１３０の診断監視コントローラ１３１から通常診断応答１６１を受信した場合に、ＣＰＵにより、当該サーバ１３０のステータスを入手できると判定する。
【００６３】
障害管理モジュール１２０は、サーバ１３０の診断監視コントローラ１３１から通常診断応答１６１を受信しなかった、または受信データが受信データフォーマットに合致しないような不正データとなった場合に、通常診断応答１６１を受信しなかったサーバ１３０、または受信データが受信データフォーマットに合致しないような不正データとなったサーバ１３０の診断監視コントローラ１３１に障害があると判断し、当該サーバ１３０の情報（ステータス）を入手できないと判定する。
【００６４】
障害管理モジュール１２０は、サーバ１３０のステータスを入手できると判定した場合（Ｓ１２０でＹＥＳ）、処理をＳ１３０に進める。障害管理モジュール１２０は、ＣＰＵにより、サーバ１３０のステータスを入手できないと判定した場合（Ｓ１２０でＮＯ）、処理をＳ１２１に進める。
【００６５】
Ｓ１３０において、障害管理モジュール１２０は、処理対象のサーバ１３０が正常か否かを判定する。障害管理モジュール１２０は、受信した通常診断応答１６１の内容を解析し、処理対象のサーバ１３０の診断対象ブロック１３２が正常か否かを判定する。
【００６６】
障害管理モジュール１２０は、受信した通常診断応答１６１に基づいて、処理対象のサーバ１３０の診断対象ブロック１３２が正常と判定した場合（Ｓ１３０でＹＥＳ）、処理をＳ１１０に戻し、次のサーバ１３０にポーリングする。障害管理モジュール１２０は、処理対象のサーバ１３０の診断対象ブロック１３２が正常でないと判定した場合（Ｓ１３０でＮＯ）、処理をＳ１４０に進める。
【００６７】
Ｓ１４０において、障害管理モジュール１２０は、受信した通常診断応答１６１の内容を解析した結果から、障害部位が特定できるか否かを判定する。障害管理モジュール１２０は、処理対象のサーバ１３０の障害部位が特定できた場合には（Ｓ１４０でＹＥＳ）、障害通知を表示装置等に出力する（Ｓ１４１）。
【００６８】
障害部位を特定する方法は、例えばメモリ、ディスク、またはＣＰＵ、Ｉ／Ｏからの結果データが正常でない場合、正常でない診断対象を障害部位と特定する。または診断対象のメモリ、ディスク、ＣＰＵ、Ｉ／Ｏアクセス時に応答がない場合に障害部位と特定する方法が考えられる。
【００６９】
障害管理モジュール１２０は、処理対象のサーバ１３０の障害部位が特定できない場合には（Ｓ１４０でＮＯ）、処理をＳ２００に進める。
【００７０】
上述したように、障害管理モジュール１２０がサーバ１３０のステータスを入手できないと判定した場合（Ｓ１２０でＮＯ）は、処理をＳ１２１に進める。Ｓ１２１において、障害管理モジュール１２０は、ステータスを入手できないと判定したサーバ１３０（診断監視コントローラ１３１に障害があると判断したサーバ１３０、すなわち、処理対象のサーバ１３０）以外のサーバ１３０で、ポーリング待ちのサーバ１３０があるか否かを判定する。ポーリング待ちのサーバとは、診断監視コントローラ１３１が障害管理モジュール１２０から通常診断要求１６０を受取っておらず、診断対象ブロック１３２へのアクセスがないサーバ１３０）である。ステータスを入手できないと判定したサーバ１３０（診断監視コントローラ１３１に障害があると判断したサーバ１３０）とは、通常診断応答１６１を受信しなかった、または受信データが受信データフォーマットに合致しないような不正データとなったサーバ１３０である。
【００７１】
障害管理モジュール１２０は、例えば、処理対象のサーバ１３０（例えば、サーバ１）の次のサーバ１３０（サーバ２）にポーリングし、次のサーバ１３０（サーバ２）が「Ｂｕｓｙ」の場合は、次の次のサーバ１３０（サーバ３）にポーリングする方法で、空いているサーバ１３０を特定する。
【００７２】
Ｓ１５０において、障害管理モジュール１２０は、通常診断応答１６１を受信しなかった、または受信データが受信データフォーマットに合致しないような不正データとなったサーバ１３０（処理対象のサーバ１３０）以外のいずれかのサーバの診断監視コントローラ１３１に対し、通常診断応答１６１を受信しなかったサーバ１３０（処理対象のサーバ１３０）の診断対象ブロック１３２の診断を要求する障害時診断要求１７０（図２参照）を、入出力ライン１５２を介して送信する。
【００７３】
以下の説明において、説明の簡単のため、処理対象のサーバ１３０をサーバ１３０ａとし、診断監視コントローラ１３１ａが障害であり、サーバ１３０ｂが空いているサーバであるものとして説明する。つまり、障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂに対し、サーバ１３０ａの診断対象ブロック１３２ａの診断を要求する障害時診断要求１７０を、入出力ライン１５２ｂを介して送信する。
【００７４】
障害時診断要求には、通常診断応答１６１を受信しなかった、または受信データが受信データフォーマットに合致しないような不正データとなったサーバ１３０ａ（処理対象のサーバ１３０）のノードコントローラ１３３ａのＩＤ（バス接続方式の場合）が含まれる。障害時診断要求１７０を受信したサーバ１３０ｂの診断監視コントローラ１３１ｂは、障害時診断要求に含まれるノードコントローラ１３３ａのＩＤに対応するノードコントローラ１３３ａに対して、診断共通ライン１５１を介して、障害時診断要求１７０を送信する。
【００７５】
診断監視コントローラ１３１ｂから障害時診断要求１７０を受信したサーバ１３０ａのノードコントローラ１３３ａは、診断対象ブロック１３２ａ内の診断対象を診断し、診断した結果を障害時診断応答１７１として、診断共通ライン１５１を介して、サーバ１３０ｂの診断監視コントローラ１３１ｂに送信する。
【００７６】
診断監視コントローラ１３１ｂは、ノードコントローラ１３３ａから障害時診断応答１７１を受信し、受診した障害時診断応答１７１を障害管理モジュール１２０に入出力ライン１５２を介して送信する。
【００７７】
Ｓ１６０において、障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂに正常に接続でき、サーバ１３０ａのステータスを入手できるかを判定する。障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂから障害時診断応答１７１を受信した場合に、処理対象のサーバ１３０ａのステータスを入手できると判定する。
【００７８】
障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂから障害時診断応答１７１を受信しなかった場合（Ｓ１６０でＮＯ）に、サーバ１３０ｂの診断監視コントローラ１３１ｂに障害があると判断し、処理をＳ１２１に戻し、さらに空いているサーバ１３０を特定する処理を続ける。
【００７９】
あるいは、障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂから障害時診断応答１７１を受信しなかった場合、または受信データが受信データフォーマットに合致しないような不正データとなった（Ｓ１６０でＮＯ）に、処理対象のサーバ１３０ａのノードコントローラ１３３ａに障害があると判断するとしてもよい。この場合は、障害管理モジュール１２０は、処理対象のサーバ１３０ａのノードコントローラ１３３ａに障害があることを示す障害通知を、例えば表示装置に出力する。
【００８０】
障害管理モジュール１２０は、処理対象のサーバ１３０ａのステータスを入手できると判定した場合（Ｓ１６０でＹＥＳ）、処理をＳ１７０に進める。
【００８１】
Ｓ１７０において、障害管理モジュール１２０は、処理対象のサーバ１３０ａが正常か否かを判定する。障害管理モジュール１２０は、受信した障害時診断応答１７１の内容を解析し、処理対象のサーバ１３０ａの診断対象ブロック１３２ａが正常か否かを判定する。
【００８２】
障害管理モジュール１２０は、処理対象のサーバ１３０ａの診断対象ブロック１３２ａが正常と判定した場合（Ｓ１７０でＹＥＳ）、処理をＳ１１０に戻し、次のサーバ１３０にポーリングし、次のサーバ１３０に通常診断要求１６０を送信する。障害管理モジュール１２０は、処理対象のサーバ１３０ａの診断対象ブロック１３２ａが正常でないと判定した場合（Ｓ１７０でＮＯ）、処理をＳ１８０に進める。
【００８３】
Ｓ１８０において、障害管理モジュール１２０は、受信した障害時診断応答１７１の内容を解析した結果から、障害部位が特定できるか否かを判定する。障害管理モジュール１２０は、処理対象のサーバ１３０ａの障害部位が特定できた場合には（Ｓ１８０でＹＥＳ）、障害部位を示す内容を含む障害通知を表示装置等に出力する（Ｓ１８１）。
【００８４】
障害管理モジュール１２０は、処理対象のサーバ１３０ａの障害部位が特定できない場合には（Ｓ１８０でＮＯ）、処理をＳ２００に進める。
【００８５】
Ｓ２００において、障害管理モジュール１２０は、処理対象のサーバ１３０の障害部位が特定できないと判断し、その旨の障害通知を表示装置に出力する。
【００８６】
以上で、本実施の形態に係るサーバ装置１００の障害管理方法についての説明を終わる。
【００８７】
本実施の形態に係るサーバ装置１００によれば、１筐体に複数のサーバを搭載するブレードサーバにおいて、各ブレードサーバのサービスプロセッサ（診断・障害監視コントローラ）が、他ブレードサーバの診断・障害監視も実施できるような専用ライン（診断監視共通バス）と総合監視モジュールのアルゴリズムを設けることにより、新たなコンポーネントを追加せずに診断監視コントローラ障害時の機能を代替することができる。
【００８８】
以上のように、本実施の形態に係るサーバ装置１００によれば、サーバの診断・障害監視コントローラが障害となった場合に、他サーバの診断・障害監視コントローラから共通バスを介して、コントローラ障害となったサーバの診断監視対象にアクセスして、監視や診断を継続的に実施することが可能となる。この結果、常に統合監視モジュールに各ブレードサーバの情報収集と診断実行を行うことができる。診断の実行コマンドと順序制御は、統合管理モジュールが実行する。
【００８９】
実施の形態２．
本実施の形態では、サーバ装置１００によりサーバ１３０の障害部位の特定をする障害特定方法について説明する。例えば、実施の形態１において説明した図６の処理で、障害部位を特定できないという障害通知が表示装置に表示された場合（Ｓ２００の場合）、ユーザは障害部位を特定するための試験等を行うこととなる。その場合の障害特定方法について説明する。
【００９０】
本実施の形態に係るサーバ装置１００の障害特定方法は、サーバ装置１００の一時的な障害（容易に再現しない障害）や複合的な要因でしか発生しない障害の場合、その障害発生の条件や頻度の検出に有効である。
【００９１】
図７は、本実施の形態に係るサーバ装置１００の障害特定方式の一例を示す図である。図７は、図２に対応する図であり、図２で説明した構成部と同一の機能を有する構成部については同一の符号を付し、その説明を省略する。
【００９２】
図７では、サーバ１３０ａ、サーバ１３０ｂに加えてサーバｃ（サーバ１３０ｃ）が記載されている。サーバ１３０ｃもサーバ１〜サーバｎのうちのサーバ１３０のひとつであり、その構成はサーバ１３０ａ、サーバ１３０ｂと同様である。また、障害管理モジュール１２０には、入出力装置（コンソール１９０）が接続される。
【００９３】
本実施の形態では、サーバ１３０ａの異なる複数のコンポーネント（ＣＰＵ１３２ａ、メモリ１３７ａ、ディスク１３５ａの３つ）にアクセスが継続した場合に、ＣＰＵ１３２ａが正常動作せずサーバ１３０ａがダウンしてしまうような障害を検出する場合について説明する。
【００９４】
図７を用いて、本実施の形態に係るサーバ装置１００の障害特定方式について説明する。障害管理モジュール１２０のプログラムから自動的に、またはコンソール１９０からのマニュアル操作により、各サーバ１３０ａ，１３０ｂ，１３０ｃの診断監視コントローラ１３１ａ，１３１ｂ，１３１ｃに対し診断コマンドを送信する。
【００９５】
障害管理モジュール１２０は、サーバ１３０ａの診断監視コントローラ１３１ａに、メモリ１３７ａを診断するための診断コマンド１を入出力ライン１５２ａを介して送信する。障害管理モジュール１２０は、サーバ１３０ｂの診断監視コントローラ１３１ｂに、サーバ１３０ａのＣＰＵ１３２ａを診断するための診断コマンド２を入出力ライン１５２ｂを介して送信する。また、障害管理モジュール１２０は、サーバ１３０ｃの診断監視コントローラ１３１ｃに、サーバ１３０ａのディスク１３５ａを診断するための診断コマンド１を入出力ライン１５２ｃを介して送信する。
【００９６】
本実施の形態において、障害管理モジュール１２０が送信する診断コマンドは、診断コマンド１と診断コマンド２との２つである。診断コマンド１は、診断対象のモジュールに対して、診断データの書込・読込処理を実行することにより診断を行うコマンドである。診断コマンド２は、診断対象のモジュール（主に、ＣＰＵ）に対して、診断データの演算を実行させることにより診断を行うコマンドである。
【００９７】
サーバ１３０ａの診断監視コントローラ１３１ａは、障害管理モジュール１２０から診断コマンド１（メモリ１３７ａの診断）を受信すると、サーバ１３０ａのノードコントローラ１３３ａに診断コマンド１（メモリ１３７ａの診断）を送信する。
【００９８】
サーバ１３０ｂの診断監視コントローラ１３１ｂは、障害管理モジュール１２０から診断コマンド２（ＣＰＵ１３６ａの診断）を受信すると、診断共通ライン１５１を介して、サーバ１３０ａのノードコントローラ１３３ａに診断コマンド２（ＣＰＵ１３６ａの診断）を送信する。
【００９９】
サーバ１３０ｃの診断監視コントローラ１３１ｃは、障害管理モジュール１２０から診断コマンド１（ディスク１３５ａの診断）を受信すると、診断共通ライン１５１を介して、サーバ１３０ａのノードコントローラ１３３ａに診断コマンド１（ディスク１３５ａの診断）を送信する。
【０１００】
ノードコントローラ１３３ａは、診断監視コントローラ１３１ａから診断コマンド１（メモリ１３７ａの診断）を受け取ると、診断コマンド１（メモリ１３７ａの診断）に基づいてメモリ１３７ａの診断を実行し、診断結果を診断監視コントローラ１３１ａに送信する。
【０１０１】
ノードコントローラ１３３ａは、診断監視コントローラ１３１ｂから診断コマンド２（ＣＰＵ１３６ａの診断）を受け取ると、診断コマンド２（ＣＰＵ１３６ａの診断）に基づいてＣＰＵ１３６ａの診断を実行し、診断結果を診断共通ライン１５１を介して診断監視コントローラ１３１ｂに送信する。
【０１０２】
ノードコントローラ１３３ａは、診断監視コントローラ１３１ｃから診断コマンド１（ディスク１３５ａの診断）を受け取ると、診断コマンド１（ディスク１３５ａの診断）に基づいてディスク１３５ａの診断を実行し、診断結果を診断共通ライン１５１を介して診断監視コントローラ１３１ｃに送信する。
【０１０３】
診断監視コントローラ１３１ａ，１３１ｂ，１３１ｃは、サーバ１３０ａのノードコントローラ１３３ａから診断結果をそれぞれ受信して、それぞれ障害管理モジュール１２０に送信する。
【０１０４】
次に、障害の特定方法について説明する。
【０１０５】
図８は、本実施の形態に係るサーバ１３０のメモリ１３７の詳細構成図である。図９は、本実施の形態に係るサーバ１３０のディスク１３５の詳細構成図である。図１０は、本実施の形態に係る診断コマンド１の処理の流れを示すフローチャート図である。図１１は、本実施の形態に係る診断コマンド２の処理の流れを示すフローチャート図である。図８〜図１１を用いて、本実施の形態に係るノードコントローラ１３３が実行する診断コマンド１及び診断コマンド２の処理について説明する。
【０１０６】
図８に示すように、メモリ１３７は、メモリモジュール１〜メモリモジュール８の８つのデバイスから構成される。したがって、８つのデバイスのうちのいずれかが障害である場合には、その障害のデバイスを特定する必要がある。また、図９に示すように、ディスク１３５は、ディスク１〜ディスク８の８つのデバイスから構成される。したがって、メモリと同様に、８つのデバイスのうちのいずれかが障害である場合には、その障害のデバイスを特定する必要がある。
【０１０７】
診断コマンド１は、上述したようなメモリ１３７やディスク１３５のうちから障害のデバイスを特定するためのコマンドである。診断コマンド１は、デバイスを指定して診断を要求することが可能である。つまり、障害管理モジュール１２０は、例えば、「メモリ１３７ａのメモリモジュール１の診断をする」との診断コマンド１を設定することができる。図１０を用いて、診断コマンド１の処理について説明する。
【０１０８】
Ｓ２１０において、診断監視コントローラ１３１は、診断コマンド１に設定されたメモリモジュール１〜メモリモジュール８のいずれか、あるいはディスク１〜ディスク８のいずれかを診断対象デバイスとして設定する。
【０１０９】
Ｓ２２０において、診断監視コントローラ１３１は、全診断データが終了したか否かを判定する。診断コマンド１では、障害検出の精度を高めるため、診断対象デバイスに対して、複数のデータでの複数回の書込及び読込の診断を実行するものとする。しかし、１回の書込及び読込の診断でも構わない。
【０１１０】
診断監視コントローラ１３１は、全診断データが終了したと判定した場合には（Ｓ２２０においてＹＥＳ）、診断対象デバイスについての正常終了診断結果通知を障害管理モジュール１２０（Ｓ２３０）。診断監視コントローラ１３１は、全診断データが終了していないと判定した場合には（Ｓ２２０においてＮＯ）、処理をＳ２４０に進める。Ｓ２４０において、診断監視コントローラ１３１は、診断していない診断データを設定する。
【０１１１】
Ｓ２５０において、診断監視コントローラ１３１は、診断対象デバイスに対して診断データの書込を実行する（Ｓ２５０）。例えば、診断監視コントローラ１３１は、診断対象のメモリｎ、あるいはディスクｎ（ｎは１〜８のいずれか）に対して診断データを書き込む。
【０１１２】
Ｓ２６０において、診断監視コントローラ１３１は、診断対象デバイスに対して書き込んだ診断データの読込を実行する。例えば、診断監視コントローラ１３１は、診断対象のメモリｎ、あるいはディスクｎ（ｎは１〜８のいずれか）に対して書き込んだ診断データを読み込む。
【０１１３】
Ｓ２７０において、診断監視コントローラ１３１は、書き込んだ診断データと、読み込んだ診断データとを比較し、等しいか否かを判定する。診断監視コントローラ１３１は、書き込んだ診断データと読み込んだ診断データとが等しいと判定した場合には（Ｓ２７０で等しい）、処理をＳ２２０に戻す。診断監視コントローラ１３１は、書き込んだ診断データと読み込んだ診断データとが等しくないと判定した場合には（Ｓ２７０で等しくない）、処理をＳ２８０に進める。
【０１１４】
Ｓ２８０において、診断監視コントローラ１３１は、書き込んだ診断データと読み込んだデータ診断とが等しくないと判定した診断対象デバイスを障害部位と特定し、障害部位検出診断結果通知を障害管理モジュール１２０に送信する。
【０１１５】
以上のように、診断コマンド１により、メモリ１３７あるいはディスク１３５について、どのメモリモジュールあるいはディスクが障害部位であるかを検出することができる。
【０１１６】
次に、診断コマンド２について説明する。診断コマンド２は、ＣＰＵ１３６が障害部位か否かについて判定するためのコマンドである。図１１を用いて、診断コマンド２の処理ついて説明する。
【０１１７】
Ｓ３１０において、診断監視コントローラ１３１は、診断対象ＣＰＵを設定する。
【０１１８】
Ｓ３２０において、診断監視コントローラ１３１は、全診断データが終了したか否かを判定する。診断コマンド２では、障害検出の精度を高めるため、診断対象ＣＰＵに対して、複数のデータを用いて複数回の診断を実行するものとする。しかし、１回の診断でも構わない。
【０１１９】
診断監視コントローラ１３１は、全診断データが終了したと判定した場合には（Ｓ３２０においてＹＥＳ）、診断対象ＣＰＵについての正常終了診断結果通知を障害管理モジュール１２０に送信する（Ｓ３３０）。診断監視コントローラ１３１は、全診断データが終了していないと判定した場合には（Ｓ３２０においてＮＯ）、処理をＳ３４０に進める。Ｓ３４０において、診断監視コントローラ１３１は、診断していない診断データを設定し、処理を進める。
【０１２０】
Ｓ３５０において、診断監視コントローラ１３１は、診断対象ＣＰＵに対して、診断データを用いた演算命令を実行する。
【０１２１】
Ｓ３６０において、診断監視コントローラ１３１は、診断対象ＣＰＵの演算結果と、予め診断コマンド２に含まれる演算結果とを比較し、診断対象ＣＰＵの演算結果が正しいか否かについて判定する。診断監視コントローラ１３１は、診断対象ＣＰＵの演算結果が正しいと判定した場合には（Ｓ３６０で等しい）、処理をＳ３２０に戻す。診断監視コントローラ１３１は、診断対象ＣＰＵの演算結果が正しくないと判定した場合には（Ｓ３６０で等しくない）、処理をＳ３７０に進める。
【０１２２】
Ｓ３７０において、は診断監視コントローラ１３１、演算結果が正しくないと判定した診断対象ＣＰＵを障害部位と特定し、診断対象ＣＰＵ障害の診断結果通知を診断監視コントローラ１３１に送信する。
【０１２３】
以上のように、診断コマンド２により、診断対象のＣＰＵ１３６が障害部位であるか否かについての特定ができる。
【０１２４】
以上のように、本実施の形態に係るサーバ装置１００の障害検出方法によれば、診断対象サーバ１３０ａのＣＰＵ１３２ａはサーバ１３０ｂの診断監視コントローラ１３１ｂが診断し、診断対象サーバ１３０ａのディスク１３５ａはサーバ１３０ｃの診断監視コントローラ１３１ｃが診断し、メモリ１３７ａは診断監視コントローラ１３１ａが診断することができる。このとき、診断コマンド１や診断コマンド２について、データパターンや、データ量、診断間隔などのパラメータを変化させて、障害（正常動作しなくなる）が発生する条件やパターン、障害頻度等をさまざまな角度から確認することができる。
【０１２５】
また、本実施の形態に係るサーバ装置１００の障害検出方法によれば、複数の診断監視コントローラから同時に診断コマンドを組合せて試験することができるため、個別部位の試験では発生しないような複雑な要因の障害や発生しにくい障害の部位検出の確度を向上させることできる。
【０１２６】
実施の形態３．
図１２は、本実施の形態に係るサーバ装置１００の障害検出方式の一例を示す図である。図１２は、図７に対応する図であり、図７で説明した構成部と同一の機能を有する構成部については同一の符号を付し、その説明を省略する。
【０１２７】
図１２では、障害管理モジュール１２０は、サーバ１〜サーバｎまでを用いて、サーバａのメモリ１３７ａの障害特定方法を実行する場合を示している。図１２では、サーバ装置１００が具備するサーバ１，・・・，サーバａ，サーバｂ，・・・，サーバｎのうち、サーバａ、サーバｂ、サーバｎを記載している。例えば、サーバ１の診断監視コントローラ１３１を診断監視コントローラ１３１−１とする。
【０１２８】
本実施の形態では、メモリ１３７ａへの負荷（データの書込みや読み出し）が一定以上（データ量、時間）の負荷になった場合のみ、データが正確に読み書きできない不良が発生する場合に、その負荷量を検出するための障害検出方法に付いて説明する。
【０１２９】
障害管理モジュール１２０は、メモリ１３７ａが不良となるときの負荷を検出する。障害管理モジュール１２０は、診断監視コントローラ１３１−１，・・・，１３１ａ，１３１ｂ，・・・，１３１ｎへ、入出力ライン１５２−１，・・・，１５２ａ，１５２ｂ，・・・１５２ｎを介して、順次診断コマンド１を送信する。このとき、診断コマンド１には、メモリ１３７ａのうちのいずれのメモリモジュールについて書込読込の処理を実行するかが指定されている。
【０１３０】
例えば、診断コマンド１には、メモリ１３７ａのメモリモジュール１の診断をすると指定されているとする。障害管理モジュール１２０は、診断監視コントローラ１３１−１，・・・，１３１ａ，１３１ｂ，・・・，１３１ｎへ、順次診断コマンド１を送信する。例えば、障害管理モジュール１２０は、診断監視コントローラ１３１ｂから障害発生の通知を受信した場合には、診断監視コントローラ１３１−１，・・・，１３１ａによる書込読込処理の負荷量が障害発生の限界値であると判定することができる。このように、障害管理モジュール１２０は、メモリモジュールへの負荷を徐々に増やしていきながらメモリエラーの監視を行う。
【０１３１】
以上のように、本実施の形態に係るサーバ装置１００によれば、負荷を増やしながら、どのメモリがエラーとなっているのかを特定することができる。柔軟にデータの書込み読み出し負荷を調整できる本方式にて検出可能となる。同じ障害ケースはディスクやＩ／Ｏにおいても同様に本診断方法にて検出可能である。
【０１３２】
以上、実施の形態１〜３について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【符号の説明】
【０１３３】
１００  サーバ装置、１１０  サーバ筐体、１２０  障害管理モジュール、１３０  サーバ、１３１  診断監視コントローラ、１３２  診断対象ブロック、１３３  ノードコントローラ、１３４  Ｉ／Ｏ、１３５  ディスク、１３６  ＣＰＵ、１３７  メモリ、１４０  周辺モジュール、１４１  監視ユニット、１５０  サーバ間通信バス、１５１  診断共通ライン、１５２  入出力ライン、１６０  通常診断要求、１６１  通常診断応答、１７０  障害時診断要求、１７１  障害時診断応答、１９０  コンソール、９０１  表示装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２３  プログラム群、９２４  ファイル群。
【図１】
2013196410.tif 000003
【図２】
2013196410.tif 000004
【図３】
2013196410.tif 000005
【図４】
2013196410.tif 000006
【図５】
2013196410.tif 000007
【図６】
2013196410.tif 000008
【図７】
2013196410.tif 000009
【図８】
2013196410.tif 000010
【図９】
2013196410.tif 000011
【図１０】
2013196410.tif 000012
【図１１】
2013196410.tif 000013
【図１２】
2013196410.tif 000014
【図１３】
2013196410.tif 000015