Virtual instance management method based on cloud computing technology and cloud management platform

By connecting a high-speed interconnect bus and a global memory management node in the cloud management platform, cross-server virtual instance memory sharing is achieved, solving the problems of low cross-server data communication and memory utilization efficiency, and improving data communication efficiency and memory utilization efficiency.

CN121764699APending Publication Date: 2026-03-31HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

Existing memory sharing capabilities are limited to the same host and cannot achieve data communication and memory utilization efficiency improvement between virtual instances across servers. RDMA technology relies on specific network configurations and is cumbersome to use, and does not support multi-host memory sharing.

Method used

By connecting to a high-speed interconnect bus in the cloud management platform, memory sharing between virtual instances across servers is achieved. A mapping relationship between physical memory and global memory addresses is established using a global memory management node, supporting cross-host memory access via a parallel bus with synchronous memory access semantics.

Benefits of technology

It improves the efficiency of data communication between virtual instances across servers, achieves redundancy removal across host memory, and enhances memory utilization efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121764699A_ABST
    Figure CN121764699A_ABST
Patent Text Reader

Abstract

The invention provides a virtual instance management method based on a cloud computing technology and a cloud management platform. The cloud management platform is used for managing the cloud data center, the cloud data center comprises a plurality of servers, and the plurality of servers are accessed to a high-speed interconnection bus in the cloud data center. The method comprises the following steps: receiving a virtual instance memory creation request input by a tenant; in response to the virtual instance memory creation request, selecting a first server from a plurality of servers and sending a first control command to the first server; receiving a first virtual instance memory binding request; and in response to the first virtual instance memory binding request, sending a second control command to the first server to instruct the first server to provide a virtual instance memory located in the first server to a first virtual instance located in the second server for use through the high-speed interconnection bus. By means of the technical scheme, cross-server memory sharing of the virtual instances can be achieved, and the data communication efficiency and the memory utilization efficiency are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of cloud computing, and more specifically, to a virtual instance management method and cloud management platform based on cloud computing technology. Background Technology

[0002] Memory sharing allows multiple processes to map the same physical memory block to their respective virtual addresses, enabling them to directly read and write the contents of that same physical memory block without needing to use message passing or other communication methods. In other words, memory sharing allows processes to share data without additional copying, eliminating redundancy and thus improving process communication efficiency and reducing memory overhead.

[0003] With the development of cloud computing, there is a significant demand for data communication between virtual instances such as virtual machines or containers deployed on different servers. However, existing memory sharing capabilities are limited to within the host, meaning they can only achieve memory sharing between different processes on the same host. While Remote Direct Memory Access (RDMA) technology provides cross-host remote memory access capabilities, it relies on configuring wireless bandwidth (InfiniBand, IB) or RDMA over converged Ethernet (RoCE) networks between servers, and applications must also be modified according to the RDMA protocol. Therefore, its usage is cumbersome and it does not support multiple hosts simultaneously sharing the same memory or cross-host redundant memory deduplication.

[0004] Therefore, improving the efficiency of data communication and memory utilization between virtual instances across servers has become an urgent technical problem to be solved. Summary of the Invention

[0005] This application provides a virtual instance management method and cloud management platform based on cloud computing technology, which can realize cross-server memory sharing of virtual instances (including but not limited to containers and virtual machines), thereby improving the data communication efficiency between virtual instances across servers. In addition, it can also realize cross-host memory redundancy removal and improve the utilization efficiency of cross-server memory.

[0006] Firstly, a virtual instance management method based on cloud computing technology is provided. This method is applied to a cloud management platform, which manages a cloud data center. The cloud data center includes multiple servers, which are connected to a high-speed interconnect bus within the cloud data center. The method includes: a cloud management platform receiving a virtual instance memory creation request input by a tenant, the virtual instance shared memory creation request including the capacity of the virtual instance memory to be created, and the type of virtual instance memory, including shared memory type and / or dedicated memory type; the cloud management platform responding to the virtual instance memory creation request selecting a first server among multiple servers, wherein the first server has physical memory matching the capacity, and sending a first control command to the first server, the first control command being used to instruct the first server to create virtual instance memory according to the physical memory; the cloud management platform receiving a first virtual instance memory binding request, the first virtual instance memory binding request including the identifier of a first virtual instance to be bound, the first virtual instance being deployed on a second server among multiple servers; the cloud management platform responding to the first virtual instance memory binding request sending a second control command to the first server, the second control command being used to instruct the first server to provide the virtual instance memory to the first virtual instance for use via a high-speed interconnect bus, wherein: in the case of shared memory type, the virtual instance memory is configured to be provided to the first virtual instance in a manner that allows sharing with other virtual instances; and / or, in the case of dedicated memory type, the virtual instance memory is configured to be provided to the first virtual instance in a manner that does not allow sharing with other virtual instances.

[0007] Optionally, virtual instances include, but are not limited to, virtual machines and / or containers.

[0008] According to the technical solution provided in this application, by connecting multiple servers to a high-speed interconnect bus, a virtual instance deployed on one server can directly read and / or write memory on other servers. Based on this, a specific amount of physical memory is first allocated on one server as virtual instance memory. Then, this virtual instance memory is bound to virtual instances deployed on other servers via the high-speed interconnect bus, enabling virtual instances to use virtual instance memory across hosts. This improves the efficiency of cross-server data communication between virtual instances and provides a foundation for cross-server memory sharing between virtual instances.

[0009] In conjunction with the first aspect, in some implementations of the first aspect, the type is a shared memory type. The method further includes: a cloud management platform receiving a second virtual instance memory binding request, the second virtual instance memory binding request including the identifier of the second virtual instance whose memory is to be bound, the second virtual instance being deployed on a third server of multiple servers; the cloud management platform responding to the second virtual instance memory binding request sending a third control command to a first server, the third control command being used to instruct the first server to provide the virtual instance memory to the second virtual instance for use through a high-speed interconnect bus, wherein the virtual instance memory is configured to allow both the first and second virtual instances to access it.

[0010] According to the above technical solution, the partitioned virtual instance memory can be bound to multiple virtual instances across servers, enabling multiple virtual instances across servers to access the same shared type of virtual memory, thereby realizing memory sharing of virtual instances across servers, improving data communication efficiency, and also realizing cross-host memory redundancy removal, improving the utilization efficiency of cross-server memory.

[0011] In conjunction with the first aspect, in some implementations of the first aspect, the first virtual instance memory binding request further includes: setting the first virtual instance's read-write or read-but-not-write permission information for the virtual instance memory; the second control command is also used to instruct the first server to: allow the first virtual instance to read and write to the virtual instance memory, or allow the first virtual instance to read the virtual instance memory and prohibit the first virtual instance from writing to the virtual instance memory; the second virtual instance memory binding request further includes: setting the second virtual instance's read-write or read-but-not-write permission information for the virtual instance memory; the third control command is also used to instruct the first server to: allow the second virtual instance to read and write to the virtual instance memory, or allow the second virtual instance to read the virtual instance memory and prohibit the second virtual instance from writing to the virtual instance memory.

[0012] According to the above technical solution, by setting permission information, the virtual instance memory can flexibly switch between read-write mode and read-only mode for each bound virtual instance, thereby ensuring the consistency of data in the virtual instance memory.

[0013] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: the cloud management platform receiving a first virtual instance memory unbinding request input by the tenant, the first virtual instance memory unbinding request including the identifier of the first virtual instance; the cloud management platform responding to the first virtual instance memory unbinding request sending a fourth control command to the first server, the fourth control command being used to instruct the first server to stop providing virtual instance memory to the first virtual instance for use.

[0014] According to the above technical solution, the binding relationship between virtual instances and virtual instance memory can be released according to tenant needs, thereby improving the flexibility of virtual instance memory allocation.

[0015] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: the cloud management platform receiving a virtual instance memory deletion request input by the tenant; the cloud management platform responding to the virtual instance memory deletion request sending a fifth control command to the first server, the fifth control command being used to instruct the first server to release the virtual instance memory.

[0016] According to the above technical solution, virtual instance memory can be deleted according to tenant needs, thereby releasing redundant memory resources in a timely manner and improving memory utilization efficiency.

[0017] In conjunction with the first aspect, in some implementations of the first aspect, the cloud data center is also equipped with a global memory management node. The global memory management node is used to establish a mapping relationship between the physical memory address and the global memory address that matches the capacity in the first server. The first server confirms the global memory address corresponding to the physical memory address through the global memory management node and allocates the global memory address to the first virtual instance. The global memory management node is distributed in each of the multiple servers, or centrally set in one of the multiple servers.

[0018] According to the above technical solution, by uniformly managing the physical memory addresses of multiple servers as global memory addresses, any global memory address range can be allocated to virtual instances on any server, so that each virtual instance can access any physical memory without knowing which server the physical memory is actually located on, thereby reducing the complexity of memory address management.

[0019] In conjunction with the first aspect, in some implementations of the first aspect, the high-speed interconnect bus is a parallel bus with a bandwidth of not less than 40 Gb / s and supporting synchronous memory access semantics.

[0020] According to the above technical solution, the high-speed interconnect bus supports synchronous memory access semantics, which enables servers to directly read and / or write to the memory of other servers when accessing other servers across hosts, without having to copy the memory contents of the other server to local memory, thereby improving the access efficiency of cross-server virtual instance memory.

[0021] Secondly, a virtual instance management method based on cloud computing technology is provided. This method is applied to a cloud management platform, which manages a cloud data center. The cloud data center includes multiple servers, which are connected to a high-speed interconnect bus inside the cloud data center. The method includes: a cloud management platform receiving a virtual instance creation request input by a tenant, the virtual instance creation request including the capacity of the virtual instance shared memory and the specifications of the virtual instance to be created; the cloud management platform responding to the virtual instance creation request selecting a first server among multiple servers, sending a first control command to the first server, the first control command instructing the first server to: create virtual instance shared memory according to the physical memory in the first server matching the capacity, create a first virtual instance on the first server according to the virtual instance specifications, and set the virtual instance shared memory to be accessible by the first virtual instance, wherein the first server is equipped with hardware resources that can provide the virtual instance specifications; the cloud management platform receiving a virtual instance memory binding request, the virtual instance memory binding request including the identifier of a second virtual instance to be bound to the virtual instance shared memory, the second virtual instance being deployed on a second server among multiple servers; the cloud management platform responding to the virtual instance memory binding request sending a second control command to the first server, the second control command instructing the first server to provide the virtual instance shared memory to the second virtual instance for use via a high-speed interconnect bus, wherein the virtual instance shared memory is set to be provided to the second virtual instance in a manner that allows sharing with the first virtual instance.

[0022] Optionally, virtual instances include, but are not limited to, virtual machines and / or containers.

[0023] According to the technical solution provided in this application, by connecting multiple servers to a high-speed interconnect bus, virtual instances deployed on one server can directly read and / or write memory to other servers. Based on this, some or all of the virtual instance memory created on one server can be designated as shared virtual instance memory. Then, based on the high-speed interconnect bus, this shared virtual instance memory is bound to other virtual instances deployed on other servers, allowing multiple virtual instances across servers to jointly access the same shared virtual instance memory. This achieves cross-server memory sharing for virtual instances, thereby improving data communication efficiency and enabling cross-host memory redundancy removal, thus improving cross-server memory utilization efficiency.

[0024] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: the cloud management platform receiving a first virtual instance release request input by the tenant, the first virtual instance release request including the identifier of the first virtual instance; the cloud management platform responding to the first virtual instance release request sending a third control command to the first server, the third control command being used to instruct the first server to: unload the first virtual instance, release the shared memory of the virtual instance, and release the hardware resources occupied by the first virtual instance.

