首页 > 代码库 > LVS(DR) + Keepalive实现负载均衡
LVS(DR) + Keepalive实现负载均衡
环境:
MASTER:192.168.10.34 (LVS+KEEPALIVE)
SLAVE: 192.168.10.33 (LVS+KEEPALIVE)
WEB1: 192.168.10.35 (NGINX)
WEB2: 192.168.10.38 (NGINX)
VIP:192.168.10.201
一.服务端:
安装lvs、keepalive服务
yum -y install keepalive ipvsadm
开启转发
echo "1" > /proc/sys/net/ipv4/ip_forward
进行keepalive的主要配置
vim /etc/keepalived/keepalived.conf
<1>.vrrp_instance VI_1 {
state MASTER/BACKUP #定义主/从DR
interface eth0 #定义绑定的端口
priority 100 #定义优先级,从调度的值要小于主调度
virtual_ipaddress {
192.168.10.201 #定义VIP
}
}
<2>.vitrual_server 192.168.10.201 80 {
delay 1 #探测的时间间隔
lb_algo rr #轮询调度
lb_kind DR #MAC路由模式
persistence_timeout 0 #一定时间内对于同一IP的请求调度到同一Server上
protocol TCP #TCP协议
real_server 192.168.10.35 80 { #定义后端服务器
weight 1 #权重
http_check {
connect_timeout 3 #探测超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试时间间隔
}
}
real_server 192.168.10.38 80 { #定义后端服务器
weight 1 #权重
http_check {
connect_timeout 3 #探测超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试时间间隔
}
}
}
4.开启服务
/etc/init.d/keepalived start
当开启keepalived服务时,也会自带启动Ipvsadm.此时用ip addr可以查看到vip已经绑定到相应端口,而通过
ipvsadm -Ln 可以检测相应的调度配置与调度情况。
二.后端服务器组
1.调整arp响应
<1>.echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
<2>.echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
<3>.echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
<4>.echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
2.vip绑定
<1>.ifconfig lo:0 192.168.10.201 broadcast 192.168.10.201 netmask 255.255.255.255 up
<2>.route add -host 192.168.10.201 dev lo:0
3.开启WEB服务(略)
三.测试
1.客户端多次访问,检测是否可以分别从web组的设备获取数据
<--
for i in `seq 10`
do
wget -e http_proxy="192.168.10.201" www.baidu.com -O /dev/null
done
-->
2.故障处理
(1).关闭MASTER端的Keepalive,检测VIP漂移
<1>.master:ipvsadm -Ln 为空
<2>.网卡的vip已取消
<3>.Slave端的VIP与ipvsadm自动衔接
(2).关闭集群中的某台web服务器
检测ipvsadm -Ln ,相应的调度已经删除
(3).“主”调度恢复,“从”调度自动退还VIP,并置状态为BACKUP,由“主”调度接管
(4).后端服务器恢复,自动将节点加入调度队列
LVS(DR) + Keepalive实现负载均衡