TW201737111A - 分散式儲存系統硬碟掛住故障檢測、處理方法及裝置 - Google Patents
分散式儲存系統硬碟掛住故障檢測、處理方法及裝置 Download PDFInfo
- Publication number
- TW201737111A TW201737111A TW106107797A TW106107797A TW201737111A TW 201737111 A TW201737111 A TW 201737111A TW 106107797 A TW106107797 A TW 106107797A TW 106107797 A TW106107797 A TW 106107797A TW 201737111 A TW201737111 A TW 201737111A
- Authority
- TW
- Taiwan
- Prior art keywords
- hard disk
- target hard
- fault
- target
- management
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明公開了一種分散式儲存系統硬碟掛住故障檢測、處理方法及裝置,其透過檢測目標硬碟對應的存取請求的執行時間來判斷該目標硬碟是否出現掛住故障,可以及時發現目標硬碟的掛住故障;在發現目標硬碟出現掛住故障後,一方面透過狀態標記避免故障硬碟再次被存取,另一方面清理故障硬碟佔用的系統資源,使得其他行程可以重新分配應用這些系統資源,降低硬碟掛住故障可能帶來的不利影響,達到停損目的。可見,本發明提供的掛住故障檢測及處理方案既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
Description
本發明涉及電腦技術領域,尤其涉及一種分散式儲存系統硬碟掛住故障檢測、處理方法及裝置。
分散式儲存系統是構建在本地檔案系統之上的儲存系統,其將資料分散儲存到多個硬碟上。對於分散式儲存系統而言,從本地檔案系統到各個硬碟內部的整個鏈路上都有可能出現故障,其中硬碟掛住(hang up)故障,表現為硬碟無法響應正常的操作,所有對該硬碟的輸入輸出操作都因為整個鏈路沒有應答而不能中止。掛住的硬碟如果處理不當可能會導致整個存取行程失去回應,進而導致使該行程所管理的資料都無法存取、前端請求延時變高、系統負載增加、資料可用性降低等問題。故及時檢測到硬碟掛住故障,降低該故障造成的影響,是保證分散式儲存系統性能的一個關鍵問題。
現有的硬碟掛住故障處理方法主要包括以下四種:(1)使用硬碟廠商提供的工具向硬碟發出下線指令,硬碟收到下線指令後停止工作,從而使對硬碟的存取
能夠返回,終止硬碟掛住狀態;(2)使用硬碟的硬體開關停止硬碟工作,通常是在現有硬碟上增加一個元件,透過該元件直接拉低硬碟的電壓,使硬碟掉電,從而終止硬碟掛住狀態;(3)重啟機器,重啟後,硬碟狀態被重置,但只存在改善硬碟掛住狀態的可能性;(4)直接重啟行程,新的行程會規避使用掛住的硬碟。
但是上述處理方法都存在一定的缺陷,包括需要依賴額外的輔助工具、影響系統資源可用性等。具體的,上述方法(1)需要依賴於硬碟廠商提供的工具,且不適用於硬碟無法接受下線指令的情況,實際應用成功率較低;方法(2)需要在硬碟上增加新硬體(即硬體開關),導致硬碟開發和維護的成本增加,且適用範圍窄;方法(3)引入了人為干預,在機器重啟期間,機器本身和儲存系統的可用性降低,而且存在重啟失敗的可能,即使重啟成功,也需要儲存系統能夠規避對掛住的硬碟的使用,對儲存系統的要求較高;方法(4)中原有行程因為有執行緒掛住,無法釋放記憶體資源,使得系統記憶體佔用高,即使重啟了系統的可用資源也會降低。因此,極需一種成功率高、適用範圍廣、對系統可用性影響小的硬碟掛住故障處理方法。
本發明要解決的第一個技術問題是,在不依靠輔助工具的前提下實現分散式儲存系統硬碟掛住故障的
自動檢測;為此,本發明提供一種分散式儲存系統硬碟掛住故障檢測方法及裝置。
本發明第一態樣,提供一種分散式儲存系統硬碟掛住故障檢測方法,包括:檢測目標硬碟對應的各個存取請求的執行時間;判斷是否存在執行時間大於對應的預設閾值的時滯請求;如果存在所述時滯請求,則確定所述目標硬碟出現掛住故障。
結合第一態樣,在本發明第一態樣第一種可行的實施方式中,所述故障檢測方法還包括:建立所述目標硬碟對應的IO執行緒組;透過所述IO執行緒組讀取並處理所述目標硬碟對應的各個存取請求,以完成對所述目標硬碟的讀寫操作。
結合第一態樣,或者第一態樣第一種可行的實施方式,在第一態樣第二種可行的實施方式中,檢測目標硬碟對應的各個存取請求的執行時間,包括:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
本發明第二態樣,提供一種分散式儲存系統硬碟掛住故障檢測裝置,包括:檢測單元,用於檢測目標硬碟對應的各個存
取請求的執行時間;比較單元,用於判斷是否存在執行時間大於對應的預設閾值的時滯請求,如果存在所述時滯請求,則確定所述目標硬碟出現掛住故障。
結合第二態樣,在第二態樣第一種可行的實施方式中,所述故障檢測裝置還包括:行程管理單元,用於建立所述目標硬碟對應的IO執行緒組,並透過所述IO執行緒組讀取並處理所述目標硬碟對應的各個存取請求,以完成對所述目標硬碟的讀寫操作。
結合第二態樣,或者第二態樣第一種可行的實施方式,在第二態樣第二種可行的實施方式中,為實現檢測目標硬碟對應的各個存取請求的執行時間,所述檢測單元具體被配置為:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
由以上技術方案可知,本發明實施例透過檢測目標硬碟對應的存取請求的執行時間來判斷該目標硬碟是否出現掛住故障,可以及時發現目標硬碟的掛住故障;且該掛住故障檢測方式既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
本發明要解決的第二個技術問題是,在不依靠輔助工具的前提下實現分散式儲存系統硬碟掛住故障的
自動處理;為此,本發明提供一種分散式儲存系統硬碟掛住故障處理方法及裝置。
本發明第三方面,提供一種分散式儲存系統硬碟掛住故障處理方法,包括:當目標硬碟出現掛住故障時,將所述目標硬碟的狀態標記為掛住故障狀態;清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源,以便啟動新的用於管理所述目標硬碟的管理行程。
結合第三態樣,在第三態樣第一種可行的實施方式中,清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源,包括:申請新記憶體,並透過所述新記憶體執行下述兩步操作,以清除所述被掛住管理行程佔用的記憶體資源;查找得到所述被掛住行程佔用的全部記憶體段;分別解除每個記憶體段對應的記憶體映射。
結合第三態樣,或者第三態樣第一種可行的實施方式,在第三態樣第二種可行的實施方式中,所述故障處理方法還包括:在清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源之前,彈出所述目標硬碟的輸入佇列中快取的各個存取請求,並返回所述目標硬碟的故障資訊。
結合第三態樣,或者第三態樣第一種可行的實施方式,在第三態樣第三種可行的實施方式中,所述故障處理方法還包括:在每次啟動所述目標硬碟的管理行程後,確定所述目標硬碟的狀態;如果所述目標硬碟的狀態為掛住故障狀態,則禁止對所述目標硬碟的存取。
結合第三態樣,或者第三態樣第一種可行的實施方式,在第三態樣第四種可行的實施方式中,所述故障處理方法還包括:將所述目標硬碟的掛住故障狀態儲存至正常的硬碟。
本發明第四態樣,提供一種分散式儲存系統硬碟掛住故障處理裝置,包括:狀態管理單元,用於當目標硬碟出現掛住故障時,將所述目標硬碟的狀態標記為掛住故障狀態;資源清理單元,用於清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源,以便啟動新的用於管理所述目標硬碟的管理行程。
結合第四態樣,在第四態樣第一種可行的實施方式中,為實現清理所述目標硬碟中被掛住管理行程所佔用的系統資源,所述資源清理單元具體被配置為,申請新記憶體,並透過所述新記憶體執行下述兩步操作,以清除所述被掛住管理行程佔用的記憶體資源:查找得到所述
被掛住行程佔用的全部記憶體段,以及分別解除每個記憶體段對應的記憶體映射。
結合第四態樣,或者第四態樣第一種可行的實施方式,在第四態樣第二種可行的實施方式中,所述故障處理裝置還包括:請求清理單元,用於彈出所述目標硬碟的輸入佇列中快取的各個存取請求,並返回所述目標硬碟的故障資訊。
結合第四態樣,或者第四態樣第一種可行的實施方式,在第四態樣第三種可行的實施方式中,所述故障處理裝置還包括:可用性監督單元,用於在每次啟動所述目標硬碟的管理行程後,確定所述目標硬碟的狀態,並在所述目標硬碟的狀態為掛住故障狀態時,禁止對所述目標硬碟的存取。
結合第四態樣,或者第四態樣第一種可行的實施方式,在第四態樣第四種可行的實施方式中,所述狀態管理單元,還用於:將所述目標硬碟的掛住故障狀態儲存至正常的硬碟。
由以上技術方案可知,本發明實施例在發現目標硬碟出現掛住故障後,一方面透過狀態標記避免故障硬碟再次被存取,另一方面清理故障硬碟佔用的系統資源,使得其他行程可以重新分配應用這些系統資源,降低硬碟掛住故障可能帶來的不利影響,達到停損目的。可
見,本發明實施例提供的掛住故障處理方案既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本發明。
S101-S103‧‧‧步驟
S201-S204‧‧‧步驟
101‧‧‧檢測單元
102‧‧‧比較單元
201‧‧‧狀態管理單元
202‧‧‧請求清理單元
203‧‧‧資源清理單元
204‧‧‧可用性監督單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,對於本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些圖式獲得其他的圖式。
圖1為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障檢測方法的流程圖。
圖2為本發明一示例性實施例示出的分散式儲存系統中一個資料儲存節點中存取請求處理流程示意圖。
圖3為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障處理方法的流程圖。
圖4為本發明一示例性實施例示出的另一種分散式儲存系統硬碟掛住故障處理方法的流程圖。
圖5為本發明一示例性實施例示出的分散式儲存系統硬碟掛住故障檢測及處理方法時序圖。
圖6為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障檢測裝置的結構方塊圖。
圖7為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障處理裝置的結構方塊圖。
圖8為本發明一示例性實施例示出的另一種分散式儲存系統硬碟掛住故障處理裝置的結構方塊圖。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本發明的一些態樣相一致的裝置和方法的例子。
為了全面理解本發明,在以下詳細描述中提到了眾多具體的細節,但是本領域技術人員應該理解,本發明可以無需這些具體細節而實現。在其他實施例中,不詳細描述公知的方法、過程、元件和電路,以免不必要地導致實施例模糊。
圖1為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障檢測方法的流程示意圖。如圖1所示,所述檢測方法包括:
S101、檢測目標硬碟對應的各個存取請求的執
行時間。
所述存取請求,具體可以包括從目標硬碟中讀取資料的讀請求(Output),以及向目標硬碟中寫入資料或修改資料的寫請求(Input)等,有目標硬碟的管理行程統一調度並執行。
S102、判斷是否存在執行時間大於對應的預設閾值的時滯請求。
S103、如果存在所述時滯請求,則確定所述目標硬碟出現掛住故障。
實際應用中,無論因何種原因(如硬體損壞、讀寫超負荷等)導致硬碟出現掛住故障,其直接表現都至少包括正在執行的對於該硬碟的存取請求在很長一段時間內都未執行結束。有鑑於此,本發明實施例透過檢測目標硬碟對應的存取請求的執行時間來判斷該目標硬碟是否出現掛住故障,可以及時發現目標硬碟的掛住故障,以便及時處理故障;且,本發明實施例提供的掛住故障檢測方法可以配置在目標硬碟的管理行程中自動執行,既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
在本發明一個可行的實施方式中,上述分散式儲存系統硬碟掛住故障檢測方法,還可以包括以下步驟:
S104、為所述目標硬碟設置對應的IO執行緒
組。
S105、透過所述IO執行緒組讀取並處理所述目標硬碟對應的各個存取請求,以完成對所述目標硬碟的讀寫操作。
為便於對硬碟進行管理、實現讀寫(I/O)服務,本發明實施例為目標硬碟設置專用的IO執行緒組,也即在目標硬碟的管理行程中建立一組IO執行緒,共用該管理行程的系統資源,並用於僅用於處理對該目標硬碟的存取請求;相對於現有技術透過一組IO執行緒同時服務於所有硬碟讀寫操作,或者直接使用使用者執行緒服務於硬碟讀寫操作,本發明實施例為每個硬碟分別設置IO執行緒組,可以避免因非硬碟故障或者某一個硬碟故障導致IO執行緒被掛住,進而影響所有硬碟的讀寫操作的現象。另外,IO執行緒組中的各個執行緒並存執行不同的存取請求,一方面可以提高存取請求處理效率,即提高硬碟的讀寫速度,另一方面還可以在某個執行緒在執行某個存取請求並被掛住時,其他執行緒可以不受影響繼續處理其他存取請求。
相應的,基於上述IO執行緒組,上述步驟S101所述的檢測目標硬碟對應的各個存取請求的執行時間,具體可以為檢測其IO執行緒組對各個存取請求的執行時間。
進一步的,在本發明另一個可行的實施例中,上述檢測方法還可以包括:針對每個目標磁片,設置
對應的輸入佇列。
如圖2所示的本發明實施例中任一個資料儲存節點Y中存取請求(IO請求)處理流程示意圖,對於資料儲存節點Y中的一個磁片X,設置一組IO執行緒,為便於區分,圖2中將其分別編號為T1~Tn;相應的,每個IO執行緒對應設置一個輸入佇列,即圖2中編號為Q1至Qn的n個IO佇列,與IO執行緒一一對應。資料儲存節點Y接收到來自用戶端的IO請求後,先對該IO請求進行處理,確定其存取物件為哪個磁片的哪部分資料,並將對同一磁片的同一種資料的不同IO請求放入同一IO佇列中,實現對同一資料的串列存取,從而可以避免兩個IO請求同時存取同一資料。另外,對於資料儲存節點Y,其還可以存在不綁定任一磁片的IO執行緒(T0)及相應的IO佇列(Q0),實現對整個節點Y的相關操作。一個完整的分散式儲存系統可以包括與資料儲存節點Y並列的多個資料儲存節點,每個資料儲存節點的IO請求處理流程均可採用圖2所示流程。
相應的,上述步驟S101所述的檢測目標硬碟對應的各個存取請求的執行時間,具體可以為:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
其中,所述輸入佇列可以設置為先進先出(First Input First Output,FIFO)佇列。以圖2中IO佇列Q1為例,不同存取請求按照時間順次依次存入Q1中,其中進入Q1越早的存取請求越接近該Q1的隊頭,
再相應的IO執行緒T1每次從Q1的隊頭位置讀取一個存取請求並執行,完成相應的磁片操作H1;同時,在每次讀出隊頭的存取請求時,開始對T1中該存取請求的執行時間進行計時,直至該存取請求執行結束,如果計時達到預設閾值時,該存取請求仍未執行完畢,說明該存取請求的執行時間超過預設閾值,則可以判定該存取請求為時滯請求,相應的IO執行緒T1被掛住,進而可以判定磁片X出現掛住故障。
可見,本發明實施例基於目標硬碟的輸入佇列,根據其存取請求的出隊循序執行並對其執行時間進行計時,可以準確得到每個存取請求的執行時間,從而及時發現時滯請求,確定硬碟掛住故障,為及時處理出現掛住故障的硬碟奠定了基礎。
本發明實施例還提供了一種分散式儲存系統硬碟掛住故障處理方法,圖3示出了該掛住故障處理方法的一種流程圖。
如圖3所示,該掛住故障處理方法包括以下步驟:
S201、當目標硬碟出現掛住故障時,將所述目標硬碟的狀態標記為掛住故障狀態。
S203、清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源。
基於以上分散式儲存系統硬碟掛住故障檢測方法或者其他可行的檢測方法,當判定某個硬碟出現掛住
故障時,可以繼續執行本實施例提供的處理方法。具體的,步驟S201實際為硬碟狀態管理操作,對出現掛住故障的硬碟標記掛住故障狀態;其中,硬碟一旦被標記為掛住故障狀態,則不允許其再重新標記為正常狀態,從而可以避免再次出現掛住故障。步驟S203實際為對被掛住硬碟的資源清理操作:依據上述檢測方法的實施例所述,當目標硬碟出現掛住故障時,必然存在至少一個時滯請求,也即目標硬碟的管理行程被掛住,透過清理該被掛住管理行程所佔用的系統資源,如關閉已打開的檔案控制代碼等。
步驟S203中清理系統資源的作用在於,一方面,可以對被掛住管理行程所佔用的系統資源進行重新分配,以供其他行程應用;另一方面,被掛住行程佔用的系統資源被清理完畢後,該被掛住管理行程即自動退出,也即解除了該行程的掛住狀態,進而可以建立並啟動新的管理行程來管理該目標硬碟。
可見,本發明實施例提供的硬碟掛住故障處理方法,一方面透過狀態標記避免故障硬碟再次被存取,另一方面清理故障硬碟佔用的系統資源,使得其他行程可以重新分配應用這些系統資源,降低硬碟掛住故障可能帶來的不利影響,達到停損目的。且,上述處理方法既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
在本發明一個可行的實施例中,上述步驟S201中,在將目標硬碟的狀態標記為掛住故障狀態後,還可以繼續執行以下步驟:將該掛住故障狀態儲存至正常的硬碟。
上述正常的硬碟具體可以為整個分散式儲存系統的系統硬碟,也可以為與該目標硬碟存在通信連接的其他硬碟。上述在硬碟直接實現狀態同步,可以保證被掛住的硬碟即使臨時變成可用狀態也不能再被用到,從而避免再次出現掛住故障。
進一步的,在本發明一個可行的實施例中,上述步驟S203中清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源,具體可以包括以下步驟:
S2031、申請新記憶體,並透過所述新記憶體執行下述步驟S2032及S2033。
本發明透過新記憶體執行具體的清理步驟,而不是。
S2032、查找得到所述被掛住行程佔用的全部記憶體段。
目標硬碟的管理行程被分配的記憶體空間通常為多個記憶體段,要實現完全清理,需要查找到全部的記憶體段;具體的,在Linux作業系統下可以從/proc/self/smaps這個檔中得到所述記憶體段。
S2033、分別解除每個記憶體段對應的記憶體映射。
為管理行程分配系統資源時,通常是透過mmap操作在某項系統資源(如一個檔)與一個記憶體段之間建立映射關係;相應的,清理記憶體佔用時,可以透過munmap解除各個記憶體段對應的記憶體映射關係。
可見,上述步驟S2032和S2033實際為透過新記憶體執行清理被掛住管理行程所佔用的記憶體資源的操作,該操作的執行過程也不需要額外的硬體工具以及人為干預,簡單易行;且相對於直接在該目標硬碟的管理行程原來被分配的記憶體中執行該操作,可以避免執行該清理步驟的執行緒也隨管理行程被掛住。
參照圖4,在本發明另一個可行的實施例中,上述分散式儲存系統硬碟掛住故障處理方法,還包括以下步驟:
S202、彈出所述目標硬碟的輸入佇列中快取的各個存取請求,並返回所述目標硬碟的故障資訊。
由於目標硬碟的管理行程被掛住,目標硬碟的輸入佇列中快取的各個請求(即還未來得及處理的請求)也無法繼續被處理,本實施例將這些存取請求彈出,並向使用者返回該目標硬碟的故障資訊,如“硬碟出錯”等,從而可以避免相關用戶繼續等待未處理請求的回應,以及避免使用者再次向該目標硬碟發送存取請求。
仍參照圖4,在本發明另一個可行的實施例中,上述處理方法還包括:
S204、在每次啟動所述目標硬碟的管理行程
後,確定所述目標硬碟的狀態,並在所述目標硬碟的狀態為掛住故障狀態時,禁止對所述目標硬碟的存取。
上述步驟S204實現了對目標硬碟的可用性監督,既可以執行於新硬碟啟用時,用於啟動對目標硬碟掛住故障檢測步驟,以實現對目標硬碟可用性的即時監督;步驟S204還可以執行於上述步驟S203之後,即重啟故障硬碟的管理行程後,由於在步驟S201中故障硬碟已被標記為掛住故障狀態,故可透過步驟S204,拒絕一切針對該故障硬碟的存取請求,避免該故障硬碟再次被存取而再次引起行程掛住。
另外,圖5透過時序圖的形式展示了本發明實施例所述的分散式儲存系統硬碟掛住故障檢測及處理流程。參照圖5,當一個資料儲存節點的管理行程啟動後,相應建立並啟動Hang碟檢測執行緒,週期性檢測該資料儲存節點中是否存在出現掛住故障的磁片(Hang碟);其中,該Hang碟檢測執行緒所執行的檢測操作具體包括,針對磁片的各個IO執行緒,檢測是否存在長時間未返回執行結果的請求(即時滯請求),如果磁片X的某個IO執行緒中存在時滯請求,說明磁片X被Hang住,則啟動Hang碟清理執行緒,清理整個資料儲存節點管理行程所佔用的各種資源、記憶體(memory)、函數依賴關係(Functional Dependency,FD)等,並在系統磁片上記錄磁片X的狀態為掛住故障狀態(Hang狀態);然後重啟當前的管理行程,得到新的管理行程,新的管理行程啟動
後,首先識別該儲存節點中各個磁片的狀態,以禁用(忽略)標記為Hang狀態的磁片。
透過以上的方法實施例的描述,所屬領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體平臺的方式來實現,當然也可以透過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,並儲存在一個儲存介質中,包括若干指令用以使得分散式儲存系統執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存介質包括:唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟或者光碟等各種可以儲存資料和程式碼的介質。
圖6為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障檢測裝置的結構方塊圖。如圖6所示,所述檢測裝置包括:檢測單元101和比較單元102。
其中,檢測單元101用於,檢測目標硬碟對應的各個存取請求的執行時間;比較單元102用於,判斷是否存在執行時間大於對應的預設閾值的時滯請求,如果存在所述時滯請求,則確定所述目標硬碟出現掛住故障。
由以上技術方案可知,本發明實施例透過檢測目標硬碟對應的存取請求的執行時間來判斷該目標硬碟是否出現掛住故障,可以及時發現目標硬碟的掛住故障,
以便及時處理故障;且,本發明實施例既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
在本發明一個可行的實施方式中,上述檢測裝置還可以包括:行程管理單元;該行程管理單元用於,建立所述目標硬碟對應的IO執行緒組,並透過所述IO執行緒組讀取並處理所述目標硬碟對應的各個存取請求,以完成對所述目標硬碟的讀寫操作。
在本發明另一個可行的實施方式中,上述檢測裝置中的檢測單元101具體可以配置為:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
即在透過基於FIFO規則的輸入佇列快取目標硬碟的存取請求時,目標硬碟的管理行程(更具體的,可以是上述IO執行緒組)僅從輸入佇列的隊頭位置讀取存取請求並開始執行,故在隊頭的存取請求被讀出時,開始對該存取請求的執行時間進行計時,直至該存取請求執行結束,如果計時達到預設閾值時,該存取請求仍未執行完畢,說明該存取請求的執行時間超過預設閾值,則可以判定該存取請求為時滯請求,進而可以判定相應的目標硬碟出現掛住故障。
可見,本發明實施例基於目標硬碟的輸入佇列,根據其存取請求的出隊循序執行並對其執行時間進行計時,可以準確得到每個存取請求的執行時間,從而及時
發現時滯請求,確定硬碟掛住故障,為及時處理出現掛住故障的硬碟奠定了基礎。
圖7為本發明一示例性實施例示出的一種分散式儲存系統硬碟掛住故障處理裝置的結構方塊圖。如圖7所示,所述處理裝置包括:狀態管理單元201和資源清理單元203。
其中,狀態管理單元201用於,當硬碟出現掛住故障時,將所述出現掛住故障的目標硬碟的狀態標記為掛住故障狀態;
資源清理單元203用於,清理所述目標硬碟對應的被掛住管理行程所佔用的系統資源,以便啟動新的用於管理所述目標硬碟的管理行程。
由以上技術方案可知,本發明實施例提供的硬碟掛住故障處理裝置,一方面透過狀態標記避免故障硬碟再次被存取,另一方面清理故障硬碟佔用的系統資源,使得其他行程可以重新分配應用這些系統資源,降低硬碟掛住故障可能帶來的不利影響,達到停損目的。且,上述處理裝置既不需要依賴硬碟廠商提供檢測工具,也不需要在硬碟上增加新硬體,也不需要人為干預,簡單易行,不會影響硬碟的生產及使用成本。
在本發明一個可行的實施方式中,上述狀態管理單元201在將目標硬碟的狀態標記為掛住故障狀態後,還可以將該掛住故障狀態儲存至正常的硬碟。
本實施例透過不同硬碟直接的狀態同步,可
以保證被掛住的硬碟即使臨時變成可用狀態也不能再被用到,從而避免再次出現掛住故障。
在本發明一個可行的實施方式中,為實現清理所述目標硬碟中被掛住管理行程佔用的系統資源,所述資源清理單元203具體被配置為,申請新記憶體,並透過所述新記憶體執行下述兩步操作,以清除所述被掛住管理行程佔用的記憶體資源:查找得到所述被掛住行程佔用的全部記憶體段,以及分別解除每個記憶體段對應的記憶體映射。
參照圖8,在本發明另一個可行的實施方式中,上述故障處理裝置還可以包括:請求清理單元202。該請求清理單元202用於,彈出所述目標硬碟的輸入佇列中快取的各個存取請求,並返回所述目標硬碟的故障資訊。
仍參照圖8,上述故障處理裝置還可以包括:可用性監督單元204;該可用性監督單元204用於,在每次啟動所述目標硬碟的管理行程後,確定所述目標硬碟的狀態,並在所述目標硬碟的狀態為掛住故障狀態時,禁止對所述目標硬碟的存取。
可見,透過上述可用性監督單元,可以實現對目標硬碟可用性的即時監督,並在目標硬碟出現掛住故障時,拒絕一切針對該故障硬碟的存取請求,避免該故障硬碟再次被存取而再次引起行程掛住。
本說明書中的各個實施例均採用遞進的方式
描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置或系統實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅是本發明的具體實施方式,使本領域技術人員能夠理解或實現本發明。對這些實施例的多種修改對本領域的技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。
Claims (16)
- 一種分散式儲存系統硬碟掛住故障檢測方法,其特徵在於,包括:檢測目標硬碟對應的各個存取請求的執行時間;判斷是否存在執行時間大於對應的預設閾值的時滯請求;如果存在該時滯請求,則確定該目標硬碟出現掛住故障。
- 根據請求項1所述的檢測方法,其中,還包括:建立該目標硬碟對應的IO執行緒組;透過該IO執行緒組讀取並處理該目標硬碟對應的各個存取請求,以完成對該目標硬碟的讀寫操作。
- 根據請求項1或2所述的檢測方法,其中,檢測目標硬碟對應的各個存取請求的執行時間,包括:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
- 一種分散式儲存系統硬碟掛住故障處理方法,其特徵在於,包括:當目標硬碟出現掛住故障時,將該目標硬碟的狀態標記為掛住故障狀態;清理該目標硬碟對應的被掛住管理行程所佔用的系統資源,以便啟動新的用於管理該目標硬碟的管理行程。
- 根據請求項4所述的故障處理方法,其中,清理該目標硬碟對應的被掛住管理行程所佔用的系統資源,包 括:申請新記憶體,並透過該新記憶體執行下述兩步操作,以清除該被掛住管理行程佔用的記憶體資源;查找得到該被掛住行程佔用的全部記憶體段;分別解除每個記憶體段對應的記憶體映射。
- 根據請求項4或5所述的故障處理方法,在清理該目標硬碟對應的被掛住管理行程所佔用的系統資源之前,還包括:彈出該目標硬碟的輸入佇列中快取的各個存取請求,並返回該目標硬碟的故障資訊。
- 根據請求項4或5該的故障處理方法,其中,還包括:在每次啟動該目標硬碟的管理行程後,確定該目標硬碟的狀態;如果該目標硬碟的狀態為掛住故障狀態,則禁止對該目標硬碟的存取。
- 根據請求項4或5所述的故障處理方法,其中,還包括:將該目標硬碟的掛住故障狀態儲存至正常的硬碟。
- 一種分散式儲存系統硬碟掛住故障檢測裝置,其特徵在於,包括:檢測單元,用於檢測目標硬碟對應的各個存取請求的執行時間;比較單元,用於判斷是否存在執行時間大於對應的預 設閾值的時滯請求,如果存在該時滯請求,則確定該目標硬碟出現掛住故障。
- 根據請求項9所述的故障檢測裝置,其中,還包括:行程管理單元,用於建立該目標硬碟對應的IO執行緒組,並透過該IO執行緒組讀取並處理該目標硬碟對應的各個存取請求,以完成對該目標硬碟的讀寫操作。
- 根據請求項9或10所述的故障檢測裝置,其中,為實現檢測目標硬碟對應的各個存取請求的執行時間,該檢測單元具體被配置為:檢測目標硬碟的輸入佇列中處於隊頭位置的存取請求的執行時間。
- 一種分散式儲存系統硬碟掛住故障處理裝置,其特徵在於,包括:狀態管理單元,用於當目標硬碟出現掛住故障時,將該目標硬碟的狀態標記為掛住故障狀態;資源清理單元,用於清理該目標硬碟對應的被掛住管理行程所佔用的系統資源,以便啟動新的用於管理該目標硬碟的管理行程。
- 根據請求項12所述的故障處理裝置,其中,為實現清理該目標硬碟中被掛住管理行程所佔用的系統資源,該資源清理單元具體被配置為,申請新記憶體,並透過該新記憶體執行下述兩步操作,以清除該被掛住管理行程佔用的記憶體資源:查找得 到該被掛住行程佔用的全部記憶體段,以及分別解除每個記憶體段對應的記憶體映射。
- 根據請求項12或13所述的故障處理裝置,其中,還包括:請求清理單元,用於彈出該目標硬碟的輸入佇列中快取的各個存取請求,並返回該目標硬碟的故障資訊。
- 根據請求項12或13所述的故障處理裝置,其中,還包括:可用性監督單元,用於在每次啟動該目標硬碟的管理行程後,確定該目標硬碟的狀態,並在該目標硬碟的狀態為掛住故障狀態時,禁止對該目標硬碟的存取。
- 根據請求項12或13所述的故障處理裝置,其中,該狀態管理單元,還用於:將該目標硬碟的掛住故障狀態儲存至正常的硬碟。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610212740.0A CN107273231A (zh) | 2016-04-07 | 2016-04-07 | 分布式存储系统硬盘挂住故障检测、处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201737111A true TW201737111A (zh) | 2017-10-16 |
Family
ID=60000846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106107797A TW201737111A (zh) | 2016-04-07 | 2017-03-09 | 分散式儲存系統硬碟掛住故障檢測、處理方法及裝置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN107273231A (zh) |
TW (1) | TW201737111A (zh) |
WO (1) | WO2017173927A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170375B (zh) * | 2017-12-21 | 2020-12-18 | 创新科技术有限公司 | 一种分布式存储系统中的超限保护方法和装置 |
CN108762913A (zh) * | 2018-03-23 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 服务处理方法及装置 |
CN108776579B (zh) * | 2018-06-19 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种分布式存储集群扩容方法、装置、设备及存储介质 |
CN108932113A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种磁盘管理方法、装置、设备及可读存储介质 |
CN110688193B (zh) * | 2018-07-04 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 磁盘处理方法以及装置 |
CN110795276A (zh) * | 2018-08-01 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种存储介质的修复方法、计算机设备、存储介质 |
CN110837428B (zh) * | 2018-08-16 | 2023-09-19 | 杭州海康威视系统技术有限公司 | 存储设备管理方法及装置 |
CN109739702A (zh) * | 2018-12-18 | 2019-05-10 | 曙光信息产业股份有限公司 | 硬盘自动化检测方法 |
CN109669828B (zh) * | 2018-12-21 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种硬盘检测方法和装置 |
CN110750213A (zh) * | 2019-09-09 | 2020-02-04 | 华为技术有限公司 | 一种硬盘管理方法及装置 |
CN111897684B (zh) * | 2020-07-15 | 2023-08-15 | 中国工商银行股份有限公司 | 磁盘故障模拟测试的方法、装置及电子设备 |
CN115359834B (zh) * | 2022-10-18 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种盘仲裁区域检测方法、装置、设备及可读存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324490B1 (en) * | 1999-01-25 | 2001-11-27 | J&L Fiber Services, Inc. | Monitoring system and method for a fiber processing apparatus |
JP3431582B2 (ja) * | 2000-06-29 | 2003-07-28 | 株式会社東芝 | デスク記憶装置、及び同装置に適用されるハングアップ発生時の処理方法 |
US7000154B1 (en) * | 2001-11-28 | 2006-02-14 | Intel Corporation | System and method for fault detection and recovery |
CN100595839C (zh) * | 2007-09-25 | 2010-03-24 | Ut斯达康通讯有限公司 | 流媒体应用中的硬盘错误检测与容错方法 |
CN101296135A (zh) * | 2008-06-27 | 2008-10-29 | 中兴通讯股份有限公司 | 故障信息的处理方法和装置 |
CN101650669A (zh) * | 2008-08-14 | 2010-02-17 | 英业达股份有限公司 | 多线程下执行磁盘读写的方法 |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
CN103488544B (zh) * | 2013-09-26 | 2016-08-17 | 华为技术有限公司 | 检测慢盘的处理方法和装置 |
CN103761180A (zh) * | 2014-01-11 | 2014-04-30 | 浪潮电子信息产业股份有限公司 | 一种集群存储中磁盘故障的预防及检测方法 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN104734979A (zh) * | 2015-04-07 | 2015-06-24 | 北京极科极客科技有限公司 | 一种路由器外接存储设备的控制方法 |
-
2016
- 2016-04-07 CN CN201610212740.0A patent/CN107273231A/zh active Pending
-
2017
- 2017-03-09 TW TW106107797A patent/TW201737111A/zh unknown
- 2017-03-24 WO PCT/CN2017/077995 patent/WO2017173927A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN107273231A (zh) | 2017-10-20 |
WO2017173927A1 (zh) | 2017-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201737111A (zh) | 分散式儲存系統硬碟掛住故障檢測、處理方法及裝置 | |
US10860367B2 (en) | Opportunistic virtual machine migration | |
US8112559B2 (en) | Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment | |
US9128910B1 (en) | Avoiding long access latencies in redundant storage systems | |
US8862833B2 (en) | Selection of storage containers for thin-partitioned data storage based on criteria | |
CN105095128B (zh) | 中断处理方法及中断控制器 | |
US9495201B2 (en) | Management of bottlenecks in database systems | |
CN102063338B (zh) | 一种请求独占资源的方法及装置 | |
CN102622426A (zh) | 数据库写入系统及方法 | |
JP2008015888A (ja) | 負荷分散制御システム及び負荷分散制御方法 | |
US9152491B2 (en) | Job continuation management apparatus, job continuation management method and job continuation management program | |
WO2011079585A1 (zh) | 获取进程阻塞信息的方法及装置 | |
US10069674B2 (en) | Monitoring file system operations between a client computer and a file server | |
US9870278B2 (en) | Managing spaces in memory | |
US8631086B2 (en) | Preventing messaging queue deadlocks in a DMA environment | |
WO2016000470A1 (zh) | 一种内存控制方法和装置 | |
JP2007133544A (ja) | 障害情報解析方法及びその実施装置 | |
EP3018585A1 (en) | Machine provision method, machine provision system, and machine provision program | |
WO2018157605A1 (zh) | 一种集群文件系统中消息传输的方法及装置 | |
US8612701B1 (en) | Method and apparatus for accessing a tape drive from a plurality of nodes | |
JP2016513309A (ja) | 分散コンピューティングシステムのコンピューティングノードにおける障害に起因するエラー伝播の制御 | |
US11288238B2 (en) | Methods and systems for logging data transactions and managing hash tables | |
WO2023155591A1 (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN107967172B (zh) | 一种面向异构存储的Spark任务动态迁移方法和系统 | |
CN104504348A (zh) | 一种基于高可用存储系统的数据保护方法 |