一种NVMe-oF用户空间直通后端存储的方法及系统技术方案

技术编号:22075144 阅读:50 留言:0更新日期:2019-09-12 13:57
一种NVMe‑oF用户空间直通后端存储的方法及系统,涉及存储领域,包括在内核加载NVMeTU模块,在用户空间启动NVMeTU‑runner模块,发送所述NVMe请求至所述NVMeTU模块,发布所述NVMe请求至共享内存中,读取所述NVMe请求并发送给所述用户存储模块librbd处理,反馈NVMe响应至所述NVMeTU‑runner模块并发布所述NVMe响应至所述共享内存中,读取所述NVMe响应并发送至NVMeT core模块。

A Method and System of NVMe-oF User Space Direct Backend Storage

【技术实现步骤摘要】
一种NVMe-oF用户空间直通后端存储的方法及系统
本专利技术涉及存储领域,具体而言,涉及NVMe-oF用户空间直通后端存储的方法及系统。
技术介绍
NVMe协议是技术上更先进的协议,替代传统协议eMMC/SATA/SCSI(UFS目前采用的是命令层协议是SCSI)将会是大势所趋,在NVMeT(NVMeTarget)是内核的NVMeoverfabricstarget框架,支持将NVMe(Non-VolatileMemoryexpress非易失性内存主机控制器接口规范)块设备、普通块设备或者常规文件导出为NVMe块设备。内核NVMeT无法从内核直接访问用户空间存储库,如果将用户空间库编入内核是可以实现访问,但是后期库文件发生变化时就需要重新编译内核模块,使维护成本增加,并且内核在整个系统中属于核心,频繁修改内核也会增加风险。所以随着用户空间存储解决方案,如Ceph或GlusterFS的兴起,内核的NVMeT无法从内核直接访问这些用户空间后端存储成了一个待解决的问题。
技术实现思路
本专利技术的目的在于提供一种NVMe-oF用户空间直通后端存储的方法及系统,通过实现NVMeT用户空间处理框架,使内核态NVMeT和用户空间后端存储解耦合,用户空间后端存储修改时不需要修改内核的NVMeT模块,降低维护成本,降低系统风险。本专利技术的实施例是这样实现的:本专利技术实施例的第一方面提供一种NVMe-oF用户空间直通后端存储的方法,主要包括如下步骤:在内核加载NVMeTU模块,在用户空间启动NVMeTU-runner模块;发送所述NVMe请求至所述NVMeTU模块;发布所述NVMe请求至共享内存中;读取所述NVMe请求并发送给所述用户存储模块librbd处理;反馈NVMe响应至所述NVMeTU-runner模块并发布所述NVMe响应至所述共享内存中;读取所述NVMe响应并发送至NVMeTcore模块,完成NVMe-oF用户空间直通后端存储的过程。进一步地,所述NVMe请求由NVMeTcore模块解析传输层接收的IO请求并将其转换成NVMe请求。进一步地,所述共享内存划分为请求管理区域、请求队列区域和数据区域三个区域。进一步地,所述NVMe请求通过UIO设备发布至所述共享内存中。进一步地,所述NVMe响应通过UIO设备发布至共享内存中。进一步地,所述NVMe响应是由NVMeTU-runner模块将用户存储模块librbd206反馈的rbd格式IO处理结果信息转换为NVMe格式的处理结果信息,又称为NVMe响应。本专利技术实施例的第二方面提供一种NVMe-oF用户空间直通后端存储的系统,包括:NVMeTcore模块,接收来自传输层的IO请求,并将请求解析后得到的NVMe请求发送至NVMeTU模块处理;将NVMe响应封装成IO响应发至传输层;NVMeTU模块,接收来自所述NVMeTcore模块的所述NVMe请求发布至共享内存中等待NVMeTU-runner模块读取处理;从共享内存中读取所述NVMe响应并发给所述NVMeTcore模块;NVMeTU-runner模块:从所述共享内存中读取所述NVMe请求并将所述NVMe请求转换成rbd的IO请求,调用用户存储模块librbd处理;将所述用户存储模块librbd处理生成的rbd格式IO处理结果信息转换成NVMe响应发布至共享内存中;用户存储模块Librbd:从所述NVMeT-runner模块获取rbd格式的IO请求,并发送到ceph集群处理;将所述ceph集群处理结果打包成rbd格式的IO处理结果信息反馈至所述NVMeT-runner模块;UIO设备,所述NVMeTU模块在加载时会通过UIO模块注册一个UIO设备,所述UIO设备会注册一段共享内存用于内核空间和用户空间的交互。本专利技术实施例的第三方面提供一种包括计算机可执行指令的计算机程序产品,所述计算机可执行指令用于当程序在计算机上被运行时执行根据本专利技术实施例第一方面所述的方法。本专利技术实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质包括根据本专利技术实施例的第三方面提供的计算机可执行指令的计算机程序产品。本专利技术实施例的有益效果包括:用户空间后端存储修改时不需要修改内核的NVMeT模块,实现用户空间直接访问共享内存,而不需在用户空间和内存之间多次拷贝实现数据读取和写入的过程,降低维护成本,降低系统风险,使内核态NVMeT可以高效的访问用户空间后端存储。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了根据本专利技术的一个实施例的NVMe-oF用户空间直通后端存储的方法的流程图;图2示出了根据本专利技术的一个实施例的NVMe-oF用户空间直通后端存储的系统的结构图;图3示出了共享内存的组织结构图;图4示出了一个可以用来实施本公开的实施例的电子设备800的示意性框图。图标:201-NVMeTcore模块;202-NVMeTU模块;203-UIO设备;204-共享内存;205-NVMeTU-runner模块;206-用户存储模块librbd;207-ceph集群;301-请求管理区域;302-请求队列区域;303-数据区域;801-CPU;802-ROM;803-RAM;804-总线;805-I/O;806-输入单元;807-输出单元;808-存储单元;809-通信单元。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该专利技术产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。此外,术语“水平”、“竖直”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。在本专利技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、本文档来自技高网...

