一:环境说明:
   LVS-DR-Master:    10.3.0.82
   LVS-DR-Backup:    10.3.0.70
   VIP:                10.3.0.60
   RealServer1:    10.3.0.69
   RealServer1:    10.3.0.83
   Centos:5.7  
 二:安装LVS和Keepalvied软件包
   1. 下载相关软件包
    mkdir /usr/local/src/lvs
    cd /usr/local/src/lvs
    wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
    wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
   2. 安装LVS和Keepalived
    lsmod |grep ip_vs
    uname -r
    2.6.18-53.el5PAE
    ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/  /usr/src/linux

tar zxvf ipvsadm-1.24.tar.gz
    cd ipvsadm-1.24
    make && make install
    find / -name ipvsadm  # 查看ipvsadm的位置
    
    或者使用yum install ipvsadm

tar zxvf keepalived-1.1.15.tar.gz
    cd keepalived-1.1.15
    ./configure  && make && make install
    find / -name keepalived  # 查看keepalived位置        
        
    cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
    cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    mkdir /etc/keepalived
    cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
    cp /usr/local/sbin/keepalived /usr/sbin/
    service keepalived start|stop     #做成系统启动服务方便管理.

备注:在安装keepalived的过程中,第一次的版本太高我下载1.2的版本,

  

以上是我的kernel版本,在安装的过程中总报错,网上也没有找到相关的说明,所以就下载了个低版本的结果就ok了。
 三:LVS-DR,配置LVS脚本实现负载均衡

vim /etc/init.d/lvsdr
    
    #!/bin/bash
    RIP1=10.3.0.69
    RIP2=10.3.0.83
    
    VIP=10.3.0.60

. /etc/rc.d/init.d/functions
    case "$1" in
        start)
            echo " start LVS of DirectorServer"

# set the Virtual IP Address and sysctl parameter
            /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
            /sbin/route add -host $VIP dev eth0:0
            echo "1" >/proc/sys/net/ipv4/ip_forward

#Clear IPVS table
            /sbin/ipvsadm -C
            
            #set LVS
            #Web Apache
             /sbin/ipvsadm -A -t $VIP:80 -s rr
             /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
             /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
              
            #Run LVS
             /sbin/ipvsadm
          ;;
        stop)
            echo "close LVS Directorserver"
            echo "0" >/proc/sys/net/ipv4/ip_forward
            /sbin/ipvsadm -C
            /sbin/ifconfig eth0:0 down
          ;;
        *)
            echo "Usage: $0 {start|stop}"
            exit 1
    esac
    
    chmod a+x /etc/init.d/lvsdr
    service lvsdr start|stop
   
    查看命令:
    ipvsadm -ln

      ipvsadm -lcn 查看请求转发情况

    备注:此脚本在LVS-DR-Master和Backup上均需执行

四:配置Realserver脚本
    vim /etc/init.d/realserver
    #!/bin/bash

VIP=10.3.0.60

. /etc/rc.d/init.d/functions
    case "$1" in
        start)
            echo " start LVS of REALServer"
            /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
            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
            ;;
        stop)
            /sbin/ifconfig lo:0 down
            echo "close LVS Directorserver"
            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 "Usage: $0 {start|stop}"
            exit 1
    esac
    chmod a+x /etc/init.d/realserver
    service realserver start|stop
    
    可以通过ifconfig或者ip add 命令查看是否绑定

备注:此脚本在两台realserver上均须执行。
    
五:利用Keepalvied实现负载均衡和和高可用性

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
       notification_email {
          caozhenhuamail@gmail.com
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       router_id LVS_DEVEL
    }

vrrp_instance VI_1 {
        state MASTER    #备份服务器上将MASTER改为BACKUP
        interface eth0
        virtual_router_id 51
        priority 100      #备份服务器将100改为98
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.3.0.60
        }
    }

virtual_server 10.3.0.60 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP

real_server 10.3.0.69 80 {
            weight 3               #(权重)
            TCP_CHECK {
                connect_timeout 10       #(10秒无响应超时)
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }

}

real_server 10.3.0.83 80 {
            weight 3               #(权重)
            TCP_CHECK {
                connect_timeout 10       #(10秒无响应超时)
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }

}
    }

service keepalived start|stop
    备注:BACKUP服务器同上配置,只需将红色标示的部分改一下即可.

六:测试

1 realserver其中一台服务停止:

我用的是两台nginx服务器

ps -aux |grep nginx  #查找nginx主线程pid

kill -QUIT 4195

观察DR情况:

10.3.0.83服务器已经被清除了,证明ok;

2. 把刚才停掉得83的nginx启动

继续观察DR情况:

83已经成功被加入到realserver组

3:停掉master的keepalived看是否backup能接管:

