LVS原理篇:LVS簡(jiǎn)介病蛉、結(jié)構(gòu)、四種模式瑰煎、十種算法
LVS是Linux virtual server的縮寫铺然,為linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng)酒甸。LVS簡(jiǎn)單工作原理為用戶請(qǐng)求LVS VIP魄健,LVS根據(jù)轉(zhuǎn)發(fā)方式和算法,將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器插勤,后端服務(wù)器接收到請(qǐng)求沽瘦,返回給用戶。對(duì)于用戶來說农尖,看不到Web后端具體的應(yīng)用析恋。
LVS原理篇:LVS簡(jiǎn)介、結(jié)構(gòu)盛卡、四種模式助隧、十種算法
一、LVS負(fù)載均衡簡(jiǎn)介
二滑沧、LVS結(jié)構(gòu)
三并村、LVS相關(guān)術(shù)語(yǔ)
四、LVS負(fù)載均衡四種模式
1滓技、LVS DR模式
2哩牍、LVS NAT模式
3、LVS FULLNAT模式
4令漂、LVS TUN原理
5姐叁、四種模式的比較
五、LVS負(fù)載均衡常見算法
一、LVS負(fù)載均衡簡(jiǎn)介
可伸縮網(wǎng)絡(luò)服務(wù)有很多結(jié)構(gòu)外潜,但都有一個(gè)共同點(diǎn):它們都需要一個(gè)前端的負(fù)載調(diào)度器原环。而實(shí)現(xiàn)虛擬網(wǎng)絡(luò)服務(wù)的主要技術(shù)指出IP負(fù)載均衡技術(shù)是在負(fù)載調(diào)度器的實(shí)現(xiàn)技術(shù)里面效率最高的一個(gè)。
在已有的IP負(fù)載均衡技術(shù)中处窥,主要有通過網(wǎng)絡(luò)地址轉(zhuǎn)換將一組服務(wù)器構(gòu)成一個(gè)高性能的嘱吗、高可用的虛擬服務(wù)器,通常稱為VS/NAT技術(shù)滔驾。在分析VS/NAT的缺點(diǎn)和網(wǎng)絡(luò)服務(wù)的非對(duì)稱的基礎(chǔ)上谒麦,可以通過IP隧道實(shí)現(xiàn)虛擬服務(wù)器的方法VS/TUN和通過直接路由實(shí)現(xiàn)虛擬服務(wù)器的方法VS/DR,它們可以極大地提高系統(tǒng)的伸縮性哆致。(摘自 LINUX企業(yè)運(yùn)維實(shí)戰(zhàn)一書中)
二绕德、LVS結(jié)構(gòu)
LVS集群分為三層結(jié)構(gòu):
- 負(fù)載調(diào)度器(Load Blancer):是整個(gè)LVS集群對(duì)外的前端機(jī)器,負(fù)責(zé)敬愛嗯client的請(qǐng)求發(fā)送到一組服務(wù)器【多臺(tái) LB IP】上執(zhí)行摊阀,而client則認(rèn)為返回來是同一個(gè)IP(通常把這個(gè)IP成為虛擬ip或VIP)
- 服務(wù)器池(server pool):一組真正執(zhí)行clinet請(qǐng)求的服務(wù)器耻蛇,一般是web服務(wù)器;除了web胞此,還有FTP臣咖、MAIL、DNS等
- 共享存儲(chǔ)(shared stord):它為server pool提供了一個(gè)共享的存儲(chǔ)區(qū)漱牵,很容易讓服務(wù)器池?fù)碛邢嗤膬?nèi)容夺蛇,提供相同的服務(wù)
三、LVS相關(guān)術(shù)語(yǔ)
- DS:Director Server酣胀。指的是前端負(fù)載均衡器節(jié)點(diǎn)
- 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,訪問客戶端的IP地址
四儒溉、LVS負(fù)載均衡工作原理
1宦焦、LVS DR模式
LVS DR原理詳解圖
LVS DR原理:用戶請(qǐng)求LVS到達(dá)director,director將請(qǐng)求的報(bào)文的目的MAC地址改為后端的realserver的MAC地址顿涣,目的IP為VIP(不變)波闹,源IP為client IP地址(不變),然后director將報(bào)文發(fā)送到realserver涛碑,realserver檢測(cè)到目的地址為自己本地的VIP精堕,如果在同一網(wǎng)段,將請(qǐng)求直接返回給用戶蒲障,如果用戶跟realserver不在同一個(gè)網(wǎng)段歹篓,則需要通過網(wǎng)關(guān)返回給用戶瘫证。
LVS DR特性:
- 前端路由將目標(biāo)地址為VIP報(bào)文統(tǒng)統(tǒng)發(fā)給Director Server
- RS跟Director Server必須有一個(gè)網(wǎng)卡在同一個(gè)物理網(wǎng)絡(luò)中
- 所有的請(qǐng)求報(bào)文經(jīng)由Director Server,但響應(yīng)報(bào)文必須不能進(jìn)過Director Server
- 所有的real server機(jī)器上都有VIP地址
2庄撮、LVS NAT模式
LVS NAT原理詳解圖
LVS NAT原理:用戶請(qǐng)求LVS到達(dá)director背捌,director將請(qǐng)求的報(bào)文的目的IP改為RIP,同時(shí)將報(bào)文的目標(biāo)端口也改為realserver的相應(yīng)端口洞斯,最后將報(bào)文發(fā)送到realserver上毡庆,realserver將數(shù)據(jù)返回給director,director再把數(shù)據(jù)發(fā)送給用戶
LVS NAT特性:
NAT模式修改的是目的ip烙如,直接走的是switch不需要修改mac地址么抗,所以VIP和RIP不需要在同一個(gè)網(wǎng)段內(nèi)
NAT的包的進(jìn)出都需要經(jīng)過LVS,所以LVS可能會(huì)成為一個(gè)系統(tǒng)的瓶頸問題
3亚铁、LVS FULLNAT模式
LVS FULLNAT報(bào)文變化
LVS FULLNAT特性:
- FULLNAT模式也不需要DIP和RIP在同一網(wǎng)段
- FULLNAT和NAT相比的話:會(huì)保證RS的回包一定可到達(dá)LVS
- FULLNAT需要更新源IP蝇刀,所以性能正常比NAT模式下降10%
4、LVS TUN原理
LVS TUN原理詳解圖
LVS TUN原理:用戶請(qǐng)求LVS到達(dá)director徘溢,director通過IP-TUN加密技術(shù)將請(qǐng)求報(bào)文的包封裝到一個(gè)新的IP包里面吞琐,目的IP為VIP(不變),然后director將報(bào)文發(fā)送到realserver甸昏,realserver基于IP-TUN解密,然后解析出來包的目的為VIP徐许,檢測(cè)網(wǎng)卡是否綁定了VIP施蜜,綁定了就處理這個(gè)包,如果在同一個(gè)網(wǎng)段雌隅,將請(qǐng)求直接返回給用戶翻默,否則通過網(wǎng)關(guān)返回給用戶;如果沒有綁定VIP就直接丟掉這個(gè)包
LVS TUN特性:
- TUNNEL必須在所有的realserver上綁定VIP
- realserver直接把包發(fā)給client
- 隧道模式運(yùn)維起來會(huì)比較難恰起,所以一般不用
5修械、四種模式的比較
是否需要VIP和realserver在同一網(wǎng)段
DR模式因?yàn)橹恍薷陌腗AC地址,需要通過ARP廣播找到realserver检盼,所以VIP和realserver必須在同一個(gè)網(wǎng)段肯污,也就是說DR模式需要先確認(rèn)這個(gè)IP是否只能掛在這個(gè)LVS下面;其他模式因?yàn)槎紩?huì)修改目的地址為realserver的IP地址吨枉,所以不需要在同一個(gè)網(wǎng)段內(nèi)是否需要在realserver上綁定VIP
realserver在收到包之后會(huì)判斷目的地址是否是自己的IP
DR模式的目的地址沒有修改蹦渣,還是VIP,所以需要在realserver上綁定VIP
IP TUN模式值是對(duì)包重新包裝了一層貌亭,realserver解析后的包的IP仍然是VIP柬唯,所以也需要在realserver上綁定VIP四種模式的性能比較
DR模式、IP TUN模式都是在包進(jìn)入的時(shí)候經(jīng)過LVS圃庭,在包返回的時(shí)候直接返回給client锄奢;所以二者的性能比NAT高
但TUN模式更加復(fù)雜失晴,所以性能不如DR
FULLNAT模式不僅更換目的IP還更換了源IP,所以性能比NAT下降10%
性能比較:DR>TUN>NAT>FULLNAT
五拘央、LVS負(fù)載均衡十種算法
- 輪叫調(diào)度 rr
均等地對(duì)待每一臺(tái)服務(wù)器涂屁,不管服務(wù)器上的實(shí)際連接數(shù)和系統(tǒng)負(fù)載
- 輪叫調(diào)度 rr
- 加權(quán)輪叫 wrr
調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)調(diào)整權(quán)值
- 加權(quán)輪叫 wrr
- 最少鏈接 lc
動(dòng)態(tài)地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到已建立的連接數(shù)最少的服務(wù)器上
如果集群真實(shí)的服務(wù)器具有相近的系統(tǒng)性能堪滨,采用該算法可以較好的實(shí)現(xiàn)負(fù)載均衡
- 最少鏈接 lc
- 加權(quán)最少鏈接 wlc
調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況胯陋,并動(dòng)態(tài)調(diào)整權(quán)值
帶權(quán)重的誰(shuí)不干活就給誰(shuí)分配,機(jī)器配置好的權(quán)重高
- 加權(quán)最少鏈接 wlc
- 基于局部性的最少連接調(diào)度算法 lblc
這個(gè)算法是請(qǐng)求數(shù)據(jù)包的目標(biāo) IP 地址的一種調(diào)度算法袱箱,該算法先根據(jù)請(qǐng)求的目標(biāo) IP 地址尋找最近的該目標(biāo) IP 地址所有使用的服務(wù)器遏乔,如果這臺(tái)服務(wù)器依然可用,并且有能力處理該請(qǐng)求发笔,調(diào)度器會(huì)盡量選擇相同的服務(wù)器盟萨,否則會(huì)繼續(xù)選擇其它可行的服務(wù)器
- 基于局部性的最少連接調(diào)度算法 lblc
- 復(fù)雜的基于局部性最少的連接算法 lblcr
記錄的不是要給目標(biāo) IP 與一臺(tái)服務(wù)器之間的連接記錄,它會(huì)維護(hù)一個(gè)目標(biāo) IP 到一組服務(wù)器之間的映射關(guān)系了讨,防止單點(diǎn)服務(wù)器負(fù)載過高捻激。
- 復(fù)雜的基于局部性最少的連接算法 lblcr
- 目標(biāo)地址散列調(diào)度算法 dh
該算法是根據(jù)目標(biāo) IP 地址通過散列函數(shù)將目標(biāo) IP 與服務(wù)器建立映射關(guān)系,出現(xiàn)服務(wù)器不可用或負(fù)載過高的情況下前计,發(fā)往該目標(biāo) IP 的請(qǐng)求會(huì)固定發(fā)給該服務(wù)器胞谭。
- 目標(biāo)地址散列調(diào)度算法 dh
- 源地址散列調(diào)度算法 sh
與目標(biāo)地址散列調(diào)度算法類似,但它是根據(jù)源地址散列算法進(jìn)行靜態(tài)分配固定的服務(wù)器資源男杈。
- 源地址散列調(diào)度算法 sh
- 最少期望延遲 sed
不考慮非活動(dòng)鏈接丈屹,誰(shuí)的權(quán)重大,優(yōu)先選擇權(quán)重大的服務(wù)器來接收請(qǐng)求伶棒,但權(quán)重大的機(jī)器會(huì)比較忙
- 最少期望延遲 sed
- 永不排隊(duì) nq
無(wú)需隊(duì)列旺垒,如果有realserver的連接數(shù)為0就直接分配過去
————————————————
版權(quán)聲明:本文為CSDN博主「皛皛」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議肤无,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明先蒋。
原文鏈接:https://blog.csdn.net/lcl_xiaowugui/article/details/81701949
- 永不排隊(duì) nq