lvs+keepalived實現web服務高可用

lvs+keepalived實現web服務高可用

1.系統環境:

RHEL6:安裝base;developmenttools(所有可選包)。

四臺服務器:兩臺負載服務器,兩臺真實web服務器。

vip:192.168.50.179

master:192.168.50.170  (主負載)

backup:192.168.50.171  (備用負載)

rs1:192.168.50.172      (真實web服務器1)

rs2:192.168.50.173      (真實web服務器2)

2.負載節點安裝配置:

 (1)安裝ipvsadm

  #ln -s/usr/src/kernels/`uname -r` /usr/src/linux

  #tar zxvfipvsadm-1.24.tar.gz

  #cdipvsadm-1.24

  #make;make install

  ipvsadm不需要做任何配置。只需確定正確安裝即可。

 (2)安裝配置keepalived

  我的系統環境在安裝過程中提示如下信息:

  需要安裝openssl-devel包,這個包也有幾個依賴包,按提示安裝即可。

  此外在安裝過程中還缺少 popt-devel,libnl-devel包。直接安裝。

  #tar zxvf keepalived-1.2.2.tar.gz

  #cd keepalived-1.2.2

  #./configure --prefix=/usr/local/keepalived

  #make;make install

  安裝完成後看到如下提示信息說明安裝正確:

編輯配置文件keepalived.conf文件,下面是我的配置文件內容:

# sed -e /^#/d /usr/local/keepalived/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
     router_id LVS_DEVEL_1  #此處在備用負載上改成其他值,如:LVS_DEVEL_2
}

vrrp_instance VI_1 {
    state MASTER         #此處在備用負載上改成 BACKUP
    interface eth0
    virtual_router_id 51
    priority 200         #此處在備用負載上的值改小一點,值越大有點權越大
    advert_int 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.50.179    #虛擬IP
    }
}

virtual_server 192.168.50.179 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50  #session保持時間
    protocol TCP

    real_server 192.168.50.172 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            check_port 80
        }
    }
    real_server 192.168.50.173 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            check_port 80
        }
    }
}

注:按照以上配置在主負載從失效狀態再次上線時,會接管備用負載資源,在負載量大的應用環境不太可取,如果不想搶奪備用負載的資源,可把主負載也設置成“BACKUP”,並設置“nopreempt”。優先級要保持比備用負載高。

#ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin

#ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc

#keepalived -f /etc/keepalived.conf

echo "keepalived -f /etc/keepalived.conf" >> /etc/rc.local

---------------------------------------------------------------------------

3.真實web節點配置

(1)在真實節點安裝安裝好web應用環境。並分別建立兩個測試頁面。

(2)在真實節點建立腳本文件

#vi /etc/init.d/real_server.sh

#!/bin/sh

# chkconfig: 234572 08

# description:Config realserver lo:0 port and apply arp patch

VIP=192.168.50.179

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

case $1 in

            start)

            echo "lo:0 port starting"

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

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

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

            ;;

            stop)

            echo "lo:0 port closing"

            ifconfig lo:0 down

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

            echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

            ;;

            *)

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

            exit 1

esac

#chkconfig --add real_server.sh

#chkconfig --level 235  real_server.sh on

----------------------------------------------------------------------------------

4.測試

分別停掉兩臺web服務器的http服務,或者down掉網絡接口查看結果

分別停掉兩臺負載服務器,查看相關日誌,看是否能自動接管
































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