簡單認識集羣

一、集群概念

集群是一組協同工作的服務實體,用以提供比單一服務實體更具擴展性和可用性的服務平臺。 從客戶端看來,一個集群就是一個完整不可細分的實體,但事實上一個集群實體是由完成不同任務的服務節點個體所組成的。

簡單的說,集群就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。這些單個的計算機系統就是集群的節點。

二、集群分類

1.高可用性集群(High Availability

高可用集群的出現是為了減少由計算機硬件和軟件易錯性所帶來的損失。它通過保護用戶的業務程序對外不間斷提供的服務,把因軟件、硬件和人為造成的故障對業務的影響降低到最小程度。如果某個節點失效,它的備援節點將在幾秒鐘的時間內接管它的職責。

有許多應用程序都必須一天二十四小時地不停運轉,如所有的web服務器、工業控制器、ATM、醫學與軍事監測儀以及股票處理機等。對這些應用程序而言,暫時的停機都會導致數據的丟失和災難性的後果。

因此,對於用戶而言,集群永遠不會停機。高可用集群軟件的主要作用就是實現故障檢查和業務切換的自動化。

結構圖如下:

簡單認識集群

1)Messaging Layer

信息層,心跳信息傳輸層,它是運行在每一個主機上的一個進程

2)CRM,Cluster Resources Manager

集群資源管理器,依賴於各自底層的心跳信息層。之所以有這一層是因為那些非ha_aware軟件本身不具備集群高可用能力,才藉助於CRM來實現的;而如果一個應用程序自己能夠利用底層心跳信息傳遞層的功能完成集群事務決策的軟件就叫ha_aware。

在這層中,其實還有一層叫做LRM(Local Resource Manager)本地資源管理層,這一層是真正去把CRM層的決策去落實的層次;就好比,CRM層是公司的董事長,LRM就是總經理,CRM負責整個公司的遠景規劃及戰略實施,然後分配給總經理(LRM)去實施,總經理再分攤給下面的各小弟(RA)去完成,這些在上圖中也可以直觀的表現出來

pacemaker就是屬於這一層的,而pacemaker的配置接口的crm(suse),所以我們安裝的時候需要安裝crmsh

3)RA,Resource Agent

資源代理就是能夠接收CRM的調度,用於實現在節點上對某一個資源完成管理的工具,通常是一些腳本

(1)heartbeat legacy

heartbeat的傳統類型,監聽在udp的694端口上

(2)LSB,linux standard base

那些在/etc/rc.d/init.d/*的腳本就是屬於LSB的

(3)OCF,Open Cluster Framework

開放集群架構,那些提供資源代理腳本的組織叫provider,pacemaker就是其中的一個provider

(4)STONITH

shoot the other node in the head,這個RA類型主要是做節點隔離的,專為配置stonith設備耐用。

2.負載均衡集群(Load Balancing

LB的目的是提供和節點個數成正比的負載能力,這種集群很適合提供大訪問量的Web服務。負載均衡集群往往也具有一定的高可用性特點。Turbolinux Cluster Server、Linux Virtual Server都屬於負載均衡集群。

對於使用服務的用戶(如網站)來說,Linux 虛擬服務器(LVS)集群看起來是一個服務器。事實上,該用戶使用的是一對冗餘 LVS 路由器之後的兩個或多個服務器的集群。這對路由器把客戶請求均衡地分配給集群系統。負載均衡集群的系統允許管理員使用常見廉價的硬件和 Linux 在滿足可用性需求的同時還提供服務的連續持久的訪問。

3.高性能計算集群

高性能計算集群通過將多臺機器連接起來同時處理複雜的計算問題。模擬星球附近的磁場、預測龍捲風的出現、定位石油資源的儲藏地等情況都需要對大量的數據進行處理。傳統的處理方法是使用超級計算機來完成計算工作,但是超級計算機的價格比較昂貴,而且可用性和可擴展性不夠強,因此集群成為了高性能計算領域矚目的焦點。

按照計算關聯程度的不同,又可以分為兩種。

一種是任務片方式 DC (Distributed Computing),要把計算任務分成任務片,再把任務片分配給各節點,在各節點上分別計算後再把結果彙總,生成最終計算結果。

另一種是並行計算方式 PC (Parallel Computing),節點之間在計算過程中大量地交換數據,可以進行具有強耦合關係的計算。這兩種超級計算集群分別適用於不同類型的數據處理工作。有了超級計算集群軟件,企業利用若干臺PC機就可以完成通常只有超級計算機才能完成的計算任務。這類軟件有Turbolinux EnFusion、SCore等。

三、Linux集群目前活躍的解決套件

1.高可用性集群(HA)

○ RedHat Cluster Suite(RHCS)

○ Linux-HA(Heartbeat)

○ Keeplived

RHCS是由RedHat的集群套件系統,除了完成高可用性功能之外,它還具備負載均衡功能。

Heartbeat是一個免費的開放源代碼的高可用集群系統,目前已經被Novell(SuSE Linux)、Mandriva Linux、 Debian GNU/Linux、Ubuntu Linux等廣泛使用,基於心跳檢測。

Keepalived是一個基於實現lvs高可用開發擴展的程序,目的是提供高可用,基於vrrp路由檢測。

2.負載均衡集群(LB)

○ Linux Virtual Server(LVS)

○ haproxy

○ nginx

LVS是Linux Virtual Server(linux虛擬服務器),採用基於ip的四層負載均衡,有多種調度算法。

haproxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持4-7層的負載均衡,同時支持虛擬主機, 國內大型網站均有使用,提供多種調度算法。

Nginx是一個web服務器,工作於tcp七層,具有靈活的配置功能,一般用於流量不是很大的場合。

3.分佈式高性能計算(DC)

○ OpenMosix

○ OpenSSI

4.並行式高性能計算(PC)

○ Beowulf

高性能計算集群系統主要用於大規模科學計算環境,在企業中應用較少,搭建高性能計算集群往往會針對具體計算內容專門設計系統結構及應用軟件。

四、Linux集群的優勢和劣勢

1.優勢

Linux是目前兼容硬件平臺及各種文件系統最為完備的操作系統,良好的軟硬件兼容性保證了LINUX系統能夠適用於異構集群,同時開放源碼的發展模式也保證了現有的集群軟件能夠方便地遷移至LINUX下運行。LINUX強大的終端管理能力及純文本配置方式使得大規模的集群系統更加易於管理、配置。

LINUX系統的度可配置性可以保證系統能夠為各種應用提供最大限度的優化能力,同時亦可保證整個系統的穩定性。對UNIX系統的兼容使得目前基於UNIX的集群系統可以在很小的修改下就能夠成功運行於LINUX。

2.劣勢

(1)Linux 集群系統多為文本控制方式,使用複雜。

(2)Linux集群軟件大多基於GPL協議,用戶擔心無法得到完備的商業支持

(3)Linux集群的相關人才稀少,培訓成本大


分享到:


相關文章: