基于TOE的SPDK-NVMeTCP服务加速方法和服务器终端架构

专利2026-02-03  13


本发明属于网络存储,具体涉及一种基于toe的spdk-nvme/tcp服务加速方法和服务器终端架构。


背景技术:

1、nvme(non-volatile memory express,非易失性内存标准)是一种用于闪存和固态硬盘的存储访问和传输协议。nvme协议定义了多种传输方式,其中nvme/tcp(non-volatile memory express over transmission control protocol)是一种基于tcp/ip的传输层协议。通过nvme/tcp协议,客户端可以像访问本地nvme设备一样读写、管理远程服务端中的nvme存储设备。与基于rdma(remotedirect memory access,远程直接内存访问)网络的nvme传输层相比,nvme/tcp协议可以运行在现有的以太网中,不需要改造网络基础设备,具有较好的通用性。

2、spdk(storage performance development kit,存储性能开发库)是一种运行在用户态的程序开发库,其实现了一个支持nvme/tcp协议的服务器。与内核版本的nvme/tcp服务器相比,spdk运行在用户空间,便于开发调试,并且可达到更高吞吐量、更低延迟,因此spdk正在被更多企业选用作为nvme/tcp服务器。

3、nvme/tcp协议基于tcp/ip进行网络通信。随着网络传输带宽的快速增长,nvme/tcp服务器在处理网络传输过程中消耗的cpu资源不断增加,抢占了上层应用程序的cpu资源,造成服务质量下降;另一方面,大量cpu资源被用于处理网络传输,造成了资源浪费。这在客户端高并发请求的场景下尤为明显。

4、目前,对于nvme/tcp服务器在高速传输场景下cpu占用率大幅提升导致服务质量显著下降的问题,没有行之有效的优化方案。因此,为优化nvme/tcp服务器在高速传输场景下的服务质量,加速服务响应,需要进一步研究针对nvme/tcp服务的加速方法。


技术实现思路

1、本发明提供了一种基于toe的spdk-nvme/tcp服务加速方法和服务器终端架构解决上述提到的技术问题,具体采用如下的技术方案:

2、一种基于toe的spdk-nvme/tcp服务加速方法,所述基于toe的spdk-nvme/tcp服务加速方法应用于nvme/tcp服务端,所述nvme/tcp服务端设有toe网络模块,所述基于toe的spdk-nvme/tcp服务加速方法包含:

3、通过所述toe网络模块处理nvme/tcp客户端与所述nvme/tcp服务端之间的网络传输。

4、进一步地,所述toe网络模块包含toe网卡设备、toe网络驱动和重定向socketapi;

5、所述toe网卡设备用于完成tcp/ip协议栈处理,将应答封装成tcp报文发送至网络,或者接收客户端请求并将解析后的数据放入接收缓冲区;

6、spdk-nvme/tcp服务调用所述重定向socket api接收客户端请求或发送服务端应答;

7、所述重定向socket api进入所述toe网络驱动完成相应逻辑处理。

8、进一步地,所述通过所述toe网络模块处理nvme/tcp客户端与所述nvme/tcp服务端之间的网络传输的具体方法为:

9、通过所述toe网络模块将所述nvme/tcp服务端的网络协议栈处理工作从cpu卸载至所述toe网卡设备。

10、进一步地,所述通过所述toe网络模块处理所述nvme/tcp客户端与所述nvme/tcp服务端之间的网络传输的具体方法包含:

11、所述toe网卡设备接收所述nvme/tcp客户端发送的tcp报文,进行解析,并将解析后的数据放入对应的接收缓冲区;

12、所述toe网络驱动通过epoll通知所述spdk-nvme/tcp服务当前tcp连接已接收到数据;

13、所述spdk-nvme/tcp服务调用所述重定向socket api接收所述nvme/tcp客户端的nvme/tcp请求;

14、所述重定向socket api进入所述toe网络驱动中读取接收缓冲区中的数据;

15、所述spdk-nvme/tcp服务进行后续数据解析和处理。

16、进一步地,所述spdk-nvme/tcp服务进行后续数据解析和处理的具体方法为:

17、所述spdk-nvme/tcp服务解析数据得到具体的nvme/tcp命令,将其进一步解析为nvme命令,随后向本地nvme存储设备下发该nvme命令,然后查看本地nvme存储设备已完成的nvme命令结果,最后将已完成的nvme命令结果封装为nvme/tcp回复发往所述nvme/tcp客户端。

18、进一步地,所述spdk-nvme/tcp服务将nvme/tcp回复发往所述nvme/tcp客户端的具体方法为:

19、所述spdk-nvme/tcp服务在工作线程中处理完请求后将回复内容作为服务端应答,调用所述重定向socket api发送至所述nvme/tcp客户端;

20、所述重定向socket api在所述toe网络驱动中处理具体的发送逻辑;

21、在所述toe网卡设备中将应答包装成tcp报文传输至网络,最终到达所述nvme/tcp客户端。

22、进一步地,所述重定向socket api在所述toe网络驱动中处理具体的发送逻辑包含:

23、将回复内容数据放入对应的发送缓冲区,将需要发送的数据地址和长度写入所述toe网卡设备的相应发送队列。

24、一种基于toe的spdk-nvme/tcp服务器终端架构,包含:toe网络模块、处理器和存储终端;

25、所述toe网络模块负责卸载nvme/tcp服务端的网络传输,降低网络传输过程中处理器的负载;

26、所述处理器负责运行spdk-nvme/tcp服务进程,实现接收客户端请求和发送服务端应答及nvme/tcp协议处理;

27、所述存储终端用于实现所述nvme/tcp服务端的本地nvme读写、管理功能。

28、本发明的有益之处在于所提供的基于toe的spdk-nvme/tcp服务加速方法和服务器终端架构,可以改善nvme/tcp服务器在高速传输场景下cpu占用率大幅提升导致其服务质量显著下降的问题,从而缓解处理器压力,提高服务质量并加速nvme/tcp服务响应。另一方面,使用更少的cpu资源即可达到相同的带宽,从而降低成本。



技术特征:

1.一种基于toe的spdk-nvme/tcp服务加速方法,其特征在于,所述基于toe的spdk-nvme/tcp服务加速方法应用于nvme/tcp服务端,所述nvme/tcp服务端设有toe网络模块,所述基于toe的spdk-nvme/tcp服务加速方法包含:

2.根据权利要求1所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

3.根据权利要求2所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

4.根据权利要求3所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

5.根据权利要求4所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

6.根据权利要求5所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

7.根据权利要求6所述的基于toe的spdk-nvme/tcp服务加速方法,其特征在于,

8.一种基于toe的spdk-nvme/tcp服务器终端架构,其特征在于,包含:toe网络模块、处理器和存储终端;


技术总结
本发明公开了一种基于TOE的SPDK‑NVMe/TCP服务加速方法和服务器终端架构,其中,基于TOE的SPDK‑NVMe/TCP服务加速方法应用于NVMe/TCP服务端,NVMe/TCP服务端设有TOE网络模块,基于TOE的SPDK‑NVMe/TCP服务加速方法为通过TOE网络模块处理NVMe/TCP客户端与NVMe/TCP服务端之间的网络传输。本发明的基于TOE的SPDK‑NVMe/TCP服务加速方法和服务器终端架构,可以改善NVMe/TCP服务器在高速传输场景下CPU占用率大幅提升导致其服务质量急剧下降的问题,从而缓解处理器压力,提高服务质量并加速NVMe/TCP服务响应。另一方面,使用更少的CPU资源即可达到相同的带宽,从而降低成本。

技术研发人员:邢钱舰,余锋,朱建辉
受保护的技术使用者:浙江大学
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-29365.html