一键登录 更安全快捷
邮箱登录
我已阅读并接受 用户协议 隐私政策

DRS已开启但虚拟机全部集中挤在单台ESXi主机故障排查处理

vSphere集群DRS功能已经启用,集群内多台ESXi主机资源空闲,但大量虚拟机仍然全部集中运行在其中一台主机,DRS不会自动执行虚拟机迁移实现负载均衡。优先核查DRS Migration Threshold迁移阈值,阈值设置过于保守会抑制自动迁移;其次检查VM‑Host亲和/反亲和规则,CPU、内存亲和性策略会强制约束虚拟机只能运行指定主机;同时还需要确认DRS自动化级别、资源池、交换、balloon、主机维护模式等其他限制条件。

有VMware全系列产品官方资源和定制版资源需求的可以移步:

一、机房现场故障踩坑背景

三节点ESXi集群,DRS开启为全自动模式,其中一台主机CPU内存负载很高,另外两台主机负载很低,但虚拟机不会自动迁移出去,业务全部挤在高负载主机。手动执行vMotion迁移虚拟机可以正常执行,DRS却不会自动调度。

 1.1 初期无效排查操作

关闭再重新打开DRS;重启vCenter服务;重启ESXi主机;手动执行vMotion把虚拟机分散,过一段时间又逐步汇集到同一台主机。

1.2 分层定位真实故障根因

DRS迁移阈值设置为最保守级别1,DRS只在资源严重失衡时才会建议迁移,轻微负载差异不会触发自动调度;同时存在遗留VM‑Host亲和规则,部分虚拟机被规则限制只能运行该主机。调高迁移阈值,清理无效亲和规则,DRS开始自动均衡负载。 现场验证修复:调整DRS迁移阈值,删除过期VM‑Host亲和性规则,集群虚拟机自动vMotion分散到多台主机,各主机负载趋于均衡。

二、DRS不自动均衡虚拟机底层原理

1、DRS迁移阈值Migration Threshold

DRS迁移阈值一共分为1‑5级,1最保守,5最激进。阈值越低,DRS对负载差异容忍度越高,只有资源严重不平衡才给出迁移建议;阈值越高,微小负载差异就会触发自动迁移。阈值设置1的时候,很多负载不均衡场景DRS不会行动。

2、VM‑Host亲和性规则

VM‑Host亲和规则可以强制虚拟机只能运行在指定ESXi主机;反亲和要求虚拟机分开运行。规则启用后DRS调度必须遵守该策略,即使主机负载很高,也不会将虚拟机迁移离开允许的主机。旧业务下线后规则未删除,是常见隐形坑。

3、DRS自动化级别影响

DRS分为全自动、半自动、手动。手动模式DRS只给出迁移建议,不会自动执行vMotion;半自动仅开机时调度,运行中负载变化不会自动迁移。自动化级别错误会表现为DRS开启但不自动迁移。

4、其他阻止DRS调度因素

主机处于维护模式、进入待机;vMotion网络异常;虚拟机有CPU/内存资源预留过高;资源池限制;DRS规则冲突;虚拟机有快照、热迁移不兼容设备都会阻止自动迁移。

5、DRS不是实时均衡

DRS是周期性采样调度,不是实时立刻均衡,采样周期内负载变化不会马上触发迁移。

三、标准化排查判断标准与操作流程

1、检查集群DRS基础配置

集群→配置→vSphere DRS,确认DRS自动化级别;查看Migration Threshold迁移阈值。生产环境一般建议设置为2‑3;如果为1,负载不均衡大概率不会自动迁移。

2、核查VM‑Host亲和/反亲和规则

集群→配置→规则,逐条检查VM‑Host亲和规则,确认是否有强制虚拟机绑定某台主机的策略。业务已经变更要及时删除废弃规则。规则状态为启用就会生效。

3、确认vMotion基础能力正常

手动对虚拟机执行vMotion迁移,如果手动迁移报错,DRS自动迁移同样无法执行。检查vMotion网络、端口组、MTU配置。

4、检查主机状态与虚拟机特殊配置

确认其余ESXi主机不在维护模式、待机模式;检查虚拟机内存Reservation预留过高;检查是否挂载不支持热迁移设备。

5、查看DRS事件与建议

集群监控→事件,筛选DRS相关事件,查看DRS给出的迁移建议、拒绝迁移原因,事件会写明为什么不执行迁移。

6、验证效果

调整阈值、清理无效规则后,等待DRS下一个调度周期,观察虚拟机是否自动分散,集群各主机负载均衡。

四、高频故障排错清单

