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

By deploying kernel-state virtualization components and user-state virtualization components on the host, combined with virtualization, accelerating the playback processing of the external storage space of the device, the virtualization instance problem caused by microservice card processing exceptions is solved, and the stability and efficiency of the virtualization system are improved.

CN120540772APending Publication Date: 2025-08-26HANGZHOU ALICLOUD FEITIAN INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410211159.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-02-26
Publication Date
2025-08-26

AI Technical Summary

Technical Problem

The failure of the microservice card to handle related virtualization operations correctly or in a timely manner may cause abnormal or downtime of the virtualization instance, affecting the virtualization efficiency and stability.

Method used

Deploy the kernel-state virtualization component on the host, intercept access requests and back up to the user-state virtualization component, add processing marks, and use virtualization to accelerate the replay processing of the storage space outside the device to ensure the timely and correct processing of access requests.

Benefits of technology

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

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120540772A_ABST
    Figure CN120540772A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides computer equipment, a physical machine, a data processing method, a storage medium and a program product. In the embodiment of the invention, a user mode virtualization component is deployed on a virtualization acceleration device, a kernel mode virtualization component is deployed on a host machine, and for a current target access request needing to be processed by the user mode virtualization component, the kernel mode virtualization component intercepts the target access request and then backs up and adds a processing mark to the target access request. And in cooperation with component state information backed up to the outside of the virtualization acceleration equipment by the user state virtualization component before, under the condition that the virtualization acceleration equipment fails to successfully process the current target access request, the target access request is backed up and processed on the basis of historical component state information backed up before, and the target access request is backed up and processed. And the current target access request is replayed, so that the access request is timely and correctly processed, and the probability of virtualization instance abnormity or downtime is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of cloud computing technology, and in particular to a computer device, a physical machine, a data processing method, a storage medium, and a program product. Background Art

[0002] Virtualization is a key technology in cloud computing. To implement virtualization, a virtual machine monitor (VMM) is deployed on the 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).

[0003] With the development of cloud computing technology, in order to improve virtualization efficiency, dedicated virtualization cards, also known as microservice cards, have been introduced for host machines. By running some virtualization functions on the microservice cards, the load on the host machine can be reduced, which is conducive to improving virtualization efficiency.

[0004] However, for the host machine, the microservice card is equivalent to an IO device. If the microservice card cannot process related virtualization operations correctly or in a timely manner, it may cause VM abnormalities or downtime. Summary of the Invention

[0005] Various aspects of the present application provide a computer device, a physical machine, a data processing method, a storage medium, and a program product for reducing the probability of virtualization instance anomalies or downtime caused by the inability of a microservice card to correctly or promptly process related virtualization operations.

[0006] An embodiment of the present application provides a computer device, comprising: a host machine and a virtualization acceleration device; a kernel-mode virtualization component in a virtualization manager is deployed on the host machine, and a user-mode virtualization component in 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 mark 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 status information backed up to a target storage space by the user-mode virtualization component, the backup of the current target access request, and the processing mark; 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 status information to the target storage space for replay processing of subsequent target access requests; the target storage space is a storage space external to the virtualization acceleration device.

[0007] An embodiment of the present application also 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 comprising: intercepting a current target access request initiated by a target virtualization instance running on the host machine, the host machine being equipped with a virtualization acceleration device, and the user-mode virtualization component in the virtualization manager being deployed on the virtualization acceleration device; backing up the current target access request and adding a processing mark, 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, replaying the current target access request based on historical component status information, the backup of the current target access request, and the processing mark; wherein the historical component status information is status information of the user-mode virtualization component backed up to a target storage space by the user-mode virtualization component when successfully processing the historical target access request, and the target storage space is a storage space outside the virtualization acceleration device.

[0008] An embodiment of the present application also provides a data processing method, which is applied to a user-state virtualization component deployed on a virtualization acceleration device in a virtualization manager. The method includes: obtaining a current target access request provided by a kernel-state virtualization component in the virtualization manager, where the current target access request is initiated by a target virtualization instance running on a host machine where the kernel-state virtualization component is located; 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-state virtualization component when the current target access request is successfully processed, and the target storage space is a storage space outside the virtualization acceleration device.

[0009] An embodiment of the present application also provides a physical machine, including: a memory and a processor; the memory is used to store a computer program; the processor is coupled to the memory and is used to execute the computer program to implement each step in the data method provided in the embodiment of the present application.

[0010] An embodiment of the present application further provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, the processor implements the steps of the data processing method provided in the embodiment of the present application.

[0011] An embodiment of the present application also provides a computer program product, including a computer program / instruction. When the computer program / instruction is executed by a processor, the processor implements the steps of the data processing method provided in the embodiment of the present application.

[0012] In an embodiment of the present application, a user-state virtualization component is deployed on a virtualization acceleration device, and a kernel-state virtualization component is deployed on a host machine. For a current target access request that needs to be processed by the user-state virtualization component, the kernel-state virtualization component intercepts the target access request, backs it up, and adds a processing mark. In addition, the user-state virtualization component cooperates with the component status information previously backed up to the outside of the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the current target access request is replayed based on the previously backed-up historical component status information, the backup of the target access request, and the processing mark. This allows the access request to be processed in a timely and correct manner, reducing the probability of causing virtualization instance abnormalities or downtime. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0014] Figure 1aA schematic diagram of the structure of a host machine provided by an exemplary embodiment of the present application;

[0015] Figure 1b A schematic structural diagram of a computer device provided for an exemplary embodiment of the present application;

[0016] Figure 2a A schematic diagram of the interaction between a kernel-mode virtualization component and a user-mode virtualization component provided in an exemplary embodiment of the present application;

[0017] Figure 2b A flowchart of a data processing method provided by an exemplary embodiment of the present application;

[0018] Figure 3 A flowchart of another data processing method provided for an exemplary embodiment of the present application;

[0019] Figure 4 A flowchart of another data processing method provided by an exemplary embodiment of the present application;

[0020] Figure 5 A schematic structural diagram of a data processing device provided for an exemplary embodiment of the present application;

[0021] Figure 6 A schematic structural diagram of another data processing device provided by an exemplary embodiment of the present application;

[0022] Figure 7 A schematic structural diagram of another data processing device provided for an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0023] To make the purpose, technical solutions, and advantages of this application more clear, the technical solutions of this application will be clearly and completely described below in conjunction with the specific embodiments of this application and the corresponding drawings. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0024] 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 application 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 provide corresponding operation entrances for users to choose to authorize or refuse.

