搭建LVS+Keepalived负载均衡

1、LVS+Keepalived 介绍

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

Keepalvied
        Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现

2、拓扑图

3、地址规划


Master DR:  192.168.122.99

Slave DR:       192.168.122.101

VIP:             192.168.122.100

web server1:  192.168.122.102

web server2:  192.168.122.103

客户端:         192.168.122.1

4、实现思路

此实验使用的是DR模式。在两台DR上安装keepalived。使用keepalived配置DR优先级,以起到DR备份作用,当客户端访问web服务器时,数据包首先到达DR上,DR通过调度算法将数据包分发给web server。由web server回复数据包,当master DR宕机时,slave DR可以迅速接管,同样当web server1宕机时,web server2可以迅速提供服务。从而实现负载均衡。

5、安装 LVS和Keepalvied软件包

#yum -y install ipvsadm
#wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

安装keepalived前需要先安装依赖包
yum -y install gcc kernel-devel openssl-devel
#tar -zxvf keepalived-1.1.15.tar.gz  
#cd keepalived-1.1.15
#./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/
#make && make install

配置keepalived为系统服务
#cp /usr/local/sbin/keepalived /usr/sbin/ 
#service keepalived start|stop    #启动/停止keepalived服务

6、 配置LVS实现负载均衡

Keepalived安装完成后,在/etc/keepalived下生成keepalived.conf配置文件,备份编辑此配置文件
#vim keepalived.conf


    ! Configuration File for keepalived 
     
    global_defs { 
       notification_email { 
             [email protected]                                   #配置邮件接收
       }                        
       notification_email_from [email protected] 
       smtp_server 127.0.0.1 
      # smtp_connect_timeout 30 
       router_id LVS_DEVEL 
    } 
     
    # 20081013 written by :netseek 
    # VIP1 
    vrrp_instance VI_1 { 
        state MASTER             #备份服务器上将MASTER改为BACKUP    
        interface eth0 
        virtual_router_id 51 
        priority 100         #配置优先级,数值越高优先级越高,将备份服务器设置为80   
        advert_int 1 
        authentication { 
            auth_type PASS 
            auth_pass 1111      #设置服务器连接的用户密码,要和备份服务器一直
        } 
        virtual_ipaddress { 
            192.168.122.100         #虚拟IP,既客户端访问地址
            #(如果有多个VIP,继续换行填写.) 
        } 
    } 
     
    virtual_server 192.168.122.100 80 { 
        delay_loop 10                  #(每隔10秒查询realserver状态,如果宕机,及时接替服务) 
        lb_algo wrr                  #(lvs 算法) 
        lb_kind DR                  #(Direct Route) 
        persistence_timeout 60        #(同一IP的连接60秒内被分配到同一台realserver,如果Master DR宕机,60秒后BDR接替调度) 
        protocol TCP                #(用TCP协议检查realserver状态) 
     
        real_server 192.168.122.102 80 {      #实际web server地址
            weight 3               #(权重) 
            TCP_CHECK { 
            connect_timeout 10       #(10秒无响应超时) 
            nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
            } 
        } 
        real_server 192.168.122.103 80 { 
            weight 3 
            TCP_CHECK { 
            connect_timeout 10 
            nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
            } 
         } 
    }  

7、配置完成后可用以下命令检查配置是否正确

ipvsadm -L -n   #查看ipvsadm的配置。在这里需要两台web服务器启动服务。否则只能看到VIP的配置
ip addr list        #查看是否和VIP绑定

8、在两台web server中安装httpd服务,并配置realserver脚本

yum -y install httpd     #安装httpd服务。安装后要创建默认页
echo  "this is one site" >/var/www/html/index.html     #另一台同样创建,修改一下默认页内容,以便分辨访问的网站
service httpd restart

配置realserver脚本


    #vi /etc/init.d/realserver.sh     #此脚本是为了配置必须的ip选项并生成虚拟IP
    #!/bin/bash

SNS_VIP=192.168.122.100    #虚拟IP地址  
      
    . /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


创建完脚本后执行
./realserver.sh start  启动脚本。启动成功使用ifconfig可以看到创建的lo:0的虚拟地址

8、在两台keepalived上重启keepalived服务,并使用ipvsadm -L -n查看配置,应有以下结果

   -> RemoteAddressort:port           Forward   Weight   ActiveConn   InActConn
