kdumpctl: No memory reserved for crash kernel.

kdump 是一种 kernel crash dump 的机制,它可以在内核 crash 时保存系统的内存信息用于后续的分析。kdump 是基于 kexec 的。
crash 是一个用于交互式地分析正在运行的 Linux 系统或者 kernel crash 后的 core dump 数据的工具。

记录一下问题及其解决方法:

在 centos7 中的 kdump.service 服务一直不能正常启动,如下:

[root@mesos-slave-dev001-cqdx ~]# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
   Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since 二 2016-07-19 14:07:37 CST; 1min 1s ago
  Process: 5416 ExecStart=/usr/bin/kdumpctl start (code=exited, status=1/FAILURE)
 Main PID: 5416 (code=exited, status=1/FAILURE)

7月 19 14:07:35 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Starting Crash recovery kernel arming...
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual kdumpctl[5416]: No memory reserved for crash kernel.
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual kdumpctl[5416]: Starting kdump: [FAILED]
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: kdump.service: main process exited, code=exited, status=1/FAILURE
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Failed to start Crash recovery kernel arming.
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Unit kdump.service entered failed state.
7月 19 14:07:37 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: kdump.service failed.

需要在 kernel 启动命令行参数中添加 crashkernel 参数,并启动 kdump 服务。
一般设置为 crashkernel=auto 表示根据系统内存自动 reserve 一些内存给 kernelcrash 用,在 x86_64 系统中内存大于等于 2GB 时会 reserve 内存,最小保留内存计算方法是:160 MB + 2 bits for every 4 KB of RAM.
当然,也可以设置 crashkernel=512M 这样的固定保留内存。

用 yum install kexec-tools 安装 kdump 工具和服务
用 systemctl start kdump 命令可以启动 kdump.service,用 systemctl enable kdump 让 dump 服务在开机时自动启动。
kdump.service 相关的配置文件 /etc/kdump.conf 里面可以修改一些默认的配置,比如 dump 完成后的动作(默认是 reboot)、dump 文件存放的方式(本地目录、NFS、scp 到另外服务器等)。

现在来看问题:

其实是需要设置一下 crashkernel=auto
检查后,发现 /etc/default/grub 文件并不存在,添加该文件的配置信息,如下:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true

然后让其生效:

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

最后,reboot 机器即可。

[root@mesos-slave-dev001-cqdx ~]# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
   Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
   Active: active (exited) since 二 2016-07-19 14:15:16 CST; 14min ago
 Main PID: 1082 (code=exited, status=0/SUCCESS)
   Memory: 0B
   CGroup: /system.slice/kdump.service

7月 19 14:15:13 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Starting Crash recovery kernel arming...
7月 19 14:15:16 mesos-slave-dev001-cqdx.qiyi.virtual kdumpctl[1082]: kexec: loaded kdump kernel
7月 19 14:15:16 mesos-slave-dev001-cqdx.qiyi.virtual kdumpctl[1082]: Starting kdump: [OK]
7月 19 14:15:16 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Started Crash recovery kernel arming.
7月 19 14:15:19 mesos-slave-dev001-cqdx.qiyi.virtual systemd[1]: Started Crash recovery kernel arming.

 

转载至https://blog.csdn.net/qianggezhishen/article/details/51955553

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值