JP2000047894A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JP2000047894A
JP2000047894A JP10218384A JP21838498A JP2000047894A JP 2000047894 A JP2000047894 A JP 2000047894A JP 10218384 A JP10218384 A JP 10218384A JP 21838498 A JP21838498 A JP 21838498A JP 2000047894 A JP2000047894 A JP 2000047894A
Authority
JP
Japan
Prior art keywords
node
monitoring
processing
information
nodes
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.)
Granted
Application number
JP10218384A
Other languages
English (en)
Other versions
JP3062155B2 (ja
Inventor
Keiji Kano
敬次 加納
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 JP10218384A priority Critical patent/JP3062155B2/ja
Publication of JP2000047894A publication Critical patent/JP2000047894A/ja
Application granted granted Critical
Publication of JP3062155B2 publication Critical patent/JP3062155B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 複数のノードで構成された計算機システムに
おいて、処理効率を確保しつつ耐故障性を向上させる。 【解決手段】 ネットワーク接続された複数のノード
1,2,…,nではそれぞれ監視エージェント10-1,
10-2,…,10-nが動作し、自ノード及び他ノードで
のDBアプリケーションの稼働状況を監視する。また、
各ノードで相互に共有する共有ディスク20上の監視情
報リポジトリ25に各ノードの情報が格納される。この
情報には、各ノードのCPU負荷、空きメモリ量などが
含まれる。自ノードでのアプリケーションのダウン、他
ノードのダウンを検知した監視エージェントは、監視情
報リポジトリ25の情報を基に、例えばCPU負荷が少
ないといった基準で動的に代替ノードを選択して、これ
に処理の引き継ぎを指示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の計算機が接
続された計算機システムに関し、特に耐故障性、可用性
が向上した計算機システムに関する。
【0002】
【従来の技術】計算機システムの可用性を向上させるた
めには、故障によるシステムのダウン時間を低減する必
要がある。この耐故障性向上を図る一つの方法として冗
長性の利用が挙げられる。冗長性はハードウェア、ソフ
トウェアの両方に適用することが可能であり、具体的に
は多重化、多数決方式、誤り訂正/検出符号の利用とい
った例がある。その中で、ハードウェアについて利用で
きる比較的簡単な形態であって適用範囲の広いものに、
一つの計算機システムを互いに接続された複数の計算機
で構成するという多重化の形態がある。
【0003】この多重化では、システムを構成する個別
の計算機(これを以下、ノードと呼ぶことがある)が何
らかの原因で停止(ダウン)したとき、そのノードの処
理を予め定義された別のノードが引き継ぐフェールオー
バ構成とする事例が多くなってきている。
【0004】
【発明が解決しようとする課題】この従来のフェールオ
ーバ構成では、障害発生時に、予め決められたノード先
にしか処理を引き継ぐ(フェールオーバする)ことがで
きない。つまり、この方法では、処理引き継ぎに必要な
計算機リソース(資源)量(例えばCPU負荷、メモリ
量)が多くても、それに応じてフェールオーバされるノ
ードを動的に変更できず、フェールオーバされたノード
の負荷が高くなってその処理速度が許容限度以上に低減
したり、極端な場合には処理を引き継ぐことが実質的に
不可能である場合が生じ得るという問題があった。
【0005】また、例えば、重要度の低いデータベース
アプリケーションソフトウェア(以下、DBアプリケー
ションと略記する)が稼働しているノードに、重要度の
高いDBアプリケーションをフェールオーバしたい場合
がある。この場合、フェールオーバ先のノードのメモリ
の一部は、重要度の低いDBアプリケーションが先に占
有しており、フェールオーバされる重要度の高いDBア
プリケーションは、残りのメモリ資源しか利用すること
ができず、処理が効率的に行われない、処理速度が遅い
といった上述の不都合を生じる。このように従来のフェ
ールオーバ方法では、単純には、リソースの割当が効果
的に行われないといった問題があった。これを改善した
従来のフェールオーバ方法には、一旦、先にリソースを
占有している重要度の低いDBアプリケーションを停止
させて、重要度の高いDBアプリケーションに対して優
先的にリソースが与えられるような再配分を行うものも
あった。この方法では、一旦、ノードをシャットダウン
する、すなわち既存のセッション情報(端末とDB間の
接続及びトランザクションを処理するために必要な情
報)が失われてしまい、先に実行されていたアプリケー
ションのリソース再配分後の実行が面倒となるという問
題があった。
【0006】本発明は上記問題点を解消するためになさ
れたもので、複数ノードがネットワーク接続され、ノー
ド間でフェールオーバを行うという多重化により耐故障
性、可用性を向上させる計算機システムであって、フェ
ールオーバ先での処理が効率的に行われるシステムを提
供することを目的とする。
【0007】
【課題を解決するための手段】本発明に係る、それぞれ
処理プログラムを実行可能な複数のノードがネットワー
ク接続された計算機システムは、前記各ノードが、前記
各ノードそれぞれの稼働状況を監視する監視手段と、前
記監視手段が任意の前記ノードでの前記処理プログラム
の実行障害を検知したとき代替ノードを選択する代替ノ
ード選択手段と、前記実行障害を生じたノードから前記
代替ノードへ前記処理プログラムの実行を引き継がせる
フェールオーバ手段とを有することを特徴とする。
【0008】他の本発明に係る計算機システムにおいて
は、前記監視手段は前記各ノードそれぞれのプロセッサ
負荷を監視し、前記代替ノード選択手段は前記監視手段
により得られた前記プロセッサ負荷に基づいて前記代替
ノードを選択することを特徴とする。本発明の好適な態
様は、前記代替ノード選択手段が前記プロセッサ負荷が
最小であるノードを前記代替ノードとして選択するもの
である。
【0009】別の本発明に係る計算機システムにおいて
は、前記監視手段は前記各ノードそれぞれのメモリ空き
容量を監視し、前記代替ノード選択手段は前記監視手段
により得られた前記メモリ空き容量に基づいて前記代替
ノードを選択することを特徴とする。本発明の好適な態
様は、前記代替ノード選択手段が前記メモリ空き容量が
最大であるノードを前記代替ノードとして選択するもの
である。
【0010】また、本発明の他の好適な態様は、前記監
視手段が前記各ノードそれぞれのプロセッサ負荷とメモ
リ空き容量とを監視し、前記代替ノード選択手段が前記
監視手段により得られた前記プロセッサ負荷と前記メモ
リ空き容量とに基づいて前記代替ノードを選択するもの
である。
【0011】また別の本発明に係る計算機システムにお
いては、前記監視手段は前記各ノードそれぞれのメモリ
空き容量を監視し、前記フェールオーバ手段は前記代替
ノードの前記メモリ空き容量が前記処理プログラムの引
き継ぎに十分か否かを判断する容量比較手段と、前記メ
モリ空き容量が不足するときは前記代替ノードで先行し
て起動されている先起動プログラムに割り当てられるメ
モリ容量を縮小するメモリ割当変更手段とを有すること
を特徴とする。
【0012】さらに他の本発明に係る計算機システム
は、前記代替ノードの前記先起動プログラムと当該先起
動プログラムを前記ネットワークを介して利用するユー
ザノードとの間のセッション情報を含んだセッション情
報テーブルを有し、前記フェールオーバ手段が、前記メ
モリ容量の割当変更を行う際に前記セッション情報に基
づいて既設セッション中のトランザクションが継続中か
否かを判別して継続中のトランザクションに対するメッ
セージのみ前記先起動プログラムに渡し、当該セッショ
ンに対する他のメッセージは前記割当変更が完了するま
で前記セッション情報に保留するメッセージ取扱手段を
有し、前記メモリ割当変更手段が前記トランザクション
が終了したときに、前記先起動プログラムの実行を停止
してメモリ割当変更を行うことを特徴とする。
【0013】
【発明の実施の形態】[実施の形態1]以下、本発明の
実施の形態について図面を参照して説明する。
【0014】本発明に係る計算機システムは、複数のノ
ード(ノード1、ノード2、…、ノードn)が互いにネ
ットワークを介して接続されて構成される。図1は、本
システムの構成を説明するための模式図である。各ノー
ドではそれぞれ、監視エージェントと呼ぶモジュールが
動作する。この監視エージェントは、例えば、各ノード
の中央処理装置(Central Processing Unit:CPU)
で実行されるソフトウェアで構成され、各ノードで常時
実行状態にされている。そして監視エージェントは自律
的に動作して、それが動作するノード(自ノードと称す
る)と自ノード以外のネットワーク接続されたノード
(他ノードと称する)のDBアプリケーションの稼働状
況、CPU資源、メモリ資源などを定期的に、又は随
時、サンプリングしながら監視する機能を有する。この
監視エージェント10は、ノードのオペレーティングシ
ステム(OS)やDBが起動しているかどうかを判別す
る既存の機能を用いて各ノードの情報をチェックし、そ
れぞれの監視エージェント10-1,10-2,…,10-n
の監視結果は、ネットワークを介して各ノードと接続さ
れた共有ディスク20に書き込まれる。監視結果は具体
的には、この共有ディスク20上に設けられる監視情報
リポジトリ25に記録される。
【0015】図2は、監視情報リポジトリ25に格納さ
れる情報の一例の論理構成を示す模式図である。なお、
この図において、データとして実際に値が取得されるの
は、ツリー構造の最下位レベルの項目であり、それ以外
の項目はその下位レベルを総括する単なる名称である。
この図に示したように、監視情報リポジトリ25には
「ノード情報」として各ノード毎の情報が格納される。
各「ノード情報」は、ノード名、最終サンプリング時
刻、監視エージェント情報、ロック済みエージェント情
報、サンプリング間隔、サンプリングデータ保存期間、
ノード状態、基準空きメモリ量といったデータを含んで
いる。
【0016】また各「ノード情報」はさらに、「DB情
報」、「資源情報」という名称で総括されるデータを含
んでいる。DB情報は、各ノードにて使用されるDBシ
ステムの種類に応じた数だけの「DB」エントリで構成
され、各「DB」エントリはDB名、実行優先度、サン
プリング時刻、DB状態、起動情報といったデータを含
んで構成される。
【0017】「資源情報」は、「資源データ」エントリ
で構成され、各「資源データ」エントリはサンプリング
時刻、CPU稼働率、空きメモリ量といったデータを含
んで構成される。「資源データ」エントリは「資源情
報」内に、サンプリング保存期間に応じて定まる、結果
を保存すべきサンプリング回数分だけ含まれる。すなわ
ち、「資源情報」には、サンプリングが行われる度に、
そのサンプリング時における「資源データ」を構成する
データセットが追加され、一方、予め定められたサンプ
リング保存期間を過ぎた「資源データ」エントリは削除
される。
【0018】以下、監視情報リポジトリ25内の各デー
タについて説明する。「ノード名」は、ノードを識別す
るための名前であり、「最終サンプリング時刻」は、当
該ノードについての情報が最後にサンプリングされた日
付、時刻を表す情報である。「監視エージェント情報」
は、ノードで動作する監視エージェントの識別子(名
前)、及び別の監視エージェントとのメッセージ交換が
できるようにするための設定情報である。「ロック済み
エージェント情報」は、当該ノードをチェックしている
監視エージェントの識別子を表し、どの監視エージェン
トも当該ノードをチェック中でないときは値“NUL
L”が設定される。
【0019】「サンプリング間隔」は、監視エージェン
トが自ノード内の全てのDB情報及び資源情報を採取
し、監視情報リポジトリ25内に登録されたDBアプリ
ケーションがダウンしているかどうかをチェックする間
隔である。「サンプリングデータ保存期間」には、資源
情報の過去の履歴の保存期間が指定される。
【0020】「ノード状態」は、現在のノードの状態を
表すデータであり、その状態としては、例えば“停止
中”、“稼働中”、“ダウン”、“フェールオーバ作業
中”の4通りを定義することができる。
【0021】ここで、“停止中”は、ノードが稼働して
いないことを示す状態である。“停止中”が記録される
タイミングはOSが正常に停止されるときに停止処理の
一環として行われるか、ノードの“ダウン”状態下での
全てのDBアプリケーションのフェールオーバ作業が完
了(当該作業の成功又は不成功は問わない)した直後で
ある。
【0022】“稼働中”は、ノードが稼働していること
を示す状態である。“稼働中”が記録されるタイミング
は、自ノードの監視エージェントによって、自分自身の
起動初期処理として、又は“フェールオーバ作業中”状
態が終了した段階である。
【0023】“ダウン”は、ノードが過去に“稼働中”
の状態であったが、現時点ではノードが停止している状
態を表す。“ダウン”が記録されるタイミングは、監視
情報リポジトリに当該ノードの状態として“稼働中”が
記録されているにも拘わらず他ノードの監視エージェン
トによって当該ノードの停止が検出された場合である。
【0024】“フェールオーバ作業中”は、当該ノード
にてフェールオーバが実際に行われている状態である。
“フェールオーバ作業中”が記録されるタイミングは当
該ノードの監視エージェントが他ノードの監視エージェ
ントからDBフェールオーバの指示を受け取ったときで
あり、フェールオーバ作業が終了した時点で状態は“稼
働中”に戻る。
【0025】次に「基準空きメモリ量」には、起動直後
の空きメモリ量が記録される。
【0026】「DB情報」エントリに含まれる「DB
名」は、当該エントリに対応するDBシステムを一意に
特定する識別子である。「サンプリング時刻」は、当該
「DB情報」エントリの情報がサンプリングされた日
付、時刻を表す。「起動情報」は当該DBシステムに対
応したDBアプリケーションを起動するための実行手順
が記述されたスクリプトファイル名や、運用時の標準メ
モリ量など、DBアプリケーションを起動するために必
要な情報である。
【0027】「DB状態」は、当該エントリに対応する
DBシステムの状態を表すデータであり、その状態とし
ては、例えば“停止中”、“稼働中”、“ダウン”の3
通りを定義することができる。
【0028】ここで、“停止中”は、DBアプリケーシ
ョンが停止している状態を示す。“停止中”が記録され
るタイミングはDBアプリケーションが正常に停止され
るときに停止処理の一環として行われるか、自ノードの
監視エージェントによって、自分自身の起動初期処理と
してDBアプリケーションの停止が検出されたときであ
る。
【0029】“稼働中”は、DBアプリケーションが正
常に動作していることを示す状態である。“稼働中”が
記録されるタイミングは、当該DBアプリケーションが
動作するノードの監視エージェントによって、当該DB
アプリケーションの状態が“稼働中”以外の状態におい
て、当該DBアプリケーションが動作していることを検
出したときである。
【0030】“ダウン”は、DBアプリケーションが過
去に“稼働中”の状態であったが、現時点では停止して
いる状態を表すものである。“ダウン”が記録されるタ
イミングは、監視情報リポジトリに当該DBアプリケー
ションの状態として“稼働中”が記録されているにも拘
わらず自ノードの監視エージェントによってDBアプリ
ケーションの停止が検出されたとき、又は当該ノードの
状態が他ノードの監視エージェントによって“ダウン”
と記録される場合である。
【0031】「実行優先度」は、DBシステムの優先度
であり、数値を以て表すことができる。例えば、数値が
大きいほど優先度が高いと定義することができる。
【0032】「資源情報」エントリに含まれる「サンプ
リング時刻」は、当該「資源情報」エントリの情報がサ
ンプリングされた日付、時刻を表す。
【0033】「CPU稼働率」は、サンプリングが行わ
れた時点でのCPUの稼働率を表す。
【0034】「空きメモリ量」は、サンプリングされた
時刻での空きメモリ量を表す。
【0035】図3〜7は、監視エージェントの動作を説
明するフロー図であり、特に図3は、監視エージェント
のDBアプリケーション状態監視に関する初期処理を説
明するフロー図である。まず、監視エージェント10が
起動される前においては、監視情報リポジトリ25内の
ノード状態は“停止中”に設定される。各ノードが起動
され、監視エージェント10が起動されると、監視エー
ジェント10は自ノードの状態を“稼働中”に設定する
(S50)。次に、監視情報リポジトリ25の自ノード
に関するノード情報にエントリされているDB情報に基
づいて、エントリされている各DBシステム毎に以下に
説明するステップS60〜75で構成されるループを繰
り返す。このループに含まれる処理においては、まずD
Bの状態が監視情報リポジトリ25から取り出される
(S60)。そして取り出したDB状態の値が“稼働
中”であるか否かが判定され(S65)、その判定結果
に応じた値でDB状態が更新される(S70,S7
5)。なお、この初期処理においては、“ダウン”状態
は生じないので、ステップS65にて“稼働中”でない
と判定された場合には、ステップS75において、初期
値“停止中”が維持される。ステップS80において
は、全てのDBシステムについてステップS60〜S7
5が実施されたかが判断され、実施されていないDBシ
ステムがあれば、処理はステップS60に戻され、その
DBシステムについて同様の処理が行われる。一方、ス
テップS80において全てのDBシステムについて処理
が行われたと判断された場合には、図3に示す初期処理
は終了し、各ノード毎で行われる監視処理が開始され
る。
【0036】図4は、各ノードでの監視処理の概略を説
明するフロー図であり、図5は当該監視処理に設けられ
る自ノードに対するDB状況チェック処理S125内で
の処理をより詳細に示したフロー図である。図3と図4
とは、図に示される端子Aにおいて互いに接続される。
図3に示す初期処理から図4に示す監視処理に処理が渡
されると、以降、ノードが稼働中である間、監視処理を
構成するS100〜145が例えば一定間隔で起動され
繰り返される。
【0037】タイマー処理S100は、監視処理を一定
間隔で起動するために設けられ、当該処理が所定時間の
経過を検知したことに基づいて、続くDB再起動処理S
105が必要に応じて行われる。このDB再起動処理S
105は、ダウンしているDBアプリケーションの再起
動先(フェールオーバ先)として自ノードが選択された
という通知を受けた場合に実行され、そのダウンしてい
るDBアプリケーションを自ノードにおいて再起動す
る。
【0038】次に時刻が取得され(S110)、その時
刻に基づいて、監視情報リポジトリ25内に格納されて
いる自ノード情報内の資源情報のうちサンプリング保存
期間を超えたものがあるかどうかが探索され、当該保存
期間を超えたものは監視情報リポジトリ25から削除さ
れる(S115)。
【0039】このようにまず監視情報リポジトリ25内
の不要なデータを整理した後、監視エージェントは自ノ
ードのチェックを開始する。そのチェック開始に際し
て、監視エージェントは自身の監視エージェント識別子
を自ノード情報のロック済みエージェント情報に登録す
る(S120)。これにより自ノードに対するチェック
処理実行中における他ノードの監視エージェントからの
チェックを排他制御する。
【0040】自ノードに対するチェック処理はDBアプ
リケーションの状況のチェックと、自ノードのリソース
負荷状況のチェックとを含んでいる。このうち自ノード
のDBアプリケーションに対するチェック処理S125
を図5を用いてより詳しく説明する。このチェックは、
監視情報リポジトリ25の自ノード情報にエントリされ
ている全てのDBシステムについて反復される(S20
0)。まずDB状態が監視情報リポジトリ25から取り
出され、当該DB状態の値が“稼働中”であるか否かが
判定され(S205)、状態が“稼働中”でない場合に
は、当該DBアプリケーションについてのチェックを終
了し、残る未チェックのDBアプリケーションに対する
チェックに移る(S230)。一方、ステップS205
において、監視情報リポジトリ25上に格納されている
DB状態データが“稼働中”であるDBシステムに対し
ては、そのDBシステムの実際の状態が“正常稼働”で
あるか“停止”であるかが調べられる(S210)。こ
の実際の状態の判別には、従来技術を用いることができ
る。
【0041】監視情報リポジトリ25上で“稼働中”で
あった(S205)にも拘わらず、ステップS210で
取得された実際の状態が“停止”であった場合(S21
5)は、DBアプリケーションは実行障害を生じた、つ
まり“ダウン”していると判断され(S220)、DB
アプリケーションダウンに対応する所定の処理(S22
5)が実行される。
【0042】このDBアプリケーションダウン時の処理
では、実行障害を生じたDBアプリケーションを代替実
行させるのに適当なノード(代替ノード)が選択され、
当該ダウンしたDBアプリケーションをその代替ノード
において再起動し処理を引き継がせるための処理が、そ
の代替ノードで動作している監視エージェントに対して
実行される。すなわち、監視エージェントは、自ノード
でのDBアプリケーションの実行状況を監視する監視手
段、代替ノードを選択する代替ノード選択手段、及びダ
ウンしたDBアプリケーションの実行を代替ノードへ引
き継がせるフェールオーバ手段としての機能を有する。
なお、ここで選択された代替ノードへ発せられる処理引
き継ぎの指示は、当該代替ノードにおけるステップS1
05で検知され、実行される。
【0043】さて一方、条件判断ステップS215にお
いて、”停止”ではない、すなわち実際に“稼働中”で
あることが明らかになった場合は、監視情報リポジトリ
25上の情報と一致しており異常はないので、当該DB
アプリケーションについてのチェックを終了し、残る未
チェックのDBアプリケーションに対するチェックに移
る(S230)。なお、ステップS230において、全
てのDBアプリケーションについてのチェックが完了し
たと判断された場合には、自ノードに対するチェック処
理S125を終了する。
【0044】チェック処理S125が終了すると、次に
監視エージェントは、自ノードに関する資源情報のチェ
ックを行う(S130)。この処理では資源情報データ
がOSから取得され、監視情報リポジトリ25に格納さ
れる(S130)とともに、そのサンプリング時刻で監
視情報リポジトリ25内の自ノードに関する最終サンプ
リング時刻を更新する(S135)。
【0045】ステップS125〜135の自ノードに対
するチェック処理が終了すると、監視エージェントは自
ノード情報のロック済みエージェント情報に“NUL
L”を登録し、排他制御を解除する(S140)。
【0046】以上の処理は監視エージェントが自ノード
に対して行う処理であるが、監視エージェントは自ノー
ドだけでなく、他のノードに対する監視及び障害時のフ
ェールオーバ処理をも行う(S145)。これを全ノー
ド処理と称する。図6,7は、全ノード処理を説明する
フロー図である。この全ノード処理は便宜上、図6,7
の2つに分割して表しており、両図の同一符号の端子
(具体的には端子B同士、及び端子C同士)において両
図は接続される。この処理は、あるノードの監視エージ
ェントが他のノードを順次選択して、選択したノードに
関し稼働状況の監視、及び障害発生時のフェールオーバ
処理を行うものであり、ステップS300とステップS
445とで挟まれる処理が、それぞれのノードに対して
反復されるループ処理として構成されている。
【0047】ステップS305〜330は、あるノード
の監視エージェント(以下、検査実行エージェントと称
する)がチェック対象として選択したノード(以下、検
査対象ノードと称する)を、他のノードの監視エージェ
ントがロック状態としたままダウンした場合に対応する
処置である。検査対象ノードのロック済みエージェント
情報が判別され(S305)、それが“NULL”であ
る場合は問題がないので、検査実行エージェントは検査
対象ノードのロック済みエージェント情報に、自身のノ
ードの識別子を登録して検査対象ノードをロック状態と
し(S335)、検査対象ノードに対するチェックを開
始する。
【0048】一方、ステップS305において、検査対
象ノードのロック済みエージェント情報に、他ノードの
識別子が登録されている場合は、当該他ノードの監視エ
ージェントと通信可能かどうかが調べられる(S31
0)。もし通信可能であるならば、当該他ノードの監視
エージェントがその検査対象ノードをチェックであると
解して、当該他ノードに対するチェックは行わない。反
対に、ステップS310において、通信不可能であるこ
とが判明した場合には、当該他ノードの監視エージェン
トは検査対象ノードをロックしたままダウンしたと解さ
れる。そこで、検査実行エージェントは、現在検査を行
おうとしている検査対象ノードだけでなく全ノードを検
索対象として、当該他ノードの監視エージェントにより
ロックされているノードを監視情報リポジトリ25のノ
ード情報に基づいて見いだし、そのロックを解除する。
具体的には、全てのノードを対象とするループ処理が行
われ(S315,S330)、そのノードのロック済み
エージェント情報が当該他ノードの識別子であるかどう
かが判定され(S320)、判定結果が“Yes”であ
る場合にはそのロック済みエージェント情報を“NUL
L”にリセットし(S325)、“No”である場合に
はリセットを行わないという処理が行われる。しかる後
に、検査実行エージェントは現在検査を行おうとしてい
る検査対象ノードのロック済みエージェント情報に、自
身のノードの識別子を登録して検査対象ノードをロック
状態とし(S335)、検査対象ノードに対するチェッ
クを開始する。
【0049】検査実行エージェントは、まず、監視情報
リポジトリ25中の検査対象ノードのノード状態をチェ
ックする(S400)。このノード状態に“稼働中”、
又は“フェールオーバ作業中”が設定されている場合
は、さらに、検査対象ノードが実際に動作しているかど
うかが調べられる(S405)。ちなみに、この判定は
従来技術を用いて行うことができる。この判定の結果、
検査対象ノードが、監視情報リポジトリ25のノード状
態に設定された情報に反して、実際は停止していること
が判明した場合は、検査実行エージェントは検査対象ノ
ードがダウンしていると判定して、監視情報リポジトリ
25の当該ノード状態を“ダウン”に変更する(S41
0)。そして、検査実行エージェントは、ダウンしてい
ると判定した検査対象ノードについて監視情報リポジト
リ25に登録されている全てのDB情報を対象とするル
ープ処理を行う(S415,S430)。このループ処
理では、当該DB情報中のDB状態に“稼働中”が設定
されているかどうかが調べられ(S420)、判定が
“Yes”である場合にはDB状態を“ダウン”に変更
する(S425)。
【0050】しかる後、検査実行エージェントは、ダウ
ンしたと判定した検査対象ノード上で実行されていたD
Bアプリケーションに対し、ノードダウンに対応する所
定の処理(S435)を実行する。このノードダウン時
の処理では、当該ダウンノード上で実行されていたDB
アプリケーションを代替実行させるのに適当なノード
(代替ノード)が選択され、当該DBアプリケーション
をその代替ノードにおいて再起動し処理を引き継がせる
ための処理が、その代替ノードで動作している監視エー
ジェントに対して実行される。すなわち、検査実行エー
ジェントは、他ノードである検査対象ノードの稼働状況
を監視する監視手段、代替ノードを選択する代替ノード
選択手段、及びノードダウンにより実行できなくなった
DBアプリケーションの実行を代替ノードへ引き継がせ
るフェールオーバ手段としての機能を有する。なお、こ
こで選択された代替ノードへ発せられる処理引き継ぎの
指示は、当該代替ノードにおけるステップS105で検
知され、実行される。ノードダウン時の処理S435が
終了すると、検査実行エージェントは、検査対象ノード
のロック済みエージェント情報を“NULL”に変更し
ロックを解除し(S440)、新たな検査対象ノードに
対する処理に移る(S445)。もし、全てのノードに
対して処理が終了したら全ノード処理S145を終了
し、図4に示すループに復帰する(S450)。
【0051】なお、ステップS400において、ノード
状態が“停止中”である場合は問題がない、つまりDB
アプリケーションの実行障害は生じていないので、直ち
にロックを解除する(S440)。また、ノード状態が
既に“ダウン”に設定されている場合は、他のノードの
監視エージェントが既に当該検査対象ノードに対し検査
を実行して“ダウン”を検知し、ノードダウン時の処理
S435を実施したことを意味している。よって、この
場合も、現在検査を行っている検査実行エージェントは
改めてノードのダウンに対する処置を行わずに直ちにロ
ックを解除する(S440)。
【0052】上述したように本システムによれば、ある
ノードでのDBアプリケーションの実行が困難となった
ときに、ネットワーク接続された複数のノードの中か
ら、その実行を引き継ぐノードとして適切なものが動的
に選択される。
【0053】[実施の形態2]本発明の第2の実施形態
を、上記実施の形態1をベースに以下説明する。本実施
の形態の特徴は、実施の形態1におけるDBアプリケー
ションダウン時の処理S225及びノードダウン時の処
理S435に相当する処理にあり、以下、この実施の形
態1との相違点に重きを置いて説明し、実施の形態1と
基本的に同様である処理については説明を省略する。ま
た、実施の形態1と同様の構成要素には同一の符号を付
し、記載の簡潔を図る。
【0054】本実施の形態においては、これらDBアプ
リケーションダウン時の処理及びノードダウン時の処理
における代替ノードの選択が、代替ノードとして選択さ
れるノードのCPU負荷に基づいて行われる点に大きな
特徴がある。
【0055】本システムの各ノード上の監視エージェン
ト10は、互いに非同期にサンプリング間隔毎に動作し
ている。監視エージェント10は、自ノード内のあるD
Bアプリケーションがダウンしていること、又は他のあ
るノード全体がダウンしていることを検出すると、実施
の形態1のステップS225又はS435に相当するD
Bアプリケーションダウン時の処理及びノードダウン時
の処理を行う。
【0056】図8は、本実施の形態におけるDBアプリ
ケーションダウン時の処理を示すフロー図である。この
処理は、ノード自体は稼働しているが、DBアプリケー
ションはダウンしていることが検知された場合に実施さ
れる処理であり、図4のステップS120に続いて行わ
れる。
【0057】監視エージェント10は、自ノードのDB
アプリケーションにダウン状態のものを検知すると、監
視情報リポジトリ25に登録されている全てのノードを
対象とした以下の内容のループ処理を行う(S500,
S525)。このループ処理の1回のループは1つのノ
ードに対応した処理であり、まず、そのノードの状態が
“稼働中”、“フェールオーバ作業中”のいずれかであ
るかどうかが監視情報リポジトリ25のノード情報に基
づいて判定される(S505)。判定結果が“Yes”
である場合には、当該ノードに関する監視情報リポジト
リ25中の資源情報に基づいて、平均CPU稼働率が算
出される(S510)。ちなみに、例えばこの平均稼働
率は、監視情報リポジトリ25に保存されている当該ノ
ードの複数サンプリングタイミングにおける資源情報の
全てを用いて計算される。
【0058】次に、当該ノードが、現在の検査実行エー
ジェント以外の他ノードの監視エージェントにより“フ
ェールオーバ作業中”であるか否かが判定され(S51
5)、その結果に基づいて換算CPU稼働率が算定され
る。換算CPU稼働率は、ステップS510で計算され
た平均CPU稼働率に換算率αを乗じることにより求め
られる。ステップS510にてフェールオーバ作業中と
判定された場合には、αは1以上の定数(例えば10)
とされ、これが乗じられて換算CPU稼働率が求められ
る(S520)。一方、ステップS515にて、フェー
ルオーバ作業中ではないと判定された場合には、αは1
とされる、すなわち、ステップS510で求められた平
均CPU稼働率がそのまま換算CPU稼働率とされる。
監視エージェント10は、この換算CPU稼働率を決定
すると、当該ノードについてのループ処理を終了し、次
のノードのループ処理に移る。
【0059】なお、ステップS505での判定結果が、
“停止中”、又は“ダウン”である場合には、当該ノー
ドにDBアプリケーションの処理を引き継ぐことはでき
ないので、代替ノードの候補から外して、次のノードに
対するループに移る。例えば、代替ノードの候補から外
したことは、それを表すためのフラグ等を設け、それに
より識別することができる。また、本システムでは後述
するように換算CPU稼働率が小さいことを基準として
代替ノードを選択するので、ノードの換算CPU稼働率
に非常に大きな値を設定することにより、当該ノードが
代替ノード候補外であることを識別するように構成する
こともできる。
【0060】監視エージェント10は上記ループ処理に
より、ネットワーク接続されたシステムの各ノードの代
替ノード候補としての可否、及び換算CPU稼働率を定
めると、代替ノード候補のうち換算CPU稼働率が最も
小さいノードを代替ノードとして選択し、当該代替ノー
ドに対し、DBアプリケーションのダウンが確認された
ノード名(すなわち自ノード名)とダウン状態のDB名
をメッセージとして送信することによりダウンしたDB
アプリケーションの再起動を指示し(S530)、図4
のステップS130に復帰する。
【0061】ちなみに、ノード状態がフェールオーバ作
業中である場合に1以上のαを乗じるのは、既にフェー
ルオーバ作業中のノードへは新たなフェールオーバ作業
の依頼が行われることを抑制し、なるべくフェールオー
バ作業を行っていないノードへ依頼が行われるようにし
て処理分散を図るためである。
【0062】図9は、本実施の形態におけるノードダウ
ン時の処理を示すフロー図である。この処理は、あるノ
ードの監視エージェント10が他ノードの全体がダウン
していることを検知した場合に実施する処理であり、図
7のステップS430に続いて行われる。
【0063】監視エージェント10は、監視情報リポジ
トリ25に登録されている全てのノードを対象とした以
下の内容のループ処理を行う(S600,S650)。
このループ処理の1回のループは1つのノードに対応し
た処理であり、そのノードの状態が“ダウン”であるか
どうかが監視情報リポジトリ25のノード情報に基づい
て判定される(S605)。判定結果が“No”である
場合には、再起動等の実行障害処理は不要であるので、
次のノードについてのループ処理に移る。一方、判定結
果が“Yes”である場合には、ステップS610〜S
635の処理を行う。このステップS610〜S635
の処理は、代替ノード候補としての可否、及び換算CP
U稼働率を定めるための処理であり、上に説明したステ
ップS500〜S525の処理と同様であるので、説明
を省略する。
【0064】各ノードの換算CPU稼働率が決定される
と、監視エージェント10は代替ノード候補のうち換算
CPU稼働率が最も小さいノードを代替ノードとして選
択し、当該代替ノードに対し、DBアプリケーションの
ダウンが確認されたノード名(この場合は、DBアプリ
ケーションダウン時の処理と異なり、他ノード名とな
る)とダウン状態のDB名をメッセージとして送信する
(S640)。さらに、ダウンと判定されたノードの監
視情報リポジトリ25での状態を“停止中”に変更し
(S645)、次のノードについてのループ処理に移
る。このようにして、ノードダウン時の処理のループS
600〜S650は全てのノードを対象として実施され
る。
【0065】図10は、ステップS530,S640で
送信されたメッセージを受信したノードでのDBアプリ
ケーション再起動処理を説明するフロー図である。この
再起動処理は、図4のステップS105に相当する。
【0066】各ノードは、一定間隔で監視エージェント
10が動作し、いずれかの監視エージェント10からの
メッセージが存在するか否かを調べる(S700)。メ
ッセージが存在しなければ、図4に示すステップS11
0以降の検査処理に移るが、メッセージが存在した場合
は、以下に述べるDBアプリケーション再起動処理を行
った後、検査処理に移る。
【0067】再起動処理では、メッセージからDBアプ
リケーションの実行障害が検知されたノード名とDB名
が取得される(S705)。そして、監視情報リポジト
リ25の時ノードの情報に、“フェールオーバ作業中”
を設定し(S710)、監視情報リポジトリ25からス
テップS705で取得されたDB名に対応するDB起動
情報を探しだし、その情報に基づいてDBアプリケーシ
ョンを起動する(S715)。また、ステップS705
で取得されたノード名、DB名に関するDB情報エント
リを、自ノードのDB情報に移動させるとともに(S7
20)、当該DB情報の状態を“稼働中”に変更する
(S725)。そして、この再起動処理を行った後に既
に述べたように検査処理に移る。
【0068】図11は、上述した、DBアプリケーショ
ンの実行障害検出時の監視エージェント10の動作の一
例を説明する模式図である。この図に示す例では、ノー
ド1がダウンしていること、そしてその結果、ノード1
で実行されていたDBアプリケーション「DB#1」が
ダウン状態であることが、ノード2の監視エージェント
10(検査実行エージェント)による検査処理により検
知される。検査実行エージェントは、監視情報リポジト
リ25の各ノードのノード情報中のCPU稼働率を参照
して、換算CPU稼働率を算出し、その最小値を有する
ノード3を代替ノードに選択する。そして、ノード3の
監視エージェント10に対し、ノード1で実行されてい
たDB#1の処理を引き継ぐように指示する。この指示
を受けたノード3の監視エージェント10は、監視情報
リポジトリ25中のDB#1に関する起動情報等に基づ
いてその再起動を実行する。
【0069】本システムによれば、CPUの例えば過去
の稼働状況に基づいて、CPU負荷が比較的厳しくない
ノードに、ダウンしたDBアプリケーションの処理引き
継ぎが行われる。
【0070】なお、上述の例では、既にフェールオーバ
作業中であるノードの負荷を考慮した換算CPU稼働率
が最小となるノードを代替ノードに選択したが、そのよ
うな考慮を行わずに、平均CPU稼働率が最小値をとる
ノードを選択することとしてもよい。また、必ずしもそ
れらCPU稼働率が最も小さくなくてもよく、例えばC
PU負荷が所定の余裕を有することに基づいて選択を行
うことができ、この場合、例えば、CPU稼働率が所定
の閾値以下となるノードのうち任意のものを選択するこ
とができる。
【0071】また、上述の例では、サンプリングデータ
保存期間全体での平均に基づいて換算CPU稼働率、又
は平均CPU稼働率を求めたが、例えば、最新の何回か
のサンプリングで得られた資源情報の平均に基づいて代
替ノードを選択することもできる。
【0072】さらに、資源情報に登録されるCPU稼働
率についての平均以外の統計情報を求め、それを考慮し
て代替ノードを決定することもできる。例えば、CPU
稼働率の分散等から推定されるCPU稼働率の時間的な
変動を考慮して、単に平均値が小さいだけでなく、安定
してCPU稼働率が小さいものを代替ノードに選択して
もよい。
【0073】[実施の形態3]本発明の第3の実施形態
を、図を参照して説明する。実施の形態2は、監視情報
リポジトリ25に登録されるCPU稼働率を利用し、プ
ロセッサ負荷に基づいて代替ノードを選択した。これに
対し本実施の形態は、監視情報リポジトリ25に登録さ
れる空きメモリ量を利用し、それに基づいて代替ノード
を選択する点が実施の形態2と異なる。以下、上記各実
施の形態と同様の内容については説明を省略し、それら
との相違点に重きを置いて説明する。なお、上記各実施
の形態と同様の構成要素には同一の符号を付し、記載の
簡潔を図る。
【0074】図12は、本実施の形態の特徴的処理を説
明するフロー図である。この処理は、図8の処理ステッ
プS500〜S530及び図9のループ処理ステップS
610〜S640に置き換わるものである。
【0075】すなわち、本システムの各ノード上の監視
エージェント10は互いに非同期にサンプリング間隔毎
に動作し、自ノード内のあるDBアプリケーションがダ
ウンしていること、又は他のあるノード全体がダウンし
ていることを検出すると、実施の形態1のステップS2
25又はS435に相当するDBアプリケーションダウ
ン時の処理及びノードダウン時の処理を行うわけである
が、本実施の形態におけるこれらの処理は、図12のフ
ローで一部を置換された図8,9のフローで表される。
【0076】各ノードの監視エージェント10は、各ノ
ードの基準空きメモリ量を監視情報リポジトリ25から
取得する。基準空きメモリ量は、各ノードの起動直後の
空き実メモリ量であり、基本的にはOS等のノード稼働
に必須のソフトウェアのみメモリ上に存在し、他のアプ
リケーションがまだメモリ上に存在しない状態での空き
メモリ量を表す。各監視エージェント10は、これら各
ノードの基準空きメモリ量を比較して、その最大値M
maxを求める。この処理は、例えば、図3に示すステッ
プS50の処理中に行うように構成される。
【0077】次に、図12の処理フローを説明する。監
視エージェント10は、自ノードのDBアプリケーショ
ンにダウン状態のものを検知した場合、及び他のノード
全体がダウンしていることを検知した場合に、監視情報
リポジトリ25に登録されている全てのノードを対象と
した以下の内容のループ処理を行う(S800,S82
0)。このループ処理の1回のループは1つのノードに
対応した処理であり、監視エージェント10はそのノー
ドに関する資源情報に含まれる空きメモリ量を例えば監
視情報リポジトリ25に保存されている全サンプリング
回数について平均し、その平均値をMmaxで除した値と
して定義されるメモリ余裕度mを求める(S805)。
【0078】続いて、監視エージェント10は、当該ノ
ードが、現在の検査実行エージェント以外の他ノードの
監視エージェントにより“フェールオーバ作業中”であ
るか否かを判定し(S810)、その結果に基づいて換
算メモリ余裕度が算定される。換算メモリ余裕度m
*は、ステップS805で計算されたメモリ余裕度mに
換算率βを乗じることにより求められる。ステップS8
10にてフェールオーバ作業中と判定された場合には、
βは0以上1未満の定数(例えば0.1)とされ、これ
を乗じて換算メモリ余裕度m*が求められる(S81
5)。一方、ステップS810にて、フェールオーバ作
業中ではないと判定された場合には、βは1とされる、
すなわち、ステップS810で求められたメモリ余裕度
mがそのまま換算メモリ余裕度m*とされる。監視エー
ジェント10は、この換算メモリ余裕度m*を決定する
と、当該ノードについてのループ処理を終了し、次のノ
ードのループ処理に移る。
【0079】監視エージェント10は上記ループ処理に
より、ネットワーク接続されたシステムの各ノードの代
替ノード候補としての可否、及び換算メモリ余裕度を定
めると、代替ノード候補のうち換算メモリ余裕度が最も
大きいノードを代替ノードとして選択し、当該代替ノー
ドに対し、DBアプリケーションのダウンが確認された
ノード名(すなわち自ノード名)とダウン状態のDB名
をメッセージとして送信することによりダウンしたDB
アプリケーションの再起動を指示する(S825)。
【0080】ちなみに、ノード状態がフェールオーバ作
業中である場合に0以上1未満のβを乗じるのは、既に
フェールオーバ作業中のノードへは新たなフェールオー
バ作業の依頼が行われることを抑制し、なるべくフェー
ルオーバ作業を行っていないノードへ依頼が行われるよ
うにして処理分散を図るためである。
【0081】本システムによれば、メモリの例えば過去
の空き状況に基づいて、メモリの余裕が比較的大きいノ
ードに、ダウンしたDBアプリケーションの処理引き継
ぎが行われる。メモリの余裕が大きい場合には、スワッ
ピングが抑制されることによりキャッシュのヒット率が
向上したり、スラッシングが防止されることにより高い
処理効率が得られる。
【0082】なお、上述の例では、既にフェールオーバ
作業中であるノードの負荷を考慮した換算メモリ余裕度
が最大となるノードを代替ノードに選択したが、そのよ
うな考慮を行わずに、単純なメモリ余裕度が最大値をと
るノードを選択することとしてもよい。また、必ずしも
それらメモリ余裕度が最も大きくなくてもよく、例えば
メモり余裕度が所定の閾値以上となるノードのうち任意
のものを選択することができる。
【0083】また、上述の例では、サンプリングデータ
保存期間全体での平均に基づいて換算メモリ余裕度、又
は単純なメモリ余裕度を求めたが、例えば、最新の何回
かのサンプリングで得られた資源情報の平均に基づいて
代替ノードを選択することもできる。
【0084】さらに、資源情報に登録される空きメモリ
量(又はメモリ余裕度)についての平均以外の統計情報
を求め、それを考慮して代替ノードを決定することもで
きる。例えば、メモリ余裕度の分散等から推定される空
きメモリ量の時間的な変動を考慮して、単に平均値が大
きいだけでなく、安定してメモリ余裕度が大きいものを
代替ノードに選択してもよい。
【0085】[実施の形態4]本発明の第4の実施形態
は、監視情報リポジトリ25に登録されるCPU稼働率
と空きメモリ量との双方を利用して代替ノードを選択す
る点が、CPU稼働率のみ利用する実施の形態2や空き
メモリ量のみ利用する実施の形態3と異なる。以下、上
記各実施の形態と同様の内容については説明を省略し、
それらとの相違点に重きを置いて説明する。なお、上記
各実施の形態と同様の構成要素には同一の符号を付し、
記載の簡潔を図る。
【0086】本実施の形態では、CPU稼働率と空きメ
モリ量との双方を用いて「空き資源率」なるパラメータ
をノードごとに算出し、その値に基づいて代替ノードを
選択する。つまり、一般に計算機における「資源」はC
PU負荷、メモリ使用のそれぞれに関する独立した指標
で把握されるが、本実施の形態では、それらの指標を、
あるノードの資源のうち他の処理に利用可能な資源の割
合を表す「空き資源率」という一つの指標に統合する。
【0087】例えば、空き資源率は、次のように定義さ
れる。CPU稼働率をW(0≦W≦1)で表すと、CP
U空き率ωは(1−W)で表される。メモリに関して
は、空きメモリ量をEで表し、また、実施の形態3と同
様にしてMmaxを求め、これらの比(E/Mmax)をメモ
リ空き率εと定義する。そして、これらCPU空き率ω
とメモリ空き率εとの相加平均{(ω+ε)/2}を空
き資源率と定義する。
【0088】監視エージェント10(検査実行エージェ
ント)は、このように定義した空き資源率が最大となる
ノードを代替ノードに選択する。
【0089】本発明の趣旨は、CPU稼働率と空きメモ
リ量との双方を考慮して代替ノードを決定する点にあ
り、上に示した空き資源率の定義は一例に過ぎない。例
えば、(k1・ω+k2・ε)/(k1+k2)、(ω2
ε2)/2、(ω・ε)1/2といったもので空き資源率を
定義することも可能である。
【0090】このようにCPU稼働率と空きメモリ量と
の双方を考慮することにより、ノードの資源の余裕度の
評価の信頼性が高くなり、より適切に代替ノードを決定
することができる。
【0091】[実施の形態5]上記各実施の形態では、
フェールオーバ先の空き資源の度合いを計算し、余裕が
あるノードへダウンしたDBアプリケーションの処理の
引き継ぎを行わせるものであった。これらの方式では、
代替ノードは動的に決定され、余裕度のあるものが選択
されるので、そのようにして決定された代替ノードでフ
ェールオーバが不可能である可能性は低い。しかし、そ
れでもなお、資源が最も空いたノードを選択したにも拘
わらずフェールオーバするには資源(特にメモリ資源)
が足りない可能性は残る。
【0092】本発明の第5の実施形態は、これに対処す
るものであり、フェールオーバ先のノードで現在稼働中
のDBアプリケーションが獲得しているメモリを動的に
変更、すなわち空きメモリ量を必要に応じて増加させ、
フェールオーバを支障なく実行するものである。
【0093】以下、上記各実施の形態と同様の内容につ
いては説明を省略し、それらと本実施の形態との相違点
に重きを置いて説明する。なお、上記各実施の形態と同
様の構成要素には同一の符号を付し、記載の簡潔を図
る。
【0094】図13は、本実施の形態の特徴的処理を説
明するフロー図である。この処理は、基本的には図4の
DB再起動処理S105内に追加されるものである。
【0095】すなわち、タイマー処理が監視エージェン
ト10の処理を開始させると、DB再起動処理S105
が開始され、その中でまず、監視エージェント10は、
DB再起動を指示するメッセージを受信していることを
確認すると、それに指示されたDB名に対応する起動情
報を監視情報リポジトリ25から取得するとともに、現
在の自ノードの空きメモリ量を把握する。そして起動情
報中のデータである当該DBシステムの運用に用いられ
る標準メモリ量(所要空きメモリ量)と、現在の空きメ
モリ量とを比較する(S900)。もし、空きメモリ量
が標準メモリ量より大きい場合には(S900)、DB
再起動に支障がないので、上記各実施の形態と同様のフ
ェールオーバ処理によるDBの起動が開始される(S9
25)。
【0096】一方、空きメモリ量が標準メモリ量より小
さい場合には、そのままDB再起動を行うと、DBアプ
リケーションを起動できないか、起動できても運用に支
障を生じる可能性がある。よって、この場合には監視エ
ージェント10は、監視情報リポジトリ25の自ノード
情報に登録されている先に起動されている全てのDBエ
ントリのうち、フェールオーバされるDBアプリケーシ
ョンより優先度の低いDBアプリケーションを対象とし
た以下の内容のループ処理を行う(S905,S92
0)。このループ処理の1回のループは1つのDBエン
トリに対応した処理であり、監視エージェント10はそ
のDBエントリに対して、現在よりも縮小された新たな
メモリ割り当て量を決定する(S910)。そして、当
該先に起動されているDBアプリケーションを一旦終了
した後、ステップS910で決定した割り当て量に基づ
いて再起動する(S915)。これによりメモリの再編
成が行われ、ループ処理が対象とする全てのDBエント
リについて処理が終わると、メモリ上にはフェールオー
バ対象のDBアプリケーションの運用に必要な量の空き
が生成されている。監視エージェント10は、ステップ
S900にて空きメモリ量が標準メモリ量より小さいと
判定された場合には、このようにして空きメモリ量を拡
大した後、上記各実施の形態で行ったと同様にしてフェ
ールオーバ対象のDBアプリケーションを起動する(S
925)。ちなみに、このステップS925におけるD
Bアプリケーションの起動は、監視情報リポジトリ25
に登録された起動情報中の起動のためのスクリプトファ
イル等を参照して実行される。
【0097】先起動のDBアプリケーションに対する新
たなメモリ割り当て量の具体的な決定方法の例を次に説
明する。例えば、新たなメモリ割り当て量の決定におい
ては、対象となるDBエントリの実行優先度を考慮する
ことができる。監視情報リポジトリ25には、各DBエ
ントリの実行優先度が登録されており、監視情報リポジ
トリ25の説明で述べたように、ここでは、実行優先度
はそれが高い程、大きな数値で表される。ここで、DB
エントリ「DB#i」の優先度を表す数値をPiとする
と、DBエントリ「DB#a」に対する割り当てメモリ
の縮小量Raを次式で計算する。なお、この式の中でL
は、フェールオーバ対象DBの起動に不足しているメモ
リ量であり、その標準メモリ量から現在の空きメモリ量
を差し引いた値である。また、総和“Σ”はステップS
905で対象とされる全てのDBエントリ(すなわち、
フェールオーバ対象のDBエントリより優先度の低いも
の)について計算される。
【0098】Ra=L・Pa/ΣPi そして、DBエントリ「DB#a」に対する新たなメモ
リ割り当て量は、当該エントリに対して監視情報リポジ
トリ25に格納されている運用時標準メモリ量からRa
を差し引いた値に決定される。
【0099】このように、フェールオーバ対象のDBア
プリケーションの実行に空きメモリ量が不足している場
合でも、先行して起動されている他のDBアプリケーシ
ョンに割り当てられるメモリ量を縮小・再編成すること
により、フェールオーバ処理が一層、確実に実行され
る。
【0100】[実施の形態6]上記実施の形態5では、
先行して起動されているDBアプリケーションの使用メ
モリ量を変更することにより、フェールオーバ対象のD
Bアプリケーションの実行に必要な空きメモリ量が確保
された。このメモリ割り当ての変更に際し、先行して起
動されているDBアプリケーションは一旦終了される。
本実施の形態は、この先行起動DBアプリケーションの
終了及び再起動の際のマンマシンインターフェースの改
善に関わるものである。すなわち、本実施の形態は、稼
働中のDBシステムのメモリ使用量を縮小してフェール
オーバ対象のDBシステム起動に必要な空きメモリ量を
確保する実施の形態5において、当該メモリ縮小時に、
稼働中のDBシステムの処理の継続性を担保し、エンド
ユーザにDBシステムが停止されることを意識させない
ように構成したことを特徴とするものである。
【0101】以下、上記各実施の形態と同様の内容につ
いては説明を省略し、それらと本実施の形態との相違点
に重きを置いて説明する。なお、上記各実施の形態と同
様の構成要素には同一の符号を付し、記載の簡潔を図
る。
【0102】エンドユーザとDBシステムとがネットワ
ークを介してメッセージを交換しながら処理を進めるシ
ステム形態においては、エンドユーザ側ノードとDBシ
ステム動作ノードそれぞれの処理は複数の機能レイヤを
含む階層構造に構成される。
【0103】図14は、エンドユーザ側ノードとDBシ
ステム動作ノードとの機能レイヤ構成例を示す模式図で
ある。エンドユーザ側ノード1000には、上位のレイ
ヤからエンドユーザアプリケーション1002、DBシ
ステム用の端末側メッセージ交換モジュール1004及
びネットワーク制御層1006の3つのレイヤが示さ
れ、一方、DBシステム動作ノード1010には、上位
のレイヤからDBアプリケーション1012、DBシス
テム用のサーバ側メッセージ交換モジュール1014及
びネットワーク制御層1016の3つのレイヤが示され
ている。そして、両ノードは最下位のレイヤであるネッ
トワーク制御層間を物理的なコネクション1020で接
続される。なお、このレイヤ構成は一例であって、例え
ば各レイヤをさらに細かく分けることも可能である。例
えば、ネットワーク制御層1006,1016は、TC
P/IPプロトコルではネットワーク層、データリンク
層及び物理層に対応することとなる。
【0104】エンドユーザアプリケーション1002か
ら発行されるメッセージは、端末側メッセージ交換モジ
ュール1004を介して、ネットワーク制御層1006
に渡される。ネットワーク制御層1006とネットワー
ク制御層1016との間では、ケーブルなどの物理的な
コネクション1020を介して、信号の授受が行われ
る。DBシステム動作ノード1010のサーバ側メッセ
ージ交換モジュール1014は、ネットワーク制御層1
016からのメッセージを常時受け入れることができる
ように監視を行い、メッセージの到着を確認すると、そ
のメッセージをDBアプリケーション1012に渡す。
逆に、DBアプリケーション1012からの結果出力
は、サーバ側メッセージ交換モジュール1014、ネッ
トワーク制御層1016、コネクション1020、ネッ
トワーク制御層1006、端末側メッセージ交換モジュ
ール1004を順にたどって、エンドユーザアプリケー
ション1002に渡される。
【0105】さて、図14に示すようなシステム構成に
おいて、フェールオーバ時には先行して稼働されている
1又は複数のDBアプリケーション1012の実行プロ
セス(以下、DBプロセスと呼ぶ)に対するメモリ量の
変更処理が行われうる。このメモリ変更処理は、DBこ
のとき、DBプロセスを正常に終了させ、新たなメモリ
量で再実行させることで実現され、その際のエンドユー
ザアプリケーション1002と各DBアプリケーション
(DBプロセス)1012との間のセッションの維持の
機能は主としてサーバ側メッセージ交換モジュール10
14が担う。すなわち、サーバ側メッセージ交換モジュ
ール1014は、エンドユーザから見て、セッション
(エンドユーザアプリケーションとDBアプリケーショ
ンのレベルで相互にメッセージの交換が可能な状態)が
あたかも切断されていない、つまり擬似的にセッション
がつながっているように見せる機能を有している。
【0106】図15は、本実施の形態の特徴的処理を含
んだメモリ再編成処理を説明するフロー図である。この
処理は、基本的には図13のメモリ再編成処理S915
の位置において実行される処理ステップを構成する。
【0107】監視エージェント10は自ノードにおいて
先行して起動されているDBプロセスに対し決定される
新メモリ割り当て量を得ると(S1100)、サーバ側
メッセージ交換モジュールに対し、DB再起動準備要求
信号を発する(S1105)。
【0108】この要求信号を受信したサーバ側メッセー
ジ交換モジュールは、セッション維持のためのセッショ
ン処理(詳細は後述する)を行い、監視エージェント1
0へ準備済み信号を送信する(S1110)。監視エー
ジェント10は、この準備済み信号を受信した後、チェ
ックポイント処理を行う(S1115)。チェックポイ
ント処理は、DBプロセスのメモリ空間にあるデータベ
ースのデータ断片と実際にディスクに記録されているデ
ータ断片の内容とが異なる場合に、メモリ上のデータ断
片をディスクに書き込む処理である。チェックポイント
処理S1115を行った後に、監視エージェント10は
DBシステムを停止させる(S1120)。なお、その
停止方法は、個々のDBシステムに依存する。
【0109】次に、監視エージェント10は、各DBプ
ロセス毎に、磁気ディスク装置等に格納されている全て
のDBパラメータファイルを読み出すループ処理を行う
(S1125,S1140)。このループ処理内では、
磁気ディスク装置1130から例えば一つずつパラメー
タファイルを読み込む。このパラメータファイルは、D
Bプロセスに割り当てるメモリ量等のDBプロセス起動
条件を外部から指定するためのファイルであり、DBシ
ステムはこのパラメータファイルに応じた種々の条件で
起動される。なお、その起動の仕方は個々のDBシステ
ムに依存し様々である。さて、監視エージェント10は
磁気ディスク装置1130から読み込んだパラメータフ
ァイルからDBプロセスに割り当てられるメモリ量情報
が取り出される(S1135)。
【0110】このようにループS1125〜S1135
を終了した段階では、あるDBシステムに対する種々の
起動条件におけるメモリ所要量が取り出される。監視エ
ージェント10は、それらの中に、ステップS1100
で得た新メモリ割り当て量に等しいものを見いだした場
合には、当該メモリ所要量に対応するパラメータファイ
ルを、再起動に用いるパラメータファイルとして選択す
る。また、それらの中に、新メモリ割り当て量に等しい
ものが存在しない場合には、その新メモリ割り当て量を
超えず、それに最も近いメモリ所要量を選択し、それに
対応するパラメータファイルを、再起動に用いるパラメ
ータファイルとして選択する(S1145)。
【0111】監視エージェント10は選択した再起動用
パラメータファイルを用いてDBシステムの再起動を行
う(S1150)。そして、サーバ側メッセージ交換モ
ジュールに対してDB起動済み信号を送信する(S11
55)。
【0112】サーバ側メッセージ交換モジュールはDB
起動済み信号を受信に応じたセッション処理(後述す
る)を行う(S1160)。以上のようにして本実施の
形態のシステムはメモリ再編成処理を行う。
【0113】次に、サーバ側メッセージ交換モジュール
におけるセッション処理について説明する。サーバ側メ
ッセージ交換モジュールは、「セッションID」、「ト
ランザクションID」、「端末情報」、「メッセージチ
ェイン」といった情報の組をセッション毎に格納したセ
ッション情報テーブルを有している。
【0114】ここで、「セッションID」は、セッショ
ン毎に一意に割り当てられる識別子である。これはDB
プロセスによって割り当てられ、サーバ側メッセージ交
換モジュールは、DBプロセスからセッションIDを通
知される。
【0115】「トランザクションID」はトランザクシ
ョンを管理するための識別番号であり、これは、DBプ
ロセスによって割り当てられ、サーバ側メッセージ交換
モジュールは、トランザクションが発生した時点でDB
プロセスからトランザクションIDを通知される。な
お、「トランザクション」とは、あるセッションにおい
て、DBに対して変更、追加、削除の操作が一回以上行
われる場合、この操作が最初に行われた時点から“確
定”メッセージがDBプロセスによって受け付けられる
までをいう。
【0116】「端末情報」は端末と通信するためにネッ
トワーク制御層において必要とされる情報である。ちな
みに、これはどのような種類のネットワーク(例えばT
CP/IP等)を使用するかに応じて異なり得る。
【0117】「メッセージチェイン」は、DBシステム
動作ノード1010がエンドユーザ側ノード1000か
ら受け取ったメッセージのうち、その時点ではDBプロ
セスに渡すことができないものを保留するための仕組み
である。図16は、メッセージチェインの構造を説明す
る模式図である。セッション情報テーブル中には、メッ
セージチェインの先頭アドレスを表すメッセージチェイ
ンポインタ1200が格納される。メッセージチェイン
ポインタ1200が指し示すメモリ上、又は磁気ディス
ク上のアドレスから連続する領域に先頭のメッセージエ
ントリ1202が格納され、例えば、そのメッセージエ
ントリの前部にはメッセージの実体が、また後部には次
のメッセージエントリの先頭アドレスを示す次のポイン
タ1204が格納される。このように各メッセージエン
トリがそれに続くメッセージエントリの開始アドレス情
報を有することにより各メッセージエントリは順に接続
された鎖状の構造を形成する。ちなみに、サーバ側メッ
セージ交換モジュールは、先頭のメッセージについてD
Bプロセスに渡す等の処理を済ますと、その先頭メッセ
ージのエントリに格納された次メッセージエントリへの
ポインタ1204をメッセージチェインポインタ120
0に転記して、当該先頭メッセージエントリをチェイン
から外す。
【0118】サーバ側メッセージ交換モジュールには、
以下に説明する「通常状態」、「準備中状態」、「準備
済み状態」の3つの状態が定義される。
【0119】「通常状態」は、サーバ側メッセージ交換
モジュールが再起動要求信号を受け取っていない状態
で、エンドユーザアプリケーションとDBプロセスとが
制約なしにメッセージ交換できる状態である。
【0120】「準備中状態」は、再起動要求信号を受信
し、一つ以上のセッション情報にトランザクションID
が登録されている状態であり、エンドユーザアプリケー
ションとDBプロセスとのメッセージ交換には次の制約
が課される。
【0121】(1)新規のセッション要求は受け付けな
い、(2)セッション情報にトランザクションIDが設
定されているセッションは当該トランザクションが確
定、終了されるまでメッセージ交換を可能とする、
(3)セッション情報にトランザクションIDが設定さ
れていないセッションについてエンドユーザアプリケー
ションからメッセージが届いたとき(例えば、前トラン
ザクションが終了したセッションについて新たなトラン
ザクションの開始となるメッセージが届いたとき)は、
当該メッセージをメッセージチェインに登録しDBプロ
セスに伝達しない。
【0122】すなわち、準備中状態では、新たなセッシ
ョン、トランザクションの開設は認めず、その一方で現
存のトランザクションについてのみDBに対する実際の
処理を認め、その正常な終了を待つわけである。
【0123】「準備済み状態」は、再起動要求信号を受
信し、セッション情報が全く無い状態、または全てのセ
ッション情報にトランザクションIDが登録されていな
い状態であり、この場合には、エンドユーザアプリケー
ションとDBプロセスとのメッセージ交換には次の制約
が課される。
【0124】(1)新規のセッション要求は受け付けな
い、(2)セッション情報にエンドユーザアプリケーシ
ョンからメッセージが届いたときは、当該メッセージを
メッセージチェインに登録しDBプロセスに伝達しな
い。
【0125】すなわち、準備済み状態は、DBシステム
を停止できる状態であり、メモリ再編成処理のための準
備ができたという意味である。この状態は、監視エージ
ェント10からのDB起動済み信号によって「通常状
態」へ遷移する。
【0126】図17〜20は、サーバ側メッセージ交換
モジュールでの処理を説明するためのフロー図である。
これらの図は、便宜上一つのフロー図を分割したもので
あり、それらに現れる同一記号で示されるノード同士は
互いに接続されることを意味する。例えば、図17の円
内に“F”を記したノードAから、図18の同様に表さ
れるノードFへ処理が渡されることになる。
【0127】サーバ側メッセージ交換モジュールは、D
Bプロセスからのメッセージ、ネットワークを介したエ
ンドユーザアプリケーションからのメッセージ、監視エ
ージェント10からのメッセージを受け取ると(S13
00)、それが監視エージェント10からのメッセージ
であるか否かを判別する(S1305)。判定結果が
“Yes”である場合には、次に、当該メッセージが再
起動要求信号であるかどうかが判定される(S131
0)。判定結果が“Yes”であり、さらに続く判定に
よりセッション情報が存在し(S1315)、かつ既存
セッション情報を調査した結果、トランザクションID
が設定されている場合には(S1320)、サーバ側メ
ッセージ交換モジュールの状態を準備中状態とし(S1
325)、ステップS1300に戻る。ステップS13
15、S1320において判定結果が“No”である場
合には、稼働中のトランザクションは既に存在していな
いので、サーバ側メッセージ交換モジュールの状態を準
備済み状態として(S1330)ステップS1300に
戻る。
【0128】ステップS1310において監視エージェ
ント10からのメッセージが再起動要求信号でない場合
は、DB起動済み信号であると判断される。この場合に
は、セッション情報のメッセージチェインに保留されて
いるメッセージが存在するならば(S1335)、全て
のセッション情報において保留されているメッセージを
DBプロセスに送信してから(S1340)、一方、メ
ッセージが存在しないならばそのまま直ちに、サーバ側
メッセージ交換モジュールの状態を通常状態に変更する
(S1345)。
【0129】また、ステップS1300で受け取ったメ
ッセージがDBプロセスからのものである場合には(S
1305,S1400)、それがトランザクション確定
済みメッセージであるかどうかが判定される(S140
5)。判定結果が“Yes”である場合には、当該メッ
セージがどのセッションに対する返答メッセージかを調
べ、そのセッションに対するセッション情報のトランザ
クションIDをクリアする(S1410)。その結果、
全てのセッションのトランザクションIDがクリアされ
た場合(S1415)、サーバ側メッセージ交換モジュ
ールの状態が準備中であれば(S1420)、それを準
備済み状態に変更し、監視エージェント10に準備済み
信号を送信して(S1425)、ステップS1300に
戻る。一方、まだトランザクションIDが確定していな
いセッションがある場合は(S1415)、サーバ側メ
ッセージ交換モジュールはそれまでの状態(通常状態又
は準備中状態)を維持しステップS1300に戻る。ま
た、ステップS1420においてサーバ側メッセージ交
換モジュールの状態が準備中でない場合、具体的には通
常状態である場合にも、サーバ側メッセージ交換モジュ
ールはそれまでの通常状態を維持して、ステップS13
00に戻る。なお、ステップS1420では、先行する
ステップS1410までにおいてまだトランザクション
が存在したので準備済み状態ではあり得ない。
【0130】ステップS1405において、DBプロセ
スからのメッセージがトランザクション確定済みメッセ
ージではなく(S1405)、かつ当該メッセージ中に
トランザクションIDが含まれている場合(S143
0)には、新たなトランザクションの発生を示す返答メ
ッセージである。この場合には、当該メッセージがどの
セッションに対する返答メッセージであるかを調べ、そ
のセッションに対応するセッション情報に当該トランザ
クションIDを設定し(S1435)、セッション情報
に基づいてエンドユーザ側ノード1000を特定し当該
メッセージを返し(S1440)、ステップS1300
に戻る。なお、サーバ側メッセージ交換モジュールの状
態が準備中である場合には、このような場合は生じな
い。なぜなら、新たなトランザクションはエンドユーザ
アプリケーションからの要求に応じて発生するものであ
るが、サーバ側メッセージ交換モジュールの状態が準備
中である場合には、後述するようにエンドユーザアプリ
ケーションからのメッセージはメッセージチェインに格
納されDBプロセスには伝達されないので、トランザク
ションが発生されることも、それを通知するメッセージ
が生じることもないからである。
【0131】一方、ステップS1430において、判定
結果が“No”である場合には、現存するトランザクシ
ョンに対する処理に応じたメッセージであるので、セッ
ション情報にトランザクションIDを設定せずに、ステ
ップS1440の処理を行って、ステップS1300に
戻る。
【0132】また、ステップS1300で受け取ったメ
ッセージがエンドユーザ側ノード1000からのもので
ある場合には(S1305,S1400)、処理はサー
バ側メッセージ交換モジュールの状態が通常状態である
か否かで分岐する(S1500)。
【0133】通常状態である場合には(S1500)、
図19に示す処理が行われる。まず、当該メッセージが
新規セッション確立要求である場合には(S150
5)、DBプロセスにメッセージを送信する(S151
0)。そして、それに応じてDBプロセスがセッション
を確立する処理を行い(S1515)、セッション確立
通知をサーバ側メッセージ交換モジュールに返すと、サ
ーバ側メッセージ交換モジュールはそのDBプロセスか
らの応答からセッションIDを取得し、初期化状態の新
規のセッション情報を登録し(S1520)、ステップ
S1300に戻る。
【0134】一方、ステップS1505にて、新規セッ
ション確立要求ではないと判定された場合には、DBプ
ロセスにメッセージを送信し(S1525)、ステップ
S1300に戻る。
【0135】ステップS1500において通常状態では
ないと判定された場合、具体的にはサーバ側メッセージ
交換モジュールが準備中又は準備済みの状態である場合
には、上述したようなエンドユーザ側ノード1000と
DBプロセスとのメッセージ交換には制約が課せられ
る。まずメッセージが新規セッション確立要求である場
合(S1600)には、エンドユーザ側ノード1000
にエラーが返され(S1605)、ステップS1300
に戻る。
【0136】メッセージが新規セッション確立要求でな
い場合(S1600)には、サーバ側メッセージ交換モ
ジュールの状態が準備済み状態か、準備中状態かに応じ
て分岐する(S1610)。準備済み状態の場合には、
セッション情報のメッセージチェインに当該メッセージ
を登録して(S1615)ステップS1300に戻る。
準備中状態の場合には、メッセージからセッションを特
定する(S1620)。そして、対応するセッション情
報にトランザクションIDが登録されている場合には、
DBプロセスにメッセージを伝達し(S1630)、ス
テップS1300に戻る。トランザクションIDが登録
されていない場合には、メッセージチェインへの登録処
理S1615を行い、ステップS1300に復帰する。
図21は、セッション情報にトランザクションIDが登
録されているセッションに生じる状態遷移の例を示す状
態遷移図である。図に於いて、時間は上から下に経過
し、各状態間の実線の矢印は、エンドユーザ側ノード1
000、サーバ側メッセージ交換モジュール及びDBプ
ロセス間のメッセージ等の送受信を表し、サーバ側メッ
セージ交換モジュールの通常状態、準備中状態、及び準
備済み状態間の点線の矢印はそれら状態間の状態遷移を
表す。
【0137】エンドユーザ側ノード1000とDBプロ
セスとは、通常状態のサーバ側メッセージ交換モジュー
ルを介してメッセージ送信、それに対する結果通知を行
っている(P1700)。この状態でサーバ側メッセー
ジ交換モジュールは、監視エージェント10からフェー
ルオーバのためのDB再起動要求信号を受信すると、準
備中状態に遷移する(S1705)。以降、エンドユー
ザ側ノード1000とDBプロセスとは、既存のトラン
ザクションがあるうちは、準備中状態のサーバ側メッセ
ージ交換モジュールを介して、メッセージ送信、それに
対する結果通知を行って処理を進める(P1710)。
そして、エンドユーザ側ノード1000からDBプロセ
スにトランザクションが確定したことが通知され、それ
に対する確定処理済みの通知がDBプロセスからサーバ
側メッセージ交換モジュールに送信されると(S172
0)、サーバ側メッセージ交換モジュールは状態を準備
済み状態に遷移させ(S1725)、監視エージェント
10に対し、DB再起動処理の準備ができたことを通知
する準備済み信号を発信する。以降、監視エージェント
10はDB再起動処理を実施し(S1730)、それを
終了するとサーバ側メッセージ交換モジュールに対しD
B起動済み信号を送信する。サーバ側メッセージ交換モ
ジュールは、この準備済み信号送信からDB起動済み信
号受信までの間、エンドユーザ側ノード1000からメ
ッセージS1735を受信しても、それをDBプロセス
に渡さずメッセージチェインに保留する。そしてサーバ
側メッセージ交換モジュールは、DB起動済み信号を受
信すると、状態を準備済みから通常状態に復帰させる
(S1740)とともに、メッセージチェインに保留さ
れていたメッセージをDBプロセスに渡す(S174
5)。DBプロセスの保留メッセージに対する処理は、
保留されずにそのまま渡されたメッセージに対するもの
と変わりなく、DBプロセスはその処理結果をエンドユ
ーザ側ノード1000に通知する(S1750)。
【0138】以上のような本実施の形態の仕組みによれ
ば、フェールオーバ対象のDBシステム起動に必要な空
きメモリ量を確保するためのメモリ再編成処理において
稼働中のDBシステムを停止する場合に、実行中のトラ
ンザクションは正常に終了され、またエンドユーザが発
したメッセージは拒否されることなく、例えばDB再起
動中においてもメッセージチェインに保留され、再起動
終了後に引き続いて対応する処理が行われる。つまり、
DB再起動時におけるDBプロセスの処理内容自体の継
続性が担保されるとともに、エンドユーザに対するイン
ターフェースとしても、DBシステムが途切れることな
く処理を行っているように見せることができる。
【0139】
【発明の効果】本発明に係る計算機システムによれば、
ネットワーク接続された各ノードがそれぞれの稼働状態
を監視し、その監視結果に基づいて実行障害を生じたノ
ードの処理を引き継がせる代替ノードを選択するので、
代替ノードとしてそのときのシステムの状態に応じた最
適なものが動的に選択されるという効果が得られる。
【0140】また本発明に係る計算機システムによれ
ば、各ノードのプロセッサ負荷の監視結果に基づいて代
替ノードが選択される。例えばプロセッサ負荷が最小に
なるノードが代替ノードに選択される。これにより、プ
ロセッサ負荷が厳しくないノードが代替ノードに選択さ
れ、プロセッサ負荷の面でシステム内での負荷分散が図
られ、処理の速度の確保が図られるという効果が得られ
る。
【0141】また本発明に係る計算機システムによれ
ば、各ノードのメモリ空き容量の監視結果に基づいて代
替ノードが選択される。例えばメモリ空き容量が最大に
なるノードが代替ノードに選択される。これにより、メ
モリの余裕の比較的大きいノードが代替ノードに選択さ
れ、メモリ容量の面でシステム内での負荷分散が図ら
れ、スワッピングが抑制されることによりキャッシュの
ヒット率が向上したり、スラッシングが防止されること
により高い処理効率が得られるといった効果が得られ
る。
【0142】また本発明に係る計算機システムによれ
ば、各ノードのプロセッサ負荷とメモリ空き容量との双
方の監視結果に基づいて代替ノードが選択される。これ
により、プロセッサ負荷及びメモリ容量の両方の面を考
慮してシステム内での負荷分散が図られ、処理効率が確
保されるという効果が得られる。
【0143】また本発明に係る計算機システムによれ
ば、代替ノードのメモリ空き容量が実行障害を生じた処
理プログラムの引き継ぎに不足している場合には、代替
ノードで先行して起動されているプログラムへの割り当
てメモリ容量が縮小されるので、フェールオーバ処理が
一層、確実に実行されるという効果がある。
【0144】また本発明に係る計算機システムによれ
ば、先起動プログラムを停止してメモリ容量の割当変更
を行う際に、セッション情報に基づいて既設セッション
中のトランザクションが継続中か否かを判別して継続中
のトランザクションに対するメッセージのみが先起動プ
ログラムに渡される。また当該セッションに対する他の
メッセージはメモリ容量の割当変更が完了するまでセッ
ション情報に保留され、割当変更後に通常通りに処理さ
れる。これらにより、先起動プログラムを停止し、その
メモリ使用量を縮小してフェールオーバ対象の処理プロ
グラム起動に必要な空きメモリ量を確保する場合に、先
起動プログラムの処理内容の継続性が担保され、またエ
ンドユーザには先起動プログラムが停止されることが意
識されないインターフェースが提供されるという効果が
得られる。
【図面の簡単な説明】
【図1】 本発明の実施の形態に係る計算機システムの
構成を説明するための模式図である。
【図2】 本発明の実施の形態に係る監視情報リポジト
リに格納される情報の一例の論理構成を示す模式図であ
る。
【図3】 本発明の実施の形態に係る監視エージェント
のDBアプリケーション状態監視に関する初期処理を説
明するフロー図である。
【図4】 本発明の実施の形態に係る監視エージェント
の監視処理の概略を説明するフロー図である。
【図5】 本発明の実施の形態に係る監視エージェント
による自ノードに対するDB状況チェック処理S125
を説明するフロー図である。
【図6】 本発明の実施の形態に係る監視エージェント
による全ノード処理を説明するフロー図である。
【図7】 本発明の実施の形態に係る監視エージェント
による全ノード処理を説明するフロー図である。
【図8】 実施の形態2に係る監視エージェントによる
DBアプリケーションダウン時の処理を示すフロー図で
ある。
【図9】 実施の形態2に係る監視エージェントによる
ノードダウン時の処理を示すフロー図である。
【図10】 実施の形態2に係る監視エージェントにお
けるフェールオーバ指示に応じて行われるDBアプリケ
ーション再起動処理を説明するフロー図である。
【図11】 実施の形態2に係る監視エージェントによ
るDBアプリケーションの実行障害検出時の動作の一例
を説明する模式図である。
【図12】 実施の形態3に係る監視エージェントの代
替ノード選択方法を説明するフロー図である。
【図13】 実施の形態5に係る監視エージェントによ
る、メモリ再編成を含んだフェールオーバ処理を説明す
るフロー図である。
【図14】 実施の形態6に係る計算機システムにおけ
るエンドユーザ側ノードとDBシステム動作ノードとの
機能レイヤ構成例を示す模式図である。
【図15】 実施の形態6に係る監視エージェントによ
るメモリ再編成処理を説明するフロー図である。
【図16】 実施の形態6に係るメッセージチェインの
構造を説明する模式図である。
【図17】 実施の形態6に係るサーバ側メッセージ交
換モジュールでの処理を説明するためのフロー図であ
る。
【図18】 実施の形態6に係るサーバ側メッセージ交
換モジュールでの処理を説明するためのフロー図であ
る。
【図19】 実施の形態6に係るサーバ側メッセージ交
換モジュールでの処理を説明するためのフロー図であ
る。
【図20】 実施の形態6に係るサーバ側メッセージ交
換モジュールでの処理を説明するためのフロー図であ
る。
【図21】 実施の形態6における、セッション情報に
トランザクションIDが登録されているセッションに生
じる状態遷移の例を示す状態遷移図である。
【符号の説明】
1,2,3 ノード、10 監視エージェント、20
共有ディスク、25監視情報リポジトリ、1000 エ
ンドユーザ側ノード、1002 エンドユーザアプリケ
ーション、1004 端末側メッセージ交換モジュー
ル、1006ネットワーク制御層、1010 DBシス
テム動作ノード、1012 DBアプリケーション、1
014 サーバ側メッセージ交換モジュール、1016
ネットワーク制御層、1020 コネクション。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年8月17日(1999.8.1
7)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正内容】
【0007】
【課題を解決するための手段】本発明に係る、それぞれ
処理プログラムを実行可能な複数のノードがネットワー
ク接続された計算機システムは、前記各ノードが、前記
各ノードそれぞれの稼働状況を監視する監視手段と、前
記監視手段が任意の前記ノードでの前記処理プログラム
の実行障害を検知したとき代替ノードを選択する代替ノ
ード選択手段と、前記実行障害を生じたノードから前記
代替ノードへ前記処理プログラムの実行を引き継がせる
フェールオーバ手段とを有し、前記監視手段は、前記各
ノードそれぞれのプロセッサ負荷を監視し、前記代替ノ
ード選択手段は、前記監視手段により得られた前記プロ
セッサ負荷に基づいて前記代替ノードを選択することを
特徴とする。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正内容】
【0008】発明の好適な態様は、前記代替ノード選
択手段が前記プロセッサ負荷が最小であるノードを前記
代替ノードとして選択するものである。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】別の本発明に係る計算機システムにおいて
は、前記各ノードが、前記各ノードそれぞれの稼働状況
を監視する監視手段と、前記監視手段が任意の前記ノー
ドでの前記処理プログラムの実行障害を検知したとき代
替ノードを選択する代替ノード選択手段と、前記実行障
害を生じたノードから前記代替ノードへ前記処理プログ
ラムの実行を引き継がせるフェールオーバ手段とを有
し、前記監視手段は前記各ノードそれぞれのメモリ空き
容量を監視し、前記代替ノード選択手段は前記監視手段
により得られた前記メモリ空き容量に基づいて前記代替
ノードを選択することを特徴とする。発明の好適な態
様は、前記代替ノード選択手段が前記メモリ空き容量が
最大であるノードを前記代替ノードとして選択するもの
である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正内容】
【0011】また別の本発明に係る計算機システムにお
いては、前記各ノードが、前記各ノードそれぞれの稼働
状況を監視する監視手段と、前記監視手段が任意の前記
ノードでの前記処理プログラムの実行障害を検知したと
き代替ノードを選択する代替ノード選択手段と、前記実
行障害を生じたノードから前記代替ノードへ前記処理プ
ログラムの実行を引き継がせるフェールオーバ手段とを
有し、前記監視手段は前記各ノードそれぞれのメモリ空
き容量を監視し、前記フェールオーバ手段は前記代替ノ
ードの前記メモリ空き容量が前記処理プログラムの引き
継ぎに十分か否かを判断する容量比較手段と、前記メモ
リ空き容量が不足するときは前記代替ノードで先行して
起動されている先起動プログラムに割り当てられるメモ
リ容量を縮小するメモリ割当変更手段とを有することを
特徴とする。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 それぞれ処理プログラムを実行可能な複
    数のノードがネットワーク接続された計算機システムに
    おいて、 前記各ノードは、 前記各ノードそれぞれの稼働状況を監視する監視手段
    と、 前記監視手段が任意の前記ノードでの前記処理プログラ
    ムの実行障害を検知したとき、代替ノードを選択する代
    替ノード選択手段と、 前記実行障害を生じたノードから前記代替ノードへ前記
    処理プログラムの実行を引き継がせるフェールオーバ手
    段と、 を有することを特徴とする計算機システム。
  2. 【請求項2】 請求項1記載の計算機システムにおい
    て、 前記監視手段は、前記各ノードそれぞれのプロセッサ負
    荷を監視し、 前記代替ノード選択手段は、前記監視手段により得られ
    た前記プロセッサ負荷に基づいて前記代替ノードを選択
    すること、 を特徴とする計算機システム。
  3. 【請求項3】 請求項2記載の計算機システムにおい
    て、 前記代替ノード選択手段は、前記プロセッサ負荷が最小
    であるノードを前記代替ノードとして選択すること、 を特徴とする計算機システム。
  4. 【請求項4】 請求項1記載の計算機システムにおい
    て、 前記監視手段は、前記各ノードそれぞれのメモリ空き容
    量を監視し、 前記代替ノード選択手段は、前記監視手段により得られ
    た前記メモリ空き容量に基づいて前記代替ノードを選択
    すること、 を特徴とする計算機システム。
  5. 【請求項5】 請求項2記載の計算機システムにおい
    て、 前記代替ノード選択手段は、前記メモリ空き容量が最大
    であるノードを前記代替ノードとして選択すること、 を特徴とする計算機システム。
  6. 【請求項6】 請求項1記載の計算機システムにおい
    て、 前記監視手段は、前記各ノードそれぞれのプロセッサ負
    荷とメモリ空き容量とを監視し、 前記代替ノード選択手段は、前記監視手段により得られ
    た前記プロセッサ負荷と前記メモリ空き容量とに基づい
    て前記代替ノードを選択すること、 を特徴とする計算機システム。
  7. 【請求項7】 請求項1記載の計算機システムにおい
    て、 前記監視手段は、前記各ノードそれぞれのメモリ空き容
    量を監視し、 前記フェールオーバ手段は、 前記代替ノードの前記メモリ空き容量が前記処理プログ
    ラムの引き継ぎに十分か否かを判断する容量比較手段
    と、 前記メモリ空き容量が不足するときは、前記代替ノード
    で先行して起動されている先起動プログラムに割り当て
    られるメモリ容量を縮小するメモリ割当変更手段と、 を有することを特徴とする計算機システム。
  8. 【請求項8】 請求項7記載の計算機システムにおい
    て、 前記代替ノードの前記先起動プログラムと当該先起動プ
    ログラムを前記ネットワークを介して利用するユーザノ
    ードとの間のセッション情報を含んだセッション情報テ
    ーブルを有し、 前記フェールオーバ手段は、前記メモリ容量の割当変更
    を行う際に、前記セッション情報に基づいて既設セッシ
    ョン中のトランザクションが継続中か否かを判別して継
    続中のトランザクションに対するメッセージのみ前記先
    起動プログラムに渡し、当該セッションに対する他のメ
    ッセージは前記割当変更が完了するまで前記セッション
    情報に保留するメッセージ取扱手段を有し、 前記メモリ割当変更手段は、前記トランザクションが終
    了したときに、前記先起動プログラムの実行を停止して
    メモリ割当変更を行うこと、 を特徴とする計算機システム。
JP10218384A 1998-07-31 1998-07-31 計算機システム Expired - Fee Related JP3062155B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10218384A JP3062155B2 (ja) 1998-07-31 1998-07-31 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10218384A JP3062155B2 (ja) 1998-07-31 1998-07-31 計算機システム

Publications (2)

Publication Number Publication Date
JP2000047894A true JP2000047894A (ja) 2000-02-18
JP3062155B2 JP3062155B2 (ja) 2000-07-10

Family

ID=16719069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10218384A Expired - Fee Related JP3062155B2 (ja) 1998-07-31 1998-07-31 計算機システム

Country Status (1)

Country Link
JP (1) JP3062155B2 (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108817A (ja) * 2000-07-15 2002-04-12 Internatl Business Mach Corp <Ibm> 共用データベースによるアベイラビリティ・モニタリング方法
JP2007133665A (ja) * 2005-11-10 2007-05-31 Hitachi Ltd 計算機システム、分散処理方法、計算機及び分散処理プログラム
JP2007286849A (ja) * 2006-04-14 2007-11-01 Canon Inc 情報処理装置、情報処理方法
US7305578B2 (en) 2004-02-24 2007-12-04 Hitachi, Ltd. Failover method in a clustered computer system
KR100793057B1 (ko) 2006-09-01 2008-01-10 한국전자통신연구원 이기종 센서 네트워크 기반의 정보 서비스 생성을 위한usn 미들웨어 장치 및 그 방법과, 그를 이용한 정보서비스 제공 시스템
EP2015182A2 (en) 2007-05-30 2009-01-14 Hitachi Ltd. Distributed system
JP2009059084A (ja) * 2007-08-30 2009-03-19 Denso Corp 制御システム,電子機器およびプログラム
US7533288B2 (en) 2006-04-21 2009-05-12 Keisuke Hatasaki Method of achieving high reliability of network boot computer system
JP2009187269A (ja) * 2008-02-06 2009-08-20 Nec Corp データベースシステム及びデータベース接続制御方法
JP2009199120A (ja) * 2008-02-19 2009-09-03 Nec Corp データベース状態監視装置、方法、及び、プログラム
US7729827B2 (en) 2005-10-03 2010-06-01 Hitachi, Ltd. Vehicle control system
US7778991B2 (en) 2004-01-15 2010-08-17 Nec Corporation Service providing system, computer which executes program providing service and repository service control program
US7797572B2 (en) * 2006-01-06 2010-09-14 Hitachi, Ltd. Computer system management method, management server, computer system, and program
JP2011065672A (ja) * 2010-11-19 2011-03-31 Hitachi Ltd ディスク引き継ぎによるフェイルオーバ方法
JP2011118512A (ja) * 2009-12-01 2011-06-16 Nec Corp 宅内機器管理システムおよび宅内機器管理方法
JP2012064244A (ja) * 2011-12-19 2012-03-29 Hitachi Ltd ネットワークブート計算機システム、管理計算機、及び計算機システムの制御方法
US8312319B2 (en) 2004-12-09 2012-11-13 Hitachi, Ltd. Failover method through disk takeover and computer system having failover function
JP2014178828A (ja) * 2013-03-14 2014-09-25 Nec Corp 二重化システム
JP2019507413A (ja) * 2016-01-15 2019-03-14 アファームド ネットワークス,インク. 通信ネットワークにおけるデータベースに基づく冗長化

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914862A (zh) * 2003-12-17 2007-02-14 日本电气株式会社 集群系统、集群成员、故障恢复方法及程序

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108817A (ja) * 2000-07-15 2002-04-12 Internatl Business Mach Corp <Ibm> 共用データベースによるアベイラビリティ・モニタリング方法
US6968381B2 (en) 2000-07-15 2005-11-22 International Business Machines Corporation Method for availability monitoring via a shared database
US7778991B2 (en) 2004-01-15 2010-08-17 Nec Corporation Service providing system, computer which executes program providing service and repository service control program
US7305578B2 (en) 2004-02-24 2007-12-04 Hitachi, Ltd. Failover method in a clustered computer system
US8601314B2 (en) 2004-12-09 2013-12-03 Hitachi, Ltd. Failover method through disk take over and computer system having failover function
US8312319B2 (en) 2004-12-09 2012-11-13 Hitachi, Ltd. Failover method through disk takeover and computer system having failover function
US7729827B2 (en) 2005-10-03 2010-06-01 Hitachi, Ltd. Vehicle control system
US8165745B2 (en) 2005-10-03 2012-04-24 Hitachi, Ltd. Vehicle control system
JP2007133665A (ja) * 2005-11-10 2007-05-31 Hitachi Ltd 計算機システム、分散処理方法、計算機及び分散処理プログラム
US7797572B2 (en) * 2006-01-06 2010-09-14 Hitachi, Ltd. Computer system management method, management server, computer system, and program
JP2007286849A (ja) * 2006-04-14 2007-11-01 Canon Inc 情報処理装置、情報処理方法
US7533288B2 (en) 2006-04-21 2009-05-12 Keisuke Hatasaki Method of achieving high reliability of network boot computer system
US8407514B2 (en) 2006-04-21 2013-03-26 Hitachi, Ltd. Method of achieving high reliability of network boot computer system
US7966515B2 (en) 2006-04-21 2011-06-21 Hitachi, Ltd. Method of achieving high reliability of network boot computer system
US7840835B2 (en) 2006-04-21 2010-11-23 Hitachi, Ltd. Method of achieving high reliability of network boot computer system
US8040232B2 (en) 2006-09-01 2011-10-18 Electronics And Telecommunications Research Institute USN middleware apparatus and method for generating information based on data from heterogeneous sensor networks and information service providing system using the same
KR100793057B1 (ko) 2006-09-01 2008-01-10 한국전자통신연구원 이기종 센서 네트워크 기반의 정보 서비스 생성을 위한usn 미들웨어 장치 및 그 방법과, 그를 이용한 정보서비스 제공 시스템
EP2015182A2 (en) 2007-05-30 2009-01-14 Hitachi Ltd. Distributed system
JP2009059084A (ja) * 2007-08-30 2009-03-19 Denso Corp 制御システム,電子機器およびプログラム
JP2009187269A (ja) * 2008-02-06 2009-08-20 Nec Corp データベースシステム及びデータベース接続制御方法
JP2009199120A (ja) * 2008-02-19 2009-09-03 Nec Corp データベース状態監視装置、方法、及び、プログラム
JP2011118512A (ja) * 2009-12-01 2011-06-16 Nec Corp 宅内機器管理システムおよび宅内機器管理方法
JP2011065672A (ja) * 2010-11-19 2011-03-31 Hitachi Ltd ディスク引き継ぎによるフェイルオーバ方法
JP2012064244A (ja) * 2011-12-19 2012-03-29 Hitachi Ltd ネットワークブート計算機システム、管理計算機、及び計算機システムの制御方法
JP2014178828A (ja) * 2013-03-14 2014-09-25 Nec Corp 二重化システム
US9558149B2 (en) 2013-03-14 2017-01-31 Nec Corporation Dual system
JP2019507413A (ja) * 2016-01-15 2019-03-14 アファームド ネットワークス,インク. 通信ネットワークにおけるデータベースに基づく冗長化

Also Published As

Publication number Publication date
JP3062155B2 (ja) 2000-07-10

Similar Documents

Publication Publication Date Title
JP3062155B2 (ja) 計算機システム
US7895468B2 (en) Autonomous takeover destination changing method in a failover
US7802128B2 (en) Method to avoid continuous application failovers in a cluster
US9785521B2 (en) Fault tolerant architecture for distributed computing systems
JP5714571B2 (ja) キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
US7543174B1 (en) Providing high availability for an application by rapidly provisioning a node and failing over to the node
US8250202B2 (en) Distributed notification and action mechanism for mirroring-related events
JP4637842B2 (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
US8010830B2 (en) Failover method, program, failover apparatus and failover system
US7356531B1 (en) Network file system record lock recovery in a highly available environment
US7475127B2 (en) Real composite objects for providing high availability of resources on networked systems
CN105830033B (zh) 用于在分布式数据网格中支持持久存储装置版本化和完整性的系统和方法
US20080288812A1 (en) Cluster system and an error recovery method thereof
US8245077B2 (en) Failover method and computer system
CN110941502B (zh) 消息处理方法、装置、存储介质及设备
US20030196148A1 (en) System and method for peer-to-peer monitoring within a network
CN114064414A (zh) 一种高可用的集群状态监控方法及系统
US20090217081A1 (en) System for providing an alternative communication path in a SAS cluster
CN111176888A (zh) 云存储的容灾方法、装置及系统
JP4132738B2 (ja) アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法
US8065569B2 (en) Information processing apparatus, information processing apparatus control method and control program
CN113946471A (zh) 基于对象存储的分布式文件级备份方法及系统
US8201017B2 (en) Method for queuing message and program recording medium thereof
US20030204775A1 (en) Method for handling node failures and reloads in a fault tolerant clustered database supporting transaction registration and fault-in logic
US8595349B1 (en) Method and apparatus for passive process monitoring

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees