前言:想要寫出一篇引人入勝的文章?我們特意為您整理了嵌入式系統(tǒng)雙機熱備技術淺議范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:為構建一個強實時性和高可靠性的嵌入式系統(tǒng),提出了一種嵌入式系統(tǒng)的雙機熱備方法。該方法首先采用“先啟為主”的主備機身份識別機制確認主備機身份;然后為主備機之間的心跳通信配備了2條心跳線,并且在處于正常工作運行狀態(tài)的主機上創(chuàng)建一個互斥信號量,以此確定當前只有一臺機器處于工作狀態(tài),避免了雙主機現(xiàn)象的出現(xiàn);建立主備機同步通信機制,確保主備機的狀態(tài)和相互之間接收數(shù)據(jù)的實時通信;通過對主備機工作狀態(tài)的實時監(jiān)測,及時診斷系統(tǒng)故障,并采用主備機自動切換算法實現(xiàn)雙機熱備功能。
關鍵詞:嵌入式軟件;軟件測試;雙機熱備;實時系統(tǒng)
目前,嵌入式系統(tǒng)的健壯性和穩(wěn)定性是用戶和系統(tǒng)設計人員都十分關注的問題。如果在嵌入式系統(tǒng)運行過程中,因為系統(tǒng)硬件或者軟件故障導致整個系統(tǒng)無法繼續(xù)正常工作,則可能會帶來不可預知的影響和損失。因此,為了維護嵌入式系統(tǒng)的高可用性和高可靠性,必須采取適當?shù)拇胧﹣肀WC嵌入式系統(tǒng)不間斷的穩(wěn)定運行,雙機容錯技術就是在這樣的背景下產生并在嵌入式系統(tǒng)中得到了廣泛應用[1]。當前嵌入式系統(tǒng)中最常見的雙機容錯技術有無磁盤型、共享磁盤型、磁盤鏡像型、共享和鏡像共存型等,這些方法大多應用在專用的容錯系統(tǒng)中,應用在通用的容錯系統(tǒng)中的較少[2]。上述這些方法大都是在應用層實現(xiàn)容錯的功能,因此不可避免地會帶來以下問題:①增加設計人員的工作量,設計人員在實現(xiàn)具體業(yè)務的同時必須考慮容錯功能的實現(xiàn);②數(shù)據(jù)容錯的可靠性難以保證,設計人員只要有考慮不周的地方,就可能導致容錯系統(tǒng)無法正確備份,導致備份失效;③系統(tǒng)可擴展性較差,一旦在系統(tǒng)中增加新的功能,設計人員必須重新考慮備份功能的實現(xiàn),系統(tǒng)的可測試性和可維護性差。為了能夠有效地保證嵌入式系統(tǒng)穩(wěn)定、可靠、有效和持續(xù)運行,本文提出了一種嵌入式系統(tǒng)的雙機熱備方法。該方法能夠保證設備在無人監(jiān)管的情況下不間斷正常運行,具有技術成熟、運行成本低和任務可靠性較高等優(yōu)點。
1雙機熱備系統(tǒng)概述
雙機熱備技術一般是在服務器系統(tǒng)出現(xiàn)臨時故障時采取的一種熱備份技術,通過對服務器系統(tǒng)的熱備份,可以避免服務器系統(tǒng)發(fā)生故障時產生的長時間服務中斷,確保服務器系統(tǒng)能夠長時間可靠運行。雙機熱備概念分為廣義和狹義2種。從廣義上講,就是將2臺服務器中的重要服務進行相互備份,并且2臺服務器共同執(zhí)行同一服務。當任意1臺服務器運行時出現(xiàn)故障,另外1臺服務器在最短的時間內接管該故障服務器的一切服務,該接管工作不需要人工進行干預,保證整個服務器系統(tǒng)正常不間斷運行。狹義上講,服務器數(shù)據(jù)同時寫入2臺服務器中,或者這2臺服務器采用1個共享存儲設備。在同一時間2臺服務器只有1臺處于激活(工作)狀態(tài),另外1臺處于靜默狀態(tài)。當處于激活狀態(tài)的服務器故障時,通過心跳機制激活另外1臺服務器,讓其接管當前工作。雙機熱備系統(tǒng)采用故障隔離的工作原理,將發(fā)生故障的設備以故障點轉移的方式讓處于熱備份狀態(tài)的正常設備接管當前工作,保證整個系統(tǒng)的不間斷運行。故障的恢復不是在故障設備上,而是在熱備份的設備上,熱備份的方式不是用來修復當前故障設備,而僅僅是將故障隔離。雙機熱備系統(tǒng)中的關鍵技術有主備機身份識別技術、主備機之間心跳通信技術、主備機同步技術和主備機故障檢測和切換技術等。
2主備機身份識別
目前大多數(shù)的雙機熱備系統(tǒng)都采用在主備機端安裝不同軟件的方式。這種方法的優(yōu)點是程序開發(fā)較為簡便、邏輯清晰;缺點是靈活性較差、不便于維護。為了使主機和備機具有完全對等性,采用“先啟為主”的主備機身份識別機制,即先啟動的為主機,后啟動的為從機?!跋葐橹鳌钡闹鱾錂C身份識別機制采用端口監(jiān)聽的方法實現(xiàn)。首先在主機和備機上分別配置好對方的IP地址和通信端口號,在嵌入式系統(tǒng)的任務啟動后立即創(chuàng)建一個套接字并向對方通信端口發(fā)出連接請求。如果連接成功說明對方已經啟動,本機標識為備機;如果連接失敗將本機標識為主機,并將套接字綁定到主備機通信端口進行監(jiān)聽。這樣,無論備機何時啟動,主機都會接受備機的連接請求并與之建立連接。
3建立主備機之間的心跳通信
為了提高嵌入式雙機熱備系統(tǒng)的可靠性,首當其沖需要解決的是主機設備和備機設備之間的通信問題。雙方通信的可靠程度很大程度上決定了主機設備和備機設備數(shù)據(jù)的同步性、主機設備和備機設備相互監(jiān)測的準確性、主機設備和備機設備數(shù)據(jù)傳輸?shù)姆€(wěn)定性以及隔離故障機和備用機恢復重新切入雙機系統(tǒng)的健壯性。通常在主機設備和備機設備之間采用心跳信號來相互監(jiān)測對方的工作狀態(tài),并作為診斷設備故障的一種輔助手段。一旦主機設備和備機設備之間的心跳信號發(fā)生故障,則表明有一方設備出現(xiàn)了故障,同時也能初步確定故障設備的原因。因此,在主機設備和備機設備之間建立心跳通信機制,也是提高嵌入式系統(tǒng)安全性的一種有效方法。傳統(tǒng)的雙機熱備系統(tǒng)中雙機之間是通過心跳線互發(fā)心跳建立連接通信的。若心跳線發(fā)生故障,就會將原有協(xié)調的系統(tǒng)分為2個獨立的個體。由于雙機彼此失去聯(lián)系,都以為對方發(fā)生故障,備用機本能的升為主用機,而主用機由于本身工作正常,繼續(xù)保持主用,從而導致“雙主”現(xiàn)象的產生。傳統(tǒng)的解決“雙主”現(xiàn)象的辦法是增加心跳線的數(shù)量,但是該辦法的缺點是不僅會增加系統(tǒng)的硬件成本,而且還會占用系統(tǒng)的接口資源,新增加的心跳線還會成為潛在的故障點,降低了系統(tǒng)的可維護性。為了提高雙機熱備系統(tǒng)的可靠性,主機和備機均采用雙網卡工作,雙網通過交換機連接到局域網中,采用一條心跳線進行雙機之間的通信。因此,雙機之間通過心跳線、雙網的狀態(tài)3種通道傳遞心跳信號。只要這3種通道有一個能收到對方的心跳,即可認為心跳正常。當出現(xiàn)心跳失效的情況時,分別選取雙網上的一臺設備(主機或者備機)或設備的某個端口作為該通道的遠程檢測點。當某個網絡通道心跳失效時,雙機通過該網絡通道檢查設置的遠程檢測點,若檢測不到則表明故障出現(xiàn)在本機端;若可以檢測到則表明故障出現(xiàn)在對方。為了進一步提高雙機熱備系統(tǒng)的可用性,雙網通道在收到對方心跳時加入時間戳。在心跳無效的情況下,根據(jù)心跳時間戳,選擇最后收到心跳的網絡,然后去檢查對應此網絡的遠程檢測點,若可以檢測到,表明對方宕機下線,本機正常,可作為主機運行;否則,標明本機宕機,此時應工作在備機。雙機通信的流程如圖1所示。
4實現(xiàn)主備機同步
雙機熱備系統(tǒng)中主機設備與備機設備必須保持嚴格意義上的同步,它們之間同步性的好壞直接影響到主機設備和備機設備發(fā)生切換后雙方數(shù)據(jù)的一致性。若兩方數(shù)據(jù)同步性不好,則當一方接管另一方(故障設備)工作時,就會造成數(shù)據(jù)的不完整性,從而影響整個嵌入式系統(tǒng)的工作流程。因此,主備機的同步是確保整個系統(tǒng)主機設備及其備機設備中程序與數(shù)據(jù)同步運行和實現(xiàn)雙機無縫切換的基礎。此外,主備機設備在運行過程中的相互監(jiān)測以及當一方發(fā)生故障時的故障診斷工作都對主備機之間的同步性能提出了更高的要求。主備機的同步不僅包括時鐘同步,還包括主備機狀態(tài)和數(shù)據(jù)同步。主備機的時鐘同步是指硬件上的同步,包括雙機時鐘周期和時鐘時序的同步。在主備機上電后,保證主備機使用的是同一外部有源晶振提供的時鐘周期,以此來保障系統(tǒng)的各個模塊完全按照相同的時鐘頻率運行。主備機的狀態(tài)和數(shù)據(jù)同步是指主備機之間需要實時進行通信,其中包括主備機的狀態(tài)和接收數(shù)據(jù)的實時通信。為了讓主備機的任務初始化能夠同步開始,必須對主備機同時上電。當主機任務啟動指令到達的第一時間通知備機啟動任務,使備機同時進入工作模式。在主備機均正常工作的情況下,主備機同時從網絡上接收信息,但只有主機有權限向外部設備發(fā)送信息,備機只接收外部信息,處于信息發(fā)送靜默狀態(tài)。主備機的同步過程如圖2所示。
5實現(xiàn)主備機故障檢測和切換
故障檢測技術是雙機熱備系統(tǒng)進行主機設備和備機設備切換的關鍵環(huán)節(jié),通過對設備進行實時準確地狀態(tài)監(jiān)視和檢測,能夠及時地發(fā)現(xiàn)并上報設備的故障,并啟動冗余設備繼續(xù)完成系統(tǒng)當前的工作任務,是保證了雙機熱備系統(tǒng)可靠性和穩(wěn)定性的前提和基礎。采用如下3種措施實現(xiàn)主備機故障檢測:①在主備機中配備看門狗定時器。在系統(tǒng)上電后,處理器在正常工作時會每隔固定的時間對看門狗計數(shù)器進行清零操作。若主機或者備機出現(xiàn)故障,看門狗計數(shù)器值會超過某個閾值,最終會導致看門狗產生復位信號,使處理器復位,通過上述方式可判斷主備機是否出現(xiàn)故障。②在主備機上電后,可對系統(tǒng)進行自檢操作,包括CPU檢測、內存檢測、I/O設備檢測等,可在上電時檢測系統(tǒng)硬件是否工作正常。③在系統(tǒng)運行過程中,主備機之間通過心跳線和雙網的狀態(tài)相互監(jiān)測對方的工作狀態(tài)。由于主備機在上電時通過身份識別已明確自身是主機還是備機,因此,如果在系統(tǒng)運行過程中,主機檢測到備機故障,則不進行切換,主機繼續(xù)保持工作;如果備機檢測到主機故障,則進行切換,由備機接管主機繼續(xù)工作。
6結束語
雙機熱備技術是保證嵌入式實時系統(tǒng)可靠性和穩(wěn)定性最重要和最關鍵的方法,不僅有效降低了系統(tǒng)出現(xiàn)故障的概率,還大大提高了系統(tǒng)可用性。本文提出的方法具有成本低、易于實現(xiàn)、可靠性高、主備機切換時間短等優(yōu)點,大大滿足短事務、強實時系統(tǒng)的要求,增強了雙機熱備系統(tǒng)在復雜、惡劣環(huán)境下的可維護性。
參考文獻:
[1]肖佳,王古城,楊旭,等.雙機熱備與負載均衡的設計與實現(xiàn)[J].電子設計工程,2015,23(18):176-179.
[2]羅貴舟,王錦杰,楊旭斌,等.一種多策略雙機熱備方法[J].計算機測量與控制,2019,27(3):231-234,239.
作者:劉慕霄 劉憲忠 趙昶宇 單位:海軍裝備部駐北京地區(qū)軍事代表局駐天津地區(qū)第二軍事代表室 海軍裝備部駐天津地區(qū)第二軍事代表室 天津津航計算技術研究所