- 相關推薦
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地址設置為192.168.1.1(master)、192.196.1.2、192.196.1.3、192.168.1.4,子網掩碼為255.255.255.0。按先后順序對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集群系統防火墻的設計也值得去研究。
【linux系統集群的架構與實現】相關文章:
Linux 服務器集群系統實現方案07-12
Linux概念架構解讀201610-15
三層架構用戶服務系統的設計與實現08-26
Linux文件系統簡介06-01
Linux操作系統概述06-22
Linux系統下ftp的管理08-19
如何搭建系統CSS架構12-31
Linux系統守護進程的啟動方法12-15
Linux btrfs文件系統及管理07-31