?

故障注入在智能網絡管控系統測試中的應用研究

2023-05-30 18:25王敏
電腦知識與技術 2023年2期
關鍵詞:故障注入可靠性

王敏

關鍵詞:可靠性;可靠性測試;故障注入

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2023)02-0075-03

1 引言

隨著云計算技術在各個行業的普及,基于云計算的軟件在各個行業的應用也越來越廣泛。云計算軟件在長期運行過程中,經常會出現一些可靠性問題,雖然部分問題是低概率問題,但是問題一旦出現,會給整個系統造成嚴重的后果。智能網絡管控系統作為全局網絡設備的管理、控制和分析中心,在整個網絡中的地位尤其重要,一旦出現問題,必然會帶來非常嚴重的影響。為了避免此類問題,軟件可靠性測試尤其重要。軟件可靠性測試涵蓋了需求分析、軟件設計、測試設計、測試驗證等各個階段。在智能網絡管控系統測試過程中,結合故障注入技術,在該軟件系統中開展可靠性測試全過程,通過工作實踐證明,故障注入測試在可靠性測試中的重要性。

2 故障注入概念

故障注入測試屬于軟件可靠性測試方法[1]中的一種,它是根據選定的故障模型,采用故障注入工具將故障注入系統中,通過采集系統對注入故障的反應信息,對系統進行可靠性分析[2]。

故障注入技術根據故障注入方式不同分為三種:硬件實現的故障注入、仿真實現的故障注入、軟件實現的故障注入[3]。軟件實現的故障注入是通過軟件的方式模擬故障,通過修改軟件的相關數據或軟件的狀態變量來模擬故障的產生,從而加速系統的失效[4]。通常情況下,軟件系統的故障可能會隱藏得較深,需要在特定的環境或復雜的條件下才能觸發,被動地等待故障發生后,再去定位和修復,這種方式是非常低效的,也無法全面保證軟件系統的可靠性。軟件故障注入能夠在可控的條件下主動去觸發故障,再進行分析和解決,從而保證軟件系統可靠性測試的充分性[5]。

3 智能網絡管控系統的故障注入測試

智能網絡管控系統實現了物理網絡與商業意圖的有效連接,向下實現全局網絡的集中管理、控制和分析,面向商業和業務意圖使能資源云化、全生命周期自動化,以及數據分析驅動的智能閉環;向上提供開放網絡API與IT快速集成。智能網絡管控系統應用于運營商網絡、數據中心、企業園區、企業專線等場景,讓網絡更加簡單、智慧、開放和安全,加速運營商及企業的業務轉型和創新。整個系統層級結構如圖1 所示。

智能網絡管控系統具有以下三個關鍵能力。第一個能力是管、控、析融合,實現以場景為中心的自治閉環。采用云化架構,將不同系統和流程中的數據統一到一個平臺,拉通數據模型,匹配不同業務場景和各運維階段的訴求,將業務意圖封裝在業務模型中,客戶可根據業務訴求選擇所需模型,多個業務模型以場景為中心封裝在業務App中,閉環解決該場景的各類運維需求。第二個能力是云地協同,AI使能預測性網絡維護。通過大數據處理技術,注入多種AI算法,實現網絡流量實時可視和可預測、網絡故障自動識別和預測、業務體驗歷史可回放和預測。第三個能力是開放可編程,使能開放App生態,提供開放可編程框架,南向支持與第三方網絡控制器或者設備對接,北向與云端AI訓練平臺和IT應用快速集成。

智能網絡管控系統的可靠性測試貫穿整個版本生命周期,可靠性測試過程主要包括:可靠性測試計劃制定、需求分析、測試設計、測試執行和測試結果分析,如圖2所示。

3.1 可靠性測試計劃制定階段

由版本測試經理制定版本測試計劃,版本測試計劃包含了各類專項測試計劃,其中一個專項測試就是可靠性專項測試,該計劃中需要明確可靠性測試范圍、可靠性測試方法以及測試時間點等。

3.2 可靠性需求分析和測試設計階段

測試架構師和測試工程師參與需求分析和開發設計的評審,從需求列表分析出可靠性測試需求,制定測試方案,并設計測試用例??煽啃詼y試方案和測試用例需通過測試架構師評審,再由測試工程師針對可自動化用例提前編寫自動化測試腳本。

針對智能網絡管控系統層級結構的特點,測試架構師設計了故障注入可靠性測試用例基線,故障類型主要分為節點故障、進程故障、網絡故障、內存故障、CPU故障、磁盤故障、文件故障等七大類[6],如表1所示。各故障類型中包含多個測試用例,用例基線總數超過了200個。測試工程師可根據所負責模塊的需求進行分析,從基線中選取適用的故障注入類型,生成各個模塊的故障注入測試用例。

3.3 可靠性測試環境搭建

故障注入測試之前,必須首先完成測試環境的搭建,包括環境部署和軟件產品的安裝,以及故障注入工具的安裝。

3.3.1 環境的部署和軟件產品的安裝

智能網絡管控系統部署相對復雜,這里從服務器配置開始介紹整個硬件環境部署和軟件產品的安裝過程。

1)配置硬件設備

登錄各服務器系統,配置IP和用戶名密碼,根據磁盤數量和磁盤可靠性要求配置RAID。

2)安裝FusionCompute CAN 和FusionComputeVRM

各服務器主機節點首先安裝FusionCompute CAN (Compute Node Agent),然后規劃兩個主機節點安裝FusionCompute VRM(Virtual Resource Management),通過FusionCompute VRM 可以實現對虛擬資源和用戶數據的統一管理,對外提供彈性計算、存儲、IP等服務。

3)配置FusionCompute 安裝VRM時,已經自動將VRM所在的兩臺CNA 主機添加到FusionCompute管理系統中。為了管理所有的CNA主機,需要在FusionCompute管理界面手動添加其余的CNA主機,并將新添加主機的存儲資源都添加到FusionCompute中。

虛擬機管理軟件FusionCompute安裝完成后,默認會創建一個ManagementDVS虛擬分布式交換機,用于業務分發平面(和CNA、VRM地址規劃所在平面相同)。需要再創建1個虛擬分布式交換機,用于內部通信。虛擬交換機通過上行鏈路連接到物理機網口,通過端口組連接到虛擬機網口,創建虛擬交換機的同時需要添加上行鏈路和創建端口組才能正常工作。

4)創建虛擬機

FusionCompute 完成配置后,可通過本地模板創建虛擬機。通過https://VRM 節點IP地址:8443登錄FusionCompute,選擇本地相應的虛擬機模板文件創建相應操作系統的虛擬機,虛擬機安裝操作系統后需要進行必要的網絡配置。

5)安裝產品軟件

完成上述規劃后,即可通過EasySuite軟件,根據計劃安裝的集群選取虛擬機節點數量,安裝對應的智能網絡管控系統版本。

3.3.2 故障注入測試工具安裝

這里介紹TC工具、CFE工具、客戶端命令、ARES 工具四種故障注入方法[7],在測試過程中,主要通過ARES工具實現故障注入測試。

1)TC工具注入

TC(Traffic Control)流量控制器,是Linux自帶的模塊。通過TC命令可以注入網絡丟包、網絡錯包以及網絡延時等故障。

2)CFE工具注入

CFE(Common Fault-injection Entry)工具是公司自研的故障注入工具,在Linux系統中通過CFE命令方式可以實現進程故障、CPU故障、內存故障、磁盤故障等多種故障注入。

3)客戶端命令注入

通過客戶端軟件登錄虛擬機,實現虛擬機復位、進程重啟等故障,也可以通過Linux操作系統的ifcon?fig實現虛擬機網絡端口故障。

4)ARES工具注入

