LVS負(fù)載均衡
1.lvs 原理
LVS通過工作于內(nèi)核的ipvs模塊來實(shí)現(xiàn)功能叹誉,其主要工作于netfilter 的INPUT鏈上套利。
而用戶需要對(duì)ipvs進(jìn)行操作配置則需要使用ipvsadm這個(gè)工具前计。
ipvsadm主要用于設(shè)置lvs模型梅掠、調(diào)度方式以及指定后端主機(jī)贞瞒。
2.lvs 有哪幾種模式,工作過程原理是什么泪掀?
DR模式(直接路由模式)
DR模式是通過改寫請(qǐng)求報(bào)文的目標(biāo)MAC地址徐鹤,并將請(qǐng)求發(fā)給真實(shí)服務(wù)器垃环,而真實(shí)服務(wù)器響應(yīng)后的處理結(jié)果直接返回給客戶端用戶。
但是要求調(diào)度器Lb與真實(shí)服務(wù)器RS都有一塊網(wǎng)卡連接到同一物理網(wǎng)段上返敬,必須在同一個(gè)局域網(wǎng)環(huán)境遂庄。
簡述:lb收到用戶請(qǐng)求數(shù)據(jù)包后,將請(qǐng)求包中目標(biāo)mac地址轉(zhuǎn)換后端某個(gè)rc服務(wù)器的mac地址后劲赠,將數(shù)據(jù)包轉(zhuǎn)發(fā)出去涛目,rs收到請(qǐng)求包后,直接將響應(yīng)的內(nèi)容傳給用戶凛澎。此時(shí)要求LB和所有的rs都必須在一個(gè)物理段內(nèi)霹肝,且lb與rs群共享一個(gè)虛擬ip。
NAT模式
客戶端訪問調(diào)度器時(shí)塑煎,調(diào)度器通過網(wǎng)絡(luò)地址轉(zhuǎn)換沫换,調(diào)度器重寫請(qǐng)求報(bào)文的目標(biāo)地址,根據(jù)預(yù)設(shè)的調(diào)度算法最铁,將請(qǐng)求分派給后端的真實(shí)服務(wù)器讯赏,真實(shí)服務(wù)器的響應(yīng)報(bào)文通過調(diào)度器時(shí)垮兑,報(bào)文的原地址被重寫,再返回給用戶漱挎,完成整個(gè)負(fù)載調(diào)度過程
簡述:lb收到用戶請(qǐng)求包后系枪,lb將請(qǐng)求包中虛擬服務(wù)器的ip地址轉(zhuǎn)換為某個(gè)選定rs的地址,然后轉(zhuǎn)發(fā)給rs磕谅。rs將應(yīng)答包發(fā)給lb私爷,lb將應(yīng)答包中rs的ip轉(zhuǎn)換為虛擬服務(wù)器的ip地址。返回給用戶怜庸。
TUN隧道模式
采用net模式時(shí),由于請(qǐng)求和響應(yīng)的報(bào)文必須通過調(diào)度器地址重寫当犯,當(dāng)客戶請(qǐng)求越來越多時(shí),調(diào)度器處理能力將成為瓶頸割疾,為了解決這個(gè)問題嚎卫,調(diào)度器把請(qǐng)求的報(bào)文通過ip隧道轉(zhuǎn)發(fā)到真實(shí)的服務(wù)器,真實(shí)的服務(wù)器將響應(yīng)處理后的數(shù)據(jù)直接返回給客戶端宏榕,這樣調(diào)度器就只處理請(qǐng)求入站的報(bào)文拓诸,由于一般網(wǎng)絡(luò)服務(wù)應(yīng)答數(shù)據(jù)比 請(qǐng)求報(bào)文大很多,采用vs/TUN模式后麻昼,集群系統(tǒng)的最大吞吐量可以提高10倍奠支。
FULL NAT模式
3.最常用的模式是什么,有什么特點(diǎn)抚芦?
DR
①通過調(diào)度器上修改數(shù)據(jù)包的目的MAC地址實(shí)現(xiàn)轉(zhuǎn)發(fā)倍谜,注意,源IP地址仍然是CIP叉抡,
目的IP地址仍然是VIP
②請(qǐng)求的報(bào)文經(jīng)過調(diào)度器尔崔,而RS相應(yīng)處理處理后報(bào)文無需經(jīng)過調(diào)度器LB,因此褥民,并發(fā)訪問量大時(shí)使用效率很高
③DR模式是通過MAC地址的改寫機(jī)制實(shí)現(xiàn)轉(zhuǎn)發(fā)季春,因此所有的RS節(jié)點(diǎn)和調(diào)度器LB只能在一個(gè)局域網(wǎng)中
④需要注意RS界面的VIP的綁定(lo:VIp/32 lol:VIP/32)和ARP的一致問題
⑤抑制ARP是不讓RS(real server)相應(yīng)CS(client server)的ARP請(qǐng)求
⑥RS節(jié)點(diǎn)默認(rèn)網(wǎng)關(guān)不需要調(diào)度器的LB的DIP,而是直接IDC機(jī)房分配的上級(jí)路由器的IP(這是RS帶有外網(wǎng)的
的Ip地址的情況)消返,理論上講载弄,只要RS出網(wǎng)即可,不是必須配置外網(wǎng)的IP
工作中RS要配置外網(wǎng)的IP
⑦由于DR模式角度器僅僅進(jìn)行了MAC地址的改寫撵颊,因此調(diào)度器LB無法改變請(qǐng)求的報(bào)文的目的端口
⑧LB幾乎支持所有的UNIX,linux系統(tǒng)宇攻,但是目前不支持winows系統(tǒng),真實(shí)的節(jié)點(diǎn)可以是windows系統(tǒng)倡勇。
⑨總的來說DR模式效率很高逞刷,但是配置也比較麻煩,因此訪問量不是很大的可以用haproxy/nginx取代,
日PV 1000-2000W或者并發(fā)請(qǐng)求1W以下都是可以考慮haproxy/nginx
10.直接對(duì)外訪問的業(yè)務(wù)亲桥,例如:web服務(wù)做RS節(jié)點(diǎn),RS最好用公網(wǎng)的IP地址固耘,如果不直接對(duì)外的業(yè)務(wù)题篷,
例如:mysql,存儲(chǔ)系統(tǒng)的RS節(jié)點(diǎn)厅目,最好只用內(nèi)部的Ip地址番枚。
lvs和nginx的區(qū)別?
lvs的優(yōu)點(diǎn):
1.抗負(fù)載能力強(qiáng)损敷,工作在第四層僅做分發(fā)之用葫笼,沒有流量的產(chǎn)生,這個(gè)特點(diǎn)也決定了他在負(fù)責(zé)均衡軟件里的性能最強(qiáng)拗馒,無流量路星,同時(shí)保證了均衡器IO的性能不會(huì)受到大流量的影響。
2.工作穩(wěn)定诱桂,自身有完整的雙機(jī)熱備方案洋丐,如lvs+keepalived
3.應(yīng)用范圍比較廣,可以對(duì)所有應(yīng)用做負(fù)載均衡挥等。
4.配置性比較低友绝,這是一個(gè)缺點(diǎn)也是一個(gè)優(yōu)點(diǎn),因?yàn)闆]有可太多配置的東西肝劲,所以并不需要太多的接觸迁客,大大減少人為出錯(cuò)的幾率。
lvs的缺點(diǎn):
1.軟件本身不支持正則處理辞槐,不能做動(dòng)靜分離掷漱。
2.如果網(wǎng)站應(yīng)用比較龐大,lvs/DR+keepalived就比較復(fù)雜了催蝗,特別是后面有windows server應(yīng)用的機(jī)器切威,實(shí)施及配置還有維護(hù)過程就比較麻煩,相對(duì)而言丙号,nginx+keepalived就簡單一點(diǎn)先朦。
nginx的優(yōu)點(diǎn):
跨平臺(tái):可以linux系統(tǒng)運(yùn)行,而且windows的移植版本犬缨。
配置簡單:非常的簡單喳魏,容易上手。
非阻塞并發(fā)連接怀薛;數(shù)據(jù)復(fù)制時(shí)刺彩,磁盤io的第一階段是非阻塞,官方測(cè)試能支持5萬并發(fā)連接,實(shí)際生產(chǎn)中能跑2-3萬并發(fā)連接數(shù)创倔。發(fā)送報(bào)文是挖炬,nginx一邊介紹web服務(wù)器的返回?cái)?shù)據(jù),一邊把數(shù)據(jù)發(fā)送給客戶端瀏覽器垃僚。
自帶簡單檢查:當(dāng)有服務(wù)器宕機(jī)后李茫,新的請(qǐng)求就不會(huì)發(fā)送到這臺(tái)機(jī)器上了,而是發(fā)送到其他節(jié)點(diǎn)知押。
節(jié)省帶寬:支持gzip壓縮叹螟,開啟瀏覽器緩存。
網(wǎng)絡(luò)依賴性低台盯,理論上能ping通就可以實(shí)現(xiàn)負(fù)載均衡罢绽,而且可以有效區(qū)分內(nèi)網(wǎng),外網(wǎng)流量静盅。
內(nèi)存消耗小良价,穩(wěn)定性高:開啟10個(gè)nginx消耗內(nèi)存125m,可以很好的處理靜態(tài)資源蒿叠,內(nèi)存消耗少棚壁,宕機(jī)率很低。