一种硬盘数据恢复方法、装置及系统的制作方法

文档序号:6368893阅读:136来源:国知局
专利名称:一种硬盘数据恢复方法、装置及系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬盘数据恢复方法、装置及系统。
背景技术
目前,常用的硬盘包括机械硬盘和固态硬盘,由于机械硬盘容易受温度、振动的影响而出现读写错误,且固态硬盘自身固有的擦写次数限制和坏块率也会导致读写错误。虽然硬盘具有纠错能力,但其只能通过自身纠错算法纠正错误位数较少的错误数据,其纠错能力是有限的。
现有技术中,当错误数据的错误位数太多,硬盘无法通过自身纠错算法进行纠错时,存储控制器多采用RAID (Redundant Array of Independent Disks,独立磁盘的冗余阵列)算法纠正错误数据,并通过重建或格式化操作对硬盘数据进行恢复。若在重建操作的过程中硬盘阵列中的其他硬盘出现错误,硬盘中的数据将无法恢复;而格式化操作需要进行整个磁道的数据读取、格式化和两次数据写入操作,第一次为将整个磁道的数据(包括通过RAID算法得到的恢复数据及错误数据所在磁道上的其他数据)写入保留区域,第二次为将整个磁道的数据写入格式化完成后的磁道上,操作繁琐,比较费时,而且保留区域是用来保存硬盘的參数和配置信息,进行第一次数据写入操作时会带来较大的风险。

