kdumpサービスが立ち上がらない

こんにちは。HACKNOTEのohnoです。

起きたこと

CentOS7系でkdumpを取ろうとして、kdump.serviceを立ち上げようとしたら以下のエラー

[root@www ~]# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
   Loaded: loaded (/usr/lib/systemd/system/kdump.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since 月 2019-03-04 10:21:11 JST; 42s ago
  Process: 2204 ExecStart=/usr/bin/kdumpctl start (code=exited, status=1/FAILURE)
 Main PID: 2204 (code=exited, status=1/FAILURE)

 3月 04 10:21:11 hogehoge dracut[4417]: drwxr-xr-x   2 root     root            0 Mar  4 10:20 var
 3月 04 10:21:11 hogehoge dracut[4417]: lrwxrwxrwx   1 root     root           11 Mar  4 10:20 var/lock -> ../run/lock
 3月 04 10:21:11 hogehoge dracut[4417]: lrwxrwxrwx   1 root     root            6 Mar  4 10:20 var/run -> ../run
 3月 04 10:21:11 hogehoge dracut[4417]: ========================================================================
 3月 04 10:21:11 hogehoge kdumpctl[2204]: No memory reserved for crash kernel.
 3月 04 10:21:11 hogehoge kdumpctl[2204]: Starting kdump: [FAILED]
 3月 04 10:21:11 hogehoge systemd[1]: kdump.service: main process exited, code=exited, status=1/FAILURE
 3月 04 10:21:11 hogehoge systemd[1]: Failed to start Crash recovery kernel arming.
 3月 04 10:21:11 hogehoge systemd[1]: Unit kdump.service entered failed state.
 3月 04 10:21:11 hogehoge systemd[1]: kdump.service failed.

対応

 No memory reserved for crash kernel.となっていますので、crash kernelの値を設定してあげればよいようです。

設定方法

CentOS7系でgrub2を使用している想定です。GRUB_CMDLINE_LINUXに使用する値を入れてあげます。

[root@hogehoge ~]# vim /etc/default/grub
-------------------------------------------------------------
GRUB_CMDLINE_LINUX="vconsole.keymap=jp106 vga=771 rhgb quiet ipv6.disable=1"
↓
GRUB_CMDLINE_LINUX="vconsole.keymap=jp106 vga=771 crashkernel=HOGEHOGE rhgb quiet ipv6.disable=1"
------------------------------

HOGEHOGEには○○Mと使用したいメモリを入れてください。もしくはautoで自動的に割り当てることも可能です。

が、積んでいるメモリが4GB以下の場合にはautoで割り当てられないので、128Mを割り当てて上げましょう。

記入後、

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

でgrub2に反映、正常に設定後、OSを再起動させて起動すれば、問題なく立ち上がります。

kernel panicを意図的に発生させてkdumpを取得したい場合には

echo c > /proc/sysrq-trigger 

などと打てばkernel panicを起こせるので、テストしてみると良いでしょう。