一、什么是集群?
集群(Cluster)是由兩臺(tái)或多臺(tái)節(jié)點(diǎn)機(jī)(服務(wù)器)構(gòu)成的一種松散耦合的計(jì)算節(jié)點(diǎn)集合,為用戶提供網(wǎng)絡(luò)服務(wù)或應(yīng)用程序(包括數(shù)據(jù)庫、Web服務(wù)和文件服務(wù)等)的單一客戶視圖,同時(shí)提供接近容錯(cuò)機(jī)的故障恢復(fù)能力。集群系統(tǒng)一般通過兩臺(tái)或多臺(tái)節(jié)點(diǎn)服務(wù)器系統(tǒng)通過相應(yīng)的硬件及軟件互連,每個(gè)群集節(jié)點(diǎn)都是運(yùn)行其自己進(jìn)程的獨(dú)立服務(wù)器。這些進(jìn)程可以彼此通信,對(duì)網(wǎng)絡(luò)客戶機(jī)來說就像是形成了一個(gè)單一系統(tǒng),協(xié)同起來向用戶提供應(yīng)用程序、系統(tǒng)資源和數(shù)據(jù)。除了作為單一系統(tǒng)提供服務(wù),集群系統(tǒng)還具有恢復(fù)服務(wù)器級(jí)故障的能力。集群系統(tǒng)還可通過在集群中繼續(xù)增加服務(wù)器的方式,從內(nèi)部增加服務(wù)器的處理能力,并通過系統(tǒng)級(jí)的冗余提供固有的可靠性和可用性。
二、集群的分類:
1、高性能計(jì)算科學(xué)集群:
以解決復(fù)雜的科學(xué)計(jì)算問題為目的的IA集群系統(tǒng)。是并行計(jì)算的基礎(chǔ),它可以不使用專門的由十至上萬個(gè)獨(dú)立處理器組成的并行超級(jí)計(jì)算機(jī),而是采用通過高速連接來鏈接的一組1/2/4 CPU的IA服務(wù)器,并且在公共消息傳遞層上進(jìn)行通信以運(yùn)行并行應(yīng)用程序。這樣的計(jì)算集群,其處理能力與真正超級(jí)并行機(jī)相等,并且具有優(yōu)良的性價(jià)比。
2、負(fù)載均衡集群:
負(fù)載均衡集群為企業(yè)需求提供更實(shí)用的系統(tǒng)。該系統(tǒng)使各節(jié)點(diǎn)的負(fù)載流量可以在服務(wù)器集群中盡可能平均合理地分?jǐn)偺幚怼T撠?fù)載需要均衡計(jì)算的應(yīng)用程序處理端口負(fù)載或網(wǎng)絡(luò)流量負(fù)載。這樣的系統(tǒng)非常適合于運(yùn)行同一組應(yīng)用程序的大量用戶。每個(gè)節(jié)點(diǎn)都可以處理一部分負(fù)載,并且可以在節(jié)點(diǎn)之間動(dòng)態(tài)分配負(fù)載,以實(shí)現(xiàn)平衡。對(duì)于網(wǎng)絡(luò)流量也如此。通常,網(wǎng)絡(luò)服務(wù)器應(yīng)用程序接受了大量入網(wǎng)流量,無法迅速處理,這就需要將流量發(fā)送給在其它節(jié)點(diǎn)。負(fù)載均衡算法還可以根據(jù)每個(gè)節(jié)點(diǎn)不同的可用資源或網(wǎng)絡(luò)的特殊環(huán)境來進(jìn)行優(yōu)化。
3、高可用性集群:
為保證集群整體服務(wù)的高可用,考慮計(jì)算硬件和軟件的容錯(cuò)性。如果高可用性群集中的某個(gè)節(jié)點(diǎn)發(fā)生了故障,那么將由另外的節(jié)點(diǎn)代替它。整個(gè)系統(tǒng)環(huán)境對(duì)于用戶是一致的。實(shí)際應(yīng)用的集群系統(tǒng)中,這三種基本類型經(jīng)常會(huì)發(fā)生混合與交雜。
三、優(yōu)缺點(diǎn)描述
我們知道,集群服務(wù)器相對(duì)單臺(tái)服務(wù)器或者熱備份服務(wù)器系統(tǒng)來說,都具有非常明顯的優(yōu)勢(shì)。同時(shí),它與其他服務(wù)器擴(kuò)展技術(shù)相比,也具有較強(qiáng)優(yōu)勢(shì)。如與廣泛采用的SMP技術(shù)相比,集群技術(shù)更易于實(shí)現(xiàn),開發(fā)周期短,而且造價(jià)低,可擴(kuò)展性遠(yuǎn)遠(yuǎn)超過了SMP,在一個(gè)集群中可以很輕松地支持256個(gè)以上的CPU。
綜合起來看,使用集群技術(shù)的好處主要有以下幾個(gè)方面:
1、強(qiáng)擴(kuò)展能力:其他擴(kuò)展技術(shù),通常僅能支幾十個(gè)CPU的擴(kuò)展,擴(kuò)展能力有限,而采用集群技術(shù)的集群系統(tǒng)則可以擴(kuò)展到包括成百上千個(gè)CPU的多臺(tái)服務(wù)穗,擴(kuò)展能力具有明顯優(yōu)勢(shì)。集群服務(wù)還可不斷進(jìn)行調(diào)整,以滿足不斷增長的應(yīng)用需求。當(dāng)集群的整體負(fù)荷超過集群的實(shí)際能力時(shí),還可以添加額外的節(jié)點(diǎn)。
2、實(shí)現(xiàn)方式容易:服務(wù)器集群技術(shù)相對(duì)其他擴(kuò)展技術(shù)來說更加容易實(shí)現(xiàn),主要是通過軟件進(jìn)行的。在硬件上可以把多臺(tái)性能較低、價(jià)格便宜的服務(wù)器,通過集群服務(wù)集中連接在一起即可實(shí)現(xiàn)整個(gè)服務(wù)器系統(tǒng)成倍,甚至幾十幾百倍地增長。無論是從軟硬件構(gòu)成成本上來看,還是從技術(shù)實(shí)現(xiàn)成本上來看,都較其他擴(kuò)展方式更低。
3、高可用性:使用集群服務(wù)擁有整個(gè)集群系統(tǒng)資源的所有權(quán),如磁盤驅(qū)動(dòng)器和IP地址將自動(dòng)地從有故障的服務(wù)器上轉(zhuǎn)移到可用的服務(wù)器上。當(dāng)集群中的系統(tǒng)或應(yīng)用程序出現(xiàn)故障時(shí),集群軟件將在可用的服務(wù)器上重啟失效的應(yīng)用程序,或?qū)⑹Ч?jié)點(diǎn)上的工作分配到剩余的節(jié)點(diǎn)上。在切換過程中,用戶只是覺得服務(wù)暫時(shí)停頓了一下。
4、易管理性:可使用集群管理器來管理集群系統(tǒng)的所有服務(wù)器資源和應(yīng)用程序,就像它們都運(yùn)行在同一個(gè)服務(wù)器上一樣。可以通過拖放集群對(duì)象,在集群里的不同服務(wù)器間移動(dòng)應(yīng)用程序,也可以通過同樣的方式移動(dòng)數(shù)據(jù),還可以通過這種方式來手工地平衡服務(wù)器負(fù)荷、卸載服務(wù)器,從而方便地進(jìn)行維護(hù)。同時(shí),還可以從網(wǎng)絡(luò)的任意地方的節(jié)點(diǎn)和資源處,監(jiān)視集群的狀態(tài)。當(dāng)失效的服務(wù)器連回來時(shí),將自動(dòng)返回工作狀態(tài),集群技術(shù)將自動(dòng)在集群中平衡負(fù)荷,而不需要人工干預(yù)。
集群系統(tǒng)的不足之處在于:
我們知道集群中的應(yīng)用只在一臺(tái)服務(wù)器上運(yùn)行,如果這個(gè)應(yīng)用出現(xiàn)故障,其它的某臺(tái)服務(wù)器會(huì)重新啟動(dòng)這個(gè)應(yīng)用,接管位于共享磁盤柜上的數(shù)據(jù)區(qū),進(jìn)而使應(yīng)用重新正常運(yùn)轉(zhuǎn)。不過,整個(gè)應(yīng)用的接管過程大體需要三個(gè)步驟:偵測(cè)并確認(rèn)故障、后備服務(wù)器重新啟動(dòng)該應(yīng)用、接管共享的數(shù)據(jù)區(qū),因此在切換的過程中需要花費(fèi)一定的時(shí)間,原則上根據(jù)應(yīng)用的大小不同切換的時(shí)間也會(huì)不同,越大的應(yīng)用切換的時(shí)間越長。