(57)【要約】【課題】可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供する。【解決手段】保守用計算機１０２は、指定した演算用計算機１０３に対し、演算用計算機１０３に組み込まれている擬似故障処理部３０２を実行させる命令を、プログラム起動制御部２０４から送信する。入出力制御部２０３は、同期検出部２０５が演算用計算機１０３の同期が外れたことを確認したことを受けて、演算用計算機１０３の再組み込み処理部３０３に再組み込みを指示する。その後、入出力制御部２０３は、同期検出部２０５が演算用計算機１０３の再組み込み処理が失敗したことを確認したら、ログ記録部３０５を通じてログファイル３０７からエラーログを収集する。以上の一連の動作は、テスト機能制御テーブル２０６に記載された内容に従って、各演算用計算機１０３に対して繰り返し実行される。このため、効率よくエラーログを収集できる。【選択図】図１
2013089142.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳの動作に所定の異常状態を生じさせる擬似故障処理部と、ネットワーク上に存在する他の計算機との同期処理を行う再組み込み処理部と、前記ＯＳの動作をログファイルに記録するログ記録部とを具備する第一演算用計算機と、
前記第一演算用計算機と前記ネットワークを介して接続され、前記第一演算用計算機と共通のハードウェア構成である第二演算用計算機と、
前記第一演算用計算機と前記ネットワークを介して接続され、前記第一演算用計算機の前記擬似故障処理部に対して起動命令を生成するプログラム起動制御部と、前記第一演算用計算機と前記第二演算用計算機との同期状態を検出する同期検出部と、前記プログラム起動制御部から前記起動命令を生成した後、前記再組み込み処理部に再組み込み処理を指示し、その後に前記第一演算用計算機の前記再組み込み処理部が同期処理に失敗したことを前記同期検出部が検出したことを受けて、前記ログ記録部から前記ログファイルを読み込む入出力制御部とを具備する保守用計算機と
を有するフォールトトレラントシステム。
【請求項２】
前記擬似故障処理部は、前記ＯＳ上で稼働するユーザプログラムより高い優先度で実行される、請求項１記載のフォールトトレラントシステム。
【請求項３】
前記入出力制御部は、前記プログラム起動制御部と前記同期検出部を繰り返し実行すべく制御する、請求項２記載のフォールトトレラントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントシステムに関する。
より詳細には、フォールトトレラントシステムのＯＳを試験するプログラムとエラーログを収集する仕組みに関する。
【背景技術】
【０００２】
産業用途の計算機によっては、高可用性（High availability、高稼働率ともいう）及び高信頼性（High reliability）を要求される場合がある。これらの要求を満足する手法の一つとして、計算機を多重化したフォールトトレラントシステムがある。
フォールトトレラントシステムには、ネットワーク上に一以上の保守用計算機と、二以上の演算用計算機群が相互に接続されている。そして、保守用計算機上で稼働するソフトウェアが、各々の演算用計算機に同一のプログラムを同時に実行する、ソフト同期制御を行う。更に、各演算用計算機の実行結果を比較照合して、多数決方式で結果出力を行う入出力装置がネットワーク上に存在する。つまり、単に計算機の存在を多重化させるのではなく、複数の計算機に対して、同時に同じ内容のプログラムを実行させ、その上でそれら複数の計算機の演算結果も多重化している。演算結果を多数決方式で出力するので、演算用計算機が三台以上であれば、一台が何らかのエラーを生じたとしても残り二台が正常に稼動していれば、システム全体として正しい演算結果を出力できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１４１５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなフォールトトレラントシステムでは、保守用計算機が複数の演算用計算機を常時監視しており、複数の演算用計算機の内、動作（演算結果）が異なる少数派の演算用計算機が発生した場合には、それを異常が発生した演算用計算機とみなして、保守用計算機１０２が当該演算用計算機を同期状態から離脱させる。そして、多数派となった演算用計算機のみで同期状態を続ける。
一方、異常が発生した演算用計算機に対しては、異常の発生原因を解消した後、演算用計算機上で稼働するオペレーティングシステム（以下「ＯＳ」）に搭載されている同期状態への再組込み機能を実行することにより、演算用計算機の運用を停止させることなく、前述の同期状態への復帰が可能となる。
【０００５】
前述の再組込み機能を用いて、異常が発生している演算用計算機を同期状態に復帰させるためには、現在同期状態で動作している他の演算用計算機内の中央演算装置上で動作している実処理と、異常を回復させた非同期状態の演算用計算機内の中央演算装置上で動作している実処理間で完全に処理を一致させるタイミングが必要となる。
しかし、各演算用計算機における中央処理装置は、再組込み機能の実行処理だけでなく、ＯＳの他の処理や、ＯＳでは発生することを事前に把握できないネットワーク送受信処理、或はユーザアプリケーションによる処理の影響等により、同期への再組込みが失敗することがある。
そのため、課題に対する解決策として、ユーザアプリケーション上で動作するフォールトトレラントシステム動作検証装置が存在するが、ＯＳよりも処理優先度が低い、ユーザアプリケーションの一部であるため、ＯＳ単体の動作検証には使用することができないという問題点がある。
しかし、前記のような構成のフォールトトレラントシステムに搭載するＯＳの開発の現場においては、ＯＳによる他の処理、ネットワーク送受信処理、ユーザアプリケーションによる処理等、突発的に発生する処理のタイミングと、ＯＳの再組込み機能実行のタイミングの兼ね合いで再組込みが成功するタイミングをＯＳ単体で十分に検証しなければならない。
また、産業用途で使用するため、再組み込みを幾度となく繰り返し実施しても、同期制御状態での長期連続稼動性に問題が発生しないことも十分に検証する必要がある。
【０００６】
つまり、フォールトトレラントシステムをより完全なシステムとするためには、フォールトトレラントシステムの高可用性及び高信頼性を試験するツールが必要である。この試験ツールには、ＯＳを含むシステム全体に対して再組込み機能以外の様々な要因で偶発的に発生する処理や、ユーザ操作による再組込処理のタイミングの兼ね合いに起因する再組込み機能の不具合を十分に検出する機能と、再組み込み処理を幾度となく繰り返し実施しても同期制御状態での長期連続稼動性に問題が発生しないことと、外部装置との通信処理とタイミングに関わらず再組込み処理に失敗しないことを十分に検証する機能が求められる。
【０００７】
本発明は係る課題を解決し、可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のフォールトトレラントシステムは、第一演算用計算機と、第二演算用計算機と、保守用計算機がネットワークを介して接続されている構成である。
第一演算用計算機は、ＯＳの動作に所定の異常状態を生じさせる擬似故障処理部と、ネットワーク上に存在する他の計算機との同期処理を行う再組み込み処理部と、ＯＳの動作をログファイルに記録するログ記録部とを具備する。
第二演算用計算機は、第一演算用計算機と共通のハードウェア構成である。
保守用計算機は、第一演算用計算機とネットワークを介して接続され、第一演算用計算機の擬似故障処理部に対して起動命令を生成するプログラム起動制御部と、第一演算用計算機と第二演算用計算機との同期状態を検出する同期検出部と、プログラム起動制御部から起動命令を生成した後、再組み込み処理部に再組み込み処理を指示し、その後に第一演算用計算機の再組み込み処理部が同期処理に失敗したことを同期検出部が検出したことを受けて、ログ記録部からログファイルを読み込む入出力制御部とを具備する。
【０００９】
保守用計算機は、第一演算用計算機に対し、第一演算用計算機に組み込まれている擬似故障処理部を実行させる命令を、プログラム起動制御部から送信する。
同期検出部が第一演算用計算機の同期が外れたことを確認したら、入出力制御部が第一演算用計算機の再組み込み処理部に再組み込みを指示する。その後、入出力制御部は、同期検出部が第一演算用計算機の再組み込み処理が失敗したことを確認したら、ログ記録部を通じてログファイルを読み込む。
このため、効率よくエラーログを収集できる。
【発明の効果】
【００１０】
本発明により、可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態であるフォールトトレラントシステムの全体構成を示すブロック図である。
【図２】端末の機能ブロック図である。
【図３】画面キャプチャの概要及び画面キャプチャファイルを説明する概略説明図である。
【図４】コメント情報ファイルの詳細を示す概略図である。
【図５】画面キャプチャ条件定義一覧画面と、条件定義ファイルの詳細を示す概略図である。
【発明を実施するための形態】
【００１２】
［全体構成］
図１は、本発明の一実施形態であるフォールトトレラントシステムの全体構成を示すブロック図である。
フォールトトレラントシステム１０１は、保守用計算機１０２と、複数の演算用計算機１０３が、二重化ネットワーク１０４にて相互接続されている。図１では、演算用計算機１０３について、一番目の演算用計算機である第一演算用計算機１０３ａと、二番目の演算用計算機である第二演算用計算機１０３ｂと、ｎ番目の演算用計算機である第ｎ演算用計算機１０３ｎを図示している。
更に、二重化ネットワーク１０４には、入出力装置１０５を介して、別セグメントネットワーク１０６が接続されており、別セグメントネットワーク１０６には任意のネットワーク機器１０７が接続されている。
【００１３】
第一演算用計算機１０３ａ、第二演算用計算機１０３ｂ、第ｎ演算用計算機１０３ｎと存在するｎ個の演算用計算機１０３は、共通のハードウェア構成である。図示しない、略同じ記憶容量のＲＡＭ、同じ記憶内容のＢＩＯＳ等が記憶されているＲＯＭ、略同じ演算能力のＣＰＵ、同じ記憶内容のＯＳ及びアプリケーションプログラムが記憶されているＨＤＤ等の不揮発性ストレージ及び略同じネットワークインターフェースカード（以下「ＮＩＣ」）が、夫々同じ構成のバスで接続される。
各々の演算用計算機１０３は、二重化ネットワーク１０４を通じて送られる保守用計算機１０２の指示に従い、共通のＯＳ上に共通のアプリケーションプログラムを実行する。
入出力装置１０５は、各々の演算用計算機１０３から得られる実行結果を比較照合して、多数決方式で別セグメントネットワーク１０６上の任意のネットワーク機器１０７に対し、結果出力を行う。
【００１４】
このような構成のフォールトトレラントシステム１０１の、特に複数の演算用計算機１０３上で稼働するＯＳの可用性と信頼性を検証するため、本実施形態のフォールトトレラントシステム１０１では、テストプログラムとテストプログラム制御機能を提供する。
テストプログラム及びテストプログラム制御機能を実行する際、点線Ｌ１１０より下に存在する入出力装置１０５、別セグメントネットワーク１０６及びネットワーク機器１０７は不要である。
【００１５】
図２は、保守用計算機１０２の機能ブロック図である。
保守用計算機１０２は、操作者のマンマシンインターフェースとして、操作者の操作を受け付ける操作部２０１と、種々の情報を表示するディスプレイである表示部２０２を有する。操作部２０１と表示部２０２は入出力制御部２０３に接続され、入出力制御部２０３は更に二重化ネットワーク１０４に接続されている。
プログラム起動制御部２０４は、入出力制御部２０３を通じて指定された演算用計算機１０３に対して指定されたテストプログラムの実行を指示する。
同期検出部２０５は、入出力制御部２０３を通じて指定された演算用計算機１０３が同期状態にあるか否かを検出する。
表示部２０２と操作部２０１と入出力制御部２０３は、テスト機能制御テーブル２０６を作成して編集するための、所定のユーザインターフェースを提供する。
【００１６】
図３は、演算用計算機１０３の機能ブロック図である。
演算用計算機１０３には、二重化ネットワーク１０４とのインターフェースと全体制御を行う入出力制御部３０１に、テストプログラムである擬似故障処理部３０２と、再組み込み処理部３０３と、通常演算処理部３０４と、ログ記録部３０５と、アドレス情報３０６が接続されている。
通常演算処理部３０４は、ＯＳ自体を含む、通常のアプリケーションプログラムが実行されることによって提供される機能を示す。
再組み込み処理部３０３は、ＯＳに含まれる、非同期状態から同期状態に復帰するための機能であり、保守用計算機１０２の指示を受けて起動される。
擬似故障処理部３０２は、演算用計算機１０３に対して周知のシャットダウンやハングアップ状態等を実行することで、演算用計算機１０３の故障状態を擬似的に生成する機能である。シャットダウン等、ＯＳの正常動作に支障を来すプログラムの実行は、ＯＳを操作する一般ユーザの権限（アカウント：account）では不可能なので、システム管理者の権限又はＯＳレベルの処理優先度等、ユーザプログラムより高い処理優先度で実行できる必要がある。
ログ記録部３０５は、ＯＳに備わっている、ログファイル３０７に実行状態と日時を記録する機能である。
アドレス情報３０６は、二重化ネットワーク１０４上で複数の演算用計算機１０３を一意に識別し、特定するためのアドレス情報が格納された不揮発性の情報であり、図示しない不揮発性ストレージ内に設けられるファイルに記憶されるか、或はディップスイッチ等のハードウェアとして設けられる。
【００１７】
図４は、テスト機能制御テーブル２０６の構造を示す概略図である。
テスト機能制御テーブル２０６は、計算機アドレスフィールドと、ＴＥＳＴコマンド名フィールドと、ウェイト時間フィールドと、同期フラグフィールドと、起動フラグフィールドと、異常フラグフィールドと、動作フラグフィールドよりなる。
計算機アドレスフィールドには、各々の演算用計算機１０３に割り当てられている、演算用計算機１０３を一意に識別するためのアドレス情報が格納される。
ＴＥＳＴコマンド名フィールドには、演算用計算機１０３にインストールされている、保守用計算機１０２の指示で実行しようとするテストプログラムのコマンド名が格納される。
ウェイト時間フィールドには、前述のテストプログラムを起動する前に設定する待ち時間が格納される。例えば、起動指示を与える際に１０秒の待ち時間を設定すると、起動を指示したテストプログラムを実行する前に１０秒間だけ待って、それから当該テストプログラムを起動する。
同期フラグフィールドには、同期検出部２０５によって指定された演算用計算機１０３が同期状態にあるか否かを検出した結果が、フラグとして格納される。
起動フラグフィールドには、指定された演算用計算機１０３が現在テストプログラムを起動した状態にあるか、或は再組み込み処理を指示した状態であるかを示すフラグが格納される。
異常フラグフィールドには、指定された演算用計算機１０３が再組み込み処理を失敗して、異常状態であるか否かを示すフラグが格納される。これは、起動フラグフィールドが論理の「偽」になってから所定時間以上経過しても同期フラグフィールドが論理の「偽」のまま、論理の「真」にならないことを以って、入出力制御部２０３が異常であると認識する。
動作フラグフィールドには、指定した演算用計算機１０３に対し、テストの実行を指示している状態であるか、テストの停止を指示している状態であるかを示すフラグが格納される。もし、テストプログラムが稼働中である時に、この動作フラグが「偽」になれば、当該テストプログラムの実行が終わり、再組み込み処理が完遂した後、テストプログラムを再度実行することなくテストは終了する。
【００１８】
テスト機能制御テーブル２０６は、保守用計算機１０２の図示しないＲＡＭ内か、或は図示しないＨＤＤ等の不揮発性ストレージに作成される。テスト機能制御テーブル２０６のレコードは、本実施形態に係るテストの対象となる演算用計算機１０３に対して作成される。
例えば、演算用計算機１０３が５台あったとして、第一の演算用計算機１０３と第二の演算用計算機１０３でテストプログラムを実行する場合、テスト機能制御テーブル２０６のレコードは、第一の演算用計算機１０３と第二の演算用計算機１０３についてのみ作成される。
保守用計算機１０２の入出力制御部２０３は、ユーザの支持によってテスト機能制御テーブル２０６が作成され、操作部２０１を通じてテスト機能を実行する指示が発行されると、テスト機能制御テーブル２０６を１レコードずつ読み込み、１レコード毎に独立したプロセスにて、図５にて説明するフローチャートの処理を実行する。
【００１９】
図５は、保守用計算機１０２上で稼働する、テスト機能制御プログラムの動作の流れを示すフローチャートである。このフローチャートは、テスト機能制御テーブル２０６の１レコード毎に実行される処理である。
処理を開始すると（Ｓ５０１）、保守用計算機１０２の入出力制御部２０３は、テスト機能制御テーブル２０６の指定されたレコードのウェイト時間フィールドに記されている待ち時間だけ、時間の計時だけ行う（Ｓ５０２）。そして、計時が終了したら、入出力制御部２０３はプログラム起動制御部２０４を制御する。プログラム起動制御部２０４は、入出力制御部２０３を通じて、テスト機能制御テーブル２０６の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機１０３上で、テスト機能制御テーブル２０６の指定されたレコードのＴＥＳＴコマンド名フィールドに記されているコマンドを実行する（Ｓ５０３）。そして、指定されたコマンドの起動が完了したか否かを確認し（Ｓ５０４）、起動が完了するまで待機する。
【００２０】
コマンドの起動が完了したら（Ｓ５０４のＹＥＳ）、次に入出力制御部２０３は同期検出部２０５を通じて、テスト機能制御テーブル２０６の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機１０３の同期が外れるための、所定の待ち時間だけ、時間の計時を行う（Ｓ５０５）。そして、テスト機能制御テーブル２０６の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機１０３の同期が外れたか否かを確認し（Ｓ５０６）、同期が外れるまでステップＳ５０５及びＳ５０６を繰り返す。
【００２１】
ステップＳ５０６を経て、指定された演算用計算機１０３の同期が外れたら、入出力制御部２０３は当該演算用計算機１０３に対し、再組み込みを指示する（Ｓ５０７）。次に、入出力制御部２０３は予め定められた所定時間を計数し、再組み込み処理が完遂するまで待つ（Ｓ５０８）。その後、入出力制御部２０３は同期検出部２０５を通じて、演算用計算機１０３が同期して、再組み込み処理が成功したか否かを確認する（Ｓ５０９）。
【００２２】
ステップＳ５０９にて、再組み込みが成功したなら（Ｓ５０９のＹＥＳ）、次に入出力制御部２０３はテスト機能制御テーブル２０６の指定されたレコードの動作フラグフィールドを見て、ユーザから停止の指示があるか否かを確認する（Ｓ５１０）。動作フラグフィールドが論理の「真」であれば（Ｓ５１０のＮＯ）、再びステップＳ５０２から処理を繰り返す。動作フラグフィールドが論理の「偽」であれば（Ｓ５１０のＹＥＳ）、一連の処理を終了する（Ｓ５１１）。
【００２３】
ステップＳ５０９にて、再組み込みが失敗したなら（Ｓ５０９のＮＯ）、当該演算用計算機１０３のログをログ記録部３０５を通じてログファイル３０７から読み込んで、図示しない不揮発性ストレージに記憶して（Ｓ５１２）、一連の処理を終了する（Ｓ５１１）。
【００２４】
本実施形態では以下の応用例が可能である。
（１）図４のテスト機能制御テーブル２０６を、動作フラグフィールドの代わりに繰り返し回数を格納するフィールドを設けても良い。そして、特定の計算機アドレスに対してウェイト時間を異ならせた複数のレコードを持たせると、異なるウェイト時間毎に設定した繰り返し回数だけテストを反復実行することができる。
【００２５】
本実施形態では、フォールトトレラントシステム１０１を開示した。
保守用計算機１０２は、指定した演算用計算機１０３に対し、演算用計算機１０３に組み込まれている擬似故障処理部３０２を実行させる命令を、プログラム起動制御部２０４から送信する。
入出力制御部２０３は、同期検出部２０５が演算用計算機１０３の同期が外れたことを確認したことを受けて、演算用計算機１０３の再組み込み処理部３０３に再組み込みを指示する。その後、入出力制御部２０３は、同期検出部２０５が演算用計算機１０３の再組み込み処理が失敗したことを確認したら、ログ記録部３０５を通じてログファイル３０７からエラーログを収集する。
以上の一連の動作は、テスト機能制御テーブル２０６に記載された内容に従って、各演算用計算機１０３に対して繰り返し実行される。
このため、効率よくエラーログを収集できる。
【００２６】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
【符号の説明】
【００２７】
１０１…フォールトトレラントシステム、１０２…保守用計算機、１０３…演算用計算機、１０４…二重化ネットワーク、１０５…入出力装置、１０６…別セグメントネットワーク、１０７…ネットワーク機器、２０１…操作部、２０２…表示部、２０３…入出力制御部、２０４…プログラム起動制御部、２０５…同期検出部、２０６…テスト機能制御テーブル、３０１…入出力制御部、３０２…擬似故障処理部、３０３…再組み込み処理部、３０４…通常演算処理部、３０５…ログ記録部、３０６…アドレス情報、３０７…ログファイル
【図１】
2013089142.tif 000003
【図２】
2013089142.tif 000004
【図３】
2013089142.tif 000005
【図４】
2013089142.tif 000006
【図５】
2013089142.tif 000007