Computer device, physical machine, data processing method, storage medium, and program product

By deploying kernel-state virtualization components on the host to intercept and backup access requests, combined with user-state virtualization components processing on virtualization acceleration devices, the problem of virtualized instance abnormalities caused by untimely processing of microservice cards is solved, and higher stability and reliability are achieved.

WO2025181565A1PCT designated stage Publication Date: 2025-09-04CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/050295
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-26
Filing Date
2025-01-10
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

The microservice card cannot handle virtualization operations correctly or in a timely manner, and the probability of virtualization instance abnormality or downtime is high.

Method used

Deploy the kernel-state virtualization component on the host, intercept access requests and backups, add processing tags, cooperate with the user-state virtualization component to process on the virtualization acceleration device, and use historical component status information for playback processing.

Benefits of technology

Reduces the probability of abnormal or downtime of virtualized instances, and improves the stability and reliability of virtualized systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025050295_04092025_PF_FP_ABST
    Figure IB2025050295_04092025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present invention provide a computer device, a physical machine, a data processing method, a storage medium, and a program product. In the embodiments of the present invention, a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host; a current target access request needing to be processed by the user-mode virtualization component is intercepted by the kernel-mode virtualization component, and then the target access request is backed up, has an in-progress flag added thereto, and interfaces with component state information previously backed up externally to the virtualization acceleration device by the user-mode virtualization component; when the virtualization acceleration device fails to successfully process the current target access request, on the basis of previously backed-up historical component state information, the backup of the target access request, and the in-progress flag, replaying the current target access request, thereby timely and correctly processing the access request, and reducing the probability of virtualization instance exceptions or crashes.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] TECHNICAL FIELD The present disclosure relates to the field of cloud computing technology, and more particularly to a computer device, a physical machine, a data processing method, a storage medium, and a program product. Background Art Virtualization is a key technology in cloud computing. To implement virtualization, a virtualization manager (VMM) is deployed on a host machine. The VMM includes various virtualization components that work together to virtualize resources such as processors, memory, and input / output (IO) devices, as well as to create and manage virtual machines (VMs). With the development of cloud computing technology, dedicated virtualization cards, also known as microservice cards, have been introduced for host machines to improve virtualization efficiency. By running some virtualization functions on the microservice card, the host machine's load can be reduced, thereby improving virtualization efficiency. However, for the host machine, 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. SUMMARY OF THE INVENTION 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 current target access request is successfully processed, back up the current component state information to the target storage space for replay processing of subsequent target access requests; the target storage space is storage space external to the virtualization acceleration device.An embodiment of the present disclosure further provides a data processing method, which is applied to 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, 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; backing up the current target access request and adding a processing-in-progress mark to the current target access request, and providing 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, replaying 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. 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. 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. The embodiments of the present disclosure further provide a computer program product, including a computer program / instruction. When the computer program / instruction is executed by a processor, the processor is caused to implement each step of the data processing method provided in the embodiments of the present disclosure.In an 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. For a current target access request requiring processing by the user-mode virtualization component, 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 component state 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 state information, the target access request backup, and the "in-process" flag. This ensures timely and accurate processing of the access request, reducing the probability of virtualized instance exceptions or downtime. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings described herein are provided to provide a further understanding of the present disclosure and constitute a part thereof. The exemplary embodiments of the present disclosure and their descriptions are provided to explain the present disclosure and are not intended to unduly limit the present disclosure. In the accompanying drawings: Figure 1a is a schematic diagram of the structure of a host machine provided by an exemplary embodiment of the present disclosure; Figure 1b is a schematic diagram of the structure of a computer device provided by an exemplary embodiment of the present disclosure; Figure 2a is a schematic diagram of the interaction between a kernel-mode virtualization component and a user-mode virtualization component provided by an exemplary embodiment of the present disclosure; Figure 2b is a schematic flow chart of a data processing method provided by an exemplary embodiment of the present disclosure; Figure 3 is a schematic flow chart of another data processing method provided by an exemplary embodiment of the present disclosure; Figure 4 is a schematic 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; and Figure 7 is a schematic diagram of the structure of another data processing device provided by an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION To further clarify the objectives, technical solutions, and advantages of the present disclosure, the technical solutions of the present disclosure will be described clearly and completely below in conjunction with the specific embodiments of the present disclosure and the corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present disclosure, and not all of them. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of the present disclosure without inventive effort are within the scope of protection of the present disclosure. It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or refuse.To address the above technical issues, in an 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. 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. As shown in FIG1a, the host machine 10 includes hardware resources 101, on which a virtualization manager 103 is deployed. In this embodiment, 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). In addition, 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. Memory can provide the host machine's memory space and persistent storage space. Storage media for memory space include, but are not limited to, random access memory (RAM), and storage media for persistent storage space include, but are not limited to, solid-state drives (SSDs). Furthermore, a host operating system (OS) 102 runs on the hardware resources 101.In this embodiment, the virtualization manager 103 is software running in the kernel state of the host machine. Relative to the host operating system 102, the virtualization manager 103 can be considered to include software of the host operating system 102. Based on this, virtualization management can also be considered as software running on the host operating system 102, without limitation. FIG. 1a illustrates the virtualization manager 103 as software running within the host operating system 102. The virtualization manager 103 is used to create and manage virtualization instances on the host machine. Any virtualization manager capable of managing virtualization instances is applicable to the embodiments of this disclosure. For example, the virtualization manager can be a VMM, also known as a hypervisor. oA hypervisor allows multiple operating systems and applications to share a set of basic physical resources. Therefore, it can also be considered a "meta" operating system in a virtual environment and is the core of virtualization technology. Virtualization instances may include, but are not limited to, cloud hosts, Elastic Compute Service (ECS), virtual machines (VMs), or containers. In this embodiment, 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. For example, in an embedded (Linux) operating system, user-mode virtualization component 103b may be the Quick EMUlator (Qemu), and kernel-mode virtualization component 103a may be a kernel-based virtual machine (KVM). The virtualization implementation methods of user-mode virtualization component 103b and kernel-mode virtualization component 103a are not limited. For example, user-mode virtualization component 103b is responsible for virtualizing IOS devices, while kernel-mode virtualization component 103a is responsible for virtualizing virtual computing resource objects and virtual memory objects. For another example, user-mode virtualization component 103b is responsible for virtualizing a portion of IOS devices, while kernel-mode virtualization component 103a is responsible for virtualizing another portion of IOS devices, virtual computing resource objects, and memory resource objects. For example, user-mode virtualization component 103b may be responsible for virtualizing IOS devices with low data transmission volumes and low frequencies, 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 IOS devices with high data transmission volumes and high frequencies, such as cameras or displays.Optionally, 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. 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 via 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 object will also vary. If the physical computing resource object is a VPU, GPU, DPU, TPU, CIPU, or ASIC, the corresponding virtual computing resource objects can be virtual vCPUs, virtual GPUs (vGPUs), or virtual DPUs. ? vDPU), virtual (virtual TPU ? vTPU), virtual (virtual CIPU ?With the development of cloud computing technology, a virtualization acceleration device 20 has been introduced for the host machine 10 to improve virtualization efficiency. The virtualization acceleration device 20 is a device that implements virtualization technology and can help the interconnected host machine 10 implement at least some virtualization functions. That is, the host machine 10 can offload some or all virtualization functions to the 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). In addition, 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. In this embodiment, the virtualization acceleration device 20 utilizes a hardware-software integrated design, including 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 computer 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. When the host machine 10 and the virtualization acceleration device 20 are interconnected, the reliability and efficiency of information transmission between the two can be guaranteed, providing conditions for offloading part or all of the virtualization functions on the host machine 10 to the virtualization acceleration device 20.On this basis, leveraging the software and hardware resources of virtualization acceleration device 20, some virtualization functions originally implemented on the host machine can be offloaded to virtualization acceleration device 20, reducing the host machine's load and improving virtualization efficiency. As shown in FIG1b , user-mode virtualization component 103b originally running on host machine 10 is run on virtualization acceleration device 20. User-mode virtualization component 103b is deployed on virtualization acceleration device 20 and implements virtualization functions on virtualization acceleration device 20. For example, user-mode virtualization component 103b virtualizes a 10 device on virtualization acceleration device 20. However, to host machine 10, virtualization acceleration device 20 is equivalent to a 10 device. If virtualization acceleration device 20 fails to correctly or promptly process related virtualization operations, it may cause the virtualized instance on host machine 10 to experience anomalies or even crash. The reasons why virtualization acceleration device 20 fails to correctly or promptly process related virtualization operations are not limited. For example, the virtualization acceleration device 20 may experience an exception or failure. Causes of the virtualization acceleration device 20 exception include, but are not limited to, an uncorrectable processor error (UCE) or a Linux kernel panic. Another example is an exception in the interconnect bus between the virtualization acceleration device 20 and the host machine 10. To improve virtualization stability, a fault-tolerance mechanism for the virtualization acceleration device 20 is provided. The kernel-mode virtualization component 103a backs up access requests and adds a flag indicating that they are being processed (hereinafter referred to as the "processing flag"). After processing the access request, the user-mode virtualization component 103b backs up the component state information of the user-mode virtualization component 103b. If the virtualization acceleration device 20 fails to successfully process the access request, the kernel-mode virtualization component 103a replays the access request based on the historical component state information of the user-mode virtualization component 103b, the backup of the access request, and the "processing flag." This ensures timely and accurate processing of the access request, reducing the probability of virtualized instance exceptions or downtime. In this embodiment, one or more virtualization instances can be created on the operating system of the host machine 10. The one or more virtualization instances share the kernel-mode virtualization component 103a, and each virtualization instance corresponds to a user-mode virtualization component 103b. For ease of distinction and description, the following uses the target virtualization instance as an example to illustrate the process of interaction between the kernel-mode virtualization component 103a and the user-mode virtualization component 103b corresponding to the target virtualization instance.In this embodiment, the target virtualization instance can initiate various access requests. For ease of distinction and description, 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. 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, and the IO value is the amount of data corresponding to this IO operation. In this embodiment, 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, processing flag, step b3, historical component status information. In Figure 2b, steps a1 to a4 correspond to steps S01 to 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 a processing 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 enable subsequent replay based on the backup current target access request if the current target access request is not processed by the user-mode virtualization component 103b on the virtualization acceleration device, thereby reducing the probability of virtualization instance exceptions or downtime and improving the stability of the virtualization instance. The purpose of adding the "processing" flag is 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 "in-processing flag" of the current target access request can be cleared. If the "in-processing flag" of the current target access request is not cleared within a set time, it indicates that the current target access request with the in-processing flag has not been processed completely. Replay processing is required to reduce the probability of failure or downtime of the virtualization instance. 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 is not elaborated here.The set time can be 10ms, 500ms, or 1s, among others. The location where the current target access request is backed up is not limited. For example, 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. It should be noted that to ensure data security, 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. For example, the kernel-mode virtualization component 103a maintains a correspondence between the identification information of the target access request and a flag bit. The flag bit defaults to 0, and adding the in-process flag can be by setting the flag bit from 0 to 10. For another example, a 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. In this embodiment, 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. For example, the kernel-mode virtualization component 103a may first back up the current target access request and then add the "in-process" flag, or first add the "in-process" flag and then back up the current target access request, or both the backing up and the "in-process" flag are performed simultaneously. In this embodiment, the timing for backing up the current target access request and adding the "in-process" flag is not limited. For example, the kernel-mode virtualization component 103a may back up the current target access request and add the "in-process" flag before providing the current target access request to the user-mode virtualization component 103b. Furthermore, the kernel-mode virtualization component 103a may back up the current target access request and add the "in-process" flag as soon as possible. For example, the kernel-mode virtualization component 103a may immediately back up the current target access request and add the "in-process" flag after capturing the current target access request initiated by the target virtualization instance. In this embodiment, the kernel-mode virtualization component 103a can provide the current target access request to the user-mode virtualization component 103b on the virtualization acceleration device 20 via the interconnection bus between the host machine and the virtualization acceleration device. The interconnection bus is described above and will not be repeated here. In this embodiment, S05 determines whether the virtualization acceleration device successfully processes the current target access request. If successful, the user-mode virtualization component 103b can process the current target access request, as shown in step a6 of FIG. 2a and step S06 of FIG. 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 the target storage space outside the virtualization acceleration device 20 for replay processing of subsequent target access requests. For example, in step a7 in FIG. 2a and step S07 in FIG. 2b , 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, the user-mode virtualization component 103b may process the current target access request using an IO device simulated by the user-mode virtualization component 103b using virtualization technology. The current component state information refers to the current state information of the user-mode virtualization component 103b. For example, it may be the state information of each IO device simulated by the user-mode virtualization component 103b after the IO device simulated by the user-mode virtualization component 103b processes the current target access request. The target storage space external to the virtualized acceleration device 20 can be storage space on the host machine, such as persistent storage space or memory space of the host machine; or it can be a cloud storage resource such as a cloud disk or NAS external to the host machine. It should be noted that the kernel-mode virtualization component 103a stores the access address of the target storage space and has access rights to the target storage space. In this embodiment, if the virtualized acceleration device 20 fails to successfully process the current target access request, the target storage space external to the virtualized acceleration device 20 stores backup historical component state information. This historical component state information is backed up to the target storage space by the user-mode virtualization component 103b upon successful processing of a historical target access request when the virtualized acceleration device 20 is in a normal state. The historical target access request, relative to the current target access request, can be the previous target access request or the previous two target access requests, without limitation. Optionally, the historical target access request is the previous target access request. 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. Therefore, the current component state information of the virtualization acceleration device 20 can be backed up to the target storage space. There is no limit on the time for backing up the current component state information to the target storage space.For example, the backup may be performed immediately after the current target access request is successfully processed, or the backup may be performed after a certain period of time after the current target access request is successfully processed. The interval may be 20 ms, 300 ms, or 500 ms. As shown in steps b1 to b3 of FIG. 2a and step S11 of FIG. 2b , replay processing is performed based on historical component status information, the backup of the current target access request, and the in-processing flag. If the virtualization acceleration device 20 fails to successfully process the target access request (e.g., if the virtualization acceleration device 20 experiences an exception or failure), to ensure the stability of the virtualization instance, the kernel-mode virtualization component 103a may replay the current target access request based on the historical component status information in the target storage space external to the virtualization acceleration device 20, the backup of the current target access request, and the in-processing flag. This allows for timely and correct processing of the access request, reducing the probability of virtualization instance exceptions or downtime. In the disclosed embodiment, a user-mode virtualization component is deployed on a virtualization acceleration device, while a kernel-mode virtualization component is deployed on a host machine. For a current target access request requiring processing by the user-mode virtualization component, 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 coordinates with component state 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 state information, the target access request backup, and the "in-process" flag. This ensures timely and accurate processing of the access request, reducing the probability of virtualized instance exceptions or downtime. In an optional embodiment, 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, the health status information may be reported every 1 ms, 50 ms, or 1 minute. This health status information indicates that the virtualization acceleration device 20 can successfully process the target access request (e.g., the virtualization acceleration device 20 has not experienced any failure or abnormality). If the first information monitoring module does not receive the health status information reported by the second information monitoring module within a set duration, 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 any failure or abnormality). The first information monitoring module then reports a notification indicating that the virtualization acceleration device 20 cannot successfully process the target access request (e.g., the virtualization acceleration device 20 has experienced any failure or abnormality) to the kernel-mode virtualization component. The set duration may be 50 ms, 500 ms, or 2 minutes.Accordingly, kernel-mode virtualization component 103a receives the notification information, obtains the target access request marked as being processed, and replays the target access request marked as being processed based on the historical component state information and the backup of the target access request. In an optional embodiment, during the initialization of the virtualization instance, kernel-mode virtualization component 103a, in addition to allocating virtual computing resource objects and memory resource objects, may also configure the ability to instruct the target virtualization instance to trap to kernel-mode virtualization component 103a when a target access request is initiated. For example, conditions for the target virtualization instance to trap to kernel-mode virtualization component 103a are pre-set, including but not limited to: the target virtualization instance initiating a target access request. Once the conditions are met, the target virtualization instance is triggered to trap to the kernel-mode virtualization component. For example, if the virtualization instance is implemented as a VM, the VM traps to the kernel-mode virtualization component via a VM-Exit instruction. When the target virtualization instance is triggered to fall into the kernel-mode virtualization component, 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 virtualization instance target access request 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. In an optional embodiment, the kernel-mode virtualization component 103a does not limit the implementation method for adding a mark to the current target access request. For example, the target virtualization instance processes the target access request at the granularity of a virtual computing resource object. For example, if the target access request is a PIO request, different PIO requests are processed by different virtual computing resource objects. Therefore, the mark can be added at the virtual computing resource object level. The target virtualization instance is allocated with 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 a processing flag to the target virtual computing resource object to indicate that a target access request is being processed.For example, 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. In an optional embodiment, if 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. As shown in steps a8 and a9 in FIG. 2a and step S08 in FIG. 2b, 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 result 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. In step S10, the kernel-mode virtualization component returns the processing result to the target virtualization instance. For example, in a Linux system, the kernel-mode virtualization component 103a may be KVM. KVM writes the processing result into the VMCS structure via 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 obtained by the user-mode virtualization component 103b processing the current target access request using the IO device simulated by virtualization technology. Depending on the current target access request, the virtual 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 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. If the current target access request is to "end the hibernation state of the virtualized instance," the virtual device that processes the current target access request is the "ACPI device," and the processing result of the current target access request is information about the result of the ACPI device waking up the virtualized instance. Optionally, the operating system of the host machine 10 and the operating system of the virtualization acceleration device 20 have shared memory.The 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. If the shared memory is the memory space of the host machine 10, 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 then 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. In either case, 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, and 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. For example, 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, if the user-mode virtualization component 103b successfully processes the current target access request, it writes the processing result of the current target access request to the shared memory, as shown in step a8 in FIG. 2a . The kernel-mode virtualization component 103a may also read the processing result from the shared memory, as shown in step a9 in FIG. 2a , and provide the processing result to the target virtualization instance, and clear the current target access request that is marked and backed up during processing, as shown in steps a1 and a10 in FIG. The order of executing steps a11 and a10 is not limited; step a11 may be executed first, followed by step a10, or step a10 may be executed first, followed by step a11, or both steps a11 and a10 may be executed simultaneously.In an optional embodiment, the implementation method for the user-state virtualization component 103b to back up the current component state information to the target storage space is not limited. Depending on the location of the target storage space, the implementation method for the user-state virtualization component 103b to back up the current component state information may also vary. For example, when the target storage space is storage space on the host machine 10, the current component state information is sent to the target storage space via the interconnect bus between the virtualization acceleration device 20 and the host machine 10. Taking a PCIE bus as an example, the implementation method for the user-state virtualization component 103b to back up the current component state information to the target storage space will be described. The user-state 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. For another example, when the target storage space is storage space external to the host machine 10, the current component state information is sent to the target storage space via the network interface card module of the virtualization acceleration device 20. The virtualization acceleration device interacts with external storage space (e.g., cloud storage) through a network card module. For example, user-mode virtualization component 103b writes current component state information into the memory space of virtualization acceleration device 20, and the operating system of virtualization acceleration device 20 provides the current component state information to the target storage space in the cloud via the network card module. In an optional embodiment, 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 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 a virtual resource object of a virtualized instance is simulated by the corresponding virtualization component. Accordingly, access requests from the virtualized instance to the virtual resource object are processed by the corresponding virtualization component. For example, assuming that the host operating system is Linux, the kernel-mode virtualization component 103a is KVM, the user-mode virtualization component 103b is Qemu, and the access request is a PIO request, a PIO request corresponds to a port number (port), and different port numbers correspond to different virtual devices. Accordingly, KVM can maintain a port-Qemu correspondence and a port-KVM correspondence.For example, consider a case where the host operating system is Linux, the kernel-mode virtualization component 103a is KVM, the user-mode virtualization component 103b is Qemu, and 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. Based on the above, 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. If the determination is yes, 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. Optionally, if the judgment result is negative, the kernel-mode virtualization component 103a processes the current access request and returns the processing result to the target virtualization instance. In an optional embodiment, the implementation method of the kernel-mode virtualization component 103a replaying the current target access request is not limited. An exemplary description is provided below. Example B1: Replay processing is performed on another virtualization acceleration device of the host machine. If the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, the kernel-mode virtualization component 103a obtains 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 obtained 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 subsequent operations are required. Based on the historical component state information, kernel-mode virtualization component 103a creates a user-mode virtualization component on another virtualization acceleration device, which is responsible for the target virtualization instance. This component is 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. Optionally, a shared memory can be created between kernel-mode virtualization component 103a and the new user-mode virtualization component to facilitate information exchange between the two components. 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.Optionally, if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, local replay prompt information may be output to trigger replay of the current target access request on the other virtualization acceleration device. It should be noted that when 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. It should be noted that 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. Alternatively, 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. Alternatively, it can be implemented when the host machine includes another virtualization acceleration device and the other virtualization acceleration device is unavailable. The unavailability of the other virtualization acceleration device may be due to an abnormality in the other virtualization acceleration device or a high load that prevents the other virtualization acceleration device from providing services for more virtualized instances. Alternatively, it can be implemented when the host machine 10 does not include another virtualization acceleration device. It should be noted that the state save chain used in live migration is used to back up the current component state information. This save chain can be in the form of a linked list and can save the state of each device in the user-mode virtualization component 103b in binary format. Since a virtualization instance (e.g., a VM) can change the state of the simulated 10 device through a target access request (e.g., a PIO request or an MMIO request), it is necessary to save the current component state information after the target access request is processed. Optionally, since the component state of the user-mode virtualization component 103b remains unchanged when the target access request is a read operation, the current component state information can be backed up to reduce computing resource consumption when the target access request is a write operation. Examples B1 and B2 above provide implementations for replaying the current target access request using historical component state information, a backup of the current target access request, and a processing-in-progress mark when the virtualization acceleration device fails to successfully process the target access request. In Example B1, the target access request can be replayed on another virtualization acceleration device. In Example B2, the target virtualization instance can be restored and the current target access request replayed on another normal host machine, avoiding virtualization instance downtime and data loss. In addition to providing system embodiments, 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:

[0002] 301. 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;

[0003] 302. Back up the current target access request and add a processing mark, and provide the current target access request to the user-mode virtualization component deployed on the virtualization acceleration device for processing;

[0004] 303. If 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. In this embodiment, 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. If the replay is performed by the current host machine, another virtualization acceleration device on the host machine cooperates in performing the replay. If the replay is performed by another host machine, the other host machine and the virtualization acceleration device thereon cooperate in performing the replay. For detailed descriptions, please refer to the previous embodiments and will not be repeated here. In an optional embodiment, 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. In an optional embodiment, 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 responsible for processing the current target access request; and adding a processing flag to the target virtual computing resource object to indicate that a target access request is being processed. In an optional embodiment, 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. Optionally, the method provided by the embodiment of the present disclosure further includes: reading the 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 current target access request marked and backed up in the process.In an optional embodiment, 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. In an optional embodiment, 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. In an optional embodiment, replaying the current target access request based on historical component state information, a backup of the current target access request, and a mark in progress 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 progress on the other host machine. Optionally, 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 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. 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:

[0005] 401. Obtain a current target access request provided by a kernel-mode virtualization component in a 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.

[0006] 402. Process the current target access request and, if the current target access request is successfully processed, back up the current component state information to the target storage space for replay processing of subsequent target access requests. 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 storage space external to the virtualization acceleration device. In an optional embodiment, obtaining the current target access request provided by the kernel-mode virtualization component in the virtualization manager includes: reading the current target access request written by the kernel-mode virtualization component from 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. Optionally, the method provided in the embodiment of the present disclosure further includes: if the current target access request is successfully processed, writing 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 the target storage space, clearing historical component state information stored in the target storage space. In an optional embodiment, 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; 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 card module of the virtualization acceleration device. The detailed implementation and beneficial effects of each step in the method shown in Figures 3 and 4 according to the embodiments of the present disclosure have been described in detail in the previous embodiments and will not be elaborated upon here. It should be noted that the execution entity of each step of the method provided in the above embodiments can be the same device, or the method can be executed by different devices. For example, the execution entity of steps 301 to 303 can be a device; for another example, the execution entity of steps 301 and 302 can be a device, and the execution entity of step 303 can be device B; and so on. In addition, some of the processes described in the above embodiments and the accompanying drawings 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. Operation numbers, such as 301 and 302, are merely used to distinguish between different operations and do not represent any specific execution order. Furthermore, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel.It should be noted that the descriptions such as "first" and "second" in this document are used to distinguish different messages, devices, modules, etc., and do not represent a sequence, nor do they limit "first" and "second" to different types. 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 storage space external to the virtualization acceleration device. In an optional embodiment, the interception module 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, when the target virtualization instance traps to the kernel-mode virtualization component, intercept the current target access request initiated by the target virtualization instance. In an optional embodiment, the first processing module 52 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 flag to the target virtual computing resource object to indicate that a target access request is being processed. In an optional embodiment, 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. Optionally, the first processing module is further configured to: read the processing result of the user state 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 in processing.In an optional embodiment, 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. In an optional embodiment, 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. In an optional embodiment, 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. Optionally, 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 structural diagram of another data processing apparatus provided by an exemplary embodiment of the present disclosure. The apparatus corresponds to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager. As shown in FIG6 , the apparatus 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 the kernel-mode virtualization component in the virtualization manager, where the current target access request is initiated by a target virtualization instance running on the 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, upon successful processing of the current target access request, back 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 successfully processing the current target access request, and the target storage space is storage space external to the virtualization acceleration device.In an optional embodiment, the acquisition module 61 is specifically configured to read the current target access request written by the kernel-mode virtualization component from the 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. Optionally, 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. In an optional embodiment, 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; and 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 detailed implementation and beneficial effects of each step in the apparatus shown in Figures 5 and 6 according to the embodiments of the present disclosure have been described in detail in the previous embodiments and will not be elaborated upon here. Figure 7 is a schematic structural diagram of a physical machine according to an exemplary embodiment of the present disclosure. This physical machine corresponds to a kernel-mode virtualization component in a virtualization manager deployed on a host machine. As shown in Figure 7, the device includes a memory 74 and a processor 75. 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.In an optional embodiment, when intercepting a current target access request initiated by a target virtualization instance, processor 75 is specifically configured to: during initialization, configure the target virtualization instance to trap to a kernel-mode virtualization component when initiating a target access request; and when the target virtualization instance traps to a kernel-mode virtualization component, intercept the current target access request initiated by the target virtualization instance. In an optional embodiment, when adding a "processing in progress" flag to the current target access request, processor 75 is specifically configured to: determine, from at least one virtual computing resource object allocated to the target virtualization instance, a 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. In an optional embodiment, 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; the shared memory is memory space on the host machine or memory space on the virtualization acceleration device. Optionally, the processor 75 is further configured to: read the result of the user-mode virtualization component's processing of the current target access request from the shared memory and provide it to the target virtualization instance; and clear the current target access request that is marked and backed up during processing. In an optional embodiment, when intercepting the current target access request initiated by a target virtualization instance running on the host machine, the processor 75 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 so, treat the current access request as the current target access request. In an optional embodiment, when replaying the current target access request based on the historical component state information, the backup of the current target access request, and the in-processing mark, the processor 75 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 in-processing mark; 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 redo processing.In an optional embodiment, when processor 75 marks the current target access request for replay based on historical component state information and during the backup and processing of the current target access request, it 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 based on historical component state information and during the backup and processing of the current target access request. Optionally, when processor 75 controls the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine, it 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. The detailed implementation and beneficial effects of each step in the device shown in FIG. 7 provided in the embodiments of the present disclosure have been described in detail in the aforementioned embodiments and will not be elaborated upon here. Furthermore, as shown in FIG7 , the physical machine also includes other components, such as a communication component 76, a display 77, a power supply component 78, and an audio component 79. FIG7 only schematically illustrates some components, which does not mean that the physical machine only includes the components shown in FIG7 . Furthermore, the components within the dashed box in FIG7 are optional, not required, and their specific selection depends on the product form factor of the physical machine. The physical machine of this embodiment can be implemented as a terminal device such as a desktop computer, a laptop computer, a smartphone, or an IoT device, or as a server-side device such as a conventional server, a cloud server, or a server array. If the physical machine of this embodiment is implemented as a terminal device such as a desktop computer, a laptop computer, or a smartphone, it may include the components within the dashed box in FIG7 ; 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 within the dashed box in FIG7 . The present disclosure also provides a data processing device, corresponding to a user-mode virtualization component deployed on a virtualization accelerator device within a virtualization manager. The implementation structure of this data processing device is identical or similar to that of the physical machine shown in FIG7 , and can be implemented with reference to the physical machine structure shown in FIG7 . The data processing device provided in this embodiment differs primarily from the physical machine shown in FIG7 in that the processor implements different functions by executing a computer program stored in memory.In the data processing device provided in this embodiment, the processor executes a computer program stored in a memory, which is configured to: obtain a current target access request provided by a kernel-mode virtualization component in a 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 resides; process the current target access request, and if the current target access request is successfully processed, back up current component state information to a target storage space for replay processing of subsequent target access requests; 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 storage space external to the virtualization acceleration device. In an optional embodiment, when obtaining the 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. In an optional embodiment, the processor is further configured to: upon successfully processing the current target access request, write the processing result of the current target access request to 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. In an optional embodiment, when backing up the current component state information to the target storage space, the processor 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 an 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, send the current component state information to the target storage space via a network interface card module of the virtualization acceleration device. The detailed implementation and beneficial effects of the data processing device provided by the embodiments of the present disclosure have been described in detail in the aforementioned embodiments and will not be elaborated upon here. Accordingly, the embodiments of the present disclosure also provide a computer-readable storage medium storing a computer program. When executed, the computer program can implement the steps executable by the data processing device in the method embodiments illustrated in Figures 3 and 4 above. Accordingly, an embodiment of the present disclosure further provides a computer program product, including a computer program / instruction. When the computer program / instruction is executed by a processor, the processor is caused to implement the steps in the method shown in FIG. 3-FIG . 4 .The above-mentioned memory can be implemented by any type of volatile or non-volatile memory device or a combination thereof, such as static random-access memory (SRAM) and electrically erasable programmable read-only memory.

[0007] Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk. The aforementioned communication component is configured to facilitate wired or wireless communication between the device containing the communication component and other devices. The device containing the communication component can access a wireless network based on a communication standard, such as WiFi, 2G, 3G, 4G / LTE, 5G, or other mobile communication networks, or a combination thereof. In one exemplary embodiment, the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication component also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra Wide Band (UWB) technology, Bluetooth (BT) technology, and other technologies. The above-mentioned display includes a screen, which can include a Liquid Crystal Display (LCD) and a touch panel (TP). OIf the screen includes a touch panel, it can be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, slides, and gestures on the touch panel. The touch sensors can not only sense the boundaries of a touch or slide action, but also detect the duration and pressure associated with the touch or slide action. The power supply assembly described above provides power to various components of the device in which the power supply assembly is located. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply assembly is located. The audio assembly described above can be configured to output and / or input audio signals. For example, the audio assembly includes a microphone (MIC) that is configured to receive external audio signals when the device in which the audio assembly is located is in an operating mode, such as call mode, recording mode, or voice recognition mode. The received audio signals may be further stored in a memory or transmitted via a communication component. In some embodiments, the audio assembly also includes a speaker for outputting audio signals. Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to magnetic disk storage, compact disc read-only memory (CD-ROM), optical storage, etc.) containing computer-usable program code. The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing device, produce means for implementing the functions specified in one or more processes in the flowcharts and / or one or more blocks in the block diagrams. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device, which implements the functions specified in one or more processes in the flowchart and / or one or more blocks in the block diagram.These computer program instructions can also be loaded onto a computer or other programmable data processing device, causing the computer or other programmable device to execute a series of operational steps to produce a computer-implemented process. The instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flow charts and / or one or more blocks in a block diagram. In a typical configuration, a computing device includes one or more processors (Central Processing Units, CPUs), input / output interfaces, network interfaces, and memory. Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. oMemory is an example of computer-readable media. Computer-readable media includes both permanent and non-permanent, removable and non-removable media, and can be implemented using any method or technology to store information. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmitting medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves. It should also be noted that the terms "comprise," "include," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, product, or apparatus comprising a list of elements may include not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, product, or apparatus. Without further limitation, the phrase "comprising a..." does not preclude the presence of additional identical elements in the process, method, product, or apparatus comprising the elements. The foregoing are merely examples of the present disclosure and are not intended to limit the present disclosure. Those skilled in the art will readily appreciate that various modifications and variations of the present disclosure are possible. Any modifications, equivalent substitutions, improvements, and the like made within the spirit and principles of the present disclosure are intended to be encompassed by the claims of the present disclosure.Industrial Applicability In the disclosed embodiments, a user-mode virtualization component is deployed on a virtualization acceleration device, and a kernel-mode virtualization component is deployed on a host machine. 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 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 allows for timely and accurate processing of access requests, reducing the probability of virtualized instance anomalies or downtime.

