Data transmission methods, devices, equipment, and storage media

By offloading control and communication assemblies to a DPU, the method improves data transmission efficiency in virtual machine systems by reducing CPU resource consumption and optimizing communication protocols, thus enhancing overall system performance.

JP7832265B2Active Publication Date: 2026-03-17BEIJING VOLCANO ENGINE TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-08-09
Publication Date
2026-03-17

Smart Images

  • Figure 0007832265000001
    Figure 0007832265000001
  • Figure 0007832265000002
    Figure 0007832265000002
  • Figure 0007832265000003
    Figure 0007832265000003
Patent Text Reader

Abstract

To provide a data transmission method.SOLUTION: A method includes the steps of: generating, in response to a control instruction assembly in a DPU receiving a configuration request for at least one virtual container, a container operation instruction corresponding to the configuration request through the control instruction assembly, and transmitting the container operation instruction to the communication assembly in the DPU; converting the container operation instruction into communication data conforming to a communication protocol corresponding to the communication assembly through the communication assembly, and forwarding the communication data to a container control assembly in a virtual machine; determining control operation corresponding to the communication data through the container control assembly, and performing the control operation corresponding to the communication data on the at least one virtual container. The control instruction assembly and the communication assembly are installed in the DPU, the data transmission will not occupy the CPU consumption in the server, thereby improving data transmission efficiency.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the technical field of virtualization, and particularly to data transmission methods, apparatuses, devices, and storage media.

Background Art

[0002] With the development of virtualization technology, multiple virtual machines can be deployed on one server. Moreover, the system configuration information of different virtual machines may be different, and the number of virtual containers included may also be different. In order to improve the flexibility of the system configuration information of virtual machines, the number of virtual containers in the virtual machines can be further adjusted.

[0003] In the prior art, a container control assembly can be installed in a virtual machine, and a container operation instruction can be sent to the container control assembly. The container control assembly receives and executes the container operation instruction to complete the adjustment of the number of containers in the virtual machine.

[0004] However, the inventor has discovered that the prior art has at least the following technical problems. For each virtual machine, the container operation instructions sent to the container control assembly in the virtual machine all occupy the CPU resources of the server. Therefore, when there are many container operation instructions, the consumption of CPU resources increases, the speed at which the server transmits container operation instructions decreases, and the data transmission efficiency becomes low.

Summary of the Invention

Means for Solving the Problems

[0005] Embodiments of the present disclosure provide a data transmission method, apparatus, device, and storage medium that can reduce the consumption of CPU resources and improve data transmission efficiency.

[0006] In the first aspect, an embodiment of the present disclosure provides a data transmission method, which is applied to a cloud service system including a server and a data processing unit (DPU), wherein a virtual machine including a container control assembly and a plurality of virtual containers is deployed on the server, and the method is: The steps include: a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU; The steps include: converting the container operation command via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and transferring the communication data to the container control assembly in the virtual machine; The steps include determining a control operation corresponding to the communication data via the container control assembly and performing the control operation on the at least one virtual container.

[0007] In a second aspect, an embodiment of the present disclosure provides a data transmission device, which is applied to a cloud service system including a server and a data processing unit (DPU), wherein the server is equipped with a virtual machine including a container control assembly and a plurality of virtual containers, and the device is A generation module for responding to a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU, A conversion module for converting container operation commands via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and for transferring the communication data to a container control assembly in a virtual machine, The system includes an execution module for determining a control operation corresponding to the communication data via the container control assembly and for executing the control operation on at least one virtual container.

[0008] In a third aspect, embodiments of the present disclosure provide electronic devices. The system includes a processor and a memory that is communicated with the processor, The aforementioned memory stores computer execution instructions, The processor executes computer execution instructions stored in the memory to realize the data transmission method described in the first embodiment.

[0009] In a fourth aspect, an embodiment of the present disclosure provides a computer-readable storage medium in which computer execution instructions are stored, and when a processor executes the computer execution instructions, the data transmission method described in the first aspect is realized.

[0010] In a fifth aspect, an embodiment of the present disclosure provides a computer program product comprising a computer program that implements the data transmission method described in the first aspect when the computer program is executed by a processor.

[0011] This embodiment provides a data transmission method, apparatus, device, and storage medium, the method comprising the steps of: responding to a control instruction assembly in a DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU; converting the container operation instruction via the communication assembly into communication data conforming to a communication protocol corresponding to the communication assembly, and transferring the communication data to a container control assembly in a virtual machine; and determining a control operation corresponding to the communication data via the container control assembly and executing the control operation for at least one virtual container. In the embodiment of this application, by installing a control instruction assembly and a communication assembly in a DPU, a container operation instruction can be generated via the control instruction assembly and transmitted to a virtual machine via the communication assembly. Furthermore, since the control instruction assembly and the communication assembly are installed in a DPU and do not occupy CPU consumption in the server, and data transmission is not affected by CPU consumption, data transmission efficiency can be improved. [Brief explanation of the drawing]

