TWI610169B - 檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器 - Google Patents

檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器 Download PDF

Info

Publication number
TWI610169B
TWI610169B TW103102671A TW103102671A TWI610169B TW I610169 B TWI610169 B TW I610169B TW 103102671 A TW103102671 A TW 103102671A TW 103102671 A TW103102671 A TW 103102671A TW I610169 B TWI610169 B TW I610169B
Authority
TW
Taiwan
Prior art keywords
check code
data block
check
error
log subsystem
Prior art date
Application number
TW103102671A
Other languages
English (en)
Other versions
TW201525687A (zh
Inventor
周濤
Original Assignee
晨星半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 晨星半導體股份有限公司 filed Critical 晨星半導體股份有限公司
Publication of TW201525687A publication Critical patent/TW201525687A/zh
Application granted granted Critical
Publication of TWI610169B publication Critical patent/TWI610169B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明揭示了檔案系統的日誌子系統的錯誤追蹤方法及處理器,所述方法包括在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼;判斷資料塊的第二校驗碼和已保存於磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果是否一致;若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。通過上述方式,可在較小影響系統性能的前提下檢測出檔案系統的日誌子系統的錯誤以及錯誤的較準確位置,從而提升日誌子系統的可靠性。

Description

檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器
本發明屬於電腦資料存儲技術領域,涉及一種檔案系統的日誌子系統的寫入方法及處理器、一種檔案系統的日誌子系統的錯誤追蹤方法及處理器。
檔案系統是一個現代作業系統的重要組成部分,一方面它負責資料在磁碟上的組織和管理,另一方面它要通過統一的介面,方便而高效的為應用程式提供檔案相關的各種操作,對應用程式遮罩與資料存放和磁碟物理特性相關的各種細節。
資料存放的可靠性是評價檔案系統好壞的一個重要方面。而斷電容易導致一些正在寫入檔案系統的資料不能完整寫入,下次重新開機檔案系統有可能因為資料的不一致性而遭到損壞。很多檔案系統為了克服這一缺陷而引入了日誌子系統。每次寫資料時,先把資料寫入日誌子系統,再在合適的時機把資料從日誌子系統寫入本應該寫入的位置。這樣,如果斷電導致日誌子系統中的資料有缺失,損壞的只是日誌子系統,檔案系統本身的一致性是得到保證的,雖然資料可能久了一些。如果斷電導致寫入檔案系統的資料有部分丟失,那麼日誌子系統中保存的相應資料肯定是完 整的,資料可以從日誌子系統恢復到檔案系統中。
日誌子系統對於保證檔案系統的可靠性具有重要作用,但日誌子系統本身也有可能因為各種軟硬體的故障而損壞,這裏所說的損壞是指的非斷電因素導致的。一般來說,斷電只會損壞斷電前寫的最後一筆資料,而其他因素導致的資料損壞則可能影響任何一個早已寫好資料的區域。這種損壞有可能進一步帶入檔案系統中而使檔案系統無法使用。
現有的日誌子系統原本有一個簡單的CRC(cyclic redundancy check,循環冗餘校驗碼)校驗機制。但這一機制只針對一筆交易中的所有資料塊計算CRC校驗碼,當一筆交易中塊數過多時,如果其中有資料發生損壞,後期的分析是很難知道損壞的準確位置到底在這些資料塊的什麼地方的。
有鑒於此,如今迫切需要設計一種新的檔案系統日誌管理方法,以便改進現有技術的缺陷。
本發明所要解決的技術問題是:提供一種檔案系統的日誌子系統的錯誤追蹤方法及處理器,可在較小影響系統性能的前提下檢測出檔案系統的日誌子系統錯誤以及錯誤的較準確位置,從而提升日誌子系統的可靠性。
為解決上述技術問題,本發明提供一種檔案系統的日誌子系統的寫入方法,包括:在檔案系統的日誌子系統向磁碟寫入資料塊時,計算所述資料塊的校驗碼而獲得第一校驗碼;將所述計算出的資料塊的第一校驗碼保存於磁碟中所述日誌子系統的提交塊的空餘空間中。
為解決上述技術問題,本發明提供一種檔案系統的日誌子系統的錯誤追蹤方法,包括:在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算所述資料塊的校驗碼而獲得第二校驗碼;判斷所述資料塊的第二校驗碼和已保存於磁碟中所述日誌子系統的提交塊的空餘空間的所述資料塊的第一校驗碼的校驗結果是否一致,其中,所述資料塊的第一校驗碼和第二校驗碼的計算方法一致;若所述第二校驗碼和第一校驗碼的校驗結果不一致,則對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。
為解決上述技術問題,本發明提供一種處理器,所述處理器包括:第一校驗碼獲得模組,用於在檔案系統的日誌子系統向磁碟寫入資料塊時,計算所述資料塊的校驗碼而獲得第一校驗碼;存儲模組,用於將所述計算出的資料塊的第一校驗碼保存於磁碟中所述日誌子系統的提交塊的空餘空間中。
為解決上述技術問題,本發明提供另一種處理器,所述處理器包括:第二校驗碼獲得模組,用於在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算所述資料塊的校驗碼而獲得第二校驗碼;判斷模組,用於判斷所述資料塊的第二校驗碼和已保存於磁碟中所述日誌子系統的提交塊的空餘空間的第一校驗碼的校驗結果是否一致,其中,所述資料塊的第一校驗碼和第二校驗碼的計算方法一致;執行模組,用於在所述第二校驗碼和第一校驗碼的校驗結果不一致時,對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。
本發明的有益效果在於:本發明在將磁碟中日誌子系統的資 料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼;判斷資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果是否一致;若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。通過這種方式,可在較小影響系統性能的前提下檢測出檔案系統的日誌子系統的錯誤以及錯誤的較準確位置,從而提升日誌子系統的可靠性。
S101、S102、S201、S202、S203、S201a、S203a、S201b、S203b、S201c、S201d、S201e、S203c、S203d‧‧‧步驟
101‧‧‧第一校驗碼獲得模組
102‧‧‧存儲模組
201‧‧‧第二校驗碼獲得模組
202‧‧‧判斷模組
203‧‧‧執行模組
圖1為本發明檔案系統的日誌子系統的寫入方法一實施方式的流程圖;圖2為本發明檔案系統的日誌子系統的錯誤追蹤方法一實施方式的流程圖;圖3為本發明檔案系統的日誌子系統的錯誤追蹤方法另一實施方式的流程圖;圖4為本發明檔案系統的日誌子系統的錯誤追蹤方法又一實施方式的流程圖;圖5為本發明檔案系統的日誌子系統的錯誤追蹤方法又一實施方式的流程圖;圖6為本發明處理器一實施方式的結構示意圖;圖7為本發明處理器另一實施方式的結構示意圖。
下面結合附圖和實施方式對本發明進行詳細的說明。需要注意的是,為了使本領域的技術人員更容易理解本發明的原理,以下對在本 說明書中常用的幾個名詞進行解釋,但是這些解釋均是示例性的,並不是對本發明的限制。
在本發明實施例中,檔案系統是作業系統用於明確磁碟或分區上的檔案的方法和資料結構,即在磁碟上組織檔案的方法。因為本發明實施例使用獨立的日誌子系統跟蹤磁碟磁內容的變化,帶有日誌子系統的檔案系統比傳統的檔案系統安全。
在本發明實施例中,資料塊是一組按順序連續排列在一起的幾組記錄,是主記憶體與輸入、輸出設備或外記憶體之間進行傳輸的一個資料單位。檔案系統和日誌子系統在寫資料時一般是以資料塊(block)為最小單位,一個資料塊一般從1KB到4KB不等。
在本發明實施例中,校驗碼是通過某種運算得出的用以檢驗目標資料是否正確的一組資料,此處的校驗碼包括但不限於錯誤檢查和糾正校驗碼(ECC,Error Correction Code)、循環冗餘校驗碼(CRC,Cyclic Redundancy Check)、奇偶校驗碼等等。資料塊的第一校驗碼即為在檔案系統的日誌子系統向磁碟寫入資料塊時,計算該資料塊所獲得的計算結果,該第一校驗碼可以是ECC校驗碼、CRC校驗碼、奇偶校驗碼等等。請參閱圖1,圖1是本發明檔案系統的日誌子系統的寫入方法一實施方式的流程圖,所述方法包括:
步驟S101:在檔案系統的日誌子系統向磁碟寫入資料塊時,計算資料塊的校驗碼而獲得第一校驗碼。
步驟S102:將計算出的資料塊的第一校驗碼保存于磁碟中日誌子系統的提交塊的空餘空間中。
日誌子系統的第一個資料塊是日誌超級塊,後面的塊按交易分成組,一個交易包含一組塊。一個交易包含以下塊:描述塊、元資料塊、提交塊、撤銷塊。提交塊表示本交易結束。
出於效率的考慮,系統通常不會在每出現一個資料塊的寫入請求時就立刻把這個資料塊寫到磁碟上,而是會儘量收集多一些的資料塊,集中起來一次寫到磁碟上,在日誌系統中,這一次集中寫的動作被稱為一筆交易(transaction)。日誌子系統在每一筆交易寫入磁碟以後會在尾部寫一個提交塊來標記一次交易的結束,提交塊中實際只使用了64個位元組,剩下的空間為空。在本發明實施方式中,計算出的資料塊的第一校驗碼就是保存在磁碟中日誌子系統的提交塊的空餘空間中。
舉例來說,日誌子系統的所有資料塊的第一校驗碼是錯誤檢查和糾正校驗碼ECC或循環冗餘校驗碼CRC,或日誌子系統的一部分資料塊的第一校驗碼是錯誤檢查和糾正校驗碼ECC,另一部分的資料塊的第一校驗碼是循環冗餘校驗碼CRC。
也就是說,在計算日誌子系統的資料塊,獲得第一校驗碼時,第一校驗碼可以是ECC校驗碼,或者是CRC校驗碼,或者一部分資料塊的第一校驗碼是ECC校驗碼,另一部分資料塊的第一校驗碼是CRC校驗碼。在實際應用中,可以根據具體情況,在計算資料塊獲得校驗碼時選擇合適的校驗碼。
本發明實施方式在檔案系統的日誌子系統向磁碟寫入資料塊時,計算資料塊的第一校驗碼;將計算出的資料塊的第一校驗碼保存于磁碟中日誌子系統的提交塊的空餘空間中。由於資料塊的第一校驗碼保存 於提交塊的空餘空間中,通過這種方式,不用分配另外的空間存放校驗碼,充分利用提交塊的空餘空間,相容資料在磁碟上已有的存放格式。
參閱圖2,圖2是本發明檔案系統的日誌子系統的錯誤追蹤方法一實施方式的流程圖,包括:
步驟S201:在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼。
步驟S202:判斷資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果是否一致,其中,資料塊的第一校驗碼和第二校驗碼的計算方法一致。
由於該資料塊的第一校驗碼和第二校驗碼的計算方法一致,因此,如果資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果一致,則表明恢復到檔案系統的原始位置的資料塊和將磁碟中日誌子系統的資料塊是一致的,資料是正確的,沒有錯誤的。如果第二校驗碼和第一校驗碼的校驗結果不一致,進入步驟S203。
步驟S203:若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。
如果第二校驗碼和第一校驗碼的校驗結果不一致,表明恢復到檔案系統的原始位置的資料塊和將磁碟中日誌子系統的資料塊不一致的,恢復到檔案系統的原始位置的資料塊的資料是有錯誤的,此時對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理,以通知用戶注意恢復到檔案系統的原始位置的錯誤的資料塊,便於用戶採取積極的措施 進行補救。
其中,如果日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼ECC,則步驟S201中計算資料塊的校驗碼而獲得第二校驗碼的步驟包括步驟S201a,步驟S203包括步驟S203a,如圖3所示,具體內容如下:在計算日誌子系統的資料塊的校驗碼時,可以計算所述日誌子系統的資料塊的每預定數目字節的校驗碼,獲得所述資料塊的第二校驗碼。下面以校驗碼是ECC校驗碼,以預定數目字節為512位元組為例進行說明。
步驟S201a:計算日誌子系統的資料塊的每512個位元組的ECC校驗碼,獲得資料塊的ECC第二校驗碼。
步驟S203a:若第二校驗碼和第一校驗碼的校驗結果不一致,在資料塊的錯誤不超過2位元時,自動糾正資料塊的錯誤,在資料塊的錯誤超過2位元時,對512個位元組的資料塊進行報錯。
在日誌子系統向磁碟寫入一個個的資料塊的時候,對每512個位元組計算其ECC校驗碼(即第一校驗碼),並在最後隨提交塊一起寫入到磁碟中。而在開機的時候,當日誌子系統中有資料塊需要恢復到檔案系統的原始位置時,日誌子系統重新計算這些資料塊的ECC校驗碼(即第二校驗碼),並和存放在提交塊中的已有ECC校驗碼(即第一校驗碼)進行比較。如果結果不一致,對於每個資料塊不超過2個位元的錯誤可以自動糾正,而對於超過2個位元的錯誤則會報錯,這樣後續便可以專門針對有問題的512位元組的資料塊進行進一步的分析。
資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗 碼ECC的優點是:有糾錯能力,最小的報錯範圍是512位元組,比較精細。
其中,如果日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC,則步驟S201中計算資料塊的校驗碼而獲得第二校驗碼的步驟包括步驟S201b,步驟S203包括步驟S203b,如圖4所示,具體內容如下:
步驟S201b:計算日誌子系統的每個資料塊的CRC校驗碼,獲得每個資料塊的CRC第二校驗碼。
步驟S203b:若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行報錯。
在現有技術中,CRC校驗碼是在計算出一筆交易的最終校驗碼時分別計算每個資料塊的CRC校驗碼,最終的CRC校驗碼是每個資料塊的CRC累積下來的校驗碼。因此,步驟S201b將最終CRC校驗碼計算過程中的這些中間CRC校驗碼保留下來存放到提交塊的空餘空間。系統在下次開機進行恢復時則對這些中間CRC校驗碼進行比較,如果有錯誤,就可以知道是哪一個資料塊有問題。
資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC的優點是沒有額外增加計算量,只是把以前一直就存在的計算中間結果保留下來,對系統性能完全不影響。
結合ECC校驗碼和CRC校驗碼各自的優點,其中,如果日誌子系統的一部分資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼ECC,另一部分資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC,則步驟S201中計算資料塊的校驗碼而獲得第二校驗碼的步驟包括步 驟S201c、步驟S201d和步驟S201e,步驟S203包括步驟S203c和步驟S203d。如圖5所示,具體內容如下:
步驟S201c:判斷磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼是錯誤檢查和糾正校驗碼ECC還是循環冗餘校驗碼CRC。如果是錯誤檢查和糾正校驗碼ECC,進入步驟S201d,如果是循環冗餘校驗碼CRC,進入步驟S201e。
步驟S201d:若第一校驗碼是錯誤檢查和糾正校驗碼ECC,則計算日誌子系統的資料塊的每512個位元組的ECC校驗碼,獲得資料塊的ECC第二校驗碼。
步驟S201e:若第一校驗碼是循環冗餘校驗碼CRC,則計算日誌子系統的每個資料塊的CRC校驗碼,獲得每個資料塊的CRC第二校驗碼。
步驟S203c:若第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼ECC,且第二校驗碼和第一校驗碼的校驗結果不一致,在資料塊的錯誤不超過2位元時,自動糾正資料塊的錯誤,在資料塊的錯誤超過2位元時,對512個位元組的資料塊進行報錯。
步驟S203d:若第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC,且第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行報錯。
通過上述方式,可以充分利用ECC校驗碼和CRC校驗碼各自的優點,以供用戶根據實際應用情況靈活地選擇相應的校驗碼,以實現檔案系統的日誌子系統的錯誤追蹤的目的。
總之,本發明實施方式在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼;判斷資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果是否一致;若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。由於校驗碼是需要存放在磁碟上的,而檔案系統和日誌子系統在磁碟上的存放格式早就固定了,如果劃出一塊新的空間來存放校驗碼,會引起舊的系統無法相容新的磁碟資料結構的問題。通過上述方式,本發明實施方式利用的提交塊的空餘空間來存放校驗碼,能夠在不破壞已有的磁碟資料結構的基礎上通過保存的校驗碼來追蹤日誌子系統的錯誤,從而提升日誌子系統的可靠性並做到完全地向前相容。
參閱圖6,圖6是本發明處理器一實施方式的結構示意圖,該處理器包括:第一校驗碼獲得模組101和存儲模組102。
第一校驗碼獲得模組101用於在檔案系統的日誌子系統向磁碟寫入資料塊時,計算資料塊的校驗碼而獲得第一校驗碼。
檔案系統是作業系統用於明確磁碟或分區上的檔案的方法和資料結構;即在磁碟上組織檔案的方法。因為使用獨立的日誌子系統跟蹤磁碟內容的變化,帶有日誌子系統的檔案系統比傳統的檔案系統安全。
資料塊是一組按順序連續排列在一起的幾組記錄,是主記憶體與輸入、輸出設備或外記憶體之間進行傳輸的一個資料單位。檔案系統和日誌子系統在寫資料時一般是以資料塊(block)為最小單位,一個資料塊一般從1KB到4KB不等。
校驗碼是通過某種運算得出的用以檢驗目標資料是否正確的一組資料,此處的校驗碼包括但不限於ECC校驗碼、CRC校驗碼、奇偶校驗碼等等。資料塊的第一校驗碼即為在檔案系統的日誌子系統向磁碟寫入資料塊時,計算該資料塊所獲得的計算結果,該第一校驗碼可以是ECC校驗碼、CRC校驗碼,奇偶校驗碼等等。
存儲模組102用於將計算出的資料塊的第一校驗碼保存于磁碟中日誌子系統的提交塊的空餘空間中。
出於效率的考慮,系統通常不會每出現一個資料塊的寫請求就立刻把這個資料塊寫到磁碟上,而是會儘量收集多一些的資料塊,集中起來一次寫到磁碟上,在日誌系統中,這一次集中寫的動作被稱為一筆交易(transaction)。日誌子系統在每一筆事物寫入磁碟以後還會在尾部寫一個提交塊來標記一次事物的結束,提交塊中實際只使用了64個位元組,剩下的空間全部空著沒使用。在本發明實施方式中,計算出的資料塊的第一校驗碼就是保存在磁碟中日誌子系統的提交塊的空餘空間中。
其中,日誌子系統的所有資料塊的第一校驗碼是錯誤檢查和糾正校驗碼ECC或循環冗餘校驗碼CRC,或日誌子系統的一部分資料塊的第一校驗碼是錯誤檢查和糾正校驗碼ECC,另一部分的資料塊的第一校驗碼是循環冗餘校驗碼CRC。
也就是說,在計算日誌子系統的資料塊的第一校驗碼時,所有的資料塊均計算ECC校驗碼,或者所有的資料塊均計算CRC校驗碼,或者一部分資料塊計算ECC校驗碼,另一部分資料塊計算CRC校驗碼。在實際應用中,可以根據具體情況,在計算資料塊的校驗碼時選擇合適的校驗 碼。
本發明實施方式在檔案系統的日誌子系統向磁碟寫入資料塊時,計算資料塊的第一校驗碼;將計算出的資料塊的第一校驗碼保存于磁碟中日誌子系統的提交塊的空餘空間中。由於資料塊的第一校驗碼保存於提交塊的空餘空間中,通過這種方式,不用分配另外的空間存放校驗碼,充分利用提交塊的空餘空間,相容資料在磁碟上已有的存放格式。
參閱圖7,圖7是本發明處理器另一實施方式的結構示意圖,該處理器包括:第二校驗碼獲得模組201、判斷模組202以及執行模組203。
計算模組201用於在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼。
判斷模組202用於判斷資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的第一校驗碼的校驗結果是否一致,其中,資料塊的第一校驗碼和第二校驗碼的計算方法一致。
由於該資料塊的第一校驗碼和第二校驗碼的計算方法一致,因此,如果資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果一致,則表明恢復到檔案系統的原始位置的資料塊和將磁碟中日誌子系統的資料塊是一致的,資料是正確的,沒有錯誤的。
執行模組203用於在第二校驗碼和第一校驗碼的校驗結果不一致時,對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。
如果第二校驗碼和第一校驗碼的校驗結果不一致,表明恢復到檔案系統的原始位置的資料塊和將磁碟中日誌子系統的資料塊不一致 的,恢復到檔案系統的原始位置的資料塊的資料是有錯誤的,此時對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理,以通知用戶注意恢復到檔案系統的原始位置的錯誤的資料塊,便於用戶採取積極的措施進行補救。
在計算日誌子系統的資料塊的校驗碼時,第二校驗碼獲得模組可以用於計算所述日誌子系統的資料塊的每預定數目字節的校驗碼,獲得所述資料塊的第二校驗碼。下面以校驗碼是ECC校驗碼,以預定數目字節為512位元組為例進行說明。
如果日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼ECC,那麼第二校驗碼獲得201具體用於計算日誌子系統的資料塊的每512個位元組的ECC校驗碼,獲得資料塊的ECC第二校驗碼。執行模組203具體用於在第二校驗碼和第一校驗碼的校驗結果不一致時,在資料塊的錯誤不超過2位元時,自動糾正資料塊的錯誤,在資料塊的錯誤超過2位元時,對512個位元組的資料塊進行報錯。
如果日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC,那麼第二校驗碼獲得模組201具體用於計算日誌子系統的每個資料塊的CRC校驗碼,獲得每個資料塊的CRC第二校驗碼。執行模組203具體用於在第二校驗碼和第一校驗碼的校驗結果不一致時,對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行報錯。
另外,日誌子系統的一部分資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼ECC,另一部分資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼CRC。
總之,本發明實施方式在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算資料塊的校驗碼而獲得第二校驗碼;判斷資料塊的第二校驗碼和已保存于磁碟中日誌子系統的提交塊的空餘空間的資料塊的第一校驗碼的校驗結果是否一致;若第二校驗碼和第一校驗碼的校驗結果不一致,則對第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理。由於校驗碼是需要存放在磁碟上的,而檔案系統和日誌子系統在磁碟上的存放格式早就固定了,如果劃出一塊新的空間來存放校驗碼,會引起老的系統無法相容新的磁碟資料結構的問題。通過上述方式,本發明實施方式利用的提交塊的空餘空間來存放校驗碼,能夠在不破壞已有的磁碟資料結構的基礎上通過保存的校驗碼來追蹤日誌子系統的錯誤,從而提升日誌子系統的可靠性並做到完全的向前相容。
這裏本發明的描述和應用是說明性的,並非想將本發明的範圍限制在上述實施例中。這裏所披露的實施例的變形和改變是可能的,對於那些本領域的普通技術人員來說實施例的替換和等效的各種部件是公知的。本領域技術人員應該清楚的是,在不脫離本發明的精神或本質特徵的情況下,本發明可以以其他形式、結構、佈置、比例,以及用其他元件、材料和部件來實現。在不脫離本發明範圍和精神的情況下,可以對這裏所披露的實施例進行其他變形和改變。
S201~S203‧‧‧步驟

Claims (22)

  1. 一種檔案系統的日誌子系統的寫入方法,其特徵在於,所述方法包括如下步驟:在檔案系統的日誌子系統向磁碟寫入資料塊時,計算所述資料塊的校驗碼而獲得第一校驗碼;將所述計算出的資料塊的第一校驗碼保存於磁碟中所述日誌子系統的提交塊的空餘空間中,其中所述提交塊用於標記一筆資料寫入的結束。
  2. 根據申請專利範圍第1項所述的方法,其特徵在於,所述日誌子系統的所有資料塊的第一校驗碼是錯誤檢查和糾正校驗碼或循環冗餘校驗碼,或所述日誌子系統的一部分資料塊的第一校驗碼是錯誤檢查和糾正校驗碼,另一部分的資料塊的第一校驗碼是循環冗餘校驗碼。
  3. 一種檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於,包括:在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算所述資料塊的校驗碼而獲得第二校驗碼;判斷所述資料塊的第二校驗碼和已保存於磁碟中所述日誌子系統的提交塊的空餘空間的所述資料塊的第一校驗碼的校驗結果是否一致,其中,所述資料塊的第一校驗碼和第二校驗碼的計算方法一致;若所述資料塊的第二校驗碼和第一校驗碼的校驗結果不一致,則判斷所述資料塊為錯誤,對所述資料塊進行處理。
  4. 根據申請專利範圍第3項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼。
  5. 根據申請專利範圍第4項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述計算所述資料塊的校驗碼而獲得第二校驗碼的步驟包括:計算所述日誌子系統的資料塊的每預定數目字節的錯誤檢查和糾正校驗碼,獲得所述資料塊的錯誤檢查和糾正校驗碼第二校驗碼。
  6. 根據申請專利範圍第5項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述預定數目字節是512個位元組。
  7. 根據申請專利範圍第6項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述若所述第二校驗碼和第一校驗碼的校驗結果不一致,則對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理的步驟包括:若所述第二校驗碼和第一校驗碼的校驗結果不一致,在所述資料塊的錯誤不超過2位元時,自動糾正所述資料塊的錯誤,在所述資料塊的錯誤超過2位元時,對所述512個位元組的資料塊進行報錯。
  8. 根據申請專利範圍第3項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼。
  9. 根據申請專利範圍第8項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述計算所述資料塊的校驗碼而獲得第二校驗碼的步驟包括:計算所述日誌子系統的每個資料塊的循環冗餘校驗碼校驗碼,獲得所述每個資料塊的循環冗餘校驗碼第二校驗碼。
  10. 根據申請專利範圍第8項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述若所述第二校驗碼和第一校驗碼的校驗結果不一致,則對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行處理的步驟包括:若所述第二校驗碼和第一校驗碼的校驗結果不一致,則對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行報錯。
  11. 根據申請專利範圍第3項所述的檔案系統的日誌子系統的錯誤追蹤方法,其特徵在於:所述日誌子系統的一部分資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼,另一部分資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼。
  12. 一種處理器,其特徵在於,所述處理器包括:第一校驗碼獲得模組,用於在檔案系統的日誌子系統向磁碟寫入資料塊時,計算所述資料塊的校驗碼而獲得第一校驗碼;存儲模組,用於將所述計算出的資料塊的第一校驗碼保存於磁碟中所述日誌子系統的提交塊的空餘空間中,其中所述提交塊用於標記一筆 資料寫入的結束。
  13. 根據申請專利範圍第12項所述的處理器,其特徵在於,所述日誌子系統的所有資料塊的第一校驗碼是錯誤檢查和糾正校驗碼或循環冗餘校驗碼,或所述日誌子系統的一部分資料塊的第一校驗碼是錯誤檢查和糾正校驗碼,另一部分的資料塊的第一校驗碼是循環冗餘校驗碼。
  14. 一種處理器,其特徵在於,所述處理器包括:第二校驗碼獲得模組,用於在將磁碟中日誌子系統的資料塊恢復到檔案系統的原始位置時,計算所述資料塊的校驗碼而獲得第二校驗碼;判斷模組,用於判斷所述資料塊的第二校驗碼和已保存於磁碟中所述日誌子系統的提交塊的空餘空間的第一校驗碼的校驗結果是否一致,其中,所述資料塊的第一校驗碼和第二校驗碼的計算方法一致;執行模組,用於在所述資料塊的第二校驗碼和第一校驗碼的校驗結果不一致時,則判斷所述資料塊為錯誤,對所述資料塊進行處理。
  15. 根據申請專利範圍第14項所述的處理器,其特徵在於:所述日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼。
  16. 根據申請專利範圍第15項所述的處理器,其特徵在於:所述第二校驗碼獲得模組具體用於計算所述日誌子系統的資料塊的每預定數目字節的錯誤檢查和糾正校驗碼,獲得所述資料塊的錯誤檢查和糾正校驗碼第二校驗碼。
  17. 根據申請專利範圍第16項所述的處理器,其特徵在於:所述預定數目字節是512個位元組。
  18. 根據申請專利範圍第17項所述的處理器,其特徵在於:所述執行模組具體用於在所述第二校驗碼和第一校驗碼的校驗結果不一致時,在所述資料塊的錯誤不超過2位元時,自動糾正所述資料塊的錯誤,在所述資料塊的錯誤超過2位元時,對所述512個位元組的資料塊進行報錯。
  19. 根據申請專利範圍第14項所述的處理器,其特徵在於:所述日誌子系統的所有的資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼。
  20. 根據申請專利範圍第19項所述的處理器,其特徵在於:所述第二校驗 碼獲得模組具體用於計算所述日誌子系統的每個資料塊的循環冗餘校驗碼,獲得所述每個資料塊的循環冗餘校驗碼第二校驗碼。
  21. 根據申請專利範圍第19項所述的處理器,其特徵在於:所述執行模組具體用於在所述第二校驗碼和第一校驗碼的校驗結果不一致時,對所述第二校驗碼和第一校驗碼的校驗結果不一致的資料塊進行報錯。
  22. 根據申請專利範圍第14項所述的處理器,其特徵在於:所述日誌子系統的一部分資料塊的第一校驗碼和第二校驗碼是錯誤檢查和糾正校驗碼,另一部分資料塊的第一校驗碼和第二校驗碼是循環冗餘校驗碼。
TW103102671A 2013-12-30 2014-01-24 檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器 TWI610169B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201310747007.5 2013-12-30
CN201310747007.5A CN103778030B (zh) 2013-12-30 2013-12-30 日志子系统写入方法、错误追踪方法及处理器

Publications (2)

Publication Number Publication Date
TW201525687A TW201525687A (zh) 2015-07-01
TWI610169B true TWI610169B (zh) 2018-01-01

Family

ID=50570298

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103102671A TWI610169B (zh) 2013-12-30 2014-01-24 檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器

Country Status (3)

Country Link
US (1) US9727411B2 (zh)
CN (1) CN103778030B (zh)
TW (1) TWI610169B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989140B (zh) * 2015-02-27 2019-09-03 阿里巴巴集团控股有限公司 一种数据块处理方法和设备
US10489240B2 (en) * 2015-09-25 2019-11-26 Microsoft Technology Licensing, Llc Efficient detection of corrupt data
CN106294044B (zh) * 2016-08-09 2019-05-03 上海东软载波微电子有限公司 芯片内部寄存器的校验电路及芯片
CN108572883B (zh) * 2017-04-19 2021-06-18 北京金山云网络技术有限公司 一种数据正确性校验方法及装置
CN107643904B (zh) * 2017-09-18 2021-03-30 泰康保险集团股份有限公司 代码提交日志的检测方法、装置、介质及电子设备
CN110795269B (zh) * 2018-08-03 2023-05-26 阿里巴巴集团控股有限公司 一种数据恢复验证方法、装置及设备
CN109918226A (zh) * 2019-02-26 2019-06-21 平安科技(深圳)有限公司 一种静默错误检测方法、装置及存储介质
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
TWI749717B (zh) * 2020-08-17 2021-12-11 新加坡商鴻運科股份有限公司 異常日誌處理方法、裝置、終端設備、雲端伺服器及系統
CN113434561A (zh) * 2021-06-24 2021-09-24 北京金山云网络技术有限公司 直播数据校验方法、系统、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235923B (en) * 1999-09-29 2005-07-11 Toshiba Corp Transactional file system for realizing atomic update of plural files by transactions
US20120144272A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (nand) flash memory
CN102937922A (zh) * 2011-09-12 2013-02-20 微软公司 查询和修复数据

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832515A (en) * 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
CN101430657B (zh) * 2008-11-17 2011-10-26 华中科技大学 一种连续数据保护方法
US8171257B2 (en) * 2009-09-25 2012-05-01 International Business Machines Corporation Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer
US8312349B2 (en) * 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
CN102419766B (zh) * 2011-11-01 2013-11-20 西安电子科技大学 基于hdfs分布式文件系统的数据冗余及文件操作方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235923B (en) * 1999-09-29 2005-07-11 Toshiba Corp Transactional file system for realizing atomic update of plural files by transactions
US20120144272A1 (en) * 2010-12-03 2012-06-07 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (nand) flash memory
CN102937922A (zh) * 2011-09-12 2013-02-20 微软公司 查询和修复数据

Also Published As

Publication number Publication date
TW201525687A (zh) 2015-07-01
US9727411B2 (en) 2017-08-08
CN103778030A (zh) 2014-05-07
US20150186207A1 (en) 2015-07-02
CN103778030B (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
TWI610169B (zh) 檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器
JP7147050B2 (ja) ハードディスク故障対処方法、アレイコントローラ、およびハードディスク
TWI428737B (zh) 半導體記憶體裝置
US8751859B2 (en) Monitoring lost data in a storage system
US9772894B2 (en) Systems, methods, and machine-readable media to perform state data collection
TWI465904B (zh) 半導體記憶裝置
US7752489B2 (en) Data integrity validation in storage systems
US8904244B2 (en) Heuristic approach for faster consistency check in a redundant storage system
US7945815B2 (en) System and method for managing memory errors in an information handling system
CN102279776B (zh) 一种错误检查与纠正能力的测试方法及装置
US20140068208A1 (en) Separately stored redundancy
US20150199232A1 (en) Implementing ecc control for enhanced endurance and data retention of flash memories
EP2787440B1 (en) Information processing device, program, and method
WO2021135280A1 (zh) 一种分布式存储系统的数据校验方法及相关装置
CN109426586B (zh) 一种数据文件修复方法、设备及计算机可读存储介质
WO2020048442A1 (zh) 硬盘故障处理方法、阵列控制器及硬盘
CN109801668A (zh) 数据储存装置及应用于其上的操作方法
KR102437777B1 (ko) 데이터의 사일런트 커럽션을 감지하는 시스템들 및 그것의 동작 방법들
US7577804B2 (en) Detecting data integrity
CN106648969B (zh) 一种磁盘中损坏数据巡检方法及系统
US20100332947A1 (en) Storage control device and storage control method
CN102541677A (zh) 提高nandflash存储设备对照表加载速度的实现方法
TWI570738B (zh) 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用
JP6453457B2 (ja) ストレージ装置
WO2021196046A1 (zh) 一种管理数据存储阵列的方法、装置及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees