kdump メカニズムは Linux カーネルの機能であり、カーネルがクラッシュした場合にダンプを作成できます。メモリの正確なコピーが生成され、クラッシュの根本原因を分析できます。 kdump(カーネルダンプ)を設定するスクリプトです。 Kdump は、カーネルに重大な問題がある場合、vmcore という名前のファイルにメモリ ダンプを提供します。問題を調査するには、多くの場合、Vmcore が必要です。クラッシュ ダンプは、クラッシュしたカーネルのコンテキストからではなく、新しく起動したカーネルのコンテキストからキャプチャされます。 Kdump は、システムがクラッシュするたびに kexec を使用して 2 番目のカーネルを起動します。 Kexec は、ファームウェアやウォーム スタートを使用せずに、実行中のカーネルのコンテキストから新しい Linux カーネルを再起動できる高速ブート メカニズムです。
この投稿では、一般的な kdump の問題をトラブルシューティングする手順について説明します。
kdump セットアップの確認
1. kexec-tools パッケージがシステムにインストールされているかどうかを確認します。
# rpm -qa | grep kexec
2. 現在実行中のカーネルのカーネル コマンドラインでパラメータ「crashkernel」を確認します。
# cat /proc/cmdline
3. カーネルの起動時にメモリーがクラッシュカーネル用に予約されているかどうかを確認します:
# dmesg | grep Reserving
4. ダンプのパスを確認します:
# grep -v ^# /etc/kdump.conf
5. 前のステップのパス パラメータで指定されたファイル システムで使用可能なストレージ容量を確認します。
# df -h
6. kdump サービスのステータスを確認します:
# service kdump status ### In CentOS/RHEL 6 # systemctl status kdump ### In CentOS/RHEL 7
kdump サービスが動作していない場合
1. 上記のセクションに従って kdump の設定を確認します。
2. kdump サービスを開始します
# service kdump status ### In CentOS/RHEL 6 # systemctl status kdump ### In CentOS/RHEL 7
3.端末からエラーを確認してください。
4. サービス kdump の起動失敗の詳細については、/var/log/messages を参照してください。 .
kdump のセットアップは正常で、サービス kdump のステータスは動作しているが、クラッシュのトリガー時に vmcore が生成されていない場合
1. /etc/kdump.conf ファイルを編集します 以下の行を追加して、vmcore の生成に失敗したときにシェルを取得します:
default shell
2. シェルで、使用可能なストレージを確認し、vmcore の宛先ファイルシステムがマウントされているかどうかを確認してから、vmcore を手動でコピーして、失敗するかどうかを確認します。
# cp /proc/vmcore [destination]
シェルが取得されず、起動中にクラッシュカーネルが動かなくなった場合
1. コンソールのメッセージを確認し、crashkernel の起動メッセージを探します。詰まっている場所を探してください。
Crashkernel は、システムの起動時に開始されるカーネルと同じであるため、通常のカーネル ブートアップ メッセージと同様のメッセージが表示されますが、アクティブ化されるデバイスは限られています。例:crashkernel で有効になっている CPU は 1 つだけです。宛先ストレージ ディスクのみが検出されます。2. ページ割り当てエラー メッセージが表示された場合は、予約済みのクラッシュカーネルが十分ではなく、'crashkernel' カーネル パラメータの値を増やす必要がある可能性が高くなります。