一:环境说明:
   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. python 字符和数值转换

    # python 字符和数值转换 ### 字符转数值------------------------------ ord('A') ==> 65- ord('B') ==> 66- ord ...

  2. 基于css3炫酷页面加载动画特效代码

    基于CSS3实现35个动画SVG图标.这是一款基于jQuery+CSS3实现的SVG图标动画代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=&qu ...

  3. 【C#/WPF】调节图像的对比度(Contrast)

    关于对比度: 调节对比度直观感受是,高对比度的图像明暗关系更明显,色彩更鲜艳:低对比度的图像表面像是蒙上一层灰,色彩不鲜艳. 需求: 制作一个面板,一个滑动条,拖动滑动条可以修改目标图片的对比度. 资 ...

  4. 广度优先遍历目录(Windows平台、C++)

    深度优先的遍历网上一大把,就是递归调用,这里就不说了,说点网上找不到的. #include <Windows.h> #include <stdint.h> #include & ...

  5. Windows 2008 R2组策略之二——GPO初探

    与前一篇博文发表已经相去月余了,实在是有些不好意思了.感谢51CTO的大编们将小文加了推荐,这使我更加觉得自己产出太少,难于回馈大家的厚爱. 今天将这个系列的第二篇奉献给大家,以伺视听. 在上篇小文中 ...

  6. JVM监控添加参数

    -Dcom.sun.management.jmxremote.port                           远程主机端口号的-Dcom.sun.management.jmxremote ...

  7. 解决国内经常无法访问Google的方法

    1.可用http://www.google.ws访问. 2.可用https安全协议https://www.google.com.hk访问. 3.也可用http://+谷歌IP访问(http://74. ...

  8. 防火墙导致MySQL无法访问的问题解决案例

    问题 数据库总是访问不了以致不得不反反复复的重启MySQL数据库. 但是重启的效果并不明显,重启10几分钟后问题依然出现.导致前端用户难以正常访问网站.另外他们还通过google,百度搜索,怀疑是数据 ...

  9. 非常强大的jQuery万能浮动框插件

    支持hover, click, focus以及无事件触发:支持多达12种位置的定位,出界自动调整:支持页面元素加载,Ajax加载,下拉列表,提示层效果,tip类效果等:可自定义装载容器:内置UI不错的 ...

  10. Hadoop集群作业调度算法

    转自:http://blog.csdn.net/chen_jp/article/details/7983076 Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先 ...