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

?

衛(wèi)星導(dǎo)航系統(tǒng)雙工熱備技術(shù)研究

2010-09-17 09:43劉曉萍劉利曹紀(jì)東胡湘華黃雙臨胡光明
關(guān)鍵詞:熱備雙機(jī)實(shí)時(shí)性

劉曉萍 劉利 曹紀(jì)東 胡湘華 黃雙臨 胡光明

北京環(huán)球應(yīng)用開發(fā)中心 北京 100094

0 前言

為提高軟件運(yùn)行的可靠性,通常采用的方法是將軟件分別部署在兩臺或多臺計(jì)算機(jī)上,利用專用雙工軟件構(gòu)成雙工系統(tǒng)或計(jì)算機(jī)集群系統(tǒng),在單臺計(jì)算機(jī)出現(xiàn)故障時(shí),雙工軟件進(jìn)行故障判斷并進(jìn)行切換,以保障軟件能夠不間斷運(yùn)行。群機(jī)冗余是提高計(jì)算機(jī)系統(tǒng)可靠性的有效途徑。在工程實(shí)現(xiàn)中,雙機(jī)熱備是性能價(jià)格比最理想的方案,被廣泛應(yīng)用在航天、軍事、金融等關(guān)鍵任務(wù)領(lǐng)域。

實(shí)現(xiàn)雙工熱備有兩種選擇,一種是采購目前市場上銷售的商用雙工熱備軟件(如RoseHA等),另一種是自行設(shè)計(jì)開發(fā)。比較典型的商用雙機(jī)容錯(cuò)系統(tǒng),如Compaq Trucluster系統(tǒng)、HP雙機(jī)雙控容錯(cuò)系統(tǒng)、LEGATO Co-Standby Server系統(tǒng)、SteelEye LifeKeeper系統(tǒng)和Rose HA系統(tǒng)等,其關(guān)鍵結(jié)構(gòu)均采用雙機(jī)系統(tǒng)的熱備方式,在通過高速網(wǎng)絡(luò)或磁盤陣列進(jìn)行互聯(lián)的基礎(chǔ)上,實(shí)現(xiàn)基于磁盤鏡像或磁盤陣列的軟硬件容錯(cuò)系統(tǒng),提供通用的可靠性解決方案。但是,這些系統(tǒng)的故障檢測時(shí)間比較長(根據(jù)應(yīng)用和故障類型的不同,時(shí)間有所不同):通過實(shí)際應(yīng)用和測試,當(dāng)系統(tǒng)出現(xiàn)故障時(shí),雙機(jī)切換時(shí)間都在10秒級、甚至數(shù)分鐘,從而導(dǎo)致系統(tǒng)處理的“斷流”現(xiàn)象。商用的雙工熱備軟件不是針對我們這種高實(shí)時(shí)的應(yīng)用開發(fā)的,其實(shí)時(shí)性較低,切換時(shí)間較長。

因此,針對衛(wèi)星導(dǎo)航定位系統(tǒng)這種對實(shí)時(shí)性、可靠性要求高,需要不間斷進(jìn)行數(shù)據(jù)處理的關(guān)鍵任務(wù)系統(tǒng),如何保證雙機(jī)容錯(cuò)系統(tǒng)的強(qiáng)實(shí)時(shí)性、高可靠性和服務(wù)“不斷流”,是其中的關(guān)鍵技術(shù)難點(diǎn)。

1 方案設(shè)計(jì)

在衛(wèi)星導(dǎo)航系統(tǒng)中,由于系統(tǒng)的可靠性要求很高,必然需要利用雙工技術(shù)來保障系統(tǒng)的連續(xù)運(yùn)行。但是由于衛(wèi)星導(dǎo)航系統(tǒng)數(shù)據(jù)處理量大、實(shí)時(shí)性要求高,所以對專用雙工切換軟件提出了更高的要求。

服務(wù)器的故障可能由各種原因引起,如硬件設(shè)備故障、操作系統(tǒng)故障、業(yè)務(wù)軟件故障等等。為了達(dá)到系統(tǒng)的可用性和可靠性指標(biāo),商用軟件這顯然是不能滿足要求的,我們采用雙機(jī)自行開發(fā)的冗余互為熱備容錯(cuò)方案。

1.1 硬件組成

雙機(jī)熱備系統(tǒng)的硬件組成如圖1所示。兩臺服務(wù)器通過兩條專用連接進(jìn)行互連。專用連接用于傳輸服務(wù)器的心跳信息,以及雙機(jī)交互信息(特征碼、雙機(jī)切換請求和應(yīng)答以及在系統(tǒng)恢復(fù)時(shí)傳送恢復(fù)計(jì)算所需的數(shù)據(jù))。

圖1 雙機(jī)熱備的系統(tǒng)組成

服務(wù)器心跳信息和雙機(jī)間交互信息的數(shù)據(jù)量不大,但實(shí)時(shí)性要求高,因此雙機(jī)專用連接需要選用帶寬高、延遲小的產(chǎn)品。千兆以太網(wǎng)和基于InfiniBand標(biāo)準(zhǔn)的主機(jī)通道適配器(HCA)都具有帶寬高、延遲小的特點(diǎn)。但由于InfiniBand HCA的帶寬更高、延遲更小(數(shù)據(jù)如表1所示),并且占用的CPU資源更少,因此作為首選。同時(shí),可以采用兩條千兆以太網(wǎng)連接作為備份鏈路,當(dāng)InfiniBand HCA發(fā)生故障時(shí)切換使用以太網(wǎng)線發(fā)送心跳信息和雙機(jī)交互信息。

表1 千兆以太網(wǎng)與InfiniBand HCA性能比較

針對系統(tǒng)的數(shù)據(jù)庫應(yīng)用需求,結(jié)合數(shù)據(jù)庫集群的雙機(jī)熱備系統(tǒng)如圖2所示。數(shù)據(jù)庫集群可以采用Oracle 10g的RAC(Real Application Cluster)軟件及Oracle Cluster Ready軟件等,使用共享磁盤陣列進(jìn)行數(shù)據(jù)存儲。系統(tǒng)正常工作狀態(tài)下,兩臺服務(wù)器同時(shí)接收并處理待存檔的數(shù)據(jù),由主機(jī)負(fù)責(zé)數(shù)據(jù)入庫、數(shù)據(jù)備案及向外提供數(shù)據(jù)服務(wù)等工作,由數(shù)據(jù)庫集群負(fù)責(zé)數(shù)據(jù)庫本身負(fù)載均衡。當(dāng)主機(jī)出現(xiàn)故障時(shí),所有任務(wù)由備機(jī)獨(dú)立承擔(dān),實(shí)現(xiàn)數(shù)據(jù)服務(wù)的連續(xù)運(yùn)行。因?yàn)閮膳_服務(wù)器共享同一數(shù)據(jù)庫,因此在故障時(shí)能保證入庫數(shù)據(jù)的一致性。

圖2 結(jié)合數(shù)據(jù)庫集群的雙機(jī)熱備系統(tǒng)組成

1.2 軟件設(shè)計(jì)

在雙機(jī)熱備工作模式下,兩臺配置相同的服務(wù)器構(gòu)成一個(gè)機(jī)組,一臺為主機(jī),另一臺為備機(jī)(如圖 3所示)。雙機(jī)運(yùn)行相同的軟件,使用相同的參數(shù)配置,接收相同的數(shù)據(jù),進(jìn)行相同的數(shù)據(jù)處理,Oracle數(shù)據(jù)庫集群負(fù)責(zé)數(shù)據(jù)庫本身負(fù)載均衡。但只有主機(jī)才能輸出計(jì)算結(jié)果,備機(jī)不向外輸出。主機(jī)故障后,備機(jī)接替主機(jī)的工作成為新主機(jī),獨(dú)立承擔(dān)所有實(shí)時(shí)任務(wù),實(shí)現(xiàn)數(shù)據(jù)服務(wù)的連續(xù)運(yùn)行,主機(jī)切出并在修復(fù)后切入成為新備機(jī)。備機(jī)故障后,主機(jī)狀態(tài)不發(fā)生改變,備機(jī)切出并在修復(fù)后切入。

圖3 雙機(jī)熱備軟件組成

1.2.1 狀態(tài)切換

在主機(jī)發(fā)生故障的情況下,雙機(jī)熱備系統(tǒng)自動切換原副機(jī)為主機(jī),接替原主機(jī)完成任務(wù)。當(dāng)故障機(jī)修復(fù)后,可重新加入雙機(jī)系統(tǒng)。

在副機(jī)發(fā)生故障的情況下,主機(jī)仍維持主機(jī)狀態(tài),其處理不受影響,繼續(xù)完成任務(wù),雙機(jī)熱備軟件將告警,但不發(fā)生切換。當(dāng)副機(jī)修復(fù)后,可重新加入雙機(jī)系統(tǒng)。

狀態(tài)切換策略可通過狀態(tài)管理進(jìn)行設(shè)置。

1.2.2 實(shí)時(shí)性

雙機(jī)熱備方案的實(shí)時(shí)性由兩部分構(gòu)成:故障檢測的實(shí)時(shí)性和狀態(tài)切換的實(shí)時(shí)性。單機(jī)故障的情況很多,歸納起來有三種:服務(wù)器硬件故障,網(wǎng)絡(luò)設(shè)備故障以及應(yīng)用軟件故障。

服務(wù)器硬件故障可以細(xì)分為部件故障和整機(jī)故障。本方案采用心跳機(jī)制來檢測整機(jī)故障。備機(jī)上的熱備服務(wù)模塊每隔10ms在兩個(gè)專用連接上監(jiān)測主機(jī)的心跳。當(dāng)備機(jī)在50ms內(nèi)收不到主機(jī)的應(yīng)答時(shí),認(rèn)為主機(jī)已故障,備機(jī)就切換為主機(jī),接管向外輸出信息的任務(wù)。這樣可以保證故障檢測時(shí)間≤50ms。部件故障是通過系統(tǒng)監(jiān)護(hù)模塊檢測的,通過定期對系統(tǒng)部件、進(jìn)程的檢測,可以獲取各部件、進(jìn)程的狀態(tài),檢測周期定為30ms。系統(tǒng)監(jiān)護(hù)模塊判斷故障的時(shí)間<1ms,這樣故障檢測時(shí)間≤50ms。

網(wǎng)絡(luò)設(shè)備故障會引起進(jìn)程無法獲得數(shù)據(jù)或發(fā)送數(shù)據(jù),通過特征碼機(jī)制,可以在<50ms的周期里判斷出接收數(shù)據(jù)失敗,發(fā)送數(shù)據(jù)失敗可以立即判斷出來,加上重發(fā)超時(shí),也可以保證檢測時(shí)間≤50ms。

業(yè)務(wù)軟件的故障包括軟件崩潰、計(jì)算錯(cuò)誤、CPU占用過高、內(nèi)存占用過高、磁盤占用過高等。系統(tǒng)監(jiān)護(hù)和業(yè)務(wù)管理通過定期握手、狀態(tài)查詢等手段,收集業(yè)務(wù)軟件的狀態(tài)信息,檢測周期定為30ms。系統(tǒng)監(jiān)護(hù)模塊判斷故障的時(shí)間<1ms,這樣故障檢測時(shí)間≤50ms。

