CentOS7配置kdump
1.什么是kdump?
kdump 是一种的基于 kexec 的内核崩溃转储机制,类似飞机的黑匣子,系统一但崩溃,内核无法正常记录信息了,这时kdump将转入带第二个捕获内核,将第二个内核加载的内存中,对第一个内核的信息进行捕获。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。
kexec是一个快速启动机制,可以通过已经运行的内核,启动另外一个内核不需要经过bios
2. kdump原理?
kdump 需要两个不同目的的内核,生产内核和捕获内核。生产内核是捕获内核服务的对像。捕获内核会在生产内核崩溃时启动起来,与相应的 ramdisk 一起组建一个微环境,用以对生产内核下的内存进行收集和转存。
3 配置kdump
实验环境:CentOS7
实验内核:linux-3.10.0-514.el7.x86_64
3.1 安装kexec-tools
使用kdump服务,必须要用到kexec-tools工具包。
1 |
|
安装完成之后可以通过kexec -version查看kexec的版本。
3.2 配置kdump kernel
需要为kdump kernel配置内存区域,kdump要求系统正常使用时,不能使用kdump kernel所占用的内存。
1.修改grub文件
1 |
|
需要将GRUB_CMDLINE_LINUX=”crashkernel=auto…”中的auto修改为128M。一般设为128M或256M。
2.更新grub配置
只要更改了grub文件,都需要更改grub配置。
1 |
|
3.重启系统
1 |
|
3.3 修改kdump默认配置
1 |
|
其中,需要注意的三行内容是
1 |
|
3.4 开启kdump服务
1 |
|
3.5 测试kdump是否开启
1.检查kdump开启成功
1 |
|
如下所示,表示开启成功
kdump开启成功
2.手动触发crash
1 |
|
如果配置成功,系统将自动重启,重新进入系统,可以看到/var/crash文件夹下生成了相应文件,是一个以生成coredump日期为文件名的文件,如图所示:
CentOS7配置kdump
https://johnnysxy.github.io/2023/05/29/CentOS7配置kdump/