Computing system, virtualization instance live migration method and related equipment

By using shared memory in computing systems, virtualized instances only transmit state and configuration information during the hot migration between computing devices, solving the problem of too long service interruption time and achieving interrupt time of seconds or even hundreds of milliseconds , improves user experience and migration success rate.

CN119225899APending Publication Date: 2024-12-31HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202311199809.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-28
Filing Date
2023-09-15
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

When existing virtualization instances are hotly migrated between computing devices, business interruption time is too long, resulting in users' obvious perception of interruption and reducing user experience.

Method used

By introducing shared memory in the computing system, the first computing device only sends the status information, configuration information and memory space information of the virtualization instance to the second computing device. The second computing device starts the virtualization instance based on the received information, avoiding the The network transmission of in-memory data shortens migration time.

Benefits of technology

It effectively shortens the business interruption time of virtualized instances, reduces users' perception of migration, improves user experience, and improves migration success rate and performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119225899A_ABST
    Figure CN119225899A_ABST
Patent Text Reader

Abstract

The invention provides a computing system, which comprises a first computing device, a second computing device and a shared memory, and is characterized in that the first computing device is used for responding to a migration request; sending the state information and the configuration information of the first virtualization instance on the first computing device and the information of the memory space corresponding to the first virtualization instance to a second computing device; the second computing device is used for starting a second virtualization instance according to the received state information, configuration information and memory space information, and the two virtualization instances are the same in state, configuration and memory space. Thus, the first computing device does not need to send the data in the memory space to the second computing device, so that the time consumed for the first virtualization instance to perform live migration between the two computing devices can be effectively shortened, the service interruption duration of the first virtualization instance can be shortened, and the user experience is improved. In addition, the invention also provides a corresponding virtualization instance live migration method and related equipment.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to Chinese patent application No. 202310781433.4, filed on June 28, 2023, and application name “A Computing System”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of virtualization technology, and in particular to a computing system, a virtualization instance hot migration method, and related equipment. Background Art

[0003] With the development of virtualization technology, the application of virtualized instances is becoming more and more extensive. For example, in a cluster including multiple computing devices (such as a data center, etc.), multiple virtual machines can be deployed, and the multiple virtual machines can provide corresponding business services during operation.

[0004] In actual application scenarios, it is often necessary to migrate virtualized instances between different computing devices. For example, some computing devices may need to be powered off for maintenance, or there are too many virtualized instances running on some computing devices. Therefore, it is necessary to migrate the virtualized instances on the computing device to other computing devices for operation.

[0005] At present, hot migration is usually used to migrate virtualized instances between different computing devices to reduce the service interruption time of the virtualized instances and reduce the user's perception of the migration of the virtualized instances. However, in the process of hot migrating the virtualized instance on computing device 1 to computing device 2, it is usually necessary to transmit the data stored in the memory allocated to the virtualized instance in computing device 1 to computing device 2 through the network so that the virtualized instance can resume business on computing device 2 based on the transmitted memory data. Generally, it takes a long time for memory data to migrate from computing device 1 to computing device 2, which will cause the service interruption time of the virtualized instance to be too long, so that the user can obviously perceive the service interruption, which reduces the user experience. Summary of the invention

[0006] The present application provides a computing system for shortening the service interruption duration of a virtualized instance and improving user experience. In addition, the present application also provides a virtualized instance hot migration method, device, computer-readable storage medium, and computer program product.

[0007] In a first aspect, the present application provides a computing system, which includes multiple computing devices and a shared memory. A first computing device and a second computing device among the multiple computing devices can access the shared memory, and a first virtualization instance is run on the first computing device, and the memory space corresponding to the first virtualization instance is located in the shared memory. The first computing device is used to respond to a migration request, which can be, for example, a user can send a client to the first computing device, etc., to request the first computing device to perform hot migration on the first virtualization instance on it. When responding to the migration request, the state information, configuration information of the first virtualization instance, and information of the memory space corresponding to the first virtualization instance are sent to the second computing device. Among them, the state information can, for example, include the running state of the processor supporting the operation of the first virtualization instance and the use state of the first virtualization instance for the virtual device; the configuration information can include the resource configuration information of the first virtualization instance and the information related to the first virtualization instance for addressing the memory space; the information of the memory space can, for example, include the physical address and size of the memory space. The second computing device is used to start a second virtualization instance based on the received status information, configuration information and memory space information, wherein the status of the second virtualization instance (usage status information for the processor and the virtual device) is the same as the status of the first virtualization instance, the configuration of the second virtualization instance (resource configuration, addressing configuration, etc.) is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance (that is, the first virtualization instance and the second virtualization instance are allocated to the same memory space in the shared memory).

[0008] Since the second computing device can also access the memory space allocated to the first virtualized instance in the shared memory, the first computing device only needs to send the state information, configuration information and memory space information of the first virtualized instance to the second computing device, and there is no need to send the data in the memory space to the second computing device. In addition, the amount of state information, configuration information and memory space information is usually small, which can effectively shorten the time taken for the first virtualized instance to perform hot migration between the first computing device and the second computing device, that is, it can reduce the service interruption duration of the first virtualized instance, thereby effectively reducing the user's perception of the service interruption of the first virtualized instance and improving the user experience. In actual application, the service interruption duration of the virtualized instance can be reduced to seconds or even hundreds of milliseconds, which can achieve the hot migration process of the first virtualized instance without the user being aware of it. In addition, by accessing the shared memory, the second computing device can obtain the data that the first virtualized instance needs to read and write during operation. This not only ensures the success rate of the second computing device in obtaining the data, that is, improves the success rate of hot migration of the first virtualized instance (avoiding the failure of transmission of large amounts of memory data between different computing devices), but also the latency of the second computing device accessing the data in the shared memory is low, which can ensure the performance of the virtualized instance migrated to the second computing device during operation.

[0009] In a possible implementation, the shared memory in the computing system is connected to the first computing device and the second computing device through a bus, and the first computing device and the second computing device can directly access the memory space in the shared memory through the bus. In this way, the latency of the first computing device or the second computing device accessing the shared memory through the bus is kept at a low level, such as the latency of accessing the shared memory is kept at the level of hundreds of milliseconds.

[0010] In a possible implementation, the first virtualization instance includes a virtual machine or a container.

[0011] In a possible implementation, the information of the memory space corresponding to the first virtualization example includes the physical address of the memory space. Then, when the second computing device starts the second virtualization instance according to the state information, configuration information, and the information of the memory space, it specifically establishes a mapping between the virtual address when the second virtualization instance accesses the memory and the physical address of the memory space according to the configuration information and the information of the memory space. The mapping enables the second virtualization instance to access the data stored in the memory space, so that the second computing device starts the second virtualization instance according to the state information and the established mapping. In this way, the second virtualization instance can continue to execute the business interrupted by the first virtualization instance based on the state of the first virtualization instance at the time of interruption and the memory data read and written, thereby realizing the hot migration of the virtualization instance.

[0012] In a second aspect, the present application provides a computing system, which includes multiple computing devices, a first computing device among the multiple computing devices includes a shared memory, and a second computing device among the multiple computing devices can access the shared memory, a first virtualization instance is run on the first computing device, and the memory space corresponding to the first virtualization instance is located in the shared memory. The first computing device is used to respond to a migration request, which can be, for example, a user can send a client to the first computing device, etc., to request the first computing device to perform hot migration on the first virtualization instance on it, and when responding to the migration request, the state information, configuration information of the first virtualization instance, and information of the memory space corresponding to the first virtualization instance are sent to the second computing device. Among them, the state information can be, for example, the running state of the processor supporting the running of the first virtualization instance and the use state of the first virtualization instance for the virtual device; the configuration information can include the resource configuration information of the first virtualization instance and the information related to the first virtualization instance for addressing the memory space; the information of the memory space can, for example, include the physical address and size of the memory space. The second computing device is used to start a second virtualization instance based on the received status information, configuration information and memory space information, wherein the status of the second virtualization instance (usage status information for the processor and the virtual device) is the same as the status of the first virtualization instance, the configuration of the second virtualization instance (resource configuration, addressing configuration, etc.) is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance (that is, the first virtualization instance and the second virtualization instance are allocated to the same memory space in the shared memory).

[0013] Since the second computing device can also access the memory space allocated to the first virtualized instance in the shared memory, the first computing device only needs to send the state information, configuration information and memory space information of the first virtualized instance to the second computing device, and there is no need to send the data in the memory space to the second computing device. In addition, the amount of state information, configuration information and memory space information is usually small, which can effectively shorten the time taken for the first virtualized instance to perform hot migration between the first computing device and the second computing device, that is, it can reduce the service interruption duration of the first virtualized instance, thereby effectively reducing the user's perception of the service interruption of the first virtualized instance and improving the user experience. In actual application, the service interruption duration of the virtualized instance can be reduced to seconds or even hundreds of milliseconds, which can achieve the hot migration process of the first virtualized instance without the user being aware of it. In addition, by accessing the shared memory, the second computing device can obtain the data that the first virtualized instance needs to read and write during operation. This not only ensures the success rate of the second computing device in obtaining the data, that is, improves the success rate of hot migration of the first virtualized instance (avoiding the failure of transmission of large amounts of memory data between different computing devices), but also the latency of the second computing device accessing the data in the shared memory is low, which can ensure the performance of the virtualized instance migrated to the second computing device during operation.

[0014] In a third aspect, the present application provides a method for hot migration of a virtualized instance, which is applied to a computing system, wherein the computing system includes a first computing device, a second computing device, and a shared memory, and the first computing device and the second computing device can access the shared memory, and the first computing device runs a first virtualized instance, and the memory space corresponding to the first virtualized instance is located in the shared memory; wherein, in the process of migrating the virtualized instance, the first computing device responds to the migration request and sends the state information, configuration information, and memory space information of the first virtualized instance to the second computing device; the second computing device starts the second virtualized instance according to the state information, configuration information, and memory space information, the state of the second virtualized instance is the same as the state of the first virtualized instance, the configuration of the second virtualized instance is the same as the configuration of the first virtualized instance, and the memory space corresponding to the second virtualized instance is the same as the memory space corresponding to the first virtualized instance.

[0015] In a possible implementation, the shared memory is connected to the first computing device and the second computing device respectively through a bus, and the first computing device and the second computing device directly access the memory space in the shared memory through the bus.

[0016] In a possible implementation, the first virtualization instance includes a virtual machine or a container.

[0017] In one possible implementation, the information of the memory space includes the physical address of the memory space; then, the second computing device starts the second virtualization instance according to the status information, the configuration information, and the information of the memory space, including: the second computing device establishes a mapping between the virtual address when the second virtualization instance accesses the memory and the physical address of the memory space according to the configuration information and the information of the memory space, and starts the second virtualization instance according to the status information and the established mapping.

[0018] The virtualization instance hot migration method provided in the third aspect corresponds to the computing system provided in the first aspect. Therefore, the technical effects of the virtualization instance hot migration method in the third aspect and any possible implementation method of the third aspect can refer to the technical effects of the first aspect and the corresponding implementation method of the first aspect, and will not be repeated here.

[0019] In a fourth aspect, the present application provides a method for hot migration of a virtualized instance, the method being applied to a computing system, the computing system comprising a first computing device and a second computing device, the first computing device comprising a shared memory, the second computing device being able to access the shared memory, the first computing device running a first virtualized instance, the memory space corresponding to the first virtualized instance being located in the shared memory; in the process of hot migration of the virtualized instance, the first computing device responds to a migration request and sends state information, configuration information and memory space information of the first virtualized instance to the second computing device; the second computing device starts the second virtualized instance based on the state information, configuration information and memory space information, the state of the second virtualized instance being the same as the state of the first virtualized instance, the configuration of the second virtualized instance being the same as the configuration of the first virtualized instance, and the memory space corresponding to the second virtualized instance being the same as the memory space corresponding to the first virtualized instance.

[0020] The virtualization instance hot migration method provided in the fourth aspect corresponds to the computing system provided in the second aspect. Therefore, the technical effects of the virtualization instance hot migration method in the fourth aspect can refer to the technical effects of the corresponding implementation method in the second aspect, and will not be repeated here.

[0021] In a fifth aspect, the present application provides a virtualization instance hot migration device, which is applied to a computing system, wherein the computing system includes a first computing device, a second computing device, and a shared memory, wherein the first computing device and the second computing device can access the shared memory, and a first virtualization instance is run on the first computing device, and a memory space corresponding to the first virtualization instance is located in the shared memory; the virtualization instance hot migration device includes:

[0022] A sending module, configured to respond to the migration request and send the state information, configuration information, and memory space information of the first virtualized instance to the second computing device;

[0023] A startup module is used to start a second virtualization instance according to state information, configuration information, and memory space information, wherein the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

[0024] In a possible implementation, the shared memory is connected to the first computing device and the second computing device respectively through a bus, and the first computing device and the second computing device directly access the memory space in the shared memory through the bus.

[0025] In a possible implementation, the first virtualization instance includes a virtual machine or a container.

[0026] In one possible implementation, the information of the memory space includes the physical address of the memory space; then, the startup module is specifically used to establish a mapping between the virtual address when the second virtualization instance accesses the memory and the physical address of the memory space according to the configuration information and the information of the memory space, and start the second virtualization instance according to the status information and the established mapping.

[0027] In a sixth aspect, the present application provides a virtualization instance hot migration device, which is applied to a computing system, wherein the computing system includes a first computing device and a second computing device, the first computing device includes a shared memory, the second computing device can access the shared memory, the first virtualization instance is run on the first computing device, and the memory space corresponding to the first virtualization instance is located in the shared memory; the virtualization instance hot migration device includes: a sending module, which is used to respond to a migration request and send state information, configuration information and memory space information of the first virtualization instance to the second computing device; a starting module, which is used to start the second virtualization instance according to the state information, configuration information, and memory space information, the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

[0028] In a seventh aspect, the present application provides a computer-readable storage medium, wherein instructions are stored in the computer-readable storage medium, which, when executed on a computing device, enables the computing device to execute the method described in the first aspect or any one of the implementations of the first aspect, or enables the computing device to execute the method described in the second aspect.

[0029] In an eighth aspect, the present application provides a computer program product comprising instructions, which, when executed on a computing device, enables the computing device to execute the method described in the first aspect or any one of the implementations of the first aspect, or enables the computing device to execute the method described in the second aspect.

[0030] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.

[0032] Figure 1 A schematic diagram of the structure of an exemplary computing system provided by the present application;

[0033] Figure 2 A flowchart of a virtualized instance hot migration method provided in this application;

[0034] Figure 3 A schematic diagram of another exemplary computing system provided by the present application;

[0035] Figure 4 A flowchart of a virtualized instance hot migration method provided in this application;

[0036] Figure 5 A schematic diagram of the structure of a virtualized instance hot migration device provided in this application. DETAILED DESCRIPTION

[0037] The terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances. This is just a way of distinguishing objects with the same attributes when describing the embodiments of this application.

[0038] See also Figure 1 , which shows a schematic diagram of the structure of a computing system. Figure 1 As shown, the computing system 10 includes a computing device 100 , a computing device 200 , and a shared memory 300 .

[0039] Among them, the shared memory 300 can be connected to the computing device 100 and the computing device 200 respectively through a bus. Exemplarily, the bus, such as a Compute Express Link (CXL) bus, an NVlink bus or other types of buses, can enable the computing device 100 or the computing device 200 to directly access the memory space in the shared memory 300, so that the latency of the computing device 100 and the computing device 200 accessing the shared memory 300 through the bus is kept at a low level, such as the latency of accessing the shared memory 300 is kept at the level of hundreds of milliseconds. In addition, the computing device 100 and the computing device 200 can communicate through an interconnected network, such as through Ethernet.

[0040] Exemplarily, the computing device 100 and the computing device 200 may be devices including at least one processor, such as a server, etc. The processor may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a system on chip (SoC), a software-defined infrastructure (SDI) chip, an artificial intelligence (AI) chip, a data processing unit (DPU), or any other processor or any combination thereof.

[0041] like Figure 1 As shown, the computing device 100 may include a virtualization instance 101 , virtualization software 102 , a host operating system (host OS) 103 , and hardware 104 .

[0042] The virtualized instance 101 may be, for example, a virtual machine (VM), a container, or other object implemented using virtualization technology. In addition, the number of virtualized instances deployed on the computing device 100 may be one or more. Figure 1A virtualization instance (ie, virtualization instance 101) is taken as an example for description.

[0043] The virtualization software 102 is used to create, schedule and manage virtual resources on the computing device 100, and may be, for example, a kernel base virtual machine (KVM), a quick emulator (QEMU) or other software.

[0044] The host operating system 103 is an operating system installed and running on the computing device 100 .

[0045] Hardware 104 may include multiple hardware on the computing device 100, such as a CPU, and may also include memory, peripheral component interconnect express (PCIe) devices. The PCIe device refers to a device that can be inserted into a PCIe slot on the computing device 100, such as a hard disk, a network card, a graphics processing unit (GPU), an offload card, etc.

[0046] The structure of the computing device 200 is similar to that of the computing device 100, and can be referred to Figure 1 And the above description about the computing device 100 is understood.

[0047] The shared memory 300 is used to store data and supports the computing device 100 and the computing device 200 to access data. Exemplarily, the shared memory 300 can be a random access memory (RAM) or a read-only memory (ROM). The random access memory can be, for example, a dynamic random access memory (DRAM), a static random access memory (SRAM), or a storage class memory (SCM). The read-only memory can be, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), etc. In addition, the shared memory 300 can also be a dual in-line memory module or a dual-line memory module (DIMM), that is, a module composed of a dynamic random access memory (DRAM); or the shared memory 300 can also be a solid state disk (SSD). In addition, the shared memory 300 may also have a power conservation function, wherein the power conservation function means that when the shared memory 300 loses power and then is powered on again, the data stored therein will not be lost due to the power loss.

[0048] Part or all of the memory space in the shared memory 300 can be allocated to the virtualization instance 101 so that the virtualization instance 101 can read and write data in the allocated memory space when it is running. For ease of understanding, the memory space 301 in the shared memory 300 is allocated to the virtualization instance. Furthermore, when the computing system 10 includes more than 3 (including 3) computing devices, different memory spaces can be divided in the shared memory 300, and different memory spaces in the shared memory 300 can be shared by different computing devices. The storage area in the shared memory 300 that can be shared and accessed by the computing device 100 and the computing device 200 can specifically be: Figure 1 The memory space 301 shown in FIG.

[0049] In actual application scenarios, it may be necessary to power off the computing device 100 for maintenance or software upgrades, or it may be necessary to reduce the load of the computing device 100, etc. At this time, the virtualized instance 101 in operation on the computing device 100 can be hot migrated to the computing device 200, that is, the virtualized instance 101 is migrated from the computing device 100 to the computing device 200 without restarting the business, so that the user is unaware of the migration of the virtualized instance. During the operation of the virtualized instance 101, data is usually read and written in the allocated memory, and the virtualized instance migrated to the computing device 200 needs to restore the business based on the data in the memory. However, if the data in the memory is sent from the computing device 100 to the computing device 200, the transmission time is usually long, which will cause the virtualized instance to have a business interruption for too long, so that the user can obviously perceive the business interruption, reducing the user experience.

[0050] To this end, Figure 1 In the computing system 10 shown, the virtualized instance 101 can read and write data in the shared memory 300 during runtime, such as writing the business data generated during runtime into the memory space 301 allocated to the virtualized instance 101 in the shared memory 300 . In this way, when hot migrating the virtual instance 101 from the computing device 100 to the computing device 200, since the computing device 200 can also access the memory space 301 in the shared memory 300, the computing device 100 only needs to send the state information (such as the CPU running state) of the virtualized instance 101, the configuration information (such as the virtualized page table, etc.) and the information of the memory space 301 allocated to the virtualized instance 101 (such as the physical address of the memory space 301, etc.) to the computing device 200, without sending memory data to the computing device 200, and the data volume of the state information, configuration information and the information of the memory space 301 is usually small, which can effectively shorten the time consumed for hot migration of the virtualized instance 101 between the computing device 100 and the computing device 200, that is, it can shorten the service interruption time of the virtualized instance 101, thereby effectively reducing the user's perception of the service interruption of the virtualized instance 101 and improving the user experience. In actual application, the service interruption time of the virtualized instance can be reduced to seconds or even hundreds of milliseconds, which can achieve the hot migration process of the virtualized instance 101 without user perception.

[0051] In addition, by accessing the shared memory 300, the computing device 200 can obtain the data that the virtualization instance 101 needs to read and write during operation. This can not only ensure the success rate of the computing device 200 in obtaining the data, that is, improve the success rate of hot migration of the virtualization instance 101 (avoiding the failure of transmission of large amounts of memory data between different computing devices), but also the latency of the computing device 200 in accessing the data in the shared memory 300 is low, which can ensure the performance of the virtualization instance migrated to the computing device 200 during operation.

[0052] It is worth noting that the above Figure 1 The computing system 10 shown is only an exemplary description and is not intended to limit the implementation of the computing system 10 to Figure 1 The computing system 10 may include a greater number of computing devices, and in addition to the computing devices and the shared memory 300, the computing system 10 may also include other types of devices, such as storage devices, which may be used to persistently store data generated during the operation of the data virtualization instance 101. The specific architecture of the computing system is not limited in this application.

[0053] For ease of understanding, the process of hot migrating virtualized instances between different computing devices is described in detail below with reference to the accompanying drawings.

[0054] See also Figure 2 , shows a flow chart of a virtualization instance hot migration method provided by an embodiment of the present application, which can be applied to Figure 1 The present invention may be used in the computing system 10 shown in the figure, or may be used in other applicable computing systems. Figure 1 The computing system 10 shown in the figure is used as an example for illustrative description. Figure 2 As shown, the method may specifically include:

[0055] S201 : The computing device 100 responds to the migration request and sends the configuration information 1 of the virtualization instance 101 to the computing device 200 .

[0056] In actual application, there is usually a need to hot migrate virtualized instances between different computing devices. For example, the number of virtualized instances running on computing device 100 may be too many, while the number of virtualized instances running on computing device 200 is relatively small. In this case, some virtualized instances on computing device 100 may be hot migrated to computing device 200 to achieve load balancing in computing system 10. For another example, if both computing device 100 and computing device 200 run fewer virtualized instances, all virtualized instances on computing device 100 may be hot migrated to computing device 200, and computing device 100 may be shut down or hibernated to reduce the energy consumption of computing system 10. For another example, if computing device 100 needs to be powered off for maintenance, all virtualized instances on computing device 100 may be hot migrated to computing device 200 to operate or upgrade computing device 100.

[0057] In this embodiment, when the computing device 100 receives a migration request for the virtualized instance 101, it may determine that the virtualized instance 101 on the computing device 100 needs to be hot migrated to the computing device 200. At this time, the computing device 100 may first send the configuration information 1 for the virtualized instance 101 to the computing device 200, and the configuration information 1 indicates the number of resources required when deploying the virtualized instance 101, so that the computing device 200 can create a virtualized instance with the same resource configuration as the virtualized instance 101.

[0058] Exemplarily, configuration information 1 may include, for example, the number of processor cores required to run virtualization instance 101, cache size, virtualization devices used (such as virtual network cards, virtual hard disks), virtual addresses allocated for accessing memory, and other information.

[0059] During this process, the virtualization instance 101 remains in operation and provides corresponding business services. In addition, the business data generated by the virtualization instance 101 during operation can be stored in the memory space 301 corresponding to the virtualization instance 101 in the shared memory 300 .

[0060] In actual application scenarios, the computing device 100 can perform a hot migration process for the virtualized instance 101 under the operation instructions of the user (such as an administrator, etc.). For example, the computing system 10 can provide a client to the outside, and the user can log in to the corresponding administrator account on the client, and after the login is successful, send a migration request for the virtualized instance 101 to the computing system 10 through the client, and the migration request may include the identifier of the virtualized instance 101, the identifier of the computing device 100 where the virtualized instance 101 is located, and the identifier of the computing device 200, so as to instruct the computing device 100 to hot migrate the virtualized instance 101 to the computing device 200. Accordingly, the computing system 10 can respond to the migration request, and the computing device 100 starts to perform the hot migration process for the virtualized instance 101, which can be specifically sending the configuration information 1 of the virtualized instance 101 to the computing device 200, and instructing the computing device 200 to create the migrated virtualized instance according to the configuration information 1.

[0061] S202 : The computing device 200 creates a virtualization instance 201 based on the received configuration information 1 , and the number of resources allocated to the virtualization instance 201 matches the number of resources allocated to the virtualization instance 101 .

[0062] In this way, the virtualization instance 201 created on the computing device 200 may have the same resource configuration as the virtualization instance 101 on the computing device 100 .

[0063] For ease of understanding and description, in this embodiment Figure 1 The virtualized instance 201 in the computing device 200 is used as a virtualized instance hot migrated to the computing device 200. At this time, the virtualized instance 201 created by the computing device 200 has not yet started running.

[0064] S203: The computing device 100 suspends running the virtualization instance 101.

[0065] Since the running state of the virtualization instance 101 is constantly changing, the computing device 100 may suspend the running of the virtualization instance 101 , at which point the service of the virtualization instance 101 may be interrupted.

[0066] S204: The computing device 100 obtains the status information of the virtualization instance 101, the configuration information 2, and the information of the memory space 301 corresponding to the virtualization instance 101.

[0067] Among them, the state information may include the running state of the processor (such as CPU, etc.) supporting the operation of the virtualization instance 101, and the running state is the state of the processor when the virtualization instance 101 is suspended. In addition, the state information may also include the use state of the virtualization instance 101 for the virtual device, etc., and the virtual device may be obtained by virtualizing the hardware on the computing device 100 by the virtualization software 102. In actual application, for the same hardware on the computing device 100, the virtualization software 102 can virtualize the hardware into multiple virtual devices for different virtualization instances, and each virtualization instance corresponds to a virtual device, so that for each virtualization instance, the hardware corresponding to the virtual device is only used by the virtualization instance. The use state of the virtual device of the virtualization instance 101 can indicate the virtual device used by the virtualization instance 101 during operation, as well as the current usage of the virtual device (such as the data reading and writing progress of the virtual hard disk).

[0068] Configuration information 2 may include information used by the virtualization instance 101 to address the memory space 301 , such as a virtualization page table.

[0069] The information of the memory space 301 may include information related to the memory space allocated to the virtualization instance 101, such as the physical address and size of the memory space 301 allocated to the virtualization instance 101 in the shared memory 300. The memory space 301 is used to store data that the virtualization instance 101 needs to read and write during operation.

[0070] S205: The computing device 100 sends status information, configuration information 2, and information of the memory space 301 to the computing device 200.

[0071] S206 : The computing device 200 starts the virtualization instance 201 according to the state information, the configuration information 2 , and the information of the memory space 301 .

[0072] In this embodiment, the computing device 200 can set the usage status of the CPU that supports the operation of the virtualization instance 201 based on the received status information, and set the usage status of each virtual device allocated to the virtualization instance 201. The virtual device can be created in advance for the virtualization instance 201 by the virtualization software 202 based on the configuration information 1.

[0073] Furthermore, the computing device 200 can determine the physical address of the memory space 301 allocated to the virtualization instance 101 in the shared memory 300 based on the information of the memory space 301 corresponding to the virtualization instance 101, and establish a mapping between the virtual memory address of the virtualization instance 201 and the physical address of the memory space 301 based on the configuration information 2, so that the virtualization instance 201 can access the data in the memory space 301 according to the mapping between the virtual memory address and the physical address, so that the virtualization instance 201 can restore business services based on the data.

[0074] In a possible implementation, after receiving the state information, the configuration information 2 and the information of the memory space 301, the computing device 200 may start the virtualization instance 201 based on the following steps, such as: Figure 2 shown.

[0075] S2061: The computing device 200 establishes a mapping between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301 according to the configuration information 2 and the information of the memory space 301.

[0076] In this embodiment, the computing device 200 can establish an indirect mapping between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301, or the computing device 200 can establish a direct mapping between the virtual address and the physical address.

[0077] As a first implementation example, the computing device 200 establishes an indirect mapping between a virtual address and a physical address.

[0078] First, the computing device 100 may map the memory space 301 to a virtual address space on the computing device 100 in advance, and the physical storage location indicated by the virtual address space (that is, the memory space 301) is used to store the data that the virtualized instance 101 needs to read and write in the memory. In specific implementation, the computing device 100 may establish a mapping between the physical address of the memory space 301 and the address in a virtual address space on the computing device 100.

[0079] Then, the computing device 200 can map the memory space 301 to a virtual address space on the computing device 200. Specifically, the information of the memory space 301 may include information such as the physical address and size of the memory space 301. Then, the computing device 200 can create a virtual address space on the computing device 200 according to the size of the memory space 301, and establish a mapping between the address in the virtual address space and the physical address of the memory space 301. In this way, the computing device 200 accesses the memory space 301 as if accessing a local memory according to the mapping between the address in the virtual address space and the physical address of the memory space 301. At this time, the memory space 301 can be used as the remote memory of the computing device 200 (relative to the local memory of the computing device 200), so as to allocate the memory space 301 to the virtualized instance 201 on the computing device 200, that is, the virtualized instance 201 and the virtualized instance 101 can be allocated to the same memory space.

[0080] Next, the computing device 200 establishes the address mapping required for the virtualized instance 201 to access the memory space 301 according to the virtualized page table included in the configuration information 2. It can be understood that the address assigned to the virtualized instance 201 when accessing the memory is a virtual address, and the virtual address is usually mapped to the physical address of the memory that actually stores the data. The virtualized instance 201 is created according to the configuration information 1 of the virtualized instance 101. Therefore, the virtual address of the memory allocated to the virtualized instance 201 is consistent with the virtual address of the memory allocated to the virtualized instance 101. In this way, when the virtualized instance 201 is started and run, it can continue to provide the services interrupted by the virtualized instance 101 based on the same memory virtual address. Based on this, the computing device 200 can establish a mapping relationship between the virtual address when the virtualized instance 201 accesses the memory and a virtual address space created on the computing device 200.

[0081] The following is an example of a specific implementation process of establishing a virtual address and mapping for the virtualization instance 201.

[0082] For example, the virtualization instance 201 may be a virtual machine. The address of the virtual machine when accessing the memory is usually a quick emulator virtual address (QVA). Then, the computing device 200 (such as QEMU on the computing device 200) can convert the QVA into an address in a virtual address space created by the computing device 200 through memory virtualization technology. In actual application, the address in the virtual address space can be called a host physical address (HPA). Specifically, the computing device 200 will first convert the QVA into a guest virtual address (GVA), then convert the GVA into a guest physical address (GPA), and then convert the GPA into an address in the virtual address space created on the computing device 200. Among them, GVA is an address formed by the operating system of the virtual machine mapping the GPA. The operating system of the virtual machine provides the GVA to the process or application software set on the operating system of the virtual machine. The operating system of the virtual machine records the mapping relationship between GVA and GPA, and realizes the conversion from GVA to GPA according to the page table in the operating system of the virtual machine. HVA is the address formed by the host operating system 203 mapping the address in the virtual address space created on the computing device 200. The host operating system 203 provides the HVA to the process (such as a virtual machine) thereon for use. The host operating system 203 records the mapping relationship between the HVA and the address in the virtual address space, and implements the conversion from the HVA to the address in the virtual address space according to the page table in the host operating system 203.

[0083] Based on this, the computing device 200 can first adjust the mapping relationship between the QVA of the virtual machine's allocated memory and the address in the virtual address space created on the device through methods such as mmap (a method of mapping objects to a virtual address space), from the mapping between QVA and the address in the virtual address space created on the computing device 100 to the mapping between QVA and the address in the virtual address space created on the computing device 200. Then, since there is usually an offset between the address in the address space created on the computing device 100 and the address in the address space created on the computing device 200, the computing device 200 can obtain the virtual address space created on the computing device 100 mapped to the physical address of the memory space 301, and according to the address offset between the virtual address space created on the computing device 100 and the virtual address space created on the computing device 200, modify the mapping between the GPA and the address in the virtual address space in the mapping relationship between the QVA and the virtual address space created on the computing device 200 (QVA→GVA→GPA→address in the virtual address space), specifically, modify the virtualization page table required for converting the GPA into an address in the virtual address space, such as an extended page table (EPT), a stage2 page table, etc. In this way, when the virtual machine (i.e., virtualization instance 201) is running, it can access data in memory space 301 based on the mapping relationship between the adjusted QVA and the address in the virtual address space (as well as the mapping relationship between the address in the virtual address space and the physical address of memory space 301).

[0084] In the second example, the virtualization instance 201 is specifically a container. In general, the address when the container accesses the memory is usually a GPA. Therefore, the computing device 200 can adjust the mapping between the GPA of the memory allocated to the container and the address in the virtual address space created on the computing device 200 from the mapping between the QVA and the address in the virtual address space on the computing device 100 to the mapping between the QVA and the address in the virtual address space on the computing device 200, and modify the virtualization page table required for converting the GPA into the address in the virtual address space on the computing device 200 according to the address offset between the address in the virtual address space on the computing device 100 and the address in the virtual address space on the computing device 200. In this way, when the container (i.e., the virtualization instance 201) is running, the data in the memory space 301 can be accessed according to the mapping relationship between the adjusted GPA and the address in the virtual address space on the computing device 200 (as well as the mapping relationship between the address in the virtual address space and the physical address of the memory space 301).

[0085] In this way, virtualization instance 201 and virtualization instance 101 may have the same configuration based on configuration information 1 and configuration information 2 .

[0086] As a second implementation example, the computing device 200 establishes a direct mapping between the virtual address and the physical address.

[0087] Specifically, the computing device 200 can establish a mapping relationship between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301. For example, the information of the memory space 301 obtained by the computing device 200 is specifically the physical address of the memory space 301, so that the computing device 200 can establish a page table to record the mapping relationship between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301. In this way, the computing device 200 can directly access the data in the memory space 301 based on the mapping relationship.

[0088] S2062: The computing device 200 starts the virtualization instance 201 according to the state information and the mapping between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301.