访问10.3.0.60 观察backup的DR情况:

发现backup的DR接收到了客户端发出得请求,而且成功转发,也可以通过日志信息查看

tail -f /var/log/message

4:我们把master的keepalived重新启动,观察客户端请求是否会重新被master接收并且转发:

visit: http://10.3.0.60  观察

master:

请求成功接收并且转发

backup 日志:

tail -f /var/log/message

备份服务器日志说明它已经进入备份状态,而且也没有接收到客户端发来的请求;

七:
以上是自己操作的流程,有什么问题请大家给予指正,对了,还有点要说明的是如果你的机器的防火墙都开得话,试验是不可能成功的,除非你对防火墙的过滤规则
设置的正确,因为这次主要是测试负载均衡,所以我直接把所有的机器的iptables都停掉了,service iptables stop;

转自:http://www.cnblogs.com/czh-liyu/archive/2011/12/01/2270973.html

虚拟机 搭建LVS + DR + keepalived 高可用负载均衡的更多相关文章

  1. 测试LVS+Keepalived高可用负载均衡集群

    测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...

  2. LVS+Keepalived高可用负载均衡集群架构实验-01

    一.为什么要使用负载均衡技术? 1.系统高可用性 2.  系统可扩展性 3.  负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...

  3. 案例一(haproxy+keepalived高可用负载均衡系统)【转】

    1.搭建环境描述: 操作系统: [root@HA-1 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) 地址规划: 主机名 IP地址 集群角 ...

  4. 使用Ansible实现nginx+keepalived高可用负载均衡自动化部署

    本篇文章记录通过Ansible自动化部署nginx的负载均衡高可用,前端代理使用nginx+keepalived,端web server使用3台nginx用于负载效果的体现,结构图如下: 部署前准备工 ...

  5. 基于HAProxy+Keepalived高可用负载均衡web服务的搭建

    一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web ...

  6. HAProxy+Keepalived 高可用负载均衡

    转自 https://www.jianshu.com/p/95cc6e875456 Keepalived+haproxy实现高可用负载均衡 Master backup vip(虚拟IP) 192.16 ...

  7. 配置LVS + Keepalived高可用负载均衡集群之图文教程

    负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性.  重点:每个节点时间都同步哈! C++代码 [r ...

  8. Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】

    1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14 ...

  9. LVS+Keppalived实现高可用负载均衡

    三.LVS Keppalived的安装 3.1.环境描述 LVS server1 (Master):10.0.0.202 虚拟IP为:10.0.0.210 LVS server2 ( Slave ) ...

随机推荐

  1. Android几种layout(布局)的区别

    1.FrameLayout:children按照从左上开始的顺序排列,主要用于tabed view或者图片切换功能:最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控 ...

  2. dp:FZU2030括号问题

    http://acm.fzu.edu.cn/problem.php?pid=2030 给出一个字符串,其中包括3种字符: ‘(‘, ‘)’, ‘?’.其中?表示这个字符可以是’(‘也可以是’)’. 现 ...

  3. JAVA-JSP之taglib指令

    相关资料:<21天学通Java Web开发>http://blog.csdn.net/dyyaries/article/details/9960987 备注:这个实例我没有跑起来,我看的是 ...

  4. iosxcode7以后免证书真机测试方法如下

    步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accounts选项卡添加自己的Apple ID ...

  5. 纯css3实现的圆形旋转分享按钮

    之前已经为大家介绍了好几款css3按钮,今天要为大家介绍的是一款纯css3实现的圆形旋转分享按钮.旋转的角度可以自己调整.在demo中演示了三个角度旋转.360度,60度,-360度.如图: 在线预览 ...

  6. 一款基于jquery实现的鼠标单击出现水波特效

    今天要为大家绍一款由jquery实现的鼠标单击出现水波特效.用鼠标猛点击页面,你可以看到页面不断出面水波纹效果.然后水波纹渐渐消失.效果非常不错.我们一起看下效果图: 在线预览   源码下载 实现的代 ...

  7. 设置DatagridView的列头样式

    设置DataGridView.ColumnHeaderDefaultCellStyle的BackColor属性会发现没有效果.这是因为在启动了可视样式的时候,BackColor和ForeColor的值 ...

  8. SSL/TLS原理详解2

    引用原文地址:https://segmentfault.com/a/1190000004985253#articleHeader6 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安 ...

  9. Apache HttpComponents 如何在正常结束前中止一个HTTP请求

    package org.apache.http.examples.client; import org.apache.http.HttpEntity; import org.apache.http.H ...

  10. [转]RabbitMQ,ActiveMQ,ZeroMQ,Kafka之间的比较与资料汇总

    MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据和资料. 第一部 ...