Keepalived安裝配置

Keepalived是一個免費開源的,用C編寫的相似於layer3, 4 & 7交換機制軟件,具有咱們平時說的第3層、第4層和第7層交換機的功能。主要提供loadbalancing(負載均衡)和 high-availability(高可用)功能,負載均衡實現須要依賴Linux的虛擬服務內核模塊(ipvs),而高可用是經過VRRP協議實現多臺機器之間的故障轉移服務。html

Keepalived的全部功能是配置keepalived.conf文件來實現的。linux

將從官網下載的keepalived-1.3.4.tar.gz包,上傳到/tmp目錄下。ios

tar -zxvfkeepalived-1.3.4.tar.gz服務器

 

cd keepalived-1.3.4網絡

 

./configure --prefix=安裝路徑負載均衡

 

make && make installurl

 

安裝完成後,進入安裝目錄的etc目錄下,將keepalived相應的配置文件拷貝到系統相應的目錄當中。keepalived啓動時會從/etc/keepalived目錄下查找keepalived.conf配置文件,若是沒有找到則使用默認的配置。/etc/keepalived目錄安裝時默認是沒有安裝的,須要手動建立。配置文件目錄結構以下所示:.net

 

-- keepalivedrest

|   |-- keepalived.confcode

|   `-- samples

|       |-- keepalived.conf.status_code

|       |-- keepalived.conf.track_interface

|       |-- keepalived.conf.vrrp

|       |-- 。。。

|-- rc.d

|   `-- init.d

|       `-- keepalived

`-- sysconfig

    `-- keepalived

 

分別對應系統目錄:

/etc/keepalived/keepalived.conf

/etc/rc.d/init.d/keepalived

/etc/sysconfig/keepalived

 

將配置文件拷貝到系統對應的目錄下:

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived.conf /etc/keepalived/keepalived.conf

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived

 

keepalived服務控制

systemctl enable keepalived.service #設置開機自動啓動

systemctl disable keepalived.service     #取消開機自動啓動

systemctl start keepalived.service       #啓動服務

systemctl restart keepalived.service     #重啓服務

systemctl stop keepalived.service         #中止服務

systemctl status keepalived.service      #查看服務狀態

設置防火牆打開

firewall-cmd --permanent–-add-service=keepalived

firewall-cmd --reload

再次強調:Keepalived的全部功能是配置keepalived.conf文件來實現的。

2.2 配置文件的詳細說明

keepalived.conf的配置

以下圖所示:

主機配置:

 

 

 

備機配置:

 

全局定義塊

一、email通知(notification_email、smtp_server、smtp_connect_timeout):用於服務有故障時發送郵件報警,可選項,不建議用。須要系統開啓sendmail服務,建議用第三獨立監控服務,如用nagios全面監控代替。 
二、lvs_id:lvs負載均衡器標識,在一個網絡內,它的值應該是惟一的。 
三、router_id:用戶標識本節點的名稱,一般爲hostname 
四、花括號{}:用來分隔定義塊,必須成對出現。若是寫漏了,keepalived運行時不會獲得預期的結果。因爲定義塊存在嵌套關係,所以很容易遺漏結尾處的花括號,這點須要特別注意。

VRRP實例定義塊

  1. vrrp_sync_group:同步vrrp級,用於肯定失敗切換(FailOver)包含的路由實例個數。即在有2個負載均衡器的場景,一旦某個負載均衡器失效,須要自動切換到另一個負載均衡器的實例是哪
  2. group:至少要包含一個vrrp實例,vrrp實例名稱必須和vrrp_instance定義的一致
  3. vrrp_instance:vrrp實例名 
    1> state:實例狀態,只有MASTER 和 BACKUP兩種狀態,而且須要所有大寫。搶佔模式下,其中MASTER爲工做狀態,BACKUP爲備用狀態。當MASTER所在的服務器失效時,BACKUP所在的服務會自動把它的狀態由BACKUP切換到MASTER狀態。當失效的MASTER所在的服務恢復時,BACKUP從MASTER恢復到BACKUP狀態。 
    2> interface:對外提供服務的網卡接口,即VIP綁定的網卡接口。如:eth0,eth1。當前主流的服務器都有2個或2個以上的接口(分別對應外網和內網),在選擇網卡接口時,必定要覈實清楚。 
    3>mcast_src_ip:本機IP地址 
    4>virtual_router_id:虛擬路由的ID號,每一個節點設置必須同樣,可選擇IP最後一段使用,相同的 VRID 爲一個組,他將決定多播的 MAC 地址。 
    5> priority:節點優先級,取值範圍0~254,MASTER要比BACKUP高 
    6>advert_int:MASTER與BACKUP節點間同步檢查的時間間隔,單位爲秒 
    7>lvs_sync_daemon_inteface:負載均衡器之間的監控接口,相似於 HA HeartBeat的心跳線。但它的機制優於 Heartbeat,由於它沒有「裂腦」這個問題,它是以優先級這個機制來規避這個麻煩的。在 DR 模式中,lvs_sync_daemon_inteface與服務接口interface使用同一個網絡接口 
    8> authentication:驗證類型和驗證密碼。類型主要有 PASS、AH 兩種,一般使用PASS類型,聽說AH使用時有問題。驗證密碼爲明文,同一vrrp實例MASTER與BACKUP使用相同的密碼才能正常通訊。 
    9>smtp_alert:有故障時是否激活郵件通知 
    10>nopreempt:禁止搶佔服務。默認狀況,當MASTER服務掛掉以後,BACKUP自動升級爲MASTER並接替它的任務,當MASTER服務恢復後,升級爲MASTER的BACKUP服務又自動降爲BACKUP,把工做權交給原MASTER。當配置了nopreempt,MASTER從掛掉到恢復,再也不將服務搶佔過來。 
    11>virtual_ipaddress:虛擬IP地址池,能夠有多個IP,每一個IP佔一行,不須要指定子網掩碼。注意:這個IP必須與咱們的設定的vip保持一致。

3、主備切換時執行的腳本

在keepalived.conf配置文件中加入如下內容

1.notify_master「想要執行的腳本路徑」 #表示當切換到master狀態時,要執行的腳本

2.notify_backup 「想要執行的腳本路徑」#表示當切換到backup狀態時,要執行的腳本

3.notify_fault「想要執行的腳本路徑」#表示切換出現故障時要執行的腳本

 轉載自:https://www.cnblogs.com/liyasen/p/6611079.html

相關文章
相關標籤/搜索