之前多次在项目中碰到这个问题,明明vsphere集群的DRS策略已经调整为“最激进”,但是集群DRS的负载还是显示失衡。今天实在没辙,在报vmware case解决后,将方法和一些细节总结下:
1、概念普及:
- vSphere DRS
一种有助于改善所有主机和资源池之间的资源分配及功耗状况的功能。vSphere
DRS 收集群集内所有主机和虚拟机的资源使用情况信息,并在出现以下两种情
况之一时给出建议(或迁移虚拟机):
n 初始放置位置 - 当您首次打开群集中的某个虚拟机的电源时,DRS 将放置
该虚拟机或提出放置建议。
n 负载平衡 - DRS 会尝试通过执行虚拟机的自动迁移 (vMotion) 或提供虚拟
机迁移建议提高群集中的资源利用率。
2、处理DRS失衡问题
开了case后,vmware工程师,首先让我按照下面的介绍以及KB调优DRS,总结如下:
在一些情况下载群集负载不平衡时DRS没有进行虚拟机迁移,这可能是一个已知问题,您可以参考以下方法解决
A DRS cluster on vCenter Server 4.x and 5.x shows the warning: Load imbalanced (10172911)
For vCenter Server 5.1:
1. Host showing 0 Mhz for CPU and Memory Resource utilization
2. Right click and Disconnect the host with no Resource usage.
3. Right click and Connect the host.
For vCenter Server 4.1 and 5.0:
1. Right-click the DRS cluster and click Edit Settings.
2. Click VMware DRS, then click Advanced Options.
3. Click in the Option column and enter:
MinGoodness
Note: Do not change the case of MinGoodness.
4. Click in the Value column and enter 0.
5. Repeat the above steps for type CostBenefit and change the value to 0.
6. Click OK twice.
7. After a few minutes, check to ensure that the load is balanced and that the warning no longer appears.
Note: These changes may result in more DRS load balancing activity in the cluster.
具体来说,最终的效果就是如下图所示:
但是,在我按照上述方式配置完,等待了一天后,发现集群的DRS负载依然是失衡状态。说实话,当时有点怀疑到底是项目中vshpere环境配置的问题,还是vmware工程师给的参考有问题。
3、与vmware工程师webex,其远程查看了我vsphere环境中的具体配置后,确认了如下的配置问题,具体分析过程:
a) vsphere集群环境中有一台tsm虚拟机,占用资源比较多,且需要通过vmware的passthrough功能添加一个HBA卡,故当时是制定了一个DRS规则,将该虚拟机固定在某一台ESXi主机中。
b) 当将vsphere集群的DRS策略调成“最激进”后,由于本身DRS的最激进策略的阀值计算方式与“中间”策略的阀值计算方式不一样,也就是“最激进”策略能否容忍资源失衡的标准要大大高于“中间”策略。但是鉴于我之前添加了一条DRS规则,将tsm的虚拟机(耗资源又比较大)要固定在指定的某一台ESXi主机中,所以本身DRS必须不能违反这一条规则,不能迁移这台tsm虚拟机,迁移其他虚拟机又无法满足DRS平衡标准,故会一直显示DRS资源失衡。
c)解决方式:基于这样的情况,需要将DRS的迁移阀值调到中间左右,不要保持在“最激进”策略,具体如下:
因为迁移阀值在中间的话,其所能容忍的失衡标准是低于“最激进”。
具体DRS迁移阀值的计算公式可参考以下官方KB:
阅读(10487) | 评论(0) | 转发(0) |