一种存储设备存储数据的方法及存储设备与流程

文档序号:17473532发布日期:2019-04-20 05:58阅读:185来源:国知局
一种存储设备存储数据的方法及存储设备与流程

本发明涉及信息技术领域,特别涉及一种存储设备存储数据的方法及存储设备。



背景技术:

固态硬盘(solidstatedisk,ssd),如图1所示,包括存储控制器101和介质102(如闪存颗粒)。存储控制器101包括中央处理单元1011(centerprocessingunit,cpu)和内存1012。ssd的存储是以物理块(physicalblock)和页(page)为单位组织存储的。其中,页是固态硬盘中最小的数据读写单位,页的大小可以是4kb、8kb或16kb。由页组合成物理块,每一个物理块可以有32、64或128个页。ssd一般将存储空间分为数据空间和预留空间(over-provisioning)。数据空间为已经写入数据的空间,预留空间为空闲空间,由空闲页组成,可用于写入数据。当新的数据要覆盖ssd中数据空间已经存储的数据时,会使用重定向写(redirectiononwrite,row)机制,即当ssd向逻辑块地址(logicalblockaddress,lba)写入新数据以修改已经存储的数据时,ssd会将新数据写入预留空间的页,建立lba与预留空间的页地址的映射关系,将lba原来映射的数据空间的页地址中的数据标记为垃圾数据。当预留空间低于一定阈值后,ssd对垃圾数据所在页的物理块进行垃圾空间回收。回收过程如下:读取垃圾数据所在页的物理块中的有效数据,将读取出的有效数据写入到预留空间,并将垃圾数据所在页的物理块中的数据擦除,将该物理块作为新的预留空间。在垃圾空间回收过程中,读取出有效数据并将有效数据写入到预留空间的过程称为有效数据搬移。

垃圾空间回收会引起写放大,其中ssd垃圾空间回收搬移的有效数据大小v与新写入数据大小w之和与新写入数据大小w之比,即(v+w)/w称为写放大。



技术实现要素:

第一方面,本发明实施例提供了一种存储设备存储数据的方案,存储设备包括第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间,存储设备接收写请求,写请求携带逻辑地址和数据,存储设备判断写请求的特征。

当写请求的特征满足第一条件时,存储设备将写请求携带的数据写入第一存储区域的预留空间的第一存储地址,建立逻辑地址与第一存储地址的映射关系;当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域的预留空间的第二存储地址,建立逻辑地址与第二存储地址的映射关系。本发明实施例中,根据写请求的特征将写请求携带的数据写入不同存储区域的预留空间,减少了垃圾空间回收过程中有效数据的搬移,减少了写放大。

可选的,存储设备可独立地对第一存储区域和第二存储区域进行垃圾回收。存储设备可独立对第一存储区域和第二存储区域进行垃圾空间回收是指存储设备同一时间分别对第一存储区域和第二存储区域中的一个进行垃圾空间回收,但不影响另一个存储区域,也可同时对第一存储区域和第二存储区域进行垃圾空间回收。针对不同特征写请求写入不同存储区域的数据,基于不同存储区域中配置的不同预留空对各存储区域独立进行垃圾空间回收,可以减少了垃圾回空回收过程中有效数据的搬移,减少了写放大,进一步的还可以通过配置不同的预留空间改善垃圾空间回收流程的触发次数,从而减少存储设备中物理块的擦除次数进而改善存储设备的使用寿命。

可选的,第一存储区域的预留空间的大小与第二存储区域预留空间的大小不同。

可选的,第一存储区域的预留空间小于第二存储区域的预留空间,或者第一存储区域的预留空间与数据空间的比值小于第二存储区域的预留空间与数据空间的比值,第二存储区域由于有更多的预留空间,可以减少第二存储区域垃圾空间回收的次数。

可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。

可选的,存储设备判断写请求的特征包括:

存储设备判断写请求是顺序写请求或者随机写请求,则第一条件为顺序写请求,第二条件为随机写请求,将顺序写请求与随机写请求分别存储到不同的存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。同时,在顺序写请求与随机写请求同时存在的情况下,在不影响顺序写请求性能的同时,提高存储设备随机写的性能。可选的,判断与逻辑地址的地址之差的绝对值是否大于l的参考逻辑地址中是否有数据写入,l可根据对顺序写请求的要求设置。一种实现,当参考逻辑地址中有数据写入则写请求为顺序写请求,否则为随机写请求;另一种实现,参考逻辑地址中没有数据写入,写请求为随机写请求,当参考逻辑地址中有数据写入,进一步地,存储设备判断最后一次接收携带参考地址的写请求的时间与最后一次接收携带逻辑地址的写请求的时间间隔是否大于阈值t,如果大于,仍然为随机写请求,否则为顺序写请求。其中,t为可根据具体实现来设定。

可选的,存储设备判断写请求的特征包括:

存储设备判断写请求的顺序度,则第一条件为第一顺序度范围;第二条件为第二顺序度范围;并且第一顺序度范围的最小值大于第二顺序度范围的最大值。可选的,顺序度为当前逻辑地址的顺序写请求的计数cs与(当前逻辑地址的顺序写请求的计数cs与当前逻辑地址的随机写请求cr的计数之和)的比值s(顺序度),即cs/(cs+cr)=s。根据顺序度可将不同顺序度的写请求携带的数据分别存储在具有不同预留空间的不同存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。

可选的,所述存储设备判断写请求的特征包括:

存储设备判断写请求的随机度;

则第一条件为第一随机度范围,第二条件为第二随机度范围,并且第一随机度范围的最大值小于第二随机度范围的最小值。可选的,随机度为当前逻辑地址的随机写请求的计数cr与(当前逻辑地址的顺序写请求的计数cs与当前逻辑地址的随机写请求的计数cr之和)的比值r,即cr/(cr+cs)=r。根据随机度可将不同随机度的写请求携带的数据分别存储,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。

可选的,存储设备判断写请求的特征包括:

存储设备判断写请求携带的数据的大小;

则第一条件为第一存储区域存储的第一数据区间,第二条件为第二存储区域存储的第二数据区间,并且第一数据区间的最小值大于第二数据区间的最大值。存储设备包含不同的存储区域,每一存储区域存储对应一个数据存储区间,可以减少垃圾回收过程中有效数据的搬移,减少写放大。可选的,数据区间是指存储区域存储的写请求携带的数据的大小的区间。

可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。

可选的,存储设备为ssd,或者为叠瓦式磁记录(shingledmagneticrecording,smr)盘,或者为基于row机制带有垃圾空间回收功能的存储阵列。

与第一方面实现的方案相对应,第二方面,本发明实施还提供了一种存储设备的存储区域划分方案,存储设备将存储空间划分为第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间;其中第一存储区域的预留空间用于存储第一写请求携带的数据;第二存储区域的预留空间用于存储第二写请求携带的数据;第一写请求的特征符合第一条件;第二写请求符合第二条件。

可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以预先进行,也可以在使用过程中进行动态的划分和配置。

第三方面,与第一方面及第二方面相对应,本发明实施例还提供了存储设备,分别用于作为第一方面及第二方面实施例中存储设备,以实现本发明实施例第一方面和第二方面提供的实施例方案。存储设备包括实现第一方面及第二方面发明实施例方案的结构单元,或者,存储设备包括存储控制器以实现第一方面及第二方面的实施例方案。

相应地,本发明实施例还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明实施例提供的存储设备的存储控制器的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,存储控制器的cpu执行该计算机指令时,使存储设备执行第一方面及第二方面实施例中存储设备的功能,以实现本发明实施例第一方面及第二方面提供的方案。

附图说明

图1为ssd结构示意图;

图2为本发明实施例流程图;

图3为本发明实施例存储区域示意图;

图4为本发明实施列存储区域示意图;

图5为本发明实施例存储区域示意图;

图6为本发明实施例存储区域示意图;

图7为本发明实施例存储区域示意图;

图8为本发明实施例存储区域示意图;

图9为本发明实施例存储区域示意图;

图10为本发明实施例存储设备示意图;

图11为本发明实施例存储设备示意图。

具体实施例

本发明实施例以ssd为例,在本发明实施例中,ssd包括第一存储区域vd1和第二存储区域vd2。vd1包含数据空间和预留空间,vd2包含数据空间和预留空间,vd1的预留空间的大小与vd2的预留空间的大小不同。本发明实施例中,ssd可独立对vd1和vd2进行垃圾回间回收。ssd可独立对vd1和vd2进行垃圾空间回收是指ssd同一时间分别对vd1和vd2中的一个进行垃圾空间回收,但不影响另一个存储区域,也可同时对vd1和vd2进行垃圾空间回收。针对不同特征写请求写入不同存储区域的数据,基于不同存储区域中配置的不同预留空对各存储区域独立进行垃圾空间回收,可以减少了垃圾回空回收过程中有效数据的搬移,减少了写放大,进一步的还可以通过配置不同的预留空间改善垃圾空间回收流程的触发次数,从而减少ssd中物理块的擦除次数进而改善ssd的使用寿命。

本发明实施例ssd的上述特性还可应用到本发明实施例其他存储设备上,在此不再赘述。

本发明实施例如图2所示,包括:

步骤201:接收写请求。

ssd接收写请求,写请求中携带lba以及数据。

步骤202:判断写请求的特征。

判断写请求的特征的一种实现方式包括:

具体地,当ssd接收写请求,判断写请求是顺序写请求还是随机写请求。本发明实施例中,ssd会记录接收每一个写请求的时间以及写请求携带的lba地址。在一个具体的实施方式中,判断写请求是顺序写请求(图2所示第一条件)还是随机写请求(图2所示第二条件)的方法如下:

ssd记录接收到写请求携带的lba,以及最后一次接收到该写请求的时间。根据写请求携带的lbam,查询lban(称为参考逻辑地址)中是否有数据写入,其中,lbam与lban之差的绝对值不大于l。其中,l可以根据对顺序写请求的要求设置。如果lban中没有数据写入,则携带lbam的写请求是随机写请求;如果lban中有数据写入,一种实现方式,则携带lbam的写请求是顺序写请求;另一种实现方式,当lban中有数据写入,进一步判断最后一次接收携带lban的写请求时间与最后一次接收携带lbam的写请求时间间隔是否大于阈值t,如果大于t,则携带lbam的写请求是随机写请求;如果不大于t,则携带lbam的写请求是顺序写请求。其中,t为可根据具体实现来设定,本发明实施例对此不作限定。通常顺序写请求是来自同一个文件或者应用的写请求,随机写请求是来自不同文件或应用的写请求。

本发明实施例ssd包含图2所示第一存储区域(vd1)和图2所示第二存储区域(vd2),vd1和vd2分别包含一个或多个物理块。如图3所示,本发明实施例以vd1包含y个物理块,每一个物理块包含n+1个页,vd1用于存储顺序写请求携带的数据,第1个物理块至第y-2个物理块组成vd1的数据空间,第y-1和第y个物理块组成预留空间。

如图4所示,ssd接收第一顺序写请求,第一顺序写请求携带的逻辑地址为lba1。其中,lba1已经映射到vd1中第1物理块的n+1个页,即lba1映射到vd1中第1物理块的页0到页n。基于ssd的row机制,ssd将第一顺序写请求携带的数据写入vd1中预留空间第y-1个物理块,建立lba1与vd1中第y-1个物理块的n+1个页的映射,即建立lba1与vd1中第y-1个物理块的页0到页n的映射,将vd1中第1物理块中页0至页n中的数据标识为垃圾数据(解除lba1与vd1中第1物理块的n+1个页的映射)。ssd接收第二顺序写请求,第二顺序写请求携带的逻辑地址为lba2。其中,lba2已经映射到vd1中第2物理块的n+1个页,即lba2映射到vd1中第2物理块的页0到页n。基于ssd的row机制,ssd将第二顺序写请求携带的数据写入vd1中预留空间第y个物理块,建立lba2与vd1中第y个物理的n+1个页的映射,即建立lba2与vd1中第y个物理的页0到页n的映射,将vd1中第2物理块中页0至页n中的数据标识为垃圾数据(解除lba2与vd1中第2物理块的n+1个页的映射)。

由于图4所示的vd1中预留空间变为0,需要启动垃圾空间回收。从vd1中选择包含垃圾数据最多的物理块进行垃圾空间回收。本发明实施例中,图4中第1物理块和第2物理块中包含的垃圾数据最多,因此启动对第1物理块和第2物理块的垃圾空间回收。如图5所示,在垃圾空间回收过程中,由于vd1中第1物理块和第2物理中的页存储的均为垃圾数据,没有有效数据,因此不需要进行有效数据搬移,也就是没有写放大。因此,将顺序写请求存储到vd1中,vd1在垃圾空间回收过程中,减少了有效数据搬移,减少写放大;同时,由于垃圾空间回收过程中没有或者有很少的有效数据,因此,可以为vd1分配少量预留空间。

如图6所示,本发明实施例以vd2包含x个物理块,每一个物理块包含n+1个页,vd2用于存储随机写请求携带的数据,第1个物理块至第x-3个物理块组成vd2的数据空间,第x-2至第x个物理块组成预留空间。

如图7所示,ssd接收第一随机写请求,第一随机写请求携带的逻辑地址为lba1’。其中,lba1’已经映射到vd2中第1物理块的前m个页,即lba1’映射到vd2中第1物理块的页0到页m-1。基于ssd的row机制,ssd将第一随机写请求携带的数据写入vd2中预留空间第x-2个物理块,建立lba1’与vd2中第x-2个物理块的前m个页的映射,即建立lba1’与vd2中第x-2个物理块的页0到页m-1的映射,将vd2中第1物理块中页0至页m-1中的数据标识为垃圾数据(解除lba1’与vd2中第1物理块的前m个页的映射)。ssd接收第二随机写请求,第二随机写请求携带的逻辑地址为lba3’。其中,lba3’已经映射到vd2中第2物理块的前n+1-m个页,即lba3’映射到vd2中第2物理块的页0到页n-m。基于ssd的row机制,ssd将第二随机写请求携带的数据写入vd2中预留空间第x-2个物理块,建立lba3’与vd2中第x-2个物理块n+1-m个页的映射,即建立lba3’与vd2中第x-2个物理块的页m到页n的映射,将vd2中第2物理块中页0至页n-m中的数据标识为垃圾数据(解除lba3’与vd2中第2物理块的前n+1-m个页的映射)。

如图8所示,当vd2中预留空间小于一定阈值启动垃圾空间回收时,确定需要回收的物理块为vd2中的第1物理块和第2物理块。其中,第1物理块中页m至页n存储有效数据,需要进行有效数据搬移,本发明实施例中,将第1物理块中页m至页n存储的有效数据搬移到vd2中第x-1物理块中页0至页n-m,建立lba4’与vd2中第x-1物理块中页0至页m-1的映射;同时,将vd2中第2物理块中页m至页n存储有效数据搬移到vd2中第x-1物理块中页m至页n,建立lba2’与vd2中第x-1物理块中页m至页n的映射。ssd擦除vd2中第1物理块和第2物理块中的数据,将第1物理块和第2物理块作为预留空间。

本发明实施例中,vd1用于存储顺序写请求携带的数据,vd2用于存储随机写请求携带的数据,通过根据写请求的特征,将顺序写请求携带的数据和随机写请求携带的数据分别存储到不同的存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。

本发明实施例,通过为vd2分配更多的预留空间,即vd2的预留空间大于vd1的预留空间,可以减少垃圾空间回收次数,从而减少vd2中物理块的擦除次数,延长ssd的使用寿命。另一种实现,vd2的预留空间与vd2的数据空间的比值大于vd1的预留空间与vd1的数据空间的比值,同样可实现本发明实施例减少垃圾空间回收次数的效果。

本发明实施例中,ssd包含vd1和vd2,vd1用于存储顺序写请求携带的数据,vd2用于存储随机写请求携带的数据。在随机写请求和顺序写请求同时存在的情况下,不会影响顺序写请求的性能,同时提高了ssd随机写性能。

可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。

可选的,在多个写请求并发的情况下,当ssd接收的写请求即有顺序写请求又有随机写请求时,可优先将顺序写请求携带的数据写入第一存储区域,以提高写性能。

本发明实施例提供了步骤2判断写请求的特征的另一种实现方案:ssd统计写请求携带的lba上的顺序写请求的计数和随机写请求的计数。本发明实施例,写请求携带的lba上的顺序写请求的计数又称为写请求的顺序写请求计数,写请求携带的lba上的随机写请求的计数又称为写请求的随机写请求计数。

例如,当ssd判断携带lbam的写请求为顺序写请求,则lbam的顺序写请求的计数cs加1,当判断携带lbam的写请求为随机写请求,则lbam的随机写请求的计数cr加1。计算当前lbam的顺序写请求的计数cs/(当前lbam的顺序写请求的计数cs与当前lbam的随机写请求的计数cr之和)的值s(顺序度),如果s符合图2所示的第一条件(第一顺序度范围),则将该写请求携带的数据写入vd1;当s符合图2所示的第二条件(第二顺序度范围),则写入vd2。例如,第一顺序度范围为大于0.8并且不大于1,第二顺序度范围为不大于0.8。vd1中存储的数据对应的写请求的顺序度大于vd2中存储的数据对应的写请求的顺序度,在垃圾空间回收过程中,vd1中的物理块要比vd2中的物理块产生更少的有效数据搬移,减少了写放大。

vd1中存储的数据对应的写请求的顺序度大于vd2中存储的数据对应的写请求的顺序度,ssd为vd1分配的预留空间小于vd2的预留空间,或者vd1中预留空间与数据空间的比值小于vd2中预留空间与数据空间的比值。该实现方式减少vd2中垃圾空间回收的次数,从而减少vd2中物理块的擦除次数,从而延长了ssd使用寿命。进一步地,根据不同的顺序度将写请求分别写到不同的区域,不会影响顺序度高的写请求,同时也提高了ssd随机写性能。

可选的,在多个写请求并发的情况下,当ssd接收的写请求有不同的顺序度时,可优先处理顺序度高的写请求,或者ssd接收的写请求有不同的随机度时,可优先处理随机度低的写请求,以提高写性能。

另一种实现方式,也可以基于随机度r。当ssd判断携带lbam的写请求为顺序写请求,则lbam的顺序写请求的计数cs加1,当判断携带lbam的写请求为随机写请求,则lbam的随机写请求的计数cr加1。计算当前lbam的随机写请求的计数cr/(当前lbam的顺序写请求的计数cs与当前lbam的随机写请求的计数cr之和)的值r(随机度)。如果r符合图2所示的第一条件(第一随机度范围),则将该写请求携带的数据写入vd1;当r符合图2所示的第二条件(第二随机度范围),则写入vd2。例如,第一随机度范围为不大于0.2,第二随机度范围为大于0.2但不大于1。vd1中存储的数据对应的写请求的随机度小于vd2中存储的数据对应的写请求的随机度,在垃圾空间回收过程中,vd1中的物理块要比vd2中的物理块产生更少的有效数据搬移,减少了写放大。

vd1中存储的数据对应的写请求的随机度小于vd2中存储的数据对应的写请求的随机度,ssd为vd1分配的预留空间小于vd2的预留空间,或者vd1中预留空间与数据空间的比值小于vd2中预留空间与数据空间的比值。该实现方式减少vd2中垃圾空间回收的次数,从而减少vd2中物理块的擦除次数,从而延长了ssd使用寿命。进一步地,根据不同的随机度将写请求分别写到不同的区域,不会影响随机度低的写请求,同时也提高了ssd随机写性能。

可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以预先进行,也可以在使用过程中进行动态的划分和配置。

本发明实施例提供了步骤2判断写请求的特征的另一种实现方案:判断写请求携带的数据的大小,根据写请求携带的数据的大小确定存储区域。

