WO2025181565A1 - 计算机设备、物理机、数据处理方法、存储介质及程序产品 - Google Patents
计算机设备、物理机、数据处理方法、存储介质及程序产品Info
- Publication number
- WO2025181565A1 WO2025181565A1 PCT/IB2025/050295 IB2025050295W WO2025181565A1 WO 2025181565 A1 WO2025181565 A1 WO 2025181565A1 IB 2025050295 W IB2025050295 W IB 2025050295W WO 2025181565 A1 WO2025181565 A1 WO 2025181565A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtualization
- access request
- component
- target access
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
- G06F11/1484—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Definitions
- VMM virtualization manager
- IO input/output
- VMs virtual machines
- the microservice card is equivalent to an IO device. If the microservice card fails to correctly or promptly process related virtualization operations, VM anomalies or downtime may occur.
- Various aspects of the present disclosure provide a computer device, a physical machine, a data processing method, a storage medium, and a program product for reducing the probability of virtualized instance anomalies or downtime caused by a microservice card's inability to correctly or promptly process related virtualization operations.
- An embodiment of the present disclosure provides a computer device, comprising: a host machine and a virtualization acceleration device; a kernel-mode virtualization component of a virtualization manager deployed on the host machine, and a user-mode virtualization component of the virtualization manager deployed on the virtualization acceleration device; the kernel-mode virtualization component and the user-mode virtualization component cooperate to create and manage a target virtualization instance on the host machine; the kernel-mode virtualization component is configured to intercept a current target access request initiated by the target virtualization instance, back up the current target access request, add a "in-processing" flag to the current target access request, and provide the current target access request to the user-mode virtualization component for processing; and, if the current target access request is not successfully processed, replay the current target access request based on historical component state information backed up by the user-mode virtualization component to a target storage space, the backup of the current target access request, and the "in-processing"flag; the user-mode virtualization component is configured to process the current target access request and, if the
- the present disclosure also provides a data processing method for a kernel-mode virtualization component in a virtualization manager deployed on a host machine.
- the method includes intercepting a current target access request initiated by a target virtualization instance running on the host machine, wherein the host machine is equipped with a virtualization acceleration device, and the user-mode virtualization component in the virtualization manager is deployed on the virtualization acceleration device.
- the present invention relates to a virtualization acceleration device; backing up the current target access request and adding a processing mark to the current target access request, and providing the current target access request to the user-state virtualization component deployed on the virtualization acceleration device for processing; if the current target access request is not successfully processed, replaying the current target access request based on historical component state information, the backup of the current target access request, and the processing mark; wherein the historical component state information is the state information of the user-state virtualization component that is backed up to the target storage space when the user-state virtualization component successfully processes the historical target access request, and the target storage space is a storage space external to the virtualization acceleration device.
- Embodiments of the present disclosure also provide a data processing method, applied to a user-mode virtualization component deployed on a virtualization acceleration device within a virtualization manager.
- the method comprises: obtaining a current target access request provided by a kernel-mode virtualization component within the virtualization manager, the current target access request being initiated by a target virtualization instance running on the host machine where the kernel-mode virtualization component resides; processing the current target access request, and if the current target access request is successfully processed, backing up current component state information to a target storage space for replay processing of subsequent target access requests; wherein the current component state information is state information of the user-mode virtualization component upon successful processing of the current target access request, and the target storage space is storage space external to the virtualization acceleration device.
- Embodiments of the present disclosure also provide a physical machine comprising: a memory and a processor; the memory storing a computer program; and the processor coupled to the memory and configured to execute the computer program to implement the steps of the data processing method provided by the embodiments of the present disclosure.
- Embodiments of the present disclosure also provide a computer-readable storage medium storing the computer program. When the computer program is executed by the processor, the processor implements the steps of the data processing method provided by the embodiments of the present disclosure.
- 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 data processing method provided in the embodiments of the present disclosure.
- a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host machine.
- the kernel-mode virtualization component intercepts the target access request, backs up the request, and adds a "in-processing" flag.
- the kernel-mode virtualization component cooperates with component state information previously backed up external to the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the kernel-mode virtualization component replays the request based on the previously backed-up historical component state information, the target access request backup, and the "in-processing" flag.
- FIG. 1a is a schematic diagram of the structure of a host machine provided in an exemplary embodiment of the present disclosure
- FIG. 1b is a schematic diagram of the structure of a computer device provided in an exemplary embodiment of the present disclosure
- FIG. 1a is a schematic diagram of the structure of a host machine provided in an exemplary embodiment of the present disclosure
- FIG. 1b is a schematic diagram of the structure of a computer device provided in an exemplary embodiment of the present disclosure
- FIG. 1a is a schematic diagram of the structure of a computer device provided in an exemplary embodiment of the present disclosure
- FIG. 2a is a schematic diagram of the interaction between a kernel-mode virtualization component and a user-mode virtualization component provided in an exemplary embodiment of the present disclosure
- FIG. 2b is a schematic diagram of the flow of a data processing method provided in an exemplary embodiment of the present disclosure
- Figure 3 is a flow chart of another data processing method provided by an exemplary embodiment of the present disclosure
- Figure 4 is a flow chart of yet another data processing method provided by an exemplary embodiment of the present disclosure
- Figure 5 is a schematic diagram of the structure of a data processing device provided by an exemplary embodiment of the present disclosure
- Figure 6 is a schematic diagram of the structure of another data processing device provided by an exemplary embodiment of the present disclosure
- Figure 7 is a schematic diagram of the structure of another data processing device provided by an exemplary embodiment of the present disclosure.
- a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host machine.
- the kernel-mode virtualization component For a current target access request that requires processing by the user-mode virtualization component, the kernel-mode virtualization component intercepts the target access request, backs it up, and adds a "in-processing" flag. Furthermore, the kernel-mode virtualization component cooperates with the component state information previously backed up external to the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the kernel-mode virtualization component replays the current target access request based on the previously backed-up historical component state information, the target access request backup, and the "in-processing" flag. This ensures timely and accurate processing of access requests, reducing the probability of virtualized instance anomalies or downtime.
- a solution provided by an embodiment of the present disclosure is described in detail below with reference to the accompanying drawings.
- FIG1a is a schematic diagram of the structure of a host machine provided in an exemplary embodiment of the present disclosure.
- the host machine 10 includes hardware resources 101, on which a virtualization manager 103 is deployed.
- the hardware resources 101 include at least physical computing resource objects.
- Physical computing resource objects can include various physical resource objects with computing capabilities, such as central processing units (CPUs), graphics processing units (GPUs), data processing units (DPUs), tensor processing units (TPUs), and application-specific integrated circuits (ASICs).
- hardware resources 101 on the host machine may also include other components, such as memory, communication components, displays, power components, and audio components, which are not described in detail here.
- the memory can provide the host machine's memory space and persistent storage space.
- the storage medium for the memory space includes, but is not limited to, random access memory (RAM), and the storage medium for the persistent storage space includes, but is not limited to, solid-state drives (SSDs).
- a host operating system (OS) 102 runs on top of the hardware resources 101.
- the virtualization manager 103 is software running in the kernel state of the host machine and is independent of the host OS.
- the virtualization manager 103 can be considered to include software within the host operating system 102.
- virtualization management can also be considered software running on the host operating system 102, without limitation.
- FIG1a illustrates the virtualization manager 103 as software running within the host operating system 102.
- the virtualization manager 103 is used to create and manage virtualized instances on the host.
- the virtualization manager can be a VMM or a hypervisor.
- a hypervisor allows multiple operating systems and applications to share a set of underlying physical resources. Therefore, it can be considered the "meta" operating system in a virtual environment and is the core of virtualization technology.
- Virtualized instances can include, but are not limited to, cloud hosts, Elastic Compute Service (ECS), virtual machines (VMs), or containers.
- ECS Elastic Compute Service
- VMs virtual machines
- the virtualization manager 103 includes a kernel-mode virtualization component 103a and a user-mode virtualization component 103b.
- Kernel-mode virtualization component 103a runs in the kernel space of the host operating system, while user-mode virtualization component 103b runs in the user space of the host operating system.
- user-mode virtualization component 103b may be Quick Emulator (Qemu)
- kernel-mode virtualization component 103a may be a Kernel-based Virtual Machine (KVM).
- the virtualization methods implemented by user-mode virtualization component 103b and kernel-mode virtualization component 103a are not limited.
- user-mode virtualization component 103b is responsible for virtualizing devices
- kernel-mode virtualization component 103a is responsible for virtualizing virtual computing resource objects and virtual memory objects.
- user-mode virtualization component 103b is responsible for virtualizing a portion of 10 devices
- kernel-mode virtualization component 103a is responsible for virtualizing another portion of 10 devices, virtual computing resource objects, and memory resource objects.
- user-mode virtualization component 103b may be responsible for virtualizing a portion of 10 devices with a small data transmission volume and low frequency, including but not limited to: real-time clocks (RTCs), Advanced Configuration and Power Management Interface (ACPI) devices, PCI bus devices, Advanced Technology Atachment (ATA) devices, and mice.
- Kernel-mode virtualization component 103a may be responsible for virtualizing another portion of 10 devices with a large data transmission volume and high frequency, such as cameras or displays.
- user-mode virtualization component 103b may also implement functions such as virtualization instance configuration management, lifecycle management, and specific virtual machine technologies (e.g., dynamic migration). Kernel-mode virtualization component 103a may also implement functions such as virtualization instance creation, virtual memory allocation, virtual register reading and writing, and virtual computing resource object execution. Regardless of the aforementioned virtualization implementation method, user-mode virtualization component 103b and kernel-mode virtualization component 103a may collaborate to create and manage virtualization instances on the host machine. For example, kernel-mode virtualization component 103a may create a virtualization instance and, during virtualization instance initialization, create a virtual computing resource object for the virtualization instance, hosted on a physical computing resource object, and allocate a virtual memory resource object to the virtualization instance.
- kernel-mode virtualization component 103a may create a virtualization instance and, during virtualization instance initialization, create a virtual computing resource object for the virtualization instance, hosted on a physical computing resource object, and allocate a virtual memory resource object to the virtualization instance.
- User-mode virtualization component 103b may simulate a virtual device for the virtualization instance. Kernel-mode virtualization component 103a may schedule virtual computing resource objects to execute the virtualization instance. During the operation of the virtualized instance, kernel-mode virtualization component 103a intercepts access requests (IO requests) from the virtualized instance and provides the access requests to user-mode virtualization component 103b. The virtual IO device simulated by user-mode virtualization component 103b processes the access requests and returns the processing results to the virtualized instance through kernel-mode virtualization component 103a.
- the number of virtual computing resource objects allocated to the virtualized instance can be one or more, for example, four, eight, or sixteen. Depending on the physical computing resource object, the virtual computing resource objects hosted on the physical computing resource objects may be different.
- Computing resource objects may also vary. If the physical computing resource object is a VPU, GPU, DPU, TPU, CIPU, or ASIC, the corresponding virtual computing resource object can be a virtual vCPU, virtual (virtual GPU, vGPU), virtual (virtual DPU - vDPU), virtual (virtual TPU - vTPU), virtual (virtual CIPU - vCIPU), or virtual (virtual ASIC, vASIC).
- Virtualization acceleration device 20 is a device that implements virtualization technology and can help connected host machines 10 achieve at least some virtualization functions.
- host machines 10 can offload some or all virtualization functions to virtualization acceleration device 20, thereby achieving performance acceleration.
- This embodiment does not limit the implementation form of the virtualization acceleration device 20. Its implementation form may include, but is not limited to, an application-specific integrated circuit (ASIC), a system-on-chip (SOC), a field programmable gate array (FPGA), or a complex programmable logic device (CPLD).
- the virtualization acceleration device 20 has its own hardware resources 201, such as computing resources, storage resources, and network resources.
- the computing resources of the virtualization acceleration device 20 include, but are not limited to, CPUs, GPUs, and TPUs, and are not limited to these.
- the storage resources of the virtualization acceleration device 20 may include, but are not limited to, local storage resources such as memory and hard disks, and may include cloud storage resources such as cloud disks and network attached storage (NAS).
- Network resources may include, but are not limited to, communication components such as network cards.
- the virtualization acceleration device 20 employs a hardware-software integrated design, comprising not only the aforementioned hardware resources 201 but also software resources running on the hardware resources, such as an operating system 202 and related hardware drivers.
- the virtualization acceleration device 20 can be interconnected with the host machine via an interconnect bus, which may include, but is not limited to, a Peripheral Component Interconnect (PCI) bus and a Peripheral Component Interconnect Express (PCIE) bus.
- PCI Peripheral Component Interconnect
- PCIE Peripheral Component Interconnect Express
- the host machine 10 and the virtualization acceleration device 20 When the host machine 10 and the virtualization acceleration device 20 are interconnected, the reliability and efficiency of information transmission between them are guaranteed, facilitating the offloading of some or all virtualization functions from the host machine 10 to the virtualization acceleration device 20. Furthermore, leveraging the hardware and software resources of the virtualization acceleration device 20, some virtualization functions originally implemented on the host machine can be offloaded to the virtualization acceleration device 20, reducing the host machine's load and improving virtualization efficiency. As shown in FIG1b , the user-mode virtualization component 103b originally running on the host machine 10 is moved to the virtualization acceleration device 20. The user-mode virtualization component 103b is deployed on the virtualization acceleration device 20 and implements virtualization functions on the virtualization acceleration device 20.
- the user-mode virtualization component 103b implements virtualization of a 10 device on the virtualization acceleration device 20.
- the virtualization acceleration device 20 is equivalent to a 10 device. If the virtualization acceleration device 20 fails to correctly or promptly process related virtualization operations, this may cause the virtualized instance on the host machine 10 to experience anomalies or even crash.
- the reasons why the virtualization acceleration device 20 fails to correctly or promptly process related virtualization operations are not limited.
- the virtualization acceleration device 20 may experience anomalies or failures.
- causes of anomalies in the virtualization acceleration device 20 include, but are not limited to, uncorrectable processor errors (UCEs) and system kernel panics (Linux kernel panics).
- an abnormality may occur in the interconnection bus between the virtualization acceleration device 20 and the host machine 10.
- a fault tolerance mechanism is provided for the virtualization acceleration device 20.
- the kernel state virtualization component 103a backs up the access request and adds a flag indicating that it is being processed (hereinafter referred to as the processing flag).
- the user After processing the access request, kernel-mode virtualization component 103b backs up the component state information of user-mode virtualization component 103b. If the virtualization acceleration device 20 fails to successfully process the access request, kernel-mode virtualization component 103a replays the access request based on the historical component state information of user-mode virtualization component 103b, the access request backup, and the in-processing flag.
- one or more virtualization instances can be created on the operating system of the host machine 10. These one or more virtualization instances share kernel-mode virtualization component 103a, with each virtualization instance corresponding to a user-mode virtualization component 103b.
- kernel-mode virtualization component 103a For ease of distinction and description, the following uses the target virtualization instance as an example to illustrate the interaction between kernel-mode virtualization component 103a and the user-mode virtualization component 103b corresponding to the target virtualization instance.
- the target virtualization instance can initiate various access requests.
- specific access requests that require the participation of the user-mode virtualization component 103b are referred to as target access requests.
- the target access request depends on the virtualization function of the user-mode virtualization component 103b. If the user-mode virtualization component is responsible for virtualizing I/O devices, the target access request can be a port input/output (PIO) request or a memory-mapped I/O (MMIO) request. Furthermore, a PIO request can include, but is not limited to, input or output, port number (simulating a virtual I/O device), I/O number, I/O value, and I/O value.
- PIO port input/output
- MMIO memory-mapped I/O
- the port number is identification information that uniquely identifies the simulated virtualized IO device; the IO count is the number of read/write operations performed in one IO operation, for example, three read/write operations in one IO operation; the IO value size is the amount of data corresponding to this IO operation, for example, the IO value size is the product of the number of read/write operations and the amount of data read/written each time; and the IO value is the address information corresponding to the read/write operation.
- An MMI IO request may include, but is not limited to, a read/write operation, address information, length information, and IO value.
- the address information refers to the address information corresponding to the read/write operation
- the length information refers to the length of the read/write data
- the IO value is the amount of data corresponding to this IO operation.
- the kernel-mode virtualization component 103a can intercept the current target access request initiated by the target virtualization instance, back up the current target access request, add a "in-process" flag to the current target access request, and provide the current target access request to the user-mode virtualization component 103b for processing.
- FIG2a includes a host machine 10, which includes a target virtualization instance and a kernel-mode virtualization component 103a.
- the kernel-mode virtualization component can perform a current target access request.
- the virtualization acceleration device 20 includes shared memory and a user-mode virtualization component 103b. If the virtualization acceleration device fails to successfully process the current target access request, the target storage space can perform replay processing.
- Step a1 intercepts the current target access request initiated by the target virtualization instance, that is, intercepts the current target access request.
- Step a2 adds a processing mark.
- Step a3 backs up the current target access request, that is, backs up the current target access request.
- Steps a4 and a5 provide the current target access request to the user-mode virtualization component 103b.
- Step a4 Current target access request.
- Step a5 Current target access request.
- Step a6 Process the current target access request.
- Step a7 Back up the current component state information if the processing is successful.
- Step a8 Execution result.
- Step a9 Execution result.
- Step a10 Clear the flag, clear the backup, step a11, execution result, step b1, backup of the current target access request, step b2, in-process flag, step b3, historical component status information.
- steps a1 through a4 correspond to steps S01 through S04 in Figure 2b, respectively.
- S01 The kernel-mode virtualization component intercepts the current target access request (e.g., a PI0 request or an MMI0 request);
- S02 Backs up the current target access request;
- S03 Adds an in-process flag;
- S04 Provides the current target access request to the user-mode virtualization component in the virtualization acceleration device.
- the purpose of backing up the current target access request is to: When the user-mode virtualization component 103b on the backup server processes the current target access request, subsequent replay processing can be performed based on the backed-up current target access request, reducing the probability of virtualization instance exceptions or downtime and improving the stability of the virtualization instance.
- the "processing" flag is added to indicate that the current target access request is "processing.” If the current target access request is processed by the user-mode virtualization component 103b, the "processing flag" for the current target access request can be cleared.
- processing flag for the current target access request is not cleared within a set time, it indicates that the current target access request with the processing flag has not been processed completely and needs to be replayed to reduce the probability of virtualization instance failure or downtime. It should be noted that replay processing refers to the process of reprocessing the current target access request. A detailed description can be found in the subsequent embodiments and will not be elaborated here.
- the set time can be 10ms, 500ms, or 1s, etc.
- the location where the current target access request is backed up is not limited.
- the current target access request can be backed up to the host machine's memory space or persistent storage space; or it can be backed up to a storage system external to the host machine, such as a cloud storage resource such as a cloud disk or NAS.
- a cloud storage resource such as a cloud disk or NAS.
- the external storage system is typically not located on the virtualization acceleration device 20.
- the method for adding the in-process flag is also not limited.
- the kernel-mode virtualization component 103a maintains a correspondence between the identification information of the target access request and a flag bit, where the flag bit defaults to 0. Adding the in-process flag can be by setting the flag bit from 0 to 1.
- an in-process flag can be added to the target access request.
- the in-process flag can be any number, letter, or symbol, alone or in combination, such as 12, 1_1, or 1@1.
- the order in which the kernel-mode virtualization component 103a backs up the current target access request and adds the in-process flag is not limited.
- the current target access request may be backed up first and then marked as being in progress, or the marking as being in progress may be first and then backed up, or both the backing up and marking as being in progress may be performed simultaneously.
- the timing for backing up the current target access request and marking the current target access request is not limited.
- the current target access request may be backed up and marked as being in progress before being provided to the user-mode virtualization component 103b.
- the current target access request may be backed up and marked as being in progress as early as possible.
- the kernel-mode virtualization component 103a may immediately perform the backing up and marking as being in progress after capturing the current target access request initiated by the target virtualization instance.
- the kernel-mode virtualization component 103a may provide the current target access request to the user-mode virtualization component 103b on the virtualization acceleration device 20 via the interconnect bus between the host machine and the virtualization acceleration device.
- the introduction to the interconnect bus can be found above and will not be repeated here.
- S05 determines whether the virtualization acceleration device successfully processes the current target access request.
- the user-mode virtualization component 103b may process the current target access request, as shown in step a6 of Figure 2a and step S06 of Figure 2b , where the user-mode virtualization component generates a processing result for the current target access request. If the current target access request is successfully processed, the current component state information is backed up to a target storage space external to the virtualization acceleration device 20 for replay processing of subsequent target access requests, as shown in step a7 of Figure 2a and step S07 of Figure 2b , where the user-mode virtualization component backs up the component state information.
- the user-mode virtualization component 103b may process the current target access request, specifically by simulating the 10 device using virtualization technology.
- the current component ...
- Component status information refers to the current status information of the user-mode virtualization component 103b.
- it can be the status information of each IO device emulated by the user-mode virtualization component 103b after the IO device emulated by the user-mode virtualization component 103b processes the current target access request.
- the target storage space external to the virtualization acceleration device 20 can be storage space on the host machine, such as the host machine's persistent storage space or memory space; or it can be a cloud storage resource such as a cloud disk or NAS external to the host machine.
- the kernel-mode virtualization component 103a stores the access address of the target storage space and has access rights to the target storage space.
- the target storage space external to the virtualization acceleration device 20 stores backup historical component status information.
- This historical component status information is backed up to the target storage space by the user-mode virtualization component 103b when the virtualization acceleration device 20 is in a normal state and the user-mode virtualization component 103b successfully processes a historical target access request.
- the historical target access request can be the previous target access request or the two previous target access requests, without limitation.
- the historical target access request is the previous target access request, and accordingly, the historical component state information is the component state information when the user-mode virtualization component 103b successfully processed the previous target access request.
- the user-mode virtualization component 103b may also clear the historical component state information from the target storage space when backing up the current component state information to the target storage space. It should be noted that if the virtualization acceleration device successfully processes the current target access request, it indicates that the status of the virtualization acceleration device 20 is normal, and therefore the current component state information of the virtualization acceleration device 20 can be backed up to the target storage space.
- the backup time for backing up the current component state information to the target storage space is not limited. For example, the backup can be performed immediately after the current target access request is successfully processed, or it can be performed at an interval after the current target access request is successfully processed, and the interval can be 20ms, 300ms, or 500ms, etc. As shown in steps b1 to b3 of FIG.
- replay processing is performed based on historical component state information, a backup of the current target access request, and a processing-in-progress flag.
- the kernel-mode virtualization component 103a may replay the current target access request based on historical component state information in the target storage space external to the virtualization acceleration device 20, a backup of the current target access request, and a processing-in-progress flag. This allows for timely and correct processing of the access request, reducing the probability of virtualization instance exceptions or downtime.
- a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host machine.
- the kernel-mode virtualization component intercepts the target access request, backs it up, and adds a "in-process" flag. Furthermore, the kernel-mode virtualization component cooperates with the component status information previously backed up externally to the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the kernel-mode virtualization component replays the current target access request based on the previously backed-up historical component status information, the target access request backup, and the "in-process" flag.
- the host machine's operating system includes a first information monitoring module, and the virtualization acceleration device 20 is deployed with a second information monitoring module.
- the second information monitoring module periodically reports health status information to the first information monitoring module, for example, every 1ms, 50ms, or 1 minute. This health status information indicates the health of the virtualization acceleration device 20.
- the target access request can be successfully processed (e.g., the virtualization acceleration device 20 has not experienced any failure or anomaly).
- the first information monitoring module may determine that the virtualization acceleration device 20 cannot successfully process the target access request (e.g., the virtualization acceleration device 20 has experienced a failure or anomaly). The first information monitoring module then reports a notification message to the kernel-mode virtualization component stating that the virtualization acceleration device 20 cannot successfully process the target access request (e.g., the virtualization acceleration device 20 has experienced a failure or anomaly).
- the set time period may be 50ms, 500ms, or 2 minutes.
- the kernel-mode virtualization component 103a receives the notification message, obtains the target access request marked as being processed, and replays the target access request marked as being processed based on the historical component status information and the backup of the target access request.
- the kernel-mode virtualization component 103a may also be configured to instruct the target virtualization instance to trap to the kernel-mode virtualization component 103a when a target access request is initiated. For example, conditions for the target virtualization instance to trap into the kernel-mode virtualization component 103a are pre-set, including but not limited to: the target virtualization instance initiating a target access request.
- the target virtualization instance is triggered to trap into the kernel-mode virtualization component.
- the VM may trap into the kernel-mode virtualization component via a VM-Exit instruction.
- the kernel-mode virtualization component 103a intercepts the current target access request initiated by the target virtualization instance. For example, when the target virtualization instance falls into the kernel-mode virtualization component, the target access request of the virtualization instance is written into the Virtual Machine Control System (VMCS) structure, and the kernel-mode virtualization component 103a obtains the current target access request from the VMCS structure.
- VMCS Virtual Machine Control System
- the kernel-mode virtualization component 103a does not limit the manner in which the current target access request is marked as being processed.
- the target virtualization instance processes the target access request at the granularity of a virtual computing resource object.
- the marking can be added at the virtual computing resource object level.
- the target virtualization instance is allocated at least one virtual computing resource object.
- the kernel-mode virtualization component 103a determines the target virtual computing resource object responsible for processing the current target access request from the at least one virtual computing resource object and adds the marking as being processed to the target virtual computing resource object to indicate that the target access request is being processed.
- the target virtualization instance is allocated multiple (e.g., 16) virtual computing resource objects (e.g., vCPUs), represented by A1, A2, and A16.
- Each virtual computing resource object maintains a flag bit with a default value (e.g., 0). If virtual computing resource object A1 is determined to be the target virtual computing resource object, the flag bit of virtual computing resource object A1 is converted from the default value to the target value (e.g., 1) to indicate that a target access request is being processed. The flag bits of the other virtual computing resource objects remain unchanged.
- the user-mode virtualization component 103b successfully processes the current target access request, it provides the processing result of the current target access request to the kernel-mode virtualization component 103a.
- the user-mode virtualization component returns the processing result to the kernel-mode virtualization component.
- the kernel-mode virtualization component 103a may also provide the processing results to the target virtualization instance and clear the current target access request marked and backed up during processing. For example, in steps a10 and a11 in FIG. 2a , and in step S09 in FIG. 2b , the kernel-mode virtualization component clears the current target access request marked and backed up during processing, and in step S10, the kernel-mode virtualization component returns the processing results. Returned to the target virtualization instance.
- the kernel-mode virtualization component 103a may be KVM.
- KVM writes the processing result into the VMCS structure through a virtual machine entry (VM-Entry) instruction, thereby returning the processing result to the target virtualization instance.
- the processing result of the current target access request is the result obtained by the IO device simulated by the user-mode virtualization component 103b using virtualization technology to process the current target access request.
- the virtual IO device that processes the current target access request varies, and the processing result of the current target access request also varies. For example, if the current target access request is to "get the current system time,” the virtual IO device that processes the current target access request is the "RTC,” and the processing result of the current target access request is the current system time returned by the RTC.
- the virtual IO device that processes the current target access request is the "ACPI device”
- the processing result of the current target access request is the result information of the ACPI device waking up the virtualization instance.
- the operating system of the host machine 10 and the operating system of the virtualization acceleration device 20 have shared memory. This shared memory can be memory space on the host machine 10 or memory space on the virtualization acceleration device 20. The shared memory provides the basis for subsequent data transmission between the kernel-mode virtualization component 103a and the user-mode virtualization component 103b.
- the host machine 10 applies for a block of memory space as shared memory and provides the address information of the shared memory space to the kernel-mode virtualization component 103a.
- the kernel-mode virtualization component 103a provides the address information of the shared memory to the operating system of the virtualization acceleration device 20 via the interconnection bus between the host machine 10 and the virtualization acceleration device 20.
- the operating system of the virtualization acceleration device 20 then provides the address information of the shared memory to the user-mode virtualization component 103b. If the shared memory is the memory space of the virtualization acceleration device 20, the operating system of the virtualization acceleration device 20 applies for a block of memory as shared memory and provides the address information of the shared memory to the user-mode virtualization component 103b.
- the user-mode virtualization component 103b then provides the address information of the shared memory to the operating system of the host machine 10 via the interconnect bus between the host machine 10 and the virtualization acceleration device 20.
- the operating system of the host machine 10 then provides the address information of the shared memory to the kernel-mode virtualization component 103a.
- the kernel-mode virtualization component 103a writes the current target access request into the shared memory between the kernel-mode virtualization component 103a and the user-mode virtualization component 103b
- the user-mode virtualization component 103b reads the current target access request from the shared memory, as shown in steps a4 and a5 in FIG2a.
- the kernel-mode virtualization component 103a and the user-mode virtualization component 103b may periodically poll the shared memory to read data from the shared memory. Further, optionally, upon successfully processing the current target access request, user-mode virtualization component 103b writes the processing result of the current target access request to shared memory, as shown in step a8 in FIG. 2a . Kernel-mode virtualization component 103a may also read the processing result from shared memory, as shown in step a9 in FIG. 2a , and provide the processing result to the target virtualization instance, as well as clear the current target access request marked and backed up during processing, as shown in steps a1 and a10 in FIG.
- step a11 and a10 may be executed first, followed by step a10, or step a10 and a10 may be executed simultaneously.
- the manner in which user-mode virtualization component 103b backs up the current component state information to the target storage space is not limited. Depending on the location of the target storage space, the manner in which user-mode virtualization component 103b backs up the current component state information may vary. For example, when the target storage space is the storage space on the host machine 10, the virtualization acceleration device 20 is connected to the host machine 10. The interconnect bus between the host machine 10 and the user-mode virtualization component 103b sends the current component state information to the target storage space.
- the user-mode virtualization component 103b writes the current component state information to the memory space of the virtualization acceleration device 20.
- the operating system of the virtualization acceleration device 20 provides the current component state information in the memory space to the operating system of the host machine 10 via the PCIE bus.
- the operating system of the host machine 10 then writes the current component state information to the target storage space.
- the target storage space is external to the host machine 10
- the current component state information is sent to the target storage space via the network card module of the virtualization acceleration device 20.
- the virtualization acceleration device interacts with external storage space (e.g., cloud storage) via the network card module.
- the user-mode virtualization component 103b writes the current component state information to the memory space of the virtualization acceleration device 20.
- the operating system of the virtualization acceleration device 20 provides the current component state information to the target storage space in the cloud via the network card module.
- kernel-mode virtualization component 103a pre-maintains a virtual resource object information mapping table.
- Virtual resource objects may include, but are not limited to, virtual computing resource objects, virtual memory objects, and virtual I/O devices.
- This virtual resource object information mapping table maintains a correspondence between each virtual resource object and a virtualization component (e.g., kernel-mode virtualization component 103a or user-mode virtualization component 103b). This indicates that the virtual resource object of a virtualized instance is simulated by the corresponding virtualization component.
- access requests from the virtualized instance to the virtual resource object are processed by the corresponding virtualization component.
- the host operating system is Linux
- kernel-mode virtualization component 103a is KVM
- user-mode virtualization component 103b is Qemu
- the access request is a PIO request
- PIO requests are associated with port numbers
- different port numbers correspond to different virtual I/O devices.
- KVM can maintain a correspondence between port and Qemu, and between port and KVM.
- the kernel-mode virtualization component 103a is KVM
- the user-mode virtualization component 103b is Qemu
- the access request is an MMI0 request.
- the MMI0 request corresponds to a region (i.e., a memory area in the host operating system). Different regions correspond to different virtual devices. Accordingly, KVM can maintain a region-Qemu correspondence, as well as a region-KVM correspondence.
- the kernel-mode virtualization component 103a can intercept the current access request initiated by the target virtualization instance and, based on a pre-maintained virtual resource object information mapping table, determine whether the target virtual resource object requested by the current access request is virtualized by the user-mode virtualization component.
- the kernel-mode virtualization component 103a treats the current access request as the current target access request, backs it up, adds a "in-process" flag to the current target access request, and provides the current target access request to the user-mode virtualization component 103b for processing.
- the kernel-mode virtualization component 103a processes the current access request and returns the processing result to the target virtualization instance.
- the implementation method of the kernel-mode virtualization component 103a replaying the current target access request is not limited. The following is an exemplary description.
- Example B1 Replaying the request on another virtualization acceleration device of the host machine.
- the kernel-mode virtualization component 103a When the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, the kernel-mode virtualization component 103a performs replay processing on the target access request.
- Component 103a retrieves historical component status information from the target storage space based on the in-processing flag. For example, if the in-processing flag is present, it indicates that the current target access request has not been processed, and the historical component status information is retrieved from the target storage space. If the in-processing flag is cleared, it indicates that the current target access request has been processed and no further operations are required. Based on the historical component status information, kernel-mode virtualization component 103a creates a user-mode virtualization component responsible for the target virtualization instance on another virtualization acceleration device, referred to as a new user-mode virtualization component.
- the backed-up current target access request is provided to the new user-mode virtualization component for processing.
- a shared memory can be created between kernel-mode virtualization component 103a and the new user-mode virtualization component for information exchange between the kernel-mode virtualization component 103a and the new user-mode virtualization component.
- Kernel-mode virtualization component 103a writes the backed-up current target access request to the shared memory, and the new user-mode virtualization component reads the current target access request from the shared memory.
- local replay prompt information may be output to trigger replay of the current target access request on the other virtualization acceleration device.
- the kernel-mode virtualization component 103a and the new user-mode virtualization component cooperate to process the current target access request
- the other virtualization acceleration device may or may not experience an exception. If the other virtualization acceleration device does not experience an exception, the kernel-mode virtualization component 103a provides the backed-up current target access request to the new user-mode virtualization component for processing.
- the new user-mode virtualization component 103b processes the current target access request. If successful, it backs up the current component state information to the target storage space for replay processing of subsequent target access requests.
- the new user-mode virtualization component 103b writes the processing result of the current target access request to shared memory; the kernel-mode virtualization component 103a reads the processing result from shared memory and provides it to the target virtualization instance, clearing the current target access request marked and backed up. If an exception occurs on the other virtualization acceleration device, an alarm is issued to notify personnel for follow-up processing.
- the other virtualization acceleration device may have a pre-installed user-mode virtualization component that processes the target access request, and the current target access request is replayed based on this pre-installed user-mode virtualization component.
- a new user-mode virtualization component may be installed in real time on the other virtualization acceleration device, and the current target access request is replayed based on this new user-mode virtualization component.
- Example B2 Hot migration of the corresponding data to another host machine, where replay processing is performed.
- the kernel-mode virtualization component 103a controls the target virtualization instance to suspend operation, triggering the migration of the target virtualization instance to another host machine.
- the target access request is then replayed on the other host machine based on historical component state information, a backup of the current target access request, and a flag in the processing.
- the other host machine can be a host machine in the same cluster or a host machine in another cluster.
- Replay processing on the other host machine can be performed by migrating the target virtualization instance to the other host machine, allocating a new kernel-mode virtualization component and a new virtualization acceleration device to the target virtualization instance, deploying a new user-mode virtualization component on the new virtualization acceleration device for the target virtualization instance, and having the new kernel-mode virtualization component and the new user-mode virtualization component cooperate to perform replay processing. Details are described above and are not further elaborated here.
- the implementation provided in Example B2 can be implemented when another virtualization acceleration device exists on the current host machine 10.
- the host machine may include another virtualized acceleration device and the other virtualized acceleration device may be unavailable.
- the unavailability of the other virtualized acceleration device may be due to an abnormality of the other virtualized acceleration device or a fault.
- the other virtualization accelerator is highly loaded and cannot provide services for more virtualized instances. Alternatively, this can be implemented even if the host machine 10 does not include another virtualization accelerator.
- backing up the current component state information uses the state save chain used in live migration.
- This save chain can be in the form of a linked list, which can save the device states of each device in the user-mode virtualization component 103b in binary format. Since virtualization instances (e.g., VMs) can change the state of simulated devices through target access requests (e.g., PIO requests and MMIO requests), it is necessary to save the current component state information after processing the target access request.
- target access requests e.g., PIO requests and MMIO requests
- Examples B1 and B2 above provide implementations for replaying a target access request using historical component state information, a backup of the current target access request, and an in-process marker when a virtualization acceleration device fails to successfully process the target access request.
- the target access request can be replayed on another virtualization acceleration device.
- the target virtualization instance can be restored and the current target access request replayed on another functioning host machine, avoiding downtime and data loss in the virtualization instance.
- the present disclosure also provides a data processing method.
- the following describes the process of the data processing method provided by the present disclosure. This method is applied to a kernel-mode virtualization component in a virtualization manager deployed on a host machine. As shown in Figure 3, the data processing method includes:
- the current target access request is not successfully processed, replay the current target access request based on historical component state information, a backup of the current target access request, and the in-processing flag.
- the historical component state information is the state information of the user-mode virtualization component that was backed up to the target storage space when the user-mode virtualization component successfully processed the historical target access request.
- the target storage space is storage space external to the virtualization acceleration device.
- the kernel-mode virtualization component on the current host machine or a kernel-mode virtualization component on another host machine can be the executor of the replay based on the historical component state information, the backup of the current target access request, and the in-processing flag.
- the "other host machine” refers to another host machine in the same cluster or in a different cluster.
- intercepting a current target access request initiated by a target virtualization instance includes: during initialization, configuring a capability that indicates that the target virtualization instance should trap to a kernel-mode virtualization component when initiating a target access request; and intercepting the current target access request initiated by the target virtualization instance when the target virtualization instance traps to the kernel-mode virtualization component.
- adding a processing flag to the current target access request includes: determining, from at least one virtual computing resource object allocated to the target virtualization instance, a target virtual computing resource object that is responsible for processing the current target access request. object; adding a processing flag to the target virtual computing resource object to indicate that a target access request is being processed.
- providing the current target access request to a user-mode virtualization component deployed on a virtualization acceleration device for processing includes: writing the current target access request to a shared memory between the kernel-mode virtualization component and the user-mode virtualization component, so that the user-mode virtualization component can read the current target access request from the shared memory; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- the method provided in the embodiment of the present disclosure further includes: reading a processing result of the user-mode virtualization component on the current target access request from the shared memory and providing it to the target virtualization instance; and clearing the processing flag and the backed-up current target access request.
- intercepting a current target access request initiated by a target virtualization instance running on a host machine includes: intercepting the current access request initiated by the target virtualization instance running on the host machine; determining, based on a pre-maintained virtual resource object information mapping table, whether the target virtual resource object requested by the current target access request is virtualized by a user-mode virtualization component; and if so, treating the current access request as the current target access request.
- replaying the current target access request based on historical component state information, a backup of the current target access request, and a processing-in-progress flag includes: if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, replaying the current target access request based on the processing-in-progress flag, including: if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, obtaining historical component state information from a target storage space based on the processing-in-progress flag; creating a user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device based on the historical component state information; and providing the backup current target access request to the user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device for replay processing.
- replaying the current target access request based on historical component state information, a backup of the current target access request, and a mark in the process of processing the request includes: controlling the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine, so as to replay the current target access request based on the historical component state information, the backup of the current target access request, and the mark in the process of processing the request on the other host machine.
- controlling the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine includes: controlling the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine when the host machine does not include another virtualization acceleration device, or when the host machine includes another virtualization acceleration device and the other virtualization acceleration device is unavailable.
- the disclosed embodiment also provides another data processing method, which is applied to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager. As shown in FIG4 , the method includes:
- obtaining the current target access request provided by the kernel-mode virtualization component in the virtualization manager includes: reading the kernel-mode virtualization component's state information from shared memory between the kernel-mode virtualization component and the user-mode virtualization component; The current target access request is written; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- the method provided in the embodiment of the present disclosure further includes: upon successful processing of the current target access request, writing the processing result of the current target access request to the shared memory for provision to the kernel-mode virtualization component; and/or, upon backing up the current component state information to the target storage space, clearing the historical component state information stored in the target storage space.
- backing up the current component state information to the target storage space includes: when the target storage space is storage space on the host machine, sending the current component state information to the target storage space via the interconnect bus between the virtualization acceleration device and the host machine; and when the target storage space is storage space external to the host machine, sending the current component state information to the target storage space via the network interface card module of the virtualization acceleration device.
- each step in the method shown in Figures 3 and 4 of the embodiment of the present disclosure has been described in detail in the previous embodiment and will not be elaborated here.
- 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.
- the execution entity of steps 301 to 303 can be a device; for another example, the execution entity of steps 301 and 302 can be device A, and the execution entity of step 303 can be device B; and so on.
- 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.
- FIG5 is a schematic structural diagram of a data processing device provided by an exemplary embodiment of the present disclosure.
- the device corresponds to a kernel-mode virtualization component in a virtualization manager deployed on a host machine. As shown in FIG5 , the device includes: an interception module 51, a first processing module 52, and a replay module 53.
- the interception module 51 is configured to intercept a current target access request initiated by a target virtualization instance running on the host machine, where the host machine is equipped with a virtualization acceleration device, and the user-mode virtualization component in the virtualization manager is deployed on the virtualization acceleration device.
- the first processing module 52 is configured to back up the current target access request, add a "in-processing" flag to the current target access request, and provide the current target access request to the user-mode virtualization component deployed on the virtualization acceleration device for processing.
- the replay module 53 is configured to replay the current target access request based on historical component state information, the backup of the current target access request, and the "in-processing" flag if the current target access request is not successfully processed.
- the historical component state information is state information of the user-mode virtualization component that is backed up to the target storage space by the user-mode virtualization component when the user-mode virtualization component successfully processes the historical target access request.
- the target storage space is a storage space external to the virtualization acceleration device.
- the interception module is specifically configured to: during initialization, configure the target virtualization instance to be able to trap to the kernel-mode virtualization component when a target access request is initiated; and when the target virtualization instance traps to the kernel-mode virtualization component. In the case of a kernel-mode virtualization component, the current target access request initiated by the target virtualization instance is intercepted.
- the first processing module 52 is specifically configured to: determine the target virtual computing resource object responsible for processing the current target access request from at least one virtual computing resource object allocated to the target virtualization instance; add a processing flag to the target virtual computing resource object to indicate that a target access request is being processed.
- the first processing module 52 is specifically configured to: write the current target access request to shared memory between the kernel-mode virtualization component and the user-mode virtualization component, so that the user-mode virtualization component can read the current target access request from the shared memory; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- the first processing module is further configured to: read the processing result of the user-mode virtualization component on the current target access request from the shared memory, provide it to the target virtualization instance, and clear the processing flag and the backed-up current target access request.
- the interception module is specifically configured to: intercept a current access request initiated by a target virtualization instance running on a host machine; determine, based on a pre-maintained virtual resource object information mapping table, whether the target virtual resource object requested by the current target access request is virtualized by a user-mode virtualization component; and if so, treat the current access request as the current target access request.
- the replay module is specifically configured to: obtain historical component state information from the target storage space based on a processing flag if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available; create a user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device based on the historical component state information; and provide the backed-up current target access request to the user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device for replay processing.
- the replay module is specifically configured to control the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine, so as to replay the current target access request on the other host machine based on historical component state information, a backup of the current target access request, and a mark in processing.
- the replay module is specifically configured to control the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine if the host machine does not include another virtualization acceleration device, or if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is unavailable.
- FIG6 is a schematic diagram of the structure of another data processing device provided by an exemplary embodiment of the present disclosure.
- the device corresponds to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager.
- the device includes: an acquisition module 61 and a second processing module 62; the acquisition module 61 is configured to acquire a current target access request provided by a kernel-mode virtualization component in the virtualization manager, where the current target access request is initiated by a target virtualization instance running on a host machine where the kernel-mode virtualization component is located; the second processing module 62 is configured to process the current target access request and, if the current target access request is successfully processed, back up the current component state information to a target storage space for replay processing of subsequent target access requests; wherein the current component state information is state information of the user-mode virtualization component when the current target access request is successfully processed, and the target storage space is a storage space outside the virtualization acceleration device.
- the acquisition module 61 is specifically configured to: The current target access request written by the kernel-mode virtualization component is read from the shared memory between the components; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- the second processing module 62 is further configured to: upon successful processing of the current target access request, write the processing result of the current target access request to the shared memory for provision to the kernel-mode virtualization component; and/or, upon backing up the current component state information to the target storage space, clear the historical component state information stored in the target storage space.
- the second processing module 62 is specifically configured to: when the target storage space is storage space on the host machine, send the current component state information to the target storage space via the interconnect bus between the virtualization acceleration device and the host machine; when the target storage space is storage space external to the host machine, send the current component state information to the target storage space via the network card module of the virtualization acceleration device.
- the device includes a memory 74 and a processor 75.
- the memory 74 is used 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.
- the processor 75 is coupled to the memory 74 and is configured to execute a computer program in the memory 74, configured to: intercept a current target access request initiated by a target virtualization instance running on a host machine, where the host machine is equipped with a virtualization acceleration device and a user-mode virtualization component in a virtualization manager is deployed on the virtualization acceleration device; back up the current target access request, add a processing-in-progress mark to the current target access request, and provide the current target access request to the user-mode virtualization component deployed on the virtualization acceleration device for processing; and, if the current target access request is not successfully processed, replay the current target access request based on historical component state information, the backup of the current target access request, and the processing-in-progress mark; wherein the historical component state information is state information of the user-mode virtualization component that is backed up to a target storage space by the user-mode virtualization component when the historical target access request is successfully processed, and the target storage space is a storage space external to the virtualization acceleration device.
- the processor 75 when intercepting a current target access request initiated by a target virtualization instance, is specifically configured to: during initialization, configure the target virtualization instance to trap to the kernel-mode virtualization component when initiating a target access request; and intercept the current target access request initiated by the target virtualization instance when the target virtualization instance traps to the kernel-mode virtualization component.
- the processor 75 when adding a processing-in-progress flag to the current target access request, is specifically configured to: determine, from at least one virtual computing resource object allocated to the target virtualization instance, the target virtual computing resource object responsible for processing the current target access request; and add a processing-in-progress flag to the target virtual computing resource object to indicate that a target access request is being processed.
- the processor 75 when providing the current target access request to a user-mode virtualization component deployed on a virtualization acceleration device for processing, the processor 75 is specifically configured to: write the current target access request to a shared memory between the kernel-mode virtualization component and the user-mode virtualization component, so that the user-mode virtualization component can read the current target access request from the shared memory.
- Request; shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- processor 75 is further configured to: read the processing result of the user-mode virtualization component on the current target access request from the shared memory and provide it to the target virtualization instance; and clear the current target access request marked and backed up during processing.
- processor 75 when intercepting the current target access request initiated by the target virtualization instance running on the host machine, is specifically configured to: intercept the current access request initiated by the target virtualization instance running on the host machine; determine, based on a pre-maintained virtual resource object information mapping table, whether the target virtual resource object requested by the current target access request is virtualized by the user-mode virtualization component; and if the determination result is yes, treat the current access request as the current target access request.
- the processor 75 when replaying the current target access request based on historical component state information, a backup of the current target access request, and a mark during processing, is specifically configured to: if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, obtain the historical component state information from the target storage space based on the mark during processing; create a user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device based on the historical component state information; and provide the backed-up current target access request to the user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device for replay processing.
- the processor 75 when replaying the current target access request based on historical component state information, a backup of the current target access request, and a mark during processing, is specifically configured to: control the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine, so that the current target access request can be replayed on the other host machine based on the historical component state information, a backup of the current target access request, and a mark during processing.
- processor 75 when controlling the target virtualized instance to suspend operation to trigger migration of the target virtualized instance to another host machine, processor 75 is specifically configured to: if the host machine does not include another virtualized acceleration device, or if the host machine includes another virtualized acceleration device and the other virtualized acceleration device is unavailable, control the target virtualized instance to suspend operation to trigger migration of the target virtualized instance to another host machine.
- 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.
- the physical machine of this embodiment can be implemented as a terminal device such as a desktop computer, a laptop computer, a smart phone, or an IOT device, or as a server-side device such as a conventional server, a cloud server, or a server array.
- the physical machine of this embodiment is implemented as a terminal device such as a desktop computer, a laptop computer, a smart phone, etc., it may include the components in the dotted box in Figure 7; if the physical machine of this embodiment is implemented as a server-side device such as a conventional server, a cloud server, or a server array, it may not include the components in the dotted box in Figure 7.
- the disclosed embodiment also provides a data processing device, which corresponds to the user-mode virtualization component deployed on the virtualization acceleration device in the virtualization manager.
- the implementation structure of the data processing device is the same as or similar to the implementation structure 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 data processing device provided in this embodiment is the same as the data processing device provided in Figure 7.
- the physical machines in the embodiments shown in FIG7 primarily differ in the functions implemented by the processors executing computer programs stored in memory.
- the processor executes the computer program stored in memory to: obtain a current target access request from a kernel-mode virtualization component in the virtualization manager.
- the current target access request is initiated by a target virtualization instance running on the host machine where the kernel-mode virtualization component resides; process the current target access request, and upon successful processing, back up the current component state information to a target storage space for replay processing of subsequent target access requests.
- the current component state information refers to the state information of the user-mode virtualization component upon successfully processing the current target access request
- the target storage space refers to storage space external to the virtualization acceleration device.
- the processor when the processor obtains a current target access request provided by the kernel-mode virtualization component in the virtualization manager, the processor is specifically configured to: read the current target access request written by the kernel-mode virtualization component from a shared memory between the kernel-mode virtualization component and the user-mode virtualization component; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device.
- the processor is further configured to: if the current target access request is successfully processed, write the processing result of the current target access request to the shared memory for provision to the kernel-mode virtualization component; and/or, if the current component state information is backed up to a target storage space, clear the historical component state information stored in the target storage space.
- the processor when backing up the current component state information to the target storage space, is specifically configured to: if the target storage space is storage space on the host machine, send the current component state information to the target storage space via an interconnect bus between the virtualization acceleration device and the host machine; if the target storage space is storage space external to the host machine, send the current component state information to the target storage space via a network interface card module of the virtualization acceleration device.
- the embodiments of the present disclosure also provide a computer-readable storage medium storing a computer program.
- the computer program When the computer program is executed, it can implement the steps that can be performed by the data processing device in the method embodiments shown in Figures 3 and 4 above.
- the embodiments of the present disclosure also provide a computer program product, including a computer program/instruction.
- the computer program/instruction When the computer program/instruction is executed by a processor, it causes the processor to implement the steps in the method shown in Figures 3 and 4.
- the above-mentioned 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), electrically erasable programmable read-only memory (EEPM), or a combination thereof.
- SRAM static random access memory
- EEPM electrically erasable programmable read-only memory
- the 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.
- the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel.
- the communication component also includes a near-field communication (NFC) module.
- NFC near-field communication
- a Near Field Communication (NFC) module facilitates short-range communication.
- 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.
- RFID Radio Frequency Identification
- IrDA Infrared Data Association
- UWB Ultra Wide Band
- BT Bluetooth
- the display includes a screen, which may include a Liquid Crystal Display (LCD) and a touch panel (TP) . If the screen includes a touch panel, it can be implemented as a touch screen 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 detect not only the boundaries of a touch or slide action, but also the duration and pressure associated with the touch or slide action.
- the power supply assembly 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 aforementioned audio component can be configured to output and/or input audio signals.
- the audio component includes a microphone (MIC).
- MIC microphone
- the audio component When the device containing the audio component is in an operating mode, such as call mode, recording mode, or voice recognition mode, the microphone is configured to receive external audio signals.
- the received audio signals may be further stored in a memory or transmitted via a communication component.
- the audio component also includes a speaker for outputting audio signals.
- 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 entirely hardware embodiments, entirely software embodiments, or embodiments 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.
- CD-ROM compact disc read-only memory
- optical storage etc.
- 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, when executed by the processor of the computer or other programmable data processing device, produce a device 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 can also be stored in a computer-readable memory capable of directing the computer or other programmable data processing device to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including an instruction device that implements 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 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 the block diagrams.
- 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 computer-readable media, random access memory (RAM), and/or non-volatile memory, such as read-only memory (ROM) or flash RAM .
- RAM random access memory
- ROM read-only memory
- Memory is an example of computer-readable media.
- Computer-readable media including both permanent and non-permanent, removable and non-removable media, 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-transmission media that can be used to store information that can be accessed by a computing device.
- PRAM phase-change random access memory
- SRAM static random access memory
- DRAM dynamic random access memory
- RAM random access memory
- ROM read-only memory
- EEPROM electrically erasable programmable read-only memory
- 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-transmission media that can
- a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host machine.
- the kernel-mode virtualization component intercepts the target access request, backs it up, and adds a "in-processing" flag.
- the kernel-mode virtualization component cooperates with component state information previously backed up external to the virtualization acceleration device.
- the kernel-mode virtualization component replays the current target access request based on the previously backed-up historical component state information, the target access request backup, and the "in-processing" flag. This allows for timely and accurate processing of access requests, reducing the probability of virtualized instance anomalies or downtime.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例提供一种计算机设备、物理机、数据处理方法、存储介质及程序产品。在本公开实施例中,用户态虚拟化组件部署在虚拟化加速设备上,内核态虚拟化组件部署在宿主机上,针对需要用户态虚拟化组件进行处理的当前目标访问请求,经内核态虚拟化组件拦截后对目标访问请求进行备份和添加处理中标记,并配合用户态虚拟化组件在之前备份至虚拟化加速设备外部的组件状态信息,在虚拟化加速设备未能成功处理当前目标访问请求的情况下,基于之前备份的历史组件状态信息、目标访问请求的备份和处理中标记,对当前目标访问请求进行重放处理,从而及时且正确的处理访问请求,减少虚拟化实例异常或宕机的概率。
Description
计算机设备、 物理机、 数据处理方法、 存储介质及程序产品 技 术领域 本公开涉及云计算技术领域, 尤其涉及一种计算机设备、 物理机、 数据处理方法、 存储 介质及程序产品。 背景技术 虚拟化技 术是云计算的关键技术, 为了实现虚拟化, 宿主机上部署虚拟化管理器 (Virtual Machine Monitor, VMM)。 VMM包括各种虚拟化组件, 这些虚拟化组件相互配合, 完成处 理器、内存、输入输出 (Input Output, 10)设备等资源的虚拟化, 以及虚拟机 (Virtual Machine, VM) 的创建和管理。 随着云计算技术的发展, 为了提高虚拟化效率, 为宿主机引入了虚拟化专用卡, 也被称 作微服务卡, 通过将部分虚拟化功能运行在微服务卡上, 可以减轻宿主机的负载, 有利于提 jS]虚拟化效率。 但是 , 对宿主机来说, 微服务卡相当于一个 10设备, 如果微服务卡无法正确或及时处理 相关虚拟化操作, 可能导致 VM异常或宕机。 发明内容 本公开的多个方面提供一种计算机设备、 物理机、 数据处理方法、 存储介质及程序产品, 用以减少因微服务卡无法正确或及时处理相关虚拟化操作导致的虚拟化实例异常或宕机的概 率。 本公开实施例提供一种计算机设备, 包括: 宿主机和虚拟化加速设备; 宿主机上部署有 虚拟化管理器中的内核态虚拟化组件, 虚拟化加速设备上部署有虚拟化管理器中的用户态虚 拟化组件; 内核态虚拟化组件和用户态虚拟化组件配合在宿主机上创建和管理目标虚拟化实 例; 内核态虚拟化组件, 用于拦截目标虚拟化实例发起的当前目标访问请求, 对当前目标访 问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给用户态虚拟化组件进行处 理; 以及在当前目标访问请求未被成功处理的情况下, 基于用户态虚拟化组件备份至目标存 储空间中的历史组件状态信息、 对当前目标访问请求的备份和处理中标记, 对当前目标访问 请求进行重放处理; 用户态虚拟化组件, 用于对当前目标访问请求进行处理, 若成功处理当 前 目标访问请求, 则备份当前组件状态信息至目标存储空间中, 以供对后续目标访问请求进 行重放处理; 目标存储空间是虚拟化加速设备外部的存储空间。 本公开实施例还提供一种数据处理方法, 应用于宿主机上部署的虚拟化管理器中的内核 态虚拟化组件, 该方法包括: 拦截运行于宿主机上的目标虚拟化实例发起的当前目标访问请 求, 宿主机搭载有虚拟化加速设备, 且虚拟化管理器中的用户态虚拟化组件部署在虚拟化加
速设备上; 对当前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给 部署在虚拟化加速设备上的用户态虚拟化组件进行处理; 在当前目标访问请求未被成功处理 的情况下, 基于历史组件状态信息、 对当前目标访问请求的备份和处理中标记对当前目标访 问请求进行重放处理; 其中, 历史组件状态信息是用户态虚拟化组件在成功处理历史目标访 问请求时备份至 目标存储空间中的用户态虚拟化组件的状态信息, 目标存储空间是虚拟化加 速设备外部的存储空间。 本公开 实施例还提供一种数据处理方法, 应用于虚拟化管理器中部署在虚拟化加速设备 上的用户态虚拟化组件, 该方法包括: 获取虚拟化管理器中内核态虚拟化组件提供的当前目 标访问请求, 当前目标访问请求是运行在内核态虚拟化组件所在宿主机上的目标虚拟化实例 发起的; 对当前目标访问请求进行处理, 并在成功处理当前目标访问请求的情况下, 备份当 前组件状态信息至 目标存储空间中, 以供对后续目标访问请求进行重放处理; 其中, 当前组 件状态信息是用户态虚拟化组件在成功处理当前 目标访问请求时的状态信息, 目标存储空间 是虚拟化加速设备外部的存储空间。 本公开 实施例还提供一种物理机, 包括: 存储器和处理器; 存储器, 用于存储计算机程 序; 处理器, 与存储器耦合, 用于执行计算机程序, 以实现本公开实施例提供的数据方法中 的各步骤。 本公开 实施例还提供一种存储有计算机程序的计算机可读存储介质, 当计算机程序被处 理器执行时, 致使处理器实现本公开实施例提供的数据处理方法中的各步骤。 本公开实施例还提供一种计算机程序产品 , 包括计算机程序 /指令, 当计算机程序 /指令被 处理器执行时, 致使处理器实现本公开实施例提供的数据处理方法中的各步骤。 在 本公开实施例中, 用户态虚拟化组件部署在虚拟化加速设备上, 内核态虚拟化组件部 署在宿主机上, 针对需要用户态虚拟化组件进行处理的当前目标访问请求, 经内核态虚拟化 组件拦截后对 目标访问请求进行备份和添加处理中标记, 并配合用户态虚拟化组件在之前备 份至虚拟化加速设备外部的组件状态信息, 在虚拟化加速设备未能成功处理当前目标访问请 求的情况下, 基于之前备份的历史组件状态信息、 目标访问请求的备份和处理中标记, 对当 前目标访问请求进行重放处理, 从而可以及时且正确的处理访问请求, 减少导致虚拟化实例 异常或宕机的概率。 附图说明 此处所说 明的附图用来提供对本公开的进一步理解, 构成本公开的一部分, 本公开的示 意性实施例及其说明用于解释本公开, 并不构成对本公开的不当限定。 在附图中: 图 la为本公开示例性实施例提供的一种宿主机的结构示意图; 图 lb为本公开示例性实施例提供的一种计算机设备的结构示意图; 图 2a 为本公开示例性实施例提供的一种内核态虚拟化组件与用户态虚拟化组件的交互 示意图; 图 2b为本公开示例性实施例提供的一种数据处理方法的流程示意图;
图 3为本公开示例性实施例提供的另一种数据处理方法的流程示意图; 图 4为本公开示例性实施例提供的又一种数据处理方法的流程示意图; 图 5为本公开示例性实施例提供的一种数据处理装置的结构示意图; 图 6为本公开示例性实施例提供的另一种数据处理装置的结构示意图; 图 7为本公开示例性实施例提供的另一种数据处理设备的结构示意图。 具体实施 方式 为使本公开的目的、 技术方案和优点更加清楚, 下面将结合本公开具体实施例及相应的 附图对本公开技术方案进行清楚、 完整地描述。 显然, 所描述的实施例仅是本公开一部分实 施例, 而不是全部的实施例。 基于本公开中的实施例, 本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例, 都属于本公开保护的范围。 需要说明的是, 本公开所涉及的用户信息 (包括但不限于用户设备信息、 用户个人信息 等) 和数据 (包括但不限于用于分析的数据、 存储的数据、 展示的数据等), 均为经用户授权 或者经过各方充分授权的信息和数据, 并且相关数据的收集、 使用和处理需要遵守相关国家 和地区的相关法律法规和标准, 并提供有相应的操作入口, 供用户选择授权或者拒绝。 针对上述技术 问题, 在本公开实施例中, 用户态虚拟化组件部署在虚拟化加速设备上, 内核态虚拟化组件部署在宿主机上, 针对需要用户态虚拟化组件进行处理的当前目标访问请 求, 经内核态虚拟化组件拦截后对目标访问请求进行备份和添加处理中标记, 并配合用户态 虚拟化组件在之前备份至虚拟化加速设备外部的组件状态信息, 在虚拟化加速设备未能成功 处理当前目标访问请求的情况下, 基于之前备份的历史组件状态信息、 目标访问请求的备份 和处理中标记, 对当前目标访问请求进行重放处理, 从而可以及时且正确的处理访问请求, 减少导致虚拟化实例异常或宕机的概率。 以下结合附图, 对本公开实施例提供的一种解决方案进行详细说明。 图 la为本公开示例性实施例提供的一种宿主机的结构示意图, 如图 la所示, 该宿主机 10包括: 硬件资源 101 , 硬件资源上部署有虚拟化管理器 103 o 在本实施例 中, 硬件资源 101至少包括: 物理计算资源对象。 物理计算资源对象可以是 中央处理器 (Central Processing Unit, CPU)、 图形处理器 (Graphics Processing Unit, GPU)、 数据处理器 (Data Processing Unit, DPU)、 张量处理器 (Tensor Processing Unit, TPU) 以及 专用集成电路 (Application Specific Integrated Circuit, ASIC) 等各种具有计算能力的物理资 源对象。 除此之外 , 宿主机上的硬件资源 101还可以包括: 存储器、 通信组件、 显示器、 电源组 件以及音频组件等其它组件, 在此暂不详述。 其中, 存储器可以提供宿主机的内存空间以及 持久化存储空间。 其中, 内存空间的存储介质包含但不限于: 随机存取存储器 (RAM) , 持 久化存储空间的存储介质包含但不限于: 固态硬盘 (SSD) 等。 进一步, 在硬件资源 101 之 上还运行有宿主机操作系统 (Operating System, OS) 102。 在本实施例 中, 虚拟化管理器 103是运行在宿主机的内核态的软件, 相对宿主机操作系
统 102, 可以认为虚拟化管理器 103包含宿主机操作系统 102的软件, 基于此, 也可以将虚 拟化管理看作是运行在宿主机操作系统 102上的软件, 对此不做限定。 在图 la中, 以虚拟化 管理器 103是运行在宿主机操作系统 102中的软件为例进行图示。 虚拟化管理器 103用于在 宿主机上创建和管理虚拟化实例。 凡是能够管理虚拟化实例的虚拟化管理器均适用于本公开 实施例。 例如, 虚拟化管理器可以是 VMM, 也可以称为 Hypervisoro Hypervisor可以让多个 操作系统和应用共享一套基础物理资源, 因此, 也可以看作是虚拟环境中的 “元 ”操作系统, 是实现虚拟化技 术的核心。 其中, 虚拟化实例可以包含但不限于: 云主机、 弹性计算服务 (Elastic Compute Service, ECS)、 虚拟机 (VM) 或容器等。 在 本实施例中, 虚拟化管理器 103 包括: 内核态虚拟化组件 103a和用户态虚拟化组件 103b, 内核态虚拟化组件 103a是运行在宿主机操作系统的内核空间中的组件, 用户态虚拟化 组件 103b是运行在宿主机操作系统的用户空间中的组件。 例如, 在嵌入式 (Linux) 操作系 统中, 用户态虚拟化组件 103b可以是快速模拟器 (Quick EMUlator, Qemu) , 内核态虚拟化 组件 103a可以是基于内核的虚拟机 (Kernel-based Virtual Machine, KVM)。 其 中, 用户态虚拟化组件 103b和内核态虚拟化组件 103a实现虚拟化方式不作限定。 例 如, 用户态虚拟化组件 103b负责虚拟化 10设备, 内核态虚拟化组件 103a负责虚拟化出虚拟 计算资源对象和虚拟内存对象。 又例如, 用户态虚拟化组件 103b负责虚拟化一部分 10设备, 内核态虚拟化组件 103a负责虚拟化另一部分 10设备、虚拟计算资源对象以及内存资源对象。 例如, 用户态虚拟化组件 103b可以负责虚拟化传输数据量较小, 频率低的部分 10设备, 包 含但不限于:实时时钟 (Real Time Clock, RTC)、高级配置和电源管理 (Advanced Configuration and Power management Interface, ACPI)设备、 PCI总线设备、高技术配置 (Advanced Technology Atachment, ATA) 设备、 以及鼠标等。 内核态虚拟化组件 103a可以负责虚拟化传输数据量 较大, 频率较高的另一部分 10设备, 如, 相机或显示器等。 可选地, 用户态虚拟化组件 103b可以实现的功能还包括: 虚拟化实例的配置管理、 生命 周期管理以及一些特定的虚拟机技术 (如, 动态迁移) 等; 内核态虚拟化组件 103a可以实现 的功能还包括: 创建虚拟化实例, 虚拟内存的分配, 虚拟寄存器的读写以及虚拟计算资源对 象的运行等。 无论是上述哪种实现虚拟化的方式, 用户态虚拟化组件 103b和内核态虚拟化组件 103a 可以相互配合在宿主机上创建和管理虚拟化实例。例如, 内核态虚拟化组件 103a创建虚拟化 实例, 并在虚拟化实例初始化过程中, 为虚拟化实例创建承载于物理计算资源对象之上的虚 拟计算资源对象, 并为虚拟化实例分配虚拟内存资源对象; 用户态虚拟化组件 103b为虚拟化 实例模拟虚拟 10设备; 内核态虚拟化组件 103a调度虚拟计算资源对象运行该虚拟化实例。 内核态虚拟化组件 103a在虚拟化实例运行过程中, 截获虚拟化实例的访问请求 (10请求), 将访问请求提供给用户态虚拟化组件 103b ; 通过用户态虚拟化组件 103b模拟的虚拟 10设备 处理该访问请求, 并将处理结果通过内核态虚拟化组件 103a返回给虚拟化实例。 其 中, 为虚拟化实例分配的虚拟计算资源对象的数量可以是一个, 也可以是多个, 例如, 4个 、 8个或 16个等。 根据物理计算资源对象的不同, 承载于物理计算资源对象之上的虚拟
计算资源对象也会有所不同。若物理计算资源对象是 VPU、 GPU、 DPU、 TPU、 CIPU或 ASIC, 则相应地虚拟计算资源对象可以是虚拟 vCPU、虚拟 (virtual GPU, vGPU)、虚拟 (virtual DPU? vDPU)、虚拟 (virtual TPU? vTPU)、虚拟 (virtual CIPU? vCIPU)或虚拟 (virtual ASIC, vASIC) 等。 随着云计算技术的发展, 为了提高虚拟化效率, 为宿主机 10引入了虚拟化加速设备 20, 虚拟化加速设备 20是一款可以实现虚拟化技术的设备, 且可以帮助与其互联的宿主机 10实 现至少部分虚拟化功能。 即宿主机 10 可以将部分或全部虚拟化功能卸载到虚拟化加速设备 20上, 从而获得性能上的加速。 本实施例并不限定虚拟化加速设备 20的实现形态, 其实现形态可以包含但不限于: 专用 集成电路 ( Application Specific Integrated Circuit, ASIC)、系统级芯片 (System on Chip, SOC)、 现场可编程逻辑 门阵列 (Field Programmable Gate Array , FPGA) 或复杂可编程逻辑器件 (Complex Programmable logic device, CPLD) 等。 另外, 该虚拟化加速设备 20具有自己的 硬件资源 201 , 例如, 计算资源、 存储资源和网络资源等。 其中, 虚拟化加速设备 20的计算 资源包含但不限于: CPU、 GPU、 TPU等, 对此不做限定。 虚拟化加速设备 20的存储资源可 以包含但不限于:内存、硬盘等本地存储资源,可以包括云盘、网络附属存储 Network Attached Storage, NAS) 等云存储资源。 网络资源可以包含但不限于: 网卡等通信组件。 在 本实施例中, 虚拟化加速设备 20采用软硬一体化设计, 不仅包括上述硬件资源 201 , 还包括: 运行在硬件资源上的软件资源, 如, 操作系统 202和相关硬件驱动等。 其中,虚拟化加速设备 20可以通过互联总线与宿主机互联,互联总线可以包括但不限于 : 外设部件互连标准 (Peripheral Component Interconnect, PCI) 总线和外设部件互联扩展总线 标准 (Peripheral Component Interconnect Express , PCIE) 总线等。 在 宿主机 10与虚拟化加速设备 20互联的情况下, 可以保证两者之间信息传输的可靠性 和高效性,为将宿主机 10上部分或全部虚拟化功能卸载到虚拟化加速设备 20上提供了条件。 在此基础上, 借助于虚拟化加速设备 20的软硬件资源, 可以将原本在宿主机上实现的部分虚 拟化功能卸载到虚拟化加速设备 20上, 可以减轻宿主机的负载, 有利于提高虚拟化效率。 如 图 lb所示, 将原本在宿主机 10上的用户态虚拟化组件 103b运行到虚拟化加速设备 20上, 在虚拟化加速设备 20上部署用户态虚拟化组件 103b, 用户态虚拟化组件 103b在虚拟 化加速设备 20上实现虚拟化功能, 例如, 用户态虚拟化组件 103b在虚拟化加速设备 20上实 现 10设备的虚拟化。 但是, 对宿主机 10来说, 虚拟化加速设备 20相当于一个 10设备, 若 虚拟化加速设备 20无法正确或及时处理相关虚拟化操作, 可能导致宿主机 10上的虚拟化实 例异常或宕机。其中, 虚拟化加速设备 20无法正确或及时处理相关虚拟化操作的原因并不限 定。 例如, 可以是虚拟化加速设备 20发生异常或故障, 虚拟化加速设备 20发生异常的原因 包含但限于: 处理器的不可纠正错误 (UCE)、 系统内核错误 (Linux Kernel panic) 等。 又例 如, 可以是虚拟化加速设备 20与宿主机 10之间的互联总线出现异常。 基 于此, 为了提高虚拟化的稳定性, 提供一种针对虚拟化加速设备 20的容错机制, 由内 核态虚拟化组件 103a对访问请求备份并添加指示处理中的标记 (简称为处理中标记), 用户
态虚拟化组件 103b对访问请求进行处理后, 备份用户态虚拟化组件 103b的组件状态信息。 在虚拟化加速设备 20未成功处理访问请求的情况下, 内核态虚拟化组件 103a基于用户态虚 拟化组件 103b的历史组件状态信息、对访问请求的备份以及处理中标记, 对访问请求进行重 放处理, 及时且正确处理访问请求, 减少虚拟化实例异常或宕机的概率。 在 本实施例中, 可以在宿主机 10的操作系统上创建一个或多个虚拟化实例, 一个或多个 虚拟化实例共享内核态虚拟化组件 103a, 每个虚拟化实例对应一个用户态虚拟化组件 103bo 为了便于区分和描述, 下面以目标虚拟化实例为例, 对内核态虚拟化组件 103a与目标虚拟化 实例对应的用户态虚拟化组件 103b进行交互的过程进行说明。 在 本实施例中, 目标虚拟化实例可以发起各种访问请求, 其中, 为了便于区分和描述, 将需要用户态虚拟化组件 103b参与处理的特定访问请求称为目标访问请求。 目标访问请求具 体根据用户态虚拟化组件 103b负责的虚拟化功能而定。 若用户态虚拟化组件负责 10设备的 虚拟化处理, 则目标访问请求可以是端口输入 /输出 (Port Input/Output, PIO) 请求或内存映 射输入 /输出 (Memory-mapped IO, MMI0) 请求。 进一 步, PIO请求可以包含但不限于: 输入或输出、 端口号 (模拟虚拟的 10设备)、 10 次数、 10值大小、 10值。 其中, 端口号是能够唯一标识模拟的虚拟化 10设备的标识信息; 10次数是一次 10操作执行读 /写的次数, 例如, 一次 10操作执行 3次读 /写; 10值大小是本 次 10操作对应的数据量, 例如, 10值大小为: 读写次数与每次读写数据量的乘积; 10值是 读 /写对应的地址信息。 MMI0请求可以包含但不限于: 读 /写操作、 地址信息、 长度信息、 10 值, 其中, 地址信息是指读 /写操作对应的地址信息, 长度信息是指读 /写的数据长度, 10 值 是本次 10操作对应的数据量。 在 本实施例中, 内核态虚拟化组件 103a可以拦截目标虚拟化实例发起的当前目标访问请 求, 对当前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给用户态 虚拟化组件 103b进行处理。 在图 2a中包括宿主机 10, 宿主机中包括目标虚拟化实例, 和内 核态虚拟化组件 103a, 内核态虚拟化组件中可以进行当前目标访问请求; 虚拟化加速设备 20 中包括共享内存和用户态虚拟化组件 103b ; 虚拟化加速设备未成功处理当前目标访问请求的 情况下, 目标存储空间可以执行重放处理, 步骤 al拦截目标虚拟化实例发起的当前目标访问 请求, 也即拦截当前目标访问请求, 步骤 a2执行添加处理中标记, 步骤 a3对当前目标访问 请求进行备份, 即备份当前目标访问请求, 步骤 a4和步骤 a5将当前目标访问请求提供给用 户态虚拟化组件 103b, 步骤 a4、 当前目标访问请求, 步骤 a5、 当前目标访问请求, 步骤 a6、 处理当前目标访问请求, 步骤 a7、 成功处理的情况下备份当前组件状态信息, 步骤 a8、 执行 结果, 步骤 a9、 执行结果, 步骤 alO、 清除标记, 清除备份, 步骤 all , 执行结果, 步骤 bl、 当前目标访问请求的备份, 步骤 b2、 处理中标记, 步骤 b3、 历史组件状态信息。 在图 2b中, 步骤 al至步骤 a4分别对应于图 2b中的步骤 S01至步骤 S04, 其中, S01 , 内核态虚拟化组 件拦截当前目标访问请求 (如, PI0请求或 MMI0请求); S02,备份当前目标访问请求; S03 , 添加处理中标记; S04, 将当前目标访问请求提供给虚拟化加速设备中的用户态虚拟化组件。 其 中, 对当前目标访问请求进行备份的目的是: 在当前目标访问请求未被虚拟化加速设
备上的用户态虚拟化组件 103b处理的情况下,可以基于备份的当前目标访问请求进行后续重 放处理, 减少虚拟化实例异常或宕机的概率, 提高虚拟化实例的稳定性。 添加 “处理中 ”标记 的目的是: 标识当前目标访问请求正在 “处理中”。 若当前目标访问请求被用户态虚拟化组件 103b处理完成, 则可以清除该当前目标访问请的 “处理中标记”。若在设定时间内该当前目标 访问请的 “处理中标记 ”未被清除, 则表示具有处理中标记的当前目标访问请求未被处理完 成, 需要针对目标访问请求进行重放处理, 减少虚拟化实例的故障或宕机的概率。 需要说明 的是, 重放处理是指对当前目标访问请求进行重新处理的过程。 详细介绍可以参见后续实施 例, 在此暂不赘述。 其中, 设定时间可以是 10ms、 500ms或 Is等。 其 中, 对当前目标访问请求进行备份的位置不作限定。 例如, 可以将当前目标访问请求 备份至宿主机的内存空间或持久化存储空间中; 也可以将当前目标访问请求备份至宿主机外 部的存储系统中, 例如, 云盘或 NAS等云存储资源。需要说明的是, 为了保障数据的安全性, 外部的存储系统通常不位于虚拟化加速设备 20上。 其 中, 添加处理中标记的方式也不限定。 例如, 内核态虚拟化组件 103a维护目标访问请 求的标识信息和标记位的对应关系, 标记位默认为 0, 添加处理中标记可以是将标记位由 0 置为 l o 又例如, 可以针对目标访问请求添加处理中标记, 该处理中标记可以是任意数字、 字母和符号的单独或组合, 例如, 处理中标记为 12、 1_1或 1@1等。 在本实施例中, 对于内 核态虚拟化组件 103a对当前目标访问请求进行备份和添加处理中标记的先后顺序不作限定。 例如, 可以是先执行对当前目标访问请求进行备份的操作, 再执行添加处理中标记的操作, 或者先执行添加处理中标记的操作, 再执行对当前目标访问请求进行备份的操作, 或者同时 执行对当前目标访问请求进行备份的操作以及添加处理中标记的操作。 在 本实施例中, 对当前目标访问请求进行备份以及添加处理中标记的时机并不限定。 例 如, 在将当前目标访问请求提供给用户态虚拟化组件 103b之前, 对当前目标访问请求进行备 份以及添加处理中标记。 进一步, 尽可能早的对当前目标访问请求进行备份以及添加处理中 标记, 例如, 内核态虚拟化组件 103a捕获目标虚拟化实例发起的当前目标访问请求之后, 立 即执行 “对当前目标访问请求进行备份以及添加处理中标记 ” 的操作。 在本实施例 中, 内核态虚拟化组件 103a可以通过宿主机和虚拟化加速设备之间的互联总 线, 将当前目标访问请求提供给虚拟化加速设备 20上的用户态虚拟化组件 103b。 关于互联 总线的介绍可参见前述, 在此不再赘述。 在本实施例 中, S05,判断虚拟化加速设备是否成功处理当前目标访问请求, 当成功处理, 用户态虚拟化组件 103b可以对当前目标访问请求进行处理, 如图 2a的步骤 a6和图 2b中的 步骤 S06, 用户态虚拟化组件生成当前目标访问请求的处理结果。 若成功处理当前目标访问 请求, 则备份当前组件状态信息至虚拟化加速设备 20外部的目标存储空间中, 以供对后续目 标访问请求进行重放处理, 如图 2a中的步骤 a7和图 2b中的步骤 S07, 用户态虚拟化组件备 份组件状态信息。 其 中, 用户态虚拟化组件 103b可以对当前目标访问请求进行处理, 具体可以是用户态虚 拟化组件 103b通过虚拟化技术模拟的 10设备对当前目标访问请求进行处理。 其中, 当前组
件状态信息是指用户态虚拟化组件 103b 当前的状态信息, 例如, 可以是用户态虚拟化组件 103b上模拟的 10设备对当前目标访问请求进行处理后, 用户态虚拟化组件 103b上模拟的各 10 设备的状态信息。 其中, 虚拟化加速设备 20外部的目标存储空间可以是宿主机上的存储 空间, 例如, 宿主机的持久化存储空间或者内存空间; 或者, 虚拟化加速设备 20外部的目标 存储空间可以是宿主机外部的云盘、 NAS等云存储资源。 需要说明的是, 内核态虚拟化组件 103a上存储有目标存储空间的访问地址, 并且具有目标存储空间的访问权限。 在 本实施例中, 在虚拟化加速设备 20未成功处理当前目标访问请求的情况下, 虚拟化加 速设备 20外部的目标存储空间中存储有备份的历史组件状态信息。该历史组件状态信息是在 虚拟化加速设备 20处于正常状态的情况下, 用户态虚拟化组件 103b在成功处理历史目标访 问请求的情况下备份至目标存储空间中的。 其 中, 相对于当前目标访问请求, 历史目标访问请求可以是前一次目标访问请求, 也可 以是前两次目标访问请求, 对此不做限定。 可选地, 历史目标访问请求为上一目标访问请求, 相应地,历史组件状态信息为用户态虚拟化组件 103b在成功处理上一目标访问请求时的组件 状态信息;用户态虚拟化组件 103b还可以在将当前组件状态信息备份至目标存储空间中的情 况下, 将历史组件状态信息从目标存储空间中清除。 需要说明的是, 在虚拟化加速设备成功处理当前目标访问请求的情况下, 说明虚拟化加 速设备 20的状态是正常的, 因此可以将虚拟化加速设备 20的当前组件状态信息备份至目标 存储空间中。 将当前组件状态信息备份至目标存储空间的备份时间不作限定。 例如, 可以是 成功处理当前 目标访问请求后立即备份, 或者可以是成功处理当前目标访问请求后间隔一段 时间进行备份, 间隔时间可以是 20ms、 300ms或 500ms等。 如 图 2a的步骤 bl至步骤 b3和图 2b中的步骤 S11 , 基于历史组件状态信息、 当前目标 访问请求的备份和处理中标记, 进行重放处理, 在虚拟化加速设备 20未能成功处理目标访问 请求 (如, 虚拟化加速设备 20发生异常或故障) 的情况下, 为了保证虚拟化实例的稳定性, 内核态虚拟化组件 103a可以基于虚拟化加速设备 20外部的目标存储空间中的历史组件状态 信息、 对当前目标访问请求的备份和处理中标记, 对当前目标访问请求进行重放处理, 从而 及时且正确处理访问请求, 减少虚拟化实例异常或宕机的概率。 在 本公开实施例中, 用户态虚拟化组件部署在虚拟化加速设备上, 内核态虚拟化组件部 署在宿主机上, 针对需要用户态虚拟化组件进行处理的当前目标访问请求, 经内核态虚拟化 组件拦截后对 目标访问请求进行备份和添加处理中标记, 并配合用户态虚拟化组件在之前备 份至虚拟化加速设备外部的组件状态信息, 在虚拟化加速设备未能成功处理当前目标访问请 求的情况下, 基于之前备份的历史组件状态信息、 目标访问请求的备份和处理中标记, 对当 前 目标访问请求进行重放处理, 从而可以及时且正确的处理访问请求, 减少导致虚拟化实例 异常或宕机的概率。 在一 可选实施例中, 宿主机的操作系统中包括第一信息监测模块, 虚拟化加速设备 20上 部署有第二信息监测模块。 第二信息监测模块定期向第一信息监测模块上报健康状态信息, 例如, 每隔 1ms、 50ms或 1 min上报健康状态信息, 该健康状态信息表示虚拟化加速设备 20
可以成功处理目标访问请求 (如, 虚拟化加速设备 20未出现故障或异常)。 若第一信息监测 模块在设定时长内未接收到第二信息监测模块上报的健康状态信息, 则第一信息监测模块可 以确定虚拟化加速设备 20不能成功处理目标访问请求 (如, 虚拟化加速设备 20出现故障或 异常), 第一信息监测模块向内核态虚拟化组件上报虚拟化加速设备 20不能成功处理目标访 问请求 (如, 虚拟化加速设备 20出现故障或异常) 的通知信息。 其中, 设定时长为 50ms、 500ms或 2min等。 相应地 ,内核态虚拟化组件 103a接收该通知信息,获取具有处理中标记的目标访问请求, 针对具有处理中标记的 目标访问请求, 根据历史组件状态信息和该目标访问请求的备份, 对 该具有处理中标记的目标访问请求进行重放处理。 在一 可选实施例中, 内核态虚拟化组件 103a在对虚拟化实例进行初始化过程中, 除了分 配虚拟计算资源对象和内存资源对象之外, 还可以配置指示目标虚拟化实例在发起目标访问 请求时陷出到内核态虚拟化组件 103a的能力。例如, 预先设置目标虚拟化实例陷入到内核态 虚拟化组件 103a的条件, 该条件包含但不限于: 目标虚拟化实例发起目标访问请求, 一旦条 件满足, 则触发目标虚拟化实例陷入到内核态虚拟化组件, 例如, 在虚拟化实例实现为 VM 的情况下, VM通过虚拟机退出 (VM-Exit) 指令陷入到内核态虚拟化组件。 在触发目标虚拟 化实例陷入到内核态虚拟化组件的情况下, 内核态虚拟化组件 103a截获目标虚拟化实例发起 的当前 目标访问请求。 例如, 目标虚拟化实例陷入到内核态虚拟化组件的情况下, 将虚拟化 实例目标访问请求写入虚拟化控制结构体 (Virtual Machine Control System, VMCS) 结构中, 内核态虚拟化组件 103a从 VMCS结构中获取当前目标访问请求。 在一 可选实施例中, 内核态虚拟化组件 103a对当前目标访问请求添加处理中标记的实施 方式不做限定。例如, 目标虚拟化实例从虚拟计算资源对象的粒度对目标访问请求进行处理, 例如, 若目标访问请求为 PIO请求, 不同 PIO请求由不同虚拟计算资源对象进行处理, 因此, 可以从虚拟计算资源对象的维度添加处理中标记。 目标虚拟化实例分配有至少一个虚拟计算 资源对象, 内核态虚拟化组件 103a从该至少一个虚拟计算资源对象中, 确定负责处理当前目 标访问请求的 目标虚拟计算资源对象; 为目标虚拟计算资源对象添加处理中标记, 用以标识 有目标访问请求正在处理中。 例如, 目标虚拟化实例分配有多个 (如 16个) 虚拟计算资源对 象 (如, vCPU), 用 Al , A2, A16表示, 每个虚拟计算资源对象维护有一个标记位, 标 记位具有默认值 (如, 0), 若确定虚拟计算资源对象 A1 为目标虚拟计算资源对象, 则将虚 拟计算资源对象 A1 的标记位由默认值转换为目标值 (如, 1), 用以标识有目标访问请求正 在处理中, 其它虚拟计算资源对象的标记位保持不变。 在一 可选实施例中, 用户态虚拟化组件 103b在成功处理当前目标访问请求的情况下, 将 当前目标访问请求的处理结果提供给内核态虚拟化组件 103a, 如图 2a中的步骤 a8和步骤 a9 和图 2b中的步骤 S08, 用户态虚拟化组件向内核态虚拟化组件返回处理结果。 内核态虚拟化 组件 103a还可以将处理结果提供给目标虚拟化实例, 以及清除处理中标记和备份的当前目标 访问请求, 如图 2a中的步骤 alO和步骤 all , 以及如图 2b中的步骤 S09, 内核态虚拟化组件 清除处理中标记和备份的当前 目标访问请求, 和步骤 S10, 内核态虚拟化组件将处理结果返
回给目标虚拟化实例。 例如, 在 Linux系统中, 内核态虚拟化组件 103a可以是 KVM, KVM 通过虚拟机进入 (VM-Entry) 指令, 将处理结果写入 VMCS结构中, 以将处理结果返回给目 标虚拟化实例。 其 中,当前目标访问请求的处理结果是用户态虚拟化组件 103b通过虚拟化技术模拟出的 10设备对 当前目标访问请求进行处理, 得到的处理结果。 根据当前目标访问请求不同, 处理 当前目标访问请求的虚拟 10设备有所不同,当前目标访问请求的处理结果也有所不同 o例如, 若当前 目标访问请求是 “获取当前系统时间”, 则处理当前目标访问请求的虚拟 10 设备是 “RTC”, 当前目标访问请求的处理结果是 RTC返回的当前系统时间; 若当前目标访问请求是 “结束虚拟化实例的休眠状态”, 则处理当前目标访问请求的虚拟 10设备是 “ACPI设备”, 当 前目标访问请求的处理结果是 ACPI设备唤醒虚拟化实例的结果信息。 可选地, 宿主机 10的操作系统和虚拟化加速设备 20的操作系统具有共享内存。 该共享 内存可以是宿主机 10上的内存空间, 也可以是虚拟化加速设备 20上的内存空间。 共享内存 为后续内核态虚拟化组件 103a与用户态虚拟化组件 103b之间的数据传输提供基础。 其 中, 在共享内存为宿主机 10的内存空间的情况下, 宿主机 10申请一块内存空间作为 共享内存, 并将该共享内存空间的地址信息提供给内核态虚拟化组件 103a, 内核态虚拟化组 件 103a将共享内存的地址信息经由宿主机 10与虚拟化加速设备 20之间的互联总线提供给虚 拟化加速设备 20的操作系统, 虚拟化加速设备 20的操作系统将共享内存的地址信息提供给 用户态虚拟化组件 103b。 在共享内存为虚拟化加速设备 20的内存空间的情况下, 虚拟化加 速设备 20的操作系统申请一块内存作为共享内存,并将共享内存的地址信息提供给用户态虚 拟化组件 103b, 用户态虚拟化组件 103b经由宿主机 10与虚拟化加速设备 20之间的互联总 线, 将共享内存的地址信息提供给宿主机 10的操作系统, 宿主机 10的操作系统将共享内存 的地址信息提供给内核态虚拟化组件 103a。 无论是上述哪种情况下, 内核态虚拟化组件 103a将当前目标访问请求写入内核态虚拟化 组件 103a与用户态虚拟化组件 103b之间的共享内存中, 用户态虚拟化组件 103b从共享内存 中读取当前目标访问请求, 如图 2a中的步骤 a4和步骤 a5。 例如, 内核态虚拟化组件 103a 和用户态虚拟化组件 103b可以定期轮询共享内存, 从共享内存中读取数据。 进一 步可选地, 用户态虚拟化组件 103b在成功处理当前目标访问请求的情况下, 将当前 目标访问请求的处理结果写入共享内存中, 如图 2a中的步骤 a8。 内核态虚拟化组件 103a还 可以从共享内存中读取处理结果,如图 2a中的步骤 a9,并将处理结果提供给目标虚拟化实例, 以及清除处理中标记和备份的当前目标访问请求, 如图 2a中的步骤 al l和步骤 alO。 其中, 并不限定步骤 all和步骤 alO的执行顺序, 可以是先执行步骤 al l , 再执行步骤 alO, 也可以 是先执行步骤 alO, 再执行步骤 all , 还可以是同时执行步骤 al l和步骤 alO。 在一 可选实施例中,用户态虚拟化组件 103b备份当前组件状态信息至目标存储空间的实 施方式不作限定。根据目标存储空间的位置不同, 用户态虚拟化组件 103b备份当前组件状态 信息的实施方式也有所不同。 例如 , 在目标存储空间为宿主机 10上的存储空间时, 通过虚拟化加速设备 20与宿主机
10之间的互联总线将当前组件状态信息发送至 目标存储空间。以互联总线是 PCIE总线为例, 对用户态虚拟化组件 103b备份当前组件状态信息至目标存储空间的实施方式进行说明。用户 态虚拟化组件 103b将当前组件状态信息写入虚拟化加速设备 20的内存空间中, 虚拟化加速 设备 20的操作系统将内存空间中的当前组件状态信息经由 PCIE总线提供给宿主机 10的操 作系统, 宿主机 10的操作系统将当前组件状态信息写入目标存储空间。 又例如, 在目标存储空间为宿主机 10外部的存储空间时, 通过虚拟化加速设备 20的网 卡模块将当前组件状态信息发送至 目标存储空间。 虚拟化加速设备通过网卡模块与外部存储 空间 (如, 云端存储) 进行交互。 例如, 用户态虚拟化组件 103b将当前组件状态信息写入虚 拟化加速设备 20的内存空间中, 虚拟化加速设备 20的操作系统将当前组件状态信息通过网 卡模块提供给云端的目标存储空间。 在一 可选实施例中, 内核态虚拟化组件 103a预先维护有虚拟资源对象信息映射表, 虚拟 资源对象可以包含但不限于: 虚拟计算资源对象、 虚拟内存对象以及虚拟 10设备等。 该虚拟 资源对象信息映射表中维护有各虚拟资源对象与虚拟化组件 (如, 内核态虚拟化组件 103a或 用户态虚拟化组件 103b) 之间的对应关系, 表示虚拟化实例的该虚拟资源对象由对应虚拟化 组件进行模拟, 相应地, 虚拟化实例针对该虚拟资源对象的访问请求, 由对应虚拟化组件进 行处理。 其 中, 以宿主机操作系统是 Linux系统, 内核态虚拟化组件 103a是 KVM, 用户态虚拟 化组件 103b是 Qemu, 访问请求是 PIO请求为例, PIO请求对应有端口号 (port), 不同端口 号对应不 同虚拟 10 设备。 相应地, KVM 可以维护有 port— Qemu 之间对应关系, 以及 port— KVM之间的对应关系。 其 中, 以宿主机操作系统是 Linux系统, 内核态虚拟化组件 103a是 KVM, 用户态虚拟 化组件 103b是 Qemu, 访问请求是 MMI0请求为例, MMI0请求对应有 10区域 (region), 该 10 region是宿主机操作系统中的一块内存区域, 不同 10 region对应不同虚拟 10设备。 相 应地, KVM 可以维护有 10 region— Qemu之间对应关系, 以及 10 region— KVM之间的对应 关系。 基 于上述, 内核态虚拟化组件 103a可以拦截目标虚拟化实例发起的当前访问请求, 根据 预先维护的虚拟资源对象信息映射表, 判断当前访问请求请求访问的目标虚拟资源对象是否 由用户态虚拟化组件负责虚拟化; 在判断结果为是的情况下, 将当前访问请求作为当前目标 访问请求, 对当前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给 用户态虚拟化组件 103b进行处理。 可选地, 在判断结果为否的情况下, 内核态虚拟化组件 103a对当前访问请求进行处理, 并将处理结果返回给目标虚拟化实例。 在一 可选实施例中, 内核态虚拟化组件 103a对当前目标访问请求进行重放处理的实施方 式不作限定。 下面进行示例性说明。 示例 B1 : 在宿主机的另一虚拟化加速设备上进行重放处理。 在 宿主机包含另一虚拟化加速设备且另一虚拟化加速设备可用的情况下, 内核态虚拟化
组件 103a根据处理中标记, 从目标存储空间中获取历史组件状态信息。 例如, 在处理中标记 存在的情况下, 表示当前目标访问请求未被处理, 从目标存储空间中获取历史组件状态信息。 在处理中标记被清除的情况下, 表示当前目标访问请求已被处理, 无需执行后续操作。 内核 态虚拟化组件 103a根据历史组件状态信息,在另一虚拟化加速设备上创建负责目标虚拟化实 例的用户态虚拟化组件, 简称为新的用户态虚拟化组件; 将备份的当前目标访问请求提供给 该新的用户态虚拟化组件进行处理。 可选地, 可以创建内核态虚拟化组件 103a与新的用户态 虚拟化组件之间的共享内存, 用于内核态虚拟化组件 103a与新的用户态虚拟化组件之间的信 息交互, 内核态虚拟化组件 103a将备份的当前目标访问请求写入共享内存, 新的用户态虚拟 化组件从共享内存中读取当前目标访问请求。 可选地 , 在宿主机包含另一虚拟化加速设备且另一虚拟化加速设备可用的情况下, 还可 以输出本地重放提示信息,以触发在另一虚拟化加速设备上对当前目标访问请求的重放处理。 需要说明的是,在内核态虚拟化组件 103a与新的用户态虚拟化组件相互配合对当前目标 访问请求进行处理的情况下, 该另一虚拟化加速设备可能出现异常, 也可能未出现异常。 在 另一虚拟化加速设备未出现异常的情况下, 内核态虚拟化组件 103a将备份的当前目标访问请 求提供给该新的用户态虚拟化组件进行处理。新的用户态虚拟化组件 103b对当前目标访问请 求进行处理, 若成功处理当前目标访问请求, 则备份当前组件状态信息至目标存储空间中, 以供对后续目标访问请求进行重放处理。新的用户态虚拟化组件 103b将当前目标访问请求的 处理结果写入共享内存中; 内核态虚拟化组件 103a从共享内存中读取处理结果, 并提供给目 标虚拟化实例, 以及清除处理中标记和备份的当前目标访问请求。 在另一虚拟化加速设备出 现异常的情况下, 则对外发出报警信息, 以通知工作人员进行后续处理。 需要说明的是, 另一虚拟化加速设备上预先安装有处理目标访问请求的用户态虚拟化组 件, 基于该预先安装的用户态虚拟化组件对当前目标访问请求进行重放处理; 或者, 可以在 另一虚拟化加速设备上实时安装新的用户态虚拟化组件, 基于该新的用户态虚拟化组件对当 前目标访问请求进行重放处理。 示例 B2: 将相应数据热迁移至另一宿主机上, 在另一宿主机上执行重放处理。 内核态虚拟化组件 103a控制目标虚拟化实例暂停运行, 以触发将目标虚拟化实例迁移到 另一宿主机上, 以在另一宿主机上基于历史组件状态信息、 对当前目标访问请求的备份和处 理中标记对当前 目标访问请求进行重放处理。 其中, 另一台宿主机可以是同一集群中的宿主 机, 也可以是其它集群中的宿主机。 在 另一宿主机上进行重放处理的方式可以是: 将目标虚拟化实例迁移到另一宿主机上, 为目标虚拟化实例分配新的内核态虚拟化组件, 以及新的虚拟化加速设备, 在新的虚拟化加 速设备上为目标虚拟化实例部署新的用户态虚拟化组件, 由新的内核态虚拟化组件和新的用 户态虚拟化组件相互配合执行重放处理, 详细内容可参见前述, 在此不再赘述。 其 中, 示例 B2提供的实施方式, 可以在当前宿主机 10上存在另一虚拟化加速设备的情 况下实现。 或者, 也可以在宿主机包含另一虚拟化加速设备且另一虚拟化加速设备不可用的 情况下实现, 其中, 另一虚拟化加速设备不可用可以是另一虚拟化加速设备异常, 也可以是
另一虚拟化加速设备的负载较高, 无法为更多虚拟化实例提供服务。 或者, 还可以在宿主机 10未包含另一虚拟化加速设备的情况下实现。 需要说明的是, 备份当前组件状态信息使用的是热迁移中的状态保存链, 该保存链可以 是链表形式, 可以将用户态虚拟化组件 103b中的各设备状态保存为二进制的形式, 而由于虚 拟化实例 (如, VM) 可以通过目标访问请求 (如, PIO请求和 MMIO请求) 改变模拟 10设 备的状态, 因此, 需要在目标访问请求处理完成之后保存当前组件状态信息。 可选地, 由于 目标访问请求是读操作的情况下, 不改变用户态虚拟化组件 103b的组件状态, 因此, 可以在 目标访问请求是写操作的情况下, 备份当前组件状态信息, 降低计算资源消耗。 其 中, 上述示例 B1和示例 B2, 提供在虚拟化加速设备未能成功处理目标访问请求的情 况下, 使用历史组件状态信息、 对当前目标访问请求的备份和处理中标记, 对当前目标访问 请求进行重放处理的实施方式。 在示例 B1 中可以在另一虚拟化加速设备中重放目标访问请 求, 在示例 B2 中, 可以在其它正常宿主机中恢复目标虚拟化实例以及重放当前目标访问请 求, 避免虚拟化实例的宕机和数据丢失。 本公开 实施例除了提供系统实施例之外, 还提供了数据处理方法, 下面对本公开实施例 提供的数据处理方法的过程进行说明。 该方法应用于宿主机上部署的虚拟化管理器中的内核 态虚拟化组件, 如图 3所示, 该数据处理方法包括:
301、拦截运行于宿主机上的目标虚拟化实例发起的当前目标访问请求, 宿主机搭载有虚 拟化加速设备, 且虚拟化管理器中的用户态虚拟化组件部署在虚拟化加速设备上;
302、对当前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给部 署在虚拟化加速设备上的用户态虚拟化组件进行处理;
303、 在当前目标访问请求未被成功处理的情况下, 基于历史组件状态信息、 对当前目标 访问请求的备份和处理中标记对当前 目标访问请求进行重放处理; 其中, 历史组件状态信息 是用户态虚拟化组件在成功处理历史 目标访问请求时备份至目标存储空间中的用户态虚拟化 组件的状态信息, 目标存储空间是虚拟化加速设备外部的存储空间。 在 本实施例中, 基于历史组件状态信息、 对当前目标访问请求的备份和处理中标记对当 前目标访问请求进行重放处理的执行主体, 可以是当前宿主机上的内核态虚拟化组件, 也可 以是其它宿主机上的内核态虚拟化组件, 其它宿主机是指同一集群或非同一集群中的其它宿 主机。 若重放处理的执行主体是当前宿主机, 则由该宿主机上的另一虚拟化加速设备配合执 行重放处理; 若重放处理的执行主体是其它宿主机, 则其它宿主机及其上的虚拟化加速设备 配合执行重放处理。 详细介绍可参见前述实施例, 在此不再赘述。 在一 可选实施例中, 拦截目标虚拟化实例发起的当前目标访问请求, 包括: 在初始化过 程中, 配置指示目标虚拟化实例在发起目标访问请求时陷出到内核态虚拟化组件的能力; 在 出现目标虚拟化实例陷出到内核态虚拟化组件的情况时, 截获目标虚拟化实例发起的当前目 标访问请求。 在一 可选实施例中, 对当前目标访问请求添加处理中标记, 包括: 从为目标虚拟化实例 分配的至少一个虚拟计算资源对象中, 确定负责处理当前目标访问请求的目标虚拟计算资源
对象; 为目标虚拟计算资源对象添加处理中标记, 用以标识有目标访问请求正在处理中。 在一 可选实施例中, 将当前目标访问请求提供给部署在虚拟化加速设备上的用户态虚拟 化组件进行处理, 包括: 将当前目标访问请求写入内核态虚拟化组件与用户态虚拟化组件之 间的共享内存中, 以供用户态虚拟化组件从共享内存中读取当前目标访问请求; 共享内存为 宿主机上的内存空间, 或者为虚拟化加速设备上的内存空间。 可选地 , 本公开实施例提供的方法还包括: 从共享内存中读取用户态虚拟化组件对当前 目标访问请求的处理结果, 并提供给目标虚拟化实例, 以及清除处理中标记和备份的当前目 标访问请求。 在一 可选实施例中, 拦截运行于宿主机上的目标虚拟化实例发起的当前目标访问请求, 包括: 拦截运行于宿主机上的目标虚拟化实例发起的当前访问请求; 根据预先维护的虚拟资 源对象信息映射表, 判断当前目标访问请求请求访问的目标虚拟资源对象是否由用户态虚拟 化组件负责虚拟化; 在判断结果为是的情况下, 将当前访问请求作为当前目标访问请求。 在一 可选实施例中, 基于历史组件状态信息、 对当前目标访问请求的备份和处理中标记 对当前目标访问请求进行重放处理, 包括: 在宿主机包含另一虚拟化加速设备且另一虚拟化 加速设备可用的情况下, 根据处理中标记, 从目标存储空间中获取历史组件状态信息; 根据 历史组件状态信息,在另一虚拟化加速设备上创建负责目标虚拟化实例的用户态虚拟化组件; 将备份的当前 目标访问请求提供给另一虚拟化加速设备上负责目标虚拟化实例的用户态虚拟 化组件进行重做处理。 在一 可选实施例中, 基于历史组件状态信息、 对当前目标访问请求的备份和处理中标记 对当前目标访问请求进行重放处理, 包括: 控制目标虚拟化实例暂停运行, 以触发将目标虚 拟化实例迁移到另一宿主机上, 以在另一宿主机上基于历史组件状态信息、 对当前目标访问 请求的备份和处理中标记对当前目标访问请求进行重放处理。 可选地 , 控制目标虚拟化实例暂停运行, 以触发将目标虚拟化实例迁移到另一宿主机上, 包括: 在宿主机未包含另一虚拟化加速设备的情况下, 或者在宿主机包含另一虚拟化加速设 备且另一虚拟化加速设备不可用的情况下, 控制目标虚拟化实例暂停运行, 以触发将目标虚 拟化实例迁移到另一宿主机上。 本公开 实施例还提供另一种数据处理方法, 该方法应用于虚拟化管理器中部署在虚拟化 加速设备上的用户态虚拟化组件, 如图 4所示, 该方法包括:
401、获取虚拟化管理器中内核态虚拟化组件提供的当前目标访问请求, 当前目标访问请 求是运行在内核态虚拟化组件所在宿主机上的目标虚拟化实例发起的;
402、 对当前目标访问请求进行处理, 并在成功处理当前目标访问请求的情况下, 备份当 前组件状态信息至 目标存储空间中, 以供对后续目标访问请求进行重放处理; 其中, 当前组 件状态信息是用户态虚拟化组件在成功处理当前 目标访问请求时的状态信息, 目标存储空间 是虚拟化加速设备外部的存储空间。 在一 可选实施例中, 获取虚拟化管理器中内核态虚拟化组件提供的当前目标访问请求, 包括: 从内核态虚 拟化组件与用户态虚拟化组件之间的共享内存中, 读取内核态虚拟化组件
写入的当前目标访问请求; 共享内存为宿主机上的内存空间, 或者为虚拟化加速设备上的内 存空间。 可选地 , 本公开实施例提供的方法还包括: 在成功处理当前目标访问请求的情况下, 将 当前目标访问请求的处理结果写入共享内存中, 以提供给内核态虚拟化组件; 和 /或在将当前 组件状态信息备份至 目标存储空间中的情况下, 将目标存储空间中存储的历史组件状态信息 清除。 在一 可选实施例中, 备份当前组件状态信息至目标存储空间中, 包括: 在目标存储空间 为宿主机上的存储空间时, 通过虚拟化加速设备与宿主机之间的互联总线将当前组件状态信 息发送至目标存储空间; 在目标存储空间为宿主机外部的存储空间时, 通过虚拟化加速设备 的网卡模块将当前组件状态信息发送至目标存储空间。 关于本公开实施例提供的图 3 -图 4所示方法中各步骤的详细实施方式以及有益效果已经 在前述实施例中进行了详细描述, 此处将不做详细阐述说明。 需要说明的是, 上述实施例所提供方法的各步骤的执行主体均可以是同一设备, 或者, 该方法也由不同设备作为执行主体。 比如, 步骤 301至步骤 303的执行主体可以为设备; 又 比如, 步骤 301和 302的执行主体可以为设备, 步骤 303的执行主体可以为设备 B ; 等等。 另外, 在上述实施例及附图中的描述的一些流程中, 包含了按照特定顺序出现的多个操 作, 但是应该清楚了解, 这些操作可以不按照其在本文中出现的顺序来执行或并行执行, 操 作的序号如 301、 302等, 仅仅是用于区分开各个不同的操作, 序号本身不代表任何的执行顺 序。 另外, 这些流程可以包括更多或更少的操作, 并且这些操作可以按顺序执行或并行执行。 需要说明的是, 本文中的 “第一”、 “第二 ”等描述, 是用于区分不同的消息、 设备、 模块等, 不代表先后顺序, 也不限定 “第一 ”和 “第二 ”是不同的类型。 图 5为本公开示例性实施例提供的一种数据处理装置的结构示意图, 该装置对应于宿主 机上部署的虚拟化管理器中的内核态虚拟化组件, 如图 5所示, 该装置包括: 拦截模块 51、 第一处理模块 52和重放模块 53 ; 拦截模块 51 ,被设置为拦截运行于宿主机上的目标虚拟化实例发起的当前目标访问请求, 宿主机搭载有虚拟化加速设备, 且虚拟化管理器中的用户态虚拟化组件部署在虚拟化加速设 备上; 第一处理模块 52, 被设置为对当前目标访问请求进行备份和添加处理中标记, 并将当前 目标访问请求提供给部署在虚拟化加速设备上的用户态虚拟化组件进行处理; 重放模块 53, 被设置为在当前目标访问请求未被成功处理的情况下, 基于历史组件状态 信息、 对当前目标访问请求的备份和处理中标记对当前目标访问请求进行重放处理; 其中, 历史组件状态信息是用户态虚拟化组件在成功处理历史 目标访问请求时备份至目标存储空间 中的用户态虚拟化组件的状态信息, 目标存储空间是虚拟化加速设备外部的存储空间。 在一 可选实施例中, 拦截模块具体被设置为: 在初始化过程中, 配置指示目标虚拟化实 例在发起目标访问请求时陷出到内核态虚拟化组件的能力; 在出现目标虚拟化实例陷出到内
核态虚拟化组件的情况时, 截获目标虚拟化实例发起的当前目标访问请求。 在一可选实施例 中, 第一处理模块 52具体被设置为: 从为目标虚拟化实例分配的至少一 个虚拟计算资源对象中, 确定负责处理当前目标访问请求的目标虚拟计算资源对象; 为目标 虚拟计算资源对象添加处理中标记, 用以标识有目标访问请求正在处理中。 在一可选实施例 中, 第一处理模块 52具体被设置为:将当前目标访问请求写入内核态虚 拟化组件与用户态虚拟化组件之间的共享内存中, 以供用户态虚拟化组件从共享内存中读取 当前目标访问请求; 共享内存为宿主机上的内存空间, 或者为虚拟化加速设备上的内存空间。 可选地 , 第一处理模块还被设置为: 从共享内存中读取用户态虚拟化组件对当前目标访 问请求的处理结果, 并提供给目标虚拟化实例, 以及清除处理中标记和备份的当前目标访问 请求。 在一 可选实施例中, 拦截模块具体被设置为: 拦截运行于宿主机上的目标虚拟化实例发 起的当前访问请求; 根据预先维护的虚拟资源对象信息映射表, 判断当前目标访问请求请求 访问的目标虚拟资源对象是否由用户态虚拟化组件负责虚拟化; 在判断结果为是的情况下, 将当前访问请求作为当前目标访问请求。 在一 可选实施例中, 重放模块具体被设置为: 在宿主机包含另一虚拟化加速设备且另一 虚拟化加速设备可用的情况下, 根据处理中标记, 从目标存储空间中获取历史组件状态信息; 根据历史组件状态信息, 在另一虚拟化加速设备上创建负责目标虚拟化实例的用户态虚拟化 组件; 将备份的当前目标访问请求提供给另一虚拟化加速设备上负责目标虚拟化实例的用户 态虚拟化组件进行重做处理。 在一 可选实施例中, 重放模块具体被设置为: 控制目标虚拟化实例暂停运行, 以触发将 目标虚拟化实例迁移到另一宿主机上, 以在另一宿主机上基于历史组件状态信息、 对当前目 标访问请求的备份和处理中标记对当前目标访问请求进行重放处理。 可选地 , 重放模块具体被设置为: 在宿主机未包含另一虚拟化加速设备的情况下, 或者 在宿主机包含另一虚拟化加速设备且另一虚拟化加速设备不可用的情况下, 控制目标虚拟化 实例暂停运行, 以触发将目标虚拟化实例迁移到另一宿主机上。 图 6为本公开示例性实施例提供的另一种数据处理装置的结构示意图, 该装置对应于虚 拟化管理器中部署在虚拟化加速设备上的用户态虚拟化组件, 如图 6所示, 该装置包括: 获 取模块 61和第二处理模块 62; 获取模块 61 ,被设置为获取虚拟化管理器中内核态虚拟化组件提供的当前目标访问请求, 当前目标访问请求是运行在内核态虚拟化组件所在宿主机上的目标虚拟化实例发起的; 第二处理模块 62, 被设置为对当前目标访问请求进行处理, 并在成功处理当前目标访问 请求的情况下, 备份当前组件状态信息至目标存储空间中, 以供对后续目标访问请求进行重 放处理; 其中, 当前组件状态信息是用户态虚拟化组件在成功处理当前目标访问请求时的状 态信息, 目标存储空间是虚拟化加速设备外部的存储空间。 在一可选实施例 中, 获取模块 61具体被设置为: 从内核态虚 拟化组件与用户态虚拟化
组件之间的共享内存中, 读取内核态虚拟化组件写入的当前目标访问请求; 共享内存为宿主 机上的内存空间, 或者为虚拟化加速设备上的内存空间。 可选地 , 第二处理模块 62还被设置为: 在成功处理当前目标访问请求的情况下, 将当前 目标访问请求的处理结果写入共享内存中, 以提供给内核态虚拟化组件; 和 /或在将当前组件 状态信息备份至目标存储空间中的情况下,将目标存储空间中存储的历史组件状态信息清除。 在一可选实施例 中, 第二处理模块 62具体被设置为:在目标存储空间为宿主机上的存储 空间时, 通过虚拟化加速设备与宿主机之间的互联总线将当前组件状态信息发送至目标存储 空间; 在目标存储空间为宿主机外部的存储空间时, 通过虚拟化加速设备的网卡模块将当前 组件状态信息发送至目标存储空间。 关于本公开实施例提供的图 5 -图 6所示装置中各步骤的详细实施方式以及有益效果已经 在前述实施例中进行了详细描述, 此处将不做详细阐述说明。 图 7为本公开示例性实施例提供的一种物理机的结构示意图, 该物理机对应于宿主机上 部署的虚拟化管理器中的内核态虚拟化组件, 如图 7所示, 该设备包括: 存储器 74和处理器 75 o 存储器 74, 用于存储计算机程序, 并可被配置为存储其它各种数据以支持在物理机上的 操作。 这些数据的示例包括用于在物理机上操作的任何应用程序或方法的指令等。 处理器 75, 与存储器 74耦合, 用于执行存储器 74中的计算机程序, 以用于: 拦截运行 于宿主机上的 目标虚拟化实例发起的当前目标访问请求, 宿主机搭载有虚拟化加速设备, 且 虚拟化管理器中的用户态虚拟化组件部署在虚拟化加速设备上; 对当前目标访问请求进行备 份和添加处理中标记, 并将当前目标访问请求提供给部署在虚拟化加速设备上的用户态虚拟 化组件进行处理; 在当前目标访问请求未被成功处理的情况下, 基于历史组件状态信息、 对 当前目标访问请求的备份和处理中标记对当前 目标访问请求进行重放处理; 其中, 历史组件 状态信息是用户态虚拟化组件在成功处理历史 目标访问请求时备份至目标存储空间中的用户 态虚拟化组件的状态信息, 目标存储空间是虚拟化加速设备外部的存储空间。 在一 可选实施例中, 处理器 75 在拦截目标虚拟化实例发起的当前目标访问请求时, 具 体用于: 在初始化过程中, 配置指示目标虚拟化实例在发起目标访问请求时陷出到内核态虚 拟化组件的能力; 在出现目标虚拟化实例陷出到内核态虚拟化组件的情况时, 截获目标虚拟 化实例发起的当前目标访问请求。 在一 可选实施例中, 处理器 75 在对当前目标访问请求添加处理中标记时, 具体用于: 从为目标虚拟化实例分配的至少一个虚拟计算资源对象中, 确定负责处理当前目标访问请求 的目标虚拟计算资源对象; 为目标虚拟计算资源对象添加处理中标记, 用以标识有目标访问 请求正在处理中。 在一 可选实施例中, 处理器 75 在将当前目标访问请求提供给部署在虚拟化加速设备上 的用户态虚拟化组件进行处理时, 具体用于: 将当前目标访问请求写入内核态虚拟化组件与 用户态虚拟化组件之间的共享内存中, 以供用户态虚拟化组件从共享内存中读取当前目标访
问请求; 共享内存为宿主机上的内存空间, 或者为虚拟化加速设备上的内存空间。 可选地 , 处理器 75 还用于: 从共享内存中读取用户态虚拟化组件对当前目标访问请求 的处理结果, 并提供给目标虚拟化实例, 以及清除处理中标记和备份的当前目标访问请求。 在一 可选实施例中, 处理器 75 在拦截运行于宿主机上的目标虚拟化实例发起的当前目 标访问请求时, 具体用于: 拦截运行于宿主机上的目标虚拟化实例发起的当前访问请求; 根 据预先维护的虚拟资源对象信息映射表, 判断当前目标访问请求请求访问的目标虚拟资源对 象是否由用户态虚拟化组件负责虚拟化; 在判断结果为是的情况下, 将当前访问请求作为当 前目标访问请求。 在一 可选实施例中, 处理器 75 在基于历史组件状态信息、 对当前目标访问请求的备份 和处理中标记对当前 目标访问请求进行重放处理时, 具体用于: 在宿主机包含另一虚拟化加 速设备且另一虚拟化加速设备可用的情况下, 根据处理中标记, 从目标存储空间中获取历史 组件状态信息; 根据历史组件状态信息, 在另一虚拟化加速设备上创建负责目标虚拟化实例 的用户态虚拟化组件; 将备份的当前目标访问请求提供给另一虚拟化加速设备上负责目标虚 拟化实例的用户态虚拟化组件进行重做处理。 在一 可选实施例中, 处理器 75 在基于历史组件状态信息、 对当前目标访问请求的备份 和处理中标记对当前 目标访问请求进行重放处理时, 具体用于: 控制目标虚拟化实例暂停运 行, 以触发将目标虚拟化实例迁移到另一宿主机上, 以在另一宿主机上基于历史组件状态信 息、 对当前目标访问请求的备份和处理中标记对当前目标访问请求进行重放处理。 可选地 , 处理器 75 在控制目标虚拟化实例暂停运行, 以触发将目标虚拟化实例迁移到 另一宿主机上时, 具体用于: 在宿主机未包含另一虚拟化加速设备的情况下, 或者在宿主机 包含另一虚拟化加速设备且另一虚拟化加速设备不可用的情况下, 控制目标虚拟化实例暂停 运行, 以触发将目标虚拟化实例迁移到另一宿主机上。 关于本公开实施例提供的图 7所示设备中各步骤的详细实施方式以及有益效果已经在前 述实施例中进行了详细描述, 此处将不做详细阐述说明。 进一 步, 如图 7所示, 该物理机还包括: 通信组件 76、 显示器 77、 电源组件 78、 音频 组件 79等其它组件。图 7中仅示意性给出部分组件,并不意味着物理机只包括图 7所示组件。 另外, 图 7中虚线框内的组件为可选组件, 而非必选组件, 具体可视物理机的产品形态而定。 本实施例的物理机可以实现为台式电脑、 笔记本电脑、 智能手机或 IOT设备等终端设备, 也 可以是常规服务器、 云服务器或服务器阵列等服务端设备。 若本实施例的物理机实现为台式 电脑、 笔记本电脑、 智能手机等终端设备, 可以包含图 7中虚线框内的组件; 若本实施例的 物理机实现为常规服务器、 云服务器或服务器阵列等服务端设备, 则可以不包含图 7中虚线 框内的组件。 本公开 实施例还提供一种数据处理设备, 该数据处理设备对应于虚拟化管理器中部署在 虚拟化加速设备上的用户态虚拟化组件, 该数据处理设备的实现结构与图 7所示物理机的实 现结构相同或类似, 可参照图 7所示物理机的结构实现。 本实施例提供的数据处理设备与图
7 所示实施例中物理机的区别主要在于: 处理器执行存储器中存储的计算机程序所实现的功 能不同。 对本实施例提供的数据处理设备来说, 其处理器执行存储器中存储的计算机程序, 可用于: 获取虚拟化管理器中内核态虚拟化组件提供的当前目标访问请求, 当前目标访问请 求是运行在内核态虚拟化组件所在宿主机上的 目标虚拟化实例发起的; 对当前目标访问请求 进行处理, 并在成功处理当前目标访问请求的情况下, 备份当前组件状态信息至目标存储空 间中, 以供对后续目标访问请求进行重放处理; 其中, 当前组件状态信息是用户态虚拟化组 件在成功处理当前 目标访问请求时的状态信息, 目标存储空间是虚拟化加速设备外部的存储 空间。 在 一可选实施例中, 处理器在获取虚拟化管理器中内核态虚拟化组件提供的当前目标访 问请求时, 具体用于: 从内核态虚拟化组件与用户态虚拟化组件之间的共享内存中, 读取内 核态虚拟化组件写入的当前 目标访问请求; 共享内存为宿主机上的内存空间, 或者为虚拟化 加速设备上的内存空间。 在 一可选实施例中, 处理器还用于: 在成功处理当前目标访问请求的情况下, 将当前目 标访问请求的处理 结果写入共享内存中, 以提供给内核态虚拟化组件; 和 /或在将当前组件 状态信息备份 至目标存储空间中的情况下, 将目标存储空间中存储的历史组件状态信息清 除。 在 一可选实施例中, 处理器在备份当前组件状态信息至目标存储空间中时具体用于: 在 目标存储空间为宿主机上的存储空间时, 通过虚拟化加速设备与宿主机之间的互联总线将当 前组件状态信息发送至 目标存储空间; 在目标存储空间为宿主机外部的存储空间时, 通过虚 拟化加速设备的网卡模块将当前组件状态信息发送至目标存储空间。 关于本公开实施例提供的数据处理设备的详细实施方式以及有益效果已经在前述实施例 中进行了详细描述, 此处将不做详细阐述说明。 相应地, 本公开实施例还提供一种存储有计算机程序的计算机可读存储介质, 计算机程 序被执行时能够实现上述图 3 -图 4所示方法实施例中可由数据处理设备执行的各步骤。 相应地, 本公开实施例还提供一种计算机程序产品, 包括计算机程序 /指令, 当计算机 程序 /指令被处理器执行时, 致使处理器实现图 3 -图 4所示方法中的步骤。 上述存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现, 如静态 随机存取存储器 (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), 磁存储器, 快闪存 储器, 磁盘或光盘。 上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。 通信组件所在设备可以接入基于通信标准的无线网络, 如 WiFi, 2G、 3G、 4G/LTE、 5G等移 动通信网络, 或它们的组合。 在一个示例性实施例中, 通信组件经由广播信道接收来自外部 广播管理系统的广播信号或广播相关信息。 在一个示例性实施例中, 通信组件还包括近场通
信 (Near Field Communication, NFC) 模块, 以促进短程通信。 例如, 在 NFC模块可基于射 频识别 (Radio Frequency Identification, RFID)技术,红外数据协会 (Infrared Data Association, IrDA) 技术, 超宽带 (Ultra Wide Band, UWB) 技术, 蓝牙 (BlueTooth, BT) 技术和其他 技术来实现。 上述显示 器包括屏幕, 其屏幕可以包括液晶显示器 (Liquid Crystal Display, LCD) 和触 摸面板 (TouchPanel, TP) O 如果屏幕包括触摸面板, 屏幕可以被实现为触摸屏, 以接收来自 用户的输入信号。 触摸面板包括一个或多个触摸传感器以感测触摸、 滑动和触摸面板上的手 势。 触摸传感器可以不仅感测触摸或滑动动作的边界, 而且还检测与触摸或滑动操作相关的 持续时间和压力。 上述 电源组件, 为电源组件所在设备的各种组件提供电力。 电源组件可以包括电源管理 系统, 一个或多个电源, 及其他与为电源组件所在设备生成、 管理和分配电力相关联的组件。 上述音频 组件, 可被配置为输出和 /或输入音频信号。 例如, 音频组件包括一个麦克风 (Microphone, MIC) , 当音频组件所在设备处于操作模式, 如呼叫模式、 记录模式和语音识 别模式时, 麦克风被配置为接收外部音频信号。 所接收的音频信号可以被进一步存储在存储 器或经由通信组件发送。在一些实施例中, 音频组件还包括一个扬声器, 用于输出音频信号。 本领域内的技术人员应明白, 本公开的实施例可提供为方法、 系统、 或计算机程序产品。 因此, 本公开可采用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的 形式。 而且, 本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储 介质 (包括但不限于磁盘存储器、 只读光盘 (Compact Disc Read-Only Memory, CD-ROM) > 光学存储器等) 上实施的计算机程序产品的形式。 本公开是参照根据本公开实施例的方法、 设备 (系统)、 和计算机程序产品的流程图和/ 或方框图来描述的。 应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/ 或方框、 以及流程图和 /或方框图中的流程和/或方框的结合。 可提供这些计算机程序指令 到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个 机器, 使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程 图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的装置。 这 些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工 作的计算机可读存储器中, 使得存储在该计算机可读存储器中的指令产生包括指令装置的制 造品, 该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指 定的功能。 这 些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或 其他可编程设备上执行一系列操作步骤以产生计算机实现的处理, 从而在计算机或其他可编 程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/ 或方框图一个方框或多 个方框中指定的功能的步骤。 在一个典型 的配置中,计算设备包括一个或多个处理器 (Central Processing Unit, CPU)、 输入 /输出接口、 网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器, 随机存取存储器 (Random Access Memory, RAM) 和 /或非易失性内存等形式, 如只读存储器 (ROM) 或闪存 ( flash RAM) o 内存是计算机可读介质的示例。 计算机可读介质包括永久性和非永久性、 可移动和非可移动媒体可以由任何方法或技术 来实现信息存储。 信息可以是计算机可读指令、 数据结构、 程序的模块或其他数据。 计算机 的存储介质的例子包括,但不限于相变内存 (Phase-change Random Access Memory, PRAM)、 静态随机存取存储器 (SRAM)、 动态随机存取存储器 (Dynamic Random Access Memory, DRAM) 、 其他类型的随机存取存储器 (RAM)、 只读存储器 (R0M)、 电可擦除可编程只 读存储器 (EEPROM)、 快闪记忆体或其他内存技术、 只读光盘只读存储器 (CD-ROM)、 数字多功能光盘 (Digital Video Disc, DVD) 或其他光学存储、 磁盒式磁带, 磁带磁盘存储 或其他磁性存储设备或任何其他非传输介质, 可用于存储可以被计算设备访问的信息。 按照 本文中的界定, 计算机可读介质不包括暂存电脑可读媒体 (transitory media) , 如调制的数据 信号和载波。 还 需要说明的是, 术语 “包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含, 从而使得包括一系列要素的过程、 方法、 商品或者设备不仅包括那些要素, 而且还包括没有 明确列出的其他要素, 或者是还包括为这种过程、 方法、 商品或者设备所固有的要素。 在没 有更多限制的情况下, 由语句 “包括一个 ..... ”限定的要素, 并不排除在包括要素的过程、 方 法、 商品或者设备中还存在另外的相同要素。 以上仅为本公开的实施例而已, 并不用于限制本公开。 对于本领域技术人员来说, 本公 开可以有各种更改和变化。 凡在本公开的精神和原理之内所作的任何修改、 等同替换、 改进 等, 均应包含在本公开的权利要求范围之内。 工业实用性 在 本公开实施例中, 用户态虚拟化组件部署在虚拟化加速设备上, 内核态虚拟化组件部 署在宿主机上, 针对需要用户态虚拟化组件进行处理的当前目标访问请求, 经内核态虚拟化 组件拦截后对 目标访问请求进行备份和添加处理中标记, 并配合用户态虚拟化组件在之前备 份至虚拟化加速设备外部的组件状态信息, 在虚拟化加速设备未能成功处理当前目标访问请 求的情况下, 基于之前备份的历史组件状态信息、 目标访问请求的备份和处理中标记, 对当 前 目标访问请求进行重放处理, 从而可以及时且正确的处理访问请求, 减少导致虚拟化实例 异常或宕机的概率。
Claims
1、 一种计算机设备, 包括: 宿主机和虚拟化加速设备; 所述宿主机上部署有虚拟化管 理器中的内核态虚拟化组件, 所述虚拟化加速设备上部署有虚拟化管理器中的用户态虚拟化 组件; 所述内核态虚拟化组件和所述用户态虚拟化组件配合在所述宿主机上创建和管理目标 虚拟化实例; 所述 内核态虚拟化组件, 用于拦截所述目标虚拟化实例发起的当前目标访问请求, 对当 前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给所述用户态虚拟 化组件进行处理; 以及 在 当前目标访问请求未被成功处理的情况下, 基于所述用户态虚拟化组件备份至目标存 储空间中的历史组件状态信息、 对当前目标访问请求的备份和所述处理中标记, 对当前目标 访问请求进行重放处理; 所述 用户态虚拟化组件, 用于对当前目标访问请求进行处理, 若成功处理当前目标访问 请求, 则备份当前组件状态信息至所述目标存储空间中, 以供对后续目标访问请求进行重放 处理; 所述目标存储空间是所述虚拟化加速设备外部的存储空间。
2、 根据权利要求 1 所述的计算机设备, 其中, 所述内核态虚拟化组件在对当前目标访 问请求添加处理中标记时, 具体用于: 从 为所述目标虚拟化实例分配的至少一个虚拟计算资源对象中, 确定负责处理当前目标 访问请求的目标虚拟计算资源对象; 为所述 目标虚拟计算资源对象添加处理中标记, 用以标识有目标访问请求正在处理中。
3、 根据权利要求 1 所述的计算机设备, 其中, 所述内核态虚拟化组件在对当前目标访 问请求进行重放处理时, 具体用于: 在所述宿主机 包含另一虚拟化加速设备且另一虚拟化加速设备可用的情况下, 根据所述 处理中标记, 从所述目标存储空间中获取所述历史组件状态信息; 根据所述历史组件状 态信息, 在所述另一虚拟化加速设备上创建负责所述目标虚拟化实 例的用户态虚拟化组件; 将备份 的当前目标访问请求提供给所述另一虚拟化加速设备上负责所述目标虚拟化实例 的用户态虚拟化组件进行处理。
4、 根据权利要求 1或 2所述的计算机设备, 其中, 所述内核态虚拟化组件在对当前目标 访问请求进行重放处理时, 具体用于: 控制 所述目标虚拟化实例暂停运行, 以触发将所述目标虚拟化实例迁移到另一宿主机 上, 以在所述另一宿主机上基于所述历史组件状态信息、 对当前目标访问请求的备份和所述 处理中标记对当前目标访问请求进行重放处理。
5、 一种数据处理方法, 应用于宿主机上部署的虚拟化管理器中的内核态虚拟化组件,
所述方法包括: 拦截运行于宿主机上 的目标虚拟化实例发起的当前目标访问请求, 所述宿主机搭载有虚 拟化加速设备, 且所述虚拟化管理器中的用户态虚拟化组件部署在所述虚拟化加速设备上; 对 当前目标访问请求进行备份和添加处理中标记, 并将当前目标访问请求提供给部署在 所述虚拟化加速设备上的用户态虚拟化组件进行处理; 在 当前目标访问请求未被成功处理的情况下, 基于历史组件状态信息、 对当前目标访问 请求的备份和所述处理中标记对当前目标访问请求进行重放处理; 其 中, 所述历史组件状态信息是所述用户态虚拟化组件在成功处理历史目标访问请求时 备份至目标存储空间中的所述用户态虚拟化组件的状态信息, 所述目标存储空间是所述虚拟 化加速设备外部的存储空间。
6、 根据权利要求 5所述的方法, 其中, 还包括: 在初始化过程中, 配置指示所述目标 虚拟化实例在 发起目标访问请求时陷 出到所述内核态虚拟化组件的能力; 拦截 目标虚拟化实例发起的当前目标访问请求, 包括: 在出现所述 目标虚拟化实例陷出到所述 内核态虚拟化组件的情况时, 截获所述目标 虚拟化实例 发起的当前目标访问请求 。
7、 根据权利要求 5 所述的方法, 其中, 对当前目标访问请求添加处理中标记, 包 括: 从 为所述目标虚拟化实例分配的至少一个虚拟计算资源对象中, 确定负责处理当前目标 访问请求的目标虚拟计算资源对象; 为所述目标虚拟计算资源对象添加处理中标记, 用以标识有目标访问请求正在处理中。
8、 根据权利要求 5 所述的方法, 其中, 拦截运行于宿主机上的目标虚拟化实例发起的 当前目标访问请求, 包括: 拦截运行于宿主机上的 目标虚拟化实例发起的当前访问请求; 根据预先维护 的虚拟资源对象信息映射表, 判断当前目标访问请求请求访问的目标虚拟 资源对象是否由所述用户态虚拟化组件负责虚拟化; 在判断结果 为是的情况下, 将当前访问请求作为当前目标访问请求。
9、 根据权利要求 5 所述的方法, 其中, 基于历史组件状态信息、 对当前目标访问请求 的备份和所述处理中标记对当前目标访问请求进行重放处理, 包括: 在所述宿主机 包含另一虚拟化加速设备且另一虚拟化加速设备可用的情况下, 根据所述 处理中标记, 从所述目标存储空间中获取所述历史组件状态信息; 根据所述历 史组件状态信息, 在所述另一虚拟化加速设备上创建负责所述目标虚拟化实 例的用户态虚拟化组件; 将备份 的当前目标访问请求提供给所述另一虚拟化加速设备上负责所述目标虚拟化实例 的用户态虚拟化组件进行重做处理。
10、 根据权利要求 5-8任一项所述的方法, 其中, 基于历史组件状态信息、 对当前目标 访问请求的备份和所述处理中标记对当前目标访问请求进行重放处理, 包括:
控 制所述目标虚拟化实例暂停运行, 以触发将所述目标虚拟化实例迁移到另一宿主机 上, 以在所述另一宿主机上基于所述历史组件状态信息、 对当前目标访问请求的备份和所述 处理中标记对当前目标访问请求进行重放处理。
11、 根据权利要求 10 所述的方法, 其中, 控制所述目标虚拟化实例暂停运行, 以触发 将所述目标虚拟化实例迁移到另一宿主机上, 包括: 在所述宿主机 未包含另一虚拟化加速设备的情况下, 或者在所述宿主机包含另一虚拟化 加速设备且另一虚拟化加速设备不可用的情况下, 控制所述目标虚拟化实例暂停运行, 以触 发将所述目标虚拟化实例迁移到另一宿主机上。
12、 一种数据处理方法, 应用于虚拟化管理器中部署在虚拟化加速设备上的用户态虚拟 化组件, 所述方法包括: 获取虚拟化 管理器中内核态虚拟化组件提供的当前目标访问请求, 当前目标访问请求是 运行在所述内核态虚拟化组件所在宿主机上的目标虚拟化实例发起的; 对所述 当前目标访问请求进行处理, 并在成功处理当前目标访问请求的情况下, 备份当 前组件状态信息至目标存储空间中, 以供对后续目标访问请求进行重放处理; 其 中, 所述当前组件状态信息是所述用户态虚拟化组件在成功处理当前目标访问请求时 的状态信息, 所述目标存储空间是所述虚拟化加速设备外部的存储空间。
13、 根据权利要求 12 所述的方法, 其中, 获取虚拟化管理器中内核态虚拟化组件提供 的当前目标访问请求, 包括: 从所述 内核态虚拟化组件与所述用户态虚拟化组件之间的共享内存中, 读取所述内核态 虚拟化组件写入的当前目标访问请求; 所述共 享内存为所述宿主机上的内存空间, 或者为所述虚拟化加速设备上的内存空间。
14、 根据权利要求 13所述的方法, 其中, 还包括: 在成功处理 当前目标访问请求的情况下, 将当前目标访问请求的处理结果写入所述共享 内存中, 以提供给所述内核态虚拟化组件; 和 /或 在将 当前组件状态信息备份至所述目标存储空间中的情况下, 将所述目标存储空间中存 储的历史组件状态信息清除。
15、 一种物理机, 包括: 存储器和处理器; 所述存储器, 用于存储计算机程序; 所述处 理器, 与所述存储器耦合, 用于执行所述计算机程序, 以实现权利要求 5-11中任一项所述方 法中的步骤。
16、 一种存储有计算机程序的计算机可读存储介质, 当所述计算机程序被处理器执行 时, 致使所述处理器实现权利要求 5-11以及权利要求 12-14中任一项所述方法中的步骤。
17、 一种计算机程序产品, 包括计算机程序 /指令, 当所述计算机程序 /指令被处理器执 行时, 致使所述处理器实现权利要求 5-11和权利要求 12-14中的任一项所述方法中的步骤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410211159.1 | 2024-02-26 | ||
| CN202410211159.1A CN120540772A (zh) | 2024-02-26 | 2024-02-26 | 计算机设备、物理机、数据处理方法、存储介质及程序产品 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025181565A1 true WO2025181565A1 (zh) | 2025-09-04 |
Family
ID=96780551
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2025/050295 Pending WO2025181565A1 (zh) | 2024-02-26 | 2025-01-10 | 计算机设备、物理机、数据处理方法、存储介质及程序产品 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN120540772A (zh) |
| WO (1) | WO2025181565A1 (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103795742A (zh) * | 2012-10-30 | 2014-05-14 | 中国电信股份有限公司 | 异构存储容灾管理系统及方法 |
| CN105824682A (zh) * | 2015-01-05 | 2016-08-03 | 深圳市腾讯计算机系统有限公司 | 一种虚拟机的监控方法、装置和系统 |
| CN106970821A (zh) * | 2016-01-12 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种kvm虚拟化下处理i/o请求的方法和装置 |
| CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
| CN115357334A (zh) * | 2022-07-27 | 2022-11-18 | 阿里巴巴(中国)有限公司 | Mmio处理方法及装置 |
-
2024
- 2024-02-26 CN CN202410211159.1A patent/CN120540772A/zh active Pending
-
2025
- 2025-01-10 WO PCT/IB2025/050295 patent/WO2025181565A1/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103795742A (zh) * | 2012-10-30 | 2014-05-14 | 中国电信股份有限公司 | 异构存储容灾管理系统及方法 |
| CN105824682A (zh) * | 2015-01-05 | 2016-08-03 | 深圳市腾讯计算机系统有限公司 | 一种虚拟机的监控方法、装置和系统 |
| CN106970821A (zh) * | 2016-01-12 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种kvm虚拟化下处理i/o请求的方法和装置 |
| CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
| CN115357334A (zh) * | 2022-07-27 | 2022-11-18 | 阿里巴巴(中国)有限公司 | Mmio处理方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120540772A (zh) | 2025-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10789135B2 (en) | Protection of infrastructure-as-a-service workloads in public cloud | |
| CN109522087B (zh) | 基于国产申威处理器的虚拟机构建方法和系统 | |
| US9665386B2 (en) | Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment | |
| CN107209705B (zh) | 用于计算环境的活动回滚 | |
| US10652020B2 (en) | Switching data sources during rolling upgrade of a leader-based distributed service with minimal disruptions | |
| US20110252208A1 (en) | Express-full backup of a cluster shared virtual machine | |
| CN106970821A (zh) | 一种kvm虚拟化下处理i/o请求的方法和装置 | |
| CN107111530B (zh) | 一种容灾方法、系统和装置 | |
| US11875145B2 (en) | Virtual machine update while keeping devices attached to the virtual machine | |
| TW201610848A (zh) | 作業系統的融合方法及裝置 | |
| US10467078B2 (en) | Crash dump extraction of guest failure | |
| US9699093B2 (en) | Migration of virtual machine based on proximity to peripheral device in NUMA environment | |
| CN108196945A (zh) | 一种核间通信方法、装置和虚拟化设备 | |
| WO2020145973A1 (en) | Event logs with firmware debug information | |
| CN116166463A (zh) | 云计算实例的故障分析方法、装置、设备、系统及介质 | |
| US10572365B2 (en) | Verification for device management | |
| CN120540772A (zh) | 计算机设备、物理机、数据处理方法、存储介质及程序产品 | |
| US12632185B2 (en) | Automated SSD recovery | |
| US20240289027A1 (en) | Automated SSD Recovery | |
| CN115004157A (zh) | 管理共享资源上的异常 | |
| TWI733745B (zh) | 核心模式的虛擬機器(kvm)虛擬化下處理i/o請求的方法和裝置 | |
| US10613890B2 (en) | Efficient I/O request handling | |
| WO2025060805A1 (zh) | 虚拟化管理器的升级方法、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25761750 Country of ref document: EP Kind code of ref document: A1 |