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