LVS負(fù)載均衡的三種工作模式的解析

關(guān)于負(fù)載均衡和LVS就不在做介紹了。
現(xiàn)在直接切入正題:
1、基于NAT的LVS模式負(fù)載均衡
NAT(Network Address Translation)即網(wǎng)絡(luò)地址轉(zhuǎn)換,原理是是通過修改數(shù)據(jù)報頭,讓內(nèi)網(wǎng)IP地址可以訪問外網(wǎng),以及外部用用戶可以訪問位于內(nèi)網(wǎng)的IP主機(jī)。LVS負(fù)載調(diào)度器可以使用兩塊網(wǎng)卡配置不同的IP地址,eth0設(shè)置為私有IP與內(nèi)部網(wǎng)絡(luò)通過交換設(shè)備相互連接,eth1設(shè)備為外網(wǎng)IP與外部網(wǎng)絡(luò)聯(lián)通。
第一步,用戶訪問到負(fù)載均衡的外網(wǎng)地址,該LVS外網(wǎng)IP稱為Virtual IP Address(VIP),用戶通過訪問VIP,從而間接連接到后端的真實服務(wù)器(Real Server),并且這一切用戶都是無感知的,用戶以為自己訪問的就是真實服務(wù)器,但用戶不知道被訪問的VIP僅僅是一個調(diào)度器,這個調(diào)度器后端還有服務(wù)器。
第二步,用戶將請求發(fā)送至eth1,此時LVS將根據(jù)預(yù)設(shè)的算法選擇后端的一臺真實服務(wù)器,將數(shù)據(jù)請求包轉(zhuǎn)發(fā)給真實服務(wù)器,并且在轉(zhuǎn)發(fā)之前LVS會修改數(shù)據(jù)包中的目標(biāo)地址以及目標(biāo)端口,目標(biāo)地址與目標(biāo)端口將被修改為選出的真實服務(wù)器IP地址以及相應(yīng)的端口。
第三步,真實的服務(wù)器將響應(yīng)數(shù)據(jù)包返回給LVS調(diào)度器,調(diào)度器在得到響應(yīng)的數(shù)據(jù)包后會將源地址和源端口修改為VIP及調(diào)度器相應(yīng)的端口,修改完成后,由調(diào)度器將響應(yīng)數(shù)據(jù)包發(fā)送回終端用戶,另外,由于LVS調(diào)度器有一個連接Hash表,該表中會記錄連接請求及轉(zhuǎn)發(fā)信息,當(dāng)同一個連接的下一個數(shù)據(jù)包發(fā)送給調(diào)度器時,從該Hash表中可以直接找到之前的連接記錄,并根據(jù)記錄信息選出相同的真實服務(wù)器及端口信息。
2、基于TUN的LVS負(fù)載均衡
在LVS(NAT)模式的集群環(huán)境中,由于所有的數(shù)據(jù)請求及響應(yīng)的數(shù)據(jù)包都需要經(jīng)過LVS調(diào)度器轉(zhuǎn)發(fā),如果后端服務(wù)器的數(shù)量大于10臺,則調(diào)度器就會成為整個集群環(huán)境的瓶頸。我們知道,數(shù)據(jù)請求包往往遠(yuǎn)小于響應(yīng)數(shù)據(jù)包的大小。因為響應(yīng)數(shù)據(jù)包中包含有客戶需要的具體數(shù)據(jù),所以LVS(TUN)的思路就是將請求與響應(yīng)數(shù)據(jù)分離,讓調(diào)度器僅處理數(shù)據(jù)請求,而讓真實服務(wù)器響應(yīng)數(shù)據(jù)包直接返回給客戶端。其中,IP隧道(IP tunning)是一種數(shù)據(jù)包封裝技術(shù),它可以將原始數(shù)據(jù)包封裝并添加新的包頭(內(nèi)容包括新的源地址及端口、目標(biāo)地址及端口),從而實現(xiàn)將一個目標(biāo)為調(diào)度器的VIP地址的數(shù)據(jù)包封裝,通過隧道轉(zhuǎn)發(fā)給后端的真實服務(wù)器(Real Server),通過將客戶端發(fā)往調(diào)度器的原始數(shù)據(jù)包封裝,并在其基礎(chǔ)上添加新的數(shù)據(jù)包頭(修改目標(biāo)地址為調(diào)度器選擇出來的真實服務(wù)器的IP地址及對應(yīng)端口),LVS(TUN)模式要求真實服務(wù)器可以直接與外部網(wǎng)絡(luò)連接,真實服務(wù)器在收到請求數(shù)據(jù)包后直接給客戶端主機(jī)響應(yīng)數(shù)據(jù)。
3、基于DR的LVS負(fù)載均衡
在LVS(TUN)模式下,由于需要在LVS調(diào)度器與真實服務(wù)器之間創(chuàng)建隧道連接,這同樣會增加服務(wù)器的負(fù)擔(dān)。與LVS(TUN)類似,DR模式也叫直接路由模式,該模式中LVS依然僅承擔(dān)數(shù)據(jù)的入站請求以及根據(jù)算法選出合理的真實服務(wù)器,最終由后端真實服務(wù)器負(fù)責(zé)將響應(yīng)數(shù)據(jù)包發(fā)送返回給客戶端。與隧道模式不同的是,直接路由模式(DR模式)要求調(diào)度器與后端服務(wù)器必須在同一個局域網(wǎng)內(nèi),VIP地址需要在調(diào)度器與后端所有的服務(wù)器間共享,因為最終的真實服務(wù)器給客戶端回應(yīng)數(shù)據(jù)包時需要設(shè)置源IP為VIP地址,目標(biāo)IP為客戶端IP,這樣客戶端訪問的是調(diào)度器的VIP地址,回應(yīng)的源地址也依然是該VIP地址(真實服務(wù)器上的VIP),客戶端是感覺不到后端服務(wù)器存在的。由于多臺計算機(jī)都設(shè)置了同樣一個VIP地址,所以在直接路由模式中要求調(diào)度器的VIP地址是對外可見的,客戶端需要將請求數(shù)據(jù)包發(fā)送到調(diào)度器主機(jī),而所有的真實服務(wù)器的VIP地址必須配置在Non-ARP的網(wǎng)絡(luò)設(shè)備上,也就是該網(wǎng)絡(luò)設(shè)備并不會向外廣播自己的MAC及對應(yīng)的IP地址,真實服務(wù)器的VIP對外界是不可見的,但真實服務(wù)器卻可以接受目標(biāo)地址VIP的網(wǎng)絡(luò)請求,并在回應(yīng)數(shù)據(jù)包時將源地址設(shè)置為該VIP地址。調(diào)度器根據(jù)算法在選出真實服務(wù)器后,在不修改數(shù)據(jù)報文的情況下,將數(shù)據(jù)幀的MAC地址修改為選出的真實服務(wù)器的MAC地址,通過交換機(jī)將該數(shù)據(jù)幀發(fā)給真實服務(wù)器。整個過程中,真實服務(wù)器的VIP不需要對外界可見。
總結(jié):
據(jù)了解ali的slb負(fù)載均衡器四層采用的是基于TUN的LVS負(fù)載均衡,七層的時候使用的是Tengine(nginx基礎(chǔ)上進(jìn)行優(yōu)化),華為云也是同樣的原理。
了解負(fù)載均衡的工作模式可以協(xié)助我們進(jìn)行架構(gòu)的設(shè)計和云產(chǎn)品的選型,評估何時使用托管的負(fù)載均衡何時需購買虛機(jī)自建。
云計算
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。