Virtualization task running method based on multiple data processing units and related equipment

By deploying multiple data processing units on the target server and switching to the backup unit when the main data processing unit fails, the high reliability problem of DPU in virtualized scenarios is solved, and the overall reliability of the cloud environment is improved.

CN119311373APending Publication Date: 2025-01-14CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411372741.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-29
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

In the prior art, DPU lacks a highly reliable redundant solution in virtualization scenarios, resulting in unavailability of computing node servers when DPU fails.

Method used

By deploying multiple data processing units on the target server, selecting a master data processing unit and one or more backup data processing units to run the virtualization task, and switching to the backup data processing unit in the event of a master data processing unit failure to achieve virtualization High reliability of tasks.

Benefits of technology

The overall reliability of the cloud environment in the offloaded virtualization scenario of multiple data processing units is improved, ensuring that the virtualization task can be switched to the backup data processing unit in time when the main data processing unit fails, avoiding a single point of failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119311373A_ABST
    Figure CN119311373A_ABST
Patent Text Reader

Abstract

The invention provides a virtualization task running method based on multiple data processing units and related equipment, and relates to the technical field of cloud computing. The method comprises the following steps: selecting a main data processing unit and at least one standby data processing unit for running a target virtualization task from a plurality of data processing units deployed on a target server, wherein the target virtualization task is a virtualization task unloaded from the target server to any data processing unit for running; when the running state of running the target virtualization task by the main data processing unit fails, selecting a target data processing unit for running the target virtualization task from the at least one standby data processing unit; and running the target virtualization task through the target data processing unit. According to the invention, the overall reliability of the cloud environment in a scene in which a plurality of data processing units are used for unloading virtualization can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] Data-centric computing architecture is developing rapidly, and the data processing unit (DPU) has become the main chip after the central processing unit (CPU) and the graphics processing unit (GPU). In cloud computing scenarios, the virtualization layer itself often consumes more than 10% of the resources of the computing node server and has certain performance bottlenecks. Therefore, by fully offloading the virtualization layer to the DPU, DPU resources and hardware acceleration can be used to achieve ultra-low CPU loss and high performance of the physical server.

[0003] In related technologies, DPU is usually in the form of a PCIe card, and comes with a CPU, memory, and hardware acceleration dedicated processor. It can be regarded as a micro server, and the virtualization layer can run completely on the DPU. When using DPU to offload virtualization, virtualization can usually only be offloaded to a DPU card. At this time, the DPU itself is an additional failure point. Once a failure occurs, the entire computing node server will be unavailable. Currently, there is a lack of high-reliability redundancy solutions for scenarios where DPU is used to offload virtualization.

[0004] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention

[0005] The present disclosure provides a virtualization task running method based on multiple data processing units and related devices, which at least to a certain extent overcome the problem of lack of redundancy and high availability mechanism of DPU when processing virtualization tasks in the related art.

[0006] Other features and advantages of the present disclosure will become apparent from the following detailed description, or may be learned in part by the practice of the present disclosure.

[0007] According to one aspect of the present disclosure, a method for running a virtualization task based on multiple data processing units is provided, comprising: selecting a main data processing unit and at least one backup data processing unit for running a target virtualization task from multiple data processing units deployed on a target server, wherein the target virtualization task is a virtualization task that is unloaded from the target server to any data processing unit for running; when a failure occurs in the running state of the main data processing unit running the target virtualization task, selecting a target data processing unit for running the target virtualization task from the at least one backup data processing unit; and running the target virtualization task through the target data processing unit.

[0008] In some embodiments, a main data processing unit and at least one backup data processing unit for running a target virtualization task are selected from a plurality of data processing units deployed on a target server, including: selecting a main data processing unit for running a target virtualization task from a plurality of data processing units deployed on the target server according to a first preset selection method; and using at least one data processing unit among the plurality of data processing units, except the main data processing unit, as a backup data processing unit.

[0009] In some embodiments, after selecting a main data processing unit and at least one backup data processing unit for running a target virtualization task from multiple data processing units deployed on a target server, the method further includes: periodically obtaining target virtualization task information and data processing configuration information of the main data processing unit at a first preset time interval; and synchronizing the target virtualization task information and the data processing configuration information of the main data processing unit to each backup data processing unit.

[0010] In some embodiments, when the running state of the main data processing unit running the target virtualization task fails, before selecting the target data processing unit to run the target virtualization task from the at least one backup data processing unit, the method also includes: monitoring the running state of the main data processing unit running the target virtualization task and the running state of each backup data processing unit.

