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