CentOS 6.5高可用集羣LVS+Keepalived

環境介紹linux

操做系統:CentOS6.5_x64 mini
負載均衡模式:DR(直接路由)
LVS與Keepalived簡述:
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。使用集羣技術和Linux操做系統實現一個高性能、高可用的服務器,很好的可伸縮性、可靠性和管理性。
LVS集羣採用IP負載均衡技術和基於內容請求分發技術。調度器具備很好的吞吐率,將請求均衡地轉移到不一樣的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。
Keepalived採用VRRP(virtual router redundancy protocol,虛擬路由冗餘協議)熱備份協議,以軟件的方式實現linux服務器的多機熱備功能。VRRP是針對路由器的一種備份解決方案-----由多臺路由器組成一個熱備組。經過共用的虛擬IP地址對外提供服務;每一個熱備組內同一時刻只有一臺主服務器提供服務,其餘服務器處於冗餘狀態,若當前在線的服務器失敗,其餘服務器會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務。c++

1、配置主從LVS服務器web

安裝依賴包:算法

yum install -y gcc gcc-c++ makepcre pcre-devel openssl-devel kernel-devel libnl3-devel popt-devel

一、檢查linux內核是否集成lvs模塊bash

modprobe -l | grep ipvs


二、開啓路由轉發功能服務器

    1) # 負載均衡

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

    2) #oop

sysctl -w net.ipv4.ip_forward=1

    以上兩種方法均可能當即開啓路由功能,但若是系統重啓,或執行了性能

service network restart

命令,所設置的值即會丟失,若是想永久保留配置,能夠修改/etc/sysctl.conf文件操作系統

 將 net.ipv4.ip_forward=0改成net.ipv4.ip_forward=1

sed -i '/net.ipv4.ip_forward/ s/\(.*= \).*/\11/' /etc/sysctl.conf


三、安裝ipvsadm

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make && make install

四、安裝keepalived

4.一、在線安裝

yum install -y keepalived

4.二、源碼安裝

wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar zxvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.7
./configure --prefix=/usr/local/keepalived
make && make install

將keepalived配置成系統服務

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

五、修改主keepalived配置文件(備只修改router_id、state和priority)

vi /etc/keepalived/keepalived.conf
! Configuration File forkeepalived
global_defs {
    notification_email {
        test@sina.com    #故障接受聯繫人
    }
    notification_email_from admin@test.com  #故障發送人
    smtp_server 127.0.0.1   #本機發送郵件
    smtp_connect_timeout 30
    router_id LVS_MASTER    #BACKUP上修改成LVS_BACKUP
}
vrrp_instance VI_1 {
    state MASTER    #BACKUP上修改成BACKUP
    interface eth0
    virtual_router_id 51  #虛擬路由標識,主從相同
    priority 100  #BACKUP上修改成90
    advert_int 1 
    authentication {
        auth_type PASS 
        auth_pass 1111  #主從認證密碼必須一致
    } 
    virtual_ipaddress {    #Web虛擬IP(VTP) 
        172.0.0.10 
    }
} 
virtual_server 172.0.0.10 80 { #定義虛擬IP和端口 
    delay_loop 6    #檢查真實服務器時間,單位秒 
    lb_algo rr      #設置負載調度算法,rr爲輪訓 
    lb_kind DR      #設置LVS負載均衡DR模式 
    persistence_timeout 50 #同一IP的鏈接60秒內被分配到同一臺真實服務器 
    protocol TCP    #使用TCP協議檢查realserver狀態 
    real_server 172.0.0.13 80 {  #第一個web服務器
        weight 3          #節點權重值
        TCP_CHECK {      #健康檢查方式
            connect_timeout 3 #鏈接超時 
            nb_get_retry 3    #重試次數
            delay_before_retry 3  #重試間隔/S
        } 
    } 
    real_server 172.0.0.14 80 {  #第二個web服務器
        weight 3
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    } 
}
相關文章
相關標籤/搜索