IO management method and device of virtualization system, computer equipment and storage medium
By setting kernel monitoring symbols in the virtualized system to obtain IO monitoring data and adjust the IO quota, the problem that the existing technology cannot effectively manage multi-storage backend and diversified virtualization application scenarios is solved, and the precise allocation of IO resources and efficient adjustment of virtual machines are achieved.
Patent Information
- Application Number
- CN202510159085.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-13
- Publication Date
- 2025-06-10
AI Technical Summary
Existing virtualized IO management solutions cannot effectively deal with complex multi-storage backend environments and diverse virtualization application scenarios, especially in multi-tenant environments, making it difficult to achieve fair resource allocation and performance guarantees for key applications.
By setting kernel monitoring symbols, obtaining IO monitoring data, analyzing data to calculate the current IO bandwidth of the client virtual machine, and adjusting the IO quota according to the bandwidth to achieve accurate IO resource allocation.
It realizes the precise allocation of IO resources of the virtualized system and efficient adjustment of virtual machines, avoids performance bottlenecks and resource conflicts, and improves system performance and stability.
Smart Images

Figure CN120128477A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of IO management, and in particular, to an IO management method, apparatus, computer device, and storage medium for a virtualization system. Background Art
[0002] With the rapid development of cloud computing technology and the wide application of virtualization technology, how to efficiently and accurately manage IO resources in a virtualized environment has become a key issue in improving system performance and stability. Through abstracting and sharing physical hardware resources, virtualization technology can run multiple virtual machines on a single server, significantly improving the utilization rate of hardware resources. However, this resource sharing model also brings problems such as resource contention, performance fluctuations, and uneven IO bandwidth allocation. Especially in a multi-tenant environment, each virtual machine may have different IO requirements. How to ensure fair resource allocation while giving priority to the performance of critical applications has become an urgent challenge in the virtualization system. Therefore, a solution for managing virtual machine IO quotas is needed.
[0003] However, existing virtualized IO management solutions have significant limitations and cannot effectively handle complex multi-storage backend environments and diverse virtualization application scenarios. First, traditional IO resource management solutions, such as the rate-limiting solution based on cgroup, although they can control IO traffic at the process level, lack precise monitoring at the virtual machine level, and their accuracy and flexibility are insufficient, making it difficult to meet the requirements of high precision and dynamic adjustment. Second, many storage QoS management solutions are designed for specific storage backends. For example, the rbd rate-limiting solution based on Ceph storage is only applicable to the Ceph storage system and cannot be uniformly managed across storage backends, resulting in the inability to implement a general IO management mechanism in multiple storage environments. More seriously, most existing solutions are static configurations and cannot perform dynamic resource allocation based on the real-time load and business priorities of virtual machines, and cannot intelligently predict and handle resource contention problems under high load conditions. Summary of the Invention
[0004] Based on this, in view of the above technical problems, it is necessary to provide an IO management method, apparatus, computer device, and storage medium for a virtualization system that can achieve unified management in diverse storage backends, accurately control the IO resource allocation of virtual machines, and avoid performance bottlenecks and resource conflicts.
[0005] On the one hand, an IO management method for a virtualization system is disclosed, and the method includes:
[0006] In response to receiving user IO data, set a kernel monitoring symbol for the user IO data;
[0007] In response to storing the user IO data, obtain IO monitoring data through the kernel monitoring symbol;
[0008] Analyze the IO monitoring data to obtain the current IO bandwidth of the customer virtual machine corresponding to the user IO data;
[0009] Adjust the IO quota of the customer virtual machine according to the current IO bandwidth of the customer virtual machine.
[0010] In one embodiment, the setting the kernel monitoring symbol for the user IO data in response to receiving the user IO data includes:
[0011] Obtain the type of the backend storage module in the kernel mode for storing the user IO data, where the type of the backend storage module includes at least one of the following: virtual disk, block device, object storage;
[0012] Set a corresponding key symbol as the kernel monitoring symbol according to the type of the backend storage module.
[0013] In one embodiment, the obtaining the IO monitoring data through the kernel monitoring symbol in response to storing the user IO data includes:
[0014] Set the kernel monitoring interface as the IO monitoring point according to the kernel monitoring symbol;
[0015] In response to the backend storage module storing the user IO data, generate an IO data stream;
[0016] Set an IO monitoring plugin, and capture the IO data stream through the kernel monitoring interface to obtain the IO monitoring data.
[0017] In one embodiment, the analyzing the IO monitoring data to obtain the current IO bandwidth of the customer virtual machine corresponding to the user IO data includes:
[0018] Obtain the IO monitoring data;
[0019] In response to the IO monitoring data being from several customer virtual machines, obtain the correspondence between the IO operations of the several customer virtual machines and the IO monitoring data;
[0020] Divide the IO monitoring data according to the correspondence between the IO operations of the several customer virtual machines and the IO monitoring data to respectively obtain the independent IO monitoring data corresponding to the several customer virtual machines;
[0021] According to the independent IO monitoring data, and in combination with a preset monitoring time window, calculate the IO bandwidth of a plurality of the customer virtual machines respectively to obtain the current IO bandwidth of the plurality of the customer virtual machines.
[0022] In one embodiment, adjusting the IO quota of the customer virtual machine according to the current IO bandwidth of the customer virtual machine includes:
[0023] Perform an IO overlimit judgment according to the current IO bandwidth in combination with the IO quota corresponding to the customer virtual machine;
[0024] Obtain the current IO bandwidth of the customer virtual machine;
[0025] Obtain the IO quota corresponding to the customer virtual machine;
[0026] Compare the current IO bandwidth with the IO quota. In response to the current IO bandwidth being not greater than the IO quota, the result of the IO overlimit judgment is negative;
[0027] In response to the current IO bandwidth being greater than the IO quota, the customer virtual machine is an overlimit virtual machine, where the overlimit virtual machine includes a short-term overlimit machine and a complete overlimit machine;
[0028] In response to the customer virtual machine being an overlimit virtual machine, obtain the overlimit amplitude according to the difference between the current IO bandwidth and the IO quota;
[0029] Set an overlimit observation threshold. In response to the overlimit amplitude being greater than the overlimit observation threshold, the overlimit virtual machine is a complete overlimit machine;
[0030] In response to the overlimit amplitude being not greater than the overlimit observation threshold, set an overlimit observation time limit. In response to the overlimit amplitude showing a downward trend within the overlimit observation time limit and dropping below zero within the overlimit observation time limit, the overlimit virtual machine is a short-term overlimit machine; otherwise, the overlimit virtual machine is a complete overlimit machine.
[0031] In one embodiment, after "in response to the current IO bandwidth being greater than the IO quota, the customer virtual machine is an overlimit virtual machine", it further includes:
[0032] In response to the customer virtual machine being an overlimit virtual machine, obtain the service operation log of the overlimit virtual machine to obtain the operation service type and service operation data of the overlimit virtual machine;
[0033] Evaluate and obtain the service IO dependency and service importance according to the operation service type and service operation data;
[0034] Perform business risk assessment based on the business IO dependency and the business importance to obtain a business risk score;
[0035] Obtain the IO monitoring data to get the total bandwidth requirements of all the customer virtual machines, and combine with the maximum bandwidth capacity of the virtualization system to perform system resource contention risk assessment to obtain a resource contention risk score;
[0036] Based on the IO monitoring data and a load prediction model, obtain a predicted load increase, and perform load increase risk assessment according to the predicted load increase to obtain a load increase risk score;
[0037] Determine the specific type of the overlimit virtual machine and perform overlimit assessment to obtain an overlimit score. Among them, in response to the overlimit virtual machine being a short-term overlimit machine, the overlimit amplitude score is zero; in response to the overlimit virtual machine being a complete overlimit machine, the overlimit score is positively correlated with the overlimit amplitude;
[0038] Combine the business risk score, the resource contention risk score, the load increase risk score and the overlimit score to obtain an IO adjustment risk score;
[0039] Based on the IO adjustment risk score and a risk threshold, obtain the IO adjustment risk assessment result. Among them, in response to the IO adjustment risk score not being greater than the risk threshold, the IO adjustment risk assessment result is low risk; otherwise, the IO adjustment risk assessment result is high risk.
[0040] In one embodiment, after the step of in response to the IO adjustment risk score not being greater than the risk threshold, the IO adjustment risk assessment result is low risk, further includes:
[0041] Obtain the specific type of the overlimit virtual machine;
[0042] In response to the overlimit virtual machine being the short-term overlimit machine, within the overlimit observation time limit, do not perform IO adjustment on the overlimit virtual machine;
[0043] In response to the overlimit virtual machine being the complete overlimit machine, obtain the overlimit amplitude of the complete overlimit machine;
[0044] In response to the overlimit amplitude being greater than the overlimit observation threshold, generate an IO bandwidth reduction parameter for the complete overlimit machine;
[0045] In response to the overlimit amplitude not being greater than the overlimit observation threshold, obtain the historical IO data of the complete overlimit machine, and based on trend analysis, obtain the overlimit amplitude trend of the complete overlimit machine;
[0046] If the over-limit amplitude trend is an increasing trend, generate the IO bandwidth reduction parameter for the full over-limit machine;
[0047] If the over-limit amplitude trend is a fluctuating state, adjust the IO quota of the full over-limit machine;
[0048] If the over-limit amplitude trend is a decreasing trend and the over-limit amplitude is greater than zero within the over-limit observation time limit, generate the IO bandwidth reduction parameter for the full over-limit machine.
[0049] On the other hand, an IO management device for a virtualization system is provided, and the device includes:
[0050] A symbol setting module, configured to set kernel monitoring symbols for the user IO data in response to receiving the user IO data;
[0051] A monitoring data acquisition module, configured to obtain IO monitoring data through the kernel monitoring symbols in response to storing the user IO data;
[0052] A bandwidth calculation module, configured to parse the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data;
[0053] An IO quota adjustment module, configured to adjust the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine.
[0054] On yet another aspect, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented:
[0055] Set kernel monitoring symbols for the user IO data in response to receiving the user IO data;
[0056] Obtain IO monitoring data through the kernel monitoring symbols in response to storing the user IO data;
[0057] Parse the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data;
[0058] Adjust the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine.
[0059] On still another aspect, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0060] Set kernel monitoring symbols for the user IO data in response to receiving the user IO data;
[0061] In response to storing the user IO data, IO monitoring data is obtained through the kernel monitoring symbol;
[0062] Parse the IO monitoring data to obtain the current IO bandwidth of the customer virtual machine corresponding to the user IO data;
[0063] Adjust the IO quota of the customer virtual machine according to the current IO bandwidth of the customer virtual machine.
[0064] The above IO management method, device, computer device and storage medium of the virtualization system can achieve precise IO monitoring by setting the kernel monitoring symbol according to the user IO data, so as to achieve accurate bandwidth calculation, which is beneficial to improving the accuracy of subsequent judgment and adjustment; at the same time, by using the kernel monitoring symbol to obtain the IO monitoring data, it can adapt to the storage systems of various types of virtual machine systems, improving the versatility; in addition, through targeted IO adjustment, precise allocation of IO resources for the virtualization system and efficient adjustment of the virtual machine are realized. Brief Description of the Drawings
[0065] Figure 1 It is an application environment diagram of the IO management method of the virtualization system in an embodiment;
[0066] Figure 2 It is a schematic flowchart of the IO management method of the virtualization system in an embodiment;
[0067] Figure 3 It is a schematic diagram of the IO management method in the virtual file system scenario in an embodiment;
[0068] Figure 4 It is a structural block diagram of the IO management device in an embodiment;
[0069] Figure 5 It is an internal structure diagram of the computer device in an embodiment. Detailed Embodiments
[0070] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0071] An IO management method for a virtualization system provided by the present application can be applied as Figure 1In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. A virtualization system is deployed in the server 104. When the server 104 receives an IO management request sent by the terminal 102, it calls the IO management method to implement the IO management of the virtualization system. Among them, the virtualization system is divided into a user mode and a kernel mode. A number of guest virtual machines are deployed in the user mode, and a backend storage module and a number of IO monitoring plugins are deployed in the kernel mode. The number of IO monitoring plugins is set to select a corresponding kernel monitoring interface according to the type of the backend storage module to monitor the backend storage module. Among them, the terminal 102 can be, but is not limited to, various personal computers, laptop computers, smart phones, tablet computers, and portable wearable devices. The server 104 can be implemented by an independent server or a server cluster composed of multiple servers.
[0072] In one embodiment, as Figure 2 shown, a method for IO management of a virtualization system is provided. Taking the server side 104 in Figure 1 as an example, the method includes the following steps:
[0073] Step 201, in response to receiving user IO data, set a kernel monitoring symbol for the user IO data.
[0074] Specifically, obtain the type of the backend storage module in the kernel mode for storing user IO data, and set a corresponding key symbol as the kernel monitoring symbol according to the type of the backend storage module.
[0075] Step 202, in response to storing the user IO data, obtain IO monitoring data through the kernel monitoring symbol.
[0076] Specifically, according to the kernel monitoring symbol, set the kernel monitoring interface as the IO monitoring point; in response to the backend storage module storing the user IO data, generate an IO data stream; capture the IO data stream through the kernel monitoring interface to obtain the IO monitoring data.
[0077] Step 203, parse the IO monitoring data to obtain the current IO bandwidth of the guest virtual machine corresponding to the user IO data.
[0078] Specifically, in response to the IO monitoring data originating from a number of guest virtual machines, obtain the correspondence between the IO operations of the number of guest virtual machines and the IO monitoring data; according to the correspondence between the IO operations of the number of guest virtual machines and the IO monitoring data, divide the IO monitoring data to respectively obtain independent IO monitoring data corresponding to the number of guest virtual machines; according to the independent IO monitoring data, calculate the IO bandwidth of the number of guest virtual machines respectively to obtain the current IO bandwidth of the number of guest virtual machines.
[0079] Step 204: Adjust the IO quota of the customer virtual machine according to the current IO bandwidth of the customer virtual machine.
[0080] Specifically, according to the current IO bandwidth, combined with the IO quotas corresponding to several customer virtual machines, perform IO overrun judgments respectively. In response to the result of the IO overrun judgment being yes, the customer virtual machine with the IO overrun judgment result of yes is an overrun virtual machine. Among them, the categories of overrun virtual machines include: completely overrun machines, short-term overrun machines; in response to the customer virtual machine being an overrun virtual machine, obtain the business operation logs of the overrun virtual machine, and combine the IO monitoring data to perform an IO adjustment risk assessment; in response to the result of the IO adjustment risk assessment being low risk, analyze according to the category of the overrun virtual machine, and select the corresponding method to adjust the IO quota of the customer virtual machine.
[0081] In the above IO management method of the virtualization system, by setting kernel monitoring symbols according to user IO data, accurate IO monitoring can be achieved, thereby realizing accurate bandwidth calculation, which is beneficial to improving the accuracy of subsequent judgments and adjustments; at the same time, by using kernel monitoring symbols to obtain IO monitoring data, it can adapt to the storage systems of various types of virtual machine systems, improving the versatility; in addition, through targeted IO adjustments, precise allocation of IO resources in the virtualization system and efficient adjustment of virtual machines are realized.
[0082] In one embodiment, in response to receiving user IO data, setting kernel monitoring symbols for the user IO data includes:
[0083] Obtain the type of the backend storage module used to store user IO data in the kernel mode, where the type of the backend storage module includes at least one of the following: virtual disk, block device, object storage;
[0084] According to the type of the backend storage module, set the corresponding key symbol as the kernel monitoring symbol.
[0085] Specifically, setting the corresponding key symbol as the kernel monitoring symbol according to the type of the backend storage module is beneficial to the subsequent setting of IO monitoring points, and can realize non-intrusive IO monitoring according to different types of backend storage modules, achieving support and compatibility for various types of backend storage modules, and improving the versatility of the virtualization system.
[0086] In one embodiment, in response to storing user IO data, obtaining IO monitoring data through kernel monitoring symbols includes:
[0087] According to the kernel monitoring symbol, set the kernel monitoring interface as the IO monitoring point;
[0088] In response to the backend storage module storing user IO data, generate an IO data stream;
[0089] Set up an IO monitoring plugin. Through the kernel monitoring interface, capture the IO data stream to obtain IO monitoring data.
[0090] In one scenario, based on a packet filter, preferably eBPF, i.e., Extended Berkeley Packet Filter, set up several IO monitoring plugins; through kernel probes, preferably kprobe, set up the kernel monitoring interface.
[0091] Specifically, in this embodiment, based on eBPF, i.e., the extended Berkeley program framework technology, it is possible to perform efficient dynamic monitoring in the kernel space without modifying the kernel code, enabling the system to capture detailed IO operation data of the storage module in real time, which is beneficial to improving accuracy and reducing performance overhead, and achieving precise kernel-level monitoring; at the same time, by using kprobe, i.e., the kernel probes of the Linux kernel, it can be dynamically inserted into specific positions in the kernel at runtime, capture the calls of kernel functions and their parameters, improve flexibility, and combined with eBPF, it can accurately monitor various storage types, select appropriate monitoring interfaces for different types of backend storage modules, ensure that the system can meet the performance requirements of various storage devices, and is beneficial to subsequent IO management.
[0092] In one embodiment, parse the IO monitoring data to obtain the current IO bandwidth of the customer virtual machine corresponding to the user IO data, including:
[0093] Obtain the IO monitoring data;
[0094] In response to the IO monitoring data originating from several customer virtual machines, obtain the correspondence between the IO operations of the several customer virtual machines and the IO monitoring data;
[0095] According to the correspondence between the IO operations of the several customer virtual machines and the IO monitoring data, divide the IO monitoring data to respectively obtain the independent IO monitoring data corresponding to the several customer virtual machines;
[0096] According to the independent IO monitoring data, combined with the preset monitoring time window, calculate the IO bandwidth of the several customer virtual machines respectively to obtain the current IO bandwidth of the several customer virtual machines.
[0097] It should be noted that in response to the IO monitoring data originating from several customer virtual machines, obtaining the correspondence between the IO operations of the several customer virtual machines and the IO monitoring data includes:
[0098] In the kernel state, obtain the IO monitoring data to obtain the IO operation information, where the IO operation includes at least one of the following: operation timestamp, operation data volume, operation type, storage device identifier;
[0099] Generate an I / O operation identifier based on the operation timestamp, the amount of operation data, and the operation type;
[0100] In the user space, capture the I / O request data of several guest virtual machines. Among them, the I / O request data of several guest virtual machines includes at least one of the following: request timestamp, amount of request data, request operation type, virtual machine identifier;
[0101] Generate an I / O request identifier based on the request timestamp, the amount of request data, and the request operation type;
[0102] Match and verify the I / O operation identifier and the I / O request identifier. In response to the result of the match verification being consistent, the I / O monitoring data corresponding to the I / O operation identifier belongs to the guest virtual machine corresponding to the I / O request identifier.
[0103] Specifically, in this embodiment, by using the I / O matching between the kernel space and the user space to generate the corresponding relationship between the I / O operations and the I / O monitoring data of several guest virtual machines, it is possible to effectively divide and process the independent I / O monitoring data of different virtual machines, accurately obtain the current I / O bandwidth of each virtual machine, and thus accurately evaluate the resource usage of each virtual machine, which helps to optimize resource allocation and prevent resource conflicts.
[0104] In one embodiment, adjust the I / O quota of a guest virtual machine according to the current I / O bandwidth of the guest virtual machine, including:
[0105] Judge whether there is an I / O overlimit according to the current I / O bandwidth and in combination with the I / O quota corresponding to the guest virtual machine;
[0106] Obtain the current I / O bandwidth of the guest virtual machine;
[0107] Obtain the I / O quota corresponding to the guest virtual machine;
[0108] Compare the current I / O bandwidth with the I / O quota. In response to the current I / O bandwidth being not greater than the I / O quota, the result of the I / O overlimit judgment is negative;
[0109] In response to the current I / O bandwidth being greater than the I / O quota, the guest virtual machine is an overlimit virtual machine, where the overlimit virtual machine includes a short-term overlimit machine and a completely overlimit machine;
[0110] In response to the guest virtual machine being an overlimit virtual machine, obtain the overlimit amplitude according to the difference between the current I / O bandwidth and the I / O quota;
[0111] Set an overlimit observation threshold. In response to the overlimit amplitude being greater than the overlimit observation threshold, the overlimit virtual machine is a completely overlimit machine;
[0112] If the overrun amplitude is not greater than the overrun observation threshold, set the overrun observation time limit. If the overrun amplitude shows a downward trend within the overrun observation time limit and drops below zero within the overrun observation time limit, the overrun virtual machine is a short-term overrun machine; otherwise, the overrun virtual machine is a complete overrun machine.
[0113] Specifically, in this embodiment, by comparing the current IO bandwidth of the virtual machine with the IO quota to determine whether the virtual machine is overrun, accurate overrun identification of the customer virtual machine can be performed, avoiding overload risks, and ensuring that the system remains stable under high load conditions. At the same time, by performing secondary IO overrun judgment on the virtual machine according to the overrun amplitude, accurate classification of the overrun virtual machine can be carried out, which is conducive to subsequent dynamic adjustment and improving system resource utilization.
[0114] In one embodiment, if it is determined that the current IO bandwidth is greater than the IO quota, and the customer virtual machine is an overrun virtual machine, the following steps are further included:
[0115] If the customer virtual machine is an overrun virtual machine, obtain the business operation log of the overrun virtual machine to obtain the running business type and business operation data of the overrun virtual machine;
[0116] Based on the running business type and business operation data, evaluate to obtain the business IO dependency and business importance;
[0117] Based on the business IO dependency and business importance, conduct business risk assessment to obtain a business risk score;
[0118] Obtain IO monitoring data to obtain the total bandwidth requirements of all customer virtual machines, and combine with the maximum bandwidth capacity of the virtualization system to conduct system resource contention risk assessment to obtain a resource contention risk score;
[0119] Based on the IO monitoring data and the load prediction model, obtain the predicted load increase amplitude, and based on the predicted load increase amplitude, conduct load increase amplitude risk assessment to obtain a load increase amplitude risk score;
[0120] Determine the specific type of the overrun virtual machine, conduct overrun degree assessment to obtain an overrun degree score. Among them, if the overrun virtual machine is a short-term overrun machine, the overrun amplitude score is zero; if the overrun virtual machine is a complete overrun machine, the overrun degree score is positively correlated with the overrun amplitude;
[0121] Combine the business risk score, resource contention risk score, load increase amplitude risk score and overrun degree score to obtain an IO adjustment risk score;
[0122] Adjust the risk score and risk threshold according to the IO to obtain the IO-adjusted risk assessment result. Among them, in response to the IO-adjusted risk score being no greater than the risk threshold, the IO-adjusted risk assessment result is a low risk; otherwise, the IO-adjusted risk assessment result is a high risk.
[0123] Specifically, in this embodiment, by performing a risk assessment on the business operation logs and IO monitoring data of the over-limit virtual machines, the risk of IO adjustment can be comprehensively evaluated. At the same time, by combining multi-dimensional data such as business dependency, resource contention risk, and load increase rate, the possible risks of IO adjustment can be more accurately evaluated and predicted, which is beneficial for subsequent adjustments and optimizing resource allocation.
[0124] In one embodiment, in response to the IO-adjusted risk score being no greater than the risk threshold, and the IO-adjusted risk assessment result being a low risk, the following further includes:
[0125] Obtain the specific type of the over-limit virtual machine;
[0126] In response to the over-limit virtual machine being a short-term over-limit machine, within the over-limit observation time limit, do not perform IO adjustment on the over-limit virtual machine;
[0127] In response to the over-limit virtual machine being a completely over-limit machine, obtain the over-limit amplitude of the completely over-limit machine;
[0128] In response to the over-limit amplitude being greater than the over-limit observation threshold, generate the IO bandwidth reduction parameter for the completely over-limit machine;
[0129] In response to the over-limit amplitude being no greater than the over-limit observation threshold, obtain the historical IO data of the completely over-limit machine, and based on trend analysis, obtain the over-limit amplitude trend of the completely over-limit machine;
[0130] In response to the over-limit amplitude trend being an increasing trend, generate the IO bandwidth reduction parameter for the completely over-limit machine;
[0131] In response to the over-limit amplitude trend being in a fluctuating state, adjust the IO quota of the completely over-limit machine;
[0132] In response to the over-limit amplitude trend being a decreasing trend, and the over-limit amplitude being greater than zero within the over-limit observation time limit, generate the IO bandwidth reduction parameter for the completely over-limit machine.
[0133] Specifically, in this embodiment, when the IO-adjusted risk assessment result is a low risk, by analyzing the virtual machine type to formulate a suitable IO adjustment strategy, personalized adjustments can be made for different over-limit situations, ensuring that appropriate adjustment measures are taken in low-risk situations. While achieving fast, accurate, and efficient adjustments, it can avoid the impact of over-adjustment on the performance of virtual machines, which is beneficial for further improving system performance.
[0134] It should be understood that althoughFigure 2 The steps in the flowchart are shown in sequence according to the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 2 at least a part of the steps in Figure 2 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed alternately or in turns with at least a part of other steps or sub-steps or stages of other steps.
[0135] It should be noted that in one embodiment, taking VFS, i.e., the virtual file system, as an example, the specific process of an IO management method for a virtualization system is as Figure 3 shown.
[0136] In one embodiment, as Figure 4 shown, an IO management device for a virtualization system is provided. The device includes: a symbol setting module, a monitoring data acquisition module, a bandwidth calculation module, and an IO quota adjustment module, where:
[0137] The symbol setting module is configured to set kernel monitoring symbols for user IO data in response to receiving the user IO data;
[0138] The monitoring data acquisition module is configured to obtain IO monitoring data through the kernel monitoring symbols in response to storing the user IO data;
[0139] The bandwidth calculation module is configured to analyze the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data;
[0140] The IO quota adjustment module is configured to adjust the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine.
[0141] The symbol setting module is further configured to obtain the type of the backend storage module in the kernel mode for storing user IO data, where the type of the backend storage module includes at least one of the following: virtual disk, block device, object storage; and set corresponding key symbols as kernel monitoring symbols according to the type of the backend storage module.
[0142] The monitoring data acquisition module is further configured to set a kernel monitoring interface as an IO monitoring point according to the kernel monitoring symbols; generate an IO data stream in response to the backend storage module storing the user IO data; set an IO monitoring plugin, and capture the IO data stream through the kernel monitoring interface to obtain the IO monitoring data.
[0143] The bandwidth calculation module is further configured to obtain IO monitoring data; in response to the IO monitoring data being from a plurality of customer virtual machines, obtain the correspondence between the IO operations of the plurality of customer virtual machines and the IO monitoring data; divide the IO monitoring data according to the correspondence between the IO operations of the plurality of customer virtual machines and the IO monitoring data, and respectively obtain independent IO monitoring data corresponding to the plurality of customer virtual machines; according to the independent IO monitoring data, in combination with a preset monitoring time window, perform IO bandwidth calculation on the plurality of customer virtual machines respectively to obtain the current IO bandwidths of the plurality of customer virtual machines.
[0144] The IO quota adjustment module is further configured to perform an IO overlimit judgment according to the current IO bandwidth in combination with the IO quota corresponding to the customer virtual machine; obtain the current IO bandwidth of the customer virtual machine; obtain the IO quota corresponding to the customer virtual machine; compare the current IO bandwidth with the IO quota, and in response to the current IO bandwidth being not greater than the IO quota, the result of the IO overlimit judgment is negative; in response to the current IO bandwidth being greater than the IO quota, the customer virtual machine is an overlimit virtual machine, where the overlimit virtual machines include short-term overlimit machines and complete overlimit machines; in response to the customer virtual machine being an overlimit virtual machine, obtain the overlimit amplitude according to the difference between the current IO bandwidth and the IO quota; set an overlimit observation threshold, and in response to the overlimit amplitude being greater than the overlimit observation threshold, the overlimit virtual machine is a complete overlimit machine; in response to the overlimit amplitude being not greater than the overlimit observation threshold, set an overlimit observation time limit, and in response to the overlimit amplitude showing a downward trend within the overlimit observation time limit and dropping below zero within the overlimit observation time limit, the overlimit virtual machine is a short-term overlimit machine, otherwise, the overlimit virtual machine is a complete overlimit machine.
[0145] The IO quota adjustment module is further configured to, in response to the customer virtual machine being an over-limit virtual machine, obtain the service operation log of the over-limit virtual machine to obtain the service operation type and service operation data of the over-limit virtual machine; evaluate the service IO dependency and service importance according to the service operation type and service operation data; perform a service risk assessment according to the service IO dependency and service importance to obtain a service risk score; obtain IO monitoring data to obtain the total bandwidth requirements of all customer virtual machines, and combine with the maximum bandwidth capacity of the virtualization system to perform a system resource contention risk assessment to obtain a resource contention risk score; based on the IO monitoring data and the load prediction model, obtain the predicted load increase amplitude, and perform a load increase amplitude risk assessment according to the predicted load increase amplitude to obtain a load increase amplitude risk score; determine the specific type of the over-limit virtual machine, perform an over-limit degree assessment to obtain an over-limit degree score, wherein, in response to the over-limit virtual machine being a short-term over-limit machine, the over-limit degree score is zero, and in response to the over-limit virtual machine being a complete over-limit machine, the over-limit degree score is positively correlated with the over-limit amplitude; combine the service risk score, the resource contention risk score, the load increase amplitude risk score and the over-limit degree score to obtain an IO adjustment risk score; obtain an IO adjustment risk assessment result according to the IO adjustment risk score and the risk threshold, wherein, in response to the IO adjustment risk score not being greater than the risk threshold, the IO adjustment risk assessment result is a low risk, otherwise, the IO adjustment risk assessment result is a high risk.
[0146] The IO quota adjustment module is further configured to obtain the specific type of the over-limit virtual machine; in response to the over-limit virtual machine being a short-term over-limit machine, no IO adjustment is performed on the over-limit virtual machine within the over-limit observation time limit; in response to the over-limit virtual machine being a complete over-limit machine, obtain the over-limit amplitude of the complete over-limit machine; in response to the over-limit amplitude being greater than the over-limit observation threshold, generate an IO bandwidth reduction parameter for the complete over-limit machine; in response to the over-limit amplitude not being greater than the over-limit observation threshold, obtain the historical IO data of the complete over-limit machine, and based on trend analysis, obtain the over-limit amplitude trend of the complete over-limit machine; in response to the over-limit amplitude trend being an increasing trend, generate an IO bandwidth reduction parameter for the complete over-limit machine; in response to the over-limit amplitude trend being in a fluctuating state, adjust the IO quota of the complete over-limit machine; in response to the over-limit amplitude trend being a decreasing trend and the over-limit amplitude being greater than zero within the over-limit observation time limit, generate an IO bandwidth reduction parameter for the complete over-limit machine.
[0147] For the specific limitations of the IO management device, reference can be made to the limitations of the IO management method of the virtualization system in the above text, which will not be elaborated here. Each module in the above IO management device can be implemented in whole or in part by software, hardware and their combination. The above modules can be embedded in the processor of the computer device in hardware form or be independent of it, or be stored in the memory of the computer device in software form, so as to facilitate the processor to call and execute the operations corresponding to the above modules.
[0148] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as shown in Figure 5 . The computer device includes a processor, a memory, a network interface, and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store IO management data. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements an IO management method for a virtualization system.
[0149] Those skilled in the art can understand that Figure 5 the structure shown in is only a block diagram of some structures related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0150] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented:
[0151] In response to receiving user IO data, set a kernel monitoring symbol for the user IO data;
[0152] In response to storing the user IO data, obtain IO monitoring data through the kernel monitoring symbol;
[0153] Analyze the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data;
[0154] Adjust the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine.
[0155] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0156] Obtain the type of the backend storage module used to store user IO data in the kernel state, where the type of the backend storage module includes at least one of the following: virtual disk, block device, object storage;
[0157] Set a corresponding key symbol as the kernel monitoring symbol according to the type of the backend storage module.
[0158] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0159] Set the kernel monitoring interface as the IO monitoring point according to the kernel monitoring symbol;
[0160] In response to the backend storage module storing user IO data, generate an IO data stream;
[0161] Set an IO monitoring plugin to capture the IO data stream through the kernel monitoring interface to obtain IO monitoring data.
[0162] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0163] Obtain the IO monitoring data;
[0164] In response to the IO monitoring data originating from a number of customer virtual machines, obtain the correspondence between the IO operations of the number of customer virtual machines and the IO monitoring data;
[0165] According to the correspondence between the IO operations of the number of customer virtual machines and the IO monitoring data, divide the IO monitoring data to respectively obtain independent IO monitoring data corresponding to the number of customer virtual machines;
[0166] According to the independent IO monitoring data, combined with the preset monitoring time window, perform IO bandwidth calculation on the number of customer virtual machines respectively to obtain the current IO bandwidth of the number of customer virtual machines.
[0167] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0168] According to the current IO bandwidth, combined with the IO quota corresponding to the customer virtual machine, perform an IO overlimit judgment;
[0169] Obtain the current IO bandwidth of the customer virtual machine;
[0170] Obtain the IO quota corresponding to the customer virtual machine;
[0171] Compare according to the current IO bandwidth and the IO quota. In response to the current IO bandwidth not being greater than the IO quota, the result of the IO overlimit judgment is no;
[0172] In response to the current IO bandwidth being greater than the IO quota, the customer virtual machine is an overlimit virtual machine, where the overlimit virtual machine includes a short-term overlimit machine and a complete overlimit machine;
[0173] In response to the customer virtual machine being an overlimit virtual machine, obtain the overlimit amplitude according to the difference between the current IO bandwidth and the IO quota;
[0174] Set the over-limit observation threshold. In response to the over-limit amplitude being greater than the over-limit observation threshold, the over-limit virtual machine is a completely over-limit machine;
[0175] In response to the over-limit amplitude not being greater than the over-limit observation threshold, set the over-limit observation time limit. In response to the over-limit amplitude showing a downward trend within the over-limit observation time limit and dropping below zero within the over-limit observation time limit, the over-limit virtual machine is a short-term over-limit machine; otherwise, the over-limit virtual machine is a completely over-limit machine.
[0176] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0177] In response to the customer virtual machine being an over-limit virtual machine, obtain the business operation log of the over-limit virtual machine to obtain the operation business type and business operation data of the over-limit virtual machine;
[0178] Based on the operation business type and business operation data, evaluate to obtain the business IO dependency and business importance;
[0179] Based on the business IO dependency and business importance, conduct a business risk assessment to obtain a business risk score;
[0180] Obtain the IO monitoring data to obtain the total bandwidth requirements of all customer virtual machines. Combine with the maximum bandwidth capacity of the virtualization system to conduct a system resource contention risk assessment to obtain a resource contention risk score;
[0181] Based on the IO monitoring data, obtain the predicted load increase amplitude based on the load prediction model. Based on the predicted load increase amplitude, conduct a load increase amplitude risk assessment to obtain a load increase amplitude risk score;
[0182] Determine the specific type of the over-limit virtual machine, conduct an over-limit degree assessment to obtain an over-limit degree score. Among them, in response to the over-limit virtual machine being a short-term over-limit machine, the over-limit amplitude score is zero; in response to the over-limit virtual machine being a completely over-limit machine, the over-limit degree score is positively correlated with the over-limit amplitude;
[0183] Combine the business risk score, resource contention risk score, load increase amplitude risk score and over-limit degree score to obtain an IO adjustment risk score;
[0184] Based on the IO adjustment risk score and the risk threshold, obtain the IO adjustment risk assessment result. Among them, in response to the IO adjustment risk score not being greater than the risk threshold, the IO adjustment risk assessment result is low risk; otherwise, the IO adjustment risk assessment result is high risk.
[0185] In one embodiment, when the processor executes the computer program, the following steps are further implemented:
[0186] Obtain the specific type of the over-limit virtual machine;
[0187] In response to the over-limit virtual machine being a short-term over-limit machine, within the over-limit observation time limit, no IO adjustment is performed on the over-limit virtual machine;
[0188] In response to the over-limit virtual machine being a completely over-limit machine, obtain the over-limit amplitude of the completely over-limit machine;
[0189] In response to the over-limit amplitude being greater than the over-limit observation threshold, generate the IO bandwidth reduction parameter of the completely over-limit machine;
[0190] In response to the over-limit amplitude not being greater than the over-limit observation threshold, obtain the historical IO data of the completely over-limit machine, and based on trend analysis, obtain the over-limit amplitude trend of the completely over-limit machine;
[0191] In response to the over-limit amplitude trend being an increasing trend, generate the IO bandwidth reduction parameter of the completely over-limit machine;
[0192] In response to the over-limit amplitude trend being a fluctuating state, adjust the IO quota of the completely over-limit machine;
[0193] In response to the over-limit amplitude trend being a decreasing trend and the over-limit amplitude being greater than zero within the over-limit observation time limit, generate the IO bandwidth reduction parameter of the completely over-limit machine.
[0194] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0195] In response to receiving user IO data, set kernel monitoring symbols for the user IO data;
[0196] In response to storing the user IO data, obtain IO monitoring data through the kernel monitoring symbols;
[0197] Parse the IO monitoring data to obtain the current IO bandwidth of the customer virtual machine corresponding to the user IO data;
[0198] Adjust the IO quota of the customer virtual machine according to the current IO bandwidth of the customer virtual machine.
[0199] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0200] Obtain the type of the backend storage module used to store user IO data in the kernel state, where the type of the backend storage module includes at least one of the following: virtual disk, block device, object storage;
[0201] Set the corresponding key symbol as the kernel monitoring symbol according to the type of the backend storage module.
[0202] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0203] Set the kernel monitoring interface as the IO monitoring point according to the kernel monitoring symbol;
[0204] In response to the backend storage module storing user IO data, generate an IO data stream;
[0205] Set an IO monitoring plugin to capture the IO data stream through the kernel monitoring interface to obtain IO monitoring data.
[0206] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0207] Obtain the IO monitoring data;
[0208] In response to the IO monitoring data originating from a number of customer virtual machines, obtain the correspondence between the IO operations of the number of customer virtual machines and the IO monitoring data;
[0209] According to the correspondence between the IO operations of the number of customer virtual machines and the IO monitoring data, divide the IO monitoring data to respectively obtain independent IO monitoring data corresponding to the number of customer virtual machines;
[0210] According to the independent IO monitoring data, combined with the preset monitoring time window, calculate the IO bandwidth of the number of customer virtual machines respectively to obtain the current IO bandwidth of the number of customer virtual machines.
[0211] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0212] According to the current IO bandwidth, combined with the IO quota corresponding to the customer virtual machine, perform an IO overlimit judgment;
[0213] Obtain the current IO bandwidth of the customer virtual machine;
[0214] Obtain the IO quota corresponding to the customer virtual machine;
[0215] Compare according to the current IO bandwidth and the IO quota. In response to the current IO bandwidth not being greater than the IO quota, the result of the IO overlimit judgment is negative;
[0216] In response to the current IO bandwidth being greater than the IO quota, the customer virtual machine is an overlimit virtual machine, where the overlimit virtual machine includes a short-term overlimit machine and a complete overlimit machine;
[0217] In response to the customer virtual machine being an overlimit virtual machine, obtain the overlimit amplitude according to the difference between the current IO bandwidth and the IO quota;
[0218] Set an overlimit observation threshold. In response to the overlimit amplitude being greater than the overlimit observation threshold, the overlimit virtual machine is a complete overlimit machine;
[0219] If the overrun amplitude is not greater than the overrun observation threshold, set the overrun observation time limit. If the overrun amplitude shows a downward trend within the overrun observation time limit and drops below zero within the overrun observation time limit, the overrun virtual machine is a short-term overrun machine; otherwise, the overrun virtual machine is a complete overrun machine.
[0220] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0221] If the customer virtual machine is an overrun virtual machine, obtain the business operation log of the overrun virtual machine to obtain the operation business type and business operation data of the overrun virtual machine;
[0222] Based on the operation business type and business operation data, evaluate to obtain the business IO dependency and business importance;
[0223] Based on the business IO dependency and business importance, conduct a business risk assessment to obtain a business risk score;
[0224] Obtain the IO monitoring data to obtain the total bandwidth requirements of all customer virtual machines, and combine with the maximum bandwidth capacity of the virtualization system to conduct a system resource contention risk assessment to obtain a resource contention risk score;
[0225] Based on the IO monitoring data and the load prediction model, obtain the predicted load increase amplitude. According to the predicted load increase amplitude, conduct a load increase amplitude risk assessment to obtain a load increase amplitude risk score;
[0226] Determine the specific type of the overrun virtual machine, conduct an overrun degree assessment to obtain an overrun degree score. Among them, if the overrun virtual machine is a short-term overrun machine, the overrun amplitude score is zero; if the overrun virtual machine is a complete overrun machine, the overrun degree score is positively correlated with the overrun amplitude;
[0227] Combine the business risk score, resource contention risk score, load increase amplitude risk score and overrun degree score to obtain an IO adjustment risk score;
[0228] Based on the IO adjustment risk score and the risk threshold, obtain the IO adjustment risk assessment result. Among them, if the IO adjustment risk score is not greater than the risk threshold, the IO adjustment risk assessment result is low risk; otherwise, the IO adjustment risk assessment result is high risk.
[0229] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented:
[0230] Obtain the specific type of the overrun virtual machine;
[0231] If the overrun virtual machine is a short-term overrun machine, within the overrun observation time limit, no IO adjustment is performed on the overrun virtual machine;
[0232] If the over-limit virtual machine is a completely over-limit machine in response, obtain the over-limit amplitude of the completely over-limit machine;
[0233] If the over-limit amplitude is greater than the over-limit observation threshold in response, generate the IO bandwidth reduction parameter of the completely over-limit machine;
[0234] If the over-limit amplitude is not greater than the over-limit observation threshold in response, obtain the historical IO data of the completely over-limit machine, and based on trend analysis, obtain the over-limit amplitude trend of the completely over-limit machine;
[0235] If the over-limit amplitude trend is an increasing trend in response, generate the IO bandwidth reduction parameter of the completely over-limit machine;
[0236] If the over-limit amplitude trend is in a fluctuating state in response, adjust the IO quota of the completely over-limit machine;
[0237] If the over-limit amplitude trend is a decreasing trend and the over-limit amplitude is greater than zero within the over-limit observation time limit in response, generate the IO bandwidth reduction parameter of the completely over-limit machine.
[0238] Those of ordinary skill in the art can understand that all or part of the processes of implementing the methods in the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, storage, database, or other medium used in the various embodiments provided in the present application can include non-volatile and / or volatile memories. Non-volatile memories can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memories can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
[0239] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0240] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the scope of the invention patent. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the appended claims.
Claims
1. A virtualization system IO management method, characterized in that: The method comprises: In response to receiving the user IO data, setting a kernel monitoring symbol for the user IO data; In response to storing the user IO data, obtaining IO monitoring data through the kernel monitoring symbol; Parsing the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data; The IO quota of the client virtual machine is adjusted according to the current IO bandwidth of the client virtual machine.
2. The method according to claim 1, characterized in that: In response to receiving the user IO data, setting a kernel monitoring symbol for the user IO data includes: Acquire the type of a backend storage module in the kernel state for storing the user IO data, wherein the type of the backend storage module includes at least one of the following: a virtual disk, a block device, and an object storage; According to the type of the backend storage module, a corresponding key symbol is set as the kernel monitoring symbol.
3. The method according to claim 2, characterized in that The step of obtaining IO monitoring data by using the kernel monitoring symbol in response to storing the user IO data comprises: According to the kernel monitoring symbol, setting the kernel monitoring interface as an IO monitoring point; In response to the backend storage module storing the user IO data, generating an IO data stream; An IO monitoring plug-in is set to capture the IO data stream through the kernel monitoring interface to obtain the IO monitoring data.
4. The method according to claim 1, characterized in that: The parsing of the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data includes: Obtaining the IO monitoring data; In response to the IO monitoring data being derived from the plurality of client virtual machines, obtaining a correspondence between the IO operations of the plurality of client virtual machines and the IO monitoring data; According to the correspondence between the IO operations of the plurality of client virtual machines and the IO monitoring data, the IO monitoring data is divided to obtain independent IO monitoring data corresponding to the plurality of client virtual machines respectively; According to the independent IO monitoring data and in combination with a preset monitoring time window, IO bandwidth calculations are performed on a plurality of the client virtual machines respectively to obtain the current IO bandwidths of the plurality of the client virtual machines.
5. The method according to claim 1, characterized in that The adjusting the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine includes: According to the current IO bandwidth and the IO quota corresponding to the client virtual machine, an IO limit excess judgment is performed; Obtaining the current IO bandwidth of the client virtual machine; Obtain the IO quota corresponding to the client virtual machine; Comparing the current IO bandwidth with the IO quota, in response to the current IO bandwidth not being greater than the IO quota, the result of the IO overlimit determination is no; In response to the current IO bandwidth being greater than the IO quota, the client virtual machine is an over-limit virtual machine, wherein the over-limit virtual machine includes a short-term over-limit machine and a completely over-limit machine; In response to the client virtual machine being an over-limit virtual machine, obtaining an over-limit margin according to a difference between the current IO bandwidth and the IO quota; Setting an over-limit observation threshold, in response to the over-limit amplitude being greater than the over-limit observation threshold, the over-limit virtual machine is a completely over-limit machine; In response to the fact that the excess amplitude is not greater than the excess observation threshold, an excess observation period is set; in response to the fact that the excess amplitude shows a downward trend within the excess observation period and decreases to below zero within the excess observation period, the over-limit virtual machine is a short-term over-limit machine; otherwise, the over-limit virtual machine is a completely over-limit machine.
6. The method according to claim 5, characterized in that In response to the current IO bandwidth being greater than the IO quota, the client virtual machine is an over-limit virtual machine, and then further comprising: In response to the client virtual machine being an over-limit virtual machine, obtaining a service operation log of the over-limit virtual machine to obtain an operating service type and service operation data of the over-limit virtual machine; According to the running business type and business running data, the business IO dependency and business importance are evaluated; Performing a business risk assessment based on the business IO dependency and the business importance to obtain a business risk score; Acquire the IO monitoring data to obtain the total bandwidth demand of all the client virtual machines, and perform a system resource contention risk assessment in combination with the maximum bandwidth capacity of the virtualization system to obtain a resource contention risk score; According to the IO monitoring data, based on the load prediction model, a predicted load increase is obtained, and according to the predicted load increase, a load increase risk assessment is performed to obtain a load increase risk score; Determine the specific type of the over-limit virtual machine, perform over-limit evaluation, and obtain an over-limit score, wherein, in response to the over-limit virtual machine being a short-term over-limit machine, the over-limit magnitude score is zero, and in response to the over-limit virtual machine being a completely over-limit machine, the over-limit score and the over-limit magnitude are positively correlated; Combining the business risk score, the resource contention risk score, the load increase risk score and the over-limit score to obtain an IO adjustment risk score; The IO adjustment risk assessment result is obtained according to the IO adjustment risk score and the risk threshold, wherein, in response to the IO adjustment risk score being not greater than the risk threshold, the IO adjustment risk assessment result is low risk, otherwise, the IO adjustment risk assessment result is high risk.
7. The method according to claim 6, characterized in that In response to the IO adjustment risk score being not greater than the risk threshold, the IO adjustment risk assessment result is low risk, and then further comprising: Obtaining the specific type of the over-limit virtual machine; In response to the over-limit virtual machine being the short-term over-limit virtual machine, no IO adjustment is performed on the over-limit virtual machine within the over-limit observation time limit; In response to the over-limit virtual machine being the completely over-limit machine, obtaining the over-limit margin of the completely over-limit machine; In response to the over-limit amplitude being greater than the over-limit observation threshold, generating an IO bandwidth reduction parameter for the completely over-limit machine; In response to the over-limit amplitude being not greater than the over-limit observation threshold, historical IO data of the completely over-limit machine is acquired, and based on trend analysis, an over-limit amplitude trend of the completely over-limit machine is obtained; In response to the over-limit amplitude trend being an increasing trend, generating an IO bandwidth reduction parameter for the completely over-limit machine; In response to the over-limit trend being in a fluctuating state, adjusting the IO quota of the completely over-limit machine; In response to the over-limit amplitude trend being a downward trend and the over-limit amplitude being greater than zero within the over-limit observation time limit, an IO bandwidth reduction parameter of the completely over-limit machine is generated.
8. An IO management device for a virtualization system, characterized in that: The device comprises: A symbol setting module, configured to set a kernel monitoring symbol for the user IO data in response to receiving the user IO data; A monitoring data acquisition module, configured to obtain IO monitoring data through the kernel monitoring symbol in response to storing the user IO data; A bandwidth calculation module, used to parse the IO monitoring data to obtain the current IO bandwidth of the client virtual machine corresponding to the user IO data; The IO quota adjustment module is used to adjust the IO quota of the client virtual machine according to the current IO bandwidth of the client virtual machine.
9. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.