負載均衡軟件LVS 三種實現模式對比


負載均衡集群,顧名思義,就是讓多台服務器共同負擔壓力。負載均衡是企業級大型項目所需的重要模塊。

當前實現負載均衡集群的優秀開源軟件有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模式

IP隧道技術:是路由器把一種網絡層協議封裝到另一個協議中以跨過網絡傳送到另一個路由器的處理過程。
隧道技術是一種數據包封裝技術,它是將原始IP包(其報頭包含原始發送者和最終目的地)封裝在另一個數據包(稱為封裝的IP包)的數據凈荷中進行傳輸。
這樣可以使報文到達首個IP地址之后再被轉發到包裝里的另一個IP地址,比如我們所熟知的VPN技術。
 
在LVS的IP隧道架構中,由於是服務器集群,不可能靜態地建立一一對應隧道,而是需要將報文封裝和轉發給 動態選擇出的一台RS,這樣就可以將一組服務器上的網絡服務組成一個IP上的虛擬網絡服務。
隧道模式運作:LB接收到用戶請求目標為集群VIP(對外服務虛擬IP)的報文之后,通過調度算法,挑選出一個目標RS,使用其IP地址封裝請求報文轉發給RS。目標RS受到報文后解析,獲取用戶源目標地址為VIP的報文,服務器即發現VIP地址被配置在本地的IP隧道設備上,所以就處理這個請求,然后根據路由表iptables將響應報文直接返回給用戶。
這種模式下,需要給LB和所有RS全部分配公網IP,比較浪費公網IP。
架構如圖所示。

 

 

(3)DR模式

原理與Tunnel模式相同。但是不使用隧道技術,不會封裝IP,而是將數據幀的MAC地址改為RS的MAC地址。LB與RS必須在一個網段內,才可通過MAC地址直接轉發。最后RS將響應結果直接返回給用戶。

架構如圖所示。

 

 

三、總結

NAT模式適合小型的服務器集群,優點節省公網IP。TUN和DR相差不大,都能支撐較大規模的集群,缺點浪費公網IP。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM