我有一台 Windows Server 2012 R2 虚拟机;是的,带有所有更新。其他软件包括 Microsoft SQL Server 2014(以前的 VM 上是 2012)。网络托管公司将 xenpci.sys(EJBPV XenPCI 驱动程序(已检查版本),James Harper)作为其所有 VM 和 Plesk 上的默认安装的一部分。
操作系统会定期挂起、蓝屏或重新启动。我确实会遇到小型转储,但并非总是如此。常见的问题是:
错误:CRITICAL_STRUCTURE_CORRUPTION
特定的顶层文件显然不是原因,而是多种多样的:win32k.sys、ntoskrnl.exe、xenpci.sys(Xen 驱动程序,虽然只出现过几次)和 ndis.sys。
OSR(开放系统资源)分析器没有太大帮助。WhoCrashed 分析器稍微有帮助一些。
它指出:
已发现并分析了 17 个崩溃转储。本报告中仅包含 10 个。已确定第三方驱动程序导致您的计算机系统崩溃。强烈建议您在这些驱动程序的公司网站上检查更新。点击以下链接使用 Google 搜索这些驱动程序的更新:
xenpci.sys (EJBPV XenPCI Driver (Checked Build), James Harper)
我试图敦促网络托管公司研究这个问题,但他们却一无所获。我不相信 Xen 驱动程序有错。WhoCrashed 发现了这一点,我猜想只是因为有几次它是最后一个驱动程序,而且它是第三方的,所以它有罪。我没有写 WhoCrashed,所以很难进一步评论。
我的问题是如何解决这个问题。
过去几年,网络托管公司已经尝试给我提供两台新的虚拟机。问题转移了。我安装了 SQL Server,但操作系统和 Plesk 是默认安装的。好吧,还有邮件服务器软件。网络托管公司还告诉我,他们没有其他客户有类似的抱怨。他们多次进行了磁盘测试。磁盘健康状况良好。
我没有检查注册表的健康状况,但问题在安装过程中出现,而且经常发生,所以我不得不忽略这一点。我现在使用的是第三或第四台虚拟机。
再次,我提到 Xen 是因为 WhoCrashed 提到了它,但我不相信这是原因,其他客户端确实使用它。系统有足够的内存和存储空间,所以这不是问题。
更新:以下是网络托管公司对我的疑问的一些答复。
通常情况下,卸载驱动程序后,虚拟机的性能会下降。硬件节点可能存在一些同步问题。
我使用的是已检查版本还是发布版本?
您正在使用经过测试签名的版本,与来自开发者网站的版本相同。
我怎么知道?设备管理器中的 Xen PCI 属性对话框没有说明这一点。设备管理器中的条目是唯一的位置吗?我检查了程序和功能,没有看到任何列出的东西。
您可以在“添加或删除程序”下检查版本。请参阅所附的快照。
我如何/在哪里可以找到他们网站上的最新版本?
开发者网站无法正常运行 -http://www.meadowcourt.org/downloads/ 您可以从这里下载最新的签名版本 - http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers
我如何知道 0.11.0.373 属于哪个 Xen(Xen 4.6?3.0?xy?)
我们使用的是 Xen 3.4.4,您无法从 VM 中看到它。只能从硬件节点查看它。
更新 2:托管公司安装了两个 James Harper 软件。
GPL PV Drivers for Windows
EJB PV Drivers for Windows
答案1
xenpci.sys(EJBPV XenPCI 驱动程序(已检查的版本)、詹姆斯·哈珀)
(已检查的版本)是一个巨大的危险信号。你绝对应该不是在生产中使用任何“已检查”的版本。如果您的托管公司为您加载了此驱动程序,那么他们绝对犯了一个错误。
已检查的版本包括无关符号和额外的错误检查,可帮助开发人员。它们不是生产版本。
进一步解释一下,这告诉我,导致机器停止的任何错误可能仍然发生在联合国-checked 版本的驱动程序,但是,它可能只是导致非致命的副作用,例如发布版本中的内存泄漏。但在 checked 版本中,由于错误检查更严格,它会停止整个操作系统。这就是 checked 版本的目的,在开发人员将代码发送给客户之前,突出错误并将它们推到开发人员面前。
进一步说明,如果其他虚拟机也加载了完全相同的驱动程序(已检查的版本)并且似乎没有崩溃,这其实并不重要。特定于该虚拟机的某些组件正在调用触发该驱动程序中错误的某些行为或状态。(驱动程序和应用程序以各种方式交互,也许两台机器加载了相同的错误驱动程序,但只有一台服务器安装了 SQL,并且由于该服务器安装了 SQL,它会以另一台服务器不执行的方式执行此唯一内存页面锁定,这会导致第三方驱动程序错误出现。(仅举一个例子。))
真的没有别的原因可以责怪。您不能在生产中运行经过检查的驱动程序版本并期望获得良好的体验。它们仅用于开发和测试目的。
最后,从这里开始,唯一可以做的就是收集完整转储并通过 WinDBG 运行它。您可以花六个小时进行密集调试、展开堆栈、跟踪线程、跟踪 IRP 到它们的完成端口……或者您可以摆脱那个已检查的构建驱动程序。:)
也可以尝试运行驱动程序驱动程序验证程序。在测试环境中。已检查的版本应保留在此处。 ;)
答案2
Xen 3.4.4 太旧了。2013 年 3 月 13 日
Windows 2012 R2 发布日期2013 年 10 月 18 日。
为了给您一个实际的比较,Citrix 的 XenServer 在其 6.2SP1 版本中添加了对 Windows Server 2012 R2 的支持,该版本于2013 年 12 月 13 日。 (http://support.citrix.com/article/CTX139788)
请参阅 GPLPV 驱动程序;您只会看到对 Xen 分支 4.4.0 的引用2008R2..
ejbdigital 签名的驱动程序在 Xen 4.4.0 上运行良好。如果您在安装这些驱动程序时遇到蓝屏,或者在安装后重新启动时遇到蓝屏,请尝试添加 device_model_version =“qemu-xen-traditional”。我有一个现有的 2008 R2 x64 系统,在安装 gpl_pv 后,该系统不断出现 BSOD 故障。切换到“qemu-xen-traditional”设备模型解决了这个问题。但是,在干净的 2008 R2 x64 系统上,我不需要进行此更改,因此如果您遇到麻烦,请记住这一点。 http://wiki.xen.org/wiki/Xen_Windows_GplPv
请参阅 xen 项目对 Windows 支持的官方声明。我不是说它不能运行,但你看到了支持。你会在该平台上运行生产服务器吗?
Xen Project 支持 Microsoft Windows 吗?
我们采用半虚拟化方法来实现如此高的性能到目前为止还不能直接用于 Windows。但是 Xen 3.0 添加了 Intel VT-x 支持,以便使用硬件虚拟化技术运行未经修改的客户操作系统,包括 Windows XP 和 2003 Server。Xen 3.0.2 及更高版本也支持 AMD Pacifica 技术。检查您的 CPU 是否在 HVM 兼容处理器列表中,以及您的主板是否在 HVM 兼容主板列表中。
(注:这并不一定意味着,任何OS 在 HVM 模式下运行!关于让 *BSD 在 HVM 模式下工作的报告各不相同,在邮件列表中,只有 1 个 OpenBSD 成功的例子(http://www.openbsd-france.org/ml/archives/msg02494.html), 其他的没有成功消息,但有一些问题报告) http://wiki.xenproject.org/wiki/Xen_FAQ_Drivers,_Windows