LVS+Keepalived搭建高性能负载均衡环境

系统       Centos   5.2

IP信息列表

名称                                              IP

  • LVS-DR-Master                120.72.47.197
  • LVS-DR-BACKUP              120.72.47.196
  • LVS-DR-VIP                       120.72.47.194
  • WEB1-Realserver              120.72.47.195
  • WEB2-Realserver              120.72.47.218

安装LVS和Keepalvied软件包

  下载软件包

      wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
      wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

首先检测内核版本

# uname -r
2.6.18-128.el5

ln -s /usr/src/kernels/2.6.18-128.el5-i686/  /usr/src/linux

tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24

make && make install

cd ..

tar zxvf keepalived-1.1.15.tar.gz

cd keepalived-1.1.15

#./configure  && make && make install

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/sbin/keepalived /usr/sbin/

mkdir /etc/keepalived

LVS-DR-Master上配置keepalived.conf

vi /etc/keepalived/keepalived.conf

      ! Configuration File for keepalived

  • global_defs {
  •    notification_email {
  •          wvuu@msn.com
  •    }
  •    notification_email_from sns-lvs@gmail.com
  •    smtp_server 127.0.0.1
  •   # smtp_connect_timeout 30
  •    router_id LVS_DEVEL
  • }
  • # VIP1
  • vrrp_instance VI_1 {
  •     state MASTER             #备份服务器上将MASTER改为BACKUP   
  •     interface eth0
  •     virtual_router_id 51
  •     priority 100    # 备份服务上将100改为99
  •     advert_int 1
  •     authentication {
  •         auth_type PASS
  •         auth_pass 1111
  •     }
  •     virtual_ipaddress {
  •         120.72.47.194   
  •         #(如果有多个VIP,继续换行填写.)
  •     }
  • }
  • virtual_server 120.72.47.194 80 {
  •     delay_loop 6                  #(每隔10秒查询realserver状态)
  •     lb_algo wrr                  #(lvs 算法)
  •     lb_kind DR                  #(Direct Route)
  •     persistence_timeout 60        #(同一IP的连接60秒内被分配到同一台realserver)
  •     protocol TCP                #(用TCP协议检查realserver状态)
  •     real_server 120.72.47.195 80 {
  •         weight 3               #(权重)
  •         TCP_CHECK {
  •         connect_timeout 10       #(10秒无响应超时)
  •         nb_get_retry 3
  •         delay_before_retry 3
  •         connect_port 80
  •         }
  •     }
  •     real_server 120.72.47.218 80 {
  •         weight 3
  •         TCP_CHECK {
  •         connect_timeout 10
  •         nb_get_retry 3
  •         delay_before_retry 3
  •         connect_port 80
  •         }
  •      }
  • }

LVS-DR-BACKUP上配置keepalived.conf

vi /etc/keepalived/keepalived.conf

      ! Configuration File for keepalived

  • global_defs {
  •    notification_email {
  •          wvuu@msn.com
  •    }
  •    notification_email_from sns-lvs@gmail.com
  •    smtp_server 127.0.0.1
  •   # smtp_connect_timeout 30
  •    router_id LVS_DEVEL
  • }
  • # VIP1
  • vrrp_instance VI_1 {
  •     state BACKUP            
  •     interface eth0
  •     virtual_router_id 51
  •     priority 99
  •     advert_int 1
  •     authentication {
  •         auth_type PASS
  •         auth_pass 1111
  •     }
  •     virtual_ipaddress {
  •         120.72.47.194   
  •         
  •     }
  • }
  • virtual_server 120.72.47.194 80 {
  •     delay_loop 6                  
  •     lb_algo wrr                  
  •     lb_kind DR                  
  •     persistence_timeout 60       
  • realserver)
  •     protocol TCP               
  •     real_server 120.72.47.195 80 {
  •         weight 3               
  •         TCP_CHECK {
  •         connect_timeout 10       
  •         nb_get_retry 3
  •         delay_before_retry 3
  •         connect_port 80
  •         }
  •     }
  •     real_server 120.72.47.218 80 {
  •         weight 3
  •         TCP_CHECK {
  •         connect_timeout 10
  •         nb_get_retry 3
  •         delay_before_retry 3
  •         connect_port 80
  •         }
  •      }
  • }

 

Realserver脚本 (在两台WEB-Realserver上运行)

vi /usr/local/sbin/realserver.sh

 #!/bin/bash

  •         # description: Config realserver lo and apply noarp
  •         
  •         
  •         SNS_VIP=120.72.47.194
  •          
  •         . /etc/rc.d/init.d/functions
  •          
  •         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
  •      

至此全部安装完毕

启动Keepalvied

/etc/rc.d/init.d/keepalvied start

查看lvs服务是否正常

ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  120.72.47.194:80 wrr persistent 60
  -> 120.72.47.195:80             Route   3      3          0        
  -> 120.72.47.218:80             Route   3      3          0        

 

停Master服务器的keepalived服务,查看BAKCUP服务器是否能正常接管服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值