DR(直接路由)是三種負載均衡模式其中之一,也是使用最多的一種模式,關于該模式的介紹,可以參考博文:LVS負載均衡群集詳解。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設計、興海網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。DR的工作模式示意圖如下:
該模式的原理已經(jīng)在上面鏈接的博文中寫了下來?,F(xiàn)在直接搭建一個基于DR模式的負載均衡群集。
環(huán)境如下:
在上面這個環(huán)境中,需要解決的問題有下面幾點:
1、所有web節(jié)點和調度器都配置上VIP:客戶端訪問VIP(群集的虛擬IP地址)時,若是
調度器將請求轉發(fā)給web節(jié)點,然后由web節(jié)點直接去響應客戶端,那么客戶端在收到
數(shù)據(jù)包后,發(fā)現(xiàn)收到的數(shù)據(jù)包源地址不是200.0.0.254,那么就會直接丟棄web服務器返回
的數(shù)據(jù)包,為了解決這一問題,所以需要在所有web節(jié)點和調度器的虛接口上配置上200.0.0.254
這個地址,并且通過添加一條路由,將訪問VIP的數(shù)據(jù)限制在本地,以避免通信紊亂。
2、解決關于web節(jié)點ARP響應的問題:在所有web節(jié)點和調度器上配置上200.0.0.254
這個地址后,當client訪問200.0.0.254這個地址時,所有的web節(jié)點都有這個地址,所以
都會去進行ARP響應,那么這樣一來,可能就造成了client略過調度器直接去訪問web節(jié)點
了,這樣一來,調度器就沒有存在的意義了,自然也就達不到負載均衡的效果了,所以需要
關閉web節(jié)點的部分ARP應答,在廣播200.0.0.254這個地址時,只讓調度器去響應,web
節(jié)點不響應該廣播。
3、解決調度器內(nèi)核自帶的ICMP的重定向優(yōu)化問題:Linux內(nèi)核有一個ICMP優(yōu)化功能,
就是在client第一次訪問調度器時,調度器會將請求轉發(fā)給某一個web節(jié)點,在這時,Linux
自帶的ICMP優(yōu)化功能會發(fā)現(xiàn),客戶端可以直接和web節(jié)點通信,然后就會發(fā)送一個數(shù)據(jù)
包,告訴client,之后所有訪問200.0.0.254的數(shù)據(jù)包,直接發(fā)給那個web節(jié)點即可,這樣之
后所有的訪問請求都將直接發(fā)送給某一個web節(jié)點,而不再經(jīng)過調度器,這樣肯定也是不可
以的,無法達到負載均衡的效果了。所以需要關閉Linux內(nèi)核的ICMP重定向參數(shù)響應。
配置過程如下:
一、配置負載調度器(自行配置環(huán)境中除VIP以外的IP地址):
1、配置虛擬IP地址(VIP)
[root@LVS network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0 #在虛接口配置VIP
[root@LVS network-scripts]# vim ifcfg-ens33:0 #改動以下配置項
.............
IPADDR=200.0.0.254
NETMASK=255.255.255.0 #必須寫子網(wǎng)掩碼信息
NAME=ens33:0 #注意改網(wǎng)卡名稱
DEVICE=ens33:0
ONBOOT=yes
[root@LVS network-scripts]# systemctl restart network #重啟網(wǎng)卡使更改生效
[root@LVS network-scripts]# ifconfig #查詢相關IP是否配置正確
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 200.0.0.1 netmask 255.255.255.0 broadcast 200.0.0.255
inet6 fe80::2e1e:d068:9c41:c688 prefixlen 64 scopeid 0x20<link>
...........................
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 200.0.0.254 netmask 255.255.255.0 broadcast 200.0.0.255
ether 00:0c:29:77:2c:03 txqueuelen 1000 (Ethernet)
2、調整/proc相應參數(shù):
[root@LVS ~]# vim /etc/sysctl.conf #寫入下面三行
................
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS ~]# sysctl -p #刷新一下配置
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
3、配置負載分配策略:
[root@LVS ~]# modprobe ip_vs #加載ip_vs模塊
[root@LVS ~]# yum -y install ipvsadm #安裝ipvsadm工具
[root@LVS ~]# ipvsadm -C #清除原有策略
[root@LVS ~]# ipvsadm -A -t 200.0.0.254:80 -s rr #配置群集VIP及添加相關節(jié)點
[root@LVS ~]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.2:80 -g -w 1
[root@LVS ~]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.3:80 -g -w 1
[root@LVS ~]# ipvsadm-save #保存策略
[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm #導出策略備份
[root@LVS ~]# ipvsadm -ln #確認群集當前策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.0.0.254:80 rr
-> 200.0.0.2:80 Route 1 0 0
-> 200.0.0.3:80 Route 1 0 0
二、配置web節(jié)點服務器:
web節(jié)點服務器的VIP地址僅用來發(fā)送web響應數(shù)據(jù)包的源地址,并不需要監(jiān)聽客戶機的訪問請求(由調度器監(jiān)聽并分發(fā))。因此使用虛接口lo:0來承載VIP地址,并添加一條路由記錄,將訪問VIP的數(shù)據(jù)包限制在本地。
1、配置虛擬IP地址(VIP):
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@web1 network-scripts]# vim ifcfg-lo:0 #編輯該文件,只保留以下四行,并配置VIP
DEVICE=lo:0
IPADDR=200.0.0.254
NETMASK=255.255.255.255 #注意:子網(wǎng)掩碼必須是全為1。也就是4個255。
ONBOOT=yes
[root@LVS network-scripts]# systemctl restart network #重啟網(wǎng)卡使更改生效
[root@LVS network-scripts]# ifconfig #查詢VIP是否配置正確
............................
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 200.0.0.254 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
[root@web1 ~]# route add -host 200.0.0.254 dev lo:0 #添加VIP本地訪問路由記錄
[root@web1 ~]# vim /etc/rc.local #設置開機自動添加這條路由記錄
................................
/sbin/route add -host 200.0.0.254 dev lo:0
2、調整/proc響應參數(shù):
[root@web1 ~]# vim /etc/sysctl.conf #調整/proc響應參數(shù),寫入下面六行
...................
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@web1 ~]# sysctl -p #刷新一下
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
3、安裝并啟動httpd服務(可根據(jù)需求選擇搭建Nginx還是apache):
[root@web1 ~]# yum -y install httpd #安裝http服務
[root@web1 ~]# echo 1111111111111 > /var/www/html/index.html
#準備測試網(wǎng)頁,等看到負載均衡的效果后,再掛載共享存儲設備。
[root@web1 ~]# systemctl start httpd #啟動http服務
[root@web1 ~]# systemctl enable httpd #設置為開機自啟動
重復以上三個步驟,配置其他web節(jié)點服務器(我這里將另一個web節(jié)點的首頁文件改為了:2222222222222222)。
三、client訪問VIP,以便測試LVS群集:
若訪問到的是同一頁面,在排除配置上錯誤的情況下,可以打開多個網(wǎng)頁,或者稍等一會再刷新,因為它可能有一個保持連接的時間,所以會存在延遲。
四、配置NFS共享存儲:
測試出群集效果后,就需要部署共享存儲,以便所有的web節(jié)點可以向客戶機提供同樣的網(wǎng)頁文件,具體配置過程已經(jīng)寫在了這篇博文的末尾:Centos 7基于NAT(地址轉換)模式的負載均衡配置詳解。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享題目:Centos7基于DR(直接路由)模式的負載均衡配置詳解-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article24/ddojce.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、ChatGPT、品牌網(wǎng)站設計、全網(wǎng)營銷推廣、網(wǎng)站建設、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容