[0011] In some embodiments, when a failure occurs in the operating state of the main data processing unit running the target virtualization task, a target data processing unit running the target virtualization task is selected from the at least one backup data processing unit, including: when a failure occurs in the operating state of the main data processing unit running the target virtualization task, at least one target backup data processing unit with a normal operating state is screened out from each backup data processing unit; and according to a second preset selection method, a target data processing unit running the target virtualization task is selected from the at least one target backup data processing unit.

[0012] In some embodiments, after running the target virtualization task through the target data processing unit, the method also includes: periodically obtaining the target virtualization task information and data processing configuration information of the target data processing unit according to a second preset time interval; and synchronizing the target virtualization task information and the data processing configuration information of the target data processing unit to each target standby data processing unit.

[0013] According to another aspect of the present disclosure, a virtualization task running device based on multiple data processing units is also provided, including: a first data processing unit selection module, used to select a main data processing unit and at least one backup data processing unit for running a target virtualization task from multiple data processing units deployed on a target server, wherein the target virtualization task is a virtualization task unloaded from the target server to any data processing unit for running; a second data processing unit selection module, used to select a target data processing unit for running the target virtualization task from the at least one backup data processing unit when a failure occurs in the running state of the main data processing unit running the target virtualization task; and a virtualization task running module, used to run the target virtualization task through the target data processing unit.

[0014] According to another aspect of the present disclosure, an electronic device is also provided, which includes: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute any one of the above-mentioned virtualization task running methods based on multiple data processing units by executing the executable instructions.

[0015] According to another aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the method for executing a virtualized task based on a multi-data processing unit described in any one of the above is implemented.

[0016] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, wherein when the computer program is executed by a processor, the computer program implements any one of the above-mentioned virtualized task running methods based on multiple data processing units.

[0017] The virtualization task running method based on multiple data processing units and related devices provided in the embodiments of the present disclosure select a primary data processing unit and at least one backup data processing unit from multiple data processing units deployed on a target server to run a virtualization task offloaded from the target server, and when a primary data processing unit fails while running a virtualization task, a target data processing unit is selected from the backup data processing units to continue running the virtualization task. The embodiments of the present disclosure can improve the overall reliability of a cloud environment in a scenario where multiple data processing units are used to offload virtualization.

[0018] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.

[0020] Figure 1 A structural schematic diagram of a virtualized task offloading system in the related art is shown;

[0021] Figure 2 A schematic diagram of an exemplary application system architecture to which the virtualized task running method based on multiple data processing units in an embodiment of the present disclosure can be applied is shown;

[0022] Figure 3 A flowchart of a virtualized task running method based on multiple data processing units in an embodiment of the present disclosure is shown;

[0023] Figure 4 Another flowchart of a virtualized task running method based on multiple data processing units in an embodiment of the present disclosure is shown;

[0024] Figure 5 A schematic diagram of a virtualized task running device based on multiple data processing units in an embodiment of the present disclosure is shown;

[0025] Figure 6 A block diagram of an electronic device in an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0026] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the disclosure will be more comprehensive and complete and to fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0027] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.

[0028] For ease of understanding, before introducing the embodiments of the present disclosure, several terms involved in the embodiments of the present disclosure are first explained as follows:

[0029] DPU: Data Processing Unit, a data-centric, input-output intensive dedicated processor that achieves "high performance" through customization. From the appearance and structure, it is mainly in the form of a PCIe peripheral card. From the hardware architecture, it usually comes with a CPU, memory, and hardware acceleration processor, etc., and can be regarded as a "micro server."

[0030] CPU: Central Processing Unit.

[0031] GPU: Graphics Processing Unit, graphics processing unit.

[0032] Hypervisor: An intermediate layer of software running between a physical server and an operating system that allows multiple operating systems and applications to share a set of basic physical hardware. Hypervisor can be considered as a "meta operating system" in a virtual environment, which can coordinate access to all physical devices and virtual machines on a server, so it is also called a virtual machine monitor (Virtua Machine Monitor). Hypervisor is the core of all virtualization technologies.

[0033] The specific implementation of the embodiment of the present disclosure is described in detail below with reference to the accompanying drawings.

[0034] Figure 1 A schematic diagram of the structure of a virtualized task offloading system in the related art is shown. Figure 1 As shown, one or more virtual machines and a lightweight virtual machine monitor front end are set on the server, and a virtual machine monitor back end is set on the DPU card. Among them, the lightweight virtual machine monitor front end is used to cooperate with the virtual machine monitor back end on the DPU to complete the allocation and management of resources on the server, and the virtual machine monitor back end is used to provide complete virtualization management capabilities.

[0035] A single server deploys a single DPU card, and runs the virtual machine monitor backend through the CPU, memory, and hardware acceleration dedicated processor on the DPU card. However, since a server can only use one DPU card to offload the virtual machine monitor backend, and a lightweight virtual machine monitor front end only corresponds to one virtual machine monitor backend, the DPU card lacks redundancy and high availability mechanisms, and once a failure occurs, it will affect the entire server.

[0036] Figure 2The following is a schematic diagram of an exemplary application system architecture to which the virtualized task running method based on multiple data processing units in the embodiment of the present disclosure can be applied. Figure 2 As shown, the system architecture may include: a server, a first DPU card and a second DPU card.

[0037] Among them, the server includes at least one virtual machine and a lightweight virtual machine monitor front end, which includes a proxy module and an arbitration module; the first DPU card and the second DPU card have the same structure, but the first DPU card serves as a primary DPU card, including a primary virtual machine monitor back end, which includes a database, a message queue, an arbitration module and a synchronization module, and the second DPU card serves as a backup DPU card, including a backup virtual machine monitor back end, which includes a database, a message queue, an arbitration module and a synchronization module.

[0038] In one embodiment of the present disclosure, a distributed arbitration module can be used to select a primary DPU card to facilitate active-standby switching when a current active DPU card fails; a synchronization module can be used to synchronize virtualization task information and DPU card configuration information of virtual machine monitors between DPU cards in real time to ensure active-standby consistency; an agent module can be used to prevent a standby node from incorrectly managing a virtual machine monitor front end, thereby causing abnormal operation of the server and DPU card.

[0039] In one embodiment of the present disclosure, the arbitration module is responsible for selecting the primary virtual machine monitor backend node (e.g., Figure 2 The active virtual machine monitor backend on the first DPU card shown in the figure) is selected, and the node selection result is synchronized to the proxy module and the synchronization module; after determining the active virtual machine monitor backend node, each standby virtual machine monitor backend node is set to a passive state to avoid conflicts between DPU cards (such as IP conflicts, node management conflicts, etc.), and the status of the virtual machine monitor backends on all DPU cards is monitored. When the active virtual machine monitor backend node fails, a new active virtual machine monitor backend is selected on the remaining DPU cards and switched.

[0040] In one embodiment of the present disclosure, the proxy module is responsible for receiving the management of the active virtual machine monitor backend and forwarding it to the lightweight virtual machine monitor front end for execution; before the arbitration module selects the active virtual machine monitor backend node, it does not receive the management of any virtual machine monitor backend; after the arbitration module selects the active virtual machine monitor backend node, it synchronizes with the remaining virtual machine monitor backend nodes and only accepts the management of the active virtual machine monitor backend node, and rejects the management of other nodes, so as to avoid the backup virtual machine monitor backend node from incorrectly managing the lightweight virtual machine monitor front end, which causes abnormal operation of the virtualization layer.

[0041] In one embodiment of the present disclosure, the synchronization module is responsible for synchronizing all configurations of the active and standby virtual machine monitor backend nodes, including databases, configuration files, and message queues, after the arbitration module selects the active virtual machine monitor backend.

[0042] In one embodiment of the present disclosure, when the server offloads the target virtualization task to the DPU, the arbitration module and the proxy module are used to select the active virtual machine monitor backend node from the virtual machine monitor backends of two or more DPU cards, and the status of each virtual machine monitor backend is monitored at any time. When the active virtual machine monitor backend node fails, a new active virtual machine monitor backend node is selected for switching, while avoiding the backup virtual machine monitor backend node from erroneously accessing the front end; through the synchronization module, the virtual machine monitor backend information and configuration of the two DPU cards are synchronized to ensure that the active and standby are consistent and maintain normal operation after the active and standby switching. For example, in the scenario where the DPU fully unloads the virtualized Hypervisor, multiple DPU cards can be used on a single server to unload the Hypervisor through the arbitration module, the synchronization module and the proxy module, so as to realize the active and standby election, active and standby synchronization, and active and standby switching of the Hypervisor backend on the DPU card. Effectively improve the overall reliability of the cloud environment in the scenario where the DPU card is used, and enhance the value of the cloud.

[0043] Those skilled in the art will know that Figure 2 The number of servers, virtual machines and DPU cards in the example is only illustrative, and any number of servers, virtual machines and DPU cards may be provided based on actual needs, provided that one server corresponds to one active DPU card and at least one standby DPU card. The embodiments of the present disclosure are not limited to this.

[0044] Under the above system architecture, an embodiment of the present disclosure provides a virtualized task running method based on multiple data processing units, which can be executed by any electronic device with computing and processing capabilities.

[0045] Figure 3 A flowchart of a virtualized task running method based on multiple data processing units in an embodiment of the present disclosure is shown. Figure 3 As shown, the method comprises the following steps:

[0046] S302, selecting a main data processing unit and at least one backup data processing unit for running a target virtualization task from a plurality of data processing units deployed on the target server, wherein the target virtualization task is a virtualization task that is offloaded from the target server to any data processing unit for running.

[0047] In one embodiment of the present disclosure, multiple data processing units can be deployed on a server, and the multiple data processing units can be randomly divided into a main data processing unit and at least one backup data processing unit, or a main data processing unit can be selected from multiple data processing units according to a preset preferred election method, and the remaining data processing units can be used as backup data processing units. The main data processing unit is used to run virtualization tasks uninstalled from the target server, and when the main data processing unit fails, the backup data processing unit replaces the main data processing unit to continue running the virtualization task.

[0048] S304: When a failure occurs in the running state of the main data processing unit running the target virtualization task, a target data processing unit running the target virtualization task is selected from at least one backup data processing unit.

[0049] In one embodiment of the present disclosure, when a failure is detected in the operating status of a primary data processing unit, a target data processing unit can be selected randomly or in a preset manner from at least one backup data processing unit to replace the failed primary data processing unit to run virtualization tasks.

[0050] S306: Run the target virtualization task through the target data processing unit.

[0051] As can be seen from the above, the embodiment of the present disclosure selects a primary data processing unit and at least one backup data processing unit to run the virtualization task offloaded from the target server from multiple data processing units deployed on the target server, and when the primary data processing unit fails while running the virtualization task, the target data processing unit is selected from the backup data processing units to continue running the virtualization task. The embodiment of the present disclosure can improve the overall reliability of the cloud environment in the scenario of using multiple data processing units to offload virtualization.

[0052] In one embodiment of the present disclosure, the above S302 includes: selecting a main data processing unit that runs the target virtualization task from multiple data processing units deployed on the target server according to a first preset selection method; and using at least one data processing unit among the multiple data processing units except the main data processing unit as a backup data processing unit.

[0053] In one embodiment of the present disclosure, the first preset selection method may include but is not limited to random selection, selection based on node information (DPU card ID, supplier ID and other information sent by the node), etc.

[0054] In one embodiment of the present disclosure, after the above S302, the method also includes: periodically obtaining the target virtualization task information and data processing configuration information of the main data processing unit according to a first preset time interval; and synchronizing the target virtualization task information and data processing configuration information of the main data processing unit to each backup data processing unit.

[0055] In one embodiment of the present disclosure, the target virtualization task information and data processing configuration information of the main data processing unit are obtained regularly, which may include but is not limited to relevant task information of the virtualization task unloaded by the target server, basic configuration (for example, various system parameters, IP addresses, etc.), database, message queue, etc., to ensure that the primary and standby nodes remain consistent and can be switched at any time.

[0056] It should be noted that the first preset time interval may be determined according to actual conditions, and the embodiment of the present disclosure does not specifically limit the length of the first preset time interval.

[0057] In one embodiment of the present disclosure, after the above S304, the method further includes: monitoring the running status of the main data processing unit running the target virtualization task and the running status of each standby data processing unit.

[0058] In one embodiment of the present disclosure, the operating status of the main data processing unit running the target virtualization task and the operating status of each backup data processing unit can be monitored at preset time intervals or in real time, so that when a failure in the operation of the main data processing unit is detected, a target data processing unit can be selected from the normally operating backup data processing units in time to replace the main data processing unit to continue running the target virtualization task.

[0059] In one embodiment of the present disclosure, a failure in the operation of the main data processing unit can be confirmed in a variety of ways. For example, a conventional heartbeat detection method (for example, transmission control protocol keep-alive TCP KeepAlive, distributed lock, etc.) can be used. Specifically, the status of the main data processing unit and the backup data processing unit can be periodically confirmed. When the status of a data processing unit is not confirmed after several cycles, the data processing unit is judged to be faulty. The component status and fault warning can also be obtained from the physical server hardware management system (baseboard management controller BMC). Once the status of the corresponding main data processing unit or backup data processing unit is found to be abnormal or a fault alarm occurs, the data processing unit is judged to be faulty.

[0060] It should be noted that in actual situations, any one of the above monitoring methods can be selected according to needs, or two monitoring methods can be used in parallel, and other monitoring methods can also be selected. The embodiments of the present disclosure do not specifically limit the type of monitoring method.

[0061] In one embodiment of the present disclosure, the above S304 includes: when a failure occurs in the running state of the main data processing unit running the target virtualization task, selecting at least one target standby data processing unit with a normal running state from each standby data processing unit; and selecting a target data processing unit running the target virtualization task from at least one target standby data processing unit according to a second preset selection method.

[0062] In one embodiment of the present disclosure, the second preset selection method may include but is not limited to random selection, selection based on node information (DPU card ID, supplier ID and other information sent by the node), etc. The second preset selection method may be the same as the first preset selection method or may be different.

