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

我在这方面花了太多的时间。

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

所有主机SAN启动,并运行Server 2012 R2数据中心。 每台主机上都有一个CSV文件,用于托pipe我们70多个虚拟机的VHDX。

最近,我们转移到Visual Studio在线,并委托一些构build服务器(以及3)。 构build完成后,这些构件将发布到我们的暂存和testing环境中,每个环境都包含运行Server 2012 R2 Standard的单个虚拟机。 此发布使用Robocopy将artificats复制到这些虚拟机的C $份额。

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

  • 虚拟机的GUI不响应
  • 在此状态下连接虚拟机时,我们无法login(有时候ctrl-alt-del没有任何作用,有时会显示login提示,但是在密码框中没有input)
  • 如果我们在CIFS / SMBstream量开始之前login,则GUI元素将保持运行状态,直到您与之交互为止
  • 一段时间后,同一个Hyper-V主机上托pipe的所有虚拟机都开始出现超时
  • 虚拟机无法通过故障转移群集pipe理器closures命令,我们必须closures虚拟机,这需要一点时间,但完成
  • 重新启动虚拟机之后,再次尝试复制它之前,它是正常的
  • 现有的虚拟机(即很早以前的虚拟机)不受影响,只有上个月

为了debugging,我尝试了一个手动(即Windows复制和粘贴),这performance出相同的问题。

我试过了:

  • 更改接收端缩放设置
  • 禁用VMQ(即使我们没有Broadcom适配器,但Cisco VIC),无论是在主机上还是在VM的networking适配器上
  • 重新启动整个群集(滚动重新启动主机)
  • build立一个新的虚拟机,没有任何Windows更新。 遇到同样的问题
  • 确认我们没有任何重复的IP地址
  • 任何主机或访客虚拟机上都没有运行AV
  • 因为在问题开始之前打开的GUI项目一直在运行,所以我运行资源监视器并检查了磁盘利用率。 当问题开始时,磁盘IO几乎下降到零。在这一点上(随着NetApp特定的监视工具,以及所有其他节点上的虚拟机继续运行的事实),我已经将存储组件作为罪魁祸首。 请参阅下面的副本开始时的屏幕截图:

资源监视器

请注意磁盘IO的丢失。 顺便说一下,同一个Hyper-V主机的磁盘IO上的所有其他VM同时下降到0。

出于沮丧,今天早上我创build了一台Gen1虚拟机,并按照其他Gen2的方式进行debugging。 这个由于某些未知的原因而起作用。 如果我复制到Gen2机器的C $份额,它将失败。 如果我从完全相同的位置复制到新的Gen1机器的C $份额,则没有问题。

更新:我也注意到,从Gen2机器复制是好的。 就在复制到他们这个问题展示。

什么可能导致这个? Gen1和Gen2有什么区别? 这可能是一个UCS固件问题。