溫馨提示×

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

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

LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹

發(fā)布時(shí)間:2020-04-17 10:33:04 來(lái)源:億速云 閱讀:565 作者:三月 欄目:建站服務(wù)器

下文給大家?guī)?lái)LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹,希望能夠給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用億速云在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來(lái)做一個(gè)解答。

LVS負(fù)載均衡群集(三種工作模式原理詳解)

一、前言

在互聯(lián)網(wǎng)應(yīng)用中,隨著站點(diǎn)對(duì)硬件性能、響應(yīng)速度、服務(wù)穩(wěn)定性、數(shù)據(jù)可靠性等要求越來(lái)越高,單臺(tái)服務(wù)器力不從心。所以我們需要通過(guò)一些方法來(lái)解決這樣的瓶頸。

最簡(jiǎn)單的方法就是使用價(jià)格昂貴的大、小型的主機(jī);但這樣在大多數(shù)企業(yè)中顯然是不可取或者說(shuō)不現(xiàn)實(shí)的。那么我們就需要通過(guò)多個(gè)普通云服務(wù)器構(gòu)建服務(wù)器群集。

二、相關(guān)概念概述

2.1何為L(zhǎng)VS?

LVS——Linux Virtual Server,即Linux虛擬服務(wù)器(虛擬主機(jī)、共享主機(jī)),虛擬主機(jī)在這里就不再贅述了,相信大家都明白。

而LVS是一個(gè)虛擬的服務(wù)器集群系統(tǒng),其實(shí)現(xiàn)的是一個(gè)高性能、高可用的服務(wù)器。目前LVS已經(jīng)被集成到Linux內(nèi)核模塊中。

2.2LVS的構(gòu)成

①?gòu)奈锢韺用嫔现v,LVS的主要組成:

  1. 負(fù)載調(diào)度器(load balancer/ Director),它是整個(gè)集群對(duì)外面的前端機(jī),負(fù)責(zé)將客戶的請(qǐng)求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來(lái)自一個(gè)IP地址(我們可稱之為虛擬IP地址)上的。
  2. 服務(wù)器池(server pool/ Realserver),是一組真正執(zhí)行客戶請(qǐng)求的服務(wù)器,執(zhí)行的服務(wù)一般有WEB、MAIL、FTP和DNS等。
  3. 共享存儲(chǔ)(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲(chǔ)區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)

如下圖所示:

LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹

補(bǔ)充:一般為了實(shí)現(xiàn)高可用會(huì)使用兩臺(tái)以上的調(diào)度服務(wù)器,作為備份,提高安全性。(后面的實(shí)驗(yàn)部署DR模式+keepalive會(huì)使用兩臺(tái)負(fù)載調(diào)度服務(wù)器)

②從軟件層面上講,LVS 由2部分程序組成,包括 ipvs 和 ipvsadm。

1.ipvs(ip virtual server):工作在內(nèi)核空間的一段代碼,叫ipvs,是真正生效實(shí)現(xiàn)調(diào)度的代碼。

2.ipvsadm:另外一段是工作在用戶空間,叫ipvsadm,負(fù)責(zé)為ipvs內(nèi)核框架編寫規(guī)則,定義誰(shuí)是集群服務(wù),而誰(shuí)是后端真實(shí)的服務(wù)器(Real Server),然后由內(nèi)核代碼實(shí)現(xiàn)真正的調(diào)度算法及功能。

2.3何為群集?

群集,或者說(shuō)集群,英文是cluster,由多臺(tái)主機(jī)構(gòu)成,但是對(duì)外只表現(xiàn)為一個(gè)整體(同一服務(wù)),客戶端是無(wú)法察覺(jué)到究竟有多少臺(tái)服務(wù)器,并且對(duì)自己訪問(wèn)的是哪一臺(tái)真實(shí)服務(wù)器一無(wú)所知。

根據(jù)針對(duì)目標(biāo)差異,可將群集分為負(fù)載均衡群集、高可用群集(HA)、高性能運(yùn)算群集三類。下文會(huì)逐一介紹。

2.4如何理解負(fù)載均衡?

負(fù)載均衡——load balance,顧名思義,就服務(wù)器方面而言,可以理解為多個(gè)服務(wù)器上所承載的“壓力”相對(duì)平衡,這里的“壓力”指的是服務(wù)器上所需要響應(yīng)的各種資源請(qǐng)求或者服務(wù),并且是相對(duì)平衡的,畢竟服務(wù)器的性能等諸多方面都未必一致。

