Linux操作系統(tǒng)下集群技術(shù)的應(yīng)用
一、 集群的定義
集群是一組協(xié)同工作的服務(wù)集合,用來提供比單一服務(wù)更穩(wěn)定、更高效、更具擴(kuò)展性的服務(wù)平臺,在外界看來,集群就是一個獨立的服務(wù)實體,但實際上,在集群的內(nèi)部,有兩個或兩個以上的服務(wù)實體在協(xié)調(diào)、配合完成一系列復(fù)雜的工作。
集群一般有兩個或兩個以上的服務(wù)器組建而成,每個服務(wù)器被稱為一個集群節(jié)點,集群節(jié)點之間可以相互通信,通信的方式有兩種,一種是基于RS232線的心跳監(jiān)控,另一種是用一塊單獨的網(wǎng)卡來跑心跳,因而,集群具有節(jié)點間服務(wù)狀態(tài)監(jiān)控功能,同時還必須具有服務(wù)實體的擴(kuò)展功能,可以靈活的增加和剔除某個服務(wù)實體。
在集群中,同樣的服務(wù)可以由多個服務(wù)實體提供。因而,當(dāng)一個節(jié)點出現(xiàn)故障時,集群的另一個節(jié)點可以自動接管故障節(jié)點的資源,從而保證服務(wù)持久、不間斷運行。因而集群具有故障自動轉(zhuǎn)移功能。
一個集群系統(tǒng)必須擁有共享的數(shù)據(jù)存儲,因為集群對外提供的服務(wù)是一致的,任何一個集群節(jié)點運行一個應(yīng)用時,應(yīng)用的數(shù)據(jù)都集中存儲在節(jié)點共享空間內(nèi),而每個節(jié)點的操作系統(tǒng)上僅運行應(yīng)用的服務(wù),同時存儲應(yīng)用程序文件。
綜上所述,構(gòu)建一個集群系統(tǒng)至少需要兩臺服務(wù)器,同時還需要有串口線、集群軟件、共享存儲設(shè)備(例如磁盤陣列)等。
基于Linux的集群以其極高的計算能力、可擴(kuò)展性、可用性及更加優(yōu)化的性價比在企業(yè)各種應(yīng)用中脫穎而出。 成為目前大家都關(guān)心的Linux應(yīng)用熱點,熟練掌握Linux集群知識,可以用低價格做出高性能的應(yīng)用。為企業(yè)、個人節(jié)省了成本。國內(nèi)大型網(wǎng)站新浪、網(wǎng)易等都采用了linux集群系統(tǒng)構(gòu)建高性能web應(yīng)用,著名搜索引擎google采用了上萬臺linux服務(wù)器組成了一個超大集群,這些實例都說明了集群在 linux應(yīng)用中的地位和重要性。#p#
二、 集群的特點與功能
2.1 高可用性與可擴(kuò)展性
1.高可用性
對于一些實時性很強的應(yīng)用系統(tǒng),必須保證服務(wù)的24小時不間斷運行,而由于軟件、硬件、網(wǎng)絡(luò)、人為等各種原因,單一的服務(wù)運行環(huán)境很難達(dá)到這種要求,此時構(gòu)建一個集群系統(tǒng)是個不錯的選擇,構(gòu)建集群的一個最大優(yōu)點是集群具有高可用性,在服務(wù)出現(xiàn)故障時,集群系統(tǒng)可以自動將服務(wù)從故障節(jié)點切換到另一個備用節(jié)點,從而提供不間斷性服務(wù),保證了業(yè)務(wù)的持續(xù)運行。
2.可擴(kuò)展性
隨著業(yè)務(wù)量的加大,現(xiàn)有的集群服務(wù)實體不能滿足需求時,可以向此集群中動態(tài)的加入一個或多個服務(wù)節(jié)點,從而滿足應(yīng)用的需要,增強集群的整體性能。這就是集群的可擴(kuò)展性。
2.2 負(fù)載均衡與錯誤恢復(fù)
1.負(fù)載均衡
集群系統(tǒng)最大的特點是可以靈活、有效的分擔(dān)系統(tǒng)負(fù)載,通過集群自身定義的負(fù)載分擔(dān)策略,將客戶端的訪問分配到下面的各個服務(wù)節(jié)點,例如,可以定義輪詢分配策略,將請求平均的分配到各個服務(wù)節(jié)點,還可以定義最小負(fù)載分配策略,當(dāng)一個請求進(jìn)來時,集群系統(tǒng)判斷哪個服務(wù)節(jié)點比較清閑,就將此請求分發(fā)到這個節(jié)點。
2.錯誤恢復(fù)
當(dāng)一個任務(wù)在一個節(jié)點上還沒有完成時,由于某種原因,執(zhí)行失敗,此時,另一個服務(wù)節(jié)點應(yīng)該能接著完成此任務(wù),這就是集群提供的錯誤恢復(fù)功能,通過錯誤的重定向,保證了每個執(zhí)行任務(wù)都能有效的完成。
2.3心跳檢測與漂移IP
1.心跳監(jiān)測
為了能實現(xiàn)負(fù)載均衡、提供高可用服務(wù)和執(zhí)行錯誤恢復(fù),集群系統(tǒng)提供了心跳監(jiān)測技術(shù),心跳監(jiān)測是通過心跳線實現(xiàn)的,可以做心跳線的設(shè)備有RS 232串口線,也可以用獨立的一塊網(wǎng)卡來跑心跳,還可以是共享磁盤陣列等,心跳線的數(shù)量應(yīng)該為集群節(jié)點數(shù)減1,需要注意的是,如果通過網(wǎng)卡來做心跳的話,每個節(jié)點需要兩塊網(wǎng)卡,其中,一塊作為私有網(wǎng)絡(luò)直接連接到對方機器相應(yīng)的網(wǎng)卡,用來監(jiān)測對方心跳。另外一塊連接到公共網(wǎng)絡(luò)對外提供服務(wù),同時心跳網(wǎng)卡和服務(wù)網(wǎng)卡的IP地址盡量不要在一個網(wǎng)段內(nèi)。心跳監(jiān)控的效率直接影響故障切換時間的長短,集群系統(tǒng)正是通過心跳技術(shù)保持著節(jié)點間的內(nèi)部有效通信。
2.漂移IP地址
在集群系統(tǒng)中,除了每個服務(wù)節(jié)點自身的真實IP地址外,還存在一個漂移IP地址,為什么說是漂移IP呢,因為這個IP地址并不固定,例如在兩個節(jié)點的雙機熱備中,正常狀態(tài)下,這個漂移IP位于主節(jié)點上,當(dāng)主節(jié)點出現(xiàn)故障后,漂移IP地址自動切換到備用節(jié)點,因此,為了保證服務(wù)的不間斷性,在集群系統(tǒng)中,對外提供的服務(wù)IP一定要是這個漂移IP地址,雖然節(jié)點本身的IP也能對外提供服務(wù),但是當(dāng)此節(jié)點失效后,服務(wù)切換到了另一個節(jié)點,但是服務(wù)IP仍然是故障節(jié)點的IP地址,此時,服務(wù)就隨之中斷。