CN101815983A - 用于防止硬盘驱动文件系统的损坏的方法和系统 - Google Patents

用于防止硬盘驱动文件系统的损坏的方法和系统 Download PDF

Info

Publication number
CN101815983A
CN101815983A CN200880103823A CN200880103823A CN101815983A CN 101815983 A CN101815983 A CN 101815983A CN 200880103823 A CN200880103823 A CN 200880103823A CN 200880103823 A CN200880103823 A CN 200880103823A CN 101815983 A CN101815983 A CN 101815983A
Authority
CN
China
Prior art keywords
data
write
storage medium
critical
critical data
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.)
Pending
Application number
CN200880103823A
Other languages
English (en)
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN101815983A publication Critical patent/CN101815983A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本原理提供了一种用于通过集成日志记录文件系统和高速缓存系统来防止存储设备上的数据损坏的方法和设备。为了确保关于最有可能影响文件系统完整性的数据的日志准确性,依据本原理的一个方面的方法包括:当将这种数据写入(412)到存储设备的主盘时绕过高速缓存。此外,为了确保读写数据的整体效率,依据本原理的一个方面的方法包括:除了向盘片(428)还向高速缓存写(420)数据,该数据对文件系统的完整性具有相对小的破坏影响。因此,本原理的方面最优地将高速缓存系统和日志记录文件系统相集成,以提供一种鲁棒的文件系统完整性和有效的读写机制。

Description

