Intel Nehalem CPU Errata 导致 VMWare ESXi(vSphere) 以及 Windows 2008 Hyper-V 崩溃(watchdog timeout)原因

作者:Sender  来源:WaveCN.com  发布日期:2012-02-10  最后修改日期:2013-12-23

在用的两台DELL R710服务器,初始安装VMWARE ESXi 4.0,后来升级多次到现在vSphere 5.0,一直以来都有一个很困惑的问题,就是两台服务器都会莫名其妙地在不确定的时间突然重启。正常情况下VMWARE在崩溃时会产生一个紫色背景的出错信息屏幕,俗称PSOD(相对Microsoft Windows则是蓝屏BSOD),但我碰到的情况却只是服务器直接重启,没有任何出错信息。困惑了好久。期间尝试了多种方法试图确定原因,包括开启了ESXi所有默认不开的日志、增加了日志滚动、开启Kernel Dump、增加独立的SysLog 服务器以实现日志的独立保存等等,均一无所获。除了最后偶然在iDRAC的日志里面看到在机器重启时产生的:WATCHDOG CLOCK TIMEOUT事件之外,再没有找到任何记录,而服务器BIOS里面的WATCHDOG功能是DISABLED的,因此这个错误也说明不了什么。网上搜索也找不到类似的信息。

然后,开始怀疑是否硬件问题,着手进行服务器的BIOS更新和DRAC固件更新。在着手进行BIOS更新时,突发奇想转换一下搜索关键字。之前一直搜索的都是诸如“VMWARE SUDDENLY REBOOT”、“VMWARE WATCHDOG TIMEOUT”等关键字,总是带着个VMWARE。这次改为搜索“R710 WATCHDOG TIMEOUT REBOOT”,结果搜到在DELL的论坛上有这样一个主题:

Random Reboots with a R710 and Windows 2008 R2

讨论结果指出Windows 2008 Hyper-V有类似现象,解决办法是在系统BIOS中设置C1E、C States两个选项为Disabled并安装Hotfix。其中还给出了Microsoft内部员工的一篇博文:

Hyper-V Hotfix for "0x00000101 - CLOCK_WATCHDOG_TIMEOUT" on Nehalem systems

该文提到微软给出了一个KB:

已安装 Hyper-V 角色并使用代码名称为 Nehalem 的一个或多个 Intel CPU 的基于 Windows Server 2008 R2 的计算机上出现 Stop 错误消息:“0x00000101 - CLOCK_WATCHDOG_TIMEOUT”

该KB指出问题出在Intel Nehalem 系列的CPU上,详情参见Intel Xeon 5500 处理器系列规格更新,但到Intel网站的链接已失效。于是在Intel的网站上查询,终于找到文档的正确路径:

Intel Xeon Processor 5500 Series Specification Update


虽然微软的KB没有正面指出那个Errata导致Windows 2008 Hyper-V 蓝屏死机,但从文档内容、发布时间并结合之前DELL论坛讨论内容来看,估计会是AAK47: A P-state Change While Another Core is in C6 May Prevent Further C-state and P-state Transitions 导致。因为这个Errata的影响是会导致处理器停止对进一步的功耗状态切换请求的处理。简单理解就是处理器会挂起,于是WATCHDOG TIMEOUT就有了前提条件。

鉴于微软提供了Hotfix去临时解决问题,于是到VMWARE进行搜索,但没有结果。另一方面,比较坑爹的是Intel这个文档里面列出的很多Errata都指出状态是No Fix,即没有计划进行修正,包括AAK47。文档内还指出应该可以通过BIOS来提供绕过这一问题的方法。这样一来,就只能继续进行R710的BIOS更新。偏偏R710 BIOS更新的说明里面并没有指出有对5500系列XEON 进行了任何CPU微码更新(事实上Intel的文档也没有说BIOS提供的绕过方法就是CPU微码更新即microcode update),所以,最后的最稳固的处理方法就只有在BIOS中设置C1E和C States均为DISABLE。无奈地换来的负面效果就是耗电增加。

2012-09-12 后记:经过一段时间的运行测试,对于ESXi,关闭C1E和C States,甚至尽量少开虚机,都只能减少这个问题发生的频率,也就是仍然会发生莫名重启的现象。

2013-12-23 后记:在这一年中,升级ESXi到 5.1、5.5版本,保持关闭C1E和C States,在vSphere内部设置Maximum Performance,都仍然会发生莫名重启的现象。看来直到服务器报废都不会有解决了。差评。

 

本栏目相关
  •  2012-09-07 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能自动启动的BUG
  •  2012-02-10 Intel Nehalem CPU Errata 导致 VMWare ESXi(vSphere) 以及 Windows 2008 Hyper-V 崩...
  •  2016-09-07 解决 VMWare vSphere 6 客户端无法修改用户密码
  •  2015-05-23 使用 GParted 进行虚拟机硬盘分区调整操作
  •  2009-04-17 如何在Seamonkey上安装VMWare Server 2.0的客户机Console
  •  2022-12-03 VMware vSphere Hypervisor 6.7 手动升级过程实例
  • 微信订阅号二维码

    本页网址二维码:

    本栏目热门内容
  • Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然...
  • LINKSYS交换机登录WEB界面显示不正确的解决方法
  • 又一次RAID 5阵列故障记录
  • 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能...
  • 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET...
  • 解决虚拟化运行的 Windows Server 2003 标准版出现...
  • Windows Server 2008 重命名域和域控制器
  • Intel Nehalem CPU Errata 导致 VMWare ESXi(vSpher...
  • 一次很精神的电脑组装过程记录(但不是自己的电脑)...
  • 解决MySQL Cluster 备份总是失败,提示文件已存在的...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的问题
  • 解决 VMWare vSphere 6 客户端无法修改用户密码
  • 解决Windows Server 2008 R2域控制器显示无法连接到...
  • 本站服务器RAID 5阵列双硬盘失效挽救记录
  • 网站数据库从MySQL 5.0升级到5.6的记录
  • 解决MariaDB使用Percona XtraBackup增量备份出错
  • DELL PowerEdge 820 报CPU3 INTERNAL ERROR 的解决...
  • Linux 下的分区调整工具GParted实战
  • 修改arpwatch使通知邮件主题显示IP地址
  • 程序员漫画:如何用8种不同的编程语言去解救公主
  • 解决很好用的多合一即时通信软件pidgin的崩溃问题
  • 解决Samba WINS服务的错误解释问题
  • 使用 GParted 进行虚拟机硬盘分区调整操作
  • 解决Squid代理HTTP时在浏览器出现Content Encoding ...
  • 用Delphi编写使用到ADO的DLL的一些问题
  • 网站简单改版
  • 索尼系列手提电脑备份失败,出现700错误的解决办法
  • Dell R900服务器 BMC firmware incompatible with C...
  • 更多...