当前位置:首页 > 技术分析 > 正文内容

VMware ESXi 紫屏/蓝屏背后故事和解决方案

ruisui881个月前 (03-18)技术分析12

一、前言

随着VMware的广泛使用,近期遇到很多客户使用VMware Esxi时出现蓝屏和紫屏现象,紫屏代码(Purple Screen of Diagnostics/Purple Screen of Death )简称:PSOD。本章我们主要分析下如何分析紫屏代码。仅供参考。

官方KB:
https://kb.vmware.com/s/article/1020181

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

二、紫屏解释

当 Esxi 宕机时,内核确定其不安全,就会出现 PSOD,紫屏会保存内存状态,我们称为内存转储或核心转储。我们可以通过ESXi Server的Dell iDRAC / HP ILO / Cisco CIMC时,我们可以看到此PSOD屏幕状态。

此时屏幕上会显示崩溃时的内存状态,并显示对崩溃原因进行故障排除的详细信息、ESXi 版本详细信息、异常类型、寄存器转储、回溯、服务器正常运行时间、错误消息以及有关核心转储的信息。

三、故障分析

1、硬件故障

在大多数情况下,原因是RAM或CPU。通常会显示“MCE(机器检查异常)”或“NMI(不可屏蔽的中断)”错误。

“MCE” – 表示 CPU 内用于检测和报告硬件问题的机制。紫色屏幕上显示的代码中有一些用于确定问题根本原因的重要详细信息。

“NMI” – 表示处理器不能忽略的硬件中断。由于 NMI 是有关硬件故障的非常重要的消息,因此从 ESXi 5.0 及更高版本开始的默认响应是触发 PSOD。早期版本只是记录错误并继续。与MCE相同,由NMI引起的紫色屏幕。

有关 NMI 代码,请参阅知识库
https://kb.vmware.com/s/article/1014767

2. 软件错误

带有软件错误的新版本会导致 PSOD,并且通常问题在下一个构建版本中得到修复。

示例:资源不足:内存、堆、缓冲区。配置参数不正确或不受支持的

3. 硬件兼容性问题

虚拟机可能使用了不兼容的虚拟硬件版本或驱动程序,驱动程序中尝试访问某些不正确索引或不存在的方法的 bug。

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

对虚拟环境的影响是,当 ESXi 服务器上发生 PSOD 时,主机崩溃并终止其上运行的所有服务,并且主机上运行的所有虚拟机将不会正常关闭,如果主机是 HA 的一部分,则所有虚拟机都将迁移到另一台主机并重新引导。

四、案例剖析

我们可在服务器带外管理查看紫屏界面,下面进行详细剖析分解。

具有内部版本号详细信息的产品

导致 PSOD 的错误消息详细信息

中央处理器寄存器

物理 CPU 详细信息

ESXi 主机启动正常运行时间

堆栈跟踪

核心转储

分析完上述代码详情,接下来我们可以在esxi上收取日志,如图所示

下载的日志可自行分析,或者找VMware 400售后支持。

五、防护措施

要正确防止 VMware ESXi 紫色诊断屏幕或紫色死机屏幕问题,可以采取以下措施来提高虚拟化环境的稳定性和可靠性:

1、保持 VMware ESXi 更新:

定期更新您的 ESXi 主机,以确保您拥有最新的安全性和性能修复。VMware 发布了定期的补丁和更新,以修复已知的问题。

2、定期备份虚拟机:

创建定期的虚拟机备份,以防止数据丢失。这可以帮助您在出现问题时快速恢复虚拟机的状态。

3、监控硬件健康:

使用硬件监控工具来跟踪宿主机的健康状况,包括温度、风扇速度、电源供应等。这有助于及早发现潜在的硬件故障。

4、合理分配资源:

确保虚拟机的资源分配合理。避免在同一宿主机上分配过多的虚拟机,以避免资源争用。

5、使用兼容的虚拟硬件:

当创建虚拟机时,选择与 ESXi 版本兼容的虚拟硬件版本。确保虚拟机操作系统支持所选的虚拟硬件版本。

6、启用虚拟机监控:

VMware 提供了虚拟机监控功能,可以帮助您监视虚拟机的性能和状态。启用监控可以帮助您及早发现问题。

7、定期维护虚拟机:

定期对虚拟机进行操作系统和应用程序的更新、维护和安全性检查,以确保其稳定性和安全性。

8、合理规划存储和网络:

确保存储和网络基础设施能够满足虚拟机的需求。避免存储性能瓶颈和网络拥塞。

9、监控和日志分析:

设置监控和日志分析工具,以及时检测和诊断问题。VMware 提供了一些工具和解决方案,如vRealize Operations Manager和vCenter Log Insight。

10、虚拟机迁移和负载平衡:

使用 VMware vMotion 等技术来实现虚拟机的迁移和负载平衡,以确保资源均衡分配,并减少单一宿主机故障的影响。

11、合理规划容灾和备份策略:

考虑设置容灾和备份策略,以应对宿主机或存储故障等严重问题。

综合以上可适当减少兼容性问题。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2857.html

分享给朋友:

“VMware ESXi 紫屏/蓝屏背后故事和解决方案” 的相关文章

Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】11

本文于2023年6月9日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!☆本期内容概要☆用户窗体设置:收费结算模块设置(6)增加合计金额增加收款方式选择输入大家好,我是冷水泡茶,前几期我们分享了【收费管理系统】的设计,最近一期是(Excel VBA 收费结算模块/一步一步带你设计【...

Linux发行版Debian推出12.2及11.8版本,修复多个安全问题

IT之家 10 月 9 日消息,Debian 是最古老的 GNU / Linux 发行版之一,也是许多其他基于 Linux 的操作系统的基础,包括 Ubuntu、Kali、MX 和树莓派 OS 等,近日 Debian 推出了 12.2 和 11.8 版本,主要修复了多个安全问题。▲ 图源 Debia...

Vue3 如何实现父子组件传值?

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从父组件向子组件传递数据值,在父组件上通过在子组件标签上定义属性来实现数据属性值的传递,在子组件中通过...

GitLab-合并请求

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到您的GitLab帐户,然后转到“ 项目”部分下的项目 -步骤3-单击“ 合并请求”选项卡,然后单击“...

java调用API操作GitLab

最近需要在一个WEB项目中集成GitLab,用到了GitLab的API操作,在网上找了很久都是说直接调用GitLab的Http接口,而且API官方只有javadoc没有其它说明文档,特别记录下,以备查询。这里采用Token的认证方式,因此需要先登陆GitLab新建一个Token,创建方式如下:创建完...

深度解析!AI智能体在To B领域应用,汽车售后服务落地全攻略

在汽车售后服务领域,AI智能体的应用正带来一场效率和专业度的革命。本文深度解析了一个AI智能体在To B领域的实际应用案例,介绍了AI智能体如何通过提升服务顾问和维修技师的专业度及维修效率,优化汽车售后服务流程。上周我分享了AI智能体+AI小程序To C的AI应用场景《1000%增长!我仅用一个小时...