第 12 章 确定资源可在哪些节点上运行

位置限制决定资源可在哪些节点上运行。您可以配置位置限制,以确定资源是否首选或避免指定节点。

除了位置约束外,资源运行的节点还受到该资源的 resource-stickiness 值的影响,这决定了资源在当前运行的节点上的保留程度。有关设置 resource-stickiness 值的详情,请参考 配置资源以首选其当前节点

12.1. 配置位置限制

您可以配置基本的位置约束,以指定资源是首选某个节点还是避免某个节点,使用可选的 score 值来指示约束的相对首选程度。

以下命令为资源创建一个位置约束,以偏好指定节点。请注意,可以使用单个命令为多个节点在特定资源上创建限制。

pcs constraint location rsc prefers node[=score] [node[=score]] ...

以下命令为资源创建一个位置约束,以避免指定节。

pcs constraint location rsc avoids node[=score] [node[=score]] ...

下表总结了配置位置限制的基本选项的含义。

表 12.1. 位置限制选项

描述

rsc

资源名称

node

节点的名称

分数

正整数值来指示给定资源应首选的资源还是避免给定节点的首选程度。INFINITY 是资源位置约束的默认 score 值。

pcs contraint location rsc prefers 命令中的 score 值为 INFINITY ,表示该节点首选该节点(如果节点可用),但不会阻止资源在其它节点上运行(如果指定的节点不可用)。

pcs contraint location rsc avoids 命令中的 score 值为 INFINITY ,表示资源将永远不会运行在那个节点上,即使其它节点都不可用。这等同于设置了 score 为 -INFINITYpcs constraint location add 命令。

一个数字分数(即不是 INFINITY)意味着这个约束是可选的,除了其它因素外强于它,此约束将会被遵守。例如,如果资源已放置到另一个节点上,其 resource-stickiness 分数高于 prefers 位置约束的分数,则该资源将保留在其中。

以下命令创建了一个位置约束,以指定资源 Webserver 首选节点 node1

# pcs constraint location Webserver prefers node1

pcs 支持命令行中的位置限制中的正则表达式。这些限制适用于基于正则表达式匹配资源名称的多个资源。这可让您使用单一命令行配置多个位置限制。

以下命令创建了一个位置约束,从资源 dummy0dummy9 都首选 node1

# pcs constraint location 'regexp%dummy[0-9]' prefers node1

因为 Pacemaker 使用 POSIX 扩展正则表达式,如 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04 所述,您可以使用以下命令指定相同的约束。

# pcs constraint location 'regexp%dummy[[:digit:]]' prefers node1