Virtual component upgrade method, virtual instance state preservation method, physical machine, storage medium and program product
Patent Information
- Application Number
- PCT/IB2025/050073
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-18
- Filing Date
- 2025-01-03
- Publication Date
- 2025-10-09
AI Technical Summary
The upgrade solution of virtualization components in the prior art is not suitable for complex upgrade needs, which leads to a great impact on virtualized instances. The hot patch mechanism such as Kpatch has limitations, which cannot meet the problems of diversified and complex virtualization component upgrades.
By saving the virtualized instance state, uninstalling and reinstalling the upgraded virtualization components, and then recovering the state, the memory data resides in-place method to reduce copy operations, concurrent operations improve efficiency, and optimize the uninstall, installation and loading process.
It realizes the upgrade of virtualization components of various complexities, reduces the impact on virtualized instances, shortens the upgrade time, achieves the thermal upgrade effect, and reduces user perception.
Smart Images

Figure IB2025050073_09102025_PF_FP_ABST
Abstract
Description
[0001] TECHNICAL FIELD This disclosure relates to the field of cloud computing technology, and more particularly to a method for upgrading virtualization components and preserving virtualization instance state, a physical machine, a storage medium, and a program product. Background Art Virtualization technology is a key technology in cloud computing. Through virtualization technology, various resources of a physical machine can be virtualized, enabling multiple VMs (Virtual Machines) to run on the same physical machine, sharing resources without interfering with each other. To achieve virtualization, a virtual machine monitor (VMM) is deployed on the physical machine. o The VMM can be seen as an OS (Operating System) designed for virtualization, responsible for the virtualization of hardware resources such as the CPU (Central Processing Unit) and memory, as well as the creation and management of VMs.
[0002] A VMM includes various virtualization-related components, such as various components for virtualizing physical resources and components configured to create and manage VMs. These components are referred to as virtualization components. In practical applications, virtualization components need to be upgraded for bug fixes or feature upgrades. However, existing upgrade solutions are not suitable for virtualization components. Therefore, a solution for upgrading virtualization components is urgently needed. SUMMARY OF THE INVENTION Various aspects of the present disclosure provide a method for upgrading virtualization components and preserving virtualization instance state, a physical machine, a storage medium, and a program product to reduce the impact of virtualization component upgrades on virtualized instances. An embodiment of the present disclosure provides a method for upgrading a virtualization component, comprising: determining a target virtualization component, where the target virtualization component is a virtualization component to be upgraded in a virtualization manager running on a physical machine; saving the state of a virtualization instance running on the physical machine, where the virtualization instance is created by the virtualization manager; uninstalling the target virtualization component before the upgrade, and reinstalling and loading the upgraded target virtualization component; and restoring the state of the virtualization instance based on the saved state information of the virtualization instance. An embodiment of the present disclosure further provides a physical machine, comprising: hardware resources, on which a virtualization manager, a virtualization instance, and an upgrade program are running; the virtualization manager includes multiple virtualization components, and is configured to implement virtualization of the hardware resources and creation and management of the virtualization instances; wherein the upgrade program is configured to determine a target virtualization component to be upgraded among the multiple virtualization components; save the state of the virtualization instance; uninstall the target virtualization component before the upgrade, and reinstall and load the upgraded target virtualization component; and restore the state of the virtualization instance based on the saved state information of the virtualization instance. An embodiment of the present disclosure provides a method for preserving the state of a virtualized instance, comprising: in response to a virtualized instance state save operation, collecting state data of the virtualized instance and saving the state data to a designated file; the virtualized instance having a target memory space, the target memory space including system memory space, and storing first memory data generated by the virtualized instance in the system memory space as a file; and, before the virtualized instance is restored, preserving the first memory data in situ via file sharing. An embodiment of the present disclosure also provides a physical machine comprising hardware resources, the hardware resources including a memory and a processor; the memory being configured to store a computer program, and the processor being coupled to the memory and configured to execute the computer program, to implement the steps of the above method.Embodiments of the present disclosure also provide a computer-readable storage medium storing a computer program. When executed by a processor, the computer program causes the processor to implement the steps of the above-described method. Embodiments of the present disclosure also provide a computer program product, comprising a computer program / instructions. When executed by a processor, the computer program / instructions cause the processor to implement the steps of the above-described method embodiments. Embodiments of the present disclosure also provide a method for upgrading a virtualization component. In this method, the state of a virtualization instance is first saved. The virtualization component to be upgraded is then uninstalled, and the upgraded virtualization component is reinstalled and loaded. Finally, the state of the virtualization instance is restored. Uninstalling the virtualization component and then reinstalling and loading the upgraded virtualization component represents a complete replacement of the virtualization component level. This method is not limited by upgrade complexity and can meet upgrade requirements of varying complexity, making it suitable for upgrading various virtualization components. In addition, before uninstalling the virtualization component, pre-saving the state of the virtualized instance that depends on the virtualization component. After the virtualization component upgrade is complete, restoring the state of the virtualized instance can quickly complete the deployment of the virtualized instance, which helps reduce the impact of the virtualization component upgrade process on the virtualized instance. BRIEF DESCRIPTION OF THE DRAWINGS The drawings described herein are provided to provide a further understanding of the present disclosure and constitute a part of the present disclosure. The illustrative embodiments of the present disclosure and their description are intended to explain the present disclosure and are not intended to unduly limit the present disclosure. In the accompanying drawings: Figure 1a is a schematic diagram of the structure of a physical machine provided in an exemplary embodiment of the present disclosure; Figure 1b is a schematic diagram of the structure of a physical machine using a QEMU-KVM combination for virtualization provided in an exemplary embodiment of the present disclosure; Figure 2 is a flowchart of a method for upgrading a virtualization component provided in an exemplary embodiment of the present disclosure; Figure 3a is a schematic diagram of the structure of a physical machine provided in another exemplary embodiment of the present disclosure; Figure 3b is a schematic diagram of the structure of another physical machine provided in another exemplary embodiment of the present disclosure; Figure 4 is a schematic diagram of the flow of a method for preserving the state of a virtualization instance provided in an exemplary embodiment of the present disclosure; Figure 5 is a schematic diagram of the structure of a virtualization component upgrading apparatus provided in another exemplary embodiment of the present disclosure; Figure 6 is a schematic diagram of the structure of a virtualization instance state preserving apparatus provided in another exemplary embodiment of the present disclosure; and Figure 7 is a schematic diagram of the structure of another physical machine provided in another exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE EMBODIMENTS To make the objectives, technical solutions, and advantages of the present disclosure more clear, the technical solutions of the present disclosure will be described clearly and completely below in conjunction with the specific embodiments of the present disclosure and the corresponding drawings.Obviously, the described embodiments are only a portion of the embodiments of this disclosure, and not all of them. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure. It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, storage, and display) involved in this disclosure are all authorized by the user or fully authorized by all parties. The collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or reject. In addition, the various models involved in this disclosure (including but not limited to language models or large models) comply with relevant laws and standards. To implement virtualization, a virtualization manager is deployed on a physical machine. The virtualization manager includes multiple components related to virtualization processing, referred to as virtualization components. In actual applications, to repair problems or upgrade the functionality of virtualization components, the virtualization components in the virtualization manager must be upgraded. In the prior art, some kernels provide a hotfix mechanism. Kpatch, a kernel-provided hot-patching mechanism, can perform hot-fixes on kernel modules without user awareness. In theory, Kpatch can be used to perform upgrades when a kernel module experiences a security vulnerability, a bug, or requires a functional upgrade. This method can also theoretically be used to perform hot upgrades on various virtualization components within the virtualization manager. However, Kpatch has some limitations. As a hot-patching mechanism, it is more suitable for relatively simple repairs. Complex situations, such as significant changes in data structures, changes in data object names, or the appearance of new data objects, cannot be addressed with patching alone. This also means that Kpatch is not suitable for complex upgrade scenarios. However, in real-world applications, virtualization components are not only diverse but also typically have relatively complex functions. Therefore, the problem repairs and functional upgrades they face are also diverse and complex, necessitating the use of other methods to address virtualization component upgrades. In an embodiment of the present disclosure, a method for upgrading a virtualization component is provided. In this method, the state of a virtualization instance is first saved, and then the virtualization component to be upgraded is uninstalled, and the upgraded virtualization component is reinstalled and loaded; and then the state of the virtualization instance is restored.Uninstalling the virtualization component and then reinstalling and loading the upgraded virtualization component represents a complete replacement of the virtualization component at the component level. Therefore, this solution does not suffer from the limitations of hotfixes using Kpatch. This solution is not limited by the complexity of virtualization component upgrades and can meet upgrade requirements of varying complexity, making it suitable for upgrading a wide range of virtualization components. Furthermore, by preserving the state of the virtualization instance that depends on the virtualization component before uninstalling it, and restoring the state of the virtualization instance after the virtualization component upgrade is complete, the virtualization instance can be quickly deployed, minimizing the impact of the virtualization component upgrade on the virtualization instance. Furthermore, in the disclosed embodiments, memory data is retained in-place during state preservation and restoration of the virtualization instance. This reduces memory data copying operations, shortens state preservation and restoration time, and improves overall virtualization instance recovery efficiency. This minimizes user-perception of the state preservation and restoration process, ensuring a hot upgrade effect. Furthermore, in embodiments of the present disclosure, when saving and restoring the state of a virtualized instance, if multiple virtualized instances exist, the state of the multiple virtualized instances is saved and restored concurrently. This further improves the recovery efficiency of the virtualized instance and maximizes the effectiveness of hot upgrades. Furthermore, in embodiments of the present disclosure, when it is necessary to upgrade the driver of a target physical peripheral device used by a virtualized instance, the driver's uninstallation, installation, loading, and / or initialization processes can be optimized to improve the efficiency of the uninstallation, installation, and / or loading processes, further shorten the overall upgrade process, improve upgrade efficiency, and reduce the impact of virtualization component upgrades on the virtualized instance. The technical solutions provided by various embodiments of the present disclosure are described in detail below, in conjunction with the accompanying drawings. Figure 1a is a schematic diagram of the structure of a physical machine provided by an exemplary embodiment of the present disclosure. As shown in Figure 1, in embodiments of the present disclosure, the physical machine includes hardware resources 11, a virtualization manager 12 running on the hardware resources 11, and one or more virtualized instances running on the virtualization manager 12. These virtualized instances are created and maintained by the virtualization manager 12. The hardware resources of a physical machine include a CPU, memory, a network card, a GPU (Graphics Processing Unit), etc.; in addition, the hardware resources of a physical machine also include storage, communication components, a display, a power supply component, an audio component, and various external devices, which are not shown in Figure 1a.The virtualization manager 12 virtualizes various resources on the physical machine and is responsible for creating and managing virtualized instances. Furthermore, the virtualization manager 12 maintains an efficient, isolated operating environment for the virtualized instances. Furthermore, the virtualization manager 12 serves as the core task monitoring system for the virtualized instances, capable of scheduling tasks, load balancing, reporting hardware and software failures of the virtualized instances to administrators, and controlling the usage of the virtualized instances. A single virtualization manager 12 can simultaneously manage one or more virtualized instances, without limitation. As shown in FIG. 1a , the virtualization manager 12 includes a virtualization module 121. Virtualization module 121 virtualizes various resources on the physical machine and is responsible for creating and managing virtualized instances. The module includes at least virtualization components, such as components for CPU virtualization, components configured for memory virtualization, components configured for I / O (Input Output) virtualization, and components configured for VM creation and management. To facilitate a unified description of virtualization-related components or modules, the traditional OS portion of a physical machine is referred to as the host OS 122. The host OS is described as belonging to the virtualization manager 12 as an example. Specifically, in the disclosed embodiment, the virtualization manager includes a virtualization module 121 and a host OS 122, as shown in FIG1a. The host OS is primarily responsible for device management, file management, memory management, and process management of the physical machine, including device drivers, a file system, a memory management module, and a process management module. Some functions within the host OS are also related to virtualization. For example, during IO virtualization, drivers for physical external devices (also referred to as IO devices) are involved, and these drivers belong to the host OS. For ease of description, in the disclosed embodiment, all virtualization-related objects within the virtualization manager 12 are collectively referred to as virtualization components. These virtualization components include components within the virtualization module 121 and virtualization-related drivers within the host OS 122. In the embodiments of the present disclosure, the implementation of the virtualization manager 12 is not limited. For example, it can be implemented as Xen, OpenVZ, KVM (Kernel-based Virtual Machine), or a combination of KVM and QEMU (Quick EMUlator).Xen is an open-source virtualization manager, a software layer that replaces an operating system and runs directly on a physical machine's hardware resources. It allows multiple operating system instances to run on a single physical machine and is configured to provide high-performance virtualization without relying on specialized hardware support. Open VZ is an operating system-level virtualization technology (or containerization technology) based on the Linux kernel (an open-source UNIX-like operating system). It allows a physical machine to run multiple operating systems and provides a more lightweight virtualization solution. KVM is an open-source virtualization technology based on Linux. Specifically, KVM transforms Linux into a virtualization manager, providing virtual machines with CPU virtualization and memory management capabilities. KVM can leverage hardware virtualization technology to improve virtual machine performance. KVM is often used in conjunction with QEMU, a user-mode virtualization software. KVM relies on QEMU to emulate 10 devices, such as virtual network cards and virtual disk controllers. The combination of KVM and QEMU (referred to as QEMU-KVM) provides a complete virtualization solution. The virtualization manager's implementation methods may vary slightly depending on the virtualization components it includes. This embodiment uses a virtualization manager implemented using a combination of QEMU and KVM as an example to illustrate the virtualization components included in the virtualization manager. However, this does not necessarily mean that the virtualization manager in this embodiment must be implemented using the QEMU-KVM combination. FIG1b shows a physical machine implemented using the QEMU-KVM combination in accordance with an exemplary embodiment of the present disclosure. The internal hardware and software architecture of this physical machine comprises, from top to bottom, an application layer, a kernel layer, and a hardware layer. The hardware layer includes various hardware resources 11 of the physical machine. As shown in FIG1b , the physical machine's hardware resources 11 include, but are not limited to, a CPU 111, a GPU 112, RAM (random-access memory) 113, and a disk 114. In addition, the physical machine's hardware resources also include a network card module, communication components, a display, a power supply component, an audio component, and various external devices, which are not shown in FIG1b . A kernel layer runs on the hardware resource 11. The host OS 122 is located in the kernel layer. The host OS 122 includes drivers for various hardware in the hardware layer, such as drivers for physical external devices (referred to as peripherals) such as NIC (Network Interface Card) and GPU (Graphics Processing Unit).In the disclosed embodiments, a physical external device refers to a device relative to the host machine's CPU 111. All hardware modules interconnected with the CPU 111 via various types of buses can be considered physical external devices in the disclosed embodiments, and may also be referred to as physical devices. The bus interconnecting the CPU 111 can be a high-speed Peripheral Component Interconnect Express (PCIe) bus or a serial bus, etc., without limitation, depending on the specific physical external device. In this embodiment, the kernel layer also includes various kernel-mode virtualization components, such as the KVM driver, the VFIO driver, the VFIO PCI driver, and the VFI0 MDEV driver. The application layer includes QEMU. QEMU is a user-mode virtualization component that works with kernel-mode virtualization components to virtualize various physical machine resources and create and manage virtualization instances. Virtualization module 121 spans the kernel layer and the application layer. As shown in FIG1b , virtualization module 121 includes kernel-mode virtualization components such as the VFIO driver, VFIO PCI driver, VFI0 MDEV driver, and KVM driver located in the kernel layer, as well as QEMU located in the application layer. The application layer also includes various virtualization instances running on physical machines. These virtualization instances can be cloud hosts, Elastic Compute Service (ECS), virtual machines, or containers. These virtualization instances are created by virtualization module 121. The KVM driver is part of the Linux kernel and runs as a kernel module. Its primary function is to manage virtualization instances, implementing CPU and memory virtualization. QEMU, a user-space component, is primarily responsible for simulating various hardware devices and providing I / O device models and peripheral access for virtualization instances. The VFIO driver securely maps physical peripheral devices to user space, allowing user space processes to directly access physical peripheral devices using the VFIO driver. The VFIO PCI driver transparently transmits PCI devices directly to virtualized instances, allowing virtual machines to directly access the PCI device configuration space. The VFI0 MDEV driver allows hardware resources to be securely shared between different virtual machines while ensuring isolation. It should be noted that the kernel-mode virtualization components shown in FIG1b are merely examples and do not necessarily represent the only components included.Furthermore, when using VFIO device passthrough, a virtualization instance can directly access physical peripheral devices, but each physical peripheral device can only be exclusively used by one virtualization instance. To address the issue of physical peripheral device exclusivity, SR-IOV (Single Root I / O Virtualization) passthrough technology can be used to support virtualizing multiple VFs (Virtual Functions) from a single PF (Physical Function), and then passthrough these VFs to different virtualization instances. Specifically, the virtualization component within the virtualization manager virtualizes physical peripheral devices to create virtual peripheral devices. These virtual peripheral devices also have drivers. To distinguish between virtual peripheral device drivers and physical peripheral device drivers, the drivers in the host OS 122 are referred to as PF drivers, including, for example, GPU PF drivers and NIC PF drivers. Of course, the PF drivers for physical peripheral devices shown here are merely examples and do not necessarily include these PF drivers. The various PF drivers, KVM drivers, VFIO drivers, VFIO PCI drivers, VFIO MDEV drivers, and QEMU shown in FIG1b are all examples of virtualization components in the embodiments of the present disclosure. During actual operation of these physical machines, some virtualization components may fail, or require upgrading as virtualization technology evolves. Specifically, upgrading virtualization components in the virtualization manager may be necessary to fix issues or upgrade functionality. To upgrade these virtualization components, the embodiments of the present disclosure provide a virtualization component upgrade method, as shown in FIG2 . The method includes the following steps:
[0003] S201: Determine a target virtualization component, where the target virtualization component is a virtualization component to be upgraded in a virtualization manager running on a physical machine;
[0004] S202: Saving the state of a virtualization instance running on a physical machine, where the virtualization instance is created by the virtualization manager;
[0005] S203: Uninstall the target virtualization component before the upgrade, and reinstall and load the upgraded target virtualization component;
[0006] S204: Restore the state of the virtualized instance based on the saved state information of the virtualized instance. In this embodiment, the target virtualized component may be one or more virtualized components in the virtualization manager. Referring to the architecture shown in FIG1b , virtualized components such as a GPU PF driver, a NIC PF driver, a QMEU, a KVM driver, or a VFIO driver may serve as the target virtualized component in this embodiment, but this disclosure does not limit this. It should be noted that the target virtualized component may include one or more virtualized components in the virtualization manager. When upgrading the target virtualized component, if other virtualized components in the virtualization manager do not require upgrading and their operation is not dependent on the target virtualized component, the other virtualized components that do not require upgrading can operate normally and are not affected by the upgrade process. In an optional embodiment, to determine the target virtualized component, the hardware resources of the physical machine are further deployed with an upgrade management component in user mode. This component can receive a configuration file for virtualized component upgrades, which includes identification information of the virtualized component to be upgraded, and determine the target virtualized component based on the configuration file. Alternatively, an interactive interface for configuring a virtualization upgrade may be displayed, showing identification information of each virtualization component, such as the name or icon of the virtualization component. In response to a user selecting from the identification information of each virtualization component, the virtualization component corresponding to the selected identification information is determined as the target virtualization component. Alternatively, an upgrade command may be sent to the upgrade management component via a command window. The upgrade command includes the identification information of the virtualization component to be upgraded, and the target virtualization component may be determined based on the upgrade command. In this embodiment, upgrading the target virtualization component may affect the normal operation of the virtualization instance. To this end, before upgrading the target virtualization component, the state of the virtualization instance is saved. After the upgrade is complete, the state of the virtualization instance can be restored based on the saved state information. When saving the state of the virtualization instance, the virtualization instance may be paused to prevent the upgrade of the target virtualization component from impacting the virtualization instance. The virtualized instances that need to be saved and paused can be all virtualized instances running on the physical machine at that time. Of course, some virtualized instances that can run normally without the target virtualized component can also continue to run without saving and pausing.Considering that the operation of a virtualized instance is typically inseparable from various virtualization components, a relatively simple implementation approach is to uniformly save and pause the state of all virtualized instances running on the physical machine when the target virtualization component needs to be upgraded. After the upgrade is complete, the state of each virtualized instance is uniformly restored to allow continued operation. To ensure that the virtualized instance can successfully rely on the upgraded target virtualization component after state recovery, the target virtualization component's interface compatibility can be maintained before and after the upgrade. These interfaces include not only the service interfaces provided by the target virtualization component to the virtualized instance (or the access interfaces provided to the virtualized instance or applications running in the virtualized instance), but also the interfaces required by the target virtualization component to call other virtualized components or non-virtualized kernel components. Maintaining interface compatibility before and after the upgrade primarily involves maintaining the same interface names, input and output parameters, etc., ensuring that neither the virtualized instance's calls to the upgraded target virtualization component nor its calls to other components or modules it originally depended on are affected. Saving the state of a virtualized instance running on a physical machine primarily involves saving the state data and memory data of the virtualized instance. State data of a virtualized instance refers to data that the virtualized instance relies on for operation and that affects its operational state. Examples include the state of the currently assigned VCPU (Virtual CPU), the status of currently accessed virtual devices, the unique identifier of the virtualized instance (e.g., a UUID), and currently accessed file handles. The specific data varies depending on the functionality of the virtualized instance. Memory data of a virtualized instance refers to data generated during the virtualized instance's operation and saved to its allocated memory space. This data, referred to as memory data, also varies depending on the functionality of the virtualized instance. Furthermore, if a persistent storage disk (e.g., a cloud disk) is mounted to the virtualized instance, this also involves saving the persistent storage disk. This saving operation primarily involves preserving the mounting relationship between the persistent storage disk and the virtualized instance.Uninstalling the target virtualization component before the upgrade involves stopping the target virtualization component's related services, deleting the target virtualization component's corresponding resource files from the physical machine, and cleaning up related configuration files and runtime data. Deleting the target virtualization component's corresponding resource files includes: If the target virtualization component is a user-mode virtualization component, its installation package can be uninstalled using a method similar to uninstalling traditional application software. If the target virtualization component is a kernel-mode virtualization component, the kernel-mode virtualization component can be directly removed from the operating system using some uninstallation commands. Reinstalling the upgraded target virtualization component involves downloading the new version's installation package (or kernel module). If it is a user-mode virtualization component, the installation package can be run similar to installing traditional application software. If it is a kernel-mode virtualization component, the upgraded kernel-mode virtualization component can be added to the operating system using some installation commands or administrator privileges. Furthermore, for user-mode virtualization components, installation is completed simply by executing the installation package, while kernel-mode virtualization components require compilation and addition to the kernel. Loading the upgraded target virtualization component refers to starting the newly installed target virtualization component and initializing it. For user-mode virtualization components, this involves starting the newly installed software service and completing the corresponding initialization process. For kernel-mode virtualization components, this involves loading the new target virtualization component into the kernel and completing the corresponding initialization process. Accordingly, restoring the state of a virtualization instance based on the saved state information of the virtualization instance primarily involves recreating the virtualization instance based on the resource files corresponding to the virtualization instance, restoring the virtualization instance to its state at the time of saving, and re-providing the saved memory data of the virtualization instance to the restored virtualization instance, enabling the virtualization instance to continue operating. In the embodiments of the present disclosure, the internal implementation structure of the virtualization manager is not limited. Any structure capable of creating and managing virtualization instances is applicable to the embodiments of the present disclosure. Optionally, the virtualization manager includes a first virtualization component in user mode, which may be, but is not limited to, QEMU or a virtualization control component in user mode. The first virtualization component in user mode facilitates interaction and invocation, and does not involve additional security issues. Based on this, the state of a virtualized instance running on a physical machine can be saved by invoking the first virtualization component. The first virtualization component can obtain various state information of the virtualized instance and has permission to access and manage the memory data of the virtualized instance.Accordingly, based on the saved state information of the virtualized instance, the state of the virtualized instance can be restored. If the target virtualization component does not include the first virtualization component, the first virtualization component can be called to restore the state of the virtualized instance based on the saved state information of the virtualized instance. If the target virtualization component includes the first virtualization component, the upgraded first virtualization component can be called after the first virtualization component is reinstalled and loaded to restore the state of the virtualized instance based on the saved state information of the virtualized instance. Here, using the virtualization manager including the first virtualization component in user mode to save and restore the state of the virtualized instance is merely an example and is not intended to be limiting. Alternatively, the state of the virtualized instance can be saved and restored by an upgrade program that executes the upgrade method provided in the embodiments of the present disclosure. This upgrade program only needs to obtain management permissions for various state information and memory data of the virtualized instance. This management permission can be obtained by registering and applying for it with the QEMU or KVM driver in the virtualization manager. Whether the upgrade program provided in the embodiments of this disclosure or the first virtualization module (e.g., QEMU) saves and restores the state of the virtualized instance, detailed implementations of this state saving and restoration can be found in the following embodiments of this disclosure. In this embodiment of the disclosure, the state of the virtualized instance is saved, the target virtualization component to be upgraded is uninstalled, and the upgraded target virtualization component is reinstalled and loaded. This is a complete replacement at the driver module level, applicable to upgrade requirements of varying complexity. It does not suffer from the limitations of hotfixes like KPatch, and can address various issues with virtualization components or newly developed features without worrying about new features being inapplicable to existing virtualized instances. Furthermore, in embodiments of the present disclosure, when upgrading a target virtualization component, it is desirable to perform a hot upgrade. Specifically, the upgrade is desired to complete without users noticing that their applications hosted in the virtualized instance have been interrupted, or with an interruption time or delay within a tolerable range. This allows for online problem repairs and the rollout of new features and functions without notifying users, significantly reducing the time required to fix security vulnerabilities (bugs) and user communication costs. To achieve this, the entire process, from saving the state and memory data of the virtualized instance to restoring the virtualized instance based on the saved state and memory data, must be completed as quickly as possible, with minimal time consumption, to the point where the user is essentially unaware or within a tolerable response delay. To minimize the time consumption of this process, embodiments of the present disclosure employ at least one of the following technical means:
[0007] (1) Improve the process of saving the state data and memory data of the virtualized instance: By analyzing the time-consuming operations in the process of saving the virtualized instance state, it is determined that the time-consuming operation is the saving of memory data. During the saving process, in order to save the memory data, the memory data needs to be copied to another memory or persistent storage space (disk file). When the amount of memory data is large, this operation is relatively time-consuming. In the embodiment of the present disclosure, the technology of retaining memory data in place is adopted to ensure that the memory space where the memory data is located is not cancelled or recycled during the target virtualization component upgrade process and the memory space is not modified. In addition, during the virtualization instance recovery process, it can ensure that the memory space is reallocated to the restored virtualization instance to complete the memory data recovery. In this way, no copy operation of the memory data is required throughout the process, which can save time and improve the efficiency of the target virtualization component upgrade.
[0008] (2) Optimize the uninstallation, installation, and / or loading process of the target virtualization component that needs to be upgraded to reduce the downtime of the virtualization instance caused by the upgrade of the target virtualization component, shorten the time consumption of the entire process, and try to achieve the effect of hot upgrade. It should be noted that no matter whether the target virtualization component is a component in the virtualization module or the PF driver in the host OS, as long as there is potential optimization space, it can be optimized. The optimization process can only include the uninstallation process, the installation process, or the loading process, or any two or three processes, and there is no limitation on this, depending on the target virtualization component. Further, optionally, when the target virtualization component that needs to be upgraded includes a peripheral driver (i.e., the PF driver in the host OS), at least one process of the uninstallation, installation, loading process, and initialization process of the peripheral driver is optimized, specifically depending on the physical peripheral device corresponding to the PF driver. The optimization space of the uninstallation, installation, loading, and initialization process of the driver corresponding to different physical peripheral devices may be different, and it is also related to the hardware manufacturer. The uninstallation, installation, loading, and initialization process of the hardware driver provided by different hardware manufacturers may also be different. This embodiment does not limit the specific optimization process. Any optimization method that can shorten the time compared to the traditional uninstallation, installation, loading or initialization process is applicable to the embodiment of the present disclosure.
[0009] (3) Concurrent state saving and recovery of virtualized instances: When saving the state of a virtualized instance running on a physical machine, if there are multiple virtualized instances, the state of the multiple virtualized instances is saved in a concurrent operation mode, thereby shortening the state saving time. Correspondingly, when restoring the state of a virtualized instance running on a physical machine, if there are multiple virtualized instances, the state of the multiple virtualized instances is restored in a concurrent operation mode. In the embodiments of the present disclosure, the technical means of retaining memory data in situ are not limited to be adopted. The corresponding implementation method can be adopted in combination with the different memory spaces where the memory data is located. In an optional embodiment, when creating a virtualized instance, system memory space can be allocated to the virtualized instance. System memory space refers to the physical memory on the host machine, such as RAM (Random Access Memory). To achieve in-place persistence of memory data in the system memory space, when a virtualized instance generates memory data, it can be written to the system memory space allocated to the virtualized instance in file format, rather than directly writing the generated data to the system memory space. This allows for in-place persistence of memory data in the system memory space during state preservation for the virtualized instance through file sharing, providing a foundation for the memory data to reside in the system memory space. The detailed processes of allocating system memory space, preserving the state of the virtualized instance, and restoring the state of the virtualized instance are described in detail with reference to the system architecture shown in FIG1b. Saving the state of a virtualized instance running on a physical machine includes collecting state data for the virtualized instance and saving it to a designated file. The designated file can optionally be a memory file or a persistent file (e.g., a disk file). Collecting state data involves capturing and storing sufficient information to allow subsequent state restoration of the virtualized instance from the same point. Optionally, each virtualization instance on the same physical machine has a unique identifier. Based on this unique identifier, state data corresponding to the virtualization instance can be collected, including but not limited to configuration information of various resources such as the CPU, memory, network devices, and storage devices. In one example, each VM instance created by a virtualization manager on the same physical machine is assigned identification information, such as a virtual machine name (Name), UUID, and ID (Identifier). This identification information can be used to manage, identify, and manipulate the state of the virtual machine. The UUID serves as a unique identifier, and the state data of the corresponding VM can be obtained through the UUID.Saving the state of a virtualized instance running on a physical machine further includes: persisting target memory data in a target memory space of the virtualized instance. In an optional embodiment, the target memory space includes system memory space, and the target memory data includes first memory data stored in the system memory space as a file. The file used to store the first memory data may be a memory-mapped file created in the system memory space based on memory mapping technology, or a memory file created in the system memory space via a memory file system, without limitation. Accordingly, persisting the target memory data in the target memory space of the virtualized instance includes: persisting the first memory data in place via file sharing. File sharing herein means that the old and new processes corresponding to the virtualized instance before and after restoration share the same memory-mapped file or the same memory file. Saving the state of the virtualized instance also involves releasing the old process corresponding to the virtualized instance to suspend the operation of the virtualized instance. Restoring the state of the virtualized instance also involves creating a new process corresponding to the virtualized instance to restore the virtualized instance. Specifically, by assigning or mounting a memory-mapped file or the access path to a memory file to a new process, file sharing can be achieved between the old and new processes. In this embodiment, the first memory data is kept resident in-place through file sharing. This storage and retention of memory data can be achieved through either memory mapping or memory file storage. The following describes each method separately: Memory mapping: A memory-mapped file maps a persistent file to a memory space. This mapping between the persistent file and the memory space allows applications (including multiple processes) to directly read and write to the memory, thereby modifying the persistent file. In this embodiment, a virtualization instance uses a persistent file (e.g., a disk file) to persist memory data. For ease of description and distinction, this persistent file is referred to as a target persistent file. Furthermore, to facilitate read and write operations, this target persistent file can be mapped to the system memory space allocated to the virtualization instance using memory mapping. Specifically, a memory-mapped file is created in the system memory space. This memory-mapped file is a memory mapping of the target persistent file used by the virtualization instance. By mapping the target persistent file to the memory space, when the virtualization instance performs operations (e.g., read or write) on the mapped memory area, these operations are reflected in the mapped target persistent file. The target persistent file is used to persistently store the data in the memory-mapped file.To reflect these operations in the mapped target persistent file, the target persistent file can be created for the virtualization instance, and a memory-mapped file corresponding to the target persistent file can be created in the system memory space. When the virtualization instance generates first memory data, the first memory data is written to the memory-mapped file. Furthermore, according to a set persistence policy, the data in the memory-mapped file is stored in the target persistent file. The set persistence policy can include periodic persistence, which periodically writes the first memory data to the persistent file at certain time intervals (i.e., performs a persistence operation). Alternatively, it can include idle persistence, which performs a persistence operation when the CPU is detected to be idle. Alternatively, it can include performing a persistence operation each time the virtualization instance writes the first memory data to the memory-mapped file. Alternatively, it can include performing a persistence operation when the memory-mapped file is cleared. Alternatively, it can include performing a persistence operation before the virtualization instance is shut down or paused. Each persistence policy has its own applicable scenarios and can be selected as needed. This disclosure does not limit this. Based on the above, one implementation of maintaining the first memory data in situ using file sharing includes: storing the first memory data in a memory-mapped file in the system memory space when storing the first memory data; maintaining the memory-mapped file during the upgrade process of the target virtualization component to achieve situ persistence of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file. In-memory file mode: Some operating systems provide an in-memory file system that can store data in the system memory space as a memory file. The memory file is not released when the virtualization instance is released, but is only released when the host machine loses power. Based on this, in an embodiment of the present disclosure, another implementation method for maintaining the first memory data in situ through file sharing includes: when storing the first memory data, invoking a memory file system to store the first memory data in the system memory space allocated to the virtualization instance as a memory file. In this way, during the upgrade process of the target virtualization component, the memory file is retained due to the non-released nature of the memory file, thereby achieving the purpose of maintaining the first memory data in situ. Furthermore, Linux memory management utilizes a "paging mechanism." The default size of a standard page is 4 KB, while HugeTLB provides larger page sizes (e.g., 2 MB or 1 GB). This increases the size of the mapped memory page, thereby reducing the size of the page table used for memory mapping and improving memory access efficiency.Specifically, the Huget1b FS approach is used to maintain in-place persistence of the first memory data between the old and new processes corresponding to the virtualized instance before and after recovery. Specifically, when the memory file system creates a memory file in the system memory space, it uses the Huget1b FS approach to create larger-grained memory pages for storing the first memory data. During the upgrade process of the target virtualization component, the in-place persistence of the first memory data is achieved by leveraging the fact that the memory file will not be released. This also reduces the size of the page table used for memory mapping, improving memory access efficiency. In the disclosed embodiments, the method for maintaining in-place persistence of the target memory data in the target memory space is not limited; any method capable of maintaining in-place persistence of the target memory data is applicable to the disclosed embodiments. In addition to the aforementioned method, the in-place persistence of the first memory data can also be achieved by locking the memory space. Specifically, during the state saving process for a virtualized instance, the system memory space allocated to the virtualized instance can be locked. For example, a lock flag can be added to the system memory space. This lock flag indicates that the system memory space is locked during the virtualized instance suspension process and cannot be released or modified. After the virtualized instance is resumed, the system memory space is reallocated to the resumed virtualized instance based on the lock flag. Furthermore, to facilitate determining the correspondence between the lock flag and the virtualized instance, during the state saving process for the virtualized instance, a lock flag can be first added to the system memory space of the virtualized instance and then added to the state data of the virtualized instance. In this way, after the virtualized instance is resumed, the lock flag can be retrieved from its state data, and the system memory space with the lock flag can be reallocated to the resumed virtualized instance. This ensures that the first memory data remains in situ during the virtualized instance state saving and restoration process, eliminating the need for memory copying and improving the recovery efficiency of the virtualized instance. Further optionally, based on the saved state information of the virtualized instance, the state of the virtualized instance is restored, including: recreating the virtualized instance according to the resource file corresponding to the virtualized instance, and reusing the unique identifier of the virtualized instance before the restoration; further, reallocating the target memory space to the virtualized instance according to the unique identifier of the virtualized instance (such as a UUID), the target memory space containing the target memory data that was resident in place when the state was saved; and, based on the state data in the specified file, restoring the virtualized instance to the running state when the state was saved.In one example, a virtualized instance can be specifically implemented as a VM. Based on the saved state information of the virtualized instance (old VM), the state of the virtualized instance (new VM) is restored. This includes: recreating a VM (referred to as the new VM) based on the resource files corresponding to the old VM, reusing the old VM's UUID (unique identifier). This UUID is associated with the old VM's various resource files, which will be allocated to the restored VM; further, reallocating target memory space to the corresponding new VM based on the UUID; and restoring the new VM to the operating state at the time of state saving based on the state data in the specified file. In another optional embodiment, the physical machine includes various peripheral devices with memory space and computing capabilities. Peripheral devices here refer to peripheral devices in a broad sense, including devices connected to the physical machine's CPU via various interconnect buses (e.g., PCIe). In actual applications, based on application requirements, corresponding virtual peripherals, such as a virtual GPU, can be created for the virtualized instance, and corresponding memory space (e.g., GPU video memory) will be allocated. For purposes of distinction, this memory space is referred to as peripheral memory space. During the operation of a virtualized instance, data generated when using virtual peripherals can be stored in the peripheral memory space. Therefore, saving the memory data of the virtualized instance also involves saving the memory data of the virtualized instance in the peripheral memory space. In an optional embodiment, the target memory space may also include peripheral memory space, which is memory space on a target physical peripheral device used by the virtualized instance. The target physical peripheral device may be a peripheral device with computing power and memory space, such as, but not limited to, a GPU. Furthermore, if the target memory data includes second memory data stored in the peripheral memory space of the target physical peripheral device, then persisting the target memory data in the target memory space of the virtualized instance further includes persisting the second memory data in place. Persisting the second memory data in place includes, first, ensuring that the second memory data in the peripheral memory space is not modified during state saving and state restoration of the virtualized instance. Specifically, the state saving process of the virtualized instance involves releasing or destroying the old process. During this process, the second memory data in the peripheral memory space is not rewritten. The state recovery process of the virtualized instance involves creating a new process. During this process, it is ensured that the peripheral memory space is not initialized to ensure that the second memory data is not modified.Further, optionally, the in-place retention of the second memory data may vary depending on whether the target physical peripheral device's driver is a target virtualization component that needs to be upgraded, and this can be determined on a case-by-case basis. Specifically, if the target physical peripheral device's driver needs to be upgraded, that is, if the target virtualization component includes the target physical peripheral device's driver, this involves uninstalling, installing, and loading the driver. During this process, different manufacturers may adopt different strategies to ensure data security and device stability. For example, some manufacturers may erase data when the driver is uninstalled, while others may initialize memory when the driver is loaded. These operations may affect the second memory data. Therefore, in-place retention of the second memory data also includes ensuring that the second memory data remains unchanged before and after the driver upgrade. Based on the above, if the target virtualization component includes the driver for the target physical peripheral device, the unloading and loading processes of the driver for the target physical peripheral device are improved. When the driver is unloaded, rewriting operations to the peripheral memory space are prohibited; when the upgraded driver is reloaded, initialization operations to the peripheral memory space are prohibited. This ensures that the second memory data in the peripheral memory space allocated to the virtualized instance remains unchanged before and after the upgrade. Furthermore, if the target virtualization component does not include the driver for the target physical peripheral device, no unloading or reloading is involved, and thus no related operations are involved. To address different vendor policies and ensure that the second memory data in the peripheral memory space can remain resident, the driver can be improved to include a memory residency feature. This memory residency feature includes prohibiting rewriting operations to the peripheral memory space during the unloading process and prohibiting initialization operations to the peripheral memory space during the loading process. The memory residency feature is enabled by default in the upgraded driver. In an optional embodiment, the driver's resident memory function can be enabled on demand. That is, before uninstalling the driver, the driver's resident memory function can be enabled through the driver's externally exposed interface. When the resident memory function is enabled, no rewrite operations are performed on the peripheral memory space during the uninstallation process, and correspondingly, no initialization operations are performed on the peripheral memory space during the loading process. The resident memory function is enabled by default for the upgraded driver. Optionally, the driver's resident memory function can be enabled by passing kernel module parameters. When the driver is not being upgraded, the resident memory function can be disabled. After the driver upgrade is complete, the resident memory function must be enabled. For example, during the loading process, kernel module parameters can be passed to enable the driver's resident memory function.Of course, the methods for controlling whether the memory residency function is enabled are not limited to this. For example, in Linux systems, in addition to passing kernel module parameters, the enablement of the memory residency function can also be controlled through Linux commands. Windows systems (an operating system developed by Microsoft based on a graphical user interface) provide a graphical user interface through which users can configure the memory residency function, including enabling or disabling it. Of course, the memory residency function in the driver can also be always enabled by default. In this case, the driver can be directly uninstalled without rewriting the peripheral memory space during the uninstallation process. Furthermore, optionally, if the target virtualization component includes the driver for the target physical peripheral device used by the virtualization instance, the driver's uninstallation, installation, loading, and / or initialization process can be optimized before uninstalling the target virtualization component before upgrading. This can shorten the time required for subsequent driver uninstallation, installation, loading, and / or initialization, thereby improving driver upgrade efficiency. It should be noted that while the above emphasis has been placed on optimizing the target physical peripheral device driver's uninstallation, installation, loading, and / or initialization processes, this is primarily because these processes are typically complex and time-consuming, offering room for optimization. However, this is not a limitation. For other virtualization components, if any of the uninstallation, installation, loading, and initialization processes offer room for optimization, these processes can also be optimized to further shorten upgrade time and improve efficiency. Furthermore, it should be noted that optimizing the target virtualization component's uninstallation, installation, loading, and / or initialization processes is vendor-specific. The present embodiments do not focus on specific optimization implementations; any optimization method that can shorten upgrade time compared to traditional solutions is applicable to the present embodiments. Further optionally, before making the target memory data (the first memory data or the second memory data) in the target memory space resident in-place, resource information for configuring the virtualization instance may be obtained. Based on the resource information, it is determined whether the virtualization instance uses a peripheral device. If the peripheral device is used, the second memory data is made resident in-place. Further optionally, before making the target memory data (the first memory data or the second memory data) in the target memory space resident in-place, it may be determined whether the first memory data or the second memory data is greater than or equal to a corresponding threshold. If so, resident in-place is required.Optionally, the first memory data and the second memory data may be individually or simultaneously stored in-place, and this disclosure is not limited thereto. As shown in FIG3a , an embodiment of the present disclosure further provides a physical machine comprising: a hardware resource 11, on which a virtualization manager 12, an upgrade program 13, and a virtualization instance are running; the virtualization manager 12 includes multiple virtualization components and is configured to implement virtualization of the hardware resource 11 and the creation and management of virtualization instances; the upgrade program 13 may be an upgrade script or a non-script upgrade program in specific implementation; the upgrade program 13 is configured to determine a target virtualization component to be upgraded among the multiple virtualization components; save the state of the virtualization instance; uninstall the target virtualization component before the upgrade, and reinstall and load the upgraded target virtualization component; and restore the state of the virtualization instance based on the saved state information of the virtualization instance. As shown in FIG3b , in an optional embodiment, the multiple virtualization components include a first virtualization component 123 in user mode and a second virtualization component 124 in kernel mode. Furthermore, the target virtualization component includes the first virtualization component 123 and / or the second virtualization component 124. Optionally, the first virtualization component 123 in user mode may be QEMU, and the second virtualization component 124 in kernel mode may be KVMo. In an optional embodiment, the upgrade program 13 is specifically configured to: invoke the first virtualization component 123 to save the state of the virtualization instance; and, if the target virtualization component does not include the first virtualization component 123, invoke the first virtualization component 123 to restore the state of the virtualization instance based on the saved state information of the virtualization instance; and, if the target virtualization component includes the first virtualization component 123, invoke the upgraded first virtualization component 123 to restore the state of the virtualization instance based on the saved state information of the virtualization instance. In an optional embodiment, when saving the state of a virtualized instance, the upgrade program 13 is specifically configured to: collect state data of the virtualized instance and save the state data to a designated file; and persist target memory data in the target memory space of the virtualized instance. The detailed implementation and beneficial effects of each step in the method of this embodiment have been described in detail in the previous embodiments and will not be elaborated upon here. As shown in FIG4 , an embodiment of the present disclosure provides a method for saving the state of a virtualized instance. As shown in FIG4 , the method includes:
[0010] S401: In response to a virtualization instance state saving operation, collect state data of the virtualization instance and save the state data to a specified file;
[0011] S402: Before the virtualization instance is restored, first memory data generated by the virtualization instance is persisted in-place using file sharing. The virtualization instance has a target memory space, which includes system memory space, and the first memory data is stored in the system memory space as a file. In an optional embodiment, persisting the first memory data in-place using file sharing includes: storing the first memory data in a memory-mapped file in the system memory space when storing the first memory data, and maintaining the memory-mapped file during an upgrade of the target virtualization component to achieve the persistence of the first memory data. The memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store data in the memory-mapped file. In an optional embodiment, the method further includes creating a target persistent file for the virtualization instance and creating a memory-mapped file corresponding to the target persistent file in the system memory space; writing the first memory data to the memory-mapped file during the virtualization instance's generation of first memory data; and storing the data in the memory-mapped file in the target persistent file according to a set persistence policy. In another optional embodiment, storing the first memory data in-place via file sharing includes: when storing the first memory data, invoking a memory file system to store the first memory data in the system memory space as a memory file; and maintaining the memory file from being released during the upgrade of the target virtualization component to achieve in-place persistence of the first memory data. In an optional embodiment, the target memory space also includes peripheral memory space, which is memory space on a target physical peripheral device used by the virtualization instance. The peripheral memory space stores second memory data generated during the virtualization instance's use of the target physical peripheral device. The method further includes: prohibiting rewriting the peripheral memory space when uninstalling the driver of the target physical peripheral device; and prohibiting initialization of the peripheral memory space when reloading the driver, so as to achieve in-place residency of the second memory data. In an optional embodiment, the method further includes: recreating the virtualization instance based on a resource file corresponding to the virtualization instance, reusing the unique identifier of the virtualization instance before restoration; reallocating the target memory space to the virtualization instance based on the unique identifier; and restoring the virtualization instance to the operating state at the time of state saving based on the state data in the specified file. The detailed implementation and beneficial effects of each step in the method of this embodiment have been described in detail in the previous embodiment and will not be elaborated here.It should be noted that the execution entity of each step of the method provided in the above embodiments can be the same device, or the method can be executed by different devices. For example, the execution entity of steps 401 to 403 can be device A; for another example, the execution entity of steps 401 and 402 can be device A, and the execution entity of step 403 can be device B; and so on. In addition, some processes described in the above embodiments and figures include multiple operations that appear in a specific order. However, it should be understood that these operations may not be executed in the order in which they appear herein or may be executed in parallel. The sequence numbers of the operations, such as 401 and 402, are merely used to distinguish between different operations and do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the terms "first" and "second" herein are used to distinguish different messages, devices, modules, etc., and do not indicate a sequential order, nor do they limit "first" and "second" to different types. FIG5 is a schematic diagram of the structure of a virtualization component upgrade apparatus provided in another exemplary embodiment of the present disclosure. As shown in FIG5 , the virtualization component upgrade apparatus 500 includes a determination module 51, a storage module 52, an upgrade module 53, and a recovery module 54. The determination module 51 is configured to determine a target virtualization component to be upgraded in a virtualization manager running on a physical machine; the storage module 52 is configured to save the state of a virtualization instance running on the physical machine, the virtualization instance being created by the virtualization manager; the upgrade module 53 is configured to uninstall the target virtualization component before the upgrade and reinstall and load the upgraded target virtualization component; and the recovery module 54 is configured to restore the state of the virtualization instance based on the saved state information of the virtualization instance. In an optional embodiment, when saving the state of the virtualized instance running on the physical machine, the saving module 52 is specifically used to: collect state data of the virtualized instance and save the state data to a specified file; and retain the target memory data in the target memory space of the virtualized instance in situ.In an optional embodiment, the target memory space includes a system memory space, and the target memory data includes first memory data stored in the system memory space in a file manner; when the saving module 52 performs in-place residency on the target memory data in the target memory space of the virtualized instance, it is specifically used to: perform in-place residency on the first memory data in a file sharing manner. Further optionally, when the saving module 52 makes the first memory data reside in situ in a file sharing manner, it is specifically used to: when storing the first memory data, store the first memory data in a memory-mapped file in the system memory space, and keep the memory-mapped file from being released during the upgrade process of the target virtualization component to achieve the in-situ residence of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or, when storing the first memory data, call a memory file system to store the first memory data in the system memory space in the form of a memory file, and keep the memory file from being released during the upgrade process of the target virtualization component to achieve the in-situ residence of the first memory data. In an optional embodiment, the saving module 52 is further configured to: create the target persistent file for the virtualization instance and create a memory-mapped file corresponding to the target persistent file in the system memory space; write the first memory data to the memory-mapped file during the process of the virtualization instance generating the first memory data; and store the data in the memory-mapped file into the target persistent file according to a set persistence policy. In an optional embodiment, the target memory space includes a peripheral memory space, which is a memory space on a target physical peripheral device used by the virtualization instance; the target memory data includes second memory data stored in the peripheral memory space; and when the saving module 52 persists the target memory data in the target memory space of the virtualization instance, it is specifically configured to: if the target virtualization component includes a driver for the target physical peripheral device, prohibit overwriting the peripheral memory space when uninstalling the driver; and prohibit initializing the peripheral memory space when reloading an upgraded driver.In an optional embodiment, before uninstalling the driver, the saving module 52 is further configured to: enable a memory residency function of the driver through an interface exposed to the outside by the driver; the memory residency function includes not rewriting the peripheral memory space during the uninstallation process and not initializing the peripheral memory space during the loading process; in an optional embodiment, when restoring the state of the virtualization instance based on the saved state information of the virtualization instance, the recovery module 54 is specifically configured to: recreate the virtualization instance according to the resource file corresponding to the virtualization instance, and the virtualization instance reuses the unique identifier before the restoration; reallocate the target memory space to the virtualization instance according to the unique identifier; and, based on the state data in the designated file, restore the virtualization instance to the running state when the state was saved. In an optional embodiment, the virtualization manager includes a first virtualization component that creates the virtualization instance; when the saving module 52 saves the state of the virtualization instance running on the physical machine, it is specifically used to: call the first virtualization component to save the state of the virtualization instance; accordingly, when the recovery module 54 restores the state of the virtualization instance based on the saved state information of the virtualization instance, it is specifically used to: if the target virtualization component does not include the first virtualization component, call the first virtualization component, and restore the state of the virtualization instance based on the saved state information of the virtualization instance; if the target virtualization component includes the first virtualization component, call the upgraded first virtualization component, and restore the state of the virtualization instance based on the saved state information of the virtualization instance. In an optional embodiment, before uninstalling the target virtualization component before the upgrade, the preservation module 52 is further configured to: if the target virtualization component includes a driver for a target physical peripheral device used by the virtualization instance, optimize the uninstallation, installation, loading, and / or initialization process of the driver. In an optional embodiment, when saving the state of the virtualization instance running on the physical machine, the preservation module 52 is specifically configured to: if there are multiple virtualization instances, save the state of the multiple virtualization instances in a concurrent operation. Figure 6 is a schematic diagram of a virtualization instance state preservation device provided in yet another exemplary embodiment of the present disclosure.As shown in FIG6 , a virtualization instance state saving apparatus 600 includes: a collection module 61, a storage module 62, and a resident module 63, wherein: the collection module 61 is configured to respond to a virtualization instance state saving operation, collect state data of the virtualization instance, and save the state data to a specified file; the storage module 62 is configured to store first memory data generated by the virtualization instance in a system memory space in a file manner, where the virtualization instance has a target memory space, and the target memory space includes the system memory space; and the resident module 63 is configured to retain the first memory data in situ in a file-sharing manner before the virtualization instance is restored. In an optional embodiment, the resident module 63 is specifically configured to: when storing the first memory data, store the first memory data in a memory-mapped file in the system memory space, and maintain the memory-mapped file during the upgrade of the target virtualization component, thereby achieving in-place residency of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or, when storing the first memory data, invoke a memory file system to store the first memory data in the system memory space as a memory file, and maintain the memory file during the upgrade of the target virtualization component, thereby achieving in-place residency of the first memory data. In an optional embodiment, the saving module 62 is further configured to: create the target persistent file for the virtualization instance and create a memory-mapped file corresponding to the target persistent file in the system memory space; write the first memory data to the memory-mapped file when the virtualization instance generates the first memory data; and, according to a set persistence policy, store the data in the memory-mapped file into the target persistent file. In an optional embodiment, the target memory space also includes a peripheral memory space, which is a memory space on a target physical peripheral device used by the virtualization instance, and stores second memory data generated during the process of the virtualization instance using the target physical peripheral device. The resident module 63 is further configured to: prohibit overwriting the peripheral memory space when uninstalling a driver of the target physical peripheral device; and prohibit initializing the peripheral memory space when reloading the driver, so as to achieve in-situ residence of the second memory data.In an optional embodiment, the resident module 63 is further configured to: recreate the virtualized instance based on the resource file corresponding to the virtualized instance, with the virtualized instance reusing the unique identifier from before restoration; reallocate the target memory space to the virtualized instance based on the unique identifier; and restore the virtualized instance to the operating state at the time of state preservation based on the state data in the designated file. Figure 7 is a schematic diagram of the structure of a physical machine provided in an exemplary embodiment of the present disclosure. The physical machine includes hardware resources, including memory 74 and processor 75. Memory 74 is configured to store computer programs and can be configured to store various other data to support operations on the physical machine. Examples of such data include instructions for any application or method operating on the physical machine, contact data, phone book data, messages, images, videos, etc. Memory 74 can be implemented by any type of volatile or non-volatile memory device, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, a magnetic disk, or an optical disk. Processor 75, coupled to memory 74, is configured to execute a computer program stored in memory 74 to: determine a target virtualization component to be upgraded in a virtualization manager running on a physical machine; save the state of a virtualization instance running on the physical machine, the virtualization instance being created by the virtualization manager; uninstall the target virtualization component before the upgrade, and reinstall and load the upgraded target virtualization component; and restore the state of the virtualization instance based on the saved state information of the virtualization instance. In an optional embodiment, when saving the state of a virtualized instance running on the physical machine, the processor 75 is specifically configured to: collect state data of the virtualized instance and save the state data to a designated file; and perform in-place persistence of target memory data in a target memory space of the virtualized instance. In an optional embodiment, the target memory space includes system memory space, and the target memory data includes first memory data stored in the system memory space as a file. When performing in-place persistence of the target memory data in the target memory space of the virtualized instance, the processor 75 is specifically configured to: perform in-place persistence of the first memory data in a file sharing manner.Further optionally, when the processor 75 performs in-place residency on the first memory data in a file sharing manner, it is specifically used to: when storing the first memory data, store the first memory data in a memory-mapped file in the system memory space, and keep the memory-mapped file from being released during the upgrade process of the target virtualization component to achieve in-place residency of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or, when storing the first memory data, call the memory file system to store the first memory data in the system memory space in the form of a memory file, and keep the memory file from being released during the upgrade process of the target virtualization component to achieve in-place residency of the first memory data. In an optional embodiment, the processor 75 is further configured to: create the target persistent file for the virtualization instance and create a memory-mapped file corresponding to the target persistent file in the system memory space; write the first memory data to the memory-mapped file during the process of the virtualization instance generating the first memory data; and store the data in the memory-mapped file into the target persistent file according to a set persistence policy. In an optional embodiment, the target memory space includes a peripheral memory space, which is a memory space on a target physical peripheral device used by the virtualization instance; the target memory data includes second memory data stored in the peripheral memory space; and when making the target memory data in the target memory space of the virtualization instance resident in place, the processor 75 is specifically configured to: if the target virtualization component includes a driver for the target physical peripheral device, prohibit overwriting the peripheral memory space when uninstalling the driver; and prohibit initializing the peripheral memory space when reloading an upgraded driver.In an optional embodiment, before uninstalling the driver, the processor 75 is further configured to: enable a memory residency function of the driver through an interface exposed to the outside by the driver; the memory residency function includes not rewriting the peripheral memory space during the uninstallation process and not initializing the peripheral memory space during the loading process; in an optional embodiment, when the processor 75 performs a state restoration on the virtualization instance based on the saved state information of the virtualization instance, it is specifically configured to: recreate the virtualization instance according to a resource file corresponding to the virtualization instance, and the virtualization instance reuses the unique identifier before restoration; reallocate the target memory space to the virtualization instance according to the unique identifier; and, based on the state data in the designated file, restore the virtualization instance to the running state when the state was saved. In an optional embodiment, the virtualization manager includes a first virtualization component that creates the virtualization instance. When saving the state of the virtualization instance running on the physical machine, the processor 75 is specifically configured to: call the first virtualization component to save the state of the virtualization instance. Accordingly, when restoring the state of the virtualization instance based on the saved state information of the virtualization instance, the processor 75 is specifically configured to: if the target virtualization component does not include the first virtualization component, call the first virtualization component to restore the state of the virtualization instance based on the saved state information of the virtualization instance; and if the target virtualization component includes the first virtualization component, call the upgraded first virtualization component to restore the state of the virtualization instance based on the saved state information of the virtualization instance. In an optional embodiment, before uninstalling the target virtualization component before the upgrade, the processor 75 is further configured to: if the target virtualization component includes a driver for a target physical peripheral device used by the virtualization instance, optimize the uninstallation, installation, loading, and / or initialization process of the driver. In an optional embodiment, when saving the state of a virtualized instance running on the physical machine, the processor 75 is specifically configured to concurrently save the state of multiple virtualized instances if there are multiple virtualized instances. Furthermore, as shown in FIG7 , the physical machine also includes other components, such as a communication component 76, a display 77, a power supply component 78, and an audio component 79. FIG7 schematically illustrates only some components and does not imply that the physical machine only includes the components shown in FIG7 .In addition, the components within the dashed box in Figure 7 are optional, not mandatory, components, and may depend on the product form factor of the worker node. The worker node of this embodiment can be implemented as a terminal device such as a desktop computer, laptop computer, smartphone, or IoT device, or as a server-side device such as a conventional server, cloud server, or server array. If the worker node of this embodiment is implemented as a terminal device such as a desktop computer, laptop computer, or smartphone, it may include the components within the dashed box in Figure 7; if the worker node of this embodiment is implemented as a server-side device such as a conventional server, cloud server, or server array, it may not include the components within the dashed box in Figure 7. The disclosed embodiments also provide a physical machine whose implementation structure is the same or similar to that of the physical machine shown in Figure 7 and can be implemented with reference to the structure of the physical machine shown in Figure 7. The physical machine provided in this embodiment differs from the physical machine shown in Figure 7 primarily in that the functions implemented by the processor executing the computer program stored in the memory are different. For the physical machine provided in this embodiment, its processor executes a computer program stored in a memory, which can be used to: respond to a virtualization instance state save operation, collect state data of the virtualization instance, and save the state data to a specified file; the virtualization instance has a target memory space, the target memory space includes the system memory space, and the first memory data generated by the virtualization instance is stored in the system memory space in a file manner; before the virtualization instance is restored, the first memory data is kept resident in situ in a file sharing manner. In an optional embodiment, when the processor performs in-place residency on the first memory data in a file sharing manner, the processor is specifically configured to: when storing the first memory data, store the first memory data in a memory-mapped file in the system memory space, and keep the memory-mapped file from being released during the upgrade process of the target virtualization component to achieve in-place residency of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or, when storing the first memory data, call the memory file system to store the first memory data in the system memory space in the form of a memory file, and keep the memory file from being released during the upgrade process of the target virtualization component to achieve in-place residency of the first memory data.In an optional embodiment, the processor is further configured to: create a target persistent file for the virtualization instance and create a memory-mapped file corresponding to the target persistent file in the system memory space; write the first memory data to the memory-mapped file when the virtualization instance generates first memory data; and store the data in the memory-mapped file into the target persistent file according to a set persistence policy. In an optional embodiment, the target memory space also includes a peripheral memory space, which is memory space on a target physical peripheral device used by the virtualization instance, and stores second memory data generated during the virtualization instance's use of the target physical peripheral device. The processor is further configured to: prohibit overwriting the peripheral memory space when uninstalling a driver for the target physical peripheral device; and prohibit initializing the peripheral memory space when reloading the driver, so as to achieve in-place residency of the second memory data. In an optional embodiment, the processor is further configured to: recreate the virtualized instance based on the resource file corresponding to the virtualized instance, with the virtualized instance reusing the unique identifier from before restoration; reallocate the target memory space to the virtualized instance based on the unique identifier; and restore the virtualized instance to the operating state at the time of state preservation based on the state data in the designated file. The detailed implementation and beneficial effects of each step in the method of this embodiment have been described in detail in the aforementioned embodiments and will not be elaborated upon here. Accordingly, an embodiment of the present disclosure further provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, the processor is enabled to implement each step in the aforementioned method embodiment. Accordingly, an embodiment of the present disclosure further provides a computer program product comprising a computer program / instructions. When the computer program / instructions are executed by a processor, the processor is enabled to implement the steps in the aforementioned method embodiment. The aforementioned memory can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random-access memory (SRAM) or electrically erasable programmable read-only memory.
[0012] Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk. The aforementioned communication component is configured to facilitate wired or wireless communication between the device containing the communication component and other devices. The device containing the communication component can access a wireless network based on a communication standard, such as WiFi, 2G, 3G, 4G / LTE, 5G, or other mobile communication networks, or a combination thereof. In one exemplary embodiment, the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication component also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra Wide Band (UWB) technology, Bluetooth (BT) technology, and other technologies. The above-mentioned display includes a screen, which can include a Liquid Crystal Display (LCD) and a touch panel (TP). OIf the screen includes a touch panel, it can be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, slides, and gestures on the touch panel. The touch sensors can not only sense the boundaries of a touch or slide action, but also detect the duration and pressure associated with the touch or slide action. The power supply assembly described above provides power to various components of the device in which the power supply assembly is located. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply assembly is located. The audio assembly described above can be configured to output and / or input audio signals. For example, the audio assembly includes a microphone (MIC) that is configured to receive external audio signals when the device in which the audio assembly is located is in an operating mode, such as call mode, recording mode, or voice recognition mode. The received audio signals may be further stored in a memory or transmitted via a communication component. In some embodiments, the audio assembly also includes a speaker configured to output audio signals. Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to magnetic disk storage, compact disc read-only memory (CD-ROM), optical storage, etc.) containing computer-usable program code. The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing device, produce means for implementing the functions specified in one or more processes in the flowcharts and / or one or more blocks in the block diagrams. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device, which implements the functions specified in one or more processes in the flowchart and / or one or more blocks in the block diagram.These computer program instructions can also be loaded onto a computer or other programmable data processing device, causing the computer or other programmable device to execute a series of operational steps to produce a computer-implemented process. The instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flow charts and / or one or more blocks in a block diagram. In a typical configuration, a computing device includes one or more processors (Central Processing Units, CPUs), input / output interfaces, network interfaces, and memory. Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. oMemory is an example of computer-readable media. Computer-readable media includes both permanent and non-permanent, removable and non-removable media, and can be implemented using any method or technology to store information. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmitting medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves. It should also be noted that the terms "comprise," "include," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, product, or apparatus comprising a list of elements may include not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, product, or apparatus. Without further limitation, the phrase "comprising a..." does not preclude the presence of additional identical elements in the process, method, product, or apparatus comprising the elements. The foregoing are merely examples of the present disclosure and are not intended to limit the present disclosure. Those skilled in the art will readily appreciate that various modifications and variations of the present disclosure are possible. Any modifications, equivalent substitutions, improvements, and the like made within the spirit and principles of the present disclosure are intended to be encompassed by the claims of the present disclosure.
Claims
24 Claims 1. A method for upgrading a virtualization component, comprising: Determining a target virtualization component, where the target virtualization component is a virtualization component to be upgraded in a virtualization manager running on a physical machine; Saving the state of a virtualization instance running on the physical machine, where the virtualization instance is created by the virtualization manager; uninstalling a target virtualization component before the upgrade, and reinstalling and loading the upgraded target virtualization component; and restoring the state of the virtualization instance based on the saved state information of the virtualization instance.
2. The method according to claim 1, wherein: Saving the state of the virtualized instance running on the physical machine includes: collecting state data of the virtualized instance and saving the state data to a specified file; and residing target memory data in a target memory space of the virtualized instance in situ.
3. The method according to claim 2, wherein: The target memory space includes a system memory space, and the target memory data includes first memory data stored in the system memory space in a file manner; The target memory data in the target memory space of the virtualized instance is kept in situ, including: keeping the first memory data in situ in a file sharing manner.
4. The method according to claim 3, wherein: The first memory data is persisted in situ in a file sharing manner, comprising: when storing the first memory data, storing the first memory data in a memory-mapped file in the system memory space, and keeping the memory-mapped file from being released during the upgrade of the target virtualization component to achieve the in-situ residency of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or when storing the first memory data, calling a memory file system to store the first memory data in the system memory space in the form of a memory file, and keeping the memory file from being released during the upgrade of the target virtualization component to achieve the in-situ residency of the first memory data.
5. The method according to claim 2, wherein: The target memory space includes a peripheral memory space, which is a memory space on a target physical peripheral device used by the virtualization instance; the target memory data includes second memory data stored in the peripheral memory space; The target memory data in the target memory space of the virtualized instance is made resident in situ, comprising: when the target virtualization component includes a driver of the target physical peripheral device, prohibiting rewriting the peripheral memory space when the driver is uninstalled; When reloading the upgraded driver, initialization of the peripheral memory space is prohibited.
6. The method according to claim 5, wherein: Before uninstalling the driver, the method further includes: enabling a memory resident function of the driver through an interface exposed by the driver; the memory resident function includes not rewriting the peripheral memory space during uninstallation and not initializing the peripheral memory space during loading; wherein the memory resident function is enabled by default in the upgraded driver.
7. The method according to claim 2, wherein: Based on the saved state information of the virtualized instance, the virtualized instance performs state recovery, including: recreating the virtualized instance according to the resource file corresponding to the virtualized instance, and reusing the unique identifier before the recovery for the virtualized instance; reallocating the target memory space to the virtualized instance according to the unique identifier; and restoring the virtualized instance to the running state at the time of state saving according to the state data in the designated file.
8. The method according to any one of claims 1 to 7, wherein: Before uninstalling the target virtualization component before the upgrade, the method further includes: optimizing the uninstallation process, installation process, loading process and / or initialization process of the driver when the target virtualization component includes a driver of a target physical peripheral device used by the virtualization instance.
9. A physical machine, comprising: A hardware resource, wherein a virtualization manager, a virtualization instance, and an upgrade program are running on the hardware resource; the virtualization manager includes multiple virtualization components and is configured to implement virtualization of the hardware resource and creation and management of the virtualization instance; wherein the upgrade program is configured to determine a target virtualization group to be upgraded among the multiple virtualization components; save the state of the virtualization instance; uninstall the target virtualization component before the upgrade, and reinstall and load the upgraded target virtualization component; and restore the state of the virtualization instance based on the saved state information of the virtualization instance.
10. The physical machine according to claim 9, wherein: The multiple virtualization components include a first virtualization component in user state and a second virtualization component in kernel state; the target virtualization component includes the first virtualization component and / or the second virtualization component; the upgrade program is specifically used to: call the first virtualization component to save the state of the virtualization instance; and when the target virtualization component does not include the first virtualization component, call the first virtualization component to restore the state of the virtualization instance based on the saved state information of the virtualization instance; when the target virtualization component includes the first virtualization component, call the upgraded first virtual component to restore the state of the virtualization instance based on the saved state information of the virtualization instance.
11. A method for preserving virtualized instance state, comprising: In response to the virtualization instance state saving operation, the state data of the virtualization instance is collected and saved. Save to the specified file; The virtualization instance has a target memory space, the target memory space includes a system memory space, and the first memory data generated by the virtualization instance is stored in the system memory space in a file manner; Before the virtualized instance is restored, the first memory data is kept in situ in a file sharing manner.
12. The method according to claim 11, wherein: The first memory data is persisted in situ in a file sharing manner, comprising: when storing the first memory data, storing the first memory data in a memory-mapped file in the system memory space, and keeping the memory-mapped file from being released during the upgrade of the target virtualization component to achieve the in-situ residency of the first memory data; the memory-mapped file is a memory mapping of a target persistent file used by the virtualization instance, and the target persistent file is used to persistently store the data in the memory-mapped file; or when storing the first memory data, calling a memory file system to store the first memory data in the system memory space in the form of a memory file, and keeping the memory file from being released during the upgrade of the target virtualization component to achieve the in-situ residency of the first memory data.
13. The method according to claim 11 or 12, wherein: The target memory space also includes a peripheral memory space, which is a memory space on a target physical peripheral device used by the virtualization instance. The peripheral memory space stores second memory data generated during the process of the virtualization instance using the target physical peripheral device. The method further includes: prohibiting rewriting operations on the peripheral memory space when uninstalling a driver of the target physical peripheral device; and prohibiting initialization operations on the peripheral memory space when reloading the driver, so as to ensure that the second memory data resides in situ.
14. A physical machine, comprising hardware resources, the hardware resources comprising a memory and a processor, the memory storing a computer program, the processor coupled to the memory and configured to execute the computer program to implement the steps of the method of any one of claims 1-8 and claims 11-13.
15. A computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, the processor is enabled to implement the steps of the method according to any one of claims 1 to 8 and claims 11 to 13.
16. A computer program product, comprising a computer program / instruction, which, when executed by a processor, causes the processor to implement the steps of the method according to any one of claims 1 to 8 and claims 11 to 13.
Citation Information
Patent Citations
Virtual machine hot upgrading method and device and related equipment thereof
CN110489150A
Hot upgrade method and device for virtual machine management program and storage medium
CN114416148A
Method and device for hot upgrade of virtual machine
CN115774601A
Live updates for virtual machine monitor
US20200310785A1