劉 霞,姜元山,張光偉,王運付
(中訊郵電咨詢設計院有限公司,北京 100048)
軟件可靠性指在規(guī)定的條件下和規(guī)定的時間內,軟件不引起系統(tǒng)故障的能力。軟件可靠性不但與軟件自身有關,也與系統(tǒng)輸入和系統(tǒng)使用有關。5G行業(yè)物聯網設備的軟件可靠性需要結合其系統(tǒng)及硬件的特點,進行領域針對性分析。
移動物聯網(基于蜂窩移動通信網絡的物聯網技術和應用)作為新型基礎設施的重要組成部分,在5G時代,已經發(fā)展演化出很多基于5G空口接入能力的產品形態(tài),如消費級物聯網設備、行業(yè)物聯網設備等。對于消費級產品,一般為單用戶使用,對產品的運行可靠性等要求相對低。而行業(yè)物聯網設備部署較多,分布分散,如果設備運行穩(wěn)定性差,將導致上站運維頻率升高,引入過高的運維成本,造成較差的客戶使用體驗。
本文重點分析5G行業(yè)終端運行可靠性方案,實現“業(yè)務盡可能恢復,設備盡可能運行”的目標,以期控制5G行業(yè)物聯網終端運維成本,提升客戶使用體驗。
5G行業(yè)物聯網終端典型系統(tǒng)架構如圖1所示,圖中展示了該類系統(tǒng)典型關鍵軟硬件架構要素,針對關鍵架構要素,進行基于硬件特殊性的軟件可靠性風險分析,以把握產品可靠性要點,進行5G行業(yè)物聯網終端針對性軟件可靠性分析及設計。表1即針對架構關鍵要素的介紹及可靠性風險分析結果。
圖1 5G行業(yè)物聯網終端系統(tǒng)架構
表1 5G行業(yè)物聯網終端關鍵架構要素介紹&可靠性風險分析
本節(jié)重點針對表1分析識別的關鍵架構要素的可靠性風險進行風險消減設計。
在產品商用化過程中,可能出現區(qū)域大面積停電、斷網等極端情況。特別是大面積停電場景,當同類設備有共用遠程通信服務器時,可能出現區(qū)域內海量同類設備同時上電開機,向遠端發(fā)起業(yè)務連接,在遠程通信服務器側出現短時間請求風暴的現象,如果服務器處理不當,將導致物聯網終端側服務請求異常,造成脫管。
為避免該類問題,建議使用“隨機退避”機制。即系統(tǒng)上電開機,服務啟動后,隨機等待一定時間,建議在2 min內隨機選取時間點位,以發(fā)起遠程服務連接,緩解遠程服務的業(yè)務并發(fā)壓力。
通過軟件工程化方法可以提升研發(fā)質量,卻無法修復軟件缺陷,需要在軟件運行期進行可靠性保障。
行業(yè)物聯網終端大部分采用嵌入式Linux系統(tǒng),在Linux系統(tǒng)中,進程有幾種典型狀態(tài)。
由表2可知,一旦進程狀態(tài)為“Z”,即僵尸狀態(tài),則表示服務異常。此時,內核及服務本身均無法從異常中自行恢復。
表2 Linux進程狀態(tài)及服務影響分析
針對進程狀態(tài)異常問題,為實現局部小范圍恢復嘗試,常規(guī)軟件保護機制采用“守護進程”周期性(具體周期結合業(yè)務恢復的時間而定)檢測系統(tǒng)關鍵進程(結合業(yè)務特點進行范圍識別)的工作狀態(tài),一旦發(fā)現異常,則由守護進程控制該進程進行恢復處理。
3.3.1 看門狗守護機制
“守護進程”也是軟件,即使通過工程化方法進行質量保障,但仍可能存在缺陷。為保證系統(tǒng)在極端場景下嘗試恢復,一般采用“硬件看門狗”機制。由“守護進程”進行看門狗喂狗操作,當守護進程異常時,喂狗異常,硬件看門狗超時,最終全系統(tǒng)重啟。通過系統(tǒng)重初始化,盡最大努力恢復業(yè)務。
3.3.2 進程優(yōu)先級控制機制
軟件喂狗需要消耗CPU資源,涉及CPU處理優(yōu)先級。
當終端系統(tǒng)內部CPU過載,導致進程響應異常時,如果“守護進程”喂狗業(yè)務優(yōu)先級高,則無法有效識別其他業(yè)務異常。因而,對特定業(yè)務進程需要考慮其處理優(yōu)先級。
典型舉例如下:
(1)軟件喂狗進程:視系統(tǒng)資源冗余情況而定,如果資源冗余度低,則不建議配置過低優(yōu)先級;如果冗余度高,過載可能出現異常,建議配置較低優(yōu)先級。
(2)配置管理服務:不論遠端或近端,均是用戶的管理接口,任何場景下均需保證其進程優(yōu)先級為高。
系統(tǒng)缺陷修復、特性擴展均需通過軟件鏡像更新實現,以使新版本在物聯網終端側生效。
對嵌入式終端而言,軟件鏡像一般保存在Nand或Nor FLASH。如果對當前運行的軟件鏡像存儲分區(qū)進行寫入,一旦中斷,則可能導致終端運行異常??煽康膫溥x升級方案建議如下:
(1)升級小系統(tǒng)雙備份+業(yè)務系統(tǒng)。升級小系統(tǒng)是僅在升級過程中運行的系統(tǒng),對其功能進行大量剪裁,以限制FLASH資源消耗。
(2)業(yè)務系統(tǒng)雙備份。在該方案下,被寫入的分區(qū)即使在寫入過程中斷,終端依然可以啟動,保證業(yè)務的延續(xù)性。
為保證通信鏈路、對端通信服務恢復正常,及時建立端到端通信,在通信異常時需考慮支持重建機制。
3.5.1 5G Modem通道重建機制
5G行業(yè)物聯網終端的5G Modem軟件部分一般由第三方供應商提供,運行于獨立的5G硬件模塊或CPU中,其工作狀態(tài)等對路由軟件而言相當于“黑盒”,路由軟件需進行5G Modem的工作狀態(tài)管理,如設備枚舉、控制撥號、狀態(tài)監(jiān)控等,以保證產品系統(tǒng)的通信狀態(tài)可控。
建議周期性監(jiān)控5G Modem的工作狀況,一旦出現異常,嘗試進行5G Modem通道重建。當通道重建嘗試有限次仍無法恢復時,考慮系統(tǒng)重啟,重初始化全系統(tǒng)資源,盡力恢復系統(tǒng)運行。
3.5.2 業(yè)務端到端通信重建機制
具備聯網通信能力是5G行業(yè)物聯網終端的基本業(yè)務述求。當從終端側訪問另一側服務時,路徑中可能出現多級節(jié)點,中間節(jié)點、對端服務可能出現異常。
在路徑狀況不可預知的情況下,一旦通信鏈路發(fā)生異常,則需要進行反復測試,以盡力恢復通信鏈路。
本文闡述的5G行業(yè)物聯網終端軟件可靠性問題、典型可靠性設計,均來自行業(yè)物聯網終端產品的業(yè)務實踐。從業(yè)務經驗的角度出發(fā),識別行業(yè)物聯網終端可靠性痛點,并結合商用實踐提取有效的消減措施,對5G行業(yè)物聯網終端有實用借鑒意義。