摘 要:高性能計(jì)算集群是處理器技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物,是一組獨(dú)立的計(jì)算機(jī)的集合體。本文介紹了山東大學(xué)粒子物理計(jì)算集群的搭建過程。我們利用22臺服務(wù)器,建立了一個擁有320核cpu計(jì)算能力和80TB存儲能力的計(jì)算集群,為粒子物理實(shí)驗(yàn)數(shù)據(jù)處理提供了強(qiáng)大的計(jì)算平臺。同時探索了在高校網(wǎng)絡(luò)環(huán)境下搭建和管理計(jì)算集群的方法,為擴(kuò)大計(jì)算集群的規(guī)模打下了良好的基礎(chǔ)。
關(guān)鍵詞:高性能計(jì)算集群;PBS
集群(cluster)技術(shù)是指通過互聯(lián)網(wǎng)絡(luò)將計(jì)算機(jī)集合在一起,通過并行處理技術(shù),根據(jù)一定規(guī)則把一個大的問題分解為小的子問題,在集群不同節(jié)點(diǎn)上共同完成計(jì)算,從而大大降低計(jì)算時間。集群可以分為3類:高可用性集群,負(fù)載均衡集群,高性能計(jì)算集群。高性能計(jì)算集群主要用于處理復(fù)雜的科學(xué)計(jì)算問題,應(yīng)用在需要大規(guī)模科學(xué)計(jì)算的環(huán)境中。高能物理計(jì)算、生物計(jì)算等,性能集群上運(yùn)行的應(yīng)用程序一般使用并行算法,把一個大的普通問題根據(jù)一定的規(guī)則分解成許多小的子問題,集群內(nèi)的不同節(jié)點(diǎn)上并行計(jì)算,從而大大提高計(jì)算速度。高能物理實(shí)驗(yàn)中,會產(chǎn)生大量的數(shù)據(jù)需要處理,非常依賴高性能計(jì)算集群的幫助。我們結(jié)合山東大學(xué)粒子物理的實(shí)驗(yàn)需要,組建了包含320核CPU和80TB存儲能力計(jì)算集群。依靠PBS(Portable Batch System)經(jīng)過測試,能夠很好地滿足現(xiàn)有粒子物理實(shí)驗(yàn)的需要。高性能計(jì)算集群的組成包含硬件系統(tǒng)、軟件系統(tǒng)和網(wǎng)絡(luò)環(huán)境三大部分。下面我們將分別介紹三大系統(tǒng)的搭建策略。
1 硬件系統(tǒng)的搭建
在本計(jì)算機(jī)集群中,每個節(jié)點(diǎn)(服務(wù)器)的作用不是完全一樣的,按功能可以分為六類:分別是用戶登錄節(jié)點(diǎn)(Gateway Node)、核心管理節(jié)點(diǎn)(Center Management Node)、作業(yè)調(diào)度節(jié)點(diǎn)(PBS server Node)、作業(yè)提交節(jié)點(diǎn)(User Node)、計(jì)算節(jié)點(diǎn)(Compute Node)和存儲節(jié)點(diǎn)(Storage Node)。如圖所示:
用戶登錄節(jié)點(diǎn)(hostname:lxplus01):是集群的網(wǎng)關(guān)、計(jì)算集群的入口。外網(wǎng)用戶首先遠(yuǎn)程登錄Gateway Node,再由它登錄到其他節(jié)點(diǎn),這樣能在物理層將外網(wǎng)和內(nèi)網(wǎng)分隔開,保證集群系統(tǒng)的安全性;核心管理節(jié)點(diǎn)(hostname:CS):為計(jì)算機(jī)群提供基本的網(wǎng)絡(luò)服務(wù)和管理功能,如DNS、NFS、NTP、DHCP、LDAP等等。本集群的核心節(jié)點(diǎn)同時提供安裝集群的各種軟件。包括操作系統(tǒng)、應(yīng)用軟件和管理腳本。核心管理節(jié)點(diǎn)是集群系統(tǒng)最關(guān)鍵的節(jié)點(diǎn),所以我們對其做了硬盤冗余設(shè)置;作業(yè)調(diào)度節(jié)點(diǎn)(hostname:pbssrv):作業(yè)管理系統(tǒng)PBS(Portable Batch System)就安裝在本節(jié)點(diǎn)上,通過PBS作業(yè)調(diào)度管理,可以對集群系統(tǒng)的資源進(jìn)行有效的分配、監(jiān)測和控制;登陸節(jié)點(diǎn)(hostname:sl01-sl03):是用戶登錄計(jì)算集群并提交作業(yè)的節(jié)點(diǎn)。用戶遠(yuǎn)程登錄slxx, 會被隨機(jī)分配到sl01-sl03節(jié)點(diǎn)。這樣可以提高用戶提交作業(yè)的效率,也便于以后擴(kuò)展計(jì)算資源;計(jì)算節(jié)點(diǎn)(hostname:cu101-cu116):是整個集群的計(jì)算節(jié)點(diǎn),他的功能就是執(zhí)行計(jì)算。存儲節(jié)點(diǎn)(hostname:hepgdata/d1-d6):它是集群系統(tǒng)的數(shù)據(jù)存儲器和數(shù)據(jù)服務(wù)器。存儲節(jié)點(diǎn)的功能主要是存儲并行程序中所需要的大量數(shù)據(jù)。本集群磁盤陣列在做完raid05之后,存儲能力可以達(dá)到80TB。
以上對集群節(jié)點(diǎn)的劃分并不是一成不變的。根據(jù)實(shí)際的需要,有時可以將管理節(jié)點(diǎn)、登錄節(jié)點(diǎn)、調(diào)度節(jié)點(diǎn)放到同一個服務(wù)器上。一般而言,單臺服務(wù)器承擔(dān)的負(fù)載越多效率會越低,而服務(wù)器過多又會造成對資源的浪費(fèi)。所以應(yīng)該在搭建集群系統(tǒng)前,對所需的計(jì)算資源做好科學(xué)的規(guī)劃。
2 軟件系統(tǒng)的搭建
2.1 操作系統(tǒng):操作系統(tǒng)的功能是對計(jì)算機(jī)硬件資源的管理、向用戶提供編程接口和交互操作界面的軟件、控制輸入和輸出設(shè)備、管理內(nèi)存和配置文件系統(tǒng)等,同時操作系統(tǒng)支持多種高級語言和各種類型的應(yīng)用程序。linux操作系統(tǒng)依靠其強(qiáng)大的功能和穩(wěn)定性,在計(jì)算集群操作系統(tǒng)中占據(jù)著主導(dǎo)地位。本集群使用的是由費(fèi)米國家加速器實(shí)驗(yàn)室和歐洲核子中心(CERN)等共同開發(fā)的scientific linux6.3操作系統(tǒng)。Scientific linux系統(tǒng)被廣泛的應(yīng)用于高能物理的科研和教育領(lǐng)域,能夠很好兼容和支持高能物理常用的應(yīng)用軟件。在CS核心服務(wù)器安裝系統(tǒng)和網(wǎng)絡(luò)配置完成之后,利用CS服務(wù)器上NFS服務(wù)器功能,建立共享目錄 /hep/sl-repo/6.3/x86_64/ ,linux安裝程序就保存在此共享目錄之下。其他所有服務(wù)器就可以通過NFS server提供的共享目錄來安裝系統(tǒng)。只需要制作一個USB Flash drive,并在安裝時輸入正確的安裝路徑boot: linux repo=nfs:172.16.52.252:/hep/sl-repo/6.3/x86_64/,其他方法與磁盤安裝相同。此方法最大的好處在于能夠同時批量的安裝系統(tǒng)。
2.2 CS管理系統(tǒng):CS核心服務(wù)器上配置有DNS、DHCP、LDAP、NTP服務(wù)器。他們共同承擔(dān)著集群的管理和服務(wù)功能。CS服務(wù)器至少應(yīng)配置兩個網(wǎng)卡,一個接外網(wǎng),實(shí)現(xiàn)DNS和NTP功能。另一個連接內(nèi)網(wǎng)地址,通過局域網(wǎng)實(shí)現(xiàn)對集群的管理。
DNS(Domain Name System)服務(wù)器的查詢流程:需要解析服務(wù)的Client先查看本機(jī)的 /etc/hosts;若無結(jié)果,則client查看本地的DNS緩存服務(wù)器。對于內(nèi)網(wǎng)的節(jié)點(diǎn),只需要在 /etc/hosts下添加IP和對應(yīng)域名即可解析,對于需要連接外網(wǎng)的服務(wù)器需要在DNS /var/named 修改相應(yīng)的A記錄映射信息。
NTP(Network Time Protocol)服務(wù)器為集群提供時間同步服務(wù)。如果計(jì)算刀片間時間不同步,在實(shí)踐中會出現(xiàn)丟失作業(yè)等錯誤。NTP server的配置文件是/etc/ntp.conf。用server參數(shù)設(shè)定上級時間服務(wù)器,語法為:server? IP地址或域名 [prefer] ;IP地址或域名就是我們指定的上級時間服務(wù)器,如果 Server 參數(shù)最后加上 prefer,表示我們的 NTP 服務(wù)器主要以該部主機(jī)時間進(jìn)行校準(zhǔn)。我們將NTP server與210.72.145.44 中國國家授時中心服務(wù)器和1.cn.pool.ntp.org連接,提供NTP server的同步服務(wù)。而其他節(jié)點(diǎn),通過內(nèi)網(wǎng)定期與NTP server進(jìn)行時間同步即可。
基于LDAP的用戶管理:LDAP是輕量目錄訪問協(xié)議,英文全稱是Lightweight Directory Access Protocol。LDAP是實(shí)現(xiàn)被稱為目錄服務(wù)的信息服務(wù),這種目錄可以將儲存在 /etc 下的group、passwd和shadow文件的信息存儲到相關(guān)文件下。他就像一個電話簿一樣存儲用戶的密碼、用戶組等信息。集群中有多臺Linux服務(wù)器,如果每臺服務(wù)器都有自己獨(dú)立的用戶名和密碼,那么記憶和維護(hù)這些信息就非常困難。于是,我們通過利用LDAP,統(tǒng)一為所有的用戶提供密碼驗(yàn)證服務(wù)來解決這個問題。LDAP服務(wù)器的配置成功之后,可以實(shí)現(xiàn)在集群中任一節(jié)點(diǎn)登錄,統(tǒng)一認(rèn)證,統(tǒng)一管理。這種單點(diǎn)登錄,統(tǒng)一認(rèn)證的方式,減輕了工作量,同時也極大地保證了系統(tǒng)的安全性。
NFS(NetWork File System):在集群系統(tǒng)中,一些相同的軟件需要安裝在所有節(jié)點(diǎn)上,由于節(jié)點(diǎn)之間是協(xié)同工作的,節(jié)點(diǎn)間存在大量的數(shù)據(jù)共享,沒有必要在每一個節(jié)點(diǎn)上重復(fù)安裝這些相同的軟件。此外,在執(zhí)行并行作業(yè)的時候,要求每一個節(jié)點(diǎn)都能訪問到相應(yīng)的可執(zhí)行文件,對這些可執(zhí)行文件也需要做一個備份。NFS,即網(wǎng)絡(luò)文件系統(tǒng),是集群系統(tǒng)中解決上述問題的一個很有效方法。NFS 是一種在Linux 環(huán)境下通過網(wǎng)絡(luò)共享文件的標(biāo)準(zhǔn)方式,這種機(jī)制是經(jīng)過網(wǎng)絡(luò)將遠(yuǎn)程主機(jī)上的分區(qū)以及目錄掛載到本地系統(tǒng),實(shí)現(xiàn)在網(wǎng)絡(luò)平臺上與其他人共享文件及目錄。5在本集群中,CS核心管理節(jié)點(diǎn)作為NFS服務(wù)器,其他節(jié)點(diǎn)作為NFS的客戶端掛載文件系統(tǒng)。比如我們將 /hep/home 掛載到每個節(jié)點(diǎn)的 /hep/home 目錄下,這樣每臺節(jié)點(diǎn)都可以使用 /hep/home目錄下的ROOT V5.3和GEANT等軟件。在客戶端配置NFS的時候,可以執(zhí)行如下命令:vim /etc/fstab 并在/etc/fstab 文件中輸入以下內(nèi)容:IP:/hep /hep nfs bg,hard,intr,retry=600 0 0這樣可以實(shí)現(xiàn)在啟動時自動掛載NFS目錄。
2.3 作業(yè)系統(tǒng)的構(gòu)建:PBS最初由NASA的Ames研究中心開發(fā),主要為了提供一個能滿足異構(gòu)計(jì)算網(wǎng)絡(luò)需要的軟件包,用于靈活的批處理,特別是滿足高性能計(jì)算的需要,如集群系統(tǒng)、超級計(jì)算機(jī)和大規(guī)模并行系統(tǒng)。PBS目前包括OpenPBS, PBS Pro和Torque三個主要分支。本集群使用的是Torque。PBS組成分為:PBS_server服務(wù)器,PBS_sched調(diào)度器,PBS_mom執(zhí)行器。6在管理節(jié)點(diǎn)(pbssrv)上安裝pbs_server,所有節(jié)點(diǎn)上安裝pbs_mom,所有計(jì)算節(jié)點(diǎn)(cu101-cu116)和提交節(jié)點(diǎn)(slxx)上安裝PBS cleint。Server端配置成功之后,啟動pbs_server; pbs_sched; pbs_mom,并把其寫到/etc/rc.local里使其能開機(jī)自啟動。PBS要正常工作,還需要通過qmgr命令創(chuàng)建隊(duì)列等設(shè)置。最后在計(jì)算節(jié)點(diǎn)啟動pbs_mom ,把pbs_mom寫入/etc/rc.local。PBS作業(yè)系統(tǒng)的使用方法是通過將作業(yè)腳本提交到PBS服務(wù)器和適當(dāng)?shù)年?duì)列,由計(jì)算節(jié)點(diǎn)執(zhí)行并返回結(jié)果。
3 網(wǎng)絡(luò)系統(tǒng)的搭建
集群系統(tǒng)是多節(jié)點(diǎn)互聯(lián)工作,所以必須通過互聯(lián)網(wǎng)將節(jié)點(diǎn)連接在一起。粒子物理計(jì)算集群的網(wǎng)絡(luò)建設(shè)是基于萬兆核心交換機(jī)和千兆網(wǎng)線互聯(lián)。計(jì)算刀片之間是通過機(jī)箱內(nèi)部交換模塊實(shí)現(xiàn)萬兆互聯(lián)。節(jié)點(diǎn)的網(wǎng)絡(luò)配置,是通過DHCP服務(wù)器自動獲取IP和DNS信息。DHCP服務(wù)器安裝在CS上,可以在配置文件 /etc/dhcp/dhcpd.conf 設(shè)置自動分配指定的IP地址給節(jié)點(diǎn),并且為了更好地管理IP地址,我們又在網(wǎng)關(guān)上對IP地址和MAC地址進(jìn)行了綁定。集群的網(wǎng)絡(luò)地址可以分為外網(wǎng)地址和內(nèi)網(wǎng)地址。所以在Gateway server和CS上,需要至少有兩個網(wǎng)卡,分別連接內(nèi)網(wǎng)和外網(wǎng)。而集群內(nèi)部的節(jié)點(diǎn),只需配置內(nèi)網(wǎng)地址即可。
4 總結(jié)
本文介紹了山東大學(xué)粒子物理計(jì)算集群的基本架構(gòu)和搭建過程。在搭建過程中,解決了集群的系統(tǒng)監(jiān)控、用戶管理、作業(yè)程序的實(shí)現(xiàn)、并行化的效率以及高速網(wǎng)絡(luò)實(shí)現(xiàn)等難點(diǎn),同等計(jì)算能力下,節(jié)約了計(jì)算成本和管理難度。同時積累了建設(shè)和管理經(jīng)驗(yàn),為下一步集群的升級擴(kuò)容創(chuàng)造了客觀和主觀條件。
參考文獻(xiàn):
[1]BUYYA R.高性能集群計(jì)算:結(jié)構(gòu)與系統(tǒng)(第一卷)[M].北京:電子工業(yè)出版社,2001.6.
[2]葛慧娟.基于linux操作系統(tǒng)的DNS服務(wù)器配置[D].西安電子科技大學(xué),2005.
[3]王嘉佳.基于目錄服務(wù)的統(tǒng)一身份認(rèn)證系統(tǒng)的研究與實(shí)現(xiàn)[D].北京交通大學(xué), 2005.3.
[4]Callaghan, Brent NF S Illustrated [M]. Massachusetts: Addison - Wesley P ublishing Company, 1999.
[5]Troque Administrators Guide, Cluster Resources, Inc, 2008.
作者簡介:盧鵬,男,1986年,山東濟(jì)南人,漢族,工程師,助理工程師,研究方向:粒子物理方向。