[go: up one dir, main page]

JP3447347B2 - 障害検出方法 - Google Patents

障害検出方法

Info

Publication number
JP3447347B2
JP3447347B2 JP32816293A JP32816293A JP3447347B2 JP 3447347 B2 JP3447347 B2 JP 3447347B2 JP 32816293 A JP32816293 A JP 32816293A JP 32816293 A JP32816293 A JP 32816293A JP 3447347 B2 JP3447347 B2 JP 3447347B2
Authority
JP
Japan
Prior art keywords
program
computer
data
failure detection
failure
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
JP32816293A
Other languages
English (en)
Other versions
JPH07183891A (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP32816293A priority Critical patent/JP3447347B2/ja
Publication of JPH07183891A publication Critical patent/JPH07183891A/ja
Application granted granted Critical
Publication of JP3447347B2 publication Critical patent/JP3447347B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、アプリケーションプロ
グラム及び障害検出プログラムを実行する計算機を備え
た計算機システムにおいて、障害発生の有無を検出する
障害検出方法に関し、特に、ネットワークに接続され
た、複数台の計算機から構成される計算機システムの障
害検出方法に関する。 【0002】 【従来の技術】近年、計算機システムの信頼性に対する
関心が高まってきている。その背景として、従来の計算
機システムにおいて、ダウンサイジングとよばれるよう
に汎用機上にあった機能を端末側に移行する、また、セ
ンタ機能自体をマイクロプロセッサベースの計算機上で
実現することによる低コスト化を図る試みが盛んになさ
れている。ところが、汎用機システムがハードウェアの
故障、誤動作、また、これらを要因とするソフトウェア
障害、ソフトウェア自体の障害に対してその対処手段を
持ち、より高い稼働率や信頼性を実現するのに対し、マ
イクロプロセッサベースの計算機システムでは、障害対
処手段が貧弱であり、高い稼働率や、信頼性を要求され
るアプリケーションを稼働させるのは難しかった。 【0003】ところで、ダウンサイジングにあたって、
特徴的なこととして、計算機の接続形態の変化がある。
従来の汎用機を中心としたシステムが、その端末群と、
電話回線や、シリアルラインによってクラスタ接続され
ていたのに対し、主にほぼ等価なマイクロプロセッサベ
ースの計算機で構成されるシステムでは個々の計算機
は、高速なローカルエリアネットワークに接続されるこ
とが多くなった。 【0004】本発明の課題である計算機システムの高い
稼働率、高信頼性を実現するために、過去に商用化され
たものとして、タンデム社、ストラタス社、セコイアシ
ステム社などによるものがある。これらのシステムは、
ハードウェアのコンポーネントを冗長化し、シングルポ
イントフェイル、つまり、ある一つのコンポーネントが
故障したためにシステム全体が停止しないようにできて
いる。しかし、ハードウェアの冗長化のため、これらシ
ステムは高価なものとなっている。 【0005】近年のハードウェアの信頼性の向上、ま
た、要求される稼働率や信頼性のレベルにより、必ずし
も全てのコンポーネントの冗長化は、コスト面も考える
とそれを要求できない場合も多い。本発明は、かかるシ
ステムに適用され、稼働率、信頼性の向上を図るもの
で、ハードウェアの機構を最小限にとどめ、主にソフト
ウェアによる実現を図る。ハードウェアの冗長度が低い
計算機群で、これらの課題を達成するにあたって、高速
なローカルエリアネットワークが鍵となる。つまり、ハ
ードウェアの冗長度に欠けるところを、ネットワークを
通して、複数台の計算機で補い合うことでカバーする。
このようなアプローチによる製品も幾つか市場に既に出
ていて、DEC社のVAXクラスタ、IBM社のHAN
FSなどがある。DEC社のVAXクラスタと呼ばれる
製品は、デュアルポートディスクを共有する、ネットワ
ークで接続された複数台の計算機で構成され、主系の計
算機に障害が発生した時は、従系の計算機が業務を代行
する。IBM社のHANFSは、同様にディスク装置を
共有するネットワークに接続された複数の計算機から構
成される計算機上で実行されており、複数の計算機間で
ファイル共有サービスを行うプログラムに障害が発生し
た時は、該サービスプログラムは、ディスク装置を共有
している他の計算機上で起動される。 【0006】特開平4−230538には、一定時間間
隔内に応答が受信されるか否かを障害発生の判断の1つ
とした障害ソフトウェアコンポーネントの検出方法、特
開平4−340649には、検知信号の発信によらない
ソフトウェア障害の検出方法が述べられている。特開平
1−61855には、マルチプロセッサシステムにおけ
るバックアッププロセッサの起動方法が述べられてい
る。 【0007】また、障害発生時の主記憶上のデータのダ
ンプの高速化を図るものの先行事例としては、特開平3
−211638に、コアデータを圧縮した上で2次記憶
上に退避する方法が述べられている。また、ディスクデ
ータの一貫性を図るために考えられた先行特許として、
特開平1−277372では、エラー発生すると書き込
んだデータ内容を、ホストシステムに返送する方式が述
べられている。 【0008】 【発明が解決しようとする課題】本発明の課題は、より
少ないハードウェアの投資で、高い稼働率や、信頼性を
提供する計算機システムを構築するための、基本的要素
を提供するものである。 【0009】従来のシステムにおいて、ソフトウェア障
害検知機構がタイムアウトを、その障害発生状態か否か
を判断する基準にしている場合、計算機の負荷状態によ
っては送信のために決められた時間よりも長い時間がか
かってしまい、タイムアウトとなり、障害発生と判断さ
れ、正確な判断が下せないという問題点があった。 【0010】また、障害検知しようとするプログラムが
幾つかのプログラムのサービスを利用して成り立ってい
るとき、あるいは、相互にサービスを利用しあって成り
立っているとき、目的とするプログラムの障害検知を行
うだけでは不十分で、正確な判断ができないという問題
点があった。 【0011】そして、従来の障害検知方式では、検知機
構自体のシングルポイントフェイルに対応できないとい
う問題点があった。 【0012】更に、従来の障害検知、復旧方式では、復
旧手段が一律的であり、障害に対して、必要以上の処置
をとらざるを得ない場合が多いという問題点があった。 【0013】また、ソフトウェア障害が発生し、その復
旧にあたって、ネットワーク内の他の計算機上に移行す
る必要が生じたときに、固定的に移行先の計算機を決め
たのでは、移行先の負荷状況、資源状況によって、必ず
しも移行先として望ましいものとはならない場合がある
という問題点があった。 【0014】より高稼働率、高信頼性システムを構築す
る上で、障害発生時になくてはならない、主記憶データ
の採取を高速に行うことも課題である。稼働率は、故障
修理期間を短くすることによって向上できる。従って、
システム再立ち上げを行う場合に、主記憶データのダン
プ時間を短くすることは、稼働率向上に寄与する。 【0015】また、主記憶上にキャッシュされたディス
クデータの一貫性を維持することを課題としており、こ
れによりシステム再立ち上げの場合、ディスク上に構築
されたファイルシステムの一貫性回復のために要する時
間を最小に押さえることができる。 【0016】また、データベースプログラムなどの保証
すべき信頼性が特に高いアプリケーションに利用される
べき機能で、全てのディスクに対する書き込みオペレー
ションに対し、成功か不成功かの場合に、更新後、更新
前の状態を必ず保証することにより、従来アプリケーシ
ョンプログラムの中で行っていたデータ一貫性保持操作
を簡略化し、かつ、ハードウェアレベルでデータの一貫
性を保証し、システムの高速化を図ることも課題であ
る。 【0017】本発明は、上記のような問題点を解決し、
課題を達成するためになされたもので、より少ないハー
ドウェア開発で、より高い計算機システムの稼働率、信
頼性を実現することを目的とする。 【0018】 【課題を解決するための手段】この発明に係る障害検出
方法は、アプリケーションプログラム及び障害検出プロ
グラムを実行する計算機を備えた計算機システムにおい
て、障害発生の有無を検出する障害検出方法であって、
上記計算機は、上記アプリケーションプログラムの実行
に際し、計算機の付加状態を示す値を定期的に採取し、
負荷情報と前記負荷情報に対応した送信頻度情報とを有
する被検側頻度表を参照して、採取された値に応じた送
信頻度を設定すると共に、前記送信頻度でメッセージを
送信し、 上記計算機は、上記障害検出プログラムの実行
に際し、計算機の負荷状態を示す値を定期的に採取し、
負荷情報と前記負荷情報に対応した障害検知頻度情報と
を有する障害検出側頻度表を参照して、採取された値に
応じた障害検知頻度を設定すると共に、上記障害検知頻
度で上記メッセージを受信しない場合に、上記アプリケ
ーションプログラムに障害が発生したと判断することを
特徴とする。 【0019】 【0020】 【0021】 【0022】 【0023】 【0024】 【0025】 【0026】 【0027】 【0028】 【0029】 【0030】 【0031】 【作用】この発明における障害検出方法は、アプリケー
ションプログラム及び障害検出プログラムを実行する計
算機を備えた計算機システムにおいて、障害発生の有無
を検出する障害検出方法であって、上記計算機は、上記
アプリケーションプログラムの実行に際し、計算機の付
加状態を示す値を定期的に採取し、負荷情報と前記負荷
情報に対応した送信頻度情報とを有する被検側頻度表を
参照して、採取された値に応じた送信頻度を設定すると
共に、前記送信頻度でメッセージを送信し、上記計算機
は、上記障害検出プログラムの実行に際し、計算機の負
荷状態を示す値を定期的に採取し、負荷情報と前記負荷
情報に対応した障害検知頻度情報とを有する障害検出側
頻度表を参照して、採取された値に応じた障害検知頻度
を設定すると共に、上記障害検知頻度で上記メッセージ
を受信しない場合に、上記アプリケーションプログラム
に障害が発生したと判断する。このため、メッセージ
到着に要する時刻、計算機の負荷によって遅れること
あっても、タイムアウトを障害発生か否かの判断の1
つにすることができる。 【0032】 【0033】 【0034】 【0035】 【0036】 【0037】 【0038】 【0039】 【0040】 【0041】 【0042】 【0043】 【0044】 【実施例】 実施例1.本実施例における計算機システムの例を図1
を用いて説明する。103および104は独立した計算
機で、ネットワーク101,102にそれぞれ接続され
ている。図中には計算機は2台しか描かれていないが、
台数に制限はない。主/副形態で、機能の冗長性を実現
する場合は、主/副それぞれの計算機からアクセスでき
るディスク装置110により、二つの計算機間でのコン
システントなデータの引渡しを可能にする。プライマリ
ーサーバ111にあるプログラム群112,113,1
14はそれぞれ依存関係を持つアプリケーションプログ
ラム、つまり、被検プログラムに相当する。106,1
07,108は障害検出プログラムで、被検プログラム
が実行されている同一計算機上で、また、ネットワーク
内の違う計算機上で実行される。109は、これら障害
検知機構のセクションの開始/終了などのサービスを行
うチェックエージェントプログラムである。 【0045】障害検知機構は、アプリケーションプログ
ラム(被検プログラム)の中で処理される部分と障害検
出プログラムの中で処理される部分に分かれて存在して
いる。図2は本実施例による障害検知機構のソフトウェ
ア構成を示している。被検プログラム201は、計算機
の負荷状況を調査する負荷検出部202と、図3にその
内容を示す負荷に対しての障害検知頻度を示す頻度表2
03と、障害検出信号を障害検出プログラムに送出する
送信部204を含んでいる。一方、障害検出プログラム
は、202に等価な負荷検出部206,203に等しい
頻度表207、被検プログラムからの障害検出信号を受
信する受信部208を含んでいる。被検プログラム20
1は、一定期間中に何回かの割合で送信部204から”
私は正常である”旨のメッセージを障害検出プログラム
205に送信している。障害検出プログラム205の受
信部208はそのメッセージを受け取り、その内容また
はメッセージが到着するか否かで被検プログラムが正常
であるか否かを判断している。 【0046】そのため、ソフトウェア障害検知機構がタ
イムアウト(次のメッセージが到着すべき時刻に到着し
ない場合に異常であると判断するまでの時間)を障害発
生状態か否かを判断する基準にしているので、計算機の
負荷状態によっては、一律な判断基準では正確な判断が
下せないという問題点があった。そこで、双方のプログ
ラムは、計算機の負荷状態を定期的に採取し、その値か
ら、障害検知頻度を頻度表に従って設定する。例えば、
頻度表の内容が図3のよう場合、負荷が0のときは頻度
は10であるから、双方のプログラムは一定期間中に1
0回障害検知のためのメッセージのやり取りを行うこと
になる。なお、負荷は計算機の稼動率とジョブキューの
長さで決まる。 【0047】また、なぜ双方のプログラムで、負荷検出
部と頻度表を持つかを説明する。被検プログラムで、計
算機の負荷状態により送信頻度を変えているため、障害
検出プログラム側のタイムアウト値も変える必要があ
る。そのため、障害検出プログラム側でも被検プログラ
ムと同様の処理を行い、新しいタイムアウト値を設定す
る。 【0048】被検プログラムと障害検出プログラムの中
の負荷検出部は、オペレーティングシステムの問い合わ
せ手段を用い、ジョブキューの長さと計算機の稼動率に
より得る。ただし計算機の負荷状況は急峻に変化するこ
とがあるので、双方の負荷検出値に差異が生じることを
防ぐために、負荷検出部には十分長いサンプリング期間
を持たせる。負荷状況はたえず変化するものなので、負
荷は一瞬一瞬の細かい値の検出ではなく、その時間帯の
大まかな傾向値とした方がより実際的である。 【0049】また、被検プログラムと障害検出プログラ
ムに分けているのはプログラムの作り勝手によるため
と、独立したプログラムにすることにより、被検プログ
ラム側で検出信号を送信できない状態に陥った場合、障
害検出プログラム側ではタイムアウトを障害発生か否か
の判断の1つにするためである。 【0050】以上のようにこの実施例では、該システム
上で走行するソフトウェアに発生する障害を検知し、障
害状態から回復せしめることを特徴とする計算機システ
ムであって、該障害検知に用いる、被検ソフトウェア自
身の送出する、検出信号の送出頻度を、該システムの負
荷状況により調整する。 【0051】そのために計算機システムの負荷状況検出
手段、および、計算機システムの負荷状況と、障害検知
頻度の頻度表を、検知信号送信側、つまり、被検プログ
ラムと検知機構にそれぞれ持つことによって、計算機シ
ステムの負荷状況によって、障害検知頻度の調整を行う
ようにしている。 【0052】実施例2.この実施例では、被検プログラ
ム側の障害検知信号中に、障害検知信号の送信間隔情報
(インターバル情報ともいう)を送り、それをもとに、
障害検出プログラムがタイムアウト時間を設定する例に
ついて述べる。 【0053】図4はこの実施例の障害検知機構のソフト
ウェア構成を示している。被検プログラム401は、計
算機の負荷状況を調査する負荷検出部402と、図5に
その内容を示す負荷に対しての障害検知の頻度と、障害
検出プログラムへ送信する障害検知のインターバル情報
を示す頻度表403と、障害検出信号を障害検出プログ
ラムに送出する送信部405を含んでいる。一方、障害
検出プログラム406は、被検プログラムからの障害検
出信号を受信する受信部407を含んでいる。被検プロ
グラムは、計算機の負荷状態を定期的に採取し、その値
から頻度表に従って障害検知頻度を設定し、また、頻度
表から障害検知信号の一部として送るべき送出情報を設
定する。例えば、図5の501ならば、負荷が0の時は
一定期間に10回の頻度で、被検プログラムは送出情報
1を含む障害検知信号を、障害検出プログラムに送信す
る。障害検出プログラムは、タイムアウト値を送出情報
に合わせて設定して、障害か否かの判断を行う。 【0054】これは被検プログラムが正常か否かを障害
検出プログラムにおいて、ある一定期間内に次のメッセ
ージが到着するか否かでも判断しているためである。ま
た、被検プログラム側で負荷の状況により、頻度表を参
照して検出信号の送信間隔を変えているので、その値を
送出情報として障害検出プログラムに知らせる。これに
より障害検出プログラム側では送出情報により被検プロ
グラム側での変化に合わせてタイムアウト値の変更を行
うことができる。 【0055】以上のようにこの実施例では、障害検出信
号に検知頻度調整のための情報を付加することを特徴と
している。 【0056】実施例3.障害検知しようとするプログラ
ムが幾つかのプログラムのサービスを利用して成り立っ
ているとき、あるいは、相互にサービスを利用しあって
成り立っているとき、目的とするプログラムの障害検知
を行うだけでは不十分で正確な判断ができない。そのた
めこの実施例では、監視すべきプログラム、および、監
視すべきプログラムがそのサービスを利用しているプロ
グラムとのプログラム間の依存関係を示す表を、障害検
出機構に持つことにより、上記依存関係を持つプログラ
ムの監視を可能にする例について述べる。 【0057】被検プログラム、障害検出プログラムは、
実施例1または、実施例2の機能を持つ。図6は計算機
システム上で、ある瞬間のプログラムの実行状況を示し
た図である。アプリケーションプログラムA(60
2)、アプリケーションプログラムB(603)、アプ
リケーションプログラムC(601)、障害検出プログ
ラム604が実行されている。障害検出プログラム60
4は、図7に詳細を示すアプリケーションプログラム間
の依存関係表605、各アプリケーションからの障害検
出信号を受信する受信部606を含んでいる。 【0058】この依存関係表605は、つぎのようにし
て設定する。例えば、プログラムAを作る時、依存する
プログラムはプログラムBとCであると判る。プログラ
ムBは、プログラムAに依存しており、またプログラム
AをとおしてプログラムCに依存している。プログラム
Cは、どのプログラムにも依存していない。このよう
に、各プログラム間の依存関係がわかるので、障害検出
プログラムを作成するときにこれを依存関係表605と
して持たせる。 【0059】図7は、アプリケーションプログラム間の
依存関係を表す依存関係表で、例えば、AはCとBに依
存しており(701)、BはA、AはさらにCに依存し
ており(702)、Cはサービスは提供するがいずれの
プログラムにも依存していない(703)ことを示すも
のである。障害検出プログラム604は、この依存関係
表を参照し、例えばAのプログラムをモニタする場合に
は、CおよびBのプログラムの障害検知も行う。 【0060】このようにアプリケーションプログラム間
の依存関係表を持つことにより監視すべきプログラムお
よびこのプログラムが利用するプログラムを総合的に監
視することが可能になる。 【0061】以上のように、この実施例では、該システ
ム上で互助動作する複数のソフトウェアに発生する障害
を検知し、障害状態から回復することを目的とし、該複
数ソフトウェアの管理情報を持ち、該管理情報中に記述
される全てのソフトウェアについて、障害検出、およ
び、障害回復を行うことを特徴とする計算機システムに
ついて述べた。 【0062】実施例4.今までの障害検知方式では、検
知機構自体のシングルポイントフェイルに対応できなか
った。この実施例では障害検知機構を2重化することに
より、障害検知機構自体の障害による、システム障害を
回避する例を説明する。 【0063】図8は被検プログラムと障害検出プログラ
ムのソフトウェア構成を示した図である。被検プログラ
ム801は、障害検知信号を主障害検出プログラム80
2、および、副障害検出プログラム803に送信する。
図9に副障害検出プログラムの動作を示す。もし障害が
検出されたならば(901)、副障害検出プログラムは
主障害検出プログラムの状態をチェックし(902)、
健全ならば何もしない。もし健全でなければ、障害検出
プログラム復旧(903)を行う。障害検出プログラム
復旧とは、副障害検出プログラムが主障害検出プログラ
ムを停止させ、副障害検出プログラムが主障害検出プロ
グラムの代わりに被検プログラムの障害に対処する。ま
た、この時副障害検出プログラムは、自分の複製を作
り、以後これに自分を監視させる。なお、当実施例にお
いて主障害検出プログラムは、副障害検出プログラムの
存在を意識しない。 【0064】この実施例では、該システム上で走行する
ソフトウェアに発生する障害を検知し、障害状態から回
復せしめることを特徴とする計算機システムであって、
障害検知機構を2重化することにより、障害検知機構自
体の障害による、システム障害を回避することを特徴と
する計算機システムについて述べた。 【0065】実施例5.上記実施例は1例に過ぎず、副
障害検出プログラムが、主障害検出プログラムのみを監
視する方式もある。図10はこの実施例の被検プログラ
ムと障害検出プログラムの関係を示した図である。 【0066】実施例6.従来の障害検知、復旧方式で
は、復旧手段が一律的であり、障害に対して、必要以上
の処置をとらざるを得ない場合が多かった。この実施例
では、被検ソフトウェアの送出する検出信号によって障
害種類を類別する障害検出機構を有し、障害種類によっ
て障害回復手順を記述した手順情報を持つこと、また、
手順情報の設定手段を持つことによって障害種類に応じ
た障害復旧手段を提供する例について述べる。 【0067】この実施例は実施例1から5にある障害検
知機構に適用されるもので、障害検知信号に応じて、障
害復旧、もしくは、サービスを行う。図11に、障害検
知信号と、障害検出プログラムが起動するサービスの手
順の対応を示す対応表を示す。障害検出プログラムは、
そのプログラム内にこの対応表を含み、障害検知信号を
受けとったならば、対応する手順を実行する。図11に
ついて説明する。正常信号を受けとっている限り、障害
検出プログラムは何もしない(1001)。停止信号を
受けとった時は、障害検出プログラムはタイムアウトを
延期する(1002)。開始信号を受けとった時は、障
害検出プログラムは、該被検プログラムの監視を開始す
る(1003)。終了信号を受けとった時は、被検プロ
グラムの監視を終了または、終了処理を行う(100
4)。障害1信号を受けとった時は、同じ処理を3回リ
トライする(1005)。障害2信号を受けとった時
は、ディスクデータを修復する(1006)。障害3信
号を受けとった時は、他計算機で再実行する(100
7)。 【0068】以上のようにこの実施例では、該システム
上で走行するソフトウェアに発生する障害を検知し、障
害状態から回復せしめることを特徴とする計算機システ
ムであって、被検ソフトウェアの送出する検出信号によ
って障害種類を類別する障害検出機構を有し、障害種類
によって障害回復手順を記述した手順情報を持つことを
特徴とする計算機システムについて説明した。 【0069】実施例7.ソフトウェア障害が発生し、そ
の復旧にあたって、ネットワーク内の他の計算機上に移
行する必要が生じた時に、固定的に移行先を決めたので
は移行先の負荷状況、資源状況によって、必ずしも移行
先として望ましいものとはならない場合があった。そこ
で、この実施例ではあるサービスが実行されていた計算
機に障害が起きた時に、ネットワーク内のどの計算機で
サービスを継続するかを決定するシステムについて述べ
る。すなわち、ネットワーク内の各計算機の負荷状況、
資源状況を表す表と、その更新手段と、起動すべきプロ
グラムと、負荷状況、および、資源状況との対応を示す
表と、負荷、資源状況の比較結果により、指定されたプ
ログラムの起動を行うことによって達成される。 【0070】この実施例が適用される計算機システムの
例を図1を用いて説明する。103および104は独立
した計算機で、ネットワーク101,102にそれぞれ
接続されている。図中には計算機は2台しか描かれてい
ないが、台数に制限はない。主/副形態で、機能の冗長
性を実現する場合は、主/副それぞれの計算機からアク
セスできるディスク装置110により、二つの計算機間
でのコンシステントなデータの引渡しを可能にする。プ
ライマリーサーバ111にあるプログラム群112,1
13,114はそれぞれ依存関係を持つアプリケーショ
ンプログラム、つまり、前述した実施例で述べてきた被
検プログラムに相当する。106,107,108は障
害検出プログラムで、被検プログラムが実行されている
同一計算機上で、また、ネットワーク内の違う計算機上
で実行される。109は、これら障害検知機構のセッシ
ョンの開始/終了などのサービスを行うチェックエージ
ェントプログラムである。 【0071】もし、被検プログラムに障害が発生したと
き、さらに、計算機103自体が稼働不能に陥ったとき
は、スタンドバイサーバ105のアプリケーションプロ
グラム群は、ディスク装置110、または、ネットワー
クを通してディスク装置115のデータが複写されてい
るディスク装置116からデータを引き継ぎ、起動され
る。この時、これらの引き継ぎ処理を行うのは、計算機
104上の障害検出プログラム106である。 【0072】この実施例は、あるアプリケーションプロ
グラムが実行されている計算機が稼働不能に陥ったとき
に、いずれかの計算機で再実行される時に適用されるも
ので、図12にそのソフトウェア構成を示す。障害検出
プログラム1203は、ある計算機上で実行されている
被検プログラム1201から障害検知信号を受けとり、
また、ネットワークに接続された、各計算機の負荷、資
源状況を調査するプログラム1202からの状況報告を
定期的に受ける。障害検出プログラム1203は、被検
プログラム1201の実行条件データをそのプログラム
に含む。 【0073】各計算機の負荷、資源状況を調査するプロ
グラム1202は、オペレーティングシステムの問い合
わせ手段を用い、各計算機の負荷、資源状況を調査す
る。計算機の負荷や資源状況は、報告を受けた時点では
変化していることもあるので、大まかな傾向がわかれば
よいと考え、十分長いサンプリング期間を持たせる。 【0074】実行条件データの例を図13に示す。プロ
グラムAは、計算機の負荷が1以下で、I/O頻度が1
00以下、主記憶残が2以上というのがその実行の条件
である(1101)。プログラムBは、計算機の負荷が
4以下で、I/O頻度が1000以下、主記憶残が0.
1以上というのが、その実行の条件である(110
2)。一方、障害検出プログラム1203は、負荷、資
源状況を調査するプログラム1202から、図14に示
すような情報を定期的に受ける。計算機Aは負荷が0.
1でI/O頻度が10、主記憶残が100である(13
01)。計算機Bは負荷が2で、I/O頻度が50、主
記憶残が10である(1302)。計算機Cは負荷が1
で、I/O頻度が1000、主記憶残が50である(1
303)。これらの情報を照らし合わせた上で、障害検
出プログラムは、障害が発生した被検プログラムをどの
計算機上で再起動するかを決定する。例えば、図13、
および、図14のデータで、プログラムAに障害が発生
したとすると、プログラムAは計算機A上で再起動され
る。 【0075】以上のように、この実施例では、1つ、あ
るいは、複数のネットワークに、複数台接続された計算
機によって構成され、互助動作する計算機システムにお
いて、該システム上で走行するソフトウェアは、障害検
知手段により監視され、該ソフトウェアが障害状態であ
り、かつ、走行中の計算機自体に障害があった時に、ネ
ットワークリンク内の健全な他の計算機上で、該ソフト
ウェアの再起動を行うものである。そのとき、他の計算
機上で該ソフトウェアを再起動すべきとき、ネットワー
クリンク内のいずれの計算機上で起動すべきかに関する
情報をもつこと、また、該情報を生成する手段を有する
ことを特徴とする。 【0076】実施例8.この実施例は、障害発生時の主
記憶上のデータのダンプの高速化を図る例である。主記
憶を分割し、複数のネットワークリンクを通して同時
に、複数の計算機の2次記憶上にダンプすることによ
り、処理の高速化を図る。これは、分割された主記憶領
域に対して、それぞれ、ネットワークリンク、ダンプ先
計算機、その計算機上のデータダンプ用の2次記憶領域
を登録しておくことにより、達成される。 【0077】本実施例は、図15にあるような複数のネ
ットワークで接続された複数計算機上で適用されるので
あるが、高速主記憶データダンプは以下のように実現さ
れる。各計算機は図16に示すような主記憶の管理表を
それぞれ持っている。図16は、計算機0用の管理表を
示している。0から11までの主記憶領域は3つに分け
て管理され、0から3の領域の主記憶データは計算機0
のディスク装置0に(1401)、4から7の領域の主
記憶データはネットワーク0を通して、計算機1のディ
スク装置0に(1402)、8から11の主記憶領域の
データはネットワーク1を通して、計算機2のディスク
装置0に(1403)対応づけられている。計算機に障
害が発生したときは、リセット後の計算機立ち上げ時
に、該管理表に従って主記憶データのダンプが行われ
る。また、システム機構は、図15に示したが、図17
に示すシステムでもよい。 【0078】このようにして、障害発生時になくてはな
らない、主記憶データの採取を高速に行うことができ
る。また、稼働率は、故障修理期間を短くすることによ
って向上できる。従って、システム再立ち上げを行う場
合に、主記憶データのダンプ時間を短くすることは、稼
働率向上に寄与する。 【0079】以上のように、この実施例では、複数のネ
ットワークリンクに複数台接続された計算機によって構
成され、互助動作する計算機システムにおいて、該シス
テム内のある計算機に障害が発生した時は、該計算機の
主記憶内容を、あらかじめ情報設定手段によって設定さ
れたコアダンプ情報によって分割し、定められたネット
ワークリンクを通して自身を含めた該ネットワークリン
ク内の計算機に送出することにより、退避することを特
徴とする計算機システムについて説明した。 【0080】実施例9.この実施例は、主記憶上のバッ
ファにキャッシュされたディスクデータの一貫性を維持
することを課題としており、これはシステム再立ち上げ
の場合、ディスク上に構築されたファイルシステムの一
貫性回復のために要する時間を最小に押さえることを可
能にする。すなわち、チェックサムによる主記憶上のデ
ィスクデータを検証し、自計算機上のディスク装置、お
よび、複写されたデータを持つ他計算機のディスク装置
に、ネットワークを通して書き込みを行うことにより実
現される。 【0081】この実施例は、図1に示すような計算機シ
ステムに適用され、115と116の関係にあるディス
ク装置が本実施例の対象である。すなわち、ディスク装
置115のデータは、ディスク装置115に対して書き
込みがあるたびにディスク装置116に複写される。計
算機103上に読み出された、ディスク装置115のデ
ータに対して、更新が加えられるとブロック毎にチェッ
クサムデータがとられる。 【0082】図18は本実施例による、計算機上のディ
スクデータの管理情報を示したものである。ドライブー
セクタとなっている項目は、正/副ディスク装置の計算
機とドライブ番号を表しており、フラグは、各バッファ
のステートを示し、チェックサムデータには、各バッフ
ァデータ更新の度にチェックサムデータが格納される。
また、図19はステートの種類を示す図である。図18
では、1501において管理されるディスクデータは計
算機Aのディスク装置0で、データの複写先は、計算機
Bのディスク装置0で、第0セクタのデータが格納され
ていることを意味する。このバッファのステートはBU
SYでCPUがデータ参照更新、もしくは、チェックサ
ムデータ計算、書き込み中である。1502のバッファ
は未使用である。1503のバッファは計算機Aのディ
スク装置0で、データの複写先は、計算機Bのディスク
装置0で、第2セクタのデータが格納されている。この
バッファのステートはDIRTYで、ディスク装置に書
き戻す必要のあるデータである。1504のバッファは
未使用である。 【0083】ひとたび、この状態で、計算機103に相
当する計算機が障害を起こし使用不能になった時は、該
計算機をリセット後、再立ち上げの際に、該管理表に基
づき、BUSY、または、DIRTYであるバッファの
内容に対しチェックサム計算を行い、バッファの内容か
ら得られたチェックサムと管理表中のチェックサムデー
タと一致したならば、バッファ内容が正しいものとして
正/副両方のディスクにバッファの内容の書き出しを行
う。このようにして、障害発生時の主記憶上のバッファ
に読み出され変更されたデータもチェックサムにより、
データが破壊されていないことがわかれば、ディスクに
書き戻し、ディスクデータの一貫性を保つことができ
る。 【0084】以上のように、この実施例は、1つ、ある
いは、複数のネットワークリンクに複数台接続された計
算機によって構成され、互助動作する計算機システムで
ある。該計算機システムにおいて、ディスク記憶装置上
のデータは異なる計算機上のディスク記憶装置に多重に
格納されており、データとしてファイルシステム等が構
築されており、該ディスクデータ利用時は該データは主
記憶上のバッファに展開され、主記憶上バッファのデー
タは更新時にチェックサムを実行する。そのとき、該デ
ータを利用中の計算機が障害状態となり、該計算機の停
止後、再起動時に主記憶上のバッファは展開されていた
ディスクデータで、更新済みで、かつ、チェックサムデ
ータによりデータの正当性が認められ、さらに、ディス
ク装置への書き戻しが行われていないデータを、該計算
機のディスク装置、および、データの多重化の行われて
いる他計算機のディスク装置に書き戻すことを特徴とす
るものである。 【0085】実施例10.本実施例はディスク装置への
書き込みの際にもしエラーが発生しても、書き込み前の
データ状態を保証するものである。エラーの要因として
は、電源断、ディスクヘッドの損傷などが有り得る。本
実施例の適用されたディスク装置は、データ書き込みを
図20のフローチャートに示す手順で行う。書き込み要
求があれば、まず書き込み先のセクタのデータを退避す
る(1701)。退避先としてディスク領域を利用する
ことも、他の不揮発性記憶を利用することも可能であ
る。セクタデータは図21に示すような形で退避され
る。すなわち、書き込み先のセクタ番号1601、書き
込み操作が始まったことを示すBEGINマーク160
2、そして、データ1603が退避される。このように
データ退避が終了したならば、データの書き込みを始
め、(1702)、データの更新に成功すると、160
4のCOMMITマークを書き入れる(1703)。仮
に、データの退避中に障害がおきても、ディスクデータ
は保持される。また、データ更新中にエラーが発生した
場合、退避データを調べればCOMMITマークのない
データはデータ更新中であるとわかるので、この退避し
たデータにより元のデータの復旧が可能になる。また、
退避データは不要になると開放する。 【0086】以上で説明した機能は、データベースプロ
グラムなどの、保証すべき信頼性が特に高いアプリケー
ションに利用されるべき機能で、全てのディスクに対す
る書き込みオペレーションに対し成功か不成功かの場合
に、更新後、更新前の状態を必ず保証するディスク装置
である。これにより、従来、アプリケーションプログラ
ムの中で行っていたデータ一貫性保持操作が簡略化さ
れ、かつハードウェアレベルでデータ一貫性が保証され
るため、システムの高速化も期待できる。 【0087】以上のように、この実施例では、データベ
ースプログラムなどの、厳密にデータの一貫性が要求さ
れるプログラムに利用されるディスク記憶装置におい
て、データ更新に当たって、2フェーズコミットメント
を行うことにより、データ更新時に、該ディスク記憶装
置に障害が発生しても、該更新操作前のデータを保証す
ることを特徴とする例について述べた。 【0088】 【発明の効果】この発明の障害検出方法によれば、計算
機は、アプリケーションプログラムの実行に際し、計算
機の負荷を検出し、その負荷に応じてメッセージの送信
間隔を調整し、計算機は、障害検出プログラムの実行に
際し、計算機の負荷を検出し、その負荷に応じてメッセ
ージの受信間隔を調整する。このため、タイムアウトを
使った障害発生の判断がより正確になる。また、アプリ
ケーションプログラムを実行する計算機と障害検出プロ
グラムを実行する計算機とでそれぞれ負荷検出を行うこ
とにより、アプリケーションプログラムを実行する計算
で送信間隔を調整することに関する障害が発生した場
合、障害検出プログラムを実行する計算機側で、アプリ
ケーションプログラムを実行する計算機側の障害の発生
を検出することができる効果がある。 【0089】 【0090】 【0091】 【0092】 【0093】 【0094】 【0095】 【0096】 【0097】 【0098】 【0099】 【0100】
【図面の簡単な説明】 【図1】本発明を適用する計算機システムの例を示す
図。 【図2】本発明を適用したソフトウェア構成例を示す
図。 【図3】本発明における頻度表例を示す図。 【図4】本発明を適用したソフトウェア構成例を示す
図。 【図5】本発明における頻度表例を示す図。 【図6】本発明を適用したソフトウェア構成例を示す
図。 【図7】本発明における依存関係表例を示す図。 【図8】本発明を適用したソフトウェア構成例を示す
図。 【図9】本発明における副障害検出プログラムの動作ア
ルゴリズムを示す図。 【図10】本発明を適用したソフトウェア構成例を示す
図。 【図11】本発明における障害に対する手順についての
対応表の例を示す図。 【図12】本発明におけるソフトウェア構成例を示す
図。 【図13】本発明における被検プログラムの実行条件デ
ータの例を表す図。 【図14】本発明における計算機の負荷、資源状況の調
査結果の例を示す図。 【図15】本発明を適用する計算機システムの例を示す
図。 【図16】本発明における計算機0用の主記憶ダンプ先
の管理表を示す図。 【図17】本発明を適用する計算機システムの例を示す
図。 【図18】本発明における計算機上のディスクデータの
管理情報を表す図。 【図19】本発明におけるバッファのステートの種類を
示す図。 【図20】本発明におけるディスクデータ書き込みアル
ゴリズムを示す図。 【図21】本発明における退避データ形態例を表す図。 【符号の説明】 103 計算機(主) 104 計算機(副) 105 スタンドバイサーバ 106 障害検出プログラム 107 障害検出プログラム(副) 108 障害検出プログラム(主) 109 チェックエージェントプログラム 110,115,116 ディスク装置 111 プライマリーサーバ 112,113,114 被検プログラム 202,206 負荷検出部 203,207 頻度表 204 送信部 208 受信部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−47426(JP,A) 特開 昭63−251845(JP,A) 特開 平4−177547(JP,A) 特開 平2−79143(JP,A) 特開 昭55−78347(JP,A) 実開 昭61−74141(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 11/30

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 アプリケーションプログラム及び障害検
    出プログラムを実行する計算機を備えた計算機システム
    において、障害発生の有無を検出する障害検出方法であ
    って、 上記計算機は、上記アプリケーションプログラムの実行
    に際し、計算機の付加状態を示す値を定期的に採取し、
    負荷情報と前記負荷情報に対応した送信頻度情報とを有
    する被検側頻度表を参照して、採取された値に応じた送
    信頻度を設定すると共に、前記送信頻度でメッセージを
    送信し、 上記計算機は、上記障害検出プログラムの実行に際し、
    計算機の負荷状態を示す値を定期的に採取し、負荷情報
    と前記負荷情報に対応した障害検知頻度情報とを有する
    障害検出側頻度表を参照して、採取された値に応じた障
    害検知頻度を設定すると共に、上記障害検知頻度で上記
    メッセージを受信しない場合に、上記アプリケーション
    プログラムに障害が発生したと判断することを特徴とす
    る障害検出方法。
JP32816293A 1993-12-24 1993-12-24 障害検出方法 Expired - Lifetime JP3447347B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32816293A JP3447347B2 (ja) 1993-12-24 1993-12-24 障害検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32816293A JP3447347B2 (ja) 1993-12-24 1993-12-24 障害検出方法

Publications (2)

Publication Number Publication Date
JPH07183891A JPH07183891A (ja) 1995-07-21
JP3447347B2 true JP3447347B2 (ja) 2003-09-16

Family

ID=18207185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32816293A Expired - Lifetime JP3447347B2 (ja) 1993-12-24 1993-12-24 障害検出方法

Country Status (1)

Country Link
JP (1) JP3447347B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3856855B2 (ja) * 1995-10-06 2006-12-13 三菱電機株式会社 差分バックアップ方式
TW536670B (en) 2000-07-15 2003-06-11 Ibm A method for availability monitoring via a shared database
JP4516306B2 (ja) * 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
JP4918334B2 (ja) * 2006-11-13 2012-04-18 株式会社日立ソリューションズ 情報処理装置、及びシステム監視方法、並びにシステム監視方法をコンピュータに実行させるためのプログラム
US9053060B2 (en) * 2009-09-29 2015-06-09 Canon Kabushiki Kaisha Information processing apparatus having file system consistency recovery function, and control method and storage medium therefor
JP2015056082A (ja) * 2013-09-13 2015-03-23 日本電気株式会社 障害情報収集装置、障害情報収集方法、及び、障害情報収集プログラム
JP6327026B2 (ja) 2014-07-10 2018-05-23 富士通株式会社 情報処理装置、情報処理方法およびプログラム
CN105528202B (zh) * 2014-10-22 2021-01-26 中兴通讯股份有限公司 多控制器系统的资源处理方法及装置

Also Published As

Publication number Publication date
JPH07183891A (ja) 1995-07-21

Similar Documents

Publication Publication Date Title
CA2830530C (en) System and method for failover
KR100575497B1 (ko) 내고장성 컴퓨터 시스템
EP0691610B1 (en) Progressive retry method and apparatus having reusable software modules for software failure recovery in multiprocess message-passing applications
US7793060B2 (en) System method and circuit for differential mirroring of data
US5590277A (en) Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US6986076B1 (en) Proactive method for ensuring availability in a clustered system
US8615578B2 (en) Using a standby data storage system to detect the health of a cluster of data storage servers
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
US6134673A (en) Method for clustering software applications
US7925633B2 (en) Disaster recovery system suitable for database system
US20040205414A1 (en) Fault-tolerance framework for an extendable computer architecture
US20080288812A1 (en) Cluster system and an error recovery method thereof
US20020188891A1 (en) Apparatus and method for building metadata using a heartbeat of a clustered system
JPH09259098A (ja) 分散メモリ型マルチプロセッサシステム及び故障回復方法
CN113326006A (zh) 一种基于纠删码的分布式块存储系统
JP3447347B2 (ja) 障害検出方法
CN116781488A (zh) 数据库高可用实现方法、装置、数据库架构、设备和产品
JP2953639B2 (ja) バックアップ装置及びその方法
JP3467750B2 (ja) 分散オブジェクト処理システム
US20060023627A1 (en) Computing system redundancy and fault tolerance
JP3025732B2 (ja) 多重化コンピュータシステムの制御方式
JP2560875B2 (ja) 情報処理系の障害通知方式
KR20250091983A (ko) 다중구조를 가지는 데이터베이스관리시스템에서의 다중구조화 처리방법
JPH0793173A (ja) コンピュータネットワークシステムおよびそのコンピュータネットワークシステムの計算機に対するプロセス割り当て方法
Sakai Integration of PRIMECLUSTER and Mission- Critical IA Server PRIMEQUEST

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20021217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030624

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040520

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

Free format text: PAYMENT UNTIL: 20070704

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080704

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090704

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100704

Year of fee payment: 7