Storage resource allocation method, device, electronic device and storage medium
By dynamically adjusting the storage resource allocation method and combining it with the zero-copy mechanism of the RoCE network, the problems of storage performance jitter and insufficient utilization of heterogeneous storage devices are solved, efficient storage resource management is achieved, and system stability and resource utilization efficiency are improved.
Patent Information
- Application Number
- CN202510724587.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-30
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2045-05-30
AI Technical Summary
Existing storage virtualization technology, when combined with RoCE networks, cannot dynamically adjust storage resource allocation based on real-time network status, resulting in storage performance jitter. Furthermore, the performance differences of heterogeneous storage devices are not fully utilized, leading to resource waste and data consistency issues.
By collecting network status information and storage volume performance indicator information, the priority weight of each storage volume is dynamically determined, and bandwidth is allocated based on the weight. It is determined whether the task needs to be operated across heterogeneous storage devices, and the storage resource allocation strategy is optimized. The zero-copy mechanism of the RoCE network is used for processing.
It reduces sudden delays or freezes in storage performance, improves system stability and resource utilization efficiency, reduces deployment costs, and enables dynamic scheduling of heterogeneous storage devices.
Smart Images

Figure CN120238447B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of resource scheduling technology, and in particular to a storage resource allocation method, device, electronic device, and storage medium. Background Art
[0002] With the rapid development of cloud computing, artificial intelligence, and big data technologies, data centers are experiencing a surge in demand for high-throughput, low-latency storage systems. Traditional storage virtualization technologies based on the Transmission Control Protocol / Internet Protocol (TCP / IP) stack struggle to meet the demands of scenarios like real-time data analysis and artificial intelligence (AI) model training due to their high processing overhead and latency. As an Ethernet-based Remote Direct Memory Access (RDMA) technology, RoCE (Remote Direct Memory Access) achieves ultra-low latency by bypassing the operating system kernel and using a zero-copy mechanism, making it the core of high-performance data center networks.
[0003] When storage virtualization technology in related technologies is combined with a RoCE network, the storage virtualization layer and the network layer are managed independently, and storage resource allocation cannot be dynamically adjusted according to the real-time network status, resulting in storage performance jitter. Summary of the Invention
[0004] The present application provides a storage resource allocation method, device, electronic device and storage medium to at least solve the problem in related technologies that storage resource allocation cannot be dynamically adjusted according to real-time network status, resulting in storage performance jitter.
[0005] This application provides a storage resource allocation method, including:
[0006] Collect network status information;
[0007] At preset time intervals or when network status information indicates current network congestion, performance indicator information of each storage volume in the storage pool is collected, and a priority weight of each storage volume is determined based on the network status information and the performance indicator information of each storage volume, where each storage volume corresponds to one or more storage devices of the same type;
[0008] Allocate corresponding bandwidth to each storage volume based on its priority weight;
[0009] Determine whether the current pending task requires cross-heterogeneous storage device operations;
[0010] If the current pending task does not require cross-heterogeneous storage device operations, the target transmission path and target storage volume of the current pending task are determined based on the priority of the current pending task and the bandwidth corresponding to each storage volume;
[0011] Process the current pending tasks based on the target transmission path and target storage volume.
[0012] The present application also provides a storage resource allocation device, comprising:
[0013] A collection module, used to collect network status information;
[0014] a first determining module configured to collect performance indicator information of each storage volume in the storage pool at intervals of a preset time period or when network status information indicates that network congestion is currently occurring, and determine a priority weight of each storage volume based on the network status information and the performance indicator information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type;
[0015] An allocation module is used to allocate corresponding bandwidth to each storage volume based on the priority weight of each storage volume;
[0016] A judgment module is used to judge whether the current task to be processed requires operation across heterogeneous storage devices;
[0017] A second determining module is configured to determine a target transmission path and a target storage volume of the current task to be processed according to the priority of the current task to be processed if the current task to be processed does not require an operation across heterogeneous storage devices;
[0018] The processing module is used to process the current pending task based on the target transmission path and the target storage volume.
[0019] The present application also provides an electronic device, comprising: a memory for storing a computer program; and a processor for implementing the steps of any of the above-mentioned storage resource allocation methods when executing the computer program.
[0020] The present application also provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of any of the above-mentioned storage resource allocation methods are implemented.
[0021] The present application also provides a computer program product, including a computer program, which implements the steps of any of the above storage resource allocation methods when executed by a processor.
[0022] Through the present application, due to the collection of network status information; every preset time period or if the network status information indicates that network congestion is currently occurring, the performance index information of each storage volume in the storage pool is collected, and based on the network status information and the performance index information of each storage volume, the priority weight of each storage volume is determined, wherein each storage volume corresponds to one or more storage devices of the same type; based on the priority weight of each storage volume, the corresponding bandwidth is allocated to each storage volume; it is determined whether the current pending task needs to be operated across heterogeneous storage devices; if the current pending task does not need to be operated across heterogeneous storage devices, the target transmission path and target storage volume of the current pending task are determined based on the priority of the current pending task and the bandwidth corresponding to each storage volume; based on the target transmission path and target storage volume, the current pending task is processed. Therefore, the technical problem of being unable to dynamically adjust storage resource allocation according to real-time network status, resulting in storage performance jitter, can be solved, thereby achieving the technical effect of reducing sudden delays or freezes and improving system stability. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0024] Figure 1 A schematic diagram of the structure of a storage resource allocation system provided in an embodiment of the present application;
[0025] Figure 2 A flowchart of a storage resource allocation method provided in an embodiment of the present application;
[0026] Figure 3 A schematic diagram of the structure of the storage system provided in an embodiment of the present application;
[0027] Figure 4 A flowchart of another storage resource allocation method provided in an embodiment of the present application;
[0028] Figure 5 A flowchart of another storage resource allocation method provided in an embodiment of the present application;
[0029] Figure 6 A schematic diagram of the structure of a storage resource allocation device provided in an embodiment of the present application;
[0030] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0031] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0032] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.
[0033] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.
[0034] With the rapid development of cloud computing, artificial intelligence, and big data technologies, data centers are experiencing exponential growth in storage system performance requirements. Traditional storage virtualization technology pools storage resources through the TCP / IP protocol stack. However, its core issue lies in its reliance on the TCP / IP protocol stack for network transmission, which requires multiple data copies and context switches, introducing additional latency. This high protocol stack processing overhead and latency make it difficult to meet the demands of high-throughput, low-latency scenarios such as real-time data analysis and AI model training.
[0035] RoCE networking, an Ethernet-based RDMA technology, allows data to be transferred directly from the memory of one device to the memory of another over Ethernet, without requiring processing by the operating system kernel. By bypassing the operating system kernel and using a zero-copy mechanism, it significantly reduces network transmission latency (to below 10μs), becoming a core technology for high-performance data center networks.
[0036] However, storage virtualization technologies in related technologies still face the following challenges when combined with RoCE networks:
[0037] Resource fragmentation: The storage virtualization layer and the network layer are managed independently, making it impossible to dynamically adjust storage resource allocation based on real-time network conditions (such as congestion and bandwidth utilization). This leads to storage performance jitter. Storage performance jitter includes sudden delays or freezes during critical moments of data transmission.
[0038] One method of solving storage performance jitter in related technologies requires additional equipment deployment, which has high deployment costs. Another method can only adjust the response order of various data requests to alleviate congestion when the network is congested, but cannot actively adjust to avoid network congestion.
[0039] Poor heterogeneous storage compatibility: Performance differences among heterogeneous storage devices, such as Non-Volatile Memory Express (NVMe), Solid State Drives (SSDs), and Hard Disk Drives (HDDs), are not fully utilized by dynamic storage resource scheduling algorithms in related technologies, leading to resource waste. For example, the potential high Input / Output Operations Per Second (IOPS) of SSDs is wasted, while the throughput of HDDs remains unrealized.
[0040] Data consistency issues: Data operations across heterogeneous storage devices lack atomicity guarantees, resulting in inefficient data synchronization in distributed scenarios.
[0041] In response to the above problems, an embodiment of the present application provides a storage resource allocation method, device, electronic device and storage device, which is applied to a storage system, including: collecting network status information; collecting performance index information of each storage volume in the storage pool at intervals of a preset time period or if the network status information indicates that network congestion is currently occurring, and determining the priority weight of each storage volume based on the network status information and the performance index information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type; allocating corresponding bandwidth to each storage volume based on the priority weight of each storage volume; judging whether the current pending task requires operation across heterogeneous storage devices; if the current pending task does not require operation across heterogeneous storage devices, determining the target transmission path and target storage volume of the current pending task based on the priority of the current pending task and the bandwidth corresponding to each storage volume; and processing the current pending task based on the target transmission path and target storage volume. The method provided by the above scheme realizes dynamic resource scheduling by jointly modeling RoCE network status information and performance indicators of heterogeneous storage devices, thereby achieving the technical effect of reducing sudden delays or freezes and improving system stability. This reduces deployment costs and enables dynamic scheduling of storage resources across heterogeneous storage devices without relying on additional equipment. RoCE bypasses the operating system kernel and uses a zero-copy mechanism to reduce or even avoid network congestion.
[0042] In conjunction with the specific application environment architecture or specific hardware architecture on which the execution of the storage resource allocation method depends, the specific application environment architecture or specific hardware architecture is described herein.
[0043] The storage resource allocation method, apparatus, electronic device, and storage device provided in the embodiments of the present application are suitable for allocating storage resources to tasks to be processed based on network status information and performance indicators of each storage device. Figure 1 As shown, this is a structural diagram of the storage resource allocation system on which the present application is based, and the storage resource allocation system includes a server and a storage system, wherein the server sends tasks to be processed to the storage system, and the storage system collects network status information; at intervals of a preset time period or if the network status information indicates that network congestion is currently occurring, the performance index information of each storage volume in the storage pool is collected, and the priority weight of each storage volume is determined based on the network status information and the performance index information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type; based on the priority weight of each storage volume, the corresponding bandwidth is allocated to each storage volume; it is determined whether the current task to be processed requires operation across heterogeneous storage devices; if the current task to be processed does not require operation across heterogeneous storage devices, the target transmission path and target storage volume of the current task to be processed are determined based on the priority of the current task to be processed and the bandwidth corresponding to each storage volume; and the current task to be processed is processed based on the target transmission path and the target storage volume.
[0044] The embodiment of the present application provides a storage resource allocation method, which is applied to a storage system. Figure 2 A flow chart of the storage resource allocation method provided in the embodiment of the present application is shown as follows: Figure 2 As shown, the storage resource allocation method includes the following process:
[0045] Step S201: Collect network status information.
[0046] It should be noted that the network status information is collected every first preset time period. It is understandable that the network status information is the network status information of the RoCE network.
[0047] Figure 3 This is a schematic diagram of the storage system provided in an embodiment of the present application. The storage system includes a heterogeneous device storage pool and a virtualization layer module. The virtualization layer module includes a monitoring module, a scheduling decision module, and an execution module, and works in conjunction with the heterogeneous device storage pool via a RoCE network topology. The heterogeneous device storage pool includes storage devices such as SSDs, HDDs, and NVMe.
[0048] The monitoring module collects real-time RoCE network status information and storage volume performance metrics to provide data input for dynamic scheduling. The scheduling decision module generates dynamic resource allocation policies based on the monitoring module's data, optimizing the coordinated utilization of storage and network resources. The execution module directly operates storage resources based on the scheduling decision module's dynamic resource allocation policies, ensuring low latency and data consistency.
[0049] The monitoring module includes a network status monitoring unit, a storage performance monitoring unit and a data preprocessing unit.
[0050] The network status detection unit is configured to collect network status information of the RoCE network at intervals of a first preset time period, specifically capturing the information in the form of binary messages and directly reading the network status information through the RoCE network card driver.
[0051] This network status information includes the RoCE network's Priority Flow Control (PFC) congestion signals (such as XOFF / XON frames) and Data Center Quantized Congestion Notification (DCQCN) congestion quantification parameters (such as packet marking probability and queue depth). PFC congestion signals are typically triggered by the receiving end's buffer status. Specifically, when the buffer usage of a priority queue on the receiving end exceeds a preset threshold (e.g., 80% capacity), a PFC congestion signal is generated. In this case, the PFC congestion signal is an XOFF pause frame, notifying the sending end to immediately stop sending data flows of that priority. When the buffer usage of a priority queue on the receiving end reaches a safe level, an XON resume frame is sent to notify the sending end to resume transmission of traffic of that priority. It should be understood that in this application, the receiving end is a storage system and the sending end is a server. Tasks issued by the server are placed into different priority queues based on their priority. The storage system retrieves pending tasks from the priority queues for processing. Priority queues are first-in, first-out data structures.
[0052] DCQCN quantifies the degree of network congestion through the Explicit Congestion Notification (ECN) flag in Internet Protocol (IP) messages.
[0053] It is understood that the network in the embodiment of the present application is a RoCE network. The first preset time period is set by a technician and is not specifically limited here. For example, the first preset time period is 10 milliseconds to ensure real-time performance.
[0054] In step S202, performance indicator information of each storage volume in the storage pool is collected at intervals of a preset time period or if the network status information indicates that network congestion is currently occurring. Based on the network status information and the performance indicator information of each storage volume, a priority weight of each storage volume is determined, wherein each storage volume corresponds to one or more storage devices of the same type.
[0055] The system determines whether network congestion is currently occurring by counting the triggering frequency of XOFF pause frames in each priority queue and the probability of the ECN flag in IP packets being set to Congestion Experienced (CE). It is understood that network congestion is currently occurring if the triggering frequency of XOFF pause frames in any priority queue exceeds a preset triggering frequency threshold, and the probability of the ECN flag in IP packets being set to CE exceeds a preset probability threshold.
[0056] The preset time period is set by technical personnel and is not specifically limited here.
[0057] The storage performance monitoring unit is configured to collect performance indicator information of each storage volume in the storage pool at intervals of a second preset time period. It is understood that the storage pool is a heterogeneous device storage pool.
[0058] When the type of storage device corresponding to the storage volume is an NVMe device, the performance indicator information is the namespace utilization and command queue depth of the NVMe device. Figure 3 As shown in the figure, the command queue depth of an NVMe device is 1024.
[0059] When the type of storage device corresponding to the storage volume is an SSD device, the performance indicator information is IOPS and queue delay. For example, Figure 3 As shown in FIG, the IOPS of an SSD device is 100K, where 100K means that the SSD device can perform 100,000 read or write operations per second.
[0060] When the type of storage device corresponding to the storage volume is an HDD device, the performance indicator information is throughput (MB / s) and seek time. For example, Figure 3 As shown in Figure 1, the throughput of an HDD device is 200MB / s, which means that under ideal conditions, the hard disk can successfully transmit 200 megabytes of data per second.
[0061] The second preset time period is set by a technician and is not specifically limited here. For example, the second preset time period is 1 second to avoid the impact of high-frequency acquisition on storage performance.
[0062] If the storage device corresponding to the storage volume is an SSD or HDD, the performance indicator information of the storage volume, namely, the performance indicator information of the HDD / SSD device, is obtained using the Small Computer System Interface (SCSI) command set. If the storage device corresponding to the storage volume is an NVMe device, the performance indicator information of the storage volume, namely, the performance indicator information of the NVMe device, is obtained using the Non-Volatile Memory Expression over Fabrics (NVMe-oF) protocol.
[0063] It is understandable that SSD devices, NVMe devices, and HDD devices are different types of storage devices.
[0064] Based on the network status information and the performance index information of each storage volume, the priority weight of each storage volume is determined, including: normalizing the network status information and the performance index information of each storage volume to generate standardized index data, and determining the priority weight of each storage volume based on the standardized index data.
[0065] The data preprocessing unit is used to normalize the network status information and the performance indicator information of each storage device to generate standardized indicator data, such as IOPS relative utilization, bandwidth utilization, etc., wherein the network status information also includes the bandwidth information of the RoCE network.
[0066] Specifically, for a storage volume whose corresponding storage device type is an SSD device, the relative IOPS utilization of the storage volume is determined based on the current IOPS value and the maximum IOPS value of the storage volume:
[0067]
[0068] in, is the current IOPS value of the storage volume. The maximum IOPS value of the storage volume.
[0069] Based on the bandwidth information of the RoCE network, the bandwidth utilization of the RoCE network is determined by the following formula:
[0070] BWutil =
[0071] in, The bandwidth used by the RoCE network. The total available bandwidth of the RoCE network.
[0072] It can be understood that for a storage volume whose corresponding storage device type is an HDD device, the relative utilization of the throughput of the storage volume is determined based on the current throughput value and the maximum throughput value of the storage volume. The calculation method is similar to the calculation method for the storage volume whose corresponding storage device type is an SSD device, and will not be repeated here.
[0073] For the storage volume whose corresponding storage device type is an NVMe device, the relative utilization of the command queue of the storage volume is determined based on the current command queue depth and the maximum command queue depth of the storage volume. The calculation method is similar to the calculation method for the storage volume whose corresponding storage device type is an SSD device, and will not be repeated here.
[0074] The scheduling decision module is used to receive normalized data and issue resource allocation strategies based on the normalized data.
[0075] For a storage volume composed of SSD devices, the priority weight of the storage volume is determined according to the weight calculation formula. The weight calculation formula is:
[0076] Wi = α × IOPSutil + β × BWutil
[0077] Where Wi is the priority weight of the i-th storage volume composed of SSD devices, α and β are dynamic adjustment coefficients with initial values set to 0.6 and 0.4, IOPSutil is the relative IOPS utilization of the i-th storage volume composed of SSD devices, and Wutil is the network bandwidth utilization, that is, the bandwidth utilization of the RoCE network.
[0078] You can adjust α and β in real time based on historical load forecasting models (such as the ARIMA model). For example, in high IOPS scenarios, you can increase the α coefficient. If a sudden IOPS load (such as a surge in database transactions) is detected, you can dynamically increase the α coefficient to 0.8. Accordingly, the β coefficient becomes 0.2, meaning that the sum of the α and β coefficients equals 1.
[0079] It is understandable that after modifying the priority weight calculation method of the storage volume composed of SSD devices, the priority weight of the storage volume composed of other types of storage devices can be obtained.
[0080] Step S203: Allocate corresponding bandwidth to each storage volume based on the priority weight of each storage volume.
[0081] The priority weight of each storage volume is mapped to a specific resource allocation policy. For example, SSD storage volume 1 is allocated 40% bandwidth, and HDD storage volume 2 is allocated 60% bandwidth. The policy is sent to the execution module through the control plane (such as the gRPC protocol) to enable the execution module to implement the specific resource allocation policy.
[0082] After obtaining the priority weight of each storage volume, corresponding bandwidth is allocated to each storage volume based on the size of the priority weight of each storage volume.
[0083] Step S204: determine whether the current task to be processed requires operation across heterogeneous storage devices.
[0084] The cross-heterogeneous storage device operation refers to data migration or simultaneous operation between different types of storage devices. It can be understood that different types of storage devices are storage devices with different storage media.
[0085] It can be understood that if the current pending task clearly indicates that data is to be migrated from a storage device of one storage medium to a storage device of another storage medium, it is determined that the current pending task requires operation across heterogeneous storage devices; otherwise, it is determined that the current pending task does not require operation across heterogeneous storage devices.
[0086] Step S205: If the current pending task does not require cross-heterogeneous storage device operation, the target transmission path and target storage volume of the current pending task are determined according to the priority of the current pending task and the bandwidth corresponding to each storage volume.
[0087] Step S206: Process the current pending task based on the target transmission path and the target storage volume.
[0088] The storage resource allocation method provided by the embodiment of the present application collects network status information; collects performance index information of each storage volume in the storage pool at intervals of a preset time period or if the network status information indicates that network congestion is currently occurring, and determines the priority weight of each storage volume based on the network status information and the performance index information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type; allocates corresponding bandwidth to each storage volume based on the priority weight of each storage volume; determines whether the current pending task requires operation across heterogeneous storage devices; if the current pending task does not require operation across heterogeneous storage devices, determines the target transmission path and target storage volume of the current pending task based on the priority of the current pending task and the bandwidth corresponding to each storage volume; and processes the current pending task based on the target transmission path and target storage volume. Therefore, the technical problem of being unable to dynamically adjust storage resource allocation according to real-time network status, resulting in storage performance jitter, can be solved, thereby achieving the technical effect of reducing sudden delays or freezes and improving system stability.
[0089] The embodiment of the present application provides a storage resource allocation method, which is applied to a storage system. Figure 4 A flow chart of the storage resource allocation method provided in the embodiment of the present application is shown as follows: Figure 4 As shown, the storage resource allocation method includes the following process:
[0090] Step S401: Collect network status information. Figure 2 Step S201 of the illustrated embodiment will not be described in detail here.
[0091] Step S402: At predetermined intervals or if network status information indicates network congestion, performance indicator information of each storage volume in the storage pool is collected. Based on the network status information and the performance indicator information of each storage volume, a priority weight of each storage volume is determined. Each storage volume corresponds to one or more storage devices of the same type. For details, see Figure 2 Step S202 of the illustrated embodiment will not be described in detail here.
[0092] Step S403: Allocate corresponding bandwidth to each storage volume based on the priority weight of each storage volume. Figure 2 Step S203 of the illustrated embodiment will not be described in detail here.
[0093] Step S404: Determine whether the current task to be processed requires cross-heterogeneous storage device operation. Figure 2 Step S204 of the illustrated embodiment will not be described in detail here.
[0094] Step S405: If the current pending task does not require cross-heterogeneous storage device operation, the target transmission path and target storage volume of the current pending task are determined according to the priority of the current pending task and the bandwidth corresponding to each storage volume.
[0095] Specifically, the above step S405 includes:
[0096] Step S4051, when the priority of the current task to be processed is the first priority, determine that the target storage volume of the current task to be processed is the storage volume with the largest bandwidth among the storage volumes of the first type of the corresponding storage device, determine that the type of the first target transmission channel of the current task to be processed is a direct memory access reliable connection channel, obtain the path delay rate and bandwidth utilization of each transmission path in the multiple transmission paths in the first target transmission channel, and determine the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization of each transmission path.
[0097] Priority 1 is high. Current pending tasks of priority 1 can be low-latency tasks such as metadata update requests and transaction logs. The corresponding storage device type is type 1, indicating that the storage device is an SSD. High-priority pending tasks are assigned to the RoCE reliable connection (RC) channel, ensuring end-to-end reliability and low latency (<20μs). In other words, the direct memory access reliable connection channel is the RoCE reliable connection channel.
[0098] Step S4052: When the priority of the current task to be processed is the second priority, determine that the target storage volume of the current task to be processed is the storage volume with the largest bandwidth among the storage volumes of the second type of the corresponding storage device, determine that the type of the second target transmission channel of the current task to be processed is a direct memory access unreliable connection channel, obtain the path delay rate and bandwidth utilization of each transmission path in the multiple transmission paths in the second target transmission channel, and determine the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization of each transmission path.
[0099] The second priority is normal. Current pending tasks of this priority level can be database tasks with high throughput requirements, such as data backup and batch writes. The corresponding storage device type is type 2, indicating that the storage device is an HDD. Normal priority pending tasks are assigned to the RoCE unreliable link (UC) channel. In other words, the direct memory access (DMA) unreliable link channel is used as the RoCE unreliable link channel, utilizing multipath sharding to improve throughput.
[0100] The first priority is higher than the second priority, the first type of storage device is a solid state drive, and the second type of storage device is a hard disk drive.
[0101] Step S406: Process the current pending task based on the target transmission path and target storage volume. Figure 2 Step S206 of the illustrated embodiment will not be described in detail here.
[0102] The storage resource allocation method provided in the embodiments of this application ensures that low-latency tasks (such as metadata update requests and transaction logs) are completed with minimal latency by allocating them to the storage volume with the highest bandwidth in the SSD device and using the RoCE reliable connection (RC) channel. This facilitates rapid response to critical tasks and improves overall system performance. Non-critical tasks are allocated to ordinary storage volumes with higher bandwidth and transmitted over unreliable connection channels, fully utilizing system resources without impacting high-priority tasks.
[0103] In some optional implementations, step S4051 or step S4052 includes:
[0104] Step a1: Determine the target transmission path corresponding to the current task to be processed using the following formula:
[0105] Pathselected=arg
[0106] Among them, Pathselected is the target transmission path corresponding to the current task to be processed. is the current path delay data of the i-th transmission path, is the maximum path delay data of the i-th transmission path, is the path delay rate of the i-th transmission path, i is the used bandwidth value of the i-th transmission path, is the total bandwidth value of the i-th transmission path, is the bandwidth utilization of the i-th transmission path, arg It indicates obtaining a transmission path with the smallest sum of path delay rate and bandwidth utilization among multiple transmission paths as the target transmission path.
[0107] In some optional implementations, step S4052 includes:
[0108] Step b1: When the priority of the current task to be processed is the second priority, determine whether there is network congestion in the second priority queue corresponding to the second priority based on network status information.
[0109] Step b2: If there is network congestion in the second priority queue, the sum of the path delay rate and bandwidth utilization of each transmission path is determined based on the path delay rate and bandwidth utilization of each transmission path, and the multiple transmission paths are sorted in ascending order of the sum of the path delay rate and bandwidth utilization, and the transmission path with the front preset position is determined as the target transmission path corresponding to the current task to be processed.
[0110] The preset bit is greater than 1. It is understood that when the data to be transmitted for pending tasks is a small file (≤4KB), it is preferentially allocated to the SSD and transmitted via the RC channel, while large files (≥1MB) are allocated to the HDD and transmitted via the UC channel. Generally, high-priority pending tasks transmit small files, while normal-priority pending tasks transmit large files. If network congestion is detected (e.g., triggered by a PFC XOFF frame), large files are automatically fragmented into multiple 4KB blocks and distributed across different transmission paths, i.e., multi-path transmission is performed.
[0111] The storage resource allocation method provided in the embodiment of the present application is such that when network congestion is detected, the system will select a transmission path with a lower sum of path delay rate and bandwidth utilization as the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization of multiple transmission paths. By using multiple target transmission paths to process the tasks to be processed, congested paths can be effectively avoided and data transmission efficiency can be improved.
[0112] In some optional implementations, the above step S406 includes:
[0113] Step c1: Determine the target storage address of the current task to be processed based on the target storage volume.
[0114] Step c2: if the priority of the currently processed task is the second priority and the second priority queue corresponding to the second priority has network congestion, the updated storage data of the target storage address of the currently processed task is divided into multiple data blocks.
[0115] Step c3: Based on multiple target transmission paths, multiple data blocks are transmitted in parallel to write the updated storage data into the target storage address.
[0116] It is understandable that after being transmitted in parallel to the target storage address, the multiple data blocks are reorganized at the target storage address to obtain updated storage data, and the updated storage data is written to the target storage address.
[0117] The storage resource allocation method provided in the embodiment of the present application divides the updated storage data into multiple data blocks when network congestion is detected in the second priority queue. This data block division and diversion strategy can effectively reduce the load pressure on a single path and avoid transmission delays or failures caused by network congestion.
[0118] In some optional implementations, the storage resource allocation method includes:
[0119] Step d1: If the current task to be processed requires operation across heterogeneous storage devices, the type of the target storage device is determined based on the current task to be processed.
[0120] Step d2: Based on the type of the target storage device, determine that the target storage volume of the current pending task is the storage volume with the largest bandwidth among the storage volumes whose corresponding storage device type is consistent with the type of the target storage device; and based on the priority of the current pending task, determine the target transmission path of the current pending task.
[0121] The process of determining the target transmission path of the current task to be processed based on the priority of the current task to be processed is similar to the description in the aforementioned step S4051 and step S4052, and will not be repeated here.
[0122] Step d3: Determine the target storage address of the current task to be processed based on the target storage volume.
[0123] Step d4, reading the current storage data of the target storage address of the current task to be processed.
[0124] Step d5: comparing the current stored data of the target storage address with the expected stored data of the target storage address.
[0125] Step d6: If the current storage data of the target storage address is the same as the expected storage data of the target storage address, then based on the target transmission path, the updated storage data of the target storage address of the current task to be processed is written into the target storage address.
[0126] That is, when the current task to be processed requires operation across heterogeneous storage devices, since the type of the target storage device is clear, the storage volume with the largest bandwidth is directly determined as the target storage volume from the storage volumes of the same type as the target storage device.
[0127] To ensure the atomicity of operations across heterogeneous storage devices, the Atomic Compare-and-Swap (Atomic CAS) unit in the execution module calls the RoCE Atomic CAS instruction to perform atomic operations across heterogeneous storage devices, ensuring atomic updates of data blocks.
[0128] If the current storage data of the target storage address is the same as the expected storage data of the target storage address, the updated storage data of the target storage address of the current pending task is written to the target storage address through the RDMA write engine of RoCE based on the target transmission path. That is, the data is directly written from the client memory to the memory address space of the storage device, performing direct memory operations, bypassing the copy overhead of the virtualization layer, and realizing zero-copy transmission.
[0129] It should be noted that before writing to the target storage address, memory registration is required, that is, pre-locking the target storage area to avoid memory page conflicts during the transmission process.
[0130] The storage resource allocation method provided in the embodiments of the present application ensures data consistency before a write operation by comparing the current stored data at the target storage address with the expected stored data. The write operation to update the stored data is only executed if the current stored data is consistent with the expected stored data. This mechanism effectively prevents miswrites.
[0131] In some optional implementations, the above storage resource allocation method further includes:
[0132] In step e1, if the current storage data of the target storage address is different from the expected storage data of the target storage address, the process returns to the step of reading the current storage data of the target storage address of the current task to be processed.
[0133] In step e2, if the number of times the step of returning to execute the step of reading the current storage data of the target storage address of the current task to be processed exceeds the preset number threshold, and the current storage data of the target storage address is still different from the expected storage data of the target storage address, an alarm is issued.
[0134] In the storage resource allocation method provided in this embodiment, if the number of times the read step is returned exceeds a preset threshold and the data is still inconsistent, the system triggers an alarm mechanism. This design effectively prevents infinite loops caused by hardware failures, network problems, or other abnormal situations, thereby ensuring system stability.
[0135] It should be noted that after the execution module completes storage resource allocation, it feeds back the transmission delay of each transmission path and the storage device throughput data to the monitoring module. The scheduling decision module adjusts the α and β coefficients based on this feedback data, for example, increasing the β weight when bandwidth is limited.
[0136] In some optional implementations, the above step c3 further includes:
[0137] Step c31: encrypt multiple data blocks separately.
[0138] In step c32, if the number of data blocks is greater than the number of target transmission paths, the encrypted data blocks are distributed to the corresponding target transmission paths in an even distribution manner. Based on multiple target transmission paths and the target transmission channels established thereon, multiple encrypted data blocks are transmitted in parallel to write the updated storage data to the target storage address.
[0139] It can be understood that the quotient obtained by dividing the number of data blocks by the number of target transmission paths is the number of data blocks to be transmitted on each target transmission path, and the remainder is the number of data blocks that cannot be evenly distributed to the target transmission paths.
[0140] For data blocks that cannot be evenly distributed to the target transmission path, multiple target transmission paths are sorted in ascending order of the sum of the path delay rate and the bandwidth utilization rate. Based on the sorting order from first to last, the data blocks that cannot be evenly distributed to the target transmission path are allocated to the corresponding target transmission path.
[0141] In step c33, if the number of data blocks is less than the number of target transmission paths, the multiple target transmission paths are sorted in ascending order according to the sum of the path delay rate and the bandwidth utilization rate. Based on the sorting order from first to last, the encrypted data blocks are allocated to the corresponding target transmission paths. Based on the multiple target transmission paths and the target transmission channels established thereon, the multiple encrypted data blocks are transmitted in parallel to write the updated storage data to the target storage address.
[0142] The storage resource allocation method provided in the embodiments of this application encrypts multiple data blocks separately. This encryption mechanism effectively protects the privacy and integrity of data, preventing it from being illegally intercepted or tampered with during transmission. A comprehensive consideration of path latency and bandwidth utilization ensures efficient data transmission. Prioritizing paths with higher performance can significantly reduce transmission delays and failure rates.
[0143] The embodiment of the present application also provides a storage resource allocation method, Figure 5 This is a flow chart of the storage resource allocation method provided in the embodiment of the present application. Figure 5 As shown, the method includes the following process:
[0144] Periodic scheduling is started according to a triggering condition, wherein the triggering condition is network congestion or timer triggering.
[0145] Step S1: The monitoring module collects network status information and storage volume performance indicator information.
[0146] Step S2: The scheduling decision module calculates the priority weight of the storage volume and obtains a weight result.
[0147] Step S3: Determine whether a cross-storage operation is required, that is, determine whether a cross-heterogeneous storage device operation is required.
[0148] If cross-storage operations are required, the Atomic CAS instruction is called. The scheduling decision module determines the data sharding strategy (NVME: 4KB shards, HDD: 1MB shards), multipath transmission strategy, and media type matching strategy (NVME / SSD / HDD). See steps d1 to d6 above for details and are not repeated here.
[0149] If cross-storage operation is not required, the scheduling decision module allocates UC / RC channels. Specifically, the relevant descriptions of the aforementioned steps S4051 and S4052 are executed, which will not be repeated here.
[0150] In step S4, the execution module completes resource allocation according to the strategy of the scheduling decision module, monitors and feeds back the delay and throughput data to the monitoring module, and then returns to the monitoring state.
[0151] The storage resource allocation method provided in the embodiment of the present application is that when the RoCE network detects multi-path congestion, the scheduling module preferentially allocates high IOPS requests (such as database logs) to the SSD and allocates high throughput requests (such as video streams) to the HDD, thereby optimizing resource utilization. The dynamic scheduling algorithm reduces the utilization difference between SSD and HDD, and improves the utilization of various types of hard disks. By utilizing the Multipath RDMA feature of RoCE, data shards are transmitted to different paths, and the shard size is dynamically adjusted based on the response time of the storage medium, thereby reducing latency. Through RoCE's zero-copy and atomic operations, storage I / O reduces latency, improves throughput, and reduces or even avoids network congestion. By calling the AtomicCAS instruction when performing data operations across heterogeneous storage, the bit error rate of data operations across heterogeneous storage is reduced, ensuring the consistency of data transmission.
[0152] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.
[0153] The embodiment of the present application also provides a storage resource allocation device, such as Figure 6 Shown, including:
[0154] The collection module 601 is used to collect network status information.
[0155] The first determination module 602 is used to collect performance indicator information of each storage volume in the storage pool at intervals of a preset time period or if the network status information indicates that network congestion is currently occurring, and determine the priority weight of each storage volume based on the network status information and the performance indicator information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type.
[0156] The allocation module 603 is configured to allocate corresponding bandwidth to each storage volume based on the priority weight of each storage volume.
[0157] The judgment module 604 is used to judge whether the current task to be processed requires operation across heterogeneous storage devices.
[0158] The second determining module 605 is configured to determine a target transmission path and a target storage volume for the current task to be processed according to the priority of the current task to be processed if the current task to be processed does not require cross-heterogeneous storage device operation.
[0159] The processing module 606 is configured to process the current pending task based on the target transmission path and the target storage volume.
[0160] In some optional implementations, the second determining module 605 includes:
[0161] The first determination unit is used to determine, when the priority of the current task to be processed is the first priority, that the target storage volume of the current task to be processed is the storage volume with the largest bandwidth among the storage volumes of the first type of the corresponding storage device, determine that the type of the first target transmission channel of the current task to be processed is a direct memory access reliable connection channel, obtain the path delay rate and bandwidth utilization of each transmission path in the multiple transmission paths in the first target transmission channel, and determine the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization of each transmission path.
[0162] The second determination unit is used to determine, when the priority of the current task to be processed is the second priority, that the target storage volume of the current task to be processed is the storage volume with the largest bandwidth among the storage volumes of the second type of the corresponding storage device, determine that the type of the second target transmission channel of the current task to be processed is a direct memory access unreliable connection channel, obtain the path delay rate and bandwidth utilization of each transmission path in the multiple transmission paths in the second target transmission channel, and determine the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization of each transmission path.
[0163] The first priority is higher than the second priority, the first type of storage device is a solid state drive, and the second type of storage device is a hard disk drive.
[0164] In some optional implementations, the first determining unit or the second determining unit includes:
[0165] The third determining unit is configured to determine the target transmission path corresponding to the current task to be processed by using the following formula:
[0166] Pathselected=arg
[0167] Among them, Pathselected is the target transmission path corresponding to the current task to be processed. is the current path delay data of the i-th transmission path, is the maximum path delay data of the i-th transmission path, is the path delay rate of the i-th transmission path, i is the used bandwidth value of the i-th transmission path, is the total bandwidth value of the i-th transmission path, is the bandwidth utilization of the i-th transmission path, arg It indicates obtaining a transmission path with the smallest sum of path delay rate and bandwidth utilization among multiple transmission paths as the target transmission path.
[0168] In some optional implementations, the second determining unit includes:
[0169] The fourth determining unit is configured to determine, based on network status information, whether there is network congestion in the second priority queue corresponding to the second priority when the priority of the current task to be processed is the second priority.
[0170] The fifth determination unit is used to determine the sum of the path delay rate and bandwidth utilization of each transmission path based on the path delay rate and bandwidth utilization of each transmission path if there is network congestion in the second priority queue, sort the multiple transmission paths in ascending order of the sum of the path delay rate and bandwidth utilization, and determine that the transmission path ranked as the front preset position is the target transmission path corresponding to the current task to be processed.
[0171] In some optional implementations, the processing module 606 includes:
[0172] The sixth determining unit is configured to determine a target storage address of the current task to be processed based on the target storage volume.
[0173] The partitioning unit is used to partition the updated storage data of the target storage address of the current task to be processed into multiple data blocks if the priority of the current processing task is the second priority and there is network congestion in the second priority queue corresponding to the second priority.
[0174] The transmission unit is used to transmit multiple data blocks in parallel based on multiple target transmission paths to write the updated storage data to the target storage address.
[0175] In some optional implementations, the storage resource allocation apparatus further includes:
[0176] The seventh determining unit is configured to determine the type of the target storage device based on the current task to be processed if the current task to be processed requires operation across heterogeneous storage devices.
[0177] The eighth determination unit is used to determine, based on the type of the target storage device, that the target storage volume of the current task to be processed is the storage volume with the largest bandwidth among the storage volumes whose corresponding storage device type is consistent with the type of the target storage device, and to determine, based on the priority of the current task to be processed, the target transmission path of the current task to be processed.
[0178] The ninth determining unit is configured to determine a target storage address of a current task to be processed based on the target storage volume.
[0179] The reading unit is used to read the current storage data of the target storage address of the current task to be processed.
[0180] The comparison unit is used to compare the current storage data of the target storage address with the expected storage data of the target storage address.
[0181] The writing unit is configured to write the updated storage data of the target storage address of the current task to be processed into the target storage address based on the target transmission path if the current storage data of the target storage address is the same as the expected storage data of the target storage address.
[0182] In some optional implementations, the storage resource allocation apparatus further includes:
[0183] The return execution unit is used to return to the step of reading the current storage data of the target storage address of the current task to be processed if the current storage data of the target storage address is different from the expected storage data of the target storage address.
[0184] An alarm unit is used to issue an alarm if the number of times the step of returning to execute the step of reading the current storage data of the target storage address of the current task to be processed exceeds a preset number threshold, and the current storage data of the target storage address is still different from the expected storage data of the target storage address.
[0185] For the description of the features in the embodiment corresponding to the storage resource allocation device, reference can be made to the relevant description of the embodiment corresponding to the storage resource allocation method, which will not be repeated here.
[0186] The embodiment of the present application also provides an electronic device, such as Figure 7 As shown, it includes a processor 701 and a memory 702, wherein the memory 702 stores a computer program, and the processor 701 is configured to run the computer program to execute the steps in any of the above storage resource allocation method embodiments.
[0187] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps of any of the above-mentioned storage resource allocation method embodiments when running.
[0188] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.
[0189] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any of the above-mentioned storage resource allocation method embodiments are implemented.
[0190] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of any of the above-mentioned storage resource allocation method embodiments are implemented.
[0191] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0192] The above is a detailed introduction to a storage resource allocation method, device, electronic device and storage medium provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core ideas of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.
Claims
1. A storage resource allocation method, characterized in that: include: Collect network status information; At every preset time period or if the network status information indicates that network congestion is currently occurring, the performance indicator information of each storage volume in the storage pool is collected, and the priority weight of each storage volume is determined based on the network status information and the performance indicator information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type; when the type of storage device corresponding to the storage volume is an NVMe device, the performance indicator information is the namespace utilization and command queue depth of the NVMe device; when the type of storage device corresponding to the storage volume is an SSD device, the performance indicator information is IOPS and queue delay; when the type of storage device corresponding to the storage volume is an HDD device, the performance indicator information is throughput and seek time; Allocate corresponding bandwidth to each storage volume based on its priority weight; Determine whether the current pending task requires cross-heterogeneous storage device operations; If the current pending task does not require cross-heterogeneous storage device operations, the target transmission path and target storage volume of the current pending task are determined based on the priority of the current pending task and the bandwidth corresponding to each storage volume; Processing the current pending task based on the target transmission path and the target storage volume; The step of determining the target transmission path and target storage volume of the current task to be processed based on the priority of the current task to be processed and the bandwidth corresponding to each storage volume includes: When the priority of the current task to be processed is the first priority, determining that the target storage volume of the current task to be processed is a storage volume of the first type of storage volume of the corresponding storage device with the largest bandwidth, determining that the type of the first target transmission channel of the current task to be processed is a direct memory access reliable connection channel, obtaining a path delay rate and a bandwidth utilization rate of each transmission path of multiple transmission paths in the first target transmission channel, and determining the target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization rate of each transmission path; When the priority of the current task to be processed is the second priority, determining that the target storage volume of the current task to be processed is a storage volume with the largest bandwidth among the storage volumes of the second type of the corresponding storage device, determining that the type of the second target transmission channel of the current task to be processed is a direct memory access unreliable connection channel, obtaining a path delay rate and a bandwidth utilization rate of each transmission path in multiple transmission paths in the second target transmission channel, and determining a target transmission path corresponding to the current task to be processed based on the path delay rate and bandwidth utilization rate of each transmission path; The first priority is higher than the second priority, the first type of storage device is a solid state drive, and the second type of storage device is a hard disk drive.
2. The storage resource allocation method according to claim 1, wherein: The determining of a target transmission path corresponding to a current task to be processed based on the path delay rate and bandwidth utilization of each transmission path includes: The target transmission path corresponding to the current pending task is determined by the following formula: Pathselected= arg Among them, Pathselected is the target transmission path corresponding to the current task to be processed. is the current path delay data of the i-th transmission path, is the maximum path delay data of the i-th transmission path, is the path delay rate of the i-th transmission path, i is the used bandwidth value of the i-th transmission path, is the total bandwidth value of the i-th transmission path, is the bandwidth utilization of the i-th transmission path, arg It indicates obtaining a transmission path with the smallest sum of path delay rate and bandwidth utilization among multiple transmission paths as the target transmission path.
3. The storage resource allocation method according to claim 1, wherein: When the priority of the current task to be processed is the second priority, determining a target transmission path corresponding to the current task to be processed based on a path delay rate and a bandwidth utilization rate of each transmission path includes: When the priority of the current task to be processed is the second priority, determining, based on the network status information, whether there is network congestion in the second priority queue corresponding to the second priority; If there is network congestion in the second priority queue, the sum of the path delay rate and bandwidth utilization of each transmission path is determined based on the path delay rate and bandwidth utilization of each transmission path, and the multiple transmission paths are sorted in ascending order of the sum of the path delay rate and bandwidth utilization, and the transmission path with the front preset position is determined to be the target transmission path corresponding to the current task to be processed.
4. The storage resource allocation method according to claim 3, wherein: The processing of the current pending task based on the target transmission path and the target storage volume includes: Determining a target storage address of the current task to be processed based on the target storage volume; If the priority of the currently processed task is the second priority and there is network congestion in the second priority queue corresponding to the second priority, dividing the updated storage data of the target storage address of the currently processed task into multiple data blocks; Based on the multiple target transmission paths, multiple data blocks are transmitted in parallel to write the updated storage data into the target storage address.
5. The storage resource allocation method according to claim 1, wherein: The method further comprises: If the current pending task requires operation across heterogeneous storage devices, the type of the target storage device is determined based on the current pending task; Based on the type of the target storage device, determine the target storage volume of the current pending task to be the storage volume with the largest bandwidth among the storage volumes whose corresponding storage device type is consistent with the type of the target storage device, and based on the priority of the current pending task, determine the target transmission path of the current pending task; Determining a target storage address of the current task to be processed based on the target storage volume; Reading the current storage data of the target storage address of the current task to be processed; comparing the current stored data of the target storage address with the expected stored data of the target storage address; If the current storage data of the target storage address is the same as the expected storage data of the target storage address, then based on the target transmission path, the updated storage data of the target storage address of the current task to be processed is written into the target storage address.
6. The storage resource allocation method according to claim 5, characterized in that: The method further comprises: If the current storage data of the target storage address is different from the expected storage data of the target storage address, returning to the step of reading the current storage data of the target storage address of the current task to be processed; If the number of times the step of returning to execute reading the current storage data of the target storage address of the current task to be processed exceeds a preset number threshold, and the current storage data of the target storage address is still different from the expected storage data of the target storage address, an alarm is issued.
7. A storage resource allocation device, characterized in that: include: A collection module, used to collect network status information; A first determination module is configured to collect performance indicator information of each storage volume in the storage pool at intervals of a preset time period or if the network status information indicates that network congestion currently occurs, and determine the priority weight of each storage volume based on the network status information and the performance indicator information of each storage volume, wherein each storage volume corresponds to one or more storage devices of the same type; when the type of storage device corresponding to the storage volume is an NVMe device, the performance indicator information is the namespace utilization and command queue depth of the NVMe device; when the type of storage device corresponding to the storage volume is an SSD device, the performance indicator information is IOPS and queue delay; when the type of storage device corresponding to the storage volume is an HDD device, the performance indicator information is throughput and seek time; An allocation module is used to allocate corresponding bandwidth to each storage volume based on the priority weight of each storage volume; A judgment module is used to judge whether the current task to be processed requires operation across heterogeneous storage devices; A second determining module is configured to determine a target transmission path and a target storage volume of the current task to be processed according to the priority of the current task to be processed if the current task to be processed does not require an operation across heterogeneous storage devices; a processing module, configured to process the current pending task based on the target transmission path and the target storage volume; The second determination module includes: A first determining unit is configured to, when the priority of the currently pending task is the first priority, determine that the target storage volume of the currently pending task is a storage volume with the largest bandwidth among the storage volumes of the first type of the corresponding storage device, determine that the type of the first target transmission channel of the currently pending task is a direct memory access reliable connection channel, obtain a path delay rate and a bandwidth utilization rate of each transmission path among multiple transmission paths in the first target transmission channel, and determine a target transmission path corresponding to the currently pending task based on the path delay rate and the bandwidth utilization rate of each transmission path; a second determining unit for, when the priority of the currently pending task is the second priority, determining that a target storage volume of the currently pending task is a storage volume with the largest bandwidth among the storage volumes of the second type of the corresponding storage device, determining that a type of a second target transmission channel of the currently pending task is a direct memory access unreliable connection channel, obtaining a path delay rate and a bandwidth utilization rate of each transmission path among a plurality of transmission paths in the second target transmission channel, and determining a target transmission path corresponding to the currently pending task based on the path delay rate and the bandwidth utilization rate of each transmission path; The first priority is higher than the second priority, the first type of storage device is a solid state drive, and the second type of storage device is a hard disk drive.
8. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the storage resource allocation method according to any one of claims 1 to 6 when executing the computer program.
9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the storage resource allocation method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Storage resource centralized management method and device, equipment and readable storage medium
CN108874316A
Storage network congestion management method and system, terminal and storage medium
CN112491732A
Data storage system with port congestion hinting for host multipathing
US10146446B1