Ubuntu

Ubuntu 上的心跳 ip 故障轉移

  • January 12, 2012

我有 3 台伺服器,1 台作為負載平衡器,2 台作為託管一些 jsp 頁面的 web 伺服器(apache tomcat)。我想在主動/被動模式下再添加一個負載均衡器以避免 SPOF,下面是預期的設置。

lb1--> eth0=123.123.123.123, eth1=192.168.1.5
web1--> eth1=192.168.1.6
web2--> eth1=192.168.1.7

lb2--> eth0=123.123.123.124, eth1=192.168.1.8

我已經看到很多heartbeat配置可以做到這一點,但我不確定在虛擬 ip 共享的情況下,我試圖在沒有任何更多 ip 或 ip 共享請求(機架空間)的情況下實現這一點。一般來說,浮動/虛擬 ip 是lbs 之間共享public的文件中的 ip,haresource我問是否有可能使用虛擬privateip 來避免更多的公共 ip 成本。但最終的輸出應該是,lb2應該代表lb1lb1 是否關閉。

還有一件事要考慮的是,所有註冊的 DNS 域名(站點名稱)都指向公共 ip(123.123.123.123) lb1,它重定向到後端 Web 伺服器(當然我知道在 lb2 上維護相同的配置)。如果可能,使用上述最小設置,任何人都可以在不請求更多公共 IP 的情況下實現這一目標。我是心跳的新手!

提前致謝!

將兩個 LB 配置為偵聽相同的公共 IP 地址。被動 LB 會觀察主動 LB 的故障並在主動 LB 宕機時開始處理請求。

要記住的要點:

  • 上游鏈路和路由器將保持單點故障。
  • 如果兩個 LB 都處於活動狀態,您可能會遇到訪問問題。

編輯:如果每個 LB 都有一個公共 IP 地址,那麼你真的想要一個主動/主動配置。否則,您可能無法響應一半的請求。主動/被動應該對傳入流量使用單個 IP 地址。當主動節點死亡時,被動節點進行地址接管。

在 Active/Active 模式下,兩個 LB 將具有不同的公共 IP。通常,會有一個或多個 DNS 名稱在其條目中列出兩個 IP。更簡單的系統將在兩個 LB 之間使用正常的 DNS 循環平衡。更複雜的系統將在 DNS 條目上使用短 TTL,並嘗試通過將最不忙的 LB 的地址作為第一個 DNS 條目分發來平衡負載。

在主動/被動模式下,兩個 LB 處理相同的公共 IP 地址(只有目前活動的筆記通過該地址的流量)。被動節點可以使用多種心跳監測技術來監測主動節點。

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