一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)設(shè)計(jì)方法
【專利摘要】本發(fā)明提供一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)設(shè)計(jì)方法,該方法針對(duì)可靠性這一項(xiàng)衡量計(jì)算機(jī)系統(tǒng)性能的一項(xiàng)重要指標(biāo),對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行測試和評(píng)估,故障注入能夠加速系統(tǒng)失效的手段,對(duì)容錯(cuò)系統(tǒng)的容錯(cuò)性能進(jìn)行測試和評(píng)估。本文基于軟件故障注入的思想,介紹了一種面向容錯(cuò)系統(tǒng)可靠性評(píng)測的故障注入器的設(shè)計(jì)方法,具有故障類型多樣化,觸發(fā)方式多樣化,注入故障接近真實(shí)故障,操作簡單,對(duì)系統(tǒng)影響小等優(yōu)點(diǎn),能夠有效地評(píng)測系統(tǒng)可靠性。
【專利說明】一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于操作系統(tǒng)可靠性評(píng)測【技術(shù)領(lǐng)域】,涉及一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)的設(shè)計(jì)方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,人們對(duì)計(jì)算機(jī)系統(tǒng)的軟件和硬件的可靠性要求也越來越高。如何評(píng)估系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)階段的系統(tǒng)可靠性是開發(fā)容錯(cuò)計(jì)算機(jī)系統(tǒng)的重要步驟。目前尚未有一個(gè)通用的方法能用于分析各種計(jì)算機(jī)系統(tǒng)的可靠性問題。提高計(jì)算機(jī)系統(tǒng)可靠性的設(shè)計(jì)方法雖多,卻缺乏足夠的理論證明。結(jié)合實(shí)際應(yīng)用的計(jì)算機(jī)系統(tǒng)可靠性設(shè)計(jì)組合方法更是多種多樣,沒有得到普遍公認(rèn)的標(biāo)準(zhǔn)可以遵循。
[0003]對(duì)計(jì)算機(jī)可靠性評(píng)測的方法主要有邏輯證明、實(shí)驗(yàn)測試和分析模型等,有從理論分析方面入手,也有運(yùn)用仿真實(shí)驗(yàn)方法。理論分析方法缺點(diǎn)是數(shù)學(xué)上分析復(fù)雜,而仿真實(shí)驗(yàn)由于對(duì)系統(tǒng)做了簡化和假設(shè)而不能完全真實(shí)地反映系統(tǒng)的情況,從而造成評(píng)估結(jié)果的不準(zhǔn)確。故障注入作為一種加速故障的發(fā)生率,人為地引入故障到容錯(cuò)系統(tǒng)中的技術(shù)手段,可以較精確地評(píng)測容錯(cuò)方法的有效性。
[0004]故障注入技術(shù)是一種廣泛采用的用于評(píng)測計(jì)算機(jī)系統(tǒng)可靠性的有效手段。按其實(shí)現(xiàn)技術(shù)可分為硬件故障注入、軟件故障注入、模擬故障注入等。其中,硬件故障注入是通過物理手段直接將故障注入到目標(biāo)系統(tǒng)的硬件中,該方法的優(yōu)點(diǎn)是注入的故障接近實(shí)際情況,實(shí)驗(yàn)過程短,且無需專門開發(fā)故障注入模型;其不足是實(shí)驗(yàn)裝置復(fù)雜,費(fèi)用高,實(shí)驗(yàn)過程不易控制,易對(duì)目標(biāo)系統(tǒng)硬件造成損傷等。模擬故障注入是通過利用某種標(biāo)準(zhǔn)硬件描述語言(如VHDL)為測試系統(tǒng)建立硬件仿真模型,然后在模型內(nèi)部插入故障注入單元來實(shí)現(xiàn)故障的注入。其優(yōu)點(diǎn)是費(fèi)用低廉,無需任何特殊的硬件,對(duì)注入的故障可以精確地監(jiān)控,不足是開發(fā)工作量大,建立詳細(xì)的仿真模型非常困難。軟件故障注入根據(jù)一定的故障模型,通過修改目標(biāo)系統(tǒng)內(nèi)存單元或處理器內(nèi)部的寄存器值來模擬硬件故障的發(fā)生。其主要優(yōu)點(diǎn)是無需復(fù)雜的實(shí)驗(yàn)裝置,實(shí)現(xiàn)成本低,可在編譯階段和程序運(yùn)行時(shí)注入故障等。主要不足是對(duì)目標(biāo)程序的運(yùn)行時(shí)間、占用空間等造成影響。
[0005]故針對(duì)上述現(xiàn)有技術(shù)存在的缺陷,實(shí)有必要進(jìn)行研究,針對(duì)容錯(cuò)系統(tǒng)可靠性評(píng)測的實(shí)際需求,以提供一種面向容錯(cuò)系統(tǒng)可靠性評(píng)測的軟件故障注入系統(tǒng),精確地評(píng)估容錯(cuò)系統(tǒng)的可靠性。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)設(shè)計(jì)方法。
[0007]本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,系統(tǒng)包括主控機(jī)、目標(biāo)機(jī)、配置管理模塊、系統(tǒng)診斷模塊、心跳檢測模塊、故障注入模塊、結(jié)果回收模塊、數(shù)據(jù)處理模塊和仲裁控制模塊,其中:
主控機(jī)負(fù)責(zé)選擇注入故障的類型,發(fā)送故障注入指令,選擇目標(biāo)機(jī)上生成的負(fù)載,存儲(chǔ)回收結(jié)果以及一切的用戶交互操作,主控機(jī)和目標(biāo)機(jī)之間通過一條專用的心跳線相連,這條心跳線一方面用于心跳檢測,另一方面用于傳遞控制信息和數(shù)據(jù)信息,主控機(jī)和目標(biāo)機(jī)之間還存在外部的網(wǎng)絡(luò)連接,此連接對(duì)IP地址無確定限制;
目標(biāo)機(jī)運(yùn)行來自負(fù)載生成器包括:應(yīng)用程序、BENCHMARKS或綜合工作量的工作負(fù)載,注入執(zhí)行器將故障注入;
a)配置管理模塊:完成主控機(jī)和目標(biāo)機(jī)的IP配置、心跳檢測的心跳間隔時(shí)間和超時(shí)時(shí)間限額設(shè)定和目標(biāo)機(jī)的負(fù)載選擇等功能,設(shè)定了心跳檢測模塊中主控機(jī)向目標(biāo)機(jī)發(fā)送心跳檢測包的間隔時(shí)間,如果設(shè)置的間隔時(shí)間T過于短,發(fā)送太過頻繁,將會(huì)影響到系統(tǒng)的正常運(yùn)行,占用系統(tǒng)資源;而設(shè)置的間隔時(shí)間太長,則檢測會(huì)比較遲鈍,影響故障檢測的及時(shí)性,并會(huì)影響到整個(gè)系統(tǒng)運(yùn)行的正確性,此間隔時(shí)間必須大于兩節(jié)點(diǎn)間往返一次消息的最低時(shí)間限額,超時(shí)最低時(shí)間限額,一般設(shè)定為從主控機(jī)發(fā)出心跳檢測信息到目標(biāo)機(jī)處理結(jié)束后返回回復(fù)信息所花費(fèi)的時(shí)間;
b)系統(tǒng)診斷模塊,根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障;
c)心跳檢測模塊:心跳檢測的原理是通過兩個(gè)節(jié)點(diǎn)之間周期性的交換心跳消息互相監(jiān)視對(duì)方的狀態(tài),對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行定期的檢測,當(dāng)發(fā)現(xiàn)心跳信息異?;蛐奶畔⒊瑫r(shí)時(shí),采取相應(yīng)措施,從而保證系統(tǒng)能夠正確連續(xù)地工作,該模塊完成主控機(jī)對(duì)目標(biāo)機(jī)的心跳檢測,由于本文尚未完成外部的硬件仲裁裝置,所以不能區(qū)分心跳線失效和目標(biāo)機(jī)失效,即假設(shè)心跳線是安全的,當(dāng)心跳檢測出現(xiàn)超時(shí)時(shí),認(rèn)為目標(biāo)系統(tǒng)失效,心跳線除去進(jìn)行心跳檢測信息的傳遞外還傳送數(shù)據(jù)信息和控制信息;
d)故障注入模塊:實(shí)現(xiàn)將選定事件集注入到目標(biāo)系統(tǒng)的功能,包括在目標(biāo)機(jī)上的注入執(zhí)行模塊和在主控機(jī)上的故障注入模塊,主控機(jī)上的故障注入模塊用于遠(yuǎn)程網(wǎng)絡(luò)攻擊的注入;應(yīng)用層的故障注入是使用操作系統(tǒng)所提供的調(diào)試API以及文件映射API來實(shí)現(xiàn),調(diào)試API是由操作系統(tǒng)所提供的一組功能特別的API函數(shù),其目的是為系統(tǒng)開發(fā)人員實(shí)現(xiàn)程序調(diào)試器,內(nèi)存映射文件是由一個(gè)文件到一塊內(nèi)存的映射,Win32提供了允許應(yīng)用程序把文件映射到一個(gè)進(jìn)程的函數(shù)CreateFileMapping,這樣,文件內(nèi)的數(shù)據(jù)就用內(nèi)存讀/寫指令來訪問,而不是用ReadFile和WriteFile這樣的I/O系統(tǒng)函數(shù),從而提高了文件存取速度,在用這種方法進(jìn)行故障注入時(shí)所注入的頁有可能受到保護(hù),這時(shí)就需要將該頁的保護(hù)先去掉,然后再注入故障,當(dāng)故障注入完成后需要再次改回頁保護(hù)屬性;
內(nèi)核故障注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核注入模塊會(huì)迅速注入瞬時(shí)故障,內(nèi)核驅(qū)動(dòng)模塊與應(yīng)用層界面模塊通過Device1Control函數(shù)來通信,注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核故障注入模塊會(huì)迅速注入瞬時(shí)故障;
e)結(jié)果回收模塊:主要完成事件注入結(jié)果回收功能,還有部分的操作結(jié)果回收功能;
f)數(shù)據(jù)處理模塊:對(duì)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,進(jìn)行運(yùn)算,得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果,通過計(jì)數(shù)器精確地控制注入信號(hào)的時(shí)長和頻率,以實(shí)現(xiàn)多種時(shí)間類型的故障注入;
g)仲裁控制模塊,根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)
果;
具體檢測步驟如下: 雙機(jī)系統(tǒng)通過b)系統(tǒng)診斷模塊、C)心跳檢測模塊、f)數(shù)據(jù)處理模塊和g)仲裁控制模塊檢測系統(tǒng)故障,b)系統(tǒng)診斷模塊根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障,開始的時(shí)候評(píng)測系統(tǒng)使用a)配置管理模塊配置主控機(jī)和目標(biāo)機(jī)的網(wǎng)絡(luò)連接參數(shù),選擇目標(biāo)機(jī)應(yīng)用負(fù)載,以及配置c)心跳檢測模塊的心跳間隔時(shí)間和超時(shí)限額等參數(shù),執(zhí)行d)故障注入模塊,在故障庫中選擇不同的故障類型,設(shè)定不同的故障注入?yún)?shù)進(jìn)行故障注入,e)結(jié)果回收模塊回收故障注入的結(jié)果數(shù)據(jù)并把數(shù)據(jù)輸出到f)數(shù)據(jù)處理模塊,f)數(shù)據(jù)處理模塊對(duì)e)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,分析數(shù)據(jù)送g仲裁控制模塊,g仲裁控制模塊根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果。
[0008]主控機(jī)負(fù)責(zé)選擇注入故障的類型,發(fā)送故障注入指令,選擇目標(biāo)機(jī)上生成的負(fù)載,存儲(chǔ)回收結(jié)果以及一切的用戶交互操作。
[0009]目標(biāo)機(jī)運(yùn)行來自負(fù)載生成器的工作負(fù)載,通過故障注入模塊將故障注入其中,故障注入模塊中的監(jiān)視器追蹤故障注入的執(zhí)行,并且在必要時(shí)初始化故障注入模塊中的數(shù)據(jù)收集器,數(shù)據(jù)收集器在線收集數(shù)據(jù),將收集的數(shù)據(jù)送往主控機(jī)交數(shù)據(jù)分析器進(jìn)行數(shù)據(jù)處理和分析。
[0010]本發(fā)明的有益效果是:本發(fā)明的基于軟件故障注入的面向容錯(cuò)系統(tǒng)可靠性評(píng)測系統(tǒng)的設(shè)計(jì)方法。實(shí)驗(yàn)結(jié)果表明,該評(píng)測系統(tǒng)能夠有效地對(duì)容錯(cuò)系統(tǒng)可靠性進(jìn)行評(píng)測,具有操作簡便,對(duì)目標(biāo)系統(tǒng)干擾小,注入故障接近真實(shí)故障等優(yōu)點(diǎn),是一種有效的系統(tǒng)可靠性評(píng)測工具,具有重要的理論和實(shí)踐意義,還具有故障類型多樣化,觸發(fā)方式多樣化,注入故障接近真實(shí)故障,操作簡單,對(duì)系統(tǒng)影響小等優(yōu)點(diǎn),能夠有效地評(píng)測系統(tǒng)可靠性。
【專利附圖】
【附圖說明】
[0011]附圖1故障注入系統(tǒng)框圖;
附圖2內(nèi)存故障注入流程圖;
附圖3內(nèi)核注入模塊在操作系統(tǒng)的架構(gòu)圖。
【具體實(shí)施方式】
[0012]參照說明書附圖對(duì)本發(fā)明的方法作以下詳細(xì)地說明。
[0013]本發(fā)明的目的是針對(duì)容錯(cuò)系統(tǒng)可靠性評(píng)測的實(shí)際需求,基于阮籍故障注入技術(shù)提供一種面向容錯(cuò)系統(tǒng)可靠性評(píng)測的軟件故障注入系統(tǒng),精確地評(píng)估容錯(cuò)系統(tǒng)的可靠性。
[0014]如附圖1所示,評(píng)測系統(tǒng)的主體部分包括主控機(jī)和目標(biāo)機(jī),主控機(jī)負(fù)責(zé)選擇注入故障的類型,發(fā)送故障注入指令,選擇目標(biāo)機(jī)上生成的負(fù)載,存儲(chǔ)回收結(jié)果,以及一切的用戶交互操作。主控機(jī)和目標(biāo)機(jī)之間通過一條專用的心跳線相連,這條心跳線一方面用于心跳檢測,另一方面用于傳遞控制信息和數(shù)據(jù)信息,主控機(jī)和目標(biāo)機(jī)之間還存在外部的網(wǎng)絡(luò)連接,此連接對(duì)IP地址無確定限制。
[0015]目標(biāo)機(jī)運(yùn)行來自負(fù)載生成器(應(yīng)用程序、BENCHMARKS、或綜合工作量)的工作負(fù)載,注入執(zhí)行器將故障注入其中。監(jiān)視器追蹤故障注入的執(zhí)行,并且在必要時(shí)初始化數(shù)據(jù)收集器。數(shù)據(jù)收集器在線收集數(shù)據(jù),將收集的數(shù)據(jù)送往主控機(jī)交由數(shù)據(jù)分析器進(jìn)行數(shù)據(jù)處理和分析。控制器是在主控機(jī)上運(yùn)行的一個(gè)應(yīng)用程序,控制注入故障的選擇和目標(biāo)機(jī)上所有的操作。對(duì)于軟件實(shí)現(xiàn)的注入器,其目標(biāo)系統(tǒng)為操作系統(tǒng)、應(yīng)用程序或主存。注入器本身應(yīng)支持不同的故障模型、從故障庫中提取。
[0016]基于軟件故障注入的可靠性評(píng)測系統(tǒng),包括主控機(jī)、目標(biāo)機(jī)、配置管理模塊、系統(tǒng)診斷模塊、心跳檢測模塊、故障注入模塊、結(jié)果回收模塊、數(shù)據(jù)處理模塊和仲裁控制模塊,其中:
a)配置管理模塊:完成主控機(jī)和目標(biāo)機(jī)的IP配置、心跳檢測的心跳間隔時(shí)間和超時(shí)時(shí)間限額設(shè)定和目標(biāo)機(jī)的負(fù)載選擇等功能,設(shè)定了心跳檢測模塊中主控機(jī)向目標(biāo)機(jī)發(fā)送心跳檢測包的間隔時(shí)間,如果設(shè)置的間隔時(shí)間T過于短,發(fā)送太過頻繁,將會(huì)影響到系統(tǒng)的正常運(yùn)行,占用系統(tǒng)資源;而設(shè)置的間隔時(shí)間太長,則檢測會(huì)比較遲鈍,影響故障檢測的及時(shí)性,并會(huì)影響到整個(gè)系統(tǒng)運(yùn)行的正確性,此間隔時(shí)間必須大于兩節(jié)點(diǎn)間往返一次消息的最低時(shí)間限額,超時(shí)最低時(shí)間限額,一般設(shè)定為從主控機(jī)發(fā)出心跳檢測信息到目標(biāo)機(jī)處理結(jié)束后返回回復(fù)信息所花費(fèi)的時(shí)間;
b)系統(tǒng)診斷模塊,根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障;
c)心跳檢測模塊:心跳檢測的原理是通過兩個(gè)節(jié)點(diǎn)之間周期性的交換心跳消息互相監(jiān)視對(duì)方的狀態(tài),對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行定期的檢測,當(dāng)發(fā)現(xiàn)心跳信息異?;蛐奶畔⒊瑫r(shí)時(shí),采取相應(yīng)措施,從而保證系統(tǒng)能夠正確連續(xù)地工作,該模塊完成主控機(jī)對(duì)目標(biāo)機(jī)的心跳檢測,由于本文尚未完成外部的硬件仲裁裝置,所以不能區(qū)分心跳線失效和目標(biāo)機(jī)失效,即假設(shè)心跳線是安全的,當(dāng)心跳檢測出現(xiàn)超時(shí)時(shí),認(rèn)為目標(biāo)系統(tǒng)失效,心跳線除去進(jìn)行心跳檢測信息的傳遞外還傳送數(shù)據(jù)信息和控制信息;
d)故障注入模塊:實(shí)現(xiàn)將選定事件集注入到目標(biāo)系統(tǒng)的功能,包括在目標(biāo)機(jī)上的注入執(zhí)行模塊和在主控機(jī)上的故障注入模塊,主控機(jī)上的故障注入模塊用于遠(yuǎn)程網(wǎng)絡(luò)攻擊的注入;應(yīng)用層的故障注入是使用操作系統(tǒng)所提供的調(diào)試API以及文件映射API來實(shí)現(xiàn),調(diào)試API是由操作系統(tǒng)所提供的一組功能特別的API函數(shù),其目的是為系統(tǒng)開發(fā)人員實(shí)現(xiàn)程序調(diào)試器,內(nèi)存映射文件是由一個(gè)文件到一塊內(nèi)存的映射,Win32提供了允許應(yīng)用程序把文件映射到一個(gè)進(jìn)程的函數(shù)CreateFileMapping,這樣,文件內(nèi)的數(shù)據(jù)就用內(nèi)存讀/寫指令來訪問,而不是用ReadFile和WriteFile這樣的I/O系統(tǒng)函數(shù),從而提高了文件存取速度,在用這種方法進(jìn)行故障注入時(shí)所注入的頁有可能受到保護(hù),這時(shí)就需要將該頁的保護(hù)先去掉,然后再注入故障,當(dāng)故障注入完成后需要再次改回頁保護(hù)屬性;
內(nèi)核故障注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核注入模塊會(huì)迅速注入瞬時(shí)故障,內(nèi)核驅(qū)動(dòng)模塊與應(yīng)用層界面模塊通過Device1Control函數(shù)來通信,注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核故障注入模塊會(huì)迅速注入瞬時(shí)故障;
e)結(jié)果回收模塊:主要完成事件注入結(jié)果回收功能,還有部分的操作結(jié)果回收功能;
f)數(shù)據(jù)處理模塊:對(duì)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,進(jìn)行運(yùn)算,得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果,通過計(jì)數(shù)器精確地控制注入信號(hào)的時(shí)長和頻率,以實(shí)現(xiàn)多種時(shí)間類型的故障注入;
g)仲裁控制模塊,根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)
果;
參考附圖2,應(yīng)用層的故障注入主要是使用操作系統(tǒng)所提供的調(diào)試API以及文件映射API來實(shí)現(xiàn)。調(diào)試API是由操作系統(tǒng)所提供的一組功能特別的API函數(shù),其目的是為系統(tǒng)開發(fā)人員實(shí)現(xiàn)程序調(diào)試器。內(nèi)存映射文件是由一個(gè)文件到一塊內(nèi)存的映射。Win32提供了允許應(yīng)用程序把文件映射到一個(gè)進(jìn)程的函數(shù)(CreateFileMapping)。這樣,文件內(nèi)的數(shù)據(jù)就可以用內(nèi)存讀/寫指令來訪問,而不是用ReadFile和WriteFile這樣的I/O系統(tǒng)函數(shù),從而提高了文件存取速度。在用這種方法進(jìn)行故障注入時(shí)所注入的頁有可能收到保護(hù),這時(shí)就需要將該頁的保護(hù)先去掉,然后再注入故障,當(dāng)故障注入完成后需要再次改回頁保護(hù)屬性。
[0017]內(nèi)核注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核注入模塊會(huì)迅速注入瞬時(shí)故障。內(nèi)核驅(qū)動(dòng)模塊與應(yīng)用層界面模塊通過Device1Control函數(shù)來通信。注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),參考附圖3,當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核注入模塊會(huì)迅速注入瞬時(shí)故障。
[0018]下面參照附圖1,對(duì)本發(fā)明的內(nèi)容以一個(gè)具體實(shí)例來描述實(shí)現(xiàn)這一體系結(jié)構(gòu)的過程。
[0019]以目標(biāo)容錯(cuò)系統(tǒng)是windows 2000下的雙機(jī)容錯(cuò)系統(tǒng)為例,雙機(jī)系統(tǒng)通過b)系統(tǒng)診斷模塊、c)心跳檢測模塊、f)數(shù)據(jù)處理模塊和g)仲裁控制模塊檢測系統(tǒng)故障,b)系統(tǒng)診斷模塊根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障,開始的時(shí)候評(píng)測系統(tǒng)使用a)配置管理模塊配置主控機(jī)和目標(biāo)機(jī)的網(wǎng)絡(luò)連接參數(shù),選擇目標(biāo)機(jī)應(yīng)用負(fù)載,以及配置c)心跳檢測模塊的心跳間隔時(shí)間和超時(shí)限額等參數(shù),執(zhí)行d)故障注入模塊,在故障庫中選擇不同的故障類型,設(shè)定不同的故障注入?yún)?shù)進(jìn)行故障注入,e)結(jié)果回收模塊回收故障注入的結(jié)果數(shù)據(jù)并把數(shù)據(jù)輸出到f)數(shù)據(jù)處理模塊,f)數(shù)據(jù)處理模塊對(duì)e)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,分析數(shù)據(jù)送g仲裁控制模塊,g仲裁控制模塊根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果。
[0020]除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【權(quán)利要求】
1.一種基于軟件故障注入的可靠性評(píng)測系統(tǒng)設(shè)計(jì)方法,其特征在于系統(tǒng)包括主控機(jī)、目標(biāo)機(jī)、配置管理模塊、系統(tǒng)診斷模塊、心跳檢測模塊、故障注入模塊、結(jié)果回收模塊、數(shù)據(jù)處理模塊和仲裁控制模塊,其中: 主控機(jī)負(fù)責(zé)選擇注入故障的類型,發(fā)送故障注入指令,選擇目標(biāo)機(jī)上生成的負(fù)載,存儲(chǔ)回收結(jié)果以及一切的用戶交互操作,主控機(jī)和目標(biāo)機(jī)之間通過一條專用的心跳線相連,這條心跳線一方面用于心跳檢測,另一方面用于傳遞控制信息和數(shù)據(jù)信息,主控機(jī)和目標(biāo)機(jī)之間還存在外部的網(wǎng)絡(luò)連接,此連接對(duì)IP地址無確定限制; 目標(biāo)機(jī)運(yùn)行來自負(fù)載生成器包括:應(yīng)用程序、BENCHMARKS或綜合工作量的工作負(fù)載,注入執(zhí)行器將故障注入; a)配置管理模塊:完成主控機(jī)和目標(biāo)機(jī)的IP配置、心跳檢測的心跳間隔時(shí)間和超時(shí)時(shí)間限額設(shè)定和目標(biāo)機(jī)的負(fù)載選擇等功能,設(shè)定了心跳檢測模塊中主控機(jī)向目標(biāo)機(jī)發(fā)送心跳檢測包的間隔時(shí)間,如果設(shè)置的間隔時(shí)間T過于短,發(fā)送太過頻繁,將會(huì)影響到系統(tǒng)的正常運(yùn)行,占用系統(tǒng)資源;而設(shè)置的間隔時(shí)間太長,則檢測會(huì)比較遲鈍,影響故障檢測的及時(shí)性,并會(huì)影響到整個(gè)系統(tǒng)運(yùn)行的正確性,此間隔時(shí)間必須大于兩節(jié)點(diǎn)間往返一次消息的最低時(shí)間限額,超時(shí)最低時(shí)間限額,一般設(shè)定為從主控機(jī)發(fā)出心跳檢測信息到目標(biāo)機(jī)處理結(jié)束后返回回復(fù)信息所花費(fèi)的時(shí)間; b)系統(tǒng)診斷模塊,根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障; c)心跳檢測模塊:心跳檢測的原理是通過兩個(gè)節(jié)點(diǎn)之間周期性的交換心跳消息互相監(jiān)視對(duì)方的狀態(tài),對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行定期的檢測,當(dāng)發(fā)現(xiàn)心跳信息異?;蛐奶畔⒊瑫r(shí)時(shí),采取相應(yīng)措施,從而保證系統(tǒng)能夠正確連續(xù)地工作,該模塊完成主控機(jī)對(duì)目標(biāo)機(jī)的心跳檢測,由于本文尚未完成外部的硬件仲裁裝置,所以不能區(qū)分心跳線失效和目標(biāo)機(jī)失效,即假設(shè)心跳線是安全的,當(dāng)心跳檢測出現(xiàn)超時(shí)時(shí),認(rèn)為目標(biāo)系統(tǒng)失效,心跳線除去進(jìn)行心跳檢測信息的傳遞外還傳送數(shù)據(jù)信息和控制信息; d)故障注入模塊:實(shí)現(xiàn)將選定事件集注入到目標(biāo)系統(tǒng)的功能,包括在目標(biāo)機(jī)上的注入執(zhí)行模塊和在主控機(jī)上的故障注入模塊,主控機(jī)上的故障注入模塊用于遠(yuǎn)程網(wǎng)絡(luò)攻擊的注入;應(yīng)用層的故障注入是使用操作系統(tǒng)所提供的調(diào)試API以及文件映射API來實(shí)現(xiàn),調(diào)試API是由操作系統(tǒng)所提供的一組功能特別的API函數(shù),其目的是為系統(tǒng)開發(fā)人員實(shí)現(xiàn)程序調(diào)試器,內(nèi)存映射文件是由一個(gè)文件到一塊內(nèi)存的映射,Win32提供了允許應(yīng)用程序把文件映射到一個(gè)進(jìn)程的函數(shù)CreateFileMapping,這樣,文件內(nèi)的數(shù)據(jù)就用內(nèi)存讀/寫指令來訪問,而不是用ReadFile和WriteFile這樣的I/O系統(tǒng)函數(shù),從而提高了文件存取速度,在用這種方法進(jìn)行故障注入時(shí)所注入的頁有可能受到保護(hù),這時(shí)就需要將該頁的保護(hù)先去掉,然后再注入故障,當(dāng)故障注入完成后需要再次改回頁保護(hù)屬性; 內(nèi)核故障注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核注入模塊會(huì)迅速注入瞬時(shí)故障,內(nèi)核驅(qū)動(dòng)模塊與應(yīng)用層界面模塊通過Device1Control函數(shù)來通信,注入模塊以驅(qū)動(dòng)的形式工作在內(nèi)核態(tài),當(dāng)應(yīng)用層注入模塊發(fā)出故障注入指令后,內(nèi)核故障注入模塊會(huì)迅速注入瞬時(shí)故障; e)結(jié)果回收模塊:主要完成事件注入結(jié)果回收功能,還有部分的操作結(jié)果回收功能; f)數(shù)據(jù)處理模塊:對(duì)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,進(jìn)行運(yùn)算,得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果,通過計(jì)數(shù)器 精確地控制注入信號(hào)的時(shí)長和頻率,以實(shí)現(xiàn)多種時(shí)間類型的故障注入; g)仲裁控制模塊,根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果;
具體檢測步驟如下: 雙機(jī)系統(tǒng)通過b)系統(tǒng)診斷模塊、C)心跳檢測模塊、f)數(shù)據(jù)處理模塊和g)仲裁控制模塊檢測系統(tǒng)故障,b)系統(tǒng)診斷模塊根據(jù)送來的檢測結(jié)果診斷系統(tǒng)中發(fā)生的故障,開始的時(shí)候評(píng)測系統(tǒng)使用a)配置管理模塊配置主控機(jī)和目標(biāo)機(jī)的網(wǎng)絡(luò)連接參數(shù),選擇目標(biāo)機(jī)應(yīng)用負(fù)載,以及配置c)心跳檢測模塊的心跳間隔時(shí)間和超時(shí)限額等參數(shù),執(zhí)行d)故障注入模塊,在故障庫中選擇不同的故障類型,設(shè)定不同的故障注入?yún)?shù)進(jìn)行故障注入,e)結(jié)果回收模塊回收故障注入的結(jié)果數(shù)據(jù)并把數(shù)據(jù)輸出到f)數(shù)據(jù)處理模塊,f)數(shù)據(jù)處理模塊對(duì)e)結(jié)果回收模塊回收的數(shù)據(jù)進(jìn)行離線分析,分析數(shù)據(jù)送g仲裁控制模塊,g仲裁控制模塊根據(jù)可靠性評(píng)測指標(biāo)進(jìn)行運(yùn)算,最后得出目標(biāo)系統(tǒng)的可靠性評(píng)測結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于主控機(jī)負(fù)責(zé)選擇注入故障的類型,發(fā)送故障注入指令,選擇目標(biāo)機(jī)上生成的負(fù)載,存儲(chǔ)回收結(jié)果以及一切的用戶交互操作。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,目標(biāo)機(jī)運(yùn)行來自負(fù)載生成器的工作負(fù)載,通過故障注入模塊將故障注入其中,故障注入模塊中的監(jiān)視器追蹤故障注入的執(zhí)行,并且在必要時(shí)初始化故障注入模塊中的數(shù)據(jù)收集器,數(shù)據(jù)收集器在線收集數(shù)據(jù),將收集的數(shù)據(jù)送往主控機(jī)交數(shù)據(jù)分析器進(jìn)行數(shù)據(jù)處理和分析。
【文檔編號(hào)】G06F11/28GK103473162SQ201310439618
【公開日】2013年12月25日 申請日期:2013年9月25日 優(yōu)先權(quán)日:2013年9月25日
【發(fā)明者】劉璧怡 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司