(57)【要約】【課題】  計算機に障害が発生したとき、障害の原因追及を容易にすると共に、確実に計算機を再稼働させることができる計算機システムを提供することを目的とする。【解決手段】  障害監視対象の計算機が少なくともメモリダンプ及び故障診断をしていない通信可能状態であるときに、計算機からの応答が無く故障と判断した場合には計算機に対して再立ち上げ処理をさせるための割り込み信号を出力し、その後計算機からの応答が無いと判断した場合には計算機に対してリセット信号を出力して再立ち上げをさせる。【選択図】  図１
2005108034.tif 000002
【特許請求の範囲】
【請求項１】
障害監視対象の計算機が少なくともメモリダンプ及び故障診断をしていない通信可能状態であるか否かを判断する通信可能状態判断手段と、
前記計算機が通信可能状態のときに、前記計算機に動作確認信号を出力する動作確認信号出力手段と、
前記動作確認信号出力手段が前記計算機に対して前記動作確認信号を出力した後、前記計算機からの応答の有無を判断する第一の応答判断手段と、
前記第一の応答判断手段が前記計算機からの応答が無いと判断したとき、前記計算機に対して再立ち上げ処理をさせるための割り込み信号を出力する割り込み手段と、
前記割り込み手段が前記計算機に対して前記割り込み信号を出力した後、前記計算機からの応答の有無を判断する第二の判断手段と、
前記第二の判断手段が前記計算機からの応答が無いと判断したとき、前記計算機に対してリセット信号を出力するリセット手段とを具備することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
計算機システムにおいて、稼働中の計算機に障害が発生したときの障害対策技術に関する。
【背景技術】
【０００２】
従来、計算機システムにおいて、稼働中の計算機で障害が発生した場合の対策として、次のような技術があった。
【０００３】
従プロセッサが正常に動作しているか否かを主プロセッサが定期的に問い合わせ確認し、従プロセッサからの応答がない場合には、主プロセッサが従プロセッサで障害が発生したとして認識し、従プロセッサをリセットして再立ち上げする（特許文献１、段落００１０〜段落００１６、図１、図２）。
【０００４】
計算機の故障にはハードウェアの障害に起因するハードウェア障害とソフトウェアの障害に起因するソフトウェア障害とがあり、上記従来の技術では障害が発生した場合には一律にプロセッサをリセットして再立ち上げしており、障害の原因追及が容易でなかった。
【０００５】
また、二重系の計算機システムにおいて、障害が発生した計算機自身がメモリダンプ（クラッシュダンプ）をしてメモリの状態を採取しているとき、一時的に一方の計算機だけでシステムを運用し、もう一方の計算機が自身の故障診断（テスト）をしているとき等では、上記従来の障害対策を実施すると計算機が再稼働できない等の重大な障害を発生する可能性があった。
【特許文献１】特開平６−２３６２９９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、計算機の障害の原因追及を容易にすると共に、確実に計算機を再稼働させることができる計算機システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による計算機システムは、障害監視対象の計算機が少なくともメモリダンプ及び故障診断をしていない通信可能状態であるか否かを判断する通信可能状態判断手段と、計算機が通信可能状態のときに、計算機に動作確認信号を出力する動作確認信号出力手段と、動作確認信号出力手段が計算機に対して動作確認信号を出力した後、計算機からの応答の有無を判断する第一の応答判断手段と、第一の応答判断手段が計算機からの応答が無いと判断したとき、計算機に対して再立ち上げ処理をさせるための割り込み信号を出力する割り込み手段と、割り込み手段が計算機に対して割り込み信号を出力した後、計算機からの応答の有無を判断する第二の判断手段と、第二の判断手段が計算機からの応答が無いと判断したとき、計算機に対してリセット信号を出力するリセット手段とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、計算機の障害の原因追及を容易にすると共に、確実に計算機を再稼働させることができる計算機システムを提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１０】
以下、図面を参照して本発明の第１の実施例を詳細に説明する。  図１は、二重系計算機システムを示す図である。計算機（Ａ）１と計算機（Ｂ）２とが互いにＬＡＮ３を介して相互に接続し二重系計算機システムを構成している。二重系計算機システムは、一方を稼働系計算機（オンライン状態の計算機）、他方を待機系計算機（スタンバイ状態の計算機）として構成する。計算機（Ａ）１と計算機（Ｂ）２とは相互に、計算機間通信信号１００，１０１、リセット信号１０２，１０３、割り込み信号１０４，１０５、ステータス信号１０６，１０７を送受信している。
【００１１】
図２は、図１に示した計算機（Ｂ）２の詳細を示す図である。計算機（Ａ）１の構成もこの図２に示した構成と同一である。  システムバス１７を介して、第１コントローラ１０、第２コントローラ１１１、プロセッサ１２、メモリ１３、Ｉ／Ｏコントローラ１４、ネットワークインタフェース１５が相互に接続されている。Ｉ／Ｏコントローラ１４には、磁気ディスク装置（ＨＤＤ）１６が接続されている。
【００１２】
第１コントローラ１０は、図示しない計算機Ａ１からの動作確認信号１００、リセット信号１０２、割り込み信号１０４、ステータス信号１０６を受信している。一方、第１コントローラ１０は、図示しない計算機Ａ１に動作確認信号１０１、割り込み信号１０３、リセット信号１０５、ステータス信号１０７を送信している。  第１コントローラ１０から第２コントローラ１１にリセット信号１０２が出力される。また、第１コントローラ１０からプロセッサ１２に割り込み信号１０４が出力される。
【００１３】
図３は、第２コントローラ１１の詳細を示す図である。第２コントローラ１１は、外部リセットフリップフロップ回路１１１、パワーオンリセット回路１１２、ＯＲ回路１１３から構成されている。  外部リセットフリップフロップ回路１１１は、第１コントローラ１０から出力されたリセット信号１０２を入力してセットし、そのセット出力をＯＲ回路１１３に出力している。パワーオンリセット回路１１２は、この計算機（Ｂ）２の電源がＯＮされたとき又はリセットされたときにリセット信号をＯＲ回路１１３に出力する。ＯＲ回路１１３は、外部リセットフリップフロップ回路１１１から出力されたセット出力信号とパワーオンリセット回路１１２から出力されたリセット信号とをＯＲ処理してリセット信号１０２として出力する。尚、図３において、システムバス１７とのインタフェースに関連する回路の図示を省略している。
【００１４】
図４は、ステータス信号１０７の状態とその状態に対応して計算機が通信可能の状態にあるか否かを示す図である。ステータス信号１０７は、その計算機が稼働状態であるか否かを示す１ビットと、その計算機がメモリダンプをしている状態であるか否かを示す１ビットと、その計算機が故障診断（テスト）をしている状態であるか否かを示す１ビットの３ビットで構成される信号である。第４図において、「１」と表示されているのは、その状態がセットされていることを示し、「０」と表示されているのは、その状態がリセットされていることを示す。第４図に示すように、その計算機が稼働状態（オンライン状態）で、しかもメモリダンプがされていなく、且つテスト（診断）状態でもない場合に、その計算機が通信可能状態であり、それ以外の状態ではその計算機は通信ができない不可の状態である。
【００１５】
次に図５、図６、図７、図８に示したフローチャートに基づいて、二重系計算機システムにおいて稼働系である計算機（Ｂ）２が故障した場合の動作を説明する。図５は待機系である計算機（Ａ）１の動作を説明するためのフローチャートである。図６は稼働系である計算機（Ｂ）２の割り込み処理の動作を説明するためのフローチャートである。図７は計算機（Ｂ）２のリセット受付処理の動作を説明するためのフローチャートである。図８は計算機（Ｂ）２のリセット処理の動作を説明するためのフローチャートである。
【００１６】
待機系である計算機（Ａ）１は、稼働系である計算機（Ｂ）２の故障の発生を監視し、故障が発見された場合には、その対策を実施するよう動作する。まず、計算機（Ａ）１は、
ステータス信号１０７をチェックして計算機（Ｂ）２と通信可能状態であるか否かを判断する。（図５ステップＳ４６）。図４に示したように、計算機（Ｂ）２が稼働状態（オンライン状態）で、しかもメモリダンプがされていなく、且つテスト（診断）状態でもない場合に、通信可能状態と判断し、それ以外の場合には通信不可の状態と判断する。計算機（Ｂ）２が通信可能な状態の場合には、ステップＳ５０に進み、通信不可の状態の場合にはステップＳ４７に進む。ステップＳ４７では計算機（Ｂ）２のメモリダンプや診断が終了するのを待つことを目的として一定時間待機する。この待機時間はそのシステムごとに異なる。一定時間後  ステップＳ４８において、ステータス信号１０７をチェックして通信可能状態であるか否かを判断する。通信可能な状態の場合には、ステップＳ５０に進む。、通信不可の状態の場合には計算機（Ｂ）２がロック状態と判断し、続くステップＳ４９にて強制的にステップを進めたことを示すフラグをセットして、ステップＳ５０に進む。
【００１７】
次に計算機（Ａ）１は、計算機（Ｂ）２に動作確認信号１００を出力する（ステップＳ５０）。その後、計算機（Ａ）１は、動作確認信号１００の応答として計算機（Ｂ）２から出力される動作確認信号１０１の受信の有無をチェックして計算機（Ｂ）２からの応答の有無をチェックする（ステップＳ５１）。計算機（Ａ）１が動作確認信号１０１を受信した場合には、計算機（Ｂ）２から応答ありと判断しステップＳ４６へ戻る（ステップＳ５１のＹ）。また、計算機（Ａ）１が動作確認信号１０１を受信できない場合には、計算機（Ｂ）２から応答がなく故障していると判断しステップＳ５２進む（ステップＳ５１のＮ）。
【００１８】
ステップＳ５２では、計算機（Ａ）１は計算機（Ｂ）２にマスクできない（ノンマスカラブル）最高レベルの割り込み信号１０４を出力し、ステップＳ５３にて計算機（Ａ）１は計算機（Ｂ）２から出力される動作確認信号１０１の受信の有無をチェックして計算機（Ｂ）２からの応答の有無を判断する。
【００１９】
一方、計算機（Ａ）１から割り込み信号１０４を受信した計算機（Ｂ）２は、ハードウゥア故障が発生している場合には、例え割り込み信号１０４を受信しても割り込み処理は実施できず応答信号としての動作確認信号１０１を計算機（Ａ）１に出力することができない。計算機（Ｂ）２がソフトウェアのバグなどによりその処理で無限ループが発生しているなどのソフトウェア障害が発生している場合には、図６に示す割り込み処理を実行する。
【００２０】
まず、計算機（Ｂ）２は計算機（Ａ）１へ動作確認信号１０１を出力する（ステップＳ６０）。次いで、計算機（Ｂ）２は障害原因解析のために、メモリ１３の記憶内容、Ｉ／Ｏの設定情報、プロセッサ（ＣＰＵ）１２のレジスタ情報等を採取（ステップＳ６１）し、この採取した情報を磁気ディスク装置（ＨＤＤ）１６に保存する（ステップＳ６２）。次に計算機（Ｂ）２はメモリ１３をクリア（ステップＳ６３）し、システムをブートする（ステップＳ６４）。その後、計算機（Ｂ）２は計算機（Ａ）１にＬＡＮ１７を介して、システムが立ち上がったことを示すメッセージを送信（ステップＳ６５）して割り込み処理を終了する。
【００２１】
一方、計算機（Ａ）１はステップＳ５３において、計算機（Ｂ）２から出力されるシステムが立ち上がったことを示すメッセージの受信の有無をチェックして計算機（Ｂ）２からの応答の有無を判断する。計算機（Ａ）１は計算機（Ｂ）２から応答があった場合には、計算機（Ｂ）２での障害が回復したと判断してステップＳ４６へ戻る。計算機（Ａ）１は計算機（Ｂ）２から応答が無かった場合には、計算機（Ｂ）２で障害（ハードウェア障害）が発生したと判断し、ステップ５４へ進みステータス信号１０７をチェックして計算機（Ｂ）２と通信可能状態であるか否かを判断する。通信可能な状態と判断した場合は計算機（Ｂ）２で障害（ハードウェア障害）が発生したと判断し、計算機（Ａ）１は計算機（Ｂ）２へリセット信号１０２を出力する（ステップＳ５７）。一方通信不可と判断した場合は、計算機（Ｂ）２でのメモリダンプや診断が終了するのを待つことを目的として一定時間待機する（ステップＳ５５）。この待機時間はそのシステムごとに異なる。一定時間後、計算機（Ａ）１はステータス信号１０７をチェックして計算機（Ｂ）２と通信可能状態であるか否かを判断する（ステップＳ５６）。通信可能な状態の場合には、正常状態と判断しステップＳ４６に戻る。通信不可の場合は計算機（Ｂ）２で障害（ハードウェア障害）が発生したと判断し、ステップＳ５７に進み計算機（Ｂ）２へリセット信号１０２を出力する。
【００２２】
計算機（Ｂ）２は、リセット信号１０２を第１のコントローラ１０で受信し第２のコントローラ１１において外部リセットフリップフロップ回路１１１をセットする（図７ステップＳ７０）。このセットされた外部リセットフリップフロップ回路１１１の出力は、ＯＲ回路１１３を経由してプロセッサ１２に対してリセット信号１０２として出力される（図７ステップＳ７１）。リセット信号１０２を受信したプロセッサ１２は、外部リセットフリップフロップ回路１１１がセットされているか否かをチェックする（図８ステップＳ８０）。外部リセットフリップフロップ回路１１１がセットされていない場合には、通常のリセット、例えばパワーオンリセットと判断して処理をステップＳ８３へ進める。
【００２３】
外部リセットフリップフロップ回路１１１がセットされている場合には、計算機（Ａ）１からのリセット処理と判断して、処理をステップＳ８１へ進め、計算機（Ｂ）２は障害原因解析のために、メモリ１３の記憶内容、Ｉ／Ｏの設定情報、プロセッサ（ＣＰＵ）１２のレジスタ情報等を採取（ステップＳ８１）し、この採取した情報を磁気ディスク装置（ＨＤＤ）１６に保存する（ステップＳ８２）。次に計算機（Ｂ）２はメモリ１３をクリア（ステップＳ８３）し、システムをブートする（ステップＳ８４）。その後、計算機（Ｂ）２は計算機（Ａ）１にＬＡＮ１７を介して、システムが立ち上がったことを示すメッセージを送信（ステップＳ８５）してリセット処理を終了する。
【００２４】
一方、計算機（Ａ）１は図５のステップＳ５７で計算機（Ｂ）２にリセット信号１０２を出力した後、計算機（Ｂ）２から出力されるシステムが立ち上がったことを示すメッセージの受信の有無をチェックして計算機（Ｂ）２からの応答の有無を判断する（ステップＳ５８）。計算機（Ａ）１は計算機（Ｂ）２から応答があった場合には、計算機（Ｂ）２での障害が回復したと判断してステップＳ４６へ戻る（ステップＳ５８のＹ）。計算機（Ａ）１は計算機（Ｂ）２から応答が無かった場合（ステップＳ５８のＮ）には、計算機（Ｂ）２で障害が回復しなかったと判断し、オペレータに障害の通知をする等のエラー処理（ステップＳ５９）をする。
【００２５】
以上説明した通り、図５のステップＳ４６で計算機Ｂが通信可能状態であるか否かを判断した後、計算機Ｂの故障監視をしているので、計算機Ｂが再稼働できない等の重大な障害を回避することができる。また、図６のステップＳ６１及び図７のステップＳ７１で、メモリ１３の記憶内容、Ｉ／Ｏの設定情報、プロセッサ１２のレジスタ情報等を採取し、磁気ディスク装置１６に保存しているので、計算機Ｂをリセットにより再立ち上げしたのか又は割り込みにより再立ち上げしたのかの履歴を参照することにより、計算機Ｂの障害の原因追及が容易にできる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施例である二重系計算機システムを示す図である。
【図２】図１における計算機Ｂの詳細を示す図である。
【図３】図２における第２コントローラ１１の詳細を示す図である。
【図４】ステータス信号１０７の状態とその状態に対応して計算機が通信可能の状態にあるか否かを示す図である。
【図５】計算機Ａの動作を説明するためのフローチャートを示す図である。
【図６】計算機Ｂの割り込み処理の動作を説明するためのフローチャートを示す図である。
【図７】計算機Ｂのリセット受付処理の動作を説明するためのフローチャートを示す図である。
【図８】計算機Ｂのリセット処理の動作を説明するためのフローチャートを示す図である。
【符号の説明】
【００２７】
１  計算機Ａ
２  計算機Ｂ
３  ＬＡＮ
１０  第１コントローラ
１１  第２コントローラ
１２  プロセッサ
１１１  外部リセットフリップフロップ回路
１１２  パワーオンリセット回路
１１３  ＯＲ回路
【図１】
2005108034.tif 000003
【図２】
2005108034.tif 000004
【図３】
2005108034.tif 000005
【図４】
2005108034.tif 000006
【図５】
2005108034.tif 000007
【図６】
2005108034.tif 000008
【図７】
2005108034.tif 000009
【図８】
2005108034.tif 000010