报文处理方法、网关设备及存储系统技术方案

技术编号:38435437 阅读:8 留言:0更新日期:2023-08-11 14:20
本申请提供了一种报文处理方法、网关设备及存储系统,属于存储技术领域。本申请通过将对NVMe节点的访问请求转换为对RDMA节点的访问请求,由于NVMe节点的存储介质是硬盘,而RDMA节点的存储介质是内存,内存能提供比硬盘更快速的读写速度,因此提升了存储性能,同时有助于传统的NOF存储系统扩展RDMA内存池,提升存储系统组网和扩容的灵活性。升存储系统组网和扩容的灵活性。升存储系统组网和扩容的灵活性。

【技术实现步骤摘要】
报文处理方法、网关设备及存储系统


[0001]本申请涉及存储
,特别涉及一种报文处理方法、网关设备及存储系统。

技术介绍

[0002]非易失性高速传输总线(non

volatile memory express,NVM Express,缩写:NVMe)是一种基于设备逻辑接口的总线传输协议规范,NVMe提供了主机通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)总线访问固态硬盘(solid state disk,SSD)的软硬件标准,遵循NVMe标准中规定的格式的指令可称为NVMe指令。承载在网络端的NVMe协议(NVMe over fabric,NOF)是一种基于NVMe的协议。NOF支持通过各种传输层协议传输NVME指令,从而将NVME的应用场景扩展至存储区域网络(storage area network,SAN),允许主机通过网络访问存储设备。
[0003]目前,基于NOF协议的存储方案的基本交互流程包括:客户端发送第一NOF请求报文,第一NOF请求报文携带NVMe指令。服务器接收第一NOF请求报文。服务器解析第一NOF请求报文,得到第一NOF请求报文携带的NVMe指令。服务器对服务器中的NVME存储介质执行NVMe指令对应的操作。其中,NVME存储介质通常为硬盘。
[0004]由于硬盘的性能通常不及动态随机存取存储器(dynamic random access memory,DRAM)这类内存,并且硬盘操作的指令集比内存操作的指令集更复杂,导致目前基于NOF协议的存储方案性能低下。

技术实现思路

