一种SSD固件中数据块的管理方法、系统及装置与流程

文档序号:15849887发布日期:2018-11-07 09:41阅读:247来源:国知局
一种SSD固件中数据块的管理方法、系统及装置与流程

本发明涉及存储技术领域,特别是涉及一种ssd固件中数据块的管理方法、系统及装置。

背景技术

随着互联网、云计算等技术的发展及广泛应用,计算机系统在使用过程中会产生海量的数据,并需要对这些海量的数据进行处理和存储,从而对存储系统的性能提出了更高的要求。现有技术中,ssd(solidstatedrives,固态硬盘)由于其读写速度快、能耗低,被广泛应用于存储系统,可见,ssd中存储的数据的完整性及正确性对于存储系统的性能至关重要。但是,在ssd中的数据块正在执行操作的过程中,数据块可能出现不稳定的情况,若在不稳定的数据块上继续执行操作,会破坏ssd中数据的完整性及正确性,从而降低存储系统的性能。

因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种ssd固件中数据块的管理方法、系统及装置,在ssd中的数据块正在执行操作的过程中,若数据块出现不稳定的情况,则将不稳定的数据块中的数据搬移至稳定的数据块上继续执行操作,从而保证了ssd中数据的完整性及正确性,提高了存储系统的性能。

为解决上述技术问题,本发明提供了一种ssd固件中数据块的管理方法,包括:

当确定固态硬盘ssd中存在不稳定的block时,判断不稳定的所述block是否为openblock;

若是,则对所述openblock进行关闭操作,并对应打开稳定且未使用中的block,将所述openblock中的数据对应搬移至未使用中的所述block,以完成数据搬移处理,其中,未使用中的所述block的空闲存储空间不小于所述openblock中数据所占的存储空间;

若否,则对满足条件的closedblock直接进行数据搬移处理。

优选地,所述确定固态硬盘ssd中存在不稳定的block的过程包括:

当ssd中存在写操作和/或读操作失败的block时,确定操作失败的block不稳定。

优选地,所述确定固态硬盘ssd中存在不稳定的block的过程还包括:

当所述ssd中存在读操作未失败且读操作次数大于预设读取门限的block时,确定超出所述读取门限的block不稳定;

当所述ssd中存在静置时间大于预设静置门限的block时,确定超出所述静置门限的block不稳定。

优选地,所述block读操作失败的确定过程具体为:

当所述block中数据的纠错编码失效时,确定该block读操作失败。

优选地,该管理方法还包括:

当所述block写操作和/或读操作失败时,显示操作失败标志,以提醒用户所述ssd的当前操作状态。

优选地,在对应打开稳定且未使用中的block,将所述openblock中的数据对应搬移至未使用中的所述block之前,该管理方法还包括:

将所述openblock在原始存储数据的基础上使用无效数据继续填充n页数据,以稳定所述原始存储数据,其中,n为正整数且n≥4;

则所述将所述openblock中的数据对应搬移至未使用中的所述block的过程具体为:

将所述openblock中的原始存储数据对应搬移至未使用中的所述block。

为解决上述技术问题,本发明还提供了一种ssd固件中数据块的管理系统,包括:

判断单元,用于当确定ssd中存在不稳定的block时,判断不稳定的所述block是否为openblock,若是,则触发第一搬移单元,若否,则触发第二搬移单元;

所述第一搬移单元,用于对所述openblock进行关闭操作,并对应打开稳定且未使用中的block,将所述openblock中的数据对应搬移至未使用中的所述block,以完成数据搬移处理,其中,未使用中的所述block的空闲存储空间不小于所述openblock中数据所占的存储空间;

所述第二搬移单元,用于对满足条件的closedblock直接进行数据搬移处理。

优选地,所述确定ssd中存在不稳定的block的过程包括:

当ssd中存在写操作和/或读操作失败的block时,确定操作失败的block不稳定;

当所述ssd中存在读操作未失败且读操作次数大于预设读取门限的block时,确定超出所述读取门限的block不稳定;

当所述ssd中存在静置时间大于预设静置门限的block时,确定超出所述静置门限的block不稳定。

优选地,该管理系统还包括:

数据填充单元,用于在对应打开稳定且未使用中的block之前,将所述openblock在原始存储数据的基础上使用无效数据继续填充n页数据,以稳定所述原始存储数据,其中,n为正整数且n≥4;

则所述第一搬移单元具体用于对所述openblock进行关闭操作,并对应打开稳定且未使用中的block,将所述openblock中的原始存储数据对应搬移至未使用中的所述block,以完成数据搬移处理,其中,未使用中的所述block的空闲存储空间不小于所述openblock中原始存储数据所占的存储空间。

为解决上述技术问题,本发明还提供了一种ssd固件中数据块的管理装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种ssd固件中数据块的管理方法的步骤。

本发明提供了一种ssd固件中数据块的管理方法,包括:当确定ssd中存在不稳定的block时,判断不稳定的block是否为openblock;若是,则对openblock进行关闭操作,并对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,以完成数据搬移处理,其中,未使用中的block的空闲存储空间不小于openblock中数据所占的存储空间;若否,则对满足条件的closedblock直接进行数据搬移处理。

本申请首先判断ssd中是否存在不稳定的block,当存在时,再判断不稳定的block是否为openblock,即使用中的数据块。若是,则对openblock进行关闭操作,并且,对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,从而成功完成数据搬移处理。若否,则不稳定的block为closedblock,对closedblock直接进行数据搬移处理即可。可见,本申请在ssd中的数据块正在执行操作的过程中,若数据块出现不稳定的情况,则将不稳定的数据块中的数据搬移至稳定的数据块上继续执行操作,从而保证了ssd中数据的完整性及正确性,提高了存储系统的性能。

本发明还提供了一种ssd固件中数据块的管理系统及装置,与上述管理方法具有相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种ssd固件中数据块的管理方法的流程图;

图2为本发明提供的一种ssd固件中数据块的管理系统的结构示意图。

具体实施方式

本发明的核心是提供一种ssd固件中数据块的管理方法、系统及装置,在ssd中的数据块正在执行操作的过程中,若数据块出现不稳定的情况,则将不稳定的数据块中的数据搬移至稳定的数据块上继续执行操作,从而保证了ssd中数据的完整性及正确性,提高了存储系统的性能。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明提供的一种ssd固件中数据块的管理方法的流程图。

该管理方法包括:

步骤s1:当确定固态硬盘ssd中存在不稳定的block时,判断不稳定的block是否为openblock;

需要说明的是,本申请中的预设是提前设置好的,只需要设置一次,除非根据实际情况需要修改,否则不需要重新设置。

具体地,ssd是由固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元组成。在ssd使用的过程中,ssd中block的状态包括openblock、closedblock及usedblock等状态。openblock是正在执行写操作的block,即使用中的block,比如,当ssd第一次执行写操作时,ssd的闪存转换层会从block池中获取一个block以处理数据的写入,则该block的状态变为openblock。closedblock是由openblock执行完写操作后再执行关闭操作得到,而usedblock是closedblock中,最后一页被写入数据的block。

考虑到block正在执行操作的过程中,若自身不稳定,则会破坏ssd中数据的完整性及正确性,所以本申请首先判断ssd中各block是否稳定,若存在不稳定的block时,则判断不稳定的block是否为openblock,从而确定不稳定的block的状态,为后期数据保护处理打下基础。

步骤s2:若是,则对openblock进行关闭操作,并对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,以完成数据搬移处理,其中,未使用中的block的空闲存储空间不小于openblock中数据所占的存储空间;若否,则对满足条件的closedblock直接进行数据搬移处理。

