歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Heartbeat 3.x的概念組成及工作原理

Heartbeat 3.x的概念組成及工作原理

日期:2017/3/3 16:22:54   编辑:關於Linux

一、Heartbeat的概念組成以及工作原理

1、 heartbeat的概念

Heartbeat是Linux-HA項目中的一個組件,也是目前開源HA項目中最成功的一個例子, Linux-HA的全稱是High-Availability Linux,這個開源項目的目標是:通過社區開發者的共同努力,提供一個增強linux可靠性(reliability)、可用性(availability)和可服務性(serviceability)(RAS)的群集解決方案.

Heartbeat提供了所有 HA 軟件所需要的基本功能,比如心跳檢測和資源接管、監測群集中的系統服務、在群集中的節點間轉移共享 IP 地址的所有者等.

Linux-HA的官方網站: http://www.linux-ha.org

http://hg.linux-ha.org

2、 HA集群相關術語

(1) 節點(node)

運行heartbeat進程的一個獨立主機,稱為節點,節點是HA的核心組成部分,每個節點上運行著操作系統和heartbeat軟件服務,在heartbeat集群中,節點有主次之分,分別稱為主節點和備用/備份節點,每個節點擁有唯一的主機名,並且擁有屬於自己的一組資源,主節點上一般運行著一個或多個應用服務。而備用節點一般處於監控狀態。

(2)資源(resource)

資源是一個節點可以控制的實體,並且當節點發生故障時,這些資源能夠被其它節點接管,heartbeat中,可以當做資源的實體有:

磁盤分區、文件系統、IP地址、應用程序服務、NFS文件系統

(3)事件(event)

也就是集群中可能發生的事情,例如節點系統故障、網絡連通故障、網卡故障、應用程序故障等。這些事件都會導致節點的資源發生轉移,HA的測試也是基於這些事件來進行的。

(4)動作(action)

事件發生時HA的響應方式,動作是由shell腳步控制的,例如,當某個節點發生故障後,備份節點將通過事先設定好的執行腳本進行服務的關閉或啟動。進而接管故障節點的資源。

3、 Heartbeat的組成

(1) Heartbeat的結構

Heartbeat1.x和2.0.x版本的結構十分簡單,各個模塊都集中在heartbeat中,到了3.0版本後,整個heartbeat項目進行了拆分,分為不同的項目來分別進行開發。

Heartbeat2.0.x之前的版本具有的模塊:

heartbeat: 節點間通信檢測模塊

ha-logd: 集群事件日志服務

CCM(Consensus Cluster Membership):集群成員一致性管理模塊

LRM (Local Resource Manager):本地資源管理模塊

Stonith Daemon: 使出現問題的節點從集群環境中脫離

CRM(Cluster resource management):集群資源管理模塊

Cluster policy engine: 集群策略引擎

Cluster transition engine:集群轉移引擎

Heartbeat3.0拆分之後的組成部分:

Heartbeat:將原來的消息通信層獨立為heartbeat項目,新的heartbeat只負責維護集群各節點的信息以及它們之前通信;

Cluster Glue:相當於一個中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即為LRM和STONITH。

Resource Agent:用來控制服務啟停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各種資源啟動、停止、監控等等。

Pacemaker:也就是Cluster Resource Manager (簡稱CRM),用來管理整個HA的控制中心,客戶端通過pacemaker來配置管理監控整個集群。

Pacemaker 提供了多種用戶管理接口,分別如下:

1)crm shell:基於字符的管理方式;

2)一個使用Ajax Web配置方式的web konsole窗口;

3)hb_gui ,即heartbeat的gui圖形配置工具,這也是原來2.1.x的默認GUI配置工具;

4)DRBD-MC,一個基於Java的配置管理工具。

(2) Pacemaker內部組成及與各模塊之間關系

(3) Heartbeat3.x內部組成及之間關系

(4) Heartbeat各個版本之間的異同

與1.x風格相比,Heartbeat2.1.x版本之後功能變化如下:

1)保留原有所有功能

如,網絡,heartbeat ,機器down時均可切換資源。

2)自動監控資源

默認情況下每2分鐘檢測資源運行情況,如果發現資源不在,則嘗試啟動資源, 如果60s後還未啟動成功,則資源切換向另節點。時間可以修改。

3)可以對各資源組實現獨立監控.

比如apache運行在node1上,tomcat運行在node2上,Heartbeat可同時實現兩台主機的服務監控。

4)同時監控系統負載

可以自動將資源切換到負載低的node上。

Heartbeat官方最後一個STABLE release 2.x 版本是2.1.4,Heartbeat 3官方正式發布的首個版本是3.0.2,Heartbeat 3與Heartbeat2.x的最大差別在於,Heartbeat3.x按模塊把的原來Heartbeat2.x拆分為多個子項目,但是HA實現原理與Heartbeat2.x基本相同。配置也基本一致。

(5) Heartbeat集群的一般拓撲圖

未完待續!

本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/74522

Copyright © Linux教程網 All Rights Reserved