搜索

第 14 章 Colocating 集群资源

download PDF

要指定一个资源的位置取决于另一个资源的位置,您需要配置 colocation 约束。

在两个资源间创建 colocation 约束具有重要的副作用:它会影响分配给节点资源的顺序。这是因为您无法相对于资源 B 来放置资源 A,除非您知道资源 B 的位置。因此,当创建 colocation 约束时,您必须考虑是将资源 A 与资源 B 共处,还是将资源 B 与资源 A 共处。

在创建 colocation 约束时要记住的是,假设资源 A 与资源 B 在一起,在决定哪个节点要选择资源 B 时,集群也会考虑资源 A 的首选项。

以下命令创建了 colocation 约束。

pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]

下表总结了配置 colocation 约束的属性和选项。

表 14.1. Colocation 约束的参数
参数描述

source_resource

共处源。如果约束不满意,集群可能决定完全不允许该资源运行。

target_resource

共处目标。集群将决定优先放置此资源的位置,然后决定放置源资源的位置。

分数

正数值表示资源应该在同一个节点上运行。负值表示资源不应在同一节点上运行。值 +INFINITY (默认值)表示 source_resource 必须在与 target_resource 相同的节点上运行。值 -INFINITY 表示 source_resource 不得在与 target_resource 相同的节点上运行。

影响 选项

(RHEL 8.4 及更新的版本)决定集群是否会在依赖资源达到其故障迁移阈值时将主资源(source_resource)和依赖资源(target_resource)移到另一个节点,或者集群是否将依赖资源离线,而不导致服务切换。

影响 colocation 约束选项的值可以是 truefalse。这个选项的默认值由相依 资源 meta 选项的值决定,该选项的默认值为 true

当这个选项的值为 true 时,Pacemaker 将尝试使主资源和依赖资源都处于活跃状态。如果依赖资源出现故障,两个资源都会移到另一个节点。

当这个选项的值为 false 时,Pacemaker 会避免因为依赖资源的状态而移动主资源。在这种情况下,如果依赖资源达到失败的迁移阈值,则当主资源活跃并可以保持在当前节点上时,它将停止。

14.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 with myresource2 score=-INFINITY

同样,通过指定 -INFINITY,约束是绑定的。因此,如果只剩下 myresource2 所在的位置可以运行,那么 myresource1 可能无法在任何地方运行。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.