智能网卡、智能网卡系统及控制方法与流程

文档序号:16671654发布日期:2019-01-18 23:37阅读:510来源:国知局
智能网卡、智能网卡系统及控制方法与流程

本申请涉及计算机网络技术领域,更具体的说是涉及智能网卡、智能网卡系统及控制方法。



背景技术:

智能网卡(intelligentnetworkinterfacecard,inic)是一种以网络处理器为核心的高性能网络接入卡。它采用多核多线程的网络处理器架构,主要用于实现虚拟交换、安全隔离、服务质量(qualityofservice,qos)等特性,应用于云计算网络虚拟化解决方案当中。

随着云数据中心业务类型和数据量的持续增加,传统的依靠hostcpu实现网络设备(例如,服务器)的内网络方案,网络稳定性差,以及网络能效比低。



技术实现要素:

有鉴于此,本申请提供了智能网卡的控制平面切换方法、转发平面切换方法既装置,以解决网络设备内网络的稳定性差、能效比低的技术问题。本申请提供了如下技术方案:

第一方面,本申请提供了一种智能网卡系统,应用于网络设备中,所述系统包括网卡模块、可编程集成电路模块和所述网络设备中的主处理器,其中,该可编程集成电路模块内部集成有处理器单元;

所述网卡模块与所述可编程集成电路模块通过通信总线连接;

所述网卡模块和所述可编程集成电路模块均与所述主处理器相连接;

所述处理器单元与所述主处理器之间建立有信息同步通道;

其中,所述主处理器为第一控制平面,所述处理器单元为的第二控制平面;所述网卡模块为第一转发平面、所述可编程集成电路模块为第二转发平面、所述主处理器为第三转发平面。

可选地,所述第一控制平面的优先级高于所述第二控制平面的优先级;

所述第一转发平面的优先级高于所述第二转发平面的优先级,且所述第二转发平面的优先级高于第三转发平面的优先级。

可选地,当前主控制平面为所述第一控制平面、当前备控制平面为所述第二控制平面,或者,当前主控制平面为所述第二控制平面、当前备控制平面为所述第一控制平面;所述当前主控制平面和所述当前备控制平面均用于:

检测所述当前主控制平面和所述当前备控制平面是否存在异常;

当检测到所述当前备控制平面存在异常时,控制所述当前备控制平面重新启动;

当检测到所述当前主控制平面存在异常时,控制当前备控制平面切换为新的主控制平面,当前主控制平面切换为新的备控制平面,以及控制所述当前主控制平面重新启动。

可选地,所述当前主控制平面和所述当前备控制平面均还用于:

当检测到所述当前备控制平面异常消除时,将所述当前主控制平面的控制信息同步给所述当前备控制平面;

当检测到所述当前主控制平面异常消除时,将所述新的主控制平面的控制信息同步给所述当前主控制平面。

可选地,当前主控制平面,用于当检测到当前转发平面出现异常时,按照优先级由高到低的顺序,将转发规则由所述当前转发平面迁移至该当前转发平面的下一个优先级的转发平面;

其中所述当前主控制平面为所述第一控制平面或所述第二控制平面。

可选地,所述当前主控制平面,用于当检测到所述第一转发平面出现软件故障时,将转发规则由所述第一转发平面迁移至所述第二转发平面,并控制所述第一转发平面重新启动系统;当检测到所述第一转发平面软件故障消除后,将所述转发规则由所述第二转发平面迁移回所述第一转发平面;

所述当前主控制平面,用于当检测到所述第二转发平面出现软件故障时,将所述转发规则由所述第二转发平面迁移至所述第三转发平面,并通知上层应用进行处理;

所述当前主控制平面,用于当监测到所述第三转发平面出现软件故障时,通知上层应用进行处理。

可选地,所述当前主控制平面,用于当检测到所述第一转发平面的资源不充足时,将所述转发规则由所述第一转发平面迁移至所述第二转发平面,并在检测到所述第一转发平面的资源变为充足时,将所述转发规则由所述第二转发平面迁移回所述第一转发平面;

所述当前主控制平面,用于当检测到所述第二转发平面的资源不充足时,将所述转发规则由所述第二转发平面迁移至所述第三转发平面,并在检测到所述第二转发平面的资源变为充足时,将所述转发规则由所述第三转发平面迁移回所述第二转发平面。

第二方面,本申请还提供了一种智能网卡,应用于网络设备中,所述智能网卡包括网卡模块、可编程集成电路模块,其中,该可编程集成电路模块内集成有处理器单元;

所述网卡模块与所述可编程集成电路模块通过通信总线连接;

所述网卡模块和所述可编程集成电路模块的处理器单元均与所述网络设备中的主处理器相连接;

所述处理器单元与所述主处理器之间建立有信息同步通道;

其中,所述主处理器为第一控制平面,所述处理器单元为第二控制平面;所述网卡模块为第一转发平面、所述可编程集成电路模块为第二转发平面、所述主处理器为第三转发平面。

第三方面,本申请还提供了一种网络设备,包括第一方面任意一种可能的实现方式所述的智能网卡系统。

第四方面,本申请还提供了一种智能网卡的控制平面切换方法,应用于第一方面任意一种可能的实现方式所述的智能网卡系统的主处理器或处理器单元中,所述方法包括:

检测当前主控制平面和当前备控制平面是否存在异常;

当检测到所述当前备控制平面存在异常时,控制所述当前备控制平面重新启动;

当检测到当前主控制平面存在异常时,控制当前备控制平面切换为新的主控制平面,当前主控制平面切换为新的备控制平面,以及控制当前主控制平面重新启动。

可选地,所述方法还包括:当检测到所述当前备控制平面异常消除时,将所述当前控制平面的控制信息同步给所述当前备控制平面;

当检测到所述当前主控制平面异常消除时,将所述新的主控制平面的控制信息同步给所述当前主控制平面。

第五方面,本申请还提供了一种智能网卡的转发平面切换方法,应用于第一方面任意一种可能的实现方式所述的智能网卡系统中,所述方法包括:

当主控制平面检测到当前转发平面出现异常时,按照优先级由高到低的顺序,将转发规则由所述当前转发平面迁移至该当前转发平面的下一个优先级的目标转发平面;

当检测到异常的转发平面恢复正常后,将所述转发规则由所述目标转发平面迁移回所述当前转发平面。

本申请提供的智能网卡系统,该系统包括网卡模块、可编程集成电路模块和主处理器,其中,网卡模块和可编程集成电路模块构成智能网卡,主处理器是应用该智能网卡的网络设备内的处理器;网卡模块与可编程集成电路模块相连接,而且,网卡模块、可编程集成电路均与主处理器相连接;这样,主处理器和可编程集成电路模块内的处理器单元均可以作为智能网卡的控制平面;网卡模块、可编程集成电路和主处理器均可以作为智能网卡的转发平面。与传统的仅依靠主机cpu的方案相比,该智能网卡系统具有两个控制平面和三个转发平面,当一个控制平面或转发平面出现异常时,均可以启用其他的控制平面或转发平面;提高了智能网卡的可靠性;而且,可以根据实际需求选择网络能效比较高的转发平面,因此提高了智能网卡的网络能效比。

附图说明

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

图1示出了本申请实施例提供的一种智能网卡系统的原理框图;

图2示出了本申请实施例提供的一种控制平面切换方法的流程图;

图3示出了本申请实施例提供的一种转发平面切换方法流程图;

图4示出了本申请实施例提供的另一种转发平面切换方法流程图;

图5示出了本申请实施例提供的一种控制面切换装置的框图;

图6示出了本申请实施例一种转发平面切换装置的框图。

具体实施方式

在详细介绍本申请提供的实施例之前,先介绍下控制平面和转发平面:

控制平面指系统中传送指令、计算表项的部分,提供数据处理转发前所必须的各种网络信息和转发查询表项;

转发平面指系统中用来进行数据报文的封装、转发的部分。诸如数据报文的接收、解封装、封装、转发等都属于转发平面的范畴。

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

请参见图1,示出了本申请实施例提供的一种智能网卡系统的原理框图,该系统包括网卡模块1、可编程集成电路模块2和主处理器3;

其中,网卡模块1和可编程集成电路模块2构成了智能网卡,该智能网卡普遍应用于服务器等网络设备内。主处理器3为网络设备内的处理器。

在本申请的一个实施例中,网卡模块1可以采用网卡(networkinterfacecard,nic)芯片,nic芯片属于专用集成电路(applicationspecificintegratedcircuit,asic)芯片,是一种专为实现网卡功能为设计的专用集成电路。

