LVS plus Keepalived

架构:
典型的lvs + keepalived + realserver涉及到4台服务器和5个ip。
realserver ip1,用来提供集群服务,安装如tomcat,squid,nginx
realserver ip2,用来提供集群服务,安装如tomcat,squid,nginx
lvs master lvs-ip1:
lvs backup lvs-ip2:
安装ipvsadm(ipvsadm只是一个管理工具,lvs模块本身在2.6之后,就集成在内核中了,ipvsadm甚至可以不安装,安装只不过是为了查询lvs的一些状态),keepalived(keepalived可以配置lvs的调度规则)
lvs VIP,用于在lvs-ip1和lvs-ip2之间来回切换VIP。

keepalived:是vrrp虚拟路由冗余协议的实现。推荐用抢占式,即master在故障恢复后,能够从新成为master,vip会漂移回来。

配置:

  1. lvs master:
    /etc/keepalived/keepalived.conf
    vrrp_instance VI_1{
    state MASTER #备用服务器上为 BACKUP,抢占式
    interface eth0 #绑定vip的网卡为eth0,根据自己的服务器来设置
    virtual_router_id 81 #一个vrrp组的ID,所有参与vrrp组的服务器必须一致
    priority 100 #备用服务器上必须小于master的权重,如99,80等
    advert_int 1 #master与backup之间依靠组播报文来通告状态。master每隔1秒钟发生组播报文(因此,master和backup的网卡必须开启multicast组播功能)到vrrp组,如果backup状态的路由器没有在设定的时间间隔,默认3个时间间隔即3s,内收到组播报文,则认为master失效,会将backup优先级最高的设为master,接管vip(即,将vip绑定在自己的网卡上),同时对外通告arp报文,这样,其他节点就会更新自身的arp缓存,通过vip指向正确的服务器。当master恢复后,接管vip,发送组播报文,bakcup收到组播报文,发现报文的权重比自己的权重大,恢复成backup,并摘除vip。

    authentication { #组播报文采用密码方式进行认证,也可以采用md5方式
    auth_type PASS
    auth_pass 123456789
    }
    virtual_ipaddress {
    192.168.100.100
    }
    }
    virtual_server 192.168.100.100 8080 {
    delay_loop 10 #lvs自带检活机制,每隔10秒查询realserver状态
    lb_algo rr
    lb_kind DR #lvs是linux的一个模块,keepalived指定用lvs的DR模式作为负载均衡模式
    persistence_timeout 60 #会话保持功能,同一IP的连接60秒内被分配到同一台realserver
    protocol TCP #用TCP协议检查realserver状态,也可以用http协议,如protocol HTTP

    real_server 192.168.100.80 8080 {
    weight 100
    TCP_CHECK { #也可以是HTTP_CHECK,http check更完善,有时候,tcp 端口能够telnet,但是http层面不能服务,就会遗漏告警,比如http的index被删除了,tcp 端口可以telnet,但是http get访问失败,所以http check更好些
    keepalived可以在三层,四层,七层进行realserver的检活。三层是icmp包,四层是tcp port是否正常,七层是具有应用的配置如url 返回非200
    #(10秒无响应超时)
    connect_timeout 10
    nb_get_retry 3 #检活3次
    delay_before_retry 3 #每次检活间隔3s
    connect_port 8080 #检活端口是8080
    }
    HTTP_GET {
    url {
    path /index.html
    status_code 200
    }
    nb_get_retry 3
    delay_before_retry 3
    connect_timeout 5

    }
    }

    real_server 192.168.100.90 8080 {
    weight 100
    TCP_CHECK {
    connect_timeout 10
    nb_get_retry 3
    delay_before_retry 3
    connect_port 80
    }
    }
    }
    LVS BACKUP:
    /etc/keepalived/keepalived.conf
    仅仅有几个地方要改:
    state backup
    priority 50

realserver:
由于多个realserver要绑定vip,为了防止ip冲突,需要在realserver上关闭arp通告,arp应答。
#/bin/bash
vip=192.168.100.100
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
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
将如上script添加到rc.local里,开机自动即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值