5.4. 操作系统问题故障排除

OpenShift Container Platform 在 RHCOS 上运行。您可以按照以下步骤排除与操作系统相关的问题。

5.4.1. 检查内核崩溃

5.4.1.1. 启用 kdump

kdump 服务包括在 kexec-tools 中,它提供了一个崩溃转储机制。您可以使用这个服务保存系统内存内容,以便稍后进行分析。

kdump 服务只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

RHCOS 附带 kexec-tools,但需要手动配置才能启用 kdump

流程

执行以下步骤在 RHCOS 上启用 kdump

  1. 要在第一次内核引导的过程中为崩溃内核保留内存,请输入以下命令提供内核参数:

    # rpm-ostree kargs --append='crashkernel=256M'
  2. 可选: 要通过网络写入崩溃转储,或将其写入其他位置而不是默认的本地 /var/crash 位置,请编辑 /etc/kdump.conf 配置文件。

    注意

    使用 LUKS 时需要网络转储。kdump 不支持 LUKS 加密设备的本地崩溃转储。

    有关配置 kdump 服务的详情,请查看 /etc/sysconfig/kdump/etc/kdump.conf 和 kdump.conf 手册页中的注释。有关配置转储目标的详情,请参考 RHEL kdump 文档

  3. 启用 kdump systemd 服务。

    # systemctl enable kdump.service
  4. 重启您的系统。

    # systemctl reboot
  5. 确认 kdump 已加载了崩溃内核,检查 kdump.service 已成功启动并退出,cat /sys/kernel/kexec_crash_loaded 输出 1

5.4.1.2. 在第 1 天启用 kdump

kdump 服务旨在为每个节点启用调试内核问题。由于启用了 kdump 会增加成本,且这些成本会与启用了 kdump 的额外节点一起积累,因此建议只在需要的节点中启用 kdump。在每个节点中启用 kdump 的潜在成本包括:

  • 因为为崩溃内核保留了内存,所以可用 RAM 较少。
  • 内核转储内核时节点不可用。
  • 用于存储崩溃转储的额外存储空间。
  • 因为 kdump 服务只是一个 技术预览,所以它并不是生产环境就绪的。

如果您了解启用 kdump 服务所带来的影响,则可以根据具体情况在集群范围内启用 kdump。虽然当前还不支持特定于具体机器的机器配置,但您可以在第 1 天通过 MachineConfig 对象中的 systemd 单元来执行前面的步骤,并在集群的所有节点上启用 kdump。您可以创建 MachineConfig 对象,并将该对象注入 Ignition 在集群设置过程中使用的清单文件集合中。如需有关如何使用 Ignition 配置的更多信息和示例,请参阅 Installing → Installation configuration 部分中的"自定义节点"。

5.4.1.3. 测试 kdump 配置

有关 kdump 的信息,请参阅 RHEL 文档中的测试 kdump 配置部分。

5.4.1.4. 分析内核转储

如需 kdump 的信息,请参阅 RHEL 文档中的分析内核转储的部分。

其他资源