JP3139884B2 - 多重要素処理システム - Google Patents

多重要素処理システム

Info

Publication number
JP3139884B2
JP3139884B2 JP05141876A JP14187693A JP3139884B2 JP 3139884 B2 JP3139884 B2 JP 3139884B2 JP 05141876 A JP05141876 A JP 05141876A JP 14187693 A JP14187693 A JP 14187693A JP 3139884 B2 JP3139884 B2 JP 3139884B2
Authority
JP
Japan
Prior art keywords
elements
standby
operating
computer
active
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
JP05141876A
Other languages
English (en)
Other versions
JPH06348527A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP05141876A priority Critical patent/JP3139884B2/ja
Publication of JPH06348527A publication Critical patent/JPH06348527A/ja
Application granted granted Critical
Publication of JP3139884B2 publication Critical patent/JP3139884B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムや資源のよ
うなシステム要素を信頼性向上等の目的のために多重化
した多重要素処理システムに関する。
【0002】
【従来の技術】近年、電算機システムの各分野における
要求の多様化および技術の高度化に伴って、システムが
大規模化かつ複雑化する傾向にあり、このため、システ
ムの信頼性の向上を図ることが重要になっている。
【0003】システムの信頼性を向上させるための方法
として、従来より同一の処理を複数のシステム要素で並
行に実行する並列多重処理方式と、処理は単一のシステ
ム要素で実行し、実行中のシステム要素(稼働系要素)
が故障した段階で待機系要素が処理を継続する待機冗長
処理方式とがある。
【0004】上記並列多重処理方式は、計算機故障時に
待機系要素の立ち上げ等の操作がいらず、システムを停
止することなく処理を継続できる。しかしながら、正常
時においても同一の処理を複数の多重化された要素で並
行に処理するため、各計算機の処理負荷は大きい。
【0005】これに対して待機冗長処理方式では、稼働
系要素と待機系要素の内部状態を同一に保つための操作
をしなければならないが、正常時においては待機系要素
は実際の処理を行わないので各計算機の処理負荷は小さ
く、計算機資源を有効に利用することができる。
【0006】また、並列多重処理方式と待機冗長処理方
式を混在させた方式、すなわち多重化された要素内の複
数個を稼働系として並行に動作させ、さらに1つ以上の
待機系要素も用意しておく方式も提案されている。この
方式は、並列多重処理方式と待機冗長処理方式のそれぞ
れの特徴を合せ持つ方式であり、要求される信頼度や応
答性に応じて、稼働系要素数と待機系要素数を任意の数
に設定できる特徴がある。
【0007】
【発明が解決しようとする課題】しかしながら、上述し
た並列多重処理方式と待機冗長処理方式を混在させた従
来の多重要素処理システムでは、多重化の単位がハード
ウェア単位(例えば、計算機、ディスク等)であるた
め、一部の要素が故障した場合、その故障要素が復旧す
るまで初期に設定した多重度を維持することができない
という問題があった。
【0008】また、稼働系要素数を維持するため、稼働
系要素の故障時に待機系要素が稼働系要素になる多重要
素処理システムでは、故障した稼働系要素の数以上の待
機系要素が存在しない場合、全ての待機系要素が稼働系
要素になったとしても初期に設定された稼働系要素の多
重度を維持することができず、待機系要素も存在しなく
なってしまうという問題、さらに、待機系要素が稼働系
要素になることによって稼働系要素数を維持したとして
も、待機系要素が稼働系要素に切り替わった後の待機系
要素の補充が行われないため、待機系要素が存在しなく
なった時は、さらなる稼働系要素の故障に対応すること
ができないといった問題があった。
【0009】本発明は、上述した従来の事情に対処して
なされたもので、各システム要素の信頼性、応答性に応
じて多重化された多重要素処理システムにおいて、稼働
系要素数と待機系要素数をそれぞれ設定された数に維持
することができ、要求される信頼度および応答性を維持
することのできる多重要素処理システムを提供しようと
するものである。
【0010】
【課題を解決するための手段】 請求項1記載の多重要
素処理システムは、システムを構成するシステム要素の
うちの少なくとも一部が、稼働系要素群と待機系要素群
とに多重化され、通常時は前記稼働系要素群が作業を実
行し、前記稼働系要素の故障時に、対応する待機系要素
が稼働系として処理を継続する多重要素処理システムに
おいて、前記システム要素は、前記稼働系要素の故障を
検出する故障検出手段と、前記故障検出手段によって前
記稼働系要素の故障が検出された時に、前記待機系要素
を前記稼働系要素に切り替えて、前記稼働系要素の数を
予め設定された必要稼働要素数に維持する稼働系要素数
調整手段と、故障した前記稼働系要素の数が前記待機系
要素の数以上の時、前記稼働系要素を前記必要稼働要素
数に維持するよう新たに前記稼働系要素を生成する稼働
要素生成手段と、前記稼働系要素の数を前記必要稼働要
素数に維持できた時、前記待機系要素の数を予め設定さ
れた必要待機要素数に維持するよう新たに前記待機系要
素を生成する待機要素生成手段とを具備したことを特徴
とする。 た、請求項2記載の多重要素処理システム
は、システムを構成するシステム要素のうちの少なくと
も一部が、稼働系要素群と待機系要素群とに多重化さ
れ、通常時は前記稼働系要素群が作業を実行し、前記稼
働系要素の故障時に、対応する待機系要素が稼働系とし
て処理を継続する多重要素処理システムにおいて、前記
システム要素は、前記稼働系要素の故障を検出する故障
検出手段と、前記故障検出手段によって前記稼働系要素
の故障が検出された時に、作業を実行している前記稼働
系要素がない場合は、前記待機系要素内の少なくとも1
要素を前記稼働系要素に切り替える稼働系要素数調整手
段と、前記稼働系要素数調整手段によって、作業を実行
している前記稼働系要素が1つ以上確認できた時、前記
待機系要素の数を予め設定された必要待機要素数に維持
するよう新たに前記待機系要素を生成する待機要素生成
手段と、前記待機系要素の数を前記必要待機要素数に維
持できた時、前記稼働系要素の数を予め設定された必要
稼働要素数に維持するよう新たに前記稼働系要素を生成
する稼働要素生成手段とを具備したことを特徴とする。
【0011】
【作用】上記構成の本発明の多重要素処理システムで
は、各システム要素の信頼性、応答性に応じて多重化さ
れた多重要素処理システムにおいて、稼働要素生成手段
および待機要素生成手段によって、稼働系要素および待
機系要素を新たに生成することにより、稼働系要素と待
機系要素の数をそれぞれ予め設定された必要数に維持す
ることが可能となる。
【0012】これによって、要求される信頼度および応
答性を維持することができる。
【0013】
【実施例】以下、本発明の多重要素処理システムの詳細
を、一実施例について図面を参照して説明する。
【0014】図1は、本発明の一実施例の多重要素処理
システムの概略構成を示すもので、本実施例ではプログ
ラムモジュールがシステム要素となっており、このよう
なシステム要素が登録され実行されるシステム要素実行
手段2a、2b…と、これらのシステム要素実行手段2
a、2b…にそれぞれ接続されたメッセージ交換手段3
a、3b…とからなる計算機1a、1b…を、通信路4
によって一列に接続した構成となっている。
【0015】図2は、上記計算機1a、1b…の具体的
構成を示すもので、同図に示すように、計算機1a、1
b…は、CPU5、クロック6、ROM7、RAM8、
SCU9、ラインレシーバ10、ラインドライバ11、
システムバス12等から構成されている。図1に示され
たシステム要素実行手段2a、2b…およびメッセージ
交換手段3a、3b…はこのように構成された計算機1
a、1b…上に実現される。そして、システム要素実行
手段2a、2b…により、システム要素の機能が実行さ
れ、メッセージ交換手段3a、3b…によりシステム要
素間の通信が制御される。
【0016】本実施例においては、信頼性を向上させる
等の理由により、図3に示すように個々のシステム要素
は多重化され、各計算機1a、1b…に分散されて配置
されている。なお、同図において、通常の円で示されて
いるシステム要素が稼働系要素であり、2重の円で示さ
れているシステム要素が待機系要素である。
【0017】図3に示す例では、システム要素Aは3重
化され、計算機1a、1bおよび1eに登録されている
が、計算機1aに登録されているシステム要素A1と計
算機1eに登録されたシステム要素A3が、通常時動作
する稼働系要素であり、計算機1bに登録されているシ
ステム要素A2は、通常時は実際の処理をせず、計算機
1aないし1eが故障した時に稼働系要素になるために
待機している待機系要素である。
【0018】また、システム要素Bは4重化され、計算
機1b、1c、1d、1eに登録されており、計算機1
bのシステム要素B1と計算機1cのシステム要素B2
が稼働系、計算機1dのシステム要素B3と計算機1e
のシステム要素B4が待機系である。同様にシステム要
素Cは2重化され、計算機1cと1dに登録されてお
り、計算機1cのシステム要素C1が稼働系、計算機1
dのシステム要素C2が待機系である。また、システム
要素D、Eは多重化されず、稼働系としてそれぞれ計算
機1a、1fに登録されている。
【0019】上記構成の多重化処理システムにおいて
は、各システム要素は互いにメッセージを交換しあいな
がら処理を行う。図3に示す例では、システム要素Dが
システム要素B宛にメッセージを送っている様子を示し
ている。このような多重化要素に対して送信されたメッ
セージは、図4にも示すように、その宛先システム要素
の動作モード(稼働系か待機系か)に関係なく等しく受
信される。メッセージを受信した稼働系要素は、受信メ
ッセージの内容に従った処理を並行して行い、その結果
をさらに次のシステム要素に対してそれぞれ通知する。
一方、待機系要素は、受信メッセージを保存しておくだ
けで実際の処理を行わない。
【0020】図5は、システム要素間で変換されるメッ
セージのフォーマットを示す。あて先システム要素名エ
リアには、送信先システムの要素名が入り、あて先手続
き名エリアには、あて先システム要素内の手続き名がセ
ットされる。さらにメッセージ本体エリアにはシステム
要素間で交換される情報がセットされる。
【0021】ここで、従来の多重要素処理システムで
は、図3のシステム要素の配置時に例えば計算機1cが
故障した場合、図6に示すように、稼働系要素B2の代
わりに待機系要素B3が稼働状態となり、また稼働系要
素C1の代わりに待機系要素C2が稼働状態となること
によって、稼働要素数を維持する。この場合、それぞれ
の待機系要素数が1つずつ減ってしまっており、引き続
き稼働系要素が故障を続けるとその処理を引き継ぐ要素
が存在しなくなってしまう。また、図7に示すように計
算機1aと1eが同時に故障した場合は、稼働系要素A
1とA3が同時に故障してしまい、待機系要素A2が稼
働状態になったとしてもシステム要素Aの稼働系要素数
2を維持することができない。
【0022】これに対して、本実施例では、以下に示す
ようにして、稼働系要素数と待機系要素数を必要数に維
持することができる。
【0023】本実施例において、各システム要素は、図
8に示すように、個々のシステム要素固有の処理を行う
本処理手段20、稼働系要素の故障を検出する故障検出
手段21、稼働系要素の多重度数を設定数に調整する稼
働系要素数調整手段22、待機要素を稼働系に切り換え
ても稼働要素数が不足する場合に稼働系を生成する稼働
要素生成手段23と、待機系を稼働系に切り換えたこと
によって不足した待機系要素を生成する待機要素生成手
段24とから構成されている。
【0024】上記稼働系要素数調整手段22および本処
理手段20の具体的な構成例を図9に示す。
【0025】同図に示すように、本処理手段20は、シ
ステム要素固有の処理を実際に行う本処理実行部30
と、システム要素の実行手順や状態が保存されている処
理及び状態記憶部31と、当該システム要素が登録され
た計算機の負荷を監視し負荷値を求める負荷監視部32
とから構成されている。
【0026】また、稼働系要素数調整手段22は、要素
自身の動作モード(稼働系か待機系か)を記憶している
動作モード記憶部40と、この動作モード記憶部40に
記憶された動作モードを変更する動作モード切り換え部
41と、システム内に自要素と等しい稼働している要素
がいくつ存在するかを問い合わせるための稼働要素数問
い合わせ部42と、この稼働要素数問い合わせ部42の
要求に応えて自要素の状態を返信する応答部43と、こ
の応答部43からの応答を受信し稼働要素数を求める稼
働要素数カウント部44と、必要稼働要素数と必要待機
要素数を記憶しておく要素数記憶部45と、稼働要素数
カウント部44で求めた稼働要素数と要素数記憶部45
で記憶された設定数を比較し、稼働要素数カウント部4
4で求めた稼働要素数の方が多い場合起動され、自要素
が稼働要素であるべきか否かを決定する稼働要素決定部
46とから構成されている。
【0027】図3のシステム要素配置時には、システム
要素A1、A2、A3のそれぞれの要素数記憶部45に
は、必要稼働要素数として2、必要待機要素数として1
が記憶されており、同様にシステム要素B1、B2、B
3、B4の要素数記憶部45には必要稼働要素数として
2、必要待機要素数として2が記憶されており、システ
ム要素C1、C2の要素数記憶部45には、必要稼働要
素数として1、必要待機要素数として1が記憶されてお
り、システム要素DとEの要素数記憶部45には必要稼
働要素数として1、必要待機要素数として0が記憶され
ている。
【0028】また、稼働系要素であるシステム要素A
1、A3、B1、B2、C1、D、Eの動作モード記憶
部40には、動作モードとして“稼働”が記憶されてお
り、待機系要素であるシステム要素A2、B3、B4、
C2の動作モード記憶部40には、“待機”が記憶され
ている。
【0029】ここで、負荷監視部32における負荷監視
方法としては、実行待ちイベント数を負荷とする方法
や、最低プライオリティの要素の実行時間を用いて負荷
とする方法等があるが、以下の説明では、実行待ちイベ
ント数を負荷とし、実行待ちイベント数が多いほど負荷
が高いとする。
【0030】また、稼働系の故障を検出する方法として
は、稼働系が定期的に“alive”信号を送信し、待
機系がそのメッセージを受信しなくなった時稼働系故障
と判断する方法や、待機系から稼働系の状態を問い合わ
せ、その応答がない時稼働系故障と判断する方法等があ
るが、以下では、“alive”信号を用いて稼働系要
素の故障を検出する場合について説明する。
【0031】以下、図3におけるシステム要素の配置時
に、計算機1cが故障した場合を例に稼働系要素数と待
機系要素数が必要数に維持される処理について図10の
フローチャートを参照して説明する。なお、以下では、
計算機が故障した時の各計算機の負荷が、計算機1a=
20、計算機1b=10、計算機1c=17、計算機1
d=3、計算機1e=15、計算機1f=13であった
として説明を行う。
【0032】稼働系要素A1、A3、B1、B2、C
1、D、Eは、正常に動作している時その“aliv
e”信号の送信回数を付加した“alive”信号を周
期的に放送している。待機系要素A2、B3、B4、C
2は、故障検出手段21が同一送信回数の付加された
“alive”信号を要素数記憶部45にて記憶してい
る稼働系要素数だけ周期的に受信している時は全稼働系
が正常に動作していると判断するが、“alive”信
号を要素数記憶部45で記憶している稼働系要素数分受
信できなくなった時、稼働系故障と判断する。
【0033】本実施例では計算機1cが故障した場合を
想定するので、計算機1cに登録されているシステム要
素B2とC1が動作停止し、それらの待機系要素B3、
B4およびC2は、それぞれ“alive”信号を2つ
と1つ受信しなければならないところ、システム要素B
3とB4は1つのみ、システム要素C2は1つも受信で
きなくなり稼働系要素の故障を検出する。
【0034】図10のフローチャートに示すように、上
述のようにして稼働系要素の故障が検出されると(10
1)、稼働系要素の故障を検出した待機系要素B3、B
4、C2の故障検出部21は、動作モード切り換え部4
1に対して自要素を稼働状態にするよう指示し、それを
受けて動作モード切り換え部41は、動作モード記憶部
40に記憶された動作モード“待機”を“稼働”に変更
する(102)。
【0035】システム要素B3、B4、C2の本処理実
行部30は、動作モード記憶部40の状態が“稼働”状
態になったことを検出すると、処理及び状態記憶部31
に記憶された状態に従って稼働系として動作を開始す
る。この稼働系としての処理と並行して稼働系要素数を
維持するための処理が行われる。
【0036】すなわち、システム要素B3、B4、C2
内の動作モード切り換え部41は、動作モード記憶部4
0の状態を“稼働”に切り換えた後、稼働要素数を調整
するため自要素内の稼働要素数問い合わせ部42を起動
する。起動された稼働要素数問い合わせ部42は、自要
素の稼働系がいくつ動作しているかを問い合わせるメッ
セージを、自要素の多重化要素の応答部43宛に放送す
るとともに、自要素内の稼働要素数カウント部44を起
動する。つまり、システム要素B3、B4はシステム要
素B宛に、システム要素C2はシステム要素C宛に問い
合わせメッセージを放送し、その結果を稼働要素数カウ
ント部44で待つ(103)。
【0037】ここで、図11に示すように、各多重化要
素内の応答部43は、稼働要素数問い合わせメッセージ
を受信すると(201)、負荷監視部32から現在の負
荷値を得、この負荷値を自計算機番号と共に自多重化要
素の稼働要素数カウント部44宛に放送する(20
2)。例えば、システム要素B1、B3、B4内の応答
部43は、稼働要素数問い合わせメッセージを受信する
と、それぞれの計算機の負荷をそれぞれの負荷監視部3
2から得て、それぞれの計算機番号1b、1d、1eを
付加してシステム要素B宛に応答メッセージを放出す
る。この例では、計算機1cが故障した時の各計算機の
負荷が、計算機1a=20、計算機1b=10、計算機
1c=17、計算機1d=3、計算機1e=15、計算
機1f=13であるので、システム要素B1は(計算機
番号=1b、負荷10)を、システム要素B3は(1
d、3)を、システム要素B4は(1e、15)を放送
し、システム要素C2は(1d、3)を放送する。
【0038】図10に示すように、各多重化要素内の稼
働要素数カウント部44は、起動後一定時間(例えば50
msec)待ち、その間に到着する応答メッセージを受信す
る(104)。
【0039】そして、稼働要素数カウント部44は、受
信した応答メッセージ数を数え現在の稼働要素数を把握
し(105)、要素数記憶部45に記憶された必要稼働
要素数と比較する(106)。
【0040】この時、現在の稼働要素数の方が多いか等
しいならば稼働要素決定部46を起動し、そうでなけれ
ば稼働要素生成手段23を起動する。この例では、シス
テム要素B1、B3、B4はそれぞれ3つのメッセージ
を受信し、システム要素C2は自身からの1つのみメッ
セージを受信する。システム要素Bについては要素数記
憶部45に必要稼働要素数2と記憶されているので、現
在の稼働要素数が要素数記憶部45に記憶されている数
より多く、稼働要素決定部46を起動する。また、シス
テム要素C2についても、要素数記憶部45に記憶され
た要素Cの必要稼働要素数は1である。このため、現在
の稼働要素数と等しいので稼働要素決定部46を起動す
る。
【0041】起動された稼働要素決定部46では、ま
ず、受信した応答メッセージをそれに付加されている多
重化要素の存在する計算機番号と負荷に応じて並べる
(107)。つまり、負荷の小さい順に並べ、負荷が等
しい場合は計算機番号が小さい順に並べる。
【0042】そして、自要素の順位が負荷の小さい方か
ら数えて、要素数記憶部45に記憶されている必要稼働
要素数以下かどうか比較する(108)。
【0043】上記比較の結果、自要素の順位が負荷の小
さい方から数えて要素数記憶部45に記憶されている数
以下ならば、そのまま稼働状態を続ける。
【0044】一方、自要素の順位が負荷の小さい方から
数えて要素数記憶部45に記憶されている数より大きい
ならば、自要素は必要数以上の稼働要素であると判断し
て、自要素を待機状態に戻すべく動作モード切り換え部
41に指示する。動作モード切り換え部41は、指示に
従い動作モード記憶部40に記憶されている状態“稼
働”を“待機”に変更する(109)。
【0045】ここで、システム要素Bについて負荷の小
さい順に並べると、{(1d、3)、(1b、10)、
(1e、15)}となり、計算機1dと1b上のシステ
ム要素B3とシステム要素B1は稼働状態を継続する
が、計算機1e上のシステム要素B4は待機状態に戻
る。
【0046】このようにして、稼働系要素数を必要数に
維持することができるが、待機要素数が減っているため
これを補う処理を引き続き行う。
【0047】稼働要素決定部46にて、各要素毎に自要
素が稼働状態を続けるべきか、待機要素に戻るかを求め
た後、各要素は待機系要素がいくつ存在するかを求め
(114)、その待機要素数を引き数に待機要素生成手
段24を起動する。この例では、例えばシステム要素B
については、計算機1bと1d上のシステム要素B1、
B3は稼働状態を継続するが、計算機1e上のシステム
要素B4は待機状態に戻るため、待機要素数1を引き数
に待機要素生成手段24を起動する。また、システム要
素Cについては待機要素が存在しないため、待機要素数
0を引き数に待機要素生成手段24を起動する。
【0048】起動された待機要素生成手段24は、まず
引き数として渡された待機要素数が0か否か調べる(1
15)。
【0049】そして、待機要素が存在しない場合(つま
り、待機要素数=0の場合)は、負荷最小計算機上で動
作している稼働系要素が待機系要素を生成すべく、自要
素が負荷最小計算機上で動作しているか調べる(11
6)。
【0050】この結果、自要素が負荷最小計算機上で動
作していない場合は、そのまま稼働状態を継続する。一
方、負荷最小計算機上で動作している場合は、受信した
応答メッセージ中の計算機番号と故障した多重化要素が
存在した計算機番号を用いて当該要素の多重化要素が存
在しない計算機を不足する待機要素数分求める(11
7)。そして、その求めた計算機のそれぞれに自要素を
コピーし動作モードを待機に切り換えることによって、
待機系要素を生成する(118)。
【0051】この例では、システム要素Cは稼働要素C
2のみしか存在せず待機要素が存在しないため、要素C
2が要素C1が存在した計算機1cを除く計算機、ここ
では残りの計算機1a、1b、1e内の負荷最小の計算
機1b上に自身をコピーした後、動作モードを待機に切
り換えることによって待機系要素C3を生成する。
【0052】一方、上述したステップ115にて、待機
要素が存在する場合は、負荷最小計算機上で動作してい
る待機系要素が待機系要素を生成すべく、自要素が負荷
最小計算機上で動作しているか調べる(119)。自要
素が負荷最小計算機上で動作していない場合は、そのま
ま待機状態を継続する。一方、負荷最小計算機上に存在
する場合は、受信した応答メッセージ中の計算機番号と
故障した多重化要素が存在した計算機番号を用いて当該
要素の多重化要素が存在しない計算機を不足する待機要
素数分求める(120)。そして、その求めた計算機の
それぞれに自要素をコピーして待機系要素を生成する
(121)。
【0053】本例では、システム要素Bについては、稼
働系要素がシステム要素B1、B3となり、システム要
素B4のみが待機系要素となる。このためシステム要素
B4は、システム要素B2が存在した計算機1cと稼働
系要素であるシステム要素B1、B3が存在する計算機
1b、1dを除く計算機で負荷が最小の計算機、ここで
は計算機1f上に自身をコピーし待機系要素B5とす
る。
【0054】このことによって図12に示すように、故
障計算機1cに存在したシステム要素BとCの稼働要素
数と待機要素数をそれぞれの要素数記憶部45に設定さ
れた必要数に維持することが可能となる。
【0055】次に、図3のシステム要素配置において、
計算機1a、1eが同時に故障した場合を例に、故障し
た稼働系要素数がその待機系要素数より多い場合でも、
新たに稼働系要素と待機系要素を生成して、それぞれの
要素数を要素数記憶部45に設定されている必要数に保
つことを示す。
【0056】計算機1aと1eが故障した時、図10の
フローチャートに示した前述の手順に従って、システム
要素A2が多重化要素Aの故障を検出するが、ステップ
106において、稼働要素数カウント部44では自身か
らの応答のみを受信し、システム要素Aの要素数記憶部
45に記憶されている必要稼働要素数2を下回るため、
稼働要素生成手段23を起動する。
【0057】この起動された稼働要素生成手段23によ
って新たに稼働系要素を生成するが、この生成処理は、
負荷最小の計算機に存在する稼働系要素によって行わせ
るため、まず、受信した応答メッセージ中で自要素の負
荷が最小かどうかを調べる(110)。
【0058】負荷最小でなければ、そのまま稼働系とし
ての処理を継続する。一方、自要素が負荷最小計算機上
のシステム要素であったならば、現在の稼働系要素数と
要素数記憶部45に記憶されている必要稼働要素数との
差を求め(111)、その差の数分稼働系要素を生成す
べく、受信した応答メッセージ中の計算機番号と故障し
た多重化要素が存在した計算機番号を用いて当該要素の
多重化要素が存在しない計算機を差の数分求める(11
2)。そして、その求めた計算機のそれぞれに自要素を
コピーする(113)。
【0059】この例では、システム要素Aについては、
システム要素A2のみしか存在しないため、現在の稼働
要素数は1であり、自身が負荷最小計算機上の要素であ
ると判断する。そして、要素数記憶部45には、必要稼
働要素数2が記憶されているため、稼働要素数として不
足する1個を、自計算機1bとシステム要素A1、A3
が存在した計算機1a、1eとを除く計算機、例えば計
算機1dに自要素をA4としてコピーすることによって
生成する。このことによって、システム要素Aの稼働要
素数を要素数記憶部45に設定された必要稼働要素数2
に維持することが可能となる。
【0060】さらに、待機要素数を維持するため待機要
素数を求めるが(114)、この例では、システム要素
Aの待機系要素が存在しないため待機要素数を0として
待機要素生成手段24を起動する。
【0061】起動された待機要素生成手段24は、引き
数として渡された待機要素数が0か否か調べる(11
5)。この例では、待機要素が存在しないので待機要素
数=0であり、負荷最小計算機上で動作している稼働系
要素が待機系要素を生成すべく、自要素が負荷最小計算
機上で動作しているか調べる(116)。
【0062】この結果、自要素が負荷最小計算機上で動
作していない場合は、そのまま稼働状態を継続する。一
方、自要素が負荷最小計算機上で動作している場合は、
受信した応答メッセージ中の計算機番号と故障した多重
化要素が存在した計算機番号、および新たに生成した稼
働要素の計算機番号を用いて、当該要素の多重化要素が
存在しない計算機を不足する待機要素数分求める(11
7)。そして、その求めた差の数分の計算機のそれぞれ
に自要素をコピーし動作モードを待機に切り換えること
によって、待機系要素を生成する(118)。
【0063】本例では、システム要素Aの稼働系要素と
してシステム要素A2、A4が存在するが、ここで計算
機1bの方が負荷が小さいので、システム要素A2は故
障した計算機1aと1eおよび新たに稼働要素を生成し
た計算機1dを除く計算機、ここでは計算機1f上に自
身をコピーし動作モードを待機に切り換えることによっ
て、待機系要素A5を生成する。このことによって図1
3に示すように、システム要素Aの稼働要素数と待機要
素数を要素数記憶部45に設定された必要数に維持する
ことが可能となる。
【0064】本実施例では、稼働系要素故障時にそれを
検知した待機系要素が即稼働系となって処理を引き継ぐ
ため、処理の中断を極力短くすることができる。
【0065】なお、上記実施例では、各要素が稼働系の
故障を検出すると、即自要素の実行モードを稼働系とし
た後、不足する稼働系および待機系を生成するが、自要
素の実行モードを稼働系にする前に不足する稼働要素数
および待機要素数を求めた後、自要素を稼働系とするか
否か判定し不足分のシステム要素を生成することも可能
である。以下、このような手順を採用した第2の実施例
を図面を参照して説明する。
【0066】各システム要素の構成は、図8に示した前
述の実施例と同様であるが、稼働系要素数調整手段22
の構成が、図14に示すような構成の稼働系要素数調整
手段22aに変わる。また、故障検出手段21および本
処理手段20は、図9に示した多重要素処理システムと
同様に構成されている。
【0067】稼働系要素数調整手段22aは、システム
内に自要素と等しい多重化要素がいくつ存在するかを問
い合わせるための多重要素数問い合わせ部50と、この
多重要素数問い合わせ部50の要求に応えて自要素の状
態を返信する応答部51と、この応答部51からの応答
を受信し稼働要素数と待機要素数を求める多重要素数カ
ウント部52と、必要要素数を記憶しておく要素数記憶
部53と、多重要素数カウント部52で求めた稼働/待
機要素数と要素数記憶部53に記憶された設定数とを比
較し、多重要素数カウント部52で求めた多重要素数の
方が多い場合起動され、自要素が稼働要素になるべきか
否かを決定する稼働要素決定部54と、稼働要素になる
と判断した時、自要素の動作モードを切り換える動作モ
ード切り換え部55と、要素自身の動作モード(稼働系
か待機系か)を記憶している動作モード記憶部56とか
ら構成されている。
【0068】図3のシステム要素配置時には、多重化要
素A1、A2、A3のそれぞれの要素数記憶部53に
は、必要稼働要素数として2、必要待機要素数として1
が記憶されており、同様に多重化要素Bの要素数記憶部
53には必要稼働要素数として2、必要待機要素数とし
て2が記憶されており、多重化要素Cの要素数記憶部5
3には必要稼働要素数として1、必要待機要素数として
1が記憶されており、多重化要素DとEの要素数記憶部
53には必要稼働要素数として1、必要待機要素数とし
て0が記憶されていることは前述した実施例と同様であ
る。
【0069】また、稼働系要素であるシステム要素A
1、A3、B1、B2、C1、D、Eの動作モード記憶
部56には、動作モードとして“稼働”が記憶されてお
り、待機系要素であるシステム要素A2、B3、B4、
C2の動作モード記憶部56には“待機”が記憶されて
いることも前述した実施例と同様である。また、実行待
ちイベント数を負荷とし、“alive”信号を用いて
稼働系要素の故障を検出する点も前述した実施例と同様
である。
【0070】また、以下の説明においても、計算機が故
障したときの各計算機の負荷が、計算機1a=20、計
算機1b=10、計算機1c=17、計算機1d=3、
計算機1e=15、計算機1f=13であったとする。
【0071】以下、図3におけるシステム要素の配置時
に、計算機1cが故障した場合を例に稼働要素数および
待機要素数が維持されることを、図15のフローチャー
トを参照して説明する。
【0072】稼働系要素、すなわちシステム要素A1、
A3、B1、B2、C1、D、Eは、正常に動作してい
る時、その“alive”信号の送信回数を付加した
“alive”信号を周期的に放送している。待機系要
素、すなわちシステム要素A2、B3、B4、C2は、
故障検出手段21で同一送信回数が付加された“ali
ve”信号を要素数記憶部53にて記憶している稼働要
素数だけ周期的に受信している時は全稼働系が正常に動
作していると判断するが、“alive”信号を要素数
記憶部53で記憶している数分受信できなくなった時、
稼働系故障と判断する。この例では、計算機1cが故障
した場合を想定しているので、計算機1cに登録されて
いたシステム要素B2とC1が動作停止し、それらの待
機系要素であるシステム要素B3、B4およびC2は、
それぞれ“alive”信号を2つと1つ受信しなけれ
ばならないところ、システム要素B3とB4は1つの
み、システム要素C2は1つも受信できなくなり、稼働
系要素の故障を検出する(301)。
【0073】稼働系要素の故障を検出した待機系要素B
3、B4、C2の故障検出手段21は、稼働系要素数を
調整するため自要素内の多重要素数問い合わせ部50を
起動する。起動された多重要素数問い合わせ部50は、
自要素の稼働系要素および待機系要素がいくつ動作して
いるかを問い合わせる多重要素問い合わせメッセージ
を、自要素の多重化要素の応答部51宛に放送する(3
02)。
【0074】これと共に、自要素内の多重要素数カウン
ト部52を起動する。つまり、システム要素B3、B4
は、システム要素B宛に、システム要素C2はシステム
要素C宛に問い合わせメッセージを放送し、その結果を
多重要素数カウント部52で待つ。
【0075】図16に示すように、各多重化要素内の応
答部51は、多重要素数問い合わせメッセージを受信す
ると(401)、負荷監視部32から現在の負荷値を
得、動作モード記憶部56から自要素の現動作モードを
得、自計算機番号と共に自要素の多重化要素の多重要素
数カウント部52宛に放送する(402)。例えば、シ
ステム要素B1、B3、B4内の応答部51は、多重要
素数問い合わせメッセージを受信すると、それぞれの計
算機の負荷をそれぞれの負荷監視部32から得、さらに
自要素の現在の動作モードを動作モード記憶部56より
得て、それぞれの計算機番号1b、1d、1eを付加し
てシステム要素B宛に応答メッセージを放送する。この
例では、計算機1cが故障した時の各計算機の負荷が、
計算機1a=20、計算機1b=10、計算機1c=1
7、計算機1d=3、計算機1e=15、計算機1f=
13であるので、システム要素B1は(計算機番号=1
b、負荷=10、動作モード=“稼働”)を、システム
要素B3は(1d、3、“待機”)を、システム要素B
4は(1e、15、“待機”)を放送し、システム要素
C2は(1d、3、“待機”)を放送する。
【0076】そして、各多重化要素内の多重要素数カウ
ント部52は、起動後一定時間(例えば50msec)待ち、
その間に到着する応答メッセージを受信する(30
3)。
【0077】次に、多重要素数カウント部52は、受信
した応答メッセージから。現在の待機系要素数、およ
び、要素数記憶部53に記憶されている必要稼働要素数
と受信した稼働要素数を比較し不足している稼働要素数
を求める(304)。
【0078】この後、多重要素数カウント部52は、求
めた現在の待機要素数と不足する稼働要素数を比較する
(305)。
【0079】この結果、現在の待機要素数の方が不足す
る稼働要素数より多い場合、およびこれらが等しい場合
は、稼働要素決定部54を起動し、そうでない場合は、
稼働要素生成手段23を起動する。この例では、システ
ム要素B1、B3、B4は、それぞれ3つのメッセージ
を受信し、現在の稼働要素数が1、待機要素数が2であ
ること、要素数記憶部53に記憶されている必要稼働要
素数が2であることから不足する稼働要素数が1である
ことを求め、現在の待機要素数が不足する稼働要素数よ
り多いので、稼働要素決定部54を起動する。
【0080】システム要素C2についても、自身からの
1つのみメッセージを受信し、待機系要素数が1つで、
システム要素Cの必要稼働要素数は1と要素数記憶部5
3に記憶されているので、不足稼働要素数が1であるこ
とを求め、現在の待機要素数と等しいので稼働要素決定
部54を起動する。
【0081】稼働要素決定部54が起動されたならば、
受信した応答メッセージ中の待機要素から送られたメッ
セージを計算機番号と負荷に応じて並べる(306)。
つまり、負荷の小さい順に並べ、負荷が等しい場合は計
算機番号が小さい順に並べる。そして、自要素の順位が
負荷の小さい方から数えて、不足稼働要素数以下かどう
か比較する(307)。
【0082】この結果、自要素の順位が負荷の小さい方
から数えて不足稼働要素数より大きいならば、自要素は
稼働要素になる必要がないと判断して、待機状態を継続
する。一方、自要素の順位が負荷の小さい方から数えて
不足稼働要素数以下ならば、自要素の動作モードを稼働
状態に変えるべく、動作モード切り換え部55を起動す
る。動作モード切り換え部55は、指示に従い動作モー
ド記憶部56に記憶されている状態“待機”を“稼働”
に変更する(308)。
【0083】この例では、システム要素Bについて待機
要素の存在する計算機番号を負荷の小さい順に並べると
{(1d、3、待機)、(1e、15、待機)}となる
ため、計算機1dのシステム要素B3が稼働状態に切り
換わる。計算機1b上のシステム要素B1は稼働状態を
継続し、計算機1e上のシステム要素B4は待機状態を
継続する。
【0084】このようにして、稼働要素決定部54に
て、各要素毎に自要素が待機状態を続けるべきか、稼働
要素になるべきかを求めた結果、各要素はステップ30
4で求めた現待機要素数から不足稼働要素数を引くこと
によって待機要素がいくつ存在するかを求める(31
3)。
【0085】そして、求めた待機要素数を引き数に、待
機要素生成手段24を起動する。この例では、例えばシ
ステム要素Bについては、計算機1b上のシステム要素
B1は稼動状態のままで、1d上のシステム要素B3は
稼働状態となり、計算機1e上のシステム要素B4は待
機状態のままであるため、待機要素数1を引き数に待機
要素生成手段24を起動する。また、システム要素Cに
ついては、待機要素が存在しないため、待機要素数0を
引き数に待機要素生成手段24を起動する。
【0086】次に、起動された待機要素生成手段24
は、引き数として渡された待機要素数が0か否か調べる
(314)。
【0087】そして、待機要素が存在しない場合(つま
り、待機要素数=0の場合)は、負荷最小計算機上で動
作している稼働系要素が待機系要素を生成すべく、自要
素が負荷最小計算機上で動作しているか調べる(31
5)。
【0088】この結果、自要素が負荷最小計算機上で動
作していない場合は、そのまま稼働状態を継続する。一
方、自要素が負荷最小計算機上で動作している場合は、
受信した応答メッセージ中の計算機番号と故障した多重
化要素が存在した計算機番号を用いて当該要素の多重化
要素が存在しない計算機を不足する待機要素数分求める
(316)。
【0089】そして、その求めた計算機のそれぞれに自
要素をコピーし、動作モードを待機に切り換えることに
よって待機要素を生成する(317)。
【0090】この例では、システム要素Cは稼働系要素
C2のみしか存在せず、待機系要素が存在しないため、
システム要素C2がシステム要素C1が存在した計算機
1cを除く計算機、ここでは残りの計算機1a、1b、
1e、1f内の負荷最小の計算機1b上に自身をコピー
し動作モードを待機に切り換えることによって、待機系
要素C3を生成する。
【0091】一方、ステップ314にて、待機系要素が
存在する場合は、負荷最小計算機上で動作している待機
系要素が待機系要素を生成すべく、自要素が負荷最小計
算機上で動作しているか調べる(318)。
【0092】そして、自要素が負荷最小計算機上で動作
していない場合は、そのまま待機状態を継続する。一
方、自要素が負荷最小計算機上に存在する場合は、受信
した応答メッセージ中の計算機番号と故障した多重化要
素が存在した計算機番号を用いて当該要素の多重化要素
が存在しない計算機を不足する待機要素数分求める(3
19)。
【0093】そして、その求めた計算機のそれぞれに自
要素をコピーして待機系要素を生成する(320)。
【0094】この例では、システム要素Bについては、
稼働系要素がシステム要素B1、B3となり、システム
要素B4のみが待機系要素となる。このためシステム要
素B4は、システム要素B2が存在した計算機1cと稼
働要素B1、B3が存在する計算機1b、1dを除く計
算機で負荷が最小の計算機、ここでは計算機1f上に自
身をコピーし待機系要素B5とする。
【0095】このことによって図12に示すように、故
障計算機1cに存在したシステム要素BとCの稼働要素
数と待機要素数をそれぞれの要素数記憶部53に設定さ
れた必要数に維持することが可能となる。
【0096】次に、図3のシステム要素配置において、
計算機1a、1eが同時に故障した場合を例に、故障し
た稼働要素数がその待機要素数より多い場合でも、新た
に稼働系要素と待機系要素を生成して、それぞれの要素
数を要素数記憶部53に設定されている必要数に保つ処
理について説明する。
【0097】計算機1aと1eが故障した時、前述した
手順に従って、システム要素A2が多重化要素Aの故障
を検出するが、多重要素数カウント部52では自身から
の応答のみを受信し、多重化要素Aの不足稼働要素数が
要素数記憶部53で記憶している必要稼働要素数2とな
るため、現待機要素数(=1)が不足稼働要素数(=
2)を下回る。このため、全待機要素を稼働状態に変え
ても必要な稼働要素数を維持できない。そこで、新たに
稼働要素を生成するため、稼働要素生成手段23を起動
する。
【0098】起動された稼働要素生成手段23では、生
成処理を負荷最小の計算機に存在する待機系要素によっ
て行わせるため、まず、受信した応答メッセージ中の待
機系要素存在計算機内で自要素の負荷が最小かどうか調
べる(309)。
【0099】この結果、負荷最小でなければ、即自要素
を稼働系とすべく動作モード切り換え部55を起動する
(312)。
【0100】一方、自要素が負荷最小計算機上のシステ
ム要素であったならば、不足稼働要素数分稼働要素を生
成すべく、受信した応答メッセージ中の計算機番号と故
障した多重化要素が存在した計算機番号を用いて当該要
素の多重化要素が存在しない計算機を不足稼働要素数分
求める(310)。
【0101】そして、その求めた不足数分の計算機のそ
れぞれに自要素をコピーし動作モードを稼働に切り換え
て稼働要素を生成する(311)。
【0102】この後、自要素を稼働系とすべく動作モー
ド切り換え部55を起動し、動作モード切り換え部55
は、指示に従い動作モード記憶部56に記憶されている
状態“待機”を“稼働”に変更する(312)。
【0103】この例では、システム要素Aとしてはシス
テム要素A2のみしか存在しないため、現在の待機要素
数は1であり、自身が負荷最小計算機上の要素であると
判断する。そして要素数記憶部53には必要稼働要素数
2が記憶されているため、不足稼働要素数として1個
を、自計算機1bと、システム要素A1、A3が存在し
た計算機1a、1eを除く計算機、例えば計算機1dに
自要素をコピーし動作モードを稼働に切り換えて稼働要
素としてのシステム要素A4を生成し、自要素も稼働状
態になる。このことによって、システム要素Aの稼働要
素数を要素数記憶部53に設定された必要数2に維持す
ることがでる。この後、引き続き待機要素数の維持を行
う。
【0104】システム要素A2の稼働要素生成手段23
では、上述のようにして計算機1dにシステム要素A4
を生成した後、待機要素数を求める(313)。この例
では、待機系要素が存在しないため、待機要素数0を引
き数としてとしてシステム要素Aの待機要素生成手段2
4を起動する。
【0105】起動された待機要素生成手段24は、ま
ず、引き数として渡された待機要素数が0か否か調べる
(314)。この例では、待機系要素が存在しないので
待機要素数=0であり、負荷最小計算機上で動作してい
る稼働系要素が待機系要素を生成すべく、自要素が負荷
最小計算機上で動作しているか調べる(315)。
【0106】そして、自要素が負荷最小計算機上で動作
していない場合は、待機要素生成手段24による処理を
終了して、そのまま稼働状態を継続する。一方、自要素
が負荷最小計算機上で動作している場合は、受信した応
答メッセージ中の計算機番号と故障した多重化要素が存
在した計算機番号、および新たに生成した稼働系要素の
計算機番号を用いて、当該要素の多重化要素が存在しな
い計算機を不足する待機要素数分求める(316)。そ
して、その求めた数分の計算機のそれぞれに自要素をコ
ピーし動作モードを待機に切り換えることによって待機
系要素を生成する(317)。
【0107】この例では、システム要素Aの稼働系要素
としてシステム要素A2、A4が存在するが、ここで計
算機1bの方が負荷が小さかったとすると、システム要
素A2は故障した計算機1aと1eおよび新たに稼働系
要素を生成した計算機1dを除く計算機、ここでは計算
機1f上に自身をコピーし動作モードを待機に切り換え
ることによって待機系要素A5を生成する。このことに
よって図13に示すように、システム要素Aの稼働要素
数と待機要素数を要素数記憶部53に設定された必要数
に維持することが可能となる。
【0108】本実施例では、第1の実施例において一旦
稼働系になった要素を待機系に戻すといった動作モード
の無駄な切り換えが生じないといった特徴がある。
【0109】次に、第3の実施例について説明する。
【0110】第1の実施例では、稼働系要素の故障を検
出した全待機要素が一旦稼働系になった後、稼働要素数
を問い合わせ不必要な稼働系要素を待機系要素に戻し、
さらに不足する稼働/待機系要素を生成した。また、第
2の実施例では、多重要素数を問い合わせる際に不足稼
働要素数を求め、その数分待機系要素を稼働系に切り換
えたり新たに稼働系要素を生成した。このため、稼働要
素数や多重要素数を問い合わせる際に同期処理が必要と
なり、処理のオーバヘッドが生じてしまう。
【0111】この問題を解決する実施例として第3の実
施例では、以下のように処理を実行する。
【0112】すなわち、まず、第1の実施例のように稼
働系要素の故障を検出した全ての待機系要素は一旦稼働
系となる。この時、受信した“alive”信号の数と
要素数記憶部に記憶されている必要稼働要素数との差か
ら第2の実施例のように不足稼働要素数を求めておく。
【0113】この後、稼働系に切り替わったことを自計
算機番号と自計算機の負荷を付加して放送する。
【0114】そして、新たに稼働系になったシステム要
素は、他のシステム要素から稼働系に切り替わった旨の
メッセージを受信した時、自計算機の負荷と他要素から
受信した切り換えメッセージに付加されている負荷値と
比べて、自計算機より小さい負荷が付加された切り換え
メッセージを必要稼働数以上受信したら、自要素を待機
系に戻す。一方、自計算機より負荷の小さい計算機数が
必要稼働要素数未満の場合はそのまま稼働系を継続す
る。
【0115】また、一定時間内に不足稼働要素数未満の
切り換えメッセージしか受信しなかった場合は、全待機
系要素が稼働系になっても必要稼働要素数に至らないの
で、負荷最小な計算機が不足する稼働系要素を前述した
実施例と同様な方法で生成し、さらに、不足する待機系
要素をやはり前述した実施例と同様な方法で生成する。
このようにすることによって、多重化要素間で同期を取
る必要がなく、各システム要素の稼働要素数と待機要素
数を要素数記憶部に設定された必要数に維持することが
可能となる。
【0116】上記3つの実施例では、不足する稼働/待
機系要素を利用可能な計算機上に重複することなく生成
できたが、利用可能な計算機が不足する場合は、稼働要
素数を維持するよう努め、稼働要素数を維持できた時、
待機系要素を生成する。つまり、稼働要素数を維持する
ことを優先し、計算機が不足する場合は利用可能な資源
の範囲内で最大数の多重要素を生成する。
【0117】これは、図10のフローチャートに示した
ステップ112、117、120、および、図15のフ
ローチャートに示したステップ310、316、319
にて多重化要素の存在しない計算機を求める際、利用可
能なすべての計算機を求め、その計算機に不足する稼働
/待機系要素を最大で不足数分、図10のステップ11
3、118、121および図15のステップ311、3
17、320で生成することによって実現することがで
きる。
【0118】次に、待機要素数を維持することを優先し
た第4の実施例を、図面を参照して説明する。
【0119】図17は、本実施例の概略構成を示すもの
である。同図に示すように、各システム要素の構成は、
図8に示した実施例と同様であるが、その接続関係が異
なり、稼働系要素数調整手段22bから待機要素生成手
段24を起動し、その後、稼働要素生成手段23を起動
する順番となっている。また、稼働系要素数調整手段2
2bの構成が図18に示すように変わる。
【0120】図18に示すように、稼働系要素数調整手
段22bは、システム内に自要素と等しい多重化要素が
いくつ存在するかを問い合わせるための多重要素数問い
合わせ部60と、自要素の状態を返信する応答部61
と、この応答部61からの応答を受信し稼働要素数と待
機要素数を求める多重要素数カウント部62と、必要要
素数を記憶しておく要素数記憶部63と、多重要素数カ
ウント部62で求めた稼働要素数が0の時起動され自要
素が稼働要素になるべきか否かを決定する稼働要素決定
部64と、稼働要素になると判断したとき自要素の動作
モードを切り換える動作モード切り換え部65と、要素
自身の動作モード(稼働系か待機系か)を記憶している
動作モード記憶部66とから構成されている。。
【0121】図3のシステム要素配置時には、多重化要
素A1、A2、A3のそれぞれの要素数記憶部63に
は、必要稼働要素数として2、必要待機要素数として1
が記憶されており、同様に多重化要素Bの要素数記憶部
63には必要稼働要素数として2、必要待機要素数とし
て2が記憶されており、多重化要素Cの要素数記憶部6
3には必要稼働要素数として1、必要待機要素数として
1が記憶されており、多重化要素DとEの要素数記憶部
63には必要稼働要素数として1、必要待機要素数とし
て0が記憶されていることは前述した実施例と同様であ
る。
【0122】また、稼働要素であるA1、A3、B1、
B2、C1、D、Eの動作モード記憶部66には、動作
モードとして“稼働”が記憶されており、待機要素であ
るA2、B3、B4、C2の動作モード記憶部66には
“待機”が記憶されていることも前述した実施例と同様
である。また、負荷監視部32においても、前述同様実
行待ちイベント数を負荷とし、稼働系の故障を検出する
方法としても、前述同様“alive”信号を用いて稼
働系要素の故障を検出する。
【0123】また、以下の実施例においても、計算機が
故障した時の各計算機の負荷が、計算機1a=20、計
算機1b=10、計算機1c=17、計算機1d=3、
計算機1e=15、計算機1f=13であったとする。
【0124】以下、図3におけるシステム要素の配置時
に、計算機1cが故障した場合を例に稼働要素数および
待機要素数が維持されることを図19のフローチャート
を参照して示す。
【0125】稼働系要素、すなわちシステム要素A1、
A3、B1、B2、C1、D、Eは、正常に動作してい
る時その“alive”信号の送信回数を付加した“a
live”信号を周期的に放送している。待機系要素、
すなわちシステム要素A2、B3、B4、C2は、故障
検出手段21で同一送信回数が付加された“aliv
e”信号を要素数記憶部63にて記憶している必要稼働
要素数だけ周期的に受信している時は全稼働系が正常に
動作していると判断するが、“alive”信号を要素
数記憶部63で記憶している数分受信できなくなった
時、稼働系故障と判断する(501)。
【0126】本実施例では、計算機1cが故障した場合
を想定するので、計算機1cに登録されていたシステム
要素B2とC1が動作停止し、それらの待機要素である
システム要素B3、B4およびC2は、それぞれ“al
ive”信号を2つと1つ受信しなければならないとこ
ろ、システム要素B3とシステム要素B4は1つのみ、
システム要素C2は1つも受信できなくなり稼働系要素
の故障を検出する。
【0127】稼働系要素の故障を検出したシステム要素
B3、B4、C2の故障検出手段21は、稼働要素数を
調整するため自要素内の多重要素数問い合わせ部60を
起動する。起動された多重要素数問い合わせ部60は、
自要素の稼働系および待機系がいくつ動作しているかを
問い合わせる多重要素問い合わせメッセージを、自要素
の多重化要素の応答部61宛に放送する(502)。こ
れとともに、自要素内の多重要素数カウント部62を起
動する。つまり、システム要素B3、B4は、システム
要素B宛に、システム要素C2はシステム要素C宛に問
い合わせメッセージを放送し、その結果を多重要素数カ
ウント部62で待つ。
【0128】図16に示すように、各多重化要素内の応
答部61は、多重要素数問い合わせメッセージを受信す
ると(401)、負荷監視部32から現在の負荷値を
得、動作モード記憶部66から自要素の現動作モードを
得、自計算機番号と共に自要素の多重化要素の多重要素
数カウント部62宛に放送する(402)。
【0129】例えば、システム要素B1、B3、B4内
の応答部61は、多重要素数問い合わせメッセージを受
信すると、それぞれの計算機の負荷をそれぞれの負荷監
視部32から得、さらに自要素の現在の動作モードを動
作モード記憶部66より得て、それぞれの計算機番号1
b、1d、1eを付加してシステム要素B宛に応答メッ
セージを放送する。
【0130】この例では、計算機1cが故障した時の各
計算機の負荷が、計算機1a=20、計算機1b=1
0、計算機1c=17、計算機1d=3、計算機1e=
15、計算機1f=13であったとしているので、シス
テム要素B1は(計算機番号=1b、負荷=10、動作
モード=“稼働”)を、システム要素B3は(1d、
3、“待機”)を、システム要素B4は(1e、15、
“待機”)を放送し、システム要素C2は(1d、3、
“待機”)を放送する。
【0131】各多重化要素内の多重要素数カウント部6
2は、起動後一定時間(例えば50msec)待ち、その間に
到着する応答メッセージを受信する(503)。
【0132】次に、多重要素数カウント部62は、受信
した応答メッセージより現在の稼働要素数と待機要素数
を求める(504)。
【0133】そして、現在の稼働系要素が存在するか
を、ステップ504で求めた稼働要素数より調べる(5
05)。この時、現在の稼働要素が存在するならば待機
要素の生成のため待機要素生成手段24を起動するが、
現在稼働系要素が存在しない場合は、待機系要素中の1
つを稼働系要素とすべく、どの待機系要素を稼働系にす
るか決めるため稼働要素決定部64を起動する。
【0134】この例では、システム要素B1、B3、B
4はそれぞれ3つのメッセージを受信し、現在の稼働要
素数が1、待機要素数が2となり、1つの稼働系要素の
存在が確認できたので待機要素生成手段24を起動す
る。システム要素C2については、自身からの1つのみ
受信し、待機系要素数が1つで稼働系要素が存在しない
ことを検知するので、稼働系要素を生成すべく稼働要素
決定部64を起動する。稼働要素決定部64が起動され
たならば、負荷最小の計算機上の待機系要素を稼働系と
すべく、自計算機が負荷が最小かどうか調べる(50
6)。
【0135】この結果、負荷が最小でなければそのまま
待機系であるが、負荷が最小であったならば自要素を稼
働系とすべく動作モード切り換え部65を起動し、動作
モード記憶部66の状態を“待機”から“稼働”に変更
する(507)。
【0136】この例では、システム要素C2は他に稼働
系が存在しないため自要素を稼働系とする。このことに
よって、少なくとも1つの稼働要素を確保することかで
きたので、次に待機系要素を生成するため待機要素生成
手段24を起動する。
【0137】待機要素生成手段24は、起動されるとま
ず、現在の待機要素数を求める(508)。これは稼働
系要素が存在した場合はステップ504で求めた待機要
素数であり、稼働系要素が存在しなかった場合はステッ
プ504で求めた待機要素数−1である。そして、求め
た待機要素数が要素数記憶部63に記憶されている必要
待機要素数と比べて等しいか否か調べる(509)。
【0138】この結果、等しい場合は必要数の待機系要
素が存在するため、稼働系要素を生成するため稼働要素
生成手段23を起動する。この例では、システム要素B
としてはシステム要素B3、B4が待機系要素であり、
要素数記憶部63に記憶された2個分存在するため、待
機系要素を新たに作る必要がなく、稼働要素生成手段2
4を起動する。
【0139】一方、求めた待機要素数が要素数記憶部6
3に記憶されている数より小さい場合は、待機系要素を
生成するため待機系要素が存在するか否かを調べる(5
10)。
【0140】この結果、待機要素が存在しない場合は、
負荷最小計算機上で動作している稼働系要素が待機系要
素を生成すべく、自要素が負荷最小計算機上で動作して
いるか調べる(511)。
【0141】自要素が負荷最小計算機上で動作していな
い場合は、そのまま稼働状態を継続する。一方、自要素
が負荷最小計算機上で動作している場合は、受信した応
答メッセージ中の計算機番号と故障した多重化要素が存
在した計算機番号を用いて当該要素の多重化要素が存在
しない計算機を不足する待機要素数分求める(51
2)。そして、その求めた数分の計算機のそれぞれに自
要素をコピーし動作モードを待機状態に切り換えること
によって待機系要素を生成する(513)。
【0142】この例では、システム要素Cは稼働系要素
であるシステム要素C2のみしか存在せず、待機系要素
が存在しないため、システム要素C2がシステム要素C
1が存在した計算機1cを除く計算機、ここでは残りの
計算機1a、1b、1e、1f内の負荷最小の計算機1
b上に自身をコピーし動作モードを待機に切り換えるこ
とによって、待機系要素としてシステム要素C3を生成
する。
【0143】一方、ステップ510にて、待機系要素が
存在する場合は、負荷最小計算機上で動作している待機
系要素が待機系要素を生成すべく、自要素が負荷最小計
算機上で動作しているか調べる(514)。
【0144】この結果、自要素が負荷最小計算機上で動
作していない場合は、そのまま待機状態を継続する。一
方、自要素が負荷最小計算機上に存在する場合は、受信
した応答メッセージ中の計算機番号と故障した多重化要
素が存在した計算機番号を用いて当該要素の多重化要素
が存在しない計算機を不足する待機要素数分求める(5
15)。
【0145】そして、その求めた計算機のそれぞれに自
要素をコピーして待機系要素を生成する(516)。
【0146】このようにして待機要素数を要素数記憶部
63に記憶されている必要数に維持することができたな
ら、次に稼働要素数を要素数記憶部63に記憶されてい
る必要数に維持するため稼働要素生成手段23を起動す
る。
【0147】稼働要素生成手段23は起動されると、ま
ず、現在の稼働要素数を求める(517)。この現在の
稼働要素数は、稼働系要素が存在した場合はステップ5
04で求めた稼働要素数であり、稼働系要素が存在しな
かった場合はステップ507で作成した1個である。
【0148】そして、現在の稼働要素数が要素数記憶部
63に記憶されている必要稼働要素数に達しているか調
べる(518)。
【0149】この結果、現在の稼働要素数が必要数に達
している場合は稼働要素数も維持されているので処理を
終了する。この例では、システム要素Cは既に稼働要素
が1つ生成されているので必要数に達しており、要素数
記憶部63に記憶されている必要数を維持しているので
処理を終了する。
【0150】一方、稼働要素数が必要数に達していない
場合は、負荷最小計算機上で動作しているシステム要素
が稼働系要素を生成すべく、自要素が負荷最小計算機上
で動作しているか調べる(519)。
【0151】この結果、自要素が負荷最小計算機上で動
作していない場合は処理を終了する。一方、自要素が負
荷最小計算機上に存在する場合は、受信した応答メッセ
ージ中の計算機番号と故障した多重化要素が存在した計
算機番号、および稼働系要素と待機系要素を生成した場
合はその生成した計算機を除く計算機から、不足する稼
働要素数分の計算機を求める(520)。
【0152】そして、その求めた計算機のそれぞれに、
自要素をコピーしてその動作モードを稼働状態にするこ
とによって稼働系要素を生成する(521)。
【0153】この例では、システム要素Bは稼働系要素
がシステム要素B1のみで、システム要素B3とシステ
ム要素B4が待機系要素となっているので、この3つの
システム要素内の負荷最小の計算機上のシステム要素
(ここではシステム要素B4)は、システム要素B2が
存在した計算機1cと稼働系要素B1と待機系要素B
3、B4が存在する計算機1b、1d、1eを除く計算
機で負荷が最小の計算機、ここでは計算機1f上に自身
をコピーしてその動作モードを稼働状態にすることによ
って稼働系要素B5を生成する。
【0154】このことによって図20に示すように、故
障計算機1cに存在したシステム要素Bとシステム要素
Cの稼働要素数と待機要素数をそれぞれの要素数記憶部
63に設定された必要数に維持することが可能となる。
【0155】ここで、同様にして、図3のシステム要素
配置において、計算機1a、1eが同時に故障した場合
は、待機系要素であるシステム要素A2が稼働系要素の
故障を検出し、他にシステム要素Aの多重要素が存在し
ないためシステム要素A2自身が稼働系となり、その
後、待機系要素としてシステム要素A4を計算機1dに
生成し、さらに稼働系要素としてシステム要素A5を計
算機1fに生成し、図21に示すようになり、稼働要素
数と待機要素数を要素数記憶部に設定されている必要数
に維持する。
【0156】本実施例では、待機系要素を優先して生成
することにより計算機資源を有効に利用することが可能
となるといった特徴がある。
【0157】また、前記4つの実施例において利用可能
な計算機台数が不足して要素数記憶部に記憶されている
多重数分のシステム要素を生成できない場合は、処理の
手順に従い可能な限りの最大数のシステム要素を生成す
るとする。
【0158】
【発明の効果】以上説明したように本発明の多重要素処
理システムによれば、要求される数の稼働系要素と待機
系要素を維持することが可能となり、要求される信頼度
と応答性を維持可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施例の多重要素処理システムの
構成を示す図。
【図2】 図1の多重要素処理システムの要部構成を示
す図。
【図3】 多重化されたシステム要素を計算機に分散配
置した様子を示す図。
【図4】 稼働系要素と待機系要素のメッセージ受信の
様子を示す図。
【図5】 システム要素間で交換されるメッセージフォ
ーマットを示す図。
【図6】 従来の多重要素処理システムの動作を説明す
るための図。
【図7】 従来の多重要素処理システムの動作を説明す
るための図。
【図8】 図1の多重要素処理システムの要部構成を示
す図。
【図9】 図7のシステム要素の要部構成を示す図。
【図10】 第1の実施例における動作を説明するため
の図。
【図11】 第1の実施例における動作を説明するため
の図。
【図12】 第1の実施例における動作を説明するため
の図。
【図13】 第1の実施例における動作を説明するため
の図。
【図14】 本発明の第2の実施例の要部構成を示す
図。
【図15】 第2の実施例における動作を説明するため
の図。
【図16】 第2の実施例における動作を説明するため
の図。
【図17】 本発明の第2の実施例の要部構成を示す
図。
【図18】 図16のシステム要素の要部構成を示す
図。
【図19】 第4の実施例における動作を説明するため
の図。
【図20】 第4の実施例における動作を説明するため
の図。
【図21】 第4の実施例における動作を説明するため
の図。
【符号の説明】
1a、1b… 計算機 2a、2b… システム要素実行手段 3a、3b… メッセージ交換手段 4 通信路
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/16 - 11/20 G06F 15/16 - 15/177 G06F 9/46

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 システムを構成するシステム要素のうち
    の少なくとも一部が、稼働系要素群と待機系要素群とに
    多重化され、通常時は前記稼働系要素群が作業を実行
    し、前記稼働系要素の故障時に、対応する待機系要素が
    稼働系として処理を継続する多重要素処理システムにお
    いて、 前記システム要素は、 前記稼働系要素の故障を検出する故障検出手段と、 前記故障検出手段によって前記稼働系要素の故障が検出
    された時に、前記待機系要素を前記稼働系要素に切り替
    えて、前記稼働系要素の数を予め設定された必要稼働要
    素数に維持する稼働系要素数調整手段と、 故障した前記稼働系要素の数が前記待機系要素の数以上
    の時、前記稼働系要素を前記必要稼働要素数に維持する
    よう新たに前記稼働系要素を生成する稼働要素生成手段
    と、 前記稼働系要素の数を前記必要稼働要素数に維持できた
    時、前記待機系要素の数を予め設定された必要待機要素
    数に維持するよう新たに前記待機系要素を生成する待機
    要素生成手段とを具備したことを特徴とする多重要素処
    理システム。
  2. 【請求項2】 システムを構成するシステム要素のうち
    の少なくとも一部が、稼働系要素群と待機系要素群とに
    多重化され、通常時は前記稼働系要素群が作業を実行
    し、前記稼働系要素の故障時に、対応する待機系要素が
    稼働系として処理を継続する多重要素処理システムにお
    いて、 前記システム要素は、 前記稼働系要素の故障を検出する故障検出手段と、 前記故障検出手段によって前記稼働系要素の故障が検出
    された時に、作業を実行している前記稼働系要素がない
    場合は、前記待機系要素内の少なくとも1要素を前記稼
    働系要素に切り替える稼働系要素数調整手段と、 前記稼働系要素数調整手段によって、作業を実行してい
    る前記稼働系要素が1つ以上確認できた時、前記待機系
    要素の数を予め設定された必要待機要素数に維持するよ
    う新たに前記待機系要素を生成する待機要素生成手段
    と、 前記待機系要素の数を前記必要待機要素数に維持できた
    時、前記稼働系要素の数を予め設定された必要稼働要素
    数に維持するよう新たに前記稼働系要素を生成する稼働
    要素生成手段とを具備したことを特徴とする多重要素処
    理システム。
JP05141876A 1993-06-14 1993-06-14 多重要素処理システム Expired - Lifetime JP3139884B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05141876A JP3139884B2 (ja) 1993-06-14 1993-06-14 多重要素処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05141876A JP3139884B2 (ja) 1993-06-14 1993-06-14 多重要素処理システム

Publications (2)

Publication Number Publication Date
JPH06348527A JPH06348527A (ja) 1994-12-22
JP3139884B2 true JP3139884B2 (ja) 2001-03-05

Family

ID=15302223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05141876A Expired - Lifetime JP3139884B2 (ja) 1993-06-14 1993-06-14 多重要素処理システム

Country Status (1)

Country Link
JP (1) JP3139884B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
WO2013168258A1 (ja) * 2012-05-10 2013-11-14 三菱電機株式会社 待機冗長二重化装置
JP6291711B2 (ja) * 2013-01-21 2018-03-14 日本電気株式会社 フォールトトレラントシステム
JP7206981B2 (ja) * 2019-02-07 2023-01-18 日本電気株式会社 クラスタシステム、その制御方法、サーバ、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
関 俊文、外2名,"宣言型分散システムにおける高信頼化手法",電気学会研究会資料,社団法人電気学会,平成4年10月14日,情報処理研究会 IP−92−7

Also Published As

Publication number Publication date
JPH06348527A (ja) 1994-12-22

Similar Documents

Publication Publication Date Title
US5636341A (en) Fault processing method and information processing system
KR100557399B1 (ko) 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법
US5418937A (en) Master-slave type multi-processing system with multicast and fault detection operations having improved reliability
US6012150A (en) Apparatus for synchronizing operator initiated commands with a failover process in a distributed processing system
US20060150009A1 (en) Computer system and method for dealing with errors
JP3139884B2 (ja) 多重要素処理システム
EP2224341B1 (en) Node system, server switching method, server device, and data transfer method
US6629260B1 (en) Automatic reconnection of partner software processes in a fault-tolerant computer system
KR19980020514A (ko) 종합정보통신망 사설교환기의 결함내성 구현방법
KR20030048503A (ko) 이중화 서버 구조의 데이터 동기화를 위한 통신 시스템 및방법
CN114513525B (zh) 采用跨机房链式转发的数据一致性优化方法及系统
RU2279707C2 (ru) Отказоустойчивое вычислительное устройство и способ функционирования подобного устройства
JPS6139656A (ja) 分散形ネツトワ−クデ−タ処理システム
Pimentel et al. A fault management protocol for TTP/C
JPH06195318A (ja) 分散処理システム
JP2633351B2 (ja) 制御装置の故障検出機構
JP3213016B2 (ja) 多重化要素制御方式
JP2000224210A (ja) 監視制御システム
JP3176945B2 (ja) 情報処理装置、待機冗長型システムおよび待機冗長型システムの主系と待機系との間でチェックポイントをとる方法
JP2885583B2 (ja) 通信手順制御システム
JP2829040B2 (ja) 情報集配信システム
KR0168947B1 (ko) 실시간 분산시스템에서 디스크를 갖지 않는 노드의 부팅 방법
CN115826435A (zh) 一种航天器多机协同网络化容错方法
JPH01314342A (ja) 機能分散形マイコンシステムのバックアップ装置
JPH04295937A (ja) 待機冗長型システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001128

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

Free format text: PAYMENT UNTIL: 20071215

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20131215

Year of fee payment: 13

EXPY Cancellation because of completion of term