上一篇中在安裝時指定了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。這樣能夠避免主備來回切換帶來的風險。注意,只有state爲BACKUP的節點才能夠設置不搶佔模式,且只須要在優先級高的節點上設置
- preemtp_delay:定義切換的延時時間,單位秒,在定義的時間內不會發生主備切換。用於重啓網絡或服務而不但願發生主備切換的場景
- notify_master:定義當Keepalived進入Master狀態時要執行的腳本,能夠是報警腳本,也能夠是服務管理腳本,同時腳本容許傳入參數
- notify_backup:定義當Keepalived進入Backup狀態時執行的腳本
- notify_fault:定義當Keepalived進入Fault狀態時執行的腳本
- notify_stop:定義當Keepalived中止後須要執行的腳本