keepalived 功能 、原理、腦裂
簡介:
keepalived設計之初是專為LVS負載均衡軟體設計的,用來管理和監控LVS集群系統中的各個服務節點狀態,,後來加入實現高可用的VRRP功能。通過vrrp協議實現高可用功能的
常用的功能
管理LVS負載均衡軟體
對LVS叢集節點健康檢查功能
系統網路服務的高可用功能
原理:keepalived是通過vrrp來實現伺服器之間的故障切換轉移的,keepalived在正常服務時,主master節點會不斷的向備backup節點發送心跳資訊(多播的形式),告訴備節點自己還活著,當主節點發生故障時,就無法向備節點發送心跳資訊,當備節點無法接收到主節點的心跳資訊時,呼叫自身的接管程式,接管主節點的ip服務資源,當主節點恢復時,備節點會釋放主節點故障時自身接管的ip服務資源,回覆到備用角色。
vrrp:虛擬路由冗餘協議;主要是解決靜態路由的單點故障問題,其是通過競選機制來確定將路由的任務交給某臺vrrp路由器的。
vrrp是通過ip多播的方式實現高可用之間的通訊;
vrrp通過加密協議對資料進行加密,keepalived使用的是明文方式配置認證型別和密碼
vrrp在正常工作時,是主節點發包,備節點接包,當備節點沒有接受到包時,通過競選,啟動接管機制,接管主節點的資源,一般而言,備節點可以有多個,在使用keepalived時,一般是一主一備。
腦裂:
何為腦裂:
由於某種原因,導致兩臺高可用伺服器在指定是時間內,無法檢測到對方的心跳資訊,各自取得資源及服務特權,此時兩臺高可用伺服器都還正常執行,導致ip或者服務在兩端同時存在而發生衝突。
原因
高可用伺服器之間心跳線鏈路故障
心跳線壞了
網絡卡及相關驅動壞了
心跳線間連線裝置故障
開啟iptables,阻擋了心跳資訊的傳輸
心跳網絡卡地址等資訊不正確,導致傳送心跳資訊失敗
預防:
同時使用序列電纜和乙太網電纜連線,同時使用兩條心跳線
做好監控報警
當有腦裂時,強行關閉一個心跳節點
有關網路高可用的配置(單例項主備):
採用yum安裝,配置檔案為/etc/keepalived/keepalived.conf
global_defs { global_defs { notification_email { notification_email {
router_id LVS_DEVEL router_id LVS_DEVEL1
state MASTER state BACKUP
priority 100 priority 90
#vrrp_strict‘’
systemctl start keepalived
注意: c d e注意區別,f改行要註釋掉,原配置檔案中沒有註釋,不註釋可能存在問題。這樣就可以實現高可用了。