一种基于相关感知页面级FTL固态硬盘性能优化方法与流程

文档序号:17721097发布日期:2019-05-22 02:10阅读:193来源:国知局
一种基于相关感知页面级FTL固态硬盘性能优化方法与流程

本发明涉及ssd存储技术领域,具体涉及基于相关感知页面级ftl固态硬盘性能优化方法。



背景技术:

随着大数据时代的到来,整个计算机系统对存储子系统的要求越来越高,基于磁盘的存储系统在性能、功耗等方面的缺陷更加突出。近年来,由于制作工艺的进步,闪存(flashmemory)的存储密度不断提高,单位容量的价格逐步下降。闪存具有高性能、低功耗、非易失、质量强、抗震动等优点。基于闪存的固态硬盘(solidstatedrive,ssd)已应用于大规模存储领域,正处于快速普及阶段,使存储系统滞后计算机系统的局面有所改观,目前随着闪存容量的迅速增长和成本的不断降低,传统磁盘的统治地位正受到强有力的挑战。

当前的闪存芯片分为nor型和nand型,由于nand型闪存相对于nor型闪存,具有存储密度高、成本较低和写速度较高等优势,使其更适合应用于数据存储上,所以固态硬盘产品主要采用nand型的闪存芯片。随着制造工艺的进步,nandflash芯片的存储密度越来越高,由其构成的固态硬盘的容量越来越大。固态硬盘内部通常通过内置有限的内存用来全部或部分存储映射表,然而随着固态硬盘容量的增大,闪存转换层(flashtranslationlayer,ftl)维护映射所需要的内存空间增大,传统的管理方式受到挑战。

ssd主要由控制和存储两部分组成,存储部分主要是用于数据存储,控制部分用于读写数据等操作。针对现有的固态硬盘的ftl不能解析主机端存储访问的语义,仅以闪存页和闪存块为粒度用映射表的形式对ssd的存储空间进行管理,无法很好地解决受限条件下大容量闪存页管理带来的开销问题。通过少量修改现有的文件系统和i/o路径,使与存储布局相关的数据类型语义信息能够传递到固态硬盘。通过对请求数据进行分类处理,对文件系统的元数据采用基于页表的页级地址映射,对用户数据采用基于区段的地址映射以可变粒度的形式对闪存的存储空间进行管理,从而降低传统页表映射所需的内存容量,提升系统性能。利用文件系统发出的i/o请求携带的文件标识语义信息,汇聚同一文件的数据,便于ssd的垃圾回收与损耗均衡,提升系统寿命。



技术实现要素:

本发明的目的在于提供一种基于相关感知页面级ftl固态硬盘性能优化方法,该方法是率先在ftl中利用数据相关性的方法之一。通过在工作负载中巧妙地利用语义链接,提出相关感知页面级ftl可以显著的增强页面映射效率,读取和写入性能以及减少垃圾收集开销;在考虑到有限的磁盘存储器和计算资源下,为减少地址转换期间的页面提取次数,提出了相关性预测表来支持快速相关表查找;为了减轻垃圾收集开销,开发了偏斜感知的脏条目索引方案,该方案在执行位置感知脏条目更新以减少写入闪存的总数。

为了达到上述目的,本发明通过以下技术方案实现:

一种基于相关感知页面级ftl固态硬盘性能优化方法,具体步骤包含:

步骤1、设计相关感知页面级ftl模块,其步骤如下:

s11、引入翻译块,所述翻译块包括翻译块体和翻译块首部,通过相关操作使得要处理的数据排列在连续内存上,以提高内存数据局部性,从而提高性能;

s12、定义写操作在短时间帧内对同一地址进行挂起读操作的条件,先将脏条目的挂起读操作定义为脏读,对i/o跟踪进行分区,后将写入操作的数量除以写入操作之后的读取次数来计算每个分区的脏读、写比率,读取后写入数据的百分比;

s13、将频繁更新的翻译页面中的脏条目保持更长时间,并通过页面id索引脏条目以执行共同定位的脏页面更新,通过隔离具有不同更新频率的翻译页面,以最小化垃圾回收争用;

步骤2、基于读操作的相关性,通过聚类感知关联挖掘算法来设计相关感知映射表;

步骤3、构建相关性预测表,以支持相关感知映射表中映射条目的快速查找;

步骤4、拆分读写缓存并构建了一个偏斜感知的脏条目索引,以提高缓存命中率并减少垃圾收集开销。

优选地,所述步骤2中的聚类感知关联挖掘算法快速挖掘出最常用的序列,将lba地址拆分为固定大小的块,在本文中交替使用区域和块;并收集读取跟踪并将其转换为区域访问序列;定期执行快速区域相关性查找以找到最相关的区域。

优选地,所述的聚类感知关联挖掘算法中,对于读取请求,先检查相关性预测字典,后加载并缓存相关映射;对于写入请求,先检查相关性预测字典并屏蔽已删除的相关映射,后在后台执行删除过时的相关映射表以避免延迟外部请求。

