RHCS集群原理概述
一、 什么是RHCS
? ? RHCS是Red Hat Cluster Suite的縮寫,也就是紅帽集群套件,RHCS是一個能夠提供高可用性、高可靠性、負載均衡、存儲共享且經(jīng)濟廉價的集群工具集合,它將集群系統(tǒng)中三大集群架構融合一體,可以給web應用、數(shù)據(jù)庫應用等提供安全、穩(wěn)定的運行環(huán)境。
? ? 更確切的說,RHCS是一個功能完備的集群應用解決方案,它從應用的前端訪問到后端的數(shù)據(jù)存儲都提供了一個行之有效的集群架構實現(xiàn),通過RHCS提供的這種解決方案,不但能保證前端應用持久、穩(wěn)定的提供服務,同時也保證了后端數(shù)據(jù)存儲的安全。
? ? RHCS提供了集群系統(tǒng)中三種集群構架,分別是高可用性集群、負載均衡集群、存儲集群。
二、RHCS提供的三個核心功能
? ? 高可用集群是RHCS的核心功能。當應用程序出現(xiàn)故障,或者系統(tǒng)硬件、網(wǎng)絡出現(xiàn)故障時,應用可以通過RHCS提供的高可用管理組件自動、快速從一個節(jié)點切換到另一個節(jié)點,節(jié)點故障轉移功能對客戶端來說是透明的,從而保證應用持續(xù)、不間斷的對外提供服務,這就是RHCS高可用集群實現(xiàn)的功能。
? ? RHCS通過LVS(Linux Virtual Server)來提供負載均衡集群,而LVS是一個開源的、功能強大的基于IP的負載均衡技術,LVS由負載調度器和服務訪問節(jié)點組成,通過LVS的負載調度功能,可以將客戶端請求平均的分配到各個服務節(jié)點,同時,還可以定義多種負載分配策略,當一個請求進來時,集群系統(tǒng)根據(jù)調度算法來判斷應該將請求分配到哪個服務節(jié)點,然后,由分配到的節(jié)點響應客戶端請求,同時,LVS還提供了服務節(jié)點故障轉移功能,也就是當某個服務節(jié)點不能提供服務時,LVS會自動屏蔽這個故障節(jié)點,接著將失敗節(jié)點從集群中剔除,同時將新來此節(jié)點的請求平滑的轉移到其它正常節(jié)點上來;而當此故障節(jié)點恢復正常后,LVS又會自動將此節(jié)點加入到集群中去。而這一系列切換動作,對用戶來說,都是透明的,通過故障轉移功能,保證了服務的不間斷、穩(wěn)定運行。
? ? RHCS通過GFS文件系統(tǒng)來提供存儲集群功能,GFS是Global File System的縮寫,它允許多個服務同時去讀寫一個單一的共享文件系統(tǒng),存儲集群通過將共享數(shù)據(jù)放到一個共享文件系統(tǒng)中從而消除了在應用程序間同步數(shù)據(jù)的麻煩,GFS是一個分布式文件系統(tǒng),它通過鎖管理機制,來協(xié)調和管理多個服務節(jié)點對同一個文件系統(tǒng)的讀寫操作。
三、RHCS集群的組成
? ? RHCS是一個集群工具的集合,主要有下面幾大部分組成:
集群構架管理器
? ? 這是RHCS集群的一個基礎套件,提供一個集群的基本功能,使各個節(jié)點組成集群在一起工作,具體包含分布式集群管理器(CMAN)、成員關系管理、鎖管理(DLM)、配置文件管理(CCS)、柵設備(FENCE)。
高可用服務管理器
? ? 提供節(jié)點服務監(jiān)控和服務故障轉移功能,當一個節(jié)點服務出現(xiàn)故障時,將服務轉移到另一個健康節(jié)點。
集群配置管理工具
? ? RHCS最新版本通過LUCI來配置和管理RHCS集群,LUCI是一個基于web的集群配置方式,通過luci可以輕松的搭建一個功能強大的集群系統(tǒng)。
LVS(Linux Virtual Server)
? ? LVS是一個開源的負載均衡軟件,利用LVS可以將客戶端的請求根據(jù)指定的負載策略和算法合理的分配到各個服務節(jié)點,實現(xiàn)動態(tài)、智能的負載分擔。
? ? RHCS除了上面的幾個核心構成,還可以通過下面一些組件來補充RHCS集群功能。
GFS(Global File System)
? ? GFS是Redhat公司開發(fā)的一款集群文件系統(tǒng),目前的最新版本是GFS2,GFS文件系統(tǒng)允許多個服務同時讀寫一個磁盤分區(qū),通過GFS可以實現(xiàn)數(shù)據(jù)的集中管理,免去了數(shù)據(jù)同步和拷貝的麻煩,但GFS并不能孤立的存在,安裝GFS需要RHCS的底層組件支持。
CLVM(Cluster Logical Volume Manager)
? ? Cluster邏輯卷管理,即CLVM,是LVM的擴展,這種擴展允許cluster中的機器使用LVM來管理共享存儲。
iSCSI
? ? iSCSI是一種在Internet協(xié)議上,特別是以太網(wǎng)上進行數(shù)據(jù)塊傳輸?shù)臉藴?它是一種基于IP Storage理論的新型存儲技術,RHCS可以通過ISCSI技術來導出和分配共享存儲的使用。
GNBD(Global Network Block Device)
? ? 全局網(wǎng)絡模塊,簡稱GNBD,是GFS的一個補充組件,用于RHCS分配和管理共享存儲,GNBD分為客戶端和服務端,在服務端GNBD允許導出多個塊設備或者GNBD文件,而GNBD客戶端通過導入這些導出的塊設備或者文件,就可以把它們當作本地塊設備使用。由于現(xiàn)在GNBD已經(jīng)停止了開發(fā),所以使用GNBD的越來越少。
四、 RHCS集群結構
? ? RHCS集群從整體上分為三大部分,負載均衡集群、 高可用性集群、存儲集群,如圖所示:
? ? 上圖是典型的RHCS集群拓撲結構:整個拓撲結構分為三個層面:
? ? 最上層是LVS負載均衡層,中間一層是Real Server層,就是服務節(jié)點部分,最后一層是共享存儲層,主要用于給GFS文件系統(tǒng)提供共享存儲空間。
五、RHCS集群運行原理及功能介紹
1、分布式集群管理器(CMAN)
? ? Cluster Manager,簡稱CMAN,是一個分布式集群管理工具,它運行在集群的各個節(jié)點上,為RHCS提供集群管理任務。
? ? CMAN用于管理集群成員、消息和通知。它通過監(jiān)控每個節(jié)點的運行狀態(tài)來了解節(jié)點成員之間的關系,當集群中某個節(jié)點出現(xiàn)故障,節(jié)點成員關系將發(fā)生改變,CMAN及時將這種改變通知底層,進而做出相應的調整。
2、鎖管理(DLM)
? ? Distributed Lock Manager,簡稱DLM,表示一個分布式鎖管理器,它是RHCS的一個底層基礎構件,同時也為集群提供了一個公用的鎖運行機制,在RHCS集群系統(tǒng)中,DLM運行在集群的每個節(jié)點上,GFS通過鎖管理器的鎖機制來同步訪問文件系統(tǒng)元數(shù)據(jù)。CLVM通過鎖管理器來同步更新數(shù)據(jù)到LVM卷和卷組。
? ? DLM不需要設定鎖管理服務器,它采用對等的鎖管理方式,大大的提高了處理性能。同時,DLM避免了當單個節(jié)點失敗需要整體恢復的性能瓶頸,另外,DLM的請求都是本地的,不需要網(wǎng)絡請求,因而請求會立即生效。最后,DLM通過分層機制,可以實現(xiàn)多個鎖空間的并行鎖模式。
3、配置文件管理(CCS)
? ? Cluster Configuration System,簡稱CCS,主要用于集群配置文件管理和配置文件在節(jié)點之間的同步。CCS運行在集群的每個節(jié)點上,監(jiān)控每個集群節(jié)點上的單一配置文件/etc/cluster/cluster.conf的狀態(tài),當這個文件發(fā)生任何變化時,都將此變化更新到集群中的每個節(jié)點,時刻保持每個節(jié)點的配置文件同步。例如,管理員在節(jié)點A上更新了集群配置文件,CCS發(fā)現(xiàn)A節(jié)點的配置文件發(fā)生變化后,馬上將此變化傳播到其它節(jié)點上去。
? ? rhcs的配置文件是cluster.conf,它是一個xml文件,具體包含集群名稱、集群節(jié)點信息、集群資源和服務信息、fence設備等,這個會在后面講述。
4、柵設備(FENCE)
? ? FENCE設備是RHCS集群中必不可少的一個組成部分,通過FENCE設備可以避免因出現(xiàn)不可預知的情況而造成的“腦裂”現(xiàn)象,FENCE設備的出現(xiàn),就是為了解決類似這些問題,Fence設備主要就是通過服務器或存儲本身的硬件管理接口,或者外部電源管理設備,來對服務器或存儲直接發(fā)出硬件管理指令,將服務器重啟或關機,或者與網(wǎng)絡斷開連接。
? ? FENCE的工作原理是:當意外原因導致主機異常或者宕機時,備機會首先調用FENCE設備,然后通過FENCE設備將異常主機重啟或者從網(wǎng)絡隔離,當FENCE操作成功執(zhí)行后,返回信息給備機,備機在接到FENCE成功的信息后,開始接管主機的服務和資源。這樣通過FENCE設備,將異常節(jié)點占據(jù)的資源進行了釋放,保證了資源和服務始終運行在一個節(jié)點上。
? ? RHCS的FENCE設備可以分為兩種:內部FENCE和外部FENCE,常用的內部FENCE有IBM RSAII卡,HP的iLO卡,還有IPMI的設備等,外部fence設備有UPS、SAN SWITCH、NETWORK SWITCH等
5、高可用服務管理器
? ? 高可用性服務管理主要用來監(jiān)督、啟動和停止集群的應用、服務和資源。它提供了一種對集群服務的管理能力,當一個節(jié)點的服務失敗時,高可用性集群服務管理進程可以將服務從這個失敗節(jié)點轉移到其它健康節(jié)點上來,并且這種服務轉移能力是自動、透明的。
? ? RHCS通過rgmanager來管理集群服務,rgmanager運行在每個集群節(jié)點上,在服務器上對應的進程為clurgmgrd。
? ? 在一個RHCS集群中,高可用**包含集群服務和集群資源兩個方面,集群服務其實就是應用服務,例如apache、mysql等,集群資源有很多種,例如一個IP地址、一個運行腳本、ext3/GFS文件系統(tǒng)等。
? ? 在RHCS集群中,高可用**是和一個失敗轉移域結合在一起的,所謂失敗轉移域是一個運行特定服務的集群節(jié)點的集合。在失敗轉移域中,可以給每個節(jié)點設置相應的優(yōu)先級,通過優(yōu)先級的高低來決定節(jié)點失敗時服務轉移的先后順序,如果沒有給節(jié)點指定優(yōu)先級,那么集群高可用服務將在任意節(jié)點間轉移。因此,通過創(chuàng)建失敗轉移域不但可以設定服務在節(jié)點間轉移的順序,而且可以限制某個服務僅在失敗轉移域指定的節(jié)點內進行切換。
6、集群配置管理工具
? ? RHCS提供了多種集群配置和管理工具,常用的有基于GUI的system-config-cluster、Conga等,也提供了基于命令行的管理工具。
? ? system-config-cluster是一個用于創(chuàng)建集群和配置集群節(jié)點的圖形化管理工具,它有集群節(jié)點配置和集群管理兩個部分組成,分別用于創(chuàng)建集群節(jié)點配置文件和維護節(jié)點運行狀態(tài)。一般用在RHCS早期的版本中。
? ? Conga是一種新的基于網(wǎng)絡的集群配置工具,與system-config-cluster不同的是,Conga是通過web方式來配置和管理集群節(jié)點的。Conga有兩部分組成,分別是luci和ricci,luci安裝在一**立的計算機上,用于配置和管理集群,ricci安裝在每個集群節(jié)點上,Luci通過ricci和集群中的每個節(jié)點進行通信。
? ? RHCS也提供了一些功能強大的集群命令行管理工具,常用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等,這些命令的用法將在下面講述。
7、Redhat GFS
? ? GFS是RHCS為集群系統(tǒng)提供的一個存儲解決方案,它允許集群多個節(jié)點在塊級別上共享存儲,每個節(jié)點通過共享一個存儲空間,保證了訪問數(shù)據(jù)的一致性,更切實的說,GFS是RHCS提供的一個集群文件系統(tǒng),多個節(jié)點同時掛載一個文件系統(tǒng)分區(qū),而文件系統(tǒng)數(shù)據(jù)不受破壞,這是單一的文件系統(tǒng),例如EXT3、EXT2所不能做到的。
? ? 為了實現(xiàn)多個節(jié)點對于一個文件系統(tǒng)同時讀寫操作,GFS使用鎖管理器來管理I/O操作,當一個寫進程操作一個文件時,這個文件就被鎖定,此時不允許其它進程進行讀寫操作,直到這個寫進程正常完成才釋放鎖,只有當鎖被釋放后,其它讀寫進程才能對這個文件進行操作,另外,當一個節(jié)點在GFS文件系統(tǒng)上修改數(shù)據(jù)后,這種修改操作會通過RHCS底層通信機制立即在其它節(jié)點上可見。
? ? 在搭建RHCS集群時,GFS一般作為共享存儲,運行在每個節(jié)點上,并且可以通過RHCS管理工具對GFS進行配置和管理。這些需要說明的是RHCS和GFS之間的關系,一般初學者很容易混淆這個概念:運行RHCS,GFS不是必須的,只有在需要共享存儲時,才需要GFS支持,而搭建GFS集群文件系統(tǒng),必須要有RHCS的底層支持,所以安裝GFS文件系統(tǒng)的節(jié)點,必須安裝RHCS組件。
總結
以上是生活随笔為你收集整理的RHCS集群原理概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAS实现单点登录方案(SSO完整版)
- 下一篇: iOS开发-Get请求,Post请求,同