一种基于数据缓冲机制的NVMe全闪存存储方法及其系统技术方案

技术编号:36261542 阅读:22 留言:0更新日期:2023-01-07 09:59
本发明专利技术公开了一种基于数据缓冲机制的NVMe全闪存存储方法及其系统,其特点是该方法采用通过哈希线性扩展链表查找数据信息,如数据在缓冲层中,直接通过缓存读取或改写,反之则通过CPU向内存申请虚拟块设备硬件,使用DMA与NVMe硬盘直接进行数据交互,如是写入或改写数据请求,将元数据信息写入或改写到元数据库,定期将缓冲层中的数据通过虚拟块设备使用DMA直接写入NVMe硬盘,使用RDB将元数据固化并清理内存,系统包括:NVMe硬盘读写、元数据管理、读写数据缓存和内存清除等模块。本发明专利技术与现有技术相比具有高可扩展性、低读写延迟、高并发写入吞吐的优点,使CPU的性能得到相当程度的解放,能适应大数据的应用需求。能适应大数据的应用需求。能适应大数据的应用需求。

【技术实现步骤摘要】
一种基于数据缓冲机制的NVMe全闪存存储方法及其系统


[0001]本专利技术涉及计算机存储
,尤其是一种基于数据缓冲机制的NVMe全闪存存储方法及其系统。

技术介绍

[0002]随着物联网的发展,时空数据呈指数级增长,为了应对数据增加带来的挑战,需要一个可扩展且高效存储架构,可以存储、查询、分析和可视化时空大数据。由于固态硬盘(SSD)和非易失性快速存储器主机控制器接口规范(NVMe)等新兴技术的出现,基于NVMe的固态存储器在延迟和峰值带宽方面提供了前所未有的性能。结合物联网业务的特征,数据存储方法要满足极高的可扩展性、低延迟的数据访问、高并发的写入吞吐、高效的时空数据查询等,但是现有存储系统与物联网大数据的存储需求之间还存在着巨大的差距。
[0003]目前主流的数据存储系统,如Ceph、HDFS在面对海量小文件的快速存取压力时,往往会产生严重的读写吞吐瓶颈。在处理海量小文件数据时,随着数据量的急剧增加,元数据的大小也急剧增加,传统的元数据架构、元数据备份管理、元数据动态负载均衡等越来越难适应大数据应用需求,这将产生一系列的性能瓶颈。

技术实现思路

[0004]本专利技术的目的是针对现有技术的不足而设计的一种基于数据缓冲机制的NVMe全闪存存储方法及其系统,采用SPDK实现的添加虚拟块的NVMe硬盘写入模块和Redis实现元数据管理模块、数据缓冲模块、内存清除策略选择模块构建的全闪存存储系统,实现了时空大数据背景下高可扩展性、低读写延迟、高并发写入吞吐的特点,大大提高了数据存储的增删改查的效率,较好地缓解了NVMe固态硬盘在高并发写入情况下的I/O压力,使CPU的性能得到相当程度的解放,能很好的适应大数据的应用需求,具有很好的应用前景和推广价值。
[0005]实现本专利技术目的具体技术方案是:一种基于数据缓冲机制的NVMe全闪存存储方法,其特点是该方法包括如下步骤:步骤一:接收到来自用户的读写请求时,从元数据库中通过哈希线性扩展链表查找数据信息。
[0006]步骤二:如果数据在缓冲层中,直接通过缓存读取或改写;如果数据不在缓冲层中,则通过CPU向内存申请虚拟块设备硬件,并对应到NVMe硬盘上的特定实体块设备,使用DMA与NVMe硬盘直接进行数据交互。
[0007]步骤三:在DMA传输完成后,针对数据请求的类型,判断是否要将此数据读取到缓冲层中(读请求)或更新NVMe硬盘中的对应数据(写请求)。
[0008]步骤四:如果是写入或改写数据请求,将元数据信息写入或改写到元数据库,并使用AOF将操作写入日志文件。
[0009]步骤五:定期将缓冲层中的数据通过虚拟块设备使用DMA直接写入NVMe硬盘,使用RDB将元数据固化,使用删除策略(随机删除、LRU算法删除或读取频次删除)来清理内存。
[0010]一种基于数据缓冲机制的NVMe全闪存存储方法架构的全闪存存储系统,其特点是该系统具体包括:添加虚拟块的NVMe硬盘读写模块、元数据管理模块、读写数据缓存模块和内存清除策略选择模块;所述添加虚拟块的NVMe硬盘读写模块用于接收读写请求后,根据请求将数据写入固态硬盘或从固态硬盘中读取;所述元数据管理模块用于存放和管理元数据,包括存储路径、存储量、变更、新增、删除、SSD信息、数据布局和UUID等信息;所述读写数据缓存模块用于将NVMe固态硬盘中的数据存入缓存,在接收到读写请求时直接在缓存中进行处理;所述内存清除策略选择模块用于根据上一个时间段的读写请求分布选择合适的策略对缓存区进行清理。
[0011]所述添加虚拟块的NVMe硬盘读写模块,在I/O栈中通过CPU申请添加一个更大的虚拟块来作为读写单元,用户可以自定义虚拟块的大小来满足用户程序的写入需求。虚拟块被系统视为硬件设备,因此可以不用CPU中断操作直接经过DMA写入NVMe硬盘对应的块设备中,以实现比设备更大的页面和数据的高速写入。
[0012]所述元数据管理模块中使用缓存数据库对元数据进行管理,使用内存来加速元数据的读写速度,使用哈希线性扩展链表来对元数据进行增、删、改、查的操作,使用主从同步功能对各节点的元数据库进行同步。
[0013]所述读写数据缓存模块中使用缓存数据库的空闲部分构建一个数据缓冲层,将高频读写的数据从NVMe固态硬盘中读取出来。当读写请求中的数据在缓冲层中存在时,直接从缓冲层进行读写,每隔一定时间段再将缓冲层中的数据通过添加虚拟块的NVMe硬盘读写模块写回NVMe硬盘。
[0014]所述内存清除策略选择模块根据上一个时间段读写请求的分布和命中缓冲层的次数,选择LRU算法删除、随机删除、按读取频次删除三种删除方法中的一种定期对缓冲层中的数据进行删除,保证缓冲层拥有足够的空间。
[0015]本专利技术与现有技术相比在读写方面提升了NVMe固态硬盘的读写I/O速度,充分发挥了NVMe固态硬盘的功能,同时不依赖CPU中断来进行读写,释放了CPU的性能,在元数据库方面,使用缓冲层减少了NVMe硬盘的读写负载,大大加快了在缓冲层中处理读写请求的速度,有效解决了硬盘小写问题,同时提供了三种删除策略(随机删除、LRU算法删除和读取频次删除)以保证缓冲层的可用空间,方法简便、有效,实现了时空大数据背景下高可扩展性、低读写延迟、高并发写入吞吐的特点,大大提高了数据存储的增删改查的效率,较好地缓解了NVMe固态硬盘在高并发写入情况下的I/O压力,使CPU的性能得到相当程度的释放,能很好的适应大数据的应用需求,具有很好的应用前景和推广价值。
附图说明
[0016]图1为本专利技术架构的NVMe全闪存存储系统结构示意图;图2为本专利技术架构的NVMe全闪存存储系统流程图;图3为添加虚拟块的NVMe固态硬盘的读写模块图;图4为使用哈希线性扩展链管理元数据的模块图;图5为添加缓存层的读模块;图6为添加缓存层的写模块。
具体实施方式
[0017]本专利技术采用数据缓冲机制的NVMe全闪存存储方法,具体包括下述步骤:步骤一:通过向CPU内存申请虚拟块设备硬件,对应到NVMe硬盘上的特定实体块设备;步骤二:若为读取或改写请求,从Redis元数据库中通过哈希线性扩展链表查找数据信息;步骤三:根据读写数据请求,若数据在缓冲区中,则直接通过缓存读取或改写向指定虚拟块设备传输数据。若数据不在缓冲区中,通过虚拟块设备使用DMA与NVMe硬盘直接进行数据交互,并判断是否要将此数据读取到缓存中;步骤四:若为写入或改写请求,将元数据信息写入或改写进Redis元数据库,并使用AOF将操作写入日志文件;步骤五:定期将缓冲区中的数据通过虚拟块设备使用DMA直接写入NVMe硬盘,使用RDB将元数据固化,使用读取频次删除进行内存清理。
[0018]下面结合附图及具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术的保护范围。
[0019]参阅图1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据缓冲机制的NVMe全闪存存储方法,其特征在于,该方法包括如下步骤:步骤一:接收到来自用户的读写请求时,从元数据库中通过哈希线性扩展链表查找数据信息;步骤二:如果数据在缓冲层中,直接通过缓存读取或改写;如果数据不在缓冲层中,则通过CPU向内存申请虚拟块设备硬件,并对应到NVMe硬盘上的特定实体块设备,使用DMA与NVMe硬盘直接进行数据交互;步骤三:在DMA传输完成后,针对数据请求的类型,判断是否要将此数据读取到缓冲层中或更新NVMe硬盘中的对应数据;步骤四:如果是写入或改写数据请求,将元数据信息写入或改写到元数据库,并使用AOF将操作写入日志文件;步骤五:定期将缓冲层中的数据通过虚拟块设备使用DMA直接写入NVMe硬盘,使用RDB将元数据固化,使用随机删除、LRU算法删除或读取频次删除来清理内存。2.一种权利要求1所述的基于数据缓冲机制的NVMe全闪存存储方法构建的NVMe全闪存存储系统,其特征在于,该NVMe全闪存存储系统包括:添加虚拟块的NVMe硬盘读写模块、元数据管理模块、读写数据缓存模块和内存清除策略选择模块,所述添加虚拟块的NVMe硬盘读写模块用于接收读写请求后,根据请求将数据写入固态硬盘或从固态硬盘中读取;...

【专利技术属性】
技术研发人员:华晓炜胡星波
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1