Red Hat Training

A Red Hat training course is available for RHEL 8

第 18 章 创建在多个节点上活跃的集群资源(克隆的资源)

您可以克隆集群资源,以便在多个节点上激活该资源。例如,您可以使用克隆的资源配置 IP 资源的多个实例来分布到群集中以进行节点均衡。您可以克隆资源代理支持的任何资源。克隆由一个资源或一个资源组组成。

注意

只有同时可在多个节点上活跃的资源才适用于克隆。例如:从挂载非集群文件系统(如共享内存设备的 ext4 )的 Filesystem 资源不应被克隆。由于 ext4 分区不支持集群,因此此文件系统不适用于同时发生在多个节点上的读写操作。

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

您可以同时创建资源和该资源的克隆。

若要通过以下单一命令创建资源和克隆资源:

RHEL 8.4 及更新的版本:

pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone_id] [clone options]

RHEL 8.3 及更早版本:

pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone options]

默认情况下,克隆的名称为 resource_id-clone。从 RHEL 8.4 开始,您可以通过为 clone_id 选项指定一个值来为克隆设置自定义名称。

您不能在单个命令中创建资源组以及该资源组的克隆。

另外,您可以使用以下命令创建之前创建的资源或资源组的克隆。

RHEL 8.4 及更新的版本:

pcs resource clone resource_id | group_id [clone_id][clone options]...

RHEL 8.3 及更早版本:

pcs resource clone resource_id | group_id [clone options]...

默认情况下,克隆的名称为 resource_id-clone 或 group_name-clone。从 RHEL 8.4 开始,您可以通过为 clone_id 选项指定一个值来为克隆设置自定义名称。

注意

您只需要在一个节点中配置资源配置更改。

注意

在配置限制时,始终使用组或克隆的名称。

当您创建资源克隆时,默认情况下,克隆会在资源名称上带有附加至名称的 -clone。以下命令创建名为 webfarm 的类型为 apache 的资源,以及名为 webfarm-clone 的克隆

# pcs resource create webfarm apache clone
注意

当您创建一个资源或资源组克隆,其将在另一个克隆后排序时,您几乎应该始终设置 interleave=true 选项。这样可保证当依赖克隆的克隆停止或启动时,依赖克隆的副本可以停止或启动。如果没有设置这个选项,克隆的资源 B 依赖于克隆的资源 A,且节点离开集群,当节点返回到集群并在该节点上启动资源 A,那么所有节点上的资源 B 的副本都将会重启。这是因为,当依赖的克隆资源没有设置 interleave 选项时,该资源的所有实例都依赖于它所依赖的资源的任何正在运行的实例。

使用以下命令删除资源或资源组的克隆。这不会删除资源或资源组本身。

pcs resource unclone resource_id | clone_id | group_name

下表描述了您可以为克隆的资源指定的选项。

表 18.1. 资源克隆选项

描述

priority, target-role, is-managed

从正在克隆的资源继承的选项,如 配置资源元选项 中"资源元选项"表中所述。

clone-max

要启动的资源副本数量。默认为集群中的节点数量。

clone-node-max

在一个节点上可以启动资源的副本数 ; 默认值为 1

notify

当停止或启动克隆的副本时,预先并在操作成功时告知所有其他副本。允许的值: falsetrue.默认值为 false

globally-unique

克隆的每个副本是否会执行不同的功能?允许的值: false,true

如果此选项的值为 false,则这些资源在任何位置的行为都相同,因此每台机器只能有一个克隆活跃副本。

如果此选项的值为 true,则运行在一台机器上的克隆的副本并不等于另一个实例,无论该实例是运行在另一个节点上还是运行在同一节点上。如果 clone-node-max 的值大于 1,则默认值为 true ;否则默认值为 false

排序的

是否应该以系列的方式启动副本(而不是并行的)。允许的值: falsetrue.默认值为 false

interleave

更改排序限制的行为(克隆之间)的行为,以便在相同节点中的同一节点中的副本立即启动或停止(而不是等到第二个克隆的每个实例启动或停止)。允许的值: falsetrue.默认值为 false

clone-min

如果指定了值,则在此克隆后排序的任何克隆都将无法启动,直到原始克隆指定数量的实例都在运行,即使 interleave 选项设为 true

要实现稳定的分配模式,默认情况下克隆具有稍微的粘贴性,这意味着它们更喜欢保留在运行的节点中。如果未提供 resource-stickiness 值,克隆将使用值 1。作为一个小的值,它会对其他资源分数计算最小,但足以防止 Pacemaker 在集群间不必要地移动副本。有关设置 resource-stickiness 资源 meta-option 的详情,请参考 配置资源 meta 选项