Red Hat Training

A Red Hat training course is available for RHEL 8

15.3. 配置 kdump 目标

崩溃转储通常以一个文件形式存储在本地文件系统中,直接写入设备。或者,您可以为崩溃转储进行设置,以通过使用 NFSSSH 协议的网络进行发送。一次只能设置其中一个选项来保留崩溃转储文件。默认行为是将其存储在本地文件系统的 /var/crash/ 目录中。

先决条件

流程

  • 要将崩溃转储文件保存在本地文件系统的 /var/crash/ 目录中,请编辑 /etc/kdump.conf 文件并指定路径:

    path /var/crash

    选项 path /var/crash 代表 kdump 在其中保存崩溃转储文件的文件系统的路径。

    注意
    • 当您在 /etc/kdump.conf 文件中指定转储目标时,路径是相对于指定的转储目标。
    • 当您没有在 /etc/kdump.conf 文件中指定转储目标时,该路径表示根目录的绝对路径。

    根据当前系统中挂载的内容,会自动执行转储目标和调整的转储路径。

    例 15.1. kdump 目标配置

    # grep -v ^# /etc/kdump.conf | grep -v ^$
    ext4 /dev/mapper/vg00-varcrashvol
    path /var/crash
    core_collector makedumpfile -c --message-level 1 -d 31

    此处,转储目标被指定(ext4 /dev/mapper/vg00-varcrashvol),因此在 /var/crash 处挂载。path 选项也被设置为 /var/crash,因此 kdump 会将 vmcore 文件保存在 /var/crash/var/crash 目录中。

  • 要更改要保存崩溃转储的本地目录,请以 root 用户身份编辑 /etc/kdump.conf 配置文件:

    1. #path /var/crash 行的开头删除 hash 符号("#")。
    2. 使用预期的目录路径替换该值。例如:

      path /usr/local/cores
      重要

      在 RHEL 8 中,当 kdump systemd 服务启动时,使用 path 指令定义为 kdump 目标的目录必须存在,以避免失败。这个行为与 RHEL 之前的版本不同,其中如果服务启动时目录不存在,则会自动创建该目录。

  • 要将文件写入不同的分区,请编辑 /etc/kdump.conf 配置文件:

    1. 根据您的选择,从 #ext4 行的开头删除 hash 符号("#")。

      • 设备名称( #ext4 /dev/vg/lv_kdump 行)
      • 文件系统标签( #ext4 LABEL=/boot 行)
      • UUID( #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 行)
    2. 将文件系统类型和设备名称、标签或 UUID 改为所需的值。指定 UUID 值的正确语法是 UUID="correct-uuid"UUID=correct-uuid。例如:

      ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
      重要

      建议您使用 LABEL=UUID= 指定存储设备。无法保证 /dev/sda3 等磁盘设备名称在重启后保持一致。

      当您在 IBM Z 硬件上使用 Direct Access Storage Device (DASD)时,请确保在使用 kdump 前,转储设备已在 /etc/dasd.conf 中被正确指定。

  • 要将崩溃转储直接写入设备,请编辑 /etc/kdump.conf 配置文件:

    1. 删除 #raw /dev/vg/lv_kdump 行开头的哈希符号 ("#")。
    2. 使用预期的设备名称替换该值。例如:

      raw /dev/sdb1
  • 要使用 NFS 协议将崩溃转储保存到远程机器上:

    1. 删除 #nfs my.server.com:/export/tmp 行开头的哈希符号 ("#")。
    2. 使用有效的主机名和目录路径替换该值。例如:

      nfs penguin.example.com:/export/cores
  • 要使用 SSH 协议将崩溃转储保存到远程机器上:

    1. #ssh user@my.server.com 行的开头删除 hash 符号("#")。
    2. 使用有效的用户名和密码替换该值。
    3. 在配置中包含 SSH 密钥。

      • #sshkey /root/.ssh/kdump_id_rsa 行的开头删除哈希符号。
      • 将该值改为您要转储的服务器中有效密钥的位置。例如:

        ssh john@penguin.example.com
        sshkey /root/.ssh/mykey