杜 明 張于燕 劉玉蘭
(中國電子科技集團公司第五十四研究所河北石家莊050081)
數據信息是當今社會進步和發展的關鍵,面對日益龐大的計算機網絡,用戶的要求是網絡能夠可靠和高速。隨著測控網絡系統的廣泛應用,用于完成對設備的遙控、遙測、跟蹤定位及傳輸傳感器信息的測控系統[1],其穩定性在未來的信息化戰爭中扮演越來越重要的角色。因此設計和開發雙機備份技術適應高穩定的測控網絡系統,就顯得尤為重要。雙機備份是一種軟硬件結合的較高的容錯應用方案。雙機備份方案中,根據性質和需要可以由3種不同的工作模式:即雙機熱備模式。雙機互備模式和雙機雙工模式。在這3種模式采用的是基于小規模網絡最為常用的雙機備份模式。雙機備份模式的引入,極大的提高了測控系統的可靠性與安全性[2]。
雙機備份軟件主要分布在主計算機和備用計算機上,同時和GCS的地面測控軟件組成,系統組成如圖1所示。主計算機與備計算機同時和GCS測控軟件進行網絡連接,主機與備機通過心跳包連接進行仲裁,同一時刻只能由一臺計算機的軟件來控制GCS的測控軟件。

圖1 雙機備份軟件系統示意圖
雙機備份軟件的設計準則是:
①只有主機軟件才能與GCS測控軟件進行連接發送指令,接收設備遙測狀態信息;
②同一時刻只能有一臺主機軟件出現[3];
③人在回路,特殊情況可以人工強制切換,切換準則參考主機軟件發令和主機軟件唯一的準則。
雙機備份系統的主要功能是確保系統的不間斷運行[4],其主要分為:啟動優先原則,雙機中先啟動是主機,后啟動者為備機;互檢互顯,主備機能夠互相檢測連接狀態,并同時發送自身運行狀態,當檢測到本機故障時給予提示信息,以便于人工切換;主備切換,當備機在網絡監測周期3 s內未發現主機信息時自動提升到主機狀態。人工切換,特殊情況時可人工介入進行強制切換,確保設備安全。
雙機備份軟件根據軟件功能分為啟動仲裁軟件單元、心跳檢驗軟件單元、主備切換軟件單元和強制切換軟件單元,軟件單元組成如圖2所示。

圖2 雙機備份軟件單元功能示意圖
雙機備份軟件是在Visual C++6.0編程環境下結合GCS地面站測控軟件來進行開發的,各個軟件單元所完成的功能都是通過調用C++語言中的類來實現,硬件接口為網絡接口。
雙機備份軟件首先根據配置文件和計算機網絡地址初始化通信端口并且進行A、B機辨別。
/*初始化端口*/
m_Link_UDP.Init (m_HBControlPara.m_pLocalIP,m_HBControlPara.m_pPeerIP,m_HBControlPara.m_uLocalPort,m_HBControlPara.m_uPeerPort);
m_Link_Async.Init(m_HBControlPara.m_pLocalCom);
m_uTimeOut=g_HBControlPara.m_uMaxTickCount;//初始化節點
m_Link_UDP.m_pParent=this;m_Link_Async.m_pParent=this;
啟動仲裁單元初始化要素,如表1所示。

表1主備切換主要單元數據表
程序啟動完畢后系統根據配置文件辨別A、B機,心跳檢驗軟件單元開始創建網絡接收心跳線程,當在網絡上3 s內為發現有主機發送心跳信息時,依據設計準則將自己提升為主機,并通過網絡向其他設備發送主機的心跳信息;如果啟動發現能接收到網絡其他設備發來的主機心跳信息,依據設計準則認為主機存在,將自己創建為備機,成為備機如果有3 s檢測不到主機發送的心跳信息,便依據設計準則將自己提升為主機,雙機備份軟件處理流程如圖3所示。

圖3 雙機備份軟件處理流程圖
接收用戶對主備機的選擇,然后根據選擇結果向其他席位軟件發出主備消息,通過消息參數傳遞主備信息。通過網絡信息實時接收本席位其他軟件的主備狀態信息進行狀態顯示,主備切換本機主備狀態發生改變時,通過網絡信息觸發本席位其他軟件改變當前主備機狀態。與其他軟件通信狀態只有正常、故障和未知3種狀態,設計函數模型如下:
int GetPeerStatus()
{
if(!m_PeerOnline)//正常再線狀態
return 0;
if(m_PeerStatus)//故障狀態
return 1;
else
return-1;//未知狀態
}
主備切換軟件根據計算機的本機網絡地址和配置信息辨別自己的主備狀態,工作流程是:根據主備機信息辨別本機是發令軟件或受令軟件,發令軟件發送控制命令,改變雙機備份軟件和本機其他軟件主備狀態,受令軟件在遠方接收控制命令,改變雙機備份軟件和本機其他軟件的主備狀態。
強制切換軟件單元是指在遇到特殊情況下,依據設計準則,可以手動地切換到對應的非故障系統[5],人工干預將2臺計算機一臺設為主機,一臺設為備機。主備切換示意圖如圖4所示。

圖4 主備切換示意圖
在強制切換模式下,程序均不在響應遠程網絡設置,此功能就是由操作人員強制軟件產生一臺主機和一臺備機,或遇到特殊環境,可以產生2臺備機,切斷與測控設備的實時通信。模型如下:
SwitchMain();//強制升為主機的函數
SwitchCopy();//強制降為備機的函數
if(f_pApp->m_uSwitchMode==1)//手動切換模式下不響應心跳模塊的狀態判斷return;
目前設計的雙機備份的軟件在一些測控網絡系統中開始實驗并應用,實驗證明雙機備份是解決由軟硬件故障引起的可靠性降低的有效措施高,是提高測控網絡安全性和可靠性的有力保障。當前根據系統設計在自動模式下,軟件可以達到顯示18種狀態圖,這里不在逐一顯示。分別顯示了雙機備份軟件在系統應用時的2種狀態,如圖5和圖6所示。

圖5 主機軟件顯示狀態示意圖

圖6 備機軟件顯示狀態示意圖
本文給出了雙機備份軟件在測控網絡系統的實現和設計方法,該技術較為成熟、操作簡單和成本相對較低,具有安裝維護簡單、穩定可靠和監測直觀等優點。在測控軟件中,往往對設備的可靠性要求很高,需要設備能夠長期不間斷地可靠運行,因此設備的可靠性設計是設備開發的關鍵內容,也是保障設備可用性的重要環節。雙機備份技術保證了測控系統在異常狀態下的快速恢復能力,能有效的提高裝備的生存能力,雙機備份技術在測控網絡保障中將會得到了廣泛的應用[6]。
[1]鄧宏宇,王立夫.外軍無人機數據鏈發展及趨勢[J].艦船電子工程,2011,11(3):15-17.
[2]賈文濤.高可靠性在雙機備份系統的設計與評估[D].國防科大碩士論文,2010(11):1-67.
[3]唐永林.監控管理中雙機備份技術研究[J].計算機與網絡,2008,5(13):37-42.
[4]徐立云,邵惠鶴.一種雙機備份系統的軟實現[J].測控技術,2000,19(8):43-44.
[5]陳 寶,高仲輝,郝立勇.機場多普勒天氣雷達雙機備份技術及可靠性分析[J].成都信息工程學院報,2012,27(3):247-252.
[6]楊玲,黃海,侯穎.基于分布存儲的嵌入式系統雙機備份設計[J].計算機與現代化,2007,2(2):16-21.