3. 集群准入控制策略设计
HA 准入控制(Admission Control)是 vSphere HA 中最容易被忽视、却直接决定故障切换能否成功的机制。它的本质是一道“资源闸门”:在虚拟机开机、vMotion 迁入或集群扩容时,vCenter 会先判断——如果此刻发生主机故障,剩余资源是否仍能容纳所有受保护虚拟机。若不能,操作就会被拒绝。准入控制不是限制你使用资源,而是保证“预留出来的那部分资源”在故障时真的可用。
一、三种策略的本质差异
vSphere 提供三种准入控制策略,它们的计算逻辑和适用场景完全不同。
集群资源百分比(Percentage based):为 CPU 和内存分别设定一个保留百分比,例如 CPU 保留 25%、内存保留 25%。集群可用资源 = 总资源 × (1 − 保留百分比)。它不关心单台主机能放多少台虚拟机,只关心整体余量。优点是配置简单、对异构主机友好;缺点是当主机规格差异大时,百分比无法精确反映“最大主机故障”后的真实容量。
槽位策略(Slot Policy):把每台虚拟机抽象为一个“槽位”,槽位大小由虚拟机的 CPU/内存预留决定(未设预留时取开机虚拟机的最大值作为默认槽位)。集群槽位总数 = 各主机可提供槽位之和;HA 会预留“最大主机”所对应的槽位数量。优点是直观、可精确计算“还能开几台”;缺点是槽位大小受最大虚拟机影响,一台超大内存虚拟机就会拉高所有槽位成本,导致资源利用率偏低。
专用故障切换主机(Dedicated Failover Host):指定 1~N 台主机作为纯备用,不承载生产虚拟机。故障时由这些主机接管。它最“保险”,但代价是备用主机平时完全闲置,适合对可用性要求极高、资源预算充足的核心业务集群。
二、预留资源计算:先算清楚,再选策略
无论选哪种策略,第一步都是算清“故障后需要多少资源”。假设一个 4 节点集群,每节点 2×16 核 = 32 物理核、512 GB 内存,集群共 128 核 / 2048 GB。业务侧统计:共 60 台虚拟机,CPU 总预留 48 核,内存总预留 768 GB。
若按“允许 1 台主机故障”设计,故障后剩余 3 台主机提供 96 核 / 1536 GB。此时:
- CPU 余量 = 96 − 48 = 48 核,余量比例 50%;
- 内存余量 = 1536 − 768 = 768 GB,余量比例 50%。
也就是说,若采用百分比策略,CPU 和内存保留百分比都应设为 50%,才能保证 1 台主机故障后仍能容纳全部预留。若业务允许 2 台主机同时故障,则剩余 2 台提供 64 核 / 1024 GB,内存余量仅 256 GB,保留比例需设为 50%(内存)甚至更高,实际已接近不可行——这说明“允许 2 台故障”在该规格下需要扩容或降低预留。
三、槽位策略的量化示例
仍以上述集群为例,若虚拟机统一设置 CPU 预留 1 核、内存预留 8 GB,则单槽位 = 1 核 + 8 GB。每台主机可提供槽位:CPU 维度 32 ÷ 1 = 32 个,内存维度 512 ÷ 8 = 64 个,取较小值 32 个槽位。4 台主机共 128 个槽位,预留“最大主机”的 32 个槽位后,可用槽位 96 个,可容纳 96 台此类虚拟机。
但如果集群里有一台数据库虚拟机预留了 16 核 / 256 GB,槽位大小会被拉高为 16 核 / 256 GB,每台主机仅能提供 2 个槽位,集群可用槽位骤降到 6 个。这正是槽位策略的典型陷阱:一台“巨无霸”虚拟机会拖垮整个集群的准入容量。因此槽位策略更适合虚拟机规格整齐、预留统一的场景。
四、配置实战:在 vSphere Client 中落地
配置入口在集群 → 配置 → 可用性 → vSphere HA → 编辑 → 准入控制。以下以“百分比策略、允许 1 台主机故障”为例,给出可参考的操作路径与参数。
1. 选中集群 → 配置 → 可用性 → vSphere HA → 编辑
2. 在“准入控制”页,选择“集群资源百分比”
3. 勾选“定义自定义故障切换资源百分比”
4. CPU 保留:50% 内存保留:50%
5. 勾选“故障切换时使用预留”以强制按预留计算
6. 点击“确定”,观察集群摘要中的“当前故障切换容量”
配置完成后,集群摘要页会显示“当前故障切换容量”和“预留容量”。若显示为“不足”,说明当前预留已超过准入阈值,需要降低虚拟机预留、增加主机或调整保留百分比。若采用槽位策略,则在同一页面选择“槽位策略”,并指定“槽位大小由虚拟机预留决定”或“自定义槽位大小”。
五、策略选择决策表
| 判断条件 | 推荐策略 | 理由 |
|---|---|---|
| 主机规格差异大(如 32 核与 64 核混用) | 百分比策略 | 按总量计算,避免槽位被小主机拉低 |
| 虚拟机规格整齐、预留统一 | 槽位策略 | 可精确计算剩余可开机数量 |
| 存在超大内存虚拟机(如 256 GB+) | 百分比策略 | 避免单台 VM 拉高槽位成本 |
| 核心数据库、要求秒级切换 | 专用故障切换主机 | 备用主机随时可用,切换最确定 |
| 资源紧张、希望最大化利用率 | 百分比策略 + 精细预留 | 按实际预留计算,减少过度保留 |
最后强调一个工程习惯:准入控制参数不是一次配置就永久有效。每次扩容、下线主机、调整虚拟机预留后,都应重新核对“当前故障切换容量”。建议把“故障切换容量检查”纳入变更流程,确保任何一次资源变更后,HA 仍然能在真实故障发生时兑现承诺。