10.2. 判読可能なコアダンプファイルの生成
Ceph デーモンがセグメンテーション違反で突然終了した場合は、その障害に関する情報を収集し、Red Hat サポートエンジニアに提供します。
このような情報は初期調査を迅速化します。また、サポートエンジニアは、コアダンプファイルの情報を Red Hat Ceph Storage クラスターの既知の問題と比較できます。
前提条件
debuginfo パッケージがインストールされていない場合はインストールしておく。
次のリポジトリーを有効にして、必要な debuginfo パッケージをインストールしておく。
例
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms yum --enable=rhceph-6-tools-for-rhel-9-x86_64-debug-rpms
[root@host01 ~]# subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms [root@host01 ~]# yum --enable=rhceph-6-tools-for-rhel-9-x86_64-debug-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow リポジトリーを有効にすると、サポートされるパッケージのこの一覧から必要な debug info パッケージをインストールできます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
gdbパッケージがインストールされていることを確認します。インストールされていない場合は、インストールします。例
dnf install gdb
[root@host01 ~]# dnf install gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.1. コンテナー化されたデプロイメントでの判読可能なコアダンプファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage 6 のコアダンプファイルを生成できます。これには、コアダンプファイルをキャプチャーする 2 つのシナリオが含まれます。
- SIGILL、SIGTRAP、SIGABRT、または SIGSEGV エラーにより、Ceph プロセスが予期せず終了した場合。
または
- 手動の場合。たとえば、Ceph プロセスが高い CPU サイクルを消費したり、応答がないなど、問題を手動でデバッグする場合。
前提条件
- Ceph コンテナーを実行するコンテナーノードへの root レベルのアクセス。
- 適切なデバッグパッケージのインストール
-
GNU Project Debugger (
gdb) パッケージのインストール。 - ホストに 8 GB 以上の RAM があることを確認します。ホストに複数のデーモンがある場合は、Red Hat は RAM を増やすことを推奨します。
手順
SIGILL、SIGTRAP、SIGABRT、または SIGSEGV エラーにより、Ceph プロセスが予期せず終了した場合。
障害の発生した Ceph プロセスのあるコンテナーが実行しているノードの
systemd-coredumpサービスにコアパターンを設定します。例
echo "| /usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" > /proc/sys/kernel/core_pattern
[root@mon]# echo "| /usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" > /proc/sys/kernel/core_patternCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph プロセスが原因でコンテナーに関する次の障害の有無を確認し、
/var/lib/systemd/coredump/ディレクトリーでコアダンプファイルを検索します。例
ls -ltr /var/lib/systemd/coredump total 8232 -rw-r-----. 1 root root 8427548 Jan 22 19:24 core.ceph-osd.167.5ede29340b6c4fe4845147f847514c12.15622.1584573794000000.xz
[root@mon]# ls -ltr /var/lib/systemd/coredump total 8232 -rw-r-----. 1 root root 8427548 Jan 22 19:24 core.ceph-osd.167.5ede29340b6c4fe4845147f847514c12.15622.1584573794000000.xzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph OSD および Ceph Monitors のコアダンプファイルを手動でキャプチャーするには、以下を実行します。
MONITOR_ID または OSD_ID を取得して、コンテナーを入力します。
構文
podman ps podman exec -it MONITOR_ID_OR_OSD_ID bash
podman ps podman exec -it MONITOR_ID_OR_OSD_ID bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
podman ps podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-osd-2 bash
[root@host01 ~]# podman ps [root@host01 ~]# podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-osd-2 bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow procps-ngパッケージおよびgdbパッケージをコンテナーにインストールします。例
dnf install procps-ng gdb
[root@host01 ~]# dnf install procps-ng gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロセス ID を検索します。
構文
ps -aef | grep PROCESS | grep -v run
ps -aef | grep PROCESS | grep -v runCopy to Clipboard Copied! Toggle word wrap Toggle overflow PROCESS は、実行中のプロセスの名前に置き換えます (例:
ceph-monまたはceph-osd)。例
ps -aef | grep ceph-mon | grep -v run ceph 15390 15266 0 18:54 ? 00:00:29 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 5 ceph 18110 17985 1 19:40 ? 00:00:08 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 2
[root@host01 ~]# ps -aef | grep ceph-mon | grep -v run ceph 15390 15266 0 18:54 ? 00:00:29 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 5 ceph 18110 17985 1 19:40 ? 00:00:08 /usr/bin/ceph-mon --cluster ceph --setroot ceph --setgroup ceph -d -i 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルを生成します。
構文
gcore ID
gcore IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow ID を、前の手順で取得したプロセスの ID に置き換えます (例:
18110)。例
gcore 18110 warning: target file /proc/18110/cmdline contained unexpected null characters Saved corefile core.18110
[root@host01 ~]# gcore 18110 warning: target file /proc/18110/cmdline contained unexpected null characters Saved corefile core.18110Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルが正しく生成されていることを確認します。
例
ls -ltr total 709772 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.18110
[root@host01 ~]# ls -ltr total 709772 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.18110Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Monitor コンテナー外部でコアダンプファイルをコピーします。
構文
podman cp ceph-mon-MONITOR_ID:/tmp/mon.core.MONITOR_PID /tmp
podman cp ceph-mon-MONITOR_ID:/tmp/mon.core.MONITOR_PID /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow MONITOR_ID を Ceph Monitor の ID 番号に置き換え、MONITOR_PID をプロセス ID 番号に置き換えます。
他の Ceph デーモンのコアダンプファイルを手動でキャプチャーするには、以下を実行します。
cephadmシェルにログインします。例
cephadm shell
[root@host03 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow デーモンの
ptraceを有効にします。例
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/allow_ptrace true
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/allow_ptrace trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow デーモンサービスを再デプロイします。
構文
ceph orch redeploy SERVICE_ID
ceph orch redeploy SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch redeploy mgr [ceph: root@host01 /]# ceph orch redeploy rgw.rgw.1
[ceph: root@host01 /]# ceph orch redeploy mgr [ceph: root@host01 /]# ceph orch redeploy rgw.rgw.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm shellを終了し、デーモンがデプロイされているホストにログインします。例
[ceph: root@host01 /]# exit ssh root@10.0.0.11
[ceph: root@host01 /]# exit [root@host01 ~]# ssh root@10.0.0.11Copy to Clipboard Copied! Toggle word wrap Toggle overflow DAEMON_ID を取得して、コンテナーを入力します。
例
podman ps podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-rgw-rgw-1-host04 bash
[root@host04 ~]# podman ps [root@host04 ~]# podman exec -it ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad-rgw-rgw-1-host04 bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow procps-ngパッケージおよびgdbパッケージをインストールします。例
dnf install procps-ng gdb
[root@host04 /]# dnf install procps-ng gdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロセスの PID を取得します。
例
ps aux | grep rados ceph 6 0.3 2.8 5334140 109052 ? Sl May10 5:25 /usr/bin/radosgw -n client.rgw.rgw.1.host04 -f --setuser ceph --setgroup ceph --default-log-to-file=false --default-log-to-stderr=true --default-log-stderr-prefix=debug
[root@host04 /]# ps aux | grep rados ceph 6 0.3 2.8 5334140 109052 ? Sl May10 5:25 /usr/bin/radosgw -n client.rgw.rgw.1.host04 -f --setuser ceph --setgroup ceph --default-log-to-file=false --default-log-to-stderr=true --default-log-stderr-prefix=debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプを収集します。
構文
gcore PID
gcore PIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
gcore 6
[root@host04 /]# gcore 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow コアダンプファイルが正しく生成されていることを確認します。
例
ls -ltr total 108798 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.6
[root@host04 /]# ls -ltr total 108798 -rw-r--r--. 1 root root 726799544 Mar 18 19:46 core.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー外でコアダンプファイルをコピーします。
構文
podman cp ceph-mon-DAEMON_ID:/tmp/mon.core.PID /tmp
podman cp ceph-mon-DAEMON_ID:/tmp/mon.core.PID /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow DAEMON_ID は Ceph デーモンの ID 番号に、PID はプロセス ID 番号に置き換えます。
systemd-coredump がクラッシュした ceph デーモンのコアダンプを正常に保存できるようにするには、次の手順を実行します。/etc/systemd/system.confでDefaultLimitCORE を無限大 に設定して、クラッシュしたプロセスのコアダンプ収集を許可します。構文
cat /etc/systemd/system.conf DefaultLimitCORE=infinity
# cat /etc/systemd/system.conf DefaultLimitCORE=infinityCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemdまたはノードを再起動して、更新されたsystemd設定を適用します。構文
sudo systemctl daemon-reexec
# sudo systemctl daemon-reexecCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前のデーモンのクラッシュに関連するコアダンプファイルを確認します。
構文
ls -ltr /var/lib/systemd/coredump/
# ls -ltr /var/lib/systemd/coredump/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Red Hat サポートケースに分析用のコアダンプファイルをアップロードします。詳細は、Red Hat サポートエンジニアへの情報の提供 を参照してください。