41.10. 固件支持的转储机制


固件支持的转储 (fadump) 是一个转储捕获机制,作为 IBM POWER 系统中 kdump 机制的替代选择。kexeckdump 机制可用于在 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)中的系统引导结束 文章。

流程

  1. 安装和配置 kdump
  2. 启用 fadump=on 内核选项:

    # grubby --update-kernel=ALL --args="fadump=on"
  3. 可选:如果要指定保留引导内存而不是使用默认值,请启用 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

流程

  1. /etc/sysctl.conf 文件中添加或编辑以下行,以确保 sadumpkdump 按预期启动:

    kernel.panic=0
    kernel.unknown_nmi_panic=1
    警告

    特别是,请确保在 kdump 后系统不会重启。如果系统在 kdump 保存 vmcore 文件失败后重启,则无法调用 sadump

  2. 适当地将 /etc/kdump.conf 中的 failure_action 参数设置为 haltshell

    failure_action shell

其它资源

  • FUJITSU Server PRIMEQUEST 2000 系列安装手册
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.