可编程集成电路模块2可以采用现场可编程门阵列(fieldprogrammablegatearray,fpga)芯片,而且,其内嵌有处理器单元。

主处理器3为网络设备中的hostcpu,其中,该网络设备可以是服务器,且该服务器可以是一个服务器设备,或者由多个服务器设备构成的服务器集群。

网卡模块1和可编程集成电路模块2通过通信总线相连接,且可编程集成电路模块2上设置有网络接口,用于连接外部网络。

网卡模块1和可编程集成电路模块2均通过通信总线连接主处理器3,而且,可编程集成电路模块2与主处理器3之间建立有信息同步通道,用于进行控制信息同步。

例如,nic芯片和fpga芯片之间可以通过以太网总线连接;nic芯片和fpga芯片均通过pcie总线与服务器的hostcpu。

下面以nic芯片、fpga芯片和hostcpu为例说明该智能网卡的初始化流程:

初始化时,将hostcpu和fpga芯片内嵌的cpu均配置为智能网卡的控制平面;而且,用户可以根据自己需求配置其中任意一个控制平面为主控制平面,另一控制平面为备控制平面;例如,可以配置hostcpu为主控制平面,fpga内嵌的cpu为备控制平面;或者,配置fpga内嵌的cpu为主控制平面,hostcpu为备控制平面。

建立hostcpu和fpga内嵌的cpu之间的信息同步通道,用于同步控制信息。

将nic芯片、fpga和hostcpu均配置为转发平面,nic芯片为第一转发平面、fpga为第二转发平面、hostcpu为第三转发平面;

此外,nic芯片具有asic芯片的处理报文带宽大、时延低的优点,但缺点是处理报文复杂度低,资源有限;fpga与nic芯片相比,处理报文带宽略低、时延略高,但可以处理更为复杂的报文,资源也比nic充足;hostcpu与nic及fpga相比,处理报文带宽最低、时延最大,但优点是可以处理复杂的报文,资源最重复。

用户可以根据实际需求配置这三个转发平面的优先级,例如,若用户对时延要求比较高,则优先级由高到低依次可以为:第一转发平面、第二转发平面、第三转发平面。

初始化配置过程完成后,两个控制平面均能够监测自身及另一个控制平面是否存在异常,若任意一个控制平面存在异常,则可以启用不存在异常的控制平面继续完成控制流程;而且,主控制平面监控当前使用的转发平面是否存在异常,若当前使用的转发平面存在异常,则按转发平面的优先级顺序,将转发规则由当前转发平面迁移至当前转发平面的先一个优先级的转发平面,从而保证数据能够正常转发和处理。

本实施例提供的智能网卡系统,与传统的仅依靠主机cpu的方案相比,该智能网卡系统具有两个控制平面和三个转发平面,当任意一个控制平面或转发平面出现异常时,均可以启用其他的控制平面或转发平面;提高了智能网卡的可靠性;而且,可以根据实际需求选择网络能效比较高的转发平面,因此提高了智能网卡的网络能效比。

请参见图2,示出了本申请实施例一种控制平面切换方法的流程图,该方法应用于第一控制平面和第二控制平面中,本实施例中,两个控制平面均能监控自身及另一控制平面是否异常,当检测到任意一个控制平面存在异常时,将切换另一控制平面实现控制功能。

如图2所示,该方法可以包括以下步骤:

s110,检测当前主控制平面和当前备控制平面是否存在异常;若检测到当前备控制平面存在异常,则执行s120;若检测到当前主控制平面存在异常,则执行s140。

主控制平面和备控制平面在系统初始化时已经配置好,用户可以根据自己的实际需求配置主、备控制平面。当前主控制平面是指执行当前检测动作时的主控制平面,当前备控制平面是指执行当前检测动作时的备控制平面。

在本申请的一个实施例中,主控制平面是hostcpu,备控制平面是fpga的内嵌cpu,则hostcpu和fpga的内嵌cpu均可以监控自身及对方是否异常。

控制平面存在的异常情况包括cpu可能出现的软件故障和资源不足,例如,包括死机、进程异常、程序死锁、cpu或内存等资源不足等。

s120,控制当前备控制平面重新启动。

当检测到当前备控制平面存在异常时,控制该当前备控制平面重新启动。

若主控制平面检测到备控制平面存在异常,则通知备控制平面重新启动,以消除异常。

若备控制平面检测到自身存在异常,则自动重新启动以消除异常。

s130,若当前备控制平面异常消除,则由当前主控制平面将控制信息同步给当前备控制平面。

若所述当前备控制平面通过重新启动异常消除,则将当前主控制平面的控制信息通过信息同步通道同步给该当前备控制平面,以便该当前主控制平面出现异常时由当前备控制平面实现控制过程。

s140,控制当前主控制平面重新启动,并控制当前备控制平面变为新的主控制平面。

若检测到当前主控制平面存在异常,则控制当前备控制平面切换为新的主控制平面,以及,将当前主控制平面切换为新的备控制平面,以及,控制所述当前主控制平面重新启动。

在本申请的实施例中,控制当前主控制平面重新启动和控制当前备控制平面变为新的主控制平面这两个动作可以并行执行,也可以先后执行,例如,可以先控制重启,再切换主控制平面;或者,也可以先切换主控制平面,再控制重启。

在本申请的一个实施例中,当前主控制平面是hostcpu、当前备控制平面是fpga的内嵌cpu;

若hostcpu检测到自身存在异常,fpga的内嵌cpu变为主控制平面,同时,hostcpu重启以消除异常。

若fpga的内嵌cpu检测到hostcpu存在异常,则控制fpga的内嵌cpu变为主控制平面,并通知hostcpu重新启动以消除异常。

s150,若当前主控制平面消除异常,则由新的主控制平面将控制信息同步给所述当前控制平面。

仍以当前主控制平面是hostcpu、当前备控制平面是fpga的内嵌cpu为例进行说明,当hostcpu消除异常后,则将fpga的内嵌cpu内的控制信息同步给hostcpu。

本实施例提供的控制面切换方法,两个控制平面都能够监测自身及另一个控制平面的异常,若监测到主控制平面存在异常,则将备控制平面变为主控制平面,并控制存在异常的控制平面重启。若检测到备控制平面存在异常,则重启备控制平面并将主控制平面的控制信息同步给备控制平面,以便备控制平面能够随时进入主控状态。该方法通过两个控制平面实现冗余控制,提高了智能网卡的可靠性。

请参见图3,示出了本申请实施例提供的一种转发平面切换方法流程图,该方法应用于图1所示的主控制平面。主控制平面监测三个转发平面是否存在异常,并将转发规则迁移到不存在异常的转发平面。

本实施例中,以nic芯片为第一转发平面、fpga为第二转发平面、hostcpu为第三转发平面而且,nic芯片的优先级高于fpga,fpga的优先级高于hostcpu的优先级为例进行说明。

如图3所示,该方法可以包括以下步骤:

s210,当主控制平面检测到当前转发平面出现异常时,按照优先级由高到低的顺序,将转发规则由该当前转发平面迁移至该当前转发平面的下一个优先级的目标转发平面。

当前转发平面是指主控制平面执行检测转发平面是否存在异常步骤时,按照转发规则执行转发数据的转发平面。

s220,当检测到当前转发平面恢复正常后,将所述转发规则由目标转发平面迁移回该当前转发平面。

当主控制平面检测到所述当前转发平面恢复正常后,将转发规则由目标转发平面迁移回该当前转发平面。

请参见图4,示出了本申请实施例提供的一种转发平面切换方法的流程图,本实施例将详细介绍各个转发平面之间的切换控制过程;该方法可以应用于图1所示的主处理器或处理器单元内。

如图4所示,该方法可以包括以下步骤:

s310,若主控制平面检测到第一转发平面存在异常,则判断第一转发平面的异常类型;

若异常类型为软件故障,则执行s320;若异常类型为资源不足,则执行s340;

在本申请的一个实施例中,转发平面可能存在的软件故障可能包括死机、进程异常、程序死锁等;资源不足的情况可能包括内存、cpu资源不足的情况。

本实施例中的主控制平面可以是第一控制平面或第二控制平面。

s320,将转发规则由第一转发平面迁移至第二转发平面,并控制第一转发平面重新启动;

s330,当检测到第一转发平面故障消除后,将所述转发规则由第二转发平面迁移回第一转发平面。

s340,将转发规则由第一转发平面迁移至第二转发平面;

s350,当检测到第一转发平面的资源充足时,将所述转发规则由第二转发平面迁移回第一转发平面。

s360,若主控制平面检测到第二转发平面存在异常,则判断第二转发平面的异常类型;

若为软件故障,则执行s370;若为资源不足,则执行s380;

