Keepalived介紹
Keepalived是Linux下一個輕量級的高可用解決方案,它與Hearbeat實作的功能類似,都可以實作服務或者網絡的高可用,但是又有差别,Hearbeat是一個專業的,功能完善的高可用軟體,它提供HA軟體所需的基本功能,如心跳檢測和資源接管,檢測叢集中的服務系統,在叢集節點之間轉移共享IP位址的所有者,功能強大,部署比較麻煩;Keepalived主要通過虛拟路由備援來實作高可用功能,雖然功能沒有Hearbeat強大,但是部署比較簡單,且使用非常簡單,隻需一個配置檔案即可完成。
Keepalived起初是為了LVS設計的,專門用來監控叢集系統中各個服務節點的狀态。它根據TCP/IP參考模型的第三,第四,和第五層交換機制檢測每個服務節點的狀态,如果某個服務出現異常,或者工作出現故障,Keepalived将檢測到,并将出現故障的服務節點從叢集系統重剔除,而在故障節點恢複正常後,有可以自動将此服務節點重新加入服務叢集中,這些工作全部自動完成,不需要人工幹涉,隻需人工完成隻是修複出現故障的服務節點。後來Keepalived加入VRRP功能,解決單點故障問題,實作網絡不間斷穩定運作。
VRRP協定和工作原理
VRRP(虛拟路由備援協定)是一種主備模式的協定,可以在網絡發生故障時透明的進行裝置切換而不影響主機間的資料通信。
VRRP可以将兩台或者多台實體路由器裝置虛拟成一台虛拟路由器,這個虛拟路由器通過虛拟IP向外提供服務,而在虛拟路由器的内部是對個路由器協同工作,同一時間隻有一個實體路由器對外提供服務,這台路由器别稱為主路由器。主路由器有算法産生,它對外提供虛拟IP,ARP請求,ICMP,資料轉發等功能。而備份路由器不對外提供網絡功能,僅僅接受來自MASTER的VRRP狀态通告資訊。
VRRP的工作過程如下:
1. 路由器開啟VRRP功能後,會根據優先級确定自己在備份組中的角色。優先級高的路由器成為主用路由器,優先級低的成為備用路由器。主用路由器定期發送VRRP通告封包,通知備份組内的其他路由器自己工作正常;備用路由器則啟動定時器等待通告封包的到來。
2. VRRP在不同的主用搶占方式下,主用角色的替換方式不同:
l在搶占方式下,當主用路由器收到VRRP通告封包後,會将自己的優先級與通告封包中的優先級進行比較。如果大于通告封包中的優先級,則成為主用路由器;否則将保持備用狀态。
l在非搶占方式下,隻要主用路由器沒有出現故障,備份組中的路由器始終保持主用或備用狀态,備份組中的路由器即使随後被配置了更高的優先級也不會成為主用路由器。
3. 如果備用路由器的定時器逾時後仍未收到主用路由器發送來的VRRP通告封包,則認為主用路由器已經無法正常工作,此時備用路由器會認為自己是主用路由器,并對外發送VRRP通告封包。備份組内的路由器根據優先級選舉出主用路由器,承擔封包的轉發功能。
Keepalived工作原理
Keepalived工作在TCP/IP協定的第三,第四,第五層上,即網絡層,傳輸層和應用層。
(1).網絡層:運作IP,ICMP,ARP,RARP協定,其中常采用ICMP協定向伺服器叢集中的每個節點發送一個ICMP的資料包,如果某個節點沒有傳回響應資料包,則認為此節點發生故障。
(2).傳輸層:Keepalived利用TCP協定在端口連接配接和掃描技術來判斷叢集節點是否正常。
(3).應用層:可以運作FTP,TELNET,SMTP等協定。
Keepalived的體系結構
從上圖看出,Keepalived分為使用者空間和核心空間。
安裝keeplived
yum源安裝
[root@Clone4 ~]# yum install keepalived
編譯安裝
Keepalived配置檔案詳解
MATSER和BACKUP的權值計算
實作HTTPD的高可用
部署環境說明:
Clone1 192.168.80.129 BUCKUP HTTPD
Clone4 192.168.80.132 MASTER HTTPD
VIP:192.168.80.150
Keepalived的配置檔案
啟動
(1).先啟動BACKUP伺服器
(2).在啟動MATSER伺服器
Hearbeat實作高可用:(http://lnsane784.blog.51cto.com/1226518/1952393)
Corosync+pacemaker實作高可用:(http://lnsane784.blog.51cto.com/1226518/1952687)
HTTPD伺服器搭建:(http://www.crazyrui.pw:8088/index.php/2017/07/14/linux_server_httpd/)
Tomcat搭建:(http://www.crazyrui.pw:8088/index.php/2017/06/14/linux_tomcat/)
本文轉自lnsaneLlinux部落格51CTO部落格,原文連結http://blog.51cto.com/lnsane784/1953997如需轉載請自行聯系原作者
Insane_linux