Communication method based on cloud service system, and cloud service system

By using the address forwarding mechanism of shared memory and virtual machine monitor in the cloud service system, the problems of communication delay and memory resource consumption between virtual machines are solved, and high-performance cloud services are realized.

WO2025002376A1PCT designated stage expired Publication Date: 2025-01-02HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/102464
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-06-28
Publication Date
2025-01-02

AI Technical Summary

Technical Problem

In cloud service systems, the communication delay between virtual machines is high and memory resources consumes largely, resulting in the inability to provide high-performance cloud services.

Method used

By introducing a shared memory mechanism in the cloud service system, messages between virtual machines are directly stored in shared memory and forwarded by the virtual machine monitor to avoid copying of messages and reduce memory resource consumption and delay.

Benefits of technology

It effectively reduces the communication delay between virtual machines, saves memory resources, and thus improves the performance of cloud services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024102464_02012025_PF_FP_ABST
    Figure CN2024102464_02012025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are a communication method based on a cloud service system, and a cloud service system. Memory resources can be saved on to a certain extent, and communication delays between virtual machines can also be reduced, so that the cloud service system can provide high-performance cloud services for tenants. The cloud service system for implementing the method in the present application comprises: a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, wherein the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. The method in the present application comprises: a first virtual machine storing in a shared memory a message that is to be sent to a second virtual machine; the first virtual machine sending to a first virtual machine monitor a memory address of the message in the shared memory and a network address of the second virtual machine; the first virtual machine monitor sending the memory address to the second virtual machine on the basis of the network address; and the second virtual machine acquiring the message from the shared memory on the basis of the memory address.
Need to check novelty before this filing date? Find Prior Art

Description

A communication method based on cloud service system and cloud service system

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on June 28, 2023, with application number 202310777431.8, entitled “A communication method and cloud management platform based on a cloud management platform”, and claims priority to the Chinese patent application filed with the State Intellectual Property Office on September 28, 2023, with application number 202311278629.8, entitled “A communication method and cloud service system based on a cloud service system”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The embodiments of the present application relate to the field of cloud technology, and in particular to a communication method based on a cloud service system and a cloud service system. Background Art

[0003] In cloud service systems, numerous virtual machines (VMs) running on physical servers or server clusters generate a large amount of internal communication. The quality of this communication directly determines the overall performance of the cloud services provided to tenants. Therefore, it is necessary to improve the network processing capabilities between VMs to ensure low latency and high bandwidth network quality.

[0004] In related technologies, a physical server in a cloud server system is deployed with multiple virtual machines and a hypervisor for managing these virtual machines. When a source virtual machine among the multiple virtual machines needs to send a message to a destination virtual machine, the hypervisor stores the source virtual machine's message in the physical server's memory, reads it from the memory, and sends it to the destination virtual machine, thus completing the communication between the source and destination virtual machines.

[0005] In the above process, since the virtual machine monitor needs to complete two message copies, this will result in a large consumption of memory resources and a high communication delay between the source virtual machine and the destination virtual machine, resulting in the cloud service system being unable to provide tenants with high-performance cloud services.

[0006] Summary of the Invention

[0007] The embodiments of the present application provide a communication method and a cloud service system based on a cloud service system, which can not only save memory resources to a certain extent, but also reduce the communication delay between virtual machines, so that the cloud service system can provide tenants with high-performance cloud services.

[0008] A first aspect of an embodiment of the present application provides a communication method based on a cloud service system, wherein the cloud service system includes a first virtual machine, a first virtual machine monitor, a second virtual machine, and a shared memory, and the first virtual machine, the first virtual machine monitor, and the second virtual machine can directly access the shared memory. The method includes:

[0009] When the first virtual machine (ie, the source virtual machine) needs to communicate with the second virtual machine (ie, the destination virtual machine), the first virtual machine may first access the shared memory of the first physical server and store the message to be sent to the second virtual machine in the shared memory.

[0010] After storing the message in the shared memory and obtaining the memory address of the message in the shared memory, the first virtual machine may send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor.

[0011] After obtaining the memory address of the message in the shared memory and the network address of the second virtual machine, the first virtual machine monitor may send the memory address of the message in the shared memory to the second virtual machine.

[0012] After obtaining the memory address of the message in the shared memory, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine successfully completes communication with the second virtual machine.

[0013] The cloud service system for implementing the above method includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. When the first virtual machine needs to communicate with the second virtual machine, the first virtual machine can first store the message to be sent to the second virtual machine in the shared memory. Then, the first virtual machine can send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor used to manage the first virtual machine. Then, based on the network address of the second virtual machine, the first virtual machine monitor can send the memory address of the message in the shared memory to the second virtual machine. Finally, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine has successfully completed communication with the second virtual machine. In the above process, the two message copies are implemented by the first virtual machine and the second virtual machine respectively, that is, the first virtual machine can store the message to be sent to the second virtual machine in the shared memory in advance, and the second virtual machine can obtain the message from the shared memory by itself. During the communication process between the first virtual machine and the second virtual machine, the first virtual machine monitor mainly forwards the memory address of the message in the shared memory between the first virtual machine and the second virtual machine. Therefore, the first virtual machine monitor does not need to perform message copying, but only needs to complete address forwarding. Compared with the former, the latter requires very few memory resources and can be completed quickly. This not only saves memory resources to a certain extent, but also reduces the communication delay between the first virtual machine and the second virtual machine, so that the cloud service system can provide tenants with high-performance cloud services.

[0014] In one possible implementation, the cloud service system includes a first physical server, the first physical server includes a first virtual machine, a first virtual machine monitor, and a second virtual machine, and the first virtual machine monitor sends the memory address to the second virtual machine based on the network address, including: after the first virtual machine monitor determines that the second virtual machine is located on the first physical server based on the network address, the memory address is sent to the second virtual machine. In the aforementioned implementation, it is assumed that the first virtual machine, the second virtual machine, and the first virtual machine monitor for managing the two virtual machines can be deployed simultaneously on the first physical server in the cloud service system. Based on this, after obtaining the memory address of the message in the shared memory and the network address of the second virtual machine, the first virtual machine monitor can analyze the network address of the second virtual machine to determine that the second virtual machine is located on the first physical server, that is, the first virtual machine monitor can determine that the communication between the first virtual machine and the second virtual machine occurs inside the first physical server. Based on this, the first virtual machine monitor can send the memory address of the message in the shared memory directly to the second virtual machine.

[0015] In one possible implementation, the shared memory is located on the first physical server or a third physical server in the cloud service system, and the third physical server is accessible to the first physical server. In the aforementioned implementation, the shared memory can be co-located on the first physical server with the first virtual machine, the second virtual machine, and the first virtual machine monitor. Alternatively, the shared memory can be located on a third physical server that is communicatively connected to the first physical server, while the first virtual machine, the second virtual machine, and the first virtual machine monitor are located on the first physical server.

[0016] In one possible implementation, a cloud service system includes a first physical server and a second physical server. The first physical server includes a first virtual machine and a first virtual machine monitor. The second physical server includes a second virtual machine and a second virtual machine monitor. The first virtual machine monitor sends a memory address to the second virtual machine based on a network address, including: after the first virtual machine monitor determines that the second virtual machine is located on the second physical server based on the network address, sending the memory address to the second virtual machine monitor; and the second virtual machine monitor sends the memory address to the second virtual machine. In the aforementioned implementation, the first physical server in the cloud service system may be deployed with a first virtual machine and a first virtual machine monitor for managing the first virtual machine, and the second physical server may be deployed with a second virtual machine and a second virtual machine monitor for managing the second virtual machine. Based on this, after obtaining the memory address of the message in shared memory and the network address of the second virtual machine, the first virtual machine monitor may analyze the network address of the second virtual machine to determine that the second virtual machine is located on the second physical server. In other words, the first virtual machine monitor may determine that the communication between the first and second virtual machines occurs between the first and second physical servers. Based on this, the first virtual machine monitor may send the memory address of the message in shared memory to the second virtual machine monitor, causing the second virtual machine monitor to send the memory address to the second virtual machine.

[0017] In one possible implementation, the shared memory is located on a third physical server in the cloud service system, and the third physical server is accessible to the first physical server and the second physical server. In the aforementioned implementation, since the first virtual machine and the first virtual machine monitor are located on the first physical server, and the second virtual machine and the second virtual machine monitor are located on the second physical server, the shared memory is typically located on the third physical server that is communicatively connected to the first physical server and the second physical server.

[0018] In one possible implementation, the shared memory includes multiple memory areas, and the first virtual machine stores a message to be sent to the second virtual machine in the shared memory, including: the first virtual machine determines a memory area that matches the message to be sent to the second virtual machine from the multiple memory areas; the first virtual machine stores the message in the memory area, and uses the memory address corresponding to the memory area as the memory address of the message in the shared memory. In the aforementioned implementation, after the first virtual machine accesses the shared memory, the first virtual machine can determine a memory area that matches the message to be sent to the second virtual machine from the multiple memory areas included in the shared memory. Then, the first virtual machine can store the message in the memory area, and use the memory address corresponding to the memory area as the memory address of the message in the shared memory.

[0019] In one possible implementation, the second virtual machine retrieving the message from the shared memory based on the memory address includes: the second virtual machine determining a memory region in the shared memory based on the memory address, and retrieving the message from the memory region. In the aforementioned implementation, after obtaining the memory address of the message in the shared memory, the second virtual machine may determine the memory region corresponding to the memory address among multiple memory regions included in the shared memory. Because the message is stored in the memory region, the second virtual machine may read the message from the memory region.

[0020] A second aspect of an embodiment of the present application provides a cloud service system, which includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, wherein the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory; the first virtual machine is used to store a message to be sent to the second virtual machine in the shared memory; the first virtual machine is also used to send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor; the first virtual machine monitor is used to send the memory address to the second virtual machine based on the network address; the second virtual machine is used to obtain the message from the shared memory based on the memory address.

[0021] The above-mentioned cloud service system includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. When the first virtual machine needs to communicate with the second virtual machine, the first virtual machine can first store the message to be sent to the second virtual machine in the shared memory. Then, the first virtual machine can send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor used to manage the first virtual machine. Then, the first virtual machine monitor can send the memory address of the message in the shared memory to the second virtual machine based on the network address of the second virtual machine. Finally, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine has successfully completed communication with the second virtual machine. In the above process, the two message copies are implemented by the first virtual machine and the second virtual machine respectively, that is, the first virtual machine can store the message to be sent to the second virtual machine in the shared memory in advance, and the second virtual machine can obtain the message from the shared memory by itself. During the communication process between the first virtual machine and the second virtual machine, the first virtual machine monitor mainly forwards the memory address of the message in the shared memory between the first virtual machine and the second virtual machine. Therefore, the first virtual machine monitor does not need to perform message copying, but only needs to complete address forwarding. Compared with the former, the latter requires very few memory resources and can be completed quickly. This not only saves memory resources to a certain extent, but also reduces the communication delay between the first virtual machine and the second virtual machine, so that the cloud service system can provide tenants with high-performance cloud services.

[0022] In one possible implementation, a cloud service system includes a first physical server, the first physical server includes a first virtual machine, a first virtual machine monitor, and a second virtual machine; the first virtual machine monitor is configured to send a memory address to the second virtual machine after determining that the second virtual machine is located on the first physical server based on a network address.

[0023] In one possible implementation, the cloud service system includes a first physical server and a second physical server, the first physical server includes a first virtual machine and a first virtual machine monitor, and the second physical server includes a second virtual machine and a second virtual machine monitor; the first virtual machine monitor is used to send a memory address to the second virtual machine monitor after determining that the second virtual machine is located on the second physical server based on the network address; the second virtual machine monitor is used to send the memory address to the second virtual machine.

[0024] In a possible implementation, the shared memory is located in the first physical server or a third physical server of the cloud service system, and the third physical server is accessible to the first physical server.

[0025] In a possible implementation, the shared memory is located in a third physical server of the cloud service system, and the third physical server is accessible to the first physical server and the second physical server.

