Red Hat Training

A Red Hat training course is available for RHEL 8

第 8 章 转储崩溃的内核以便稍后进行分析

要分析系统崩溃的原因,可以使用 kdump 服务保存系统内存内容,以便稍后进行分析。本节概述了 kdump 以及使用 RHEL web 控制台或使用对应的 RHEL 系统角色配置 kdump 的信息。

8.1. kdump

kdump 提供崩溃转储机制的服务。该服务可让您保存系统内存内容,以便稍后进行分析。kdump 使用 kexec 系统调用在没有重启的情况下引导至第二个内核(capture kernel),然后捕获崩溃内核的内存( crash dumpvmcore)并保存它。这个第二个内核位于系统内存保留的一部分。

重要

内核崩溃转储可能会是系统失败时唯一可用的信息(关键错误)。因此,在关键任务环境中确保 kdump 操作正常运行非常重要。红帽建议系统管理员在正常内核更新周期内定期更新和测试 kexec-tools。这在部署了新内核功能时尤为重要。

8.2. 在 web 控制台中配置 kdump 内存用量和目标位置

下面的步骤显示如何使用 Red Hat Enterprise Linux Web 控制台界面中的 Kernel Dump 标签页配置为 kdump 内核保留的内存量。此流程还描述了如何指定 vmcore 转储文件的目标位置以及如何测试您的配置。

流程

  1. 打开 Kernel Dump 标签并启动 kdump 服务。
  2. 使用命令行配置 kdump 内存用量。
  3. Crash dump location 选项旁的链接。

    Web 控制台初始界面
  4. 从下拉菜单中选择 Local Filesystem 选项,并指定您要保存转储的目录。

    Web 控制台 crashdump 目标
    • 或者,从下拉菜单中选择 Remote over SSH 选项,使用 SSH 协议将该 vmcore 发送到远程机器。

      使用远程机器地址、ssh 密钥位置和目标目录填充 Serverssh keyDirectory 字段。

    • 另一个选择是从下拉菜单中选择 Remote over NFS 选项并填写 Mount 字段来使用 NFS 协议将 vmcore 发送到远程机器。

      注意

      选择 Compression 复选框来缩小 vmcore 文件的大小。

  5. 崩溃内核以测试您的配置。

    Web 控制台测试 kdump 配置
    警告

    这一步会破坏内核的执行,并导致系统崩溃和数据丢失。

8.3. kdump 使用 RHEL 系统角色

RHEL 系统角色是 Ansible 角色和模块的集合,可为远程管理多个 RHEL 系统提供一致的配置界面。kdump 角色可让您在多个系统中设置基本内核转储参数。

警告

通过替换 /etc/kdump.conf 文件,kdump 角色完全替换了受管主机的 kdump 配置。另外,如果应用了 kdump 角色,则之前的所有 kdump 设置也会被替换,即使它们没有被角色变量指定,也会替换 /etc/sysconfig/kdump 文件。

以下示例 playbook 演示了如何应用 kdump 系统角色来设置崩溃转储文件的位置:

---
- hosts: kdump-test
  vars:
    kdump_path: /var/crash
  roles:
    - rhel-system-roles.kdump

有关 kdump 角色变量的详细参考,安装 rhel-system-roles 软件包,并查看 /usr/share/doc/rhel-system-roles/kdump 目录中的 README.mdREADME.html 文件。

8.4. 其它资源