lvs+keepalived高可用

一、lvs节点配置(两台)

1.环境

VIP 10.0.0.19
lvs-01 10.0.0.9
lvs-02 10.0.0.12
web-01 10.0.0.10
web-02 10.0.0.11
lb01 10.0.0.13 (测试结果用)

2.下载安装包

[root@lvs-02 ~]#wget 
http://www.keepalived.org/software/keepalived-1.2.6.tar.gz
[root@lvs-02 ~]# ll *.gz
-rw-r--r--. 1 root root 284134 Sep  8 11:42 keepalived-1.2.6.tar.gz

3.安装keepalived(两台lvs)

[root@lvs-02 ~]# tar xf keepalived-1.2.6.tar.gz 
[root@lvs-02 ~]# cd keepalived-1.2.6
[root@lvs-02 ~]# yum install openssl-devel -y
[root@lvs-02 ~]# ln -s /usr/src/kernels/2.6.32-754.3.5.el6.x86_64/ /usr/local/linux/
[root@lvs-02 keepalived-1.2.6]# ./configure 
[root@lvs-02 keepalived-1.2.6]# make && make install
[root@lvs-02 ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@lvs-02 ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@lvs-02 ~]# mkdir /etc/keepalived
[root@lvs-02 ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@lvs-02 ~]# cp /usr/local/sbin/keepalived /usr/sbin/
/etc/init.d/keepalived start
[root@lvs-02 ~]# ps -ef|grep keepalived
root       3262      1  0 11:50 ?        00:00:00 keepalived -D
root       3264   3262  0 11:50 ?        00:00:00 keepalived -D
root       3265   3262  0 11:50 ?        00:00:00 keepalived -D
root       3271   1174  0 11:50 pts/0    00:00:00 grep keepalived

4.配置keepalived

4.1master节点

[root@lvs-01 ~]# cat -n /etc/keepalived/keepalived.conf   
     1  ! Configuration File for keepalived
     2
     3  global_defs {
     4     router_id LVS_1
     5  }
     6
     7  vrrp_instance VI_1 {
     8      state MASTER#keepalived 的角色 MASTER 表示主机是主服务器 BACKUP表示是以备用服务器
     9      interface eth0#指定监测的网络网卡
    10      virtual_router_id 51#虚拟路由标示
    11      priority 150#定义优先级 数字越大 优先级越高 MASTER的优先级必须大于BACKUP的优先级
    12      advert_int 1#设定主备之间检查时间 单位s
    13      authentication { #设定验证类型和密码
    14          auth_type PASS
    15          auth_pass 1111
    16      }
    17      virtual_ipaddress {#设定虚拟IP地址 可以设置多个 每行一个
    18          10.0.0.19/24
    19      }
    20  }
    21
    22  virtual_server 10.0.0.19 80 {###虚拟VIP
    23      delay_loop 6 #设定运行情况检查时间 单位s
    24      lb_algo wrr#负载调度算法 wrr即权重轮叫算法
    25      lb_kind DR#设置LVS负载机制 NAT TUN DR 三种模式可选
    26      nat_mask 255.255.255.0
    27      persistence_timeout 50#会话保持时间#有了这个会话保持功能 用户的请求会被一直分发到某个服务节点,如果用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点,如果用户一直有动作,不受50s限制
    28      protocol TCP#协议
    29
    30      real_server 10.0.0.10 80 {###RS服务器
    31          weight 1#服务节点权值,数字越大,权值越高
    32          TCP_CHECK {#状态检查部分 
    33              connect_timeout 3 #3s无响应超时    
    34              nb_get_retry 3 #重试次数
    35              delay_before_retry 3#重试间隔
    36              connect_port 80 #连接端口  
    37          }
    38      }
    39      real_server 10.0.0.11 80 {
    40          weight 1
    41          TCP_CHECK {
    42              connect_timeout 3
    43              nb_get_retry 3
    44              delay_before_retry 3
    45              connect_port 80
    46          }
    47      }
    48  }
    49

4.2backup节点

与master配置的不同之处
4 router_id LVS_2
8 state BACKUP #备节点
11 priority 100 #优先级要比主节点小

5.重启keepalived

[root@lvs-01 ~]# /etc/init.d/keepalived restart
Stopping keepalived:                                       [  OK  ]
Starting keepalived:                                       [  OK  ]
[root@lvs-02 ~]# /etc/init.d/keepalived restart
Stopping keepalived:                                       [  OK  ]
Starting keepalived:                                       [  OK  ]

二、RS节点配置(两台web)

1.测试web服务

[root@web-01 ~]# curl 10.0.0.10
10.0.0.10
[root@web-02 ~]# curl 10.0.0.11
10.0.0.11

2.脚本管理

[root@web-01 ~]# cat ipvs_client.sh 
#!/bin/bash
. /etc/init.d/functions
IP=10.0.0.19
start(){
        ifconfig lo:1 ${IP}/32 up
        route add -host $IP dev lo
        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 
        action "ipvs client start ..." /bin/true
}
stop(){
        ifconfig lo:1 down
        route del -host $IP
        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 
        action "ipvs client stop ..." /bin/true
}
restart(){
        start
        stop
}
case $1 in 
start)
        start
;;
stop)
        stop
;;
restart)
        restart
;;
*)
        echo "Usage: $0 {start|stop|restart}"
esac

3.启动脚本

[root@web-01 ~]# cp ipvs_client.sh /usr/local/bin/ipvs_client 
[root@web-02 ~]# cp ipvs_client.sh /usr/local/bin/ipvs_client 
[root@web-01 ~]# ipvs_client start
ipvs client start ...                                      [  OK  ]
[root@web-02 ~]# ipvs_client start
ipvs client start ...

三、测试

1.打开另一台虚拟机或者浏览器

[root@lb01 ~]# ifconfig eth0|grep -w 10.0.0
          inet addr:10.0.0.13  Bcast:10.0.0.255  Mask:255.255.255.0

2.查看均衡器节点

[root@lvs-01 ~]# ip add|grep 10.0.0.19|wc -l
1
[root@lvs-02 ~]#  ip add|grep 10.0.0.19|wc -l
0
[root@lb01 ~]# for num in `seq 4`;do curl 10.0.0.19 ;done
10.0.0.10
10.0.0.11
10.0.0.10
10.0.0.11

3.停掉lvs-01

[root@lvs-01 ~]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]
[root@lvs-01 ~]# ip add|grep 10.0.0.19|wc -l
0
[root@lvs-02 ~]#  ip add|grep 10.0.0.19|wc -l
1
[root@lb01 ~]# for num in `seq 4`;do curl 10.0.0.19 ;done
10.0.0.10
10.0.0.11
10.0.0.10
10.0.0.11

猜你喜欢

转载自blog.csdn.net/liang_operations/article/details/82557310
今日推荐