[0005]本申请实施例提供了一种报文处理方法、网关设备及存储系统,能够提升存储性能。所述技术方案如下。
[0006]第一方面,提供了一种报文处理方法,该方法包括:网关设备接收来自客户端的第一NOF请求报文,第一NOF请求报文携带NVMe指令,NVMe指令指示对第一目的地址执行读/写操作;网关设备基于第一目的地址获取第一RDMA存储节点的信息;网关设备向第一RDMA存储节点发送第一RDMA请求报文,第一RDMA请求报文携带NVMe指令对应的RDMA指令。
[0007]客户端、网关设备、RDMA存储节点这三类网元是按照设备功能或者说在设备在方案中扮演的角色命名的。客户端是发起NOF请求报文的实体,或者说NOF请求方。RDMA存储节点是响应RDMA请求报文执行读/写操作的实体,也称RDMA服务端。网关设备相当于访问RDMA存储节点的入口,从客户端发来的NOF请求报文要经过这个入口再传输到RDMA存储节点。网关设备包括而不限于服务器、服务器代理、路由器、交换机、防火墙等。
[0008]RDMA指令和NVMe指令对应,例如,RDMA指令指示的操作类型和NVMe指令指示的操作类型相同,该操作类型包括读操作和写操作。例如,第一NOF请求报文携带NVMe读指令,第一RDMA请求报文携带RDMA读指令;第一NOF请求报文携带NVMe写指令,第一RDMA请求报文携带RDMA写指令。又如,RDMA指令指示的待处理的数据和RDMA指令指示的待处理的数据相同。比如说,RDMA指示的待读取的数据和RDMA指令指示的待读取的数据相同,或者,RDMA指示的
待保存的数据和RDMA指令指示的待保存的数据相同。
[0009]第一目的地址表示NVMe存储介质提供的存储空间中的位置。可选地,第一目的地址是逻辑地址(或称为虚拟地址)。可选地,第一目的地址包括起始逻辑块地址(start LBA)和块数量(block number,或称为number of Logical blocks)。
[0010]在一种可能的实现中,上述第一RDMA存储节点的信息包括以下信息中的至少一个:第二目的地址、第一RDMA存储节点的网络位置信息、第一RDMA存储节点中一个或多个队列对(queue pair,QP)的标识和远端秘钥(remote key,R_Key)。
[0011]第二目的地址指向第一RDMA存储节点中的内存空间。内存空间即内存中的一段空间,内存空间在内存中所处的位置通过第二目的地址指示。第二目的地址的形式包括多种实现方式。例如,第二目的地址包括起始地址和长度,起始地址的值为0x1FFFF,长度的值为32KB,这个第二目的地址指向第一RDMA存储节点的内存中从地址0x1FFFF开始、长度为32KB的空间。又如,第二目的地址包括起始地址和结束地址,起始地址的值为0x1FFFF,结束地址的值为0x2FFFF,这个第二目的地址指向第一RDMA存储节点的内存中从地址0x1FFFF开始、到地址0x2FFFF的空间。在读数据的情况下,第二目的地址指向第一RDMA存储节点的内存中保存了待读取的数据的内存空间。在写数据的情况下,第二目的地址指示第一RDMA存储节点的内存中待写入数据内存空间。可选地,第二目的地址是逻辑地址(或称为虚拟地址)。可选地,第二目的地址中的起始地址具体为虚拟地址(virtual address,VA),第二目的地址中的长度具体为直接内存访问的长度(DMA length)。
[0012]第一RDMA存储节点的网络位置信息用于在网络中标识第一RDMA存储节点。例如,网络位置信息用于指导网关设备与第一RDMA存储节点之间的网络设备进行路由转发。示例性地,第一RDMA存储节点的网络位置信息包括MAC地址、IP地址、多协议标签交换(multi

protocol label switching,MPLS)标签或者段标识(segment ID,SID)中至少一项。
[0013]一个QP包括一个发送队列(send queue,SQ)和一个接收队列(receive queue,RQ),QP用于管理各种类型的消息。
[0014]R_Key指示访问第一RDMA存储节点的内存的权限。R_Key也称内存钥匙。在一种可能的实现中,R_Key指示访问第一RDMA存储节点上特定内存空间的权限,该特定内存空间例如是保存有待读取数据的内存空间,又如是预先注册的内存空间。在另一种可能的实现中,在向第一存储节点和第二存储节点写数据的场景下,R_Key指示访问第一RDMA存储节点内存的权限以及第二RDMA存储节点内存的权限。
[0015]DMAlength表示RDMA操作的长度。例如,DMAlength的值为16KB,表示对长度为16KB的内存空间进行RDMA操作。RDMA操作包括写操作和读操作。写操作例如是将数据写入到内存。读操作例如是从内存中读取数据。
[0016]网关设备通过执行上述第一方面的方法,从而将对NVMe节点的访问请求转换为对RDMA节点的访问请求,由于NVMe节点的存储介质是硬盘,而RDMA节点的存储介质是内存,内存能提供比硬盘更快速的读写速度,因此该方法提升了存储性能。当然,如果NVMe指令指示读操作,使用上述方法要想成功访问到相应的数据,该第一RDMA存储节点中,应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文处理方法,其特征在于,所述方法包括:网关设备接收来自客户端的第一承载在网络端的非易失性高速传输总线NOF请求报文,所述第一NOF请求报文携带非易失性高速传输总线NVMe指令,所述NVMe指令指示对第一目的地址执行读/写操作;所述网关设备基于所述第一目的地址获取第一远程直接内存访问RDMA存储节点的信息;所述网关设备向所述第一RDMA存储节点发送第一RDMA请求报文,所述第一RDMA请求报文携带所述NVMe指令对应的RDMA指令。2.根据权利要求1所述的方法,其特征在于,所述网关设备基于所述第一目的地址获取第一远程直接内存访问RDMA存储节点的信息,包括:所述网关设备基于所述第一目的地址,从第一对应关系中查询得到所述第一RDMA存储节点的信息,所述第一对应关系指示所述第一目的地址以及所述第一RDMA存储节点的信息之间的对应关系。3.根据权利要求1或2所述的方法,其特征在于,所述第一RDMA存储节点的信息包括以下信息中的至少一个:第二目的地址、所述第一RDMA存储节点的网络位置信息、所述第一RDMA存储节点中一个或多个队列对QP的标识和远端秘钥R_Key,所述第二目的地址指向所述第一RDMA存储节点中的内存空间,所述R_Key指示访问所述第一RDMA存储节点的内存的权限。4.根据权利要求3所述的方法,其特征在于,所述网络位置信息包括介质访问控制层MAC地址、网际协议IP地址、多协议标签交换MPLS标签或者段标识SID中至少一项。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述网关设备向所述第一RDMA存储节点发送所述第一RDMA请求报文之后,所述方法还包括:网关设备接收来自所述第一RDMA存储节点的RDMA响应报文,所述RDMA响应报文是针对所述第一RDMA请求报文的响应报文;所述网关设备基于所述RDMA响应报文生成第一NOF响应报文,第一NOF响应报文是针对所述第一NOF请求报文的响应报文;所述网关设备向所述客户端发送所述第一NOF响应报文。6.根据权利要求5所述的方法,其特征在于,所述网关设备基于所述RDMA响应报文生成第一NOF响应报文,包括:所述网关设备基于所述RDMA响应报文获得RDMA状态信息,所述RDMA状态信息指示所述RDMA响应报文与所述第一RDMA请求报文之间的对应关系;所述网关设备根据所述RDMA状态信息,从第二对应关系中查询得到NOF状态信息,所述第二对应关系包括所述RDMA状态信息与所述NOF状态信息之间的对应关系,所述NOF状态信息指示所述第一NOF响应报文与所述第一NOF请求报文之间的对应关系;所述网关设备基于所述NOF状态信息生成所述第一NOF响应报文。7.根据权利要求6所述的方法,其特征在于,所述网关设备根据所述RDMA状态信息,从第二对应关系中查询得到NOF状态信息之前,所述方法还包括:所述网关设备基于所述第一NOF请求报文获得所述NOF状态信息;所述网关设备建立所述第二对应关系,所述第二对应关系为所述NOF状态信息与所述
RDMA状态信息之间的对应关系。8.根据权利要求5所述的方法,其特征在于,所述网关设备基于所述RDMA响应报文生成第一NOF响应报文,包括:所述网关设备基于所述RDMA响应报文中的NOF状态信息生成所述第一NOF响应报文。9.根据权利要求5所述的方法,其特征在于,所述第一RDMA请求报文包括第一NOF报文头,所述RDMA响应报文包括所述第一RDMA存储节点基于所述第一NOF报文头生成的第二NOF报文头,所述第一NOF响应报文包括所述第二NOF报文头。10.根据权利要求6至9中任一项所述的方法,其特征在于,所述RDMA状态信息包括包序列号PSN。11.根据权利要求6至10中任一项所述的方法,其特征在于,所述NOF状态信息包括包序列号PSN、发送队列头指针SQHD、命令标志符command ID、目的队列对DQP、虚拟地址、远端秘钥R_Key或直接内存访问DMA的长度中至少一项。12.根据权利要求2至4中任一项所述的方法,其特征在于,所述第一对应关系还包括第二RDMA存储节点的信息,所述方法还包括:在所述NVMe指令指示写操作的情况下,所述网关设备向所述第二RDMA存储节点发送第二RDMA请求报文,所述第二RDMA请求报文携带所述NVMe指令对应的RDMA指令。13.根据权利要求12所述的方法,其特征在于,所述第一RDMA请求报文和所述第二RDMA请求报文均为组播报文;或者,所述第一RDMA请求报文和所述第二RDMA请求报文均为单播报文。14.根据权利要求2至4中任一项所述的方法,其特征在于,所述第一对应关系还包括第二RDMA存储节点的信息,所述方法还包括:在所述NVMe指令指示读操作的情况下,所述网关设备基于负载分担算法,从所述第一RDMA存储节点和所述第二RDMA存储节点中选择所述第一RDMA存储节点。15.根据权利要求2至4中任一项所述的方法,其特征在于,所述第一对应关系是所述网关设备从所述网关设备之外的其他设备接收的,或者,所述第一对应关系是所述网关设备生成的。16.根据权利要求1至15中任一项所述的方法,其特征在于,所述第一RDMA请求报文还包括所述第一RDMA存储节点的信息。17.根据权利要求12或13所述的方法,其特征在于,所述第二RDMA请求报文还包括所述第二RDMA存储节点的信息。18.根据权利要求1

17中任一项任述的方法,其特征在于,所述第一RDMA存储节点为存储服务器、内存或者存储阵列。19.一种报文处理装置,其特征在于,所述装置设于网关设备,所述装置包括...

【专利技术属性】
技术研发人员:徐晏孟万红陈海燕杜凯黄俊
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1