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

一种异构服务器集群以及数据转发方法、装置和设备

文献发布时间:2023-06-19 16:09:34



技术领域

本申请涉及数据通信技术领域,特别是涉及一种异构服务器集群以及数据转发方法、装置和设备。

背景技术

现有的服务器集群都是通过传统以太网进行互联,服务器彼此之间通过网卡进行数据的收发,这样的数据传输过程存在延时高的缺陷;同时,该数据传输过程也不是无损的数据传输,需要在网卡或者协议栈进行差错校验,因此会进一步增加CPU负载和传输延时。

发明内容

基于此,针对上述技术问题,提供一种能实现低延时的异构服务器集群以及数据转发方法、装置和设备。

第一方面,一种异构服务器集群,包括总线、数据处理芯片、内存管理单元、多个服务器和多个显卡;所述内存管理单元与每个服务器和每个显卡均通过总线双向通信连接,所述内存管理单元还与数据处理芯片双向通信连接;每个服务器均通过总线与每个显卡双向通信连接,所有服务器彼此通过总线双向通信连接;每个服务器均包括CPU、DMA控制器和内存,每个显卡均包括GPU和显存。

可选地,所述总线为PCIe总线或CXL总线或UCIe总线。

可选地,每个服务器的内存和每个显卡的显存均设置有唯一编址,每个服务器的内存的编址均与每个服务器自身的MAC地址相对应,每个显卡的显存的编址均与每个显卡自身的编号相对应。

进一步可选地,根据服务器的数量n和显卡的数量m,每个服务器的内存中均设置有一块存储区域,每个服务器的内存中的所述存储区域均被划分为(m+n-1)*2个存储块,每个服务器的内存中的所述(m+n-1)*2个存储块分别用于存储来自其他每个服务器和每个显卡的数据,以及存储向其他每个服务器和显卡发送的数据;每个显卡的显存中均设置有一块存储区域,每个显卡的显存中的所述存储区域被划分为n*2个存储块,每个显卡的显存中的所述n*2个存储块分别用于存储来自每个服务器的数据,以及存储向每个服务器发送的数据。

进一步可选地,每个显卡的显存中均还设置有另一块存储区域,每个显卡的显存中的所述另一块存储区域用于存储所在显卡的GPU的负载情况。

第二方面,一种数据转发方法,应用于第一方面所提供的异构服务器集群,所述方法包括:

基于每个服务器和显卡所携带的唯一编号,区分每个设备是服务器还是显卡;

通过内存管理单元建立各服务器的内存的映射关系以及建立各显卡的显存的映射关系;

基于每个服务器上加载的虚拟网卡驱动,获取每个服务器的MAC地址;通过内存管理单元建立每个服务器的内存的编址与每个服务器自身的MAC地址之间的映射关系,以及建立每个显卡的显存的编址与每个显卡自身的编号之间的映射关系;

获取数据发送服务器要进行转发的数据,判断要转发的数据是否为以太网数据;

若判定要进行转发的数据为以太网数据,根据要进行转发的数据中携带的目的MAC地址,向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述目的MAC地址对应的存储块中;向所述目的MAC地址对应的数据接收服务器下发搬运数据指令,使数据接收服务器的DMA控制器将数据发送服务器的内存中所述目的MAC地址对应的存储块中存储的要进行转发的数据,搬运到数据接收服务器的内存中相应的存储块中;

若判定要进行转发的数据不是以太网数据,获取每个显卡的GPU的负载情况,并根据每个显卡的GPU的负载情况,指定一个显卡为数据接收显卡;向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中;向所述数据发送服务器下发搬运数据指令,使所述数据发送服务器的DMA控制器将所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中存储的要进行转发的数据,搬运到数据接收显卡的显存中相应的存储块中。

第三方面,一种数据转发装置,包括:

设备区分模块,用于基于每个服务器和显卡所携带的唯一编号,区分每个设备是服务器还是显卡;

第一映射关系建立模块,用于通过内存管理单元建立各服务器的内存的映射关系以及建立各显卡的显存的映射关系;

第二映射关系建立模块,用于基于每个服务器上加载的虚拟网卡驱动,获取每个服务器的MAC地址;通过内存管理单元建立每个服务器的内存的编址与每个服务器自身的MAC地址之间的映射关系,以及建立每个显卡的显存的编址与每个显卡自身的编号之间的映射关系;

数据类型判断模块,用于获取数据发送服务器要进行转发的数据,判断要转发的数据是否为以太网数据;

第一数据搬运模块,用于若判定要进行转发的数据为以太网数据,根据要进行转发的数据中携带的目的MAC地址,向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述目的MAC地址对应的存储块中;向所述目的MAC地址对应的数据接收服务器下发搬运数据指令,使数据接收服务器的DMA控制器将数据发送服务器的内存中所述目的MAC地址对应的存储块中存储的要进行转发的数据,搬运到数据接收服务器的内存中相应的存储块中;

第二数据搬运模块,用于若判定要进行转发的数据不是以太网数据,获取每个显卡的GPU的负载情况,并根据每个显卡的GPU的负载情况,指定一个显卡为数据接收显卡;向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中;向所述数据发送服务器下发搬运数据指令,使所述数据发送服务器的DMA控制器将所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中存储的要进行转发的数据,搬运到数据接收显卡的显存中相应的存储块中。

第四方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第二方面所提供的一种数据转发方法。

第五方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所提供的一种数据转发方法。

本发明至少具有以下有益效果:

本发明基于对现有技术问题的进一步分析和研究,认识到现有的服务器集群在进行传输时延时较高;本发明实施例所提供的异构服务器集群,基于总线技术实现了服务器之间的互联以及服务器与显卡的互联,通过加入MMU实现总线上各服务器的内存和各显卡的显存的映射,从而实现服务器和显卡之间的数据的DMA传输;对于服务器之间,系统实现对TCP/IP协议栈的支持,通过MAC地址与内存之间的映射关系,实现服务器之间的数据搬运;本发明实施例所提供的异构服务器集群原生支持服务器和服务器之间以及服务器和显存之间的DMA传输,原生支持RDMA,能够极大地提升数据传输速度,并能够降低云服务的传输延时和组建异构服务器集群的成本。

附图说明

图1为本发明一个实施例提供的一种异构服务器集群的架构框图;

图2为本发明一个实施例中一种异构服务器集群的另一种架构框图;

图3为本发明一个实施例提供的一种数据转发方法的流程示意图;

图4为本发明一个实施例中一种数据转发方法的另一种流程示意图;

图5为本发明一个实施例提供的一种数据转发装置的模块架构框图;

图6为本发明一个实施例提供的一种计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,提供了一种异构服务器集群,该异构服务器集群通过总线技术实现服务器之间的互联,以及通过总线技术实现服务器与显卡之间的互联,该异构服务器集群包括总线、数据处理芯片、内存管理单元(MMU)、多个服务器(服务器1-服务器n)和多个显卡(显卡1-显卡m),该异构服务器集群采用的总线可以但不限于是PCIe总线或CXL总线或UCIe总线。

具体来说,内存管理单元与每个服务器和每个显卡均通过总线双向通信连接,内存管理单元还与数据处理芯片双向通信连接;每个服务器均通过总线与每个显卡双向通信连接,所有服务器彼此通过总线双向通信连接,每个服务器均包括CPU、DMA控制器和内存,每个显卡均包括GPU和显存;也就是说每个CPU不仅可以与其他CPU进行通信,还能与每个GPU进行通信,但是每个GPU只能与CPU进行通信,GPU之间是不能进行通信的。

进一步地,当前总线上的每个服务器的内存和每个显卡的显存均会被进行统一编址,也就是说每个服务器的内存和每个显卡的显存会设置有唯一的编址,以方便通过数据处理芯片可以找到每个服务器上的内存地址和每个显卡上的显存地址。

另外,本发明提供的异构服务器集群支持在每个服务器上加载虚拟网卡驱动,然后可以将TCP/IP协议栈的收发队列映射到服务器的内存区域,并可通过MMU建立每个服务器的MAC地址与该服务器的内存的编址之间的映射关系,以便通过MAC地址能寻找到相应的服务器的内存。同时,每个服务器和显卡还均设置有唯一的编号,同样可通过MMU建立每个显卡的编号与该显卡的显存的编址之间的映射关系,以便通过显卡的编号能寻找到相应的显卡的显存。

