zoukankan      html  css  js  c++  java
  • LVS+KEEPALIVED

    安装master和backup

    • 安装前准备

    yum -y install openssl openssl-devel popt popt-devel gcc* wget vim ipvsadm pcre pcre-devel

       运行ipvsadm

       查看内核模块是否存在

    lsmod|grep ip_vs

    设置master /etc/keepalived/文件

    vim  /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    vrrp_instance VI_1 {
        state MASTER
        interface ens192
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.0.108
        }
    }

    virtual_server 192.168.0.108  80 {
        delay_loop 6
        #lb_algo rr
        lb_algo wlc
        lb_kind DR
        persistence_timeout 0
        protocol TCP

        real_server 192.168.0.103 80 {
            weight 1
            TCP_CHECK {               # check usability of the Port:47380 service
                connect_timeout 3     # connection timeout, /sec
                retry 3               # retry times
                delay_before_retry 3  # connetcion retry interval, /sec
                connect_port 80       # connection port
            }
        }
        real_server 192.168.0.101 80 {
            weight 1
            TCP_CHECK {               # check usability of the Port:47380 service
                connect_timeout 3     # connection timeout, /sec
                retry 3               # retry times
                delay_before_retry 3  # connetcion retry interval, /sec
                connect_port 80       # connection port
            }
        }

    }

    设置backup /etc/keepalived/文件

    ! Configuration File for keepalived
    vrrp_instance VI_1 {
        state BACKUP
        interface ens192
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.0.108
        }
    }

     Real server节点2台配置脚本:

    #! /bin/bash
    vip=192.168.0.108
    ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip 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

    -----------------

    #!/bin/bash
    VIP=10.46.79.98
    source /etc/rc.d/init.d/functions
    case "$1" in
    start)
               echo "start LVS of RealServer DR"
               /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
               /sbin/route add -host $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  
           ;;
    stop)
               /sbin/ifconfig lo:0 down
               echo "close LVS of RealServer DR"
               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  
    exit 0
    ------

    #!/bin/sh

    VIP="192.168.0.108"  # value of vip
    ETH_DEV="ens192"  # local eth_dev name
    VIP_DEV="lo:0"  # eth_dev name for vip

    IFCONFIG_CMD="/sbin/ifconfig"
    ROUTE_CMD="/sbin/route"

    case "$1" in
    start)
        #set ip_forward off(1 on, 0 off).
        echo "0" >/proc/sys/net/ipv4/ip_forward
        echo "/proc/sys/net/ipv4/ip_forward ="
        cat /proc/sys/net/ipv4/ip_forward

        #hiding interface ETH_DEV, will not arp
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "/proc/sys/net/ipv4/conf/all/arp_ignore ="
        cat /proc/sys/net/ipv4/conf/all/arp_ignore
        
        echo "1" >/proc/sys/net/ipv4/conf/$ETH_DEV/arp_ignore
        echo "/proc/sys/net/ipv4/conf/${ETH_DEV}/arp_ignore ="
        cat /proc/sys/net/ipv4/conf/$ETH_DEV/arp_ignore
        
        echo "2" >/proc/sys/net/ipv4/conf/$ETH_DEV/arp_announce
        echo "/proc/sys/net/ipv4/conf/${ETH_DEV}/arp_announce ="
        cat /proc/sys/net/ipv4/conf/$ETH_DEV/arp_announce
        
        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "/proc/sys/net/ipv4/conf/all/arp_announce ="
        cat /proc/sys/net/ipv4/conf/all/arp_announce
        
        #add ethernet device and routing for VIP
        $IFCONFIG_CMD $VIP_DEV $VIP broadcast $VIP netmask 0xffffffff up
        $ROUTE_CMD add -host $VIP dev $VIP_DEV
        
        echo "Set ENV for RL_SERVER-DR OK!"
        ;;
    stop)    
        #remove ethernet device and routing about VIP
        $ROUTE_CMD del -host $VIP
        $IFCONFIG_CMD $VIP_DEV down
        
        #set ip_forward on(1 on, 0 off).
        echo "1" >/proc/sys/net/ipv4/ip_forward
        echo "/proc/sys/net/ipv4/ip_forward ="
        cat /proc/sys/net/ipv4/ip_forward
        
        #recover arp
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "/proc/sys/net/ipv4/conf/all/arp_ignore ="    
        cat /proc/sys/net/ipv4/conf/all/arp_ignore
        
        echo "0" >/proc/sys/net/ipv4/conf/$ETH_DEV/arp_ignore
        echo "/proc/sys/net/ipv4/conf/${ETH_DEV}/arp_ignore ="
        cat /proc/sys/net/ipv4/conf/$ETH_DEV/arp_ignore
        
        echo "0" >/proc/sys/net/ipv4/conf/$ETH_DEV/arp_announce
        echo "/proc/sys/net/ipv4/conf/${ETH_DEV}/arp_announce ="
        cat /proc/sys/net/ipv4/conf/$ETH_DEV/arp_announce
        
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "/proc/sys/net/ipv4/conf/all/arp_announce ="
        cat /proc/sys/net/ipv4/conf/all/arp_announce
        
        echo "Recover ENV from RL_SERVER-DR OK!"
        ;;
    *)
        echo "Usage:$0 {start|stop}"
        exit 1
    esac
    exit 0

     chmod a+x /root/lvs_dr_realserver.sh
    ln -s /root/lvs_dr_realserver.sh /etc/init.d/kenolvs
    service kenolvs start
    service kenolvs stop

    [root@lvs01 keepalived]# ipvsadm -L --stats     ipvsadmin -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
      -> RemoteAddress:Port
    TCP  lvs01:http                        472     2848        0   192425        0
      -> 192.168.0.101:http                172     1047        0    73284        0
      -> 192.168.0.103:http                300     1801        0   119141        0

  • 相关阅读:
    如何用Warkdowm来写一篇博客
    关于toString()的一些事情
    python的 range() 函数
    python中的split()函数
    innerHTML和value打架了?
    JS如何实现实时获取网络时间
    javascript内嵌样式与外联样式怎么做?
    c语言实现乘法口诀表
    c语言实现数字的倒序输出
    c语言解一元二次方程
  • 原文地址:https://www.cnblogs.com/luck123/p/11418251.html
Copyright © 2011-2022 走看看