溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LVS三種負(fù)載均衡方式的比較

發(fā)布時(shí)間:2021-09-14 18:16:42 來(lái)源:億速云 閱讀:122 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“LVS三種負(fù)載均衡方式的比較”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1、什么是LVS?

首先簡(jiǎn)單介紹一下LVS (Linux Virtual Server)到底是什么東西,其實(shí)它是一種集群(Cluster)技術(shù),采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請(qǐng)求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動(dòng)屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器。整個(gè)服務(wù)器集群的結(jié)構(gòu)對(duì)客戶是透明的,而且無(wú)需修改客戶端和服務(wù)器端的程序。

為此,在設(shè)計(jì)時(shí)需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。一般來(lái)說(shuō),LVS集群采用三層結(jié)構(gòu),其體系結(jié)構(gòu)如圖所示:

LVS三種負(fù)載均衡方式的比較

LVS集群的體系結(jié)構(gòu)

2、LVS主要組成部分為:

負(fù)載調(diào)度器(load balancer/ Director),它是整個(gè)集群對(duì)外面的前端機(jī),負(fù)責(zé)將客戶的請(qǐng)求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來(lái)自一個(gè)IP地址(我們可稱之為虛擬IP地址)上的。

服務(wù)器池(server pool/ Realserver),是一組真正執(zhí)行客戶請(qǐng)求的服務(wù)器,執(zhí)行的服務(wù)一般有WEB、MAIL、FTP和DNS等。

共享存儲(chǔ)(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲(chǔ)區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。

3、LVS負(fù)載均衡方式:

◆Virtual Server via Network Address Translation NAT(VS/NAT)

VS/NAT是一種最簡(jiǎn)單的方式,所有的RealServer只需要將自己的網(wǎng)關(guān)指向Director即可??蛻舳丝梢允侨我獠僮飨到y(tǒng),但此方式下,一個(gè)Director能夠帶動(dòng)的RealServer比較有限。在VS/NAT的方式下,Director也可以兼為一臺(tái)RealServer。VS/NAT的體系結(jié)構(gòu)如圖所示。

LVS三種負(fù)載均衡方式的比較

VS/NAT的體系結(jié)構(gòu)

◆Virtual Server via IP Tunneling(VS/TUN)

IP隧道(IP tunneling)是將一個(gè)IP報(bào)文封裝在另一個(gè)IP報(bào)文的技術(shù),這可以使得目標(biāo)為一個(gè)IP地址的數(shù)據(jù)報(bào)文能被封裝和轉(zhuǎn)發(fā)到另一個(gè)IP地址。IP隧道技術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動(dòng)主機(jī)和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個(gè)IP地址,另一端也有唯一的IP地址。

它的連接調(diào)度和管理與VS/NAT中的一樣,只是它的報(bào)文轉(zhuǎn)發(fā)方法不同。調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,將請(qǐng)求報(bào)文封裝在另一個(gè)IP報(bào)文中,再將封裝后的IP報(bào)文轉(zhuǎn)發(fā)給選出的服務(wù)器;服務(wù)器收到報(bào)文后,先將報(bào)文解封獲得原來(lái)目標(biāo)地址為 VIP 的報(bào)文,服務(wù)器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設(shè)備上,所以就處理這個(gè)請(qǐng)求,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。

LVS三種負(fù)載均衡方式的比較

VS/TUN的體系結(jié)構(gòu)

VS/TUN的工作流程:

LVS三種負(fù)載均衡方式的比較

◆Virtual Server via Direct Routing(VS/DR)

VS/DR方式是通過(guò)改寫請(qǐng)求報(bào)文中的MAC地址部分來(lái)實(shí)現(xiàn)的。Director和RealServer必需在物理上有一個(gè)網(wǎng)卡通過(guò)不間斷的局域網(wǎng)相連。RealServer上綁定的VIP配置在各自Non-ARP的網(wǎng)絡(luò)設(shè)備上(如lo或tunl),Director的VIP地址對(duì)外可見,而RealServer的VIP對(duì)外是不可見的。RealServer的地址即可以是內(nèi)部地址,也可以是真實(shí)地址。

LVS三種負(fù)載均衡方式的比較

VS/DR的體系結(jié)構(gòu)

VS/DR的工作流程:

VS/DR的工作流程如圖所示:它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,它的報(bào)文轉(zhuǎn)發(fā)方法又有不同,將報(bào)文直接路由給目標(biāo)服務(wù)器。在VS/DR中,調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,不修改也不封裝IP報(bào)文,而是將數(shù)據(jù)幀的MAC地址改為選出服務(wù)器的MAC地址,再將修改后的數(shù)據(jù)幀在與服務(wù)器組的局域網(wǎng)上發(fā)送。因?yàn)閿?shù)據(jù)幀的MAC地址是選出的服務(wù)器,所以服務(wù)器肯定可以收到這個(gè)數(shù)據(jù)幀,從中可以獲得該IP報(bào)文。當(dāng)服務(wù)器發(fā)現(xiàn)報(bào)文的目標(biāo)地址VIP是在本地的網(wǎng)絡(luò)設(shè)備上,服務(wù)器處理這個(gè)報(bào)文,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。

