Kdump和Crash安装和配置

Kdump和Crash工具

Kdump和Crash简介

Kdump为Linux内核设计的内核转储工具。Kdump的核心实现基于Kexec,Kexec全称是Kernel execution,即内核执行,类似于Linux内核中的exec系统调用。Kexec可以快速启动一个新的Linux内核,他会跳过BIOS或者bootloader等引导程序的初始化阶段。这个特性可以让系统崩溃时快速切换到此内核进行信息手机和转储。
Crash是 Red Hat Enterprise Linux工程师开发的,和Kdump配套使用的一个用于分析内核转储文件的工具。Kdump的工作流程不复杂。Kdump会在内存中保留一块区域,这个区域用来存放捕获内核。当生产内核在运行过程中遇到崩溃等问题时,Kdump会通过Kexec机制自动启动捕获内核,跳过BIOS,以免破坏了生产内核的内存,然后再把生产内核的完整信息(包括CPU寄存器、栈数据等)转储到指定文件中。接着,使用Crash工具来分析这个转储文件,以快速定位宕机问题。

Kdump和Crash的安装和配置

安装

yum install kexec-toolscrash

安装完成后需要修改grub文件

GRUB_CMDLINE_LINUX="rd.lvm.lv=cl/root rd.lvm.lv=cl/swap crashkernel=512M"

给捕获内核预留512MM内存。
重新生成grub配置文件,是配置生效。

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

开启Kdump服务

systemctl start kdump.service	//启动
systemctl enable kdump.service	//设置开机启动

使用service kdump status可以查看服务状态

快速测试

echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

如果配置正确,上述命令会让系统快速启动并且启动捕获内核进行转储。
转储完成会自动切换会生产内核。在进入生产内核中,查看/var/crash目录中是否生成对应coredump目录。
目录包含vmcore和vmore-dmesg.txt两个文件,其中vmcore是捕获内核转储文件,另一个是生产内核发生崩溃时生成的内核日志信息。

在使用Crash工具进行分析之前,需要安装生产内核对应的调试信息的内核符号表。可以通过如下方式来安装。添加一个调试信息的源。在/etc/yum.repos.d/目录下新建一个文件,如CentOS-Debug.repo,并在文件中编写:

</etc/yum.repos.d/CentOS-Debug.repo>

#Debug Info
[debug]
name=CentOS-$releasever - DebugInfo
baseurl=****debuginfo.centos***/$releasever/$basearch/
gpgcheck=0
enabled=1

接下来安装kernel-debuginfo软件包

yum install -y kernel-debuginfo-$(uname -r)

安装完成之后,带调试符号信息的内核在/usr/lib/debug/lib/modules/目录下。打来Crash工具进行分析:

crash [vmcore] [vmlinux]

vmcore:转储的内核文件,通常在/var/crash目录下
vmlinux:带调试内核符号信息的内核映像,通常在/usr/lib/debug/lib/modules/目录下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值