久草福利资源在线观看-91情侣在线视频-久久久免费看-久久麻豆视频-狠狠干超碰-99久久精品国产一区二区成人-狠狠操中文字幕-日韩精品一区二区三区中文不卡-黄色大片在线-亚洲男女av-热久久国产精品-在线观看中文字幕av-国产精品资源在线-一个色在线视频-浪荡奴双性跪着伺候-无码日韩精品一区二区免费-日本噜噜影院

熱門服務(wù)中心 English

返回頂部

熱點(diǎn)聚焦

LVS負(fù)載均衡集群服務(wù)搭建詳解

日期:2016-03-18 點(diǎn)擊:     關(guān)鍵詞:LVS負(fù)載均衡集群服務(wù)搭建詳解

2016-03-18

  LVS負(fù)載均衡集群服務(wù)搭建詳解

  一、LVS概述

  1.LVS:Linux Virtual Server

  四層交換(路由):根據(jù)請(qǐng)求報(bào)文的目標(biāo)IP和目標(biāo)PORT將其轉(zhuǎn)發(fā)至后端主機(jī)集群中的某臺(tái)服務(wù)器(根據(jù)調(diào)度算法);

  不能夠?qū)崿F(xiàn)應(yīng)用層的負(fù)載均衡

  lvs(又稱ipvs),基于內(nèi)核中的防火墻netfilter實(shí)現(xiàn)

