• lvs负载均衡


    1: 10.152.98.110 VIP

      10.152.98.111  lvs_server

      10.152.98.112 real_server1

      10.152.98.113 real_server2

    1):实验目的1:通过在lvs_server上部署lvs,负载112、113 的服务(DR模式)

      

       

          lsmod |grep ip_vs

      看到ipvs模块没有加载进内核

      modprobe ip_vs  加载

                    wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

          ftp://ftp.muug.mb.ca/mirror/centos/6.6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm

          yum install -y gcc make  kernel-devel openssl-devel popt* libnl*

          rpm -ivh popt-static-1.13-7.el6.x86_64.rpm

          ln -s /usr/src/kernels/2.6.32-279.el6.x86_64/ /usr/src/linux

          tar -zxvf ipvsadm-1.26.tar.gz

          make && make install

        2)或者rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

          通过yum -y install ipvsadm安装

      

      [root@oracle10g src]# lsmod |grep ip_vs
      ip_vs 115490 0 
      ipv6 322541 15 ip_vs
      libcrc32c 1246 1 ip_vs

          在111上部署好之后,写入脚本:

       vi /etc/init.d/lvs_vip.sh

      

    #!/bin/sh
    VIP=10.152.98.110
    RIP1=10.152.98.112
    RIP2=10.152.98.113
    . /etc/rc.d/init.d/functions
    case "$1" in
    start)
    echo "start LVS of DirectorServer"
    #Set the Virtual IP Address
    /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
    /sbin/route add -host $VIP dev eth0:1
    #Clear IPVS Table
    /sbin/ipvsadm -C
    #Set Lvs
    /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"
    /sbin/ipvsadm -C
    /sbin/ifconfig eth0:1 down
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
    esac

    在两台real_server上写入脚本:

    vi /etc/init.d/real_vip.sh

    #!/bin/bash
    VIP=10.152.98.110
    . /etc/rc.d/init.d/functions
    case "$1" in
    start)
    echo "reparing for Real Server"
    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
    ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
    /sbin/route add -host $VIP dev lo:0
    ;;
    stop)
    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: lvs {start|stop}"
    exit 1
    esac

    先启动lvs_vip.sh start  

    可以通过命令查看ipvsadm -Ln

    在两台real-server 分别安装apache

    yum -y install httpd

    echo "<dl><dt>web1-real-server1(10.152.98.112)</dt></dl>" > /var/www/html/index.html

    echo "<dl><dt>web2-real-server2(10.152.98.113)</dt></dl>" > /var/www/html/index.html

    [root@lvs-server /]# curl http://10.152.98.112
    <dl><dt>web1-real-server1(10.152.98.112)</dt></dl>
    [root@lvs-server /]# curl http://10.152.98.113
    <dl><dt>web2-real-server2(10.152.98.113)</dt></dl>

    可以看到单独可以访问

    启动两台服务器上的real_vip.sh start

    在另外一台服务器上,

    for ((i=0;i<=100;i++))

    do

      curl -I -s http://10.152.98.80 >>/dev/null 2>&1

    done

    [root@lvs-server ~]# ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 10.152.98.110:80 rr
    -> 10.152.98.112:80 Route 1 0 50
    -> 10.152.98.113:80 Route 1 0 51

  • 相关阅读:
    HashTable介绍
    java源码 -- HashSet
    java源码 -- AbstractList
    java源码 -- AbstractSet
    java源码 -- AbstractCollection抽象类
    java源码 --List、Set、Collection
    第五篇:SpringBoot整合Mybatis
    java源码 -- AbstractMap
    算法
    根据前序遍历和中序遍历求后序遍历
  • 原文地址:https://www.cnblogs.com/liangsky/p/4585747.html
Copyright © 2020-2023  润新知