![防止 Pacemaker 中特定节点的升级](https://linux22.com/image/218009/%E9%98%B2%E6%AD%A2%20Pacemaker%20%E4%B8%AD%E7%89%B9%E5%AE%9A%E8%8A%82%E7%82%B9%E7%9A%84%E5%8D%87%E7%BA%A7.png)
我有一个包含三个节点的 drbd +pacemaker 集群,其中一个仅是仲裁设备。我正在尝试配置起搏器资源,以便可升级的 drbd-resource 应该在所有三个设备上运行,但永远不应该在仲裁设备上升级。我尝试对资源设置位置限制,但这会导致pacemaker根本无法在仲裁设备上启动资源,因此drbd无法在故障转移时保持仲裁。
期望的状态是:
- drbd 资源在所有三个节点上启动
- drbd资源可推广
- 起搏器永远不会推广法定设备
我在文档中找不到任何内容,但我设想的是像“不在设备 X 上升级”这样的参数,我在 drbd 资源中错过了该参数。
答案1
使用简单的位置约束不足以完成此任务。 Pacemakerrules
可以处理所需的更高级表达式。
根据 RHEL/Pacemaker 版本,以下规则之一应该适合您:
# pcs constraint location <clone> rule role=promoted score=-INFINITY node eq <quorum-node-name>
# pcs constraint location <clone> rule role=master score=-INFINITY node eq <quorum-node-name>