OpenStack高可用集群(下冊):部署與運維》—11 OpenStack高可用集群基礎服務部署">《OpenStack高可用集群(下冊):部署與運維》—11 OpenStack高可用集群基礎服務部署
1044
2025-04-08
第3章
集群資源管理系統
云計算與集群系統密不可分,作為分布式計算和集群計算的集大成者,云計算的基礎設施必須通過集群進行管理控制,而作為擁有大量資源與節點的集群,必須具備一個強大的集群資源管理器(Cluster System Manager,CSM)來調度和管理集群資源。對于任何集群而言,集群資源管理器是整個集群能夠正常運轉的大腦和靈魂,任何集群資源管理器的缺失和故障都會導致集群陷入癱瘓混亂的狀態。OpenStack的眾多組件服務既可以集成到單個節點上運行,也可以在集群中分布式運行。但是,要實現承載業務系統的高可用集群,OpenStack服務必須部署到高可用集群上,并在實現OpenStack服務無單點故障的同時,實現故障的自動轉移和自我愈合,而這些功能是OpenStack的多數服務本身所不具備的。因此,在生產環境中部署OpenStack高可用集群時,必須引入第三方集群資源管理軟件,專門負責OpenStack集群資源的高可用監控調度與管理。
集群資源管理軟件種類眾多,并有商業軟件與開源軟件之分。在傳統業務系統的高可用架構中,商業集群管理軟件的使用非常普遍,如IBM的集群系統管理器、PowerHA SystemMirror(也稱為HACMP)以及針對DB2的PureScale數據庫集群軟件;再如Orcale的Solaris Cluster系列集群管理軟件,以及Oracle數據庫的ASM和RAC集群管理軟件等商業高可用集群軟件都在市場上占有很大的比例。此外,隨著開源社區的發展和開源生態系統的擴大,很多商業集群軟件也正在朝著開源的方向發展,如IBM開源的xCAT集群軟件。而在Linux開源領域,Pacemaker/Corosync、HAProxy/Keepalived等組合集群資源管理軟件也有著極為廣泛的應用。
在第2章中,我們曾列舉了包括Redhat和Mirantis等OpenStack領導廠商的OpenStack高可用集群部署方案,各個廠商的OpenStack高可用部署方案表明,Pacemaker/Corosync和HAProxy/Keepalived已經成為OpenStack高可用集群部署的集群資源管理器和負載均衡器的標準,而Pacemaker作為Linux集群資源高可用的管理軟件,已被OpenStack官方社區指定為OpenStack集群高可用部署的集群資源管理器。本章將以Pacemaker為基礎,重點介紹OpenStack高可用集群部署中的集群管理系統,本章內容也是部署OpenStack集群的基礎,其資源管理部分的內容將會貫穿整個OpenStack高可用集群的部署與運維過程中。
3.1 Pacemaker概述
Pacemaker是Linux環境中使用最為廣泛的開源集群資源管理器,Pacemaker利用集群基礎架構(Corosync或者Heartbeat)提供的消息和集群成員管理功能,實現節點和資源級別的故障檢測和資源恢復,從而最大程度保證集群服務的高可用。從邏輯功能而言,Pacemaker在集群管理員所定義的資源規則驅動下,負責集群中軟件服務的全生命周期管理,這種管理甚至包括整個軟件系統以及軟件系統彼此之間的交互。Pacemaker在實際應用中可以管理任何規模的集群,由于其具備強大的資源依賴模型,這使得集群管理員能夠精確描述和表達集群資源之間的關系(包括資源的順序和位置等關系)。同時,對于任何形式的軟件資源,通過為其自定義資源啟動與管理腳本(資源代理),幾乎都能作為資源對象而被Pacemaker管理。此外,需要指出的是,Pacemaker僅是資源管理器,并不提供集群心跳信息,由于任何高可用集群都必須具備心跳監測機制,因而很多初學者總會誤以為Pacemaker本身具有心跳檢測功能,而事實上Pacemaker的心跳機制主要基于Corosync或Heartbeat來實現。
從起源上來看,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,
這幾個子項目之間的關系如圖3-1所示。
(1)Heartbeat
Heartbeat項目最初的消息通信層被獨立為新的Heartbeat項目,新的Heartbeat只負責維護集群各節點的信息以及它們之間的心跳通信,通常將Pacemaker與Heartbeat或者Corosync共同組成集群管理軟件,Pacemaker利用Heartbeat或者Corosync提供的節點及節點之間的心跳信息來判斷節點狀態。
(2)Cluster Glue
Cluster Glue相當于一個中間層,它用來將Heartbeat和Pacemaker關聯起來,主要包含兩個部分,即本地資源管理器(Local Resource Manager,LRM)和Fencing設備(Shoot The Other Node In The Head,STONITH)。
(3)Resource Agent
資源代理(Resource Agent,RA)是用來控制服務啟停、監控服務狀態的腳本集合,這些腳本會被位于本節點上的LRM調用從而實現各種資源的啟動、停止、監控等操作。
(4)Pacemaker
Pacemaker是整個高可用集群的控制中心,用來管理整個集群的資源狀態行為,客戶端通過Pacemaker來配置、管理、監控整個集群的運行狀態。
Pacemaker是一個功能非常強大并支持眾多操作系統的開源集群資源管理器,Pace-maker支持主流的Linux系統,如Redhat的RHEL系列、Fedora系列、OpenSUSE系列、Debian系列、Ubuntu系列和CentOS系列,這些操作系統上都可以運行Pacemaker并將其作為集群資源管理器。Pacemaker的主要功能包括以下幾方面:
監測并恢復節點和服務級別的故障。
存儲無關,并不需要共享存儲。
資源無關,任何能用腳本控制的資源都可以作為集群服務。
支持節點STONITH功能以保證集群數據的完整性和防止集群腦裂。
支持大型或者小型集群。
支持Quorum機制和資源驅動類型的集群。
支持幾乎是任何類型的冗余配置。
自動同步各個節點的配置文件。
可以設定集群范圍內的Ordering、Colocation and Anti-colocation等約束。
高級服務類型支持,例如:
Clone功能,即那些要在多個節點運行的服務可以通過Clone功能實現,Clone功能將會在多個節點上啟動相同的服務;
Multi-State功能,即那些需要運行在多狀態下的服務可以通過Multi-State來實現,在高可用集群的服務中,有很多服務會運行在不同的高可用模式下,如Active/Active模式或者Active/Passive模式等,并且這些服務可能會在Active與Standby(Passive)之間切換。
具有統一的、腳本化的集群管理工具。
OpenStack高可用集群包含眾多服務,除了OpenStack自身的諸多服務以外,還有很多基礎平臺服務,如數據庫和消息隊列等都需要使用Pacemaker進行資源高可用的管理控制。因此,在后續的OpenStack高可用集群配置中,幾乎會使用到Pacemaker提供的上述功能。比如Keystone與Nova等API服務在集群中的啟動順序將由Pacemaker的Ordering約束來控制,而某些服務需要同時運行在某個節點上,這時將會用到Pacemaker的Colocation約束。另外,由于MariaDB和RabbitMQ是多狀態服務,因此需要Pacemaker的Multi-State高級功能的支持。總之,Pacemaker提供了豐富的集群功能來充分滿足用戶對集群節點和服務所進行的各種自定義高可用設置,從而最終實現集群服務的高可用性。
OpenStack 云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。