專利名稱:基于raid卡日志的硬盤的故障定位方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種基于raid卡日志的硬盤的故障定位方法及裝置。
背景技術(shù):
針對(duì)企業(yè)服務(wù)器中使用的LSI (Large-scale integration,大規(guī)模集成電路)型raid (Redundant Arrays of Inexpensive Disks,磁盤陣列)卡硬盤的故障檢測,現(xiàn)有技術(shù)利用raid卡廠商提供的庫或者工具,讀取raid卡下各硬盤/SSD(Solid State Disk,固態(tài)硬盤)的狀態(tài),以及故障計(jì)數(shù);當(dāng)硬盤狀態(tài)不正常,或者故障計(jì)數(shù)超過閾值的時(shí)候,觸發(fā)故障報(bào)警,然而當(dāng)硬盤/SSD嚴(yán)重故障,導(dǎo)致raid卡系統(tǒng)已無法識(shí)別時(shí),raid卡控制器會(huì)把相應(yīng)盤踢除出raid陣列,不再記錄此盤任何相關(guān)的狀態(tài)和故障信息,因此會(huì)導(dǎo)致現(xiàn)有的技術(shù)手段對(duì)已經(jīng)發(fā)生物理掉盤的硬盤的故障漏報(bào)。
發(fā)明內(nèi)容
本發(fā)明旨在至少解決上述技術(shù)問題之一。為此,本發(fā)明的一個(gè)目的在于提出一種能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且可以大幅度提高硬盤監(jiān)控和檢測的準(zhǔn)確度,提高服務(wù)器運(yùn)維效率的基于raid卡日志的硬盤故障定位方法。本發(fā)明的另一目的在于提出一種基于raid卡日志的硬盤故障定位裝置。為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面的實(shí)施例提出了一種基于raid卡日志的硬盤的故障定位方法,其中,在磁盤陣列raid卡和服務(wù)器之間設(shè)置異步實(shí)時(shí)推送接口,且所述服務(wù)器中設(shè)置有異步事件處理引擎,所述硬盤故障定位方法包括如下步驟:所述raid卡通過所述異步實(shí)時(shí)推送接口將raid卡日志實(shí)時(shí)推送至所述異步事件處理引擎;監(jiān)測工具分析硬盤的當(dāng)前狀態(tài),如果所述硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線off line狀態(tài),則判斷所述硬盤出現(xiàn)故障;在判斷所述硬盤出現(xiàn)故障時(shí),所述異步事件處理引擎對(duì)所述raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將所述與掉盤相關(guān)的日志信息推送至所述服務(wù)器的內(nèi)存以生成本地raid卡日志;所述監(jiān)測工具在所述本地raid卡日志中抓取所述磁盤的物理盤的多條變遷事件記錄,并根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài);以及所述監(jiān)測工具將所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)不匹配,則判斷所述硬盤的物理盤發(fā)生掉盤。根據(jù)本發(fā)明實(shí)施例的基于raid卡日志的硬盤的故障定位方法,結(jié)合硬盤當(dāng)前的運(yùn)行健康信息和分析raid卡的日志,能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且大幅度提高了硬盤監(jiān)控和檢測的準(zhǔn)確度,提高了服務(wù)器的運(yùn)維效率。另外,根據(jù)本發(fā)明上述實(shí)施例的基于raid卡日志的硬盤的故障定位方法還可以具有如下附加的技術(shù)特征:在本發(fā)明的實(shí)施例中,如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配,則判斷所述硬盤發(fā)生故障。在本發(fā)明的實(shí)施例中,所述異步事件處理引擎在獲得所述與掉盤相關(guān)的日志信息后,還包括如下步驟:對(duì)所述與掉盤相關(guān)的日志信息進(jìn)行格式化處理,將格式化處理后的日志信息推送至所述服務(wù)器的內(nèi)存。在本發(fā)明的實(shí)施例中,所述變遷事件記錄所述硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài)、故障狀態(tài)變遷到正常狀態(tài)、故障狀態(tài)變遷到異常狀態(tài)。在本發(fā)明的實(shí)施例中,所述根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài),包括如下步驟:對(duì)多條所述變遷事件記錄的時(shí)間進(jìn)行分析,獲取最后時(shí)間的一條變遷事件記錄,得到所述硬盤的最終狀態(tài)。本發(fā)明第二方面的實(shí)施例還提出了一種基于raid卡日志的硬盤的故障定位裝置,包括:監(jiān)測工具、raid卡、服務(wù)器和異步實(shí)時(shí)推送接口,其中所述異步實(shí)時(shí)推送接口位于所述raid卡和所述服務(wù)器之間,所述raid卡用于通過所述異步實(shí)時(shí)推送接口將raid卡日志實(shí)時(shí)推送至所述服務(wù)器;所述服務(wù)器包括異步事件處理引擎,所述異步事件處理引擎用于通過所述異步實(shí)時(shí)推送接口接收所述raid卡日志,并在所述硬盤出現(xiàn)故障時(shí),對(duì)所述raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將所述與掉盤相關(guān)的日志信息推送至所述服務(wù)器的內(nèi)存以生成本地raid卡日志;所述監(jiān)測工具用于分析硬盤的當(dāng)前狀態(tài),如果所述硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線offline狀態(tài),則判斷所述硬盤出現(xiàn)故障,并在所述本地raid卡日志中抓取所述磁盤的物理盤的多條變遷事件記錄,并根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài),以及將所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)不匹配,則判斷所述硬盤的物理盤發(fā)生掉盤。根據(jù)本發(fā)明實(shí)施例的基于raid卡日志的硬盤的故障定位裝置,結(jié)合硬盤當(dāng)前的運(yùn)行健康信息和分析raid卡的日志,能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且大幅度提高了硬盤監(jiān)控和檢測的準(zhǔn)確度,提高了服務(wù)器的運(yùn)維效率。另外,根據(jù)本發(fā)明上述實(shí)施例的基于raid卡日志的硬盤的故障定位裝置還可以具有如下附加的技術(shù)特征:在本發(fā)明的實(shí)施例中,所述監(jiān)測工具在監(jiān)測到所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配時(shí),判斷所述硬盤發(fā)生故障。在本發(fā)明的實(shí)施例中,所述異步事件處理引擎還用于對(duì)所述與掉盤相關(guān)的日志信息進(jìn)行格式化處理,將格式化處理后的日志信息推送至所述服務(wù)器的內(nèi)存。在本發(fā)明的實(shí)施例中,所述變遷事件記錄所述硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài)、故障狀態(tài)變遷到正常狀態(tài)、故障狀態(tài)變遷到異常狀態(tài)。在本發(fā)明的實(shí)施例中,所述監(jiān)測工具對(duì)多條所述變遷事件記錄的時(shí)間進(jìn)行分析,獲取最后時(shí)間的一條變遷事件記錄,得到所述硬盤的最終狀態(tài)。本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1為根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的流程圖;圖2為根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的raid卡異步事件推送示意圖;圖3為根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的raid卡異步事件推送框架;圖4為根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的raid卡日志中一條物理盤狀態(tài)變化記錄示意圖;圖5為根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的流程圖;和圖6為根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。以下結(jié)合附圖1-5詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的基于raid卡日志的硬盤的故障定位方法。如圖1所示,根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法,其中,在磁盤陣列raid卡和服務(wù)器之間設(shè)置異步實(shí)時(shí)推送接口,且服務(wù)器中設(shè)置有異步事件處理引擎,該方法包括以下步驟:步驟SlOl, raid卡通過異步實(shí)時(shí)推送接口將raid卡日志實(shí)時(shí)推送至服務(wù)器中的異步事件處理引擎。具體而言,raid卡的完整日志記錄了 raid卡發(fā)生的所有事件信息,包括事件在日志中的編號(hào),發(fā)生時(shí)間,事件描述和事件數(shù)據(jù)等信息。采用異步通信機(jī)制實(shí)現(xiàn)服務(wù)器本地與raid卡控制器的實(shí)時(shí)通信,一旦raid卡有事件發(fā)生,raid卡控制器在其存儲(chǔ)器中存儲(chǔ)時(shí)間日志的同時(shí),利用異步事件推送接口推送給運(yùn)行在服務(wù)器中的異步事件處理引擎,異步事件處理引擎對(duì)事件信息進(jìn)行分析處理。步驟S102,監(jiān)測工具分析硬盤的當(dāng)前狀態(tài),如果硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線offline狀態(tài),則判斷硬盤出現(xiàn)故障。具體地,硬盤的邏輯盤狀態(tài)有optimal, degraded和off line三種狀態(tài),分別反映當(dāng)前raid卡邏輯盤的正常、降級(jí)和下線狀態(tài),換言之,上述三種狀態(tài)可以理解為對(duì)應(yīng)正常和故障兩種狀態(tài)。當(dāng)監(jiān)測工具監(jiān)測到邏輯盤出現(xiàn)degraded或者offline狀態(tài),則判定邏輯盤對(duì)應(yīng)的物理盤出現(xiàn)故障。其中,監(jiān)測工具為但不限于MegaCli工具。步驟S103,在判斷硬盤出現(xiàn)故障時(shí),異步事件處理弓丨擎對(duì)raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將與掉盤相關(guān)的日志信息推送至服務(wù)器的內(nèi)存以生成本地raid卡日志。具體地,在異步事件處理引擎獲得與掉盤相關(guān)的日志信息之后,對(duì)該與掉盤相關(guān)的日志信息進(jìn)行分析、過濾和格式化處理,并將格式化處理后的日志信息推送至服務(wù)器的內(nèi)存,以便生成本地raid卡日志,方便實(shí)時(shí)的查詢和實(shí)時(shí)推送,達(dá)到對(duì)服務(wù)器性能的零影響的同時(shí),做到對(duì)關(guān)鍵信息的實(shí)時(shí)獲取。步驟S104,監(jiān)測工具在本地raid卡日志中抓取磁盤的物理盤的多條變遷事件記錄,并根據(jù)多條變遷事件記錄獲取硬盤的最終狀態(tài)。具體地,變遷事件記錄硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài)、故障狀態(tài)變遷到正常狀態(tài)和故障狀態(tài)變遷到異常狀態(tài)。而根據(jù)多條變遷事件記錄獲取硬盤的最終狀態(tài)具體的步驟為:對(duì)多條變遷事件記錄的時(shí)間進(jìn)行分析,獲取最后時(shí)間的一條變遷事件記錄,得到硬盤的最終狀態(tài)。步驟S105,監(jiān)測工具將硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果硬盤的當(dāng)期狀態(tài)和最終狀態(tài)不匹配,則判斷硬盤的物理盤發(fā)生掉盤。進(jìn)一步地,如果硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配,則判斷硬盤發(fā)生故障。raid卡上有一塊flash,用于永久儲(chǔ)存運(yùn)行時(shí)的各種log,掉電時(shí)也不會(huì)丟失;raid卡運(yùn)行過程中發(fā)生的事件,包括出現(xiàn)任何掉盤的情況,相應(yīng)的狀態(tài)改變都會(huì)記錄在flash中。故利用raid卡存儲(chǔ)的日志可以很全面地覆蓋硬盤故障。則在上述示例中,對(duì)于LSI型raid卡,可以利用MegaCli工具抓取raid卡控制器,物理盤和邏輯盤等的健康參數(shù)。例如,邏輯盤狀態(tài)有optimal, degraded和offline三種狀態(tài),分別反映當(dāng)前raid卡邏輯盤的正常、降級(jí)和下線狀態(tài),換言之,上述三種狀態(tài)可以理解為對(duì)應(yīng)正常和故障的狀態(tài)。如果邏輯盤出現(xiàn)degraded或者offline狀態(tài),則可以判定邏輯盤對(duì)應(yīng)的物理盤一定存在故障。相應(yīng)的,物理盤的media Error, predictive failure, firmware state等數(shù)值反映了當(dāng)前物理盤的運(yùn)行狀態(tài),firmware state有上線online,失敗failed,異常unconfigure_good,故障unconf igure_bad等狀態(tài)值,分別反映當(dāng)前物理盤的正常和異常狀態(tài)。結(jié)合邏輯盤和物理盤的狀態(tài)信息,可以有效地判斷出raid卡當(dāng)前是否運(yùn)行正常以及哪塊邏輯盤有問題。對(duì)于沒有發(fā)生物理掉盤的raid卡,上述檢測手段均可以實(shí)時(shí)準(zhǔn)確地檢測到硬盤故障。但是,當(dāng)發(fā)生物理掉盤時(shí),raid卡控制器不再將此盤踢出陣列,導(dǎo)致發(fā)生掉盤的故障硬盤的運(yùn)行狀態(tài)信息不能實(shí)時(shí)地被獲取,用上述手段也就無法定位到此硬盤的故障??紤]到raid卡控制器會(huì)及時(shí)將事件信息記錄到raid卡日志中,包括物理掉盤事件信息,可以獲取raid卡日志進(jìn)行分析,挖掘出無法獲取的硬盤實(shí)時(shí)運(yùn)行狀態(tài)信息,從而實(shí)現(xiàn)對(duì)發(fā)生物理掉盤的故障硬盤的定位。
由于raid卡完整日志記錄了 raid卡發(fā)生的所有事件信息,包括事件在日志中的編號(hào),發(fā)生時(shí)間,事件描述,事件數(shù)據(jù)等信息,當(dāng)服務(wù)器raid卡事件發(fā)生頻繁時(shí),日志信息量很大,頻繁讀取日志到內(nèi)存會(huì)影響服務(wù)器性能。針對(duì)于此,采用異步通信機(jī)制實(shí)現(xiàn)服務(wù)器本地與raid卡控制器的實(shí)時(shí)通信,一旦raid卡有事件發(fā)生,raid卡控制器在flash中存儲(chǔ)事件日志的同時(shí),利用異步事件推送接口推送給運(yùn)行在服務(wù)器中的異步事件處理引擎,異步事件處理引擎進(jìn)行實(shí)時(shí)信息分析,過濾和格式化,將格式化的日志信息存儲(chǔ)在服務(wù)器本地硬盤,方便實(shí)時(shí)的查詢和數(shù)據(jù)挖掘。raid卡和服務(wù)器之間的事件異步通信框架實(shí)現(xiàn)了日志信息向本地的實(shí)時(shí)推送,達(dá)到對(duì)服務(wù)器性能的零影響的同時(shí),對(duì)關(guān)鍵信息的實(shí)時(shí)獲取。異步推送到本地的日志增量存儲(chǔ)在本地日志中,供定位故障使用。其推送示意圖如圖2和圖3所示。結(jié)合圖2和圖3,當(dāng)raid卡有事件發(fā)生時(shí),raid卡從其RAM中讀取事件的相關(guān)參數(shù),一方面,raid卡向其flash中存儲(chǔ)參數(shù)信息,生成raid卡log日志;同時(shí),另一方面,raid卡向異步事件推送接口推送數(shù)據(jù),服務(wù)器的異步事件處理引擎接收并處理數(shù)據(jù),并將格式化后的數(shù)據(jù)存儲(chǔ)在服務(wù)器內(nèi)存以生成本地raid卡日志。raid卡日志中的事件信息類型有200多種,與定位掉盤有關(guān)的類型有5種,其中最關(guān)鍵的2類事件為邏輯盤和物理盤的狀態(tài)變遷信息記錄。狀態(tài)變遷信息記錄著硬盤運(yùn)行狀態(tài)的變化情況,包括由正常狀態(tài)到故障狀態(tài),由故障狀態(tài)到正常狀態(tài),由一種故障狀態(tài)(unconfigure_bad)到另一種異常狀態(tài)(unconfigure_good)等。其中,有關(guān)raid卡邏輯盤和物理盤的事件描述(Event Description)的記錄有固定的格式,例如圖4所示,是raid卡日志中關(guān)于物理盤的狀態(tài)變化的一條記錄。每塊硬盤在其運(yùn)行周期內(nèi),會(huì)存有很多的狀態(tài)變遷記錄,只有最后一條狀態(tài)變遷記錄中存儲(chǔ)此塊硬盤的當(dāng)前運(yùn)行狀態(tài)信息。對(duì)此類格式的事件描述記錄進(jìn)行分析,獲取每塊硬盤的最終運(yùn)行狀態(tài),從而在無法實(shí)時(shí)地獲取發(fā)生物理掉盤的硬盤的當(dāng)前運(yùn)行狀態(tài)的情況下,借助raid卡日志中的事件存檔,定位到相應(yīng)的物理盤發(fā)生掉盤,從而提高了故障檢
測覆蓋率。圖5為根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法的流程圖。如圖5所示,根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位方法,包括以下步驟:步驟S501,運(yùn)行監(jiān)測工具。其中,監(jiān)測工具為但不限于MegaCli工具。利用MegaCli工具可以抓取raid卡控制器,物理盤和邏輯盤等的健康參數(shù)。步驟S502,分析當(dāng)前的硬盤狀態(tài)。硬盤的邏輯盤狀態(tài)有optimal, degraded和offline三種狀態(tài),分別反映當(dāng)前raid卡邏輯盤的正常、降級(jí)和下線狀態(tài),即上述三種狀態(tài)可以理解為對(duì)應(yīng)正常和故障兩種狀態(tài)。當(dāng)監(jiān)測工具監(jiān)測到邏輯盤出現(xiàn)降級(jí)degraded或者下線offline狀態(tài),則判定邏輯盤對(duì)應(yīng)的物理盤出現(xiàn)故障。步驟S503,判斷是否存在邏輯盤degraded或者offline狀態(tài)。即判斷監(jiān)測工具是否檢測到邏輯盤出現(xiàn)degraded或者offline狀態(tài),如果是則執(zhí)行步驟S504,否則執(zhí)行步驟S505。步驟S504,生成本地raid卡日志。即當(dāng)檢測到邏輯盤出現(xiàn)degraded或者offline狀態(tài)時(shí),說明邏輯盤出現(xiàn)故障,則異步事件處理引擎對(duì)raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,對(duì)該與掉盤相關(guān)的日志信息進(jìn)行分析、過濾和格式化處理,并將格式化處理后的日志信息推送至服務(wù)器的內(nèi)存,以便生成本地raid卡日志,方便實(shí)時(shí)的查詢和實(shí)時(shí)推送,達(dá)到對(duì)服務(wù)器性能的零影響的同時(shí),做到對(duì)關(guān)鍵信息的實(shí)時(shí)獲取。步驟S505,無故障。即在判斷邏輯盤未出現(xiàn)degraded或者offline狀態(tài)時(shí),說明硬盤無故障。步驟S506,按格式抓取物理盤狀態(tài)變遷事件記錄。raid卡日志中的事件信息類型有200多種,與定位掉盤有關(guān)的類型有5種,其中最關(guān)鍵的2類事件為邏輯盤和物理盤的狀態(tài)變遷信息記錄。狀態(tài)變遷信息記錄著硬盤運(yùn)行狀態(tài)的變化情況,包括由正常狀態(tài)到故障狀態(tài),由故障狀態(tài)到正常狀態(tài),由一種故障狀態(tài)(unconfigure_bad)到另一種異常狀態(tài)(unconfigure_good)等。其中,有關(guān)raid卡邏輯盤和物理盤的事件描述(EventDescription)的記錄有固定的格式,而需要按照該固定的格式抓取物理盤狀態(tài)變遷事件記錄。步驟S507,解析各硬盤的最終狀態(tài)。每塊硬盤在其運(yùn)行周期內(nèi),會(huì)存有很多的狀態(tài)變遷記錄,只有最后一條狀態(tài)變遷記錄中存儲(chǔ)此塊硬盤的當(dāng)前運(yùn)行狀態(tài)信息。對(duì)此類格式的事件描述記錄的時(shí)間進(jìn)行分析,獲取每塊硬盤的最后時(shí)間的一條變遷事件記錄,得到硬盤的最終運(yùn)行狀態(tài)。步驟S508,和能獲取當(dāng)前運(yùn)行狀態(tài)的硬盤進(jìn)行匹配。即監(jiān)測工具將硬盤的當(dāng)前狀態(tài)和其最終狀態(tài)進(jìn)行比對(duì)。步驟S509,硬盤的當(dāng)前運(yùn)行狀態(tài)與最終運(yùn)行狀態(tài)是否匹配。即判斷硬盤的當(dāng)前運(yùn)行狀態(tài)與raid卡日志中存儲(chǔ)的硬盤最終狀態(tài)是否匹配。如果是則執(zhí)行步驟S510,否則執(zhí)行步驟S511。步驟S510,硬盤故障,檢測出故障。即當(dāng)硬盤的當(dāng)前運(yùn)行狀態(tài)與最終運(yùn)行狀態(tài)匹配時(shí),判定硬盤發(fā)生故障,并檢測出故障發(fā)生的具體位置,進(jìn)行處理。步驟S511,硬盤物理掉盤,檢測出故障。即當(dāng)硬盤的當(dāng)前運(yùn)行狀態(tài)和最終運(yùn)行狀態(tài)不匹配時(shí),判定硬盤的物理盤發(fā)生掉盤,并能夠?qū)崿F(xiàn)對(duì)發(fā)生物理掉盤的故障硬盤進(jìn)行定位。步驟S512,LSI型raid卡。即針對(duì)于LSI型的raid卡。步驟S513,LSI型raid卡消息接口。即在raid卡和服務(wù)器之間設(shè)置有異步實(shí)時(shí)推送接口。步驟S514, raid卡發(fā)生事件。即當(dāng)raid卡有事件發(fā)生。步驟S515,異步事件日志推送守護(hù)進(jìn)程過濾消息,異步推送關(guān)鍵信息。即當(dāng)raid卡有事件發(fā)生時(shí),raid卡控制器在flash中存儲(chǔ)事件日志的同時(shí),利用異步事件推送接口推送給運(yùn)行在服務(wù)器中的異步事件處理引擎,異步事件處理引擎進(jìn)行實(shí)時(shí)信息分析,過濾和格式化,將格式化的日志信息存儲(chǔ)在服務(wù)器本地硬盤,方便實(shí)時(shí)的查詢和數(shù)據(jù)挖掘。raid卡和服務(wù)器之間的事件異步通信框架實(shí)現(xiàn)了日志信息向本地的實(shí)時(shí)推送,達(dá)到對(duì)服務(wù)器性能的零影響的同時(shí),對(duì)關(guān)鍵信息的實(shí)時(shí)獲取。異步推送到本地的日志增量存儲(chǔ)在本地日志中,供定位故障使用。即繼續(xù)執(zhí)行步驟S506。根據(jù)本發(fā)明實(shí)施例的基于raid卡日志的硬盤的故障定位方法,結(jié)合硬盤當(dāng)前的運(yùn)行健康信息和分析raid卡的日志,能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且大幅度提高了硬盤監(jiān)控和檢測的準(zhǔn)確度,提高了服務(wù)器的運(yùn)維效率。
圖6為根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位裝置的結(jié)構(gòu)圖。如圖6所示,根據(jù)本發(fā)明一個(gè)實(shí)施例的基于raid卡日志的硬盤的故障定位裝置600,包括:監(jiān)測工具610、raid卡620、服務(wù)器630和異步實(shí)時(shí)推送接口 640,其中異步實(shí)時(shí)推送接口 640設(shè)置在raid卡620和服務(wù)器630之間。具體地,raid卡620用于通過異步實(shí)時(shí)推送接口 640將raid卡日志實(shí)時(shí)推送至服務(wù)器630。服務(wù)器630包括異步事件處理引擎,用于通過異步實(shí)時(shí)推送接口 640接收raid卡620的日志,并在硬盤出現(xiàn)故障時(shí),對(duì)raid卡620的日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將于掉盤相關(guān)的日志信息推送至服務(wù)器630的內(nèi)存以生成本地raid卡日志。具體地,異步事件處理引擎通過對(duì)于掉盤相關(guān)的日志信息進(jìn)行格式化處理,將格式化處理后的日志信息推送至服務(wù)器630的內(nèi)存。監(jiān)測工具610用于分析硬盤的當(dāng)前狀態(tài),如果硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線offline狀態(tài),則判斷硬盤出現(xiàn)故障,并在本地raid卡日志中抓取磁盤的物理盤的多條變遷事件記錄,并對(duì)多條變遷事件記錄的時(shí)間進(jìn)行分析,獲取最后時(shí)間的一條變遷事件記錄,從而得到硬盤的最終狀態(tài),并將硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果硬盤的當(dāng)前狀態(tài)和最終狀態(tài)不匹配,則判定硬盤的物理盤發(fā)生掉盤。進(jìn)一步地,監(jiān)測工具610監(jiān)測到硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配時(shí),判定硬盤發(fā)生故障。其中,變遷事件記錄硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài),故障狀態(tài)變遷到正常狀態(tài),故障狀態(tài)變遷到異常狀態(tài)。監(jiān)測工具為但不限于MegaCli工具。在上述示例中,raid卡620通過異步實(shí)時(shí)推送接口 640將raid卡620的日志實(shí)時(shí)推送至服務(wù)器630的異步事件處理引擎,監(jiān)測工具610分析硬盤的當(dāng)前狀態(tài),當(dāng)監(jiān)測到硬盤的邏輯盤出現(xiàn)degraded等狀態(tài)時(shí),判定硬盤出現(xiàn)故障,然后異步事件處理引擎對(duì)raid卡620的日志進(jìn)行分析獲取與掉盤相關(guān)的信息,并推送至服務(wù)器630的內(nèi)存生成本地raid卡日志,以便實(shí)時(shí)的查詢和數(shù)據(jù)挖掘。然后監(jiān)測工具610在生成的本地raid卡日志中抓取磁盤的物理盤多條變遷事件記錄,據(jù)此獲取硬盤的最終狀態(tài),并與硬盤的當(dāng)前狀態(tài)進(jìn)行比對(duì),如果匹配則硬盤發(fā)生故障,如果不匹配,則硬盤的物理盤發(fā)生掉盤,并能夠定位到具體哪個(gè)硬盤發(fā)生故障及具體的發(fā)生物理掉盤的故障硬盤。根據(jù)本發(fā)明實(shí)施例的基于raid卡日志的硬盤的故障定位裝置,結(jié)合硬盤當(dāng)前的運(yùn)行健康信息和分析raid卡的日志,能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且大幅度提高了硬盤監(jiān)控和檢測的準(zhǔn)確度,提高了服務(wù)器的運(yùn)維效率。流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計(jì)算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),可擦除可編輯只讀存儲(chǔ)器(EPROM或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤只讀存儲(chǔ)器(⑶ROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對(duì)紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。此外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同限定。
權(quán)利要求
1.一種基于raid卡日志的硬盤的故障定位方法,其特征在于,在磁盤陣列raid卡和服務(wù)器之間設(shè)置異步實(shí)時(shí)推送接口,且所述服務(wù)器中設(shè)置有異步事件處理引擎,所述硬盤故障定位方法包括如下步驟: 所述raid卡通過所述異步實(shí)時(shí)推送接口將raid卡日志實(shí)時(shí)推送至所述異步事件處理引擎; 監(jiān)測工具分析硬盤的當(dāng)前狀態(tài),如果所述硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線offline狀態(tài),則判斷所述硬盤出現(xiàn)故障; 在判斷所述硬盤出現(xiàn)故障時(shí),所述異步事件處理引擎對(duì)所述raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將所述與掉盤相關(guān)的日志信息推送至所述服務(wù)器的內(nèi)存以生成本地raid卡日志; 所述監(jiān)測工具在所述本地raid卡日志中抓取所述磁盤的物理盤的多條變遷事件記錄,并根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài);以及 所述監(jiān)測工具將所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)不匹配,則判斷所述硬盤的物理盤發(fā)生掉盤。
2.如權(quán)利要求1所述的硬盤故障定位方法,其特征在于,如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配,則判斷所述硬盤發(fā)生故障。
3.如權(quán)利要求1所述的硬盤故障定位方法,其特征在于,所述異步事件處理引擎在獲得所述與掉盤相關(guān)的日志信息后,還包括如下步驟: 對(duì)所述與掉盤相關(guān)的日志信息進(jìn)行格式化處理,將格式化處理后的日志信息推送至所述服務(wù)器的內(nèi)存。
4.如權(quán)利要求1所述的硬盤故障定位方法,其特征在于,所述變遷事件記錄所述硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài)、故障狀態(tài)變遷到正常狀態(tài)、故障狀態(tài)變遷到異常狀態(tài)。
5.如權(quán)利要求1所述的硬盤故障定位方法,其特征在于,所述根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài),包括如下步驟: 對(duì)多條所述變遷事件記錄的時(shí)間進(jìn)行分析,獲取最后時(shí)間的一條變遷事件記錄,得到所述硬盤的最終狀態(tài)。
6.一種基于raid卡日志的硬盤的故障定位裝置,其特征在于,包括:監(jiān)測工具、raid卡、服務(wù)器和異步實(shí)時(shí)推送接口,其中所述異步實(shí)時(shí)推送接口位于所述raid卡和所述服務(wù)器之間, 所述raid卡用于通過所述異步實(shí)時(shí)推送接口將raid卡日志實(shí)時(shí)推送至所述服務(wù)器; 所述服務(wù)器包括異步事件處理引擎,所述異步事件處理引擎用于通過所述異步實(shí)時(shí)推送接口接收所述raid卡日志,并在所述硬盤出現(xiàn)故障時(shí),對(duì)所述raid卡日志進(jìn)行分析以獲取與掉盤相關(guān)的日志信息,并將所述與掉盤相關(guān)的日志信息推送至所述服務(wù)器的內(nèi)存以生成本地raid卡日志; 所述監(jiān)測工具用于分析硬盤的當(dāng)前狀態(tài),如果所述硬盤的邏輯盤處于降級(jí)degraded狀態(tài)或者下線offline狀態(tài),則判斷所述硬盤出現(xiàn)故障,并在所述本地raid卡日志中抓取所述磁盤的物理盤的多條變遷事件記錄,并根據(jù)多條所述變遷事件記錄獲取所述硬盤的最終狀態(tài),以及將所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)進(jìn)行比對(duì),如果所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)不匹配,則判斷所述硬盤的物理盤發(fā)生掉盤。
7.如權(quán)利要求6所述的裝置,其特征在于,所述監(jiān)測工具在監(jiān)測到所述硬盤的當(dāng)前狀態(tài)和最終狀態(tài)匹配時(shí),判斷所述硬盤發(fā)生故障。
8.如權(quán)利要求6所述的裝置,其特征在于,所述異步事件處理引擎還用于對(duì)所述與掉盤相關(guān)的日志信息進(jìn)行格式化處理,將格式化處理后的日志信息推送至所述服務(wù)器的內(nèi)存。
9.如權(quán)利要求6所述的裝置,其特征在于,所述變遷事件記錄所述硬盤的變遷狀態(tài),包括:正常狀態(tài)變遷到故障狀態(tài)、故障狀態(tài)變遷到正常狀態(tài)、故障狀態(tài)變遷到異常狀態(tài)。
10.如權(quán)利要求6所述的裝置,其特征在于,所述監(jiān)測工具對(duì)多條所述變遷事件記錄的時(shí)間進(jìn)行分析,獲取 最后時(shí)間的一條變遷事件記錄,得到所述硬盤的最終狀態(tài)。
全文摘要
本發(fā)明提出一種基于raid卡日志的硬盤的故障定位方法,包括以下步驟raid卡將日志推送至異步事件處理引擎;監(jiān)測工具分析硬盤的當(dāng)前狀態(tài),若邏輯盤處于degraded狀態(tài)或offline狀態(tài),則硬盤故障;引擎對(duì)日志進(jìn)行分析獲取與掉盤相關(guān)的日志信息,并推送至服務(wù)器的內(nèi)存生成本地raid卡日志;監(jiān)測工具在其中抓取磁盤的物理盤的多條變遷事件記錄,據(jù)此獲取硬盤的最終狀態(tài);并將其當(dāng)前狀態(tài)和最終狀態(tài)比對(duì),若不匹配,則物理盤發(fā)生掉盤。本發(fā)明的實(shí)施例能夠達(dá)到對(duì)硬盤運(yùn)行故障檢測有較全的覆蓋率,且大幅度的提高了硬盤監(jiān)控和檢測的準(zhǔn)確度,提高了服務(wù)器的運(yùn)維效率。本發(fā)明還提出了一種基于raid卡日志的硬盤的故障定位裝置。
文檔編號(hào)G06F11/34GK103207820SQ201310046008
公開日2013年7月17日 申請(qǐng)日期2013年2月5日 優(yōu)先權(quán)日2013年2月5日
發(fā)明者劉亮, 王雁鵬, 王曉靜, 魏偉 申請(qǐng)人:北京百度網(wǎng)訊科技有限公司