[0063] In one embodiment of the present disclosure, selection preferences can be set for the first preset selection method and the second preset selection method. For example, when the DPU models deployed on the target server are the same, a random selection method can be adopted; when the DPU models deployed on the target server are different but the suppliers are the same, selection can be made based on the DPU model or card ID, and a more mainstream DPU is preferred; when the DPU suppliers deployed on the target server are different, selection can be made based on the supplier ID, DPU model or card ID, and a more mainstream DPU is preferred; if it is impossible to judge by the DPU model or supplier, the DPU can be randomly selected or a DPU with a larger card ID can be selected.

[0064] In one embodiment of the present disclosure, if there is only one backup data processing unit, when a failure occurs in the operation of the main data processing unit, the data processing unit is immediately switched to the backup data processing unit.

[0065] It should be noted that before determining whether a DPU is more mainstream, it is necessary to maintain a DPU list in advance according to a predetermined rule, and the embodiment of the present disclosure does not specifically limit this.

[0066] In one embodiment of the present disclosure, after the above S306, the method also includes: periodically obtaining the target virtualization task information and data processing configuration information of the target data processing unit according to a second preset time interval; and synchronizing the target virtualization task information and data processing configuration information of the target data processing unit to each target standby data processing unit.

[0067] In an embodiment of the present disclosure, the second preset time interval may be the same as or different from the first preset time interval. It should be noted that the embodiment of the present disclosure does not specifically limit the length of the second preset time interval.

[0068] Figure 4 Another flow chart of a virtualized task running method based on multiple data processing units in an embodiment of the present disclosure is shown. Figure 4 As shown, the method comprises the following steps:

[0069] S401, the arbitration module of the lightweight virtual machine monitor front end on the server and the arbitration modules of the virtual machine monitor back end on all data processing units conduct arbitration election to select the main data processing unit (corresponding to the main virtual machine monitor back end node).

[0070] In one embodiment of the present disclosure, the election method may be random selection, selection based on node information (for example, DPU card ID, supplier ID, etc. sent by the node), etc. Selection preferences may also be set for the election method. For example, when the DPU models deployed on the server are the same, a random selection method may be used; when the DPU models deployed on the server are different but the suppliers are the same, a selection may be made based on the DPU model or card ID, preferably a more mainstream DPU; when the DPU suppliers deployed on the server are different, a selection may be made based on the supplier ID, DPU model or card ID, preferably a more mainstream DPU; if it is impossible to judge by the DPU model or supplier, the DPU may be randomly selected or a DPU with a larger card ID may be selected.

[0071] It should be noted that whether to set a selection preference or to randomly adopt any election method can be selected according to actual conditions. The embodiment of the present disclosure does not specifically limit the setting of the selection preference and the selection of the selection method.

[0072] S402, after determining the main data processing unit, synchronize the result to the proxy module on the lightweight virtual machine monitor front end and the arbitration module of the virtual machine monitor back end on all data processing units, and use the virtual machine monitor back end on other data processing units except the main data processing unit as a backup virtual machine monitor back end node.

[0073] In one embodiment of the present disclosure, after each standby virtual machine monitor backend node receives the synchronization result, each standby virtual machine monitor backend node enters a passive state, that is, except for the arbitration module and the synchronization module, the remaining system components do not respond to external access and do not manage externally. At the same time, the proxy module of the lightweight standby virtual machine monitor front end on the server only accepts the management of the active virtual machine monitor backend node and refuses the management of other standby virtual machine monitor backend nodes.

[0074] S403, periodically obtain virtualization task information and node configuration information of the active virtual machine monitor backend node, and synchronize with the standby virtual machine monitor backend node through a synchronization module.

[0075] In one embodiment of the present disclosure, virtualization task information and node configuration information may include virtualization tasks offloaded by the server, basic configurations (for example, various system parameters, IP addresses, etc.), databases, message queues, etc., to ensure that the primary and standby nodes are consistent and can be switched at any time.

[0076] S404, the arbitration module continuously monitors the active virtual machine monitor backend node and each standby virtual machine monitor backend node.

[0077] In one embodiment of the present disclosure, the arbitration module can monitor each virtual machine monitor backend node in real time, or can periodically monitor each virtual machine monitor backend node according to a preset time interval. It should be noted that this is not specifically limited in the embodiment of the present disclosure.

[0078] S405, determining whether the backend node of the primary virtual machine monitor is faulty. If so, executing S406; if not, executing S408.

[0079] S406, determining whether each standby virtual machine monitor backend node has an operation failure, selecting standby virtual machine monitor backend nodes with normal operation status from each standby virtual machine monitor backend node, and further electing therefrom to select a new active virtual machine monitor backend node.

