(57)【要約】【課題】障害を検出し誤ったデータの出力を防止し、システムを継続して動作させる。【解決手段】本発明の計算機システムは、同じ処理を並列に実行する複数の計算機１０１〜１０４と、前記計算機からの処理結果を照合する複数の照合機１１１〜１１４とを備える計算機システム１であって、前記計算機は、自身の稼動状態を多重化ネットワーク１０を介して送信すると共に、他の計算機の稼動状態を多重化ネットワーク１０を介して受信する送受信機能２０３、２０５と、他の計算機の障害を検出する第１障害検出機能２２１とを有し、前記照合機は、自身の稼動状態を多重化ネットワーク１０を介して送信すると共に、他の照合機の稼動状態を多重化ネットワーク１０を介して受信する送受信機能３０３、３０５、３３３、３３５と、前記計算機の障害を検出する第２障害検出機能３２１、３５１と、他の照合機の障害を検出する第３障害検出機能３２１、３５１とを有する。【選択図】図１
2011076262.tif 000002
【特許請求の範囲】
【請求項１】
同じ処理を並列に実行する複数の計算機と、前記計算機に多重化ネットワークを介して接続され前記計算機からの処理結果を照合する複数の照合機とを備える計算機システムであって、
前記計算機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の計算機の稼動状態を前記多重化ネットワークを介して受信する送受信機能を有し、
前記照合機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の照合機の稼動状態および前記計算機の稼動状態を前記多重化ネットワークを介して受信する送受信機能を有し、
さらに、
前記計算機は、他の計算機の障害を検出する第１障害検出機能を有し、
前記照合機は、前記計算機の障害を検出する第２障害検出機能と他の照合機の障害を検出する第３障害検出機能とを有する
ことを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムにおいて、
障害が発生した前記計算機は、前記照合機によって、その障害部位または障害レベルに応じて、再起動または停止処理を実行される第１障害被対応機能を有し、
前記各照合機は、前記複数の計算機の演算結果を比較し、該比較結果を前記照合機間で照合することにより、前記障害が発生した計算機に対し、その障害部位または障害レベルに応じて、前記再起動または前記停止処理を実行させる障害対応機能を有する
ことを特徴とする計算機システム。
【請求項３】
請求項１または請求項２に記載の計算機システムにおいて、
障害が発生した前記計算機は、前記他の計算機によって、その障害部位または障害レベルに応じて、再起動または停止処理を実行される第２障害被対応機能を有する
ことを特徴とする計算機システム。
【請求項４】
請求項１から請求項３のうちの何れか一項に記載の計算機システムにおいて、
前記複数の照合機は、それぞれ主系および主系以外の他の従系として動作し、
障害が発生した主系動作の前記照合機は、従系動作の前記照合機によって停止処理を実行される第３障害被対応機能を有する
ことを特徴とする計算機システム。
【請求項５】
請求項１から請求項４のうちの何れか一項に記載の計算機システムにおいて、
前記計算機と前記照合機は、前記稼動状態の情報を状態管理手段で相互に共有する
ことを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムにおいて、
前記計算機と前記照合機は、前記主従系状態の情報を前記状態管理手段で相互に共有する
ことを特徴とする計算機システム。
【請求項７】
同じ処理を並列に実行する複数の計算機と、前記計算機に多重化ネットワークを介して接続され前記計算機からの処理結果を照合する複数の照合機とを備える計算機システムの方法であって、
前記計算機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の計算機の稼動状態を前記多重化ネットワークを介して受信し、
前記照合機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の照合機の稼動状態および前記計算機の稼動状態を前記多重化ネットワークを介して受信し、
さらに、
前記計算機は、他の計算機の障害を検出し、
前記照合機は、前記計算機の障害を検出するとともに、他の照合機の障害を検出する
ことを特徴とする計算機システムの方法。
【請求項８】
請求項７に記載の計算機システムの方法において、
障害が発生した前記計算機は、前記照合機によって、その障害部位または障害レベルに応じて、再起動または停止処理を実行され、
前記各照合機は前記複数の計算機の演算結果を比較し、該比較結果を前記照合機間で照合することにより、前記障害が発生した計算機に対し、その障害部位または障害レベルに応じて、前記再起動または前記停止処理を実行させる
ことを特徴とする計算機システムの方法。
【請求項９】
請求項７または請求項８に記載の計算機システムの方法において、
障害が発生した前記計算機は、前記他の計算機によって、その障害部位または障害レベルに応じて、再起動または停止処理を実行される
ことを特徴とする計算機システムの方法。
【請求項１０】
請求項７から請求項９のうちの何れか一項に記載の計算機システムの方法において、
前記複数の照合機は、それぞれ主系および主系以外の他の従系として動作し、
障害が発生した主系動作の前記照合機は、従系動作の前記照合機によって停止処理を実行される
ことを特徴とする計算機システムの方法。
【請求項１１】
請求項７から請求項１０のうちの何れか一項に記載の計算機システムの方法において、
前記計算機と前記照合機は、前記稼動状態の情報を状態管理手段で相互に共有する
ことを特徴とする計算機システムの方法。
【請求項１２】
請求項１１に記載の計算機システムの方法において、
前記計算機と前記照合機は、前記主従系状態の情報を前記状態管理手段で相互に共有する
ことを特徴とする計算機システムの方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントシステム（Fault torelant system）における高信頼性制御を実行する計算機システムおよびその方法に関する。
【背景技術】
【０００２】
従来から、計算機の構成部品の一部が故障しても正常に処理を続行するシステム計算機であるフォールトトレラントシステムが知られている。
例えば、分散配置に適したフォールトトレラントシステムの構成が、特許文献１に記載されている。このフォールトトレラントシステムは、複数のプロセッシングノードと、出力選択ノードと、これらを接続するネットワークにより構成される。各プロセッシングノードは、自己診断機能によって検出した障害の発生状況を表す障害発生情報をデータと共に出力選択ノードに送る。
【０００３】
出力選択ノードは、各プロセッシングノードにおけるデータ処理の結果のうち最も信頼度の高いデータを選択して出力信号を与える。詳細には、出力選択ノードの判定機能は、各プロセッシングノードからのデータ相互間の一致もしくは不一致と、各プロセッシングノードからの障害発生情報に基づき、最も信頼度の高いデータを判定し、これを選択機能に出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３１４７４４号公報（段落００１９〜００２２、図１等）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載のフォールトトレラントシステムは、各プロセッシングノードの自己診断機能が正常に働いた場合のみしか異常を検出することができない。例えば、データ送信そのものが不可となるハードウェアの異常、または自己診断機能の誤動作による誤出力については異常を検出することができない。
また、出力選択ノードが単独動作のため、出力選択ノードの障害でフォールトトレラントシステムが全系停止となる可能性がある。
【０００６】
本発明は上記実状に鑑み、ノードのハードウェア障害や自己診断機能が誤動作した場合でも障害を検出し誤ったデータを出力することを防ぎ、処理結果の比較照合部が障害となった場合でもシステムとしては継続して動作する計算機システムおよびその方法の提供を目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成すべく、第１の本発明に関わる計算機システムは、同じ処理を並列に実行する複数の計算機と、前記計算機に多重化ネットワークを介して接続され前記計算機からの処理結果を照合する複数の照合機とを備える計算機システムであって、前記計算機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の計算機の稼動状態を前記多重化ネットワークを介して受信する送受信機能を有し、前記照合機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の照合機の稼動状態および前記計算機の稼動状態を前記多重化ネットワークを介して受信する送受信機能を有し、さらに、前記計算機は、他の計算機の障害を検出する第１障害検出機能を有し、前記照合機は、前記計算機の障害を検出する第２障害検出機能と他の照合機の障害を検出する第３障害検出機能とを有している。
【０００８】
第２の本発明に関わる計算機システムの方法は、同じ処理を並列に実行する複数の計算機と、前記計算機に多重化ネットワークを介して接続され前記計算機からの処理結果を照合する複数の照合機とを備える計算機システムの方法であって、前記計算機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の計算機の稼動状態を前記多重化ネットワークを介して受信し、前記照合機は、自身の稼動状態を前記多重化ネットワークを介して送信すると共に、他の照合機の稼動状態および前記計算機の稼動状態を前記多重化ネットワークを介して受信し、さらに、前記計算機は、他の計算機の障害を検出し、前記照合機は、前記計算機の障害を検出するとともに、他の照合機の障害を検出している。
【発明の効果】
【０００９】
本発明によれば、障害を検出し誤ったデータを出力することを防ぎ、処理結果の比較照合部が障害となった場合でもシステムとしては継続して動作する計算機システムおよびその方法を実現できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の計算機システムの構成例を示す図である。
【図２】実施形態の計算機、照合機内に格納されている状態管理表を示す図である。
【図３】実施形態の各計算機のハードウェア構成例を示す図である。
【図４】実施形態の各照合機のハードウェア構成例を示す図である。
【図５】実施形態の計算機内のメインメモリ内に格納されるソフトウェアのブロック図である。
【図６】実施形態の照合機内のメインメモリ内に格納されるソフトウェアのブロック図である。
【図７】実施形態の計算機システムの正常時の動作フローチャートである。
【図８】実施形態の計算機の正常時における同期処理動作の詳細なフローチャートである。
【図９】(ａ)は、自系計算機の同期状態の状態遷移フローを示す図であり、(ｂ)は、他系計算機の同期状態の状態遷移フローを示す図である。
【図１０】実施形態の計算機が比較対象から外され同期離脱状態となった場合の例を示す図である。
【図１１】実施形態の照合機の正常時における動作を示す図である。
【図１２】実施形態の計算機が比較対象から外され同期離脱状態となった場合の例を示す図である。
【図１３】実施形態の照合機の構成制御が実施された例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、添付図面を参照して説明する。
図１は、本実施形態の計算機システム１の構成例を示す図である。
＜＜計算機システム１の構成＞＞
図１に示す実施形態の計算機システム１は、同じ演算または同じ処理を同時または並列に行う複数台の計算機１(１０１)〜計算機ｎ(１０４)と、計算機１(１０１)〜ｎ(１０４)に多重化ネットワーク１０を介して接続され、該演算処理または処理の結果を照合する照合機１(１１１)〜照合機ｍ(１１４)とを備えている。
なお、ｎは３以上の自然数であり、ｍは２以上の自然数である。また、多重化ネットワーク１０は、二重化以上の多重化ネットワークである。
【００１２】
ｎ台の複数の計算機１(１０１)〜計算機ｎ(１０４)は、それぞれ多重化ネットワーク１０に接続しており、ｍ台からなる複数の照合機１(１１１)〜照合機ｍ(１１４)はそれぞれ多重化ネットワーク１０と外部ネットワーク１１とに接続している。
なお、外部ネットワーク１１は、二重化以上の多重化ネットワークも可能とする。また、多重化ネットワーク１０、外部ネットワーク１１は、バス型でもスター型でもよく限定されない。
【００１３】
各計算機１(１０１)〜計算機ｎ(１０４)および各照合機１(１１１)〜照合機ｍ(１１４)は、それぞれシステム全体でユニークな番号(「計算機１」〜「計算機ｎ」、「照合機１」〜「照合機ｍ」)が、それぞれを識別するために割り振られており、同じ番号は存在しないものとする。また、ｎとｍは互いに独立であり、計算機と照合機の台数に相関は無いものとする。
各計算機１(１０１)〜計算機ｎ(１０４)は、それぞれ計算機１０１〜１０４、照合機１１１〜１１４の状態を示す状態管理表１２１〜１２４を備え、各照合機１(１１１)〜照合機ｍ(１１４)は、それぞれ計算機１０１〜１０４、照合機１１１〜１１４の状態を示す状態管理表１３１〜１３４を備えている。
【００１４】
状態管理表１２１〜１２４、１３１〜１３４は、計算機１０１〜１０４、照合機１１１〜１１４の状態を示すものであり、計算機１０１〜１０４、照合機１１１〜１１４で独立した状態管理表を持つことも可能であるが、本実施形態では計算機１０１〜１０４、照合機１１１〜１１４で統一した同一の状態管理表を持つこととする。つまり、状態管理表１２１〜１２４ならびに状態管理表１３１〜１３４は同一のものである。
【００１５】
図２は、計算機１(１０１)〜計算機ｎ(１０４)内に格納されている状態管理表１２１〜１２４、および照合機１(１１１)〜照合機ｍ(１１４)内に格納されている状態管理表１３１〜１３４を示す図である。
ここで、状態管理表１２１〜１２４、１３１〜１３４は、データベースとして構成してもよいし、テーブルとして構成してもよいし、ＰＳファイル(順ファイル)として構成してもよいし、その形態は限定されないのは勿論である。
【００１６】
図２において、名称１１０１は、計算機１〜計算機ｎ（図１参照）の各名称ならびに照合機１〜照合機ｍの各名称を表している。
なお、名称１１０１は、計算機１(１０１)〜計算機ｎ(１０４)ならびに照合機１(１１１)〜照合機ｍ(１１４)を示すユニークな番号(「計算機１」〜「計算機ｎ」、「照合機１」〜「照合機ｍ」)としてもよく、各計算機１(１０１)〜計算機ｎ(１０４)、各照合機１(１１１)〜照合機ｍ(１１４)を識別できれば限定されないのは勿論である。
区分１１０２は、名称１１０１に示された照合機１１１〜１１４の主系／従系を表している。なお、主系は任意の一つの照合機とし、従系は、主系以外のその他とする。図２に示す例では、照合機２が主系、照合機３〜照合機ｍが従系であることが分る。照合機１は「−」となっており、主系／従系のどちらでもないため、稼動していない状態ということが分る。このように、本実施形態では、主系／従系の区別があるのは、照合機１(１１１)〜照合機ｍ(１１４)とする。
【００１７】
ＩＰアドレス１１０３は、名称１１０１に対するＩＰ(Internet Protocol)アドレスであり、多重化ネットワーク１０(図１参照)に接続される計算機１０１〜１０４ならびに照合機１１１〜１１４のＩＰアドレスが、それぞれＡ１、Ｂ１、Ｃ１、・・・、Ｄ１、Ｅ１、Ｆ１、Ｇ１・・・、Ｈ１であることを表している。状態１（１１０４）では、計算機１(１０１)〜計算機ｎ(１０４)ならびに照合機１(１１１)〜照合機ｍ(１１４)の稼動状態を表している。図２に示す例では、計算機１と照合機１が停止、他の計算機２〜計算機ｎ、照合機２〜照合機ｍは稼動中であることが分る。
状態２（１１０５）では、計算機１〜計算機ｎの同期状態を表す。図２に示す例では、計算機１が同期離脱状態であり、計算機２、計算機３、…、計算機ｎが同期状態であることが分る。
【００１８】
＜＜計算機１０１〜１０４のハードウェア＞＞
図３は、図１に示す各計算機１０１〜計算機１０４のハードウェア構成例を示す図である。
図３に示すように、各計算機１０１〜１０４は、ＣＰＵ（Central Processing Unit、以下ＣＰＵと称す）２０１、メインメモリ２０２、Ｉ／Ｏ（Input Output：入出力制御装置、以下Ｉ／Ｏと称す）２０３、読み取りまたは書き込み可能な記憶部２０４、および通信Ｉ／Ｆ（Interface、以下、Ｉ／Ｆと称す）２０５を備えている。ＣＰＵ２０１、メインメモリ２０２、Ｉ／Ｏ２０３、記憶部２０４は、内部バス２１０で互いに接続されている。また、メインメモリ２０２には、本計算機システム１を実行するためのソフトウェア２２１が格納されている。
【００１９】
＜＜照合機１１１〜１１４のハードウェア＞＞
図４は、図１に示す各照合機１１１〜照合機１１４のハードウェア構成例を示す図である。
図４に示すように、各照合機１１１〜１１４は、照合部１(３７０)と照合部２(３８０)とを有する２重化に構成され、照合部１(３７０)、２(３８０)は、照合バス３６０で接続されている。
照合部１(３７０)、照合部２(３８０)は、それぞれ独立に同じ演算または同じ処理の結果の照合を行う。
照合部１(３７０)、照合部２(３８０)は、それぞれ同一のハードウェア上に構成することも、独立したハードウェア上に構成することも可能である。
【００２０】
照合部１(３７０)、照合部２(３８０)は、それぞれＣＰＵ３０１、３３１、メインメモリ３０２、３３２、Ｉ／Ｏ３０３、３３３、読み込みまたは書き込み可能な記憶部３０４、３３４、および通信Ｉ／Ｆ３０５、３３５を備えている。
照合部１(３７０)におけるＣＰＵ３０１、メインメモリ３０２、Ｉ／Ｏ３０３、記憶部３０４は、内部バス３１０で接続されている。同様に、照合部２(３８０)におけるＣＰＵ３３１、メインメモリ３３２、Ｉ／Ｏ３３３、記憶部３３４は、内部バス３４０で接続されている。また、メインメモリ３０２、３３２には、それぞれ、計算機システム１を実行するためのソフトウェア３２１、３５１が格納されている。
【００２１】
＜計算機１０１〜１０４内のソフトウェア２２１(図３参照)＞
図５は、図３に示す計算機１０１〜１０４内のメインメモリ２０２内に格納されるソフトウェア２２１のブロック図である。
図５に示すように、ソフトウェア２２１は、基本ＯＳ(Operating System)４０１、後記のタスク同期処理部を有するプロセッサ固有処理４０２、サブシステム４０３、システムサービス４０４、およびアプリケーション４０５を備えている。
基本ＯＳ４０１では、システムの資源管理、プロセス管理、タイマ管理等を行う。
【００２２】
プロセッサ固有処理４０２では、タスク同期処理部が計算機１０１〜１０４(図１参照)で同期して動作を行うための処理を行う。
サブシステム４０３では、ユーザによるタスクの開発、その実行をサポートする処理、並びに、演算結果または処理結果を多重化ネットワーク１０(図１参照)へ伝送させるための処理を行う。
システムサービス４０４では、本計算機システム１全体のサービスとして障害情報や統計情報の閲覧等を可能にするサービスを提供するための処理を行う。
アプリケーション４０５では、計算機システム１を各種用途に用いるためのプログラム処理を行う。アプリケーション４０５としては、例えば、鉄道の運行管理システムや電力系統の制御システム等がある。
【００２３】
＜照合機１１１〜１１４内のソフトウェア３２１、３５１(図４参照)＞
図６は、図４に示す照合機１１１〜１１４内のメインメモリ３０２、３３２内に格納されるソフトウェア３２１、３５１のブロック図である。
図６に示すように、照合機１１１〜１１４内のメインメモリ３０２、３３２内に格納されるソフトウェア３２１、３５１は、ＬＡＮ(Local Area Network)を利用するためのＬＡＮドライバ５０１、リソースを管理しハードウェアとソフトウェアコンポーネントのやりとりを管理するＨＫＰ（Hardware Kernel Program）５０２、基本ソフトであるＯＳ５０３、データ伝送を行うための伝送制御部５０４、インターネットの標準プロトコルのＴＣＰ(Transmission Control Protocol)／ＩＰ(Internet Protocol)５０５、および、コンピュータへの命令を処理するコマンド処理部５０６を備えている。
【００２４】
ＬＡＮドライバ５０１は、汎用ネットワークに接続するためのソフトウェアのモジュールであり、ＬＡＮドライバ５０１は、汎用ネットワークとしてEthernet(登録商標)に対応している。ＨＫＰ５０２では、図１に示す照合機１(１１１)〜照合機ｍ(１１４)の立上処理、割込受付、障害処理を行う。ＯＳ５０３では、照合機１１１〜１１４で実行される各タスクのスケジューリングや時計機能のタイマ管理を行う。伝送制御部５０４では、パケット通信におけるフレームの送受信制御を行う。
ＴＣＰ／ＩＰ５０５では、ＴＣＰ、ＵＤＰ(User Datagram Protocol)／ＩＰ、インターネット・プロトコルのデータグラム処理における誤りの通知や通信に関する情報の通知などのために使用されるＩＣＭＰ(Internet Control Message Protocol)のプロトコルに対応するための処理を行う。
コマンド処理部５０６では、各種コマンドの受付、ネットワーク状態の情報収集、ならびに障害管理を行う。
【００２５】
＜計算機システム１の正常時の動作＞
次に、計算機システム１の正常時の動作について、図７に従って説明する。なお、図７は、本実施形態に関わる計算機システム１の正常時の動作フローチャートである。
図７に示すように、本計算機システム１の動作は、主に、計算機による処理フロー６０１の動作と、照合機による処理フロー６１１の動作とを有している。
ここで、計算機による処理フロー６０１は、計算機１０１〜１０４全てで行われる。これは、例えば、この処理を一つの計算機でのみ行うとこの計算機がダウンした場合に、新たにこの処理を行う計算機を選択する処理が必要になることや、全ての計算機で同じ処理を行うことにより、一つの計算機がダウンしてもダウンした計算機の処理に影響されることなく、この処理が信頼性高く行なえる等の理由による。
【００２６】
計算機１０１〜１０４では、まず、各計算機１０１〜１０４で起動するタスクを決定する（図７のＳ６０２）。そして、計算機１０１〜１０４相互で決定したタスクを多数決処理(各計算機１０１〜１０４で決定したタスクのうち多いタスクを正とする一方、少ないタスクを誤とする処理)し、多いタスクを実行タスクとして決定するとともに、各計算機１０１〜１０４のデータが正常(それぞれの計算機１０１〜１０４で決定したタスクが多いタスクと一致する)か否か判定する（図７のＳ６０３）。
図７のＳ６０３において、多数決処理にて異常(計算機１０１〜１０４で決定したタスクが多いタスクと一致しない)と判断(図７のＳ６０３でＮｏ)された場合、当該異常のデータをもつ(多いタスクと一致しないタスクを決定した)計算機(１０１〜１０４の何れか)に対する他の計算機による異常処理１（図７のＳ６０４）によって当該異常のデータをもつ計算機(１０１〜１０４の何れか)が比較対象から外される。
【００２７】
計算機１０１〜１０４に対する異常処理１（図７のＳ６０４）後に、稼動する計算機が全て存在しなくなった場合（図７のＳ６０５でＮｏ）は、異常終了とする。一方、少なくとも１台の計算機(１０１〜１０４の何れか)が稼動している場合は（図７のＳ６０５でＹes）、前記多数決処理にて決定した実行タスクを、稼動している計算機(１０１〜１０４の何れか)で起動し実行する（図７のＳ６０６）。
一方、図７のＳ６０３において、多数決処理にて起動タスクを決定する際のデータが正常と判断された場合(図７のＳ６０３でＹｅｓ)、図７のＳ６０６に移行し、多数決処理にて決定した実行タスクを、稼動している計算機(１０１〜１０４の何れか)で起動し実行する。
【００２８】
図７のＳ６０６で実行された稼動中の計算機１０１〜１０４によるタスクの各演算結果は、図１に示すＬＡＮ１系１４１、ＬＡＮ２系１４２の両系に伝達され、全ての照合機１１１〜照合機１１４(図１参照)にそれぞれ送信される。
演算結果を受け取った照合機１１１〜１１４が、照合機による処理フロー６１１（図７参照）の処理を実施する。
なお、照合機１１１〜１１４による処理フロー６１１の処理は、全照合機１１１〜照合機１１４で実施されるが、演算結果を照合し、正しいと判定されたデータを外部ネットワーク１１(図１参照)へ送信するのは、主系の照合機のみである。
本計算機システム１では、一例として図１に示す照合機１１１を主系とする。主系、従系は、照合機１１１〜１１４のソフトウェア３２１、３５１(図４参照)の機能である構成制御処理で切り替えることが可能である。
【００２９】
以下では、主系の照合機１１１を例に、照合機１１１〜１１４による処理フロー６１１の処理について説明する。
照合機１１１では、計算機１０１〜１０４から送信されたデータを比較し（図７のＳ６１２）、送信されたデータが正常であるか否か確認する（図７のＳ６１３）。
データが正常であるか否かの確認方法の例として、計算機１０１〜１０４で演算結果にＣＲＣ（Cyclic Redundancy Check：巡回冗長検査、以下ＣＲＣとする）を付加したデータを照合機１１１に送信し、照合機１１１でＣＲＣを再計算する方法や、計算機１０１〜１０４にて送信データに一貫した通し番号を付加し、その番号でデータの連続性を確認する方法(通し番号チェック)等がある。
【００３０】
計算機１０１〜１０４から送信されたデータが正常だと判定された場合(図７のＳ６１３でＹｅｓ)、図７のＳ６１５に移行する。
一方、図７のＳ６１３で計算機１０１〜１０４から送信されたデータが異常だと判定された場合(図７のＳ６１３でＮｏ)、照合機１１１による計算機１０１〜１０４に対する異常処理２（図７のＳ６１４）によって、異常データを送信した計算機１０１〜１０４の何れかは、次回以降のデータ比較対象から外されることとなる。
次に、図４に示す照合機１１１内の照合部１(３７０)、照合部２(３８０)で演算結果を比較して照合し（図７のＳ６１５）、データが正常であるか(照合部１(３７０)の演算結果と照合部２(３８０)の演算結果とが一致したときがデータが正常であり、不一致のとき異常)確認する（図７のＳ６１６）。
【００３１】
データが正常(照合部１(３７０)の演算結果と照合部２(３８０)の演算結果とが一致)と判定された場合(図７のＳ６１６でＹｅｓ)は、図７のＳ６１９に移行する。
一方、図７のＳ６１６で、データが異常だ(照合部１(３７０)の演算結果と照合部２(３８０)の演算結果とが不一致)と判定された場合(図７のＳ６１６でＮｏ)は、主系の照合機１１１で障害が発生したと判定し、照合機に対する異常処理（図７のＳ６１７）を実施する。
【００３２】
照合機に対する異常処理（図７のＳ６１７）では、照合部１(３７０)の演算結果と照合部２(３８０)の演算結果とが不一致と判定された照合機１１１は、主系から従系へと切り換えられる。なお、異常処理は、他の照合機１１２〜１１４から、照合機１１１に対して行われる。
照合機に対する異常処理（図７のＳ６１７）後に稼動する照合機が全て存在しなくなった場合(図７のＳ６１８でＮｏ)、異常終了とする。一方、少なくとも１台の照合機(１１１〜１１４の何れか)が稼動している場合（図７のＳ６１８でＹｅｓ）、稼動の主系の照合機(１１１〜１１４の何れか)が比較結果の照合済みの演算結果を外部ネットワーク１１へ送信する（図７のＳ６１９）。
【００３３】
図８は、図７に示す計算機１０１〜１０４の正常時における同期処理動作の詳細なフローチャートである。図８の同期処理動作の詳細なフローチャートは、図７に示す計算機１０１〜１０４の正常時における計算機による処理フロー６０１を詳細に示したものである。
なお、前記したように、図８に示す処理は、全ての計算機１(１０１)〜計算機ｎ(１０４)にて行われる。
図８に示すように、各計算機１(１０１)〜計算機ｎ(１０４)にて、次に実行するタスク候補番号を含む同期データ７０１〜７０４を、他の計算機１(１０１)〜計算機ｎ(１０４)のプロセッサ固有処理４０２のタスク同期処理部に送信する。
【００３４】
計算機１(１０１)〜計算機ｎ(１０４)のタスク同期処理部では、同期データを受信し（図８のＳ７１１）、比較対象の計算機から同期データが取得できたかどうかを確認する（図８のＳ７１２）。なお、比較対象の計算機とは、基本は、全計算機１(１０１)〜計算機ｎ(１０４)であるが、最終的に１台の計算機になったら１台の計算機で動作を実行する。
図８のＳ７１２で、比較対象の計算機から同期データが取得できなかった場合(図８のＳ７１２でＮｏ)は、計算機から同期データが送信されなかったと判定し、同期データが送信されなかった計算機を比較対象から外す処理を行う（図８のＳ７１３）。
【００３５】
一方、図８のＳ７１２で比較対象の計算機から同期データを取得できた場合(図８のＳ７１２でＹｅｓ)、同期データを多数決処理(全同期データのうちの１番多数のデータを正とする処理)とし、次に実行するタスク候補を決定する（図８のＳ７１４）。ここで、多数決処理し決定したタスク候補番号と異なるタスク候補番号を含む同期データを送信した計算機は比較対象から外す処理を行ってもよい。
続いて、計算機１０１〜１０４のタスク同期処理部において決定された次に実行するタスク候補番号が、計算機１(１０１)〜計算機ｎ(１０４)に通知され（図８のＳ７１５）、決定されたタスクが起動（７２１〜７２４）される。
【００３６】
次に、自系計算機の同期状態について、図９(ａ)を用いて説明を行い、他系計算機の同期状態について、図９(ｂ)を用いて説明を行う。
図９は、計算機１０１〜１０４における同期状態の状態遷移フローを示す図であり、図９(ａ)は、自系計算機の同期状態の状態遷移フローを示す図であり、図９(ｂ)は、他系計算機の同期状態の状態遷移フローを示す図である。なお、自系とは自身のことであり、他系とは自身以外の他を意味する。すなわち、自系計算機とは自身の計算機を意味し、他系計算機とは自身の計算機以外の他の計算機を意味する。
計算機１０１〜１０４(図１参照)において、同期処理を行うために自系計算機の同期状態情報と他系計算機の同期状態情報を、状態管理表１２１〜１２４(図２参照)を用いて、それぞれの計算機１０１〜１０４が共有する。
【００３７】
＜自系計算機の同期状態＞
図９(ａ)に示す自系計算機の同期状態は、スタンバイ（図９(ａ)のＳ８０１）、同期状態（図９(ａ)のＳ８０２）、同期離脱状態（図９(ａ)のＳ８０３）の３種の状態で管理する。
スタンバイ（図９(ａ)のＳ８０１）状態から同期指示があった場合（図９(ａ)のＳ８０４でＹｅｓ）、同期状態に遷移させる（図９(ａ)のＳ８０２）。一方、同期指示がない場合（図９(ａ)のＳ８０４でＮｏ）、スタンバイ（図９(ａ)のＳ８０１）状態を継続する。
同期状態（図９(ａ)のＳ８０２）において同期状態を離脱させるイベントが発生した場合（図９(ａ)のＳ８０５でＹｅｓ）、同期離脱状態に遷移させる（図９(ａ)のＳ８０３）。一方、同期状態（図９(ａ)のＳ８０２）において同期状態を離脱させるイベントが発生しない場合（図９(ａ)のＳ８０５でＮｏ）、同期状態を継続する（図９(ａ)のＳ８０２）。
【００３８】
同期状態を離脱させるイベントとしては、タイムアウト、多数決処理による同期データ不一致、ハードウェア異常等がある。なお、タイムアウトとは、例えば、処理に異常が発生したことを見つけるために正常な処理時間にマージンをもたせた所定時間を予め決め、当該処理がこの所定時間を超えた場合、タイムアウトとする。例えば、正常な処理時間を１とした場合、所定時間を予め１．２と設定する等である。
同期離脱状態（図９(ａ)のＳ８０３）において、同期組み込み指示があった場合（図９(ａ)のＳ８０６でＹｅｓ）、同期の組込処理を行い、同期状態に遷移させる（図９(ａ)のＳ８０２）。
一方、同期離脱状態（図９(ａ)のＳ８０３）において、同期組み込み指示がない場合（図９(ａ)のＳ８０６でＮｏ）、同期離脱状態を継続する（図９(ａ)のＳ８０３）。
【００３９】
＜他系計算機の同期状態＞
図９(ｂ)に示す他系計算機の同期状態は、同期状態（図９(ｂ)のＳ８１１）、同期離脱状態（図９(ｂ)のＳ８１２）の２種の状態で管理する。
他系計算機は、前記の自系計算機と同様に状態を遷移させる。
詳細には、同期状態(図９(ｂ)のＳ８１１)において同期状態を離脱させるイベントが発生しない場合（図９(ｂ)のＳ８１３でＮｏ）、同期状態を継続する（図９(ｂ)のＳ８１１）。
【００４０】
一方、同期状態(図９(ｂ)のＳ８１１)において同期状態を離脱させるイベントが発生した場合（図９(ｂ)のＳ８１３でＹｅｓ）、同期離脱状態に遷移させる（図９(ｂ)のＳ８１２）。
同期離脱状態（図９(ｂ)のＳ８１２）において、同期組み込み指示があった場合（図９(ｂ)のＳ８１４でＹｅｓ）、同期の組込処理を行い、同期状態に遷移させる（図９(ｂ)のＳ８１１）。
一方、同期離脱状態（図９(ｂ)のＳ８１２）において、同期組み込み指示がない場合（図９(ｂ)のＳ８１４でＮｏ）、同期離脱状態を継続する（図９(ｂ)のＳ８１２）。
【００４１】
＜計算機１０１〜１０４に対する異常処理１（図７のＳ６０４）＞
図１０は、図７で示した計算機１０１〜１０４に対する異常処理１（図７のＳ６０４）によって、計算機１０１が比較対象から外され同期離脱状態となった場合の例を示す図である。
図１０に示すように、計算機１０１で、前記の同期離脱イベント９０１が発生し(図９(ａ)のＳ８０５でＹｅｓ、図９(ｂ)のＳ８１３でＹｅｓ）、同期処理動作によって同期離脱処理が実行され、計算機１０１は同期離脱状態となる(図９(ａ)のＳ８０３、図９(ｂ)のＳ８１２)。
このとき、図５に示す計算機１０１のソフトウェア２２１内のサブシステム４０３によって、同期離脱状態となった計算機１０１の同期データを多重化ネットワーク１０(図１参照)へ送信させないようにすることも可能である。
【００４２】
＜照合機１１１〜１１４の正常時における動作＞
次に、照合機１１１〜１１４の正常時における動作について、図１１に従って説明する。
図１１は、照合機１１１〜１１４の正常時における動作を示す図である。図１１は、図７に示す照合機１１１〜１１４による処理フロー６１１を詳細に示したものである。
照合機１１１〜１１４(図１参照)は、計算機１０１〜１０４からの演算結果データを受信し（図１１のＳ１００１）、受信データの誤りチェックを行う（図１１のＳ１００２）。誤りチェック方法は、前記の通り、ＣＲＣ、通番チェック(通し番号チェック)、並びに種々の加算値をチェックに用いるＳＵＭ値チェック等がある。
【００４３】
受信データの誤りチェックによって受信データが正常か否かの判定を行い（図１１のＳ１００３）、受信データが異常であった場合（図１１のＳ１００３でＮｏ）、異常処理２を行う（図１１のＳ１００４）。
Ｓ１００４の異常処理２としては、ソフトウェア要因の障害の場合、当該障害の受信データを廃棄し、計算機１０１〜１０４の要因の障害の場合は当該障害の計算機を比較対象から外し、同期離脱状態とする。また、多重化ネットワーク１０上の障害の場合は、多重化ネットワーク１０の経路変更等を行う。
さらに、計算機１０１〜１０４のハードウェア障害の場合は障害の当該計算機の再起動、もしくは停止を当該計算機のソフトウェア２２１によって行うことも可能である。或いは、計算機１０１〜１０４のソフトウェア障害の場合も、障害の当該計算機の再起動、もしくは停止を、その指示を障害の当該計算機に出すことにより、当該計算機のソフトウェア２２１によって行うことも可能である。
【００４４】
図１２は、図１１に示す計算機に対する異常処理２（図１１のＳ１００４）によって、計算機１(１０１)が比較対象から外され同期離脱状態となった場合の例を示す図である。
計算機１(１０１)から送信された同期データが照合機１(１１１)のデータ比較によって異常（図１２の１２０１同期データ異常）と判定され、図１１に示す異常処理２（Ｓ１００４）によって当該計算機１(１０１)を比較対象から外し、計算機１(１０１)は、同期離脱状態となる。以上が、図１２に示す計算機に対する異常処理２（図１１のＳ１００４）の例である。
【００４５】
一方、図１１のＳ１００３で受信データが正常だと判定された場合（図１１のＳ１００３でＹｅｓ）、受信データが照合機１１１〜１１４によって抽出され（図１１のＳ１００５）、抽出データの比較を行い、その一致、不一致により、比較対象の変更要否を判定する（図１１のＳ１００６）。
抽出データが不一致であった場合に比較対象の変更要とし（図１１のＳ１００６でＮｏ）、不一致となったデータの送信元である計算機を比較対象から外し同期離脱状態とする（図１１のＳ１００７）。本計算機システム１においては、全ての計算機１０１〜１０４で不一致となった場合、計算機番号の小さいものを選択し、その演算結果を、後記の図１１のＳ１０１１で外部ネットワーク１１へ送信する。また、ここで全ての計算機１０１〜１０４で不一致となった場合に計算機番号の大きいものを選択し、その演算結果を、後記の図１１のＳ１０１１で外部ネットワーク１１へ送信することも可能である。
【００４６】
一方、図１１のＳ１００６において、比較対象の変更が不要であると判定される場合（図１１のＳ１００６でＹｅｓ）、比較結果の照合が行われる（図１１のＳ１００８）。図７の説明において示した通り、比較結果の照合（図１１のＳ１００８）は、図４に示す照合機１１１内の照合部１(３７０)、照合部２(３８０)で演算結果の比較結果を照合し、データが正常であることを確認することによって行われる。
ここで、データが異常だと判定された場合（図１１のＳ１００９でＮｏ）は、照合機１１１で障害が発生したと判定し、照合機１１１に対する構成制御処理（図１１のＳ１０１０）を実施する。照合機に対する構成制御処理（図１１のＳ１０１０）によって主系の照合機１１１が停止し、従系の照合機１１２〜１１４の何れかが主系に遷移する。
【００４７】
図１３は、照合機１１１〜１１４に対する異常処理（図１１のＳ１０１０、図７のＳ６１７）によって、照合機１(１１１)の構成制御が実施された例を示す図である。
例えば、主系として動作していた照合機１(１１１)は、図１１に示す比較結果照合(図１１のＳ１００８)において不一致（図１３の１３０１の照合結果不一致）となり、構成制御処理（図１１のＳ１０１０）によって停止させられる。次に、従系であった照合機２(１１２)が主系として動作する（図１３の１３０３主系動作開始）。
以上が、照合機１(１１１)の構成制御が実施された例である。
一方、比較結果の照合（図１１のＳ１００８）によって照合結果が一致した場合（図１１のＳ１００９でＹｅｓ）は、比較結果の照合済みの演算結果を、主系の照合機１１１が外部ネットワーク１１へ送信する（図１１のＳ１０１１）。
【００４８】
＜＜作用効果＞＞
本実施形態では、目的を達成するために、以下の手段を用いている。
（１）複数台の計算機１(１０１)〜ｎ(１０４)同士の相互監視
（２）照合機１(１１１)における計算機１(１０１)〜ｎ(１０４)の監視
（３）複数台の照合機１(１１１)〜ｍ(１１４)における構成制御
本構成により、計算機１(１０１)〜ｎ(１０４)及び照合機１(１１１)〜ｍ(１１４)のハードウェア障害や自己診断機能が誤動作した場合でも障害を検出し誤ったデータを出力することを防げる。
【００４９】
さらに、演算結果の比較照合部が障害となる場合でもシステムとしては継続して動作するフォールトトレラントシステムを提供できる。
そのため、ハードウェア及び計算機の自己診断機能の誤動作によって、誤ったデータを出力することを未然に防ぐフォールトトレラントシステムを構築することができる。
従って、フォールトトレラントシステムにおけるシステムとしての稼働率を向上させることができる。
【００５０】
なお、前記実施形態では、照合機１１１〜１１４の内部で２重に演算を行う場合を例示したが、２重以上の多重で演算を行うことも可能であり、２重以上の何重にするかは、適宜選択可能である。
また、前記実施形態では、自系の計算機１０１〜１０４および自系の照合機１１１〜１１４が、傷害の障害部位または障害レベルに応じて、再起動または停止処理を実行する機能を有する場合を例示したが、他系の計算機１０１〜１０４および他系の照合機１１１〜１１４が、自系の計算機１０１〜１０４および自系の照合機１１１〜１１４を、その傷害の障害部位または障害レベルに応じて、再起動または停止処理を実行する機能を有するように構成してもよい。
また、前記実施形態では、照合機１１１〜１１４における主系を１の照合機と、主系以外の他の照合機を従系としたが、主系を１以外の２、３、…の数を適宜選択する構成としてもよい。１以外の２、３、…の照合機を主系とした場合、主系の照合機間でデータの照合を行い処理を進行してもよい。
【００５１】
なお、計算機１０１〜１０４および照合機１１１〜１１４は、各々、状態管理手段として、同一の状態管理表を有する構成としたが、一つまたは任意の数の状態管理手段を計算機１０１〜１０４、照合機１１１〜１１４の何れか、または、計算機１０１〜１０４、照合機１１１〜１１４の外部に有し、該状態管理手段を計算機１０１〜１０４、照合機１１１〜１１４で共有してアクセスする構成としてもよく、状態管理手段の態様は、例示したものに限定されない。
なお、照合機１１１〜１１４を主系と従系とする場合を例示したが、主系と従系とせず、照合機１１１〜１１４の処理結果を照合し、照合機１１１〜１１４の全てまたは何れかで、外部ネットワークを介して、処理結果を送信するように構成してもよく、照合機１１１〜１１４を主系と従系としないように構成することも可能である。
【符号の説明】
【００５２】
１      計算機システム
１０    多重化ネットワーク
１１    外部ネットワーク
１０１〜１０４  計算機
１１１〜１１４  照合機
１２１〜１２４、１３１〜１３４  状態管理表(状態管理手段)
２０３  Ｉ／Ｏ(計算機の送受信機能)
２０５  通信Ｉ／Ｆ(計算機の送受信機能)
２２１  ソフトウェア(計算機の送受信機能、第１障害検出機能、第１障害被対応機能、第２障害被対応機能)
３０３  Ｉ／Ｏ(照合機１の送受信機能)
３０５  通信Ｉ／Ｆ(照合機１の送受信機能)
３２１  ソフトウェア(照合機１の送受信機能、第２障害検出機能、第３障害検出機能、障害対応機能、第３障害被対応機能)
３３３  Ｉ／Ｏ(照合機１の送受信機能)
３３５  通信Ｉ／Ｆ(照合機１の送受信機能)
３５１  ソフトウェア(照合機１の送受信機能、第１障害検出機能、第２障害検出機能、第３障害検出機能、障害対応機能、第３障害被対応機能)
【図１】
2011076262.tif 000003
【図２】
2011076262.tif 000004
【図３】
2011076262.tif 000005
【図４】
2011076262.tif 000006
【図５】
2011076262.tif 000007
【図６】
2011076262.tif 000008
【図７】
2011076262.tif 000009
【図８】
2011076262.tif 000010
【図９】
2011076262.tif 000011
【図１０】
2011076262.tif 000012
【図１１】
2011076262.tif 000013
【図１２】
2011076262.tif 000014
【図１３】
2011076262.tif 000015