linux系統集羣的架構與實現

基於Linux系統的開源與穩定性,以及目前服務器集羣的廣泛應用,小編下面爲大家整理關於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集羣系統防火牆的設計也值得去研究。