日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LVS原理图解

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS原理图解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、LVS是什么

LVS(Linux Virtual Server),是一個(gè)極好的負(fù)載均衡解決方案,它將一個(gè)真實(shí)服務(wù)器集群虛擬成一臺(tái)服務(wù)器來(lái)對(duì)外提供服務(wù),同時(shí)在真實(shí)服務(wù)器集群中實(shí)現(xiàn)了負(fù)載均衡。該技術(shù)由章文嵩博客發(fā)起,從linux2.4開(kāi)始已經(jīng)被收錄到linux核心中。

二、LVS有什么用

隨著互聯(lián)網(wǎng)在人們生活中的普及,企業(yè)級(jí)應(yīng)用迎來(lái)了海量數(shù)據(jù)的沖擊,如微信、美團(tuán)外賣、微信支付等應(yīng)用每天的使用人數(shù)都在千萬(wàn)以上,僅靠單臺(tái)機(jī)器提供服務(wù)已經(jīng)行不通了。

我們可以使用多臺(tái)服務(wù)器分?jǐn)傔@些壓力,當(dāng)一定數(shù)量的服務(wù)器作為一個(gè)整體對(duì)外提供服務(wù),并且分?jǐn)倝毫r(shí),我們可以稱這些服務(wù)器為“負(fù)載均衡集群”。LVS就是一個(gè)優(yōu)秀的負(fù)載均衡集群方案,它理論上能夠無(wú)限水平擴(kuò)展,使得服務(wù)能夠應(yīng)對(duì)海量數(shù)據(jù)的沖擊。

三、LVS的原理是什么

