LVS的3種工作模式和8種調(diào)度算法

LVS的三種工作模式:

  • VS/NAT模式(Network address translation)
  • VS/TUN模式(tunneling)
  • DR模式(Direct routing)

參考文章:http://www.linuxvirtualserver.org/zh/lvs3.html

** NAT模式-網(wǎng)絡(luò)地址轉(zhuǎn)換 ** * Virtualserver via Network address translation(VS/NAT)*

這個是通過網(wǎng)絡(luò)地址轉(zhuǎn)換的方法來實現(xiàn)調(diào)度的漠嵌。首先調(diào)度器(LB)接收到客戶的請求數(shù)據(jù)包時(請求的目的IP為VIP)咐汞,根據(jù)調(diào)度算法決定將請求發(fā)送給哪個后端的真實服務(wù)器(RS)。然后調(diào)度就把客戶端發(fā)送的請求數(shù)據(jù)包的目標(biāo)IP地址及端口改成后端真實服務(wù)器的IP地址(RIP),這樣真實服務(wù)器(RS)就能夠接收到客戶的請求數(shù)據(jù)包了儒鹿。真實服務(wù)器響應(yīng)完請求后化撕,查看默認(rèn)路由(NAT模式下我們需要把RS的默認(rèn)路由設(shè)置為LB服務(wù)器。)把響應(yīng)后的數(shù)據(jù)包發(fā)送給LB,LB再接收到響應(yīng)包后约炎,把包的源地址改成虛擬地址(VIP)然后發(fā)送回給客戶端植阴。

原理簡述:

  1. 客戶端請求數(shù)據(jù),目標(biāo)IP為VIP
  2. 請求數(shù)據(jù)到達(dá)LB服務(wù)器圾浅,LB根據(jù)調(diào)度算法將目的地址修改為RIP地址及對應(yīng)端口(此RIP地址是根據(jù)調(diào)度算法得出的掠手。)并在連接HASH表中記錄下這個連接。
  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砾省,及對應(yīng)端口80.然后數(shù)據(jù)就從LB出發(fā)到達(dá)客戶端。
  5. 客戶端收到的就只能看到VIP\DIP信息混槐。

NAT模式優(yōu)缺點:

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

TUN模式 virtual server via ip tunneling

采用NAT模式時碰煌,由于請求和響應(yīng)的報文必須通過調(diào)度器地址重寫,當(dāng)客戶請求越來越多時绅作,調(diào)度器處理能力將成為瓶頸芦圾。為了解決這個問題,調(diào)度器把請求的報文通過IP隧道轉(zhuǎn)發(fā)到真實的服務(wù)器俄认。真實的服務(wù)器將響應(yīng)處理后的數(shù)據(jù)直接返回給客戶端个少。這樣調(diào)度器就只處理請求入站報文,由于一般網(wǎng)絡(luò)服務(wù)應(yīng)答數(shù)據(jù)比請求報文大很多眯杏,采用VS/TUN模式后夜焦,集群系統(tǒng)的最大吞吐量可以提高10倍。
VS/TUN和NAT模式不同的是岂贩,它在LB和RS之間的傳輸不用改寫IP地址茫经。而是把客戶請求包封裝在一個IP tunnel里面,然后發(fā)送給RS節(jié)點服務(wù)器萎津,節(jié)點服務(wù)器接收到之后解開IP tunnel后卸伞,進(jìn)行響應(yīng)處理。并且直接把包通過自己的外網(wǎng)地址發(fā)送給客戶不用經(jīng)過LB服務(wù)器锉屈。

原理簡述:

  1. 客戶請求數(shù)據(jù)包荤傲,目標(biāo)地址VIP發(fā)送到LB上。
  2. LB接收到客戶請求包颈渊,進(jìn)行IP Tunnel封裝遂黍。即在原有的包頭加上IP Tunnel的包頭。然后發(fā)送出去俊嗽。
  3. RS節(jié)點服務(wù)器根據(jù)IP Tunnel包頭信息(此時就有一種邏輯上的隱形隧道雾家,只有LB和RS之間懂)收到請求包,然后解開IP Tunnel包頭信息绍豁,得到客戶的請求包并進(jìn)行響應(yīng)處理芯咧。
  4. 響應(yīng)處理完畢之后,RS服務(wù)器使用自己的出公網(wǎng)的線路,將這個響應(yīng)數(shù)據(jù)包發(fā)送給客戶端唬党。源IP地址還是VIP地址。(RS節(jié)點服務(wù)器需要在本地回環(huán)接口配置VIP)

DR模式(直接路由模式) Virtual server via direct routing (vs/dr)

