本發(fā)明涉及多路徑IO技術(shù)領(lǐng)域,特別涉及一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法及系統(tǒng)。
背景技術(shù):
當(dāng)前,在Linux系統(tǒng)中,為了提升數(shù)據(jù)存儲(chǔ)可靠性,越來(lái)越多的存儲(chǔ)設(shè)備采用了多路徑IO來(lái)進(jìn)行數(shù)據(jù)傳遞。多路徑IO能夠?yàn)榇鎯?chǔ)設(shè)備提供多個(gè)數(shù)據(jù)路徑支持,在某條數(shù)據(jù)路徑出現(xiàn)故障后,可以通過(guò)其他正常的數(shù)據(jù)路徑來(lái)繼續(xù)進(jìn)行數(shù)據(jù)傳遞,從而大幅降低了數(shù)據(jù)傳遞的失敗率。為了能夠正常發(fā)揮多路徑IO的可靠性作用,需要確保存儲(chǔ)設(shè)備上的多路徑IO能正常運(yùn)作,而在這過(guò)程中,對(duì)多路徑IO發(fā)生的錯(cuò)誤事件的信息進(jìn)行及時(shí)地收集是至關(guān)重要的環(huán)節(jié)。目前,如何及時(shí)地收集多路徑IO上產(chǎn)生的錯(cuò)誤事件信息是有待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法及系統(tǒng),實(shí)現(xiàn)了及時(shí)收集多路徑IO上產(chǎn)生的錯(cuò)誤事件信息的目的。其具體方案如下:
一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法,包括:
對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息;
判斷所述多路徑IO實(shí)時(shí)信息中是否包含用于指示所述多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則從所述多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息;
將所述錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
優(yōu)選的,所述對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息的過(guò)程,包括:
建立用于監(jiān)聽(tīng)uevent的socket,得到相應(yīng)的uevent實(shí)時(shí)信息;
從所述uevent實(shí)時(shí)信息中提取出與所述多路徑IO對(duì)應(yīng)的信息,得到所述多路徑IO實(shí)時(shí)信息。
優(yōu)選的,所述多路徑IO實(shí)時(shí)信息包括與所述多路徑IO對(duì)應(yīng)的DM_NAME字段、DEVPATH字段、DM_PATH字段以及DM_NR_VALID_PATHS字段。
優(yōu)選的,所述多路徑IO發(fā)生的錯(cuò)誤事件包括多路徑IO失效事件以及多路徑IO重載事件。
優(yōu)選的,所述將所述錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中的過(guò)程,包括:
將所述錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至文件格式與預(yù)設(shè)文件格式相一致的目標(biāo)文件;
將所述目標(biāo)文件存儲(chǔ)至所述錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
優(yōu)選的,所述目標(biāo)文件的文件名的生成過(guò)程,包括:
從所述錯(cuò)誤事件實(shí)時(shí)信息中提取出用于概括相應(yīng)錯(cuò)誤事件的關(guān)鍵詞;
根據(jù)所述關(guān)鍵詞生成所述目標(biāo)文件的文件名。
優(yōu)選的,所述多路徑IO錯(cuò)誤事件收集方法,還包括:
若判斷出所述多路徑IO實(shí)時(shí)信息中包含用于指示所述多路徑IO發(fā)生錯(cuò)誤事件的信息,則生成相應(yīng)的報(bào)警信息。
本發(fā)明還公開(kāi)了一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集系統(tǒng),包括:
信息監(jiān)聽(tīng)模塊,用于對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息;
信息判斷模塊,用于判斷所述多路徑IO實(shí)時(shí)信息中是否包含用于指示所述多路徑IO發(fā)生錯(cuò)誤事件的信息;
信息提取模塊,用于當(dāng)所述信息判斷模塊判定所述多路徑IO實(shí)時(shí)信息中包含用于指示所述多路徑IO發(fā)生錯(cuò)誤事件的信息,則從所述多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息;
信息存儲(chǔ)模塊,用于將所述錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
優(yōu)選的,所述信息監(jiān)聽(tīng)模塊包括:
信息監(jiān)聽(tīng)單元,用于建立用于監(jiān)聽(tīng)uevent的socket,得到相應(yīng)的uevent實(shí)時(shí)信息;
信息提取單元,用于從所述uevent實(shí)時(shí)信息中提取出與所述多路徑IO對(duì)應(yīng)的信息,得到所述多路徑IO實(shí)時(shí)信息。
優(yōu)選的,所述多路徑IO錯(cuò)誤事件收集系統(tǒng),還包括:
警報(bào)模塊,用于當(dāng)所述信息判斷模塊判斷出所述多路徑IO實(shí)時(shí)信息中包含用于指示所述多路徑IO發(fā)生錯(cuò)誤事件的信息,則生成相應(yīng)的報(bào)警信息。
本發(fā)明中,多路徑IO錯(cuò)誤事件收集方法包括:對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息;判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則從多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息;將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中??梢?jiàn),本發(fā)明通過(guò)對(duì)多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),以得到多路徑IO實(shí)時(shí)信息,并判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則提取相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息,然后將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的數(shù)據(jù)庫(kù)中,由此實(shí)現(xiàn)了及時(shí)收集多路徑IO上產(chǎn)生的錯(cuò)誤事件信息的目的。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開(kāi)的一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法流程圖;
圖2為本發(fā)明實(shí)施例公開(kāi)的一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開(kāi)了一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法,參見(jiàn)圖1所示,該方法包括:
步驟S11:對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息。
步驟S12:判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則從多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息。
需要說(shuō)明的是,上述用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息包括但不限于多路徑IO失效事件以及多路徑IO重載事件。
步驟S13:將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
本發(fā)明實(shí)施例中,多路徑IO錯(cuò)誤事件收集方法包括:對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息;判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則從多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息;將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。可見(jiàn),本發(fā)明實(shí)施例通過(guò)對(duì)多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),以得到多路徑IO實(shí)時(shí)信息,并判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則提取相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息,然后將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的數(shù)據(jù)庫(kù)中,由此實(shí)現(xiàn)了及時(shí)收集多路徑IO上產(chǎn)生的錯(cuò)誤事件信息的目的。
本發(fā)明實(shí)施例公開(kāi)了一種具體的Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法,相對(duì)于上一實(shí)施例,本實(shí)施例對(duì)技術(shù)方案作了進(jìn)一步的說(shuō)明和優(yōu)化。具體的:
上一實(shí)施例步驟S11中,對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息的過(guò)程,具體包括下面步驟S111和步驟S112;其中:
步驟S111:建立用于監(jiān)聽(tīng)uevent的socket,得到相應(yīng)的uevent實(shí)時(shí)信息;
步驟S112:從uevent實(shí)時(shí)信息中提取出與多路徑IO對(duì)應(yīng)的信息,得到多路徑IO實(shí)時(shí)信息。
其中,上述多路徑IO實(shí)時(shí)信息具體可以包括與多路徑IO對(duì)應(yīng)的DM_NAME字段、DEVPATH字段、DM_PATH字段以及DM_NR_VALID_PATHS字段。
本實(shí)施例中,多路徑IO發(fā)生的錯(cuò)誤事件包括多路徑IO失效事件以及多路徑IO重載事件。
另外,上一實(shí)施例步驟S13中,將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中的過(guò)程,包括下面步驟S131和步驟S132;其中,:
步驟S131:將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至文件格式與預(yù)設(shè)文件格式相一致的目標(biāo)文件;
步驟S132:將目標(biāo)文件存儲(chǔ)至錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
具體的,上述目標(biāo)文件的文件名的生成過(guò)程,可以包括:從錯(cuò)誤事件實(shí)時(shí)信息中提取出用于概括相應(yīng)錯(cuò)誤事件的關(guān)鍵詞,然后根據(jù)關(guān)鍵詞生成目標(biāo)文件的文件名。
進(jìn)一步的,本實(shí)施例中的多路徑IO錯(cuò)誤事件收集方法,還可以包括:若判斷出多路徑IO實(shí)時(shí)信息中包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,則生成相應(yīng)的報(bào)警信息。
相應(yīng)的,本發(fā)明實(shí)施例還公開(kāi)了一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集系統(tǒng),參見(jiàn)圖2所示,該系統(tǒng)包括:
信息監(jiān)聽(tīng)模塊21,用于對(duì)Linux系統(tǒng)的多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),得到相應(yīng)的多路徑IO實(shí)時(shí)信息;
信息判斷模塊22,用于判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息;
信息提取模塊23,用于當(dāng)信息判斷模塊22判定多路徑IO實(shí)時(shí)信息中包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,則從多路徑IO實(shí)時(shí)信息中提取出相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息;
信息存儲(chǔ)模塊24,用于將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
可見(jiàn),本發(fā)明實(shí)施例通過(guò)對(duì)多路徑IO進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),以得到多路徑IO實(shí)時(shí)信息,并判斷多路徑IO實(shí)時(shí)信息中是否包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,如果有,則提取相應(yīng)的錯(cuò)誤事件實(shí)時(shí)信息,然后將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至預(yù)設(shè)的數(shù)據(jù)庫(kù)中,由此實(shí)現(xiàn)了及時(shí)收集多路徑IO上產(chǎn)生的錯(cuò)誤事件信息的目的。
本發(fā)明實(shí)施例公開(kāi)了一種具體的Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集系統(tǒng),相對(duì)于上一實(shí)施例,本實(shí)施例對(duì)技術(shù)方案作了進(jìn)一步的說(shuō)明和優(yōu)化。具體的:
上一實(shí)施例中的信息監(jiān)聽(tīng)模塊,具體可以包括信息監(jiān)聽(tīng)單元和信息提取單元;其中:
信息監(jiān)聽(tīng)單元,用于建立用于監(jiān)聽(tīng)uevent的socket,得到相應(yīng)的uevent實(shí)時(shí)信息;
信息提取單元,用于從uevent實(shí)時(shí)信息中提取出與多路徑IO對(duì)應(yīng)的信息,得到多路徑IO實(shí)時(shí)信息。
其中,上述多路徑IO實(shí)時(shí)信息具體可以包括與多路徑IO對(duì)應(yīng)的DM_NAME字段、DEVPATH字段、DM_PATH字段以及DM_NR_VALID_PATHS字段。
本實(shí)施例中,多路徑IO發(fā)生的錯(cuò)誤事件包括多路徑IO失效事件以及多路徑IO重載事件。
另外,上一實(shí)施例中的信息存儲(chǔ)模塊具體可以用于將錯(cuò)誤事件實(shí)時(shí)信息存儲(chǔ)至文件格式與預(yù)設(shè)文件格式相一致的目標(biāo)文件,然后將目標(biāo)文件存儲(chǔ)至錯(cuò)誤事件信息數(shù)據(jù)庫(kù)中。
可以理解的是,上述信息存儲(chǔ)模塊需要包括文件名生成單元,用于從錯(cuò)誤事件實(shí)時(shí)信息中提取出用于概括相應(yīng)錯(cuò)誤事件的關(guān)鍵詞,然后根據(jù)關(guān)鍵詞生成目標(biāo)文件的文件名。
進(jìn)一步的,本實(shí)施例公開(kāi)的多路徑IO錯(cuò)誤事件收集系統(tǒng),還可以包括:
警報(bào)模塊,用于當(dāng)信息判斷模塊判斷出多路徑IO實(shí)時(shí)信息中包含用于指示多路徑IO發(fā)生錯(cuò)誤事件的信息,則生成相應(yīng)的報(bào)警信息。
最后,還需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明所提供的一種Linux系統(tǒng)的多路徑IO錯(cuò)誤事件收集方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。