12.4. 配置资源以首选其当前节点
资源具有 resource-stickiness
值,您可以在创建资源时设置一个 meta 属性,如配置资源 meta 选项所述。resource-stickiness
值决定资源要在当前运行的节点上保留多少。Pacemaker 会将 resource-stickiness
值与其他设置(例如,位置约束的 score 值)一起考虑,以确定是否将资源移至其它节点还是将其留在原地。
resource-stickiness
值为 0 时,集群可以根据需要移动资源,以在节点之间平衡资源。这可能会导致资源在不相关的资源启动或停止时移动。对于正的粘性,资源更倾向于保持原处,只有在其他情况超出粘性时才会移动。这可能会导致新添加的节点在没有管理员干预的情况下无法获取分配给它们的任何资源。
RHEL 9 中新创建的集群将 resource-stickiness
的默认值设置为 1。这个小值可以被您创建的其他限制轻松覆盖,但可以防止 Pacemaker 在集群中无用地移动处于健康状态的资源。如果您希望从 resource-stickiness
值为 0 的集群行为,您可以使用以下命令 resource-stickiness
默认值改为 0:
# pcs resource defaults update resource-stickiness=0
如果您将现有集群升级到 RHEL 9,且您没有明确为 resource-stickiness
设置默认值,则 resource-stickiness
值保留 0,pcs resource defaults
命令将不会显示任何的粘性值。
因为 resource-stickiness
值为正,任何资源都不会移至新添加的节点。如果此时需要资源平衡,您可以临时将资源 resource-stickiness
设置为 0。
请注意,如果位置约束 score 高于 resource-stickiness
值,则集群仍然可以将健康资源移至位置约束所指向的节点。
如需有关 Pacemaker 如何确定资源的放置位置的更多信息,请参阅配置节点放置策略。