CN115982081A - 一种与PCIe设备通信的方法、装置及*** - Google Patents

一种与PCIe设备通信的方法、装置及*** Download PDF

Info

Publication number
CN115982081A
CN115982081A CN202111616809.3A CN202111616809A CN115982081A CN 115982081 A CN115982081 A CN 115982081A CN 202111616809 A CN202111616809 A CN 202111616809A CN 115982081 A CN115982081 A CN 115982081A
Authority
CN
China
Prior art keywords
network card
computing device
virtual network
pcie
communication channel
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.)
Pending
Application number
CN202111616809.3A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2022/099919 priority Critical patent/WO2023060928A1/zh
Publication of CN115982081A publication Critical patent/CN115982081A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供一种与PCIe设备通信的方法、装置及***,涉及计算机技术领域,该方法包括:PCIe设备生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上,进而该PCIe设备通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信,该第二虚拟网卡为第一计算设备生成的与第一虚拟网卡对应的虚拟网卡,第一计算设备通过物理网卡与第二计算设备通信。该方法能够在节省端口资源的基础上,更加便捷地实现与PCIe设备通信。

Description

一种与PCIe设备通信的方法、装置及***
本申请要求于2021年10月14日提交国家知识产权局、申请号为202111195590.4、申请名称为“一种运维管理通道提供方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种与PCIe设备通信的方法、装置及***。
背景技术
随着技术的发展,***部件互联总线(peripheral component interconnectexpress,PCIe)卡(是一种PCIe设备)越来越智能化,有些PCIe卡具备复杂的功能逻辑,对于此类智能的PCIe卡,PCIe卡也具有提供例如业务配置、软件升级、告警上报等运维管理功能。
通常,PCIe卡内部运行有运维管理模块(也可以称为卡管理模块),该运维管理模块上产生运维数据(例如告警数据),外部设备(例如管理服务器)可以与PCIe卡通信,访问PCIe卡的运维管理模块以获取运维数据,实现对PCIe卡的运维管理。
一种对PCIe进行运维管理的方法是:PCIe卡通过该PCIe卡上的物理网口与管理服务器的通信,该方法中,用于传输PCIe卡的运维管理信息的物理网口需要与管理平面中的交换机的端口连接,以通过管理平面将运维管理信息传输至管理服务器,这样,会占用管理平面中的交换机的端口资源,尤其是在大规模组网的场景(例如多个主机、多个PCIe卡组网的场景)中,需要为每一个PCIe卡分配一个交换机端口,如此,会消耗较多的交换机的端口资源。
发明内容
本申请实施例提供一种与PCIe设备通信的方法、装置及***,能够在节省端口资源的基础上,更加便捷地实现与PCIe设备通信。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种与PCIe设备通信的方法,该方法包括:PCIe设备生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上;PCIe设备通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信,其中,第二虚拟网卡为第一计算设备生成的与第一虚拟网卡对应的虚拟网卡,第一计算设备通过物理网卡与第二计算设备通信。
本申请实施例提供的与PCIe设备通信的方法中,为了实现PCIe设备与第二计算设备之间通信,基于Virtio技术在PCIe设备上生成第一虚拟网卡,进而通过该第一虚拟网卡与第一计算设备上的第二虚拟网卡、第一计算设备上的物理网卡与第二计算设备通信。与现有的基于物理网口实现PCIe设备与第二计算设备通信的方案相比,本申请实施例提供的与PCIe设备通信的方法无需专门在PCIe设备上增加物理网口,如此,能够降低PCIe设备的运维管理成本,相应地,在不增加物理网口的情况下,也能够节省交换机(交换机用于转发PCIe设备与第二计算设备之间的信息)的端口资源。与现有的在第一计算设备和PCIe设备之间封装专用通道的方案相比,本申请实施例提供的与PCIe设备通信的方法无需在第一计算设备上部署与PCIe设备对应的定制化软件,如此,可以更加便捷地实现与PCIe设备通信。综上,本申请实施例提供的与PCIe设备通信的方法能够在节省端口资源的基础上,更加便捷地实现与PCIe设备通信。
一种可能的实现方式中,本申请实施例提供的与PCIe设备通信的方法还包括:PCIe设备向第一计算设备发送指示信息,该指示信息用于指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡。
可选地,上述指示信息包括指示PCIe设备内生成的虚拟网络设备为虚拟网卡的信息,例如,该指示信息可以是PCIe协议中规范的PCIe设备对外呈现的设备类型信息,包括如Device ID(设备标识)、Vendor ID(供应商标识)、Class Code(类别符号)、Subsystem ID(子***标识)、Subsystem Vendor ID(子***供应商标识)等。
本申请实施例中,PCIe设备通过运行Virtio的后端驱动,可以在该PCIe设备中配置虚拟的末端节点(EP),以通过末端节点向第一计算设备发送上述指示信息,相应地,第一计算设备通过该第一计算设备的RC接收该指示信息。
一种可能的实现方式中,上述PCIe设备生成第一虚拟网卡具体包括:PCIe设备调用PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成第一虚拟网卡。
在PCIe设备的运维管理场景中,PCIe设备内部的运维管理模块可以通过第一虚拟网卡传输PCIe设备的运维管理信息,应理解,运维管理模块并不感知该网卡是虚拟网卡还是物理网卡,即对于运维管理模块而言,该第一虚拟网卡与物理网卡并无区别。
一种可能的实现方式中,上述PCIe设备通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与目标设备通信具体包括:PCIe设备建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道;然后PCIe设备通过第一通信通道、第二通信通道与第二计算设备通信,第二通信通道是该物理网卡与第二计算设备之间的通信通道,第一通信通道与第二通信通道通过网络转发设备联通。
本申请实施例中,PCIe设备可以进行相关配置以建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道,例如,PCIe设备基于桥接或路由等转发技术建立第一虚拟网卡与第二虚拟网卡之间的通信通道,具体的,PCIe设备将该第一虚拟网卡的IP地址设置为与第二虚拟网卡同网段的IP地址。又例如,PCIe设备对待传输数据的目的地址、目的端口进行配置,使得待传输数据沿第一通信通道传输,即相当于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道。
可选地,可以配置为第一虚拟网卡和第二虚拟网卡直接通信,或者通过中间的交换功能的逻辑单元通信,本申请实施例不做限定。
一种可能的实现方式中,上述的网络转发设备可以是第一计算设备上的软件形态的网桥设备或路由设备,或者其他具有网络联通作用的设备,本申请实施例不做限定。
例如,上述第一计算设备上的网桥设备可以是第一计算设备上自带的软件,网桥设备可以联通属于不同网络的通信通道,例如上述第一通信通道是属于第一计算设备与PCIe设备之间的通信网络的通信通道,上述第二通信通道是属于第一计算设备与第二计算设备之间的通信通络的通信通道,通过网桥设备可以联通第一通信通道和第二通信通道。
可以理解的是,在对PCIe设备进行运维管理的场景中,第二虚拟网卡是基于PCIe设备的管理网络,在第一计算设备上创建的虚拟网卡,如此,可以基于PCIe设备的管理网络使用该第二虚拟网卡传输信息,即第二虚拟网卡是属于PCIe设备的管理网络的网卡,不属于第一计算设备的管理网络的网卡。本申请实施例中,第一计算设备可以通过对第一计算设备的网桥设备进行配置,从而打通第二虚拟网卡与第一计算设备的管理网络,即以网桥设备作为桥梁,建立第二虚拟网卡与网桥设备的通信连接,并且建立网桥设备与第一计算设备的物理网卡(该物理网卡是用于第一计算设备与第二计算设备通信的网卡)之间的通信连接,从而使得上述第一通信通道和第二通信通道联通。
一种可能的实现方式中,PCIe设备包括数据处理单元DPU,DPU具备复杂的业务逻辑,例如处理功能、存储功能等,示例性的,在DPU上可以安装存储***的软件。
一种可能的实现方式中,PCIe设备与第二计算设备通信以传输PCIe设备的运维管理信息。
本申请实施例提供的与PCIe设备通信的方法可以应用于PCIe设备(例如DPU)的运维管理场景,实现对PCIe设备的运维管理。
在PCIe设备的运维管理场景中,上述第一计算设备可以为挂载该PCIe设备的主机,第二计算设备可以为管理服务器,通过本申请实施例可以建立PCIe设备与管理服务器之间的通信通道(包括第一通信通道、第二通信通道),基于该通信通道二者可以交互,传输PCIe设备的运维管理信息,以实现例如业务配置、软件升级、告警上报、证书管理、日志导出等运维管理功能。
以PCIe设备进行告警上报为例,PCIe设备的运维管理信息可以包括PCIe设备生成的告警信息和/或管理服务器发送的响应消息。PCIe设备与管理服务器通信以传输运维管理信息的过程具体包括:PCIe设备通过第一虚拟网卡向第一计算设备上报告警信息,相应的,第一计算设备通过第二虚拟网卡从PCIe设备的第一虚拟网卡接收告警信息;然后,第一计算设备通过该第一计算设备上的网桥设备、该第一计算设备上的物理网卡将告警信息上报至管理服务器,相应地,管理服务器通过物理网卡从第一计算设备接收告警信息;后续的,管理服务器分析PCIe设备的告警信息,生成该报警信息的响应消息,该响应消息中包括对告警信息进行分析的分析结果;并将该响应消息发送至第一计算设备,该第一计算设备通过物理网卡从管理服务器接收响应消息,然后第一计算设备通告该第一计算设备的网桥设备、第二虚拟网卡将该响应消息转发至PCIe设备,相应的,PCIe设备通过PCIe设备上的第一虚拟网卡接收该响应消息。
第二方面,本申请实施例提供一种PCIe设备,包括:生成模块和通信模块。其中,生成模块用于生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上;通信模块用于通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信,其中,第二虚拟网卡为第一计算设备生成的与第一虚拟网卡对应的虚拟网卡,第一计算设备通过物理网卡与第二计算设备通信。
一种可能的实现方式中,上述通信模块用于向第一计算设备发送指示信息,该指示信息用于指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡。上述生成模块用于调用PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成第一虚拟网卡。
一种可能的实现方式中,本申请实施例提供的PCIe设备还包括通道建立模块;该通道建立模块用于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道;上述通信模块用于PCIe设备通过第一通信通道、第二通信通道与第二计算设备通信,第二通信通道是物理网卡与第二计算设备之间的通信通道,第一通信通道与第二通信通道通过网络转发设备联通。
一种可能的实现方式中,本申请实施例提供的PCIe设备包括数据处理单元DPU。
一种可能的实现方式中,上述PCIe设备与第二计算设备通信以传输PCIe设备的运维管理信息。
第三方面,本申请实施例提供一种PCIe设备,包括存储器和与存储器连接的至少一个处理器,存储器用于存储指令,指令被至少一个处理器读取后,执行上述第一方面及其可能的实现方式中任意之一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述第一方面及其可能的实现方式中任意之一所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包含指令,当计算机程序产品在计算机上运行时,执行第一方面及其可能的实现方式中任意之一所述的方法。
第六方面,本申请实施例提供一种芯片,包括存储器和处理器。存储器用于存储计算机指令。处理器用于从存储器中调用并运行该计算机指令,以执行第一方面及其可能的实现方式中任意之一所述的方法。
第七方面,本申请实施例提供一种通信***,包括PCIe设备、第一计算设备以及第二计算设备。其中,PCIe设备用于生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上;第一计算设备用于生成第二虚拟网卡,该第二虚拟网卡与第一虚拟网卡对应;PCIe设备还用于通过第一虚拟网卡、第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信,其中,第一计算设备通过物理网卡与第二计算设备通信。
一种可能的实现方式中,PCIe设备还用于向第一计算设备发送指示信息,该指示信息用于指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡。
一种可能的实现方式中,PCIe设备用于调用PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成第一虚拟网卡。
一种可能的实现方式中,第一计算设备用于调用第一计算设备内用于生成虚拟网卡的Virtio的前端驱动程序,生成第二虚拟网卡。
应理解,Virtio的前端驱动程序和后端驱动程序是成对存在,Virtio的前端驱动程序运行于第一计算设备中,Virtio的后端驱动程序运行于PCIe设备中,二者配合生成第二虚拟网卡,具体的,PCIe设备运行后端驱动程序,可以促使PCIe设备向第一计算设备发送指示信息,从而第一计算设备运行后端驱动程序,生成第二虚拟网卡。
一种可能的实现方式中,PCIe设备用于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道;第一计算设备用于建立物理网卡与第二计算设备之间的第二通信通道;PCIe设备用于通过第一通信通道、第二通信通道与第二计算设备通信,第一通信通道与第二通信通道通过网络转发设备联通。
一种可能的实现方式中,PCIe设备包括数据处理单元DPU。
应当理解的是,本申请实施例的第二方面至第七方面的技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种现有的PCIe设备的运维管理过程的框架示意图;
图2为本申请实施例提供的另一种现有的PCIe设备的运维管理过程的框架示意图;
图3为本申请实施例提供的一种与PCIe设备通信的方法的应用场景示意图;
图4为本申请实施例提供的一种PCIe设备的软件和硬件的架构示意图;
图5为本申请实施例提供的一种主机的软件和硬件的架构示意图;
图6为本申请实施例提供的一种与PCIe设备通信的方法示意图之一;
图7为本申请实施例提供的一种与PCIe设备通信的方法示意图之二;
图8为本申请实施例提供的一种与PCIe设备通信的方法示意图之三;
图9为本申请实施例提供的一种与PCIe设备通信的方法示意图之四;
图10为本申请实施例提供的一种PCIe设备的运维管理过程的框架示意图;
图11为本申请实施例提供的一种PCIe设备的结构示意图之一;
图12为本申请实施例提供的一种PCIe设备的结构示意图之二;
图13为本申请实施例提供的一种通信***的架构示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一虚拟网卡和第二虚拟网卡等是用于区别不同的虚拟网卡,而不是用于描述虚拟网卡的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个主机是指两个或两个以上的多个主机。
首先对本申请实施例提供的一种与PCIe设备通信的方法、装置及***中涉及的一些概念做解释说明。
PCIe:***部件互联总线(peripheral component interconnect express,PCIe),是一种高速串行计算机扩展总线标准,也可以认为PCIe是一种接口,使用PCIe接口可以实现高速串行点对点双通道高带宽传输。应理解,具有这种接口的设备可以称为PCIe设备,常见的PCIe设备是PCIe卡,例如显卡、声卡、网卡、扩展卡等。
通常,主机(例如服务器)上具有PCIe接口,主机上的PCIe接口用于***PCIe设备,以在主机上实现PCIe设备的功能,例如,将网卡(全称为网络接口卡)***服务器,能够实现服务器与以太网连接。
在传统技术中,显卡、声卡、网卡等是基础的PCIe卡,其功能单一,随着技术的发展,出现了很多具有更多功能的PCIe卡(可以称为智能PCIe卡),例如数据处理单元(dataprocessing unit,DPU)卡,DPU卡具备复杂的业务逻辑,例如处理功能、存储功能等,示例性的,在DPU卡上可以安装存储***的软件。由于PCIe卡的功能越来越多,因此PCIe卡需要支持业务配置、软件升级、告警上报、证书管理、日志导出等运维管理功能。应理解,PCIe卡内部运行有一个运维管理服务器(或者称为运维管理模块或卡管理模块,),为了便于描述,以下实施例中将PCIe卡内的运维管理服务器均称为卡管理模块。卡管理模块上可以维护(或生成)运维数据,例如告警信息、日志等。
对PCIe卡进行运维管理的场景中,涉及外部的管理服务器与PCIe卡进行通信,具体的,外部的管理服务器需要访问PCIe卡内的卡管理模块,实现对PCIe的运维管理,例如卡管理模块向管理服务器上报运维数据(例如告警信息),管理服务器对运维数据进行分析之后向卡管理模块发送响应信息(该响应消息中可以包括对告警信息的分析结果);或者,管理服务器向卡管理模块发送配置信息(例如用于软件升级的配置信息,该配置信息中可以包括软件包),卡管理模块根据配置信息执行相应的过程(例如执行软件升级),并在执行完相应的过程之后向管理服务器发送通知信息(或称为反馈信息)。
Virtio:是一个通用的I/O设备虚拟化框架,可以简单理解为:Virtio是一套通用I/O设备虚拟化的程序,具体的,虚拟机管理程序(hypervisor,又称为虚拟机监视器)通过Virtio可以模拟出一系列的虚拟化I/O设备,例如Virtio-SCSI、Virtio-NET等,Virtio-SCSI是一种虚拟化的SCSI(SCSI是一种专门为小型计算机***设计的存储单元接口)控制器设备,实际上,Virtio-SCSI是创建磁盘(磁盘是一种I/O设备)的虚拟化程序,通过Virtio-SCSI可以创建虚拟化磁盘;Virtio-NET是一种虚拟化网络设备,同理,Virtio-NET是创建网络设备的虚拟化程序,通过Virtio-NET可以创建虚拟化网络设备(例如虚拟网卡,即vNIC)。
需要说明的是,本申请实施例主要涉及基于Virtio-NET在PCIe卡内生成虚拟网卡以及基于Virtio-NET在该PCIe卡所在的主机内生成虚拟网卡,从而建立PCIe卡内的卡管理模块与主机之间的运维通道,以使得PCIe卡内的卡管理模块可以与主机进行通信,进而卡管理模块可以基于该卡管理模块和主机之间的运维通道以及主机内的网桥(bridge)与外部的管理服务器通信。
可以理解的是,Virtio包括前端驱动(front-end driver)和后端驱动back-enddriver,前端驱动与后端驱动配合可以生成虚拟化I/O设备(如vNIC),具体过程将在下述实施例中描述。
网桥(bridge):是一个网络转发设备,用于两个或多个网络之间的互连,以转发数据。网桥设备可以是硬件形态的设备,也可以是软件形态的设备,在本申请实施例中,网桥设备可以是软件形态,简称网桥(bridge),bridge是Linux中用于进行二层协议交换的设备,bridge与交换机的功能类似,bridge与路由器的区别在于bridge工作于数据链路层,bridge根据接收的报文的媒体接入控制(media access control,MAC)地址对报文进行广播、转发、丢弃等处理。
需要说明的是,在本申请实施例中,网桥可以用于连接主机自身的运维管理网络与PCIe卡的运维管理网络。
示例性的,以PCIe设备为PCIe卡为例,下面结合图1和图2介绍现有的对PCIe卡进行运维管理的方法。
参考图1所示的运维管理过程的框架示意图,PCIe卡挂载在主机上,主机上可以运行不同的业务应用(例如业务应用1和业务应用2)以及业务应用对应的业务驱动,主机上还包括该主机的管理模块,PCIe卡包括业务模块和卡管理模块。
其中,主机运行业务驱动程序可以使得业务应用1和/或业务应用2通过主机上的根联合(root complex,RC)节点→PCIe卡上的末端节点(end point,EP)与PCIe卡的业务模块通信;主机上的业务应用1和/或业务应用2通过物理网卡(图1中的NIC 1)与业务平面交互,应理解,业务平面可以是由交换机组网的网络;主机上的管理模块通过物理网卡(图1中的NIC 2)与管理平面通信以传输主机的运维管理信息,进而管理平面转发该运维管理信息至管理服务器通信(这个过程可以理解为主机上的管理模块通过物理网卡与管理服务器通信),该管理服务器用于对设备(例如对主机和PCIe卡)进行运维管理,管理平面可以是由交换机组网的网络;PCIe卡的业务模块通过物理网口(图2中的A1)与业务平面交互,PCIe卡的卡管理模块通过物理网口(图2中的A2)与管理平面通信以传输PCIe卡的运维管理信息,进而管理平面转发该运维管理信息至管理服务器通信(这个过程可以理解为PCIe卡的管理模块通过物理网口与管理服务器通信)。
结合图1,可知,上述对PCIe卡进行运维管理的方法的核心是:通过物理网口实现PCIe卡与管理服务器的通信。该方法中,一方面,需要对PCIe卡增加一个物理网口,使得成本增加;另一方面,用于传输PCIe卡的运维管理信息的物理网口需要与管理平面中的交换机的端口连接,如此,会占用管理平面中的交换机的端口资源,尤其是在大规模组网的场景(例如多个主机、多个PCIe组网的场景)中,需要为每一个PCIe卡分配一个交换机端口,需要消耗较多的交换机的端口资源,组网成本较高。
参考图2所示的运维管理过程的框架示意图,与图1中的运维管理方法不同的,图2中,PCIe卡的卡管理模块与管理服务器之间通信不再通过物理网口实现,具体的,针对卡管理模块,在主机上安装一个对应的管理模块代理,该管理模块代理是一种定制化软件;然后,基于PCIe卡的业务功能通道,封装管理功能通道(是一个专用通道),例如图2中在主机侧和PCIe卡侧运行管理通道封装程序生成一个管理功能通道;进而基于该管理功能通道实现PCIe卡的卡管理模块与管理服务器之间的通信,图2中的虚线表示PCIe卡的卡管理模块与管理服务器之前的管理信息传输通道。
结合图2,可知,上述对PCIe卡进行运维管理的方法的核心是:采用软件实现的方法,在主机上安装与卡管理模块对应的管理模块代理,并基于业务功能通道封装一个管理模块代理与卡管理模块之间的管理功能通道。该方法中,一方面,由于管理功能通道是基于业务功能通道封装而成的,也就是说,管理功能通道需要基于业务驱动封装,使得业务功能通道与管理功能通道相互影响,即相互耦合;另一方面,主机上安装的管理模块代理是与卡管理模块对应的定制化软件,该管理模块代理安装复杂,并且需要随着PCIe卡的卡管理模块的变化而变化,即随着卡管理模块演进,使得PCIe卡的运维管理比较复杂。
上述对PCIe卡进行运维管理的场景仅是PCIe卡与其他设备(除该PCIe卡挂载的主机之外的设备)通信的一种应用场景,在PCIe卡与其他设备通信的更多场景中也存在上述类似的问题。因此,针对现有技术中存在的问题,本申请实施例提供一种与PCIe设备通信的方法、装置及***,基于Virtio技术生成虚拟网卡,并通过第一计算设备(例如主机)实现PCIe设备(例如PCIe卡,该PCIe设备挂载在第一计算设备上)与第二计算设备的通信。具体的,PCIe设备生成第一虚拟网卡,然后挂载该PCIe设备的第一计算设备根据第一计算设备发送的指示信息生成与第一虚拟网卡对应的第二虚拟网卡,进而PCIe设备通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信。
当本申请实施例提供的与PCIe设备通信的方法应用在PCIe设备的运维管理场景时,与图1所述的现有技术相比,本申请中,无需专门在PCIe设备上增加物理网口,如此,能够降低PCIe设备的运维管理成本,相应地,在无需增加物理网口的情况下,也能够节省交换机的端口资源。与图2所示的现有技术相比,本申请实施例提供的与PCIe设备通信的方法无需在主机(相当于第一计算设备)上部署与PCIe设备的运维管理模块(例如上述的卡管理模块)与对应的定制化软件,即管理模块代理,如此,可以更加便捷地实现PCIe设备的运维管理。
综上,本申请实施例提供的与PCIe设备通信的方法能够在节省端口资源的基础上,更加便捷地实现与PCIe设备通信。
以本申请实施例提供的与PCIe设备通信的方法用于PCIe设备的运维管理为例,该方法可以应用在图3中的(a)所示的单主机组网的场景,也可以应用在图3中的(b)所示的多主机组网的场景,PCIe设备示意为图3中的PCIe卡,第一计算设备示意为图3中的一个或多个主机,第二计算设备示意为图3中的管理服务器。在多主机组网的场景中,对每一个主机上的PCIe卡进行运维管理的方法相同。
相比于普通的PCIe设备,本申请实施例中的PCIe设备为智能的PCIe设备,该PCIe设备可以包括处理器、网络接口(例如EP)、存储器等硬件结构。在图4中,PCIe设备的处理器(例如ARM核)运行相应的软件程序代码可以形成具有不同功能的软件功能模块,例如,图4中的业务模块(可以实现不同的业务功能逻辑)和运维管理模块。可以理解的是,PCIe设备具有操作***(例如Linux***),操作***包括内核空间(kernel space)和用户空间(userspace),内核空间是操作***的内核的运行空间,用户空间是用户程序的运行空间。本申请实施例中,在用户空间中运行程序形成业务模块和运维管理模块,在内核空间中运行virtio(具体为virtio的驱动程序)生成虚拟网络设备(virtio-NET),例如虚拟网卡(vNIC)。应理解,通过virtio技术可以使得PCIe设备对外呈现虚拟的末端节点(即EP)。
本申请实施例中的第一计算设备可以为服务器等,参考图5,第一计算设备可以包括处理器、网络接口(例如RC)、存储器等硬件结构。在图5中,第一计算设备的处理器运行相应的软件程序代码可以形成具有不同功能的软件功能模块,例如,图5中的业务应用,以及管理模块(图5中未示意)。可以理解的是,在第一计算设备的操作***的用户空间中运行程序形成业务应用、管理模块,在内核空间中运行业务驱动以及virtio(具体为virtio的驱动程序)生成虚拟网络设备(virtio-NET),例如虚拟网卡。需要说明的是,第一计算设备通常自带virtio的驱动程序,在内核空间中还运行有网络转发软件,例如网桥(bridge),网桥通常也是第一计算设备自带的软件。
结合上述内容,在以下实施例中,以PCIe设备的运维管理场景为例,对本申请实施例提供的与PCIe设备通信的方法进行详细描述,如图6所示,本申请实施例提供的与PCIe设备通信的方法可以包括步骤601-步骤604。
步骤601、PCIe设备生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上。
本申请实施例中,PCIe设备可以包括DPU,PCIe设备基于virtio技术生成第一虚拟网卡。可选地,结合图6,如图7所示,上述步骤601具体通过步骤6011实现。
步骤6011、PCIe设备调用PCIe设备内用于生成虚拟网卡的Virtio的后端驱动(即back end driver)程序,生成第一虚拟网卡。
本申请实施例中,PCIe设备生成的第一虚拟网卡用于该PCIe设备与其他设备通信,从而传输信息,例如用于PCIe设备与第一计算设备通信。在PCIe设备的运维管理场景中,PCIe设备生成的第一虚拟网卡可以用于PCIe设备中的运维管理模块传输PCIe设备的运维管理信息,应理解,运维管理模块并不感知该网卡是虚拟网卡还是物理网卡,即对于运维管理模块而言,该第一虚拟网卡与物理网卡并无区别。
步骤602、PCIe设备向第一计算设备发送指示信息。相应的,第一计算设备接收PCIe设备发送的指示信息。
该指示信息用于指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡。
可选地,上述指示信息包括指示PCIe设备内生成的虚拟网络设备为虚拟网卡的信息,例如,该指示信息可以是PCIe协议中规范的PCIe设备对外呈现的设备类型信息,包括如Device ID(设备标识)、Vendor ID(供应商标识)、Class Code(类别符号)、Subsystem ID(子***标识)、Subsystem Vendor ID(子***供应商标识)等。
本申请实施例中,PCIe设备通过运行Virtio的后端驱动,可以在该PCIe设备中配置虚拟的末端节点(EP),以通过末端节点向第一计算设备发送上述指示信息,相应地,第一计算设备通过该第一计算设备的RC接收该指示信息。
步骤603、第一计算设备生成第二虚拟网卡。
应理解,第二虚拟网卡与第一虚拟网卡对应,即第一计算设备接收到PCIe设备发送的指示信息之后,第一计算设备可以获知PCIe设备建立的虚拟网络设备为虚拟网卡,因此,第一计算设备根据该指示信息也生成一个虚拟网卡,从而第一计算设备与PCIe设备可以基于第一虚拟网卡、第二虚拟网卡通信。
可选地,结合图7,上述步骤603具体通过步骤6031实现。
步骤6031、第一计算设备调用第一计算设备内用于生成虚拟网卡的Virtio的前端驱动(即front end driver)程序,生成第二虚拟网卡。
应理解,Virtio的前端驱动程序和后端驱动程序是成对存在,Virtio的前端驱动程序运行于第一计算设备中,Virtio的后端驱动程序运行于PCIe设备中,二者配合生成第二虚拟网卡,具体的,PCIe设备运行后端驱动程序,可以促使PCIe设备向第一计算设备发送指示信息,从而第一计算设备运行后端驱动程序,生成第二虚拟网卡。
关于步骤6011和步骤6031中基于Virtio生成第一虚拟网卡和第二虚拟网卡的更多细节可以参考现有技术,本申请实施例不再详述。
需要说明的是,本申请实施例不限定PCIe设备生成第一虚拟网卡与PCIe设备向第一计算设备发送用于生成第二虚拟网卡的指示信息,以及第一计算设备根据该指示信息生成第一虚拟网卡的先后顺序,即本申请实施例中,可以先执行步骤601,后执行步骤602-步骤603,或者先执行步骤602-步骤603,后执行步骤601,也可以同时执行步骤601与步骤602-步骤603。
应注意,在PCIe设备未生成第一虚拟网卡之前,PCIe设备可以向第一计算设备发送指示信息的,以指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡,此时,第一虚拟网卡是PCIe设备后续即将生成的虚拟网卡。
结合上述内容,图8是PCIe设备与第一计算设备交互生成第一虚拟网卡与第二虚拟网卡的过程,参考图8可以上述各个步骤做进一步理解。
步骤604、PCIe设备通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信。
本申请实施例中,第一计算设备是PCIe设备与第二计算设备之间的中转设备,为实现PCIe设备与第二计算设备通信,PCIe设备可以通过第一计算设备向第二计算设备发送信息或者从第二计算设备接收信息,同理,第二计算设备可以通过第一计算设备向PCIe设备发送信息或者从PCIe设备接收信息。
可选地,结合图7,如图9所示,上述步骤604具体可以通过步骤6041-步骤6043实现。
步骤6041、PCIe设备建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道。
具体的,PCIe设备可以进行相关配置以建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道,例如,PCIe设备基于桥接或路由等转发技术建立第一虚拟网卡与第二虚拟网卡之间的通信通道,具体的,PCIe设备将该第一虚拟网卡的IP地址设置为与第二虚拟网卡同网段的IP地址。又例如,PCIe设备对待传输数据的目的地址、目的端口进行配置,使得待传输数据沿第一通信通道传输,即相当于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道。
可选地,可以配置为第一虚拟网卡和第二虚拟网卡直接通信,或者通过中间的交换功能的逻辑单元通信,本申请实施例不做限定。
步骤6042、第一计算设备建立第一计算设备上的物理网卡与第二计算设备之间的第二通信通道。
第一计算设备可以进行相关配置以建立物理网卡与第二计算设备之间的第二通信通道,例如,第一计算设备对待传输数据的目的地址、目的端口进行配置,使得待传输数据沿第二通信通道传输,即相当于建立物理网卡与第二计算设备之间的第二通信通道。
步骤6043、PCIe设备通过第一通信通道、第二通信通道与第二计算设备通信,该第一通信通道与第二通信通道通过网络转发设备联通。
上述的网络转发设备可以是第一计算设备上的软件形态的网桥设备或路由设备,或者其他具有网络联通作用的设备,本申请实施例不做限定。
本申请实施例中,网桥设备可以是第一计算设备上自带的软件,网桥设备可以联通属于不同网络的通信通道,例如上述第一通信通道是属于第一计算设备与PCIe设备之间的通信网络的通信通道,上述第二通信通道是属于第一计算设备与第二计算设备之间的通信通络的通信通道,通过网桥设备可以联通第一通信通道和第二通信通道。
可以理解的是,在对PCIe设备进行运维管理的场景中,第二虚拟网卡是基于PCIe设备的管理网络,在第一计算设备上创建的虚拟网卡,可以基于PCIe设备的管理网络使用该第二虚拟网卡传输信息,即第二虚拟网卡是属于PCIe设备的管理网络的网卡,不属于第一计算设备的管理网络的网卡。本申请实施例中,第一计算设备可以通过对第一计算设备的网桥设备进行配置,从而打通第二虚拟网卡与第一计算设备的管理网络,即以网桥设备作为桥梁,建立第二虚拟网卡与网桥设备的通信连接,并且建立网桥设备与第一计算设备的物理网卡(该物理网卡是用于第一计算设备与第二计算设备通信的网卡)之间的通信连接,从而使得上述第一通信通道和第二通信通道联通。
具体的,第一计算设备创建网桥设备,例如运行#brctl addbr br0,从而创建一个名称为br0的网桥设备;然后,向br0中添加第二虚拟网卡和第一计算设备的物理网卡,例如第二虚拟网卡记为eth0,物理网卡记为eth1,主机可以运行#brctl addif eth0;#brctladdif eth1,从而将向br0中添加eth0和eth1,如此,可以成功建立第二虚拟网卡与网桥设备的通信连接,并且建立网桥设备与第一计算设备的物理网卡之间的通信连接。
通过上述步骤6041-步骤6043可知,建立了上述第一通信通道和第二通信通道,并且使用网络转发设备联通该第一通信通道和第二通信通道之后,PCIe设备可以通过该第一通信通道、第二通信通道与第二计算设备通信。
本申请实施例提供的与PCIe设备通信的方法中,为了实现PCIe设备与第二计算设备之间通信,基于Virtio技术在第一计算设备和PCIe设备上生成第一虚拟网卡,进而该第一虚拟网卡与第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信。与现有的基于物理网卡实现PCIe设备与第二计算设备通信的方案相比,本申请实施例提供的与PCIe设备通信的方法无需专门在PCIe设备上增加物理网口,如此,能够降低PCIe设备的运维管理成本,相应地,在不增加物理网口的情况下,也能够节省交换机(交换机用于转发PCIe设备与第二计算设备之间的信息)的端口资源。与现有的在第一计算设备和PCIe设备之间封装专用通道的方案相比,本申请实施例提供的与PCIe设备通信的方法无需在第一计算设备上部署与PCIe设备对应的定制化软件,如此,可以更加便捷地实现与PCIe设备通信。
综上,本申请实施例提供的与PCIe设备通信的方法能够在节省端口资源的基础上,更加便捷地实现与PCIe设备通信。
本申请实施例提供的与PCIe设备通信的方法可以应用于PCIe设备的运维管理场景,实现对PCIe设备的运维管理,则第一计算设备与PCIe设备、第二计算设备通信以传输PCIe设备的运维管理信息。在PCIe设备的运维管理场景中,上述第一计算设备可以为挂载该PCIe设备的主机,第二计算设备可以为管理服务器,通过上述实施例描述的过程可以建立PCIe设备与管理服务器之间的通信通道(包括第一通信通道、第二通信通道),基于该通信通道二者可以交互,传输PCIe设备的运维管理信息,以实现例如业务配置、软件升级、告警上报、证书管理、日志导出等运维管理功能。
结合图10所示的PCIe设备的运维管理过程的框架示意图,以PCIe设备进行告警上报为例,PCIe设备的运维管理信息可以包括PCIe设备生成的告警信息和/或管理服务器发送的响应消息。PCIe设备与管理服务器通信以传输运维管理信息的过程具体包括:PCIe设备通过第一虚拟网卡向第一计算设备上报告警信息,相应的,第一计算设备通过第二虚拟网卡从PCIe设备的第一虚拟网卡接收告警信息;然后,第一计算设备通过该第一计算设备上的网桥设备、该第一计算设备上的物理网卡将告警信息上报至管理服务器,相应地,管理服务器通过物理网卡从第一计算设备接收告警信息;后续的,管理服务器分析PCIe设备的告警信息,生成该报警信息的响应消息,该响应消息中包括对告警信息进行分析的分析结果;并将该响应消息发送至第一计算设备,该第一计算设备通过物理网卡从管理服务器接收响应消息,然后第一计算设备通告该第一计算设备的网桥设备、第二虚拟网卡将该响应消息转发至PCIe设备,相应的,PCIe设备通过PCIe设备上的第一虚拟网卡接收该响应消息。
相应地,本申请实施例提供一种PCIe设备,本申请实施例中,可以根据上述方法示例对该PCIe设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图11示出上述实施例中所涉及的PCIe设备的一种可能的结构示意图。如图11所示,该PCIe设备包括生成模块1101和通信模块1102。其中,生成模块1101,用于生成第一虚拟网卡,该PCIe设备挂载在第一计算设备上,例如执行上述方法实施例中的步骤601。通信模块1102用于通过第一虚拟网卡、第一计算设备上的第二虚拟网卡以及第一计算设备上的物理网卡与第二计算设备通信,其中,第二虚拟网卡为第一计算设备生成的与第一虚拟网卡对应的虚拟网卡,第一计算设备通过物理网卡与第二计算设备通信,例如执行上述方法实施例中的步骤604。
可选地,上述通信模块1102包括发送模块11021;该发送模块11021用于向第一计算设备发送指示信息,该指示信息用于指示第一计算设备生成与第一虚拟网卡对应的第二虚拟网卡,例如执行上述方法实施例中的步骤602。上述生成模块1101具体用于调用PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成第一虚拟网卡,例如执行上述方法实施例中的步骤6011。
可选地,本申请实施例提供的PCIe设备还包括通道建立模块1103;该通道建立模块1103用于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道,例如执行上述方法实施例中的步骤6041;上述通信模块1102具体用于PCIe设备通过第一通信通道、第二通信通道与第二计算设备通信,第二通信通道是由第一计算设备建立的物理网卡与第二计算设备之间的通信通道,第一通信通道与第二通信通道通过网桥设备联通,例如执行上述方法实施例中的步骤6043。
上述PCIe设备的各个模块还可以用于执行上述方法实施例中的其他动作,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的PCIe设备的另一种可能的结构示意图。如图12所示,本申请实施例提供的PCIe设备可以包括:处理模块1201和通信模块1202。处理模块1201可以用于对该PCIe设备的动作进行控制管理,例如,处理模块1201可以用于支持该PCIe设备执行上述方法实施例中的步骤601(包括步骤6011)、步骤6041,和/或用于本文所描述的技术的其它过程。通信模块1202可以用于支持该PCIe设备与其他网络实体的通信,例如与另一个设备通信,例如通信模块1202支持该PCIe设备执行上述方法实施例中的步骤604(包括6043)和步骤602。可选地,如图12所示,该PCIe设备还可以包括存储模块1203,用于存储该PCIe设备的程序代码和数据。
其中,处理模块1201可以是处理器或控制器,上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1202可以是收发器、收发电路或通信接口等。存储模块1203可以是存储器。
当处理模块1201为处理器,通信模块1202为收发器,存储模块1203为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended Industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
上述PCIe设备包含的模块实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
如图13所示,本申请实施例还提供一种通信***,包括PCIe设备1301、第一计算设备1302以及第二计算设备1303。其中,PCIe设备1301用于生成第一虚拟网卡,该PCIe设备1301挂载在第一计算设备1302上;第一计算设备1302用于生成第二虚拟网卡,第二虚拟网卡与第一虚拟网卡对应;PCIe设备1301还用于通过第一虚拟网卡、第二虚拟网卡以及第一计算设备1302上的物理网卡与第二计算设备1303通信,第一计算设备1302通过物理网卡与第二计算设备1303通信。
可选地,PCIe设备1301还用于向第一计算设备1302发送指示信息,该示信息用于指示第一计算设备1302生成与第一虚拟网卡对应的第二虚拟网卡。
可选地,PCIe设备1301具体用于调用PCIe设备1301内用于生成虚拟网卡的Virtio的后端驱动程序,生成第一虚拟网卡。
可选地,第一计算设备1302具体用于调用第一计算设备1302内用于生成虚拟网卡的Virtio的前端驱动程序,生成第二虚拟网卡。
可选地,PCIe设备1301具体用于建立第一虚拟网卡与第二虚拟网卡之间的第一通信通道;第一计算设备1302具体用于建立物理网卡与第二计算设备1303之间的第二通信通道;PCIe设备1301具体用于通过第一通信通道、第二通信通道与第二计算设备1303通信,第一通信通道与第二通信通道通过网络转发设备联通。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种与PCIe设备通信的方法,其特征在于,包括:
所述PCIe设备生成第一虚拟网卡,其中,所述PCIe设备挂载在第一计算设备上;
所述PCIe设备通过所述第一虚拟网卡、所述第一计算设备上的第二虚拟网卡以及所述第一计算设备上的物理网卡与第二计算设备通信,其中,所述第二虚拟网卡为所述第一计算设备生成的与所述第一虚拟网卡对应的虚拟网卡,所述第一计算设备通过所述物理网卡与所述第二计算设备通信。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述PCIe设备向所述第一计算设备发送指示信息,所述指示信息用于指示所述第一计算设备生成与所述第一虚拟网卡对应的第二虚拟网卡。
3.根据权利要求1或2所述的方法,其特征在于,所述PCIe设备生成第一虚拟网卡,包括:
所述PCIe设备调用所述PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成所述第一虚拟网卡。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述PCIe设备通过所述第一虚拟网卡、所述第一计算设备上的第二虚拟网卡以及所述第一计算设备上的物理网卡与第二计算设备通信,包括:
所述PCIe设备建立所述第一虚拟网卡与所述第二虚拟网卡之间的第一通信通道;
所述PCIe设备通过所述第一通信通道、第二通信通道与所述第二计算设备通信,所述第二通信通道是所述物理网卡与所述第二计算设备之间的通信通道,所述第一通信通道与所述第二通信通道通过网络转发设备联通。
5.根据权利要求1至4任一项所述的方法,其特征在于,
所述PCIe设备包括数据处理单元DPU。
6.一种PCIe设备,其特征在于,包括:
生成模块,用于生成第一虚拟网卡,其中,所述PCIe设备挂载在第一计算设备上;
通信模块,用于通过所述第一虚拟网卡、所述第一计算设备上的第二虚拟网卡以及所述第一计算设备上的物理网卡与第二计算设备通信,其中,所述第二虚拟网卡为所述第一计算设备生成的与所述第一虚拟网卡对应的虚拟网卡,所述第一计算设备通过所述物理网卡与所述第二计算设备通信。
7.根据权利要求6所述的PCIe设备,其特征在于,所述通信模块用于向所述第一计算设备发送指示信息,所述指示信息用于指示所述第一计算设备生成与所述第一虚拟网卡对应的第二虚拟网卡。
8.根据权利要求6或7所述的PCIe设备,其特征在于,
所述生成模块,用于调用所述PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成所述第一虚拟网卡。
9.根据权利要求6至8任一项所述的PCIe设备,其特征在于,所述PCIe设备还包括:
通道建立模块,用于建立所述第一虚拟网卡与所述第二虚拟网卡之间的第一通信通道;
所述通信模块,用于通过所述第一通信通道、第二通信通道与所述第二计算设备通信,所述第二通信通道是所述物理网卡与所述第二计算设备之间的通信通道,所述第一通信通道与所述第二通信通道通过网络转发设备联通。
10.根据权利要求6至9任一项所述的PCIe设备,其特征在于,
所述PCIe设备包括数据处理单元DPU。
11.一种PCIe设备,其特征在于,包括存储器和与所述存储器连接的至少一个处理器,所述存储器用于存储指令,所述指令被至少一个处理器读取后,执行如权利要求1至5任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现权利要求1至5任一项所述的方法。
13.一种通信***,其特征在于,包括:
PCIe设备,用于生成第一虚拟网卡,其中,所述PCIe设备挂载在第一计算设备上;
所述第一计算设备,用于生成第二虚拟网卡,所述第二虚拟网卡与所述第一虚拟网卡对应;
所述PCIe设备,还用于通过所述第一虚拟网卡、所述第二虚拟网卡以及所述第一计算设备上的物理网卡与所述第二计算设备通信,其中,所述第一计算设备通过所述物理网卡与所述第二计算设备通信。
14.根据权利要求13所述的通信***,其特征在于,
所述PCIe设备,还用于向所述第一计算设备发送指示信息,所述指示信息用于指示所述第一计算设备生成与所述第一虚拟网卡对应的第二虚拟网卡。
15.根据权利要求13或14所述的通信***,其特征在于,
所述PCIe设备,用于调用所述PCIe设备内用于生成虚拟网卡的Virtio的后端驱动程序,生成所述第一虚拟网卡。
16.根据权利要求13至15任一项所述的通信***,其特征在于,
所述第一计算设备,用于调用所述第一计算设备内用于生成虚拟网卡的Virtio的前端驱动程序,生成所述第二虚拟网卡。
17.根据权利要求13至16任一项所述的通信***,其特征在于,
所述PCIe设备,用于建立所述第一虚拟网卡与所述第二虚拟网卡之间的第一通信通道;
所述第一计算设备,用于建立所述物理网卡与所述第二计算设备之间的第二通信通道;
所述PCIe设备,用于通过所述第一通信通道、所述第二通信通道与所述第二计算设备通信,所述第一通信通道与所述第二通信通道通过网络转发设备联通。
18.根据权利要求13至17任一项所述的通信***,其特征在于,
所述PCIe设备包括数据处理单元DPU。
CN202111616809.3A 2021-10-14 2021-12-27 一种与PCIe设备通信的方法、装置及*** Pending CN115982081A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/099919 WO2023060928A1 (zh) 2021-10-14 2022-06-20 一种与PCIe设备通信的方法、装置及***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111195590 2021-10-14
CN2021111955904 2021-10-14

Publications (1)

Publication Number Publication Date
CN115982081A true CN115982081A (zh) 2023-04-18

Family

ID=85966820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111616809.3A Pending CN115982081A (zh) 2021-10-14 2021-12-27 一种与PCIe设备通信的方法、装置及***

Country Status (2)

Country Link
CN (1) CN115982081A (zh)
WO (1) WO2023060928A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645873B (zh) * 2008-08-07 2012-08-22 联想(北京)有限公司 一种计算机以及虚拟机环境中实现网络隔离的方法
US8949502B2 (en) * 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
CN104202195B (zh) * 2014-09-10 2018-05-04 华为技术有限公司 服务器统一通信的方法、基板管理控制器和服务器
CN112698942B (zh) * 2020-12-29 2023-10-27 杭州海康威视数字技术股份有限公司 一种人工智能服务***、主控装置和从控装置
CN113032314B (zh) * 2021-03-25 2024-07-02 北京中科通量科技有限公司 一种跨平台辅助pcie链路训练的***及方法

Also Published As

Publication number Publication date
WO2023060928A1 (zh) 2023-04-20

Similar Documents

Publication Publication Date Title
US10986171B2 (en) Method for unified communication of server, baseboard management controller, and server
JP6513835B2 (ja) クラウドコンピューティングシステムにおけるパケット処理方法、ホスト、およびシステム
CN109302466B (zh) 数据处理方法、相关设备及计算机存储介质
US8635614B2 (en) Method for providing location independent dynamic port mirroring on distributed virtual switches
US9154451B2 (en) Systems and methods for sharing devices in a virtualization environment
US9678912B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
CN103609077B (zh) 用于数据传输的方法、装置和***以及物理网卡
JP2015521779A (ja) 入力/出力仮想化のためのシステムおよび方法
CN101262366B (zh) 目标单板调试方法、***及分布式设备
US9654421B2 (en) Providing real-time interrupts over ethernet
US9197490B2 (en) System and method for providing remote management of a switching device
US8228913B2 (en) Implementing system to system communication in a switchless non-IB compliant environment using InfiniBand multicast facilities
CN108228309A (zh) 基于虚拟机的数据包发送和接收方法及装置
CN109257955B (zh) 操作硬盘的方法和硬盘管理器
CN108512779B (zh) 控制信息传递方法、服务器和***
CN103092676A (zh) 虚拟机集群的模拟输入输出方法、装置及***
CN115982081A (zh) 一种与PCIe设备通信的方法、装置及***
CN108833306B (zh) 一种vsm***报文传输装置及方法
US11886356B2 (en) Local instantiation of remote peripheral devices
US20230169017A1 (en) Dynamic server rebalancing
CN114500573A (zh) 存储卷挂载方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication