使用硬件 NMI 工具对无响应的主机进行故障排除
search cancel

使用硬件 NMI 工具对无响应的主机进行故障排除

book

Article ID: 342219

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

本文提供有关使用不可屏蔽中断 (NMI) 工具对无响应 VMware ESXi 或 ESX 主机进行故障排除的信息。

如果 ESXi/ESX 主机未在控制台中或通过网络响应交互,并且托管的所有虚拟机都没有响应远程通信,则应该按照此过程操作。有关这些情形的详细信息,请参见 Determining why an ESX/ESXi host does not respond to user interaction at the console (1017135)

如果某个 ESXi/ESX 主机在控制台上有响应,但是无法对其进行远程管理,请参见 Troubleshooting an unresponsive host and multiple Disconnected virtual machines (1019082)

注意:该过程可能导致 ESXi/ESX 主机终止并出现紫色诊断屏幕。如果 ESXi/ESX 主机的响应足以运行虚拟机,在此过程后触发紫色诊断屏幕将突然中断在此 ESXi/ESX 主机上运行的所有虚拟机。

如果显示来源未知的 NMI,请参见 Identifying and addressing Non-Maskable Interrupt events on an ESX/ESXi host (1804)


Symptoms:

免责声明:本文为 Using hardware NMI facilities to troubleshoot unresponsive hosts (1014767) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


Environment

VMware ESX Server 3.5.x
VMware ESXi 4.0.x Embedded
VMware vSphere ESXi 5.0
VMware ESX 4.1.x
VMware ESXi 4.1.x Installable
VMware vSphere ESXi 6.0
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 5.1
VMware vSphere ESXi 5.5
VMware ESX 4.0.x
VMware ESXi 3.5.x Embedded
VMware ESX Server 3.0.x
VMware ESXi 3.5.x Installable
VMware ESXi 4.1.x Embedded

Resolution

NMI 概述

不可屏蔽中断 (NMI) 是一种处理器无法忽略的硬件中断。预留的这些中断类型通常用于非常重要的任务,以及向处理器报告硬件错误。

您可以有意向 CPU 发送 NMI,具体取决于系统的制造商和型号。通过向处理器发送 NMI,会将 CPU 上下文强制切换到注册的不可屏蔽中断句柄。无法忽略(屏蔽)该中断。操作系统可以根据之前的配置处理 NMI。

有意触发的 NMI 有助于突出显示以下内容:

  • CPU 是否能够为中断提供服务。
  • 操作系统进程或任务是否在 CPU 上不断循环。
注意:一些服务器具有 BIOS 或 BMC 选项,只要出现不可屏蔽中断,就会自动重新引导系统。如果出现此类重新引导,则表明硬件操作正确,但是没有提供足够的信息对问题的根本原因进行故障排除。请禁用该选项。

NMI 和 VMware ESXi/ESX

在某些情况下,您可能需要让 ESXi/ESX 主机生成紫色诊断屏幕和核心转储,以进一步对问题进行故障排除。默认情况下,5.0 之前的 ESXi/ESX 主机仅记录 NMI,但是不会终止并显示紫色诊断屏幕。从 ESXi 5.0 开始,主机在默认情况下将终止并显示紫色诊断屏幕。

VMkernel 或服务控制台可以摆脱 CPU 上任何不断循环的进程并记录 NMI。由于每个内核都会收到 NMI,因此可将其配置为通过生成紫色诊断屏幕来响应 NMI。

VMkernel 直接处理 NMI,并生成紫色诊断屏幕或者将 NMI 路由至服务控制台。如果路由至 ESX 服务控制台,则其 Linux 内核可通过触发警告和紫色诊断屏幕来处理 NMI,或者忽略它。

可用于对 NMI 进行其他处理的选项因不同的 VMware ESXi 和 ESX 版本而有所不同:

  • ESXi 5.5:可将 VMkernel 配置为不采取任何操作或以终止并显示紫色诊断屏幕的方式处理 NMI。默认为终止并显示紫色诊断屏幕。
  • ESXi 5.1:可将 VMkernel 配置为不采取任何操作或以终止并显示紫色诊断屏幕的方式处理 NMI。默认为终止并显示紫色诊断屏幕。
  • ESXi 5.0:VMkernel 始终以终止并显示紫色诊断屏幕的方式来处理 NMI。无需进行任何配置。
  • ESXi 4.x:可将 VMkernel 配置为不采取任何操作或以终止并显示紫色诊断屏幕的方式直接处理 NMI。默认为不采取任何操作。
  • ESX 4.x:可将 VMkernel 配置为将 NMI 路由到服务控制台,或以显示紫色诊断屏幕的方式直接进行处理。默认情况下,服务控制台 Linux 内核不采取任何操作,但是可将其配置为终止并显示紫色诊断屏幕。
  • ESX 3.x:VMkernel 始终将 NMI 路由到服务控制台。默认情况下,服务控制台 Linux 内核不采取任何操作,但是可将其配置为终止并显示紫色诊断屏幕。
  • ESXi 3.5:VMkernel 始终不对 NMI 采取任何操作。

如果触发紫色诊断屏幕,会保存 VMkernel 中的核心转储。如果将 NMI 路由至服务控制台以触发紫色诊断屏幕,也会保存服务控制台 Linux 内核中的核心转储。可能需要服务控制台核心转储,具体取决于正在调查的问题。

确保正确配置 ESXi/ESX 主机,以捕获 VMkernel 和服务控制台核心转储。

有关详细信息,请参见:

在收到 NMI 时,第三方 OEM NMI 驱动程序可以有意发起终止并显示紫色诊断屏幕,无论配置的选项如何。有关详细信息,请参见Understanding the message: Panic requested by one or more 3rd party NMI handlers (2005413)

注意:有关运行 VMware ESX/ESXi 4.1 或更高版本的 HP 服务器的详细信息,请参见ESX and ESXi installations on HP systems require the HP NMI driver (1021609)

将 ESX/ESXi VMkernel 配置为针对 NMI 生成紫色诊断屏幕

VMware ESXi 4.x/5.x 以及 ESX 4.x 具有高级配置选项,可影响在收到 NMI 时采取的操作。默认情况下,将 NMI 路由至服务控制台,这在 ESXi 中没有任何影响,而在 ESX 中会被默认忽略。

VMkernel 选项Misc.NMILint1IntAction具有 3 个可能值:

  1. 收到硬件 NMI 时进入调试程序。
  2. 在收到硬件 NMI 时不稳定,从而终止 VMkernel 并显示紫色诊断屏幕。
  3. 在 ESX 上,将 NMI 传递到服务控制台 –请参见“配置服务控制台”部分。在 ESXi 上,不执行任何操作。

注意:如果 ESXi/ESX 主机在引导过程初期就没有响应,应改用 VMkernel 引导选项VMkernel.Boot.nmiAction。默认值0将延迟到引导过程中稍后的Misc.NMILint1IntAction选项。

要将 VMkernel 配置为在收到 NMI 时生成紫色诊断屏幕,请将高级选项Misc.NMILint1IntAction设置为 2。有关详细信息,请参见Configuring advanced options for ESXi/ESX(1038578)

注意:必须重新引导 ESX/ESXi 主机,更改才能生效。

将 ESX 3.x 或 4.x 服务控制台配置为针对 NMI 生成紫色诊断屏幕

VMware ESX 3.x 始终会将 NMI 路由至服务控制台。在 ESX 3.x 下,服务控制台中的配置选项是对 NMI 触发紫色诊断屏幕的唯一机制。可以将 VMware ESX 4.x 配置为在 VMkernel 中处理 NMI,或者将其路由至服务控制台。此配置不适用于 ESXi。对于 ESXi,使用上述 VMkernel 方法。

默认情况下,ESX 3.x 和 4.x 中的服务控制台 Linux 内核会记录 NMI 事件,但是不采取任何其他操作。可以将服务控制台 Linux 内核配置为以终止并显示紫色诊断屏幕的方式处理 NMI。

要将 ESX 主机服务控制台配置为在收到 NMI 时终止且不稳定,请执行以下操作:

  1. 打开 ESX 主机的控制台。有关详细信息,请参见 Unable to connect to an ESX host using Secure Shell (SSH)(1003807)
  2. 在文本编辑器中打开/etc/sysctl.conf文件。有关详细信息,请参见 Editing configuration files in VMware ESXi and ESX(1017022)。此配置文件采用token=value语法,每行一个配置选项。
  3. 在此配置文件底部为两个配置选项附加条目。选项名称取决于 ESX 主机版本:

    • ESX 3.x:

      kernel.mem_nmi_panic = 1
      kernel.unknown_nmi_panic = 1

    • ESX 4.x:

      kernel.panic_on_unrecovered_nmi = 1
      kernel.unknown_nmi_panic = 1

  4. 保存此配置文件。
  5. 使用以下命令重新加载此配置文件:

    sysctl -p

    注意:配置更改将立即生效。定义的所有sysctl配置选项都会在应用时显示出来。两个新配置选项应该显示在最后。

注意:如果必须恢复此配置,请编辑此配置文件并将这两个选项设置为 0。

准备再现问题

如果 ESXi/ESX 主机在出现中断之前配置不当,则必须在获取有关不响应状态的信息之前再现问题。

  1. 收集导致中断的性能数据。有关详细信息,请参见 Using performance collection tools to gather data for fault analysis (1006797)
  2. 通过导致中断的串行端口在外部记录日志。有关详细信息,请参见 Enabling serial-line logging for an ESXi/ESXi host(1003900)
  3. 在控制台上按Alt+F12以在屏幕上显示 VMkernel 日志。使这些日志保持滚动状态,在中断再次出现时键盘不响应的状况下,这些日志可能很有用。
  4. 您必须知道如何对特定硬件服务器系统发送 NMI。有关示例,请参见“Additional Information”部分。

