Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305520
  • 博文数量: 44
  • 博客积分: 1827
  • 博客等级: 上尉
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-11 14:36
文章分类

全部博文(44)

文章存档

2012年(2)

2011年(15)

2010年(27)

分类: LINUX

2011-09-13 16:04:17

lvs(centos5.6x64)
yum  install ipvsadm    


LVS server   (ipvsadm安装机器,使用keeplivead无需配置 LVS server脚本)
#!/bin/bash
RIP1=172.16.0.151
RIP2=172.16.0.152
 
VIP1=172.16.0.73
 
/etc/rc.d/init.d/functions
 
case "$1" in
 
start)
echo " start LVS of DirectorServer"
 
# set the Virtual IP Address and sysctl parameter
/sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
#/sbin/ifconfig eth0:1 $VIP2 broadcast $VIP2 netmask 255.255.255.255 up
/sbin/route add -host $VIP1 dev eth0:0
#/sbin/route add -host $VIP2 dev eth0:1
echo "1" >/proc/sys/net/ipv4/ip_forward
 
#Clear IPVS table
/sbin/ipvsadm -C
 
#set LVS
#Web Apache
/sbin/ipvsadm -A -t $VIP1:80 -s rr -p 120
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g    #-g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g
 
 
#Run LVS
/sbin/ipvsadm
;;
stop)
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 down
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac


RIP server (真实机器需配置脚本)
 
#!/bin/bash
#description:start realserver
#chkconfig 
VIP1=172.16.0.73
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP1 broadcast $VIP1 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 Directorserver"
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 1
esac




安装keeplievd

wget
tar -zxvf keepalived-1.1.15.tar.gz
./configure --prefix=/usr/local/keepalive --with-kernel-dir=/usr/src/kernels/2.6.18-238.el5-x86_64    ##--with-kernel-dir=根据具体情况修改
检查Use IPVS Framework       : Yes 是否为yes否则将不支持lvs
make && make install

将keepliaved做成系统服务
cp /usr/local/keepalive/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalive/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/keepalive/sbin/keepalived /usr/sbin/
chkconfig --level 35 keepalived on

编辑配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

vrrp_instance VI_1 {
    state MASTER   ###备份服务器上将MASTER改为BACKUP 
    interface eth0   ###网卡接口对应的主机IP地址
    virtual_router_id 51
priority 101      ###主LVS(建议100以上)这里的优先级必须比从LVS(建议
                    小于100)的要大
    advert_int 1
    authentication {
        auth_type PASS   ###主从LVS的认证用户名必须要一致,默认即可
        auth_pass 1cf2dfd3fd4   ###主从LVS的认证密码必须要一致,默认即可
    }
    virtual_ipaddress {
        172.16.0.73      ###虚拟IP地址1
        172.16.0.158
       ####如果有多个VIP,继续换行填写
    }
}

virtual_server 172.16.0.73 80 {  ##IP地址与80之间必须空格,80与”{“也必须空格
    delay_loop 6   ###每隔10秒查询realserver状态
    lb_algo wrr    ### lvs中的wrr算法,lvs共有8种算法,具体请看网上资料
    lb_kind DR    ###设置以DR模式实现负载均衡
    persistence_timeout 50 ###同一IP的连接50秒内被分配到同一台realserver
    inhibit_on_failure
    protocol TCP     ###用TCP协议检查realserver状态

real_server 172.16.0.151 80 {  ##IP地址与80之间必须空格,80与”{“也必须空格
        weight 3    ###权重
        TCP_CHECK { 
        connect_timeout 10   ###10秒无响应超时
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
real_server 172.16.0.152 80 {  ##IP地址与80之间必须空格,80与”{“也必须空格
        weight 3
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

virtual_server 172.16.0.73 443 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

real_server 172.16.0.151 443 {
        weight 3
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 443
        }
    }
real_server 172.16.0.152 443 {
        weight 3
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 443
        }
     }

}

virtual_server 172.16.0.158 3306 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

real_server 172.16.0.153 3306 {
        weight 3
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 3306
        }
    }
real_server 172.16.0.154 3306 {
        weight 3
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 3306
        }
     }

}







启动keepalived
/etc/init.d/keepalived start

阅读(2556) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~