本發(fā)明涉及故障模擬技術(shù)領(lǐng)域,特別是涉及一種基于linux的CPU故障注入方法及其裝置。本發(fā)明還涉及一種故障管理系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)中的運(yùn)算器和控制器統(tǒng)稱為中央處理器CPU,CPU計(jì)算機(jī)系統(tǒng)的核心部件,可以實(shí)現(xiàn)運(yùn)算以及控制指揮的功能,一旦CPU出現(xiàn)故障,會(huì)導(dǎo)致計(jì)算機(jī)系統(tǒng)不能正常工作或宕機(jī)。
為了保證當(dāng)CPU出現(xiàn)故障時(shí)能夠及時(shí)檢測(cè)并正確處理,故需要模擬CPU可能出現(xiàn)的各種故障進(jìn)行分析,從而確定各種故障對(duì)應(yīng)的影響以及對(duì)故障對(duì)應(yīng)的解決方案提供指導(dǎo)。
因此,如何提供一種能夠解決上述問(wèn)題的基于linux的CPU故障注入方法及其裝置及故障管理系統(tǒng)是本領(lǐng)域技術(shù)人員目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于linux的CPU故障注入方法及其裝置,能夠模擬各種類型的CPU故障并注入CPU內(nèi),供后續(xù)對(duì)CPU的運(yùn)行狀態(tài)進(jìn)行分析,從而為后續(xù)處理該類型的CPU故障提供指導(dǎo);本發(fā)明的另一目的是提供一種包括上述裝置的故障管理系統(tǒng)。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于linux的CPU故障注入方法,包括:
用戶態(tài)CPU故障準(zhǔn)備模塊根據(jù)命令行接口,選擇待注入的CPU故障類型以及對(duì)應(yīng)的故障文件;對(duì)所述故障文件進(jìn)行分析,提取出故障文件信息;
用戶態(tài)CPU故障注入模塊將所述故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi),觸發(fā)submit函數(shù)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信;
內(nèi)核態(tài)CPU故障注入模塊調(diào)用自身包含的重寫的write函數(shù)拷貝所述cpu聯(lián)合體內(nèi)的所述故障文件信息,將拷貝的所述故障文件信息注入所述CPU內(nèi)。
優(yōu)選地,所述將所述故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi)的過(guò)程具體為:
調(diào)用finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的CPU相關(guān)預(yù)設(shè)函數(shù),將所述故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi)。
優(yōu)選地,所述調(diào)用自身包含的重寫的write函數(shù)拷貝所述cpu聯(lián)合體內(nèi)的所述故障文件信息,將拷貝的所述故障文件信息注入所述CPU內(nèi)的過(guò)程具體為:
選定待注入的CPU;
調(diào)用自身包含的重寫的write函數(shù)拷貝所述cpu聯(lián)合體內(nèi)的所述故障文件信息,將拷貝的所述故障文件信息注入所述待注入的CPU內(nèi);
采用預(yù)設(shè)的檢查函數(shù)對(duì)所述待注入的CPU進(jìn)行中斷處理流程。
為解決上述技術(shù)問(wèn)題,本發(fā)明還提供了一種基于linux的CPU故障注入裝置,包括:
用戶態(tài)CPU故障準(zhǔn)備模塊,用于根據(jù)命令行接口,選擇待注入的CPU故障類型以及對(duì)應(yīng)的故障文件;對(duì)所述故障文件進(jìn)行分析,提取出故障文件信息;
用戶態(tài)CPU故障注入模塊,用于將所述故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi),觸發(fā)submit函數(shù)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信;
內(nèi)核態(tài)CPU故障注入模塊,用于調(diào)用自身包含的重寫的write函數(shù)拷貝所述cpu聯(lián)合體內(nèi)的所述故障文件信息,將拷貝的所述故障文件信息注入所述CPU內(nèi);
通信模塊,用于建立所述用戶態(tài)CPU故障注入模塊與所述內(nèi)核態(tài)CPU故障注入模塊之間的通信。
優(yōu)選地,所述用戶態(tài)CPU故障注入模塊具體包括:
存放單元,用于調(diào)用finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的CPU相關(guān)預(yù)設(shè)函數(shù),將所述故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi);
用戶態(tài)注入單元,用于觸發(fā)所述finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的所述submit函數(shù)來(lái)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信,將所述故障文件信息拷貝至所述內(nèi)核態(tài)內(nèi)。
優(yōu)選地,所述內(nèi)核態(tài)CPU故障注入模塊具體包括:
選定單元,用于選定待注入的CPU;
內(nèi)核態(tài)注入單元,用于調(diào)用自身包含的重寫的write函數(shù)拷貝所述cpu聯(lián)合體內(nèi)的所述故障文件信息,將拷貝的所述故障文件信息注入所述待注入的CPU內(nèi);
中斷單元,用于采用預(yù)設(shè)的檢查函數(shù)對(duì)所述待注入的CPU進(jìn)行中斷處理流程。
為解決上述技術(shù)問(wèn)題,本發(fā)明還提供了一種故障管理系統(tǒng),包括如以上所述的CPU故障注入裝置及后續(xù)分析模塊;
所述后續(xù)分析模塊,用于對(duì)注入故障后的CPU進(jìn)行故障數(shù)據(jù)分析。
優(yōu)選地,還包括:
診斷模塊,用于對(duì)注入故障注入信息后的CPU進(jìn)行故障診斷處理,得到診斷結(jié)果。
優(yōu)選地,還包括:
收集模塊,用于收集所述CPU運(yùn)行過(guò)程中以及運(yùn)行結(jié)束后的運(yùn)行數(shù)據(jù)。
本發(fā)明提供了一種基于linux的CPU故障注入方法及其裝置,在用戶態(tài)一側(cè)預(yù)先設(shè)置CPU可能出現(xiàn)的故障類型以及該類型對(duì)應(yīng)的故障注入文件,在用戶態(tài)通過(guò)命令行接口獲取一種CPU的故障類型及對(duì)應(yīng)的故障注入文件后,對(duì)該故障注入文件進(jìn)行分析提取后拷貝至內(nèi)核態(tài)內(nèi),然后注入CPU內(nèi)??梢?,本發(fā)明能夠在CPU內(nèi)模擬注入已知類型的故障,從而能夠根據(jù)故障狀態(tài)下CPU工作時(shí)產(chǎn)生的故障效果確定該種故障類型對(duì)CPU的影響,進(jìn)而為解決該種CPU故障提供指導(dǎo)。本發(fā)明還提供了一種包括上述裝置的故障管理系統(tǒng),也具有上述優(yōu)點(diǎn),在此不再贅述。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種基于linux的CPU故障注入方法的過(guò)程的流程圖;
圖2為本發(fā)明提供的一種基于linux的CPU故障注入裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明提供的一種故障管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種基于linux的CPU故障注入方法及其裝置,能夠模擬各種類型的CPU故障并注入CPU內(nèi),供后續(xù)對(duì)CPU的運(yùn)行狀態(tài)進(jìn)行分析,從而為后續(xù)處理該類型的CPU故障提供指導(dǎo);本發(fā)明的另一核心是提供一種包括上述裝置的故障管理系統(tǒng)。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種基于linux的CPU故障注入方法,參見圖1所示,圖1為本發(fā)明提供的一種基于linux的CPU故障注入方法的過(guò)程的流程圖;該方法包括:
步驟s101:用戶態(tài)CPU故障準(zhǔn)備模塊根據(jù)命令行接口,選擇待注入的CPU故障類型以及對(duì)應(yīng)的故障文件;對(duì)故障文件進(jìn)行分析,提取出故障文件信息;
其中,每種CPU故障類型預(yù)先一一對(duì)應(yīng)的設(shè)置有一個(gè)故障文件。
步驟s102:用戶態(tài)CPU故障注入模塊將故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi),觸發(fā)submit函數(shù)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信;
步驟s103:內(nèi)核態(tài)CPU故障注入模塊調(diào)用自身包含的重寫的write函數(shù)拷貝cpu聯(lián)合體內(nèi)的故障文件信息,將拷貝的故障文件信息注入CPU內(nèi)。
其中,將故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi)的過(guò)程具體為:
調(diào)用finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的CPU相關(guān)預(yù)設(shè)函數(shù),將故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi)。
其中,這里的CPU相關(guān)預(yù)設(shè)函數(shù)包括CPU初始化函數(shù)、CPU解析函數(shù)、CPU清除函數(shù)等,當(dāng)然,具體是否包含以上幾個(gè)函數(shù)或是否包含其他函數(shù)本發(fā)明不作具體限定。
另外,步驟s103的過(guò)程具體為:
選定待注入的CPU;
調(diào)用自身包含的重寫的write函數(shù)拷貝cpu聯(lián)合體內(nèi)的故障文件信息,將拷貝的故障文件信息注入待注入的CPU內(nèi);
采用預(yù)設(shè)的檢查函數(shù)對(duì)待注入的CPU進(jìn)行中斷處理流程。
可以理解的是,對(duì)待注入的CPU進(jìn)行中斷處理流程是為了保證CPU在發(fā)生故障時(shí),能夠進(jìn)行異常處理流程,并指導(dǎo)一場(chǎng)處理完成。
下面結(jié)合實(shí)現(xiàn)本發(fā)明的代碼框架作具體介紹介紹:
本發(fā)明提供了一種基于linux的CPU故障注入方法,在用戶態(tài)一側(cè)預(yù)先設(shè)置CPU可能出現(xiàn)的故障類型以及該類型對(duì)應(yīng)的故障注入文件,在用戶態(tài)通過(guò)命令行接口獲取一種CPU的故障類型及對(duì)應(yīng)的故障注入文件后,對(duì)該故障注入文件進(jìn)行分析提取后拷貝至內(nèi)核態(tài)內(nèi),然后注入CPU內(nèi)??梢姡景l(fā)明能夠在CPU內(nèi)模擬注入已知類型的故障,從而能夠根據(jù)故障狀態(tài)下CPU工作時(shí)產(chǎn)生的故障效果確定該種故障類型對(duì)CPU的影響,進(jìn)而為解決該種CPU故障提供指導(dǎo)。
本發(fā)明還提供了一種基于linux的CPU故障注入裝置,參見圖2所示,圖2為本發(fā)明提供的一種基于linux的CPU故障注入裝置的結(jié)構(gòu)示意圖;該裝置包括:
用戶態(tài)CPU故障準(zhǔn)備模塊1,用于根據(jù)命令行接口,選擇待注入的CPU故障類型以及對(duì)應(yīng)的故障文件;對(duì)故障文件進(jìn)行分析,提取出故障文件信息;
用戶態(tài)CPU故障注入模塊2,用于將故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi),觸發(fā)submit函數(shù)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信;
內(nèi)核態(tài)CPU故障注入模塊4,用于調(diào)用自身包含的重寫的write函數(shù)拷貝cpu聯(lián)合體內(nèi)的故障文件信息,將拷貝的故障文件信息注入CPU內(nèi);
通信模塊3,用于建立用戶態(tài)CPU故障注入模塊2與內(nèi)核態(tài)CPU故障注入模塊4之間的通信。
其中,用戶態(tài)CPU故障注入模塊2具體包括:
存放單元21,用于調(diào)用finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的CPU相關(guān)預(yù)設(shè)函數(shù),將故障文件信息放入finj結(jié)構(gòu)體中的cpu聯(lián)合體內(nèi);
用戶態(tài)注入單元22,用于觸發(fā)finj_parse結(jié)構(gòu)體內(nèi)存儲(chǔ)的submit函數(shù)來(lái)調(diào)用write函數(shù)建立與內(nèi)核態(tài)中的write函數(shù)進(jìn)行通信,將故障文件信息拷貝至內(nèi)核態(tài)內(nèi)。
另外,內(nèi)核態(tài)CPU故障注入模塊4具體包括:
選定單元41,用于選定待注入的CPU;
內(nèi)核態(tài)注入單元42,用于調(diào)用自身包含的重寫的write函數(shù)拷貝cpu聯(lián)合體內(nèi)的故障文件信息,將拷貝的故障文件信息注入待注入的CPU內(nèi);
中斷單元43,用于采用預(yù)設(shè)的檢查函數(shù)對(duì)待注入的CPU進(jìn)行中斷處理流程。
本發(fā)明提供了一種基于linux的CPU故障注入裝置,在用戶態(tài)一側(cè)預(yù)先設(shè)置CPU可能出現(xiàn)的故障類型以及該類型對(duì)應(yīng)的故障注入文件,在用戶態(tài)通過(guò)命令行接口獲取一種CPU的故障類型及對(duì)應(yīng)的故障注入文件后,對(duì)該故障注入文件進(jìn)行分析提取后拷貝至內(nèi)核態(tài)內(nèi),然后注入CPU內(nèi)??梢姡景l(fā)明能夠在CPU內(nèi)模擬注入已知類型的故障,從而能夠根據(jù)故障狀態(tài)下CPU工作時(shí)產(chǎn)生的故障效果確定該種故障類型對(duì)CPU的影響,進(jìn)而為解決該種CPU故障提供指導(dǎo)。
本發(fā)明還提供了一種故障管理系統(tǒng),包括以上CPU故障注入裝置及后續(xù)分析模塊;
后續(xù)分析模塊51,用于對(duì)注入故障后的CPU進(jìn)行故障數(shù)據(jù)分析。
作為優(yōu)選地,該系統(tǒng)還包括:
診斷模塊52,用于對(duì)注入故障注入信息后的CPU進(jìn)行故障診斷處理,得到診斷結(jié)果。
作為優(yōu)選地,該系統(tǒng)還包括:
收集模塊53,用于收集CPU運(yùn)行過(guò)程中以及運(yùn)行結(jié)束后的運(yùn)行數(shù)據(jù)。
當(dāng)然,故障管理系統(tǒng)內(nèi)還可包括其他一些用于進(jìn)行后續(xù)處理的模塊,本發(fā)明對(duì)此不作特別限定。
參見圖3所示,圖3為本發(fā)明提供的一種故障管理系統(tǒng)的結(jié)構(gòu)示意圖。
需要說(shuō)明的是,在本說(shuō)明書中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。