(57)【要約】  障害監視装置は、演算装置に実装され、当該演算装置を制御する制御手段と、演算装置によって稼働する被監視対象と、制御手段の障害及び被監視対象の障害を監視する監視手段と、監視手段による監視先を交互に切り替える切替手段とを備える。
2012053110.tif 000002
【特許請求の範囲】
【請求項１】
演算装置に実装され、当該演算装置を制御する制御手段と、
前記演算装置によって稼働する被監視対象と、
前記制御手段の障害及び前記被監視対象の障害を監視する監視手段と、前記監視手段による監視先を交互に切り替える切替手段とを備えることを特徴とする障害監視装置。
【請求項２】
前記監視手段は、カウントダウンを実行するウォッチドッグタイマを備え、
前記切替手段は、前記制御手段及び前記被監視対象の正常時に、前記被監視対象から受信する指示に応じて、前記監視先を前記制御手段に切り替え、前記ウォッチドッグタイマを初期化する第１の動作と、前記制御手段からの指示に応じて前記監視先を前記被監視対象に切り替え、前記ウォッチドッグタイマを初期化する第２の動作とを一定間隔で繰り返すことを特徴とする請求項１に記載の障害監視装置。
【請求項３】
前記切替手段が前記制御手段及び前記被監視対象のいずれか一方から前記ウォッチドッグタイマの初期化指示を受信せず、かつ前記ウォッチドッグタイマのカウントダウンが予め決められた第１の閾値に到達しても前記ウォッチドッグタイマが初期化されない場合に、前記切替手段は、前記ウォッチドッグタイマの初期化指示を送信しない前記制御手段及び前記被監視対象のいずれか一方の障害の発生を前記制御手段及び前記被監視対象の他方へ通知し、
当該障害の発生を通知された前記制御手段及び前記被監視対象の他方は、前記障害の発生を示す情報を記録媒体に記憶することを特徴とする請求項２に記載の障害監視装置。
【請求項４】
前記障害の発生を通知された前記制御手段及び前記被監視対象の他方は、前記障害が発生している前記制御手段及び前記被監視対象のいずれか一方へ当該障害の復旧要求を通知し、前記障害が発生している前記制御手段及び前記被監視対象のいずれか一方が当該障害の復旧動作を実行することを特徴とする請求項３に記載の障害監視装置。
【請求項５】
前記障害の復旧動作によって当該障害が復旧せず、かつ前記ウォッチドッグタイマのカウントダウンが予め決められた第２の閾値に到達しても前記ウォッチドッグタイマが初期化されない場合に、前記切替手段は、前記ウォッチドッグタイマの初期化指示を送信しない前記制御手段及び前記被監視対象のいずれか一方の障害の復旧不能状態を前記制御手段及び前記被監視対象の他方へ通知し、
当該障害の発生を通知された前記制御手段及び前記被監視対象の他方は、前記障害の復旧不能状態を示す情報を前記記録媒体に記憶すると共に他の障害の復旧動作を実行することを特徴とする請求項４に記載の障害監視装置。
【請求項６】
コンピュータに、
演算装置に実装され、当該演算装置を制御する制御手段に生じる障害及び前記演算装置によって稼働する被監視対象に生じる障害を監視する第１手順と、
前記第１手順による監視先を交互に切り替える第２手順と
を実行させることを特徴とする障害監視方法。
【請求項７】
コンピュータに、
演算装置に実装され、当該演算装置を制御する制御手段に生じる障害及び前記演算装置によって稼働する被監視対象に生じる障害を監視する第１手順と、
前記第１手順による監視先を交互に切り替える第２手順と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害監視装置、障害監視方法及びプログラムに関する。
【背景技術】
【０００２】
図１は、従来の障害監視装置の概略構成図である。図１において、障害監視装置１０は、例えば、ATCA（Advanced Telecom Computing Architecture）に準拠するブレードサーバである。ATCAとは、通信事業者向けコンピュータのハードウエア規格である。また、障害監視装置１０は、IPMI（Intelligent Platform Management Interface）仕様によって規定されたウォッチドッグタイマを使って、ＯＳ（Operating System）、アプリケーション、又はＢＩＯＳ（Basic Input/Output System）などの障害を監視する。障害監視装置１０は、不揮発性メモリ１、マイクロコンピュータ２、ウォッチドッグタイマ（ＷＤＴ）制御部３、ウォッチドッグタイマ（ＷＤＴ）部４、及び被監視対象５を備えている。【０００３】
マイクロコンピュータ２は、マイクロコンピュータ２自身を制御するファームウェアを実装している。ＷＤＴ制御部３及びＷＤＴ部４は、ファームウェア上で動作する。ＷＤＴ制御部３は、タイマステータスを示すレジスタ１１、ファームウェアが実行するプレタイムアウト動作を示すレジスタ１２、及びファームウェアが実行するタイムアウト動作を示すレジスタ１３を備えている。ＷＤＴ制御部３は、被監視装置５の障害監視のために、ＷＤＴ部４に実装されたウォッチドッグタイマ（ＷＤＴ）１４を使って被監視装置５の動作の継続を確認している。ＷＤＴ部４は、ＷＤＴ１４及びＷＤＴ１４のカウント開始及び停止を示すレジスタ１５を備えている。被監視対象５は、ＯＳ、アプリケーション、又はＢＩＯＳなどである。【０００４】
ＷＤＴ制御部３は、３本のライト／リード／リセット制御線を介してマイクロコンピュータ２、ＷＤＴ部４、及び被監視対象５にそれぞれ接続されている。また、ＷＤＴ制御部３は、プレタイムアウト用割り込み線及びタイムアウト用割り込み線を介してＷＤＴ部４に接続されている。ＷＤＴ制御部３は、割り込み線を介して被監視対象５に接続されている。【０００５】
次に、障害監視装置１０の動作について説明する。図２は、被監視対象５が正常状態であるときの障害監視装置１０の動作を示すシーケンス図である。【０００６】
まず、ＷＤＴ部４が起動すると、ＷＤＴ１４はカウントダウンを開始する（ステップＳ１）。ここで、ＷＤＴ１４の最大値、ＷＤＴ１４のプレタイムアウト値、プレタイムアウト動作及びタイムアウト動作は、予め被監視対象（例えば、ＯＳ）によって設定されている。ＷＤＴ１４の最大値及びプレタイムアウト値は、ＷＤＴ部４に設定される。プレタイムアウト動作を規定する値は、レジスタ１２に設定される。タイムアウト動作を規定する値は、レジスタ１３に設定される。次に、被監視対象５は、予め決められたリセット間隔で、ＷＤＴ１４のリセット指示をＷＤＴ制御部３に送信する（ステップＳ２）。リセット間隔は、予め被監視対象５によって決められており、ＷＤＴ１４の最大値からプレタイムアウト値を減じた値よりも十分に小さい値である。ＷＤＴ制御部３は、被監視対象５からリセット指示を受信する度に、ＷＤＴ１４をリセットする（ステップＳ３）。その後、ステップＳ２及びＳ３の動作が繰り返し実行される。【０００７】
図３は、被監視対象５が異常状態である（即ち、障害が発生している）ときの障害監視装置１０の動作を示すシーケンス図である。【０００８】
まず、ＷＤＴ部４が起動すると、ＷＤＴ１４はカウントダウンを開始する（ステップＳ１１）。上記ステップＳ２及びＳ３の動作が繰り返される。被監視対象５に障害が発生すると、被監視対象５は、予め決められたリセット間隔で、ＷＤＴ１４のリセット指示をＷＤＴ制御部３に送信できなくなる（ステップＳ１２）。【０００９】
ＷＤＴ部４は、ＷＤＴ１４がプレタイムアウト値に到達したことを契機として、プレタイムアウト動作用の割り込みをＷＤＴ制御部３に送信する（ステップＳ１３）。ＷＤＴ制御部３はプレタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ１１を「プレタイムアウト」に変更して、マイクロコンピュータ２のファームウェアに割り込みを通知する（ステップＳ１４）。タイマステータスは、IPMI仕様により予め決められており、ノーマル、プレタイムアウト、及びタイムアウトがある。タイマステータスがノーマルである場合は、値「０ｈ」がレジスタ１１に設定される。タイマステータスがプレタイムアウトである場合は、値「１ｈ」がレジスタ１１に設定される。タイマステータスがタイムアウトである場合は、値「２ｈ」がレジスタ１１に設定される。【００１０】
ファームウェアは、ＷＤＴ制御部３から割り込みを受信すると、レジスタ１１の値を読み出し、読み出された値に基づいてレジスタ１２の値を読み出し、レジスタ１２の値に応じたプレタイムアウト動作を実行する（ステップＳ１５）。例えば、レジスタ１２の値が「００ｂ」である場合、ファームウェアは、何も実行しない。レジスタ１２の値が「０１ｂ」である場合、ファームウェアは、被監視対象５が割り込みを受信できるタイミングを待って、割り込みを被監視対象５に送信する。レジスタ１２の値が「１０ｂ」である場合、ファームウェアは、割り込みを即座に被監視対象５に送信する。レジスタ１２の値が「１１ｂ」である場合、ファームウェアは、被監視対象５からポーリングを受けたときに、割り込みを被監視対象５に送信する。被監視対象５は、ファームウェアからの割り込みを契機として、障害復旧動作を開始する。さらに、ファームウェアは、マイクロコンピュータ２に接続されている不揮発性メモリ１にプレタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ１６）。【００１１】
障害復旧動作によっても被監視対象５が復旧しない場合、ＷＤＴ１４のカウントダウンが進み、ＷＤＴ部４は、ＷＤＴ１４がタイムアウト値に到達したことを契機として、タイムアウト動作用の割り込みをＷＤＴ制御部３に送信する（ステップＳ１７）。ＷＤＴ制御部３はタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ１１を「タイムアウト」に変更して、マイクロコンピュータ２のファームウェアに割り込みを通知する（ステップＳ１８）。【００１２】
ファームウェアは、ＷＤＴ制御部３から割り込みを受信すると、レジスタ１１の値を読み出し、読み出された値に基づいてレジスタ１３の値を読み出し、レジスタ１３の値に応じて障害復旧動作としてのタイムアウト動作を実行する（ステップＳ１９）。例えば、レジスタ１３の値が「００ｂ」である場合、ファームウェアは、何も実行しない。レジスタ１３の値が「０１ｂ」である場合、ファームウェアは、障害監視装置１０の電源が投入された状態で、監視対象５を再起動する。レジスタ１３の値が「１０ｂ」である場合、ファームウェアは、障害監視装置１０の電源をオフにする。レジスタ１３の値が「１１ｂ」である場合、ファームウェアは、障害監視装置１０の電源をオフにした後、オンにする。さらに、ファームウェアは、マイクロコンピュータ２に接続されている不揮発性メモリ１にタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ２０）。【００１３】
このように、ウォッチドッグタイマを使ってＯＳやアプリケーションの異常動作を監視する異常監視装置は、従来から知られている（例えば、特許文献１参照）。また、従来より、複数のウォッチドッグタイマを使って、複数のプログラムの起動を監視する方法が知られている（例えば、特許文献２参照）。この方法では、ハードウェアで構成されたウォッチドッグタイマが複数のプログラムの１つの起動を監視し、ソフトウェアで構成されたウォッチドッグタイマが残りのプログラムの起動を監視する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００９−２０５４５号公報
【特許文献２】特開平８−３０４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ところで、上記障害監視装置１０は、被監視対象５の障害を監視するが、ファームウェアに障害が発生すると、ファームウェアが自身の障害を検知できない。また、ファームウェアに障害が発生すると、ファームウェアから被監視対象５に割り込みが送信されず、プレタイムアウト時に被監視対象５が障害復旧動作を実行しないおそれがある。また、被監視対象５はファームウェアの障害を検知できないため、ファームウェアに障害が発生すると、障害監視装置１０は異常状態（誤動作を起こし得る状態）で動作を継続する。【００１６】
上記課題に鑑み、明細書に開示された障害監視装置、障害監視方法及びプログラムは、制御手段及び被監視対象の障害の発生を検出できることを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、明細書に開示された障害監視装置は、演算装置に実装され、当該演算装置を制御する制御手段と、前記演算装置によって稼働する被監視対象と、前記制御手段の障害及び前記被監視対象の障害を監視する監視手段と、前記監視手段による監視先を交互に切り替える切替手段とを備える。【００１８】
明細書に開示された障害監視方法は、コンピュータに、演算装置に実装され、当該演算装置を制御する制御手段に生じる障害及び前記演算装置によって稼働する被監視対象に生じる障害を監視する第１手順と、前記第１手順による監視先を交互に切り替える第２手順とを実行させる。【００１９】
明細書に開示されたプログラムは、コンピュータに、演算装置に実装され、当該演算装置を制御する制御手段に生じる障害及び前記演算装置によって稼働する被監視対象に生じる障害を監視する第１手順と、前記第１手順による監視先を交互に切り替える第２手順とを実行させる。
【発明の効果】
【００２０】
明細書に開示された障害監視装置、障害監視方法及びプログラムは、制御手段及び被監視対象の障害の発生を検出できる。
【図面の簡単な説明】
【００２１】
【図１】従来の障害監視装置の概略構成図である。
【図２】被監視対象５が正常状態であるときの障害監視装置１０の動作を示すシーケンス図である。
【図３】被監視対象５が異常状態であるときの障害監視装置１０の動作を示すシーケンス図である。
【図４】本実施の形態に係る障害監視装置１００の概略構成図である。
【図５】図４のレジスタ部４２の概略構成図である。
【図６】ファームウェア及び被監視対象３５が正常状態であるときの障害監視装置１００の動作を示すシーケンス図である。
【図７】被監視対象３５に障害が発生したときの障害監視装置１００の動作を示すシーケンス図である。
【図８】ファームウェアに障害が発生したときの障害監視装置１００の動作を示すシーケンス図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００２３】
図４は、本実施の形態に係る障害監視装置の概略構成図である。
【００２４】
図４において、障害監視装置１００は、例えば、ATCA（Advanced Telecom Computing Architecture）に準拠するブレードサーバである。ATCAとは、通信事業者向けコンピュータのハードウエア規格である。また、障害監視装置１００は、IPMI（Intelligent Platform Management Interface）仕様によって規定されたウォッチドッグタイマを使って、ファームウェア、ＯＳ（Operating System）、アプリケーション、又はＢＩＯＳ（Basic Input/Output System）などの障害を監視する。
【００２５】
障害監視装置１００は、不揮発性メモリ３１、マイクロコンピュータ３２、ウォッチドッグタイマ（ＷＤＴ）制御部３３、ウォッチドッグタイマ（ＷＤＴ）部３４、及び被監視対象３５、及びハードディスクドライブ（ＨＤＤ）３６を備えている。不揮発性メモリ３１及びＨＤＤ３６は記録媒体として機能する。演算装置としてのマイクロコンピュータ３２は、マイクロコンピュータ３２自身を制御するファームウェア（制御手段として機能する）を実装している。マイクロコンピュータ３２は、被監視対象３５にプレタイムアウト又はタイムアウトが発生したことを表すメッセージを不揮発性メモリ３１に格納する。ＷＤＴ制御部３３及びＷＤＴ部３４は、ファームウェア上で動作する。
【００２６】
ＷＤＴ制御部３３は、第１インターフェース（Ｉ／Ｆ）部４１、レジスタ部４２、第２インターフェース（Ｉ／Ｆ）部４３、方路スイッチ４４、及びレジスタコントローラ４５を備えている。方路スイッチ４４及びレジスタコントローラ４５は、切替手段として機能する。第１インターフェース（Ｉ／Ｆ）部４１は、ライト／リード／リセット制御線及び割り込み線を介してマイクロコンピュータ３２に接続されている。第１インターフェース（Ｉ／Ｆ）部４１は、ファームウェアからＷＤＴ部３４へのアクセスを中継したり、ファームウェアと被監視対象３５との間で送受信される指示を中継する。レジスタ部４２は、複数のレジスタを含む。これらのレジスタの詳細は後述する。第２インターフェース（Ｉ／Ｆ）部４３は、ライト／リード／リセット制御線及び割り込み線を介して被監視対象３５に接続されている。第２インターフェース（Ｉ／Ｆ）部４３は、被監視対象３５からＷＤＴ部３４へのアクセスを中継したり、ファームウェアと被監視対象３５との間で送受信される指示を中継する。
【００２７】
方路スイッチ４４は、ＷＤＴ部３４へアクセスする対象をマイクロコンピュータ３２又は被監視対象３５のいずれかに切り替える、即ち、ＷＤＴ部３４からマイクロコンピュータ３２への方路又はＷＤＴ部３４から被監視対象３５への方路のいずれかに切り替える。初期状態では、ＷＤＴ部３４へのアクセスする対象は、例えば被監視対象３５に設定されている。レジスタコントローラ４５は、方路スイッチ４４の切替動作及びレジスタ部４２に含まれる複数のレジスタの値の読み書き動作を制御する。レジスタコントローラ４５は、被監視装置３５又はファームウェアの障害監視のために、ＷＤＴ部３４に実装されたウォッチドッグタイマ（ＷＤＴ）５１を使って被監視装置３５又はファームウェアの動作の継続を確認している。
【００２８】
ＷＤＴ部３４は、ＷＤＴ５１、ＷＤＴ５１のカウント開始及び停止を示すレジスタ５２、及び監視する対象を特定する方路レジスタ５３を備えている。ＷＤＴ５１の最大値、プレタイムアウト値（第１の閾値）及びタイムアウト値（第２の閾値）は、予め被監視対象３５によって設定されている。ＷＤＴ５１のタイムアウト値は、最小値「０」である。ＷＤＴ５１は最大値からカウントダウンし、プレタイムアウト値に到達すると、ＷＤＴ部３４は割り込みをプレタイムアウト用割り込み線を介してＷＤＴ制御部３３のレジスタコントローラ４５に通知する。また、ＷＤＴ５１がタイムアウト値に到達すると、ＷＤＴ部３４は割り込みをタイムアウト用割り込み線を介してＷＤＴ制御部３３のレジスタコントローラ４５に通知する。
【００２９】
ＷＤＴ部３４がファームウェアからカウントダウンの開始指示を受信すると、レジスタ５２は、ＷＤＴ５１のカウント開始を示す値「１」に設定される。ＷＤＴ部３４がファームウェアからカウントダウンの停止指示を受信すると、レジスタ５２は、ＷＤＴ５１のカウント停止を示す値「０」に設定される。方路レジスタ５３には、「０」又は「１」が設定される。方路レジスタ５３の値が「０」である場合には、ＷＤＴ５１は、被監視対象３５の障害発生を検知するためにカウントダウンする。方路レジスタ５３の値が「１」である場合には、ＷＤＴ５１は、ファームウェアの障害発生を検知するためにカウントダウンする。
【００３０】
被監視対象３５は、ＯＳ、アプリケーション、又はＢＩＯＳなどである。被監視対象３５は、ファームウェアにプレタイムアウト又はタイムアウトが発生したことを表すメッセージをハードディスクドライブ（ＨＤＤ）３６に格納する。
【００３１】
ＷＤＴ制御部３３は、３本のライト／リード／リセット制御線を介してそれぞれマイクロコンピュータ３２、ＷＤＴ部３４、及び被監視対象３５に接続されている。また、ＷＤＴ制御部３３は、プレタイムアウト用割り込み線及びタイムアウト用割り込み線を介しＷＤＴ部３４に接続されている。ＷＤＴ制御部３３は、２本の割り込み線を介してそれぞれマイクロコンピュータ３２及び被監視対象３５に接続されている。
【００３２】
図５に示すように、レジスタ部４２は、レジスタ６１〜６４を備えている。レジスタ６１は、ＷＤＴ５１のタイマステータスを規定する。ＷＤＴ５１のタイマステータスは、IPMI仕様により予め決められており、例えば、「ノーマル」、「プレタイムアウト」、「タイムアウト」がある。ＷＤＴ５１が「ノーマル」である場合は、値「０ｈ」がレジスタ６１に設定される。ＷＤＴ５１が「プレタイムアウト」である場合は、値「１ｈ」がレジスタ６１に設定される。ＷＤＴ５１が「タイムアウト」である場合は、値「２ｈ」がレジスタ６１に設定される。
【００３３】
レジスタ６２は、ファームウェア又は被監視対象３５が実行するプレタイムアウト動作を規定する。プレタイムアウト動作とは、ＷＤＴ５１のタイマステータスが「プレタイムアウト」である場合に、ファームウェア又は被監視対象３５が実行する動作である。例えば、被監視対象３５に障害が発生し、レジスタ６２の値が「００ｂ」である場合、ファームウェアは、何も実行しない。被監視対象３５に障害が発生し、レジスタ６２の値が「０１ｂ」である場合、ファームウェアは、被監視対象３５が割り込みを受信できるタイミングを待って、割り込みを被監視対象３５に送信する。被監視対象３５に障害が発生し、レジスタ６２の値が「１０ｂ」である場合、ファームウェアは、割り込みを即座に被監視対象３５に送信する。被監視対象３５に障害が発生し、レジスタ６２の値が「１１ｂ」である場合、ファームウェアは、被監視対象３５からポーリングを受けたときに、割り込みを被監視対象３５に送信する。被監視対象３５は、ファームウェアからの割り込みを契機として、障害復旧動作を開始する。
【００３４】
また、例えば、ファームウェアに障害が発生し、レジスタ６２の値が「００ｂ」である場合、被監視対象３５は、何も実行しない。ファームウェアに障害が発生し、レジスタ６２の値が「０１ｂ」である場合、被監視対象３５は、障害監視装置１００の電源を切らずにファームウェアの再起動を行うための割り込みをファームウェアに送信する。ファームウェアに障害が発生し、レジスタ６２の値が「０１ｂ」である場合、被監視対象３５は、障害監視装置１００の電源を一旦切ってファームウェアの再起動を行うための割り込みをファームウェアに送信する。ファームウェアは、被監視対象３５からの割り込みを契機として、障害復旧動作を開始する。
【００３５】
レジスタ６３は、ファームウェア又は被監視対象３５が実行するタイムアウト動作を規定する。タイムアウト動作とは、ＷＤＴ５１のタイマステータスが「タイムアウト」である場合に、ファームウェア又は被監視対象３５が実行する動作である。例えば、被監視対象３５に障害が発生し、レジスタ６３の値が「００ｂ」である場合、ファームウェアは、何も実行しない。被監視対象３５に障害が発生し、レジスタ６３の値が「０１ｂ」である場合、ファームウェアは、障害監視装置１００の電源が投入された状態で、監視対象５を再起動する。被監視対象３５に障害が発生し、レジスタ６３の値が「１０ｂ」である場合、ファームウェアは、障害監視装置１００の電源をオフにする。被監視対象３５に障害が発生し、レジスタ６３の値が「１１ｂ」である場合、ファームウェアは、障害監視装置１００の電源をオフにした後、障害監視装置１００の電源をオンにする。
【００３６】
また、例えば、ファームウェアに障害が発生し、レジスタ６３の値が「００ｂ」である場合、被監視対象３５は、何も実行しない。ファームウェアに障害が発生し、レジスタ６３の値が「０１ｂ」である場合、被監視対象３５は、障害監視装置１００の再起動を行う。ファームウェアに障害が発生し、レジスタ６３の値が「１０ｂ」である場合、被監視対象３５は、障害監視装置１００の電源をシャットダウンする。
【００３７】
レジスタ６４は、方路レジスタ５３の値を反映する、即ち方路レジスタ５３の値と同じ値を示す。方路レジスタ５３の値が更新される度に、レジスタコントローラ４５は、方路レジスタ５３の値に応じて、レジスタ６４の値を更新する。また、レジスタコントローラ４５は、レジスタ６４の値、即ち、方路レジスタ５３の値に基づいて、方路を切り替えるように方路スイッチ４４を制御する。例えば、方路レジスタ５３の値が「０」である場合には、レジスタコントローラ４５は、ＷＤＴ部３４から被監視対象５への方路（以下方路「０」という）を選択するように方路スイッチ４４を制御する。方路レジスタ５３の値が「１」である場合には、レジスタコントローラ４５は、ＷＤＴ部３４からファームウェアへの方路（以下「方路１」という）を選択するように方路スイッチ４４を制御する。換言すれば、方路スイッチ４４は、方路レジスタ５３の値に基づいて、ＷＤＴ部３４に接続される方路を方路「０」又は方路「１」のいずれかに切り替える。
【００３８】
次に、障害監視装置１００の動作について説明する。図６は、ファームウェア及び被監視対象３５が正常状態であるときの障害監視装置１００の動作を示すシーケンス図である。
【００３９】
まず、被監視対象３５が、ＷＤＴ５１の起動指示をＷＤＴ制御部３３に接続される２本の割り込み線を介してマイクロコンピュータ３２のファームウェアに通知する（ステップＳ２１）。ファームウェアは、レジスタ部４２及びＤＷＴ部３４に格納された各レジスタの値を読み出す（ステップＳ２２）。ファームウェアは、各レジスタの値を読み出した後、ＷＤＴ５１の起動指示に対する応答（例えば、準備完了を示す応答）をＷＤＴ制御部３３に接続される２本の割り込み線を介して被監視対象３５に返信する（ステップＳ２３）。その後、ファームウェアは、ＷＤＴ５１のカウントダウン開始の指示をＷＤＴ制御部３３を介してＷＤＴ部３４に通知する（ステップＳ２４）。
【００４０】
ＷＤＴ５１は、このカウントダウン開始の指示を契機として、カウントダウンを開始する（ステップＳ２５）。ここで、ＷＤＴ５１の最大値、プレタイムアウト値、タイムアウト値、プレタイムアウト動作及びタイムアウト動作は、予め被監視対象（例えば、ＯＳ）によって設定されている。ＷＤＴ５１の最大値、プレタイムアウト値及びタイムアウト値は、ＷＤＴ部３４に設定される。ＷＤＴ５１のタイムアウト値は、最小値「０」である。プレタイムアウト動作を規定する値は、レジスタ６２に設定される。タイムアウト動作を規定する値は、レジスタ６３に設定される。
【００４１】
次に、被監視対象３５は、一定のリセット間隔で、ＷＤＴ５１のリセット指示をライト／リード／リセット制御線を介してＷＤＴ制御部３３のレジスタコントローラ４５に送信する（ステップＳ２６）。リセット間隔は、予め被監視対象５によって決められており、ＷＤＴ５１の最大値からプレタイムアウト値を減じた値よりも十分に小さい値である。
【００４２】
ＷＤＴ制御部３３のレジスタコントローラ４５は、ＷＤＴ５１のリセット指示を第２Ｉ／Ｆ部４３及びレジスタ部４２を介して受信し、方路レジスタ５３の値を反転し（０→１）、方路スイッチ４４の方路（０→１）を切り替える（ステップＳ２７）。レジスタコントローラ４５は、ＷＤＴ５１をリセットする、即ち、初期化する（ステップＳ２８）。レジスタコントローラ４５は、割り込みを第１Ｉ／Ｆ部４１、レジスタ部４２及び割り込み線を介してファームウェアに送信する（ステップＳ２９）。
【００４３】
ファームウェアは、レジスタコントローラ４５からの割り込みを契機として、ＷＤＴ５１のリセット指示をライト／リード／リセット制御線を介してレジスタコントローラ４５に返信する（ステップＳ３０）。
【００４４】
レジスタコントローラ４５は、ＷＤＴ５１のリセット指示を第１Ｉ／Ｆ部４１及びレジスタ部４２を介して受信し、方路レジスタ５３の値を反転し（１→０）、方路スイッチ４４の方路（１→０）を切り替える（ステップＳ３１）。さらに、レジスタコントローラ４５は、ＷＤＴ５１をリセットする、即ち、初期化する（ステップＳ３２）。ファームウェア及び被監視対象３５が正常状態であるときは、ステップＳ２６〜Ｓ３２の手順が繰り返し実行される。
【００４５】
図６によれば、レジスタコントローラ４５は、ファームウェア及び被監視対象３５の正常時に、被監視対象３５から受信するリセット指示に応じて、監視先を被監視対象３５からファームウェアに切り替え、ＷＤＴ５１を初期化する第１の動作と、ファームウェアからのリセット指示に応じて監視先をファームウェアから被監視対象３５に切り替え、ＷＤＴ５１を初期化する第２の動作とを一定間隔で交互に繰り返す。よって、レジスタコントローラ４５は、１つのＷＤＴ５１を利用してファームウェア及び被監視対象３５を交互に監視し続けることができる。尚、図６では、最初の監視先が予め被監視対象３５に設定されているが、本実施の形態は、これに限定されない。例えば、最初の監視先が予めファームウェアに設定されていてもよい。この場合、レジスタコントローラ４５は、最初に第２の動作を実行し、次に第１の動作を実行する。
【００４６】
図７は、被監視対象３５に障害が発生したときの障害監視装置１００の動作を示すシーケンス図である。ここで、図６に示す動作と同様の動作については、同一のステップ番号を付し、その説明を省略する。
【００４７】
まず、ファームウェア及び被監視対象３５が正常状態であるときは、図６のステップＳ２６〜Ｓ３２の手順が繰り返し実行される。
【００４８】
被監視対象３５に障害が発生すると、被監視対象３５は、ＷＤＴ５１のリセット指示をレジスタコントローラ４５に送信しなくなる（ステップＳ４１）。レジスタコントローラ４５は被監視対象３５からのＷＤＴ５１のリセット指示を待っているので、この時点の方路レジスタ５３は「０」の状態である。方路スイッチ４４は、方路「０」を選択している状態である。
【００４９】
その後、ＷＤＴ５１のカウントダウンが継続し、ＷＤＴ部３４は、ＷＤＴ５１がプレタイムアウト値に到達したことを契機として、プレタイムアウト動作用の割り込みをレジスタコントローラ４５に送信する（ステップＳ４２）。レジスタコントローラ４５はプレタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ６１を「プレタイムアウト」に変更して、方路レジスタ５３の示す値「０（被監視対象３５）」と逆の値（「１」）に対応するファームウェアにプレタイムアウト動作用の割り込みを通知する（ステップＳ４３）。このプレタイムアウト動作用の割り込みは、被監視対象３５に障害が発生していることを示す。
【００５０】
ファームウェアは、レジスタコントローラ４５からプレタイムアウト動作用の割り込みを受信すると、レジスタ６２の値に応じたプレタイムアウト動作を実行する（ステップＳ４４）。プレタイムアウト動作は、上述したように、レジスタ６２の値に応じて決められている。レジスタ６２の値が「００ｂ」である場合、ファームウェアは、何も実行しない。レジスタ６２の値が「０１ｂ」「１０ｂ」又は「１１ｂ」である場合、ファームウェアは、プレタイムアウト動作として、障害の復旧要求としての割り込みを被監視対象３５に送信する。さらに、ファームウェアは、不揮発性メモリ３１にプレタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ４５）。被監視対象３５は、ファームウェアからの割り込み（即ち、障害の復旧要求）を契機として、第１障害復旧動作を開始する（ステップＳ４６）。つまり、被監視対象３５は、ファームウェアからの障害の復旧要求に応じて、自ら障害の復旧動作を実行する。ここで、第１障害復旧動作は、例えば、ＷＤＴ５１のリセット指示の再送信、又は被監視対象３５の再起動などであり、予め被監視対象３５で決められている。
【００５１】
第１障害復旧動作によって被監視対象３５が復旧した場合には、図６のステップＳ２６の手順に戻る。第１障害復旧動作によって被監視対象３５が復旧しない場合、ＷＤＴ５１のカウントダウンが進み、ＷＤＴ部３４は、ＷＤＴ５１がタイムアウト値に到達したことを契機として、タイムアウト動作用の割り込みをレジスタコントローラ４５に送信する（ステップＳ４７）。
【００５２】
レジスタコントローラ４５はタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ６１を「タイムアウト」に変更して、方路レジスタ５３の示す値「０（被監視対象３５）」と逆の値（「１」）に対応するファームウェアにタイムアウト動作用の割り込みを通知する（ステップＳ４８）。このタイムアウト動作用の割り込みは、被監視対象３５の障害が復旧不能状態であることを示す。
【００５３】
ファームウェアは、レジスタコントローラ４５からタイムアウト動作用の割り込みを受信すると、不揮発性メモリ３１にタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ４９）。不揮発性メモリ３１にプレタイムアウト又はタイムアウトの発生を表すメッセージを記憶することにより、障害監視装置１００の管理者は、被監視対象３５に障害が発生していることを認識することができる。さらに、ファームウェアは、レジスタ６３の値に応じたタイムアウト動作、即ち第２障害復旧動作を実行する（ステップＳ５０）。タイムアウト動作は、上述したように、レジスタ６３の値に応じて決められている。レジスタ６３の値が「００ｂ」である場合、ファームウェアは、何も実行しない。レジスタ６３の値が「０１ｂ」である場合、ファームウェアは、障害監視装置１００の電源が投入された状態で、被監視対象３５を再起動する。レジスタ６３の値が「１０ｂ」である場合、ファームウェアは、障害監視装置１００の電源をオフにする。レジスタ６３の値が「１１ｂ」である場合、ファームウェアは、障害監視装置１００の電源をオフにした後、オンにする。つまり、レジスタ６３の値が「０１ｂ」又は「１１ｂ」である場合には、正常状態にあるファームウェアが、被監視対象３５の障害の復旧動作を実行することができる。
【００５４】
図８は、ファームウェアに障害が発生したときの障害監視装置１００の動作を示すシーケンス図である。ここで、図６に示す動作と同様の動作については、同一のステップ番号を付し、その説明を省略する。
【００５５】
まず、ファームウェア及び被監視対象３５が正常状態であるときは、図６のステップＳ２６〜Ｓ３２の手順が繰り返し実行される。
【００５６】
ファームウェアに障害が発生すると、ファームウェアは、ＷＤＴ５１のリセット指示をレジスタコントローラ４５に送信しなくなる（ステップＳ５１）。ファームウェアは、レジスタコントローラ４５からの割り込みに応答できない状態なので、この時点の方路レジスタ５３は「１」の状態である。方路スイッチ４４は、方路「１」を選択している状態である。
【００５７】
一方、被監視対象３５は、一定のリセット間隔で、ＷＤＴ５１のリセット指示をライト／リード／リセット制御線を介してレジスタコントローラ４５に送信する（ステップＳ５２）。レジスタコントローラ４５は、ＷＤＴ５１のリセット指示を第２Ｉ／Ｆ部４３及びレジスタ部４２を介して受信するが、方路レジスタ５３の値を維持し（１→１）、方路スイッチ４４の方路（１→１）を維持する（ステップＳ５３）。ファームウェアに障害が発生しているため、ステップＳ５２，Ｓ５３の動作が繰り返し実行される。ＷＤＴ５１のカウントダウンは継続されている。
【００５８】
その後、ＷＤＴ部３４は、ＷＤＴ５１がプレタイムアウト値に到達したことを契機として、プレタイムアウト動作用の割り込みをレジスタコントローラ４５に送信する（ステップＳ５４）。レジスタコントローラ４５はプレタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ６１を「プレタイムアウト」に変更して、方路レジスタ５３の示す値「１（ファームウェア）」と逆の値（「０」）に対応する被監視対象３５にプレタイムアウト動作用の割り込みを通知する（ステップＳ５５）。このプレタイムアウト動作用の割り込みは、ファームウェアに障害が発生していることを示す。
【００５９】
被監視対象３５は、レジスタコントローラ４５からプレタイムアウト動作用の割り込みを受信すると、レジスタ６２の値に応じたプレタイムアウト動作を実行する（ステップＳ５６）。プレタイムアウト動作は、上述したように、レジスタ６２の値に応じて決められている。例えば、レジスタ６２の値が「００ｂ」である場合、被監視対象３５は、何も実行しない。レジスタ６２の値が「０１ｂ」である場合、被監視対象３５は、障害監視装置１００の電源を切らずにファームウェアの再起動を行うための割り込みをファームウェアに送信する。レジスタ６２の値が「１０ｂ」である場合、被監視対象３５は、障害監視装置１００の電源を一旦切ってファームウェアの再起動を行うための割り込みをファームウェアに送信する。さらに、被監視対象３５は、ＨＤＤ３６にプレタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ５７）。ファームウェアは、被監視対象３５からの割り込み（即ち、障害の復旧要求）を契機として、第３障害復旧動作を開始する（ステップＳ５８）。つまり、ファームウェアは、被監視対象３５からの障害の復帰要求に応じて自ら障害の復旧動作を実行する。ここで、第３障害復旧動作は、例えば、ファームウェアの再起動であり、予め被監視対象３５で決められている。
【００６０】
第３障害復旧動作によってファームウェアが復旧した場合には、図６のステップＳ３０の手順に戻る。障害復旧動作によってファームウェアが復旧しない場合、ＷＤＴ５１のカウントダウンが進み、ＷＤＴ部３４は、ＷＤＴ５１がタイムアウト値に到達したことを契機として、タイムアウト動作用の割り込みをレジスタコントローラ４５に送信する（ステップＳ５９）。
【００６１】
レジスタコントローラ４５はタイムアウト動作用の割り込みを受信し、タイマステータスを示すレジスタ６１を「タイムアウト」に変更して、方路レジスタ５３の示す値「１（ファームウェア）」と逆の値（「０」）に対応する被監視対象３５にタイムアウト動作用の割り込みを通知する（ステップＳ６０）。このタイムアウト動作用の割り込みは、ファームウェアの障害が復旧不能状態であることを示す。
【００６２】
被監視対象３５は、レジスタコントローラ４５からタイムアウト動作用の割り込みを受信すると、被監視対象３５は、ＨＤＤ３６にタイムアウトの発生を表すメッセージ（SEL Event）を記録する（ステップＳ６１）。ＨＤＤ３６にプレタイムアウト又はタイムアウトの発生を表すメッセージを記憶することにより、障害監視装置１００の管理者は、ファームウェアに障害が発生していることを認識することができる。さらに、被監視対象３５は、レジスタ６３の値に応じたタイムアウト動作、即ち第４障害復旧動作を実行する（ステップＳ６２）。タイムアウト動作は、上述したように、レジスタ６３の値に応じて決められている。レジスタ６３の値が「００ｂ」である場合、被監視対象３５は、何も実行しない。レジスタ６３の値が「０１ｂ」である場合、被監視対象３５は、障害監視装置１００の再起動を行う。レジスタ６３の値が「１０ｂ」である場合、被監視対象３５は、障害監視装置１００の電源をシャットダウンする。つまり、レジスタ６３の値が「０１ｂ」又は「１０ｂ」である場合には、正常状態にある被監視対象３５が、ファームウェアの障害の復旧動作を実行することができる。
【００６３】
以上説明したように、本実施の形態によれば、障害監視装置１００は、マイクロコンピュータ３２を制御するファームウェアの障害及びマイクロコンピュータ３２によって稼働する被監視対象３５の障害を監視するＷＤＴ５１と、ＷＤＴ５１による監視先を交互に切り替える方路スイッチ４４及びレジスタコントローラ４５とを備えている。よって、障害監視装置１００は、１つのウォッチドッグタイマを使用して、ファームウェア及び被監視対象３５の障害の発生を検出できる。
【００６４】
障害監視装置１００の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、障害監視装置１００に供給し、ＷＤＴ制御部３３が記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施の形態と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ又はＳＤカードなどがある。また、ＷＤＴ制御部３３が、障害監視装置１００の機能を実現するためのソフトウェアのプログラムを実行することによっても、上記実施の形態と同様の効果を奏する。
【符号の説明】
【００６５】
３１  不揮発性メモリ
３２  マイクロコンピュータ
３３  ウォッチドッグタイマ（ＷＤＴ）制御部
３４  ウォッチドッグタイマ（ＷＤＴ）部
３５  被監視対象
３６  ハードディスクドライブ（ＨＤＤ）
４１  第１Ｉ／Ｆ部
４２  レジスタ部
４３  第２Ｉ／Ｆ部
４４  方路スイッチ
４５  レジスタコントローラ
５１  ウォッチドッグタイマ（ＷＤＴ）
１００  障害監視装置
【図１】
2012053110.tif 000003
【図２】
2012053110.tif 000004
【図３】
2012053110.tif 000005
【図４】
2012053110.tif 000006
【図５】
2012053110.tif 000007
【図６】
2012053110.tif 000008
【図７】
2012053110.tif 000009
【図８】
2012053110.tif 000010
【国際調査報告】
2012053110.tif 000011
2012053110.tif 000012
2012053110.tif 000013
2012053110.tif 000014