本技術(shù)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及故障識別、裝置以及相關(guān)設(shè)備。
背景技術(shù):
1、電子設(shè)備在使用的過程中,可能會出現(xiàn)慢盤故障或者慢鏈路故障,影響通信效果。慢盤是指因?yàn)橛脖P內(nèi)部固件版本(firmware,fw)或者介質(zhì)問題,導(dǎo)致硬盤對輸入輸出(input/output,io)訪問的時(shí)延升高。慢鏈路是指在硬盤本身正常的情況下,陣列與盤之間的磁盤陣列卡或者鏈路鏈接出現(xiàn)問題,導(dǎo)致硬盤io操作在鏈路傳輸上的時(shí)延升高。慢盤和慢鏈路問題都會影響陣列返回給服務(wù)器的業(yè)務(wù),導(dǎo)致卡頓或者中斷。因此,如何識別慢盤或者慢鏈路成為了亟需解決的問題。
2、現(xiàn)有的故障識別方法中,存在對慢盤或者慢鏈路識別不準(zhǔn)確的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種故障識別方法、裝置以及相關(guān)設(shè)備,在故障識別方法中,存儲設(shè)備的第一控制器獲取的是第一硬盤統(tǒng)計(jì)的第一io參數(shù),并基于第一io參數(shù),確定第一硬盤或者第一控制器與第一硬盤之間的鏈路是否故障。由于第一控制器用來進(jìn)行故障識別的依據(jù)是由第一硬盤統(tǒng)計(jì)的,相較于傳統(tǒng)方式中,在第一硬盤側(cè)統(tǒng)計(jì)的數(shù)據(jù)并不會受到驅(qū)動、硬件、業(yè)務(wù)壓力不均等影響,用于進(jìn)行故障識別的參數(shù)更加準(zhǔn)確,從而提升了故障識別的準(zhǔn)確度。
2、本技術(shù)第一方面提供了一種故障識別方法,該方法應(yīng)用于存儲設(shè)備的第一控制器。存儲設(shè)備還包括了第一硬盤,并且第一硬盤與第一控制器相連接。第一硬盤對自身執(zhí)行io操作進(jìn)行統(tǒng)計(jì),得到第一io參數(shù),第一io參數(shù)指示的是第一硬盤執(zhí)行的io操作的屬性信息。第一硬盤還會將第一io參數(shù)發(fā)送給第一控制器。第一控制器獲取第一io參數(shù),并根據(jù)第一io參數(shù),進(jìn)行故障識別。具體來說,是確定第一硬盤是否故障,或者第一硬盤與第一控制器之間的鏈路是否故障。
3、從以上技術(shù)方案可以看出,本技術(shù)具有以下優(yōu)點(diǎn):第一控制器用來進(jìn)行故障識別的依據(jù)是由第一硬盤統(tǒng)計(jì)的,相較于傳統(tǒng)方式中,在第一硬盤側(cè)統(tǒng)計(jì)的數(shù)據(jù)并不會受到驅(qū)動、硬件、業(yè)務(wù)壓力不均等影響,用于進(jìn)行故障識別的參數(shù)更加準(zhǔn)確,從而提升了故障識別的準(zhǔn)確度。
4、在第一方面的一種可能的實(shí)現(xiàn)方式中,第一io參數(shù)包括第一硬盤統(tǒng)計(jì)的第一io時(shí)延,第一io時(shí)延為第一硬盤在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第一io時(shí)延為第一硬盤對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。其中,io時(shí)延的分布區(qū)間有多種情況,既可以是基于時(shí)延的時(shí)長劃分的區(qū)間,也可以是從多個(gè)維度劃分的區(qū)間,例如時(shí)延的時(shí)長區(qū)間維度和時(shí)延對應(yīng)的io操作的數(shù)據(jù)量維度,具體此處不做限定。
5、本技術(shù)中,第一io參數(shù)所包括的第一io時(shí)延有多種情況,豐富了本技術(shù)技術(shù)方案的實(shí)現(xiàn)方式和應(yīng)用場景。另外,在第一io時(shí)延是對第一硬盤在第一時(shí)間段內(nèi)統(tǒng)計(jì)的時(shí)延按照分布區(qū)間進(jìn)行加權(quán)計(jì)算得到的情況下,第一io時(shí)延更能反映實(shí)際的時(shí)延信息,也就是說,對于時(shí)延的統(tǒng)計(jì)更加準(zhǔn)確,進(jìn)一步提升了故障識別的準(zhǔn)確度。
6、在第一方面的一種可能的實(shí)現(xiàn)方式中,第一控制器根據(jù)第一io參數(shù),確定是否存在故障,具體可以是比較第一io時(shí)延與第一基準(zhǔn)時(shí)延。如果第一io時(shí)延大于第一基準(zhǔn)時(shí)延,說明時(shí)延過高,則確定第一硬盤故障。其中,第一基準(zhǔn)時(shí)延指示的是時(shí)延的臨界值,超過這個(gè)值就認(rèn)為時(shí)延過高,低于這個(gè)值認(rèn)為時(shí)延處于正常范圍。第一基準(zhǔn)時(shí)延可以是人為設(shè)定的,也可以是正常工作的第一硬盤對自身的io操作統(tǒng)計(jì)后確定的;不同的業(yè)務(wù)模型所對應(yīng)的基準(zhǔn)時(shí)延可以相同,也可以不同,具體此處不做限定。
7、在第一方面的一種可能的實(shí)現(xiàn)方式中,第一控制器除了可以基于io時(shí)延,確定第一硬盤是否故障之外,還可以結(jié)合第一硬盤的檢測結(jié)果確定第一硬盤是否故障。具體來說,第一硬盤會對在第二時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延與第一基準(zhǔn)時(shí)延進(jìn)行比較,以得到第一硬盤的檢測結(jié)果。如果該io時(shí)延大于第一基準(zhǔn)時(shí)延,那么第一硬盤自檢為慢盤。第一控制器獲取來自于第一硬盤的第一io參數(shù),包括獲取來自于第一硬盤的檢測結(jié)果,該檢測結(jié)果指示了第一硬盤的自檢結(jié)果。如果第一檢測結(jié)果指示第一硬盤自檢為慢盤,為了避免偶發(fā)情況導(dǎo)致的故障識別不準(zhǔn),第一控制器會獲取在第一時(shí)間段內(nèi),來自于第一硬盤的多次檢測結(jié)果。再根據(jù)多次檢測結(jié)果,統(tǒng)計(jì)第一硬盤在第一時(shí)間段內(nèi)自檢為慢盤的比例,再根據(jù)該比例確定第一硬盤是否故障。如果該比例大于預(yù)設(shè)閾值,則確定第一硬盤故障。其中,第一時(shí)間段為第一控制器的檢測時(shí)長,大于第二時(shí)間段。換句話說,第一硬盤是在較短檢測周期(即第二時(shí)間段)內(nèi)檢測自身是否為慢盤,并將檢測結(jié)果發(fā)送給第一控制器。在第一硬盤自檢為慢盤的情況下,第一控制器會判斷在第一控制器的檢測周期(即第一時(shí)間段)內(nèi),第一硬盤自檢為慢盤的時(shí)間段所占據(jù)的比例,從而避免偶發(fā)情況或者第一硬盤誤檢帶來的影響,使得故障識別更加準(zhǔn)確。
8、本技術(shù)中,第一控制器確定第一硬盤是否故障的方式有多種,能夠根據(jù)實(shí)際應(yīng)用的需要選擇合適的方式,提升了技術(shù)方案的實(shí)用性。另外,在第一控制器結(jié)合第一硬盤的檢測結(jié)果去判斷第一硬盤是否故障的方案中,也避免了偶發(fā)情況或者第一硬盤誤檢帶來的影響,使得故障識別更加準(zhǔn)確,進(jìn)一步提升了技術(shù)方案的準(zhǔn)確性。
9、在第一方面的一種可能的實(shí)現(xiàn)方式中,在獲取來自于第一硬盤的第一io參數(shù)之前,第一控制器會向第一硬盤發(fā)送第二時(shí)間段和第一基準(zhǔn)時(shí)延,第二時(shí)間段指示第一硬盤統(tǒng)計(jì)第一硬盤的io時(shí)延的時(shí)長。其中,第二時(shí)間段的時(shí)長小于第一控制器的檢測時(shí)長,也即小于第一時(shí)間段的時(shí)長。
10、在第一方面的一種可能的實(shí)現(xiàn)方式中,第一控制器還會在第一控制器側(cè)統(tǒng)計(jì)第一硬盤的第二io參數(shù)。根據(jù)第一io參數(shù),確定是否存在故障,包括:根據(jù)第一io參數(shù),確定第一硬盤是否故障。在確定第一硬盤是否故障之后,第一控制器會根據(jù)第一io參數(shù)和第二io參數(shù),確定第一硬盤與第一控制器之間的鏈路是否存在故障。先檢測第一硬盤是否故障,是因?yàn)樵谟脖P故障的情況下,會導(dǎo)致硬盤對應(yīng)的鏈路的時(shí)延開銷增加,如果不排除硬盤故障的原因就對硬盤對應(yīng)的鏈路進(jìn)行檢測的話,會導(dǎo)致對鏈路時(shí)延開銷的判斷不準(zhǔn)確,進(jìn)一步導(dǎo)致故障識別不準(zhǔn)確。
11、本技術(shù)中,先檢測硬盤是否故障,再檢測控制器與硬盤之間的鏈路是否故障,能夠排除硬盤故障對鏈路的時(shí)延開銷造成的影響,使得對于硬盤與控制器之間的鏈路的故障識別更加準(zhǔn)確。
12、在第一方面的一種可能的實(shí)現(xiàn)方式中,第二io參數(shù)包括第一控制器統(tǒng)計(jì)的第二io時(shí)延,第二io時(shí)延為第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第二io時(shí)延為第一控制器對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。
13、本技術(shù)中,在第一控制器統(tǒng)計(jì)的第二io時(shí)延,與在第一硬盤統(tǒng)計(jì)的第一io時(shí)延類似,都有多種情況,豐富了本技術(shù)技術(shù)方案的實(shí)現(xiàn)方式和應(yīng)用場景。另外,在第二io時(shí)延是對第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)的時(shí)延按照分布區(qū)間進(jìn)行加權(quán)計(jì)算得到的情況下,第二io時(shí)延更能反映實(shí)際的時(shí)延信息,也就是說,對于時(shí)延的統(tǒng)計(jì)更加準(zhǔn)確,進(jìn)一步提升了故障識別的準(zhǔn)確度。
14、在第一方面的一種可能的實(shí)現(xiàn)方式中,根據(jù)第一io參數(shù)和第二io參數(shù),確定第一硬盤與第一控制器之間的鏈路是否存在故障,包括:如果第一io時(shí)延與第二io時(shí)延的差值,大于第二基準(zhǔn)時(shí)延,那么第一控制器確定第一控制器與第一硬盤之間的鏈路故障。其中,第一時(shí)延與第二時(shí)延的開銷指示的是,第一控制器與第一硬盤之間的鏈路的時(shí)延開銷。第二基準(zhǔn)時(shí)延指示的是鏈路的時(shí)延開銷的臨界值,超過這個(gè)值就認(rèn)為鏈路的時(shí)延開銷過高,低于這個(gè)值認(rèn)為鏈路的時(shí)延開銷處于正常范圍。第二基準(zhǔn)時(shí)延可以是人為設(shè)定的,也可以是正常工作的第一硬盤對自身的io操作統(tǒng)計(jì)后確定的;不同的業(yè)務(wù)模型所對應(yīng)的基準(zhǔn)時(shí)延可以相同,也可以不同;第一基準(zhǔn)時(shí)延可以與第二基準(zhǔn)時(shí)延相同,也可以不同,具體此處不做限定。
15、本技術(shù)中,不僅獲取第一硬盤自身統(tǒng)計(jì)的第一io參數(shù),還在第一控制器側(cè)統(tǒng)計(jì)第一硬盤的第二io參數(shù),綜合考慮了控制器側(cè)和硬盤側(cè)的統(tǒng)計(jì)結(jié)果,去識別慢鏈路故障,判斷依據(jù)更全面,使得故障識別的準(zhǔn)確度也得到了提高。
16、在第一方面的一種可能的實(shí)現(xiàn)方式中,存儲設(shè)備還包括第二硬盤,第一控制器與第二硬盤相連。也就是說,第一控制器連接了第一硬盤和第二硬盤,構(gòu)成“一控多盤”的應(yīng)用場景。第一控制器能夠獲取第二硬盤的第三io參數(shù)和第四io參數(shù),第三io參數(shù)由第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)得到,第四io參數(shù)由第二硬盤在第一時(shí)間段內(nèi)統(tǒng)計(jì)得到。并且第三io參數(shù)包括第三io時(shí)延,第四io參數(shù)包括第四io時(shí)延。其中,第三io時(shí)延為第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第三io時(shí)延為第一控制器對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。第四io時(shí)延為第二硬盤在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第四io時(shí)延為第二硬盤對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。如果若第三io時(shí)延與第四io時(shí)延的差值,大于第一io時(shí)延與第二io時(shí)延的差值,也即如果第一控制器與第二硬盤之間鏈路的時(shí)延開銷,大于第一控制器與第二硬盤之間的鏈路的時(shí)延開銷,則第一控制器確定第一控制器與第二硬盤之間的鏈路故障。
17、本技術(shù)中,識別鏈路的故障的方式有多種可能,不僅可以通過對比一條鏈路的時(shí)延開銷與基準(zhǔn)時(shí)延進(jìn)行識別,也可以對比多條鏈路的時(shí)延開銷來確定是否存在故障鏈路??梢造`活適用不同的場景,豐富了本技術(shù)技術(shù)方案的實(shí)現(xiàn)方式。
18、在第一方面的一種可能的實(shí)現(xiàn)方式中,存儲設(shè)備還包括第二控制器,第二控制器與第一硬盤相連。第一控制器、第二控制器和第一硬盤構(gòu)成了“一盤多控”場景。第二控制器還與第一控制器相連,第二控制器會在第二控制器側(cè)對第一硬盤的io參數(shù)進(jìn)行統(tǒng)計(jì),并發(fā)送給第一控制器。由第一控制器確定第一控制器與第一硬盤之間的鏈路和第二控制器與第一硬盤之間的鏈路中,是否存在故障鏈路。也就是說,第一控制器可以獲取第二控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)的第一硬盤的第五io參數(shù),第五io參數(shù)包括第五io時(shí)延。若第五io時(shí)延與第二io時(shí)延的差值,大于第一io時(shí)延與第二io時(shí)延的差值,則確定第二控制器與第一硬盤之間的鏈路為慢鏈路。
19、本技術(shù)中,第一控制器還可以對一個(gè)硬盤對應(yīng)的多條鏈路進(jìn)行故障識別,進(jìn)一步豐富了本技術(shù)技術(shù)方案的應(yīng)用場景,提升了本技術(shù)技術(shù)方案的實(shí)用性。
20、本技術(shù)第二方面提供了一種存儲系統(tǒng),包括相連的第一控制器和第一硬盤。
21、第一硬盤,用于統(tǒng)計(jì)第一硬盤的第一io參數(shù),第一io參數(shù)指示第一硬盤執(zhí)行的io操作的屬性信息。
22、第一控制器,用于獲取來自于第一硬盤的第一io參數(shù)。根據(jù)第一io參數(shù),確定是否存在故障,故障包括第一硬盤的故障,或者,第一硬盤與第一控制器之間的鏈路故障。
23、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一io參數(shù)包括第一硬盤統(tǒng)計(jì)的第一io時(shí)延,第一io時(shí)延為第一硬盤在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第一io時(shí)延為第一硬盤對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。
24、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一控制器,用于若第一io時(shí)延大于第一基準(zhǔn)時(shí)延,則確定第一硬盤故障。
25、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一硬盤,用于根據(jù)第一硬盤在第二時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延與第一基準(zhǔn)時(shí)延的比較確定檢測結(jié)果,檢測結(jié)果指示第一硬盤自檢的結(jié)果。
26、第一控制器,用于獲取來自于第一硬盤的檢測結(jié)果。若檢測結(jié)果指示第一硬盤自檢為慢盤,則第一控制器統(tǒng)計(jì)在第一時(shí)間段中,第一硬盤自檢為慢盤的時(shí)間段所占的比例,第一時(shí)間段為第一控制器的檢測時(shí)長。若比例大于預(yù)設(shè)閾值,則確定第一硬盤故障。
27、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一控制器,用于向第一硬盤發(fā)送第二時(shí)間段和第一基準(zhǔn)時(shí)延,第二時(shí)間段指示第一硬盤統(tǒng)計(jì)第一硬盤的io時(shí)延的時(shí)長。第一硬盤,用于接收第二時(shí)間段和第一基準(zhǔn)時(shí)延。
28、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一控制器,用于在第一控制器側(cè)統(tǒng)計(jì)第一硬盤的第二io參數(shù)。根據(jù)第一io參數(shù),確定第一硬盤是否故障。在確定第一硬盤是否故障之后,根據(jù)第一io參數(shù)和第二io參數(shù),確定第一硬盤與第一控制器之間的鏈路是否存在故障。
29、在第二方面的一種可能的實(shí)現(xiàn)方式中,第二io參數(shù)包括第一控制器統(tǒng)計(jì)的第二io時(shí)延,第二io時(shí)延為第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延的均值,或者,第二io時(shí)延為第一控制器對在第一時(shí)間段內(nèi)統(tǒng)計(jì)的io時(shí)延基于分布區(qū)間加權(quán)計(jì)算得到的時(shí)延。
30、在第二方面的一種可能的實(shí)現(xiàn)方式中,第一控制器,用于若第一io時(shí)延與第二io時(shí)延的差值,大于第二基準(zhǔn)時(shí)延,則確定第一控制器與第一硬盤之間的鏈路故障。
31、在第二方面的一種可能的實(shí)現(xiàn)方式中,存儲設(shè)備還包括第二硬盤,第一控制器與第二硬盤相連。第二硬盤,用于在第一時(shí)間段內(nèi)統(tǒng)計(jì)第二硬盤的第四io參數(shù),第四io參數(shù)包括第四io時(shí)延。將第四io參數(shù)發(fā)送給第一控制器。
32、第一控制器,用于獲取第二硬盤的第三io參數(shù)和第四io參數(shù),第三io參數(shù)第一控制器在第一時(shí)間段內(nèi)統(tǒng)計(jì)得到,且第三io參數(shù)包括第三io時(shí)延。若第三io時(shí)延與第四io時(shí)延的差值,大于第一io時(shí)延與第二io時(shí)延的差值,則確定第一控制器與第二硬盤之間的鏈路故障。
33、在第二方面的一種可能的實(shí)現(xiàn)方式中,存儲設(shè)備還包括第二控制器,第二控制器與第一硬盤相連。第二控制器,用于在第一時(shí)間段內(nèi)統(tǒng)計(jì)的第一硬盤的第五io參數(shù),第五io參數(shù)包括第五io時(shí)延。
34、第一控制器,用于獲取第五io參數(shù)。若第五io時(shí)延與第二io時(shí)延的差值,大于第一io時(shí)延與第二io時(shí)延的差值,則確定第二控制器與第一硬盤之間的鏈路為慢鏈路。
35、第二方面以及第二方面任一種實(shí)現(xiàn)方式所示的有益效果,與第一方面以及第一方面任一種實(shí)現(xiàn)方式所示的有益效果類似,此處不再贅述。
36、本技術(shù)第三方面提供了一種故障識別裝置,其特征在于,故障識別裝置為第一控制器,包括:
37、收發(fā)單元,用于獲取來自于第一硬盤的第一輸入輸出io參數(shù),第一io參數(shù)指示第一硬盤執(zhí)行的io操作的屬性信息,且第一io參數(shù)為第一硬盤統(tǒng)計(jì)確定的。
38、處理單元,用于根據(jù)第一io參數(shù),確定是否存在故障,故障包括第一硬盤的故障,或者,第一硬盤與第一控制器之間的鏈路故障。
39、故障識別裝置用于實(shí)現(xiàn)前述第一方面,以及第一方面任一種實(shí)現(xiàn)方式所示的方法,此處不再贅述。
40、本技術(shù)第四方面提供了一種故障識別裝置,包括處理器和存儲器,處理器存儲指令,當(dāng)存儲在存儲器上的指令在處理器上運(yùn)行時(shí),實(shí)現(xiàn)前述第一方面以及第一方面的任一種可能的實(shí)現(xiàn)方式所示的方法。
41、本技術(shù)第五方面提供了一種計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)中保存有指令,當(dāng)指令在處理器上運(yùn)行時(shí),實(shí)現(xiàn)第一方面以及第一方面的任一種可能的實(shí)現(xiàn)方式所示的方法。
42、本技術(shù)第六方面提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在處理器上執(zhí)行時(shí),實(shí)現(xiàn)第一方面以及第一方面的任一種可能的實(shí)現(xiàn)方式所示的方法。
43、第三方面至第六方面中任一方面所示的有益效果與第一方面以及第一方面任一種可能的實(shí)現(xiàn)方式類似,此處不再贅述。