linux系統叢集的架構與實現

才智咖 人氣:2.57W

基於Linux系統的開源與穩定性,以及目前伺服器叢集的廣泛應用,小編下面為大家整理關於linux系統叢集的架構與實現的文章,歡迎閱讀參考:

1.引言

伴隨網際網路技術飛速發展和各種應用的逐漸開發,以及對計算機執行效率要求的不斷提高,依靠增加單一伺服器的處理能力並不能很好地解決迅速增長的網路應用的需求。因為採用單一伺服器就意味著單點失效問題的存在,同時伺服器的升級往往需要暫時中斷服務。這都難以保證網路的高可用性,而且採用更高效能的伺服器意味著更高的成本投入,由於這些特點,叢集技術由此應運而生。而且由於其造價低廉,效能優異,便於管理,程式設計方便,可擴充套件性好等優勢,集群系統的應用變得越來越廣泛。

2.叢集的概念和分類

叢集就是一組計算機,它們作為一個整體向用戶提供一組網路資源。這些單個的計算機系統就是叢集的節點,它們之間通過高速網路連線。這些計算機能夠協同工作,並對外表現為一個整合單一的計算機資源[1]。

常見的Linux集群系統分為如下三種基本型別:

(1)高效能運算叢集(HPC:High Perfor-mance Clus ter)。主要特點為平行計算,目的是用於進行大規模數值計算,解決複雜的科學問題。這種叢集中的伺服器(也稱計算節點)採用平行計算方法,把一個海量的計算任務分解成各個子任務,然後分配給各節點平行計算,並通過標準化的訊息傳遞介面(PVM或MPI)實現各計算節點的同步和資料的彙集。根據其高效的計算特性一般應于于航空航天、環境科學、石油地震勘探計算數學、DNA模型計算等領域。

(2)高可用性叢集(HA:High Availabi-lity)。主要特點為主備伺服器自動無縫切換,目的是提供不間斷的服務。它是由主、從或多臺伺服器組成。發生故障時,伺服器自動切換到後備伺服器,這種切換對使用者是透明的,使用者無法感覺到伺服器的切換。目前,對於要求24小時提供不間斷服務的地方常常使用高可用性叢集。如實時計費系統、實時交易處理系統、氣象資訊資料庫、科技資訊資料庫服務等領域。

(3)高可伸縮性負載均衡叢集(HSLB:High Scalability Load Balance)主要特點為負載均衡,目的是提供與節點個數成正比的負載能力,將系統的整體負載合理地分配到各個伺服器節點上,使得每個節點都不會因為超負荷工作而崩潰;並且當對系統整體負載需求大於系統整體負載能力時,可以通過增加伺服器節點,平滑地拓展系統負荷能力。這種叢集非常適合提供大訪問量的網路服務。如網上銀行、圖形物件釋出、氣象資訊檢索服務、科技資訊檢索服務等領域。

結合公司的伺服器及實際應運情況,本文只討論第一種高效能運算叢集。

3.平行計算叢集設計

並行叢集構造方案是一個管理節點與一組同構或者異構的計算節點通過網路相連,管理節點承擔分配並行任務和提供外部管理介面的任務,計算節點負責各自分配得到的平行計算任務以及和其它節點之間的資料交換,可選的儲存節點提供配置檔案和處理資料的.統一管理[2][3]。以四個節點為例的集群系統的構造拓撲如圖1所示。

叢集軟體模組如圖2所示:

(1)作業系統:Linux系統對不同計算機架構的良好支援保證了高效能叢集的擴充套件能力和價效比。選取比較穩定的Linux系統版本(本文采用的是Red Hat)。對於計算節點的系統管理可以採用PXE網路安裝等方式,提升安裝和管理的效率。

(2)節點間通訊:通過建立節點間的無密碼SSH訪問實現節點間通訊。

(3)檔案分享方案:NFS檔案分享系統的引入方便並行程式或者待處理的資料檔案的統一部署。該方案便於統一管理,對可執行程式或者配置檔案的修改都可以在同一路徑下一次性完成。各個計算節點之間的環境變數等配置檔案都相同。

4)計算任務分配:MPI。

4.實現平行計算叢集的關鍵技術

高效能運算叢集之所以高效其核心在於平行計算模型的設計[4]——MPI。

平行計算將程序相對獨立的分配於不同的節點上,由各自獨立的作業系統排程,享有獨立的CPU和記憶體資源(記憶體可以共享);通過網路聯接的不同計算機的多個程序,程序位於不同的計算機,訊息傳遞是實現程序間通訊的唯一方式;根據應用程式對訊息傳遞功能的需求,全球工業、應用和研究部門聯合推出標準的訊息傳遞介面函式,不考慮其具體實現,以保證並行應用程式的可移植性在當前所有的訊息傳遞軟體中。最重要的就是MPI,MPI表示訊息傳遞介面(Message Passing Interface),它能執行在所有的並行平臺上,包括SMP和PVP。

MPI的目的是為編寫訊息傳遞程式而開發的廣範使用的標準。象這個介面一樣,為訊息傳遞建立一個實際的、可移植的、有效的和靈活的標準。實現如下目標:

(1)統一的應用程式設計介面(不必為編譯器或一個系統實現庫)。

(2)允許有效的通訊:避免儲存器到儲存器的拷貝,而允許計算和通訊的重疊,儘可能給通訊協同處理器解除安裝。

(3)對於介面允許方便的C語言和Fortran 77聯接。

(4)設定一個可靠的通訊介面:使用者不必處理通訊失敗。這些失敗由基本的通訊子系統處理。

(5)定義一個介面,並非不同於現在的實踐,如:PVM,NX,Express,p4等,還提供更大靈活性的擴充套件。

(6)定義一個介面,它能在基本的通訊和系統軟體無重大改變時,在許多生產商的平臺上實現。介面的語義是獨立於語言的。

(7)介面應設計成允許線索-安全(thread-safety)。

5.架設適合我公司的叢集

5.1 硬體選擇

(1)以使用的曙光伺服器為例,使用千兆網路(千兆交換機),進行高效能運算。使用百兆網路進行網路監控和管理。

(2)每臺伺服器做為一個節點(以四臺伺服器為例),每臺機器的系統及配置必須一致。

5.2 軟體安裝準備

主(Master)伺服器需安裝:

(1)防火牆(含NAT架設);

(2)RSH;

(3)NIS Server;

(4)NFS Server;

(5)Compiler Install;

(6)MPICH Install;

(7)其它特殊功能。

從屬(Slave)伺服器所需安裝:

(1)防火牆的設定;

(2)RSH;

(3)NIS Client;

(4)NFS Client。

5.3 安裝步驟

(1)架設伺服器系統

以圖1所示拓撲圖為例,但需在主伺服器上連線顯示器,鍵盤及滑鼠。

(2)系統安裝(Red Hat)

選擇安裝型別:Red Hat提供了三種不同型別的軟體包套件、個人桌面、工作站和伺服器,以根據自己的需要選擇不同的安裝型別,這裡選擇“定製”。硬碟分割槽選擇用Disk Druid工具進行分割槽,這裡將分成兩個分割槽,一個Swap和一個根目錄(/),swap空間的大小一般為實體記憶體的2-3倍,剩下的空間都分給根目錄。

(3)防火牆(含NAT主機)與網路設定、網路配置

Red Hat提供了三種安全級別的防火牆配置,可以根據自己的需要進行選擇。在此設計中,需要開22埠,也就是SSH服務。

分別將四臺機器的IP地址設定為(master)、、、,子網掩碼為。按先後順序對NFS、NIS和RSH進行設定,主要目的為實現資源共享。

(4)選擇安裝軟體包(關鍵要是對MPICH的安裝)但注意需要安裝GCC編譯器

下面是在命令介面下測試叢集是否安裝成功進行的測試舉例[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後面接的就是所使用的節點的個數。

6.結論

通過一個簡單的測試對1000個100000進行累加運算表明:即使只有四個節點的叢集伺服器的運算速度也比一臺主機的運算速度高出3倍,充分發揮曙光集群系統的作用。但必須注意的是做為伺服器的集群系統,在日常的使用和維護中,必須以穩定和安全做為首要目的,因此以具備系統穩定性的linux集群系統防火牆的設計也值得去研究。