硬盤故障處理方法及處理裝置制造方法
【專利摘要】本發(fā)明公開了一種硬盤故障處理方法,包括如下步驟:獲得硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號;根據(jù)故障扇區(qū)號和各個文件系統(tǒng)的分區(qū)信息獲得故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)故障扇區(qū)號和故障扇區(qū)號所屬的文件系統(tǒng)確定故障數(shù)據(jù)塊所對應(yīng)的故障文件;在文件系統(tǒng)中刪除故障文件,并在文件系統(tǒng)中利用空閑數(shù)據(jù)塊創(chuàng)建新文件;修改新文件的指針以使新文件的指針指向故障數(shù)據(jù)塊,并釋放新文件所利用的空閑數(shù)據(jù)塊,以及修改文件系統(tǒng)的位圖以占用故障數(shù)據(jù)塊。本發(fā)明可以解決文件系統(tǒng)分配使用故障數(shù)據(jù)塊時出現(xiàn)故障的問題,確保了文件系統(tǒng)的連續(xù)和一致性,同時保證故障的文件不會被再次訪問。
【專利說明】硬盤故障處理方法及處理裝置【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)設(shè)備維護【技術(shù)領(lǐng)域】,特別涉及一種硬盤故障處理方法及故障處理裝置。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的不斷發(fā)展,單個硬盤的容量變得越來越大。特別在服務(wù)器領(lǐng)域,單個3.5寸的硬盤已經(jīng)達到了 3ΤΒ的容量,該硬盤總共包括3*1024*1024*1024*1024字節(jié),而每個扇區(qū)包括512個字節(jié),所以該硬盤總共包括3*1024*1024*1024*2個扇區(qū),約為6*109個扇區(qū)。
[0003]由于硬盤包括大量的扇區(qū),使得硬盤在使用過程中,扇區(qū)發(fā)生故障的總體概率增加。對于硬盤而言,如果單個扇區(qū)故障認定硬盤發(fā)生了一次故障。傳統(tǒng)的對扇區(qū)故障的處理方式是替換整個硬盤。但是采用這種方式,需要同步硬盤中的全部數(shù)據(jù),同時需要人工更換和運輸硬盤,從而帶來了大量的人力物力浪費。
[0004]傳統(tǒng)的解決方法是掃描硬盤,將硬盤中遇到的故障硬件全部添加到某一目錄,SP將文件全部屏蔽處理。如果文件大小為1GB,則需要耗費硬盤IGB的空間。如圖1所示,當數(shù)據(jù)塊Block 551發(fā)生故障時,傳統(tǒng)的方法只能一次性將文件A屏蔽,從而占用大量的空間。
[0005]傳統(tǒng)的獲取故障文件的方式是掃描被文件系統(tǒng)標記為使用的塊,根據(jù)故障數(shù)據(jù)塊號獲取對應(yīng)的故障文件,并刪除該故障文件,如圖2所示。
[0006]步驟S201,獲取故障數(shù)據(jù)塊號。
[0007]步驟S202,根據(jù)故障數(shù)據(jù)塊號反查故障文件。
[0008]步驟S203,判斷是否找到故障文件,如果是,則執(zhí)行步驟S204,否則執(zhí)行步驟S205。
[0009]步驟S204,失敗。
[0010]步驟S205,刪除故障文件。
[0011]但是,傳統(tǒng)的方法只能掃描被文件系統(tǒng)標記為使用的塊,對未使用的塊則無能為力。如果某個故障扇區(qū)的文件被刪除了,則無法屏蔽這個故障數(shù)據(jù)塊,導(dǎo)致下次分配時還會出錯。
[0012]如圖3所示,文件B占用數(shù)據(jù)塊Block 7010,文件C占用數(shù)據(jù)塊Block 7011,文件D占用數(shù)據(jù)塊Block 7013,數(shù)據(jù)塊Block7012未被占用。如果數(shù)據(jù)塊Block7012發(fā)生故障,則由于其未被任何文件使用,無法處理該數(shù)據(jù)塊。
【發(fā)明內(nèi)容】
[0013]本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。
[0014]為此,本發(fā)明的第一個目的在于提出一種硬盤故障處理方法,該方法可以對故障文件進行處理,確保文件系統(tǒng)的連續(xù)和一致性,同時保證故障的文件不會被再次訪問。本發(fā)明的第二個目的在于提出一種硬盤故障處理裝置。
[0015]為實現(xiàn)上述目的,本發(fā)明第一方面的實施例提供了一種硬盤故障處理方法,包括如下步驟:獲得硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號,其中,所述硬盤的分區(qū)表區(qū)中存儲有分區(qū)表,所述分區(qū)表中存儲有所述文件系統(tǒng)存儲區(qū)中各個文件系統(tǒng)的分區(qū)信息,所述故障數(shù)據(jù)塊包括至少一個故障扇區(qū);根據(jù)所述故障扇區(qū)號和所述各個文件系統(tǒng)的分區(qū)信息獲得所述故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所屬的文件系統(tǒng)確定所述故障數(shù)據(jù)塊所對應(yīng)的故障文件;在所述文件系統(tǒng)中刪除所述故障文件,并在所述文件系統(tǒng)中利用空閑數(shù)據(jù)塊創(chuàng)建新文件;修改所述新文件的指針以使所述新文件的指針指向所述故障數(shù)據(jù)塊,并釋放所述新文件所利用的所述空閑數(shù)據(jù)塊,以及修改所述文件系統(tǒng)的位圖以占用所述故障數(shù)據(jù)塊。
[0016]根據(jù)本發(fā)明實施例的硬盤故障處理方法,可以通過故障數(shù)據(jù)塊的故障扇區(qū)號查找對應(yīng)的故障文件,并對故障文件進行處理,達到占用故障數(shù)據(jù)塊的目的,從而實現(xiàn)對故障數(shù)據(jù)塊的屏蔽,解決了文件系統(tǒng)分配使用故障數(shù)據(jù)塊時出現(xiàn)故障的問題,確保了文件系統(tǒng)的連續(xù)和一致性,同時保證故障的文件不會被再次訪問。
[0017]本發(fā)明第二方面的實施例提供了一種硬盤故障處理裝置,包括:扇區(qū)故障檢測模塊,用于檢測硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號,其中,所述硬盤的分區(qū)表區(qū)中存儲有分區(qū)表,所述分區(qū)表中存儲有所述文件系統(tǒng)存儲區(qū)中各個文件系統(tǒng)的分區(qū)信息,所述故障數(shù)據(jù)塊包括至少一個故障扇區(qū);故障文件定位模塊,用于根據(jù)所述故障扇區(qū)號和所述各個文件系統(tǒng)的分區(qū)信息獲得所述故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所屬的文件系統(tǒng)確定所述故障數(shù)據(jù)塊所對應(yīng)的故障文件;文件處理模塊,在所述文件系統(tǒng)中刪除所述故障文件,并在所述文件系統(tǒng)中利用空閑數(shù)據(jù)塊創(chuàng)建新文件;故障處理模塊,用于修改所述新文件的指針以使所述新文件的指針指向所述故障數(shù)據(jù)塊,并釋放所述新文件所利用的所述空閑數(shù)據(jù)塊,以及修改所述文件系統(tǒng)的位圖以占用所述故障數(shù)據(jù)塊。
[0018]根據(jù)本發(fā)明實施例的硬盤故障處理裝置,可以通過故障數(shù)據(jù)塊的故障扇區(qū)號查找對應(yīng)的故障文件,并對故障文件進行處理,達到占用故障數(shù)據(jù)塊的目的,從而實現(xiàn)對故障數(shù)據(jù)塊的屏蔽,解決了文件系統(tǒng)分配使用故障數(shù)據(jù)塊時出現(xiàn)故障的問題,確保了文件系統(tǒng)的連續(xù)和一致性,同時保證故障的文件不會被再次訪問。
[0019]本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0020]本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0021]圖1為傳統(tǒng)的被文件占用的故障數(shù)據(jù)塊的示意圖;
[0022]圖2為傳統(tǒng)的故障文件處理方法的流程;
[0023]圖3傳統(tǒng)的未被文件占用的故障數(shù)據(jù)塊的示意圖;
[0024]圖4為根據(jù)本發(fā)明實施例的硬盤故障處理方法的流程圖;
[0025]圖5為根據(jù)本發(fā)明實施例的硬盤故障處理方法的示意圖;[0026]圖6為根據(jù)本發(fā)明實施例的硬盤故障處理裝置的示意圖;
[0027]圖7為根據(jù)本發(fā)明實施例的扇區(qū)地址計算模塊的示意圖;以及
[0028]圖8為根據(jù)本發(fā)明實施例的文件定位子單元的示意圖。
【具體實施方式】
[0029]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0030]參照下面的描述和附圖,將清楚本發(fā)明的實施例的這些和其他方面。在這些描述和附圖中,具體公開了本發(fā)明的實施例中的一些特定實施方式,來表示實施本發(fā)明的實施例的原理的一些方式,但是應(yīng)當理解,本發(fā)明的實施例的范圍不受此限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0031]下面參考圖4和圖5描述根據(jù)本發(fā)明實施例的硬盤故障處理方法。
[0032]如圖4所示,本發(fā)明實施例的硬盤故障處理方法,包括如下步驟:
[0033]步驟S401,獲得硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號。
[0034]硬盤邏輯可以劃分為引導(dǎo)區(qū)、分區(qū)表區(qū)和文件系統(tǒng)存儲區(qū)。其中,文件系統(tǒng)存儲區(qū)
可以包括多個文件系統(tǒng),例如:文件系統(tǒng)1、文件系統(tǒng)2、文件系統(tǒng)3.......文件系統(tǒng)N。其
中,每個文件系統(tǒng)的大小不是固定的,可以為IT?8T。
[0035]引導(dǎo)區(qū)的長度是固定的,在引導(dǎo)區(qū)中存儲有引導(dǎo)信息。在硬盤的分區(qū)表區(qū)中存儲有分區(qū)表,其中,分區(qū)表中存儲有文件系統(tǒng)存儲區(qū)中各個文件系統(tǒng)的分區(qū)信息,在本發(fā)明的一個實施例中,分區(qū)表中記錄有硬盤中引導(dǎo)區(qū)和為文件系統(tǒng)存儲區(qū)的分區(qū)的數(shù)目、每個分區(qū)的起始位置和結(jié)束位置。
[0036]在對硬盤進行分區(qū)時,首先跳過引導(dǎo)區(qū),在分區(qū)表區(qū)中查找硬盤的分區(qū)表。然后,將該分區(qū)表讀入到內(nèi)存中,根據(jù)分區(qū)表對硬盤的引導(dǎo)區(qū)和文件系統(tǒng)存儲區(qū)進行分區(qū)。根據(jù)讀取到的分區(qū)表,對硬盤增加扇區(qū)信息。
[0037]需要說明的是,上述對硬盤的引導(dǎo)區(qū)、分區(qū)表區(qū)和文件系統(tǒng)存儲區(qū)的劃分方式僅是出于示例的目的,而不是為了限制本發(fā)明??梢岳斫獾氖?,根據(jù)硬盤以及文件系統(tǒng)的大小的不同,引導(dǎo)區(qū)、分區(qū)表區(qū)和文件系統(tǒng)存儲區(qū)還可以為其他數(shù)量的扇區(qū)。
[0038]在本發(fā)明的實施例中,故障數(shù)據(jù)塊包括至少一個故障扇區(qū)。當檢測硬盤的出現(xiàn)故障的故障數(shù)據(jù)塊時,即檢測到該故障數(shù)據(jù)塊包括至少一個故障扇區(qū),則獲取該故障數(shù)據(jù)塊發(fā)生故障的故障扇區(qū)的故障扇區(qū)號。
[0039]步驟S402,根據(jù)故障扇區(qū)號和各個文件系統(tǒng)的分區(qū)信息獲得故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)故障扇區(qū)號和故障扇區(qū)號所屬的文件系統(tǒng)確定故障數(shù)據(jù)塊所對應(yīng)的故障文件。
[0040]根據(jù)各個文件系統(tǒng)的分區(qū)信息獲得各個文件系統(tǒng)的分區(qū)信息。然后根據(jù)獲得的故障扇區(qū)號以及各個文件系統(tǒng)的分區(qū)信息,查找故障扇區(qū)號所屬的文件系統(tǒng)。然后,獲取該故障扇區(qū)號所屬的文件系統(tǒng)的文件系統(tǒng)信息表。根據(jù)該文件系統(tǒng)信息表獲得所屬文件系統(tǒng)對應(yīng)的數(shù)據(jù)塊及數(shù)據(jù)塊信息。其中,塊信息包括塊的容量(blocksize)。例如,blocksize可以為IK或4K。[0041]表1為EXT系列文件系統(tǒng)的數(shù)據(jù)分區(qū)示意。
【權(quán)利要求】
1.一種硬盤故障處理方法,其特征在于,包括以下步驟: 獲得硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號,其中,所述硬盤的分區(qū)表區(qū)中存儲有分區(qū)表,所述分區(qū)表中存儲有所述文件系統(tǒng)存儲區(qū)中各個文件系統(tǒng)的分區(qū)信息,所述故障數(shù)據(jù)塊包括至少一個故障扇區(qū); 根據(jù)所述故障扇區(qū)號和所述各個文件系統(tǒng)的分區(qū)信息獲得所述故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所屬的文件系統(tǒng)確定所述故障數(shù)據(jù)塊所對應(yīng)的故障文件; 在所述文件系統(tǒng)中刪除所述故障文件,并在所述文件系統(tǒng)中利用空閑數(shù)據(jù)塊創(chuàng)建新文件;以及 修改所述新文件的指針以使所述新文件的指針指向所述故障數(shù)據(jù)塊,并釋放所述新文件所利用的所述空閑數(shù)據(jù)塊,以及修改所述文件系統(tǒng)的位圖以占用所述故障數(shù)據(jù)塊。
2.如權(quán)利要求1所述的硬盤故障處理方法,其特征在于,所述釋放所述新文件所利用的所述空閑數(shù)據(jù)塊進一步包括: 將所述文件系統(tǒng)中所述空閑數(shù)據(jù)塊對應(yīng)的位圖修改為O。
3.如權(quán)利要求1所述的硬盤故障處理方法,其特征在于,還包括: 修改所述文件系統(tǒng)中超級塊及塊組描述符中的統(tǒng)計信息及校驗信息。
4.如權(quán)利要求1所述的硬盤故障處理方法,其特征在于,所述根據(jù)故障扇區(qū)號和各個文件系統(tǒng)的分區(qū)信息獲得故障扇區(qū)號所屬的文件系統(tǒng)進一步包括: 根據(jù)所述故障扇區(qū)號和所 述各個文件系統(tǒng)的分區(qū)信息查找所述故障扇區(qū)號所屬的文件系統(tǒng),并獲得所述故障扇區(qū)號所屬的文件系統(tǒng)的文件系統(tǒng)信息表; 根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所屬的文件系統(tǒng)確定所述故障數(shù)據(jù)塊所對應(yīng)的故障文件進一步包括: 根據(jù)所述文件系統(tǒng)信息表獲得所述文件系統(tǒng)對應(yīng)的數(shù)據(jù)塊及數(shù)據(jù)塊信息; 根據(jù)所述故障扇區(qū)號和所述文件系統(tǒng)對應(yīng)的數(shù)據(jù)塊及數(shù)據(jù)塊信息獲得所述故障扇區(qū)號對應(yīng)的扇區(qū)地址;以及 根據(jù)所述扇區(qū)地址以確定所述故障扇區(qū)號對應(yīng)的故障文件。
5.如權(quán)利要求4所述的硬盤故障處理方法,其特征在于,所述根據(jù)故障扇區(qū)號和各個文件系統(tǒng)對應(yīng)的數(shù)據(jù)塊及數(shù)據(jù)塊信息獲得故障扇區(qū)號對應(yīng)的扇區(qū)地址進一步包括: 根據(jù)故障扇區(qū)號確定所述故障扇區(qū)號所對應(yīng)的數(shù)據(jù)塊;以及 根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所對應(yīng)的數(shù)據(jù)塊的容量計算所述故障扇區(qū)號對應(yīng)的扇區(qū)地址。
6.如權(quán)利要求2所述的硬盤故障處理方法,其特征在于,所述根據(jù)所述扇區(qū)地址以確定所述故障扇區(qū)號對應(yīng)的故障文件,進一步包括: 根據(jù)所述故障扇區(qū)號對應(yīng)的扇區(qū)地址遍歷所述各個文件系統(tǒng)的文件系統(tǒng)信息表中的索引節(jié)點inode,其中,所述索引節(jié)點inode中存儲有所屬文件系統(tǒng)的所有扇區(qū)的扇區(qū)地址; 查找所述扇區(qū)地址所屬的索引節(jié)點inode ;以及 根據(jù)所述扇區(qū)地址所屬的索引節(jié)點inode,查找所述索引節(jié)點inode對應(yīng)的故障文件。
7.一種硬盤故障處理裝置,其特征在于,包括:扇區(qū)故障檢測模塊,用于檢測硬盤出現(xiàn)故障的故障數(shù)據(jù)塊的故障扇區(qū)號,其中,所述硬盤的分區(qū)表區(qū)中存儲有分區(qū)表,所述分區(qū)表中存儲有所述文件系統(tǒng)存儲區(qū)中各個文件系統(tǒng)的分區(qū)信息,所述故障數(shù)據(jù)塊包括至少一個故障扇區(qū); 故障文件定位模塊,用于根據(jù)所述故障扇區(qū)號和所述各個文件系統(tǒng)的分區(qū)信息獲得所述故障扇區(qū)號所屬的文件系統(tǒng),以及根據(jù)所述故障扇區(qū)號和所述故障扇區(qū)號所屬的文件系統(tǒng)確定所述故障數(shù)據(jù)塊所對應(yīng)的故障文件; 文件處理模塊,在所述文件系統(tǒng)中刪除所述故障文件,并在所述文件系統(tǒng)中利用空閑數(shù)據(jù)塊創(chuàng)建新文件;以及 故障處理模塊,用于修改所述新文件的指針以使所述新文件的指針指向所述故障數(shù)據(jù)塊,并釋放所述新文件所利用的所述空閑數(shù)據(jù)塊,以及修改所述文件系統(tǒng)的位圖以占用所述故障數(shù)據(jù)塊。
8.如權(quán)利要求7所述的硬盤故障處理裝置,其特征在于,所述故障處理模塊將所述文件系統(tǒng)中所述空閑數(shù)據(jù)塊對應(yīng)的位圖修改為O。
9.如權(quán)利要求7所述的硬盤故障處理裝置,其特征在于,所述故障處理模塊還用于修改所述文件系統(tǒng)中超級塊及塊組描述符中的統(tǒng)計信息及校驗信息。
10.如權(quán)利要求7所述的硬盤故障處理裝置,其特征在于,故障文件定位模塊進一步包括: 信息獲取單元,用于根據(jù)所述故障扇區(qū)號和所述各個文件系統(tǒng)的分區(qū)信息查找所述故障扇區(qū)號所屬的文件系統(tǒng),并獲得所述故障扇區(qū)號所屬的文件系統(tǒng)的文件系統(tǒng)信息表;扇區(qū)地址計算單元,用于根據(jù)所述故障扇區(qū)號和所述文件系統(tǒng)對應(yīng)的數(shù)據(jù)塊及數(shù)據(jù)塊信息獲得所述故障扇區(qū)號對應(yīng)的扇區(qū)地址;以及 文件系統(tǒng)定位單元,用于根據(jù)所述扇區(qū)地址確定所述故障扇區(qū)號對應(yīng)的故障文件。
11.如權(quán)利要求10所述的硬盤故障處理裝置,其特征在于,所述扇區(qū)地址計算單元根據(jù)所述故障扇區(qū)號確定所述故障扇區(qū)號所對應(yīng)的數(shù)據(jù)塊以及所述所對應(yīng)的數(shù)據(jù)塊的數(shù)據(jù)容量,并根據(jù)所述故障扇區(qū)號和所述對應(yīng)的數(shù)據(jù)塊的容量計算所述故障扇區(qū)號對應(yīng)的扇區(qū)地址。
12.如權(quán)利要求10所述的硬盤故障處理裝置,其特征在于,所述文件系統(tǒng)定位單元進一步包括: 遍歷子單元,用于根據(jù)所述故障扇區(qū)號對應(yīng)的扇區(qū)地址遍歷所述各個文件系統(tǒng)的文件系統(tǒng)信息表中的索引節(jié)點inode,其中,所述索引節(jié)點inode中存儲有所屬文件系統(tǒng)的所有扇區(qū)的扇區(qū)地址; 查找子單元,用于查找所述扇區(qū)地址所屬的索引節(jié)點inode ;以及定位子單元,用于根據(jù)所述扇區(qū)地址所屬的索引節(jié)點inode,查找所述索引節(jié)點inode對應(yīng)的故障文件。
【文檔編號】G06F11/22GK103473157SQ201210185744
【公開日】2013年12月25日 申請日期:2012年6月6日 優(yōu)先權(quán)日:2012年6月6日
【發(fā)明者】王志謙, 魏偉, 胡殿明 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司