面向NVM和SSD的数据存储方法、控制器及系统技术方案

技术编号:37361628 阅读:9 留言:0更新日期:2023-04-27 07:09
本发明专利技术公开了一种面向NVM和SSD的数据存储方法、控制器及系统,属于计算机系统结构领域,包括:静态地址映射:对外提供统一的线性逻辑地址空间,分为映射到NVM设备的区域NVM

【技术实现步骤摘要】
面向NVM和SSD的数据存储方法、控制器及系统


[0001]本专利技术属于计算机系统结构领域,更具体地,涉及面向NVM和SSD的数据存储方法、控制器及系统。

技术介绍

[0002]非易失内存(non

volatile memory,NVM)被期望拥有接近内存的性能、支持字节寻址和磁盘一样持久化的能力,但是在第一款商用NVM,IntelOptaneDC Persistent Memory出现之后,测试发现其在持久化模式下,读写带宽与延迟不仅远低于内存,而且表现出显著的不对称性,其中读写带宽分别为6.6GB/s和2.3GB/s,读写延迟分别为1.2us和1.7us。当I/O大小超过128KiB时,NVM的写带宽甚至低于现有的SSD,大约为3.5GiB/s。除此之外,NVM的写并行度受限,在数据大于等于4KiB时,写线程数为4时达到吞吐峰值,之后随着线程数量的增加,吞吐将会显著下降。
[0003]近些年来,基于Nand闪存颗粒的固态硬盘(Solid State Drives,SSD),在容量与性能方面得到了巨大的提升,尤其是最近推出的采用NVMe协议的NVMe

SSD,可以达到十微秒级的延迟和GB级的带宽。当然,其也存在有限的擦除寿命、错位更新、垃圾回收和读写不对称的缺点。
[0004]现有的面向NVM和SSD的混合存储系统,一般基于NVM拥有较好的性能,但是容量较小且价格昂贵,而SSD性能较低,但是容量更大且价格较为便宜的考虑,通过对文件系统或者缓存系统进行重新设计,来同时使用NVM和SSD。例如Strata的设计是将所有的数据直接写到上层的NVM中,然后迁移冷数据到下层大容量的SSD中;Ziggurat在此基础上进一步优化,会有选择性的发送异步或者大写请求到下层的SSD中来优化性能;除此之外,FirstResponder将NVM作为cache添加到现有文件系统中,并在I/O栈顶吸收所有的文件系统请求。
[0005]以上面向NVM和SSD的混合存储系统,具有较好的性能,但是存在过度利用上层的NVM,反而忽略了下层SSD在大写吞吐和性价比上的优势的问题,无法同时发挥NVM和SSD各自的性能优势。

技术实现思路

[0006]针对现有技术的缺陷和改进需求,本专利技术提供了面向NVM和SSD的数据存储方法、控制器及系统,其目的在于,对混合存储系统的架构进行改进,最大程度上发挥NVM和SSD设备的性能优势,从而有效提升混合存储系统整体的性能。
[0007]为实现上述目的,按照本专利技术的一个方面,提供了一种面向NVM和SSD的数据存储方法,包括:静态地址映射和动态请求调度;
[0008]静态地址映射包括:对外提供统一的线性逻辑地址空间,线性逻辑地址空间分为映射到NVM设备的区域NVM

zone和映射到SSD设备的区域SSD

zone;元数据和文件数据分别被映射到区域NVM

zone和区域SSD

zone;
[0009]动态请求调度包括:从NVM设备中划分出一块空间作为NVM

buffer,并且对于被映射到区域SSD

zone的文件数据,执行如下操作:
[0010]若系统当前未处于小写密集型的负载场景,且请求为小写请求,则将该数据缓存到NVM

buffer中,并记录该数据在SSD设备中的目标地址及缓存地址;否则,直接将该数据写入SSD设备中;
[0011]其中,大写请求所请求写入的数据大于预设的阈值,而小写请求所写入的数据不超过阈值。
[0012]进一步地,被缓存在NVM

buffer中的数据,其在SSD设备中的目标地址与其在NVM

buffer中的缓存地址以键值对的形式记录,且目标地址和缓存地址分别为键值对的键和值。
[0013]进一步地,键值对通过哈希表索引。
[0014]进一步地,本专利技术提供的面向NVM和SSD的数据存储方法,还包括:创建由4个I/O线程组成的I/O线程池,并且为每个I/O线程创建一个请求队列;
[0015]并且,访问NVM设备的请求的执行包括:
[0016]用户线程将访问NVM设备的请求提交至对应的I/O线程的请求队列,由对应的I/O线程按顺序从请求队列中获取请求并进行处理,请求处理完成后,通知对应的用户线程。
[0017]进一步地,NVM

