HA高可用集羣的詳解

一、 HA集羣的架構圖:

 

對每個部分的理解:

1) 信息和資源架構層

在基礎架構上實現心跳信息探測。雙方節點可以隨時探測到對方的心跳信息,以實現對對方主機工作狀態的探測。三類控制信息:心跳(Heartbeats),集羣事務信息(Cluster Transition Messages),重傳信息(Retransmission Request)。 配置文件:/etc/ha.d/ha.cf。各節點間域共享密鑰,實現節點間互相通信的認證。加密方式:MD5,HMAC-SHA1 。常用實現軟件:HeartBeat、keepalived、ultramonkey、openais/corosync。紅帽官方提供的集羣套件RHCS底層使用的通信機制就是openais/corosync。

2) 資源分配子層

在資源分配上定義資源種類,界定資源歸屬,每個服務需要哪些資源及這些資源之間的前後次序。

集羣資源管理器(CRM,常用軟件pacemaker),管理雙方向外提供服務所需用到的資源,包括IP地址、Web服務、共享存儲等等。而這些資源需要依靠集羣信息庫CIB(XML文件)來定義,同時還必須保證一旦某個節點上的XML文件更新,即刻通知其他節點上的XML也要及時更新。

策略引擎(PE Policy Engine):定義法定人數以及根據法定人數所做出的動作等等。

Transition Engine(TE):所作出的決策有TE執行。PE和TE只工作在DC上

本地資源管理器(LRM Local Resource Manager):監控本地某個資源的工作狀況。

3) 資源層

本地資源代理(Resource Agent),腳本文件,一旦集羣資源管理器發現某個資源工作異常,立即通知本地資源代理重啓服務。常用方法:

(1)Heartbeat v1;

(2)使用腳本LSB scripts (Linux Standards Base );

(3)OCF Open Cluster Format 開放集羣框架,也是一個腳本但比LSB功能更強大(最佳方式)。

(4)第三方腳本

 

二、高可用集羣常用架構模型

(1)一主一從架構;

(2)互爲主從架構:兩臺主機分別提供兩種不同的服務;

(3)多主機架構:N臺主機組成一個集羣,分別提供不同的服務,一臺服務器空閒做備節點。或者全部處於工作狀態,一臺服務器出故障,立刻將服務轉移到其他主機上。各節點之間需要以多播的形式將自己的健康情況發送給其他主機。

故障轉移域,如果一臺主機發生故障,會將主機上的服務轉移到域內的另一臺主機上。

法定人數(Quorum) 集羣超過這個值會正常工作,低於這個值會停止工作,同時也避免出現資源爭用的情況。

腦裂和仲裁:在某種情況下,由於底層通知錯誤,或者傳遞信息的介質出現故障,會出現資源爭用的情況,稱之爲腦裂。此時,每個部分都想取得對集羣資源的控制權,以保證集羣的高可用,這將破壞集羣資源的完整性和一致性,導致整個集羣癱瘓,硬件被破壞等嚴重後果。爲防止腦裂的放生,將由仲裁協議即法定代表人數來決定哪個部分取得對集羣資源的控制權。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章