隨著基于工業(yè)以太網(wǎng)的測(cè)控技術(shù)不斷發(fā)展,煤炭監(jiān)測(cè)監(jiān)控類系統(tǒng)正在向網(wǎng)絡(luò)化、智能化方面加速發(fā)展,在此過程中,安裝在煤礦地面的主控計(jì)算機(jī)作為整體系統(tǒng)的指揮中心,是系統(tǒng)穩(wěn)定運(yùn)行的關(guān)鍵環(huán)節(jié),需要使用雙機(jī)熱備功能,來達(dá)到一臺(tái)機(jī)器發(fā)生故障時(shí)另一臺(tái)機(jī)器自動(dòng)接手業(yè)務(wù)并負(fù)責(zé)運(yùn)行的目的,即主機(jī)通過網(wǎng)絡(luò)采集設(shè)備層數(shù)據(jù),一旦主機(jī)發(fā)生異常,備機(jī)將在極短的時(shí)間內(nèi)代替主機(jī),進(jìn)行實(shí)時(shí)監(jiān)測(cè)并保存歷史數(shù)據(jù);當(dāng)主機(jī)重新啟動(dòng),備機(jī)會(huì)自動(dòng)將主機(jī)丟失的歷史數(shù)據(jù)拷貝給主機(jī)[1]。
【摘要】針對(duì)現(xiàn)有煤礦測(cè)控類系統(tǒng)主控雙機(jī)熱備方案存在的定制性差、成本高和單點(diǎn)故障等問題,提出了一種以靈活性、低成本和可靠性為設(shè)計(jì)原則的雙機(jī)熱備軟件設(shè)計(jì)方案,重點(diǎn)闡述了煤礦測(cè)控類系統(tǒng)雙機(jī)熱備軟件整體架構(gòu)、心跳檢測(cè)模塊、資源管理模塊和數(shù)據(jù)同步模塊的設(shè)計(jì)和實(shí)現(xiàn)方法。
【關(guān)鍵詞】雙機(jī)熱備,測(cè)控,心跳檢測(cè),數(shù)據(jù)同步
1.引言
煤礦企業(yè)的信息化建設(shè)實(shí)踐證明:基于共享存儲(chǔ)設(shè)備的簡(jiǎn)單雙機(jī)熱備方案有很大的局限性,除了可能會(huì)形成新的單點(diǎn)故障點(diǎn)(磁盤陣列柜設(shè)備)外,硬件成本較高和軟件運(yùn)行環(huán)境要求較高等都是這種解決方案在實(shí)際使用中無法避免的問題,不太符合大部分煤礦生產(chǎn)環(huán)境的要求。另外,商業(yè)化的一些純軟件雙機(jī)熱備方案數(shù)據(jù)同步時(shí)間較長(zhǎng),無法滿足測(cè)控類系統(tǒng)實(shí)時(shí)數(shù)據(jù)存儲(chǔ)的要求。因此,如何構(gòu)建一個(gè)符合煤礦企業(yè)環(huán)境使用的雙機(jī)熱備平臺(tái)成為一個(gè)急需解決的問題。
筆者從方案的靈活性、低成本和可靠性方面考慮,設(shè)計(jì)了基于專用數(shù)據(jù)同步技術(shù)的雙機(jī)熱備純軟件解決方案。本文將著重闡述該解決方案的整體架構(gòu)、心跳信號(hào)、數(shù)據(jù)同步等技術(shù)的原理與實(shí)現(xiàn)方法。
2.煤礦測(cè)控類系統(tǒng)雙機(jī)熱備軟件整體架構(gòu)
在計(jì)算機(jī)的硬件配置方面,本文提出每臺(tái)計(jì)算機(jī)提供2個(gè)網(wǎng)卡,一個(gè)是心跳專用網(wǎng)卡,使用網(wǎng)線直接連接,用來提供專用的心跳信號(hào)傳輸通道,保證心跳信號(hào)發(fā)送快速和穩(wěn)定;另一個(gè)是業(yè)務(wù)網(wǎng)卡,連接業(yè)務(wù)網(wǎng)絡(luò)的交換機(jī),用來為監(jiān)測(cè)監(jiān)控業(yè)務(wù)數(shù)據(jù)提供傳輸通道。同時(shí),業(yè)務(wù)網(wǎng)卡也可以作為備用的心跳網(wǎng)卡。
雙機(jī)熱備軟件分為心跳檢測(cè)模塊、資源管理模塊[2]和數(shù)據(jù)同步模塊,其中心跳檢測(cè)模塊用于主(A)機(jī)、備(B)機(jī)互相取得對(duì)方的存活狀態(tài)信息和其他必要信息,資源管理模塊用于監(jiān)測(cè)和控制納入雙機(jī)熱備管轄的業(yè)務(wù)服務(wù)、進(jìn)程等資源,數(shù)據(jù)同步模塊采用了為煤礦測(cè)控類系統(tǒng)專門開發(fā)的專用數(shù)據(jù)同步組件,如圖1所示。
雙機(jī)熱備軟件作為測(cè)控類系統(tǒng)軟件的一個(gè)重要的組成部分,設(shè)計(jì)使用接口的方式發(fā)布功能,所有相關(guān)的配置信息存放在雙機(jī)熱備軟件配置文件中。雙機(jī)熱備軟件對(duì)外提供主機(jī)、熱備的狀態(tài)信號(hào),提供主機(jī)、熱備狀態(tài)的切換接口,但不負(fù)責(zé)對(duì)所監(jiān)視的資源進(jìn)行干預(yù),所有的切換、清理、啟停等動(dòng)作由業(yè)務(wù)軟件自行完成,雙機(jī)熱備軟件只提供狀態(tài)判別結(jié)果作為業(yè)務(wù)軟件后續(xù)執(zhí)行動(dòng)作的依據(jù),這是本文提出的方案與其他方案之間的主要區(qū)別。這種設(shè)計(jì)可以提供極大的靈活性和軟件兼容性,給不同的業(yè)務(wù)軟件提供不同的切換策略定制空間。
3.煤礦測(cè)控類系統(tǒng)雙機(jī)熱備軟件心跳檢測(cè)模塊
煤礦測(cè)控類系統(tǒng)對(duì)穩(wěn)定性要求極高,而心跳信號(hào)在兩臺(tái)計(jì)算機(jī)之間必須持續(xù)傳輸,因此在心跳信號(hào)的傳輸渠道上設(shè)計(jì)了冗余的方式,即:
。1)專用心跳網(wǎng)絡(luò)渠道
心跳網(wǎng)絡(luò)是心跳信號(hào)的專用網(wǎng)段,只能傳輸雙機(jī)熱備心跳信息,以保證及時(shí)性和可靠性;同時(shí),該網(wǎng)絡(luò)應(yīng)設(shè)置為物理獨(dú)立的一個(gè)網(wǎng)絡(luò),不與辦公網(wǎng)或其他網(wǎng)絡(luò)進(jìn)行連接,因此本文設(shè)計(jì)為使用網(wǎng)線直連兩臺(tái)計(jì)算機(jī)。
心跳信號(hào)使用UDP方式進(jìn)行傳輸,主機(jī)、熱備分別啟動(dòng)監(jiān)聽服務(wù),同時(shí)分別啟動(dòng)UDP客戶端把信號(hào)信息發(fā)送給對(duì)方。監(jiān)聽端口默認(rèn)為11006,可以在配置文件中設(shè)定。
。2)業(yè)務(wù)網(wǎng)絡(luò)渠道
業(yè)務(wù)網(wǎng)絡(luò)中平時(shí)傳輸?shù)氖菢I(yè)務(wù)信息,但也可以作為心跳信號(hào)的備用網(wǎng)絡(luò)使用,當(dāng)心跳網(wǎng)絡(luò)出現(xiàn)問題時(shí),可以使用業(yè)務(wù)網(wǎng)絡(luò)進(jìn)行對(duì)方存活狀態(tài)的判斷。心跳信號(hào)傳輸方法不變,監(jiān)聽端口默認(rèn)為11007,也可以在配置文件中設(shè)定。
在系統(tǒng)正常工作情況下,心跳交互信息由“服務(wù)正常嗎”查詢信息和對(duì)方計(jì)算機(jī)的“服務(wù)正常”應(yīng)答信息構(gòu)成[3]。而且心跳信號(hào)傳輸?shù)膬?nèi)容必須精簡(jiǎn),以達(dá)到快速響應(yīng)的目的。同時(shí)為了保證不被特殊情況下出現(xiàn)的雜亂信息干擾,需要使用一定格式的協(xié)議約束心跳數(shù)據(jù),具體設(shè)計(jì)以一個(gè)常規(guī)心跳數(shù)據(jù)幀為例進(jìn)行說明:
舉例:0xD10xE20x000x020x000x010x8A0x4C,含義解釋如下:
起始幀頭:選取了2個(gè)字節(jié)的特定數(shù)據(jù)0xD1和0xE2來代表心跳幀的起始;
功能編號(hào):0x00代表常規(guī)心跳命令;
數(shù)據(jù)單元長(zhǎng)度:0x02代表后續(xù)的數(shù)據(jù)單元字節(jié)數(shù);
數(shù)據(jù)單元:0x00代表發(fā)送者當(dāng)前為備機(jī),0x01代表發(fā)送者某項(xiàng)資源為正常狀態(tài);
CRC校驗(yàn):0x8A0x4C代表從起始幀頭到數(shù)據(jù)單元最后一個(gè)字節(jié)進(jìn)行16位CRC校驗(yàn)計(jì)算的結(jié)果。
4.煤礦測(cè)控類系統(tǒng)雙機(jī)熱備軟件資源管理模塊
本文中的資源管理不僅僅提供了如公用IP地址資源的分配管理,還把“資源”的范圍擴(kuò)大到所有雙機(jī)切換策略中可作為判斷依據(jù)的資源對(duì)象,目前有如下幾種:
(1)對(duì)方心跳專用網(wǎng)心跳信號(hào)
即通過心跳專用網(wǎng)絡(luò)發(fā)來的對(duì)方的常規(guī)心跳信號(hào),針對(duì)信號(hào)本身是否發(fā)來進(jìn)行監(jiān)視,如果正常發(fā)來常規(guī)心跳信號(hào),則認(rèn)為對(duì)方存活,如果超過一定時(shí)間沒有收到此信號(hào),則認(rèn)為對(duì)方可能故障。
。2)對(duì)方業(yè)務(wù)網(wǎng)絡(luò)心跳信號(hào)
即通過業(yè)務(wù)網(wǎng)絡(luò)發(fā)來的對(duì)方的常規(guī)心跳信號(hào),同樣針對(duì)信號(hào)本身是否發(fā)來進(jìn)行監(jiān)視;與心跳專用網(wǎng)心跳信號(hào)不同的是,業(yè)務(wù)網(wǎng)絡(luò)心跳信號(hào)不是一直發(fā)送的,當(dāng)本機(jī)收不到對(duì)方發(fā)來的心跳專用網(wǎng)信號(hào)時(shí),主動(dòng)通過業(yè)務(wù)網(wǎng)發(fā)送常規(guī)心跳信號(hào)(心跳專用網(wǎng)信號(hào)仍然繼續(xù)發(fā)送)。如果對(duì)方業(yè)務(wù)網(wǎng)絡(luò)心跳信號(hào)沒有回送常規(guī)心跳信號(hào),則認(rèn)為對(duì)方可能已故障或者所有網(wǎng)絡(luò)均中斷。(3)WindowsService類型的業(yè)務(wù)服務(wù)
所有以WindowsService形式存在的業(yè)務(wù)服務(wù)均可加入受監(jiān)視的資源列表,可以根據(jù)服務(wù)的各種狀態(tài)和持續(xù)時(shí)間調(diào)整切換策略,策略設(shè)定在雙機(jī)熱備服務(wù)的配置文件中。
服務(wù)狀態(tài)有:已停止、正在停止、正在運(yùn)行、正在啟動(dòng)。一般建議已停止、正在停止作為資源故障狀態(tài),正在運(yùn)行作為資源正常狀態(tài),正在啟動(dòng)作為資源未知狀態(tài)。
。4)Windows進(jìn)程資源
普通的exe程序可以作為Windows進(jìn)程資源加入受監(jiān)視資源列表,可以根據(jù)進(jìn)程的各種狀態(tài)和持續(xù)時(shí)間調(diào)整切換策略。
進(jìn)程狀態(tài)有:存在、不存在。一般建議不存在作為資源故障狀態(tài),存在作為資源正常狀態(tài)。
。5)定制業(yè)務(wù)資源
不同的業(yè)務(wù)軟件可能有不同的特殊資源需要監(jiān)視,定制業(yè)務(wù)資源可以由業(yè)務(wù)軟件開發(fā)人員進(jìn)行配置。配置時(shí)需要設(shè)定資源編號(hào)和資源名稱,資源編號(hào)用來唯一標(biāo)識(shí)該資源,資源名稱用于在日志、接口輸出等環(huán)節(jié)描述該資源。定制業(yè)務(wù)資源的狀態(tài)不由雙機(jī)熱備軟件判斷,而是由業(yè)務(wù)軟件通過接口寫入雙機(jī)熱備服務(wù),然后參與雙機(jī)切換策略的執(zhí)行。
5.煤礦測(cè)控類系統(tǒng)雙機(jī)熱備軟件數(shù)據(jù)同步模塊
在雙機(jī)熱備軟件的設(shè)計(jì)中,數(shù)據(jù)同步是一個(gè)關(guān)鍵問題。本文采用的數(shù)據(jù)同步方式為:主機(jī)和備機(jī)兩個(gè)計(jì)算機(jī)上的數(shù)據(jù)庫同時(shí)工作,數(shù)據(jù)分別存放在兩臺(tái)計(jì)算機(jī)上[4];ハ嗤降臄(shù)據(jù)有:I/O實(shí)時(shí)數(shù)據(jù)、內(nèi)存實(shí)時(shí)數(shù)據(jù)、報(bào)警數(shù)據(jù)、用戶口令數(shù)據(jù)等[5]。同步方法主要是利用數(shù)據(jù)庫操作的監(jiān)視和分析技術(shù),將測(cè)控類系統(tǒng)業(yè)務(wù)軟件數(shù)據(jù)庫的增刪改等操作信息以事務(wù)為單位,通過異步的方式,實(shí)時(shí)地傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)上,并按原來的順序再執(zhí)行一遍這些操作,這樣就可以達(dá)到主機(jī)數(shù)據(jù)庫和備機(jī)數(shù)據(jù)庫內(nèi)的數(shù)據(jù)保持一致的目的。
6.結(jié)語
本文提出的雙機(jī)熱備軟件在煤礦實(shí)際應(yīng)用中取得了較好的使用效果,特別是給予了測(cè)控業(yè)務(wù)軟件開發(fā)人員極大的定制靈活性,可以把煤礦測(cè)控類系統(tǒng)軟件中的一些特殊要求很容易的加入到雙機(jī)熱備切換策略中,例如串口通訊是否正常等這類定制的雙機(jī)監(jiān)管資源。煤礦測(cè)控類系統(tǒng)軟件運(yùn)行環(huán)境復(fù)雜,對(duì)穩(wěn)定性要求高,雙機(jī)熱備軟件也在不斷的適應(yīng)新情況,不斷改進(jìn)設(shè)計(jì)方案,為煤礦用戶提供更加穩(wěn)定可靠的測(cè)控系統(tǒng)軟件。
參考文獻(xiàn)
[1]張金豪.ES210模塊在煤礦瓦斯監(jiān)控系統(tǒng)雙機(jī)熱備中的應(yīng)用[J].礦業(yè)安全與環(huán)保,2011,38(6):63-66.
[2]倪文璽,張亞平.工控計(jì)算機(jī)雙機(jī)鏡像軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(5):158-160.
[3]謝長(zhǎng)生,胡慶平,譚志虎.Heartbeat-Gear:一種新型的實(shí)時(shí)心跳監(jiān)測(cè)技術(shù)[J].計(jì)算機(jī)工程與科學(xué),2004,26(5):62-65.
[4]李建榮,郝金庫,張芝艷.基于異構(gòu)數(shù)據(jù)庫的雙機(jī)熱備策略的設(shè)計(jì)與實(shí)現(xiàn)[J].天津師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,32(3):51-59.
[5]張金仙,郝英立,張利,等.工控組態(tài)軟件雙機(jī)熱備的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2005,13(11):1292-1295.
轉(zhuǎn)載請(qǐng)注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/31785.html