JP3806600B2 - 多重系システムの系切り替え方法 - Google Patents

多重系システムの系切り替え方法 Download PDF

Info

Publication number
JP3806600B2
JP3806600B2 JP2000521438A JP2000521438A JP3806600B2 JP 3806600 B2 JP3806600 B2 JP 3806600B2 JP 2000521438 A JP2000521438 A JP 2000521438A JP 2000521438 A JP2000521438 A JP 2000521438A JP 3806600 B2 JP3806600 B2 JP 3806600B2
Authority
JP
Japan
Prior art keywords
computer
failure
message
function
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000521438A
Other languages
English (en)
Inventor
大野  洋
茂則 金子
義弘 宮崎
壮一 ▲高▼谷
広昭 福丸
隆弘 猿田
加藤  直
邦弘 鈴木
憲一 黒沢
雅彦 齊藤
秀仁 武和
裕人 塚原
栄喜 庄子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP3806600B2 publication Critical patent/JP3806600B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Description

技術分野
本発明は多重系システムの管理方法に係わり、特に、稼働系と待機系の計算機により構成される多重系システムにおいて、いずれかの計算機に障害が発生した際に系切り替えを実施する方法に関するものである。
背景技術
高い信頼性が要求される用途、例えば、鉄道運行管理,プラント制御,電力系統制御などに計算機を用いる場合には、処理を行う稼働系計算機の他に、稼働系の計算機に障害が生じた場合に稼働系の計算機が行っていた処理を引き継ぐ待機系の計算機を備えた多重系システムとして計算機を利用することが望ましい。
計算機の稼働を阻害する障害としては、ハードウェアの故障、およびオペレーティングシステム(以下OSと記す)やデバイスドライバなどの基幹ソフトウェアの欠陥による論理矛盾が挙げられる。これらの障害発生時に、計算機のハードウェア・ソフトウェアに関する各種状態を保存することにより、事後の障害解析が可能となり、復旧措置,再発防止策の実施などに活用でき、システムの信頼性向上に役立つ。これは多重系システムにおいても同様である。
従来の多重系システムにおいては、障害が発生した場合に、障害が発生した計算機のディスク装置に障害情報を保存し、その後、当該障害発生計算機が実行していた処理を待機系に引き継ぐ系切り替え方法が実施されてきた。
また、特開平8−202573号公報には、多重系を構成する計算機全てに、お互いに常に内容を一致化させている共通メモリを搭載し、この共通メモリ上に障害情報を常に書き込み、障害発生計算機が実行していた処理を引き継いだ計算機がこの障害情報をディスクに保存する方法が記載されている。
処理の停止時間を短くするために、系切り替えに要する時間はできるだけ短いことが望ましい。従来の切り替え方法の場合、障害情報の保存に要する間だけ系切り替えが待たされるため、実用的な切り替え時間を実現するためには保存できる障害情報の量が制限されてしまう。
一方、特開平8−202573号公報に記載された方法の場合、系切り替え時間の短縮は可能であるが、保存する障害情報の量が多くなると、必要な共通メモリの容量が大きくなり装置コストが大きくなると同時に、共通メモリ内容一致化のための計算機負荷およびネットワーク負荷も大きくなってしまう。
本発明は、多重系システムにおいて、障害発生時に、メモリダンプを含む大容量の障害情報の保存を実施しつつ、高速な系切り替えを実現することを目的とする。
また、障害発生系におけるハードウェアやソフトウェアの暴走、および障害発生系における障害情報の保存動作が、系切り替え動作および切り替え後の処理を引き継いだ新稼働系の動作に影響を与えないようにすることを目的とする。
発明の開示
本発明は、障害の発生した稼働系計算機で行っていた処理を停止して障害情報の保存処理を開始し、引き続いて待機系計算機は該計算機の障害を検出して停止していた処理を引き継ぐものである。該障害発生計算機における処理の停止および障害情報の保存開始は、該障害発生計算機上のソフトウェアにより自発的に行うか、または先に待機系計算機が該計算機の障害を検出し該計算機に対して動作を指示することにより行うかにより実現される。
このような系切り替え方法によれば、処理の切り替えは、待機系計算機における障害検出から、障害発生計算機において安定して障害情報の保存が開始されるまでの見込み時間のみで実施でき、切り替え時間の短縮が実現できる。
また、前記目的達成のために、本発明は、稼働系計算機の障害を検出した待機系計算機が該障害発生計算機に対して障害情報の保存開始指示に引き続き該障害発生計算機の動作停止を指示して、該障害発生計算機では正常な障害情報保存動作をしている場合には動作停止指示を無視し、正常な障害情報保存動作をしていない場合には動作停止指示を受け入れて完全に停止するものである。
このような障害発生計算機の動作方法により、障害情報保存動作が不可能なほどの重度の障害状態において、該障害発生計算機が予期せぬ動作をし、ネットワークや共有ディスク装置といった系間の結合部を通じて、処理を引き継いだ新稼働系計算機の動作に影響を与えることが防げる。
また、前記目的達成のために、本発明は、該障害発生計算機において障害情報の保存を実施する前に、ネットワークや共有ディスク装置といった系間の結合部の入出力装置の動作を停止させるものである。
このような障害発生計算機の動作方法により、障害情報保存に無関係なハードウェアの動作により、ネットワークや共有ディスク装置といった系間の結合部を通じて、処理を引き継いだ新稼働系計算機の動作に影響を与えることが防げる。
発明を実施するための最良の形態
以下、本発明に係る多重系システムの切り替え方法の実施形態について詳細に説明する。
第1図に本実施形態に係る多重系システムの構成を示す。
図示するとおり、本実施形態に係る多重系システムは2台の計算機で構成された2重系システムである。ただし、計算機は3台以上で構成してもよい。
第1図において、計算機100,101はそれぞれ稼働系計算機,待機系計算機を示している。系切り替えにより、稼働系計算機100は待機系計算機として、稼働系計算機101は稼働系計算機として動作する。
各計算機100,101は、中央演算処理装置(以下MPUと記す)110と主メモリ111,入出力制御装置112を備え、これらはプロセッサバス120によって接続されている。入出力制御装置112には、ディスク装置113や拡張バス121が接続される。
拡張バス121には、計算機の機能を拡張するための回路が接続される。一般的には回路が実装された拡張ボードを、スロットコネクタに挿入する形態で拡張バス121に接続される。ただし一部の機能は計算機本体内に実装され、拡張バスに直接内部で接続されている場合もある。本実施形態に係る計算機100,101は、拡張ボードとしてSCSI(Small Computer System Interface)ボード114,リンケージバスポート(Linkage Bus Port)(以下LXPと記す)ボード115,Ethernetボード116を備える。
SCSIボード114には共有ディスク装置102が接続されている。この共有ディスク装置102は、系切り替え時の処理の引き継ぎデータなどを記憶するのに使用される。なお、SCSIバスの代わりにUSB(Universal Serial Bus)といったバスを使用する場合もある。
Ethernetボード116はEthernetネットワーク103に接続され、このネットワーク103に接続された他の計算機などと通信を行う。本実施形態ではネットワーク103には、プラント900を管理・制御するための複数のコントローラ910が接続されている。なお、Ethernetの代わりに、トークンリングやATMといったネットワークを使用する場合もある。
LXPボード115は、系切り替え制御のための機能拡張ボードであり、専用の伝送路であるリンケージバス104を介して接続される。LXPボードは計算機100,101相互間での相手計算機の生存監視と、系切り替えに必要な強制割込,動作停止,計算機再起動の各指示メッセージの送信、さらに各指示メッセージ受信時の自計算機における指示内容の実行を行う。
このような2重系システムにおいて、稼働系計算機100,待機系計算機101ともに正常な状態では、稼働系計算機100の主メモリ111にはOS130,管理プログラム131,管理通信プログラム132、およびアプリケーション(AP)135がロードされ、管理プログラム131,管理通信プログラム132、およびアプリケーション135がOS130上で実行されている。同様に、待機系計算機101の主メモリ111にも同じプログラムがロードされ、OS130,管理プログラム131、および管理通信プログラム132は実行されているが、アプリケーション135は実行されていない。さらに各計算機100,101の主メモリ111には割込処理ルーチン133がロードされている。
アプリケーション135は、該2重系システムの用途たる処理を行うプログラムであり、本実施形態の場合、ネットワーク103を介して各コントローラ910から送られるデータの処理・記録を行うものである。
管理プログラム131は、稼働系計算機と待機系計算機の切り替え処理を行うプログラムである。本プログラムはLXPボード115に対してメッセージ送受信要求や動作指示を行い、また、管理通信プログラム132に対して生存通知メッセージの送受信要求を行う。
管理通信プログラム132はEthernetボード116を使いネットワーク103を介して、他計算機と生存通知メッセージの送受信を行う。メッセージ送受信はTCP/IPプロトコルを使って実行する。本プログラムは予め決められたTCPポートで他計算機からの接続を待ち、接続された場合にはメッセージを受信して本プログラム内で内容を保持し、管理プログラム131からの読み出し要求に対して保持している内容を返す。また管理プログラム131からの生存確認メッセージ送信要求を受け、2重系を構成している他計算機上の管理通信プログラム132が待機しているTCPポートに対してメッセージを送信する。
割込処理ルーチン133は、MPUに対してマスク不可能割込信号が入力されたときに起動されるように登録される。そして、マスク不可能割込信号発生時に障害情報の保存等、障害発生時の処理を実行する。ただし、本実施形態ではマスク不可能割込信号により起動するように登録しているが、MPUが提供する他の割込機構を使って実現してもよい。なお、本実施形態の場合、割込処理ルーチン133が独立したプログラムとなっているが、OS130の種類によってはOSの一部として割込処理ルーチンが提供される場合もあり、この場合はOS130の割込処理ルーチンから呼び出されるサブルーチンとして必要な処理を組み込むことにより同一の機能が実現できる。
次に、本実施形態に係る多重系システムの系切り替え方法について説明する。
第2図に系切り替え処理のタイムチャートを示す。
稼働系計算機100,待機系計算機101がともに正常な状態では、次のような処理が行われる。
管理プログラム131は、一定時間毎に管理通信プログラム132およびLXPボード115に対して、生存通知メッセージ送信を要求する(301)。管理通信プログラム132はEhternetボード116を駆動し、ネットワーク103経由で他計算機に対して生存通知メッセージ401を送信する(302)。一方、LXPボード115はリンケージバス104経由で他計算機に対して生存通知メッセージ402を送信する(303)。
前記の生存通知メッセージ401,402を受信した待機系計算機101の管理通信プログラム132およびLXPボード115は、各々受信結果を記憶する(304,305)。そして、待機系計算機101の管理プログラム131は、一定時間毎に自計算機の管理通信プログラム132およびLXPボード115に対して、稼働系計算機からの生存通知メッセージを受信したかどうか確認する(306)。一定時間以上、稼働系計算機からの生存通知メッセージ401,402が双方とも受信されない場合には、稼働系計算機に障害が発生したものと判断する。
ここで生存通知メッセージを2つの経路で伝送するのは、各伝送経路や伝送路への接続回路に発生した障害を、計算機自体の障害と区別できるようにするためである。一方の生存通知メッセージのみが受信されない場合には、伝送路で障害であると判断し、画面表示やログ記録などの形で警告を発するに止め、系切り替えは実施しない。
第2図では稼働系計算機100から待機系計算機101への向きの生存確認メッセージの送信動作のみが示されているが、実際には逆向きの生存確認メッセージの送信も行っており、稼働系計算機100での受信確認処理306および待機系計算機101での送信処理301が一定時間毎に実行されている。
次に、稼働系計算機100に障害が発生した場合の動作について説明する。
障害モードは複数考えられるが、第1に、OS内部で無限ループが発生するなどの要因でハングアップ状態になった場合を説明する。
OS内部での障害発生により管理プログラム131の動作はストップし、生存通知メッセージの送信処理301が一定時間毎に実行されなくなる。待機系計算機101の管理プログラム131は、一定時間451の間隔で行う受信メッセージ確認306の際に、2つの生存通知メッセージ401,402とも受信されていないことを検出すると、稼働系計算機100に障害が発生したものと判断する。障害発生を検出した待機系計算機101上の管理プログラム131はLXPボード115に対して強制割込指示の送信を依頼し(307)、LXPボード115は稼働系計算機のLXPボードに対して強制割込指示メッセージ403を送信する(308)。
稼働系計算機100上のLXPボード115は強制割込指示メッセージ403を受信すると、ハードウェア的にマスク不可能割込信号404を発生させる(309)。MPUはこの割込信号を受け、割込処理ルーチン133を起動する。
割込処理ルーチン133は起動時に、まず、マスク不可能割込信号を無効化、すなわち再度マスク不可能割込信号が発生した場合にこれを無視するように設定する(310)。
割込処理ルーチン133は、起動後、相手系計算機101に影響を及ぼす可能性のある自計算機内の構成要素の動作停止を指示する(311)。本実施形態の構成の場合、SCSIボード114およびEthernetボード116がこの様な構成要素に相当し、各ボードにあるレジスタ中の動作停止を指示するビットをセットすることにより動作を停止させる。これにより相手系計算機101が共有ディスク102やネットワーク103にアクセスする場合に、障害発生計算機100の影響を受けなくなる。なお、構成要素の種類によってはレジスタ中の動作可能ビットをクリアすることにより、動作停止を指示する場合もある。
次に割込処理ルーチン133は、LXPボード115に対して以後の他計算機からの指示メッセージを無視するように設定し(312)、障害情報の保存を実行する(313)。障害情報の保存完了後、割込処理ルーチン133は停止し(314)、障害が発生した計算機100は停止状態となる。
障害情報の保存処理313では、主メモリ111の内容や、計算機本体および各機能拡張ボードの動作状態を表す各々のレジスタの内容などを保存する。また、障害情報以外に、通常のシャットダウン処理のうち、該障害発生後の条件下でも実行可能な処理を実行してもよい。例えば、ディスク装置113に対するキャッシュ内容の書き出しを実行すれば、該障害発生計算機のディスク内容の整合性が保たれ、内容を救出できる可能性が高くなる。
待機系計算機101の管理プログラム131は、強制割込指示の送信(307)後、一定時間452をおいて、LXPボード115に対して動作停止指示の送信を依頼し(315)、またこの時点で、待機系計算機101でロードされていたアプリケーション135を起動して稼働系計算機100の処理を引き継ぎ(318)、自計算機を新たな稼働系に設定する。これで系切り替えは完了する。
LXPボード115は、管理プログラム131からの動作停止指示送信依頼により、動作停止指示メッセージ405を送信する(316)。しかし、障害発生計算機100では割込処理ルーチン133によりLXPボードに対して指示メッセージを無視する設定が行われている(312)ため、この動作停止指示メッセージ405は無視され、障害情報の収集(313)が継続されることになる。
障害発生計算機内の構成要素の動作停止処理311において、各構成要素に、動作状態表示レジスタなどの動作状況確認手段が備わっている場合、動作停止処理311による動作停止を確認する手順を追加してもよい。この動作停止の確認において動作停止指示が失敗していると判断された場合、割込処理ルーチン133はその処理を停止する。これにより、他計算機からの指示メッセージを無視する処理が行われず、待機系計算機のLXPボードからの動作停止指示メッセージ405を受けたLXPボードにより計算機100は強制的に停止状態となり、待機系計算機101は障害発生計算機100の影響を受けずに処理を引き継ぐことになる。
また、障害情報保存処理313の先頭で、ディスク装置の異常など、障害情報保存のための準備が出来ていないと判断された場合、割込処理ルーチン133はLXPボードのメッセージ無視の設定を解除し(319)、障害情報保存処理を停止するようにしてもよい。この場合も、待機系計算機からの動作停止指示メッセージ405を受けて障害発生計算機100は強制的に停止状態となる。
第2の障害モードとして、一般的にカーネルパニックと呼ばれる、OSが重大な論理矛盾を検出して継続運転不能と判断した障害について説明する。この場合の処理のタイムチャートを第3図に示す。
OSは論理矛盾を検出すると、割込処理ルーチン133を起動する(331)。割込処理ルーチンは、第2図で説明した場合と同様に、自計算機内の構成要素の動作停止を指示し(311)、次にLXPボード115に対して以後の他計算機からの指示メッセージを無視するように設定し(312)、その後、障害情報の保存処理を行い(313)、停止する(314)。
OSに障害が発生し、割込処理ルーチンへ実行が移ることにより、稼働系計算機100上の管理プログラム131が動作しなくなるため、待機系計算機に対して生存通知メッセージ401,402が送信されなくなる。待機系計算機101上の管理プログラム131は、前述のとおり、生存通知メッセージ401,402ともに受信されないことを検出し(306)、強制割込指示メッセージ403および計算機動作停止指示メッセージ405の送信を行う(308,316)。
強制割込指示メッセージ403を受けた時点で、すでに割込処理ルーチン133が起動しLXPボードに対してメッセージ無視の設定が行われている(312)ため、強制割込指示メッセージ403は無視され(332)、障害情報の収集313が継続される。引き続いて受け取る動作停止指示メッセージ405も同様に無視される(333)。
なお、ここではOSが割込処理ルーチン133を呼び出すものとしたが、マスク不可能割込信号を発生させて割込処理ルーチン133を起動してもよい。またOSの種類によってはOS自身が障害情報の保存(メモリダンプ)を行うものもあるが、その実行前に登録した処理を呼び出す機能が提供されている場合には、割込処理ルーチン133から障害情報の保存(313)を除いた処理を登録しておくことにより、同等の処理を実現することができる。
第3の障害モードとして、ハードウェアの部分的な障害について説明する。ここで説明するのは、障害の影響が前述した2つの障害モードとしては現れないが、多重系システムの本来の用途たる処理を継続することができないものであり、何らかの検出方法により検出されたものである。この場合の処理のタイムチャートを第4図に示す。
このような障害の発生の検出には、管理プログラム131による検出、専用の障害検出サブプログラム134による検出、アプリケーション135での異常検出などがある。これらのうち、管理プログラム以外で障害を検出した場合は、障害発生の検出を管理プログラム131に通知する(341,342)。管理プログラム131は、自分自身での障害検出、または障害検出サブプログラム134やアプリケーション135からの障害通知を受けて、割込処理ルーチン133を起動する(343)。割込処理ルーチン133は第3図で説明したOSの論理矛盾検出時と同一の処理手順を実行し、系切り替えが実施される。
なお、障害発生をハードウェア機構により監視している場合は、このハードウェアが割込を使用して異常検出結果を管理プログラム131や障害検出サブプログラム134に通知するか、もしくは管理プログラムや障害検出サブプログラムの側が定期的に該ハードウェアをポーリングして異常検出の有無を確認して、同様の処理を行う。
また、メモリ内容の破壊やハードウェア的な動作不全の程度により、割込処理ルーチン133の起動ができない場合がある。この場合、障害発生計算機100は重度の制御不能状態であり、予測できない動作をして、待機系計算機101の動作に影響を与える恐れがある。
この場合は、障害発生計算機のLXPボード115に対して他計算機からの指示メッセージを無視する設定(312)が行われない。従って、待機系計算機からの動作停止指示メッセージ405を受けたLXPボード115が計算機100を強制的に停止状態とする。従って障害発生計算機100を待機系計算機101の動作に確実に影響を与えない状態としてから処理の引き継ぎを実施することになるので、確実に系の切り替えができる。
生存通知メッセージが受信されず障害が発生したと判断するまでの時間451は、第3図で示すように、障害が発生してソフトウェア的に割込処理ルーチン133が呼び出され、LXPボードに対する設定(312)を完了するまでの時間に対して、やや長く設定しておく。また強制割込指示メッセージ送信と計算機動作停止指示メッセージ送信の間隔452は、第2図に示すように、強制割込指示(307)による稼働系計算機100の割込処理ルーチン133が起動され、LXPボードに対する設定(312)を完了するまでの時間に対して、やや長く設定しておく。
系の切り替え時間、すなわち処理引き継ぎ完了までの時間は、おおよそ時間451と時間452の合計となる。この系の切り替え時間は、メモリダンプなどの障害情報の保存313に要する時間に対して十分短く、障害情報の保存と系切り替え時間の短縮が両立される。
なお、以上の説明では稼働系計算機100に障害が発生した場合の処理について説明してきたが、待機系計算機101に障害が発生した場合も、処理の引き継ぎによる稼働系,待機系切り替えがないことを除いて、同一の処理が行われる。
本実施形態では、各計算機がLXPボード115とEthernetボード116を備えていたが、各計算機にEthernetボード116を2つ備え、Ethernetネットワーク103を二重化して生存監視メッセージの通信を行う構成の多重系システムにおいても、同様の方法による系切り替えが可能である。このようなシステムにおいては、OSの論理矛盾検出やハードウェアの部分的な障害検出という障害モードに対して、障害発生計算機100における障害情報の保存313と待機系計算機101への処理引き継ぎ318による系切り替え動作が可能である。ただし強制割込指示403を送ることが出来ないので、ハングアップ状態の障害モードでは障害情報の保存が出来ない。また、動作停止指示メッセージ405を送ることが出来ないので、障害の程度によっては障害発生計算機100の異常動作が待機系計算機101に影響を与える可能性が残る。
以下、各部の詳細について説明する。
まずLXPボード115について説明する。第5図にLXPボード115の内部構成を示す。
図示するようにLXPボード115は、拡張バス121との入出力を担当する拡張バスインタフェース170,リンケージバス104を介したメッセージ処理を行うリンケージ制御用プロセッサ171、このリンケージ制御用プロセッサ171が実行するプログラムを格納するメモリ175,メッセージとリンケージバス上の電気信号との変換を行う伝送路インタフェース172,メッセージの一時格納用バッファであるメッセージ記憶用メモリ173,電源電圧の立ち上がりを検出する電源電圧検出回路174,拡張バス側からリンケージ制御用プロセッサ171の動作状態を確認したり動作方法を指示するための動作制御レジスタ176を備えている。
動作制御レジスタ176は拡張バス121から読み書きできるので、このLXPボード115が搭載されている計算機上で動作するソフトウェアから動作状態を確認したり動作方法を指示することが可能である。この動作制御レジスタ176は、後述する強制割込指示禁止ビット1761,動作停止指示禁止ビット1762,再起動指示禁止ビット1763を含む。
LXPボードの初期化動作を説明する。LXPボードは、接続されている計算機とは独立に動作し、計算機のリセット信号自体を扱う必要がある。このため、LXPボードの初期化処理は、計算機のリセット処理とは独立に、LXPボードへの電源投入時にのみ行う。このため、拡張バス121経由で供給される電源電圧を監視する電源電圧検出回路174が電源電圧の立ち上がりを検出して、LXPボード内の各構成要素に対して初期化を指示する初期化信号184を出力する。拡張バスインタフェース170,リンケージ制御用プロセッサ171、および伝送路インタフェース172は、この初期化信号184を受け、メモリのクリア,各種状態情報のクリア,レジスタのクリア,リンケージバスのリセットなどの初期化処理を実行する。
次にメッセージ送信機能について説明する。管理プログラム131は拡張バス121を介して、拡張バスインタフェース170にメッセージの送信要求を行う。拡張バスインタフェース170は、拡張バス121とリンケージバス104のデータ転送速度が異なるため、送信するメッセージを一旦速度緩衝用バッファとしてメッセージ記憶用メモリ173に格納し、リンケージ制御用プロセッサ171に対してメッセージの到着を通知する。リンケージ制御用プロセッサ171はこの通知を受けてメッセージ記憶用メモリ173からメッセージを取り出し、伝送路インタフェース172に転送し、リンケージバス104を介して、メッセージを他計算機のLXPボードに送信する。
最後にメッセージ受信処理機能について説明する。他計算機のLXPボードからリンケージバス104を経由して指示メッセージが届いた場合、その種類に応じて以下のいずれかの処理を行う。
(1)メッセージが強制割込指示の場合、接続されている自計算機に対して、マスク不可能割込信号線182を通じて、マスク不可能割込信号を出力し、MPU110での処理を割込ルーチン133に切り替える。ただし、レジスタ176の強制割込指示禁止ビット1761がセットされている場合には、本処理を行わず、指示メッセージを無視する。
(2)メッセージが動作停止指示の場合、接続されている自計算機に対してリセット信号線183を通じてリセット信号を継続して出力し続け、これにより計算機を強制的に停止する。ただし、レジスタ176の動作停止指示禁止ビット1762がセットされている場合には、本処理を行わず、メッセージを無視する。
(3)メッセージが再起動指示の場合、接続されている自計算機に対してリセット信号線183を通じてリセット信号を1度出力し、これにより計算機を再起動する。ただし、レジスタ176の再起動指示禁止ビット1763がセットされている場合には、本処理を行わず、メッセージを無視する。
(4)上記以外のメッセージの場合、メッセージ内容をメッセージ記憶用メモリ173に格納する。格納されたメッセージは、その後、管理プログラム131からの要求により、拡張バスインタフェース170,拡張バス121を介して随時読み出される。
第6図に拡張バスインタフェース170の処理手順を示す。
拡張バスインタフェース170は、計算機(拡張バス)からの入出力要求信号、および初期化信号線184からの初期化信号を受けると、要求待ち状態501から抜けて処理を開始し、受けた信号から処理要求の種類を判定する(502)。
処理要求が初期化信号であった場合、内部レジスタや回路の初期化処理(503)を行う。
処理要求が拡張バス121からの読出信号の場合、読み出し要求の対象がレジスタであればそのレジスタ176の内容を読み出し(505)、読み出し要求の対象がメッセージであればメッセージ記憶メモリ173の内容を読み出し(507)、読み出した結果を拡張バス121に送出する(506,508)。
処理要求が拡張バス121からの書込信号の場合、書き込み要求の対象がレジスタであれば書き込み内容をレジスタ176に書き込む(510)。一方、書き込み要求の対象が送信メッセージである場合には、その送信メッセージを一旦メッセージ記憶用メモリ173に格納し(511)、これをリンケージ制御用プロセッサ171に伝送させる(512)。
第7図にリンケージ制御用プロセッサ171の処理手順を示す。
制御用プロセッサ171は、拡張バスインタフェース170からの起動要求、伝送路インタフェース172からのメッセージ受信、および初期化信号線184からの初期化信号のいずれかのイベントにより、イベント待ち状態521から抜けて処理を開始し、そのイベントの種類を判定する(522)。
発生したイベントが初期化信号の場合、通信処理を初期化し、メッセージ記憶用メモリ173に保存されている全メッセージを破棄し、さらにレジスタ176を初期状態に設定する(523)。
一方、発生したイベントが、拡張バスインタフェース170からの起動要求、すなわち、メッセージの送信要求であれば、送信すべきメッセージをメッセージ記憶用メモリ173から読み出し(524)、伝送路インタフェース172に該メッセージを伝送させる(525)。
また、発生したイベントが伝送路インタフェース172からのメッセージ受信イベントの場合、他のLXPボードからの指示メッセージの到着を示している。この場合、受信した指示メッセージの種類を判定し(526)、各々に対応した処理を行う。
メッセージが強制割込指示,動作停止指示,再起動指示のいずれかの場合、既に述べたとおり、レジスタ176中の対応する各禁止ビット(1761,1762,1763)がクリアされていることを確認し(527,529,531)、前述のとおりの信号を出力する(528,530,532)。
前記以外のメッセージの場合、単に受信した指示メッセージをメッセージ記憶用メモリ173に格納する(533)。
次に管理プログラム131について説明する。
管理プログラム131は次の3つの処理を行う。
(1)自計算機が正常に動作していることを他の計算機に通知するため、定期的に生存通知メッセージを送信する。
(2)他計算機から送られてくる生存通知メッセージを監視し、一定時間以上受信されない場合は送信元計算機に障害が発生したものと判断し、他計算機に対して強制割込指示メッセージならびに動作停止指示メッセージを送信する。また、障害発生計算機が稼働系計算機ならば、該計算機で実行していた処理を引き継ぎ、自計算機を新たな稼働系計算機に設定する。
(3)他のプログラムからの呼び出しにより、自計算機に障害が発生したことを認識し、障害情報収集等の割込処理ルーチン133を起動する。
なお、管理プログラム131が自計算機の障害発生を検出する機能を合わせ持っていてもよい。この場合、障害検出時には前記(3)と同様に割込処理ルーチンを起動する。
第8図に前記(1)の生存通知メッセージ送信処理の処理フローを示す。
図示するとおり、この処理では定期的に生存通知を他計算機に対して通知する。すなわち、管理通信プログラム132およびLXPボード115に対して生存通知メッセージ送信を要求し(301)、予め定められた時間だけ待ち状態に移行する(541)処理を繰り返す。
第9図に前記(2)の生存通知メッセージの監視と他系障害発生時処理の処理フローを示す。
図示するように、周期的に他計算機からの生存メッセージの受信状態を確認し、一定時間以上受信できない場合には他系障害発生時処理を実行する。
他系障害と判断するための待ち時間451を決定するために、「通知1待ち回数」,「通知2待ち回数」という変数を設定する。これらの変数の初期値はN回であり、処理563での待ち時間tとの積「N×t」が他系障害と判断するための待ち時間451となる。まずこれらの変数の初期化処理として、各々N回を設定する(551,552)。
次に、管理通信プログラム132では受信したメッセージの内容を記憶しているので、生存通知メッセージ401を受信したかどうかを管理通信プログラム132に問い合わせる(553)。受信されていれば「通知1待ち回数」をN回に設定して再度初期化し(554)、管理通信プログラム132に対しては記憶している生存通知メッセージのクリアを指示する(555)。一方、生存通知メッセージが受信されていなければ、「通知1待ち回数」の値を1減少させる。ただし「通知1待ち回数」の値が負になった場合は0を設定するものとする(556)。
同様にして、LXPボード115は受信したメッセージの内容を記憶しているので、生存通知メッセージ402を受信したかどうかを問い合わせる(557)。受信されていれば「通知2待ち回数」をN回に再設定して(558)、LXPボード115に記憶している生存通知メッセージのクリアを指示する(559)。生存通知メッセージが受信されていなければ、「通知2待ち回数」の値を1減少させる。ただし「通知2待ち回数」の値が負になった場合は0を設定するものとする(560)。
ここで「通知1待ち回数」および「通知2待ち回数」の値を調べる(561)。
両変数とも0となっている場合には、「N×t」で表される待ち時間451以上の間、生存通知メッセージ401および402がともに受信されていないことになるため、他系の計算機に障害が発生したものと判断する。そしてまずLXPボード115に対して強制割込指示メッセージ403の送信を依頼し(307)、次いで一定時間452だけ待ち状態とし(564)、その後、LXPボード115に対して計算機動作停止指示メッセージ405の送信を依頼する(315)。さらに自計算機の設定が待機系計算機である場合には、稼働系計算機の処理内容の引き継ぎを行い(318)、系切り替えを実行する。これらの処理を実行した後は、他系の障害発生計算機は必ず停止状態なので、生存通知メッセージの監視処理は停止する(566)。なお、障害発生計算機を交換しまたは障害要因を取り除き、待機系計算機として二重化システム内に復帰させる場合には、再度本処理を開始する(550)。開始はオペレータによる手動操作でもよいし、本監視処理停止(556)後、別処理を起動して生存監視メッセージの監視を続け、生存監視メッセージを検出した時点で本監視処理を再開する(550)方法でもよい。
処理561にて「通知1待ち回数」および「通知2待ち回数」のいずれか一方のみが0であった場合は、メッセージ伝送路や伝送路への接続回路に障害が発生したと判断し、これを画面表示やログ記録などの形で警告を発する(562)。
処理561にて「通知1待ち回数」および「通知2待ち回数」の両変数が0であった場合を除き、予め定められた時間tだけ待ち(563)、処理553へ戻る。
第10図に前記(3)の自計算機で障害が発生した時の管理プログラム133の処理フローを示す。
この処理は、障害検出サブプログラム134やアプリケーション135からの呼び出しにより起動し(570)、単に割込処理ルーチン133を起動する(343)。割込処理ルーチン133は呼び出し元に処理を戻さない。
次に、割込処理ルーチン133について説明する。
割込処理ルーチン133は、障害発生時に、自計算機上のソフトウェアから起動されるか、または他計算機からの強制割込指示メッセージを受けてLXPボード115から起動され、障害情報の保存およびこれに関連する処理を行う。
第11図に割込処理ルーチン133の処理フローを示す。
割込処理ルーチン133は起動時に、まずマスク不可能割込信号を無効化する(310)。これは、何も処理を行わずに復帰するダミーの割込処理ルーチンを用意し、これをマスク不可能割込に対する処理ルーチンとしてMPUに登録することにより実現する。これにより割込処理ルーチン133の処理中に再度マスク不可能割込信号が発生した場合でも、前記ダミーのルーチンへ処理が移りすぐに割込復帰するので、マスク不可能割込を無視することとなり、割込処理ルーチン133を継続できる。
次に、自計算機の一部、特に他系の計算機に影響を及ぼす可能性のある構成要素の動作停止を指示する(311)。そして動作停止を指示した各構成要素に対して状態を問い合わせ、全ての構成要素が本当に動作停止したかどうかを確認する(581)。動作停止に失敗したものがある場合、割込処理を打ち切る(590)。動作停止を指示した各構成要素が全て停止していれば、LXPボード115に対して以後の他計算機からの指示メッセージを無視するように設定する(312)。
続いて障害情報の保存が可能な状態かどうかを調べ(582)、保存が不可と判断された場合は、LXPボード115に対して他計算機からの指示メッセージ無視を解除し(319)、割込処理を打ち切る(590)。保存が可能と判断された場合は、実際の障害情報の保存を実行する(313)。障害情報の保存完了後、割込処理ルーチン133は停止し(314)、自計算機は停止状態となる。なお、障害情報の保存完了後、自計算機上のLXPボード115に対してリセット信号の継続発生を指示し、計算機の動作を完全に停止させるようにしてもよい。
割込処理の打ち切りにより停止した場合(590)、自計算機は停止状態となるが、引き続き他計算機から送られてくる動作停止指示メッセージを受けてLXPボード115がリセット信号を継続発生するので、この場合でも動作は完全に停止する。
以上のように、本発明によれば、多重系システムにおいて、障害発生時に、メモリダンプを含む大容量の障害情報の保存を実施しつつ、高速な系切り替えを実現することが可能である。
また、本発明によれば、障害発生系におけるハードウェアやソフトウェアの暴走、および障害発生系における障害情報の保存動作が、系切り替え動作および切り替え後の処理を引き継いだ新稼働系の動作に影響を与えないようにすることが可能である。
産業上の利用可能性
以上のように、本発明は高い信頼性が要求される用途の多重系システムに有効であり、稼働系の計算機に障害が生じた場合に稼働系の計算機が行っていた処理を引き継ぐ待機系の計算機を備えた多重系システムにおいて、いずれか一方の計算機で障害が発生した際に、事後の障害解析が可能となり、復旧措置,再発防止策の実施などに活用でき、システムの信頼性向上に役立つ。
【図面の簡単な説明】
第1図は、2重系システムの構成を示すブロック図であり、第2図は、この2重系システムにおける系切り替え処理の順序と各処理の関係を示したタイムチャートである。
第3図は、OSの論理矛盾検出による系切り替え処理のタイムチャートであり、第4図は、ハードウェア障害検出による系切り替え処理のタイムチャートである。
第5図は、計算機に搭載するLXPボードの構成を示すブロック図であり、第6図は、LXPボードに搭載する拡張バスインタフェースの処理手順を示すフローチャートであり、第7図は、LXPボードに搭載するリンケージ制御用プロセッサの処理手順を示すフローチャートである。
第8図は、管理プログラムの生存通知メッセージ送信処理の処理手順を示すフローチャートであり、第9図は、管理プログラムの生存通知メッセージの監視と他系障害発生時処理の処理手順を示すフローチャートであり、第10図は、管理プログラムの自計算機に障害発生時処理の処理手順を示すフローチャートである。
第11図は、割込処理ルーチンの処理手順を示すフローチャートである。

Claims (2)

  1. 複数の計算機で構成され、稼働系に設定された計算機の障害発生時に、当該計算機が行っている処理を、待機系に設定された計算機が引き継ぐ多重系システムにおいて、
    前記障害発生時に、
    前記障害の発生した計算機で動作しているソフトウェアが前記障害を検出して障害情報の保存を実施し、または待機系の計算機が前記障害を検出して前記障害の発生した計算機に対して障害情報の保存を指示し、
    かつ前記待機系の計算機は前記障害を認識した後に、前記障害の発生した計算機における障害情報の保存終了を待つことなく、自発的に処理の引き継ぎを実施するものであって、
    前記各計算機が、当該計算機上のソフトウェアとは独立に動作する、相互に伝送路を介して接続された機能拡張ボードを各々搭載し、
    前記各機能拡張ボードは、他の計算機に搭載された機能拡張ボードから伝送路を介して受け取るメッセージの内容に従い、当該機能拡張ボードの搭載された計算機に対して割込を発生する機能と当該機能拡張ボードの搭載された計算機の動作を停止する機能を持ち、かつ当該機能拡張ボードの搭載された計算機上で動作するソフトウェアから前記メッセージに対する前記各機能の抑止を指示する機能を持ち、
    他計算機での障害発生を認識した時に、前記障害を認識した計算機に搭載された機能拡張ボードから、前記障害の発生した計算機に搭載された機能拡張ボードに対して、割込発生を指示するメッセージを送信し、さらにその一定時間後に計算機の停止を指示するメッセージを送信し、
    前記障害の発生した計算機に搭載された機能拡張ボードが前記割込指示メッセージに対して発生する割込に対する割込処理において、障害情報の保存を実行し、かつ前記機能拡張ボードに対して、前記割込発生機能と前記計算機動作停止機能の抑止を指示し、後から送信される計算機の停止を指示するメッセージを無視して障害情報の保存を継続することを特徴とした多重系システムの系切り替え方法。
  2. 障害発生時に、該障害発生計算機のソフトウェアにより自発的に障害情報保存を実行し、かつ前記機能拡張ボードに対して、前記割込発生機能と前記計算機動作停止機能の抑止を指示し、後から送信される割込発生指示と計算機停止指示のメッセージを無視して障害情報の保存を継続することを特徴とした請求の範囲第項記載の多重系システムの系切り替え方法。
JP2000521438A 1997-11-14 1997-11-14 多重系システムの系切り替え方法 Expired - Lifetime JP3806600B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1997/004160 WO1999026138A1 (fr) 1997-11-14 1997-11-14 Procede de permutation dans un systeme multiplex

Publications (1)

Publication Number Publication Date
JP3806600B2 true JP3806600B2 (ja) 2006-08-09

Family

ID=14181475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000521438A Expired - Lifetime JP3806600B2 (ja) 1997-11-14 1997-11-14 多重系システムの系切り替え方法

Country Status (2)

Country Link
JP (1) JP3806600B2 (ja)
WO (1) WO1999026138A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101033A (ja) * 1999-09-27 2001-04-13 Hitachi Ltd オペレーティングシステム及びアプリケーションプログラムの障害監視方法
JP2004246621A (ja) * 2003-02-13 2004-09-02 Fujitsu Ltd 情報採取プログラム、情報採取装置および情報採取方法
JP4294568B2 (ja) * 2004-10-04 2009-07-15 富士通株式会社 ディスクアレイ装置及びその制御方法
JP4885735B2 (ja) 2004-11-29 2012-02-29 富士通株式会社 管理プログラム、管理方法及び管理装置
JP4494263B2 (ja) * 2005-03-25 2010-06-30 富士通株式会社 サービスシステムの冗長化方式
JP4487260B2 (ja) * 2005-08-26 2010-06-23 株式会社日立製作所 多重系システム
JP4630234B2 (ja) * 2006-06-15 2011-02-09 株式会社日立製作所 二重系システム
JP2008234196A (ja) * 2007-03-19 2008-10-02 Toshiba Corp 多重化システム及び冗長化システム
JP5061739B2 (ja) * 2007-06-12 2012-10-31 日本電気株式会社 データ処理装置、二重化装置、その障害時系切替方法および障害時系切替プログラム
JP2010055509A (ja) * 2008-08-29 2010-03-11 Oki Electric Ind Co Ltd 障害復旧システム、方法及びプログラム、並びにクラスタシステム
WO2012063306A1 (ja) * 2010-11-08 2012-05-18 三菱電機株式会社 仮想計算機制御装置、仮想計算機制御システム、仮想計算機制御装置の仮想計算機制御方法および仮想計算機制御プログラム
JP2013239110A (ja) * 2012-05-17 2013-11-28 Nec Corp コントローラ、制御システム、制御方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62190543A (ja) * 1986-02-18 1987-08-20 Fujitsu Ltd 通信系障害高速立ち上げ制御方式
JPS6476230A (en) * 1987-09-18 1989-03-22 Nec Corp Fault information dumping system in duplexed constitution multi-processor
JPH03184128A (ja) * 1989-12-13 1991-08-12 Yokogawa Electric Corp 二重化計算機システム
JPH0335339A (ja) * 1989-06-30 1991-02-15 Toshiba Corp Os障害発生時における後始末処理方式
JP3047275B2 (ja) * 1993-06-11 2000-05-29 株式会社日立製作所 バックアップ切り換え制御方法
JP3025732B2 (ja) * 1993-07-16 2000-03-27 株式会社ピーエフユー 多重化コンピュータシステムの制御方式

