一種文件系統簇管理方法,包括:將文件系統的分區中每一個簇劃分為信息區和數據區,所述信息區包括文件信息和簇信息,簇信息包括文件的第一個簇的編號、每個簇在文件中上一個簇的編號和下一個簇的編號;創建文件,為文件分配第一個簇(a),在分配的該第一個簇(a)的信息區寫入文件信息和簇信息;當寫入文件時,在所述第一個簇(a)的數據區寫入數據,在所述第一個簇(a)寫滿后文件還未寫完時,分配下一個簇并更新簇信息,直至文件寫完;當讀取文件時,依次掃描分區內的每一個簇,直至找到所述文件的第一個簇(a)。當分區中的文件信息丟失時,可以通過讀取每個簇記錄的信息來恢復文件。
【技術實現步驟摘要】
本專利技術涉及文件系統,具體而言,涉及一種。
技術介紹
按照現有的磁盤分區標準,硬盤通常被劃分成多個主分區和擴展分區。文件系統用來管理每個分區的存儲空間,并提供文件操作的接口給用戶使用。通常的文件系統存儲空間管理方法如圖1所示。一個分區被劃分成關鍵信息區和數據區兩部分。數據區以大小都為S的簇為單位進行存儲空間管理,簇用來記錄存入到文件中的數據。關鍵信息區中記錄了分區中的文件信息和簇的使用信息。關鍵信息區中記錄的信息通常包括:.文件信息,包括:創建時間,文件大小,文件屬性等。.簇信息,包括:每個文件的第一個簇的編號,文件中的每個簇的上一個簇的編號和下一個簇的編號。如果這個簇是文件的第一個簇,則其上一個簇的編號記為O ;如果這個簇是文件的最后一個簇,則其下一個簇的編號記為O。其中,m為數據區的第一個簇,η為數據區的最后一個簇。m和η的計算方法如下:如果數據區的第一個簇在分區中的偏移為M個字節,分區總大小為N個字節,文件系統根據分區的大小計算出關鍵區占用的空間Μ。如果每個簇大小為S,則m = M/S, n = N/S。特別地,DVR(數字錄像機)需要記錄大量的視音頻數據到硬盤上,并且通常工作在較惡劣的環境中,如震動較強烈,經常異常斷電。在這樣的工作環境和工作負荷下,磁盤經常產生壞道等異常情況,這可能造成磁盤分區關鍵信息區中關鍵信息的丟失和損壞。在關鍵信息區內內信息丟失或損壞的情況下,因為無法找到相關的文件信息和簇信息,將無法從磁盤上讀取任何數據,即使數據還存在于磁盤上。所以,當硬盤發生損壞時,如何從硬盤中讀取盡可能多的數據成為DVR廠商亟需解決的問題。專利技術內容針對在磁盤發生壞道和異常斷電情況下導致的文件丟失或文件無法讀取的情況,本專利技術提供了 一種,對文件系統中的硬盤分區的存儲空間進行管理,所述包括:將文件系統的分區中每一個簇劃分為信息區和數據區,所述信息區包括文件信息和簇信息,簇信息包括文件的第一個簇的編號、每個簇在文件中上一個簇的編號和下一個簇的編號;創建文件,為文件分配第一個簇a,在分配的該第一個簇a的信息區寫入文件信息和簇信息;當寫入文件時,在所述第一個簇a的數據區寫入數據,在所述第一個簇a寫滿后文件還未寫完時,分配下一個簇并更新簇信息,直至文件寫完;當讀取文件時,依次掃描分區內的每一個簇,直至找到所述文件的第一個簇a。通過本專利技術,由于將一個分區內的每個簇中記錄了該簇的上一個簇和下一個簇的信息,從而即使當分區中的關鍵信息區中的某些關鍵數據丟失或損壞時,可以通過每個簇中包含的信息來讀取該分區中的文件,數據安全性高。附圖說明圖1為常用的文件系統存儲空間管理方法中的一個分區的示意圖;圖2為本專利技術的中的一個簇的示意圖;圖3為在本專利技術的中,寫入文件時分配一個新簇的流程圖;圖4為在本專利技術的中,找到一個文件的所有簇的流程圖。具體實施例方式本專利技術主要思想是在文件寫入過程中在每個簇寫入關鍵信息,從每個簇讀取關鍵信息來恢復文件信息和數據。在文件寫入過程中在每個簇寫入關鍵信息是指當某個文件分配到某一個簇或文件信息更新時,將相關的信息寫入到這個簇中。本專利技術的中,硬盤被分區后,在每個分區建立文件系統。將分區劃分為關鍵信息區和數據區,關鍵信息區與圖1的含義相同,而數據區與圖1的現有技術不同。圖2顯示了本專利技術的中的一個簇的示意圖,如圖所示,一個簇又劃分為兩部分:信息區和數據區,信息區劃分IK字節,數據區為1K-2M字節。劃分原則為信息區只占整個簇的一小部分,并留有一定的空間進行擴展。數據區記錄存入到文件中的數據。信息區記錄的信息包括:.文件信息,包括:創建時間,文件大小,文件屬性等。優選地,還可能包括一些業務信息,可以隨業務變化進行擴展,如錄像的通道號,錄像時銀行卡的卡號等。.簇信息,包括:每個文件的第一個簇編號,每個簇在文件中的上一個簇的編號和下一個簇的編號。如果這個簇是文件的第一個簇,則其上一個簇的編號記為O ;如果這個簇是文件的最后一個簇,則其下一個簇的編號記為O。如圖3所示,在文件寫入時,在信息區寫入關鍵信息,包括:11) 一個文件A被創建以后,在寫入數據之前,首先給文件A分配第一個簇(這個簇的簇編號為a);在簇a的信息區寫入文件A的文件信息(包括創建時間,文件大小,文件屬性等)和簇信息(對于第一個分配的簇a,其上一個簇的編號和下一個簇的編號都是O)。12)假定文件A當前分配的簇的編號為b,如果簇b被寫滿之后,要繼續在文件中追加數據,則為文件A分配一個新簇C。并且修改簇b的簇信息(其下一個簇的編號修改為c),同時寫入簇c的簇信息(其上一個簇的編號是b,下一個簇的編號是O)。13)文件關閉時,更新第一個簇a的文件信息(包括文件大小,文件屬性等)。讀取文件時,從信息區中讀取關鍵信息來讀取一個磁盤的所有的文件信息和數據(m, η的意義與圖1所示相同)的流程,包括:21)從簇m開始,依次掃描分區內的每一個簇。設正在掃描的簇的簇號為a,a =m022)如果a > = n,掃描結束。如果簇信息無效,(簇信息有CRC校驗,在寫入簇信息的同時寫入CRC校驗和。如果寫入簇信息過程中出錯,例如在異常斷電或磁盤壞道時可能發生發生該情況,則讀取簇信息時,CRC校驗會出錯,可確定簇信息無效),a = a+1,重新執行步驟22)。如果簇信息有效,進入步驟23)。23)如果簇a的上一個簇的編號不是0,進入步驟24)。如果簇a的上一個簇的編號是0,則簇a是一個文件的開始。執行已知一個文件A的第一個簇a來恢復文件A的流程(其在下文中詳述)。24) a = a+1,重新執行步驟 22)。如圖4所示,已知一個文件A的第一個簇a來恢復文件A的流程包括:31)讀取簇a的信息區,從信息區中可以得到該文件A的文件信息和簇a的下一個簇的編號(為b)。32)如果b = 0,已經找到這個文件的所有的簇,文件結束。否則a = b,回到步驟31)。現以一個500G的分區為例,來說明在文件系統上如何進行簇管理。I)設定簇大小 S = 2M,n = 500G/2M = 250Κ。關鍵信息點用1000個簇,數據區的開始簇號m = 1000。2)在每個簇的開始,劃分出一個IK的空間作為信息區,用來存儲文件信息。以DVR存儲為例,文件信息中記錄的數據可以包括開始時間,結束時間,文件大小、通道號等數據。3)寫入文件時分配一個新簇的流程如上步驟11)至步驟13)所示。4)根據一個文件的第一個簇a找到這個文件的所有的簇的流程如上步驟21)至步驟24)所示。本專利技術尤其適用于嵌入式系統中的硬盤分區的存儲空間的管理。本文檔來自技高網...
【技術保護點】
一種文件系統簇管理方法,其特征在于,包括:將文件系統的分區中每一個簇劃分為信息區和數據區,所述信息區包括文件信息和簇信息,簇信息包括文件的第一個簇的編號、每個簇在文件中上一個簇的編號和下一個簇的編號;創建文件,為文件分配第一個簇(a),在分配的該第一個簇(a)的信息區寫入文件信息和簇信息;當寫入文件時,在所述第一個簇(a)的數據區寫入數據,在所述第一個簇(a)寫滿后文件還未寫完時,分配下一個簇并更新簇信息,直至文件寫完;當讀取文件時,依次掃描分區內的每一個簇,直至找到所述文件的第一個簇(a)。
【技術特征摘要】
1.一種文件系統簇管理方法,其特征在于,包括: 將文件系統的分區中每一個簇劃分為信息區和數據區,所述信息區包括文件信息和簇信息,簇信息包括文件的第一個簇的編號、每個簇在文件中上一個簇的編號和下一個簇的編號; 創建文件,為文件分配第一個簇(a),在分配的該第一個簇(a)的信息區寫入文件信息和簇信息; 當寫入文件時,在所述第一個簇(a)的數據區寫入數據,在所述第一個簇(a)寫滿后文件還未寫完時,分配下一個簇并更新簇信息,直至文件寫完; 當讀取文件時,依次掃描分區內的每一個簇,直至找到所述文件的第一個簇(a)。2.根據權利要求1所述的文件系統簇管理方法,其特征在于,還包括:當文件關閉時,更新所述第一個簇(a)的文件信息。3.根據權利要求1所述的文件系統簇管理方法,其特征在于, 當創建文件時,在所述第一個簇(a)的簇信息中,上一個簇的編號和下一個簇的編號都為O。4.根據權利要求1所述的文件系統簇管理方法,其特征在于,當寫入文件時,更新簇信息包括: 將剛寫滿的簇的下一個簇的編號設定為新分配的簇的編號; 將新分配的簇的上一個簇的編號設定為剛寫滿的簇的編號;以及 將新分配的簇的下一個簇的編號設定為O。5....
【專利技術屬性】
技術研發人員:姚國勤,吳立,楊斌,潘海江,陳小軍,張興明,傅利泉,朱江明,吳軍,吳堅,
申請(專利權)人:浙江大華技術股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。