keepalived的工做原理

keepalived的工做原理

首先簡單介紹一下vrrp協議web

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的核心,複雜主進程的啓動和維護,全局配置文件的加載解析等ip

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

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

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將把服務器從羣中踢除。

相關文章
相關標籤/搜索