Linux集群技術概論
1 集群的定義
集群是一組協(xié)同工作的服務集合,用來提供比單一服務更穩(wěn)定、更高效、更具擴展性的服務平臺,在外界看來,集群就是一個獨立的服務實體,但實際上,在集群的內(nèi)部,有兩個或兩個以上的服務實體在協(xié)調(diào)、配合完成一系列復雜的工作。
?集群一般有兩個或兩個以上的服務器組建而成,每個服務器被稱為一個集群節(jié)點,集群節(jié)點之間可以相互通信,通信的方式有兩種,一種是基于RS232線的心跳監(jiān)控,另一種是用一塊單獨的網(wǎng)卡來跑心跳,因而,集群具有節(jié)點間服務狀態(tài)監(jiān)控功能,同時還必須具有服務實體的擴展功能,可以靈活的增加和剔除某個服務實體。
在集群中,同樣的服務可以由多個服務實體提供。因而,當一個節(jié)點出現(xiàn)故障時,集群的另一個節(jié)點可以自動接管故障節(jié)點的資源,從而保證服務持久、不間斷運行。因而集群具有故障自動轉(zhuǎn)移功能。
?一個集群系統(tǒng)必須擁有共享的數(shù)據(jù)存儲,因為集群對外提供的服務是一致的,任何一個集群節(jié)點運行一個應用時,應用的數(shù)據(jù)都集中存儲在節(jié)點共享空間內(nèi),而每個節(jié)點的操作系統(tǒng)上僅運行應用的服務,同時存儲應用程序文件。
綜上所述,構建一個集群系統(tǒng)至少需要兩臺服務器,同時還需要有串口線、集群軟件、共享存儲設備(例如磁盤陣列)等。
基于Linux的集群以其極高的計算能力、可擴展性、可用性及更加優(yōu)化的性價比在企業(yè)各種應用中脫穎而出。 成為目前大家都關心的Linux應用熱點,熟練掌握Linux集群知識,可以用低價格做出高性能的應用。為企業(yè)、個人節(jié)省了成本。國內(nèi)大型網(wǎng)站新浪、網(wǎng)易等都采用了linux集群系統(tǒng)構建高性能web應用,著名搜索引擎google采用了上萬臺linux服務器組成了一個超大集群,這些實例都說明了集群在linux應用中的地位和重要性。
2 集群的特點與功能
2.1 高可用性與可擴展性
1.高可用性
?對于一些實時性很強的應用系統(tǒng),必須保證服務的24小時不間斷運行,而由于軟件、硬件、網(wǎng)絡、人為等各種原因,單一的服務運行環(huán)境很難達到這種要求,此時構建一個集群系統(tǒng)是個不錯的選擇,構建集群的一個最大優(yōu)點是集群具有高可用性,在服務出現(xiàn)故障時,集群系統(tǒng)可以自動將服務從故障節(jié)點切換到另一個備用節(jié)點,從而提供不間斷性服務,保證了業(yè)務的持續(xù)運行。
2.可擴展性
?隨著業(yè)務量的加大,現(xiàn)有的集群服務實體不能滿足需求時,可以向此集群中動態(tài)的加入一個或多個服務節(jié)點,從而滿足應用的需要,增強集群的整體性能。這就是集群的可擴展性。
2.2 負載均衡與錯誤恢復
1.負載均衡
?集群系統(tǒng)最大的特點是可以靈活、有效的分擔系統(tǒng)負載,通過集群自身定義的負載分擔策略,將客戶端的訪問分配到下面的各個服務節(jié)點,例如,可以定義輪詢分配策略,將請求平均的分配到各個服務節(jié)點,還可以定義最小負載分配策略,當一個請求進來時,集群系統(tǒng)判斷哪個服務節(jié)點比較清閑,就將此請求分發(fā)到這個節(jié)點。
2.錯誤恢復
?當一個任務在一個節(jié)點上還沒有完成時,由于某種原因,執(zhí)行失敗,此時,另一個服務節(jié)點應該能接著完成此任務,這就是集群提供的錯誤恢復功能,通過錯誤的重定向,保證了每個執(zhí)行任務都能有效的完成。
2.3心跳檢測與漂移IP
1.心跳監(jiān)測
?為了能實現(xiàn)負載均衡、提供高可用服務和執(zhí)行錯誤恢復,集群系統(tǒng)提供了心跳監(jiān)測技術,心跳監(jiān)測是通過心跳線實現(xiàn)的,可以做心跳線的設備有RS 232串口線,也可以用獨立的一塊網(wǎng)卡來跑心跳,還可以是共享磁盤陣列等,心跳線的數(shù)量應該為集群節(jié)點數(shù)減1,需要注意的是,如果通過網(wǎng)卡來做心跳的話,每個節(jié)點需要兩塊網(wǎng)卡,其中,一塊作為私有網(wǎng)絡直接連接到對方機器相應的網(wǎng)卡,用來監(jiān)測對方心跳。另外一塊連接到公共網(wǎng)絡對外提供服務,同時心跳網(wǎng)卡和服務網(wǎng)卡的IP地址盡量不要在一個網(wǎng)段內(nèi)。心跳監(jiān)控的效率直接影響故障切換時間的長短,集群系統(tǒng)正是通過心跳技術保持著節(jié)點間的內(nèi)部有效通信。
2.漂移IP地址
?在集群系統(tǒng)中,除了每個服務節(jié)點自身的真實IP地址外,還存在一個漂移IP地址,為什么說是漂移IP呢,因為這個IP地址并不固定,例如在兩個節(jié)點的雙機熱備中,正常狀態(tài)下,這個漂移IP位于主節(jié)點上,當主節(jié)點出現(xiàn)故障后,漂移IP地址自動切換到備用節(jié)點,因此,為了保證服務的不間斷性,在集群系統(tǒng)中,對外提供的服務IP一定要是這個漂移IP地址,雖然節(jié)點本身的IP也能對外提供服務,但是當此節(jié)點失效后,服務切換到了另一個節(jié)點,但是服務IP仍然是故障節(jié)點的IP地址,此時,服務就隨之中斷。
3 集群的分類
3.1 高可用集群
1.高可用的概念
高可用集群的英文全稱是High Availability Cluster,簡稱HA Cluster, 高可用的含義是最大限度的可以使用,從集群的名字上可以看出,此類集群實現(xiàn)的功能是保障用戶的應用程序持久、不間斷的提供服務。
當應用程序出現(xiàn)故障,或者系統(tǒng)硬件、網(wǎng)絡出現(xiàn)故障時,應用可以自動、快速從一個節(jié)點切換到另一個節(jié)點,從而保證應用持續(xù)、不間斷的對外提供服務,這就是高可用集群實現(xiàn)的功能,
2.常見的HA Cluster
我們常說的雙機熱備、雙機互備、多機互備等都屬于高可用集群的范疇,這類集群一般都有兩個或兩個以上節(jié)點組成。典型的雙機熱備結構如圖1所示:
?
圖1?? 雙機熱備結構
雙機熱備是最簡單的應用模式,即經(jīng)常說的active/standby方式,它使用兩臺服務器,一臺作為主服務器(action),運行應用程序?qū)ν馓峁┓眨硪慌_作為備機(standby),安裝和主服務器一樣的應用程序,但是并不啟動服務,處于待機狀態(tài)。主機和備機之間通過心跳技術相互監(jiān)控,監(jiān)控的資源可以是網(wǎng)絡、操作系統(tǒng)、也可以是服務,用戶可以根據(jù)自己的需要,選擇需要監(jiān)控的資源,當備機監(jiān)控到主機的某個資源出現(xiàn)故障時,根據(jù)預先設定好的策略,首先將IP切換過來,然后將應用程序服務也接管過來,接著就由備機對外提供服務,由于切換過程時間非常端,用戶根本感覺不到程序出了問題,而且還進行了切換,從而保障了應用程序持久、不間斷的服務。
雙機互備是在雙機熱備的基礎上,兩個相互獨立的應用在兩個機器上同時運行,互為主備,即兩臺服務器既是主機也是備機,當任何一個應用出現(xiàn)故障,另一臺服務器都能在短時間內(nèi)將故障機器的應用接管過來,從而保障了服務的持續(xù)、無間斷運行。雙機互備的好處是節(jié)省了設備資源,兩個應用的雙機熱備至少需要四臺服務器,而雙機互備僅需兩臺服務器即可完成高可用集群功能,但是雙機互備也有自身的缺點:在某個節(jié)點故障切換后,另一個節(jié)點上就同時運行了兩個應用的服務,有可能出現(xiàn)負載過大的情況。
多機互備是雙機熱備的技術升級,通過多臺機器組成一個集群,可以在多臺機器之間設置靈活的接管策略,例如,某個集群環(huán)境有8臺服務器組成,3臺運行web應用,3臺運行mail應用,因而,可以將剩余的一臺作為3臺web服務器的備機,另一臺作為3臺mail服務器的備機,通過這樣的部署,合理充分的利用了服務器資源,同時也保證了系統(tǒng)的高可用性。
需要注意的是:高可用集群不能保證應用程序數(shù)據(jù)的安全性,它僅僅解決的是對外提供持久不間斷的服務,把由于軟件、硬件、網(wǎng)絡、人為因素造成的故障而對應用造成的影響降低到最底程度。
3.高可用集群軟件
高可用集群一般是通過高可用軟件來實現(xiàn)的,在linux下常用的高可用軟件有:開源heartbea HA、Redhat提供的RHCS、商業(yè)軟件ROSE、keepalived等。在下面的章節(jié)中我們會詳細介紹heartbea HA的配置和使用。
3.2 負載均衡集群
負載均衡系統(tǒng)的英文全稱為Load Balance Cluster,簡稱LB Cluster,負載均衡集群也是有兩臺或者兩臺以上的服務器組成,分為前端負載調(diào)度和后端節(jié)點服務兩個部分,負載調(diào)度部分負責把客戶端的請求按照不同的策略分配給后端服務節(jié)點,而后端節(jié)點是真正提供應用程序服務的部分。
與HA Cluster不同的是,在負載均衡集群中,所有的后端節(jié)點都處于活動狀態(tài),它們都對外提供服務,分攤系統(tǒng)的工作負載。
負載均衡集群可以把一個高負荷的應用分散到多個節(jié)點來共同完成,適用于業(yè)務繁忙、大負荷訪問的應用系統(tǒng),但是它也有不足的地方:當一個節(jié)點出現(xiàn)故障時,前端調(diào)度系統(tǒng)并不知道此節(jié)點已經(jīng)不能提供服務,仍然會把客戶端的請求調(diào)度到故障節(jié)點上來,這樣訪問就會失敗,為了解決這個問題,負載調(diào)度系統(tǒng)一般都引入了節(jié)點監(jiān)控系統(tǒng)。
節(jié)點監(jiān)控系統(tǒng)位于前端負載調(diào)度機上,負責監(jiān)控下面的服務節(jié)點,當某個節(jié)點出現(xiàn)故障后,節(jié)點監(jiān)控系統(tǒng)會自動將故障節(jié)點從集群中剔除,當此節(jié)點恢復正常后,節(jié)點監(jiān)控系統(tǒng)又會自動將其加入集群中,而這一切,對用戶來說是完全透明的。
圖2顯示了負載均衡集群的基本結構:
?
圖2 負載均衡集群基本構架
負載均衡集群可以通過軟件方式實現(xiàn),也可以由硬件設備來完成,linux下典型的負載均衡軟件有:開源LVS集群、Oracle的RAC集群等,硬件負載均衡器有F5 Networks等。關于LVS集群,在下面的章節(jié)我們會進行詳細講解。
3.3 科學計算集群
高性能計算(High Perfermance Computing)集群,簡稱HPC集群。這類集群致力于提供單個計算機所不能提供的強大的計算能力,包括數(shù)值計算和數(shù)據(jù)處理,并且傾向于追求綜合性能。HPC與超級計算類似,但是又有不同,計算速度是超級計算追求的第一目標。最快的速度,最大的存儲,最龐大的體積,最昂貴的價格代表了超級計算的特點,隨著人們對計算速度需求的提高,超級計算也應用到了各個領域,對超級計算追求單一計算速度指標轉(zhuǎn)變?yōu)樽非蟾咝阅艿木C合指標。即高性能計算。
HPC應用領域非常廣泛,典型應用有:生命科學研究、基因測試比對、數(shù)據(jù)挖掘應用、石油和天然氣勘探、圖像呈現(xiàn)等。
?
本篇文章來源于鋒芒網(wǎng)( www.ixdba.net ) 原文鏈接: http://www.ixdba.net/a/lb/2010/0920/766.html
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
