説明

フォールトトレラントシステム

【課題】可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供する。
【解決手段】保守用計算機102は、指定した演算用計算機103に対し、演算用計算機103に組み込まれている擬似故障処理部302を実行させる命令を、プログラム起動制御部204から送信する。入出力制御部203は、同期検出部205が演算用計算機103の同期が外れたことを確認したことを受けて、演算用計算機103の再組み込み処理部303に再組み込みを指示する。その後、入出力制御部203は、同期検出部205が演算用計算機103の再組み込み処理が失敗したことを確認したら、ログ記録部305を通じてログファイル307からエラーログを収集する。以上の一連の動作は、テスト機能制御テーブル206に記載された内容に従って、各演算用計算機103に対して繰り返し実行される。このため、効率よくエラーログを収集できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フォールトトレラントシステムに関する。
より詳細には、フォールトトレラントシステムのOSを試験するプログラムとエラーログを収集する仕組みに関する。
【背景技術】
【0002】
産業用途の計算機によっては、高可用性(High availability、高稼働率ともいう)及び高信頼性(High reliability)を要求される場合がある。これらの要求を満足する手法の一つとして、計算機を多重化したフォールトトレラントシステムがある。
フォールトトレラントシステムには、ネットワーク上に一以上の保守用計算機と、二以上の演算用計算機群が相互に接続されている。そして、保守用計算機上で稼働するソフトウェアが、各々の演算用計算機に同一のプログラムを同時に実行する、ソフト同期制御を行う。更に、各演算用計算機の実行結果を比較照合して、多数決方式で結果出力を行う入出力装置がネットワーク上に存在する。つまり、単に計算機の存在を多重化させるのではなく、複数の計算機に対して、同時に同じ内容のプログラムを実行させ、その上でそれら複数の計算機の演算結果も多重化している。演算結果を多数決方式で出力するので、演算用計算機が三台以上であれば、一台が何らかのエラーを生じたとしても残り二台が正常に稼動していれば、システム全体として正しい演算結果を出力できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−141513号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなフォールトトレラントシステムでは、保守用計算機が複数の演算用計算機を常時監視しており、複数の演算用計算機の内、動作(演算結果)が異なる少数派の演算用計算機が発生した場合には、それを異常が発生した演算用計算機とみなして、保守用計算機102が当該演算用計算機を同期状態から離脱させる。そして、多数派となった演算用計算機のみで同期状態を続ける。
一方、異常が発生した演算用計算機に対しては、異常の発生原因を解消した後、演算用計算機上で稼働するオペレーティングシステム(以下「OS」)に搭載されている同期状態への再組込み機能を実行することにより、演算用計算機の運用を停止させることなく、前述の同期状態への復帰が可能となる。
【0005】
前述の再組込み機能を用いて、異常が発生している演算用計算機を同期状態に復帰させるためには、現在同期状態で動作している他の演算用計算機内の中央演算装置上で動作している実処理と、異常を回復させた非同期状態の演算用計算機内の中央演算装置上で動作している実処理間で完全に処理を一致させるタイミングが必要となる。
しかし、各演算用計算機における中央処理装置は、再組込み機能の実行処理だけでなく、OSの他の処理や、OSでは発生することを事前に把握できないネットワーク送受信処理、或はユーザアプリケーションによる処理の影響等により、同期への再組込みが失敗することがある。
そのため、課題に対する解決策として、ユーザアプリケーション上で動作するフォールトトレラントシステム動作検証装置が存在するが、OSよりも処理優先度が低い、ユーザアプリケーションの一部であるため、OS単体の動作検証には使用することができないという問題点がある。
しかし、前記のような構成のフォールトトレラントシステムに搭載するOSの開発の現場においては、OSによる他の処理、ネットワーク送受信処理、ユーザアプリケーションによる処理等、突発的に発生する処理のタイミングと、OSの再組込み機能実行のタイミングの兼ね合いで再組込みが成功するタイミングをOS単体で十分に検証しなければならない。
また、産業用途で使用するため、再組み込みを幾度となく繰り返し実施しても、同期制御状態での長期連続稼動性に問題が発生しないことも十分に検証する必要がある。
【0006】
つまり、フォールトトレラントシステムをより完全なシステムとするためには、フォールトトレラントシステムの高可用性及び高信頼性を試験するツールが必要である。この試験ツールには、OSを含むシステム全体に対して再組込み機能以外の様々な要因で偶発的に発生する処理や、ユーザ操作による再組込処理のタイミングの兼ね合いに起因する再組込み機能の不具合を十分に検出する機能と、再組み込み処理を幾度となく繰り返し実施しても同期制御状態での長期連続稼動性に問題が発生しないことと、外部装置との通信処理とタイミングに関わらず再組込み処理に失敗しないことを十分に検証する機能が求められる。
【0007】
本発明は係る課題を解決し、可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のフォールトトレラントシステムは、第一演算用計算機と、第二演算用計算機と、保守用計算機がネットワークを介して接続されている構成である。
第一演算用計算機は、OSの動作に所定の異常状態を生じさせる擬似故障処理部と、ネットワーク上に存在する他の計算機との同期処理を行う再組み込み処理部と、OSの動作をログファイルに記録するログ記録部とを具備する。
第二演算用計算機は、第一演算用計算機と共通のハードウェア構成である。
保守用計算機は、第一演算用計算機とネットワークを介して接続され、第一演算用計算機の擬似故障処理部に対して起動命令を生成するプログラム起動制御部と、第一演算用計算機と第二演算用計算機との同期状態を検出する同期検出部と、プログラム起動制御部から起動命令を生成した後、再組み込み処理部に再組み込み処理を指示し、その後に第一演算用計算機の再組み込み処理部が同期処理に失敗したことを同期検出部が検出したことを受けて、ログ記録部からログファイルを読み込む入出力制御部とを具備する。
【0009】
保守用計算機は、第一演算用計算機に対し、第一演算用計算機に組み込まれている擬似故障処理部を実行させる命令を、プログラム起動制御部から送信する。
同期検出部が第一演算用計算機の同期が外れたことを確認したら、入出力制御部が第一演算用計算機の再組み込み処理部に再組み込みを指示する。その後、入出力制御部は、同期検出部が第一演算用計算機の再組み込み処理が失敗したことを確認したら、ログ記録部を通じてログファイルを読み込む。
このため、効率よくエラーログを収集できる。
【発明の効果】
【0010】
本発明により、可用性と信頼性を向上させるために必要なテスト機能を備えるフォールトトレラントシステムを提供できる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態であるフォールトトレラントシステムの全体構成を示すブロック図である。
【図2】端末の機能ブロック図である。
【図3】画面キャプチャの概要及び画面キャプチャファイルを説明する概略説明図である。
【図4】コメント情報ファイルの詳細を示す概略図である。
【図5】画面キャプチャ条件定義一覧画面と、条件定義ファイルの詳細を示す概略図である。
【発明を実施するための形態】
【0012】
[全体構成]
図1は、本発明の一実施形態であるフォールトトレラントシステムの全体構成を示すブロック図である。
フォールトトレラントシステム101は、保守用計算機102と、複数の演算用計算機103が、二重化ネットワーク104にて相互接続されている。図1では、演算用計算機103について、一番目の演算用計算機である第一演算用計算機103aと、二番目の演算用計算機である第二演算用計算機103bと、n番目の演算用計算機である第n演算用計算機103nを図示している。
更に、二重化ネットワーク104には、入出力装置105を介して、別セグメントネットワーク106が接続されており、別セグメントネットワーク106には任意のネットワーク機器107が接続されている。
【0013】
第一演算用計算機103a、第二演算用計算機103b、第n演算用計算機103nと存在するn個の演算用計算機103は、共通のハードウェア構成である。図示しない、略同じ記憶容量のRAM、同じ記憶内容のBIOS等が記憶されているROM、略同じ演算能力のCPU、同じ記憶内容のOS及びアプリケーションプログラムが記憶されているHDD等の不揮発性ストレージ及び略同じネットワークインターフェースカード(以下「NIC」)が、夫々同じ構成のバスで接続される。
各々の演算用計算機103は、二重化ネットワーク104を通じて送られる保守用計算機102の指示に従い、共通のOS上に共通のアプリケーションプログラムを実行する。
入出力装置105は、各々の演算用計算機103から得られる実行結果を比較照合して、多数決方式で別セグメントネットワーク106上の任意のネットワーク機器107に対し、結果出力を行う。
【0014】
このような構成のフォールトトレラントシステム101の、特に複数の演算用計算機103上で稼働するOSの可用性と信頼性を検証するため、本実施形態のフォールトトレラントシステム101では、テストプログラムとテストプログラム制御機能を提供する。
テストプログラム及びテストプログラム制御機能を実行する際、点線L110より下に存在する入出力装置105、別セグメントネットワーク106及びネットワーク機器107は不要である。
【0015】
図2は、保守用計算機102の機能ブロック図である。
保守用計算機102は、操作者のマンマシンインターフェースとして、操作者の操作を受け付ける操作部201と、種々の情報を表示するディスプレイである表示部202を有する。操作部201と表示部202は入出力制御部203に接続され、入出力制御部203は更に二重化ネットワーク104に接続されている。
プログラム起動制御部204は、入出力制御部203を通じて指定された演算用計算機103に対して指定されたテストプログラムの実行を指示する。
同期検出部205は、入出力制御部203を通じて指定された演算用計算機103が同期状態にあるか否かを検出する。
表示部202と操作部201と入出力制御部203は、テスト機能制御テーブル206を作成して編集するための、所定のユーザインターフェースを提供する。
【0016】
図3は、演算用計算機103の機能ブロック図である。
演算用計算機103には、二重化ネットワーク104とのインターフェースと全体制御を行う入出力制御部301に、テストプログラムである擬似故障処理部302と、再組み込み処理部303と、通常演算処理部304と、ログ記録部305と、アドレス情報306が接続されている。
通常演算処理部304は、OS自体を含む、通常のアプリケーションプログラムが実行されることによって提供される機能を示す。
再組み込み処理部303は、OSに含まれる、非同期状態から同期状態に復帰するための機能であり、保守用計算機102の指示を受けて起動される。
擬似故障処理部302は、演算用計算機103に対して周知のシャットダウンやハングアップ状態等を実行することで、演算用計算機103の故障状態を擬似的に生成する機能である。シャットダウン等、OSの正常動作に支障を来すプログラムの実行は、OSを操作する一般ユーザの権限(アカウント:account)では不可能なので、システム管理者の権限又はOSレベルの処理優先度等、ユーザプログラムより高い処理優先度で実行できる必要がある。
ログ記録部305は、OSに備わっている、ログファイル307に実行状態と日時を記録する機能である。
アドレス情報306は、二重化ネットワーク104上で複数の演算用計算機103を一意に識別し、特定するためのアドレス情報が格納された不揮発性の情報であり、図示しない不揮発性ストレージ内に設けられるファイルに記憶されるか、或はディップスイッチ等のハードウェアとして設けられる。
【0017】
図4は、テスト機能制御テーブル206の構造を示す概略図である。
テスト機能制御テーブル206は、計算機アドレスフィールドと、TESTコマンド名フィールドと、ウェイト時間フィールドと、同期フラグフィールドと、起動フラグフィールドと、異常フラグフィールドと、動作フラグフィールドよりなる。
計算機アドレスフィールドには、各々の演算用計算機103に割り当てられている、演算用計算機103を一意に識別するためのアドレス情報が格納される。
TESTコマンド名フィールドには、演算用計算機103にインストールされている、保守用計算機102の指示で実行しようとするテストプログラムのコマンド名が格納される。
ウェイト時間フィールドには、前述のテストプログラムを起動する前に設定する待ち時間が格納される。例えば、起動指示を与える際に10秒の待ち時間を設定すると、起動を指示したテストプログラムを実行する前に10秒間だけ待って、それから当該テストプログラムを起動する。
同期フラグフィールドには、同期検出部205によって指定された演算用計算機103が同期状態にあるか否かを検出した結果が、フラグとして格納される。
起動フラグフィールドには、指定された演算用計算機103が現在テストプログラムを起動した状態にあるか、或は再組み込み処理を指示した状態であるかを示すフラグが格納される。
異常フラグフィールドには、指定された演算用計算機103が再組み込み処理を失敗して、異常状態であるか否かを示すフラグが格納される。これは、起動フラグフィールドが論理の「偽」になってから所定時間以上経過しても同期フラグフィールドが論理の「偽」のまま、論理の「真」にならないことを以って、入出力制御部203が異常であると認識する。
動作フラグフィールドには、指定した演算用計算機103に対し、テストの実行を指示している状態であるか、テストの停止を指示している状態であるかを示すフラグが格納される。もし、テストプログラムが稼働中である時に、この動作フラグが「偽」になれば、当該テストプログラムの実行が終わり、再組み込み処理が完遂した後、テストプログラムを再度実行することなくテストは終了する。
【0018】
テスト機能制御テーブル206は、保守用計算機102の図示しないRAM内か、或は図示しないHDD等の不揮発性ストレージに作成される。テスト機能制御テーブル206のレコードは、本実施形態に係るテストの対象となる演算用計算機103に対して作成される。
例えば、演算用計算機103が5台あったとして、第一の演算用計算機103と第二の演算用計算機103でテストプログラムを実行する場合、テスト機能制御テーブル206のレコードは、第一の演算用計算機103と第二の演算用計算機103についてのみ作成される。
保守用計算機102の入出力制御部203は、ユーザの支持によってテスト機能制御テーブル206が作成され、操作部201を通じてテスト機能を実行する指示が発行されると、テスト機能制御テーブル206を1レコードずつ読み込み、1レコード毎に独立したプロセスにて、図5にて説明するフローチャートの処理を実行する。
【0019】
図5は、保守用計算機102上で稼働する、テスト機能制御プログラムの動作の流れを示すフローチャートである。このフローチャートは、テスト機能制御テーブル206の1レコード毎に実行される処理である。
処理を開始すると(S501)、保守用計算機102の入出力制御部203は、テスト機能制御テーブル206の指定されたレコードのウェイト時間フィールドに記されている待ち時間だけ、時間の計時だけ行う(S502)。そして、計時が終了したら、入出力制御部203はプログラム起動制御部204を制御する。プログラム起動制御部204は、入出力制御部203を通じて、テスト機能制御テーブル206の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機103上で、テスト機能制御テーブル206の指定されたレコードのTESTコマンド名フィールドに記されているコマンドを実行する(S503)。そして、指定されたコマンドの起動が完了したか否かを確認し(S504)、起動が完了するまで待機する。
【0020】
コマンドの起動が完了したら(S504のYES)、次に入出力制御部203は同期検出部205を通じて、テスト機能制御テーブル206の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機103の同期が外れるための、所定の待ち時間だけ、時間の計時を行う(S505)。そして、テスト機能制御テーブル206の指定されたレコードの計算機アドレスフィールドに記されている演算用計算機103の同期が外れたか否かを確認し(S506)、同期が外れるまでステップS505及びS506を繰り返す。
【0021】
ステップS506を経て、指定された演算用計算機103の同期が外れたら、入出力制御部203は当該演算用計算機103に対し、再組み込みを指示する(S507)。次に、入出力制御部203は予め定められた所定時間を計数し、再組み込み処理が完遂するまで待つ(S508)。その後、入出力制御部203は同期検出部205を通じて、演算用計算機103が同期して、再組み込み処理が成功したか否かを確認する(S509)。
【0022】
ステップS509にて、再組み込みが成功したなら(S509のYES)、次に入出力制御部203はテスト機能制御テーブル206の指定されたレコードの動作フラグフィールドを見て、ユーザから停止の指示があるか否かを確認する(S510)。動作フラグフィールドが論理の「真」であれば(S510のNO)、再びステップS502から処理を繰り返す。動作フラグフィールドが論理の「偽」であれば(S510のYES)、一連の処理を終了する(S511)。
【0023】
ステップS509にて、再組み込みが失敗したなら(S509のNO)、当該演算用計算機103のログをログ記録部305を通じてログファイル307から読み込んで、図示しない不揮発性ストレージに記憶して(S512)、一連の処理を終了する(S511)。
【0024】
本実施形態では以下の応用例が可能である。
(1)図4のテスト機能制御テーブル206を、動作フラグフィールドの代わりに繰り返し回数を格納するフィールドを設けても良い。そして、特定の計算機アドレスに対してウェイト時間を異ならせた複数のレコードを持たせると、異なるウェイト時間毎に設定した繰り返し回数だけテストを反復実行することができる。
【0025】
本実施形態では、フォールトトレラントシステム101を開示した。
保守用計算機102は、指定した演算用計算機103に対し、演算用計算機103に組み込まれている擬似故障処理部302を実行させる命令を、プログラム起動制御部204から送信する。
入出力制御部203は、同期検出部205が演算用計算機103の同期が外れたことを確認したことを受けて、演算用計算機103の再組み込み処理部303に再組み込みを指示する。その後、入出力制御部203は、同期検出部205が演算用計算機103の再組み込み処理が失敗したことを確認したら、ログ記録部305を通じてログファイル307からエラーログを収集する。
以上の一連の動作は、テスト機能制御テーブル206に記載された内容に従って、各演算用計算機103に対して繰り返し実行される。
このため、効率よくエラーログを収集できる。
【0026】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
【符号の説明】
【0027】
101…フォールトトレラントシステム、102…保守用計算機、103…演算用計算機、104…二重化ネットワーク、105…入出力装置、106…別セグメントネットワーク、107…ネットワーク機器、201…操作部、202…表示部、203…入出力制御部、204…プログラム起動制御部、205…同期検出部、206…テスト機能制御テーブル、301…入出力制御部、302…擬似故障処理部、303…再組み込み処理部、304…通常演算処理部、305…ログ記録部、306…アドレス情報、307…ログファイル