优选地,所述步骤3中,相关性预测表中的条目包含相关性布隆过滤预测器和相关翻译页面的物理页面编号;

所述相关性布隆过滤预测器包含相关翻译页面的物理页面编号中最大和最小的lpn及所有lpn所构成的布隆过滤预测器;当ftl需要定位dlpn的位置时,它首先检查相关性布隆过滤预测器以确定dlpn是否在布隆过滤预测器中,如果dlpn在布隆过滤预测器中,则加载相关翻译页面以搜索dlpn;如果找到dlpn,则相关映射将被预取。

优选地,所述步骤3中,相关性预测表结合自适应预取操作来提高预测表中数据的相关性。

优选地,所述步骤4中,所述的偏斜感知的脏条目索引是在映射缓存中开发了一个脏条目索引,基于i/o工作负载中写操作更新的频率高度偏差来研究用于存储更新频率偏差的存储器的管理,以提高缓存利用率并启用脏条目的并置批量更新。

优选地,在步骤4中,将干净缓存和脏缓存单独管理,以减少干净缓存和脏缓存的争用,且在脏页删除策略中更容易利用映射页面的倾斜更新频率。

优选地,执行垃圾回收操作的步骤如下:

步骤11、根据触发条件,选择一个或多个块作为待回收块,等待被擦除;

步骤12、对每一个待回收块遍历其中每一个页面,查看其数据是否有效;

步骤13、对于有效数据的页,先分配空闲页面,后将有效页面上的数据复制到所述空闲页上;

步骤14、根据相关感知映射表查找到该逻辑页对应的物理页后,更新该逻辑页的映射条目和物理页的映射条目;

步骤15、待回收块中所有页面遍历完成后,擦除待回收块,修改相应的状态信息。

优选地,对于垃圾回收块的选择方法如下:

当固态硬盘的磨损不均衡的时候,回收块将倾向于选择擦除次数较少的回收块;

当固态硬盘的磨损均衡的时候,选择垃圾回收性能和效率高的回收块;

因此,此回收算法能够根据当前的磨损情况动态的平衡垃圾回收过程中的性能和磨损均衡,有效的提高固态硬盘的寿命,降低垃圾回收中的额外操作。

优选地,回收块的选择依据如下公式:

其中,valid(blk)是对块号为blk的闪存块中的有效数据,invalid(blk)表示的是对块号为blk的闪存块的无效数据,renew(blk)是对块号为blk的闪存块中垃圾回收的额外操作页数;

参数λ定义为固态硬盘的损耗均衡程度,当erase_max=erase_min

时,λ定义为0,当erase_max≠erase_min时,定义如下公式:

其中,k为常量,表示的是损耗均衡的恢复速度,erase_max表示最大损耗程度,erase_min表示最小损耗程度。

本发明与现有技术相比具有以下优点:

1、本发明考虑了与现有的固态硬盘的闪存转换层的比较,设计了一种基于相关感知页面级ftl固态硬盘性能优化方法,该方法可有效地降低大容量固态硬盘的维护映射表所需的内存空间,提升了系统性能,延长了固态硬盘的使用寿命。

2、率先在ftl中利用数据相关性:当前大多数ftl的映射表的设计是基于空间或时间局部性的,然而ftl的实际工作负载通常表现出非常低的局部性,这是因为大多数局部性已被更高级别的主内存,文件系统缓冲区和存储缓存等过滤,故通过在工作负载中独创性地利用语义链接,提出相关感知页面级ftl(cpftl)。

3、开发开销更低的挖掘算法:设计相关映射表时存在若干挑战,首先,ssd中的cpu和内存资源非常有限;其次,相关映射表是无序的,更新和搜索相关映射表时的开销很高;故提出一种聚类感知关联挖掘算法(cacm),该算法可以快速挖掘出最常用的序列,从而可降低传统页表映射所需的内存量及访问层次,提升系统性能。

4、提出的cpftl大大提高ssd性能:目前常见的典型的混合映射策略ftl有bast、fast、cftl等,这些ftl普遍具有内存开销低的优点,但数据区与日志区合并时仍然带来较大的垃圾回收开销,针对此,本发明提出的ftl的映射空间具有动态变化的特性,在顺序访问集中的负载下,有较小的写放大系数以及更少的擦除次数;在访问的地址空间较小时,能够动态地将内存分配用作数据缓存,进而降低闪存的实际写入,减少写放大;因此,cpftl对ssd寿命和性能尤其是在顺序访问集中的工作负载下有着明显的提升。

附图说明

图1为本发明固态硬盘性能优化方法的流程图;

图2为本发明的垃圾回收操作的结构图。

具体实施方式

以下结合附图,通过详细步骤说明一个较佳的具体实施例,对本发明做进一步阐述。

如图1所示,一种基于相关感知页面级ftl固态硬盘性能优化方法,包含以下步骤:

步骤1、设计相关感知页面级ftl模块,其步骤如下:

s11、引入翻译块,所述翻译块包括翻译块体和翻译块首部,通过相关操作使得要处理的数据排列在连续内存上,以提高内存数据局部性,从而提高性能;

s12、定义写操作在短时间帧内对同一地址进行挂起读操作的条件,将脏条目的挂起读操作定义为脏读,对i/otrace(跟踪)进行分区,然后将写入操作的数量除以写入操作之后的读取次数来计算每个分区的脏读、写比率,读取后写入数据的百分比;

s13、将频繁更新的翻译页面中的脏条目保持更长时间,并通过页面id索引脏条目以执行共同定位的脏页面更新,通过隔离具有不同更新频率的翻译页面,以最小化垃圾回收争用。

步骤2、基于读操作的相关性,通过聚类感知关联挖掘(cacm)算法来设计相关感知映射表;

所述步骤2中的聚类感知关联挖掘算法快速挖掘出最常用的序列,将lba(逻辑区块地址)地址拆分为固定大小的块,在本文中交替使用区域和块;并收集读取跟踪并将其转换为区域访问序列;定期执行快速区域相关性查找以找到最相关的区域。所述的聚类感知关联挖掘算法中,对于读取请求,先检查相关性预测字典,后加载并缓存相关映射(如果存在);对于写入请求,先检查相关性预测字典并屏蔽已删除的相关映射,后在后台执行删除过时的相关映射表以避免延迟外部请求。

步骤3、构建相关性预测表,以支持相关感知映射表中映射条目的快速查找;

所述步骤3中,相关性预测表中的条目包含相关性布隆(bloom)过滤预测器(cbfp)和相关翻译页面的物理页面编号(cppn);所述相关性预测表结合自适应预取操作来提高预测表中数据的相关性。

其中,所述cbfp包含cppn中最大和最小的lpn(逻辑页号)及cppn中所有lpn所构成的布隆过滤预测器;当ftl需要定位相关翻译页面的逻辑页面编号(dlpn)的位置时,它首先检查cbfp以确定dlpn是否在布隆过滤预测器中,如果dlpn在布隆过滤预测器中,则加载相关翻译页面以搜索dlpn;如果找到dlpn,则相关映射将被预取。

步骤4、拆分读写缓存并构建了一个偏斜感知的脏条目索引,以提高缓存命中率并减少垃圾收集开销。

所述步骤4中,所述的偏斜感知的脏条目索引是在映射缓存中开发了一个脏条目索引,基于i/o工作负载中写操作更新的频率高度偏差来研究用于存储更新频率偏差的存储器的管理,以提高缓存利用率并启用脏条目的并置批量更新。

进一步地,在步骤4中,将干净缓存和脏缓存单独管理,以减少干净缓存和脏缓存的争用,且在脏页删除策略中更容易利用映射页面的倾斜更新频率。

进一步地,在本发明中满足垃圾回收的触发条件时,执行垃圾回收操作的步骤如下:

步骤11、根据触发条件,选择一个或多个块作为待回收块,等待被擦除;

步骤12、对每一个待回收块遍历其中每一个页面,查看其数据是否有效;

步骤13、对于有效数据的页,先分配空闲页面,后将有效页面上的数据复制到所述空闲页上;

步骤14、根据相关感知映射表查找到该逻辑页对应的物理页后,更新该逻辑页的映射条目和物理页的映射条目;

步骤15、待回收块中所有页面遍历完成后,擦除待回收块,修改相应的状态信息。

对于垃圾回收块的选择方法如下:

当固态硬盘的磨损不均衡的时候,回收块将倾向于选择擦除次数较少的回收块,也就是磨损较少的块;

当固态硬盘的磨损均衡的时候,选择垃圾回收性能和效率高的回收块,这样垃圾回收的时候更多的考虑垃圾回收带来的有效数据迁移开销和区块恢复合并的开销;

因此,此回收算法能够根据当前的磨损情况动态的平衡垃圾回收过程中的性能和磨损均衡,有效的提高固态硬盘的寿命,降低垃圾回收中的额外操作。

进一步地,回收块的选择依据如下公式:

其中,valid(blk)是对块号为blk的闪存块中的有效数据,invalid(blk)表示的是对块号为blk的闪存块的无效数据,renew(blk)是对块号为blk的闪存块中垃圾回收的额外操作页数;

参数λ定义为固态硬盘的损耗均衡程度,当erase_max=erase_min时,λ定义为0,当erase_max≠erase_min时,定义如下公式:

其中,k为常量,表示的是损耗均衡的恢复速度,erase_max表示最大损耗程度,erase_min表示最小损耗程度。

由此可见,基于相关感知页面级ftl固态硬盘性能优化方法,克服了垃圾回收操作显著增加的对用户请求的响应延迟,给ssd存储技术带来了质的飞跃,但同时也对存储和计算能力提出了新的挑战,需要有一个能提供有效支撑的技术平台。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

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