WO2023060928A1 - 一种与PCIe设备通信的方法、装置及系统 - Google Patents

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

Info

Publication number
WO2023060928A1
WO2023060928A1 PCT/CN2022/099919 CN2022099919W WO2023060928A1 WO 2023060928 A1 WO2023060928 A1 WO 2023060928A1 CN 2022099919 W CN2022099919 W CN 2022099919W WO 2023060928 A1 WO2023060928 A1 WO 2023060928A1
Authority
WO
WIPO (PCT)
Prior art keywords
network card
computing device
virtual network
pcie
pcie device
Prior art date
Application number
PCT/CN2022/099919
Other languages
English (en)
French (fr)
Inventor
胡友进
郭振
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023060928A1 publication Critical patent/WO2023060928A1/zh

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

Definitions

  • the embodiments of the present application relate to the field of computer technology, and in particular to a method, device and system for communicating with a PCIe device.
  • PCIe peripheral component interconnect express
  • PCIe peripheral component interconnect express
  • the card also provides operation and maintenance management functions such as service configuration, software upgrade, and alarm reporting.
  • an operation and maintenance management module (also called a card management module) running inside the PCIe card.
  • the operation and maintenance management module generates operation and maintenance data (such as alarm data), and external devices (such as a management server) can communicate with the PCIe card. Access the operation and maintenance management module of the PCIe card to obtain the operation and maintenance data, and realize the operation and maintenance management of the PCIe card.
  • a method for PCIe operation and maintenance management is: the PCIe card communicates with the management server through the physical network port on the PCIe card.
  • the physical network port used to transmit the operation and maintenance management information of the PCIe card needs and manages
  • the ports of the switches in the management plane are connected to transmit the operation and maintenance management information to the management server through the management plane. In this way, the port resources of the switches in the management plane will be occupied, especially in large-scale networking scenarios (such as multiple hosts, In the scenario of networking with multiple PCIe cards), a switch port needs to be assigned to each PCIe card, which consumes more port resources of the switch.
  • Embodiments of the present application provide a method, device, and system for communicating with a PCIe device, which can realize communication with the PCIe device more conveniently on the basis of saving port resources.
  • an embodiment of the present application provides a method for communicating with a PCIe device, the method including: the PCIe device generates a first virtual network card, and the PCIe device is mounted on the first computing device; the PCIe device passes through the first virtual network card, The second virtual network card on the first computing device and the physical network card on the first computing device communicate with the second computing device, wherein the second virtual network card is a virtual network card corresponding to the first virtual network card generated by the first computing device, and the second virtual network card is generated by the first computing device and corresponds to the first virtual network card.
  • a computing device communicates with a second computing device through a physical network card.
  • a first virtual network card is generated on the PCIe device based on Virtio technology, and then the first virtual network card communicates with the first virtual network card.
  • the second virtual network card on the computing device, the physical network card on the first computing device communicate with the second computing device.
  • the method for communicating with the PCIe device provided in the embodiment of the present application does not need to specifically increase the physical network port on the PCIe device, so that the PCIe device can be reduced.
  • the operation and maintenance management cost of the device can also save the port resources of the switch (the switch is used to forward the information between the PCIe device and the second computing device).
  • the method for communicating with the PCIe device provided in the embodiment of the present application does not need to deploy customized software corresponding to the PCIe device on the first computing device , so that communication with the PCIe device can be implemented more conveniently.
  • the method for communicating with a PCIe device provided in the embodiment of the present application can realize communication with the PCIe device more conveniently on the basis of saving port resources.
  • the method for communicating with a PCIe device provided in the embodiment of the present application further includes:
  • the PCIe device sends instruction information to the first computing device, where the instruction information is used to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card.
  • the above indication information includes information indicating that the virtual network device generated in the PCIe device is a virtual network card
  • the indication information may be the device type information presented externally by the PCIe device specified in the PCIe protocol, including such as Device ID (device Identification), Vendor ID (supplier identification), Class Code (category symbol), Subsystem ID (subsystem identification), Subsystem Vendor ID (subsystem supplier identification), etc.
  • the PCIe device can configure a virtual end node (EP) in the PCIe device by running the Virtio backend driver, so as to send the above indication information to the first computing device through the end node, and accordingly, the first The computing device receives the indication information through the RC of the first computing device.
  • EP virtual end node
  • the above-mentioned PCIe device generating the first virtual network card specifically includes: the PCIe device calls a Virtio backend driver in the PCIe device for generating the virtual network card, and generates the first virtual network card.
  • the operation and maintenance management module inside the PCIe device can transmit the operation and maintenance management information of the PCIe device through the first virtual network card. It should be understood that the operation and maintenance management module does not perceive whether the network card is a virtual network card or a physical network card.
  • the network card, that is, for the operation and maintenance management module, the first virtual network card is no different from the physical network card.
  • the above-mentioned PCIe device communicating with the target device through the first virtual network card, the second virtual network card on the first computing device, and the physical network card on the first computing device specifically includes: the PCIe device establishes the first virtual network card The first communication channel with the second virtual network card; then the PCIe device communicates with the second computing device through the first communication channel and the second communication channel, and the second communication channel is the communication between the physical network card and the second computing device channel, the first communication channel communicates with the second communication channel through the network forwarding device.
  • the PCIe device can be configured to establish the first communication channel between the first virtual network card and the second virtual network card.
  • the PCIe device establishes the first virtual network card and the second The communication channel between the virtual network cards, specifically, the PCIe device sets the IP address of the first virtual network card as the IP address of the same network segment as the second virtual network card.
  • the PCIe device configures the destination address and destination port of the data to be transmitted so that the data to be transmitted is transmitted along the first communication channel, which is equivalent to establishing the first communication channel between the first virtual network card and the second virtual network card.
  • the first virtual network card communicates directly with the second virtual network card, or communicates through an intermediate logical unit of a switching function, which is not limited in this embodiment of the present application.
  • the above-mentioned network forwarding device may be a bridge device or routing device in the form of software on the first computing device, or other devices with network communication functions, which is not limited in this embodiment of the present application.
  • the bridge device on the above-mentioned first computing device can be the software that comes with the first computing device, and the bridge device can connect communication channels belonging to different networks.
  • the above-mentioned first communication channel belongs to the first computing device and PCIe
  • the communication channel of the communication network between devices, the above-mentioned second communication channel is a communication channel belonging to the communication network between the first computing device and the second computing device, and the first communication channel and the second communication channel can be connected through the bridge device aisle.
  • the second virtual network card is based on the management network of PCIe devices, and the virtual network card created on the first computing device can be used in this way based on the management network of PCIe devices
  • the second virtual network card transmits information, that is, the second virtual network card is a network card belonging to the management network of the PCIe device, but not a network card belonging to the management network of the first computing device.
  • the first computing device can configure the network bridge device of the first computing device to open up the management network between the second virtual network card and the first computing device, that is, use the bridge device as a bridge to establish a second A communication connection between the virtual network card and the network bridge device, and establishing a communication connection between the network bridge device and the physical network card of the first computing device (the physical network card is a network card used for the communication between the first computing device and the second computing device), thereby Make the above-mentioned first communication channel communicate with the second communication channel.
  • the PCIe device includes a data processing unit DPU, and the DPU has complex service logic, such as processing functions, storage functions, etc.
  • the DPU has complex service logic, such as processing functions, storage functions, etc.
  • software of a storage system can be installed on the DPU.
  • the PCIe device communicates with the second computing device to transmit operation and maintenance management information of the PCIe device.
  • the method for communicating with a PCIe device provided in the embodiment of the present application can be applied to an operation and maintenance management scenario of a PCIe device (such as a DPU), so as to realize the operation and maintenance management of the PCIe device.
  • a PCIe device such as a DPU
  • the above-mentioned first computing device may be the host on which the PCIe device is mounted
  • the second computing device may be the management server
  • the communication between the PCIe device and the management server may be established through the embodiment of the present application Channels (including the first communication channel and the second communication channel), based on the communication channel, the two can interact and transmit the operation and maintenance management information of PCIe devices, so as to realize, for example, business configuration, software upgrade, alarm reporting, certificate management, log export, etc. Operation and maintenance management function.
  • the operation and maintenance management information of the PCIe device may include alarm information generated by the PCIe device and/or a response message sent by the management server.
  • the process for the PCIe device to communicate with the management server to transmit the operation and maintenance management information specifically includes: the PCIe device reports alarm information to the first computing device through the first virtual network card, and correspondingly, the first computing device reports the alarm information to the first computing device through the second virtual network card.
  • the first virtual network card receives the alarm information; then, the first computing device reports the alarm information to the management server through the network bridge device on the first computing device and the physical network card on the first computing device, and accordingly, the management server passes the physical
  • the network card receives the alarm information from the first computing device; subsequently, the management server analyzes the alarm information of the PCIe device, generates a response message of the alarm information, and the response message includes an analysis result of analyzing the alarm information; and sends the response message
  • the first computing device receives the response message from the management server through the physical network card, and then the first computing device notifies the network bridge device of the first computing device, and the second virtual network card forwards the response message to the PCIe device,
  • the PCIe device receives the response message through the first virtual network card on the PCIe device.
  • the embodiment of the present application provides a PCIe device, including: a generation module and a communication module.
  • the generating module is used to generate the first virtual network card, and the PCIe device is mounted on the first computing device;
  • the communication module is used to pass the first virtual network card, the second virtual network card on the first computing device, and the first computing device
  • the physical network card communicates with the second computing device, wherein the second virtual network card is a virtual network card generated by the first computing device and corresponds to the first virtual network card, and the first computing device communicates with the second computing device through the physical network card.
  • the communication module is configured to send instruction information to the first computing device, where the instruction information is used to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card.
  • the generating module is used to call the Virtio back-end driver for generating the virtual network card in the PCIe device to generate the first virtual network card.
  • the PCIe device provided in the embodiment of the present application further includes a channel establishment module; the channel establishment module is used to establish a first communication channel between the first virtual network card and the second virtual network card; Because the PCIe device communicates with the second computing device through the first communication channel and the second communication channel, the second communication channel is the communication channel between the physical network card and the second computing device, and the first communication channel and the second communication channel are forwarded through the network Device connectivity.
  • the PCIe device provided in this embodiment of the present application includes a data processing unit DPU.
  • the PCIe device communicates with the second computing device to transmit operation and maintenance management information of the PCIe device.
  • the embodiment of the present application provides a PCIe device, including a memory and at least one processor connected to the memory, the memory is used to store instructions, and after the instructions are read by at least one processor, execute the above first aspect and its possibility The method described in any one of the implementation methods.
  • an embodiment of the present application provides a computer-readable storage medium on which a computer program is stored, and the computer program is executed by a processor to implement the method described in any one of the above-mentioned first aspect and its possible implementations .
  • the embodiment of the present application provides a computer program product, the computer program product includes instructions, and when the computer program product is run on the computer, execute the method described in any one of the first aspect and its possible implementations .
  • the embodiment of the present application provides a chip, including a memory and a processor.
  • Memory is used to store computer instructions.
  • the processor is used to call and execute the computer instructions from the memory, so as to execute the method described in any one of the first aspect and possible implementations thereof.
  • the embodiment of the present application provides a communication system, including a PCIe device, a first computing device, and a second computing device.
  • the PCIe device is used to generate the first virtual network card, and the PCIe device is mounted on the first computing device; the first computing device is used to generate the second virtual network card, and the second virtual network card corresponds to the first virtual network card; the PCIe device It is also used to communicate with the second computing device through the first virtual network card, the second virtual network card and the physical network card on the first computing device, wherein the first computing device communicates with the second computing device through the physical network card.
  • the PCIe device is further configured to send instruction information to the first computing device, where the instruction information is used to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card.
  • the PCIe device is configured to invoke a Virtio backend driver in the PCIe device for generating a virtual network card to generate the first virtual network card.
  • the first computing device is configured to invoke a Virtio front-end driver for generating a virtual network card in the first computing device to generate a second virtual network card.
  • the front-end driver of Virtio and the back-end driver exist in pairs, the front-end driver of Virtio runs in the first computing device, and the back-end driver of Virtio runs in the PCIe device, and the two cooperate to generate the second virtual
  • the network card specifically, the PCIe device runs the back-end driver, which can prompt the PCIe device to send instruction information to the first computing device, so that the first computing device runs the back-end driver to generate the second virtual network card.
  • the PCIe device is used to establish the first communication channel between the first virtual network card and the second virtual network card; the first computing device is used to establish the second communication between the physical network card and the second computing device Channel: the PCIe device is used to communicate with the second computing device through the first communication channel and the second communication channel, and the first communication channel and the second communication channel communicate through the network forwarding device.
  • the PCIe device includes a data processing unit DPU.
  • Fig. 1 is a schematic framework diagram of an operation and maintenance management process of an existing PCIe device provided by an embodiment of the present application;
  • FIG. 2 is a schematic framework diagram of another existing operation and maintenance management process of PCIe equipment provided by the embodiment of the present application;
  • FIG. 3 is a schematic diagram of an application scenario of a method for communicating with a PCIe device provided in an embodiment of the present application
  • FIG. 4 is a schematic diagram of a software and hardware architecture of a PCIe device provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of the software and hardware architecture of a host provided by the embodiment of the present application.
  • FIG. 6 is one of the schematic diagrams of a method for communicating with a PCIe device provided in an embodiment of the present application
  • FIG. 7 is a second schematic diagram of a method for communicating with a PCIe device provided in an embodiment of the present application.
  • FIG. 8 is a third schematic diagram of a method for communicating with a PCIe device provided by an embodiment of the present application.
  • FIG. 9 is a fourth schematic diagram of a method for communicating with a PCIe device provided by an embodiment of the present application.
  • FIG. 10 is a schematic framework diagram of an operation and maintenance management process of a PCIe device provided in an embodiment of the present application.
  • FIG. 11 is one of the schematic structural diagrams of a PCIe device provided in the embodiment of the present application.
  • FIG. 12 is the second schematic structural diagram of a PCIe device provided by the embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of a communication system provided by an embodiment of the present application.
  • first and second in the description and claims of the embodiments of the present application are used to distinguish different objects, rather than to describe a specific order of objects.
  • first virtual network card and the second virtual network card are used to distinguish different virtual network cards, rather than describing a specific order of the virtual network cards.
  • words such as “exemplary” or “for example” are used as examples, illustrations or illustrations. Any embodiment or design scheme described as “exemplary” or “for example” in the embodiments of the present application shall not be interpreted as being more preferred or more advantageous than other embodiments or design schemes. Rather, the use of words such as “exemplary” or “such as” is intended to present related concepts in a concrete manner.
  • plural means two or more.
  • multiple hosts refers to two or more multiple hosts.
  • PCIe Peripheral component interconnect express
  • PCIe Peripheral component interconnect express
  • PCIe can also be considered as an interface. Using the PCIe interface can realize high-speed serial point-to-point dual-channel high-bandwidth transmission.
  • a device with such an interface may be called a PCIe device, and a common PCIe device is a PCIe card, such as a graphics card, a sound card, a network card, an expansion card, and the like.
  • PCIe interface on the host (such as a server), and the PCIe interface on the host is used to insert a PCIe device to realize the function of the PCIe device on the host. Connect with Ethernet.
  • PCIe cards In traditional technology, graphics card, sound card, network card, etc. are the basic PCIe cards with a single function. With the development of technology, many PCIe cards with more functions (which can be called smart PCIe cards) have appeared, such as data processing units. (data processing unit, DPU) card, the DPU card has complex business logic, such as processing function, storage function, etc. Exemplarily, the software of the storage system can be installed on the DPU card. As PCIe cards have more and more functions, PCIe cards need to support O&M management functions such as service configuration, software upgrade, alarm reporting, certificate management, and log export. It should be understood that there is an operation and maintenance management server (or operation and maintenance management module or card management module) running inside the PCIe card. For the convenience of description, the operation and maintenance management server in the PCIe card is referred to as card management in the following embodiments module. The card management module can maintain (or generate) operation and maintenance data, such as alarm information, logs, and the like.
  • the communication between the external management server and the PCIe card is involved.
  • the external management server needs to access the card management module in the PCIe card to realize the O&M management of PCIe, such as card management
  • the module reports operation and maintenance data (such as alarm information) to the management server, and the management server sends response information to the card management module after analyzing the operation and maintenance data (the analysis result to the alarm information may be included in the response message); or, the management server sends a response message to the card management module;
  • the card management module sends configuration information (for example, configuration information for software upgrades, which may include software packages), and the card management module performs corresponding processes (for example, software upgrades) according to the configuration information, and after performing the corresponding processes Then send notification information (or called feedback information) to the management server.
  • configuration information for example, configuration information for software upgrades, which may include software packages
  • processes for example, software upgrades
  • Virtio It is a general I/O device virtualization framework, which can be simply understood as: Virtio is a set of general I/O device virtualization programs. Specifically, a virtual machine management program (hypervisor, also known as a virtual machine monitor) ) A series of virtualized I/O devices can be simulated through Virtio, such as Virtio-SCSI, Virtio-NET, etc.
  • Virtio-SCSI is a virtualized SCSI (SCSI is a storage unit specially designed for small computer systems Interface) controller device, in fact, Virtio-SCSI is a virtualization program that creates a disk (a disk is an I/O device), and a virtualized disk can be created through Virtio-SCSI; Virtio-NET is a virtualized network device , in the same way, Virtio-NET is a virtualization program for creating network devices, and virtualized network devices (such as virtual network cards, vNICs) can be created through Virtio-NET.
  • SCSI is a storage unit specially designed for small computer systems Interface
  • Virtio-SCSI is a virtualization program that creates a disk (a disk is an I/O device), and a virtualized disk can be created through Virtio-SCSI
  • Virtio-NET is a virtualized network device
  • Virtio-NET is a virtualization program for creating network
  • the embodiment of the present application mainly involves generating a virtual network card in a PCIe card based on Virtio-NET and generating a virtual network card in a host where the PCIe card is located based on Virtio-NET, thereby establishing a card management module and a host computer in the PCIe card.
  • the operation and maintenance channel between the PCIe card so that the card management module in the PCIe card can communicate with the host, and then the card management module can be based on the operation and maintenance channel between the card management module and the host and the bridge in the host (bridge) and External management server communication.
  • Virtio includes a front-end driver and a back-end driver.
  • the cooperation between the front-end driver and the back-end driver can generate a virtualized I/O device (such as a vNIC).
  • a virtualized I/O device such as a vNIC
  • the network bridge equipment can be the equipment of hardware form, also can be the equipment of software form, in the embodiment of the present application, the network bridge equipment can be the form of software, be called for short bridge (bridge), bridge is used in Linux to carry out two-layer agreement Switching equipment, the bridge is similar to the function of the switch, the difference between the bridge and the router is that the bridge works at the data link layer, and the bridge broadcasts the message according to the media access control (MAC) address of the received message. Forwarding, discarding and other processing.
  • MAC media access control
  • the network bridge may be used to connect the operation and maintenance management network of the host itself and the operation and maintenance management network of the PCIe card.
  • the PCIe card is mounted on the host, and different business applications (such as business application 1 and business application 2) and the corresponding service drivers of the business applications can be run on the host. It also includes a management module of the host, and the PCIe card includes a service module and a card management module.
  • the host running the service driver can make the service application 1 and/or the service application 2 communicate with the service module of the PCIe card through the root complex (RC) node on the host ⁇ the end node (end point, EP) on the PCIe card Communication; service application 1 and/or service application 2 on the host interact with the service plane through the physical network card (NIC1 in Figure 1).
  • RC root complex
  • EP end point, EP
  • the service plane can be a network formed by switches;
  • the network card (NIC 2 in Figure 1) communicates with the management plane to transmit the operation and maintenance management information of the host, and then the management plane forwards the operation and maintenance management information to the management server for communication (this process can be understood as the management module on the host communicates with the host through the physical network card) management server communication), the management server is used for operation and maintenance management of devices (such as hosts and PCIe cards), and the management plane can be a network of switches;
  • the business modules of the PCIe cards pass through physical network ports (the A1) Interact with the service plane, the card management module of the PCIe card communicates with the management plane through the physical network port (A2 in Figure 2) to transmit the operation and maintenance management information of the PCIe card, and then the management plane forwards the operation and maintenance management information to the management server Communication (this process can be understood as the management module of the PCIe card communicates with the management server through the physical network port).
  • the core of the method for operation and maintenance management of the PCIe card is to realize the communication between the PCIe card and the management server through the physical network port.
  • this method on the one hand, it is necessary to add a physical network port to the PCIe card, which increases the cost; on the other hand, the physical network port used to transmit the operation and maintenance management information of the PCIe card needs to be connected to the port of the switch in the management plane, In this way, the port resources of the switches in the management plane will be occupied, especially in large-scale networking scenarios (such as multiple hosts and multiple PCIe networking scenarios), it is necessary to allocate a switch port for each PCIe card. It consumes more port resources of the switch, and the networking cost is higher.
  • the communication between the card management module of the PCIe card and the management server is no longer realized through the physical network port.
  • a corresponding management module agent is installed on the host, and the management module agent is a kind of customized software; then, based on the business function channel of the PCIe card, the management function channel (a dedicated channel) is encapsulated.
  • the management channel encapsulation program is run on the host side and the PCIe card side to generate a management function channel; and then based on the management function channel, the communication between the card management module of the PCIe card and the management server is realized, and the dotted line in Figure 2 indicates Management information transmission channel between the card management module of the PCIe card and the management server.
  • the core of the above method for operation and maintenance management of PCIe cards is: adopting the method of software implementation, installing a management module agent corresponding to the card management module on the host computer, and encapsulating a management module agent based on the business function channel Management function channel with the card management module.
  • the management function channel is encapsulated based on the business function channel, that is to say, the management function channel needs to be encapsulated based on the service drive, so that the business function channel and the management function channel affect each other, that is, they are mutually coupled;
  • the management module agent installed on the host is customized software corresponding to the card management module.
  • the installation of the management module agent is complicated and needs to change with the , making the O&M management of PCIe cards more complicated.
  • the embodiment of the present application provides a method, device and system for communicating with a PCIe device, generates a virtual network card based on Virtio technology, and implements the PCIe device ( For example, a PCIe card, the PCIe device is mounted on the first computing device) communicates with the second computing device.
  • the PCIe device generates a first virtual network card, and then the first computing device that mounts the PCIe device generates a second virtual network card corresponding to the first virtual network card according to the instruction information sent by the first computing device, and then the PCIe device passes through the first virtual network card.
  • the virtual network card, the second virtual network card on the first computing device, and the physical network card on the first computing device communicate with the second computing device.
  • the method for communicating with a PCIe device provided in the embodiment of this application is applied to the operation and maintenance management scene of the PCIe device, compared with the prior art described in Figure 1, in this application, there is no need to specifically add a physical network port on the PCIe device In this way, the operation and maintenance management cost of the PCIe device can be reduced, and correspondingly, the port resources of the switch can also be saved without adding physical network ports.
  • the method for communicating with a PCIe device provided by the embodiment of the present application does not need to deploy an operation and maintenance management module (such as the above-mentioned card) on the host (equivalent to the first computing device) and the PCIe device. management module) and the corresponding customized software, that is, the management module agent, so that the operation and maintenance management of PCIe devices can be realized more conveniently.
  • an operation and maintenance management module such as the above-mentioned card
  • the method for communicating with a PCIe device provided in the embodiment of the present application can realize communication with the PCIe device more conveniently on the basis of saving port resources.
  • this method can be applied to the single-host networking scenario shown in (a) in Figure 3, and can also be applied to In the scenario of multi-host networking shown in (b) in Figure 3, the PCIe device is schematically shown as a PCIe card in Figure 3, the first computing device is schematically shown as one or more hosts in Figure 3, and the second computing device is schematically shown as The management server in Figure 3.
  • the method for O&M management of the PCIe cards on each host is the same.
  • the PCIe devices in the embodiments of the present application are intelligent PCIe devices, and the PCIe devices may include hardware structures such as a processor, a network interface (such as EP), and a memory.
  • the PCIe devices may include hardware structures such as a processor, a network interface (such as EP), and a memory.
  • the processor (such as ARM core) of the PCIe device runs the corresponding software program code to form software function modules with different functions, for example, the business module (which can realize different business function logic) and the operation and maintenance management module in FIG. 4 .
  • the PCIe device has an operating system (such as a Linux system), and the operating system includes a kernel space (kernel space) and a user space (user space), the kernel space is the running space of the kernel of the operating system, and the user space is the user program. run space.
  • the business module and the operation and maintenance management module are formed by running the program in the user space, and the virtio (specifically, the driver program of virtio) is run in the kernel space to generate a virtual network device (virtio-NET), such as a virtual network card (vNIC ).
  • a virtual network device such as a virtual network card (vNIC ).
  • vNIC virtual network card
  • the first computing device in this embodiment of the present application may be a server or the like.
  • the first computing device may include hardware structures such as a processor, a network interface (such as RC), and a memory.
  • the processor of the first computing device runs corresponding software program codes to form software functional modules with different functions, for example, business applications in FIG. 5 and management modules (not shown in FIG. 5 ).
  • the program is run in the user space of the operating system of the first computing device to form a business application and a management module, and the business driver and virtio (specifically, the driver program of virtio) are run in the kernel space to generate a virtual network device (virtio- NET), such as a virtual network card.
  • a virtual network device virtio- NET
  • the first computing device usually comes with a virtio driver, and also runs network forwarding software in the kernel space, such as a bridge, which is usually also the software that comes with the first computing device.
  • the method for communicating with a PCIe device provided in the embodiment of the present application is described in detail, as shown in FIG. 6 , the method provided in the embodiment of the present application and The method for PCIe device communication may include step 601-step 604.
  • Step 601 the PCIe device generates a first virtual network card, and the PCIe device is mounted on the first computing device.
  • the PCIe device may include a DPU, and the PCIe device generates the first virtual network card based on the virtio technology.
  • the above step 601 is specifically implemented through step 6011 .
  • Step 6011 the PCIe device invokes the back-end driver (i.e. back end driver) program for generating the Virtio of the virtual network card in the PCIe device to generate the first virtual network card.
  • the back-end driver i.e. back end driver
  • the first virtual network card generated by the PCIe device is used for the PCIe device to communicate with other devices to transmit information, for example, for the PCIe device to communicate with the first computing device.
  • the first virtual network card generated by the PCIe device can be used for the operation and maintenance management module in the PCIe device to transmit the operation and maintenance management information of the PCIe device. It should be understood that the operation and maintenance management module does not perceive the network card Whether it is a virtual network card or a physical network card, that is, for the operation and maintenance management module, there is no difference between the first virtual network card and the physical network card.
  • Step 602 the PCIe device sends indication information to the first computing device.
  • the first computing device receives the indication information sent by the PCIe device.
  • the instruction information is used to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card.
  • the above indication information includes information indicating that the virtual network device generated in the PCIe device is a virtual network card
  • the indication information may be the device type information presented externally by the PCIe device specified in the PCIe protocol, including such as Device ID (device Identification), Vendor ID (supplier identification), Class Code (category symbol), Subsystem ID (subsystem identification), Subsystem Vendor ID (subsystem supplier identification), etc.
  • the PCIe device can configure a virtual end node (EP) in the PCIe device by running the Virtio backend driver, so as to send the above indication information to the first computing device through the end node, and accordingly, the first The computing device receives the indication information through the RC of the first computing device.
  • EP virtual end node
  • Step 603 the first computing device generates a second virtual network card.
  • the second virtual network card corresponds to the first virtual network card, that is, after the first computing device receives the indication information sent by the PCIe device, the first computing device can know that the virtual network device established by the PCIe device is a virtual network card, therefore, the first The computing device also generates a virtual network card according to the indication information, so that the first computing device and the PCIe device can communicate based on the first virtual network card and the second virtual network card.
  • step 603 is specifically implemented through step 6031 .
  • Step 6031 the first computing device calls the front-end driver (i.e. front end driver) program for generating the Virtio of the virtual network card in the first computing device to generate the second virtual network card.
  • the front-end driver i.e. front end driver
  • the front-end driver of Virtio and the back-end driver exist in pairs, the front-end driver of Virtio runs in the first computing device, and the back-end driver of Virtio runs in the PCIe device, and the two cooperate to generate the second virtual
  • the network card specifically, the PCIe device runs the back-end driver, which can prompt the PCIe device to send instruction information to the first computing device, so that the first computing device runs the back-end driver to generate the second virtual network card.
  • this embodiment of the present application does not limit the PCIe device to generate the first virtual network card and the PCIe device to send instruction information for generating the second virtual network card to the first computing device, and the first computing device generates the first virtual network card according to the instruction information.
  • the sequence of virtual network cards that is, in the embodiment of this application, step 601 can be executed first, and then step 602-step 603 can be executed, or step 602-step 603 can be executed first, and then step 601 can be executed, or step 601 and step 602 can be executed at the same time - step 603 .
  • the PCIe device may send instruction information to the first computing device to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card.
  • a virtual network card is a virtual network card to be generated by the PCIe device later.
  • FIG. 8 is a process in which the PCIe device interacts with the first computing device to generate the first virtual network card and the second virtual network card. The above steps can be further understood with reference to FIG. 8 .
  • Step 604 the PCIe device communicates with the second computing device through the first virtual network card, the second virtual network card on the first computing device, and the physical network card on the first computing device.
  • the first computing device is a transit device between the PCIe device and the second computing device.
  • the PCIe device can send information to the second computing device through the first computing device Or receive information from the second computing device.
  • the second computing device may send information to the PCIe device or receive information from the PCIe device through the first computing device.
  • step 604 may be specifically implemented through steps 6041 - 6043 .
  • Step 6041 the PCIe device establishes a first communication channel between the first virtual network card and the second virtual network card.
  • the PCIe device can be configured to establish the first communication channel between the first virtual network card and the second virtual network card. Specifically, the PCIe device sets the IP address of the first virtual network card as an IP address on the same network segment as the second virtual network card. For another example, the PCIe device configures the destination address and destination port of the data to be transmitted so that the data to be transmitted is transmitted along the first communication channel, which is equivalent to establishing the first communication channel between the first virtual network card and the second virtual network card.
  • the first virtual network card communicates directly with the second virtual network card, or communicates through an intermediate logical unit of a switching function, which is not limited in this embodiment of the present application.
  • Step 6042 the first computing device establishes a second communication channel between the physical network card on the first computing device and the second computing device.
  • the first computing device can perform related configurations to establish a second communication channel between the physical network card and the second computing device. For example, the first computing device configures the destination address and destination port of the data to be transmitted so that the data to be Communication channel transmission is equivalent to establishing a second communication channel between the physical network card and the second computing device.
  • Step 6043 the PCIe device communicates with the second computing device through the first communication channel and the second communication channel, and the first communication channel and the second communication channel communicate through the network forwarding device.
  • the above-mentioned network forwarding device may be a bridge device or a routing device in the form of software on the first computing device, or other devices with network connectivity functions, which is not limited in this embodiment of the present application.
  • the network bridge device may be the software that comes with the first computing device, and the network bridge device may communicate with communication channels belonging to different networks.
  • the above-mentioned first communication channel is between the first computing device and the PCIe device.
  • the communication channel of the communication network, the above-mentioned second communication channel is a communication channel belonging to the communication network between the first computing device and the second computing device, and the first communication channel and the second communication channel can be connected through the network bridge device.
  • the second virtual network card is based on the management network of the PCIe device, and the virtual network card created on the first computing device can be used based on the management network of the PCIe device.
  • the second virtual network card transmits information, that is, the second virtual network card is a network card belonging to the management network of the PCIe device, but not a network card belonging to the management network of the first computing device.
  • the first computing device can configure the network bridge device of the first computing device to open up the management network between the second virtual network card and the first computing device, that is, use the bridge device as a bridge to establish a second A communication connection between the virtual network card and the network bridge device, and establishing a communication connection between the network bridge device and the physical network card of the first computing device (the physical network card is a network card used for the communication between the first computing device and the second computing device), thereby Make the above-mentioned first communication channel communicate with the second communication channel.
  • the first computing device creates a network bridge device, such as running #brctl addbr br0, thereby creating a network bridge device named br0; then, adding the second virtual network card and the physical network card of the first computing device to br0, for example
  • the second virtual network card is marked as eth0, and the physical network card is marked as eth1.
  • the host can run #brctl addif eth0; #brctl addif eth1, so that eth0 and eth1 will be added to br0.
  • the second virtual network card and bridge device can be successfully established and establishing a communication connection between the network bridge device and the physical network card of the first computing device.
  • the PCIe device can pass through the first communication channel, The second communication channel communicates with the second computing device.
  • a first virtual network card is generated on the first computing device and the PCIe device based on Virtio technology, and then the first virtual The network card communicates with the second virtual network card on the first computing device and the physical network card on the first computing device communicates with the second computing device.
  • the method for communicating with a PCIe device provided in the embodiment of the present application does not need to specifically add a physical network port on the PCIe device, so that the number of PCIe devices can be reduced.
  • port resources of the switch (the switch is used to forward information between the PCIe device and the second computing device) can also be saved.
  • the method for communicating with the PCIe device provided in the embodiment of the present application does not need to deploy customized software corresponding to the PCIe device on the first computing device , so that communication with the PCIe device can be implemented more conveniently.
  • the method for communicating with a PCIe device provided in the embodiment of the present application can realize communication with the PCIe device more conveniently on the basis of saving port resources.
  • the method for communicating with a PCIe device provided in the embodiment of the present application can be applied to the operation and maintenance management scene of the PCIe device to realize the operation and maintenance management of the PCIe device, then the first computing device communicates with the PCIe device and the second computing device to transmit the PCIe device operation and maintenance management information.
  • the above-mentioned first computing device may be a host on which the PCIe device is mounted, and the second computing device may be a management server.
  • the communication channel (including the first communication channel and the second communication channel), based on the communication channel, the two can interact and transmit the operation and maintenance management information of the PCIe device, so as to realize, for example, business configuration, software upgrade, alarm reporting, certificate management, log Export and other operation and maintenance management functions.
  • the operation and maintenance management information of the PCIe device may include the alarm information generated by the PCIe device and/or the response message sent by the management server .
  • the process for the PCIe device to communicate with the management server to transmit the operation and maintenance management information specifically includes: the PCIe device reports alarm information to the first computing device through the first virtual network card, and correspondingly, the first computing device reports the alarm information to the first computing device through the second virtual network card.
  • the first virtual network card receives the alarm information; then, the first computing device reports the alarm information to the management server through the network bridge device on the first computing device and the physical network card on the first computing device, and accordingly, the management server passes the physical
  • the network card receives the alarm information from the first computing device; subsequently, the management server analyzes the alarm information of the PCIe device, generates a response message of the alarm information, and the response message includes an analysis result of analyzing the alarm information; and sends the response message
  • the first computing device receives the response message from the management server through the physical network card, and then the first computing device notifies the network bridge device of the first computing device, and the second virtual network card forwards the response message to the PCIe device,
  • the PCIe device receives the response message through the first virtual network card on the PCIe device.
  • the embodiment of the present application provides a PCIe device.
  • the functional modules of the PCIe device can be divided according to the above method example.
  • each functional module can be divided corresponding to each function, or two Or more than two functions are integrated in one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules. It should be noted that the division of modules in the embodiment of the present invention is schematic, and is only a logical function division, and there may be another division manner in actual implementation.
  • FIG. 11 shows a possible structural diagram of the PCIe device involved in the above embodiment.
  • the PCIe device includes a generation module 1101 and a communication module 1102 .
  • the generating module 1101 is configured to generate a first virtual network card
  • the PCIe device is mounted on the first computing device, for example, execute step 601 in the above method embodiment.
  • the communication module 1102 is configured to communicate with the second computing device through the first virtual network card, the second virtual network card on the first computing device, and the physical network card on the first computing device, wherein the second virtual network card is generated by the first computing device
  • the first computing device communicates with the second computing device through the physical network card, for example, execute step 604 in the above method embodiment.
  • the communication module 1102 includes a sending module 11021; the sending module 11021 is configured to send instruction information to the first computing device, where the instruction information is used to instruct the first computing device to generate a second virtual network card corresponding to the first virtual network card , for example, execute step 602 in the above method embodiment.
  • the generating module 1101 is specifically configured to call a Virtio backend driver for generating a virtual network card in the PCIe device to generate a first virtual network card, for example, execute step 6011 in the above method embodiment.
  • the PCIe device provided in the embodiment of the present application further includes a channel establishment module 1103; the channel establishment module 1103 is configured to establish a first communication channel between the first virtual network card and the second virtual network card, for example, to execute the above method embodiment In step 6041; the above-mentioned communication module 1102 is specifically used for the PCIe device to communicate with the second computing device through the first communication channel and the second communication channel, and the second communication channel is the physical network card established by the first computing device and the second computing device In the communication channel between the first communication channel and the second communication channel through the network bridge device, for example, execute step 6043 in the above method embodiment.
  • the channel establishment module 1103 is configured to establish a first communication channel between the first virtual network card and the second virtual network card, for example, to execute the above method embodiment In step 6041;
  • Each module of the above-mentioned PCIe device can also be used to perform other actions in the above-mentioned method embodiment. All relevant content of each step involved in the above-mentioned method embodiment can be referred to the function description of the corresponding functional module, and will not be repeated here.
  • FIG. 12 shows another possible structural diagram of the PCIe device involved in the above embodiment.
  • the PCIe device provided in the embodiment of the present application may include: a processing module 1201 and a communication module 1202 .
  • the processing module 1201 can be used to control and manage the actions of the PCIe device, for example, the processing module 1201 can be used to support the PCIe device to execute step 601 (including step 6011) and step 6041 in the above method embodiment, and/or use other processes in the techniques described herein.
  • the communication module 1202 may be used to support the PCIe device to communicate with other network entities, for example, to communicate with another device.
  • the communication module 1202 supports the PCIe device to perform steps 604 (including 6043) and 602 in the above method embodiments.
  • the PCIe device may further include a storage module 1203, configured to store program codes and data of the PCIe device.
  • the processing module 1201 may be a processor or a controller, and the above-mentioned processor may also be a combination that realizes computing functions, such as a combination of one or more microprocessors, a combination of DSP and a microprocessor, and the like.
  • the communication module 1202 may be a transceiver, a transceiver circuit, or a communication interface.
  • the storage module 1203 may be a memory.
  • the processing module 1201 is a processor
  • the communication module 1202 is a transceiver
  • the storage module 1203 is a memory
  • the processor, the transceiver, and the memory may be connected through a bus.
  • the bus may be a peripheral component interconnect standard (peripheral component interconnect, PCI) bus or an extended industry standard architecture (extended Industry standard architecture, EISA) bus or the like.
  • PCI peripheral component interconnect
  • EISA Extended Industry standard architecture
  • the embodiment of the present application further provides a communication system, including a PCIe device 1301 , a first computing device 1302 , and a second computing device 1303 .
  • the PCIe device 1301 is used to generate a first virtual network card, and the PCIe device 1301 is mounted on the first computing device 1302; the first computing device 1302 is used to generate a second virtual network card, and the second virtual network card corresponds to the first virtual network card
  • the PCIe device 1301 is also used to communicate with the second computing device 1303 through the first virtual network card, the second virtual network card and the physical network card on the first computing device 1302, and the first computing device 1302 communicates with the second computing device 1303 through the physical network card .
  • the PCIe device 1301 is further configured to send indication information to the first computing device 1302, where the indication information is used to instruct the first computing device 1302 to generate a second virtual network card corresponding to the first virtual network card.
  • the PCIe device 1301 is specifically configured to call a Virtio backend driver in the PCIe device 1301 for generating a virtual network card to generate the first virtual network card.
  • the first computing device 1302 is specifically configured to invoke a front-end driver program of Virtio used to generate a virtual network card in the first computing device 1302 to generate a second virtual network card.
  • the PCIe device 1301 is specifically configured to establish the first communication channel between the first virtual network card and the second virtual network card; the first computing device 1302 is specifically used to establish the second communication channel between the physical network card and the second computing device 1303.
  • all or part of them may be implemented by software, hardware, firmware or any combination thereof.
  • a software program it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on the computer, all or part of the processes or functions according to the embodiments of the present application will be generated.
  • the computer can be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transferred from a website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) to another website site, computer, server or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device including a server, a data center, and the like integrated with one or more available media.
  • the available medium may be a magnetic medium (for example, a floppy disk, a magnetic disk, a magnetic tape), an optical medium (for example, a digital video disc (digital video disc, DVD)), or a semiconductor medium (for example, a solid state drive (solid state drives, SSD)), etc. .
  • a magnetic medium for example, a floppy disk, a magnetic disk, a magnetic tape
  • an optical medium for example, a digital video disc (digital video disc, DVD)
  • a semiconductor medium for example, a solid state drive (solid state drives, SSD)
  • the disclosed system, device and method can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the modules or units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be Incorporation may either be integrated into another system, or some features may be omitted, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units.
  • the integrated unit is realized in the form of a software function unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or part of the contribution to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , including several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage medium includes: flash memory, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk, and other various media capable of storing program codes.