[0026] In one possible implementation, the shared memory includes multiple memory areas, and the first virtual machine is used to: determine a memory area that matches a message to be sent to the second virtual machine among the multiple memory areas; store the message in the memory area, and use the memory address corresponding to the memory area as the memory address of the message in the shared memory.

[0027] In one possible implementation, the second virtual machine is configured to determine a memory area in a shared memory based on a memory address, and obtain a message from the memory area.

[0028] A third aspect of an embodiment of the present application provides a computing device cluster, which includes at least one computing device, each computing device including a processor and a memory: the memory is used to store instructions; the processor is used to enable the computing device cluster to execute the method described in the first aspect or any possible implementation method of the first aspect according to the instructions.

[0029] A fourth aspect of an embodiment of the present application provides a computer storage medium, which stores one or more instructions. When the instructions are executed by one or more computers, the one or more computers implement the method described in the first aspect or any possible implementation method of the first aspect.

[0030] A fifth aspect of the embodiments of the present application provides a computer program product, which stores instructions. When the instructions are executed by a computer, the computer implements the method described in the first aspect or any possible implementation method of the first aspect.

[0031] The cloud service system provided by the embodiment of the present application includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. When the first virtual machine needs to communicate with the second virtual machine, the first virtual machine can first store the message to be sent to the second virtual machine in the shared memory. Then, the first virtual machine can send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor used to manage the first virtual machine. Then, the first virtual machine monitor can send the memory address of the message in the shared memory to the second virtual machine based on the network address of the second virtual machine. Finally, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine has successfully completed communication with the second virtual machine. In the above process, the two message copies are implemented by the first virtual machine and the second virtual machine respectively, that is, the first virtual machine can store the message to be sent to the second virtual machine in the shared memory in advance, and the second virtual machine can obtain the message from the shared memory by itself. During the communication process between the first virtual machine and the second virtual machine, the first virtual machine monitor mainly forwards the memory address of the message in the shared memory between the first virtual machine and the second virtual machine. Therefore, the first virtual machine monitor does not need to perform message copying, but only needs to complete address forwarding. Compared with the former, the latter requires very few memory resources and can be completed quickly. This not only saves memory resources to a certain extent, but also reduces the communication delay between the first virtual machine and the second virtual machine, so that the cloud service system can provide tenants with high-performance cloud services. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] FIG1 is a schematic diagram of the structure of a cloud service system provided in an embodiment of the present application;

[0033] FIG2 is a schematic diagram of a shared memory provided in an embodiment of the present application;

[0034] FIG3 is another schematic diagram of a shared memory provided in an embodiment of the present application;

[0035] FIG4 is another schematic diagram of a shared memory provided in an embodiment of the present application;

[0036] FIG5 is a flow chart of a communication method based on a cloud service system provided in an embodiment of the present application;

[0037] FIG6 is a schematic structural diagram of a physical server provided in an embodiment of the present application;

[0038] FIG7 is another schematic diagram of a flow chart of a communication method based on a cloud service system according to an embodiment of the present application;

[0039] FIG8 is another structural diagram of a physical server provided in an embodiment of the present application;

[0040] FIG9 is another schematic diagram of the structure of the cloud service system provided in an embodiment of the present application;

[0041] FIG10 is a schematic diagram of a structure of a computing device provided in an embodiment of the present application;

[0042] FIG11 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0043] FIG12 is a schematic diagram of computer devices in a computer cluster provided by an embodiment of the present application being connected via a network. DETAILED DESCRIPTION

[0044] The embodiments of the present application provide a communication method and a cloud service system in a cloud service system, which can not only save memory resources to a certain extent, but also reduce the communication delay between virtual machines, so that the cloud service system can provide tenants with high-performance cloud services.

[0045] In cloud service systems, numerous virtual machines running on physical servers or server clusters generate a large amount of internal communication. The quality of this communication directly determines the overall performance of the cloud services provided to tenants. Therefore, it is necessary to improve the network processing capabilities between virtual machines to ensure low latency and high bandwidth network quality.

[0046] In related art, a physical server in a cloud server system is deployed with multiple virtual machines and a virtual machine monitor (VM) for managing these virtual machines. If one VM needs to communicate with another VM, these two VMs are referred to as the source VM and the destination VM. When the source VM needs to send a message to the destination VM, the VM monitor stores the message in the physical server's memory, reads it from memory, and sends it to the destination VM, completing the communication between the source and destination VMs.

[0047] In the above process, since the virtual machine monitor needs to complete two message copies, that is, storing the message in the memory and then retrieving it from the memory, this will result in a large consumption of memory resources and a high communication delay between the source virtual machine and the destination virtual machine, resulting in the cloud service system being unable to provide high-performance cloud services to tenants.

[0048] To solve the above problems, an embodiment of the present application provides a communication method based on a cloud service system. The cloud service system used to implement this method is shown in Figure 1 (Figure 1 is a structural diagram of the cloud service system provided by an embodiment of the present application). The cloud service system includes an infrastructure for providing cloud services to tenants. This infrastructure includes multiple physical servers, and the multiple physical servers are connected to each other in communication. The physical servers are introduced below:

[0049] Physical servers, as computing devices in cloud service systems, typically appear in clusters. It's important to note that, through virtualization technology, one or more virtual machines (VMs) can be deployed on a physical server to provide cloud services to tenants, along with a hypervisor to manage these VMs. This allows VMs on the same server to communicate with each other, and VMs on different servers can also communicate with each other. It's important to note that when VMs communicate with each other, the hypervisor on the physical server can participate in and manage the communication process.

[0050] It is worth noting that, for any one of the multiple physical servers, the physical server may have an exclusive shared memory, and the shared memory of the physical server may be presented in a variety of ways: for example, as shown in Figure 2 (Figure 2 is a schematic diagram of the shared memory provided in an embodiment of the present application), the shared memory of the physical server is the memory owned by the physical server; for another example, as shown in Figure 3 (Figure 3 is another schematic diagram of the shared memory provided in an embodiment of the present application), the shared memory of the physical server is the memory owned by another physical server connected to the physical server, then the virtual machine monitor on the physical server and all virtual machines may directly access the shared memory of the physical server. For several of the multiple physical servers, these physical servers may have a public shared memory, and the shared memory of these physical servers may be presented in the following ways: as shown in Figure 4 (Figure 4 is another schematic diagram of the shared memory provided in an embodiment of the present application), the shared memory of these physical servers is the memory owned by another physical server connected to these physical servers, then the virtual machine monitors on these physical servers and all virtual machines may directly access the shared memory of these physical servers.

[0051] Based on this, in the above-mentioned cloud service system, when two virtual machines need to communicate, that is, when the source virtual machine needs to send a message to the destination virtual machine, the source virtual machine can first store the message in a shared memory accessible to both the source virtual machine and the destination virtual machine, and then send the memory address of the message in the shared memory and the network address of the destination virtual machine to the virtual machine monitor that manages the source virtual machine. The virtual machine monitor can send the memory address of the message in the shared memory to the destination virtual machine based on the network address of the destination virtual machine, so that the destination virtual machine can obtain the message from the shared memory accessible to both the source virtual machine and the destination virtual machine based on the memory address, thereby completing the communication between the source virtual machine and the destination virtual machine.

[0052] In order to further understand the communication process between the source virtual machine and the destination virtual machine, the following further introduces the process in combination with multiple embodiments. Figure 5 is a flow chart of a communication method based on a cloud service system provided by an embodiment of the present application. As shown in Figure 5, the first embodiment of the method can be implemented by the cloud service system shown in Figure 1. Assuming that the first physical server in the cloud service system (that is, a physical server in the cloud service system) can be deployed with a first virtual machine, a second virtual machine, and a first virtual machine monitor for managing these two virtual machines, the first virtual machine, the second virtual machine, and the first virtual machine monitor can directly access the shared memory of the first physical server. Based on this, the first embodiment of the method includes:

[0053] 501. A first virtual machine stores a message to be sent to a second virtual machine in a shared memory.

[0054] In this embodiment, when the first virtual machine (also understood as the source virtual machine) on the first physical server needs to communicate with the second virtual machine (also understood as the destination virtual machine) on the first physical server, the first virtual machine can first access the shared memory of the first physical server and store the message to be sent to the second virtual machine in the shared memory of the first physical server.

[0055] Specifically, the shared memory of the first physical server can be presented in multiple ways:

[0056] (1) The shared memory of the first physical server may be the memory owned by the first physical server itself.

[0057] (2) The shared memory of the first physical server may also be the memory owned by a third physical server in the cloud service system (i.e., another physical server in the cloud service system), wherein the first physical server is in communication with the third physical server, that is, the third physical server is accessible to the first physical server, etc. It is understandable that, regardless of which of the aforementioned methods the shared memory of the first physical server is presented, the first virtual machine, the second virtual machine, and the first virtual machine monitor on the first physical server may directly access the shared memory of the first physical server.

[0058] More specifically, the first virtual machine may store the message in the shared memory in the following manner:

[0059] (1) Assume that the shared memory of the first physical server includes multiple memory areas. After the first virtual machine accesses the shared memory of the first physical server, the first virtual machine can determine a memory area that matches the message to be sent to the second virtual machine from the multiple memory areas included in the shared memory of the first physical server. For example, the first virtual machine can first determine the size of the message and the sizes of the multiple memory areas. Based on this information, the first virtual machine can select a suitable memory area from the multiple memory areas, the size of which matches the size of the message.

[0060] (2) After determining the memory area that matches the message, the first virtual machine may store the message in the memory area and use the memory address corresponding to the memory area as the memory address of the message in the shared memory of the first physical server.

[0061] For example, as shown in Figure 6 (Figure 6 is a structural diagram of a physical server provided in an embodiment of the present application), it is assumed that virtual machine 1, virtual machine 2 and hypervisor 1 that manages these two virtual machines are deployed on server 1, and the shared memory of server 1 is the memory owned by server 1 itself, so virtual machine 1, virtual machine 2 and hypervisor 1 can all directly access the shared memory of server 1. Then, when virtual machine 1 wants to send a message to virtual machine 2, virtual machine 1 can first access the shared memory through the memory bus. Since the shared memory includes multiple memory areas such as memory area a, memory area b and memory area c, since the size of the message is 150 bytes, the size of memory area a is 200 bytes, the size of memory area b is 300 bytes, the size of memory area c is 500 bytes, etc., virtual machine 1 can determine memory area a as the memory area that matches the message, store the message in memory area a, and obtain the memory address A corresponding to memory area a. Memory address A can also be understood as the memory address of the message in the shared memory.

[0062] 502. The first virtual machine sends the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor.

[0063] After storing the message in the shared memory of the first physical server and obtaining the memory address of the message in the shared memory of the first physical server, the first virtual machine can send the memory address of the message in the shared memory of the first physical server and the network address of the second virtual machine (for example, the Internet Protocol (IP) address of the second virtual machine, etc.) to the first virtual machine monitor on the first physical server.

[0064] Still as in the above example, after virtual machine 1 obtains memory address A, it can send memory address A and the protocol header of the message (including the IP address of virtual machine 1 and the IP address of virtual machine 2, etc.) to hypervisor 1.

[0065] 503. After determining that the second virtual machine is located on the first physical server based on the network address, the first virtual machine monitor sends the memory address to the second virtual machine.

[0066] After obtaining the message's memory address in the first physical server's shared memory and the second virtual machine's network address, the first virtual machine monitor can analyze the second virtual machine's network address to determine that the second virtual machine is located on the first physical server. Based on this, the first virtual machine monitor can directly send the message's memory address in the first physical server's shared memory to the second virtual machine.

[0067] As in the previous example, after hypervisor 1 obtains memory address A and the packet's protocol header, it can first parse the packet's protocol header to obtain information such as VM 2's IP address. Hypervisor 1 then analyzes VM 2's IP address to confirm that VM 2 is also located on Server 1. Hypervisor 1 can then directly send memory address A to VM 2.

[0068] It should be understood that after the first virtual machine monitor determines that the second virtual machine is located on the first physical server, if the protocol header of the message contains relevant information of the second layer protocol, the first virtual machine monitor may not access the shared memory of the first physical server, that is, the message stored in the shared memory of the first physical server may not be modified. If the protocol header of the message contains relevant information of the third layer protocol or above, the first virtual machine monitor may access the shared memory of the first physical server and make necessary modifications to the protocol header of the message based on the memory address of the message in the shared memory of the first physical server. After that, the shared memory of the first physical server stores the modified message, so the second virtual machine can subsequently read the modified message from the shared memory of the first physical server, which will not be repeated later.

[0069] 504. The second virtual machine obtains the message from the shared memory based on the memory address.

[0070] After obtaining the memory address of the message in the shared memory of the first physical server, the second virtual machine can read the message from the shared memory of the first physical server based on the memory address of the message in the shared memory of the first physical server. At this point, the first virtual machine successfully completes communication with the second virtual machine.

[0071] Specifically, the second virtual machine can obtain the message from the shared memory in the following manner:

[0072] After obtaining the memory address of the message in the shared memory of the first physical server, the second virtual machine can determine the memory area corresponding to the memory address (that is, the memory area that matches the message) among the multiple memory areas contained in the shared memory of the first physical server. Since the memory area stores the message, the second virtual machine can read the message from the memory area.

[0073] Continuing with the previous example, after VM 2 obtains memory address A, it first accesses the shared memory through the memory bus. VM 2 then locates memory area a corresponding to memory address A among the shared memory areas (e.g., area a, area b, and area c). Since area a contains the packet that VM 1 is about to send to VM 2, VM 2 can directly read the packet from area a. Thus, VM 1 successfully communicates with VM 2.

[0074] The above is a detailed description of the first embodiment of the communication method based on the cloud service system provided by the embodiment of the present application. The second embodiment of the communication method based on the cloud service system provided by the embodiment of the present application will be introduced below. Figure 7 is another flow chart of the communication method based on the cloud service system provided by the embodiment of the present application. As shown in Figure 7, the second embodiment of the method can be implemented by the cloud service system shown in Figure 1. It is assumed that the first physical server in the cloud service system (that is, a physical server in the cloud service system) can be deployed with a first virtual machine and a first virtual machine monitor for managing the first virtual machine, and the second physical server (that is, another physical server in the cloud service system) can be deployed with a second virtual machine and a second virtual machine monitor for managing the second virtual machine. Therefore, the first virtual machine, the second virtual machine, the first virtual machine monitor and the second virtual machine monitor can directly access the shared memory of the first physical server and the second physical server. Based on this, the second embodiment of the method includes:

[0075] 701. A first virtual machine stores a message to be sent to a second virtual machine in a shared memory.

[0076] In this embodiment, when the first virtual machine (also understood as the source virtual machine) on the first physical server needs to communicate with the second virtual machine (also understood as the destination virtual machine) on the second physical server, the first virtual machine can first access the shared memory of the first physical server and the second physical server, and store the message to be sent to the second virtual machine in the shared memory of the first physical server and the second physical server.

[0077] Specifically, the shared memory of the first physical server and the second physical server may be presented in the following manner:

[0078] The shared memory of the first physical server and the second physical server can be the memory owned by a third physical server in the cloud service system (that is, another physical server in the cloud service system), wherein the first physical server and the second physical server are both communicatively connected to the third physical server, that is, the third physical server is accessible to the first physical server and the second physical server, etc. It is understandable that the first virtual machine on the first physical server, the first virtual machine monitor on the first physical server, the second virtual machine on the second physical server, and the second virtual machine monitor on the second physical server can all directly access the shared memory of the first physical server and the second physical server.

[0079] More specifically, the first virtual machine may store the message in the shared memory in the following manner:

[0080] (1) Assume that the shared memory of the first physical server and the second physical server includes multiple memory areas. After the first virtual machine accesses the shared memory of the first physical server and the second physical server, the first virtual machine can determine a memory area that matches the message to be sent to the second virtual machine from the multiple memory areas included in the shared memory of the first physical server and the second physical server. For example, the first virtual machine can first determine the size of the message and the sizes of the multiple memory areas. Based on this information, the first virtual machine can select a suitable memory area from the multiple memory areas, the size of which matches the size of the message.

[0081] (2) After determining the memory area that matches the message, the first virtual machine may store the message in the memory area and use the memory address corresponding to the memory area as the memory address of the message in the shared memory of the first physical server and the second physical server.

[0082] For example, as shown in Figure 8 (Figure 8 is another structural diagram of a physical server provided by an embodiment of the present application), assume that virtual machine 1 and hypervisor 1 for managing virtual machine 1 are deployed on server 1, and virtual machine 2 and hypervisor 2 for managing virtual machine 2 are deployed on server 2. The shared memory of server 1 and server 2 is the memory owned by server 3 itself. Therefore, virtual machine 1, virtual machine 2, hypervisor 1, and hypervisor 2 can all directly access the shared memory of server 1 and server 2. Then, when virtual machine 1 wants to send a message to virtual machine 2, virtual machine 1 can first access the shared memory through the high-speed bus. Since the shared memory includes multiple memory areas such as memory area a, memory area b and memory area c, and since the size of the message is 150 bytes, the size of memory area a is 200 bytes, the size of memory area b is 300 bytes, the size of memory area c is 500 bytes, and so on, virtual machine 1 can determine memory area a as the memory area that matches the message, store the message in memory area a, and obtain the memory address A corresponding to memory area a. Memory address A can also be understood as the memory address of the message in the shared memory.

[0083] 702. The first virtual machine sends the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor.

[0084] After storing the message in the shared memory of the first physical server and the second physical server and obtaining the memory address of the message in the shared memory of the first physical server and the second physical server, the first virtual machine can send the memory address of the message in the shared memory of the first physical server and the second physical server and the network address of the second virtual machine to the first virtual machine monitor on the first physical server.

[0085] Still as in the above example, after virtual machine 1 obtains memory address A, it can send memory address A and the protocol header of the message (including the IP address of virtual machine 1 and the IP address of virtual machine 2, etc.) to hypervisor 1.

[0086] 703. After determining that the second virtual machine is located on the second physical server based on the network address, the first virtual machine monitor sends the memory address to the second virtual machine monitor.

[0087] 704. The second virtual machine monitor sends the memory address to the second virtual machine.

[0088] After obtaining the memory address of the message in the shared memory between the first and second physical servers and the network address of the second virtual machine, the first virtual machine monitor can analyze the network address of the second virtual machine to determine that the second virtual machine is located on the second physical server. Based on this, the first virtual machine monitor can send the memory address of the message in the shared memory between the first and second physical servers to the second virtual machine monitor on the second physical server, so that the second virtual machine monitor sends the memory address to the second virtual machine.

[0089] Continuing with the previous example, after hypervisor 1 obtains memory address A and the packet's protocol header, it can first parse the packet's protocol header to obtain information such as VM 2's IP address. Hypervisor 1 then analyzes VM 2's IP address to confirm that VM 2 is also located on Server 2. Hypervisor 1 then sends memory address A to hypervisor 2. Hypervisor 1 then directly sends memory address A to VM 2.

[0090] It should be understood that after the first virtual machine monitor determines that the second virtual machine is located on the second physical server, if the protocol header of the message contains relevant information of the second layer protocol, the first virtual machine monitor may not access the shared memory of the first physical server and the second physical server, that is, the message stored in the shared memory of the first physical server and the second physical server may not be modified. If the protocol header of the message contains relevant information of the third layer protocol or above, the first virtual machine monitor may access the shared memory of the first physical server and the second physical server, and make necessary modifications to the protocol header of the message based on the memory address of the message in the shared memory of the first physical server and the second physical server. After that, the shared memory of the first physical server and the second physical server stores the modified message, so the second virtual machine can subsequently read the modified message from the shared memory of the first physical server and the second physical server, which will not be repeated later.

[0091] 705. The second virtual machine obtains the message from the shared memory based on the memory address.

[0092] After obtaining the memory address of the message in the shared memory of the first and second physical servers, the second virtual machine can read the message from the shared memory of the first and second physical servers based on the memory address of the message in the shared memory of the first and second physical servers. At this point, the first virtual machine successfully completes communication with the second virtual machine.

[0093] Specifically, the second virtual machine can obtain the message from the shared memory in the following manner:

[0094] After obtaining the memory address of the message in the shared memory of the first physical server and the second physical server, the second virtual machine can determine the memory area corresponding to the memory address (that is, the memory area that matches the message) among the multiple memory areas contained in the shared memory of the first physical server and the second physical server. Since the memory area stores the message, the second virtual machine can read the message from the memory area.

[0095] Continuing with the previous example, after VM 2 obtains memory address A, it first accesses shared memory via the high-speed bus. VM 2 then locates memory area a corresponding to memory address A among the shared memory areas (e.g., area a, area b, and area c). Since area a contains the packet that VM 1 is about to send to VM 2, VM 2 can directly read the packet from area a. Thus, VM 1 successfully communicates with VM 2.

[0096] The cloud service system provided by the embodiment of the present application includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. When the first virtual machine needs to communicate with the second virtual machine, the first virtual machine can first store the message to be sent to the second virtual machine in the shared memory. Then, the first virtual machine can send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor used to manage the first virtual machine. Then, the first virtual machine monitor can send the memory address of the message in the shared memory to the second virtual machine based on the network address of the second virtual machine. Finally, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine has successfully completed communication with the second virtual machine. In the above process, the two message copies are implemented by the first virtual machine and the second virtual machine respectively, that is, the first virtual machine can store the message to be sent to the second virtual machine in the shared memory in advance, and the second virtual machine can obtain the message from the shared memory by itself. During the communication process between the first virtual machine and the second virtual machine, the first virtual machine monitor mainly forwards the memory address of the message in the shared memory between the first virtual machine and the second virtual machine. Therefore, the first virtual machine monitor does not need to perform message copying, but only needs to complete address forwarding. Compared with the former, the latter requires very few memory resources and can be completed quickly. This not only saves memory resources to a certain extent, but also reduces the communication delay between the first virtual machine and the second virtual machine, so that the cloud service system can provide tenants with high-performance cloud services.

[0097] The above is a detailed description of the communication method based on the cloud service system provided by the embodiment of the present application. The cloud service system provided by the embodiment of the present application will be introduced below. Figure 9 is another structural diagram of the cloud service system provided by the embodiment of the present application. As shown in Figure 9, the cloud service system includes a first virtual machine 901, a first virtual machine monitor 902, a second virtual machine 903, and a shared memory 904. The first virtual machine 901, the first virtual machine monitor 902, and the second virtual machine 903 can access the shared memory 904.

[0098] The first virtual machine 901 is used to store the message to be sent to the second virtual machine 903 in the shared memory 904; for example, the first virtual machine 901 is used to implement step 501 in the embodiment shown in Figure 5 or step 701 in the embodiment shown in Figure 7.

[0099] The first virtual machine 901 is also used to send the memory address of the message in the shared memory 904 and the network address of the second virtual machine 903 to the first virtual machine monitor 902; for example, the first virtual machine 901 is used to implement step 502 in the embodiment shown in Figure 5 or step 702 in the embodiment shown in Figure 7.

[0100] The first virtual machine monitor 902 is used to send the memory address to the second virtual machine 903 based on the network address; for example, the first virtual machine monitor 902 is used to implement step 503 in the embodiment shown in FIG. 5 or step 703 in the embodiment shown in FIG. 7 .

[0101] The second virtual machine 903 is configured to obtain the message based on the memory address from the shared memory 904. For example, the second virtual machine 902 is configured to implement step 504 in the embodiment shown in FIG5 or step 705 in the embodiment shown in FIG7.

[0102] The cloud service system provided by the embodiment of the present application includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory. When the first virtual machine needs to communicate with the second virtual machine, the first virtual machine can first store the message to be sent to the second virtual machine in the shared memory. Then, the first virtual machine can send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor used to manage the first virtual machine. Then, the first virtual machine monitor can send the memory address of the message in the shared memory to the second virtual machine based on the network address of the second virtual machine. Finally, the second virtual machine can read the message from the shared memory based on the memory address of the message in the shared memory. At this point, the first virtual machine has successfully completed communication with the second virtual machine. In the above process, the two message copies are implemented by the first virtual machine and the second virtual machine respectively, that is, the first virtual machine can store the message to be sent to the second virtual machine in the shared memory in advance, and the second virtual machine can obtain the message from the shared memory by itself. During the communication process between the first virtual machine and the second virtual machine, the first virtual machine monitor mainly forwards the memory address of the message in the shared memory between the first virtual machine and the second virtual machine. Therefore, the first virtual machine monitor does not need to perform message copying, but only needs to complete address forwarding. Compared with the former, the latter requires very few memory resources and can be completed quickly. This not only saves memory resources to a certain extent, but also reduces the communication delay between the first virtual machine and the second virtual machine, so that the cloud service system can provide tenants with high-performance cloud services.

[0103] In one possible implementation, the cloud service system includes a first physical server, which includes a first virtual machine 901, a first virtual machine monitor 902, and a second virtual machine 903; the first virtual machine monitor 902 is used to send a memory address to the second virtual machine 903 after determining that the second virtual machine 903 is located on the first physical server based on the network address.

[0104] In one possible implementation, the cloud service system includes a first physical server and a second physical server, the first physical server includes a first virtual machine 901 and a first virtual machine monitor 902, and the second physical server includes a second virtual machine 903 and a second virtual machine 903 monitor; the first virtual machine monitor 902 is used to send the memory address to the second virtual machine monitor after determining that the second virtual machine 903 is located on the second physical server based on the network address; the second virtual machine monitor is used to send the memory address to the second virtual machine 903.

[0105] In one possible implementation, the shared memory 904 is located in the first physical server or a third physical server of the cloud service system, and the third physical server is accessible to the first physical server.

[0106] In one possible implementation, the shared memory 904 is located in a third physical server of the cloud service system, and the third physical server is accessible to the first physical server and the second physical server.

[0107] In one possible implementation, the shared memory 904 includes multiple memory areas, and the first virtual machine 901 is used to: determine a memory area among the multiple memory areas that matches the message to be sent to the second virtual machine 903; store the message in the memory area, and use the memory address corresponding to the memory area as the memory address of the message in the shared memory 904.

[0108] In a possible implementation, the second virtual machine 903 is configured to determine a memory area in the shared memory 904 based on a memory address, and obtain a message from the memory area.

[0109] It should be noted that the information interaction, implementation process, etc. between the modules / units of the above-mentioned device are based on the same concept as the method embodiment of the present application, and the technical effects they bring are the same as those of the method embodiment of the present application. For specific contents, please refer to the description in the method embodiment shown above in the embodiment of the present application, and no further details will be given here.

[0110] Please refer to Figure 10, which is a schematic diagram of the structure of a computing device provided in an embodiment of the present application. As shown in Figure 10, the computing device 1000 (which can be used to present the aforementioned first physical server or second physical server, etc.) includes: a processor 1001, a memory 1002, a communication interface 1003 and a bus 1004. The processor 1001, the memory 1002 and the communication interface 1003 are coupled via a bus (not marked in the figure). The memory 1002 stores instructions. When the execution instructions in the memory 1002 are executed, the computing device 1000 executes the method executed by the first virtual machine, the second virtual machine, the first virtual machine monitor, and the second virtual machine monitor in the above method embodiment.

[0111] The computing device 1000 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASICs), one or more digital signal processors (DSPs), one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms. For example, when a unit in the device can be implemented in the form of a processing element scheduler, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For example, these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0112] The processor 1001 may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA), other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0113] The memory 1002 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0114] Memory 1002 stores executable program code. Processor 1001 executes the executable program code to implement the functions of the aforementioned first virtual machine, second virtual machine, first virtual machine monitor, and second virtual machine monitor modules, thereby implementing the aforementioned cloud service system-based communication method. In other words, memory 1002 stores instructions for executing the aforementioned cloud service system-based communication method.

[0115] The communication interface 1003 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1000 and other devices or a communication network.

[0116] In addition to the data bus, bus 1004 may also include a power bus, a control bus, and a status signal bus. The bus may be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a unified bus (Ubus or UB), a Compute Express Link (CXL), or a Cache Coherent Interconnect for Accelerators (CCIX). Buses can be categorized as address buses, data buses, and control buses.

[0117] Please refer to Figure 11, which is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. As shown in Figure 11, the computing device cluster 1100 includes at least one computing device 1000.

[0118] As shown in Figure 11, the computing device cluster 1100 includes at least one computing device 1000. The memory 1002 of one or more computing devices 1000 in the computing device cluster 1100 may store the same instructions for executing the above-mentioned communication method based on the cloud service system.

[0119] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster 1100 may also store partial instructions for executing the aforementioned cloud service system-based communication method. In other words, the combination of one or more computing devices 1000 can jointly execute the aforementioned cloud service system-based communication method.

[0120] It should be noted that the memory 1002 in different computing devices 1000 in the computing device cluster 1100 can store different instructions, which are used to implement the functions of one or more modules among the first virtual machine, the second virtual machine, the first virtual machine monitor, the second virtual machine monitor, etc.

[0121] In some possible implementations, one or more computing devices 1000 in the computing device cluster 1100 may be connected via a network, which may be a wide area network or a local area network.

[0122] Please refer to Figure 12, which is a schematic diagram of computer devices in a computer cluster provided by an embodiment of the present application being connected via a network. As shown in Figure 12, two computing devices 1000A and 1000B are connected via a network. Specifically, each computing device is connected to the network via a communication interface.

[0123] In one possible implementation, the memory of computing device 1000A stores instructions for executing the functions of a first virtual machine and a first virtual machine monitor, etc. Meanwhile, the memory of computing device 1000B stores instructions for executing the functions of a second virtual machine and a second virtual machine monitor, etc.

