一种磨损均衡方法、装置、设备及可读存储介质
技术领域
本申请涉及存储
技术领域
,特别是涉及一种磨损均衡方法、装置、设备及可读存储介质。背景技术
伴随着SSD(Solid State Disk,固态硬盘)技术的快速发展,SSD容量越来越大,存储设备池化管理是目前存储系统的一大趋势,与此伴随的问题是多用户共用一块SSD时,由于SSD内部资源的限制导致不同用户之间的性能耦合。
为了解决该问题,采用了分区存储的概念,即将SSD物理空间分成不同的区域,不同的存储区域对应于SSD不同的LUN(可独立进行读写控制的物理通道,一个LUN包含多个block,Block为Nand擦除的最小单元),不同的用户与不同的存储区域绑定,由此实现性能隔离的效果。但是,性能隔离的不同区域由于客户数据流的差异性会造成各区域的磨损不均衡,部分区域的存储颗粒过早达到寿命末期导致SSD容量缩减,缩减到一定程度导致SSD不能使用。
针对性能隔离的不同存储区域间的磨损均衡有以LUN为维度进行维护管理的方案,但是由于目前SSD内部都存在raid5(一种存储性能、数据安全和存储成本兼顾的存储解决方案)的保护机制,通常是以Sblock(一个block的条带,该条带内的block组成以block为单位的raid5)为维度进行数据读写、擦除等操作,以LUN为维度进行磨损均衡会破坏raid5的组织方式,完成搬移后Sblock内不同block的PE(擦除次数)不同,对后续读取电压选取造成一定的误差(sblock读取电压选取需要以sblock的PE、静置时间等作为输入进行选择,sblock内block PE如果不同,会大幅影响偏转电压读取效果),进而影响整盘的可靠性。
以选取不同物理块进行数据交换,以解决磨损均衡的问题,如果选择的不同物理块隶属于不同租户对应的LUN内部,则会造成不同租户之间性能互相干扰的问题。
综上所述,如何在保障使用SSD的各租户之间性能隔离的前提下,且不影响可靠性的情况下,解决存储区域间的磨损均衡等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种磨损均衡方法、装置、设备及可读存储介质,由于擦除次数越多,磨损越严重,因此能够基于SLUN(多个LUN的集合)中各个最小擦除单元的平均擦除次数,从SLUN中选出两个预设磨损均衡条件的第一SLUN和第二SLUN,对二者进行数据搬移和空间交换,在保障使用SSD的各租户之间性能隔离的前提下,且不影响可靠性的情况下,可以有效均衡SLUN间的磨损情况。
为解决上述技术问题,本申请提供如下技术方案:
一种存储磨损均衡方法,包括:
获取各个SLUN内最小擦除单元的平均擦除次数;其中,所述SLUN为多个LUN的集合;
利用所述平均擦除次数,从所述SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;
对所述第一SLUN与所述第二SLUN进行数据搬移和空间交换处理。
优选地,利用所述平均擦除次数,从所述SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN,包括:
从各个所述平均擦除次数中选出最大平均擦除次数和最小平均擦除次数;
在所述最大平均擦除次数与所述最小平均擦除次数的差值大于预设擦除阈值的情况下,将所述最大平均擦除次数对应的所述SLUN确定为所述第一SLUN,将所述最小平均擦除次数对应的所述SLUN确定为所述第二SLUN。
优选地,对所述第一SLUN与所述第二SLUN进行数据搬移和空间交换处理,包括:
拷贝所述第一SLUN存储的数据至预留SLUN;
拷贝所述第二SLUN存储的数据至所述第一SLUN;
将所述预留SLUN存储的数据拷贝至所述第二SLUN;
对所述第一SLUN和所述第二SLUN进行空间交换处理。
优选地,对所述第一SLUN与所述第二SLUN进行数据搬移和空间交换处理,包括:
对所述第一SLUN和所述第二SLUN的数据写入量进行监控;
在所述第一SLUN的数据写入量低于预设阈值的情况下,对所述第一SLUN与预留SLUN进行数据搬移和空间交换处理;
在所述第一SLUN与预留SLUN进行数据搬移和空间交换处理之后,若所述第二SLUN的数据写入量低于所述预设阈值,则对所述第二SLUN与所述预留SLUN进行数据搬移和空间交换处理。
优选地,对所述第一SLUN与预留SLUN进行数据搬移,包括:
按照所述第一SLUN对应的数据写入速率成反比的搬移速率,对所述第一SLUN与所述预留SLUN进行数据搬移。
优选地,按照所述第一SLUN对应的数据写入速率成反比的搬移速率,对所述第一SLUN与所述预留SLUN进行数据搬移,包括:
判断所述第一SLUN对应的数据写入速率是否大于预设暂停阈值;
如果是,则暂停对所述第一SLUN与所述预留SLUN进行数据搬移,直到所述第一SLUN对应的数据写入速率不大于所述预设暂停阈值;
如果否,则按照所述搬移速率,对所述第一SLUN与所述预留SLUN进行数据搬移。
优选地,在暂停对所述第一SLUN与所述预留SLUN进行数据搬移的情况下,还包括:
检测所述第一SLUN同存储区域是否存在第三SLUN;
如果是,则将所述第一SLUN的新用户数据写入到所述第三SLUN中或所述预留SLUN中;
如果否,则将所述第一SLUN的新用户数据写入到所述预留SLUN中。
一种磨损均衡装置,包括:
擦除次数监控模块,用于获取各个SLUN内最小擦除单元的平均擦除次数;其中,所述SLUN为多个LUN的集合;
磨损均衡启动模块,用于利用所述平均擦除次数,从所述SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;
区域交换模块,用于对所述第一SLUN与所述第二SLUN进行数据搬移和空间交换处理。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述磨损均衡方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述磨损均衡方法的步骤。
应用本申请实施例所提供的方法,获取各个SLUN内最小擦除单元的平均擦除次数;其中,SLUN为多个LUN的集合;利用平均擦除次数,从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;对第一SLUN与第二SLUN进行数据搬移和空间交换处理。
要保障多租户之间的性能隔离,需要不同租户操作的SSD的物理区域在特定时间内是完全独立的。对SSD而言,LUN是一个物理概念,是一组物理block的集合,在其物理构造上,SSD可以独立对LUN范围内的物理block进行读、写、擦,他具备独立的控制线和数据线。特定的LUN在特定的时间内只能属于一个租户。此外,由于一个LUN可能满足不了单个租户的容量要求,所以通常将多个物理LUN组成一个集合(即SLUN),提供给特定租户使用。
考虑到,选取不同物理块进行数据交换,以解决磨损均衡的问题,如果选择的不同物理块隶属于不同租户对应的LUN内部,则会造成不同租户之间性能互相干扰的问题。基于此,在本申请中以SLUN为维度,SLUN之间进行数据搬移和空间交换,便不会对其他租户造成干扰,确保性能隔离的效果。具体的,由于擦除次数越多,磨损越严重,因此可以基于擦除次数来评估各个SLUN的磨损程度。通过对不同的SLUN进行数据搬移和空间交换处理,可以使得SLUN间的磨损情况达到有效均衡。具体的,首先需获取各个SLUN内最小擦除单元的平均擦除次数,然后基于SLUN中各个最小擦除单元的平均擦除次数,从SLUN中选出两个预设磨损均衡条件的第一SLUN和第二SLUN,对二者进行数据搬移和空间交换,在保障使用SSD的各租户之间性能隔离的前提下,且不影响可靠性的情况下,可以有效均衡SLUN间的磨损情况。
相应地,本申请实施例还提供了与上述磨损均衡方法相对应的磨损均衡装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种磨损均衡方法的实施流程图;
图2为本申请实施例中一种存储区域间模式均衡启动流程示意图;
图3为本申请实施例中一种NVMe set分布及预留空间示意图;
图4为本申请实施例中一种数据搬移与空间交换示意图;
图5为本申请实施例中一种SLUN数据搬移与空间交换实施示意图;
图6为本申请实施例中另一种SLUN数据搬移与空间交换实施示意图;
图7为本申请实施例中一种数据搬移速率与用户写入速率关系图;
图8为本申请实施例中一种磨损均衡装置的结构示意图;
图9为本申请实施例中一种电子设备的结构示意图;
图10为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种磨损均衡方法的流程图,该方法包括以下步骤:
S101、获取各个SLUN内最小擦除单元的平均擦除次数。
SLUN为多个LUN的集合,LUN又是可独立进行读写控制的物理通道,一个LUN包括多个block,block是Nand(与非)擦除的最小单元。即,一个SLUN中包括多个最小擦除单元。
对于每一个最小擦除单元可以记录其对应的擦除次数,将一个SLUN内的各个最小擦除单元的擦除次数取平均,即得到SLUN内最小擦除单元的平均擦除次数,即平均PE。
S102、利用平均擦除次数,从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN。
一个SLUN即对应一个平均擦除次数。而擦除次数越多,即表明磨损越严重,因此SLUN的平均擦除次数越多,则表明该SLUN的磨损越严重。
为了均衡不同SLUN间的磨损情况,可以基于该平均擦除次数,从若干个SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN。
其中,预设磨损条件可具体为平均擦除次数的差值需大于预设阈值;或,可直接将最大平均擦除次数对应的SLUN确定为第一SLUN,将最小平均擦除四处对应的SLUN确定为第二SLUN;或,将平均擦除次数大于某一阈值的SLUN确定为第一SLUN,将小于另一阈值的SLUN确定为第二SLUN。
在本实施例中,第一SLUN和第二SLUN即指满足预设磨损均衡条件的两个或两类SLUN。
下面以基于平均擦除次数来确定第一SLUN和第二SLUN进行详细说明。即,步骤S102从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN,可以具体包括:
步骤一、从各个平均擦除次数中选出最大平均擦除次数和最小平均擦除次数;
步骤二、在最大平均擦除次数与最小平均擦除次数的差值大于预设擦除阈值的情况下,将最大平均擦除次数对应的SLUN确定为第一SLUN,将最小平均擦除次数对应的SLUN确定为第二SLUN。
为便于描述,下面将上述三个步骤结合起来进行说明。
得到各个SLUN对应的平均擦除次数之后,可以对这些平均擦除次数进行统计,从而找出最大平均擦除次数和最小平均擦除次数。
在擦除次数的差异越大时,则表明相应的两个SLUN的磨损差异度越大。因此,在本实施例中,可以预先设置一个擦除阈值,在确定最大平均擦除次数与最小平均擦除次数的差值大于该预设擦除阈值时,认为相应的两个SLUN的磨损差异达到需要进行均衡处理,因而可直接将将最大平均擦除次数对应的SLUN确定为第一SLUN,将最小平均擦除次数对应的SLUN确定为第二SLUN。当然,也可将最大平均擦除次数对应的SLUN确定为第二SLUN,将最小平均擦除次数对应的SLUN确定为第一SLUN。
请参考图2,图2为本申请实施例中一种存储区域间模式均衡启动流程示意图。图2中的阈值即预设阈值(T1),可选择SSD所使用的Nand的最大磨损次数的1%,比如东芝bics3的Nand最大磨损次数是7000次,此阈值可以设置为7000*1%=70。其中,平均PE最大和最小SLUN即对应第一SLUN和第二SLUN。
S103、对第一SLUN与第二SLUN进行数据搬移和空间交换处理。
在本实施例中,数据搬移即将第一SLUN和第二SLUN的数据进行交换搬移。即,数据搬移后,第二SLUN存储数据搬移前第一SLUN的数据,第一SLUN存储数据搬移前第二SLUN的数据。为了实现数据有效搬移,可以借助第三SLUN来进行数据搬移,该第三SLUN可以为特意预留的SLUN空间,也可以为当前空闲未使用的SLUN。
空间交换处理即将第一SLUN和第二SLUN对应的空间进行交换。完成空间交换后,即第一SLUN与空间交换前第二SLUN的LUN对应,第二SLUN与空间交换前第一SLUN的LUN对应。
具体的,步骤S103对第一SLUN与第二SLUN进行数据搬移和空间交换处理,可以包括:
步骤一、拷贝第一SLUN存储的数据至预留SLUN;
步骤二、拷贝第二SLUN存储的数据至第一SLUN;
步骤三、将预留SLUN存储的数据拷贝至第二SLUN;
步骤四、对第一SLUN和第二SLUN进行空间交换处理。
为便于描述,下面将上述四个步骤结合起来进行说明。
具体的,可参照图3对SLUN进行分配和进行空间预留。其中,图3为本申请实施例中一种NVMe set(分区设置)分布及预留空间示意图,其中,NVMe set0与SLUN0(具体包括lun0至lun15)对应,NVMe set1与SLUN1(具体包括lun16至lun31)和SLUN2(具体包括lun32至lun47)对应,……,OP空间(即预留SLUN)与SLUNN(具体包括lunn至lunn+15)对应。
当确定出第一SLUN和第二SLUN之后,便可向拷贝第一SLUN存储的数据到预留SLUN中,此时第一SLUN存储的数据便拥有了备份,因此,可以将第二SLUN存储的数据拷贝到第一SLUN中,然后再将预留SLUN存储的数据拷贝至第二SLUN中,如此便完成了第一SLUN与第二SLUN的数据迁移。在完成数据迁移之后,可以将第一SLUN和第二SLUN对应空间交换。
举例说明:请参考图4,图4为本申请实施例中一种数据搬移与空间交换示意图,若SLUN0为第一SLUN,SLUN2为第二SLUN,则可参照图4所示箭头表示,对SLUN0与SLUN2进行数据搬移和空间交换处理。
应用本申请实施例所提供的方法,
获取各个SLUN内最小擦除单元的平均擦除次数;其中,SLUN为多个LUN的集合;利用平均擦除次数,从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;对第一SLUN与第二SLUN进行数据搬移和空间交换处理。
要保障多租户之间的性能隔离,需要不同租户操作的SSD的物理区域在特定时间内是完全独立的。对SSD而言,LUN是一个物理概念,是一组物理block的集合,在其物理构造上,SSD可以独立对LUN范围内的物理block进行读、写、擦,他具备独立的控制线和数据线。特定的LUN在特定的时间内只能属于一个租户。此外,由于一个LUN可能满足不了单个租户的容量要求,所以通常将多个物理LUN组成一个集合(即SLUN),提供给特定租户使用。
考虑到,选取不同物理块进行数据交换,以解决磨损均衡的问题,如果选择的不同物理块隶属于不同租户对应的LUN内部,则会造成不同租户之间性能互相干扰的问题。基于此,在本申请中以SLUN为维度,SLUN之间进行数据搬移和空间交换,便不会对其他租户造成干扰,确保性能隔离的效果。具体的,由于擦除次数越多,磨损越严重,因此可以基于擦除次数来评估各个SLUN的磨损程度。通过对不同的SLUN进行数据搬移和空间交换处理,可以使得SLUN间的磨损情况达到有效均衡。具体的,首先需获取各个SLUN内最小擦除单元的平均擦除次数,然后基于SLUN中各个最小擦除单元的平均擦除次数,从SLUN中选出两个预设磨损均衡条件的第一SLUN和第二SLUN,对二者进行数据搬移和空间交换,在保障使用SSD的各租户之间性能隔离的前提下,且不影响可靠性的情况下,可以有效均衡SLUN间的磨损情况。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本申请中的一种具体实施方式中,为了避免因数据搬移导致影响用户数据写入,步骤S103对第一SLUN与第二SLUN进行数据搬移和空间交换处理,包括:
步骤一、对第一SLUN和第二SLUN的数据写入量进行监控;
步骤二、在第一SLUN的数据写入量低于预设阈值的情况下,对第一SLUN与预留SLUN进行数据搬移和空间交换处理;
步骤三、在第一SLUN与预留SLUN进行数据搬移和空间交换处理之后,若第二SLUN的数据写入量低于预设阈值,则对第二SLUN与预留SLUN进行数据搬移和空间交换处理。
为便于描述,下面将上述三个步骤结合起来进行说明。
为了减少数据搬移对用户使用造成干扰,可以选择在数据写入量较少的情况下进行数据搬移。即,可首先对第一SLUN和第二SLUN的数据写入量进行监控。具体的,该数据写入量可以仅统计固定时长的,即单位时间内的数据写入量。
在第一SLUN的数据写入量低于预设阈值的情况下,则可将第一SLUN与预留SLUN进行数据搬移和空间交换处理。此时,预留SLUN中的数据没有保存意义,因此可以直接将第一SLUN的数据搬移至预留SLUN,然后在进行空间交换处理。
举例说明:请参考图5,图5为本申请实施例中一种SLUN数据搬移与空间交换实施示意图。其中,图5和图6中定时器建议时间:1秒(当然还可选用其他数值),预设阈值(T2),选对应定时器周期内(比如1s)最大写入量的10%,比如盘的最大写入带宽是3000GB/s时,可以选择为3000*10%=300MB。具体的,在确定出第一SLUN和第二SLUN之后,可以采用定时器触发的方式来触发对第一SLUN的数据搬移和空间交换。先涵盖标记了最大平均PE的存储区域内统计时间间隔内写入量统计,然后判断数据写入量是否低于阈值T2,如果否,则结束本次流程,如果是,则将最大平均PE的SULN与预留SLUN进行数据搬移并交换物理空间。
完成了第一SLUN的数据搬移和空间交换之后,在第二SLUN的数据写入量低于预设阈值时,则可对第二SLUN与预留SLUN进行数据搬移和空间交换处理。
举例说明:请参考图6,图6为本申请实施例中另一种SLUN数据搬移与空间交换实施示意图。其中A为SLUN的最大带宽能力,T2为判定该存储区域为空闲状态时的写入阈值即图5和图6中的阈值T2。具体的,在确定出第一SLUN和SLUN之后,在第一SLUN对应的数据搬移和空间交换完成之后,可以采用定时器触发的方式来触发对第一SLUN的数据搬移和空间交换。先涵盖标记了最小平均PE的存储区域内统计时间间隔内写入量统计,然后判断数据写入量是否低于阈值T2,如果否,则结束本次流程,如果是,则将最小平均PE的SULN与预留SLUN进行数据搬移并交换物理空间。
需要注意的是,由于目前的常规SSD DWPD一般为1或者3,而PCIe 3.0的SSD数据写入带宽通常在3GB/s,因此大致估算,在用户正常使用SSD的前提下,每天的写入时间仅仅占几十分之一,由此评估在需要做SLUN数据迁移时,有足够的时机可以触发并完成SLUN替换动作。
优选地,在上述步骤二中对第一SLUN与预留SLUN进行数据搬移,具体包括:按照第一SLUN对应的数据写入速率成反比的搬移速率,对第一SLUN与预留SLUN进行数据搬移。请参考图7,图7为本申请实施例中一种数据搬移速率与用户写入速率关系图,其中横轴表示单位时间内用户写入数据量,即数据写入速率,纵轴表示单位时间内数据搬移数据量,即数据搬移速率。由于数据搬移和数据写入都会占用存储性能,为了避免数据搬移影响数据写入性能,在执行步骤二进行数据搬移时,还可以按照第一SLUN对应的数据写入量成反比的搬移速度,对第一SLUN与预留SLUN进行数据搬移。
进一步地,在用户写入速率过大时,可以停止数据搬移,以保障用户写入效率。即按照第一SLUN对应的数据写入速率成反比的搬移速率,对第一SLUN与预留SLUN进行数据搬移,包括:
步骤1、判断第一SLUN对应的数据写入速率是否大于预设暂停阈值;
步骤2、如果是,则暂停对第一SLUN与预留SLUN进行数据搬移,直到第一SLUN对应的数据写入速率不大于预设暂停阈值;
步骤3、如果否,则按照搬移速率,对第一SLUN与预留SLUN进行数据搬移。
近一步地,在暂停对第一SLUN与预留SLUN进行数据搬移的情况下,还可以检测第一SLUN同存储区域是否存在第三SLUN;如果是,则将第一SLUN的新用户数据写入到第三SLUN中或预留SLUN中;如果否,则将第一SLUN的新用户数据写入到预留SLUN中。
即,当数据搬移过程中用户写入数据压力增大,如超过阈值T2时,整个迁移过程暂停,在暂停期间,后续的用户数据写入可以写入到同存储区域的其他SLUN(如果存在,不存在则只写入替换SLUN)与替换SLUN中,在整个SLUN搬移完成之前不可以再写入被标记的SLUN内部。当该存储区域重新被判定为空闲时,可以从上次搬移到的地方继续进行搬移,完成SLUN切换动作。
相应于上面的方法实施例,本申请实施例还提供了一种磨损均衡装置,下文描述的磨损均衡装置与上文描述的磨损均衡方法可相互对应参照。
参见图8所示,该装置包括以下模块:
擦除次数监控模块101,用于获取各个SLUN内最小擦除单元的平均擦除次数;其中, SLUN为多个LUN的集合;
磨损均衡启动模块102,用于利用平均擦除次数,从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;
区域交换模块103,用于对第一SLUN与第二SLUN进行数据搬移和空间交换处理。
应用本申请实施例所提供的装置,获取各个SLUN内最小擦除单元的平均擦除次数;其中,SLUN为多个LUN的集合;利用平均擦除次数,从SLUN中选出满足预设磨损均衡条件的第一SLUN和第二SLUN;对第一SLUN与第二SLUN进行数据搬移和空间交换处理。
要保障多租户之间的性能隔离,需要不同租户操作的SSD的物理区域在特定时间内是完全独立的。对SSD而言,LUN是一个物理概念,是一组物理block的集合,在其物理构造上,SSD可以独立对LUN范围内的物理block进行读、写、擦,他具备独立的控制线和数据线。特定的LUN在特定的时间内只能属于一个租户。此外,由于一个LUN可能满足不了单个租户的容量要求,所以通常将多个物理LUN组成一个集合(即SLUN),提供给特定租户使用。
考虑到,选取不同物理块进行数据交换,以解决磨损均衡的问题,如果选择的不同物理块隶属于不同租户对应的LUN内部,则会造成不同租户之间性能互相干扰的问题。基于此,在本申请中以SLUN为维度,SLUN之间进行数据搬移和空间交换,便不会对其他租户造成干扰,确保性能隔离的效果。具体的,由于擦除次数越多,磨损越严重,因此可以基于擦除次数来评估各个SLUN的磨损程度。通过对不同的SLUN进行数据搬移和空间交换处理,可以使得SLUN间的磨损情况达到有效均衡。具体的,首先需获取各个SLUN内最小擦除单元的平均擦除次数,然后基于SLUN中各个最小擦除单元的平均擦除次数,从SLUN中选出两个预设磨损均衡条件的第一SLUN和第二SLUN,对二者进行数据搬移和空间交换,在保障使用SSD的各租户之间性能隔离的前提下,且不影响可靠性的情况下,可以有效均衡SLUN间的磨损情况。
在本申请的一种具体实施方式中,磨损均衡启动模块102,具体用于从各个平均擦除次数中选出最大平均擦除次数和最小平均擦除次数;在最大平均擦除次数与最小平均擦除次数的差值大于预设擦除阈值的情况下,将最大平均擦除次数对应的SLUN确定为第一SLUN,将最小平均擦除次数对应的SLUN确定为第二SLUN。
在本申请的一种具体实施方式中,区域交换模块103,具体用于拷贝第一SLUN存储的数据至预留SLUN;拷贝第二SLUN存储的数据至第一SLUN;将预留SLUN存储的数据拷贝至第二SLUN;对第一SLUN和第二SLUN进行空间交换处理。
在本申请的一种具体实施方式中,区域交换模块103,具体用于对第一SLUN和第二SLUN的数据写入量进行监控;在第一SLUN的数据写入量低于预设阈值的情况下,对第一SLUN与预留SLUN进行数据搬移和空间交换处理;在第一SLUN与预留SLUN进行数据搬移和空间交换处理之后,若第二SLUN的数据写入量低于预设阈值,则对第二SLUN与预留SLUN进行数据搬移和空间交换处理。
在本申请的一种具体实施方式中,区域交换模块103,具体用于按照第一SLUN对应的数据写入速率成反比的搬移速率,对第一SLUN与预留SLUN进行数据搬移。
在本申请的一种具体实施方式中,区域交换模块103,具体用于判断第一SLUN对应的数据写入速率是否大于预设暂停阈值;如果是,则暂停对第一SLUN与预留SLUN进行数据搬移,直到第一SLUN对应的数据写入速率不大于预设暂停阈值;如果否,则按照搬移速率,对第一SLUN与预留SLUN进行数据搬移。
在本申请的一种具体实施方式中,还包括:
数据写入处理模块,用于在暂停对第一SLUN与预留SLUN进行数据搬移的情况下,检测第一SLUN同存储区域是否存在第三SLUN;如果是,则将第一SLUN的新用户数据写入到第三SLUN中或预留SLUN中;如果否,则将第一SLUN的新用户数据写入到预留SLUN中。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种磨损均衡方法可相互对应参照。
参见图9所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的磨损均衡方法的步骤。
具体的,请参考图10,图10为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的磨损均衡方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种磨损均衡方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的磨损均衡方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:打印系统以及打印方法