LVS系列教程04-IP負(fù)載均衡類型
目錄

前言
LVS(Linux Virtual Server)是由章文嵩博士發(fā)起的一個(gè)開源項(xiàng)目,稱為L(zhǎng)inux虛擬服務(wù)器?,F(xiàn)在已經(jīng)是Linux內(nèi)核標(biāo)準(zhǔn)的一部分,官方網(wǎng)站是http://www.linuxvirtualserver.org。LVS是一個(gè)實(shí)現(xiàn)負(fù)載均衡集群的開源軟件項(xiàng)目,架構(gòu)從邏輯上可分為調(diào)度層、服務(wù)器集群層和共享存儲(chǔ)。通過LVS達(dá)到的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能高可用的Linux服務(wù)器集群,它具有良好的可靠性、可擴(kuò)展性和可操作性。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的性能。

一、負(fù)載均衡原理
系統(tǒng)運(yùn)維:可用 –> 標(biāo)準(zhǔn)化 –> 自動(dòng)化
1.1 工作原理
下圖所示就是LVS的基本工作原理:

(1) 當(dāng)用戶向負(fù)載均衡調(diào)度器( Director Server)發(fā)起請(qǐng)求,調(diào)度器將請(qǐng)求發(fā)往至內(nèi)核空間。(2) PREROUTING鏈?zhǔn)紫葧?huì)接收到用戶請(qǐng)求,判斷目標(biāo)IP確定是本機(jī)IP,將數(shù)據(jù)包發(fā)往INPUT鏈。(3) IPVS是工作在INPUT鏈上的,當(dāng)用戶請(qǐng)求到達(dá)INPUT時(shí),IPVS會(huì)將用戶請(qǐng)求和自己已定義好的集群服務(wù)進(jìn)行比對(duì),如果用戶請(qǐng)求的就是定義的集群服務(wù),那么此時(shí)IPVS會(huì)強(qiáng)行修改數(shù)據(jù)包里的目標(biāo)IP地址及端口,并將新的數(shù)據(jù)包發(fā)往POSTROUTING鏈。(4) POSTROUTING鏈接收數(shù)據(jù)包后發(fā)現(xiàn)目標(biāo)IP地址剛好是自己的后端服務(wù)器,那么此時(shí)通過選路,將數(shù)據(jù)包最終發(fā)送給后端的服務(wù)器。
1.2 工作特點(diǎn)
LVS是工作在TCP/IP的四層模型上,通過修改Netfilter表中的INPUT鏈來實(shí)現(xiàn)的(所有不是服務(wù)而是規(guī)則),根據(jù)客戶端請(qǐng)求報(bào)文的目標(biāo) IP 和 PORT(主要是端口)將其轉(zhuǎn)發(fā)至后端主機(jī)集群中的某一臺(tái)主機(jī)(根據(jù)挑選算法)。
原理
當(dāng)用戶請(qǐng)求LVS負(fù)載均衡調(diào)度器的IP地址,在經(jīng)過PREROUTING鏈到達(dá)INPUT鏈,如果匹配規(guī)則匹配的話,在到達(dá)本機(jī)內(nèi)核之后強(qiáng)行將其扔到 POSTROUTING鏈
規(guī)則
服務(wù)器端口號(hào):集群基于那個(gè)
TCP或UDP端口工作服務(wù)器 IP 地址:集群中那些機(jī)器可以響應(yīng)用戶請(qǐng)求
架構(gòu)
負(fù)載均衡調(diào)度器(Director Server)
服務(wù)器集群(Real Server)
共享存儲(chǔ)(Shared Storage)
術(shù)語
DS:前端負(fù)載均衡器節(jié)點(diǎn)RS:后端真實(shí)的工作服務(wù)器CIP:訪問客戶端的 IP 地址VIP:向外部直接面向用戶請(qǐng)求,作為用戶請(qǐng)求的目標(biāo)的 IP 地址DIP:主要用于和內(nèi)部主機(jī)通訊的 IP 地址RIP:后端服務(wù)器的 IP 地址
工具
ipvs:工作在內(nèi)核Netfilter表中的INPUT鏈上,且支持TCP、UDP、AH、EST等多種協(xié)議ipvsadm:基于ipvs的基礎(chǔ)上編寫的用戶工具,工作在用戶空間,用于LVS的管理集群服務(wù)
[root@localhost ~]# grep -i -A 10 'IPVS' /boot/config-2.6.32-573.26.1.el6.x86_64
# IPVS傳輸協(xié)議支持負(fù)載均衡
CONFIG_IP_VS_PROTO_TCP=y # 基于TCP做負(fù)載均衡
CONFIG_IP_VS_PROTO_UDP=y # 基于UDP做負(fù)載均衡
CONFIG_IP_VS_PROTO_AH_ESP=y # 認(rèn)證頭和有效載荷協(xié)議
CONFIG_IP_VS_PROTO_ESP=y # 有效載荷協(xié)議
CONFIG_IP_VS_PROTO_AH=y # 認(rèn)證頭協(xié)議
CONFIG_IP_VS_PROTO_SCTP=y
# IPVS調(diào)度器
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
......
二、負(fù)載均衡類型
CDN(分區(qū)域緩存) => LB(LVS/Nginx) => HA(LVS/Haproxy) => Cache(Nginx/Vanish/Mechcache) => HTTP(Nginx/Apache) => Database(master/worker)
LVS-NAT:多目標(biāo)的 DNAT LVS-DR:直接路由實(shí)現(xiàn) LVS-TUN:采用 IP 隧道的方式 LVS-FULLNAT:全 NAT 機(jī)制,非標(biāo)準(zhǔn)類型,擁有新特性,淘寶二次研發(fā)
企業(yè)中最常用的是 DR 實(shí)現(xiàn)方式,而 NAT 配置上比較簡(jiǎn)單和方便
2.1 LVS/NAT
重點(diǎn):對(duì)請(qǐng)求報(bào)文進(jìn)行 DNAT 目標(biāo)地址轉(zhuǎn)換到挑選出的 RS 地址
NAT 模型的實(shí)現(xiàn)原理


(1) 當(dāng)用戶請(qǐng)求到達(dá)
Director Server的VIP上,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。此時(shí)報(bào)文的源 IP為CIP,目標(biāo) IP為VIP 。(2)
PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈。(3) IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,修改數(shù)據(jù)包的目標(biāo)IP地址為后端服務(wù)器RIP,然后將數(shù)據(jù)包發(fā)至
POSTROUTING鏈。此時(shí)報(bào)文的源 IP為CIP,目標(biāo) IP為RIP 。(4)
POSTROUTING鏈通過選路,將數(shù)據(jù)包發(fā)送給Real Server。(5)
Real Server比對(duì)發(fā)現(xiàn)目標(biāo)為自己的IP,開始構(gòu)建響應(yīng)報(bào)文發(fā)回給Director Server。此時(shí)報(bào)文的源 IP為RIP,目標(biāo) IP為CIP 。(6)
Director Server在響應(yīng)客戶端前,此時(shí)會(huì)將源IP地址修改為自己的VIP地址,然后響應(yīng)給客戶端。此時(shí)報(bào)文的源 IP為VIP,目標(biāo) IP為CIP。
NAT 模型的的特性
特點(diǎn)
支持端口映射
RS可以使用任意操作系統(tǒng),包括Windows系統(tǒng)
缺陷
請(qǐng)求和響應(yīng)報(bào)文都需要經(jīng)過 DS,高負(fù)載場(chǎng)景中,DS易成為性能瓶頸
配置
負(fù)載均衡調(diào)度器上維持一個(gè) nat追蹤表,用于轉(zhuǎn)發(fā)客戶端的請(qǐng)求報(bào)文給后端真實(shí)服務(wù)器響應(yīng)負(fù)載均衡調(diào)度器通過修改請(qǐng)求報(bào)文的目標(biāo)IP地址(同時(shí)可能會(huì)修改目標(biāo)端口),使用多目標(biāo)的DNAT實(shí)現(xiàn)轉(zhuǎn)發(fā) DS配置兩塊網(wǎng)卡,分別為公網(wǎng)地址的VIP和私網(wǎng)地址的DIP,并需要使用DNAT和SNAT技術(shù) RS和DIP最好使用同網(wǎng)段內(nèi)的私網(wǎng)地址,而且RS的網(wǎng)關(guān)需要指向DIP,不然響應(yīng)報(bào)文不會(huì)經(jīng)過VIP響應(yīng)用戶
2.2 LVS/DR
重點(diǎn):將請(qǐng)求報(bào)文的目標(biāo) MAC 地址設(shè)定為挑選出的 RS 的 MAC 地址
DR 方式的實(shí)現(xiàn)原理


