Pacemaker-開源的集群資源管理器


網站

社區網站首頁:https://clusterlabs.org/
Pacemaker文檔:https://clusterlabs.org/pacemaker/doc/
Corosync:https://corosync.github.io/corosync/
紅帽官網:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/ch-overview-haar

Pacemaker

由來

Pacemaker是為 Heartbeat項目而開發的 CRM項目的延續, CRM最早出現於2003年,是專門為 Heartbeat項目而開發的集群資源管理器,而在2005年,隨着 Heartbeat2.0版本的發行才正式推出第一版本的 CRM,即 Pacemaker的前身。在2007年末, CRM正式從 Heartbeat2.1.3版本中獨立,之后於2008年 Pacemaker0.6穩定版本正式發行,隨后的2010年3月 CRM項目被終止,作為 CRM項目的延續, Pacemaker被繼續開發維護,如今 Pacemaker已成為開源集群資源管理器的事實標准而被廣泛使用。此外, Heartbeat到了3.0版本后已經被拆分為幾個子項目了,這其中便包括 Pacemaker、 Heartbeat3.0、 Cluster Glue和 Resource Agent。
Heartbeat:Heartbeat項目最初的消息通信層被獨立為新的 Heartbeat項目,新的 Heartbeat只負責維護集群各節點的信息以及它們之間的心跳通信,通常將 Pacemaker與 Heartbeat或者 Corosync共同組成集群管理軟件, Pacemaker利用 Heartbeat或者Corosync提供的節點及節點之間的心跳信息來判斷節點狀態。
Cluster Glue:Cluster Glue 相當於一個中間層,它用來將Heartbeat和Pacemaker關聯起來,主要包含兩個部分,即本地資源管理器(Local Resource Manager,LRM)和Fencing設備(Shoot The Other Node In The Head,STONITH)
Resource Agent:資源代理(Resource Agent,RA)是用來控制服務的啟停,監控服務狀態的腳本集合,這些腳本會被位於本節點上的LRM調用從而實現各種資源的啟動、停止、監控等操作。
Pacemaker:Pacemaker是整個高可用集群的控制中心,用來管理整個集群的資源狀態行為,客戶端通過 pacemaker來配置、管理、監控整個集群的運行狀態。Pacemaker是一個功能非常強大並支持眾多操作系統的開源集群資源管理器,Pacemaker支持主流的 Linux系統,如 Redhat的 RHEL系列、 Fedora系列、 openSUSE系列、Debian系列、 Ubuntu系列和 centos系列,這些操作系統上都可以運行 Pacemaker並將其作為集群資源管理器。

簡要介紹

Pacemaker是 Linux環境中使用最為廣泛的開源集群資源管理器。

Pacemaker利用集群基礎架構(Corosync或者 Heartbeat)提供的消息和集群成員管理功能,實現節點和資源級別的故障檢測和資源恢復,從而最大程度保證集群服務的高可用。
從邏輯功能而言,pacemaker在集群管理員所定義的資源規則驅動下,負責集群中軟件服務的全生命周期管理,這種管理甚至包括整個軟件系統以及軟件系統彼此之間的交互。
Pacemaker在實際應用中可以管理任何規模的集群,由於其具備強大的資源依賴模型,這使得集群管理員能夠精確描述和表達集群資源之間的關系(包括資源的順序和位置等關系)。同時,對於任何形式的軟件資源,通過為其自定義資源啟動與管理腳本(資源代理),幾乎都能作為資源對象而被 Pacemaker管理。
Pacemaker僅是資源管理器,並不提供集群心跳信息,由於任何高可用集群都必須具備心跳監測機制,因而很多初學者總會誤以為 Pacemaker本身具有心跳檢測功能,而事實上 Pacemaker的心跳機制主要基於 Corosync或 Heartbeat來實現
pacemaker只是作為HA的資源管理器,所以不要想當然理解它能夠直接管控資源,如果你的資源沒有做腳本配置那么對於pacemaker來說它就是不可管理的。

pacemaker 支持的集群模式

Pacemaker 支持多種類型的集群,包括 Active/Active, Active/Passive, N+1, N+M, N-to-1 and N-to-N 等。

Active/Active
在這種模式下,故障節點上的訪問請求或自動轉到另外一個正常運行節點上,或通過負載均衡器在剩余的正常運行的節點上進行負載均衡。這種模式下集群中的節點通常部署了相同的軟件並具有相同的參數配置,同時各服務在這些節點上並行運行。

Active/Passive模式
在這種模式下,每個節點上都部署有相同的服務實例,但是正常情況下只有一個節點上的服務實例處於激活狀態,只有當前活動節點發生故障后,另外的處於 standby狀態的節點上的服務才會被激活,這種模式通常意味着需要部署額外的且正常情況下不承載負載的硬件。

N+1模式 所謂的N+1就是多准備一個額外的備機節點,當集群中某一節點故障后該備機節點會被激活從而接管故障節點的服務。在不同節點安裝和配置有不同軟件的集群中,即集群中運行有多個服務的情況下,該備機節點應該具備接管任何故障服務的能力,而如果整個集群只運行同一個服務,則N+1模式便退變為 Active/Passive模式。

N+M模式 在單個集群運行多種服務的情況下,N+1模式下僅有的一個故障接管節點可能無法提供充分的冗余,因此,集群需要提供 M(M>l)個備機節點以保證集群在多個服務同時發生故障的情況下仍然具備高可用性, M的具體數目需要根據集群高可用性的要求和成本預算來權衡。

N-to-l模式 在 N-to-l模式中,允許接管服務的備機節點臨時成為活動節點(此時集群已經沒有備機節點),但是,當故障主節點恢復並重新加人到集群后,備機節點上的服務會轉移到主節點上運行,同時該備機節點恢復 standby狀態以保證集群的高可用。

N-to-N模式 N-to-N是 Active/Active模式和N+M模式的結合, N-to-N集群將故障節點的服務和訪問請求分散到集群其余的正常節點中,在N-to-N集群中並不需要有Standby節點的存在、但是需要所有Active的節點均有額外的剩余可用資源。

主要特性

1、監測並恢復節點和服務級別的故障。
2、存儲無關,並不需要共享存儲。
3、資源無關,任何能用腳本控制的資源都可以作為集群服務。
4、支持節點 STONITH功能以保證集群數據的完整性和防止集群腦裂。
5、支持大型或者小型集群。
6、支持 Quorum機制和資源驅動類型的集群。
7、支持幾乎是任何類型的冗余配置。
8、自動同步各個節點的配置文件。
9、可以設定集群范圍內的 Ordering、 Colocation and Anti-colocation等約束。
10、高級服務類型支持,例如:
Clone功能:即那些要在多個節點運行的服務可以通過Clone功能實現,Clone功能將會在多個節點上啟動相同的服務;
Multi-state功能:
即那些需要運行在多狀態下的服務可以通過 Multi--state實現,
在高可用集群的服務中,有很多服務會運行在不同的高可用模式下,如:Active/Active模式或者 Active/passive模式等,
並且這些服務可能會在 Active 與standby(Passive)之間切換。
11、具有統一的、腳本化的集群管理工具。

結構

HA集群堆棧
在較高的層次上,可以將集群視為具有以下部分(通常一起稱為集群堆棧):

資源:這就是集群得以存在的原因-需要保持高可用性的服務。
資源代理:這些是在給定一組資源參數的情況下啟動,停止和監視資源的腳本或操作系統組件。這些提供了Pacemaker和托管服務之間的統一接口。
fence代理:此組件提供一些管理控制設備fence的腳本。
群集成員資格層:此組件提供有關群集的可靠消息傳遞,成員資格和仲裁信息。當前,Pacemaker支持Corosync作為此層。
集群資源管理器:Pacemaker提供處理和響應集群中發生的事件的大腦。這些事件可能包括節點加入或離開群集。由故障,維護或計划的活動引起的資源事件;和其他行政行為。為了獲得所需的可用性,Pacemaker可以啟動和停止資源以及圍柵節點。
群集工具:這些為用戶提供了與群集進行交互的界面。提供了各種命令行和圖形(GUI)界面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM