1.四種工作模式:
- dr:直接路由模式
- tun:隧道模式
- nat:路由轉(zhuǎn)發(fā)模式
- fullnat模式
性能比較:DR>TUN>NAT>FULLNAT
2.LVS相關術(shù)語
- DS:Director Server。指的是前端負載均衡器節(jié)點
- RS:Real Server臼闻。后端真實的工作服務器
- VIP:向外部直接面向用戶請求燥透,作為用戶請求的目標的IP地址
- DIP:Director Server IP柑肴,主要用于和內(nèi)部主機通訊的IP地址
- RIP:Real Server IP啼染,后端服務器的IP地址
- CIP:Client IP叔壤,訪問客戶端的IP地址
3.詳細介紹:
(1)DR:直接路由模式
- 請求由 LVS 接受区端,由真實提供服務的服務器(RealServer, RS)直接返回給用戶榴鼎,返回的時候不經(jīng)過 LVS伯诬。
DR 模式下需要 LVS 和綁定同一個 VIP(RS 通過將 VIP 綁定在 loopback 實現(xiàn))。
- 一個請求過來時巫财,LVS 只需要將網(wǎng)絡幀的 MAC 地址修改為某一臺 RS 的 MAC盗似,該包就會被轉(zhuǎn)發(fā)到相應的 RS 處理,注意此時的源 IP 和目標 IP 都沒變平项,LVS 只是做了一下移花接木赫舒。
- RS 收到 LVS 轉(zhuǎn)發(fā)來的包,鏈路層發(fā)現(xiàn) MAC 是自己的闽瓢,到上面的網(wǎng)絡層接癌,發(fā)現(xiàn) IP 也是自己的,于是這個包被合法地接受扣讼,RS 感知不到前面有 LVS 的存在缺猛。
- 而當 RS 返回響應時,只要直接向源 IP(即用戶的 IP)返回即可椭符,不再經(jīng)過 LVS荔燎。
- DR 模式是性能最好的一種模式。
(2)TUN模式:隧道模式
- 客戶端將訪問vip報文發(fā)送給LVS服務器销钝;
- LVS服務器將請求報文重新封裝有咨,發(fā)送給后端真實服務器;
- 后端真實服務器將請求報文解封蒸健,在確認自身有vip之后進行請求處理摔吏;
- 后端真實服務器在處理完數(shù)據(jù)請求后,直接響應客戶端纵装。
注意:
- TUNNEL必須在所有的realserver上綁定VIP
- realserver直接把包發(fā)給client
- 隧道模式運維起來會比較難,所以一般不用
- RIP,DIP,VIP全得是公網(wǎng)地址
(3)NAT 模式:路由轉(zhuǎn)發(fā)模式
- NAT(Network Address Translation)是一種外網(wǎng)和內(nèi)網(wǎng)地址映射的技術(shù)瘫俊。
- 多目標的DNAT(iptables)轉(zhuǎn)換;它通過修改請求報文的目標IP地址(同時可能會修改目標端口)挑選出某Real Server的RIP地址實現(xiàn)轉(zhuǎn)發(fā)饿肺; 在LVS負載均衡調(diào)度器上請求先發(fā)送給PREROUTING-->INPUT立美,然后經(jīng)由監(jiān)聽在INPUT上的LVS程序強制將請求轉(zhuǎn)發(fā)給 POSTROUTING
- NAT 模式下,網(wǎng)絡報的進出都要經(jīng)過 LVS 的處理挽唉。LVS 需要作為 RS 的網(wǎng)關滤祖。
當包到達 LVS 時,LVS 做目標地址轉(zhuǎn)換(DNAT)瓶籽,將目標 IP 改為 RS 的 IP匠童。RS 接收到包以后,仿佛是客戶端直接發(fā)給它的一樣塑顺。
RS 處理完汤求,返回響應時,源 IP 是 RS IP严拒,目標 IP 是客戶端的 IP扬绪。
這時 RS 的包通過網(wǎng)關(LVS)中轉(zhuǎn),LVS 會做源地址轉(zhuǎn)換(SNAT)裤唠,將包的源地址改為 VIP挤牛,這樣,這個包對客戶端看起來就仿佛是 LVS 直接返回給它的种蘸∧垢埃客戶端無法感知到后端 RS 的存在。
注意:
- RS的RIP和Director的DIP必須在同一IP網(wǎng)絡
- RS和DIP應該使用私網(wǎng)地址航瞭,且RD的網(wǎng)關要指向DIP
- 真實服務器的網(wǎng)關必須設置為LVS的ip地址诫硕。
(4)FULLNAT模式:
- 無論是 DR 還是 NAT 模式,不可避免的都有一個問題:LVS 和 RS 必須在同一個 VLAN 下沧奴,否則 LVS 無法作為 RS 的網(wǎng)關痘括。
- Full-NAT 相比 NAT 的主要改進是,在 SNAT/DNAT 的基礎上滔吠,加上另一種轉(zhuǎn)換纲菌,轉(zhuǎn)換過程如下:
- 在包從 LVS 轉(zhuǎn)到 RS 的過程中,源地址從客戶端 IP 被替換成了 LVS 的內(nèi)網(wǎng) IP疮绷。
- 內(nèi)網(wǎng) IP 之間可以通過多個交換機跨 VLAN 通信翰舌。
- 當 RS 處理完接受到的包,返回時冬骚,會將這個包返回給 LVS 的內(nèi)網(wǎng) IP椅贱,這一步也不受限于 VLAN。
- LVS 收到包后只冻,在 NAT 模式修改源地址的基礎上庇麦,再把 RS 發(fā)來的包中的目標地址從 LVS 內(nèi)網(wǎng) IP 改為客戶端的 IP。
Full-NAT 主要的思想是把網(wǎng)關和其下機器的通信喜德,改為了普通的網(wǎng)絡通信山橄,從而解決了跨 VLAN 的問題。采用這種方式舍悯,LVS 和 RS 的部署在 VLAN 上將不再有任何限制航棱,大大提高了運維部署的便利性睡雇。
fullnat模式和nat模式相似,但是與nat不同的是nat模式只做了兩次地址轉(zhuǎn)換饮醇,fullnat模式卻做了四次
4.LVS負載均衡十種算法
(1). 輪循調(diào)度 rr
均等地對待每一臺服務器它抱,不管服務器上的實際連接數(shù)和系統(tǒng)負載
(2). 加權(quán)輪調(diào) wrr
調(diào)度器可以自動問詢真實服務器的負載情況,并動態(tài)調(diào)整權(quán)值
(3). 最少鏈接 lc
動態(tài)地將網(wǎng)絡請求調(diào)度到已建立的連接數(shù)最少的服務器上
如果集群真實的服務器具有相近的系統(tǒng)性能朴艰,采用該算法可以較好的實現(xiàn)負載均衡
(4). 加權(quán)最少鏈接 wlc
調(diào)度器可以自動問詢真實服務器的負載情況观蓄,并動態(tài)調(diào)整權(quán)值
帶權(quán)重的誰不干活就給誰分配,機器配置好的權(quán)重高
(5). 基于局部性的最少連接調(diào)度算法 lblc
這個算法是請求數(shù)據(jù)包的目標 IP 地址的一種調(diào)度算法呵晚,該算法先根據(jù)請求的目標 IP 地址尋找最近的該目標 IP 地址所有使用的服務器蜘腌,如果這臺服務器依然可用,并且有能力處理該請求饵隙,調(diào)度器會盡量選擇相同的服務器撮珠,否則會繼續(xù)選擇其它可行的服務器
(6). 復雜的基于局部性最少的連接算法 lblcr
記錄的不是要給目標 IP 與一臺服務器之間的連接記錄,它會維護一個目標 IP 到一組服務器之間的映射關系金矛,防止單點服務器負載過高芯急。
(7). 目標地址散列調(diào)度算法 dh
該算法是根據(jù)目標 IP 地址通過散列函數(shù)將目標 IP 與服務器建立映射關系,出現(xiàn)服務器不可用或負載過高的情況下驶俊,發(fā)往該目標 IP 的請求會固定發(fā)給該服務器娶耍。
(8). 源地址散列調(diào)度算法 sh
與目標地址散列調(diào)度算法類似,但它是根據(jù)源地址散列算法進行靜態(tài)分配固定的服務器資源饼酿。
(9). 最少期望延遲 sed
不考慮非活動鏈接榕酒,誰的權(quán)重大,優(yōu)先選擇權(quán)重大的服務器來接收請求故俐,但權(quán)重大的機器會比較忙
(10). 永不排隊 nq
無需隊列想鹰,如果有realserver的連接數(shù)為0就直接分配過去