LVS + KEEPAlived 配置 DIR模式

简介: 1 .1 Lvs LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

1 .1 Lvs

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)

本文主要介绍DR模式运用

1 .2 DR模式     

DR模式是什么?撇开lvs调度算法部分,DR模式的原理就是,将报文直接路由给目标服务器(Direct Routing),其实这里没有routing啥事情,叫做Direct Select更准确一些,为什么这么说呢?因为他直接不修改数据包,他直接把数据包打包成以太网的数据帧,只是这个数据帧里的目标MAC地址是最终的真实服务器的MAC地址,所以DR模式要求在同一个物理网段,不能跨路由。

当目标服务器收到这个数据帧的时候,把它解包,当服务器发现数据包的目标地址(也就是VIP)是在本地的网络设备上(一般都是在真实服务器的lo:0上绑定一个vip地址),服务器处理这个数据包,然后根据本地路由表将响应报文直接返回给客户

2.1 keepalived 

这里是用keepalived来进行lvs的建立和服务器和vip的健康检查,其实keepalived就像一个shell,他自动的给你做lvs+vrrp。

keepalived本身来做真实服务器的健康检查,vrrp来做vip的冗余。

VIP:192.168.2.240

LVS:192.168.2.210 192.168.2.211

Realserver: 192.168.2.212 192.168.2.213

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   所需软件:keepalived

             Ipvsadm(主要是管理查看作用)

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

# tar -zxvf ipvsadm-1.24.tar.gz

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

先配置 Realserver  脚本:

/opt/lvs_server.sh  192.168.2.212

#!/bin/bash
# description: Config realserver
VIP=192.168.2.240
/etc/rc.d/init.d/functions
case "$1" in
start)
        /sbin/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)
        /sbin/ifconfig lo:0 down
        /sbin/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

# scp /opt/lvs_server.sh root@192.168.2.213:/opt/  

加入到开

vim /etc/rc.d/rc.local

/bin/bash /opt/lvs_real start

 

配置keepalived :

vim /etc/keepalived/keepalived.conf 192.168.2.210

! Configuration File for keepalived

global_defs {
   notification_email {
     jackchengwc@gmail.com
   }
   notification_email_from jackchengwc@163.com
   smtp_server smtp.163.com
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.240
    }
}

virtual_server 192.168.2.240 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    persistence_timeout 60
    protocol TCP

    real_server 192.168.2.212 80 {
        weight 3
        TCP_CHECK {
          connect_timeout 10
          nb_get_retry 3
          delay_before_retry 3
          connect_port 80
        }
}
    real_server 192.168.2.213 80 {
        weight 3
        TCP_CHECK {
          connect_timeout 10
          nb_get_retry 3
          delay_before_retry 3
          connect_port 80
        }
    }

}

# scp /etc/keepalived/keepalived.conf root@192.168.2.211:/etc/keepalived/

 

 

lvs_sync_daemon_inteface eth0  #负载均衡器之间的监控接口,类似于HA HeartBeat的心跳线。但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在DR模式 中,lvs_sync_daemon_inteface 与服务接口interface 使用同一个网络接口

    virtual_router_id 51 #虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识。即同一个vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同时在整个vrrp内是唯一的

 mcast_src_ip 192.168.2.240

    #mcast_src_ip #多播的源ip,设置为这台lvs的ip 好像不用也行

    priority 100 #路由的优先级别,主lvs要设置的比从lvs要高

    advert_int 1

    authentication {

        auth_type PASS #同一vrrp实例MASTER与BACKUP 使用相同的密码才能正常通信

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.11.240 #虚拟ip,也就是vip地址。可以设置很多组vip

    }

delay_loop 3 #健康检查的间隔

lb_algo wlc #lvs的调度算法

lb_kind DR #lvs的调度模式

persistence_timeout 50 #连接保持的超时时间,保证一个用户的连接总是导向到同一个服务器,当用户第一次访问的时候,他的访问请求被负载均衡器转给某个真实服务器,这样他看到一个登陆页面,第一次访问完毕;接着他在登陆框填写用户名和密码,然后提交;这时候,问题就可能出现了—登陆不能成功。因为没有会话保持,负载均衡器可能会把第2次的请求转发到其他的服务器

    #用ipvsadm -Lcn 观察是否生效

protocol TCP

     ha_suspend  #禁止,vip失效的时候对真实服务器进行健康检查(也就是说备用服务器不会去做真实服务器的健康检查)

 

# ipvsadm -L -n 这个命令查看 

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
577 11
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
606 8
LVS+Keepalived 负载均衡
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
2302 4
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
460 6
|
负载均衡 网络协议 Linux
在Linux中, LVS三种模式的工作过程是什么?
在Linux中, LVS三种模式的工作过程是什么?
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
网络协议 应用服务中间件 Linux
LVS介绍与配置
LVS介绍与配置
1317 8
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?