簡(jiǎn)單舉個(gè)例子來(lái)說(shuō)明一下負(fù)載均衡的含義,如果說(shuō)你需要打一桶水,你可以選擇用一只手拎著,但是可能會(huì)比較累,如果你用雙手拎著兩個(gè)桶來(lái)裝與之等量且平均分配的水,就比較輕松了。

其實(shí)負(fù)載均衡本質(zhì)上就是這樣的原理,將任務(wù)相對(duì)平均分配給多個(gè)服務(wù)器處理,這樣既可以減輕一臺(tái)服務(wù)器的壓力,也能提高響應(yīng)與處理的速度。

2.5群集的類型
2.5.1負(fù)載均衡群集

負(fù)載均衡+群集,可以提高應(yīng)用系統(tǒng)的響應(yīng)能力、處理更多訪問(wèn)請(qǐng)求、減少延遲,從而獲得高并發(fā)、高負(fù)載的整體性能。

當(dāng)然,負(fù)載均衡的處理并不是簡(jiǎn)單的平均分配,而是依賴于實(shí)際情況下的調(diào)度分流算法。而算法就涉及開(kāi)發(fā)人員的思想和生產(chǎn)環(huán)境的實(shí)際情況了。

2.5.2高可用群集

提高應(yīng)用系統(tǒng)的可靠性、減少主斷時(shí)間,確保服務(wù)的連續(xù)性,達(dá)到高可用的容錯(cuò)效果。

HA(high availability)的工作方式包括雙工和主從兩種模式。這就涉及到“去中心化”和“中心化”思想,而上一篇文章所介紹的MHA就是典型的master高可用群集的架構(gòu)模式,只不過(guò)我們使用的是MySQL數(shù)據(jù)庫(kù),從而搭成該高可用的架構(gòu)。

2.5.3高性能運(yùn)算群集

高性能運(yùn)算群集——High Performance Computer Cluster,提高應(yīng)用系統(tǒng)的CPU運(yùn)算速度、擴(kuò)展硬件資源和分析能力,獲得相當(dāng)于大型、超級(jí)計(jì)算機(jī)的高性能運(yùn)算能力。

高性能運(yùn)算群集的高性能依賴于“分布式運(yùn)算”、“并行計(jì)算”,通過(guò)專用硬件和軟件將多個(gè)服務(wù)器的CPU、內(nèi)存等資源整合在一起,實(shí)現(xiàn)只有大型計(jì)算機(jī)具備的計(jì)算能力。

負(fù)載均衡群集是目前企業(yè)用的最多的群集類型,群集的負(fù)載調(diào)度技術(shù)有三種工作模式:地址轉(zhuǎn)換——NAT、IP隧道——ip Tunnel、直接路由——Directing Route。

下面我們來(lái)逐一介紹一下這三種模式。

三、負(fù)載均衡群集工作模式

3.1NAT模式

地址轉(zhuǎn)換——Network Address Translation。我們結(jié)合下圖分析該模式:

LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹

根據(jù)上圖結(jié)構(gòu)我們暫時(shí)不考慮共享存儲(chǔ),(下篇文章會(huì)將該模式的架構(gòu)流程以及配置過(guò)程詳細(xì)給出,使用NFS作為共享存儲(chǔ))

我們首先來(lái)看實(shí)線部分,也就是client端請(qǐng)求服務(wù)的部分。

1.客戶端進(jìn)行請(qǐng)求服務(wù)器,對(duì)于客戶而言,直接訪問(wèn)的目標(biāo)IP地址不可能是下面的三臺(tái)或多臺(tái)真實(shí)服務(wù)器(Real Server),而是LVS負(fù)載調(diào)度服務(wù)器(當(dāng)然,該服務(wù)器也可以是一個(gè)真實(shí)服務(wù)器(相當(dāng)于身兼數(shù)職),看自己的想法和需求)。一般而言我們?cè)谪?fù)載調(diào)度器上是將其充當(dāng)為一個(gè)網(wǎng)關(guān)的功能,所以它有(至少有)兩個(gè)網(wǎng)卡,并且網(wǎng)段不同。在這臺(tái)服務(wù)器上我們需要進(jìn)行NAT地址轉(zhuǎn)換,一般是通過(guò)ip地址映射的方法,來(lái)實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求和數(shù)據(jù)響應(yīng)的功能。當(dāng)然這需要我們理解NAT的原理和設(shè)置方法。

2.請(qǐng)求到達(dá)負(fù)載調(diào)度服務(wù)器,進(jìn)行相關(guān)處理將數(shù)據(jù)按照設(shè)置的調(diào)度算法進(jìn)行任務(wù)分配;

3.響應(yīng)該調(diào)度算法的真實(shí)服務(wù)器將開(kāi)始執(zhí)行自己的任務(wù)并且返回相關(guān)數(shù)據(jù),而所有的真實(shí)服務(wù)器的網(wǎng)關(guān)都指向負(fù)載調(diào)度器,依據(jù)NAT原理進(jìn)行ip地址映射,將數(shù)據(jù)從外網(wǎng)口發(fā)送給客戶端。

整個(gè)過(guò)程中客戶端對(duì)真實(shí)服務(wù)器的內(nèi)部結(jié)構(gòu)是不清楚的,事實(shí)上也無(wú)需了解。

該模式的最為典型的特點(diǎn)就是:

數(shù)據(jù)的請(qǐng)求和數(shù)據(jù)的返回都需要經(jīng)過(guò)負(fù)載調(diào)度服務(wù)器(load balancer/Director)

那么這在高負(fù)載的應(yīng)用場(chǎng)景中,該模式中的負(fù)載調(diào)度服務(wù)器就成為服務(wù)性能的瓶頸。出現(xiàn)這樣的情況則必然有對(duì)應(yīng)解決的方法。下面我們將介紹其他兩種模式——TUN模式和DR模式。

3.2TUN模式

該模式為IP Tunnel模式,簡(jiǎn)稱TUN模式,采用開(kāi)放式的網(wǎng)絡(luò)結(jié)構(gòu)。負(fù)載調(diào)度器僅作為客戶機(jī)的訪問(wèn)入口,各節(jié)點(diǎn)通過(guò)各自的Internet連接直接回應(yīng)客戶機(jī),而不再經(jīng)過(guò)負(fù)載調(diào)度器。

服務(wù)器節(jié)點(diǎn)分散在互聯(lián)網(wǎng)中的不同位置,具有獨(dú)立的公網(wǎng)ip地址,通過(guò)專用IP隧道與負(fù)載調(diào)度器相互通信。

如下圖所示:

LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹

IP隧道原理的核心思想就是:基于將一個(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)度器根據(jù)服務(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)文直接返回給客戶。

該模式的典型特點(diǎn):

除了負(fù)載調(diào)度服務(wù)器是公網(wǎng)IP地址,后端服務(wù)器和其網(wǎng)關(guān)也都是公網(wǎng)IP地址

而這樣造成的結(jié)果就是,不論從安全性方面考慮,還是從購(gòu)買地址和管理的成本方面考慮,這種模式都是非常不可取的。所以,DR模式就應(yīng)運(yùn)而生了。

3.3DR模式

DR模式,直接路由模式。采用半開(kāi)放式的網(wǎng)絡(luò)結(jié)構(gòu),與TUN不同點(diǎn)在于各節(jié)點(diǎn)服務(wù)器不是分散在各地,而是與調(diào)度器位于同一個(gè)物理網(wǎng)絡(luò)。這同樣也減輕了服務(wù)器的負(fù)擔(dān)。

如下圖所示:

LVS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹

該模式的優(yōu)點(diǎn)在于:不僅解決了TUN模式存在的問(wèn)題,而且由于負(fù)載調(diào)度器與各個(gè)節(jié)點(diǎn)服務(wù)器通過(guò)本地網(wǎng)絡(luò)連接,因此無(wú)需建立專用的IP隧道。

那么,我們可能產(chǎn)生一個(gè)問(wèn)題:既然負(fù)載調(diào)度器和節(jié)點(diǎn)服務(wù)器在同一個(gè)物理網(wǎng)絡(luò)中,我們可以認(rèn)為是一個(gè)局域網(wǎng),那么這不是會(huì)導(dǎo)致廣播風(fēng)暴嗎?

解答:這個(gè)問(wèn)題非常好,其實(shí)在我們進(jìn)行真正的配置過(guò)程中,對(duì)于DR模式,是需要關(guān)閉ARP功能的。如何關(guān)閉我們會(huì)在之后的文章中通過(guò)實(shí)際案例配置具體介紹和解釋。

四、LVS負(fù)載均衡群集總結(jié)

本文主要對(duì)LVS負(fù)載均衡群集的三種工作模式進(jìn)行原理上的講解,包括了一些可能對(duì)于初學(xué)者而言無(wú)法理解的名詞,如:群集;負(fù)載均衡等。我們只有理解了前輩們研發(fā)出來(lái)的方法從而實(shí)現(xiàn)相關(guān)功能的原理,我們?cè)趯?shí)際操作的時(shí)候才能融會(huì)貫通,加深理解。

之后會(huì)對(duì)上述的NAT模式和DR模式進(jìn)行實(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)容。

AI