41.10. 固件支持的转储机制
固件支持的转储 (fadump) 是一个转储捕获机制,作为 IBM POWER 系统中 kdump 机制的替代选择。kexec 和 kdump 机制可用于在 AMD64 和 Intel 64 系统中捕获内核转储。但是,一些硬件(如小型系统和大型机计算机)使用板上固件来隔离内存区域,并防止意外覆盖对分析崩溃很重要的数据。fadump 工具针对 fadump 机制及其与 IBM POWER 系统上 RHEL 的集成进行了优化。
41.10.1. IBM PowerPC 硬件支持转储固件 复制链接链接已复制到粘贴板!
fadump 实用程序从带有 PCI 和 I/O 设备的完全重设系统中捕获 vmcore 文件。这种机制使用固件在崩溃期间保留内存区域,然后重复使用 kdump 用户空间脚本保存 vmcore 文件。内存区域由所有系统内存内容组成,但引导内存、系统注册和硬件页面表条目 (PTE) 除外。
fadump 机制通过重新引导分区并使用新内核转储之前内核崩溃中的数据,提供比传统转储类型的更高可靠性。fadump 需要一个基于 IBM POWER6 处理器或更高版本的硬件平台。
有关 fadump 机制的详情,包括针对 PowerPC 重置硬件的方法,请查看 /usr/share/doc/kexec-tools/fadump-howto.txt 文件。
未保留的内存区域(称为引导内存)是在崩溃事件后成功引导内核所需的 RAM 量。默认情况下,引导内存大小为 256MB 或系统 RAM 总量的 5%,以较大者为准。
与 kexec-initiated 事件不同,fadump 机制使用 production 内核恢复崩溃转储。崩溃后引导时,PowerPC 硬件使设备节点 /proc/device-tree/rtas/ibm.kernel-dump 可供 proc 文件系统 (procfs) 使用。fadump-aware kdump 脚本,检查存储的 vmcore,然后完全完成系统重启。
41.10.2. 启用固件支持的转储机制 复制链接链接已复制到粘贴板!
您可以通过启用固件支持的转储(fadump)机制来增强 IBM POWER 系统的崩溃转储功能。
在安全引导环境中,GRUB 引导装载程序分配一个引导内存区域,称为 Real Mode Area (RMA)。RMA 有 512 MB 大小的内存,在引导组件之间分配。如果组件超过其大小分配,则 GRUB 会失败,并显示内存不足(OOM)错误。
不要在 RHEL 8.7 和 8.6 版本的安全引导环境中启用固件支持的转储(fadump)机制。GRUB2 引导装载程序失败,并显示以下错误:
error: ../../grub-core/kern/mm.c:376:out of memory. Press any key to continue…
error: ../../grub-core/kern/mm.c:376:out of memory.
Press any key to continue…
仅当您因为 fadump 配置而增加默认 initramfs 大小时,系统才是可恢复的。
有关恢复系统的临时解决方案方法的详情,请参考 GRUB 内存不足(OOM)中的系统引导结束 文章。
流程
-
安装和配置
kdump。 启用
fadump=on内核选项:grubby --update-kernel=ALL --args="fadump=on"
# grubby --update-kernel=ALL --args="fadump=on"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果要指定保留引导内存而不是使用默认值,请启用
crashkernel=xxM选项,其中xx是以 MB 为单位所需的内存量:grubby --update-kernel=ALL --args="crashkernel=xxM fadump=on"
# grubby --update-kernel=ALL --args="crashkernel=xxM fadump=on"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要当指定引导选项时,在运行前测试所有引导选项。如果
kdump内核无法引导,请逐渐增加crashkernel=参数中指定的值来设置适当的值。
41.10.3. IBM Z 硬件支持的固件转储机制 复制链接链接已复制到粘贴板!
IBM Z 系统支持以下固件支持的转储机制:
-
独立转储 (sadump) -
VMDUMP
IBM Z 系统支持并使用 kdump 基础架构。但是,使用 IBM Z 的固件辅助转储(fadump)方法之一有以下优点:
-
系统控制台启动并控制
sadump机制,并将其存储在IPL可引导设备上。 -
VMDUMP机制与sadump类似。此工具也从系统控制台启动,但会从硬件检索生成的转储并将其复制到系统以进行分析。 -
这些方法(与其他基于硬件的转储机制类似)能够在
kdump服务启动前捕获机器在早期启动阶段的状态。 -
虽然
VMDUMP包含一种将转储文件接收到 Red Hat Enterprise Linux 系统的机制,但VMDUMP的配置和控制是从 IBM Z 硬件控制台进行管理的。
41.10.4. 在 Fujitsu PRIMEQUEST 系统中使用 sadump 复制链接链接已复制到粘贴板!
当 kdump 无法成功完成时,Fujitsu sadump 机制提供了一种 回退 转储捕获。您可以从系统管理板(MMB)接口手动调用 sadump。使用 MMB,为 Intel 64 或 AMD64 服务器配置 kdump,然后继续启用 sadump。
流程
在
/etc/sysctl.conf文件中添加或编辑以下行,以确保sadump的kdump按预期启动:kernel.panic=0 kernel.unknown_nmi_panic=1
kernel.panic=0 kernel.unknown_nmi_panic=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告特别是,请确保在
kdump后系统不会重启。如果系统在kdump保存vmcore文件失败后重启,则无法调用sadump。适当地将
/etc/kdump.conf中的failure_action参数设置为halt或shell。failure_action shell
failure_action shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow