李一諤高可用性系統(四):負載均衡器間的uCARP(心跳裝置)
上一篇已講述了負載均衡器(LB)上的HaProxy,但大家看架構圖會發現有兩部LB。這其實不難理解,因為希望不會有single point of failure。不過在本校的設定上,我們希望兩部機也運行著,不是以某一部作主,亦另一部作備援,否則好像有點浪費,亦不能分擔流量。
要做到這樣的目的,只需在DNS做功夫,將一個hostname解作兩個true IP就可以了。所有的request就會輪流分發去兩個負載均衡器,達到分流的目的。
但問題又出現了,如果其中一個LB掛掉,一半的流量會出現問題。所以我們在兩個LB都安裝了uCARP--一個心跳的裝置。它會定時向其他電腦發送訊息,通知其他機器自己依然「健在」。但當其中一台機出現問題或當機,另一台機就會在短時間內取得出問題機器的IP。那部倖存的LB就會獨力扛起所有工作,而所有流量就只有一條路可行。
如果此情況出現,管理人員便應儘快檢查出事的機器,否則連僅餘的lb也出事,就全部網站也不能開啟了。不過相信這機會是比較少發生的,或者這樣說,在本校從未發生。
精妙!!!
HaProxy + (DNS)IP x 2 + uCARP = 好文章.
多謝