1. 生产集群高可用架构总览
在vSphere生产环境中,高可用从来不是单一功能,而是由多个控制平面协同形成的分层能力。vSphere HA与DRS是其中两个最核心的集群级服务:HA解决"节点故障后虚拟机能否自动恢复"的问题,DRS解决"虚拟机在正常运行时能否持续获得均衡且合理的资源"的问题。理解二者的定位差异与协作关系,是设计生产集群高可用架构的起点。
一、HA与DRS的定位差异
vSphere HA(High Availability)属于故障恢复型能力。它的工作前提是"已经发生故障",目标是在ESXi主机、网络或存储路径失效后,让受保护虚拟机在集群内其他可用主机上重新启动。HA的核心对象是故障域与重启优先级,它不关心虚拟机平时跑在哪台主机上,只关心故障发生时能否找到满足资源与兼容性要求的落点。
vSphere DRS(Distributed Resource Scheduler)属于运行优化型能力。它的工作前提是"集群整体健康",目标是通过vMotion在主机之间迁移虚拟机,使CPU、内存等资源负载趋于均衡,并遵守亲和/反亲和、主机组、虚拟机组等放置规则。DRS的核心对象是资源池、迁移阈值与规则约束。
二者并非替代关系,而是互补关系:HA保证"故障后能回来",DRS保证"平时放得合理"。如果只有HA没有DRS,故障恢复后可能出现资源严重倾斜;如果只有DRS没有HA,主机宕机时虚拟机不会自动重启。生产集群通常同时启用两者,并让DRS为HA预留合理的资源余量。
二、设计目标与可用性层级
生产集群高可用设计通常围绕四个目标展开:故障可恢复、恢复可预期、资源可均衡、策略可审计。这四个目标对应不同的可用性层级:
- L1 主机级可用:单台ESXi主机故障,虚拟机在集群内其他主机重启,依赖HA。
- L2 资源级可用:集群资源持续均衡,避免热点主机导致性能劣化,依赖DRS。
- L3 存储/网络级可用:共享存储多路径、冗余上行链路、隔离响应策略,依赖HA与网络/存储设计配合。
- L4 站点级可用:跨站点延伸集群或SRM编排,依赖HA、DRS与站点级策略共同作用。
层级越高,设计复杂度与成本越高。实际项目中应先明确业务系统所需的可用性层级,再决定HA与DRS的接入点与参数强度,而不是默认把所有集群都按最高层级配置。
三、整体架构视图
下图给出一个典型生产集群中HA与DRS的协作关系:vCenter作为管理平面,HA与DRS作为集群级服务运行;ESXi主机组成计算资源池,共享存储提供虚拟机文件;HA负责故障检测与重启编排,DRS负责运行期迁移与规则约束。图中同时标出了HA的隔离响应路径与DRS的迁移路径,便于理解二者在数据流与控制流上的分工。
四、关键参数与设计取舍
在整体架构确定后,HA与DRS的参数选择直接决定可用性表现。以下是一组典型生产集群的参考配置,用于说明参数之间的关系:
| 参数项 | 典型取值 | 设计含义 |
|---|---|---|
| HA 主机隔离响应 | 关闭并重新启动虚拟机 | 主机失联时优先释放资源,避免脑裂 |
| HA 准入控制 | 集群资源预留 25% | 保证故障切换有足够资源落点 |
| HA 重启优先级 | 核心业务=高,测试=低 | 故障时按业务重要性排序恢复 |
| DRS 自动化级别 | 全自动 | 允许DRS自动执行vMotion |
| DRS 迁移阈值 | 中等(保守偏均衡) | 平衡迁移频率与稳定性 |
| 反亲和规则 | 核心DB互斥 | 避免同业务虚拟机落在同一主机 |
需要强调的是,HA的准入控制预留与DRS的负载均衡目标存在天然张力:预留越多,故障切换越安全,但平时可用资源越少;DRS越激进,资源利用率越高,但迁移带来的瞬时开销也越大。生产设计中通常先满足HA的故障切换资源需求,再让DRS在剩余资源空间内做均衡,而不是反过来。
五、架构落地时的检查要点
整体架构视图确定后,落地前应逐项确认:集群内所有主机是否使用相同或兼容的CPU代际(影响vMotion兼容性);共享存储是否对所有主机可见且多路径正常;HA心跳数据存储是否独立于业务存储;DRS规则是否与HA重启优先级冲突;vCenter本身是否具备独立的高可用保护。这些检查点决定了HA与DRS能否按设计意图协同工作,而不是在故障时互相掣肘。