Red Hat Training

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

第 8 章 高级资源类型

本章介绍了 Pacemaker 支持的高级资源类型。

8.1. 资源克隆

可以克隆某个资源,以便其在多个节点中处于活跃状态。例如:可以使用克隆的资源配置一个 IP 资源的多个实例,以便在整个集群中分布,保持节点平衡。可以克隆提供资源代理支持的任意资源。一个克隆包括一个资源或一个资源组。

注意

只有能够同时在多个节点中处于活跃状态的资源适合克隆。例如:不应克隆共享内存设备中挂载非集群文件系统(比如 ext4)的 Filesystem 资源。因为集群无法识别 ext4 分区,这个文件系统不适合同时在多个节点中进行读取/写入操作。

8.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-clonegroup_name-clone

注意

只需要在一个节点中执行资源配置变更。

注意

配置限制时永远使用该组或克隆的名称。
创建资源克隆时,该克隆会沿用该资源的名称,并在该名称中附加 -clone 字样。以下命令可创建 apache 类型资源,名为 webfarm,并克隆该资源,将其命名为 webfarm-clone
# pcs resource create webfarm apache clone
使用以下命令删除资源或资源组克隆。这不会删除该资源或资源组本身。
pcs resource unclone resource_id | group_name
有关此选项的详情请查看 第 5.1 节 “创建资源”
表 8.1 “资源克隆选项” 论述了可为克隆的资源指定的选项。

表 8.1. 资源克隆选项

描述
priority, target-role, is-managed
从克隆的资源中继承的选项,如 表 5.3 “资源元数据选项” 所述。
clone-max
需要多少资源副本方可启动。默认为该集群中的节点数。
clone-node-max
需要多少资源副本方可在单一节点中启动。默认值为 1
notify
停止或启动克隆的副本时,应在开始操作前,以及操作成功后告知其他所有副本。可用值为:falsetrue。默认值为 false
globally-unique
每个克隆副本的功能是否有所不同?允许值为:falsetrue
如果这个选项的值为 false,这些资源会在运行时有完全相同的行为,因此每台机器中只需要有一个克隆副本即可。
如果这个选项值为 true,一台机器中运行的克隆副本就与另一个实例不相当,无论该实例是在另一个节点中运行,还是在同一节点中运行。如果 clone-node-max 大于 1,则默认值为 true,否则默认值为 false
ordered
是否应连续复制(而不是平行复制)。允许值为 falsetrue。默认值为 false
interleave
更改排序限制行为(clones/masters 之间)以便在实例可在其同级别实例启动/停止时尽快启动/停止(而不是等待每个克隆中的每个实例都启动/停止)。允许值:falsetrue。默认值为 false

8.1.2. 克隆限制

在大多数情况下,每个克隆在每个活跃集群节点中都有一个副本。但也可以将资源克隆的 clone-max 设定为小于该集群中的节点总数。在这种情况下,可使用资源位置限制选择集群应为哪些节点首先分配副本。这些限制的编写与那些用于常规资源的限制没有什么不同,只是必须使用该克隆的 id。
以下命令可为集群生成位置限制,以便首选将资源克隆 webfarm-clone 分配给 node1
# pcs constraint location webfarm-clone prefers node1
克隆的排序限制行为稍有不同。在下面的示例中,webfarm 会等到所有要启动的克隆副本都完成后方开始执行。只有在没有副本可启动时,方可防止 webfarm 启动。另外,克隆将在其停止前等待 webfarm 停止。
# pcs constraint order start webfarm-clone then webfarm
克隆与常规(或组)资源共置表示该资源可在有该克隆活跃副本的任意机器中运行。集群将根据该克隆所运行的位置,以及该资源自身位置属性选择副本。
还可以配置克隆共置。在此类情况下,将一组克隆允许的位置限制为克隆处于活跃状态或将处于活跃状态的节点。然后根据常规执行分配操作。
以下命令创建一个节点共置限制,以保证资源 webfarm 在其克隆的同一节点中运行。
# pcs constraint colocation add webfarm with webfarm-clone

8.1.3. 克隆粘性

要取得稳定的分配模式,默认情况下克隆会有一些粘性。如果没有为 resource-stickiness 分配任何数值,则该克隆将使用数值 1。请使用较小的数值,这样对其他资源的 score 计算影响较小,但也足以防止 Pacemaker 在集群中进行不必要的副本移动。