keepalived实现LVS_DR+HA高可用负载均衡

来源:互联网 发布:淘宝新开店铺骗局 编辑:程序博客网 时间:2024/05/17 19:17

LVS_DR模式是一种负载均衡的模式,但是存在一个问题,当后端其中一台RS down掉后,LBserver是不会将请求都转发到另一台RS的,这样就会导致一半的请求会访问失败,keepalive解决了这个问题。

lvs的核心服务是ipvsadm,配置lvs_dr模式时通过脚本配置ip和ipvsadm。而keepalived实际上就是直接通过配置文件实现上述功能。
而且我们可以增加一台服务器做keepalived的从服务器,实现keepalived服务的高可用性。

具体步骤
1.当然是先要下载keepalived服务啦(主从服务器都要下载)。

yum install -y keepalived

2.编辑配置文件 /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {    state MASTER   #表示主服务器,从上写BACKUP    interface eth0    virtual_router_id 51    priority 100   #优先级,从上设置99     advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.100.111  #VIP    }}virtual_server 192.168.100.111 80 {  #VIP    delay_loop 6    lb_algo rr  #轮询算法    lb_kind DR  #DR模式#    persistence_timeout 0  #这个就是设置一直转发到某台RS    protocol TCP    real_server 192.168.100.13 80 {   #RS1        weight 100 #权重        TCP_CHECK{            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }    real_server 192.168.100.12 80 {  #RS2        weight 100 #权重        TCP_CHECK{            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }}

这是主上的配置,从服务器上只需将state MASTER改为state BACKUP,priority 100改为priority 99即可。

*在测试之前有几个地方需要操作
1)LBserver上需要执行

echo 1 > /proc/sys/net/ipv4/ip_forward

2)RS上需要执行之前的lvs_rs.sh脚本

#!/bin/bashvip=192.168.100.111ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 uproute add -host $vip lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce
0 0