发明内容
本发明实施方式所要解决的技术问题在于,如何实现一种低成本、能够对硬盘坏道进行监测以及替换修复的方法。
为解决上述技术问题,本发明提供一种硬盘坏道监测修复装置,包括一硬盘,该装置包括:
坏道管理单元,用于当系统启动时加载系统文件,并在该硬盘的存储区域中划分出一数据库存储分区,加载一预设的坏道数据库至该数据库存储分区中。
磁盘驱动单元,用于响应一读写操作请求对该硬盘进行相应的读写操作,并反馈读写操作结果。
坏道监测单元,用于根据该磁盘驱动单元反馈的读写操作结果判断进行读写操作的当前扇区是否为坏道。
通用缓存单元,用于当该坏道监测单元确定当前扇区为坏道且该读写操作为写入操作时在该硬盘的数据库存储分区中划分出一映射扇区,并生成坏扇区与映射扇区的索引信息,以及将该索引信息存储到该坏道数据库中。以及
坏道替换单元,用于当该坏道监测单元确定当前扇区为坏道且该读写操作为读取操作时将该坏道进行标记,从而将对应扇区所在的系统文件数据块标记为坏块。还用于复制坏扇区信息至该映射扇区,并当该磁盘驱动单元对该映射扇区的写入操作成功时调用该坏道管理单元将写入的信息存储在该坏道数据库中的相应扇区。
进一步地,本发明还提供一种硬盘坏道监测修复方法,该方法包括:
启动系统并加载系统文件,在硬盘的存储区域中划分出一数据库存储分区,加载一预设的坏道数据库至该数据库存储分区中。
响应一读写操作请求对该硬盘进行相应的读写操作,并反馈读写操作结果。
根据反馈的读写操作结果判断进行读写操作的当前扇区是否为坏道。以及
确定当前扇区为坏道且该读写操作为读取操作时将该坏道进行标记,从而将对应扇区所在的系统文件数据块标记为坏块。确定当前扇区是为坏道时且该读写操作为写入操作时,在该硬盘的数据库存储分区中划分出一映射扇区,并生成坏扇区与映射扇区的索引信息,以及将该索引信息存储到该坏道数据库中,复制坏扇区信息至该映射扇区,并当该磁盘驱动单元对该映射扇区的写入操作成功时将写入的信息存储在该坏道数据库中的相应扇区。
本发明提供的一种硬盘坏道监测修复装置和方法,在系统初始化时由坏道管理单元在硬盘中划分出一用于存储坏道数据库的区域,当系统发起读写操作时,通用缓存单元通过检测坏道数据库以确定是否具有坏道映射信息,并当检索到坏道映射信息,则将扇区替换成坏道数据库中的扇区,以供磁盘驱动单元进行相应的读写操作。利用本发明,整个硬盘坏道监测及替换过程在系统内部自动运行,不需要将硬盘拆下来手动检测修复。同时,系统在监测替换硬盘坏道的同时可以正常运行,不影响其他业务。硬盘坏道替换后,系统不再访问坏道,可以延长硬盘的寿命。从而,本发明解决了现有的硬盘监测技术无法自动监测坏道以及无法自动替换坏道的技术问题。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,为本发明实施方式中的硬盘坏道监测修复装置的功能模块示意图,该装置10包括坏道管理单元11、坏道监测单元12、坏道替换单元13、磁盘驱动单元14、通用缓存单元15以及系统文件处理单元16,还包括一硬盘20。在本实施方式中,该装置10为基于Linux系统的电子设备,在其他实施方式中,该装置10还可以为基于Windows、Android等系统的电子设备。
当该装置10的系统启动时,该坏道管理单元11对系统及其硬盘20进行初始化操作,具体地:该坏道管理单元11用于扫描硬盘20以及加载系统文件,并在硬盘20的存储区域中划分出一数据库存储分区,进一步地将一预设的坏道数据库加载在该数据库存储分区中,形成一空的坏道数据库。在本实施方式中,该坏道管理单元11还用于判断该数据库存储分区中存储的数据是否符合该坏道数据库的有效性,并当确定符合坏道数据库的有效性时,将该坏道数据库加载在该数据库存储分区中。当确定不符合坏道数据库的有效性时,该坏道管理单元11还用于检测该数据库存储分区中存储的数据是否为有效用户数据,若不是有效用户数据,则该坏道管理单元11初始化该数据库存储分区,并将该坏道数据库加载在经初始化的数据库存储分区中,从而形成有效的空坏道数据库。
在本实施方式中,该坏道管理单元11设定该坏道数据库存储分区的存储空间为硬盘20的存储空间的1%,该坏道数据库的有效性的判断标准由设计人员根据装置的相关参数进行预先设定。
当该装置10的系统经过初始化后启动进入运行过程中,该坏道监测单元12和坏道替换单元13对系统及其硬盘20进行硬盘坏道的监测和替换,具体地:当该系统发起一读写操作请求时,该磁盘驱动单元14响应该读写操作请求对硬盘20进行相应的读写操作,并反馈读写操作结果。该坏道监测单元12根据该磁盘驱动单元14反馈的读写操作结果判断进行读写操作的当前扇区是否为坏道。具体地,当磁盘驱动单元14对硬盘20的一扇区进行的读写操作失败时相应地反馈一读写失败信息,该坏道监测单元12对由磁盘驱动单元14反馈的读写操作失败信息进行累加,并当累加值达到一预设的临界值时确定该磁盘驱动单元14当前正在读写的硬盘扇区为坏道。由于硬盘20的扇区出现坏道时,该磁盘驱动单元14相应地读写操作就会失败,因此,当磁盘驱动单元14读写相同扇区失败的累积次数达到一个临界值时,该坏道监测单元12即判断该扇区是坏道。
当确定当前读写的扇区为坏道时,该坏道监测单元12还根据磁盘驱动单元14反馈的读写失败信息判断该磁盘驱动单元14对该坏道扇区的操作为读取操作还是写入操作。当确定当前进行的操作为读取操作,即读取失败时,该坏道替换单元13将确定的该坏道进行标记,从而将对应扇区所在的系统文件数据块标记为坏块。在本实施方式中,该坏道替换单元13利用系统文件中记录的坏道标记将损坏的扇区所在的系统文件数据块标记为坏块。当完成坏道标记后,该装置10的系统再次对该硬盘20进行读写操作时将不再访问该被标记的坏块。
当确定当前进行的操作为写入操作时,该通用缓存单元15在硬盘20上的数据库存储分区中划分出一映射扇区,并生成坏扇区与映射扇区一一对应的索引信息,以及将该索引信息存储到坏道数据库中。其中,该映射扇区的存储空间与确定的坏道扇区所在的系统文件数据块的大小相适应。该坏道替换单元13复制坏扇区信息至该映射扇区,并发送映射扇区至磁盘驱动单元14以使其进行对应的坏扇区信息的写入操作。该坏道替换单元13根据该磁盘驱动单元14对该映射扇区进行写入操作而反馈的操作信息判断对该映射扇区的写入操作是否成功。若写入操作失败,则由通用缓存单元15再次从硬盘20上的数据库存储分区中划分出一映射扇区,并生成坏扇区与映射扇区一一对应的索引信息,以及将该索引信息存储到坏道数据库中。并如上所述执行映射扇区信息的写入操作和判断,直至确定该映射扇区的写入操作成功。若写入操作成功,则由坏道管理单元11将写入的信息存储在坏道数据库中的相应扇区,以更新该坏道数据库,同时将该坏道数据重新写入硬盘20中。
当系统处于运行过程中时,该系统再次发起一读写操作请求时,并且系统读取到坏道时,该系统文件处理单元16执行坏道数据库的控制及使用,具体地:该系统文件处理单元16响应该再次发起的读写操作请求对系统文件进行相应的读写操作,并当发现进行读写操作的当前系统文件数据块是坏块时,反馈一错误信息,以提示用户当前的系统文件数据块损坏,需要新建文件块以替换该系统文件数据块对应的内容,还可以是其他提示信息。该系统文件处理单元16还根据为坏块的系统文件数据块确定对应的扇区,即计算出对应的扇区号,该通用缓存单元15根据系统文件处理单元16确定的扇区查询坏道数据库中的索引信息,以判断该确定的扇区在坏道数据库中是否有具有匹配的映射扇区。
当确定具有匹配的映射扇区时,该通用缓存单元15还获取该匹配的映射扇区数据,该磁盘驱动单元14对该映射扇区数据进行相应地读写操作。当磁盘驱动单元14成功完成读写操作后将数据拷贝至当前扇区。当确定没有匹配的映射扇区时,则表示该扇区正常,则该通用缓存单元15直接获取该扇区对应数据,以供该磁盘驱动单元14进行相应地读写操作。
请参阅图2,为本发明实施方式中硬盘坏道监测修复方法的流程图,该方法包括:
步骤S30,当该装置10的系统启动时,该坏道管理单元11扫描硬盘20以及加载系统文件,并在硬盘20的存储区域中划分出一数据库存储分区,进一步地将一预设的坏道数据库加载在该数据库存储分区中,形成一空的坏道数据库。
具体地,该步骤S30包括:
步骤S301,该坏道管理单元11在硬盘20的存储区域中划分出一数据库存储分区。
步骤S302,该坏道管理单元11判断该数据库存储分区中存储的数据是否符合该坏道数据库的有效性,若是则进入步骤S303,否则进入步骤S304。
步骤S303,该坏道管理单元11将该坏道数据库加载在该数据库存储分区中。然后,步骤S30完成。
步骤S304,该坏道管理单元11检测该数据库存储分区中存储的数据是否为有效用户数据,若不是有效用户数据,则该坏道管理单元11初始化该数据库存储分区,并将该坏道数据库加载在经初始化的数据库存储分区中,从而形成有效的空坏道数据库。然后,步骤S30完成。
在本实施方式中,该坏道管理单元11设定该坏道数据库存储分区的存储空间为硬盘20的存储空间的1%,该坏道数据库的有效性的判断标准由设计人员根据装置的相关参数进行预先设定。
步骤S31,当该系统发起一读写操作请求时,该磁盘驱动单元14响应该读写操作请求对硬盘20进行相应的读写操作,并反馈读写操作结果。
步骤S32,该坏道监测单元12根据该磁盘驱动单元14反馈的读写操作结果判断进行读写操作的当前扇区是否为坏道。若是,则进入步骤S33,否则,返回步骤S31。
具体,步骤S32包括:
步骤S321,当磁盘驱动单元14对硬盘20的一扇区进行的读写操作失败时相应地反馈一读写失败信息。
步骤S322,该坏道监测单元12对由磁盘驱动单元14反馈的读写操作失败信息进行累加,并判断累加值是否达到一预设的临界值,若是,则进入步骤S323,否则,返回步骤S321。
步骤S323,该坏道监测单元12确定该磁盘驱动单元14当前正在读写的硬盘扇区为坏道。然后,步骤S32完成。
步骤S33,该坏道监测单元12根据磁盘驱动单元14反馈的读写失败信息判断该磁盘驱动单元14对该扇区的操作为读取操作还是写入操作。若是读取操作,则进入步骤S34,否则,进入步骤S35。
步骤S34,该坏道替换单元13将确定的该坏道进行标记,从而将对应的扇区所在的系统文件数据块标记为坏块。然后,流程结束。
在本实施方式中,该坏道替换单元13利用系统文件中记录的坏道标记将损坏的扇区所在的系统文件数据块标记为坏块。当完成坏道标记后,该装置10的系统再次对该硬盘20进行读写操作时将不再访问该被标记的坏块。
步骤S35,该通用缓存单元15在硬盘20上的数据库存储分区中划分出一映射扇区,并生成坏扇区与映射扇区一一对应的索引信息,以及将该索引信息存储到坏道数据库中。
其中,该映射扇区的存储空间与确定的坏道对应的扇区所在的系统文件数据块的大小相适应。
步骤S36,该坏道替换单元13复制坏扇区信息至该映射扇区,并发送映射扇区至磁盘驱动单元14以使其进行该坏扇区信息的写入操作。
步骤S37,该坏道替换单元13根据该磁盘驱动单元14对该映射扇区进行写入操作而反馈的操作信息判断该映射扇区的写入操作是否成功。若是,则进入步骤S38,否则返回步骤S35。
步骤S38,由坏道管理单元11将写入的信息存储在坏道数据库中的相应扇区,以更新该坏道数据库,同时将该坏道数据重新写入硬盘20中。然后,流程结束。
请参阅图3,为本发明实施方式中坏道数据库使用的方法流程图。
步骤S40,当系统再次发起一读写操作请求时,该系统文件处理单元16响应该读写操作请求对系统文件进行相应的读写操作,并当发现进行读写操作的当前系统文件数据块是坏块时,反馈一错误信息。其中该错误信息可以是提示用户当前的系统文件数据块损坏,需要新建文件块以替换该系统文件数据块对应的内容,还可以是其他提示信息。
步骤S41,该系统文件处理单元16根据为坏块的系统文件数据块确定对应的扇区,即计算出队应的扇区号,该通用缓存单元15根据系统文件处理单元16确定的扇区查询坏道数据库中的索引信息,以判断该确定的扇区在坏道数据库中是否有具有匹配的映射扇区。若是,则进入步骤S42,否则进入步骤S43。
步骤S42,该通用缓存单元15还获取该匹配的映射扇区数据,该磁盘驱动单元14对该映射扇区数据进行相应地读写操作。然后,进入步骤S44。
步骤S43,通用缓存单元15直接获取该扇区对应数据,以供该磁盘驱动单元14进行相应地读写操作。然后,进入步骤S44。
步骤S44,当磁盘驱动单元14成功完成读写操作后将数据拷贝至当前扇区。然后,流程结束。
本发明提供的一种硬盘坏道监测恢复装置及方法,在系统初始化时由坏道管理单元在硬盘中划分出一用于存储坏道数据库的区域,当系统发起读写操作时,通用缓存单元通过检测坏道数据库以确定是否具有坏道映射信息,并当检索到坏道映射信息,则将扇区替换成坏道数据库中的扇区,以供磁盘驱动单元进行相应的读写操作。利用本发明,整个硬盘坏道监测及替换过程在系统内部自动运行,不需要将硬盘拆下来手动检测修复。同时,系统在监测替换硬盘坏道的同时可以正常运行,不影响其他业务。硬盘坏道替换后,系统不再访问坏道,可以延长硬盘的寿命。从而,本发明解决了现有的硬盘监测技术无法自动监测坏道以及无法自动替换坏道的技术问题。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。