一种基于动态连接的RDMA数据传输的方法与装置与流程

文档序号:11732037阅读:251来源:国知局
一种基于动态连接的RDMA数据传输的方法与装置与流程

本发明涉及存储系统技术领域,特别是涉及一种基于动态连接的rdma数据传输的方法与装置。



背景技术:

目前提高计算速度的主要方式就是指数级的增加处理器的个数和处理器的核数。超大规模系统固有的可靠性低的问题,影响了应用的可持续性计算,因而必须要研究高可靠和高可用的设计技术。

无线带宽技术(infiniband,ib)是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5gbps的运行速度。这种架构在一个链接的时候速度是500mb/秒,四个链接的时候速度是2gb/秒,12个链接的时候速度可以达到6gb/秒。

通过ib传送数据时,数据是以数据包方式传输,这些数据包会组合成一条条信息。这些信息的操作方式可能是远程直接内存存取的读写程序,或者是通过信道接收发送的信息,或者是多点传送传输。就像大型机用户所熟悉的信道传输模式,所有的数据传输都是通过信道适配器来开始和结束的。每个处理器(例如个人电脑或数据中心服务器)都有一个主机通道适配器,而每个周边设备都有一个目标通道适配器。通过这些适配器交流信息可以确保在一定服务品质等级下信息能够得到有效可靠的传送。

但是,ib使用主存递增的可扩展性,ib报文自带递增的序列号,后续的报文依赖前一个报文,相邻的报文需要经过同一个路径传输,导致从源地址到目的地址的报文路径太过于唯一,即使存在冗余路径,因为保序的需要,报文传输过程中也不会使用冗余路径,导致网络阻塞。未来大规模的系统构建时,处于成本和连接复杂性的考虑,采用多路径的传输方式必然会成为热点。

可见,如何实现数据的多路径传输,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种基于动态连接的rdma数据传输的方法与装置,可以实现数据的多路径传输。

为解决上述技术问题,本发明实施例提供一种基于动态连接的rdma数据传输的方法,包括:

s10:向接收设备发送连接建立请求;

s11:在接收到所述接收设备发送的连接建立响应后,根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文;

s12:当接收到所述接收设备发送的响应消息时,则将传输所述响应消息的连接作为空闲连接,存储于排队等候队列;

s13:当需要向所述接收设备发送目标报文时,则依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接;

s14:若是,则将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,并返回所述s10;

s15:若否,则从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。

可选的,还包括:

当存储于所述排队等候队列中的所述空闲连接达到规定时间后,则将所述空闲连接撤销。

可选的,还包括:

当连接的总数量超过规定数量后,则停止向所述接收设备发送连接建立请求。

本发明实施例还提供了一种基于动态连接的rdma数据传输的装置,包括发送单元、接收单元、建立单元、存储单元、判断单元、返回单元和选取单元:

所述发送单元,用于向接收设备发送连接建立请求;

所述接收单元,用于在接收到所述接收设备发送的连接建立响应后,触发所述建立单元;

所述建立单元,用于根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文;

所述接收单元还用于当接收到所述接收设备发送的响应消息时,则触发所述存储单元,所述存储单元,用于将传输所述响应消息的连接作为空闲连接,存储于排队等候队列;

当需要向所述接收设备发送目标报文时,则触发所述判断单元,所述判断单元,用于依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接;

若是,则触发所述返回单元,所述返回单元,用于将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,并触发所述发送单元;

若否,则触发所述选取单元,所述选取单元,用于从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。

可选的,还包括撤销单元:

当存储于排队等候队列中的所述空闲连接达到规定时间后,则触发所述撤销单元,所述撤销单元,用于将所述空闲连接撤销。

可选的,还包括停止单元:

当连接的总数量超过规定数量后,则触发所述停止单元,所述停止单元,用于停止向所述接收设备发送连接建立请求。

由上述技术方案可以看出,当需要传输报文时,发送设备通过向接收设备发送连接建立请求;在接收到所述接收设备发送的连接建立响应后,根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文。为了提升连接的使用率,避免频繁的建立连接,当发送设备接收到所述接收设备发送的响应消息时,可以将传输所述响应消息的连接作为空闲连接,存储于排队等候队列;当需要向所述接收设备发送目标报文时,则依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接;若是,则将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,建立与该待传输报文的数量对应的新连接;若否,则从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。可见,可以根据传输报文的数量要求,动态的建立连接,实现数据的多路径传输,提升数据传输的效率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于动态连接的rdma数据传输的方法的流程图;

图2为本发明实施例提供的两个报文传输的三种方式的示意图;

图3为本发明实施例提供的一种基于动态连接的rdma数据传输的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

传统方式中,通过ib传送数据时,由于ib消息报文采用递增的序列号,后续报文依赖前一个报文,导致报文传输的路径过于单一,不适于大规模的数据传输。远程内存访问(remotedirectmemoryaccess,rdma)是并行的计算机系统中最基本的一种通信方式。rdma通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。

故此。本发明实施例提供了一种基于动态连接的rdma数据传输的方法与装置,通过在发送设备和接收设备之间动态的建立连接,实现数据的多路径传输,或者说是并行传输,有效的提升了数据传输的效率。

接下来,详细介绍本发明实施例所提供的一种基于动态连接的rdma数据传输的方法。图1为本发明实施例提供的一种基于动态连接的rdma数据传输的方法的流程图,该方法包括:

s10:向接收设备发送连接建立请求。

s11:在接收到所述接收设备发送的连接建立响应后,根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文。

发送设备以报文的形式向接收设备传输数据,待传输报文可以是需要从发送设备向接收设备传输的数据。

在传输数据之前需要与接收设备之间建立连接,通过发送连接建立请求的方式,在接收到接收设备反馈的连接建立响应后,便可建立与接收设备之间的连接。

在本发明实施例中,采用rdma传输协议进行数据的传输,可以利用网络接口提供的虚拟接口建立连接,一个虚拟接口可以对应一条连接,有多少个待传输报文,对应的可以建立多少条连接,每个报文可以通过对应的一条连接进行传输,从而实现数据的并行传输,有效提升数据传输的效率。

s12:当接收到所述接收设备发送的响应消息时,则将传输所述响应消息的连接作为空闲连接,存储于排队等候队列。

空闲连接可以用于表示该连接处于空闲状态。排队等候队列可以用于存储处于空闲状态的连接。

当接收设备接收到发送设备发送的报文时,可以向发送设备反馈响应消息,发送设备依据该响应消息可以获知接收设备已经接收到传输的报文。

当发送设备接收到响应消息时,则说明传输该响应消息的连接已经完成报文的传输,当前处于空闲状态。针对短时间内有新的报文需要传输的情况,为了减少重新建立连接的操作,可以将处于空闲状态的连接,暂时存储于排队等候队列。

s13:当需要向所述接收设备发送目标报文时,则依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接。

当有新的数据即目标报文需要传输时,便可以从该排队等候队列中查找是否有对应数量的空闲连接,来传输该目标报文。考虑到目标报文的数量可能会大于空闲连接的数量,或者是排队等候队列中暂时没有空闲连接的情况,此时,为了保证目标报文的传输,需要建立新的连接;而当目标报文的数量小于或等于空闲连接的数量时,则可以从排队等候队列中选取合适的空闲连接传输该目标报文即可,无需建立新的连接。

故此,当有目标报文需要传输时,可以先判断是否需要建立新的连接。当目标报文的数量大于空闲连接的数量时,则需要建立新的连接;当目标报文的数量小于或等于空闲连接的数量时,则不需要建立新的连接。

s14:若是,则将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,并返回所述s10。

当需要建立新的连接时,说明此时空闲连接的数量已经不能满足传输目标报文所需的连接数量,此时,可以利用空闲连接来传输对应数量的报文,对于剩余的报文,可以建立新的连接来传输。

例如,需要传输的目标报文有10个,当前有6个空闲连接,则可将6个目标报文通过这6个空闲连接传输,每个空闲连接对应传输一个报文,对于剩余的4个目标报文,可以参照上述操作步骤,再建立4个连接,用来传输这4个报文。

s15:若否,则从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。

当有新的数据需要传输,但又不需要建立新的连接,则说明此时空闲连接的数量可以满足传输目标报文所需的连接数量,则可以从该排队等候队列中选取出与目标报文数量对应的空闲连接,用于传输该目标报文。例如,需要传输的目标报文有5个,当前排队等候队列中有6个空闲连接,则可从这6个空闲连接中选取5个空闲连接传输目标报文,每个连接对应传输一个报文。

其中,选取空闲连接时,可以以空闲连接在排队等候队列中存储的时间为依据,可以选取存储时间较长的空闲连接来传输目标报文。在本发明实施例中,对于空闲连接选取的具体方式不做限定。

需要说明的是,当一条连接作为空闲连接存储于排队等候队列中,当有目标报文需要传输时,则可以使用该连接传输目标报文,此时,该条连接将从排队等候队列中移出。

在本发明实施例中,通过建立的多条连接,可以实现数据的并行传输。以2个报文的传输为例,该传输方式可以有三种,分别对应图2中201、202和203,当有2个报文需要传输时,对应的可以建立两个连接,一个连接对应的传输一个报文,发送方(发送设备)与接收方(接收设备)建立连接以及传输报文的过程,可以是先建立一条连接,再建立另一条连接,如201所示;也可以两条连接同时建立,如202所示;当已经存在建立的两条连接时,如203所示,则可以直接通过该连接传输报文,无需再重新建立连接。

由上述技术方案可以看出,当需要传输报文时,发送设备通过向接收设备发送连接建立请求;在接收到所述接收设备发送的连接建立响应后,根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文。为了提升连接的使用率,避免频繁的建立连接,当发送设备接收到所述接收设备发送的响应消息时,可以将传输所述响应消息的连接作为空闲连接,存储于排队等候队列;当需要向所述接收设备发送目标报文时,则依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接;若是,则将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,建立与该待传输报文的数量对应的新连接;若否,则从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。可见,可以根据传输报文的数量要求,动态的建立连接,实现数据的多路径传输,提升数据传输的效率。

建立一条连接,相应的会占用一定的内存空间,当连接处于空闲状态时,该连接会被作为空闲连接,存储于排队等候队列中,等待后续传输报文时被使用。若该连接长时间未被使用,由于该连接依然存在,其仍会占用内存空间,针对该种情况,可以预先设置规定时间,当存储于所述排队等候队列中的所述空闲连接达到规定时间后,则将所述空闲连接撤销。

该规定时间可以用于表示空闲连接在排队等候队列中存储的最长时间。

以一条连接为例,从该连接作为空闲连接存储于排队等候队列中时开始计时,当达到规定时间后,该连接仍未被使用,则可以将该连接撤销,即将该条连接删除。通过设置规定时间,可以有效控制空闲连接占用内存空间的时间,当空闲连接在规定时间内未被使用时,可以通过撤销空闲连接的方式,来释放该条连接占用的内存空间。

建立的连接越多,占用的内存空间越大。内存空间有限,为了有效的控制建立的连接所占用的内存空间,可以预先设置规定数量。

该规定数量可以用于表示所能建立的连接的最高数值。当连接的总数量超过规定数量后,则停止向所述接收设备发送连接建立请求。

在具体实现中,发送设备在建立与接收设备的连接时,统计建立连接的数量,发送设备在撤销与接收设备的连接时,统计撤销连接的数量,连接的总数量即为建立连接的数量与撤销连接的数量的差值。

当连接数量超过规定数量后,则说明连接占用的内存空间已经超过了为其分配的内存空间,为了有效控制建立的连接所占用的内存空间,需要停止新连接的建立也即停止向接收设备发送连接建立请求,此时,当有新的数据需要传输时,可以等待正在传输报文的其他连接空闲时,利用该其他连接传输新的数据。

图3为本发明实施例提供的一种基于动态连接的rdma数据传输的装置的结构示意图,包括发送单元31、接收单元32、建立单元33、存储单元34、判断单元35、返回单元36和选取单元37:

所述发送单元31,用于向接收设备发送连接建立请求。

所述接收单元32,用于在接收到所述接收设备发送的连接建立响应后,触发所述建立单元33。

所述建立单元33,用于根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文。

所述接收单元32还用于当接收到所述接收设备发送的响应消息时,则触发所述存储单元34,所述存储单元34,用于将传输所述响应消息的连接作为空闲连接,存储于排队等候队列。

当需要向所述接收设备发送目标报文时,则触发所述判断单元35,所述判断单元35,用于依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接。

若是,则触发所述返回单元36,所述返回单元36,用于将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,并触发所述发送单元31。

若否,则触发所述选取单元37,所述选取单元37,用于从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。

可选的,还包括撤销单元:

当存储于排队等候队列中的所述空闲连接达到规定时间后,则触发所述撤销单元,所述撤销单元,用于将所述空闲连接撤销。

可选的,还包括停止单元:

当连接的总数量超过规定数量后,则触发所述停止单元,所述停止单元,用于停止向所述接收设备发送连接建立请求。

图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,当需要传输报文时,发送设备通过发送单元向接收设备发送连接建立请求;接收单元在接收到所述接收设备发送的连接建立响应后,触发建立单元,根据待传输报文的数量,利用虚拟接口与所述接收设备建立对应数量的连接,通过所述连接传输所述待传输报文。为了提升连接的使用率,避免频繁的建立连接,当接收单元接收到所述接收设备发送的响应消息时,存储单元可以将传输所述响应消息的连接作为空闲连接,存储于排队等候队列;当需要向所述接收设备发送目标报文时,判断单元则依据所述目标报文的数量以及所述空闲连接的数量,判断是否需要建立连接;若是,返回单元则将目标报文的数量与所述空闲连接的数量的差值作为待传输报文的数量,并触发发送单元;若否,选取单元则从所述空闲连接中选取与所述目标报文的数量对应的连接,传输所述目标报文。可见,可以根据传输报文的数量要求,动态的建立连接,实现数据的多路径传输,提升数据传输的效率。

以上对本发明所提供的一种基于动态连接的rdma数据传输的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1