High-Availability
為什麼在具有起搏器和 corosync 的集群中重新啟動主節點後只能看到一個節點?
我在 CentOS 7 上創建了兩個節點:
- 節點1:192.168.0.1
- 節點2:192.168.0.2
安裝了這樣的工具:
# yum install -y pacemaker corosync pcs crmsh
還使用 HAProxy 進行了負載平衡器。
在我把所有的事情都做好之後,我重新啟動 node1 以測試高可用性。node1啟動後,這樣只能看到一個節點:
# pcs status corosync
這樣可以看到兩個節點:
# crm status
但另一個是
UNCLEAN
!Stack: corosync Current DC: node1 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum 2 nodes and 0 resources configured Node node2: UNCLEAN (offline) Online: [ node1 ] No resources
從node2到檢查狀態,另一個也是
UNCLEAN
!Stack: corosync Current DC: node2 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum 2 nodes and 0 resources configured Node node1: UNCLEAN (offline) Online: [ node2 ] No resources
如何處理?
添加
我這樣做了:
# pcs property set stonith-enabled=false
corosync 配置:
totem { version: 2 secauth: off cluster_name: lbcluster transport: udpu } nodelist { node { ring0_addr: node1 nodeid: 1 } node { ring0_addr: node2 nodeid: 2 } } quorum { provider: corosync_votequorum two_node: 1 } logging { to_logfile: yes logfile: /var/log/cluster/corosync.log to_syslog: yes }
讓UDP 5404和5405通過防火牆;這些是預設情況下 Corosync 想要用於通信的埠。