基于嵌入式Linux的硬盘坏道监测方法及系统的制作方法

文档序号:6382333阅读:157来源:国知局
专利名称:基于嵌入式Linux的硬盘坏道监测方法及系统的制作方法
技术领域
本发明涉及计算机存储介质技术领域,特别涉及一种基于嵌入式Linux的硬盘坏道监测方法及系统。
背景技术
硬盘坏道可以说是硬盘致命性故障,出现硬盘坏道以后硬盘往往也就代表着硬盘生命结束,硬盘在出现坏道以后不但是某些坏扇区不可用,还会直接殃及到其它可用磁盘扇区,造成整块硬盘损坏。当硬盘出现坏道时,意味着存储数据会不安全。因此,及时的发现坏道可以将损失降到最低。硬盘产生坏道的原因有多种,如灰尘、震动、静电、高温等。但在实际使用中更加常见的原因主要是以下两个方面非法关机(即异常断电)导致;内存太少以致应用软件对硬盘频繁访问导致。一般情况下,开机硬盘检测往往耗时较多,会在一定程度上增加操作系统的启动时间。因此,只有在适当的情况下(例如非法断电之后、看门狗复位之后等等)对硬盘进行全面的检测,才不会对用户产生较大的影响。现有的硬盘监测技术主要包括AUT0FSCK、自我监测分析及报告技术(Self-Monitoring Analysis and Reporting Technology, S. M. A. R. T)和磁盘阵列(Redundant Arrays of Inexpensive Disks, RAID)AUT0FSCK是Linux提供一种非正常关机的自动磁盘修复功能,即AUT0FSCK。意外断电后,再启动时,磁盘自检。该方式类似于Windows下的硬盘自检功能,Linux操作系统认为除通过Reboot、halt、shutdown等系统命令进行的关机或者复位外,所有的重启状态均判定为非正常关机。但对于嵌入式Linux,尤其是在自研单板上执行的系统而言,往往会有逻辑复位等复位方式。对于特定的场景而言,这类复位操作被认为是正常复位,不希望由于文件系统自修复而增加启动时间。更重要的是,AUT0FSCK只能对文件系统进行修复,并不能对硬盘是否出现坏道等严重问题进行检测。S. M. A. R. T服务是目前检测硬盘最为全面的工具。支持S. M. A. R. T技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析和比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。它包括检测硬盘的坏道、温度、硬盘关闭次数等,但却缺少对硬盘10状态的监测。当系统可用内存过少,会出现应用软件频繁访问磁盘的状况,这也是导致硬盘出现坏道的重要因素。因此对硬盘10状态的监测是十分必要的。RAID原理是利用数组方式做磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢磁盘,组合成一个大型的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。同时利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(ParityCheck)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。但RAID成本较高,组成磁盘阵列需要两块以上的硬盘,对于ATCA(AdvancedTelecom Computing Architecture)架构下的刀片式板卡而言,将配置硬盘的板卡都替换为磁盘阵列,无疑会增加产品成本。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何实现一种低成本的、能够对硬盘坏道进行监测的方法。(二)技术方案为解决上述技术问题,本发明提供了一种基于嵌入式Linux的硬盘坏道监测方法,所述硬盘被划分为数据存储分区、备份分区及原始数据集区,所述原始数据集区中的原始数据集在开机启动时加载至内存,该方法包括步骤采集硬盘运行过程中的健康状态数据;将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道;若产生坏道,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送坏道信息报告。其中,所述方法在开机启动时进行,所述采集硬盘中数据存储分区运行过程中的健康状态数据之前还包括在操作系统启动时检测上一次复位是否为正常复位/下电,若为正常复位/下电,则直接启动操作系统;否则执行所述采集硬盘中数据存储分区运行过程中的健康状态数据及后续数据校验。其中,所述方法还包括若数据校验后,硬盘未产生坏道,则对硬盘文件系统主动修复,并发送上一次非正常复位/下电的报告。其中,所述操作系统启动时检测上一次复位是否为正常复位/下电的方式为检测根文件系统目录下是否有预设的正常复位/下电方式记录文件,若无该文件,则表明之前复位/下电正常;反之,则表示为非法复位/下电。其中,所述方法还包括在操作系统启动后创建并配置所述正常复位/下电方式记录文件,定义正常复位/下电方式;若按定义的正常复位/下电关闭,则在关闭前自动删除所述正常复位/下电方式记录文件。其中,所述方法在开机后进行,并定时采集硬盘中数据存储分区运行过程中的健康状态数据。其中,所述方法还包括定时获取硬盘的IO状态,判断IO等待时间比是否大于等于原始数据集中的预设阈值,若是,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。
其中,所述预设阈值为60% 100%。其中,所述IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。其中,所述坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小。本发明还提供了一种基于嵌入式Linux的硬盘坏道监测系统,所述硬盘被划分为数据存储分区、备份分区及原始数据集区,所述原始数据集区中的原始数据集在开机启动时加载至内存,该系统包括数据采集模块,用于采集硬盘运行过程中的健康状态数据;数据校验模块,用于将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道;数据备份模块,用于产生坏道时挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份,并发送坏道信息报告。其中,所述系统还包括复位检测模块,用于在操作系统启动时检测上一次复位是否为正常复位/下电,若为正常复位/下电,则直接启动操作系统;否则执行所述采集硬盘中数据存储分区运行过程中的健康状态数据及后续数据校验。其中,所述系统还包括文件修复模块,用于在非正常复位/下电,且数据校验后硬盘未产生坏道时对硬盘文件系统主动修复,并发送上一次非正常复位/下电的报告。其中,所述复位检测模块包括复位文件检测模块,用于检测根文件系统目录下是否有预设的正常复位/下电方式记录文件,若无该文件,则表明之前复位/下电正常;反之,则表示为非法复位/下电。其中,所述复位检测模块还包括复位文件配置模块,用于在操作系统启动后创建并配置所述正常复位/下电方式记录文件,定义正常复位/下电方式;复位文件删除模块,用于在按定义的正常复位/下电关闭,在关闭前自动删除所述正常复位/下电方式记录文件。其中,所述数据采集模块还用于定时采集硬盘中数据存储分区运行过程中的健康状态数据。其中,所述系统还包括IO状态检测模块,用于定时获取硬盘的IO状态,判断IO等待时间比是否大于等于原始数据集中的预设阈值,若是,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。其中,所述预设阈值为60% 100%。其中,所述IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。其中,所述坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小。
(三)有益效果本发明通过将硬盘划分为三个分区,检测到硬盘坏道时将数据存储分区的数据复制到备份分区生成镜像文件,实现了在非RAID模式下硬盘坏道进行监测、预警及修复,同时降低了成本。