[0080] S407, performing active / standby switching.

[0081] In one embodiment of the present disclosure, after a new virtual machine monitor backend node is selected, the new active virtual machine monitor backend node is changed to an active management state to take over the management of the failed node, ensuring that the server provides virtualization capabilities normally and that the operation and management of the virtual machine are not affected.

[0082] S408, continue to run monitoring until the system is shut down normally.

[0083] As can be seen from the above, the embodiment of the present disclosure selects a main data processing unit and at least one backup data processing unit to run the virtualization task unloaded from the target server from multiple data processing units deployed on the target server, and when the main data processing unit fails to run the virtualization task, the target data processing unit is selected from the backup data processing unit to continue running the virtualization task. The embodiment of the present disclosure can realize the deployment of more than two DPU cards on a single server to unload the virtual machine monitor backend, and connect to the lightweight virtual machine monitor front end in a many-to-one form, to ensure high availability, and improve the overall reliability of the cloud environment in the scenario of using multiple data processing units to unload virtualization.

[0084] Based on the same inventive concept, the embodiments of the present disclosure also provide a virtualized task running device based on multiple data processing units, as described in the following embodiments. Since the principle of solving the problem in the device embodiment is similar to that in the above method embodiment, the implementation of the device embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.

[0085] Figure 5 A schematic diagram of a virtualized task running device based on multiple data processing units in an embodiment of the present disclosure is shown. Figure 5 As shown, the device includes: a first data processing unit selection module 501, a second data processing unit selection module 502 and a virtualization task running module 503.

[0086] Among them, the first data processing unit selection module 501 is used to select a main data processing unit and at least one backup data processing unit for running a target virtualization task from multiple data processing units deployed on the target server, and the target virtualization task is a virtualization task that is unloaded from the target server to any data processing unit for running; the second data processing unit selection module 502 is used to select a target data processing unit for running a target virtualization task from at least one backup data processing unit when a failure occurs in the running state of the main data processing unit running the target virtualization task; the virtualization task running module 503 is used to run the target virtualization task through the target data processing unit.

[0087] As can be seen from the above, the embodiment of the present disclosure selects a primary data processing unit and at least one backup data processing unit to run the virtualization task offloaded from the target server from multiple data processing units deployed on the target server, and when the primary data processing unit fails while running the virtualization task, the target data processing unit is selected from the backup data processing units to continue running the virtualization task. The embodiment of the present disclosure can improve the overall reliability of the cloud environment in the scenario of using multiple data processing units to offload virtualization.

[0088] In one embodiment of the present disclosure, the above-mentioned first data processing unit selection module 501 is also used to select a main data processing unit that runs a target virtualization task from multiple data processing units deployed on the target server according to a first preset selection method; and use at least one data processing unit among the multiple data processing units except the main data processing unit as a backup data processing unit.

[0089] In one embodiment of the present disclosure, the first preset selection method may include but is not limited to random selection, selection based on node information (DPU card ID, supplier ID and other information sent by the node), etc.

[0090] In one embodiment of the present disclosure, the device also includes: a first information synchronization module 504, which is used to periodically obtain the target virtualization task information and data processing configuration information of the main data processing unit according to a first preset time interval; and synchronize the target virtualization task information and data processing configuration information of the main data processing unit to each backup data processing unit.

[0091] In one embodiment of the present disclosure, the target virtualization task information and data processing configuration information of the main data processing unit are obtained regularly, which may include but is not limited to relevant task information of the virtualization task unloaded by the target server, basic configuration (for example, various system parameters, IP addresses, etc.), database, message queue, etc., to ensure that the primary and standby nodes remain consistent and can be switched at any time.

[0092] It should be noted that the first preset time interval may be determined according to actual conditions, and the embodiment of the present disclosure does not specifically limit the length of the first preset time interval.

[0093] In one embodiment of the present disclosure, the device further includes: an operation status monitoring module 505, which is used to monitor the operation status of the main data processing unit running the target virtualization task and the operation status of each standby data processing unit.

[0094] In one embodiment of the present disclosure, the operating status of the main data processing unit running the target virtualization task and the operating status of each backup data processing unit can be monitored at preset time intervals or in real time, so that when a failure in the operation of the main data processing unit is detected, a target data processing unit can be selected from the normally operating backup data processing units in time to replace the main data processing unit to continue running the target virtualization task.

[0095] In one embodiment of the present disclosure, a failure in the operation of the main data processing unit can be confirmed in a variety of ways. For example, a conventional heartbeat detection method (for example, transmission control protocol keep-alive TCP KeepAlive, distributed lock, etc.) can be used. Specifically, the status of the main data processing unit and the backup data processing unit can be periodically confirmed. When the status of a data processing unit is not confirmed after several cycles, the data processing unit is judged to be faulty. The component status and fault warning can also be obtained from the physical server hardware management system (baseboard management controller BMC). Once the status of the corresponding main data processing unit or backup data processing unit is found to be abnormal or a fault alarm occurs, the data processing unit is judged to be faulty.

