負載均衡 LVS-DR 實驗

CIP:   192.168.0.196

DIP:    192.168.0.101

VIP:     192.168.0.26

 

RIP1:192.168.0.155             index.html                  cluster1.test

RIP2:192.168.0.239             index.html                  cluster2.test

RIP3:192.168.0.146             index.html                  cluster3.test

虛擬機RIP1 2 3 DIP 網卡都是橋接

 

director上安裝ipvsadm 關閉防火牆 setenforce 0 

腳本:

 

#!/bin/bash

# LVS script for VS/DR

#

. /etc/rc.d/init.d/functions

#

VIP=192.168.0.26

RIP1=192.168.0.155

RIP2=192.168.0.239

RIP3=192.168.0.146

PORT=80

#

case "$1" in

start)

  /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up

  /sbin/route add -host $VIP dev eth0:1

# Since this is the Director we must be able to forward packets

  echo 1 > /proc/sys/net/ipv4/ip_forward

# Clear all iptables rules.

  /sbin/iptables -F

# Reset iptables counters.

  /sbin/iptables -Z

# Clear all ipvsadm rules/services.

  /sbin/ipvsadm -C

# Add an IP virtual service for VIP 192.168.0.219 port 80

# In this recipe, we will use the round-robin scheduling method.

# In production, however, you should use a weighted, dynamic scheduling method.

  /sbin/ipvsadm -A -t $VIP:80 -s wlc

# Now direct packets for this VIP to

# the real server IP (RIP) inside the cluster

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 2

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 2

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP3 -g -w 2

  /bin/touch /var/lock/subsys/ipvsadm &> /dev/null

;;

stop)

# Stop forwarding packets

  echo 0 > /proc/sys/net/ipv4/ip_forward

# Reset ipvsadm

  /sbin/ipvsadm -C

# Bring down the VIP interface

  /sbin/ifconfig eth0:1 down

  /sbin/route del $VIP

  /bin/rm -f /var/lock/subsys/ipvsadm

  echo "ipvs stopped..."

;;

status)

  if [ ! -e /var/lock/subsys/ipvsadm ]; then

    echo "ipvsadm stopped ..."

  else

    echo "ipvs is running ..."

    ipvsadm -L -n

  fi

;;

*)

  echo "Usage: $0 {start|stop|status}"

;;

esac

 

 

RIP上要關閉防火牆  selinux  啓動Apache

RIP 腳本:

#!/bin/bash

#

# Script to start LVS DR real server.

# description: LVS DR real server

#

.  /etc/rc.d/init.d/functions

VIP=192.168.0.26

host=`/bin/hostname`

case "$1" in

start)

       # Start LVS-DR real server on this machine.

        /sbin/ifconfig lo down

        /sbin/ifconfig lo 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

        /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

        /sbin/route add -host $VIP dev lo:0

;;

stop)

 # Stop LVS-DR real server loopback device(s).

        /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

;;

status)

        # Status of LVS-DR real server.

        islothere=`/sbin/ifconfig lo:0 | grep $VIP`

        isrothere=`netstat -rn | grep "lo:0" | grep $VIP`

        if [ ! "$islothere" -o ! "isrothere" ];then

            # Either the route or the lo:0 device

            # not found.

            echo "LVS-DR real server Stopped."

        else

            echo "LVS-DR real server Running."

        fi

;;

*)

            # Invalid entry.

            echo "$0: Usage: $0 {start|status|stop}"

            exit 1

;;

esac

 

在director  RIP上分別運行腳本,物理機上打開192.168.0.26,不停刷新,可見cluster1.test   cluster2.test  cluster3.test分別出現 

腳本參考馬哥教程和網絡上部分教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章