(57)【要約】【課題】同期エラーの計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減することができる計算機システムを提供する。【解決手段】複数の計算機における同期エラーの発生に基づいて、同期エラーの原因を特定するために用いる計算機システムを構成するコンポーネントの情報を収集する収集部と、収集部で収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、同期エラーの原因が一過性の異常によるものであるか否かを判定する判定部と、判定部により同期エラーの原因が一過性の異常によるものであると判定された場合、同期エラーが発生した計算機を再同期させるための復旧措置を実行し、判定部により同期エラーの原因が一過性の異常によるものでないと判定された場合、同期エラーが発生した計算機を停止させるための停止措置を実行する実行部と、を設けるようにした。【選択図】図４
2018101277.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機が互いに同期をとって同一処理を実行する計算機システムであって、
前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する収集部と、
前記収集部で収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する判定部と、
前記判定部により前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記判定部により前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する実行部と、
を備えることを特徴とする計算機システム。
【請求項２】
前記複数の計算機の各々に対応して、同期エラーの発生時間を記憶する記憶部を更に備え、
前記判定部は、前記同期エラーが発生した計算機に対応する発生時間を前記記憶部に記憶させ、前記同期エラーが発生した計算機に対応する前回の発生時間から所定時間の経過前に前記同期エラーが発生したと判定した場合、前記同期エラーの原因が一過性の異常によるものでないと判定する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記判定部は、前記同期エラーが発生した計算機に対応する発生時間および前記複数の計算機に共通の同期エラーの共通発生時間を前記記憶部に記憶させ、前記共通発生時間に基づいて、前回の共通発生時間から前記複数の計算機の総数に応じて前記所定時間に重み付けがされた時間の経過前に前記同期エラーが発生したと判定した場合、前記同期エラーの原因が一過性の異常によるものでないと判定する、
ことを特徴とする請求項２に記載の計算機システム。
【請求項４】
同期エラーに係る時間を記憶する記憶部を更に備え、
前記収集部は、前記コンポーネントの情報として前記判定基準に係るメトリクスの値を収集し、
前記判定部は、前記同期エラーが発生した計算機と、前記計算機以外の計算機との間に前記メトリクスの平均値について統計的有意差があるか否かを判定し、統計的有意差があると判定した場合、前記同期エラーに係る時間を前記記憶部に記憶させ、前回に記憶させた時間から所定時間の経過前に前記同期エラーが発生したと判定した場合、前記同期エラーの原因が一過性の異常によるものでないと判定する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項５】
複数の計算機が互いに同期をとって同一処理を実行する計算機システムにおける前記複数の計算機を制御する計算機制御装置であって、
前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する収集部と、
前記収集部で収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する判定部と、
前記判定部により前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記判定部により前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する実行部と、
を備えることを特徴とする計算機制御装置。
【請求項６】
複数の計算機が互いに同期をとって同一処理を実行する計算機システムにおける計算機制御方法であって、
収集部が、前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する第１のステップと、
判定部が、前記第１のステップで収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する第２のステップと、
実行部が、前記第２のステップにより前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記第２のステップにより前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する第３のステップと、
を備えることを特徴とする計算機制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システム、計算機制御装置、および計算機制御方法に関し、例えば複数の計算機が互いに同期をとって同一処理を実行する計算機システムに適用して好適なものである。
【背景技術】
【０００２】
一般に、フォールトトレラントシステムは、複数の計算機に同一の処理を実行させ、当該複数の計算機の出力内容を照合し、正しいと判断された出力内容のみを外部装置に出力することで、処理結果の正しさを保証する。さらに、複数の計算機の一部が障害により動作を停止しても、残りの計算機が動作し続ける限り、システム全体として無停止を実現する。こうしたフォールトトレラントシステムの一実装として、タスクスイッチ、外部装置等との入出力などの実行タイミングおよび処理内容を各計算機間で同期をとり、決定的な動作をさせることで、同一の出力内容を得ることを期待するものがある。仮に、同一の出力が得られなかった場合、または一定時間が経過しても出力を得られなかった場合(以下、同期エラーと称する。)、フォールトトレラントシステムを構成する系から該当計算機が一時的に除外される。
【０００３】
同期エラーにより計算機が系から除外されると、システムとしての信頼性、可用性などが低下する。例えば元々２台の計算機で動作していたものが１台になると、処理結果の誤りの検知はできなくなる。さらに残りの１台も障害によりダウンしてしまうと、システム全体として停止してしまう。そこで、システムは、同期エラーにより計算機が系から除外された場合、早期に復旧措置を実施し、再度同期動作させることを試みる。
【０００４】
近年、障害の緊急度、復旧作業の影響度、システムの運用要件によって自動復旧作業の実施時間をスケジュールし、障害内容に応じて適切なタイミングで自動復旧するための方法が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２１１６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、同期エラーの原因が恒常性のものであった場合、再同期させることで同期動作中の健全な計算機に悪影響を及ぼすことがある。例えば、同期エラーを起こした計算機が入出力処理に時間を要する傾向にある場合、残りの健全な計算機は、その入出力処理の完了の待ち合わせを行うため、システム全体として応答性が低下する。また、一般に再同期処理は、同期動作中の計算機から再同期させる計算機に大量のデータを送って状態を一致化させる必要があるため、同期動作中の一定量の負荷を発生させる。したがって、頻繁な同期エラーと再同期との繰り返しは避けることが望まれる。
【０００７】
しかしながら、特許文献１に記載の技術は、障害の内容に応じて適切なタイミングで復旧を行うものであり、同期エラーの原因が恒常性によるものであっても再同期されるので、同期エラーと再同期とが繰り返し行われ、正常な計算機に影響を及ぼすという問題がある。
【０００８】
本発明は以上の点を考慮してなされたもので、同期エラーが発生した計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減し得る計算機システムを提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、複数の計算機が互いに同期をとって同一処理を実行する計算機システムであって、前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する収集部と、前記収集部で収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する判定部と、前記判定部により前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記判定部により前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する実行部と、を設けるようにした。
【００１０】
また本発明においては、複数の計算機が互いに同期をとって同一処理を実行する計算機システムにおける前記複数の計算機を制御する計算機制御装置であって、前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する収集部と、前記収集部で収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する判定部と、前記判定部により前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記判定部により前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する実行部と、を設けるようにした。
【００１１】
また本発明においては、複数の計算機が互いに同期をとって同一処理を実行する計算機システムにおける計算機制御方法であって、収集部が、前記複数の計算機における同期エラーの発生に基づいて、前記同期エラーの原因を特定するために用いる前記計算機システムを構成するコンポーネントの情報を収集する第１のステップと、判定部が、前記第１のステップで収集された情報と、一過性の異常を判定可能な判定基準を示す情報とに基づいて、前記同期エラーの原因が一過性の異常によるものであるか否かを判定する第２のステップと、実行部が、前記第２のステップにより前記同期エラーの原因が一過性の異常によるものであると判定された場合、前記同期エラーが発生した計算機を再同期させるための復旧措置を実行し、前記第２のステップにより前記同期エラーの原因が一過性の異常によるものでないと判定された場合、前記同期エラーが発生した計算機を停止させるための停止措置を実行する第３のステップと、を設けるようにした。
【００１２】
本発明によれば、同期エラーが発生した計算機の復旧後の計算機システムへの影響を加味して、つまり同期エラーの原因が一過性の異常によるものであるか否かに基づいて、同期エラーの計算機に対する復旧措置および停止措置の何れかが決定されて実行されるので、同期エラーの計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減することができる。
【発明の効果】
【００１３】
本発明によれば、同期エラーの計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態による多重系システムの構成を示すブロック図である。
【図２】第１の実施の形態による計算機の構成を示すブロック図である。
【図３】第１の実施の形態による自動復旧部の構成を示すブロック図である。
【図４】第１の実施の形態による自動復旧部が実施する処理に係るフローチャートを示す図である。
【図５】第１の実施の形態による異常判定テーブルを示す図である。
【図６】第２の実施の形態による異常判定テーブルを示す図である。
【図７】第２の実施の形態による自動復旧部が実施する処理に係るフローチャートを示す図である。
【図８】第３の実施の形態による異常判定テーブルを示す図である。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）第１の実施の形態
図１において、１は全体として第１の実施の形態による多重系システム（計算機システム）を示す。この多重系システム１は、少なくとも２つ以上の計算機（本例では、計算機１０、計算機１１、計算機１２）を含み、各計算機１０〜１２は、通信路５０を介して他の計算機１０〜１２と情報交換を行う。
【００１７】
各計算機１０〜１２は、外部装置４０または照合装置３０からの入力に対して決定的な処理を行う（あるタイミングである入力があったときには必ず同じ結果を出力する）ように互いに同期しながら同一の処理を実行する。また、各計算機１０〜１２は、処理結果を通信路５０を介して出力し、照合装置３０が処理結果を受信する。照合装置３０は、各計算機１０〜１２から受信した処理結果を比較し、正しいと考えられる処理結果のみを外部装置４０に出力する。
【００１８】
図２は、計算機１０の構成の一例を示す。計算機１０は、少なくともソフトウェアプログラム、データ等を格納するメモリ１０２と、メモリ１０２上のソフトウェアプログラムを実行するＣＰＵ（Central Processing Unit）１０１と、データを格納する記憶装置１０３と、通信路５０を介してデータの送受信を行う通信装置１０４と、を有する。計算機１１および計算機１２についても同様であるので、説明を省略する。また、照合装置３０および外部装置４０についても同様の構成としてもよいので、説明を省略する。
【００１９】
計算機１０〜１２は、様々な理由により同期不可能と判断された場合、同期エラーとなり、その原因となった計算機１０〜１２を同期から除外する。同期不可能と判断される理由としては、例えば、計算機１０〜１２が次に実行するタスクを決める際の同期においてタイムアウトが発生した場合、記憶装置１０３に対するＩ／Ｏ完了を待ち合わせるための同期においてタイムアウトが発生した場合、上記Ｉ／Ｏの結果に相違が生じた場合、照合装置３０における照合において相違を検知した場合などが挙げられる。同期から除外された計算機１０〜１２については、復旧措置により再度、他の計算機１０〜１２と同期させることが可能である。例えば、復旧措置は、再起動後、他の同期動作中の計算機１０〜１２からメモリ１０２上のデータ、記憶装置１０３上のデータ等を再同期させる計算機１０〜１２に送り、計算機１０〜１２上で動作するサービスの状態を同期のタイミングで一致化させることで実施される。
【００２０】
次に、図３から５を用いて、多重系システム１において、同期エラーにより同期から除外された計算機１０〜１２を自動復旧させる手順について説明する。
【００２１】
図３は、自動復旧部６０の構成の一例を示す。自動復旧部６０は、計算機１０〜１２の何れかの計算機、照合装置３０、または通信路５０を介して通信可能な装置（図示しない。）において実現されてもよいし、自動復旧部６０の機能が複数の装置に分散されて実現される。なお、自動復旧部６０は、メモリ１０２上のプログラムをＣＰＵ１０１が実行するソフトウェアにより実現されてもよいし、回路などのハードウェアにより実現されてもよいし、自動復旧部６０の一部がソフトウェアにより、残りがハードウェアにより実現されてもよい。
【００２２】
図４に示すように、自動復旧部６０の情報収集部６１は、何等かの理由で同期エラーが発生したことを検知すると（ステップＳ４００）、多重系システム１を構成する計算機１０〜１２および照合装置３０から、同期エラーの原因の判別に必要な情報（障害情報）を収集する（ステップＳ４０１）。より具体的には、情報収集部６１は、多重系システム１を構成する各コンポーネント（例えば、計算機１０〜１２を構成するハードウェア（記憶装置１０３、通信装置１０４等）、ソフトウェア（ＯＳ（Operating System）、タスク等）など）から同期エラー種別５１０、各種エラーログ、記憶装置１０３に対するＩ／Ｏ時間の統計値、同期待ち時間の統計値、今回の同期エラー発生時刻など同期エラーの原因の判別に必要な情報を収集する。
【００２３】
次に、自動復旧部６０の同期エラー頻度判定部６２は、上記収集された情報と、図５に示す予め定義された異常判定テーブル５００とを参照し、同期エラーの原因が一過性の異常によるものであるか否かを判定する（ステップＳ４０２）。
【００２４】
次に、自動復旧部６０の復旧実行部６３は、一過性の異常であると判定された場合（ステップＳ４０３でＹＥＳの場合）、復旧措置を実行し（ステップＳ４０４）、当該同期から除外された計算機１０〜１２を再起動および再同期させる。他方、復旧実行部６３は、一過性でない、つまり恒常性の異常であると判定された場合（ステップＳ４０３でＮＯの場合）、当該計算機１０〜１２に対して停止措置を実行する（ステップＳ４０５）。
【００２５】
図５は、上記ステップＳ４０２で同期エラー頻度判定部６２が参照する異常判定テーブルの一例を示す。行５０１は、同期エラー種別５１０としてタスクスイッチの際の同期においてタイムアウトが発生した場合に該当し、全ての場合において一過性の異常であると判定される。
【００２６】
行５０２および行５０３は、Ｉ／Ｏ完了同期の際にＩ／Ｏ結果の相違が発生した場合に該当する。例えば、計算機１０および計算機１１は、正常にＩ／Ｏを完了し、計算機１２は、Ｉ／Ｏに失敗した場合である。この場合、同期エラー頻度判定部６２は、計算機１２上のエラーログにメディアエラー等のハードウェア上のＩ／Ｏエラーが発生したことを示すメッセージがあった場合、当該異常は再発の可能性が高いとし、恒常性の異常であると判定する（行５０２）。他方、同期エラー頻度判定部６２は、Ｉ／Ｏエラーが発生したことを示すメッセージを検知しなかった場合、一過性の異常であると判定する（行５０３）。
【００２７】
行５０４および行５０５は、Ｉ／Ｏ完了同期の際にタイムアウトが発生した場合に該当する。例えば、計算機１０および計算機１１がＩ／Ｏを完了し、同期待ちを開始した後、所定の時間内に計算機１２がＩ／Ｏを完了しなかった場合である。この場合、同期エラー頻度判定部６２は、異常が発生した計算機１２について、最近（例えば、過去所定回数分、過去所定時間内など）のＩ／Ｏ完了同期の際の遅延の平均値が所定値以上であった場合、経年劣化等により遅延傾向にあると見なし、恒常性の異常であると判定する（行５０４）。他方、同期エラー頻度判定部６２は、上記平均値が所定値未満であった場合、突発的にＩ／Ｏが遅延した、すなわち一過性の異常であると見なし、一過性の異常であると判定する（行５０５）。
【００２８】
なお、異常判定テーブル５００の判定５４０は、同期動作中の計算機１０〜１２の台数に応じて変化するようにしてもよい。例えば、計算機１２がハードウェア障害により稼働を停止しているとき、計算機１１にて恒常性であると判定される異常により同期エラーが発生した場合、計算機１１に対して停止措置を実施すると、多重系システム１全体として、可用性および信頼性が大きく低下する。このように、稼働している計算機１０〜１２が２台等、台数が少ない場合には、常に一過性の異常であると判定されるようにしてもよい。
【００２９】
以上の方法により、一過性の異常であると判定された計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減することができる。
【００３０】
（２）第２の実施の形態
本実施の形態では、異常部位を厳密に特定できない場合に復旧措置と停止措置との何れを実施するかを判定する方法について説明する。本実施の形態では、第１の実施の形態に示した構成と異なる構成について主に説明する。
【００３１】
図６は、第１の実施の形態における異常判定テーブル５００を変形した異常判定テーブル５００Ａの一例を示す。図６では、照合装置３０が各計算機１０〜１２（第１計算機〜第３計算機）からの出力を待って比較照合する際、一部の計算機１０〜１２からの出力が所定の時間内に到着しなかったケース（同期エラー種別５１０が出力待ちタイムアウトである場合）を例に挙げて示している。
【００３２】
例えば、行６０１では、計算機１０〜１２の何れかにおいて、計算機１０〜１２上で動作するＯＳ、同期動作するタスク等が異常停止したために処理結果の出力を行うことができなかったケースを示している。つまり、行６０１は、判定基準６２０に示すように、ＯＳのクラッシュが発生したことを示す通知を自動復旧部６０が通信路５０を介して受けた場合、特定タスクが異常終了したことを示すメッセージを当該計算機１０〜１２から収集したエラーログから検知した場合等に該当する。
【００３３】
しかしながら、この異常停止が各計算機１０〜１２で動作する共通のコンポーネント（共通部分）に起因するものであるのか、当該計算機１０〜１２に固有のコンポーネント（固有部分）に起因するものであるのか、容易に判定できないことがある。
【００３４】
そこで、本実施の形態では、同期エラー頻度判定部６２は、計算機１０〜１２の固有部分と各計算機１０〜１２の共通部分との両方で発生したものと見なす。つまり、同期エラー頻度判定部６２は、仮に計算機１０における異常停止が検知された場合、異常部位６３０の計算機１０の固有部分に対する前回発生時刻６４０と、共通部分に対応する前回発生時刻６４０との両方を参照する。
【００３５】
ここで、同期エラー頻度判定部６２は、それぞれの前回発生時刻６４０について未記録であった場合、収集された障害情報に含まれている今回の同期エラー発生時刻を記録する。一方、既に時刻が記録されていた場合、同期エラー頻度判定部６２は、今回の同期エラー発生時刻との差を算出した後、当該前回発生時刻６４０欄を今回の同期エラー発生時刻で上書きする。詳細については図７を用いて後述するが、同期エラー頻度判定部６２は、上記算出した今回の同期エラー発生時刻との差が所定の閾値以下であった場合、恒常的な異常であると見なし、復旧実行部６３により停止措置が実施される。他方、同期エラー頻度判定部６２は、上記算出した今回の同期エラー発生時刻との差が所定の閾値を超えていた場合、一過性の異常であると見なし、復旧実行部６３により復旧措置が実施される。
【００３６】
上記閾値は、固有部分か共通部分かにより重み付が行われる。例えば３台の計算機１０〜１２が共通利用している部位の場合、その利用の仕方は同期動作する３台の間で等価であり、その異常発生の頻度は、１台で利用する場合の３倍になると見なせる。そこで、例えば、計算機１０〜１２の固有部分とした場合の上記閾値を「１日」とした場合、Ｎ台で共通利用する部位については「１／Ｎ日」のように設定する。
【００３７】
行６０３のケースについても同様である。これは、計算機１０〜１２により出力されたデータを含むパケットについて、何等かの理由により不正なものに変化し、照合装置３０が正常に受信できなかった場合を示す。本ケースが発生したことは、例えば、照合装置３０における通信装置１０４が管理する、パケットロストを示すカウンタが増加したか否かで判別できる。
【００３８】
しかしながら、その根本原因が、例えば計算機１０上の通信装置１０４の不良によるものであるのか、通信路５０の不良によるものであるのか、それとも照合装置３０の固有のコンポーネントまたは共有のコンポーネントの不良に由来するものであるのか、容易には判別できない。
【００３９】
そこで、同期エラー頻度判定部６２は、行６０１のケースと同様に、固有部分と共通部分との両方で異常が発生したと見なし、それぞれについて前回発生時刻６４０を管理する。一方、行６０２のように、計算機１０〜１２の固有の部位であることが明らかである場合は、固有部分のみ管理すればよい。
【００４０】
ここで、多重系システム１を構成する計算機１０〜１２群に共通の共通部分で同期エラーを引き起こす恒常性の異常が発生したと見なされた場合、基本的に特定の計算機１０〜１２のみ停止措置を実施することは無意味である。一方、共通部分だからといって全計算機１０〜１２に対して停止措置を実施すると、多重系システム１全体が機能しなくなる。そこで、運用のポリシーによって、閾値（固有部分の閾値および共通部分の閾値の一方または両方）を短めに設定して恒常性の異常であると判断され難くしたり、恒常性であると判定されても保守員への通報のみにして保守員が復旧措置を実施するようにしたりしてもよい。
【００４１】
なお、原因/現象６１０は、説明の便宜上、記載しているものであり、必ずしも必要はない。
【００４２】
図７は、第１の実施の形態の同期エラー原因判定処理（ステップＳ４０２）を詳細化したものである。以下では、図７を用いて同期エラー原因判定処理について説明する。
【００４３】
まず、同期エラー頻度判定部６２は、同期エラー原因の判定開始（ステップＳ４０２）後、変数Ｎを「０」に初期化し（ステップＳ７０１）、さらにＮに「１」を加算する（ステップＳ７０２）。次に、同期エラー頻度判定部６２は、異常判定テーブル５００ＡのＮ行目（Ｎ＝１の場合は行６０１）を参照し、ステップＳ４０１で収集した障害情報が、Ｎ行目の判定基準６２０にマッチするか否かを判定する（ステップＳ７０３）。同期エラー頻度判定部６２は、マッチすると判定した場合、ステップＳ７０４に処理を移し、マッチしないと判定した場合、ステップＳ７０２に処理を戻す。ここで、行６０４のように全ての場合にマッチする判定基準６２０を持つ行を最後に定義しておき、最後の行では必ずステップＳ７０４に処理が移るようにする。
【００４４】
同期エラー頻度判定部６２は、判定基準６２０にマッチすると判定した場合、Ｎ行目の異常部位６３０について、同期エラーが発生した計算機１０〜１２に対応する細分化された行Ｍを探す（ステップＳ７０４）。ここで、同期エラー頻度判定部６２は、行Ｍの前回発生時刻６４０が未記録、または今回の同期エラー発生時刻との差が所定の閾値より大きいか否かを判定する（ステップＳ７０５）。同期エラー頻度判定部６２は、閾値以下であると判定した場合、判定結果として「恒常性」を返し（ステップＳ７０６）、停止措置が実施される（ステップＳ４０５）。同期エラー頻度判定部６２は、行Ｍの前回発生時刻６４０が未記録、または閾値を超えていると判定した場合、行Ｍの前回発生時刻６４０を今回の同期エラー発生時刻で上書きし（ステップＳ７０７）、ステップＳ７０８に処理を移す。
【００４５】
ステップＳ７０８では、同期エラー頻度判定部６２は、Ｎ行目の異常部位６３０について、「共通部分」に対応する行Ｍがあるかを探す。同期エラー頻度判定部６２は、該当行があると判定した場合、行Ｍの前回発生時刻６４０が未記録、または今回の同期エラー発生時刻との差が所定の閾値より大きいか否かを判定する（ステップＳ７０９）。同期エラー頻度判定部６２は、閾値以下であると判定した場合、判定結果として「恒常性」を返し（ステップＳ７０６）、停止措置が実施される（ステップＳ４０５）。同期エラー頻度判定部６２は、行Ｍの前回発生時刻６４０が未記録、または閾値を超えていると判定した場合、行Ｍの前回発生時刻６４０を今回の同期エラー発生時刻で上書きする（ステップＳ７１０）。
【００４６】
同期エラー頻度判定部６２は、ステップＳ７１０の実行後、またはステップＳ７０８において該当行がなかった場合、Ｎが異常判定テーブル５００Ａの最終行であるか否かを判定する（ステップＳ７１１）。同期エラー頻度判定部６２は、最終行でないと判定した場合、ステップＳ７０２に処理を移し、処理を繰り返す。他方、同期エラー頻度判定部６２は、最終行であると判定した場合、判定結果として「一過性」を返し（ステップＳ７１２）、復旧措置が実行される（ステップＳ４０４）。
【００４７】
本実施の形態で示した方法によれば、異常部位を特定する判断基準を明確に規定できない場合であっても、一過性の異常であるか否かについて確率的に妥当な判断が行われ、一過性の異常であると判定された計算機の自動復旧によりシステム全体の可用性を回復しつつ、恒常性の異常がシステム全体に及ぶ可能性を削減することができる。
【００４８】
（３）第３の実施の形態
本実施の形態では、多重系システム１を構成する各計算機１０〜１２上の様々なメトリクスを互いに比較し、同種の異常が再発したか否かを判定する。図８は、その際に用いる異常判定テーブル５００Ｂの一例を示す。本実施の形態では、第１の実施の形態に示した構成と異なる構成について主に説明する。
【００４９】
行８０１では、メトリクス８１０としてタスクスイッチ同期における遅延時間を用いる。例えば、計算機１０が最初に同期を開始し、その後１ｍｓ後に計算機１１と同期がとれ、さらに９ｍｓ後に計算機１２と同期がとれたとする。このとき計算機１１は、タスクスイッチ同期において１ｍｓ遅延し、計算機１２は１０ｍｓ遅延したことを記録する。
【００５０】
そして、各計算機１０〜１２における所定回数（例えば直近の３０回）の遅延時間を標本とし、その平均値に統計的有意差があるかについて評価する。統計的有意差があるかどうかの判定には、例えばｔ検定などを利用できる。仮に統計的有意差が認められる場合、タスクスイッチを遅延させる何等かの異常が発生していると見なし、行８０１に対応する前回発生時刻８３０に現在時刻を記録する。その後、同期から除外された計算機１０〜１２を一旦、復旧させる。
【００５１】
しばらくして、例えば、上記同期から除外された計算機１０〜１２が再度、同期エラーにより同期から除外されたとき、同様にメトリクス８１０の平均値について他計算機１０〜１２と統計的有意差があるかを判定する。仮に、前回と同様に行８０１について統計的有意差が認められた場合、現在時刻と前回発生時刻８３０の差を算出する。図８の例のように恒常性判別閾値８２０が「３時間以内に再発」と定義されていた場合、上記算出した時間差が３時間以内であるときは恒常性の異常が発生していると見なし、当該計算機１０〜１２に対して停止措置が実施される。他方、上記算出した時間差が３時間を超えているときは一過性の異常が発生していると見なし、復旧措置が実施される。
【００５２】
行８０２〜８０５についても同様に処理し、複数行について統計的有意差があると認められる場合、それぞれに対して上記処理を実施し、１つでも恒常性の異常を検知した場合は停止措置が実施される。
【００５３】
なお、イベントごとに標本を抽出する必要はなく、例えば１００回に１回標本として抽出するようにすれば、より長期間に渡る傾向でもって異常であるか否かを判別できる。また、行８０４および行８０５については、例えば１秒に１回、１０秒に１回といった程度で標本を抽出することが好ましい。
【００５４】
なお、本実施の形態における処理は、図４および図７と同様である。ただし、図７のステップＳ７０５およびステップＳ７０９の「所定の閾値」として、異常判定テーブル５００Ｂにおける判定基準８０９にマッチする行の恒常性判別閾値８２０を使用する点で異なる。
【００５５】
本実施の形態で示した方法によれば、同期エラーを引き起こす異常部位を特定するための判定基準を明確に規定できない場合であっても、統計的有意差に基づいて、同期エラーの原因が一過性の異常であるか恒常性の異常であるかを判定することができる。
【００５６】
（４）他の実施の形態
なお上述の第１〜第３の実施の形態においては、本発明を複数の計算機が互いに同期をとって同一処理を実行する多重系システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の計算機システムに広く適用することができる。
【００５７】
また上述の第１〜第３の実施の形態においては、異常判定テーブルを適用した場合について述べたが、本発明はこれに限らず、異常判定ファイルなど、他の形式の情報を用いるようにしてもよい。
【００５８】
また上述の第１〜第３の実施の形態においては、情報収集部６１が同期エラーの発生を検知する場合について述べたが、本発明はこれに限らず、自動復旧部６０がエラー検知部を有し、エラー検知部が同期エラーの発生を検知するようにしてもよい。
【００５９】
また上述の第２および第３の実施の形態においては、前回発生時刻を記憶する場合について述べたが、本発明はこれに限らず、現在（今回）および過去（少なくとも前回）の発生時刻（時間）を記憶するようにしてもよい。
【００６０】
また上述の第２および第３の実施の形態においては、前回発生時刻として記憶する情報は、今回の同期エラー発生時刻であってもよいし、現在時刻であってもよいし、その他の同期エラーに係る時間を記憶するようにしてもよい。
【符号の説明】
【００６１】
１……多重系システム、１０〜１２……計算機、３０……照合装置、４０……外部装置、５０……通信路
【図１】
2018101277.tif 000003
【図２】
2018101277.tif 000004
【図３】
2018101277.tif 000005
【図４】
2018101277.tif 000006
【図５】
2018101277.tif 000007
【図６】
2018101277.tif 000008
【図７】
2018101277.tif 000009
【図８】
2018101277.tif 000010