Storage input / output scheduling method, system and device based on path health degree

CN122985352APending Publication Date: 2026-10-27ZIGUANG HENGYUE TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611274689.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-08-21
Publication Date
2026-10-27

AI Technical Summary

Technical Problem

这类方案的缺陷在于:各指标之间仅做简单的线性叠加,没有挖掘指标之间的内在关联和演化规律,本质上仍是多个独立信息的简单堆砌,无法产生协同效果

Benefits of technology

本发明提出一种基于路径健康度的存储输入输出调度方法、系统及设备,不同于现有技术中健康监测仅用于故障报警、调度模块独立运行的割裂模式,将路径当前健康度的实时计算、未来健康度的趋势预测与调度优先级决策融为一体,形成了完整的感知、预测、决策、执行、反馈的闭环。基于多维度状态指标的归一化加权方法能够综合反映路径健康水平,并且基于趋势预测机制使调度器具备前瞻性,不仅能看到路径当前的健康状态,还能预判其未来走势,从而在路径健康恶化之前主动调整调度策略。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122985352A_ABST
    Figure CN122985352A_ABST
Patent Text Reader

Abstract

The application discloses a kind of based on path health degree's storage input and output scheduling method, system and equipment, belong to computer technology field.Path health degree's real-time evaluation and trend prediction are combined in the application, scheduling decision is carried out comprehensively path load state, can actively adjust scheduling strategy before path health degree deteriorates, improve the adaptive capacity and service quality of storage system input and output scheduling.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and specifically discloses a storage input / output scheduling method, system, and device based on path health. Background Technology

[0002] In storage systems, the scheduling efficiency of input / output (I / O) requests directly impacts overall system performance and quality of service. To improve reliability and bandwidth, enterprise-level storage systems typically configure multiple independent I / O paths between the host and storage devices, using multipathing technology to achieve load balancing and failover between paths. However, existing multipathing scheduling methods have the following drawbacks: The first category consists of scheduling methods based on fixed algorithms. Examples include Completely Fair Queuing (CFQ) and Deadline scheduling algorithms. These methods employ static, pre-defined scheduling strategies that cannot be dynamically adjusted based on the actual operational status of the input / output paths. Consequently, scheduling decisions are disconnected from the real-time health of the paths. When a path experiences performance degradation but is not yet completely faulty, the static algorithm may continue to allocate input / output requests to that path, leading to an increase in overall response latency.

[0003] The second category is scheduling methods based on static weights. These methods allocate resources by pre-setting weight values ​​for different input and output paths. Their drawback is that the fixed weight values ​​fail to reflect dynamic changes in path health, and the weights are independent of each other, lacking a comprehensive consideration of the overall path health. When the path's operational status changes, the fixed weights cannot respond promptly.

[0004] The third category: methods that separate path health monitoring from scheduling. Existing technologies include solutions for monitoring the health of storage paths, such as monitoring bandwidth utilization, response time, and queue depth. However, in these solutions, health monitoring is only used for fault alarms, and the scheduling module makes decisions based solely on queue length or fixed priorities. There is a lack of deep data fusion and collaboration mechanisms between the two, resulting in the data generated by health monitoring failing to effectively drive the optimization of scheduling strategies.

[0005] The fourth category: Multi-factor scheduling methods based on simple weighting. Some schemes attempt to use a weighted combination of multiple indicators for scheduling decisions. The drawback of this type of scheme is that it only performs a simple linear superposition of the indicators, without exploring the inherent correlations and evolutionary patterns between them. Essentially, it is still a simple accumulation of multiple independent pieces of information and cannot produce synergistic effects. In addition, this type of method usually only considers the current static state of the path and lacks the ability to predict the future trend of path health. It belongs to passive scheduling and cannot proactively avoid risks before the path health deteriorates.

[0006] In summary, the existing technology lacks a method that can comprehensively evaluate and dynamically predict the health characteristics of the storage input and output paths and perform adaptive input and output scheduling accordingly. Summary of the Invention

[0007] To overcome the above deficiencies, this invention provides a storage input / output scheduling method, system, and device based on path health. It establishes a real-time evaluation mechanism for the current health of a path and a trend prediction mechanism for its future health, and combines the current health, predicted health, and path load status to drive adaptive adjustment of the input / output scheduling strategy, thereby achieving integrated collaboration between health monitoring and scheduling decision-making.

[0008] To achieve the above-mentioned objectives, the present invention adopts the following technical solution: In a first aspect, the present invention provides a storage input / output scheduling method based on path health, applicable to a storage system with multiple input / output paths, comprising: Obtain the running status data of each input and output path, and determine the current health of each input and output path based on the running status data; Based on the historical health changes of each input and output path, the future health of each input and output path is predicted; When an input / output request arrives, the target input / output path of the input / output request is determined based on the current health, predicted health, and path load status of each input / output path. The input / output requests are scheduled according to the target input / output path.

[0009] Optionally, the operational status data includes status indicators collected by each input / output path within a preset sampling period; the status indicators include: input / output response latency, number of input / output timeouts, number of input / output errors, number of retries, queue depth, number of incomplete input / output requests, path bandwidth utilization, and path controller resource utilization.

[0010] Optionally, determining the current health of each input / output path based on the operational status data includes: The state indicators are normalized to obtain the index scores corresponding to each state indicator. Based on the index scores and preset weights corresponding to each status index, calculate the current health of the corresponding input and output paths; Among them, the higher the degree of anomaly, the lower the corresponding index score. The current health status is used to characterize the availability or stability of the corresponding input / output path in processing input / output requests.

[0011] Optionally, the step of predicting the future health of each input / output path based on its historical health changes includes: Obtain the historical health status of the corresponding input and output paths within multiple consecutive historical sampling periods to form a health status time series. Calculate the health difference between adjacent historical health values ​​in the health time series; The trend of health status change is determined based on the aforementioned health status difference; Based on the health status change trend and the most recently determined current health status, the predicted health status of the corresponding input / output path in the future scheduling cycle is obtained.

[0012] Optionally, determining the health status change trend based on multiple health status differences includes: The average health difference within a preset sliding window is averaged to obtain the average health change. When the average health change is less than zero, it is determined that the corresponding input / output path is in a declining health trend. When the average health change is greater than zero, it is determined that the corresponding input / output path is in an upward trend of health. When the average health change is equal to zero, it is determined that the corresponding input-output path is in a stable health trend. The predicted health level is determined based on the change between the most recently determined current health level and the average health level.

[0013] Optionally, determining the target input / output path for the input / output request based on the current health, predicted health, and path load status of each input / output path when the input / output request arrives includes: Determine candidate input / output paths from multiple input / output paths; For each candidate input-output path, calculate the health score based on the current health score and the predicted health score; The load evaluation value is calculated based on queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization. Calculate scheduling priority based on the health evaluation value and the load evaluation value; The candidate input / output path with the highest scheduling priority is determined as the target input / output path.

[0014] Optionally, the calculation of the health evaluation value based on the current health status and the predicted health status includes: The current health score is weighted according to the first weight, and the predicted health score is weighted according to the second weight. The weighted current health score and the weighted predicted health score are then added together to obtain the health score evaluation value. The calculation of the load evaluation value based on queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization includes: The queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization are normalized to obtain the corresponding load index scores. The load evaluation value is calculated based on the scores of each load indicator and the corresponding preset load weights; Among them, the higher the queue depth, the number of incomplete input / output requests, the queue waiting time, the path bandwidth utilization, and the path controller resource utilization, the lower the corresponding load metric score.

[0015] Optionally, before determining the target input / output path of the input / output request, the method further includes: Determine whether the current health of each input / output path is lower than the first health threshold, and determine whether the predicted health of each input / output path is lower than the second health threshold; Input / output paths whose current health level is lower than the first health threshold are removed from the candidate input / output paths, and input / output paths whose predicted health level is lower than the second health threshold are also removed from the candidate input / output paths. After completing the input / output request scheduling, the running status data, current health status, and historical health status changes of the target input / output path are updated based on the actual response delay, actual completion result, actual retry count, and actual error information of the target input / output path to the input / output request.

[0016] Secondly, the present invention provides a storage input / output scheduling system based on path health, comprising: The acquisition module is used to acquire the running status data of each input and output path, and determine the current health of each input and output path based on the running status data; The prediction module is used to predict the future health of each input and output path based on the historical health changes of each input and output path. The path determination module is used to determine the target input / output path of the input / output request based on the current health, predicted health, and path load status of each input / output path when the input / output request arrives. The scheduling module is used to schedule the input / output request according to the target input / output path.

[0017] Thirdly, the present invention provides an electronic device, the electronic device comprising: At least one processor; and a memory communicatively connected to said at least one processor; The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the method described in any one of the first aspects.

[0018] Compared with the closest existing technology, the present invention has the following advantages: This invention proposes a storage input / output scheduling method, system, and device based on path health. Unlike existing technologies where health monitoring is only used for fault alarms and scheduling modules operate independently, this invention integrates real-time calculation of the current path health, trend prediction of future health, and scheduling priority decision-making, forming a complete closed loop of perception, prediction, decision-making, execution, and feedback. A normalized weighted method based on multi-dimensional status indicators can comprehensively reflect the path health level, and the trend prediction mechanism enables the scheduler to be forward-looking, not only seeing the current health status of the path but also predicting its future trend, thereby proactively adjusting the scheduling strategy before the path health deteriorates.

[0019] In this invention, the health assessment value integrates both the current health level and the predicted health level, enabling scheduling decisions to be based on both the current actual availability of a path and its future direction of change. When the path health level is declining, the predicted health level can reflect potential risks in advance, guiding the scheduler to reduce the input and output allocation for that path; when the path health level is stable or rising, the current health level can accurately reflect the actual carrying capacity of the path. This two-dimensional collaboration effectively avoids the lag problem of passive scheduling based solely on the current state.

[0020] This invention simultaneously calculates health and load assessment values, enabling scheduling decisions to consider not only the health level of a path but also its current load pressure. The load assessment value integrates multiple dimensions such as queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization. This allows it to guide input / output requests towards less loaded paths, maintaining load balance among paths and preventing localized overload.

[0021] This invention filters current and predicted health levels using a first health threshold and a second health threshold, respectively. This eliminates paths that are currently unhealthy and also preemptively eliminates paths predicted to become unhealthy, achieving proactive risk avoidance. Furthermore, scheduling feedback ensures that the actual execution results of each input / output request are fed back into the operational status data collection, forming an adaptive positive loop that continuously improves the accuracy of health assessment and prediction as the system operates.

[0022] This invention, through configurable parameters such as preset sampling period, preset sliding window, preset weight, first health threshold, and second health threshold, can adapt to the performance preferences and operating characteristics of different types of storage systems. For example, for latency-sensitive storage systems, the weight of the input / output response latency indicator can be increased; for bandwidth-sensitive storage systems, the weight of the path bandwidth utilization indicator can be increased, demonstrating good versatility and configurability. Attached Figure Description

[0023] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the accompanying drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. In all the drawings, similar elements or parts are generally identified by similar reference numerals. In the drawings, the elements or parts are not necessarily drawn to scale.

[0024] Figure 1 This is a flowchart of a storage input / output scheduling method based on path health provided in an embodiment of the present invention; Figure 2 This is a flowchart illustrating the sub-steps for determining the current health status provided in an embodiment of the present invention; Figure 3 A schematic diagram of the sub-steps for predicting future health provided in an embodiment of the present invention; Figure 4 This is a flowchart illustrating the sub-steps for determining the target input / output path provided in an embodiment of the present invention; Figure 5 This is a schematic diagram of a storage input / output scheduling system structure based on path health provided in an embodiment of the present invention; Figure 6 This is an internal structure diagram of an electronic device provided in an embodiment of the present invention. Detailed Implementation

[0025] The embodiments of the technical solution of the present invention will now be described in detail with reference to the accompanying drawings. These embodiments are only used to more clearly illustrate the technical solution of the present invention and are therefore merely examples, and should not be construed as limiting the scope of protection of the present invention.

[0026] It should be noted that, unless otherwise stated, the technical or scientific terms used in this application should have the ordinary meaning as understood by one of ordinary skill in the art to which this invention pertains.

[0027] This invention provides a storage input / output scheduling method, system, and device based on path health. The embodiments of this invention are described below with reference to the accompanying drawings.

[0028] Example 1: Example 1 of this application provides a storage I / O scheduling method based on path health, deployed in a typical storage system. Assume that in an enterprise-level storage system, a host is connected to a storage array through multiple independent I / O paths, each I / O path potentially traversing different switches or physical links. The multipath driver layer running on the host is responsible for scheduling and allocating I / O requests among the various I / O paths.

[0029] The input / output path refers to a complete data transmission channel from the host end through the storage network to the storage device end. Each input / output path has an independent physical link or logical channel and can independently carry the transmission of input / output requests. In an embodiment of the present invention, the scheduling logic of the present invention is embedded in the multipath driver layer on the host end.

[0030] Please see Figure 1 The method includes steps S101 to S104, which will be described in detail below.

[0031] Step S101: Obtain the running status data of each input / output path, and determine the current health of each input / output path based on the running status data; like Figure 2 As shown, step S101 includes the following sub-steps: S1011: Collect the running status data of each input and output path at a preset sampling period.

[0032] On each input / output path of the storage system, operational status data is collected at a fixed preset sampling period. The preset sampling period can be configured according to the performance requirements and load characteristics of the storage system; for example, it can be set to 1 second, 5 seconds, or 10 seconds. A shorter sampling period results in stronger real-time health assessment, but also increases system overhead; a longer sampling period results in lower system overhead, but reduces the response speed to sudden changes in path health. In this embodiment, the preset sampling period is set to 5 seconds.

[0033] The operational status data includes status indicators collected from each input / output path within a preset sampling period. For example... Figure 2 As shown, the status indicators include: (1) Input / output response delay: The average response time from the issuance to completion of all input / output requests on this input / output path within the current sampling period. The larger the input / output response delay, the lower the processing efficiency and the higher the degree of abnormality of this path.

[0034] (2) Number of input / output timeouts: Records the number of input / output requests that time out on this input / output path within the current sampling period. The more input / output timeouts there are, the worse the reliability of this path.

[0035] (3) Number of input / output errors: Records the number of erroneous input / output requests that occurred on this input / output path within the current sampling period, including but not limited to checksum errors, link errors, and device errors. The more input / output errors there are, the worse the stability of the path.

[0036] (4) Number of retries: Records the number of input / output requests that were resent due to failure on this input / output path within the current sampling period. The more retries, the worse the transmission quality of this path.

[0037] (5) Queue depth: Records the number of requests waiting to be executed in the input / output request queue of this input / output path at the end of the current sampling period. The larger the queue depth, the more severe the backlog of this path.

[0038] (6) Number of incomplete input / output requests: Records the total number of input / output requests that have been issued but not yet completed on this input / output path at the end of the current sampling period. The larger the number of incomplete input / output requests, the heavier the load on this path.

[0039] (7) Path bandwidth utilization: Records the proportion of the actual data transmission volume of the input / output path to its maximum available bandwidth during the current sampling period. The higher the path bandwidth utilization, the more strained the bandwidth resources of the path.

[0040] (8) Path controller resource utilization: Records the proportion of processing resources occupied by the controller (such as host bus adapter, storage controller, etc.) corresponding to the input / output path during the current sampling period. The higher the path controller resource utilization, the more strained the processing resources of the path are.

[0041] S1012: Normalize the status indicators to obtain the indicator scores corresponding to each status indicator.

[0042] For each collected status indicator, normalization is performed to map its original value to a unified scoring range, thus obtaining the corresponding indicator score. In this embodiment, the indicator score range is [0, 1], where 1 represents complete health and 0 represents complete abnormality.

[0043] The normalization process follows this principle: the higher the degree of anomaly represented by a state indicator, the lower its corresponding indicator score. Specifically, for input / output response latency, input / output timeout count, input / output error count, retries, queue depth, number of incomplete input / output requests, path bandwidth utilization, and path controller resource utilization, the higher the value of these indicators, the higher the degree of path anomaly, and therefore the lower the corresponding indicator score.

[0044] In one specific normalization method, a health baseline interval is defined for each state indicator. This health baseline interval is determined based on historical statistical data of the input / output path during the initial stable operation phase, reflecting the normal fluctuation range of each state indicator under healthy conditions. For example, for input / output response delay, the average response delay obtained during stable operation can be added to a certain number of standard deviations as the upper bound of the health baseline; for path bandwidth utilization, a preset upper limit for bandwidth utilization (e.g., 80%) can be used as the upper bound of the health baseline.

[0045] When the actual value of the status indicator is within the health benchmark range, its score is set to a higher value (e.g., close to 1); when the actual value of the status indicator exceeds the health benchmark range, its score decreases monotonically as the extent of the exceedance increases. The specific decreasing function can be a linear function, an exponential function, or a sigmoid function, etc., and this invention does not limit this approach. This normalization method based on the health benchmark range can sensitively capture subtle changes in path health while avoiding frequent fluctuations in health scores due to normal indicator volatility.

[0046] S1013: Calculate the current health of the corresponding input / output path based on the index scores and preset weights of each status index.

[0047] After obtaining the scores for each status indicator, a preset weight is assigned to each status indicator. The scores of each indicator are multiplied by their corresponding preset weights and then summed to obtain the current health of the input-output path at the current sampling time. The current health is used to characterize the availability or stability of the corresponding input-output path in processing input-output requests. Its value range is consistent with the indicator scores, which is [0, 1]. The larger the value, the healthier the path.

[0048] The preset weights can be configured according to the performance preferences of the storage system. For example, for online transaction processing systems sensitive to response latency, the weight of input / output response latency metrics can be increased; for big data analytics systems with high bandwidth requirements, the weight of path bandwidth utilization metrics can be increased; and for critical business systems with high reliability requirements, the weights of input / output error counts and input / output timeout counts can be increased. The sum of all preset weights is 1.

[0049] In this embodiment, the preset weights of the eight status indicators can be set as follows: input / output response latency 0.2, input / output timeout count 0.15, input / output error count 0.15, retries count 0.1, queue depth 0.1, number of incomplete input / output requests 0.1, path bandwidth utilization 0.1, and path controller resource utilization 0.1. The above weights are merely examples and can be adjusted according to specific needs in actual applications.

[0050] In some implementations, the calculation of current health can also employ nonlinear aggregation instead of simple linear weighted summation. For example, differentiated responses to different levels of anomalies can be achieved by adjusting the aggregation order—a higher aggregation order makes the system more sensitive to larger anomalies and can more readily detect severe deterioration in path health; a lower aggregation order allows the system to pay attention to smaller anomalies and can detect early, subtle changes in health. This nonlinear aggregation method can serve as an alternative to or supplement to linear weighting, with the specific value pre-set according to the performance preferences of the storage system.

[0051] Through step S101, the system can evaluate the current health of each input / output path in real time during each sampling period, providing basic data for subsequent trend prediction and scheduling decisions.

[0052] Step S102: Based on the historical health changes of each input and output path, predict the future health of each input and output path.

[0053] like Figure 3 As shown, step S102 includes the following sub-steps: S1021: Obtain the historical health status of the corresponding input / output path within multiple consecutive historical sampling periods to form a health status time series.

[0054] For each input / output path, the system maintains a historical record of its current health status, forming a health status time series. The health status time series includes the current health status data for the current moment and several past sampling periods. The length of the time series (i.e., the number of historical sampling periods retained) can be determined according to the system configuration, for example, retaining data from the most recent 20 sampling periods. In this embodiment, the health status time series is denoted as H=[h(t-n+1),h(t-n+2),...,h(t)]; Where h(t) represents the current health status at time t, and n is the length of the time series.

[0055] S1022: Calculate the health difference between adjacent historical health values ​​in the health time series.

[0056] For each pair of adjacent data points in the health status time series, calculate the health status difference between the next time step and the previous time step, i.e.: Δh(i) = h(i) - h(i-1); Where i ranges from t-n+2 to t.

[0057] The health difference Δh(i) reflects the change in health between two adjacent sampling periods. When Δh(i) > 0, it indicates that the health increases during that period; when Δh(i) < 0, it indicates that the health decreases during that period; when Δh(i) = 0, it indicates that the health remains unchanged during that period.

[0058] S1023: Determine the trend of health status change based on the health status difference.

