高可用性(HA) 4 - network bonding

我們都知道,hadoop namenode是一個臭名昭著的單點故障點(SPOF)。 當你找到一篇High  Availability的文章, 以爲使用heartbeat/pacemaker, corosync就能幫助你建立一個高可用系統,就能達到99.99%的高可靠性,那麼你就錯了。我們還需要更進一步,網絡冗餘。但是很可惜,幾乎我們找到的所有關於HA的文章很少提到網絡冗餘。在電信部門的同志都知道,高可靠系統,任何東西都需要冗餘:電源,存儲…,當然也包括網卡。當我們引入heartbeat/pacemaker時,節點之間的heartbeat通訊就可能是新的單點故障點。

各個公司都有自己的網絡冗餘方案,linux本身也提供類似的功能:linux bonding。 關於bonding的詳細描述,請參照:http://linux-ip.net/html/linux-ip.html#ether-bonding

 

在本文的事例中,每一臺服務器有兩個網卡,每一個網卡都會兩個邏輯節點bond0和bond1。Bond0用於與外部服務器通訊,提供對外服務。Bond1用於內部heartbeat通訊。服務器與任何一個路由器之間出現問題,linux會快速切換到另外一條鏈路。高層應用程序使用冗餘的鏈路進行通訊。

注意,我們在配置bonding時應該設置bonding mode=1,也就是說盡管有兩條鏈路,但是在任何時刻,只有一條能收發數據。

網絡冗餘不僅適用hadoop name node,它還適用於mysql和任何要求HA的地方

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章