TCP  192.168.122.100:80 rr
  -> 192.168.122.102:80                       Route   2      0          2
  -> 192.168.122.103:80                       Route   1      0          1 

9、登陆192.168.122.1,使用浏览器或者curl验证负载结果

[[email protected] ~]# curl 192.168.122.100
this is one site

10、停掉Master DR,观察Slave DR接管调度任务。停掉一台web服务器,观看另一台web服务是否可继续提供服务。

使用ipvsadm -L -n查看访问效果。

tail -f /var/log/httpd/access.log   #查看web日志

时间: 2024-11-06 07:14:12

搭建LVS+Keepalived负载均衡的相关文章

CentOS7 搭建LVS+keepalived负载均衡

CentOS7 搭建LVS+keepalived负载均衡(一) 本文中只涉及一台负载均衡服务器,和两台真实服务器,主要是初步体验负载均衡:实际的环境中,lvs和keepalived一起用才是黄金搭档,下篇将继续讲述lvs+keepalived的搭建过程 一.本次搭建的系统架构图- 虚拟机:VirtualBox- virtaulbox host-only的IP地址:192.168.137.1- 所用系统:CentOS7- 真实web服务器(RS1):192.168.137.5- 真实web服务器(

搭建LVS+Keepalived负载均衡集群

这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G SSD,双核 软件环境: 因为资源有限.搭建了4个虚拟机. 虚拟机 [[email protected] work]# uname -a Linux rs-1 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_6

linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过,请参考: linux安装nginx:http://www.cnblogs.com/aspirant/p/6714548.html (1) 我们的系统是CentOS7 目前需要四台机器,分别为 Director机器 两台:master,slave 真实机器realserver1,realserver

lvs及lvs+keepalived负载均衡

################ lvs负载均衡 ####################实验环境:Redhat6.5ip:172.25.8.1,hostname:server1.example.com,lvs httpdip:172.25.8.3,hostname:server3.example.com,httpdip:172.25.8.4,hostname:server4.example.coms,httpd关闭所有主机防火墙iptables server1安装lvs作为调度器,后面的ser

LVS+Keepalived负载均衡主备

LVS+Keepalived 介绍LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). KeepalviedKeepalived在这里主要用作RealServer的健康状态检查以及LoadBal

LVS+Keepalived负载均衡双主架构全攻略

二.LVS+Keepalived负载均衡双主互备架构 IP信息清单:名称 IP LVS-DR-Master 192.168.2.98 LVS-DR-Backup 192.168.2.99 LVS-DR-VIP1 192.168.2.100 LVS-DR-VIP2 192.168.2.105 Realserver01 192.168.2.101 Realserver02 192.168.2.102 Realserver03 192.168.2.103 Realserver04 192.168.2.

MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

转自 MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移 - KK ——专注数据 - 博客频道 - CSDN.NEThttp://blog.csdn.net/kk185800961/article/details/51115264# 系统信息: mysql主库 192.168.1.152 CentOS 5.6 mysql 5.6.22 mysql从库 192.168.1.153 CentOS 5.6 mysql 5.6.22 VIP 192.168.1.150 my

RHEL6 搭建LVS/DR 负载均衡集群 案例

搭建LVS/DR 负载均衡集群 案例 实验拓扑图: 操作流程: Director Server :        192.168.4.50 pc50 安装并启用ipvsadm 配置辅助IP地址 创建虚拟服务器,向虚拟服务器中加入节点 Real Server:        192.168.4.51 pc51        192.168.4.52 pc52 配置WEB 服务器 配置辅助IP地址,调整内核参数 Clinet :192.168.4.253 pc253 连接虚拟服务器测试 环境准备:

Centos7搭建lvs+keepalive负载均衡集群

keepalived简介 keepalived是分布式部署解决系统高可用的软件,结合lvs(LinuxVirtual Server)使用,解决单机宕机的问题. keepalived是一个基于VRRP协议来实现IPVS的高可用的解决方案.对于LVS负载均衡来说,如果前端的调度器direct发生故障,则后端的realserver是无法接受请求并响应的.因此,保证前端direct的高可用性是非常关键的,否则后端的服务器是无法进行服务的.而我们的keepalived就可以用来解决单点故障(如LVS的前端