[0059] The average change in health is obtained by averaging multiple health differences within a preset sliding window. The preset sliding window refers to a consecutive number of health differences selected from the end of the health time series backwards. The size of the sliding window can be determined according to system configuration, for example, averaging the most recent 5 or 10 health differences. A larger sliding window results in smoother trend judgment and stronger anti-interference ability, but a slower response to sudden trend changes; a smaller sliding window results in more sensitive trend judgment, but is more susceptible to random fluctuations. In this embodiment, the preset sliding window size is 5.

[0060] The formula for calculating the change in average health status is: Δh avg =(Δh(t-k+1)+Δh(t-k+2)+ ...+Δh(t)) / k; Where k is the size of the sliding window.

[0061] Based on the sign of the average change in health, determine the health change trend for the corresponding input / output path: When the change in average health status is less than zero (Δh) avg <0) indicates that the corresponding input-output path is in a declining health trend, indicating that the health of the path has been deteriorating recently; When the change in average health status is greater than zero (Δh) avg >0) indicates that the corresponding input / output path is in an upward trend of health, meaning that the health of the path has been continuously recovering recently; When the change in average health status is equal to zero (Δh) avg =0), indicating that the corresponding input-output path is in a stable health trend, meaning that the health of the path has remained stable in the near future.

[0062] S1024: Based on the health status change trend and the most recently determined current health status, obtain the predicted health status of the corresponding input and output paths in future scheduling cycles.

[0063] The predicted health level is determined based on the change between the most recently determined current health level and the average health level. The specific calculation formula is as follows: h pred =h(t)+m×Δh avg ; Where m is the predicted number of future scheduling cycles.

[0064] In this embodiment, the health status of the next scheduling cycle is predicted, therefore m=1, that is: h pred = h(t) + Δh avg .

[0065] When predicting the more distant future, the value of m can be increased accordingly. To avoid predicting health levels beyond a reasonable range, the predicted health levels can be truncated to keep them within the range of [0,1].

[0066] In some implementations, to improve prediction accuracy, a trend significance assessment can be further introduced. When the health time series exhibits a strong monotonic trend (e.g., the health difference values ​​have the same sign and large amplitude across multiple consecutive periods), it indicates that the health is undergoing continuous improvement or decline, and the prediction result of trend extrapolation is relatively reliable. When the health time series does not exhibit a significant monotonic trend and fluctuates around a certain mean level, a mean regression mechanism can be introduced, assuming that the health has a tendency to regress to its historical average level. The final predicted health can be dynamically weighted and fused based on the strength of the trend significance to adapt to different health evolution patterns. The above methods are optional enhancements to this embodiment and do not affect the implementation of the basic method of this invention.

[0067] Through step S102, the system can predict the health of each input and output path in future scheduling cycles, making scheduling decisions forward-looking and able to proactively adjust scheduling strategies before the health of a path deteriorates.

[0068] Step S103: When an input / output request arrives, the target input / output path of the input / output request is determined based on the current health, predicted health, and path load status of each input / output path. like Figure 4 As shown, step S103 includes the following sub-steps: S1031: Determine candidate input / output paths from multiple input / output paths.

[0069] Before determining the target input / output path, all input / output paths are first filtered to determine candidate input / output paths. The filtering process includes the following judgments: Determine whether the current health of each input / output path is lower than a first health threshold. The first health threshold is a preset threshold used to determine whether a path is currently healthy, for example, it can be set to 0.5 or 0.6. Input / output paths with a current health lower than the first health threshold are removed from the candidate input / output paths and marked as currently unhealthy paths. No new input / output requests are assigned to these paths temporarily; only responses from completed input / output operations are allowed to be returned.

[0070] Determine whether the predicted health of each input / output path is lower than a second health threshold. The second health threshold is a preset threshold used to determine whether a path will become unhealthy in the future, and its value can be the same as or different from the first health threshold. Input / output paths with a predicted health lower than the second health threshold are removed from the candidate input / output paths and marked as predicted unhealthy paths, thus avoiding potential future performance degradation risks in advance.

[0071] Through the aforementioned dual-threshold screening, the remaining input-output paths constitute a candidate input-output path set. This dual-threshold screening mechanism not only eliminates currently unhealthy paths but also preemptively eliminates paths predicted to be unhealthy, achieving proactive risk avoidance.

[0072] In some implementations, the first and second health thresholds can employ a dynamic adjustment mechanism. Every certain number of scheduling cycles, the health distribution of all input and output paths is statistically analyzed, and the thresholds are adaptively adjusted based on the distribution characteristics. If the health of the vast majority of paths is at a high level, the threshold is appropriately increased to more actively isolate potentially degraded paths; if a high proportion of paths have a low health level, the threshold is appropriately decreased to avoid too many paths being excluded, leading to an insufficient number of available paths. This dynamic adjustment mechanism ensures that the thresholds maintain a reasonable screening intensity at different stages of system operation.

[0073] S1032: For each candidate input / output path, calculate the health score based on the current health score and the predicted health score.

[0074] For each path in the candidate input / output path set, the current health score is weighted according to the first weight, and the predicted health score is weighted according to the second weight. The weighted current health score and the weighted predicted health score are then added together to obtain the health score evaluation value. The calculation formula is as follows: V health = w1×h current +w2×h pred ; Where w1 is the first weight, w2 is the second weight, and w1+w2=1.

[0075] The values ​​of the first and second weights can be configured according to the system's emphasis on the current state and future trends. In this embodiment, the first weight w1 = 0.6 and the second weight w2 = 0.4, that is, more emphasis is placed on the current actual health status of the path, while also taking into account future trends.

[0076] In some implementations, the first weight and the second weight can be dynamically adjusted based on the trend of health status changes. When the path is in a declining health status trend, the second weight (i.e., the weight for predicting health status) is increased to strengthen the prediction of future decline and reduce the input and output allocation of the path in advance; when the path is in a stable or rising health status trend, the first weight (i.e., the weight for current health status) is increased to give more importance to the current actual state.

[0077] S1033: Calculate the load evaluation value based on queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization.

[0078] For each candidate input / output path, its current load status data is collected, including queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization. Queue waiting time refers to the average time that input / output requests wait in the queue for execution, reflecting the queuing pressure on the path.

[0079] The five load metrics mentioned above are normalized to obtain corresponding load metric scores. The normalization process follows these principles: the higher the queue depth, the number of incomplete input / output requests, the queue waiting time, the path bandwidth utilization, and the path controller resource utilization, the lower the corresponding load metric score. In other words, the heavier the load, the lower the load metric score. The specific normalization method is similar to the normalization method for the status metrics in step S1012, and can be mapped based on a health baseline range or a preset maximum threshold; details will not be elaborated here.

[0080] The load evaluation value V is calculated based on the scores of each load indicator and the corresponding preset load weights. load The calculation formula is: V load =Σ (w load_i × s load_i ); Among them, w load_i s is the preset load weight for the i-th load metric. load_i The load metric score for the i-th load metric is given, and the sum of all preset load weights is 1.

[0081] In this embodiment, the preset load weights for the five load metrics can be set as follows: queue depth 0.25, number of incomplete input / output requests 0.2, queue waiting time 0.25, path bandwidth utilization 0.15, and path controller resource utilization 0.15. These weights are merely examples and can be adjusted according to specific needs in actual applications.

[0082] The load rating reflects the current load pressure on the path. The higher the load rating, the lighter the load on the path, and the more suitable it is to assign new input / output requests.

[0083] S1034: Calculate scheduling priority based on health evaluation value and load evaluation value.

[0084] For each candidate input / output path, its scheduling priority is calculated by combining its health evaluation value and load evaluation value. In this embodiment, the scheduling priority can be calculated using a weighted summation method: P=α×V health+ β×V load ; Where α is the weight of the health evaluation value, β is the weight of the load evaluation value, and α+β= 1.

[0085] In this embodiment, α=0.6 and β=0.4, meaning that the scheduling decision prioritizes path health while also considering load balancing. The scheduling priority P ranges from [0, 1], with a larger value indicating that the path is more suitable for allocating input / output requests.

[0086] In some implementations, scheduling priorities can be calculated using a product instead of a weighted sum. For example, P=V health ×V load The advantage of using the product form lies in its ability to amplify weaknesses—a low health or load score will significantly lower the overall scheduling priority, thus ensuring that scheduling decisions do not make extremely unfavorable choices in either dimension. Unlike linear weighting, which allows a strong performance in one metric to mask a serious deficiency in another, the product form forces scheduling decisions to avoid significant weaknesses in both health and load dimensions. Whether to use summation or product can be chosen based on the storage system's scheduling strategy preferences.

[0087] In other implementations, a health-load coordination component can be introduced into the scheduling priority to capture the co-evolutionary relationship between changes in health and load. Specifically, the rate of change of health and the rate of change of queue depth are calculated separately, and then their coordination coefficient is calculated: when health increases and queue depth decreases, it indicates that the path is in a benign coordination state, the coordination coefficient is positive, and a scheduling reward is given; when health decreases and queue depth increases, it indicates that the path is in a malignant coordination state, the coordination coefficient is negative, and a scheduling penalty is given; when the two change in the same direction or the rate of change is extremely small, the coordination coefficient approaches neutrality. By mapping the coordination coefficient to a specific interval to obtain the coordination component value and incorporating it into the calculation of scheduling priority, the scheduler can consider not only the static health level and load level of the path, but also their dynamic evolutionary relationship. The above-mentioned coordination component is an optional enhancement scheme and does not affect the implementation of the basic method of this invention.

[0088] S1035: Determine the candidate input / output path with the highest scheduling priority as the target input / output path.

[0089] For all paths in the candidate input / output path set, sort them from highest to lowest scheduling priority, and determine the candidate input / output path with the highest scheduling priority as the target input / output path for the current input / output request. If there are multiple paths with the highest scheduling priority, select the path with the shortest queue depth to further optimize load balancing.

[0090] Step S104: Schedule the input / output request according to the target input / output path.

[0091] Step S104 includes the following sub-steps: S1041: Schedule input / output requests according to the target input / output path.

[0092] The scheduling module sends the current input / output request to the target input / output path determined in step S103, and transmits the request to the storage device for execution through the physical or logical channel corresponding to that path. During the request execution process, the scheduling module monitors the execution status of the request.

[0093] S1042: After completing the input / output request scheduling, update the running status data, current health level, and historical health level changes of the target input / output path.

[0094] Once the input / output request has been executed on the target input / output path, collect the actual execution results of the request, including: (1) Actual response delay: The actual time from when the request is sent to when it is completed; (2) Actual completion result: Whether the request was successfully completed, or the specific reasons for failure; (3) Actual number of retries: The actual number of retries that occurred during the execution of this request; (4) Actual error information: If the request fails to execute, record the specific error type and error code.

[0095] Using the actual execution results as raw data, the running status data of the target input / output path is updated. Specifically, the actual response latency is included in the statistics of the input / output response latency index, the actual number of retries is included in the statistics of the retry count index, and the actual error information is included in the statistics of the input / output error count index. The updated running status data will participate in the calculation of the current health status in the next sampling period (i.e., step S101), and the newly calculated current health status will be appended to the health status time series, thereby affecting the next round of health status prediction (i.e., step S102) and scheduling decision (i.e., step S103).

[0096] Through this closed-loop mechanism of data collection, calculation, prediction, scheduling, and feedback, the actual execution results of each input / output request are fed back into the health feature collection system. This ensures that the current health assessment and future health prediction continuously reflect the true operational status of the path, forming an adaptive positive loop. As the system's runtime increases, the accuracy of health assessment and prediction will continue to improve.

[0097] This embodiment uses a specific scheduling scenario as an example to fully describe the execution process of the method of the present invention.

[0098] Suppose a storage system has three input / output paths, denoted as path A, path B, and path C. The preset sampling period is 5 seconds, the preset sliding window size is 5, the first health threshold is 0.5, the second health threshold is 0.5, the first weight w1 = 0.6, the second weight w2 = 0.4, the health evaluation value weight α = 0.6, and the load evaluation value weight β = 0.4.

[0099] At a certain sampling moment, the system collected the operational status data of three paths and calculated their current health scores: Path A's current health score was 0.85, Path B's was 0.7, and Path C's was 0.4. Simultaneously, based on the time series health scores of each path, the system predicted the following health scores: Path A's predicted health score was 0.87 (increasing trend), Path B's predicted health score was 0.65 (decreasing trend), and Path C's predicted health score was 0.35 (decreasing trend).

[0100] Candidate path selection: Path C's current health score of 0.40 is lower than the first health threshold of 0.5, and its predicted health score of 0.35 is lower than the second health threshold of 0.5. Therefore, path C is removed from the candidate input / output path set. Paths A and B have current and predicted health scores both higher than the threshold, thus forming the candidate input / output path set.

[0101] Health rating calculation: Path A: V_health_A = 0.6 × 0.85 + 0.4 × 0.87 = 0.858 Path B: V_health_B = 0.6 × 0.7 + 0.4 × 0.65 = 0.68 Load evaluation value calculation: Assuming that the load indicators of path A are relatively light, the calculated load evaluation value is 0.80; the load indicators of path B are relatively heavy, and the calculated load evaluation value is 0.50.

[0102] Scheduling priority calculation: Path A: P A =0.6×0.858+0.4×0.80=0.835 Path B: P B =0.6×0.680+0.4×0.50=0.608 Target path determination: The scheduling priority of path A (0.835) is higher than that of path B (0.608), therefore path A is determined as the target input / output path for the current input / output request.

[0103] Scheduling Execution and Feedback: Input and output requests are assigned to path A for execution. Upon completion of a request, actual response latency, actual completion result, actual retries, and actual error information are collected, and the runtime status data of path A is updated. In the next sampling period, the updated runtime status data will participate in the recalculation of path A's current health, thereby influencing subsequent prediction and scheduling decisions, forming a complete closed loop.

[0104] As can be seen from this embodiment, the present invention can rationally select the optimal input and output paths by fusing the current health status and the predicted health status, and by comprehensively considering the health status and the load status. This avoids assigning requests to unhealthy or unhealthy paths, and achieves load balancing between paths, thereby improving the overall performance and reliability of the storage system.

[0105] Example 2: Based on the same technical concept, Example 2 of this application also provides a storage input / output scheduling system based on path health, such as... Figure 4 As shown, it includes: an acquisition module 210, a prediction module 220, a path determination module 230, and a scheduling module 240.

[0106] Specifically, the acquisition module 210 is used to acquire the running status data of each input / output path and determine the current health of each input / output path based on the running status data. The acquisition module is specifically used to execute all the functions of step S101, including collecting eight status indicators at a preset sampling period, normalizing the status indicators to obtain indicator scores, and calculating the current health according to preset weights.

[0107] The prediction module 220 is used to predict the future health of each input and output path based on the historical health changes of each input and output path. Specifically, the prediction module performs all the functions of step S102, including maintaining the health time series, calculating the health difference, determining the average health change and the health change trend, and calculating the predicted health.

[0108] The path determination module 230 is used to determine the target input / output path for the input / output request based on the current health, predicted health, and path load status of each input / output path when the input / output request arrives. Specifically, the path determination module performs all the functions of step S103, including filtering candidate input / output paths using a first health threshold and a second health threshold, calculating a health evaluation value, calculating a load evaluation value, calculating a scheduling priority, and selecting the path with the highest scheduling priority as the target input / output path.

[0109] The scheduling module 240 is used to schedule the input / output requests according to the target input / output path. Specifically, the scheduling module is used to execute all the functions of step S104, including allocating requests to the target path for execution, collecting actual execution results and feeding back updated running status data, current health status and historical health status changes.