DR模式是通過改寫請求報文的目標(biāo)MAC地址鬼佣,將請求發(fā)給真實服務(wù)器的驶拱,而真實服務(wù)器響應(yīng)后的處理結(jié)果直接返回給客戶端用戶。同TUN模式一樣晶衷,DR模式可以極大的提高集群系統(tǒng)的伸縮性蓝纲。而且DR模式?jīng)]有IP隧道的開銷,對集群中的真實服務(wù)器也沒有必要必須支持IP隧道協(xié)議的要求晌纫。但是要求調(diào)度器LB與真實服務(wù)器RS都有一塊網(wǎng)卡連接到同一物理網(wǎng)段上税迷,必須在同一個局域網(wǎng)環(huán)境。
DR模式是互聯(lián)網(wǎng)使用比較多的一種模式锹漱。

DR模式原理過程簡述:
VS/DR模式的連接調(diào)度和管理與NAT和TUN中的一樣箭养,它的報文轉(zhuǎn)發(fā)方法和前兩種不同。DR模式將報文直接路由給目標(biāo)真實服務(wù)器哥牍。在DR模式中毕泌,調(diào)度器根據(jù)各個真實服務(wù)器的負(fù)載情況,連接數(shù)多少等嗅辣,動態(tài)地選擇一臺服務(wù)器撼泛,不修改目標(biāo)IP地址和目標(biāo)端口,也不封裝IP報文澡谭,而是將請求報文的數(shù)據(jù)幀的目標(biāo)MAC地址改為真實服務(wù)器的MAC地址愿题。然后再將修改的數(shù)據(jù)幀在服務(wù)器組的局域網(wǎng)上發(fā)送。因為數(shù)據(jù)幀的MAC地址是真實服務(wù)器的MAC地址蛙奖,并且又在同一個局域網(wǎng)潘酗。那么根據(jù)局域網(wǎng)的通訊原理,真實服務(wù)器是一定能夠收到由LB發(fā)出的數(shù)據(jù)包外永。真實服務(wù)器接收到請求數(shù)據(jù)包的時候崎脉,解開IP包頭查看到的目標(biāo)IP是VIP。(此時只有自己的IP符合目標(biāo)IP才會接收進(jìn)來伯顶,所以我們需要在本地的回環(huán)接口上面配置VIP囚灼。另:由于網(wǎng)絡(luò)接口都會進(jìn)行ARP廣播響應(yīng),但集群的其他機器都有這個VIP的lo接口祭衩,都響應(yīng)就會沖突灶体。所以我們需要把真實服務(wù)器的lo接口的ARP響應(yīng)關(guān)閉掉。)然后真實服務(wù)器做成請求響應(yīng)掐暮,之后根據(jù)自己的路由信息將這個響應(yīng)數(shù)據(jù)包發(fā)送回給客戶蝎抽,并且源IP地址還是VIP。

DR模式小結(jié):

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

LVS調(diào)度算法

參考文章:http://www.linuxvirtualserver.org/zh/lvs4.html
Lvs的調(diào)度算法決定了如何在集群節(jié)點之間分布工作負(fù)荷杜跷。當(dāng)director調(diào)度器收到來自客戶端訪問VIP的上的集群服務(wù)的入站請求時,director調(diào)度器必須決定哪個集群節(jié)點應(yīng)該處理請求蹂喻。Director調(diào)度器用的調(diào)度方法基本分為兩類:
固定調(diào)度算法:rr葱椭,wrr,dh口四,sh
動態(tài)調(diào)度算法:wlc孵运,lc,lblc蔓彩,lblcr

算法說明

RR(Round Robin Scheduling)

輪詢算法治笨,它將請求依次分配給不同的rs節(jié)點,也就是RS節(jié)點中均攤分配赤嚼。這種算法簡單旷赖,但只適合于RS節(jié)點處理性能差不多的情況

WRR(Weighted Round-Robin Scheduling)

加權(quán)輪詢調(diào)度喷众,它將依據(jù)不同RS的權(quán)值分配任務(wù)蝌衔。權(quán)值較高的RS將優(yōu)先獲得任務(wù)僚焦,并且分配到的連接數(shù)將比權(quán)值低的RS更多推捐。相同權(quán)值的RS得到相同數(shù)目的連接數(shù)。

WLC(Weighted Least-Connection Scheduling)

加權(quán)最小連接數(shù)調(diào)度膏燕,假設(shè)各臺RS的全職依次為Wi崇棠,當(dāng)前tcp連接數(shù)依次為Ti买优,依次去Ti/Wi為最小的RS作為下一個分配的RS

DH(Destination Hashing Scheduling)

目的地址哈希調(diào)度以目的地址為關(guān)鍵字查找一個靜態(tài)hash表來獲得需要的RS

SH(Source Hashing Scheduling)

源地址哈希調(diào)度以源地址為關(guān)鍵字查找一個靜態(tài)hash表來獲得需要的RS

LC(Least-Connection Scheduling)

最小連接數(shù)調(diào)度,IPVS表存儲了所有活動的連接上枕。LB會比較將連接請求發(fā)送到當(dāng)前連接最少的RS.

LBLC(Locality-Based Least Connections Scheduling)

