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