用于修复受损硬盘文件系统的方法和系统的制作方法

文档序号:6478006阅读:120来源:国知局
专利名称:用于修复受损硬盘文件系统的方法和系统的制作方法
技术领域
本发明总体上涉及数据存储(data storage),具体而言,涉及一种用于修复存储 装置上受损文件系统的方法和系统。 修复存储装置上的受损文件系统中存在的问题是,现有修复方法通常速度较 慢并且要消耗大量资源。用于修复文件系统的已知方法需要对整个存储机构(storage mechanism)进行扫描以识别并修复受损扇区(damagedsector)。例如,图1显示了用于修 复硬盘驱动器上由于电源故障(powerfailure)而受损的文件系统的现有方法。
在这种情况下的扇区损坏通常都是由于在硬盘驱动器上的写操作的中断而造成 的。当在步骤104中计算机系统在电源故障之后启动时,修复工具将开始扫描硬盘驱动器 以确定不良扇区(defective sector)。在步骤108中所述扫描包括检查每个扇区以在步骤 112中确定是否有扇区包括差错(error)。在确定扇区包括差错后,在步骤116中修复工具 将纠正所述差错并继续扫描全部扇区并修复差错,直至最后一个扇区。对于大容量存储装 置,这种方法通常需要几分钟甚至几个小时才能完成全部过程。 根据本发明的一个方面,通过避免扫描整个存储装置以确定差错,可以縮短修复 存储装置上的受损扇区所需时间。本发明包括存储对应于存储装置最可能受损的扇区或者 一部分的扇区标识符(sector identifier)。所述标识符可以用于对存储装置上的差错进 行定点搜索(targeted search)。 本发明的一种实施方式涉及一种用于修复存储介质上由于写入操作中断而受损 的文件系统的方法,所述方法包括接收写入数据指令(writedata command);响应于接 收到所述写入数据指令,在标识最近写入数据的扇区的扇区ID列表中存储与存储介质的 扇区对应的扇区标识符;根据所述写入数据指令将数据写入所述扇区;检索所述扇区标识 符;确定所述扇区是否包括差错;并纠正所述扇区中的差错,其中独立于所述文件系统执 行所述检索、确定和纠正。 本发明的另外一种实施方式涉及一种用于修复存储介质上由于写操作中断而受 损的文件系统的系统,所述系统包括存储介质;标识最近写入数据的存储介质扇区的扇 区ID列表;指令处理器,所述指令处理器用于接收写入数据指令;响应于接收到所述写入 数据指令,在所述扇区ID列表中存储与存储介质的扇区对应的扇区标识符;并根据所述写 入数据指令将数据写入所述扇区;以及修复模块,所述修复模块用于检索所述扇区标识 符;确定所述扇区是否包括差错;并纠正所述扇区中的差错,其中独立于所述文件系统执 行所述检索、确定和纠正。 下面将结合附图对本发明的一个或多个实施方式进行说明。虽然具体地说明了本 发明的实施方式,但本发明可以按照多种方式实施。例如,如上所述,本发明可以实施为一
背景技术

发明内容
4种方法,或者实施为执行一组操作的装置,或者实施为存储了执行一系列操作的指令的装 置。根据下面参照附图对本发明的详细说明,本发明的其他方面和特征将是显而易见的。


通过下面参照附图对本发明实施方式的详细说明,本发明的上述方面、特点和优 势将得到更清楚的理解。其中 图1是现有技术中修复存储介质的受损扇区的方法流程图; 图2是用于修复存储装置上的受损文件系统的示例性系统的方框图;禾口 图3是用于编辑对应于最近写入数据的扇区的扇区标识符列表的示例性方法的
流程图; 图4是用于采用扇区标识符列表对受损扇区进行定点搜索并纠正受损扇区中包 含的差错的示例性方法的流程图; 图5是用于采用扇区标识符列表对受损扇区进行定点搜索并纠正受损扇区中包 含的差错的示例性个人录像机系统的方框图。 可以理解,附图的目的在于对本发明的原理进行说明,但不是本发明的惟一可能 结构。为了易于理解,各个附图中的相同元件用相同的附图标记来表示。
具体实施例方式
本发明提供了一种用于修复存储装置上的受损文件系统的方法和系统。本发明的 一个方面包括存储扇区标识符,以提供最近写入数据的扇区的位置。所述标识符用于修复 由于写入操作中断而损坏的扇区,所述写入操作中断例如有可能是由于电源故障造成的。 因此,本发明可以用于快速确定受损扇区,而不需要随机扫描存储装置的大部分。下面将参 照附图对本发明的各个方面进行说明。 需要指出,附图中的各种元件的功能可以使用专用硬件以及能够执行相关软件的 硬件来实现。当由处理器来实现时,所述功能可以由单一专用处理器、单一共享处理器或者 多个单独处理器(其中某些可以是共享的)来实现。并且,术语"处理器"或"控制器"不 应被理解为只指能够执行软件的硬件,而是可以非限制性地表示数字信号处理器(DSP)硬
件、用于存储软件的只读存储器(R0M)、随机访问存储器(RAM)和非易失性存储器。并且,关 于本发明的原理、各个方面、实施方式以及具体实施例的说明都意欲包括其结构和功能的 等同方式。并且,上述等同方式包括当前已知的等同方式以及未来出现的等同方式(即任 何以后出现的用于执行相同功能的元件,无论其结构如何)。 因此,例如,本领域普通技术人员可以理解,说明书中的框图表示根据本发明的实 施方式的示例性电路的概念性图示。类似地,可以理解,任何流程图、操作程序图、状态转换 图、伪代码等都表示能够有计算机可读介质表示并因而由计算机或处理器执行的各种过程 步骤,这种计算机或处理器是否明确示出并无关系。 请参看附图,其中相同附图标记表示相同元件。图2是根据本发明一个方面的示 例性系统200,可以用于修复存储介质上由于写入操作中断而受损的文件系统。系统200可 以包括用于控制存储介质216上的数据写入的控制单元204。控制单元204可以包括用于 接收写入指令并在存储介质216上执行该指令的指令处理器208。另外,指令处理器208还根据本发明的原理在扇区标识符(ID)列表220中写入扇区标识符,下面将进行详细说明。 扇区ID列表220包括用于标识最近写入了数据的扇区(其指示存储装置的一个部分)的 扇区ID的列表。并且,虽然图中列表220位于存储介质216内,其也可以位于完全分开的 存储机构中。根据本发明,修复模块212可以利用扇区ID列表220来发现和修复差错,下 面将参照附图3和4对此进行说明。 请参看图3,根据本发明的示例性方法300可以用于修复存储介质上由于写入操 作中断而受损的文件系统。所述中断的原因可能是电源故障以及处理器冻结(processor freeze)等。图3说明了用于编辑对应于最近写入数据的扇区的扇区标识符的列表的方法。
所述方法开始于步骤304,在该步骤接收指令。例如,控制对存储介质的读写操作 的控制单元204可以接收所述指令。在接收到指令后,在步骤308中,根据本发明实施方式 的一个方面指令处理器208确定所述指令是否是向存储介质的扇区中写入数据的命令。如 果所述指令不是扇区写入指令,在步骤320中继续执行正常操作。但是,如果确定所述指令 是扇区写入指令,则在步骤312中,指令处理器208将对应于根据所述写入指令将要写入数 据的扇区的扇区标识符(ID)存储在扇区ID列表220中。所述扇区ID可以是用于标识将要 写入数据的扇区或者存储介质的一部分的位置的任何标记(tag)。并且,扇区ID列表220 可以存储在与将要写入数据的扇区分开的位置。例如,扇区ID列表220可以存储在小容量 非易失性RAM的专用扇区中。另外,扇区ID列表220的存储可以位于将要写入数据的相同 存储介质上,也可以位于完全分开的存储介质上。 在存储扇区ID之后,在步骤316中,指令处理器208根据扇区写入指令在对应于 存储的扇区ID的扇区中写入数据。此后,在步骤320中继续执行正常操作,并且根据系统 中任何另外的写入指令重复执行上述过程。虽然在图3中示出的实施方式是在存储了扇区 ID之后向存储介质216中写入数据,但是在其他的实施方式中可以在写入操作的同时存储 扇区ID。另外,如上所述可以理解,扇区ID列表220可以包括标识最近写入数据的扇区的 多个扇区ID。例如,所述列表可以描述按照时间顺序写入数据的最后几个扇区。根据设计 选择,存储在扇区ID列表220中的扇区ID的数量可以是单一扇区ID或者大量扇区ID。在 一个实施方式中,扇区ID列表220可以存储在包括预定数量扇区ID的环形缓存器(ring buffer)中。环形缓存器例如包括7个单元(element),对应于7个扇区ID。如果环形缓存 器已满,则在环形缓存器中存储每个新扇区ID时覆盖(overwrite)最早的扇区ID。如上所 述,当引入每个新写入指令时重复执行上述过程并继续更新所述列表。
如上所述,存储介质上的扇区有可能由于写入操作的中断而受损,所述中断可能 是电源故障、处理器冻结以及任何其他阻止写入操作完成的事件。编辑的扇区ID列表220 可以用于快速确定可能由于这种中断受损的扇区。如上所述,采用扇区ID列表220不需要 扫描存储介质的大部分,这将极大地减小修复存储介质上的文件系统所需时间。图4说明 了利用上述扇区ID列表220修复文件系统的方法。 请参看图4,可以采用方法400来纠正由于电源故障造成的写入操作中断而导致 的差错。所述方法首先在步骤404中启动处理器和其上写入了数据的存储介质。但是,所 述方法例如还可以开始于处理器冻结或者任何其他写入中断的原因消除之后的正常操作。 在中断和恢复正常处理之后,在步骤408中,修复模块212通过查询环形缓存器、专用扇区 或者用于存储所述列表的任何其他装置的内容而检索扇区ID列表220。如上所述,扇区ID列表220可以包括对应于在检索步骤之前最近写入数据的扇区的单一扇区ID或者多个扇 区ID。 在检索所述列表之后,在步骤412中修复模块212检查对应于扇区ID列表220的 扇区ID的扇区。在检查扇区之后,在步骤416中,修复模块212确定所述扇区是否包括差 错。如果所述扇区不包括差错,如果在步骤424中修复模块确定所检查的扇区不是最后扇 区,则在步骤412中修复模块212检查扇区ID列表220中的下一扇区。但是,如果扇区被 确定具有差错,则在步骤420中修复模块212纠正所述差错,并在步骤412中检查扇区ID 列表220中的下一扇区。然后,如果需要,在步骤420中对下一扇区进行纠错。所述过程持 续进行,直至所述列表中的最后扇区。 在本发明的一个实施方式中,例如通过在扇区中全部写入0来覆盖扇区中的所有 数据来纠正所述差错。如上所述,许多误差是由于扇区上的写入操作的中断而造成的。这 种中断的一般影响就是写入拼接(write-splice),其中新数据将被写入到扇区的开始处, 而具有旧校验和的旧数据将被保留在扇区的末端。校验和是扇区中的比特和,其被用于验 证在扇区中没有差错。在许多文件系统中,如果校验和与扇区中的数据不匹配,则该扇区被 认为是"不可读的"。文件系统修复程序,例如XFS修复程序xfs—r印air,要求全部扇区都 是可读的,否则程序就会失败。通过覆盖扇区里的数据来纠正差错能够保证校验和与数据 匹配,从而使文件系统修复程序顺利运行系统恢复例程(routine)。在这种情况下,虽然通 过覆盖具有差错的扇区而删除了部分数据,文件系统工具能够读出扇区中的数据并至少运 行系统恢复例程。根据此方式,本发明独立于文件系统运行,即,本发明在文件系统等级的 系统恢复之前纠正特定扇区内的差错。 根据本发明的另一个方面,修复模块212可以从扇区ID列表220提供的最近写入 数据的扇区开始按照时间顺序检查扇区。因此,通过采用该列表,可以在少量扇区内进行定 点搜索,以确定在写入中断发生时正在向哪些扇区中进行写入。另外,对于受损扇区的所述 搜索和修复可以在几秒钟之内完成,而根据现有技术,需要几分钟甚至几个小时来修复大 容量存储介质内的受损扇区。 根据本发明的方法的另外一个优点在于,其可以在存储介质等级执行,在存储和 组织装置的文件和数据的装置的主文件系统之外。例如,可以响应于哪个扇区标识符存储 在存储介质等级而由文件系统产生在图3的步骤304中接收到的写入指令。并且,在运行 文件系统修复程序之前,也可以在存储介质等级执行图4中的修复步骤408-424。这样就可 以避免与文件系统修复程序相关的问题。如上所述,某些文件系统修复系统,例如XFS修复 程序xfs—r印air,要求全部扇区都是可读的,否则程序就会失败。因为可以在运行文件系统 修复程序之前执行根据本发明的修复过程,文件系统修复程序可以正确读出纠正的扇区, 以成功执行系统修复。并且,本发明能够独立于文件系统和文件系统修复程序纠正差错。
上述根据本发明的方法还可以应用于在固定时间间隔内执行指令(例如读和写) 的处理系统。例如,在固定时间限制(time constraint)下运行的系统包括个人录像机 (personal video recorder/PVR)。在个人录像机系统中,音频/视频流信息的读写是在固 定时间间隔内完成的。如果系统未能在固定时间间隔内完成处理过程,PVR将进行下一节 目(presentation),并且与不完整处理相关的信息将会丢失或者被丢弃。这种限制的原因 是希望按时显示尽可能多的节目。因此,当音频或视频数据达到得太晚时,需要将其丢弃以防止PVR的录制-播放系统崩溃。 在写入操作发生中断并且数据扇区受损的情况下,由于上述固定时间限制的原 因,通常扇区内的数据将被丢弃。例如,在电源故障之后进行启动时,最近写入的音频/视 频数据可能被丢弃,因为这些数据有可能在固定时间间隔内无法正常读出。大量的PVR系 统甚至都不对其存储介质内的受损文件系统进行修复。这些PVR系统上的软件通常将存储 装置视为非易失性存储器,其推定数据一旦被写入就一直能够几乎即刻被读出。其中的原 因是,PVR系统通常是设计使用最小的运行资源(operating resource)。上述修复方法需 要相对较少的存储容量并且可以独立于文件系统执行,其有助于采用消耗相对大量资源的 修复程序。 并且,即使将修复文件系统的已知方法用于PVR,通常也不能防止对这种音频/视 频数据的丢弃,因为不太可能在固定时间限制内完成任何修复操作。相反,本发明可以用于 在PVR系统规定的固定时间间隔内快速识别和修复扇区以保留信息,否则的话这些信息将 由于固定时间限制而被丢弃。如上所述,可以独立于文件系统执行根据本发明的修复方法, 并且其需要很少资源,从而能够快速纠正受损扇区。 图5是根据本发明的个人录像机500的方框图。PVR 500可以包括处理器516和 存储介质524。存储介质524可是硬盘驱动器,并且可以用于存储扇区ID列表220和根据 写入数据指令将要写入的数据。但是,如上所述,在其他实施方式中,存储扇区ID列表220 可以存储在与根据写入指令写入数据的存储介质完全分离的存储机构中。中央处理器516 例如可以包括Broadcom⑧出售的BCM 7038 C2芯片,该芯片是含有300MHz、64位CPU的双 通道HD视频/音频/图形和个人录像芯片。BCM 7038 C2是PVR通常采用的处理器。
在本发明的一个实施方式中,通过卫星技术电路接收的MPEG-4压縮格式的视频/ 音频数据分组经过流512被传输至CPU 516。例如,调谐器504可以调谐至适当频率并接 收数据分组。另外,解调器508可以同步地解调并输出来自调谐器的信号,并通过流512将
视频/音频数据分组提供至CPU5ie。随后,可以使用解码器520(包括Broadeon^出售的
BCM 7411 CO解码器)解压縮视频/音频数据。BCM 7411 CO解码器与MPEG-4视频流相兼 容。但是,可以理解,所述视频/音频数据可以是任何已知格式,例如MPEG-2,并且可以由其 他装置接收,例如通过有线电视传输。在接收到视频/音频数据数据流中的视频/音频数 据时,CPU 516可以通过配置适当的软件和硬件来执行上述方法。 可以理解,当PVR断电时,只有有限的时间来完成正在进行的写入周期。为了完全 避免在断电过程中包含写入的媒体数据的扇区受损,PVR应当适当地关闭其系统部件。但 是,存储介质524不能预测关闭顺序,因为该顺序通常针对计算机用途而进行了优化。因 此,数据将继续写入至其扇区中,而不受关闭顺序的影响。结果,某些扇区将不可避免地由 于电源故障而处于部分写入的状态。通过采用上述根据本发明的方法,可以纠正由于正常 关闭顺序以及其他常见写入中断(例如电源故障和处理器冻结)而造成的扇区损坏。在电 源故障之后的启动时或者在任何类型的写入中断之后的正常处理操作时采用所述存储的 扇区ID列表,CPU 516可以进行上述根据本发明的存储介质修复方法。如上所述,在PVR的 时间限制之内可以发现和修复存储机构的受损扇区。因此,通过利用根据本发明的方法,可 以保留PVR中原本需要丢弃的数据。 上述实施方式的特征和各个方面可以适用于各种应用。所述应用例如包括个人计算机和网络服务器(web server)或者存储装置上的受损文件系统的修复时间需要减小的 任何其他应用。但是,上述实施方式的特征和各个方面可以适用于其他各种应用和领域,因 此,其他应用是可能的也是可以预想的。另外,也可以使用无线电频率卫星装置和电缆装置 之外的协议和通信介质。例如,可以通过光纤电缆、通用串行总线(USB)电缆、小型计算机 系统接口 (SCSI)电缆、电话线、数字用户线路(DSL)、可视距离(line-of-sight)连接和蜂 窝连接(cellular connection)或者与上述介质相关的协议发送和接收数据。
上述实施方式例如可以采用方法或过程、装置或者软件程序来实现。即使只讨论 了一种形式的实施方式(例如只讨论了方法),上述实施方式也可以用其他形式来实现(例 如装置或程序)。装置例如可以用适当的硬件、软件和固件来实现。所述方法例如可以用装 置(例如处理器,其指包括计算机、微处理器和集成电路)以及可编程逻辑器件来实现。处 理装置也包括通信装置,例如计算机、移动电话、便携/个人数字助理(PDA)和其他在终端 用户之间进行信息通信的装置。 上述各种过程和特征的实施方式可以实现为各种不同的设备和应用,特别是与数 据存储相关的设备和应用。所述设备例如可以包括视频编码器、视频解码器、视频编解码 器、网络服务器、机顶盒、便携式计算机、个人计算机和其他存储装置。应当指出,所述设备 可以是移动设备并且可以安装在移动的车辆里。 另外,所述方法可以通过由处理器执行的指令来实现,这种指令可以存储在存储 器可读的介质上,例如集成电路、软件载体或其他存储装置(例如硬盘、高密度磁盘、随机 访问存储器(RAM)和只读存储器(R0M))。所述指令可以形成为应用程序,并有形地表现在 处理器可读介质上。可以理解,处理器可以包括处理器可读介质,所述介质例如具有用于执 行程序的指令。 本领域普通技术人员可以理解,所述实施方式还可以产生一信号,用于承载可以 存储或传输的信息。所述信息例如可以包括用于执行方法的指令或者由上述实施方式之一 产生的数据。这种信号例如可以格式化为一种电磁波(例如使用频谱的无线电频率部分) 或基带信号。所述格式化例如可以包括编码数据流、分组化(packetize)所述编码流并调 制具有所述分组化流的载波(carrier)。所述信号承载的信息可以是模拟或数字信息。所 述信号可以通过多种不同的有线或无线链接进行传输。 上面对本发明的多个实施方式进行了说明。但是,可以理解,可以对上述实施方式 进行多种修改。例如,不同的实施方式的元件可以组合、添加、修改或者删除以产生其他实 施方式。另外,本领域普通技术人员可以理解,可以用其他结构和过程来代替本说明书中所 述的结构和过程,并且产生的实施方式可以与所述实施方式进行大体相同的功能,采用大 体相同的方式,并且取得大体相同的结果。因此,这些实施方式都属于所附权利要求书的范 围之内。
9
权利要求
一种方法,包括接收(304)写入数据指令;根据所述写入数据指令将数据写入(316)存储介质;响应于所述写入,在标识最近写入数据的扇区的扇区ID列表中存储(312)与存储介质的扇区对应的标识符;响应于所述写入的中断检索(408)所述标识符;确定(416)与所述标识符对应的所述扇区是否包括差错;并且纠正(420)所述扇区中的差错,其中独立于文件系统执行所述检索、确定和纠正。
2. 根据权利要求l所述的方法,其中在启动操作时执行所述检索(408)。
3. 根据权利要求1所述的方法,其中所述检索的标识符对应于在所述检索步骤之前进 行了最近的写入操作的扇区。
4. 根据权利要求1所述的方法,其中所述标识符存储在与所述存储介质写入数据的位 置分离的预定位置。
5. 根据权利要求4所述的方法,其中所述标识符存储在所述存储介质的非易失性存储 器的环形缓存器中。
6. 根据权利要求l所述的方法,其中检索还包括检索(408)所述列表。
7. 根据权利要求6所述的方法,还包括从最近写入数据的扇区开始,根据所述列表按照时间顺序检查(424,412)与多个标识 符对应的多个扇区,以确定所述多个扇区中是否有任何扇区包括差错。
8. 根据权利要求l所述的方法,其中在写入之前进行所述存储(312)。
9. 根据权利要求1所述的方法,其中所述存储介质包含在个人录像机中。
10. —种用于修复存储介质上文件系统的系统,包括 存储介质(216);标识最近写入数据的存储介质扇区的扇区ID列表(220); 处理器(208),所述指令处理器用于 接收写入数据指令;响应于接收到所述写入数据指令,在所述扇区ID列表中存储与存储介质的扇区对应 的扇区标识符;并且根据所述写入数据指令将数据写入所述扇区; 修复模块(212),所述修复模块用于 响应于写入操作的中断,检索所述扇区标识符; 确定所述扇区是否包括差错;并且纠正所述扇区中的差错,其中独立于文件系统执行所述检索、确定和纠正。
11. 根据权利要求10所述的系统,其中所述修复模块(212)在启动操作时检索所述扇 区标识符。
12. 根据权利要求IO所述的系统,其中所述检索的扇区标识符对应于在所述检索步骤 之前进行了最近的写入操作的扇区。
13. 根据权利要求10中所述的系统,其中所述扇区标识符存储在与所述存储介质写入 数据的位置分离的预定位置。
14. 根据权利要求13所述的系统,其中所述扇区标识符存储在所述存储介质的非易失性存储器的环形缓存器中。
15. 根据权利要求10所述的系统,其中所述修复模块(212)还用于检索所述列表。
16. 根据权利要求15所述的系统,其中所述修复模块(212)还用于从最近写入数据的扇区开始,根据所述列表按照时间顺序检查与多个标识符对应的多个扇区,以确定所述多个扇区中是否有任何扇区包括差错。
17. 根据权利要求10所述的系统,其中在将数据写入到与扇区标识符对应的扇区之前存储所述扇区标识符。
18. 根据权利要求IO所述的系统,其中所述存储介质包含在个人录像机(500)中。
全文摘要
本发明涉及用于修复存储装置的受损文件系统的方法和装置。根据本发明的一个方面,检索(408)在存储介质的写入操作中断时最近写入数组的扇区列表。所述列表用于对最可能受损的扇区进行定点检索。对所述列表中提供的扇区进行检查(412)并识别(416)包括差错的扇区。随后,对差错进行纠正(420)。
文档编号G06F11/14GK101772757SQ200880101868
公开日2010年7月7日 申请日期2008年2月19日 优先权日2007年8月21日
发明者威廉·查尔斯·凯斯特 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1