CIFS/SMB 导致虚拟机(以及最终的 Hyper-V 主机)挂起

CIFS/SMB 导致虚拟机(以及最终的 Hyper-V 主机)挂起

我在这件事上花了太多时间。

我们有一个 8 节点 Microsoft Private Cloud,托管在 Cisco Flexpod 上(B200 刀片、Nexus 5k、6248FI,带有两个用于 SAN 的 NetApp FAS2550 控制器)。运行 UCS 2.2(5a) 固件。

所有主机都启动 SAN,并运行 Server 2012 R2 Datacentre。每台主机上都安装了一个 CSV,用于托管我们 70 多个虚拟机的 VHDX。

最近,我们转向 Visual Studio Online 并委托了一些构建服务器(好吧,3 个)。构建完成后,工件将发布到我们的暂存和测试环境,每个环境都由一台运行 Server 2012 R2 Standard 的虚拟机组成。此发布使用 Robocopy 将工件复制到这些虚拟机的 C$ 共享中。

当复制发生时,我们会看到以下内容:

  • 虚拟机的 GUI 无响应
  • 在此状态下连接到虚拟机时,我们无法登录(有时 ctrl-alt-del 不起作用,有时会显示登录提示,但密码框中不显示输入)
  • 如果我们在 CIFS/SMB 流量开始之前登录,GUI 元素将持续运行,直到您与它们交互
  • 一段时间后,同一 Hyper-V 主机上托管的所有虚拟机都开始出现超时
  • VM 没有响应通过故障转移群集管理器发出的关机命令,我们必须关闭 VM,这需要一点时间,但可以完成
  • 重新启动虚拟机后,一切恢复正常,直到您再次尝试复制
  • 现有虚拟机(即很久以前投入使用的虚拟机)不受影响,只有上个月投入使用的虚拟机才会受到影响

为了调试,我尝试了手动(即 Windows 复制和粘贴),但它也出现了同样的问题。

我试过了:

  • 更改接收端缩放设置
  • 在主机和虚拟机的网络适配器上都禁用了 VMQ(尽管我们没有 Broadcom 适配器,但有 Cisco VIC)
  • 重新启动整个集群(主机滚动重启)
  • 构建新的虚拟机,没有任何 Windows 更新。遇到同样的问题
  • 确认我们没有重复的 IP 地址
  • 任何主机或来宾虚拟机上均未运行 AV
  • 由于问题出现之前打开的 GUI 项目一直在运行,因此我运行了资源监视器并检查了磁盘利用率。当问题出现时,磁盘 IO 几乎降到了 0。在这一点上(以及 NetApp 特定的监视工具,以及所有其他节点上的 VM 仍在运行的事实),我排除了存储组件是罪魁祸首。请参见下面的复制开始时的屏幕截图:

资源监控

注意磁盘 IO 的下降。顺便说一句,同一 Hyper-V 主机上的所有其他虚拟机的磁盘 IO 同时降至 0。

出于沮丧,今天早上我创建了一台 Gen1 虚拟机,并像调试其他 Gen2 虚拟机一样调试它。不知为何,这个虚拟机却能正常工作。如果我复制到 Gen2 机器的 C$ 共享,就会失败。如果我从完全相同的位置复制到这台新的 Gen1 机器的 C$ 共享,就不会出现任何问题。

更新:我还注意到从 Gen2 机器复制没有问题。只有当复制到它们时才会出现问题。

这可能是什么原因造成的?Gen1 和 Gen2 有什么区别?可能是 UCS 固件问题。

相关内容