5.2. 環境のモニタリング
このセクションでは、テスト中の環境のモニタリングに焦点を当てます。このセクションでは、変更を確認するために必要なモニターのみを説明します。これらのモニターは専用のターミナルから実行することを推奨します。テスト中に変更を検出できるようにするには、テストを開始する前にモニタリングを開始することを推奨します。
便利なコマンド セクションで、さらに多くの例を紹介しています。
5.2.1. プライマリーノードの検出
プライマリーノードを検出してフェイルオーバーを監視するか、プライマリーノードで実行したときにレプリケーションステータスに関する情報のみを提供する特定のコマンドを実行する必要があります。
プライマリーノードを検出するには、<sid>adm
ユーザーとして次のコマンドを実行します。
clusternode1:rh2adm> watch -n 5 'hdbnsutil -sr_stateConfiguration | egrep -e "primary masters|^mode"'
clusternode2 がプライマリーデータベースである場合の出力例:
mode: syncmem primary masters: clusternode2
プライマリーデータベースを実行するノードの出力は次のとおりです。
mode: primary
5.2.2. レプリケーションステータスの確認
レプリケーションのステータスは、プライマリーデータベースノードとセカンダリーデータベースノード間の関係と、レプリケーションの現在のステータスを示します。
レプリケーションのステータスを確認するには、<sid>adm
ユーザーとして次のコマンドを実行します。
clusternode1:rh2adm> hdbnsutil -sr_stateConfiguration
システムのレプリケーションステータスの変更を永続的に監視する場合は、次のコマンドを実行してください。
clusternode1:rh2adm> watch -n 5 'python /usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py ; echo Status $?'
この例では、現在の戻りコードも確認します。
戻りコード (ステータス) が 15 である限り、レプリケーションのステータスは正常です。他の戻りコードは次のとおりです。
- 10: NoHSR
- 11: Error
- 12: Unknown
- 13: Initializing
- 14: Syncing
- 15: Active
新しいセカンダリーを登録する場合は、プライマリーノード上の別のウィンドウでコマンドを実行し、レプリケーションの進行状況を確認できます。フェイルオーバーを監視する場合は、前のプライマリーデータベースサーバーと新しいプライマリーデータベースサーバーで並行してコマンドを実行できます。詳細は、SAP HANA システムレプリケーションのステータスの確認 を参照してください。
5.2.3. /var/log/messages
のエントリーの確認
Pacemaker は、/var/log/messages
ファイルに多くの情報を書き込みます。フェイルオーバー中に、大量のメッセージがこのメッセージファイルに書き込まれます。SAP HANA リソースエージェントに応じて重要なメッセージのみを追跡できるようにするには、Pacemaker SAP リソースの詳細なアクティビティーをフィルターすると便利です。単一のクラスターノードのメッセージファイルを確認するだけで十分です。
たとえば、次のエイリアスを使用できます。
[root@clusternode1]# tmsl='tail -1000f /var/log/messages | egrep -s "Setting master-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED|LPT"'
別のウィンドウで tmsl
を実行して、テストの進捗を監視します。フェイルオーバーと同期状態の監視 の例も参照してください。
5.2.4. クラスターの状態
クラスターのステータスを確認するにはいくつかの方法があります。
クラスターが実行中かどうかを確認します。
-
pcs cluster status
-
クラスターとすべてのリソースを確認します。
-
pcs status
-
クラスター、すべてのリソース、およびすべてのノード属性を確認します。
-
pcs status --full
-
リソースのみを確認します。
-
pcs resource
-
pcs status --full
コマンドを使用すると、必要な情報がすべて得られます。変更を監視するには、このコマンドを watch と一緒に実行できます。
[root@clusternode1]# watch pcs status --full
出力例とその他のオプションについては、クラスターのステータスの確認 を参照してください。
5.2.5. 残留物の検出
環境が次のテストを実行できる状態にあることを確認するには、以前のテストで残ったものを修正または削除する必要があります。
stonith
は、クラスター内のノードをフェンスするために使用します。-
検出:
[root@clusternode1]# pcs stonith history
-
修正:
[root@clusternode1]# pcs stonith cleanup
-
検出:
複数のプライマリーデータベース:
Detect:
clusternode1:rh2adm> hdbnsutil -sr_stateConfiguration | grep -i primary
同じプライマリーを持つすべてのノードを識別する必要があります。
-
修正: %
--force_full_replica
オプションを使用して、正しくないプライマリーを登録し直します。
移動により発生した場所の制約:
検出:
[root@clusternode1]# pcs constraint location
警告セクションを確認します。
-
修正:
[root@clusternode1]# pcs resource clear <clone-resource-which was moved>
セカンダリーレプリケーション関係:
-
検出:プライマリーデータベースで
clusternode1:rh2adm> python $DIR_EXECUTABLE/python_support/systemReplicationStatus.py を実行します。
- 修正: セカンダリーデータベースを登録解除して再登録します。
-
検出:プライマリーデータベースで
siteReplicationMode (すべての SAP HANA ノードで同じ出力)を確認します。
-
clusternode1:rh2adm> hdbnsutil -sr_state --sapcontrol=1 |grep site.*Mode
-
Pcs プロパティー:
-
検出:
[root@clusternode1]# pcs property config
-
修正:
[root@clusternode1]# pcs property set <key=value>
-
検出:
maintenance-mode
をクリアします。-
[root@clusternode1]# pcs property set maintenance-mode=false
-
log_mode:
Detect:
clusternode1:rh2adm> python systemReplicationStatus.py
通常は
log_mode
が必要であるという応答がレプリケーションのステータスで返されます。log_mode は、hdbsql を使用した Inifile の内容の確認
で説明されている方法で検出できます。-
修正:
log_mode
を normal に変更し、プライマリーデータベースを再起動します。
CIB エントリー:
検出: クラスター情報ベース内の SFAIL エントリー。
CIB エントリーを検索して削除するには、クラスターの整合性の確認 を参照してください。
クリーンアップ/クリア:
検出:
[root@clusternode1]# pcs status --full
場合によっては、エラーや警告が表示されることがあります。リソースをクリーンアップ/クリアしても、すべてが正常であれば何も起こりません。次のテストを実行する前に、環境をクリーンアップできます。
修正の例:
[root@clusternode1]# pcs resource clear <name-of-the-clone-resource
>[root@clusternode1]# pcs resource cleanup <name-of-the-clone-resource>
これは、既存の環境に問題があるかどうかをチェックする場合にも便利です。
詳細は、便利なコマンド を参照してください。