[摘要]Linux操作系統(tǒng)的應(yīng)用日趨成熟,Linux在很多計(jì)算機(jī)領(lǐng)域都占有一定的市場(chǎng)份額。基于Linux構(gòu)建Web、Mail、FTP等應(yīng)用服務(wù)器,已成為當(dāng)今的主流。這也為L(zhǎng)inux集群的發(fā)展創(chuàng)造了良好的平臺(tái)。Linux集群開始是用于大學(xué)和研究部門中的計(jì)算系統(tǒng),現(xiàn)在已經(jīng)被大量用于天氣預(yù)報(bào)、圖象處理、數(shù)據(jù)挖掘、生物制藥和基因測(cè)序軟件開發(fā)等領(lǐng)域。由于集群具有高可擴(kuò)展性、高性價(jià)比、高可用性、高性能等特性,這為L(zhǎng)inux集群技術(shù)的發(fā)展奠定了良好的基礎(chǔ)。
[關(guān)鍵詞]Linux集群技術(shù)系統(tǒng)分析
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)1210101-01
一、引言
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和網(wǎng)絡(luò)應(yīng)用在各個(gè)領(lǐng)域的深入使用,帶來了服務(wù)器需求的迅速增長(zhǎng),當(dāng)訪問需求增長(zhǎng)時(shí),服務(wù)器會(huì)在很短的時(shí)間內(nèi)超載,獨(dú)立且能滿足數(shù)據(jù)吞吐的服務(wù)器價(jià)格昂貴,而Linux集群技術(shù)在滿足要求的基礎(chǔ)上費(fèi)用低廉。目前,越來越多的企業(yè)采用Linux操作系統(tǒng),提供Web、郵件、FTP、數(shù)據(jù)庫(kù)等服務(wù)。隨著人們對(duì)Linux服務(wù)器依賴的加深,對(duì)其可靠性、負(fù)載能力和數(shù)據(jù)能力也備加關(guān)注。Linux可以運(yùn)行于極為普及的PC機(jī)上,不需要購(gòu)買昂貴的搭載UNIX操作系統(tǒng)硬件設(shè)備。在幾臺(tái)運(yùn)行Linux的PC機(jī)上,只要加入相應(yīng)的集群軟件,就可以組成具有很
強(qiáng)計(jì)算能力、負(fù)載能力和可靠性的Linux集群。
二、集群定義分類及應(yīng)用
(一)集群的定義。集群(cluster)就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。傳統(tǒng)的UNIX的集群產(chǎn)品,例如TruClusterServer,價(jià)格十分昂貴,而Linux集群產(chǎn)品則具有優(yōu)良的性能價(jià)格比。
(二)Linux集群的分類及應(yīng)用。按照不同的側(cè)重點(diǎn),可以把Linux集群分為三類。一類是高性能計(jì)算集群:主要針對(duì)的是大規(guī)模數(shù)值計(jì)算,解決復(fù)雜的科學(xué)問題。這種集群中的服務(wù)器采用并行計(jì)算方法,把獨(dú)立海量的計(jì)算任務(wù)分解成各個(gè)子任務(wù),然后分配給各節(jié)點(diǎn)并行計(jì)算,并通過標(biāo)準(zhǔn)化的消息傳遞接口(PVM或MPI)實(shí)現(xiàn)各計(jì)算節(jié)點(diǎn)的同步和數(shù)據(jù)的匯集。隨著社會(huì)進(jìn)步與科學(xué)技術(shù)的發(fā)展,并行計(jì)算越來越多地應(yīng)用于各行各業(yè),如計(jì)算數(shù)學(xué)、環(huán)境科學(xué)、航空航天、石油地震勘探、天氣預(yù)報(bào)、生物制藥、人工智能、DNA模型計(jì)算等領(lǐng)域。第二類是高可伸縮性負(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í),可以通過增加服務(wù)器節(jié)點(diǎn),平滑地拓展系統(tǒng)負(fù)荷能力。這種集群非常適合提供大訪問量的網(wǎng)絡(luò)服務(wù)。如網(wǎng)上營(yíng)業(yè)系統(tǒng)、網(wǎng)銀、網(wǎng)游服務(wù)器、VOD點(diǎn)播系統(tǒng)、圖形對(duì)象發(fā)布、氣象信息檢索服務(wù)、互聯(lián)網(wǎng)門戶網(wǎng)站等領(lǐng)域。目前,世界最著名的Google搜索引擎就是由近2萬臺(tái)后臺(tái)服務(wù)器構(gòu)成,并通過基于Linux的高可伸縮性負(fù)載均衡集群技術(shù)來實(shí)現(xiàn)的。第三類是高可用性集群:設(shè)計(jì)目的就是要最大限度地減少服務(wù)中斷時(shí)間。高可用性集群的主要功能就是提供7×24小時(shí)不間斷服務(wù)。有許多應(yīng)用程序都必須一天24小時(shí)不停運(yùn)轉(zhuǎn),如數(shù)據(jù)交換機(jī)、軍事監(jiān)測(cè)系統(tǒng)、工業(yè)控制系統(tǒng)、電信業(yè)務(wù)支持系統(tǒng)等。對(duì)這些應(yīng)用程序來說,暫時(shí)的停機(jī)和重啟都會(huì)導(dǎo)致數(shù)據(jù)的丟失或?yàn)?zāi)難性的后果。高可用性集群通常是由多個(gè)節(jié)點(diǎn)構(gòu)成,當(dāng)單個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),系統(tǒng)其他節(jié)點(diǎn)接替服務(wù),整個(gè)系統(tǒng)仍能繼續(xù)正常對(duì)外提供服務(wù)。
三、Linux集群要解決的技術(shù)關(guān)鍵
(一)如何解決大規(guī)模集群系統(tǒng)的可擴(kuò)展性和性能衰減的問題。集群的體系結(jié)構(gòu)存在一些問題,如系統(tǒng)中有許多操作系統(tǒng)映像,單一系統(tǒng)映像能力差;當(dāng)系統(tǒng)較大時(shí),可擴(kuò)展性和可靠性較差,并且系統(tǒng)性能衰減較快。
(二)并行調(diào)度的任務(wù)粒度劃分問題。為了最大限度發(fā)揮集群計(jì)算的并行度,我們往往把減小系統(tǒng)通信延時(shí)作為任務(wù)劃分的依據(jù),即將一些任務(wù)劃分到一個(gè)節(jié)點(diǎn)上串行執(zhí)行,使得通信延時(shí)的減小效果超過串行執(zhí)行對(duì)性能的影響。
(三)集群內(nèi)部節(jié)點(diǎn)之間的通訊延時(shí)問題。節(jié)點(diǎn)之間使用一些專用的或者通用的互聯(lián)網(wǎng)絡(luò)協(xié)議進(jìn)行連接。它避免了共享內(nèi)存所出現(xiàn)的資源競(jìng)爭(zhēng),有助于提高節(jié)點(diǎn)利用率。通用的互聯(lián)網(wǎng)絡(luò)協(xié)議有:千兆以太網(wǎng)、Myrinet等。專用的協(xié)議有TCP/IP協(xié)議的精簡(jiǎn)協(xié)議,如ActiveMe-ssage、
FastMessage、VIA(Virtual Interface Architecture)等。一般對(duì)不同的情況采用不同的專用網(wǎng)絡(luò)協(xié)議減少通信延時(shí)。
(四)調(diào)度器的負(fù)載均衡技術(shù)的問題。IP負(fù)載均衡技術(shù):當(dāng)客戶請(qǐng)求到達(dá)時(shí),調(diào)度器只根據(jù)服務(wù)器負(fù)載情況和設(shè)定的調(diào)度算法從服務(wù)器池中選出一個(gè)服務(wù)器,將該請(qǐng)求轉(zhuǎn)發(fā)到選出的服務(wù)器,并記錄這個(gè)調(diào)度;當(dāng)這個(gè)請(qǐng)求的其它報(bào)文到達(dá),也會(huì)被轉(zhuǎn)發(fā)到前面選出的服務(wù)器?;趦?nèi)容請(qǐng)求分發(fā)技術(shù):服務(wù)器可以提供不同的服務(wù),當(dāng)客戶請(qǐng)求到達(dá)時(shí),調(diào)度器可根據(jù)請(qǐng)求的內(nèi)容選擇服務(wù)器執(zhí)行請(qǐng)求。
(五)海量數(shù)據(jù)的可視化顯示問題。因?yàn)轱@示數(shù)據(jù)不是從本地硬盤中讀取的,可視化運(yùn)行環(huán)境也不是事先在本地安裝的。如果采用OpenGL等傳統(tǒng)的可視化手段,只能在web服務(wù)器端生成圖像,再一幅幅地傳給客戶端顯示,在當(dāng)前帶寬受限的情況下,是不可能滿足網(wǎng)絡(luò)環(huán)境下高性能計(jì)算的可視化要求的。而Java3D能夠很好地解決這個(gè)問題:它是面向Internet的三維開發(fā)環(huán)境,它繼承了Java的網(wǎng)絡(luò)語言特征——代碼的可傳輸性,使得用來生成可視化場(chǎng)景的小巧的Applet可以方便地從服務(wù)器傳給客戶端,然后在客戶端本地運(yùn)行。也就是說,傳輸?shù)牟皇菆D像本身,而是控制三維圖像生成的程序和數(shù)據(jù),因而大大節(jié)省了網(wǎng)絡(luò)傳輸數(shù)據(jù)量。借助于Java3D三維可視化環(huán)境開發(fā)圖形化用戶界面,用于處理用戶程序的海量數(shù)據(jù)顯示的帶寬瓶頸問題。
四、總結(jié)
在本文中,我們對(duì)Linux操作系統(tǒng)在機(jī)群技術(shù)方向的應(yīng)用及相關(guān)技術(shù)做出研究分析,給出了Linux集群要解決的技術(shù)關(guān)鍵。計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,要求服務(wù)器不但處理速度高、吞吐量大、容錯(cuò)性能好,而且要可靠性高、穩(wěn)定性強(qiáng)。Linux集群技術(shù)由多臺(tái)服務(wù)器共同承擔(dān)一些繁重的計(jì)算或I/O任務(wù),從而以較低成本消除網(wǎng)絡(luò)瓶頸,提高網(wǎng)絡(luò)的靈活性和可靠性。
參考文獻(xiàn):
[1]劉德春、吳紹興,基于Linux的集群技術(shù)的開發(fā)與應(yīng)用[J].計(jì)算機(jī)教育,2006(09).
[2]屈鋼、鄧健青、韓云路,Linux集群技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2005(05).
[3](美)Arman Danesh著,Mastering Linux,電子工業(yè)出版社,2005.
作者簡(jiǎn)介:
紀(jì)秀輝(1982-),男,黑龍江省綏化市人,本科,江西省九江學(xué)院信息科學(xué)與技術(shù)學(xué)院教育技術(shù)教研室助教,研究方向:嵌入式系統(tǒng)研究開發(fā)。