[發明專利]磁盤塊檢查方法及裝置有效
| 申請號: | 201210578405.4 | 申請日: | 2012-12-27 |
| 公開(公告)號: | CN103117075A | 公開(公告)日: | 2013-05-22 |
| 發明(設計)人: | 張森;黃巖 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G11B20/18 | 分類號: | G11B20/18 |
| 代理公司: | 北京億騰知識產權代理事務所 11309 | 代理人: | 李楠 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 磁盤 檢查 方法 裝置 | ||
技術領域
本發明涉及存儲技術領域,尤其涉及一種磁盤塊檢查方法及裝置。
背景技術
計算機中的文件系統一般會處于兩種狀態之一:清潔的(clean)或者臟的(dirty)。如果要在磁盤分區上掛載一個文件系統,這個文件系統必須是clean的,也就是說是結構完整的,元數據之間、元數據和數據之間是一致的。但有時文件系統的一致性可能被破壞,如系統掉電時,內存中的數據會丟失,或者由于磁盤發生故障,如磁盤壞道等,都會破壞文件系統數據的一致性。為了檢查和維護不一致的文件系統,文件系統會提供磁盤塊檢查(FilesystemCheck,FSCK)工具來方便用戶檢查和修復文件系統。
FSCK有一個重要步驟:遍歷文件系統中所有文件對應的數據塊是否空閑,即文件使用的數據塊是否是已被成功分配的。圖1為現有的文件系統FSCK示意圖。如圖1所示,一個文件可能由多個數據塊構成,在檢查時必須對每個數據塊找到它在磁盤上的位置,并查詢該磁盤塊是否被分配出來了。當文件較大時,該檢查步驟是非常耗時的,因為它需要頻繁的讀磁盤,會大大降低FSCK的效率。特別是對于重刪文件系統,由于其一個文件常常對應著大量數據塊(多達數億),該步驟會消耗非常長的時間。
發明內容
本發明實施例提供了一種磁盤塊檢查方法及裝置,可以減少磁盤訪問次數,加快FSCK速度。
第一方面,本發明實施例提供了一種磁盤塊檢查方法,包括:
利用哈希Hash函數將第一磁盤塊集合的第一子磁盤塊集合的每個塊號映射到布隆濾波器Bloom?Filter數組中,將所述每個塊號映射到的位置的值由初始值置為第一特征值,所述Bloom?Filter數組中所有位置的初始值為第二特征值,所述第一磁盤塊集合包括兩個子磁盤塊集合,所述兩個子磁盤塊集合為空閑磁盤塊集合和非空閑磁盤塊集合;
利用所述Hash函數將被檢查磁盤塊的塊號映射到所述Bloom?Filter數組中;
根據所述被檢查磁盤塊的塊號映射到的位置的值,判斷所述被檢查磁盤塊是否屬于所述Bloom?Filter數組;
根據所述被檢查磁盤塊是否屬于所述Bloom?Filter數組,確定所述被檢查磁盤塊是空閑磁盤塊還是非空閑磁盤塊。
結合第一方面,在第一種可能的實現方式中,所述Hash函數個數為一個以上,并且各個Hash函數之間沒有相關性。
結合第一方面,在第二種可能的實現方式中,當所述第一磁盤塊集合中的空閑的磁盤塊數量大于非空閑的磁盤塊數量且兩者之差大于第一數量閾值時,則所述第一子磁盤塊集合為非空閑磁盤塊集合,相應地,所述Bloom?Filter數組為非空閑磁盤塊的Bloom?Filter數組;
當所述第一磁盤塊集合中的非空閑的磁盤塊數量大于空閑的磁盤塊數量且兩者之差大于第一數量閾值時,則所述第一子磁盤塊集合為非空閑磁盤塊集合,相應地,所述Bloom?Filter數組為空閑磁盤塊的Bloom?Filter數組。
結合第二種可能的實現方式,在第三種可能的實現方式中,當非空閑的磁盤塊數量與空閑的磁盤塊數量之差小于第一數量閾值時,所述方法還包括:
利用哈希Hash函數將第一磁盤塊集合的第二子磁盤塊集合的每個塊號映射到布隆濾波器Bloom?Filter數組中,將所述每個塊號映射到的位置的值由初始值置為第一特征值;相應地,所述Bloom?Filter數組為非空閑磁盤塊的Bloom?Filter數組和空閑磁盤塊的Bloom?Filter數組。
結合第一方面或第二種可能的實現方式,在第四種可能的實現方式中,當所述Bloom?Filter數組為非空閑磁盤塊的Bloom?Filter數組時,所述根據所述被檢查磁盤塊的塊號映射到的位置的值,判斷所述被檢查磁盤塊是否屬于所述Bloom?Filter數組,根據所述被檢查磁盤塊是否屬于所述至少一個Bloom?Filter數組,確定所述被檢查磁盤塊是空閑磁盤塊還是非空閑磁盤塊,包括:
判斷所述被檢查磁盤塊的塊號映射到所述非空閑磁盤塊的Bloom?Filter數組的位置的值,如果所述映射到的位置的值至少有一個不是所述第一特征值,判斷所述被檢查磁盤塊不屬于所述非空閑磁盤塊的Bloom?Filter數組;
確定所述被檢查磁盤塊是空閑磁盤塊。
結合第四種可能的實現方式,在第五種可能的實現方式中,如果所述映射到的位置的值都是所述第一特征值,則到空間管理模塊去查詢所述被檢查磁盤塊是空閑磁盤塊還是非空閑磁盤塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210578405.4/2.html,轉載請聲明來源鉆瓜專利網。