发明内容
本发明实施例提供一种硬盘数据恢复方法、装置及系统,用以提高硬盘错误扇区或硬盘坏块的修复效率。为了解决上述技术问题,本发明实施例提供了一种硬盘数据恢复方法,该方法包括当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址;根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据;向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的第ニ物理块地址。相应地,本发明实施例还提供了一种硬盘数据恢复装置,该装置包括记录模块,用于当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址;恢复模块,用于根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据;触发模块,用于向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。另外,本发明实施例还提供ー种存储系统,该存储系统包括存储控制器和与所述存储控制器具有通信连接的硬盘阵列,该存储控制器包括本发明实施例提供的硬盘数据恢
复装置。实施本发明实施例,具有如下有益效果本发明实施例通过当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址;根据预设算法对所述逻辑块 地址对应的物理块地址的数据执行恢复操作,得到恢复数据;向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的新的物理块地址,从而使用硬盘内其它的扇区或块(例如硬盘冗余区的扇区)快速、方便地代替错误数据所在的错误扇区或坏块,将通过预设算法得到的恢复数据写入重映射后的新的物理块地址对应的扇区,能够快速修复硬盘的错误扇区或坏块,提高了硬盘错误扇区或硬盘坏块的修复效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例的存储系统的结构示意图;图2为本发明实施例提供的一硬盘数据恢复装置的结构示意图;图3为本发明实施例提供的逻辑块地址和物理块地址的重映射示意图;图4为本发明实施例提供的另ー硬盘数据恢复装置的结构示意图;图5为本发明实施例的硬盘数据恢复方法的方法流程示意图;图6为本发明实施例的另ー硬盘数据恢复方法的方法流程示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请參见图1,为本发明实施例提供的存储系统的结构示意图。所述系统包括存储控制器01和硬盘阵列02。具体的,所述存储控制器01包括一硬盘数据恢复装置03,所述硬盘阵列02可包括至少两个 HDD (Hard Disk Drive,机械硬盘)或 SSD (Solid State Drive,固态硬盘)。所述硬盘阵列02可由至少两个硬盘组成具有检错纠错能力的硬盘阵列,如RAIDl或RAID5,所述存储控制器01可根据不同的硬盘阵列采用不同的纠错算法。具体的,RAIDl又称为Mirror或Mirroring,是由两个硬盘组成镜像,两个硬盘中保存了相同的数据,其原理就是将ー块硬盘的数据以相同位置指向另ー块硬盘的位置。当其中一个硬盘中出现错误数据时,所述存储控制器Ol可以从另一个硬盘中直接得到对应的正确数据。而RAID5是将数据按条带方式保存在至少3个硬盘中,当其中ー个硬盘出现数据错误时,所述存储控制器01可以通过异或算法根据其他硬盘中的数据得到对应的正确数据。这些都是现有技术,不再赘述。进ー步的,请參见图2,为本发明实施例提供的一硬盘数据恢复装置03的结构示意图。该硬盘数据恢复装置03用于当从硬盘(硬盘阵列02中的一个硬盘)中读取数据发现错误吋,记录发生错误的数据在所述硬盘中对应的逻辑块地址;根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据;向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。本领域普通技术人员应当理解的是,“预设算法”在本发明实施例中可以是RAID纠错算法,在其它等同实施例中也可以是其它的数据恢复方法,本发明对此不做限定。具体的,该硬盘数据恢复装置03可以包括记录模块031、恢复模块032及触发模块033,其中记录模块031,用于当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址。 具体的,在本实施例中,假设所述硬盘数据恢复装置03从硬盘A中读取数据,所述硬盘A与另ー硬盘B组成ー适用纠错算法为RAIDl算法的硬盘阵列02。当所述硬盘数据恢复装置03从所述硬盘A中读取数据时,会向所述硬盘A发送所述数据所在的逻辑块地址(Logical Block Address, LBA)。如果所述硬盘A中出现了错误数据,所述硬盘A会向所述硬盘数据恢复装置03上报校验错误信息,所述校验错误信息中包括所述错误数据所在的逻辑块地址。当所述硬盘数据恢复装置03从所述硬盘A中读取数据时,发现错误数据,所述记录模块031则记录所述错误数据对应的逻辑块地址。需要说明的是,本发明实施例针对的错误数据为位数超过硬盘A预设的阈值,硬盘A通过自身纠错算法无法纠正的错误数据。当错误数据的位数低于预设的阈值时,硬盘A可通过自身纠错算法得到对应的正确数据。恢复模块032,用于根据预设算法对所述记录模块031记录的逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据。具体的,对应于本实施例中所述硬盘A与另ー硬盘B组成的适用纠错算法为RAIDl算法的硬盘阵列02,所述预设算法为RAIDl。当然,根据硬盘阵列02的不同,所述恢复模块032执行恢复操作采用的算法也不同,在此不赘述。恢复模块032可以采用RAIDl算法对所述记录模块031发现的错误数据执行恢复操作,在另ー个正常的硬盘B中的与所述记录模块031记录的逻辑块地址相同的逻辑块地址所对应的物理块地址上读取所述错误数据对应的正确数据,得到恢复数据。其中,PBA(Physical Block Address,物理块地址)为数据在硬盘中实际所在扇区的地址,所述第一物理快地址为所述错误数据在所述硬盘A中的扇区的地址。
具体的,每个硬盘都有LBA (Logical Block Address,逻辑块地址)-PBA映射表,用来记录该硬盘的逻辑块地址与物理块地址之间的对应关系。每个逻辑块地址都有一个与之对应的物理块地址。硬盘数据恢复装置03是根据逻辑块地址对所述硬盘A进行访问的,当所述硬盘数据恢复装置03从所述硬盘A中读取数据时,向所述硬盘A发送数据所在的逻辑块地址,逻辑块地址进入硬盘之后会根据所述LBA-PBA映射表翻译成物理快地址,即可实现所述硬盘数据恢复装置03对所述硬盘A的内部某个扇区的寻址。触发模块033,用于向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复模块032得到的恢复数据写入所述记录模块031记录的逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。具体的,当所述恢复模块032得到恢复数据后,所述触发模块033向所述硬盘A发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘A根据所述指令将所述恢复模块032得到的恢复数据写入所述记录模块031记录的逻辑块地址。
其中,所述逻辑块地址对应重映射后的第二物理块地址。 当所述硬盘A根据所述指令将所述恢复模块032得到的恢复数据写入所述记录模块031记录的逻辑块地址时,需执行重映射操作,即将所述恢复模块032得到的恢复数据写入所述硬盘A中的一个新的物理块地址,此新的物理块地址即为所述第二物理块地址。此时需要刷新所述LBA-PBA映射表,使所述第二物理块地址代替所述第一物理块地址,即实现了所述硬盘A中错误数据的恢复。优选的,所述第二物理块地址指向的是硬盘A冗余区的物理块;在其它实现方式下,所述第二物理块地址还可以指向硬盘A中除冗余区之外的空闲的物理块。此时,所述逻辑块地址对应的物理块地址发生了变化,但由于所述硬盘数据恢复装置03是根据逻辑块地址对所述硬盘A进行访问的,所述硬盘数据恢复装置03看不到物理块地址发生了变化,仍然可以按照所述逻辑块地址来访问所述硬盘A,不会对所述硬盘数据恢复装置03的正常操作带来任何影响。假设所述硬盘A共有60个物理块地址,其中物理块地址1-50属于用户区,物理块地址51-60属于冗余区。图3为逻辑块地址和物理块地址的重映射的示意图,表I为所述触发模块033向所述硬盘A发送写入所述恢复数据到所述逻辑块地址的指令前的所述LBA-PBA映射表;表2为所述触发模块033向所述硬盘A发送写入所述恢复数据到所述逻辑块地址的指令后的所述LBA-PBA映射表。表I
逻辑块地址物理块地址
1I
22
33
44表 权利要求
1.一种硬盘数据恢复方法,其特征在于,应用于存储控制器,所述方法包括 当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址; 根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据; 向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。
2.如权利要求I所述的方法,其特征在于,所述第二物理块地址对应的硬盘存储区域存在于所述硬盘的冗余区。
3.如权利要求2所述的方法,其特征在于,在向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令的步骤之前,在所述根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据的步骤之后,所述方法还包括 确定所述硬盘的冗余区是否有剩余空间; 若所述硬盘的冗余区有剩余空间,则执行所述向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令的步骤; 若所述硬盘的冗余区无剩余空间,则执行硬盘重建操作。
4.如权利要求I至3任一项所述的方法,其特征在于,在向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址的步骤之后,所述方法还包括 读取所述逻辑块地址中写入的所述恢复数据,与根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作得到的恢复数据进行对比,判断两者是否一致;若一致,则表明写入成功;若不一致,则表明写入失败,执行硬盘重建操作。
5.如权利要求I至3任一项所述的方法,其特征在于,在向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复数据写入所述逻辑块地址的步骤之后,所述方法还包括 判断所述硬盘是否上报校验错误信息; 若否,则表明写入成功;若是,则表明写入失败,执行硬盘重建操作。
6.如权利要求I至3任一项所述的方法,其特征在于,在所述根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据的步骤之后,所述方法还包括 向操作系统上报所述恢复数据,以使所述操作系统根据所述恢复数据执行相应的业务。
7.—种硬盘数据恢复装置,其特征在于,所述装置包括 记录模块,用于当从硬盘中读取数据发现错误时,记录发生错误的数据在所述硬盘中对应的逻辑块地址; 恢复模块,用于根据预设算法对所述记录模块记录的逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据; 触发模块,用于向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令,以使所述硬盘根据所述指令将所述恢复模块得到的恢复数据写入所述记录模块记录的逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。
8.如权利要求7所述的装置,其特征在于,所述第二物理块地址对应的硬盘存储区域存在于所述硬盘的冗余区,所述装置还包括 确定模块,用于确定所述硬盘的冗余区是否有剩余空间;若所述硬盘的冗余区有剩余空间,则执行所述向所述硬盘发送写入所述恢复数据到所述逻辑块地址的指令的步骤;若所述硬盘的冗余区无剩余空间,则执行硬盘重建操作。
9.如权利要求7或8所述的装置,其特征在于,所述装置还包括 对比模块,用于读取所述逻辑块地址中写入的所述恢复数据,与所述恢复模块根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作得到的恢复数据进行对比,判断两者是否一致;若一致,则表明写入成功;若不一致,则表明写入失败,执行硬盘重建操作。
10.如权利要求7或8所述的装置,其特征在于,还包括 判断模块,用于判断所述硬盘是否上报校验错误信息;若否,则表明写入成功;若是,则表明写入失败,执行硬盘重建操作。
11.如权利要求7或8所述的装置,其特征在于,还包括 报告模块,用于向操作系统上报所述恢复模块得到的恢复数据,以使所述操作系统根据所述恢复数据执行相应的业务。
12.—种存储系统,其特征在于,所述存储系统包括存储控制器和与所述存储控制器具有通信连接的硬盘阵列,所述存储控制器包括如权利要求7至11任一项所述的硬盘数据恢复装置。
全文摘要
本发明公开了一种硬盘数据恢复方法、装置及系统,该方法包括当从硬盘中读取数据发现错误时,记录发生错误的数据在硬盘中对应的逻辑块地址;根据预设算法对所述逻辑块地址对应的第一物理块地址的数据执行恢复操作,得到恢复数据;向硬盘发送写入恢复数据到逻辑块地址的指令,以使硬盘根据所述指令将所述恢复数据写入所述逻辑块地址;其中,所述逻辑块地址对应重映射后的第二物理块地址。本发明还公开了一种硬盘数据恢复装置及系统。本发明的目的在于提供一种硬盘数据恢复方法、装置及系统,将通过预设算法得到的恢复数据写入重映射后的新的物理块地址对应的扇区,能够快速修复硬盘的错误扇区或坏块,提高了硬盘错误扇区或硬盘坏块的修复效率。
文档编号G06F11/07GK102708019SQ20121013209
公开日2012年10月3日 申请日期2012年4月28日 优先权日2012年4月28日
发明者李延松 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1