Abstract

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

Description

一种与PCIe设备通信的方法、装置及系统
本申请要求于2021年10月14日提交国家知识产权局、申请号为202111195590.4、申请名称为“一种运维管理通道提供方法”的中国专利申请的优先权,以及于2021年12月27日提交国家知识产权局、申请号为202111616809.3、申请名称为“一种与PCIe设备通信的方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种与PCIe设备通信的方法、装置及系统。
背景技术
随着技术的发展,外围部件互联总线(peripheral component interconnect express,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卡),例如数据处理单元(data processing 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-end driver,前端驱动与后端驱动配合可以生成虚拟化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中的NIC1)与业务平面交互,应理解,业务平面可以是由交换机组网的网络;主机上的管理模块通过物理网卡(图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)和用户空间(user space),内核空间是操作系统的内核的运行空间,用户空间是用户程序的运行空间。本申请实施例中,在用户空间中运行程序形成业务模块和运维管理模块,在内核空间中运行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;#brctl addif 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为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended Industry standard architecture,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。
PCT/CN2022/099919 2021-10-14 2022-06-20 一种与PCIe设备通信的方法、装置及系统 WO2023060928A1 (zh)

Applications Claiming Priority (4)

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

Publications (1)

Publication Number Publication Date
WO2023060928A1 true WO2023060928A1 (zh) 2023-04-20