s370,将转发规则由第二转发平面迁移至第三转发平面,并通知上层应用进行处理;

s380,将转发规则由第二转发平面迁移至第三转发平面,并在检测到第二转发平面的资源变为充足时,将转发规则由第三转发平面迁移回第二转发平面。

s390,若主控制平面检测到第三转发平面出现软件故障,则通知上层应用进行处理。

本实施例提供的转发平面切换方法,主控制平面监测三个转发平面的异常情况,当监测到当前使用的转发平面存在异常时,将转发规则从当前转发平面迁移至该当前转发平面的下一个优先级的转发平面,从而保证网络转发正常进行,因此,提高了智能网卡系统的可靠性。

另一方面,本申请还提供了控制面切换装置实施例。

请参见图5,示出了本申请实施例提供的一种控制面切换装置的框图,本实施例应用于主处理器或可编程集成电路模块2的内嵌处理器单元中。

如图5所示,该装置可以包括:第一检测单元110、第一重启单元120、第一同步单元130、第二重启单元140、第一切换单元150、第二同步单元160;

第一检测单元110,用于检测主控制平面和备控制平面是否存在异常。

若检测到备控制平面存在异常,则执行s120;若检测到主控制平面存在异常,则执行s140。

第一重启单元120,用于当检测到备控制平面存在异常时,控制备控制平面重新启动。

第一同步单元130,用于当备控制平面异常消除时,由主控制平面将控制信息同步给备控制平面。

第二重启单元140,用于控制主控制平面重新启动。

第一切换单元150,用于将当前的备控制平面切换为新的主控制平面。

第二同步单元160,用于当存在异常的控制平面消除异常时,由不存在异常的控制平面将控制信息同步给异常消除的控制平面。

本实施例提供的控制面切换装置,两个控制平面都能够监测自身及另一个控制平面的异常,若监测到主控制平面存在异常,则将备控制平面变为主控制平面,并控制存在异常的控制平面重启。若检测到备控制平面存在异常,则重启备控制平面并将主控制平面的控制信息同步给备控制平面,以便备控制平面能够随时进入主控状态。该装置通过两个控制平面实现冗余控制,提高了智能网卡的可靠性。

请参见图6,示出了本申请实施例一种转发平面切换装置的框图,如图6所示,该装置应用于图1所示的主处理器或可编程集成电路模块2的内嵌处理器单元中。

如图6所示,该装置可以包括:

第二检测单元210,用于检测到第一转发平面存在异常时,检测第一转发平面的异常类型;

所述异常类型包括软件故障和资源不足。

第一迁移单元220,用于当第一转发平面存在软件故障时,将转发规则由第一转发平面迁移到第二转发平面;

第三重启单元230,用于控制第一转发平面重新启动。

第二迁移单元240,用于当检测到第一转发平面故障消除后,将转发规则由第二转发平面迁移回第一转发平面。

第三迁移单元250,用于当第一转发平面出现资源不足时,将转发规则由第一转发平面迁移到第二转发平面。

第四迁移单元260,用于当检测到第一转发平面的资源充足时,将转发规则由第二转发平面迁移回第一转发平面。

第三检测单元270,用于当检测到第二转发平面存在异常时,判断第二转发平面的异常类型。

第五迁移单元280,用于当第二转发平面存在软件故障时,将转发规则由第二转发平面迁移至第三转发平面,并通知上层应用进行处理。

第六迁移单元290,用于当第二转发平面出现资源不足时,将转发规则由第二转发平面迁移至第三转发平面。

第七迁移单元2100,用于当检测到第二转发平面的资源变为充足时,将转发规则由第三转发平面迁移回第二转发平面。

第三检测单元2110,用于当检测到第三转发平面出现软件故障时,通知上层应用进行处理。

本实施例提供的转发平面切换装置,主控制平面监测三个转发平面的异常情况,当监测到当前使用的转发平面存在异常时,将转发规则从当前转发平面迁移至该当前转发平面的下一个优先级的转发平面,从而保证网络转发正常进行,因此,提高了智能网卡系统的可靠性。

又一方面,本申请还提供了智能网卡,其中,智能网卡包括图1所示智能网卡系统中的网卡模块和可编程集成电路模块,相关内容请参见智能网卡系统中的相关描述。

另一方面,本申请还提供了网络设备(例如,服务器),该网络设备包括图1所示的智能网卡系统。

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

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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