雙機(jī)狀態(tài)切換分兩種情況:服務(wù)器整機(jī)故障被檢測出來時(shí),由備機(jī)的雙機(jī)熱備服務(wù)模塊直接切換,并將雙機(jī)狀態(tài)通知業(yè)務(wù)管理,由于是本地調(diào)用,切換時(shí)間<1ms;其它故障被檢測出來時(shí),由系統(tǒng)監(jiān)護(hù)模塊發(fā)送軟硬件故障信息到相應(yīng)的熱備服務(wù)模塊,延遲<0.5ms,熱備服務(wù)模塊向備機(jī)的熱備服務(wù)模塊發(fā)送切換請求,并獲得答復(fù),延遲<1ms,熱備服務(wù)模塊將雙機(jī)狀態(tài)通知業(yè)務(wù)管理執(zhí)行信息輸出切換,切換時(shí)間<0.5ms。由于備機(jī)是一直正常運(yùn)行,切換后數(shù)據(jù)直接發(fā)送,存在的延遲主要是因?yàn)樵诠收洗_認(rèn)的期間,可能會有部分待發(fā)送數(shù)據(jù)因沒有收到特征碼而緩存在待發(fā)送隊(duì)列,這時(shí)需要將其全部發(fā)送出去。信息處理平臺的業(yè)務(wù)計(jì)算是數(shù)據(jù)驅(qū)動的,產(chǎn)生的數(shù)據(jù)量與接收的數(shù)據(jù)量在同一個(gè)數(shù)量級上,即每個(gè)分系統(tǒng)產(chǎn)生的數(shù)據(jù)小于10包/秒,因此,在50ms內(nèi)產(chǎn)生的待發(fā)送數(shù)據(jù)不會大于10包,發(fā)送耗時(shí)<10ms。

1.2.3 數(shù)據(jù)同步

為了減少系統(tǒng)對錯(cuò)誤的響應(yīng)時(shí)間,雙機(jī)之間通訊采用InfiniBand高速通訊卡,通訊卡由PCI直接和總線通訊,可采用MPI庫,比千兆以太網(wǎng)具備更高的帶寬和更小的延遲,可以用于雙機(jī)之間狀態(tài)的一致性檢查、同步以及消息的發(fā)送。

雙機(jī)切換過程不可避免的引入延遲,在高實(shí)時(shí)、高可靠性系統(tǒng)中,必須保證系統(tǒng)服務(wù)的連續(xù)和完整,即不會因?yàn)榍袚Q引起數(shù)據(jù)的丟失。在本方案中,通過特征碼機(jī)制來保證數(shù)據(jù)一致性。熱備服務(wù)負(fù)責(zé)接收業(yè)務(wù)管理發(fā)送來的特征碼并發(fā)送到對方。業(yè)務(wù)管理根據(jù)特征碼,確認(rèn)接收數(shù)據(jù)是否完整和發(fā)送數(shù)據(jù)是否成功。

當(dāng)服務(wù)器切入時(shí),重建計(jì)算環(huán)境需要一定的配置數(shù)據(jù)和累積一定時(shí)間的業(yè)務(wù)數(shù)據(jù)。為了保證切入的服務(wù)器的計(jì)算能盡快和主機(jī)保持同步,熱備服務(wù)負(fù)責(zé)根據(jù)業(yè)務(wù)管理的需求來傳送配置數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù),寫入本機(jī)的動態(tài)數(shù)據(jù)區(qū)和靜態(tài)數(shù)據(jù)區(qū)。

1.2.4 時(shí)間同步

在系統(tǒng)狀態(tài)的保持和恢復(fù)過程中,時(shí)間同步是非常重要的,為此系統(tǒng)采用了專門硬件時(shí)鐘(原子鐘)為基準(zhǔn)的時(shí)間信號,通過時(shí)頻信號送達(dá)計(jì)算機(jī),供計(jì)算機(jī)校準(zhǔn)本地時(shí)鐘,高精準(zhǔn)的時(shí)鐘為雙工同步提供了很好的時(shí)間信號,可以為主備機(jī)切換和恢復(fù)提供精準(zhǔn)的時(shí)間戳,給系統(tǒng)狀態(tài)時(shí)間定位以及實(shí)時(shí)容錯(cuò)、快速恢復(fù)提供可能。

實(shí)時(shí)時(shí)鐘和定時(shí)器能夠提供極小的時(shí)間間隔來控制與調(diào)度任務(wù)和事件的執(zhí)行和發(fā)生。系統(tǒng)實(shí)時(shí)時(shí)鐘能提供微妙或納秒級的時(shí)間分辨率,從而可以控制應(yīng)用軟件中的進(jìn)程或線程在精確的時(shí)間間隔內(nèi)激活運(yùn)行。同時(shí)還可以利用實(shí)時(shí)時(shí)鐘和定時(shí)器并結(jié)合采用信號機(jī)制,對應(yīng)用軟件中有關(guān)時(shí)間間隔要求嚴(yán)格的軟件接口和程序進(jìn)行控制。

2 雙工切換測試情況

(1)模擬副機(jī)軟件故障,殺死副機(jī)運(yùn)行的某個(gè)進(jìn)程,如數(shù)據(jù)接收進(jìn)程RCV。

測試結(jié)果:主機(jī)正常工作。

(2)模擬主機(jī)硬件故障,殺死主機(jī)上運(yùn)行的所有進(jìn)程。

測試結(jié)果:副機(jī)雙工進(jìn)程報(bào)警:“未收到心跳信息,請檢查”,同時(shí)自動將本機(jī)設(shè)為“主機(jī)”,并向?qū)Ψ桨l(fā)送含有奪權(quán)信息的心跳信息。

(3)模擬主機(jī)軟件故障,殺死主機(jī)上運(yùn)行的某個(gè)進(jìn)程,如數(shù)據(jù)接收進(jìn)程RCV。

測試結(jié)果:主機(jī)雙工進(jìn)程檢測到本機(jī)軟件故障,自動將本機(jī)設(shè)為“副機(jī)”,同時(shí)向原副機(jī)發(fā)送委托信息,副機(jī)收到心跳信息中有委托變換工作狀態(tài)信息,將自己設(shè)為“主機(jī)”,完成一次主副切換;數(shù)據(jù)庫中存儲的數(shù)據(jù)內(nèi)容完整。

3 結(jié)論

經(jīng)過多次測試,該雙工熱備模塊的可靠性和實(shí)時(shí)性都能滿足系統(tǒng)的要求,能夠在服務(wù)器發(fā)生軟、硬件故障或收到來自系統(tǒng)監(jiān)控程序的切換命令時(shí),在要求時(shí)間內(nèi)完成服務(wù)器的切換,保證系統(tǒng)連續(xù)正常工作,數(shù)據(jù)入庫不中斷。因此,這種雙工熱備策略在系統(tǒng)上的應(yīng)用是成功的。

[1]曾碧卿,陳志剛.服務(wù)器集群系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)用研究.2004.

[2]王晉鵬,潘龍法,李降龍.LVS 集群中的動態(tài)反饋調(diào)度[J].計(jì)算機(jī)工程.2005.

[3]章文嵩.Linux服務(wù)器集群技術(shù).[EB/OL].http://www. chinaitlab.com/www/special/juqun.asp.2006.

猜你喜歡
熱備雙機(jī)實(shí)時(shí)性
熱備動車組配置方案優(yōu)化模型
東海區(qū)實(shí)時(shí)海洋觀測數(shù)據(jù)庫雙機(jī)熱備系統(tǒng)解決方案
雙機(jī)、雙槳軸系下水前的安裝工藝
一種應(yīng)用于分布式網(wǎng)絡(luò)的地址分配及熱備技術(shù)
雙機(jī)牽引ZDJ9道岔不同步問題的處理
PostgreSQL熱備原理研究及流復(fù)制運(yùn)用
Loader軸在雙機(jī)桁架機(jī)械手上的應(yīng)用
航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對比
計(jì)算機(jī)控制系統(tǒng)實(shí)時(shí)性的提高策略
一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
长海县| 凤翔县| 余干县| 普陀区| 阜宁县| 栾城县| 德江县| 三门峡市| 梁山县| 绥棱县| 濮阳县| 加查县| 康保县| 明溪县| 自贡市| 大竹县| 彭阳县| 留坝县| 峨边| 米林县| 临城县| 洛隆县| 会泽县| 郴州市| 红原县| 宿迁市| 石嘴山市| 汝阳县| 乌什县| 泰顺县| 宁陵县| 汾阳市| 富顺县| 龙井市| 和硕县| 南开区| 白沙| 哈密市| 华坪县| 乐业县| 九江市|