进一步地,对于每个服务器的内存和每个显卡的显存,根据当前总线上的服务器的数量n和显卡的数量m,在每个服务器的内存中均会取一块存储区域,并将每个服务器的内存中的该存储区域分成(m+n-1)*2个存储块,乘2表示在每个内存中把发送和接收的区域分开。也就是说,在每个服务器的内存中,对于与其他每个服务器和每个显卡进行的数据发送和接收操作,都有相应的存储块来存储来自其他每个服务器和每个显卡的数据,以及存储向其他每个服务器和显卡发送的数据。类似地,在每个显卡的显存中也会取一块存储区域,由于GPU只能和CPU进行通信,因此每个显卡的显存中的该存储区域只用被划分为n*2个存储块,乘2表示在每个显存中把发送和接收的区域分开。也就是说,在每个显卡的显存中,对于与每个服务器进行的数据发送和接收操作,都有相应的存储块来存储来自每个服务器的数据,以及存储向每个服务器发送的数据。这一步骤也就是对每个服务器的内存和每个显卡的显存建立了映射关系。

同时,在每个显卡的显存中还会再取另外的一块存储区域,用来存储该显卡的GPU的负载情况,当CPU和显卡进行通信时,CPU会根据读取到的GPU负载情况,通过相应算法智能地与各GPU进行数据交换,也就是说CPU会通过相应算法智能地决定将每个数据发送给哪个显卡进行处理,从而实现GPU的负载均衡。

本发明实施例所提供的异构服务器集群,以数据处理芯片为中心,基于总线技术(支持PCIe总线、CXL总线和UCIe总线等)实现了异构集群服务器(CPU、GPU等)的互联。该异构服务器集群的另一种结构示意图如图2所示,通过在总线上加入MMU实现总线上各服务器之间内存的映射,以及实现服务器与显卡之间内存的映射,从而能够实现CPU和GPU之间的数据的DMA传输;对于CPU之间,则系统实现对TCP/IP协议栈的支持,通过MAC地址与内存之间的映射关系,实现CPU之间的数据搬运。通过总线实现数据转发功能,在CPU上编写驱动实现总线的网络数据转发功能,基于总线的低延时和无损传输,在总线上可以更好地支持异构集群服务器的互联。此发明原生支持CPU和CPU之间以及CPU和GPU之间的DMA传输,原生支持RDMA,能够极大地提升数据传输速度,并能够降低云服务的传输延时和组建异构服务器集群的成本。

在一个实施例中,如图3所示,提供了一种数据转发方法,应用于实施例一所提供的异构服务器集群中的数据处理芯片,该方法包括以下步骤:

步骤S301,基于每个服务器和显卡所携带的唯一编号,区分每个设备是服务器还是显卡;

步骤S302,通过内存管理单元建立各服务器的内存的映射关系以及建立各显卡的显存的映射关系;这一步也就是如实施例一所描述的对各服务器的内存以及各显卡的显存进行划分;

步骤S303,基于每个服务器上加载的虚拟网卡驱动,获取每个服务器的MAC地址;通过内存管理单元建立每个服务器的内存的编址与每个服务器自身的MAC地址之间的映射关系,以及建立每个显卡的显存的编址与每个显卡自身的编号之间的映射关系;

步骤S304,获取数据发送服务器要进行转发的数据,判断要转发的数据是否为以太网数据;

步骤S305,若判定要进行转发的数据为以太网数据,根据要进行转发的数据中携带的目的MAC地址,向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述目的MAC地址对应的存储块中;向所述目的MAC地址对应的数据接收服务器下发搬运数据指令,使数据接收服务器的DMA控制器将数据发送服务器的内存中所述目的MAC地址对应的存储块中存储的要进行转发的数据,搬运到数据接收服务器的内存中相应的存储块中;

换一种说法,在服务器之间进行数据转发时,发送端服务器会解析目标MAC地址,把数据拷贝到此MAC地址对应的内存块,进一步数据处理芯片会产生中断,通知对端的接收服务器的DMA控制器来搬运数据;

