一种基于双IB网络的数据传输方法、装置、设备与流程

文档序号:13476310阅读:379来源:国知局
一种基于双IB网络的数据传输方法、装置、设备与流程

本发明涉及数据传输技术领域,特别是涉及一种基于双ib网络的数据传输方法、装置、设备和计算机可读存储介质。



背景技术:

利用远程直接内存访问(remotedirectmemoryaccess,rdma)协议进行消息通信,发送端发送数据之前,必须向基于无限带宽技术(infiniband,ib)的ib卡中预先注册一定量的内存,然后将待发送数据写入该内存才能通过ib卡将数据发送出去。针对ib卡缓存区的不同功能,可以将ib卡的缓存区划分为发送缓存和接收缓存,发送缓存用于数据的传输,接收缓存用于接收、保存数据。

分布式存储系统中网络分为公共网络和集群网络,公共网络用于用户应用和存储对接,集群网络用于存储系统内部交换数据。为了保证分布式存储系统中用户数据的安全性,用户应用数据写入存储系统后会产生多个副本数据,且同一份数据的多个副本会分布在不同的节点或硬盘上。如图1所示,用户应用数据块,如数据块a、数据块b和数据块c,通过公共网络写入存储系统后,存储系统内部会通过集群网络分别产生对应副本,数据块a对应的副本a1,数据块b对应的副本b1和数据块c对应的副本c1,并且这些副本可能会分布在不同节点上,即数据块存入集群后会通过集群网络转发到其他节点。

传统方式中,集群网络的节点在接收到数据后,会将其存储到系统缓存区中,当需要将该数据再次传输时,需要从系统缓存区中拷贝该数据,将该数据传输给ib卡的发送缓存实现数据的传输。每次传输数据时,都需要进行数据的拷贝,导致存储系统通信效率不高。

可见,如何提高存储系统通信效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种基于双ib网络的数据传输方法、装置、设备和计算机可读存储介质,可以有效的降低系统内存使用效率,并且提高了存储系统通信效率。

为解决上述技术问题,本发明实施例提供一种基于双ib网络的数据传输方法,包括:

s10:当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中;

s11:当需要将所述初始节点的业务数据发送到目标节点时,判断所述业务数据是否已经存入所述第二ib卡的发送缓存中;其中,所述业务数据包括所述待处理数据和/或缓存数据;若否,则执行s12,若是,则执行s13;

s12:将系统缓存区中的缓存数据读取到所述第二ib卡的发送缓存中,进入s13;

s13:调用rdma协议发送接口,将所述第二ib卡的发送缓存中的所述业务数据发送到所述目标节点的第三ib卡的接收缓存中;

s14:当所述第三ib卡的接收缓存接收到所述业务数据后,则将所述业务数据读取到所述目标节点的第四ib卡的发送缓存中。

可选的,在所述s14之前还包括:

判断所述第四ib卡的发送缓存的可用存储空间是否满足预设条件;

若是,则执行所述s14;若否,则进行告警提示。

本发明实施例还提供了一种基于双ib网络的数据传输装置,包括第一读取单元、判断单元、第二读取单元、发送单元和第三读取单元;

所述第一读取单元,用于当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中;

所述判断单元,用于当需要将所述初始节点的业务数据发送到目标节点时,判断所述业务数据是否已经存入所述第二ib卡的发送缓存中;其中,所述业务数据包括所述待处理数据和/或缓存数据;若否,则触发所述第二读取单元,若是,则触发所述发送单元;

所述第二读取单元,用于将系统缓存区中的缓存数据读取到所述第二ib卡的发送缓存中,并触发所述发送单元;

所述发送单元,用于调用rdma协议发送接口,将所述第二ib卡的发送缓存中的所述业务数据发送到所述目标节点的第三ib卡的接收缓存中;

所述第三读取单元,用于当所述第三ib卡的接收缓存接收到所述业务数据后,则将所述业务数据读取到所述目标节点的第四ib卡的发送缓存中。

可选的,还包括第二判断单元和提示单元;

所述第二判断单元,用于判断所述第四ib卡的发送缓存的可用存储空间是否满足预设条件;

若是,则触发所述第三读取单元;若否,则触发所述提示单元,所述提示单元,用于进行告警提示。

本发明实施例还提供了一种数据传输设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述基于双ib网络的数据传输方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如上述基于双ib网络的数据传输方法的步骤。

