LVS介紹以及部署實現四層負載均衡項目實戰

1.負載均衡以及集羣介紹

負載均衡以及集羣介紹

2.LVS 介紹

(1)LVS 是Linux Virtual Server的簡稱,也就是 Linux 虛擬服務器, 是一個由章文嵩博士發起的自由軟件項目,它的官方站點是www.linuxvirtualserver.org。現在LVS已經是 Linux標準內核的一部分,因此性能較高。

(2)LVS軟件作用:通過LVS提供的負載均衡技術實現一個高性能、高可用的服務器羣集,它具有良好可靠性、可擴展性和可操作性。從而以低廉的成本實現最優的服務性能。

3、LVS 優勢與不足

1、優勢

高併發連接:LVS基於內核工作,有超強的承載能力和併發處理能力。單臺LVS負載均衡器,可支持上萬併發連接。

**穩定性強:**是工作在網絡4層之上僅作分發之用,這個特點也決定了它在負載均衡軟件裏的性能最強,穩定性最好,對內存和cpu資源消耗極低。

**成本低廉:**硬件負載均衡器少則十幾萬,多則幾十萬上百萬,LVS只需一臺服務器和就能免費部署使用,性價比極高。

**配置簡單:**LVS配置非常簡單,僅需幾行命令即可完成配置,也可寫成腳本進行管理。

**支持多種算法:**支持多種論調算法,可根據業務場景靈活調配進行使用

**支持多種工作模型:**可根據業務場景,使用不同的工作模式來解決生產環境請求處理問題。

應用範圍廣:因爲LVS工作在4層,所以它幾乎可以對所有應用做負載均衡,包括http、數據庫、DNS、ftp服務等等

2、不足

工作在4層,不支持7層規則修改,機制過於龐大,不適合小規模應用。

3、LVS 核心組件和專業術語

1、核心組件

LVS的管理工具和內核模塊 ipvsadm/ipvs

ipvsadm:用戶空間的命令行工具,用於管理集羣服務及集羣服務上的RS等;

ipvs:工作於內核上的程序,可根據用戶定義的集羣實現請求轉發;

3、專業術語

VS:Virtual Server #虛擬服務

Director, Balancer #負載均衡器、分發器

RS:Real Server #後端請求處理服務器

CIP: Client IP #用戶端IP

VIP:Director Virtual IP #負載均衡器虛擬IP

DIP:Director IP #負載均衡器真實IP

RIP:Real Server IP #後端請求處理服務器真實IP

4. LVS工作內核模型及工作模式

① 當客戶端的請求到達負載均衡器的內核空間時,首先會到達 PREROUTING 鏈。

② 當內核發現請求數據包的目的地址是本機時,將數據包送往 INPUT 鏈。

③ LVS由用戶空間的ipvsadm和內核空間的IPVS組成,ipvsadm用來定義規則,IPVS利用ipvsadm定義的規則工作,IPVS工作在INPUT鏈上,當數據包到達INPUT鏈時,首先會被IPVS檢查,如果數據包裏面的目的地址及端口沒有在規則裏面,那麼這條數據包將被放行至用戶空間。

④ 如果數據包裏面的目的地址及端口在規則裏面,那麼這條數據報文將被修改目的地址爲事先定義好的後端服務器,並送往POSTROUTING鏈。

⑤ 最後經由POSTROUTING鏈發往後端服務器。

5.LVS負載均衡四種工作模式

LVS/NAT:網絡地址轉換模式,進站/出站的數據流量經過分發器(IP負載均衡,他修改的是IP地址) --利用三層功能
LVS/DR :直接路由模式,只有進站的數據流量經過分發器(數據鏈路層負載均衡,因爲他修改的是目的mac地址)–利用二層功能mac地址
LVS/TUN: 隧道模式,只有進站的數據流量經過分發器
LVS/full-nat:雙向轉換:通過請求報文的源地址爲DIP,目標爲RIP來實現轉發:對於響應報文而言,修改源地址爲VIP,目標地址爲CIP來實現轉發

6、LVS 四種工作模式原理、以及優缺點比較

