24.2. Pacemaker 资源分配
Pacemaker 根据节点首选、节点容量和资源分配首选项分配资源。
24.2.1. 节点首选项
Pacemaker 根据以下策略决定在分配资源时首选哪个节点。
- 节点权重最高的节点会首先被消耗。节点 weight 是集群维护的分数,以表示节点健康状况。
如果多个节点具有相同的节点权重:
如果
placement-strategy
集群属性是default
或utilization
:- 分配的资源最少的节点会首先被消耗。
- 如果分配的资源数量相等,在 CIB 中列出的第一个有资格的节点会首先被消耗。
如果
placement-strategy
集群属性是balanced
:- 具有最多可用容量的节点会首先被消耗。
- 如果节点的空闲容量相等,首先消耗分配的资源数量最少的节点。
- 如果节点的空闲容量相等,并且分配的资源数量相等,在 CIB 中列出的第一个有资格的节点会首先被消耗。
-
如果
placement-strategy
集群属性是minimal
,则 CIB 中列出的第一个有资格的节点会首先被使用。
24.2.2. 节点容量
Pacemaker 根据以下策略决定哪个节点拥有最多的可用容量。
- 如果只定义了一种类型的使用属性,那么空闲容量就是一个简单的数字比较。
如果定义了多个类型的使用属性,那么在最多属性类型中数字最高的节点具有最大的可用容量。例如:
- 如果 NodeA 有更多可用 CPU,而 NodeB 拥有更多可用内存,则它们的可用容量是相等的。
- 如果 NodeA 有更多可用 CPU,而 NodeB 有更多可用内存和存储,则 NodeB 具有更多可用容量。
24.2.3. 资源分配首选项
Pacemaker 根据以下策略决定优先分配哪些资源。
- 优先级最高的资源会首先被分配。您可以在创建资源时设置资源优先级。
- 如果资源优先级相等,运行该资源的节点中分数最高的资源会首先被分配,以防止资源 shuffling 的问题。
- 如果资源在运行资源的节点中的分数相等,或者资源没有运行,则首选节点上具有最高分数的资源会被首先分配。如果首选节点上的资源分数相等,则 CIB 中列出的第一个可运行资源会首先被分配。