由上述技术方案可以看出,在存储系统中包含有多个节点,每个节点有其对应的两个用于数据存储传输的ib卡,当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中。为了保证将所需传输的业务数据全部发送至目标节点,需要先判断所述业务数据是否已经存入第二ib卡的发送缓存中;当有数据未存入第二ib卡的发送缓存时,需要将系统缓存区中的缓存数据读取到第二ib卡的发送缓存中;然后通过调用rdma协议发送接口,将第二ib卡的发送缓存中的业务数据发送到目标节点的第三ib卡的接收缓存中;当第三ib卡的接收缓存接收到所述业务数据后,则将业务数据读取到所述目标节点的第四ib卡的发送缓存中。通过ib卡之间的交互过程完成数据的传输,当这些数据需要进行再次转发时,可以直接通过ib卡发送出去,减少了数据在内存中拷贝的次数,有效的降低系统内存使用效率,并且提高了存储系统通信效率。

附图说明

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

图1为现有技术提供的一种分布式集群用户数据存储示意图;

图2为本发明实施例提供的一种基于双ib网络的数据传输方法的流程图;

图3为本发明实施例提供的一种数据块a在存储系统中的传输示意图;

图4为本发明实施例提供的一种基于双ib网络的数据传输装置的结构示意图;

图5为本发明实施例提供的一种数据传输设备的硬件结构示意图。

具体实施方式

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

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

接下来,详细介绍本发明实施例所提供的一种基于双ib网络的数据传输方法。图2为本发明实施例提供的一种基于双ib网络的数据传输方法的流程图,该方法包括:

s10:当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中。

集群系统中包括有多个节点,每个节点有其对应的两个ib卡,一个ib卡可以用于接收和保存数据,另一个ib卡可以用于传输数据。

初始节点可以是集群系统中接收用户应用节点数据的节点,也可以是与集群系统中其它节点交互的节点。为了便于区分初始节点的两个ib卡,可以将其分别称作第一ib卡和第二ib卡。

当第一ib卡的接收缓存接收到待处理数据后,可以直接将待处理数据读取到第二ib卡的发送缓存中,当该待处理数据需要再次发送时,则可以直接从第二ib卡的发送缓存中发送出去,减少了从存储缓存区中进行数据拷贝的步骤,提升了存储系统通信效率。

s11:当需要将初始节点的业务数据发送到目标节点时,判断业务数据是否已经存入所述第二ib卡的发送缓存中。

目标节点可以是与初始节点进行数据交互的节点。

在节点中除了ib卡的发送缓存中已经存储的待处理数据外,还可能存在存储于系统缓存区的一些缓存数据,可以将这些数据统称为业务数据,也即业务数据可以包括待处理数据和/或缓存数据。

为了保证将所需传输的业务数据全部发送至目标节点,需要先判断所述业务数据是否已经存入第二ib卡的发送缓存中。当业务数据已经存入第二ib卡的发送缓存中,则可以直接进行数据的传输,即执行s13;当业务数据未完全存入第二ib卡的发送缓存时,则需要将未存入的业务数据存入第二ib卡的发送缓存,即执行s12。

s12:将系统缓存区中的缓存数据读取到所述第二ib卡的发送缓存中,进入s13。

s13:调用rdma协议发送接口,将所述第二ib卡的发送缓存中的所述业务数据发送到所述目标节点的第三ib卡的接收缓存中。

为了便于区分目标节点的两个ib卡,可以将其分别称作第三ib卡和第四ib卡。

在本发明实施例中,可以通过调用rdma协议发送接口,实现两个节点之间的数据传输。

s14:当所述第三ib卡的接收缓存接收到所述业务数据后,则将所述业务数据读取到所述目标节点的第四ib卡的发送缓存中。

例如图3所示的数据块a在存储系统中的传输示意图,每个ib卡对应的缓存区分为已注册的发送缓存和已注册的接收缓存,在图3中,每个ib卡对应的两个虚线框即表示这两个缓存,上侧的虚线框表示已注册的发送缓存,下侧的虚线框表示已注册的接收缓存。用户应用节点向节点1发送数据块a时,可以将数据块a传输至其对应的ib卡的发送缓存中,通过调用rdma协议发送接口,将数据块a传输至节点1的第一ib卡的接收缓存中,为了便于数据块a的后续传输,当第一ib卡的接收缓存接收到数据块a后,集群系统可以将数据块a读取到节点1的第二ib卡的发送缓存中。当需要将数据块a从节点1发送至节点3时,则可以通过调用rdma协议发送接口,直接将第二ib卡中发送缓存中的数据块a发送至节点3的第三ib卡的接收缓存中,同理,为了便于数据块a的后续传输,当第三ib卡的接收缓存接收到数据块a后,集群系统可以将数据块a读取到节点3的第四ib卡的发送缓存中。

