VMware vSphere 故障排查实战系列:DRS 不均衡调度原理与诊断(12)
我最近在看一篇关于 DRS 的排查文章,里面有一个点我很认同:很多“DRS 不均衡”的现场,不是 DRS 坏了,而是我们把“看起来不均衡”和“值得迁移”混在了一起。
这篇我按自己的实战习惯整理成一版,重点放在三件事:
- DRS 到底按什么逻辑判定要不要迁移
- 什么配置最常导致“看起来不工作”
- 出问题后怎么快速定位,不靠拍脑袋
一、先统一认知:DRS 不是“均分 CPU 百分比”
DRS(Distributed Resource Scheduler)做的是集群级的资源调度,核心能力有三个:
- 初始放置:虚拟机开机时选目标主机
- 持续均衡:运行中根据负载变化给出或执行迁移
- 维护联动:主机进维护模式时配合迁移虚拟机
它默认按周期评估(常见是约 5 分钟),不是每秒钟盯着图表自动迁移。
实际判断里,DRS 看的是收益与代价,而不是“谁 CPU 高谁就一定要动”。
二、为什么你觉得不均衡,但 DRS 不迁
典型场景是 A 主机 80%+,B 主机 20% 左右,但 DRS 没动。常见原因如下:
1)自动化级别不对
如果集群设成 Manual 或 Partially Automated,DRS 可能只提建议,不自动执行迁移。
2)Migration Threshold 太保守
阈值偏保守(例如 1-2)时,小到中等不均衡可能被判定为“不值得迁”。
3)规则限制了可迁移空间
Affinity / Anti-Affinity 规则、VM/Host Rule、VM Override 都可能让 DRS 无法选出满足约束的目标。
4)目标主机不满足条件
例如目标主机资源不足、处于维护模式、EVC/CPU 兼容条件不满足,DRS 会放弃这次迁移。
5)业务视角和 DRS 视角不一致
运维常盯的是主机利用率;DRS 还会考虑虚拟机活跃内存、迁移成本、短时波动是否会自愈。
所以有些“看起来难受”的分布,在 DRS 看来仍是可接受状态。
三、排查顺序
这个顺序的目标是:先排配置,再看限制,最后进日志。
步骤 1:先看集群 DRS 基础配置
检查项:
Automation Level是否Fully AutomatedMigration Threshold是否过保守- DRS 是否处于启用状态
步骤 2:看规则和单 VM 覆盖
检查项:
VM/Host Rules是否限制了迁移路径VM Overrides是否把关键 VM 设成了Manual或Disabled
步骤 3:看 DRS Faults / Recommendations / History
重点看:
- 当前为什么不给建议(或建议不可执行)
- 历史上有没有频繁建议但失败
- 是否存在“同一类失败反复出现”(资源不足、兼容性问题、规则冲突)
步骤 4:看 EVC 与跨代 CPU 兼容
如果集群有不同代际 CPU,又没正确配置 EVC,vMotion 成功率会受影响,DRS 自然会变保守。
步骤 5:必要时进 vCenter DRS 日志
定位困难场景建议看 vCenter 上的 DRS 决策日志目录(按版本路径可能略有差异):
/var/log/vmware/vpxd/drmdump/<cluster>/这里能看到 DRS 每轮评估时的决策依据,适合处理“UI 看不清、规则又复杂”的集群。
四、实战里的几个误区
误区 1:把“有波动”当“有故障”
短时热点不一定要迁;频繁迁移本身也有代价(尤其是业务敏感时段)。
误区 2:阈值一把拉到激进
阈值过激进会增加 vMotion 频率,可能换来“表面更均衡,业务抖动更多”。
误区 3:规则越多越安全
规则越多,DRS 决策空间越小。规则应服务业务边界,而不是把调度器锁死。
五、可直接落地的调优建议
给一个我比较常用的保守起步方案:
- 生产集群优先
Fully Automated Migration Threshold从默认中间档起步(先观察,不急着拉满)- 关键数据库类 VM 用
VM Override做定向约束 - 跨代 CPU 集群提前把 EVC 策略定好
- 定期复核规则,删掉历史遗留但已无业务意义的约束
六、一份排障清单
问题:DRS 看起来不均衡
1. 集群 DRS 是否启用?
2. Automation Level 是否 Fully Automated?
3. Migration Threshold 是否过保守?
4. VM Overrides 有没有禁用/半自动的虚拟机?
5. VM/Host Rules 是否造成冲突?
6. DRS Faults 有没有明确报错?
7. 目标主机资源是否满足迁移条件?
8. EVC/CPU 兼容性是否满足?
9. 历史建议是“无建议”还是“建议失败”?
10. 必要时看 drmdump 日志确认决策原因结语
DRS 的核心不是“看到不均衡就迁”,而是“在约束条件下做收益更高的调度”。
只要把配置、规则、兼容性和日志这四层捋顺,绝大多数“DRS 不工作”的问题都能落地定位。
参考:微信原文《VMware vSphere 故障排查实战系列-DRS 不均衡?调度原理与诊断(12)》