【特許請求の範囲】
【請求項1】
OSの動作に所定の異常状態を生じさせる擬似故障処理部と、ネットワーク上に存在する他の計算機との同期処理を行う再組み込み処理部と、前記OSの動作をログファイルに記録するログ記録部とを具備する第一演算用計算機と、
前記第一演算用計算機と前記ネットワークを介して接続され、前記第一演算用計算機と共通のハードウェア構成である第二演算用計算機と、
前記第一演算用計算機と前記ネットワークを介して接続され、前記第一演算用計算機の前記擬似故障処理部に対して起動命令を生成するプログラム起動制御部と、前記第一演算用計算機と前記第二演算用計算機との同期状態を検出する同期検出部と、前記プログラム起動制御部から前記起動命令を生成した後、前記再組み込み処理部に再組み込み処理を指示し、その後に前記第一演算用計算機の前記再組み込み処理部が同期処理に失敗したことを前記同期検出部が検出したことを受けて、前記ログ記録部から前記ログファイルを読み込む入出力制御部とを具備する保守用計算機と
を有するフォールトトレラントシステム。
【請求項2】
前記擬似故障処理部は、前記OS上で稼働するユーザプログラムより高い優先度で実行される、請求項1記載のフォールトトレラントシステム。
【請求項3】
前記入出力制御部は、前記プログラム起動制御部と前記同期検出部を繰り返し実行すべく制御する、請求項2記載のフォールトトレラントシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−89142(P2013−89142A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−231108(P2011−231108)
【出願日】平成23年10月20日(2011.10.20)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】