CN104753816A - 一种rdma连接的报文处理方法及相关装置 - Google Patents
一种rdma连接的报文处理方法及相关装置 Download PDFInfo
- Publication number
- CN104753816A CN104753816A CN201510140342.8A CN201510140342A CN104753816A CN 104753816 A CN104753816 A CN 104753816A CN 201510140342 A CN201510140342 A CN 201510140342A CN 104753816 A CN104753816 A CN 104753816A
- Authority
- CN
- China
- Prior art keywords
- end device
- message
- migrated
- target
- halted state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种RDMA连接的报文处理方法及相关装置,该方法可包括:本端装置向对端装置发送用于通知所述对端装置的目标QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;所述本端装置将本地QP迁移至暂停发送报文的暂停状态。本发明实施例可以避免RDMA连接断链。
Description
技术领域
本发明涉及通信领域,尤其涉及一种远程直接内存存取(Remote DirectMemory Access,RDMA)连接的报文处理方法及相关装置。
背景技术
目前由于RDMA连接具备高带宽、低时延和CPU卸载等优点,近来RDMA连接在存储、计算和交换领域的应用越来越广泛。另一方面,在这些领域中,热迁移是非常重要的特性,例如:虚拟机的热迁移或者物理主机的热迁移等,而如何支持具备RDMA连接的热迁移是当前面临的一个新的问题。
目前具备RDMA连接的热迁移的过程如下:
上层调用接口将待迁移装置下所有序列队(Queue Pair,QP)状态迁移到发送队列排空(Send Queue Drained,SQD)状态,并停止该装置的QP往外发包后,再进行热迁移。
然而,上述技术中,在上述待迁移装置进行热迁移时,与该待迁移装置连接的对端装置的QP依然会发包给该待迁移装置,而此时待迁移装置将无法接收这些数据包,从而造成RDMA连接断链。
发明内容
本发明提供了一种RDMA连接的报文处理方法及相关装置,可以避免RDMA连接断链。
第一方面,本发明提供一种RDMA连接的报文处理方法,包括:
本端装置向对端装置发送用于通知所述对端装置的目标序列队(QueuePair,QP)暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述本端装置将本地QP迁移至暂停发送报文的暂停状态。
第二方面,本发明提供一种RDMA连接的报文处理方法,包括:
对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
第三方面,本发明提供一种本端装置,包括:发送单元和第一迁移单元,其中:
所述发送单元,用于向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述第一迁移单元,用于将本地QP迁移至暂停发送报文的暂停状态。
第四方面,本发明提供一种对端装置,包括:接收单元和第一迁移单元,其中:
所述接收单元,用于接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述第一迁移单元,用于响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
上述技术方案中,本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;所述本端装置将本地QP迁移至暂停发送报文的暂停状态。这样在本端装置进行热迁移之前,将本端装置和对端装置的QP迁移至暂停状态,从而在本端装置进行热迁移时不会出现RDMA断链。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供一种RDMA连接的报文处理方法的流程示意图;
图2是本发明实施例提供的一种可选的虚拟机之间RDMA连接示意图;
图3是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图;
图4是本发明实施例提供的一种可选的RDMA报文示意图;
图5是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图;
图6是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图;
图7是本发明实施例提供的一种可选的QP状态迁移示意图;
图8是本发明实施例提供的一种本端装置的结构示意图;
图9是本发明本发明实施例提供的另一种本端装置的结构示意图;
图10是本发明本发明实施例提供的另一种本端装置的结构示意图
图11是本发明实施例提供的一种对端装置的结构示意图;
图12是本发明实施例提供的另一种对端装置的结构示意图;
图13是本发明实施例提供的另一种对端装置的结构示意图;
图14是本发明实施例提供的一种报文处理装置的结构示意图;
图15是本发明实施例提供的另一种报文处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施例提供一种RDMA连接的报文处理方法的流程示意图,如图1所示,包括:
101、本端装置向对端装置发送用于通知所述对端装置的目标QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
本实施例中,上述本端装置可以理解为当前需要进行热迁移的装置,或者一些当前需要暂停收发报文的装置虚拟机,例如:出现故障的装置等。另外,本本发明实施例中的装置可以是包括但不限于虚拟机、物理主机等需要进行热迁移的装置。
另外,上述对端装置可以一个或者多个与上述本端装置建立RDMA连接的装置,例如:如图2所示,虚拟机(Virtual Machine,VM)0为需要进行热迁移的上述本端装置,而在进行热迁移之前VM0的QPa与VM2的QPb建立有连接,且VM0的QPb与VM1的QPa建立的连接,即VM0分别与VM1和VM2建立RDMA连接。这样上述对端装置就可以包括图2所示的VM1和VM2,其中,上述目标QP就可以包括VM1的QPa,以及VM2的QPb。
另外,当上述对端装置接收到上述通知消息后,就可以将目标QP迁移到暂停状态。其中,上述暂停状态可以定义为STOP状态,另外,该暂停状态可以表示在该状态下QP禁止发送报文,但可以接收报文。
102、本端装置将本地QP迁移至暂停发送报文的暂停状态。
通过上述步骤可以实现,本端装置的所有QP都迁移至暂停状态,这样本端装置当前就不发送报文,而对端装置中的目标QP也迁移至暂停状态,从而可以实现当前不会存在向本端装置发送的报文,从而不会出现RDMA断链。例如:在本端装置需要进行热迁移时执行上述步骤,从而实现在本端装置进行热迁移时,本端装置对应的QP都迁移至暂停状态,以保证在热迁移时不会出现RDMA断链。
本实施例中,本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;所述本端装置将本地QP迁移至暂停发送报文的暂停状态。这样在本端装置进行热迁移之前,将本端装置和对端装置的QP迁移至暂停状态,从而在本端装置进行热迁移时不会出现RDMA断链。
请参阅图3,图3是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图,如图3所示,包括以下步骤:
301、本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
302、本端装置将本地QP迁移至暂停发送报文的暂停状态。
本实施例中,本端装置可以存在多个QP,每个QP可以连接对端装置一个目标QP,这样通过向各个目标QP所属的对端装置发送上述通知消息,从而可以实现将所有目标QP都迁移至上述暂停状态。例如:步骤301可以包括:
本端装置为所述本端装置的各个QP封装发送暂停(Send with STOP)报文,并通过各个QP将所述发送暂停报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述发送暂停报文将所述目标QP迁移至暂停发送报文的暂停状态。
其中,上述发送暂停报文可以是RDMA报文,例如:如图4所示的RDMA报文,其中,该RDMA报文中,包括:L2头(Header)字段、全局路由头(GlobalRoute Header,GRH)字段、基本传输头(Base Transport Header,BTH)字段、不可变循环冗余检验号(Invariant Cyclic Redundancy Check,ICRC)字段和可变CRC(Variant CRC,VCRC)字段,BTH字段又可以包括:操作码(Operating Code,OpCode)字段、请求事件标志(Solicited Evtnt,SE)字段、迁移请求标志(Migreq,M)字段、填充数(PAD Count,PAD)字段、传输头版本(Transport Header Version,TVer)字段、分区值(Partition Key,PKey)字段、Rsvd字段、QP号(QP Number,QPN)字段和包序列号(Packet Sequence Number,PSN)字段。其中,本实施例中,在OpCode字段用于表示RDMA报文为发送暂停报文,该发送暂停报文用于通知所述对端装置的目标序列队QP暂停发送报文。例如:上述OpCode字段为11000时表示发送暂停报文,当OpCode字段为11001时表示发送就绪(Ready To Send,RTS)报文,该RTS报文用于通知所述目标QP迁移至RTS状态。这样通过使用图4所示的RDMA报文就可以实现在传输上述发送暂停报文和上述RTS报文时都采用同样的报文传输路径,从而本实现在实现将QP迁移至暂停状态时,不需要增加额外的路径,以减少资源的开销。
本实施例中,上述通知消息可以由本端装置的内核驱动为产生下发通知消息的命令,从而可以实现在启动暂停本端装置和对端装置的QP迁移至暂停状态时,上层应用不感知,从而在实现用户不感知,以提供用户体验。例如:上述步骤301可以包括:
本端装置的内核驱动向所述本端装置的主机通道适配器(Host ChanelAdapter,HCA)硬件下发通知暂停RDMA连接收发报文的命令;
本端装置的HCA硬件响应所述命令向所述对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息。
步骤302可以包括:
本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将本地QP迁移至所述暂停状态。
其中,上述内核驱动下发命令可以是内核驱动的暂停模块Pause module下发命令。
另外,上述介绍的发送暂停报文也可以采用上述内核驱动的方式进行发送,此处不作重复说明。
本实施例中,本端装置在将本地QP迁移至暂停状态时,如果存在当前正在发送报文的QP,可以在该QP发送完当前报文后再将该QP迁移至暂停状态,例如:步骤302可以包括:
当所述本端装置存在当前正在发送报文的QP时,在所述报文发送完时将该QP迁移至暂停发送报文的暂停状态。
这样可以保证不会中断当前发送的报文,以避免丢失该报文。
303、本端装置向所述对端装置发送用于通知所述目标QP迁移至发送就绪RTS状态的通知消息,以使所述对端装置响应该通知消息将所述目标QP迁移至所述RTS状态。
本实施例中,可以在上述本端装置完成热迁移后,本端装置执行上述步骤,以实现对端装置将目标QP迁移至RTS状态,从而可以向本端装置发送报文。
304、本端装置将所述本端装置的QP迁移至所述RTS状态。
当本端装置将本地QP迁移至RTS状态后,本端装置也可以向对端装置发送报文,以实现恢复本端装置和对端装置收发报文。
可选的,步骤303可以包括:
所述本端装置为所述本端装置的各个QP封装RTS报文,并通过各个QP将所述RTS报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述RTS报文将所述目标QP迁移至RTS状态。
或者,步骤303可以包括:
本端装置的内核驱动向所述本端装置的HCA硬件下发通知恢复RDMA连接收发报文的命令;
本端装置的HCA硬件响应该命令向所述对端装置发送用于通知所述对端装置的目标序列队QP迁移至发送就绪RTS状态的通知消息;
步骤304可以包括:
本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至RTS状态的命令,所述HCA硬件响应该命令将本地QP迁移至RTS状态。
本实施例在图1所示的实施例的基础上增加了多种可选的实施方式,且都可以实现避免RDMA连接断链。
请参阅图5,图5是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图,如图5所示,包括如下步骤:
501、对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
可以是当上述本端装置需要进行热迁移时,上述本端装置向上述对端装置发送上述通知消息。
502、对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
当上述对端装置将上述目标QP迁移至暂停状态时,这样该对端装置就不会向上述本端装置发送报文,从而可以实现在本端装置进行热迁移时不会出现RDMA连接断链。
本实施例中,对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。从而可以实现避免RDMA连接断链。
请参阅图6,图6是本发明实施例提供的另一种RDMA连接的报文处理方法的流程示意图,如图6所示,包括如下步骤:
601、对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
602、对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
本实施例中,步骤602可以包括:
对端装置响应所述通知消息产生修改暂停中断,并将所述修改暂停中断通知所述对端装置的内核驱动,其中,所述修改暂停中断包含事件类型信息和所述目标QP的QP号;
所述对端内核驱动解析所述修改暂停中断获取到所述事件类型信息和所述目标QP的QP号,并调用QP修改接口向主机通道适配器HCA硬件下发通知所述目标QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将所述目标QP迁移至所述暂停状态。
例如:如图7所示,VM0为上述本端装置,VM1和VM2为上述本端装置,当VM0需要进行热迁移时,VM0的内核驱动的暂停模块向HCV硬件下发启动暂停RDMA收发报文流程,此时上层应用不感知;HCV硬件为本地每个QP封装发送暂停报文,发送给RDMA连接的VM1和VM2的对端QP。VM1和VM2的HCV硬件接收到发送暂停报文后,产生修改暂停(Modify to STOP)中断智能内核驱动,其中,该中继信息包含事件类型和接收QP号,其中,该事件类型表示将QP迁移至暂停状态;VM1和VM2的内核驱动的暂停模块接收到该中断消息,对其进行解析,解析出事件类型和QP号,调用修改QP接口下发命令给HCV硬件,由HCV硬件将QP迁移至暂停状态。另外,上述内核驱动可以是HCV的内核驱动。
603、对端装置接收所述本端装置发送的通知所述目标QP迁移至发送就绪RTS状态的通知消息,并响应该通知消息将所述目标QP迁移至所述RTS状态。
其中,上述通知所述目标QP迁移至发送就绪RTS状态的通知消息可以是上述本端装置完成热迁移后向上述对端装置发送的通知消息。
本实施例中,上述将所述目标QP迁移至所述RTS状态也可以采用上述内核驱动下发命令的方式实现将目标QP迁移至RTS状态,此处不作重复说明。
本实施例中在图5所示的实施例的基础上增加了多种可选的实现方式,都可以实现避免RDMA连接断链。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至四实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一、实施例二、实施例三和实施例四。
请参阅图8,图8是本发明实施例提供的一种本端装置的结构示意图,如图8所示,包括:发送单元81和第一迁移单元82,其中:
发送单元81,用于向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
第一迁移单元82,用于将本地QP迁移至暂停发送报文的暂停状态。
本实施例中,上述本端装置可以理解为当前需要进行热迁移的装置,或者一些当前需要暂停收发报文的装置虚拟机,例如:出现故障的装置等。另外,本本发明实施例中的装置可以是包括但不限于虚拟机、物理主机等需要进行热迁移的装置。
本实施例中,本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;所述本端装置将本地QP迁移至暂停发送报文的暂停状态。这样在本端装置进行热迁移之前,将本端装置和对端装置的QP迁移至暂停状态,从而在本端装置进行热迁移时不会出现RDMA断链。
请参阅图9,图9是本发明本发明实施例提供的另一种本端装置的结构示意图,如图9所示,包括:发送单元91、第一迁移单元92、通知单元93和第二迁移单元94,其中:
发送单元91,用于向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
第一迁移单元92,用于将本地QP迁移至暂停发送报文的暂停状态。
通知单元93,用于向所述对端装置发送用于通知所述目标QP迁移至发送就绪RTS状态的通知消息,以使所述对端装置响应该通知消息将所述目标QP迁移至所述RTS状态。
第二迁移单元94,用于将所述本端装置的QP迁移至所述RTS状态。
可选的,发送单元91可以用于为所述本端装置的各个QP封装发送暂停报文,并通过各个QP将所述发送暂停报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述发送暂停报文将所述目标QP迁移至暂停发送报文的暂停状态。
可选的,如图10所示,发送单元91可以包括:
下发单元911,用于控制所述本端装置的内核驱动向所述本端装置的主机通道适配器HCA硬件下发通知暂停RDMA连接收发报文的命令;
发送子单元912,用于控制所述本端装置的HCA硬件响应所述命令向所述对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息;
第一迁移单元92可以用于控制所述本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将本地QP迁移至所述暂停状态。
可选的,第一迁移单元92可以用于当所述本端装置存在当前正在发送报文的QP时,在所述报文发送完时将该QP迁移至暂停发送报文的暂停状态。
本实施例在图8所示的实施例的基础上增加了多种可选的实施方式,且都可以实现避免RDMA连接断链。
请参阅图11,图11是本发明实施例提供的一种对端装置的结构示意图,如图11所示,包括:接收单元111和第一迁移单元112,其中:
接收单元111,用于接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
第一迁移单元112,用于响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
本实施例中,对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。从而可以实现避免RDMA连接断链。
请参阅图12,图12是本发明实施例提供的另一种对端装置的结构示意图,如图12所示,包括:接收单元121、第一迁移单元122和第二迁移单元123,其中:
接收单元121,用于接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP。
第一迁移单元122,用于响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
第二迁移单元123,用于对端装置接收所述本端装置发送的通知所述目标QP迁移至发送就绪RTS状态的通知消息,并响应该通知消息将所述目标QP迁移至所述RTS状态。
如图13所示,第一迁移单元122可以包括:
响应单元1221,用于响应所述通知消息产生修改暂停中断,并将所述修改暂停中断通知所述对端装置的内核驱动,其中,所述修改暂停中断包含事件类型信息和所述目标QP的QP号;
迁移子单元1222,用于控制所述对端内核驱动解析所述修改暂停中断获取到所述事件类型信息和所述目标QP的QP号,并调用QP修改接口向主机通道适配器HCA硬件下发通知所述目标QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将所述目标QP迁移至所述暂停状态。
本实施例中在图11所示的实施例的基础上增加了多种可选的实现方式,都可以实现避免RDMA连接断链。
请参阅图14,图14是本发明实施例提供的一种报文处理装置的结构示意图,该装置可以应用如上述方法实施例中介绍的本端装置,如图14所示,该装置包括:至少一个处理器141,例如CPU,至少一个网络接口142或者其他用户接口143,存储器145,至少一个通信总线142。通信总线142用于实现这些组件之间的连接通信。该计算节点140可选的包含用户接口143,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器145可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选的可以包含至少一个位于远离前述处理器141的存储装置。
在一些实施方式中,存储器145存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统1451,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块1452,包含各种应用程序,用于实现各种应用业务。
在本发明实施例中,通过调用存储器145存储的程序或指令,处理器141用于:
向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
将本地QP迁移至暂停发送报文的暂停状态。
可选的,处理器141还可以用于:
向所述对端装置发送用于通知所述目标QP迁移至发送就绪RTS状态的通知消息,以使所述对端装置响应该通知消息将所述目标QP迁移至所述RTS状态;
将所述本端装置的QP迁移至所述RTS状态。
可选的,处理器141执行的向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息程序,可以包括:
为所述本端装置的各个QP封装发送暂停报文,并通过各个QP将所述发送暂停报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述发送暂停报文将所述目标QP迁移至暂停发送报文的暂停状态。
可选的,处理器141向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息的程序,可以包括:
控制本端装置的内核驱动向所述本端装置的主机通道适配器HCA硬件下发通知暂停RDMA连接收发报文的命令;
控制本端装置的HCA硬件响应所述命令向所述对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息;
处理器141执行的将本地QP迁移至暂停发送报文的暂停状态程序,可以包括:
控制本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将本地QP迁移至所述暂停状态。
可选的,处理器141将本地QP迁移至暂停发送报文的暂停状态的程序,可以包括:
当所述本端装置存在当前正在发送报文的QP时,在所述报文发送完时将该QP迁移至暂停发送报文的暂停状态。
本实施例中,本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;所述本端装置将本地QP迁移至暂停发送报文的暂停状态。这样在本端装置进行热迁移之前,将本端装置和对端装置的QP迁移至暂停状态,从而在本端装置进行热迁移时不会出现RDMA断链。
请参阅图15,图15是本发明实施例提供的另一种报文处理装置的结构示意图,该装置可以应用如上述方法实施例中介绍的对端装置,如图15所示,该装置包括:至少一个处理器151,例如CPU,至少一个网络接口152或者其他用户接口153,存储器155,至少一个通信总线152。通信总线152用于实现这些组件之间的连接通信。该计算节点150可选的包含用户接口153,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器155可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选的可以包含至少一个位于远离前述处理器151的存储装置。
在一些实施方式中,存储器155存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统1551,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块1552,包含各种应用程序,用于实现各种应用业务。
在本发明实施例中,通过调用存储器155存储的程序或指令,处理器151用于:
接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
可选的,处理器151还可以用于:
接收所述本端装置发送的通知所述目标QP迁移至发送就绪RTS状态的通知消息,并响应该通知消息将所述目标QP迁移至所述RTS状态。
可选的,处理器151响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态的程序,可以包括:
响应所述通知消息产生修改暂停中断,并将所述修改暂停中断通知所述对端装置的内核驱动,其中,所述修改暂停中断包含事件类型信息和所述目标QP的QP号;
控制对端内核驱动解析所述修改暂停中断获取到所述事件类型信息和所述目标QP的QP号,并调用QP修改接口向主机通道适配器HCA硬件下发通知所述目标QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将所述目标QP迁移至所述暂停状态。
本实施例中,对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。从而可以实现避免RDMA连接断链。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (16)
1.一种远程直接内存存取RDMA连接的报文处理方法,其特征在于,包括:
本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述本端装置将本地QP迁移至暂停发送报文的暂停状态。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述本端装置向所述对端装置发送用于通知所述目标QP迁移至发送就绪RTS状态的通知消息,以使所述对端装置响应该通知消息将所述目标QP迁移至所述RTS状态;
所述本端装置将所述本端装置的QP迁移至所述RTS状态。
3.如权利要求1或2所述的方法,其特征在于,所述本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,包括:
所述本端装置为所述本端装置的各个QP封装发送暂停报文,并通过各个QP将所述发送暂停报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述发送暂停报文将所述目标QP迁移至暂停发送报文的暂停状态。
4.如权利要求1或2所述的方法,其特征在于,所述本端装置向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,包括:
所述本端装置的内核驱动向所述本端装置的主机通道适配器HCA硬件下发通知暂停RDMA连接收发报文的命令;
所述本端装置的HCA硬件响应所述命令向所述对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息;
所述本端装置将本地QP迁移至暂停发送报文的暂停状态,包括:
所述本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将本地QP迁移至所述暂停状态。
5.如权利要求1或2所述的方法,其特征在于,所述本端装置将本地QP迁移至暂停发送报文的暂停状态,包括:
当所述本端装置存在当前正在发送报文的QP时,在所述报文发送完时将该QP迁移至暂停发送报文的暂停状态。
6.一种远程直接内存存取RDMA连接的报文处理方法,其特征在于,包括:
对端装置接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述对端装置接收所述本端装置发送的通知所述目标QP迁移至发送就绪RTS状态的通知消息,并响应该通知消息将所述目标QP迁移至所述RTS状态。
8.如权利要求6或7所述的方法,其特征在于,所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,包括:
所述对端装置响应所述通知消息产生修改暂停中断,并将所述修改暂停中断通知所述对端装置的内核驱动,其中,所述修改暂停中断包含事件类型信息和所述目标QP的QP号;
所述对端内核驱动解析所述修改暂停中断获取到所述事件类型信息和所述目标QP的QP号,并调用QP修改接口向主机通道适配器HCA硬件下发通知所述目标QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将所述目标QP迁移至所述暂停状态。
9.一种本端装置,其特征在于,包括:发送单元和第一迁移单元,其中:
所述发送单元,用于向对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,以使所述对端装置响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述第一迁移单元,用于将本地QP迁移至暂停发送报文的暂停状态。
10.如权利要求9所述的本端装置,其特征在于,所述本端装置还包括:
通知单元,用于向所述对端装置发送用于通知所述目标QP迁移至发送就绪RTS状态的通知消息,以使所述对端装置响应该通知消息将所述目标QP迁移至所述RTS状态;
第二迁移单元,用于将所述本端装置的QP迁移至所述RTS状态。
11.如权利要求9或10所述的本端装置,其特征在于,所述发送单元用于为所述本端装置的各个QP封装发送暂停报文,并通过各个QP将所述发送暂停报文发送给与该QP连接的对端装置的目标QP,以使所述对端装置响应所述发送暂停报文将所述目标QP迁移至暂停发送报文的暂停状态。
12.如权利要求9或10所述的本端装置,其特征在于,所述发送单元包括:
下发单元,用于控制所述本端装置的内核驱动向所述本端装置的主机通道适配器HCA硬件下发通知暂停RDMA连接收发报文的命令;
发送子单元,用于控制所述本端装置的HCA硬件响应所述命令向所述对端装置发送用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息;
所述第一迁移单元用于控制所述本端装置的内核驱动向所述HCA硬件下发通知本地QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将本地QP迁移至所述暂停状态。
13.如权利要求9或10所述的本端装置,其特征在于,所述第一迁移单元用于当所述本端装置存在当前正在发送报文的QP时,在所述报文发送完时将该QP迁移至暂停发送报文的暂停状态。
14.一种对端装置,其特征在于,包括:接收单元和第一迁移单元,其中:
所述接收单元,用于接收本端装置发送的用于通知所述对端装置的目标序列队QP暂停发送报文的通知消息,其中,所述本端装置与所述对端装置之间建立RDMA连接,所述目标QP为所述对端装置中与所述本端装置的QP建立连接的QP;
所述第一迁移单元,用于响应所述通知消息将所述目标QP迁移至暂停发送报文的暂停状态。
15.如权利要求14所述的对端装置,其特征在于,所述对端装置还包括:
第二迁移单元,用于对端装置接收所述本端装置发送的通知所述目标QP迁移至发送就绪RTS状态的通知消息,并响应该通知消息将所述目标QP迁移至所述RTS状态。
16.如权利要求14或15所述的对端装置,其特征在于,所述第一迁移单元包括:
响应单元,用于响应所述通知消息产生修改暂停中断,并将所述修改暂停中断通知所述对端装置的内核驱动,其中,所述修改暂停中断包含事件类型信息和所述目标QP的QP号;
迁移子单元,用于控制所述对端内核驱动解析所述修改暂停中断获取到所述事件类型信息和所述目标QP的QP号,并调用QP修改接口向主机通道适配器HCA硬件下发通知所述目标QP迁移至暂停发送报文的暂停状态的命令,所述HCA硬件响应该命令将所述目标QP迁移至所述暂停状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510140342.8A CN104753816A (zh) | 2015-03-27 | 2015-03-27 | 一种rdma连接的报文处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510140342.8A CN104753816A (zh) | 2015-03-27 | 2015-03-27 | 一种rdma连接的报文处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104753816A true CN104753816A (zh) | 2015-07-01 |
Family
ID=53592945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510140342.8A Pending CN104753816A (zh) | 2015-03-27 | 2015-03-27 | 一种rdma连接的报文处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104753816A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107113298A (zh) * | 2014-12-29 | 2017-08-29 | Nicira股份有限公司 | 为rdma提供多租赁支持的方法 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN110071900A (zh) * | 2018-01-23 | 2019-07-30 | 华为技术有限公司 | 数据发送的方法及设备 |
CN111988241A (zh) * | 2020-08-20 | 2020-11-24 | 恒生电子股份有限公司 | 消息排队方法、系统、设备及存储介质 |
CN116932273A (zh) * | 2023-09-18 | 2023-10-24 | 深圳云豹智能有限公司 | 一种用于rdma中的功能级复位处理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131124A1 (en) * | 2010-11-24 | 2012-05-24 | International Business Machines Corporation | Rdma read destination buffers mapped onto a single representation |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
CN104094230A (zh) * | 2012-03-26 | 2014-10-08 | 甲骨文国际公司 | 用于支持虚拟化环境中的虚拟机的动态迁移的系统和方法 |
CN104199716A (zh) * | 2014-07-31 | 2014-12-10 | 华为技术有限公司 | 一种虚拟机热迁移的方法、物理主机及系统 |
-
2015
- 2015-03-27 CN CN201510140342.8A patent/CN104753816A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131124A1 (en) * | 2010-11-24 | 2012-05-24 | International Business Machines Corporation | Rdma read destination buffers mapped onto a single representation |
CN104094230A (zh) * | 2012-03-26 | 2014-10-08 | 甲骨文国际公司 | 用于支持虚拟化环境中的虚拟机的动态迁移的系统和方法 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
CN104199716A (zh) * | 2014-07-31 | 2014-12-10 | 华为技术有限公司 | 一种虚拟机热迁移的方法、物理主机及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782868B2 (en) | 2014-12-29 | 2023-10-10 | Nicira, Inc. | Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet |
CN107113298B (zh) * | 2014-12-29 | 2020-06-16 | Nicira股份有限公司 | 为rdma提供多租赁支持的方法、设备、物理主机及计算机可读存储介质 |
US11194755B2 (en) | 2014-12-29 | 2021-12-07 | Nicira, Inc. | Methods and systems to achieve multi-tenancy in RDMA over converged ethernet |
CN107113298A (zh) * | 2014-12-29 | 2017-08-29 | Nicira股份有限公司 | 为rdma提供多租赁支持的方法 |
CN109391560B (zh) * | 2017-08-11 | 2021-10-22 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
US11374870B2 (en) | 2017-08-11 | 2022-06-28 | Huawei Technologies Co., Ltd. | Network congestion notification method, agent node, and computer device |
CN112398817A (zh) * | 2018-01-23 | 2021-02-23 | 华为技术有限公司 | 数据发送的方法及设备 |
CN112398817B (zh) * | 2018-01-23 | 2022-02-25 | 华为技术有限公司 | 数据发送的方法及设备 |
CN110071900B (zh) * | 2018-01-23 | 2020-11-17 | 华为技术有限公司 | 数据发送的方法及设备 |
CN110071900A (zh) * | 2018-01-23 | 2019-07-30 | 华为技术有限公司 | 数据发送的方法及设备 |
CN111988241A (zh) * | 2020-08-20 | 2020-11-24 | 恒生电子股份有限公司 | 消息排队方法、系统、设备及存储介质 |
CN116932273A (zh) * | 2023-09-18 | 2023-10-24 | 深圳云豹智能有限公司 | 一种用于rdma中的功能级复位处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102045865B1 (ko) | 모바일 단말기 및 그 자원 관리 방법 | |
CN104753816A (zh) | 一种rdma连接的报文处理方法及相关装置 | |
JP5568048B2 (ja) | 並列計算機システム、およびプログラム | |
US9128893B2 (en) | Remote direct memory access socket aggregation | |
CN102316043B (zh) | 端口虚拟化方法、交换机及通信系统 | |
CN103699428A (zh) | 一种虚拟网卡中断亲和性绑定的方法和计算机设备 | |
CN102932174A (zh) | 一种物理网卡管理方法、装置及物理主机 | |
KR20120076381A (ko) | 임베디드 시스템에서의 운영체제 관리 방법 및 장치 | |
CN105094983A (zh) | 计算机,控制设备和数据处理方法 | |
CN104246733A (zh) | 用于通用串行总线设备的数据重定向 | |
CN113626224A (zh) | 一种nfc数据的交互方法、装置、电子设备及存储介质 | |
CN104111867B (zh) | 一种虚拟机迁移装置及方法 | |
CN107094119B (zh) | 一种基于云计算和sdn网络的负载均衡控制方法及系统 | |
CN104486234A (zh) | 一种将业务交换机卸载到物理网卡的方法及服务器 | |
CN113849312A (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN103473037A (zh) | 信息处理装置、信息处理方法和程序 | |
EP3358795B1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization (nfv) network | |
CN103455363A (zh) | 一种虚拟机的指令处理方法、装置及物理主机 | |
CN103501295A (zh) | 一种基于虚拟机迁移的远程访问方法和设备 | |
CN104077187A (zh) | 用于调度应用程序的执行的方法和系统 | |
CN107682306A (zh) | 数据传输方法及装置 | |
CN105262604A (zh) | 虚拟机迁移方法及设备 | |
CN105208111A (zh) | 一种信息处理的方法及物理机 | |
CN103401721A (zh) | 基于网络虚拟化的tor交换机配置方法及装置 | |
CN113032111A (zh) | 应用程序的迁移方法、装置、系统和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150701 |
|
RJ01 | Rejection of invention patent application after publication |