Keepalived詳解:
提供HA的底層工具。嚴重依賴于腳本實作其擴充功能的HA服務。
早期是為ipvs提供ha功能的
HA -->>Ipvs(規則)提供VIP在叢集之間的流轉作用(這個依賴的基礎是vrrp)
Keepalived有三個子產品:core,check,vrrp
Core子產品:是keepalived子產品的核心子產品,負責出程序的啟動,維護以及全局配置檔案的加載和解析。
Check:負責健康檢查,包括常見的各種檢查方式。
Vrrp:用來實作vrrp協定的
Vrrp:虛拟路由備援協定(能将多個實體裝置虛拟成一個實體裝置,對外的靜态虛拟VIP在各個裝置之間協調運轉,如果宕掉了就通過選舉等來實作一主多備)
通過外部腳本一直檢測服務狀态,一旦服務出現問題就降低此節點的優先級。
工作機制:主節點不停的向從節點通告自己還處于活動狀态。
雙主模型:M的漂移随着節點優先級,服務問題優先級降低,節點漂移,一個節點上有兩個m,出故障的節點重新開機服務,優先級恢複,節點漂移回來。(此過程依賴于外部腳本:1)check不停的檢測服務是否正常,不正常就漂移節點。與此同時還有其他服務檢測腳本,通知。2)在節點漂移之後,服務不允許節點繼續宕下去,通過腳本來重新開機服務)
1,所有realserver都宕掉怎麼處理?
Fall_back:在所有的realserver出現故障的時候,在master上啟動http傳回一個資訊狀态碼,使用者通路時能傳回資訊而不是什麼資訊都沒有。
2,寫檢測腳本,完成維護模式切換。
Vrrp-script chk_name:
Script “指令/路徑”
Interval 2 ##多長時間進行一次這個腳本的檢測
Weight -2 ##master優先級減2
Faill 2 ##檢測兩次失敗就認為是失敗的
Rise 1 隻要檢測到成功1次就立即認為是成功
M-->>B服務重新開機而不是停掉服務
3,如何在vrrp事物發生時(主備節點切換時或者兩個vip節點都出現了故障),發送警告郵件給指定的管理者?(如何告訴管理者vip是如何漂移的?)
Notify_master ##節點從備變成主
Notify_backup ##節點從主變成備
Notify_fault ##兩個節點都出現了故障
Nginx 和keepalived都是輕量級的web反向代理,不需要提供任何共享存儲。
Ipvsadm -L -t
Keepalived提供ipvs的高可用:
Ipvs
Health check
HTTP_GET|SSL_GET
{
Url {
Path ##http/ssl檢查的url可以是多個。
Digest <STRING> ##檢查後的摘要資訊用genhash生成
Status_code 200 ##檢查傳回的狀态碼
}
Connect_port 80##連接配接端口
Bindto <IPADDR>
Connect_timeout 3 #連接配接逾時時間
Nb_get_retry 3 #重連次數
Delay_before_retry 2#連接配接間隔時間
前端VIP端口到後端RIP進行通信用的是mac位址,ARP協定,gratuitous,自問自答
本文轉自 Taxing祥 51CTO部落格,原文連結:http://blog.51cto.com/12118369/1933277