1. 程式人生 > >LVS負載均衡三種模式的實現

LVS負載均衡三種模式的實現

地址轉換 基礎 可見 技術 image 實現 被集成 設置 log

何為lvs負載均衡? lvs負載均衡(linux virtual server)又名linux虛擬服務器。由章文嵩博士主導的負載均衡項目,目前LVS已經被集成到Linux內核模塊中。該項目在Linux內核中實現了基於IP的數據請求負載均衡調度方案。如下圖所示,互聯網用戶通過web請求訪問到lvs調度器,然後調度器再根據算法把請求送給後端的linux web服務器上。比如這裏拿負載均衡模式來說,由於web服務器都是連接的相同的存儲,又都是跑的相同的服務,所以不論哪個服務器回應客戶端,內容則都是一致的,而客戶端壓根感知不到web服務器其實是多臺linux集群,因為收到的數據包ip地址都是同一個。 技術分享圖片
技術分享圖片 技術分享圖片 lvs負載均衡的三種模式(重要,涉及架構搭建) 1.基於NAT模式的lvs NAT模式(network address translation),又稱為網絡地址轉換。 數據交互過程: 第一步:互聯網用戶通過web請求到lvs調度器上,然後lvs通過算法選擇轉發給web1還是web2還是web3,假設這裏選擇了web1 第二步:lvs調度器更改web請求數據包的源ip與目標ip,比如以前的數據包src:B(互聯網用戶)des:124.126.147.168,更改後的數據包src:192.168.0.254(調度器本身)des:192.168.0.1,然後數據包轉發給192.168.0.1 第三步:192.168.0.1收到web請求後,由於看到src地址是192.168.0.254,將響應的數據包轉發給lvs調度器 第四步:調度器收到來自192.168.0.1的數據包後,再次更改數據包的src與des,比如src由192.168.0.1修改為124.126.147.168,des由192.168.0.254修改為B(互聯網用戶)。修改完成之後,轉發給B。 第五步:互聯網用戶B收到來自於124.126.147.168的響應數據從而得到想要的內容 搭建此架構需要註意的事項: 第一:lvs調度器需要雙網卡支持 第二:lvs調度器內網口需要和realserver在同一個局域網內 技術分享圖片

技術分享圖片 2.基於tun的負載均衡模式 在LVS(NAT)模式的集群環境中,由於所有的數據請求及響應的數據包都需要經過LVS調度器轉發,如果後端服務器的數量大於10臺,則調度器就會成為整個集群環境的瓶頸。我們知道,數據請求包往往遠小於響應數據包的大小。因為響應數據包中包含有客戶需要的具體數據,所以LVS(TUN)的思路就是將請求與響應數據分離,讓調度器僅處理數據請求,而讓真實服務器響應數據包直接返回給客戶端。IP隧道(IP tunning)是一種數據包封裝技術,它可以將原始數據包封裝並添加新的包頭(內容包括新的源地址及端口、目標地址及端口),從而實現將一個目標為調度器的VIP地址的數據包封裝,通過隧道轉發給後端的真實服務器(Real Server),通過將客戶端發往調度器的原始數據包封裝,並在其基礎上添加新的數據包頭(修改目標地址為調度器選擇出來的真實服務器的IP地址及對應端口),LVS(TUN)模式要求真實服務器可以直接與外部網絡連接,真實服務器在收到請求數據包後直接給客戶端主機響應數據。 數據交互過程: 第一步:互聯網用戶通過web請求訪問到lvs調度器,lvs調度器通過算法選擇realserver轉發web請求 第二步:轉發之前,在原數據包的基礎上,對des添加一層ip報頭,src不變。這樣就相當於建立了web1與lvs的隧道,這樣web1就可以順利收到轉發後的數據包。 第三步:web1收到數據包後,查看到src來自於互聯網用戶,然後直接通過互聯網回應給互聯網用戶B(這裏realserver是否需要修改自己的src地址為124.126.147.168-待確定) 搭建此建構需要註意的事項: 第一:需要大量的公網ip地址,因為realserver和lvs調度器都需要暴露在互聯網上(不安全) 第二:做到了請求數據與響應數據分離,擺脫了lvs的瓶頸問題 技術分享圖片

技術分享圖片 3.基於DR的負載均衡 所謂DR(direct route)直連路由模式,在LVS(TUN)模式下,由於需要在LVS調度器與真實服務器之間創建隧道連接,這同樣會增加服務器的負擔。該模式中LVS依然僅承擔數據的入站請求以及根據算法選出合理的真實服務器,最終由後端真實服務器負責將響應數據包發送返回給客戶端。與隧道模式不同的是,直接路由模式(DR模式)要求調度器與後端服務器必須在同一個局域網內,VIP地址需要在調度器與後端所有的服務器間共享,因為最終的真實服務器給客戶端回應數據包時需要設置源IP為VIP地址,目標IP為客戶端IP,這樣客戶端訪問的是調度器的VIP地址,回應的源地址也依然是該VIP地址(真實服務器上的VIP),客戶端是感覺不到後端服務器存在的。由於多臺計算機都設置了同樣一個VIP地址,所以在直接路由模式中要求調度器的VIP地址是對外可見的,客戶端需要將請求數據包發送到調度器主機,而所有的真實服務器的VIP地址必須配置在Non-ARP的網絡設備上,也就是該網絡設備並不會向外廣播自己的MAC及對應的IP地址,真實服務器的VIP對外界是不可見的,但真實服務器卻可以接受目標地址VIP的網絡請求,並在回應數據包時將源地址設置為該VIP地址。調度器根據算法在選出真實服務器後,在不修改數據報文的情況下,將數據幀的MAC地址修改為選出的真實服務器的MAC地址,通過交換機將該數據幀發給真實服務器。整個過程中,真實服務器的VIP不需要對外界可見。 數據交互過程: 第一步:互聯網用戶通過web請求訪問到lvs調度器,調度器通過算法計算出應該轉發到哪個mac地址的realserver上,比如web1 第二步:通過Non-ARP設備尋址,得知des mac = aa:bb:cc:dd的設備的ip地址為192.168.0.1,接著轉發到web1 第三步:web1收到數據包後處理並回復互聯網用戶B,回復時帶上自己的src地址為124.126.147.168 第四步:互聯網用戶B收到來自124.126.147.168的數據包並得到自己想要的內容 技術分享圖片

技術分享圖片 以上內容參考文章原址:https://blog.csdn.net/weixin_40470303/article/details/80541639

LVS負載均衡三種模式的實現