?

基于故障注入的虛擬化平臺可靠性測試

2021-12-14 07:11夏奕
網絡安全技術與應用 2021年11期
關鍵詞:故障注入日志虛擬化

◆夏奕

基于故障注入的虛擬化平臺可靠性測試

◆夏奕

(湖北交通職業技術學院 信息中心 湖北 430079)

虛擬化平臺作為信息基礎環境,承載了大量用戶環境,其可靠性直接影響到大量用戶的安全運行。在可靠性測試技術中,故障注入技術應用十分廣泛。通過故障仿真和故障注入的方式,解決虛擬化平臺故障驗證不全、低頻和低重現故障難以檢驗分析驗證的問題。本文設計了一個基于故障注入的虛擬化平臺測試環境,通過構建故障探針環境、故障注入框架、容錯測試模型、日志分析機制,實現虛擬化平臺的故障模型構建、故障注入、容錯機制檢驗、故障日志分析,支撐對虛擬化平臺的可靠性測試驗證和可靠性機制優化。

可靠性;故障注入;可靠性測試

1 引言

隨著計算機技術的發展,云計算技術在各行各業的應用普及,基于云計算的應用軟件的種類也越來越多。虛擬化平臺作為云計算的信息基礎環境,承載了大量用戶的應用環境,虛擬化平臺在使用過程中出現故障、崩潰或失效,將導致一系列嚴重的事故與后果[1]。軟件測試階段不僅需要進行軟件的功能、性能測試,還需要對軟件進行可靠性測試,以確保新開發的軟件上線后能夠正常運行。在可靠性測試技術中,故障注入技術應用十分廣泛,與傳統可靠性評測技術相比,它具有無需建立和求解復雜的系統模型、實驗時間短、結果精度高等優點,已引起眾多學者和研究人員的重視[2]。同時,故障注入在解決虛擬化平臺的故障驗證不全、低頻和低重現故障難以檢驗分析驗證的問題也有較大的優勢,目前對故障注入技術應用非常成功的領域之一是容錯系統的可靠性驗證[2]。

本文介紹了可靠性測試的基本概念,設計了一個基于故障注入的虛擬化平臺測試環境,通過構建故障探針環境、故障注入框架、容錯測試模型、日志分析機制,實現虛擬化平臺的故障模型構建、故障注入、容錯機制檢驗、故障日志分析,支撐對虛擬化平臺的可靠性測試驗證和可靠性機制優化。

2 軟件可靠性基本概念

可靠性是指軟件在所規定的環境條件下和規定的時間內正確地完成任務的能力。1983年,美國IEEE計算機學會對軟件可靠性[3]給出如下的定義:(1)在規定的條件下,在規定的時間內,軟件不引起系統失效的概率。該概率是系統輸入和系統使用的函數,也是軟件中存在的缺陷的函數。(2)在規定的時間周期內,在所述條件下程序執行所要求的功能的能力[3]。

可靠性測試方法主要有兩種類型:(1)基于操作剖面開展測試,按照軟件操作剖面對軟件進行隨機測試的測試方法[4]。根據軟件在客戶實際使用過程的各種操作的使用概率選擇操作剖面,對軟件系統進行可靠性測試。(2)基于故障注入開展測試。故障注入是按照選定的故障模型,采用人工的方法將故障注入到特定的目標系統中,同時采集系統對所注入故障的反應信息,通過這些信息對系統進行可靠性分析[5]。

軟件故障注入技術與其他可靠性評價技術相比,故障注入方法能方便靈活、便捷有效地處理各種可靠性問題。故障注入技術有模擬實現的故障注入、硬件實現的故障注入和軟件實現的故障注入三種[6]。軟件故障注入是通過修改硬件或軟件的狀態變量或相關數據來模擬故障的產生、加速系統的失效,分為靜態注入和動態注入兩種類型[7]。靜態故障注入主要通過程序變異的方法,通過改變原程序,使被測系統文件靜態的存在錯誤,從而使其運行時出現故障[8]。靜態注入占用很少的系統資源,能夠較好地保持系統原來的時序,這種注入法有很好的優化性[9]。動態注入是在被測系統正常運行過程中,實現故障注入,該種方式是根據被測系統的運行狀態或條件注入故障的,具有靈活性[10]。

3 系統架構

3.1 系統組成

虛擬化平臺網絡安全測試系統組成如圖1所示。該系統由探針管理、故障注入管理、容錯測試管理、日志管理模塊組成。

圖1 系統組成

探針管理模塊通過插件式探針的配置,能夠實現對虛擬機安裝、查看、運行和卸載探針等功能,進而實現對虛擬機進行故障注入和測試用例輸入等。

故障注入管理模塊通過配置和調用多種不同類型的探針,實現對事件通道機制、超級調用機制、虛擬機遷移機制、訪問控制機制、內存管理機制、硬件資源分配機制、狀態查詢機制、虛擬機在底層CPU故障時的機制、虛擬機在內存故障時的機制、虛擬機在底層文件故障時的機制、虛擬機在網絡中斷時機制的注入和容錯性測評。

容錯測試管理模塊通過對節點和進程容錯能力、本地文件和目錄容錯能力、網絡容錯能力等進行測試,實現在虛擬化系統底層遇到故障時的健壯性和可靠性測評,并對各項測試結果的匯總、展示、實驗結果分析和報告導出,支持通過可視化圖表的形式進行導出。

日志管理模塊實現對各模塊不同操作的記錄,從而實現對錯誤的精準定位,以便于問題修復。各系統的操作日志信息將準實時地展示在系統界面。

3.2 系統架構設計

系統采用標準的虛擬化體系架構設計,具有明晰的分層結構,各層次之間通過接口實現數據交互,支持插件式的工具新增、刪除和更新等操作,降低了系統耦合度的同時提升了系統的可靠性和健壯性。

系統層次結構如圖2所示,共分為硬件資源層、虛擬化層、核心業務層和系統展示層四個層次:

(1)硬件資源層

硬件資源層提供平臺運行所需的各類硬件資源,包括計算資源、網絡資源、數據資源和安全設備等。計算資源包括計算服務器、主機等;網絡資源包括交換機、路由器及帶寬等;數據資源包括存儲設備、數據庫等;安全設備包括防火墻、入侵檢測、入侵防御、審計等。

(2)虛擬化層

虛擬化層提供節點虛擬化支撐、網絡虛擬化支撐和虛實互聯的接口。虛擬化層支持基于KVM和XEN虛擬化技術的節點生成,各類節點將作為目標待測機,被部署故障注入工具以及負載工具,用于進行容錯性測試與評估。虛擬化層實現了控制端和待測端的物理部署分離,避免了待測端因故障而崩潰宕機影響控制端的正常工作??刂茩C與各待測節點之間使用SSH遠程連接進行通信,無需在控制機與待測節點上部署額外的通信程序,能夠實現各節點和平臺的輕量化,也能保證整個故障注入實驗的順利實施。

圖2 系統架構圖

(3)核心業務層

核心業務層實現對故障注入工具、容錯測試工具、負載工具的實際調用。通過對不同種類工具的調用,實現對事件通道機制、超級調用機制、虛擬機遷移機制、訪問控制機制、內存管理機制、硬件資源分配機制、狀態查詢機制、虛擬機在底層CPU故障時的機制、虛擬機在內存故障時的機制、虛擬機在底層文件故障時的機制、虛擬機在網絡中斷時機制、節點和進程容錯能力、本地文件和目錄容錯能力、網絡容錯能力等進行評估測試,并實現工具運行過程中實驗數據的采集和反饋。

(4)系統展示層

系統展示層通過可視化的人機交互界面,提供各種可視化組件和展示方式,將采集、分析的數據以各種維度進行可視化展示,提供可視化的配置和管理。此外,還提供測評結果導出和日志查看等人機接口,便于用戶對實驗結果和系統狀態的分析。

4 驗證與分析

基于以上故障注入架構設計,本文實現了對虛擬化平臺的事件故障模擬注入、超級調用故障模擬注入、虛擬機遷移故障注入、訪問控制故障注入、內存故障注入、硬件資源分配故障注入、網絡故障注入、文件故障注入、網絡中斷故障注入等多種類型的故障模型注入,通過故障注入驗證虛擬化平臺的可靠性保障機制。

基于對故障現象的分析,同時對虛擬化化平臺中容錯機制和容錯能力進行測試,評估虛擬化系統底層遇到故障時的健壯性和可靠性,并對各項測試結果的匯總、展示、實驗結果分析和報告導出。

通過基于故障注入的測試環境對虛擬化平臺進行全面的人工模擬故障測試,檢驗和優化了虛擬化平臺的可靠性保障機制。

5 結束語

為驗證虛擬化平臺可靠性機制及容錯機制,保障虛擬化平臺的高可靠性需求,本文主要針對虛擬化平臺故障驗證不全面、低頻和低重現故障難以檢驗分析驗證的問題,設計了一個基于故障注入的虛擬化平臺測試環境,通過構建故障探針環境、故障注入框架、容錯測試模型、日志分析機制,實現虛擬化平臺的故障模型構建、故障注入、容錯機制檢驗、故障日志分析,支撐對虛擬化平臺的可靠性測試驗證和可靠性機制優化。最后,通過對虛擬化平臺的故障注入測試,表明其能有效檢測虛擬化平臺存在的可靠性和容錯性漏洞,較好的支撐了虛擬化平臺的可靠性驗證和優化。

[1]Kanawati G,Kanawati N,and Abraham J,“FERRARI:A Tool for the Validation of System Dependability Properties,” FTCS-22,Digest of Papers,pp. 336-344,1992.

[2]Le M,Gallagher A,and Tamir Y,“Challenges and Opportunities with Fault Injection in Virtualized Systems,” in 1st Int. Workshop on Virtualization Performance:Analysis,Characterization,and Tools,2008.

[3]Arlat J,Crouzet Y,Karlsson J,et al. Comparison of physical and software-implemented fault injection techniques[J]. Computers,IEEE Transactions on,2003,52(9):1115-1133.

[4]Segall Z,and Lin T,“FIAT:Fault Injection Based Automated Testing Environment,” Proc. 18th Int’l Symp. Fault-Tolerant Computing,pp. 102-107,June 1988.

[5]Han S,Rosenberg H,and Shin K,“DOCTOR: An Integrated Software Fault Injection Environment,” Technical Report,Univ. of Michigan,1993.

[6]王勝文.基于軟件的故障注入方法研究[D]. 哈爾濱:哈爾濱工業大學,2005.

[7]Kao W,Iyer R,and Tang D,“FINE: A Fault Injection and Monitoring Environment for Tracing the UNIXSystem Behavior Under Faults,” IEEE Trans. Software Eng., vol.19. no.11,Nov. 1993.

[8]劉縉,朱家稷,張海勇.大規模云計算平臺的技術挑戰[J].程序員,2012(2):I0007-I0009.

[9]馮剛.面向云計算平臺的虛擬機故障注入工具研究與設計[D].哈爾濱工業大學,2013.

[10]麻彥東.面向虛擬化系統的故障注入平臺的研究與設計[D]. 哈爾濱工業大學,2015.

猜你喜歡
故障注入日志虛擬化
模擬訓練裝備故障注入系統研究
一名老黨員的工作日志
扶貧日志
基于OpenStack虛擬化網絡管理平臺的設計與實現
SM4算法前四輪約減輪故障注入分析
面向FPGA的故障注入測試技術研究*
雅皮的心情日志
對基于Docker的虛擬化技術的幾點探討
游學日志
淺析虛擬化技術的安全保障
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合