5.9. 配置隔离级别
Pacemaker 通过一个称为隔离拓扑的功能实现有多个设备的节点的隔离。要实现拓扑结构,根据常规创建独立设备,然后在配置中的隔离拓扑部分定义一个或多个隔离级别。
- 级别以整数形式递增,从 1 开始。
- 如果设备失败,对当前级别的处理会中断。不会执行该级别的其他设备,而是尝试下一个级别。
- 如果所有设备被成功隔离,那么该级别已成功,且不会尝试其他级别。
- 当一个级别被通过(success)或所有级别都已经被尝试(failed)后,操作就会完成。
使用以下命令为节点添加隔离级别。这些设备以使用用逗号分开的 stonith id 列表形式提供,它们是该级别要尝试的节点。
pcs stonith level add level node devices
以下命令列出目前配置的所有隔离级别。
pcs stonith level
在以下示例中,为节点
rh7-2
配置两个隔离设备:一个名为 my_ilo 的 ilo 隔离设备,以及名为 my_
apc
的 apc 隔离设备。这些命令设置隔离级别,以便在设备 my_ilo
失败且无法隔离节点时,Pacemaker 将尝试使用设备 my_apc
。本例还显示了配置级别后 pcs stonith level
命令的输出。
#pcs stonith level add 1 rh7-2 my_ilo
#pcs stonith level add 2 rh7-2 my_apc
#pcs stonith level
Node: rh7-2 Level 1 - my_ilo Level 2 - my_apc
以下命令删除指定节点和设备的隔离级别。如果没有指定节点或设备,则您指定的隔离级别会从所有节点中删除。
pcs stonith level remove level [node_id] [stonith_id] ... [stonith_id]
以下命令清除指定节点或者 stonith id 的隔离级别。如果您没有指定节点或 stonith id,则会清除所有隔离级别。
pcs stonith level clear [node|stonith_id(s)]
如果您指定一个以上的 stonith id,则必须用逗号分开(不要有空格),如下例所示。
# pcs stonith level clear dev_a,dev_b
以下命令可验证所有在隔离级别指定的隔离设备和节点是否存在。
pcs stonith level verify
从 Red Hat Enterprise Linux 7.4 开始,您可以通过在节点名称上应用的正则表达式、节点属性及其值来指定隔离拓扑中的节点。例如,以下命令将节点
node1
、node2 和 ' node
3
配置为使用隔离设备 apc1
和 'apc2
,以及节点 'node4
、node5
和 'node6
,以使用隔离设备 apc3
和 'apc4
。
pcs stonith level add 1 "regexp%node[1-3]" apc1,apc2 pcs stonith level add 1 "regexp%node[4-6]" apc3,apc4
以下命令通过使用节点属性匹配得到同样的结果。
pcs node attribute node1 rack=1 pcs node attribute node2 rack=1 pcs node attribute node3 rack=1 pcs node attribute node4 rack=2 pcs node attribute node5 rack=2 pcs node attribute node6 rack=2 pcs stonith level add 1 attrib%rack=1 apc1,apc2 pcs stonith level add 1 attrib%rack=2 apc3,apc4