[0025] According to the above technical solution, the shared memory of virtual instances can be released when the attached virtual instance is unloaded, thereby releasing redundant memory resources in a timely manner and improving memory utilization efficiency.

[0026] In conjunction with the second aspect, in some implementations of the second aspect, the virtual instance creation request further includes: setting the first virtual instance's read-write or read-but-not-write permission information for the shared memory of the virtual instance; the first control command is also used to instruct the first server to: allow the first virtual instance to read and write to the shared memory of the virtual instance, or allow the first virtual instance to read the shared memory of the virtual instance and prohibit the first virtual instance from writing to the shared memory of the virtual instance; the virtual instance memory binding request further includes: setting the second virtual instance's read-write or read-but-not-write permission information for the shared memory of the virtual instance; the second control command is also used to instruct the first server to: allow the second virtual instance to read and write to the shared memory of the virtual instance, or allow the second virtual instance to read the shared memory of the virtual instance and prohibit the second virtual instance from writing to the shared memory of the virtual instance.

[0027] According to the above technical solution, by setting permission information, the shared memory of virtual instances can flexibly switch between read-write mode and read-only mode for each bound virtual instance, thereby ensuring the consistency of data in the memory of the virtual instance.

[0028] In conjunction with the second aspect, in some implementations of the first aspect, the cloud data center also has a global memory management node. The global memory management node is used to establish a mapping relationship between the physical memory address and the global memory address that matches the capacity in the first server. The first server confirms the global memory address corresponding to the physical memory address through the global memory management node and allocates the global memory address to the first virtual instance and the second virtual instance. The global memory management node is distributed in each of the multiple servers, or centrally set in one of the multiple servers.

[0029] According to the above technical solution, by uniformly managing the physical memory address corresponding to the shared memory of virtual instances as a global memory address, the physical memory can be allocated as a shared source to virtual instances on any server, so that each virtual instance can access the shared memory of the virtual instance without knowing which server the corresponding physical memory is actually located on, thereby reducing the complexity of memory address management.

[0030] In conjunction with the second aspect, in some implementations of the first aspect, the high-speed interconnect bus is a parallel bus with a bandwidth of not less than 40 Gb / s and supporting synchronous memory access semantics.

[0031] According to the above technical solution, the high-speed interconnect bus supports synchronous memory access semantics, which enables servers to directly read and / or write to the memory of other servers when accessing other servers across hosts, without having to copy the memory contents of the other server to local memory, thereby improving the access efficiency of cross-server virtual instance memory.

[0032] Thirdly, a cloud management platform is provided for managing a cloud data center, which includes multiple servers connected to a high-speed interconnect bus within the cloud data center. The cloud management platform includes: a receiving module for receiving virtual instance memory creation requests input by tenants, wherein the virtual instance shared memory creation request includes the capacity of the virtual instance memory to be created and the type of virtual instance memory, including shared memory type and / or dedicated memory type; a processing module for responding to the virtual instance memory creation request by selecting a first server among multiple servers, wherein the first server has physical memory matching the capacity, and sending a first control command to the first server, wherein the first control command is used to instruct the first server to create virtual instance memory according to the physical memory; the receiving module is also used to receive a first virtual instance memory binding request, wherein the first virtual instance memory binding request includes the identifier of the first virtual instance to be bound, and the first virtual instance is deployed on a second server among multiple servers; the processing module is also used to respond to the first virtual instance memory binding request by sending a second control command to the first server, wherein the second control command is used to instruct the first server to provide virtual instance memory to the first virtual instance for use through a high-speed interconnect bus, wherein: in the case of shared memory type, the virtual instance memory is set to be provided to the first virtual instance in a manner that allows sharing with other virtual instances; and / or, in the case of dedicated memory type, the virtual instance memory is set to be provided to the first virtual instance in a manner that does not allow sharing with other virtual instances.

[0033] Optionally, virtual instances include, but are not limited to, virtual machines and / or containers.

[0034] In conjunction with the third aspect, in some implementations of the third aspect, the type is shared memory. The receiving module is also used to receive a second virtual instance memory binding request. The second virtual instance memory binding request includes the identifier of the second virtual instance whose memory is to be bound. The second virtual instance is deployed on a third server of multiple servers. The processing module is also used to respond to the second virtual instance memory binding request by sending a third control command to the first server. The third control command is used to instruct the first server to provide the virtual instance memory to the second virtual instance for use through a high-speed interconnect bus. The virtual instance memory is configured to allow both the first and second virtual instances to access it.

[0035] In conjunction with the third aspect, in some implementations of the third aspect, the first virtual instance memory binding request further includes: setting the first virtual instance's read-write or read-but-not-write permission information for the virtual instance memory; the second control command is also used to instruct the first server to: allow the first virtual instance to read and write to the virtual instance memory, or allow the first virtual instance to read the virtual instance memory and prohibit the first virtual instance from writing to the virtual instance memory; the second virtual instance memory binding request further includes: setting the second virtual instance's read-write or read-but-not-write permission information for the virtual instance memory; the third control command is also used to instruct the first server to: allow the second virtual instance to read and write to the virtual instance memory, or allow the second virtual instance to read the virtual instance memory and prohibit the second virtual instance from writing to the virtual instance memory.

[0036] In conjunction with the third aspect, in some implementations of the third aspect, the receiving module is further configured to receive a first virtual instance memory unbinding request input by the tenant, the first virtual instance memory unbinding request including the identifier of the first virtual instance; the processing module is further configured to respond to the first virtual instance memory unbinding request by sending a fourth control command to the first server, the fourth control command being used to instruct the first server to stop providing virtual instance memory to the first virtual instance.

[0037] In conjunction with the third aspect, in some implementations of the third aspect, the receiving module is further configured to receive a virtual instance memory deletion request input by the tenant; the processing module is further configured to respond to the virtual instance memory deletion request by sending a fifth control command to the first server, the fifth control command being used to instruct the first server to release the virtual instance memory.

[0038] In conjunction with the third aspect, in some implementations of the third aspect, the cloud data center also sets up a global memory management node. The global memory management node is used to establish a mapping relationship between the physical memory address and the global memory address that matches the capacity in the first server. The first server confirms the global memory address corresponding to the physical memory address through the global memory management node and allocates the global memory address to the first virtual instance. The global memory management node is distributed in each of the multiple servers, or centrally set in one of the multiple servers.

[0039] In conjunction with the third aspect, in some implementations of the third aspect, the high-speed interconnect bus is a parallel bus with a bandwidth of not less than 40Gb / s and supporting synchronous memory access semantics.

[0040] Fourthly, a cloud management platform is provided for managing a cloud data center, which includes multiple servers connected to a high-speed interconnect bus network within the cloud data center. The cloud management platform includes: a receiving module for receiving virtual instance creation requests input by tenants, the virtual instance creation request including the capacity of virtual instance shared memory and the specifications of the virtual instance to be created; a processing module for responding to the virtual instance creation request by selecting a first server among multiple servers, sending a first control command to the first server, the first control command instructing the first server to: create virtual instance shared memory according to the physical memory in the first server that matches the capacity, create a first virtual instance on the first server according to the virtual instance specifications, and set the virtual instance shared memory to be accessible by the first virtual instance, wherein the first server is equipped with hardware resources that can provide the virtual instance specifications; the receiving module is also used to receive virtual instance memory binding requests, the virtual instance memory binding request including the identifier of a second virtual instance to be bound to virtual instance shared memory, the second virtual instance being deployed on a second server among multiple servers; the processing module is also used to respond to the virtual instance memory binding request by sending a second control command to the first server, the second control command instructing the first server to provide virtual instance shared memory to the second virtual instance for use via a high-speed interconnect bus, wherein the virtual instance shared memory is set to be provided to the second virtual instance in a manner that allows sharing with the first virtual instance.

[0041] Optionally, virtual instances include, but are not limited to, virtual machines and / or containers.

[0042] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the receiving module is further configured to receive a first virtual instance release request input by the tenant, the first virtual instance release request including the identifier of the first virtual instance; the processing module is further configured to respond to the first virtual instance release request by sending a third control command to the first server, the third control command being used to instruct the first server to: unload the first virtual instance, release the shared memory of the virtual instance, and release the hardware resources occupied by the first virtual instance.

[0043] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the virtual instance creation request further includes: setting the first virtual instance's read / write or read / non-write permissions for the shared memory of the virtual instance; the first control command is also used to instruct the first server to: allow the first virtual instance to read and write to the shared memory of the virtual instance, or allow the first virtual instance to read the shared memory of the virtual instance and prohibit the first virtual instance from writing to the shared memory of the virtual instance; the virtual instance memory binding request further includes: setting the second virtual instance's read / write or read / non-write permissions for the shared memory of the virtual instance; the second control command is also used to instruct the first server to: allow the second virtual instance to read and write to the shared memory of the virtual instance, or allow the second virtual instance to read the shared memory of the virtual instance and prohibit the second virtual instance from writing to the shared memory of the virtual instance.

[0044] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the cloud data center also sets up a global memory management node. The global memory management node is used to establish a mapping relationship between the physical memory address and the global memory address that matches the capacity in the first server. The first server confirms the global memory address corresponding to the physical memory address through the global memory management node, and allocates the global memory address to the first virtual instance and the second virtual instance. The global memory management node is distributed in each of the multiple servers, or centrally set in one of the multiple servers.

[0045] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the high-speed interconnect bus is a parallel bus with a bandwidth of not less than 40Gb / s and supporting synchronous memory access semantics.

[0046] Fifthly, a computing device is provided, including a processor and a memory, wherein the memory is used to store instructions, and the processor is used to call and execute the instructions from the memory, causing the computing device to perform the method of the first aspect or any possible implementation thereof.

[0047] A sixth aspect provides a computing device including a processor and a memory, wherein the memory is used to store instructions, and the processor is used to call and execute the instructions from the memory, causing the computing device to perform the methods of the second aspect or any possible implementation thereof.

[0048] In a seventh aspect, a computing device cluster is provided, comprising at least one computing device, each computing device including a processor and a memory, wherein the memory is used to store instructions, and the processor is used to call and execute the instructions from the memory, causing the computing device cluster to perform the method of the first aspect or any possible implementation thereof.

[0049] Eighthly, a computing device cluster is provided, including at least one computing device, each computing device including a processor and a memory, wherein the memory is used to store instructions, and the processor is used to call and execute the instructions from the memory, causing the computing device cluster to perform the method of the second aspect or any possible implementation thereof.

[0050] Optionally, the processor can be a general-purpose processor, which can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, integrated circuit, etc.; when implemented in software, the processor can be a general-purpose processor that reads software code stored in memory, which can be integrated into the processor or exist independently outside the processor.

[0051] Ninthly, a chip is provided that acquires and executes instructions to implement the method in the first aspect or any possible implementation of the first aspect.

[0052] In a tenth aspect, a chip is provided that acquires and executes instructions to implement the method in the second aspect or any possible implementation thereof.

[0053] Optionally, as one implementation, the chip includes a processor and a data interface, through which the processor reads instructions stored in the memory and executes the method in the first aspect or any possible implementation of the first aspect.

[0054] Optionally, as one implementation, the chip may further include a memory storing instructions, and the processor is used to execute the instructions stored in the memory. When the instructions are executed, the processor is used to perform the method in the first aspect or any possible implementation of the first aspect.

[0055] In an eleventh aspect, a computer program product containing instructions is provided, which, when run by a computing device or a cluster of computing devices, causes the computing device or the cluster of computing devices to perform the method in the first aspect or any possible implementation thereof.

[0056] In a twelfth aspect, a computer program product containing instructions is provided, which, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method of the second aspect or any possible implementation thereof.

[0057] In a thirteenth aspect, a computer-readable storage medium is provided, including computer program instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method described in the first aspect or any possible implementation thereof.

[0058] In a fourteenth aspect, a computer-readable storage medium is provided, including computer program instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method of the second aspect or any possible implementation thereof.

[0059] As examples, these computer-readable storage media include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), flash memory, electrically EPROM (EEPROM), and hard drive.

[0060] Alternatively, as one implementation method, the aforementioned storage medium can specifically be a non-volatile storage medium. Attached Figure Description

[0061] Figure 1 This is a schematic diagram of the system architecture of an embodiment of this application.

[0062] Figure 2 This is a schematic diagram of a cloud system provided in an embodiment of this application.

[0063] Figure 3 This is a schematic flowchart of a virtual instance management method provided in an embodiment of this application.

[0064] Figure 4 This is a schematic diagram illustrating an application scenario of a virtual instance management method provided in an embodiment of this application.

[0065] Figure 5 This is a schematic diagram illustrating an application scenario of another virtual instance management method provided in this application embodiment.

[0066] Figure 6This is a schematic diagram illustrating an application scenario of another virtual instance management method provided in this application embodiment.

[0067] Figure 7 This is a schematic diagram illustrating an application scenario of another virtual instance management method provided in this application embodiment.

[0068] Figure 8 This is a schematic diagram illustrating an application scenario of another virtual instance management method provided in this application embodiment.

[0069] Figure 9 This is a schematic diagram illustrating an application scenario of another virtual instance management method provided in this application embodiment.

[0070] Figure 10 This is a schematic flowchart of another virtual instance management method provided in the embodiments of this application.

[0071] Figure 11 This is a schematic diagram illustrating an application scenario of a virtual instance management method provided in an embodiment of this application.

[0072] Figure 12 This is a schematic structural block diagram of a cloud management platform provided in an embodiment of this application.

[0073] Figure 13 This is a schematic structural block diagram of another cloud management platform provided in the embodiments of this application.

[0074] Figure 14 This is a schematic structural block diagram of a computing device provided in an embodiment of this application.

[0075] Figure 15 This is a schematic structural block diagram of a computing device cluster provided in an embodiment of this application.

[0076] Figure 16 This is a schematic structural block diagram of another computing device cluster provided in an embodiment of this application. Detailed Implementation

[0077] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0078] This application will present various aspects, embodiments, or features relating to systems comprising multiple devices, components, modules, etc. It should be understood and appreciated that individual systems may include additional devices, components, modules, etc., and / or may not include all devices, components, modules, etc. discussed in conjunction with the accompanying drawings. Furthermore, combinations of these approaches are also possible.

[0079] Furthermore, in the embodiments of this application, the words "exemplary," "for example," etc., are used to indicate that they are examples, illustrations, or descriptions. Any embodiment or design scheme described as "exemplary" in this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of the term "exemplary" is intended to present the concept in a concrete manner.

[0080] In the embodiments of this application, "corresponding" and "corresponding" can sometimes be used interchangeably. It should be noted that when the distinction is not emphasized, their intended meanings are consistent.

[0081] The network architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0082] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0083] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can mean: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0084] Memory sharing allows multiple processes on the same host to map the same physical memory block to their respective virtual addresses, enabling them to directly read and write the contents of that same physical memory block without needing to use message passing or other communication methods. In other words, memory sharing allows processes to share data without additional copying, eliminating redundancy and thus improving process communication efficiency and reducing memory overhead.

[0085] With the development of cloud computing, there is a significant need for data communication between virtual instances such as virtual machines or containers deployed on different servers. The memory-sharing capabilities limited to the host machine are no longer sufficient to meet the data communication demands between virtual instances in this cloud scenario.

[0086] Compute Express Link (CXL) is a protocol based on the Peripheral Component Interconnect Express (PCIe) physical link standard. This protocol employs a traditional device architecture and supports remote access to devices such as memory and input / output (I / O). Furthermore, it supports the sharing of independent memory devices across multiple hosts and cache consistency for concurrent access to the same memory device by multiple hosts. However, this protocol does not support memory sharing between hosts or between virtual machines, nor does it provide a solution for presenting shared memory to tenants in virtualization scenarios. Therefore, this protocol cannot provide adequate support for cross-node memory sharing in cloud environments.

[0087] Kernel samepagemerging (KSM) is a memory sharing technology used in virtualization environments, supporting the scanning and sharing of identical pages within a host machine. KSM technology scans and compares memory page contents at the operating system (OS) kernel level (based on page hashes or byte-by-byte comparison), mapping multiple host virtual addresses or virtual machine virtual addresses to the same host physical address or virtual machine virtual address, thus achieving the sharing and merging of multiple pages at the host or virtual machine operating system level. This merging process is invisible to processes or applications on the host or virtual machine. When a process performs a write operation on a merged page, a write-copy mechanism is automatically triggered, which reallocates a new page and establishes a new mapping relationship, ensuring that the merged page content is not tampered with. However, KSM technology also cannot support cross-host memory sharing requirements and suffers from the problem of applications not being able to effectively utilize shared memory pages.

[0088] Furthermore, while remote direct memory access (RDMA) technology provides cross-host remote memory access capabilities, it relies on configuring wireless bandwidth (InfiniBand, IB) between servers or an RDMA (RDMA over converged ethernet, RoCE) network based on converged Ethernet. Applications must also be modified according to the RDMA protocol, making it cumbersome to use and not supporting multiple hosts sharing the same memory or cross-host redundant memory deduplication.

[0089] Therefore, improving the efficiency of data communication and memory utilization between virtual instances across servers has become an urgent technical problem to be solved.

[0090] In view of this, the embodiments of this application provide a virtual instance management method based on cloud computing technology, which can realize memory sharing of virtual instances (including but not limited to containers and virtual machines) across servers, thereby improving the data communication efficiency between virtual instances across servers. In addition, it can also realize cross-host memory redundancy removal and improve the utilization efficiency of cross-server memory.

[0091] Figure 1 This is a schematic diagram of the system architecture to which the embodiments of this application can be applied. For example... Figure 1 As shown, the system can consist of multiple hosts (such as host A, host B, host C, etc. in the figure). The system may include a host memory manager 110, a global memory manager 120, and virtual instances and / or processes running on the hosts. Virtual instances may include, but are not limited to, virtual machines and / or containers.

[0092] Multiple hosts in the system can be connected via a high-speed interconnect bus, enabling processes and / or virtual instances deployed on one host to remotely and synchronously access the physical memory of other hosts in the system. Each host can have a dedicated interface, allowing it to directly connect to the high-speed interconnect bus. Optionally, the high-speed interconnect bus can be a parallel bus with a bandwidth of not less than 40Gb / s and supporting synchronous memory access semantics. Synchronous memory access semantics means that when a server accesses the memory of another server across hosts via the high-speed interconnect bus, it can directly read and / or write to the memory of the other server without copying the memory contents of the other server to its local memory. The high-speed interconnect bus can include, but is not limited to, an InfiniBand (IB) bus, a compute express link (CXL) bus, or any other parallel bus with a bandwidth of not less than 40Gb / s; this application does not specifically limit its use.

[0093] The host memory manager 110 can be deployed on multiple hosts to manage the physical memory of each host and establish a mapping relationship between the host's physical memory address (also known as the host physical address (HostPA)) and the global memory address (also known as the global virtual address (GlobaVA)).

[0094] The global memory manager 120 can be deployed in a distributed manner on each host in the system, or it can be deployed centrally on one of the hosts in the system. The global memory manager 120 is used to establish and maintain the global memory address range of the system, and allocate the global memory addresses in the global memory address range to the corresponding virtual instances and / or processes according to the needs of each host.

[0095] Virtual instances and processes are objects deployed on a host that use memory resources, including but not limited to process 131, container 132, and virtual machine 133. It should be understood that the specific implementation of virtual instances and / or processes using global memory addresses can differ depending on the type of object and / or the technical scenario. For example, in some possible implementations, host A, host B, or host C can provide one or more GlobalVA segments to process 131 through the global memory manager 120. These segments of GlobalVA can be referred to as the addresses of process 131's memory space, and the addresses of this memory space can be owned and controlled by the corresponding process 131. For example, in other possible implementations, host A, host B, or host C can establish a mapping relationship between one or more GlobalVA segments and the physical memory addresses (also referred to as guest physical addresses, GuestPA) of container 132 and / or virtual machine 133 through the global memory manager 120, or establish a mapping relationship between one or more GlobalVA segments and the virtual memory addresses (also referred to as guest virtual addresses, GuestVA) of container 132 and / or virtual machine 133. Here, GuestVA can be an address formed by the virtual machine's operating system mapping GuestPA. The virtual machine's operating system can provide GuestVA to processes or application software set on the virtual machine's operating system. The virtual machine's operating system can record the mapping relationship from GuestVA to GuestPA, and the conversion from GuestVA to GuestPA can be implemented by the page tables of the virtual machine's operating system.

[0096] It should be understood that the term "address" in this application refers to a memory address. Therefore, a physical memory address may be simply referred to as a physical address (PA) in the following text, and a virtual memory address may be simply referred to as a virtual address (VA).

[0097] Based on the high-speed interconnect bus, the host can provide the memory resources of any host to virtual instances and / or processes on any host (including the host where the memory resources are located and other hosts) through the host memory manager 110 and the global memory manager 120, thereby providing a foundation for realizing cross-server memory sharing of virtual instances.

[0098] The virtual instance management method provided in this application can be applied to cloud management platforms. Figure 2 A schematic diagram of a cloud system provided in an embodiment of this application is shown. For example... Figure 2 As shown, the cloud management platform 210 is used to manage the cloud data center 230, which may include multiple servers connected to a high-speed interconnect bus within the cloud data center. Optionally, the servers in the cloud data center 230 may be, for example... Figure 1 The hosts shown in the system. Each server can provide physical memory resources at the hardware layer, and can deploy virtual instances such as virtual machines and / or containers at the software layer.

[0099] The cloud management platform 210 provides access interfaces (such as interfaces or application program interfaces, APIs). Tenants can operate clients to remotely access the access interface to register a cloud account and password on the cloud management platform and log in to the cloud management platform. After the cloud management platform successfully authenticates the cloud account and password, the tenant can further pay to select and purchase virtual instances of specific specifications on the cloud management platform. After successful payment and purchase, the cloud management platform provides the remote login account and password for the purchased virtual instance. The client can remotely log in to the virtual instance and manage the virtual instance.

[0100] Specifically, tenants can use client 220 to log in to cloud management platform 210 via the internet, and then perform operations such as creating virtual instances, binding virtual instance memory, releasing virtual instance memory, and deleting virtual instances through cloud management platform 210. In addition, cloud management platform 210 can also provide tenants with other virtual instance management services, including but not limited to user console, compute management service, network management service, storage management service, authentication service, and image management service. The user console provides an interface or API for interaction with tenants; the compute management service manages servers running virtual machines and containers, as well as bare metal servers; the network management service manages network services (such as gateways and firewalls); the storage management service manages storage services (such as data bucket services); the authentication service manages tenant account passwords; and the image management service manages virtual machine images. This application does not specifically limit these services.

[0101] Optionally, a global memory management node can also be configured in cloud data center 230 (not in Figure 2 (As shown in the image). The global memory management node may include... Figure 1 The host memory manager 110 and global memory manager 120 shown are used to establish the mapping relationship between the physical memory addresses and global memory addresses of the servers in the cloud data center 230. Servers in the cloud data center 230 can use the global memory management node to confirm the global memory address corresponding to the physical memory address and allocate the global memory address to the virtual instances deployed on the server. Optionally, the global memory management node can be distributed across each of the multiple servers in the cloud data center 230, or centrally located in one of the multiple servers in the cloud data center 230.

[0102] The following is combined Figure 3 This application describes in detail the method for managing virtual instances. Optionally, Figure 3 The method shown can be applied to Figure 2 The cloud management platform 210 is shown. (For example...) Figure 3 As shown, the method includes the following steps.

[0103] Step S310: Receive the virtual instance memory creation request input by the tenant.

[0104] For example, in step S310, a tenant can log in to the cloud management platform via a client to create virtual instance memory. Specifically, the cloud management platform can receive a virtual instance memory creation request input by the tenant through the client. The virtual instance shared memory creation request can include the capacity of the virtual instance memory to be created, and can also include the type of virtual instance memory to be created. The type of virtual instance memory can include shared memory and / or dedicated memory. Dedicated memory means that the virtual instance memory is bound to only one virtual instance and accessed exclusively by that virtual instance. Shared memory means that the virtual instance memory can be bound to multiple virtual instances and accessed jointly by multiple virtual instances.

[0105] It should be understood that a tenant can instruct the creation of multiple virtual instance memory segments via a virtual instance memory creation request. The capacity and / or type of each virtual instance memory segment can be the same or different. These multiple virtual instance memory segments can be created separately by sending multiple virtual instance memory creation requests, or they can be created all at once by sending a single virtual instance memory creation request; this application does not specifically limit this.

[0106] Step S320: In response to the virtual instance memory creation request, select the first server from among the multiple servers and send the first control command to the first server.

[0107] For example, in step S320, the cloud management platform can select a first server from multiple servers in the cloud data center that can be used to create the virtual instance based on the virtual memory capacity indicated by the virtual instance memory creation request. The first server has physical memory matching the capacity of the virtual memory to be created; that is, the first server can provide sufficient physical memory resources for creating the virtual memory. After determining a suitable first server, the cloud management platform can send a first control command to the first server, which instructs the first server to create the virtual instance memory based on the physical memory.

[0108] In some possible implementations, the first server creates virtual instance memory based on physical memory, which can be achieved through pass-through technology. That is, the first server can directly allocate physical memory matching the capacity of the virtual memory to be created to the virtual instance, bypassing the virtualization layer. After subsequent virtual instances are bound to this virtual instance memory, the virtual instances can access the actual I / O space of this portion of physical memory, thereby improving performance and reducing latency.

[0109] In some other possible implementations, the first server creates virtual instance memory based on physical memory, which can be achieved by virtualizing the physical memory using virtualization technology. That is, the first server can map the memory address of physical memory that matches the capacity of the virtual memory to be created to a virtual memory address, and then allocate the corresponding physical memory resources to the corresponding virtual instance by establishing a mapping relationship between the virtual memory address and the physical memory address of the virtual instance.

[0110] Step S330: Receive the first virtual instance memory binding request.

[0111] For example, in step S330, a tenant can request through the cloud management platform to bind the virtual instance memory created in step S320 to the first virtual instance. Optionally, the virtual instance includes, but is not limited to, virtual machines and / or containers. Specifically, the cloud management platform can receive a virtual instance memory binding request input by the tenant through a client, which may include the identifier of the first virtual instance to be bound to the aforementioned virtual instance memory.

[0112] It should be understood that the tenant who inputs the virtual instance memory binding request to the cloud management platform in step S330 can be the same tenant who inputs the virtual instance memory creation request in step S310, or it can be a different tenant. This application does not specifically limit this. As an example, the first tenant can request to create virtual instance memory through the cloud management platform, and then the first tenant can request to bind the virtual instance memory to the first virtual instance through the cloud management platform again; or, after the first tenant requests to create virtual instance memory through the cloud management platform, it can authorize the second tenant, and after authorization, the second tenant also requests to bind the virtual instance memory to the first virtual instance through the cloud management platform.

[0113] The first virtual instance to be bound to the virtual instance memory can be deployed on the server where the physical memory resources corresponding to the virtual instance memory reside, or it can be deployed on other servers in the cloud data center. As an example, the virtual instance memory can be created on the first server in the cloud data center, and the first virtual instance can be deployed on the first server. Alternatively, the first virtual instance can be deployed on a second server in the cloud data center, where the first server and the second server are two different servers in the cloud data center.

[0114] Step S340: In response to the first virtual instance memory binding request, send a second control command to the first server.

[0115] For example, in step S340, the cloud management platform can send a control command to the first server where the physical memory resource corresponding to the virtual instance memory is located, based on the identifier of the first virtual instance in the virtual instance memory binding request. This control command instructs the first server to provide the virtual instance memory to the first virtual instance. If the first virtual instance is deployed on the first server where the physical memory resource corresponding to the virtual instance memory is located, the first server can directly provide the virtual instance memory to the first virtual instance. If the first virtual instance is deployed on another server in the cloud data center (e.g., a second server), the first server can provide the virtual instance memory to the first virtual instance through a high-speed interconnect bus.

[0116] Optionally, the virtual instance memory provided for use by the first virtual instance can be presented as ordinary memory within the first virtual instance, or it can be presented as a separate readable and writable memory device. For example, the virtual instance memory can be presented as ordinary memory, that is, the virtual instance memory can be directly merged into the existing memory of the first virtual instance. In this case, the virtual instance memory can be distinguished from the existing memory of the first virtual instance through a non-uniform memory access (NUMA) architecture or different GuestPA address segments. The virtual instance memory presented as ordinary memory can be managed by the operating system of the first virtual instance, and its usage can be consistent with the existing memory of the first virtual instance, such as through instructions like malloc, free, memset, and memcpy. Alternatively, the virtual instance memory can be presented as a separate readable and writable memory device, that is, the virtual instance memory is provided as an additional memory device and mounted by the first virtual instance. The virtual instance memory presented as a separate readable and writable memory device can be directly read and written by applications in the first virtual instance, for example, through instructions like open, close, read, and write. The presentation of virtual instance memory in the first virtual instance can be flexibly selected by the tenant according to their needs. For example, the virtual instance memory binding request entered by the tenant can include information on whether the virtual instance memory is presented as ordinary memory or as an independent memory device in the virtual instance to be bound.

[0117] Optionally, the cloud management platform can also indicate how the virtual instance memory is provided to the virtual instance based on the type of virtual instance memory in the virtual instance memory creation request. For example, if the type of virtual instance memory is shared memory, the virtual instance memory can be set to be provided to the first virtual instance in a way that allows it to be shared with other virtual instances; and / or, if the type of virtual instance memory is dedicated memory, the virtual instance memory can be set to be provided to the first virtual instance in a way that does not allow it to be shared with other virtual instances.

[0118] It should be understood that a virtual instance can be bound to one or more virtual instance memory segments, and the types of multiple virtual instance memory segments bound to the same virtual instance can be the same or different. For example, a first virtual instance can be bound to two different virtual instance memory segments, one of which is of the dedicated memory type and the other is of the shared memory type. The virtual instance memory of the dedicated memory type can also be referred to as the dedicated segment memory, and the virtual instance memory of the shared memory type can also be referred to as the shared segment memory.

[0119] In some possible implementations, the virtual instance memory binding request may also include permission information to indicate the read and write permissions of the bound virtual instance to the virtual instance memory. For example, the first virtual instance memory binding request may include permission information for setting the first virtual instance to read and write to the virtual instance memory; correspondingly, the second control command may also be used to instruct the first server to allow the first virtual instance to read and write to the virtual instance memory. As another example, the first virtual instance memory binding request may include permission information for setting the first virtual instance to read but not write to the virtual instance memory; correspondingly, the second control command may also be used to instruct the first server to allow the first virtual instance to read from the virtual instance memory and prohibit the first virtual instance from writing to the virtual instance memory. By setting permission information, the virtual instance memory can flexibly switch between read-write mode and read-only mode for each bound virtual instance, thereby ensuring the consistency of data in the virtual instance memory.

[0120] In some possible implementations, when the virtual instance memory type is shared memory, the virtual memory, after being bound to the first virtual instance, can continue to be bound to other virtual instances, thereby achieving virtual instance sharing. The above method can be implemented through optional steps S350 and S360.

[0121] Optionally, step S350: Receive a second virtual instance memory binding request.

[0122] For example, in step S350, a tenant can request through the cloud management platform to bind shared type virtual instance memory to a second virtual instance, and this shared type virtual instance memory may already be bound to a first virtual instance. Optionally, virtual instances include, but are not limited to, virtual machines and / or containers. Specifically, the cloud management platform can receive a virtual instance memory binding request input by the tenant through a client, and the virtual instance memory binding request may include the identifier of the second virtual instance to be bound to the aforementioned shared type virtual instance memory.

[0123] Similar to step S330, the tenant that inputs the virtual instance memory binding request to the cloud management platform in step S350 can be the same tenant that input the virtual instance memory creation request, or it can be another tenant authorized by that tenant. Furthermore, the tenant that inputs the second virtual instance memory binding request in step S350 can be the same tenant as the tenant that input the first virtual instance memory binding request in step S330, or it can be a different tenant; this application does not specifically limit this.

[0124] The second virtual instance can be deployed on the server where the physical memory resources corresponding to the shared virtual instance memory reside, or it can be deployed on other servers in the cloud data. Furthermore, the first and second virtual instances bound to the same virtual instance memory can be deployed on the same server or on different servers.

[0125] Optionally, step S360: In response to the second virtual instance memory binding request, send a third control command to the first server.

[0126] For example, in step S360, the cloud management platform can send a control command to the first server where the physical memory resource corresponding to the virtual instance memory resides, based on the identifier of the second virtual instance in the virtual instance memory binding request. This control command instructs the first server to provide the virtual instance memory to the second virtual instance. If the second virtual instance is deployed on the first server where the physical memory resource corresponding to the virtual instance memory resides, the first server can directly provide the virtual instance memory to the first virtual instance. If the second virtual instance is deployed on another server in the cloud data center, the first server can provide the virtual instance memory to the first virtual instance through the high-speed interconnect bus.

[0127] Optionally, the virtual instance memory provided for use by the second virtual instance can be presented as ordinary memory within the second virtual instance, or the virtual instance memory can be presented as an independent read / write memory device. For specific implementation details, please refer to the description of the binding method for the first virtual instance in step S340; it will not be repeated here.

[0128] In some possible implementations, the virtual instance memory binding request may further include permission information to indicate the read and write permissions of the bound virtual instance to the virtual instance's memory. For example, the second virtual instance memory binding request may include permission information for setting the second virtual instance to read and write to the virtual instance's memory; correspondingly, the third control command may also be used to instruct the first server to allow the second virtual instance to read and write to the virtual instance's memory. As another example, the second virtual instance memory binding request may include permission information for setting the second virtual instance to read but not write to the virtual instance's memory; correspondingly, the third control command may also be used to instruct the first server to allow the second virtual instance to read from the virtual instance's memory and prohibit the second virtual instance from writing to the virtual instance's memory.

[0129] Optionally, the mapping relationship of memory addresses of the aforementioned virtual instance memory can be uniformly managed by a global memory management node set up in the cloud data center. For example, the global memory management node can be used to establish a mapping relationship between physical memory addresses that match the capacity of the first server and global memory addresses. The first server can use the global memory management node to confirm the global memory address corresponding to the physical memory address and allocate the global memory address to the first virtual instance and / or the second virtual instance.

[0130] In some possible implementations, the type of virtual instance memory can be presented to the bound virtual instance.

[0131] For example Figure 4In the illustrated embodiment, after a tenant creates a virtual machine or container 1 on host A, they can allocate two memory segments (physical addresses may be non-contiguous) via the global memory manager and establish a mapping relationship between the global virtual address (GlobaVA) and the host physical address (HostPA). One of these memory segments can be exclusively used by the virtual machine or container 1, and is therefore referred to as the exclusive memory segment. The other memory segment can be shared by multiple instances (e.g., processes, containers, or virtual machines), and is therefore referred to as the shared memory segment. The shared memory segment can be managed by the global memory manager, and the management methods may include, but are not limited to, page table tags, global hashes, etc. Then, these two memory segments can be mapped to the virtual machine or container 1, that is, a mapping relationship is established between GlobaVA and the virtual machine virtual address (guestphysical address, GuestPA). After a tenant creates a virtual machine or container 2 on host B, they can specify the shared segment memory of the virtual machine or container 1 and establish the mapping relationship between GlobaVA and GuestPA via the global memory manager (the mapping relationship between GlobaVA and HostPA for the shared segment memory does not need to be established repeatedly). In addition, virtual machine or container 2 can also be allocated new dedicated segment memory. The process of establishing the mapping relationship for dedicated segment memory of virtual machine or container 2 can be referred to that of virtual machine or container 1, and will not be repeated here.

[0132] Optionally, shared segment memory can be presented as ordinary standard memory within a virtual machine or container, distinguished by a non-uniform memory access (NUMA) architecture or different GuestPA address ranges. Shared segment memory presented as ordinary standard memory can be managed by the operating system, and its usage can be consistent with dedicated segment memory, such as through instructions like malloc, free, memset, and memcpy. Shared segment memory can also be presented as an independent read-write memory device within a virtual machine or container, directly read and written by applications, for example, through instructions like open, close, read, and write. The presentation method of shared segment memory can be flexibly selected according to the actual needs of the tenant and can be specified when creating the virtual machine or container.

[0133] Optionally, shared segment memory can be configured in read-write mode or read-only mode. For example, shared segment memory can be associated with a second identifier, which indicates whether the memory pages of the shared segment memory can be written to. The mode where shared segment memory pages can be written to by instances can be called read-write mode. In this mode, if a virtual machine or container 1 on host A writes data to a fixed address in an independent memory region, a virtual machine or container 2 on host B can read it, and vice versa. Data consistency can be protected using hardware (e.g., cache coherence, CC) or software (e.g., critical sections / locking mechanisms). The mode where shared segment memory pages cannot be written to by instances can be called read-only mode. In this mode, shared segment memory only supports read operations; write operations trigger write protection, so applications do not need to worry about data consistency. The read-write mode and read-only mode of shared segment memory can be specified when the virtual instance memory is created, or can be flexibly switched during virtual machine or container runtime, depending on the tenant's specific needs.

[0134] In addition, for example Figure 5 In the illustrated embodiment, the physical memory mapped to dedicated segment memory and / or shared segment memory can also be located on other hosts. In other words, the physical memory mapped to dedicated segment memory and / or shared segment memory can be located on host A where the virtual machine or container 1 resides, or on host B where the virtual machine or container 2 resides, or on other hosts besides host A and host B (e.g., host C).

[0135] Figure 4 or Figure 5 In the embodiments shown, the allocation strategy for dedicated segment memory and shared segment memory can be specified when the virtual machine or container 1 is created, or it can be allocated by the Infrastructure as a Service (IaaS) layer itself. This application does not make any specific limitations on this.

[0136] The above technical solutions can support flexible allocation and sharing of memory across hosts; and shared memory segments are presented within virtual machines or containers, which can be flexibly used by applications.

[0137] Optionally, in the above scheme, the objects that share the virtual instance memory across hosts are not limited to other virtual instances. For example... Figure 6 In the illustrated embodiment, the virtual machine or container can also share memory across hosts with host processes, and the shared memory is presented within the virtual machine or container. Specifically, after a tenant creates a virtual machine or container on host A, a mapping relationship is established between GlobaVA and GuestPA, as well as a mapping relationship between GlobaVA and HostPA. The process of establishing the mapping relationship can be... Figure 4 The setup process described in the examples is the same and will not be repeated here. Figure 4 The difference in the illustrated embodiment is that the shared segment memory of virtual machine or container 1 can also simultaneously serve as the memory space for kernel and / or user-mode processes on any host. This memory space can be allocated by the operating system on the host and owned and controlled by the kernel process or user-mode process on the host. Global reference counting is managed by GlobaVA, and the memory space is only allowed to be released after all virtual machines or containers sharing this memory space have stopped. It should be understood that... Figure 6 The sharing of a process's memory space with a virtual machine or container is merely illustrative; the technical solution of this application does not limit the number of virtual machines or containers sharing this memory space, meaning that a process's memory space can be mapped to multiple virtual machines or containers. Optionally, the process's memory space, as a shared segment of memory, can also support read-write mode or read-only mode; specific implementation details can be found in [reference needed]. Figure 5 The description of the illustrated embodiments will not be repeated here.

[0138] Through the above technical solutions, shared memory can exist independently of virtual machines or containers, simplifying management while effectively freeing up CPU resources.

[0139] In some other possible implementations, the type of virtual instance memory may not be presented to the virtual instance. Instead, the memory addresses of the virtual instance are flattened, and memory page sharing is achieved by dynamically adjusting the mapping relationship.

[0140] For example Figure 7 In the illustrated embodiment, after a tenant creates a virtual machine or container 1 on host A, a mapping relationship is established between GlobaVA and GuestPA, as well as a mapping relationship between GlobaVA and HostPA. The process of establishing the mapping relationship can be... Figure 4 The setup process described in the examples is similar, except that instead of specifying dedicated and shared memory segments, the memory addresses are flattened, and tenants use the allocated memory normally, just like traditional virtual machine memory usage. Similarly, after a tenant creates a virtual machine or container 2 on host B, new mappings between GlobaVA and GuestPA, as well as between GlobaVA and HostPA, are also established.

[0141] During the operation of multiple virtual machines or containers, the global memory manager can compare the contents of multiple currently used memory pages (i.e., memory pages mapped to virtual instances) to see if they are identical, and then dynamically adjust the mapping relationship to release memory pages with duplicate content. For example, four memory pages mapped to virtual machine or container 1 are located on host A, and four memory pages mapped to virtual machine or container 2 are located on host B. The global memory manager compares and determines one of the four memory pages mapped to virtual machine or container 1 (…). Figure 7The dark-colored memory page in host A (hereinafter referred to as memory page a) is one of the four memory pages mapped to virtual machine or container 2. Figure 7 In host B, the memory page highlighted in dark (hereinafter referred to as memory page b) contains the same content as another memory page. The global memory manager can then unmap memory page b (including the mapping between GlobaVA and GuestPA, and between GlobaVA and HostPA) and map the GlobaVA mapped from memory page a to virtual machine or container 2 (the memory segment originally mapped to memory page b). Through this method, the content of the memory page presented to virtual machine or container 2 remains unchanged. Without the virtual machine or container being aware of this, memory page a changes from being exclusively used by virtual machine or container 1 to being shared with virtual machine or container 2, while simultaneously releasing the resources of memory page b.

[0142] The above technical solution enables cross-host memory sharing compared to KSM on the same host, further improving cluster memory utilization efficiency.

[0143] Optionally, the object that enables cross-host sharing of virtual instance memory with the virtual instance in the above scheme without the virtual instance being aware of it is not limited to other virtual instances. For example... Figure 8 In the illustrated embodiment, the virtual machine or container can also share memory across hosts with host processes without the virtual machine or container being aware of it. Specifically, after a user creates a virtual machine or container on host A, a mapping relationship is established between GlobaVA and GuestPA, as well as a mapping relationship between GlobaVA and HostPA. The process of establishing the mapping relationship can be... Figure 7 The setup process described in the examples is the same and will not be repeated here. Figure 7 The process described in the embodiments is similar. During the operation of a virtual machine or container, the global memory manager can compare the contents of the memory pages currently used by the virtual machine or container with the contents of the memory pages in the memory space of the kernel-mode process or user-mode process. By adjusting the mapping relationship of memory pages, the virtual machine or container can share memory pages with the host process of the process without the process, container, or virtual machine being aware of it, and free up unnecessary memory pages.

[0144] The above technical solutions enable memory sharing to be applied to scenarios where virtual machines or containers share host disk cache or file systems.

[0145] In addition, for example Figure 9 In the illustrated embodiments, in some possible implementations, multiple host processes across hosts can also share the same memory space without either needing to start a virtual machine or container. Optionally, the memory space shared by multiple kernel-mode processes and / or user-mode processes can also support read-write mode or read-only mode; specific implementations can be found in [reference needed]. Figure 4The description of the illustrated embodiments will not be repeated here.

[0146] The above technical solutions enable memory sharing to be applied to scenarios where hosts share disk caches or file systems.

[0147] It should be understood that the first and second virtual instances bound to the virtual instance memory in the above embodiments are only illustrative examples, and this application does not specifically limit the number of virtual instances sharing the same virtual instance memory. As an example, in the above method, after the virtual instance memory is bound to the first and second virtual instances, the cloud management platform can also receive a third virtual instance memory binding request and respond to the third virtual instance memory binding request by sending a control command to the first server to instruct the first server to provide the virtual instance memory to the third virtual instance, the fourth virtual instance, and / or other virtual instances. The binding method can be the same as that of the second virtual instance, and will not be described again here.

[0148] The virtual instance management method provided in the embodiments of this application connects multiple servers to a high-speed interconnect bus, enabling instances (processes, containers, and / or virtual machines) deployed on one server to directly read and / or write memory on other servers. Based on this, a specific amount of physical memory is first allocated on one server as virtual instance memory. Then, this virtual instance memory is bound to one or more instances deployed on other servers via the high-speed interconnect bus, thereby achieving cross-server memory sharing for instances (processes, containers, and / or virtual machines). This improves data communication efficiency, eliminates cross-host memory redundancy, and enhances cross-server memory utilization efficiency.

[0149] In addition, optionally, the above virtual instance management method may also include the following steps: the cloud management platform receives a first virtual instance memory unbinding request input by the tenant, the first virtual instance memory unbinding request including the identifier of the first virtual instance; the cloud management platform responds to the first virtual instance memory unbinding request by sending a fourth control command to the first server, the fourth control command being used to instruct the first server to stop providing virtual instance memory to the first virtual instance.

[0150] Through the above technical solution, the binding relationship between virtual instances and virtual instance memory can be removed according to the tenant's needs, thereby improving the flexibility of virtual instance memory allocation.

[0151] Optionally, the above virtual instance management method may further include the following steps: the cloud management platform receives a virtual instance memory deletion request input by the tenant; the cloud management platform responds to the virtual instance memory deletion request by sending a fifth control command to the first server, the fifth control command being used to instruct the first server to release the virtual instance memory. Releasing the virtual instance memory refers to, upon receiving a new virtual instance memory creation request, making the physical memory resources occupied by the current virtual instance memory available for use by the new virtual instance memory. Optionally, the above steps can be performed after all virtual instances bound to the current virtual instance memory have been unbound.

[0152] Through the above technical solution, virtual instance memory can be deleted according to tenant needs, thereby releasing redundant memory resources in a timely manner and improving memory utilization efficiency.

[0153] In some possible implementations, when implementing cross-server memory sharing, the cloud management platform may not need to uniformly address the physical memory addresses of multiple servers in the cloud data center as GlobalVAs. Instead, by maintaining a mapping relationship between GuestPA and a specific host HostPA, it can specify a physical address of a host or a GuestPA of an already running virtual instance (uniquely corresponding to the HostPA of that host) as the sharing source as needed, thereby mapping to the GuestPA of the user's virtual instance on other hosts. The following section combines... Figure 10 This application provides a detailed description of another method for managing virtual instances. Optionally, Figure 10 The method shown can be applied to Figure 2 The cloud management platform 210 is shown. (For example...) Figure 10 As shown, the method includes the following steps.

[0154] Step S1010: Receive the virtual instance creation request input by the tenant.

[0155] For example, in step S1010, a tenant can log in to the cloud management platform via a client to create a virtual instance. Specifically, the cloud management platform can receive a virtual instance creation request input by the tenant through the client. The virtual instance shared memory creation request may include the specifications of the virtual instance to be created, and may also include the capacity of the virtual instance shared memory.

[0156] The specifications of a virtual instance may include one or more of the following: computing resources, network resources, and / or storage resources. Computing resources include, but are not limited to, CPU specifications (e.g., number of CPU cores, number of CPU threads, etc.) and memory specifications (e.g., memory capacity, memory speed, etc.). Network resources include, but are not limited to, network interface card specifications (e.g., interface type, transmission rate, supported protocols, etc.), public IP addresses, private IP addresses, and bandwidth specifications. Storage resources may include, but are not limited to, disk specifications (e.g., disk capacity, read / write speed, etc.).

[0157] The memory specifications mentioned above for the virtual instance may refer to the specifications of the virtual instance's non-shared memory. The memory resources used by the virtual instance to be created may include both virtual instance non-shared memory and virtual instance shared memory, with the capacity of the virtual instance shared memory specified separately in the virtual instance creation request. Optionally, tenants may also set the virtual instance non-shared memory to 0 according to their own needs, in which case the memory used by the virtual instance to be created will all be shared memory of the virtual instance type.

[0158] Step S1020: In response to the virtual instance creation request, select the first server from among the multiple servers and send the first control command to the first server.

[0159] For example, in step S1020, the cloud management platform can select a first server from multiple servers in the cloud data center that can be used to create the virtual instance, based on the specifications of the virtual memory indicated in the virtual instance creation request. The first server has hardware resources that match the specifications of the virtual memory to be created. After determining a suitable first server, the cloud management platform can send a first control command to the first server, instructing it to create virtual instance shared memory based on the physical memory capacity matching the first server's capacity, create a first virtual instance on the first server according to the virtual instance specifications, and configure the virtual instance shared memory to be accessible to the first virtual instance.

[0160] Optionally, the first server can create virtual instances shared memory through passthrough technology or through memory virtualization technology; this application does not specifically limit this.

[0161] Optionally, the virtual instance memory provided for use by the first virtual instance can be presented as ordinary memory within the first virtual instance, or the virtual instance memory can be presented as an independent read / write memory device. For specific implementation details, please refer to the description of step S340 in the preceding method; it will not be repeated here.

[0162] In some possible implementations, the virtual instance creation request may further include permission information to instruct the first virtual instance on read and write permissions to the shared memory. For example, the virtual instance creation request may include permission information to set read and write permissions for the first virtual instance to the shared memory; correspondingly, the first control command may also be used to instruct the first server to allow the first virtual instance to read and write to the shared memory. As another example, the virtual instance creation request may include permission information to set read but not write permissions for the first virtual instance to the shared memory; correspondingly, the first control command may also be used to instruct the first server to allow the first virtual instance to read from the shared memory and prohibit the first virtual instance from writing to the shared memory.

[0163] Step S1030: Receive virtual instance memory binding request.

[0164] For example, in step S1030, a tenant can request to bind the shared memory of a virtual instance to a second virtual instance through the cloud management platform. Specifically, the cloud management platform can receive a virtual instance memory binding request input by the tenant through a client. This virtual instance memory binding request may include the identifier of the second virtual instance to be bound to the shared memory of the virtual instance. The tenant inputting the virtual instance memory binding request to the cloud management platform can be the same tenant who input the virtual instance creation request in step S1010, or it can be another tenant authorized by that tenant.

[0165] The second virtual instance can be deployed on the server where the physical memory resources corresponding to the shared memory of the first virtual instance reside, or it can be deployed on other servers in the cloud data. In other words, the second virtual instance and the first virtual instance, which serves as the shared source, can be deployed on the same server or on different servers.

[0166] Step S1040: In response to the virtual instance memory binding request, send a second control command to the first server.

[0167] For example, in step S1040, the cloud management platform can send a control command to the first server where the physical memory resource corresponding to the shared memory of the virtual instance is located, based on the identifier of the second virtual instance in the virtual instance memory binding request. This control command instructs the first server to provide the shared memory of the virtual instance to the first virtual instance. If the first virtual instance is deployed on the first server where the physical memory resource corresponding to the shared memory of the virtual instance is located, the first server can directly provide the virtual instance memory to the first virtual instance. If the first virtual instance is deployed on another server in the cloud data center, the first server can provide the virtual instance memory to the first virtual instance through the high-speed interconnect bus.

[0168] Optionally, the shared memory provided for use by the second virtual instance can be presented as ordinary memory within the second virtual instance, or it can be presented as an independent read-write memory device. For specific implementation details, please refer to the description of step S340 in the preceding method; it will not be repeated here.

[0169] In some possible implementations, the virtual instance memory binding request may further include permission information to indicate the read and write permissions of the bound virtual instance to the shared memory. For example, the virtual instance memory binding request may include permission information to set read and write permissions for the second virtual instance to the shared memory; correspondingly, the second control command may also be used to instruct the first server to allow the second virtual instance to read and write to the shared memory. As another example, the virtual instance memory binding request may include permission information to set read but not write permissions for the second virtual instance to the shared memory; correspondingly, the second control command may also be used to instruct the first server to allow the second virtual instance to read from the shared memory and prohibit the second virtual instance from writing to the shared memory.

[0170] For example Figure 11 In the illustrated embodiment, after a tenant creates a virtual machine or container 1 on host A, they can establish a mapping relationship between the guest physical address (GuestPA) and the host physical address (HostPA). The GuestPA can include dedicated segment memory and shared segment memory. After a tenant creates a virtual machine or container 2 on host B, they can use the GuestPA of the shared segment memory of virtual machine or container 1, along with host A and the corresponding HostPA on host A, as shared sources, and map them to virtual machine or container 2, establishing a mapping relationship between the GuestPA of virtual machine or container 2 and host A and the corresponding HostPA on host A. Furthermore, virtual machine or container 2 can also be allocated new dedicated segment memory. The process of establishing the mapping relationship for the dedicated segment memory of virtual machine or container 2 can refer to that of virtual machine or container 1, and will not be repeated here.

[0171] It should be understood that the second virtual instance in the above embodiments is only for illustrative purposes, and this application does not specifically limit the number of virtual instances bound to the shared memory of virtual instances. As an example, in the above method, after the shared memory of virtual instances is bound to the second virtual instance, the cloud management platform can also receive new virtual instance memory binding requests and respond to the new virtual instance memory binding requests by sending control commands to the first server to instruct the first server to provide the shared memory of virtual instances to the third virtual instance, the fourth virtual instance, and / or other virtual instances. The binding method can be the same as that of the second virtual instance, and will not be described in detail here.

[0172] The virtual instance management method described in the above embodiments of this application connects multiple servers to a high-speed interconnect bus, enabling virtual instances deployed on one server to directly read and / or write memory on other servers. Furthermore, some or all of the virtual instance memory created on one server can be designated as shared virtual instance memory. This shared virtual instance memory is then bound to other virtual instances deployed on other servers via the high-speed interconnect bus, allowing multiple virtual instances across servers to access the same shared virtual instance memory. This achieves cross-server memory sharing, improving data communication efficiency and enabling cross-host memory redundancy removal, thus enhancing cross-server memory utilization efficiency.

[0173] Optionally, the above virtual instance management method may further include the following steps: the cloud management platform receives a first virtual instance release request input by the tenant, the first virtual instance release request including the identifier of the first virtual instance; the cloud management platform responds to the first virtual instance release request by sending a third control command to the first server, the third control command instructing the first server to: unload the first virtual instance, release the shared memory of the virtual instance, and release the hardware resources occupied by the first virtual instance. Here, releasing the shared memory of the virtual instance refers to, upon receiving a new virtual instance creation request, making the physical memory resources occupied by the shared memory of the virtual instance available for use by the new virtual instance.

[0174] The above text combined Figures 3 to 11 This application describes an embodiment of the virtual instance management method provided below. Figures 12 to 16 The present application will describe an embodiment of the virtual instance management device.

[0175] Figure 12 A schematic structural diagram of a cloud management platform 1200 provided in an embodiment of this application is shown.

[0176] like Figure 12 As shown, the cloud management platform 1200 includes: a receiving module 1210 and a processing module 1220.

[0177] Specifically, the receiving module 1210 is used to receive a virtual instance memory creation request input by the tenant. The virtual instance shared memory creation request includes the capacity of the virtual instance memory to be created, as well as the type of virtual instance memory, which includes shared memory type and / or dedicated memory type.

[0178] Specifically, the processing module 1220 is used to select a first server from multiple servers in response to a virtual instance memory creation request, wherein the first server has physical memory matching the capacity, and to send a first control command to the first server, the first control command being used to instruct the first server to create virtual instance memory based on the physical memory.

[0179] Optionally, the first virtual instance memory binding request may also include setting permission information for the first virtual instance to read and write or read but not write virtual instance memory; the second control command may also be used to instruct the first server to allow the first virtual instance to read and write virtual instance memory, or to allow the first virtual instance to read virtual instance memory and prohibit the first virtual instance from writing virtual instance memory.

[0180] Specifically, the receiving module 1210 is also used to receive a first virtual instance memory binding request, the first virtual instance memory binding request including the identifier of the first virtual instance whose memory is to be bound, the first virtual instance being deployed on a second server with multiple servers.

[0181] Specifically, the processing module 1220 is further configured to send a second control command to the first server in response to the first virtual instance memory binding request. The second control command is configured to instruct the first server to provide the virtual instance memory to the first virtual instance for use via a high-speed interconnect bus, wherein: in the case of shared memory type, the virtual instance memory is configured to be provided to the first virtual instance in a manner that allows sharing with other virtual instances; and / or, in the case of dedicated memory type, the virtual instance memory is configured to be provided to the first virtual instance in a manner that does not allow sharing with other virtual instances.

[0182] Optionally, the second virtual instance memory binding request may also include setting permission information for the second virtual instance to read and write or read but not write virtual instance memory; the third control command may also be used to instruct the first server to allow the second virtual instance to read and write virtual instance memory, or to allow the second virtual instance to read virtual instance memory and prohibit the second virtual instance from writing virtual instance memory.

[0183] Optionally, if the virtual instance memory type is shared memory, the receiving module 1210 is further configured to receive a second virtual instance memory binding request, the second virtual instance memory binding request including the identifier of the second virtual instance whose virtual instance memory is to be bound, the second virtual instance being deployed on a third server of multiple servers; the processing module 1220 is further configured to respond to the second virtual instance memory binding request by sending a third control command to the first server, the third control command being configured to instruct the first server to provide the virtual instance memory to the second virtual instance for use via a high-speed interconnect bus, wherein the virtual instance memory is configured to allow the first virtual instance and the second virtual instance to access it together.

[0184] Optionally, the receiving module 1210 is further configured to receive a first virtual instance memory unbinding request input by the tenant, the first virtual instance memory unbinding request including the identifier of the first virtual instance; the processing module 1220 is further configured to respond to the first virtual instance memory unbinding request by sending a fourth control command to the first server, the fourth control command being used to instruct the first server to stop providing virtual instance memory to the first virtual instance.

[0185] Optionally, the receiving module 1210 is further configured to receive a virtual instance memory deletion request input by the tenant; the processing module 1220 is further configured to send a fifth control command to the first server in response to the virtual instance memory deletion request, the fifth control command being used to instruct the first server to release the virtual instance memory.

[0186] Figure 13 A schematic structural diagram of another cloud management platform 1300 provided in an embodiment of this application is shown.

[0187] like Figure 13 As shown, the cloud management platform 1300 includes: a receiving module 1310 and a processing module 1320.

[0188] Specifically, the receiving module 1310 is used to receive a virtual instance creation request input by a tenant. The virtual instance creation request includes the capacity of the virtual instance shared memory and the specifications of the virtual instance to be created.

[0189] Specifically, the processing module 1320 is used to select a first server from multiple servers in response to a virtual instance creation request, send a first control command to the first server, and instruct the first server to: create virtual instance shared memory according to the physical memory in the first server that matches the capacity, create a first virtual instance on the first server according to the virtual instance specifications, and set the virtual instance shared memory to allow the first virtual instance to access it, wherein the first server is provided with hardware resources that can provide virtual instance specifications.

[0190] Optionally, the virtual instance creation request may also include setting permission information for the first virtual instance to read and write or read but not write to the shared memory of the virtual instance; the first control command may also be used to instruct the first server to allow the first virtual instance to read and write to the shared memory of the virtual instance, or to allow the first virtual instance to read the shared memory of the virtual instance and prohibit the first virtual instance from writing to the shared memory of the virtual instance.

[0191] Specifically, the receiving module 1310 is also used to receive a virtual instance memory binding request, which includes the identifier of a second virtual instance whose shared memory is to be bound, and the second virtual instance is deployed on a second server of multiple servers.

[0192] Specifically, the processing module 1320 is also used to send a second control command to the first server in response to a virtual instance memory binding request. The second control command is used to instruct the first server to provide the virtual instance shared memory to the second virtual instance through a high-speed interconnect bus, wherein the virtual instance shared memory is configured to be provided to the second virtual instance in a manner that allows it to be shared with the first virtual instance.

[0193] Optionally, the virtual instance memory binding request also includes setting permission information for the second virtual instance to read and write or read but not write to the shared memory of the virtual instance; the second control command is also used to instruct the first server to allow the second virtual instance to read and write to the shared memory of the virtual instance, or to allow the second virtual instance to read the shared memory of the virtual instance and prohibit the second virtual instance from writing to the shared memory of the virtual instance.

[0194] Optionally, the receiving module 1310 is further configured to receive a first virtual instance release request input by the tenant, the first virtual instance release request including the identifier of the first virtual instance; the processing module 1320 is further configured to respond to the first virtual instance release request by sending a third control command to the first server, the third control command being used to instruct the first server to: unload the first virtual instance, release the shared memory of the virtual instance, and release the hardware resources occupied by the first virtual instance.

[0195] All of the above modules can be implemented in software or hardware. For example, the implementation of processing module 1220 will be described below. Similarly, the implementation of receiving module 1210, receiving module 1310, and processing module 1320 can refer to the implementation of processing module 1220.

[0196] As an example of a software functional unit, processing module 1220 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, or a container. Further, the aforementioned computing instance may be one or more. For example, processing module 1220 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0197] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0198] As an example of a hardware functional unit, the processing module 1220 may include at least one computing device, such as a server. Alternatively, the processing module 1220 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0199] The processing module 1220 includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, the processing module 1220 can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the processing module 1220 can be distributed within the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0200] It should be noted that, in other embodiments, the receiving module 1210 and the processing module 1220 can be used to execute any step in the above-described virtual instance management method. The steps implemented by the receiving module 1210 and the processing module 1220 can be specified as needed. By implementing different steps in the above-described virtual instance management method through the receiving module 1210 and the processing module 1220, all functions of the cloud management platform 1200 can be realized.

