一種故障檢測方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及磁盤資源檢測技術(shù),尤其涉及一種故障檢測方法和系統(tǒng)。
【背景技術(shù)】
[0002]高可用技術(shù)是能夠保證我們的系統(tǒng)及軟件不間斷的運行并能提供正常服務,并且在某一節(jié)點出現(xiàn)故障,甚至宕機的情況下能迅速恢復正常業(yè)務的技術(shù)。高可用技術(shù)構(gòu)建的集群系統(tǒng)中可以管理并監(jiān)控各種資源,包括:數(shù)據(jù)庫資源、IP資源、NIC資源、服務資源及磁盤資源等。
[0003]磁盤資源的管理是集群系統(tǒng)比較重要的事務,我們系統(tǒng)及軟件的業(yè)務數(shù)據(jù)的載體就是磁盤,磁盤資源出現(xiàn)故障會直接導致我們的業(yè)務無法正常運行。利用傳統(tǒng)的RW方法檢測磁盤狀態(tài),無法精確的反映磁盤的真實狀態(tài),也缺少對潛在故障磁盤的處理方法。
【發(fā)明內(nèi)容】
[0004]為了解決上述問題,本發(fā)明提出了一種故障檢測方法和系統(tǒng),能夠精確的反映磁盤的真實狀態(tài),并對潛在故障的磁盤進行處理。
[0005]為了達到上述目的,本發(fā)明提出了一種磁盤資源故障檢測方法,該方法包括:
[0006]每次在對磁盤資源上的物理塊進行輸入/輸出I/O操作之前,檢查虛擬文件系統(tǒng)proc系統(tǒng),確認磁盤資源是否已經(jīng)正確掛載在本機。
[0007]當確認磁盤資源已經(jīng)正確掛載在本機以后,執(zhí)行I/O操作。
[0008]將I/O操作的返回時間與預設(shè)的時間閾值進行比較;當返回時間小于時間閾值時,判定磁盤資源正常并對下一次I/o操作進行故障檢測;當返回時間大于或等于時間閾值時,判定磁盤資源故障并修改磁盤文件系統(tǒng)的自檢參數(shù)。
[0009]優(yōu)選地,修改磁盤文件系統(tǒng)的自檢參數(shù)包括:修改磁盤文件系統(tǒng)的自檢周期及最大掛載次數(shù)。
[0010]優(yōu)選地,該方法還包括;當達到自檢周期或最大掛載次數(shù)時,觸發(fā)磁盤文件系統(tǒng)進入自檢狀態(tài)。
[0011]優(yōu)選地,該方法還包括:
[0012]當確認磁盤資源沒有正確掛載在本機時,判定磁盤資源沒有在本機當中,不執(zhí)行I/o操作。
[0013]優(yōu)選地,該方法還包括:
[0014]當判定磁盤資源故障時,停止出現(xiàn)故障的磁盤資源的全部操作流程,并且在停止出現(xiàn)故障的磁盤資源的全部操作流程之前,清除占用出現(xiàn)故障的磁盤資源的I/o操作。
[0015]當清除I/O操作成功之后,將出現(xiàn)故障的磁盤資源置為離線狀態(tài),并將涉及出現(xiàn)故障的磁盤資源上的所有操作切換到未出現(xiàn)故障的磁盤資源所在的節(jié)點上;當清除I/O操作未成功時,重新啟動出現(xiàn)故障的磁盤資源所在的節(jié)點。
[0016]為了達到上述目的,本發(fā)明還提出了一種磁盤資源故障檢測系統(tǒng),該系統(tǒng)包括:確認模塊、執(zhí)行模塊、比較模塊和判定模塊。
[0017]確認模塊,用于每次在對磁盤資源上的物理塊進行輸入/輸出I/O操作之前,檢查虛擬文件系統(tǒng)proc系統(tǒng),確認磁盤資源是否已經(jīng)正確掛載在本機。
[0018]執(zhí)行模塊,用于當確認磁盤資源已經(jīng)正確掛載在本機以后,執(zhí)行I/O操作。
[0019]比較模塊,用于將I/O操作的返回時間與預設(shè)的時間閾值進行比較。
[0020]判定模塊,用于當返回時間小于時間閾值時,判定磁盤資源正常并對下一次I/O操作進行故障檢測;當返回時間大于或等于時間閾值時,判定磁盤資源故障并修改磁盤文件系統(tǒng)的自檢參數(shù)。
[0021]優(yōu)選地,判定模塊修改磁盤文件系統(tǒng)的自檢參數(shù)是指:修改磁盤文件系統(tǒng)的自檢周期及最大掛載次數(shù)。
[0022]優(yōu)選地,該系統(tǒng)還包括觸發(fā)模塊。
[0023]觸發(fā)模塊,用于當達到自檢周期或最大掛載次數(shù)時,觸發(fā)磁盤文件系統(tǒng)進入自檢狀態(tài)。
[0024]優(yōu)選地,執(zhí)行模塊還用于:
[0025]當確認磁盤資源沒有正確掛載在本機時,判定磁盤資源沒有在本機當中,不執(zhí)行I/O操作。
[0026]優(yōu)選地,該系統(tǒng)還包括:清除模塊和節(jié)點切換模塊。
[0027]清除模塊,用于當判定磁盤資源故障時,停止出現(xiàn)故障的磁盤資源的全部操作流程,并且在停止出現(xiàn)故障的磁盤資源的全部操作流程之前,清除占用出現(xiàn)故障的磁盤資源的I/O操作。
[0028]節(jié)點切換模塊,用于當清除I/O操作成功之后,將出現(xiàn)故障的磁盤資源置為離線狀態(tài),并將涉及出現(xiàn)故障的磁盤資源上的所有操作切換到未出現(xiàn)故障的磁盤資源所在的節(jié)點上;當清除I/O操作未成功時,重新啟動出現(xiàn)故障的所磁盤資源所在的節(jié)點。
[0029]與現(xiàn)有技術(shù)相比,本發(fā)明包括:每次在對磁盤資源上的物理塊進行輸入/輸出I/O操作之前,檢查虛擬文件系統(tǒng)proc系統(tǒng),確認磁盤資源是否已經(jīng)正確掛載在本機。當確認磁盤資源已經(jīng)正確掛載在本機以后,執(zhí)行I/O操作。將I/O操作的返回時間與預設(shè)的時間閾值進行比較;當返回時間小于時間閾值時,判定磁盤資源正常并對下一次I/O操作進行故障檢測;當返回時間大于或等于時間閾值時,判定磁盤資源故障并修改磁盤文件系統(tǒng)的自檢參數(shù)。。通過本發(fā)明的方案,能夠精確的反映磁盤的真實狀態(tài),并對潛在故障的磁盤進行處理。
【附圖說明】
[0030]下面對本發(fā)明實施例中的附圖進行說明,實施例中的附圖是用于對本發(fā)明的進一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護范圍的限制。
[0031]圖1為本發(fā)明的磁盤資源故障檢測方法流程圖;
[0032]圖2為本發(fā)明的磁盤資源故障檢測系統(tǒng)組成框圖。
【具體實施方式】
[0033]為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進一步的描述,并不能用來限制本發(fā)明的保護范圍。
[0034]高可用集群技術(shù)中,傳統(tǒng)的檢測磁盤狀態(tài)的RW方法,僅僅是根據(jù)輸入/輸出I/O返回的大小,檢測磁盤狀態(tài)是否正常,而忽略了 I/O返回的時間及檢測前磁盤是否已正確掛載,從而,無法精確的檢測磁盤資源的真實狀態(tài),更無法檢測I/O延時比較大的潛在故障磁盤。
[0035]本專利發(fā)明了一種改進的用于高可用技術(shù)中檢測磁盤資源狀態(tài)的方法,通過對磁盤上的塊進行I/o操作及查詢虛擬文件系統(tǒng)proc系統(tǒng)兩個條件來判斷磁盤是否處于故障狀態(tài);通過I/O請求的返回時間與設(shè)置的閾值比較,判斷磁盤是否是潛在故障盤,通過修改磁盤文件系統(tǒng)的自檢參數(shù)來降低磁盤出現(xiàn)文件系統(tǒng)故障的概率。
[0036]具體地,本發(fā)明提出了一種磁盤資源故障檢測方法,如圖1所示,該方法包括:
[0037]S101、每次在對磁盤資源上的物理塊進行I/O操作之前,檢查proc系統(tǒng),確認磁盤資源是否已經(jīng)正確掛載在本機。
[0038]在本發(fā)明實施例中,在對磁盤資源上的物理塊進行I/O操作之前,需要根據(jù)用戶提供的通用唯一識別碼UUID獲取磁盤資源在本地的設(shè)備名稱(如:/deV/Sdcl),并且將磁盤資源掛載到用戶指定的掛載點上,只有對于掛載在本機上的磁盤資源才能在其物理塊上進行I/O操作。
[0039]并且在將磁盤資源掛載到用戶指定的掛載點上以后,還需要獲取磁盤資源當前的運行狀態(tài),并上報到重啟客戶端CS端控制界面,便于用戶實時查看磁盤資源的狀態(tài)。
[0040]S102、當確認磁盤資源已經(jīng)正確掛載在本機以后,執(zhí)行I/O操作。
[0041 ] 優(yōu)選地,該方法還包括:
[0042]當確認磁盤資源沒有正確掛載在本機時,判定磁盤資源沒有在本機當中,不執(zhí)行I/O操作。
[0043]S103、將I/O操作的返回時間與預設(shè)的時間閾值進行比較;當返回時間小于時間閾值時,判定磁盤資源正常并對下一次I/o操作進行故障檢測;當返回時間大于或等于時間閾值時,判定磁盤資源故障并修改磁盤文件系統(tǒng)的自檢參數(shù)。
[0044]優(yōu)選地,修改磁盤文件系統(tǒng)的自檢參數(shù)包括:修改磁盤文件系統(tǒng)的自檢周期及最大掛載次數(shù)。
[0045]優(yōu)選地,該方法還包括;當達到自檢周期或最大掛載次數(shù)時,觸發(fā)磁盤文件系統(tǒng)進入自檢狀態(tài)。
[