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…
仅当您因为 fadump
配置而增加默认 initramfs
大小时,系统才是可恢复的。
有关恢复系统的临时解决方案方法的详情,请参考 GRUB 内存不足(OOM)中的系统引导结束 文章。
流程
-
安装和配置
kdump
。 启用
fadump=on
内核选项:# grubby --update-kernel=ALL --args="fadump=on"
可选:如果要指定保留引导内存而不是使用默认值,请启用
crashkernel=xxM
选项,其中xx
是以 MB 为单位所需的内存量:# grubby --update-kernel=ALL --args="crashkernel=xxM fadump=on"
重要当指定引导选项时,在运行前测试所有引导选项。如果
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
警告特别是,请确保在
kdump
后系统不会重启。如果系统在kdump
保存vmcore
文件失败后重启,则无法调用sadump
。适当地将
/etc/kdump.conf
中的failure_action
参数设置为halt
或shell
。failure_action shell
其它资源
- FUJITSU Server PRIMEQUEST 2000 系列安装手册