趙亮
摘要:網(wǎng)絡(luò)的飛速發(fā)展,氣象數(shù)值預(yù)報(bào)高分辨率循環(huán)同化系統(tǒng)對(duì)服務(wù)器提出了更高的要求,使用Linux操作系統(tǒng)構(gòu)建高性能集群系統(tǒng),用較低的價(jià)格實(shí)現(xiàn)高伸縮、高可用的計(jì)算服務(wù),以彌補(bǔ)單臺(tái)服務(wù)器無法達(dá)到的性能。本文以實(shí)際生產(chǎn)運(yùn)行中的一則故障為例,剖析了系統(tǒng)運(yùn)維中的一些方法。
關(guān)鍵詞:數(shù)值預(yù)報(bào);集群;運(yùn)維
中圖分類號(hào):TP38 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)04-0190-01
1 集群的概念
集群是指一組協(xié)同工作的服務(wù)集合,可以提供比單臺(tái)服務(wù)更穩(wěn)定、高效、具有擴(kuò)展性的服務(wù)平臺(tái)。整體來看,集群是一個(gè)獨(dú)立的服務(wù)實(shí)體,而實(shí)際上,在集群內(nèi)部,有多個(gè)服務(wù)實(shí)體在協(xié)同完成一系列復(fù)雜工作。集群一般由兩個(gè)或兩個(gè)以上的服務(wù)器搭建而成,每臺(tái)服務(wù)器稱為一個(gè)集群節(jié)點(diǎn)。當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),集群的另一節(jié)點(diǎn)可以自動(dòng)接管故障節(jié)點(diǎn)的資源,從而保證服務(wù)持續(xù)、不間斷運(yùn)行[1]。
綜上,搭建一套集群系統(tǒng)需要N(N>=2)臺(tái)服務(wù)器,同時(shí)還需要IB線纜、集群軟件、共享存儲(chǔ)設(shè)備(磁盤陣列)等,如下圖1所示。
2 故障實(shí)例
某日,GRIDVIEW集群綜合管理系統(tǒng)顯示Node52節(jié)點(diǎn)異常,按照處理流程,使用Blade Full View Management System對(duì)告警節(jié)點(diǎn)進(jìn)行“硬重啟”操作。在等待數(shù)分鐘后,節(jié)點(diǎn)依然顯示告警,重復(fù)上述操作故障依舊。我們使用SKMV OVER IP系統(tǒng)登錄告警節(jié)點(diǎn)查看,發(fā)現(xiàn)該節(jié)點(diǎn)無法進(jìn)入Linux系統(tǒng),服務(wù)器硬盤有報(bào)錯(cuò),使用fsck命令校正文件系統(tǒng)依然無效,因此決定更換Node52服務(wù)器硬盤。但更換新硬盤后需要重新安裝該節(jié)點(diǎn)的Linux操作系統(tǒng)以及各種集群服務(wù),操作較為繁瑣且冗余,我們可以使用拷貝安裝的方式來進(jìn)行修復(fù)工作。取出Node52的受損硬盤,將新硬盤插入Node51節(jié)點(diǎn)的空余硬盤插槽中,重啟Node51節(jié)點(diǎn),隨即進(jìn)入Node51的單用戶模式。
我們來簡單介紹一下單用戶模式。單用戶模式指有且只有一個(gè)用戶可以訪問某個(gè)資源的狀態(tài)。單用戶模式是系統(tǒng)最原始的狀態(tài),一切網(wǎng)絡(luò)服務(wù)均未啟動(dòng),文件系統(tǒng)也沒有mount,僅基礎(chǔ)的系統(tǒng)module被加載,再由kernel啟動(dòng)進(jìn)入命令行狀態(tài)。我們把此狀態(tài)稱為單用戶模式。那Linux的單用戶模式又是如何進(jìn)入呢?我們?cè)谙到y(tǒng)啟動(dòng)時(shí),按下鍵盤上的“e”,即進(jìn)入以下這個(gè)頁面Linux系統(tǒng)啟動(dòng)頁圖2所示。
選擇kernel /vmlinuz-2.6.32-358.el6.i686(即第二項(xiàng))這一行,按下“e”建,在行尾輸入:空格single,并回車確定。按下鍵盤的"b",即重新引導(dǎo)系統(tǒng)。然后就進(jìn)入了單用戶模式,在此模式下使用命令進(jìn)行硬盤拷貝:dd if="/dev/sda" of="/dev/sdb",待命令執(zhí)行完畢后使用init 0關(guān)閉Node51服務(wù)器。將拷貝后的新硬盤插回Node52節(jié)點(diǎn)中,隨即啟動(dòng)Node 52,修改其IP地址、主機(jī)名,待修改完成后重新開啟Node51服務(wù)器,使用GRIDVIEW監(jiān)控系統(tǒng)顯示所有節(jié)點(diǎn)均正常運(yùn)行,至此服務(wù)器節(jié)點(diǎn)故障得以修復(fù)。
3 分析與總結(jié)
高性能計(jì)算集群的原理是將計(jì)算任務(wù)分配到集群的不同計(jì)算節(jié)點(diǎn)從而可以提高計(jì)算能力,所以其主要應(yīng)用在科學(xué)計(jì)算領(lǐng)域,比如民航氣象數(shù)值預(yù)報(bào)系統(tǒng)。目前比較流行的HPC采用Linux操作系統(tǒng)和一些免費(fèi)軟件來實(shí)現(xiàn)并行運(yùn)算。這樣的集群配置通常被業(yè)界稱為Beowulf集群。這類集群通常會(huì)運(yùn)行特定的程序以發(fā)揮HPC集群的并行能力。這類程序一般會(huì)應(yīng)用特定的運(yùn)行庫, 如專為科學(xué)計(jì)算而設(shè)計(jì)的MPI庫。HPC集群非常適合于在科學(xué)計(jì)算中各計(jì)算節(jié)點(diǎn)之間發(fā)生大量數(shù)據(jù)通訊及數(shù)據(jù)交換的計(jì)算作業(yè),而一個(gè)節(jié)點(diǎn)的中間結(jié)果可能影響到其它節(jié)點(diǎn)計(jì)算的結(jié)果。
在上述故障中,當(dāng)高可用性計(jì)算集群中有某個(gè)節(jié)點(diǎn)(Node 52)失效的情況下,這個(gè)節(jié)點(diǎn)上的任務(wù)會(huì)自動(dòng)轉(zhuǎn)移到其他正常的節(jié)點(diǎn)上。在此案例故障修復(fù)過程中,我們將集群中的某節(jié)點(diǎn)(Node 51)進(jìn)行離線維護(hù)后再上線,這個(gè)過程并不影響整個(gè)集群的運(yùn)行,在最大程度上保證了系統(tǒng)運(yùn)行穩(wěn)定。
參考文獻(xiàn)
[1]鄭緯民.石威.等譯.高性能集群計(jì)算:結(jié)構(gòu)與系統(tǒng)(第一卷)[M].北京:電子工業(yè)出版社,2001.