[0025] In response to the above technical problems, in an embodiment of the present application, a user-state virtualization component is deployed on a virtualization acceleration device, and a kernel-state virtualization component is deployed on a host machine. For a current target access request that needs to be processed by the user-state virtualization component, the kernel-state virtualization component intercepts the target access request and backs up the target access request and adds a processing mark. In addition, the user-state virtualization component cooperates with the component status information previously backed up to the outside of the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the current target access request is replayed based on the previously backed-up historical component status information, the backup of the target access request, and the processing mark. This allows the access request to be processed in a timely and correct manner, reducing the probability of causing virtualization instance abnormalities or downtime.

[0026] A solution provided by an embodiment of the present application is described in detail below with reference to the accompanying drawings.

[0027] Figure 1a A schematic diagram of the structure of a host machine provided by an exemplary embodiment of the present application is shown as follows: Figure 1a As shown, the host machine 10 includes: hardware resources 101, and a virtualization manager 103 is deployed on the hardware resources.

[0028] In this embodiment, the hardware resources 101 include at least physical computing resource objects. The physical computing resource objects may be various physical resource objects with computing capabilities, such as a central processing unit (CPU), a graphics processing unit (GPU), a data processing unit (DPU), a tensor processing unit (TPU), and an application-specific integrated circuit (ASIC).

[0029] In addition, the hardware resources 101 on the host machine may also include: memory, communication components, display, power components, audio components and other components, which are not described in detail here. Among them, the memory can provide the host machine's memory space and persistent storage space. Among them, the storage medium of the memory space includes but is not limited to: random access memory (RAM), and the storage medium of the persistent storage space includes but is not limited to: solid-state drive (SSD) and the like. Furthermore, a host operating system (OS) 102 is also running on the hardware resources 101.

[0030] 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 the software of the host operating system 102. Based on this, the virtualization manager can also be regarded as software running on the host operating system 102, without limitation. Figure 1a In the figure, the virtualization manager 103 is illustrated as software running in the host operating system 102. The virtualization manager 103 is used to create and manage virtualization instances on the host. Any virtualization manager that can manage virtualization instances is applicable to the embodiments of the present application. For example, the virtualization manager can be a VMM, which can also be called a Hypervisor. Hypervisor allows multiple operating systems and applications to share a set of basic physical resources. Therefore, it can also be regarded as a "meta" operating system in a virtual environment and is the core of implementing virtualization technology. Among them, virtualization instances can include but are not limited to: cloud hosts, elastic computing services (Elastic Compute Service, ECS), virtual machines (VMs) or containers, etc.

[0031] In this embodiment, the virtualization manager 103 includes a kernel-mode virtualization component 103a and a user-mode virtualization component 103b. The kernel-mode virtualization component 103a runs in the kernel space of the host operating system, while the user-mode virtualization component 103b runs in the user space of the host operating system. For example, in an embedded (Linux) operating system, the user-mode virtualization component 103b may be a Quick EMUlator (Qemu), and the kernel-mode virtualization component 103a may be a kernel-based virtual machine (KVM).

[0032] The virtualization methods implemented by the user-mode virtualization component 103b and the kernel-mode virtualization component 103a are not limited. For example, the user-mode virtualization component 103b is responsible for virtualizing I / O devices, while the kernel-mode virtualization component 103a is responsible for virtualizing virtual computing resource objects and virtual memory objects. For another example, the user-mode virtualization component 103b is responsible for virtualizing a portion of I / O devices, while the kernel-mode virtualization component 103a is responsible for virtualizing another portion of I / O devices, virtual computing resource objects, and memory resource objects. For example, the user-mode virtualization component 103b may be responsible for virtualizing a portion of I / O devices with a small amount of transmitted data and a low frequency, including but not limited to: a real-time clock (RTC), an Advanced Configuration and Power Management Interface (ACPI) device, a PCI bus device, an Advanced Technology Attachment (ATA) device, and a mouse. The kernel-mode virtualization component 103a may be responsible for virtualizing another portion of I / O devices with a large amount of transmitted data and a high frequency, such as a camera or a display.

[0033] Optionally, the functions that the user-state virtualization component 103b can implement also include: configuration management of virtualization instances, lifecycle management, and some specific virtual machine technologies (such as dynamic migration); the functions that the kernel-state virtualization component 103a can implement also include: creation of virtualization instances, allocation of virtual memory, reading and writing of virtual registers, and operation of virtual computing resource objects.

[0034] Regardless of which of the above-mentioned virtualization implementation methods is used, the user-mode virtualization component 103b and the kernel-mode virtualization component 103a can cooperate with each other to create and manage virtualized instances on the host machine. For example, the kernel-mode virtualization component 103a creates a virtualized instance and, during the initialization of the virtualized instance, creates a virtual computing resource object for the virtualized instance that is hosted on a physical computing resource object, and allocates a virtual memory resource object to the virtualized instance; the user-mode virtualization component 103b simulates a virtual IO device for the virtualized instance; and the kernel-mode virtualization component 103a schedules the virtual computing resource object to run the virtualized instance. During the operation of the virtualized instance, the kernel-mode virtualization component 103a intercepts the access request (IO request) of the virtualized instance and provides the access request to the user-mode virtualization component 103b; the virtual IO device simulated by the user-mode virtualization component 103b processes the access request, and the processing result is returned to the virtualized instance through the kernel-mode virtualization component 103a.

[0035] The number of virtual computing resource objects allocated to the virtualized instance can be one or more, for example, 4, 8, or 16. Depending on the physical computing resource object, the virtual computing resource objects carried on the physical computing resource object will also be different. If the physical computing resource object is a VPU, GPU, DPU, TPU, CIPU, or ASIC, then the corresponding virtual computing resource object can be a virtual vCPU, virtual (virtual GPU, vGPU), virtual (virtual DPU, vDPU), virtual (virtual TPU, vTPU), virtual (virtual CIPU, vCIPU), or virtual (virtual ASIC, vASIC), etc.

[0036] With the development of cloud computing technology, a virtualization acceleration device 20 has been introduced for host machines 10 to improve virtualization efficiency. Virtualization acceleration device 20 is a device that implements virtualization technology and can help interconnected host machines 10 implement at least some virtualization functions. In other words, host machines 10 can offload some or all virtualization functions to virtualization acceleration device 20, thereby achieving performance acceleration.

[0037] This embodiment does not limit the implementation form of the virtualization acceleration device 20, and its implementation form may include but is not limited to: application-specific integrated circuit (ASIC), system-on-chip (SOC), field programmable gate array (FPGA) or 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. Among them, the computing resources of the virtualization acceleration device 20 include but are not limited to: CPU, GPU, TPU, etc., which are not limited to this. The storage resources of the virtualization acceleration device 20 may include but are not limited to: local storage resources such as memory and hard disk, and may include cloud storage resources such as cloud disk and network attached storage (NAS). Network resources may include but are not limited to: communication components such as network cards.

[0038] In this embodiment, the virtualization acceleration device 20 adopts 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.

[0039] The virtualization acceleration device 20 may be interconnected with the host machine via an interconnection bus, and the interconnection bus may include but is not limited to: a Peripheral Component Interconnect (PCI) bus and a Peripheral Component Interconnect Express (PCIE) bus.

[0040] When the host machine 10 and the virtualization acceleration device 20 are interconnected, the reliability and efficiency of information transmission between them can be guaranteed, facilitating the offloading of some or all virtualization functions on the host machine 10 to the virtualization acceleration device 20. Furthermore, leveraging the software and hardware resources of the virtualization acceleration device 20, some virtualization functions originally implemented on the host machine can be offloaded to the virtualization acceleration device 20, reducing the load on the host machine and improving virtualization efficiency.

[0041] like Figure 1b As shown, the user-mode virtualization component 103b originally on the host machine 10 is run on the virtualization acceleration device 20. The user-mode virtualization component 103b is deployed on the virtualization acceleration device 20 and implements virtualization functions on the virtualization acceleration device 20. For example, the user-mode virtualization component 103b implements IO device virtualization on the virtualization acceleration device 20. However, for the host machine 10, the virtualization acceleration device 20 is equivalent to an IO device. If the virtualization acceleration device 20 fails to correctly or promptly process the relevant virtualization operations, it may cause the virtualized instance on the host machine 10 to be abnormal or crash. The reasons why the virtualization acceleration device 20 fails to correctly or promptly process the relevant virtualization operations are not limited. For example, the virtualization acceleration device 20 may experience an abnormality or failure. The reasons for the abnormality of the virtualization acceleration device 20 include but are not limited to: an uncorrectable error (UCE) of the processor, a system kernel error (Linux kernel panic), etc. For another example, the interconnection bus between the virtualization acceleration device 20 and the host machine 10 may experience an abnormality.

[0042] Based on this, to improve virtualization stability, a fault-tolerance mechanism is provided for the virtualization acceleration device 20. The kernel-mode virtualization component 103a backs up the access request and adds a flag indicating that it is being processed (referred to as the "processing flag" for short). After the user-mode virtualization component 103b processes the access request, it 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 user-mode virtualization component 103b's historical component state information, the backup of the access request, and the "processing flag." This allows the access request to be processed promptly and correctly, reducing the probability of virtualized instance anomalies or downtime.

[0043] 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 a 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.

[0044] In this embodiment, the target virtualization instance can initiate various access requests. For ease of distinction and description, the specific access request that requires the user-mode virtualization component 103b to participate in processing is referred to as a target access request. The target access request is determined based on the virtualization function that the user-mode virtualization component 103b is responsible for. If the user-mode virtualization component is responsible for virtualization processing of IO devices, the target access request can be a port input / output (PIO) request or a memory-mapped input / output (MMIO) request.

[0045] Furthermore, a PIO request may include but is not limited to: input or output, port number (simulating a virtual IO device), IO times, IO value size, and IO value. The port number is identification information that can uniquely identify the simulated virtualized IO device; the IO times is the number of times an IO operation performs read / write operations, for example, an IO operation performs three read / write operations; 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 and write operations and the amount of data read or written each time; and the IO value is the address information corresponding to the read / write operation. An MMIO request may include but is not limited to: read / write operations, address information, length information, and IO value, wherein 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.

[0046] 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 and add a processing mark, and provide the current target access request to the user-mode virtualization component 103b for processing. Figure 2a Step a1 intercepts the current target access request initiated by the target virtualization instance, step a2 adds a processing mark, step a3 backs up the current target access request, and steps a4 and a5 provide the current target access request to the user-mode virtualization component 103b. Figure 2b In the example, steps a1 to a4 correspond to Figure 2b Steps S01 to S04 in .

[0047] Among them, the purpose of backing up the current target access request is: when the current target access request has not been processed by the user-state virtualization component 103b on the virtualization acceleration device, subsequent replay processing can be performed based on the backed-up current target access request, thereby reducing the probability of virtualization instance anomalies or downtime and improving the stability of the virtualization instance. The purpose of adding the "processing" mark is: to indicate that the current target access request is "processing". If the current target access request is processed by the user-state virtualization component 103b, the "processing mark" of the current target access request can be cleared. If the "processing mark" of the current target access request is not cleared within the set time, it means that the current target access request with the processing mark has not been processed, and replay processing needs to be performed on the target access request 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. For detailed description, please refer to the subsequent embodiments and will not be repeated here. Among them, the set time can be 10ms, 500ms or 1s, etc.

[0048] 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 the current target access request 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.

[0049] Among them, the method of adding the in-process mark is also not limited. For example, the kernel-mode virtualization component 103a maintains the correspondence between the identification information of the target access request and the mark bit, the mark bit defaults to 0, and adding the in-process mark can be to set the mark bit from 0 to 1. For another example, a in-process mark can be added for the target access request, and the in-process mark can be any number, letter and symbol alone or in combination, for example, the in-process mark is 12, 1_1 or 1@1, etc. 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 mark is not limited. For example, the operation of backing up the current target access request can be performed first, and then the operation of adding the in-process mark is performed, or the operation of adding the in-process mark can be performed first, and then the operation of backing up the current target access request is performed, or the operation of backing up the current target access request and the operation of adding the in-process mark are performed simultaneously.

[0050] In this embodiment, the timing for backing up the current target access request and adding the in-processing flag is not limited. For example, the current target access request may be backed up and the in-processing flag may be added before the current target access request is provided to the user-mode virtualization component 103b. Furthermore, the current target access request may be backed up and the in-processing flag may be added as early as possible. For example, after the kernel-mode virtualization component 103a captures the current target access request initiated by the target virtualization instance, the "backing up the current target access request and adding the in-processing flag" operation may be performed immediately.

[0051] 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.

[0052] In this embodiment, the user state virtualization component 103b can process the current target access request, such as Figure 2a Step a6 and Figure 2b 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, such as Figure 2a Steps a7 and Figure 2b Step S07 in .

