lvs配置祥解

 

输入以下代码

! Configuration File for keepalived
global_defs {
   notification_email {
     lijun_hot@163.com    #如果本机没有SMTP服务,报警信还是发不出去,汗
   }
   notification_email_from root@localhost //邮件发送方
   smtp_server 127.0.0.1 //邮件外发服务器地址
   smtp_connect_timeout 30  //邮件超时时间为30秒
   router_id LVS_DEVEL   //router 一个实例标示
}
vrrp_instance VI_1 {             //一个vrrp实例
    state MASTER       #备份服务器上将MASTER改为BACKUP 一定为大写
    interface eth0       #HA监测网络接口 实例网卡,也就是提供服务的网卡
    virtual_router_id 51   #主、备机的virtual_router_id一定要相同,必须相同!!!
    priority 100        #主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1        #VRRP Multicast广播周期秒数 检查时间为1秒
    authentication {  
        auth_type PASS   #VRRP认证方式
        auth_pass 1111  #VRRP口令字
    }
    virtual_ipaddress {
        192.168.2.130   #LVS虚拟地址,可写多个VIP,一行一个VIP
        192.168.2.140
    }

   nopreempt      //当主机上线之后,vip不回滚,节省资源


}
virtual_server 192.168.2.130 80 {
    delay_loop 2                 #延时等待时间           
    lb_algo wrr                 #轮询算法
    lb_kind DR                  #传输模式
    persistence_timeout 600            #单一链接重连保持时间,这里设置600秒
    protocol TCP
  real_server 192.168.2.133 80 {
        weight 1               #权重
        TCP_CHECK {             #realserve的状态检测设置部分,单位是秒
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
  real_server 192.168.2.134 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 192.168.2.140 80 {
    delay_loop 2
    lb_algo wrr
    lb_kind DR
    persistence_timeout 600
    protocol TCP
 
  real_server 192.168.2.135 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
  real_server 192.168.2.136 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
好,:wq保存退出。

1.5 配置sysctl.conf并使其新配置生效

#vi  /etc/sysctl.conf
输入以下代码
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=1
net.ipv4.conf.default.send_redirects=1
net.ipv4.conf.eth0.send_redirects=1

好,:wq保存退出。

#sysctl -p                              ***新配置生效了***

到这里,主LVS的安装和设置工作就完成了。
备用LVS的安装和设置,和主LVS一样,不同的是配置keepalived的时候,只要把主LVS的配置文件/etc/keepalived/keepalived.conf ,拷贝到备用LVS的对应位置/etc/keepalived/keepalived.conf。
然后更改以下两项,其他安装和配置和主LVS一样。
1.
state MASTER        #备份服务器上将MASTER改为BACKUP,因为备用LVS一定要用BACKUP
更改完后就是这样的
  state BACKUP
2.
priority 100       #主、备机取不同的优先级,主机值较大,备份机值较小,所以备用LVS我取90
更改完后就是这样的
  priority 90

OK,这样,就可以了。主,备LVS,都已经安装配置完了现在我们设置realserver就可以了

 

2.1 配置realserver,编写启动脚本
我们先来配置Nginx应用的realserver。
登陆RIP1:192.168.2.133                    (Nginx1)
#vi rs
输入以下代码
#!/bin/bash
#2009-06-02 by Minyoni  http://adidas.blog.51cto.com

VIP=192.168.2.130
/etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $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 $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

好,:wq保存退出
#chmod 755 rs                     ***赋予可执行权限***

登陆RIP3:192.168.2.134                    (Nginx2)
重复刚才的工作。

 

2.2 现在我们来配置Squid应用的realserver。
登陆RIP1:192.168.2.135                    (Squid1)
#vi rs
输入以下代码
#!/bin/bash
#2009-06-02 by Minyoni  http://adidas.blog.51cto.com

VIP=192.168.2.140
/etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $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 $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

好,:wq保存退出
#chmod 755 rs                     ***赋予可执行权限***

登陆RIP4:192.168.2.136                    (Squid2)
重复刚才的工作。

 

3.1 启动keepalived+lvs

到此为止,所有的安装配置工作全部都做完了。我们来启动keepalived+lvs,让其工作

首先登陆
      RIP1:192.168.2.133                                   *** Nginx1 ***
      RIP2:192.168.2.134                                   *** Nginx2 ***
      RIP3:192.168.2.135                                   *** Squid1 ***
      RIP4:192.168.2.136                                   *** Squid2 ***
启动相应的应用程序Nginx和Squid
然后在这4台服务器上都执行rs脚本, 千万要记得你的rs脚本保存在哪里了
rs脚本的用法
#./rs start             ***启动realserver的虚拟IP***
#./rs stop             ***停止realserver的虚拟IP***

我们现在启动realserver的虚拟IP
#./rs start
RealServer Start OK           ***提示启动虚拟IP成功***
接着查看一下
#ifconfig lo:0             ***查看虚拟IP信息,你会看到信息***
然后把其余3台都执行一次
 #./rs star

现在登录

 LVS1:192.168.2.131                  *** LVS1 ( 主)***
 LVS2:192.168.2.132                  *** LVS2 备用)***
先在  LVS1:192.168.2.131  主LVS上执行dlvs脚本,用法
#./dlvs start    ***启动ipvsadm***
#./dlvs stop    ***停止ipvsadm***

执行
#./dlvs start    ***现在ipvsadm已经启动了***
执行
#service keepalived start   ***启动keepalived进入LVS的高可用式模式
在 LVS2:192.168.2.132 备用LVS上执行
#./dlvs start    ***现在ipvsadm已经启动了***
#service keepalived start        ***启动keepalived进入LVS的高可用模式***

现在LVS已经运行在高可用模式了

回到主LVS上查看ipvsadm 运行情况
#watch ipvsadm -ln

停掉RIP1:192.168.2.133    (Nginx1) 的 WEB服务

192.168.2.133 不在列表中

启动RIP1:192.168.2.133    (Nginx1) 的 WEB服务
192.168.2.133 恢复到列表中了


以上说明了keepalived会自动接管ipvsadm,自动检测realserver的状态
现在来测试主LVS和备用LVS之间的相互检测
停掉主LVS
#./dlvs stop
#service keepalived stop


查看备用LVS的运行状态
先查看下messages
#tail -f /var/log/messages
备用LVS已经接管了工作,状态为MASTER STATE


备用LVS上查看ipvsadm 运行情况

一切还是正常的,接管了工作

如果这时候启动主LVS
#./dlvs start
#service keepalived start
查看messages日志
#tail -f /var/log/messages
主LVS又主动接管了工作,状态为MASTER STATE
这个时候,备用LVS的状态一定是BACKUP STATE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值