规划
机器 | 作用 |
---|---|
10.1.1.50 | 主 ,同时realserver |
10.1.1.51 | 从 ,同时realserver |
一般情况下lvs与realserver是分开的不同的机器(realserver.sh是部署到realserver服务器,realserver就是需要转发到的目标机器),我这里是装一起既当lvs又当realserver
图片与本次部署无关
安装
在lvs每台机器上安装
yum install ipvsadm keepalived -y
ipvsadm --set 7200 5 60
配置lvs
|
global_defs {
router_id LVS_1
}
vrrp_instance VI_1 {
state MASTER #从时为:BACKUP
interface eth0 #机器网卡
virtual_router_id 51
priority 100 #从时换成:90
advert_int 1
authentication {
auth_type PASS
auth_pass 12345678
}
virtual_ipaddress {
#vip
10.1.1.200/32 dev eth0 label eth0:0
}
}
virtual_server 10.1.1.200 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
persistence_timeout 7200
real_server 10.1.1.50 3306 {
weight 2
TCP_CHECK {
connect_port 3306
connect_timeout 1
nb_get_retry 2
delay_before_retry 1
}
}
real_server 10.1.1.51 3306 {
weight 2
TCP_CHECK {
connect_port 3306
connect_timeout 1
nb_get_retry 2
delay_before_retry 1
}
} real_server 10.1.1.52 3306 {
weight 2
TCP_CHECK {
connect_port 3306
connect_timeout 1
nb_get_retry 2
delay_before_retry 1
}
}
}
开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward
文件授权
chmod 664 /etc/keepalived/keepalived.conf
启动keepalived
systemctl start keepalived.service
设置配置脚本
在每台realserver服务器上操作
vim lvs_realserver.sh
#!/bin/bash
SNS_VIP=10.1.1.200
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_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"
;;
stop)
ifconfig lo:0 down
route del $SNS_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"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
这个脚本除了VIP其他都是固定写法,
执行脚本
chmod +x lvs_realserver.sh
./lvs_realserver.sh start
排查
查看/var/log/keepalived.log日志是否启动成功??
ipvsadm -ln查看是否正常
ipvsadm -ln --stats查看是否主才有数据,备没有数据
curl vip,然后查看ipvsadm -lnc数据是否异常
删除
ifconfig lo:0 down
route del 192.168.31.38