CN113722000B - 一种智能网卡配置方法、装置、电子设备及可读存储介质 - Google Patents

一种智能网卡配置方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113722000B
CN113722000B CN202111291110.4A CN202111291110A CN113722000B CN 113722000 B CN113722000 B CN 113722000B CN 202111291110 A CN202111291110 A CN 202111291110A CN 113722000 B CN113722000 B CN 113722000B
Authority
CN
China
Prior art keywords
network card
intelligent network
virtual
entity
binding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111291110.4A
Other languages
English (en)
Other versions
CN113722000A (zh
Inventor
孙希发
雷亚帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111291110.4A priority Critical patent/CN113722000B/zh
Publication of CN113722000A publication Critical patent/CN113722000A/zh
Application granted granted Critical
Publication of CN113722000B publication Critical patent/CN113722000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种智能网卡配置方法、装置、电子设备及计算机可读存储介质,该方法包括:若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;将各个虚拟网口从驱动程序异步解绑;若确定异步解绑完成,则对智能网卡进行功能设置;对至少两个实体网口进行实体绑定,并在实体绑定完成后对虚拟网口进行虚拟绑定;该方法在功能设置完成后,将各个实体网口进行实体绑定,使得实体网口对外表现为一个网口,在实体网口完成后对虚拟网口进行虚拟绑定,建立虚拟网口与实体网口之间的对应关系,重新将虚拟网口绑定回驱动程序;通过上述方式可以对智能网卡进行自动化配置,避免手动配置造成的容易配置出错的问题。

Description

一种智能网卡配置方法、装置、电子设备及可读存储介质
技术领域
本申请涉及智能网卡技术领域,特别涉及一种智能网卡配置方法、智能网卡配置装置、电子设备及计算机可读存储介质。
背景技术
在云计算领域,虚拟交换(Virtual Switch)承担着overlay层(覆盖层)和underlay层(底层、基础架构层)进行网络协议的封装解封装(encap/decap)功能。在多租户(虚拟机或者容器)的主机上,也需要进行二三层的路由转发、Qos、限流、安全组等。虚拟交换当前通常使用Open vSwitch(OVS,开放虚拟交换标准)技术,OVS作为当前虚拟化网络的主流实现,允许主机内或跨主机的虚拟机互相通信。OVS的的默认数据路径(datapath)是基于内核模块实现,实现了OVS基于流的数据交换。OVS的数据包处理方式基于CPU,其需要多次切换内核上下文、内存拷贝以及系统调用,导致数据转发性能低下,影响系统性能,无法最大化利用网卡带宽。但基于智能网卡的OVS硬件卸载可有效规避以上问题,提升性能。然而,智能网卡在使用时需要人工进行配置,手动配置较为繁琐且极易出错。
因此,相关技术存在的智能网卡配置繁琐,容易出错的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种智能网卡配置方法、智能网卡配置装置、电子设备及计算机可读存储介质,可以对智能网卡进行自动化配置,避免手动配置造成的容易配置出错的问题。
为解决上述技术问题,本申请提供了一种智能网卡配置方法,包括:
若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;
将各个所述虚拟网口从驱动程序异步解绑;
若确定异步解绑完成,则对所述智能网卡进行功能设置;
对所述至少两个实体网口进行实体绑定,并在实体绑定完成后对所述虚拟网口进行虚拟绑定。
可选地,还包括:
将智能网卡配置的前序依赖条件设置为驱动加载完毕;
将智能网卡配置的后序依赖条件设置为实体绑定未开始;
相应的,所述检测到需要进行智能网卡配置,包括:
对所述智能网卡的状态进行检测,若满足所述前序依赖条件和所述后序依赖条件,则确定需要进行智能网卡配置。
可选地,所述为智能网卡的至少两个实体网口分别生成多个虚拟网口,包括:
利用驱动加载标志对驱动加载状态进行校验;
利用实体绑定标志对实体绑定状态进行校验;
若检测到存在所述驱动加载标志且不存在所述实体绑定标志,则分别为各个所述实体网口生成对应的多个所述虚拟网口。
可选地,所述将各个所述虚拟网口从驱动程序异步解绑,包括:
启动统计延迟时长,并利用异步接口对驱动程序进行针对所述虚拟网口的解绑操作;
相应的,所述确定异步解绑完成,包括:
若检测到所述延迟时长大于预设阈值,则确定异步解绑完成。
可选地,所述对所述智能网卡进行功能设置,包括:
将所述智能网卡的eswitch模式设置为switchdev状态;
启动所述智能网卡的TCOffload功能;
启动所述实体网口的多队列功能。
可选地,还包括:
基于所述智能网卡,生成多个虚拟机,并建立各个所述虚拟机与所述虚拟网口之间的一一对应关系。
可选地,还包括:
利用所述虚拟机对所述智能网卡进行功能验证。
本申请还提供了一种智能网卡配置装置,包括:
生成模块,用于若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;
解绑模块,用于将各个所述虚拟网口从驱动程序异步解绑;
功能设置模块,用于若确定异步解绑完成,则对所述智能网卡进行功能设置;
重新绑定模块,用于对所述至少两个实体网口进行实体绑定,并在实体绑定完成后对所述虚拟网口进行虚拟绑定。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的智能网卡配置方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的智能网卡配置方法。
本申请提供的智能网卡配置方法,若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;将各个虚拟网口从驱动程序异步解绑;若确定异步解绑完成,则对智能网卡进行功能设置;对至少两个实体网口进行实体绑定,并在实体绑定完成后对虚拟网口进行虚拟绑定。
可见,该方法可以自动化地配置智能网卡,在检测到需要进行智能网卡的配置时,首先为智能网卡的多个实体网口生成分别对应的虚拟网口。虚拟网口在生成时自动处于与驱动程序绑定的状态,为了能够对智能网卡进行功能设置,需要将其解绑。由于解绑涉及到驱动程序操作,系统接口为异步接口,因此解绑为异步解绑,且需要保证所有虚拟网口均被解绑,即异步解绑完成后,才能够对智能网卡进行功能设置。在功能设置完成后,将各个实体网口进行实体绑定,使得实体网口对外表现为一个网口,在实体网口完成后对虚拟网口进行虚拟绑定,建立虚拟网口与实体网口之间的对应关系,重新将虚拟网口绑定回驱动程序。利用上述方式,可以对智能网卡进行自动化配置,避免手动配置造成的容易配置出错的问题。
此外,本申请还提供了一种智能网卡配置装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种智能网卡配置方法流程图;
图2为本申请实施例提供的一种具体的智能网卡配置时序流程图;
图3为本申请实施例提供的另一种具体的智能网卡配置时序流程图;
图4为本申请实施例提供的一种智能网卡配置装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种智能网卡配置方法流程图。该方法包括:
S101:若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口。
为了使得智能网卡能够被使用,需要在使用前对其进行配置,而智能网卡的配置需要在合适的时机启动。因此在智能网卡初始化过程中,需要进行智能网卡配置的检测,在检测到智能网卡配置时,为其上的各个实体网口分别生成对应的虚拟网口。其中,实体网口可以被称为PF,Physical Function,虚拟网口可以被称为VF,Virtual Function。PF包含完整的PCIe(Peripheral Component Interconnect express)功能,其中包括SR-IOV的扩张功能。SR-IOV是指Single-Root IO Virtualization,是一种将PCIe共享给虚拟机的标准,其通过为虚拟机提供独立的内存空间、中断、DMA(Direct Memory Access,直接存储器访问)流来绕过VMM(virtual Machine monitor,虚拟机监视程序),进而实现数据访问,在虚拟网络领域内可以提供近乎于物理链路的高性能。VF包含轻量级的PCIe功能,每个VF具有独享的PCIe配置区域,能够和其他VF共享同一个物理资源。需要说明的是,本实施例并不限定各个实体网口对应的虚拟网口的数量,例如可以为16或32。
通过将VF直通给虚拟机,可以使虚拟机获得高速的网络性能,但是SR-IOV在云计算领域也有一些局限。例如SR-IOV的配置屏蔽了一些OVS的安全特性,SR-IOV配置相对复杂,SR-IOV缺少容错机制,即在标准配置中,SR-IOV只关联到一个物理网卡。
为了解决上述问题,通过将SR-IOV与传统的OVSdatapath结合,将原先在内核中实现的数据路径完全卸载到物理网卡硬件中,实现网络数据流的硬件卸载,可使OVS获得近乎硬件的高性能及低延时,同时可以利用OVS原有的安全特性及QoS(Quality of Service,服务质量)。datapath由网卡硬件实现,降低CPU负载,提高了VM的主机利用率,遵循OVS处理逻辑,硬件不能处理的流量,仍由传统的软件路径处理。该项技术统称为SR-IOVOVSHWOffload。
在一个稳定、弹性化部署的虚拟数据中心中,虚拟化管理程序将物理网卡做bond(即实体绑定),从而可以为控制平面数据服务以及虚拟机工作负载提供可靠的网络接入。这种架构设计保证了网络的容错及高可用机制,但目前绝大多数的SR-IOV方案缺少此类容错机制。但本申请中涉及的智能网卡基于原有的SR-IOV技术发展出了SR-IOVVF-LAG(linkaggregation)技术,保证了SR-IOVOVSHWOffload方案的容错及高可用。具体的,其基于单卡双口(至少)的智能网卡做bond,每个网口的产生若干的VF并直通到虚拟机,当某个网口发生链路故障时,VF会自动切换到另一个网口。例如:eth0网口上连的网络断开或故障时,eth0网口上的VF会自动切换到使用eth1网口,同时物理网卡的SR-IOVOVSHWOffload不受影响,VF连接的虚拟机正常通信。
尽管最新的智能网卡提供了SR-IOVVF-LAG功能,为OVSHWOffload功能提供的容错功能,但是相关的网卡驱动及上层软件配置极其复杂,且配置项之间有严格的先后顺序及依赖关系,手动配置较为繁琐且极易出错。
因此在本申请中,需要设置特殊的智能网卡配置触发条件,使得在合适的时机进行智能网卡配置。具体的,触发条件设置过程可以包括:
步骤11:将智能网卡配置的前序依赖条件设置为驱动加载完毕;
步骤12:将智能网卡配置的后序依赖条件设置为实体绑定未开始;
本申请中,硬件和驱动程序初始化需要以严格的顺序应用,在将虚拟网口以及实体网口进行绑定之前,必须执行早起的应将和驱动程序配置。利用linux系统的固有服务systemd(即system daemon,是linux下的一种init软件)的依赖,本申请中生成了一系列unit(即systemd unit)。请参考图2,图2为本申请实施例提供的一种具体的智能网卡配置时序流程图,其展示了一个覆盖了S101至S103步骤的unit执行的各个步骤的时序关系。其中第一条竖线表示after条件,第二条竖线表示before条件,对智能网卡的配置需要在两个条件划定的时间范围内执行。
其中,该systemd unit包括after和before两个依赖关系,其中after为前序依赖条件,即本unit在该条件满足后执行。该条件被设置为驱动加载完毕,用于确保在进行智能网卡配置前,智能网卡的实体网口对应的驱动程序都成功加载。before为后序依赖条件,即本unit在该条件被满足之前执行。该条件被设置为实体绑定未开始,即在网络子系统初始化之前,即智能网卡bond步骤执行之前完成智能网卡配置。
相应的,检测到需要进行智能网卡配置的过程包括如下步骤:
步骤13:对智能网卡的状态进行检测,若满足前序依赖条件和后序依赖条件,则确定需要进行智能网卡配置。
在本实施例中,可以对智能网卡的状态进行实时检测,判断上述条件是否同时满足,若同时满足,则确定需要进行智能网卡配置。本实施例并不限定检测的具体方式,可以参考相关技术。
进一步的,为了保证驱动程序确实加载完毕,在生成虚拟网口时,可以首先进行校验。具体的,为智能网卡的至少两个实体网口分别生成多个虚拟网口的过程可以包括:
步骤21:利用驱动加载标志对驱动加载状态进行校验。
步骤22:利用实体绑定标志对实体绑定状态进行校验。
步骤23:若检测到存在驱动加载标志且不存在实体绑定标志,则分别为各个实体网口生成对应的多个虚拟网口。
在驱动加载完毕后,系统中会生成对应的驱动加载标志,同样的,实体绑定完成后,同样会生成对应的实体绑定标志。因此在生成虚拟网口之前,可以先利用驱动加载标志对驱动加载状态进行校验,利用实体绑定标志对实体绑定状态进行校验。在检测到存在驱动加载标志且不存在实体绑定标志,则可以确定满足智能网卡配置的条件,此时可以分别为各个实体网口生成对应的多个虚拟网口。
S102:将各个虚拟网口从驱动程序异步解绑。
S103:若确定异步解绑完成,则对智能网卡进行功能设置。
在对智能网卡进行设置之前,需要将虚拟网口与驱动程序解绑,该步骤设计驱动程序操作,系统接口为异步接口。智能网卡的功能设置需要在保证异步解绑完成的条件下进行,因此,S102步骤可以包括:
步骤31:启动统计延迟时长,并利用异步接口对驱动程序进行针对虚拟网口的解绑操作。
相应的,确定异步解绑完成的过程可以包括:
步骤32:若检测到延迟时长大于预设阈值,则确定异步解绑完成。
为了保证解绑操作完成后在进行功能设置,本申请在开始进行解绑操作时,同时启动统计延迟时长。预设阈值的具体大小可以根据需要进行设置,预设阈值大于等于异步解绑操作所需的最大时长。通过检测延迟时长与预设阈值之间的关系,在延迟时长大于预设阈值,即可确定异步解绑完成。
智能网卡的功能设置包括多个步骤,具体的,对智能网卡进行功能设置的过程可以包括:
步骤41:将智能网卡的eswitch模式设置为switchdev状态。
步骤42:启动智能网卡的TCOffload功能。
步骤43:启动实体网口的多队列功能。
通过将智能网卡的eswitch模式设置为switchdev状态,可以启用智能网卡的OVS硬件卸载功能。由于OVSOffload依赖于内核的TC模块,因此需要启动智能网卡的TCOffload功能。TC即Traffic Control,流量控制。此外,还可以启动每个实体网口对应的多队列功能(该步骤可称为set NIC Channel),以便提高网卡性能。NIC即Network Interface Card,网卡。
S104:对至少两个实体网口进行实体绑定,并在实体绑定完成后对虚拟网口进行虚拟绑定。
为了将VF穿透(pass-through)至虚拟机,需要将VF与驱动程序重新绑定,而该步骤需要在网卡实体网口已经绑定之后执行。因此需要保证在实体绑定完成后再执行虚拟绑定。实体绑定(也被称为bond)用于建立至少两个实体网口之间的对应关系,其具体绑定方式不做限定。虚拟绑定步骤同样可以利用systemd unit完成,该unit在完成虚拟绑定的步骤以外,还可以执行其他步骤,例如将虚拟网口绑定至虚拟机,并进行相应的测试。
具体的,请参考图3,图3为本申请实施例提供的另一种具体的智能网卡配置时序流程图,该unit对应的after条件为网络系统初始化完毕,且实体绑定完毕。在检测到满足上述条件后,确定实体绑定完成。虚拟绑定(也被称为bind)用于建立虚拟网口与实体网口之间的对应关系,其具体方式不做限定。
在绑定完成后,还可以执行如下步骤:
步骤51:基于智能网卡,生成多个虚拟机,并建立各个虚拟机与虚拟网口之间的一一对应关系。
具体的,根据智能网卡的VF,条用libvirt及OVS接口,生成VFpassthrough及HWOffload虚拟机。
此外,还可以进一步执行如下步骤:
步骤52:利用虚拟机对智能网卡进行功能验证。
具体的,条用OVS指令,验证OVSHWOffload以及VF-LAG功能是否生效。
应用本申请实施例提供的智能网卡配置方法,可以自动化地配置智能网卡,在检测到需要进行智能网卡的配置时,首先为智能网卡的多个实体网口生成分别对应的虚拟网口。虚拟网口在生成时自动处于与驱动程序绑定的状态,为了能够对智能网卡进行功能设置,需要将其解绑。由于解绑涉及到驱动程序操作,系统接口为异步接口,因此解绑为异步解绑,且需要保证所有虚拟网口均被解绑,即异步解绑完成后,才能够对智能网卡进行功能设置。在功能设置完成后,将各个实体网口进行实体绑定,使得实体网口对外表现为一个网口,在实体网口完成后对虚拟网口进行虚拟绑定,建立虚拟网口与实体网口之间的对应关系,重新将虚拟网口绑定回驱动程序。利用上述方式,可以对智能网卡进行自动化配置,避免手动配置造成的容易配置出错的问题。
下面对本申请实施例提供的智能网卡配置装置进行介绍,下文描述的智能网卡配置装置与上文描述的智能网卡配置方法可相互对应参照。
请参考图4,图4为本申请实施例提供的一种智能网卡配置装置的结构示意图,包括:
生成模块110,用于若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;
解绑模块120,用于将各个所述虚拟网口从驱动程序异步解绑;
功能设置模块130,用于若确定异步解绑完成,则对智能网卡进行功能设置;
重新绑定模块140,用于对至少两个实体网口进行实体绑定,并在实体绑定完成后对虚拟网口进行虚拟绑定。
可选地,还包括:
第一条件设置模块,用于将智能网卡配置的前序依赖条件设置为驱动加载完毕;
第二条件设置模块,用于将智能网卡配置的后序依赖条件设置为实体绑定未开始;
相应的,生成模块110,包括:
依赖条件检测单元,用于对智能网卡的状态进行检测,若满足前序依赖条件和后序依赖条件,则确定需要进行智能网卡配置。
可选地,生成模块110,包括:
第一校验单元,用于利用驱动加载标志对驱动加载状态进行校验;
第二校验单元,用于利用实体绑定标志对实体绑定状态进行校验;
虚拟网口生成单元,用于若检测到存在驱动加载标志且不存在实体绑定标志,则分别为各个实体网口生成对应的多个虚拟网口。
可选地,解绑模块120,包括:
及时启动模块,用于启动统计延迟时长,并利用异步接口对驱动程序进行针对虚拟网口的解绑操作;
相应的,功能设置模块130,包括:
解绑完毕确定单元,用于若检测到延迟时长大于预设阈值,则确定异步解绑完成。
可选地,功能设置模块130,包括:
第一设置单元,用于将智能网卡的eswitch模式设置为switchdev状态;
第二设置单元,用于启动智能网卡的TCOffload功能;
第三设置单元,用于启动实体网口的多队列功能。
可选地,还包括:
虚拟机绑定模块,用于基于智能网卡,生成多个虚拟机,并建立各个虚拟机与虚拟网口之间的一一对应关系。
可选地,还包括:
功能验证模块,用于利用虚拟机对智能网卡进行功能验证。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的智能网卡配置方法可相互对应参照。
请参考图5,图5为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的智能网卡配置方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的智能网卡配置方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的智能网卡配置方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的智能网卡配置方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种智能网卡配置方法,其特征在于,包括:
若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;
将各个所述虚拟网口从驱动程序异步解绑;
若确定异步解绑完成,则对所述智能网卡进行功能设置;
对所述至少两个实体网口进行实体绑定,并在实体绑定完成后对所述虚拟网口进行虚拟绑定;
基于所述智能网卡,生成多个虚拟机,并建立各个所述虚拟机与所述虚拟网口之间的一一对应关系。
2.根据权利要求1所述的智能网卡配置方法,其特征在于,还包括:
将智能网卡配置的前序依赖条件设置为驱动加载完毕;
将智能网卡配置的后序依赖条件设置为实体绑定未开始;
相应的,所述检测到需要进行智能网卡配置,包括:
对所述智能网卡的状态进行检测,若满足所述前序依赖条件和所述后序依赖条件,则确定需要进行智能网卡配置。
3.根据权利要求2所述的智能网卡配置方法,其特征在于,所述为智能网卡的至少两个实体网口分别生成多个虚拟网口,包括:
利用驱动加载标志对驱动加载状态进行校验;
利用实体绑定标志对实体绑定状态进行校验;
若检测到存在所述驱动加载标志且不存在所述实体绑定标志,则分别为各个所述实体网口生成对应的多个所述虚拟网口。
4.根据权利要求1所述的智能网卡配置方法,其特征在于,所述将各个所述虚拟网口从驱动程序异步解绑,包括:
启动统计延迟时长,并利用异步接口对驱动程序进行针对所述虚拟网口的解绑操作;
相应的,所述确定异步解绑完成,包括:
若检测到所述延迟时长大于预设阈值,则确定异步解绑完成。
5.根据权利要求1所述的智能网卡配置方法,其特征在于,所述对所述智能网卡进行功能设置,包括:
将所述智能网卡的eswitch模式设置为switchdev状态;
启动所述智能网卡的TCOffload功能;
启动所述实体网口的多队列功能。
6.根据权利要求1所述的智能网卡配置方法,其特征在于,还包括:
利用所述虚拟机对所述智能网卡进行功能验证。
7.一种智能网卡配置装置,其特征在于,包括:
生成模块,用于若检测到需要进行智能网卡配置,则为智能网卡的至少两个实体网口分别生成多个虚拟网口;
解绑模块,用于将各个所述虚拟网口从驱动程序异步解绑;
功能设置模块,用于若确定异步解绑完成,则对所述智能网卡进行功能设置;
重新绑定模块,用于对所述至少两个实体网口进行实体绑定,并在实体绑定完成后对所述虚拟网口进行虚拟绑定;
虚拟机绑定模块,用于基于智能网卡,生成多个虚拟机,并建立各个虚拟机与虚拟网口之间的一一对应关系。
8.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的智能网卡配置方法。
9.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的智能网卡配置方法。
CN202111291110.4A 2021-11-03 2021-11-03 一种智能网卡配置方法、装置、电子设备及可读存储介质 Active CN113722000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111291110.4A CN113722000B (zh) 2021-11-03 2021-11-03 一种智能网卡配置方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111291110.4A CN113722000B (zh) 2021-11-03 2021-11-03 一种智能网卡配置方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113722000A CN113722000A (zh) 2021-11-30
CN113722000B true CN113722000B (zh) 2022-02-18

Family

ID=78686548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111291110.4A Active CN113722000B (zh) 2021-11-03 2021-11-03 一种智能网卡配置方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113722000B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546498A (zh) * 2021-12-31 2022-05-27 广州芯德通信科技股份有限公司 一种基于光端机启动异常和处理方法、系统及平台
CN117014235B (zh) * 2023-10-07 2024-01-09 之江实验室 一种基于fpga灵活后端的智能网卡调度方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479101A (zh) * 2010-11-24 2012-05-30 英业达股份有限公司 网络接口的绑定方法
CN110198243A (zh) * 2019-06-11 2019-09-03 深信服科技股份有限公司 一种虚拟机的网络接入方法及相关设备
CN111880901A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种网络配置方法、装置、设备及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479101A (zh) * 2010-11-24 2012-05-30 英业达股份有限公司 网络接口的绑定方法
CN110198243A (zh) * 2019-06-11 2019-09-03 深信服科技股份有限公司 一种虚拟机的网络接入方法及相关设备
CN111880901A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种网络配置方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN113722000A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US10778521B2 (en) Reconfiguring a server including a reconfigurable adapter device
US10691803B2 (en) Secure execution environment on a server
CN109417496B (zh) 虚拟网络环境中的自动服务功能验证
US11593138B2 (en) Server offload card with SoC and FPGA
CN113722000B (zh) 一种智能网卡配置方法、装置、电子设备及可读存储介质
US10541868B2 (en) System and method for automatically updating bios setup options
CN110520847B (zh) 控制和状态信号的虚拟化
US11048569B1 (en) Adaptive timeout mechanism
US20180109471A1 (en) Generalized packet processing offload in a datacenter
EP3242440B1 (en) Fault tolerant method, apparatus and system for virtual machine
US10942753B2 (en) Data loading system
US10810036B1 (en) Traffic management on an interconnect
CN106557444B (zh) 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置
WO2022066270A1 (en) Distributed storage services supported by a nic
US10360092B1 (en) Hybrid hardware and software reporting management
CN111143034A (zh) 一种控制网络数据转发平面的方法、装置及系统
US11003618B1 (en) Out-of-band interconnect control and isolation
CN110990116A (zh) 在智能网卡和虚拟机之间传输数据的方法、装置和系统
US20120066676A1 (en) Disabling circuitry from initiating modification, at least in part, of state-associated information
US11979769B2 (en) Virtualization of transceivers for multi-tenant programmable network-based devices
JP7089840B2 (ja) デバイスプロキシ装置及びそれを含む計算機システム
US11675947B2 (en) Multidimensional FPGA virtualization
CN112968867A (zh) 访问控制方法、系统、物理主机及通信设备
CN109976876B (zh) 加速器管理方法和装置
CN109656676B (zh) 多虚拟机共享fpga的控制方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant