3.11.3 ノード自動追加機能の導入後の運用
ノード自動追加機能の導入後の運用について説明します。
(1) ノードリストファイルに関する運用
ノードリストファイルはノードリストを引き継ぐときにnamnlcreコマンドで作成します。namnlcreコマンドについては,「13. 運用コマンドの詳細」の「namnlcre」を参照してください。
ノードリストファイルに関する運用について説明します。
(a) ノードリストファイルの内容表示
ノードリストファイルには,ノード情報,動作モード,マネジャノード情報などが格納されています。ノードリストファイルの内容を表示する場合は,namnldspコマンドを実行します。namnldspコマンドについては,「13. 運用コマンドの詳細」の「namnldsp」を参照してください。
(b) ノードリストファイルの削除
ノード自動追加機能の使用をやめる場合など,ノードリストファイルを削除するには,namnldelコマンドを実行します。OpenTP1システム内の構成を変更する場合など,ノードリストファイル中のノードリスト情報をリセットしたいときは,ノードリストを削除し,ノードリストの作成をします。namnldelコマンドについては,「13. 運用コマンドの詳細」の「namnldel」を参照してください。
(2) ノード自動追加機能の通常時の運用
ノード自動追加機能の通常時の運用として,OpenTP1システムの構成変更や,動作モードの変更について説明します。
(a) エージェントノードを追加する
OpenTP1システム内に新たにエージェントノードを追加する場合は,追加するエージェントノードのシステム共通定義で,次の定義を指定します。
-
name_service_modeオペランドにagentを指定
-
name_manager_nodeオペランドにマネジャノードのノード名を指定
追加するノードからマネジャノードへノードリスト要求を送信します。これによって,ノードリストにノードの情報が追加されます。マネジャノードから各ノードへ追加するノードのノード情報が配布され,各ノードは,ノードリストに追加するノードの情報を追加します。
(b) エージェントノードを削除する
OpenTP1システム内の構成変更や,障害などでエージェントノードが停止した場合に,エージェントノードを削除する手順を次に示します。
- システム共通定義のname_remove_down_nodeオペランドにYを指定している場合
-
削除するノードを停止します。
OpenTP1の停止時に,マネジャノードが停止したノードを検知して,ノードリストからノード情報を削除します。
- システム共通定義のname_remove_down_nodeオペランドにNを指定している場合
-
削除するノードを停止します。
OpenTP1の停止時に,マネジャノードが停止したノードを検知して,マネジャノード上のRPC抑止リストに,停止したノードを登録します。
マネジャノードから各エージェントノードに最新のノードリストが配布されます。
ノードリストの整合性確保までの間,停止したノードへのRPC要求の送信を抑止するには,OpenTP1システム内のノードでnamndrmコマンドを実行して,停止したノードをノードリストから削除してください。namndrmコマンドについては「13. 運用コマンドの詳細」の「namndrm」を参照してください。
(c) ノードの動作モードを切り替える
ノード自動追加機能を使用するための動作モード(マネジャノード,およびエージェントノード)は,システム共通定義のname_service_modeオペランドの指定値によって決定します。一度決定した動作モードを変更するには,各ノードのシステム共通定義のname_service_modeオペランドを変更する方法と,nammstrコマンドで変更する方法があります。nammstrコマンドについては「13. 運用コマンドの詳細」の「nammstr」を参照してください。
nammstrコマンドでは,動作モードの変更として,次のことができます。
- 動作モードの昇格
-
エージェントノードとして動作しているノードを,マネジャノードとして動作させる。
- 動作モードの降格
-
マネジャノードとして動作しているノードを,エージェントノードとして動作させる。
- マネジャノードの変更
-
エージェントノード上で,マネジャノードとして指定しているノードを他のノードに変更する。
なお,nammstrコマンドでの動作モードの変更は,OpenTP1が稼働中の間だけ有効です。OpenTP1を再起動すると,システム共通定義に指定した動作モードに戻ります。
ノードリストを引き継ぐと,nammstrコマンドによる動作モードの状態,およびマネジャノードの指定先が,ノードリストファイルに引き継がれます。このため,再起動時もnammstrコマンドで変更した動作モードを引き継げます。
動作モードの昇格および降格の変更例を次の図に示します。
図で示した動作モードの変更について説明します。番号は図中の番号と対応しています。
-
ノードAを停止します。
ノードA上で動作するOpenTP1,またはユーザサービスプロセスをすべて停止します。
-
エージェントノードB〜Dは,ノードAをマネジャノードと認識しています。
-
ノードBでnammstr -uを実行し,ノードBがマネジャノードに昇格します。※1
-eオプションの指定で,コマンド実行前までにマネジャノードと認識していたノードAの情報をノードリストから削除することもできます。
-
ノードC,Dでは,ノードBからのノードリストの配布に従い,マネジャノードをノードBに変更します。
-
ノードAの動作モードはマネジャノードのままですが,エージェントノードがない状態になります。※2
-
ノードBでnammstr -d NODE-Aを実行し,ノードBがエージェントノードに降格します。また,ノードAをマネジャノードと認識します。※3
- 注※1
-
ノードAの停止を認識しないうちに,nammstrコマンドを実行した場合,エラーになることがあります。この場合,namsvinfコマンドに-bオプションを指定して実行し,ノードの状態を確認します。ノードAの状態が「INACT」になってから,再度コマンドを実行してください。
- 注※2
-
ユーザサーバだけを停止している場合は,OpenTP1システム上にマネジャノードが二つある状態になりますが,ノードC,Dは,ノードAからのノードリストは受け付けません。
- 注※3
-
ノードリストを引き継いでいる状態で,ノードの動作モードの降格をする場合は,OpenTP1を停止しないで,nammstrコマンドで実行することをお勧めします。OpenTP1を停止すると,ノードリストファイルの初期化,システム共通定義のname_service_modeオペランド,およびname_manager_nodeオペランドの修正後,OpenTP1の再起動が必要です。
- 動作モードの変更についての注意事項
-
-
マネジャノードまたはエージェントノードからノーマルノードへ変更する場合は,事前に変更するノードのOpenTP1を停止してください。停止した状態で定義を変更してから,OpenTP1を起動します。
-
ノードリストを引き継ぐ場合,OpenTP1開始時の動作モードは,ノードリストファイル中に格納された動作モードを適用します。ただし,ノードリストファイルの読み込みに失敗したときは,ノードリストファイル中に格納された動作モードではなく,システム共通定義のname_service_modeオペランドに指定した動作モードに従って,OpenTP1を開始します。
-
(3) ノード自動追加機能の障害時の運用
マネジャノードが障害などの要因で停止すると,次のような影響があります。
-
OpenTP1システムにノードを自動追加できない。
マネジャノードが保持しているノードリストのノードだけがRPCの実行範囲となるため,負荷分散が不完全になることがあります。
-
OpenTP1システムからノードを自動削除できない。
停止しているノードへRPC要求を出す場合があります。
-
エージェントノードにノードリストが配布されないため,各ノード間でノードリストに不整合が生じる。
マネジャノードが保持しているノードリストのノードだけがRPCの実行範囲となるため,負荷分散が不完全になることがあります。
ノード自動追加機能の障害時の運用について,説明します。
(a) マネジャノードが系切り替え構成でない場合の障害時の対応
マネジャノードは系切り替え構成での運用をお勧めします。マネジャノードを系切り替え構成で構築できない場合,マネジャノードで障害が発生したときは,次のように対応します。
-
次のどちらかの方法で,マネジャノードの再割り当てをします。
-
新規にマネジャノードを構築する。
-
既存のエージェントノードで,nammstrコマンドを実行し,マネジャノードに昇格する。
-
-
各エージェントノードに新マネジャノードを認識させます。
-
新規にマネジャノードを構築した場合は,各エージェントノードで,nammstrコマンドを実行し,マネジャノードを変更します。
-
nammstrコマンドでエージェントノードをマネジャノードに昇格した場合は,マネジャノードからのノードリストの配布によって,各エージェントノードで,新しいマネジャノードを認識します。
OpenTP1システムから旧マネジャノードが切り離されます。
-
-
旧マネジャノードをネットワークから切り離し,障害調査をします。
(b) コマンドによるノード停止状態の検知
ノード自動追加機能を使用して,システム共通定義のname_remove_down_nodeオペランドにYを指定している場合,ノード情報の削除は,通常マネジャノードのノード監視プロセスが行います。ただし,次の場合は,ノード情報を削除しません。
- namalivechkコマンドでノードの停止を検知した場合
-
namalivechkコマンドは,停止を検知したノードをRPC抑止リストへ登録します。このとき,ノード情報は削除しません。
システム共通定義のname_remove_down_nodeオペランドに,Yを指定しているときは,その後,マネジャノードのノード監視プロセスが,RPC抑止リストへ登録されたノードの情報をノードリストから削除します。
- namsvinfコマンドでノードの停止を検知した場合
-
namsvinfコマンドは,停止を検知したノードをRPC抑止リストへ登録しません。また,ノード情報の削除もしません。
- nambladコマンドでノードをRPC抑止リストへ登録した場合
-
コマンドに指定したノードをRPC抑止リストへ登録します。このとき,ノード情報は削除しません。
システム共通定義のname_remove_down_nodeオペランドに,Yを指定しているときは,その後,マネジャノードのノード監視プロセスが,RPC抑止リストへ登録されたノードの情報をノードリストから削除します。
name_remove_down_nodeオペランドについては,マニュアル「OpenTP1 システム定義」を参照してください。