国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

雙機(jī)熱備系統(tǒng)心跳失效的防護(hù)方案

2013-05-08 08:43曹桂均
關(guān)鍵詞:熱備雙主機(jī)軟件

王 飛,曹桂均

(中國(guó)鐵道科學(xué)研究院 通信信號(hào)研究所,北京 100081)

計(jì)算機(jī)系統(tǒng)的廣泛應(yīng)用極大地提高了整個(gè)社會(huì)的生產(chǎn)效率,但與此同時(shí),對(duì)計(jì)算機(jī)系統(tǒng)的依賴也產(chǎn)生了極大的風(fēng)險(xiǎn),一些內(nèi)部和外部的故障都會(huì)導(dǎo)致系統(tǒng)的破壞、數(shù)據(jù)的丟失。因此,盡可能地提高系統(tǒng)的可用性就顯得尤為重要。雙機(jī)熱備是高可用系統(tǒng)中一個(gè)重要的機(jī)制,利用故障點(diǎn)轉(zhuǎn)移的方式保障業(yè)務(wù)的不間斷運(yùn)行是提高系統(tǒng)可用性的一個(gè)行之有效的方法。

1 雙機(jī)熱備概述

雙機(jī)熱備使用2臺(tái)主機(jī)作為一個(gè)整體共同執(zhí)行同一服務(wù),其中一臺(tái)為主用機(jī),另一臺(tái)為備用機(jī)。在正常情況下,同一時(shí)刻只有主用機(jī)進(jìn)行邏輯運(yùn)算、完成與其它設(shè)備的信息交換,對(duì)外提供服務(wù)等任務(wù)。雙機(jī)互相監(jiān)視對(duì)方的運(yùn)行情況。當(dāng)主用機(jī)出現(xiàn)故障或由于維修等原因退出,不能支持系統(tǒng)正常工作時(shí),運(yùn)行在主用機(jī)上的雙機(jī)軟件會(huì)通知備用機(jī),或者通過運(yùn)行在備用機(jī)上雙機(jī)軟件的診斷將自身激活,從而在不需要人工干預(yù)的情況下,完成對(duì)主用機(jī)工作的接管,繼續(xù)支持關(guān)鍵應(yīng)用服務(wù)。其業(yè)務(wù)的恢復(fù)不是在原服務(wù)器,而是在備用服務(wù)器,有效防止系統(tǒng)崩潰給企業(yè)帶來的巨大損失。雙機(jī)熱備示意圖如圖1所示。

圖1 雙機(jī)熱備示意圖

2 雙主的產(chǎn)生

從心跳通信的角度分析,雙機(jī)熱備系統(tǒng)的故障分為2種:(1)非心跳通信故障,例如:應(yīng)用程序故障,網(wǎng)絡(luò)故障等。主用機(jī)發(fā)生非心跳通信故障,可以通過心跳通道將自身的故障信息發(fā)送給備用機(jī),備用機(jī)分析主用機(jī)的心跳信息并結(jié)合自身的工作狀態(tài)決定本身是否升為主用機(jī);(2)心跳通信故障,例如,服務(wù)器宕機(jī)等故障。主用機(jī)心跳隨著服務(wù)器的宕機(jī)而失效,備用機(jī)一旦檢測(cè)到主用機(jī)心跳失效,雙機(jī)軟件便會(huì)將備用機(jī)激活,升為主用機(jī)。

雙機(jī)熱備系統(tǒng)中雙機(jī)之間通過心跳線建立通信連接,互發(fā)心跳。當(dāng)聯(lián)系雙機(jī)的心跳線斷開,本來為一整體、動(dòng)作協(xié)調(diào)的系統(tǒng),就會(huì)分裂為2個(gè)獨(dú)立的個(gè)體。由于相互之間失去了聯(lián)系,都以為是對(duì)方發(fā)生了故障,所以備用機(jī)會(huì)本能地升為主用機(jī);主用機(jī)由于本身工作狀態(tài)正常,則繼續(xù)保持主用,從而出現(xiàn)2臺(tái)機(jī)器同時(shí)主用的現(xiàn)象,這種現(xiàn)象稱為“雙主”。雙主的出現(xiàn)不符合故障-安全原則,是一種不安全的工作狀態(tài)。在這種情況下,可能會(huì)出現(xiàn)以下問題:

(1)雙機(jī)爭(zhēng)奪系統(tǒng)的共享資源,導(dǎo)致雙機(jī)都不能正常工作。

(2)雙機(jī)同時(shí)工作,導(dǎo)致系統(tǒng)邏輯混亂或數(shù)據(jù)損壞。

因此,傳統(tǒng)的雙機(jī)熱備系統(tǒng)可以防護(hù)系統(tǒng)出現(xiàn)的單點(diǎn)故障,即使同時(shí)發(fā)生多點(diǎn)故障,系統(tǒng)可以安全地降為備用機(jī)。但是,當(dāng)心跳線發(fā)生故障時(shí),傳統(tǒng)的雙機(jī)熱備系統(tǒng)沒有提供安全、可靠的防護(hù)措施,一旦出現(xiàn)雙主,將會(huì)嚴(yán)重影響系統(tǒng)的正常運(yùn)行,給系統(tǒng)帶來破壞性的影響。

3 雙主防護(hù)方案的設(shè)計(jì)

傳統(tǒng)的方案是增加心跳線的數(shù)量。此方案在商用雙機(jī)熱備系統(tǒng)中有一定范圍的應(yīng)用。冗余的心跳線使系統(tǒng)的雙機(jī)通信更加強(qiáng)壯,減小心跳故障出現(xiàn)的概率。但冗余的心跳線不能保證心跳通道的絕對(duì)安全,依然存在全部斷開的風(fēng)險(xiǎn)。并且增加心跳線意味著增加系統(tǒng)的硬件成本,不僅會(huì)占用系統(tǒng)的接口資源,還存在成為潛在的故障點(diǎn),降低系統(tǒng)的可維護(hù)性等問題。

另一種方案是啟用“磁盤鎖”。正在服務(wù)的一方鎖住共享磁盤,“雙主”發(fā)生時(shí),讓對(duì)方完全“搶不走”共享磁盤資源。但使用“磁盤鎖”也會(huì)有一個(gè)不小的問題,如果占用共享盤的一方不主動(dòng)“解鎖”,另一方就永遠(yuǎn)得不到共享磁盤。現(xiàn)實(shí)中假如主用機(jī)突然死機(jī)或崩潰,就不可能執(zhí)行解鎖命令,備用機(jī)也就接管不了共享資源和應(yīng)用服務(wù),此方案存在降低系統(tǒng)的可用性的風(fēng)險(xiǎn)。

本文針對(duì)雙機(jī)熱備系統(tǒng)中存在的“雙主”問題,在不改變?cè)邢到y(tǒng)結(jié)構(gòu)的前提下,提出一種全新的,完全從軟件上解決該問題的方案。

雙機(jī)熱備系統(tǒng)的網(wǎng)絡(luò)為了提高可靠性,一般設(shè)計(jì)為雙網(wǎng),分別稱為A網(wǎng)、B網(wǎng)。雙網(wǎng)通過交換機(jī)接到局域網(wǎng)中,所以傳遞雙機(jī)心跳信息的物理通道,除了心跳線,還可以把機(jī)器的A/B網(wǎng)通道也納入其中。這樣雙機(jī)內(nèi)部心跳信息的通道就為心跳線和“A/B網(wǎng)”冗余狀態(tài)。只要這3個(gè)通道有一個(gè)能收到對(duì)方的心跳,即可視為心跳正常。

系統(tǒng)在多通道冗余的情況下,仍然會(huì)出現(xiàn)心跳失效的情況,這時(shí)考慮借助于雙機(jī)之外的第三方。這里采用的是設(shè)置遠(yuǎn)程檢測(cè)點(diǎn)。分別選取雙網(wǎng)上的一臺(tái)設(shè)備或設(shè)備的某個(gè)端口作為該通道的遠(yuǎn)程檢測(cè)點(diǎn)。當(dāng)某個(gè)網(wǎng)絡(luò)通道心跳失效,這時(shí)雙機(jī)通過該網(wǎng)絡(luò)通道檢查設(shè)置的遠(yuǎn)程檢測(cè)點(diǎn),若檢測(cè)不到則表明斷點(diǎn)就出在本端,不僅心跳,對(duì)外服務(wù)的本端網(wǎng)絡(luò)鏈路也斷了;若可以檢測(cè)得到則說明本端連接正常,斷點(diǎn)出現(xiàn)在對(duì)方。設(shè)置遠(yuǎn)程檢測(cè)點(diǎn)這種方式簡(jiǎn)單可靠,其結(jié)果可以作為本機(jī)主備狀態(tài)切換的重要參考條件。

為進(jìn)一步提高雙機(jī)系統(tǒng)在故障情況下的可用性,雙網(wǎng)通道在收到的心跳上加入時(shí)間戳。一旦網(wǎng)絡(luò)通道收不到對(duì)方心跳,則記錄最后一包心跳的時(shí)間戳,若該網(wǎng)絡(luò)通道的心跳恢復(fù)則該時(shí)間戳失效。通過比較時(shí)間戳可使主機(jī)判斷自身工作狀態(tài)。利用雙網(wǎng)的雙機(jī)熱備系統(tǒng)示意圖如圖2所示。

圖2 利用雙網(wǎng)的雙機(jī)熱備系統(tǒng)示意圖

4 雙主防護(hù)方案的實(shí)現(xiàn)

雙機(jī)熱備軟件是構(gòu)建雙機(jī)熱備系統(tǒng)的核心,實(shí)現(xiàn)了對(duì)整個(gè)系統(tǒng)工作狀態(tài)的監(jiān)測(cè)、心跳信息的收發(fā)和邏輯運(yùn)算等功能。對(duì)于雙主防護(hù)功能的實(shí)現(xiàn)主要是依靠雙機(jī)軟件完成的。

