3.14. 为 Microsoft Azure 实例配置 kdump


如果 RHEL 实例中发生了内核崩溃,您可以使用 kdump 服务确定其原因。如果在内核实例意外终止时正确配置了 kdumpkdump 会生成一个转储文件,称为崩溃转储或 vmcore 文件。对于调试,您可以分析文件,以发现发生崩溃的原因。

要使 kdump 在 Microsoft Azure 实例上工作,您可能需要调整 kdump 保留的内存和 vmcore 目标,以适应虚拟机大小和 RHEL 版本。

先决条件

  • 您在使用支持 kdump 的 Microsoft Azure 环境中的虚拟机:

    • Standard_DS2_v2
    • 标准 NV16as v4
    • 标准 M416-208s v2
    • 标准 M416ms v2
  • 您有 root 权限。
  • 您的系统满足 kdump 配置和目标的要求。详情请查看支持的 kdump 配置和目标

流程

  1. 安装 kdump 和其他必要的软件包:

    # dnf install kexec-tools kdump-utils makedumpfile
    Copy to Clipboard Toggle word wrap
  2. 验证崩溃转储文件的默认位置是否在 kdump 配置文件中设置了,以及 /var/crash 文件是否可用:

    # grep -v "#" /etc/kdump.conf
    
    path /var/crash
    core_collector makedumpfile -l --message-level 7 -d 31
    Copy to Clipboard Toggle word wrap
  3. 根据 RHEL 虚拟机大小和版本,检查您是否需要一个具有更多可用空间的 vmcore 目标,如 /mnt/crash

    Expand
    表 3.3. 已在 Azure 上使用 GEN2 虚拟机 测试了的虚拟机大小
    RHEL 版本标准 DS1 v2 (1 vCPU, 3.5GiB)标准 NV16as v4 (16 vCPU, 56 GiB)标准 M416-208s v2 (208 vCPU, 5700 GiB)标准 M416ms v2 (416 vCPU, 11400 GiB)

    RHEL 9.4 - RHEL 10

    default

    default

    目标

    目标

    • Default 表示 kdump 使用默认的内存和默认的 kdump 目标可以正常工作。默认 kdump 目标是 /var/crash 文件。
    • Target 表示 kdump 可以使用默认内存按预期工作。但是,您可能需要分配一个具有更多可用空间的目标。
  4. 要分配一个具有可用空间的目标,如 /mnt/crash,请编辑 /etc/kdump.conf 文件,并替换默认路径:

    $ sed s/"path /var/crash"/"path /mnt/crash"
    Copy to Clipboard Toggle word wrap

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

    有关详情,如将崩溃转储文件写到不同的分区、直接写到设备或将其保存到远程机器,请参阅 配置 kdump 目标

  5. 如果实例需要,通过添加相对引导参数,将崩溃内核大小增加到足够大小,以便 kdump 可以捕获 vmcore

    例如,对于标准 M416-208s v2 虚拟机,足够的大小为 512 MB,因此引导参数应为 crashkernel=512M

    1. 打开 GRUB 配置文件,并将 crashkernel=512M 添加到引导参数行中:

      # vi /etc/default/grub
      
      GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300 crashkernel=512M"
      Copy to Clipboard Toggle word wrap
    2. 更新 GRUB 配置文件:

      # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
      Copy to Clipboard Toggle word wrap
  6. 重启虚拟机,来向虚拟机分配单独的内核崩溃内存。

验证

  • 确保 kdump 处于活跃状态且正在运行。

    # systemctl status kdump
    ● kdump.service - Crash recovery kernel arming
       Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor prese>
       Active: active (exited) since Fri 2024-02-09 10:50:18 CET; 1h 20min ago
      Process: 1252 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCES>
     Main PID: 1252 (code=exited, status=0/SUCCESS)
        Tasks: 0 (limit: 16975)
       Memory: 512B
       CGroup: /system.slice/kdump.service
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat