Menu Close
第 11 章 在命令行中配置 kdump
在系统引导过程中为 kdump
保留内存。内存大小在系统的 Grand Unified Bootloader (GRUB) 2 配置文件中配置。内存大小取决于配置文件中指定的 crashkernel=
值以及系统物理内存的大小。
11.1. 配置 kdump 内存用量
kexec-tools
软件包维护默认的 crashkernel
内存保留值。kdump
服务使用默认值为每个内核保留 crashkernel
内存。
kdump
自动内存分配根据系统硬件架构和可用内存大小而有所不同。例如,在 AMD 和 Intel 64 位构架中,crashkernel
默认参数仅在可用内存大于 1 GB 时有效。默认情况下,kexec-tools
在 AMD64 和 Intel 64 位构架中配置以下内存保留:
crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M
崩溃内核的内存要求可能会因硬件和机器规格而异。如果默认 crashkernel
值无法在您的系统中工作,您可以运行 kdumpctl estimate
命令并查询 rough estimate 的值,而不触发崩溃。估算的 crashkernel
值可能并不准确,可作为设置适当的 crashkernel
值的参考。
RHEL 9 及更新的版本不再支持引导命令行中的 crashkernel=auto
选项。
先决条件
- root 权限
-
实现了配置和目标的
kdump
要求。 -
在 IBM Z 系统中,确保安装了
zipl
工具。
流程
为
crashkernel
配置默认值:# kdumpctl reset-crashkernel --kernel=ALL
(可选)要使用自定义
crashkernel
值:配置所需的内存保留:
crashkernel=192M
如果系统内存总量为 1 GB 或更高版本,且小于 4 GB,则示例保留 192 MB 内存。如果内存量大于 4 GB,则为
kdump
保留 256 MB。(可选) 偏移保留内存:
有些系统需要使用特定的固定偏移保留内存,因为崩溃内核保留非常早,并希望保留一些区以供特殊使用。如果设置了偏移,则保留内存从此偏移开始。要偏移保留的内存,请使用以下语法:
crashkernel=192M@16M
上面的示例保留以 16 MB 开始的 192 MB 内存(物理地址 0x01000000)。如果偏移参数设为 0 或完全省略,
kdump
会自动偏移保留内存。您还可以在设置变量内存保留时偏移内存,方法是将偏移指定为最后一个值。例如:crashkernel=1G-4G:192M,2G-64G:256M@16M
。
更新引导装载程序配置:
# grubby --update-kernel ALL --args "crashkernel=<CUSTOM-VALUE>”
在使用 zIPL 引导装载程序的 IBM Z 系统中,命令为每个
/boot/loader/entries/<ENTRY>.conf
文件添加新的内核参数。在 IBM Z 系统中,要更新引导菜单,在不指定选项的情况下执行
zipl
命令:# zipl
重启以使更改生效:
# reboot
验证
激活
sysrq
键以引导到kdump
内核:# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
这会强制 Linux 内核崩溃,并将
address-YYYY-MM-DD-HH:MM:SS/vmcore
文件复制到配置文件中指定的目标位置。验证在
/etc/kdump.conf
文件中指定的目标中转储vmcore
文件:$ ls /var/crash/127.0.0.1-2022-01-18-0 /var/crash/127.0.0.1-2022-01-18-05:23:10': kexec-dmesg.log vmcore vmcore-dmesg.txt
在本例中,内核将
vmcore
保存在默认目标目录中(/var/crash/
)。