开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

LVS+keepalived负载均衡(DR)

简介:
+关注继续查看

LVS+keepalived负载均衡(DR)



为什么要使 用负载均衡技术?

1、系统高可用性

2、  系统可扩展性

3、  负载均衡能力

1 初识LVS:Linux Virtual Server

1.1 LVS是什么

      LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。

1.2 LVS有什么作用

      LVS主要用于服务器集群的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。

     LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:Linux的门户网站(www.linux.com)、向RealPlayer提供音频视频服务而闻名的Real公司(www.real.com)、全球最大的开源网站(sourceforge.net)等。

     LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。目前有三种IP负 载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。





2、实验环境

3台节点

  • Keepalived1 + lvs(Director):192.168.32.11

  • Real server1:192.168.32.33

  • Real server2:192.168.32.44

  • VIP: 192.168.32.100


3、安装系统软件

Lvs + keepalived节点安装

# yum install ipvsadm keepalived -y

Real server + nginx服务的2个节点安装

# yum install epel-release -y
# yum install nginx -y


4、查看是否都开启允许路由转发(lvsReal server

 # cat /etc/sysctl.conf
#设置允许路由转发
net.ipv4.ip_forward = 1
#刷新设置# sysctl -p






5、设置配置脚本

Real server节点2台配置脚本:

vim /usr/local/sbin/realserver.sh

#!/bin/bash  
SNS_VIP=192.168.32.100
. /etc/rc.d/init.d/functions
case "$1" in
start)
 ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
 /sbin/route add -host $SNS_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 $SNS_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[object Object]


启动Real server脚本

chmod g+x /usr/local/sbin/realserver.sh
/usr/local/sbin/realserver.sh start

启动后出现一个新增虚拟IP(vip)







6、keepalived节点配置:

设置虚拟IP

vim /etc/init.d/lvsdr.sh

#!/bin/sh
# 定义虚拟ip
VIP=192.168.32.100
# 定义realserver,并已逗号分开
RIPS=192.168.32.33,192.168.32.44 #,192.168.3.5,192.168.3.6

# 定义提供服务的端口
SERVICE=8080

# 调用init.d脚本的标准库
. /etc/rc.d/init.d/functions
case $1 in
        start)
        echo "Start LVS of DR Mode"
        # lvs dr模式不需要路由转发,但是keepalived需要
        #echo "0" > /proc/sys/net/ipv4/ip_forward
        # 开启icmp包重定向
        echo "1" > /proc/sys/net/ipv4/conf/all/send_redirects
        echo "1" > /proc/sys/net/ipv4/conf/default/send_redirects
        echo "1" > /proc/sys/net/ipv4/conf/eth0/send_redirects
        # 绑定虚拟ip
        ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
        route add -host $VIP dev eth0:0
        # 清除lvs规则
        ipvsadm -C
        # 添加一条虚拟服务器记录
    # -p指定一定的时间内将相同的客户端分配到同一台后端服务器
    # 用于解决session的问题,测试时或有别的解决方案时建议去掉
        ipvsadm -A -t $VIP:$SERVICE -s rr -p

        # 添加真实服务器记录
        for RIP in `echo $RIPS sed  -e 's/,/\n/g'`
        do
                ipvsadm -a -t $VIP:$SERVICE -r $RIP:$SERVICE -g -w 1
        done
        # 设置tcp tcpfin  udp的超时连接值
        ipvsadm --set 30 120 300
        ipvsadm
        ;;

        stop)
        echo "Stop LVS DR"
        ifconfig eth0:0 down
        ipvsadm -C
        ;;
        *)
        echo "Usage:$0 {start  stop}"
        exit 1
esac


设置keepalived配置文件,使包转发后台

vim /etc/keepalived/keepalived.conf! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

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

virtual_server 192.168.32.100 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.32.33 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 8080
        }
    }

    real_server 192.168.32.44 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 8080
        }
    }
}


启动keepalive脚本

chmod g+x /etc/init.d/lvsdr
service lvsdr start

启动后出现一个新增虚拟IP(vip)


chkconfig keepalived on 
service keepalived start

查看
ipvsadm -ln





7、验证结果

可以使用命令查看是否转发成功

ipvsadm -lcn

可以进行抓包查看是否有数据包通过端口

tcpdump host 192.168.32.100 and port 8080 -X -vv




      本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1956227,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Nginx+keepalived实现七层的负载均衡
Nginx+keepalived实现七层的负载均衡
53 0
nginx作为负载均衡服务器应用案例
一、负载均衡算法 二、常见的nginx应用架构以及几个故障排除案例
29 0
Nginx 反向代理、负载均衡
Nginx 反向代理、负载均衡
40 0
nginx配置域名转发、反向代理、负载均衡
本文是博主学习nginx的记录,希望对大家有所帮助。
139 0
Nginx反向代理与负载均衡的理解与配置
Nginx反向代理与负载均衡的理解与配置
44 0
全栈开发之前、后端服务部署:Nginx源码安装,反向代理,静态资源服务,生产环境跨域,负载均衡
全栈开发之前、后端服务部署:Nginx源码安装,反向代理,静态资源服务,生产环境跨域,负载均衡
65 0
Nginx——反向代理 & 负载均衡(无理论,案例实操)
Nginx——反向代理 & 负载均衡(无理论,案例实操)
29 0
Nginx——Nginx主要应用之负载均衡
Nginx——Nginx主要应用之负载均衡
59 0
Keepalived + Nginx 实现高可用 Web 负载均衡
Keepalived + Nginx 实现高可用 Web 负载均衡
45 0
Nginx&Web负载均衡集群搭建
Nginx&Web负载均衡集群搭建
51 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云网络-SLB负载均衡产品介绍
立即下载
《应用型负载均衡ALB产品解读》
立即下载
复杂网络架构下的网络故障智能处理—DC Brain之故障篇
立即下载