高順凱
(武漢市江夏區(qū)藏龍北路1號 武漢 430205)
面對日益嚴(yán)峻的信息化安全形勢,在關(guān)系國計民生等重要領(lǐng)域的信息技術(shù)嚴(yán)重依賴于國外技術(shù)、產(chǎn)品和服務(wù)的情形下,國產(chǎn)化軟硬件平臺在黨政軍等關(guān)鍵領(lǐng)域正逐步得到推廣應(yīng)用。本文將基于目前典型的國產(chǎn)化軟硬件平臺,設(shè)計一種可靠性評測方法,用于保證主機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫、系統(tǒng)軟件等層面的高可用性,同時對可靠性指標(biāo)[1]進(jìn)行量化。在實現(xiàn)對國產(chǎn)化軟硬件平臺可靠性測試過程中,結(jié)合國產(chǎn)化軟硬件自主可控的特點,充分挖掘其有效資源,采用軟硬件冗余技術(shù)、測試性設(shè)計技術(shù)和故障注入技術(shù)等,實現(xiàn)故障檢測時間和容錯恢復(fù)時間等指標(biāo)的量化,為優(yōu)化國產(chǎn)化軟硬件平臺的可靠性提供數(shù)據(jù)支撐。
整個國產(chǎn)化平臺可靠性測試方案以申威處理器為核心進(jìn)行設(shè)計,操作系統(tǒng)采用中標(biāo)麒麟操作系統(tǒng),平臺由主備節(jié)點、管理節(jié)點和測試節(jié)點組成,如圖1所示。其中主備節(jié)點包含計算單元,存儲單元,顯示單元和網(wǎng)絡(luò)單元,主備節(jié)點之間采用心跳檢測技術(shù)和分布式復(fù)制塊設(shè)備技術(shù)進(jìn)行健康檢測[2~3]和數(shù)據(jù)同步;測試節(jié)點負(fù)責(zé)注入軟硬件故障并記錄故障檢測和容錯恢復(fù)時間;管理單元控制主備節(jié)點中各單元的上電時序,同時接收來自測試節(jié)點的故障注入命令進(jìn)行系統(tǒng)軟硬件故障注入;平臺中供電采用冗余配置,保障系統(tǒng)電源狀態(tài)的穩(wěn)定運(yùn)行。
圖1 可靠性測試方案設(shè)計圖
在進(jìn)行故障注入時,結(jié)合國產(chǎn)化軟硬件平臺自主可控的特點,通過對申威處理器硬件寄存器接口,操作系統(tǒng)內(nèi)核源碼、驅(qū)動源碼和應(yīng)用程序進(jìn)行協(xié)議分析和代碼插樁,如圖2所示模擬軟件故障[4]和硬件故障[5]并進(jìn)行分類處理,其中:軟件故障包含內(nèi)核故障、驅(qū)動故障和應(yīng)用程序故障;硬件故障包括內(nèi)存故障和寄存器故障。
圖2 故障分類圖
申威平臺中主備節(jié)點、管理節(jié)點和測試節(jié)點分別包含:故障注入模塊、健康工作監(jiān)測模塊、故障分析模塊、故障檢測時間測試模塊以及容錯恢復(fù)時間測試模塊。如圖3所示,其中測試節(jié)點負(fù)責(zé)選擇注入故障的類型[6],發(fā)送故障注入命令,同時完成故障檢測時間和容錯恢復(fù)時間的測試,主節(jié)點和備份節(jié)點組成被測節(jié)點,測試節(jié)點和被測節(jié)點之間通過一條專用的測試通道連接,這條通道一方面用于心跳檢測,另一方面用于傳遞控制信息和數(shù)據(jù)信息。管理節(jié)點負(fù)責(zé)將故障注入,各節(jié)點中模塊功能如下。
圖3 可靠性測試功能模塊工作流程圖
1)故障注入模塊[7]:實現(xiàn)將選定事件集注入到被測節(jié)點的功能,包括軟件故障和硬件故障,其中軟件故障包括內(nèi)核故障、驅(qū)動故障和應(yīng)用程序故障,上述故障通過被測節(jié)點的計算單元注入;硬件故障依據(jù)目前國產(chǎn)化軟硬件平臺的特點,包含內(nèi)存故障和寄存器故障等,通過各功能單元BIT電路進(jìn)行注入;
2)故障分析模塊:獲取測試節(jié)點故障注入命令,通過專家知識庫分析故障類型,選取對應(yīng)故障通過故障注入模塊進(jìn)行注入;
3)健康工作檢測模塊:健康工作檢測模塊[8]的原理是通過被測節(jié)點主備節(jié)點間周期性的交換心跳信息互相監(jiān)視對方狀態(tài),對節(jié)點的狀態(tài)進(jìn)行定期的檢測,當(dāng)發(fā)現(xiàn)心跳信息異常或超時時,采取熱備方式進(jìn)行服務(wù)和數(shù)據(jù)的遷移工作,保證系統(tǒng)能夠正確連續(xù)的工作;
4)故障檢測時間測試模塊:主要完成對故障注入到故障發(fā)現(xiàn)之間的時間測試,得出目標(biāo)系統(tǒng)的故障檢測時間;
5)故障恢復(fù)時間測試模塊:主要完成對故障發(fā)現(xiàn)到故障恢復(fù)之間的時間測試,得出目標(biāo)系統(tǒng)的故障恢復(fù)時間。
申威平臺的可靠性評測方法[9]包含故障檢測時間和容錯恢復(fù)時間測試兩部分,試驗人員通過位于測試系統(tǒng)中的測試節(jié)點生成故障注入控制命令,故障注入控制命令被封裝成命令報文經(jīng)通信網(wǎng)絡(luò)發(fā)送至管理節(jié)點,然后被管理節(jié)點解析命令報文并發(fā)送給被測節(jié)點執(zhí)行相應(yīng)的故障注入測試用例。在測試執(zhí)行過程中,被測節(jié)點之間通過心跳鏈接進(jìn)行監(jiān)測,在故障注入后完成容錯切換,同時測試節(jié)點實時監(jiān)測被測節(jié)點運(yùn)行狀態(tài),并記錄下故障產(chǎn)生時間和容錯恢復(fù)時間。在被測節(jié)點完成測試后,將故障注入時間與故障產(chǎn)生時間和容錯恢復(fù)時間進(jìn)行對比,最終生成測試報表。具體評測步驟如下:
步驟1:測試節(jié)點選擇特定故障事件準(zhǔn)備發(fā)送;
步驟2:測試節(jié)點將故障事件按照通信協(xié)議封裝成故障注入命令報文,發(fā)送到管理節(jié)點;
步驟3:測試節(jié)點記錄故障注入命令發(fā)出時間;
步驟4:測試節(jié)點記錄故障產(chǎn)生時間;
步驟5:測試節(jié)點記錄容錯恢復(fù)時間;
步驟6:測試節(jié)點通過計算故障注入和故障檢出記錄時間差,統(tǒng)計出故障檢測時間;
步驟7:測試節(jié)點通過計算故障檢出和故障恢復(fù)記錄時間差,統(tǒng)計出故障恢復(fù)時間;
步驟8:測試節(jié)點結(jié)束測試過程;
步驟9:管理節(jié)點接收故障注入命令,解析命令格式,通過故障檢測專家知識庫選取對應(yīng)故障注入到被測節(jié)點;
步驟10:被測節(jié)點初始化軟硬件故障注入接口;
步驟11:被測節(jié)點接收管理節(jié)點發(fā)送過來的故障注入命令;
步驟12:被測節(jié)點產(chǎn)生故障,測試節(jié)點利用相關(guān)報文通過健康工作檢測模塊檢測故障產(chǎn)生時間;
步驟13:被測節(jié)點故障恢復(fù),測試節(jié)點利用相關(guān)報文通過健康工作檢測模塊檢測故障恢復(fù)時間;
步驟14:被測節(jié)點容錯恢復(fù)后系統(tǒng)開始正常工作。
本試驗挑選申威平臺中典型的故障類型(覆蓋CPU、內(nèi)存、操作系統(tǒng)內(nèi)核、驅(qū)動以及關(guān)鍵應(yīng)用)進(jìn)行了故障注入,通過自動化測試腳本每項測試均運(yùn)行一百次,通過篩選程序剔除最高值和最低值,將剩余結(jié)果通過取均值方式進(jìn)行了故障檢測時間[10]和容錯恢復(fù)時間的測試,記錄的試驗結(jié)果如表1所示。
表1 試驗結(jié)果
圖4 可靠性測試軟件工作流程圖
通過表1對故障檢測時間和容錯恢復(fù)時間結(jié)果進(jìn)行分析,發(fā)現(xiàn)硬件故障(如寄存器故障和內(nèi)存故障)的測試結(jié)果均優(yōu)于軟件故障(內(nèi)核故障、驅(qū)動故障和應(yīng)用程序故障)的測試結(jié)果,這是在方案設(shè)計時,硬件工作狀態(tài)均由BIT電路[11~12]通過帶外方式進(jìn)行監(jiān)控而沒有任何系統(tǒng)開銷,對比軟件故障的檢測更加快速高效。
本文針對目前國產(chǎn)化軟硬件平臺可靠性測試手段不足的問題,研究了一種基于國產(chǎn)化軟硬件平臺的可靠性測試系統(tǒng)及方法,首先通過研究硬件平臺相關(guān)寄存器接口,軟件平臺內(nèi)核源碼、驅(qū)動源碼和編譯器的實現(xiàn)及工作方式,實現(xiàn)了軟硬件平臺的故障注入工作;其次通過測試性設(shè)計技術(shù)形成故障檢測專家知識庫,結(jié)合健康監(jiān)測和數(shù)據(jù)恢復(fù)等技術(shù)實現(xiàn)了軟硬件平臺的故障檢測及恢復(fù)時間的標(biāo)準(zhǔn)量化,為進(jìn)一步提高國產(chǎn)化軟硬件平臺的可用性提供相關(guān)依據(jù)。
本文提出的測試方法具有一定的通用性,可在其他國產(chǎn)化軟硬件平臺進(jìn)行推廣應(yīng)用,試驗結(jié)果可用于優(yōu)化軟硬件測試性、可靠性相關(guān)設(shè)計,提高國產(chǎn)化平臺可靠性和可用性水平。