本发明涉及计算机存储技术领域,特别是涉及一种固态硬盘数据巡检的优化方法及装置。
背景技术:
目前,随着云计算、物联网和半导体技术的进展,固态硬盘作为新的一代存储广泛应用在各种计算设备中。由于Nand Flash存储器的物理特性,容易造成位翻转和坏块错误,有必要对固态硬盘SSD进行数据巡检。
目前的固态硬盘数据巡检方法包括:1.确定巡检周期;2.定期触发巡检。现有的数据巡检方法在实际使用时,并没有考虑系统的实际运行状态对SSD数据保持时间的影响,系统温度高时,容易造成巡检不足的问题,系统温度低时,容易造成巡检过频的问题,而且没有考虑对用户读写性能的影响,容易造成读写延迟增加。这些情况造成了数据巡检无法保证数据可靠性,降低读写性能等问题,因此如何提高数据可靠性是亟待解决的问题。
技术实现要素:
本发明的目的是提供一种固态硬盘数据巡检的优化方法及装置,以实现提高数据可靠性。
为解决上述技术问题,本发明提供一种固态硬盘数据巡检的优化方法,该方法包括:
获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和所述温度信息对巡检触发周期进行更新;
依据更新后的巡检触发周期触发数据巡检;
查找包含有效数据的物理页;
对所述物理页进行ECC错误检查,若所述物理页中错误位error bit的个数超过预设阈值,将所述物理页进行数据搬移。
优选的,所述依据更新后的巡检触发周期触发数据巡检,包括:
依据更新后的巡检触发周期和上一次巡检时间判断是否触发数据巡检,若是,开启数据巡检。
优选的,所述查找包含有效数据的物理页,包括:
获取物理块的状态,若物理块的状态为被使用状态,查看物理块的有效数据帧位图,查找到包含有效数据的物理页。
优选的,所述对所述物理页进行ECC错误检查,若所述物理页中错误位error bit的个数超过预设阈值,将所述物理页进行数据搬移,包括:
对所述物理页进行ECC错误检查,查找物理页中的错误位error bit;
判断所述错误位error bit的个数是否超过预设阈值,若是,将所述物理页进行数据搬移。
本发明还提供一种固态硬盘数据巡检的优化装置,用于实现所述固态硬盘数据巡检的优化方法,该装置包括:
更新模块,用于获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和所述温度信息对巡检触发周期进行更新;
触发模块,用于依据更新后的巡检触发周期触发数据巡检;
查找模块,用于查找包含有效数据的物理页;
搬移模块,用于对所述物理页进行ECC错误检查,若所述物理页中错误位error bit的个数超过预设阈值,将所述物理页进行数据搬移。
优选的,所述触发模块具体用于依据更新后的巡检触发周期和上一次巡检时间判断是否触发数据巡检,若是,开启数据巡检。
优选的,所述查找模块具体用于获取物理块的状态,若物理块的状态为被使用状态,查看物理块的有效数据帧位图,查找到包含有效数据的物理页。
优选的,所述搬移模块包括:
检测单元,用于对所述物理页进行ECC错误检查,查找物理页中的错误位error bit;
判断单元,用于判断所述错误位error bit的个数是否超过预设阈值,若是,将所述物理页进行数据搬移。
本发明所提供的一种固态硬盘数据巡检的优化方法及装置,获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和所述温度信息对巡检触发周期进行更新;依据更新后的巡检触发周期进行数据巡检;查找包含有效数据的物理页;对所述物理页进行ECC错误检查,若所述物理页中错误位error bit的个数超过预设阈值,将所述物理页进行数据搬移。可见,温度信息即为系统运行状态,Nand flash数据保持时间为Nand Flash特性信息,根据系统运行状态和Nand Flash特性来动态更新巡检触发周期,这样依据温度来对巡检触发周期进行更新,避免了系统温度高时,容易造成巡检不足的问题,以及系统温度低时,容易造成巡检过频的问题,提高了数据可靠性。并且,对物理页进行ECC错误检查,若所述物理页中错误位error bit的个数超过预设阈值,将所述物理页进行数据搬移,这样对可能发生错误的包含有效数据的物理页进行搬移,如此在error bit超过阈值但出于可纠正范围内时将其搬移,保证了数据可靠性,也对用户读写数据的性能影响较低,降低了对用户读写数据的性能影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种固态硬盘数据巡检的优化方法的流程图;
图2为更新巡检周期流程图;
图3为数据巡检流程图;
图4为本发明所提供的一种固态硬盘数据巡检的优化装置的结构示意图。
具体实施方式
本发明的核心是提供一种固态硬盘数据巡检的优化方法及装置,以实现提高数据可靠性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种固态硬盘数据巡检的优化方法的流程图,该方法包括:
S11:获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和温度信息对巡检触发周期进行更新;
S12:依据更新后的巡检触发周期触发数据巡检;
S13:查找包含有效数据的物理页;
S14:对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移。
可见,该方法中,温度信息即为系统运行状态,Nand flash数据保持时间为Nand Flash特性信息,根据系统运行状态和Nand Flash特性来动态更新巡检触发周期,这样依据温度来对巡检触发周期进行更新,避免了系统温度高时,容易造成巡检不足的问题,以及系统温度低时,容易造成巡检过频的问题,提高了数据可靠性。
并且,该方法对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移,这样对可能发生错误的包含有效数据的物理页进行搬移,如此在error bit超过阈值但出于可纠正范围内时将其搬移,保证了数据可靠性,也对用户读写数据的性能影响较低,降低了对用户读写数据的性能影响。
基于上述方法,进一步的,步骤S12的过程具体为:依据更新后的巡检触发周期和上一次巡检时间判断是否触发数据巡检,若是,开启数据巡检。
进一步的,步骤S13的过程具体为:获取物理块的状态,若物理块的状态为被使用状态,查看物理块的有效数据帧位图,查找到包含有效数据的物理页。
进一步的,步骤S14的过程具体为:对物理页进行ECC错误检查,查找物理页中的错误位error bit;判断所述错误位error bit个数是否超过预设阈值,若是,将物理页进行数据搬移。其中,ECC(Error Correcting Code,错误检查和纠正)是能够实现错误检查和纠正的技术;error bit表示错误位,即误码。其中,Nand flash是flash存储的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储。
详细的,本方法提高数据可靠性,动态更新巡检周期,保证用户读写性能。其中,根据系统状态,动态更新巡检周期,巡检读写优先级低,用户读写优先级高,提高数据可靠性的同时实现用户读写的性能影响较低。
本方法中,数据巡检保护数据完整性,避免数据损失;根据系统运行状态和Nand Flash特性,动态更新巡检周期;数据巡检读写,对用户读写性能影响较低。本方法在数据出错之前将其搬移,同时对用户读写数据的性能影响较低。
详细的,基于本方法,具体流程如下:
(1)根据系统状态和Nand Flash特性决定是否触发数据巡检;
其中,获取SSD温度等状态信息,根据Nand Flash的data retention时间和系统状态动态更新触发周期,根据上次巡检时间和新的巡检周期判断是否触发巡检,data retention时间即为数据保持时间。图2为更新巡检周期流程图。
(2)查找包含有效数据的物理页;
其中,根据块信息Block Info存放的地址,找到块状态block state即物理块的状态;如果block state为used的,巡检此物理块block,否则,检查下一block的状态state;查看block的valid data frame bitmap,找到包含有效数据的物理页,valid data frame bitmap表示有效数据帧位图。
(3)根据上一步的物理页地址,向Flash接口发送读请求;
(4)处理读完成消息;
其中,读完成消息中包含了ECC error bit个数的信息,根据需要设定阈值,如果超过阈值,则对此物理页进行数据搬移,ECC error bit个数为ECC错误检查中错误位的个数,即误码的个数。图3为数据巡检流程图。
(5)数据搬移;
其中,由于步骤(3)中已将flash中的数据读取至RAM中,本次搬移只需要将数据写入其他block中,并更改原valid data frame bitmap。
具体的,巡检读写命令与用户读写命令相比,处于低优先级,当用户读写和巡检读写并存时,Flash接口优先响应用户读写。
请参考图4,图4为本发明所提供的一种固态硬盘数据巡检的优化装置的结构示意图,该装置用于实现上述固态硬盘数据巡检的优化方法,该装置包括:
更新模块101,用于获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和温度信息对巡检触发周期进行更新;
触发模块102,用于依据更新后的巡检触发周期触发数据巡检;
查找模块103,用于查找包含有效数据的物理页;
搬移模块104,用于对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移。
可见,该装置中,温度信息即为系统运行状态,Nand flash数据保持时间为Nand Flash特性信息,根据系统运行状态和Nand Flash特性来动态更新巡检触发周期,这样依据温度来对巡检触发周期进行更新,避免了系统温度高时,容易造成巡检不足的问题,以及系统温度低时,容易造成巡检过频的问题,提高了数据可靠性。
并且,该装置对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移,这样对可能发生错误的包含有效数据的物理页进行搬移,如此在error bit超过阈值但出于可纠正范围内时将其搬移,保证了数据可靠性,也对用户读写数据的性能影响较低,降低了对用户读写数据的性能影响。
基于上述装置,具体的,触发模块具体用于依据更新后的巡检触发周期和上一次巡检时间判断是否触发数据巡检,若是,开启数据巡检。
进一步的,查找模块具体用于获取物理块的状态,若物理块的状态为被使用状态,查看物理块的有效数据帧位图,查找到包含有效数据的物理页。
进一步的,搬移模块包括:
检测单元,用于对物理页进行ECC错误检查,查找物理页中的错误位error bit;
判断单元,用于判断所述错误位error bit的个数是否超过预设阈值,若是,将物理页进行数据搬移。
综上,本发明所提供的一种固态硬盘数据巡检的优化方法及装置,获取固态硬盘SSD的温度信息,根据Nand flash数据保持时间和温度信息对巡检触发周期进行更新;依据更新后的巡检触发周期进行数据巡检;查找包含有效数据的物理页;对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移。可见,温度信息即为系统运行状态,Nand flash数据保持时间为Nand Flash特性信息,根据系统运行状态和Nand Flash特性来动态更新巡检触发周期,这样依据温度来对巡检触发周期进行更新,避免了系统温度高时,容易造成巡检不足的问题,以及系统温度低时,容易造成巡检过频的问题,提高了数据可靠性。
并且,本发明对物理页进行ECC错误检查,若物理页中错误位error bit的个数超过预设阈值,将物理页进行数据搬移,这样对可能发生错误的包含有效数据的物理页进行搬移,如此在error bit超过阈值但出于可纠正范围内时将其搬移,保证了数据可靠性,也对用户读写数据的性能影响较低,降低了对用户读写数据的性能影响。
以上对本发明所提供的一种固态硬盘数据巡检的优化方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。