下文給大家?guī)鞮VS負(fù)載均衡群集的三種工作模式原理詳細(xì)介紹,希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)建站在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來做一個解答。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括迎江網(wǎng)站建設(shè)、迎江網(wǎng)站制作、迎江網(wǎng)頁制作以及迎江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,迎江網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到迎江省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!在互聯(lián)網(wǎng)應(yīng)用中,隨著站點(diǎn)對硬件性能、響應(yīng)速度、服務(wù)穩(wěn)定性、數(shù)據(jù)可靠性等要求越來越高,單臺服務(wù)器力不從心。所以我們需要通過一些方法來解決這樣的瓶頸。
最簡單的方法就是使用價格昂貴的大、小型的主機(jī);但這樣在大多數(shù)企業(yè)中顯然是不可取或者說不現(xiàn)實(shí)的。那么我們就需要通過多個普通云服務(wù)器構(gòu)建服務(wù)器群集。
LVS——Linux Virtual Server,即Linux虛擬服務(wù)器(虛擬主機(jī)、共享主機(jī)),虛擬主機(jī)在這里就不再贅述了,相信大家都明白。
而LVS是一個虛擬的服務(wù)器集群系統(tǒng),其實(shí)現(xiàn)的是一個高性能、高可用的服務(wù)器。目前LVS已經(jīng)被集成到Linux內(nèi)核模塊中。
①從物理層面上講,LVS的主要組成:
如下圖所示:
補(bǔ)充:一般為了實(shí)現(xiàn)高可用會使用兩臺以上的調(diào)度服務(wù)器,作為備份,提高安全性。(后面的實(shí)驗(yàn)部署DR模式+keepalive會使用兩臺負(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ī)則,定義誰是集群服務(wù),而誰是后端真實(shí)的服務(wù)器(Real Server),然后由內(nèi)核代碼實(shí)現(xiàn)真正的調(diào)度算法及功能。
群集,或者說集群,英文是cluster,由多臺主機(jī)構(gòu)成,但是對外只表現(xiàn)為一個整體(同一服務(wù)),客戶端是無法察覺到究竟有多少臺服務(wù)器,并且對自己訪問的是哪一臺真實(shí)服務(wù)器一無所知。
根據(jù)針對目標(biāo)差異,可將群集分為負(fù)載均衡群集、高可用群集(HA)、高性能運(yùn)算群集三類。下文會逐一介紹。
負(fù)載均衡——load balance,顧名思義,就服務(wù)器方面而言,可以理解為多個服務(wù)器上所承載的“壓力”相對平衡,這里的“壓力”指的是服務(wù)器上所需要響應(yīng)的各種資源請求或者服務(wù),并且是相對平衡的,畢竟服務(wù)器的性能等諸多方面都未必一致。
簡單舉個例子來說明一下負(fù)載均衡的含義,如果說你需要打一桶水,你可以選擇用一只手拎著,但是可能會比較累,如果你用雙手拎著兩個桶來裝與之等量且平均分配的水,就比較輕松了。
其實(shí)負(fù)載均衡本質(zhì)上就是這樣的原理,將任務(wù)相對平均分配給多個服務(wù)器處理,這樣既可以減輕一臺服務(wù)器的壓力,也能提高響應(yīng)與處理的速度。
負(fù)載均衡+群集,可以提高應(yīng)用系統(tǒng)的響應(yīng)能力、處理更多訪問請求、減少延遲,從而獲得高并發(fā)、高負(fù)載的整體性能。
當(dāng)然,負(fù)載均衡的處理并不是簡單的平均分配,而是依賴于實(shí)際情況下的調(diào)度分流算法。而算法就涉及開發(fā)人員的思想和生產(chǎn)環(huán)境的實(shí)際情況了。
提高應(yīng)用系統(tǒng)的可靠性、減少主斷時間,確保服務(wù)的連續(xù)性,達(dá)到高可用的容錯效果。
HA(high availability)的工作方式包括雙工和主從兩種模式。這就涉及到“去中心化”和“中心化”思想,而上一篇文章所介紹的MHA就是典型的master高可用群集的架構(gòu)模式,只不過我們使用的是MySQL數(shù)據(jù)庫,從而搭成該高可用的架構(gòu)。
高性能運(yùn)算群集——High Performance Computer Cluster,提高應(yīng)用系統(tǒng)的CPU運(yùn)算速度、擴(kuò)展硬件資源和分析能力,獲得相當(dāng)于大型、超級計(jì)算機(jī)的高性能運(yùn)算能力。
高性能運(yùn)算群集的高性能依賴于“分布式運(yùn)算”、“并行計(jì)算”,通過專用硬件和軟件將多個服務(wù)器的CPU、內(nèi)存等資源整合在一起,實(shí)現(xiàn)只有大型計(jì)算機(jī)具備的計(jì)算能力。
負(fù)載均衡群集是目前企業(yè)用的最多的群集類型,群集的負(fù)載調(diào)度技術(shù)有三種工作模式:地址轉(zhuǎn)換——NAT、IP隧道——ip Tunnel、直接路由——Directing Route。
下面我們來逐一介紹一下這三種模式。
地址轉(zhuǎn)換——Network Address Translation。我們結(jié)合下圖分析該模式:
根據(jù)上圖結(jié)構(gòu)我們暫時不考慮共享存儲,(下篇文章會將該模式的架構(gòu)流程以及配置過程詳細(xì)給出,使用NFS作為共享存儲)
我們首先來看實(shí)線部分,也就是client端請求服務(wù)的部分。
1.客戶端進(jìn)行請求服務(wù)器,對于客戶而言,直接訪問的目標(biāo)IP地址不可能是下面的三臺或多臺真實(shí)服務(wù)器(Real Server),而是LVS負(fù)載調(diào)度服務(wù)器(當(dāng)然,該服務(wù)器也可以是一個真實(shí)服務(wù)器(相當(dāng)于身兼數(shù)職),看自己的想法和需求)。一般而言我們在負(fù)載調(diào)度器上是將其充當(dāng)為一個網(wǎng)關(guān)的功能,所以它有(至少有)兩個網(wǎng)卡,并且網(wǎng)段不同。在這臺服務(wù)器上我們需要進(jìn)行NAT地址轉(zhuǎn)換,一般是通過ip地址映射的方法,來實(shí)現(xiàn)數(shù)據(jù)請求和數(shù)據(jù)響應(yīng)的功能。當(dāng)然這需要我們理解NAT的原理和設(shè)置方法。
2.請求到達(dá)負(fù)載調(diào)度服務(wù)器,進(jìn)行相關(guān)處理將數(shù)據(jù)按照設(shè)置的調(diào)度算法進(jìn)行任務(wù)分配;
3.響應(yīng)該調(diào)度算法的真實(shí)服務(wù)器將開始執(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ā)送給客戶端。
整個過程中客戶端對真實(shí)服務(wù)器的內(nèi)部結(jié)構(gòu)是不清楚的,事實(shí)上也無需了解。
該模式的最為典型的特點(diǎn)就是:
數(shù)據(jù)的請求和數(shù)據(jù)的返回都需要經(jīng)過負(fù)載調(diào)度服務(wù)器(load balancer/Director)
那么這在高負(fù)載的應(yīng)用場景中,該模式中的負(fù)載調(diào)度服務(wù)器就成為服務(wù)性能的瓶頸。出現(xiàn)這樣的情況則必然有對應(yīng)解決的方法。下面我們將介紹其他兩種模式——TUN模式和DR模式。
該模式為IP Tunnel模式,簡稱TUN模式,采用開放式的網(wǎng)絡(luò)結(jié)構(gòu)。負(fù)載調(diào)度器僅作為客戶機(jī)的訪問入口,各節(jié)點(diǎn)通過各自的Internet連接直接回應(yīng)客戶機(jī),而不再經(jīng)過負(fù)載調(diào)度器。
服務(wù)器節(jié)點(diǎn)分散在互聯(lián)網(wǎng)中的不同位置,具有獨(dú)立的公網(wǎng)ip地址,通過專用IP隧道與負(fù)載調(diào)度器相互通信。
如下圖所示:
IP隧道原理的核心思想就是:基于將一個IP報(bào)文封裝在另一個IP報(bào)文的技術(shù),從而使得目標(biāo)為一個IP地址的數(shù)據(jù)報(bào)文能被封裝和轉(zhuǎn)發(fā)到另一個IP地址。
因而,IP隧道技術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動主機(jī)和虛擬私有網(wǎng)絡(luò)(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。
調(diào)度器根據(jù)服務(wù)器的負(fù)載情況,動態(tài)地選擇一臺服務(wù)器,將請求報(bào)文封裝在另一個IP報(bào)文中,再將封裝后的IP報(bào)文轉(zhuǎn)發(fā)給選出的服務(wù)器;服務(wù)器收到報(bào)文后,先將報(bào)文解封獲得原來目標(biāo)地址為 VIP 的報(bào)文,服務(wù)器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設(shè)備上,所以就處理這個請求,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。
該模式的典型特點(diǎn):
除了負(fù)載調(diào)度服務(wù)器是公網(wǎng)IP地址,后端服務(wù)器和其網(wǎng)關(guān)也都是公網(wǎng)IP地址
而這樣造成的結(jié)果就是,不論從安全性方面考慮,還是從購買地址和管理的成本方面考慮,這種模式都是非常不可取的。所以,DR模式就應(yīng)運(yùn)而生了。
DR模式,直接路由模式。采用半開放式的網(wǎng)絡(luò)結(jié)構(gòu),與TUN不同點(diǎn)在于各節(jié)點(diǎn)服務(wù)器不是分散在各地,而是與調(diào)度器位于同一個物理網(wǎng)絡(luò)。這同樣也減輕了服務(wù)器的負(fù)擔(dān)。
如下圖所示:
該模式的優(yōu)點(diǎn)在于:不僅解決了TUN模式存在的問題,而且由于負(fù)載調(diào)度器與各個節(jié)點(diǎn)服務(wù)器通過本地網(wǎng)絡(luò)連接,因此無需建立專用的IP隧道。
那么,我們可能產(chǎn)生一個問題:既然負(fù)載調(diào)度器和節(jié)點(diǎn)服務(wù)器在同一個物理網(wǎng)絡(luò)中,我們可以認(rèn)為是一個局域網(wǎng),那么這不是會導(dǎo)致廣播風(fēng)暴嗎?
解答:這個問題非常好,其實(shí)在我們進(jìn)行真正的配置過程中,對于DR模式,是需要關(guān)閉ARP功能的。如何關(guān)閉我們會在之后的文章中通過實(shí)際案例配置具體介紹和解釋。
本文主要對LVS負(fù)載均衡群集的三種工作模式進(jìn)行原理上的講解,包括了一些可能對于初學(xué)者而言無法理解的名詞,如:群集;負(fù)載均衡等。我們只有理解了前輩們研發(fā)出來的方法從而實(shí)現(xiàn)相關(guān)功能的原理,我們在實(shí)際操作的時候才能融會貫通,加深理解。
之后會對上述的NAT模式和DR模式進(jìn)行實(shí)際的案例模擬配置。謝謝閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。