小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Lvs負(fù)載均衡群集

 夜貓速讀 2022-05-23 發(fā)布于湖北

一、概述:

二、LVS詳解:

三、案例一:搭建LVS 的NAT模式負(fù)載均衡集群;

四、案例二:搭建LVS 的DR模式負(fù)載均衡集群;

五、總結(jié):Lvs負(fù)載均衡群集與nginx負(fù)載均衡群集對(duì)比(自主學(xué)習(xí))

一、概述:

概述:Linux Virtual Server的簡(jiǎn)寫,意即Linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng)。我國(guó)章文嵩博士在1998年五月創(chuàng)建,默認(rèn)編譯為ip_vs內(nèi)核模塊,而在linux kernel的2.6版本之后kernel是直接支持ipvs的,優(yōu)勢(shì):LVS承受負(fù)載能力高、穩(wěn)定、占用服務(wù)器資源小,缺點(diǎn):適配場(chǎng)景、配置較麻煩、不支持節(jié)點(diǎn)的健康檢查機(jī)制

官網(wǎng):http://www./zh/lvs1.html

集群技術(shù)概述:至少包含兩個(gè)節(jié)點(diǎn)服務(wù)器,對(duì)外表示為一個(gè)整體,只提供一個(gè)訪問入口;

  負(fù)載均衡(load balance cluster):將整個(gè)平臺(tái)的負(fù)載均衡到多臺(tái)單位;

  高可用(high availablity cluster):使整個(gè)應(yīng)用平臺(tái)擁有容錯(cuò)能力;

可伸縮性(Scalability):當(dāng)服務(wù)的負(fù)載增長(zhǎng)時(shí),系統(tǒng)能被擴(kuò)展來滿足需求,且不降低服務(wù)質(zhì)量;

高可用性(Availability):盡管部分硬件和軟件會(huì)發(fā)生故障,整個(gè)系統(tǒng)的服務(wù)必須是每天24小時(shí)每星期7天可用的;

可管理性(Manageability):整個(gè)系統(tǒng)可能在物理上很大,但應(yīng)該容易管理;

價(jià)格有效性(Cost-effectiveness):整個(gè)系統(tǒng)實(shí)現(xiàn)是經(jīng)濟(jì)的、易支付的;

集群的分層結(jié)構(gòu):

第一層:負(fù)載調(diào)度器(load balancer或director),訪問群集的唯一入口,對(duì)外使用所有服務(wù)器共有的VIP(virtual ip)地址,也稱為群集IP地址。

第二層:節(jié)點(diǎn)層(real server pool),服務(wù)器池群集所提供的應(yīng)用服務(wù)由服務(wù)器池承擔(dān),其中的每個(gè)節(jié)點(diǎn)具有獨(dú)立的RIP(real IP真實(shí)地址),只處理調(diào)度服務(wù)器分發(fā)過來的客戶機(jī)請(qǐng)求。當(dāng)某個(gè)節(jié)點(diǎn)暫時(shí)失效時(shí),負(fù)載調(diào)度器的容錯(cuò)機(jī)制會(huì)將其隔離,等待錯(cuò)誤排除以后再重新納入服務(wù)器池。

第三層:共享存儲(chǔ)層或數(shù)據(jù)庫(kù)層,共享存儲(chǔ)為服務(wù)器池中的所有節(jié)點(diǎn)提供穩(wěn)定,一致的文件存取服務(wù),確保整個(gè)群集的統(tǒng)一性。

二、LVS詳解:

LVS內(nèi)核模型:

調(diào)度條件:基于IP(效率最高)、基于端口、基于內(nèi)容

LVS的三種工作模式:

1.地址轉(zhuǎn)換:NAT模式,負(fù)載調(diào)度器作為所有服務(wù)器的網(wǎng)關(guān),服務(wù)器節(jié)點(diǎn)使用私有IP地址(隱蔽性高),與負(fù)載調(diào)度器位于同一個(gè)物理網(wǎng)絡(luò),安全性高于其他兩種方式。但是負(fù)載調(diào)度器是整個(gè)架構(gòu)的瓶頸;