结果和后续步骤

在下一次出现中断时,重新检查 Determining why an ESX/ESXi host does not respond to user interaction at the console (1017135)中描述的症状,以确保观察到相同的症状。

如果服务器完全不响应键盘输入和网络通信,请对 VMkernel 日志进行截图或拍照。检查 VMkernel 日志是否继续在屏幕上滚动,还是已经冻结。当您已经记录这些事件时,按物理服务器上的NMI 按钮或通过远程硬件管理界面按下。

此时,服务器将显示以下症状之一:

  • VMware ESXi/ESX 主机继续不响应且不记录任何内容。

    硬件完全没有响应并且不以任何方式对 NMI 作出反应,尽管配置操作系统软件进行相应地响应。咨询硬件供应商,并考虑使用供应商建议的硬件诊断软件密集且较长时间地运行硬件诊断。如果硬件供应商没有建议软件,请考虑使用开源 MemTest86+

    注意:截至 2015 年 9 月 23 日,上述链接正确无误。如果您发现链接已损坏,请提供反馈,VMware 员工会更新该链接。

  • VMware ESXi/ESX 主机突然重新引导。

    硬件可以为中断提供服务,但其自身可能已引发重新启动。一些服务器具有 BIOS 选项,只要出现不可屏蔽中断,就会自动重新引导系统。这表明硬件可能操作正确,但是没有提供继续操作所需的足够信息。禁用 BIOS 选项并重复测试。

  • VMware ESXi/ESX 主机记录 NMI 相关事件,但是再次变得不响应。

    硬件可以响应并且 ESXi/ESX 内核能够处理中断并记录事件。这通常表示软件问题是其原因。尽管不太可能,但如果驱动程序或其他进程卡在某个操作指令循环中,则可能会出现这种情况。查看 VMkernel 日志中的 LintN或 NMI 事件,以及导致出现中断的任何日志。如果特定错误未记录在 Knowledge Base 中,请从 ESXi/ESX 主机收集诊断信息,然后提交支持请求。有关详细信息,请参见 Collecting diagnostic information for VMware products (1008524)How to File a Support Request

  • VMware ESXi/ESX 主机记录 NMI 相关事件,并且可以做出响应。

    硬件可以响应,且 ESXi/ESX 内核能够处理中断。这通常表示软件问题是其原因。尽管不太可能,但如果驱动程序或其他进程卡在某个操作指令循环中,则可能会出现这种情况。查看 VMkernel 日志中的 LintN或 NMI 事件,以及导致出现中断的任何日志。如果特定错误未记录在 knowledge base 中,请从 ESXi/ESX 主机收集诊断信息,然后提交支持请求。有关详细信息,请参见 Collecting Diagnostic Information for VMware Products (1008524)How to File a Support Request

  • VMware ESXi/ESX 主机在控制台上显示紫色诊断屏幕。

    硬件可以响应,且 ESXi/ESX 内核能够处理中断。这通常表示软件问题是其原因。当紫色诊断屏幕在接近输出底部显示“磁盘转储成功”(Disk dump successful)时,进行截图或拍照并重新引导主机。如果错误未记录在 Knowledge Base 中,请从 ESXi/ESX 主机(包括核心转储文件)收集诊断信息,然后提交支持请求。

    有关详细信息,请参见


Additional Information

触发 NMI

NMI 按钮或开关位置依硬件不同而有所不同。提供了以下几个示例:

  • IBM x3650 M2 –NMI 按钮在诊断面板上。RSA 中也可能具有“发送NMI”按钮。有关详细信息,请参见 x3650 M2Installation andUsers Guide

  • HP Proliant – NMI 按钮或跳线在主板上。iLO 中也有一个“发送NMI”按钮。有关详细信息,请参见 Performing an HP ProLiant server NMI crash dump

  • Dell R900 –NMI 按钮在前面板上。有关详细信息,请参见 R900 Systems Hardware Owner's Manual

  • Fujitsu PRIMERGY 服务器 (RX/TX) - NMI 按钮在服务器前面。有关详细信息,请参见适用于您的 PRIMERGY 服务器的操作手册。可在 Fujitsu website 上找到该手册。

    1. 单击 [Industry standard servers] - [PRIMERGY Servers]
    2. 从下拉菜单中选择您的 PRIMERGY 服务器。例如,[PRIMERGY RX Servers] - [PRIMERGY RX300 Sriese] - [PRIMERGY RX300 S7]
    3. 下载操作手册并检查 NMI 按钮位置。

  • Cisco UCS –可通过 IPMI 或 UCS Manager 命令行界面发送 NMI:

截至 2013 年 11 月 6 日,上述链接正确无误。如果您发现某个链接已损坏,请提供反馈,VMware 员工会更新该链接。

有关如何为特定服务器系统触发 NMI 的信息,请咨询硬件供应商。

Using hardware NMI facilities to troubleshoot unresponsive hosts