Show Table of Contents
6.3. 资源节点共置(Colocation)
节点共置限制可根据另一个资源的位置决定某个资源的位置。
在两个资源间创建节点共置限制有一个很重要的负面作用:它会影响为某个节点分配资源的顺序。因为无法将资源 A 放在相对资源 B 的位置,除非您知道资源 B 在哪里。因此当创建节点共置限制时,关键是要考虑是应将资源 A 与资源 B 共置,还是将资源 B 与资源 A 共置。
另一个要记住的是在创建节点共置限制时,假设资源 A 与资源 B 共置,集群会在决定为资源 B 选择哪个节点时考虑资源 A 的属性。
以下命令可创建节点共置限制。
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
有关主资源和辅资源的详情请查看 第 8.2 节 “多状态资源:有多个模式的资源”。
在 表 6.3 “节点共置限制的属性” 中总结了配置节点共置限制的属性和选项。
表 6.3. 节点共置限制的属性
| 项 | 描述 |
|---|---|
|
source_resource
|
共置资源。如果对该限制不满意,集群会决定根本不允许该资源运行。
|
|
target_resource
|
共置目标。集群将决定首先将这个资源放在哪里,然后决定在哪里防止源资源。
|
|
score
|
正数值代表资源应在同一节点中运行。负数值代表资源不应再同一节点中运行。默认值,即 +
INFINITY 值代表 source_resource 必须作为 target_resource 在同一节点中运行。- INFINITY 值代表 source_resource 一定不能作为 target_resource 在同一节点中运行。
|
6.3.1. 强制放置
限制数值为
+INFINITY 或 -INFINITY 时会出现强制性放置。在这种情况下,如果对限制条件不满意,则不允许 source_resource 运行。对于 score=INFINITY,这包括 target_resource 不活跃的情况。
如果需要
myresource1 一直作为 myresource2 在同一机器中运行,则应添加以下限制:
# pcs constraint colocation add myresource1 with myresource2 score=INFINITY
因为使用了
INFINITY,如果 myresource2 无法在任何集群节点中运行(无论是什么原因),则不允许 myresource1 运行。
另外,您可能想要使用相反的配置,即在某个集群中,
myresource1 无法在同一机器中作为 myresource2 运行。在这种情况下请使用 score=-INFINITY。
# pcs constraint colocation add myresource1 myresource2 with score=-INFINITY
指定
-INFINITY 即可绑定该限制。因此如果最后能运行该资源的位置是 myresource2 所在位置,那么 myresource1 可能无法在任意位置运行。
6.3.2. 建议配置
如果强制配置是有关“一定要”和“一定不要”的配置,那么建议配置则属于“我更喜欢”的备用配置。对已得分大于
-INFINITY 和小于 -INFINITY 的限制,集群会尝试并满足您的要求,但如果备用配置要停止一些集群服务,则集群会忽略他们。建议节点共置限制可与配置的其他元素合并,以起到强制配置的作用。
6.3.3. 资源组共置
可使用
pcs constraint colocation set 命令为一组或多组资源创建节点共置限制。
可使用
pcs constraint colocation set 命令的以下 options 参数为一组资源设定以下选项。
sequential,可将其设定为true或false,表示一组节点共置限制资源是否为按顺序排列的资源组。require-all,可将其设定为true或false,表示是否该组中的所有资源都必须启用。
可使用
pcs constraint colocation set 命令的以下 setoptions 参数为一组资源设定以下选项。
kind,表示如何强制执行限制。有关这个选项的详情,请查看 表 6.2 “顺序限制属性”。symmetrical,表示停止资源的顺序。如果为 true(即默认选项),则会以相反的顺序停止资源。默认值为true。id,为定义的限制提供名称。
以下命令可在一组或多组资源中创建节点共置限制。
pcs constraint colocation set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
6.3.4. 删除节点共置限制
使用以下命令删除附带 source_resource 的节点共置限制。
pcs constraint colocation remove source_resource target_resource

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.