LVS三種負(fù)載均衡方式的比較

4、三種負(fù)載均衡方式比較:

◆Virtual Server via NAT

VS/NAT 的優(yōu)點(diǎn)是服務(wù)器可以運(yùn)行任何支持TCP/IP的操作系統(tǒng),它只需要一個(gè)IP地址配置在調(diào)度器上,服務(wù)器組可以用私有的IP地址。缺點(diǎn)是它的伸縮能力有限,當(dāng)服務(wù)器結(jié)點(diǎn)數(shù)目升到20時(shí),調(diào)度器本身有可能成為系統(tǒng)的新瓶頸,因?yàn)樵赩S/NAT中請(qǐng)求和響應(yīng)報(bào)文都需要通過(guò)負(fù)載調(diào)度器。我們?cè)赑entium166 處理器的主機(jī)上測(cè)得重寫報(bào)文的平均延時(shí)為60us,性能更高的處理器上延時(shí)會(huì)短一些。假設(shè)TCP報(bào)文的平均長(zhǎng)度為536 Bytes,則調(diào)度器的最大吞吐量為8.93 MBytes/s. 我們?cè)偌僭O(shè)每臺(tái)服務(wù)器的吞吐量為800KBytes/s,這樣一個(gè)調(diào)度器可以帶動(dòng)10臺(tái)服務(wù)器。(注:這是很早以前測(cè)得的數(shù)據(jù))

基于 VS/NAT的的集群系統(tǒng)可以適合許多服務(wù)器的性能要求。如果負(fù)載調(diào)度器成為系統(tǒng)新的瓶頸,可以有三種方法解決這個(gè)問(wèn)題:混合方法、VS/TUN和 VS/DR。在DNS混合集群系統(tǒng)中,有若干個(gè)VS/NAT負(fù)調(diào)度器,每個(gè)負(fù)載調(diào)度器帶自己的服務(wù)器集群,同時(shí)這些負(fù)載調(diào)度器又通過(guò)RR-DNS組成簡(jiǎn)單的域名。

但VS/TUN和VS/DR是提高系統(tǒng)吞吐量的更好方法。

對(duì)于那些將IP地址或者端口號(hào)在報(bào)文數(shù)據(jù)中傳送的網(wǎng)絡(luò)服務(wù),需要編寫相應(yīng)的應(yīng)用模塊來(lái)轉(zhuǎn)換報(bào)文數(shù)據(jù)中的IP地址或者端口號(hào)。這會(huì)帶來(lái)實(shí)現(xiàn)的工作量,同時(shí)應(yīng)用模塊檢查報(bào)文的開銷會(huì)降低系統(tǒng)的吞吐率。

◆Virtual Server via IP Tunneling

在VS/TUN 的集群系統(tǒng)中,負(fù)載調(diào)度器只將請(qǐng)求調(diào)度到不同的后端服務(wù)器,后端服務(wù)器將應(yīng)答的數(shù)據(jù)直接返回給用戶。這樣,負(fù)載調(diào)度器就可以處理大量的請(qǐng)求,它甚至可以調(diào)度百臺(tái)以上的服務(wù)器(同等規(guī)模的服務(wù)器),而它不會(huì)成為系統(tǒng)的瓶頸。即使負(fù)載調(diào)度器只有100Mbps的全雙工網(wǎng)卡,整個(gè)系統(tǒng)的最大吞吐量可超過(guò) 1Gbps。所以,VS/TUN可以極大地增加負(fù)載調(diào)度器調(diào)度的服務(wù)器數(shù)量。VS/TUN調(diào)度器可以調(diào)度上百臺(tái)服務(wù)器,而它本身不會(huì)成為系統(tǒng)的瓶頸,可以用來(lái)構(gòu)建高性能的超級(jí)服務(wù)器。VS/TUN技術(shù)對(duì)服務(wù)器有要求,即所有的服務(wù)器必須支持“IP Tunneling”或者“IP Encapsulation”協(xié)議。目前,VS/TUN的后端服務(wù)器主要運(yùn)行Linux操作系統(tǒng),我們沒(méi)對(duì)其他操作系統(tǒng)進(jìn)行測(cè)試。因?yàn)椤癐P Tunneling”正成為各個(gè)操作系統(tǒng)的標(biāo)準(zhǔn)協(xié)議,所以VS/TUN應(yīng)該會(huì)適用運(yùn)行其他操作系統(tǒng)的后端服務(wù)器。

◆Virtual Server via Direct Routing

跟VS/TUN方法一樣,VS/DR調(diào)度器只處理客戶到服務(wù)器端的連接,響應(yīng)數(shù)據(jù)可以直接從獨(dú)立的網(wǎng)絡(luò)路由返回給客戶。這可以極大地提高LVS集群系統(tǒng)的伸縮性。跟VS/TUN相比,這種方法沒(méi)有IP隧道的開銷,但是要求負(fù)載調(diào)度器與實(shí)際服務(wù)器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上,服務(wù)器網(wǎng)絡(luò)設(shè)備(或者設(shè)備別名)不作ARP響應(yīng),或者能將報(bào)文重定向(Redirect)到本地的Socket端口上。

三種LVS負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)歸納以下表:

LVS三種負(fù)載均衡方式的比較

image.png

注:以上三種方法所能支持最大服務(wù)器數(shù)目的估計(jì)是假設(shè)調(diào)度器使用100M網(wǎng)卡,調(diào)度器的硬件配置與后端服務(wù)器的硬件配置相同,而且是對(duì)一般Web服務(wù)。使 用更高的硬件配置(如千兆網(wǎng)卡和更快的處理器)作為調(diào)度器,調(diào)度器所能調(diào)度的服務(wù)器數(shù)量會(huì)相應(yīng)增加。當(dāng)應(yīng)用不同時(shí),服務(wù)器的數(shù)目也會(huì)相應(yīng)地改變。所以,以上數(shù)據(jù)估計(jì)主要是為三種方法的伸縮性進(jìn)行量化比較。

5、lvs的負(fù)載調(diào)度算法 在內(nèi)核中的連接調(diào)度算法上,IPVS已實(shí)現(xiàn)了以下八種調(diào)度算法:

◆一 輪叫調(diào)度(Round-Robin Schedul ing   )

輪叫調(diào)度(Round Robin Scheduling)算法就是以輪叫的方式依次將請(qǐng)求調(diào)度不同的服務(wù)器,即每次調(diào)度執(zhí)行i=(i+1)mod n,并選出第i臺(tái)服務(wù)器。算法的優(yōu)點(diǎn)是其簡(jiǎn)潔性,它無(wú)需記錄當(dāng)前所有連接的狀態(tài),所以它是一種無(wú)狀態(tài)調(diào)度。

◆二 加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling   )

加權(quán)輪叫調(diào)度 (Weighted Round-Robin Scheduling)算法可以解決服務(wù)器間性能不一的情況,它用相應(yīng)的權(quán)值表示服務(wù)器的處理性能,服務(wù)器的缺省權(quán)值為1。假設(shè)服務(wù)器A的權(quán)值為1,B的權(quán)值為2,則表示服務(wù)器B的處理性能是A的兩倍。

加權(quán)輪叫調(diào)度算法是按權(quán)值的高 低和輪叫方式分配請(qǐng)求到各服務(wù)器。權(quán)值高的服務(wù)器先收到的連接,權(quán)值高的服 務(wù)器比權(quán)值低的服務(wù)器處理更多的連接,相同權(quán)值的服務(wù)器處理相同數(shù)目的連接數(shù)。

◆三 最小連接調(diào)度(Least-Connect ion Schedul ing   )

最小連接調(diào)度(Least- Connect ion Scheduling)算法是把新的連接請(qǐng)求分配到當(dāng)前連接數(shù)最小的服務(wù)器。最小連接調(diào)度是一種動(dòng)態(tài)調(diào)度算法,它通過(guò)服務(wù)器當(dāng)前所活躍的連接數(shù)來(lái)估計(jì)服務(wù)器的負(fù)載情況。調(diào)度器需要記錄各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請(qǐng)求被調(diào)度到某臺(tái)服務(wù)器,其連接數(shù)加1;當(dāng)連接中止或超時(shí),其連接數(shù)減一。

◆四 加權(quán)最小連接調(diào)度(Weighted Least-Connectio n Scheduling)

加權(quán)最小連接調(diào) 度(Weighted Least-Connectio n Scheduling)算法是最小連接調(diào)度的超集,各個(gè)服務(wù)器用相應(yīng)的權(quán)值表示其處理性能。服務(wù)器的缺省權(quán)值為1,系統(tǒng)管理員可以動(dòng)態(tài)地設(shè)置服務(wù)器的權(quán)值。加權(quán)最小連接調(diào)度在調(diào)度新連接時(shí)盡可能使服務(wù)器的已建立連接數(shù)和其權(quán)值成比例。

◆五 基于局部性的最少鏈接(Locality-Based Least Connections Schedulin g   )

基于局部性的最少鏈接調(diào)度(Locality-Based Least Connections Scheduling,以下簡(jiǎn)稱為L(zhǎng)BLC)算法是針對(duì)請(qǐng)求報(bào)文的目標(biāo)IP地址的負(fù)載均衡調(diào)度,目前主要用于Cache集群系統(tǒng),因?yàn)樵贑ache集群中客戶請(qǐng)求報(bào)文的目標(biāo)IP地址是變化的。這里假設(shè)任何后端服務(wù)器都可以處理任一請(qǐng)求,算法的設(shè)計(jì)目標(biāo)是在服務(wù)器的負(fù)載基本平衡情況下,將相同目標(biāo)IP地址的請(qǐng)求調(diào)度到同一臺(tái)服務(wù)器,來(lái)提高各臺(tái)服務(wù)器的訪問(wèn)局部性和主存Cache命中率,從而整個(gè)集群系統(tǒng)的處理能力。

LBLC調(diào)度算法先根據(jù)請(qǐng)求的目標(biāo)IP   地址 找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒(méi)有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于其一半的工 作負(fù)載,則用“最少鏈接”的原則選出一個(gè)可用的服務(wù)器,將請(qǐng)求發(fā)送到該服務(wù)器。

◆六 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connectio ns with Replication Scheduling)

帶復(fù)制的基于局部性最少鏈接調(diào)度(Locality-Based Least Connectio ns with Replication Scheduling,以下簡(jiǎn)稱為L(zhǎng)BLCR)算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。

它與LBLC算法的不同之處是它要 維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。對(duì)于一個(gè)“熱門”站點(diǎn)的服務(wù)請(qǐng)求,一臺(tái)Cache 服務(wù)器可能會(huì)忙不過(guò)來(lái)處理這些請(qǐng)求。這時(shí),LBLC調(diào)度算法會(huì)從所有的Cache服務(wù)器中按“最小連接”原則選出一臺(tái)Cache服務(wù)器,映射該“熱門”站點(diǎn)到這臺(tái)Cache服務(wù)器,很快這臺(tái)Cache服務(wù)器也會(huì)超載,就會(huì)重復(fù)上述過(guò)程選出新的Cache服務(wù)器。

這樣,可能會(huì)導(dǎo)致該“熱門”站點(diǎn)的映像會(huì)出現(xiàn) 在所有的Cache服務(wù)器上,降低了Cache服務(wù)器的使用效率。LBLCR調(diào)度算法將“門站”點(diǎn)映射到一組Cache服務(wù)器(服務(wù)器集合),當(dāng)該“熱門”站點(diǎn)的請(qǐng)求負(fù)載增加時(shí),會(huì)增加集合里的Cache服務(wù)器,來(lái)處理不斷增長(zhǎng)的負(fù)載;當(dāng)該“熱門”站點(diǎn)的請(qǐng)求負(fù)載降低時(shí),會(huì)減少集合里的Cache服務(wù)器 數(shù)目。這樣,該熱門站點(diǎn)的映像不可能出現(xiàn)在所有的Cache服務(wù)器上,從而提供Cache集群系統(tǒng)的使用效率。

LBLCR算法先根據(jù)請(qǐng)求的目標(biāo)IP 地址找出該目標(biāo)IP地址對(duì)應(yīng)的服務(wù)器組;按“最小連接”原則從該服務(wù)器組中選出一臺(tái)服務(wù)器,若服務(wù)器沒(méi)有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器超載;則按“最小連接”原則從整個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請(qǐng)求發(fā)送到該服務(wù)器。同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒(méi)有被修改,將最忙的服 務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度。

◆七 目標(biāo)地址散列調(diào)度(Destinat ion Hashing Scheduling   )

目標(biāo)地址散列調(diào)度 (Destinat ion Hashing Scheduling)算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,但它是一種靜態(tài)映射算法,通過(guò)一個(gè)散列(Hash)函數(shù)將一個(gè)目標(biāo)IP地址映射到一臺(tái)服務(wù)器。目標(biāo)地址散列調(diào)度算法先根據(jù)請(qǐng)求的目標(biāo)IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。

◆八 源地址散列調(diào)度(Source Hashing Scheduling)

源地址散列調(diào)度(Source Hashing Scheduling)算法正好與目標(biāo)地址散列調(diào)度算法相反,它根據(jù)請(qǐng)求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。它采用的散列函數(shù)與目標(biāo)地址散列調(diào)度算法 的相同。它的算法流程與目標(biāo)地址散列調(diào)度算法的基本相似,除了將請(qǐng)求的目標(biāo)IP地址換成請(qǐng)求的源IP   地址,所以這里不一一敘述。在實(shí)際應(yīng)用中,源地址散列 調(diào)度和目標(biāo)地址散列調(diào)度可以結(jié)合使用在防火墻集群中,它們可以保證整個(gè)系統(tǒng)的唯一出入口。

“LVS三種負(fù)載均衡方式的比較”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

lvs
AI