溫馨提示×

溫馨提示×

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

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

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

發(fā)布時間:2020-04-21 10:15:16 來源:億速云 閱讀:2149 作者:三月 欄目:建站服務(wù)器

下文給大家?guī)鞮VS概念、組成部分及IPVS三大負(fù)載均衡技術(shù),希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用億速云在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)做一個解答。

  • 什么是LVS

  • LVS主要組成部分

  • IPVS三大負(fù)載均衡技術(shù)

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

什么是LVS


LVS針對高可伸縮、高可用網(wǎng)絡(luò)服務(wù)的需求,給出了基于IP層和基于內(nèi)容請求分發(fā)的負(fù)載平衡調(diào)度解決方法,并在Linux內(nèi)核中實(shí)現(xiàn)了這些方法,將一組云服務(wù)器構(gòu)成一個實(shí)現(xiàn)可伸縮的、高可用網(wǎng)絡(luò)服務(wù)的虛擬服務(wù)器。

一組服務(wù)器通過高速的局域網(wǎng)和地理分布的廣域網(wǎng)相互連接,在它們的前端有一個負(fù)載調(diào)度器(Load Balancer)。負(fù)載調(diào)度器能無縫地將網(wǎng)絡(luò)請求調(diào)度到真實(shí)服務(wù)器上,從而使得服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,客戶訪問集群系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣。客戶程序不受服務(wù)器集群的影響不需作任何修改。系統(tǒng)的伸縮性通過在服務(wù)機(jī)群中透明地加入和刪除一個節(jié)點(diǎn)來達(dá)到,通過檢測節(jié)點(diǎn)或服務(wù)進(jìn)程故障和正確地重置系統(tǒng)達(dá)到高可用性。由于我們的負(fù)載調(diào)度技術(shù)是在Linux內(nèi)核中實(shí)現(xiàn)的,我們稱之為Linux虛擬服務(wù)器(Linux Virtual Server)。

Linux Virtual Server項(xiàng)目的目標(biāo) :使用集群技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個高性能、高可用的服務(wù)器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。

目前,LVS項(xiàng)目已提供了一個實(shí)現(xiàn)可伸縮網(wǎng)絡(luò)服務(wù)的Linux Virtual Server框架。在LVS框架中,提供了含有三種"IP負(fù)載均衡技術(shù)"的IP虛擬服務(wù)器軟件"IPVS"、"基于內(nèi)容請求分發(fā)的內(nèi)核Layer-7交 換機(jī)KTCPVS"和"集群管理軟件"。可以利用LVS框架實(shí)現(xiàn)高可伸縮的、高可用的Web、Cache、Mail和Media等網(wǎng)絡(luò)服務(wù);在此基礎(chǔ)上,可以開 發(fā)支持龐大用戶數(shù)的、高可伸縮的、高可用的電子商務(wù)應(yīng)用

 

LVS主要組成部分


1)負(fù)載調(diào)度器

英文名稱叫"load balancer"或者"Director",它是整個集群對外的前端機(jī),負(fù)責(zé)將客戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來自一個IP地址(我們可稱之為虛擬IP地址VIP)上的。

2)服務(wù)器池

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

3)共享存儲

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

 

3 IPVS三大負(fù)載均衡技術(shù)


在調(diào)度器的實(shí)現(xiàn)技術(shù)中,IP負(fù)載均衡技術(shù)是效率最高的。在已有的IP負(fù)載均衡技術(shù)中有通過網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器,我們稱之為VS/NAT技術(shù)(Virtual Server via Network Address Translation),大多數(shù)商品化的IP負(fù)載均衡調(diào)度器產(chǎn)品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺點(diǎn)和網(wǎng)絡(luò)服務(wù)的非對稱性的基礎(chǔ)上,我們提出通過IP隧道實(shí)現(xiàn)虛擬服務(wù)器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實(shí)現(xiàn)虛擬服務(wù)器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統(tǒng)的伸縮性。所以,IPVS軟件實(shí)現(xiàn)了這三種IP負(fù)載均衡技術(shù),它們的大致原理如下

【VS/NAT】

他是"Virtual Server via Network Address Translation"的英文縮寫。通過網(wǎng)絡(luò)地址轉(zhuǎn)換,調(diào)度器重寫請求報文的目標(biāo)地址,根據(jù)預(yù)設(shè)的調(diào)度算法,將請求分派給后端的真實(shí)服務(wù)器;真實(shí)服務(wù)器的響應(yīng)報文通過調(diào)度器時,再將報文的源地址進(jìn)行重寫,再返回給客戶,完成整個負(fù)載調(diào)度過程。在VS/NAT的方式下,Director也可以兼為一臺RealServer。VS/NAT的工作原理圖如下:

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

舉例說明報文地址轉(zhuǎn)換過程,如下圖:

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

web服務(wù)為例,訪問Web服務(wù)的報文可能有以下的源地址和目標(biāo)地址:

SOURCE

DEST

200.203.10.5:80

200.203.100.6:80

調(diào)度器從調(diào)度列表中選出一臺服務(wù)器,例如是172.18.14.55:80。該報文會被改寫為如下地址,并將它發(fā)送給選出的服務(wù)器。

SOURCE

DEST

200.203.10.5:80

172.18.14.66:80

從服務(wù)器返回到調(diào)度器的響應(yīng)報文如下:

SOURCE

DEST

172.18.14.66:80

200.203.10.5:80

響應(yīng)報文的源地址會被改寫為虛擬服務(wù)的地址,再將報文發(fā)送給客戶:

SOURCE

DEST

200.203.100.6:80

200.203.10.5:80

這樣,客戶認(rèn)為是從200.203.100.6:80服務(wù)得到正確的響應(yīng),而不會知道該請求是由哪個服務(wù)器去處理的。

|VS/NAT的一些要點(diǎn)|:

RIP和DIP通常在同一個IP網(wǎng)絡(luò),且應(yīng)該使用私網(wǎng)地址;RS的網(wǎng)關(guān)要指向DIP;非同一網(wǎng)絡(luò),應(yīng)該做好網(wǎng)關(guān)指向,保持鏈路暢通。

VS/NAT是一種最簡單的方式,所有的RealServer只需要將自己的網(wǎng)關(guān)指向Director即可

請求報文和響應(yīng)報文都必須經(jīng)由Director轉(zhuǎn)發(fā),Director易于成為系統(tǒng)瓶頸

支持端口映射,可修改請求報文的目標(biāo)PORT

VS必須是Linux系統(tǒng),RS可以是任意OS系統(tǒng)

【VS/TUN】

他是"Virtual Server via IP Tunneling"縮寫。IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術(shù),這可以使得目標(biāo)為一個IP地址的數(shù)據(jù)報文能被封裝和轉(zhuǎn)發(fā)到另一個IP地址。IP隧道技術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。 VS/TUN結(jié)構(gòu)圖如下:

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

IP隧道主要用于移動主機(jī)和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。它的連接調(diào)度和管理與"VS/NAT"中的一樣,只是它的報文轉(zhuǎn)發(fā)方法不同。調(diào)度器根據(jù)各個服務(wù)器的負(fù)載情況,動態(tài)地選擇一臺服務(wù)器,將請求報文封裝在另一個IP報文中,再將封裝后的IP報文轉(zhuǎn)發(fā)給選出的服務(wù)器;服務(wù)器收到報文后,先將報文解封獲得原來目標(biāo)地址為 VIP 的報文,服務(wù)器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設(shè)備上,所以就處理這個請求,然后根據(jù)路由表將響應(yīng)報文直接返回給客戶。

采用NAT技術(shù)時,由于請求和響應(yīng)報文都必須經(jīng)過調(diào)度器地址重寫,當(dāng)客戶請求越來越多時,調(diào)度器的處理能力將成為瓶頸。為了解決這個問題,調(diào)度器把請求報文通過IP隧道轉(zhuǎn)發(fā)至真實(shí)服務(wù)器,而真實(shí)服務(wù)器將響應(yīng)直接返回給客戶,所以調(diào)度器只處理請求報文。由于一般網(wǎng)絡(luò)服務(wù)應(yīng)答比請求報文大許多,采用 VS/TUN技術(shù)后,集群系統(tǒng)的最大吞吐量可以提高10倍。

