ESXI主机紫屏分析思路(psod)

发布时间 2023-11-10 10:12:57作者: maym

首先了解下什么叫PSOD

ESXi PSOD 是紫色屏幕崩溃,是 ESXi 主机出现严重问题时的一种错误诊断屏幕。PSOD 通常由硬件故障或驱动程序问题引起。

PSOD 屏幕显示的信息包括:

  • 错误代码:错误代码可以帮助您识别导致 PSOD 的特定问题。
  • 错误时间:错误发生的时间。
  • 错误堆栈:错误堆栈显示导致 PSOD 的代码路径。

PSOD 屏幕还显示有关 ESXi 主机的其他信息,例如 CPU 类型、内存大小和操作系统版本。

以下是一些可能导致 ESXi PSOD 的常见问题:

  • 硬件故障:CPU、内存、硬盘或其他硬件组件出现故障可能会导致 PSOD。
  • 驱动程序问题:过时的、不兼容或损坏的驱动程序可能会导致 PSOD。
  • 操作系统问题:ESXi 操作系统中的错误可能会导致 PSOD。

如果您遇到 ESXi PSOD,您可以尝试以下操作来解决问题:

  • 检查硬件故障:检查 CPU、内存、硬盘和其他硬件组件是否存在损坏或故障。
  • 更新驱动程序:更新所有驱动程序,确保它们是最新版本且与 ESXi 操作系统兼容。
  • 重置 ESXi:重置 ESXi 可能会解决由操作系统问题引起的 PSOD。

如果您无法解决 PSOD,您可以联系 VMware 支持寻求帮助。

以下是一些有关 ESXi PSOD 的额外信息:

    • PSOD 屏幕通常是静态的,但在某些情况下可能会滚动。
    • PSOD 屏幕可能包含大量信息,因此您可能需要花一些时间来理解它。

purple diagnostic screen

示例:如下紫屏错误

 

倒数第四行提示,coredump to disk 已经把文件写到了那个naa.600开头的datastore

进入esxi的shell

在 /root/ 或 /var/core/ 目录中找到 vmkernel-zdump 文件:

 

# ls /root/vmkernel* /var/core/vmkernel*

/var/core/vmkernel-zdump-073108.09.16.1

 

使用 vmkdump 或 esxcfg-dumppart 实用程序提取日志。例如:

 

# vmkdump -l /var/core/vmkernel-zdump-073108.09.16.1

created file vmkernel-log.1

 

# esxcfg-dumppart -L /var/core/vmkernel-zdump-073108.09.16.1

created file vmkernel-log.1

 

在此示例中,为日志在当前目录下创建的文件名称为 vmkernel-log.1。如果已存在名称相同的其他文件,则会使用数字后缀增量创建新文件。

 

之后通过sftp软件,把那个vmkernel-log.1文件下载下来,用notepad++打开

搜索关键字BlueScreen(注意大小写)

 

经过跟紫屏对比,实际上基本是一致的,也就是说,紫屏没人去拍照留下证据的话,这里还有一份,我们可以追溯紫屏的错误,根据这些线索再进一步排查紫屏原因。

#PF Exception 14 in world 49676996:vmotionRecvH IP 0x418007d2591f addr 0x43133345d000

 

具体紫屏报错信息详解请参考以下KB

https://kb.vmware.com/s/article/1004250

 

类型:异常 14(页面错误)
错误示例:#PF Exception type 14 in world 136:helper0-0 @ 0x4a8e6e
描述:正在请求的页面未成功加载到内存时出现页面错误(异常 14)。有关异常 14 或页面错误的详细信息,请参见 Understanding Exception 13 and Exception 14 purple diagnostic screen events (1020181)

 

由1020181 kb,异常 14 页面错误可由硬件或软件问题所导致。由于这些类型的异常的原因可能大不相同,因此 VMware 可能会执行一次核心转储检查。

 

特别提一下

  • 类型:异常 18(计算机检查异常)
    错误示例:Machine Check Exception: Unable to continue
    错误示例:Hardware (Machine) Error
    描述:计算机检查异常 (MCE) 由硬件生成并通过主机进行报告。出现 MCE 事件时,请咨询您的硬件供应商。通过评估显示的信息,可以确定报告错误的单个组件。有关 MCE 的详细信息,请参见 Decoding Machine Check Exception (MCE) output after a purple screen error (1005184)

MCE错误一般是由于硬件导致,请排查服务器,进行兼容性测试,一般都是服务器本身硬件问题,笔者见过由于HBA卡,RAID卡固件版本导致的紫屏。

 

总结,最后分析最有可能还是物理内存存在问题,咨询了用户,说之前换过内存,下一步进行服务器的内存排查。