keepalived的工作原理


keepalived的工作原理

首先簡單介紹一下vrrp協議

vrrp協議

用來實現路由器冗余的協議:
Vrrp協議是為了消除在靜態缺省路由環境下路由器單點故障引起的網絡失效而設計的主備模式的協議,使得發生故障而進行設計設備功能切換時可以不影響內外數據通信,不需要再修改內部網絡的網絡參數。Vrrp協議需要具有IP備份,優先路由選擇,減少不必要的路由器通信等功能,

Vrrp協議將兩台或多台路由器設備虛擬成一個設備,對外提供虛擬路由器IP(一個或多個)。而在路由器組內部,如果實際擁有這個對外IP的路由器如果工作正常的話,就是master,或者是通過算法選舉產生的,MASTER實現針對虛擬路由器IP的各種網絡功能,如ARP請求,ICMP,以及數據的轉發等,其他設備不具有該IP,狀態是BACKUP。除了接收MASTER的VRRP狀態通告信息外,不執行對外的網絡功能,當主級失效時,BACKUP將接管原先MASTER的網絡功能。

配置VRRP協議時需要配置每個路由器的虛擬路由ID(VRID)和優先權值,使用VRID將路由器進行分組,具有相同VRID值的路由器為同一個組,VRID是一個0-255的整整數,;同一個組中的路由器通過使用優先權值來選舉MASTER。,優先權大者為MASTER,優先權也是一個0-255的正整數。

keepalived的簡介

Keepalived是基於vrrp協議實現的。

Keepalived是模塊化的設計,不同模塊負責實現不同的功能,keepalived的組件

Core, check,vrrp,libipfwc,libipvs-2.4 libipvs-2.6

Core:是keepalived的核心,復雜主進程的啟動和維護,全局配置文件的加載解析等

Check:負責healthcheck(健康檢查),包括了各種檢查方式,以及對應的配置解析包括LVS的配置解析,

Vrrp:vrrpd子進程,vrrpd子進程就是用來實現vrrp協議的,
Libipfwc:iptables庫,配置lvs會用到

keepalived正常啟動的時候,共啟動3個進程,一個是父進程,負責監控其子進程,一個是vrrp子進程,另外一個是checkers子進程
兩個子進程都被系統watchlog看管,兩個子進程各自負責復雜自己的事。Healthcheck子進程檢查各自服務器的健康狀況,,例如http,lvs。如果healthchecks進程檢查到master上服務不可用了,就會通知本機上的vrrp子進程,讓他刪除通告,並且去掉虛擬IP,轉換為BACKUP狀態。

keepalived的工作原理

Layer3,4,&5工作早IP/TCP協議棧的IP層,TCP層,及應用層
原理:
Layer3:keepalived使用layer3的方式工作時,keepalived會定期向服務器群中發送一個ICMP的數據包(即我們平時用的ping程序),如果發現某台服務器的IP地址沒有激活,keepalived便會報告這台服務器是小,並將他從服務器群中剔除。Layer3的方式是以服務器的IP第孩子是否有效作為服務器工作正常與否的標准。

Layer4:主要以TCP端口的狀態來決定服務器工作正常與否。如web sercer的服務端口一般是80.如果keepalived檢測到80端口沒有啟動,則keepalived將這台服務器從服務群中刪除。

Layer5:layer5就是工作載具體的應用層,比layer3,4要復雜一點,載網絡上占用的寬帶也要打一些。Keepalived將根據用戶的設定檢查服務器的運行是否正常。如果設定不相符,則keepalived將把服務器從群中踢除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM