第 6 章 资源限制

通过为那个资源配置限制条件决定集群中某个资源的行为。可配置以下限制分类:
为简化配置一组限制,以便将一组资源放在一起以保证资源按顺序启动,并按相反的顺序停止,Pacemaker 支持资源组的概念。有关资源组的详情请参考 第 5.5 节 “资源组”

6.1. 位置限制

位置限制可决定可运行这些资源的节点。可将位置限制配置为决定是否要避免在指定节点中运行某个资源。
表 6.1 “位置限制选项” 中总结了配置位置限制的选项。

表 6.1. 位置限制选项

描述
rsc
资源名称
node
节点名称
score
确定某个资源应该或避免在某个节点中运行的指数。
INFINITY 值将 "should" 改为 "must";INFINITY 是资源位置限制的默认分值。
以下命令为资源创建位置限制以便首先使用指定的一个或多个节点。
pcs constraint location rsc prefers node[=score] ...
以下命令为资源创建位置限制以避免指定的节点。
pcs constraint location rsc avoids node[=score] ...
指定可运行某个资源的节点有另外两种方式:
  • 选择加入集群 — 将集群配置为默认不允许任何资源在任何位置运行,然后为具体资源选择性启用节点。有关配置选择加入集群的步骤请参考 第 6.1.1 节 “配置“选择加入”集群”
  • 选择退出集群 — 将集群配置为默认允许所有资源在任意位置运行的集群,然后为资源创建位置限制,不允许其在具体节点中运行。有关配置选择退出集群的步骤请参考 第 6.1.2 节 “配置“选择退出”集群”
应配置选择加入集群还是选择退出集群要视个人喜好及集群组成而定。如果您的大多数资源可在大多数节点中运行,那么可采用较简单的配置获得选择退出集群。另一方面,如果大多数资源只能在节点小子集中运行,那么选择加入配置应该更简单。

6.1.1. 配置“选择加入”集群

要创建选择加入集群,请将 symmetric-cluster 集群属性设定为 false,默认不允许资源在任意位置运行。
# pcs property set symmetric-cluster=false
为独立资源启用节点。以下命令可配置位置限制,以便资源 Webserver 首选节点 example-1,资源 Database 首选节点 example-2,如果这两个资源的首选节点宕机,则可故障切换至节点 example-3
# pcs constraint location Webserver prefers example-1=200
# pcs constraint location Webserver prefers example-3=0
# pcs constraint location Database prefers example-2=200
# pcs constraint location Database prefers example-3=0

6.1.2. 配置“选择退出”集群

要创建选择退出集群,请将 symmetric-cluster 集群属性设定为 true,以允许资源默认在任意位置运行。
# pcs property set symmetric-cluster=true
然后使用以下命令生成与 第 6.1.1 节 “配置“选择加入”集群” 相当的配置。如果两个资源的首选节点宕机,则会故障切换至节点 example-3,因为每个节点都有一个隐含得分 0。
# pcs constraint location Webserver prefers example-1=200
# pcs constraint location Webserver avoids example-2=INFINITY
# pcs constraint location Database avoids example-1=INFINITY
# pcs constraint location Database prefers example-2=200
注:没有必要在这些命令中指定 INFINITY 数,因为那就是该得分的默认值。