网络接口卡、消息收发方法和存储装置制造方法及图纸

技术编号:34871454 阅读:30 留言:0更新日期:2022-09-10 13:23
本申请公开了一种网络接口卡、消息收发方法和存储装置,涉及存储领域,用于实现当某一控制器故障时不断开QP连接,提高存储装置的可靠性。网络接口卡包括:解析器和至少一个共享连接器,解析器接收来自主机客户端的与第一QP连接对应的第一SEND消息,并将第一SEND消息分发给至少一个共享连接器中的第一共享连接器;第一SEND消息包括RDMA操作命令;第一共享连接器根据RDMA操作命令以及RDMA操作当前阶段得到发送给第一控制器的与第一QP连接对应的NVME信息;检测到与第一控制器之间链路的断开事件时,与第二控制器交互以使第二控制器获取NVME信息;从第二控制器获取WQE,WQE由第二控制器根据NVME信息得到;根据WQE向主机客户端发送与第一QP连接对应的第一RDMA消息。发送与第一QP连接对应的第一RDMA消息。发送与第一QP连接对应的第一RDMA消息。

【技术实现步骤摘要】
网络接口卡、消息收发方法和存储装置


[0001]本申请涉及存储领域,尤其涉及一种网络接口卡、消息收发方法和存储装置。

技术介绍

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

end fabric)连接主机客户端12,可以为多个主机客户端12提供数据存储服务。随着基于非易失性存储器规范(non volatile memory express,NVMe)的固态驱动器(solid state disk,SSD)的兴起,越来越多的前端网络采用基于交换网的NVMe(NVMe over fabric,NoF)网络。远程直接内存访问(remote direct memory access,RDMA)是NoF网络中的一种标准,可以降低存储装置存取数据的时延。
[0003]如图1所示,存储装置11中包括多个控制器111、至少一个网络接口卡(network interface card,NIC)112和存储阵列113。前端网络采用RDMA网络时,主机客户端可以与一个控制器111建立一对一的队列对(queue pair,QP)连接,这种方式可靠性低,也就是说,当某一控制器发生故障时,会断开主机客户端与控制器之间的QP连接,存储装置将无法继续为主机客户端提供存储服务,影响了存储系统的可靠性。

技术实现思路

