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