我想與Pacemaker/Corosync一起集羣2臺計算機。他們共享的唯一資源是ocf:心跳:IPaddr這是主要問題:節點認爲它在網絡電纜拔出時處於聯機狀態。起搏器/ Corosync
由於只有兩個節點故障轉移將只會發生,如果no-quorum-policy=ignore
。
當網絡電纜從節點A拉出時,節點A上的corosync綁定到127.0.0.1,起搏器認爲節點A仍然在線,節點B是離線的。
Pacemaker嘗試啓動節點A上的IPaddr,但由於沒有網絡連接而無法啓動。另一方面,節點B認識到節點B處於脫機狀態,並且如果IPaddr服務在節點A上啓動,則它將成功地在其自身(節點B)上啓動它。
但是,由於服務在節點A上啓動失敗,它將進入致命狀態,必須重新啓動以重新加入羣集。 (您可以改爲重新啓動一些所需的服務。)
1解決方法是設置start-failure-is-fatal="false"
,使節點A繼續嘗試啓動IPaddr服務,直到成功爲止。問題在於一旦成功,兩個節點之間就會發生IP衝突,直到它們重新集羣並且其中一個放棄了資源。
我正在玩弄有一個節點屬性的想法,該節點屬性鏡像cat /sys/class/net/eth0/carrier
,當電纜連接時爲1,斷開連接時爲零,然後有一個位置規則說明「連接」==「零不」開始服務類的東西,但我們會看到。
任何想法或想法將不勝感激。
此問題的實際原因是不適當的擊劍。詳細信息如下。此外,即使您確實已將corosync配置爲正確連接到您連接的NIC的IP,如果nic上沒有活動連接,corosync也會綁定到本地主機IP地址。 – andrewmkeller