lvsにおけるdrモード構成スクリプト


1 drモード紹介
1.1 lvsのインストール
インストールの詳細:http://blog.csdn.net/CleverCode/article/details/50586957.
1.2 lvsモード
lvsには3つのモードdr,nat,tunがある.ここではまずdrモードについて説明します.
1.3 dr特徴1)Load BalancerとすべてのReal Serverは同じローカルエリアネットワークセグメントにある.
2)Real Serverは要求を処理した後,スケジューラで返す必要がなく,ユーザに直接返す.
1.4プロセス要求プロセス:顧客=>vip=>RealServer.
応答プロセス:RealServer=>お客様.
2環境の構成
2.1 LoadBalancer DIP:192.168.142.133(eth0).
VIP:192.168.142.211(eth0:1).
2.2 RealServer1 DIP:192.168.142.130(eth0).
2.3 RealServer2 DIP:192.168.142.131(eth0).
3構成スクリプト
3.1 LoadBalancer#mkdir-p/usr/local/lvsの構成
# cd/usr/local/lvs
# vi lvs-dr.sh
#!/bin/sh

# lvs-dr.sh
#
# lvs dr  LVS server  
#
# 
# vip rip        。VS/DR         MAC  ,        realserver ,
#           IP  ,  realserver       ,    LVS   ,        LVS   。

# set the vip and port
VIP=192.168.142.211
VPORT1=80

# set the rip and port
# web
RIP1=192.168.142.130
RIP2=192.168.142.131
# port
RPORT1=80

Usage (){
    echo "Usage:`basename $0` (start|stop|status) "
    exit 1
}

if [ $# -ne 1 ];then
  Usage
fi

case $1 in
    start)
        echo "start LVS of DirectorServer"
        echo 1 > /proc/sys/net/ipv4/ip_forward
        
        # set the vip
        /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
        
        # add lvs vip and port
        /sbin/ipvsadm -A -t $VIP:$VPORT1 -s rr
        
        # add rip and port
        /sbin/ipvsadm -a -t $VIP:$VPORT1 -r $RIP1:$RPORT1 -g -w 1
        /sbin/ipvsadm -a -t $VIP:$VPORT1 -r $RIP2:$RPORT1 -g -w 1
                
        /sbin/ipvsadm -L -n
        ;;
      
    stop)
        echo "close LVS DirectorServer"
        /sbin/ipvsadm -C
        /sbin/ifconfig eth0:1 down
        ;;

    
    status)
        /sbin/ipvsadm -L -n
        ;;
          
    
    *)
        Usage
esac

開始
#sh lvs-dr.sh start
3.2 RealServer 1#mkdir-p/usr/local/lvsの構成
# cd/usr/local/lvs
# vi realServer.sh
#!/bin/sh

# realServer.sh
#
# lvs dr  RIP server  
#  

VIP=192.168.142.211

#vip's broadcast
BROADCAST=192.168.142.255 

Usage ()
{
    echo "Usage:`basename $0` (start|stop)"
    exit 1
}

if [ $# -ne 1 ];then
    Usage
fi

case $1 in
    start)
        echo "reparing for Real Server"
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce
        /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $BROADCAST up
        /sbin/route add -host $VIP dev lo:0
        ;;
        
    stop)
        /sbin/ifconfig lo:0 down
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce
        echo "stop Real Server"
        ;;
    
    *)
        Usage
esac

開始
#sh realServer.sh start
3.3 RealServer 2を構成同理RealServer 1を構成する.
4 Webサーバテストの確立
1)RealServer 1とRealServer 2のインストールと構成Nginx(詳細:http://blog.csdn.net/clevercode/article/details/45442155)
2)RealServer 1のwebサーバルートディレクトリにindexを作成する.html
    # vi index.html
    if you see this page,then you know this ip is 192.168.142.130 and this page is from nginx!
3)RealServer 2のwebサーバルートディレクトリにindexを作成する.html
    # vi index.html
    if you see this page,then you know this ip is 192.168.142.131 and this page is from nginx!
4)hostまたはdnsを構成する.my.domain.comはVIP:192.168.142.211を指す.
5)ページを更新すると、異なる内容が表示されます.
lvs中dr模式配置脚本_第1张图片
lvs中dr模式配置脚本_第2张图片