CN103778030B - 日志子系统写入方法、错误追踪方法及处理器 - Google Patents

日志子系统写入方法、错误追踪方法及处理器 Download PDF

Info

Publication number
CN103778030B
CN103778030B CN201310747007.5A CN201310747007A CN103778030B CN 103778030 B CN103778030 B CN 103778030B CN 201310747007 A CN201310747007 A CN 201310747007A CN 103778030 B CN103778030 B CN 103778030B
Authority
CN
China
Prior art keywords
check code
data block
daily record
check
record subsystem
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201310747007.5A
Other languages
English (en)
Other versions
CN103778030A (zh
Inventor
周涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xueshan Technology Co ltd
Original Assignee
CHEN SI ELECTRONICS TECHNOLOGY (SHANGHAI) Co Ltd
MStar Semiconductor Inc Taiwan
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 CHEN SI ELECTRONICS TECHNOLOGY (SHANGHAI) Co Ltd, MStar Semiconductor Inc Taiwan filed Critical CHEN SI ELECTRONICS TECHNOLOGY (SHANGHAI) Co Ltd
Priority to CN201310747007.5A priority Critical patent/CN103778030B/zh
Priority to TW103102671A priority patent/TWI610169B/zh
Publication of CN103778030A publication Critical patent/CN103778030A/zh
Priority to US14/584,729 priority patent/US9727411B2/en
Application granted granted Critical
Publication of CN103778030B publication Critical patent/CN103778030B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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校验码,当一笔事务中块数过多时,如果其中有数据发生损坏,后期的分析是很难知道损坏的准确位置到底在这些数据块的什么地方的。
有鉴于此,如今迫切需要设计一种新的文件系统日志管理方法,以便改进现有技术的缺陷。
发明内容
本发明所要解决的技术问题是:提供一种文件系统的日志子系统的错误追踪方法及处理器,可在较小影响系统性能的前提下检测出文件系统的日志子系统错误以及错误的较准确位置,从而提升日志子系统的可靠性。
为解决上述技术问题,本发明提供一种文件系统的日志子系统的写入方法,包括:在文件系统的日志子系统向磁盘写入数据块时,计算所述数据块的校验码而获得第一校验码;将所述计算出的数据块的第一校验码保存于磁盘中所述日志子系统的提交块的空余空间中。
为解决上述技术问题,本发明提供一种文件系统的日志子系统的错误追踪方法,包括:在将磁盘中日志子系统的数据块恢复到文件系统的原始位置时,计算所述数据块的校验码而获得第二校验码;判断所述数据块的第二校验码和已保存于磁盘中所述日志子系统的提交块的空余空间的所述数据块的第一校验码的校验结果是否一致,其中,所述数据块的第一校验码和第二校验码的计算方法一致;若所述第二校验码和第一校验码的校验结果不一致,则对所述第二校验码和第一校验码的校验结果不一致的数据块进行处理。
为解决上述技术问题,本发明提供一种处理器,所述处理器包括:第一校验码获得模块,用于在文件系统的日志子系统向磁盘写入数据块时,计算所述数据块的校验码而获得第一校验码;存储模块,用于将所述计算出的数据块的第一校验码保存于磁盘中所述日志子系统的提交块的空余空间中。
为解决上述技术问题,本发明提供另一种处理器,所述处理器包括:第二校验码获得模块,用于在将磁盘中日志子系统的数据块恢复到文件系统的原始位置时,计算所述数据块的校验码而获得第二校验码;判断模块,用于判断所述数据块的第二校验码和已保存于磁盘中所述日志子系统的提交块的空余空间的第一校验码的校验结果是否一致,其中,所述数据块的第一校验码和第二校验码的计算方法一致;执行模块,用于在所述第二校验码和第一校验码的校验结果不一致时,对所述第二校验码和第一校验码的校验结果不一致的数据块进行处理。
本发明的有益效果在于:本发明在将磁盘中日志子系统的数据块恢复到文件系统的原始位置时,计算数据块的校验码而获得第二校验码;判断数据块的第二校验码和已保存于磁盘中日志子系统的提交块的空余空间的数据块的第一校验码的校验结果是否一致;若第二校验码和第一校验码的校验结果不一致,则对第二校验码和第一校验码的校验结果不一致的数据块进行处理。通过这种方式,可在较小影响系统性能的前提下检测出文件系统的日志子系统的错误以及错误的较准确位置,从而提升日志子系统的可靠性。
附图说明
图1为本发明文件系统的日志子系统的写入方法一实施方式的流程图;
图2为本发明文件系统的日志子系统的错误追踪方法一实施方式的流程图;
图3为本发明文件系统的日志子系统的错误追踪方法另一实施方式的流程图;
图4为本发明文件系统的日志子系统的错误追踪方法又一实施方式的流程图;
图5为本发明文件系统的日志子系统的错误追踪方法又一实施方式的流程图;
图6为本发明处理器一实施方式的结构示意图;
图7为本发明处理器另一实施方式的结构示意图。
具体实施方式
下面结合附图和实施方式对本发明进行详细的说明。需要注意的是,为了使本领域的技术人员更容易理解本发明的原理,以下对在本说明书中常用的几个名词进行解释,但是这些解释均是示例性的,并不是对本发明的限制。
在本发明实施例中,文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。因为本发明实施例使用独立的日志子系统跟踪磁盘内容的变化,带有日志子系统的文件系统比传统的文件系统安全。
在本发明实施例中,数据块是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位。文件系统和日志子系统在写数据时一般是以数据块(block)为最小单位,一个数据块一般从1KB到4KB不等。
在本发明实施例中,校验码是通过某种运算得出的用以检验目标数据是否正确的一组数据,此处的校验码包括但不限于错误检查和纠正校验码(ECC,Error CorrectionCode)、循环冗余校验码(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。
总之,本发明实施方式在将磁盘中日志子系统的数据块恢复到文件系统的原始位置时,计算数据块的校验码而获得第二校验码;判断数据块的第二校验码和已保存于磁盘中日志子系统的提交块的空余空间的数据块的第一校验码的校验结果是否一致;若第二校验码和第一校验码的校验结果不一致,则对第二校验码和第一校验码的校验结果不一致的数据块进行处理。由于校验码是需要存放在磁盘上的,而文件系统和日志子系统在磁盘上的存放格式早就固定了,如果划出一块新的空间来存放校验码,会引起老的系统无法兼容新的磁盘数据结构的问题。通过上述方式,本发明实施方式利用的提交块的空余空间来存放校验码,能够在不破坏已有的磁盘数据结构的基础上通过保存的校验码来追踪日志子系统的错误,从而提升日志子系统的可靠性并做到完全的向前兼容。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

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所述的处理器,其特征在于:所述日志子系统的一部分数据块的第一校验码和第二校验码是错误检查和纠正校验码,另一部分数据块的第一校验码和第二校验码是循环冗余校验码。
CN201310747007.5A 2013-12-30 2013-12-30 日志子系统写入方法、错误追踪方法及处理器 Active CN103778030B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310747007.5A CN103778030B (zh) 2013-12-30 2013-12-30 日志子系统写入方法、错误追踪方法及处理器
TW103102671A TWI610169B (zh) 2013-12-30 2014-01-24 檔案系統的日誌子系統寫入方法、錯誤追蹤方法及處理器
US14/584,729 US9727411B2 (en) 2013-12-30 2014-12-29 Method and processor for writing and error tracking in a log subsystem of a file system

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN103778030A CN103778030A (zh) 2014-05-07
CN103778030B true CN103778030B (zh) 2017-09-22

Family

ID=50570298

Family Applications (1)

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

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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430657A (zh) * 2008-11-17 2009-05-13 华中科技大学 一种连续数据保护方法
CN102419766A (zh) * 2011-11-01 2012-04-18 西安电子科技大学 基于hdfs分布式文件系统的数据冗余及文件操作方法

Family Cites Families (8)

* 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 富士通株式会社 データ処理装置及び記録媒体
JP2001101044A (ja) * 1999-09-29 2001-04-13 Toshiba Corp トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
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
US8464137B2 (en) * 2010-12-03 2013-06-11 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (NAND) flash memory
WO2013039534A1 (en) * 2011-09-12 2013-03-21 Microsoft Corporation Querying and repairing data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430657A (zh) * 2008-11-17 2009-05-13 华中科技大学 一种连续数据保护方法
CN102419766A (zh) * 2011-11-01 2012-04-18 西安电子科技大学 基于hdfs分布式文件系统的数据冗余及文件操作方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103778030B (zh) 日志子系统写入方法、错误追踪方法及处理器
US7873878B2 (en) Data integrity validation in storage systems
US7752489B2 (en) Data integrity validation in storage systems
US8751859B2 (en) Monitoring lost data in a storage system
CN102279776B (zh) 一种错误检查与纠正能力的测试方法及装置
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN107807792A (zh) 一种基于副本存储系统的数据处理方法及相关装置
WO2021135280A1 (zh) 一种分布式存储系统的数据校验方法及相关装置
US20140068208A1 (en) Separately stored redundancy
CN110413439B (zh) 用于检测数据的不完整写入的方法、设备和计算机可读介质
CN106802892B (zh) 用于主备数据一致性校验的方法和设备
CN108875061A (zh) 一种分布式文件系统的一致性测试方法及相关装置
CN103077095B (zh) 内存数据的纠错方法及装置及计算机系统
CN106681848B (zh) 一种纠删码raid的数据一致性保障方法及系统
CN104133740A (zh) 异常掉电数据恢复的方法
CN103218271B (zh) 一种数据纠错方法及装置
US11314594B2 (en) Method, device and computer program product for recovering data
CN109240917A (zh) 一种日志管理方法及相关装置
CN110795269A (zh) 一种数据恢复验证方法、装置及设备
CN104978241B (zh) 一种cow类型文件系统的数据恢复方法及装置
CN113312205B (zh) 数据校验方法、装置、存储介质和计算机设备
CN112000524A (zh) 系统数据在硬盘中的备份和读取方法、装置、设备及介质
CN106648969A (zh) 一种磁盘中损坏数据巡检方法及系统
CN109144766B (zh) 一种数据存储、重构方法和装置、及电子设备
CN104156276B (zh) 一种防两块磁盘损坏的raid方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Shanghai City, Xuhui District Rui Ping Road No. 275 building 20 floor C

Patentee after: MediaTek software (Shanghai) Co.,Ltd.

Patentee after: MSTAR SEMICONDUCTOR Inc.

Address before: 12 / F, 428 Yanggao South Road, Pudong New Area, Shanghai, 200120

Patentee before: SHANGHAI CHENSI ELECTRONIC TECHNOLOGY Co.,Ltd.

Patentee before: MSTAR SEMICONDUCTOR Inc.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20210223

Address after: Shanghai City, Xuhui District Rui Ping Road No. 275 building 20 floor C

Patentee after: MediaTek software (Shanghai) Co.,Ltd.

Patentee after: MEDIATEK Inc.

Address before: 200232 20th floor, building C, 275 Ruiping Road, Xuhui District, Shanghai

Patentee before: MediaTek software (Shanghai) Co.,Ltd.

Patentee before: MSTAR SEMICONDUCTOR Inc.

Effective date of registration: 20210223

Address after: No.1, Duhang 1st Road, Hsinchu City, Hsinchu Science Park, Taiwan, China

Patentee after: MEDIATEK Inc.

Address before: 200232 20th floor, building C, 275 Ruiping Road, Xuhui District, Shanghai

Patentee before: MediaTek software (Shanghai) Co.,Ltd.

Patentee before: MEDIATEK Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220517

Address after: Ontario, Canada

Patentee after: Xueshan Technology Co.,Ltd.

Address before: No.1, Duhang 1st Road, Hsinchu City, Hsinchu Science Park, Taiwan, China

Patentee before: MEDIATEK Inc.

TR01 Transfer of patent right