天天看點

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 {

        TCP_CHECK {

    }   

virtual_server 192.168.2.100 443 {

    real_server 192.168.2.3 443 {

    real_server 192.168.2.4 443 {

繼續閱讀