本申请涉及计算机技术领域,特别涉及一种固态硬盘的数据恢复方法及数据恢复系统。
背景技术:
随着计算机技术的发展,出现了互联网、云计算、物联网等技术,在对人类生活带来方便的同时,会产生海量的数据和信息。要对这些大量的数据和信息进行处理和存储,就需要更高性能和要求的储存系统。随着技术发展,出现了固态硬盘,因其读写速度快、能耗较低,被广泛使用。
但是,因制作固态硬盘的材质问题,在使用nand的过程中会出现很多错误,其中数据保持错误是较为常见的一种。数据保持错误的出错原因是随着时间的流逝产生的电荷泄漏,数据写入nand后,如果长时间不使用写入的数据,会发生电荷泄漏的现象,此时如果读去数据,会发生数据丢失的现象。
一般的,防止数据保持出错的技术叫做动态刷新,就是定期对数据进行读扫描,如果发现错误率较高,但在纠错能力以内,就纠正错误,把数据写到新的地方。不过这样做有三个缺点,一个是增加写放大,缩短了nand寿命,另一个是后台读写占用了其它的物理空间,增加了垃圾回收的压力,影响了用户使用的性能。另外对功耗要求高的消费级nand要求在用户没有读写时,nand就要休眠,所以也没机会扫描数据了,如果强行扫描就增加了功耗。
因此,如何防止出现数据保持出错的问题发生,是本领域技术人员关注的热点问题。
技术实现要素:
本申请的目的是提供一种固态硬盘的数据恢复方法,通过对数据的保持时间的判断,筛选出需要恢复的数据,对数据进行读取再写回读取的地址,由于在原位置中,就保存一定的电荷数量,此时对原有的电荷不做清除操作,同时写入新电荷,补充泄漏的电荷数,就可以以较低的性能消耗,完成数据恢复的操作,同时不会占用过多的用户性能。
为解决上述技术问题,本申请提供一种固态硬盘的数据恢复方法,包括:
根据固态硬盘中数据的保持时间,判断所述固态硬盘中的所述数据是否为需要执行数据恢复操作的恢复数据;
若是,则读取所述恢复数据,按照读取的地址将所述恢复数据写入所述固态硬盘中。
可选的,所述根据固态硬盘中数据的保持时间,判断所述固态硬盘中的所述数据是否为需要执行数据恢复操作的恢复数据,包括:
记录所述固态硬盘中所有所述数据的所述保持时间,并将所有所述保持时间执行排序操作,得到保持时间排序表;
判断所述数据的所述保持时间是否在保持时间排序表的前预设比例中。
可选的,所述读取所述恢复数据,按照读取的地址将所述恢复数据写入所述固态硬盘中,包括:
读取所述恢复数据,并判断所述恢复是否通过ecc检查;
若是,则按照读取的地址将所述恢复数据写入所述固态硬盘中;
若否,则选择纠错算法对所述恢复数据进行纠错处理,得到纠错恢复数据;
将所述纠错恢复数据按照读取的所述地址写入所述固态硬盘中。
可选的,还包括:
当所述恢复数据写入所述固态硬盘时,开启提示装置。
本申请还提供一种固态硬盘的数据恢复系统,包括:
恢复数据判断模块,用于根据固态硬盘中数据的保持时间,判断所述固态硬盘中的所述数据是否为需要执行数据恢复操作的恢复数据;
数据恢复处理模块,用于读取所述恢复数据,按照读取的地址将所述恢复数据写入所述固态硬盘中。
可选的,所述恢复数据判断模块包括:
数据保持时间排序单元,用于记录所述固态硬盘中所有所述数据的所述保持时间,并将所有所述保持时间执行排序操作,得到保持时间排序表;
数据保持时间判断单元,用于判断所述数据的所述保持时间是否在保持时间排序表的前预设比例中。
可选的,所述数据恢复处理模块包括:
数据读取检查单元,用于读取所述恢复数据,并判断所述恢复是否通过ecc检查;
数据写入单元,用于按照读取的地址将所述恢复数据写入所述固态硬盘中;
数据纠错单元,用于选择纠错算法对所述恢复数据进行纠错处理,得到纠错恢复数据;
纠错数据写入单元,用于将所述纠错恢复数据按照读取的所述地址写入所述固态硬盘中。
可选的,还包括:
提示装置,用于当所述恢复数据写入所述固态硬盘时开启。
本申请所提供的一种固态硬盘的数据恢复方法,包括:根据固态硬盘中数据的保持时间,判断所述固态硬盘中的所述数据是否为需要执行数据恢复操作的恢复数据;若是,则读取所述恢复数据,按照读取的地址将所述恢复数据写入所述固态硬盘中。
通过对数据的保持时间的判断,筛选出需要恢复的数据,对数据进行读取再写回读取的地址,由于在原位置中,就保存一定的电荷数量,此时对原有的电荷不做清除操作,同时写入新电荷,补充泄漏的电荷数,就可以以较低的性能消耗,完成数据恢复的操作,同时不会占用过多的用户性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种固态硬盘的数据恢复方法的流程图;
图2为本申请实施例提供的一种固态硬盘的数据恢复方法的判断数据操作的流程图;
图3为本申请实施例提供的一种固态硬盘的数据恢复方法的数据恢复操作的流程图;
图4为本申请实施例提供的一种固态硬盘的数据恢复系统的结构示意图。
具体实施方式
本申请的核心是提供一种固态硬盘的数据恢复方法,通过对数据的保持时间的判断,筛选出需要恢复的数据,对数据进行读取再写回读取的地址,由于在原位置中,就保存一定的电荷数量,此时对原有的电荷不做清除操作,同时写入新电荷,补充泄漏的电荷数,就可以以较低的性能消耗,完成数据恢复的操作,同时不会占用过多的用户性能。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种固态硬盘的数据恢复方法的流程图。
本实施例提供一种固态硬盘的数据恢复方法,可以包括:
s101,根据固态硬盘中数据的保持时间,判断固态硬盘中的数据是否为需要执行数据恢复操作的恢复数据;
本步骤旨在,根据固态硬盘中的数据保持时间判断数据是否需要进行数据恢复。
nand硬盘在数据储存过程中,由于其储存机制,存放数据的栅格中用来表示数据位的电子,会随着时间而逸出,当栅格中的电子数量逸出减少到一定数量时,会导致用户的读取错误。因此,需要通过判断所存储数据的保持时间来判断是否需要对数据进行恢复操作。可以通过记录所有数据保持的时间对所有时间中时间靠前的数据作为需要恢复的数据。
需要说明的是,数据保持的时间与很多因素相关,其中主要是与物理单元的pe(写擦)的次数有关。一般在固态硬盘中使用的算法基本可以保证每个block(块单元)的pe次数保持一致,在这个基础上,选择相应的保持时间的时长比例,实施恢复操作。
其中,数据的保持时间是从数据最后一次的写记录开始计算时间,也就是说当一个数据被重新执行写操作后,需要重新记录时间。
需要说明的是,在不同的pe下,固态硬盘的对于保持数据的保持时间也会不同,因此一般会选择保持时间总数的前10%到20%的数据来进行恢复,避免了使用统一的保持时间标准作比较,出现数据判定不准确的情况。此外,一般对于不同储存颗粒材料,保持数据的保持时间也有区别,因此对于不同的颗粒材料,相应的保持时间的时间比例也需要做不同的设定,具体的应视其颗粒材料的属性数据等数据做选择,在此不再做限定。
当然,保持时间的比例数值的设定可以根据具体应用的环境以及需要解决的问题,再做选择,在此不再做赘述。
s102,若是,则读取恢复数据,按照读取的地址将恢复数据写入固态硬盘中。
在步骤s101的基础上,本步骤旨在将需要恢复的数据执行恢复操作,即读取数据再将数据按照读取地址写入固态硬盘中。
其中,数据的读取错误是由于储存数据位的栅格中的电子逸出造成的,一般的,解决方法是将数据重新映射到另外一个位置中,并且在写入前需要将原数据擦除再写入。需要占用其他的物理空间,同时增加额外的数据垃圾回收的压力。但是,对于一定时间内的数据错误,其数据错误的栅格内还存有一定数量的电子,此时对数据储存单元即栅格写入电子就可以恢复原有的电子数量,在一定程度上可以恢复数据。无需擦除原有的数据,可以降低数据恢复操作中所需的硬件性能。
综上,本申请实施例通过数据的保持时间筛选出需要恢复的数据,读取数据栅格所保存的数据位,根据数据位的信息向原栅格填充电子,也就是向栅格的位置重新写入数据。此时对原有的电荷不做清除操作,同时写入新电荷,补充泄漏的电荷数,就可以以较低的性能消耗,完成数据恢复的操作,同时不会占用过多的用户性能。
请参考图2,图2为本申请实施例提供的一种固态硬盘的数据恢复方法的判断数据操作的流程图。
结合上一实施例,本实施例是针对上一实施例中的如何进行判断数据操作做出的一个具体实施例,其他部分与上一实施例大体相同,相同部分请参考上一实施例,在此不再做赘述。
本实施例可以包括:
s201,记录固态硬盘中所有数据的保持时间,并将所有保持时间执行排序操作,得到保持时间排序表;
本步骤旨在,得到可以用来判断数据保持时间的判断依据以及标准。在本实施例中是记录所有数据的保持时间并得到总时间的排序表。记录所有数据的保持时间,将所有数据的保持时间按照时间顺序的从前到后进行排序,就可以得到数据保持时间的排序表。从该排序表中可以判断数据的保持时间的在总数据的保持时间中的次序位置,从而判断数据是否需要恢复。
s202,判断数据的保持时间是否在保持时间排序表的前预设比例中。
基于步骤s201,本步骤旨在根据上一步骤中的判断标准判断数据是否需要进行恢复操作。在本实施例中是指判断数据的保持时间是否在总保持时间的前预设比例,其中,预设比例的设置应视具体的使用环境,数据更新速度以及期望达到什么样的数据恢复效率做选择,在此不做限定。
综上,本实施例旨在根据数据的保持时间判断数据是否需要进行数据恢复操作。通过记录数据的保持时间可以有效判断数据是否达到需要恢复数据的临界值,可以合理的安排数据的恢复流程。
请参考图3,图3为本申请实施例提供的一种固态硬盘的数据恢复方法的数据恢复操作的流程图。
结合上一实施例,本实施例是针对上一实施例中的如何进行数据恢复操作做出的一个具体实施例,其他部分与上一实施例大体相同,相同部分请参考上一实施例,在此不再做赘述。
本实施例可以包括:
s301,读取恢复数据,并判断恢复是否通过ecc检查;
本步骤旨在读取恢复数据,并判断数据是否出错。
其中,ecc检查是在固态硬盘中的数据错误的基本检查方式。在固态硬盘的使用过程中,通常会出现一些数据的读取错误,会使用一些检查机制来判断数据是否读取错误,对后续的纠错处理提供判断标准。
s302,若是,则按照读取的地址将恢复数据写入固态硬盘中;
在步骤s301的基础上,本步骤旨在将没有读取错误的数据进行写入恢复操作,也就是对于存储数据数据栅格冲入合适的电子数量,来恢复数据位保存的数据。
s303,若否,则选择纠错算法对恢复数据进行纠错处理,得到纠错恢复数据;
在步骤s301的基础上,本步骤旨在对读取错误的数据进行纠错操作。其中,一般使用readretry纠错算法进行纠错,其原理是在读出错误后通过换一套电压重新去读,在一定程度上是可以读取到正确的数据。因此,当出现读取错误后就使用纠错算法,得到纠错后的数据。
s304,将纠错恢复数据按照读取的地址写入固态硬盘中。
在步骤s303的基础上,本步骤旨在将纠错恢复的数据进行写入操作,也就是对就纠错恢复数据进行恢复操作。
需要说明的是,读取错误的数据,通常也是由于储存数据的栅格的电子逸出造成的,与本申请技术方案解决的类似。但是对于读取错误的数据一般通过纠错算法进行读取,其数据位中所保存的电子依然是在逸出状态,纠错算法不会对栅格中的电子进行补充,使数据位达到良好的数据存储状态。而本申请的技术方案旨在在读取的基础上,对数据栅格的损失的电子进行补充。
可选的,还可以包括,当所述恢复数据写入所述固态硬盘时,开启提示装置。
本申请实施例提供了一种固态硬盘的数据恢复方法,通过对数据的保持时间的判断,筛选出需要恢复的数据,对数据进行读取再写回读取的地址,由于在原位置中,就保存了一定的电荷数量,此时对原有的电荷不做清除操作,同时写入新电荷,补充泄漏的电荷数,就可以以较低的性能消耗,完成数据恢复的操作,同时不会占用过多的用户性能。
下面对本申请实施例提供的一种固态硬盘的数据恢复系统进行介绍,下文描述的一种固态硬盘的数据恢复系统与上文描述的一种固态硬盘的数据恢复方法可相互对应参照。
请参考图4,图4为本申请实施例提供的一种固态硬盘的数据恢复系统的结构示意图。
本实施例可以包括:
恢复数据判断模块100,用于根据固态硬盘中数据的保持时间,判断固态硬盘中的数据是否为需要执行数据恢复操作的恢复数据;
数据恢复处理模块200,用于读取恢复数据,按照读取的地址将恢复数据写入固态硬盘中。
可选的,恢复数据判断模块可以包括:
数据保持时间排序单元,用于记录固态硬盘中所有数据的保持时间,并将所有保持时间执行排序操作,得到保持时间排序表;
数据保持时间判断单元,用于判断数据的保持时间是否在保持时间排序表的前预设比例中。
可选的,数据恢复处理模块可以包括:
数据读取检查单元,用于读取恢复数据,并判断恢复是否通过ecc检查;
数据写入单元,用于按照读取的地址将恢复数据写入固态硬盘中;
数据纠错单元,用于选择纠错算法对恢复数据进行纠错处理,得到纠错恢复数据;
纠错数据写入单元,用于将纠错恢复数据按照读取的地址写入固态硬盘中。
可选的,数据恢复系统还可以包括:
提示装置,用于当所述恢复数据写入所述固态硬盘时开启。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种固态硬盘的数据恢复方法及数据恢复系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。