Heartbeat理論node
一.基本定義mysql
heartbeat屬於linux-HA 工程,實現了高可用集羣系統。心跳服務和集羣通訊是高可用集羣的兩個關鍵組建,在heartbeat中,由heartbeat實現。linux
Heartbeat 包括兩個最核心的部分,心跳監測和資源接管。心跳監測能夠經過網絡鏈路和串口進行,支持冗餘鏈路,它們之間相互經過報文告訴對方當前的狀態,如果在指定時間段內沒有收到,則認爲對方出現問題,則須要接管對方的資源和服務。sql
HeartBeat 是 Linux-HA 的高可用性集羣軟件,它的主要做用是:apache
1.安裝在 Load Balancer 和 Backup 上,運行於 active/standby 模式。當 Load Balancer 失效時,Backup 自動激活,成爲實際的 Load Balancer。服務器
2.切換到 active 模式時,按順序啓動 Virtual IP、IPVS 和 Ldirectord。網絡
3.切換到 standby 模式時,按順序關閉 Ldirectord、IPVS 和 Virtual IP。架構
ldirectordide
安裝 HeartBeat 過程當中,已經自動安裝了 Ldirectord,它的做用是:ui
監測 Real Server,當 Real Server 失效時,把它從 Load Balancer 列表中刪除,恢復時從新添加。
2、Heartbeat的版本與組件
說明:Heartbeat有三個版本分別爲Heartbeat v1.x,Heartbeat v2.x,Heartbeat v3.x。Heartbeat v1.x和Heartbeat v2.x版本的組成結構十分簡單,全部模塊都集中在heartbeat中,到了v3版本後,整個heartbeat項目進行了拆分,分爲不一樣的項目來分別進行開發。
1.Heartbeat v1.x與v2.x的組件
heartbeat:節點間通訊檢測模塊
ha-logd:集羣事件日誌服務
CCM(Consensus Cluster Membership):集羣成員一致性管理模塊
LRM (Local Resource Manager):本地資源管理模塊
Stonith Daemon: 使出現問題的節點從集羣環境中脫離或重啓
CRM(Cluster resource management):集羣資源管理模塊
Cluster policy engine: 集羣策略引擎
Cluster transition engine:集羣轉移引擎(也叫策略執行引擎)
Heartbeat v1.x與Heartbeat v2.x區別:在Heartbeat v2.x中增長了一個新的集羣資源管理器crm,在Heartbeat v1.x中的集羣資源管理器是haresource,Heartbeat v2.x中爲了兼容v1.x保留了haresource,但同時又新增了一個功能更強大的crm資源管理器。crm管理方式有,一種是基於命令行crmsh,一種是基於圖形界面的hb_gui。
2.Heartbeat v3.x的組件
Heartbeat:將原來的消息通訊層獨立爲heartbeat項目,新的heartbeat只負責維護集羣各節點的信息以及它們以前通訊。
Cluster Glue:至關於一箇中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即爲LRM和STONITH。
Resource Agent:用來控制服務啓停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各類資源啓動、中止、監控等等。
Pacemaker:也就是Cluster Resource Manager(集羣資源管理器,簡稱CRM),用來管理整個HA的控制中心,客戶端經過pacemaker來配置管理監控整個集羣。
Pacemaker 提供了多種用戶管理接口,分別以下:
(1).基於命令的管理方式
crmsh
pcs
(2).基於圖形界面的管理方式
pygui
hawk
LCMC
pcs
Pacemaker內部組成及與各模塊之間關係,以下圖:
Heartbeat v3.x 內部組件之間的關係,以下圖
3、Heartbeat的各版本之間的區別
與v1.x風格相比,Heartbeat v2.x版本以後功能變化以下:
1.保留原有全部功能
2.自動監控資源
默認狀況下每2分鐘檢測資源運行狀況,若是發現資源不在,則嘗試啓動資源, 若是60s後還未啓動成功,則資源切換向另節點。時間能夠修改。
3.能夠對各資源組實現獨立監控
好比apache運行在node1上,mysql運行在node2上,Heartbeat可同時實現兩臺主機的服務監控
4.同時監控系統負載
能夠自動將資源切換到負載低的node上
5.新增crm資源管理器
crm管理器可讓heartbeat基於圖形界面管理,即hb_gui
與v2.x風格相比,Heartbeat 3最主要變化是功能拆分,Heartbeat官方最後一個STABLE release 2.x 版本是2.1.4,Heartbeat 3官方正式發佈的首個版本是3.0.2,Heartbeat 3與Heartbeat2.x的最大差異在於,Heartbeat3.x按模塊把的原來Heartbeat2.x拆分爲多個子項目,可是HA實現原理與Heartbeat2.x基本相同,配置也基本一致。
4、Heartbeat集羣的通常拓撲圖
1.主/從架構拓撲
說明:主/從(active/passive)主/從方式即指的是一臺服務器處於某種業務的激活狀態,另外一臺服務器處於該業務的備用狀態;
2.主/主架構拓撲
說明:主/主(active/active)雙主機方式一種指兩種不一樣業務分別在兩臺服務器上互爲主從狀態,另外一種指兩個主節點同時爲一種業務服務,共享同一數據文件;