[0004]本申请实施例提供一种网络接口卡、消息收发方法和存储装置,用于实现当某一控制器故障时不断开QP连接,提高存储装置的可靠性。
[0005]为达到上述目的,本申请的实施例采用如下技术方案:
[0006]第一方面,提供了一种网络接口卡,包括:解析器和至少一个共享连接器,解析器,用于接收来自主机客户端的与第一队列队QP连接对应的第一发送SEND消息,并将第一SEND消息分发给至少一个共享连接器中的第一共享连接器;第一SEND消息包括远程直接内存访问RDMA操作命令;第一共享连接器,用于:根据RDMA操作命令以及RDMA操作当前阶段得到发送给第一控制器的与第一QP连接对应的非易失性存储器规范NVME信息;检测到与第一控制器之间链路的断开事件时,与第二控制器交互以使第二控制器获取NVME信息;从第二控制器获取工作队列元素WQE,WQE由第二控制器根据NVME信息得到;根据WQE向主机客户端发送与第一QP连接对应的第一RDMA消息。
[0007]本申请实施例提供的网络接口卡,通过第一QP连接接收到主机客户端的RDMA操作命令后,根据RDMA操作命令以及RDMA操作当前阶段得到发送给第一控制器的与第一QP连接对应的NVME信息。当检测到与第一控制器之间链路的断开事件时,与第二控制器交互以使第二控制器获取NVME信息,这样第二控制器可以继续根据NVME信息向主机客户端发送与第一QP连接对应的第一RDMA消息,实现当第一控制器故障时也不会断开第一QP连接,提高存储装置的可靠性。
[0008]在一种可能的实施方式中,RDMA操作命令为IO读命令,在第一共享连接器向第一
控制器发送NVME信息之前,或者,在第一控制器通过第一共享连接器发送RDMA写消息之前,发生断开事件,第一RDMA消息为RDMA写消息。该实施方式可以应用于由主机客户端向存储装置发送IO读命令,触发存储装置执行RDMA写操作的场景。当存储装置的第一控制器在执行相应的RDMA写操作过程中发生故障时,存储装置的网络接口卡向第二控制器发送NVME信息,使得第二控制器可以发送RDMA写消息以及IO响应。存储装置的网络接口卡能够将当前的RDMA操作平滑切换到正常工作的第二控制器上,可以使主机客户端不感知控制器发生故障,保障了RDMA写操作能正常完成。
[0009]在一种可能的实施方式中,RDMA操作命令为IO读命令,在第一控制器通过第一共享连接器发送RDMA写消息的首包期间发生断开事件,第一RDMA消息为RDMA写消息。该实施方式可以应用于由主机客户端向存储装置发送IO读命令,触发存储装置执行RDMA写操作的场景。当存储装置的第一控制器在执行相应的RDMA写操作以发送RDMA写消息的首包过程中发生故障时,存储装置的网络接口卡向第二控制器发送NVME信息,使得第二控制器可以重新发送RDMA写消息以及IO响应。存储装置的网络接口卡能够将当前的RDMA操作平滑切换到正常工作的第二控制器上,可以使主机客户端不感知控制器发生故障,保障了RDMA写操作能正常完成。
[0010]在一种可能的实施方式中,RDMA操作命令为IO读命令,在第一控制器通过第一共享连接器发送RDMA写消息的中间包或尾包期间发生断开事件,第一RDMA消息为包括IO响应的第二SEND消息,IO响应指示读操作完成,第一共享连接器,在根据WQE向主机客户端发送与第一QP连接对应的第一RDMA消息之前,还用于:向主机客户端发送RDMA写消息的伪造尾包,伪造尾包的载荷随意填充,伪造尾包的报文序列号PSN为发生断开事件时RDMA写消息待发送的RDMA报文的PSN。该实施方式可以应用于由主机客户端向存储装置发送IO读命令,触发存储装置执行RDMA写操作的场景。当存储装置的第一控制器在执行相应的RDMA写操作以发送RDMA写消息的中间包或尾包过程中发生故障时,存储装置的网络接口卡向主机客户端发送RDMA写消息的伪造尾包,以结束当前的RDMA写操作,并向第二控制器发送NVME信息,使得第二控制器可以重新发送RDMA写消息以及IO响应。存储装置的网络接口卡能够将当前的RDMA操作平滑切换到正常工作的第二控制器上,可以使主机客户端不感知控制器发生故障,保障了RDMA写操作能正常完成。
[0011]在一种可能的实施方式中,RDMA操作命令为IO读命令,在第一控制器通过第一共享连接器发送RDMA写消息之后:在接收到RDMA写消息的否定确认消息之前,或者,由于接收到RDMA写消息的否定确认消息而发送RDMA写消息的重传报文之前,发生断开事件,第一RDMA消息为包括IO响应的第二SEND消息,IO响应指示读操作完成,第一共享连接器,在根据WQE向主机客户端发送与第一QP连接对应的第一RDMA消息之前,还用于:向主机客户端发送RDMA写消息的伪造重传报文,伪造重传报文的报文序列号PSN为发生断开事件之前RDMA写消息的已发送的最后一个RDMA报文的PSN。该实施方式可以应用于由主机客户端向存储装置发送IO读命令,触发存储装置执行RDMA写操作的场景。当存储装置的第一控制器在执行相应的RDMA写操作以发送RDMA写消息之后,在接收到RDMA写消息的否定确认消息之前,或者,由于接收到RDMA写消息的否定确认消息而发送RDMA写消息的重传报文之前,第一控制器发生故障,存储装置的网络接口卡向主机客户端发送RDMA写消息的伪造重传报文,并向第二控制器发送NVME信息,使得第二控制器可以重新发送RDMA写消息以及IO响应。存储装
置的网络接口卡能够将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络接口卡,其特征在于,包括:解析器和至少一个共享连接器,所述解析器,用于接收来自主机客户端的与第一队列队QP连接对应的第一发送SEND消息,并将所述第一SEND消息分发给所述至少一个共享连接器中的第一共享连接器;所述第一SEND消息包括远程直接内存访问RDMA操作命令;所述第一共享连接器,用于:根据所述RDMA操作命令以及RDMA操作当前阶段得到发送给第一控制器的与所述第一QP连接对应的非易失性存储器规范NVME信息;检测到与所述第一控制器之间链路的断开事件时,与第二控制器交互以使所述第二控制器获取所述NVME信息;从所述第二控制器获取工作队列元素WQE,所述WQE由所述第二控制器根据所述NVME信息得到;根据所述WQE向所述主机客户端发送与所述第一QP连接对应的第一RDMA消息。2.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO读命令,在所述第一共享连接器向所述第一控制器发送NVME信息之前,或者,在所述第一控制器通过所述第一共享连接器发送RDMA写消息之前,发生所述断开事件,所述第一RDMA消息为RDMA写消息。3.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO读命令,在所述第一控制器通过所述第一共享连接器发送RDMA写消息的首包期间发生所述断开事件,所述第一RDMA消息为所述RDMA写消息。4.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO读命令,在所述第一控制器通过所述第一共享连接器发送RDMA写消息的中间包或尾包期间发生所述断开事件,所述第一RDMA消息为包括IO响应的第二SEND消息,所述IO响应指示读操作完成,所述第一共享连接器,在所述根据所述WQE向所述主机客户端发送与所述第一QP连接对应的第一RDMA消息之前,还用于:向所述主机客户端发送所述RDMA写消息的伪造尾包,所述伪造尾包的载荷随意填充,所述伪造尾包的报文序列号PSN为发生所述断开事件时所述RDMA写消息待发送的RDMA报文的PSN。5.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO读命令,在所述第一控制器通过所述第一共享连接器发送RDMA写消息之后:在接收到所述RDMA写消息的否定确认消息之前,或者,由于接收到所述RDMA写消息的否定确认消息而发送所述RDMA写消息的重传报文之前,发生所述断开事件,所述第一RDMA消息为包括IO响应的第二SEND消息,所述IO响应指示读操作完成,所述第一共享连接器,在所述根据所述WQE向所述主机客户端发送与所述第一QP连接对应的第一RDMA消息之前,还用于:向所述主机客户端发送所述RDMA写消息的伪造重传报文,所述伪造重传报文的报文序列号PSN为发生所述断开事件之前所述RDMA写消息的已发送的最后一个RDMA报文的PSN。6.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO读命令,在所述第一控制器通过所述第一共享连接器发送包括IO响应的第二SEND消息期间,发生所述断开事件,所述IO响应指示读操作完成,所述第一RDMA消息为所述第二SEND消息。7.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO写命令,在
所述第一共享连接器向所述第一控制器发送所述NVME信息之前,或者,在所述第一控制器通过所述第一共享连接器发送完RDMA读请求消息之前,发生所述断开事件,所述第一RDMA消息为RDMA读请求消息。8.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为IO写命令,在所述第一控制器通过所述第一共享连接器接收RDMA读响应消息期间,发生所述断开事件所述第一RDMA消息为RDMA读请求消息,所述第一共享连接器,在根据所述WQE向所述主机客户端发送与所述第一QP连接对应的第一RDMA消息之前,还用于:向所述主机客户端发送所述RDMA读响应消息对应的肯定确认消息。9.根据权利要求1所述的网络接口卡,其特征在于,所述RDMA操作命令为包括立即数的IO写命令,在所述第一控制器通过所述第一共享连接器接收立即数期间,发生所述断开事件,所述第一RDMA消息为包括IO响应的第二SEND消息,所述IO响应指示接收立即数失败,所述第一共享连接器,在根据所述WQE向所述主机客户端发送与所述第一QP连接对应的第一RDMA消息之前,还用于:向所述主机客户端发送所述第一SEND消息的肯定确认消息。10.根据权利要求1

9任一项所述的网络接口卡,其特征在于,所述第一共享连接器,与第二控制器交互以使所述第二控制器获取所述NVME信息,包括:所述第一共享连接器向所述第二控制器发送通知消息,所述通知消息用于通知所述第二控制器获取所述NVME信息。11.根据权利要求1

9任一项所述的网络接口卡,其特征在于,所述第一共享连接器,与第二控制器交互以使所述第二控制器获取所述NVME信息,包括:所述第一共享连接器向所述第二控制器发送所述NVME信息。12.一种消息收发方法,其特征在于,应用于如权利要求1
‑...

【专利技术属性】
技术研发人员:韩兆皎利建波罗新冬晏大洪
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1