摘要:隨著計算需求的日益增大,機群系統(tǒng)的規(guī)模越來越大,節(jié)點數(shù)目越來越多,傳統(tǒng)的機群部署與配置方法已經(jīng)逐漸不能勝任。為此,在機群環(huán)境中部署了一套集中管理系統(tǒng),將所有的部署與配置工作集中到少數(shù)幾臺服務(wù)器上,而無須對單個節(jié)點進行重復(fù)操作,實現(xiàn)對機群系統(tǒng)節(jié)點的快速部署,并對已安裝的節(jié)點進行實時與動態(tài)配置,從而極大地減少了工作量,提高了效率。
關(guān)鍵詞:機群; 可擴展標記語言; KickStart; PXE; 模板; 組件
中圖分類號:TP311
文獻標志碼:A
文章編號:1001-3695(2008)06-1911-03
Key words:computer cluster; XML; KickStart; PXE; template; component
高性能計算是當前計算機科學(xué)中一個日趨重要的分支。而大規(guī)模的機群系統(tǒng)又是高性能計算中一個重要的組成部分。目前,大規(guī)模的機群系統(tǒng)在各個領(lǐng)域的應(yīng)用越來越廣泛,包括高能物理、金融、氣象等諸多領(lǐng)域[1]。對于這些領(lǐng)域,隨著計算需求的增大,機群系統(tǒng)的規(guī)模也越來越大,節(jié)點數(shù)目從幾十、幾百到幾千、上萬不等[2]。像歐洲粒子物理研究中心CERN,目前機群節(jié)點數(shù)目已經(jīng)達到兩千多個。在筆者所在的高能物理研究所,目前機群與網(wǎng)格環(huán)境的節(jié)點總數(shù)為300多個,但是隨著BEPCⅡ(北京正負電子對撞機)改造工程的進行,計算需求將迅猛增長,機群、網(wǎng)格等計算系統(tǒng)的規(guī)模將成倍增長,總共節(jié)點數(shù)目至2010年將達到4 000個。機群節(jié)點數(shù)目的成倍增長,對機群系統(tǒng)的部署與管理來說是一個新的挑戰(zhàn),新的問題也不斷出現(xiàn)。
以Linux平臺為例,機群系統(tǒng)的部署與配置上常見的問題有:a)每個新增節(jié)點需要安裝操作系統(tǒng),傳統(tǒng)的是從cdrom對單個節(jié)點進行安裝。安裝前需要填寫大量的信息;安裝完成后需要配置系統(tǒng)服務(wù)。b)節(jié)點按照所承擔(dān)的不同功能,需要安裝不同的軟件包。c)需要定期升級某些軟件包。d)在某些節(jié)點上,需要卸載某些軟件包,或者安裝新的軟件包。e)節(jié)點上的軟件包安裝后,需要修改或者更新相應(yīng)的配置文件或者啟動某些服務(wù)才能生效。
這些工作如果只是在單機上進行,顯然是沒有什么難度。但是當節(jié)點數(shù)目超過100個時,如果這些繁瑣的安裝與配置工作都由管理員手動逐個節(jié)點來完成,將會耗費巨大的人力與時間,而且效率低下,也容易出現(xiàn)錯誤。
針對這種情況,傳統(tǒng)的機群管理工具,如無盤工作站、網(wǎng)絡(luò)計算機、硬盤克隆[3]等都不能完美地解決所有問題。
在大規(guī)模的機群系統(tǒng)上,建立一種集中、快速的方式來部署與動態(tài)配置機群系統(tǒng)是非常必要的。這樣可以讓所有的工作集中在幾臺服務(wù)器上,而無須對單個節(jié)點進行操作,同時能使節(jié)點動態(tài)更新自己的配置信息,從而簡化工作量,提高效率。目前類似的系統(tǒng)有歐洲粒子物理中心(CERN)的QUATTOR[5]、意大利核物理研究所(INFN)的YAM+APT。為此,筆者在自己的機群系統(tǒng)上部署了一套集中管理系統(tǒng)(centralized management system,CMS),對目前的機群進行快速、集中的部署與動態(tài)的配置。
1CMS的原理
CMS的目標是要將所有的部署與配置工作集中到幾臺服務(wù)器上(服務(wù)器的數(shù)目視機群的規(guī)模大小而定),而無須在每個節(jié)點機上執(zhí)行重復(fù)安裝與配置工作。因此, CMS的整體構(gòu)架為C/S模型。所有的機群節(jié)點均是這些服務(wù)器的客戶端。
如圖1所示,每個服務(wù)器各自承擔(dān)一部分獨立的功能,各個節(jié)點分別與這些服務(wù)器發(fā)生聯(lián)系。
服務(wù)器按照其功能的不同,可分為三種類型,即配置信息管理服務(wù)器(configuration database,CDB)、軟件包管理服務(wù)器(software repository,SWR)、自動安裝服務(wù)器(automatic installation server,AIS)。如果機群系統(tǒng)上節(jié)點數(shù)目小于100,這三個服務(wù)器可以集中在一臺機器上。當節(jié)點數(shù)目更多時,由于網(wǎng)絡(luò)帶寬的限制,軟件包服務(wù)器可以分布在幾臺機器上。CMS的目標是讓這三個服務(wù)器協(xié)同工作,使得與服務(wù)器通信的各個客戶節(jié)點能自動安裝操作系統(tǒng),自動安裝、升級、刪除軟件包,并且完成自我配置與實時、動態(tài)配置(客戶端節(jié)點根據(jù)CDB中配置信息的改變而自動更新本節(jié)點的配置信息)。
2CMS的體系結(jié)構(gòu)
CMS的服務(wù)器與客戶端主要功能(圖2)如下:
a)配置信息管理服務(wù)器CDB。CDB是節(jié)點機配置信息管理的核心,它主要用來保存所有目標節(jié)點的軟、硬件等配置信息,如CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)參數(shù)、內(nèi)核參數(shù)、RPM包等信息。每個節(jié)點的配置信息都是用高級描述性語言通過模板的形式進行描述,經(jīng)過編譯,變成XML形式的文件存儲在CDB中。由CMS管理的所有節(jié)點都有一個與自己的主機名惟一對應(yīng)的XML文件被保存在CDB中。CDB中的模板被組織成樹型結(jié)構(gòu),可以在不同的級別上進行重用和繼承,使得模板的配置工作更簡單。系統(tǒng)安裝完成后,客戶端節(jié)點通過HTTP從CDB下載自己對應(yīng)的XML文件,并由節(jié)點上相應(yīng)的配置組件(針對每一個服務(wù)或功能,在節(jié)點上都有一個相應(yīng)的腳本來控制配置過程)控制,進行自我配置。如果需要修改某個節(jié)點的配置信息(網(wǎng)絡(luò)參數(shù)、軟件配置等),只需修改CDB中該節(jié)點對應(yīng)的模板,并且重新編譯。目標節(jié)點通過監(jiān)聽進程監(jiān)聽到自己的配置文件發(fā)生變化,則由配置信息緩存管理器(configuration cache manager,CCM)從CDB下載新的XML文件,再由節(jié)點上的配置組件控制,進行重新配置。整個過程只需在CDB上進行修改,目標節(jié)點上的工作是自動完成的,無須人工干預(yù)。
b)軟件包管理服務(wù)器SWR。SWR是用來保存和管理目標節(jié)點機要安裝的所有軟件包,包括操作系統(tǒng)和應(yīng)用軟件。SWR通過平臺和區(qū)域?qū)@些RPM包進行分類存放,方便查詢和管理。屬于不同版本的操作系統(tǒng)軟件包放在不同的平臺上面,每個平臺又可以分為幾個區(qū)域,將同一平臺上的軟件包根據(jù)用途(基本、升級、用戶軟件等)的不同放在不同的區(qū)域。平臺與區(qū)域的劃分只是邏輯上的區(qū)分,在物理上所有的軟件包仍然共同存儲在某個目錄底下。SWR有一套工具集對存放在服務(wù)器上的軟件包進行邏輯上的添加、刪除、查詢等操作。運行在客戶節(jié)點上的軟件包管理代理(software agent,SWA)則根據(jù)本節(jié)點的配置文件通過HTTP(或FTP、NFS等)協(xié)議從SWR下載所需要的RPM包,然后在節(jié)點機上進行安裝和管理。
c)自動安裝服務(wù)器AIS。AIS上使用了一系列標準的服務(wù),如DHCP、TFTP、HTTP、PXE和KickStart等,來實現(xiàn)目標節(jié)點機的快速和自動安裝。其中:DHCP服務(wù)器為各個客戶端節(jié)點分配IP地址以及其他網(wǎng)絡(luò)參數(shù);TFTP服務(wù)器提供了給客戶節(jié)點下載的網(wǎng)絡(luò)啟動程序以及操作系統(tǒng)的根文件系統(tǒng)和內(nèi)核;HTTP服務(wù)器提供KickStart配置文件的下載; PXE能實現(xiàn)節(jié)點的網(wǎng)絡(luò)安裝;KickStart能實現(xiàn)節(jié)點的自動安裝。操作系統(tǒng)的安裝過程是將KickStart與PXE結(jié)合所進行的網(wǎng)絡(luò)自動安裝。在整個安裝過程中,無須系統(tǒng)管理員的交互,完全自動安裝和配置。AIS提供了本地和遠程管理工具進行管理。管理功能包括產(chǎn)生目標節(jié)點用于自動安裝的配置文件、配置DHCP服務(wù)器、設(shè)置各個目標節(jié)點啟動狀態(tài)等。
d)客戶端。該節(jié)點包括三個部分,即配置信息緩存區(qū)(configuration cache,CC)、節(jié)點配置管理器(node configuration mana-ger,NCM)和軟件包管理代理SWA。CC負責(zé)監(jiān)聽CDB上本節(jié)點配置信息的變化情況,如果監(jiān)聽到變化則清除緩存區(qū)中的舊信息,并重新緩存最新的配置信息。NCM執(zhí)行節(jié)點機配置的前端,它使用組件框架,通過查詢緩存區(qū)中的配置信息在節(jié)點機上實施各種配置。NCM包括若干個組件,每個組件都能執(zhí)行一項具體的配置工作,如專門負責(zé)配置HTTP服務(wù)的組件。SWA的任務(wù)是根據(jù)本節(jié)點的配置信息(XML文件)從SWR下載RPM包或PKG包,并進行安裝、刪除和升級。這三個組件在客戶端的執(zhí)行都是自動完成的,無須管理員的干預(yù)。
CMS的服務(wù)器端無須啟動任何守護進程,僅需在每一個節(jié)點機上啟動一個監(jiān)聽進程,用來監(jiān)聽CDB中信息的變化。
3CMS的簡單工作流程
3.1安裝
a)將安裝系統(tǒng)所需要的軟件包加入SWR。
b)在CDB中為每一個要安裝的客戶節(jié)點編寫一個模板,編譯成XML文件。
c)在AIS上為每個節(jié)點產(chǎn)生KickStart的配置文件ks.cfg,并將節(jié)點的狀態(tài)設(shè)為安裝。
d)啟動要安裝的客戶端機器的電源。
e)客戶端支持PXE協(xié)議的網(wǎng)卡啟動。
f)客戶端從DHCP服務(wù)器獲得自己的網(wǎng)絡(luò)地址、TFTP服務(wù)器的IP地址、網(wǎng)絡(luò)啟動配置文件的名字等。
g)客戶端獲得IP地址后,從TFTP服務(wù)器上確定自身的狀態(tài)是本地啟動還是安裝。
h)若狀態(tài)為安裝,客戶端從TFTP服務(wù)器下載網(wǎng)絡(luò)啟動配置文件以及操作系統(tǒng)的內(nèi)核與根文件系統(tǒng)。
i)客戶端從指定的HTTP服務(wù)器下載本節(jié)點對應(yīng)的ks.cfg。
j)客戶端根據(jù)ks.cfg執(zhí)行系統(tǒng)安裝前的配置工作(如網(wǎng)絡(luò)參數(shù)、時區(qū)、分區(qū)信息等),配置完成后從指定的HTTP服務(wù)器下載安裝系統(tǒng)所需的RPM包。
k)客戶端根據(jù)ks.cfg安裝系統(tǒng)。
l)客戶端安裝完成后,發(fā)送消息給AIS。AIS設(shè)置客戶節(jié)點的狀態(tài)為本地啟動,并執(zhí)行ks.cfg中后腳本,主要是CMS的客戶端軟件的安裝與配置(包括CC的初始化,從CDB取得本節(jié)點的XML文件,初始化NCM中的各個組件)。
m)NCM中各個組件配置已經(jīng)安裝好的軟件以及系統(tǒng)的服務(wù)。SWA根據(jù)本節(jié)點的XML文件中定義的軟件包,從SWR下載軟件包,執(zhí)行安裝、卸載、升級軟件包的操作。
n)系統(tǒng)安裝完成。在同一時間內(nèi),多個節(jié)點可同時安裝系統(tǒng),只需在CDB中為每一個節(jié)點編寫一個模板,并且在AIS中產(chǎn)生自動安裝的配置文件以及設(shè)置該節(jié)點的狀態(tài)為安裝。由于模板具有可重用和繼承的特性,節(jié)點模板的配置只是個簡單的工作。啟動要安裝系統(tǒng)的節(jié)點電源后,所有的管理工作便已結(jié)束。
3.2配置
以修改某個軟件的配置信息為例:
a)在CDB中修改該軟件所對應(yīng)的模板的相關(guān)信息,并重新編譯該模板。
b)在CDB中重新編譯所有繼承了該模板節(jié)點的模板,產(chǎn)生新的XML文件。
c)運行在客戶節(jié)點的監(jiān)聽進程監(jiān)聽到本節(jié)點的配置信息發(fā)生變化,則清除CC中舊的XML文件,并下載最新的XML文件到CC中。
d)NCM中相應(yīng)的組件被觸發(fā)執(zhí)行,查詢新的XML文件中該軟件相關(guān)的配置信息的值,并將新的值與原來配置文件中的值作比較。如果不同,則用新的值替換原來的值。
e)一次動態(tài)配置過程完成。
3.3安裝/升級/卸載軟件包
以某一個節(jié)點為例:
a)在CDB中修改該節(jié)點模板中關(guān)于軟件包定義的部分,新增(安裝)、修改(升級)或者注釋(卸載)描述該軟件包相應(yīng)的行,并重新編譯模板。
b)運行在客戶節(jié)點的監(jiān)聽進程監(jiān)聽到本節(jié)點的配置信息發(fā)生變化,則清除CC中舊的XML文件,并下載最新的XML文件到CC中。
c)客戶節(jié)點上的SWA被觸發(fā),根據(jù)新的XML文件產(chǎn)生新的目標文件,并依照目標文件下載需要安裝的軟件包并執(zhí)行安裝或升級操作,或者卸載軟件包。
d)一次安裝/升級/卸載過程完成。
4CMS的突出優(yōu)勢
4.1快速部署系統(tǒng)
網(wǎng)絡(luò)自動安裝能在短時間內(nèi)無須管理員的任何交互工作,將機群上所有的裸機安裝好,極大地減輕了管理員的工作量,提高了工作效率,把管理員從繁瑣的安裝與配置工作中解脫出來。
4.2實時、動態(tài)配置節(jié)點
實時配置更是解決了機群管理上最繁瑣的一個問題:當某個軟件的配置信息需修改時,管理員需逐個節(jié)點地修改相應(yīng)的配置文件。在CMS中,只需修改CDB中相應(yīng)的模板,并重新編譯即可。針對具體應(yīng)用,筆者在NCM的框架中為經(jīng)常使用的軟件開發(fā)了各自的組件,如分級存儲管理系統(tǒng)CASTOR的客戶端軟件,全局文件系統(tǒng)AFS的客戶端軟件,以及網(wǎng)格中間件LCG。隨著應(yīng)用的增加,筆者將繼續(xù)擴展不同的組件。
4.3快速安裝、升級、刪除軟件包
機群節(jié)點上軟件包的安裝、升級與刪除工作在集中管理系統(tǒng)上也得到了很好的解決。既可以對單個節(jié)點進行單一的操作,又可對多個節(jié)點同時進行統(tǒng)一的操作。
4.4根據(jù)不同功能部署節(jié)點
對于承擔(dān)不同功能的節(jié)點,需要安裝不同軟件包。集中管理系統(tǒng)可以將節(jié)點按照功能的不同組織成不同的cluster,對每個cluster實施不同的配置模板,使得節(jié)點的模板盡可能多地繼承可重用的模板。
5CMS的應(yīng)用實例
目前,筆者所在的高能物理所的機群系統(tǒng)中一共有300多個節(jié)點,隨著節(jié)點數(shù)目的增加以及各個節(jié)點承擔(dān)的功能不同或者所屬的網(wǎng)段不同,需要對節(jié)點進行不同層次的組織。將機群上所有的節(jié)點視為一個系統(tǒng),將分屬不同網(wǎng)段的節(jié)點或者在同一網(wǎng)段上但是承擔(dān)不同功能的節(jié)點組織成多個cluster。這樣,一個system包含若干個cluster,每個cluster又包括若干個node。這樣的組織結(jié)構(gòu)大大方便了CDB中模板的繼承與重用:同屬一個system的節(jié)點可以繼承system一級的模板;同屬于某個cluster的節(jié)點可以繼承這個cluster的所有模板。
圖3是目前CMS在本文機群上的部署情況。由于系統(tǒng)有很好的擴展性,在未來的幾年,隨著節(jié)點數(shù)目的增加,系統(tǒng)將不會作太大修改。
6結(jié)束語
CMS將機群的部署與配置工作從機群的節(jié)點轉(zhuǎn)移到少數(shù)幾臺服務(wù)器上面,從而極大地減少了管理的工作量,提高了工作效率,避免了人工可能出現(xiàn)的錯誤。系統(tǒng)的實時與動態(tài)配置功能更是使管理工作一勞永逸,而且達到及時的目的。同時,在NCM框架中還提供了豐富的API,以便擴展對應(yīng)的組件,完成節(jié)點機的配置工作,使得系統(tǒng)具有很好的可擴展性。系統(tǒng)目前通過命令行的方式進行管理,CDB、AIS和SWR三個服務(wù)器都有豐富的命令集,方便對各種信息進行查詢、刪除、更改、添加等管理操作。目前,CMS仍是在局域網(wǎng)的范圍內(nèi)實施,如何改進相關(guān)的協(xié)議,使其在廣域網(wǎng)的范圍內(nèi)運行實施,是筆者下一步的研究方向。
參考文獻:
[1]程耀東,許冬,陳剛,等. 存儲資源的整合與虛擬化[J]. 計算機工程與應(yīng)用,2003,22(33):85-88.
[2]龐京玉. 機群系統(tǒng)及其應(yīng)用[J]. 現(xiàn)代計算機,2005 (3):30-32.
[3]尹洋,肖展業(yè),張建剛. 機群的部署和管理[J/OL]. [2007-03]. http://lib.ict.ac.cn/ITL/data/2004/5/%E6%9C%BA%E7%BE%A4%E7%9A%84%E9%83%A8%E7%BD%B2%E5%92%8C%E7%AE%A1%E7%90%86.doc.
[4]BAKER M A,F(xiàn)OX G C,YAU H W.A review of commercial and research cluster management software[J/OL]. [2007-03]. http://citeseer.ist.psu.edu/baker95review.html.
[5]CANCIO G. System administration tool suite [EB/OL]. [2007-03]. http: //quattor.web.cern.ch/quattor/.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文