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 系列安装手册。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.