发明内容
本发明实施例提供一种数据传输方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例中提供了一种数据传输方法。
具体的,所述数据传输方法,包括:
接收来自源数据端的数据传输请求,其中,所述数据传输请求携带有待传输数据和数据传输信息;
根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息;
将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,其中,所述目的网卡设置有一个或多个QP端口信息。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述数据传输信息至少包括以下信息中的一种或多种:源IP地址、目的IP地址、数据传输协议信息、源传输端口信息、目的传输端口信息。
结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息,包括:
根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息;
根据所述目的IP地址确定目的服务器;
通过查找预设映射关系表,获取与所述目的服务器连接的目标网卡的、且与所述目的传输端口信息对应的目的QP端口信息,其中,所述预设映射关系表以所述目的服务器为标识,存储有传输端口信息与QP端口信息之间的映射关系。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述目的服务器连接有一个或多个目的网卡,每个目的网卡均连接有边缘交换机。
结合第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,被实施为:
将所述待传输数据通过所述边缘交换机传输至与所述目的QP端口信息对应的目的网卡。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,被实施为:
当所述数据传输请求不满足预设转发条件时,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;
当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式和第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述预设转发条件与所述目的QP端口信息、已传输数据数据量和/或待传输数据数据量的统计信息相关。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式、第一方面的第五种实现方式和第一方面的第六种实现方式,本公开在第一方面的第七种实现方式中,当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡,被实施为:
根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲可用目的网卡,将其确定为转发目的网卡;
获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;
根据所述转发目的IP地址确定转发目的服务器;
通过查找预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;
将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡。
第二方面,本发明实施例中提供了一种数据传输装置。
具体的,所述数据传输装置,包括:
接收模块,被配置为接收来自源数据端的数据传输请求,其中,所述数据传输请求携带有待传输数据和数据传输信息;
确定模块,被配置为根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息;
传输模块,被配置为将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,其中,所述目的网卡设置有一个或多个QP端口信息。
结合第二方面,本发明实施例在第二方面的第一种实现方式中,所述数据传输信息至少包括以下信息中的一种或多种:源IP地址、目的IP地址、数据传输协议信息、源传输端口信息、目的传输端口信息。
结合第二方面和第二方面的第一种实现方式,本发明实施例在第二方面的第二种实现方式中,所述确定模块包括:
获取子模块,被配置为根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息;
确定子模块,被配置为根据所述目的IP地址确定目的服务器;
查找子模块,被配置为通过查找预设映射关系表,获取与所述目的服务器连接的目标网卡的、且与所述目的传输端口信息对应的目的QP端口信息,其中,所述预设映射关系表以所述目的服务器为标识,存储有传输端口信息与QP端口信息之间的映射关系。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述目的服务器连接有一个或多个目的网卡,每个目的网卡均连接有边缘交换机。
结合第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,所述传输模块被配置为:
将所述待传输数据通过所述边缘交换机传输至与所述目的QP端口信息对应的目的网卡。
结合第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述传输模块被配置为:
当所述数据传输请求不满足预设转发条件时,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;
当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式和第二方面的第五种实现方式,本公开在第二方面的第六种实现方式中,所述预设转发条件与所述目的QP端口信息、已传输数据数据量和/或待传输数据数据量的统计信息相关。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式、第二方面的第五种实现方式和第二方面的第六种实现方式,本公开在第二方面的第七种实现方式中,当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡的部分,被配置为:
根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲可用目的网卡,将其确定为转发目的网卡;
获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;
根据所述转发目的IP地址确定转发目的服务器;
通过查找预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;
将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡。
第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持数据传输装置执行上述数据传输方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据传输装置还可以包括通信接口,用于数据传输装置与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储数据传输装置所用的计算机指令,其包含用于执行上述数据传输方法为数据传输装置所涉及的计算机指令。
本发明实施例提供的技术方案可包括以下有益效果:
上述技术方案通过将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息相对应,以确定每个目的网卡的数据传输情况,从而为待传输数据分配合适的目的网卡。该技术方案能够实现多条传输链路上流量的均匀分配,维持链路间带宽的均衡,避免出现带宽抖动的现象,进而实现对于带宽的充分利用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
具体实施方式
下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
本发明实施例提供的技术方案通过将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息相对应,以确定每个目的网卡的数据传输情况,从而为待传输数据分配合适的目的网卡。该技术方案能够实现多条传输链路上流量的均匀分配,维持链路间带宽的均衡,避免出现带宽抖动的现象,进而实现对于带宽的充分利用。
图1示出根据本发明一实施方式的数据传输方法的流程图,适用于数据传输系统中的数据传输服务器,比如数据交换机等等,其中,所述数据传输系统中包括一个或多个数据服务器,每个数据服务器对应有一个网络IP地址,每个数据服务器既有可能作为源数据服务器,也有可能作为目的数据服务器;每个数据服务器设置有绑定在一起的两个或多个网卡,与所述数据服务器类似,每个网卡既有可能作为源数据网卡,也有可能作为目的数据网卡;每个网卡设置有一个或多个QP端口,每个QP端口都可用于传输、发送和接收数据;每个网卡还连接有一个边缘交换机,所述数据传输系统中的所有边缘交换机均与所述数据交换机相连接,以通过所述数据交换机对于待传输数据进行传输分配控制,生成一个数据传输路径,如图1所示,所述数据传输方法包括以下步骤S101-S103:
在步骤S101中,接收来自源数据端的数据传输请求,其中,所述数据传输请求携带有待传输数据和数据传输信息;
在步骤S102中,根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息;
在步骤S103中,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,其中,所述目的网卡设置有一个或多个QP端口信息。
上文提及,RDMA技术是为了解决网络传输中服务器端数据处理的延迟而产生的,RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统带来任何影响,这样就大大节省了计算机的处理资源。另外,RDMA还消除了外部存储器复制和文本交换操作,因而能够解放内存带宽和CPU周期。RoCE是一种允许通过以太网使用RDMA的网络协议,由于其具备明显的性能和成本优势,因此逐渐得到了广泛的应用。在此基础上,利用RoCE over LAG技术,可以将两块或更多的RoCE网卡绑定在一起提供给上层应用使用,以提供更高的网络带宽和可靠性。在去堆叠、多层网络架构中,每块网卡都会连接一台独立的边缘交换机,并将流量汇聚到多台核心交换机中,这样在网卡之间进行通信时,就会存在多条物理链路,现有技术中,通常利用hash算法对于多条链路上的流量进行分配,但由于在RoCE网络中应用的网络流数量有限,经常出现hash分配不均匀的情况,进而导致链路间带宽不均衡,带宽出现抖动,难以实现对于带宽的充分利用。
考虑到上述问题,在该实施方式中,提出一种数据传输方法,该方法通过将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息相对应,以确定每个目的网卡的数据传输情况,从而为待传输数据分配合适的目的网卡。该技术方案能够实现多条传输链路上流量的均匀分配,维持链路间带宽的均衡,避免出现带宽抖动的现象,进而实现对于带宽的充分利用。
在本发明一实施方式中,所述数据传输请求指的是由源数据端发出的、意于将待传输数据从源数据端发送给目的数据端的请求。其中,所述数据传输请求携带有待传输数据和数据传输信息,所述数据传输信息至少包括以下信息中的一种或多种:源IP地址、目的IP地址、数据传输协议信息、源传输端口信息、目的传输端口信息,其中,所述源IP地址指的是源数据端的IP地址,比如源数据端源服务器的IP地址;所述目的IP地址指的是传输目的数据端的IP地址,比如传输目的数据端目的服务器的IP地址;所述数据传输协议信息指的是所述传输数据所遵循的数据传输协议的类型信息、版本信息等等;所述源传输端口信息指的是源数据端中作为所述待传输数据传输起点的端口的信息,比如源数据端服务器的端口信息;所述目的传输端口信息指的是传输目的数据端中作为所述待传输数据传输终点的端口的信息,比如传输目的数据端服务器的端口信息。
上文提及,每个作为源数据端或目的数据端的数据服务器均设置有绑定在一起的两个或多个网卡,每个网卡既有可能作为源网卡,也有可能作为目的网卡,而且每个网卡均设置有一个或多个QP端口,每个QP端口均可用于数据的传输、发送和接收。对于这种情况,现有技术中并未提供目的传输端口信息与QP端口之间的映射关系,只能根据所述数据传输信息将所述待传输数据传输至目的传输端口处,比如目的数据端的服务器处,再将传输至所述目的传输端口的数据随机地分配到不同的QP端口上,即数据传输路径可表示为:源传输端口—源服务器IP地址—数据传输服务器—目的服务器IP地址—目的传输端口,这就使得由于所述目的数据端服务器中存在多个网卡、经常出现多个QP端口映射到同一目的传输端口等行为,使得QP端口接收数据量出现严重不均衡,进而严重影响到带宽的利用率。因此,在该实施方式中,将网卡QP端口信息与数据传输请求中的目的传输端口信息对应起来,使每个数据传输路径更为精细、清晰和确定,这样就可以更加方便地对于数据传输进行调整和控制,也就能够最大程度地平衡不同QP端口传输或接收的数据量,进而实现带宽利用率的提高。
其中,QP(Queue Pairs)指的是RDMA网络通信的端点对,每对QP包括发队列(sendqueue)和收队列(receive queue),每个网卡设置有一个或多个用于传输数据的QP端口,每个QP端口设置有相应的端口信息,比如端口标识信息等等,借助QP端口信息即可明确数据传输的起点和终点,进一步地,在得知与源网卡对应的源数据服务器IP地址以及与目的网卡对应的目的数据服务器IP地址后,就可生成某一待传输数据的更为精细的传输路径:源网卡QP端口—源服务器IP地址—数据传输服务器—目的服务器IP地址—目的网卡QP端口,这样就可以根据所述精细传输路径将所述待传输数据准确地、唯一地从源数据端传输至目的数据端处,并且借助所述精细传输路径,就可以对于数据传输进行有针对性的调整和控制。
在本发明一实施方式中,如图2所示,所述步骤S102,即根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息的步骤,包括以下步骤S201-S203:
在步骤S201中,根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息;
在步骤S202中,根据所述目的IP地址确定目的服务器;
在步骤S203中,通过查找预设映射关系表,获取与所述目的服务器连接的目标网卡的、且与所述目的传输端口信息对应的目的QP端口信息,其中,所述预设映射关系表以所述目的服务器为标识,存储有传输端口信息与QP端口信息之间的映射关系。
上文提及,本公开实施例将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息对应起来,即,设置一个映射关系表,该表以目的服务器为标识,比如,可针对每个服务器设置一个映射关系表,并以该服务器为标识,也可在一个映射关系表中设置多个以目的服务器为标识的映射关系子表,其中,与所述服务器对应的映射关系表中存储有传输端口信息与QP端口信息之间的映射关系,即传输服务器的端口信息与该服务器所包含的网卡的QP端口信息之间的映射关系,确定了上述传输服务器的端口信息与该服务器所包含的网卡的QP端口信息之间的映射关系之后,就可以根据与所述目的IP地址对应的目的服务器确定与所述目的服务器对应的映射关系表,再通过查找所述映射关系表,获取与所述目的传输端口信息对应的、与所述目的服务器连接的目标网卡的目的QP端口信息。这样就可以实现更为精细、清晰和确定的数据传输路径,以便于对于数据传输进行调整和控制。
上文提及,每个数据服务器设置有绑定在一起的两个或多个网卡,每个网卡既有可能作为源数据网卡,也有可能作为目的数据网卡;每个网卡连接有一个边缘交换机,所述数据传输系统中的所有边缘交换机均与所述数据交换机相连接,因此,在本发明一实施方式中,所述步骤S103,即所述将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡的步骤,可被实施为:
将所述待传输数据通过所述边缘交换机传输至与所述目的QP端口信息对应的目的网卡。
在该实施方式中,所述边缘交换机也设置有标识信息,并与与其连接的网卡相对应。
在本发明另一实施方式中,所述步骤S103,即所述将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡的步骤,可被实施为:
当所述数据传输请求不满足预设转发条件时,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;
当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
考虑到传输至所述数据传输服务器的数据的目的QP端口信息有可能出现重叠,甚至集中在某一个或某几个目的QP端口上,从而导致不同网卡或者某一网卡的不同端口传输的数据量出现不均衡的现象,进而严重影响到带宽的利用率,在该实施方式中,首先判断所述数据传输请求是否满足预设转发条件,当不满足时,意味着当前数据的传输相对均衡,分布在不同网卡或者分布在某一网卡的多个端口上的数据量相对平均,此时可按照正常数据传输流程,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;当满足时,意味着当前数据的传输失去了均衡,分布在不同网卡或者分布在某一网卡的多个端口上的数据量是不平均的,需要对于待传输数据进行传输目的的调整,即对于所述待传输数据执行转发操作,具体地,首先确定转发目的IP地址和转发目的传输端口信息,再将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
其中,所述预设转发条件与所述目的QP端口信息、已传输数据数据量和/或待传输数据的数据量的统计信息相关,比如,所述预设转发条件可以为在预设时间段内,以某一QP端口为目的QP端口的次数超过预设次数阈值,其中,所述预设次数阈值可设置为所述预设时间段内所有QP端口作为目的QP端口的次数平均值;也可以为在预设时间段内,以某一QP端口为目的QP端口的已传输数据的数据量超过预设数据量阈值;也可以为在预设时间段内,以某一QP端口为目的QP端口在传输所述待传输数据后所传输数据的数据量超过预设数据量阈值,即所述待传输数据数据量与该目的QP端口已传输数据的数据量之和超过预设数据量阈值;当然也可以基于上述目的QP端口信息、已传输数据数据量以及待传输数据数据量的综合统计信息设置所述转发条件,本公开对其布局过多限制。
在本发明一实施方式中,在对于所述待传输数据进行转发时,需要根据所有可用目的QP端口信息和待传输数据数据量的统计信息来确定转发目的网卡,同时也需要借助所述预设映射关系表来获取确定的传输终点。具体地,所述当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡的步骤,可被实施为:
根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲可用目的网卡,将其确定为转发目的网卡;
获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;
根据所述转发目的IP地址确定转发目的服务器;
通过查找预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;
将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡。
为了平衡分布在不同网卡或者分布在某一网卡的多个端口上的数据量,在该实施方式中,首先根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲目的网卡,并将其确定为转发目的网卡,其中,可统计得到预设时间段内,某一网卡作为目的网卡,或者某一网卡的某一QP端口作为目的QP端口的次数,来确定空闲网卡或者某一空闲网卡的空闲QP端口,然后根据所述待传输数据的数据量以及所述空闲网卡或者所述空闲网卡的空闲QP端口的可承载数据限度最终确定得到空闲的、可用的网卡及其QP端口,将所述空闲的、可用的网卡作为可接受转发数据的转发目的网卡,将所述空闲的、可用的QP端口作为可接受转发数据的转发目的QP端口;然后获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;根据所述转发目的IP地址确定转发目的服务器;然后与上文描述类似,通过查找所述预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;最后将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡,完成待传输数据的转发,进而实现数据的均衡调控。
图3为根据本发明一实施方式的数据传输整体流程示意图,如图3所示,所述数据传输系统中包括2个数据服务器,数据服务器1对应设有网络IP地址192.168.0.1,数据服务器2对应设有网络IP地址192.168.0.2,每个数据服务器设置有绑定在一起的两个网卡,其中,数据服务器1的网卡11设置有3个QP端口:a、b、c,数据服务器1的网卡12设置有3个QP端口:d、e、f,数据服务器2的网卡21设置有3个QP端口:g、h、i,数据服务器2的网卡22设置有3个QP端口:j、k、l,数据服务器1设置有6个传输端口A、B、C、D、E、F,数据服务器2设置有6个传输端口G、H、I、G、K、L。网卡11连接有边缘交换机11,网卡12连接有边缘交换机12,网卡21连接有边缘交换机21,网卡22连接有边缘交换机22,边缘交换机11、边缘交换机12、边缘交换机21和边缘交换机22均与所述数据传输系统中的数据交换机相连,以通过所述数据交换机对于待传输数据进行传输分配控制,在所述数据交换机中,存储有所述传输端口与QP端口之间的映射关系:A—a、B—b、C—c、D—d、E—e、F—f、G—g、H—h、I—i、J—j、K—k、L—l。若所述数据服务器1为源数据端,即从所述数据服务器1发出携带有待传输数据和数据传输信息的数据传输请求,其中,所述数据传输信息为:192.168.0.1,192.168.0.2,UDP,B,K,即从IP地址为192.168.0.1、端口为B的源数据端向IP地址为192.168.0.2、端口为K的目的数据端发送基于UDP传输协议的数据。所述数据传输请求传输至所述数据交换机之后,所述数据交换机判断所述数据传输请求是否满足预设转发条件,若满足,说明IP地址为192.168.0.2、端口为K的目的数据端传输数据的任务较重,且确定IP地址为192.168.0.2、端口为H的目的数据端既空闲又能满足传输数据的数据量要求,则可将所述待传输数据转发给IP地址为192.168.0.2、端口为H的目的数据端,若不满足,说明IP地址为192.168.0.2、端口为K的目的数据端可正常完成该次传输数据的任务,则可按照正常传输流程,将所述待传输数据传输给IP地址为192.168.0.2、端口为K的目的数据端。这样就在所述数据交换机处更加方便地对于数据传输进行执行、调整和控制,也就能够最大程度地平衡不同QP端口传输或接收的数据量,进而实现带宽利用率的提高。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图4示出根据本发明一实施方式的数据传输装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,可实现为数据传输系统中的数据传输服务器,比如数据交换机等等,其中,所述数据传输系统中包括一个或多个数据服务器,每个数据服务器对应有一个网络IP地址,每个数据服务器既有可能作为源数据服务器,也有可能作为目的数据服务器;每个数据服务器设置有绑定在一起的两个或多个网卡,与所述数据服务器类似,每个网卡既有可能作为源数据网卡,也有可能作为目的数据网卡;每个网卡设置有一个或多个QP端口,每个QP端口都可用于传输、发送和接收数据;每个网卡还连接有一个边缘交换机,所述数据传输系统中的所有边缘交换机均与所述数据交换机相连接,以通过所述数据交换机对于待传输数据进行传输分配控制,生成一个数据传输路径。如图4所示,所述数据传输装置包括:
接收模块401,被配置为接收来自源数据端的数据传输请求,其中,所述数据传输请求携带有待传输数据和数据传输信息;
确定模块402,被配置为根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息,并确定与所述目的IP地址对应的目的服务器,以及与所述目的传输端口信息对应的目的QP端口信息;
传输模块403,被配置为将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡,其中,所述目的网卡设置有一个或多个QP端口信息。
上文提及,RDMA技术是为了解决网络传输中服务器端数据处理的延迟而产生的,RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统带来任何影响,这样就大大节省了计算机的处理资源。另外,RDMA还消除了外部存储器复制和文本交换操作,因而能够解放内存带宽和CPU周期。RoCE是一种允许通过以太网使用RDMA的网络协议,由于其具备明显的性能和成本优势,因此逐渐得到了广泛的应用。在此基础上,利用RoCE over LAG技术,可以将两块或更多的RoCE网卡绑定在一起提供给上层应用使用,以提供更高的网络带宽和可靠性。在去堆叠、多层网络架构中,每块网卡都会连接一台独立的边缘交换机,并将流量汇聚到多台核心交换机中,这样在网卡之间进行通信时,就会存在多条物理链路,现有技术中,通常利用hash算法对于多条链路上的流量进行分配,但由于在RoCE网络中应用的网络流数量有限,经常出现hash分配不均匀的情况,进而导致链路间带宽不均衡,带宽出现抖动,难以实现对于带宽的充分利用。
考虑到上述问题,在该实施方式中,提出一种数据传输装置,该装置通过将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息相对应,以确定每个目的网卡的数据传输情况,从而为待传输数据分配合适的目的网卡。该技术方案能够实现多条传输链路上流量的均匀分配,维持链路间带宽的均衡,避免出现带宽抖动的现象,进而实现对于带宽的充分利用。
在本发明一实施方式中,所述数据传输请求指的是由源数据端发出的、意于将待传输数据从源数据端发送给目的数据端的请求。其中,所述数据传输请求携带有待传输数据和数据传输信息,所述数据传输信息至少包括以下信息中的一种或多种:源IP地址、目的IP地址、数据传输协议信息、源传输端口信息、目的传输端口信息,其中,所述源IP地址指的是源数据端的IP地址,比如源数据端源服务器的IP地址;所述目的IP地址指的是传输目的数据端的IP地址,比如传输目的数据端目的服务器的IP地址;所述数据传输协议信息指的是所述传输数据所遵循的数据传输协议的类型信息、版本信息等等;所述源传输端口信息指的是源数据端中作为所述待传输数据传输起点的端口的信息,比如源数据端服务器的端口信息;所述目的传输端口信息指的是传输目的数据端中作为所述待传输数据传输终点的端口的信息,比如传输目的数据端服务器的端口信息。
上文提及,每个作为源数据端或目的数据端的数据服务器均设置有绑定在一起的两个或多个网卡,每个网卡既有可能作为源网卡,也有可能作为目的网卡,而且每个网卡均设置有一个或多个QP端口,每个QP端口均可用于数据的传输、发送和接收。对于这种情况,现有技术中并未提供目的传输端口信息与QP端口之间的映射关系,只能根据所述数据传输信息将所述待传输数据传输至目的传输端口处,比如目的数据端的服务器处,再将传输至所述目的传输端口的数据随机地分配到不同的QP端口上,即数据传输路径可表示为:源传输端口—源服务器IP地址—数据传输服务器—目的服务器IP地址—目的传输端口,这就使得由于所述目的数据端服务器中存在多个网卡、经常出现多个QP端口映射到同一目的传输端口等行为,使得QP端口接收数据量出现严重不均衡,进而严重影响到带宽的利用率。因此,在该实施方式中,将网卡QP端口信息与数据传输请求中的目的传输端口信息对应起来,使每个数据传输路径更为精细、清晰和确定,这样就可以更加方便地对于数据传输进行调整和控制,也就能够最大程度地平衡不同QP端口传输或接收的数据量,进而实现带宽利用率的提高。
其中,QP(Queue Pairs)指的是RDMA网络通信的端点对,每对QP包括发队列(sendqueue)和收队列(receive queue),每个网卡设置有一个或多个用于传输数据的QP端口,每个QP端口设置有相应的端口信息,比如端口标识信息等等,借助QP端口信息即可明确数据传输的起点和终点,进一步地,在得知与源网卡对应的源数据服务器IP地址以及与目的网卡对应的目的数据服务器IP地址后,就可生成某一待传输数据的更为精细的传输路径:源网卡QP端口—源服务器IP地址—数据传输服务器—目的服务器IP地址—目的网卡QP端口,这样就可以根据所述精细传输路径将所述待传输数据准确地、唯一地从源数据端传输至目的数据端处,并且借助所述精细传输路径,就可以对于数据传输进行有针对性的调整和控制。
在本发明一实施方式中,如图5所示,所述确定模块402包括:
获取子模块501,被配置为根据所述数据传输信息获取数据传输的目的IP地址和目的传输端口信息;
确定子模块502,被配置为根据所述目的IP地址确定目的服务器;
查找子模块503,被配置为通过查找预设映射关系表,获取与所述目的服务器连接的目标网卡的、且与所述目的传输端口信息对应的目的QP端口信息,其中,所述预设映射关系表以所述目的服务器为标识,存储有传输端口信息与QP端口信息之间的映射关系。
上文提及,本公开实施例将目的网卡的QP端口信息与数据传输请求中的目的传输端口信息对应起来,即,设置一个映射关系表,该表以目的服务器为标识,比如,可针对每个服务器设置一个映射关系表,并以该服务器为标识,也可在一个映射关系表中设置多个以目的服务器为标识的映射关系子表,其中,与所述服务器对应的映射关系表中存储有传输端口信息与QP端口信息之间的映射关系,即传输服务器的端口信息与该服务器所包含的网卡的QP端口信息之间的映射关系,确定了上述传输服务器的端口信息与该服务器所包含的网卡的QP端口信息之间的映射关系之后,就可以根据与所述目的IP地址对应的目的服务器确定与所述目的服务器对应的映射关系表,再通过查找所述映射关系表,获取与所述目的传输端口信息对应的、与所述目的服务器连接的目标网卡的目的QP端口信息。这样就可以实现更为精细、清晰和确定的数据传输路径,以便于对于数据传输进行调整和控制。
上文提及,每个数据服务器设置有绑定在一起的两个或多个网卡,每个网卡既有可能作为源数据网卡,也有可能作为目的数据网卡;每个网卡连接有一个边缘交换机,所述数据传输系统中的所有边缘交换机均与所述数据交换机相连接,因此,在本发明一实施方式中,所述传输模块403可被配置为:
将所述待传输数据通过所述边缘交换机传输至与所述目的QP端口信息对应的目的网卡。
在该实施方式中,所述边缘交换机也设置有标识信息,并与与其连接的网卡相对应。
在本发明另一实施方式中,所述传输模块403可被配置为:
当所述数据传输请求不满足预设转发条件时,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;
当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
考虑到传输至所述数据传输服务器的数据的目的QP端口信息有可能出现重叠,甚至集中在某一个或某几个目的QP端口上,从而导致不同网卡或者某一网卡的不同端口传输的数据量出现不均衡的现象,进而严重影响到带宽的利用率,在该实施方式中,首先判断所述数据传输请求是否满足预设转发条件,当不满足时,意味着当前数据的传输相对均衡,分布在不同网卡或者分布在某一网卡的多个端口上的数据量相对平均,此时可按照正常数据传输流程,将所述待传输数据传输至与所述目的QP端口信息对应的目的网卡;当满足时,意味着当前数据的传输失去了均衡,分布在不同网卡或者分布在某一网卡的多个端口上的数据量是不平均的,需要对于待传输数据进行传输目的的调整,即对于所述待传输数据执行转发操作,具体地,首先确定转发目的IP地址和转发目的传输端口信息,再将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡。
其中,所述预设转发条件与所述目的QP端口信息、已传输数据数据量和/或待传输数据的数据量的统计信息相关,比如,所述预设转发条件可以为在预设时间段内,以某一QP端口为目的QP端口的次数超过预设次数阈值,其中,所述预设次数阈值可设置为所述预设时间段内所有QP端口作为目的QP端口的次数平均值;也可以为在预设时间段内,以某一QP端口为目的QP端口的已传输数据的数据量超过预设数据量阈值;也可以为在预设时间段内,以某一QP端口为目的QP端口在传输所述待传输数据后所传输数据的数据量超过预设数据量阈值,即所述待传输数据数据量与该目的QP端口已传输数据的数据量之和超过预设数据量阈值;当然也可以基于上述目的QP端口信息、已传输数据数据量以及待传输数据数据量的综合统计信息设置所述转发条件,本公开对其布局过多限制。
在本发明一实施方式中,在对于所述待传输数据进行转发时,需要根据所有可用目的QP端口信息和待传输数据数据量的统计信息来确定转发目的网卡,同时也需要借助所述预设映射关系表来获取确定的传输终点。具体地,所述当所述数据传输请求满足预设转发条件时,确定转发目的IP地址和转发目的传输端口信息,将所述待传输数据转发至与转发目的IP地址对应的转发目的服务器上与所述转发目的传输端口信息对应的转发目的网卡的部分,可被配置为:
根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲可用目的网卡,将其确定为转发目的网卡;
获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;
根据所述转发目的IP地址确定转发目的服务器;
通过查找预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;
将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡。
为了平衡分布在不同网卡或者分布在某一网卡的多个端口上的数据量,在该实施方式中,首先根据所述目的QP端口信息和待传输数据数据量的统计信息,确定空闲目的网卡,并将其确定为转发目的网卡,其中,可统计得到预设时间段内,某一网卡作为目的网卡,或者某一网卡的某一QP端口作为目的QP端口的次数,来确定空闲网卡或者某一空闲网卡的空闲QP端口,然后根据所述待传输数据的数据量以及所述空闲网卡或者所述空闲网卡的空闲QP端口的可承载数据限度最终确定得到空闲的、可用的网卡及其QP端口,将所述空闲的、可用的网卡作为可接受转发数据的转发目的网卡,将所述空闲的、可用的QP端口作为可接受转发数据的转发目的QP端口;然后获取与所述转发目的网卡对应的转发目的IP地址和转发目的传输端口信息;根据所述转发目的IP地址确定转发目的服务器;然后与上文描述类似,通过查找所述预设映射关系表,获取与所述转发目的服务器连接的转发目的网卡的、且与所述转发目的传输端口信息对应的转发目的QP端口信息;最后将所述待传输数据转发至与所述转发目的QP端口信息对应的转发目的网卡,完成待传输数据的转发,进而实现数据的均衡调控。
本发明实施例还公开了一种电子设备,图6示出根据本发明一实施方式的电子设备的结构框图,如图6所示,所述电子设备600包括存储器601和处理器602;其中,
所述存储器601用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器602执行以实现上述任一方法步骤。
图7是适于用来实现根据本发明一实施方式的数据传输方法的计算机系统的结构示意图。
如图7所示,计算机系统700包括处理单元701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施方式中的各种处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。处理单元701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,所述处理单元701可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述数据传输方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。