![DRS vMotion 对虚拟机和集群有何影响?](https://linux22.com/image/755348/DRS%20vMotion%20%E5%AF%B9%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%92%8C%E9%9B%86%E7%BE%A4%E6%9C%89%E4%BD%95%E5%BD%B1%E5%93%8D%EF%BC%9F.png)
我们有一个 4 台主机的 ESXi 6.5 集群,DRS 完全自动化。检查历史记录时,我们发现一个特定的(大型)虚拟机(6 个 CPU,64 GB 内存)每天大约有 10 个 vMotion 由 DRS 执行。团队中的某个人声称我们应该降低 DRS 的攻击性并将这台大型机器排除在 DRS 之外。
但我想知道,这样做有什么意义?既然 vMotion 不会影响客户机和集群性能,那么我们不能只让 DRS 完成其工作吗?我想提出一些理由来告诉他不要通过应用排除等方式让事情变得太复杂。
答案1
首先,DRS 移动某个物体背后的逻辑非常复杂,因此试图弄清楚它为什么会这样做通常会走向疯狂。
话虽如此,当 DRS 有点过于激进时,通常会降低攻击性设置,除非存在其他明显的潜在问题,例如虚拟机太接近主机的最大配置(如果将 90% 的主机资源分配给单个虚拟机,VMware 不会很高兴)。攻击性设置其实并不那么重要,无论任何主机是否变得过于拥挤,DRS 仍会启动,只是攻击性会降低,这是显而易见的。正如我上面所说,由于 DRS 考虑的因素太多,不同环境之间的攻击性设置实际上无法进行比较,通常 3 是一个很好的起点,但有些环境需要将其降低一两个等级。
排除有点不同,它们最好留给那些不太愿意被移动的虚拟机。一个例子是检查其对等体是否在线的热备用软件非常经常,我见过应用程序在热对等端无响应超过一毫秒时开始故障转移。另一个需要排除的应用程序是您想要保留的虚拟机,一个很好的例子是当您在多个数据中心拥有一个延伸集群时。那么将您的域控制器从 DRS 中排除并手动将它们放置在某些数据中心的某些主机上是有意义的,这样 DRS 就不会太聪明并将它们全部放置在同一个数据中心。
答案2
vMotions 对集群确实有一点影响,它会占用一些虚拟机管理程序时间,并且显然也会使用网络带宽 - 但一般来说,让它保持开启是有意义的,但如果你想降低攻击性,那也是可以的。我想知道,考虑到虚拟机的资源需求,它移动相当多可能意味着你需要更多的 CPU 和/或内存?另外,为什么你还没有升级到 6.7?
答案3
您正在通过网络将数十 GB 的 RAM 从一台主机移动到另一台主机,因此确实会产生影响。我强烈建议降低 DRS 的攻击性。每天移动虚拟机 10 次不会有任何好处;DRS 将帮助您在集群中实现总体平衡负载,然后在您创建新虚拟机时保持这种平衡(您将获得推荐的目标主机)。当主机之间存在较大差异时,它还会重新平衡集群。