Red Hat Training

A Red Hat training course is available for RHEL 8

9.3. 隔离设备的常规属性

您可以为隔离设备设置许多常规属性,以及决定隔离行为的各种群集属性。

任何集群节点都可以使用任何隔离设备隔离保护其它集群节点,无论隔离资源是启动还是停止。资源是否启动只控制设备的重复监控,而不控制是否使用资源,但以下情况除外:

  • 您可以通过运行 pcs stonith disablestonith_id命令来禁用隔离设备。这将阻止任何节点使用该设备。
  • 要防止特定节点使用隔离设备,您可以使用 pcs constraint location …​s 命令 为隔离资源配置位置限制。
  • configurationing stonith-enabled=false 将完全禁用隔离。但请注意,红帽不支持隔离功能被禁用的集群,因为它不适用于生产环境。

下表介绍了您可以为隔离设备设置的一般属性。

表 9.1. 隔离设备的常规属性

类型默认值描述

pcmk_host_map

字符串

 

用于不支持主机名的设备的主机名到端口号的映射。例如:node 1:1;node2:2,3 告知 集群将端口 1 用于 node1,端口 2 和端口 3 用于 node2。

pcmk_host_list

字符串

 

此设备控制的机器列表(可选,除非 pcmk_host_check=static-list)。

pcmk_host_check

字符串

* 如果设置了 pcmk_host_listpcmk_host_map,则使用 static- list

* 否则,如果隔离设备支持 list 操作,则为 dynamic-list

* 否则,如果 隔离设备支持 status 操作,则状态

* 否则,没有

如何确定被设备控制的机器。允许的值: dynamic-list (查询设备)、static-list (检查 pcmk_host_list 属性)、none(假设每个设备都可以隔离每台机器)

下表总结了您可以为隔离设备设置的其他属性。请注意,这些属性仅适用于高级使用。

表 9.2. 隔离设备的高级属性

类型默认值描述

pcmk_host_argument

字符串

port

提供端口的一个替代参数。有些设备不支持标准端口参数,或者可能会提供额外的端口。使用这个参数指定一个替代的、针对于具体设备的参数,它代表要被隔离的机器。值 none 可用于告诉集群不提供任何额外参数。

pcmk_reboot_action

字符串

reboot

运行 的另一个命令,而不是 重新启动。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 reboot 操作的替代的、特定于具体设备的命令。

pcmk_reboot_timeout

time

60s

指定替代了重启操作的超时时间,而不是 stonith-timeout。和一般的设备相比,有些设备需要更长或更短的时间完成。使用此选项指定替代的、重启操作使用的、特定于设备的超时时间。

pcmk_reboot_retries

整数

2

在超时时间内重试 reboot 命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前重试重启动作的次数。

pcmk_off_action

字符串

off

运行另一个命令,而不是 off。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 off 操作的替代的、特定于具体设备的命令。

pcmk_off_timeout

time

60s

指定一个替代 off 操作使用的超时时间而不是 stonith-timeout。和一般的设备相比,有些设备需要更长或更短的时间完成。使用此选项指定替代的、off 操作使用的、特定于设备的超时时间。

pcmk_off_retries

整数

2

在超时时间内重试 off 命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前重试操作的次数。

pcmk_list_action

字符串

list

运行另一个命令,而不是 list。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 list 操作的替代的、特定于具体设备的命令。

pcmk_list_timeout

time

60s

指定 list 操作使用的特代的超时时间。和一般的设备相比,有些设备需要更长或更短的时间完成。使用此选项指定替代的、list 操作使用的、特定于设备的超时时间。

pcmk_list_retries

整数

2

在超时时间内重试 list 命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前 list 操作的次数。

pcmk_monitor_action

字符串

monitor

运行另一个命令,而不是 monitor。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 monitor 操作的替代的、特定于具体设备的命令。

pcmk_monitor_timeout

time

60s

指定替代了 monitor 操作使用的超时时间,而不是 stonith-timeout。和一般的设备相比,有些设备需要更长或更短的时间完成。使用此选项指定替代的、monitor 操作使用的、特定于设备的超时时间。

pcmk_monitor_retries

整数

2

在超时时间内重试 monitor 命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前 monitor 操作的次数。

pcmk_status_action

字符串

status

运行另一个命令,而不是 status。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 status 操作的替代的、特定于具体设备的命令。

pcmk_status_timeout

time

60s

指定替代 status 操作使用的超时时间,而不是 stonith-timeout。和一般的设备相比,有些设备需要更长或更短的时间完成。使用此选项指定替代的、status 操作使用的、特定于设备的超时时间。

pcmk_status_retries

整数

2

在超时时间内重试 status 命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前 status 操作的次数。