LVS負(fù)載均衡集群服務(wù)搭建詳解

  2.lvs集群術(shù)語:

  vs:Virtual Server

  虛擬服務(wù),可稱為Director、Dispatcher分發(fā)器、Balancer負(fù)載均衡器

  rs:Real Server

  真實(shí)服務(wù)器

  CIP:Client IP

  客戶端IP

  VIP:Director Virtual IP

  等同于FIP(流動(dòng)IP),負(fù)載均衡器虛擬IP

  DIP:Director IP

  調(diào)度IP(第二張網(wǎng)卡IP地址)

  RIP:Real Server IP

  真實(shí)服務(wù)器IP

  3.LVS:ipvsadm/ipvs

  (1)ipvsadm: CLI工具

  用戶空間的命令行工具,用于管理集群服務(wù)及集群服務(wù)上的RS等;# yum install -y ipvsadm

  (2)ipvs:內(nèi)核存在(CentOS默認(rèn)支持)

  工作于內(nèi)核上的netfilterINPUT鉤子之上的程序代碼;其集群功能依賴于ipvsadm定義的集群服務(wù)器規(guī)則;

  支持基于TCP、UDP、SCTP、AH、EST、AH_EST等協(xié)議的眾多服務(wù);

  4.負(fù)載均衡集群中設(shè)計(jì)時(shí)的要點(diǎn):

  (1)session保持

  session sticky (iphash):IP地址綁定,來源IP記錄在ip hash表作統(tǒng)一調(diào)度

  session cluster(multicast/broadcast/unicast):廣播集群同步(復(fù)制)session,只適用于小規(guī)模場(chǎng)景

  session server ():session服務(wù)器

  (2)數(shù)據(jù)共享(提供一致性存儲(chǔ))

  1) 共享存儲(chǔ);

  NAS:Network Attached Storage (文件級(jí)別),網(wǎng)絡(luò)附加存儲(chǔ),文件服務(wù)器

  SAN:Storage Area Network (塊級(jí)別),存儲(chǔ)區(qū)域網(wǎng)絡(luò)

  DS:Distributed Storage,分布式春初

  2) 數(shù)據(jù)同步:rsync… ...

  二、LVS模型

  1.lvs-nat:地址偽裝模型

  多目標(biāo)的DNAT:通過將請(qǐng)求報(bào)文的目標(biāo)地址和目標(biāo)端口修改為挑選出某RS的RIP和PORT來實(shí)現(xiàn);

  客戶端主機(jī)發(fā)起請(qǐng)求報(bào)文CIP指向VIP,通過內(nèi)核的核心網(wǎng)卡間轉(zhuǎn)發(fā)功能,VIP會(huì)將請(qǐng)求交給DIP進(jìn)行調(diào)度,DIP根據(jù)設(shè)定的算法進(jìn)行負(fù)載均衡給后端的RS主機(jī)的RIP,在這個(gè)過程中DIP調(diào)度功能會(huì)將目標(biāo)IP地址重寫為RIP。請(qǐng)求和返回請(qǐng)求讀要調(diào)度DIP來進(jìn)行轉(zhuǎn)換操作。

  (1)RIP和DIP應(yīng)該使用私網(wǎng)地址,RS的網(wǎng)狀應(yīng)該指向DIP;

  (2)請(qǐng)求和響應(yīng)報(bào)文都要經(jīng)由director轉(zhuǎn)發(fā);極高負(fù)載的場(chǎng)景中,Director可能會(huì)成為系統(tǒng)瓶頸(響應(yīng)報(bào)文大);

  (3) 支持端口映射(轉(zhuǎn)發(fā));

  (4) VS必須為L(zhǎng)inux,RS可以為任意操作系統(tǒng);

  (5)RS的RIP與Director的DIP必須在同一IP網(wǎng)絡(luò);

  2.lvs-dr(direct routing直接路由):網(wǎng)關(guān)模型

  通過修改請(qǐng)求報(bào)文的MAC地址進(jìn)行轉(zhuǎn)發(fā);IP首部不會(huì)發(fā)生變化(源IP為CIP,目標(biāo)IP始終為VIP)

  客戶端發(fā)起請(qǐng)求,經(jīng)過層層路由到達(dá)離VS服務(wù)器最近的交換機(jī),通過交換機(jī)轉(zhuǎn)發(fā)給VS服務(wù)器,由VS服務(wù)器負(fù)載均衡轉(zhuǎn)發(fā)請(qǐng)求給RS服務(wù)器。在此過程中VIP修改MAC地址調(diào)度請(qǐng)求給真實(shí)主機(jī)。在此過程中通過ARP協(xié)議在一個(gè)局域網(wǎng)中廣播尋找真實(shí)主機(jī)的MAC地址。每個(gè)RS真實(shí)主機(jī)的網(wǎng)卡會(huì)一個(gè)別名地址VIP,實(shí)現(xiàn)全過程源地址為CIP,目標(biāo)地址為VIP不變。調(diào)度基于尋找MAC。網(wǎng)關(guān)模型中的所有主機(jī)均要能與外網(wǎng)通信。這樣RS主機(jī)就能夠直接響應(yīng)客戶機(jī)。

  (1)確保前端路由器將目標(biāo)IP為VIP的請(qǐng)求報(bào)文一定會(huì)發(fā)送給Director;

  解決方案:

  1)靜態(tài)綁定;

  2)禁止RS響應(yīng)VIP的ARP請(qǐng)求;

  a) arptables上定義;

  b) 修改各RS的內(nèi)核參數(shù),并把VIP配置在特定的接口上實(shí)現(xiàn)禁止其響應(yīng);

  (2)RS的RIP可以使用私有地址,也可以使用公網(wǎng)地址;

  RIP使用私有地址可以通過在之前加一個(gè)路由器的方式和外網(wǎng)通信,直接響應(yīng)客戶機(jī)

  (3)RS跟Director必須在同一物理網(wǎng)絡(luò)中;

  (4)請(qǐng)求報(bào)文必須由Director調(diào)度,但響應(yīng)報(bào)文必須不能經(jīng)由Director;

  (5) 不支持端口映射;

  (6) 各RS可以使用大多數(shù)的操作系統(tǒng);

  3.lvs-tun(ip tunneling):IP隧道模型

  轉(zhuǎn)發(fā)方式:不修改請(qǐng)求報(bào)文的IP首部(源IP為CIP,目標(biāo)IP為VIP),而是在原有的IP首部這外再次封裝一個(gè)IP首部(源IP為DIP,目標(biāo)IP為RIP);

  (1)RIP,DIP,VIP全得是公網(wǎng)地址;

  (2)RS的網(wǎng)關(guān)不能也不可能指向DIP;

  (3)請(qǐng)求報(bào)文經(jīng)由Director調(diào)度,但響應(yīng)報(bào)文將直接發(fā)給CIP;

  (4) 不支持端口映射;

  (5)RS的OS必須支持IP隧道功能;

  4.lvs-fullnat:完整模型(同時(shí)改變請(qǐng)求報(bào)文的源IP和目標(biāo)IP)

  通過同時(shí)修改請(qǐng)求報(bào)文的源IP地址(cip-->dip)和目標(biāo)IP地址(vip--> rip)實(shí)現(xiàn)轉(zhuǎn)發(fā);

  注意:前三種為標(biāo)準(zhǔn)類型,第四種為后添加類型,內(nèi)核默認(rèn)可能不支持,需自編譯內(nèi)核

  (1)VIP是公網(wǎng)地址;RIP和DIP是私網(wǎng)地址,且可以不在同一IP網(wǎng)絡(luò)中,但需要通過路由互相通信;

  (2)RS收到的請(qǐng)求報(bào)文的源IP為DIP,因此其響應(yīng)報(bào)文將發(fā)送給DIP;

  (3)請(qǐng)求報(bào)文和響應(yīng)報(bào)文都必須經(jīng)由director;

  (4) 支持端口映射;

  (5) RS可使用任意OS;

  三、LVS scheduler調(diào)度算法

  1.靜態(tài)方法:僅根據(jù)算法本身進(jìn)行調(diào)度

  (1)RR :round robin,輪詢機(jī)制,依次分配請(qǐng)求,方式簡(jiǎn)單但時(shí)負(fù)載均衡的效果一般

  (2)WRR :weighted rr,加權(quán)輪詢,權(quán)重越大承擔(dān)負(fù)載越大

  (3)SH :source ip hash,源地址哈希,將來自同一個(gè)ip請(qǐng)求通過記錄在ip hsash表中綁定在同一個(gè)服務(wù)器,實(shí)現(xiàn)session保持

  缺點(diǎn):調(diào)度粒度大,對(duì)負(fù)載均衡效果差;session黏性不同,連接時(shí)長(zhǎng)保持不同

  (4)DH :desination ip hash,目標(biāo)地址哈希。能實(shí)現(xiàn)連接追蹤,但不考慮負(fù)載均衡效果

  正向web代理,負(fù)載均衡內(nèi)網(wǎng)用戶對(duì)互聯(lián)網(wǎng)的請(qǐng)求;

  Client--> Director --> Web Cache Server(正向代理)

  2.動(dòng)態(tài)方法:根據(jù)算法及各RS當(dāng)前的負(fù)載狀態(tài)進(jìn)行評(píng)估

  Overhead

  負(fù)載值,VS轉(zhuǎn)發(fā)時(shí)記錄每個(gè)RS的Active和Inactive數(shù)量(甚至權(quán)重)進(jìn)行算法計(jì)算

  Active

  活動(dòng)鏈接值,當(dāng)發(fā)起新請(qǐng)求后保持在ESTABLISHED狀態(tài)時(shí),仍有請(qǐng)求響應(yīng)

  Inactive

  非活動(dòng)鏈接值,在ESTABLISHED狀態(tài)時(shí),尚未斷開保持空閑等待狀態(tài)

  (1)LC:least connection,最少連接

  Overhead=Active*256+Inactive

  后端的RS誰的連接少就分發(fā)請(qǐng)求至那臺(tái)RS,若overhead一樣則自上而下輪詢列表中的RS

  (2)WLC:weighted least connection,加權(quán)最小連接

  Overhead=(Active*256+Inactive)/weight,計(jì)算結(jié)果小的將為選中的下一跳RS服務(wù)器

  缺點(diǎn):當(dāng)Overhead一樣時(shí),自上而下輪詢響應(yīng),權(quán)重小的若在列表上方則其會(huì)響應(yīng)

  (3)SED:Shortest Expection Delay,最短期望延遲

  Overhead=(Active+1)*256/weight

  缺點(diǎn):解決WLC問題,但時(shí)無法確保權(quán)重小的主機(jī)一定響應(yīng)

  (4)NQ:never Queue,永不排隊(duì),SED算法改進(jìn)

  RS權(quán)重大小排列,每臺(tái)RS服務(wù)器先分配一個(gè)請(qǐng)求,其余的按照權(quán)重大小計(jì)算分配

  (5)LBLC:Locality-Based LC,基于本地的最少連接,動(dòng)態(tài)的 DH連接算法

  (6)LBLCR:LBLC with Replication,帶復(fù)制功能的LBLC

  四、ipvsadm命令

  1.管理集群服務(wù):

  ipvsadm -A|E-t|u|f service-address [-s scheduler][-p [timeout]]

  ipvsadm -D-t|u|f service-address

  -A:添加、-E:修改、-D:刪除

  service-address

  服務(wù)地址和 -t|u|f 結(jié)合使用,具體格式如下

  -t, tcp, vip:port

  TCP的ip和port

  -u, udp, vip:port

  UDP的ip和port

  -f, fwm, MARK

  防火墻標(biāo)記

  -s scheduler:默認(rèn)為WLC調(diào)度算法,可省;

  -p [timeout] :超出時(shí)長(zhǎng),持久連接相關(guān),默認(rèn)時(shí)長(zhǎng)為300秒

  2.管理集群服務(wù)上的RS:

  ipvsadm-a|e -t|u|f service-address -rserver-address [-g|i|m] [-w weight]

  ipvsadm -d-t|u|fservice-address -rserver-address

  -a:添加一個(gè)RS、-e:修改一個(gè)RS、-d:刪除一個(gè)RS

  server-address指的是rip[:port],端口可省表示與之前的service-address相同,只有nat模式支持端口映射才會(huì)使用

  [-g|i|m]

  -g:GATEWAY (默認(rèn)),lvs-dr模型

  -i: IPIP, lvs-tun隧道模型

  -m: MASQUERADE,lvs-nat模型

  3.查看

  ipvsadm -L|l[options]

  -n:numeric,數(shù)字格式顯示地址和端口;

  -c:connection,顯示ipvs連接;

  --stats:顯示統(tǒng)計(jì)數(shù)據(jù);

  --rate:速率

  --exact:精確值,不經(jīng)過單位換算的數(shù)值

  4.清空規(guī)則:

  ipvsadm -C

  5.數(shù)器清零:

  ipvsadm -Z[-t|u|f service-address]

  6.保存和重載:

  保存:

  ipvsadm-S > /PATH/TO/SOME_RULE_FILE

  ipvsadm-save > /PATH/TO/SOME_RULE_FILE

  重載:

  ipvsadm -R < /PATH/FROM/SOME_RULE_FILE

  ipvsadm-restore< /PATH/FROM/SOME_RULE_FILE

  注意:需要結(jié)合重定向一起使用,從自定義的規(guī)則文件中導(dǎo)入導(dǎo)出

  附錄(ipvsadm -h):

  ipvsadm-A|E -t|u|f service-address [-s scheduler]

  [-p[timeout]] [-M netmask] [-b sched-flags]

  ipvsadm-D -t|u|f service-address

  ipvsadm-C

  ipvsadm-R

  ipvsadm-S [-n]

  ipvsadm-a|e -t|u|f service-address -r server-address

  [-g|i|m][-w weight] [-x upper] [-y lower]

  ipvsadm-d -t|u|f service-address -r server-address

  ipvsadm-L|l [options]

  ipvsadm-Z [-t|u|f service-address]

  ipvsadm--set tcp tcpfin udp

  ipvsadm-h

  五、lvs-nat模型構(gòu)建

  1.lvs-nat模型示意圖

  本次構(gòu)建的lvs-nat模型的示意圖如下,其中所有的服務(wù)器和測(cè)試客戶端均使用VMware虛擬機(jī)模擬,所使用的CentOS 7

  VS內(nèi)核都支持ipvs功能,且安裝ipvsadm控制書寫lvs規(guī)則工具。

  RS端兩臺(tái)服務(wù)器為httpd服務(wù)器做請(qǐng)求的負(fù)載均衡。

  注意;

  1) 客戶端可以使用Windows上的瀏覽器,會(huì)后緩存影響結(jié)果,所以采用CentOS上的curl命令請(qǐng)求http協(xié)議顯示更加直觀

  2) DIP上不能配置iptables規(guī)則

  2.VS網(wǎng)卡配置

  (1)增加網(wǎng)卡

  在"虛擬機(jī)設(shè)置"中增加一個(gè)網(wǎng)絡(luò)適配器設(shè)備,并將其自定義特定網(wǎng)絡(luò)為VMnet2模式,此處為了模擬負(fù)載均衡服務(wù)器的兩張網(wǎng)卡處于不同網(wǎng)段

  (2)配置VS兩張網(wǎng)卡的IP地址

  [root@localhost ~]# nmtui# CentOS 7 文本圖形界面配置網(wǎng)卡命令

  [root@localhost ~]# systemctl start network.service

  注意:

  網(wǎng)絡(luò)適配器1(172.16.249.57)模擬為外網(wǎng)網(wǎng)卡,網(wǎng)絡(luò)適配器2(192.168.100.1)模擬為內(nèi)網(wǎng),且該網(wǎng)卡的Ip地址要和RS服務(wù)器得ip在同一網(wǎng)段,DIP作為RIP的網(wǎng)絡(luò)調(diào)度(網(wǎng)關(guān)),無需配置GATEWAY

  [root@localhost~]# ifconfig

  3.RS網(wǎng)卡配置

  此處使用兩臺(tái)CentOS 7虛擬機(jī)作為負(fù)載均衡后端真實(shí)響應(yīng)主機(jī),安裝RPM包格式httpd服務(wù),并啟動(dòng)服務(wù)。nmtui命令配置網(wǎng)卡信息,RS1的IP:192.168.100.2,RS2的IP:192.168.100.3,RIP和DIP在同一網(wǎng)段,虛擬機(jī)網(wǎng)卡和DIP同時(shí)匹配值為VMnet2模式,且兩臺(tái)RS服務(wù)器主機(jī)網(wǎng)關(guān)指向DIP:192.168.100.1

  [root@localhost~]# yum install -y httpd

  [root@localhost ~]# systemctl start httpd.service

  注意:安裝完成后在各httpd服務(wù)器上配置測(cè)試頁面,/var/www/html/index.html.

  [root@localhost ~]# nmtui # 配置方法同上,此處省略

  … ...

  [root@localhost ~]# systemctl start network.service

  [root@localhost~]# ifconfig

  4.測(cè)試所有主機(jī)是否能夠通信

  用ping命令測(cè)試各節(jié)點(diǎn)的通信,例如RIP1和VIP、DIP、RIP2之間是否能夠通信

  [root@localhost ~]# ping IPADDR

  5.VS主機(jī):核心轉(zhuǎn)發(fā)和安裝ipvsadm

  (1)安裝ipvsadm組件:[root@localhost ~]# yum install -y ipvsadm

  (2)啟動(dòng)網(wǎng)卡間核心轉(zhuǎn)發(fā)功能:[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1

  [root@localhost~]# cat /proc/sys/net/ipv4/ip_forward

  6.VS主機(jī):定義配置lvs-nat服務(wù)(此處采用rr算法)

  (1)定義ipvsadm負(fù)載均衡集群規(guī)則,并查看

  此處定義DIP是以-s指定為rr算法進(jìn)行輪詢調(diào)度,-m指定模式為lvs-nat,配置命令如下:

  [root@localhost~]# ipvsadm -A -t 172.16.249.57:80 -s rr

  [root@localhost~]# ipvsadm -a -t 172.16.249.57:80 -r 192.168.100.2:80 -m

  [root@localhost~]# ipvsadm -a -t 172.16.249.57:80 -r 192.168.100.3:80 -m

  [root@localhost~]# ipvsadm -L -n

  (2)Client客戶機(jī)測(cè)試

  在客戶端主機(jī)上使用curl命令對(duì)VIP發(fā)起請(qǐng)求,負(fù)載均衡服務(wù)器會(huì)將請(qǐng)求按照rr算法依次將請(qǐng)求調(diào)度給不同的主機(jī)進(jìn)行處理,依次請(qǐng)求給分發(fā)給192.168.100.2和192.168.100.3主機(jī)響應(yīng)。

  [root@localhost~]# curl http://172.16.249.57

  7.VS主機(jī):定義配置lvs-nat服務(wù)(此處采用wrr算法)

  (1)定義ipvsadm負(fù)載均衡集群規(guī)則,并查看

  此處將在上面lvs-nat的rr的基礎(chǔ)上進(jìn)行修改,改成wrr加權(quán)輪詢算法;將192.168.100.2的權(quán)重設(shè)置為1,192.168.100.3的權(quán)重設(shè)置為3。

  [root@localhost~]# ipvsadm -E -t 172.16.249.57:80 -s wrr

  [root@localhost~]# ipvsadm -e -t 172.16.249.57:80 -r 192.168.100.2 -w 1 -m

  [root@localhost~]# ipvsadm -e -t 172.16.249.57:80 -r 192.168.100.3 -w 1 -m

  [root@localhost~]# ipvsadm -L -n

  (2)Client客戶機(jī)測(cè)試

  在客戶端主機(jī)用curl發(fā)起請(qǐng)求,負(fù)載均衡主機(jī)VS會(huì)將其按照權(quán)重大小轉(zhuǎn)發(fā)給各個(gè)主機(jī),四個(gè)請(qǐng)求有三個(gè)發(fā)給了192.168.100.3請(qǐng)求響應(yīng),一個(gè)發(fā)給了192.168.100.2主機(jī)處理。并以此算法做輪詢負(fù)載請(qǐng)求

  [root@localhost~]# curl http://172.16.249.57

  六、lvs-dr模型構(gòu)建

  1.lvs-dr模型示意圖

  三臺(tái)主機(jī)為虛擬機(jī)CentOS 7,每臺(tái)主機(jī)僅有一塊網(wǎng)卡,且使用橋接方式都指向外部網(wǎng)絡(luò)的網(wǎng)關(guān)172.16.100.1

  2.配置VS和RS服務(wù)器的VIP

  此處的VIP均已別名的形式配置在往卡上,VS是配置在對(duì)外通信的DIP的網(wǎng)卡上;RS配置在lo本地回環(huán)網(wǎng)卡

  注意:此時(shí)配置的VIP的子網(wǎng)掩碼必須為255.255.255.255,廣播地址為自己本身

  VS:[root@localhost~]# ifconfig eno16777736:0 172.16.50.50 netmask 255.255.255.255 broadcast172.16.50.50 up

  RS:[root@localhost~]# ifconfig lo:0 172.16.50.50 netmask 255.255.255.255broadcast 172.16.50.50 up

  3.RS服務(wù)器上配置路由

  [root@localhost~]# route add -host 172.16.50.50 dev lo:0

  4.RS服務(wù)器配置APR內(nèi)核參數(shù)修改

  [root@localhost~]# ll /proc/sys/net/ipv4/conf

  (1)ARP響應(yīng)行為和ARP解析行為內(nèi)核參數(shù):

  1)arp_annouce定義通告級(jí)別

  0:默認(rèn)級(jí)別,將本地的任何接口上的配置的地址都在網(wǎng)絡(luò)中通告

  1:盡量避免向本主機(jī)上的其他網(wǎng)卡進(jìn)行網(wǎng)絡(luò)通信,特殊情況下其他接口也可以

  2:總是使用最佳網(wǎng)絡(luò)地址接口(僅使用定義的網(wǎng)卡接口在同網(wǎng)絡(luò)通信)

  2)arp_ignore定義響應(yīng)級(jí)別(0-8九個(gè)級(jí)別),響應(yīng)時(shí)忽略方式

  0:都全都響應(yīng)

  1:只對(duì)從本接口進(jìn)入的請(qǐng)求響應(yīng),且本接口地址是個(gè)網(wǎng)絡(luò)地址

  … …

  注釋:一般使用arp_annouce=2,arp_ignore=1

  (2)配置各RS主機(jī)參數(shù)

  注意:all必須配置、eno16777736(本地)和lo兩個(gè)可以同時(shí)全部配置或者配置其中一個(gè)

  RealServer內(nèi)核參數(shù):

  #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

  # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

  #echo 1 > /proc/sys/net/ipv4/conf/INTERFACE/arp_ignore

  # echo 2 > /proc/sys/net/ipv4/conf/INTERFACE/arp_announce

  注意:INTERFACE為你的物理接口;此處網(wǎng)卡接口指的是eno16777736和lo

  5.VS主機(jī):定義配置lvs-dr模式(此處采用rr算法)

  (1)配置查看

  [root@localhost~]# ipvsadm -A -t 172.16.50.50:80 -s rr

  [root@localhost~]# ipvsadm -a -t 172.16.50.50:80 -r 172.16.200.10 -g

  [root@localhost~]# ipvsadm -a -t 172.16.50.50:80 -r 172.16.200.11 -g

  [root@localhost~]# ipvsadm -L -n

  (2)測(cè)試

  [root@localhost~]# curl http://172.16.50.50

  因?yàn)榛趓r算法調(diào)度,依次分發(fā)給RS主機(jī)

  七、通過防火墻標(biāo)記來定義lvs

  1.FWM防火墻標(biāo)記功能

  防火墻標(biāo)記可以實(shí)現(xiàn)多個(gè)集群服務(wù)綁定為同一個(gè),實(shí)現(xiàn)統(tǒng)一調(diào)度;將共享一組RS的集群服務(wù)統(tǒng)一進(jìn)行定義

  FWM基于iptables的mangle表實(shí)現(xiàn)防護(hù)墻標(biāo)記功能,定義標(biāo)記做策略路由

  2.FWM定義集群的方式

  (1)在director上netfilter的mangle表的PREROUTING定義用于"打標(biāo)"的規(guī)則

  ~]#iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $port -j MARK--set-mark #

  $vip:VIP地址

  $protocol:協(xié)議

  $port:協(xié)議端口

  (2)基于FWM定義集群服務(wù):

  ~]#ipvsadm -A -f # -s scheduler

  3.實(shí)例演示

  [root@localhost~]# iptables -t mangle -A PREROUTING -d 172.16.50.50 -p tcp --dport 80 -j MARK--set-mark 5

  [root@localhost~]# ipvsadm -A -f 5 -s rr

  [root@localhost~]# ipvsadm -a -f 5 -r 172.16.200.10 -g

  [root@localhost~]# ipvsadm -a -f 5 -r 172.16.200.11 -g

  八、LVS持久連接功能:lvs persistence

  1.lvs persistence功能

  無論ipvs使用何種scheduler,其都能夠?qū)崿F(xiàn)在指定時(shí)間范圍內(nèi)始終將來自同一個(gè)ip地址的請(qǐng)求發(fā)往同一個(gè)RS;實(shí)現(xiàn)方式和lvs調(diào)度的十種算法無關(guān),通過lvs持久連接模板(hash表)實(shí)現(xiàn),當(dāng)超過自定義的可持節(jié)連接時(shí)長(zhǎng)候再根據(jù)LVS算法本身進(jìn)行調(diào)度。

  ipvsadm命令中-p選項(xiàng)實(shí)現(xiàn),在-p后不指定具體數(shù)字(單位:秒),默認(rèn)為300,到時(shí)候會(huì)自動(dòng)延長(zhǎng)2分鐘,對(duì)于web本身就是15秒

  2.模式

  (1)每端口持久(PPC)

  客戶端對(duì)同一服務(wù)端口發(fā)起請(qǐng)求,會(huì)基于該服務(wù)的端口實(shí)現(xiàn)請(qǐng)求在一段時(shí)間內(nèi)對(duì)同一RS服務(wù)器持久連接;

  例如:有兩臺(tái)主機(jī)做為RS服務(wù)器做http和hssh的兩種服務(wù)的集群,僅http做每端口持久,Client請(qǐng)求會(huì)實(shí)現(xiàn)綁定在,但是22號(hào)端口請(qǐng)求不會(huì)綁定在同一臺(tái)RS

  (2)每客戶端持久(PCC):定義tcp或udp協(xié)議的0號(hào)端口為集群服務(wù)端口

  director會(huì)將用戶的任何請(qǐng)求都識(shí)別為集群服務(wù),并向RS進(jìn)行調(diào)度;同一客戶端的請(qǐng)求任何端口都發(fā)往同一臺(tái)第一次選定的RS服務(wù)器

  (3)每防火墻標(biāo)記持久(PFWMC)

  將兩個(gè)或兩個(gè)以上服務(wù)通過防火墻打標(biāo)綁定在一起,這些服務(wù)的請(qǐng)求實(shí)現(xiàn)同時(shí)定向與同一臺(tái)RS服務(wù)器,服務(wù)綁定同一RS

  實(shí)例:

  lvs-dr模式下以rr算法綁定http和https服務(wù)

  ~]#iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 80 -j MARK--set-mark 99

  ~]#iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 443 -j MARK--set-mark 99

  ~]#ipvsadm -A -f 99 -s rr -p

  ~]#ipvsadm -a -f 99 -r 172.16.100.68 -g

  ~]#ipvsadm -a -f 99 -r 172.16.100.69 -g

  附錄:LVS-DR類型RS腳本示例

  #!/bin/bash

  #

  vip=172.16.50.50

  interface="lo:0"

  case$1 in

  start)

  echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore

  echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

  echo2 > /proc/sys/net/ipv4/conf/all/arp_announce

  echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce

  ifconfig$interface $vip broadcast $vip netmask 255.255.255.255 up

  routeadd -host $vip dev $interface

  ;;

  stop)

  echo0 > /proc/sys/net/ipv4/conf/all/arp_ignore

  echo0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

  echo0 > /proc/sys/net/ipv4/conf/all/arp_announce

  echo0 > /proc/sys/net/ipv4/conf/lo/arp_announce

  ifconfig$interface down

  ;;

  status)

  ififconfig lo:0 |grep $vip &> /dev/null; then

  echo"ipvs is running."

  else

  echo"ipvs is stopped."

  fi

  ;;

  *)

  echo"Usage: `basename $0` {start|stop|status}"

  exit1

  esac

  云爍服務(wù),您身邊的IT服務(wù)商,期待與您的合作!相關(guān)內(nèi)容請(qǐng)咨詢在線客服,或致電400-0806-056.

  來源:互聯(lián)網(wǎng)

400-0806-056
淄博市| 徐水县| 兴仁县| 无棣县| 清徐县| 德昌县| 南投市| 济南市| 水城县| 台安县| 惠安县| 蒙自县| 唐河县| 敦煌市| 调兵山市| 雷州市| 峨眉山市| 固安县| 舞阳县| 蓬安县| 鹤庆县| 德兴市| 开封县| 达州市| 成都市| 门头沟区| 东山县| 苗栗县| 阿拉尔市| 元江| 荣成市| 莱西市| 乐平市| 兴文县| 信丰县| 江川县| 来宾市| 汉川市| 特克斯县| 嘉义市| 永平县|