負載均衡集群,顧名思義,就是讓多台服務器共同負擔壓力。負載均衡是企業級大型項目所需的重要模塊。
當前實現負載均衡集群的優秀開源軟件有LVS、Nginx、haproxy、keepalived等,而優秀的商業負載均衡設備有F5、NetScaler等。商業負載均衡設備穩定性好,但是成本昂貴。
接下來介紹一下負載均衡軟件LVS。
一、LVS介紹
LVS(Linux Virtual Server)是由國內大牛章文嵩開發的開源負載均衡軟件。它是一款四層的負載均衡軟件,即基於OSI模型第四層傳輸層,TCP/IP協議(IP+端口)的轉發和路由。穩定性和效率很高。
LVS架構如圖所示,核心角色是調度器LB(Load Blancer),用來分發用戶的請求;以及剩下的真實服務器RS(Real Server),用於處理用戶請求。
LB為網關服務器,對外服務使用的是公網IP,在集群中也稱為VIP(Virtual IP),即虛擬IP,或者浮動IP。服務器靠這個IP對外提供服務,但是這個IP並非是真正處理用戶請求的真實服務器RS的IP,因此稱之為虛擬的IP。
二、三種LVS模式
LVS根據實現方式不同可以分為:NAT模式、IP Tunnel(IP 隧道)模式、DR模式三種。
(1)NAT模式
NAT(Network Address Translation,網絡地址轉換),用於解決ipv4地址不足提出來的方案。主要思想是將網絡分為公私網,一個局域網由一台網關控制,NAT網關同時擁有公網IP以及內網IP兩個網卡,讓一個局域網的主機只需使用一個公網IP,減少資源占用。
LVS的NAT模式即使用NAT標准,調度器LB即是一個NAT網關,把用戶的請求通過預設的iptables規則,使用交換機/路由器轉發給后端的RS。LB擁有兩個IP,一個是公網IP,一個是內網IP,而RS只有內網IP。用戶訪問地址是LB的公網IP,LB收到用戶請求后將會把請求使用調度算法進行計算后,轉發給內網中的RS,通過LB與RS的內網IP進行源、目標地址轉發。
這種模式的好處是節省公網IP,但是LB的性能是瓶頸。
架構如圖所示。
(2)IP Tunnel模式

(3)DR模式
原理與Tunnel模式相同。但是不使用隧道技術,不會封裝IP,而是將數據幀的MAC地址改為RS的MAC地址。LB與RS必須在一個網段內,才可通過MAC地址直接轉發。最后RS將響應結果直接返回給用戶。
架構如圖所示。
三、總結
NAT模式適合小型的服務器集群,優點節省公網IP。TUN和DR相差不大,都能支撐較大規模的集群,缺點浪費公網IP。