纠正硬盘驱动器引导扇区中的格式错误的方法和系统的制作方法

文档序号:6561797阅读:258来源:国知局
专利名称:纠正硬盘驱动器引导扇区中的格式错误的方法和系统的制作方法
技术领域
本发明一般地涉及数据处理系统,具体地说,涉及与数据处理系统相关联的硬盘驱动器。更具体地说,本发明涉及用于在修复与数据处理系统关联的硬盘驱动器中的坏扇区时恢复格式的系统、方法以及计算机程序产品。
背景技术
由于电磁技术的发展,所有给定价位的硬盘驱动器的容量每年都在成倍增加。虽然过去十年中呈现的存储容量的发展在可以存储的数据类型和数量方面引发了一场革命,但是相关尺寸的减小和移动部分速度的提高却带来了其可靠性的一系列障碍。
硬盘驱动器的可靠性根据其平均故障间隔时间(MTBF)和不可恢复的错误率来规定。当前服务器等级的驱动器的典型技术要求是1,000,000小时MTBF和1015位读取中有1个不可恢复的错误。但是,由于更低的飞行高度、对介质缺陷的更高敏感度以及更小的尺寸,硬盘密度的增加使维持可靠性变得更加困难。这些困难及错误频率促使了纠错技术的产生。
某些纠错方法需要人工干预。其他方法,例如RAID(独立磁盘冗余阵列)阵列(例如,RAID-1或RAID-5)经常用于通过在冗余存储中纠正各种错误来进一步提高存储系统的可靠性。但是,对于高容量驱动器而言,单一级别的冗余不再足以将数据丢失的概率降低到可忽略级别。另外不幸的是,数据或格式的冗余存储都将增加成本和存储容量要求。
由于先前的写入命令没有写入记录介质上的正确位置或由于驱动器根本没有在介质上进行记录,硬盘驱动器还可能偶尔在读取命令时返回错误数据。此类失败可能是由于间歇的硬件故障或潜在的设计缺陷。例如,驱动器可能由于固件缺陷将数据写入错误的LBA(逻辑块地址),或者可能写入偏离磁道,或者可能因一滴润滑剂将磁头抬离盘表面而无法进行写入。还可能由于写入或格式操作期间的任何供电中断而无法写入。
在数据处理系统中,写入失败带来可能使存储在硬盘驱动器中的数据的格式变得受损或破坏的风险。同对于硬盘驱动器中其他问题的纠错方法一样,从受损的格式数据恢复的现有技术方法涉及不断维护数据的冗余副本或要求用户通过替换或手动修复来纠正受损的格式。
现有技术方法的状态导致很多困难。首先,由于存储要求的相应增加,维护格式数据的冗余副本不是所希望的。在嵌入式系统或存储资源有限的其他系统中,对存储要求的关注变得尤其重要。同样,要求用户通过替换或手动修复来纠正受损格式数据的现有技术方法涉及用户或信息技术人员的时间成本。需要减少此类成本。

发明内容
本发明披露了一种用于纠正硬盘驱动器引导扇区中的格式错误的方法。发现第一硬盘驱动器的第一格式中的错误,并且从存储第二数据的第二硬盘驱动器提取第二格式。使用所述第二格式的修改来替换所述错误的第一格式,并且将第一数据与所述第二格式的所述修改一起存储在所述第一硬盘驱动器中。所述第一数据与所述第二数据不同。


