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