用于防止硬盘驱动文件系统的损坏的方法和系统
技术领域
本原理总体上涉及存储设备上的数据写入,更具体地,涉及用于防止存储设备文件系统的损坏的方法和系统。
背景技术
与数据存储相关联的一个普遍问题是存储介质上的部分文件系统的损坏。数据损坏通常是存储设备上数据写操作的中断的结果,这可能由于例如掉电而发生。避免数据损坏的一个方法包括使用日志记录(journaling)文件系统,其中可以在变化执行(instituting)之前将例如硬盘驱动器的存储介质的变化记录在日志中。因此,在掉电时,日志中记录的变化可以被“重放”或执行,来使实际的数据结构与日志记录的变化一致。如果日志记录的动作由于掉电而不完整而且它们的执行会损坏存储介质上的数据结构,则不会简单的重放这些动作。因此,日志记录的文件系统可以通过校正在掉电期间发生的不完整的写操作来防止在存储介质上的数据损坏。
另一个与数据存储和读操作相关的关注点包括效率。例如,通常希望当写入数据到存储设备时以及从存储设备读取数据时利用尽可能少的资源量。为了解决这些关注点,典型地使用包括存储介质的相对较少部分的高速缓存系统。由于高速缓存的大小,从高速缓存读取数据通常比从存储介质的主盘(main platter)读取数据快得多。在许多高速缓存系统中,在向存储介质的主盘写入数据之前向高速缓存写入数据。此外,向盘片写入数据可能按照与实现写操作的原始命令的顺序不同的顺序来发生。高速缓存系统通常按照在写操作期间最小化存储介质的扫描的方式来向盘片写入数据。高速缓存系统中在盘片上写入的顺序倾向于更依赖于存储介质上写入的位置而不是发出写命令的顺序。
因此,由于高速缓存系统的本质,日志记录文件系统通常需要禁用高速缓存系统。为了避免数据结构的损坏并在掉电后正确的恢复数据结构,日志记录文件系统依赖于按照与原始写操作命令一致的顺序向存储介质的盘片写入数据。因而,需要这样的文件系统,其合并了日志记录方面以避免数据损坏和高速缓存特征以提供有效的数据读写。
发明内容
本原理提供了一种用于集成日志记录文件系统和高速缓存系统的方法和系统。根据本原理的一个方面,日志记录文件系统同时使用日志记录方面和高速缓存特征。日志记录文件系统可以依赖于写入的数据的类型来动态地确定是否需要使用高速缓存。例如,文件系统可以区分“关键”写入和“非关键”写入。和与非关键写入相关的数据损坏相比较,与关键写入相关的数据损坏倾向于对文件系统损坏更严重。本原理的一个方面包括通过针对关键写入绕过高速缓存以使确保文件系统的完整性,来优化日志记录文件系统以使其包括高速缓存特征。按照这种方式,本发明的各方面可以同时提供日志特征和高速缓存特征的益处,同时最小化通常伴随这二者的相互作用出现的任何负面影响。
本原理的一个实施方式包括一种使用日志记录文件系统和高速缓存系统向存储设备写数据以防止存储设备上文件系统的损坏的方法,包括:在日志记录中记录数据写;确定数据是否是关键数据;当确定数据是关键数据时,产生向存储设备的盘片写入关键数据的命令;将关键数据写入到存储设备的盘片中,其中,向盘片写入关键数据绕过向高速缓存的写操作,以确保日志记录中记录的存储设备关于关键数据的状态是准确的。
本原理的另一个实施方式包括一种用于向存储设备写入数据来防止存储设备上文件系统的损坏的系统,包括:存储设备的主盘;高速缓存;日志记录,包括存储设备的变化日志;被配置成产生向日志记录和主盘写数据的命令的文件系统,包括在确定该数据是关键数据时产生的关键数据写命令;以及存储设备控制模块,被配置成根据关键数据写命令将关键数据写入存储设备的盘片,其中,向盘片写入关键数据绕过向高速缓存的写操作,以确保日志记录中记录的存储设备关于关键数据的状态是准确的。
在附图和以下描述中提出了一个或多个实现方式的细节。即使以一种特定的方式进行描述,但是应当清楚的是,可以以各种方式来配置或具体体现那些实现方式。例如,实现方式可以作为方法来执行,或者可以具体体现为,被配置为执行一组操作的设备或存储用于执行一组操作的指令的设备。根据结合附图和权利要求考虑的以下详细描述,其他方面和特征将变得显而易见。
有利地,本发明用于视频记录环境,例如在PVR中,其要求准确和及时地记录压缩的数字视频内容。
附图说明
通过结合附图和以下详细描述,本原理的教导能够被容易地理解,图中:
图1是依据本原理的方面的个人视频记录器的示例性实现的框图。
图2是依据本原理的方面的一种用于向存储设备写入数据以防止文件系统损坏的系统的示例性实现的框图。
图3是依据本原理的方面在防止存储设备上数据损坏中使用的文件系统处理的示例性实现的流程图。
图4是依据本原理的方面在数据写入方法使用的示例性存储设备命令处理例程的流程图。
图5是依据本原理的方面一种使用日志记录文件系统来修复损坏的扇区的方法的示例性实现的流程图。
应当理解,附图用于阐述本原理的概念,而不是必要地阐述本原理的唯一可能配置。为了便于理解,在可能的地方同样的参考数字用于指示对于附图共有的同样的组件。
具体实施方式
本原理提供了一种用于向存储介质写入数据的系统和方法。如上所述,与存储介质上的数据写相关联的一个普遍问题是数据结构的损坏。一种严重的数据损坏形式包括写拼接(splice),其发生在向存储介质上扇区的数据写操作中断时。该中断可能源于供电故障、处理器冻结或阻碍写操作完成的其它事件。写拼接的特征在于扇区,其中,新数据被写在扇区的开始处,旧数据和旧校验和(扇区中所有比特的总和,用于验证扇区内是否有错误)保留在扇区的末尾。写拼接错误可能会被检测到或没有被检测到,即使被检测到,也需要重新格式化存储介质以校正写拼接,这会导致所有记录数据的丢失。在硬盘驱动系统中,写拼接错误会引起安装失败或文件系统卷暂停,这在多数时候甚至不会返回错误码。因而,由于写拼接错误通常会导致所有记录的数据的丢失,已经开发了许多方法来避免这种情况。
解决写拼接的方法包括同步写方法、改变写的顺序、和不同形式的日志记录。如上所述,日志记录可以包括在出现这些变化之前记录存储介质盘片的变化。变化的日志可以被包括在与数据被写入的存储介质相同或完全不同的存储介质上。在多种日志记录文件系统中,日志记录被存储在与最终数据被写入的存储介质的相同的存储介质上的环形缓冲区。在由供电故障、处理器冻结或类似导致写操作中断时,可以参考变化的日志记录来执行系统恢复。例如,可以重放日志记录来完成被中断的向盘片的写操作,从而校正写拼接。此外,如果向日志记录自身的写操作被中断且未完成,则不重放日志记录的变化,且主盘的数据结构的完整性同样是完整的。
为了在写操作中断之后启用文件系统恢复,变化的日志记录应当准确的反映存储介质上文件系统的状态。具体地,日志记录应当准确的包括在主盘上写操作执行的顺序和/或写操作已经发生的时间。因为恢复涉及到重放在日志记录中记录的变化,日志记录文件系统依赖于所记录的存储设备的状态是准确的;在重放变化之前,日志记录文件系统假设还没有基于日志记录执行特定写操作或已经执行。因此,如果如记录在日志记录上已经执行的写操作的顺序和/或时间不准确,则日志记录的变化的重放可能导致数据损坏,遭遇与写拼接错误相关联的类似问题。
因此,如上所述,许多日志记录文件系统需要禁用高速缓存系统。如上所述的高速缓存系统通常按照与写命令的顺序不一致的方式重新排序写操作,以避免在执行写操作时在存储介质上的区域之间横跨较大距离。因此,通常根据被写入数据的扇区的位置来重新排序写操作,以便支架(mounts)或其他写装置以高效方式横跨存储介质。此外,在当前的硬盘固件中,即使数据还没有被写到硬盘盘片,当向硬盘高速缓存写数据时,仍返回写操作的完成状态。由于日志记录文件系统对于准确日志的依赖性,高速缓存系统的这些特征会破坏日志记录文件系统从写操作中断中恢复的能力。
本原理的方面包括一种集成了高速缓存的日志记录文件系统,以在被日志记录特征允许的系统恢复能力之外,还提供有效的读写。虽然本原理的实现在这里被描述为关于个人视频记录器(PVR),但是应当理解,本原理的方面不限于PVR应用。
现在详细地参考附图,其中,贯穿多个图,类似的参考数字标识相似或相同的组件,首先参考图1,示出了本原理的方面的PVR 100的演示示例。PVR 100可以包括处理器116和存储介质124。存储介质124可以是但不局限于硬盘驱动器,且可以用于依据写数据命令存储日志记录数据和要被写入的数据。然而,如上所述,在其他实施方式中,日志记录的数据可以被存储在与依据写命令将要被写入数据的存储介质完全分离的存储机制中。中央处理单元116可以包括,例如BCM 7038C2芯片,从可以商业地获取,其是双通道HD视频/音频/图形;以及个人视频记录芯片,其包含300MHz 64比特CPU。BCM 7038C2是被个人视频记录器使用的通用处理器。
在本原理的一个实施方式中,可以将通过卫星技术电路接收到的MPEG-4压缩格式的音频/视频数据分组可以通过流112发送到CPU 116。例如,调谐器104可以调谐到合适的频率并接收数据分组。此外,解调器108可以同步地解调来自调谐器的输出信号,并通过流112向CPU 116提供音频/视频数据分组。其后,音频/视频数据可以通过使用解码器120被解压缩,解码器120可以包括BCM 7411 CO解码器,其同样可以从
Figure GPA00001158372100061
商业地获取。BCM 7411CO解码器与MPEG-4视频流兼容。然而,应当理解,音频/视频数据可以是任何已知的格式,例如,MPEG-2,并且可以通过其它方法被接收,例如,通过有线电视传输。当在音频/视频数据流里接收到音频/视频数据时,CPU 116可以被配置成通过适当的软件和硬件来实现如下所述的方法步骤。
某些PVR的方面与例如个人计算机的某些标准计算设备不同,其包括用于读取和写入音频/视频数据的固定时间限制。如果这样的PVR系统或在固定的时间限制下操作的其它任何系统没有在固定的时间间隔内完成事务,则PVR移动到呈现的下一个部分,与未完成的事务相关联的信息可能会丢失或被丢弃。这个限制是由期望及时显示尽可能多的呈现所导致的。因此,当音频或视频数据到达得太晚时,会将其丢弃以防止PVR记录播放系统停顿。因而,在操作在固定时间限制下的系统(例如PVR)中期望由高速缓存提供的快速数据读取,以此来防止信息的丢失。
某些PVR的另一个方面与某些标准计算设备的不同在于,PVR通常不执行适当的操作系统关闭序列,这是因为通常在用户将电插头移除出插座或在电源中断时会关闭PVR。在标准计算设备中,通常向硬盘驱动器提供关闭命令,以允许有足够的时间将数据从高速缓存转存(flush)到盘片上,并允许读/写头停放在一个安全的区域,这些都防止了数据损坏和数据丢失。不同的PVR设计已经通过执行早期电源故障(EPF)例程来解决突发的电源丢失问题。EPF例程在电源供电丢失后使用在PVR系统中剩余的电流,其可以继续运转PVR达大约10-40ms。使用剩余的电流,一些EPF例程尝试转存高速缓存并执行受控的读写头停放。通常,这些EPF例程经常未能在剩余电流耗散之前完成高速缓存转存。因此,这些EPF例程典型地指示PVR驱动器在当电能耗散时向主盘上写数据,从而导致写拼接错误、数据丢失和失控的读写头停放。
依据本原理的一个方面,特定关闭命令序列被包含到EPF例程中,其完成当前扇区写操作(如果系统正在写),丢弃高速缓存中任何多余的数据,然后执行受控的读写头停放。与写拼接错误相比,宁肯数据丢失。如上所述,写拼接错误经常要求磁盘重新格式化和丢失所有记录的数据。此外,与一些标准的计算设备例如个人计算机相比,PVR对用户数据丢失具有更高的容忍度。PVR用户数据通常包括音频/视频呈现数据和通常对整体呈现影响最小的数个帧的丢失。
尽管EPF例程可能减少写拼接错误,但是使用EPF例程不会完全防止文件系统损坏。根据本原理的另一个方面,一种集成了高速缓存系统的日志记录文件系统可以用于防止数据损坏和提供读取和写入效率。如上所述,日志记录文件系统典型地与高速缓存系统不兼容。依据本原理的一个方面的日志记录文件系统通过区分关键数据和非关键数据来克服这种不兼容性,这将会在下面更详细的描述。关键数据的特征是一种如果被损坏则直接影响文件系统完整性的数据,且具有禁用文件系统的操作的潜在性。此外,用户和/或系统参数可以访问和修改关键数据,并据此调整关键数据。非关键数据可以包括其损坏对系统完整性相对无害的数据。依据本原理的一个方面,当向主盘写入关键数据时,高速缓存被绕过。这方面确保了系统的日志记录的状态关于关键数据是准确的,这是由于向盘片写入关键数据的顺序与日志记录的向盘片的多个写操作的顺序一致。因此,在写操作中断时重放日志记录时,文件系统可以通过参考如上所述的准确的日志记录来执行适当的恢复,从而防止关于关键数据的数据损坏。
关于写入非关键数据,根据本原理的另一个方面,高速缓存被用于提供读取和写入效率。如下更多详细描述,由于非关键数据损坏的相对无害的影响,由于高速缓存的使用导致的任何潜在损坏的有害影响都是最小的。此外,如下详细的描述,非关键数据的写入包括向主盘的所有写入中的绝大多数。因此,当写入关键数据时绕过高速缓存对系统的写效率总体上具有相对不重要的影响。因而,本原理的各方面最优地将高速缓存系统和日志记录文件系统相集成以提供鲁棒的文件系统完整性和有效的读写机制。
参考图2,示出了依据本发明的方面的示例性系统200。系统200包括日志记录文件系统202,其包括文件系统控制模块204和命令产生器208。文件系统控制模块204可以接收和控制存储在存储介质上的文件系统202内的数据的组织。此外,文件系统控制模块204使用命令产生器208来产生命令,以便向日志记录216、高速缓存220和主盘224中的任意一个写入数据。日志记录216、高速缓存220和主盘224可以被包括在相同的存储设备或不同的存储设备上。系统200还包括存储设备控制模块212,其处理和执行在存储设备上的数据写命令。以下参考本原理的方法实施方式来更详细的描述这里引入的图2的系统组件。
应当理解,可以通过使用专用硬件和能够与适合的软件一同执行软件的硬件而提供图中所示各个元件的功能。当由处理器来提供时,这些功能可以由单个的专用处理器、单个的共享处理器、或多个单独的处理器来提供,其中一些可以是共享的。此外,术语“处理器”或“控制器”的显式使用不应被解释为排他性地指代能够执行元件的硬件,而是可以隐式地包括(不限为)数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)以及非易失性存储器。此外,这里对本发明的原理、方面、实施例及其特定示例做出引述的所有声明意在包括本发明的结构和功能上的等同物。另外,该等同物将包括当前已知的等同物以及将来开发出的等同物(即所开发出来的执行相同功能的任何组件,而与结构无关)。
因此,本领域的技术人员可以理解,例如这里所表示的框图展示出体现本发明原理的示意性系统组件和/或电路的概念图。类似地,可以理解,任何流程、流程图、状态转移图、伪代码等表现出实质上可以在计算机可读介质上表现的、并且由计算机或处理器执行的各个过程,无论是否明确示出该计算机或处理器。
现在参考图3,并继续参考图2,示出了依据本原理的方面的一种数据写入方法中使用的示例性日志记录文件系统处理实现方式。在步骤304,日志记录文件系统处理方法300通过接收数据开始。文件系统202接收数据,例如作为MPEG-4格式的分组,如图1中关于PVR系统所述。随后,在步骤308,可以在文件系统202中处理数据,其中,文件系统控制模块204可以确定数据要被写入到存储设备224的主盘,存储设备224可以包括例如硬盘驱动器。其后,在步骤312中,文件系统控制模块204产生该数据的元数据。
方法300也可以包括日志记录在日志记录或日志216中存储设备的盘片的变化。例如,文件系统控制模块204可以使用命令产生器208产生命令,来日志记录存储设备的变化。变化可以包括写数据到主盘224,且与主盘写入关联的写数据命令可以被记录在日志记录中记录或日志216中,步骤316。存储设备控制模块212可以通过依据从文件系统202接收的命令向日志记录写入来在日志记录中记录盘片写命令。此外,如上所述,日志记录或日志216可以被存储在存储设备的环形缓冲区中,或被存储在完全不同的存储介质中。此外,在特定实施方式中,日志记录216可以包括将要被写入的实际数据。
依据本原理的方面,当在日志记录中记录写数据命令时,文件系统控制模块212确定写数据命令对应于写关键数据还是非关键数据,步骤320。非关键数据可以包括用户文件,例如音频-视频数据、文本和其他应用信息。如上所述,音频视频数据和其他用户数据的丢失经常在PVR系统中具有最小的有害影响。关键数据可以包括元数据,其可以包括隐藏或非隐藏信息,文件系统自己使用这些信息用于寻找用户数据文件和用于内部维护,也就是说,关键数据是针对文件系统各方面或维护而不是音频视频数据的数据。
如果确定了写数据命令对应于关键数据,则依据本原理的方面,命令产生器208产生关键数据写命令,步骤324。同样地,如果确定了写数据命令对应于非关键数据,则依据本原理的方面,命令产生器208产生非关键数据写命令,步骤328。在如下关于存储设备命令处理的实施例描述中更详细的描述关键数据写命令和非关键数据写命令。
现在参考图4,并继续参考图2,示出了依据本原理方面的数据写操作方法使用的示例性的存储设备命令处理例程400。存储设备命令处理例程通过存储设备控制模块212从命令产生器208接收命令开始,步骤404。然后,存储设备控制模块212在步骤408确定该命令是写关键数据的命令还是写非关键数据的命令。在确定写数据命令是写关键数据的命令时,存储设备控制模块212在步骤412直接向盘片224写入关键数据,绕过向高速缓存220的写入。如上所述,绕过高速缓存220确保日志记录记录的存储设备关于关键数据的状态是准确的。例如,直接向盘片写入关键数据可以确保向盘片的多个写入的写顺序与日志记录记录的向盘片的多个写操作的写顺序一致。
向盘片224写入关键数据后,存储设备控制模块212在步骤416向日志记录文件系统202提供了写完成指示。写完成指示确保了日志记录文件系统202准确地反映向盘片写入关键数据的时间。准确的日志记录能够使文件系统202从数据写操作中断中正确的恢复,如上所述。此外,绕过高速缓存220包括为用户数据提供更多高速缓存空间的附加益处,其随后使得能够更有效地读取数据,如上所述。此外,根据本原理的另一个方面,系统200也可以可选地在将关键数据写入到盘片224后,将关键数据写到高速缓存,以允许有效地读取数据。例如,文件系统控制模块204可以使用命令产生器208发出命令,以便在关键数据被写到盘片224后,将关键数据写到高速缓存220。存储设备控制模块212在将关键数据写到主盘224之后,将关键数据写到高速缓存220。
在确定了写数据命令是写非关键数据的命令时,存储设备控制模块212在步骤420将非关键数据写到高速缓存220。随后,确定盘片224已经为对应于高速缓存的数据的写操作准备好之后,步骤424,存储设备控制模块212将非关键数据写到存储设备的主盘224,步骤428。如上所述,当使用高速缓存时,到盘片的数据的写顺序经常与原始写命令的顺序不同以提供写效率。此外,由于高速缓存的小尺寸,从高速缓存中相对快的读取数据,如上所述。在步骤416中写数据到盘片224后,存储设备控制模块204在步骤332向日志记录文件系统202提供写完成指示。在文件系统接收新的或不同的数据时,尽可能的重复方法300和400。
如上所述,日志记录文件系统可以用于防止存储设备上的数据损坏。日志记录文件系统的一方面包括重放日志记录的命令来修复由写操作中断损害导致的损坏扇区。参考图5,并继续参考图2,示出了依据本原理的一个方面通过使用日志记录文件系统202来修复至少一个损坏的扇区的方法500。在电源故障之后,该方法通过启动处理器和在其上写入数据的存储介质开始,步骤504。然而,也可以在例如在处理器冻结或任何其他写中断的原因之后恢复正常处理时开始该方法。在正常处理中断和重新开始之后,步骤508,文件系统控制模块204访问命令的日志记录216,步骤508。之后,文件系统控制模块204确定是否要重放在日志记录216中记录的命令,步骤512。如上所述,重放日志记录的命令,以完成被中断的向盘片的写操作。文件系统在确定向盘片的写操作被中断后,在步骤516中执行日志记录记录的命令。例如,在确定向盘片的写操作已经中断时,文件系统控制模块204可以使用命令生成器208来产生与在日志记录216中记录的命令一致的命令。此外,存储设备控制模块212通过写数据到主盘224或做出其他任何与日志记录216一致的变化来实现命令。相对于向盘片的写操作,如果文件系统控制模块204确定向日志记录的写操作已经被中断,则在步骤520丢弃日志记录中记录的命令。如上所述,以这样的方式使用日志记录文件系统确保了主盘的数据结构的完整性。应当理解的是,尽管参考系统200来描述方法300、400和500,该方法可以依据本原理的其它方面的其它手段来实现。
依据本原理的方面,日志记录文件系统和高速缓存系统的集成提供了一种鲁棒的文件系统完整性和有效的读写机制。如上所述,在日志记录文件系统中对关键数据的写入绕过高速缓存防止了该数据的损坏。与和非关键写入相关联的数据损坏相比,例如元数据的关键数据的损坏倾向于对文件系统相对更具有破坏性。如上所述,元数据包括文件系统用于寻找用户数据和执行内部维护的信息;其损坏相比较用户数据的损坏具有更大的有害影响。处理器确定数据是关键数据还是非关键数据,这样的确定可以基于特定系统(例如,视频记录系统)的应用进行编程。用户数据的损坏通常局限于被损坏的用户数据部分,而元数据的损坏还会负面影响除了被损坏元数据以外的其他数据部分。因此,尽管可能源于高速缓存的使用发生用户数据的损坏,但是其有害的影响是最小的。因而,依据于本原理方面的日志记录文件系统针对即使使用高速缓存的文件系统损坏提供了鲁棒的保护。
此外,本原理的益处在PVR系统中尤其显著。在PVR系统中,例如编码、加密的音频/视频信息的非关键数据的损坏,相比较关键数据的损坏而言,倾向于有害性非常低。存储介质中包括音频/视频信息被破坏的扇区可能仅仅在呈现中表现为一个小干扰,而损坏的元数据倾向于具有更大的可能性来禁用文件系统本身。
除了针对文件系统损坏而提供实质的保护之外,由于对非关键数据的高速缓存的使用,本原理的方面也提供了有效地读写能力。例如元数据的关键数据典型地包括大致所有数据写操作中的少于10%,而例如用户数据的非关键数据典型地包括大致所有数据写操作中的多于90%。因此,因为它们包括了写操作的相对小的容量,关键数据写操作绕过高速缓存在高速缓存提供的读写效率上具有微乎其微的影响。因而,本原理的方面最优的集成了高速缓存系统和日志记录文件系统来提供一种鲁棒的文件系统完整性和有效的读写机制。
例如,可以被使用于实现如上所述的本原理方面的日志记录文件系统可以包括XFS和EXT3FS。关于PVR应用的文件系统(例如XFS)的有益的特点包括其提供多个视听数据流的有效写入的能力。文件系统(例如XFS)具有“实时的”分割特征,其中,在相对大的部分中分配存储空间,以提供接近100%的存储设备吞吐量,而不需要增加应用复杂度。相反,当写入桌面和分时文件系统时,通常桌面和分时文件系统分配文件的小部分存储空间,导致具有相对较低的吞吐量的次优化交织流。
此外,可以用于实现本原理方面的程序接口规范包括ATA7。ATA7包括自我监测、分析和报告技术(SMART)特征、强迫单元访问(FUA)特征、和时间限制命令,其中的每一个都尤其适合PVR。例如,SMART特征可以被文件系统用于确定存储设备的操作条件和存储设备的温度监测。此外,SMART特征可以用于预测在硬盘驱动存储设备中不久将来的盘驱动故障。
FUA命令确保了在即使启用高速缓存的情况下,也可以在命令完成之前将单元数据转移到设备介质或从设备介质转移。因此,FUA命令实现了绕过或近似绕过高速缓存的写请求。依据于本原理方面的日志记录文件系统可以使用FUA命令来增加成功写关键数据的可能性,而不会影响较少的关键数据写入。例如,FUA命令可以用于依据本原理方面实现例如文件系统元数据的关键数据直接向盘片的写入,同时针对较少的关键数据继续传统的用户写命令。
此外,在ATA7中包括的时间限制命令集可以被用于执行PVR系统的固定的时间限制。如上所述,PVR系统在固定的时间限制之下进行操作,在该时间限制中,如果PVR在固定的时间间隔内没有完成事务,信息会丢失或被丢弃。在例如个人计算机的一些标准计算设备中包括的存储介质在遭遇输入/输出或盘表面错误时,实施许多费时的数据读和写的重复尝试。在PVR设备中使用这种系统具有严重破坏多媒体流的可能性,而多媒体流中,错误可能仅仅出现在单个的扇区。ATA7的时间限制命令可以强制固定的时间限制以便在时间限制之内放弃这种重试。如上所述,PVR系统尝试及时地显示尽可能多的呈现。从而,可以忽略在包括错误的扇区或扇区小组中省略数据的有害影响,而且多数时候在显示音频视频呈现时实际上是觉察不到的。
描述的实现方式的特征和方面可以应用于各种应用。如上所述,应用例如包括标准计算设备、个人数字助理、MP3播放器、视频文件播放器和其他设备上数据损坏的避免。然而,这里所描述的特征和方面可以适用于其他应用领域,并相应地,其他应用是可能的并可以想到的。此外,根据本原理的方面的设备可以通过光纤光缆、通用串行总线(USB)电缆、小型计算机系统接口(SCSI)电缆、电话线路、数字订户线/环线(DSL)线路、卫星连接、视线连接、以及蜂窝连接(并使用关联的协议)来发送和接收数据。
例如,这里所描述的实现方式可以以方法或过程、设备或软件例程来实现。即使仅在单一形式的实现方式的上下文中进行讨论(例如,仅作为方法进行讨论),所讨论的特征的实现方式也可以以其他形式(例如,设备或例程)实现。例如设备可以在适当的硬件、软件和固件中实现。例如,方法可以在诸如处理器的设备中实现,该处理器通常指代例如包括计算机、微处理器、集成电路或可编程逻辑器件在内的处理设备。处理设备还可以包括通信设备,例如,计算机、蜂窝电话、便携式/个人数字助理(“PDA”)、以及便于终端用户之间信息通信的其他设备。
这里描述的各个处理和特征的实现方式可以在各种不同的设备或应用中体现,具体地,例如,与数据传送和接收相关联的设备和应用。设备的示例包括视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型计算机、个人计算机、以及其他通信设备。本领域技术人员都清楚,设备可以是移动的,并甚至可以安装在移动设备中。
此外,可以通过由处理器执行的指令来实现上述方法,并且可以将这样的指令存储在处理器可读介质中,例如,集成电路、软件载体或其他存储设备(例如,硬盘、光盘、随机存取存储器(“RAM”)或只读存储器(“ROM”))。指令可以形成具体体现在处理器可读介质商的应用例程。本领域技术人员都清楚,处理可以包括具有例如用于执行处理的指令的处理器可读介质。
对本领域技术人员是显而易见的,实施方式还可以产生格式化的信号,以承载例如被存储或传送的信息。该信息可以包括:例如,用于执行方法的指令、由描述的实现方式之一产生的数据。例如,这样的信号可以被格式化为电磁波(例如,使用频谱的射频部分)或基带信号。格式化包括:例如,对数据流进行编码、对已编码的流进行封装、以及利用封装的流对载波进行调制。信号承载的信号例如可以是模拟或数字信息。如已知,可以通过各种不同的有线或无线链路来传送信号。
已描述了许多实施方式。然而,将理解的是,可以进行各种修改。例如,可以对不同实施方式的元件进行组合、补充、修改或移除,以产生其他实施方式。此外,本领域技术人员将理解,其他结构和处理可以代替所公开的那些结构和处理,并且产生的实施方式将以至少实质上相同的方式执行至少实质上相同的功能,以实现至少实质上与所公开的实施方式相同的结果。相应地,这些和其他实施方式在所附权利要求的范围内。

Claims (20)

1.一种利用日志记录系统和高速缓存系统向存储设备写数据的方法,包括:
接收向存储介质上写数据的命令;
响应于该命令在日志记录中记录数据写;
确定所述数据是否是关键数据;和
在确定所述数据是关键数据的情况下,当向存储介质写数据时绕过向高速缓存的写入操作,从而确保日志记录中记录的存储设备关于关键数据的状态是准确的。
2.如权利要求1所述的方法,还包括步骤:
在确定所述数据是非关键数据的情况下,将所述数据写入高速缓存,并将所述数据写入存储介质。
3.如权利要求1所述的方法,还包括步骤:
当向盘片写入关键数据时在日志记录中记录写完成指示,以确保在日志记录中记录的文件系统反映了关键数据被写入存储介质的时间。
4.如权利要求1所述的方法,其中,关键数据对应于针对文件系统的管理的数据,非关键数据对应于压缩的音频/视频数据。
5.如权利要求4所述的方法,其中,关键数据包括元数据。
6.如权利要求4所述的方法,其中,在个人视频记录器中执行所述方法的步骤。
7.如权利要求1所述的方法,还包括步骤:
在完成向存储介质中写入关键数据后,将关键数据写入高速缓存。
8.如权利要求1所述的方法,还包括步骤:
在写操作中断后,执行在日志记录中记录的命令来修复存储设备上至少一个损坏的扇区。
9.一种向存储设备写数据的系统,包括:
高速缓存,包括要被写入到存储介质的数据;
日志记录,包括变化日志;和
存储设备控制处理器,被配置成接收用于在存储介质上写数据的命令,确定所述数据是否是关键数据,如果所述数据是关键数据,通过当将关键数据写入存储介质时绕过高速缓存,来控制向存储介质的写数据的操作,从而确保日志记录中记录的存储设备关于关键数据的状态是准确的。
10.如权利要求9所述的系统,其中,存储设备控制处理器还被配置成将非关键数据写入到高速缓存和将非关键数据写入到存储介质。
11.如权利要求9所述的系统,其中,存储设备控制处理器还被配置成当将关键数据写入存储介质时在日志记录中记录写完成指示,以确保日志记录的文件系统准确地反映了关键数据被写入存储介质的时间。
12.如权利要求9所述的系统,其中,关键数据对应于针对文件系统的管理的数据,非关键数据对应于压缩的音频/视频数据。
13.如权利要求9所述的系统,其中,关键数据包括元数据。
14.如权利要求9所述的系统,其中,所述系统被包括在个人视频记录器(100)中。
15.如权利要求9所述的系统,其中,存储设备控制处理器还被配置成在完成向存储介质中写入关键数据后,将关键数据写入高速缓存。
16.如权利要求9所述的系统,其中,存储设备控制处理器还被配置成在依据文件系统命令的写操作中断后,执行日志记录中记录的命令来修复在存储介质上至少一个损坏的扇区。
17.一种数字视频记录设备,包括:
存储介质;
用于提供节目信号的数字视频信号源;
用于处理节目信号以提供压缩的信号的装置;
用于将压缩的音频/视频信号存储在存储介质上的装置;
用于存储要被写入存储介质的数据的高速缓存;
用于存储变化日志的日志记录;
处理器,被配置成接收在存储介质上写数据的命令,确定所述数据是否是关键数据,如果所述数据是关键数据,通过当关键数据被写入存储介质时绕过高速缓存,来控制向存储介质的写数据的操作,从而确保日志记录中记录的存储设备关于关键数据的状态是准确的,关键数据对应于针对文件系统的管理的数据,非关键数据对应于音频/视频数据。
18.如权利要求17所述的设备,其中,高速缓存和日志记录被存储在存储介质上。
19.如权利要求17所述的设备,其中,处理器被配置成在完成在存储介质上写入关键数据后,将关键数据写入高速缓存。
20.如权利要求17所述的设备,其中,关键数据包括元数据。
CN200880103823A 2007-08-21 2008-02-19 用于防止硬盘驱动文件系统的损坏的方法和系统 Pending CN101815983A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US96560407P 2007-08-21 2007-08-21
US60/965,604 2007-08-21
PCT/US2008/002168 WO2009025684A1 (en) 2007-08-21 2008-02-19 Method and system for preventing corruption of hard disk drive file system

Publications (1)

Publication Number Publication Date
CN101815983A true CN101815983A (zh) 2010-08-25

Family

ID=39540389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880103823A Pending CN101815983A (zh) 2007-08-21 2008-02-19 用于防止硬盘驱动文件系统的损坏的方法和系统

Country Status (7)

Country Link
US (1) US20100153347A1 (zh)
EP (1) EP2191359A1 (zh)
JP (1) JP2010537309A (zh)
KR (1) KR20100057655A (zh)
CN (1) CN101815983A (zh)
BR (1) BRPI0815679A2 (zh)
WO (1) WO2009025684A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2130122A2 (en) * 2007-03-23 2009-12-09 Thomson Licensing System and method for preventing errors in a storage medium
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
AU2012336009A1 (en) * 2011-11-07 2014-05-22 Deb Ip Limited Method for determining hand hygiene compliance
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US9069682B1 (en) * 2012-06-29 2015-06-30 Emc Corporation Accelerating file system recovery by storing file system metadata on fast persistent storage during file system recovery
JP7292872B2 (ja) * 2018-12-25 2023-06-19 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
US11360699B1 (en) 2019-08-30 2022-06-14 Veritas Technologies Llc Method and system for improved write performance in erasure-coded storage systems
US11379153B2 (en) * 2020-07-23 2022-07-05 Micron Technology, Inc. Storage traffic pattern detection in memory devices
US11385806B1 (en) * 2020-12-20 2022-07-12 Veritas Technologies Llc Methods and systems for efficient erasure-coded storage systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779189A (en) * 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US5253275A (en) * 1991-01-07 1993-10-12 H. Lee Browne Audio and video transmission and receiving system
JP3062050B2 (ja) * 1995-07-21 2000-07-10 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク駆動制御方法及び装置
JP4095152B2 (ja) * 1998-03-09 2008-06-04 キヤノン株式会社 画像管理装置およびその方法、画像管理システム、記憶媒体
US6678787B2 (en) * 2000-12-21 2004-01-13 International Business Machines Corporation DASD-free non-volatile updates
JP2002222118A (ja) * 2001-01-26 2002-08-09 Mitsubishi Electric Corp ディスクキャッシュシステム
US6947956B2 (en) * 2002-06-06 2005-09-20 International Business Machines Corporation Method and apparatus for selective caching of transactions in a computer system
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2005309550A (ja) * 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
EP2186092A1 (en) * 2007-08-22 2010-05-19 Thomson Licensing Hard disk sector/track remapping for transparent wear leveling
US7873619B1 (en) * 2008-03-31 2011-01-18 Emc Corporation Managing metadata

