集群里的虚拟机越来越多以后,很容易遇到一个问题:测试环境在高峰期抢占了生产业务资源。资源池的作用,是在集群或主机资源中划出一块逻辑边界,按部门、项目或业务优先级分配 CPU 和内存。它不是备份,也不能替代扩容,但能让资源竞争变得可控。
一、什么时候适合使用资源池
资源池适合用于这些场景:
- 生产、测试和开发环境运行在同一个集群;
- 不同部门共用主机资源,需要限制最大使用量;
- 关键业务要保证最低资源,低优先级任务可以晚一点运行;
- 管理员希望按项目查看资源消耗。
如果集群只有几台虚拟机,而且业务优先级差不多,资源池反而会增加管理复杂度。
二、创建资源池
使用 vSphere Client 登录 vCenter 后,先找到要放置资源池的集群、主机或已有资源池。不同版本界面名称可能略有差异,但基本路径一致。
1、新建资源池
在目标对象上选择新建资源池,填写名称。名称建议直接体现实际用途,例如 prod-web、test-env、finance-app,不要只写“资源池1”。
2、配置CPU和内存
创建时需要关注 Shares、Reservation 和 Limit 三类参数。Shares 决定资源竞争时的相对优先级,Reservation 用于保留最低资源,Limit 用于限制资源池可使用的上限。
| 参数 | 作用 | 使用建议 |
| Shares | 资源紧张时决定竞争优先级 | 生产高于测试,避免全部设成High |
| Reservation | 为资源池保留最低资源 | 只给关键业务设置,避免过度预留 |
| Limit | 限制资源池最大可用资源 | 适合测试环境或临时项目 |
| Expandable Reservation | 允许向父级资源借用预留 | 层级复杂时要特别谨慎 |
三、把虚拟机放进资源池
资源池建好后,可以把已有虚拟机迁移进去,也可以在创建虚拟机时直接选择对应资源池。迁移前建议先记录虚拟机当前 CPU、内存和存储使用情况,避免移动后才发现应用原本就接近资源上限。
生产业务不要和大量临时测试虚拟机混在一个资源池。测试环境常常会创建快照、跑构建任务或部署临时服务,资源波动比生产环境更明显。
四、资源池不是越多越好
资源池层级过深,管理员很难判断实际可用资源。一般先按业务优先级建立少量资源池,等团队确实需要更细的管理时,再拆分二级资源池。
一个简单的划分方式:
- 生产业务:高优先级,必要时设置预留;
- 内部系统:普通优先级,不设置过高上限;
- 测试环境:限制最大资源,避免影响生产;
- 临时任务:用完即删,不长期保留。
五、扩容前先看哪些指标
资源池报警或虚拟机变慢时,不要马上增加主机。先检查:
- 资源池是否真的达到 Limit;
- 预留是否占用了过多资源;
- 低优先级虚拟机是否长期占用高资源;
- 集群整体是否仍有空闲容量;
- 存储和网络是否才是实际瓶颈。
如果集群本身已经接近满载,只调整资源池参数解决不了问题,需要评估增加主机、迁移业务或减少虚拟机。
六、常见问题
资源池会不会隔离故障?不会。资源池主要管理计算资源分配,不等于高可用或备份。
生产资源池一定要设置Limit吗?不建议一开始就限制。先观察业务峰值,再决定是否需要上限。
Shares设置High就永远更快吗?不是。Shares只在资源竞争时体现优先级,集群资源充足时差异不一定明显。