故障现象根因分析标准解决方案
DRS已开启,VM全部挤一台主机,其他主机空闲,手动vMotion正常DRS迁移阈值设置过低(保守级别1),负载差异不足以触发迁移将DRS Migration Threshold调整为2‑3级别,观察DRS调度行为
DRS阈值正常,虚拟机仍然强制集中在单台主机存在启用状态VM‑Host亲和规则,强制VM只能运行指定ESXi主机进入集群规则列表,核查并删除过期、废弃的VM‑Host亲和约束规则
DRS配置为手动模式,只看到迁移建议,不会自动迁移VMDRS自动化级别设置错误,仅生成建议,不会自动执行vMotionDRS修改为全自动模式;如果业务谨慎使用半自动,需要人工确认迁移建议
DRS想迁移,但手动vMotion也失败,完全无法移动虚拟机vMotion网络故障,虚拟机挂载热迁移不兼容硬件设备排查vMotion网络,移除不支持热迁移设备,修复vMotion基础功能
删除亲和规则调高阈值,VM还是聚集在同一台主机DRS为周期采样调度,非实时;或者资源池、虚拟机高预留限制调度等待DRS调度周期;检查资源池份额、虚拟机内存CPU预留配置

五、运维高频误区避坑

1. 误区:DRS开启就必须立刻把虚拟机均匀打散到每台主机纠正:DRS是基于资源负载的智能调度,不是平均分配虚拟机数量,并且是周期执行不是实时动作。

2. 误区:迁移阈值设置越高越好,直接调到5纠正:阈值5过于激进,会产生大量频繁vMotion,带来网络开销抖动,生产不建议使用,推荐2‑3区间。

3. 误区:业务下线,VM‑Host规则不去删除,留着没有影响纠正:亲和规则只要处于启用状态就持续生效,会造成DRS调度异常,废弃规则及时清理。

4. 误区:手动vMotion可以迁移,DRS就一定会自动迁移纠正:手动迁移不受DRS阈值、规则约束;DRS自动迁移会严格遵从阈值、规则、自动化级别多重条件。

5. 误区:DRS不工作,直接开关DRS功能就可以修复纠正:开关DRS不会修改阈值和亲和规则,根源配置不修改,开关DRS无法解决聚集问题。

六、DRS集群运维标准化规范

  1. 配置规范:生产集群DRS自动化级别使用全自动,迁移阈值建议2‑3,避免使用1过于保守或者5过度激进。

  2. 规则管理规范:VM‑Host亲和/反亲和规则要做好备注,业务下线同步删除对应规则,定期巡检集群规则列表。

  3. 排障顺序规范:DRS不自动均衡排查顺序:自动化级别→迁移阈值→集群亲和规则→vMotion可用性→DRS事件日志。

  4. 巡检规范:日常巡检除主机负载,同时查看DRS事件,关注拒绝迁移、迁移建议事件,提前发现调度异常。

  5. 变更规范:新增亲和规则之后,观察DRS调度行为,确认没有造成虚拟机异常聚集。

  6. DRS已开启但虚拟机全部集中挤在单台ESXi主机故障排查处理

    DRS已开启但虚拟机全部集中挤在单台ESXi主机故障排查处理

    vSphere集群DRS功能已经启用,集群内多台ESXi主机资源空闲,但大量虚拟机仍然全部集中运行在其中一台主机,DRS不会自动执行虚拟机迁移实现负载均衡。优先核查DRS Migration Threshold迁移阈值,阈值设置过于保守会抑制自动迁移;其次检查VM‑Host亲和/反亲和规则,CPU、内存亲和性策略会强制约束虚拟机只能运行指定主机;同时还需要确认DRS自动化级别、资源池、交换、balloon、主机维护模式等其他限制条件。

    一、机房现场故障踩坑背景

    三节点ESXi集群,DRS开启为全自动模式,其中一台主机CPU内存负载很高,另外两台主机负载很低,但虚拟机不会自动迁移出去,业务全部挤在高负载主机。手动执行vMotion迁移虚拟机可以正常执行,DRS却不会自动调度。 1.1 初期无效排查操作

    关闭再重新打开DRS;重启vCenter服务;重启ESXi主机;手动执行vMotion把虚拟机分散,过一段时间又逐步汇集到同一台主机。

  7. 1.2 分层定位真实故障根因

  8. DRS迁移阈值设置为最保守级别1,DRS只在资源严重失衡时才会建议迁移,轻微负载差异不会触发自动调度;同时存在遗留VM‑Host亲和规则,部分虚拟机被规则限制只能运行该主机。调高迁移阈值,清理无效亲和规则,DRS开始自动均衡负载。 现场验证修复:调整DRS迁移阈值,删除过期VM‑Host亲和性规则,集群虚拟机自动vMotion分散到多台主机,各主机负载趋于均衡。

    二、DRS不自动均衡虚拟机底层原理

  9. 1、DRS迁移阈值Migration Threshold

  10. DRS迁移阈值一共分为1‑5级,1最保守,5最激进。阈值越低,DRS对负载差异容忍度越高,只有资源严重不平衡才给出迁移建议;阈值越高,微小负载差异就会触发自动迁移。阈值设置1的时候,很多负载不均衡场景DRS不会行动。

  11. 2、VM‑Host亲和性规则

  12. VM‑Host亲和规则可以强制虚拟机只能运行在指定ESXi主机;反亲和要求虚拟机分开运行。规则启用后DRS调度必须遵守该策略,即使主机负载很高,也不会将虚拟机迁移离开允许的主机。旧业务下线后规则未删除,是常见隐形坑。

  13. 3、DRS自动化级别影响

  14. DRS分为全自动、半自动、手动。手动模式DRS只给出迁移建议,不会自动执行vMotion;半自动仅开机时调度,运行中负载变化不会自动迁移。自动化级别错误会表现为DRS开启但不自动迁移。

  15. 4、其他阻止DRS调度因素

  16. 主机处于维护模式、进入待机;vMotion网络异常;虚拟机有CPU/内存资源预留过高;资源池限制;DRS规则冲突;虚拟机有快照、热迁移不兼容设备都会阻止自动迁移。

  17. 5、DRS不是实时均衡

  18. DRS是周期性采样调度,不是实时立刻均衡,采样周期内负载变化不会马上触发迁移。

    三、标准化排查判断标准与操作流程

  19. 1、检查集群DRS基础配置

  20. 集群→配置→vSphere DRS,确认DRS自动化级别;查看Migration Threshold迁移阈值。生产环境一般建议设置为2‑3;如果为1,负载不均衡大概率不会自动迁移。

  21. 2、核查VM‑Host亲和/反亲和规则

  22. 集群→配置→规则,逐条检查VM‑Host亲和规则,确认是否有强制虚拟机绑定某台主机的策略。业务已经变更要及时删除废弃规则。规则状态为启用就会生效。

  23. 3、确认vMotion基础能力正常

  24. 手动对虚拟机执行vMotion迁移,如果手动迁移报错,DRS自动迁移同样无法执行。检查vMotion网络、端口组、MTU配置。

  25. 4、检查主机状态与虚拟机特殊配置

  26. 确认其余ESXi主机不在维护模式、待机模式;检查虚拟机内存Reservation预留过高;检查是否挂载不支持热迁移设备。

  27. 5、查看DRS事件与建议

  28. 集群监控→事件,筛选DRS相关事件,查看DRS给出的迁移建议、拒绝迁移原因,事件会写明为什么不执行迁移。

  29. 6、验证效果

  30. 调整阈值、清理无效规则后,等待DRS下一个调度周期,观察虚拟机是否自动分散,集群各主机负载均衡。

    四、高频故障排错清单

    故障现象根因分析标准解决方案
    DRS已开启,VM全部挤一台主机,其他主机空闲,手动vMotion正常DRS迁移阈值设置过低(保守级别1),负载差异不足以触发迁移将DRS Migration Threshold调整为2‑3级别,观察DRS调度行为
    DRS阈值正常,虚拟机仍然强制集中在单台主机存在启用状态VM‑Host亲和规则,强制VM只能运行指定ESXi主机进入集群规则列表,核查并删除过期、废弃的VM‑Host亲和约束规则
    DRS配置为手动模式,只看到迁移建议,不会自动迁移VMDRS自动化级别设置错误,仅生成建议,不会自动执行vMotionDRS修改为全自动模式;如果业务谨慎使用半自动,需要人工确认迁移建议
    DRS想迁移,但手动vMotion也失败,完全无法移动虚拟机vMotion网络故障,虚拟机挂载热迁移不兼容硬件设备排查vMotion网络,移除不支持热迁移设备,修复vMotion基础功能
    删除亲和规则调高阈值,VM还是聚集在同一台主机DRS为周期采样调度,非实时;或者资源池、虚拟机高预留限制调度等待DRS调度周期;检查资源池份额、虚拟机内存CPU预留配置

    五、运维高频误区避坑

    1. 误区:DRS开启就必须立刻把虚拟机均匀打散到每台主机纠正:DRS是基于资源负载的智能调度,不是平均分配虚拟机数量,并且是周期执行不是实时动作。

    2. 误区:迁移阈值设置越高越好,直接调到5纠正:阈值5过于激进,会产生大量频繁vMotion,带来网络开销抖动,生产不建议使用,推荐2‑3区间。

    3. 误区:业务下线,VM‑Host规则不去删除,留着没有影响纠正:亲和规则只要处于启用状态就持续生效,会造成DRS调度异常,废弃规则及时清理。

    4. 误区:手动vMotion可以迁移,DRS就一定会自动迁移纠正:手动迁移不受DRS阈值、规则约束;DRS自动迁移会严格遵从阈值、规则、自动化级别多重条件。

    5. 误区:DRS不工作,直接开关DRS功能就可以修复纠正:开关DRS不会修改阈值和亲和规则,根源配置不修改,开关DRS无法解决聚集问题。

    六、DRS集群运维标准化规范

    1. 配置规范:生产集群DRS自动化级别使用全自动,迁移阈值建议2‑3,避免使用1过于保守或者5过度激进。

    2. 规则管理规范:VM‑Host亲和/反亲和规则要做好备注,业务下线同步删除对应规则,定期巡检集群规则列表。

    3. 排障顺序规范:DRS不自动均衡排查顺序:自动化级别→迁移阈值→集群亲和规则→vMotion可用性→DRS事件日志。

    4. 巡检规范:日常巡检除主机负载,同时查看DRS事件,关注拒绝迁移、迁移建议事件,提前发现调度异常。

    5. 变更规范:新增亲和规则之后,观察DRS调度行为,确认没有造成虚拟机异常聚集。

用户留言 User Comments