站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        一. 集群的概念

        服務(wù)器集群簡(jiǎn)稱集群是一種服務(wù)器系統(tǒng),它通過(guò)一組松散集成的服務(wù)器軟件和/或硬件連接起來(lái)高度緊密地協(xié)作完成計(jì)算工作。在某種意義上,他們可以被看作是一臺(tái)服務(wù)器。
        集群系統(tǒng)中的單個(gè)服務(wù)器通常稱為節(jié)點(diǎn),通常通過(guò)局域網(wǎng)連接,但也有其它的可能連接方式。集群服務(wù)器通常用來(lái)改進(jìn)單個(gè)服務(wù)器的計(jì)算速度和/或可靠性。一般情況下集群
        服務(wù)器比單個(gè)服務(wù)器,比如工作站或超級(jí)服務(wù)器性能價(jià)格比要高得多。集群就是一組獨(dú)立的服務(wù)器,通過(guò)網(wǎng)絡(luò)連接組合成一個(gè)組合來(lái)共同完一個(gè)任務(wù)。

        說(shuō)的直白點(diǎn),集群就是一組相互獨(dú)立的服務(wù)器,通過(guò)高速的網(wǎng)絡(luò)組成一個(gè)服務(wù)器系統(tǒng),每個(gè)集群節(jié)點(diǎn)都是運(yùn)行其自己進(jìn)程的一個(gè)獨(dú)立服務(wù)器。對(duì)網(wǎng)絡(luò)用戶來(lái)講,網(wǎng)站后
        端就是一個(gè)單一的系統(tǒng),協(xié)同起來(lái)向用戶提供系統(tǒng)資源,系統(tǒng)服務(wù)。

        二. 為什么要使用集群

        1) 集群的特點(diǎn)
        –  高性能performance
        一些需要很強(qiáng)的運(yùn)算處理能力比如天氣預(yù)報(bào),核試驗(yàn)等。這就不是幾臺(tái)服務(wù)器能夠搞定的。這需要上千臺(tái)一起來(lái)完成這個(gè)工作的。

        –  價(jià)格有效性
        通常一套系統(tǒng)集群架構(gòu),只需要幾臺(tái)或數(shù)十臺(tái)服務(wù)器主機(jī)即可,與動(dòng)則上百萬(wàn)的專用超級(jí)服務(wù)器具有更高的性價(jià)比。

        –  可伸縮性
        當(dāng)服務(wù)器負(fù)載壓力增長(zhǎng)的時(shí)候,系統(tǒng)能夠擴(kuò)展來(lái)滿足需求,且不降低服務(wù)質(zhì)量。

        –  高可用性
        盡管部分硬件和軟件發(fā)生故障,整個(gè)系統(tǒng)的服務(wù)必須是7*24小時(shí)運(yùn)行的。

        2) 集群的優(yōu)勢(shì)
        –  透明性
        如果一部分服務(wù)器宕機(jī)了業(yè)務(wù)不受影響,一般耦合度沒有那么高,依賴關(guān)系沒有那么高。比如NFS服務(wù)器宕機(jī)了其他就掛載不了了,這樣依賴性太強(qiáng)。

        –  高性能
        訪問(wèn)量增加,能夠輕松擴(kuò)展。

        –  可管理性
        整個(gè)系統(tǒng)可能在物理上很大,但很容易管理。

        –  可編程性
        在集群系統(tǒng)上,容易開發(fā)應(yīng)用程序,門戶網(wǎng)站會(huì)要求這個(gè)。

        3) 集群分類及不同分類的特點(diǎn)
        計(jì)算機(jī)集群架構(gòu)按照功能和結(jié)構(gòu)一般分成以下幾類:
        –  負(fù)載均衡集群(Loadbalancingclusters)簡(jiǎn)稱LBC
        –  高可用性集群(High-availabilityclusters)簡(jiǎn)稱HAC
        –  高性能計(jì)算集群(High-perfomanceclusters)簡(jiǎn)稱HPC
        –  網(wǎng)格計(jì)算(Gridcomputing)

        就集群分類而言, 網(wǎng)絡(luò)上面一般認(rèn)為是有三個(gè),負(fù)載均衡和高可用集群式我們互聯(lián)網(wǎng)行業(yè)常用的集群架構(gòu)。
        1) 負(fù)載均衡集群
        負(fù)載均衡集群為企業(yè)提供了更為實(shí)用,性價(jià)比更高的系統(tǒng)架構(gòu)解決方案。負(fù)載均衡集群把很多客戶集中訪問(wèn)的請(qǐng)求負(fù)載壓力可能盡可能平均的分?jǐn)偟接?jì)算機(jī)集群中處理。
        客戶請(qǐng)求負(fù)載通常包括應(yīng)用程度處理負(fù)載和網(wǎng)絡(luò)流量負(fù)載。這樣的系統(tǒng)非常適合向使用同一組應(yīng)用程序?yàn)榇罅坑脩籼峁┓?wù)。每個(gè)節(jié)點(diǎn)都可以承擔(dān)一定的訪問(wèn)請(qǐng)求負(fù)載壓力,
        并且可以實(shí)現(xiàn)訪問(wèn)請(qǐng)求在各節(jié)點(diǎn)之間動(dòng)態(tài)分配,以實(shí)現(xiàn)負(fù)載均衡。

        負(fù)載均衡運(yùn)行時(shí),一般通過(guò)一個(gè)或多個(gè)前端負(fù)載均衡器將客戶訪問(wèn)請(qǐng)求分發(fā)到后端一組服務(wù)器上,從而達(dá)到整個(gè)系統(tǒng)的高性能和高可用性。這樣集群有時(shí)也被稱為服務(wù)器群。
        一般高可用性集群和負(fù)載均衡集群會(huì)使用類似的技術(shù),或同時(shí)具有高可用性與負(fù)載均衡的特點(diǎn)。

        負(fù)載均衡集群的作用:
        a)分擔(dān)訪問(wèn)流量(負(fù)載均衡)
        b)保持業(yè)務(wù)的連續(xù)性(高可用)

        2) 高可用性集群
        一般是指當(dāng)集群中的任意一個(gè)節(jié)點(diǎn)失效的情況下,節(jié)點(diǎn)上的所有任務(wù)自動(dòng)轉(zhuǎn)移到其他正常的節(jié)點(diǎn)上,并且此過(guò)程不影響整個(gè)集群的運(yùn)行,不影響業(yè)務(wù)的提供。類似是集群中運(yùn)行著兩個(gè)或兩個(gè)以上的一樣的節(jié)點(diǎn),當(dāng)某個(gè)主節(jié)點(diǎn)出現(xiàn)故障的時(shí)候,那么其他作為從 節(jié)點(diǎn)的節(jié)點(diǎn)就會(huì)接替主節(jié)點(diǎn)上面的任務(wù)。從節(jié)點(diǎn)可以接管主節(jié)點(diǎn)的資源(IP地址,架構(gòu)身份等),此時(shí)用戶不會(huì)發(fā)現(xiàn)提供服務(wù)的對(duì)象從主節(jié)點(diǎn)轉(zhuǎn)移到從節(jié)點(diǎn)。
        高可用性集群的作用:當(dāng)一臺(tái)機(jī)器宕機(jī)另一臺(tái)進(jìn)行接管。比較常用的高可用集群開源軟件有:keepalive,heardbeat。

        3) 高性能計(jì)算集群
        高性能計(jì)算集群采用將計(jì)算任務(wù)分配到集群的不同計(jì)算節(jié)點(diǎn)兒提高計(jì)算能力,因而主要應(yīng)用在科學(xué)計(jì)算領(lǐng)域。比較流行的HPC采用Linux操作系統(tǒng)和其它一些免費(fèi)軟件來(lái)完成并行運(yùn)算。這一集群配置通常被稱為Beowulf集群。這類集群通常運(yùn)行特定的程序以發(fā)揮HPCcluster的并行能力。這類程序一般應(yīng)用特定的運(yùn)行庫(kù), 比如專為科學(xué)計(jì)算設(shè)計(jì)的MPI庫(kù)。HPC集群特別適合于在計(jì)算中各計(jì)算節(jié)點(diǎn)之間發(fā)生大量數(shù)據(jù)通訊的計(jì)算作業(yè),比如一個(gè)節(jié)點(diǎn)的中間結(jié)果或影響到其它節(jié)點(diǎn)計(jì)算結(jié)果的情況。

        三. 負(fù)載均衡集群介紹

        負(fù)載均衡集群是 Load Balance 集群, 是一種將網(wǎng)絡(luò)上的訪問(wèn)流量分布于各個(gè)節(jié)點(diǎn),以降低服務(wù)器壓力,更好的向客戶端提供服務(wù)的一種方式。
        負(fù)載均衡集群的作用提供一種廉價(jià)、有效、透明的方法,來(lái)擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的負(fù)載帶寬、增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。簡(jiǎn)單來(lái)說(shuō),也就是:
        1) 把單臺(tái)計(jì)算機(jī)無(wú)法承受的大規(guī)模的并發(fā)訪問(wèn)或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上分別處理,減少用戶等待響應(yīng)的時(shí)間,提升用戶體驗(yàn)。
        2) 單個(gè)重負(fù)載的運(yùn)算分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上做并行處理,每個(gè)節(jié)點(diǎn)設(shè)備處理結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)處理能力得到大幅度提高。
        3) 7*24小時(shí)的服務(wù)保證,任意一個(gè)或多個(gè)設(shè)備節(jié)點(diǎn)設(shè)備宕機(jī),不能影響到業(yè)務(wù)。在負(fù)載均衡集群中,所有計(jì)算機(jī)節(jié)點(diǎn)都應(yīng)該提供相同的服務(wù),集群負(fù)載均衡獲取所有對(duì)該服務(wù)的如站請(qǐng)求。

        常用的負(fù)載均衡分為:
        1) 開源軟件負(fù)載均衡:  Nginx, LVS, Haproxy  (Nginx和Haproxy通常做七層負(fù)載均衡, LVS做四層負(fù)載均衡. 但是Nginx也可以通過(guò)stream模塊做四層負(fù)載均衡, Haproxy也可以做四層負(fù)載均衡 ) ;
        2) 商業(yè)的硬件負(fù)載均衡: 設(shè)備F5、Netscale ;

        簡(jiǎn)單理解一下軟件負(fù)載均衡:
        1) 所謂分層的負(fù)載均衡,都是以網(wǎng)絡(luò)的模型來(lái)說(shuō)的。四層就是基于IP和端口的負(fù)載均衡,七層就是基于URL等應(yīng)用信息的負(fù)載均衡。所以簡(jiǎn)單的說(shuō)四層負(fù)載均衡就是通過(guò)IP和端口接收請(qǐng)求再分發(fā)至真實(shí)的服務(wù)器,七層是通過(guò)URL或主機(jī)名接收請(qǐng)求,然后分發(fā)至真實(shí)的服務(wù)器。
        2) .而七層的實(shí)現(xiàn)也是在四層的基礎(chǔ)上是實(shí)現(xiàn)的,沒有四層就不可能有七層。在第七層上可以做許多事情,比如可以根據(jù)七層的瀏覽器類別區(qū)分是手機(jī)還是PC,將WEB服務(wù)器分為2組,手機(jī)登陸專門的移動(dòng)端網(wǎng)站。
        3) 對(duì)客戶端來(lái)說(shuō),客戶端好像是訪問(wèn)的同一臺(tái)主機(jī)。其實(shí)為了有更好的用戶體驗(yàn),從智能DNS入手,根據(jù)客戶端IP來(lái)源將域名解析到距離客戶端最近的一臺(tái)服務(wù)器或者訪問(wèn)最快速的一臺(tái)服務(wù)器,但這些內(nèi)容客戶端都是感覺不到的,客戶端感覺到的只能是訪問(wèn)網(wǎng)站很快。

        四. LVS負(fù)載均衡集群說(shuō)明

        1) LVS是什么?
        LVS是linux virtual server的簡(jiǎn)寫linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng),可以在unix/linux平臺(tái)下實(shí)現(xiàn)負(fù)載均衡集群功能。該項(xiàng)目在1998年5月由章文嵩博士組織成立。LVS是一種集群(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ù)器端的程序。

        LVS集群采用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ù)器端的程序。

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

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        負(fù)載均衡的原理很簡(jiǎn)單,就是當(dāng)客戶端發(fā)起請(qǐng)求時(shí),請(qǐng)求直接發(fā)給Director Server(調(diào)度器),這時(shí)會(huì)根據(jù)設(shè)定的調(diào)度算法,將請(qǐng)求按照算法的規(guī)定智能的分發(fā)到真正的后臺(tái)服務(wù)器。以達(dá)到將壓力均攤。但是我們知道,http的連接時(shí)無(wú)狀態(tài)的,假設(shè)這樣一個(gè)場(chǎng)景,我登錄某寶買東西,當(dāng)我看上某款商品時(shí),我將它加入購(gòu)物車,但是我刷新了一下頁(yè)面,這時(shí)由于負(fù)載均衡的原因,調(diào)度器又選了新的一臺(tái)服務(wù)器為我提供服務(wù),我剛才的購(gòu)物車內(nèi)容全都不見了,這樣就會(huì)有十分差的用戶體驗(yàn)。所以就還需要一個(gè)存儲(chǔ)共享,這樣就保證了用戶請(qǐng)求的數(shù)據(jù)是一樣的。所以LVS負(fù)載均衡分為三層架構(gòu)(也就是LVS負(fù)載均衡主要組成部分)

        第一層負(fù)載調(diào)度器(load balancer/ Director),它是整個(gè)集群的總代理,它在有兩個(gè)網(wǎng)卡,一個(gè)網(wǎng)卡面對(duì)訪問(wèn)網(wǎng)站的客戶端,一個(gè)網(wǎng)??面對(duì)整個(gè)集群的內(nèi)部。負(fù)責(zé)將客戶端的請(qǐng)求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶也認(rèn)為服務(wù)是來(lái)自這臺(tái)主的。舉個(gè)生動(dòng)的例子,集群是個(gè)公司,負(fù)載調(diào)度器就是在外接攬生意,將接攬到的生意分發(fā)給后臺(tái)的真正干活的真正的主機(jī)們。當(dāng)然需要將活按照一定的算法分發(fā)下去,讓大家都公平的干活。
        第二層服務(wù)器池(server pool/ Realserver),是一組真正執(zhí)行客戶請(qǐng)求的服務(wù)器,可以當(dāng)做WEB服務(wù)器。就是上面例子中的小員工。  
        第三層共享存儲(chǔ)(shared storage),它為服務(wù)器池提供一個(gè)共享的存儲(chǔ)區(qū),這樣很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。一個(gè)公司得有一個(gè)后臺(tái)賬目吧,這才能協(xié)調(diào)。不然客戶把錢付給了A,而換B接待客戶,因?yàn)闆]有相同的賬目。B說(shuō)客戶沒付錢,那這樣就不是客戶體驗(yàn)度的問(wèn)題了。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        2) LVS負(fù)載均衡集群特點(diǎn)

        2.1) IP負(fù)載均衡與負(fù)載調(diào)度算法
        IP負(fù)載均衡技術(shù)
        負(fù)載均衡技術(shù)有很多實(shí)現(xiàn)方案,有基于DNS域名輪流解析的方法、有基于客戶端調(diào)度訪問(wèn)的方法、有基于應(yīng)用層系統(tǒng)負(fù)載的調(diào)度方法,還有基于IP地址的調(diào)度方法,在這些負(fù)載調(diào)度算法中,執(zhí)行效率最高的是IP負(fù)載均衡技術(shù)。

        LVS的IP負(fù)載均衡技術(shù)是通過(guò)IPVS模塊來(lái)實(shí)現(xiàn)的,IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Director Server上,同時(shí)在Director Server上虛擬出一個(gè)IP地址,用戶必須通過(guò)這個(gè)虛擬的IP地址訪問(wèn)服務(wù)。這個(gè)虛擬IP一般稱為L(zhǎng)VS的VIP,即Virtual IP。訪問(wèn)的請(qǐng)求首先經(jīng)過(guò)VIP到達(dá)負(fù)載調(diào)度器,然后由負(fù)載調(diào)度器從Real Server列表中選取一個(gè)服務(wù)節(jié)點(diǎn)響應(yīng)用戶的請(qǐng)求。當(dāng)用戶的請(qǐng)求到達(dá)負(fù)載調(diào)度器后,調(diào)度器如何將請(qǐng)求發(fā)送到提供服務(wù)的Real Server節(jié)點(diǎn),而Real Server節(jié)點(diǎn)如何返回?cái)?shù)據(jù)給用戶,是IPVS實(shí)現(xiàn)的重點(diǎn)技術(shù),IPVS實(shí)現(xiàn)負(fù)載均衡機(jī)制有三種,分別是NAT、TUN和DR(下面會(huì)詳細(xì)介紹);

        負(fù)載調(diào)度算法
        負(fù)載調(diào)度器是根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)Real Server響應(yīng)用戶請(qǐng)求,那么動(dòng)態(tài)選擇是如何實(shí)現(xiàn)呢,其實(shí)也就是我們這里要說(shuō)的負(fù)載調(diào)度算法,根據(jù)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS實(shí)現(xiàn)了如下八種負(fù)載調(diào)度算法rr、wrr、Wlc、Dh、SH、Lc、Lblc(下面會(huì)詳細(xì)介紹);

        2.2) 高可用性
        LVS是一個(gè)基于內(nèi)核級(jí)別的應(yīng)用軟件,因此具有很高的處理性能,后端服務(wù)器可運(yùn)行任何支持TCP/IP的操作系統(tǒng),包括Linux,各種Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows NT/2000等。負(fù)載調(diào)度器能夠支持絕大多數(shù)的TCP和UDP協(xié)議.

        2.3) 性能
        LVS服務(wù)器集群系統(tǒng)具有良好的伸縮性,可支持幾百萬(wàn)個(gè)并發(fā)連接。用LVS構(gòu)架的負(fù)載均衡集群系統(tǒng)具有優(yōu)秀的處理能力,每個(gè)服務(wù)節(jié)點(diǎn)的故障不會(huì)影響整個(gè)系統(tǒng)的正常使用,同時(shí)又實(shí)現(xiàn)負(fù)載的合理均衡,使應(yīng)用具有超高負(fù)荷的服務(wù)能力,可支持上百萬(wàn)個(gè)并發(fā)連接請(qǐng)求。如配置百兆網(wǎng)卡,采用VS/TUN或VS/DR調(diào)度技術(shù),整個(gè)集群系統(tǒng)的吞吐量可高達(dá)1Gbits/s;如配置千兆網(wǎng)卡,則系統(tǒng)的最大吞吐量可接近10Gbits/s。

        2.4)高可靠性
        LVS負(fù)載均衡集群軟件已經(jīng)在企業(yè)、學(xué)校等行業(yè)得到了很好的普及應(yīng)用,國(guó)內(nèi)外很多大型的、關(guān)鍵性的web站點(diǎn)也都采用了LVS集群軟件,所以它的可靠性在實(shí)踐中得到了很好的證實(shí)。有很多以LVS做的負(fù)載均衡系統(tǒng),運(yùn)行很長(zhǎng)時(shí)間,從未做過(guò)重新啟動(dòng)。這些都說(shuō)明了LVS的高穩(wěn)定性和高可靠性。

        2.5) 適用環(huán)境
        LVS對(duì)前端Director Server目前僅支持Linux和FreeBSD系統(tǒng),但是支持大多數(shù)的TCP和UDP協(xié)議,支持TCP協(xié)議的應(yīng)用有:HTTP,HTTPS ,F(xiàn)TP,SMTP,,POP3,IMAP4,PROXY,LDAP,SSMTP等等。支持UDP協(xié)議的應(yīng)用有:DNS,NTP,ICP,視頻、音頻流播放協(xié)議等。LVS對(duì)Real Server的操作系統(tǒng)沒有任何限制,Real Server可運(yùn)行在任何支持TCP/IP的操作系統(tǒng)上,包括Linux,各種Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows等。

        2.6) 開源軟件(軟件許可證)
        LVS集群軟件是按GPL(GNU Public License)許可證發(fā)行的自由軟件,因此,使用者可以得到軟件的源代碼,并且可以根據(jù)自己的需要進(jìn)行各種修改,但是修改必須是以GPL方式發(fā)行。

        3) LVS體系結(jié)構(gòu)

        LVS集群負(fù)載均衡器接受服務(wù)的所有入展客戶端的請(qǐng)求,然后根據(jù)調(diào)度算法決定哪個(gè)集群節(jié)點(diǎn)來(lái)處理回復(fù)客戶端的請(qǐng)求。LVS虛擬服務(wù)器的體系如下圖所示,一組服務(wù)器通過(guò)高速的局域網(wǎng)或者地理分布的廣域網(wǎng)相互連接,在這組服務(wù)器之前有一個(gè)負(fù)載調(diào)度器(load balance)。負(fù)載調(diào)度器負(fù)責(zé)將客戶的請(qǐng)求調(diào)度到真實(shí)服務(wù)器上。這樣這組服務(wù)器集群的結(jié)構(gòu)對(duì)用戶來(lái)說(shuō)就是透明的。客戶訪問(wèn)集群系統(tǒng)就如只是訪問(wèn)一臺(tái)高性能,高可用的服務(wù)器一樣。客戶程序不受服務(wù)器集群的影響,不做任何修改。

        就比如說(shuō):我們?nèi)ワ埖瓿燥堻c(diǎn)菜,客戶只要跟服務(wù)員點(diǎn)菜就行。并不需要知道具體他們是怎么分配工作的,所以他們內(nèi)部對(duì)于我們來(lái)說(shuō)是透明的。此時(shí)這個(gè)服務(wù)員就會(huì)按照一定的規(guī)則把他手上的活,分配到其他人員上去。這個(gè)服務(wù)員就是負(fù)載均衡器(LB)而后面這些真正做事的就是服務(wù)器集群。

        LVS結(jié)構(gòu)圖如下:

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        LVS基本工作過(guò)程

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        客戶請(qǐng)發(fā)送向負(fù)載均衡服務(wù)器發(fā)送請(qǐng)求。負(fù)載均衡器接受客戶的請(qǐng)求,然后先是根據(jù)LVS的調(diào)度算法(8種)來(lái)決定要將這個(gè)請(qǐng)求發(fā)送給哪個(gè)節(jié)點(diǎn)服務(wù)器。然后依據(jù)自己的工作模式(3種)來(lái)看應(yīng)該如何把這些客戶的請(qǐng)求如何發(fā)送給節(jié)點(diǎn)服務(wù)器,節(jié)點(diǎn)服務(wù)器又應(yīng)該如何來(lái)把響應(yīng)數(shù)據(jù)包發(fā)回給客戶端。

        LVS組成

        lvs分為兩個(gè)部分,分別是內(nèi)核模塊和lvs的管理工具。目前來(lái)說(shuō),CentOS6及其以上的內(nèi)核版本已經(jīng)包括了ipvs的相關(guān)模塊了。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        從上面可知, 內(nèi)核支持的ipvs模塊, 上圖中的rr,wrr,lc,wlc,lblc等等都是lvs中調(diào)度器的調(diào)度算法,根據(jù)不同的調(diào)度算法可以更好的分配服務(wù),實(shí)現(xiàn)負(fù)載均衡。而ipvs(ip virtual server):一段代碼工作在內(nèi)核空間,實(shí)現(xiàn)調(diào)度。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        上圖是ipvsadm (即LVS客戶端管理工具), 主要負(fù)責(zé)為ipvs內(nèi)核框架編寫規(guī)則,定義誰(shuí)是集群服務(wù),而誰(shuí)是后端真實(shí)的服務(wù)器(Real Server)。 

        4) LVS的實(shí)現(xiàn)原理

        lvs的原理其實(shí)就是利用了Iptables的功能。了解防火墻的都知道四表五鏈。防火墻不僅僅有放火的功能還有轉(zhuǎn)發(fā),地址偽裝,限流等等功能。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        1) 首先,客戶端向調(diào)度器(Director Server)發(fā)起一個(gè)請(qǐng)求,調(diào)度器將這個(gè)請(qǐng)求發(fā)送至內(nèi)核
        2) PREROUTING鏈?zhǔn)紫葧?huì)接收到用戶請(qǐng)求,判斷目標(biāo)IP確定是本機(jī)IP,將數(shù)據(jù)包發(fā)往INPUT鏈。
        3) 當(dāng)請(qǐng)求達(dá)到INPUT鏈上,調(diào)度器判斷報(bào)文中的目標(biāo)端口來(lái)確定這個(gè)訪問(wèn)是不是要訪問(wèn)集群服務(wù)(因?yàn)檫€有可能只是ssh想單純的遠(yuǎn)程登錄主機(jī)這個(gè)主機(jī)),如果是訪問(wèn)的集群服務(wù),那么就會(huì)強(qiáng)制修改這個(gè)包的目標(biāo)IP
        4) POSTROUTING鏈接收數(shù)據(jù)包后發(fā)現(xiàn)目標(biāo)IP地址剛好是自己的后端服務(wù)器,那么此時(shí)通過(guò)選路,將數(shù)據(jù)包最終發(fā)送給后端的服務(wù)器

        5) LVS的工作原理

        LVS 的工作模式分為4中分別是 NAT,DR,TUN,F(xiàn)ULL-NAT。其中做個(gè)比較,由于工作原理的關(guān)系的,NAT的配置最為簡(jiǎn)單,但是NAT對(duì)調(diào)度器的壓力太大了,導(dǎo)致其效率最低,DR和TUN的工作原理差不多,但是DR中,所有主機(jī)必須處于同一個(gè)物理環(huán)境中,而在TUN中,所有主機(jī)可以分布在不同的位置,服務(wù)器一個(gè)在紐約,一個(gè)在深圳。最多應(yīng)用的是FULL-NAT。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        其中的專業(yè)術(shù)語(yǔ)
        DS:Director Server。指的是前端負(fù)載均衡器。
        RS:Real Server。后端真實(shí)的工作服務(wù)器。
        VIP:向外部直接面向用戶請(qǐng)求,作為用戶請(qǐng)求的目標(biāo)的IP地址。
        DIP:Director Server IP,主要用于和內(nèi)部主機(jī)通訊的IP地址。
        RIP:Real Server IP,后端服務(wù)器的IP地址。
        CIP:Client IP,訪問(wèn)客戶端的IP地址。

        下面介紹LVS常用的三種負(fù)載均衡模式
        1)NAT模式-網(wǎng)絡(luò)地址轉(zhuǎn)換          Virtualserver via Network address translation(VS/NAT)
        這個(gè)是通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換的方法來(lái)實(shí)現(xiàn)調(diào)度的。首先調(diào)度器(LB)接收到客戶的請(qǐng)求數(shù)據(jù)包時(shí)(請(qǐng)求的目的IP為VIP),根據(jù)調(diào)度算法決定將請(qǐng)求發(fā)送給哪個(gè)后端的真實(shí)服務(wù)器(RS)。然后調(diào)度就把客戶端發(fā)送的請(qǐng)求數(shù)據(jù)包的目標(biāo)IP地址及端口改成后端真實(shí)服務(wù)器的IP地址(RIP),這樣真實(shí)服務(wù)器(RS)就能夠接收到客戶的請(qǐng)求數(shù)據(jù)包了。真實(shí)服務(wù)器響應(yīng)完請(qǐng)求后,查看默認(rèn)路由(NAT模式下我們需要把RS的默認(rèn)路由設(shè)置為L(zhǎng)B服務(wù)器。)把響應(yīng)后的數(shù)據(jù)包發(fā)送給LB,LB再接收到響應(yīng)包后,把包的源地址改成虛擬地址(VIP)然后發(fā)送回給客戶端。

        VS/NAT是一種最簡(jiǎn)單的方式,所有的RealServer只需要將自己的網(wǎng)關(guān)指向Director即可。客戶端可以是任意操作系統(tǒng),但此方式下,一個(gè)Director能夠帶動(dòng)的RealServer比較有限。在VS/NAT的方式下,Director也可以兼為一臺(tái)RealServer。VS/NAT的體系結(jié)構(gòu)如圖所示。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        NAT工作模式下,調(diào)度過(guò)程IP包詳細(xì)圖:

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        NAT模式的以上原理圖簡(jiǎn)述:
        1) 客戶端請(qǐng)求數(shù)據(jù),目標(biāo)IP為VIP
        2) 請(qǐng)求數(shù)據(jù)到達(dá)LB服務(wù)器,LB根據(jù)調(diào)度算法將目的地址修改為RIP地址及對(duì)應(yīng)端口(此RIP地址是根據(jù)調(diào)度算法得出的。)并在連接HASH表中記錄下這個(gè)連接。
        3) 數(shù)據(jù)包從LB服務(wù)器到達(dá)RS服務(wù)器webserver,然后webserver進(jìn)行響應(yīng)。Webserver的網(wǎng)關(guān)必須是LB,然后將數(shù)據(jù)返回給LB服務(wù)器。
        4) 收到RS的返回后的數(shù)據(jù),根據(jù)連接HASH表修改源地址VIP&目標(biāo)地址CIP,及對(duì)應(yīng)端口80.然后數(shù)據(jù)就從LB出發(fā)到達(dá)客戶端。
        5) 客戶端收到的就只能看到VIPDIP信息。

        NAT模式優(yōu)缺點(diǎn):
        1) NAT技術(shù)將請(qǐng)求的報(bào)文和響應(yīng)的報(bào)文都需要通過(guò)LB進(jìn)行地址改寫,因此網(wǎng)站訪問(wèn)量比較大的時(shí)候LB負(fù)載均衡調(diào)度器有比較大的瓶頸,一般要求最多之能10-20臺(tái)節(jié)點(diǎn)。
        2) 只需要在LB上配置一個(gè)公網(wǎng)IP地址就可以了。
        3) 每臺(tái)內(nèi)部的節(jié)點(diǎn)服務(wù)器的網(wǎng)關(guān)地址必須是調(diào)度器LB的內(nèi)網(wǎng)地址。
        4) NAT模式支持對(duì)IP地址和端口進(jìn)行轉(zhuǎn)換。即用戶請(qǐng)求的端口和真實(shí)服務(wù)器的端口可以不一致。

        再看下面的NAT模式圖

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        客戶發(fā)出請(qǐng)求,發(fā)送請(qǐng)求給鏈接調(diào)度器的VIP,調(diào)度器將請(qǐng)求報(bào)文中的目標(biāo)Ip地址改為RIP。這樣服務(wù)器RealServer將請(qǐng)求的內(nèi)容發(fā)給調(diào)度器,調(diào)度器再將報(bào)文中的源IP地址改為VIP;
        1) 當(dāng)用戶請(qǐng)求到達(dá)Director Server,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。 此時(shí)報(bào)文的源IP為CIP,目標(biāo)IP為VIP;
        2) PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈;
        3) IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,修改數(shù)據(jù)包的目標(biāo)IP地址為后端服務(wù)器IP,然后將數(shù)據(jù)包發(fā)至POSTROUTING鏈。 此時(shí)報(bào)文的源IP為CIP,目標(biāo)IP為RIP
        4) POSTROUTING鏈通過(guò)選路,將數(shù)據(jù)包發(fā)送給Real Server;
        5) Real Server比對(duì)發(fā)現(xiàn)目標(biāo)為自己的IP,開始構(gòu)建響應(yīng)報(bào)文發(fā)回給Director Server。 此時(shí)報(bào)文的源IP為RIP,目標(biāo)IP為CIP;
        6) Director Server在響應(yīng)客戶端前,此時(shí)會(huì)將源IP地址修改為自己的VIP地址,然后響應(yīng)給客戶端。 此時(shí)報(bào)文的源IP為VIP,目標(biāo)IP為CIP;

        NAT模式特點(diǎn)和注意事項(xiàng):
        1) 很好配置,原理簡(jiǎn)單易懂;
        2) 由于調(diào)度器的工作量太大,很容易成為整個(gè)集群系統(tǒng)的瓶頸;
        3) RS應(yīng)該使用私有地址;
        4) RS的網(wǎng)關(guān)的必須指向DIP;
        5) RIP和DIP必須在同一網(wǎng)段內(nèi);
        6) 請(qǐng)求和響應(yīng)的報(bào)文都得經(jīng)過(guò)Director;在高負(fù)載場(chǎng)景中,Director很可能成為系統(tǒng)性能瓶頸;
        7) 支持端口映射;
        8) RS可以使用任意支持集群服務(wù)的OS;

        2)TUN模式-IP隧道模式          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)建立的,隧道一端有一??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ù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

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

        VS/TUN的工作原理流程圖如下所示,它和NAT模式不同的是,它在LB和RS之間的傳輸不用改寫IP地址。而是把客戶請(qǐng)求包封裝在一個(gè)IP tunnel里面,然后發(fā)送給RS節(jié)點(diǎn)服務(wù)器,節(jié)點(diǎn)服務(wù)器接收到之后解開IP tunnel后,進(jìn)行響應(yīng)處理。并且直接把包通過(guò)自己的外網(wǎng)地址發(fā)送給客戶不用經(jīng)過(guò)LB服務(wù)器。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        TUN模式下的以上原理圖過(guò)程簡(jiǎn)述:
        1)客戶請(qǐng)求數(shù)據(jù)包,目標(biāo)地址VIP發(fā)送到LB上;
        2)LB接收到客戶請(qǐng)求包,進(jìn)行IP Tunnel封裝。即在原有的包頭加上IP Tunnel的包頭。然后發(fā)送出去;
        3)RS節(jié)點(diǎn)機(jī)器根據(jù)IP Tunnel包頭信息 (此時(shí)就又一種邏輯上的隱形隧道,只有LB和RS之間懂)收到請(qǐng)求包,然后解開IP Tunnel包頭信息,得到客戶的請(qǐng)求包并進(jìn)行響應(yīng)處理。
        4)響應(yīng)處理完畢之后,RS服務(wù)器使用自己的出公網(wǎng)的線路,將這個(gè)響應(yīng)數(shù)據(jù)包發(fā)送給客戶端。源IP地址還是VIP地址。(RS節(jié)點(diǎn)服務(wù)器需要在本地回環(huán)接口配置VIP);

        其實(shí)TUN模式和下面的DR模式差不多,但是比DR多了一個(gè)隧道技術(shù)以支持realserver不在同一個(gè)物理環(huán)境中。就是realserver一個(gè)在北京,一個(gè)工作在上海。在原有的IP報(bào)文外再次封裝多一層IP首部,內(nèi)部IP首部(源地址為CIP,目標(biāo)IIP為VIP),外層IP首部(源地址為DIP,目標(biāo)IP為RIP.  再看下面的TUN模式圖:

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        1)  當(dāng)用戶請(qǐng)求到達(dá)Director Server,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。 此時(shí)報(bào)文的源IP為CIP,目標(biāo)IP為VIP 。
        2)  PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈;
        3)  IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,在請(qǐng)求報(bào)文的首部再次封裝一層IP報(bào)文,封裝源IP為為DIP,目標(biāo)IP為RIP。然后發(fā)至POSTROUTING鏈。 此時(shí)源IP為DIP,目標(biāo)IP為RIP;
        4)  POSTROUTING鏈根據(jù)最新封裝的IP報(bào)文,將數(shù)據(jù)包發(fā)至RS(因?yàn)樵谕鈱臃庋b多了一層IP首部,所以可以理解為此時(shí)通過(guò)隧道傳輸)。 此時(shí)源IP為DIP,目標(biāo)IP為RIP;
        5)  RS接收到報(bào)文后發(fā)現(xiàn)是自己的IP地址,就將報(bào)文接收下來(lái),拆除掉最外層的IP后,會(huì)發(fā)現(xiàn)里面還有一層IP首部,而且目標(biāo)是自己的lo接口VIP,那么此時(shí)RS開始處理此請(qǐng)求,處理完成之后,通過(guò)lo接口送給eth0網(wǎng)卡,然后向外傳遞。 此時(shí)的源IP地址為VIP,目標(biāo)IP為CIP;
        6)  響應(yīng)報(bào)文最終送達(dá)至客戶端;

        LVS-TUN (ip隧道) 模式特點(diǎn)和注意事項(xiàng)
        1) RIP、VIP、DIP全是公網(wǎng)地址
        2) RS的網(wǎng)關(guān)不會(huì)也不可能指向DIP
        3) 不支持端口映射
        4) RS的系統(tǒng)必須支持隧道

        3)DR模式-直接路由模式          Virtual Server via Direct Routing(VS/DR)
        DR模式也就是用直接路由技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,但它的報(bào)文轉(zhuǎn)發(fā)方法又有不同,VS/DR通過(guò)改寫請(qǐng)求報(bào)文的MAC地址,將請(qǐng)求發(fā)送到Real Server,而Real Server將響應(yīng)直接返回給客戶,免去了VS/TUN中的IP隧道開銷。這種方式是三種負(fù)載調(diào)度機(jī)制中性能最高最好的,但是必須要求Director Server與Real Server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。

        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ù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        DR模式是通過(guò)改寫請(qǐng)求報(bào)文的目標(biāo)MAC地址,將請(qǐng)求發(fā)給真實(shí)服務(wù)器的,而真實(shí)服務(wù)器響應(yīng)后的處理結(jié)果直接返回給客戶端用戶。同TUN模式一樣,DR模式可以極大的提高集群系統(tǒng)的伸縮性。而且DR模式?jīng)]有IP隧道的開銷,對(duì)集群中的真實(shí)服務(wù)器也沒有必要必須支持IP隧道協(xié)議的要求。但是要求調(diào)度器LB與真實(shí)服務(wù)器RS都有一塊網(wǎng)卡連接到同一物理網(wǎng)段上,必須在同一個(gè)局域網(wǎng)環(huán)境。

        DR模式是互聯(lián)網(wǎng)使用比較多的一種模式,DR模式原理圖如下:

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        DR模式以上原理過(guò)程簡(jiǎn)述:
        VS/DR模式的工作流程圖如上圖所示,它的連接調(diào)度和管理與NAT和TUN中的一樣,它的報(bào)文轉(zhuǎn)發(fā)方法和前兩種不同。DR模式將報(bào)文直接路由給目標(biāo)真實(shí)服務(wù)器。在DR模式中,調(diào)度器根據(jù)各個(gè)真實(shí)服務(wù)器的負(fù)載情況,連接數(shù)多少等,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,不修改目標(biāo)IP地址和目標(biāo)端口,也不封裝IP報(bào)文,而是將請(qǐng)求報(bào)文的數(shù)據(jù)幀的目標(biāo)MAC地址改為真實(shí)服務(wù)器的MAC地址。然后再將修改的數(shù)據(jù)幀在服務(wù)器組的局域網(wǎng)上發(fā)送。因?yàn)閿?shù)據(jù)幀的MAC地址是真實(shí)服務(wù)器的MAC地址,并且又在同一個(gè)局域網(wǎng)。那么根據(jù)局域網(wǎng)的通訊原理,真實(shí)復(fù)位是一定能夠收到由LB發(fā)出的數(shù)據(jù)包。真實(shí)服務(wù)器接收到請(qǐng)求數(shù)據(jù)包的時(shí)候,解開IP包頭查看到的目標(biāo)IP是VIP。(此時(shí)只有自己的IP符合目標(biāo)IP才會(huì)接收進(jìn)來(lái),所以我們需要在本地的回環(huán)借口上面配置VIP。

        另外: 由于網(wǎng)絡(luò)接口都會(huì)進(jìn)行ARP廣播響應(yīng),但集群的其他機(jī)器都有這個(gè)VIP的lo接口,都響應(yīng)就會(huì)沖突。所以我們需要把真實(shí)服務(wù)器的lo接口的ARP響應(yīng)關(guān)閉掉。)然后真實(shí)服務(wù)器做成請(qǐng)求響應(yīng),之后根據(jù)自己的路由信息將這個(gè)響應(yīng)數(shù)據(jù)包發(fā)送回給客戶,并且源IP地址還是VIP。

        其實(shí)整個(gè)DR模式都是停留在第二層的數(shù)據(jù)鏈路層, 直接修改MAC。實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)。再看下面的DR模式圖:

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        1)  當(dāng)用戶請(qǐng)求到達(dá)Director Server,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。 此時(shí)報(bào)文的源IP為CIP,目標(biāo)IP為VIP;
        2)  PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈;
        3)  IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,將請(qǐng)求報(bào)文中的源MAC地址修改為DIP的MAC地址,將目標(biāo)MAC地址修改RIP的MAC地址,然后將數(shù)據(jù)包發(fā)至POSTROUTING鏈。 此時(shí)的源IP和目的IP均未修改,僅修改了源MAC地址為DIP的MAC地址,目標(biāo)MAC地址為RIP的MAC地址;
        4)  由于DS和RS在同一個(gè)網(wǎng)絡(luò)中,所以是通過(guò)二層來(lái)傳輸。POSTROUTING鏈檢查目標(biāo)MAC地址為RIP的MAC地址,那么此時(shí)數(shù)據(jù)包將會(huì)發(fā)至Real Server;
        5)  響應(yīng)報(bào)文最終送達(dá)至客戶端;

        LVS-DR模式特點(diǎn)和注意事項(xiàng)
        1) 在前端路由器做靜態(tài)地址路由綁定,將對(duì)于VIP的地址僅路由到Director Server
        2) arptables:在arp的層次上實(shí)現(xiàn)在ARP解析時(shí)做防火墻規(guī)則,過(guò)濾RS響應(yīng)ARP請(qǐng)求。修改RS上內(nèi)核參數(shù)(arp_ignore和arp_announce)將RS上的VIP配置在網(wǎng)卡接口的別名上,并限制其不能響應(yīng)對(duì)VIP地址解析請(qǐng)求。
        3) RS可以使用私有地址;但也可以使用公網(wǎng)地址,此時(shí)可以直接通過(guò)互聯(lián)網(wǎng)連入RS以實(shí)現(xiàn)配置、監(jiān)控等;
        4) RS的網(wǎng)關(guān)一定不能指向DIP;
        5) RS跟Dirctory要在同一物理網(wǎng)絡(luò)內(nèi)(不能由路由器分隔);
        6) 請(qǐng)求報(bào)文經(jīng)過(guò)Directory,但響應(yīng)報(bào)文一定不經(jīng)過(guò)Director
        7) 不支持端口映射;
        8) RS可以使用大多數(shù)的操作系統(tǒng);

        DR模式小結(jié):
        1)通過(guò)在調(diào)度器LB上修改數(shù)據(jù)包的目的MAC地址實(shí)現(xiàn)轉(zhuǎn)發(fā)。注意源地址仍然是CIP,目的地址仍然是VIP地址。
        2)請(qǐng)求的報(bào)文經(jīng)過(guò)調(diào)度器,而RS響應(yīng)處理后的報(bào)文無(wú)需經(jīng)過(guò)調(diào)度器LB,因此并發(fā)訪問(wèn)量大時(shí)使用效率很高(和NAT模式比)
        3)因?yàn)镈R模式是通過(guò)MAC地址改寫機(jī)制實(shí)現(xiàn)轉(zhuǎn)發(fā),因此所有RS節(jié)點(diǎn)和調(diào)度器LB只能在一個(gè)局域網(wǎng)里面
        4)RS主機(jī)需要綁定VIP地址在LO接口上(防止IP沖突),并且需要配置ARP機(jī)制。
        5)RS節(jié)點(diǎn)的默認(rèn)網(wǎng)關(guān)不需要配置成LB,而是直接配置為上級(jí)路由的網(wǎng)關(guān),能讓RS直接出網(wǎng)就可以。
        6)由于DR模式的調(diào)度器僅做MAC地址的改寫,所以調(diào)度器LB就不能改寫目標(biāo)端口,那么RS服務(wù)器就得使用和VIP相同的端口提供服務(wù)。

        三種負(fù)載均衡方式簡(jiǎn)單比較:

        1)NAT模式-網(wǎng)絡(luò)地址轉(zhuǎn)換
        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)度器。如果負(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)的吞吐率。

        2)TUN模式-IP隧道模式
        在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),我們沒對(duì)其他操作系統(tǒng)進(jìn)行測(cè)試。因?yàn)?#8221;IP Tunneling”正成為各個(gè)操作系統(tǒng)的標(biāo)準(zhǔn)協(xié)議,所以VS/TUN應(yīng)該會(huì)適用運(yùn)行其他操作系統(tǒng)的后端服務(wù)器。

        3)DR模式
        跟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),或者能將報(bào)文重定向(Redirect)到本地的Socket端口上。

        LVS負(fù)載均衡-基礎(chǔ)知識(shí)全面整理詳解

        6) LVS負(fù)載均衡調(diào)度算法

        VS的調(diào)度算法決定了如何在集群節(jié)點(diǎn)之間分布工作負(fù)荷。當(dāng)director調(diào)度器收到來(lái)自客戶端訪問(wèn)VIP的上的集群服務(wù)的入站請(qǐng)求時(shí),director調(diào)度器必須決定哪個(gè)集群節(jié)點(diǎn)應(yīng)該
        處理請(qǐng)求。

        Director調(diào)度器用的調(diào)度方法基本分為兩類 (如下所列, LVS總共有10種調(diào)度算法, 常用的也就四種調(diào)度算法, 下面會(huì)說(shuō)到):
        靜態(tài)調(diào)度算法:rr,wrr,dh,sh
        動(dòng)態(tài)調(diào)度算法:wlc,lc,lblc,lblcr, sed, nq

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久噜噜久久久精品66| 午夜精品久久久久久| 欧美国产成人精品一区二区三区| 精品久久久久久无码专区不卡| 国内精品久久久久久久涩爱| 99精品国产一区二区三区| 亚洲精品国偷自产在线| 老子影院午夜精品无码| 99熟女精品视频一区二区三区| 国产精品天天看天天狠| 亚洲韩国精品无码一区二区三区 | 亚洲国产精品无码一线岛国| 精品国产综合区久久久久久| 久久精品国产久精国产| 国产精品视频色拍拍| 少妇精品久久久一区二区三区 | 国产精品亚洲A∨天堂不卡| 呦交小u女国产精品视频| 久久伊人精品青青草原日本| 免费精品99久久国产综合精品| 国产高清一级毛片精品| 日韩精品在线视频| 久久国产乱子伦精品免费强| 国产精品视频免费观看| 国产92成人精品视频免费| 国产在线精品一区二区在线观看| 欧洲精品久久久av无码电影| 色欲精品国产一区二区三区AV| 在线亚洲精品福利网址导航| 一本久久精品一区二区| 亚洲精品无码成人AAA片| 午夜精品久久久久久久| 欧洲精品99毛片免费高清观看| 人妻熟妇乱又伦精品视频| 久久精品亚洲日本波多野结衣| 日韩人妻精品无码一区二区三区 | 亚洲国产精品嫩草影院久久| 亚洲国产成人精品无码久久久久久综合| 亚洲精品国产自在久久| 亚洲欧美国产精品第1页| 亚洲无码精品浪潮|