ARES工具是公司基于CFE自研的可視化故障注入工具,可通過Web界面實現各類故障注入測試。該工具集成了TC工具、CFE工具、客戶端命令支持的所有故障注入類型,且操作界面方面簡單,不需要記憶各種操作命令。

因為ARES工具操作簡單,故障注入測試優先選用ARES工具進行測試。首先,將ARES客戶端安裝包上傳到需要注入故障的各個虛擬機,并進行安裝。然后,登錄ARES服務器Web頁面,通過輸入虛擬機IP、用戶名和密碼進行連接,連接虛擬機成功后,就可以針對虛擬機進行各類故障注入測試。

3.4 可靠性測試執行

完成智能網絡管控系統和故障注入工具安裝后,就可以按照可靠性測試用例進行測試執行??煽啃詼y試執行方式包括自動化執行和手工執行兩部分。

測試工程師在需求交付后,完成自動化腳本的調試和執行,所有腳本提交到自動化工廠,經自動化工廠驗收通過后方可納入自動化工廠腳本。無法實現自動化的腳本,則由測試工程師手工執行。根據版本可靠性測試計劃,在相應迭代開發時間點,由自動化工廠完成全部可靠性腳本執行,并由測試工程師完成腳本分析和手工測試執行。

無論是自動化測試還是手工測試,故障注入測試過程如圖3所示。首先,需完成業務背景的部署,要求按照業務滿規格的一定比例進行部署,具體比例由開發架構師和測試架構師審核達成一致。然后,執行相關業務配置,完成業務配置后,注入故障。在注入故障的同時,進行業務檢查。由于此時處于故障注入狀態,部分業務會顯示不正常狀態,因此需要選擇可預估的業務狀態進行檢查。最后,撤銷故障注入,再次進行業務檢查,所有業務狀態都應該恢復正常。為了能更好地發現低概率問題,故障注入自動化測試也可用作夜航腳本,利用晚上的時間反復執行后,再去檢查系統狀態,通過夜航腳本可以更高效地發現問題。

3.5 可靠性測試結果分析

在多個版本的可靠性測試過程中,故障注入測試發現了很多有價值的可靠性問題,如典型故障有:

1)集群環境中某個節點注入故障后,整個集群不能感知該節點故障,業務繼續下發到故障節點,導致業務處理失敗。

2)構造集群中某個節點上關鍵配置文件損壞故障后,無法從集群中其他節點獲取最新配置文件,導致該節點異常。

3)通過設置超大日志或者大量日志文件,觸發日志文件繞接場景,發現日志繞接失敗,日志文件過多,導致磁盤空間滿。

通過對每一輪故障注入測試發現問題的故障分析,甄別出典型故障,并在版本的各個模塊發起測試排查,同步完善可靠性測試用例基線。經過測試執行閉環和基線用例閉環,進一步提升了版本的可靠性質量。

4 結束語

隨著軟件系統在長期使用過程中,暴露出越來越多的可靠性問題,可靠性測試的重要性也在逐步提升,做好軟件的可靠性測試,對于提升整個軟件的產品質量,提高系統的穩定性和安全性,尤為重要。在智能網絡管控系統的可靠性測試中結合故障注入技術,使系統可靠性測試的故障類型更加全面,同時也提高了低概率問題發現的效率,故障注入技術已經成為可靠性測試中不可缺少的重要手段。

猜你喜歡
故障注入可靠性
模擬訓練裝備故障注入系統研究
MAXIMO系統在數控設備可靠性維護中的應用
可靠性管理體系創建與實踐
SM4算法前四輪約減輪故障注入分析
面向FPGA的故障注入測試技術研究*
采用修改-回放原理的1553B故障注入方法
5G通信中數據傳輸的可靠性分析
列車MVB總線故障注入研究
一種指令級Linux內核瞬時故障注入方法研究
基于可靠性跟蹤的薄弱環節辨識方法在省級電網可靠性改善中的應用研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合