(57)【要約】【課題】  ホットスタンバイ式２重化システムを汎用性が有り安価で柔軟性に富むシステムに構築する。【解決手段】  サーバ計算機１００、１０１の各々に、他方のサーバ計算機の状態を監視すると共に、自サーバ計算機の状態を他方のサーバ計算機に通知するハートビートモジュール２０１、３０１と、自サーバ計算機内のプロセスを監視し、プロセスの異常を検出した場合はハートビートモジュール２０１、３０１にプロセス異常の検出を通知するプロセス監視モジュール２０２、３０２と、自サーバ計算機内のログを監視し、異常ログを検出した場合は前記ハートビートモジュール２０１、３０１に異常ログの検出を通知するログ監視モジュール２０３、３０３とを備える。【選択図】図１
2006172050.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにより接続されている同一の動作をする２つのサーバ計算機を有するホットスタンバイ式２重化システムにおいて、
前記２つのサーバ計算機の各々に、
前記ネットワークに接続された他方のサーバ計算機が正常に動作しているかどうかの状態を監視すると共に、自サーバ計算機の状態を前記他方のサーバ計算機に通知するハートビートモジュールと、
前記自サーバ計算機内のプロセスを監視し、プロセスの異常を検出した場合は前記ハートビートモジュールにプロセス異常の検出を通知するプロセス監視モジュールと、
前記自サーバ計算機内のログを監視し、異常ログを検出した場合は前記ハートビートモジュールに異常ログの検出を通知するログ監視モジュールとを備えることを特徴とするホットスタンバイ２重化システム。
【請求項２】
前記ハートビートモジュールは前記他方のサーバ計算機のハートビートモジュールが送信するハートビート信号を受信し、
該ハートビート信号を一定時間内に受信できなかった場合は前記他方のサーバ計算機が正常に動作していないと判断して前記自サーバ計算機をマスタとし、前記ハートビート信号を一定時間内に受信できた場合は前記他方のサーバ計算機の状態が正常に動作していると判断して前記自サーバ計算機をスレーブとすることを特徴とする請求項１記載のホットスタンバイ式２重化システム。
【請求項３】
前記ハートビートモジュールは前記プロセス監視モジュールが送信するハートビート信号を受信し、該ハートビート信号を一定時間内に受信できなかった場合、
および前記ログ監視モジュールからの異常通知を受信した場合は前記ホットスタンバイ式２重化システム全体を管理する管理計算機に異常を通知することを特徴とする請求項１記載のホットスタンバイ式２重化システム。
【請求項４】
前記プロセス監視モジュールは、前記ハートビートモジュールが送信するハートビート信号を受信し、該ハートビート信号を一定時間内に受信できなかった場合、
および監視対象のプロセスが異常かどうかチェックしプロセスの異常を検出した場合は前記ホットスタンバイ式２重化システム全体を管理する管理計算機に異常を通知することを特徴とする請求項１記載のホットスタンバイ式２重化システム。
【請求項５】
前記ログ監視モジュールは、常時監視しているログに異常があった場合、前記ハートビートモジュールに異常を通知することを特徴とする請求項１に記載のホットスタンバイ式２重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムのシステム構成装置であるサーバ計算機の運用切替方式に特徴を有するホットスタンバイ式２重化システムに関するものである。  
【背景技術】
【０００２】
高信頼性が必要とされる計算機システムでは、システム構成装置のサーバ計算機２台を同じ構成にし、片方を作動させもう片方は同じ動作をしながら待機させておくことがある。このとき作動しているサーバ計算機をマスタといい、待機しているサーバ計算機をスレーブという。特にサーバ計算機２台を全く同一の動作をさせ、マスタに障害が発生した場合、即座にスレーブに動作が引き継がれるようにしたシステムをホットスタンバイ式２重化システムという。特許文献１では、他方のシステム構成装置の状態を監視するために専用のハードウェアを準備し、システムの高信頼性を実現している。
【特許文献１】特開平５−２３３５７９号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のホットスタンバイ式２重化システムは、専用のハードウェアを準備する必要があるために、汎用性が低く、かつ非常に高価なシステムとなる。さらに、ハードウェアまたはソフトウェアを監視する回路等の障害に備え、回路自体を冗長化する必要がある。また、業務アプリケーションの動作の監視をする場合、業務アプリケーションプロセスの追加があると、ハードウェアの追加や変更または業務アプリケーションプロセス自体の改造が必要となり、柔軟性に欠けるという問題がある。
【０００４】
本発明は、上記課題に鑑みてなされたものであり、ホットスタンバイ式２重化システムを汎用性が高く安価で柔軟性に富むシステムを構築することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、ネットワークにより接続されている同一の動作をする２つのサーバ計算機を有するホットスタンバイ式２重化システムにおいて、前記２つのサーバ計算機の各々に、前記ネットワークに接続された他方のサーバ計算機が正常に動作しているかどうかの状態を監視すると共に、自サーバ計算機の状態を前記他方のサーバ計算機に通知するハートビートモジュールと、前記自サーバ計算機内のプロセスを監視し、プロセスの異常を検出した場合は前記ハートビートモジュールにプロセス異常の検出を通知するプロセス監視モジュールと、前記自サーバ計算機内のログを監視し、異常ログを検出した場合は前記ハートビートモジュールに異常ログの検出を通知するログ監視モジュールとを備えることを特徴としている。
また、前記ハートビートモジュールは、前記他方のサーバ計算機のハートビートモジュールが送信するハートビート信号を受信し、該ハートビート信号を一定時間内に受信できなかった場合は前記他方のサーバ計算機が正常に動作していないと判断して前記自サーバ計算機をマスタとし、前記ハートビート信号を一定時間内に受信できた場合は前記他方のサーバ計算機の状態が正常に動作していると判断して前記自サーバ計算機をスレーブとすることを特徴としている。
【０００６】
また、前記ハートビートモジュールは、前記プロセス監視モジュールが送信するハートビート信号を受信し、該ハートビート信号を一定時間内に受信できなかった場合、
および前記ログ監視モジュールからの異常通知を受信した場合は前記ホットスタンバイ式２重化システム全体を管理する管理計算機に異常を通知することを特徴としている。
また、前記プロセス監視モジュールは、、前記ハートビートモジュールが送信するハートビート信号を受信し、該ハートビート信号を一定時間内に受信できなかった場合、
および監視対象のプロセスが異常かどうかチェックしプロセスの異常を検出した場合は前記ホットスタンバイ式２重化システム全体を管理する管理計算機に異常を通知することを特徴としている。
また、前記ログ監視モジュールは、常時監視しているログに異常があった場合、前記ハートビートモジュールに異常を通知することを特徴としている。
【発明の効果】
【０００７】
本発明によれば、ホットスタンバイ式２重化システムを、サーバ計算機が正常に動作しているかを監視するハートビートモジュールと、サーバ計算機内のプロセスを監視するプロセス監視モジュールと、サーバ計算機内のログを監視するログ監視モジュールで実現することにより汎用性が高く安価で柔軟なシステムを構築することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して、本発明の実施例の詳細を説明する。
【実施例１】
【０００９】
図１は、本発明のホットスタンバイ式２重化システムの構成図である。図１において、１０はシステム全体を管理する管理計算機、１００、１０１はそれぞれ第１サーバ計算機、第２サーバ計算機である。それぞれのサーバ計算機１００、１０１には、ハートビートモジュール２０１、３０１、プロセス監視モジュール２０２、３０２、ログ監視モジュール２０３、３０３がある。これら各モジュールはソフトウエアである。また、これら各モジュールの動作は同一であるので、第１サーバ計算機１００を中心に説明する。
ハートビートモジュール２０１は、ハートビート信号ｂを第２サーバ計算機１０１上のハートビートモジュール３０１に送信する。同様に第２サーバ計算機１０１上のハートビートモジュール３０１は、ハートビート信号ａを第１サーバ計算機１００上のハートビートモジュール２０１へ送信する。
ここでハートビート信号とは、計算機やプロセスが正常に稼動していることを外部に知らせる信号で、ネットワークで送信可能なデータである。ハートビート信号を使用する複数の計算機やプロセスが相互に取り決めた一定時間の周期でハートビート信号を送信する。ハートビート信号を受信する計算機やプロセスは、取り決めた一定時間内に信号が受信できることで送信元の正常動作を確認する。
第１サーバ計算機１００と第２サーバ計算機１０１はハートビート信号ａ、ｂを使用し相互監視を行い、どちらがマスタ動作をするかを決定する。
また、ハートビートモジュール２０１とプロセス監視モジュール２０２はハートビート信号ｃ、ｄを使用し相互監視を行い、異常が発生すれば管理計算機１０へ異常を通知し、ネットワークを遮断する。
【００１０】
プロセス監視モジュール２０２は、監視対象のプロセスが存在するかどうかと正常な状態であるかどうかを定期的に確認する。監視対象のプロセスが存在しない、または、消滅せずにシステム内に残っているのに動作しない、いわゆるゾンビプロセスのような異常な状態となった場合は、管理計算機１０へ異常を通知し、ネットワークを遮断する。
なお、監視対象のプロセスはシステム管理者がシステムを起動する前にあらかじめ設定しておく。
プロセス監視モジュール２０２がハートビートモジュール２０１の異常を検出した場合は、管理計算機１０へ異常を通知し、ネットワークを遮断する。
【００１１】
ログ監視モジュール２０３は、第１サーバ計算機内のオペレーティングシステムが出力するシステムに関するログとハートビートモジュール２０１とプロセス監視モジュール２０２が出力するログを監視する。監視しているログに事前に収集した異常ログに関する文字列が出現した場合、ハートビートモジュールに異常を通知する。
異常ログの文字列はシステム管理者がシステムを起動する前にあらかじめ設定しておく。どの文字列が異常ログであるかはオペレーティングシステムや監視するプロセスにより異なる。
【００１２】
図２はハートビートモジュール２０１の初期処理のフローチャートである。
ハートビート信号ａ、ｂを使用して、第１サーバ計算機１００と第２サーバ計算機１０１のどちらがマスタとして動作するかを決定する。
ステップＳ１でハートビートモジュール２０１は第２サーバ計算機からのハートビート信号ａを受信する。ステップＳ２で一定時間内に受信できたかどうかチェックし、一定時間に受信できなかった場合はステップＳ３に進み第１サーバ計算機をマスタとする。すなわち、ステップＳ３に進む場合は第２サーバ計算機１０１が正常に動作していないと判断する。ステップＳ２でハートビート信号を一定時間内に受信できた場合は、第２サーバ計算機１０１が正常に動作していると判断しステップＳ４に進み、第１サーバ計算機をスレーブとする。
このフローチャートはハートビートモジュール２０１について記載してあるが、ハートビートモジュール３０１も同様の処理を行う。
なお、第１サーバ計算機１００と第２サーバ計算機１０１がほぼ同時に電源が投入され、ハートビートモジュール２０１、３０１がほぼ同時に初期処理を開始すると２つのサーバ計算機のどちらがマスタとなるか分らないため、最初にマスタとしたいサーバ計算機が決まっている場合は、タイマ等を利用してマスタとしたいサーバ計算機の電源を先に投入する。
【００１３】
図３は、第１サーバ計算機１００がマスタとして動作する場合のプロセス監視モジュールとハートビートモジュールとログ監視モジュールのフローチャートである。
ハートビートモジュール２０１はステップＳ１１でプロセス監視モジュール２０２と第２サーバ計算機１０１上で動作するハートビートモジュール３０１にハートビート信号ｄ、ｂを送信する。また、プロセス監視モジュール２０２からのハートビート信号ｃを受信する。第２サーバ計算機１０１からのハートビート信号ａは受信しない。これは、第２サーバ計算機がどういう状態でもマスタとして動き続けるためである。
ステップＳ１２でプロセス監視モジュール２０２からのハートビート信号ｃが一定時間内に受信できたかどうかチェックし、できなかった場合ステップＳ１５に進み管理計算機１０に異常を通知し、ステップＳ１６でネットワークを遮断する。
ステップＳ１２で一定時間内にプロセス監視モジュール２０２からのハートビート信号ｃを受信した場合は、ステップＳ１３、Ｓ１４でログ監視モジュール２０３から異常通知が到着しているかどうか確認する。異常通知を受信した場合はステップＳ１５に進み異常処理を実施する。異常通知を受信しなかった場合は、ステップＳ１１へ戻る。
【００１４】
プロセス監視モジュール２０２は、ステップＳ２１でハートビートモジュール２０１との間でハートビート信号ｃ、ｄを送受信する。ステップＳ２２でハートビートモジュール２０１からのハートビート信号ｄをチェックし、信号が一定時間内に受信できなかった場合は、ステップＳ２４に進み、管理計算機に異常を通知し、ステップＳ２５でネットワークを遮断する。ハートビート信号ｄを一定時間内に受信できた場合は、ステップＳ２３で監視対象のプロセスが異常かどうかをチェックし、プロセスの異常を検出した場合はステップＳ２４に進み異常処理を実施する。
ログ監視モジュール２０３は、常時監視しているログに異常ログが発生した場合、ステップＳ３１で異常通知をハートビートモジュール２０１に送信する。
【００１５】
図４は、第１サーバ計算機１００がスレーブとして動作する場合のプロセス監視モジュールとハートビートモジュールとログ監視モジュールのフローチャートである。
図３のフローチャートと異なる点はハートビートモジュール２０１のステップＳ５１、Ｓ５２、Ｓ５３だけである。
ハートビートモジュール２０１はステップＳ５１でプロセス監視モジュール２０２と第２サーバ計算機１０１上で動作するハートビートモジュール３０１にハートビート信号ｄ、ｂを送信する。また、プロセス監視モジュール２０２からのハートビート信号ｃと第２サーバ計算機１０１からのハートビート信号ａを受信する。
ステップＳ５２でプロセス監視モジュール２０２からのハートビート信号ｃ、第２サーバ計算機１０１からのハートビート信号ａが一定時間内に受信できたかどうかチェックし、第２サーバ計算機１０１からのハートビート信号ａが受信できなかった場合はステップＳ５３に進み、第１サーバ計算機をマスタに切換える。
ステップＳ５２でプロセス監視モジュール２０２からのハートビート信号ｃが受信できなかった場合、ハートビート信号ｃ、ａどちらも正常に受信できた場合の処理は図３と同一である。
なお、図３、図４共第１サーバ計算機１００側の説明をしたが、第２サーバ計算機１０１の処理も同一である。
このように、ホットスタンバイ式２重化システムを、サーバ計算機が正常に動作しているかを監視するハートビートモジュールと、サーバ計算機内のプロセスを監視するプロセス監視モジュールと、サーバ計算機内のログを監視するログ監視モジュールで実現することにより汎用性が高く安価で柔軟なシステムを構築することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のホットスタンバイ式２重化システムの構成図
【図２】ハートビートモジュールの初期処理のフローチャート
【図３】第１サーバ計算機がマスタとして動作する場合のプロセス監視モジュールとハートビートモジュールとログ監視モジュールのフローチャート
【図４】第１サーバ計算機１００がスレーブとして動作する場合のプロセス監視モジュールとハートビートモジュールとログ監視モジュールのフローチャート
【符号の説明】
【００１７】
１０  管理計算機
１００、１０１  第１、第２サーバ計算機
２０１、３０１  ハートビートモジュール
２０２、３０２  プロセス監視モジュール
２０３、３０３  ログ監視モジュール
【図１】
2006172050.tif 000003
【図２】
2006172050.tif 000004
【図３】
2006172050.tif 000005
【図４】
2006172050.tif 000006