王東岳 劉 浩 楊英奎 張兆偉
(黑龍江省氣象數(shù)據(jù)中心, 哈爾濱 150030)
近年來,我國不斷加快氣象現(xiàn)代化建設(shè)。目前,我國已建成了世界上規(guī)模最大、覆蓋最全的綜合氣象觀測系統(tǒng)[1],氣象觀測與探測的數(shù)據(jù)的種類、數(shù)量與發(fā)送頻次也大大的增加[2]。黑龍江省氣象部門于“9210”工程中建設(shè)的收發(fā)系統(tǒng)[3],其存儲(chǔ)結(jié)構(gòu)與系統(tǒng)性能無法滿足連續(xù)且穩(wěn)定傳輸綜合氣象觀測數(shù)據(jù)的要求?;谶@個(gè)情況,該研究詳細(xì)說明了賽門鐵克的VERITAS Cluster Server(簡稱VCS)集群系統(tǒng)的集群技術(shù)特點(diǎn)及基于VCS集群技術(shù)設(shè)計(jì)并實(shí)現(xiàn)的氣象收發(fā)系統(tǒng),為氣象海量數(shù)據(jù)傳輸提供了穩(wěn)定的技術(shù)保障,其收發(fā)系統(tǒng)構(gòu)建模式也可適用于其他行業(yè)中,具備推廣價(jià)值。
通過國家氣象局的第一個(gè)現(xiàn)代化工程“9210”項(xiàng)目,黑龍江省氣象局在1995年建設(shè)了一套基于傳統(tǒng)集群技實(shí)現(xiàn)的氣象收發(fā)系統(tǒng),其硬件構(gòu)成是一個(gè)掛載磁盤陣列的主服務(wù)器與一個(gè)備份服務(wù)器組成一個(gè)集群系統(tǒng),主備服務(wù)器通過以太網(wǎng)交換機(jī)實(shí)現(xiàn)高可用性(High Availability,簡稱HA)軟件的通信;在主機(jī)的收發(fā)系統(tǒng)正常運(yùn)轉(zhuǎn)時(shí),備機(jī)的收發(fā)系統(tǒng)不啟動(dòng),當(dāng)主機(jī)故障時(shí),主機(jī)備機(jī)之間通過HA 軟件完成業(yè)務(wù)切換(圖1)。
圖1 “9210”氣象收發(fā)系統(tǒng)架構(gòu)圖
2004年后,隨著地觀測技術(shù)的進(jìn)步與探測手段的增加,氣象數(shù)據(jù)傳輸量實(shí)現(xiàn)了百千倍的增長。這種情況下,基于傳統(tǒng)集群技術(shù)實(shí)現(xiàn)的收發(fā)系統(tǒng)在傳輸數(shù)據(jù)時(shí)出現(xiàn)了以下問題,一是在主服務(wù)器發(fā)生故障時(shí),主備切換的時(shí)間大于兩次地面觀測的時(shí)間間隔,導(dǎo)致下一個(gè)時(shí)次的觀資料不能在規(guī)定時(shí)間內(nèi)傳輸成功;二是發(fā)生故障的主服務(wù)器資料不能與備份服務(wù)器實(shí)現(xiàn)氣象資料共享,基于這部分資料的運(yùn)行的業(yè)務(wù)其工作進(jìn)度會(huì)受到影響。
全國綜合氣觀測系統(tǒng)建成后,觀測與探測業(yè)務(wù)全面進(jìn)入自動(dòng)化時(shí)代,觀測頻次提高4至8倍,數(shù)據(jù)量增加5倍以上,數(shù)據(jù)傳輸速度優(yōu)化至秒級(jí),每日收發(fā)系統(tǒng)需要處理的數(shù)據(jù),其數(shù)量與種類都較之前大大增加;國家氣象局通過衛(wèi)星廣播系統(tǒng)建(簡稱cmacast)向省級(jí)氣象局下發(fā)的數(shù)據(jù)也從60G bytes增加到200G bytes。氣象通信的要求是每日24 h不間斷傳輸,處理相對(duì)復(fù)雜,對(duì)計(jì)算機(jī)操作系統(tǒng)和文件系統(tǒng)提出了很高的要求。首先保證整個(gè)系統(tǒng)的長期穩(wěn)定性,不能出現(xiàn)任何系統(tǒng)級(jí)的故障。其次,系統(tǒng)的運(yùn)行效率要求高,氣象實(shí)時(shí)數(shù)據(jù)的特點(diǎn)是數(shù)量大、種類多和處理復(fù)雜,并且單個(gè)數(shù)據(jù)的量不是很大,因此,要求系統(tǒng)不僅具有很高的 I/O 吞吐能力,而且具備很高的效率。未來新增數(shù)據(jù)量可能會(huì)成倍增加,因此系統(tǒng)的靈活性和可擴(kuò)展性也是要考慮的因素。
設(shè)計(jì)方案是整合多臺(tái)服務(wù)器組與一個(gè)磁盤陣列組成一個(gè) Cluster( 集群) 系統(tǒng),通過共享文件系統(tǒng)在服務(wù)器間共享數(shù)據(jù)及控制信息,通過集群技術(shù)保障數(shù)據(jù)象數(shù)據(jù)收集與分發(fā)的穩(wěn)定性。集群技術(shù)的應(yīng)用基本擺脫了過去通信系統(tǒng)常采用的HA架構(gòu)帶來的問題,當(dāng)一個(gè)主機(jī)故障需要退出集群時(shí),基本上不存在系統(tǒng)資源在各主機(jī)間的切換,同時(shí)擺脫了備份系統(tǒng)中閑置節(jié)點(diǎn)的資源浪費(fèi)問題。這個(gè)集群系統(tǒng)應(yīng)該具有對(duì)整個(gè)系統(tǒng)的運(yùn)行狀態(tài)和應(yīng)用運(yùn)行狀態(tài)的集中監(jiān)控能力,方便用戶的操作和監(jiān)視,對(duì)于整個(gè)系統(tǒng)中單個(gè)節(jié)點(diǎn)的故障具有自動(dòng)切換其應(yīng)用的能力,不能影響整個(gè)系統(tǒng)和應(yīng)用的運(yùn)行。集群的負(fù)載均衡還體現(xiàn)在收集與分發(fā)任務(wù)的負(fù)載均衡,而這部分是通過本系統(tǒng)軟件自身來實(shí)現(xiàn)的。集群共享文件系統(tǒng)保證了集群中所有節(jié)點(diǎn)可以并發(fā)訪問存儲(chǔ)陣列中的數(shù)據(jù),實(shí)現(xiàn)了節(jié)點(diǎn)間高速的數(shù)據(jù)交換和共享,為其業(yè)務(wù)在多節(jié)點(diǎn)上并行處理提供了數(shù)據(jù)共享的保證,同時(shí)利用應(yīng)用軟件同步技術(shù)實(shí)現(xiàn)其業(yè)務(wù)統(tǒng)計(jì)應(yīng)用的分布并行環(huán)境,為其業(yè)務(wù)性能及穩(wěn)定提供了充足的擴(kuò)充保障。
賽門鐵克的VERITAS Cluster Server(簡稱VCS),是一項(xiàng)穩(wěn)定、高效的集群技術(shù)。VCS支持包括命令行、GUI和WEB在內(nèi)的多種對(duì)集群的監(jiān)控和管理方式。尤其是通過對(duì)WEB管理方式的支持,實(shí)現(xiàn)了對(duì)集群管理的可移植性。系統(tǒng)管理員無論身在何處,都可以隨時(shí)通過任意終端上的WEB瀏覽器了解到自己集群的運(yùn)行狀態(tài)。VCS對(duì)標(biāo)準(zhǔn)化應(yīng)用和客戶化應(yīng)用的支持都通過相關(guān)的AGENT實(shí)現(xiàn)。支持的標(biāo)準(zhǔn)應(yīng)用包括(但不限于): Oracle,Oracle RAC,Sybase,Informix,DB2, SAP,Iplanet,Netscape,Apache,NFS,Netbackup等。在通常的業(yè)務(wù)中,大多數(shù)的集群系統(tǒng)都以雙服務(wù)器的形式出現(xiàn),這種構(gòu)造非常簡單,但系統(tǒng)的計(jì)算資源只能利用50%(如果兩臺(tái)機(jī)器是同等級(jí)的),隨著SAN環(huán)境的日益普及,多機(jī)系統(tǒng)共享存儲(chǔ)設(shè)備已成為可能,這也就為多機(jī)集群創(chuàng)造了條件。因?yàn)樵诙鄼C(jī)的集群環(huán)境中,可以通過一臺(tái)備用服務(wù)器對(duì)N臺(tái)主服務(wù)器實(shí)現(xiàn)高可用。比如,一臺(tái)備機(jī),19臺(tái)主機(jī)時(shí),整個(gè)集群環(huán)境中的計(jì)算資源利用率可以達(dá)到95%。由此可見,在SAN環(huán)境中節(jié)點(diǎn)數(shù)量的支持能力越強(qiáng),集群擴(kuò)展性就越高,集群的計(jì)算資源利用率也越高。VCS在SAN環(huán)境中能支持到32個(gè)節(jié)點(diǎn)。
在集群環(huán)境中對(duì)文件系統(tǒng)共享的支持非常重要,這不但可以節(jié)省存儲(chǔ)空間(比如對(duì)WEB SERVER等應(yīng)用,不需要在每臺(tái)服務(wù)器上都部署WEB CONTENTS),更重要的是,可以應(yīng)用提升切換的速度。因?yàn)樵诜枪蚕砦募到y(tǒng)的集群環(huán)境中,應(yīng)用的切換時(shí)間主要由一下幾個(gè)方面構(gòu)成:在服務(wù)器 A上中止應(yīng)用,卸載文件系統(tǒng),然后在服務(wù)器 B上掛載文件系統(tǒng),啟動(dòng)應(yīng)用。由此可見,切換中主要的過程是在做存儲(chǔ)設(shè)備的邏輯遷移。如果采用了共享文件系統(tǒng)的技術(shù),則切換應(yīng)用的過程就大大簡化了。因?yàn)榇鎯?chǔ)本來就已經(jīng)共享,只需要在服務(wù)器 A上中止應(yīng)用,然后直接在服務(wù)器 B上啟動(dòng)應(yīng)用即可,這樣切換的時(shí)間大大縮短。為了實(shí)現(xiàn)這樣的效果,賽門鐵克通過Storage Foundation Cluster File System(簡稱SFCFS)實(shí)現(xiàn)了在SAN環(huán)境內(nèi)或SCSI環(huán)境內(nèi)的存儲(chǔ)直接共享,即多機(jī)可以通過SCSI或SAN環(huán)境直接訪問同一個(gè)文件系統(tǒng)。
VCS采用GAB/LLT作為心跳協(xié)議,這種協(xié)議相比TCP/IP 協(xié)議更加精簡,傳輸效率更高。由于默認(rèn)的心跳通過兩個(gè)物理網(wǎng)卡實(shí)現(xiàn),所以可靠性也更高。除此以外,還可以通過公用網(wǎng)絡(luò)實(shí)現(xiàn)低優(yōu)先級(jí)心跳。利用磁盤陣列的SCSI-3 PR功能,VCS更可以實(shí)現(xiàn)I/O fencing功能,完全保證了共享數(shù)據(jù)不會(huì)因?yàn)榧盒奶墓收蠈?dǎo)致?lián)p壞。
基于氣象通信要求與VCS集群技術(shù)特點(diǎn),搭建黑龍江省氣象收發(fā)系統(tǒng),其硬件組成為4個(gè)服務(wù)器,一套磁盤陣列、一部光纖交換機(jī)(SAN)用于4個(gè)服務(wù)器與磁盤陣列連接、兩部以太網(wǎng)交換機(jī),一部用于心跳線的互聯(lián),一部用戶業(yè)務(wù)的通信。其硬件實(shí)現(xiàn)架構(gòu)(圖2)。
圖2 收發(fā)系統(tǒng)硬件架構(gòu)圖
設(shè)計(jì)收發(fā)系統(tǒng)的操作系統(tǒng)為Linux,軟件組成為VCS集群管理軟件,負(fù)載均衡、消息中間件、收集系統(tǒng)、分發(fā)系統(tǒng)和ftp服務(wù)。其軟件實(shí)現(xiàn)架構(gòu)(圖3)。
圖3 收發(fā)系統(tǒng)軟件架構(gòu)圖
VCS的SFCFS技術(shù)使得集群服務(wù)器以共享的方式掛載磁盤陣列,互斥訪問保障了共享文件的安全。在共享文系統(tǒng)中針對(duì)種類的報(bào)文種類創(chuàng)建相應(yīng)的接收目錄,遠(yuǎn)程臺(tái)站通過ftp協(xié)議上傳報(bào)文。VCS管理軟件的將集群服務(wù)器的ftp服務(wù)作為資源納入管理[4],負(fù)載均衡技術(shù)能夠比較每個(gè)服務(wù)器的ftp連接數(shù),啟動(dòng)最小連接數(shù)的服務(wù)器應(yīng)答遠(yuǎn)程的ftp請(qǐng)求并建立連接,實(shí)現(xiàn)了ftp服務(wù)的均衡。
數(shù)據(jù)收集系統(tǒng),支持本地收集與遠(yuǎn)程收集兩種方式,這兩種收集方式對(duì)用戶來說是一致的、透明的。系統(tǒng)支持短文件名長度從8至20長度的數(shù)據(jù),同時(shí)支持報(bào)文級(jí)和文件級(jí)數(shù)據(jù)傳輸,通過配置文件能夠靈活設(shè)置文件名變換、壓縮/解壓縮和業(yè)務(wù)處理等各種預(yù)處理邏輯,適應(yīng)未來業(yè)務(wù)的變化和拓展[5]。
收集系統(tǒng)與分發(fā)系統(tǒng)之間需要傳輸海量的氣象資料,收集與分發(fā)系統(tǒng)采用的I/O掃描方式獲得文件的列表大大地增加系統(tǒng)對(duì)I/O的訪問量,嚴(yán)重降低系統(tǒng)的運(yùn)行效率,為此收集與分發(fā)系統(tǒng)之間采用消息中間件方式進(jìn)行通信,收集系統(tǒng)將收集的成功的插入消息中間件的隊(duì)列中,分發(fā)系統(tǒng)根據(jù)消息隊(duì)列的信息分發(fā)具體文件,收件系統(tǒng)與分發(fā)系統(tǒng)是生產(chǎn)與消費(fèi)的關(guān)系,這樣既能保證分發(fā)數(shù)據(jù)的完整,又可以減少收發(fā)進(jìn)程對(duì)I/O設(shè)備訪問過多造成的效率下降[6]。消息中間件采用RabbiteMQ實(shí)現(xiàn)。
分發(fā)系統(tǒng)根據(jù)不同的分發(fā)協(xié)議編寫分發(fā)程序,但都遵循統(tǒng)一的接口規(guī)范。同一分發(fā)目標(biāo)地址的多個(gè)任務(wù)可以在同一進(jìn)程內(nèi)依次完成,對(duì)于ftp 協(xié)議而言這樣做可以減少 ftp 在建立連接、認(rèn)證登錄的耗時(shí),提高分發(fā)能力。分發(fā)任務(wù)進(jìn)行由調(diào)度程序根據(jù)消息中間件的分發(fā)隊(duì)列消息激活,使得分發(fā)任務(wù)可以進(jìn)行優(yōu)先級(jí)控制,進(jìn)而可實(shí)現(xiàn)多用戶并發(fā)和同一用戶多任務(wù)并發(fā)的調(diào)度[7]。
基于VCS集群技術(shù)的實(shí)現(xiàn)的氣象收發(fā)系統(tǒng),對(duì)其連續(xù)90 d的運(yùn)行數(shù)據(jù)進(jìn)行采樣,采樣數(shù)據(jù)分別為CPU使用率、故障平均切換時(shí)間、數(shù)據(jù)收發(fā)量,以確定系統(tǒng)的穩(wěn)定性[8],其各項(xiàng)參數(shù)計(jì)算公式如下,對(duì)比結(jié)果(表1)。
表1 系統(tǒng)性能測試結(jié)果表
CPU使用率,記錄系統(tǒng)每臺(tái)服務(wù)器的CPU使用率,采集時(shí)間的整點(diǎn)10 min,是系統(tǒng)分發(fā)地面自動(dòng)地面觀測數(shù)據(jù)的相對(duì)集中的時(shí)間點(diǎn),其計(jì)算公式如下:
01/24
System_CPUUse_Rate=(CPUUse_Rate_01+
CPUUse_Rate_02+CPUUse_Rate_03+CPUUse_
Rate_04)/4
其中,CPUUse_Rate_Hour_01為1號(hào)機(jī)的每小時(shí)CPU使用率采樣數(shù)據(jù),對(duì)其1 d的采樣數(shù)據(jù)累加后除以24,得到每天CPU使用率。對(duì)其90的CPU使用率采樣累加除以90,得到其連續(xù)90 d的CPU使用率,同理得到2、3、4號(hào)服務(wù)器的CPU使用率采樣數(shù)據(jù)。對(duì)1、2、3、4號(hào)服務(wù)器的CPU采樣數(shù)據(jù)累加后除以4,得到系統(tǒng)的CPU使用率。故障切換時(shí)間為90 d內(nèi)收發(fā)系統(tǒng)集群任一節(jié)點(diǎn)出現(xiàn)故障,其業(yè)務(wù)由其他節(jié)點(diǎn)接管的時(shí)間除以故障的次數(shù)。其計(jì)算公式如下:
其中n為收發(fā)系統(tǒng)的任意主機(jī)出現(xiàn)的故障總計(jì)次數(shù),fault_toggle_time 為每次任意主機(jī)故障,其運(yùn)行業(yè)務(wù)切換到其他主句的時(shí)間,Fault_Toggle_Time_Avg為故障切換平均時(shí)間。
數(shù)據(jù)收發(fā)量為累加連續(xù)90 d內(nèi)系統(tǒng)接收與發(fā)送字節(jié)數(shù),求和數(shù)據(jù)除以90得到平均每日的數(shù)據(jù)收發(fā)量,公式如下:
其中Send_Bytes_Day為收發(fā)系統(tǒng)每日發(fā)送數(shù)據(jù)的字節(jié)數(shù),Send_Bytes_Avg為90 d系統(tǒng)平均發(fā)送數(shù)據(jù)的字節(jié)數(shù)。
從表1可得,對(duì)的黑龍江省氣象收發(fā)系統(tǒng)的連續(xù)運(yùn)行90 d的參數(shù)進(jìn)行采集,其結(jié)果符合預(yù)期,說明基于VCS技術(shù)設(shè)計(jì)并實(shí)現(xiàn)的收發(fā)系統(tǒng)能夠穩(wěn)定、可靠的接收與發(fā)送每日的海量氣象數(shù)據(jù),從而提升黑龍江氣象信息系統(tǒng)的通信能力。
氣象綜合觀測體系的建立,觀測與探測的數(shù)據(jù)出現(xiàn)了幾倍的增長,早起的收發(fā)系統(tǒng)的存儲(chǔ)于性能很難及時(shí)地處理海量的氣象數(shù)據(jù)。針對(duì)這個(gè)問題,該研究采用了VCS集群的共享文件系統(tǒng)技術(shù),利用了消息中間件與負(fù)載均衡技術(shù),構(gòu)建了黑龍江氣象收發(fā)系統(tǒng)。經(jīng)過系統(tǒng)測試,收發(fā)系統(tǒng)的CPU使用率、故障切換平均時(shí)間與發(fā)送字節(jié)數(shù)這3個(gè)關(guān)鍵指標(biāo)都能達(dá)到系統(tǒng)穩(wěn)定運(yùn)行的要求。說明系統(tǒng)在實(shí)際運(yùn)行中,能夠穩(wěn)定、及時(shí)地接收與發(fā)送海量的氣象數(shù)據(jù),實(shí)現(xiàn)氣象資料的高效收集與分發(fā)。基于VCS的收發(fā)系統(tǒng)的建設(shè)能夠極大地提高黑龍江氣象信息系統(tǒng)的處理能力,為地方經(jīng)濟(jì)建設(shè)與社會(huì)發(fā)展提供更好的氣象服務(wù)。