zoukankan      html  css  js  c++  java
  • (转)LVS+Keepalived使用总结 vip丢失

    /sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
    /sbin/ifconfig lo:9 172.16.254.63 broadcast 172.16.254.63  netmask 0xffffffff up
    
    效果一样

    二、lvs和keepalived的安装

          环境规划

          2*(lvs+keepalived服务器)+n*real-server,一般lvs+keepalived是这样的架构。

        开始安装

    1、  下载软件包

    http://www.linuxvirtualserver.org/ 下载lvs的软件包

    http://www.keepalived.org/ 下载keepalived软件包

    2、先编译安装lvs,再安装keepalived,安装lvs需要内核源码

    下载lvs源码的时候,一定要选择你内核版本对应的源码包。

    # uname  -r
    2.6.18-164.el5PAE
    #yum install kernel-devel -y  //安装内核源码包
    #ln -s /usr/src/kernels/2.6.18-164.el5PAE-i686/ /usr/src/linux
    #wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz  //ipvsadm包就是lvs软件包,别觉得名字不一样
    # tar -zxvf ipvsadm-1.24.tar.gz
    # cd ipvsadm-1.24
    #make && make install

    检查lvs是否安装成功:

    #ipvsadm //查看是否有输出

    #lsmod | grep ip_vs  //如果ipvsadm有输出,那么使用这个命令查看是否加载ip_vs模块,如果加载,那么lvs算安装成功。

    2、  编译安装keepalived,一定在安装完lvs以后在安装keepalive

    #wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz //不建议选择最新的版本
    #tar -zxvf keepalived-1.1.15.tar.gz
    #cd keepalived-1.1.15
    #./configure --prefix=/  --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/linux/
    Keepalived version       : 1.1.15
    Compiler                 : gcc
    Compiler flags           : -g -O2
    Extra Lib                : -lpopt -lssl -lcrypto
    Use IPVS Framework       : Yes
    IPVS sync daemon support : Yes
    Use VRRP Framework       : Yes
    Use LinkWatch            : No
    Use Debug flags          : Nod

    看见如上输入,注意yes和no的值,如果一样,证明配置成功,如果lvs为no,那么证明你的lvs没有安装成功,需要从新安装lvs再安装keepalived。

    #make && make install

    如果没有报错,那么就安装成功了,检查一下是否生成了keepalived命令。

    三、LVS VS/DR模式搭建

    环境介绍

    主机IP

    角色

    安装软件

    122.225.32.134

    Lvs+keepalived MASTER

    Ipvsadm keepalived

    122.225.32.135

    Lvs+keepalived BACKUP

    Ipvsadm keepalived

    122.225.32.136

    Real server

    Lvs_real脚本

    122.225.32.137

    Real server

    Lvs_real脚本

    122.225.32.142

    VIP

     

    注意:所有机器都在一个交换机,并且在一个网段。

    1、在134和135上安装ipvsadm和keepalived软件。

    2、修改keepalived的配置文件

    122.225.32.134

    # cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         lr@isadba.com
       }
       notification_email_from lvs@isadba.com
       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 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            122.225.32.142
        }
    }
    virtual_server 122.225.32.142 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        nat_mask 255.255.255.0
        persistence_timeout 0             //此值为0,主要是为了方便测试,每次刷新页面结果会不一样
        protocol TCP
        real_server 122.225.32.136 80{
            weight 1
            TCP_CHECK {
                connect_port    80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
        real_server 122.225.32.137 80{
            weight 1
            TCP_CHECK {
                connect_port    80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }

    122.225.32.135

    和122.225.32.134相比,值需要删除state MASTER 和 修改priority的值小于master的。

    real server

    在所有real server上添加下面脚本,名执行# cat  /sbin/lvs_real

    #!/bin/bash
    #description:start realserver
    vip=122.225.32.157
    source /etc/rc.d/init.d/functions
    case $1 in
    start)
            echo "Start 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)
            echo "Stop Realserver"
            /sbin/ifconfig lo:0 down
            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

    执行脚本以后,使用ip add命令查看lo接口是否添加了虚拟ip地址。

    当然,real server上面需要安装http服务,并启动,在index.html里面添加自己的IP地址,方便客户端访问时候辨别访问的是哪个主机。

    3、配置完成以后,开始测试:

    在122.225.32.134和122.225.32.135上使用ip add检查,虚拟IP应该配置在134上面。

    测试1{主要测试lvs}:访问虚拟IP是否可以访问真实服务器,是否轮询real server

    在master上使用 ipvsadm命令查看lvs状态。

    # ipvsadm
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  122.225.32.142:http rr
      -> 122.225.32.137:http          Route   1      0          0        
      -> 122.225.32.136:http          Route   1      0          0

    在客户端访问虚拟IP 122.225.32.142,看是否可以访问。每次刷新,应该会换一个real server。访问数次后,通过ipvsadm观察lvs状态。

    # ipvsadm
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  122.225.32.142:http rr
      -> 122.225.32.137:http          Route   1      0          6        
      -> 122.225.32.136:http          Route   1      0          6

    测试2{主要测试keepalived}:lvs服务器的HA,当keepalived master挂掉后,keepalived backup会不会接管虚拟IP。

    关闭master主机上的keepalived进程。

    在backup上ip add查看是否添加虚拟IP,通过/var/log/message查看相关转换日志。

    测试3{测试backup的lvs}:使用客户端访问现在虚拟ip,查看是否一切正常

          测试完成后,开启master的keepalived进程,等虚拟ip转移到master以后,在从客户端访问,查看是否存在问题。

    lvs也不是完全能判别节点故障的,譬如在wlc分配方式下,集群里有一个节点没有配置VIP,会使整个集群不能使用

    ### 参考:http://www.ha97.com/2603.html

  • 相关阅读:
    JDK1.8中对hashmap的优化
    ShutdownHook作用
    【工作相关】常用Shell命令
    [技术学习]收藏技术博客
    【技术学习】Mongo Administration
    【技术学习】saltstack 笔记(一) --匹配Minion
    【工作相关】个人常用脚本及代码
    【工作相关】常用工具
    【现场问题】add trust cert into JAVA_HOME
    【工作相关】替换Rancher证书
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/8177380.html
Copyright © 2011-2022 走看看