[ホーム] - [Redhat Linux 7 FAQ 一覧] - ["Unit kdump.service entered failed state." で kdump 起動に失敗する場合の対処]



"Unit kdump.service entered failed state." で kdump 起動に失敗する場合の対処

環境:Redhat Enterprise linux 7(EL)




現象



kdump サービスの起動に失敗する場合があります。メッセージは以下の通りです。

エラーメッセージ:

Jun 8 00:08:28 localhost kdumpctl: No memory reserved for crash kernel.
Jun 8 00:08:28 localhost kdumpctl: Starting kdump: [FAILED]
Jun 8 00:08:28 localhost systemd: kdump.service: main process exited, code=exited, status=1/FAILURE
Jun 8 00:08:28 localhost systemd: Unit kdump.service entered failed state.
Jun 8 00:08:28 localhost systemd: kdump.service failed.



kdumpサービスの状態を確認してもエラー以下のエラーが出力されています。


# /usr/bin/systemctl status kdump.service
Unit kdump.service-usr-bin-systemctl.service could not be found.
Unit status.service could not be found.

●kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since 木 2017-06-01 00:00:28 JST; 1 day 22h ago
Process: 1006 ExecStart=/usr/bin/kdumpctl start (code=exited, status=1/FAILURE)
Main PID: 1006 (code=exited, status=1/FAILURE)

6月 01 00:00:16 localhost.localdomain systemd[1]: Starting Crash recovery kernel arming...
6月 01 00:00:28 localhost.localdomain kdumpctl[1006]: No memory reserved for crash kernel.
6月 01 00:00:28 localhost.localdomain kdumpctl[1006]: Starting kdump: [FAILED]
6月 01 00:00:28 localhost.localdomain systemd[1]: kdump.service: main process exited, code=exited, status=1/FAILURE
6月 01 00:00:28 localhost.localdomain systemd[1]: Failed to start Crash recovery kernel arming.
6月 01 00:00:28 localhost.localdomain systemd[1]: Unit kdump.service entered failed state.
6月 01 00:00:28 localhost.localdomain systemd[1]: kdump.service failed.
Hint: Some lines were ellipsized, use -l to show in full.




原因


kdump 用のメモリが確保されていないのが主な原因です。

恐らく4G以上のメモリが搭載されていないと思われます。
crashkernel=auto オプションは、4 GB 以上の物理メモリーが搭載されていないとkdumpのメモリ確保は行われません。
(crashkernel=auto に関しては、後の記述を参照してください。)

kdump に使用するメモリは常に空けておかなくてはいけないけません。なぜならクラッシュは突然発生するからです。突然発生したとき空きのメモリがないと処理ができません。
無理やりメモリを確保したら、クラッシュしたときの状況証拠が壊れてしましますからね。無理やり作ったらクラッシュ時のメモリではなくなり、ダンプを取る意味が薄れてしまいます。
(何かのメモリを追い出さなくてはならないため)


対処


可能ならシステムに多く(4G以上)のメモリを搭載します。しかし(仮想環境で大量に linux 基盤を稼働する場合など)それができない場合は設定の追加が必要です。

RHEL 7.2の場合

システムに4G未満のメモリしかなく、かつkdumpを取得したい場合は以下の設定を行います。

(1)
【ファイル】

/etc/default/grub



【変更内容】
変更前:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"



変更後:

GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"



(2)grub再構築

# grub2-mkconfig -o /boot/grub2/grub.cfg



(3)リブート

#shutdown -r




確認方法


(1)コマンドでkdumpの status を確認すると、正常に起動していることが分かります。

# /usr/bin/systemctl status kdump.service
Unit kdump.service-usr-bin-systemctl.service could not be found.
Unit status.service could not be found.
● kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: active (exited) since 金 2017-06-01 00:00:00 JST; 25s ago
Process: 1002 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
Main PID: 1002 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/kdump.service

6月 01 00:00:00 localhost.localdomain systemd[1]: Starting Crash recovery k...
6月 01 00:00:00 localhost.localdomain kdumpctl[1002]: kexec: loaded kdump k...
6月 01 00:00:00 localhost.localdomain kdumpctl[1002]: Starting kdump: [OK]
6月 01 00:00:00 localhost.localdomain systemd[1]: Started Crash recovery ke...
Hint: Some lines were ellipsized, use -l to show in full.



(2)実際にクラッシュを発生させてみます。(保存されていないデータがすべてロストするので、テスト環境で十分に注意して実行してください。)


#echo c > /proc/sysrq-trigger



(3)デフォルト設定ではカーネルダンプが記録された後、自動的に再起動されます。
以下の場所にカーネルダンプが記録されています。


/var/spool/abrt/vmcore-xxxxxxxxxxxxxx



(4)以下の場所にクラッシュ時の情報が記録されています。解析のヒントとなります。


var/spool/abrt/oops-YYYY-MM-DD-hh:ss:mm-xxxxxxx







(*)本ページは Redhat Enterprise Linux 7.2以後を想定しています。

最終更新日:2017/07/12



[ホーム] - [ Redhat Linux 7 FAQ 一覧]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018