Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 運用と操作


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コマンドで変更した動作モードを引き継げます。

動作モードの昇格および降格の変更例を次の図に示します。

図3‒33 動作モードの昇格および降格の変更例

[図データ]

[図データ]

[図データ]

図で示した動作モードの変更について説明します。番号は図中の番号と対応しています。

  1. ノードAを停止します。

    ノードA上で動作するOpenTP1,またはユーザサービスプロセスをすべて停止します。

  2. エージェントノードB〜Dは,ノードAをマネジャノードと認識しています。

  3. ノードBでnammstr -uを実行し,ノードBがマネジャノードに昇格します。※1

    -eオプションの指定で,コマンド実行前までにマネジャノードと認識していたノードAの情報をノードリストから削除することもできます。

  4. ノードC,Dでは,ノードBからのノードリストの配布に従い,マネジャノードをノードBに変更します。

  5. ノードAの動作モードはマネジャノードのままですが,エージェントノードがない状態になります。※2

  6. ノード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) ノード自動追加機能の障害時の運用

マネジャノードが障害などの要因で停止すると,次のような影響があります。

ノード自動追加機能の障害時の運用について,説明します。

(a) マネジャノードが系切り替え構成でない場合の障害時の対応

マネジャノードは系切り替え構成での運用をお勧めします。マネジャノードを系切り替え構成で構築できない場合,マネジャノードで障害が発生したときは,次のように対応します。

  1. 次のどちらかの方法で,マネジャノードの再割り当てをします。

    • 新規にマネジャノードを構築する。

    • 既存のエージェントノードで,nammstrコマンドを実行し,マネジャノードに昇格する。

  2. 各エージェントノードに新マネジャノードを認識させます。

    • 新規にマネジャノードを構築した場合は,各エージェントノードで,nammstrコマンドを実行し,マネジャノードを変更します。

    • nammstrコマンドでエージェントノードをマネジャノードに昇格した場合は,マネジャノードからのノードリストの配布によって,各エージェントノードで,新しいマネジャノードを認識します。

    OpenTP1システムから旧マネジャノードが切り離されます。

  3. 旧マネジャノードをネットワークから切り離し,障害調査をします。

(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 システム定義」を参照してください。