Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 9 章 高级配置

本章论述了 Pacemaker 支持的高级资源类型和高级配置功能。

9.1. 资源克隆

您可以克隆资源,以便在多个节点上激活该资源。例如,您可以使用克隆的资源配置 IP 资源的多个实例来分布到群集中以进行节点均衡。您可以克隆资源代理支持的任何资源。克隆由一个资源或一个资源组组成。
注意
只有同时可在多个节点上活跃的资源才适用于克隆。例如:从共享内存设备挂载非集群文件系统(如 ext4 )的 Filesystem 资源不应克隆。由于 ext4 分区不知道集群,因此此文件系统不适用于同时从多个节点发生的读写操作。

9.1.1. 创建和删除克隆的资源

您可以使用以下命令同时创建资源以及该资源的克隆。
pcs resource create resource_id standard:provider:type|type [resource options]  \
clone  [meta clone_options]
克隆的名称为 resource_id-clone
您不能在单个命令中创建资源组以及该资源组的克隆。
另外,您可以使用以下命令创建之前创建的资源或资源组的克隆。
pcs resource clone resource_id | group_name [clone_options]...
克隆的名称为 resource_id-clone 或 group_name-clone
注意
您只需要在一个节点中配置资源配置更改。
注意
在配置限制时,始终使用组或克隆的名称。
当您创建资源克隆时,克隆使用附加至名称中的 -clone 资源名称。以下命令创建名为 webfarm 的类型为 apache 的资源,以及名为 webfarm-clone 的克隆
# pcs resource create webfarm apache clone
注意
当您创建在另一个克隆后排序的资源或资源组克隆时,您应该始终设置 interleave=true 选项。这样可保证当依赖克隆的克隆停止或启动时,依赖克隆的副本可以停止或启动。如果没有设置这个选项,克隆的资源 B 依赖于克隆的资源 A,且节点离开集群,当节点返回到集群并在该节点上启动资源 A,那么所有节点上的资源 B 的副本都将会重启。这是因为,当依赖的克隆资源没有设置 interleave 选项时,该资源的所有实例都依赖于它所依赖的资源的任何正在运行的实例。
使用以下命令删除资源或资源组的克隆。这不会删除资源或资源组本身。
pcs resource unclone resource_id | group_name
有关资源选项的详情请参考 第 6.1 节 “资源创建”
表 9.1 “资源克隆选项” 描述您可以为克隆的资源指定的选项。

表 9.1. 资源克隆选项

描述
优先级, target-role, is-managed
选项从正在克隆的资源继承,如 表 6.3 “资源元数据选项” 所述。
clone-max
要启动的资源副本数量。默认为集群中的节点数量。
clone-node-max
在一个节点上可以启动资源的副本数 ; 默认值为 1
notify
当停止或启动克隆的副本时,预先并在操作成功时告知所有其他副本。允许的值: falsetrue.默认值为 false
globally-unique
克隆的每个副本是否会执行不同的功能?允许的值: false,true
如果此选项的值为 false,则这些资源在任何位置的行为都相同,因此每台机器只能有一个克隆活跃副本。
如果此选项的值为 true,则在一台机器上运行的克隆的副本不等于另一个实例,无论该实例是在另一个节点上运行还是在同一节点上运行。如果 clone-node-max 值大于一,则默认值为 true ;否则默认值为 false
ordered
是否应该以系列的方式启动副本(而不是并行的)。允许的值: falsetrue.默认值为 false
interleave
更改排序限制的行为(克隆/主控机之间)的行为,以便在第二个克隆的同一节点上的副本立即启动或停止(而不是等待第二个克隆的每个实例启动或停止)。允许的值: falsetrue.默认值为 false
clone-min
如果指定了值,则在此克隆后排序的任何克隆都将无法在指定数量的原始克隆实例运行后启动,即使 interleave 选项设为 true

9.1.2. 克隆限制

在大多数情况下,克隆将在每个活跃集群节点上都有一个副本。但是,您可以将资源克隆的 clone-max 设置为一个小于集群中节点总数的值。如果情况如此,您可以指定集群使用资源位置约束来优先分配哪些节点。这些限制与常规资源的写法不同,除非必须使用克隆的 id。
以下命令为集群创建一个位置约束,以优先将资源克隆 webfarm-clone 分配给 node1
# pcs constraint location webfarm-clone prefers node1
排序限制对克隆的行为稍有不同。在下例中,由于 interleave 克隆 选项保留为 false,因此在启动需要启动的所有 webfarm- clone 实例之前,不会启动任何 webfarm- stats 实例。只有无法启动 webfarm-clone 的副本时,才会阻止 webfarm-stats 处于活动状态。此外,webfarm-clone 在 停止 webfarm-stats 之前将等待停止。
# pcs constraint order start webfarm-clone then webfarm-stats
将常规(或组)资源与克隆在一起,意味着该资源可在任何有克隆活跃副本的机器中运行。集群将根据克隆运行的位置以及资源自己的位置首选项选择一个副本。
克隆之间的并发位置也是有可能的。在这种情况下,克隆允许的位置集合仅限于克隆要激活的节点。然后分配可以正常执行。
以下命令创建了 colocation 约束,以确保资源 webfarm-stats 在与 webfarm-clone 活动副本相同的节点上运行。
# pcs constraint colocation add webfarm-stats with webfarm-clone

9.1.3. 克隆粘性

为实现稳定的分配模式,克隆默认为稍有粘性。如果未提供资源 粘性 值,克隆将使用值 1。作为一个小的值,它会对其他资源分数计算最小,但足以防止 Pacemaker 在集群间不必要地移动副本。