RHEL6: 安装并启用Kdump

参考文档

1. The kdump Crash Recovery Service https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-kdump.html
2. 深入探索 Kdump,第 1 部分:带你走进 Kdump 的世界 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/
3. 深入探索 Kdump,第 2 部分: Kdump 图形化配置工具 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump2/
4. 深入探索 Kdump,第 3 部分: Kdump 原理探秘 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump3/
5. 深入探索 Kdump,第 4 部分: kdump 的亲密战友 crash http://www.ibm.com/developerworks/cn/linux/l-cn-kdump4/

Kdump、vmcore是什么?

Kdump是一套内核崩溃转储机制。当遇到Kernel Panic的时候,它能将当前内核内存转储出来,转储出来的内存文件叫vmcore.

简单地理解,系统在启动的时候,除了用于正常工作的生产内核,还会启动一个捕获内核(也就是“备胎”)。在生产内核正常运行的时候,捕获内核就安安静静地坐着不干活;当生产内核Panic,捕获内核就会出来,帮生产内核收尸,这条尸就是vmcore。

配置kdump

1.备份重要数据;
2. 安装kexec-tools;

[root@r6s0 ~]# yum install kexec-tools

3. 修改grub.conf,在kernel的启动参数中加入crashkernel=128M,如

kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M

4. 设置开机启动kdump;

[root@r6s0 ~]# chkconfig kdump on

5. 重启计算机;

6. 检查Kdump是否operational.

[root@r6s0 ~]# /etc/init.d/kdump status
Kdump is operational

7. kdump的配置文件是/etc/kdump.conf , 默认不用修改。

测试:手动触发kdump

尝试手动触发kdump,看是否能转储出vmcore。

[root@r6s0 ~]# echo c > /proc/sysrq-trigger

然后就kernel-panic了,自动重启后应该能看见vmcore文件。

[root@r6s0 ~]# ls /var/crash/127.0.0.1-2014-12-19-10\:02\:28/
vmcore  vmcore-dmesg.txt