网络接口卡、控制器、存储装置和报文发送方法制造方法及图纸

技术编号:33505522 阅读:48 留言:0更新日期:2022-05-19 01:15
本申请公开了一种网络接口卡、控制器、存储装置和报文发送方法,涉及存储领域,用于降低RDMA读操作的时延。网络接口卡包括:第二处理模块,用于响应于第一控制器的门铃信号,从第一控制器对应的第一发送队列SQ获取第一工作队列元素WQE,门铃信号用于指示第一SQ中有至少一个WQE所指向的存储空间中有消息待发送;第一WQE包括指示信息,指示信息用于指示第一WQE调度的第一远程直接内存访问RDMA报文的类型;第二收发模块,用于如果指示信息指示第一RDMA报文的类型为IO数据的尾包或单包,则在第二处理模块轮询下一控制器的SQ之前,向主机客户端发送第一RDMA报文,以及,第一SQ中第一WQE的下一个WQE调度的第二RDMA报文。WQE的下一个WQE调度的第二RDMA报文。WQE的下一个WQE调度的第二RDMA报文。

【技术实现步骤摘要】
网络接口卡、控制器、存储装置和报文发送方法


[0001]本申请涉及存储领域,尤其涉及一种网络接口卡、控制器、存储装置和报文发送方法。

技术介绍

[0002]目前许多数据不是存储在本地,而是存储在远端的存储装置中。如图1所示,本申请实施例提供了一种存储系统,包括存储装置11、至少一个主机(host)客户端12和交换机13。存储装置11通过前端网络(front

end fabric)连接交换机13,交换机13连接至至少一个主机客户端12,存储装置11可以为多个主机客户端12提供数据存储服务。
[0003]存储装置11包括多个控制器111、至少一个网络接口卡(network interface card,NIC)112以及盘框113。控制器111包括处理器、内存和软件,多个控制器可以工作在负荷分担模式,提高存储系统的吞吐量和可靠性。盘框113挂载有硬盘驱动器(hard disk drive,HDD)或固态硬盘(solid state drives,SSD)等存储介质。NIC 112具有多个高速串行计算机扩展总线标准(peripheral component interconnect,PCIe)接口,分别连接各个控制器111,可以将来自主机客户端12的读写请求分发给多个控制器111,实现并行处理。控制器111可以通过NIC 112获得来自主机客户端12的读请求,然后从盘框113的硬盘中读取IO数据,再由NIC 112将IO数据返回给主机客户端12;控制器111还可以通过NIC 112获得来自主机客户端12的写请求,将由NIC 112获得的IO数据写入盘框113的硬盘中。
[0004]随着基于非易失性存储器规范(non volatile memory express,NVMe)的固态驱动器(solid state disk,SSD)的兴起,越来越多的前端网络采用基于交换网的NVMe(NVMe over fabric,NoF)网络。远程直接内存访问(remote direct memory access,RDMA)即是NoF网络中的一种标准,可以降低存储装置存取数据的时延。
[0005]如图2所示,在RDMA的RDMA读操作中,主机客户端作为请求端向存储装置发送IO读命令,存储装置作为响应端接收IO读命令,由存储装置的NIC分发到不同的控制器并行处理。存储装置的NIC依次将IO数据和IO响应发送给主机客户端。为了公平起见,NIC在向主机客户端发送消息时,要轮询各个控制器是否有消息要发送,即发送完一个控制器的IO数据后即开始发送下一个控制器的其他消息,等下一次轮询到该控制器时,才会发送该处理器的IO响应,使得同一控制器的IO数据和IO响应之间间隔较长时间,增加了RDMA读操作的时延。

技术实现思路

