Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.5. 固件支持的转储机制

7.5.1. 固件支持的转储案例

kexeckdump 机制是在 AMD64 和 Intel 64 系统中捕获内核转储的可靠且可靠的方法。但是,一些历史较长的硬件(尤其是小型和大型机系统)使我们能够利用板载固件隔离内存区域,并防止意外覆盖对崩溃分析很重要的数据。

本章论述了一些可用的固件支持的转储方法,以及它们如何与 Red Hat Enterprise Linux 集成。

7.5.2. 在 IBM PowerPC 硬件中使用 fadump

固件辅助转储(fadump)是 IBM PowerPC LPARS 上提供的 kexec-kdump 的可靠替代方案。它从完全重设的系统捕获 vmcore,其 PCI 和 I/O 设备重新初始化。虽然这种机制使用固件在崩溃时保留内存,但它会重复使用 kdump 用户空间脚本来保存 vmcore"。

为实现这一目标,fadump 注册了系统固件发生崩溃时必须保留的内存区域。除了引导内存、系统寄存器和硬件页表条目(PTE)外,这些区域包含所有系统内存内容。

有关 fadump 机制(包括针对 PowerPC 重置硬件的方法)的详情,请查看 /usr/share/doc/kexec-tools-X.y.z/fadump-howto.txt,其中 "X.y.z" 与您的系统上安装的 kexec-tools 版本号对应。

注意

未保留的内存区域和称为 引导内存 的区域是崩溃事件后成功启动内核所需的 RAM 量。默认情况下,引导内存大小为 256MB 或系统 RAM 总量的 5%,以较大者为准。

kexec-initiated 事件不同,fadump 进程使用 production 内核恢复崩溃转储。在崩溃后引导时,PowerPC 硬件使设备节点 /proc/device-tree/rtas/ibm,kernel-dump 可供 procfs 使用,而 procfs 会检查 fadump-aware kdump 脚本以保存 vmcore。完成此操作后,系统将完全重启。

启用 fadump

  1. 安装和配置 kdump,如 第 7.2 节 “安装和配置 kdump” 所述。
  2. /etc/default/grub 中的 GRUB_CMDLINE_LINUX 行中添加 fadump=on

    GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhgb quiet fadump=on"
  3. (可选)如果要指定保留引导内存而不是接受默认值,请在 /etc/default/grub 中将 crashkernel=xxM 配置为 GRUB_CMDLINE_LINUX,其中 xx 是以 MB 为单位所需的内存量:

    GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=xxM rd.lvm.lv=rhel/root rhgb quiet fadump=on"
重要

与所有引导选项一样,强烈建议您在需要前测试配置。如果您在从崩溃内核引导时观察到内存不足(OOM)错误,请提高 crashkernel= 中指定的值,直到崩溃内核可以完全引导。在本例中可能会需要进行一些不同的尝试。

7.5.3. IBM Z 支持的固件转储方法

IBM Z 上有两个固件支持的转储机制。它们是独立的 DumpVMDUMP

这些系统中支持并使用 kdump 基础架构,来自 Red Hat Enterprise Linux 的配置包括在 第 7.2 节 “安装和配置 kdump” 中。但是,使用固件支持的方法之一 IBM Z 硬件可能有一些优点。

单机转储(SADMP)机制从系统控制台启动和控制,必须存储在 IPL 可引导设备中。

与 SADMP 类似,是 VMDUMP。此工具也从系统控制台启动,但具有从硬件检索生成的转储并将其复制到系统以进行分析的机制。

这些方法的一个优点(与其他基于硬件的转储机制类似)是可以在 Early Boot 阶段捕获机器的状态(在 kdump 服务启动前)

尽管 VMDUMP 包含将转储文件接收到 Red Hat Enterprise Linux 系统中的机制,但 SADMP 和 VMDUMP 的配置和控制都是从 IBM Z 硬件控制台管理的。

IBM 在 VMDUMP 文章中详细讨论 SADMP、独立转储程序文章和 VMDUMP

IBM 还具有用于使用 Red Hat Enterprise Linux 7 中使用 Dump Tools on Red Hat Enterprise Linux 的转储工具的文档集。

7.5.4. 在 Fujitsu PRIMEQUEST 系统中使用 sadump

Fujitsu sadump 机制旨在在 kdump 无法成功完成时提供回退转储捕获。

sad ump 进程是从系统 ManageMent Board(MMB)接口手动调用的。

使用这个系统,为 X86_64 服务器配置 kdump,然后执行以下步骤启用 sad ump

/etc/sysctl.conf 中添加或编辑以下行,以确保 sad umpkdump 启动如预期。

kernel.panic=0
kernel.unknown_nmi_panic=1

除以上所述外,还必须在 /etc/kdump.conf 中添加一些选项,以确保 kdump 对 sadump 的行为正确。

特别是,请确保在 kdump 后系统不会重启。如果系统在 kdump 无法保存内核后重启,则您没有机会调用 sad ump

/etc/kdump.conf 中的默认 操作设置为 haltshell 以实现此目的。

default shell
重要

有关为 sad ump 配置硬件的详情,请查看 FUJITSU Server PRIMEQUEST 2000 系列安装手册。