如图9所示,ssd包含9个存储区域,记为vd1,vd2…vd9。本发明实施例中,一种实现方式,每一个存储区域包含r个物理块,每一个物理块包含n+1个页,另一种实现,每个存储区域中包含的物理块数量也可不同,本发明实施例对此不作限定。ssd根据写请求携带的数据的大小,选择存储区域。其中,vd1用于存储(0-4kb]的数据,vd2用于存储(4kb-8kb]的数据,vd3用于存储(8kb-16kb]的数据,vd4用于存储(16kb-32kb]的数据,vd5用于存储(32kb-64kb]的数据,vd6用于存储(64kb-128kb]的数据,vd7用于存储(128kb-256kb]的数据,vd8用于存储(256kb-512kb]的数据,vd9用于存储大于512kb的数据。其中,(4kb-8kb]的数据也称为一个数据区间的数据。数据区间是指存储区域存储的写请求携带的数据的大小的区间。vd1的数据区间表示vd1存储的写请求携带的数据的大小为不大于4kb。当ssd接收写请求,根据各存储区域存储的数据区间,确定用于存储写请求携带的数据的存储区域。以如图2所示的第二存储区域为vd1为例,由于vd1的数据区间为不大于4kb(图2所示的第二条件)的数据,因此,同一个物理块中会存储多个写请求携带的数据,当其中部分数据由于被修改标识为无效数据,在对物理块进行垃圾空间回收时,该物理块中存储的其他写请求携带的数据作为有效数据,需要进行有效数据搬移,从而引起写放大。以vd9为如图2所示的第一存储区域为例,由于vd9的数据区间为大于512kb(图2所示的第一条件)的数据,因此,同一个物理块中存储同一个或少量几个写请求携带的数据。因此,当ssd再收到针对该物理块中的数据的修改的写请求时,整个物理块中的页存储的数据会被标识为垃圾数据,在对物理块进行垃圾空间回收时,由于整个物理块中全部或大部分为垃圾数据,因此不再产生或只产生少量有效数据搬移,从而不会引起或引起很小的写放大。因此,将ssd分成不同的存储区域,每一存储区域存储对应一个数据存储区间,可以减少垃圾回收过程中有效数据的搬移,减少写放大。可选的,写请求携带的数据的大小确定对应的存储区域,存储小数据的数据区间对应的存储区域相对存储大数据的数据区间对应的存储区域分配更多的预留空间或者存储小数据的数据区间对应的存储区域的预留空间与数据空间的比值大于存储大数据的数据区间对应的存储区域的预留空间与数据空间的比值,可以减少垃圾空间回收次数,物理块被擦除的次数,延长了ssd使用寿命。

可选的,在多个写请求并发的情况下,当ssd接收的携带不同大小的数据的写请求时,可优先处理携带数据较大的写请求,以提高写性能。

本发明实施例中,ssd为vd1分配的预留空间小于vd2的预留空间,或者vd1中预留空间与数据空间的比值小于vd2中预留空间与数据空间的比值,具体实现,可根据vd1和vd2中对应的写请求的特征,确定不同的预留空间份额权重,为vd1分配的预留空间小于vd2的预留空间,或者vd1中预留空间与数据空间的比值小于vd2中预留空间与数据空间的比值。本发明实施例对此不作限定。

本发明实施例中,将写请求携带的数据写入页之后,建立lba与页之间的映射关系,根据ssd的具体实现,还可以先建立lba到写入数据的页所在的物理块的映射,具体实现请参见ssd的映射机制,本发明对此不作限定,并不再赘述。

本发明还可以应用到叠瓦式磁记录(shingledmagneticrecording,smr)盘。由于smr盘的特殊结构,在对某一磁道a进行写入时,会覆盖磁道a之后l个磁道上的数据,该磁道a之前的磁道的数据不会被覆盖。因此smr盘一般将m(m>=l)个磁道组成一个域(zone),zone内物理空间上的数据顺序写入,写入之前要将zone内有效数据先搬走。smr盘一般采用row机制,将物理储存空间划分为数据zone(已经存储数据的zone)和预留zone(空闲zone),并记录逻辑地址到物理存储空间的映射;写数据时,将数据顺序写入预留zone空间,再将逻辑地址映射到新写入的物理地址,将逻辑地址原来映射的物理地址中存储的数据标记为垃圾数据;预留zone数目低于一定阈值后,启动垃圾空间回收,找到垃圾数据最多的zone,搬移该zone中有效数据,该zone变为预留zone,可以继续写入数据。smr盘中的zone与ssd中的物理块的特性类似,因此,本发明实施例中ssd减少垃圾数据中有效数据搬移的方案同样可以应用到smr盘中,将smr盘分成不同的存储区域,每个存储区域中包含多个zone(包括数据zone和预留zone),为不同的存储区域分配不同大小的预留zone,判断写请求的特征,例如判断写请求是随机写请求或顺序写请求,或者判断写请求的顺序度,或者判断写请求的随机度,或者判断写请求携带的数据的大小,将写请求携带的数据存储到特定的存储区域的预留zone,从而减少smr盘垃圾空间回收时有效数据的搬移,减少写放大。具体实现可参见ssd的实现方案,本发明实施例在此不再赘述。smr盘不同的存储区域可分配预留zone的方式请参考前述ssd不同存储区域分配预留空间的方式。

另外,基于row机制带有垃圾空间回收功能的存储阵列中,如纯ssd存储阵列和硬盘(hdd)存储阵列中,存储阵列控制器将每个硬盘的逻辑块地址按一定单位(比如1mb)分割为块;从n个盘中每个盘取一个块组成符合一定条件(例如,独立硬盘冗余阵列(redundantarrayofindependentdisks,raid)的条带(segment),例如,组成raid6(包括3个数据块+2校验块);segment内采用顺序写方式提高写性能,segment内的数据不能覆盖写,写入之前要先将segment内有效数据搬移。存储阵列控制器将存储空间分为数据segment(已经写入数据的segment)和预留segment(空闲的segment),记录逻辑地址到物理存储空间的映射。写数据时,存储阵列控制器将数据顺序写入预留segment,再将逻辑地址映射到新写入的物理地址,将该逻辑地址原来映射的物理地址中存储的数据标记为垃圾数据;预留segment数目低于一定阈值后,启动垃圾空间回收,找到垃圾数据最多的segment,将该segment中有效数据块搬走,该segment变为预留segment,可以继续写入数据。

上述存储阵列中,segment与ssd中的物理块的特性类似,因此,本发明实施例中ssd减少垃圾空间回收有效数据搬移的方案同样可以应用到上述存储阵列,将存储阵列分成不同的存储区域,每个存储区域中包含多个segment(数据segment和预留segment),判断写请求的特征,例如判断写请求是随机写请求或顺序写请求,或者判断写请求的顺序度,或者判断写请求的随机度,或者判断写请求携带的数据的大小,将写请求携带的数据存储到特定的存储区域的预留segment,从而减少存储阵列垃圾空间回收时有效数据的搬移,减少写放大。具体实现可参见ssd的实现方案,本发明实施例在此不再赘述。存储阵列不同的存储区域可分配预留segment的方式请参考前述ssd不同存储区域分配预留空间的方式。

本发明实施例还可以应用到其他使用闪存介质及具有相似特性的存储介质组成的产品上。

可选的,本发明实施例中,以ssd为例,ssd可以包括两个以上的存储区域。进一步地,ssd可以使用多种判断写请求的特征的方式,例如,ssd包括第一存储区域和第二存储区域,判断写请求为顺序写请求或者随机写请求,当写请求为顺序写请求,将写请求携带的数据写入第一存储区域,当写请求为随机写请求,将写请求携带的数据写入第二存储区域;ssd还包括第三存储区域和第四存储区域,判断写请求的顺序度或随机度,根据写请求的顺序度或随机度,将写请求携带的数据写入第三存储区域或第四存储区域;可选的,ssd还包括第五存储区域和第六存储区域,判断写请求携带的数据的大小,根据写请求携带的数据的大小,将写请求携带的数据写入第五存储区域或第六存储区域。具体实现方式的组合本发明不作限定。

本发明实施例提供了一种存储设备,如图10所示,包含存储控制器1001、第一存储区域1002和第二存储区域1003;第一存储区域1002包括数据空间和预留空间,第二存储区域1003包括数据空间和预留空间。存储控制器1001用于执行图2所示本发明实施例。具体地,存储控制器1001接收写请求,所述写请求携带逻辑地址和数据,判断所述写请求的特征,当写请求的特征满足第一条件时,将写请求携带的数据写入第一存储区域1002的预留空间的第一存储地址;建立逻辑地址与第一存储地址的映射关系;当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域1003的预留空间的第二存储地址;建立逻辑地址与第二存储地址的映射关系。可选的,图10所示的存储设备可以为ssd,则存储控制器1001为ssd的控制器。可选的,图10所示的存储设备还可以为smr盘,则存储控制器1001为smr盘的控制器。可选的,图10所示的存储设备还可以为本发明实施例中描述的存储阵列,则存储控制器1001为存储阵列的阵列控制器,具体描述请参见本发明实施例相应部分描述,在此不再赘述。可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。

本发明实施例的存储设备还可以为其他使用闪存介质及具有相似特性的存储介质组成的产品。

本发明实施例提供了另一种存储设备,如图11所示,包含存储控制器、第一存储区域1105和第二存储区域1106;其中存储控制器包括接收单元1101、判断单元1102、写入单元1103和映射单元1104。接收单元1101,用于接收写请求;写请求携带逻辑地址和数据;判断单元1102,用于判断写请求的特征;写入单元1103,用于当写请求的特征满足第一条件时,将写请求携带的数据写入第一存储区域1105的预留空间的第一存储地址;映射单元1104,用于建立逻辑地址与所述第一存储地址的映射关系;写入单元1103还用于当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域1106的预留空间的第二存储地址;映射单元1104还用于建立逻辑地址与第二存储地址的映射关系。可选的,图11所示的存储设备,存储控制器可独立地对第一存储区域1105和第二存储区域1106进行垃圾空间回收。可选的,第一存储区域1105的预留空间的大小与第二存储区域1106的预留空间的大小不同。可选的,第一存储区域1105的预留空间小于第二存储区域1106的预留空间,第一存储区域1105的预留空间的大小小于第二存储区域1106的预留空间的大小。可选的,第一存储区域1105的预留空间与数据空间的比值小于第二存储区域1106的预留空间与数据空间的比值。可选的,所述判断单元1102具体用于判断写请求是顺序写请求或者随机写请求;则第一条件为顺序写请求,所述第二条件为随机写请求。可选的,判断单元1102具体用于判断所述写请求的顺序度,则第一条件为第一顺序度范围,第二条件为第二顺序度范围,并且第一顺序度范围的最小值大于第二顺序度范围的最大值,关于顺序度的含义请参见图2所示的实施例中的描述。可选的,判断单元1102具体用于判断所述写请求的随机度,则第一条件为第一随机度范围,第二条件为第二随机度范围,并且第一随机度范围的最大值小于所述第二随机度范围的最小值,关于随机度的含义请参见图2所示的实施例中的描述。可选的,判断单元1102具体用于判断写请求携带的数据的大小,则第一条件为第一存储区域1105存储的第一数据区间,第二条件为第二存储区域1106存储的第二数据区间;并且第一数据区间的最小值大于第二数据区间的最大值,关于数据区间的含义请参见图2所示的实施例中的描述。可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。

如图11所示的存储设备,可以为ssd、smr盘或本发明实施例中的存储阵列,如图11所示的存储设备,还可以为其他使用闪存介质及具有相似特性的存储介质组成的产品,具体描述请参见本发明实施例相应部分描述,在此不再赘述。

如图11所示的存储设备,一种实现方式为存储设备安装上有述单元,上述单元可被加载到存储设备的存储控制器中的内存中,由存储控制器中的cpu执行内存中的指令,实现本发明对应的实施例中的功能;另一种实现,存储设备中包含的单元可以由硬件来实现,或者由软件与硬件组合实现。上述单元也称为结构单元。

本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品,当图10和图11所示的存储设备的存储控制器的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,cpu执行内存中加载的该计算机指令,以实现本发明各实施中对应的功能。

根据上述实施例,本发明实施例提供了存储设备的存储区域划分方法,存储设备将存储空间划分为第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间;其中第一存储区域的预留空间用于存储第一写请求携带的数据;第二存储区域的预留空间用于存储第二写请求携带的数据;第一写请求的特征符合第一条件;第二写请求符合第二条件。具体地,第一条件、第二条件、第一写请求的特征和第二写请求的特征请参见图2所示实施例的描述,在此不再赘述。第一存储区域的预留空间和第二存储区域的预留空间的关系也请参见图2所示实施例的描述。本发明实施例中存储设备的结构可参考图10所示,在此不再赘述。可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以可以预先进行,也可以在使用过程中进行动态的划分和配置。

在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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