JP5153310B2 - フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム - Google Patents

フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム Download PDF

Info

Publication number
JP5153310B2
JP5153310B2 JP2007318695A JP2007318695A JP5153310B2 JP 5153310 B2 JP5153310 B2 JP 5153310B2 JP 2007318695 A JP2007318695 A JP 2007318695A JP 2007318695 A JP2007318695 A JP 2007318695A JP 5153310 B2 JP5153310 B2 JP 5153310B2
Authority
JP
Japan
Prior art keywords
node
processing
embedded
user program
input
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.)
Active
Application number
JP2007318695A
Other languages
English (en)
Other versions
JP2009140424A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP2007318695A priority Critical patent/JP5153310B2/ja
Publication of JP2009140424A publication Critical patent/JP2009140424A/ja
Application granted granted Critical
Publication of JP5153310B2 publication Critical patent/JP5153310B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ネットワークを介して相互接続した、複数の独立したノードにより構成され、構成する各ノードにおいて同じ処理を並列実行させることによるフォールトトレラントコンピュータ(Fault Tolerant Computer)システムに関し、該システムにて実行、提供されるサービスは無停止であることを保証して、特にソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のためにシステム稼働中に停止させていたノードを再起動し、稼働中の他のノードは無停止、処理継続のまま、稼働中の他のノードと保有するデータ内容、プログラムの実行状態、入出力等を一致させ、実行状態に移行することにより該ノードをシステムに再度組込むという、ノードの再同期稼働化処理に関するものである。
複数のサブシステムから送出される同一データを二台のホストコンピュータで同時に処理する二重化コンピュータシステムにおいて、二重化運転を開始する際の、処理データの同期合わせ、すなわちマスター系処理データのスレーブ系へのコピー処理(以下、この処理を「スレーブ組み込み処理」という。)を、二台のディスク装置と、系間通信路を用いて行う、ことを特徴とする二重化コンピュータシステムのスレーブ組込方法(特許文献1参照)などが提案されている。
特開平11−73278号公報
ところで、従来のスレーブ組み込み処理では、ノードの再同期稼働化を行うために、稼働中ノードにおける処理を一時停止させてから、データのコピー処理を行い、コピー処理完了後に、組込みノードも含めた全ノードの処理を一斉に再開させることで、ノード間のデータ内容、プログラムの実行状態、入出力等の一致化を図っている。しかし、稼働中ノードを無停止のままで再同期稼働化を実行しようとすると、たとえあるタイミングで稼働中ノードと組込みノードとの間でデータが一致化していたとしても、同期していない異なるタイミングで各々のノードにてプログラムの処理が実施されると、異なるタイミングでのデータの読み書きが発生し、ノード間でデータ内容に違いが生じてくる。またデータ内容が異なれば、これらを参照して行う処理の結果は、同一処理内容であっても異なる可能性があり、ノード間で出力に不一致が生じる可能性がある。
そこで、本発明は上記課題に鑑みてなされたものであり、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードを再度システムに組込む際に、正常稼働中のノードの処理を中断することなく、該ノードを稼働中ノードと処理タイミングを一致化させ、漏れなく必要な処理を実行することを可能とし、フォールトトレラントコンピュータシステムによる高い信頼性の維持、該システムにより実行ないし提供されるサービスの無停止を保証するような、ノードの再同期稼働化の方法を提供することを主たる目的とする。
上記課題を解決するため、本発明によるフォールトトレラントコンピュータシステムは、ネットワークを介して相互に接続された複数のノードを備え、複数のノードの各ノードにおいて同じ処理を独立に並列実行させる。各ノードは、システム内の稼働中のノード(以下「稼働中ノード」という。)は無停止かつ処理を継続させた状態で、停止状態から再起動したノード(以下「組込みノード」という。)を稼働中ノードとの間で処理タイミングを合わせてシステムへ再度組込む、という再同期稼働化処理を行う駆動管理部と、稼働中ノードと組込みノードとの間で、データ内容を含むノードの状態を一致させるデータ一致化処理を行うデータ同期処理部と、を備える。ここで、駆動管理部は、ノードが稼働中ノードである場合には、ユーザプログラムの処理を実行開始する度に、組込みノードに対して処理開始の通知を行い、ノードが組込みノードである場合には、データ同期処理部によって稼働中ノードと当該組込みノードとの間でのデータ一致化処理が完了していた場合に、当該組込みノードが稼働中ノードから受信した処理開始通知を参照して、ユーザプログラムの処理を開始することを特徴とする。
好適には、駆動管理部は、ノードが組込みノードである場合、稼働中ノードから送信されるデータ一致化用データ送信完了通知を受信することによって、稼働中ノードと当該組込みノードとの間でのデータ一致化の完了を判定する。
また、駆動管理部は、入力をトリガーとして処理を実施するユーザプログラムに関して、再同期稼働化処理を行う入力駆動管理部を含むことが好ましい。ここで、入力駆動管理部は、ノードが稼働中ノードである場合には、当該ノードにおいて入力を受信し、ユーザプログラムの処理を開始する度に、組込みノードに対して処理開始の通知及び入力の転送を行い、ノードが組込みノードである場合には、稼働中ノードから転送された入力、又は、当該組込みノードにて直接受信した入力を用いて、ユーザプログラムの処理を実施することを特徴とする。
好適には、入力駆動管理部は、ノードが組込みノードである場合、当該組込みノードが稼働中ノードからの処理開始通知及び転送された入力を受信した時点又は稼働中ノードから転送された入力に対応する入力を直接受信した時点で、データ同期処理部による稼働中ノードと組込みノードの間でのデータ一致化処理が完了していない場合には、ユーザプログラムの処理を行わず、次の処理開始タイミングまで待機する。
また、好適には、入力駆動管理部は、ノードが組込みノードである場合、稼働中ノードから受信した入力に対応する入力を当該組込みノードにて直接受信しているか否かを判定し、直接受信していないと判定した場合には、稼働中ノードから転送された入力を用いてユーザプログラムの処理を実施する。
さらに好適には、ノードが組込みノードである場合、稼働中ノードから受信した入力に対応する入力を当該組込みノードにて直接受信しているか否かを判定し、直接受信していると判定した場合には、稼働中ノードに対して入力の転送の停止を要求するとともに、以後の処理を、当該組込みノードにて直接受信した入力を用いてユーザプログラムの処理を実施する。
加えて、フォールトトレラントコンピュータシステムは、ネットワークに接続され、かつ、ネットワークとは別のネットワークを介して外部システムに接続されるゲートウェイを備えることが好ましい。ここで、ゲートウェイは、外部システムから受け取った入力を複数のノードに転送し、入力に対する処理を複数のノードが並行して略同時に実行した処理結果を受信して比較演算し、比較演算の結果として得られた出力を外部システムに応答として返す。
また、駆動管理部は、周期的に処理を実施するユーザプログラムに関して、再同期稼働化処理を行う周期駆動管理部を含むことが好ましい。ここで、周期駆動管理部は、ノードが稼働中ノードである場合には、タイマイベントが発生してユーザプログラムの処理を開始する度に、組込みノードに対して処理開始通知の送信を行い、ノードが組込みノードである場合には、稼働中ノードから受信した処理開始通知を参照して、当該組込みノードにてユーザプログラムの現時点から次の周期における処理開始タイミングを算出し、算出した次周期の処理開始タイミングに達した際に、稼働中ノードと組込みノードとの間でのデータ一致化処理が完了している場合、組込みノードにてユーザプログラムの処理を開始することを特徴とする。
好適には、周期駆動管理部は、ノードが組込みノードである場合、再同期稼働化処理におけるユーザプログラムの処理開始後に、稼働中ノードと当該組込みノードとの処理開始タイミングの差異を計測し、該差異が所定値より大きい場合は、当該組込みノードにおける処理タイミングを補正することによって、処理開始タイミングの同期を維持する。
また、好適には、周期駆動管理部は、ノードが組込みノードである場合、稼働中ノードから受信した処理開始通知を参照して算出した次の周期の処理開始タイミングに達した時点で、データ同期処理部による稼働中ノードと組込みノードの間でのデータ一致化処理が完了していない場合には、ユーザプログラムの処理を行わず、次の周期の処理開始タイミングまで待機する。
さらに好適には、周期駆動管理部は、ノードが組込みノードである場合、稼働中ノードから受信した処理開始通知を参照し、該通知に含まれる周期情報及び該通知の伝送時間を用いて、当該組込みノードにおけるユーザプログラムの次の周期における処理開始タイミングを算出する。
また、本発明によるフォールトトレラントコンピュータシステムの再同期稼働化処理方法は、ネットワークを介して相互に接続された複数のノードを備え、複数のノードの各ノードにおいて同じ処理を独立に並列実行させるフォールトトレラントコンピュータシステムにおいて、稼働中ノードは無停止かつ処理を継続させた状態で、組込みノードを稼働中ノードとの間で処理タイミングを合わせてシステムへ再度組込む、という再同期稼働化処理を行うための方法である。このフォールトトレラントコンピュータシステムの再同期稼働化処理方法は、稼働中ノードが、ユーザプログラムの処理を実行開始する度に、組込みノードに対して処理開始の通知を行うステップと、組込みノードが、稼働中ノードと当該組込みノードとの間で、データ内容を含むノードの状態を一致させるデータ一致化処理が完了していた場合に、稼働中ノードから受信した処理開始通知を参照して、ユーザプログラムの処理を開始するステップとを備える。
また、本発明に係るプログラムは、フォールトトレラントコンピュータシステムの再同期稼働化処理方法の各処理ステップを、フォールトトレラントコンピュータシステムの備える各ノードコンピュータに実行させることを特徴とする。本発明に係るプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。
なお、本明細書等において、「部」とは、物理的手段のみを意味するものではなく、その部が有する機能をソフトウェアによって実現する場合も含む。また、1つの部が有する機能が2つ以上の物理的手段により実現されても、2つ以上の部の機能が1つの物理的手段により実現されてもよい。
本発明によれば、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードを再度システムに組込む際に、正常稼働中のノードの処理を中断することなく、該ノードを稼働中ノードと処理タイミングを一致化させ、漏れなく必要な処理を実行することを可能とし、フォールトトレラントコンピュータシステムによる高い信頼性の維持、該システムにより実行ないし提供されるサービスの無停止を保証できる。
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、基本的に、同一の要素には同一の符号を付し、重複する説明を省略する。
図1は、本発明の一実施形態に係るフォールトトレラントコンピュータシステムの概要を示す図である。フォールトトレラントコンピュータシステムは、ネットワークを介して相互接続した、複数の独立したノードにより構成され、構成する各ノードにおいて同じ処理を並列に実行させる。
同図に示すように、本フォールトトレラントコンピュータシステム0101は、LAN0112を介して相互に接続される2つ以上の独立したノード0111と、広域ネットワーク0102に接続され、外部システム0103との通信の中継を行うゲートウェイサーバ0113とを主な構成要素として備える。
フォールトトレラントコンピュータシステム0101は、広域ネットワーク0102を介して通信可能な外部システム0103からの要求を受け付けて、該要求に対する処理を実施し、処理結果を応答として該外部システム0103に返信することによるサービスを提供する。ここでは外部システム0103からの要求として入力メッセージ0131を受信し、該要求に対する処理結果を格納した出力メッセージ0141を外部システム0103に対して送信する。
フォールトトレラントコンピュータシステム0101の内部では、広域ネットワーク0102を介して外部システム0103からの要求として入力メッセージ0131を中継するゲートウェイサーバ0113が、LAN0112を介して、システム内の全てのノード0111に対して、受信した入力メッセージ0131を入力メッセージ0132として転送する。ここで、ほぼ同時に全てのノード0111が該メッセージを受信し、概メッセージに対する処理を開始できるように、ゲートウェイサーバ0113は、入力メッセージ0132をブロードキャスト送信する。該入力メッセージ0132を受信した各ノード0111は、各々該入力メッセージ0132に対する処理を実行して、処理結果を格納した出力メッセージ0142を、LAN0112を介してゲートウェイサーバ0113に対して送信する。各ノード0111からの出力メッセージ0142を受信したゲートウェイサーバ0113は要求元の外部システム0103への応答として出力メッセージ0141を作成し、外部システム0103に対して送信する。ここでゲートウェイサーバ0113は、各ノード0111から受信した1つ以上の出力メッセージ0142のデータ内容の比較照合、正誤判定等を行い、多数決等により決定した最も確からしいメッセージデータを出力メッセージ0141として、要求元の外部システム0103に送信する。
また、ノード0111のハードウェア構成は、処理装置0121、記憶装置0122、通信装置0123を含む。記憶装置0122には、フォールトトレラントコンピュータシステム0101により外部システム0103に対して提供されるサービスを実行する上で必要なデータ、これらサービスに関する外部システム0103からの要求に対して処理を実行するためのユーザプログラム、複数のノード0111の間での稼働中及び再組込み中の同期を実施するためのソフトウェアプログラム、LAN0112を介してノード0111とゲートウェイサーバ0113との間の通信を行うためのソフトウェアプログラム等が格納され、処理装置0121により処理される。また通信装置0123は、ゲートウェイサーバ0113からの入力メッセージ0132を受信し、ゲートウェイサーバ0113に対して出力メッセージ0142を送信するための通信処理、また複数のノード0111の間での稼働中及び再組込み中の同期を実施するために必要な通信処理を行う。
なおフォールトトレラントコンピュータシステム0101内に2つ以上のノード0111を含め、これらで外部システム0103からの要求に対する処理を同時に併行して実行させていることで、1つ以上のノードにて障害が発生した場合でも、残りの稼働中のノードが処理を実行することで、システムとして正常動作によるサービス提供を維持することを可能とし、システムの耐障害性、信頼性を高めている。
図2は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101を構成し、外部からの要求に対する処理等を実行するノード0111の再同期稼働化の概要を示す図、及び、関連する処理の流れを示すシーケンス図である。ここでは各ノードにて実行するユーザプログラムとして、入力をトリガーとして処理を実施するユーザプログラムが実行される場合を例に挙げている。
なお、図2に示す例は、フォールトトレラントコンピュータシステム0101において、LAN0112を介して相互接続されるノード0111のうち、稼働中ノード0201と、停止状態からの再同期稼働化を実施する組込みノード0202とを示している。
稼働中ノード0201では、ユーザプログラム0211がデータ0212(共有メモリ、ファイル等)等を参照して処理を行っている。組込みノードの再同期稼働化を実施する際には、稼働中ノード0201におけるユーザプログラム0211等の処理は組込みノード0202の状態に関わらず無停止で正常に実行させたまま、データ0212のコピー及びユーザプログラム0211の実行状態の通知等を行う。組込みノードの再同期稼働化の完了時には、組込みノード0202のデータ0222は稼働中ノード0201のデータ0212と一致化し、組込みノードにおけるユーザプログラム0221は稼働中ノード0201のユーザプログラム0211と同じ実行状態となる。
組込みノード0202の再同期稼働化に関連する処理のシーケンスとして、稼働中ノード0201におけるユーザプログラム0211は、入力(0251、0252、0253)に対して処理を行い、出力(0261、0262、0263)を返す。ここで、組込みノード0202では、ソフトウェア更新、ハードウェア更改またはメンテナンスや異常発生時の回復作業等のために停止していた状態から再起動すると(0241)、稼働中ノード0201は該組込みノード0202のデータ一致化を行うため、データ0222に対してデータ0212の書き込みを行う(0231)。組込みノード0202は、データ一致化完了を検出すると(0242)、稼働中ノード0201におけるユーザプログラム0211と実行状態を一致化させて、ユーザプログラム0221の処理を再開する(0243)。以降は、稼働中ノード0201におけるユーザプログラム0211と同様に、入力(0253)に対して処理を行い、出力(0272、0273)を返す。ここで組込みノードの処理が正常に実行されれば、出力0272、0273はそれぞれ稼働中ノード0201の出力0262、0263と合致するはずである。
図3は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101を構成し、外部からの要求に対する処理等を実行するノード0111のモジュール構成を示す図である。
ノード0111には、外部システム0103からの要求に対する処理を実行し応答を返すユーザプログラム0302と、該ユーザプログラムが処理中に読み込み、書き込みを行う共有メモリやファイル等のデータ0303と、通信媒体0304(図1のLAN0112に相当する。)を介して他のノード0111やゲートウェイサーバ0113等との通信、ノードの再同期稼働化のためのデータ一致化、ユーザプログラムの処理タイミングの一致化等の処理を行うミドルウェア0301とが導入される。
ミドルウェア0301は、組込みノードの再同期稼働化の実行時に、入力駆動型ユーザプログラム管理テーブル0321及び入力管理テーブル0323を参照・更新し、入力をトリガーとして処理を実施するユーザプログラムの起動又は実行状態の監視等を行う入力駆動管理部0311、周期駆動型ユーザプログラム管理テーブル0322を参照・更新し、周期的に処理を実施するユーザプログラムの起動又は実行状態の監視等を行う周期駆動管理部0312、データ一致化のために稼働中ノード0201のデータの組込みノード0202への書き込み等の処理を行うデータ同期処理部0313、データ通信部0315を介して外部システム0103から送信された入力メッセージもしくは稼働中ノード0201から転送された入力メッセージを、入力受信バッファ0331もしくは転送受信バッファ0332に格納し、入力管理テーブル0323を格納メッセージに応じて更新する受信データ管理部0314、及び、通信媒体0304を介して他のノード0111やゲートウェイサーバ0113等との間の通信を行うデータ通信部0315を主な構成要素として含む。
ここで、組込みノードの再同期稼働化の実行時に、データの書き込みによる稼働中ノード0201と組込みノード0202とのデータ一致化を行う場合、稼働中ノード0201におけるデータ同期処理部0313は、書き込み用のデータを稼働中ノード0201内のデータ0303から抜き出し、データ通信部0315を用いて組込みノード0202に対して送信する。組込みノード0202におけるデータ同期処理部0313は、稼働中ノード0201から送信される書き込み用データを、データ通信部0315を用いて受信し、組込みノード0202内のデータ0303に対して上書きを許して書き込む。
入力受信バッファ0331には、ゲートウェイサーバ0113から送信されデータ通信部0315により受信した入力メッセージ0132を、ユーザプログラム0302が該入力メッセージ0132を処理対象として使用する時まで格納しておく。転送受信バッファ0332には、組込みノード0202の再同期稼働化の実行時に、稼働中ノード0201より転送されデータ通信部0315により受信した入力メッセージを、ユーザプログラム0302が該入力メッセージを処理対象として使用する時まで格納しておく。また入力駆動型ユーザプログラム管理テーブル0321、周期駆動型ユーザプログラム管理テーブル0322、及び、入力管理テーブル0323の概略は図7に示す。
図4は、本発明の一実施形態による、フォールトトレラントコンピュータシステム0101を対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法の概要を示す図である。
ここでは、組込みノードの再同期稼働化を行う際に、組込みノード0202において稼働するユーザプログラムを、稼働中ノード0201にて稼働するユーザプログラムと処理タイミングを一致化させるための処理の流れの概要を示す。
稼働中ノード0201ではユーザプログラム0211は、入力メッセージもしくはタイマイベント等を処理開始のトリガー(0401、0402、0403)として、処理(0411、0412、0413)を実施し、処理の過程でデータ0212に対して読み込み、書き込みを行う。ここで、ユーザプログラム0211に対して処理開始のトリガー(0401、0402、0403)が発生し、処理(0411、0412、0413)が実施される度に、各処理(0411、0412、0413)が開始されるタイミングで、該稼働中ノード0201より組込みノード0202に対して、処理開始通知(0421、0422、0423)が送信される。
組込みノード0202では、稼働中ノード0201から組込みノード0202へのデータコピーによる該ノード間のデータ一致化が完了したことを、稼働中ノード0201から組込みノード0202に対して送信されるデータ一致化用データ送信完了通知0431を受信することで判定する。ここで稼働中ノード0201から送信される処理開始通知を受信し、該通知を参照することで、組込みノード0202におけるユーザプログラム0221の次の実行タイミングを事前に算出しておく。この方式の詳細は図5、6にて述べる。ただし、次の実行タイミングでユーザプログラム0221の処理を実際に開始するのは、該タイミングに達した時点でデータ一致化が完了している場合のみである。図4に示す例では、処理開始通知0421を参照して算出した次の実行タイミング0404は、データ一致化用データ送信完了通知0431を受信しデータ一致化完了を判定した後なので、次の実行タイミング0404にて、ユーザプログラム0221の処理0414を開始する。
これにより、組込みノード0202にて稼働中ノード0201とタイミングを合わせてユーザプログラム0221の処理を開始した後も、稼働中ノード0201からの処理開始通知0423を受信し比較参照することで、稼働中ノード0201における処理0413の開始タイミング0403と組込みノード0202における処理0415の処理開始タイミング0405とのずれを計測し、ずれが大きい場合は該ずれを補正することで、稼働中ノード0201におけるユーザプログラム0211と組込みノード0202におけるユーザプログラム0221との処理タイミングが再びずれることを回避する。
このようにして、組込みノード0202の再起動後、稼働中ノード0201に合わせることで処理タイミングの一致化を図り(0441)、処理タイミングの一致化後は、一度ノード間で一致化した処理タイミングの同期を維持していく(0442)。
次に、計算機(ノード0111)間の再同期稼働化のための処理タイミング一致化方法に関して、特に入力をトリガーとして処理を実施するユーザプログラムを対象とする場合の概要を図5に、周期的に処理を実施するユーザプログラムを対象とする場合の概要を図6に示す。
図5は、本発明の一実施形態による、フォールトトレラントコンピュータシステム0101を対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法について、入力をトリガーとして処理を実施するユーザプログラムを対象として実施する場合の概要を示す図である。
稼働中ノード0201では、受信バッファ0501(図3の入力受信バッファ0331に相当する。)を介して渡された外部システム0103からの入力メッセージ0511(通番#10、#11、#12、#13)(図1の入力メッセージ0132に対応する。)をトリガーとして、ユーザプログラムの各々の処理(0521、0522、0523、0524)が実施される。また各処理(0521、0522、0523、0524)が実行開始されるタイミングで、稼働中ノード0201から組込みノード0202に対して、処理開始の通知及び該処理のトリガーとなる入力メッセージ0511の転送を行う(0541、0542、0543)。
組込みノード0202では、稼働中ノード0201からの処理開始通知及び入力メッセージの転送を受信する度に(0551、0552、0553)、自ノードの直接受信したメッセージを格納する受信バッファ0502(図3の入力受信バッファ0331に相当する。)を参照し、稼働中ノード0201より転送された入力メッセージと通番が一致する入力メッセージが格納されているか否かを判定する。この時点でデータ一致化が完了していれば(図5ではデータ書き込み処理0561によりデータ一致化用データの送信が完了済みになるとデータ一致化用データ送信完了通知0562が通知される。)、通番が一致する入力メッセージが格納されていない場合(図5では入力メッセージ転送0541、0542)は、稼働中ノード0201より転送された入力メッセージを用いてユーザプログラムの処理を行う(処理0531、0532)。また稼働中ノード0201より転送された入力メッセージと通番が一致する入力メッセージが格納されている場合(図5では入力メッセージ転送0543)は、受信バッファ0502に格納されている、組込みノード0202が直接受信した入力メッセージ0512を用いてユーザプログラムの処理を行う(処理0533)。またこの時組込みノード0202より稼働中ノード0201に対して転送停止要求0544を送信し、稼働中ノード0201からの入力メッセージの転送を停止する。転送の停止後は、受信バッファ0502に格納されている、組込みノード0202が直接受信した入力メッセージを用いて、ユーザプログラムの処理を行う(処理0534)。
なお、この組込みノード0202が稼働中ノード0201からの処理開始通知及び入力メッセージの転送を受信した時点で、まだデータ一致化が完了していない場合は、ユーザプログラムの処理は行わず、次の稼働中ノード0201からの処理開始通知及び入力メッセージの転送を受信するまで待機する。
図6は、本発明の一実施形態による、フォールトトレラントコンピュータシステム0101を対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法について、周期的に処理を実施するユーザプログラムを対象として実施する場合の概要を示す図である。
稼働中ノード0201では、周期的に発生するタイマイベント(0601、0602、0603)に対して、周期毎のユーザプログラムの処理(0611、0612、0613)がそれぞれ実施される。また各処理(0611、0612、0613)が実行開始されるタイミングで、稼働中ノード0201から組込みノード0202に対して、処理開始の通知(0631、0632、0633)を送信する。
組込みノード0202では、稼働中ノード0201からの処理開始通知(#11)0631を受信すると、該通知に含まれる周期時間等の情報を参照して、該通知の受信時点から次周期(#12)が開始されるまでの時間を算出する(0661)。この間も稼働中ノード0201と組込みノード0202との間のデータ一致化のための稼働中ノード0201から組込みノード0202へのデータ書き込みは並行して実施される(0641)。
そして、算出した次周期(#12)開始までの時間が経過した時点までに、稼働中ノード0201よりデータ一致化用データ送信完了通知0651を受信済みである場合、ユーザプログラムの処理を開始する(処理(#12)0622)。稼働中ノード0201よりデータ一致化用データ送信完了通知0651をまだ受信していない場合、ユーザプログラムの処理は行わず、次周期(#13)が開始されるまでの時間を再度算出し、該算出した時間が経過するまで待機する。
組込みノード0202にてユーザプログラムの処理再開後は、稼働中ノード0201からの処理開始通知(図6では通知(#13)0633)を受信する度に、組込みノード0202における該当する処理(図6では処理(#13)0623)の開始タイミングとの差異を比較する。タイミングのずれを検出する度に補正の処理を実施する。
図7は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101を構成し、外部からの要求に対する処理等を実行するノード0111において管理される管理テーブルの構成を示す図である。図7(A)は、入力をトリガーとして処理を実施するユーザプログラムの実行状態を管理する入力駆動型ユーザプログラム管理テーブル0321を示す図である。図7(B)は、ノードが受信した外部からの入力メッセージを管理する入力管理テーブル0323を示す図である。図7(C)は、周期的に処理を実施するユーザプログラムの実行状態を管理する周期駆動型ユーザプログラム管理テーブル0322を示す図である。
図7(A)に示すように、入力駆動型ユーザプログラム管理テーブル0321は、処理対象0711、ステータス0712、メッセージ受信元0713、及び、更新時刻0714を主な構成要素として備える。
処理対象0711には、入力をトリガーとして処理を実施するユーザプログラムの処理対象となる最新の入力メッセージに関する情報が格納され、該メッセージに付与された通番が格納される通番0741と、該メッセージの受信時刻が格納される受信時刻0742とを含んで構成される。ステータス0712には、処理対象0711に格納される内容に対応する最新の入力メッセージに対して実行されるユーザプログラムの実行状態が格納される。ここに格納されるステータス値として、“待機中”、“処理中”、“処理終了”等がある。メッセージ受信元0713には、処理対象0711に格納される内容に対応する最新の入力メッセージを直接受信した受信元ノードの情報が格納される。ここに格納されるのは、“稼働中ノード”、“組込みノード”のいずれかである。更新時刻0714には、本テーブルの各行の最新の更新時刻が格納される。上記の入力駆動型ユーザプログラム管理テーブル0321の各項目は、組込みノードにて入力メッセージを受信する度に、また該メッセージに対して処理が実行される度に更新される。
図7(B)に示すように、入力管理テーブル0323は、ノード0721、通番0722、及び、受信時刻0723を主な構成要素として備える。
ノード0721には、入力メッセージを直接受信するノードの情報が格納される。ここに格納されるのは、“稼働中ノード”、“組込みノード”の2つである。通番0722には、稼働中ノードまたは組込みノードが受信する入力メッセージに付与された通番が格納される。受信時刻0723には、稼働中ノードまたは組込みノードが受信した入力メッセージの受信時刻が格納される。上記の入力管理テーブル0323の各項目は、組込みノードが稼働中ノードから転送された入力メッセージを受信する度に、また組込みノードにて入力メッセージが直接受信される度に更新される。
図7(C)に示すように、周期駆動型ユーザプログラム管理テーブル0322は、ユーザプログラム名称0731、周期カウンタ0732、周期間隔0733、待機時間0734、及び、ステータス0735を主な構成要素として備える。
ユーザプログラム名称0731には、周期的に処理を実施するユーザプログラムの名称が格納される。周期カウンタ0732には、ユーザプログラム名称0731に格納される名称に対応するユーザプログラムに関してタイマイベント発生の度に加算し付与される連番である周期カウンタが格納される。周期間隔0733には、ユーザプログラム名称0731に格納される名称に対応するユーザプログラムに関して処理実施のためのタイマイベントが発生する時間間隔が格納される。待機時間0734には、ユーザプログラム名称0731に格納される名称に対応するユーザプログラムに関して処理終了後、次周期開始までの待機時間が格納される。ステータス0735には、ユーザプログラム名称0731に格納される名称に対応するユーザプログラムの実行状態が格納される。ここに格納されるステータス値として、“待機中”、“処理中”、“処理終了”等がある。上記の周期駆動型ユーザプログラム管理テーブル0322の各項目は、組込みノードにてタイマイベントが発生する度に、また該タイマイベントに対して処理が実行、終了する度に更新される。
図8は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101において、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、稼働中ノードと組込みノードとの間で処理タイミングの一致化を行う際の、稼働中ノードにおける処理の流れを示すフローチャートである。
ここで、図8(A)は、入力をトリガーとして処理を実施するユーザプログラムを対象として、稼働中ノード0201と組込みノード0202との間で処理タイミングの一致化を行う際の、稼働中ノード0201における処理の流れを示すフローチャートである。図8(B)は、周期的に処理を実施するユーザプログラムを対象として、稼働中ノード0201と組込みノード0202との間で処理タイミングの一致化を行う際の、稼働中ノード0201における処理の流れを示すフローチャートである。
図8(A)に示すように、入力をトリガーとして処理を実施する場合、まず、組込みノード0202の再起動を検出する(0811)。この検出処理は、例えば、稼働中ノード0201が組込みノード0202の再起動を直接検出するマスターとなるノードより組込みノード再起動の通知を受ける、もしくは、組込みノード0202からの問い合わせを受け付ける、等の処理による。次に、外部システムからの入力メッセージを受信し(0812)、組込みノード0202に対して該入力メッセージに対する処理開始の通知と該入力メッセージデータの転送を行う(0813)。そして、該入力メッセージを自ノード(稼働中ノード0201)におけるユーザプログラムに引き渡し(0814)、該入力メッセージに対するユーザプログラムによる処理が実行される(0815)。その後、組込みノード0202からの転送停止要求通知を受信したか否かを判断し(0816)、組込みノード0202からの転送停止要求通知を受信していない場合(0816;NO)、ステップ0812から0815までの処理を繰り返す。ステップ0816において、組込みノードからの転送停止要求通知を受信した場合(0816;YES)、終了する。
また、図8(B)に示すように、周期的に処理を実施する場合、まず、稼働中ノード0201におけるタイマイベントの発生を検出する(0821)。ここで、タイマイベントは、指定された周期や時刻をノードに搭載されたOSのタイマ等を用いることで監視され、指定された周期に達した時点もしくは指定された時刻にて発生するイベントである。次に、組込みノード0202に対して周期処理開始の通知を送信する(0822)。そして、本周期における自ノード(稼動中ノード0201)におけるユーザプログラムの処理が実行される(0823)。以後、ステップ0821から0823までの処理を繰り返す。
図9は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101において、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、入力をトリガーとして処理を実施するユーザプログラムを対象として、稼働中ノード0201と組込みノード0202との間で処理タイミングの一致化を行う際の、組込みノード0202における処理の流れを示すフローチャートである。
まず、稼働中ノード0201からの処理開始通知及び転送された入力メッセージを受信する(0901)。次に、ステップ0901にて受信した転送メッセージを参照して、組込みノード0202にて管理される入力管理テーブル0323の稼働中ノードの項目を更新する(0902)。その後、稼働中ノード0201からデータ一致化用データ送信完了通知を受信済みか否かを判断し(0903)、データ一致化用データ送信完了通知を受信済みではない場合(0903;NO)、処理を終了する。一方、ステップ0903において、稼働中ノード0201からのデータ一致化用データ送信完了通知を受信済みである場合(0903;YES)、組込みノード0202にて管理される入力管理テーブル0323の稼働中ノードの項目及び自ノード(組込みノード)に関する項目を参照し(0904)、その結果、稼働中ノード0201からの転送メッセージの通番が、組込みノード0202にて直接受信され、受信バッファ0502に蓄積されているメッセージのうちの最も古いメッセージの通番よりも小さい場合(0905;YES)、ステップ0901にて受信した稼働中ノード0201からの転送メッセージを自ノード(組込みノード0202)のユーザプログラムに引き渡す(0906)。そして、ステップ0906にて引き渡されたメッセージに対してユーザプログラムが実行される(0907)。以降は、ステップ0901から0907までの処理を繰り返す。一方、ステップ0905において、稼働中ノード0201からの転送メッセージの通番が、組込みノード0202にて直接受信され、受信バッファ0502に蓄積されているメッセージのうちのいずれかのメッセージの通番と同じである場合(0905;NO)、組込みノード0202にて直接受信され、受信バッファ0502に蓄積されているメッセージのうち該当する通番のものを自ノード(組込みノード0202)のユーザプログラムに引き渡す(0908)。そして、ステップ0908にて引き渡されたメッセージに対してユーザプログラムが実行され(0909)、稼働中ノード0201に対してメッセージ転送の停止要求通知0544を送信して(0910)、終了する。
図10は、本発明の一実施形態における、フォールトトレラントコンピュータシステムにおいて、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、周期的に処理を実施するユーザプログラムを対象として、稼働中ノード0201と組込みノード0202との間で処理タイミングの一致化を行う際の、組込みノード0202における処理の流れを示すフローチャートである。
まず、稼働中ノード0201からの処理開始通知を受信する(1001)。次に、ステップ1001にて受信した処理開始通知に含まれる周期に関する情報を参照して、該通知を受信した時点から次周期開始までの時間を算出する(1002)。ここで、次周期開始までの時間は、ステップ1002にて受信した稼働中ノード0201からの処理開始通知に含まれる周期に関する情報の1つである周期間隔から、稼働中ノード0201と組込みノード0202の間の通信時間を減算することで算出する。その後、周期駆動型ユーザプログラム管理テーブル0322の該当するユーザプログラムに関する周期カウンタ、周期間隔、待機時間の項目を更新し(1003)、ステップ1002の結果を基にして、次周期開始までの残り時間を計測する(1004)。そして、稼働中ノード0201においてデータ更新が発生した場合、該データ更新による差分のデータの組込みノード0202への書き込みが行われる(1005)。このとき、ステップ1004の結果、次周期開始までの時間が経過していない場合(1006;NO)、ステップ1004及び1005の処理を繰り返す。また、ステップ1006において、ステップ1004の結果、次周期開始までの時間が経過した場合(1006;YES)、稼働中ノード0201からデータ一致化用データ送信完了通知を受信済みか否かを判断し(1007)、データ一致化用データ送信完了通知を受信済みではない場合(1007;NO)、ステップ1001から1006までの処理を繰り返す。一方、ステップ1007において、稼働中ノード0201からのデータ一致化用データ送信完了通知を受信済みである場合(1007;YES)、自ノード(組込みノード0202)におけるユーザプログラムの処理を開始させる(1008)。そして、周期駆動型ユーザプログラム管理テーブル0322の、ステップ1008にて処理開始したユーザプログラムに関する周期カウンタ、周期間隔、待機時間、ステータスの項目を更新する(1009)。それから、稼働中ノード0201からの処理開始通知を受信する(1010)。該通知は、ステップ1001にて受信した処理開始通知の次に稼働中ノード0201から送信された通知であり、ステップ1008にて開始したユーザプログラムの周期処理に該当すべきものである。その後、ステップ1008にて開始したユーザプログラムの周期処理の周期カウンタの値と、ステップ1010にて受信した稼働中ノード0201からの処理開始通知に含まれる周期カウンタの値とを比較して(1011)、これらが合致する場合(1011;YES)、処理を終了する。一方、ステップ1011において、ステップ1008にて開始したユーザプログラムの周期処理の周期カウンタの値と、ステップ1010にて受信した稼働中ノード0201からの処理開始通知に含まれる周期カウンタの値とが合致しない場合(1011;NO)、ステップ1008にて処理開始したユーザプログラムを強制終了し、組込みノード0202内のデータ等を、ステップ1008にてユーザプログラムが処理開始する以前の状態に戻し(1012)、その後、ステップ1002から1011までの処理を繰り返す。
図11は、本発明の一実施形態における、フォールトトレラントコンピュータシステム0101において、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施後、周期的に処理を実施するユーザプログラムを対象として、稼働中ノード0201と組込みノード0202との間で一致化させた処理タイミングを維持するための、組込みノード0202における処理の流れを示すフローチャートである。
まず、稼働中ノード0201からの処理開始通知を受信する(1101)。次に、ステップ1101にて受信した通知から抽出した周期カウンタを参照する(1102)。そして、ステップ1102にて参照した周期カウンタに該当する周期の処理が組込みノード0202で開始済みでないか否かを判断し(1103)、開始済みである場合(1103;NO)、ステップ1101からの処理に戻る。一方、ステップ1103において、ステップ1102にて参照した周期カウンタに該当する周期の処理が組込みノード0202では未開始である場合(1103;YES)、この周期カウンタに該当する周期の処理が開始されるまで待機する(1104)。周期カウンタに該当する周期の処理が開始されると(1104;YES)、該周期の開始までの遅延時間を算出する(1105)。ここで、遅延時間は、ステップ1101にて稼働中ノード0201からの処理開始通知を受信した時点から、ステップ1104にて該当周期の処理が開始された時点までの差分時間と、稼働中ノード0201と組込みノード0202の間の通信時間との和として算出する。そして、該周期の処理の終了後、ステップ1105にて算出した遅延時間に基づいて、該周期の処理終了時点から次周期開始までの待機時間の補正を行う(1106)。ここで待機時間の補正は、元々の待機時間(当該ユーザプログラムの周期間隔から該周期における実際の処理時間を減算することで算出)からステップ1105で算出した遅延時間を減算することに行う。
図12は、本発明の一実施形態における、フォールトトレラントコンピュータシステムを構成するノードのうち、稼働中ノード0201と組込みノードの間で、組込みノードの再同期稼働化の実施時において、処理タイミングの一致化を行うために送受信されるメッセージの形式を示す図である。
図12(A)は、稼働中ノード0201から組込みノード0202へと送信されるもので、入力をトリガーとして処理を実施するユーザプログラムに関して、処理開始の通知及びユーザプログラムの処理開始のトリガーとなる入力メッセージデータを含めるメッセージの形式1201を示す。
このメッセージ形式1201は、ヘッダ情報1211、識別情報1212、通番1213、受信時刻1214、ステータス1215、及び、入力データ1216を主な構成要素として備える。
ヘッダ情報1211には、メッセージプロトコル等に関する情報が格納される。識別情報1212には、このメッセージが稼働中ノード0201からの、入力をトリガーとして処理を実施するユーザプログラムに関する処理開始通知であることを示す識別情報が格納される。通番1213には、稼働中ノード0201が直接受信し、組込みノード0202に対して転送する入力メッセージに付与されている通番が格納される。受信時刻1214には、稼働中ノード0201が該入力メッセージを直接受信した時刻が格納される。ステータス1215には、稼働中ノード0201における該入力メッセージに対する処理の実行状態が格納される。本通知は稼働中ノード0201にてユーザプログラムによる処理を開始する時点で送信されることから、該ステータス1215には通常は“実行中”を示す値が格納される。入力データ1216には、稼働中ノード0201が直接受信し、組込みノード0202に対して転送する入力メッセージのデータ本体が格納される。

図12(B)は、稼働中ノード0201から組込みノード0202へと送信されるもので、周期的に処理を実施するユーザプログラムに関して、処理開始の通知のメッセージの形式1202を示す。
このメッセージ形式1202は、ヘッダ情報1221、識別情報1222、UP名称1223、周期カウンタ1224、及び、周期間隔1225を主な構成要素として備える。
ヘッダ情報1221には、メッセージプロトコル等に関する情報が格納される。識別情報1222には、このメッセージが稼働中ノード0201からの、周期的に処理を実施するユーザプログラムに関する処理開始通知であることを示す識別情報が格納される。UP名称1223には、該当する周期的に処理を実施するユーザプログラムの名称が格納される。周期カウンタ1224には、UP名称1223に格納される名称に該当するユーザプログラムのタイマイベント発生の度に加算し付与される連番である周期カウンタが格納される。周期間隔1225には、UP名称1223に格納される名称に該当するユーザプログラムの処理実施のためのタイマイベントが発生する時間間隔が格納される。
図12(C)は、稼働中ノード0201から組込みノード0202へと送信される、データ一致化用データ送信完了通知、もしくは組込みノード0202から稼働中ノード0201へと送信される、転送停止要求通知のメッセージの形式1203を示す。
このメッセージ形式1203は、ヘッダ情報1231及び識別情報1232を主な構成要素として備える。
ヘッダ情報1231には、メッセージプロトコル等に関する情報が格納される。識別情報1232には、このメッセージが稼働中ノード0201からのデータ一致化完了通知もしくは転送停止要求通知であることを示す識別情報が格納される。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することが可能である。
本発明の一実施形態に係るフォールトトレラントコンピュータシステムの概要を示す図である。 本発明の一実施形態における、フォールトトレラントコンピュータシステムを構成し、外部からの要求に対する処理等を実行するノードの再同期稼働化の概要を示す図、及び、関連する処理の流れを示すシーケンス図である。 本発明の一実施形態における、フォールトトレラントコンピュータシステムを構成し、外部からの要求に対する処理等を実行するノードのモジュール構成を示す図である。 本発明の一実施形態による、フォールトトレラントコンピュータシステムを対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法の概要を示す図である。 本発明の一実施形態による、フォールトトレラントコンピュータシステムを対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法について、入力をトリガーとして処理を実施するユーザプログラムを対象として実施する場合の概要を示す図である。 本発明の一実施形態による、フォールトトレラントコンピュータシステムを対象として実施する、計算機間の再同期稼働化のための処理タイミング一致化方法について、周期的に処理を実施するユーザプログラムを対象として実施する場合の概要を示す図である。 本発明の一実施形態における、フォールトトレラントコンピュータシステム0101を構成し、外部からの要求に対する処理等を実行するノード0111において管理される管理テーブルの構成を示す図である。 本発明の一実施形態における、フォールトトレラントコンピュータシステムにおいて、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、稼働中ノードと組込みノードとの間で処理タイミングの一致化を行う際の、稼働中ノードにおける処理の流れを示すフローチャートである。 本発明の一実施形態における、フォールトトレラントコンピュータシステムにおいて、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、入力をトリガーとして処理を実施するユーザプログラムを対象として、稼働中ノードと組込みノードとの間で処理タイミングの一致化を行う際の、組込みノードにおける処理の流れを示すフローチャートである。 本発明の一実施形態における、フォールトトレラントコンピュータシステムにおいて、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施時において、周期的に処理を実施するユーザプログラムを対象として、稼働中ノードと組込みノードとの間で処理タイミングの一致化を行う際の、組込みノードにおける処理の流れを示すフローチャートである。 本発明の一実施形態における、フォールトトレラントコンピュータシステムにおいて、ソフトウェア更新、ハードウェア更改または障害回復、メンテナンス等のために停止させていたノードの再同期稼働化の実施後、周期的に処理を実施するユーザプログラムを対象として、稼働中ノードと組込みノードとの間で一致化させた処理タイミングを維持するための、組込みノードにおける処理の流れを示すフローチャートである。 本発明の一実施形態における、フォールトトレラントコンピュータシステムを構成するノードのうち、稼働中ノードと組込みノードの間で、組込みノードの再同期稼働化の実施時において、処理タイミングの一致化を行うために送受信されるメッセージの形式を示す図である。
符号の説明
0101 フォールトトレラントコンピュータシステム
0102 広域ネットワーク
0103 外部システム
0111 ノード
(0201 稼働中ノード)
(0202 組込みノード)
0112,0304 ネットワーク(LAN,通信媒体)
0113 ゲートウェイサーバ
0121 処理装置
0122 記憶装置
0123 通信装置
0211,0221,0302 ユーザプログラム
0212,0222,0303 データ
0301 ミドルウェア
0311 入力駆動管理部
0312 周期駆動管理部
0313 データ同期処理部
0314 受信データ管理部
0315 データ通信部
0321 入力駆動型ユーザプログラム管理テーブル
0322 周期駆動型ユーザプログラム管理テーブル
0323 入力管理テーブル
0331 入力受信バッファ
0332 転送受信バッファ
0421,0422,0423 処理開始通知
(0541,0542,0543 入力メッセージの転送)
(0631,0632,0633 周期的処理の処理開始通知)
0431,0562,0651 データ一致化用データ送信完了通知
0544 転送停止要求通知

Claims (14)

  1. ネットワークを介して相互に接続された複数のノードを備え、前記複数のノードの各ノードにおいて同じ処理を独立に並列実行させるフォールトトレラントコンピュータシステムであって、
    前記各ノードは、
    システム内の稼働中のノード(以下「稼働中ノード」という。)は無停止かつ処理を継続させた状態で、停止状態から再起動したノード(以下「組込みノード」という。)を稼働中ノードとの間で処理タイミングを合わせてシステムへ再度組込む、という再同期稼働化処理を行う駆動管理部と、
    稼働中ノードと組込みノードとの間で、データ内容を含むノードの状態を一致させるデータ一致化処理を行うデータ同期処理部とを備え、
    前記駆動管理部は、
    ノードが稼働中ノードである場合には、ユーザプログラムの処理を実行開始する度に、組込みノードに対して処理開始の通知を行い、
    ノードが組込みノードである場合には、稼働中ノードから組込みノードへのデータ一致化用データ送信完了通知を当該稼働中ノードから受信し、かつ、当該完了通知を受信した後に当該組込みノードが当該稼働中ノードから処理開始通知を受信したとき、当該組込みノードが稼働中ノードから受信した処理開始通知を参照して、ユーザプログラムの処理を開始する
    ことを特徴とするフォールトトレラントコンピュータシステム。
  2. ノードが組込みノードである場合には、
    稼働中ノードから受信したユーザプログラムの処理開始通知を参照することで当該ユーザプログラムの次の実行タイミングを算出し、
    当該稼働中ノードから当該組込みノードへのデータ一致化用データ送信完了通知を当該稼働中ノードから受信したとき、当該完了通知後の前記次の実行タイミングで当該ユーザプログラムの処理を開始する
    ことを特徴とする請求項1に記載のフォールトトレラントコンピュータシステム。
  3. 前記駆動管理部は、
    入力をトリガーとして処理を実施するユーザプログラムに関して、前記再同期稼働化処理を行う入力駆動管理部を含み、
    前記入力駆動管理部は、
    ノードが稼働中ノードである場合には、当該ノードにおいて入力を受信し、ユーザプログラムの処理を開始する度に、組込みノードに対して処理開始の通知及び前記入力の転送を行い、
    ノードが組込みノードである場合には、稼働中ノードから転送された前記入力、又は、当該組込みノードにて直接受信した入力を用いて、ユーザプログラムの処理を実施する
    ことを特徴とする請求項1又は2に記載のフォールトトレラントコンピュータシステム。
  4. 前記入力駆動管理部は、
    ノードが組込みノードである場合、当該組込みノードが稼働中ノードからの処理開始通知及び転送された入力を受信した時点又は稼働中ノードから転送された前記入力に対応する入力を直接受信した時点で、前記データ同期処理部による稼働中ノードと組込みノードの間でのデータ一致化処理が完了していない場合には、ユーザプログラムの処理を行わず、次の処理開始タイミングまで待機する
    ことを特徴とする請求項3に記載のフォールトトレラントコンピュータシステム。
  5. 前記入力駆動管理部は、
    ノードが組込みノードである場合、稼働中ノードから受信した前記入力に対応する入力を当該組込みノードにて直接受信しているか否かを判定し、直接受信していないと判定した場合には、稼働中ノードから転送された前記入力を用いてユーザプログラムの処理を実施する
    ことを特徴とする請求項3又は4に記載のフォールトトレラントコンピュータシステム。
  6. ノードが組込みノードである場合、稼働中ノードから受信した前記入力に対応する入力を当該組込みノードにて直接受信しているか否かを判定し、直接受信していると判定した場合には、稼働中ノードに対して入力の転送の停止を要求するとともに、以後の処理を、当該組込みノードにて直接受信した入力を用いてユーザプログラムの処理を実施する
    ことを特徴とする請求項3乃至5のいずれか一項に記載のフォールトトレラントコンピュータシステム。
  7. 前記フォールトトレラントコンピュータシステムは、
    前記ネットワークに接続され、かつ、前記ネットワークとは別のネットワークを介して外部システムに接続されるゲートウェイを備え、
    前記ゲートウェイは、
    外部システムから受け取った入力を前記複数のノードに転送し、前記入力に対する処理を前記複数のノードが並行して同時に実行した処理結果を受信して比較演算し、比較演算の結果として得られた出力を前記外部システムに応答として返す
    ことを特徴とする請求項1乃至6のいずれか一項に記載のフォールトトレラントコンピュータシステム。
  8. 前記駆動管理部は、
    周期的に処理を実施するユーザプログラムに関して、前記再同期稼働化処理を行う周期駆動管理部を含み、
    前記周期駆動管理部は、
    ノードが稼働中ノードである場合には、タイマイベントが発生してユーザプログラムの処理を開始する度に、組込みノードに対して処理開始通知の送信を行い、
    ノードが組込みノードである場合には、稼働中ノードから受信した処理開始通知を参照して、当該組込みノードにてユーザプログラムの現時点から次の周期における処理開始タイミングを算出し、算出した次の周期の処理開始タイミングに達した際に、稼働中ノードと組込みノードとの間でのデータ一致化処理が完了している場合、組込みノードにてユーザプログラムの処理を開始する
    ことを特徴とする請求項1乃至7のいずれか一項に記載のフォールトトレラントコンピュータシステム。
  9. 前記周期駆動管理部は、
    前記ノードが組込みノードである場合、前記再同期稼働化処理におけるユーザプログラムの処理開始後に、稼働中ノードと当該組込みノードとの処理開始タイミングの差異を計測し、該差異が所定値より大きい場合は、当該組込みノードにおける処理タイミングを補正することによって、処理開始タイミングの同期を維持する
    ことを特徴とする請求項8に記載のフォールトトレラントコンピュータシステム。
  10. 前記周期駆動管理部は、
    ノードが組込みノードである場合、稼働中ノードから受信した処理開始通知を参照して算出した次の周期の処理開始タイミングに達した時点で、前記データ同期処理部による稼働中ノードと組込みノードの間でのデータ一致化処理が完了していない場合には、ユーザプログラムの処理を行わず、次の周期の処理開始タイミングまで待機する
    ことを特徴とする請求項8又は9に記載のフォールトトレラントコンピュータシステム。
  11. 前記周期駆動管理部は、
    ノードが組込みノードである場合、稼働中ノードから受信した処理開始通知を参照し、該通知に含まれる周期情報及び該通知の伝送時間を用いて、当該組込みノードにおけるユーザプログラムの次の周期における処理開始タイミングを算出する
    ことを特徴とする請求項8乃至10のいずれか一項に記載のフォールトトレラントコンピュータシステム。
  12. ネットワークを介して相互に接続された複数のノードを備え、前記複数のノードの各ノードにおいて同じ処理を独立に並列実行させるフォールトトレラントコンピュータシステムにおいて、システム内の稼働中のノード(以下「稼働中ノード」という。)は無停止かつ処理を継続させた状態で、停止状態から再起動したノード(以下「組込みノード」という。)を稼働中ノードとの間で処理タイミングを合わせてシステムへ再度組込む、という再同期稼働化処理を行うための方法であって、
    稼働中ノードが、ユーザプログラムの処理を実行開始する度に、組込みノードに対して処理開始の通知を行うステップと、
    組込みノードが、稼働中ノードから組込みノードへのデータ一致化用データ送信完了通知を当該稼働中ノードから受信し、かつ、当該完了通知を受信した後に当該組込みノードが当該稼働中ノードから処理開始通知を受信したとき、稼働中ノードから受信した処理開始通知を参照して、ユーザプログラムの処理を開始するステップと
    を備えるフォールトトレラントコンピュータシステムの再同期稼働化処理方法。
  13. 請求項12に記載のフォールトトレラントコンピュータシステムの再同期稼働化処理方法を、前記フォールトトレラントコンピュータシステムの備える各ノードに実行させるためのプログラム。
  14. ネットワークを介して相互に接続された複数のノードを備え、前記複数のノードの各ノードにおいて同じ処理を実行させるフォールトトレラントコンピュータシステムであって、
    前記各ノードは、
    システム内へ組込むべきノード(以下「組込みノード」という。)をシステム内の稼働中のノード(以下「稼働中ノード」という。)との間で処理タイミングを合わせてシステム内へ組込む駆動管理部と、
    稼働中ノードと組込みノードとの間で、データ内容を含むノードの状態を対応させるデータ同期処理部とを備え、
    前記駆動管理部は、
    自ノードが稼働中ノードである場合には、自ノードの処理を実行開始する度に、組込みノードに対して処理開始の通知を行い、
    自ノードが組込みノードである場合には、稼働中ノードから組込みノードへのデータ一致化用データ送信完了通知を当該稼働中ノードから受信し、かつ、当該完了通知を受信した後に当該組込みノードが当該稼働中ノードから処理開始通知を受信したとき、当該組込みノードが稼働中ノードから受信した処理開始通知を参照して、自ノードの処理を開始する
    ことを特徴とするフォールトトレラントコンピュータシステム。
JP2007318695A 2007-12-10 2007-12-10 フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム Active JP5153310B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007318695A JP5153310B2 (ja) 2007-12-10 2007-12-10 フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007318695A JP5153310B2 (ja) 2007-12-10 2007-12-10 フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009140424A JP2009140424A (ja) 2009-06-25
JP5153310B2 true JP5153310B2 (ja) 2013-02-27

Family

ID=40870933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007318695A Active JP5153310B2 (ja) 2007-12-10 2007-12-10 フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5153310B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58125103A (ja) * 1982-01-20 1983-07-26 Hitachi Ltd 多重系演算処理同期システムの復旧方法
JPH1173278A (ja) * 1997-08-29 1999-03-16 Nec Corp 二重化コンピュータシステムにおけるスレーブ組込時間短縮方法
JP4154853B2 (ja) * 2000-11-13 2008-09-24 富士電機機器制御株式会社 制御データを等値化する冗長化プログラマブルコントローラ及び等値化方法。
JP2003296133A (ja) * 2002-04-05 2003-10-17 Fuji Electric Co Ltd コントローラ
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
JP4161276B2 (ja) * 2004-12-17 2008-10-08 日本電気株式会社 フォルトトレラントコンピュータ装置およびその同期化方法

Also Published As

Publication number Publication date
JP2009140424A (ja) 2009-06-25

Similar Documents

Publication Publication Date Title
US7793060B2 (en) System method and circuit for differential mirroring of data
JP5094460B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
TWI625621B (zh) 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統
JP6084624B2 (ja) 高可用性クラスタにおけるスプリット・ブレイン耐性フェイルオーバ
US7434096B2 (en) Match server for a financial exchange having fault tolerant operation
US7694177B2 (en) Method and system for resynchronizing data between a primary and mirror data storage system
US7865763B2 (en) Data replication method
US20180150501A1 (en) Database system, server device, computer program product, and information processing method
US20060143497A1 (en) System, method and circuit for mirroring data
WO2014059804A1 (zh) 数据同步方法及***
US7797571B2 (en) System, method and circuit for mirroring data
WO2013189289A1 (zh) 数据处理的方法、网卡和***
JP2012173996A (ja) クラスタシステム、クラスタ管理方法、およびクラスタ管理プログラム
JP2010033467A (ja) 情報管理システム
EP2569921A1 (en) System and method for providing reliable storage
US9043283B2 (en) Opportunistic database duplex operations
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP5153310B2 (ja) フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム
JP6056408B2 (ja) フォールトトレラントシステム
US9026849B2 (en) System and method for providing reliable storage
JP5509272B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
JP2009075710A (ja) 冗長化システム
JP6511737B2 (ja) 冗長システム、冗長化方法および冗長化プログラム
JP4874211B2 (ja) 計算機システム、同期稼動化方法、ノード、及びプログラム
JP2004272884A (ja) 複数リモートストレージでのリモートコピー停止後のデータ同期化方式

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120518

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121012

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: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121204

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5153310

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150