pcmk_delay_base

time

0s

为 stonith 操作启用基础延迟并指定一个基本延迟值。在带有偶数节点的集群中,配置延迟有助于避免在平等分割时同时出现节点相互隔离的问题。当同一个隔离设备被所有节点使用时,使用一个随机延迟会很有用,而如果每个节点都使用单独的设备时,使用不同的静态延迟会很有用。总的延迟是根据一个随机延迟值再加上这个静态延迟而获得的,这样可以保持总和低于最大延迟。如果您设置了 pcmk_delay_base,但没有设置 pcmk_delay_max,则没有随机组件,它将是 pcmk_delay_base 的值。

有些隔离代理使用一个 "delay" 参数,它独立于使用 pcmk_delay_* 属性配置的延迟。如果同时配置了这两个延迟,它们会被相加。因此,一般不要同时使用它们。

pcmk_delay_max

time

0s

为 stonith 动作启用随机延迟并指定最大随机延迟。在带有偶数节点的集群中,配置延迟有助于避免在平等分割时同时出现节点相互隔离的问题。当同一个隔离设备被所有节点使用时,使用一个随机延迟会很有用,而如果每个节点都使用单独的设备时,使用不同的静态延迟会很有用。总的延迟是根据一个随机延迟值再加上这个静态延迟而获得的,这样可以保持总和低于最大延迟。如果您设置了 pcmk_delay_max,但没有设置 pcmk_delay_base,则延迟没有静态组件。

有些隔离代理使用一个 "delay" 参数,它独立于使用 pcmk_delay_* 属性配置的延迟。如果同时配置了这两个延迟,它们会被相加。因此,一般不要同时使用它们。

pcmk_action_limit

整数

1

在这个设备上可并行执行的最大操作数量。需要首先配置集群属性 并发-fencing=true (这是 RHEL 8.1 及更新版本的默认值)。值为 -1 代表没有限制。

pcmk_on_action

字符串

on

仅供高级使用:要运行的一个替代命令,而不是 on。有些设备不支持标准命令或者可能需要提供额外的命令。使用这个选项指定可执行 on 操作的替代的、特定于具体设备的命令。

pcmk_on_timeout

time

60s

仅供高级使用:指定用于操作的替代超时时间 而不是 stonith-timeout。和一般的设备相比,有些设备需要更长或更短的时间完成。使用这个选项指定替代的、操作使用的、特定于设备的超时时间

pcmk_on_retries

整数

2

仅供高级使用: 超时时间内重试命令的次数上限。有些设备不支持多个连接。如果设备忙碌了处理另一个任务,操作可能会 失败,因此如果还有剩余时间,Pacemaker 会自动重试操作。使用这个选项更改 Pacemaker 在放弃前重试 操作 的次数。

除了您可以为独立隔离设备设置的属性外,您还可以设置用来决定隔离行为的集群属性,如下表所述。

表 9.3. 确定隔离行为的集群属性

选项默认值描述

stonith-enabled

true

表示失败的节点以及带有资源无法停止的节点应该被隔离。保护数据需要将此设置为 true

如果为 true 或 unset,除非同时配置了一个或多个 STONITH 资源,否则集群将拒绝启动资源。

红帽只支持将此值设为 true 的集群。

stonith-action

reboot

发送到 STONITH 设备的操作。允许的值: rebootoff.也允许使用 value poweroff,但只适用于旧的设备。

stonith-timeout

60s

等待 STONITH 操作完成的时间。

stonith-max-attempts

10

在集群不再立即重新尝试之前,隔离可以失败的次数。

stonith-watchdog-timeout

 

在认为某个节点被硬件 wathcdog 终止前等待的最长时间。建议将此值设置为硬件 watchdog 超时值的两倍。只有在使用基于 watchdog 的 SBD 进行保护时才需要这个选项。

concurrent-fencing

true(RHEL 8.1 及更新的版本)

允许并行执行隔离操作。

fence-reaction

stop

(Red Hat Enterprise Linux 8.2 及更新的版本)决定当集群节点有其自身隔离通知时该如何响应。如果错误配置了隔离,或者使用 fabric 隔离方式当没有中断集群的通信,集群节点可能会收到其自身隔离的通知信息。允许的值会 停止,它会停止 Pacemaker 并保持停止状态,或者 panic 来尝试立即重启本地节点,并在失败后退回到停止状态。

虽然此属性的默认值已停止 但这个值的最安全选择是 panic,它会尝试立即重启本地节点。如果您希望使用 stop(通常是使用 fabric 隔离方式时),建议对这个参数进行明确设定。

有关设置集群属性的详情,请参考 设置和删除集群属性