keepalived+lvs的配置

2 篇文章 0 订阅
lvs+keepalived:
    采用master和backup架构模式。
    VRRP:虚拟路由冗余协议。可以用于避免单点故障。
    keepalived通过vrrp协议,检测状服务器的态,进行协议交换。并选举master。
    过程:
    1、初始化
    2、进行选举,选出master服务器
keepalived安装:
1、编译安装
2、建立服务启动脚本,以便使用service命令控制之
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
chmod +x /etc/init.d/keepalived
因为我们使用非默认路径(/usr/local)安装keepalived, 故需要修改几处路径,以保证keepalived能正常启动, 需要修改的文件如下:
3、修改/etc/init.d/keepalived, 寻找大约15行左右的. /etc/sysconfig/keepalived, 修改为:.  /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置
同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):
PATH="$PATH:/usr/local/keepalived/sbin"
export PATH
4、修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数
KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"
5、经过以上修改,keepalived基本安装即可完成,启动测试之:
service keepalived restart
6、切勿忘记将此服务设置为开机启动
chkconfig keepalived on 
实战配置:

主-备模式。

keepalived是安装配置在提供服务的服务器上。在这种模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟IP,提供正常服务。 

master:172.10.7.185

slave:172.10.7.186

vIP:172.10.7.188

master和slave提供web服务。虚拟vIP默认在主服务器上,由master提供web服务。当master出现故障关机后,vIP自动切换到slave上,由slave提供web服务。在客户端来看就向没有发送任何事情一样。

master的keepalived配置如下。

global_defs {
        router_id LVS_MASTER     #全局配置,设置本机id
}


vrrp_script check_web {            #定义一个检查脚本,指定脚本文件路径和执行间隔
        script "/usr/local/keepalived/bin/check_web.sh"
        interval 2
}
vrrp_instance VI_1 {
    state MASTER                       #状态为master,从服务器为backup。必须大写
    interface eth0    #指定端口以供虚拟ip的绑定
    virtual_router_id 181   #vrrp的组名,主从必须相同且不能与其他组相同
    priority 100   #指定优先级,值越大越优先
    advert_int 1    #组播信息发送间隔
    track_script {   #执行前面定义的检查脚本
        check_web
    }
    authentication {      #验证信息,两节点相同
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {   #执行虚拟ip地址

        172.10.7.188
    }
}


virtual_server 172.10.7.188 80 { #虚拟服务器的相应端口
    delay_loop 6 #延时时间
    lb_algo rr #lvs的算法
    lb_kind DR #lvs的模式
    persistence_timeout 50 #超时时间,在此时间内,同一用户发送多次请求,被转发到同一服务器上
    protocol TCP #使用的协议
    real_server 172.10.7.185 80 { #真实主机的ip以及端口,从服务器上ip为186,下面一个为185
        weight 1 #权重,根据此进行请求的分发比例
        TCP_CHECK{
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 80
        }
    }
    real_server 172.10.7.186 80 {

       weight 1
        TCP_CHECK{
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 80
        }
    }
}

在从服务器上进行相同的配置,只需改动红色标识的位置。其中在从服务器上的real_server186要写在185的前面。

附上检验脚本:

检测主机的80端口,如果服务没有开启,80端口没有被监听。将重启服务。重启后再没有服务就关闭keepalived服务。

#!/bin/bash
a=`lsof -i:80 | wc -l`
if [ $a -eq 0 ]
then
        /usr/local/nginx/sbin/nginx
sleep 3
if [ `lsof -i:80 | wc -l` -eq 0 ]
then
service keepalived stop
fi
fi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值