LVS+Keepalived搭建

<--目錄-->

1)安裝LVS和Keepalived

2)lvs腳文內容

3)keepalived配置文件內容



【安裝LVS和Keepalived】

#安裝lvs工具

yum -y install ipvsadm


#安裝keepalived

yum -y install gcc kernel-devel openssl-devel popt-devel

tar zxf keepalived-1.2.13.tar.gz

cd keepalived-1.2.13

./configure

make && make install

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

chkconfig keepalived on


#更換keepalived文件

#lvs 更換keepalived配置文件即可,換配置文件後還需更改虛擬IP


#更換web服務器文件(法1)

#在兩臺需要負載均衡的web服務器更換sysctl.conf,添加ifcfg-lo:0,添加ifcfg-lo:0後還需更改虛擬IP,或直接添加lvs這個腳本亦可


#更換web服務器文件(法2)

#1)在兩臺需要負載均衡的web服務器/opt目錄下直接添加lvs這個腳本即可

#2)設置開機啓動

tail -1 /etc/rc.local

/opt/lvs start


#5)測試輪詢訪問

#for((i=1;i<11;i++));do curl http://虛擬IP;echo $i;sleep 2;echo; done



#注意:

#1、如lvs出現裂腦情況,則可能是防火牆、selinux沒關,網絡關閉了

#2、發現設置了DR模式,rr輪詢的調度算法,但訪問刷新還是訪問同一臺web,那是因爲設置了會話保持時間,把#他註釋掉即可



【lvs腳文內容】

#!/bin/bash

# Written by NetSeek

# description: Config realserver lo and apply noarp

WEB_VIP=192.168.2.100       #此處改爲你設定的vip地址


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


case "$1" in

start)

ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP

/sbin/route add -host $WEB_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

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"


;;

stop)

ifconfig lo:0 down

route del $WEB_VIP >/dev/null 2>&1

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 "RealServer Stoped"

;;

status)

# Status of LVS-DR real server.

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

isrothere=`netstat -rn | grep "lo:0" | grep $web_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 Running."

fi

;;

*)

# Invalid entry.

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

exit 1

;;

esac

exit 0



【keepalived配置文件內容】

! Configuration File for keepalived


global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}


vrrp_instance VI_1 {

    state MASTER    #主爲MASTER,備爲BACKUP

    interface eth0

    virtual_router_id 51    

    priority 100   #主的優先級比較高,主爲100,備爲90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.2.100

    }

}


virtual_server 192.168.2.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    #persistence_timeout 10

    protocol TCP


    real_server 192.168.2.3 80 {

        weight 1

TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    

    real_server 192.168.2.4 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }   

}


virtual_server 192.168.2.100 443 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    #persistence_timeout 10

    protocol TCP


    real_server 192.168.2.3 443 {

        weight 1

TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    

    real_server 192.168.2.4 443 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }   

}


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