(1) 當(dāng)用戶請(qǐng)求到達(dá)
Director Server的VIP上,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。此時(shí)報(bào)文的源 IP為CIP,目標(biāo) IP為VIP。(2)
PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈。(3)
IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,將請(qǐng)求報(bào)文中的源 MAC 地址修改為 DIP 的 MAC 地址,將目標(biāo)MAC地址修改RIP的MAC地址,然后將數(shù)據(jù)包發(fā)至POSTROUTING鏈。此時(shí)的源IP和目的IP均未修改,僅修改了源MAC地址為DIP的MAC地址,目標(biāo)MAC地址為RIP的MAC地址。(4) 由于
DS和RS在同一個(gè)網(wǎng)絡(luò)中,所以是通過二層來傳輸。POSTROUTING鏈檢查目標(biāo)MAC地址為RIP的MAC地址,那么此時(shí)數(shù)據(jù)包將會(huì)發(fā)至Real Server。(5)
RS發(fā)現(xiàn)請(qǐng)求報(bào)文的MAC地址是自己的MAC地址,就接收此報(bào)文。處理完成之后,將響應(yīng)報(bào)文通過lo接口傳送給eth0網(wǎng)卡然后向外發(fā)出。此時(shí)的源 IP地址為VIP,目標(biāo) IP為CIP。(6) 響應(yīng)報(bào)文最終送達(dá)至客戶端。
DR 模型的的特性
特點(diǎn)
不支持地址轉(zhuǎn)換,也不支持端口映射 RS可以是大多數(shù)常見的操作系統(tǒng),但不支持Windows系統(tǒng) 請(qǐng)求報(bào)文經(jīng)由DS調(diào)度,但響應(yīng)報(bào)文一定不能經(jīng)由DS對(duì)用戶進(jìn)行響應(yīng) 客戶請(qǐng)求傳遞給交換機(jī),交換機(jī)進(jìn)行ARP地址廣播,因?yàn)榻粨Q機(jī)只看Mac地址
缺陷
RS和DS必須在同一機(jī)房中
配置
DS配置網(wǎng)卡網(wǎng)卡,分別為eth0的DIP和eth0:0的VIP RSs集群的每個(gè)機(jī)器也都配置兩塊網(wǎng)卡,分別為eth0的RIP和lo:0的VIP RS的RIP可以使用私有地址或公網(wǎng)地址,如果使用公網(wǎng)地址通過互聯(lián)網(wǎng)對(duì)RIP進(jìn)行直接訪問 RS的VIP和DIP與DS的VIP和RIP必須在同一個(gè)物理網(wǎng)絡(luò)中,VIP必須使用公網(wǎng)地址,DIP、RIP可以使用公網(wǎng)或私網(wǎng)地址;建議DIP、RIP在同一個(gè)網(wǎng)段,方便通信。 因?yàn)槲覀儾辉试SDS響應(yīng)用戶請(qǐng)求,所以RS的網(wǎng)關(guān)絕不允許指向DS的DIP上
攻克的難題
難題簡(jiǎn)述
保證前端路由將目標(biāo)地址為 VIP 的報(bào)文統(tǒng)統(tǒng)發(fā)給DS,而不是也配置了VIP的RS
【方式一】靜態(tài)綁定
在前端路由器做靜態(tài)地址路由綁定,將對(duì)于VIP的地址僅路由到DS上 如果DS服務(wù)器掛了將無法使用,需要做單點(diǎn)的高可用,如HB 有可能路由是運(yùn)營(yíng)商提供的,所以用戶未必有路由操作權(quán)限,所以這個(gè)方法未必實(shí)用
【方式二】arptables
通過arptables工具修改ARP規(guī)則,禁止RS對(duì)VIP的請(qǐng)求做請(qǐng)求,不好配置
【方式三】修改內(nèi)核
內(nèi)核的參數(shù):arp_ignore和arp_announce 因?yàn)樾枰薷膬?nèi)核參數(shù),RS主機(jī)必須為L(zhǎng)inux主機(jī) 修改RS主機(jī)上內(nèi)核參數(shù)將VIP配置在lo接口的別名上,并限制其不能響應(yīng)對(duì)VIP地址解析請(qǐng)求
2.3 LVS/TUN
重點(diǎn):在原有的 IP 報(bào)文外再次封裝多一層 IP 首部,內(nèi)部 IP 首部(源地址為CIP、目標(biāo) IIP 為VIP),外層 IP 首部(源地址為DIP、目標(biāo) IP 為RIP)
TUN 模型的實(shí)現(xiàn)原理


