我们有许多 Server 2012 系统,它们都在 Hyper-V 2012 服务器上虚拟化运行。我们在两个这样的虚拟实例上遇到了问题,它们都用作文件服务器,因此它们偶尔会停止响应向客户端提供文件的请求。登录到服务器后,尝试正常关闭服务器失败(没有错误,只是无法确认关闭请求)。
恢复是从 Hyper-V 控制台对服务器进行电源循环的一种情况。
这两台服务器并不服务大量用户(一台服务的用户不超过 6 名,另一台服务的用户约为 20 名),它们位于同一个域中,但位于不同的物理硬件上(并且位于不同的站点)。它们不会同时锁定。它们都使用 DFSR 通过 ADSL 连接在它们之间复制大量数据(200GB),这运行良好,我们一直在使用 DFSR 在我们使用的前两代服务器操作系统上执行此操作(Server 2008 R2 和 Server 2003 - 但两者都是物理安装)。
今天,当其中一台服务器崩溃时,我注意到事件日志中有一条类似于以下内容的条目:
Log Name: Application
Source: ESENT
Date: 27/11/2012 10:25:55
Event ID: 533
Task Category: General
Level: Warning
Keywords: Classic
User: N/A
Computer: HAL-FS-01.example.com
Description:
DFSRs (1500) \\.\E:\System Volume Information\DFSR\database_C8CC_101_CC00_EC0E\
dfsr.db: A request to write to the file "\\.\E:\System Volume Information\
DFSR\database_C8CC_101_CC00_EC0E\fsr.log" at offset 4423680 (0x0000000000438000)
for 4096 (0x00001000) bytes has not completed for 36 second(s). This problem is
likely due to faulty hardware. Please contact your hardware vendor for further
assistance diagnosing the problem.
当服务器再次启动时,我去查找事件日志条目以进一步调查,发现事件日志条目已不存在(我假设它在内存中,但在服务器关闭之前未能写入磁盘,原因在消息中提到)。我在事件日志中进一步搜索后找到了上述消息。
这两个虚拟服务器的 E: 卷都已完全分配,而不是动态扩展,并且其他虚拟服务器(包括服务器 2012、服务器 2008 R2 和 Ubuntu 12.04 x64)上没有其他问题。主机系统上没有 IO、内存或 CPU 不足的迹象。
我已经在受影响的虚拟服务器上使用性能计数器来监视内存使用情况(包括非分页池使用情况)以及 CPU 和网络利用率,并且当问题出现时,这些都没有显示任何问题的迹象。
我原以为我们的配置并不罕见,所以我想知道是否有其他人也遇到过这种情况并设法解决了这个问题?
主机规格如下:
hal-vm-01
总共运行 5 个虚拟服务器(受影响的文件服务器、DC + 其他客户机),包括 Dell Poweredge R710、16GB、6 x 300GB SAS 15K RAID 10、Perc H700
hey-vm-01
运行 2 个虚拟服务器的系统(受影响的文件服务器和 DC)Dell Poweredge T620、16GB、2 x 3TB SATA RAID 1、Perc H310
我们还有另一台hal-vm-02
运行 5 个来宾的虚拟服务器,它不受此问题影响,规格低于hal-vm-01
,但负载大致相同(exchange、DC、SQL + 其他来宾)。更多内存正在准备中,以便我们可以在此主机和“hal-vm-01”之间配置无共享故障转移。
受影响的两台虚拟服务器上运行有 AV 软件 (MS SCEP),它们配置为仅在创建时扫描,而不扫描由 dfsrs.exe 进程创建的文件。VM 主机本身没有运行 AV 软件。
我们在主机上使用 Windows Server 2012 备份hal-vm-01
来备份所有虚拟机,这超出了工作时间。另一台受影响的服务器hey-vm-01
未备份,因为它只是我们总部数据的异地 DFSR 副本。另一项备份作业在受影响的虚拟客户机上运行hal-fs-01
,这也使用 Windows Server 备份,以对存储在 DFS 复制共享中的数据进行快照。这两项备份作业都在办公时间之外进行。
三个月后……
我们向 Microsoft 提交的支持单已经超过三个月了,我们向 Microsoft 发送了大量性能计数器日志、内存转储和事件日志。他们执行的分析表明,hal-fs-01(出现问题的虚拟服务器)的一个虚拟驱动器存在问题。有问题的虚拟驱动器是服务器的驱动E:\
器,它恰好包含我们所有的 DFSR 组和共享。最近,我将E:\
驱动器上的所有数据移至我添加到服务器的许多较小的虚拟磁盘,当然还移动了所有共享和 DFSR 组,只在E:\
驱动器上保留 Windows 部署服务文件。尽管如此,我们仍然发现写入驱动E:\
器失败的问题。
上周,我将 WDS 文件移到了一个新的虚拟磁盘,并禁用了 WDS 服务。我还删除了虚拟磁盘,E:\
以防磁盘出现异常。自那时以来,我们还没有遇到过其他故障,但是现在还不知道这是否解决了问题,因为之前我们最长的正常运行时间大约是 2 周,截至本文编辑时(2013 年 3 月 20 日),我们只使用了当前配置一周,如果到下周问题还没有再次出现,我将重新启用 WDS,因为我怀疑 WDS 可能是罪魁祸首。
我会持续更新这个问题(或者如果我能解决这个问题的话,我会提供答案)。
移回 Server 2008 R2...
没有更新问题的进展,但我们最终回滚到 Server 2008 R2,一切正常。我仍然有兴趣听听有没有人遇到过这个问题并设法找到解决办法。
答案1
好吧,我不确定这是否有帮助,但我和你有一个共同点,那就是我将驱动器连接到 PERC H310 控制器,并在虚拟环境中运行文件服务器,将其数据驱动器映射到连接到同一 H310 的原始磁盘。通常在高 I/O 期间的随机时间,虚拟机会抱怨它无法访问驱动器并会崩溃。我最终将驱动器连接到板载英特尔控制器,从此没有出现任何问题。我个人认为低端 Perc 卡有怪癖,可能会导致 I/O 敏感操作出现问题。
答案2
我认为你看错了地方。看看主机 - 看起来主机磁盘子系统有问题,要么是坏了,要么是严重超载。