利用lvs+keepalived实现高可用负载均衡环境的部署

时间:2021-04-08 03:09:08

http://wangwq.blog.51cto.com/8711737/1852212


,运行即可(注意脚本的VIP,不同的realserver对应不同的VIP)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
vim  /usr/local/bin/lvs_real .sh
 
#! /bin/sh  
# descript :start RealServer.
VIP=192.168.30.88
. /etc/rc .d /init .d /functions 
case "$1"  in 
        start) 
              echo  "start LVS of RealServer" 
              /sbin/ifconfig  lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 
              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 
                ;; 
        stop) 
              /sbin/ifconfig  lo:0 down 
              echo  "close LVS of RealServer" 
              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  "Usage : $0 {start|stop}" 
               exit 
esac

保存退出后,运行此脚本:

1
/usr/local/bin/lvs_real .sh start

    然后查看网卡信息

1
ip addr

查看lo网卡是否有vip,如果有,则配置启动成功。


三、iptables设置


在两台lvs调度器和realserver上都开启相应的端口,本次使用的端口是8080、80878088,在realserver上只做对应端口的iptables即可。

在两台lvs均衡器上增加如下几条:

1
2
3
4
5
6
7
8
9
vim  /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A INPUT -pvrrp -j ACCEPT
 
:wq 保存退出
service iptables restart

Realserver上,查看有没有如下的规则,一般都是有的:

realserver1

1
2
3
4
vim  /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT

realserver2

1
2
3
4
vim  /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT

    realserver3

1
2
3
vim  /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

    realserver4

1
2
3
vim  /etc/sysconfig/iptables
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

各自重启iptables

1
service iptables restart

    重启keepalived

1
/etc/init .d /keepalived  restart

查看日志

1
tail  -f  /var/log/messages

看各自状态是否正常,再看ip信息

1
ip addr

master的网卡上会显示vipbackup不显示


测试:

使用两个终端,先动态查看backup的日志

1
tail  -f  /var/log/messages

再停掉master,看backup的日志变化,是否会自动切换成master,如果能,则正常;

再开启master,看backup的日志变化,是否会再次切换到backup,如果能,则正常。


在别的机器上使用telnet连接vip,在主调度器上用ipvsadm -ln命令查看请求是否正常轮询。

至此,lvs+keepalived的搭建配置基本完成。