Keepalived
keepalived是一個相似於layer3, 4 & 5交換機制的軟件,也就是咱們平時說的第3層、第4層和第5層交換。Keepalived是自動完成,不需人工干涉。
目錄php
簡介編輯
Keepalived的做用是檢測服務器的狀態,若是有一臺web服務器宕機,或工做出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其餘服務器代替該服務器的工做,當服務器工做正常後Keepalived自動將服務器加入到服務器羣中,這些工做所有自動完成,不須要人工干涉,須要人工作的只是修復故障的服務器。
工做原理編輯
Layer3,4,5工做在IP/TCP協議棧的IP層,TCP層,及應用層,原理分別以下:
Layer3:Keepalived使用Layer3的方式工做式時,Keepalived會按期向服務器羣中的服務器發送一個ICMP的數據包(既咱們平時用的Ping程序),若是發現某臺服務的IP地址沒有激活,Keepalived便報告這臺服務器失效,並將它從服務器羣中剔除,這種狀況的典型例子是某臺服務器被非法關機。Layer3的方式是以服務器的IP地址是否有效做爲服務器工做正常與否的標準。
Layer4:若是您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的狀態來決定服務器工做正常與否。如web server的服務端口通常是80,若是Keepalived檢測到80端口沒有啓動,則Keepalived將把這臺服務器從服務器羣中剔除。
Layer5:Layer5對指定的URL執行HTTP GET。而後使用MD5算法對HTTP GET結果進行求和。若是這個總數與預期值不符,那麼測試是錯誤的,服務器將從服務器池中移除。該模塊對同一服務實施多URL獲取檢查。若是您使用承載多個應用程序服務器的服務器,則此功能頗有用。此功能使您可以檢查應用程序服務器是否正常工做。MD5摘要是使用genhash實用程序(包含在keepalived軟件包中)生成的。
SSL_GET與HTTP_GET相同,但使用SSL鏈接到遠程Web服務器。
MISC_CHECK:此檢查容許用戶定義的腳本做爲運行情況檢查程序運行。結果必須是0或1.該腳本在導演盒上運行,這是測試內部應用程序的理想方式。可使用完整路徑(即/path_to_script/script.sh)調用能夠不帶參數運行的腳本。那些須要參數的須要用雙引號括起來(即「/path_to_script/script.sh arg 1 ... arg n」)
做用編輯
主要用做RealServer的健康狀態檢查以及LoadBalance主機和BackUP主機之間failover的實現。
高可用web架構: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可選 可不選)nginx