LVS

LVS簡介

LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統(tǒng)。本項目在1998年5月由章文嵩博士成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項目之一官册。在linux內(nèi)核2.6版本以后生兆,它已經(jīng)成為內(nèi)核的一部分,在此之前的內(nèi)核版本則需要重新編譯內(nèi)核。
LVS 是四層負載均衡鸦难,也就是說建立在 OSI 模型的第四層——傳輸層之上根吁,傳輸層上有我們熟悉的 TCP/UDP,LVS 支持 TCP/UDP 的負載均衡合蔽。LVS 的轉(zhuǎn)發(fā)主要通過修改 IP 地址(NAT 模式击敌,分為源地址修改 SNAT 和目標地址修改 DNAT)、修改目標 MAC(DR 模式)來實現(xiàn)拴事∥纸铮可以實現(xiàn)高性能,高可用的服務器集群技術(shù)刃宵。廉價衡瓶,可把許多低性能的服務器組合在一起形成一個超級服務器。易用牲证,配置非常簡單哮针,且有多種負載均衡的方法。穩(wěn)定可靠坦袍,即使在集群的服務器中某臺服務器無法正常工作十厢,也不影響整體效果。另外可擴展性也非常好捂齐。

LVS特點

優(yōu)點

1蛮放、開源,免費
2辛燥、在網(wǎng)上能找到一些相關(guān)技術(shù)資源
3筛武、具有軟件負載均衡的一些優(yōu)點

缺點

1、最核心的就是沒有可靠的支持服務挎塌,沒有人對其結(jié)果負責徘六;
2、功能比較簡單榴都,支持復雜應用的負載均衡能力較差待锈,如算法較少等;
3嘴高、開啟隧道方式需重編譯內(nèi)核竿音;
4、配置復雜拴驮;
5春瞬、主要應用于LINUX,目前沒有專門用于WINDOWS的版本套啤,不過可以通過配置宽气,使windows成為LVS集群中的real server(win2003、win2008中)。

LVS術(shù)語

lvs 集群類型中的術(shù)語:
VS :Virtual Server, Director, Dispatcher( 調(diào)度器)萄涯,Load Balancer
RS :Real Server(lvs), upstream server(nginx)绪氛,backend server(haproxy)
CIP :Client IP
VIP: Virtual serve IP VS 外網(wǎng)的IP
DIP: Director IP VS 內(nèi)網(wǎng)的IP
RIP: Real server IP
訪問流程:CIP <--> VIP == DIP <--> RIP

LVS結(jié)構(gòu)

一般來說,LVS集群采用三層結(jié)構(gòu)涝影,其主要組成部分為:
A枣察、負載調(diào)度器(load balancer),它是整個集群對外面的前端機燃逻,負責將客戶的請求發(fā)送到一組服務器上執(zhí)行序目,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。
B唆樊、服務器池(server pool)宛琅,是一組真正執(zhí)行客戶請求的服務器,執(zhí)行的服務有WEB逗旁、MAIL嘿辟、FTP和DNS等。
C片效、共享存儲(shared storage)红伦,它為服務器池提供一個共享的存儲區(qū),這樣很容易使得服務器池擁有相同的內(nèi)容淀衣,提供相同的服務昙读。

LVS模式

LVS的工作模式即負載均衡機制,主要有4種膨桥,DR蛮浑、NAT、TUNNEL只嚣、Full-NAT
LVS相對于其它負載均衡的解決辦法沮稚,比如DNS域名輪流解析、應用層負載的調(diào)度册舞、客戶端的調(diào)度等蕴掏,它的效率是非常高的。LVS的通過控制IP來實現(xiàn)負載均衡调鲸。IPVS是其具體的實現(xiàn)模塊盛杰。IPVS的主要作用:安裝在Director Server上面,在Director Server虛擬一個對外訪問的IP(VIPLVS)藐石。用戶訪問VIP即供,到達Director Server,Director Server根據(jù)一定的規(guī)則選擇一個Real Server于微,處理完成后然后返回給客戶端數(shù)據(jù)逗嫡。這些步驟產(chǎn)生了一些具體的問題办素,比如如何選擇具體的Real Server,Real Server如何返回給客戶端數(shù)據(jù)等等祸穷。
IPVS為此有三種機制:

  1. VS/NAT(Virtual Server via Network Address Translation),即網(wǎng)絡地址翻轉(zhuǎn)技術(shù)實現(xiàn)虛擬服務器勺三。當請求來到時雷滚,Diretor server上處理的程序?qū)?shù)據(jù)報文中的目標地址(即虛擬IP地址)改成具體的某臺Real Server,端口也改成Real Server的端口,然后把報文發(fā)給Real Server吗坚。Real Server處理完數(shù)據(jù)后祈远,需要返回給Diretor Server,然后Diretor server將數(shù)據(jù)包中的源地址和源端口改成VIP的地址和端口商源,最后把數(shù)據(jù)發(fā)送出去车份。由此可以看出,用戶的請求和返回都要經(jīng)過Diretor Server牡彻,如果數(shù)據(jù)過多扫沼,Diretor Server肯定會不堪重負。

  2. VS/TUN(Virtual Server via IP Tunneling),即IP隧道技術(shù)實現(xiàn)虛擬服務器庄吼。它跟VS/NAT基本一樣缎除,但是Real server是直接返回數(shù)據(jù)給客戶端,不需要經(jīng)過Diretor server,這大大降低了Diretor server的壓力总寻。

  3. VS/DR(Virtual Server via Direct Routing)器罐,即用直接路由技術(shù)實現(xiàn)虛擬服務器。跟前面兩種方式渐行,它的報文轉(zhuǎn)發(fā)方法有所不同轰坊,VS/DR通過改寫請求報文的MAC地址,將請求發(fā)送到Real Server祟印,而Real Server將響應直接返回給客戶肴沫,免去了VS/TUN中的IP隧道開銷。這種方式是三種負載調(diào)度機制中性能最高最好的旁理,但是必須要求Director Server與Real Server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上樊零。

  4. 無論是 DR 還是 NAT 模式,不可避免的都有一個問題:LVS 和 RS 必須在同一個 VLAN 下孽文,否則 LVS 無法作為 RS 的網(wǎng)關(guān)驻襟。
    這引發(fā)的兩個問題是:
    1、同一個 VLAN 的限制導致運維不方便芋哭,跨 VLAN 的 RS 無法接入沉衣。
    2、LVS 的水平擴展受到制約减牺。當 RS 水平擴容時豌习,總有一天其上的單點 LVS 會成為瓶頸存谎。
    Full-NAT 由此而生,解決的是 LVS 和 RS 跨 VLAN 的問題肥隆,而跨 VLAN 問題解決后既荚,LVS 和 RS 不再存在 VLAN 上的從屬關(guān)系,可以做到多個 LVS 對應多個 RS栋艳,解決水平擴容的問題恰聘。
    Full-NAT 相比 NAT 的主要改進是,在 SNAT/DNAT 的基礎(chǔ)上吸占,加上另一種轉(zhuǎn)換晴叨。不過內(nèi)核是默認不支持Full-NAT,使用必須重新編譯安裝矾屯。

LVS調(diào)度算法

ipvs scheduler: :
根據(jù)其調(diào)度時是否考慮各RS 當前的負載狀態(tài)
兩種:靜態(tài)方法和動態(tài)方法

靜態(tài)調(diào)度方法

僅根據(jù)算法本身進行調(diào)度
1 兼蕊、RR :roundrobin ,輪詢
2 件蚕、WRR :Weighted RR 孙技,加權(quán)輪詢
3 、SH :Source Hashing 排作,實現(xiàn)session sticky 绪杏,源IP 地址 hash ;將來自于同一個IP 地址的請求始終發(fā)往第一次挑中的RS 纽绍,從而實現(xiàn)會話綁定
4 蕾久、DH :Destination Hashing ;目標地址哈希拌夏,將發(fā)往同一個目標地址的請求始終轉(zhuǎn)發(fā)至第一次挑中的RS 僧著,典型使用場景是正向代理緩存場景中的負載均衡,如:寬帶運營商

動態(tài)調(diào)度方法

主要根據(jù)每RS 當前的負載狀態(tài)及調(diào)度算法進行調(diào)度較小的RS 將被調(diào)度
1 障簿、LC :least connections 適用于長連接應用
Overhead=activeconns256+inactiveconns
2 盹愚、WLC :Weighted LC, 站故, 默認調(diào)度方法
Overhead=(activeconns
256+inactiveconns)/weight
3 皆怕、SED :Shortest Expection Delay, 初始連接高權(quán)重優(yōu)先
Overhead=(activeconns+1)*256/weight
4 、NQ :Never Queue 西篓,第一輪均勻分配愈腾,后續(xù)SED
5 、LBLC :Locality-Based LC 岂津,動態(tài)的DH 算法虱黄,使用場景:
根據(jù)負載狀態(tài)實現(xiàn)正向代理
6 、LBLCR :LBLC with Replication 吮成,帶復制功能的LBLC
解決LBLC 負載不均衡問題橱乱,從負載重的復制到負載輕的RS

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辜梳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泳叠,更是在濱河造成了極大的恐慌作瞄,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件危纫,死亡現(xiàn)場離奇詭異粉洼,居然都是意外死亡,警方通過查閱死者的電腦和手機叶摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來安拟,“玉大人蛤吓,你說我怎么就攤上這事】飞猓” “怎么了会傲?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拙泽。 經(jīng)常有香客問我淌山,道長,這世上最難降的妖魔是什么顾瞻? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任泼疑,我火速辦了婚禮,結(jié)果婚禮上荷荤,老公的妹妹穿的比我還像新娘退渗。我一直安慰自己,他們只是感情好蕴纳,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布会油。 她就那樣靜靜地躺著,像睡著了一般古毛。 火紅的嫁衣襯著肌膚如雪翻翩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天稻薇,我揣著相機與錄音嫂冻,去河邊找鬼。 笑死塞椎,一個胖子當著我的面吹牛絮吵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忱屑,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蹬敲,長吁一口氣:“原來是場噩夢啊……” “哼暇昂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伴嗡,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤急波,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瘪校,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澄暮,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年阱扬,在試婚紗的時候發(fā)現(xiàn)自己被綠了泣懊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡麻惶,死狀恐怖馍刮,靈堂內(nèi)的尸體忽然破棺而出择懂,到底是詐尸還是另有隱情蛀蜜,我是刑警寧澤渐裂,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布逆害,位于F島的核電站纲熏,受9級特大地震影響辐赞,放射性物質(zhì)發(fā)生泄漏寺擂。R本人自食惡果不足惜球涛,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一杀迹、第九天 我趴在偏房一處隱蔽的房頂上張望亡脸。 院中可真熱鬧,春花似錦树酪、人聲如沸梗掰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽及穗。三九已至,卻和暖如春绵载,著一層夾襖步出監(jiān)牢的瞬間埂陆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工娃豹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留焚虱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓懂版,卻偏偏與公主長得像鹃栽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子躯畴,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 本文部分觀點圖片采用于:http://chenx1242.blog.51cto.com 隨著智能機的逐漸普及民鼓,大量...
    BossHuang閱讀 3,157評論 0 16
  • 集群的概念LVS介紹ipvsadm的使用實現(xiàn)LVS-NAT實現(xiàn)LVS-DRLVS高可用 一薇芝、集群的概念 (一)系統(tǒng)...
    哈嘍別樣閱讀 762評論 0 2
  • 負載均衡集群是 load balance 集群的簡寫,翻譯成中文就是負載均衡集群丰嘉。常用的負載均衡開源軟件有ngin...
    jiangmo閱讀 1,321評論 0 1
  • 1.Cluster(集群)概念 (1)系統(tǒng)擴展方式: Scale UP:向上擴展,增強Scale Out:向外擴展...
    尛尛大尹閱讀 1,101評論 0 4
  • 1.集群的類型 1.1夯到、LB: 負載均衡集群(Load Balancing) 組成部分負載均衡器調(diào)度器分發(fā)器后端主...
    Bruce_King閱讀 821評論 0 1