Also Published As

Publication number Publication date
WO2009025684A1 (en) 2009-02-26
JP2010537309A (ja) 2010-12-02
US20100153347A1 (en) 2010-06-17
KR20100057655A (ko) 2010-05-31
BRPI0815679A2 (pt) 2015-02-18
EP2191359A1 (en) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101815983A (zh) 用于防止硬盘驱动文件系统的损坏的方法和系统
JP5503539B2 (ja) 損傷したハードディスクのファイルシステムを修復する方法およびシステム
US9501492B2 (en) Combination journaling/non-journaling file system
US7519764B2 (en) Apparatus and method for detecting data validity in flash memory
CN104811645A (zh) 一种嵌入式录像数据存储方法
CN101785063B (zh) 用于透明的使损耗均匀化的硬盘扇区/轨道重新映射
CN103929609A (zh) 一种录像回放方法和装置
CN101354636A (zh) 一种向磁盘阵列中写入数据的方法及系统
CN101216794A (zh) 改进的Server-Less备份方法、存储设备及备份服务器
US20100107016A1 (en) System and method for preventing errors ina storage medium
CN103092719B (zh) 一种文件系统的断电保护方法
CN101645026B (zh) 根据错误更正码更新闪存页面的储存装置与方法
CN101916234A (zh) 一种存储设备的信息维护方法及系统
CN101673229A (zh) 自动备份闪存存储数据的存储系统和方法
CN105893172A (zh) 硬盘数据恢复方法及系统
CN107229535A (zh) 数据块的多副本存储方法、存储设备、数据读取方法
KR20140101626A (ko) 솔리드 스테이트 드라이브의 데이터 처리 방법
CN102549550B (zh) 一种数据访问方法及系统
KR20060068383A (ko) 광 디스크 시스템의 데이터 복구 방법
CN101315594A (zh) 存储桥接器及应用此存储桥接器的存储装置与存储方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100825