一、LB--負(fù)載均衡
在負(fù)載均衡集群中需要一個(gè)分發(fā)器,我們將其稱之為Director,它位于多臺(tái)服務(wù)器的上面的中間層,根據(jù)內(nèi)部鎖定義的規(guī)則或調(diào)度方式從下面的服務(wù)器群中選擇一個(gè)以此來(lái)進(jìn)行響應(yīng)請(qǐng)求,而其分發(fā)的方式則是根據(jù)某個(gè)算法進(jìn)行的。
二、HA--高可用
高可用顧名思義就是服務(wù)的可用性比較高,即當(dāng)我們不會(huì)因?yàn)槟撑_(tái)服務(wù)器的宕機(jī),從而造成我們的服務(wù)不可用,其工作模式則是將一個(gè)具有故障的服務(wù)轉(zhuǎn)交給一個(gè)正常工作的服務(wù)器,從而達(dá)到服務(wù)不會(huì)中斷。
三、LVS:
LVS:Linux Virtual Server,可以實(shí)現(xiàn)LINUX平臺(tái)下的簡(jiǎn)單負(fù)載均衡。
一般來(lái)說(shuō),LVS采用三層結(jié)構(gòu):負(fù)載調(diào)度器、服務(wù)器池、共享存儲(chǔ)。工作在TCP/IP協(xié)議的四層,其轉(zhuǎn)發(fā)是依賴于四層協(xié)議的特征進(jìn)行轉(zhuǎn)發(fā)的,由于其轉(zhuǎn)發(fā)要依賴于協(xié)議的特征進(jìn)行轉(zhuǎn)發(fā),因此需要在內(nèi)核的TCP/IP協(xié)議棧進(jìn)行過(guò)濾篩選,可想而知,這就需要在內(nèi)核的模塊來(lái)完成,而這樣的過(guò)濾轉(zhuǎn)發(fā)規(guī)則又是由管理員進(jìn)行定義的,所以,LVS就是兩段式的架構(gòu)設(shè)計(jì),在內(nèi)核空間中工作的是"ipvs",而在用戶空間中工作的,用來(lái)定義集群服務(wù)規(guī)則的是"ipvsadm"。這就很容易想到iptables。
LVS的三種轉(zhuǎn)發(fā)模式:
LVS-NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換 Network address translation
LVS-DR:直接路由 Direct routing
LVS-TUN:IP隧道 IP tunneling
VIP:Director用來(lái)向客戶端提供服務(wù)的IP地址
RIP:集群節(jié)點(diǎn)(后臺(tái)真正提供服務(wù)的服務(wù)器)所使用的IP地址
DIP:Director用來(lái)和D/RIP 進(jìn)行聯(lián)系的地址
CIP:公網(wǎng)IP,客戶端使用的IP。
LVS-NAT:------擴(kuò)展的DNAT
1.所有的real server和Director要在同一網(wǎng)段
2.通常情況下RIP是私有地址,僅用于集群節(jié)點(diǎn)之間進(jìn)行通信
3.Director同時(shí)處理入站和出站請(qǐng)求
4.Real server的網(wǎng)關(guān)要指向DIP
5.可以實(shí)現(xiàn)端口映射(請(qǐng)求端口和提供服務(wù)的端口可以不一致)
6.Real server可以是任意的操作系統(tǒng)
7.Director很容易成為系統(tǒng)性能的瓶頸
數(shù)據(jù)包地址轉(zhuǎn)換過(guò)程:
S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP D:CIP----->Director----->S:VIP D:CIP
LVS-DR:用戶的請(qǐng)求經(jīng)過(guò)Director,然后real server直接響應(yīng)給客戶端任何real server網(wǎng)關(guān)不能執(zhí)行Drector
1.集群節(jié)點(diǎn)必須在同一個(gè)物理網(wǎng)絡(luò)中,基于MAC轉(zhuǎn)發(fā)
2.RIP可以使用公網(wǎng)地址
3.Director僅處理入站請(qǐng)求,響應(yīng)的數(shù)據(jù)包不在經(jīng)過(guò)Director
4.Real server的網(wǎng)關(guān)不能指向Director
5.不支持端口映射
6.大多數(shù)的操作系統(tǒng)都可以用于real server(隔離ARP廣播,同一塊網(wǎng)卡上支持多個(gè)IP)
7.Director的性能表現(xiàn)遠(yuǎn)遠(yuǎn)優(yōu)于NAT
數(shù)據(jù)包地址轉(zhuǎn)換過(guò)程:
S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP
LVS-TUN:用戶的請(qǐng)求經(jīng)過(guò)Director,然后real server直接響應(yīng)給客戶端
1.Real server和Director不需要在一個(gè)物理網(wǎng)段中
2.RIP一定不能是私有地址
3.Director僅處理入站請(qǐng)求
4.Real server的網(wǎng)關(guān)不能指向Director
5.不支持端口映射
6.僅有支持IP隧道的操作系統(tǒng)才能用于real server
與DR的網(wǎng)絡(luò)結(jié)構(gòu)一樣,但Director和Real Server可以在不同的網(wǎng)絡(luò)當(dāng)中,DIP----->VIP 基于隧道來(lái)傳輸,在數(shù)據(jù)包外層額外封裝了S:DIP D :RIP 的地址。
四、LVS的調(diào)度算法:
1.靜態(tài)調(diào)度算法:
RR:Round-robin:輪循
WRR:Weighted round-robin:加權(quán)輪循-----按照性能分配,為其計(jì)算出權(quán)重
DH:Destination hashing:目標(biāo)地址hashing-----將某個(gè)固定IP的請(qǐng)求轉(zhuǎn)發(fā)給一個(gè)相同的real server,用于具有緩存服務(wù)器的
SH:Source hashing:源地址hashing
2.動(dòng)態(tài)調(diào)度算法:根據(jù)分發(fā)算法和real server的負(fù)載狀態(tài)設(shè)置出調(diào)度決策,Director對(duì)每一個(gè)連接進(jìn)行追蹤監(jiān)控是否處于活動(dòng)狀態(tài)(ESTABLESHED)
LC:Least connection:最少連接-----監(jiān)控每一個(gè)real server當(dāng)前處于活動(dòng)狀態(tài)連接和非活動(dòng)狀態(tài)連接數(shù),然后計(jì)算出其當(dāng)前負(fù)載:active*256 inactive=overhead
WLC:Weighted least connection:加權(quán)最少連接------overhead/weight,考慮到real serverd的性能,默認(rèn)集群算法
SED:Shortest Expected Delay:最短的期望的延遲----不考慮非活動(dòng)狀態(tài)的連接,算法:(active 1)*256/weight=overhead
NQ:Never Queue:永不排隊(duì)-----沒(méi)有連接時(shí),直接轉(zhuǎn)發(fā)
LBLC:Locality-Based Least-Connection:基于本地的最少連接,動(dòng)態(tài)DH算法
LBLCR:Locality-Based Least-Connection with replication Scheduling:帶復(fù)制的基于本地最少連接,緩存是共享的
五、ipvsadm
ipvsadm:1.定義集群服務(wù),指定VIP,協(xié)議,端口、 2.向集群服務(wù)添加RS
用法:
ipvsadm -A|E -t|u VIP:PORT [-s scheduler] [-p [timeout]] [-M netmask]]
-A:定義新的集群服務(wù)
-E:修改已有的集群服務(wù)
-D:刪除某集群服務(wù)
-s:指定調(diào)度算法,可選項(xiàng):rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq ,默認(rèn)的調(diào)度算法是: wlc.
-C:清空
-R:等同ipvsadm-restore 恢復(fù)虛擬服務(wù)器規(guī)則
-S:等同ipvsadm-save 保存虛擬服務(wù)器規(guī)則,輸出為-R 選項(xiàng)可讀的格式
-L|l:列出當(dāng)前已定義的集群服務(wù)和real server
--stats:顯示統(tǒng)計(jì)信息 與-L同時(shí)使用
--rate:顯示入站響應(yīng)速率 與-L同時(shí)使用
-c:顯示LVS 目前的連接 與-L同時(shí)使用
-n:不進(jìn)行反向解析 與-L同時(shí)使用
-Z:清空計(jì)數(shù)器
-t --tcp-service service-address 說(shuō)明虛擬服務(wù)器提供的是tcp 的服務(wù)
-u --udp-service service-address 說(shuō)明虛擬服務(wù)器提供的是udp 的服務(wù)
-f --fwmark-service fwmark 說(shuō)明是經(jīng)過(guò)iptables 標(biāo)記過(guò)的服務(wù)類型。
-p --persistent [timeout] 持久穩(wěn)固的服務(wù)。這個(gè)選項(xiàng)的意思是來(lái)自同一個(gè)客戶的多次請(qǐng)求,將被同一臺(tái)真實(shí)的服務(wù)器處理。timeout 的默認(rèn)值為300 秒。
ipvsadm -a|e -t|u VIP:PORY -r RIP [-g|i|m] [-w weight]
-a:添加real server
-e:修改real server
-g:指定LVS 的工作模式為直接路由模式(也是LVS 默認(rèn)的模式)
-i:指定LVS 的工作模式為隧道模式
-m:指定LVS 的工作模式為NAT 模式
-w:真實(shí)服務(wù)器的權(quán)值
ipvsadm -d -t|u service-address -r server-address 刪除一條虛擬服務(wù)器記錄中的某條真實(shí)服務(wù)器記錄
聯(lián)系客服