華東石油局物探研究院系統(tǒng)保障部 楊 帆
基于linux系統(tǒng)集群的架構與優(yōu)化
華東石油局物探研究院系統(tǒng)保障部 楊 帆
企業(yè)網(wǎng)絡中心作為企業(yè)局域網(wǎng)的數(shù)據(jù)傳輸?shù)闹行臉屑~,必然會因流量增加而產生的性能及成本問題。從而采用Linux集群技術設計的企業(yè)網(wǎng)絡中心方案在此可以有效化解這種問題。本文主要介紹采用Linux集群技術構建高性能、低成本企業(yè)網(wǎng)的方法和相關技術,并對其進行了性能評測。
Linux;計算機集群;高性能;并行計算
隨著互聯(lián)網(wǎng)技術飛速發(fā)展和各種應用軟件的逐漸開發(fā),以及對計算機運行效率要求的不斷提高,依靠增加單一服務器的處理能力并不能很好地解決迅速增長的網(wǎng)絡應用的需求。因為采用單一服務器就意味著單點失效問題的存在,同時服務器的升級往往需要暫時中斷服務。這都難以保證網(wǎng)絡的高可用性,而且采用更高性能的服務器意味著更高的成本投入,由于這些特點,集群技術由此應運而生[1]。而且由于其造價低廉,性能優(yōu)異,便于管理,編程方便,可擴展性好等優(yōu)勢,集群系統(tǒng)的應用變得越來越廣泛。
集群就是一組計算機,它們作為一個整體向用戶提供一組網(wǎng)絡資源。這些單個的計算機系統(tǒng)就是集群的節(jié)點,它們之間通過高速網(wǎng)絡連接。這些計算機能夠協(xié)同工作,并對外表現(xiàn)為一個集成單一的計算機資源[1]。Linux作為自由軟件有兩個特點:一是它免費提供源碼,二是愛好者可以按照自己的需要自由修改、復制和發(fā)布程序的源碼,并公布在Internet上。
常見的Linux集群系統(tǒng)分為如下三種基本類型[2]:
(1)高性能計算集群(HPC:High Performance Clus ter)。主要特點為并行計算,目的是用于進行大規(guī)模數(shù)值計算,解決復雜的科學問題。這種集群中的服務器(也稱計算節(jié)點)采用并行計算方法,把一個海量的計算任務分解成各個子任務,然后分配給各節(jié)點并行計算,并通過標準化的消息傳遞接口(PVM或MPI)實現(xiàn)各計算節(jié)點的同步和數(shù)據(jù)的匯集。根據(jù)其高效的計算特性一般應于于航空航天、環(huán)境科學、石油地震勘探計算數(shù)學、DNA模型計算等領域。
(2)高可用性集群(HA:High Availability)。主要特點為主備服務器自動無縫切換,目的是提供不間斷的服務。它是由主、從或多臺服務器組成。發(fā)生故障時,服務器自動切換到后備服務器,這種切換對用戶是透明的,用戶無法感覺到服務器的切換。目前,對于要求24小時提供不間斷服務的地方常常使用高可用性集群。如實時計費系統(tǒng)、實時交易處理系統(tǒng)、氣象信息數(shù)據(jù)庫、科技信息數(shù)據(jù)庫服務等領域。
(3)高可伸縮性負載均衡集群(HSLB:High Scalability Load Balance)主要特點為負載均衡,目的是提供與節(jié)點個數(shù)成正比的負載能力,將系統(tǒng)的整體負載合理地分配到各個服務器節(jié)點上,使得每個節(jié)點都不會因為超負荷工作而崩潰;并且當對系統(tǒng)整體負載需求大于系統(tǒng)整體負載能力時,可以通過增加服務器節(jié)點,平滑地拓展系統(tǒng)負荷能力。這種集群非常適合提供大訪問量的網(wǎng)絡服務。如網(wǎng)上銀行、圖形對象發(fā)布、氣象信息檢索服務、科技信息檢索服務等領域。
本文只討論高可用性集群和高可伸縮性負載均衡集群的應用。
打破傳統(tǒng)的以單機為主的企業(yè)網(wǎng)絡,設計一個基于Linux的集群技術的企業(yè)網(wǎng)解決方案。以Linux集群技術為基礎,構成一個高可用性、高可靠性、負載均衡的操作平臺。該平臺能夠以很少的成本去解決網(wǎng)絡負載,同時可以不斷監(jiān)視集群中各節(jié)點的負載狀況,并且將來自外網(wǎng)的多種應用請求轉發(fā)到到內網(wǎng)集群中的某一臺真實服務器上執(zhí)行,從而解決企業(yè)網(wǎng)服務器面臨的大量并發(fā)訪問造成的高負載問題。
該解決方案實際借助于網(wǎng)絡接入?yún)f(xié)議層的負載均衡技術,將用戶請求進行合理分布式處理,由應用服務器池中節(jié)點來共同承擔,以實現(xiàn)性能最大化、負載均衡化的一項集群技術。從用戶的角度看,所有請求是在一個并行的集群系統(tǒng)中運行的,主要通過消息傳遞方式實現(xiàn)各主機之間的通信。那么它與傳統(tǒng)的單一計算機相比,集群系統(tǒng)的主要特點是:
高可靠性:整個集群系統(tǒng)是由多個節(jié)點通過高速網(wǎng)絡進行互聯(lián),并形成一個完整的系統(tǒng),從而使用戶感覺高效可靠。
高并行處理能力:在集群系統(tǒng)同時接受多用戶請求時,集群系統(tǒng)中多個真實服務器節(jié)點之間通過并行環(huán)境和并行程序設計實現(xiàn)應用的高效并行處理。
負載均衡:通過多個節(jié)點實現(xiàn)負載均衡,極大地發(fā)揮節(jié)點的運行效率。
管理便捷性:通過相應的集群硬件和集群管理軟件能夠對整個集群實現(xiàn)單一的管理。
基于Linux集群技術的企業(yè)網(wǎng)的體系結構主要有三部分組成[3],如圖1所示。
(1)負載均衡器
在整個企業(yè)網(wǎng)工作的過程中,內網(wǎng)主要是通過集群去接入Internet的。從局域網(wǎng)中的某個客戶端看,集群主要提供了一個Ip地址的映像,整個企業(yè)網(wǎng)共用這個虛擬IP地址,客戶端的所有應用請求都發(fā)往這個虛擬IP地址,通過地址轉換連接Internet,從而可以有效地解決企業(yè)網(wǎng)IP地址的短缺問題,在本解決方案中,整個集群系統(tǒng)如果只有一臺主負載均衡器,那么在多用戶并發(fā)請求時,容易造成負載均衡器的超負荷運行,從而造成該節(jié)點失效,使其成為集群系統(tǒng)中最薄弱的環(huán)節(jié)。所以在解決方案中,提出備份負載均衡器,這樣在主負載均衡器失效的時候,可以將請求移至備份負載均衡器并完成相應的工作。
(2)應用服務器集群
方案中服務節(jié)點池指的是真實服務的應用服務器群。客戶端發(fā)出的服務請求通過均衡器處理以后轉交到應用服務器群有相應的真實服務器作出響應并返回數(shù)據(jù)。在企業(yè)網(wǎng)中一般提供www、Ftp、vod視頻及會議等服務,使用單一服務器在訪問高峰期會造成服務器超負載運行。從而通過多臺應用服務器集群可以有效達到負載均衡,同時也是比較經(jīng)濟可行的。應用服務器節(jié)點在工作過程中也有可能出現(xiàn)暫時無法連接的情況,特別是某一節(jié)點提供多種服務的時候,系統(tǒng)會根據(jù)故障將服務進行遷移至其他真實服務器節(jié)點執(zhí)行。另外,對集群系統(tǒng)用戶來說,最關鍵的問題就是要把客戶的應用程序和管理系統(tǒng)有機地結合起來。
(3)存儲系統(tǒng)
存儲系統(tǒng)主要為整個集群系統(tǒng)內部運行提供穩(wěn)定、一致的文件存取服務。該系統(tǒng)可以為應用服務器集群提供單一的文件系統(tǒng)入口;并且自動完成不同節(jié)點訪問文件系統(tǒng)所引發(fā)的文件鎖定、負載均衡、容錯、內容一致、讀寫事務等底層功能,對應用層提供一個透明文件訪問服務體系。
根據(jù)以上分析和企業(yè)使用的曙光Linux集群技術方案能夠合理的解決企業(yè)網(wǎng)絡高性能低成本的需求。計算機集群系統(tǒng)通常采用并行計算體系結構,它能夠將一個大型的計算任務分解成各個子任務,然后分配到各節(jié)點并進行并行計算。一般來說,集群中的節(jié)點可以被劃分為5種類型[4]:
登陸節(jié)點:指的是外部用戶訪問改集群系統(tǒng)的入口。用戶可以登陸到該節(jié)點來編譯和運行作業(yè)。
管理節(jié)點:指的是用于監(jiān)控各節(jié)點是否出現(xiàn)故障,并對出現(xiàn)故障的節(jié)點的任務進行轉移。
存儲節(jié)點:用于集群系統(tǒng)的數(shù)據(jù)存儲和備份。
安裝節(jié)點:提供在集群系統(tǒng)中各軟件安裝的節(jié)點。
服務器池節(jié)點:指的是整個集群系統(tǒng)的核心,也就是我們方案中的服務器池。主要功能就是執(zhí)行計算。
該解決方案主要通過這些節(jié)點完成各節(jié)點的互相訪問[5]。每臺計算機所扮演的節(jié)點類型一般是由集群的實際需求和計算機的配置來決定的。該方案中,登陸節(jié)點、管理節(jié)點、存儲節(jié)點、安裝節(jié)點就存放在同一臺計算機上,這臺計算機通常被稱為主節(jié)點。其具體集群系統(tǒng)的結構如圖2所示。
當用戶的應用需求較大時,主節(jié)點負責進行作業(yè)的分配計算,主節(jié)點通常通過監(jiān)視各個節(jié)點的運行狀態(tài)實現(xiàn)作業(yè)的分配。當發(fā)現(xiàn)某些節(jié)點失效時,系統(tǒng)會自動啟動其他應用服務器群里的真實服務器來執(zhí)行當前的應用需求。同時在此方案中,若主節(jié)點出現(xiàn)故障,還專門配置了備份服務器來接受用戶的需求。從而達到系統(tǒng)的高性能運行。通過實驗,單一服務器與集群系統(tǒng)在處理同樣多的客戶數(shù)時,所花費的時間見圖3。
本文主要對企業(yè)網(wǎng)絡的結構的分析,利用Linux集群解決方案,并通過實例演示對該方案進行了闡述,同時通過性能測試,充分說明該方案性能是較高的。本方案同時給企業(yè)節(jié)省很大的成本,并給企業(yè)的用戶體驗帶來極大的收益,對于集群的應運具有深遠的影響。
[1]陳年.Linux服務器集群系統(tǒng)構建[J].福建電腦,2005(12).
[2]張林波,遲學斌.并行計算導論[M].北京:清華大學出版社,2006.
[3]姚耀文.基于Linux的服務器群集方案[J].計算機工程,2001(4).
[4]張瑩瑩.基于校園網(wǎng)的集群服務系統(tǒng)[J].計算機與信息技術,2006(3).
[5]古奮飛,王良俠,張莉.基于Linux集群的高性能低成本的校園網(wǎng)解決方案[J].電腦知識與技術,2012(1).
楊帆(1987—),女,江蘇興化人,大學???,主要研究方向:計算機linux。