[發明專利]基于SCSI驅動層的故障注入工具無效
| 申請號: | 201110204371.8 | 申請日: | 2011-07-21 |
| 公開(公告)號: | CN102270173A | 公開(公告)日: | 2011-12-07 |
| 發明(設計)人: | 左德承;錢軍;張展;薛利興;羅丹彥;苗百利;周海鷹;劉宏偉;董劍;祁鑫;溫東新;楊孝宗 | 申請(專利權)人: | 哈爾濱工業大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 哈爾濱市松花江專利商標事務所 23109 | 代理人: | 張宏威 |
| 地址: | 150001 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 scsi 驅動 故障 注入 工具 | ||
技術領域
本發明涉及故障注入技術。
背景技術
隨著對存儲系統容量的要求不斷增大,海量存儲系統已成為趨勢。對海量存儲系統各部分的評測便尤為重要,然而傳統的測試程序忽略了可用性等領域,而故障注入技術又是可用性評測最為典型的方法,所以對其進行研究,提高評測質量,進而保證海量存儲的質量是極其必要的。
在Linux操作系統下,基本上所有的存儲設備都會以塊設備的形式出現在/dev目錄下供使用,而塊設備在驅動層都會是一個注冊在SCSI協議下的SCSI設備,因此存儲設備不論是使用什么協議,在Linux下進行驅動注冊時都會通過協議轉換將本來的協議(如光纖)虛擬為SCSI協議,將設備虛擬為SCSI設備。
SCSI(Small?Computer?System?Interface)是一種高性能計算外部設備接口,它的主要功能是用于連接外設設備,在主機和存儲設備之間傳輸命令、狀態和塊數據,以提高系統性能或增加新的功能。
發明內容
本發明提供了一種用于檢測海量存儲器質量的、針對海量存儲器的故障注入工具:基于SCSI驅動層的故障注入工具。
本發明所述的基于SCSI驅動層的故障注入工具包括故障注入命令傳入接口、多路徑設備匹配查看接口和內核模塊,其中,
故障注入命令傳入接口:用于提供外部故障配置文件輸入接口,并根據輸入的故障配置文件生成故障注入命令Scsi_Fault_Cmnd,并且將所述故障注入命令Scsi_Fault_Cmnd送入內核;
內核模塊:在內核態運行,用于根據接收的故障注入命令,截獲并改寫SCSI命令的queuecommand函數以實現故障注入;還用于在故障加載過程中,將設備注冊信息打印到內核日志中,還用于在注入故障之后,將故障信息打印到內核日志中;
多路徑設備號匹配查看接口:用于通過查看內核日志與多路徑配置信息,對設備進行比對,獲得多路徑設備各路徑在工具中對應的注冊號ID。
所述故障配置文件的格式為:命令類型$設備ID$故障類型$瞬時/永久故障(0/1)$瞬時故障持續時間$故障扇區起始位置$故障扇區終止位置$讀寫故障標識$,當某個信息不被使用時,采用空格填充。
將所述故障注入命令Scsi_Fault_Cmnd送入內核,是通過將故障注入命令Scsi_Fault_Cmnd寫入/proc文件scsi_ctrl_gen的方式送入內核模塊。
所述內核模塊以動態加載模塊的方式,作為內核的一部分,模擬注入磁盤永久故障、瞬時故障,具體過程為為:
用戶將通過Linux系統的/proc文件系統將故障信息(Fault_Info)傳入內核,工具接收到數據后,會將故障類型、故障間隔時間、故障起止扇區等信息寫入到相應設備的故障信息結構(Dev_Fault_Info)中;新改寫的queuecommand()函數將在每個SCSI?Command執行前比對其執行設備的故障信息,以判斷該命令是否與故障注入信息匹配,即該命令執行時是否應該“發生”錯誤,如果匹配將按既定方案改寫命令和返回結果,則完成故障注入;
另外,內核模塊在加載時,會在內核日志中打印出各SCSI設備在工具中的注冊ID;這樣主要為了方便多路徑設備號匹配查看接口查詢。用戶也可以通過日志文件手動查詢。
所述故障信息結構(Dev_Fault_Info)是用以保存設備的故障信息的數據結構,每個設備對應一個故障信息結構(Dev_Fault_Info)。
所述改寫命令根據命令類型分為兩類:一種是有錯誤返回信息的模擬過程中的命令改寫,另一種是無錯誤返回信息的模擬過程中的命令改寫,其中,有錯誤返回信息的模擬過程中的命令改寫方法為:
SCSI上層發送請求命令REQUEST給SCSI中間層,該SCSI中層根據請求命令尋找目標設備的控制命令Command,然后將該控制命令Command的數據長度修改為0獲得修改后的控制命令Command,然后發送修改后的控制命令Command給SCSI底層,該SCSI底層返回執行該命令的執行結果給SCSI中間層,在SCSI中間層將該執行結果更改為錯誤的執行結果,并根據該更改后的錯誤的執行結果獲得錯誤信息發送給SCSI層。
無錯誤返回信息的模擬過程中的命令改寫方法為:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工業大學,未經哈爾濱工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110204371.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種雙扭力彈簧安裝支架及其制造方法
- 下一篇:電子鎖雙電機離合器驅動機構





