9.4. クラスターデーモンがクラッシュする
RGManager には、メインの
rgmanager
プロセスが予期せず失敗した場合にホストを再起動するウォッチドッグプロセスがあります。これにより、クラスターノードはフェンスされ、rgmanager
は別のホスト上でサービスを回復します。ウォッチドッグデーモンがメインの rgmanager
プロセスがクラッシュしたことを検出すると、クラスターノードを再起動します。そして、アクティブなクラスターノードはそのクラスターノードが離脱したことを検出して、それをクラスターから削除します。
プロセス ID (PID) の比較的小さい数字は、監視プロセスで、子 (PID 番号が高いプロセス) がクラッシュした場合にアクションを取ります。
gcore
を使用して数値の高い PID 番号を持つプロセスのコアをキャプチャーして、クラッシュしたデーモンのトラブルシューティングのサポートをします。
コアをキャプチャ/表示するために必要なパッケージをインストールし、
rgmanager
及び rgmanager-debuginfo
が同一バージョンであることを確認してください。これが実行されないと、キャプチャされたアプリケーションコアが使用できない場合があります。
$ yum -y --enablerepo=rhel-debuginfo install gdb rgmanager-debuginfo
9.4.1. ランタイムでの rgmanager
コアのキャプチャ
起動時に実行する
rgmanager
プロセスが 2 つあります。番号が大きい PID を持つ rgmanager
プロセスのコアをキャプチャする必要があります。
以下は、
ps
コマンドの出力の例です。rgmanager
の 2 つのプロセスを示しています。
$ ps aux | grep rgmanager | grep -v grep root 22482 0.0 0.5 23544 5136 ? S<Ls Dec01 0:00 rgmanager root 22483 0.0 0.2 78372 2060 ? S<l Dec01 0:47 rgmanager
以下の例で、
pidof
プログラムは、コアを作成するために適切な PID である、番号が大きい PID を自動的に決定するために使用されます。このコマンドは、PID 番号が大きいプロセス 22483 のアプリケーションコアをキャプチャします。
$ gcore -o /tmp/rgmanager-$(date '+%F_%s').core $(pidof -s rgmanager)