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

  • 相关阅读:
    some tips
    ORA00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together
    Chapter 01Overview of Oracle 9i Database Perfomrmance Tuning
    Chapter 02Diagnostic and Tuning Tools
    变量与常用符号
    Chapter 18Tuning the Operating System
    标准输入输出
    Trace files
    DBADeveloped Tools
    Chapter 03Database Configuration and IO Issues
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/8177380.html
Copyright © 2011-2022 走看看