基于地址的最小連接數(shù)調(diào)度:將來自同一個目的地址的請求分配給同一臺RS咐熙,此時這臺服務(wù)器是尚未滿負(fù)荷的。否則就將這個請求分配給連接數(shù)最小的RS辨萍,并以它作為下一次分配的首先考慮棋恼。

LBLCR(Locality-Based Least Connections with Replication Scheduling)

帶復(fù)制的基于局部性最少鏈接調(diào)度算法也是針對目標(biāo)IP地址的負(fù)載均衡。LBLCR算法先根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址對應(yīng)的服務(wù)器組;按“最小連接”原則從該服務(wù)器組中選出一臺服務(wù)器爪飘,若服務(wù)器沒有超載义起, 將請求發(fā)送到該服務(wù)器;若服務(wù)器超載师崎;則按“最小連接”原則從整個集群中選出一臺服務(wù)器并扇,將該服務(wù)器加入到服務(wù)器組中,將請求發(fā)送到該服務(wù)器抡诞。同時,當(dāng)該 服務(wù)器組有一段時間沒有被修改土陪,將最忙的服務(wù)器從服務(wù)器組中刪除昼汗,以降低復(fù)制的程度。

LVS調(diào)度算法的生產(chǎn)環(huán)境選型:

  1. 一般的網(wǎng)絡(luò)服務(wù)鬼雀,如http顷窒,mail,mysql等常用的LVS調(diào)度算法為:
  • 基本輪詢調(diào)度RR
  • 加權(quán)最小連接調(diào)度WLC
  • 加權(quán)輪詢調(diào)度WRR
  1. 基于局部性的最小連接LBLC和帶復(fù)制的給予局部性最小連接LBLCR主要適用于web cache和DB cache
  2. 源地址散列調(diào)度SH和目標(biāo)地址散列調(diào)度DH可以結(jié)合使用在防火墻集群中源哩,可以保證整個系統(tǒng)的出入口唯一鞋吉。
    實際適用中這些算法的適用范圍很多,工作中最好參考內(nèi)核中的連接調(diào)度算法的實現(xiàn)原理励烦,然后根據(jù)具體的業(yè)務(wù)需求合理的選型谓着。

參考文章:http://atong.blog.51cto.com/2393905/1351362

LVS+keepalived實現(xiàn)負(fù)載均衡&高可用

部署成功后的另一些問題

  1. 當(dāng)我們的RS節(jié)點出現(xiàn)問題,LB如何知道坛掠。如果不知道是會把會話連接接續(xù)轉(zhuǎn)發(fā)到RS上面赊锚。
  2. 如果LB出現(xiàn)故障,那么整個網(wǎng)絡(luò)就出現(xiàn)故障屉栓。

針對上面的1問題舷蒲,我們就需要一種RS節(jié)點健康檢查機制。定時的去檢測RS是否正常友多,如果出現(xiàn)不正常那么就把這個RS從VIP服務(wù)里面刪除掉牲平。如果恢復(fù)正常了,就再把RS添加進(jìn)來域滥。針對2問題纵柿,我們可以另外再架設(shè)一臺LB服務(wù)器,作為備LB服務(wù)器骗绕。那么當(dāng)主LB出現(xiàn)故障藐窄,備LB服務(wù)器就會啟動接管主LB服務(wù)器的工作,接管它的資源(IP地址酬土,在網(wǎng)絡(luò)中的角色身份等)

LVS/Nginx/HAProxy負(fù)載均衡器的對比分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荆忍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刹枉,老刑警劉巖叽唱,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異微宝,居然都是意外死亡棺亭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門蟋软,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镶摘,“玉大人,你說我怎么就攤上這事岳守∑喔遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵湿痢,是天一觀的道長涝缝。 經(jīng)常有香客問我,道長譬重,這世上最難降的妖魔是什么拒逮? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮臀规,結(jié)果婚禮上滩援,老公的妹妹穿的比我還像新娘。我一直安慰自己塔嬉,他們只是感情好狠怨,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著邑遏,像睡著了一般佣赖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上记盒,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天憎蛤,我揣著相機與錄音,去河邊找鬼纪吮。 笑死俩檬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碾盟。 我是一名探鬼主播棚辽,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冰肴!你這毒婦竟也來了屈藐?” 一聲冷哼從身側(cè)響起榔组,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎联逻,沒想到半個月后搓扯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡包归,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年锨推,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片公壤。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡换可,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厦幅,到底是詐尸還是另有隱情锦担,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布慨削,位于F島的核電站,受9級特大地震影響套媚,放射性物質(zhì)發(fā)生泄漏缚态。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一堤瘤、第九天 我趴在偏房一處隱蔽的房頂上張望玫芦。 院中可真熱鬧,春花似錦本辐、人聲如沸桥帆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽老虫。三九已至,卻和暖如春茫多,著一層夾襖步出監(jiān)牢的瞬間祈匙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工天揖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留夺欲,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓今膊,卻偏偏與公主長得像些阅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斑唬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容