Centos7

如何在 CentOS 7 上徹底移除起搏器、corosync 和 pc?

  • July 24, 2017

使用兩個節點:

  • 節點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

集群工作。可以看到所有節點,並且所有節點都線上。

引用自:https://serverfault.com/questions/864767