欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種磁盤(pán)陣列控制器故障處理方法及系統(tǒng)的制作方法

文檔序號(hào):6603502閱讀:266來(lái)源:國(guó)知局
專利名稱:一種磁盤(pán)陣列控制器故障處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)電子領(lǐng)域,尤其涉及一種磁盤(pán)陣列控制器故障處理方法及系 統(tǒng)。
背景技術(shù)
RAID 是“Redundant Array of Independent Disk” 的縮寫(xiě),中文意思是磁盤(pán)陣列 存儲(chǔ)系統(tǒng)。磁盤(pán)陣列技術(shù)誕生于1987年,由美國(guó)加州大學(xué)伯克利分校提出。簡(jiǎn)單地解釋, 就是將N臺(tái)硬盤(pán)通過(guò)磁盤(pán)陣列控制器(RAID Controller)結(jié)合成虛擬單臺(tái)大容量的硬盤(pán)使 用。RAID的采用為存儲(chǔ)系統(tǒng)(或者服務(wù)器的內(nèi)置存儲(chǔ))帶來(lái)巨大利益,其中提高傳輸速率 和提供容錯(cuò)功能是最大的優(yōu)點(diǎn)。磁盤(pán)陣列存儲(chǔ)系統(tǒng)的核心是磁盤(pán)陣列控制器。磁盤(pán)陣列控制器是主機(jī)和磁盤(pán)之間 的數(shù)據(jù)傳輸通路,包含面向主機(jī)和磁盤(pán)陣列兩個(gè)方面的接口。磁盤(pán)陣列控制器處理來(lái)自主 機(jī)和磁盤(pán)陣列的信息,通過(guò)對(duì)多個(gè)磁盤(pán)成員的并行操作,提供遠(yuǎn)高于單獨(dú)磁盤(pán)的傳輸速率, 從而匹配數(shù)據(jù)前端和磁盤(pán)設(shè)備之間的數(shù)據(jù)傳輸速度,使其達(dá)到均衡。磁盤(pán)陣列控制器作為磁盤(pán)陣列系統(tǒng)的核心,其可靠性直接關(guān)系到磁盤(pán)陣列的可用 性。磁盤(pán)陣列控制器是一個(gè)復(fù)雜的控制系統(tǒng),具有專用的軟硬件平臺(tái),因此具有嵌入式系統(tǒng) 難以測(cè)試的特征。磁盤(pán)陣列作為數(shù)據(jù)存儲(chǔ)的終端節(jié)點(diǎn),需要快速響應(yīng)來(lái)自存儲(chǔ)網(wǎng)絡(luò)或主機(jī)的大量數(shù) 據(jù)存儲(chǔ)請(qǐng)求,為了保證系統(tǒng)具有極高的I/O吞吐率,磁盤(pán)陣列控制器的任務(wù)由大量并發(fā)的 工作線程相互協(xié)作完成的。因此,磁盤(pán)陣列控制器具有任務(wù)密集、并發(fā)度高的特征。本發(fā)明人在實(shí)施本發(fā)明的過(guò)程中發(fā)現(xiàn),磁盤(pán)陣列控制器因?yàn)槠鋸?fù)雜性導(dǎo)致其可靠 性下降,為了保證磁盤(pán)陣列控制器長(zhǎng)期、高效的運(yùn)行,必須要使其具備容錯(cuò)能力。在現(xiàn)有的方法中,通常采用硬件冗余技術(shù)來(lái)提高其容錯(cuò)能力,這種方式實(shí)現(xiàn)需要 較高的成本。而通過(guò)軟件技術(shù)保障其可靠性的方法,通常是將故障處理邏輯融合在磁盤(pán)陣 列控制器業(yè)務(wù)處理過(guò)程中,當(dāng)磁盤(pán)陣列控制器發(fā)現(xiàn)故障時(shí),則跳轉(zhuǎn)到相應(yīng)的故障處理程序 分支中去,但是這種方式所能處理的故障有限,并且進(jìn)一步增加了磁盤(pán)陣列控制器的復(fù)雜 度,難以維護(hù)。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種磁盤(pán)陣列控制器故障處理方法 及系統(tǒng),獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及 時(shí)進(jìn)行故障處理。同時(shí),在磁盤(pán)陣列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠 保證磁盤(pán)陣列控制器不會(huì)因?yàn)槿魏喂收显斐少Y源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種磁盤(pán)陣列控制器故障處理方 法,包括接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài);
根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行 過(guò)程中是否出現(xiàn)故障;若所述判斷為是,則接管所述任務(wù),并按照預(yù)定的故障處理程序處理所述故障。其中,所述接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài) 之前,還包括預(yù)設(shè)所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段的運(yùn)行狀態(tài)模型;所述磁盤(pán)陣列 控制器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和無(wú)數(shù)據(jù)任務(wù)。其中,所述根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所 述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障,包括根據(jù)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),查找其當(dāng)前任務(wù)在當(dāng)前階段的運(yùn) 行狀態(tài)模型;判斷所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),是否符合查找得到的運(yùn)行狀態(tài)模型。其中,所述運(yùn)行狀態(tài)模型中包括所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段之 間的時(shí)間間隔;則所述根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任 務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障,還包括判斷所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)運(yùn)行狀態(tài)后,在對(duì) 應(yīng)運(yùn)行狀態(tài)模型規(guī)定的時(shí)間間隔內(nèi),是否收到下一次運(yùn)行狀態(tài)的注冊(cè)。其中,所述按照預(yù)定的故障處理程序處理所述故障中,所述預(yù)定的故障處理程序 包括任務(wù)回滾,控制執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù)回到前一個(gè)注冊(cè)的運(yùn)行狀態(tài)中,重新 執(zhí)行所述任務(wù);任務(wù)終止,終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋錯(cuò)誤信息;系統(tǒng)安全關(guān)閉,將磁盤(pán)陣列控制器緩存的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ)介質(zhì)中,安全的 關(guān)閉所述磁盤(pán)陣列控制器。相應(yīng)地,本發(fā)明實(shí)施例還提供一種磁盤(pán)陣列控制器故障處理系統(tǒng),包括信息收集模塊,用于接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的 運(yùn)行狀態(tài);故障判斷模塊,用于根據(jù)所述信息收集模塊接收的磁盤(pán)陣列控制器的運(yùn)行狀態(tài), 判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;故障處理模塊,用于在所述故障判斷模塊判定所述磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò) 程中出現(xiàn)故障時(shí),接管所述任務(wù),并按照預(yù)定的故障處理程序處理所述故障。其中,所述接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài) 之前,還包括狀態(tài)模型預(yù)置模塊,用于預(yù)設(shè)所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段的運(yùn)行 狀態(tài)模型;所述磁盤(pán)陣列控制器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和無(wú)數(shù)據(jù)任務(wù)。其中,所述故障判斷模塊包括模型查找單元,用于根據(jù)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),在所述狀態(tài) 模型預(yù)置模塊中查找其當(dāng)前任務(wù)在當(dāng)前階段的運(yùn)行狀態(tài)模型;
5
比對(duì)判斷單元,用于比對(duì)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),是否符合所 述模型查找單元查找得到的運(yùn)行狀態(tài)模型;若一致,則判定磁盤(pán)陣列控制器運(yùn)行正常;否 則,判定磁盤(pán)陣列控制器出現(xiàn)故障。其中,所述運(yùn)行狀態(tài)模型中包括所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段之 間的時(shí)間間隔;則所述故障判斷模塊還包括時(shí)限判斷單元,用于在所述磁盤(pán)陣列控制器主動(dòng)注 冊(cè)運(yùn)行狀態(tài)后開(kāi)始計(jì)時(shí),判斷在對(duì)應(yīng)運(yùn)行狀態(tài)模型規(guī)定的時(shí)間間隔內(nèi),是否收到下一次運(yùn) 行狀態(tài)的注冊(cè)。其中,所述故障處理模塊包括第一處理單元,用于將執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù)回滾,控制所述任務(wù)回到前一 個(gè)注冊(cè)的運(yùn)行狀態(tài)中,重新執(zhí)行該任務(wù);第二處理單元,用于終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋錯(cuò) 誤信息;第三處理單元,用于執(zhí)行磁盤(pán)陣列控制器的安全關(guān)閉,第三處理單元將磁盤(pán)陣列 控制器緩存的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ)介質(zhì)中,安全的關(guān)閉所述磁盤(pán)陣列控制器。實(shí)施本發(fā)明實(shí)施例,具有如下有益效果(一 )獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故 障并及時(shí)進(jìn)行故障處理。( 二 )在磁盤(pán)陣列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁 盤(pán)陣列控制器不會(huì)因?yàn)槿魏喂收显斐少Y源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。