[0201] Similarly, in other embodiments, the receiving module 1310 and the processing module 1320 can be used to execute any step in the virtual instance management method described above. The steps implemented by the receiving module 1310 and the processing module 1320 can be specified as needed. By implementing different steps in the virtual instance management method described above through the receiving module 1310 and the processing module 1320, all functions of the cloud management platform 1300 can be realized.

[0202] This application also provides a computing device 100. For example... Figure 14 As shown, the computing device 100 includes a bus 102, a processor 104, a memory 106, and a communication interface 108. The processor 104, the memory 106, and the communication interface 108 communicate with each other via the bus 102. The computing device 100 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 100.

[0203] Bus 102 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 14 The bus 102 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 102 may include a path for transmitting information between various components of the computing device 100 (e.g., memory 106, processor 104, communication interface 108).

[0204] The processor 104 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0205] Memory 106 may include volatile memory, such as random access memory (RAM). Memory 106 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0206] The memory 106 stores executable program code, and the processor 104 executes this executable program code to implement the functions of the aforementioned receiving module and processing module, thereby realizing the virtual instance management method described above. That is, the memory 106 stores instructions for executing the virtual instance management method described above.

[0207] The communication interface 108 uses a command distribution module, such as, but not limited to, a network interface card or a transceiver, to enable communication between the computing device 100 and other devices or communication networks.

[0208] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0209] like Figure 15 As shown, the computing device cluster includes at least one computing device 100. The memory 106 of one or more computing devices 100 in the computing device cluster may store the same instructions for executing the virtual instance management method described above.

[0210] In some possible implementations, the memory 106 of one or more computing devices 100 in the computing device cluster may also store partial instructions for executing the virtual instance management method described above. In other words, a combination of one or more computing devices 100 can jointly execute the instructions for executing the virtual instance management method described above.

[0211] It should be noted that the memory 106 in different computing devices 100 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the aforementioned cloud management platform. That is, the instructions stored in the memory 106 of different computing devices 100 can implement the functions of one or more modules in the receiving module and processing module.

[0212] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 16 One possible implementation is shown. For example... Figure 16 As shown, two computing devices 100A and 100B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 106 in computing device 100A stores instructions for performing the functions of the receiving module. Simultaneously, the memory 106 in computing device 100B stores instructions for performing the functions of the processing module.

[0213] It should be understood that Figure 16 The functions of the computing device 100A shown can also be performed by multiple computing devices 100. Similarly, the functions of the computing device 100B can also be performed by multiple computing devices 100.

[0214] This application also provides a chip, which includes a processor and a data interface. The processor reads instructions stored in the memory through the data interface to execute the virtual instance management method described above.

[0215] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product runs on at least one computing device, it causes the at least one computing device to execute the virtual instance management method described above.

[0216] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute the aforementioned virtual instance management method.

[0217] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0218] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.

Claims

1. A virtual instance management method based on cloud computing technology, characterized in that, The method is applied to a cloud management platform for managing a cloud data center, the cloud data center comprising a plurality of servers accessing a high-speed interconnection bus inside the cloud data center, the method comprising: The cloud management platform receives a virtual instance memory creation request input by a tenant, the virtual instance shared memory creation request comprising a capacity of a virtual instance memory to be created, and a type of the virtual instance memory, the type comprising a shared memory type and / or a private memory type; The cloud management platform selects a first server from the plurality of servers in response to the virtual instance memory creation request, wherein the first server has a physical memory matching the capacity, and sends a first control command to the first server, the first control command being used to instruct the first server to create the virtual instance memory according to the physical memory; The cloud management platform receives a first virtual instance memory binding request, the first virtual instance memory binding request comprising an identification of a first virtual instance to which the virtual instance memory is to be bound, the first virtual instance being deployed in a second server of the plurality of servers; The cloud management platform sends a second control command to the first server in response to the first virtual instance memory binding request, the second control command being used to instruct the first server to provide the virtual instance memory to the first virtual instance for use through the high-speed interconnection bus, wherein: in a case where the type is the shared memory type, the virtual instance memory is provided to the first virtual instance for use in a manner that allows sharing with other virtual instances; and / or, in a case where the type is the private memory type, the virtual instance memory is provided to the first virtual instance for use in a manner that does not allow sharing with other virtual instances.

2. The method of claim 1, wherein, The type is the shared memory type, and the method further comprises: The cloud management platform receives a second virtual instance memory binding request, the second virtual instance memory binding request comprising an identification of a second virtual instance to which the virtual instance memory is to be bound, the second virtual instance being deployed in a third server of the plurality of servers; The cloud management platform sends a third control command to the first server in response to the second virtual instance memory binding request, the third control command being used to instruct the first server to provide the virtual instance memory to the second virtual instance for use through the high-speed interconnection bus, wherein the virtual instance memory is set to allow common access by the first virtual instance and the second virtual instance.

3. The method of claim 2, wherein, The first virtual instance memory binding request further comprises: permission information setting the first virtual instance as readable and writable or readable and non-writable to the virtual instance memory; The second control command is further used to instruct the first server to: allow the first virtual instance to read and write the virtual instance memory, or allow the first virtual instance to read the virtual instance memory and prohibit the first virtual instance from writing the virtual instance memory; The type is the private memory type, and the method further comprises: The cloud management platform receives a second virtual instance memory binding request, the second virtual instance memory binding request comprising an identification of a second virtual instance to which the virtual instance memory is to be bound, the second virtual instance being deployed in a third server of the plurality of servers; The cloud management platform sends a third control command to the first server in response to the second virtual instance memory binding request, the third control command being used to instruct the first server to provide the virtual instance memory to the second virtual instance for use through the high-speed interconnection bus, wherein the virtual instance memory is set to allow common access by the first virtual instance and the second virtual instance. The first virtual instance memory binding request further comprises: permission information setting the first virtual instance as readable and writable or readable and non-writable to the virtual instance memory; The second control command is further used to instruct the first server to: allow the first virtual instance to read and write the virtual instance memory, or allow the first virtual instance to read the virtual instance memory and prohibit the first virtual instance from writing the virtual instance memory; The second virtual instance memory binding request further includes: setting permission information of the second virtual instance on the virtual instance memory being readable and writable or readable and non-writable; The third control command is further used for instructing the first server to: allow the second virtual instance to read and write the virtual instance memory, or allow the second virtual instance to read the virtual instance memory and prohibit the second virtual instance from writing the virtual instance memory.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: The cloud management platform receives a first virtual instance memory unbinding request input by the tenant, and the first virtual instance memory unbinding request includes an identifier of the first virtual instance; The cloud management platform sends a fourth control command to the first server in response to the first virtual instance memory unbinding request, and the fourth control command is used for instructing the first server to stop providing the virtual instance memory to the first virtual instance.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: The cloud management platform receives a virtual instance memory deletion request input by the tenant; The cloud management platform sends a fifth control command to the first server in response to the virtual instance memory deletion request, and the fifth control command is used for instructing the first server to release the virtual instance memory.

6. The method according to any one of claims 1 to 5, characterized in that, The cloud data center is further provided with a global memory management node, the global memory management node is used for establishing a mapping relationship between a physical memory address matched with the capacity in the first server and a global memory address, the first server confirms the global memory address corresponding to the physical memory address through the global memory management node, and the global memory management node is distributed in each of the plurality of servers or is centrally arranged in one of the plurality of servers.