[0096] It should be noted that in actual situations, any one of the above monitoring methods can be selected according to needs, or two monitoring methods can be used in parallel, and other monitoring methods can also be selected. The embodiments of the present disclosure do not specifically limit the type of monitoring method.

[0097] In one embodiment of the present disclosure, the above-mentioned second data processing unit selection module 502 is also used to select at least one target standby data processing unit with normal running status from various standby data processing units when a failure occurs in the running status of the main data processing unit running the target virtualization task; and select a target data processing unit running the target virtualization task from at least one target standby data processing unit according to a second preset selection method.

[0098] In one embodiment of the present disclosure, the second preset selection method may include but is not limited to random selection, selection based on node information (DPU card ID, supplier ID and other information sent by the node), etc. The second preset selection method may be the same as the first preset selection method or may be different.

[0099] In one embodiment of the present disclosure, selection preferences can be set for the first preset selection method and the second preset selection method. For example, when the DPU models deployed on the target server are the same, a random selection method can be adopted; when the DPU models deployed on the target server are different but the suppliers are the same, selection can be made based on the DPU model or card ID, and a more mainstream DPU is preferred; when the DPU suppliers deployed on the target server are different, selection can be made based on the supplier ID, DPU model or card ID, and a more mainstream DPU is preferred; if it is impossible to judge by the DPU model or supplier, the DPU can be randomly selected or a DPU with a larger card ID can be selected.

[0100] In one embodiment of the present disclosure, if there is only one backup data processing unit, when a failure occurs in the operation of the main data processing unit, the data processing unit is immediately switched to the backup data processing unit.

[0101] It should be noted that, for the above determination of whether a DPU is more mainstream, it is necessary to maintain a DPU list in advance according to predetermined rules, and the embodiments of the present disclosure do not specifically limit this.

[0102] In one embodiment of the present disclosure, the device also includes: a second information synchronization module 506, which is used to periodically obtain the target virtualization task information and data processing configuration information of the target data processing unit according to a second preset time interval; and synchronize the target virtualization task information and data processing configuration information of the target data processing unit to each target standby data processing unit.

[0103] In an embodiment of the present disclosure, the second preset time interval may be the same as or different from the first preset time interval. It should be noted that the embodiment of the present disclosure does not specifically limit the length of the second preset time interval.

[0104] Those skilled in the art will appreciate that various aspects of the present disclosure may be implemented as systems, methods or program products. Therefore, various aspects of the present disclosure may be specifically implemented in the following forms, namely: complete hardware implementation, complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as "circuits", "modules" or "systems".

[0105] Refer to the following Figure 6 The electronic device 600 according to this embodiment of the present disclosure is described. Figure 6 The electronic device 600 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0106] Figure 6 A block diagram of an electronic device in an embodiment of the present disclosure is shown. Figure 6 The electronic device 600 according to this embodiment of the present disclosure is described. Figure 6 The electronic device 600 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0107] like Figure 6 As shown, the electronic device 600 is in the form of a general computing device. The components of the electronic device 600 may include but are not limited to: at least one processing unit 610, at least one storage unit 620, and a bus 630 connecting different system components (including the storage unit 620 and the processing unit 610).

[0108] The storage unit stores a program code, and the program code can be executed by the processing unit 610, so that the processing unit 610 executes the steps described in the above "Exemplary Method" section of this specification according to various exemplary embodiments of the present disclosure. For example, the processing unit 610 can execute the following steps of the above method embodiment: select a main data processing unit and at least one backup data processing unit that run a target virtualization task from multiple data processing units deployed on the target server, and the target virtualization task is a virtualization task that is unloaded from the target server to any data processing unit for operation; when a failure occurs in the running state of the main data processing unit running the target virtualization task, select a target data processing unit that runs the target virtualization task from at least one backup data processing unit; and run the target virtualization task through the target data processing unit.

[0109] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache memory unit 6202 , and may further include a read-only memory unit (ROM) 6203 .

[0110] The storage unit 620 may also include a program / utility 6204 having a set (at least one) of program modules 6205, such program modules 6205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.

[0111] Bus 630 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.

[0112] The electronic device 600 may also communicate with one or more external devices 640 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 600, and / or communicate with any device that enables the electronic device 600 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 650. Furthermore, the electronic device 600 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter 660. As shown, the network adapter 660 communicates with other modules of the electronic device 600 via a bus 630. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0113] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.

[0114] Based on the same inventive concept, the embodiment of the present disclosure also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, any one of the virtualized task running methods based on multiple data processing units is implemented. Since the implementation of the computer-readable storage medium embodiment can refer to the implementation of the above method embodiment, the repeated parts will not be repeated.

[0115] More specific examples of computer-readable storage media in the present disclosure may include, but are not limited to, an electrical connection having one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0116] In the present disclosure, a computer readable storage medium may include a data signal propagated in baseband or as part of a carrier wave, wherein a readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.

[0117] Alternatively, the program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.

[0118] In a specific implementation, the program code for performing the operations of the present disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).

[0119] Based on the same inventive concept, a computer program product is also provided in the embodiment of the present disclosure, including: a computer program or instruction, which, when executed by a processor, implements a virtualized task running method based on multiple data processing units in any one of the above method embodiments. Since the principle of solving the problem in the computer program product embodiment is similar to that in the above method embodiment, the implementation of the computer program product embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.

[0120] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.

[0121] In addition, although the steps of the method in the present disclosure are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.

[0122] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the implementation of the present disclosure.

[0123] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. The present disclosure is intended to cover any variations, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The description and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.

Claims

1. A virtualized task running method based on multiple data processing units, characterized in that: include: Selecting a main data processing unit and at least one standby data processing unit for running a target virtualization task from a plurality of data processing units deployed on a target server, wherein the target virtualization task is a virtualization task that is offloaded from the target server to any data processing unit for running; When a failure occurs in the running state of the main data processing unit running the target virtualization task, selecting a target data processing unit running the target virtualization task from the at least one standby data processing unit; The target virtualization task is run through the target data processing unit.

2. The virtualization task running method based on multiple data processing units according to claim 1 is characterized in that: Selecting a main data processing unit and at least one standby data processing unit for running a target virtualization task from a plurality of data processing units deployed on a target server includes: According to a first preset selection method, selecting a master data processing unit for running a target virtualization task from a plurality of data processing units deployed on a target server; At least one data processing unit among the plurality of data processing units except the main data processing unit is used as a backup data processing unit.

3. The virtualization task running method based on multiple data processing units according to claim 1 is characterized in that: After selecting a main data processing unit and at least one standby data processing unit for running the target virtualization task from a plurality of data processing units deployed on the target server, the method further includes: periodically acquiring target virtualization task information and data processing configuration information of the main data processing unit according to a first preset time interval; The target virtualization task information and the data processing configuration information of the main data processing unit are synchronized to each standby data processing unit.

4. The virtualization task running method based on multiple data processing units according to claim 1, characterized in that: When a failure occurs in the running state of the primary data processing unit running the target virtualization task, before selecting a target data processing unit running the target virtualization task from the at least one standby data processing unit, the method further includes: The running status of the target virtualization task executed by the main data processing unit and the running status of each standby data processing unit are monitored.

5. The virtualized task running method based on multiple data processing units according to claim 4 is characterized in that: When a failure occurs in the running state of the main data processing unit running the target virtualization task, selecting a target data processing unit running the target virtualization task from the at least one standby data processing unit comprises: When a failure occurs in the running state of the target virtualization task being run by the main data processing unit, at least one target standby data processing unit with a normal running state is selected from each standby data processing unit; According to a second preset selection method, a target data processing unit for running the target virtualization task is selected from the at least one target standby data processing unit.

6. The virtualized task running method based on multiple data processing units according to claim 5, characterized in that: After the target virtualization task is run by the target data processing unit, the method further includes: periodically acquiring target virtualization task information and data processing configuration information of the target data processing unit according to a second preset time interval; The target virtualization task information and the data processing configuration information of the target data processing unit are synchronized to each target standby data processing unit.

7. A virtualized task running device based on multiple data processing units, characterized in that: include: A first data processing unit selection module is used to select a main data processing unit and at least one standby data processing unit for running a target virtualization task from a plurality of data processing units deployed on a target server, wherein the target virtualization task is a virtualization task that is offloaded from the target server to any data processing unit for running; A second data processing unit selection module is used to select a target data processing unit for running the target virtualization task from the at least one standby data processing unit when a failure occurs in the running state of the main data processing unit running the target virtualization task; A virtualization task running module is used to run the target virtualization task through the target data processing unit.

8. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the virtualization task running method based on multiple data processing units as described in any one of claims 1 to 6 by executing the executable instructions.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the virtualized task running method based on multiple data processing units as described in any one of claims 1 to 6 is implemented.

10. A computer program product comprising: A computer program or instruction, characterized in that when the computer program or instruction is executed by a processor, it implements the virtualization task running method based on multiple data processing units as described in any one of claims 1 to 6.