CentOS6.6環境下佈署LVS+keepalived

CentOS6.6 環境下佈署LVS+keepalivednginx



環境:web

        操做系統 Centos 6.6 _X64
算法

        WEB     nginxbash

結構:服務器

         LVS-MASTER:10.6.1.210
         LVS-BACKUP: 10.6.1.211
         LVS-VIP: 192.168.1.214
         Realsever: 10.6.1.212,10.6.1.213負載均衡


一.Keepalived主備服務器配置ide

 

  1. 配置服務器時間同步(全部服務器都須要配置)。oop

yum install -y ntp
ntpdate time.nist.gov測試

 

crontab –e
00 01 * * * /usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1   spa

 

  1. 安裝LVSKeepalived (主備機上都須要安裝)

Yum install Ipvsadm keepalived –y

 

 

 

  1. 修改keepalived配置文件。

rpm -ql keepalived   查看配置文件全部目錄

 

wKioL1YKY5iCtrZ3AAMywHPTeIY320.jpg


[root@master ~]# vi/etc/keepalived/keepalived.conf
! Configuration File for keepalived
 
global_defs {
   notification_email {
      test@163.com
   }
   notification_email_from test@163.com
   smtp_server 127.0.0.1
  # smtp_connect_timeout 30
   router_id LVS_DEVEL
}
 
# VIP1
vrrp_instance VI_1 {
    stateMASTER                  #備份服務器上將MASTER改成BACKUP  
    interface eth0
    virtual_router_id 51
    priority 100               # 備份服務上將100改成90
    advert_int 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.6.1.214  
        #(若是有多個VIP,繼續換行填寫.)
    }
}
 
virtual_server 10.6.1.214 80 {
    delay_loop6                 #(每隔10秒查詢realserver狀態)
    lb_algowlc                 #(lvs 算法)
    lb_kindDR                 #(Direct Route)
    persistence_timeout60        #(同一IP的鏈接60秒內被分配到同一臺realserver)
    protocolTCP               #(TCP協議檢查realserver狀態)
 
    real_server 10.6.1.212 80 {
        weight100              #(權重)
        TCP_CHECK {
        connect_timeout10       #(10秒無響應超時)
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.9.213 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

 

啓動keepalived服務並加入自啓動列表

[root@master~]#  service keepalived start|stop
[root@master ~]# chkconfig  keepalived on

 

 

  1. 複製配置文件到備機上面.

# scp keepalived.conf root@10.6.1.211:/etc/keepalived/

並作相應修改。 主要有兩個地方,上面已經用紅色標出。

 

# VIP1
vrrp_instance VI_1 {
    state BACKUP                 
    interface eth0
    virtual_router_id 51
    priority 90            

 

二.配置realserverrealserver上安裝nginx服務和配置nginx文件等,此處省略。

 

  1. 寫執行腳本,本腳本主要做用是忽略ARP廣播。(每臺realserver上都要執行)

[root@web_1~]# vi /root/lvs_real.sh

**********************************************************

#!/bin/bash

SNS_VIP=192.168.1.214
. /etc/rc.d/init.d/functions
 
case "$1" in
start)
       /sbin/ifconfig lo:0 $SNS_VIP netmask255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_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)
       /sbin/ifconfig lo:0 down
       /sbin/route del $SNS_VIP >/dev/null2>&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"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
 
exit 0

*********************************************************************

賦權並執行

# chmod +x /roo/lvs_real.sh

# ./root/lvs_real.sh start

echo 「/root/lvs_real.sh start」 >> /etc/rc.local

或者可參考關於realserver配置: http://pizibaidu.blog.51cto.com/1361909/1699080

本人以爲兩種方法均可以實現。

 

 

三.測試部分。

1.主備啓動keepalived服務。

LVS-MASTER

wKiom1YKY47xoLx8AAG9Jnzv3RY942.jpg

LVS-BACKUP


wKioL1YKY5jTnRhcAAJRZ30o3no208.jpg

 

2.  從不一樣的IP訪問WEB頁面,看LVS負載均衡的狀態。

Watch ipvsadm-ln


wKioL1YKY5mCGMMbAADjiTzxuNs209.jpg

3.  中止LVS-MASTER上的keepalived服務,驗證備機有沒有接替服務。

主機上關閉keepalived後,ping VIP時,會出現短暫的中斷或者時延較大,備機會立刻接替主機服務。


wKiom1YKY47w8UbTAAJpUIa7cjY088.jpg

 

4.  啓動LVS-MASTER上的keepalived服務,看控制權發生的什麼變化??

LVS_master啓動後,就會自動接回控制權,繼續負責轉發.此時也會發生短暫中斷。

 

5.  中止其中一臺realserver服務器(關閉WEB服務)。

當realserver故障或者沒法提供服務時,負載均衡器經過健康檢查自動把失效的機器從轉發隊列刪除掉。當realserver故障恢復後,負載均衡器經過健康檢查自動把恢復後的機器添加到轉發隊列中


wKiom1YKY4_wmUvlAADe021PwNI017.jpg

6.  觀察上述測試過程當中日誌的變化,有助於往後快速排查問題。

wKiom1YKY4_TRzYrAAh_dsqRFCc770.jpg

 

附件中有keepalived.conf和lvs_real.sh文件. 作爲參考。

相關文章
相關標籤/搜索