[0053] Among them, the user-state virtualization component 103b can process the current target access request, specifically, the user-state virtualization component 103b can process the current target access request through the IO device simulated by the virtualization technology. Among them, the current component state information refers to the current state information of the user-state virtualization component 103b, for example, it can be the state information of each IO device simulated on the user-state virtualization component 103b after the IO device simulated on the user-state virtualization component 103b processes the current target access request. Among them, the target storage space outside the virtualization acceleration device 20 can be the storage space on the host machine, for example, the persistent storage space or memory space of the host machine; or, the target storage space outside the virtualization acceleration device 20 can be a cloud storage resource such as a cloud disk, NAS, etc. outside the host machine. It should be noted that the kernel-state virtualization component 103a stores the access address of the target storage space and has access rights to the target storage space.

[0054] In this embodiment, if the virtualization acceleration device 20 fails to successfully process the current target access request, backed-up historical component state information is stored in the target storage space outside the virtualization acceleration device 20. This historical component state information is backed up to the target storage space when the user-mode virtualization component 103b successfully processes the historical target access request when the virtualization acceleration device 20 is in a normal state.

[0055] The historical target access request, relative to the current target access request, may be the previous target access request or the two previous target access requests, without limitation. Optionally, the historical target access request is the previous target access request, and accordingly, the historical component state information is the component state information when the user-mode virtualization component 103b successfully processed the previous target access request. The user-mode virtualization component 103b may also clear the historical component state information from the target storage space when backing up the current component state information to the target storage space.

[0056] 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 status information of the virtualization acceleration device 20 can be backed up to the target storage space. The backup time for the current component status information to the target storage space is not limited. For example, the backup can be performed immediately after the current target access request is successfully processed, or it can be performed at an interval after the current target access request is successfully processed, and the backup interval can be 20ms, 300ms, or 500ms.

[0057] like Figure 2a Steps b1 to b3 and Figure 2bIn step S11, when the virtualization acceleration device 20 fails to successfully process the target access request (e.g., an exception or failure occurs in the virtualization acceleration device 20), in order to ensure the stability of the virtualization instance, the kernel-mode virtualization component 103a can replay the current target access request based on the historical component state information in the target storage space outside the virtualization acceleration device 20, the backup of the current target access request, and the processing mark, thereby processing the access request in a timely and correct manner and reducing the probability of anomalies or downtime of the virtualization instance.

[0058] In an embodiment of the present application, a user-state virtualization component is deployed on a virtualization acceleration device, and a kernel-state virtualization component is deployed on a host machine. For a current target access request that needs to be processed by the user-state virtualization component, the kernel-state virtualization component intercepts the target access request, backs it up, and adds a processing mark. In addition, the user-state virtualization component cooperates with the component status information previously backed up to the outside of the virtualization acceleration device. If the virtualization acceleration device fails to successfully process the current target access request, the current target access request is replayed based on the previously backed-up historical component status information, the backup of the target access request, and the processing mark. This allows the access request to be processed in a timely and correct manner, reducing the probability of causing virtualization instance abnormalities or downtime.

[0059] In an optional embodiment, the operating system of the host machine includes a first information monitoring module, and a second information monitoring module is deployed on the virtualization acceleration device 20. The second information monitoring module regularly reports health status information to the first information monitoring module, for example, reporting health status information every 1ms, 50ms or 1min, and the 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 failed or is abnormal). If the first information monitoring module does not receive the health status information reported by the second information monitoring module within the set time, the first information monitoring module can determine that the virtualization acceleration device 20 cannot successfully process the target access request (e.g., the virtualization acceleration device 20 has failed or is abnormal), and the first information monitoring module reports notification information that the virtualization acceleration device 20 cannot successfully process the target access request (e.g., the virtualization acceleration device 20 has failed or is abnormal) to the kernel-mode virtualization component. The set time is 50ms, 500ms or 2 minutes, etc.

[0060] Correspondingly, the kernel-mode virtualization component 103a receives the notification information, obtains the target access request with the processing mark, and replays the target access request with the processing mark based on the historical component status information and the backup of the target access request.

[0061] In an optional embodiment, in addition to allocating virtual computing resource objects and memory resource objects, the kernel-mode virtualization component 103a can also be configured to instruct the target virtualization instance to trap into the kernel-mode virtualization component 103a when initiating a target access request during the initialization process of the virtualization instance. For example, a condition for the target virtualization instance to trap into the kernel-mode virtualization component 103a is pre-set, and the condition includes but is not limited to: the target virtualization instance initiates a target access request. Once the condition is met, the target virtualization instance is triggered to trap into the kernel-mode virtualization component. For example, in the case where the virtualization instance is implemented as a VM, the VM traps into the kernel-mode virtualization component through a virtual machine exit (VM-Exit) instruction. In the case of triggering the target virtualization instance to trap 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 target access request of the virtualization instance is written into the virtualization control system (VMCS) structure, and the kernel-mode virtualization component 103a obtains the current target access request from the VMCS structure.

[0062] In an optional embodiment, the kernel-mode virtualization component 103a does not limit the implementation method of adding a processing mark to the current target access request. For example, the target virtualization instance processes the target access request from the granularity of the 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 processing mark can be added from the dimension of the virtual computing resource object. 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 mark 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, ..., A16. Each virtual computing resource object maintains a mark bit, and the mark bit has a default value (e.g., 0). If the virtual computing resource object A1 is determined to be the target virtual computing resource object, the mark bit of the 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 mark bits of other virtual computing resource objects remain unchanged.

[0063] In an optional embodiment, when 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, such as Figure 2aSteps a8 and a9 in Figure 2b The kernel state virtualization component 103a can also provide the processing result to the target virtualization instance, and clear the current target access request marked and backed up in the process, such as Figure 2a Steps a10 and a11 in , and Figure 2b For example, in a Linux system, the kernel-mode virtualization component 103a may be KVM, which writes the processing result into the VMCS structure through a VM-Entry instruction to return the processing result to the target virtualization instance.

[0064] Among them, the processing result of the current target access request is the processing result obtained by the IO device simulated by the user-mode virtualization component 103b through virtualization technology to process the current target access request. Depending on the current target access request, the virtual IO device that processes the current target access request is different, and the processing result of the current target access request is also different. For example, if the current target access request is "obtain the current system time", the virtual IO device that processes the current target access request is "RTC", and the processing result of the current target access request is the current system time returned by RTC; if the current target access request is "end the sleep state of the virtualized instance", the virtual IO device that processes the current target access request is "ACPI device", and the processing result of the current target access request is the result information of the ACPI device waking up the virtualized instance.

[0065] 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 a basis for subsequent data transmission between the kernel-mode virtualization component 103a and the user-mode virtualization component 103b.

[0066] In the case where 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 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 provides the address information of the shared memory to the user-mode virtualization component 103b. In the case where 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 provides the address information of the shared memory to the operating system of the host machine 10 via the interconnection bus between the host machine 10 and the virtualization acceleration device 20. The operating system of the host machine 10 provides the address information of the shared memory to the kernel-mode virtualization component 103a.

[0067] 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. Figure 2a For example, the kernel-mode virtualization component 103a and the user-mode virtualization component 103b may periodically poll the shared memory and read data from the shared memory.

[0068] Further optionally, when the user state virtualization component 103b successfully processes the current target access request, it writes the processing result of the current target access request into the shared memory, such as Figure 2a The kernel virtualization component 103a can also read the processing result from the shared memory, such as Figure 2a Step a9 in the process and provide the processing result to the target virtualization instance, and clear the current target access request marked and backed up in the process, such as Figure 2a The execution order of step a11 and step a10 is not limited. Step a11 may be executed first and then step a10, or step a10 may be executed first and then step a11, or step a11 and step a10 may be executed simultaneously.

[0069] In an optional embodiment, the implementation method of the user-mode virtualization component 103b backing 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 of the user-mode virtualization component 103b backing up the current component state information is also different.

[0070] 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 the interconnect bus as a PCIE bus as an example, the following describes an implementation method for backing up the current component state information to the target storage space using the user-state virtualization component 103b. 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.

[0071] For another example, when the target storage space is a storage space external to the host machine 10, the current component state information is sent to the target storage space via the network card module of the virtualization acceleration device 20. The virtualization acceleration device interacts with the external storage space (e.g., cloud storage) via the network card module. For example, the user-mode virtualization component 103b writes the current component state information to the memory space of the virtualization acceleration device 20, and the operating system of the virtualization acceleration device 20 provides the current component state information to the target storage space in the cloud via the network card module.

[0072] In an optional embodiment, the kernel-mode virtualization component 103a pre-maintains a virtual resource object information mapping table. Virtual resource objects may include, but are not limited to, virtual computing resource objects, virtual memory objects, and virtual I / O devices. The virtual resource object information mapping table maintains a correspondence between each virtual resource object and a virtualization component (e.g., the kernel-mode virtualization component 103a or the user-mode virtualization component 103b). This indicates that the virtual resource object of the 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.

[0073] For example, if 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 IO devices. Accordingly, KVM can maintain a port-Qemu correspondence and a port-KVM correspondence.

[0074] For example, in the 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 MMIO request, the MMIO request corresponds to an IO region, which is a memory area in the host operating system. Different IO regions correspond to different virtual IO devices. Accordingly, KVM can maintain a correspondence between IO regions and Qemu, and between IO regions and KVM.

[0075] Based on the above, the kernel-mode virtualization component 103a can intercept the current access request initiated by the target virtualization instance, and determine whether the target virtual resource object requested to be accessed by the current access request is virtualized by the user-mode virtualization component based on the pre-maintained virtual resource object information mapping table; if the judgment result is yes, the current access request is used as the current target access request, the current target access request is backed up and marked as being in processing, and the current target access request is provided to the user-mode virtualization component 103b for processing.

[0076] Optionally, when the judgment result is no, the kernel-mode virtualization component 103a processes the current access request and returns the processing result to the target virtualization instance.

[0077] In an optional embodiment, the implementation method of the kernel-mode virtualization component 103a replaying the current target access request is not limited, and is exemplified below.

[0078] Example B1: Replay processing is performed on another virtualized acceleration device of the host machine.

[0079] 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 status information, the kernel-mode virtualization component 103a creates a user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device, referred to as a new user-mode virtualization component, and provides the backed-up current target access request to the new user-mode virtualization component for processing. Optionally, a shared memory can be created between the kernel-mode virtualization component 103a and the new user-mode virtualization component for information exchange between the kernel-mode virtualization component 103a and the new user-mode virtualization component. The 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.

[0080] Optionally, when 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 processing of the current target access request on the other virtualization acceleration device.

[0081] 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 abnormality. If the other virtualization acceleration device does not experience an abnormality, 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 the current target access request is successfully processed, the current component state information is backed up 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 the shared memory; the kernel-mode virtualization component 103a reads the processing result from the shared memory and provides it to the target virtualization instance, and clears the current target access request marked and backed up during processing. If the other virtualization acceleration device experiences an abnormality, an alarm message is issued to notify the staff for subsequent processing.

[0082] It should be noted that a user-state virtualization component for processing target access requests is pre-installed on another virtualization acceleration device, and the current target access request is replayed based on the pre-installed user-state virtualization component; alternatively, a new user-state virtualization component can be installed in real time on another virtualization acceleration device, and the current target access request is replayed based on the new user-state virtualization component.

[0083] Example B2: Hot migrate the corresponding data to another host machine and perform replay processing on the other host machine.

[0084] The kernel-mode virtualization component 103a controls the target virtualization instance to suspend operation, thereby triggering migration of the target virtualization instance to another host machine, so that the current target access request can be replayed on the other host machine based on historical component state information, a backup of the current target access request, and a mark in the processing. The other host machine can be a host machine in the same cluster or a host machine in another cluster.

[0085] The method of performing replay processing on another host machine can be: migrating the target virtualization instance to another host machine, allocating a new kernel-state virtualization component and a new virtualization acceleration device to the target virtualization instance, deploying a new user-state virtualization component for the target virtualization instance on the new virtualization acceleration device, and having the new kernel-state virtualization component and the new user-state virtualization component cooperate with each other to perform replay processing. For details, please refer to the above and will not be repeated here.

[0086] 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 on the other virtualization acceleration device, making it unable to provide services for more virtualized instances. Alternatively, it can be implemented when the host machine 10 does not include another virtualization acceleration device.

[0087] It should be noted that the state save chain used in hot 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 form. Since the virtualization instance (e.g., VM) can change the state of the simulated IO device through a target access request (e.g., PIO request and 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 is not changed when the target access request is a read operation, the current component state information can be backed up when the target access request is a write operation, thereby reducing computing resource consumption.

[0088] Examples B1 and B2 above provide implementations for replaying a target access request using historical component state information, a backup of the current target access request, and an in-process marker if 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, while in Example B2, the target virtualized instance can be restored and the current target access request replayed on another healthy host, avoiding downtime and data loss of the virtualized instance.

[0089] In addition to providing a system embodiment, the embodiment of the present application also provides a data processing method. The process of the data processing method provided by the embodiment of the present application is described below. The method is applied to the kernel state virtualization component in the virtualization manager deployed on the host machine, such as Figure 3 As shown, the data processing method includes:

[0090] 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;

[0091] 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;

[0092] 303. When the current target access request is not successfully processed, the current target access request is replayed based on the historical component status information, the backup of the current target access request and the processing mark; wherein the historical component status information is the status information of the user-state virtualization component backed up to the target storage space when the user-state virtualization component successfully processes the historical target access request, and the target storage space is the storage space outside the virtualization acceleration device.

[0093] In this embodiment, the execution entity for replaying the current target access request based on historical component state information, a backup of the current target access request, and in-process markings can be a kernel-mode virtualization component on the current host machine or a kernel-mode virtualization component on another host machine, where another host machine refers to another host machine in the same cluster or in a different cluster. If the execution entity for the replay process is the current host machine, another virtualization acceleration device on that host machine cooperates in executing the replay process; if the execution entity for the replay process is another host machine, the other host machine and its virtualization acceleration device cooperate in executing the replay process. For a detailed description, please refer to the aforementioned embodiment and will not be repeated here.

[0094] In an optional embodiment, intercepting the current target access request initiated by the target virtualization instance includes: during the initialization process, configuring the target virtualization instance to have the ability to trap to the kernel-mode virtualization component when initiating the 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.

[0095] In an optional embodiment, adding a processing mark to the current target access request includes: determining 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; adding a processing mark to the target virtual computing resource object to indicate that a target access request is being processed.

[0096] In an optional embodiment, the current target access request is provided to a user-state virtualization component deployed on a virtualization acceleration device for processing, including: writing the current target access request into a shared memory between the kernel-state virtualization component and the user-state virtualization component, so that the user-state virtualization component can read the current target access request from the shared memory; the shared memory is a memory space on a host machine, or a memory space on a virtualization acceleration device.

[0097] Optionally, the method provided in the embodiment of the present application also 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.

[0098] In an optional embodiment, intercepting a current target access request initiated by a target virtualization instance running on a host machine includes: intercepting a current access request initiated by a target virtualization instance running on a host machine; judging, based on a pre-maintained virtual resource object information mapping table, whether the target virtual resource object requested to be accessed by the current target access request is virtualized by a user-mode virtualization component; and if the judgment result is yes, treating the current access request as the current target access request.

[0099] In an optional embodiment, replay processing is performed on the current target access request based on historical component state information, a backup of the current target access request, and a processing-in-progress mark, including: when 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 processing-in-progress mark; 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 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.

[0100] In an optional embodiment, the current target access request is replayed based on historical component status information, a backup of the current target access request, and a mark in processing, including: controlling 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 historical component status information, a backup of the current target access request, and a mark in processing.

[0101] Optionally, 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.

[0102] The embodiment of the present application also provides another data processing method, which is applied to the user-mode virtualization component deployed on the virtualization acceleration device in the virtualization manager, such as Figure 4 As shown, the method includes:

[0103] 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.

[0104] 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; wherein, the current component state information is the state information of the user-state virtualization component when the current target access request is successfully processed, and the target storage space is the storage space outside the virtualization acceleration device.

[0105] 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 the shared memory between the kernel-mode virtualization component and the user-mode virtualization component; the shared memory is the memory space on the host machine, or the memory space on the virtualization acceleration device.

[0106] Optionally, the method provided in an embodiment of the present application also includes: when the current target access request is successfully processed, writing the processing result of the current target access request into a shared memory to provide it to the kernel-state virtualization component; and / or when the current component status information is backed up to the target storage space, clearing the historical component status information stored in the target storage space.

[0107] In an optional embodiment, backing up the current component status information to the target storage space includes: when the target storage space is a storage space on the host machine, sending the current component status information to the target storage space through the interconnection bus between the virtualization acceleration device and the host machine; when the target storage space is a storage space outside the host machine, sending the current component status information to the target storage space through the network card module of the virtualization acceleration device.

[0108] Regarding the embodiments of this application Figure 3-Figure 4 The detailed implementation and beneficial effects of each step in the method have been described in detail in the aforementioned embodiments and will not be elaborated on here.

[0109] It should be noted that the execution entity of each step of the method provided in the above embodiment 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.

[0110] In addition, in some of the processes described in the above embodiments and the accompanying drawings, multiple operations that appear in a specific order are included, but it should be clearly understood that these operations may not be executed in the order in which they appear in this article or may be executed in parallel. The sequence numbers of the operations, such as 301, 302, etc., are only used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second", etc. in this article are used to distinguish different messages, devices, modules, etc., and do not represent the order of precedence, nor do they limit "first" and "second" to be different types.

[0111] Figure 5A schematic diagram of the structure of a data processing device provided by an exemplary embodiment of the present application, the device corresponds to the kernel-mode virtualization component in the virtualization manager deployed on the host machine, such as Figure 5 As shown, the device includes: an interception module 51, a first processing module 52 and a replay module 53;

[0112] An interception module 51 is configured to intercept a current target access request initiated by a target virtualization instance running on a host machine, wherein 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;

[0113] A first processing module 52 is configured to back up the current target access request, add a processing 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;

[0114] The replay module 53 is used to replay the current target access request based on the historical component status information, the backup of the current target access request and the processing mark when the current target access request is not successfully processed; wherein the historical component status information is the status information of the user-state virtualization component backed up to the target storage space when the user-state virtualization component successfully processes the historical target access request, and the target storage space is the storage space outside the virtualization acceleration device.

[0115] In an optional embodiment, the interception module is specifically used to: during the initialization process, configure the target virtualization instance to have the ability to trap into the kernel-mode virtualization component when initiating a target access request; and when the target virtualization instance traps into the kernel-mode virtualization component, intercept the current target access request initiated by the target virtualization instance.

[0116] In an optional embodiment, the first processing module 52 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.

[0117] In an optional embodiment, the first processing module 52 is specifically used to: write the current target access request into the 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 the memory space on the host machine, or the memory space on the virtualization acceleration device.

[0118] Optionally, the first processing module is further configured to: read the processing result of the user-mode virtualization component on the current target access request from the shared memory, and provide the result to the target virtualization instance, and clear the current target access request marked and backed up during processing.

[0119] In an optional embodiment, the interception module is specifically used to: intercept the current access request initiated by the target virtualization instance running on the host machine; determine whether the target virtual resource object requested to be accessed by the current target access request is virtualized by the user-state virtualization component based on a pre-maintained virtual resource object information mapping table; if the judgment result is yes, the current access request is used as the current target access request.

[0120] In an optional embodiment, the replay module is specifically used to: when the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, obtain historical component status information from the target storage space according to the 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 status 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.

[0121] In an optional embodiment, the replay module 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 historical component status information, backup of the current target access request and marking in processing.

[0122] Optionally, the replay module is specifically used to: 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, control the target virtualization instance to pause running, so as to trigger migration of the target virtualization instance to another host machine.

[0123] Figure 6 A structural diagram of another data processing device provided by an exemplary embodiment of the present application, which corresponds to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager, such as Figure 6 As shown, the device includes: an acquisition module 61 and a second processing module 62;

[0124] An acquisition module 61 is configured to acquire 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.

[0125] The second processing module 62 processes the current target access request and, if the current target access request is successfully processed, backs up the current component state information to the target storage space for replay processing of subsequent target access requests; wherein, the current component state information is the state information of the user-state virtualization component when the current target access request is successfully processed, and the target storage space is the storage space outside the virtualization acceleration device.

[0126] In an optional embodiment, the acquisition module 61 is specifically used 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 the memory space on the host machine, or the memory space on the virtualization acceleration device.

[0127] Optionally, the second processing module 62 is also used to: when the current target access request is successfully processed, write the processing result of the current target access request into the shared memory to provide it to the kernel-state virtualization component; and / or when the current component status information is backed up to the target storage space, clear the historical component status information stored in the target storage space.

[0128] In an optional embodiment, the second processing module 62 is specifically used to: when the target storage space is the storage space on the host machine, send the current component status information to the target storage space through the interconnection bus between the virtualization acceleration device and the host machine; when the target storage space is the storage space outside the host machine, send the current component status information to the target storage space through the network card module of the virtualization acceleration device.

[0129] Regarding the embodiments of this application Figure 5-Figure 6 The detailed implementation and beneficial effects of each step in the illustrated device have been described in detail in the aforementioned embodiments and will not be elaborated on here.

[0130] Figure 7 A schematic diagram of the structure of a physical machine provided by an exemplary embodiment of the present application, wherein the physical machine corresponds to the kernel-mode virtualization component in the virtualization manager deployed on the host machine, such as Figure 7 As shown, the device includes a memory 74 and a processor 75 .

[0131] The memory 74 is used to store computer programs and can be configured to store various other data to support operations on the physical machine. Examples of such data include instructions for any application program or method operating on the physical machine.

[0132] The processor 75 is coupled to the memory 74 and is used to execute a computer program in the memory 74, so as to: intercept a current target access request initiated by a target virtualization instance running on a host machine, wherein the host machine is equipped with a virtualization acceleration device, and a user-mode virtualization component in the virtualization manager is deployed on the virtualization acceleration device; 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; if the current target access request is not successfully processed, replay the current target access request based on historical component status information, the backup of the current target access request, and the processing mark; wherein the historical component status information is the status information of the user-mode virtualization component backed up to the target storage space when the user-mode virtualization component successfully processes the historical target access request, and the target storage space is the storage space outside the virtualization acceleration device.

[0133] In an optional embodiment, when intercepting the current target access request initiated by the target virtualization instance, the processor 75 is specifically used to: during the initialization process, configure the ability to instruct the target virtualization instance to trap out to the kernel-mode virtualization component when initiating the target access request; when the target virtualization instance traps out to the kernel-mode virtualization component, intercept the current target access request initiated by the target virtualization instance.

[0134] In an optional embodiment, when the processor 75 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.

[0135] In an optional embodiment, when the processor 75 provides the current target access request to the user-state virtualization component deployed on the virtualization acceleration device for processing, it is specifically used to: write the current target access request into the shared memory between the kernel-state virtualization component and the user-state virtualization component, so that the user-state virtualization component can read the current target access request from the shared memory; the shared memory is the memory space on the host machine, or the memory space on the virtualization acceleration device.

[0136] Optionally, the processor 75 is further configured to: read the processing result of the user-mode virtualization component on the current target access request from the shared memory, and provide the result to the target virtualization instance, and clear the current target access request marked and backed up during processing.

[0137] In an optional embodiment, when the processor 75 intercepts the current target access request initiated by the target virtualization instance running on the host machine, it is specifically used to: intercept the current access request initiated by the target virtualization instance running on the host machine; determine whether the target virtual resource object requested to be accessed by the current target access request is virtualized by the user-mode virtualization component based on a pre-maintained virtual resource object information mapping table; and if the judgment result is yes, use the current access request as the current target access request.

[0138] In an optional embodiment, when the processor 75 replays the current target access request based on the historical component status information, the backup of the current target access request, and the in-process mark, it is specifically used to: when the host machine includes another virtualization acceleration device and the other virtualization acceleration device is available, obtain the historical component status information from the target storage space according to the in-process mark; create a user-mode virtualization component responsible for the target virtualization instance on the other virtualization acceleration device based on the historical component status 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.

[0139] In an optional embodiment, when the processor 75 marks the current target access request for replay processing based on historical component status information, backup and processing of 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 mark the current target access request for replay processing based on historical component status information, backup and processing of the current target access request on the other host machine.

[0140] Optionally, when controlling the target virtualization instance to pause operation to trigger migration of the target virtualization instance to another host machine, the processor 75 is specifically used to: 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, control the target virtualization instance to pause operation to trigger migration of the target virtualization instance to another host machine.

[0141] Regarding the embodiments of this application Figure 7 The detailed implementation and beneficial effects of each step in the device shown have been described in detail in the aforementioned embodiments and will not be elaborated here.

[0142] Further, if Figure 7 As shown, the physical machine also includes: a communication component 76, a display 77, a power component 78, an audio component 79 and other components. Figure 7 Only some components are shown schematically, which does not mean that the physical machine only includes Figure 7In addition, Figure 7 The components in the dotted box are optional components, not mandatory components, and the specific configuration depends on the product form 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 smart phone or an IOT device, or a server 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, a smart phone, etc., it can include Figure 7 If the physical machine of this embodiment is implemented as a conventional server, cloud server or server array and other server-side devices, it may not include Figure 7 Components within the dotted box.

[0143] The embodiment of the present application also provides a data processing device, which corresponds to the user-mode virtualization component deployed on the virtualization acceleration device in the virtualization manager. The implementation structure of the data processing device is the same as that of the embodiment of the present application. Figure 7 The implementation structure of the physical machine shown is the same or similar, please refer to Figure 7 The data processing device provided by this embodiment is implemented as a physical machine. Figure 7 The physical machines in the illustrated embodiments differ primarily in the functions implemented by the processor executing the computer program stored in the memory. For the data processing device provided in this embodiment, its processor executes the computer program stored in the memory and can be used to: obtain a current target access request provided by a kernel-mode virtualization component in the virtualization manager, where the current target access request is initiated by a target virtualization instance running on the host machine where the kernel-mode virtualization component resides; process the current target access request, and upon successful processing of the current target access request, back up the current component state information to a target storage space for replay processing of subsequent target access requests; wherein the current component state information is the 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.

[0144] In an optional embodiment, when the processor obtains the current target access request provided by the kernel-mode virtualization component in the virtualization manager, it is specifically used 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 the memory space on the host machine, or the memory space on the virtualization acceleration device.

[0145] In an optional embodiment, the processor is also used to: when the current target access request is successfully processed, write the processing result of the current target access request into the shared memory to provide it to the kernel-mode virtualization component; and / or when the current component status information is backed up to the target storage space, clear the historical component status information stored in the target storage space.

[0146] In an optional embodiment, when backing up the current component status information to the target storage space, the processor is specifically used to: when the target storage space is the storage space on the host machine, send the current component status information to the target storage space through the interconnection bus between the virtualization acceleration device and the host machine; when the target storage space is the storage space outside the host machine, send the current component status information to the target storage space through the network card module of the virtualization acceleration device.

[0147] The detailed implementation and beneficial effects of the data processing device provided in the embodiments of the present application have been described in detail in the aforementioned embodiments and will not be elaborated on here.

[0148] Accordingly, the present invention also provides a computer-readable storage medium storing a computer program, which can achieve the above-mentioned Figure 3-Figure 4 The steps in the method embodiment shown may be executed by a data processing device.

[0149] Accordingly, the embodiment of the present application further provides a computer program product, including a computer program / instruction, which, when executed by a processor, causes the processor to implement Figure 3-Figure 4 Steps in the method shown.

[0150] 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), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0151] The above-mentioned communication component is configured to facilitate wired or wireless communication between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on a communication standard, such as WiFi, 2G, 3G, 4G / LTE, 5G and other mobile communication networks, or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an 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.

[0152] The above-mentioned display includes a screen, which may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor can not only sense the boundary of the touch or slide action, but also detect the duration and pressure associated with the touch or slide operation.

[0153] The power supply assembly provides power to various components of the device in which the power supply assembly is located. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply assembly is located.

[0154] The above-mentioned audio component can be configured to output and / or input audio signals. For example, the audio component includes a microphone (MIC), and when the device where the audio component is located is in an operating mode, such as call mode, recording mode, and voice recognition mode, the microphone is configured to receive external audio signals. The received audio signal can be further stored in a memory or sent via a communication component. In some embodiments, the audio component also includes a speaker for outputting audio signals.

[0155] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt 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.) that contain computer-usable program code.

[0156] The present application is described with reference to the flow chart and / or block diagram of the method, device (system), and computer program product according to the embodiment of the present application. It should be understood that each flow process and / or box in the flow chart and / or block diagram and the combination of the flow process and / or box in the flow chart and / or block diagram can be realized 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 processing machine or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for realizing the function specified in one flow chart flow or multiple flows and / or one box or multiple boxes of the block diagram.

[0157] 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 that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0158] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0159] In a typical configuration, a computing device includes one or more processors (Central Processing Unit, CPU), input / output interfaces, network interfaces, and memory.

[0160] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0161] Computer-readable media includes permanent and non-permanent, removable and non-removable media that can be used to store information using any method or technology. 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 technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media such as modulated data signals and carrier waves.

[0162] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.

[0163] The above are merely embodiments of the present application and are not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application should all be included within the scope of the claims of the present application.

Claims

1. A computer device, characterized in that: include: 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 a 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 mark to the current target access request, and provide the current target access request to the user-mode virtualization component for processing; as well as 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-mode virtualization component is configured to process a 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: Determining a target virtual computing resource object responsible for processing a current target access request from at least one virtual computing resource object allocated to the target virtualization instance; A processing mark is added 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 used to: When 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 processing mark; Creating, on the other virtualization acceleration device, a user-mode virtualization component responsible for the target virtualization instance according to the historical component state information; The backed-up current target access request is provided 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, characterized in that When replaying the current target access request, the kernel-mode virtualization component is specifically used to: The target virtualization instance is controlled 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 the historical component status information, the backup of the current target access request and the processing mark.

5. A data processing method, characterized in that: The method is applied to a kernel-mode virtualization component in a virtualization manager deployed on a host machine, and includes: intercepting a current target access request initiated by a target virtualization instance running on a host machine, wherein the host machine is equipped with a virtualization acceleration device, and a 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 mark, 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, characterized in that Also includes: During initialization, configuring the target virtualization instance to indicate its ability to break out to the kernel-mode virtualization component when initiating a target access request; Intercept the current target access request initiated by the target virtualization instance, including: When the target virtualization instance is trapped into the kernel-mode virtualization component, a current target access request initiated by the target virtualization instance is intercepted.

7. The method according to claim 5, characterized in that Add a processing mark to the current target access request, including: Determining a target virtual computing resource object responsible for processing a current target access request from at least one virtual computing resource object allocated to the target virtualization instance; A processing mark is added to the target virtual computing resource object to indicate that a target access request is being processed.

8. The method according to claim 5, characterized in that Intercept the current target access request initiated by the target virtualization instance running on the host, including: Intercept 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 to be accessed by the current target access request is virtualized by the user-mode virtualization component; If the judgment result is yes, the current access request is used as the current target access request.

9. The method according to claim 5, characterized in that 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: When 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 processing mark; Creating, on the other virtualization acceleration device, a user-mode virtualization component responsible for the target virtualization instance according to the historical component state information; The backed-up current target access request is provided to the user-mode 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, characterized in that: 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 virtualization instance is controlled 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 the historical component status information, the backup of the current target access request and the processing mark.

11. The method according to claim 10, characterized in that Controlling the target virtualized instance to pause operation to trigger migration of the target virtualized 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, the target virtualization instance is controlled to suspend operation to trigger migration of the target virtualization instance to another host machine.

12. A data processing method, characterized in that: The method is applied to a user-mode virtualization component deployed on a virtualization acceleration device in a virtualization manager, and includes: 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, characterized in that Get the current target access request provided by the kernel-mode virtualization component in the virtualization manager, including: Reading, from a shared memory between the kernel-mode virtualization component and the user-mode virtualization component, a current target access request written by the kernel-mode virtualization component; The shared memory is a memory space on the host machine, or a memory space on the virtualization acceleration device.

14. The method according to claim 13, characterized in that 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 the current component state information is backed up in the target storage space, the historical component state information stored in the target storage space is cleared.

15. A physical machine, characterized in that: include: memory and processor; The memory is used to store a computer program; the processor is coupled to the memory and is used 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, characterized in that: 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 / instructions, characterized in that When the computer program / instructions are 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.