LVS三種模式的原理解析

ipvs (IP Virtual Server)實現了傳輸層負載均衡,也就是我們常說的4層 LAN 交換,作爲 Linux 內核的一部分。 ipvs 運行在主機上,在真實服務器集羣前充當負載均衡器。Ipvs具體實現是由ipvsadm這個程序(命令)來完成

一、DR(直接路由)模式

在這裏插入圖片描述


先回答環境的概況,然後是如何對請求進行響應,最後回答優缺點。

在DR模式中,調度器VS和RS在同一個VLAN中,VS和RS服務器組共用一個VIP,只有VS對客戶端的ARP請求進行響應,而RS對自己本身IP的ARP請求DROP掉。

當客戶端發來對VIP的請求時,VS會根據調度算法找出對應的RS,然後將數據鏈路層的幀的目的mac地址改成進行響應的RS的mac地址。並將請求分發給這臺RS這時RS收到這個數據包,處理完成之後,由於目標IP地址一致,後端真實服務器直接將數據返給客戶。
則等於RS直接從客戶端收到這個數據包,處理後直接返回給客戶端

優點:負載調度器中只負責調度請求,而服務器直接將響應返回給客戶,可以極大地提高整個集羣系統的吞吐量
缺點:要求負載均衡器的網卡必須與物理網卡在一個物理段上。


二、NAT(網絡地址轉換)模式

在這裏插入圖片描述



原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址
併發至此RS來處理,RS處理完後把數據交給負載均衡器,負載均衡器再把數據包原IP地址改爲自己的IP
將目的地址改爲客戶端IP地址。期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器。

優點:集羣中的物理服務器可以使用任何支持TCP/IP操作系統,只有負載均衡器需要一個合法的IP地址
缺點:擴展性有限。當客戶端請求數過多時,負載均衡器將成爲整個系統的瓶頸因爲所有的請求包和應答包的流向都經過負載均衡器。
當服務器節點過多時大量的數據包都交匯在負載均衡器那,速度就會變慢!


三、TUN(隧道模式)

在這裏插入圖片描述


調度器根據各個服務器的負載情況,動態地選擇一臺服務器,將請求報文封裝在另一個 IP報文中,再將封裝後的IP報文轉發給選出的服務器;服務器收到報文後,先將報文解封獲得原來目標地址爲VIP的報文,服務器發現VIP地址被配置在本 地的IP隧道設備上,所以就處理這個請求,然後根據路由表將響應報文直接返回給客戶。

優點:負載均衡器只負責將請求包分發給後端節點服務器,而RS將應答包直接發給用戶
所以,減少了負載均衡器的大量數據流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量
這種方式,一臺負載均衡器能夠爲很多RS進行分發。而且跑在公網上就能進行不同地域的分發。

缺點:隧道模式的RS節點需要合法IP,這種方式需要所有的服務器支持”IP Tunneling”
(IP Encapsulation)協議,服務器可能只侷限在部分Linux系統上

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