火山引擎云服务器实践教程-在Linux操作系统中开启Kdump服务

axin 2025-04-06 4人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程

👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>

您可以在Linux操作系统的云服务器实例中开启Kdump,方便您在实例内核发生崩溃时快速定位崩溃原因。
本文以CentOS 7.9操作系统为例,介绍安装、配置及开启Kdump流程。
注意
  • 开启Kdump会占用一部分操作系统的内存、磁盘空间,可能会对系统性能产生一定影响。

  • 不同Linux操作系统开启Kdump方式不同,请查看其官方文档:

    • Red Hat Enterprise Linux/CentOS

    • Debian/Ubuntu

    • SUSE/OpenSUSE

    • 其他类Unix操作系统

什么是Kdump?

Kdump是一种基于kexec的内核崩溃转储技术。当Linux系统内核发生崩溃(例如由于硬件故障、软件错误、驱动程序问题等导致系统无法正常运行)时,Kdump能够捕获内核崩溃时的内存状态信息,并将这些信息保存到磁盘上,维护人员可以根据Kdump转储文件分析、定位内核崩溃原因。了解更多。

操作步骤

  1. 登录目标实例。

  1. 执行如下命令,安装Kdump工具。

yum install crash kexec-tools makedumpfile -y
  1. 配置指定崩溃转储内存的大小。

    1. 执行如下命令,执行如下命令,打开内核配置文件。

vim /etc/default/grub
    1. 按i键进入编辑模式,在GRUB_CMDLINE_LINUX中修改crashkernel参数值auto为128M。

说明
  • 请将128M替换为您期望为崩溃转储(Kdump)预留的内存大小。

  • 若GRUB_CMDLINE_LINUX行中没有crashkernel参数,请自行添加。

修改后示例:

    1. 按esc键退出编辑,输入:wq按回车键,保存并退出文件。

    1. 执行如下命令更新GRUB配置文件,使配置生效。

      • BIOS启动模式

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • UEFI启动模式

sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    1. 执行如下命令,重启实例。

reboot
  1. 配置Kdump。

    1. 执行如下命令,打开内核配置文件。

vim /etc/kdump.conf
    1. 按i键进入编辑模式,修改如下内容:

      • path /var/crash:请将/var/crash替换为您期望的Kdump文件存放目录,本文保持默认。

      • core_collector makedumpfile -l -message-level 1 -d 31:请添加-c参数,压缩Kdump文件,减少磁盘占用。

      • default reboot:新增该行,表示生成Kdump后,重启操作系统。

修改后示例:

    1. 按esc键退出编辑,输入:wq按回车键,保存并退出文件。

  1. 开启Kdump。

    1. 执行如下命令,运行Kdump工具。

systemctl start kdump.service
    1. 执行如下命令,配置Kdump工具开机自启动。

systemctl enable kdump.service
    1. 执行如下命令,查看Kdump运行状态。

systemctl status kdump.service
正常运行回显示例:

  1. 依次执行如下命令,手动触发内核崩溃,验证Kdump是否可用。

echo 1 > /proc/sys/kernel/sysrqecho c > /proc/sysrq-trigger
    • 若Kdump正常运行,系统将自动重启,并在您指定的Kdump文件存放目录(本文为/var/crash)下生成如下图所示内容。

    • 若Kdump未正常运行,请根据前文检查Kdump是否正确安装、配置。

后续步骤

您可以通过crash工具,读取Kdump文件的重要内容,分析内核崩溃原因。
  1. 登录目标实例。

  1. 安装kernel-debug包。

    1. 执行如下命令,查看当前操作系统内核版本。

uname -r
回显示例:

    1. 前往CentOS官方镜像站,获取与实例内核版本相同的kernel-debuginfo-common、kernel-debuginfo两个RPM包的下载链接。

    1. 下载并安装对应RPM包。

      1. 执行如下命令,下载kernel-debuginfo-common包。

wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将wget命令后的链接替换为实际RPM包下载链接。
      1. 执行如下命令,安装kernel-debuginfo-common包。

rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm替换为实际下载的RPM包名称。
      1. 执行如下命令,下载kernel-debuginfo包。

wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将wget命令后的链接替换为实际RPM包下载链接。
      1. 执行如下命令,安装kernel-debuginfo包。

rpm -ivh kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm替换为实际下载的RPM包名称。
  1. 安装crash。

说明
您也可以前往crash官方网站下载所需版本并安装。
yum install crash -y
  1. 执行如下命令,查看crash版本,验证是否成功安装crash。

crash -v
回显示例:

  1. 使用crash查看Kdump信息。

    1. 执行如下命令,即可进入crash命令行页面,查看Kdump文件信息。

crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/<timestamp>/vmcore
说明
请将<timestamp>替换为生成Kdump文件的时间戳。
回显示例:

    1. crash提供了多种命令,帮助您快速提取Kdump文件中的关键信息。了解更多。

    1. 如需退出crash交互模式并停止crash,请输入exit或q并按回车键确认。


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