創(chuàng)新互聯(lián)負載均衡(Cloud Load Balancer)是對多臺云服務(wù)器進行流量分發(fā)的服務(wù)。創(chuàng)新互聯(lián)負載均衡可以通過流量分發(fā)擴展應(yīng)用系統(tǒng)對外的服務(wù)能力,通過消除單點故障提升應(yīng)用系統(tǒng)的可用性。創(chuàng)新互聯(lián)負載均衡服務(wù)通過設(shè)置虛擬服務(wù)地址(VIP),將位于同一地域的多臺云服務(wù)器資源虛擬成一個高性能、高可用的應(yīng)用服務(wù)池。根據(jù)應(yīng)用指定的方式,將來自客戶端的網(wǎng)絡(luò)請求分發(fā)到云服務(wù)器池中。創(chuàng)新互聯(lián)負載均衡服務(wù)會檢查云服務(wù)器池中云服務(wù)器實例的健康狀態(tài),自動隔離異常狀態(tài)的實例,從而解決了云服務(wù)器的單點問題,同時提高了應(yīng)用的整體服務(wù)能力。今天創(chuàng)新互聯(lián)給大家介紹下LVS負載均衡群集——keepalived+DR實現(xiàn)原理及工作模式
雁山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
keepalived采用vrrp熱備份協(xié)議,實現(xiàn)Linux云服務(wù)器的多機熱備功能
vrrp,虛擬路由冗余協(xié)議,是針對路由器的一種備份解決方案
keepalived可實現(xiàn)多機熱備,每個熱備組有多臺服務(wù)器,最常用的就是雙機熱備
雙機熱備的故障切換是由虛擬IP地址的漂移來實現(xiàn),適用于各種應(yīng)用服務(wù)器
虛擬ip 192.168.100.10
lvs1調(diào)度服務(wù)器 192.168.100.100
lvs2調(diào)度服務(wù)器 192.168.100.111
web1服務(wù)器 192.168.100.200
web2服務(wù)器 192.168.100.222
client測試機 192.168.100.20
[root@lvs1 ~]# yum install keepalived ipvsadm -y
[root@lvs1 ~]# vim /etc/sysctl.conf ##配置路由轉(zhuǎn)發(fā)功能
net.ipv4.ip_forward=1 ##路由功能
##proc響應(yīng)關(guān)閉重定向功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs1 ~]# sysctl -p ##加載生效
[root@lvs1 ~]# cd /etc/sysconfig/network-scripts/
[root@lvs1 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0 ##復(fù)制虛擬網(wǎng)卡的配置文件
[root@lvs1 network-scripts]# vim ifcfg-ens33:0
DEVICE=ens33:0 ##添加配置文件信息,原有的信息刪除
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@lvs1 network-scripts]# cd /etc/init.d/ ##創(chuàng)建腳本便于service使用
[root@lvs1 init.d]# vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10 ##虛擬ip
RIP1=192.168.100.200 ##真實web服務(wù)器ip
RIP2=192.168.100.222
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm ##保存配置
systemctl start ipvsadm ##啟動服務(wù)
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
##設(shè)置ens33:0地址,廣播地址,子網(wǎng)掩碼,并開啟
/sbin/route add -host $VIP dev ens33:0 ##添加路由網(wǎng)段信息
/sbin/ipvsadm -A -t $VIP:80 -s rr ##指定虛擬服務(wù)訪問入口,指定輪詢算法
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ##指定真實服務(wù)器,dr模式
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C ##清空緩存
systemctl stop ipvsadm ##關(guān)閉服務(wù)
ifconfig ens33:0 down ##關(guān)閉接口
route del $VIP ##刪除路由信息
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then ##判斷文件存在與否決定狀態(tài)
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
[root@lvs1 init.d]# chmod +x dr.sh ##給執(zhí)行權(quán)限
[root@lvs1 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改網(wǎng)卡信息
BOOTPROTO=static
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@lvs1 init.d]# service network restart ##重啟網(wǎng)絡(luò)服務(wù)
[root@lvs1 init.d]# ifup ens33:0 ##開啟虛擬網(wǎng)卡
[root@lvs1 init.d]# service dr.sh start ##開啟lvs服務(wù)
ipvsadm starting --------------------[ok]
[root@lvs1 init.d]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@lvs1 init.d]# setenforce 0
[root@lvs2 ~]# yum install keepalived ipvsadm -y
[root@lvs2 ~]# vim /etc/sysctl.conf ##配置路由轉(zhuǎn)發(fā)功能
net.ipv4.ip_forward=1 ##路由功能
##proc響應(yīng)關(guān)閉重定向功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs2 ~]# sysctl -p ##加載生效
[root@lvs2 ~]# cd /etc/sysconfig/network-scripts/
[root@lvs2 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0 ##復(fù)制虛擬網(wǎng)卡的配置文件
[root@lvs2 network-scripts]# vim ifcfg-ens33:0
DEVICE=ens33:0 ##添加配置文件信息,原有的信息刪除
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@lvs2 network-scripts]# cd /etc/init.d/ ##創(chuàng)建腳本便于service使用
[root@lvs2 init.d]# vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10 ##虛擬ip
RIP1=192.168.100.200 ##真實web服務(wù)器ip
RIP2=192.168.100.222
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm ##保存配置
systemctl start ipvsadm ##啟動服務(wù)
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
##設(shè)置ens33:0地址,廣播地址,子網(wǎng)掩碼,并開啟
/sbin/route add -host $VIP dev ens33:0 ##添加路由網(wǎng)段信息
/sbin/ipvsadm -A -t $VIP:80 -s rr ##指定虛擬服務(wù)訪問入口,指定輪詢算法
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ##指定真實服務(wù)器,dr模式
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C ##清空緩存
systemctl stop ipvsadm ##關(guān)閉服務(wù)
ifconfig ens33:0 down ##關(guān)閉接口
route del $VIP ##刪除路由信息
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then ##判斷文件存在與否決定狀態(tài)
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
[root@lvs2 init.d]# chmod +x dr.sh ##給執(zhí)行權(quán)限
[root@lvs2 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改網(wǎng)卡信息,切換為僅主機模式
BOOTPROTO=static
IPADDR=192.168.100.111
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@lvs2 init.d]# service network restart ##重啟網(wǎng)絡(luò)服務(wù)
[root@lvs2 init.d]# ifup ens33:0 ##開啟虛擬網(wǎng)卡
[root@lvs2 init.d]# service dr.sh start ##開啟lvs服務(wù)
ipvsadm starting --------------------[ok]
[root@lvs2 init.d]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@lvs2 init.d]# setenforce 0
[root@web1 ~]# yum install httpd -y ##安裝web服務(wù)
[root@web1 ~]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@web1 ~]# setenforce 0
[root@web1 ~]# echo "this is kgc web" > /var/www/html/index.html ##創(chuàng)建網(wǎng)站頁面
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp -p ifcfg-lo ifcfg-lo:0 ##修改回環(huán)網(wǎng)卡的虛擬網(wǎng)卡
[root@web1 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
[root@web1 network-scripts]# cd /etc/init.d/
[root@web1 init.d]# vim web.sh ##編寫arp腳本
#!/bin/bash
VIP=192.168.100.10
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore ##arp忽略
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore ##arp開啟
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stopd"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
[root@web1 init.d]# chmod +x web.sh ##給權(quán)限
[root@web1 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改網(wǎng)卡,僅主機模式
BOOTPROTO=static
IPADDR=192.168.100.200
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@web1 init.d]# service network restart ##重啟網(wǎng)絡(luò)服務(wù)
[root@web1 init.d]# service web.sh start ##啟動腳本
RealServer Start OK
[root@web1 init.d]# systemctl start httpd.service ##開啟web服務(wù)
[root@web1 init.d]# ifup lo:0 ##開啟回環(huán)虛擬網(wǎng)卡
[root@web2 ~]# yum install httpd -y ##安裝web服務(wù)
[root@web2 ~]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@web2 ~]# setenforce 0
[root@web2 ~]# echo "this is accp web" > /var/www/html/index.html ##創(chuàng)建網(wǎng)站頁面
[root@web2 ~]# cd /etc/sysconfig/network-scripts/
[root@web2 network-scripts]# cp -p ifcfg-lo ifcfg-lo:0 ##修改回環(huán)網(wǎng)卡的虛擬網(wǎng)卡
[root@web2 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
[root@web2 network-scripts]# cd /etc/init.d/
[root@web2 init.d]# vim web.sh ##編寫arp腳本
#!/bin/bash
VIP=192.168.100.10
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore ##arp忽略
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore ##arp開啟
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stopd"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
[root@web2 init.d]# chmod +x web.sh ##給權(quán)限
##配置web2網(wǎng)卡(僅主機模式)
[root@web2 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ##修改網(wǎng)卡,僅主機模式
BOOTPROTO=static
IPADDR=192.168.100.222
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@web2init.d]# service network restart ##重啟網(wǎng)絡(luò)服務(wù)
[root@web2init.d]# service web.sh start ##啟動腳本
RealServer Start OK
[root@web2 init.d]# systemctl start httpd.service ##開啟web服務(wù)
[root@web2 init.d]# ifup lo:0 ##開啟回環(huán)虛擬網(wǎng)卡
[root@lvs1 init.d]# vim /etc/keepalived/keepalived.conf
global_defs {
...
smtp_server 127.0.0.1 #指向本地
router_id LVS_01 #指定名稱,備份服務(wù)器不同名稱
...
}
vrrp_instance VI_1 {
state MASTER #備份服務(wù)器是BACKUP
virtual_router_id 10 #組號相同
...
auth_pass abc123 #驗證密碼
priority 100 #優(yōu)先級備份小于主
...
virtual_ipaddress {
192.168.100.10
}
...
virtual_server 192.168.100.10 80 {
...
real_server 192.168.100.200 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.100.222 80 {
weight 1
TCP_CHECK { #tcp
connect_port 80 #添加端口
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@lvs1 init.d]# systemctl start keepalived.service
[root@lvs1 init.d]# scp /etc/keepalived/keepalived.conf root@192.168.100.111:/etc/keepalived/
##復(fù)制到lvs2服務(wù)器上
[root@lvs2 init.d]# vim /etc/keepalived/keepalived.conf ##修改keepalive配置文件
router_id LVS_02 ##router_id不能相同
...
state BACKUP ##備服務(wù)器
...
priority 90 ##優(yōu)先級低于主服務(wù)器
[root@lvs2 init.d]# systemctl start keepalived.service ##啟動keepalive服務(wù)
如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)官網(wǎng)找我們的專業(yè)技術(shù)工程師的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗了,所以會比小編回答的更加詳細專業(yè)。創(chuàng)新互聯(lián)官網(wǎng)鏈接www.rwnh.cn
網(wǎng)站欄目:keepalived+DR實現(xiàn)原理及工作模式
分享路徑:http://www.rwnh.cn/article40/ghdieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、手機網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)