Claims

22 Claims 1. A computer device, comprising: A host machine and a virtualization acceleration device; a kernel-mode virtualization component of a virtualization manager is deployed on the host machine, and a user-mode virtualization component of the virtualization manager is 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 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, replaying the current target access request based on the historical component state information backed up by the user-mode virtualization component to the target storage space, the backup of the current target access request, and the processing mark; The user-state virtualization component is used 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 the target storage space for replay processing of subsequent target access requests; The target storage space is a storage space outside the virtualization acceleration device.

2. The computer device according to claim 1, wherein: When the kernel-mode virtualization component adds a processing mark to the current target access request, it is specifically used 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; and add a processing mark to the target virtual computing resource object to indicate that a target access request is being processed.

3. The computer device according to claim 1, wherein: When replaying the current target access request, the kernel-mode virtualization component is specifically configured to: obtain the historical component state information from the target storage space based on the processing mark when 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 processing.

4. The computer device according to claim 1 or 2, wherein: When the kernel-mode virtualization component replays the current target access request, it is specifically used to: control the target virtualization instance to pause operation to trigger the 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 the historical component state information, the backup of the current target access request and the processing mark.

5. A data processing method, applied to a kernel-mode virtualization component in a virtualization manager deployed on a host machine, The method comprises: intercepting a current target access request initiated by a target virtualization instance running on a host machine equipped with a virtualization acceleration device and on which a user-mode virtualization component in the virtualization manager is deployed; backing up and adding a processing-in-progress mark to the current target access request, and providing the current target access request to the user-mode virtualization component deployed on the virtualization acceleration device for processing; If the current target access request is not successfully processed, replay the current target access request based on the historical component state information, the backup of the current target access request and the processing mark; The historical component state information is state information of the user-state virtualization component backed up to a target storage space when the user-state virtualization component successfully processes a historical target access request. The target storage space is a storage space outside the virtualization acceleration device.