【技术保护点】
1.一种NVMe‑oF用户空间直通后端存储的方法,其特征在于,包括以下步骤:在内核加载NVMeTU模块,在用户空间启动NVMeTU‑runner模块;发送所述NVMe请求至所述NVMeTU模块;发布所述NVMe请求至共享内存中;读取所述NVMe请求并发送给所述用户存储模块librbd处理;反馈NVMe响应至所述NVMeTU‑runner模块并发布所述NVMe响应至所述共享内存中;读取所述NVMe响应并发送至NVMeT core模块。

【技术特征摘要】
1.一种NVMe-oF用户空间直通后端存储的方法,其特征在于,包括以下步骤:在内核加载NVMeTU模块,在用户空间启动NVMeTU-runner模块;发送所述NVMe请求至所述NVMeTU模块;发布所述NVMe请求至共享内存中;读取所述NVMe请求并发送给所述用户存储模块librbd处理;反馈NVMe响应至所述NVMeTU-runner模块并发布所述NVMe响应至所述共享内存中;读取所述NVMe响应并发送至NVMeTcore模块。2.根据权利要求1所述一种NVMe-oF用户空间直通后端存储的方法,其特征在于,所述NVMe请求由NVMeTcore模块解析传输层接收的IO请求并将其转换成NVMe请求。3.根据权利要求1所述一种NVMe-oF用户空间直通后端存储的方法,其特征在于,所述共享内存划分为请求管理区域、请求队列区域和数据区域三个区域。4.根据权利要求1所述一种NVMe-oF用户空间直通后端存储的方法,其特征在于,所述NVMe请求通过UIO设备发布至所述共享内存中。5.根据权利要求1所述一种NVMe-oF用户空间直通后端存储的方法,其特征在于,所述NVMe响应通过UIO设备发布至共享内存中。6.根据权利要求1所述一种NVMe-oF用户空间直通后端存储的方法,其特征在于,所述NVMe响应是由NVMeTU-runner模块将用户存储模块librbd206反馈的rbd格式IO处理结果信息转换为NVMe格式的处理结果信息,又称为NVMe响应。7.一种N...

【专利技术属性】
技术研发人员:王亮刘露周耀辉
申请(专利权)人:西安奥卡云数据科技有限公司
类型:发明
国别省市:陕西,61

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

1