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