Family

ID=85966820

Family Applications (1)

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

Country Status (2)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645873A (zh) * 2008-08-07 2010-02-10 联想(北京)有限公司 一种计算机以及虚拟机环境中实现网络隔离的方法
CN104202195A (zh) * 2014-09-10 2014-12-10 华为技术有限公司 服务器统一通信的方法、基板管理控制器和服务器
US20150121137A1 (en) * 2010-11-18 2015-04-30 Nimble Storage, Inc. Storage device interface and methods for using same
CN112698942A (zh) * 2020-12-29 2021-04-23 杭州海康威视数字技术股份有限公司 一种人工智能服务系统、主控装置和从控装置
CN113032314A (zh) * 2021-03-25 2021-06-25 北京睿芯高通量科技有限公司 一种跨平台辅助pcie链路训练的系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645873A (zh) * 2008-08-07 2010-02-10 联想(北京)有限公司 一种计算机以及虚拟机环境中实现网络隔离的方法
US20150121137A1 (en) * 2010-11-18 2015-04-30 Nimble Storage, Inc. Storage device interface and methods for using same
CN104202195A (zh) * 2014-09-10 2014-12-10 华为技术有限公司 服务器统一通信的方法、基板管理控制器和服务器
CN112698942A (zh) * 2020-12-29 2021-04-23 杭州海康威视数字技术股份有限公司 一种人工智能服务系统、主控装置和从控装置
CN113032314A (zh) * 2021-03-25 2021-06-25 北京睿芯高通量科技有限公司 一种跨平台辅助pcie链路训练的系统及方法

Also Published As

Publication number Publication date
CN115982081A (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US10986171B2 (en) Method for unified communication of server, baseboard management controller, and server
US9152592B2 (en) Universal PCI express port
US9678912B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
US8677023B2 (en) High availability and I/O aggregation for server environments
US8645952B2 (en) Method for providing location independent dynamic port mirroring on distributed virtual switches
US9031081B2 (en) Method and system for switching in a virtualized platform
CN109302466B (zh) 数据处理方法、相关设备及计算机存储介质
EP1697850A1 (en) Managing transmissions between devices
US9197490B2 (en) System and method for providing remote management of a switching device
US9654421B2 (en) Providing real-time interrupts over ethernet
WO2014201623A1 (zh) 用于数据传输的方法、装置和系统以及物理网卡
US8228913B2 (en) Implementing system to system communication in a switchless non-IB compliant environment using InfiniBand multicast facilities
WO2023060928A1 (zh) 一种与PCIe设备通信的方法、装置及系统
US20050125523A1 (en) Methodology for remote HBA management using message encapsulation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22879876

Country of ref document: EP

Kind code of ref document: A1