buffer包括与4个I/O线程一一对应的4个segment,并且,面向NVM和SSD的数据存储方法还包括:
[0018]当某个segment被写满时,或者某个I/O线程处于轻负载状态时,将对应segment中的数据迁移到SSD设备中。
[0019]进一步地,本专利技术提供的面向NVM和SSD的数据存储方法,还包括:在内存中为每个segment维护一份运行时元数据;
[0020]运行时元数据包括:segment所缓存的数据在SSD设备中的目标地址与其在NVM

buffer中的缓存地址,以及比特位图;比特位图用于记录segment中各数据块是否空闲的状态。
[0021]进一步地,本专利技术提供的面向NVM和SSD的数据存储方法,对于被映射到SSD设备的大写请求Req
L
,其处理包括:
[0022]在用户线程,按照逻辑块大小将大写请求Req
L
划分为子请求,并按照子请求的偏移对4求余,将求余结果作为对应I/O线程的编号;将各子请求提交到对应I/O线程的请求队列中,同时将大写请求Req
L
提交到SSD设备中;
[0023]I/O线程轮询对应的请求队列,以获取子请求;对于大写请求Req
L
的子请求,若其中的数据已被缓存在NVM

buffer中,则将该数据在SSD设备中的目标地址及缓存地址的记录信息删除,并释放该数据在NVM

buffer中所占用的空间;
[0024]当用户线程接收到所有子请求在I/O线程完成的通知,其提交到SSD设备的请求也返回后,大写请求Req
L
的处理完成。
[0025]进一步地,本专利技术提供的面向NVM和SSD的数据存储方法,对于被映射到SSD设备的读请求Req,其处理包括:
[0026]在用户线程,按照逻辑块大小将读请求Req划分为子请求,并按照子请求的偏移对4求余,将求余结果作为对应I/O线程的编号;将各子请求提交到对应I/O线程的请求队列
中,同时从SSD设备中读取对应的数据到SSD
buf
中;
[0027]I/O线程轮询对应的请求队列,以获取子请求;对于读请求Req的子请求,若其中的数据已被缓存在NVM

buffer中,则从NVM

buffer中读取对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向NVM和SSD的数据存储方法,其特征在于,包括:静态地址映射和动态请求调度;所述静态地址映射包括:对外提供统一的线性逻辑地址空间,所述线性逻辑地址空间分为映射到NVM设备的区域NVM

zone和映射到SSD设备的区域SSD

zone;元数据和文件数据分别被映射到区域NVM

zone和区域SSD

zone;所述动态请求调度包括:从所述NVM设备中划分出一块空间作为NVM

buffer,并且对于被映射到区域SSD

zone的文件数据,执行如下操作:若系统当前未处于小写密集型的负载场景,且请求为小写请求,则将该数据缓存到NVM

buffer中,并记录该数据在SSD设备中的目标地址及缓存地址;否则,直接将该数据写入SSD设备中;其中,大写请求所请求写入的数据大于预设的阈值,而小写请求所写入的数据不超过所述阈值。2.如权利要求1所述的面向NVM和SSD的数据存储方法,其特征在于,被缓存在NVM

buffer中的数据,其在SSD设备中的目标地址与其在NVM

buffer中的缓存地址以键值对的形式记录,且目标地址和缓存地址分别为键值对的键和值。3.如权利要求2所述的面向NVM和SSD的数据存储方法,其特征在于,键值对通过哈希表索引。4.如权利要求1~3任一项所述的面向NVM和SSD的数据存储方法,其特征在于,还包括:创建由4个I/O线程组成的I/O线程池,并且为每个I/O线程创建一个请求队列;并且,访问NVM设备的请求的执行包括:用户线程将访问NVM设备的请求提交至对应的I/O线程的请求队列,由对应的I/O线程按顺序从请求队列中获取请求并进行处理,请求处理完成后,通知对应的用户线程。5.如权利要求4所述的面向NVM和SSD的数据存储方法,其特征在于,NVM

buffer包括与4个I/O线程一一对应的4个segment,并且,所述面向NVM和SSD的数据存储方法还包括:当某个segment被写满时,或者某个I/O线程处于轻负载状态时,将对应segment中的数据迁移到SSD设备中。6.如权利要求5所述的面向NVM和SSD的数据存储方法,其特征在于,还包括:在内存中为每个segment维护一份运行时元数据;所述运行时元数据包括:segment所缓存的数据在SS...

【专利技术属性】
技术研发人员:曹强朱庆松
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1