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