更新時間:2022-09-20 09:44:21 來源:動力節(jié)點 瀏覽2363次
有些小伙伴對lvs負載均衡還不是很了解,動力節(jié)點小編來告訴大家。LVS負載均衡技術(shù)實現(xiàn)是基于Linux內(nèi)核模塊IPVS,與iptables一樣是直接工作在內(nèi)核中,互聯(lián)網(wǎng)主流的Linux發(fā)行版默認都已經(jīng)集成了ipvs模塊,因此只需安裝管理工具ipvsadm,所需軟件ipvsadm-1.2.4.tar.gz軟件,安裝配置步驟如下:
1.下載安裝Ipvsadm
(1)基于源碼安裝:
wget -c http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
ln -s /usr/src/kernels/2.6.* /usr/src/linux
tar -xzf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
(2)基于yum安裝:
yum -y install ipvsadm
2.配置
Ipvsadm軟件安裝完畢后,需要進行配置,主要配置方法有三步:添加虛擬服務(wù)器IP,添加realserver后端服務(wù)及啟動LVS服務(wù)器VIP地址,配置代碼如下:
ipvsadm -A -t 192.168.33.188:80 -s rr
ipvsadm -a -t 192.168.33.188:80 -r 192.168.33.12 -g -w 2
ipvsadm -a -t 192.168.33.188:80 -r 192.168.33.13 -g -w 2
其中 -A表示添加一個VIP,-s表示LVS均衡算法為rr(輪訓(xùn)模式),-t為tcp
其中-a表示添加一個真實后端機器,-r指定后端真實機器的ip,-w表示權(quán)重為2(在每次重啟keepalive時優(yōu)先級會加2),-g表示指定LVS負載均衡轉(zhuǎn)發(fā)方式為DRLVS ipvsadm配置參數(shù)說明:
? ? -A? ? ? ? ?增加一臺虛擬服務(wù)器VIP地址;
? ? -t? ? ? ? ?虛擬服務(wù)器提供的是tcp服務(wù);
? ? -s? ? ? ? ?使用的調(diào)度算法;
? ? -a? ? ? ? ?在虛擬服務(wù)器中增加一臺后端真實服務(wù)器;
? ? -r? ? ? ? ?指定真實服務(wù)器地址;
? ? -w? ? ? ? ?后端真實服務(wù)器的權(quán)重;
-m?????????設(shè)置當前轉(zhuǎn)發(fā)方式為NAT模式;-g為直接路由模式;-i? 模式為隧道模式
ipvsadm -L -n 查看當前的均衡狀態(tài)
3.可以使用Shell腳本自動部署LVS相關(guān)軟件及配置:
#!/bin/bash
SNS_VIP=$2
SNS_RIP1=$3
SNS_RIP2=$4
if [ "$1" == "stop" -a -z "$2" ];then
echo "------------------------------------------"
echo -e "\033[32mPlease Enter $0 stop LVS_VIP\n\nEXample:$0 stop 192.168.1.111\033[0m"
echo
exit
else
if [ -z "$2" -a -z "$3" -a -z "$4" ];then
echo "----------------------------------------"
echo -e "\033[32mPlease Enter Input $0 start VIP REALSERVER1 REALSERVER2\n\nEXample:$0 start/stop 192.168.1.111 192.168.1.2 192.168.1.3\033[0m"
echo
exit 0
fi
fi
. /etc/rc.d/init.d/functions
logger $0 called with $1
function IPVSADM(){
/sbin/ipvsadm --set 30 5 60
/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up
/sbin/route add -host $SNS_VIP dev eth0:0
/sbin/ipvsadm -A -t $SNS_VIP:80 -s wlc -p 120
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1
}
case "$1" in
start)
IPVSADM
echo "-----------------------------------------------------"
/sbin/ipvsadm -Ln
touch /var/lock/subsys/ipvsadm > /dev/null 2>&1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
ifconfig eth0:0 down >>/dev/null 2>&1
route del $SNS_VIP >>/dev/null 2>&1
rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1
echo "ipvsadm stopped!"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ]
then
echo "ipvsadm stopped!"
exit 1
else
echo "ipvsadm started!"
fi
;;
*)
echo "Usage: $0 {start | stop | status}"
exit 1
esac
exit 0
4.Nginx客戶端realserver配置VIP腳本:
#!/bin/sh
#LVS Client Server
VIP=192.168.33.188
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
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"
exit 0
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
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 Stoped OK"
exit 1
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
LVS+后端Realserver服務(wù)器配置同一個VIP地址,而且后端機器配置在lo網(wǎng)卡;
只有LVS服務(wù)器的VIP能夠響應(yīng)路由器發(fā)起ARP廣播響應(yīng),后端Realserver禁止ARP廣播響應(yīng);
arp_ignore=1 #抑制lo網(wǎng)卡回應(yīng)ARP請求,只回應(yīng)目標IP(VIP)是本地物理網(wǎng)卡配置上的IP;
arp_announce=2 #當Realserver接收到請求之后,此時的源IP(VIP),網(wǎng)卡不能出去的,請求回應(yīng)時,可以通過本機其他的網(wǎng)卡將數(shù)據(jù)發(fā)出,可以忽略源IP地址,盡量匹配跟目標機器能夠聯(lián)通的網(wǎng)卡IP;
如果單臺LVS發(fā)生突發(fā)情況,例如宕機、發(fā)生不可恢復(fù)現(xiàn)象,會導(dǎo)致用戶無法訪問后端所有的應(yīng)用程序。避免這種問題可以使用HA故障切換,也就是有一臺備用的LVS,主LVS 宕機,LVS VIP自動切換到從,可以基于LVS+Keepalived實現(xiàn)負載均衡及高可用功能,滿足網(wǎng)站7x24小時穩(wěn)定高效的運行。
Keepalived基于三層檢測(IP層,TCP傳輸層,及應(yīng)用層),主要用于檢測WEB服務(wù)器的狀態(tài),如果有一臺WEB服務(wù)器死機,或工作出現(xiàn)故障,Keepalived檢測到并將有故障的WEB服務(wù)器從系統(tǒng)中剔除;
當后端一臺WEB服務(wù)器工作正常后Keepalived自動將WEB服務(wù)器加入到服務(wù)器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復(fù)故障的WEB服務(wù)器。
需要注意,如果使用了keepalived.conf配置,就不需要再執(zhí)行ipvsadm -A命令去添加均衡的realserver命令了,所有的配置都在keepalived.conf里面設(shè)置即可。本站的Linux教程技術(shù)文檔中,還有更多相關(guān)知識等著大家去學(xué)習(xí),希望對大家能夠給有所幫助。