linux系統(tǒng)集群的架構(gòu)與實(shí)現(xiàn)
基于Linux系統(tǒng)的開(kāi)源與穩(wěn)定性,以及目前服務(wù)器集群的廣泛應(yīng)用,小編下面為大家整理關(guān)于linux系統(tǒng)集群的架構(gòu)與實(shí)現(xiàn)的文章,歡迎閱讀參考:
1.引言
伴隨互聯(lián)網(wǎng)技術(shù)飛速發(fā)展和各種應(yīng)用的逐漸開(kāi)發(fā),以及對(duì)計(jì)算機(jī)運(yùn)行效率要求的不斷提高,依靠增加單一服務(wù)器的處理能力并不能很好地解決迅速增長(zhǎng)的網(wǎng)絡(luò)應(yīng)用的需求。因?yàn)椴捎脝我环⻊?wù)器就意味著單點(diǎn)失效問(wèn)題的存在,同時(shí)服務(wù)器的升級(jí)往往需要暫時(shí)中斷服務(wù)。這都難以保證網(wǎng)絡(luò)的高可用性,而且采用更高性能的服務(wù)器意味著更高的成本投入,由于這些特點(diǎn),集群技術(shù)由此應(yīng)運(yùn)而生。而且由于其造價(jià)低廉,性能優(yōu)異,便于管理,編程方便,可擴(kuò)展性好等優(yōu)勢(shì),集群系統(tǒng)的應(yīng)用變得越來(lái)越廣泛。
2.集群的概念和分類(lèi)
集群就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn),它們之間通過(guò)高速網(wǎng)絡(luò)連接。這些計(jì)算機(jī)能夠協(xié)同工作,并對(duì)外表現(xiàn)為一個(gè)集成單一的計(jì)算機(jī)資源[1]。
常見(jiàn)的Linux集群系統(tǒng)分為如下三種基本類(lèi)型:
(1)高性能計(jì)算集群(HPC:High Perfor-mance Clus ter)。主要特點(diǎn)為并行計(jì)算,目的是用于進(jìn)行大規(guī)模數(shù)值計(jì)算,解決復(fù)雜的科學(xué)問(wèn)題。這種集群中的服務(wù)器(也稱(chēng)計(jì)算節(jié)點(diǎn))采用并行計(jì)算方法,把一個(gè)海量的計(jì)算任務(wù)分解成各個(gè)子任務(wù),然后分配給各節(jié)點(diǎn)并行計(jì)算,并通過(guò)標(biāo)準(zhǔn)化的消息傳遞接口(PVM或MPI)實(shí)現(xiàn)各計(jì)算節(jié)點(diǎn)的同步和數(shù)據(jù)的匯集。根據(jù)其高效的計(jì)算特性一般應(yīng)于于航空航天、環(huán)境科學(xué)、石油地震勘探計(jì)算數(shù)學(xué)、DNA模型計(jì)算等領(lǐng)域。
(2)高可用性集群(HA:High Availabi-lity)。主要特點(diǎn)為主備服務(wù)器自動(dòng)無(wú)縫切換,目的是提供不間斷的服務(wù)。它是由主、從或多臺(tái)服務(wù)器組成。發(fā)生故障時(shí),服務(wù)器自動(dòng)切換到后備服務(wù)器,這種切換對(duì)用戶是透明的,用戶無(wú)法感覺(jué)到服務(wù)器的切換。目前,對(duì)于要求24小時(shí)提供不間斷服務(wù)的地方常常使用高可用性集群。如實(shí)時(shí)計(jì)費(fèi)系統(tǒng)、實(shí)時(shí)交易處理系統(tǒng)、氣象信息數(shù)據(jù)庫(kù)、科技信息數(shù)據(jù)庫(kù)服務(wù)等領(lǐng)域。
(3)高可伸縮性負(fù)載均衡集群(HSLB:High Scalability Load Balance)主要特點(diǎn)為負(fù)載均衡,目的是提供與節(jié)點(diǎn)個(gè)數(shù)成正比的負(fù)載能力,將系統(tǒng)的整體負(fù)載合理地分配到各個(gè)服務(wù)器節(jié)點(diǎn)上,使得每個(gè)節(jié)點(diǎn)都不會(huì)因?yàn)槌?fù)荷工作而崩潰;并且當(dāng)對(duì)系統(tǒng)整體負(fù)載需求大于系統(tǒng)整體負(fù)載能力時(shí),可以通過(guò)增加服務(wù)器節(jié)點(diǎn),平滑地拓展系統(tǒng)負(fù)荷能力。這種集群非常適合提供大訪問(wèn)量的網(wǎng)絡(luò)服務(wù)。如網(wǎng)上銀行、圖形對(duì)象發(fā)布、氣象信息檢索服務(wù)、科技信息檢索服務(wù)等領(lǐng)域。
結(jié)合公司的服務(wù)器及實(shí)際應(yīng)運(yùn)情況,本文只討論第一種高性能計(jì)算集群。
3.并行計(jì)算集群設(shè)計(jì)
并行集群構(gòu)造方案是一個(gè)管理節(jié)點(diǎn)與一組同構(gòu)或者異構(gòu)的計(jì)算節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)相連,管理節(jié)點(diǎn)承擔(dān)分配并行任務(wù)和提供外部管理接口的任務(wù),計(jì)算節(jié)點(diǎn)負(fù)責(zé)各自分配得到的并行計(jì)算任務(wù)以及和其它節(jié)點(diǎn)之間的數(shù)據(jù)交換,可選的存儲(chǔ)節(jié)點(diǎn)提供配置文件和處理數(shù)據(jù)的統(tǒng)一管理[2][3]。以四個(gè)節(jié)點(diǎn)為例的集群系統(tǒng)的構(gòu)造拓?fù)淙鐖D1所示。
集群軟件模塊如圖2所示:
(1)操作系統(tǒng):Linux系統(tǒng)對(duì)不同計(jì)算機(jī)架構(gòu)的良好支持保證了高性能集群的擴(kuò)展能力和性價(jià)比。選取比較穩(wěn)定的Linux系統(tǒng)版本(本文采用的是Red Hat)。對(duì)于計(jì)算節(jié)點(diǎn)的系統(tǒng)管理可以采用PXE網(wǎng)絡(luò)安裝等方式,提升安裝和管理的效率。
(2)節(jié)點(diǎn)間通信:通過(guò)建立節(jié)點(diǎn)間的無(wú)密碼SSH訪問(wèn)實(shí)現(xiàn)節(jié)點(diǎn)間通信。
(3)文件共享方案:NFS文件共享系統(tǒng)的引入方便并行程序或者待處理的數(shù)據(jù)文件的統(tǒng)一部署。該方案便于統(tǒng)一管理,對(duì)可執(zhí)行程序或者配置文件的修改都可以在同一路徑下一次性完成。各個(gè)計(jì)算節(jié)點(diǎn)之間的環(huán)境變量等配置文件都相同。
4)計(jì)算任務(wù)分配:MPI。
4.實(shí)現(xiàn)并行計(jì)算集群的關(guān)鍵技術(shù)
高性能計(jì)算集群之所以高效其核心在于并行計(jì)算模型的設(shè)計(jì)[4]——MPI。
并行計(jì)算將進(jìn)程相對(duì)獨(dú)立的分配于不同的節(jié)點(diǎn)上,由各自獨(dú)立的操作系統(tǒng)調(diào)度,享有獨(dú)立的CPU和內(nèi)存資源(內(nèi)存可以共享);通過(guò)網(wǎng)絡(luò)聯(lián)接的不同計(jì)算機(jī)的多個(gè)進(jìn)程,進(jìn)程位于不同的計(jì)算機(jī),消息傳遞是實(shí)現(xiàn)進(jìn)程間通信的唯一方式;根據(jù)應(yīng)用程序?qū)ο鬟f功能的需求,全球工業(yè)、應(yīng)用和研究部門(mén)聯(lián)合推出標(biāo)準(zhǔn)的消息傳遞界面函數(shù),不考慮其具體實(shí)現(xiàn),以保證并行應(yīng)用程序的可移植性在當(dāng)前所有的消息傳遞軟件中。最重要的就是MPI,MPI表示消息傳遞接口(Message Passing Interface),它能運(yùn)行在所有的并行平臺(tái)上,包括SMP和PVP。
MPI的目的是為編寫(xiě)消息傳遞程序而開(kāi)發(fā)的廣范使用的`標(biāo)準(zhǔn)。象這個(gè)接口一樣,為消息傳遞建立一個(gè)實(shí)際的、可移植的、有效的和靈活的標(biāo)準(zhǔn)。實(shí)現(xiàn)如下目標(biāo):
(1)統(tǒng)一的應(yīng)用編程接口(不必為編譯器或一個(gè)系統(tǒng)實(shí)現(xiàn)庫(kù))。
(2)允許有效的通信:避免存儲(chǔ)器到存儲(chǔ)器的拷貝,而允許計(jì)算和通信的重疊,盡可能給通信協(xié)同處理器卸載。
(3)對(duì)于接口允許方便的C語(yǔ)言和Fortran 77聯(lián)接。
(4)設(shè)定一個(gè)可靠的通信接口:用戶不必處理通信失敗。這些失敗由基本的通信子系統(tǒng)處理。
(5)定義一個(gè)接口,并非不同于現(xiàn)在的實(shí)踐,如:PVM,NX,Express,p4等,還提供更大靈活性的擴(kuò)展。
(6)定義一個(gè)接口,它能在基本的通信和系統(tǒng)軟件無(wú)重大改變時(shí),在許多生產(chǎn)商的平臺(tái)上實(shí)現(xiàn)。接口的語(yǔ)義是獨(dú)立于語(yǔ)言的。
(7)接口應(yīng)設(shè)計(jì)成允許線索-安全(thread-safety)。
5.架設(shè)適合我公司的集群
5.1 硬件選擇
(1)以使用的曙光服務(wù)器為例,使用千兆網(wǎng)絡(luò)(千兆交換機(jī)),進(jìn)行高性能計(jì)算。使用百兆網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)監(jiān)控和管理。
(2)每臺(tái)服務(wù)器做為一個(gè)節(jié)點(diǎn)(以四臺(tái)服務(wù)器為例),每臺(tái)機(jī)器的系統(tǒng)及配置必須一致。
5.2 軟件安裝準(zhǔn)備
主(Master)服務(wù)器需安裝:
(1)防火墻(含NAT架設(shè));
(2)RSH;
(3)NIS Server;
(4)NFS Server;
(5)Compiler Install;
(6)MPICH Install;
(7)其它特殊功能。
從屬(Slave)服務(wù)器所需安裝:
(1)防火墻的設(shè)定;
(2)RSH;
(3)NIS Client;
(4)NFS Client。
5.3 安裝步驟
(1)架設(shè)服務(wù)器系統(tǒng)
以圖1所示拓?fù)鋱D為例,但需在主服務(wù)器上連接顯示器,鍵盤(pán)及鼠標(biāo)。
(2)系統(tǒng)安裝(Red Hat)
選擇安裝類(lèi)型:Red Hat提供了三種不同類(lèi)型的軟件包套件、個(gè)人桌面、工作站和服務(wù)器,以根據(jù)自己的需要選擇不同的安裝類(lèi)型,這里選擇“定制”。硬盤(pán)分區(qū)選擇用Disk Druid工具進(jìn)行分區(qū),這里將分成兩個(gè)分區(qū),一個(gè)Swap和一個(gè)根目錄(/),swap空間的大小一般為物理內(nèi)存的2-3倍,剩下的空間都分給根目錄。
(3)防火墻(含NAT主機(jī))與網(wǎng)絡(luò)設(shè)定、網(wǎng)絡(luò)配置
Red Hat提供了三種安全級(jí)別的防火墻配置,可以根據(jù)自己的需要進(jìn)行選擇。在此設(shè)計(jì)中,需要開(kāi)22端口,也就是SSH服務(wù)。
分別將四臺(tái)機(jī)器的IP地址設(shè)置為192.168.1.1(master)、192.196.1.2、192.196.1.3、192.168.1.4,子網(wǎng)掩碼為255.255.255.0。按先后順序?qū)FS、NIS和RSH進(jìn)行設(shè)定,主要目的為實(shí)現(xiàn)資源共享。
(4)選擇安裝軟件包(關(guān)鍵要是對(duì)MPICH的安裝)但注意需要安裝GCC編譯器
下面是在命令界面下測(cè)試集群是否安裝成功進(jìn)行的測(cè)試舉例[5]:
[test@servertest]$cp-r/cluster/server/program/mpich/examples/.
[test@server test]$cd examples
[test@server examples]$make clusterfile
[test@server examples]$mpirun-np 4 clusterfile
注:在最后一行命令-np后面接的就是所使用的節(jié)點(diǎn)的個(gè)數(shù)。
6.結(jié)論
通過(guò)一個(gè)簡(jiǎn)單的測(cè)試對(duì)1000個(gè)100000進(jìn)行累加運(yùn)算表明:即使只有四個(gè)節(jié)點(diǎn)的集群服務(wù)器的運(yùn)算速度也比一臺(tái)主機(jī)的運(yùn)算速度高出3倍,充分發(fā)揮曙光集群系統(tǒng)的作用。但必須注意的是做為服務(wù)器的集群系統(tǒng),在日常的使用和維護(hù)中,必須以穩(wěn)定和安全做為首要目的,因此以具備系統(tǒng)穩(wěn)定性的linux集群系統(tǒng)防火墻的設(shè)計(jì)也值得去研究。
【linux系統(tǒng)集群的架構(gòu)與實(shí)現(xiàn)】相關(guān)文章:
1.Linux 服務(wù)器集群系統(tǒng)實(shí)現(xiàn)方案
2.三層架構(gòu)用戶服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.高可用的SAP系統(tǒng)架構(gòu)的實(shí)現(xiàn)
4.航標(biāo)業(yè)務(wù)系統(tǒng)架構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)
6.Android系統(tǒng)架構(gòu)簡(jiǎn)介