b.IP隧道:TUN模式,采用開放是的網(wǎng)絡(luò)結(jié)構(gòu),負(fù)載調(diào)度器僅作為客戶機(jī)的訪問入口,個(gè)節(jié)點(diǎn)通過各自的Internet連接回應(yīng)客戶機(jī),而不再經(jīng)過負(fù)載調(diào)度器。服務(wù)器節(jié)點(diǎn)分散在互聯(lián)網(wǎng)的不同位置,具有獨(dú)立的公網(wǎng)IP地址,通過專用的IP隧道與負(fù)載調(diào)度器互通。安全性低,性能高;

c.直接路由:DR模式,采用半開放式的網(wǎng)絡(luò)結(jié)構(gòu),與TUN模式結(jié)構(gòu)類似,但各節(jié)點(diǎn)并不是分散在各地,而是與調(diào)度服務(wù)器位于同一個(gè)物理網(wǎng)絡(luò)。負(fù)載調(diào)度器與各節(jié)點(diǎn)服務(wù)器通過本地網(wǎng)絡(luò)連接,不需要建立專用的IP隧道。性能最高,安全性較高;

Lvs負(fù)載調(diào)度算法:

靜態(tài):

1.輪詢r(jià)r:將請(qǐng)求按順序依次分配給各個(gè)web節(jié)點(diǎn);

2.加權(quán)輪詢wrr:根據(jù)web服務(wù)器的處理能力,動(dòng)態(tài)調(diào)整權(quán)重,將請(qǐng)求按照各節(jié)點(diǎn)的負(fù)載情況進(jìn)行順序分配;

3.目標(biāo)地址散列調(diào)度dh:根據(jù)請(qǐng)求的目標(biāo)IP地址,作為散列鍵(HashKey)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。

4.源地址 hash源地址散列”調(diào)度算法根據(jù)請(qǐng)求的源IP地址,作為散列鍵(HashKey)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空?

動(dòng)態(tài):

1.最小連接Lc:根據(jù)web服務(wù)器的連接數(shù)量,將請(qǐng)求分配給web節(jié)點(diǎn)服務(wù)器;

2.加權(quán)最小連接WLC:根據(jù)web服務(wù)器的處理能力,動(dòng)態(tài)調(diào)整權(quán)重,將請(qǐng)求按照各節(jié)點(diǎn)的連接數(shù)量進(jìn)行分配,默認(rèn);

3.最短延遲調(diào)度SED:在WLC基礎(chǔ)上改進(jìn),Overhead = (ACTIVE+1)*256/加權(quán),不再考慮非活動(dòng)狀態(tài),把當(dāng)前處于活動(dòng)狀態(tài)的數(shù)目+1來實(shí)現(xiàn),數(shù)目最小的,接受下次請(qǐng)求,+1的目的是為了考慮加權(quán)的時(shí)候,非活動(dòng)連接過多缺陷:當(dāng)權(quán)限過大的時(shí)候,會(huì)倒置空閑服務(wù)器一直處于無連接狀態(tài)。

4.永不排隊(duì)/最少隊(duì)列調(diào)度NQ:無需隊(duì)列。如果有臺(tái) realserver的連接數(shù)=0就直接分配過去,不需要再進(jìn)行sed運(yùn)算,保證不會(huì)有一個(gè)主機(jī)很空間。在SED基礎(chǔ)上無論+幾,第二次一定給下一個(gè),保證不會(huì)有一個(gè)主機(jī)不會(huì)很空閑著,不考慮非活動(dòng)連接,才用NQ,SED要考慮活動(dòng)狀態(tài)連接,對(duì)于DNS的UDP不需要考慮非活動(dòng)連接,而httpd的處于保持狀態(tài)的服務(wù)就需要考慮非活動(dòng)連接給服務(wù)器的壓力。

5.基于局部性的最少鏈接LBLC:基于局部性的最少鏈接”調(diào)度算法是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)?該算法根據(jù)請(qǐng)求的目標(biāo)IP地址找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于一半的工作負(fù)載,則用“最少鏈接”的原則選出一個(gè)可用的服務(wù)器,將請(qǐng)求發(fā)送到該服務(wù)器?

6.帶復(fù)制的基于局部性最少連接LBLCR:帶復(fù)制的基于局部性最少鏈接”調(diào)度算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)?它與LBLC算法的不同之處是它要維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射?該算法根據(jù)請(qǐng)求的目標(biāo)IP地址找出該目標(biāo)IP地址對(duì)應(yīng)的服務(wù)器組,按”最小連接”原則從服務(wù)器組中選出一臺(tái)服務(wù)器,若服務(wù)器沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器;若服務(wù)器超載,則按“最小連接”原則從這個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請(qǐng)求發(fā)送到該服務(wù)器?同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒有被修改,將最忙的服務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度

三、案例一:搭建LVS 的NAT模式負(fù)載均衡集群;

案例拓?fù)洌?/strong>

案例環(huán)境:

系統(tǒng)類型

IP地址

主機(jī)名

所需軟件

Centos 7.4 1708 64bit

192.168.100.101

192.168.3.101

ld.linuxfan.cn

ipvsadm、內(nèi)核模塊ip_vs

Centos 7.4 1708 64bit

192.168.100.102

real1.linuxfan.cn

httpd

Centos 7.4 1708 64bit

192.168.100.103

real2.linuxfan.cn

httpd

Centos 7.4 1708 64bit

192.168.100.104

real3.linuxfan.cn

httpd

win7

192.168.3.150

win7-1


案例步驟:

?搭建real server 節(jié)點(diǎn)池中的三臺(tái)http服務(wù)節(jié)點(diǎn)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

?配置LD負(fù)載調(diào)度器的環(huán)境以及安裝軟件程序;

?配置LD負(fù)載調(diào)度服務(wù)器的調(diào)度服務(wù);

?公網(wǎng)客戶端測(cè)試訪問集群;

?搭建real server 節(jié)點(diǎn)池中的三臺(tái)http服務(wù)節(jié)點(diǎn)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

[root@real1 ~]# ip a |grep 192.168.100.102                            ##設(shè)置ip地址

    inet 192.168.100.102/24 brd 192.168.100.255 scope global eth0      

[root@real1 ~]# ip r |grep 192.168.100.101                            ##設(shè)置默認(rèn)網(wǎng)關(guān)地址

default via 192.168.100.101 dev eth0 proto static metric 100

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

[root@real1 ~]# cat </var/www/html/index.html

I am real1.linuxfan.cn

END

[root@real1 ~]# systemctl start httpd

[root@real1 ~]# systemctl enable httpd                                   ##設(shè)置開機(jī)自動(dòng)啟動(dòng)

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

?配置LD負(fù)載調(diào)度器的環(huán)境以及安裝軟件程序;

[root@ld ~]# ip a |grep 101

    inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0

    inet 192.168.3.101/24 brd 192.168.3.255 scope global eth1

[root@ld ~]# echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf                             ##開啟路由轉(zhuǎn)發(fā)功能,因?yàn)檎{(diào)度器同時(shí)承載著網(wǎng)關(guān)的角色

[root@ld ~]# sysctl -p

net.ipv4.ip_forward = 1

[root@ld ~]# modprobe ip_vs                                                        ##加載內(nèi)核模塊ip_vs

[root@ld ~]# lsmod |grep ip_vs

ip_vs                 141092  0

nf_conntrack          133387  1 ip_vs

libcrc32c              12644  3 xfs,ip_vs,nf_conntrack

?配置LD負(fù)載調(diào)度服務(wù)器的調(diào)度服務(wù);

[root@ld ~]# yum -y install ipvsadm                                                        ##安裝ip_vs模塊的規(guī)則編寫工具

[root@ld ~]# systemctl stop ipvsadm                                                        ##清空內(nèi)部規(guī)則

[root@ld ~]# ipvsadm -A -t 192.168.3.101:80 -s rr                                          ##指定集群的VIP地址(Virtual IP),rr指定輪詢調(diào)度算法

[root@ld ~]# ipvsadm -a -t 192.168.3.101:80 -r 192.168.100.102:80 -m -w 1       ##-m表示NAT模式,-w指定權(quán)重值

