keepalived

Keepalivedhtml

 

Lvs Active     172.25.23.1     server1.example.comlinux

Lvs Backup    172.25.23.2     server2.example.comvim

Lvs VIP        172.25.23.100   服務器

Real Server   172.25.23.3server3.example.com負載均衡

172.25.23.4server4.example.comide

Iptables selinux 關掉,加解析及時間同步oop

一.安裝軟件測試

Server1 spa

下載安裝包 keepalived-1.2.20.tar.gz router

編譯時須要的軟件有ipvsadm(須要修改yum源,在yum源中添加高可用,負載均衡等) kernel-devel基於內核轉發的) openssl-devel popt-devel  gcc

[root@server1 ~]# tar  zxf  keepalived-1.2.20.tar.gz

[root@server1 ~]# cd keepalived-1.2.20

[root@server1 keepalived-1.2.20]# ./configure --prefix=/usr/local/keepalived

[root@server1 keepalived-1.2.20]# make && make install

[root@server1 keepalived-1.2.20]# cd /usr/local/keepalived

[root@server1 keepalived]# scp -r /usr/local/keepalived/ root@172.25.23.2:/usr/local

 

Server1 Server2中 文件會保存/usr/local/keepalived/etc/rc.d/init.d,文件存放的路徑不對,創建連接,操做會比較方便

 ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d

 ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

 ln -s /usr/local/keepalived/etc/keepalived/ /etc

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

 /etc/init.d/keepalived status

 

二.Keepalived + lvs + http

1.編寫配置文件並啓動服務

[root@server1 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   notification_email {

     root@localhost#配置管理員郵箱  

   }

   notification_email_from keepalived@redhat1.example.com#配置發件人  

   smtp_server 127.0.0.1#配置郵件服務器

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state MASTER    #配置模式   

interface eth0

    virtual_router_id 51  # 兩臺機器的虛擬路由ID同樣,同一個廣播域不一樣

    priority 100    # 配置優先級 MASTER的優先級高於BACKUP

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.25.23.100#配置虛擬IP地址   

    }

}

virtual_server 172.25.23.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

#    persistence_timeout 50

    protocol TCP

 

    real_server 172.25.23.3 80 {#配置realaserver 

        weight 1

        TCP_CHECK {#監控配置   

connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    real_server 172.25.23.4 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

[root@server1 ~]# /etc/init.d/keepalived start

[root@server1 ~]# scp /etc/keepalived/keepalived.conf root@172.25.23.2:/etc/keepalived

# 將配置文件同步到slave

[root@server2 ~]# vim /etc/keepalived/keepalived.conf

# 簡單修改一下slave配置文件 修改server1的綠色部分,state BACKUP   priority 50

[root@server2 ~]# /etc/init.d/keepalived start

注意:Server3 server4 real server)上須要添加DR模式,keepalived只負責lvs,而real server上的DR模式仍然須要本身配置

wKioL1fVKu3TvAmVAAB5oC8yny4974.png 

[root@server4 ~]# /etc/init.d/httpd start

 

2.測試

[root@server3 ~]# echo server3 > /var/www/html/index.html

[root@server4 ~]# echo server4 > /var/www/html/index.html

(1) 高可用測試:中止 master 上的 keepalived 服務,backup 是否接管。

(2) 負載均衡測試:訪問 http://172.25.23.100,看到頁面在兩個 real server 上切換表示成功!也能夠經過查看一下LVS狀態 ipvsadm -Lnc 查看詳細鏈接狀況!

wKiom1fVKv7RFor_AACGGdub6Ho829.png(3)故障切換測試(健康監測):任意關閉 realserver 上的 httpd 服務,Keepalived 監控模塊是否能及時發現,而後屏蔽故障節點,同時將服務轉移到正常節點來執行。

 

wKioL1fVKw7hqSWxAAD0KdgjM-k703.png 

 

三.Keppalived + lvs + ftp

httpd 服務換成ftp服務便可,即將80 --> 21

注意:

ftp 的端口號爲21,另外添加persistence_timeout 50,保持一個會話50S。由於ftp服務的數據流是21 -> 20的,若不保存一個會話,則會顯示一直在進行ftp鏈接。

 

四.當全部的real server都宕機時

在集羣中若是全部real server所有宕機了,客戶端訪問時就會出現錯誤頁面,這樣是很不友好的,咱們得提供一個維護頁面來提醒用戶,服務器正在維護,什麼時間能夠訪問等,下面咱們就來解決一下這個問題。解決方案有兩種,一種是提供一臺備用的real server當全部的服務器宕機時,提供維護頁面,但這樣作有點浪費服務器。另外一種就是在負載均衡器上提供維護頁面,這樣是比較靠譜的,也比較經常使用。下面咱們就來具體操做一下。

(1)masterslave端安裝httpd及編寫測試頁

yum install -y httpd

echo 「系統正在維護,請稍後訪問「 > /var/www/html/index.html

/etc/init.d/httpd start

(2) 修改配置文件 master slave

Vim  /etc/keepalived/keepalived.conf  

---->

......

sorry_server 127.0.0.1 80   #增長一行sorry_server 

}

#必定要將語句加在{}內部

相關文章
相關標籤/搜索