由上述技术方案可以看出,在存储系统中包含有多个节点,每个节点有其对应的两个用于数据存储传输的ib卡,当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中。为了保证将所需传输的业务数据全部发送至目标节点,需要先判断所述业务数据是否已经存入第二ib卡的发送缓存中;当有数据未存入第二ib卡的发送缓存时,需要将系统缓存区中的缓存数据读取到第二ib卡的发送缓存中;然后通过调用rdma协议发送接口,将第二ib卡的发送缓存中的业务数据发送到目标节点的第三ib卡的接收缓存中;当第三ib卡的接收缓存接收到所述业务数据后,则将业务数据读取到所述目标节点的第四ib卡的发送缓存中。通过ib卡之间的交互过程完成数据的传输,当这些数据需要进行再次转发时,可以直接通过ib卡发送出去,减少了数据在内存中拷贝的次数,有效的降低系统内存使用效率,并且提高了存储系统通信效率。

考虑到ib卡的缓存区大小有限,当一个节点同时与多个节点进行交互时、或者是该ib卡的发送缓存中已经保存有数据时,该ib卡的发送缓存被占用,此时,当有其它节点向该节点发送数据时,该节点ib卡的发送缓存可能会出现没有足够的存储空间,用于保存新传输来的数据,针对该种情况,可以对ib卡的发送缓存区的可用存储空间进行判断。以第四ib卡的发送缓存为例,具体的,执行s14之前可以判断所述第四ib卡的发送缓存的可用存储空间是否满足预设条件;若是,则执行所述s14;若否,则进行告警提示。

通过告警提示,可以及时提醒用户对ib卡的发送缓存中的数据及时处理,以保证ib卡的正常运行。

图4为本发明实施例提供的一种基于双ib网络的数据传输装置的结构示意图,包括第一读取单元41、判断单元42、第二读取单元43、发送单元44和第三读取单元45;

所述第一读取单元41,用于当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中;

所述判断单元42,用于当需要将所述初始节点的业务数据发送到目标节点时,判断所述业务数据是否已经存入所述第二ib卡的发送缓存中;其中,所述业务数据包括所述待处理数据和/或缓存数据;若否,则触发所述第二读取单元43,若是,则触发所述发送单元44;

所述第二读取单元43,用于将系统缓存区中的缓存数据读取到所述第二ib卡的发送缓存中,并触发所述发送单元44;

所述发送单元44,用于调用rdma协议发送接口,将所述第二ib卡的发送缓存中的所述业务数据发送到所述目标节点的第三ib卡的接收缓存中;

所述第三读取单元45,用于当所述第三ib卡的接收缓存接收到所述业务数据后,则将所述业务数据读取到所述目标节点的第四ib卡的发送缓存中。

可选的,还包括第二判断单元和提示单元;

所述第二判断单元,用于判断所述第四ib卡的发送缓存的可用存储空间是否满足预设条件;

若是,则触发所述第三读取单元;若否,则触发所述提示单元,所述提示单元,用于进行告警提示。

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

由上述技术方案可以看出,在存储系统中包含有多个节点,每个节点有其对应的两个用于数据存储传输的ib卡,当初始节点的第一ib卡的接收缓存接收到待处理数据后,将所述待处理数据读取到所述初始节点的第二ib卡的发送缓存中。为了保证将所需传输的业务数据全部发送至目标节点,需要先判断所述业务数据是否已经存入第二ib卡的发送缓存中;当有数据未存入第二ib卡的发送缓存时,需要将系统缓存区中的缓存数据读取到第二ib卡的发送缓存中;然后通过调用rdma协议发送接口,将第二ib卡的发送缓存中的业务数据发送到目标节点的第三ib卡的接收缓存中;当第三ib卡的接收缓存接收到所述业务数据后,则将业务数据读取到所述目标节点的第四ib卡的发送缓存中。通过ib卡之间的交互过程完成数据的传输,当这些数据需要进行再次转发时,可以直接通过ib卡发送出去,减少了数据在内存中拷贝的次数,有效的降低系统内存使用效率,并且提高了存储系统通信效率。

图5为本发明实施例提供的一种数据传输设备50的硬件结构示意图,包括存储器51和处理器52;存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现上述基于双ib网络的数据传输方法的步骤。

本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现上述基于双ib网络的数据传输方法的步骤。

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

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

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

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