華東石油局物探研究院系統(tǒng)保障部 楊 帆
基于linux系統(tǒng)集群的架構(gòu)與優(yōu)化
華東石油局物探研究院系統(tǒng)保障部 楊 帆
企業(yè)網(wǎng)絡(luò)中心作為企業(yè)局域網(wǎng)的數(shù)據(jù)傳輸?shù)闹行臉屑~,必然會(huì)因流量增加而產(chǎn)生的性能及成本問題。從而采用Linux集群技術(shù)設(shè)計(jì)的企業(yè)網(wǎng)絡(luò)中心方案在此可以有效化解這種問題。本文主要介紹采用Linux集群技術(shù)構(gòu)建高性能、低成本企業(yè)網(wǎng)的方法和相關(guān)技術(shù),并對(duì)其進(jìn)行了性能評(píng)測(cè)。
Linux;計(jì)算機(jī)集群;高性能;并行計(jì)算
隨著互聯(lián)網(wǎng)技術(shù)飛速發(fā)展和各種應(yīng)用軟件的逐漸開發(fā),以及對(duì)計(jì)算機(jī)運(yùn)行效率要求的不斷提高,依靠增加單一服務(wù)器的處理能力并不能很好地解決迅速增長(zhǎng)的網(wǎng)絡(luò)應(yīng)用的需求。因?yàn)椴捎脝我环?wù)器就意味著單點(diǎn)失效問題的存在,同時(shí)服務(wù)器的升級(jí)往往需要暫時(shí)中斷服務(wù)。這都難以保證網(wǎng)絡(luò)的高可用性,而且采用更高性能的服務(wù)器意味著更高的成本投入,由于這些特點(diǎn),集群技術(shù)由此應(yīng)運(yùn)而生[1]。而且由于其造價(jià)低廉,性能優(yōu)異,便于管理,編程方便,可擴(kuò)展性好等優(yōu)勢(shì),集群系統(tǒng)的應(yīng)用變得越來(lái)越廣泛。
集群就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn),它們之間通過高速網(wǎng)絡(luò)連接。這些計(jì)算機(jī)能夠協(xié)同工作,并對(duì)外表現(xiàn)為一個(gè)集成單一的計(jì)算機(jī)資源[1]。Linux作為自由軟件有兩個(gè)特點(diǎn):一是它免費(fèi)提供源碼,二是愛好者可以按照自己的需要自由修改、復(fù)制和發(fā)布程序的源碼,并公布在Internet上。
常見的Linux集群系統(tǒng)分為如下三種基本類型[2]:
(1)高性能計(jì)算集群(HPC:High Performance Clus ter)。主要特點(diǎn)為并行計(jì)算,目的是用于進(jìn)行大規(guī)模數(shù)值計(jì)算,解決復(fù)雜的科學(xué)問題。這種集群中的服務(wù)器(也稱計(jì)算節(jié)點(diǎn))采用并行計(jì)算方法,把一個(gè)海量的計(jì)算任務(wù)分解成各個(gè)子任務(wù),然后分配給各節(jié)點(diǎn)并行計(jì)算,并通過標(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 Availability)。主要特點(diǎn)為主備服務(wù)器自動(dòng)無(wú)縫切換,目的是提供不間斷的服務(wù)。它是由主、從或多臺(tái)服務(wù)器組成。發(fā)生故障時(shí),服務(wù)器自動(dòng)切換到后備服務(wù)器,這種切換對(duì)用戶是透明的,用戶無(wú)法感覺到服務(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í),可以通過增加服務(wù)器節(jié)點(diǎn),平滑地拓展系統(tǒng)負(fù)荷能力。這種集群非常適合提供大訪問量的網(wǎng)絡(luò)服務(wù)。如網(wǎng)上銀行、圖形對(duì)象發(fā)布、氣象信息檢索服務(wù)、科技信息檢索服務(wù)等領(lǐng)域。
本文只討論高可用性集群和高可伸縮性負(fù)載均衡集群的應(yīng)用。
打破傳統(tǒng)的以單機(jī)為主的企業(yè)網(wǎng)絡(luò),設(shè)計(jì)一個(gè)基于Linux的集群技術(shù)的企業(yè)網(wǎng)解決方案。以Linux集群技術(shù)為基礎(chǔ),構(gòu)成一個(gè)高可用性、高可靠性、負(fù)載均衡的操作平臺(tái)。該平臺(tái)能夠以很少的成本去解決網(wǎng)絡(luò)負(fù)載,同時(shí)可以不斷監(jiān)視集群中各節(jié)點(diǎn)的負(fù)載狀況,并且將來(lái)自外網(wǎng)的多種應(yīng)用請(qǐng)求轉(zhuǎn)發(fā)到到內(nèi)網(wǎng)集群中的某一臺(tái)真實(shí)服務(wù)器上執(zhí)行,從而解決企業(yè)網(wǎng)服務(wù)器面臨的大量并發(fā)訪問造成的高負(fù)載問題。
該解決方案實(shí)際借助于網(wǎng)絡(luò)接入?yún)f(xié)議層的負(fù)載均衡技術(shù),將用戶請(qǐng)求進(jìn)行合理分布式處理,由應(yīng)用服務(wù)器池中節(jié)點(diǎn)來(lái)共同承擔(dān),以實(shí)現(xiàn)性能最大化、負(fù)載均衡化的一項(xiàng)集群技術(shù)。從用戶的角度看,所有請(qǐng)求是在一個(gè)并行的集群系統(tǒng)中運(yùn)行的,主要通過消息傳遞方式實(shí)現(xiàn)各主機(jī)之間的通信。那么它與傳統(tǒng)的單一計(jì)算機(jī)相比,集群系統(tǒng)的主要特點(diǎn)是:
高可靠性:整個(gè)集群系統(tǒng)是由多個(gè)節(jié)點(diǎn)通過高速網(wǎng)絡(luò)進(jìn)行互聯(lián),并形成一個(gè)完整的系統(tǒng),從而使用戶感覺高效可靠。
高并行處理能力:在集群系統(tǒng)同時(shí)接受多用戶請(qǐng)求時(shí),集群系統(tǒng)中多個(gè)真實(shí)服務(wù)器節(jié)點(diǎn)之間通過并行環(huán)境和并行程序設(shè)計(jì)實(shí)現(xiàn)應(yīng)用的高效并行處理。
負(fù)載均衡:通過多個(gè)節(jié)點(diǎn)實(shí)現(xiàn)負(fù)載均衡,極大地發(fā)揮節(jié)點(diǎn)的運(yùn)行效率。
管理便捷性:通過相應(yīng)的集群硬件和集群管理軟件能夠?qū)φ麄€(gè)集群實(shí)現(xiàn)單一的管理。
基于Linux集群技術(shù)的企業(yè)網(wǎng)的體系結(jié)構(gòu)主要有三部分組成[3],如圖1所示。
(1)負(fù)載均衡器
在整個(gè)企業(yè)網(wǎng)工作的過程中,內(nèi)網(wǎng)主要是通過集群去接入Internet的。從局域網(wǎng)中的某個(gè)客戶端看,集群主要提供了一個(gè)Ip地址的映像,整個(gè)企業(yè)網(wǎng)共用這個(gè)虛擬IP地址,客戶端的所有應(yīng)用請(qǐng)求都發(fā)往這個(gè)虛擬IP地址,通過地址轉(zhuǎn)換連接Internet,從而可以有效地解決企業(yè)網(wǎng)IP地址的短缺問題,在本解決方案中,整個(gè)集群系統(tǒng)如果只有一臺(tái)主負(fù)載均衡器,那么在多用戶并發(fā)請(qǐng)求時(shí),容易造成負(fù)載均衡器的超負(fù)荷運(yùn)行,從而造成該節(jié)點(diǎn)失效,使其成為集群系統(tǒng)中最薄弱的環(huán)節(jié)。所以在解決方案中,提出備份負(fù)載均衡器,這樣在主負(fù)載均衡器失效的時(shí)候,可以將請(qǐng)求移至備份負(fù)載均衡器并完成相應(yīng)的工作。
(2)應(yīng)用服務(wù)器集群

方案中服務(wù)節(jié)點(diǎn)池指的是真實(shí)服務(wù)的應(yīng)用服務(wù)器群。客戶端發(fā)出的服務(wù)請(qǐng)求通過均衡器處理以后轉(zhuǎn)交到應(yīng)用服務(wù)器群有相應(yīng)的真實(shí)服務(wù)器作出響應(yīng)并返回?cái)?shù)據(jù)。在企業(yè)網(wǎng)中一般提供www、Ftp、vod視頻及會(huì)議等服務(wù),使用單一服務(wù)器在訪問高峰期會(huì)造成服務(wù)器超負(fù)載運(yùn)行。從而通過多臺(tái)應(yīng)用服務(wù)器集群可以有效達(dá)到負(fù)載均衡,同時(shí)也是比較經(jīng)濟(jì)可行的。應(yīng)用服務(wù)器節(jié)點(diǎn)在工作過程中也有可能出現(xiàn)暫時(shí)無(wú)法連接的情況,特別是某一節(jié)點(diǎn)提供多種服務(wù)的時(shí)候,系統(tǒng)會(huì)根據(jù)故障將服務(wù)進(jìn)行遷移至其他真實(shí)服務(wù)器節(jié)點(diǎn)執(zhí)行。另外,對(duì)集群系統(tǒng)用戶來(lái)說(shuō),最關(guān)鍵的問題就是要把客戶的應(yīng)用程序和管理系統(tǒng)有機(jī)地結(jié)合起來(lái)。
(3)存儲(chǔ)系統(tǒng)
存儲(chǔ)系統(tǒng)主要為整個(gè)集群系統(tǒng)內(nèi)部運(yùn)行提供穩(wěn)定、一致的文件存取服務(wù)。該系統(tǒng)可以為應(yīng)用服務(wù)器集群提供單一的文件系統(tǒng)入口;并且自動(dòng)完成不同節(jié)點(diǎn)訪問文件系統(tǒng)所引發(fā)的文件鎖定、負(fù)載均衡、容錯(cuò)、內(nèi)容一致、讀寫事務(wù)等底層功能,對(duì)應(yīng)用層提供一個(gè)透明文件訪問服務(wù)體系。
根據(jù)以上分析和企業(yè)使用的曙光Linux集群技術(shù)方案能夠合理的解決企業(yè)網(wǎng)絡(luò)高性能低成本的需求。計(jì)算機(jī)集群系統(tǒng)通常采用并行計(jì)算體系結(jié)構(gòu),它能夠?qū)⒁粋€(gè)大型的計(jì)算任務(wù)分解成各個(gè)子任務(wù),然后分配到各節(jié)點(diǎn)并進(jìn)行并行計(jì)算。一般來(lái)說(shuō),集群中的節(jié)點(diǎn)可以被劃分為5種類型[4]:
登陸節(jié)點(diǎn):指的是外部用戶訪問改集群系統(tǒng)的入口。用戶可以登陸到該節(jié)點(diǎn)來(lái)編譯和運(yùn)行作業(yè)。
管理節(jié)點(diǎn):指的是用于監(jiān)控各節(jié)點(diǎn)是否出現(xiàn)故障,并對(duì)出現(xiàn)故障的節(jié)點(diǎn)的任務(wù)進(jìn)行轉(zhuǎn)移。
存儲(chǔ)節(jié)點(diǎn):用于集群系統(tǒng)的數(shù)據(jù)存儲(chǔ)和備份。
安裝節(jié)點(diǎn):提供在集群系統(tǒng)中各軟件安裝的節(jié)點(diǎn)。
服務(wù)器池節(jié)點(diǎn):指的是整個(gè)集群系統(tǒng)的核心,也就是我們方案中的服務(wù)器池。主要功能就是執(zhí)行計(jì)算。
該解決方案主要通過這些節(jié)點(diǎn)完成各節(jié)點(diǎn)的互相訪問[5]。每臺(tái)計(jì)算機(jī)所扮演的節(jié)點(diǎn)類型一般是由集群的實(shí)際需求和計(jì)算機(jī)的配置來(lái)決定的。該方案中,登陸節(jié)點(diǎn)、管理節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)、安裝節(jié)點(diǎn)就存放在同一臺(tái)計(jì)算機(jī)上,這臺(tái)計(jì)算機(jī)通常被稱為主節(jié)點(diǎn)。其具體集群系統(tǒng)的結(jié)構(gòu)如圖2所示。
當(dāng)用戶的應(yīng)用需求較大時(shí),主節(jié)點(diǎn)負(fù)責(zé)進(jìn)行作業(yè)的分配計(jì)算,主節(jié)點(diǎn)通常通過監(jiān)視各個(gè)節(jié)點(diǎn)的運(yùn)行狀態(tài)實(shí)現(xiàn)作業(yè)的分配。當(dāng)發(fā)現(xiàn)某些節(jié)點(diǎn)失效時(shí),系統(tǒng)會(huì)自動(dòng)啟動(dòng)其他應(yīng)用服務(wù)器群里的真實(shí)服務(wù)器來(lái)執(zhí)行當(dāng)前的應(yīng)用需求。同時(shí)在此方案中,若主節(jié)點(diǎn)出現(xiàn)故障,還專門配置了備份服務(wù)器來(lái)接受用戶的需求。從而達(dá)到系統(tǒng)的高性能運(yùn)行。通過實(shí)驗(yàn),單一服務(wù)器與集群系統(tǒng)在處理同樣多的客戶數(shù)時(shí),所花費(fèi)的時(shí)間見圖3。
本文主要對(duì)企業(yè)網(wǎng)絡(luò)的結(jié)構(gòu)的分析,利用Linux集群解決方案,并通過實(shí)例演示對(duì)該方案進(jìn)行了闡述,同時(shí)通過性能測(cè)試,充分說(shuō)明該方案性能是較高的。本方案同時(shí)給企業(yè)節(jié)省很大的成本,并給企業(yè)的用戶體驗(yàn)帶來(lái)極大的收益,對(duì)于集群的應(yīng)運(yùn)具有深遠(yuǎn)的影響。
[1]陳年.Linux服務(wù)器集群系統(tǒng)構(gòu)建[J].福建電腦,2005(12).
[2]張林波,遲學(xué)斌.并行計(jì)算導(dǎo)論[M].北京:清華大學(xué)出版社,2006.
[3]姚耀文.基于Linux的服務(wù)器群集方案[J].計(jì)算機(jī)工程,2001(4).
[4]張瑩瑩.基于校園網(wǎng)的集群服務(wù)系統(tǒng)[J].計(jì)算機(jī)與信息技術(shù),2006(3).
[5]古奮飛,王良俠,張莉.基于Linux集群的高性能低成本的校園網(wǎng)解決方案[J].電腦知識(shí)與技術(shù),2012(1).
楊帆(1987—),女,江蘇興化人,大學(xué)專科,主要研究方向:計(jì)算機(jī)linux。