1、NAT模式(LVS-NAT)
原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,並轉發至此RS來處理,RS處理完成後把數據交給經過負載均衡器,負載均衡器再把數據包的原IP地址改爲自己的IP,將目的地址改爲客戶端IP地址即可。期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器。
優點:集羣中的物理服務器可以使用任何支持TCP/IP操作系統,只有負載均衡器需要一個合法的IP地址(公網ip)。
缺點:擴展性有限。當服務器節點(普通PC服務器)增長過多時,負載均衡器將成爲整個系統的瓶頸,因爲所有的請求包和應答包的流向都經過負載均衡器。當服務器節點過多時,大量的數據包都交匯在負載均衡器那,速度就會變慢!

在這裏插入圖片描述
2、直接路由(Direct Routing)模式(LVS-DR)
原理:負載均衡器和RS都使用同一個IP對外服務。但只有DR對ARP請求進行響應,所有RS對本身這個IP的ARP請求保持靜默。也就是說,網關會把對這個服務IP的請求全部定向給DR,而DR收到數據包後根據調度算法,找出對應的RS,把目的MAC地址改爲RS的MAC(因爲IP一致)並將請求分發給這臺RS。這時RS收到這個數據包,處理完成之後,由於IP一致,可以直接將數據返給客戶,則等於直接從客戶端收到這個數據包無異,處理後直接返回給客戶端。
優點:和TUN(隧道模式)一樣,負載均衡器也只是分發請求,應答包通過單獨的路由方法返回給客戶端。與VS-TUN相比,VS-DR這種實現方式不需要隧道結構,因此可以使用大多數操作系統做爲物理服務器。
缺點:(不能說缺點,只能說是不足)要求負載均衡器的網卡必須與物理網卡在一個物理段上。

在這裏插入圖片描述
3、IP隧道(Tunnel)模式(VS-TUN)

​ 原理:互聯網上的大多Internet服務的請求包很短小,而應答包通常很大。那麼隧道模式就是,把客戶端發來的數據包,封裝一個新的IP頭標記(僅目的IP)發給RS,RS收到後,先把數據包的頭解開,還原數據包,處理後,直接返回給客戶端,不需要再經過負載均衡器。注意,由於RS需要對負載均衡器發過來的數據包進行還原,所以說必須支持IPTUNNEL協議。所以,在RS的內核中,必須編譯支持IPTUNNEL這個選項
​ 優點:負載均衡器只負責將請求包分發給後端節點服務器,而RS將應答包直接發給用戶。所以,減少了負載均衡器的大量數據流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量,這種方式,一臺負載均衡器能夠爲很多RS進行分發。而且跑在公網上就能進行不同地域的分發。
​ 缺點:隧道模式的RS節點需要合法IP,這種方式需要所有的服務器支持”IP Tunneling”(IP Encapsulation)協議,服務器可能只侷限在部分Linux系統上。
在這裏插入圖片描述
4、FULL-NAT模式

原理:客戶端對VIP發起請求,Director接過請求發現是請求後端服務。Direcrot對請求報文做full-nat,把源ip改爲Dip,把目標ip轉換爲任意後端RS的rip,然後發往後端,rs接到請求後,進行響應,相應源ip爲Rip目標ip還是DIP,又內部路由路由到Director,Director接到響應報文,進行full-nat。將源地址爲VIP,目標地址改爲CIP

請求使用DNAT,響應使用SNAT

lvs-fullnat(雙向轉換)

通過請求報文的源地址爲DIP,目標爲RIP來實現轉發:對於響應報文而言,修改源地址爲VIP,目標地址爲CIP來實現轉發:

​ CIP --> DIP VIP --> RIP

​ RIP --> VIP DIP–>CIP

7.lvs實現四層負載均衡項目實戰

5、四者的區別

lvs-nat與lvs-fullnat:請求和響應報文都經由Director

lvs-nat:RIP的網關要指向DIP

lvs-fullnat:雙向轉換

lvs-dr與lvs-tun:請求報文要經由Director,但響應報文由RS直接發往Client

lvs-dr:通過封裝新的MAC首部實現,通過MAC網絡轉發

lvs-tun:通過在原IP報文外封裝新IP頭實現轉發,支持遠距離通信

LVS 負載均衡集羣企業級應用實戰 LVS/DR 模式 LVS-NAT模式

LVS 負載均衡集羣企業級應用實戰

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