[0089] In this way, when the virtualization instance 201 is started and run, it can successfully access the data in the memory space 301 according to the mapping between the virtual address when the virtualization instance 201 accesses the memory and the physical address of the memory space 301, and can continue to execute the business interrupted by the virtualization instance 101 according to the data in the memory space 301 obtained by access and the CPU status and the virtual device status (that is, the received status information) received by the computing device 200 (that is, the virtualization instance 201 can have the same status when it is started and run as the virtualization instance 101 when it is interrupted), thereby realizing the hot migration of the virtualization instance from the computing device 100 to the computing device 200.

[0090] In this way, in the process of implementing hot migration of virtualized instances, computing device 100 does not need to send memory data to computing device 200, which can effectively shorten the time consumed in hot migration of virtualized instances between computing device 100 and computing device 200, that is, can shorten the business interruption duration of virtualized instances. In actual testing, the business interruption duration of virtualized instances can be shortened to seconds or even hundreds of milliseconds, thereby effectively reducing the user's perception of business interruption of virtualized instance 101 and improving user experience.

[0091] Furthermore, while the virtualized instance 201 continues to execute the service, the newly generated data can be written into the memory space 301 through the bus (such as CXL bus, etc.) between the computing device 200 and the memory space 301. Alternatively, the computing device 200 can also be configured with a local memory, so that the virtualized instance 201 can write the newly generated data into the local memory during operation, which is not limited to this.

[0092] It is worth noting that Figure 2 The method steps shown are only used as an exemplary description, and do not limit the specific implementation process of hot migration virtualization instances to the above Figure 2 The following is an example of Figure 2 The present invention provides an implementation example in which the steps are varied based on the method steps shown.

[0093] Example 1: The computing device 100 may first suspend the virtualization instance 101, and then send the configuration information 1 indicating the number of resources required when deploying the virtualization instance 101 and the configuration information 2 including the virtualization page table as the overall configuration information to the computing device 200. Accordingly, the computing device 200 may create a new virtualization instance (i.e., virtualization instance 201) based on the received configuration information after the virtualization instance 101 is suspended.

[0094] Example 2: Figure 2 In the illustrated embodiment, the computing device 200 maps the physical address of the memory space 301 to the computing device 200, while in other possible embodiments, a control device may be integrated in the shared memory 300 where the memory space 301 is located, and the control device may manage the access of multiple computing devices to the shared memory 300. In this way, during the process of hot migration of virtualized instances, the computing device 100 may instruct the control device that the data in the memory space 301 is shared by the computing device 200, and the control device may map the physical address of the memory space 301 to the computing device 200, and specifically, the control device may send an instruction to the computing device 200 to control the computing device 200 to map the physical address of the memory space 301 to the computing device 200, so that the computing device 200 can access the data in the memory space 301.

[0095] Example 3: The computing device 100 can write the state information and the configuration information 2 into the memory space 301, so that the computing device 200 can obtain the state information and the configuration information 2 by accessing the memory space 301. In this way, after pausing the virtualized instance 101, the computing device 100 and the computing device 200 do not need to transmit data through Ethernet, but can exchange data with the memory space 301 through the bus, thereby improving the success rate and efficiency of the computing device 200 in obtaining the state information and configuration information.

[0096] The above combination Figure 1 as well as Figure 2 The virtualization instance hot migration process shown utilizes a shared memory 300 that is deployed independently of the computing device 100 and the computing device 200 to avoid the transmission of memory data that needs to be read and written during the operation of the virtualization instance 101 between the two computing devices. The shared memory 300 serves as the remote memory of the computing device 100 and the computing device 200.

[0097] In other possible implementations, the computing device 200 may also share the local memory of the computing device 100 to avoid the transmission of memory data between the two computing devices, thereby reducing the service interruption duration caused by hot migration of virtualized instances. Figure 3 as well as Figure 4 , respectively introduce another computing system provided by the present application and another process for hot migrating virtualized instances between different computing devices.

[0098] See also Figure 3 , shows another computing system 20. Figure 3 As shown, the computing system 20 includes a computing device 400 and a computing device 500, and the computing device 400 and the computing device 500 may be connected by a bus. Exemplarily, the bus may be, for example, a CXL bus, an NVlink bus, or other types of buses, which can keep the latency of the computing device 500 accessing the computing device 400 at a low level, such as keeping the latency of accessing the memory data in the computing device 400 at a level of hundreds of milliseconds.

[0099] Exemplarily, the computing device 400 and the computing device 500 may be devices including at least one processor, such as a server, etc. The processor may be a CPU, or any processor such as an ASIC, a PLD, a CPLD, an FPGA, a GAL, a SoC, an SDI chip, an AI chip, a DPU, or any combination thereof.

[0100] like Figure 3 As shown, computing device 400 may include virtualization instance 401 , virtualization software 402 , host operating system (host OS) 403 , and hardware 404 .

[0101] The virtualization instance 401 may be, for example, an object implemented using virtualization technology, such as a VM or a container. In addition, the number of virtualization instances deployed on the computing device 400 may be one or more. Figure 3 A virtualization instance (ie, virtualization instance 401) is taken as an example for description.

[0102] Virtualization software 402 is used to create, schedule, and manage virtual resources on computing device 400, and may be, for example, KVM, QEMU, or other software.

[0103] The host operating system 403 is an operating system installed and running on the computing device 400 .

[0104] Hardware 404 may include multiple hardware on the computing device 400, such as CPU 404-1 and memory 404-2, and may also include a peripheral component interconnect express (PCIe) device 404-3. The PCIe device refers to a device that can be inserted into a PCIe slot on the computing device 400, such as a hard disk, a network card, a graphics processing unit (GPU), an offload card, etc.

[0105] The memory 404-2, as the local memory of the computing device 400, is used to store the data required to be read and written by the virtualization instance 401 during operation. In addition, the memory 404-2 can be a RAM or a ROM. The RAM can be, for example, a DRAM, an SRAM, or an SCM. The ROM can be, for example, a PROM, an EPROM, etc. In addition, the memory 404-2 can also be a DIMM or an SSD. In addition, the memory 404-2 can also have a power preservation function.

[0106] The structure of the computing device 500 is similar to that of the computing device 400, and can be referred to Figure 3 The above description of the computing device 400 is also provided for understanding. Optionally, the computing device 500 may include the memory 504-2, or may not include the memory 504-2, which is not limited thereto.

[0107] Furthermore, computing device 500 can access memory 404-2 in computing device 400 through a bus (such as a CXL bus, etc.) between computing device 500 and computing device 400, that is, memory 404-2 on computing device 400 can be shared and accessed by computing device 500, and it is assumed that all memory space in memory 404-2 is allocated to computing device 500.

[0108] exist Figure 3 Based on the computing system 20 shown in FIG. 1 , the present application provides a method for hot migration of virtualized instances, such as Figure 4 As shown, the method may specifically include:

[0109] S401 : The computing device 400 responds to the migration request and sends the configuration information 1 of the virtualization instance 401 to the computing device 500 .

[0110] In actual applications, there is usually a need to hot migrate virtualized instances between different computing devices.

[0111] For example, the number of virtualization instances running on computing device 400 may be too large, while the number of virtualization instances running on computing device 500 is relatively small. In this case, some virtualization instances on computing device 400 may be hot migrated to computing device 500 to achieve load balancing in computing system 40.

[0112] For another example, if both computing device 400 and computing device 500 are running fewer virtualization instances, all virtualization instances on computing device 400 can be hot migrated to computing device 500, and computing device 400 can be shut down or hibernated to reduce the energy consumption of computing system 40.

[0113] For another example, if computing device 400 needs to be powered off for maintenance, all virtualized instances on computing device 400 can be hot migrated to computing device 500 to perform maintenance or upgrade of computing device 400.

[0114] In this embodiment, when the computing device 400 receives a migration request for the virtualized instance 401, it may determine that the virtualized instance 401 on the computing device 400 needs to be hot migrated to the computing device 500. At this time, the computing device 400 may first send the configuration information 1 for the virtualized instance 401 to the computing device 500, and the configuration information 1 indicates the number of resources required when deploying the virtualized instance 401, so that the computing device 500 can create a virtualized instance with the same resource configuration as the virtualized instance 401. Exemplarily, the migration request may be generated by a user using a client and sent to the computing device 400.

[0115] Exemplarily, configuration information 1 may include, for example, the number of processor cores required to run virtualization instance 401, cache size, virtualization devices used (such as virtual network cards, virtual hard disks), virtual addresses allocated for accessing memory, and other information.

[0116] During this process, the virtualized instance 401 remains in operation and provides corresponding business services. In addition, the business data generated by the virtualized instance 401 during operation can be stored in the local memory 404 - 2 .

[0117] S402 : The computing device 500 creates a virtualization instance 501 based on the received configuration information 1 , and the number of resources allocated to the virtualization instance 501 matches the number of resources allocated to the virtualization instance 401 .

[0118] In this way, the virtualization instance 501 created on the computing device 500 and the virtualization instance 401 on the computing device 400 may have the same resource configuration.

[0119] For ease of understanding and description, in this embodiment Figure 3 The virtualized instance 501 in the computing device 500 is used as a virtualized instance hot migrated to the computing device 500. At this time, the virtualized instance 501 created by the computing device 500 has not yet started running.

[0120] S403: The computing device 400 suspends running the virtualization instance 401.

[0121] Since the running state of the virtualization instance 401 is constantly changing, the computing device 400 may suspend the running of the virtualization instance 401 , at which point the service of the virtualization instance 401 may be interrupted.

[0122] S404 : The computing device 400 obtains the status information of the virtualization instance 401 , the configuration information 2 , and the information of the memory 404 - 2 .

[0123] The state information may include the running state of the processor (such as a CPU, etc.) supporting the running of the virtualized instance 401, and the running state is the state of the processor when the virtualized instance 401 is suspended. In addition, the state information may also include the usage state of the virtualized instance 401 for a virtual device, and the virtual device may be obtained by virtualizing the hardware on the computing device 400 by the virtualization software 402. The usage state of the virtualized instance 401 for the virtual device can indicate the virtual device used by the virtualized instance 401 during the running process, and the current usage of the virtual device.

[0124] Configuration information 2 may include information used by the virtualization instance 401 to address the memory 404 - 2 , such as a virtualization page table.

[0125] The information of the memory 404 - 2 may be, for example, the physical address and size of the memory 404 - 2 .

[0126] S405: The computing device 400 sends the status information, the configuration information 2 and the information of the memory 404 - 2 to the computing device 500 .

[0127] S406: The computing device 500 starts the virtualization instance 501 according to the state information, the configuration information 2, and the information of the memory 404-2.

[0128] In this embodiment, the computing device 500 can establish a mapping relationship between the virtual address when the virtualization instance 501 accesses the memory and the physical address of the memory 404-2 according to the configuration information 2 and the information of the memory 404-2. In this way, when the virtualization instance 501 starts running, it can successfully access the data in the memory 404-2 in the computing device 400 based on the mapping relationship between the virtual address and the physical address, so as to continue to provide the service interrupted by the virtualization instance 401 according to the accessed memory data and the received status information.

[0129] For the specific implementation process of the computing device 500 establishing the mapping relationship between the virtual address of the memory allocated to the virtualization instance 501 and the physical address of the memory 404-2, see Figure 2 The description of the relevant parts of step S206 in the illustrated embodiment is not repeated here.

[0130] Furthermore, the data generated by the virtualized instance 501 during operation can be written into the memory 404-2 in the computing device 400. Alternatively, the computing device 500 can include a local memory, namely the memory 504-2, and the data generated by the virtualized instance 501 during operation can also be written into the memory 504-2, thus further accelerating the efficiency of the virtualized instance 501 in reading and writing data in the memory.

[0131] In this way, in the process of implementing hot migration of virtualized instances, computing device 400 does not need to send memory data to computing device 500, which can effectively shorten the time consumed in hot migration of virtualized instances between computing device 400 and computing device 500, that is, can shorten the business interruption duration of virtualized instances. In actual testing, the business interruption duration of virtualized instances can be shortened to seconds or even hundreds of milliseconds, thereby effectively reducing the user's perception of business interruption of virtualized instance 401 and improving user experience.

[0132] It is worth noting that Figure 4 The method steps shown are only used as an exemplary description, and do not limit the specific implementation process of hot migration virtualization instances to the above Figure 4Example shown. For example, in other possible embodiments, computing device 400 may first suspend virtualization instance 401, and then send configuration information 1 and configuration information 2 as a whole configuration information to computing device 500. Accordingly, computing device 500 may create a new virtualization instance 501 based on the received configuration information after virtualization instance 401 is suspended. Alternatively, computing device 400 may write state information and configuration information 2 into local memory 404-2, so that computing device 500 may access memory 404-2 through a bus to obtain state information and configuration information 2. In this way, after suspending virtualization instance 401, computing device 400 and computing device 500 may not need to transmit data through Ethernet, but may exchange data through the bus and memory 404-2, thereby improving the success rate and efficiency of computing device 500 in obtaining state information and configuration information.

[0133] Combined with the above Figures 1 to 4 , describes in detail the computing system and virtualized instance hot migration method provided by the present application, and will now be combined with Figure 5 , describing the virtualization instance hot migration device provided by the present application.

[0134] See also Figure 5 , showing a structural schematic diagram of a virtualized instance hot migration device. Figure 5 The image processing device 500 shown is applied to a computing system, such as the above Figure 1 The computing system 10 shown includes a first computing device, a second computing device, and a shared memory. The first computing device and the second computing device can access the shared memory. A first virtualization instance is run on the first computing device, and a memory space corresponding to the first virtualization instance is located in the shared memory.

[0135] or, Figure 5 The computing system used by the image processing device 500 shown in FIG. Figure 3 The computing system 20 shown includes a first computing device and a second computing device, the first computing device includes a shared memory, the second computing device can access the shared memory, a first virtualization instance is run on the first computing device, and a memory space corresponding to the first virtualization instance is located in the shared memory;

