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