[0110] Example 3: In one embodiment, Example 3 of the present invention also provides an electronic device; the electronic device may be a terminal, and its internal structure diagram may be as follows. Figure 5As shown. The electronic device includes a processor, memory, communication interface, display screen, and input device connected via a system bus. The processor provides computing and control capabilities. The memory includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements the path health-based storage input / output scheduling method described in any one of steps S101 to S104. The display screen can be a liquid crystal display (LCD) or an e-ink display. The input device can be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the device's casing, or an external keyboard, touchpad, or mouse.

[0111] Those skilled in the art will understand that Figure 5 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0112] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0113] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0114] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0115] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0116] The above are merely embodiments of the present invention and are not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention are included within the scope of the claims of the present invention pending approval.

Claims

1. A storage input / output scheduling method based on path health, applied to a storage system with multiple input / output paths, characterized in that, include: Obtain the running status data of each input and output path, and determine the current health of each input and output path based on the running status data; Based on the historical health changes of each input and output path, the future health of each input and output path is predicted; When an input / output request arrives, the target input / output path of the input / output request is determined based on the current health, predicted health, and path load status of each input / output path. The input / output requests are scheduled according to the target input / output path.

2. The method according to claim 1, characterized in that, The operational status data includes status indicators collected by each input / output path within a preset sampling period; the status indicators include: input / output response latency, number of input / output timeouts, number of input / output errors, number of retries, queue depth, number of incomplete input / output requests, path bandwidth utilization, and path controller resource utilization.

3. The method according to claim 2, characterized in that, Determining the current health of each input / output path based on the operational status data includes: The state indicators are normalized to obtain the index scores corresponding to each state indicator. Based on the index scores and preset weights corresponding to each status index, calculate the current health of the corresponding input and output paths; Among them, the higher the degree of anomaly, the lower the corresponding index score. The current health status is used to characterize the availability or stability of the corresponding input / output path in processing input / output requests.

4. The method according to claim 1, characterized in that, The prediction of the future health of each input / output path based on its historical health changes includes: Obtain the historical health status of the corresponding input and output paths within multiple consecutive historical sampling periods to form a health status time series. Calculate the health difference between adjacent historical health values ​​in the health time series; The trend of health status change is determined based on the aforementioned health status difference; Based on the health status change trend and the most recently determined current health status, the predicted health status of the corresponding input / output path in the future scheduling cycle is obtained.

5. The method according to claim 4, characterized in that, The step of determining the trend of health status change based on multiple health status differences includes: The average health difference within a preset sliding window is averaged to obtain the average health change. When the average health change is less than zero, it is determined that the corresponding input / output path is in a declining health trend. When the average health change is greater than zero, it is determined that the corresponding input / output path is in an upward trend of health. When the average health change is equal to zero, it is determined that the corresponding input-output path is in a stable health trend. The predicted health level is determined based on the change between the most recently determined current health level and the average health level.

6. The method according to claim 1, characterized in that, When an input / output request arrives, determining the target input / output path for the request based on the current health, predicted health, and path load status of each input / output path includes: Determine candidate input / output paths from multiple input / output paths; For each candidate input-output path, calculate the health score based on the current health score and the predicted health score; The load evaluation value is calculated based on queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization. Calculate scheduling priority based on the health evaluation value and the load evaluation value; The candidate input / output path with the highest scheduling priority is determined as the target input / output path.

7. The method according to claim 6, characterized in that, The calculation of the health evaluation value based on the current health status and the predicted health status includes: The current health score is weighted according to the first weight, and the predicted health score is weighted according to the second weight. The weighted current health score and the weighted predicted health score are then added together to obtain the health score evaluation value. The calculation of the load evaluation value based on queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization includes: The queue depth, number of incomplete input / output requests, queue waiting time, path bandwidth utilization, and path controller resource utilization are normalized to obtain the corresponding load index scores. The load evaluation value is calculated based on the scores of each load indicator and the corresponding preset load weights; Among them, the higher the queue depth, the number of incomplete input / output requests, the queue waiting time, the path bandwidth utilization, and the path controller resource utilization, the lower the corresponding load metric score.

8. The method according to claim 1, characterized in that, Before determining the target input / output path for the input / output request, the process also includes: Determine whether the current health of each input / output path is lower than the first health threshold, and determine whether the predicted health of each input / output path is lower than the second health threshold; Input / output paths whose current health level is lower than the first health threshold are removed from the candidate input / output paths, and input / output paths whose predicted health level is lower than the second health threshold are also removed from the candidate input / output paths. After completing the input / output request scheduling, the running status data, current health status, and historical health status changes of the target input / output path are updated based on the actual response delay, actual completion result, actual retry count, and actual error information of the target input / output path to the input / output request.

9. A storage input / output scheduling system based on path health, characterized in that, include: The acquisition module is used to acquire the running status data of each input and output path, and determine the current health of each input and output path based on the running status data; The prediction module is used to predict the future health of each input and output path based on the historical health changes of each input and output path. The path determination module is used to determine the target input / output path of the input / output request based on the current health, predicted health, and path load status of each input / output path when the input / output request arrives. The scheduling module is used to schedule the input / output request according to the target input / output path.

10. An electronic device, characterized in that, The electronic device includes: At least one processor; and a memory communicatively connected to said at least one processor; The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1-8.