一级a性色生活片久久无_国产女精品视频网站免费_野狼自幕无线码中文字_亚洲综合色色_岛国av无码人妻水多a片_国产麻精品自在在线午夜_最近最新2019中文免费_欧美情趣综合网在线观看免费

通用模板產(chǎn)品型

咨詢熱線:400-000-0000

详细内容

Linux高性能計(jì)算集群 -- Beowulf集群

集群

1.1 什么是集群

簡(jiǎn)單的說(shuō),集群(cluster)就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn)(node)。一個(gè)理想的集群是,用戶從來(lái)不會(huì)意識(shí)到集群系統(tǒng)底層的節(jié)點(diǎn),在他/她們看來(lái),集群是一個(gè)系統(tǒng),而非多個(gè)計(jì)算機(jī)系統(tǒng)。并且集群系統(tǒng)的管理員可以隨意增加和刪改集群系統(tǒng)的節(jié)點(diǎn)。

1.2 為什么需要集群

集群并不是一個(gè)全新的概念,其實(shí)早在七十年代計(jì)算機(jī)廠商和研究機(jī)構(gòu)就開(kāi)始了對(duì)集群系統(tǒng)的研究和開(kāi)發(fā)。由于主要用于科學(xué)工程計(jì)算,所以這些系統(tǒng)并不為大家所熟知。直到Linux集群的出現(xiàn),集群的概念才得以廣為傳播。

對(duì)集群的研究起源于集群系統(tǒng)的良好的性能可擴(kuò)展性(scalability)。提高CPU主頻和總線帶寬是最初提供計(jì)算機(jī)性能的主要手段。但是這一手段對(duì)系統(tǒng)性能的提供是有限的。接著人們通過(guò)增加CPU個(gè)數(shù)和內(nèi)存容量來(lái)提高性能,于是出現(xiàn)了向量機(jī),對(duì)稱(chēng)多處理機(jī)(SMP)等。但是當(dāng)CPU的個(gè)數(shù)超過(guò)某一閾值,象SMP這些多處理機(jī)系統(tǒng)的可擴(kuò)展性就變的極差。主要瓶頸在于CPU訪問(wèn)內(nèi)存的帶寬并不能隨著CPU個(gè)數(shù)的增加而有效增長(zhǎng)。與SMP相反,集群系統(tǒng)的性能隨著CPU個(gè)數(shù)的增加幾乎是線性變化的。圖1顯示了這中情況。

圖1. 幾種計(jì)算機(jī)系統(tǒng)的可擴(kuò)展性
1. 幾種計(jì)算機(jī)系統(tǒng)的可擴(kuò)展性

集群系統(tǒng)的優(yōu)點(diǎn)并不僅在于此。下面列舉了集群系統(tǒng)的主要優(yōu)點(diǎn):

1.       高可擴(kuò)展性:如上所述。

2.       高可用性:集群中的一個(gè)節(jié)點(diǎn)失效,它的任務(wù)可以傳遞給其他節(jié)點(diǎn)。可以有效防止單點(diǎn)失效。

3.       高性能:負(fù)載平衡集群允許系統(tǒng)同時(shí)接入更多的用戶。

4.       高性價(jià)比:可以采用廉價(jià)的符合工業(yè)標(biāo)準(zhǔn)的硬件構(gòu)造高性能的系統(tǒng)。

1.2.1 集群系統(tǒng)的分類(lèi)

雖然 根據(jù)集群系統(tǒng)的不同特征可以有多種分類(lèi)方法,但是一般我們把集群系統(tǒng)分為兩類(lèi):

  • 高可用(High Availability)集群,簡(jiǎn)稱(chēng)HA集群。這類(lèi)集群致力于提供高度可靠的服務(wù)。

  • 高性能計(jì)算(High Perfermance Computing)集群,簡(jiǎn)稱(chēng)HPC集群。這類(lèi)集群致力于提供單個(gè)計(jì)算機(jī)所不能提供的強(qiáng)大的計(jì)算能力。

高可用集群

2.1 什么是高可用性

計(jì)算機(jī)系統(tǒng)的可用性(availability)是通過(guò)系統(tǒng)的可靠性(reliability)和可維護(hù)性(maintainability)來(lái)度量的。工程上通常用平均無(wú)故障時(shí)間(MTTF)來(lái)度量系統(tǒng)的可靠性,用平均維修時(shí)間(MTTR)來(lái)度量系統(tǒng)的可維護(hù)性。于是可用性被定義為:

MTTF/(MTTF+MTTR)*100%

業(yè)界根據(jù)可用性把計(jì)算機(jī)系統(tǒng)分為如下幾類(lèi):

可用比例
(Percent Availability)

年停機(jī)時(shí)間
(downtime/year)

可用性分類(lèi)

99.5

3.7

常規(guī)系統(tǒng)(Conventional)

99.9

8.8小時(shí)

可用系統(tǒng)(Available)

99.99

52.6分鐘

高可用系統(tǒng)(Highly Available)

99.999

5.3分鐘

Fault Resilient

99.9999

32

Fault Tolerant


1. 系統(tǒng)可用性分類(lèi)

對(duì)于關(guān)鍵業(yè)務(wù),停機(jī)通常是災(zāi)難性的。因?yàn)橥C(jī)帶來(lái)的損失也是巨大的。下面的統(tǒng)計(jì)數(shù)字列舉了不同類(lèi)型企業(yè)應(yīng)用系統(tǒng)停機(jī)所帶來(lái)的損失。

應(yīng)用系統(tǒng)

每分鐘損失(美元)

呼叫中心(Call Center)

27000

企業(yè)資源計(jì)劃(ERP)系統(tǒng)

13000

供應(yīng)鏈管理(SCM)系統(tǒng)

11000

電子商務(wù)(eCommerce)系統(tǒng)

10000

客戶服務(wù)(Customer Service Center)系統(tǒng)

27000


 2. 停機(jī)給企業(yè)帶來(lái)的損失

隨著企業(yè)越來(lái)越依賴于信息技術(shù),由于系統(tǒng)停機(jī)而帶來(lái)的損失也越拉越大。

2.2 高可用集群

高可用集群就是采用集群技術(shù)來(lái)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的高可用性。高可用集群通常有兩種工作方式:

  • 容錯(cuò)系統(tǒng):通常是主從服務(wù)器方式。從服務(wù)器檢測(cè)主服務(wù)器的狀態(tài),當(dāng)主服務(wù)工作正常時(shí),從服務(wù)器并不提供服務(wù)。但是一旦主服務(wù)器失效,從服務(wù)器就開(kāi)始代替主服務(wù)器向客戶提供服務(wù)。

  • 負(fù)載均衡系統(tǒng):集群中所有的節(jié)點(diǎn)都處于活動(dòng)狀態(tài),它們分?jǐn)傁到y(tǒng)的工作負(fù)載。一般Web服務(wù)器集群、數(shù)據(jù)庫(kù)集群和應(yīng)用服務(wù)器集群都屬于這種類(lèi)型。

關(guān)于高可用集群的討論很多,這里就不進(jìn)行深入的闡述了。

高性能計(jì)算集群

3.1 什么是高性能計(jì)算集群

簡(jiǎn)單的說(shuō),高性能計(jì)算(High-Performance Computing)是計(jì)算機(jī)科學(xué)的一個(gè)分支,它致力于開(kāi)發(fā)超級(jí)計(jì)算機(jī),研究并行算法和開(kāi)發(fā)相關(guān)軟件。高性能計(jì)算主要研究如下兩類(lèi)問(wèn)題:

  • 大規(guī)模科學(xué)問(wèn)題,象天氣預(yù)報(bào)、地形分析和生物制藥等;

  • 存儲(chǔ)和處理海量數(shù)據(jù),象數(shù)據(jù)挖掘、圖象處理和基因測(cè)序;

顧名思義,高性能集群就是采用集群技術(shù)來(lái)研究高性能計(jì)算。

3.2 高性能計(jì)算分類(lèi)

高性能計(jì)算的分類(lèi)方法很多。這里從并行任務(wù)間的關(guān)系角度來(lái)對(duì)高性能計(jì)算分類(lèi)。

3.2.1 高吞吐計(jì)算(High-throughput Computing)

有一類(lèi)高性能計(jì)算,可以把它分成若干可以并行的子任務(wù),而且各個(gè)子任務(wù)彼此間沒(méi)有什么關(guān)聯(lián)。象在家搜尋外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是這一類(lèi)型應(yīng)用。這一項(xiàng)目是利用Internet上的閑置的計(jì)算資源來(lái)搜尋外星人。SETI項(xiàng)目的服務(wù)器將一組數(shù)據(jù)和數(shù)據(jù)模式發(fā)給Internet上參加SETI的計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)在給定的數(shù)據(jù)上用給定的模式進(jìn)行搜索,然后將搜索的結(jié)果發(fā)給服務(wù)器。服務(wù)器負(fù)責(zé)將從各個(gè)計(jì)算節(jié)點(diǎn)返回的數(shù)據(jù)匯集成完整的數(shù)據(jù)。因?yàn)檫@種類(lèi)型應(yīng)用的一個(gè)共同特征是在海量數(shù)據(jù)上搜索某些模式,所以把這類(lèi)計(jì)算稱(chēng)為高吞吐計(jì)算。所謂的Internet計(jì)算都屬于這一類(lèi)。按照Flynn的分類(lèi),高吞吐計(jì)算屬于SIMDSingle Instruction/Multiple Data)的范疇。

3.2.2 分布計(jì)算(Distributed Computing)

另一類(lèi)計(jì)算剛好和高吞吐計(jì)算相反,它們雖然可以給分成若干并行的子任務(wù),但是子任務(wù)間聯(lián)系很緊密,需要大量的數(shù)據(jù)交換。按照Flynn的分類(lèi),分布式的高性能計(jì)算屬于MIMDMultiple Instruction/Multiple Data)的范疇。

3.3 Linux高性能集群系統(tǒng)

當(dāng)論及Linux高性能集群時(shí),許多人的第一反映就是Beowulf。起初,Beowulf只是一個(gè)著名的科學(xué)計(jì)算集群系統(tǒng)。以后的很多集群都采用Beowulf類(lèi)似的架構(gòu),所以,實(shí)際上,現(xiàn)在Beowulf已經(jīng)成為一類(lèi)廣為接受的高性能集群的類(lèi)型。盡管名稱(chēng)各異,很多集群系統(tǒng)都是Beowulf集群的衍生物。當(dāng)然也存在有別于Beowulf的集群系統(tǒng),COWMosix就是另兩類(lèi)著名的集群系統(tǒng)。

3.3.1 Beowulf集群

簡(jiǎn)單的說(shuō),Beowulf是一種能夠?qū)⒍嗯_(tái)計(jì)算機(jī)用于并行計(jì)算的體系結(jié)構(gòu)。通常Beowulf系統(tǒng)由通過(guò)以太網(wǎng)或其他網(wǎng)絡(luò)連接的多個(gè)計(jì)算節(jié)點(diǎn)和管理節(jié)點(diǎn)構(gòu)成。管理節(jié)點(diǎn)控制整個(gè)集群系統(tǒng),同時(shí)為計(jì)算節(jié)點(diǎn)提供文件服務(wù)和對(duì)外的網(wǎng)絡(luò)連接。它使用的是常見(jiàn)的硬件設(shè)備,象普通PC、以太網(wǎng)卡和集線器。它很少使用特別定制的硬件和特殊的設(shè)備。Beowulf集群的軟件也是隨處可見(jiàn)的,象LinuxPVMMPI

本文的以后幾部分將詳細(xì)介紹Beowulf集群系統(tǒng)的硬件、網(wǎng)絡(luò)、軟件和應(yīng)用體系結(jié)構(gòu)。

3.3.2 Beowulf集群和COW集群

Beowulf一樣,COWCluster Of Workstation)也是由最常見(jiàn)的硬件設(shè)備和軟件系統(tǒng)搭建而成。通常也是由一個(gè)控制節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn)構(gòu)成。COWBeowulf的主要區(qū)別在于:

1.       COW中的計(jì)算節(jié)點(diǎn)主要都是閑置的計(jì)算資源,如辦公室中的桌面工作站,它們就是普通的PC,采用普通的局域網(wǎng)進(jìn)行連接。因?yàn)檫@些計(jì)算節(jié)點(diǎn)白天會(huì)作為工作站使用,所以主要的集群計(jì)算發(fā)生在晚上和周末等空閑時(shí)間。而Beowulf中的計(jì)算節(jié)點(diǎn)都是專(zhuān)職于并行計(jì)算,并且進(jìn)行了性能優(yōu)化。它們采用高速網(wǎng)(MyrinetGiganet)上的消息傳遞(PVMMPI)進(jìn)行進(jìn)程間通信(IPC)。

2.       因?yàn)?/span>COW中的計(jì)算節(jié)點(diǎn)主要的目的是桌面應(yīng)用,所以它們都具有顯示器、鍵盤(pán)和鼠標(biāo)等外設(shè)。而Beowulf的計(jì)算節(jié)點(diǎn)通常沒(méi)有這些外設(shè),對(duì)這些計(jì)算節(jié)點(diǎn)的訪問(wèn)通常是在管理節(jié)點(diǎn)上通過(guò)網(wǎng)絡(luò)或串口線實(shí)現(xiàn)的。

3.       因?yàn)檫B接COW中計(jì)算節(jié)點(diǎn)的通常是普通的局域網(wǎng),所以COW上的高性能應(yīng)用通常是象SETI@HOME 這樣的SIMD的高吞吐計(jì)算。而Beowulf無(wú)論從硬件、網(wǎng)絡(luò)和軟件上都對(duì)需要頻繁交換數(shù)據(jù)的MIMD應(yīng)用做了特別的優(yōu)化。

3.3.3 Mosix集群

實(shí)際上把Mosix集群放在高性能集群這一節(jié)是相當(dāng)牽強(qiáng)的,但是和Beowulf等其他集群相比, Mosix集群確實(shí)是種非常特別的集群, 它致力于在Linux系統(tǒng)上實(shí)現(xiàn)集群系統(tǒng)的單一系統(tǒng)映象SSI(Single System Image)Mosix集群將網(wǎng)絡(luò)上運(yùn)行Linux的計(jì)算機(jī)連接成一個(gè)集群系統(tǒng)。系統(tǒng)自動(dòng)均衡節(jié)點(diǎn)間的負(fù)載。因?yàn)?/span>Mosix是在Linux系統(tǒng)內(nèi)核中實(shí)現(xiàn)的集群,所以用戶態(tài)的應(yīng)用程序不需要任何修改就可以在Mosix集群上運(yùn)行。通常用戶很少會(huì)注意到LinuxMosix的差別。對(duì)于他來(lái)說(shuō),Mosix集群就是運(yùn)行Linux的一臺(tái)PC。盡管現(xiàn)在存在著不少的問(wèn)題,Mosix始終是引人注目的集群系統(tǒng)。

 

什么是Beowulf集群

Beowulf是現(xiàn)存的最古老的英語(yǔ)史詩(shī):

Famed was this Beowulf: far ew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan.

它歌頌了一個(gè)英雄,他擁有強(qiáng)壯的體魄和無(wú)人倫比的勇氣。他最終戰(zhàn)勝了魔鬼Grendel. 你可以在http://legends.dm.net/beowulf/index.html找到這首史詩(shī)。

我們所說(shuō)的Beowulf首先是一個(gè)象史詩(shī)中英雄一樣強(qiáng)大的集群系統(tǒng)。在1994年夏季,Thomas SterlingDon BeckerCESDIS(The Center of Excellence in Space Data and Information Sciences)16個(gè)節(jié)點(diǎn)和以太網(wǎng)組成了一個(gè)計(jì)算機(jī)集群系統(tǒng),并將這個(gè)系統(tǒng)命名為BeowulfBeowulf集群。Beowulf集群提供了一種使用COTS(Commodity off the shelf)硬件構(gòu)造集群系統(tǒng)以滿足特殊的計(jì)算需求的方法。這里的COTS是指象PC和以太網(wǎng)這種廣為應(yīng)用的標(biāo)準(zhǔn)設(shè)備,它們通常可以由多家廠商提供,所以通常有很高的性價(jià)比。Beowulf集群這種方法很快從NASA傳遍了整個(gè)科研機(jī)構(gòu)和社團(tuán)。實(shí)際上,Beowulf集群現(xiàn)在已被人們看作高性能計(jì)算中的一個(gè)分支或流派。

因?yàn)閹缀趺總(gè)Beowulf集群的設(shè)計(jì)者都有自己的Beowulf集群的定義,恐怕很難給Beowulf集群下一個(gè)確切的定義。一些人認(rèn)為只有那些采用和原始的Beowulf集群系統(tǒng)一樣方法構(gòu)建的系統(tǒng)才叫Beowulf集群。而另一些人則認(rèn)為凡是能夠在多個(gè)工作站上運(yùn)行并行代碼的系統(tǒng)都稱(chēng)為Beowulf集群。這里我們只是列舉多數(shù)Beowulf集群具有的特征作為Beowulf集群的定義:

  • Beowulf是一種系統(tǒng)結(jié)構(gòu),它使得多個(gè)計(jì)算機(jī)組成的系統(tǒng)能夠用于并行計(jì)算。

  • Beowulf系統(tǒng)通常有一個(gè)管理節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn)構(gòu)成。它們通過(guò)以太網(wǎng)(或其他網(wǎng)絡(luò))連接。管理節(jié)點(diǎn)監(jiān)控計(jì)算節(jié)點(diǎn),通常也是計(jì)算節(jié)點(diǎn)的網(wǎng)關(guān)和控制終端。當(dāng)然它通常也是集群系統(tǒng)文件服務(wù)器。在大型的集群系統(tǒng)中,由于特殊的需求,這些管理節(jié)點(diǎn)的功能也可能由多個(gè)節(jié)點(diǎn)分?jǐn)偂?/span>

  • Beowulf系統(tǒng)通常由最常見(jiàn)的硬件設(shè)備組成,例如,PC、以太網(wǎng)卡和以太網(wǎng)交換機(jī)。Beowulf系統(tǒng)很少包含用戶定制的特殊設(shè)備。

  • Beowulf系統(tǒng)通常采用那些廉價(jià)且廣為傳播的軟件,例如,Linux操作系統(tǒng)、并行虛擬機(jī)(PVM)和消息傳遞接口(MPI)

2 Beowulf集群的分類(lèi)

由于一些特殊的目的如系統(tǒng)性能,有些Beowulf集群系統(tǒng)也采用一些用戶定制的設(shè)備(它們通常由一家廠商提供)。為了區(qū)分這些特殊的系統(tǒng),通常把Beowulf分為兩大類(lèi):

2.1 第一類(lèi)Beowulf集群(CLASS I Beowulf)

這一類(lèi)Beowulf集群全部由COTS設(shè)備組成。第一類(lèi)Beowulf系統(tǒng)的優(yōu)點(diǎn)是:

  • 硬件設(shè)備由多個(gè)來(lái)源,通常具有廉價(jià)和易管理維護(hù)的特點(diǎn)。

  • 不依賴于單個(gè)硬件供應(yīng)商

  • 所有設(shè)備驅(qū)動(dòng)都由Linux開(kāi)發(fā)社團(tuán)提供

  • 通常都是標(biāo)準(zhǔn)設(shè)備,例如,SCSI、以太網(wǎng)等等

當(dāng)然第一類(lèi)Beowulf集群的缺點(diǎn)也是非常顯然的。由于所采用的硬件都沒(méi)有經(jīng)過(guò)性能優(yōu)化,所以其很難達(dá)到很好的性能。比如,由于以太網(wǎng)的高延遲和低帶寬使得集群系統(tǒng)中消息傳遞很難達(dá)到MIMD應(yīng)用的需求,從而使整個(gè)集群系統(tǒng)的計(jì)算能力大打折扣。

2.2 第二類(lèi)Beowulf集群(CLASS II Beowulf)

第二類(lèi)Beowulf集群是指那些采用了用戶定制設(shè)備的Beowulf集群。這類(lèi)集群系統(tǒng)最大優(yōu)點(diǎn)是具有很好的性能。例如,采用Myrinet作為集群系統(tǒng)的IPC網(wǎng)絡(luò)可以極大地提供進(jìn)程間消息傳遞延遲和速度。當(dāng)然它的缺點(diǎn)就是依賴于單個(gè)硬件提供商而且價(jià)格高昂。

不能說(shuō),哪一類(lèi)集群絕對(duì)優(yōu)于另一類(lèi)集群。這依賴于你的集群系統(tǒng)的需求和預(yù)算。

3 Beowulf集群體系結(jié)構(gòu)

如上所述,現(xiàn)實(shí)中存在形形色色的Beowulf集群。雖然它們都是原始Beowulf集群的衍生物,但是它們的體系結(jié)構(gòu)也存在各種各樣微小的差異。本文以IBM eServer Cluster 1300為例來(lái)闡述Beowulf集群體系結(jié)構(gòu)和系統(tǒng)組成。

圖1是Cluster 1300上Beowulf集群的系統(tǒng)視圖
1Cluster 1300Beowulf集群的系統(tǒng)視圖

1Cluster 1300Beowulf集群的系統(tǒng)視圖。無(wú)論是管理節(jié)點(diǎn)(Master Node)和計(jì)算節(jié)點(diǎn)都是Intel IA32架構(gòu)的xSeries PC服務(wù)器。它們通過(guò)網(wǎng)絡(luò)(以太網(wǎng)和Myrinet)相連接。所有的節(jié)點(diǎn)都運(yùn)行Linux操作系統(tǒng)。運(yùn)行在計(jì)算節(jié)點(diǎn)上的并行應(yīng)用程序采用MPI進(jìn)行完成并行進(jìn)程間的通信。計(jì)算節(jié)點(diǎn)通過(guò)管理節(jié)點(diǎn)和外部LAN相連。整個(gè)集群系統(tǒng)都在一套集群管理工具監(jiān)控之下。

