3.11.1 ノード自動追加機能を使用するための構成
ノード自動追加機能を使用する場合の構成例を次の図に示します。
- 注※
-
ノーマルノードとは,バージョン07-05以前のOpenTP1を使用しているノード,またはこの機能を使用していないノードのことです。この機能を使用する構成に,ノーマルノードを混在させることもできます。ノーマルノードを混在させて使用する運用については,「3.11.5 ノーマルノードを混在させて使用する運用」を参照してください。
- 〈この項の構成〉
(1) マネジャノード
マネジャノードは,OpenTP1システムを構成するすべてのノード情報を管理するノードです。OpenTP1システム内に一つだけ必要です。システム共通定義のname_service_modeオペランドでmanagerを指定します。
(a) マネジャノードの役割
マネジャノードの役割を次に示します。
-
ノードの稼働状況の監視
マネジャノードは,OpenTP1システム内の全ノードの稼働状況を一定間隔で監視します。
-
ノードリストへのノード情報の登録
OpenTP1システム内にノードが追加された場合,追加されたノードからマネジャノードにノードリスト要求が送信されます。マネジャノードはこれを受信し,ノードリストにそのノードの情報を登録します。
-
ノードリストからのノード情報の削除
エージェントノードやノーマルノードに障害などが発生した場合,マネジャノードはこれを検知し,ノードリストからそのノードを削除します。
停止したノードをノードリストから削除したくない場合は,システム共通定義のname_remove_down_nodeオペランドにNを指定します。
-
ノードリストの配布
マネジャノードは,次の場合に最新のノードリストを各ノードに配布します。
-
ノード構成の変更後に,エージェントノードからノードリスト要求を受信した場合
-
OpenTP1システム内に新たにノードが追加された場合
-
(b) マネジャノードの構成および運用
マネジャノードが障害などの要因で停止すると,次のような影響があります。
-
OpenTP1システムにノードを自動追加できない。
OpenTP1システム内で,追加したノードとほかのノードで,RPCが実行できません。
-
OpenTP1システムからノードを自動削除できない。
停止しているノードへRPC要求を出す場合があります。
-
エージェントノードにノードリストが配布されないため,各ノード間でノードリストに不整合が生じる。
マネジャノードが保持しているノードリストのノードだけがRPCの実行範囲となるため,負荷分散が不完全になることがあります。
マネジャノードの障害時対策として,次の構成および運用にしてください。
-
系切り替え構成にする。
-
ノードリストの引き継ぎ機能を使用する。
系切り替え構成を導入できない場合の対応については,「3.11.3(3) ノード自動追加機能の障害時の運用」を参照してください。ノードリストの引き継ぎ機能については,「3.11.2(3) ノードリストの引き継ぎ機能を使用する」を参照してください。
(2) エージェントノード
エージェントノードは,マネジャノードに管理されるノードです。システム共通定義のname_service_modeオペランドでagentを指定します。
マネジャノードが障害などの要因で停止した場合,エージェントノードをマネジャノードに昇格させて,マネジャノードとしてノード管理を代行させることもできます。
(3) ノードリスト
ノードリストは,OpenTP1システムを構成する各ノード情報を格納し,マネジャノードによって一元管理されます。OpenTP1の共用メモリ上で管理します。
(a) ノードリストの整合性確保
マネジャノードのノード監視によって,ノードリストには各ノードの情報が定期的に反映され,最新のノード情報を保持します。最新のノードリストは,マネジャノードからノード自動追加機能を使用する各ノードに配布され,OpenTP1システム内で同じノードリストを参照するように制御されています。これをノードリストの整合性確保といいます。
ノードリストの整合性確保の流れを次の図に示します。
図で示したノードリストの整合性確保の流れについて説明します。番号は図中の番号と対応しています。
-
マネジャノードとエージェントノードは,ノード監視およびノードリスト要求の送受信をします。
-
マネジャノードが,ノードAの停止を検知します。
-
マネジャノードは,マネジャノードのノードリストからノードAを削除します。
ただし,システム共通定義のname_remove_down_nodeオペランドにNを指定した場合は削除しません。
-
ノードBからマネジャノードへノードリスト要求を送信します。
-
マネジャノードは,ノードBへ最新のノードリストを送信します。
(b) ノードリストの更新タイミング
ノードリストはノードの追加や削除時に更新されます。
次の場合は,ノードリストを更新しないで,次回のノードリストの整合性を確保するときに更新します。
-
マネジャノードがノードリストからノード情報を削除する際に,サービスグループ情報の検索など,ノードリストを参照する処理が並行して動作している場合
-
エージェントノードでノードリストの整合性を確保する際に,サービスグループ情報の検索など,ノードリストを参照する処理が並行して動作している場合
(c) ノードリストの引き継ぎ機能
ノードリストはノードリストの整合性確保によって,共用メモリ上でオンライン中に更新されます。共有メモリはOpenTP1の開始ごとに初期化されるため,前回オンライン時のノードリストの情報は失われ,ノードリストが再構築されます。このため,起動直後のノードリストには自ノードの情報しかない状態になり,ノードリストの整合性が確保されるまでの間,RPCの要求先が制限されてしまいます。
ノードリストの引き継ぎ機能は,このような一時的な制限を解消するための機能です。系切り替え構成の場合は,必ずノードリストの引き継ぎ機能をお使いください。また,マネジャノードでも,ノードリストの引き継ぎ機能を使用することをお勧めします。
ノードリストの引き継ぎ機能については,「3.11.2(3) ノードリストの引き継ぎ機能を使用する」を参照してください。
(4) その他の機能との併用
ノード自動追加機能は,ノード監視機能および優先選択ノードと併用できます。これらの機能との併用については,「3.11.4 ノード自動追加機能とその他の機能との併用」を参照してください。