跳转到内容

CRS 调度与动态负载均衡 ​

CRS(Cluster Resource Scheduler,集群资源调度器)负责在 HA 资源需要启动或恢复时,决定它落在哪个节点上。Proxmox VE 9.2 给它加上了持续运行的动态负载均衡能力,让它不只在启动那一刻做决定,还能在集群运行过程中主动搬动负载。

静态调度 vs 动态负载均衡 ​

模式行为适用版本
静态(基础)只在 HA 资源需要启动或从故障恢复时,选一个"当前负载最低"的节点长期存在
动态负载均衡持续观察各节点的实时 CPU、内存等负载,在资源已经运行的情况下也可能主动把它迁移到更空闲的节点,同时遵守已配置的 affinity 规则9.2 引入

只对 HA 管理的资源生效

动态负载均衡只会移动被 HA 接管的虚拟机/容器。没有纳入 HA 管理的客户机,不管节点负载多高都不会被自动迁移。如果你希望某些客户机参与均衡,先按高可用入门把它们纳入 HA。

开始之前 ​

  • 先完成 HA 的基本配置(高可用入门)和需要的 affinity 规则——动态均衡会尊重这些规则,不会把互斥的资源迁到同一节点。
  • 想清楚集群里是否有"不希望被自动迁移打扰"的关键客户机,提前用 resource-affinity/node-affinity 规则加以约束,或者干脆不把它们纳入 HA。
  • 动态均衡本质上是"自动发起迁移",继承在线迁移与离线迁移里的网络和存储前提——本地磁盘且没有存储复制的资源,被迁移时代价更大。

在哪里开启 ​

按官方发布说明的描述,动态负载均衡的开关和参数在 数据中心 → HA 下的 CRS 相关设置里,核心是一个"自动重新均衡 HA 资源"的开关,以及控制均衡积极程度的几个参数(大致包括:触发均衡的不均衡阈值、均衡方式、两次均衡之间的最短间隔、以及最小的均衡改善幅度)。

具体字段名称以你界面上的文字为准

以上参数名是根据官方发布说明转述的,不同版本的界面文案可能有出入,配置时请对照你当前版本的实际界面逐项确认含义,不要照抄本文的字段名去执行命令行操作。

打开自动均衡等于允许集群自己发起迁移

一旦打开持续均衡,集群可能在你没有手动操作的情况下,自己把资源在节点间搬来搬去。这对性能敏感、迁移代价高(比如内存很大、磁盘在本地存储)的客户机可能不友好。

建议:先用默认参数观察一段时间,不要一上来就调成"频繁均衡";两次均衡之间的最短间隔(hold duration)这类参数就是为了防止资源来回抖动,调低它之前先想清楚代价。

回退方法:关闭"自动重新均衡"开关即可让 CRS 退回静态模式——已经在运行的资源不会被再移动,只是不再持续均衡。

检查结果 ​

  • 在 Web UI 的任务日志里查看是否出现了由 CRS 自动发起的迁移任务(不是你手动点的那种)。
  • ha-manager status 可以看到当前调度器模式和资源分布。
  • 观察一段时间后,用 PVE 内置的图表/监控确认各节点的负载是否确实更均衡了,而不是频繁抖动。

常见问题 ​

没有纳入 HA 的虚拟机被迁移了,是均衡搞的吗? 不会是它——动态均衡只处理 HA 资源。先确认这台虚拟机是不是本来就在 HA 管理之下,或者是不是被人手动迁移的。

均衡太频繁,业务能感知到迁移带来的短暂抖动。 调大两次均衡之间的最短间隔,或者提高触发均衡所需的不均衡阈值,让它只在差距足够大时才动手。

均衡好像完全没反应。 确认开关确实打开了,并检查涉及的资源是否被严格的 node-affinity/resource-affinity 规则限制住了去处——规则的约束优先于均衡的"理想目标"。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。