3.2. Red Hat Enterprise Linux for Real Time カーネルとの kdump と kexec の使用
kdump クラッシュダンプは、クラッシュしたカーネルのコンテキストからではなく、クラッシュしたカーネルのコンテキストからキャプチャーされるため、信頼できるカーネルクラッシュのメカニズムです。kdump は、システムがクラッシュするたびに、第 2 のカーネルで起動するために、
kexec
というメカニズムを使用します。この 2 番目のカーネルは、多くの場合クラッシュカーネルと呼ばれ、非常に少ないメモリーでブートし、ダンプイメージをキャプチャーします。
システムで kdump を有効にすると、標準のブートカーネルはシステム RAM の小規模セクションを確保し、
kdump
カーネルを予約領域に読み込みます。カーネルパニックまたはその他の致命的なエラーが発生した場合、kexec
は BIOS を経由せずに kdump カーネルで起動するために使用されます。システムは、標準の kdump ブートカーネルが予約するメモリー領域に制限されているカーネルに再起動し、このカーネルはシステムメモリーのコピーまたはイメージを設定ファイルで定義したストレージメカニズムに書き込みます。kexec
は BIOS を通過し ないため、元のブートのメモリーは保持され、クラッシュダンプはより詳細になります。これが実行されると、カーネルが再起動し、マシンがリセットされ、ブートカーネルがバックアップされます。
Red Hat Enterprise Linux 7 では、kdump 以下の 3 つの手順を有効にする必要があります。まず、必要な RPM パッケージがシステムにインストールされていることを確認します。次に、最小限の設定を作成し、
rt-setup-kdump
ツールを使用して GRUB コマンドラインを変更します。3 つ目は、system-config-kdump
というグラフィカルなシステム設定ツールを使用して、詳細な kdump 設定を作成し、有効にします。
必要な kdump パッケージのインストール
このrt-setup-kdump
ツールは、rt-setup パッケージに含まれます。kexec-tools および system-config-kdump も必要です。~]#
yum install rt-setup kexec-tools system-config-kdump
rt-setup-kdump
で基本的な kdump カーネルの作成rt-setup-kdump
ツールをroot
として実行します。~]#
rt-setup-kdump --grub
この--grub
パラメーターは、GRUB 設定に記載されているすべてのリアルタイムカーネルエントリーに必要な変更を追加します。- システムを再起動して、予約メモリー容量を設定します。その後、kdump init スクリプトを有効にして kdump サービスを起動します。
~]#
systemctl enable kdump
~]#systemctl start kdump
kdump で
system-config-kdump
を有効化から システムツールを選択するか、シェルプロンプトで以下のコマンドを使用します。 ~]#
system-config-kdump
- カーネルダンプ設定画面 が表示されます。曲線で、 というラベルの付いたボタンをクリックします。Red Hat Enterprise Linux for Real Time カーネルは、kdump カーネルに対応するために必要なメモリー量を自動的に算出する
crashkernel=auto
パラメーターをサポートします。RAM が 4GB 未満の Red Hat Enterprise Linux 7 システムでは、crashkernel=auto
は、kdump カーネル用にメモリーを予約しません。この場合は、必要なメモリー量を手動で設定する必要があります。基本設定 タブの 新しい kdump メモリー フィールドに必要な値を入力してこれを実行できます。注記
kdump カーネルにメモリーを割り当てる別の方法として、GRUB 設定にcrashkernel=<value>
パラメーターを手動で設定する方法があります。 - ターゲット設定 タブをクリックし、ダンプファイルの場所を指定します。これはローカルのファイルシステムにファイルとして保存するか、デバイスに直接書き込むか、または NFS (Network File System) や SSH (Secure Shell) などのプロトコルを使ってネットワーク経由で送信することができます。設定を保存するには、ツールバーのボタンをクリックします。
- システムを再起動して、kdump が適切に起動できるようにします。kdump が正常に機能していることを確認する場合は、
sysrq
を使用してパニックをシミュレートしてください。~]#
echo c > /proc/sysrq-trigger
これにより、カーネルパニックが発生し、システムが kdump カーネルで起動します。システムをバックアップしたら、指定した場所でログファイルを確認できます。
注記
kdump カーネルの設定中に一部のハードウェアをリセットする必要があります。kdump カーネルが機能するのに問題がある場合は、
/etc/sysconfig/kdump
ファイルを編集して、KDUMP_COMMANDLINE_APPEND
を reset_devices=1
変数に追加します。
重要
IBM LS21 マシンでは、kdump カーネルの起動を試みる際に、以下の警告メッセージが表示されることがあります。
irq 9: nobody cared (try booting with the "irqpoll" option) handlers: [<ffffffff811660a0>] (acpi_irq+0x0/0x1b) turning off IO-APIC fast mode.
一部のシステムは、このエラーから回復して起動を続行しますが、メッセージを表示した後にフリーズする場合があります。これは既知の問題です。このエラーが表示された場合は、起動パラメーターとして
acpi=noirq
の行を kdump カーネルに追加します。この行は、この問題の影響を受けないマシンでブートの問題を引き起こす可能性があるため、このエラーが発生した場合にのみ追加します。
関連する man ページ
詳細は、以下の man ページは本セクションに記載の情報に関連しています。
- kexec(8)
/etc/kdump.conf