一種硬盤壞道的修復方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種硬盤壞道的修復方法及裝置,該方法包括在檢測出磁盤陣列中存在硬盤壞道后獲取硬盤壞道的壞道信息,其中,壞道信息包括硬盤壞道所處的目標硬盤、硬盤壞道在目標硬盤中的第一起始位置以及硬盤壞道的壞道長度,并以壞道信息以及硬盤與LUN的映射關系為依據獲取硬盤壞道所處的目標LUN以及硬盤壞道在目標LUN中的第二起始位置,然后以第二起始位置以及壞道長度為依據解析目標LUN以獲取硬盤壞道中存儲數(shù)據的數(shù)據類型,最后以數(shù)據類型為依據修復硬盤壞道。實施本發(fā)明實施例能夠根據硬盤壞道中存儲數(shù)據的數(shù)據類型對硬盤壞道進行修復,從根本上解決了硬盤壞道所帶來的業(yè)務影響。
【專利說明】一種硬盤壞道的修復方法及裝置
【技術領域】
[0001] 本發(fā)明涉及計算機【技術領域】,具體涉及一種硬盤壞道的修復方法及裝置。
【背景技術】
[0002] RAID(RedundantArrayofIndependentDisk,磁盤陣列)技術是一種把多塊 獨立的硬盤按照不同的方式組合起來形成硬盤組(又稱RAID)以提供數(shù)據冗余功能以及 比單個硬盤更高的存儲性能的技術。LUN(LogicalUnitNumber,邏輯單元號)是主機對 SCSI(SmallComputerSystemInterface,小型計算機系統(tǒng)接口)總線上可掛接設備的編 號,其中,可掛接的設備通常被稱為LUN設備,也通常被簡稱為LUN,而在實際應用中,LUN還 可以用來表示從RAID中劃分出的一段邏輯上連續(xù)的存儲空間且該邏輯上連續(xù)的存儲空間 可以被劃分成多個子區(qū)域,在LUN中存儲的數(shù)據會在多個子區(qū)域中分開存儲,其中,每一個 子區(qū)域就是一個分區(qū),這些需要存儲的數(shù)據最終被存放在RAID中,如用戶可以將與業(yè)務系 統(tǒng)(如文件系統(tǒng)、數(shù)據庫以及虛擬機等)相關的數(shù)據存儲在RAID中。RAID上的任何故障都 可能導致業(yè)務中斷以及數(shù)據丟失,且RAID上最常見的故障為硬盤壞道,對于文件系統(tǒng),硬 盤壞道可能導致文件系統(tǒng)無法掛載、目錄名丟失以及文件丟失等問題,對于數(shù)據庫,硬盤壞 道可能導致數(shù)據表查詢失敗以及數(shù)據庫異常宕機后無法正常啟動的問題,因此,修復硬盤 壞道顯得尤為重要。
[0003] 現(xiàn)有技術中,通過RAID后臺掃描以及用戶觸發(fā)業(yè)務訪問的方式識別出硬盤壞道 所處的硬盤、起始位置以及壞道長度后,RAID對硬盤壞道的修復方法為以扇區(qū)為單位對壞 道位置全部寫零,這樣的修復方法不能從根本上解決硬盤壞道所帶來的業(yè)務影響,如當硬 盤壞道中的存儲數(shù)據為用戶數(shù)據時,對壞道位置全部寫零會導致用戶數(shù)據的丟失。
【發(fā)明內容】
[0004] 本發(fā)明實施例公開了一種硬盤壞道的修復方法及裝置,能夠根據硬盤壞道中存儲 數(shù)據的數(shù)據類型對硬盤壞道進行修復,從根本上解決了硬盤壞道所帶來的業(yè)務影響。
[0005] 本發(fā)明實施例第一方面公開了一種硬盤壞道的修復方法,包括:
[0006] 檢測磁盤陣列中是否存在硬盤壞道;
[0007] 若檢測結果為是,則獲取所述硬盤壞道的壞道信息,所述壞道信息包括所述硬盤 壞道所處的目標硬盤、所述硬盤壞道在所述目標硬盤中的第一起始位置以及所述硬盤壞道 的壞道長度;
[0008] 以所述壞道信息以及硬盤與LUN的映射關系為依據,獲取所述硬盤壞道所處的目 標LUN以及所述硬盤壞道在所述目標LUN中的第二起始位置;
[0009] 以所述第二起始位置以及所述壞道長度為依據解析所述目標LUN以獲取所述硬 盤壞道中存儲數(shù)據的數(shù)據類型,所述數(shù)據類型包括用戶數(shù)據類型、非用戶數(shù)據類型以及空 數(shù)據類型中的至少一個;
[0010] 以所述數(shù)據類型為依據修復所述硬盤壞道。
[0011] 在本發(fā)明實施例第一方面的第一種可能的實現(xiàn)方式中,當所述目標LUN中存在分 區(qū)時,所述以所述第二起始位置以及所述壞道長度為依據解析所述目標LUN以獲取所述硬 盤壞道中存儲數(shù)據的數(shù)據類型包括:
[0012] 獲取所述目標LUN包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度;
[0013] 以所述第二起始位置以及所述壞道長度為依據,獲取所述硬盤壞道所處的目標分 區(qū),所述目標分區(qū)包括至少一個分區(qū);
[0014] 獲取所述目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類型,以作為所述硬盤壞道中 存儲數(shù)據的數(shù)據類型。
[0015] 結合本發(fā)明實施例第一方面的第一種可能的實現(xiàn)方式,在本發(fā)明實施例第一方面 的第二種可能的實現(xiàn)方式中,所述獲取所述目標LUN包括的每個分區(qū)以及所述每個分區(qū)的 分區(qū)長度之前,所述方法還包括:
[0016] 判斷所述第二起始位置是否處于所述目標LUN中的目標存儲位置,所述目標存儲 位置存儲有與所述每個分區(qū)對應的分區(qū)表,所述分區(qū)表包括所述每個分區(qū)的分區(qū)長度;
[0017] 若判斷結果為否,則執(zhí)行所述獲取所述目標LUN包括的每個分區(qū)以及所述每個分 區(qū)的分區(qū)長度的操作;
[0018] 若判斷結果為是,則向用戶輸出用于指示分區(qū)表受損的指示信息,以使用戶以所 述指示信息為依據輸入用于修復所述分區(qū)表的第一操作指令;
[0019] 接收所述第一操作指令;
[0020] 響應所述第一操作指令以修復所述分區(qū)表,并執(zhí)行所述獲取所述目標LUN包括的 每個分區(qū)以及所述每個分區(qū)的分區(qū)長度的操作。
[0021] 結合本發(fā)明實施例第一方面,在本發(fā)明實施例第一方面的第三種可能的實現(xiàn)方式 中,當所述數(shù)據類型為所述用戶數(shù)據類型時,所述以所述數(shù)據類型為依據修復所述硬盤壞 道包括:
[0022] 獲取與所述硬盤壞道中存儲數(shù)據對應的數(shù)據標識,所述存儲數(shù)據的數(shù)據類型為所 述用戶數(shù)據類型;
[0023] 向用戶輸出所述數(shù)據標識,以使用戶以所述數(shù)據標識為依據輸入用于修復所述硬 盤壞道的第二操作指令;
[0024]接收所述第二操作指令;
[0025] 響應所述第二操作指令以修復所述硬盤壞道。
[0026] 結合本發(fā)明實施例第一方面的第三種可能的實現(xiàn)方式,在本發(fā)明實施例第一方面 的第四種可能的實現(xiàn)方式中,當所述數(shù)據類型為所述非用戶數(shù)據類型時,所述以所述數(shù)據 類型為依據修復所述硬盤壞道包括:
[0027] 獲取與所述非用戶數(shù)據類型對應的修復規(guī)則;
[0028] 以所述修復規(guī)則為依據修復所述硬盤壞道。
[0029] 結合本發(fā)明實施例第一方面的第三種可能的實現(xiàn)方式,在本發(fā)明實施例第一方面 的第五種可能的實現(xiàn)方式中,當所述數(shù)據類型為所述空數(shù)據類型時,所述以所述數(shù)據類型 為依據修復所述硬盤壞道包括:
[0030] 對所述硬盤壞道中存儲數(shù)據的數(shù)據類型為所述空數(shù)據類型的位置進行寫零操作。
[0031] 結合本發(fā)明實施例第一方面,在本發(fā)明實施例第一方面的第六種可能的實現(xiàn)方式 中,當所述磁盤陣列中存在所述硬盤壞道時,所述獲取所述硬盤壞道的壞道信息之前,所述 方法還包括:
[0032] 向用戶輸出用于提示是否修復所述硬盤壞道的提示信息;
[0033] 接收用戶輸入的針對所述提示信息的響應消息,以修復所述硬盤壞道。
[0034] 本發(fā)明實施例第二方面公開了一種硬盤壞道的修復裝置,包括:
[0035] 檢測模塊,用于檢測磁盤陣列中是否存在硬盤壞道;
[0036] 獲取模塊,用于當所述檢測模塊的檢測結果為是時,獲取所述硬盤壞道的壞道信 息,所述壞道信息包括所述硬盤壞道所處的目標硬盤、所述硬盤壞道在所述目標硬盤中的 第一起始位置以及所述硬盤壞道的壞道長度;
[0037] 所述獲取模塊,還用于以所述壞道信息以及硬盤與LUN的映射關系為依據獲取所 述硬盤壞道所處的目標LUN以及所述硬盤壞道在所述目標LUN中的第二起始位置;
[0038] 解析模塊,用于以所述第二起始位置以及所述壞道長度為依據解析所述目標LUN 以獲取所述硬盤壞道中存儲數(shù)據的數(shù)據類型,所述數(shù)據類型包括用戶數(shù)據類型、非用戶數(shù) 據類型以及空數(shù)據類型中的至少一個;
[0039] 修復模塊,用于以所述數(shù)據類型為依據修復所述硬盤壞道。
[0040] 在本發(fā)明實施例第二方面的第一種可能的實現(xiàn)方式中,所述解析模塊包括第一獲 取子模塊以及第二獲取子模塊,其中:
[0041] 所述第一獲取子模塊,用于當所述目標LUN中存在分區(qū)時,獲取所述目標LUN包括 的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度,并以所述第二起始位置以及所述壞道長度為依 據,獲取所述硬盤壞道所處的目標分區(qū),所述目標分區(qū)包括至少一個分區(qū);
[0042] 所述第二獲取子模塊,用于獲取所述目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類 型,以作為所述硬盤壞道中存儲數(shù)據的數(shù)據類型。
[0043] 結合本發(fā)明實施例第二方面的第一種可能的實現(xiàn)方式,在本發(fā)明實施例第二方面 的第二種可能的實現(xiàn)方式中,所述解析模塊還包括判斷子模塊、第一輸出子模塊、第一輸入 子模塊以及第一修復子模塊,其中 :
[0044] 所述判斷子模塊,用于當所述目標LUN中存在分區(qū)且在所述第一獲取子模塊獲取 所述目標LUN包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度之前,判斷所述第二起始位置 是否處于所述目標LUN中的目標存儲位置,所述目標存儲位置存儲有與所述每個分區(qū)對應 的分區(qū)表,所述分區(qū)表包括所述每個分區(qū)的分區(qū)長度;
[0045] 所述第一獲取子模塊,還用于在所述判斷子模塊的判斷結果為否時,獲取所述目 標LUN包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度;
[0046] 所述第一輸出子模塊,用于在所述判斷子模塊的判斷結果為是時,向用戶輸出用 于指示分區(qū)表受損的指示信息,以使用戶以所述指示信息為依據輸入用于修復所述分區(qū)表 的第一操作指令;
[0047] 所述第一輸入子模塊,用于接收所述第一操作指令;
[0048] 所述第一修復子模塊,用于響應所述第一操作指令以修復所述分區(qū)表。
[0049] 結合本發(fā)明實施例第二方面,在本發(fā)明實施例第二方面的第三種可能的實現(xiàn)方式 中,所述修復模塊包括第三獲取子模塊、第二輸出子模塊、第二輸入子模塊以及第二修復子 模塊,其中:
[0050] 所述第三獲取子模塊,用于當所述數(shù)據類型為所述用戶數(shù)據類型時,獲取與所述 硬盤壞道中存儲數(shù)據對應的數(shù)據標識,所述存儲數(shù)據的數(shù)據類型為所述用戶數(shù)據類型;
[0051] 所述第二輸出子模塊,用于向用戶輸出所述數(shù)據標識,以使用戶以所述數(shù)據標識 為依據輸入用于修復所述硬盤壞道的第二操作指令;
[0052] 所述第二輸入子模塊,用于接收所述第二操作指令;
[0053] 所述第二修復子模塊,用于響應所述第二操作指令以修復所述硬盤壞道。
[0054] 結合本發(fā)明實施例第二方面的第三種可能的實現(xiàn)方式,在本發(fā)明實施例第二方面 的第四種可能的實現(xiàn)方式中,所述第三獲取子模塊,還用于當所述數(shù)據類型為所述非用戶 數(shù)據類型時,獲取與所述非用戶數(shù)據類型對應的修復規(guī)則;
[0055] 所述第二修復子模塊,還用于以所述修復規(guī)則為依據修復所述硬盤壞道。
[0056] 結合本發(fā)明實施例第二方面的第三種可能的實現(xiàn)方式,在本發(fā)明實施例第二方面 的第五種可能的實現(xiàn)方式中,所述第二修復子模塊,還用于當所述數(shù)據類型為所述空數(shù)據 類型時,對所述硬盤壞道中存儲數(shù)據的數(shù)據類型為所述空數(shù)據類型的位置進行寫零操作。
[0057] 結合本發(fā)明實施例第二方面,在本發(fā)明實施例第二方面的第六種可能的實現(xiàn)方式 中,所述裝置還包括輸出模塊以及輸入模塊,其中:
[0058] 所述輸出模塊,用于當所述檢測模塊的檢測結果為是且在所述修復模塊以所述數(shù) 據類型為依據修復所述硬盤壞道之前,向用戶輸出用于提示是否修復所述硬盤壞道的提示 信息;
[0059] 所述輸入模塊,用于接收用戶輸入的針對所述提示信息的響應消息,以修復所述 硬盤壞道。
[0060] 本發(fā)明實施例中,在檢測出磁盤陣列中存在硬盤壞道后獲取硬盤壞道的壞道信 息,其中,壞道信息包括硬盤壞道所處的目標硬盤、硬盤壞道在目標硬盤中的第一起始位置 以及硬盤壞道的壞道長度,并以壞道信息以及硬盤與LUN的映射關系為依據獲取硬盤壞道 所處的目標LUN以及硬盤壞道在目標LUN中的第二起始位置,然后以第二起始位置以及壞 道長度為依據解析目標LUN以獲取硬盤壞道中存儲數(shù)據的數(shù)據類型,最后以數(shù)據類型為依 據修復硬盤壞道。實施本發(fā)明實施例能夠根據硬盤壞道中存儲數(shù)據的數(shù)據類型對硬盤壞道 進行修復,從根本上解決了硬盤壞道所帶來的業(yè)務影響。
【專利附圖】
【附圖說明】
[0061] 為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的 附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領 域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附 圖。
[0062] 圖1是本發(fā)明實施例公開的一種硬盤壞道的修復方法的流程示意圖;
[0063] 圖2是本發(fā)明實施例公開的另一種硬盤壞道的修復方法的流程示意圖;
[0064] 圖3是本發(fā)明實施例公開的一種獲取硬盤壞道中存儲數(shù)據的數(shù)據類型的方法的 流程示意圖;
[0065] 圖4是本發(fā)明實施例公開的一種硬盤壞道的修復裝置的結構示意圖;
[0066] 圖5是本發(fā)明實施例公開的另一種硬盤壞道的修復裝置的結構示意圖;
[0067] 圖6是本發(fā)明實施例公開的又一種硬盤壞道的修復裝置的結構示意圖。
【具體實施方式】
[0068] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0069] 本發(fā)明實施例公開了一種硬盤壞道的修復方法及裝置,能夠根據硬盤壞道中存儲 數(shù)據的數(shù)據類型對硬盤壞道進行修復,從根本上解決了硬盤壞道所帶來的業(yè)務影響。
[0070] 請參閱圖1,圖1是本發(fā)明實施例公開的一種硬盤壞道的修復方法的流程示意圖。 其中,圖1所示的方法可以應用于磁盤陣列中或使用磁盤陣列作為存儲系統(tǒng)的裝置中,本 發(fā)明實施例不做限定。如圖1所示,該方法可以包括以下步驟:
[0071] SlOl、檢測磁盤陣列中是否存在硬盤壞道。
[0072] 本發(fā)明實施例中,磁盤陣列或使用磁盤陣列作為存儲系統(tǒng)的裝置可以通過磁盤陣 列后臺掃描以及用戶觸發(fā)業(yè)務訪問的方式識別出硬盤壞道。
[0073] 本發(fā)明實施例中,若步驟SlOl的檢測結果為是,則執(zhí)行步驟S102,若步驟SlOl的 檢測結果為否,則結束本次檢測操作。
[0074] S102、獲取硬盤壞道的壞道信息。
[0075] 本發(fā)明實施例中,壞道信息可以包括硬盤壞道所處的目標硬盤、硬盤壞道在目標 硬盤中的第一起始位置(如第M個扇區(qū),M為大于零的整數(shù))以及硬盤壞道的壞道長度,其 中,硬盤壞道的壞道長度以扇區(qū)為單位。
[0076] S103、以壞道信息以及硬盤與LUN的映射關系為依據,獲取硬盤壞道所處的目標 LUN以及硬盤壞道在目標LUN中的第二起始位置。
[0077] 本發(fā)明實施例中,硬盤壞道所處的目標LUN的個數(shù)為大于等于1的整數(shù),當目標 LUN的個數(shù)大于1時,則表示硬盤壞道為跨LUN的硬盤壞道,這里涉及到硬盤壞道的拆分,即 將硬盤壞道拆分成多個硬盤壞道,拆分后的每個硬盤壞道所處的目標LUN的個數(shù)為1,且磁 盤陣列或使用磁盤陣列作為存儲系統(tǒng)的裝置對每個目標LUN的解析原理以及修復原理相 同。
[0078] S104、以第二起始位置以及壞道長度為依據解析目標LUN以獲取硬盤壞道中存儲 數(shù)據的數(shù)據類型。
[0079] 本發(fā)明實施例中,數(shù)據類型可以包括用戶數(shù)據類型、非用戶數(shù)據類型以及空數(shù)據 類型中的至少一個,本發(fā)明實施例不做限定。
[0080] 作為一種可選的實施方式,當目標LUN中存在分區(qū)時,以第二起始位置以及壞道 長度為依據解析目標LUN以獲取硬盤壞道中存儲數(shù)據的數(shù)據類型可以包括:
[0081] 獲取目標LUN包括的每個分區(qū)以及每個分區(qū)的分區(qū)長度;
[0082] 以第二起始位置以及壞道長度為依據,獲取硬盤壞道所處的目標分區(qū),其中,目標 分區(qū)包括至少一個分區(qū);
[0083] 獲取目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類型,以作為硬盤壞道中存儲數(shù)據 的數(shù)據類型。
[0084] 作為另一種可選的實施方式,當目標LUN中存在分區(qū)時,以第二起始位置以及壞 道長度為依據解析目標LUN以獲取硬盤壞道中存儲數(shù)據的數(shù)據類型可以包括:
[0085] 判斷第二起始位置是否處于目標LUN中的目標存儲位置,其中,目標存儲位置存 儲有與每個分區(qū)對應的分區(qū)表,分區(qū)表包括每個分區(qū)的分區(qū)長度;
[0086] 當判斷結果為否時,獲取目標LUN包括的每個分區(qū)以及每個分區(qū)的分區(qū)長度,并 以第二起始位置以及壞道長度為依據獲取硬盤壞道所處的目標分區(qū),獲取目標分區(qū)包括的 各分區(qū)中存儲數(shù)據的數(shù)據類型,以作為硬盤壞道中存儲數(shù)據的數(shù)據類型。
[0087] 當判斷結果為是時,向用戶輸出用于指示分區(qū)表受損的指示信息,以使用戶以指 示信息為依據輸入用于修復分區(qū)表的第一操作指令,接收并響應第一操作指令以修復分區(qū) 表,獲取目標LUN包括的每個分區(qū)以及每個分區(qū)的分區(qū)長度,并以第二起始位置以及壞道 長度為依據獲取硬盤壞道所處的目標分區(qū),獲取目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據 類型,以作為硬盤壞道中存儲數(shù)據的數(shù)據類型。
[0088] S105、以數(shù)據類型為依據修復硬盤壞道。
[0089] 作為一種可選的實施方式,當數(shù)據類型為用戶數(shù)據類型時,以數(shù)據類型為依據修 復硬盤壞道可以包括:
[0090] 獲取與硬盤壞道中存儲數(shù)據對應的數(shù)據標識,其中,存儲數(shù)據的數(shù)據類型為用戶 數(shù)據類型;
[0091] 向用戶輸出數(shù)據標識,以使用戶以數(shù)據標識為依據輸入用于修復硬盤壞道的第二 操作指令;
[0092] 接收第二操作指令;
[0093] 響應第二操作指令以修復硬盤壞道。
[0094] 作為另一種可選的實施方式,當數(shù)據類型為非用戶數(shù)據類型時,以數(shù)據類型為依 據修復硬盤壞道可以包括:
[0095] 獲取與非用戶數(shù)據類型對應的修復規(guī)則;
[0096] 以修復規(guī)則為依據修復硬盤壞道。
[0097] 作為又一種可選的實施方式,當數(shù)據類型為空數(shù)據類型時,以數(shù)據類型為依據修 復硬盤壞道可以包括:
[0098] 對硬盤壞道中存儲數(shù)據的數(shù)據類型為空數(shù)據類型的位置進行寫零操作。
[0099] 本發(fā)明實施例中,在檢測出磁盤陣列中存在硬盤壞道后獲取硬盤壞道的壞道信 息,其中,壞道信息包括硬盤壞道所處的目標硬盤、硬盤壞道在目標硬盤中的第一起始位置 以及硬盤壞道的壞道長度,并以壞道信息以及硬盤與LUN的映射關系為依據獲取硬盤壞道 所處的目標LUN以及硬盤壞道在目標LUN中的第二起始位置,然后以第二起始位置以及壞 道長度為依據解析目標LUN以獲取硬盤壞道中存儲數(shù)據的數(shù)據類型,最后以數(shù)據類型為依 據修復硬盤壞道。實施本發(fā)明實施例能夠根據硬盤壞道中存儲數(shù)據的數(shù)據類型對硬盤壞道 進行修復,從根本上解決了硬盤壞道所帶來的業(yè)務影響。
[0100] 請參閱圖2,圖2是本發(fā)明實施例公開的另一種硬盤壞道的修復方法的流程示意 圖。其中,圖2所示的方法可以應用于磁盤陣列中或使用磁盤陣列作為存儲系統(tǒng)的裝置中, 本發(fā)明實施例不做限定。如圖2所示,該方法可以包括以下步驟:
[0101] S201、檢測磁盤陣列中是否存在硬盤壞道。
[0102] 本發(fā)明實施例中,若步驟S201的檢測結果為是,則執(zhí)行步驟S202,若步驟S201的 檢測結果為否,則結束本次檢測操作。
[0103] S202、向用戶輸出用于提示是否修復硬盤壞道的提示信息。
[0104] 本發(fā)明實施例中,在檢測到磁盤陣列中存在硬盤壞道后,向用戶輸出用于提示是 否修復硬盤壞道的提示信息,以提示用戶磁盤陣列中存在硬盤壞道并使用戶根據自身需求 選擇是否修復硬盤壞道,提高了用戶體驗。
[0105] S203、接收用戶輸入的針對提示信息的響應消息。
[0106] 本發(fā)明實施例中,響應消息用于指示磁盤陣列或使用磁盤陣列作為存儲系統(tǒng)的裝 置修復硬盤壞道。
[0107] S204、獲取硬盤壞道的壞道信息。
[0108] S205、以壞道信息以及硬盤與LUN的映射關系為依據,獲取硬盤壞道所處的目標 LUN以及硬盤壞道在目標LUN中的第二起始位置。
[0109] S206、檢測目標LUN中是否存在分區(qū);
[0110] 本發(fā)明實施例中,分區(qū)的格式可以包括GPT(⑶ID Partition Table,全局唯一標 識分區(qū)表)格式或MBR(Master Boot Record,主引導記錄)格式,本發(fā)明實施例不做限定。
[0111] 本發(fā)明實施例中,若步驟S206的檢測結果為是,則執(zhí)行步驟S207,若步驟S206的 檢測結果為否,則執(zhí)行步驟S208。
[0112] S207、判斷第二起始位置是否處于目標LUN中的目標存儲位置。
[0113] 本發(fā)明實施例中,目標存儲位置存儲有與目標LUN包括的分區(qū)對應的分區(qū)表,分 區(qū)表中包括目標LUN中每個分區(qū)的分區(qū)長度,可選的,目標存儲位置可以為目標LUN中的前 2K的存儲位置,本發(fā)明實施例不做限定。
[0114] 本發(fā)明實施例中,若步驟S207的判斷結果為是,則執(zhí)行步驟S209、若步驟S207的 判斷結果為否,則執(zhí)行步驟S214。
[0115] S208、以第二起始位置以及壞道長度為依據解析目標LUN以獲取硬盤壞道中存儲 數(shù)據的數(shù)據類型。
[0116] 本發(fā)明實施例中,數(shù)據類型可以包括用戶數(shù)據類型、非用戶數(shù)據類型以及空數(shù)據 類型中的至少一個,本發(fā)明實施例不做限定。
[0117] S209、向用戶輸出用于指示分區(qū)表受損的指示信息,以使用戶以指示信息為依據 輸入用于修復分區(qū)表的第一操作指令。
[0118] S210、接收第一操作指令。
[0119] S211、響應第一操作指令以修復分區(qū)表。
[0120] S212、獲取目標LUN包括的每個分區(qū)以及每個分區(qū)的分區(qū)長度。
[0121] S213、以第二起始位置以及壞道長度為依據,獲取硬盤壞道所處的目標分區(qū)。
[0122] 本發(fā)明實施例中,目標分區(qū)包括至少一個分區(qū),當目標分區(qū)的個數(shù)大于1時,則表 示硬盤壞道為跨分區(qū)的硬盤壞道,這里涉及到對硬盤壞道的拆分,即將硬盤壞道拆分成多 個硬盤壞道,拆分后的每個硬盤壞道所處的目標分區(qū)的個數(shù)為1,且磁盤陣列或使用磁盤陣 列作為存儲系統(tǒng)的裝置對每個目標分區(qū)的解析原理以及修復原理相同。
[0123] S214、獲取目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類型。
[0124] 本發(fā)明實施例中,數(shù)據類型可以包括用戶數(shù)據類型以及非用戶數(shù)據類型中的至少 一個,本發(fā)明實施例不做限定。
[0125] S215、判斷數(shù)據類型是否為用戶數(shù)據類型。
[0126] 本發(fā)明實施例中,若步驟S216的判斷結果為是,則執(zhí)行步驟S217,若步驟S216的 判斷結果為否,則執(zhí)行步驟S221。
[0127] S216、獲取與硬盤壞道中存儲數(shù)據對應的數(shù)據標識。
[0128] 本發(fā)明實施例中,存儲數(shù)據的數(shù)據類型為用戶數(shù)據類型。
[0129] S217、向用戶輸出數(shù)據標識,以使用戶以數(shù)據標識為依據輸入用于修復硬盤壞道 的第二操作指令。
[0130] S218、接收第二操作指令。
[0131] S219、響應第二操作指令以修復硬盤壞道。
[0132] S220、獲取與非用戶數(shù)據類型對應的修復規(guī)則。
[0133] S221、以修復規(guī)則為依據修復硬盤壞道。
[0134] 實施本發(fā)明實施例能夠在硬盤壞道影響用戶的業(yè)務訪問之前發(fā)出告警信息,且能 夠根據硬盤壞道中存儲數(shù)據的數(shù)據類型及時對硬盤壞道進行自動修復或根據硬盤壞道中 存儲數(shù)據的數(shù)據類型及時向用戶輸出硬盤壞道信息以使用戶手動對硬盤壞道進行修復,從 根本上解決了硬盤壞道所帶來的業(yè)務影響。
[0135] 請參閱圖3,圖3是本發(fā)明實施例公開的一種獲取硬盤壞道中存儲數(shù)據的數(shù)據類 型的方法的流程示意圖。其中,如圖3所示的方法可以應用于圖1以及圖2所示的硬盤壞 道的修復方法中。如圖3所示,假設識別出硬盤壞道所處的目標LUN中存儲數(shù)據為與EXT3 文件系統(tǒng)對應的數(shù)據,其中,與EXT3對應的數(shù)據即可以直接存儲在目標LUN中,也可以存儲 在目標LUN中的分區(qū)中,且假設當與EXT3文件系統(tǒng)對應的數(shù)據存儲在目標LUN中的分區(qū)中 時,硬盤壞道在目標LUN中的起始位置未處于前2k中,該獲取硬盤壞道中存儲數(shù)據的數(shù)據 類型的方法可以包括以下步驟:
[0136] S301、判斷目標LUN或目標LUN中與硬盤壞道對應的目標分區(qū)中各分區(qū)IK?2K 的存儲位置中是否存在硬盤壞道。
[0137] 本發(fā)明實施例中,若步驟S301的判斷結果為是,則執(zhí)行步驟S302,若步驟S301的 判斷結果為否,則執(zhí)行步驟S304。
[0138] S302、確認目標LUN或目標分區(qū)中各分區(qū)的主超級塊受損。
[0139] S303、獲取與主超級塊對應的備份超級塊以修復主超級塊。
[0140] S304、確認目標LUN或目標分區(qū)中各分區(qū)的IK?2K的存儲位置存儲有EXT3的超 級塊。
[0141] 本發(fā)明實施例中,確認目標LUN或目標分區(qū)中各分區(qū)的IK?2K的存儲位置存儲 有EXT3的超級塊的具體方式可以為:
[0142] 判斷目標LUN或目標分區(qū)中各分區(qū)存儲的超級塊中0x38?0x39處的值是否為 "53EF",若判斷結果為是,則確定目標LUN或目標分區(qū)中各分區(qū)的IK?2K存儲位置存儲有 EXT3的超級塊。
[0143] S305、根據EXT3中的主超級塊結構獲取超級塊信息并計算出EXT3文件系統(tǒng)中的 塊組數(shù)。
[0144] 本發(fā)明實施例中,塊組數(shù)是由EXT3文件系統(tǒng)的總塊數(shù)除以每個塊組中的塊數(shù)并 向上取整而得到的。
[0145] S306、判斷主超級塊的塊組描述符表的位置是否存在硬盤壞道。
[0146] 本發(fā)明實施例中,若步驟S306的判斷結果為是,則執(zhí)行步驟S307,若步驟S306的 判斷結果為否,則執(zhí)行步驟S309。
[0147] S307、確認目標LUN或目標分區(qū)中主超級塊的塊組描述符表受損。
[0148] S308、獲取與主超級塊的塊組描述符表對應的備份塊組描述符表以修復主超級塊 的塊組描述符表。
[0149] S309、以主超級塊的塊組描述符表記錄的各個塊組的結構信息獲取目標LUN或目 標分區(qū)中各分區(qū)存儲數(shù)據的數(shù)據類型。
[0150] 本發(fā)明實施例中,存儲數(shù)據的數(shù)據類型可以包括用戶數(shù)據類型以及非用戶數(shù)據類 型中的至少一個,其中,用戶數(shù)據類型的存儲數(shù)據可以包括索引節(jié)點以及數(shù)據塊,非用戶數(shù) 據類型的存儲數(shù)據可以包括備份超級塊、備份塊組描述符表、全局描述符表保留塊、塊位圖 以及索引節(jié)點位圖,其中:
[0151] 備份超級塊以及備份塊組描述符表僅在塊組號為3、5以及7的冪次方的塊組中出 現(xiàn),如塊組號為 1、3、5、7、9、25、27、49、81......。
[0152] 全局描述符表保留塊存在于包括塊組描述符表的塊組中,且全局描述符表保留塊 是塊組描述符表中未被塊組描述符表使用完的區(qū)域。
[0153] 塊組描述符表以32字節(jié)為單位且用于描述各塊組的結構,其包括塊位圖起始位 置(如塊位圖塊號)、索引節(jié)點起始位置(如索引節(jié)點位圖塊號)以及索引節(jié)點表起始地址 (如索引節(jié)點表起始塊號)等信息,塊組描述符表的結構可以如表1所示。
[0154] 表1塊組描述符表
[0155]
[0156]
【權利要求】
1. 一種硬盤壞道的修復方法,其特征在于,包括: 檢測磁盤陣列中是否存在硬盤壞道; 若檢測結果為是,則獲取所述硬盤壞道的壞道信息,所述壞道信息包括所述硬盤壞道 所處的目標硬盤、所述硬盤壞道在所述目標硬盤中的第一起始位置以及所述硬盤壞道的壞 道長度; 以所述壞道信息以及硬盤與LUN的映射關系為依據,獲取所述硬盤壞道所處的目標 LUN以及所述硬盤壞道在所述目標LUN中的第二起始位置; 以所述第二起始位置以及所述壞道長度為依據解析所述目標LUN以獲取所述硬盤壞 道中存儲數(shù)據的數(shù)據類型,所述數(shù)據類型包括用戶數(shù)據類型、非用戶數(shù)據類型以及空數(shù)據 類型中的至少一個; 以所述數(shù)據類型為依據修復所述硬盤壞道。
2. 根據權利要求1所述的方法,其特征在于,當所述目標LUN中存在分區(qū)時,所述以所 述第二起始位置以及所述壞道長度為依據解析所述目標LUN以獲取所述硬盤壞道中存儲 數(shù)據的數(shù)據類型包括: 獲取所述目標LUN包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度; 以所述第二起始位置以及所述壞道長度為依據,獲取所述硬盤壞道所處的目標分區(qū), 所述目標分區(qū)包括至少一個分區(qū); 獲取所述目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類型,以作為所述硬盤壞道中存儲 數(shù)據的數(shù)據類型。
3. 根據權利要求2所述的方法,其特征在于,所述獲取所述目標LUN包括的每個分區(qū)以 及所述每個分區(qū)的分區(qū)長度之前,所述方法還包括: 判斷所述第二起始位置是否處于所述目標LUN中的目標存儲位置,所述目標存儲位置 存儲有與所述每個分區(qū)對應的分區(qū)表,所述分區(qū)表包括所述每個分區(qū)的分區(qū)長度; 若判斷結果為否,則執(zhí)行所述獲取所述目標LUN包括的每個分區(qū)以及所述每個分區(qū)的 分區(qū)長度的操作; 若判斷結果為是,則向用戶輸出用于指示分區(qū)表受損的指示信息,以使用戶以所述指 示信息為依據輸入用于修復所述分區(qū)表的第一操作指令; 接收所述第一操作指令; 響應所述第一操作指令以修復所述分區(qū)表,并執(zhí)行所述獲取所述目標LUN包括的每個 分區(qū)以及所述每個分區(qū)的分區(qū)長度的操作。
4. 根據權利要求1所述的方法,其特征在于,當所述數(shù)據類型為所述用戶數(shù)據類型時, 所述以所述數(shù)據類型為依據修復所述硬盤壞道包括: 獲取與所述硬盤壞道中存儲數(shù)據對應的數(shù)據標識,所述存儲數(shù)據的數(shù)據類型為所述用 戶數(shù)據類型; 向用戶輸出所述數(shù)據標識,以使用戶以所述數(shù)據標識為依據輸入用于修復所述硬盤壞 道的第二操作指令; 接收所述第二操作指令; 響應所述第二操作指令以修復所述硬盤壞道。
5. 根據權利要求4所述的方法,其特征在于,當所述數(shù)據類型為所述非用戶數(shù)據類型 時,所述以所述數(shù)據類型為依據修復所述硬盤壞道包括: 獲取與所述非用戶數(shù)據類型對應的修復規(guī)則; 以所述修復規(guī)則為依據修復所述硬盤壞道。
6. 根據權利要求4所述的方法,其特征在于,當所述數(shù)據類型為所述空數(shù)據類型時,所 述以所述數(shù)據類型為依據修復所述硬盤壞道包括: 對所述硬盤壞道中存儲數(shù)據的數(shù)據類型為所述空數(shù)據類型的位置進行寫零操作。
7. 根據權利要求1所述的方法,其特征在于,當所述磁盤陣列中存在所述硬盤壞道時, 所述獲取所述硬盤壞道的壞道信息之前,所述方法還包括: 向用戶輸出用于提示是否修復所述硬盤壞道的提示信息; 接收用戶輸入的針對所述提示信息的響應消息,以修復所述硬盤壞道。
8. -種硬盤壞道的修復裝置,其特征在于,包括: 檢測模塊,用于檢測磁盤陣列中是否存在硬盤壞道; 獲取模塊,用于當所述檢測模塊的檢測結果為是時,獲取所述硬盤壞道的壞道信息,所 述壞道信息包括所述硬盤壞道所處的目標硬盤、所述硬盤壞道在所述目標硬盤中的第一起 始位置以及所述硬盤壞道的壞道長度; 所述獲取模塊,還用于以所述壞道信息以及硬盤與LUN的映射關系為依據獲取所述硬 盤壞道所處的目標LUN以及所述硬盤壞道在所述目標LUN中的第二起始位置; 解析模塊,用于以所述第二起始位置以及所述壞道長度為依據解析所述目標LUN以獲 取所述硬盤壞道中存儲數(shù)據的數(shù)據類型,所述數(shù)據類型包括用戶數(shù)據類型、非用戶數(shù)據類 型以及空數(shù)據類型中的至少一個; 修復模塊,用于以所述數(shù)據類型為依據修復所述硬盤壞道。
9. 根據權利要求8所述的裝置,其特征在于,所述解析模塊包括第一獲取子模塊以及 第二獲取子模塊,其中: 所述第一獲取子模塊,用于當所述目標LUN中存在分區(qū)時,獲取所述目標LUN包括的每 個分區(qū)以及所述每個分區(qū)的分區(qū)長度,并以所述第二起始位置以及所述壞道長度為依據, 獲取所述硬盤壞道所處的目標分區(qū),所述目標分區(qū)包括至少一個分區(qū); 所述第二獲取子模塊,用于獲取所述目標分區(qū)包括的各分區(qū)中存儲數(shù)據的數(shù)據類型, 以作為所述硬盤壞道中存儲數(shù)據的數(shù)據類型。
10. 根據權利要求9所述的裝置,其特征在于,所述解析模塊還包括判斷子模塊、第一 輸出子模塊、第一輸入子模塊以及第一修復子模塊,其中: 所述判斷子模塊,用于當所述目標LUN中存在分區(qū)且在所述第一獲取子模塊獲取所述 目標LUN包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度之前,判斷所述第二起始位置是否 處于所述目標LUN中的目標存儲位置,所述目標存儲位置存儲有與所述每個分區(qū)對應的分 區(qū)表,所述分區(qū)表包括所述每個分區(qū)的分區(qū)長度; 所述第一獲取子模塊,還用于在所述判斷子模塊的判斷結果為否時,獲取所述目標LUN 包括的每個分區(qū)以及所述每個分區(qū)的分區(qū)長度; 所述第一輸出子模塊,用于在所述判斷子模塊的判斷結果為是時,向用戶輸出用于指 示分區(qū)表受損的指示信息,以使用戶以所述指示信息為依據輸入用于修復所述分區(qū)表的第 一操作指令; 所述第一輸入子模塊,用于接收所述第一操作指令; 所述第一修復子模塊,用于響應所述第一操作指令以修復所述分區(qū)表。
11. 根據權利要求8所述的裝置,其特征在于,所述修復模塊包括第三獲取子模塊、第 二輸出子模塊、第二輸入子模塊以及第二修復子模塊,其中: 所述第三獲取子模塊,用于當所述數(shù)據類型為所述用戶數(shù)據類型時,獲取與所述硬盤 壞道中存儲數(shù)據對應的數(shù)據標識,所述存儲數(shù)據的數(shù)據類型為所述用戶數(shù)據類型; 所述第二輸出子模塊,用于向用戶輸出所述數(shù)據標識,以使用戶以所述數(shù)據標識為依 據輸入用于修復所述硬盤壞道的第二操作指令; 所述第二輸入子模塊,用于接收所述第二操作指令; 所述第二修復子模塊,用于響應所述第二操作指令以修復所述硬盤壞道。
12. 根據權利要求11所述的裝置,其特征在于,所述第三獲取子模塊,還用于當所述數(shù) 據類型為所述非用戶數(shù)據類型時,獲取與所述非用戶數(shù)據類型對應的修復規(guī)則; 所述第二修復子模塊,還用于以所述修復規(guī)則為依據修復所述硬盤壞道。
13. 根據權利要求11所述的裝置,其特征在于,所述第二修復子模塊,還用于當所述數(shù) 據類型為所述空數(shù)據類型時,對所述硬盤壞道中存儲數(shù)據的數(shù)據類型為所述空數(shù)據類型的 位置進行寫零操作。
14. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括輸出模塊以及輸入模 塊,其中: 所述輸出模塊,用于當所述檢測模塊的檢測結果為是且在所述修復模塊以所述數(shù)據 類型為依據修復所述硬盤壞道之前,向用戶輸出用于提示是否修復所述硬盤壞道的提示信 息; 所述輸入模塊,用于接收用戶輸入的針對所述提示信息的響應消息,以修復所述硬盤 壞道。
【文檔編號】G11C29/44GK104318960SQ201410468320
【公開日】2015年1月28日 申請日期:2014年9月15日 優(yōu)先權日:2014年9月15日
【發(fā)明者】周釗, 張海艷 申請人:華為數(shù)字技術(成都)有限公司