天天看點

linux下叢集技術介紹

一、 叢集的定義

叢集是一組協同工作的服務集合,用來提供比單一服務更穩定、更高效、更具擴充性的服務平台,在外界看來,叢集就是一個獨立的服務實體,但實際上,在叢集的内部,有兩個或兩個以上的服務實體在協調、配合完成一系列複雜的工作。

 叢集一般有兩個或兩個以上的伺服器組建而成,每個伺服器被稱為一個叢集節點,叢集節點之間可以互相通信,通信的方式有兩種,一種是基于RS232線的心 跳監控,另一種是用一塊單獨的網卡來跑心跳,因而,叢集具有節點間服務狀态監控功能,同時還必須具有服務實體的擴充功能,可以靈活的增加和剔除某個服務實 體。

在叢集中,同樣的服務可以由多個服務實體提供。因而,當一個節點出現故障時,叢集的另一個節點可以自動接管故障節點的資源,進而保證服務持久、不間斷運作。因而叢集具有故障自動轉移功能。

 一個叢集系統必須擁有共享的資料存儲,因為叢集對外提供的服務是一緻的,任何一個叢集節點運作一個應用時,應用的資料都集中存儲在節點共享空間内,而每個節點的作業系統上僅運作應用的服務,同時存儲應用程式檔案。

綜上所述,建構一個叢集系統至少需要兩台伺服器,同時還需要有序列槽線、叢集軟體、共享儲存設備(例如磁盤陣列)等。

基于Linux的叢集以其極高的計算能力、可擴充性、可用性及更加優化的成本效益在企業各種應用中脫穎而出。 成為目前大家都關心的Linux應用熱點,熟練掌握Linux叢集知識,可以用低價格做出高性能的應用。為企業、個人節省了成本。國内大型網站新浪、網易 等都采用了linux叢集系統建構高性能web應用,著名搜尋引擎google采用了上萬台linux伺服器組成了一個超大叢集,這些執行個體都說明了叢集在 linux應用中的地位和重要性。

二、 叢集的特點與功能

2.1 高可用性與可擴充性

1.高可用性

 對于一些實時性很強的應用系統,必須保證服務的24小時不間斷運作,而由于軟體、硬體、網絡、人為等各種原因,單一的服務運作環境很難達到這種要求,此 時建構一個叢集系統是個不錯的選擇,建構叢集的一個最大優點是叢集具有高可用性,在服務出現故障時,叢集系統可以自動将服務從故障節點切換到另一個備用節 點,進而提供不間斷性服務,保證了業務的持續運作。

2.可擴充性

 随着業務量的加大,現有的叢集服務實體不能滿足需求時,可以向此叢集中動态的加入一個或多個服務節點,進而滿足應用的需要,增強叢集的整體性能。這就是叢集的可擴充性。

2.2 負載均衡與錯誤恢複

1.負載均衡

 叢集系統最大的特點是可以靈活、有效的分擔系統負載,通過叢集自身定義的負載分擔政策,将用戶端的通路配置設定到下面的各個服務節點,例如,可以定義輪詢分 配政策,将請求平均的配置設定到各個服務節點,還可以定義最小負載配置設定政策,當一個請求進來時,叢集系統判斷哪個服務節點比較清閑,就将此請求分發到這個節 點。

2.錯誤恢複

 當一個任務在一個節點上還沒有完成時,由于某種原因,執行失敗,此時,另一個服務節點應該能接着完成此任務,這就是叢集提供的錯誤恢複功能,通過錯誤的重定向,保證了每個執行任務都能有效的完成。

2.3心跳檢測與漂移IP

1.心跳監測

 為了能實作負載均衡、提供高可用服務和執行錯誤恢複,叢集系統提供了心跳監測技術,心跳監測是通過心跳線實作的,可以做心跳線的裝置有RS 232序列槽線,也可以用獨立的一塊網卡來跑心跳,還可以是共享磁盤陣列等,心跳線的數量應該為叢集節點數減1,需要注意的是,如果通過網卡來做心跳的話, 每個節點需要兩塊網卡,其中,一塊作為私有網絡直接連接配接到對方機器相應的網卡,用來監測對方心跳。另外一塊連接配接到公共網絡對外提供服務,同時心跳網卡和服 務網卡的IP位址盡量不要在一個網段内。心跳監控的效率直接影響故障切換時間的長短,叢集系統正是通過心跳技術保持着節點間的内部有效通信。

2.漂移IP位址

 在叢集系統中,除了每個服務節點自身的真實IP位址外,還存在一個漂移IP位址,為什麼說是漂移IP呢,因為這個IP位址并不固定,例如在兩個節點的雙 機熱備中,正常狀态下,這個漂移IP位于主節點上,當主節點出現故障後,漂移IP位址自動切換到備用節點,是以,為了保證服務的不間斷性,在叢集系統中, 對外提供的服務IP一定要是這個漂移IP位址,雖然節點本身的IP也能對外提供服務,但是當此節點失效後,服務切換到了另一個節點,但是服務IP仍然是故 障節點的IP位址,此時,服務就随之中斷。

三、 叢集的分類

3.1 高可用叢集 

1.高可用的概念

高可用叢集的英文全稱是High Availability Cluster,簡稱HA Cluster, 高可用的含義是最大限度的可以使用,從叢集的名字上可以看出,此類叢集實作的功能是保障使用者的應用程式持久、不間斷的提供服務。

