一.RHCS的基本概念
-
RHCS是Redhat Hat Cluster
Suite的縮寫,也就是紅帽子集羣套件,RHCS是一個能高提供高可用性,高經濟性,負載均衡,存儲共享且經濟廉價的集羣工具集合,它將集羣系統中的三大經濟架構融爲一體,可以給web應用,數據庫應用等提供安全,穩定的運行環境。 -
RHCS是一個功能完備的集羣應用解決方案,它從應用的前端訪問到數據後端的數據數據存儲都提供了一個行之有效的集羣架構實現,通過RHCS提供的這種解決方案,不但能保證前端應用持久,穩定的提供服務,同時也保證了後端數據存儲的安全。
-
RHCS提供了集羣系統中三種集羣架構,分別是高可用性集羣,負載均衡集羣,存儲集羣。
二.RHCS提供的三個核心功能
1.高可用集羣
- 高可用集羣是RHCS的核心功能
當應用程序出現故障的時候,或者系統硬件,網絡出現故障時,應用可以通過RHCS提供的高可用管理組件自動,快速從一個節點切換到另一個節點,節點故障轉移功能對客戶端來說是透明的,從而保證保證應用持續,不間斷的對外提供服務,這就是RHCS高可用集羣實現的功能。
2負載均衡集羣
- RHCS通過LVS(Linux Virtual Server)來提供負載均衡,而LVS是一個開源的,功能強大的基於IP的負載均衡技術
- LVS由由負載調度器和訪問節點組成,通過LVS的負載調度功能,可以將客戶端的請求平均的分配到各個服務節點上,同時還可以定義多種負載分配策略,當一個請求近來時,集羣系統根據調度算法來判斷應該將請求分配到哪個服務節點,然後,由分配到的節點響應客戶端需求。
- LVS也提供了故障轉移功能,就是指當某個服務節點不能提供服務時,LVS會自動屏蔽這個故障節點,接着將失敗節點從集羣中剔除,同時將新來次節點的請求平滑的轉移到其它正常的節點上來;而當此故障節點恢復正常後,LVS又會自動將此節點加入到集羣中去,而這一系列的切換動作,對於用戶來說是透明的,通過故障轉移功能,保證了服務的不間斷,穩定的運行。
3.存儲集羣
- RHCS通過GFS文件系統來提供存儲集羣功能,GFS是Global FileSystem的縮寫,它允許多個服務同時去讀寫一個單一的共享文件系統,存儲集羣通過將共享的數據放到一個共享文件系統中從而消除了在應用程序間同步數據的麻煩,GFS是一個分佈式文件系統,它通過鎖管理機制,來協調和管理多個服務節點對同一個文件系統的讀寫操作。
三.RHCS集羣的組成
RHCS是一個集羣工具的集合,主要由以下幾大部分組成:
1.集羣架構管理器
這是RHCS集羣的一個基礎套件,提供一個集合的基本功能,使各個節點組成集羣在一起工作,具體包含分佈式集羣管理器(CMAN),成員關係管理,鎖管理(DLM),配置文件管理(CCS),柵設備(FENCE)。
2.高可用服務管理器
提供節點服務監控和服務故障轉移功能,當一個節點服務出現故障時,將服務轉移到一個健康節點。
3.集羣配置管理工具
RHCS最新版本利用LVS來配置和管理rhcs集羣,LUCI是一個基於web的集羣配置方式,通過luci可以輕鬆的搭建一個功能強大的集羣系統。
4.Linux Virtual Server
LVS是一個開源的負載均衡軟件,利用LVS可以將客戶端的請求根據指定的負載均衡策略和算法合理的分配到各個服務節點,實現動態,智能的負載均衡的分擔。
RHCS除了上面的幾個核心構成,還可以通過下面的一些組件來補充RHCS集羣功能:
-
Red Hat GFS(Global File System)
GFS是redhat公司開發的一款集羣文件系統,目前最新的版本是GFS2,GFS文件系統允許多個服務同時讀寫一些磁盤分區,通過GFS可以實現數據的集中管理,免去了數據同步和拷貝的麻煩,但GFS並不能孤立的存在,安裝GFS需要RHCS的底層組建支持。
-
Cluster Logical Volume Manger
cluster邏輯卷管理器,即CLM,是LVM的擴展,這種擴展允許cluster中的機器使用lvm來管理共享存儲。
-
ISCSI
iscsi是一種在internet協議上,特別是以太網上進行數據塊傳輸的標準,它是一種基於IP Storage理論的新型存儲技術,RHCS可以通過ISCSI技術來導出和分配共享存儲的使用。
-
Global Network Block Deceive
全局網絡模塊,簡稱GNBD,是GFS的一個補充組件,用於RHCS分配和管理共享存儲,GNBD分爲客戶端和服務端,在服務端GNBD允許導出多個塊設備或者GNBD文件,而GNBD客戶端通過導入這些導出的文件或者塊設備,就可以把它們當作本地塊設備使用。由於現在GNBD已經停止了開發,所以使用GNBD的越來越少。
三.RHCS的集羣架構
RHCS集羣從總體上分爲三大部分,負載均衡集羣,高可用性集羣,存儲集羣,如下圖所示:
上圖爲典型的集羣拓撲結構:整個結構分爲三個層面:
- 最上層的LVS負載均衡
- 中間爲Realserver層,就是服務節點部分
- 最後一層是共享存儲層,主要用於給GFS文件系統提供共享存儲空間。
五.RHCS集羣原理及功能
1.分佈式集羣管理(CMAN)
- CMAN(cluster manager),是一個分佈式集羣管理工具,它運行在集羣的各個節點上,爲RHCS提供集羣管理任務。
- CMAN用於管理集羣成員,消息及其通知。通過監控每個節點的運行狀態來了解節點成員之間的關係,但集羣中某個節點出現故障,節點成員關係將發生改變,CMAN及時將這種改變通知底層,進而作出相應的調整。
2.鎖管理(DLM)
- DLM(Distributed Lock
Manager)表示一個分佈式鎖管理器。它是RHCS的一個底層基礎構件,同時也爲集羣提供了一個共用的鎖運行機制,在RHCS中,DLM運行在集羣的每個節點上,GFS通過鎖管理器的鎖機制來同步文件系統元數據,CLVM通過鎖管理器來同步更新數據到LVM卷和卷組。 - DLM不需要設定鎖管理服務器,它採用對等的鎖管理方式,大大提高了處理性能,同時DLM避免了單個節點失敗時需要整體恢復的性能瓶頸,另外,DLVM的請求都是本地的,不需要網絡請求,因而請求會立即生效,最後DLM通過分層機制,可以實現多個鎖空間的並行鎖模式。
3.配置文件管理(CCS)
- CCS(Cluster Configuration
System)只要用於集羣配置文件管理和配置文件在節點之間的同步。CCS運行在集羣的每個節點上,監控每個集羣節點上的單一配置文件/etc/cluster/cluster.conf的狀態,當這個文件發生任何變化時,都將此變化更新到集羣的每個節點,時刻保持每個節點的配置文件的同步。 - rhcs的配置文件是cluster.conf,它是一個xml文件,具體包含集羣名稱,集羣節點信息,集羣資源和服務信息,fence設備等。
4.柵設備(FENCE)
- FENCE設備是RHCS集羣中必不可少的一個組成部分,通過FENCE設備可以避免因出現不可預知的情況而造成的“腦裂”現象,FENCE設備的出現,就是爲了解決類似這些問題。
- Fence設備主要就是通過服務器或者存儲本身的硬件管理接口,或者外部電源管理設備,來對服務器或存儲直接發出硬件管理命令,將服務器重啓或關機,或者將網絡連接斷開。
FENCE的工作原理:
- 當意外原因導致主機異常或者拓機時,備機會首先調用FENCE設備,然後通過FENCE設備將異常的主機重啓或者網絡隔離,當FENCE操作成功執行後,返回信息給備機備機在接收到FENCE呈貢的信息後,開始接管主機的服務和資源。這樣通過FENCE設備,將異常的節點佔據的資源進行了釋放,保證了資源和服務始終運行在一個節點上。
- RHCS的FENCE設備可以分爲倆種:內部FENCE和外部FENCE,常用的內部FENCE有IBMRSAII卡,HP的ILO卡,IPMI。外部FENCE設備有UPS,SAN SWITCH,NETWORK SWITCH等。
5.高可用服務管理器
- 作用:主要用來監督,啓動和停止集羣的應用,服務和資源。它提供了一種對集羣服務的管理能力,當一個節點的服務失敗時,高可用性集羣服務管理進程可以將服務從這個失敗節點轉移到其它健康節點上來,並且這種服務轉移能力是自動的透明的。
- RHCS通過rgmanager來管理集羣服務,rgmanager運行在每個集羣節點上,在服務器上對應的進行爲ieclurgmgrd。
- 在一個rhcs集羣中,高可用包含集羣服務的集羣資源倆個方面,集羣服務就是應用服務,例如:apache,mysal等,集羣資源就是有很多種,例如一個IP地址,一個運行腳本,ext3/GFS文件系統等。
- 高可用服務管理在rhcs集羣中是和一個失敗轉移域結合在一起的,所謂失敗轉移域就是一個運行在特定服務的集羣節點的集合。在失敗轉移域中,可以給每個節點設置相應的優先及,通過優先級的高低來決定節點失敗時服務轉移的先後順序,如果沒有指定節點的優先級,那麼集羣高可用服務將在任意節點之間轉移,因此通過創建失敗轉移域不但可以設定服務在節點間轉移的順序,而且可以限制某個服務僅在失敗轉移域的指定的節點內進行切換。
6.集羣配置管理工具
- rhcs提供了多種集羣配置和管理工具,常用的有基於GUI的system-config-cluster,Conga等,也提供了基於命令行的管理工具。
- system-config-cluster是一個用於創建集羣和配置節點的圖形化管理工具,它有集羣節點配置和集羣管理倆個部分組成,分別用於創建集羣節點配置文件和維護節點運行狀態。一般用於rhcs早期的版本中。
- Conga是一種新的基於網絡的集羣配置工具,與圖形配置不同的是,Conga是通過web方式來配置和管理集羣節點的,Conga有倆部分組成,分別是luci,和ricci,luci安裝在一臺獨立的計算機上,用於配置和管理集羣,ricci安裝在每個集羣節點上,luci通過ricci和集羣中的每個節點通信。
7.redhat GFS
-
GFS是RHCS爲集羣系統提供的一個存儲解決方案,它允許集羣多個節點在塊級別上共享存儲,每個節點通過共享一個存儲空間,保證了訪問數據的一致性,更確切的說,GFS是RHCS提供的一個集羣文件系統,多個節點同時掛載一個文件系統分區,而文件系統數據不受破壞,這是單一的文件系統,例如ext4等做不到的。
-
爲了實現多個節點對一個文件系統同時讀寫操作,GFS使用鎖存管理器來管理I/O操作,當一個寫進程操作一個文件時,這個文件就被鎖定,此時不允許其它寫進程進行操作,直到這個寫進行正常完成才釋放鎖,只有當這個鎖被釋放後,其它讀寫進程才能多這個文件進行操作,另外,當一個節點在GFS文件系統上修改數據後,這種修改操作會通過RHCS地層通信機制立即在其它節點上可見。
-
搭建RHCS集羣時,GFS一般作爲共享存儲,運行在每個節點上,並且可以通過RHCS管理工具對其進行配置和管理,對於RHCS和GFS的關係,運行RHCS,GFS不是必須的,只有在需要共享存儲時,才需要GFS支持,而搭建GFS集羣文件系統時,必須要有RHCS的底層支持,所以安裝GFS文件系統中的節點前必須安裝rhcs組件。