【VS/DR】

VS/DR通過改寫請求報文的MAC地址,將請求發(fā)送到真實(shí)服務(wù)器,而真實(shí)服務(wù)器將響應(yīng)直接返回給客戶。同VS/TUN技術(shù)一樣,VS/DR技術(shù)可極大地提高集群系統(tǒng)的伸縮性。這種方法沒有IP隧道的開銷,對集群中的真實(shí)服務(wù)器也沒有必須支持IP隧道協(xié)議的要求,但是要求調(diào)度器(Director)與真實(shí)服務(wù)器(RealServer)都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。RealServer上綁定的VIP配置在各自Non-ARP的網(wǎng)絡(luò)設(shè)備上(如lo或tunl),Director的VIP地址對外可見,而RealServer的VIP對外是不可見的。RealServer的地址即可以是內(nèi)部地址,也可以是真實(shí)地址。VS/DR的結(jié)構(gòu)圖如下:

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

VS/DR工作過程詳解:

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

 

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


1)Virtual Server via NAT

|VS/NAT 的優(yōu)點(diǎn)|:

服務(wù)器可以運(yùn)行任何支持TCP/IP的操作系統(tǒng),它只需要一個IP地址配置在調(diào)度器上,服務(wù)器組可以用私有的IP地址。

|VS/NAT 的缺點(diǎn)|:

缺點(diǎn)是它的伸縮能力有限,當(dāng)服務(wù)器結(jié)點(diǎn)數(shù)目升到20時,調(diào)度器本身有可能成為系統(tǒng)的新瓶頸,因?yàn)樵赩S/NAT中請求和響應(yīng)報文都需要通過負(fù)載調(diào)度器。

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

2)Virtual Server via IP Tunneling

VS/TUN 的集群系統(tǒng)中,負(fù)載調(diào)度器只將請求調(diào)度到不同的后端服務(wù)器,后端服務(wù)器將應(yīng)答的數(shù)據(jù)直接返回給用戶。這樣,負(fù)載調(diào)度器就可以處理大量的請求,它甚至可以調(diào)度百臺以上的服務(wù)器(同等規(guī)模的服務(wù)器),而它不會成為系統(tǒng)的瓶頸。即使負(fù)載調(diào)度器只有100Mbps的全雙工網(wǎng)卡,整個系統(tǒng)的最大吞吐量可超過 1Gbps。所以,VS/TUN可以極大地增加負(fù)載調(diào)度器調(diào)度的服務(wù)器數(shù)量。

VS/TUN調(diào)度器可以調(diào)度上百臺服務(wù)器,而它本身不會成為系統(tǒng)的瓶頸,可以用來構(gòu)建高性能的超級服務(wù)器。

VS/TUN技術(shù)對服務(wù)器有要求,即所有的服務(wù)器必須支持“IP Tunneling”或者“IP Encapsulation”協(xié)議。目前,VS/TUN的后端服務(wù)器主要運(yùn)行Linux操作系統(tǒng),我們沒對其他操作系統(tǒng)進(jìn)行測試。因?yàn)椤癐P Tunneling”正成為各個操作系統(tǒng)的標(biāo)準(zhǔn)協(xié)議,所以VS/TUN應(yīng)該會適用運(yùn)行其他操作系統(tǒng)的后端服務(wù)器。

3)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相比,這種方法沒有IP隧道的開銷,但是要求負(fù)載調(diào)度器與實(shí)際服務(wù)器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上,服務(wù)器網(wǎng)絡(luò)設(shè)備(或者設(shè)備別名)不作ARP響應(yīng),或者能將報文重定向(Redirect)到本地的Socket端口上。

總結(jié):三種LVS負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)

LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù)

看了以上關(guān)于LVS概念、組成部分及IPVS三大負(fù)載均衡技術(shù),如果大家還有什么地方需要了解的可以在億速云行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,億速云技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

 


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

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

AI