(1) 當(dāng)用戶請(qǐng)求到達(dá)
Director Server的VIP上,此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。此時(shí)報(bào)文的源 IP為CIP,目標(biāo) IP為VIP。(2)
PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈。(3)
IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,在請(qǐng)求報(bào)文的首部再次封裝一層IP報(bào)文,然后發(fā)至POSTROUTING鏈。此時(shí)源 IP為DIP,目標(biāo) IP為RIP。(4)
POSTROUTING鏈根據(jù)最新封裝的IP報(bào)文,將數(shù)據(jù)包發(fā)至RS(因?yàn)樵谕鈱臃庋b多了一層 IP 首部,所以可以理解為此時(shí)通過隧道傳輸)。此時(shí)源 IP為DIP,目標(biāo) IP為RIP。(5)
RS接收到報(bào)文后發(fā)現(xiàn)是自己的IP地址,就將報(bào)文接收下來,拆除掉最外層的IP后,會(huì)發(fā)現(xiàn)里面還有一層IP首部,而且目標(biāo)是自己的lo接口VIP,那么此時(shí)RS開始處理此請(qǐng)求,處理完成之后,通過lo接口送給eth0網(wǎng)卡,然后向外傳遞。此時(shí)的源 IP地址為VIP,目標(biāo) IP為CIP。(6) 響應(yīng)報(bào)文最終送達(dá)至客戶端。
TUN 模型的的特性
特點(diǎn)
請(qǐng)求報(bào)文必須經(jīng)由 DS調(diào)度,但響應(yīng)報(bào)文必須不能經(jīng)由DS傳送RS的集群服務(wù)可以位于不同的區(qū)域,如一個(gè)在北京另一個(gè)在上海
缺陷
不支持端口映射 RS的操作系統(tǒng)必須支持隧道功能對(duì)報(bào)文的再次封裝,可能導(dǎo)致超過最大的傳輸單元而再次分片
配置
VIP、DIP、RIP全為公網(wǎng) IP 地 RS的網(wǎng)關(guān)的不能指向DIP,因?yàn)轫憫?yīng)報(bào)文不需要經(jīng)過DS傳送給客戶端
攻克的難題
【難題】對(duì)請(qǐng)求報(bào)文的再次封裝,可能導(dǎo)致超過MTU的最大值(一般為1500),導(dǎo)致再次分片 【方式一】設(shè)備需要支持超過MTU的請(qǐng)求傳輸報(bào)文 【方式二】在DS限制請(qǐng)求報(bào)文長(zhǎng)度為1400左右
2.4 LVS/FULLNAT
重點(diǎn):DS 通過同時(shí)修改請(qǐng)求報(bào)文的目標(biāo)地址和源地址進(jìn)行轉(zhuǎn)發(fā)
FULLNAT 模型的實(shí)現(xiàn)原理
淘寶 FULLNAT 項(xiàng)目地址
https://github.com/alibaba/LVS
FULLNAT 是淘寶吳佳明(普空)在
NAT基礎(chǔ)上搞得,很大簡(jiǎn)化了LVS的配置和部署百度的LVS叫
BVS(Baidu Virtual Server),在LVS基礎(chǔ)上增加了L3 Though和SYN Porxy,類似FULLNATCentOS不支持FULLNAT,為了方便的實(shí)現(xiàn)多機(jī)房部署(NAT和DR不支持,TUN支持但比較復(fù)雜),需要在淘寶中找到內(nèi)核編譯安裝內(nèi)核


(1) 客戶端發(fā)送請(qǐng)求報(bào)文給Director Server的物理網(wǎng)絡(luò)接口VIP此時(shí)請(qǐng)求的數(shù)據(jù)報(bào)文會(huì)先到內(nèi)核空間的PREROUTING鏈。此時(shí)報(bào)文的源 IP為CIP,目標(biāo) IP為VIP。 (2) PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈。 (3) IPVS比對(duì)數(shù)據(jù)包請(qǐng)求的服務(wù)是否為集群服務(wù),若是,修改數(shù)據(jù)包的源IP地址為DIP,目標(biāo)IP地址為后端服務(wù)器RIP,然后將數(shù)據(jù)包發(fā)至POSTROUTING鏈。此時(shí)報(bào)文的源 IP為DIP,目標(biāo) IP為RIP 。 (4) POSTROUTING鏈通過選路,將數(shù)據(jù)包發(fā)送給Real Server。 (5) Real Server比對(duì)發(fā)現(xiàn)目標(biāo)為自己的IP,開始構(gòu)建響應(yīng)報(bào)文發(fā)回給Director Server。此時(shí)報(bào)文的源 IP為RIP,目標(biāo) IP為DIP 。 (6) Director Server在響應(yīng)客戶端前,此時(shí)會(huì)將源IP地址修改為自己的VIP地址,目標(biāo)IP地址修改為客戶端的地址CIP,然后響應(yīng)給客戶端。此時(shí)報(bào)文的源 IP為VIP,目標(biāo) IP為CIP。
FULLNAT 模型的特性
特點(diǎn)
支持端口映射機(jī)制 跨 vlan:可以在多個(gè)地方跨域部署 connection 復(fù)用:使LVS能有類似f5的連接復(fù)用的功能 syn_proxy:可以在keepalived配置文件中針對(duì)每一個(gè)服務(wù)分別設(shè)置打開或關(guān)閉
配置
VIP是公網(wǎng)地址,RIP和DIP是私網(wǎng)地址,二者無須在同一網(wǎng)絡(luò)中 RS接收到的請(qǐng)求報(bào)文的源地址為DIP,因此要響應(yīng)給DIP,也不需將RS的網(wǎng)關(guān)指向DS,能到達(dá)即可 請(qǐng)求報(bào)文和響應(yīng)報(bào)文都必須經(jīng)由DS,有必要的話,需要做HB高可用 RS 可以使用任意操作系統(tǒng),包括Windows系統(tǒng)
攻克的難題
【難題】RS無法獲得用戶的真實(shí)IP地址 【解決】淘寶通過叫TOA的方式解決,主要原理是將客戶端IP地址放到了TCP Option里面帶給了后端RS服務(wù)器,當(dāng)RS收到后保存在socket的結(jié)構(gòu)體里并通過toa內(nèi)核模塊hook的getname函數(shù),這樣當(dāng)用戶調(diào)用getname獲取遠(yuǎn)端地址時(shí),返回的是保存在socket的TCP Option的IP地址。百度的BVS是通過叫ttm模塊實(shí)現(xiàn)的,其實(shí)現(xiàn)方式跟toa基本一樣,只是沒有開源。

