16.2. 使用规则配置 Pacemaker 位置约束
使用以下命令配置使用规则的 Pacemaker 约束。如果省略 score
,则默认为 INFINITY。如果省略 resource-discovery
,则默认为 always
。
有关 resource-discovery
选项的信息,请参阅 将资源发现限制到节点的子集。
与基本位置限制一样,您也可以使用这些限制的资源使用正则表达式。
当使用规则来配置位置约束时,score
的值可以是正数,也可以是负数,正数表示"首选",负数表示"避免"。
pcs constraint location rsc rule [resource-discovery=option] [role=promoted|unpromoted] [score=score | score-attribute=attribute] expression
expression 选项可以是以下之一,其中 duration_options 和 date_spec_options 为 :hours, monthdays, weekdays, yeardays, months, weeks, years, weekyears,如数据规格中的 "Properties of a Date Specification" 表中所述。
-
defined|not_defined attribute
-
attribute lt|gt|lte|gte|eq|ne [string|integer|number|version] value
-
date gt|lt date
-
date in_range date to date
-
date in_range date to duration duration_options …
-
date-spec date_spec_options
-
表达式 和|或 表达式
-
(表达式)
请注意,持续时间是通过计算方式为 in_range
操作指定结束的方法。例如,您可以指定 19 个月的持续时间。
下面的位置约束配置一个满足以下位置的表达式(如果现在是 2018 年)。
# pcs constraint location Webserver rule score=INFINITY date-spec years=2018
以下命令配置一个周一到周五从上午 9 点下午 5 点为 true 的表达式。请注意,小时值为 16 可以匹配到 16:59:59,因为小时数仍然匹配。
# pcs constraint location Webserver rule score=INFINITY date-spec hours="9-16" weekdays="1-5"
下面的命令配置一个表达式,当周五且为 13 号并为一个满月时,这个表达式为 true。
# pcs constraint location Webserver rule date-spec weekdays=5 monthdays=13 moon=4
要删除某个规则,使用以下命令:如果您要删除的规则是其约束中的最后一规则,则约束将被删除。
pcs constraint rule remove rule_id