圖 2 Cluster1300上Beowlf集群組件
 2 Cluster1300Beowlf集群組件

 2  Cluster 1300Beowulf集群的組件視圖。它揭示了Beowulf集群的組成部分。通常Beowulf集群由四個(gè)層次構(gòu)成:

  • 硬件:主要是指Intel IA32架構(gòu)的PC服務(wù)器。

  • 網(wǎng)絡(luò):指用于節(jié)點(diǎn)間通信的局域網(wǎng)(普通的以太網(wǎng))和并行進(jìn)程間通信的高速網(wǎng)(Myrinet等高速網(wǎng))

  • 軟件:主要指Linux操作系統(tǒng)和用于并行通信的并行編程庫(kù)(MPIPVM)

  • 并行應(yīng)用

本文的下面三個(gè)小節(jié)將分別介紹這四個(gè)層次。而本系列文章的后面兩片將更詳細(xì)的介紹它們。

3.1 Beowulf集群硬件和網(wǎng)絡(luò)

Beowulf集群硬件和網(wǎng)絡(luò)層次需要解決的問(wèn)題是如何組織硬件使其達(dá)到最高的性價(jià)比。為了達(dá)到很好的性價(jià)比,Beowulf通常采用廉價(jià)的COTS硬件。當(dāng)然有時(shí)為了提供某些關(guān)鍵的性能,也會(huì)使用一些特殊的設(shè)備。

從硬件組織的角度說(shuō),Beowulf集群中的節(jié)點(diǎn)都是非共享內(nèi)存的計(jì)算機(jī),它們通過(guò)消息傳遞進(jìn)行通信。實(shí)際上,我們還有其他組織硬件完成并行計(jì)算的方式。

簡(jiǎn)單地說(shuō),有兩種組織硬件完成并行計(jì)算的方法:

  • 通過(guò)消息傳遞通信的本地內(nèi)存(非共享內(nèi)存)計(jì)算機(jī)系統(tǒng) (Beowulf集群)

  • 通過(guò)內(nèi)存訪問(wèn)通信的共享內(nèi)存計(jì)算機(jī)系統(tǒng) (SMP計(jì)算機(jī))

當(dāng)然也存在將多個(gè)本地或共享內(nèi)存計(jì)算機(jī)相連并創(chuàng)造一個(gè)混和的共享內(nèi)存計(jì)算機(jī)系統(tǒng)的可能。但在最終用戶看來(lái),這種計(jì)算機(jī)系統(tǒng)就好像一個(gè)大型的共享內(nèi)存計(jì)算機(jī)。這種技術(shù)被我們叫做非一致內(nèi)存訪問(wèn)NUMA(Non Uniform Memory Access)。但是從底層說(shuō),一個(gè)NUMA計(jì)算機(jī)系統(tǒng)必須在節(jié)點(diǎn)間傳遞消息。

當(dāng)然也可以將共享內(nèi)存計(jì)算機(jī)作為一個(gè)本地內(nèi)存的計(jì)算機(jī)連入一個(gè)Beowulf集群系統(tǒng)。由于Linux系統(tǒng)支持SMP計(jì)算機(jī),所以Linux系統(tǒng)本身能夠在SMP中的多個(gè)CPU上調(diào)度作業(yè)。所以Beowulf集群本身就沒(méi)有必要識(shí)別集群的節(jié)點(diǎn)是不是共享內(nèi)存計(jì)算機(jī)了。

SMP系統(tǒng)相比,集群系統(tǒng)有明顯的優(yōu)點(diǎn)。關(guān)于這一點(diǎn)請(qǐng)參閱本系列文章的第一篇。

因?yàn)?/span>Beowulf集群采用消息傳遞完成并行程序間通信,所以網(wǎng)絡(luò)傳輸成了系統(tǒng)的瓶頸。在實(shí)際的系統(tǒng)中,通常采用有兩套彼此的獨(dú)立的網(wǎng)絡(luò)設(shè)備。一套是普通的以太網(wǎng),用于象系統(tǒng)管理和文件服務(wù)等普通的網(wǎng)絡(luò)通信。另一套網(wǎng)絡(luò)是用于進(jìn)程間通信的高速網(wǎng),象MyrinetGiganet。和100M以太網(wǎng)相比,這類(lèi)網(wǎng)絡(luò)具有低延遲和高帶寬的特性。

還有三類(lèi)設(shè)備雖然不是必須,但是對(duì)于集群管理卻是非常重要的:

  • KVM SwitherKVM是指KeyboardVideoMouse。這個(gè)設(shè)備可以讓系統(tǒng)管理員用一套KVM管理系統(tǒng)中的所有節(jié)點(diǎn)。

  • 遠(yuǎn)程電源管理設(shè)備(ASM):這類(lèi)設(shè)備使得管理員可以在管理節(jié)點(diǎn)Power on/off其他節(jié)點(diǎn)。

  • Terminal Server:這種設(shè)備通過(guò)串口將節(jié)點(diǎn)連接起來(lái)。通過(guò)這個(gè)設(shè)備,管理員可以在管理節(jié)點(diǎn)上虛擬出其他節(jié)點(diǎn)上的控制終端。和KVM相比,這種方法不需要硬件的切換。

3.2 Beowulf集群軟件

Beowulf集群在軟件層次面臨的問(wèn)題是如何在硬件層次上獲得最大的性能。通常,Beowulf集群采用Linux+MPI的方式支持并行計(jì)算。MPI是采用消息傳遞的方式實(shí)現(xiàn)并行程序間通信。雖然也可以采用其他的通信方法,但是消息傳遞模式是最適合于集群系統(tǒng)的。簡(jiǎn)單地說(shuō),有兩種在并行程序間傳遞并發(fā)的方法:

  • 使用處理器間的消息傳遞(MPI)

  • 使用操作系統(tǒng)的線程(Thread)

其他的方法也存在,但是這兩種方法應(yīng)用得最廣泛。雖然存在效率和移植的問(wèn)題,這兩種方法都可以在SMPNUMACluster上實(shí)現(xiàn)。

消息傳遞需要在CPU間拷貝數(shù)據(jù),而線程卻可以在CPU間共享數(shù)據(jù)。數(shù)據(jù)拷貝的速度和延遲是影響消息傳遞效率的最關(guān)鍵的因素。PVMMPI是最常用的兩種消息傳遞API。消息傳遞也可以在線程上實(shí)現(xiàn),并且消息傳遞即可以用于集群系統(tǒng),也可以用于SMP系統(tǒng)。和線程相比,在SMP系統(tǒng)上使用消息傳遞的優(yōu)點(diǎn)在于可以很方便的把SMP上的應(yīng)用移植到集群系統(tǒng)上。

線程的最大特點(diǎn)是,線程間是共享數(shù)據(jù)。因此它在SMP系統(tǒng)上工作的更好。而且Linux本身也是支持Posix線程的。但是使用線程的最大缺點(diǎn)在于,很難將線程擴(kuò)展到SMP系統(tǒng)以外。雖然NUMA技術(shù)可以高效的做到這一點(diǎn),但是那非常昂貴而且Linux本身也不支持。

下表概括了線程和消息傳遞在SMP和集群系統(tǒng)上的比較:


SMP系統(tǒng)性能

集群系統(tǒng)性能

擴(kuò)展性

消息傳遞

很好

很好

線程

很好

*


*
需要昂貴的NUMA技術(shù)

3.3 Beowulf集群應(yīng)用

Beowulf集群的應(yīng)用層次位于硬件和軟件層次之上。它要解決的問(wèn)題是如何在實(shí)際的集群系統(tǒng)中并行化(PARALLEL)應(yīng)用中的并發(fā)(CONCURRENT)部分,從而使集群上的應(yīng)用達(dá)到最好的性能。

在闡述這部分之前,我們需要區(qū)分兩個(gè)概念: PARALLELCONCURRENT。程序的并發(fā)(CONCURRENT)部分是指程序中可以獨(dú)立計(jì)算的部分。程序的并行(PARALLEL)部分是指程序中在同一時(shí)間被分別執(zhí)行的并發(fā)(CONCURRENT)部分。

它們的區(qū)別是很重要的。并發(fā)是程序本身的屬性,而并行是計(jì)算機(jī)系統(tǒng)的屬性。并行的目的是獲得很好的性能。限制并行性能的因素是計(jì)算節(jié)點(diǎn)間通信的速度和延遲。大部分的Benchmark都有很高的并行性并且通信和延遲不是什么瓶頸。但是其他應(yīng)用卻沒(méi)有這么簡(jiǎn)單。對(duì)于這些應(yīng)用,有時(shí)候使并發(fā)部分并行執(zhí)行反而可能使應(yīng)用性能更低。簡(jiǎn)單的說(shuō),除非附加的通信時(shí)間代價(jià)小于并發(fā)節(jié)約的計(jì)算時(shí)間,否則并行執(zhí)行反而會(huì)降低效率。

程序員的任務(wù)就是決定哪些并發(fā)的部分需要并行執(zhí)行,而哪些不應(yīng)該并行執(zhí)行。這些決定最終會(huì)影響應(yīng)用程序的執(zhí)行效率。圖3描述了實(shí)際應(yīng)用中程序并發(fā)部分和通信計(jì)算時(shí)間比的關(guān)系。

在理想的系統(tǒng)中,通信計(jì)算時(shí)間比應(yīng)該是恒定的。任何并發(fā)部分都應(yīng)該實(shí)現(xiàn)為并行。不幸的是,實(shí)際的系統(tǒng),包括SMP系統(tǒng),都是圖3所示的那樣。所以在設(shè)計(jì)Beowulf集群應(yīng)用時(shí),必須認(rèn)識(shí)到并發(fā)帶來(lái)的效率依賴于在該系統(tǒng)上通信處理時(shí)間比。也正是因?yàn)檫@個(gè)原因,雖然可以把應(yīng)用移植到另一個(gè)并發(fā)系統(tǒng)上,但是并不能保證應(yīng)用在被移植的系統(tǒng)上仍然是高效的。一般來(lái)說(shuō),不存在可移植的且高效的應(yīng)用程序。

同樣的道理,使用更快的CPU也可能使你的應(yīng)用變慢。

1 Beowulf集群硬件和網(wǎng)絡(luò)體系結(jié)構(gòu)

圖 1是Cluster 1300的硬件和網(wǎng)絡(luò)體系結(jié)構(gòu)圖

 1Cluster 1300的硬件和網(wǎng)絡(luò)體系結(jié)構(gòu)圖。從圖中可以看出,整個(gè)系統(tǒng)由5類(lèi)計(jì)算或網(wǎng)絡(luò)設(shè)備和5類(lèi)網(wǎng)絡(luò)組成。這5類(lèi)設(shè)備是:

  • 主控制節(jié)點(diǎn)(Control Node)

  • 計(jì)算節(jié)點(diǎn)

  • 以太網(wǎng)交換機(jī)(Ethernet Switch)

  • Myrinet交換機(jī)

  • Terminal Server

5類(lèi)網(wǎng)絡(luò)是:

  • 集群局域網(wǎng)(Cluster VLAN藍(lán)色)

  • 管理網(wǎng)絡(luò)(Management VLAN 右邊綠色)

  • IPC網(wǎng)絡(luò)(IPC VLAN 棕色)

  • Terminal網(wǎng)絡(luò)(灰色)

  • Service Processor網(wǎng)絡(luò)(左邊綠色)

本文的以下部分將介紹這些設(shè)備和網(wǎng)絡(luò)的角色,功能和一般的配置。

2 Beowulf集群中的節(jié)點(diǎn)

這一節(jié)主要介紹Beowulf集群中的節(jié)點(diǎn),節(jié)點(diǎn)的類(lèi)型和相應(yīng)的功能。根據(jù)功能,我們可以把集群中的節(jié)點(diǎn)劃分為6種類(lèi)型:

  • 用戶節(jié)點(diǎn)(User Node)

  • 控制節(jié)點(diǎn)(Control Node)

  • 管理節(jié)點(diǎn)(Management Node)

  • 存儲(chǔ)節(jié)點(diǎn)(Storage Node)

  • 安裝節(jié)點(diǎn)(Installation Node)

  • 計(jì)算節(jié)點(diǎn)(Compute Node)

雖然由多種類(lèi)型的節(jié)點(diǎn),但并不是說(shuō)一臺(tái)計(jì)算機(jī)只能是一種類(lèi)型的節(jié)點(diǎn)。一臺(tái)計(jì)算機(jī)所扮演的節(jié)點(diǎn)類(lèi)型要由集群的實(shí)際需求和計(jì)算機(jī)的配置決定。在小型集群系統(tǒng)中,用戶節(jié)點(diǎn)、控制節(jié)點(diǎn)、管理節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)和安裝節(jié)點(diǎn)往往就是同一臺(tái)計(jì)算機(jī)。下面我們分別解釋這些類(lèi)型節(jié)點(diǎn)的作用。

2.1 用戶節(jié)點(diǎn)(User Node)

用戶節(jié)點(diǎn)是外部世界訪問(wèn)集群系統(tǒng)的網(wǎng)關(guān)。用戶通常登錄到這個(gè)節(jié)點(diǎn)上編譯并運(yùn)行作業(yè)。

用戶節(jié)點(diǎn)是外部訪問(wèn)集群系統(tǒng)強(qiáng)大計(jì)算或存儲(chǔ)能力的唯一入口,是整個(gè)系統(tǒng)的關(guān)鍵點(diǎn)。為了保證用戶節(jié)點(diǎn)的高可用性,應(yīng)該采用硬件冗余的容錯(cuò)方法,如采用雙機(jī)熱備份。至少應(yīng)該采用RAID(Redundant Array of Independent Disks)技術(shù)保證用戶節(jié)點(diǎn)的數(shù)據(jù)安全性。

2.2 控制節(jié)點(diǎn)(Control Node)

控制節(jié)點(diǎn)主要承擔(dān)兩種任務(wù)

  • 為計(jì)算節(jié)點(diǎn)提供基本的網(wǎng)絡(luò)服務(wù),如DHCPDNSNFS

  • 調(diào)度計(jì)算節(jié)點(diǎn)上的作業(yè),通常集群的作業(yè)調(diào)度程序(PBS)應(yīng)該運(yùn)行在這個(gè)節(jié)點(diǎn)上。

通常控制節(jié)點(diǎn)是計(jì)算網(wǎng)絡(luò)中的關(guān)鍵點(diǎn),如果它失效,所有的計(jì)算節(jié)點(diǎn)都會(huì)失效。所以控制節(jié)點(diǎn)也應(yīng)該有硬件冗余保護(hù)。

2.3 管理節(jié)點(diǎn)(Management Node)

管理節(jié)點(diǎn)是集群系統(tǒng)各種管理措施的控制節(jié)點(diǎn):

  • 管理網(wǎng)絡(luò)的控制點(diǎn),監(jiān)控集群中各個(gè)節(jié)點(diǎn)和網(wǎng)絡(luò)的運(yùn)行狀況。通常的集群的管理軟件也運(yùn)行在這個(gè)節(jié)點(diǎn)上。

  • ASMA的控制點(diǎn):ASMA(Advanced System Manager Adapter)允許將計(jì)算節(jié)點(diǎn)通過(guò)菊花鏈連接構(gòu)成Service Processor網(wǎng)絡(luò)用于接受計(jì)算節(jié)點(diǎn)的警報(bào)并收集SNMP Trap.

2.4 存儲(chǔ)節(jié)點(diǎn)(Storage Node)

如果集群系統(tǒng)的應(yīng)用運(yùn)行需要大量的數(shù)據(jù),還需要一個(gè)存儲(chǔ)節(jié)點(diǎn)。顧名思義,存儲(chǔ)節(jié)點(diǎn)就是集群系統(tǒng)的數(shù)據(jù)存儲(chǔ)器和數(shù)據(jù)服務(wù)器。如果需要存儲(chǔ)TB級(jí)的數(shù)據(jù),一個(gè)存儲(chǔ)節(jié)點(diǎn)是不夠的。這時(shí)候你需要一個(gè)存儲(chǔ)網(wǎng)絡(luò)。通常存儲(chǔ)節(jié)點(diǎn)需要如下配置:

  • ServerRAID保護(hù)數(shù)據(jù)的安全性

  • 高速網(wǎng)保證足夠的數(shù)據(jù)傳輸速度

2.5 安裝節(jié)點(diǎn)(Installation Node)

安裝節(jié)點(diǎn)提供安裝集群系統(tǒng)的各種軟件,包括操作系統(tǒng)、各種運(yùn)行庫(kù)、管理軟件和應(yīng)用。它還必須開(kāi)放文件服務(wù),如FTPNFS

2.6 計(jì)算節(jié)點(diǎn)

計(jì)算節(jié)點(diǎn)是整個(gè)集群系統(tǒng)的計(jì)算核心。它的功能就是執(zhí)行計(jì)算。你需要根據(jù)你的需要和預(yù)算來(lái)決定采用什么樣的配置。理想的說(shuō),最好一個(gè)計(jì)算節(jié)點(diǎn)一個(gè)CPU。但是如果考慮到預(yù)算限制,也可以采用SMP。從性價(jià)比角度說(shuō),兩個(gè)CPUSMP優(yōu)于34個(gè)CPUSMP機(jī)器。

因?yàn)橐粋(gè)計(jì)算節(jié)點(diǎn)的失效通常不會(huì)影響其他節(jié)點(diǎn),所以計(jì)算節(jié)點(diǎn)不需要冗余的硬件保護(hù)。

2.7 集群中節(jié)點(diǎn)的部署

雖然由多種類(lèi)型的節(jié)點(diǎn),但并不是說(shuō)一臺(tái)計(jì)算機(jī)只能是一種類(lèi)型的節(jié)點(diǎn)。一臺(tái)計(jì)算機(jī)所扮演的節(jié)點(diǎn)類(lèi)型要由集群的實(shí)際需求和計(jì)算機(jī)的配置決定。在小型集群系統(tǒng)中,用戶節(jié)點(diǎn)、控制節(jié)點(diǎn)、管理節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)和安裝節(jié)點(diǎn)往往就是同一臺(tái)計(jì)算機(jī),這臺(tái)計(jì)算機(jī)通常成為主節(jié)點(diǎn)(Master Node)。在這種情況下,集群就是由多個(gè)計(jì)算節(jié)點(diǎn)和一個(gè)主節(jié)點(diǎn)構(gòu)成。

在大型的集群系統(tǒng)中如何部署這些節(jié)點(diǎn)是個(gè)比較復(fù)雜的問(wèn)題,通常要綜合應(yīng)用需求,拓?fù)浣Y(jié)構(gòu)和預(yù)算等因素決定。

3 Beowulf集群的網(wǎng)絡(luò)結(jié)構(gòu)

3.1 集群中的網(wǎng)絡(luò)技術(shù)

因?yàn)橛?jì)算節(jié)點(diǎn)間的通信需求,IPC網(wǎng)絡(luò)的性能是Beowulf集群設(shè)計(jì)中非常重要的話題。由于應(yīng)用的需求,通常需要高帶寬、速度和低延遲的網(wǎng)絡(luò)。Beowulf集群的主要瓶頸通常也在于雙工的網(wǎng)絡(luò)通信,延遲和全局同步。

有好幾種網(wǎng)絡(luò)技術(shù)可以用于IPC網(wǎng)絡(luò)。它們是快速以太網(wǎng)、千兆以太網(wǎng)和Myrinet。為了達(dá)到高帶寬,通常需要采用交換機(jī)。交換機(jī)接受從雙絞線傳來(lái)的數(shù)據(jù)包,但是它和集線器不一樣。它不向所有連接的節(jié)點(diǎn)廣播這個(gè)數(shù)據(jù)包,它會(huì)根據(jù)目的地址哪個(gè)端口是接受者,然后把這個(gè)包傳給接受者。

3.2 Beowulf集群網(wǎng)絡(luò)拓?fù)?/span>

如上所述,通常Beowulf集群系統(tǒng)中有5類(lèi)網(wǎng)絡(luò)。其中Service Processor網(wǎng)絡(luò)是以太網(wǎng)連接起來(lái)的菊花鏈結(jié)構(gòu),Terminal網(wǎng)絡(luò)是計(jì)算節(jié)點(diǎn)和Terminal Server通過(guò)串口線連接起來(lái)的星形結(jié)構(gòu)。管理網(wǎng)絡(luò)、集群網(wǎng)絡(luò)和IPC網(wǎng)絡(luò)則是通過(guò)交換機(jī)相連的。雖然可以把這三個(gè)網(wǎng)絡(luò)配置在一個(gè)網(wǎng)段,但是通常我們把它們分化在三個(gè)虛擬網(wǎng)中(VLAN)。圖2Beowulf集群網(wǎng)絡(luò)結(jié)構(gòu)。

3.2.1 管理網(wǎng)絡(luò)(Management VLAN)

管理網(wǎng)絡(luò)用于訪問(wèn)IPC網(wǎng)絡(luò)交換機(jī)、Service Processor網(wǎng)絡(luò)和Terminal ServerHTTPTelnetSNMP等協(xié)議被用來(lái)管理這些設(shè)備。

3.2.2 集群網(wǎng)絡(luò)(Cluster VLAN)

計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)用這個(gè)網(wǎng)絡(luò)進(jìn)行通常的網(wǎng)絡(luò)I/O

3.2.3 IPC網(wǎng)絡(luò)(IPC VLAN)

用于計(jì)算節(jié)點(diǎn)間的高速通信。通常由特殊的高速網(wǎng)絡(luò)設(shè)備構(gòu)成。

3.2.4 Service Processor網(wǎng)絡(luò)

以太網(wǎng)連接起來(lái)的菊花鏈結(jié)構(gòu),用于系統(tǒng)管理目的。

3.2.5 Terminal網(wǎng)絡(luò)

Terminal網(wǎng)絡(luò)是計(jì)算節(jié)點(diǎn)和Terminal Server通過(guò)串口線連接起來(lái)的星形結(jié)構(gòu)。Terminal Server是外界訪問(wèn)這個(gè)網(wǎng)絡(luò)的接口。管理節(jié)點(diǎn)通過(guò)Terminal Server虛擬出來(lái)的終端可以登錄到其他節(jié)點(diǎn)上完成必要的管理工作。

3.2.6 KVM網(wǎng)絡(luò)

KVM網(wǎng)絡(luò)是KVM Switch和各節(jié)點(diǎn)連接的星形網(wǎng)絡(luò)。其實(shí)把KVM網(wǎng)絡(luò)稱(chēng)為一個(gè)網(wǎng)絡(luò)并恰當(dāng)。KVM是指KeyboardVideoMouse。通過(guò)KVM Switch的切換,管理員可以在管理各個(gè)節(jié)點(diǎn)。

附錄:一個(gè)Cluster 1300集群系統(tǒng)的配置清單

Qty     .P/N           Description

IBM Products

Compute Nodes

4       865431Y                xSeries 330 1000 256 256/OPEN 24X

4       37L7202                18.2GB Ultra160 HDD

4       10K3806        866Mhz 133MHz 256K

12      33L3144        256MB 133MHz ECC SDRAM RDIMM MEMORY

1       06P4792                C2T Cable Kit

 

Management Node

1       86564RY                xSeries 340,866Mhz,128Mb

1       19k4630                866Mhz 133MHz 256K

4       33L3144                256MB 133MHz ECC SDRAM RDIMM MEMORY

1       37L6091        ServeRAID 4L LVD SCSI Adapter

3       37L7202                18.2GB 7200rpm Ultra160 SCSI Hot-Swap SL H

1       34L1501                Netfinity 10/100 Ethernet PCI Adapter 2

1       34L0301                Netfinity Gigabit Ethernet SX Adapter

1       37L6880                270W Redundant HS Power Supply

 

Shared Resources

1       9306200                Netbay 22 Half Rack

1       3619702                Netbay 22 Rack Extension Kit

1       9411AG1                Monitor (flatpanel)

1       L6888          Flatpanel rack mount kit

1       09N4291                8x2 Console Switch (KVM Switch)

2       94G7447        Console Cable Set 12ft (to KVM switch)

1       28L3644                Spacesaver Keyboard/trackpoint

1       28L4707                Keyboard tray

2       37L6866                Netbay Universal Voltage PDU

1       01K7209                ASMA Adapter (Wiseman card)

1       36L9973                1M Fibre Channel Cable

1       03K9308                Short Wave GBIC (Gigabit module)

 

Equinox Products

1       990209         Equinox ELS-16

1       210059         Micro-Transceiver,AUI (DB-15)to 10BaseT

1       790091         ELS Rackmount kit

4       210062         Equinox Serial Adapters

4       690226         10'Serial Cables

 

Myrinet Networking Products

1       M3-E16         Myrinet2000 3-slot Chassis

1       M3-M           Management Module

4       M3S-CB-5M      Myricom Myrinet LAN cables

4       M3S-PCI64B-2   Myrinet LAN Card

1       M3SW16-8S      Myrinet 8-port Serial modules

 

Miscellaneous Products

8       3'CAT5 Cables

5       1'CAT5 Cables

 

Extreme Networks Products

1       13020          Summit24 -Full Layer 3-X

 

 

 

1 Beowulf集群軟件結(jié)構(gòu)

Beowulf集群的軟件體系機(jī)構(gòu)。一般來(lái)說(shuō),Beowulf集群由如下幾個(gè)軟件部分組成:

  • 操作系統(tǒng):勿容置疑,操作系統(tǒng)是任何計(jì)算機(jī)系統(tǒng)的軟件基礎(chǔ)。相對(duì)于桌面系統(tǒng)而言,集群系統(tǒng)對(duì)操作系統(tǒng)的任務(wù)調(diào)度和文件管理方面的要求更高。

  • 并行開(kāi)發(fā)庫(kù):只要是指用于集群中進(jìn)程通信的軟件庫(kù)。消息傳遞和線程是兩種基本的通信方法。但是對(duì)于Beowulf集群而言,消息傳遞更適合一些。Beowulf集群常用的開(kāi)發(fā)庫(kù)是MPIPVM

  • 作業(yè)管理:調(diào)度作業(yè)并管理集群系統(tǒng)的資源,是集群系統(tǒng)的資源得到最大的利用。

  • 系統(tǒng)管理:管理和監(jiān)控整個(gè)集群系統(tǒng)。

  • 開(kāi)發(fā)環(huán)境:開(kāi)發(fā)和調(diào)試高效能應(yīng)用的開(kāi)發(fā)工具。

  • 標(biāo)準(zhǔn)應(yīng)用:一些標(biāo)準(zhǔn)的高性能應(yīng)用如CFD

  • 客戶應(yīng)用:客戶特別定制的應(yīng)用。

操作系統(tǒng)

并不是每種操作系統(tǒng)都適合高性能集群系統(tǒng)。理論上說(shuō),硬件的體系結(jié)構(gòu)、操作系統(tǒng)的任務(wù)調(diào)度方式和IPC的方式是決定應(yīng)用并行化效果的主要因素。根據(jù)這三個(gè)因素,我們可以歸納出如下5種實(shí)施應(yīng)用并行化的平臺(tái):

  • 單任務(wù)操作系統(tǒng):CPU同時(shí)只處理任務(wù)隊(duì)列中的一個(gè)任務(wù)。MS DOS是這類(lèi)系統(tǒng)的代表。

  • 多任務(wù)操作系統(tǒng):基于分時(shí)技術(shù)的多任務(wù)操作系統(tǒng)。雖然在同一時(shí)間段,所有的進(jìn)程都在運(yùn)行,但是在某一時(shí)間點(diǎn),CPU只執(zhí)行一個(gè)進(jìn)程。這類(lèi)操作系統(tǒng)可分為搶占式和非搶占式。單CPUUnixNT屬于這種類(lèi)型。

  • CPU多任務(wù)操作系統(tǒng):和單CPU的多任務(wù)操作系統(tǒng)不同的是,由于有多個(gè)CPU,所以在某個(gè)時(shí)間點(diǎn)上,可以有多個(gè)進(jìn)程同時(shí)運(yùn)行。多CPUUnixNT屬于這種類(lèi)型。

  • CPU多任務(wù)操作系統(tǒng)+線程:某些任務(wù)當(dāng)把它分為若干并行的子任務(wù)同時(shí)在多個(gè)CPU上執(zhí)行時(shí),它會(huì)運(yùn)行的更快,盡管運(yùn)行這個(gè)任務(wù)占有的總CPU時(shí)間變長(zhǎng)了。由于采用多個(gè)CPU而使任務(wù)結(jié)束的時(shí)間縮短了。由于應(yīng)用本身的特性,隨著CPU個(gè)數(shù)的增加,性能并不會(huì)線性增加。Amdal法則說(shuō)明了這種情況。運(yùn)行在同一主板上多個(gè)CPUUnixNT+線程屬于這一類(lèi)型。SMP系統(tǒng)合適采用這種方法。

  • CPU多任務(wù)操作系統(tǒng)+消息傳遞:在SMP系統(tǒng)中,由于采用共享內(nèi)存,所以CPU通信的時(shí)間幾乎可以忽略。但是在象集群這種系統(tǒng)中,通信時(shí)間成為不得不考慮的因素。這時(shí),使用線程是一種很奢侈的方法。這種情況下,消息傳遞是一種比較好的方法。(本系列文章的第二部分解釋了這種情況)。同一個(gè)主板或多個(gè)主板上的多個(gè)CPU+UnixNT+消息傳遞屬于這種類(lèi)型。

Beowulf集群使用第5種類(lèi)型平臺(tái)。它可以由SMPPC服務(wù)器組成,以Linux為操作系統(tǒng),以MPIPVM這種消息傳遞方式作為通信方法。

文件系統(tǒng)

文件系統(tǒng)是操作系統(tǒng)的重要組成部分,用于存儲(chǔ)程序和數(shù)據(jù)。如何在各節(jié)點(diǎn)間高效、一致和簡(jiǎn)捷的實(shí)現(xiàn)數(shù)據(jù)共享是集群系統(tǒng)對(duì)文件系統(tǒng)提出的挑戰(zhàn)。

3.1 集群和文件系統(tǒng)

很明顯,那種僅能管理本地存儲(chǔ)的文件系統(tǒng)(EXTFAT)是無(wú)法滿足集群系統(tǒng)對(duì)文件共享的要求的。在集群環(huán)境下,最容易想到,也是最容易實(shí)現(xiàn)的文件系統(tǒng)就是分布式文件系統(tǒng)。相當(dāng)于本地文件系統(tǒng),分布式文件系統(tǒng)有如下優(yōu)點(diǎn):

  • 網(wǎng)絡(luò)透明:對(duì)遠(yuǎn)程和本地的文件訪問(wèn)可以通過(guò)相同的系統(tǒng)調(diào)用完成。

  • 位置透明:文件的全路徑無(wú)需和文件存儲(chǔ)的服務(wù)綁定,也就是說(shuō)服務(wù)器的名稱(chēng)或地址并不是文件路徑的一部分。

  • 位置獨(dú)立:正是由于服務(wù)器的名稱(chēng)或地址并不是文件路徑的一部分,所以文件存儲(chǔ)的位置的改變并不會(huì)導(dǎo)致文件的路徑改變。

分布式文件系統(tǒng)可以使集群的節(jié)點(diǎn)間簡(jiǎn)捷地實(shí)現(xiàn)共享。但是為了提供性能,分布式文件系統(tǒng)通常需要使用本地的緩存(Cache), 所以它很難保證數(shù)據(jù)在集群系統(tǒng)范圍的一致性。而且往往分布式文件系統(tǒng)中只有一份數(shù)據(jù),所以很容易發(fā)生單點(diǎn)失效。

建立在共享磁盤(pán)(Share-Disk)上的并行文件系統(tǒng)可以克服分布式文件系統(tǒng)的這些缺點(diǎn)。通過(guò)使用在節(jié)點(diǎn)共享的存儲(chǔ)設(shè)備,并行文件系統(tǒng)具有很多優(yōu)點(diǎn):

  • 高可用性:克服了分布式文件系統(tǒng)中那種服務(wù)器端的單點(diǎn)失效的缺點(diǎn),提高了文件系統(tǒng)的可用性。

  • 負(fù)載均衡:有多個(gè)訪問(wèn)點(diǎn),彼此可以協(xié)調(diào)負(fù)載。

  • 可擴(kuò)展性:容易擴(kuò)展容量和訪問(wèn)的帶寬

3.2 集群中的數(shù)據(jù)共享形式

下面通過(guò)給出幾個(gè)集群中使用具體的數(shù)據(jù)共享的方法。其中rsync是建立在本地文件系統(tǒng)之上,NFSInteemezzo屬于分布式文件系統(tǒng)(確切的說(shuō),NFS只是網(wǎng)絡(luò)文件系統(tǒng))GFS屬于并行文件系統(tǒng),而Backend-database則屬于不同于文件共享的另一種形式的共享。

3.2.1 rsync

rsync是一種簡(jiǎn)單的文件共享實(shí)現(xiàn)方式。集群中的每個(gè)節(jié)點(diǎn)都有一份數(shù)據(jù)復(fù)本,復(fù)本間使用rsync進(jìn)行同步。因?yàn)楣?jié)點(diǎn)需要的數(shù)據(jù)就在本地,所以這種方法具有很高的可用性,不會(huì)出現(xiàn)單點(diǎn)失效現(xiàn)象。

如果需要的共享的數(shù)據(jù)量很小,而且很少更新時(shí),可以采用這種方式。靜態(tài)網(wǎng)頁(yè)和小的FTP站點(diǎn)的可以使用這種共享方式。

3.2.2 NFS

這也是一種容易實(shí)現(xiàn)的方式。存儲(chǔ)節(jié)點(diǎn)通過(guò)NFS將自己本地的文件輸出,其他節(jié)點(diǎn)則把存儲(chǔ)節(jié)點(diǎn)輸出的文件系統(tǒng)mount到本地文件系統(tǒng)。NFS方式的存在兩個(gè)很大的缺點(diǎn):

  • 性能差:因?yàn)樗械奈募L問(wèn)都必須經(jīng)過(guò)網(wǎng)絡(luò)和NFS服務(wù)器,所以在訪問(wèn)流量比較大的情況下,網(wǎng)絡(luò)帶寬和NFS服務(wù)器都會(huì)成為系統(tǒng)的瓶頸。

  • 單點(diǎn)失效:如果NFS服務(wù)器的系統(tǒng)失效或者網(wǎng)絡(luò)失效都會(huì)使得其他節(jié)點(diǎn)無(wú)法得到數(shù)據(jù),從而使整個(gè)集群系統(tǒng)癱瘓。

當(dāng)然使用多個(gè)互為備份的NFS服務(wù)器可以改善性能和避免單點(diǎn)失效,但是這樣又會(huì)帶來(lái)如何實(shí)時(shí)保持備份服務(wù)器間數(shù)據(jù)一致性的問(wèn)題。 NFS方式適合于共享訪問(wèn)數(shù)據(jù)量不大的小型集群系統(tǒng)。

3.2.3 GFS

GFS(Global File System)實(shí)現(xiàn)了存儲(chǔ)設(shè)備的網(wǎng)絡(luò)共享。這些存儲(chǔ)設(shè)備可以是共享SCSI(Shared SCSI)和共享通道(Fibre Channel - FC)GFS包裝這些存儲(chǔ)設(shè)備使得它們好像節(jié)點(diǎn)本地的文件系統(tǒng)。GFS的主要優(yōu)點(diǎn)在于:

  • 高可用性:如果一個(gè)GFS客戶失效,數(shù)據(jù)還可以通過(guò)其他GFS客戶訪問(wèn)。

  • 擴(kuò)展性:因?yàn)椴恍枰行姆⻊?wù)器,所有很容易擴(kuò)展存儲(chǔ)容量和訪問(wèn)帶寬。

GFS可以將物理上分離的存儲(chǔ)設(shè)備虛擬為一個(gè)存儲(chǔ)而且能平衡訪問(wèn)負(fù)載。GFS還實(shí)現(xiàn)了文件鎖和實(shí)時(shí)文件系統(tǒng)。

3.2.4 Intermezzo

Intermezzo實(shí)現(xiàn)了一個(gè)分布式的文件系統(tǒng)。它采用客戶/服務(wù)器模式。服務(wù)器擁有權(quán)威的數(shù)據(jù),客戶節(jié)點(diǎn)僅有本地緩沖的版本。它們通過(guò)普通的網(wǎng)絡(luò)進(jìn)行同步。Intermezzo支持?jǐn)嚅_(kāi)連接下文件操作。在下次恢復(fù)連接時(shí),它會(huì)集成本地的改動(dòng)到服務(wù)器上。Intermezzo擁有象GFS一樣的可用性和可擴(kuò)展性。但是它無(wú)法保證數(shù)據(jù)的實(shí)時(shí)一致性。

3.2.5 Backend Database

基于后端數(shù)據(jù)庫(kù)的共享是完全不同于文件共享的方式。后端數(shù)據(jù)庫(kù)系統(tǒng)解決了數(shù)據(jù)的一致性、性能、可用性和可擴(kuò)展性問(wèn)題。但是數(shù)據(jù)庫(kù)的訪問(wèn)方法要比文件訪問(wèn)復(fù)雜的多。

并行化應(yīng)用程序

并行化應(yīng)用程序,使其更高效的運(yùn)行是使用Beowulf集群系統(tǒng)的最終目的。一般說(shuō),并行化應(yīng)用程序分為三個(gè)步驟:

  • 確定應(yīng)用程序的并發(fā)部分

  • 估計(jì)并行的效率

  • 實(shí)現(xiàn)應(yīng)用程序的并發(fā)

在并行化應(yīng)用程序的過(guò)程中,需要開(kāi)發(fā)環(huán)境、并行開(kāi)發(fā)庫(kù)和各種工具的支持。這些軟件都是Beowulf集群軟件體系結(jié)構(gòu)中重要的組成部分。

4.1 確定應(yīng)用程序的并發(fā)部分

從實(shí)用的角度說(shuō),應(yīng)用程序有兩種類(lèi)型的并發(fā):計(jì)算和I/O。盡管在多數(shù)情況下這兩者是正交的,但是也存在一些應(yīng)用同時(shí)需要這兩種并發(fā)性。有一些工具可以用來(lái)幫助分析應(yīng)用程序的并發(fā),而且通常這些工具都是專(zhuān)門(mén)為Fortran設(shè)計(jì)的。

4.2 分析并行的效率

分析并行的效率是并行化應(yīng)用程序中很重要的一個(gè)步驟。正確的分析并行的效率可以幫助你在有限的經(jīng)費(fèi)下最大化應(yīng)用的執(zhí)行效率。往往Beowulf集群的需要和應(yīng)用的需要有些許的差別。比如,CPU消耗型的應(yīng)用往往需要的是稍微快一點(diǎn)的CPU和高速低延遲的網(wǎng)絡(luò),而I/O消耗型的應(yīng)用需要的是稍微慢一點(diǎn)的CPU和快速以太網(wǎng)。

如果沒(méi)有分析工具,你只能使用猜測(cè)和估計(jì)的辦法完成這一步驟。一般來(lái)說(shuō),如果在應(yīng)用的一部分中,計(jì)算的時(shí)間是分鐘級(jí)而數(shù)據(jù)傳輸?shù)臅r(shí)間是秒級(jí),那么這一部分可以并行執(zhí)行。但是如果并行后計(jì)算時(shí)間降到秒級(jí),你就需要實(shí)際測(cè)量一下再做權(quán)衡。

另外,對(duì)于I/O消耗型的應(yīng)用,Eadline-Dedkov法則對(duì)你做決定有些幫助:如果兩個(gè)并行系統(tǒng)具有相同的CPU指標(biāo),慢CPU和相應(yīng)具有低速CPU間通信網(wǎng)絡(luò)的系統(tǒng)反而具有較好的性能。

4.3 實(shí)現(xiàn)應(yīng)用程序的并發(fā)

有兩種方法去實(shí)現(xiàn)應(yīng)用程序的并發(fā):顯式并發(fā)和隱式并發(fā)。

4.3.1 顯式并行化

顯式并行化是指由開(kāi)發(fā)者決定程序的并行。開(kāi)發(fā)者通過(guò)在程序中增加PVMMPI消息,或者增加程序執(zhí)行的線程從而達(dá)到程序的并行化。顯式并行化通常難以實(shí)現(xiàn)和調(diào)試。為了簡(jiǎn)化顯式并行化,某些開(kāi)發(fā)庫(kù)中增加了一些函數(shù)用于簡(jiǎn)化標(biāo)準(zhǔn)并行方法的實(shí)現(xiàn)。另外也有專(zhuān)門(mén)用于調(diào)試并行程序的工具。TotoalView(http://www.etnus.com/Products/TotalView/index.html)就是一個(gè)源碼級(jí)的CC++Fortran調(diào)試工具。它擁有方便的圖形化界面,可以用于調(diào)試多線程、多進(jìn)程和集群應(yīng)用程序。

4.3.2 隱式并行化

隱式并行化是由編譯器來(lái)決定程序的并行性,高性能Fortran就是這類(lèi)編譯器。隱式并行化中,程序開(kāi)發(fā)者向編譯器提供一些程序并行的特征,編譯器根據(jù)這些特征做出程序并行化的決定。通常編譯器可以給并行應(yīng)用提供一定程度的效率和移植性,但是不是最好的。

作業(yè)管理(資源管理)

從用戶角度看,集群系統(tǒng)就好像一臺(tái)服務(wù)器或者PC。很多用戶可以同時(shí)使用這個(gè)系統(tǒng)。但是當(dāng)太多的用戶使用集群系統(tǒng)時(shí),系統(tǒng)性能會(huì)很差。資源管理就是管理用戶提交的作業(yè),合理給各個(gè)作業(yè)分配資源從而保證集群系統(tǒng)高效運(yùn)行。作業(yè)管理通常由資源管理器和作業(yè)調(diào)度策略器組成。

系統(tǒng)管理

從系統(tǒng)組成角度說(shuō),集群系統(tǒng)是由多臺(tái)計(jì)算機(jī)組成的超級(jí)計(jì)算機(jī)。但是從最終用戶看來(lái),集群系統(tǒng)是一臺(tái)計(jì)算機(jī),也就是說(shuō),集群系統(tǒng)的構(gòu)成對(duì)用戶是透明的。所以集群系統(tǒng)的管理的目的就是讓集群系統(tǒng)象一臺(tái)計(jì)算機(jī)一樣利于管理。歸納起來(lái),集群系統(tǒng)管理一般完成如下任務(wù):

  • 資源管理

  • 事件管理

  • 配置管理

  • 監(jiān)控和診斷

  • 硬件控制

  • 系統(tǒng)安裝

  • 域管理

集群作業(yè)管理

從用戶角度看,集群系統(tǒng)就好像一臺(tái)服務(wù)器或者PC。很多用戶可以同時(shí)使用這個(gè)系統(tǒng)。但是當(dāng)太多的用戶使用集群系統(tǒng)時(shí),系統(tǒng)性能會(huì)變得很差。資源管理就是管理用戶提交的作業(yè),合理給各個(gè)作業(yè)分配資源從而確保充分利用集群系統(tǒng)計(jì)算能力并盡可能快的得到運(yùn)算結(jié)果。簡(jiǎn)單的說(shuō),集群資源由實(shí)現(xiàn)如下幾個(gè)部分:

  • 資源管理器:為了確保分配給作業(yè)合適的資源,集群資源管理需要維護(hù)一個(gè)數(shù)據(jù)庫(kù)。這個(gè)數(shù)據(jù)庫(kù)記錄了集群系統(tǒng)中各種資源的屬性和狀態(tài)、所有用戶提交的請(qǐng)求和正在運(yùn)行的作業(yè)。策略管理器根據(jù)這些數(shù)據(jù)和指定的調(diào)度策略生成優(yōu)先級(jí)列表。資源管理器根據(jù)這個(gè)優(yōu)先級(jí)列表調(diào)度作業(yè)。資源管理器還應(yīng)該具有資源預(yù)留能力。這樣不僅可以保留強(qiáng)大的資源給需要的作業(yè),而且可以預(yù)留一定的冗余資源以應(yīng)付集群中的結(jié)點(diǎn)失效和突發(fā)的計(jì)算。

  • 作業(yè)調(diào)度策略管理器:策略管理器根據(jù)資源管理器得到各個(gè)結(jié)點(diǎn)上的資源狀況和系統(tǒng)的作業(yè)信息生成一個(gè)優(yōu)先級(jí)列表。這個(gè)列表告訴資源管理器何時(shí)在哪些結(jié)點(diǎn)上運(yùn)行哪個(gè)作業(yè)。策略管理器不僅要提供一個(gè)復(fù)雜的參數(shù)集合去定義計(jì)算環(huán)境和作業(yè),而且要為這個(gè)定義提供簡(jiǎn)捷靈活的表達(dá)方式以允許系統(tǒng)管理員實(shí)現(xiàn)策略驅(qū)動(dòng)的資源調(diào)度。

2 Beowulf集群中的作業(yè)管理軟件

有很多種選擇去管理集群系統(tǒng)中的資源。其中PBS資源管理器和Maui作業(yè)調(diào)度器最適合集群系統(tǒng)。

2.1 PBS

PBS(Portable Batch System)是由NASA開(kāi)發(fā)的靈活的批處理系統(tǒng)。它被用于集群系統(tǒng)、超級(jí)計(jì)算機(jī)和大規(guī)模并行系統(tǒng)。PBS主要有如下特征:

  • 易用性:為所有的資源提供統(tǒng)一的接口,易于配置以滿足不同系統(tǒng)的需求,靈活的作業(yè)調(diào)度器允許不同系統(tǒng)采用自己的調(diào)度策略。

  • 移植性:符合POSIX 1003.2標(biāo)準(zhǔn),可以用于shell和批處理等各種環(huán)境。

  • 適配性:可以適配與各種管理策略,并提供可擴(kuò)展的認(rèn)證和安全模型。支持廣域網(wǎng)上的負(fù)載的動(dòng)態(tài)分發(fā)和建立在多個(gè)物理位置不同的實(shí)體上的虛擬組織。

  • 靈活性:支持交互和批處理作業(yè)。

OpenPBS(http://www.OpenPBS.org/)PBSOpen Source的實(shí)現(xiàn)。商業(yè)版本的PBS可以參照:http://www.pbspro.com/

2.2 Maui

Maui是一個(gè)高級(jí)的作業(yè)調(diào)度器。它采用積極的調(diào)度策略優(yōu)化資源的利用和減少作業(yè)的響應(yīng)時(shí)間。Maui的資源和負(fù)載管理允許高級(jí)的參數(shù)配置:作業(yè)優(yōu)先級(jí)(Job Priority)、調(diào)度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和預(yù)留策略(Reservation Policy)MauiQoS機(jī)制允許資源和服務(wù)的直接傳遞、策略解除(Policy Exemption)和指定特征的受限訪問(wèn)。Maui采用高級(jí)的資源預(yù)留架構(gòu)可以保證精確控制資源何時(shí)、何地、被誰(shuí)、怎樣使用。Maui的預(yù)留架構(gòu)完全支持非入侵式的元調(diào)度。

Maui的設(shè)計(jì)得益于世界最大的高性能計(jì)算中心的經(jīng)驗(yàn)。Maui本身也提供測(cè)試工具和模擬器用于估計(jì)和調(diào)節(jié)系統(tǒng)性能。

Maui需要資源管理器與其配合使用。我們可以把Maui想象為PBS中的一個(gè)插入部件。

更多Maui的信息可以訪問(wèn):http://www.supercluster.org

集群系統(tǒng)管理

從系統(tǒng)組成角度說(shuō),集群系統(tǒng)是由多臺(tái)計(jì)算機(jī)組成的超級(jí)計(jì)算機(jī)。但是從最終用戶看來(lái),集群系統(tǒng)是一臺(tái)計(jì)算機(jī),也就是說(shuō),集群系統(tǒng)的構(gòu)成對(duì)用戶是透明的。所以集群系統(tǒng)的管理的目的就是讓集群系統(tǒng)象一臺(tái)計(jì)算機(jī)一樣利于管理。歸納起來(lái),集群系統(tǒng)管理一般完成如下任務(wù):

3.1 資源管理

簡(jiǎn)單地說(shuō),資源管理就是分配系統(tǒng)的資源和監(jiān)控系統(tǒng)資源的使用狀態(tài)。這里的資源是個(gè)很廣泛的概念,各種硬件設(shè)備、數(shù)據(jù)和程序都可以看成資源:如CPU、存儲(chǔ)、網(wǎng)卡,甚至系統(tǒng)的事件和log

3.2 事件服務(wù)

事件(Event)就是系統(tǒng)的狀態(tài)的一次變化。如"CPU的利用率超過(guò)90%"就可以理解為一次事件。簡(jiǎn)單的說(shuō),事件服務(wù)就是事件通知服務(wù),也就是當(dāng)一次事件發(fā)生時(shí),通知對(duì)這類(lèi)事件感興趣的個(gè)體這個(gè)事件發(fā)生了。事件服務(wù)可以分為Push(也稱(chēng)為Subscribe-Publish)Pull方式。系統(tǒng)管理員還應(yīng)該能夠通過(guò)事件服務(wù)設(shè)置系統(tǒng)對(duì)事件的自動(dòng)響應(yīng)。

3.3 分布式命令和文件

分布式命令和文件是指讓命令和文件操作同時(shí)在整個(gè)集群結(jié)點(diǎn)或指定的一組結(jié)點(diǎn)上并行執(zhí)行。

分布式命令功能通常通過(guò)分布式的Shell來(lái)提供。這種Shell一般叫做dsh(distributed shell) psh ( parallel shell)。你可以通過(guò)rshssh來(lái)實(shí)現(xiàn)分布式Shell

分布式文件主要用于指集群中配置文件的同步。集群系統(tǒng)實(shí)際上是由多個(gè)結(jié)點(diǎn)組成,所以對(duì)集群系統(tǒng)的一個(gè)配置需要發(fā)布到每個(gè)結(jié)點(diǎn)(或一組結(jié)點(diǎn))。比如,需要配置每個(gè)結(jié)點(diǎn)上的Apache都支持CGI,就需要把/etc/httpd下的配置文件發(fā)布到每個(gè)結(jié)點(diǎn)的/etc/httpd中。簡(jiǎn)單地說(shuō),集群系統(tǒng)地配置管理就是把一個(gè)或多個(gè)配置文件發(fā)布到指定的結(jié)點(diǎn)上。有很多開(kāi)放源碼的工具可以幫助完成集群系統(tǒng)的分布式文件功能,如rdistcfengine

3.4 監(jiān)控和診斷

對(duì)持續(xù)運(yùn)行的集群系統(tǒng)而言,當(dāng)系統(tǒng)正常運(yùn)行時(shí),你需要一些工具監(jiān)控系統(tǒng)各部分的運(yùn)行狀態(tài),如系統(tǒng)進(jìn)程、CPU利用率和內(nèi)存利用率等。在普通的Unix系統(tǒng)上,你可以簡(jiǎn)單的用pstop實(shí)現(xiàn)這些功能。但是在集群系統(tǒng)中,你確實(shí)需要一些特殊工具,而且最好系統(tǒng)的監(jiān)控可以支持多種網(wǎng)絡(luò)管理協(xié)議,如SNMPWBEM。當(dāng)集群系統(tǒng)工作不正常時(shí),你則需要另外一些工具來(lái)協(xié)助系統(tǒng)診斷。如當(dāng)系統(tǒng)某個(gè)不服務(wù)時(shí),你可能需要用ping診斷是不是網(wǎng)絡(luò)出了問(wèn)題。而當(dāng)時(shí)多個(gè)結(jié)點(diǎn)服務(wù)時(shí),你則需要并發(fā)的ping來(lái)診斷是不是網(wǎng)絡(luò)錯(cuò)誤。

3.5 硬件控制

PC機(jī)上很簡(jiǎn)單的管理功能對(duì)于集群系統(tǒng)而言可能會(huì)很難做到。比如讓一組結(jié)點(diǎn)重啟,就很難手工完成。所以集群系統(tǒng)需要一些特殊的硬件設(shè)備完成這些功能。下面是幾個(gè)需要硬件支持特殊管理功能:

  • 遠(yuǎn)程電源管理:主要是遠(yuǎn)程關(guān)閉、打開(kāi)和重啟結(jié)點(diǎn)與查詢結(jié)點(diǎn)電源狀態(tài)。在IBM eServer Cluster 1300中采用ASM

  • 遠(yuǎn)程控制臺(tái):當(dāng)遠(yuǎn)程結(jié)點(diǎn)出現(xiàn)問(wèn)題或出現(xiàn)一些特殊的軟件需要時(shí),需要直接登錄到結(jié)點(diǎn)上完成操作。KVM Switch可以滿足這種需求,但是當(dāng)結(jié)點(diǎn)很多時(shí),KVM Switch就會(huì)很復(fù)雜。而且KVM Switch需要手工切換,不能通過(guò)軟件方法使用。Terminal Server克服了KVM Switch的缺點(diǎn)。Terminal Server與結(jié)點(diǎn)的串口相連,并把串口虛擬成管理結(jié)點(diǎn)上終端設(shè)備,當(dāng)然這需要對(duì)結(jié)點(diǎn)的操作系統(tǒng)做些相應(yīng)的配置。

3.6 系統(tǒng)安裝

集群系統(tǒng)的安裝主要是指在各個(gè)結(jié)點(diǎn)上安裝操作系統(tǒng)、文件系統(tǒng)、并行程序運(yùn)行庫(kù)、作業(yè)管理軟件和系統(tǒng)管理軟件等。它是集群系統(tǒng)投入應(yīng)用的前提,所以集群系統(tǒng)的安裝是一件非常重要的任務(wù)。一般集群系統(tǒng)由幾十臺(tái),甚至上百上千臺(tái)計(jì)算機(jī)組成,顯然手工安裝系統(tǒng)幾乎是不可能的。一般集群系統(tǒng)的安裝的機(jī)制是:

1.       網(wǎng)絡(luò)啟動(dòng):設(shè)置需要的安裝的結(jié)點(diǎn)網(wǎng)絡(luò)啟動(dòng),然后管理結(jié)點(diǎn)遠(yuǎn)程重啟需要安裝的結(jié)點(diǎn)。網(wǎng)絡(luò)啟動(dòng)的結(jié)點(diǎn)啟動(dòng)后從啟動(dòng)服務(wù)器獲得一個(gè)小的操作系統(tǒng)內(nèi)核。網(wǎng)絡(luò)啟動(dòng)一般采用IntelPXE(Pre-Execution Environment)標(biāo)準(zhǔn)。PXELinux是支持PXE的網(wǎng)絡(luò)啟動(dòng)服務(wù)器。它可以在網(wǎng)絡(luò)啟動(dòng)的結(jié)點(diǎn)啟動(dòng)一個(gè)小的Linux核心并運(yùn)行指定的Init程序。由Init程序負(fù)責(zé)后續(xù)的安裝。

2.       網(wǎng)絡(luò)安裝:這個(gè)操作系統(tǒng)內(nèi)核負(fù)責(zé)從安裝服務(wù)器(通常是一個(gè)文件服務(wù)器)上取得安裝軟件包或系統(tǒng)鏡像并在本地實(shí)施系統(tǒng)安裝。有多種Linux工具可以完成基于網(wǎng)絡(luò)的系統(tǒng)安裝。這些工具中的典型代表是:KickStartALICE (Automatic Linux Installation and Configuration Environment)SIS(System Install Suite)PartImage。這些工具可以分為如下幾類(lèi):

1.       a. 基于Script的安裝:這種安裝方式中,安裝過(guò)程由安裝腳本(Script)控制,可以通過(guò)修改安裝腳本來(lái)配置安裝過(guò)程。這種安裝方式中,安裝服務(wù)器實(shí)際上是一個(gè)文件服務(wù)器,它向結(jié)點(diǎn)提供要安裝的軟件包。除了軟件包不是來(lái)自本地外,這種安裝方法和本地安裝并沒(méi)有太大的區(qū)別,本地安裝的各個(gè)步驟(配置硬件、安裝軟件包、配置系統(tǒng)等)它都要經(jīng)過(guò)。KickStart屬于這中安裝方法。基于Script的安裝比較靈活,但是它是操作系統(tǒng)依賴型的。象KickStart只支持Redhat Linux

2.       b. 基于Imaging的安裝:和基于Script的安裝不同,基于Imaging的安裝并不需要經(jīng)過(guò)本地安裝的各個(gè)步驟。它只需要把存儲(chǔ)在文件服務(wù)上的需要安裝的系統(tǒng)映象(Image)拷貝到本地的硬盤(pán)上。這個(gè)系統(tǒng)映象來(lái)源于一個(gè)已經(jīng)安裝和配置好的樣機(jī)。Imaging的安裝方式是獨(dú)立于操作系統(tǒng),但是它依賴于網(wǎng)絡(luò)啟動(dòng)的操作系統(tǒng)內(nèi)核支持的文件系統(tǒng)。Imaging的很大缺點(diǎn)是很難提供獨(dú)立于操作系統(tǒng)的配置方法。PartImage屬于Imaging安裝方法。而SISScriptImaging混合型的安裝方式。SIS利用Linuxchroot命令在安裝服務(wù)器的一個(gè)文件目錄下安裝一個(gè)虛擬的操作系統(tǒng)映象。同時(shí)SIS支持用戶提供Shell腳本完成安裝后的配置。

3.       c. 基于Cloning的安裝:和Imaging安裝方式相同的是,Cloning安裝也采用系統(tǒng)映象。但是Cloning中的系統(tǒng)映象是樣機(jī)上硬盤(pán)分區(qū)的Clone。因此,Cloning安裝不需要識(shí)別系統(tǒng)鏡像中的文件系統(tǒng)類(lèi)型。所以它是獨(dú)立于文件系統(tǒng)的,它只依賴于操作系統(tǒng)內(nèi)核支持的硬盤(pán)設(shè)備類(lèi)型(IDESCSI)。和Imaging一樣,Cloning的很大缺點(diǎn)是很難提供獨(dú)立于操作系統(tǒng)的配置方法。而且相對(duì)于Imaging而言,Cloning效率更低。你可以簡(jiǎn)單的用dd命令實(shí)現(xiàn)Clone

下表歸納了幾種安裝工具的特點(diǎn):

安裝工具

安裝方法

支持的系統(tǒng)

支持的網(wǎng)絡(luò)協(xié)議

KickStart

Script

Redhat Linux

NFSFTP

SIS

ScriptImaging混合

Redhat Linux
SuSE Linux
Turbo Linux

rsync

PartImage

Imaging

EXT2FATNTFSHPFS…

私有協(xié)議

3.7 域管理

你可以簡(jiǎn)單的把集群系統(tǒng)的域管理理解為結(jié)點(diǎn)管理,它主要包括如下簡(jiǎn)單的功能:

  • 加入、刪除和列舉集群系統(tǒng)中的結(jié)點(diǎn)

  • 對(duì)集群中的結(jié)點(diǎn)分組

實(shí)際上,我們也把作業(yè)管理納入集群系統(tǒng)管理的任務(wù)。但是相對(duì)于其他系統(tǒng)管理任務(wù)而言,作業(yè)管理在集群系統(tǒng)中具有更重要的作用,而且通常的集群系統(tǒng)管理軟件也不直接實(shí)現(xiàn)作業(yè)管理功能。所以我們把作業(yè)管理作為集群系統(tǒng)一個(gè)重要的軟件部分,而不是集群系統(tǒng)管理的一項(xiàng)任務(wù)。

幾種集群系統(tǒng)管理軟件

集群系統(tǒng)管理軟件和集群系統(tǒng)一樣形形色色、多種多樣。下面簡(jiǎn)要介紹幾種集群系統(tǒng)管理軟件并比較它們實(shí)現(xiàn)的功能。

4.1 IBM CSM

IBM CSM(Cluster Systems Management )IBM eServer Cluster 1300上的系統(tǒng)管理軟件。IBMLinux集群戰(zhàn)略的一部分就是把運(yùn)行在RS/6000 SP平臺(tái)上的PSSP軟件移植到基于xSeriesLinux集群系統(tǒng)上。CSM大部分功能來(lái)源于SP平臺(tái),但是它也集成了WebSM 2000xSeries、開(kāi)放源碼工具和其他技術(shù)。CSM是一款功能很全面的管理工具,而且還在不斷的發(fā)展中。

4.2 XCAT

XCAT是用于IBM eServer Cluster 1300上的系統(tǒng)管理軟件。它由Egan Ford開(kāi)發(fā)。它基本上是由shell腳本寫(xiě)成,相當(dāng)簡(jiǎn)捷。但是它實(shí)現(xiàn)了集群系統(tǒng)管理大部分的內(nèi)容,是個(gè)非常出色的管理軟件。

4.3 Mon

MonLinux平臺(tái)上開(kāi)發(fā),但是也以運(yùn)行在Solaris上而出名。Mon的服務(wù)器和客戶都是基于perl開(kāi)發(fā)的,所以很容易移植到其他UNIX和類(lèi)UNIX平臺(tái)。

下表比較了以上三種集群系統(tǒng)管理軟件:

項(xiàng)目

CSM

XCAT

Mon

支持的集群系統(tǒng)

IBM eServer Cluster 1300

IBM eServer Cluster 1300

不特定于某個(gè)集群系統(tǒng)

支持的操作系統(tǒng)

RedhatSuSE

Redhat,結(jié)點(diǎn)可以采用ImagingCloning安裝其他操作系統(tǒng),甚至于Windows

Linux上開(kāi)發(fā),但是以運(yùn)行在Solaris而著名。很容易移植到其他Unix和非Unix操作系統(tǒng)上

資源管理

提供統(tǒng)一的、可擴(kuò)展的,全面的資源管理,但是由于強(qiáng)大而使用起來(lái)很復(fù)雜。

基本沒(méi)有

基本沒(méi)有

事件服務(wù)

提供事件訂閱發(fā)布機(jī)制,并預(yù)先定義了很多系統(tǒng)事件和對(duì)事件的響應(yīng)

將來(lái)會(huì)于Mon集成以完成事件服務(wù)

支持

配置管理

支持

無(wú)

無(wú)

監(jiān)控和診斷

支持分布式Shell(dsh)、支持SNMP

支持并發(fā)Shell(psh)、并發(fā)ping(pping)

支持SNMP

硬件控制

遠(yuǎn)程電源管理(rpower)遠(yuǎn)程控制臺(tái)(rconsole)

遠(yuǎn)程電源管理(rpower) 遠(yuǎn)程控制臺(tái)(rconwcon)

無(wú)

系統(tǒng)安裝

支持KickStartSIS 支持PXE

支持KickStartImagingCloning 支持PXEetherboot

無(wú)

域管理

全面

基本沒(méi)有

基本沒(méi)有

集成性

除了必須的開(kāi)放源碼軟件包,不與任何其他軟件集成。但是底層資源管理和事件服務(wù)提供編程接口,集成很方便。上層可以通過(guò)命令調(diào)用集成。

自動(dòng)安裝PBSMauiMyrinetMPI。將來(lái)會(huì)支持 SgridEngine Scheduler

基本沒(méi)有,應(yīng)該可以通過(guò)命令行集成

易用性

提供強(qiáng)大命令行工具和簡(jiǎn)單的GUI工具

命令行工具,將來(lái)會(huì)和Ganglia集成提供一定的GUI

提供命令行和基于Web的工具

 

 


天津市濱海高新區(qū)華苑產(chǎn)業(yè)區(qū)蘭苑路2號(hào)(貳號(hào))3號(hào)樓-2-1501


電話:022-89137237



郵件:tjhc126@126.com



產(chǎn)品中心

解決方案

COPYRIGHT @ 2018 . ALL RIGHTS RESERVED.  版權(quán)所有 天津弘昌信息技術(shù)有限公司

聯(lián)系我們

技术支持: 云端網(wǎng)絡(luò) | 管理登录
seo seo