6. The method according to claim 5, wherein: It also includes: during the initialization process, configuring the target virtualization instance to have the ability to trap into the kernel-mode virtualization component when initiating a target access request; intercepting the current target access request initiated by the target virtualization instance, including: when the target virtualization instance traps into the kernel-mode virtualization component, intercepting the current target access request initiated by the target virtualization instance.

7. The method according to claim 5, wherein: Adding a processing mark to the current target access request includes: determining a 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; and adding a processing mark to the target virtual computing resource object to indicate that a target access request is being processed.

8. The method according to claim 5, wherein: Intercepting a current target access request initiated by a target virtualization instance running on a host machine, comprising: 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 a target virtual resource object requested to be accessed by the current target access request is virtualized by the user-mode virtualization component; and if the determination result is yes, treating the current access request as the current target access request.

9. The method according to claim 5, wherein: Replaying the current target access request based on the historical component state information, the backup of the current target access request, and the in-processing mark includes: if the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, obtaining the historical component state information from the target storage space according to the in-processing mark; creating a user-state virtualization component responsible for the target virtualization instance on the other virtualization acceleration device based on the historical component state information; and providing the backed-up current target access request to the user-state virtualization component responsible for the target virtualization instance on the other virtualization acceleration device for redo processing.

10. The method according to any one of claims 5 to 8, wherein: Replaying the current target access request based on the historical component state information, the backup of the current target access request, and the processing mark includes: The target virtualized instance is controlled to pause operation to trigger migration of the target virtualized instance to another host machine, so as to replay the current target access request on the other host machine based on the historical component state information, the backup of the current target access request, and the processing mark.

11. The method according to claim 10, wherein: Controlling the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine includes: 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, controlling the target virtualization instance to suspend operation to trigger migration of the target virtualization instance to another host machine.

12. A data processing method, applied to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager, the method comprising: Obtaining a current target access request provided by a kernel-mode virtualization component in a 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; Processing the current target access request, and if the current target access request is successfully processed, backing up the current component state information to the target storage space for replay processing of subsequent target access requests; The current component state information is state information of the user-mode virtualization component when successfully processing the current target access request, and the target storage space is a storage space outside the virtualization acceleration device.

13. The method according to claim 12, wherein: Obtaining a current target access request provided by a kernel-mode virtualization component in a virtualization manager includes: reading, from a shared memory between the kernel-mode virtualization component and the user-mode virtualization component, the current target access request written by the kernel-mode virtualization component; the shared memory being a memory space on the host machine or a memory space on the virtualization acceleration device.

14. The method according to claim 13, wherein: Also includes: When the current target access request is successfully processed, the processing result of the current target access request is written into the shared memory to be provided to the kernel state virtualization component; And / or when backing up the current component state information to the target storage space, clearing the historical component state information stored in the target storage space.

15. A physical machine, comprising: Memory and processor; The memory is used to store computer programs; The processor, coupled to the memory, is configured to execute the computer program to implement the steps in the method according to any one of claims 5 to 11.

16. A computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, the processor is caused to implement the steps of the method according to any one of claims 5 to 11 and claims 12 to 14.

17. A computer program product, comprising a computer program / instruction, which, when executed by a processor, causes the processor to implement the steps of the method according to any one of claims 5 to 11 and claims 12 to 14.

Citation Information

Patent Citations

  • Heterogeneous storage disaster recovery management system and heterogeneous storage disaster recovery management method

    CN103795742A

  • Virtual machine monitoring method, apparatus and system

    CN105824682A

  • Method and device for processing I / O requests under KVM virtualization

    CN106970821A

  • Execution environment virtualization method and apparatus, and virtual execution environment access method and apparatus

    CN107038128A

  • MMIO processing method and device

    CN115357334A