掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法以及装置

文献发布时间:2023-06-19 12:19:35


数据传输方法以及装置

技术领域

本说明书实施例涉及数据处理技术领域,特别涉及数据传输方法以及装置。

背景技术

远端直接内存访问(Remote Direct Memory Access,RDMA)是一种直接进行远程内存存取的技术,通过网络把数据传入设备的存储区,直接将数据从一个系统快速迁移到另一个远程系统存储器中,而不对操作系统造成任何影响,减少了中央处理器参与数据传输过程的消耗,解放了内存带宽和中央处理器(Central Processing Unit,CPU)周期,进而提升了系统处理业务的性能,具有高带宽、低时延及低CPU占用率的特点。

目前,数据中心全面使用普通商用服务器和网络设备,单个数据中心规模非常庞大。数据中心规模的增加伴随着更多的网络设备故障(寿命到期、硬件bug、突发性断电、常规故障概率、自然灾害等),为了容灾和冗余,通常为每个服务器配置两个或多个网络接口(网口),每个网口再分别上联交换机,在某一个交换机发生故障的情况下,需要通信双方重新建立网络连接,但重新建立的网络连接,由于会随机选择网口,可能还会经过原传输路径中已经出现故障的网络设备,导致新建的网络连接不可用,从而不断进行断连、重连,因此,亟需提供一种可以解决上述问题的数据传输方法。

发明内容

有鉴于此,本说明书实施例提供了一种数据传输方法。本说明书一个或者多个实施例同时涉及一种数据传输装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

本说明书实施例的第一方面,提供了一种数据传输方法,包括:

接收针对目标数据的传输请求;

基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

本说明书实施例的第二方面,提供了一种数据传输装置,包括:

接收模块,被配置为接收针对目标数据的传输请求;

传输模块,被配置为基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

修改模块,被配置为在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

接收针对目标数据的传输请求;

基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据传输方法的步骤。

本说明书提供一种数据传输方法,包括:接收针对目标数据的传输请求;基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输,实现了在目标数据传输超时的情况下,将对网卡队列对应的网口(即出现传输故障的网口)动态切换至可用的网口,并使目标数据可以通过网卡队列从可用的网口上进行传输,避免了从第一网口对应的故障路径进行数据传输,且无需创建新的网卡队列,提高了故障恢复效率。

附图说明

图1是本说明书一个实施例提供的一种数据传输方法的处理流程图;

图2是本说明书一个实施例提供的一种数据传输方法的示意图;

图3是本说明书一个实施例提供的一种应用于RDMA网络传输场景的数据传输方法的处理流程图;

图4是本说明书一个实施例提供的一种数据传输装置的示意图;

图5是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

RDMA(Remote Direct Memory Access,远程直接内存访问):是为了解决网络传输中服务器端数据处理的延迟而产生的,RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。

ASW(Access Switch):服务器上联交换机。

PSW(Pod Switch):数据中心交付单元上联交换机。

