suse 下部署kdump

kdump 是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。

测试操作系统:suse10 SP3

1、安装kdump所需要的rpm

   ——所需要的包在操作系统盘中都可以找到,无需到处下载

部署kdump工具,需要安装三个rpm包,分别是kernel-kdump-2.6.16.60-0.54.5.x86_64.rpmkdump-0.3.0-8.14.x86_64.rpmkexec-tools-1.101-32.54.10.x86_64.rpm ,依顺序安装即可,其中需要注意kdump包和kexec-tools互为依赖关系,在安装时需要同时制定他们两个包,如下:

2、测试rpm包是否正确安装

执行 rckdump status 或者 service kdump status,如果出现“kdump kernel not loaded”则表示安装成功:

3、为kdump预留内存空间

   在配置预留空间内存时,可以参考以下表格:

 suse 10 系统X86X86_64结构,参考以下配置预留表格

 

Memory

crashkernel=

0 - 12 GB

64M@16M

13 - 48 GB

128M@16M

49 - 128 GB

256M@16M

129 - 256 GB

512M@16M








 

如果是suse11 系统X86X86_64结构,参考以下配置预留表格  

Memory

crashkernel=

0 - 12 GB

64M

13 - 48 GB

128M

49 - 128 GB

256M

129 - 256 GB

512M

 

 

 

 

 3、修改/boot/grub/menu.lst文件

/boot/grub/menu.lst文件中找到resume=/dev/system/swap splash=silent showopts这行,然后在本行末尾增加:crashkernel=64M@16M 

注:本机内存为2G,因此crashkernel=64M@16M,实际情况请参考上面的表格。

本部分设置也可以使用suse自带的图形化工具yast,只需要点点鼠标即可,连预留空间都不要输入,我就不赘述了。

4、配置kdump开机自启动

 执行命令:chkconfig kdump on

至此kdump的部署工作已经完成,我们需要重启服务器 让配置生效,执行reboot

5、确认kdump配置是否成功。

执行 rckdump status

显示kdump配置成功。

6kdump的测试

kdump主要就是用来当系统出现内部错误时,可以自动转储错误信息,并自动完成服务器重启,我们测试一下:

执行一下两条命令:

1sync  

2echo c >/proc/sysrq-trigger  -----c”必须小写

执行完第二条命令,系统将会进入死机状态,然后服务器会自动重启。

重启完成后,我们去dump目录查看是否已经正确生成转储文件。

转储的文件位置:/var/log/dump

转储目录正确生成,kdump配置成功。

 博文最下面的附件是suse关于kdump官方文档描述,可以下载下载下来看看。

另有关于kdump的系统介绍,大家可以去了解:

http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/

 

 

你可能感兴趣的:(linux,SuSE,kdump,内核BUG,内核转储)