第 18 章 创建在多个节点上活跃的集群资源(克隆的资源)
您可以克隆集群资源,以便在多个节点上激活该资源。例如,您可以使用克隆的资源配置 IP 资源的多个实例来分布到群集中以进行节点均衡。您可以克隆资源代理支持的任何资源。克隆由一个资源或一个资源组组成。
只有同时可在多个节点上活跃的资源才适用于克隆。例如:从挂载非集群文件系统(如共享内存设备的 ext4
)的 Filesystem
资源不应被克隆。由于 ext4
分区不支持集群,因此此文件系统不适用于同时发生在多个节点上的读写操作。
18.1. 创建和删除克隆的资源
可以同时创建资源以及该资源的克隆。
通过以下单一命令创建资源并克隆资源:
pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone_id] [clone options]
pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone options]
默认情况下,克隆的名称将是 resource_id-clone
。您可以通过为 clone_id 选项指定值来为克隆设置自定义名称。
您不能在单个命令中创建资源组以及该资源组的克隆。
另外,您可以使用以下命令创建之前创建的资源或资源组的克隆。
pcs resource clone resource_id | group_id [clone_id][clone options]...
pcs resource clone resource_id | group_id [clone options]...
默认情况下,克隆的名称将是 resource_id-clone
或 group_name-clone
。您可以通过为 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
下表描述了您可以为克隆资源指定的选项。
项 | 描述 |
---|---|
| 选项继承自正在克隆的资源,如配置资源 meta 选项中的" 资源元数据"表中所述。 |
| 要启动的资源副本数量。默认为集群中的节点数量。 |
|
在一个节点上可以启动资源的副本数 ; 默认值为 |
|
当停止或启动克隆的副本时,预先并在操作成功时告知所有其他副本。允许的值: |
|
克隆的每个副本是否会执行不同的功能?允许的值:
如果此选项的值为
如果此选项的值为 |
|
是否应该以系列的方式启动副本(而不是并行的)。允许的值: |
|
更改排序限制的行为(克隆之间)的行为,以便在相同节点中的同一节点中的副本立即启动或停止(而不是等到第二个克隆的每个实例启动或停止)。允许的值: |
|
如果指定了值,则在此克隆后排序的任何克隆都将无法启动,直到原始克隆指定数量的实例都在运行,即使 |
要实现稳定的分配模式,默认情况下克隆具有稍微的粘贴性,这意味着它们更喜欢保留在运行的节点中。如果未提供 resource-stickiness
值,克隆将使用值 1。作为一个小的值,它会对其他资源分数计算最小,但足以防止 Pacemaker 在集群间不必要地移动副本。有关设置 resource-stickiness
资源 meta-option 的详情,请参考 配置资源 meta 选项。