MMU(Memory Management Unit,内存管理单元):有时称作分页内存管理单元(paged memory management unit,PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换。

在本说明书中,提供了一种数据传输方法,本说明书一个或者多个实施例同时涉及一种数据传输装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

本说明书提供的一种数据传输方法实施例如下:

图1示出了根据本说明书一个实施例提供的一种数据传输方法的处理流程图,具体包括以下步骤:

步骤102,接收针对目标数据的传输请求。

其中,所述目标数据,可以理解为待传输的数据;所述传输请求,包括数据读请求或数据写请求;具体的,数据读请求,可以理解为请求读取接收端中数据的请求;数据写请求,可以理解为请求将数据写入接收端的请求。

实际应用中,所述传输请求中可以携带目标数据的数据信息,具体的,所述数据信息,包括:目标数据的存储地址、和/或目标数据的数据标识等,则根据这些数据信息,即可确定待传输的目标数据。

步骤104,基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输。

其中,所述网卡队列,可以是支持RDMA协议的传输队列(也可理解为RDMA网络连接),具体实施时,发送端通过对网卡列队进行调度,在发送端和接收端之间进行数据传输,进一步的,所述网卡队列,包括由发送队列(Send Queue,SQ)和接收队列(Receive Queue,RQ)组成的队列对(Queue Pairs,QP)。

进一步的,网卡队列与网口具有对应关系,则在发送端和接收端进行数据传输时,会将网卡队列中包含或指向的目标数据从网卡队列对应的网口进行传输,其中,网口,可以理解为网络设备(比如网卡)的外部连接接口,每个网口具有对应的网口标识(例如网口编号),具体的,比如0、1,或port0、port1等。

具体实施时,本说明书实施例提供的一种可选实施方式中,所述基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输,具体采用如下方式实现:

根据所述传输请求中携带的队列信息,确定所述网卡队列;

将所述传输请求转换为队列元素添加所述至对应的网卡队列;

对所述队列元素进行解析,确定所述目标数据;

将所述目标数据从所述网卡队列对应的所述第一网口进行传输。

实际应用中,传输请求中携带网卡队列的队列信息,比如通信端的IP地址、端口号和/或队列标识等信息,则根据携带的队列信息,即可唯一地确定一个网卡队列,并通过网卡队列与IP地址对应的接收端进行目标数据的传输。

具体的,将所述传输请求转换为队列元素,可以理解为将传输请求进行格式封装,将其转换为网卡队列的队列元素的格式,添加至网卡队列中,以便对网卡队列中的队列元素进行处理。

实际应用中,在网卡队列为RDMA协议的传输队列的情况下,一个放置在网卡队列的接收队列(RQ)中的工作队列元素(Work Queue Element,WQE)即队列元素,主要包含一个指向某个缓冲区的指针,用于指示待接收的数据将要存放的地址,而一个放置在网卡队列的发送队列(SQ)中的WQE,则包含一个指向待发送的数据的指针,用于指向待发送的数据。

进一步的,对队列元素进行解析,即可获得待传输的目标数据,并将目标数据从网卡队列对应的第一网口进行传输,实现了通过对网卡队列进行调度,对目标数据进行传输,并将目标数据从指定网口(即网卡队列对应的网口)进行传输。

实际应用中,在创建网卡队列的过程中,会为网卡队列分配对应的网口,以便指示从哪个网口传输网卡队列中的数据,本说明书实施例提供的一种可选实施方式中,所述基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输之前,还包括:

接收队列创建请求,其中,所述队列创建请求中携带队列地址信息以及队列端口信息;

基于所述队列地址信息以及所述队列端口信息,创建所述队列创建请求对应的网卡队列;

确定网卡队列对应的第一网口,将所述第一网口分配至所述网卡队列。

具体的,所述队列创建请求,是指请求创建网卡队列的请求,该队列创建请求中携带队列地址信息以及队列端口信息,其中,队列地址信息,可以理解为IP地址,所述队列端口信息,可以理解为端口号,实际应用中,根据发送端的源IP地址、源端口号,以及发送端对应的接收端的目标IP地址、目标端口号,即可创建一个网卡队列。

具体实施时,所述队列创建请求中,还可以指定网卡队列对应的网口,例如,队列创建请求中指定网口标识,将网口标识分配给网卡队列,即将网口标识对应的网口作为网卡队列对应的网口,其中,网口标识是指可以唯一标识一个网卡的网口的标识。

实际应用中,在网卡队列为RDMA协议的传输队列的情况下,可通过网卡驱动软件接口在驱动软件栈中为网卡队列分配指定的网口,此外,也可以查询预设的分配规则,将分配规则中指示的网口标识对应的网口分配至网卡队列。

进一步的,在创建网卡队列之后,本说明书实施例提供的一种可选实施方式中,所述接收针对目标数据的传输请求之前,还包括:

将所述网卡队列与所述第一网口之间的对应关系,在预设的对应关系表中进行记录。

实际应用中,所述网卡队列与所述第一网口之间的对应关系,可以通过网卡队列的队列标识与第一网口的第一网口标识之间的对应关系,或者网卡队列的对了名称和第一网口的网口名称之间的对应关系进行表示,在此不做限制,并将此对应关系在预设的对应关系表中进行记录(即存储)。

具体的,所述对应关系表,可以如下表1所示:

表1

其中,队列标识是指可以唯一标识一个网卡队列的标识,第一网口标识是指第一网卡的标识,所述对应关系表,可以理解为表格或数据库中的数据表,此外,还可以理解为任意可以存储数据的存储文件等,在此不做限制。

本说明书实施例,在创建网卡队列之后,将网卡队列与网口之间的对应关系,在预设的关系对应表中进行记录,以便对已经创建的网卡对应,并对网卡队列与网口之间的对应关系进行查找和追踪。

步骤106,在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

具体的,所述预设时长,是指预先设置的收到接收应答的最长时长,若超过预设时长未接收到针对目标数据的接收应答,表明针对目标数据传输失败,若在预设时长内接收到针对目标数据的接收应答,表明针对目标数据传输成功,其中,所述接收应答,可以是确认字符(Acknowledge character,ACK),也可以自定义的其他类型的确认消息,用于表示接收端收到目标数据,在此不做限制。

所述第二网口,可以理解为网络设备(比如网卡)中除第一网口之外的任一网口,实际应用中,一个网卡可以有至少一个网口,每个网口上联一个交换机(比如ASW),而交换机上可以再上联多个交换机(比如PSW),因此,发送端和接收端之间的物理路径可能经过多个交换机,若传输路径中任意一个交换机出现故障(比如MMU堵死,黑洞等场景)时,故障交换机所在路径对应的网口会发生断流,因此,通过将发送端的流量从故障路径对应的网口切换到另一可用的网口,使得发送端与接收端之间的流量可以互通,从而保障上层业务的可用性。

需要说明的是,网卡驱动在发送数据时,根据RDMA网络连接对应的网口标识,从对应的网口将RDMA网络连接上的数据发送出去。每个RDMA网络连接对应的网口标识,可以通过驱动软件接口来实现动态修改,在下一次为RDMA网络连接发送数据时,读取新的网口标识然后从新的网口标识对应的网口上发出去。

如图2所示,以网卡队列为QP1为例,发送端和接收端的网卡都有两个网口,这两个网口的网口标识分别为Port0和Port1,发送端QP1对应的网口为网口Port0,网口Port0上联一个交换机1(比如接入层交换机),网口Port1上联交换机2,其中,交换机1上再上联八个交换机,分别为交换机11,交换机12……交换机18,而交换机2也上联八个交换机,分别为交换机21,交换机22……交换机28,这些交换机分别与交换机3或交换机4相连,而交换机3连接接收端的网口Port0,交换机4连接接收端的网口Port1,在交换机1故障的情况下,发送端从Port0到接收端的物理路径断连,即目标数据无法通过QP1对应的网口Port0传输至接收端,则将QP1对应的网口从网口port0修改为网口Port1,并将目标数据从QP1对应的网口Port1进行传输。

在上述将网卡队列对应的网口修改为第二网口之的基础上,本说明书实施例提供的一种可选实施方式中,所述数据传输方法,还包括:

将所述对应关系表中所述网卡队列与所述第一网口之间的对应关系更新为所述网卡队列与所述第二网口之间的对应关系。

实际应用中,在将网卡队列对应的网口从第一网口修改为第二网口之后,将对应关系表中网卡队列与网口的对应关系进行更新,进一步的,可以通过网卡队列的队列标识,确定所述网卡队列在所述对应关系表中的队列记录,并通过将该队列记录中第一网口的第一网口标识,更新为第二网口的第二网口标识,以完成对该队列记录的更新,以便保障该对应关系表中记录的对应关系是被及时更新的,即保障在对应关系表中查询到的对应关系是准确的。

具体的,以上述对应关系表为表1为例,将所述对应关系表进行更新后,具体如下表2所示:

表2

进一步的,若在发送端新建的网卡队列仍经过故障路径,则还会出现数据传输超时的情况,在这种情况下,还会修改新建的网卡队列对应的网口,因此,经过一段时间后,发送端和接收端之间通信的网卡队列以及网络流量都会收敛到可用的网口上,而网卡队列为均为长连接,但连接一旦建立成功,就会一直保活,因此,即便故障路径恢复可用,原本已经切换到可用网口上的网卡队列和流量已经稳定,不会主动切换到原来的故障路径上,从而导致发送端的收发流量大量集中到一个网口,即导致网络流量呈现不均衡的现象,最终业务层看到的是网络吞吐量减半,业务能力下降等结果,使得可用带宽大大降低,无法充分恢复应用的最大服务可用能力,造成资源浪费,因此,需要针对网口进行流量均衡,而针对网口进行流量均衡的方式是多种多样的,本说明书实施例提供的第一种可选实施方式中,具体采用如下方式实现:

接收针对网口的队列均衡指令;

基于所述队列均衡指令,确定所述对应关系表中网卡队列的队列总量、网口数量以及各个网口对应的网卡队列的队列数量;

根据所述队列总量以及所述网口数量,确定所述各个网口对应的均衡队列数量;

基于所述队列数量以及所述均衡队列数量,将所述各个网口对应的网卡队列进行队列均衡。

其中,所述队列均衡指令,可以理解为指示对各个网口的网卡队列的队列数量进行均衡的指令,实际应用中,故障恢复后,服务器节点(发送端)上的应用可以通过和网络运维系统联动,或者由运维工程师手动触发队列均衡,来实现将上层应用的流量均匀分配到各个网口标识(网口编号)对应的网口上,使得流量可以重新经过故障恢复后的交换机和网络路径上,无需断开当前连接和重新建立新的连接,即网卡支持为网卡队列实现不断链的动态切换网口的功能。

所述队列总量,是指对应关系表中所记录的网卡队列的总数量,比如上述表2中记录的网卡队列的队列总量为6;所述网口数量,可以理解为对应关系表中记录的网口的个数,比如上述表2中记录的网口的个数为2,这两个的网口分别为网口Port0和网口Port1;所述队列数量,是指对应关系表中记录的各个网口对应的网卡队列的数量,比如上述表2中记录的网口Port0对应的网卡队列的数量为4,网口Port1对应的网卡队列的数量为2。

基于此,根据所述队列总量以及所述网口数量,确定各个网口对应的均衡数量,可以理解为通过队列总量和网口数量进行计算,比如计算队列总量和网口数量之间的商值,作为每个网口对应的网络队列的均衡队列数量。

并进一步,根据每个网口对应的网卡队列的队列数量与均衡队列数量进行队列均衡,具体的,以上述表2为例,网口Port0对应的网卡队列的队列数量为4,网口Port1对应的网卡队列的队列数量为2,每个网口对应的网卡队列的均衡队列数量为(4+2)/2=3,则在队列数量为4对应的网卡队列中按照预设的规则(比如随机或按照在对应关系表中的排列顺序)筛选出1个网卡队列,将该网卡队列对应的网口从Port0修改为Port1,则修改完成后,网口Port0和网口Port1对应的网卡队列的队列数量均为3,每个网口上有一半的网卡队列。

此外,还可以选择断开网卡队列(传输连接),并重新创建网卡队列(传输连接)的方式来随机打散网卡队列在网口上的聚集,但是断链和重新建连都会引起业务层的感知和服务不稳定。

具体实施时,对各个网口对应的网卡队列进行队列均衡,可以将网卡队列按照网口的数量均匀地分配到各个网口上,避免了个别网口出现流量瓶颈,并避免了造成资源的浪费,同时提高了队列均衡的准确性,本说明书实施例提供的一种可选实施方式中,具体采用如下方式实现:

确定所述队列数量中大于所述均衡队列数量的第一队列数量,以及确定所述队列数量中小于所述均衡队列数量的第二队列数量;

计算所述第一队列数量与所述均衡队列数量的第一数量差值,以及计算所述均衡队列数量与所述第二队列数量的第二数量差值;

在所述第一队列数量对应的第一网卡队列中,按照预设规则筛选出与所述第一数量差值等量的目标网卡队列;

根据所述第二数量差值以及所述第二数量差值对应的第三网口,将所述目标网卡队列对应的网口修改为所述第三网口,并按照修改结果,更新所述对应关系表。

具体的,确定所述队列数量中大于所述均衡队列数量的第一队列数量,以及确定所述队列数量中小于所述均衡队列数量的第二队列数量,是为了确定出各个网口对应的网卡队列的队列数量中多于均衡队列数量的队列数量(即第一队列数量),以及确定各个网口对应的网卡队列的队列数量中出队列数量少于均衡队列数量的队列数量(即第二队列数量),并计算第一队列数量相比均衡队列数量多了多少数量(即第一数量差值),以及计算第二队列数量相比均衡队列数量少了多少数量(即第二数量差值),并在队列数量多的网卡队列(即第一网卡队列)中筛选出多出数量的网卡队列(即目标网卡队列)。

进一步的,将筛选出的比均衡队列数量多出的数量的网卡队列(即目标网卡队列)对应的网口,修改为队列数量少的网口(即第三网口),具体实施时,可以将筛选出的网卡队列,根据各个第三网口缺少的队列数量进行修改。

比如,存在4个网口,这4个网口分别为网口Port0,网口Port1,网口Port2,网口Port3,其中,网口Port0对应的网卡队列的队列数量为10,网口Port1对应的网卡队列的队列数量为14,网口Port2对应的网卡队列的队列数量为6,网口Port3对应的网卡队列的队列数量为22,这4个网口的队列均衡数量为(10+14+6+22)/4=13,确定这4个网口中网卡队列的队列数量中大于队列均衡数量的队列数量(第一队列数量)包括:网口Port1对应的队列数量14,以及网口Port3对应的队列数量22,并确定这4个网口中网卡队列的队列数量中小于队列均衡数量的队列数量(第二队列数量)包括:网口Port0对应的队列数量1,以及网口Port2对应的队列数量6;

计算第一队列数量与均衡队列数量的数量差值(第一数量差值)包括:网口Port1对应的队列数量14与均衡队列数量13的差值为1,以及网口Port3对应的队列数量22与均衡队列数量13的差值为9,并计算第二队列数量与均衡队列数量的数量差值(第二数量差值)包括:网口Port0对应的队列数量10与均衡队列数量13的差值为3,以及网口Port2对应的队列数量6与均衡队列数量13的差值为7;

进一步的,在网口Port1中随机筛选出1个网卡队列,在网口Port3中随机筛选出9个网卡队列,将这10个网卡队列作为目标网卡队列,并将这10个网卡队列中的3个网卡队列(由网口Port0缺少的队列数量3决定)对应网口修改为Port0,将10个网卡队列中的剩余7个网卡队列(网口Port2缺少的队列数量7决定)对应的网卡修改为网口Port2。

除上述进行队列均衡的方式之外,本说明书实施例提供的第二种可选实施方式中,所述数据传输方法,还包括:

在检测到任一网口对应的网卡队列的队列数量大于预设数量阈值的情况下,在所述任一网口对应的网卡队列中筛选预设比例的第三网卡队列;

根据所述对应关系表,将各个网口按照对应的网卡队列的队列数量从大到小的顺序进行排序;

将所述第三网卡队列对应的网口修改为排在末位的第四网口。

具体的,所述队列数量大于预设数量阈值,可以理解为网口对应的网卡队列的队列数量较大,已经出现不均衡的情况,需要对该网口的网卡队列进行队列均衡,则在该网卡对应的网卡队列中筛选出预设比例(比如10%,20%等)的网卡队列(即第三网卡队列),实际应用中,可以采用预设的筛选规则(比如随机筛选或按照网卡队列的队列标识的大小)筛选出第三网卡队列。

进一步的,根据对应关系表,将各个网口按照对应的网卡队列的队列数量从大到小进行排序,是为了确定队列数量最少的网口(即排在末位的第四网口),并将网卡队列从队列数量超标的网口修改为队列数量最少的网口,实现了将网卡队列从队列数量高的网口向队列数量最低的网口进行队列均衡,并提高了队列均衡的效率。

进一步的,在将与所述网卡队列对应的网口修改为第二网口之后,还可以将网卡队列对应的网口修改回之前对应的第一网口,以避免各网口对应的网卡队列的数量出现不均衡的情况,本说明书实施例提供的一种可选实施方式中,所述将与所述网卡队列对应的网口修改为第二网口之后,还包括:

接收针对所述第一网口的恢复完成指令;

基于所述恢复完成指令,将所述网卡队列对应的网口修改为所述第一网口。

其中,所述恢复完成指令,可以理解为对所述第一网口对应的故障路径的恢复完成指令,即针对导致出现上述传输失败的故障的修复完成指令,由于在故障出现后,对网卡队列对应的网口进行了修改,可能导致各个网口对应的网卡队列的数量出现不均衡的情况,因此,在故障修复后,将对网卡队列所做的修改进行还原,则避免了各网口对应的网卡队列的数量出现不均衡的情况。

本说明书提供一种数据传输方法,包括:接收针对目标数据的传输请求;基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输,实现了在目标数据传输超时的情况下,将对网卡队列对应的网口(即出现传输故障的网口)动态切换至可用的网口,并使目标数据可以通过网卡队列从可用的网口上进行传输,避免了从第一网口对应的故障路径进行数据传输,且无需创建新的网卡队列,提高了故障恢复效率。

综上所述,本说明书提供一种数据传输方法,包括:接收针对目标数据的传输请求;基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输,实现了在目标数据传输超时的情况下,将对网卡队列对应的网口(即出现传输故障的网口)动态切换至可用的网口,并使目标数据可以通过网卡队列从可用的网口上进行传输,避免了从第一网口对应的故障路径进行数据传输,且无需创建新的网卡队列,提高了故障恢复效率。

下述结合附图3,以本说明书提供的数据传输方法在RDMA网络传输场景中的应用为例,对所述数据传输方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种应用于RDMA网络传输场景的数据传输方法的处理流程图,具体包括以下步骤:

步骤302,接收RDMA队列创建请求,其中,所述RDMA队列创建请求中携带队列地址信息以及队列端口信息。

具体的,RDMA队列创建请求,是指请求创建RDMA网卡队列的创建请求,其中,RDMA网卡队列,是指支持RDMA协议的传输队列。

实际应用中,为了加速数据的访问和计算,数据中心网络可以使用RDMA来为分布式存储和分布式计提供高性能网络传输服务。

步骤304,基于所述队列地址信息以及所述队列端口信息,创建所述RDMA队列创建请求对应的RDMA网卡队列。

步骤306,确定RDMA网卡队列对应的第一网口,将所述第一网口分配至所述网卡队列。

具体的,RDMA网卡队列对应的第一网口,可以直接在RDMA队列创建请求中进行指定,此外,也可以按照预设的选取规则选取第一网口,比如有两个网口Port0和网口Port1,若上一次针对新创建的RDMA网卡队列分配的是网口Port0,那么这一次选取网口Port1作为此次创建的RDMA网卡队列对应的网口。

步骤308,将所述RDMA网卡队列与所述第一网口之间的对应关系,在预设的对应关系表中进行记录。

步骤310,接收针对目标数据的传输请求。

步骤312,基于所述传输请求确定对应的RDMA网卡队列,并将所述目标数据从所述RDMA网卡队列对应的第一网口进行传输。

步骤314,在预设时长内未通过所述RDMA网卡队列收到针对目标数据的接收应答的情况下,将与所述RDMA网卡队列对应的网口修改为第二网口,并将所述目标数据从所述RDMA网卡队列对应的第二网口进行传输。

步骤316,将所述对应关系表中所述RDMA网卡队列与所述第一网口之间的对应关系更新为所述RDMA网卡队列与所述第二网口之间的对应关系。

步骤318,接收针对网口的队列均衡指令。

步骤320,基于所述队列均衡指令,确定所述对应关系表中RDMA网卡队列的队列总量、网口数量以及各个网口对应的RDMA网卡队列的队列数量。

步骤322,根据所述队列总量以及所述网口数量,确定所述各个网口对应的均衡队列数量。

步骤324,基于所述队列数量以及所述均衡队列数量,将所述各个网口对应的RDMA网卡队列进行队列均衡。

综上所述,本说明书提供一种数据传输方法,包括:接收针对目标数据的传输请求;基于所述传输请求确定对应的RDMA网卡队列,并将所述目标数据从所述RDMA网卡队列对应的第一网口进行传输;在预设时长内未通过所述RDMA网卡队列收到针对目标数据的接收应答的情况下,将与所述RDMA网卡队列对应的网口修改为第二网口,并将所述目标数据从所述RDMA网卡队列对应的第二网口进行传输,实现了在目标数据传输超时的情况下,将对RDMA网卡队列对应的网口(即出现传输故障的网口)动态切换至可用的网口,并使目标数据可以通过RDMA网卡队列从可用的网口上进行传输,避免了从第一网口对应的故障路径进行数据传输,且无需创建新的RDMA网卡队列,提高了故障恢复效率。

本说明书提供的一种数据传输装置实施例如下:

与上述方法实施例相对应,本说明书还提供了数据传输装置实施例,图4示出了本说明书一个实施例提供的一种数据传输装置的示意图。如图4所示,该装置包括:

第一接收模块402,被配置为接收针对目标数据的传输请求;

传输模块404,被配置为基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

第一修改模块406,被配置为在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

可选的,所述传输模块404,进一步被配置为:

根据所述传输请求中携带的队列信息,确定所述网卡队列;

将所述传输请求转换为队列元素添加所述至对应的网卡队列;

对所述队列元素进行解析,确定所述目标数据;

将所述目标数据从所述网卡队列对应的所述第一网口进行传输。

可选的,所述数据传输装置,还包括:

记录模块,被配置为将所述网卡队列与所述第一网口之间的对应关系,在预设的对应关系表中进行记录。

可选的,所述数据传输装置,还包括:

更新模块,被配置为将所述对应关系表中所述网卡队列与所述第一网口之间的对应关系更新为所述网卡队列与所述第二网口之间的对应关系。

可选的,所述数据传输装置,还包括:

第一接收指令模块,被配置为接收针对网口的队列均衡指令;

第一确定数量模块,被配置为基于所述队列均衡指令,确定所述对应关系表中网卡队列的队列总量、网口数量以及各个网口对应的网卡队列的队列数量;

第二确定数量模块,被配置为根据所述队列总量以及所述网口数量,确定所述各个网口对应的均衡队列数量;

队列均衡模块,被配置为基于所述队列数量以及所述均衡队列数量,将所述各个网口对应的网卡队列进行队列均衡。

可选的,所述队列均衡模块,进一步被配置为:

确定所述队列数量中大于所述均衡队列数量的第一队列数量,以及确定所述队列数量中小于所述均衡队列数量的第二队列数量;

计算所述第一队列数量与所述均衡队列数量的第一数量差值,以及计算所述均衡队列数量与所述第二队列数量的第二数量差值;

在所述第一队列数量对应的第一网卡队列中,按照预设规则筛选出与所述第一数量差值等量的目标网卡队列;

根据所述第二数量差值以及所述第二数量差值对应的第三网口,将所述目标网卡队列对应的网口修改为所述第三网口,并按照修改结果,更新所述对应关系表。

可选的,所述数据传输装置,还包括:

筛选模块,被配置为在检测到任一网口对应的网卡队列的队列数量大于预设数量阈值的情况下,在所述任一网口对应的网卡队列中筛选预设比例的第三网卡队列;

排序模块,被配置为根据所述对应关系表,将各个网口按照对应的网卡队列的队列数量从大到小的顺序进行排序;

第二修改模块,被配置为将所述第三网卡队列对应的网口修改为排在末位的第四网口。

可选的,所述数据传输装置,还包括:

第二接收指令模块,被配置为接收针对所述第一网口的恢复完成指令;

第三修改模块,被配置为基于所述恢复完成指令,将所述网卡队列对应的网口修改为所述第一网口。

可选的,所述数据传输装置,还包括:

第二接收模块,被配置为接收队列创建请求,其中,所述队列创建请求中携带队列地址信息以及队列端口信息;

创建模块,被配置为基于所述队列地址信息以及所述队列端口信息,创建所述队列创建请求对应的网卡队列;

分配模块,被配置为确定网卡队列对应的第一网口,将所述第一网口分配至所述网卡队列。

本说明书提供一种数据传输装置,包括:接收针对目标数据的传输请求;基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输,实现了在目标数据传输超时的情况下,将对网卡队列对应的网口(即出现传输故障的网口)动态切换至可用的网口,并使目标数据可以通过网卡队列从可用的网口上进行传输,避免了从第一网口对应的故障路径进行数据传输,且无需创建新的网卡队列,提高了故障恢复效率。

上述为本实施例的一种数据传输装置的示意性方案。需要说明的是,该数据传输装置的技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输装置的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。

本说明书提供的一种计算设备实施例如下:

图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。

计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。

其中,处理器520用于执行如下计算机可执行指令:

接收针对目标数据的传输请求;

基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据传输方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。

本说明书提供的一种计算机可读存储介质实施例如下:

本说明书提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

接收针对目标数据的传输请求;

基于所述传输请求确定对应的网卡队列,并将所述目标数据从所述网卡队列对应的第一网口进行传输;

在预设时长内未通过所述网卡队列收到针对目标数据的接收应答的情况下,将与所述网卡队列对应的网口修改为第二网口,并将所述目标数据从所述网卡队列对应的第二网口进行传输。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据传输方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 发送装置、信号传输方法、数据分配系统及其方法、数据接收装置、数据提供装置及其方法和数据送出装置
  • 数据传输装置、数据接收装置、数据传输系统和数据传输方法
技术分类

06120113252021