kdump 是一种先进的基于 kexec 的内核崩溃转储机制。
当系统崩溃时,kdump 使用 kexec 启动到第二个内核,这个内核通常被称为捕获内核。它以较小的内存启动,用于捕获转储镜像。
第一个内核会保留一部分内存给第二个内核启动使用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留,这是内核崩溃转储的本质。
kdump 需要两个不同目的的内核:生产内核和捕获内核。生产内核是捕获内核服务的对象,当生产内核崩溃时,捕获内核会启动起来,与相应的 ramdisk 一起组建一个微环境,用以对生产内核下的内存进行收集和转存。
kdump 的执行流程大致如下(不同系统可能会有一些差异):首先系统正常运行着生产内核;当生产内核发生崩溃时,kdump 机制通过 kexec 快速启动捕获内核;捕获内核启动后,会运行特定的 init 程序,进行内存转储等操作;完成内存转储后,系统自动重启。
要使用 kdump,一般需要进行相关的安装和配置,步骤通常包括:
1. 安装相关包,例如 kexec-tools、kernel-debuginfo 等(不同的操作系统发行版可能有所不同)。
2. 进行 grub 内核配置,在引导配置文件中加入 crashkernel 部分,指定为 crashkernel 预留的内存大小和起始位置等参数。
3. 启动 kdump 服务(不同系统启动服务的方式可能不同,如在 CentOS 6.x 上使用/etc/init.d/kdump start 命令,而 CentOS 7.x 上使用 systemctl 相关命令)。
在配置 kdump 时,需要注意 crashkernel 参数的设置,要根据实际物理内存大小进行灵活调整,以确保第二个内核能够成功启动。同时,配置完成后可能需要重启系统使配置生效。
当系统崩溃时,kdump 会在指定位置生成转储文件(例如/var/crash 目录),可以使用相关工具(如 crash 命令)对该转储文件进行分析,以帮助找出系统崩溃的原因。
如果你想在特定的操作系统上详细了解和配置 kdump,可以查阅该操作系统的相关文档或技术资料,以获取更准确的指导。
在创建测试实验的虚拟机的时候建议关闭这个服务
因为KDUMP(内核崩溃转储机制),崩了重装系统呗,所以这里干脆直接禁用。