对存储设备中数据进行巡检的方法、设备及系统的制作方法

文档序号:6384714阅读:173来源:国知局
专利名称:对存储设备中数据进行巡检的方法、设备及系统的制作方法
技术领域
本发明涉及电子设备领域,尤其涉及一种对存储设备中数据进行巡检的方法、设备及系统。
背景技术
随着电子技术的发展,用于存储电子数据的存储设备已成为人们生活和工作中不可或缺的产品,尤其是存取速度快、抗震性好的存储设备。例如,通过电量存储数据的固态硬盘(Solid State Drive, SSD)以及采用快闪记忆颗粒(NandFlash)的其他存储设备等。与此同时,如何延长存储设备的使用寿命也是业界的重要研究课题。存储设备通常是通过电量存储数据的,而数据写入硬盘后,随着时间的推移电量会慢慢流逝,导致数据衰退从而存在数据丢失的风险。随着存储设备被擦写的次数增多,电量流失的速度便越快,存储设备中数据能保存的持续时间会缩短。当存储设备不能保证写入的数据长时间有效时,其使用寿命也就结束了。为了延长存储设备的使用寿命,通常会采用对存储设备中的数据进行巡检的办法。具体的,设定一个固定的巡检周期,每隔一段固定时长就将存储设备中的数据读取出来,再重新写入,写入的过程相当于是给Nand Flash充满了电,从而使得数据又可继续保存一段时间。以此类推,如果总是能够在数据失效前将数据读出并重新写入,该设备便可以继续使用,不会发生数据丢失的问题,也就是说存储设备的实际使用时间便可比厂商标定的寿命更长。在实现上述对存储设备中数据进行巡检的过程中,发明人发现现有技术中至少存在如下问题由于巡检会对存储设备重新擦写,巡检周期的长短直接影响擦写次数,对硬盘的性能有很大的影响。如果巡检过于频繁,会影响存储设备的读写性能,并且对存储设备上正在进行的读写业务造成影响;而如果巡检较少,则可能造成存储设备中的数据失效的风险。

发明内容
本发明的实施例提供一种对存储设备中数据进行巡检的方法、设备及系统,能够合理调整巡检周期,从而可以既不过多影响存储设备性能,又能保证存储设备中的数据有效。为达到上述目的,本发明的实施例采用如下技术方案本发明的第一方面,提供一种对存储设备中数据进行巡检的方法,包括获取所述存储设备的已擦写次数;根据所述已擦写次数确定巡检时间间隔;按照所述巡检时间间隔对所述存储设备中的数据进行巡检。结合本发明的第一方面,在第一种可能的实现方式中,在根据所述已擦写次数确定巡检时间间隔之后,所述方法还包括
根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式;若所述已擦写次数不高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第一巡检模式对所述存储设备中的数据进行巡检;所述第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。结合本发明的第一方面和第一种可能的实现方式,在第二种可能的实现方式中,所述巡检模式还包括第二巡检模式,所述方法还包括若所述已擦写次数高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第二巡检模式对所述存储设备中的数据进行巡检;所述第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。结合本发明的第一方面以及上述任一种可能的实现方式,在第三种可能的实现方式中,所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检,包括获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息;对所述当前需要进行巡检的存储块中的数据进行巡检;对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。结合本发明的第一方面和第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检;当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。结合本发明的第一方面和第五种可能的实现方式,在第六种可能的实现方式中,当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息;根据所述启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。结合本发明的第一方面和第五种可能的实现方式,在第六种可能的实现方式中,所述当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检,包括当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。本发明的第二方面,提供一种对存储设备中数据进行巡检的设备,包括获取单元,用于获取所述存储设备的已擦写次数;确定单元,用于根据所述获取单元获取的已擦写次数确定巡检时间间隔;巡检单元,用于按照所述确定单元确定的巡检时间间隔对所述存储设备中的数据进行巡检。结合本发明的第二方面,在第一种可能的实现方式中,该设备还包括模式单元,用于在所述确定单元根据所述已擦写次数确定巡检时间间隔之后,根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式;所述巡检单元,还用于当所述模式单元确定所述已擦写次数不高于预定的次数时,采用第一巡检模式对所述存储设备中的数据进行巡检;所述巡检单元采用的第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。结合本发明的第一方面和第一种可能的实现方式,在第二种可能的实现方式中,所述巡检模式还包括第二巡检模式;所述巡检单元,还用于当所述模式单元确定所述已擦写次数高于预定的次数时,采用第二巡检模式对所述存储设备中的数据进行巡检;所述巡检单元采用的第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。结合本发明的第二方面和上述任一种可能的实现方式,在第三种可能的实现方式中,所述巡检单元包括确定子单元,用于获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息;巡检子单元,对所述确定子单元确定的所述当前需要进行巡检的存储块中的数据进行巡检;更新子单元,用于当所述巡检子单元对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被所述巡检子单元巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。结合本发明的第二方面和上述第三种可能的实现方式,在第四种可能的实现方式中,该设备还包括启动获取单元,用于当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息;所述巡检单元,还用于根据所述启动获取单元获取的启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。结合本发明的第二方面和第四种可能的实现方式,在第五种可能的实现方式中,所述巡检单元还用于
当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检;当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。结合本发明的第二方面和第五种可能的实现方式,在第六种可能的实现方式中,所述巡检单元还用于当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。本发明的第三方面,提供一种对存储设备中数据进行巡检的系统,包括对存储设备中数据进行巡检的设备;以及,至少一个所述存储设备;所述对存储设备中数据进行巡检的设备,用于获取所述存储设备的已擦写次数;根据所述已擦写次数确定巡检时间间隔;按照所述巡检时间间隔对所述存储设备中的数据进行巡检。本发明的第四方面,提供一种固态硬盘,包括控制芯片和存储介质;其中,所述控制芯片,用于获取所述存储介质的已擦写次数;根据所述已擦写次数确定巡检时间间隔;按照所述巡检时间间隔对所述存储介质中的数据进行巡检。本发明实施例提供的对存储设备中数据进行巡检的方法、设备及系统,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的方法相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明的实施例的一种对存储设备中数据进行巡检的系统组成示意图;图2为本发明一实施例中的一种对存储设备中数据进行巡检的方法流程图;图3为本发明另一实施例中的一种对存储设备中数据进行巡检的方法流程图;图4为本发明另一实施例中的一种按照巡检时间间隔对存储块进行巡检的示意图;图5为本发明另一实施例中的一种巡检被中断并重新启动后的巡检方法流程图;图6为本发明另一实施例中的一种对存储设备中数据进行巡检的设备;图7为本发明另一实施例中的一种对存储设备中数据进行巡检的设备;图8为本发明另一实施例中的一种固态硬盘的组成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本说明书中所描述的存储设备是指具有Nand Flash的设备,例如固态硬盘(SolidState Drive, SSD)等。本发明的方法主要应用与对具有Nand Flash的存储设备中数据的巡检过程中。如图1所示的应用场景中,控制单元与多个存储设备相连,负责执行巡检流程,在控制单元中可以包含内存,以便在巡检时将从存储设备中读出的数据暂时存放在内存中。一个控制单元可以同时控制一个或多个存储设备的巡检。例如,利用多个固态硬盘组成的存储阵列的控制器作为控制单元,存储阵列中的固态硬盘作为所述存储设备。另外,本发明的实施例还可以应用于SSD的内部,由SSD内部的控制芯片执行巡检流程,对SSD内部的存储介质中的数据进行巡检。进一步的,还可以将SSD内部的存储介质进行分块巡检等等,对于本发明的其他应用场景,本说明书不作一一列举。本发明一实施例提供一种对存储设备中数据进行巡检的方法,如图2所示,包括101、获取所述存储设备的已擦写次数。其中,已擦写次数是指对存储设备的同一个地址空间写入数据的次数。由于存储设备的存储原理和特性,被擦写的次数越多存储颗粒的储电能力越差,电量流失越快,会导致数据有效保存的时间缩短。因此,根据已擦写次数的不同,为存储设备选定不同的巡检时间间隔,在数据失效之前进行巡检,可以有效保证存储设备中的数据不会丢失。102、根据所述已擦写次数确定巡检时间间隔。其中,对存储设备中数据进行巡检的设备可以每隔所述巡检时间间隔,便对存储设备中的数据进行巡检。进一步的,还可以将存储设备的存储空间划分为至少两个存储块,从而可以按照巡检时间间隔分别巡检各个存储空间,从而尽量不影响存储设备的读写业务,并且可以避免对整个存储设备反复巡检导致存储设备被频繁擦写,从而减轻对存储设备的性能折损。103、按照所述巡检时间间隔对所述存储设备中的数据进行巡检。其中,巡检模式可以根据存储设备被擦写的次数确定,若所述已擦写次数不高于预定的次数,则采用第一巡检模式对所述存储设备中的数据进行巡检;若所述已擦写次数高于预定的次数,则采用第二巡检模式对所述存储设备中的数据进行巡检。所述第一巡检模式可以为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备;所述第二巡检模式可以为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。进一步的,为了保证当巡检被中断并重新启动后数据不会丢失,可以采取紧急的巡检模式获取重新启动巡检的启动时间信息;根据所述启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并优先对所述已错过巡检的存储块中的数据进行巡检。若无法获取所述启动时间信息,则对所述存储设备中全部存储块中的数据进行巡检。
进一步的,还可以配合业务进程对存储设备的读写操作,对数据进行巡检,从而减少因巡检而造成的对存储设备的擦写次数。具体的,当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检;当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。更进一步的,当所述业务进程读取存储块中的数据时,还可以设定预定阈值以判断本次业务进行的读取操作是否具有巡检价值。若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。本发明实施例提供的对存储设备中数据进行巡检的方法,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的方法相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。本发明另一实施例提供一种对存储设备中数据进行巡检的方法,如图3所示,包括201、获取所述存储设备的已擦写次数。其中,可以在存储设备每一次被擦写时增加一次计数,从而统计得到所述存储设备被擦写的次数,作为已擦写次数;或者,也可以采用更简便和节约的抽样统计方式,例如间隔地统计一定时长内存储设备被擦写的次数,得到平均擦写频率,平均擦写频率和该存储设备已使用的时长的乘积即为已擦写次数。值得说明的是,已擦写次数可以不是一个精确值,能够反映存储设备性能折损的情况即可。例如,一般的固态硬盘的标定使用寿命为允许擦写3000到10000次,统计的已擦写次数可以精确到十位或者精确到百位,从而反映固态硬盘的数据可以保持有效的时长。202、根据所述已擦写次数确定巡检时间间隔。其中,可以预先人为地设定已擦写次数与巡检时间间隔之间的对应关系,因为数据失效的速度随擦写次数增多而便得更快,所以已擦写次数越多,巡检时间间隔应越短。例如,当固态硬盘的已擦写次数在标定使用寿命10000次以内,巡检时间间隔为2年,当已擦写次数超过该固态硬盘的标定寿命时,已擦写次数每增加1000则巡检时间间隔减少I天。或者,也可以设定已擦写次数与巡检时间间隔的映射关系表,已擦写次数小于10000次对应巡检时间间隔为2年,已擦写次数大于10000次小于15000次对应巡检时间为1. 5年,已擦写次数大于15000次小于20000次对应巡检时间未I年,等等。或者,根据标定使用寿命和已擦写次数也可以计算剩余擦写次数,剩余擦写次数越少,巡检时间间隔应越短。当然,以上列出的根据已擦写次数确定巡检时间间隔的方式仅为举例,还可以以其他形式确定,本发明实施例对此不做限定。在本实施例中,巡检时间间隔是可以随着存储设备被擦写的次数而动态调整的,用于控制巡检的频率。例如,第一次巡检后再间隔所述巡检时间间隔,便可以执行第二次巡检,以此类推。进一步的,由于已擦写次数较多的存储设备中数据的正确保留时间会很短,为了避免已擦写次数较多的存储设备中数据丢失,可以对已擦写次数较少的存储设备和已擦写次数较多的存储设备采用不同的巡检模式,具体如下。203、根据所述已擦写次数确定巡检模式;若所述已擦写次数不高于预定的次数,则执行步骤204,采用第一巡检模式对所述存储设备中的数据进行巡检;若所述已擦写次数高于预定的次数,则执行步骤207,采用第二巡检模式对所述存储设备中的数据进行巡检。其中,对于已擦写次数较少的存储设备,可以采用第一巡检模式,所述第一巡检模式可以为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。对于已擦写次数较多的存储设备,可以采用第二巡检模式,所述第二巡检模式可以为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。可以理解的是,用于判断采用何种巡检模式的所述预定的次数,也是可以人为设定的。例如,某固态硬盘的标定使用寿命是可擦写10000次,已擦写次数超过30000次的时候固态硬盘已经是老旧硬盘了,老旧硬盘中的数据被正确存储的期限可能只有几个小时,因此可以每隔一个巡检时间间隔便将数据读出,不再进行校验和修正,直接重新写入到固态硬盘中。这样,等于是给固态硬盘的nand flash充满电量,延长数据保存的时间。进一步的,由于巡检需要对整个存储设备的存储内容周期性的读取和擦写,对存储设备本身的使用寿命造成损耗,并且读取和写入全部的数据需要大量占用传输带宽,对存储设备的正常业务读写也造成干扰。因此,可以所述存储设备的存储空间被划分为至少两个存储块,按照巡检时间间隔对存储设备中的数据进行分块巡检。存储块可以按照存储地址进行划分,例如8MB的固态硬盘可以每IMB划分为一个存储块,从而将固态硬盘划分为8个存储块。204、按照所述巡检时间间隔读取存储块中的数据并进行校验。具体的,所述存储设备被划分为至少两个存储块,每个存储块分别配置有与各个存储块对应的巡检时间信息。按照所述巡检时间间隔读取存储块中的数据并进行校验的方法可以为获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;对所述当前需要进行巡检的存储块中的数据进行巡检。当任一存储块的最近一次对存储块中的数据进行巡检的时间加上巡检时间间隔,若大于或等于当前时间,则需要立即对该存储块中的数据进行巡检。其中,巡检设备可以通过自身的实时时钟(Real-Time Clock, RTC)获取当前时刻的时间信息,也可以是通过与巡检设备联网的其他设备获取的当前时刻的时间信息,或者可以通过其他设备获取初始时间信息,再通过巡检设备内部的RTC或通过巡检设备所处的操作系统的时钟进行相对计时。所述存储块的巡检时间信息,可以为该存储块最近一次被巡检的时间,也可以是该存储块下一次预计进行巡检的时间。下一次进行巡检的时间可以为最近一次被巡检的时间加上巡检时间间隔。当前时间信息和存储块的巡检时间信息,均可以为时分秒的形式。例如,如图4所示,可以按照时间轴的形式,采用最少最近使用算法(LeastRecently Used, LRU)进行计算。图中ABCDEFG为固态硬盘按照地址空间划分得到的8个存储块,在图中标示了每个存储块最近一次巡检的时间。由于存储块A上一次巡检的时间是I点整,是8个存储块中最久没有巡检的存储块。因此,接下来将要巡检的存储块是存储块A。假设存储设备的巡检时间间隔为10小时,则11点整将对存储块A再次巡检。可以理解的是,本发明实施例中仅以时间轴的具体管理形式进行举例,还可以使用链表的方式或其他形式的时序管理方法进行管理,本发明实施例这里不做限定。205、根据校验结果确定是否将校验后的数据写入所述存储块;若校验结果表明需要将校验后的数据写入所述存储块,则执行步骤206 ;若校验结果表明不需要将校验后的数据写入所述存储块,则继续执行步骤204,进行时间管理。其中,对数据进行校验和纠错是现有技术,在这里仅做简要介绍。存储到存储设备中的数据可以带有冗余校验位,在冗余校验位中标记数据的规律和特征。例如,数据都是由O和I组成的,可以在每7位的后面带有I个冗余位,用于标记这7位中I的个数是奇数还是偶数,这样进行校验时便可根据I的个数判断这7位数据是否有错误。当然,实际应用中的校验和纠正算法有很多,比上述校验例子复杂,纠错能力也更强,常用的有错误检查和纠正(ErrorChecking and Correcting, ECC)校验等,本发明实施例对此不做限定。可选的,可以只要校验结果表明读取的数据中有错误,便对数据中的错误进行纠正,并将校验后的数据重新写入到该存储块中。或者,也可以根据校验结果确定是否将数据写入存储块,因为从存储块中读取的数据可能没有错误或者错误很少,此时为了减少擦写次数,造成存储设备的寿命损耗,可以预先设定一个值得进行擦写的校验阈值,当校验结果表明存储块中的数据错误率超过校验阈值时,将校验后的数据重新写入存储设备;反之,若校验结果表明存储块中的数据错误率并未超过校验阈值,则可以不对存储块进行擦写。206、将校验后的数据写入所述存储块,更新被巡检的所述存储块的巡检时间信肩、O其中,校验的过程不仅包括发现数据的错误,还包括对发现的错误进行纠正,因此将校验后的数据写入存储块中。所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。更新被巡检的所述存储块的巡检时间信息,以便继续通过步骤204对各个存储块进行时间管理。例如,如图4中所示,在11点整对存储块A中的数据进行巡检后更新存储块A的巡检时间信息,这样下一次将在21点整对存储块A进行再次巡检。207、按照所述巡检时间间隔读取所述存储块中的数据,并重新写入所述存储块,更新所述存储块的巡检时间信息。其中,对于已擦写次数较多的老旧存储设备,数据正确保存的时间可能很短,因此可以按照存储块的巡检时间信息,每间隔一个巡检时间间隔,便将存储块中的数据读取出来并重新写入,从而对nand flash充电,避免数据丢失。进一步的,为了减少因巡检而造成的对存储设备的擦写次数,还可以配合业务进程对存储设备的读写操作对数据进行巡检,业务进程读取和写入数据时巡检的策略不同,具体如下。208、当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检。其中,可以在每次业务进行读取存储块中的数据时,都触发巡检。如果业务进程读取的数据占满整个存储块,则可以直接对业务进行读取出来的数据进行巡检。如果业务进程读取的数据未占满整个存储块,也可以进行巡检,将该存储块中的数据全部读取出,仅将业务进程所需的数据发送给业务处理设备,同时对读取出来的完整存储块的数据进行巡检。具体巡检模式可以是第一巡检模式,也可以是第二巡检模式。这样,便可以在业务进程读取数据的同时实现巡检对数据的读取,减少了巡检对传输接口的占用,提高了存储设备的业务效率。进一步的,如果业务进程频繁读取存储块中的业务数据,将可能导致巡检过于频繁,为了避免巡检过于频繁,可以设定一个值得进行巡检的预定阈值判断业务进程读取存储块中数据时,是否有必要进行巡检。当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。例如,存储块A的存储空间时1MB,可以设定预定阈值为50%,当读取的数据超过50%时才对存储块A中的数据进行巡检。若业务进程读取了存储块A中的O. 3MB,则不进行巡检,若业务进程需要读取存储块A中的O. 8MB数据,则可以将另外的O. 2MB也一并读出,将业务进程所需数据提供给业务进程的处理设备,对IMB的存储块A中的数据进行巡检。209、当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。例如,业务进程向存储块A中写入O. 6MB的数据,此时仅对存储块A的一部分nandflash进行了充电,可以持续较长时间保证数据不丢失。但是,对于剩余的O. 4MB未被业务进程擦写的数据,在达到巡检时间间隔后还是存在丢失的风险。因此,不能更新存储块A的巡检时间信息,需要按期对存储块A进行下次巡检。然而,当业务进程向存储块A中写入了 IMB数据时,存储块A的全部nandf Iash均被重新充电,可以持续较长时间保证数据不丢失,可以将下次巡检的时间推迟一个巡检时间间隔,更新存储块A的巡检时间信息。进一步的,在执行上述201-209的数据巡检过程中,如果在其中任何一个步骤发生异常,例如对存储设备中数据进行巡检的设备断电了等等。由于设备断电后巡检被中断的时间不可预期,重新上电后可以采用以下方法对数据进行紧急保护,执行以下步骤210。如图5所示,本发明实施例提供的对存储设备中数据进行巡检的方法还可以包括210、当巡检被中断并重新启动后,获取启动时间信息;若成功获取启动时间信息,则执行步骤211 ;若获取启动时间信息失败,则执行步骤213。其中,所述启动时间信息为重新启动巡检的时间信息。获取启动时间信息的方法可以为对存储设备中数据进行巡检的巡检设备自带应急电池,可以通过自身的实时时钟(Real-Time Clock,RTC)获取启动时间信息;或者,巡检设备可以从联网的其他设备获取启动时间信息,例如存储设备上的RTC可以提供当前时间信息;或者,巡检设备自身不带应急电池,也可以在上电时从其他联网设备获取初始时间,然后通过巡检设备内部的RTC或巡检设备所处的操作系统的时钟维持实时时间。211、根据所述启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块;若有已错过巡检的存储块,则执行步骤212 ;若没有已错过巡检的存储块,则执行步骤204或207。其中,判断是否存在错过巡检的存储块的方法可以为以任一存储块为例,最近一次对存储块中的数据进行巡检的时间与所述启动时间之间的实际间隔,若大于或等于所述巡检时间间隔,则该存储块已错过巡检;若最近一次对存储块中的数据进行巡检的时间与所述启动时间之间的实际间隔,小于所述巡检时间间隔,则该存储块没有错过巡检。类似的对每一个存储块的巡检时间信息进行判断,确定是否存在错过巡检的存储块。例如,如图5中的上图所示为断电之前各个存储块最后一次巡检的时间,巡检时间间隔为10小时,若重新上电的启动时间为12点半,则存储块A和存储块B已错过巡检,而其他存储块没有错过巡检。因此需要优先对存储块A和B中的数据进行巡检。其中,由于步骤210-213是对于巡检发生异常后的紧急巡检方式,若存储设备中没有错过巡检的存储块,或者已经将错过巡检的存储块都巡检过了之后,可以恢复到正常的巡检方式,按照每个存储块的巡检时间间隔对各个存储块中的数据进行巡检。由于对于已被擦写的次数不同的存储设备,巡检的模式不同,恢复到正常巡检方式时也可以按照步骤203中确定的第一巡检模式执行步骤204,或者按照第二巡检模式执行步骤207。212、优先对所述已错过巡检的存储块中的数据进行巡检。其中,优先对已错过巡检的存储块中的数据进行巡检,是指对已错过巡检的存储块中的数据进行读取和擦写时,不用限定读取和写入的速度,也就是说由于巡检发生异常的持续时间是不可预估的,此时的数据失效的可能性比较大,需要尽快地及时地巡检,因此可以尽可能的占用传输接口提高对已错过巡检的存储块的巡检效率,避免数据丢失。213、对所述存储设备中全部存储块中的数据进行巡检。其中,基于与步骤212类似的理由,由于巡检发生异常的持续时间是不可预估的,当无法正确获取启动时间信息时,为了避免数据丢失,可以不限定读取和写入的速度,对存储设备中全部存储块中的数据进行巡检。本发明实施例提供的对存储设备中数据进行巡检的方法,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的方法相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。本发明另一实施例提供一种对存储设备中数据进行巡检的设备,可以是对应于多个存储设备的控制器,也可以是一个存储设备内部的控制芯片。如图6所示,该对存储设备中数据进行巡检的设备包括获取单元31、确定单元32、巡检单元33。获取单元31,用于获取所述存储设备的已擦写次数;确定单元32,用于根据所述获取单元31获取的已擦写次数确定巡检时间间隔;巡检单元33,用于按照所述确定单元32确定的巡检时间间隔对所述存储设备中的数据进行巡检。进一步的,该设备还包括模式单元34。模式单元34,用于在所述确定单元32根据所述已擦写次数确定巡检时间间隔之后,根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式;所述巡检单元33,还用于当所述模式单元34确定所述已擦写次数不高于预定的次数时,采用第一巡检模式对所述存储设备中的数据进行巡检;所述巡检单元采用的第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。进一步的,所述巡检模式还包括第二巡检模式;所述巡检单元33,还用于当所述模式单元34确定所述已擦写次数高于预定的次数时,采用第二巡检模式对所述存储设备中的数据进行巡检;所述巡检单元33采用的第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。进一步的,所述巡检单元33包括确定子单元331、巡检子单元332、更新子单元333。确定子单元331,用于获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息;巡检子单元332,对所述确定子单元331确定的所述当前需要进行巡检的存储块中的数据进行巡检;更新子单元333,用于当所述巡检子单元332对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被所述巡检子单元巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。进一步的,该设备还包括启动获取单元35。启动获取单元35,用于当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息;所述巡检单元33,还用于根据所述启动获取单元35获取的启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。进一步的,所述巡检单元33还用于当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检;当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。进一步的,所述巡检单元33还用于当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。本发明实施例提供的对存储设备中数据进行巡检的设备,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的技术相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。
本发明另一实施例提供一种对存储设备中数据进行巡检的设备,如图7所示,包括处理器41和存储器42。处理器41,用于获取所述存储设备的已擦写次数;根据所述已擦写次数确定巡检时间间隔;按照所述巡检时间间隔对所述存储设备中的数据进行巡检。所述存储器42,用于存放巡检时从所述存储设备中读取出来的数据。进一步的,所述处理器41,还用于在根据所述已擦写次数确定巡检时间间隔之后,根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式;若所述已擦写次数不高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第一巡检模式对所述存储设备中的数据进行巡检;所述第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。进一步的,所述巡检模式还包括第二巡检模式,所述处理器41,还用于若所述已擦写次数高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第二巡检模式对所述存储设备中的数据进行巡检;所述第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。具体的,所述处理器41,还用于获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息;对所述当前需要进行巡检的存储块中的数据进行巡检;对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。进一步的,所述处理器41,还用于当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息;根据所述启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。进一步的,所述处理器41,还用于当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检;当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。进一步的,所述处理器41,具体还用于当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检;若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。本发明实施例提供的对存储设备中数据进行巡检的设备,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的技术相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。
本发明另一实施例提供一种固态硬盘,如图8所示,该固态硬盘可以包括控制芯片51和存储介质52。其中,所述控制芯片,用于执行如上述方法实施例中所描述的巡检操作,以对所述存储介质中的数据进行巡检。本发明另一实施例提供一种对存储设备中数据进行巡检的系统,如图1所示,包括对存储设备中数据进行巡检的设备,即控制单元;以及至少一个存储设备。本发明实施例提供的固态硬盘和对存储设备中数据进行巡检的系统,根据存储设备的已擦写次数确定对数据进行巡检的巡检时间间隔,与现有技术中采用固定周期对数据进行巡检的技术相比,可以合理调整巡检周期,从而不仅能在数据失效前及时对数据进行巡检,避免数据丢失,还可以避免巡检过于频繁,尽可能的降低对存储设备的擦写次数,减少巡检对存储设备性能造成的折损。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种对存储设备中数据进行巡检的方法,其特征在于,包括 获取所述存储设备的已擦写次数; 根据所述已擦写次数确定巡检时间间隔; 按照所述巡检时间间隔对所述存储设备中的数据进行巡检。
2.根据权利要求1所述的对存储设备中数据进行巡检的方法,其特征在于,在根据所述已擦写次数确定巡检时间间隔之后,所述方法还包括 根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式; 若所述已擦写次数不高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第一巡检模式对所述存储设备中的数据进行巡检;所述第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。
3.根据权利要求2所述的对存储设备中数据进行巡检的方法,其特征在于,所述巡检模式还包括第二巡检模式,所述方法还包括 若所述已擦写次数高于预定的次数,则所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检为采用第二巡检模式对所述存储设备中的数据进行巡检; 所述第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。
4.根据权利要求1-3中任一项所述的对存储设备中数据进行巡检的方法,其特征在于,所述按照所述巡检时间间隔对所述存储设备中的数据进行巡检,包括 获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息; 对所述当前需要进行巡检的存储块中的数据进行巡检; 对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。
5.根据权利要求4所述的对存储设备中数据进行巡检的方法,其特征在于,还包括 当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息; 根据所述启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。
6.根据权利要求4所述的对存储设备中数据进行巡检的方法,其特征在于,还包括 当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检; 当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。
7.根据权利要求6所述的对存储设备中数据进行巡检的方法,其特征在于,所述当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检,包括当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检; 若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。
8.一种对存储设备中数据进行巡检的设备,其特征在于,包括 获取单元,用于获取所述存储设备的已擦写次数; 确定单元,用于根据所述获取单元获取的已擦写次数确定巡检时间间隔; 巡检单元,用于按照所述确定单元确定的巡检时间间隔对所述存储设备中的数据进行巡检。
9.根据权利要求8所述的对存储设备中数据进行巡检的设备,其特征在于,还包括 模式单元,用于在所述确定单元根据所述已擦写次数确定巡检时间间隔之后,根据所述已擦写次数确定巡检模式;其中,所述巡检模式至少包括第一巡检模式; 所述巡检单元,还用于当所述模式单元确定所述已擦写次数不高于预定的次数时,采用第一巡检模式对所述存储设备中的数据进行巡检;所述巡检单元采用的第一巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据并进行校验,根据校验结果确定是否将校验后的数据写入所述存储设备。
10.根据权利要求9所述的对存储设备中数据进行巡检的设备,其特征在于,所述巡检模式还包括第二巡检模式; 所述巡检单元,还用于当所述模式单元确定所述已擦写次数高于预定的次数时,采用第二巡检模式对所述存储设备中的数据进行巡检;所述巡检单元采用的第二巡检模式为按照所述巡检时间间隔读取所述存储设备中的数据,并重新写入所述存储设备。
11.根据权利要求8-10中任一项所述的对存储设备中数据进行巡检的设备,其特征在于,所述巡检单元包括 确定子单元,用于获取当前时间信息,并根据所述当前时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定当前需要进行巡检的存储块;其中,所述存储设备的存储空间被划分为至少两个存储块,每个存储块分别配置有巡检时间信息; 巡检子单元,对所述确定子单元确定的所述当前需要进行巡检的存储块中的数据进行巡检; 更新子单元,用于当所述巡检子单元对所述当前需要进行巡检的存储块中的数据进行巡检后,更新被所述巡检子单元巡检的所述存储块的巡检时间信息;其中,所述巡检时间信息包括最近一次巡检所述存储块的时间,或根据所述最近一次巡检所述存储块的时间和所述巡检时间间隔计算得到的下一次巡检所述存储块的时间。
12.根据权利要求11所述的对存储设备中数据进行巡检的设备,其特征在于,还包括 启动获取单元,用于当巡检被中断并重新启动后,获取启动时间信息;其中所述启动时间信息为重新启动巡检的时间信息; 所述巡检单元,还用于根据所述启动获取单元获取的启动时间信息、每个存储块的巡检时间信息以及所述巡检时间间隔,确定已错过巡检的存储块,并对所述已错过巡检的存储块中的数据进行巡检。
13.根据权利要求11所述的对存储设备中数据进行巡检的设备,其特征在于,所述巡检单元还用于 当业务进程读取存储块中的数据时,对所述业务进程读取的存储块中的数据进行巡检; 当业务进程向存储块写入数据,并且所述业务进程写入的数据覆盖所述存储块时,更新所述存储块的巡检时间信息。
14.根据权利要求13所述的对存储设备中数据进行巡检的设备,其特征在于,所述巡检单元还用于 当所述业务进程读取存储块中的数据时,若所述业务进程读取的数据占所述存储块的存储空间的比例大于预定阈值时,对所述存储块中的数据进行巡检; 若所述业务进程读取的数据占所述存储块的存储空间的比例不大于预定阈值时,暂时不对所述存储块中的数据进行巡检,而是按照所述存储块的巡检时间信息对所述存储块中的数据进行巡检。
15.一种对存储设备中数据进行巡检的系统,其特征在于,包括 如权利要求8-14中任一项所述的对存储设备中数据进行巡检的设备; 以及,至少一个所述存储设备。
16.一种固态硬盘,其特征在于,包括 控制芯片和存储介质; 其中,所述控制芯片,用于执行如权利要求1-7中任一项中所述的操作,以对所述存储介质中的数据进行巡检。
全文摘要
本发明公开了一种对存储设备中数据进行巡检的方法、设备及系统,涉及电子设备领域,能够合理调整巡检周期,从而可以既不过多影响存储设备性能,又能保证存储设备中的数据有效。本发明的方法主要包括获取所述存储设备的已擦写次数;根据所述已擦写次数确定巡检时间间隔;按照所述巡检时间间隔对所述存储设备中的数据进行巡检。本发明的实施例主要用于对存储设备中数据进行巡检的过程中。
文档编号G06F21/78GK103049713SQ20121055508
公开日2013年4月17日 申请日期2012年12月20日 优先权日2012年12月20日
发明者乐阳, 林春恭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1