[0006]本申请实施例提供一种网络接口卡、控制器、存储装置和报文发送方法,用于降低RDMA读操作的时延。
[0007]为达到上述目的,本申请的实施例采用如下技术方案:
[0008]第一方面,提供了一种网络接口卡,包括:第二处理模块,用于响应于第一控制器的门铃信号,从第一控制器对应的第一发送队列SQ获取第一工作队列元素WQE,门铃信号用
于指示第一SQ中有至少一个WQE所指向的存储空间中有消息待发送;第一WQE包括指示信息,指示信息用于指示第一WQE调度的第一远程直接内存访问RDMA报文的类型。第二收发模块,用于如果指示信息指示第一RDMA报文的类型为IO数据的尾包或单包,则在第二处理模块轮询下一控制器的SQ之前,向主机客户端发送第一RDMA报文,以及,第一SQ中第一WQE的下一个WQE调度的第二RDMA报文。
[0009]本申请实施例提供的上述网络接口卡,存储装置的网络接口卡(NIC)从第一控制器的第一SQ获取第一WQE,第一WQE中包括指示信息,指示信息用于指示第一WQE调度的第一RDMA报文的类型,如果指示信息指示第一RDMA报文的类型为IO数据的尾包或单包,则在轮询下一控制器的SQ之前,向主机客户端发送第一RDMA报文,以及,第一SQ中第一WQE的下一个WQE调度的第二RDMA报文(即IO响应的RDMA报文),使得主机客户端接收到IO数据的尾包或单包之后,能快速接收到对应的IO响应,确定完成RDMA读操作,不必等NIC下一次轮询第一控制器,因此可以降低RDMA读操作的时延。
[0010]在一种可能的实施方式中,第二处理模块,还用于对第一RDMA报文进行数据完整性功能DIF校验。第二收发模块,具体用于:如果指示信息指示第一RDMA报文的类型为IO数据的尾包或单包,并且,DIF校验通过,则在第二处理模块轮询下一控制器的SQ之前,向主机客户端发送第一RDMA报文,以及,第一SQ中第一WQE的下一个WQE调度的第二RDMA报文。DIF校验可以通过对数据附加校验数据等信息的方式,对数据的完整性和一致性进行保护。
[0011]在一种可能的实施方式中,第二收发模块,还用于:如果DIF校验不通过,则向主机客户端发送第三RDMA报文,第三RDMA报文指示第一RDMA报文DIF校验不通过。使得主机客户端能够获知IO数据获取错误。
[0012]在一种可能的实施方式中,第一远程直接内存访问RDMA报文的类型包括IO数据的首包、中间包、尾包或者单包。该实施方式公开了第一RDMA报文的几种可能的类型。
[0013]第二方面,提供了一种控制器,包括:第一处理模块,用于向第一发送队列SQ提交第一工作队列元素WQE,第一WQE包括指示信息,指示信息用于指示第一WQE调度的第一远程直接内存访问RDMA报文的类型。第一收发模块,还用于向网络接口卡发送门铃信号,门铃信号用于指示第一SQ中有至少一个WQE所指向的存储空间中有消息待发送。
[0014]本申请实施例提供的控制器,通过在WQE中增加指示信息,用于指示第一WQE调度的第一远程直接内存访问RDMA报文的类型,即是IO数据的首包、中间包、尾包或者单包,通知网络接口卡,如果指示信息指示第一RDMA报文的类型为IO数据的尾包或单包,则在轮询下一控制器的SQ之前,向主机客户端发送第一RDMA报文,以及,第一SQ中第一WQE的下一个WQE调度的第二RDMA报文(即IO响应的RDMA报文),使得主机客户端接收到IO数据的尾包或单包之后,能快速接收到对应的IO响应,确定完成RDMA读操作,不必等NIC下一次轮询第一控制器,因此可以降低RDMA读操作的时延。
[0015]在一种可能的实施方式中,第一远程直接内存访问RDMA报文的类型包括IO数据的首包、中间包、尾包或者单包。该实施方式公开了第一RDMA报文的几种可能的类型。
[0016]第三方面,提供了一种存储装置,包括如第一方面及其任一实施方式所述的网络接口卡以及如第二方面所述的控制器。
[0017]第四方面,提供了一种报文发送方法,包括:响应于第一控制器的门铃信号,从第一控制器对应的第一发送队列SQ获取第一工作队列元素WQE,门铃信号用于指示第一SQ中<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络接口卡,其特征在于,包括:第二处理模块,用于响应于第一控制器的门铃信号,从所述第一控制器对应的第一发送队列SQ获取第一工作队列元素WQE,所述门铃信号用于指示所述第一SQ中有至少一个WQE所指向的存储空间中有消息待发送;所述第一WQE包括指示信息,所述指示信息用于指示所述第一WQE调度的第一远程直接内存访问RDMA报文的类型;第二收发模块,用于如果所述指示信息指示所述第一RDMA报文的类型为IO数据的尾包或单包,则在所述第二处理模块轮询下一控制器的SQ之前,向主机客户端发送所述第一RDMA报文,以及,所述第一SQ中所述第一WQE的下一个WQE调度的第二RDMA报文。2.根据权利要求1所述的网络接口卡,其特征在于,所述第二处理模块,还用于对所述第一RDMA报文进行数据完整性功能DIF校验;所述第二收发模块,具体用于:如果所述指示信息指示所述第一RDMA报文的类型为所述IO数据的尾包或单包,并且,DIF校验通过,则在所述第二处理模块轮询下一控制器的SQ之前,向所述主机客户端发送所述第一RDMA报文,以及,所述第一SQ中所述第一WQE的下一个WQE调度的第二RDMA报文。3.根据权利要求2所述的网络接口卡,其特征在于,所述第二收发模块,还用于:如果DIF校验不通过,则向所述主机客户端发送第三RDMA报文,所述第三RDMA报文指示所述第一RDMA报文DIF校验不通过。4.根据权利要求1

3任一项所述的网络接口卡,其特征在于,所述第一远程直接内存访问RDMA报文的类型包括IO数据的首包、中间包、尾包或者单包。5.一种控制器,其特征在于,包括:第一处理模块,用于向第一发送队列SQ提交第一工作队列元素WQE,所述第一WQE包括指示信息,所述指示信息用于指示所述第一WQE调度的第一远程直接内存访问RDMA报文的类型;第一收发模块,还用于向网络接口卡发送门铃信号,所述门铃信号用于指示所述第一SQ中有至少一个WQE所指向的存储空间中有消息待发送。6.根据权利要求5所述的控制器,其特征在于,所述第一远程直接内存访问RDMA报文的类型包括IO数据的首包、中间包、尾包或者单包。7.一种存储装置,其特征在于,包括如权利要求1

4任一项所述的网络接口卡以及如权利要求5

【专利技术属性】
技术研发人员:韩兆皎罗新冬陈基源李旭慧
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1