具体地,若不稳定的block是openblock,说明不稳定的openblock正在执行写操作,考虑到ssd中nandflashmemory的特性,应对不稳定的openblock进行关闭操作,然后将关闭的不稳定的block中的数据进行数据搬移处理。其中,数据搬移处理的过程包括:首先,针对关闭的不稳定的block,对应打开稳定且未使用中的block,这里未使用中的block包括从未使用过的block(新的block)和已使用过但当前未使用的block(当前未执行写操作的block),至于未使用中的block的选取,只要保证未使用中的block的空闲存储空间不小于关闭的不稳定的block中数据所占的存储空间即可;然后,将关闭的不稳定的block中的数据对应搬移至未使用中的block,从而完成数据搬移处理。

若不稳定的block不是openblock,则说明不稳定的block是closedblock,直接将不稳定的closedblock中的数据进行数据搬移处理即可。具体地,针对不稳定的closedblock,对应打开稳定且未使用中的block,然后,将不稳定的closedblock中的数据对应搬移至未使用中的block,从而完成数据搬移处理。可见,本申请将正在执行操作且不稳定的block中的数据,搬移至稳定的block上继续执行操作,从而保证了ssd中数据的完整性及正确性,提高了存储系统的性能。

本发明提供了一种ssd固件中数据块的管理方法,包括:当确定ssd中存在不稳定的block时,判断不稳定的block是否为openblock;若是,则对openblock进行关闭操作,并对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,以完成数据搬移处理,其中,未使用中的block的空闲存储空间不小于openblock中数据所占的存储空间;若否,则对满足条件的closedblock直接进行数据搬移处理。

本申请首先判断ssd中是否存在不稳定的block,当存在时,再判断不稳定的block是否为openblock,即使用中的数据块。若是,则对openblock进行关闭操作,并且,对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,从而成功完成数据搬移处理。若否,则不稳定的block为closedblock,对closedblock直接进行数据搬移处理即可。可见,本申请在ssd中的数据块正在执行操作的过程中,若数据块出现不稳定的情况,则将不稳定的数据块中的数据搬移至稳定的数据块上继续执行操作,从而保证了ssd中数据的完整性及正确性,提高了存储系统的性能。

在上述实施例的基础上:

作为一种优选地实施例,确定固态硬盘ssd中存在不稳定的block的过程包括:

当ssd中存在写操作和/或读操作失败的block时,确定操作失败的block不稳定。

具体地,当ssd中的block出现写操作或读操作失败的情况时,表明block的状态不稳定,则确定操作失败的block不稳定,以便于执行数据保护处理步骤。另外,ssd中的block可能同时进行写操作和读操作,当ssd中的block同时出现写操作和读操作失败的情况时,更加表明block的状态不稳定,则采用同步的机制执行数据保护处理步骤。也就是说,一个block出现写操作失败的情况时,会执行数据保护处理步骤,该block同时出现读操作失败的情况时,不会重复执行数据保护处理步骤,从而通过异步处理转同步处理保护数据的正确性。

作为一种优选地实施例,确定固态硬盘ssd中存在不稳定的block的过程还包括:

当ssd中存在读操作未失败且读操作次数大于预设读取门限的block时,确定超出读取门限的block不稳定;

当ssd中存在静置时间大于预设静置门限的block时,确定超出静置门限的block不稳定。

具体地,考虑到某个block在读操作次数不断累加的过程中,即使读操作未失败,也会出现errorbit数增多,当errorbit数达到一定数量后,会出现读操作失败的情况,所以,本申请从ssd中选出读操作未失败的block,并累计读操作未失败的block的读操作次数,当读操作次数大于所设的读取门限时,说明此时的errorbit数很可能会导致读操作失败,则确定超出读取门限的block不稳定,以便于执行数据保护处理步骤,降低了读操作的失败率,提高了存储系统的性能。

本申请还考虑到某个block在静置(不执行读操作也不执行写操作)一定时间后,该block已写入的数据会随着时间的延长丢失掉部分数据,即errorbit数增多,同样当errorbit数达到一定数量后,再进行读操作时会出现读操作失败的情况,所以,本申请从block开始静置时,累计该block的静置时间,并将静置时间与所设静置门限比较,当该block的静置时间大于所设静置门限时,说明此时的errorbit数很可能会导致后期读操作失败,则确定超出静置门限的block不稳定,以便于执行数据保护处理步骤,进一步降低了读操作的失败率,提高了存储系统的性能。

可见,本申请采用多级保护与处理机制,使得block在不同条件下均可进行数据保护处理,从而保证block在使用上的正确性。

作为一种优选地实施例,block读操作失败的确定过程具体为:

当block中数据的纠错编码失效时,确定该block读操作失败。

具体地,若block内包含120字节的数据,其中,100字节是供用户读取的内容,20字节是纠错编码,当出错的字节过多时,纠错编码无法将出错的字节纠正,即纠错编码失效,则会导致后期读操作失败,所以,当block中数据的纠错编码失效时,确定该block读操作失败。

作为一种优选地实施例,该管理方法还包括:

当block写操作和/或读操作失败时,显示操作失败标志,以提醒用户ssd的当前操作状态。

进一步地,本申请还可以当block写操作和/或读操作失败时,显示操作失败标志,从而起到告知用户ssd的当前操作状态的作用。

作为一种优选地实施例,在对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block之前,该管理方法还包括:

将openblock在原始存储数据的基础上使用无效数据继续填充n页数据,以稳定原始存储数据,其中,n为正整数且n≥4;

则将openblock中的数据对应搬移至未使用中的block的过程具体为:

将openblock中的原始存储数据对应搬移至未使用中的block。

进一步地,为了提高关闭的不稳定的block中数据的稳定性,将关闭的不稳定的block在原始存储数据的基础上,使用无效数据继续填充超过4页的数据,从而稳定原始存储数据。然后,将原始存储数据对应搬移至稳定且未使用中的block,以保证数据的完整性及正确性。

比如,n=4时,关闭的不稳定的block写入数据到了第a页,需要将第a+1页到第a+4页写入数据,从而保证关闭的不稳定的block上第1页到第a页的数据是稳定的,之后将第1页到第a页的数据重新写到新打开的block即可,其中,a为正整数。

请参照图2,图2为本发明提供的一种ssd固件中数据块的管理系统的结构示意图。

该管理系统包括:

判断单元1,用于当确定ssd中存在不稳定的block时,判断不稳定的block是否为openblock,若是,则触发第一搬移单元,若否,则触发第二搬移单元;

第一搬移单元2,用于对openblock进行关闭操作,并对应打开稳定且未使用中的block,将openblock中的数据对应搬移至未使用中的block,以完成数据搬移处理,其中,未使用中的block的空闲存储空间不小于openblock中数据所占的存储空间;

第二搬移单元3,用于对满足条件的closedblock直接进行数据搬移处理。

作为一种优选地实施例,确定ssd中存在不稳定的block的过程包括:

当ssd中存在写操作和/或读操作失败的block时,确定操作失败的block不稳定;

当ssd中存在读操作未失败且读操作次数大于预设读取门限的block时,确定超出读取门限的block不稳定;

当ssd中存在静置时间大于预设静置门限的block时,确定超出静置门限的block不稳定。

作为一种优选地实施例,该管理系统还包括:

数据填充单元,用于在对应打开稳定且未使用中的block之前,将openblock在原始存储数据的基础上使用无效数据继续填充n页数据,以稳定原始存储数据,其中,n为正整数且n≥4;

则第一搬移单元2具体用于对openblock进行关闭操作,并对应打开稳定且未使用中的block,将openblock中的原始存储数据对应搬移至未使用中的block,以完成数据搬移处理,其中,未使用中的block的空闲存储空间不小于openblock中原始存储数据所占的存储空间。

本申请提供的管理系统的介绍请参考上述管理方法实施例,本申请在此不再赘述。

本发明还提供了一种ssd固件中数据块的管理装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现上述任一种ssd固件中数据块的管理方法的步骤。

本申请提供的管理装置的介绍请参考上述管理方法实施例,本申请在此不再赘述。

还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1