金晨曦 ,段仙瓊 ,楊海梅
(1. 云南省水文水資源局,云南 昆明 650106;2. 長江水利委員會水文局西南諸河水文水資源勘測局,云南 昆明 650051;3. 云南省水文水資源局西雙版納分局,云南 景洪 666100)
水文情報預(yù)報工作在水文工作中占據(jù)著極其重要的地位,是我國進行防汛抗旱工作的重要依據(jù)[1]。水情信息作為水文情報預(yù)報工作的數(shù)據(jù)基礎(chǔ),是情報預(yù)報工作的主要依據(jù)。水情分中心是實時雨水情數(shù)據(jù)落地入庫的關(guān)鍵節(jié)點,也是實時雨水情數(shù)據(jù)進入數(shù)據(jù)傳輸、應(yīng)用通道的第 1 站,在防汛抗旱體系中具有十分重要的地位,是支撐其他系統(tǒng)運行的基礎(chǔ)部件[2]。自此實時雨水情數(shù)據(jù)有了身份信息,也就有了實際物理意義,可見水情分中心軟硬件環(huán)境運行的效果對后面的匯集、傳輸?shù)拳h(huán)節(jié)起著重要的作用。
實時雨水情數(shù)據(jù)在水情分中心的處理過程,大致可分為接收、解碼、入庫、傳輸(交換)及應(yīng)用等幾個階段[3]。各個階段對應(yīng)不同的信息處理操作,也就對應(yīng)不同的軟硬件解決方案。為此對常見的解決方案容易存在的問題進行分析,并嘗試使用虛擬化技術(shù)對出現(xiàn)的問題及弱點進行改造。
現(xiàn)階段大部分水情分中心的遙測中心站使用物理服務(wù)器,通過外接設(shè)備或者網(wǎng)絡(luò)端口接收實時雨水情遙測數(shù)據(jù)[4],典型現(xiàn)狀拓撲及數(shù)據(jù)流程如圖1所示。
圖1 水情分中心典型現(xiàn)狀拓撲及數(shù)據(jù)流程
遙測中心站服務(wù)器通過網(wǎng)絡(luò)或串口卡等設(shè)備接收遙測數(shù)據(jù),經(jīng)過解碼后將數(shù)據(jù)存儲在原始數(shù)據(jù)庫中,再經(jīng)由數(shù)據(jù)轉(zhuǎn)儲軟件(功能),將數(shù)據(jù)轉(zhuǎn)換格式后寫入實時雨水情數(shù)據(jù)庫,最后由數(shù)據(jù)交換軟件傳輸至其它單位。
現(xiàn)階段大部分遙測中心站的數(shù)據(jù)接收方式可大致分為串口、USB 端口、RJ-45 標(biāo)準(zhǔn)網(wǎng)絡(luò)端口等類型,實現(xiàn)方式大致如下:
1)串口。服務(wù)器一般使用串口卡連接串口Modem 或北斗衛(wèi)星接收端,少部分使用串口服務(wù)器接收數(shù)據(jù)。
2)USB 端口。USB 設(shè)備與串口設(shè)備大體相同,部分 USB 設(shè)備采用模擬 USB 通信的方式,本質(zhì)上還是一臺串口 Modem,這類設(shè)備使用標(biāo)準(zhǔn) USB端口與服務(wù)器連接。
3)RJ-45 標(biāo)準(zhǔn)網(wǎng)絡(luò)端口。一般使用標(biāo)準(zhǔn)以太接口或者光纖接入局域網(wǎng),服務(wù)器通過因特網(wǎng)固定 IP地址,經(jīng)由防火墻接收從 2G(GPRS),3G,4G 移動通信網(wǎng)絡(luò)或北斗衛(wèi)星接收機接收發(fā)送過來的數(shù)據(jù)。
存在的典型問題如下:
1)如果 1 臺服務(wù)器需接收多家遙測設(shè)備公司的站點信息,對應(yīng)會在服務(wù)器上安裝多套串口卡,對應(yīng)多套中心站軟件。如果中心站軟件集成度不高,接收、解碼、入庫等功能用不同軟件獨立實現(xiàn),這臺服務(wù)器上運行的軟件數(shù)量將比較可觀。
2)不同公司的軟件對運行環(huán)境有不同需求,極易發(fā)生配置沖突,不同公司對同一遙測中心站服務(wù)器上的軟件進行維護時可能會相互影響,導(dǎo)致安裝并配置好一家公司軟件卻又影響了原本正常運行的另一家公司軟件的情況。既造成服務(wù)器設(shè)備接入繁雜混亂,又導(dǎo)致軟、硬件環(huán)境配置維護困難。
數(shù)據(jù)落地以后,一般被寫入遙測中心站軟件的原始數(shù)據(jù)庫。該庫表標(biāo)準(zhǔn)一般與后續(xù)交換階段所普遍采用的 SL 323—2011《實時雨水情數(shù)據(jù)庫表結(jié)構(gòu)與標(biāo)識符》中規(guī)定的實時雨水情數(shù)據(jù)庫表(以下稱交換庫表)結(jié)構(gòu)不同,所以,一般存在一個數(shù)據(jù)轉(zhuǎn)儲的過程,將原始數(shù)據(jù)庫中的數(shù)據(jù),抽取整理成符合交換庫表結(jié)構(gòu)的數(shù)據(jù)并寫入交換系統(tǒng)數(shù)據(jù)庫。而且,這個轉(zhuǎn)儲過程,各遙測中心站軟件開發(fā)單位實現(xiàn)的方式不一,有的使用 SQL 存儲過程,有的使用專門的轉(zhuǎn)儲軟件,但絕大多數(shù)是將數(shù)據(jù)遠程寫入另一臺服務(wù)器上的交換數(shù)據(jù)庫。
存在的典型問題如下:
1)在數(shù)據(jù)轉(zhuǎn)儲過程中,無論是使用轉(zhuǎn)儲軟件、SQL 存儲過程,還是使用觸發(fā)器將數(shù)據(jù)寫入另一臺服務(wù)器上的交換庫,都存在效率低下的問題。首先,交換數(shù)據(jù)庫將面對多臺服務(wù)器的插入、刪除、修改、查詢操作,壓力陡增;其次,不同公司的開發(fā)人員對于寫庫 SQL 語句的實現(xiàn)思路、運用熟練程度及代碼優(yōu)化程度均不同,代碼的運行效率差異較大,極易造成被寫入的交換庫頻繁出現(xiàn)鎖沖突情況。極大降低了交換庫的訪問速度,嚴重時將直接導(dǎo)致交換庫無法訪問,出現(xiàn)宕機現(xiàn)象。
2)水情分中心數(shù)據(jù)管理人員信息安全意識薄弱,缺乏對遙測中心站軟件開發(fā)維護公司的約束和管理,導(dǎo)致缺乏對數(shù)據(jù)庫訪問用戶權(quán)限的約束,從而導(dǎo)致轉(zhuǎn)儲程序大量使用數(shù)據(jù)庫超級管理員用戶訪問數(shù)據(jù)庫。因此,實時雨水情數(shù)據(jù)庫被隨意讀取和寫入,隨意創(chuàng)建架構(gòu),更改表結(jié)構(gòu)等,影響包括交換系統(tǒng)在內(nèi)的使用該數(shù)據(jù)庫軟件系統(tǒng)的穩(wěn)定性。各維護公司可直接操作交換服務(wù)器上的所有數(shù)據(jù)庫,包括實時雨水情、預(yù)報等數(shù)據(jù)庫,這些數(shù)據(jù)庫存在被完全備份、數(shù)據(jù)泄露的風(fēng)險,影響數(shù)據(jù)安全性。
3)轉(zhuǎn)儲程序如果設(shè)計不完善,交換庫維護重啟時會發(fā)生轉(zhuǎn)儲程序宕機,從而導(dǎo)致轉(zhuǎn)儲功能失效,數(shù)據(jù)無法進入交換庫的情況,影響系統(tǒng)可用性。并且常常存在轉(zhuǎn)儲程序?qū)⒏鲾?shù)據(jù)庫的訪問用戶名及密碼以明文寫入文本配置文件中的情況,一旦該服務(wù)器被非法訪問,多臺與之連接的數(shù)據(jù)庫服務(wù)器均有數(shù)據(jù)泄露、被非法入侵的風(fēng)險。
現(xiàn)階段水情分中心的軟硬件解決方案主要有2 種。
1.4.1 多個業(yè)務(wù)流程在 1 臺服務(wù)器上運行
優(yōu)點:對該服務(wù)器的軟硬件資源利用較為充分,出現(xiàn)問題只需在 1 臺服務(wù)器上查找問題。
缺點如下:
1)整個系統(tǒng)容錯率低。一旦共用的服務(wù)器出現(xiàn)問題,將影響該服務(wù)器上運行的業(yè)務(wù)流程,對數(shù)據(jù)的接收及應(yīng)用將是毀滅性的打擊。
2)軟、硬件運行環(huán)境復(fù)雜導(dǎo)致系統(tǒng)難以維護。硬件方面,如果水情分中心遙測通信規(guī)約或接收軟件沒有統(tǒng)一標(biāo)準(zhǔn),將導(dǎo)致不同公司的水情遙測中心站軟件運行在 1 臺服務(wù)器上,如果這些公司使用不同的串口 Modem 設(shè)備,則這臺服務(wù)器上還需安裝對應(yīng)數(shù)量的串口卡。軟件方面,不同公司對同一中心站服務(wù)器上的軟件進行維護時可能會相互影響,相互掣肘。該服務(wù)器上運行的不同公司開發(fā)的軟件,所需的運行環(huán)境也不盡相同。在配置某一軟件運行環(huán)境時,可能會影響其它公司軟件的運行,導(dǎo)致該服務(wù)器維護困難。往往在服務(wù)器上進行某項設(shè)置的更改或者系統(tǒng)軟件的維護時,需要通知所有涉及該服務(wù)器運行軟件對應(yīng)公司的維護人員,充分聽取意見后才能進行下一步的維護工作。水情分中心的維護人員只要稍不熟悉就可能導(dǎo)致整個業(yè)務(wù)流程中斷,維護工作中的難度之大,風(fēng)險之高可能會導(dǎo)致維護工作無法正常進行。
1.4.2 不同業(yè)務(wù)流程在不同的服務(wù)器上運行
優(yōu)點:單臺服務(wù)器出現(xiàn)問題,不影響業(yè)務(wù)處理的其他環(huán)節(jié)。
缺點:投資更大,硬件利用率較低,單臺服務(wù)器性能不高。服務(wù)器重啟需經(jīng)歷漫長的自檢階段,耗時長,業(yè)務(wù)中斷時間長,反而導(dǎo)致維護人員不愿意積極更新、維護服務(wù)器軟件環(huán)境。
針對典型現(xiàn)狀出現(xiàn)的問題,發(fā)現(xiàn)使用虛擬化技術(shù)進行改造,會取得立竿見影的效果。
虛擬化是指計算機系統(tǒng)在虛擬的平臺上而不是真實的平臺上運行。虛擬化技術(shù)可以充分利用硬件資源,簡化軟件的重新配置過程。CPU 的虛擬化技術(shù)可以單 CPU 模擬多 CPU 并行,允許 1 個平臺同時運行多個操作系統(tǒng),并且應(yīng)用程序都可以在相互獨立的空間內(nèi)運行而互不影響,從而顯著提高計算機的工作效率。
虛擬化方案如圖2 所示,使用多臺物理服務(wù)器(Host Server,也稱虛擬宿主服務(wù)器)安裝虛擬化軟件組成虛擬集群,實現(xiàn)在 1 臺物理服務(wù)器上運行多臺虛擬邏輯服務(wù)器,節(jié)約成本和機房空間;通過虛擬化集群可以實現(xiàn) 1 臺虛擬邏輯服務(wù)器在多臺物理服務(wù)器上動態(tài)遷移,當(dāng)某個物理服務(wù)器宕機時可將虛擬邏輯服務(wù)器在線遷移到其它物理服務(wù)器,保證業(yè)務(wù)的連續(xù)性;另外可通過克隆模板快速部署虛擬邏輯服務(wù)器,提高業(yè)務(wù)系統(tǒng)上線速度。
圖2 虛擬機體系結(jié)構(gòu)圖
根據(jù)虛擬化技術(shù)的特性,針對水情分中心業(yè)務(wù)特點,定制了以下改造方法:
1)使用串口和 USB 口服務(wù)器實現(xiàn)串口、USB口等設(shè)備的網(wǎng)絡(luò)化及虛擬化。串口和 USB 口等設(shè)備與服務(wù)器的連接變?yōu)榫钟蚓W(wǎng)連接后,服務(wù)器與數(shù)據(jù)接收端通信無需串口卡等物理設(shè)備,可為后續(xù)服務(wù)器虛擬化做好準(zhǔn)備。
2)對水情分中心服務(wù)器進行虛擬化改造。根據(jù)各服務(wù)器硬件條件不同,各物理服務(wù)器(虛擬宿主服務(wù)器)可以虛擬化出多臺虛擬邏輯服務(wù)器。
3)將原來運行在同一服務(wù)器上的不同公司開發(fā)的中心站軟件剝離出來,分別放入不同的虛擬邏輯服務(wù)器中運行,保證 1 臺虛擬邏輯服務(wù)器中只有同一家公司的中心站軟件運行。
4)在安裝有水情中心站軟件的虛擬邏輯服務(wù)器上新建實時雨水情數(shù)據(jù)庫,并安裝實時雨水情數(shù)據(jù)交換系統(tǒng)。
5)將各虛擬邏輯服務(wù)器上的實時雨水情數(shù)據(jù)交換系統(tǒng),與建立在水情分中心核心實時雨水情數(shù)據(jù)庫上的核心數(shù)據(jù)交換系統(tǒng)建立并配置交換關(guān)系,同時建立對應(yīng)的站點轉(zhuǎn)發(fā)關(guān)系。
6)理清水情分中心各數(shù)據(jù)庫登錄用戶的訪問權(quán)限。設(shè)置不同的具有只讀、讀寫權(quán)限的數(shù)據(jù)庫訪問賬戶,將數(shù)據(jù)庫的讀寫分離開來,嚴格控制數(shù)據(jù)寫入途徑。核心實時雨水情數(shù)據(jù)庫只允許數(shù)據(jù)由建立在該庫上的交換、數(shù)據(jù)維護等系統(tǒng),以及數(shù)量、效率、安全性等可控的數(shù)據(jù)來源軟件寫入。
以現(xiàn)階段的服務(wù)器硬件資源分析,1 臺典型的配有 128 GB 內(nèi)存,> 2 TB 硬盤剩余空間的物理服務(wù)器可以輕松虛擬出 4 臺以上的虛擬邏輯服務(wù)器。因而水情分中心只需要 2 臺物理服務(wù)器虛擬出 8 臺虛擬邏輯服務(wù)器,即可基本解決所有不同公司中心站軟件的部署。并且,可以根據(jù)水情分中心實時雨水情數(shù)據(jù)庫的訪問壓力決定是將其遷入虛擬邏輯服務(wù)器還是作為單獨的物理服務(wù)器部署。
改造后,經(jīng)串口或 USB 端口設(shè)備落地的數(shù)據(jù),在數(shù)據(jù)接收設(shè)備接收后,經(jīng)由網(wǎng)絡(luò)將數(shù)據(jù)包發(fā)送到在虛擬邏輯服務(wù)器中運行的中心站軟件進行解碼、入庫等操作;然后由數(shù)據(jù)轉(zhuǎn)儲程序?qū)?shù)據(jù)轉(zhuǎn)儲到本機的實時雨水情數(shù)據(jù)庫中。至此,數(shù)據(jù)中心站軟件的所有職能已經(jīng)完成,后續(xù)匯總至分中心核心實時雨水情數(shù)據(jù)庫的工作,由安裝在本機上的數(shù)據(jù)交換軟件負責(zé)轉(zhuǎn)發(fā),無需中心站軟件干預(yù)。改造后的系統(tǒng)架構(gòu)及數(shù)據(jù)拓撲流程如圖3 所示。
圖3 改造后的系統(tǒng)架構(gòu)及數(shù)據(jù)拓撲流程
水情分中心虛擬化改造,針對現(xiàn)階段水情分中心的軟硬件解決方案中的諸多缺點及存在的問題、隱患,給予了修正,在以下方面有質(zhì)的改變:
1)數(shù)據(jù)可靠性方面。因交換系統(tǒng)有緩存機制,分中心核心交換數(shù)據(jù)庫下線維護時,各遙測中心站服務(wù)器交換系統(tǒng)發(fā)送不成功的數(shù)據(jù)將暫存在本機交換系統(tǒng)的待發(fā)數(shù)據(jù)表中,核心交換數(shù)據(jù)庫上線后將自動重新發(fā)送入庫,基本不會丟失數(shù)據(jù)。
2)系統(tǒng)穩(wěn)定性方面。不同公司開發(fā)的遙測中心站軟件運行在不同的虛擬邏輯服務(wù)器中,各公司的軟件只在本機上運行,不牽涉別的服務(wù)器。軟件運行環(huán)境可以為本機軟件高度定制,解決了多種數(shù)據(jù)軟件共享軟件環(huán)境帶來的兼容性、穩(wěn)定性和維護性等問題。
3)信息安全性方面。運行實時雨水情、洪水預(yù)報系統(tǒng)等水情分中心核心數(shù)據(jù)庫的訪問途徑高度可控,數(shù)據(jù)來源單一,可追溯。各中心站軟件不再直接訪問核心數(shù)據(jù)庫,杜絕了核心數(shù)據(jù)庫訪問密碼泄露及被整庫備份或者數(shù)據(jù)被非法導(dǎo)出等風(fēng)險。
4)性能方面。由于核心數(shù)據(jù)庫數(shù)據(jù)來源被精簡,同時寫入核心數(shù)據(jù)庫的進程減少,大量數(shù)據(jù)都是經(jīng)由數(shù)據(jù)交換系統(tǒng)批量入庫的,效率較由多個不同程序?qū)懭敫?,出現(xiàn)鎖沖突的情況大為減少,從整體上提升了核心數(shù)據(jù)庫的讀寫效率和穩(wěn)定性。
5)維護方面。各中心站虛擬邏輯服務(wù)器與核心交換服務(wù)器之間的訪問方式由直接訪問變?yōu)殚g接交換,使得各服務(wù)器均可以獨立維護。串口服務(wù)器的引入使得中心站軟件不再與硬件強相關(guān),可以很容易地更換硬件底層:使用物理或者虛擬邏輯服務(wù)器,亦或者讓虛擬邏輯服務(wù)器在擁有不同硬件的宿主虛擬服務(wù)器之間動態(tài)遷移。
6)管理方面。水情分中心數(shù)據(jù)管理員主要管理核心數(shù)據(jù)庫,各中心站虛擬邏輯服務(wù)器可由開發(fā)維護公司管理、維護,管理權(quán)限明確,范疇清晰,對于數(shù)據(jù)安全性、可靠性起到了管理作用。定期可對各中心站服務(wù)器的維護管理情況進行評估,有利于對遙測系統(tǒng)或者服務(wù)器維護服務(wù)外包情況進行質(zhì)量評價。
同時,經(jīng)過改造以后,整個水情分中心硬件系統(tǒng)的利用率更高,充分使用了每臺服務(wù)器的硬件性能,提升了服務(wù)器密度,降低了機房供電壓力。
任何方案都有利弊,對虛擬化改造方案進行細致分析后發(fā)現(xiàn)可能產(chǎn)生如下問題:
1)服務(wù)器軟件環(huán)境變多了,軟件采購成本將有一定上??;
2)每個虛擬邏輯服務(wù)器都需要維護,導(dǎo)致軟件環(huán)境對應(yīng)的維護工作總量變多了;
3)增加 1 層數(shù)據(jù)交換層級,可能會增加 5 min數(shù)據(jù)上傳的時間。
對于可能出現(xiàn)的問題,可以采用以下方案進行應(yīng)對:
1)軟件環(huán)境的采購成本遠小于同等數(shù)量的物理服務(wù)器。在服務(wù)器軟件大規(guī)模使用開源軟件以后,軟件采購費用將大幅下降。
2)表面上雖然需要維護的軟件環(huán)境增加了,但系統(tǒng)因不同公司維護或配置錯誤造成的不可用情況大大降低,整個系統(tǒng)的穩(wěn)定性得到了極大提高,停機修復(fù)系統(tǒng)問題的次數(shù)和時間都減少了,系統(tǒng)的整體可用性提高了。對比付出的一些維護時間的代價,是值得的。
3)各級交換系統(tǒng)可以設(shè)置數(shù)據(jù)輪詢時間,從而可以控制數(shù)據(jù)在水情分中心交換環(huán)節(jié)的滯留時間,以達到用戶的時效性需求。
探討的適用于水情分中心的虛擬化改造方法,通過引入虛擬化技術(shù),結(jié)合數(shù)據(jù)端口的網(wǎng)絡(luò)化技術(shù),將不同廠家的遙測中心站套件剝離至虛擬邏輯服務(wù)器中獨立運行,并使用數(shù)據(jù)交換技術(shù)的柔性連接代替數(shù)據(jù)直接入庫的剛性連接,作為星型數(shù)據(jù)拓撲網(wǎng)絡(luò)的連接方式,輔之以數(shù)據(jù)權(quán)限安全設(shè)計,使新的系統(tǒng)架構(gòu)及拓撲流程更合理,在數(shù)據(jù)可靠性、系統(tǒng)穩(wěn)定性、信息安全性、讀寫性能、數(shù)據(jù)維護及管理等方面,均有質(zhì)的改變。同時,鑒于實現(xiàn)該改造的技術(shù)難度并不高,有利于大面積推廣使用。另一方面,即使建立了統(tǒng)一的數(shù)據(jù)接收平臺,服務(wù)器虛擬化技術(shù)帶來的高密度、高能效、模塊化等優(yōu)勢仍然是水情分中心系統(tǒng)架構(gòu)優(yōu)化中無法忽視的特點,值得重點考慮及深入研究。