如何对 Pacemaker/Corosync 中的节点进行优先级排序?
How to prioritize nodes in Pacemaker/Corosync?
我按照指南创建了一个具有浮动 IP 的 Nginx HA 集群。
(正在使用 Nginx、corosync、pacemaker)
我遵循的指南:
https://dzone.com/articles/how-to-configure-nginx-high-availability-cluster-u
我成功创建了一个 2 节点集群,它们都运行良好。
当Node1下线时,Node2反之使用。
我的问题是,在我的例子中,Node1 应该是主节点,这意味着只要它在线,就应该始终使用它。
更好地描述它:
- Node1 和 Node2 在线 -> Node1 正在使用中
- Node1 离线 -> Node2 正在自动使用中
- (问题)当Node1重新上线时,Node2还在使用中
- 如果要再次使用Node1,需要手动停止Node2。
我到底需要配置什么让它在线时自动切换到Node1?
提前致谢!
这很容易通过一个简单的无限位置约束来完成。在 crmsh 语法中,这将如下所示:
location l_webserver_on_node1 hakase_balancing inf: node1
尽管如此,这并不符合最佳做法。在一个设计良好的 HA 集群中,两个节点应该是平等的,服务在哪里应该无关紧要 运行。
我曾见过 node1 出现间歇性问题的情况。例如,假设 node1 似乎每天崩溃并重新启动一次。这意味着您的服务每天会遇到两次短暂的中断,因为它会迁移到 node2,然后在完成重启后返回到 node1。理想情况下,它应该只在 node1 第一次崩溃时迁移到 node2 一次。然后在您进行故障排除和 repair/replace node1 时呆在那里。
我按照指南创建了一个具有浮动 IP 的 Nginx HA 集群。
(正在使用 Nginx、corosync、pacemaker)
我遵循的指南: https://dzone.com/articles/how-to-configure-nginx-high-availability-cluster-u
我成功创建了一个 2 节点集群,它们都运行良好。 当Node1下线时,Node2反之使用。 我的问题是,在我的例子中,Node1 应该是主节点,这意味着只要它在线,就应该始终使用它。
更好地描述它:
- Node1 和 Node2 在线 -> Node1 正在使用中
- Node1 离线 -> Node2 正在自动使用中
- (问题)当Node1重新上线时,Node2还在使用中
- 如果要再次使用Node1,需要手动停止Node2。
我到底需要配置什么让它在线时自动切换到Node1?
提前致谢!
这很容易通过一个简单的无限位置约束来完成。在 crmsh 语法中,这将如下所示:
location l_webserver_on_node1 hakase_balancing inf: node1
尽管如此,这并不符合最佳做法。在一个设计良好的 HA 集群中,两个节点应该是平等的,服务在哪里应该无关紧要 运行。
我曾见过 node1 出现间歇性问题的情况。例如,假设 node1 似乎每天崩溃并重新启动一次。这意味着您的服务每天会遇到两次短暂的中断,因为它会迁移到 node2,然后在完成重启后返回到 node1。理想情况下,它应该只在 node1 第一次崩溃时迁移到 node2 一次。然后在您进行故障排除和 repair/replace node1 时呆在那里。