[root@ld ~]# ipvsadm -a -t 192.168.3.101:80 -r 192.168.100.103:80 -m -w 1

[root@ld ~]# ipvsadm -a -t 192.168.3.101:80 -r 192.168.100.104:80 -m -w 1

[root@ld ~]# ipvsadm-save                                                         ##保存規(guī)則

-A -t ld.linuxfan.cn:http -s rr

-a -t ld.linuxfan.cn:http -r 192.168.100.102:http -m -w 1

-a -t ld.linuxfan.cn:http -r 192.168.100.103:http -m -w 1

-a -t ld.linuxfan.cn:http -r 192.168.100.104:http -m -w 1

[root@ld ~]# ipvsadm -L                                                               ##查看規(guī)則

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  ld.linuxfan.cn:http rr

  -> 192.168.100.102:http         Masq    1      0          0        

  -> 192.168.100.103:http         Masq    1      0          0        

  -> 192.168.100.104:http         Masq    1      0          0

?公網(wǎng)客戶端測(cè)試訪問集群;

四、案例二:搭建LVS 的DR模式負(fù)載均衡集群;

案例拓?fù)洌?/strong>

案例環(huán)境:

系統(tǒng)類型

IP地址

主機(jī)名

所需軟件

Centos 6.5 64bit

192.168.100.100

192.168.3.100

GW

iptables

Centos 7.4 1708 64bit

192.168.100.101

ld.linuxfan.cn

ipvsadm、內(nèi)核模塊ip_vs

Centos 7.4 1708 64bit

192.168.100.102

real1.linuxfan.cn

httpd

Centos 7.4 1708 64bit

192.168.100.103

real2.linuxfan.cn

httpd

Centos 7.4 1708 64bit

192.168.100.104

real3.linuxfan.cn

httpd

win7-1

192.168.100.66

lan-client

瀏覽器

win7-2

192.168.3.150

wan-client

瀏覽器

VIP(virtual-ip)

192.168.100.88



案例步驟:

?搭建real server 節(jié)點(diǎn)池中的三臺(tái)http服務(wù)節(jié)點(diǎn)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

?設(shè)置負(fù)載調(diào)度器上的VIP地址;

?調(diào)整負(fù)載調(diào)度器的響應(yīng)參數(shù);

?配置負(fù)載調(diào)度器負(fù)載分配策略;

?配置real server節(jié)點(diǎn)池內(nèi)節(jié)點(diǎn)服務(wù)器的網(wǎng)絡(luò)參數(shù)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

?內(nèi)網(wǎng)客戶端訪問測(cè)試集群;

?在GW服務(wù)器上設(shè)置iptables的DNAT規(guī)則;

?外網(wǎng)客戶端訪問測(cè)試集群;

?測(cè)試LVS是否支持節(jié)點(diǎn)的健康檢查功能;

?調(diào)整LVS的負(fù)載調(diào)度算法(自主學(xué)習(xí));

?搭建real server 節(jié)點(diǎn)池中的三臺(tái)http服務(wù)節(jié)點(diǎn)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

[root@real1 ~]# ip a |grep 192.168.100.102                            ##設(shè)置ip地址

    inet 192.168.100.102/24 brd 192.168.100.255 scope global eth0      

[root@real1 ~]# ip r |grep 192.168.100.100                            ##設(shè)置默認(rèn)網(wǎng)關(guān)地址

default via 192.168.100.100 dev eth0 proto static metric 100

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

[root@real1 ~]# cat </var/www/html/index.html

I am real1.linuxfan.cn

END

[root@real1 ~]# systemctl start httpd

[root@real1 ~]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

?設(shè)置負(fù)載調(diào)度器上的VIP地址;