图1是本发明实施例的一种基于嵌入式Linux的硬盘坏道监测方法中硬盘划分示意图;图2是本发明实施例的基于嵌入式Linux的硬盘坏道监测方法流程图;图3是本发明实施例的基于嵌入式Linux的硬盘坏道监测方法在操作系统启动时的具体流程图;图4是本发明实施例的基于嵌入式Linux的硬盘坏道监测方法在操作系统启动后的具体流程图;图5是本发明实施例的基于嵌入式Linux的硬盘坏道监测系统结构示意图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。如图1所示,在本发明的基于嵌入式Linux的硬盘坏道监测方法中,将硬盘分为3个分区数据存储分区、备份分区和原始数据集分区。数据存储分区为正常使用的硬盘分区,备份分区作为备用,不存放任何文件,除非发现数据存储分区出现坏道,否则不会对该分区进行任何读写操作。为了在后续转存数据时不用压缩数据而是更高效地直接存储,分区时使数据存储分区与备份分区大小相同。原始数据集分区用来存放原始数据集,原始数据集中定义了硬盘正常运行时的标准数据,即标识硬盘在安全状态下的指标参数的阈值范围,该指标可由用户进行自定义设置。当开机启动时会将原始数据集分区的原始数据集拷贝至内存中,提供给数据校验使用。本实施例的硬盘坏道监测方法具体流程如图2所示,包括 步骤S210,采集硬盘运行过程中的健康状态数据。通常由操作系统调用硬盘自身的S. M. A. R. T服务来采集硬盘运行过程中的健康状态数据(健康状态可以通过硬盘属性数据结构、自检数据结构获取,异常状态可以通过错误日志得到)。由于数据存储分区是硬盘上经常被读写的区域,容易产生坏道,因此,健康状态数据反映了硬盘中数据存储分区的健康状态。步骤S220,将采集到的健康状态数据与原始数据集中的标准数据进行数据校验。将采集到的数据与原始数据集中规定的指标参数的阈值范围比较,以判断硬盘是否产生坏道,若不在阈值范围内则表示硬盘出现坏道。步骤S230,若产生坏道,则挂载备份分区,将数据存储分区的数据在备份分区中备份生成镜像文件,并发送坏道信息报告。坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小等。镜像文件可以作为硬盘恢复数据使用。本实施例的硬盘坏道监测方法通过将硬盘划分为三个分区,检测到硬盘坏道时将数据存储分区的数据复制到备份分区生成镜像文件,相对与现有的RAID模式,降低了成本,且实现了硬盘坏道监测、预警及修复。该方法可以在操作系统开机时进行,也可以在操作系统运行过程中定时进行监测。当计算机非法关闭时,容易造成硬盘坏道,因此,当计算机再次启动时BIOS通常都会执行硬盘坏道检测。但BIOS默认的开机检测条件并不能满足特定的应用场景,对于嵌入式Linux,尤其是在自研单板上执行的系统而言,往往会有逻辑复位等复位方式。对于特定的场景而言,这类复位操作被认为是正常复位,不希望由于文件系统自修复而增加启动时间。为了适应特定场景,本实施例的硬盘坏道监测方法中通过预设的正常复位/下电方式记录文件来判断是否需要在开机时进行硬盘坏道检测。如在嵌入式Linux系统中,开机时通过预设在根文件系统的/root目录下的隐藏文件.auto_fsck来判断是否需要开机硬盘坏道检测。可以在.auto_fSck文件中自行定义某一种复位/下电方式为合法。本实施例的硬盘坏道监测方法在开机时的流程如图3所示。开机启动后,由引导程序加载操作系统内核和文件系统(若根文件系统/root目录下存在隐藏文件.auto_fsck,那么.auto_fsck文件也一并被加载到内存中)。判断/root目录下是否存在.auto_fsck文件,若不存在,则不需要在开机时进行硬盘坏道检测,直接启动操作系统,开机启动结束。操作系统启动后还包括在/root目录创建并配置.auto_fsck文件,即在该文件中自定义某些复位/下电方式为合法。若/root目录下存在.auto_fsck文件,则表明上一次复位为非正常复位/下电,需要进行如下硬盘坏道检测启动S.M. A. R. T服务采集硬盘运行过程中的健康状态数据并将采集的数据与原始数据集作比较,判断硬盘是否有坏道。若有坏道,则挂载备份分区,通过Linux的dd命令将数据存储区的数据向备份区中做整盘备份,生成镜像文件,并通过E-MAIL或短信方式将坏道信息报告上报,坏道信息报告包括坏道个数、所在位置及生成镜像文件的名称、路径和大小。若硬盘没有坏道,则Linux执行fsck命令对硬盘文件系统进行主动修复,并通过E-MAIL或短信方式将上次非法关机/复位操作作为告警上报。关机时,若按定义的正常复位/下电关闭,则在关闭前自动删除.auto_fsck文件,下次启动时/root目录下就不会存在.auto_fsck文件,开机时不会的进行硬盘坏道检测,节省了开机时间。由于开机启动后硬盘在运行过程中也可能产生坏道,如图4所示,开机启动后的硬盘坏道监测过程如下启动S.M. A. R. T服务,定时采集硬盘运行过程中的健康状态数据并将采集的数据与原始数据集作比较,判断硬盘是否有坏道。若有坏道,则挂载备份分区,通过Linux的dd命令将数据存储区的数据向备份区中做整盘备份,生成镜像文件,并通过E-MAIL或短信方式将坏道信息报告上报,坏道信息报告包括坏道个数、所在位置及生成镜像文件的名称、路径和大小。若硬盘没有坏道,则间隔一段时间后再采集硬盘运行过程中的健康状态数据并进行后续的判断。当系统可用内存过少,会出现应用软件频繁访问磁盘的状况,这也是导致硬盘出现坏道的重要因素,但s. M. A. R. T服务缺少对硬盘IO状态的监测。进一步地,本实施例还包括定时获取硬盘的IO状态,如在嵌入式Linux系统中通过iostat命令读取硬盘的IO状态。判断IO等待时间比(iowait)是否大于等于原始数据集中的预设阈值,若是,则挂载备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。其中,预设阈值为609^100%。即当IO等待时间比在60%以上通常认为磁盘访问非常频繁,预设阈值可以根据硬软件系统的配置可在60°/Γ 00%之间设定。上述方法通过将硬盘划分为三个分区数据存储分区、备份分区和原始数据集分区。由于备份分区通常不进行读写操作,因此不会产生坏道,检测到硬盘数据存储分区的坏道时将数据存储分区的数据复制到备份分区生成镜像文件,实现了在非RAID模式下硬盘坏道进行监测、预警及修复,而且降低了成本。本发明还提供了一种基于嵌入式Linux的硬盘坏道监测系统,其结构示意如图5 所示,硬盘被划分为数据存储分区、备份分区及原始数据集区,原始数据集区中的原始数据集在开机启动时加载至内存,该系统包括数据采集模块510,用于采集硬盘运行过程中的健康状态数据;数据校验模块520,用于将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道;数据备份模块530,用于产生坏道时挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份,并发送坏道信息报告。坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小。其中,该系统还包括复位检测模块,用于在操作系统启动时检测上一次复位是否为正常复位/下电,若为正常复位/下电,则直接启动操作系统;否则执行所述采集硬盘中数据存储分区运行过程中的健康状态数据及后续数据校验。该复位检测模块包括复位文件检测模块,用于检测根文件系统目录下是否有预设的正常复位/下电方式记录文件,若无该文件,则表明之前复位/下电正常;反之,则表示为非法复位/下电。其中,该系统还包括文件修复模块,用于在非正常复位/下电,且数据校验后硬盘未产生坏道时对硬盘文件系统主动修复,并发送上一次非正常复位/下电的报告。其中,复位检测模块还包括复位文件配置模块,用于在操作系统启动后创建并配置所述正常复位/下电方式记录文件,定义正常复位/下电方式;复位文件删除模块,用于在按定义的正常复位/下电关闭,在关闭前自动删除所述正常复位/下电方式记录文件。其中,所述数据采集模块还用于定时采集硬盘中数据存储分区运行过程中的健康状态数据。其中,所述系统还包括10状态检测模块,用于定时获取硬盘的IO状态,判断IO等待时间比是否大于等于原始数据集中的预设阈值,若是,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。该预设阈值为609Tl00%。IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述硬盘被划分为数据存储分区、备份分区及原始数据集区,所述原始数据集区中的原始数据集在开机启动时加载至内存,该方法包括步骤 采集硬盘运行过程中的健康状态数据; 将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道; 若产生坏道,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送坏道信息报告。
2.如权利要求1所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述方法在开机启动时进行,所述采集硬盘中数据存储分区运行过程中的健康状态数据之前还包括 在操作系统启动时检测上一次复位是否为正常复位/下电,若为正常复位/下电,则直接启动操作系统;否则执行所述采集硬盘中数据存储分区运行过程中的健康状态数据及后续数据校验。
3.如权利要求2所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述方法还包括 若数据校验后,硬盘未产生坏道,则对硬盘文件系统主动修复,并发送上一次非正常复位/下电的报告。
4.如权利要求2所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述操作系统启动时检测上一次复位是否为正常复位/下电的方式为检测根文件系统目录下是否有预设的正常复位/下电方式记录文件,若无该文件,则表明之前复位/下电正常;反之,则表示为非法复位/下电。
5.如权利要求4所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述方法还包括 在操作系统启动后创建并配置所述正常复位/下电方式记录文件,定义正常复位/下电方式; 若按定义的正常复位/下电关闭,则在关闭前自动删除所述正常复位/下电方式记录文件。
6.如权利要求1所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述方法在开机后进行,并定时采集硬盘中数据存储分区运行过程中的健康状态数据。
7.如权利要求1所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述方法还包括 定时获取硬盘的IO状态,判断IO等待时间比是否大于等于原始数据集中的预设阈值,若是,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。
8.如权利要求7所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述预设阈值为60% 100%。
9.如权利要求7所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。
10.如权利要求f8中任一项所述的基于嵌入式Linux的硬盘坏道监测方法,其特征在于,所述坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小。
11.一种基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述硬盘被划分为数据存储分区、备份分区及原始数据集区,所述原始数据集区中的原始数据集在开机启动时加载至内存,该系统包括 数据采集模块,用于采集硬盘运行过程中的健康状态数据; 数据校验模块,用于将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道; 数据备份模块,用于产生坏道时挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份,并发送坏道信息报告。
12.如权利要求11所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述系统还包括 复位检测模块,用于在操作系统启动时检测上一次复位是否为正常复位/下电,若为正常复位/下电,则直接启动操作系统;否则执行所述采集硬盘中数据存储分区运行过程中的健康状态数据及后续数据校验。
13.如权利要求12所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述系统还包括 文件修复模块,用于在非正常复位/下电,且数据校验后硬盘未产生坏道时对硬盘文件系统主动修复,并发送上一次非正常复位/下电的报告。
14.如权利要求12所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述复位检测模块包括 复位文件检测模块,用于检测根文件系统目录下是否有预设的正常复位/下电方式记录文件,若无该文件,则表明之前复位/下电正常;反之,则表示为非法复位/下电。
15.如权利要求14所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述复位检测模块还包括 复位文件配置模块,用于在操作系统启动后创建并配置所述正常复位/下电方式记录文件,定义正常复位/下电方式; 复位文件删除模块,用于在按定义的正常复位/下电关闭,在关闭前自动删除所述正常复位/下电方式记录文件。
16.如权利要求11所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述数据采集模块还用于定时采集硬盘中数据存储分区运行过程中的健康状态数据。
17.如权利要求11所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述系统还包括 IO状态检测模块,用于定时获取硬盘的IO状态,判断IO等待时间比是否大于等于原始数据集中的预设阈值,若是,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送IO故障报告。
18.如权利要求17所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述预设阈值为60% 100%。
19.如权利要求17所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述IO故障报告包括当前硬盘的IO状态及生成镜像文件的名称、路径和大小。
20.如权利要求1f18中任一项所述的基于嵌入式Linux的硬盘坏道监测系统,其特征在于,所述坏道信息报告包括坏道个数、所在硬盘上的位置及生成镜像文件的名称、路径和大小。
全文摘要
本发明涉及计算机存储介质技术领域,公开了一种基于嵌入式Linux的硬盘坏道监测方法,所述硬盘被划分为数据存储分区、备份分区及原始数据集区,所述原始数据集区中的原始数据集在开机启动时加载至内存,该方法包括步骤采集硬盘运行过程中的健康状态数据;将采集到的健康状态数据与原始数据集中的标准数据进行数据校验,以判断硬盘是否产生坏道;若产生坏道,则挂载所述备份分区,将所述数据存储分区的数据在所述备份分区中备份生成镜像文件,并发送坏道信息报告。本发明还公开了一种基于嵌入式Linux的硬盘坏道监测系统。本发明实现了在非RAID模式下硬盘坏道进行监测、预警及修复,同时降低了成本。
文档编号G06F11/14GK103019885SQ20121048876
公开日2013年4月3日 申请日期2012年11月26日 优先权日2012年11月26日
发明者谭鹏 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1