[0012] To more clearly illustrate the embodiments of this disclosure or the technical solutions in the prior art, the drawings that may be used in the description of the embodiments or the prior art are briefly described below, and as will be apparent, the drawings in the following description are some embodiments of this disclosure, and those skilled in the art can obtain other drawings based on these without requiring any creative work. [Figure 1] Figure 1 is a schematic diagram of the structure of a cloud service system provided by an embodiment of this disclosure. [Figure 2] Figure 2 is a flowchart of the data transmission method provided in the embodiment of this disclosure. [Figure 3] Figure 3 is a schematic diagram of a data transmission method provided in an embodiment of this disclosure. [Figure 4]Figure 4 is a flowchart of another data transmission method provided in the embodiments of this disclosure. [Figure 5] Figure 5 is a structural block diagram of a data transmission device provided in an embodiment of this disclosure. [Figure 6] Figure 6 is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this disclosure. [Modes for carrying out the invention]

[0013] To clarify the purpose, technical solutions and advantages of the embodiments of this disclosure, the technical solutions of the embodiments of this disclosure will be described clearly and completely below with reference to the drawings of the embodiments of this disclosure. It will be obvious that the embodiments described are not all embodiments, but only some embodiments of this disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without requiring any creative work are all within the scope of this disclosure.

[0014] Furthermore, the user information (including, but not limited to, the user's device information and personal information) and data (including, but not limited to, data for analysis, stored data, displayed data, etc.) relating to this application are all information and data authorized by the user or fully authorized by each party, and the collection, use, and processing of the relevant data must comply with applicable laws, regulations, and standards, and corresponding operational entries must be provided for the user to choose to authorize or deny.

[0015] With advancements in virtualization technology, it is possible to deploy multiple virtual machines on a single server. Furthermore, the system configuration information of different virtual machines may differ, and the number of virtual containers they contain may also differ. To further improve the flexibility of the system configuration information of virtual machines, the number of virtual containers within a virtual machine can be adjusted.

[0016] In the prior art, a container control assembly can be installed in a virtual machine, and container operation instructions can be sent to the container control assembly. The container control assembly receives and executes the container operation instructions to complete the adjustment of the number of containers in the virtual machine. However, for each virtual machine, all the container operation instructions sent to the container control assembly in the virtual machine occupy the CPU (Central Processing Unit) resources of the server. Therefore, when there are many container operation instructions, the consumption of CPU resources increases, the speed at which the server transmits container operation instructions decreases, and the data transmission efficiency becomes low.

[0017] As can be seen from the above, how to reduce the consumption of CPU resources and improve the data transmission efficiency is an urgent problem to be solved currently.

[0018] In the prior art, the control instruction assembly for generating container control instructions is deployed on the CPU of the server. Therefore, in the process of generating container control instructions by the control instruction assembly, it occupies CPU resources, increasing the consumption of CPU resources. In addition, the control instruction assembly further needs to transmit the container control instructions to the container control assembly and execute the container control instructions through the container control assembly. Here, since the transmission process of the container control instructions also occupies CPU resources, the consumption of CPU resources further increases.

[0019] To reduce the consumption of CPU resources, a DPU (Data Processing Unit) is deployed in the cloud service system, and some applications on the virtual machine are offloaded to the DPU, so as to reduce the consumption of the CPU of the server, improve the utilization efficiency of the server, reduce the energy consumption of the server, and bring more cost benefits to cloud service providers.

[0020] In an embodiment of the present disclosure, control instruction assemblies of a plurality of virtual containers (applications on the original virtual machine) can be offloaded to the DPU and become applications on the DPU after offloading. After offloading, since it is necessary to transmit the container control instructions generated by the control instruction assembly from the DPU to the virtual machine, it is necessary to establish communication between the virtual machine and the DPU.

[0021] Before offloading (i.e., in a non-DPU scenario), since all instruction transfer operations between different assemblies are completed in the same operating system on the same physical machine, mutual communication can be directly performed through the interface provided by the operating system.

[0022] However, after offloading (i.e., in a DPU scenario), due to the offloading method, the original execution environment of the same type of operating system is divided into environments of different heterogeneous operating systems, and at this time, direct communication through the interface provided by the operating system is not possible. Therefore, after offloading the control instruction assembly to the DPU, how to establish communication between the virtual machine and the DPU is a technical problem that must be solved.

[0023] To solve the above problems, this embodiment further provides the following technical concept: A control instruction assembly and a communication assembly are installed in a DPU (Data Processing Unit), and communication between the virtual machine and the DPU is established via the communication assembly. The specific steps may include first, the control instruction assembly in the DPU receives a configuration request for at least one virtual container, generates a container operation instruction corresponding to the configuration request via the control instruction assembly, and sends the container operation instruction to the communication assembly in the DPU; second, the communication assembly in the DPU converts the container operation instruction into communication data conforming to the communication protocol corresponding to the communication assembly, and transfers the converted communication data to the container control assembly in the virtual machine; and finally, the container control assembly determines a control operation corresponding to the communication data and executes the control operation for at least one virtual container.

[0024] By installing control instruction assemblies and communication assemblies within the DPU, container operation instructions can be generated via the control instruction assembly and sent to virtual machines via the communication assembly. Furthermore, since the control instruction assembly and communication assembly are installed within the DPU and do not occupy CPU resources within the server, they are not affected by CPU consumption, thereby improving data transmission efficiency.

[0025] The following interpretations describe the application scenarios of the embodiments of this disclosure.

[0026] The data transmission method provided in the embodiments of this disclosure can be applied to data transmission scenarios between a server and a DPU in a cloud service system. The information between the server and the DPU may be container operation instructions for multiple containers in a virtual machine deployed on the server. Figure 1 is a schematic diagram of the structure of a cloud service system provided in the embodiments of this disclosure. As shown in Figure 1, the cloud service system includes a server 101 and a data processing unit DPU 102. A virtual machine containing a container control assembly and multiple virtual containers is deployed on the server 101. A control instruction assembly is installed on the DPU 102, and the control instruction assembly can generate container control instructions for at least one virtual container. After receiving a container control instruction, the container control assembly on the virtual machine deployed on the server 101 can adjust the number of at least one virtual container based on the container control instruction. During the execution of a container control instruction, it is necessary to establish communication between the DPU 102 and the server 101 and transmit the container control instruction generated by the control instruction assembly on the DPU 102 to the container control assembly on the virtual machine deployed on the server 101. To reduce the resource consumption of server 101, this invention proposes deploying a communication assembly on DPU 102 and establishing communication between DPU 102 and server 101 using the communication assembly on DPU 102. In this way, the transmission process of container control instructions is not affected by the server's CPU consumption, thereby improving the transmission efficiency of information (i.e., container control instructions). The data transmission method provided by the embodiments of this disclosure will be described in detail below using detailed embodiments.

[0027] Figure 2 is a flowchart of a data transmission method provided in an embodiment of the present disclosure. The data transmission method can be applied to a cloud service system including a server and a data processing unit (DPU), wherein a virtual machine containing a container control assembly and multiple virtual containers is deployed on the server. As shown in Figure 2, the method includes S201, S202, and S203.

[0028] S201, in response to the control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generates a container operation instruction corresponding to the configuration request via the control instruction assembly and transmits the container operation instruction to the communication assembly in the DPU.

[0029] In embodiments of this disclosure, a virtual container configuration request may be a request to adjust the number of virtual containers, or a request to adjust the configuration information of a virtual container. In some embodiments, a virtual container configuration request may be a configuration request to increase the number of multiple virtual containers in a virtual machine, or a configuration request to decrease the number of multiple virtual containers in a virtual machine. In other embodiments, a virtual container configuration request may be a request to increase the execution memory of a virtual container, or a request to decrease the execution memory of a virtual container.

[0030] Selectively, the server can generate a configuration request for at least one virtual container and send the configuration request to the control instruction assembly in the DPU. In some embodiments, the generation of a configuration request may be triggered by a user using the virtual machine. For example, if a user needs to adjust the system configuration of a virtual machine, they can send an adjustment request to the server, which generates a configuration request and sends it to the control instruction assembly in the DPU. For example, if a user increases the number of virtual containers in service A via a terminal, the terminal can send an adjustment request to the server, which generates a configuration request to increase the number of virtual containers.

[0031] In another embodiment, the generation of configuration requests may be automatically triggered by the server. For example, if the number of requests processed by a virtual machine increases, the execution load on the virtual machine increases, and at this time, the server can automatically trigger the generation of a configuration request to increase the number of virtual containers. Alternatively, if the number of requests processed by a virtual machine decreases, the execution load on the virtual machine decreases, and at this time, the server can automatically trigger the generation of a configuration request to decrease the number of virtual containers.

[0032] Selectively, a control instruction assembly within the DPU may be a control plane assembly for at least one virtual container. Exemplarily, the control plane assembly may be a containerd assembly, and container operation instructions for at least one virtual container can be generated via the containerd assembly.

[0033] In the embodiments of this disclosure, the communication assembly within the DPU may be a communication assembly conforming to any communication protocol. Selectively, the communication assembly may take the form of a communication assembly conforming to the virtio-vsock communication protocol, a communication assembly conforming to the IP communication protocol, or a communication assembly conforming to the TCP communication protocol.

[0034] Furthermore, the communication assembly of the virtio-vsock communication protocol provides a socket operation interface to user applications (e.g., the containerd assembly), and can complete the interaction between the virtual machine and the host via the virito protocol. Compared to communication protocols such as TCP / IP, the virito protocol simplifies the contents of the protocol stack and the difficulty of implementation, improving the communication efficiency between the virtual machine and the host.

[0035] Here, both the control instruction assembly and the communication assembly are offloaded to the DPU, allowing the heterogeneous computing capabilities of the new DPU hardware to be fully utilized, thereby reducing the server's CPU consumption.

[0036] S202 converts container operation commands via the communication assembly into communication data that conforms to the communication protocol corresponding to the communication assembly, and then transfers the communication data to the container control assembly within the virtual machine.

[0037] In embodiments of the present disclosure, a communication protocol can be determined via interface information corresponding to a communication assembly. Accordingly, the step of converting a container operation command via a communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly includes the steps of obtaining interface information corresponding to the communication assembly, determining a communication protocol corresponding to the interface information, and converting a container operation command via a communication assembly into communication data conforming to the communication protocol.

[0038] Selectively, the communication assembly is a vsock-user assembly conforming to the virtio-vsock communication protocol. Accordingly, the steps of obtaining interface information corresponding to the communication assembly and determining the communication protocol corresponding to the interface information include obtaining the interface information corresponding to the vsock-user assembly as a Unix socket interface, and determining, based on the Unix socket interface and the correspondence between the stored interface information and the communication protocol, that the communication protocol corresponding to the Unix socket interface is the virtio-vsock communication protocol.

[0039] In embodiments of this disclosure, communication data can be transferred to a container control assembly within a virtual machine via a DMA (Direct Memory Access) driver. The DMA driver corresponds to a network cable that transmits communication data. Selectively, as shown in Figure 3, a direct memory access DMA driver backend is installed on the DPU, and a DMA driver frontend that transmits data with the DMA driver backend is installed on the server. Accordingly, the step of transferring communication data to a container control assembly within a virtual machine includes the steps of: transmitting the communication data to the DMA driver backend via the communication assembly; responding to the completion of the transmission of the communication data, sending a transmission completion command to the DMA driver backend via the communication assembly; the DMA driver backend responding to receiving the transmission completion command, transmitting the communication data to the DMA driver frontend via the DMA driver backend; and transferring the communication data to a container control assembly within a virtual machine via the DMA driver frontend. Exemplarily, as shown in Figure 3, the communication assembly is a vsock-user assembly. A virtual container can be represented by a container. A container control assembly can be represented by a kata-agent.

[0040] In this process, the communication assembly (e.g., the vsock-user assembly) can be executed on the DPU as a separate process. It receives container operation instructions sent by the control instruction assembly and converts these instructions into communication data that conforms to the communication protocol corresponding to the communication assembly. Furthermore, by sending a transmission completion instruction to the DMA driver backend, it can operate the DMA driver backend, transmit the communication data to the DMA driver frontend, and enable reading, writing, and copying of the communication data.

[0041] S203 determines a control operation corresponding to the communication data via the container control assembly and executes the control operation for at least one virtual container.

[0042] In the embodiments of this disclosure, it is necessary to analyze communication data via a container control assembly in order to determine the specific operation content of a container operation command. Accordingly, this step includes analyzing communication data via a container control assembly to obtain container coordination information corresponding to a container operation command, determining a control operation corresponding to the container coordination information, and executing the control operation corresponding to the container coordination information for at least one virtual container.

[0043] Selectively, container adjustment information includes one or more of the following: an increase in the number of virtual containers, a decrease in the number of virtual containers, an increase in the execution memory of at least one virtual container, a decrease in the execution memory of at least one virtual container, an increase in the storage space of at least one virtual container, or a decrease in the storage space of at least one virtual container. Of these, the container adjustment information may also include further adjusted numerical information.

[0044] For example, the container adjustment information corresponding to a container operation command is an increase in the number of virtual containers, with an increase of 1, and accordingly, the control operation corresponding to the container adjustment information is to increase the number of virtual containers by 1.

[0045] For example, the container adjustment information corresponding to a container operation command is a decrease in the number of virtual containers, with a decrease of 2. Accordingly, the control operation corresponding to the container adjustment information is to reduce 2 virtual containers.

[0046] The data transmission method provided by this embodiment is as follows: A control instruction assembly in the DPU receives a configuration request for at least one virtual container, generates a container operation instruction corresponding to the configuration request via the control instruction assembly, and sends the container operation instruction to a communication assembly in the DPU. The communication assembly converts the container operation instruction into communication data conforming to the communication protocol corresponding to the communication assembly, and transfers the communication data to a container control assembly in the virtual machine. The container control assembly determines the control operation corresponding to the communication data and executes the control operation for at least one virtual container. In this embodiment, a control instruction assembly and a communication assembly are installed in the DPU, a container operation instruction can be generated via the control instruction assembly, and the container operation instruction can be sent to the virtual machine via the communication assembly. Furthermore, because the control instruction assembly and the communication assembly are installed in the DPU, they do not occupy CPU resources in the server, data transmission is not affected by CPU consumption, and thus data transmission efficiency can be improved.

[0047] In one embodiment of the present disclosure, the first operating system installed on the DPU and the second operating system installed on the server may be different, thereby enabling the offloading of both the control instruction assembly and the communication assembly to the DPU. Accordingly, as shown in Figure 4, the step of installing the first operating system on the DPU and installing the installation package corresponding to the communication assembly in the first operating system is included in step S401 prior to the step of sending the container operation instruction to the communication assembly in the DPU.

[0048] Furthermore, interface information corresponding to a communication assembly can be set as fixed interface information for which changes to the interface attributes are prohibited. For example, if the communication assembly is a vsock-user assembly, and the interface information corresponding to this communication assembly is a Unix socket interface, then the Unix socket interface can be set as a fixed interface for which changes to the interface attributes are prohibited.

[0049] In the embodiments of this disclosure, by setting the interface information corresponding to the communication assembly as fixed interface information, the stability of the user interface can be maintained, thereby further improving the data transmission efficiency.

[0050] Figure 5 is a structural block diagram of a data transmission device provided in an embodiment of the present disclosure. The data transmission device is applied to a cloud service system including a server and a data processing unit (DPU), the server being deployed with a virtual machine including a container control assembly and a plurality of virtual containers, and the device including a generation module 501, a conversion module 502 and an execution module 503. The generation module 501 is used to respond to a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generate a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmit the container operation instruction to the communication assembly in the DPU. The conversion module 502 is used to convert the container operation command via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and to transfer the communication data to the container control assembly in the virtual machine. The execution module 503 is used to determine a control operation corresponding to the communication data via the container control assembly and to execute the control operation on at least one virtual container.

[0051] According to one or more embodiments of the present disclosure, the steps by which the conversion module 502 converts the container operation command via the communication assembly into communication data conforming to a communication protocol corresponding to the communication assembly include, specifically, the steps of: obtaining interface information corresponding to the communication assembly and determining a communication protocol corresponding to the interface information; and converting the container operation command via the communication assembly into communication data conforming to the communication protocol.

[0052] According to one or more embodiments of the present disclosure, the communication assembly is a vsock-user assembly conforming to the virtio-vsock communication protocol, and accordingly, the steps of the conversion module 502 to acquire interface information corresponding to the communication assembly and determine the communication protocol corresponding to the interface information specifically include the steps of acquiring the interface information corresponding to the vsock-user assembly as a Unix socket interface, and determining, based on the Unix socket interface and the correspondence between the stored interface information and the communication protocol, that the communication protocol corresponding to the Unix socket interface is the virtio-vsock communication protocol.

[0053] According to one or more embodiments of the present disclosure, a memory access DMA driver backend is installed directly on the DPU, and a DMA driver frontend is installed on the server to transmit data with the DMA driver backend. Accordingly, the steps of the conversion module 502 transferring the communication data to a container control assembly in the virtual machine include, specifically, transmitting the communication data to the DMA driver backend via the communication assembly, responding to the completion of the transmission of the communication data by sending a transmission completion command to the DMA driver backend via the communication assembly, and the DMA driver backend responding to receiving the transmission completion command by transmitting the communication data to the DMA driver frontend via the DMA driver backend, and transferring the communication data to a container control assembly in the virtual machine via the DMA driver frontend.

[0054] According to one or more embodiments of the present disclosure, the steps of the execution module 503 determining a control operation corresponding to the communication data via the container control assembly and executing the control operation on at least one virtual container include, specifically, the steps of analyzing the communication data via the container control assembly to obtain container adjustment information corresponding to the container operation command, and determining a control operation corresponding to the container adjustment information and executing the control operation corresponding to the container adjustment information on at least one virtual container, wherein the container adjustment information includes one or more of the following: an increase in the number of virtual containers, a decrease in the number of virtual containers, an increase in the execution memory of at least one virtual container, a decrease in the execution memory of at least one virtual container, an increase in the storage space of at least one virtual container, and a decrease in the storage space of at least one virtual container.

[0055] According to one or more embodiments of the present disclosure, the first operating system installed on the DPU differs from the second operating system installed on the server, and accordingly, the device further includes an installation module for installing the first operating system on the DPU and installing an installation package corresponding to the communication assembly on the first operating system.

[0056] According to one or more embodiments of the present disclosure, the interface information corresponding to the communication assembly is fixed interface information in which changes to the interface attributes are prohibited.

[0057] According to one or more embodiments of the present disclosure, the communication assembly uses one of the following forms: a communication assembly conforming to the virtio-vsock communication protocol, a communication assembly conforming to the IP communication protocol, or a communication assembly conforming to the TCP communication protocol.

[0058] The generation module 501, the conversion module 502, and the execution module 503 are connected in order. The data transmission device provided in this embodiment can implement the technical solutions of the above-described method embodiment, and its implementation principle and technical effects are the same; therefore, a detailed explanation of this embodiment is omitted here.

[0059] Figure 6 is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present disclosure. Referring to Figure 6, the electronic device 600 may be a terminal device or a server. Terminal devices include, but are not limited to, mobile devices such as mobile phones, laptop computers, digital broadcast receivers, personal digital assistants (PDAs), tablet PCs (Portable Android Devices, PADs), portable media players (PMPs), and in-vehicle terminals (e.g., in-vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. The electronic device shown in Figure 6 is merely an example and does not impose any limitations on the functions and scope of use of the embodiments of the present disclosure.

[0060] As shown in Figure 6, the electronic device 600 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 601, which can perform various appropriate operations and processes based on a program stored in a read-only memory (ROM) 602 or a program loaded from a storage device 608 into a random access memory (RAM) 603. The RAM 603 further stores various programs and data necessary for the operation of the electronic device 600. The processing unit 601, ROM 602, and RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.

[0061] Typically, input devices 606, including touch panels, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc., output devices 607, including liquid crystal displays (LCDs), speakers, oscillators, etc., storage devices 608, including tapes, hard disks, etc., and communication devices 609 can be connected to the I / O interface 605. The communication devices 609 enable the electronic device 600 to communicate wirelessly or via wired connections with other devices to exchange data. Figure 6 shows an electronic device 600 with various devices, but it should be understood that it is not necessary to implement or include all the devices shown. Instead, more or fewer devices may be implemented or included.

[0062] In particular, according to embodiments of the present disclosure, the process described with reference to the flowchart above can be implemented as a computer software program. For example, embodiments of the present disclosure include a computer program product which includes a computer program carried on a computer-readable medium, the computer program which includes program code for performing the method shown in the flowchart. In such embodiments, the computer program may be downloaded and installed from a network via a communication device 609, installed from a storage device 608, or installed from a ROM 602. When the computer program is executed by the processing unit 601, it performs the functions limited to the method of embodiments of the present disclosure.

[0063] The computer-readable medium in this disclosure may be a computer-readable signal medium, a computer-readable storage medium, or any combination of both. The computer-readable storage medium may be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or any combination thereof. More specific examples of computer-readable storage mediums may include, but are not limited to, an electrical connection having one or more wires, a portable computer magnetic disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact magnetic disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this disclosure, the computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, apparatus or device. In this disclosure, the computer-readable signal medium may contain a data signal propagated in the baseband or as part of a carrier wave, which carries computer-readable program code. Such propagated data signals may include, but are not limited to, electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, and the computer-readable signal medium may transmit, propagate, or transmit programs for use by or in combination with instruction execution systems, apparatus, or devices. The program code contained in the computer-readable medium may be transmitted by any suitable medium, including, but not limited to, wires, optical cables, RF (radio frequency), or any suitable combination thereof.

[0064] The computer-readable medium described above may be included in the electronic device described above, or it may exist independently and not be deployed in the electronic device.

[0065] The computer-readable medium contains one or more programs that, when executed by the electronic device, cause the electronic device to perform the method described in the above embodiment.

[0066] Computer program code for performing the operations of the Disclosure can be written in one or more programming languages ​​or a combination thereof, and such programming languages ​​include object-oriented programming languages—e.g., Java, Smalltalk, C++, and moreover, ordinary procedural programming languages—e.g., the "C" language, or similar programming languages. The program code may run entirely on the user's computer, partially on the user's computer, run as a standalone software package, run partly on the user's computer and partly on a remote computer, or run entirely on a remote computer or server. Where a remote computer is mentioned, the remote computer may be connected to the user's computer via any type of network—a Local Area Network (LAN) or a Wide Area Network (WAN), or it may be connected to an external computer (e.g., connected via the Internet using an Internet Service Provider).

[0067] The flowcharts and block diagrams in the drawings illustrate the implementable system architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, program section, or portion of code, which includes one or more executable instructions for implementing a given logical function. However, in some alternative implementations, the functions shown in the blocks may occur in an order different from that shown in the drawings. For example, two consecutively shown blocks may actually be executed almost in parallel or in reverse order, depending on their related functions. However, each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented in a dedicated hardware-based system for performing a given function or operation, or in a combination of dedicated hardware and computer instructions.

[0068] The units described and referred to in the embodiments of this disclosure may be implemented in software or in hardware. The names of the units do not in some cases constitute a limitation on the unit itself; for example, the first acquisition unit may be further described as "a unit for acquiring at least two Internet Protocol addresses."

[0069] In this specification, the functions described above can be performed by at least partially one or more hardware logic components. For example, exemplary types of hardware logic components that can be used include, but are not limited to, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standards (ASSPs), systems-on-a-chip (SOCs), complex-programmable logic devices (CPLDs), and the like.

[0070] In the context of this disclosure, a machine-readable medium may be a tangible medium that contains or stores a program for use by or in combination with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the above. More specific examples of machine-readable storage media may include one or more wire-based electrical connections, portable computer magnetic disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact magnetic disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above.

[0071] In the first aspect, according to one or more embodiments of the present disclosure, a data transmission method is provided which is applied to a cloud service system including a server and a data processing unit (DPU), wherein the server is deployed with a virtual machine including a container control assembly and a plurality of virtual containers, and the method, The steps include: a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU; The steps include: converting the container operation command via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and transferring the communication data to the container control assembly in the virtual machine; The steps include determining a control operation corresponding to the communication data via the container control assembly and performing the control operation on the at least one virtual container.

[0072] According to one or more embodiments of the present disclosure, the step of converting the container operation command via the communication assembly into communication data conforming to a communication protocol corresponding to the communication assembly includes the steps of obtaining interface information corresponding to the communication assembly and determining a communication protocol corresponding to the interface information, and converting the container operation command via the communication assembly into communication data conforming to the communication protocol.

[0073] According to one or more embodiments of the present disclosure, the communication assembly is a vsock-user assembly conforming to the virtio-vsock communication protocol, and the step of obtaining interface information corresponding to the communication assembly and determining the communication protocol corresponding to the interface information includes the steps of obtaining the interface information corresponding to the vsock-user assembly as a Unix socket interface and determining, based on the Unix socket interface and the correspondence between the stored interface information and the communication protocol, that the communication protocol corresponding to the Unix socket interface is the virtio-vsock communication protocol.

[0074] According to one or more embodiments of this disclosure, a memory access DMA driver backend is installed directly on the DPU, and a DMA driver frontend is installed on the server to perform data transmission with the DMA driver backend. Accordingly, the step of transferring the communication data to the container control assembly in the virtual machine is: The steps include transmitting the communication data to the DMA driver backend via the communication assembly, and in response to the completion of the transmission of the communication data, transmitting a transmission completion command to the DMA driver backend via the communication assembly; The DMA driver backend responds to receiving the transmission complete command by transmitting the communication data to the DMA driver frontend via the DMA driver backend, and then transfers the communication data to the container control assembly in the virtual machine via the DMA driver frontend.

[0075] According to one or more embodiments of the present disclosure, the step of determining a control operation corresponding to the communication data via the container control assembly and executing the control operation on at least one virtual container includes the steps of analyzing the communication data via the container control assembly to obtain container adjustment information corresponding to the container operation command, and determining a control operation corresponding to the container adjustment information and executing the control operation corresponding to the container adjustment information on at least one virtual container, wherein the container adjustment information includes one or more of the following: an increase in the number of virtual containers, a decrease in the number of virtual containers, an increase in the execution memory of at least one virtual container, a decrease in the execution memory of at least one virtual container, an increase in the storage space of at least one virtual container, and a decrease in the storage space of at least one virtual container.

[0076] According to one or more embodiments of the present disclosure, the first operating system installed on the DPU differs from the second operating system installed on the server in that, accordingly, further includes the steps of installing the first operating system on the DPU and installing an installation package corresponding to the communication assembly on the first operating system, before the step of sending the container operation command to the communication assembly in the DPU.

[0077] According to one or more embodiments of the present disclosure, the interface information corresponding to the communication assembly is fixed interface information in which changes to the interface attributes are prohibited.

[0078] According to one or more embodiments of the present disclosure, the communication assembly uses one of the following forms: a communication assembly conforming to the virtio-vsock communication protocol, a communication assembly conforming to the IP communication protocol, or a communication assembly conforming to the TCP communication protocol.

[0079] In a second aspect, according to one or more embodiments of the present disclosure, a data transmission device is provided which is applied to a cloud service system including a server and a data processing unit (DPU), wherein the server is deployed with a virtual machine including a container control assembly and a plurality of virtual containers, and the device is A generation module for responding to a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU, A conversion module for converting container operation commands via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and for transferring the communication data to a container control assembly in a virtual machine, The system includes an execution module for determining a control operation corresponding to the communication data via the container control assembly and for executing the control operation on at least one virtual container.

[0080] According to one or more embodiments of the present disclosure, the step of the conversion module converting the container operation command via the communication assembly into communication data conforming to a communication protocol corresponding to the communication assembly specifically includes the steps of obtaining interface information corresponding to the communication assembly and determining a communication protocol corresponding to the interface information, and converting the container operation command via the communication assembly into communication data conforming to the communication protocol.

[0081] According to one or more embodiments of the present disclosure, the communication assembly is a vsock-user assembly conforming to the virtio-vsock communication protocol, and accordingly, the steps of the conversion module to obtain interface information corresponding to the communication assembly and determine the communication protocol corresponding to the interface information specifically include the steps of obtaining the interface information corresponding to the vsock-user assembly as a Unix socket interface, and determining, based on the Unix socket interface and the correspondence between the stored interface information and the communication protocol, that the communication protocol corresponding to the Unix socket interface is the virtio-vsock communication protocol.

[0082] According to one or more embodiments of the present disclosure, a memory access DMA driver backend is installed directly on the DPU, and a DMA driver frontend is installed on the server to transmit data with the DMA driver backend. Accordingly, the steps of the conversion module transferring the communication data to a container control assembly in a virtual machine include, specifically, transmitting the communication data to the DMA driver backend via the communication assembly, responding to the completion of the transmission of the communication data by sending a transmission completion command to the DMA driver backend via the communication assembly, and the DMA driver backend responding to receiving the transmission completion command by transmitting the communication data to the DMA driver frontend via the DMA driver backend, and transferring the communication data to a container control assembly in a virtual machine via the DMA driver frontend.

[0083] According to one or more embodiments of the present disclosure, the steps of the execution module determining a control operation corresponding to the communication data via the container control assembly and executing the control operation on at least one virtual container include, specifically, the steps of analyzing the communication data via the container control assembly to obtain container adjustment information corresponding to the container operation command, and determining a control operation corresponding to the container adjustment information and executing the control operation corresponding to the container adjustment information on at least one virtual container, wherein the container adjustment information includes one or more of the following: an increase in the number of virtual containers, a decrease in the number of virtual containers, an increase in the execution memory of at least one virtual container, a decrease in the execution memory of at least one virtual container, an increase in the storage space of at least one virtual container, and a decrease in the storage space of at least one virtual container.

[0084] According to one or more embodiments of the present disclosure, the first operating system installed on the DPU differs from the second operating system installed on the server, and accordingly, the device further includes an installation module for installing the first operating system on the DPU and installing an installation package corresponding to the communication assembly on the first operating system.

[0085] According to one or more embodiments of the present disclosure, the interface information corresponding to the communication assembly is fixed interface information in which changes to the interface attributes are prohibited.

[0086] According to one or more embodiments of the present disclosure, the communication assembly uses one of the following forms: a communication assembly conforming to the virtio-vsock communication protocol, a communication assembly conforming to the IP communication protocol, or a communication assembly conforming to the TCP communication protocol.

[0087] In a third aspect, according to one or more embodiments of the present disclosure, an electronic device is provided, comprising a processor and a memory communicated with the processor, The aforementioned memory stores computer execution instructions, The processor executes computer execution instructions stored in the memory to realize the data transmission method described in the first embodiment and various possible designs of the first embodiment.

[0088] In a fourth aspect, according to one or more embodiments of the present disclosure, a computer-readable storage medium is provided in which computer execution instructions are stored, and when a processor executes the computer execution instructions, a data transmission method described in the first aspect and various possible designs of the first aspect is realized.

[0089] In a fifth aspect, embodiments of the present disclosure provide a computer program product comprising a computer program that, when executed by a processor, implements the data transmission method described in the first aspect and various possible designs of the first aspect.

[0090] The above description is merely an explanation of preferred embodiments and applicable technical principles of the present disclosure. As those skilled in the art will understand, the scope of the present disclosure is not limited to technical solutions formed by specific combinations of the above technical features, but should also include other technical solutions formed by any combination of the above technical features or their equivalent features, without departing from the above-disclosed idea, such as technical solutions formed by substituting the above features with (but not limited to) similar functional technical features disclosed herein.

[0091] Furthermore, although the operations are described in a specific order, it should not be understood that these operations must be performed in a specific or sequential order as shown. In certain environments, multitasking and parallel processing may be advantageous. Similarly, the above discussion includes some specific implementation details, but these should not be construed as limiting the scope of this disclosure. Certain features described in the context of an independent embodiment may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may be implemented separately or in any suitable subcombination in multiple embodiments.

[0092] Although this subject matter has been described in language specific to the structural features and / or logical operation of the method, it should be understood that the subject matter limited to the attached claims is not necessarily limited to the specific features or operations described above. Rather, the specific features and operations described above are merely illustrative forms for realizing the claims.

Claims

1. A data transmission method, applied to a cloud service system including a server and a data processing unit (DPU), wherein a virtual machine including a container control assembly and a plurality of virtual containers is deployed on the server, and the method is The steps include: a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU; The steps include: converting the container operation command via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and transferring the communication data to the container control assembly in the virtual machine; A data transmission method characterized by comprising the steps of determining a control operation corresponding to the communication data via the container control assembly and executing the control operation for at least one virtual container.

2. The step of converting the container operation command via the communication assembly into communication data that conforms to the communication protocol corresponding to the communication assembly is: The steps include: obtaining interface information corresponding to the aforementioned communication assembly and determining the communication protocol corresponding to the aforementioned interface information; The method according to claim 1, further comprising the step of converting the container operation command via the communication assembly into communication data conforming to the communication protocol.

3. The aforementioned communication assembly is a vsock-user assembly that conforms to the virtio-vsock communication protocol, Accordingly, the step of obtaining interface information corresponding to the communication assembly and determining the communication protocol corresponding to the interface information is: The steps include obtaining interface information corresponding to the vsock-user assembly as a Unix socket interface, The method according to the previous version 2, characterized by comprising the step of determining, based on the Unix socket interface, that the communication protocol corresponding to the Unix socket interface is the Virtio-VSock communication protocol from the correspondence between stored interface information and communication protocols.

4. A memory access DMA driver backend is directly installed on the DPU, and a DMA driver frontend is installed on the server to perform data transmission with the DMA driver backend. Accordingly, the step of transferring the communication data to the container control assembly in the virtual machine is: The steps include transmitting the communication data to the DMA driver backend via the communication assembly, responding to the completion of the transmission of the communication data by transmitting a transmission completion command to the DMA driver backend via the communication assembly, The method according to claim 1, further comprising the steps of: the DMA driver backend responding to the receipt of the transmission completion command, transmitting the communication data to the DMA driver frontend via the DMA driver backend, and transferring the communication data to the container control assembly in the virtual machine via the DMA driver frontend.

5. The step of determining a control operation corresponding to the communication data via the container control assembly and executing the control operation for at least one virtual container is: The steps include: analyzing the communication data via the container control assembly to obtain container adjustment information corresponding to the container operation command; The method according to claim 1, comprising the steps of determining a control operation corresponding to the container adjustment information and performing the control operation corresponding to the container adjustment information for at least one virtual container, wherein the container adjustment information includes one or more of the following: increasing the number of virtual containers, decreasing the number of virtual containers, increasing the execution memory of at least one virtual container, decreasing the execution memory of at least one virtual container, increasing the storage space of at least one virtual container, and decreasing the storage space of at least one virtual container.

6. The first operating system installed on the DPU differs from the second operating system installed on the server, Accordingly, before the step of transmitting the container operation command to the communication assembly in the DPU, The method according to claim 1, further comprising the steps of installing a first operating system on the DPU and installing an installation package corresponding to the communication assembly on the first operating system.

7. The method according to 6, characterized in that the interface information corresponding to the communication assembly is fixed interface information in which changes to the interface attributes are prohibited.

8. The method according to claim 1, characterized in that the communication assembly adopts one of the following forms: a communication assembly conforming to the virtio-vsock communication protocol, a communication assembly conforming to the IP communication protocol, or a communication assembly conforming to the TCP communication protocol.

9. A data transmission device, applied to a cloud service system including a server and a data processing unit (DPU), wherein the server is equipped with a virtual machine including a container control assembly and multiple virtual containers, and the device is A generation module for responding to a control instruction assembly in the DPU receiving a configuration request for at least one virtual container, generating a container operation instruction corresponding to the configuration request via the control instruction assembly, and transmitting the container operation instruction to a communication assembly in the DPU, A conversion module for converting container operation commands via the communication assembly into communication data conforming to the communication protocol corresponding to the communication assembly, and for transferring the communication data to a container control assembly in a virtual machine, A data transmission device comprising an execution module for determining a control operation corresponding to the communication data via the container control assembly and for executing the control operation on at least one virtual container.

10. An electronic device comprising a processor and a memory communicated with the processor, The aforementioned memory stores computer execution instructions, The electronic device is characterized in that the processor executes computer execution instructions stored in the memory to realize the data transmission method described in any one of claims 1 to 8.

11. A computer-readable storage medium, wherein computer execution instructions are stored in the computer-readable storage medium, and when a processor executes the computer execution instructions, the data transmission method described in any one of claims 1 to 8 is realized.

Citation Information

Patent Citations

  • Information processing method and device, computer equipment and storage medium

    CN116841768A