一種基於非實時作業系統的主從雙機切換方法與流程
2023-11-05 18:04:41

本發明屬於計算機測量與控制技術領域,特別涉及一種基於非實時作業系統的主從雙機切換方法。
背景技術:
隨著武器裝備系統複雜性的不斷提高,對測試可靠性要求日益提高,很多獲得高可靠性電子設備的可靠性設計依賴於冗餘設計,冗餘設計是提高設備可靠性的最常用的有效手段之一,來利用冗餘設計,就可以在單個組件或系統發生失效時不影響系統的整體可靠性。
冗餘設計是用一臺或多臺相同單元(系統)構成並聯形式,當其中一臺發生故障時,其它單元仍能使系統正常工作的設計技術。
冗餘技術按特點可分:熱冗餘/冷冗餘;按冗餘程度分為:兩重冗餘/三重冗餘/多重冗餘;按冗餘範圍分:元器件冗餘/部件冗餘/子系統冗餘/系統冗餘。
其中,熱冗餘實用價值最高,也是熱門研究方向;兩重冗餘使用最為廣泛,具有最好的性價比;系統冗餘最為複雜,是減少單點失效,提高可靠性的最佳途經。
目前,在冗餘設計的主從機切換方法中,通常都是主機發生故障時,自動切換到從機,然後主機恢復正常後,再切換到主機,該方法適用於數據採集,網絡數據通信等任務的冗餘備份,但在某些總線系統中,指令的收發只能由主機控制,這種情況下前面提到的雙機並行工作的方法並不適用,從而需要一種針對上述場合的主從機切換方法。
技術實現要素:
本發明要解決的技術問題是現有主從機切換方法存在的上述問題,針對從機切換後,需要完成具備主機狀態的轉換這種情況,提出了一種基於非實時作業系統的主從雙機切換方法,該方法從兩種情況考慮了主從機切換的條件,並且切換後將從機置為主機狀態,進一步還提供了一種手工切換的方案。
為了實現上述目的,本發明提出了一種基於非實時作業系統的主從雙機切換方法,所述方法包括:
步驟1)主從雙機完成時鐘及狀態同步,對主機和從機進行故障監測;
步驟2)若主機監測到自身出現故障,即主機出現非死機類故障時,主機將主從機狀態標識位更改為從機狀態並發送主從切換信息,轉入步驟3);若從機通過網絡監聽發現主機無心跳包,發送主從切換信息,轉入步驟3);
步驟3)從機改變主從狀態標識位;實現主從機的無縫切換。
上述技術方案中,所述方法進一步包括:步驟4)當接收到手動切換的命令時,根據主從機的運行狀態,完成主從機的切換。
上述技術方案中,所述主機非死機類故障是指主機本身能夠監測到自身的故障,同時,主機本身的主從切換邏輯未受到影響,由主機通知從機進行切換動作。
上述技術方案中,所述主機死機類故障為主機自身無法對故障進行檢測並發起相應的切換動作,這一類故障的檢測只能由從機通過網絡監聽有無主機心跳包來實現。
上述技術方案中,所述步驟3)的具體過程為:
當從機接收到切換信息後,將主從機狀態標識位更改為主機狀態,寫入本機的故障/切換日誌,並通知本地應用層切換已發生,由應用層控制總線通信模塊板卡行切換;從機作為主從同步的發起者,並獲得執行採集指令的自主權,從而確保數據採集工作的順利執行。
上述技術方案中,所述步驟4)的具體過程為:
當手動切換指令發出時,主從機的運行狀態存在如下四種情況:
當手動切換指令發出時,首先判斷主從機的運行狀態,根據運行狀態執行切換指令:
主機正常/從機正常,正常切換;
主機正常/從機故障,不進行切換;
主機故障/從機正常,在主機故障發生後,從機按照切換機制已變更為主機;
主機故障/從機故障,即雙機均發生故障,系統失效。
本發明的優勢在於:
1、本發明的方法能夠有效避免因為主機發生死機,無法發出切換指令導致系統發生中斷這種情況的發生,提高了系統的可靠性;
2、本發明的方法針對數據採集及網絡通信等並行工作的任務場合也能夠兼容;
3、本發明的方法在故障單機併網恢復的基礎上,可擴展為兩臺熱備份+一臺冷備份的冗餘模式,進一步提高系統可靠性。
附圖說明
圖1為本發明的基於非實時作業系統的主從雙機切換方法的流程圖。
具體實施方式
下面結合附圖與具體實施方式對本發明作進一步詳細說明。
主從切換是指當主機發生故障後(或者是接收到後端指揮中心發出的手動切換命令後),立即切換到熱備的從機,由其接替主機工作,而熱備層中的主從同步模塊、故障監測平臺則在切換過程中分別發揮不同的作用,協同配合以完成主從間的切換工作,確保在主機故障的情況下完成無縫切換,保障測控任務能繼續執行。
如圖1所示,一種基於非實時作業系統的主從雙機切換方法,所述方法包括:
步驟1)主從雙機完成時鐘及狀態同步,對主機和從機進行故障監測;
步驟2)若主機監測到自身出現故障,即主機出現非死機類故障時,主機將主從機狀態標識位更改為從機狀態並發送主從切換信息,轉入步驟3);若從機通過網絡監聽發現主機無心跳包,發送主從切換信息,轉入步驟3);
主機非死機類故障所引起切換的一個共同特徵是,主機本身能夠監測到錯誤,同時,主機本身的主從切換邏輯未受到影響,由主機通知從機需進行切換動作。
主機死機類故障直接表現為主機自身無法對故障進行檢測並發起相應的切換動作,這一類故障的檢測只能由從機通過網絡監聽有無主機心跳包來實現。
步驟3)從機改變主從狀態標識位;實現主從機的無縫切換;
在系統初始化後,主機的故障監測模塊加載針對各種故障模式的故障檢測插件,開始監測主機本地發生的故障,當某一時刻主機非死機故障發生後,故障監測模塊收到故障插件傳來的故障信息,並設置自身的故障狀態字,之後一面調用網絡傳輸模塊,發送主從切換信息,另一面與本機主從同步模塊交互,通知主從同步模塊改變主從狀態標識位,進而在下一個同步點時更改為從機同步邏輯,當主從狀態標識位更改完畢後,寫入故障/切換日誌。
當從機接收到切換信息後,傳遞給故障監測模塊完成對切換信息的解析,之後,將主從狀態標識位更改為主機狀態,寫入本機的故障/切換日誌,並通知本地應用層切換已發生,由應用層控制總線通信模塊板卡行切換。
由於原來的從機主從同步模塊主從狀態位在切換過程中發生了變化,將在之後的時序中作為主從同步的發起者,也即取得了執行採集指令的自主權,從而保證了數據採集工作的順利執行,另一方面,由於主機的總線通信模塊放棄了總線控制權,由從機的總線通信模塊接替,從而保證了從機(此處指切換前的從機)也能順利的向與被測對象通信。
步驟4)當接收到手動切換的命令時,根據主從機的運行狀態,完成主從機的切換;
手動切換的本質與主機非死機類故障相同,故障監測模塊通過調用相關的網絡監聽插件獲得手動切換命令,並由該插件將切換指令傳遞給控制器狀態監測模塊,故障監測模塊進入切換流程。
當手動切換指令發出時,主從機的運行狀態可能會存在如下四種情況:
主機正常/從機正常;
主機正常/從機故障;
主機故障/從機正常,在主機故障發生後,從機應按照切換機制已變更為主機,即轉化到狀態2;
主機故障/從機故障,即雙機均發生故障,系統失效。
但由於手動切換指令是由後端指揮中心進行的人工幹預,所以應具備較高的切換權限,即無論雙機的當前運行狀態為上面列舉出的哪一種,主從狀態都需要進行改變(特別是針對狀態2的情況)。