黃天天,馬金鑫,尹德勝,趙小軍
(1.北京華鐵信息技術有限公司,北京 100081;2.中國鐵道科學研究院集團有限公司,北京 100081)
鐵路調車作業(yè)安全防護是當前鐵路亟待解決的一個問題。特別是列車提速后,站內調車作業(yè)的安全防護問題越來越凸顯。多年來運輸、機務及電務等各部門一直在進行調車作業(yè)安全問題的研究,以達到緩解和降低調車作業(yè)中調車員的工作壓力,并提高其自身安全措施的目的,有效地防止各類車站因調車作業(yè)而導致的重大安全事故[1],避免因這樣的事故帶來巨大經濟損失及鐵路交通影響[2]。STP的研究就是為了有效解決上述問題,保障鐵路調車作業(yè)安全。
同時, STP具有完善的調車作業(yè)數據記錄及再現(xiàn)回放功能,顯著改善了國內鐵路車站調車作業(yè)管理手段和運營條件,提高了調車作業(yè)自動化程度及現(xiàn)代化管理水平,當前,STP運行總體安全可靠。但是,一方面STP設備是以站為單位安裝,STP設備安裝車站分布不均,很多車站在偏遠山區(qū)或郊區(qū),各站之間交通不便,給設備的維護和管理帶來了諸多不便,當終端故障時,也可能導致運行數據丟失的情況;另一方面,當今鐵路出現(xiàn)越來越多關于大數據的應用,STP的數據未來也能通過大數據手段更好地服務于鐵路運行管理,所以建立STP數據中心是非常有必要的[3]。
目前,各站STP數據分別存儲于各站STP電務終端的數據庫里,電務終端一般通過網絡協(xié)議或串口協(xié)議與STP地面控制主機相連通信。地面控制主機將STP數據,諸如聯(lián)鎖數據、控制數據、機車運行數據等發(fā)送給電務終端,電務終端再將信息內容解析后存入電務終端的數據庫中[4]。
當前STP的數據存儲方式還存在以下不足。
1)當前STP數據庫與STP上位機程序在同一臺終端上,偶發(fā)數據庫與程序因故障而相互影響的現(xiàn)象[5]。
2)STP數據存儲以站為單位,只能分析單個車站的數據,無法從路局或者車務段的角度進行數據分析,進而無法為路局或車務段的運維管理提供數據支撐[6]。
3)STP中有諸多極有價值的數據,如調車運行信息,聯(lián)鎖占用鎖閉信息等。如何使用大數據手段從這些信息中發(fā)現(xiàn)一些鐵路運輸的規(guī)律[7],從而為全路的運輸管理提供科學的決策依據是未來研究的方向。但目前的存儲方式不支持大數據平臺的建設。
4)受限于現(xiàn)場STP電務終端的硬件條件,能存儲的數據量有限,有些大站只能存儲近一個月的數據,超過一個月程序就自動清除,無法存儲海量的STP數據[8]。
為解決上述問題,對建立路局級別的STP數據中心進行研究探討。
STP數據中心建設有幾個關鍵點。首先,中心服務器主機應24 h連續(xù)運行,作為路局集團公司調車安全防護的主要系統(tǒng),記錄和存儲各車站站段的調車作業(yè)實時運行數據,一定要保障中心服務器主機運行及業(yè)務穩(wěn)定可靠。其次,站段調車運行實時數據不能丟失,意外丟失或遺漏數據后,應能迅速得到恢復。存儲部分是整個網絡和數據管理中心的靈魂。一旦網絡中心發(fā)生意外(包括操作系統(tǒng)的崩潰,人為操作失誤,病毒入侵等)造成數據丟失,將會給現(xiàn)場造成數據空白,所以必須采取完善的數據防范措施。最后,數據中心必須具備一定能力來抵御部分具有災難性的事件和對信息資源的破壞,盡最大可能防止當極端情況發(fā)生時,數據丟失造成的損害。
數據中心架構如圖1所示。
圖1 STP數據中心架構Fig.1 STP data center architecture
在圖1中,STP數據中心采用存儲區(qū)域網絡架構。存儲區(qū)域網絡(Storage Area Network,SAN)架構是一種通過光纖集線器、光纖路由器、光纖交換機等連接設備將磁盤陣列、磁帶等存儲設備與相關服務器連接起來的高速專用子網。它具有如下優(yōu)點:1)高適應性,分散的數據資源能快速連接組成一個大的資源庫,給多臺服務器提供使用資源。2)高可擴展性,服務器與存儲設備不再是獨立、單一的應用和存儲關系,額外的存儲器或者服務器都可以隨時隨地加入到設備組中。3)高性能,使用光纖通道技術,數據傳輸速率有大幅度地提升。同時,通過使用SAN架構,不再需要通過介質進行系統(tǒng)數據恢復、系統(tǒng)數據備份及文件遷移等,用戶訪問速度及體驗感都有極大的提升。
所有的服務器均采用集群化設計,具備一定的容錯能力,當部分服務器故障時,不會影響系統(tǒng)的正常運作。虛擬磁帶庫是指將磁盤仿真成物理磁帶庫,使備份服務器把磁盤陣列作為物理磁帶庫對待,從而實現(xiàn)在備份作業(yè)中用磁盤代替機械磁帶存儲數據的目的。這樣能大幅降低維護成本,同時大幅提升數據恢復速度。
此外,搭建一個異地數據災備中心,利用鐵路專網光纖通道與主中心通信,實時進行數據備份存儲,防止自然災害對數據造成無法挽回的損失。
STP數據中心機房的建設主要包括供電系統(tǒng)、消防系統(tǒng)、防雷系統(tǒng)及機房環(huán)境等。
1)供電系統(tǒng)建設
機房的主要供電系統(tǒng)為機房的中樞和大動脈,供電系統(tǒng)必須安全、穩(wěn)定地運行才能保障其他系統(tǒng)的功效和核心業(yè)務的正常運行。好的數據中心供電系統(tǒng)設計要求科學合理的為各個機房設備進行穩(wěn)定可靠的配電,保障機房設備穩(wěn)定可靠運轉,也能節(jié)能環(huán)保。所以在機房供電系統(tǒng)的建設中要結合實際要求進行考量規(guī)劃。數據中心機房用電負荷主要由兩大部分組成:一是UPS供電系統(tǒng)負荷,二是城市用電系統(tǒng)負荷。
2)消防系統(tǒng)建設
機房的消防系統(tǒng)有被動方式和主動方式兩種滅火設計。主動消防是消防器件主動監(jiān)測環(huán)境,發(fā)現(xiàn)問題主動采取措施,比如,安裝在機房室內的煙霧監(jiān)測報警器等,可以在起明火之前就準確地檢測到煙霧的來源和方位,從而發(fā)出火災預警。還有氣體滅火系統(tǒng),將具有滅火功能的氣態(tài)混合化合物,貯存在高壓或者低溫的低壓容器中,當有火災發(fā)生時,自動釋放滅火氣體,消滅火源。
被動方式是指在數據機房周圍筑建防火墻,這樣能夠盡可能的在火災中保護好機房內的設備?;馂氖鹿拾l(fā)生時明火燃燒所直接產生的有害煙霧氣體主要有兩種,其主要成分苯和二氧化碳,這兩種有害化學氣體已經成為火災人員重大傷亡的罪魁禍首。另外,機房內部是一個基本完全封閉的防火環(huán)境,當火災釋放出的有毒氣體沒有迅速排出,就很容易被人體吸收造成人員傷害。因此,在機房建設排煙系統(tǒng)必不可少。當火災事故發(fā)生后,要立即啟動機房排煙系統(tǒng),迅速地把機房內的煙霧和燃燒后殘留的滅火劑氣體排入空氣中。
3)防雷系統(tǒng)建設
數據中心機房防雷接地系統(tǒng)是機房建設的基礎,做好防雷接地系統(tǒng)可以有效保護設備和人員安全。直擊雷與感應雷分別是雷電主要作用影響裝置的兩種方法。直擊雷主要作用于建筑物本身,而感應雷大多作用于數據中心的核心設備系統(tǒng),對設備正常運行影響比較大。對此要結合機房整體來做好防雷接地工作。例如在配電箱附近位置應適當配置二級防雷電源或者三級防雷防護設施;一些電氣設備以屬于c和d級的靜電防雷防護設施配置為主,核心的一些電子設施應在第二級的抗雷防護設施基礎上,加裝2V5-c/3+npe的三級防雷器,進行第三級的抗雷防護。防雷配電設備需配置在高層建筑物大樓的一個配電室內,在辦公樓的一個配電室內,可按需要進行安裝第一級別的防雷器,主要目的是將三層防雷器設備配置到辦公樓的一個配電室內;第二級的三層防雷配電設施需配置在數據中心的所有機房及其所處不同樓層的一個配電間;第三級別的防雷配電設施需配置位于數據中心所有機房的3個核心配電裝置,包括電源進線端和出線端、電源控制系統(tǒng)。
2.3.1 搭建分布式hadoop集群環(huán)境
數據中心采用分布式hadoop集群方式搭建,操作系統(tǒng)采用ubuntu,jdk版本1.8。技術架構如圖2所示。
圖2 STP數據中心技術原理Fig.2 STP data center technical principle
Hadoop Distributed File System(HDFS)包含兩類數據節(jié)點:NameNode和DataNode。NameNode為數據庫管理人員,DataNode為數據庫工作人員,NameNode主要負責對hdfs文件系統(tǒng)進行管理,DataNode負責存儲。使用ZooKeeper來管理分布式hadoop集群。在NameNode上運行ZooKeeper的客戶端ZooKeeperFailoverController(ZKFC),ZKFC判斷哪個NameNode是主節(jié)點,哪個是備用節(jié)點,同時在主備切換時也會做判斷,ZKFC和NameNode狀態(tài)保持一致,比如某個ZKFC是active的狀態(tài),那么這臺NameNode也是active的狀態(tài)。ZooKeeper通過以下機制保證只有一個NameNode是活動的:如果當前的NameNode失效了,那么另一個NameNode將會獲得ZooKeeper的獨占鎖,表明自己是活動的節(jié)點。ZKFC主要有以下功能:1)監(jiān)測一個基于NameNode的實時用戶狀態(tài),ZKFC定期向一個NameNode發(fā)送一個health-check的實時命令,如果NameNode正確且命令返回,則正常。否則會被認為是失效節(jié)點。2)獨占鎖機制,ZKFC將在ZooKeeper中只能持有一個session,如果本地的NameNode正好屬于活動狀態(tài),那么ZKFC將在其中保留一個“ephemeral”的節(jié)點作為獨占鎖,一旦本地NameNode都失效,那么這個節(jié)點會被自動刪除。3)主備切換,如果本地NameNode是正常的,并且ZKFC沒有發(fā)現(xiàn)其他NameNode具有一個獨占鎖,就執(zhí)行Failover過程,讓本地的NameNode成為活動狀態(tài)。
存儲多個數據時,NameNode可用于數據對每個數據塊的自動映射,處理客戶端的自動讀寫數據請求,配置數據戰(zhàn)略,本身不存儲實際數據,是管理者,DataNode存儲數據塊,執(zhí)行數據塊的讀寫操作,被NameNode管理。
2.3.2 部署Hbase數據庫
在搭建好分布式hadoop集群環(huán)境后,需要一個應用層面的數據庫來管理,以方便客戶端對數據的操作,選擇Hbase數據庫。Hbase數據庫和MySQL數據庫的對比如表1所示。
表1 數據庫對比Tab.1 Database comparison
由表1可知,在處理小數據量時,MySQL的性能優(yōu)于Hbase,隨著數據量的增大,Hbase對比MySQL的性能優(yōu)勢會不斷體現(xiàn),二者性能差距明顯。STP數據中心需要存儲整個路局的STP數據,其中包括聯(lián)鎖數據、車務數據及機車數據等,數據量巨大,MySQL已經無法滿足業(yè)務需要,所以選用Hbase數據庫作為數據中心的應用層數據庫。
按照下列步驟在已經搭建好的hadoop集群環(huán)境下部署Hbase數據庫。
1)官網下載Hbase安裝包,并上傳到集群服務器。
2)給安裝包賦予執(zhí)行的權限,命令為:chmod u+x hbase-0.98.6-hadoop2-bin.tar.gz。
3)解壓Hbase安裝包:tar -zxf hbase-0.98.6-hadoop2-bin.tar.gz -C /opt/modules/。
4)進入hadoop根目錄,啟動NameNode和DataNode。
5)修改配置文件hbase-site.xml,在配置文件里指定hbase的數據文件存儲在HDFS上的路徑、Hbase的運行模式、Zookeeper的目錄位置。
6)修改配置文件hbase-env.sh,將export HBASE_MANAGES_ZK=true改為false,因為已經搭建好集群環(huán)境,這里不使用Hbase自帶的Zookeeper包。
7)修改配置文件/opt/modules/hbase-0.98.6-hadoop2/conf/regionservers,指定從節(jié)點所在機器。
8)啟動Hbase進程:運行start-hbase.sh文件。之后再運行jps命令,出現(xiàn)HRegionServer,Jps,HMaster,HQuorumPeer,DataNode,NameNode,部署完成。
綜上所述,STP數據中心的數據庫搭建就已經全部完成。
STP運行數據量巨大,特別是有大型綜合編組站車站,現(xiàn)有的MySQL分站存儲數據的方式已漸漸不能滿足業(yè)務需要。而STP數據涉及聯(lián)鎖,行車數據,具有重大的數據挖掘價值,目前沒有有效的集中存儲手段,所以建立以路局為單位的STP數據中心可以有效解決這些問題。本文從工程技術上探討建立STP數據中心的要點,并提供一些解決思路。STP數據在鐵路應用上的挖掘價值是將來可以深入研究的方向。