在所附权利要求中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是图1a示出了其中实现用于恢复格式数据以便修复连接到数据处理系统的硬盘驱动器中的坏扇区的方法、系统和计算机程序产品的优选实施例的数据处理系统的方块图;
图1b示出了根据本发明的优选实施例的连接到数据处理系统的硬盘驱动器;图1c示出了根据本发明的优选实施例的连接到数据处理系统的硬盘驱动器的选定扇区;图2示出了根据本发明的优选实施例的包括在修复连接到数据处理系统的硬盘驱动器中的坏扇区时执行格式恢复的用于读取和写入数据的方法的高级逻辑流程图;以及图3示出了根据本发明的优选实施例的用于在修复连接到数据处理系统的硬盘驱动器中的坏扇区时执行格式恢复的方法的高级逻辑流程图。
具体实施例方式
本发明利用了双介质映像设计,其中格式数据(也称为关键数据)的相似副本位于一个硬盘驱动器的不同扇区或多个硬盘驱动器中。如果当涉及格式数据的操作中断而导致格式数据的扇区受损时,本发明将检测此受损格式并利用类似格式的扇区作为模板来重建受损的格式。随后使用重建的格式来修复受损的扇区,使得系统能够返回全部能力和功能,而不需要警告用户所述损坏。本发明提供一种不需要格式数据的特定冗余副本或用户介入的数据受损解决方案。
现在参考附图,具体地说,参考图1a,其中示出了可用来实现本发明的方法、系统和计算机程序产品的数据处理系统100。出于讨论的目的,在此将所述数据处理系统描述为具有与服务器计算机相同的功能。但是,如此处使用的,术语“数据处理系统”旨在包括能够接收、存储和运行软件产品的所有类型的计算设备或机器,不仅包括计算机系统,而且还包括诸如通信设备(例如,路由器、交换机、寻呼机、电话、电子书、电子杂志和报纸等)、数据存储设备以及个人和消费电子设备(例如,手持电脑、网络电视、家庭自动化系统,多媒体查看系统等)之类的设备。
图1a和以下介绍旨在提供适于实现本发明的示例性数据处理系统的简短的一般说明。虽然将在服务器计算机的ROM中驻留为固件的指令的一般上下文中说明本发明的各部分,但是本领域的技术人员将认识到,本发明还可以以操作系统中运行的程序模块的组合来实现。一般地说,程序模块包括例程、程序、组件和数据结构,它们执行特定任务或实现特定的抽象数据类型。本发明还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地,也可以位于远程存储器存储设备中。
数据处理系统100包括一个或多个处理单元102a-102d,至少两个连接到存储器控制器105的闪速存储器单元110和112,至少一个连接到存储器控制器105的RAM单元111,以及将存储器控制器105连接到处理单元102a-102d和数据处理系统100的其他组件的系统互连结构106。系统互连结构106上的命令在总线仲裁器108的控制下被传送到不同的系统组件。
数据处理系统100还包括其他非易失性大容量存储介质,例如第一硬盘驱动器104a和第二硬盘驱动器104b。第一硬盘驱动器104a和第二硬盘驱动器104b通过输入/输出(I/O)接口114可通信地连接到系统互连结构106。虽然以上说明了硬盘,但是本领域的技术人员应理解,计算机可读的其他类型的介质(例如可移动磁盘、CD-ROM盘、磁带、硬盘驱动器卡、数字视频盘、贝努利盒、以及其他后继开发硬件)也可以在示例性计算机操作环境中提供非易失性大容量数据存储。ROM 107中提供了其他非易失性存储装置,其包括用于执行各种基本系统操作的固件109。使用在ROM107中存储为固件109的指令来执行本发明并根据连接到I/O接口114(其包含格式修改存储单元180)的两个硬盘驱动器104a-104b来说明本发明。本发明还可应用于第一硬盘驱动器110、第二硬盘驱动器112和采用双介质映像设计的其他广泛的介质。
数据处理系统100可以在使用到一个或多个远程计算机(如远程计算机116)的逻辑连接的联网环境中运行。远程计算机116可以是服务器、路由器、对等设备或其他公共网络节点,并且通常包括多个或全部根据数据处理系统100描述的元素。在联网环境中,数据处理系统100使用的程序模块,或者其中的一部分,可以存储在远程存储器存储设备(如远程计算机116)中。图1中示出的逻辑连接包括局域网(LAN)118上的连接,但是在备选实施例中,可以包括广域网(WAN)。
当在局域网网络环境中使用时,数据处理系统100通过输入/输出接口(如网络适配器120)连接到局域网118。应当理解,示出的网络连接是示例性的,并且可以使用其他在计算机间建立通信链接的方法。
现在参考图1b,其中示出了根据本发明的优选实施例的两个连接到数据处理系统的硬盘驱动器。图1b是除去外壳的两个硬盘驱动器104a-104b的内部的俯视图。每个硬盘驱动器104a-104b都包括悬架198a-198b以便向盘188a-188b推动滑块196a-196b。悬架198a-198b还提供滑块196a-196b的装有万向架(gimbaled)的连接,这允许滑块196a-196b在空气轴承上漂浮时定位和移动。由滑块196a-196b上的传感器从盘188a-188b检测到的数据被位于臂194a-194b附近的集成电路臂电子(AE)模块190a-190b中的信号放大和处理电路处理成数据回读信号。臂194a-194b关于接头152a-152b枢转以将滑块196a-196b移动到所需的径向位置。磁道184a-184b位于盘188a-188b上的径向位置。扇区组186a-186b在磁道184a-184b中围绕盘有角度地布置。将参考图1c更详细地描述扇区组186a-186b。
现在参考图1c,其中示出了根据本发明的优选实施例的连接到数据处理系统的硬盘驱动器的一组选定扇区。第一硬盘驱动器104a包含扇区组186a,其中包含四个扇区152a-158a。引导扇区152a包含标头160a、分区表偏移162a、分区名称164a和分区表大小166a,它们总称为格式数据160a-166a,而扇区154a-158a包含存储的数据,如应用所使用的数据。第二硬盘驱动器104b包含扇区组186b,其中包含四个扇区152b-158b。引导扇区152b包含标头160b、分区表偏移162b、分区名称164b和分区表大小166b,它们总称为格式数据160b-166b,而扇区154b-158b包含存储的数据,如应用所使用的数据。因此(并且通常如此),第一硬盘驱动器104a的扇区154a-158a包含与第二硬盘驱动器104b的扇区154b-158b中的第二数据不同的第一数据。
现在转至图2,其中示出了根据本发明的优选实施例的包括执行格式恢复以便修复连接到数据处理系统的硬盘驱动器中的坏扇区的用于读取和写入数据的方法的高级逻辑流程图。
出于说明目的,在此包含的对图2和图3的示例性说明将涉及在第一硬盘驱动器104a上执行的格式操作,并使用第二硬盘驱动器104b来提供备份格式数据。本领域的技术人员将很快认识到,第一硬盘驱动器104a和第二硬盘驱动器104b都可以在格式操作期间互相提供备份。过程开始于步骤200,然后前进到步骤204,步骤204示出了I/O接口114开始对硬盘驱动器104a中的存储的引导扇区152a执行关键操作。过程接着移动到步骤206。在步骤206,I/O接口114读取第一硬盘驱动器104a的扇区152a。然后过程前进到步骤208,步骤208示出了I/O接口114更新在步骤206中读取的包含在第一硬盘驱动器104a引导扇区152a中的数据的本地副本。过程接着移动到步骤210。
在步骤210,I/O接口114删除在步骤206中读取的第一硬盘驱动器104a的引导扇区152a。然后过程进行到步骤212,步骤212示出了I/O接口114对在步骤206中读取的引导扇区152a的格式数据160a-166a执行验证和恢复功能,这将在以下根据图3详细说明。过程接着移动到步骤214。在步骤214,I/O接口114重写在步骤206中读取的第一硬盘驱动器104a的引导扇区152a。然后过程在步骤216结束。
现在参考图3,其中示出了根据本发明的优选实施例的用于执行格式恢复以便修复连接到数据处理系统的硬盘驱动器中的坏扇区的方法的高级逻辑流程图。过程开始于步骤300,随后移动到步骤302,步骤302示出了I/O接口114验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的标头160a。过程然后进行到步骤304。在步骤304,I/O接口114判定对在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的标头160a的验证是否成功。如果对在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的标头160a的验证没有成功,则过程移动到步骤306。
步骤306-316表示概括的恢复过程,该过程用于响应在步骤304和步骤318-328(将在下面说明)中任一步骤中验证失败的判定。在步骤306,I/O接口114断言内部标志位指示验证失败。过程接着进行到步骤308,步骤308示出了I/O接口114将第二硬盘驱动器104b的引导扇区152b的二进制映像(其与步骤206中读取的第一硬盘驱动器104a的引导扇区152a类似)复制到I/O接口114中的格式修改存储单元180。过程然后移动到步骤310,步骤310示出了I/O接口114从第二硬盘驱动器104b的引导扇区152b的格式修改存储单元180中的二进制映像读取格式数据160b-166b。过程接着进行到步骤312。在步骤312,I/O接口114在必要时修改来自第二硬盘驱动器104b的引导扇区152b的格式修改存储单元180中的二进制映像的格式数据160b-166b,以便用于替换在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的受损的格式数据160a-166a。
所述必要的修改将随本发明的特定实施例而不同,并且基于所用的硬盘驱动器的特定类型和存储在硬盘驱动器104a的扇区154a-158a与硬盘驱动器104b的扇区154b-158b中的特定数据之间的差异来执行此修改。在一个优选实施例中,来自格式数据160b-166b的某些数据可以直接重新使用。例如,从标头160b提取的数据可以直接在标头160a中重新使用。同样地,分区表偏移162b可以直接重新用作分区表偏移162a,并且分区表大小166b可以直接重新用作分区表大小166a。
在一个优选实施例中,通过更改分区名称164b的尾随数字以便与标识分区名称164a存在于其中的硬盘驱动器104a的指示符对应来得出分区名称164a。一个优选实施例包含硬盘驱动器104b,其按惯例被指定为具有分区名称boot2、kern2、dump2和user2的“硬盘2”。一个优选实施例还包含按惯例被指定为“硬盘1”的硬盘驱动器104a。当修改分区名称164b以用作分区名称164a时,存储器控制器105将创建分区名称boot1、kern1、dump1和user1。
在备选实施例中,将通过扫描硬盘驱动器104a的扇区154a-158a来得出其他格式数据160b-166b(如分区名称164a)。在块312之后,过程移动到步骤314,步骤314示出了I/O接口114使用在步骤312中创建的格式来更新在步骤206中读取的硬盘驱动器104a的扇区152a以用于替换在步骤206中读取的硬盘驱动器104a的扇区152a中先前存在的受损的格式数据160a-166a。然后过程在步骤316结束。
返回步骤304处的验证过程,如果验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的标头160a成功,则过程移动到步骤318,步骤318示出了I/O接口114验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区偏移表162a。过程接着移动到步骤320。在步骤320,I/O接口114判定对在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区偏移表162a的验证是否成功。如果I/O接口114判定对在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区偏移表162a的验证不成功,则过程移动到上述步骤306。如果I/O接口114判定对在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区偏移表162a的验证成功,则过程前进到步骤322。在步骤322,I/O接口114验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a中的不同分区名称164a的有效性。
然后过程进行到步骤324,步骤324示出了I/O接口114判定验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a中的分区名称164a的有效性是否成功。如果验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区名称164a的有效性不成功,则过程移动到上述步骤306。如果验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a中的分区名称164a的有效性成功,则过程移动到步骤326,步骤326示出了I/O接口114验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区表大小166a。然后过程移动到步骤328。在步骤328,I/O接口114判定验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区表大小166a是否成功。如果验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区表大小166a不成功,则过程移动到上述步骤306。如果验证在步骤206中读取的第一硬盘驱动器104a的引导扇区152a的分区表大小166a成功,则过程在步骤316结束。
如根据第一硬盘驱动器104a和第二硬盘驱动器104b示出的,本发明利用了双介质映像设计,其中格式数据(也称为关键数据)的相似副本存在于硬盘驱动器的不同引导扇区152a和152b或多个闪速存储器单元中。如果当涉及格式数据160a-166a的操作中断而导致格式数据160a-166a的引导扇区152a受损时,本发明将检测此受损格式并利用类似格式的引导扇区152b作为模板来重建受损的格式数据160a-166a。随后使用重建的格式来修复受损的引导扇区152a,使得系统能够返回全部能力和功能,而不需要警告用户所述损坏。
虽然参考优选实施例具体示出并描述了本发明,但是本领域的技术人员将理解,可以在不偏离本发明的精神和范围的情况下在其中做出各种形式和细节上的更改。重要的是注意到,尽管在完整功能的计算机系统的上下文中说明了本发明,但是本领域的技术人员将理解,可以以各种形式作为程序产品来发布本发明的机制,并且本发明均可等同地适用而与实际用于执行发布的信号承载介质的特定类型无关。信号承载介质的实例包括但不限于诸如软盘、CD-ROM之类的可记录型介质和诸如模拟或数字通信链路之类的传输型介质。
权利要求
1.一种纠正数据处理系统的硬盘驱动器的引导扇区中的格式错误的方法,所述方法包括发现数据处理系统的第一硬盘驱动器的第一格式中的错误;从所述数据处理系统的存储第二数据的第二硬盘驱动器提取第二格式;使用所述第二格式的修改来替换所述错误的第一格式;以及将第一数据与所述第二格式的所述修改一起存储在所述第一硬盘驱动器中,其中所述第一数据与所述第二数据不同。
2.根据权利要求1的方法,还包括生成所述第二硬盘驱动器的引导扇区的副本的步骤。
3.根据权利要求2的方法,其中所述生成所述第二硬盘驱动器的所述引导扇区的副本的步骤还包括将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到格式修改存储单元的步骤。
4.根据权利要求3的方法,其中所述将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到格式修改存储单元的步骤还包括将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到I/O接口中的格式修改存储单元的步骤。
5.根据权利要求1的方法,其中所述发现第一硬盘驱动器的第一格式中的错误的步骤还包括验证所述第一硬盘驱动器中的第一标头;验证所述第一硬盘驱动器中的第一分区表偏移;验证所述第一硬盘驱动器中的分区名称的第一有效性;以及验证所述第一硬盘驱动器中的第一分区表大小。
6.根据权利要求1的方法,其中所述使用所述第二格式的所述修改来替换所述错误的第一格式的步骤还包括修改所述第二硬盘驱动器的所述引导扇区的所述第二格式以构建所述第一硬盘驱动器的所述第一格式的所述修改的步骤。
7.根据权利要求1的方法,其中所述从存储第二数据的所述第二硬盘驱动器提取所述第二格式的步骤还包括从第二闪速存储器提取第二标头、第二分区表偏移、第二分区名称以及第二分区表大小的步骤。
8.一种纠正数据处理系统的硬盘驱动器的引导扇区中的格式错误的系统,所述系统包括用于发现数据处理系统的第一硬盘驱动器的第一格式中的错误的装置;用于从所述数据处理系统的存储第二数据的第二硬盘驱动器提取第二格式的装置;用于使用所述第二格式的修改来替换所述错误的第一格式的装置;以及用于将第一数据与所述第二格式的所述修改一起存储在所述第一硬盘驱动器中的装置,其中所述第一数据与所述第二数据不同。
9.根据权利要求8的系统,还包括用于生成所述第二硬盘驱动器的引导扇区的副本的装置。
10.根据权利要求9的系统,其中所述用于生成所述第二硬盘驱动器的所述引导扇区的副本的装置还包括用于将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到格式修改存储单元的装置。
11.根据权利要求10的系统,其中所述用于将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到格式修改存储单元的装置还包括用于将所述第二硬盘驱动器的所述引导扇区的二进制映像复制到I/O接口中的格式修改存储单元的装置。
12.根据权利要求8的系统,其中所述用于发现第一硬盘驱动器的第一格式中的错误的装置还包括用于验证所述第一硬盘驱动器中的第一标头的装置;用于验证所述第一硬盘驱动器中的第一分区表偏移的装置;用于验证所述第一硬盘驱动器中的分区名称的第一有效性的装置;以及用于验证所述第一硬盘驱动器中的第一分区表大小的装置。
13.根据权利要求8的系统,其中所述用于使用所述第二格式的所述修改来替换所述错误的第一格式的装置还包括用于修改所述第二硬盘驱动器的所述引导扇区的所述第二格式以构建所述第一硬盘驱动器的所述第一格式的所述修改的装置。
14.根据权利要求8的系统,其中所述用于从存储第二数据的所述第二硬盘驱动器提取所述第二格式的装置还包括用于从第二闪速存储器提取第二标头、第二分区表偏移、第二分区名称以及第二分区表大小的装置。
全文摘要
本发明披露了一种用于纠正硬盘驱动器引导扇区中的格式错误的方法。发现第一硬盘驱动器的第一格式中的错误,并且从存储第二数据的第二硬盘驱动器提取第二格式。使用所述第二格式的修改来替换所述错误的第一格式,并且将第一数据与所述第二格式的所述修改一起存储在所述第一硬盘驱动器中。所述第一数据与所述第二数据不同。
文档编号G06F9/445GK1967494SQ20061012890
公开日2007年5月23日 申请日期2006年9月1日 优先权日2005年11月15日
发明者A·D·帕特尔, M·A·迪肯森, J·S·兰福德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1