Linux 構建LVS+Keepalived高可用群集

2018-07-31 14:43 更新

防偽碼:不必向我訴說春天,我的心里并沒有秋寒

           第六章 構建LVS+Keepalived高可用群集 

前言:keeplived是專門針對LVS設計的一款輔助工具,主要功能是實現故障切換和健康檢查,官方網站:http://www.keepalived.org。類似于我們以前學習過的HSRP熱備份路由協議,HSRP是思科的私有協議,而VRRP是通用協議,都是為了實現故障切換,當一臺路由器發(fā)生故障的時候,另一臺馬上接替工作,用戶感覺不到服務器發(fā)生了問題,而且不會中斷服務。我們今天學習的雙機熱備是就是利用了VRRP虛擬路由冗余協議,和HRSP一樣都擁有一個虛擬的ip地址對外提供服務,而不是真正的服務器ip地址,也擁有一臺主服務器和多臺備份服務器,優(yōu)先級高的做主路由器,備份服務器處于冗余狀態(tài),當主服務器發(fā)生故障的時候,從服務器會變成主服務器,當主服務器修好之后,會重新成為主路由器。這里和HSRP不同的是,HSRP需要配置占先權,而這里不用配置,默認都有占先權。

綜上所述,VRRP即一主 + 多備,共用同一個IP地址,但優(yōu)先級不同。

實驗案例:構建LVS+Keepalived高可用群集

實驗分析:

Keepalived的設計目標是構建高可用的LVS負載均衡群集,可以調用ipvsadm工具來創(chuàng)建虛擬服務器、管理服務器池,而不僅僅用作雙機熱備。使用Keepalived構建LVS群集更加簡便易用,主要優(yōu)勢體現在:對LVS負載調度器實現熱備切換,提高可用性;對服務器池中的節(jié)點進行健康檢查,自動移除失效節(jié)點,恢復后再重新加入。

本節(jié)將以DR模式的LVS群集為基礎,增加一臺從負載調度器,使用Keepalived來實現主、從調度器的熱備,從而構建兼有負載均衡、高可用兩種能力的LVS網站集群平臺,如圖所示:

實驗基礎:

1、配置主調度器

1)安裝支持軟件(開發(fā)內核包kernel-devel、openssl-devel,popt-devel支持庫)

2)編譯安裝Keepalived

3)使用Keepalived服務(手動添加為系統服務)

4)配置主調度器

Vi  /etc/keepalived/keepalived.conf

詳解配置參數:

! Configuration File for keepalived


global_defs {

   notification_email {                                        //接收郵件的地址,需要postfix,這里可不寫

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 127.0.0.1                                 //郵件服務器地址,這里填寫本機地址

   smtp_connect_timeout 30

   router_id R1                                                   //主調度器路由器名稱(注意與從調度器不能相同)

}


vrrp_instance VI_1 {

    state MASTER                                             //熱備狀態(tài),主為MASTER,備為BACKUP

    interface eth0                                               //承載VIP地址的物理接口,即外網卡的名稱

    virtual_router_id 1                                       //虛擬路由器的ID號,每個熱備組保持一致

    priority 100                                                   //優(yōu)先級,數值越大優(yōu)先級越高

    advert_int 1                                                  //通告間隔秒數(心跳頻率)

    authentication {                                            //認證信息,每個熱備組保持一致

        auth_type PASS                                      //認證類型

        auth_pass 1111                                        //密碼字串

    }

    virtual_ipaddress {                                        //漂移地址(VIP),可以有多個

        172.16.16.200

    }

}

virtual_server 172.16.16.200 {                           //虛擬服務器地址(VIP)

    delay_loop 6                                                     //健康檢查的間隔時間(秒)

    lb_algo rr                                                            //輪詢(rr)調度算法

    lb_kind DR                                                         //群集工作模式(DR即路由模式)      

    persistence_timeout 50                                    //連接保持時間 

    protocol TCP                                                      //應用服務采用的是TCP協議


    real_server 172.16.16.173  {                             //第一個節(jié)點的地址

        weight 1                                                            //節(jié)點的權重

        TCP_CHECK {                                                //健康檢查方式

            connect_timeout 3                                        //連接超時   

            nb_get_retry 3                                               //重試次數

            delay_before_retry 3                                    //重試間隔(秒)   

        }

    }

}


    real_server 172.16.16.174  {                                  //同上

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

5)開啟keepalived服務

注:inet 172.16.16.200/32 scope global eth0    //漂移地址,通俗來講,誰是主,誰優(yōu)先級高,跟著誰


6)從調度服務器的配置

首先安裝keepalived,和主服務器一樣,在配置的時候主要有三個地方不一樣:優(yōu)先級99,調度器名稱R2,熱備狀態(tài)為BACKUP

Vi /etc/keepalived/keepalived.conf(使用scp命令遠程拷貝一份)

7)啟動從服務器的Keepalived服務

8) 測試lvs+keepalived群集

在客戶機上訪問172.16.16.172,可以正常訪問,效果如下:

然后把主調度器的外網卡斷掉,如果客戶端依然可以訪問網站,說明成功。

再次訪問網站

在從調度器上查看網卡配置,可以看到虛擬ip顯示了,說明現在從服務器成為了主調度器。

 

9) 測試聯通性

在客戶機上ping 172.16.16.172 -t,然后斷掉主調度器的外網卡,發(fā)現斷掉一下之后馬上又恢復通信,說明今天的實驗成功了,

當然最關鍵還是當主服務器故障之后,用戶訪問網站沒有感覺,web節(jié)點的網頁也要完全一樣。

結語:通過主、從調度器的/var/log/messages日志文件,可以跟蹤故障切換過程;若要查看負載分配情況,可以執(zhí)行“ipvsadm -ln或ipvsadm -lnc”等命令。

最終可以驗證LVS+Keepalived高可用負載均衡群集的健壯性。

謝謝觀看,真心的希望能幫到您!

本文出自 “一盞燭光” 博客,謝絕轉載!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號