在高可用軟件領域,我們可能常會聽到Heartbeat、Corosync、Pacemaker、keepalived等軟件。常見有人問Heartbeat、Corosync、Keepalived這三個集群組件我們到底選哪個好呢?
首先我想說明的是,Heartbeat、Corosync是屬于同一類型,Keepalived與Heartbeat、Corosync,根本不是同一類型的。Keepalived使用的vrrp協議方式,虛拟路由冗餘協議 (Virtual Router Redundancy Protocol,簡稱VRRP);Heartbeat或Corosync是基于主機或網絡服務的高可用方式;
簡單的說就是,Keepalived的目的是模拟路由器的高可用,Heartbeat或Corosync的目的是實現Service的高可用。所以一般Keepalived是實現前端高可用,常用的前端高可用的組合有,就是我們常見的LVS Keepalived、Nginx Keepalived、HAproxy Keepalived。而Heartbeat或Corosync是實現服務的高可用,常見的組合有Heartbeat v3(Corosync) Pacemaker NFS Httpd 實現Web服務器的高可用、Heartbeat v3(Corosync) Pacemaker NFS MySQL 實現MySQL服務器的高可用。
總結一下,Keepalived中實現輕量級的高可用,一般用于前端高可用,且不需要共享存儲,一般常用于兩個節點的高可用。而Heartbeat(或Corosync)一般用于服務的高可用,且需要共享存儲,一般用于多節點的高可用。
下面主要介紹下keepalived。
Keepalived詳解Keepalived是什麼?
Keepalived是集群管理中保證集群高可用的一個服務軟件,用來防止單點故障。Keepalived起初就是為了LVS調度節點高可用而設計的,專門用來監控集群系統中各個服務節點的狀态。如果某個服務節點出現異常,或工作出現故障,Keepalived将檢測到,并将出現故障的服務節點從集群系統中剔除,也就是替LVS做了對後端realserver的健康狀态監測。而當故障節點恢複正常後,Keepalived又可以自動将此服務節點重新加入到服務器集群中。這些工作全部自動完成,不需要人工幹涉,需要人工完成的隻是修複出現故障的服務節點。
keepalived也是模塊化設計不同模塊負責不同的功能,下面是keepalived的相關模塊:core、check、vrrp、libipfwc、libipvs-2.4、libipvs-2.6。
core:是keepalived的核心,負責主進程的啟動和維護及全局配置文件的加載解析等。
check:負責healthchecker(健康檢查),包括了各種健康檢查方式以及對應的配置的解析(包括LVS的配置解析)。
vrrp:VRRPD子進程就是來實現VRRP協議的。
libipfwc:liipfwc庫是配置LVS時會用到的。
libipvs*:配置LVS時會用到。
PS:注意keepalived和LVS完全是兩碼事隻不過他們各負其責相互配合而已。
後面會分享更多DEVOPS和DBA方面的内容,感興趣的朋友可以關注下!!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!