當應用程式出現故障,或者系統硬體、網絡出現故障時,應用可以自動、快速從一個節點切換到另一個節點,進而保證應用持續、不間斷的對外提供服務,這就是高可用叢集實作的功能,

2.常見的HA Cluster

我們常說的雙機熱備、雙機互備、多機互備等都屬于高可用叢集的範疇,這類叢集一般都有兩個或兩個以上節點組成。典型的雙機熱備結構如圖1所示

<a href="http://img1.51cto.com/attachment/201105/101546598.png" target="_blank"></a>

圖1 雙機熱備結構

雙機熱備是最簡單的應用模式,即經常說的active/standby方式,它使用兩台伺服器,一台作為主伺服器(action),運作應用程式對 外提供服務,另一台作為備機(standby),安裝和主伺服器一樣的應用程式,但是并不啟動服務,處于待機狀态。主機和備機之間通過心跳技術互相監控, 監控的資源可以是網絡、作業系統、也可以是服務,使用者可以根據自己的需要,選擇需要監控的資源,當備機監控到主機的某個資源出現故障時,根據預先設定好的 政策,首先将IP切換過來,然後将應用程式服務也接管過來,接着就由備機對外提供服務,由于切換過程時間非常端,使用者根本感覺不到程式出了問題,而且還進 行了切換,進而保障了應用程式持久、不間斷的服務。

雙機互備是在雙機熱備的基礎上,兩個互相獨立的應用在兩個機器上同時運作,互為主備,即兩台伺服器既是主機也是備機,當任何一個應用出現故障,另一台服務 器都能在短時間内将故障機器的應用接管過來,進而保障了服務的持續、無間斷運作。雙機互備的好處是節省了裝置資源,兩個應用的雙機熱備至少需要四台服務 器,而雙機互備僅需兩台伺服器即可完成高可用叢集功能,但是雙機互備也有自身的缺點:在某個節點故障切換後,另一個節點上就同時運作了兩個應用的服務,有 可能出現負載過大的情況。

多機互備是雙機熱備的技術更新,通過多台機器組成一個叢集,可以在多台機器之間設定靈活的接管政策,例如,某個叢集環境有8台伺服器組成,3台運作web 應用,3台運作mail應用,因而,可以将剩餘的一台作為3台web伺服器的備機,另一台作為3台mail伺服器的備機,通過這樣的部署,合理充分的利用 了伺服器資源,同時也保證了系統的高可用性。

需要注意的是:高可用叢集不能保證應用程式資料的安全性,它僅僅解決的是對外提供持久不間斷的服務,把由于軟體、硬體、網絡、人為因素造成的故障而對應用造成的影響降低到最底程度。

3.高可用叢集軟體

高可用叢集一般是通過高可用軟體來實作的,在linux下常用的高可用軟體有:開源heartbea HA、Redhat提供的RHCS、商業軟體ROSE、keepalived等。在下面的章節中我們會詳細介紹heartbea HA的配置和使用。

3.2 負載均衡叢集

負載均衡系統的英文全稱為Load Balance Cluster,簡稱LB Cluster,負載均衡叢集也是有兩台或者兩台以上的伺服器組成,分為前端負載排程和後端節點服務兩個部分,負載排程部分負責把用戶端的請求按照不同的 政策配置設定給後端服務節點,而後端節點是真正提供應用程式服務的部分。

與HA Cluster不同的是,在負載均衡叢集中,所有的後端節點都處于活動狀态,它們都對外提供服務,分攤系統的工作負載。

負載均衡叢集可以把一個高負荷的應用分散到多個節點來共同完成,适用于業務繁忙、大負荷通路的應用系統,但是它也有不足的地方:當一個節點出現故障時,前 端排程系統并不知道此節點已經不能提供服務,仍然會把用戶端的請求排程到故障節點上來,這樣通路就會失敗,為了解決這個問題,負載排程系統一般都引入了節 點監控系統。

節點監控系統位于前端負載排程機上,負責監控下面的服務節點,當某個節點出現故障後,節點監控系統會自動将故障節點從叢集中剔除,當此節點恢複正常後,節點監控系統又會自動将其加入叢集中,而這一切,對使用者來說是完全透明的。

圖2顯示了負載均衡叢集的基本結構:

<a href="http://img1.51cto.com/attachment/201105/101615786.png" target="_blank"></a>

圖2 負載均衡叢集基本構架

負載均衡叢集可以通過軟體方式實作,也可以由硬體裝置來完成,linux下典型的負載均衡軟體有:開源LVS叢集、Oracle的RAC叢集等,硬體負載均衡器有F5 Networks等。關于LVS叢集,在下面的章節我們會進行詳細講解。

3.3 科學計算叢集

高性能計算(High Perfermance Computing)叢集,簡稱HPC叢集。這類叢集緻力于提供單個計算機所不能提供的強大的計算能力,包括數值計算和資料處理,并且傾向于追求綜合性 能。HPC與超級計算類似,但是又有不同,計算速度是超級計算追求的第一目标。最快的速度,最大的存儲,最龐大的體積,最昂貴的價格代表了超級計算的特 點,随着人們對計算速度需求的提高,超級計算也應用到了各個領域,對超級計算追求單一計算速度名額轉變為追求高性能的綜合名額。即高性能計算。

HPC應用領域非常廣泛,典型應用有:生命科學研究、基因測試比對、資料挖掘應用、石油和天然氣勘探、圖像呈現等。

本文轉自 goldfishe 51CTO部落格,原文連結:http://blog.51cto.com/jack88/1896048

繼續閱讀