Red Hat Training

A Red Hat training course is available for RHEL 8

19.2. 转储虚拟机内核

要分析虚拟机(VM)崩溃或出现故障的原因,您可以将虚拟机内核转储到磁盘上的文件,以便稍后分析和诊断。

本节提供了简要的 内核转储介绍 ,并解释了如何将 虚拟机内核转储 到一个特定的文件。

19.2.1. 虚拟机内核转储的工作原理

虚拟机(VM)需要许多运行的进程来准确且高效地工作。在某些情况下,运行的虚拟机在使用时可能会意外终止或出现故障。重新启动虚拟机可能会导致数据被重置或丢失,从而难以诊断导致虚拟机崩溃的确切问题。

在这种情况下,您可以在重启虚拟机前使用 virsh dump 工具将虚拟机内核保存(或 转储)到一个文件中。内核转储文件包含虚拟机的原始物理内存镜像,其中包含有关虚拟机的详细信息。此信息可用于手动诊断,或使用 crash 等工具来诊断虚拟机问题。

其它资源

19.2.2. 创建虚拟机内核转储文件

虚拟机(VM)内核转储包含在任何给定的时间有关虚拟机状态的详细信息。此信息与虚拟机的快照类似,可以帮助您在虚拟机出现故障或突然关闭时检测问题。

先决条件

  • 请确定您有足够的磁盘空间保存该文件。请注意,虚拟机消耗的空间取决于分配给虚拟机的 RAM 量。

流程

  • 使用 virsh dump 工具。

    例如,以下命令将 lander1 虚拟机的内核、内存和 CPU 通用寄存器文件转储到 /core/file 目录中的 gargantua.file

    # virsh dump lander1 /core/file/gargantua.file --memory-only
    Domain 'lander1' dumped to /core/file/gargantua.file
重要

crash 工具不再支持 virsh dump 命令的默认文件格式。要使用 crash 分析内核转储文件,您必须使用 --memory-only 选项创建该文件。

另外,在创建内核转储文件时,必须使用 --memory-only 选项将其附加到红帽支持问题单中。

故障排除

如果 virsh dump 命令失败并显示 System is deadlocked on memory 错误,请确保为内核转储文件分配了足够的内存。要做到这一点,请使用以下 crashkernel 选项值。或者,请勿使用 crashkernel,它会自动分配内核转储内存。

crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M

其它资源