三、實(shí)現(xiàn) session 保存
我們都知道HTTP服務(wù)是一種無狀態(tài)的,那么用戶請(qǐng)求服務(wù)器時(shí),怎么標(biāo)記用戶呢?那么這就要使用到session保存的技術(shù)了,通過session服務(wù)器可以知道這個(gè)用戶對(duì)應(yīng)哪個(gè)資源,實(shí)現(xiàn)精準(zhǔn)的定位。以下就是session保持的常見方法:
session 綁定
source ip hash:SNAT多用戶同時(shí)使用一個(gè)公網(wǎng)IP地址;lvs、nginx、haproxy;IP級(jí)別 cookie hash:自實(shí)現(xiàn)的;lvs不行,nginx、haproxy能夠使用;進(jìn)程級(jí)別
session 集群
需要進(jìn)行大量的session同步工作,斷電就尷尬了
session 服務(wù)器
使session持久化,即使關(guān)機(jī)了也可以使用,存儲(chǔ)在redis的鍵值數(shù)據(jù)庫(kù) 網(wǎng)絡(luò)通信肯定有延遲 單點(diǎn)故障,瓶頸 => LB => HB
四、十種調(diào)度算法
靜態(tài)方法:僅根據(jù)算法本身進(jìn)行調(diào)度;起點(diǎn)公平
RR:round robin,輪調(diào)
輪詢算法假設(shè)所有的服務(wù)器處理請(qǐng)求的能力都是一樣的,調(diào)度器會(huì)將所有的請(qǐng)求平均分配給每個(gè)RS服務(wù)器,非常均衡地分發(fā)下去。
WRR:weighted rr,加權(quán)輪調(diào)
這種算法會(huì)考慮每臺(tái)服務(wù)器的性能,并給每臺(tái)服務(wù)器添加要給權(quán)值權(quán)重的取值范圍0 – 100。權(quán)值越高的服務(wù)器,處理的請(qǐng)求越多。
SH: source hash,源地址哈希
實(shí)現(xiàn)session保持的機(jī)制;將來自于同一個(gè) IP 的請(qǐng)求始終調(diào)度至同一RS LVS內(nèi)部會(huì)維持一個(gè)哈希表,記錄源地址、調(diào)度的RealServer和計(jì)時(shí)器,辭舊迎新防止打滿
DH:destination hash,目標(biāo)地址哈希
將對(duì)同一個(gè)目標(biāo)的請(qǐng)求始終發(fā)往同一個(gè)RS 內(nèi)網(wǎng)中用戶通過同一個(gè)防火墻出去的會(huì)從同一個(gè)防火墻回來,保持用戶追蹤
動(dòng)態(tài)方法:根據(jù)算法及各RS的當(dāng)前負(fù)載狀態(tài)進(jìn)行調(diào)度,Overhead小者獲勝;起點(diǎn)公平,結(jié)果公平
LC:Least Connection,最少連接數(shù)
Overhead=Active(活動(dòng)鏈接數(shù))*256+Inactive(非活動(dòng)鏈接數(shù)) 最少連接算法會(huì)根據(jù)后端RS的連接數(shù)來決定把請(qǐng)求的分配,比如RS1連接數(shù)比RS2連接數(shù)少,那么請(qǐng)求就優(yōu)先發(fā)給 RS1這臺(tái)服務(wù)器。
WLC:Weighted LC,加權(quán)最少連接數(shù)
Overhead=(Active*256+Inactive)/weight 這種算法會(huì)考慮每臺(tái)服務(wù)器的性能,并給每臺(tái)服務(wù)器添加要給權(quán)值權(quán)重的取值范圍0 – 100。權(quán)值越高的服務(wù)器,處理的請(qǐng)求越多。
SED:Shortest Expection Delay,最短期望延遲
Overhead=(Active+1)*256/weight
NQ:Never Queue,永不排隊(duì)
SED算法的改進(jìn),類似于sed+sed的結(jié)合
LBLC:Locality-Based LC,基于本地最少連接調(diào)度算法,即動(dòng)態(tài)的DH算法
正向代理情形下的cache server調(diào)度;基于本地最少連接調(diào)度算法;運(yùn)營(yíng)商常使用 這個(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ù)器。
LBLCR:Locality-Based Least-Connection with Replication,帶復(fù)制功能的LBLC算法
記錄的不是要給目標(biāo)IP與一臺(tái)服務(wù)器之間的連接記錄,它會(huì)維護(hù)一個(gè)目標(biāo)IP到一組服務(wù)器之間的映射關(guān)系,防止單點(diǎn)服務(wù)器負(fù)載過高。
五、負(fù)載均衡比較
LVS
優(yōu)勢(shì)
抗負(fù)載能力強(qiáng):工作方式的邏輯是非常之簡(jiǎn)單 工作穩(wěn)定:因?yàn)楣ぷ髟趦?nèi)核中,所有十分穩(wěn)定 無流量:工作在四層僅做請(qǐng)求分發(fā)之用,沒有流量 支持所有應(yīng)用:工作在四層,所以可以對(duì)幾乎所有應(yīng)用做負(fù)載均衡,包括http、數(shù)據(jù)庫(kù)、聊天室等等 劣勢(shì) 配置性低:需要通過命令工具進(jìn)行配置,有一定的學(xué)習(xí)成本
Nginx
優(yōu)勢(shì)
針對(duì)HTTP應(yīng)用本身來做分流策略:比如針對(duì)域名、目錄結(jié)構(gòu)等 網(wǎng)絡(luò)的依賴較?。豪碚撋现灰猵ing得通,網(wǎng)頁訪問正常 安裝和配置比較簡(jiǎn)單:通過配置文件進(jìn)行配置,且配置文件書寫相對(duì)簡(jiǎn)單 承受很高負(fù)載且穩(wěn)定:處理所有流量所以受限于機(jī)器 IO 和配置 有故障監(jiān)測(cè)機(jī)制:比如根據(jù)服務(wù)器處理網(wǎng)頁返回的狀態(tài)碼、超時(shí)等等 支持對(duì)請(qǐng)求的異步處理:可以幫助節(jié)點(diǎn)服務(wù)器減輕負(fù)載
劣勢(shì)
僅支持http和email
文章作者: Escape
鏈接: https://escapelife.github.io/posts/a4e55523.html
往期推薦
關(guān)注「開源Linux」加星標(biāo),提升IT技能

