Cluster

高可用性/故障轉移硬體連接

  • October 3, 2014

我正在學習集群和高可用性技術,偶然發現了一篇關於使用一對伺服器配置網路、使用 DRBD 進行複制和使用心跳進行監控和故障轉移的文章。文章指出我應該在每台伺服器上有 2 個 NIC:兩個 eth0 都進入 LAN,兩個 eth1 都應該通過交叉電纜相互連接,如下圖所示:

http://i.stack.imgur.com/8BAm6.jpg

文章圖片說明:

為確保自動故障轉移,心跳監控主伺服器如下: 1. 從伺服器持續監控通過連接兩台伺服器的交叉電纜與主伺服器的連接。如果主節點不可訪問,則輔助節點將採用主節點狀態。2. 主伺服器持續監控與路由器等高可用網路設備的連接。如果網路設備不可訪問,則它將控制權交給輔助伺服器。因此,在以下情況下,故障轉移是自動的: 1. 主節點的網路故障轉移 2. 電源、CPU、RAM 等硬體故障。

這提出了以下問題:

如果輔助/被動伺服器上的心跳通過 eth1 監控主伺服器,如果任何伺服器上的 eth1 失敗會發生什麼?

在我看來,heartbeat 會認為主節點已死,並會啟動輔助節點。這不會造成“腦裂”狀況嗎?因為主伺服器仍然通過 eth0 連接到 LAN 並且正在工作,所以只是心跳/複製連結 (eth1) 被破壞了。那麼現在我們將同時擁有兩個活動伺服器?

我還在理解這個概念,如果我在胡說八道,請見諒。

您正在閱讀的文章很可能已經過時了。使用 Heartbeat 進行資源管理(在故障轉移時停止和啟動資源)自 2008 年左右以來已被棄用 。Pacemaker是 Linux-HA 資源管理的新標準解決方案。但是,Pacemaker 仍然需要一些東西來處理集群通信。對於通信層,您可能仍然使用Heartbeat,但目前最流行的解決方案是Corosync

至於你原來的問題,簡短的回答是,是的。如果您中斷承載集群通信的網路,則可能導致腦裂,除非您使用 STONITH,您應該這樣做!. 可以在這里這裡找到關於為什麼需要 STONITH 的好文章。

除了 STONITH,Heartbeat 和 Corosync 都支持冗餘連結/網路。這意味著您可以利用多個介面來確保單個介面的故障不會干擾集群通信。

希望這可以幫助!

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