[root@ld ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME=eth0

DEVICE=eth0

ONBOOT=yes

IPADDR=192.168.100.101

PREFIX=24

GATEWAY=192.168.100.100

DNS1=192.168.100.100

[root@ld ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

[root@ld ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME=eth0:0

DEVICE=eth0:0

ONBOOT=yes

IPADDR=192.168.100.88

PREFIX=24

GATEWAY=192.168.100.100

DNS1=192.168.100.100

[root@ld ~]# systemctl restart network

[root@ld ~]# ip a |grep 192.168.100

    inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0

    inet 192.168.100.88/24 brd 192.168.100.255 scope global secondary eth0:0

?調(diào)整負(fù)載調(diào)度器的響應(yīng)參數(shù);

[root@ld ~]# vi /etc/sysctl.conf                                           ##最后添加

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

:wq

注解:

禁止轉(zhuǎn)發(fā)重定向報(bào)文

禁止默認(rèn)轉(zhuǎn)發(fā)重定向報(bào)文

禁止eth0網(wǎng)卡轉(zhuǎn)發(fā)重定向報(bào)文

[root@ld ~]# sysctl -p

?配置負(fù)載調(diào)度器負(fù)載分配策略;

[root@ld ~]# modprobe ip_vs

[root@ld ~]# lsmod |grep ip_vs

ip_vs_rr               12600  1

ip_vs                 141092  3 ip_vs_rr

nf_conntrack          133387  1 ip_vs

libcrc32c              12644  3 xfs,ip_vs,nf_conntrack

[root@ld ~]# yum -y install ipvsadm

[root@ld ~]# ipvsadm --clear

[root@ld ~]# systemctl stop ipvsadm

[root@ld ~]# ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@ld ~]# ipvsadm -A -t 192.168.100.88:80 -s rr

[root@ld ~]# ipvsadm -a -t 192.168.100.88:80 -r 192.168.100.102:80 -g -w 1       ##表示DR模式

[root@ld ~]# ipvsadm -a -t 192.168.100.88:80 -r 192.168.100.103:80 -g -w 1

[root@ld ~]# ipvsadm -a -t 192.168.100.88:80 -r 192.168.100.104:80 -g -w 1

[root@ld ~]# ipvsadm-save

-A -t ld.linuxfan.cn:http -s rr

-a -t ld.linuxfan.cn:http -r 192.168.100.102:http -g -w 1

-a -t ld.linuxfan.cn:http -r 192.168.100.103:http -g -w 1

-a -t ld.linuxfan.cn:http -r 192.168.100.104:http -g -w 1

[root@ld ~]# ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  ld.linuxfan.cn:http rr

  -> 192.168.100.102:http         Route   1      0          0        

  -> 192.168.100.103:http         Route   1      0          0        

  -> 192.168.100.104:http         Route   1      0          0

?配置real server節(jié)點(diǎn)池內(nèi)節(jié)點(diǎn)服務(wù)器的網(wǎng)絡(luò)參數(shù)(在此只列出一臺(tái)配置,其他兩臺(tái)相同);

[root@real1 ~]# cat </etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.100.88

NETMASK=255.255.255.255

ONBOOT=yes

NAME=lo:0

END

[root@ real1 ~]# systemctl restart network

[root@real1 ~]# ip a |grep 88

    inet 192.168.100.88/32 brd 192.168.100.88 scope global lo:0

?內(nèi)網(wǎng)客戶端訪問測(cè)試集群;

?在GW服務(wù)器上設(shè)置iptables的DNAT規(guī)則;

[root@GW ~]# iptables -t nat -A PREROUTING -i eth1 -d 192.168.3.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.88

[root@ GW ~]# iptables -t nat -L -n

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination        

DNAT       tcp  --  0.0.0.0/0            192.168.3.100       tcp dpt:80 to:192.168.100.88

...

?外網(wǎng)客戶端訪問測(cè)試集群;

?測(cè)試LVS是否支持節(jié)點(diǎn)的健康檢查功能;

[root@real1 ~]# ifconfig lo:0 down                            ##斷開real1的lo:0的網(wǎng)卡,使其脫離集群

[root@real1 ~]# ip a |grep 192.168.100.

    inet 192.168.100.102/24 brd 192.168.100.255 scope global eth0

客戶端訪問集群測(cè)試:

?調(diào)整LVS的負(fù)載調(diào)度算法(自主學(xué)習(xí));

五、總結(jié):Lvs負(fù)載均衡群集與nginx負(fù)載均衡群集對(duì)比(自主學(xué)習(xí))

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多