本文主要是介绍LVS-DR集群构建脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一.在LVS主节点上的配置
二.真实设备RS上的配置
三.客户端测试
一.在LVS主节点上的配置
[root@main ~]# cat /etc/init.d/lvs-dr
#!/bin/bash
LOCK=/var/lock/ipvsadm.lock
VIP=192.168.2.100 #修改为自己的VIP地址
RIP1=192.168.2.131 #第一个真实设备的地址
RIP2=192.168.2.132 #第二个真实设备的地址
DipName=ens33 #自己网卡设备的名称
. /etc/rc.d/init.d/functions
start() {PID=`ipvsadm -Ln | grep ${VIP} | wc -l`if [ $PID -gt 0 ];thenecho "The LVS-DR Server is already running !"else#VIP的相关设置/sbin/ifconfig ${DipName}:130 $VIP broadcast $VIP netmask 255.255.255.0 up/sbin/route add -host $VIP dev ${DipName}:130/sbin/ipvsadm -C#这里是进行LV-DR的配置,若是需要修改调度方式、权重、主机地址等是在这里更改/sbin/ipvsadm -At $VIP:80 -s rr/sbin/ipvsadm -at $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -at $VIP:80 -r $RIP2:80 -g/bin/touch $LOCKecho "starting LVS-DR Server is ok !"fi
}
stop() {/sbin/ipvsadm -C/sbin/route del -host $VIP dev ${DipName}:130/sbin/ifconfig ${DipName}:130 down >/dev/nullrm -rf $LOCKecho "stopping LVS-DR server is ok !"
}
status() {if [ -e $LOCK ];thenecho "The LVS-DR Server is already running !"elseecho "The LVS-DR Server is not running !"fi
}
case "$1" instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo "Usage: $1 {start|stop|restart|status}"exit 1
esac
exit 0
[root@main ~]# systemctl daemon-reload
[root@main ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.100:80 rr-> 192.168.2.131:80 Route 1 0 0 -> 192.168.2.132:80 Route 1 0 0
二.真实设备RS上的配置
绑定VIP。这一步操作可以将此脚本保存到主节点上,通过ansible的copy、shell、service模块等传到各个节点上应用即可
[root@servera ~]# cat /etc/init.d/lvs-dr
#!/bin/bash
LOCK=/var/lock/ipvsadm.lock
VIP=192.168.2.100 #要绑定的VIP的地址
. /etc/rc.d/init.d/functions
start() {PID=`ifconfig | grep lo:130 | wc -l`if [ $PID -ne 0 ];thenecho "The LVS-DR-RIP Server is already running !"else/sbin/ifconfig lo:130 $VIP netmask 255.255.255.255 broadcast $VIP up/sbin/route add -host $VIP dev lo:130echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/ens33/arp_ignore #修改为自己的网卡设备名称echo "2" >/proc/sys/net/ipv4/conf/ens33/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce/bin/touch $LOCKecho "starting LVS-DR-RIP server is ok !"fi
}
stop() {/sbin/route del -host $VIP dev lo:130/sbin/ifconfig lo:130 down >/dev/nullecho "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/ens33/arp_ignore #修改echo "0" >/proc/sys/net/ipv4/conf/ens33/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announcerm -rf $LOCKecho "stopping LVS-DR-RIP server is ok !"
}
status() {if [ -e $LOCK ];thenecho "The LVS-DR-RIP Server is already running !"elseecho "The LVS-DR-RIP Server is not running !"fi
}
case "$1" instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo "Usage: $1 {start|stop|restart|status}"exit 1
esac
exit 0
[root@servera ~]# systemctl daemon-reload
[root@servera ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 ens33
172.16.76.0 192.168.2.130 255.255.255.192 UG 0 0 0 tunl0
172.16.173.192 192.168.2.132 255.255.255.192 UG 0 0 0 tunl0
172.16.196.192 0.0.0.0 255.255.255.192 U 0 0 0 *
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.2.100 0.0.0.0 255.255.255.255 UH 0 0 0 lo
#添加成功
三.客户端测试
[root@serverc ~]# for ((i=1;i<=10;i++)) ; do curl 192.168.2.100; done
192.168.2.132
192.168.2.131
192.168.2.132
192.168.2.131
192.168.2.132
192.168.2.131
192.168.2.132
192.168.2.131
192.168.2.132
192.168.2.131
这篇关于LVS-DR集群构建脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!