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