為了更清楚地說(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ā)明提供的磁盤(pán)陣列控制器故障處理方法第一實(shí)施例流程示意圖;圖2為本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法第二實(shí)施例流程示意圖;圖3為本發(fā)明提供的磁盤(pán)陣列控制器故障處理系統(tǒng)第一實(shí)施例結(jié)構(gòu)示意圖;圖4為本發(fā)明提供的磁盤(pán)陣列控制器故障處理系統(tǒng)第二實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供的磁盤(pán)陣列控制器故障處理方法及系統(tǒng),可以獨(dú)立、主動(dòng)的監(jiān) 控磁盤(pán)陣列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí)進(jìn)行故障處理。同時(shí), 在磁盤(pán)陣列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁盤(pán)陣列控制器不 會(huì)因?yàn)槿魏喂收显斐少Y源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。下面將結(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ù)的范圍。參見(jiàn)圖1,為本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法第一實(shí)施例流程示意圖, 如圖1所示在步驟S100,接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀 態(tài)。在步驟S101,根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在 所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;若所述判斷為是,則執(zhí)行步驟S102 ;若所述判斷為否, 則執(zhí)行步驟S103。在步驟S102,接管所述磁盤(pán)陣列控制器在執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù),并按照預(yù) 定的故障處理程序處理所述故障。在步驟S103,繼續(xù)監(jiān)控磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的后續(xù)階段運(yùn)行狀態(tài)是否正 常,直至所述任務(wù)完成。實(shí)施本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法,可以獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣 列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí)進(jìn)行故障處理。同時(shí),在磁盤(pán)陣 列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁盤(pán)陣列控制器不會(huì)因?yàn)槿?何故障造成資源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。參見(jiàn)圖2,為本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法第二實(shí)施例流程示意圖。 在本實(shí)施例中,將更為詳細(xì)的描述該磁盤(pán)陣列控制器故障處理方法的流程。在實(shí)施本發(fā)明提供的方法流程之前,需要預(yù)設(shè)磁盤(pán)陣列控制器的各類任務(wù)在各個(gè) 階段的運(yùn)行狀態(tài)模型;所述磁盤(pán)陣列控制器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和 無(wú)數(shù)據(jù)任務(wù)。更為具體的,在本發(fā)明中,我們將磁盤(pán)陣列控制器的任務(wù)分為三種類型讀數(shù)據(jù)任務(wù)讀數(shù)據(jù)任務(wù)是指磁盤(pán)陣列需要向外界返回?cái)?shù)據(jù)的任務(wù),包含所有的 對(duì)磁盤(pán)陣列中存儲(chǔ)數(shù)據(jù)的讀任務(wù)、信息查詢?nèi)蝿?wù)、系統(tǒng)報(bào)告任務(wù)等。對(duì)于此類任務(wù)的一般處理流程是磁盤(pán)陣列控制器收到讀數(shù)據(jù)命令后,首先驗(yàn)證 命令的合法性,解析出命令請(qǐng)求的數(shù)據(jù)位置、數(shù)據(jù)長(zhǎng)度,然后將命令插入待處理命令隊(duì)列 中;命令處理線程取出該命令后首先分配相應(yīng)的緩沖區(qū)用來(lái)緩存數(shù)據(jù),然后向相應(yīng)的磁盤(pán) 驅(qū)動(dòng)器發(fā)送讀數(shù)據(jù)請(qǐng)求;數(shù)據(jù)讀取完成后被放入緩沖區(qū)中;最后磁盤(pán)陣列控制器向任務(wù)請(qǐng) 求端返回命令處理狀態(tài),通知任務(wù)請(qǐng)求端讀取數(shù)據(jù),當(dāng)數(shù)據(jù)讀取完成后,磁盤(pán)陣列控制器釋 放緩沖區(qū)并完成此次任務(wù)。寫(xiě)數(shù)據(jù)任務(wù)寫(xiě)數(shù)據(jù)任務(wù)是指磁盤(pán)陣列需要從外界獲取數(shù)據(jù)的任務(wù),包含所有的 存儲(chǔ)數(shù)據(jù)任務(wù)、磁盤(pán)陣列配置任務(wù)等。寫(xiě)數(shù)據(jù)任務(wù)的執(zhí)行流程和讀數(shù)任務(wù)類似,區(qū)別在于磁 盤(pán)陣列控制器分配完緩沖區(qū)后會(huì)等待接收主機(jī)的數(shù)據(jù),待數(shù)據(jù)接收完畢,數(shù)據(jù)的寫(xiě)入策略 分為兩種寫(xiě)穿和回寫(xiě)。如果是寫(xiě)穿策略,則立即向磁盤(pán)驅(qū)動(dòng)器發(fā)送數(shù)據(jù)寫(xiě)入請(qǐng)求;若是回 寫(xiě)策略,數(shù)據(jù)將暫時(shí)放入緩存中,稍后寫(xiě)入磁盤(pán)。無(wú)數(shù)據(jù)任務(wù)無(wú)數(shù)據(jù)任務(wù)是指不包含數(shù)據(jù)傳輸?shù)娜蝿?wù),例如邏輯單元激活或釋放 任務(wù)、鏈接任務(wù)等。無(wú)數(shù)據(jù)任務(wù)的執(zhí)行過(guò)程比數(shù)據(jù)讀寫(xiě)任務(wù)簡(jiǎn)單,通常磁盤(pán)陣列控制器收到 這類任務(wù)后,首先對(duì)任務(wù)進(jìn)行合法性驗(yàn)證,然后交由具體的處理過(guò)程進(jìn)行處理,處理結(jié)束后 向主機(jī)返回結(jié)果。由上述各類任務(wù)執(zhí)行流程可以看出,各種任務(wù)在其執(zhí)行周期中要經(jīng)歷若干個(gè)關(guān)鍵階段,系統(tǒng)的故障也通常發(fā)生在這些階段之間的轉(zhuǎn)化過(guò)程之中。因此,本發(fā)明提供的磁盤(pán)陣 列控制器故障處理方法要完成對(duì)任務(wù)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控,必需對(duì)任務(wù)的執(zhí)行周期進(jìn)行階 段劃分。本發(fā)明中,將任務(wù)到達(dá)某個(gè)階段定義為任務(wù)的一個(gè)狀態(tài),由此,系統(tǒng)中所有任務(wù)的 執(zhí)行階段組成一個(gè)狀態(tài)集合,該集合中的元素定義如表1所示。表 1 表1中的每一個(gè)“狀態(tài)名”都對(duì)應(yīng)著一個(gè)具體的運(yùn)行狀態(tài)模型,表征磁盤(pán)陣列控制 器在該階段正常運(yùn)行狀態(tài)時(shí)的參數(shù)、指標(biāo)等。對(duì)于系統(tǒng)中的每一類任務(wù),其執(zhí)行周期是由上述狀態(tài)集合中的一個(gè)子集組成。例 如組成讀數(shù)據(jù)任務(wù)執(zhí)行周期的狀態(tài)集合為{獲取任務(wù)、預(yù)處理、開(kāi)始執(zhí)行、申請(qǐng)資源、讀取 數(shù)據(jù)、返回?cái)?shù)據(jù)、返回任務(wù)狀態(tài)、釋放資源、任務(wù)完成}。具體如表2所示表2
\
磁盤(pán)陣列控制器在執(zhí)行讀數(shù)據(jù)任務(wù)的過(guò)程中,每到達(dá)一個(gè)階段都會(huì)主動(dòng)注冊(cè)一次 運(yùn)行狀態(tài)。本實(shí)施例提供的磁盤(pán)陣列控制器故障處理方法如圖2所示在步驟S200,接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀 態(tài)。在本發(fā)明實(shí)施例中,為敘述方便,以讀數(shù)據(jù)任務(wù)為例。更為具體的,例如磁盤(pán)陣列控制器執(zhí)行讀數(shù)據(jù)任務(wù)時(shí),在完成將任務(wù)放入隊(duì)列,等 待執(zhí)行(即完成開(kāi)始執(zhí)行階段)的步驟后,磁盤(pán)陣列控制器下一步將向系統(tǒng)申請(qǐng)資源(即 進(jìn)入申請(qǐng)資源階段),此時(shí),磁盤(pán)陣列控制器應(yīng)當(dāng)主動(dòng)注冊(cè)狀態(tài)名為“GET_RES”的運(yùn)行狀 態(tài),以通告本磁盤(pán)陣列控制器當(dāng)前的讀數(shù)據(jù)任務(wù)執(zhí)行情況。在步驟S201,根據(jù)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),查找其對(duì)應(yīng)的運(yùn)行 狀態(tài)模型。更為具體的,例如根據(jù)磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)的狀態(tài)名為“GET_ RES”,則在預(yù)置的運(yùn)行狀態(tài)模型中查找與狀態(tài)名“GET_RES”對(duì)應(yīng)的運(yùn)行狀態(tài)模型。在步驟S202,判斷所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),是否符合查找得到 的運(yùn)行狀態(tài)模型。更為具體的,所述判斷包括判斷磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)的 各項(xiàng)參數(shù)是否在運(yùn)行狀態(tài)模型中的參數(shù)范圍內(nèi);判斷磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài) 的各項(xiàng)指標(biāo)是否達(dá)到運(yùn)行狀態(tài)模型中的最低指標(biāo)要求。若磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行 狀態(tài)中,所有的參數(shù)和指標(biāo)都符合運(yùn)行狀態(tài)模型,則判定磁盤(pán)陣列控制器的任務(wù)執(zhí)行正常, 執(zhí)行步驟S203 ;否則,判定磁盤(pán)陣列控制器的任務(wù)執(zhí)行不正常,執(zhí)行步驟S204。更進(jìn)一步的,磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中出現(xiàn)故障,除了主動(dòng)注冊(cè)的運(yùn)行 狀態(tài)符合運(yùn)行狀態(tài)模型外,還有可能因?yàn)楦鞣N原因,根本就不進(jìn)行主動(dòng)注冊(cè),或超過(guò)正常的 注冊(cè)時(shí)間間隔。為此,本實(shí)施例中的運(yùn)行狀態(tài)模型中包括所述磁盤(pán)陣列控制器的各類任務(wù) 在各個(gè)階段之間的時(shí)間間隔。判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障還包括判斷所 述磁盤(pán)陣列控制器主動(dòng)注冊(cè)運(yùn)行狀態(tài)后,在對(duì)應(yīng)運(yùn)行狀態(tài)模型中規(guī)定的時(shí)間間隔內(nèi),是否 收到下一次運(yùn)行狀態(tài)的注冊(cè)。例如磁盤(pán)陣列控制器在執(zhí)行讀數(shù)據(jù)任務(wù)的過(guò)程中,主動(dòng)注 冊(cè)了狀態(tài)名為“GET_RES”的運(yùn)行狀態(tài),在對(duì)應(yīng)的運(yùn)行狀態(tài)模型中,標(biāo)明該狀態(tài)與下一狀態(tài) “RD_DATA”之間的時(shí)間間隔應(yīng)當(dāng)小于2秒,即磁盤(pán)陣列控制器在完成本次運(yùn)行狀態(tài)注冊(cè)后, 應(yīng)當(dāng)在2秒內(nèi)完成向系統(tǒng)申請(qǐng)資源,進(jìn)入下一階段——讀取數(shù)據(jù),同時(shí),注冊(cè)狀態(tài)名為“RD_ DATA”的運(yùn)行狀態(tài);若磁盤(pán)陣列控制器超時(shí)未注冊(cè),則判定磁盤(pán)陣列控制器在該任務(wù)的執(zhí)行 中出現(xiàn)故障,執(zhí)行步驟S204。在步驟S203,繼續(xù)監(jiān)控磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的后續(xù)階段運(yùn)行狀態(tài)是否正
9常,直至所述任務(wù)完成。在步驟S204,針對(duì)不同的故障上下文可以采用不同的故障處理方法,包括任務(wù)回滾,對(duì)于磁盤(pán)陣列控制器而言,其本身多任務(wù)、高并發(fā)的特點(diǎn),使其發(fā)生暫 態(tài)故障的可能性大大提升,而采用系統(tǒng)級(jí)重啟的方式來(lái)修復(fù)暫態(tài)故障的方法對(duì)于磁盤(pán)陣列 系統(tǒng)來(lái)說(shuō)代價(jià)過(guò)大。由于磁盤(pán)陣列控制器在任務(wù)執(zhí)行的每個(gè)關(guān)鍵階段都會(huì)主動(dòng)注冊(cè),因此 當(dāng)故障發(fā)生時(shí),可以讓任務(wù)回到前一個(gè)合法狀態(tài)重新執(zhí)行,通過(guò)再一次的嘗試來(lái)修復(fù)暫態(tài) 故障。任務(wù)終止,任務(wù)回滾的方法可以有效地解決大多數(shù)暫態(tài)故障,而對(duì)于有些任務(wù),在 其執(zhí)行過(guò)程中可能需要同其他任務(wù)進(jìn)行消息傳遞。為了保證系統(tǒng)的一致性,對(duì)于這類任務(wù) 的故障處理方式是終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋錯(cuò)誤信息。系統(tǒng)安全關(guān)閉,對(duì)于一些嚴(yán)重的故障,在采用上述兩種故障處理方法都無(wú)法使系 統(tǒng)狀態(tài)恢復(fù)時(shí),啟動(dòng)應(yīng)急操作,將磁盤(pán)陣列控制器緩存在內(nèi)核中的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ) 介質(zhì)中,然后將系統(tǒng)安全的關(guān)閉。對(duì)于采用冗余控制器的磁盤(pán)陣列系統(tǒng),這種方式可以迅速 的通知備份磁盤(pán)陣列控制器進(jìn)行故障接管,避免了傳統(tǒng)冗余磁盤(pán)陣列控制器實(shí)現(xiàn)方法中, 故障只能在周期性的偵測(cè)后才能被發(fā)現(xiàn)的弊端,提高了系統(tǒng)整體的可靠性。優(yōu)選的,本實(shí)施例提供的磁盤(pán)陣列控制器故障處理方法,對(duì)所述磁盤(pán)陣列控制器 的外圍設(shè)備進(jìn)行定時(shí)的檢測(cè),包括存儲(chǔ)介質(zhì)的可用性、磁盤(pán)陣列控制器的機(jī)箱溫度、磁盤(pán) 陣列控制器的電源是否正常、系統(tǒng)資源的使用狀態(tài);當(dāng)所述外圍檢測(cè)模塊檢測(cè)到異常時(shí),執(zhí) 行步驟S204。實(shí)施本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法,可以獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣 列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí)進(jìn)行故障處理。同時(shí),在磁盤(pán)陣 列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁盤(pán)陣列控制器不會(huì)因?yàn)槿?何故障造成資源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。參見(jiàn)圖3,為本發(fā)明提供的磁盤(pán)陣列控制器故障處理系統(tǒng)第一實(shí)施例結(jié)構(gòu)示意圖, 如圖3所示,該磁盤(pán)陣列控制器故障處理系統(tǒng)包括信息收集模塊2,用于接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的 運(yùn)行狀態(tài);故障判斷模塊3,用于根據(jù)信息收集模塊2接收的磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判 斷所述磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;故障處理模塊4,用于在故障判斷模塊3判定該磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程 中出現(xiàn)故障時(shí),接管所述任務(wù),并按照預(yù)定的故障處理程序處理該故障。實(shí)施本發(fā)明實(shí)施例提供的磁盤(pán)陣列控制器故障處理系統(tǒng),具有如下有益效果 (一)獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí) 進(jìn)行故障處理。(二)在磁盤(pán)陣列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保 證磁盤(pán)陣列控制器不會(huì)因?yàn)槿魏喂收显斐少Y源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。參見(jiàn)圖4,為本發(fā)明提供的磁盤(pán)陣列控制器故障處理系統(tǒng)第二實(shí)施例結(jié)構(gòu)示意圖, 在本實(shí)施例中,將更為詳細(xì)的描述該磁盤(pán)陣列控制器故障處理系統(tǒng)各模塊的結(jié)構(gòu)和功能。 如圖4所示,該磁盤(pán)陣列控制器故障處理系統(tǒng)包括狀態(tài)模型預(yù)置模塊1,用于預(yù)設(shè)磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段的運(yùn)行狀態(tài)模型;該磁盤(pán)陣列控制器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和無(wú)數(shù)據(jù)任務(wù)。更為具體的在本發(fā)明中,我們將磁盤(pán)陣列控制器的任務(wù)分為三種類型讀數(shù)據(jù)任務(wù)讀數(shù)據(jù)任務(wù)是指磁盤(pán)陣列需要向外界返回?cái)?shù)據(jù)的任務(wù),包含所有的 對(duì)磁盤(pán)陣列中存儲(chǔ)數(shù)據(jù)的讀任務(wù)、信息查詢?nèi)蝿?wù)、系統(tǒng)報(bào)告任務(wù)等。對(duì)于此類任務(wù)的一般處理流程是磁盤(pán)陣列控制器收到讀數(shù)據(jù)命令后,首先驗(yàn)證 命令的合法性,解析出命令請(qǐng)求的數(shù)據(jù)位置、數(shù)據(jù)長(zhǎng)度,然后將命令插入待處理命令隊(duì)列 中;命令處理線程取出該命令后首先分配相應(yīng)的緩沖區(qū)用來(lái)緩存數(shù)據(jù),然后向相應(yīng)的磁盤(pán) 驅(qū)動(dòng)器發(fā)送讀數(shù)據(jù)請(qǐng)求;數(shù)據(jù)讀取完成后被放入緩沖區(qū)中;最后磁盤(pán)陣列控制器向任務(wù)請(qǐng) 求端返回命令處理狀態(tài),通知任務(wù)請(qǐng)求端讀取數(shù)據(jù),當(dāng)數(shù)據(jù)讀取完成后,磁盤(pán)陣列控制器釋 放緩沖區(qū)并完成此次任務(wù)。寫(xiě)數(shù)據(jù)任務(wù)寫(xiě)數(shù)據(jù)任務(wù)是指磁盤(pán)陣列需要從外界獲取數(shù)據(jù)的任務(wù),包含所有的 存儲(chǔ)數(shù)據(jù)任務(wù)、磁盤(pán)陣列配置任務(wù)等。寫(xiě)數(shù)據(jù)任務(wù)的執(zhí)行流程和讀數(shù)任務(wù)類似,區(qū)別在于磁 盤(pán)陣列控制器分配完緩沖區(qū)后會(huì)等待接收主機(jī)的數(shù)據(jù),待數(shù)據(jù)接收完畢,數(shù)據(jù)的寫(xiě)入策略 分為兩種寫(xiě)穿和回寫(xiě)。如果是寫(xiě)穿策略,則立即向磁盤(pán)驅(qū)動(dòng)器發(fā)送數(shù)據(jù)寫(xiě)入請(qǐng)求;若是回 寫(xiě)策略,數(shù)據(jù)將暫時(shí)放入緩存中,稍后寫(xiě)入磁盤(pán)。無(wú)數(shù)據(jù)任務(wù)無(wú)數(shù)據(jù)任務(wù)是指不包含數(shù)據(jù)傳輸?shù)娜蝿?wù),例如邏輯單元激活或釋放 任務(wù)、鏈接任務(wù)等。無(wú)數(shù)據(jù)任務(wù)的執(zhí)行過(guò)程比數(shù)據(jù)讀寫(xiě)任務(wù)簡(jiǎn)單,通常磁盤(pán)陣列控制器收到 這類任務(wù)后,首先對(duì)任務(wù)進(jìn)行合法性驗(yàn)證,然后交由具體的處理過(guò)程進(jìn)行處理,處理結(jié)束后 向主機(jī)返回結(jié)果。由上述各類任務(wù)可以看出,各種任務(wù)在其執(zhí)行周期中要經(jīng)歷若干個(gè)關(guān)鍵階段,故 障也通常發(fā)生在這些階段之間的轉(zhuǎn)化過(guò)程之中。因此,本發(fā)明提供的磁盤(pán)陣列控制器故障 處理系統(tǒng)要完成對(duì)任務(wù)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控,必需對(duì)任務(wù)的執(zhí)行周期進(jìn)行階段劃分。本發(fā) 明中,狀態(tài)模型預(yù)置模塊1將存儲(chǔ)所有任務(wù)的執(zhí)行階段組成一個(gè)狀態(tài)集合,該集合中的元 素定義如表1所示。表1中的每一個(gè)“狀態(tài)名”都對(duì)應(yīng)著一個(gè)具體的運(yùn)行狀態(tài)模型,表征磁盤(pán)陣列控制 器在該階段正常運(yùn)行狀態(tài)時(shí)的參數(shù)、指標(biāo)等。對(duì)于系統(tǒng)中的每一類任務(wù),其執(zhí)行周期是由上述狀態(tài)集合中的一個(gè)子集組成。例 如組成讀數(shù)據(jù)任務(wù)執(zhí)行周期的狀態(tài)集合為{獲取任務(wù)、預(yù)處理、開(kāi)始執(zhí)行、申請(qǐng)資源、讀取 數(shù)據(jù)、返回?cái)?shù)據(jù)、返回任務(wù)狀態(tài)、釋放資源、任務(wù)完成}。具體如表2所示磁盤(pán)陣列控制器 在執(zhí)行讀數(shù)據(jù)任務(wù)的過(guò)程中,每到達(dá)一個(gè)階段都會(huì)主動(dòng)注冊(cè)一次運(yùn)行狀態(tài)。信息收集模塊2,用于接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的 運(yùn)行狀態(tài);在本發(fā)明實(shí)施例中,為敘述方便,以讀數(shù)據(jù)任務(wù)為例。更為具體的,例如磁盤(pán)陣列控制器執(zhí)行讀數(shù)據(jù)任務(wù)時(shí),在完成將任務(wù)放入隊(duì)列,等 待執(zhí)行(即完成開(kāi)始執(zhí)行階段)的步驟后,磁盤(pán)陣列控制器下一步將向系統(tǒng)申請(qǐng)資源(即 進(jìn)入申請(qǐng)資源階段),此時(shí),磁盤(pán)陣列控制器應(yīng)當(dāng)主動(dòng)向磁盤(pán)陣列控制器故障處理系統(tǒng)的信 息收集模塊2,注冊(cè)狀態(tài)名為“GET_RES”的運(yùn)行狀態(tài),以通告本磁盤(pán)陣列控制器當(dāng)前的讀數(shù) 據(jù)任務(wù)執(zhí)行情況。故障判斷模塊3,用于根據(jù)信息收集模塊2接收的磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判 斷磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障。更為具體的,故障判斷模塊3包括
模型查找單元31,用于根據(jù)磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),在狀態(tài)模型預(yù) 置模塊1中查找其當(dāng)前任務(wù)在當(dāng)前階段的運(yùn)行狀態(tài)模型。更為具體的,例如根據(jù)磁盤(pán)陣列 控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)的狀態(tài)名為“GET_RES”,則在狀態(tài)模型預(yù)置模塊1中的運(yùn)行狀 態(tài)模型中查找與狀態(tài)名“GET_RES”對(duì)應(yīng)的運(yùn)行狀態(tài)模型。比對(duì)判斷單元32,用于比對(duì)磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),與模型查找單 元31查找得到的運(yùn)行狀態(tài)模型是否一致;若一致,則比對(duì)判斷單元32判定磁盤(pán)陣列控制器 運(yùn)行正常;否則,比對(duì)判斷單元32判定磁盤(pán)陣列控制器出現(xiàn)故障。更為具體的,比對(duì)判斷單元32需要判斷磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)的 各項(xiàng)參數(shù)是否在模型查找單元31獲取的運(yùn)行狀態(tài)模型的參數(shù)范圍內(nèi);并且,比對(duì)判斷單元 32需要判斷磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)的各項(xiàng)指標(biāo)是否達(dá)到運(yùn)行狀態(tài)模型中的 最低指標(biāo)要求。若磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài)中,所有的參數(shù)和指標(biāo)都符合運(yùn)行 狀態(tài)模型,則比對(duì)判斷單元32需要判定磁盤(pán)陣列控制器的任務(wù)執(zhí)行正常;否則,比對(duì)判斷 單元32需要判定磁盤(pán)陣列控制器的任務(wù)執(zhí)行不正常。更進(jìn)一步的,磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中出現(xiàn)故障,除了主動(dòng)注冊(cè)的運(yùn)行 狀態(tài)符合運(yùn)行狀態(tài)模型外,還有可能因?yàn)楦鞣N原因,根本就不進(jìn)行主動(dòng)注冊(cè),或超過(guò)正常的 注冊(cè)時(shí)間間隔。為此,本實(shí)施例中的運(yùn)行狀態(tài)模型中包括磁盤(pán)陣列控制器的各類任務(wù)在各 個(gè)階段之間的時(shí)間間隔。因此,本實(shí)施例提供的故障判斷模塊3還可以包括時(shí)限判斷單元33,用于在磁盤(pán) 陣列控制器主動(dòng)注冊(cè)運(yùn)行狀態(tài)后開(kāi)始計(jì)時(shí),判斷在對(duì)應(yīng)運(yùn)行狀態(tài)模型規(guī)定的時(shí)間間隔內(nèi), 是否收到磁盤(pán)陣列控制器的下一次運(yùn)行狀態(tài)的注冊(cè)。例如磁盤(pán)陣列控制器在執(zhí)行讀數(shù)據(jù)任務(wù)的過(guò)程中,主動(dòng)向信息收集模塊2注冊(cè) 了狀態(tài)名為“GET_RES”的運(yùn)行狀態(tài),在狀態(tài)模型預(yù)置模塊1對(duì)應(yīng)的運(yùn)行狀態(tài)模型中,標(biāo)明該 狀態(tài)與下一狀態(tài)“RD_DATA”之間的時(shí)間間隔應(yīng)當(dāng)小于2秒,即磁盤(pán)陣列控制器在完成本次 運(yùn)行狀態(tài)注冊(cè)后,應(yīng)當(dāng)在2秒內(nèi)完成向系統(tǒng)申請(qǐng)資源,進(jìn)入下一階段——讀取數(shù)據(jù),同時(shí),向 信息收集模塊2注冊(cè)狀態(tài)名為“RD_DATA”的運(yùn)行狀態(tài);若磁盤(pán)陣列控制器超時(shí)未注冊(cè),則時(shí) 限判斷單元33判定磁盤(pán)陣列控制器在該任務(wù)的執(zhí)行中出現(xiàn)故障。故障處理模塊4,用于在故障判斷模塊3判定磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中 出現(xiàn)故障時(shí),接管所述任務(wù),并按照預(yù)定的故障處理程序處理該故障。更為具體的,故障處 理模塊4包括第一處理單元41,用于將執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù)回滾,控制任務(wù)回到前一個(gè) 注冊(cè)的運(yùn)行狀態(tài)中,重新執(zhí)行該任務(wù);對(duì)于磁盤(pán)陣列控制器而言,其本身多任務(wù)、高并發(fā)的 特點(diǎn),使其發(fā)生暫態(tài)故障的可能性大大提升,而采用系統(tǒng)級(jí)重啟的方式來(lái)修復(fù)暫態(tài)故障的 方法對(duì)于磁盤(pán)陣列系統(tǒng)來(lái)說(shuō)代價(jià)過(guò)大。由于磁盤(pán)陣列控制器在任務(wù)執(zhí)行的每個(gè)關(guān)鍵階段都 會(huì)主動(dòng)注冊(cè),因此當(dāng)故障發(fā)生時(shí),第一處理單元41可以讓任務(wù)回到前一個(gè)合法狀態(tài)重新執(zhí) 行,通過(guò)再一次的嘗試來(lái)修復(fù)暫態(tài)故障。第二處理單元42,用于終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋 錯(cuò)誤信息。第一處理單元41采用的任務(wù)回滾的方法可以有效地解決大多數(shù)暫態(tài)故障,而對(duì) 于有些任務(wù),在其執(zhí)行過(guò)程中可能需要同其他任務(wù)進(jìn)行消息傳遞。為了保證系統(tǒng)的一致性, 對(duì)于這類任務(wù)的故障處理方式是第二處理單元42終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并
12對(duì)任務(wù)發(fā)起方反饋錯(cuò)誤信息。第三處理單元43,用于執(zhí)行磁盤(pán)陣列控制器的安全關(guān)閉,第三處理單元43將磁盤(pán) 陣列控制器緩存的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ)介質(zhì)中,安全的關(guān)閉磁盤(pán)陣列控制器。對(duì)于一些 嚴(yán)重的故障,第一處理單元41、第二處理單元42采用的兩種故障處理方法都無(wú)法使系統(tǒng)狀 態(tài)恢復(fù)時(shí),第三處理單元43啟動(dòng)應(yīng)急操作,將磁盤(pán)陣列控制器緩存在內(nèi)核中的數(shù)據(jù)回寫(xiě)到 非易失存儲(chǔ)介質(zhì)中,然后將系統(tǒng)安全的關(guān)閉。對(duì)于采用冗余控制器的磁盤(pán)陣列系統(tǒng),這種方 式可以迅速的通知備份磁盤(pán)陣列控制器進(jìn)行故障接管,避免了傳統(tǒng)冗余磁盤(pán)陣列控制器實(shí) 現(xiàn)方法中,故障只能在周期性的偵測(cè)后才能被發(fā)現(xiàn)的弊端,提高了系統(tǒng)整體的可靠性。優(yōu)選的,本實(shí)施例提供的磁盤(pán)陣列控制器故障處理系統(tǒng)還包括外圍檢測(cè)模塊5,外圍檢測(cè)模塊5對(duì)磁盤(pán)陣列控制器的外圍設(shè)備進(jìn)行定時(shí)的檢測(cè), 包括存儲(chǔ)介質(zhì)的可用性、磁盤(pán)陣列控制器的機(jī)箱溫度、磁盤(pán)陣列控制器的電源是否正常、 系統(tǒng)資源的使用狀態(tài);當(dāng)外圍檢測(cè)模塊5檢測(cè)到異常時(shí),通知故障處理模塊4進(jìn)行處理。實(shí)施本發(fā)明提供的磁盤(pán)陣列控制器故障處理系統(tǒng),可以獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣 列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí)進(jìn)行故障處理。同時(shí),在磁盤(pán)陣 列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁盤(pán)陣列控制器不會(huì)因?yàn)槿?何故障造成資源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán) 利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
一種磁盤(pán)陣列控制器故障處理方法,其特征在于,包括接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài);根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;若所述判斷為是,則接管所述任務(wù),并按照預(yù)定的故障處理程序處理所述故障。
2.如權(quán)利要求1所述的磁盤(pán)陣列控制器故障處理方法,其特征在于,所述接收磁盤(pán)陣 列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài)之前,還包括預(yù)設(shè)所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段的運(yùn)行狀態(tài)模型;所述磁盤(pán)陣列控制 器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和無(wú)數(shù)據(jù)任務(wù)。
3.如權(quán)利要求1或2所述的磁盤(pán)陣列控制器故障處理方法,其特征在于,所述根據(jù)所述 磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故 障,包括根據(jù)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),查找其當(dāng)前任務(wù)在當(dāng)前階段的運(yùn)行狀 態(tài)模型;判斷所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),是否符合查找得到的運(yùn)行狀態(tài)模型。
4.如權(quán)利要求3所述的磁盤(pán)陣列控制器故障處理方法,其特征在于,所述運(yùn)行狀態(tài)模 型中包括所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段之間的時(shí)間間隔;則所述根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí) 行過(guò)程中是否出現(xiàn)故障,還包括判斷所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)運(yùn)行狀態(tài)后,在對(duì)應(yīng)運(yùn) 行狀態(tài)模型規(guī)定的時(shí)間間隔內(nèi),是否收到下一次運(yùn)行狀態(tài)的注冊(cè)。
5.如權(quán)利要求1或2所述的磁盤(pán)陣列控制器故障處理方法,其特征在于,所述按照預(yù)定 的故障處理程序處理所述故障中,所述預(yù)定的故障處理程序包括任務(wù)回滾,控制執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù)回到前一個(gè)注冊(cè)的運(yùn)行狀態(tài)中,重新執(zhí)行 所述任務(wù);任務(wù)終止,終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋錯(cuò)誤信息;系統(tǒng)安全關(guān)閉,將磁盤(pán)陣列控制器緩存的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ)介質(zhì)中,安全的關(guān)閉 所述磁盤(pán)陣列控制器。
6.一種磁盤(pán)陣列控制器故障處理系統(tǒng),其特征在于,包括信息收集模塊,用于接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行 狀態(tài);故障判斷模塊,用于根據(jù)所述信息收集模塊接收的磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷 所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;故障處理模塊,用于在所述故障判斷模塊判定所述磁盤(pán)陣列控制器在任務(wù)執(zhí)行過(guò)程中 出現(xiàn)故障時(shí),接管所述任務(wù),并按照預(yù)定的故障處理程序處理所述故障。
7.如權(quán)利要求6所述的磁盤(pán)陣列控制器故障處理系統(tǒng),其特征在于,所述接收磁盤(pán)陣 列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài)之前,還包括狀態(tài)模型預(yù)置模塊,用于預(yù)設(shè)所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段的運(yùn)行狀態(tài) 模型;所述磁盤(pán)陣列控制器的任務(wù)類型包括讀數(shù)據(jù)任務(wù)、寫(xiě)數(shù)據(jù)任務(wù)和無(wú)數(shù)據(jù)任務(wù)。
8.如權(quán)利要求6或7所述的磁盤(pán)陣列控制器故障處理系統(tǒng),其特征在于,所述故障判斷模塊包括模型查找單元,用于根據(jù)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),在所述狀態(tài)模型 預(yù)置模塊中查找其當(dāng)前任務(wù)在當(dāng)前階段的運(yùn)行狀態(tài)模型;比對(duì)判斷單元,用于比對(duì)所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)的運(yùn)行狀態(tài),是否符合所述模 型查找單元查找得到的運(yùn)行狀態(tài)模型;若一致,則判定磁盤(pán)陣列控制器運(yùn)行正常;否則,判 定磁盤(pán)陣列控制器出現(xiàn)故障。
9.如權(quán)利要求8所述的磁盤(pán)陣列控制器故障處理系統(tǒng),其特征在于,所述運(yùn)行狀態(tài)模 型中包括所述磁盤(pán)陣列控制器的各類任務(wù)在各個(gè)階段之間的時(shí)間間隔;則所述故障判斷模塊還包括時(shí)限判斷單元,用于在所述磁盤(pán)陣列控制器主動(dòng)注冊(cè)運(yùn) 行狀態(tài)后開(kāi)始計(jì)時(shí),判斷在對(duì)應(yīng)運(yùn)行狀態(tài)模型規(guī)定的時(shí)間間隔內(nèi),是否收到下一次運(yùn)行狀 態(tài)的注冊(cè)。
10.如權(quán)利要求6或7所述的磁盤(pán)陣列控制器故障處理系統(tǒng),其特征在于,所述故障處 理模塊包括第一處理單元,用于將執(zhí)行過(guò)程中出現(xiàn)故障的任務(wù)回滾,控制所述任務(wù)回到前一個(gè)注 冊(cè)的運(yùn)行狀態(tài)中,重新執(zhí)行該任務(wù);第二處理單元,用于終止任務(wù)的繼續(xù)運(yùn)行、記錄錯(cuò)誤日志并對(duì)任務(wù)發(fā)起方反饋錯(cuò)誤信息;第三處理單元,用于執(zhí)行磁盤(pán)陣列控制器的安全關(guān)閉,第三處理單元將磁盤(pán)陣列控制 器緩存的數(shù)據(jù)回寫(xiě)到非易失存儲(chǔ)介質(zhì)中,安全的關(guān)閉所述磁盤(pán)陣列控制器。
全文摘要
本發(fā)明公開(kāi)一種磁盤(pán)陣列控制器故障處理方法及系統(tǒng),該方法包括接收磁盤(pán)陣列控制器在其任務(wù)執(zhí)行的各個(gè)階段,主動(dòng)注冊(cè)的運(yùn)行狀態(tài);根據(jù)所述磁盤(pán)陣列控制器的運(yùn)行狀態(tài),判斷所述磁盤(pán)陣列控制器在所述任務(wù)執(zhí)行過(guò)程中是否出現(xiàn)故障;若所述判斷為是,則接管所述任務(wù),并按照預(yù)定的故障處理程序處理所述故障。實(shí)施本發(fā)明提供的磁盤(pán)陣列控制器故障處理方法及系統(tǒng),可以獨(dú)立、主動(dòng)的監(jiān)控磁盤(pán)陣列控制器的運(yùn)行過(guò)程,主動(dòng)檢測(cè)磁盤(pán)陣列控制器故障并及時(shí)進(jìn)行故障處理。同時(shí),在磁盤(pán)陣列控制器發(fā)生故障時(shí),磁盤(pán)陣列控制器故障處理系統(tǒng)能夠保證磁盤(pán)陣列控制器不會(huì)因?yàn)槿魏喂收显斐少Y源泄漏、模塊失效甚至宕機(jī)等錯(cuò)誤。
文檔編號(hào)G06F11/07GK101887386SQ20101019019
公開(kāi)日2010年11月17日 申請(qǐng)日期2010年6月2日 優(yōu)先權(quán)日2010年6月2日
發(fā)明者王衛(wèi)斌 申請(qǐng)人:深圳市迪菲特科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
铁岭县| 焦作市| 玉龙| 石狮市| 浠水县| 合江县| 乌兰察布市| 仪陇县| 门源| 垣曲县| 郧西县| 五原县| 普定县| 罗江县| 苏尼特左旗| 通河县| 扎鲁特旗| 开封县| 金坛市| 南涧| 江西省| 包头市| 长武县| 佛坪县| 启东市| 江达县| 延寿县| 定兴县| 鹰潭市| 遂宁市| 潼南县| 牟定县| 左贡县| 山东省| 吉隆县| 灵石县| 云浮市| 庆阳市| 冷水江市| 大关县| 陕西省|