Keepalived配置檔案說明

2021-06-22 20:22:24 字數 3345 閱讀 3202

#全域性定義塊 

global_defs

notification_email_from email

smtp_server host

smtp_connect_timeout num

lvs_id string }

#vrrp 例項定義塊

vrrp_sync_group string

vrrp_instance string

virtual_ipaddress

virtual_ipaddress_excluded

#虛擬伺服器定義塊

virtual_server (@ip port)|(fwmark num)

} real_server @ip port }

real_server @ip port

connect_port num

connect_timeout num

nb_get_retry num

delay_before_retry num

} }

}

1、 email 通知。作用:有故障,發郵件報警。這是可選專案,建議不用,用 nagios 全面監

控代替之。 

2、 lvs 負載均衡器標識(lvs_id)。在乙個網路內,它應該是唯一的。 

3、 花括號「{}」。用來分隔定義塊,因此必須成對出現。如果寫漏了,keepalived 執行時,

不會得到預期的結果。由於定義塊記憶體在巢狀關係,因此很容易遺漏結尾處的花括號,

這點要特別注意。 

1、 同步 vrrp 組 vrrp_sync_group。作用:確定失敗切換(failover)包含的路由例項個

數。即在有 2 個負載均衡器的場景,一旦某個負載均衡器失效,需要自動切換到另外一

個負載均衡器的例項是哪些? 

2、 例項組 group.至少包含乙個 vrrp 例項。 

3、 vrrp 例項 vrrp_instance.例項名出自例項組 group 所包含的那些名字。 (1) 例項狀態 state.只有 master 和 backup 兩種狀態,並且需要大寫這些單詞。其中

master 為工作狀態,backup 為備用狀態。當 master 所在的伺服器失效時,

backup 所在的系統會自動把它的狀態有 backup 變換成 master;當失效的

master 所在的系統恢復時,backup 從 master 恢復到 backup 狀態。 

(2) 通訊介面 inte***ce。對外提供服務的網路介面,如 eth0,eth1.當前主流的伺服器都有

2 個或 2 個以上的介面,在選擇服務介面時,一定要核實清楚。 

(3) lvs_sync_daemon_inteface。負載均衡器之間的監控介面,類似於 ha heartbeat

的心跳線。但它的機制優於 heartbeat,因為它沒有「裂腦」這個問題,它是以優先

級這個機制來規避這個麻煩的。在 dr 模式中,lvs_sync_daemon_inteface 與服務接

口 inte***ce 使用同乙個網路介面。 

(4) 虛擬路由標識 virtual_router_id.這個標識是乙個數字,並且同乙個 vrrp 例項使

用唯一的標識。即同乙個 vrrp_stance,master 和 backup 的 virtual_router_id 是

一致的,同時在整個 vrrp 內是唯一的。 

(5) 優先順序 priority.這是乙個數字,數值愈大,優先順序越高。在同乙個 vrrp_instance

裡,master 的優先順序高於 backup。若 master 的 priority 值為 150,那麼 backup

的 priority 只能是 140 或更小的數值。 

(6) 同步通知間隔 advert_int .master 與 backup 負載均衡器之間同步檢查的時間間

隔,單位為秒。 

(7) 驗證 authentication。包含驗證型別和驗證密碼。型別主要有 pass、ah 兩種,

通常使用的型別為 pass,據說 ah 使用時有問題。驗證密碼為明文,同一 vrrp 例項

master 與 backup 使用相同的密碼才能正常通訊。 

4、 虛擬 ip 位址 virtual_ipaddress . 可以有多個位址,每個位址佔一行,不需要指定子

網掩碼。注意:這個 ip 必須與我們在 lvs 客戶端設定的 vip 相一致! 

虛擬伺服器定義是 keepalived 框架最重要的專案了,是 keepalived.conf 必不可少的部分。 

1、 虛擬伺服器 virtual_server. 這個 ip 來自於 vrrp 定義塊的第「4」步,後面乙個空格,然

後加上埠號。定義乙個 vip,可以實現多個 tcp 埠的負載均衡功能。 

(1) delay_loop。健康檢查時間間隔,單位是秒。 

(2) lb_algo. 負載均衡排程演算法,網際網路應用常使用 wlc 或 rr。 

(3) lb_kind. 負載均衡**規則。一般包括 dr,nat,tun3 種,在我的方案中,都使用

dr 的方式。 

戶從遠端用帳號進行登陸**時,有了這個會話保持功能,就能把使用者的請求**

給同乙個應用伺服器。在這裡,我們來做乙個假設,假定現在有乙個 lvs 環境,使

用 dr **模式,真實伺服器有 3 個,負載均衡器不啟用會話保持功能。當使用者第

一次訪問的時候,他的訪問請求被負載均衡器轉給某個真實伺服器,這樣他看到一

個登陸頁面,第一次訪問完畢;接著他在登陸框填寫使用者名稱和密碼,然後提交;這

時候,問題就可能出現了—登陸不能成功。因為沒有會話保持,負載均衡器可能會

把第 2 次的請求**到其他的伺服器。 

(5) **協議 protocol.一般有 tcp 和 udp 兩種。實話說,我還沒嘗試過 udp 協議類的**。 

2、 真實伺服器 real_server.也即伺服器池。real_server 的值包括 ip 位址和埠號。多個連續

的真實 ip,**的埠相同,是不是可以以範圍表示?需要進一步實驗。如寫成

real_server 61.135.20.1-10 80 . (1) 權重 weight.權重值是乙個數字,數值越大,權重越高。使用不同的權重值的目的在

於為不同效能的機器分配不同的負載,效能較好的機器,負載分擔大些;反之,性

能差的機器,則分擔較少的負載,這樣就可以合理的利用不同效能的機器資源。 

(2) tcp 檢查 tcp_check. 

關於配置檔案的理論我們就先講到這裡。由於應用場景的不同,配置檔案也會有很大的差異,

在接下來的章節裡,我將以兩個具體的應用來展示 keepalived 神奇功效。 

keepalived配置檔案

乙個功能完整的keepalived.conf檔案塊可分為三個部分 全域性定義塊,vrrp例項定義塊和虛擬伺服器定義塊,其中全域性定義塊和虛擬伺服器定義塊是必須的,如果在只有乙個負載均衡的場合就不必須定義vrrp例項塊 vrrp定義塊 同步vrrp組vrrp sync group作用 確定失敗切換包含...

keepalived配置檔案詳解

keepalived既可以作為ha熱備,也能作健康檢查。1,安裝keepalived 2,把配置檔案複製到 etc keepalived 路徑下,cp usr share doc keepalived examples ldirectord.conf.example etc keepalived k...

keepalived配置檔案詳解

1 global configuration root localhost 本機郵箱 注 keepalived 發生故障切換時郵件傳送的物件,可以按行區分寫多個 說明 這個郵件配置可以寫也可以不寫,一般使用指令碼方式傳送郵件,一旦keepalived出現故障,通過指令碼可以檢測,然後通過指令碼實現傳...