Centos7
如何在 CentOS 7 上徹底移除起搏器、corosync 和 pc?
使用兩個節點:
- 節點1:192.168.0.1
- 節點2:192.168.0.2
在兩台伺服器上安裝 HA 工具:
yum install pacemaker pcs
(它將包括安裝 corosync)
在兩台伺服器上:
passwd hacluster
為集群設置相同的密碼。
在兩台伺服器上:
systemctl enable pcsd.service systemctl start pcsd.service
驗證集群節點:
node1# pcs cluster auth 192.168.0.1 192.168.0.2
他們都成功通過了身份驗證。
生成 corosync 配置:
node1# pcs cluster setup --name mycluster 192.168.0.1 192.168.0.2
啟動集群:
node1# pcs cluster start --all
成功。
確認狀態:
pcs status corosync Output Membership information ---------------------- Nodeid Votes Name 2 1 192.168.0.2 1 1 192.168.0.1 (local)
獲取有關集群目前狀態的更多資訊:
pcs cluster status Output Cluster Status: ... Stack: corosync ... 2 nodes and 0 resources configured Online: [ node1 node2 ] PCSD Status: node1 (192.168.0.1): Online node2 (192.168.0.2): Online
在兩台伺服器上啟用 corosync 和起搏器服務:
systemctl enable corosync.service systemctl enable pacemaker.service
禁用 STONITH
node1# pcs property set stonith-enabled=false
創建浮動 IP 並將其添加到 pcs 資源後,測試故障轉移。
在節點 1 上:
reboot
然後就遇到了麻煩。重啟後,
pcs cluster status
再次執行,顯示:Cluster Status: Stack: corosync Current DC: centos7lb1 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum Last updated: Sun Jul 23 23:47:53 2017 Last change: Fri Jul 21 05:56:32 2017 by hacluster via crmd on node1 1 node and 0 resources configured PCSD Status: node1 (192.168.0.1): Online *Unknown* (192.168.0.2): Online
在節點 1 上執行
pcs status
:Cluster name: mycluster WARNING: corosync and pacemaker node names do not match (IPs used in setup?) Stack: corosync Current DC: node1 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum Last updated: Sun Jul 23 23:58:22 2017 Last change: Fri Jul 21 05:56:32 2017 by hacluster via crmd on node1 1 node and 0 resources configured Online: [ node1 ] No resources Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled
node2
在集群中找不到。同時檢查node2上的狀態,也只有一個node(node2
)。同node1,在集群中找不到其他節點。我試圖移除起搏器、corosync 和 pcs 並重做一遍。但是在這樣做之後:
yum remove pacemaker pcs
然後對它們進行身份驗證:
pcs cluster auth node1 node2
顯示他們
Already authorized
。此時,如何將兩個節點重新正確加入集群?我想清楚地刪除它們,那怎麼辦?
原因是防火牆。
因為 Corosync 在埠 5404 和 5405 上使用 UDP 傳輸,所以我添加了:
iptables -I INPUT -m state --state NEW -p udp -m multiport --dports 5404,5405 -j ACCEPT iptables -I OUTPUT -m state --state NEW -p udp -m multiport --sports 5404,5405 -j ACCEPT service iptables save
並停止/啟動所有集群:
pcs cluster stop --all pcs cluster start --all
還跑了:
service corosync restart
集群工作。可以看到所有節點,並且所有節點都線上。