Also Published As

Publication number Publication date
WO1999026138A1 (fr) 1999-05-27

Similar Documents

Publication Publication Date Title
US6148415A (en) Backup switching control system and method
US4823256A (en) Reconfigurable dual processor system
JP3806600B2 (ja) 多重系システムの系切り替え方法
US5058056A (en) Workstation takeover control
JPH03164837A (ja) 通信制御処理装置の切替方法
US6038681A (en) Multi-array disk apparatus
JP3420919B2 (ja) 情報処理装置
JP2000020336A (ja) 二重化通信システム
JPH06325008A (ja) リセット機能を備えるコンピュータシステム
JPH06197112A (ja) 管理システム
JP2998804B2 (ja) マルチマイクロプロセッサシステム
JP2002182994A (ja) 情報処理システム及びそれに用いる転送制御方法
JP2000349900A (ja) 交換装置の障害処理方式
US6480466B1 (en) Terminal switching apparatus and method
JPH04360242A (ja) 二重化システムの系切替装置およびその方法
JP3411309B2 (ja) マルチキャスト通信システム
JPH04305758A (ja) 情報処理装置
JPS634210B2 (ja)
JPS59123946A (ja) システム制御方式
JPH09311841A (ja) マルチプロセッサシステム
JPH1196034A (ja) 現用・予備切替装置及び方法
JPS6375843A (ja) 異常監視方式
JPH0535517A (ja) 二重化系の切替装置
JP2000222295A (ja) データ転送制御方式
JPH029368B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060515

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130519

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130519

Year of fee payment: 7

EXPY Cancellation because of completion of term