首頁 資訊 在Linux中,keepalive工作原理是什么及如何做到健康檢查?

在Linux中,keepalive工作原理是什么及如何做到健康檢查?

來源:泰然健康網(wǎng) 時間:2024年12月31日 13:03

Keepalived 是一個用于 Linux 系統(tǒng)的高可用性解決方案,它主要通過 Virtual Router Redundancy Protocol (VRRP) 協(xié)議來實現(xiàn)網(wǎng)絡(luò)服務的高可用性和故障轉(zhuǎn)移。其核心功能包括故障切換和健康檢查,廣泛應用于 LVS 負載均衡集群以及其他需要高可用性的場景。下面是 Keepalived 工作原理及其健康檢查機制的詳細介紹:

1. Keepalived 工作原理

VRRP 協(xié)議基礎(chǔ)

VRRP 是一種容錯協(xié)議,旨在通過創(chuàng)建一個虛擬路由器來提供默認網(wǎng)關(guān)的冗余。這個虛擬路由器有一個虛擬 IP 地址(VIP)和一個虛擬 MAC 地址,客戶端會將這個 VIP 設(shè)置為它們的默認網(wǎng)關(guān)。 在 Keepalived 配置中,至少有兩個節(jié)點:一個是主節(jié)點(MASTER),另一個是備份節(jié)點(BACKUP)。它們都運行 VRRP 協(xié)議,競爭成為 VIP 的擁有者。 主節(jié)點周期性地發(fā)送 VRRP 通告報文(多播到 224.0.0.18),告訴備份節(jié)點它仍在運行。備份節(jié)點監(jiān)聽這些報文,以確認主節(jié)點的狀態(tài)。

優(yōu)先級與狀態(tài)轉(zhuǎn)換

每個 VRRP 節(jié)點都有一個優(yōu)先級,優(yōu)先級高的節(jié)點將成為 MASTER。如果 MASTER 節(jié)點停止發(fā)送 VRRP 報文(比如因為故障或網(wǎng)絡(luò)問題),BACKUP 節(jié)點在超時后(默認3秒)沒有收到通告,它會認為 MASTER 故障,并且如果它的優(yōu)先級足夠高(或成為最高),它會接管 VIP,成為新的 MASTER。

健康檢查

Keepalived 支持多種健康檢查方法,確保真實服務器(real servers)或服務本身的健康狀況。 腳本檢查:通過 vrrp_script 配置,可以定義一個外部腳本來檢測特定服務(如 HTTP、數(shù)據(jù)庫等)的健康狀態(tài)。腳本定期執(zhí)行,根據(jù)其返回值(0 表示成功,非0 表示失?。┱{(diào)整 VRRP 優(yōu)先級或直接關(guān)閉 Keepalived 進程。 HTTP/HTTPS GET:可以直接配置 Keepalived 使用 HTTP 或 HTTPS GET 請求檢查指定的 URL,通過響應的狀態(tài)碼來判斷服務是否健康。 TCP/UDP 連接檢查:對于基于 TCP 或 UDP 協(xié)議的服務,可以配置 Keepalived 去嘗試建立連接或發(fā)送數(shù)據(jù)包,根據(jù)響應情況判斷服務狀態(tài)。

故障恢復與通知

當故障節(jié)點恢復并重新上線時,如果它之前是 MASTER,但發(fā)現(xiàn)當前已有其他節(jié)點作為 MASTER 在運行,它會自動降級為 BACKUP,等待下一次選舉機會。 通過配置,Keepalived 可以發(fā)送郵件或其他形式的通知給管理員,告知狀態(tài)變化或故障發(fā)生。 2. 如何做到健康檢查

健康檢查是通過在 Keepalived 配置文件中定義 vrrp_instance 和 vrrp_script 完成的。一個基本步驟如下:

定義健康檢查腳本:編寫一個 shell 腳本,該腳本負責檢查特定服務的狀態(tài),例如檢查 Web 服務器的 HTTP 端口是否響應。

配置 vrrp_script

vrrp_script chk_http { script /path/to/check_http.sh # 檢查腳本路徑 interval 5 # 執(zhí)行間隔,單位秒 timeout 3 # 超時時間,單位秒 rise 2 fall 2 # 成功和失敗的閾值}

這里,rise 表示連續(xù)幾次成功即認為服務恢復,fall 表示連續(xù)幾次失敗則認為服務故障。

在 vrrp_instance 中引用腳本

vrrp_instance VI_1 { state MASTER/BACKUP # 節(jié)點狀態(tài) interface eth0 # 監(jiān)聽的網(wǎng)絡(luò)接口 virtual_router_id 51 # VRRP 組ID priority 100 # 優(yōu)先級 advert_int 1 # 通告間隔 track_script { chk_http # 引用健康檢查腳本 } # 其他配置...}

當 track_script 指定的腳本狀態(tài)改變時,會影響 VRRP 優(yōu)先級,從而觸發(fā)主備切換。

綜上所述,通過上述配置,Keepalived 不僅實現(xiàn)了高可用性,還通過健康檢查機制確保了服務的穩(wěn)定性和可靠性。

相關(guān)知識

Linux環(huán)境下HBase集群健康檢查
心理疾病做什么檢查
產(chǎn)檢是做什么檢查
什么是心理檢查
什么是「健康檢查」?
女性健康丨產(chǎn)檢的唐氏篩查到底是查什么?
電生理檢查是什么意思
電生理檢查是什么
體檢中心的健康管理師是做什么的
“天選打工人”如何在工作中收獲健康

網(wǎng)址: 在Linux中,keepalive工作原理是什么及如何做到健康檢查? http://www.u1s5d6.cn/newsview953981.html

推薦資訊