VMware的分布式资源调度(Distributed Resource Scheduler,DRS),可以动态地分配和平衡计算容量,将硬件资源聚集到逻辑资源池中。可以持续不断地监控资源池的利用率,智能分配资源,允许用户自己定义规则和方案来决定虚拟机共享资源的方式及它们之间优先权的判断根据。

习惯上,DRS一直考虑主机和虚拟机的计算资源(CPU和内存)利用率,以平衡主机间的负载并在开机时放置虚拟机。 通常这会很好的运行,因为在许多情况下,CPU和内存是获得良好应用性能所需的最重要资源。然而,由于此方法不考虑网络的可用性,有时会导致将虚拟机放置或迁移到已经网络饱和的主机上。 如果应用碰巧对网络敏感,这可能会产生一些性能影响。
DRS在vSphere 6.5中具有网络感知能力,因此它在初始放置和负载均衡期间考虑了主机的网络利用率和虚拟机的网络使用需求。 这使得DRS的负载均衡和虚拟机的初始放置更有效。

工作原理
在初始放置和负载均衡期间,DRS首先根据计算资源提供用以运行虚拟机的最佳主机列表,然后根据虚拟机和主机网络利用率使用一些启发式方法决定最终的主机。 这可以确保虚拟机获取其所需的网络资源以及计算资源。
vSphere 6.5中的网络感知DRS的目标仅在于确保主机具有足够可用的网络资源以及虚拟机所需的计算资源。 因此,与平衡CPU和内存负载的常规DRS不同,网络感知的DRS不会平衡集群中的网络负载,这意味着当网络负载不均衡时,它不会触发vMotion。

网络感知初始放置
DRS通过两个步骤进行初始安置:

  1. 它根据集群约束和计算资源可用性编写可能的主机列表并对它们进行排序。
  2. 然后,从主机列表中挑选具有最佳排名和最佳网络资源可用性的主机。

网络感知负载均衡
在负载均衡运行期间,DRS

  1. 首先生成可能的迁移建议列表。
  2. 然后去除目标主机网络饱和的建议。
  3. 从列表中剩余的建议里,推荐在计算资源方面具有最大均衡改善及有助于源主机上的网络资源可用性的那一个,以防源主机网络饱和。

主机网络饱和阈值
如前所述,只有在网络利用率超过特定阈值的情况下,DRS才会在负载平衡决策期间避开网络负载过大的主机。因此,除非主机网络利用率高于80%,否则DRS会认为主机在网络资源可用性方面是一个很好的备选。
如果主机的网络利用率达到或高于饱和阈值,则DRS会将其视为网络饱和。 如果群集中的所有主机都处于网络饱和状态,则DRS不会迁移网络负载大的虚拟机,因为将网络负载大的虚拟机迁移到已经网络饱和的主机会导致虚拟机性能进一步下降。 由于此行为而导致DRS无法迁移虚拟机时,有时会导致集群负载不均衡。

监控主机网络利用率
从vSphere 6.5开始,您可以在vSphere Web Client中DRS监控选项卡下监控主机的网络负载分布,如图1所示。
vSphere 6.5中网络感知的DRS解析

主机的网络利用率是在该主机上的所有物理网卡(pNIC)使用量的平均值。 例如,如果主机有三个pNIC,其中一个使用率为90%,另外两个使用率为0%,则认为主机的网络利用率为30%。

初始放置期间避开网络饱和的主机
以下案例研究显示了网络感知DRS如何在初始放置虚拟机期间避开网络利用率较高的主机。
我们从四个具有非常相似的资源利用率的主机集群开始。 图2和图3显示了四台主机的CPU和内存利用率。
vSphere 6.5中网络感知的DRS解析
图2- 显示均匀分布的CPU利用率视图
vSphere 6.5中网络感知的DRS解析
图3 - 显示大多数均匀分布的内存利用率视图
如图4所示,其中一台主机(10.152.232.163)具有较高的网络利用率。
vSphere 6.5中网络感知的DRS解析
图4 - 网络利用率显示其中一台主机具有较高的网络利用率
此时,我们向集群中引入了八个新虚拟机(已启动),并注意到DRS在放置虚拟机时避开了网络利用率高的主机。 图5显示了由于这些新启动的虚拟机而造成其他3台主机的CPU利用率增加,而网络饱和主机中的CPU利用率保持不变。
vSphere 6.5中网络感知的DRS解析
图5 -显示引入8个新虚拟机之后的分布情况的CPU利用率视图
负载平衡期间避开网络饱和的主机
以下案例研究解释了网络感知DRS如何在平衡集群负载时避开具有较高网络利用率的主机.
对于本次分析,我们从具有四个主机的集群开始。 其中一台主机网络饱和,利用率超过80%。 图6显示了集群中网络利用率的视图。
vSphere 6.5中网络感知的DRS解析
图6 一台网络饱和主机的网络利用率视图
如图7所示,集群负载不均衡。 集群中的CPU负载分配不均匀,而且网络饱和的主机CPU利用率最低。 图8显示了主机间的CPU负载分布。
vSphere 6.5中网络感知的DRS解析
图7– 集群均衡视图
vSphere 6.5中网络感知的DRS解析
图 8 –显示不均匀的负载分布的CPU利用率视图
为了平衡整个集群的CPU利用率,DRS启动了虚拟机迁移。 图9 显示了生成的迁移列表,其中DRS完全避开了网络饱和主机,尽管它在CPU方面利用率最低。
vSphere 6.5中网络感知的DRS解析
图 9 - 显示避开网络饱和主机时的负载均衡建议的建议历史视图
由于DRS阻止将虚拟机迁移到主机,因此网络饱和主机中的CPU利用率保持不变。(图10)。
vSphere 6.5中网络感知的DRS解析
图 10 - 显示DRS迁移后负载保持不变的网络饱和主机的CPU利用率视图。