[0124] It should be understood that the computing device 1000A and the computing device 1000B shown in Figure 12 can be connected to another computing device (not shown in Figure 12), and the memory of the computing device can be used as shared memory of the computing device 1000A and the computing device 1000B to complete communication between the computing device 1000A and the computing device 1000B.

[0125] An embodiment of the present application also relates to a computer storage medium, in which a program for signal processing is stored. When the computer storage medium is run on a computer, the computer executes the steps in the embodiments shown in Figures 5 and 7.

[0126] An embodiment of the present application further relates to a computer program product, which stores instructions that, when executed by a computer, enable the computer to perform the steps in the embodiments shown in FIG. 5 and FIG. 7 .

[0127] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0128] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0129] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0130] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0131] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes 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 a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

Claims

1. A communication method based on a cloud service system, characterized in that: The cloud service system includes a first virtual machine, a first virtual machine monitor, a second virtual machine, and a shared memory, the first virtual machine, the first virtual machine monitor, and the second virtual machine can access the shared memory, and the method includes: The first virtual machine stores the message to be sent to the second virtual machine in the shared memory; The first virtual machine sends the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor; The first virtual machine monitor sends the memory address to the second virtual machine based on the network address; The second virtual machine obtains the message from the shared memory based on the memory address.

2. The method according to claim 1, characterized in that The cloud service system includes a first physical server, the first physical server includes the first virtual machine, the first virtual machine monitor, and the second virtual machine, and the first virtual machine monitor sends the memory address to the second virtual machine based on the network address, including: After determining that the second virtual machine is located on the first physical server based on the network address, the first virtual machine monitor sends the memory address to the second virtual machine.

3. The method according to claim 1, characterized in that The cloud service system includes a first physical server and a second physical server, the first physical server includes the first virtual machine and the first virtual machine monitor, the second physical server includes the second virtual machine and the second virtual machine monitor, and the first virtual machine monitor sends the memory address to the second virtual machine based on the network address, including: After the first virtual machine monitor determines that the second virtual machine is located on the second physical server based on the network address, the first virtual machine monitor sends the memory address to the second virtual machine monitor; The second virtual machine monitor sends the memory address to the second virtual machine.

4. The method according to claim 2, characterized in that: The shared memory is located in the first physical server or a third physical server of the cloud service system, and the third physical server is accessible to the first physical server.

5. The method according to claim 3, characterized in that: The shared memory is located in a third physical server of the cloud service system, and the third physical server is accessible to the first physical server and the second physical server.

6. The method according to any one of claims 1 to 5, characterized in that: The shared memory includes a plurality of memory areas, and the first virtual machine storing the message to be sent to the second virtual machine in the shared memory includes: The first virtual machine determines, among the multiple memory areas, a memory area that matches the message to be sent to the second virtual machine; The first virtual machine stores the message in the memory area, and uses the memory address corresponding to the memory area as the memory address of the message in the shared memory.

7. The method according to claim 6, characterized in that The second virtual machine obtaining the message from the shared memory based on the memory address includes: The second virtual machine determines the memory area in the shared memory based on the memory address, and obtains the message from the memory area.

8. A cloud service system, characterized in that: The cloud service system includes a first virtual machine, a first virtual machine monitor, a second virtual machine and a shared memory, and the first virtual machine, the first virtual machine monitor and the second virtual machine can access the shared memory; The first virtual machine is used to store the message to be sent to the second virtual machine in the shared memory; The first virtual machine is further configured to send the memory address of the message in the shared memory and the network address of the second virtual machine to the first virtual machine monitor; The first virtual machine monitor is used to send the memory address to the second virtual machine based on the network address; The second virtual machine is used to obtain the message from the shared memory based on the memory address.

9. The cloud service system according to claim 8, characterized in that: The cloud service system includes a first physical server, the first physical server includes the first virtual machine, the first virtual machine monitor and the second virtual machine; The first virtual machine monitor is configured to send the memory address to the second virtual machine after determining that the second virtual machine is located on the first physical server based on the network address.

10. The cloud service system according to claim 8, characterized in that: The cloud service system includes a first physical server and a second physical server, the first physical server includes the first virtual machine and the first virtual machine monitor, and the second physical server includes the second virtual machine and the second virtual machine monitor; the first virtual machine monitor being configured to send the memory address to the second virtual machine monitor after determining that the second virtual machine is located on the second physical server based on the network address; The second virtual machine monitor is used to send the memory address to the second virtual machine.

11. The cloud service system according to claim 9, characterized in that: The shared memory is located in the first physical server or a third physical server of the cloud service system, and the third physical server is accessible to the first physical server.

12. The cloud service system according to claim 10, characterized in that: The shared memory is located in a third physical server of the cloud service system, and the third physical server is accessible to the first physical server and the second physical server.

13. The cloud service system according to any one of claims 8 to 12, characterized in that: The shared memory includes multiple memory areas, and the first virtual machine is used to: Determine, among the multiple memory areas, a memory area that matches the message to be sent to the second virtual machine; The message is stored in the memory area, and the memory address corresponding to the memory area is used as the memory address of the message in the shared memory.

14. The cloud service system according to claim 13, characterized in that: The second virtual machine is used to determine the memory area in the shared memory based on the memory address, and obtain the message from the memory area.

15. A computing device cluster, characterized in that: The computing device cluster includes at least one computing device, each computing device including a processor and a memory: The memory is used to store instructions; The processor is configured to cause the computing device cluster to execute the method according to any one of claims 1 to 7 according to the instructions.

16. A computer storage medium, characterized in that: The computer storage medium stores one or more instructions, which, when executed by one or more computers, enable the one or more computers to implement the method of any one of claims 1 to 7.

17. A computer program product, characterized in that The computer program product stores instructions, and when the instructions are executed by a computer, the computer implements the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and device for assisting communication between virtual machines

    CN101819564A

  • Data transmission method, device and system and internal storage device

    CN103559075A

  • Data sharing method and device of virtual machine

    CN106612306A

  • Packet transmission method, virtual switch, and server

    WO2018000195A1