首先描述一下LVS中的一些術(shù)語(yǔ):

  • VS:Virtual Server 虛擬服務(wù)器,通常是分發(fā)器
  • RS:Real Server 實(shí)際提供服務(wù)器的真實(shí)服務(wù)器
  • CIP:Client IP 客戶的客戶端IP
  • VIP:Virtual Server IP 虛擬服務(wù)器的IP
  • RIP:Real Server IP 真實(shí)服務(wù)器的IP
  • DIP:Director IP 分發(fā)器的IP
  • CIP <–> VIP == DIP <–> RIP 客戶端訪問(wèn)VIP,DIP將請(qǐng)求轉(zhuǎn)發(fā)到RIP
  • LVS的原理如下圖所示:

    分發(fā)服務(wù)器以VIP對(duì)外提供服務(wù)器,當(dāng)接收到客戶端服務(wù)請(qǐng)求時(shí),便根據(jù)預(yù)定的分發(fā)策略(例如輪詢)將請(qǐng)求分發(fā)到Real Server中,由Real Server做實(shí)際的業(yè)務(wù)處理。當(dāng)Real Server處理完成后,根據(jù)不同的模式,會(huì)使用不同的方式返回請(qǐng)求結(jié)果。

    四、 LVS的3種工作模式

    根據(jù)服務(wù)返回方式和集群分布的不同,LVS有3中不同的工作模式,他們分別是:NAT(地址轉(zhuǎn)換)模式、DR(直接路由)模式和TUN(隧道)模式。

  • NAT地址轉(zhuǎn)換模式
  • NAT地址轉(zhuǎn)換模式是最為簡(jiǎn)單的一種模式,它的原理如下圖所示(為了簡(jiǎn)潔,用戶只畫(huà)了一個(gè)):

    NAT其實(shí)就是通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換來(lái)實(shí)現(xiàn)負(fù)載均衡的,下面是它的請(qǐng)求流程:

  • 分發(fā)服務(wù)器Director Server(后面簡(jiǎn)稱DS)接受到請(qǐng)求后,通過(guò)分發(fā)策略得出要將此請(qǐng)求分發(fā)到Real Server1。于是將請(qǐng)求報(bào)文的目的地址改為RIP1,發(fā)送出去。
  • Real Server1收到一個(gè)目標(biāo)地址為自己的數(shù)據(jù)包,于是接受并進(jìn)行處理。
  • 處理完成后,Real Server1將RIP1——>CIP的數(shù)據(jù)包發(fā)送出去。
  • DS接收到RIP1——>CIP的數(shù)據(jù)包后,將源地址改為VIP,然后發(fā)送出去:VIP——>CIP。 這個(gè)過(guò)程中,DS僅僅起到一個(gè)地址轉(zhuǎn)換和分發(fā)的作用。在NAT模式中,請(qǐng)求和響應(yīng)報(bào)文都要通過(guò)DS,當(dāng)真實(shí)服務(wù)器的數(shù)量越來(lái)越多時(shí),分發(fā)器DS將會(huì)成為整個(gè)集群系統(tǒng)的性能瓶頸。下面的DR模式解決這個(gè)問(wèn)題。
  • DR直接路由模式
  • 互聯(lián)網(wǎng)應(yīng)用中存在一個(gè)規(guī)律:請(qǐng)求報(bào)文較短而響應(yīng)報(bào)文往往包含大量的數(shù)據(jù)。如果能將請(qǐng)求和響應(yīng)分開(kāi)處理,即在負(fù)載調(diào)度器(Director)中只負(fù)責(zé)調(diào)度請(qǐng)求而響應(yīng)直接由RealServer返回給客戶,將極大地提高整個(gè)集群系統(tǒng)的吞吐量。這就是DR的實(shí)現(xiàn)原理,原理圖如下所示:

    在DR模型中,只有在請(qǐng)求的時(shí)候會(huì)經(jīng)過(guò)DR,響應(yīng)的數(shù)據(jù)包由Real Server直接返回給用戶,該模式是3中模式中最常用的。它的請(qǐng)求過(guò)程如下所示:

  • DR接受到請(qǐng)求后,通過(guò)分發(fā)策略得出要將此請(qǐng)求分發(fā)到Real Server2。DS就將數(shù)據(jù)幀中的目標(biāo)MAC地址修改為Real Server2的MAC地址,然后再將數(shù)據(jù)幀發(fā)送出去。(為什么要用MAC地址?因?yàn)榇藭r(shí)Real Server也有配置有VIP)
  • 當(dāng)Real Server2 收到一個(gè)源地址為CIP目標(biāo)地址為VIP的數(shù)據(jù)包時(shí),Real Server2發(fā)現(xiàn)目標(biāo)地址為VIP,而VIP是自己,于是接受數(shù)據(jù)包并給予處理。
  • Real Server2處理完成后,會(huì)將一個(gè)源地址為VIP而目標(biāo)地址為CIP的數(shù)據(jù)包發(fā)送出去,此時(shí)的響應(yīng)請(qǐng)求就不會(huì)再經(jīng)過(guò)DS,而是直接響應(yīng)給用戶了。
  • 在這個(gè)過(guò)程中存在一個(gè)問(wèn)題,由于RealServer也配置了VIP,那么當(dāng)CIP——>VIP的數(shù)據(jù)包到達(dá)服務(wù)局域網(wǎng),進(jìn)行廣播時(shí),所有的服務(wù)器都會(huì)進(jìn)行應(yīng)答,此時(shí)先應(yīng)答的服務(wù)器就會(huì)收到數(shù)據(jù)包,這樣就失去了負(fù)載均衡的能力。因此在使用DR模式時(shí),通常會(huì)采用一些方式來(lái)確保請(qǐng)求數(shù)據(jù)包只會(huì)由DS接收,例如抑制Real Server對(duì)廣播的應(yīng)答,或者直接在路由器中對(duì)DS進(jìn)行綁定等。
  • TNU隧道模式
  • TNU模式與DR模式非常相似,它同樣是只有請(qǐng)求信息會(huì)經(jīng)過(guò)DS,應(yīng)答信息由Real Server直接返回給用戶。不過(guò)DR模式中,要求DS和所有的Real Server必須在一個(gè)局域網(wǎng)中,而TNU模式去掉了這個(gè)限制。

    TNU模式原理圖如下所示:

  • 在TNU模式中,DS與Real Server不必在一個(gè)網(wǎng)絡(luò)中。DS在接到請(qǐng)求報(bào)文之后,在報(bào)文的上面再加一層源地址為DIP,目的地址為RIP2的IP首部,然后通過(guò)廣域網(wǎng)發(fā)送到Real Server2。
  • Real Server2收到報(bào)文,拆掉報(bào)文以后發(fā)現(xiàn)了里面還有一個(gè)封裝,它就知道了,這就是隧道。后續(xù)的過(guò)程就與DR一樣了。
  • 五、 LVS的調(diào)度算法

    LVS的調(diào)度算法是指LVS對(duì)于請(qǐng)求的分發(fā)方式。DS在向Real Server分發(fā)請(qǐng)求實(shí)現(xiàn)負(fù)載均衡時(shí),有10種不同的算法:

  • 輪詢(Round Robin,rr):在Real Server之間輪流分配請(qǐng)求。
  • 加權(quán)輪詢(Weighted Round Robin,wrr):有權(quán)重地進(jìn)行輪詢。
  • 最少鏈接(Least Connnections,lc):將請(qǐng)求發(fā)送給連接數(shù)最少的RS。
  • 加權(quán)最少鏈接(Weighted Least Connnections,wlc):分發(fā)給基于權(quán)重的最少鏈接。
  • 基于局部性的最少鏈接(Locality-Based Least Connections,lblc):首先根據(jù)目標(biāo)IP地址找出最近使用的服務(wù)器,如果該服務(wù)器可用且沒(méi)有超載(一半的工作負(fù)荷),則將請(qǐng)求發(fā)送到該服務(wù)器。否則,使用“最少鏈接”原則。
  • 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with
    Replication,lblcr):它與lblc的不同之處是它要維護(hù)從一個(gè)目標(biāo)IP到一組服務(wù)器的映射,而lblc值維護(hù)從一個(gè)目標(biāo)IP到一臺(tái)服務(wù)器的映射。
  • 目標(biāo)地址散列(Destination Hashing,dh):使用請(qǐng)求的目標(biāo)IP地址作為散列鍵,從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器可用且未超載,則轉(zhuǎn)發(fā)請(qǐng)求,否則返回空。
  • 源地址散列(Source Hashing,sh):使用請(qǐng)求的源IP地址作為散列鍵,從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器可用且未超載,則轉(zhuǎn)發(fā)請(qǐng)求,否則返回空。
  • 最短期望延遲(Shortest Expecte Delay,sed):“最短的期望的延遲”是基于WLC算法的,只是其計(jì)算方法不同。具體算法如下:(active+1)*256/weight
  • 最少隊(duì)列調(diào)度(Never Queue Scheduling):無(wú)需隊(duì)列。如果有臺(tái)
    realserver的連接數(shù)=0就直接分配過(guò)去,不需要在進(jìn)行SED運(yùn)算。如果沒(méi)有服務(wù)器連接數(shù)為空閑,則使用SED算法。
  • 六、LVS的優(yōu)缺點(diǎn)是什么

    LVS的優(yōu)點(diǎn)有:

  • 工作在網(wǎng)絡(luò)層,可以實(shí)現(xiàn)高性能、高可用的服務(wù)器集群技術(shù)。
  • 廉價(jià),可把許多低性能的服務(wù)器組合在一起形成一個(gè)水平擴(kuò)展的集群服務(wù)器。
  • 易用,配置非常簡(jiǎn)單,且有多重負(fù)載均衡的方法
  • 穩(wěn)定可靠,即使集群中的一臺(tái)服務(wù)器掛掉,也不影響整體服務(wù)效果。
  • 可擴(kuò)展性好,可以用戶透明地進(jìn)行水平擴(kuò)展,加減機(jī)器非常方便。
  • LVS的缺點(diǎn):

  • 由于是通用組件,因此不能對(duì)特定業(yè)務(wù)進(jìn)行針對(duì)優(yōu)化。
  • 對(duì)于長(zhǎng)連接無(wú)法進(jìn)行負(fù)載均衡。
  • 自身沒(méi)有健康狀態(tài)檢查,需要結(jié)合腳本或者Keepalived等軟件實(shí)現(xiàn)。
  • LVS (Linux Virtual Server)跟SLB(Server Load Balancing)最大的區(qū)別就是,LVS是在網(wǎng)絡(luò)層起作用的,而SLB是在應(yīng)用層起作用的

    參考文章
    參考文章
    參考文章

    總結(jié)

    以上是生活随笔為你收集整理的LVS原理图解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。