雙機(jī)在通過心跳線互發(fā)心跳進(jìn)行通信的同時(shí),也通過網(wǎng)絡(luò)通道,將檢測(cè)到的本機(jī)的應(yīng)用狀態(tài)(應(yīng)用程序狀態(tài)與雙網(wǎng)狀態(tài))、當(dāng)前主備狀態(tài)等信息采用UDP單播的方式給它機(jī)發(fā)一個(gè)自定義格式的心跳。心跳線上的信息與網(wǎng)絡(luò)上的心跳信息可以相同也可以不同,由心跳線的類型決定。

在心跳有效的情況下,主機(jī)上的雙機(jī)軟件通過心跳信息獲取對(duì)方的工作狀態(tài),雙機(jī)的主備用完全依靠雙機(jī)軟件邏輯判斷的結(jié)果。在心跳無效的情況下,雙機(jī)軟件并不會(huì)簡(jiǎn)單的認(rèn)為對(duì)方宕機(jī),而是根據(jù)心跳的時(shí)間戳,選擇最后收到心跳的網(wǎng)絡(luò),然后去檢查對(duì)應(yīng)此網(wǎng)絡(luò)的遠(yuǎn)程檢測(cè)點(diǎn),若可以檢測(cè)到,說明對(duì)方宕機(jī)下線,本機(jī)正常在線,可以作為主用機(jī)運(yùn)行。若檢測(cè)不到則說明本機(jī)的網(wǎng)絡(luò)斷了,即使對(duì)方宕機(jī),本機(jī)也不能正常工作,應(yīng)工作在備用。雙主防護(hù)方案如圖3所示。

圖3 雙主機(jī)方案示意圖

5 測(cè)試及結(jié)果對(duì)比

為了驗(yàn)證本方案的有效性,需要對(duì)本方案進(jìn)行測(cè)試。本測(cè)試模仿系統(tǒng)在實(shí)際運(yùn)行過程中可能發(fā)生的故障,重點(diǎn)測(cè)試雙機(jī)熱備系統(tǒng)在心跳失效情況下的雙機(jī)切換功能,并將傳統(tǒng)的雙機(jī)熱備方案加入對(duì)比測(cè)試,測(cè)試結(jié)果對(duì)比見表1。

表1 測(cè)試結(jié)果對(duì)比

測(cè)試表明,本方案能夠在發(fā)生各種故障的情況下進(jìn)行正確的切換。由于該方案擁有2個(gè)冗余的心跳通道,心跳線的單點(diǎn)故障不會(huì)對(duì)系統(tǒng)造成影響。并且在心跳線故障的情況下,系統(tǒng)發(fā)生多點(diǎn)故障,該方案可最大限度地保障系統(tǒng)的可用性。

6 結(jié)束語

本方案借助于系統(tǒng)網(wǎng)絡(luò)和設(shè)置遠(yuǎn)程檢測(cè)點(diǎn),擁有更高的可靠性和安全性;不需要增加硬件,不需要對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行調(diào)整,對(duì)現(xiàn)有雙機(jī)熱備系統(tǒng)有較強(qiáng)的兼容性。經(jīng)過測(cè)試表明,本方案較好地解決了心跳線故障導(dǎo)致系統(tǒng)出現(xiàn)的雙主現(xiàn)象,并且在出現(xiàn)多點(diǎn)故障的情況下,依然可以保障系統(tǒng)正常工作或安全的降為雙備機(jī)運(yùn)行,最大限度保證了系統(tǒng)的安全性、可用性和可靠性。同時(shí),增強(qiáng)了雙機(jī)熱備系統(tǒng)在復(fù)雜、惡劣環(huán)境下的可維護(hù)性。

[1] 劉朝英,李 萍. 中國(guó)鐵路分散自律調(diào)度集中[M].北京:中國(guó)鐵道出版社,2009.

[2] 曹桂均,張 華. 動(dòng)車基地調(diào)度集中系統(tǒng)研究[J].中國(guó)鐵路,2012(4):55-59.

[3] 吳汶麒. 國(guó)外鐵路信號(hào)新技術(shù)[M].北京:中國(guó)鐵道出版社,2000.

猜你喜歡
熱備雙主機(jī)軟件
熱備動(dòng)車組配置方案優(yōu)化模型
東海區(qū)實(shí)時(shí)海洋觀測(cè)數(shù)據(jù)庫(kù)雙機(jī)熱備系統(tǒng)解決方案
一種應(yīng)用于分布式網(wǎng)絡(luò)的地址分配及熱備技術(shù)
一種基于雙主仲裁機(jī)制的安全編碼采集模塊
PostgreSQL熱備原理研究及流復(fù)制運(yùn)用
小水電站計(jì)算機(jī)監(jiān)控系統(tǒng)上位機(jī)軟件的開發(fā)
營(yíng)造良好的小學(xué)語文教學(xué)氣氛應(yīng)發(fā)揮“雙主”作用
“雙主”教學(xué)方法在新裝備教學(xué)中的探討
道岔監(jiān)測(cè)系統(tǒng)上位機(jī)軟件設(shè)計(jì)
優(yōu)化“雙主”模式,構(gòu)建高中數(shù)學(xué)高效課堂