7. The method according to any one of claims 1 to 6, characterized in that, The high-speed interconnection bus is a parallel bus with a bandwidth of not less than 40 Gb / s and supporting synchronous memory access semantics.

8. The method according to any one of claims 1 to 7, characterized in that, The virtual instance includes a virtual machine and / or a container.

9. A virtual instance management method based on cloud computing technology, characterized in that, The method is applied to a cloud management platform, the cloud management platform is used for managing a cloud data center, the cloud data center includes a plurality of servers, the plurality of servers are accessed into a high-speed interconnection bus network inside the cloud data center, and the method includes: The cloud management platform receives a virtual instance creation request input by a tenant, and the virtual instance creation request includes a capacity of a virtual instance shared memory and a virtual instance specification to be created; The cloud management platform selects a first server in the plurality of servers in response to the virtual instance creation request, sends a first control command to the first server, and the first control command is used for instructing the first server to: create the virtual instance shared memory according to a physical memory matched with the capacity in the first server, create a first virtual instance according to the virtual instance specification in the first server, and set the virtual instance shared memory to be accessible by the first virtual instance, wherein the first server is provided with hardware resources capable of providing the virtual instance specification. The cloud management platform receives a virtual instance memory binding request, the virtual instance memory binding request comprising an identifier of a second virtual instance to which the virtual instance shared memory is to be bound, the second virtual instance being deployed in a second server of the plurality of servers; The cloud management platform sends a second control command to the first server in response to the virtual instance memory binding request, the second control command being used to instruct the first server to provide the virtual instance shared memory to the second virtual instance for use through the high-speed interconnection bus, wherein the virtual instance shared memory is provided to the second virtual instance for use in a manner that allows sharing with the first virtual instance.

10. The method of claim 9, wherein, The method further comprises: The cloud management platform receives a first virtual instance release request input by the tenant, the first virtual instance release request comprising an identifier of the first virtual instance; The cloud management platform sends a third control command to the first server in response to the first virtual instance release request, the third control command being used to instruct the first server to unload the first virtual instance, release the virtual instance shared memory, and release the hardware resources occupied by the first virtual instance.

11. The method according to claim 9 or 10, characterized in that, The virtual instance creation request further comprises permission information that sets the first virtual instance as readable and writable or readable and non-writable to the virtual instance shared memory; The first control command is further used to instruct the first server to allow the first virtual instance to read and write the virtual instance shared memory, or allow the first virtual instance to read the virtual instance shared memory and prohibit the first virtual instance from writing the virtual instance shared memory; The virtual instance memory binding request further comprises permission information that sets the second virtual instance as readable and writable or readable and non-writable to the virtual instance shared memory; The second control command is further used to instruct the first server to allow the second virtual instance to read and write the virtual instance shared memory, or allow the second virtual instance to read the virtual instance shared memory and prohibit the second virtual instance from writing the virtual instance shared memory.

12. The method according to any one of claims 9 to 11, characterized in that, The cloud data center is further provided with a global memory management node, the global memory management node being used to establish a mapping relationship between the capacity-matched physical memory address in the first server and a global memory address, the first server confirming the global memory address corresponding to the physical memory address through the global memory management node, and the global memory management node being distributed in each server of the plurality of servers or being centrally disposed in one of the plurality of servers.

13. The method according to any one of claims 9 to 12, characterized in that, The high-speed interconnection bus network is a parallel bus network with a bandwidth of no less than 40 Gb / s and supporting synchronous memory access semantics.

14. The method according to any one of claims 9 to 13, characterized in that, The virtual instance comprises a virtual machine and / or a container. The virtual instance comprises a virtual machine and / or a container.

15. A cloud management platform, characterized by, The cloud management platform is used for managing a cloud data center, the cloud data center comprising a plurality of servers, the plurality of servers being accessed into a high-speed interconnection bus inside the cloud data center, the cloud management platform comprising: a receiving module configured to receive a virtual instance memory creation request input by a tenant, the virtual instance shared memory creation request comprising a capacity of a virtual instance memory to be created, and a type of the virtual instance memory, the type comprising a shared memory type and / or a private memory type; a processing module configured to select a first server from the plurality of servers in response to the virtual instance memory creation request, wherein the first server has a physical memory matching the capacity, and send a first control command to the first server, the first control command being used for instructing the first server to create the virtual instance memory according to the physical memory; the receiving module is further configured to receive a first virtual instance memory binding request, the first virtual instance memory binding request comprising an identification of a first virtual instance to which the virtual instance memory is to be bound, the first virtual instance being deployed in a second server of the plurality of servers; the processing module is further configured to send a second control command to the first server in response to the first virtual instance memory binding request, the second control command being used for instructing the first server to provide the virtual instance memory to the first virtual instance for use through the high-speed interconnection bus, wherein: in a case where the type is the shared memory type, the virtual instance memory is provided to the first virtual instance for use in a manner that allows sharing with other virtual instances; and / or, in a case where the type is the private memory type, the virtual instance memory is provided to the first virtual instance for use in a manner that does not allow sharing with other virtual instances.

16. The cloud management platform of claim 15, wherein, the type is the shared memory type, the receiving module is further configured to receive a second virtual instance memory binding request, the second virtual instance memory binding request comprising an identification of a second virtual instance to which the virtual instance memory is to be bound, the second virtual instance being deployed in a third server of the plurality of servers; the processing module is further configured to send a third control command to the first server in response to the second virtual instance memory binding request, the third control command being used for instructing the first server to provide the virtual instance memory to the second virtual instance for use through the high-speed interconnection bus, wherein the virtual instance memory is set to be accessible to the first virtual instance and the second virtual instance.

17. The cloud management platform of claim 16, wherein, the first virtual instance memory binding request further comprises permission information for setting the first virtual instance to be readable and writable or readable and non-writable to the virtual instance memory; the second control command is further used for instructing the first server to allow the first virtual instance to read and write the virtual instance memory, or allow the first virtual instance to read the virtual instance memory and prohibit the first virtual instance from writing the virtual instance memory; The second virtual instance memory binding request further includes: setting permission information of the second virtual instance on the virtual instance memory, which is readable and writable or readable and non-writable. The third control command is further used to instruct the first server to allow the second virtual instance to read and write the virtual instance memory, or to allow the second virtual instance to read the virtual instance memory and prohibit the second virtual instance to write the virtual instance memory.

18. The cloud management platform according to any one of claims 15 to 17, wherein, The receiving module is further configured to receive a first virtual instance memory unbinding request input by the tenant, the first virtual instance memory unbinding request including an identifier of the first virtual instance. The processing module is further configured to send a fourth control command to the first server in response to the first virtual instance memory unbinding request, the fourth control command being used to instruct the first server to stop providing the virtual instance memory to the first virtual instance for use.

19. The cloud management platform according to any one of claims 15 to 18, wherein, The receiving module is further configured to receive a virtual instance memory deletion request input by the tenant. The processing module is further configured to send a fifth control command to the first server in response to the virtual instance memory deletion request, the fifth control command being used to instruct the first server to release the virtual instance memory.

20. The cloud management platform of any of claims 15 to 19, wherein, The cloud data center is further provided with a global memory management node, the global memory management node being used to establish a mapping relationship between the physical memory address matched with the capacity in the first server and a global memory address, the first server confirming the global memory address corresponding to the physical memory address through the global memory management node, and the global memory management node being distributed in each of the plurality of servers or being centrally arranged in one of the plurality of servers.

21. The cloud management platform of any of claims 15 to 20, wherein, The high-speed interconnection bus is a parallel bus with a bandwidth of no less than 40 Gb / s and supporting synchronous memory access semantics.

22. The cloud management platform of any of claims 15 to 21, wherein, The virtual instance includes a virtual machine and / or a container.

23. A cloud management platform, characterized by, The cloud management platform is used to manage a cloud data center, the cloud data center including a plurality of servers, the plurality of servers being accessed to a high-speed interconnection bus network inside the cloud data center, and the cloud management platform including: a receiving module configured to receive a virtual instance creation request input by a tenant, the virtual instance creation request including a capacity of a virtual instance shared memory and a virtual instance specification to be created; The processing module is configured to select a first server from the plurality of servers in response to the virtual instance creation request, and send a first control command to the first server, where the first control command is used to instruct the first server to create the virtual instance shared memory according to the physical memory matched with the capacity in the first server, and create a first virtual instance according to the virtual instance specification in the first server, and set the virtual instance shared memory to allow the first virtual instance to access, where the first server is provided with hardware resources that can provide the virtual instance specification; The receiving module is further configured to receive a virtual instance memory binding request, where the virtual instance memory binding request comprises an identifier of a second virtual instance to which the virtual instance shared memory is to be bound, and the second virtual instance is deployed in a second server of the plurality of servers; The processing module is further configured to send a second control command to the first server in response to the virtual instance memory binding request, where the second control command is used to instruct the first server to provide the virtual instance shared memory to the second virtual instance for use through the high-speed interconnection bus, and the virtual instance shared memory is set to be provided to the second virtual instance for use in a manner that allows the first virtual instance to share the virtual instance shared memory.

24. The cloud management platform of claim 23, wherein The receiving module is further configured to receive a first virtual instance release request input by the tenant, where the first virtual instance release request comprises an identifier of the first virtual instance; The processing module is further configured to send a third control command to the first server in response to the first virtual instance release request, where the third control command is used to instruct the first server to unload the first virtual instance, release the virtual instance shared memory, and release hardware resources occupied by the first virtual instance.

25. The cloud management platform of claim 23 or 24, wherein, The virtual instance creation request further comprises permission information that sets the first virtual instance to be readable and writable or readable and non-writable to the virtual instance shared memory; The first control command is further used to instruct the first server to allow the first virtual instance to read and write the virtual instance shared memory, or allow the first virtual instance to read the virtual instance shared memory and prohibit the first virtual instance from writing the virtual instance shared memory; The virtual instance memory binding request further comprises permission information that sets the second virtual instance to be readable and writable or readable and non-writable to the virtual instance shared memory; The second control command is further used to instruct the first server to allow the second virtual instance to read and write the virtual instance shared memory, or allow the second virtual instance to read the virtual instance shared memory and prohibit the second virtual instance from writing the virtual instance shared memory.

26. The cloud management platform of any of claims 23 to 25, wherein, The cloud data center is also provided with a global memory management node, which is configured to establish a mapping relationship between the physical memory address matched with the capacity in the first server and the global memory address, and the first server confirms the global memory address corresponding to the physical memory address through the global memory management node, and assigns the global memory address to the first virtual instance and the second virtual instance. The global memory management node is distributed in each of the plurality of servers, or is centrally arranged in one of the plurality of servers.

27. The cloud management platform of any of claims 23 to 26, wherein, The high-speed interconnection bus network is a parallel bus network with a bandwidth of no less than 40 Gb / s and supporting synchronous memory access semantics.

28. The cloud management platform of any of claims 23 to 27, wherein, The virtual instance includes a virtual machine and / or a container.

29. A computing device, comprising: A computer program product including instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method of any one of claims 1 to 8, or the method of any one of claims 9 to 14.

30. A cluster of computing devices, characterized in that, A computing device or a cluster of computing devices including a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method of any one of claims 1 to 8, or the method of any one of claims 9 to 14.

31. A computer program product, characterised in that, A computer program product including instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method of any one of claims 1 to 8, or the method of any one of claims 9 to 14.

32. A computer-readable storage medium, comprising: A computer program product including instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or the cluster of computing devices to perform the method of any one of claims 1 to 8, or the method of any one of claims 9 to 14.