概念:此軟件目前是IT企業(yè)中是用最廣泛的高可用軟件,主要是用于實現(xiàn)至少兩臺服務器之間的服務高可用,可以適應:
Apache,Nginx,mysql,Redis,Tomcat,PHP,Zabbix,NFS,DHCP,NTP,Vsftp,Samba,LVS等
Keepalived工作在3(網(wǎng)絡層)4(傳輸層)7(應用層)的軟件,主要功能有兩種:
健康監(jiān)測功能:keepalievd可以代替shell腳本去檢測nginx,Mysql,tomcat,端口,進程,返回值的運行情況,將異常的服務或者服務器移除健康的列表
可以ping IP 地址,可以檢測ip port ,可以訪問應用服務,狀態(tài),關鍵詞等
MYSQL主主 NFS文共享集群高可用架構(gòu) />
Keepalived是模塊化設計,不同模塊負責不同的功能,keepalived常用模塊包括:
? Core,是keepalived的核心,負責主進程的啟動和維護,全局配置文件的加載解析等 。
? Check,負責healthchecker(健康檢查),包括了各種健康檢查方式,以及對應的配置的解析包括LVS的配置解析;
? Vrrp,VRRPD子進程,VRRPD子進程就是來實現(xiàn)VRRP協(xié)議;
? Libipfwc,iptables(ipchains)庫,配置LVS會用到;
? Libipvs,虛擬服務集群,配置LVS會使用。
Keepalived的作用是檢測web服務器的狀態(tài),如果有一臺web服務器、Mysql服務器宕機,或工作出現(xiàn)故障,Keepalived將檢測到后,會將有故障的web服務器或者Mysql服務器從系統(tǒng)中剔除,當服務器工作正常后Keepalived自動將web、Mysql服務器加入到服務器群中。
這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的WEB和Mysql服務器。Layer3,4&7工作在IP/TCP協(xié)議棧的IP層、傳輸層及應用層,實現(xiàn)原理分別如下:
? Layer3:Keepalived使用Layer3的方式工作式時,Keepalived會定期向服務器群中的服務器發(fā)送一個ICMP的數(shù)據(jù)包(如果發(fā)現(xiàn)某臺服務的IP地址無法ping通,Keepalived便報告這臺服務器失效,并將它從服務器集群中剔除。Layer3的方式是以服務器的IP地址是否有效作為服務器工作正常與否的標準。)
? Layer4: Layer4主要以TCP端口的狀態(tài)來決定服務器工作正常與否。如WEB server的服務端口一般是80,如果Keepalived檢測到80端口沒有啟動,則Keepalived將把這臺服務器從服務器群中剔除。
? Layer7:Layer7工作在應用層,Keepalived將根據(jù)用戶的設定檢查服務器程序的運行是否正常,如果與用戶的設定不相符,則Keepalived將把服務器從服務器群中剔除。
生產(chǎn)環(huán)境使用Keepalived正常運行,共啟動3個進程,一個是父進程,負責監(jiān)控其子進程,一個是VRRP子進程,另外一個是Checkers子進程。
兩個子進程都被系統(tǒng)Watchlog看管,兩個子進程各自負責自己的事,Healthcheck子進程檢查各自服務器的健康狀況,如果Healthcheck進程檢查到Master上服務不可用了,就會通知本機上的VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉(zhuǎn)換為BACKUP狀態(tài)。
4、Keepalived VRRP原理剖析一
Virtual Router Redundancy Protocol(VRRP)技術,虛擬路由器冗余協(xié)議。VRRP由IETF提出,目的是為了解決局域網(wǎng)中配置默認網(wǎng)關的單點失效問題,1998年已推出正式的RFC2338協(xié)議標準。
VRRP廣泛應用在邊緣網(wǎng)絡中,它的設計目標是支持特定情況下IP數(shù)據(jù)流量失敗轉(zhuǎn)移不會引起混亂,允許主機使用單路由器,以及及時在實際第一跳路由器使用失敗的情形下仍能夠維護路由器間的連通性。
在現(xiàn)實的網(wǎng)絡環(huán)境中,兩臺需要通信的主機大多數(shù)情況下并沒有直接的物理連接。對于這樣的情況,它們之間路由怎樣選擇?主機如何選定到達目的主機的下一跳路由,這個問題通常的解決方法有二種:
? 在主機上使用動態(tài)路由協(xié)議RIP、OSPF;
? 在主機上配置靜態(tài)路由(默認網(wǎng)關)。
在主機上配置路態(tài)路由是非常不切實際的,因為管理、維護成本以及是否支持等諸多問題。配置靜態(tài)路由就變得十分流行,但路由器(或者說默認網(wǎng)關default gateway)卻經(jīng)常成為單點,VRRP的目的就是為了解決靜態(tài)路由單點故障問題。VRRP通過一競選(election)協(xié)議來動態(tài)的將路由任務交給LAN中虛擬路由器中的某臺VRRP路由器。
5、Keepalived VRRP原理剖析二
通過VRRP技術可以將兩臺物理(路由器)主機當成路由器,兩臺物理機主機組成一個虛擬路由集群,Master高的主機產(chǎn)生VIP,該VIP負責轉(zhuǎn)發(fā)用戶發(fā)起的IP包或者負責處理用戶的請求,Nginx Keepalived組合,用戶的請求直接訪問keepalived VIP地址,然后訪問Master相應服務和端口。
在VRRP虛擬路由器集群中,由多臺物理的路由器組成,但是這多臺的物理路由器并不能同時工作,而是由一臺稱為MASTER路由器負責路由工作,其它的都是BACKUP,MASTER并非一成不變,VRRP會讓每個VRRP路由器參與競選,最終獲勝的就是MASTER。
MASTER擁有一些特權(quán),例如擁有虛擬路由器的IP地址或者成為VIP,擁有特權(quán)的MASTER要負責轉(zhuǎn)發(fā)發(fā)送給網(wǎng)關地址的包和響應ARP請求。
VRRP通過競選協(xié)議來實現(xiàn)虛擬路由器的功能,所有的協(xié)議報文都是通過IP組播(multicast)包(組播地址224.0.0.18)形式發(fā)送的。虛擬路由器由VRID(范圍0-255)和一組IP地址組成,對外表現(xiàn)為一個周知的MAC地址。所以在一組虛擬路由器集群中,不管誰是MASTER,對外都是相同的MAC和VIP??蛻舳酥鳈C并不需要因為MASTER的改變而修改自己的路由配置。
作為MASTER的VRRP路由器會一直發(fā)送VRRP組播包(VRRP Advertisement message),BACKUP不會搶占MASTER,除非它的優(yōu)先級(Priority)更高。當MASTER不可用時(BACKUP收不到組播包時), 多臺BACKUP中優(yōu)先級最高的這臺會搶占為MASTER。這種搶占是非??焖俚?,以保證服務的連續(xù)性。由于安全性考慮VRRP包使用了加密協(xié)議進行,基于VRRP技術,可以實現(xiàn)IP地址漂移,是一種容錯協(xié)議,廣泛應用于企業(yè)生產(chǎn)環(huán)境中。
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn