摘要:本文已獲得原作者霸都民工哥授權。簡單介紹虛擬服務器,是一個虛擬的服務器集群系統,可以在和系統中運行,年開發研究的項目。官方網站發展史在內核時,就已經以內核補丁的形式出現從。
本文已獲得原作者霸都民工哥授權。
寫在前面為什么需要使用負載均衡呢?這是一個必較重要的問題LVS簡單介紹
實際生產環境中某單臺服務器已不能負載日常用訪問壓力時,就需要使用負載均衡,把用戶的請求數據分擔到(盡可能平均分配)后端所有功能同等的集群的節點上,同樣也是為了解決單臺服務器故障問題,從而提高用戶的訪問體驗。
LVS(linux virtual server)LINUX 虛擬服務器,是一個虛擬的服務器集群系統,可以在 linux 和 unix 系統中運行,1985年開發研究的項目。
官方網站:http://www.linuxvirtualserver...
在linux2.2內核時,IPVS 就已經以內核補丁的形式出現
從2.4。24版本以后 IPVS 已經成為 linux 內核官方標準內核的一部分
LVS 負載均衡調度技術是在 linux 內核中實現的,我們使用配置 LVS 時,不是直接配置內核中的 IPVS,而是通過 IPVS 的管理工具 IPVSADM 來管理配置
LVS 集群負載均衡器接受所有入站客戶端的請求,并根據算法來決定由哪個集群的節點來處理請求
LVS 相關術語介紹虛擬 IP 地址(VIP):用于向客戶端提供服務的 IP 地址(配置于負載均衡器上)
真實的IP地址(RIP):集群中節點服務器的IP地址
負載均衡器 IP 地址(DIP):物理網卡上的IP,用與同外網連接的地址
客戶端主機 IP 地址(CIP): 終端請求用戶的主機IP地址
LVS 幾種工作模式介紹 NAT 網絡地址轉換模式(VS/NAT)通過網絡地址轉換,調度器 LB 重寫請求報文的目標地址,根據算法將請求分配給后端的真實主機服務器,真實服務器響應處理報文后返回給調度器 LB ,經過 LB 的報文源地址被重寫,再返回給請求的客戶端用戶
1:客戶端請求 CIP(10.10.0.1:80)目標的地址是VIP(1.1.1.1:80)TUN 隧道模式(VS/TUN)2:數據經過 LB,目的地址將被 LB 改寫成后端服務器其中一個主機地址(RIP 192.168.1.1:80)
3:服務器接收到數據請求后返回應答信息(源地址:192.168.1.:80,目的地址:1.1.1.1:80,因此處的網關地址需指向LB)給 LB
4:LB 需將源數據地址改寫成 VIP 地址(1.1.1.1:80,但實際的源地址是RIP1的地址)
5:LB 將數據返回給請求的客戶端用戶,完成整個流程的訪問
因此 WEB 訪問量很大的時候,LB 就會有很大的負載壓力,一般支持10-20臺節點,但是這種模式支持IP和端口的轉換功能,即10.10.0.1:80---->1.1.1.1:80---->192.168.1.1:8080
LB 將請求的報文通過IP隧道轉發給真實服務器,這樣 LB 只要需要處理請求入站報文,因此可提高訪問效率
1:客戶端發送請求數據包(源:CIP10.10.1.1:80,目的地址:VIP1.1.1.1:80)2:數據包到達 LB 后,LB 將數據包重新封裝成另一個 IP 包(源目地址不變,增加一個IP頭),通過隧道轉發給真實服務器
3:真實服務器收到數據包后進行解包,數據包信息是(源:CIP 10.10.1.1:80,目的地址:VIP 1.1.1.1:80),最終發現目的地址不是自己(因此需要在服務器LO上綁定一個VIP地址),這樣才會處理數據,返回處理數據
4:客戶端接收到返回的數據(源地址 VIP 1.1.1.1:80,目的地址 CIP 10.10.1.1:80),符合 TCP/IP 的原理,因此整個訪問過程完成
注:這時肯定有朋友發現這里會有一個問題,每臺服務器上都綁定了一個相同 VIP 地址,用戶訪問時的目的地址也是 VIP,當數據包達到路由器后經過轉發至內網,內網可能會產生多臺回應數據包的機器,然后用戶收到的最快回應的內網機器發來的數據,這樣一來數據包也就沒有經過 LB,就不是負載均衡了,所以需要做抑制 ARP 的功能,使所有真實服務器不再響應目的地址是 VIP 的請求,只要 LB 來響應請求,從而達到負載均衡。在實際生產環境中很少使用這種模式
DR 模式(Direct Routing)直接路由模式此模式是通過改寫請求報文的目標 MAC 地址,將請求發給真實服務器,而真實服務器將響應后的數據直接回應給請求的客戶端,此模式要求 LB 與真實服務器需要有一塊物理網卡都是連接在同一網段上
1:客戶端發出請求數據包(源 CIP 10.10.1.1:80 目的VIP1.1.1.1:80)2:LB 接收到數據包后,不轉換地址及端口,也不重新封裝,只是將數據幀中的目的地址的 MAC 地址改寫算法調度的真實機的 MAC 地址,將數據包轉發出去
3:真實機收到數據后,但是發現數據包中目的地址不是自己(所以事先也得在 LO 上綁定一個 VIP 地址,同時配置抑制ARP),這樣真實機做出響應直接回復客戶端
4:客戶端收到回復的數據包(源 VIP 1.1.1.1:80 目的 CIP 10.10.1.1:80),完成整個訪問過程
注:LB 只能改寫目的 MAC 地址,因此它不能改變請求報文的目的端口端口,LVS 只支持 unix 和 linux,但集群節點服務器可以是 win 系統,此種模式配置相當麻煩
FULLNAT 模式(淘寶開源)解決了上述三種的缺點
解決了真實服務器能跨越 VLAN 通訊,只需要連接到內網即可
入站時:
目標 IP 更改為真實服務器的 IP,源 IP 更改為內網的本地IP(一組內網IP)
出站時:
目標IP更改為客戶端的 IP,源 IP 更換為 VIP
LVS 的調度算法決定了如何在集群節點之間分配負載壓力(訪問請求)
調度算法rr 輪循調度:將請求依次分配給集群的節點,這種算法適用于各個節點處理能力基本相同的情況下
wrr 加權輪循調度:根據節點的權重來分配,權重較高的優先分配
wlc 加權最小連接數調度:按權重和連接數的數量來分配
lc 最小連接數調度:按連接數的數量來分配
實際生產環境 LVS 調度算法選型一般網絡服務,如 HTTP、MAIL、MYSQL 常用的調度算法有:rr、wlc、wrr
作者:霸都民工哥
鏈接:https://mp.weixin.qq.com/s...
來源:微信公眾號
更多相關文章:
Docker Compose+nginx 實現負載均衡
深入理解負載均衡
分布式架構實踐——負載均衡
如果你還想了解更多,想和技術同僚分享切磋,可掃下方二維碼,回復 yw,加入掘金運維技術交流群
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11899.html
摘要:本文已獲得原作者霸都民工哥授權。簡單介紹虛擬服務器,是一個虛擬的服務器集群系統,可以在和系統中運行,年開發研究的項目。官方網站發展史在內核時,就已經以內核補丁的形式出現從。 本文已獲得原作者霸都民工哥授權。 寫在前面 為什么需要使用負載均衡呢?這是一個必較重要的問題 實際生產環境中某單臺服務器已不能負載日常用訪問壓力時,就需要使用負載均衡,把用戶的請求數據分擔到(盡可能平均分配)后端所...
閱讀 5738·2021-11-24 10:25
閱讀 2689·2021-11-16 11:44
閱讀 3843·2021-10-11 11:09
閱讀 3171·2021-09-02 15:41
閱讀 3256·2019-08-30 14:14
閱讀 2271·2019-08-29 14:10
閱讀 2344·2019-08-29 11:03
閱讀 1125·2019-08-26 13:47