Pacemaker

corosync/pacemaker/fencing - 具有 2 個節點的被動/主動集群

  • July 9, 2021

我正在使用起搏器/corosync 配置集群 2 節點,對此我有一些疑問(也許是最佳實踐:我遠非專家)

**OS:** redhat 7.6

I configurated the cluster with those properties

- **stonith-enabled:** true

- **symmetric-cluster:** true (even if is default value i think)


and added in corosync.conf

- **wait_for_all:** 0 (i want a Node be able to start/work even if his twin is KO)

- **two_nodes:** 1


Considering the fencing:

- Using ILO of blade HP (ILO1 for Node1, ILO2 for Node2)

I read that it was sometimes a good practice to prevent a node suicide, so added constraints 

- ILO1-fence can't locate in node1 

- ILO2-fence can't locate on node2

我遇到的問題如下,在 Node1 關閉時啟動 Node2 時發生:

  • 起搏器/corosync 無法在 Node1 上啟動 ILO2-fence(當然是因為 Node 1 已關閉),因此不要啟動其他資源,因此我的集群都無法正常工作 >:[

我想知道我是否錯過了配置中的某些內容,或者我不太了解這樣的集群應該如何工作。

因為我希望 Node2 啟動,所以集群看到 Node1 是 KO 並且只是啟動資源以使 Node2 自己工作。

但這是真的,因為 ILO2-fence 只能位於 Node1 上(因為避免自殺的約束),所以這個資源總是會失敗……(在沒有那些“反自殺”約束的情況下嘗試時,如果 Node2 有一些服務失敗,然後它在啟動後直接關閉,我不想要)

我會欣賞一些回報和啟示:)

謝謝 :)

假設您的集群中有 4 個投票 - 2 個節點和 2 個 ILO 圍欄。如果可以訪問 >2 (3),則集群可以執行。ILO2 僅配置了 node1,因此如果 node1 關閉 - 仲裁將失去。不推薦使用 ILO-fencing:

“人們在選擇 STONITH 設備時常犯的一個錯誤是使用與它控制的節點共享電源的遠端電源開關(例如許多板載 IPMI 控制器)。如果在這種情況下電源出現故障,集群將無法正常執行。確定節點是否真的處於離線狀態,或處於活動狀態並遭受網路故障,因此集群將停止所有資源以避免可能的腦裂情況。” 關聯

2 節點集群有 2 個選項:

  1. 使用一台外部防護設備(見證節點、投票 VSA 或 SMB2/3 文件共享)。
  2. 使用為 2 節點集群開發的解決方案(如 Microsoft Hyper-V Storage Spaces Direct (S2D) aka Azure Stack HCI、VMware Virtual SAN (vSAN) esp. ROBO Edition 或StarWind Virtual SAN (VSAN))。

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