[0136] The virtualized instance hot migration device 500 includes:

[0137] The sending module 501 is used to respond to the migration request and send the state information, configuration information, and memory space information of the first virtualized instance to the second computing device;

[0138] The startup module 502 is used to start the second virtualization instance according to the state information, configuration information, and memory space information. The state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

[0139] The sending module 501 may be deployed on a first computing device, and the starting module 502 may be deployed on a second computing device.

[0140] In a possible implementation, the shared memory is connected to the first computing device and the second computing device respectively through a bus, and the first computing device and the second computing device directly access the memory space in the shared memory through the bus.

[0141] In a possible implementation, the first virtualization instance includes a virtual machine or a container.

[0142] In a possible implementation, the information of the memory space includes a physical address of the memory space;

[0143] Then, the startup module 502 is specifically used for:

[0144] Establishing a mapping between a virtual address when the second virtualized instance accesses the memory and a physical address of the memory space according to the configuration information and the information of the memory space;

[0145] The second virtualization instance is started according to the state information and the mapping.

[0146] because Figure 5 The virtualized instance hot migration device 500 shown corresponds to the above Figure 2 or Figure 4 The virtualized instance hot migration method in the embodiment shown in the figure is Figure 5 For the specific implementation of the virtualized instance hot migration device 500 and its technical effects, see the above Figure 2 or Figure 4 The description of the relevant parts in the illustrated embodiment will not be repeated here.

[0147] In addition, the embodiment of the present application also provides a computer-readable storage medium, in which instructions are stored, and when the computer-readable storage medium is run on a computing device, the computing device executes the above Figure 2 or Figure 4 The methods described in the examples.

[0148] In addition, the embodiment of the present application also provides a computer program product, when the computer program product is executed by a computing device, the one or more computing devices execute any of the aforementioned virtualization instance hot migration methods. The computer program product can be a software installation package, and when any of the aforementioned virtualization instance hot migration methods is needed, the computer program product can be downloaded and executed on a computer.

[0149] It should also be noted that the device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. In addition, in the drawings of the device embodiments provided by the present application, the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.

[0150] The terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances. This is just a way of distinguishing objects with the same attributes when describing the embodiments of this application.

[0151] Through the description of the above implementation mode, the technicians in the field can clearly understand that the present application can be implemented by means of software plus necessary general hardware, and of course, it can also be implemented by special hardware including special integrated circuits, special CPUs, special memories, special components, etc. In general, all functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be various, such as analog circuits, digital circuits or special circuits. However, for the present application, software program implementation is a better implementation mode in more cases. Based on such an understanding, the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer floppy disk, a U disk, a mobile hard disk, a ROM, a RAM, a disk or an optical disk, etc., including a number of instructions to enable a computer device (which can be a personal computer, a training device, or a network device, etc.) to execute the methods described in each embodiment of the present application.

[0152] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented by software, the above embodiments can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium. The semiconductor medium can be a solid state drive (SSD).

[0153] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.

Claims

1. A computing system, characterized in that: The computing system includes a first computing device, a second computing device, and a shared memory, the first computing device and the second computing device can access the shared memory, a first virtualization instance is run on the first computing device, and a memory space corresponding to the first virtualization instance is located in the shared memory; The first computing device is configured to send the state information, configuration information, and information of the memory space of the first virtualized instance to the second computing device in response to the migration request; The second computing device is used to start a second virtualization instance according to the state information, the configuration information, and the information of the memory space, the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

2. The computing system according to claim 1, characterized in that The shared memory is connected to the first computing device and the second computing device respectively through a bus, and the first computing device and the second computing device directly access the memory space in the shared memory through the bus.

3. The computing system according to claim 1 or 2, characterized in that: The first virtualization instance includes a virtual machine or a container.

4. The computing system according to any one of claims 1 to 3, characterized in that: The information of the memory space includes a physical address of the memory space, and the second computing device is used to: Establishing a mapping between a virtual address when the second virtualization instance accesses memory and a physical address of the memory space according to the configuration information and the information of the memory space; The second virtualization instance is started according to the state information and the mapping.

5. A computing system, characterized in that: The computing system includes a first computing device and a second computing device, the first computing device includes a shared memory, the second computing device can access the shared memory, a first virtualization instance is run on the first computing device, and a memory space corresponding to the first virtualization instance is located in the shared memory; The first computing device is configured to send the state information, configuration information and information of the memory space of the first virtualized instance to the second computing device in response to the migration request; The second computing device is used to start a second virtualization instance according to the state information, the configuration information, and the information of the memory space, the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

6. A virtualization instance hot migration method, characterized in that: The method is applied to a computing system, the computing system comprising a first computing device, a second computing device, and a shared memory, the first computing device and the second computing device being able to access the shared memory, a first virtualization instance running on the first computing device, and a memory space corresponding to the first virtualization instance being located in the shared memory; The method comprises: The first computing device sends the state information, configuration information, and information of the memory space of the first virtualized instance to the second computing device in response to the migration request; The second computing device starts a second virtualization instance based on the state information, the configuration information, and the information of the memory space, the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

7. The method according to claim 6, characterized in that The shared memory is connected to the first computing device and the second computing device respectively through a bus, and the first computing device and the second computing device directly access the memory space in the shared memory through the bus.

8. The method according to claim 6 or 7, characterized in that: The first virtualization instance includes a virtual machine or a container.

9. The method according to any one of claims 6 to 8, characterized in that: The information of the memory space includes the physical address of the memory space; The second computing device starts a second virtualized instance according to the state information, the configuration information, and the information of the memory space, including: The second computing device establishes a mapping between a virtual address when the second virtualization instance accesses memory and a physical address of the memory space according to the configuration information and the information of the memory space; The second computing device starts the second virtualization instance according to the state information and the mapping.

10. A virtualization instance hot migration method, characterized in that: The method is applied to a computing system, the computing system comprising a first computing device and a second computing device, the first computing device comprising a shared memory, the second computing device being able to access the shared memory, a first virtualization instance running on the first computing device, and a memory space corresponding to the first virtualization instance being located in the shared memory; The method comprises: The first computing device sends the state information, configuration information and information of the memory space of the first virtualized instance to the second computing device in response to the migration request; The second computing device starts a second virtualization instance based on the state information, the configuration information, and the information of the memory space, the state of the second virtualization instance is the same as the state of the first virtualization instance, the configuration of the second virtualization instance is the same as the configuration of the first virtualization instance, and the memory space corresponding to the second virtualization instance is the same as the memory space corresponding to the first virtualization instance.

11. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, which, when executed on a computing device, enable the computing device to execute the method according to any one of claims 6 to 10.

12. A computer program product comprising instructions which, when executed on a computing device, cause the computing device to perform the method according to any one of claims 6 to 10.

Citation Information

Cited By

  • Virtual machine migration method and device, cloud computing system and electronic equipment

    CN120687200A

  • Data transmission

    WO2026170909A1