3.12. 为 Microsoft Azure 实例配置 kdump
如果在 RHEL 实例中发生内核崩溃,您可以使用 kdump 服务来确定崩溃的原因。如果您的实例内核意外终止时 kdump 会被正确配置,kdump 会生成转储文件,称为崩溃转储或 vmcore 文件。然后,您可以分析该文件以查找崩溃发生的原因并调试您的系统。
要使 kdump 在 Microsoft Azure 实例上工作,您可能需要调整 kdump 保留内存和 vmcore 目标以适应虚拟机大小和 RHEL 版本。
先决条件
您可以使用支持
kdump的 Microsoft Azure 环境:- Standard_DS2_v2 VM
- 标准 NV16as v4
- Standard M416-208s v2
- Standard M416ms v2
-
您在系统中具有
root权限。 -
您的系统满足
kdump配置和目标的要求。详情请查看支持的 kdump 配置和目标。
流程
确定在您的系统中安装了
kdump和其他必要的软件包。dnf install kexec-tools
# dnf install kexec-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证崩溃转储文件的默认位置是否在
kdump配置文件中设置,并且/var/crash文件是否可用。grep -v "#" /etc/kdump.conf
# grep -v "#" /etc/kdump.conf path /var/crash core_collector makedumpfile -l --message-level 7 -d 31Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据 RHEL 虚拟机(VM)实例的大小和版本,决定是否需要一个具有更多可用空间的
vmcore目标,如/mnt/crash。为此,请使用下表。Expand 表 3.4. 在 Azure 上使用 GEN2 虚拟机 测试的虚拟机大小 RHEL 版本 标准 DS1 v2 (1 vCPU, 3.5GiB) 标准 NV16as v4 (16 vCPU, 56 GiB) Standard M416-208s v2 (208 vCPU, 5700 GiB) 标准 M416ms v2 (416 vCPU, 11400 GiB) RHEL 8.3 - RHEL 8.6
default
default
目标
目标
RHEL 8.7 - RHEL 8.9
default
default
目标
目标 + 内存
-
Default 表示
kdump使用默认内存和默认kdump目标可以正常工作。默认kdump目标为/var/crash。 -
target 表示
kdump可以与默认内存按预期工作。但是,您可能需要分配具有更多可用空间的目标。 -
target + Memory 表示
kdump需要的内存超过默认内存,以及具有更多可用空间的目标。
-
Default 表示
如果您的实例需要它,分配一个具有更多可用空间的目标,如
/mnt/crash。为此,请编辑/etc/kdump.conf文件并替换默认路径。sed s/"path /var/crash"/"path /mnt/crash"
$ sed s/"path /var/crash"/"path /mnt/crash"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选项 path
/mnt/crash代表kdump保存崩溃转储文件的文件系统的路径。有关更多选项,比如将崩溃转储文件写入不同的分区,直接写入设备或将其保存到远程机器中,请参阅配置 kdump 目标。
如果您的实例需要它,请将崩溃内核大小增加到足够大小以便
kdump通过添加相应的引导参数来捕获vmcore。例如,对于标准 M416-208s v2 虚拟机,足够大小为 512 MB,因此引导参数应为
crashkernel=512M。打开 GRUB 配置文件,并将
crashkernel=512M添加到引导参数行中。vi /etc/default/grub
# vi /etc/default/grub GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300 crashkernel=512M"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 GRUB 配置文件。
grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 重启虚拟机,为虚拟机分配单独的内核崩溃内存。
验证
确保
kdump处于活跃状态且正在运行。Copy to Clipboard Copied! Toggle word wrap Toggle overflow