青蛙學Linux—Keepalived配置文件詳解

上一篇中在安裝時指定了Keepalived的配置文件目錄,因此這裏Keepalived的配置文件爲/etc/keepalived/keepalived.conf,Keepalived全部的配置都在這個文件中。因爲Keepalived配置文件中的配置項比較多,因此這裏按照功能將Keepalived的配置文件分爲如下三部分:html

  • 全局配置(Global Configuration)
  • VRRP配置
  • LVS配置

Keepalived的配置文件是以塊(block)的形式組織的,每一個塊的內容都包含在{}中,以#開頭的行均爲註釋。shell

注意:{}前面必須有一個空格;另外,Keepalived沒有配置文件檢測機制,就算是配置文件錯誤Keepalived也能夠正常啓動,但沒法正常工做。服務器

這裏首先使用Keepalived的HA功能,因此之介紹Keepalived配置文件中的全局和VRRP部分的配置。網絡

一、全局配置

簡單的全局配置以下:操作系統

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
  • notification_email:定義接收報警郵件的地址,能夠設置多個,每行一個。注意,若是要開啓郵件報警,須要本機開啓sendmail服務
  • notification_email_from:定義郵件的發送地址
  • smtp_server:定義發送郵件的SMTP服務器地址
  • smtp_connect_timeout:定義鏈接SMTP服務器的超時時間
  • router_id:定義Keepalived服務器的表示,發送郵件時顯示在郵件主題中

二、VRRP部分配置

VRRP部分配置是Keepalived全部配置的核心,主要用來實現Keepalived的高可用功能。VRRP部分主要用來配置節點角色(主或從)、實例綁定的網絡接口、節點間的驗證機制、虛擬IP等。如下爲經常使用的一些配置項:code

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    track_interface {
	eth0 
	eth1
    }
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
    nopreempt 
    preemtp_delay  300
    notify_master "xxx.sh "
    notify_backup "xxx.sh"
    notify_fault "xxx.sh"
    notify_stop "xxx.sh"
}

VRRP部分以vrrp_instance作爲標識,在這個實例中包含若干配置項:router

  • vrrp_instance:一個VRRP實例的開始,後跟自定義的實例名稱
  • state:定義此臺Keepalived的角色,MASTER表示主服務器,BACKUP表示備用服務器
  • interface:定義Keepalived監測的網絡接口
  • virtual_router_id:定義虛擬路由標識,一個數字。同一個HA集羣中的Master和Backup的虛擬路由標識必須一致
  • priority:定義節點優先級,數字越大表示優先級越高。在一個HA集羣中,Master的優先級最高,而優先級高的Backup更有可能被選舉爲下一個Master
  • advert_int:定義Master和Backup之間檢測的時間間隔,單位秒
  • track_interface:定義額外監控的網絡接口,其中任何一個接口故障Keepalived都會進入FAULT狀態
  • authentication:定義節點間的通訊驗證類型和密碼。auth_type用於定義驗證類型,有PASS和AH兩種;auth_pass用於定義密碼,各個節點間的密碼必須相同才能夠正常通訊
  • virtual_ipaddress:定義虛擬IP地址(VIP),可設置多個虛擬IP,每行一個。Keepalived會將虛擬IP使用系統命令ip address add添加到Master的操做系統中,因此能夠經過ip addr命令查看添加的虛擬IP;添加IP的方式多種多樣,能夠直接使用IP地址,也可使用如xxx.xxx.xxx.xxx dev eth0的方式將虛擬IP綁定到具體的網絡接口,也可使用掩碼,如xxx.xxx.xxx.xxx/24的形式
  • nopreempt:定義節點的不搶佔功能。不搶佔功能是在集羣進行了一次主備切換後,當原先的Master恢復正常以後,不會再次成爲Master,而是等待當前運行的Master故障以後纔會再次成爲Master。這樣能夠避免主備來回切換帶來的風險。注意,只有stateBACKUP的節點才能夠設置不搶佔模式,且只須要在優先級高的節點上設置
  • preemtp_delay:定義切換的延時時間,單位秒,在定義的時間內不會發生主備切換。用於重啓網絡或服務而不但願發生主備切換的場景
  • notify_master:定義當Keepalived進入Master狀態時要執行的腳本,能夠是報警腳本,也能夠是服務管理腳本,同時腳本容許傳入參數
  • notify_backup:定義當Keepalived進入Backup狀態時執行的腳本
  • notify_fault:定義當Keepalived進入Fault狀態時執行的腳本
  • notify_stop:定義當Keepalived中止後須要執行的腳本
相關文章
相關標籤/搜索