步骤S306,若判定要进行转发的数据不是以太网数据,获取每个显卡的GPU的负载情况,并根据每个显卡的GPU的负载情况,指定一个显卡为数据接收显卡;向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中;向所述数据发送服务器下发搬运数据指令,使所述数据发送服务器的DMA控制器将所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中存储的要进行转发的数据,搬运到数据接收显卡的显存中相应的存储块中。

当异构服务器集群采用PCIe总线时,在步骤S306中在进行基于PCIe总线的CPU和GPU之间的互联通信时,此时CPU配置为RC(Root Complex),RC设备用于连接CPU/内存子系统和I/O设备;RC模式下,PCIE配置头中的类型值为1;RC模式下,支持配置和I/O事务。GPU配置为EP(EndPoint),EP设备通常表示一个串行或I/O设备;EP模式下,PCIE配置头中的类型值为0;EP模式下,能够接收针对本地内存空间的读写操作。以此,GPU能够直接通过CPU的DMA来搬数据。

上述方法的另一种流程示意图如图4所示。

上述一种数据转发方法中,通过采用实施例一所提供的一种异构服务器集群,实现服务器和显卡之间的数据的DMA传输;同样,在服务器之间,通过MAC地址与内存之间的映射关系,实现服务器之间的数据搬运。该方法支持服务器和服务器之间以及服务器和显卡之间的DMA传输,能够极大地提升数据传输速度,并能够降低云服务的传输延时。

应该理解的是,虽然图3-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种数据转发装置,包括以下程序模块:

设备区分模块501,用于基于每个服务器和显卡所携带的唯一编号,区分每个设备是服务器还是显卡;

第一映射关系建立模块502,用于通过内存管理单元建立各服务器的内存的映射关系以及建立各显卡的显存的映射关系;

第二映射关系建立模块503,用于基于每个服务器上加载的虚拟网卡驱动,获取每个服务器的MAC地址;通过内存管理单元建立每个服务器的内存的编址与每个服务器自身的MAC地址之间的映射关系,以及建立每个显卡的显存的编址与每个显卡自身的编号之间的映射关系;

数据类型判断模块504,用于获取数据发送服务器要进行转发的数据,判断要转发的数据是否为以太网数据;

第一数据搬运模块505,用于若判定要进行转发的数据为以太网数据,根据要进行转发的数据中携带的目的MAC地址,向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述目的MAC地址对应的存储块中;向所述目的MAC地址对应的数据接收服务器下发搬运数据指令,使数据接收服务器的DMA控制器将数据发送服务器的内存中所述目的MAC地址对应的存储块中存储的要进行转发的数据,搬运到数据接收服务器的内存中相应的存储块中;

第二数据搬运模块506,用于若判定要进行转发的数据不是以太网数据,获取每个显卡的GPU的负载情况,并根据每个显卡的GPU的负载情况,指定一个显卡为数据接收显卡;向所述数据发送服务器发送控制指令,使数据发送服务器将要进行转发的数据拷贝到所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中;向所述数据发送服务器下发搬运数据指令,使所述数据发送服务器的DMA控制器将所述数据发送服务器的内存中所述数据接收显卡的编号对应的存储块中存储的要进行转发的数据,搬运到数据接收显卡的显存中相应的存储块中。

上述一种数据转发装置中,实现了服务器和显卡之间的数据的DMA传输;同样,在服务器之间,通过MAC地址与内存之间的映射关系,实现了服务器之间的数据搬运。此数据转发装置支持服务器和服务器之间以及服务器和显卡之间的DMA传输,能够极大地提升数据传输速度,并能够降低云服务的传输延时。

关于一种数据转发装置的具体限定可以参见上文实施例中对于一种数据转发方法的限定,在此不再赘述。上述一种数据转发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上文实施例所提供的一种数据转发方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,涉及上述实施例方法中的全部或部分流程。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,涉及上述实施例方法中的全部或部分流程。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 一种异构服务器集群以及数据转发方法、装置和设备
  • 一种适用于异构网络的自适应数据报文转发方法及装置
技术分类

06120114726972