Storage resource allocation method and apparatus, and device
By generating arrival envelope models and service envelope models for user read requests, and combining them with read request response latency thresholds, storage resources are allocated reasonably, solving the problem of unreasonable storage medium allocation in cloud storage and improving resource utilization efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-12-30
- Publication Date
- 2026-07-30
AI Technical Summary
In cloud storage services, how to reasonably allocate different types of storage media to meet users' actual data reading needs and comply with the read request response latency threshold of the service level agreement, so as to avoid resource waste.
By generating the user's read request arrival envelope model and the storage resource pool's service envelope model, and combining the read request response latency threshold, the capacity of the first storage medium allocated to the user is determined, taking into account the user's data volatility and rate information as well as the storage resource pool's bandwidth information.
It enables matching and allocation of storage resources based on the actual data read by the user and the capacity of the storage resource pool, thereby improving the rationality and utilization efficiency of storage resources and reducing resource waste.
Smart Images

Figure CN2025147159_30072026_PF_FP_ABST
Abstract
Description
Methods, apparatus and equipment for allocating storage resources
[0001] This application claims priority to Chinese Patent Application No. 202510109630.0, filed on January 21, 2025, entitled "Method, Apparatus and Device for Allocating Storage Resources", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of storage technology, and in particular to a method, apparatus and device for allocating storage resources. Background Technology
[0003] Cloud storage is a distributed data storage service based on the Internet, which can be provided to users by service providers.
[0004] When users need cloud storage services, they can lease storage resources from service providers, who will then allocate storage resources to users from the storage resource pool.
[0005] Storage resource pools typically include various types of storage media, such as solid-state drives (SSDs) and hard disk drives (HDDs). How to rationally allocate different types of storage media when distributing storage resources to users is a pressing issue that needs to be addressed. Summary of the Invention
[0006] This application provides a method, apparatus, and device for allocating storage resources, which can rationally allocate storage resources to users based on their data reading behavior. The technical solution is as follows:
[0007] Firstly, a method for allocating storage resources is provided. The storage resources belong to a storage resource pool and include a first storage medium and a second storage medium. The read response latency of the first storage medium is less than that of the second storage medium. The method includes:
[0008] The system receives multiple read requests from a target user. Based on the request time and data volume for each read request, it determines the arrival envelope model corresponding to each read request. The arrival envelope model indicates the volatility and rate information of the data requested by the target user. It then obtains the service envelope model corresponding to the storage resource pool. The service envelope indicates the bandwidth information of the first and second storage media. Based on the arrival envelope model, the service envelope model, and the read request response latency threshold, it determines the capacity of the first storage media allocated to the target user.
[0009] In the technical solution provided in this application, for multiple read requests sent by a user, an arrival envelope model corresponding to each read request is generated. This arrival envelope model reflects the volatility and rate information of the data requested by the user. Furthermore, a service envelope model of the storage resource pool is obtained. This service envelope model reflects the bandwidth information of the first storage medium and the second storage medium in the storage resource pool, i.e., it reflects the data reading capability provided by the storage resource pool. Then, by combining the arrival envelope model, the service envelope model, and an agreed-upon read request response latency threshold, the capacity of the first storage medium allocated to the user is determined. It is evident that this method considers the actual data reading situation of the user and combines it with the data reading capability provided by the storage resource pool to jointly determine the storage resources allocated to the user, thus ensuring that the allocated storage resources better meet the user's actual needs.
[0010] In one possible implementation, the arrival envelope model for the target user is determined based on the request time and the amount of data read for each read request, including:
[0011] Based on the request time point corresponding to each read request, the request time interval between two adjacent read requests is determined. Based on the request time interval and the amount of data read, the target arrival process type corresponding to the read request sent by the target user is determined. In the correspondence between arrival process types and arrival envelope model templates, the arrival envelope model template corresponding to the target arrival process type is determined, where each arrival envelope model template includes parameters to be estimated. Based on the request time interval and the amount of data read, the values of the parameters to be estimated in the arrival envelope model template corresponding to the target arrival process type are calculated to obtain the arrival envelope model corresponding to the read request sent by the target user.
[0012] In the technical solution provided in this application, various arrival envelope model templates for different arrival processes can be pre-stored, and the arrival envelope model templates include parameters to be estimated. After obtaining the request time interval between two adjacent read requests, nonparametric estimation is performed on the amount of data read by the read request sent by the target user and the request time interval between two adjacent read requests to determine the target arrival process type corresponding to the read request sent by the target user. Specifically, the nonparametric estimation can be the Kolmogorov-Smirnov (KS) test, the Chi-Square Test, etc. Then, the arrival envelope model template corresponding to the target arrival process type is obtained. Furthermore, based on the amount of data read by the read request sent by the target user received within the optimization period and the request time interval between two adjacent read requests, the values of the parameters to be estimated in the arrival envelope model template are obtained through parameter estimation, thus obtaining the arrival envelope model corresponding to the read request sent by the target user.
[0013] The aforementioned arrival process types can include Poisson arrival process, compound Poisson arrival process, continuous Markov arrival process, first-order autoregressive arrival process, and so on.
[0014] In one possible implementation, determining the capacity of the first storage medium allocated to the target user based on the arrival envelope model, the service envelope model, and the read response latency threshold includes:
[0015] Based on the arrival envelope model and the service envelope model, multiple upper bounds for read response latency corresponding to different hit rates are calculated, where the hit rate indicates the probability that the data requested by the read request is stored in the first storage medium. Based on the upper bounds for read response latency corresponding to the multiple different hit rates, a correspondence between the hit rate and the upper bounds for read response latency is determined. Within this correspondence, a target hit rate corresponding to a read response latency threshold is determined. Finally, within the correspondence between the hit rate and the capacity of the first storage medium allocated to the user, the capacity corresponding to the target hit rate is determined, which is then used as the capacity of the first storage medium allocated to the target user.
[0016] The technical solution provided in this application takes into account the actual data reading situation of the user, and combines the data reading capacity that the storage resource pool can provide with the read request response latency threshold required by the user to jointly determine the storage resources allocated to the user. The storage resources allocated in this way will better meet the actual needs of the user.
[0017] In one possible implementation, based on the arrival envelope model and the service envelope model, multiple upper bounds for read response latency corresponding to different hit rates are calculated, including:
[0018] Based on the arrival envelope model, service envelope model, and MGF-SNC algorithm, the upper bound of read response latency corresponding to several different hit rates is calculated.
[0019] In the technical solution provided in this application, the upper bound of the read response delay is calculated by combining the MGF-SNC algorithm in random network calculus.
[0020] In one possible implementation, the correspondence between the hit rate and the upper bound of the read response latency is determined based on multiple different upper bounds of the read response latency, including:
[0021] Polynomial fitting was performed on the upper bounds of read response delay corresponding to multiple different hit rates to obtain the corresponding relationship between the hit rate and the upper bound of read response delay.
[0022] Accordingly, in the correspondence between hit rate and upper bound of read response latency, determining the target hit rate corresponding to the read response latency threshold includes:
[0023] Substituting the read response latency threshold into the corresponding formula, we obtain the target hit rate corresponding to the read response latency threshold.
[0024] In one possible implementation, the service envelope model is used to indicate the bandwidth information for reading data from a single channel of the first storage medium, and the bandwidth information for reading data from a single channel of the second storage medium.
[0025] In the technical solution provided in this application, the storage media in the storage resource pool are divided into channels. Accordingly, when calculating the upper limit of response latency, it can also be calculated based on the service envelope model after channel division, which can more accurately predict the capacity of the first storage resource allocated to the target user.
[0026] In one possible implementation, the method also includes:
[0027] From the target user's data stored in the storage resource pool, the data with the highest frequency is identified, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user. The target data volume is stored in the first storage medium, and the remaining data is stored in the second storage medium.
[0028] In the technical solution provided in this application, popularity refers to the number of times data is accessed within a specified period of time. The higher the number of accesses, the higher the popularity; conversely, the fewer the number of accesses, the lower the popularity. Data with high popularity can be called hot data, and data with low popularity can be called lukewarm data.
[0029] Secondly, a storage resource allocation device is provided, the device comprising:
[0030] The receiving module is used to receive multiple read requests sent by the target user;
[0031] The feature extraction module is used to determine the arrival envelope model corresponding to the read request sent by the target user based on the request time point and the amount of data read for each read request, wherein the arrival envelope model is used to indicate the volatility and rate information of the data requested by the target user; and to obtain the service envelope model corresponding to the storage resource pool, wherein the service envelope is used to indicate the bandwidth information of the first storage medium and the bandwidth information of the second storage medium.
[0032] The resource allocation module is used to determine the capacity of the first storage medium allocated to the target user based on the arrival envelope model, the service envelope model, and the read request response latency threshold.
[0033] In one possible implementation, the feature extraction module is used to:
[0034] Based on the request time point corresponding to each read request, determine the request time interval between two adjacent read requests;
[0035] Based on the request time interval and the amount of data read, determine the target arrival process type corresponding to the read request sent by the target user;
[0036] In the correspondence between arrival process type and arrival envelope model template, the arrival envelope model template corresponding to the target arrival process type is determined, wherein each arrival envelope model template includes parameters to be estimated;
[0037] Based on the request time interval and the amount of data read, the values of the parameters to be estimated in the arrival envelope model template corresponding to the target arrival process type are calculated to obtain the arrival envelope model corresponding to the read request sent by the target user.
[0038] In one possible implementation, the feature extraction module is used to:
[0039] Based on the arrival envelope model and the service envelope model, multiple different hit rates are calculated to correspond to upper bounds of read response latency, wherein the hit rate is used to indicate the probability that the data requested by the read request is stored in the first storage medium;
[0040] Based on multiple different upper bounds of read response latency corresponding to different hit rates, the correspondence between hit rate and upper bound of read response latency is determined;
[0041] Based on the correspondence between hit rate and upper bound of read response latency, determine the target hit rate corresponding to the read response latency threshold;
[0042] Based on the correspondence between the hit rate and the capacity of the first storage medium allocated to the user, the capacity corresponding to the target hit rate is determined as the capacity of the first storage medium allocated to the target user.
[0043] In one possible implementation, the feature extraction module is used to:
[0044] Based on the arrival envelope model, the service envelope model, and the MGF-SNC algorithm based on moment generation function, the upper bound of read response latency corresponding to multiple different hit rates is calculated.
[0045] In one possible implementation, the feature extraction module is used to:
[0046] Polynomial fitting was performed on the upper bounds of read response delay corresponding to multiple different hit rates to obtain the corresponding relationship between the hit rate and the upper bound of read response delay;
[0047] In the correspondence between hit rate and upper bound of read response latency, determining the target hit rate corresponding to the read response latency threshold includes:
[0048] Substituting the read response latency threshold into the corresponding formula yields the target hit rate corresponding to the read response latency threshold.
[0049] In one possible implementation, the service envelope is used to indicate bandwidth information for reading data from a single channel of the first storage medium, and bandwidth information for reading data from a single channel of the second storage medium.
[0050] In one possible implementation, the resource allocation module is further configured to:
[0051] Among the target user's data stored in the storage resource pool, the data with the highest popularity is identified, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user;
[0052] The target data volume is stored in the first storage medium, and the remaining data is stored in the second storage medium.
[0053] Thirdly, a computing device cluster is provided, including at least one computing device, each computing device including a processor and memory;
[0054] The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the cluster of computing devices performs the storage resource allocation method as described in the first aspect above.
[0055] Fourthly, a computer-readable storage medium is provided, including computer program instructions that, when executed by a cluster of computing devices, execute the storage resource allocation method described in the first aspect above.
[0056] Fifthly, a computer program product containing instructions is provided, which, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the storage resource allocation method described in the first aspect above.
[0057] In a sixth aspect, a computer program product containing instructions is provided, which, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the storage resource allocation method described in the first aspect above. Attached Figure Description
[0058] Figure 1 is a schematic diagram of an implementation scenario provided by an embodiment of this application;
[0059] Figure 2 is a flowchart of a storage resource allocation method provided in an embodiment of this application;
[0060] Figure 3 is a flowchart of a storage resource allocation method provided in an embodiment of this application;
[0061] Figure 4 is a schematic diagram of a storage medium cascade provided in an embodiment of this application;
[0062] Figure 5 is a schematic diagram of a storage resource allocation device provided in an embodiment of this application;
[0063] Figure 6 is a schematic diagram of a computing device provided in an embodiment of this application;
[0064] Figure 7 is a schematic diagram of a computing device cluster provided in an embodiment of this application;
[0065] Figure 8 is a schematic diagram of a computing device cluster provided in an embodiment of this application. Detailed Implementation
[0066] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0067] This application provides a method for allocating storage resources. This method can be applied to a storage system, which can be a distributed storage system, a cloud storage system, a local storage system, etc. The storage system can include a storage resource pool and a storage resource pool management device.
[0068] The storage resource pool includes various types of storage media, such as a first storage medium and a second storage medium. The read response latency of the first storage medium is lower than that of the second storage medium. Read response latency refers to the time taken for the storage medium to complete the execution of a read instruction (reading the corresponding data). The specific types of the first and second storage media can be configured according to actual needs. This application embodiment does not limit this. As an example, the first storage medium can be a solid-state drive (SSD) or other storage medium with low read response latency but high cost, while the second storage medium can be a hard disk drive (HDD) or magnetic tape or other storage medium with high read response latency but low cost. The storage resource pool management device is used to manage the storage resource pool.
[0069] Referring to Figure 1, an implementation scenario of this application is illustrated. As shown in Figure 1, this implementation scenario may include a user device, a network device, and a storage system. The user device can be a terminal device such as a desktop computer, laptop computer, or smartphone, and the user can read or write data to the storage system through the user device. The network device can be a switch, router, etc., and is used to forward various data requests sent by the user device to the storage system and forward the data returned by the storage system to the user device. In some examples, the user device can communicate directly with the storage system, in which case there is no need to deploy a network device. Figure 1 is only one example, and this application does not limit whether a network device is deployed.
[0070] Storage systems can be provided by service providers. When users need storage resources, they can lease these resources from the service provider and sign a Service Level Agreement (SLA). The SLA specifies a guarantee probability and a read request response latency threshold. Specifically, under the agreed guarantee probability, the user's read request response latency must be less than the threshold. Read request response latency refers to the time interval between the moment the user device sends a read request and the moment the user device receives the data read from that request. The service provider can allocate storage resources to the user from the storage resource pool. Since the storage resource pool includes both primary and secondary storage media, the service provider needs to consider how much primary storage media to allocate to the user to meet the read request response latency threshold specified in the SLA. Currently, to meet the read request response latency threshold in the SLA, the service provider predicts how much primary storage media to allocate to the user based on the threshold and a neural network model. However, allocating storage resources solely based on read request response latency thresholds, without considering the actual data reads by users, may lead to unreasonable allocation of storage resources and waste of storage resources.
[0071] This application provides a method for allocating storage resources. Referring to Figure 2, this method generates an arrival envelope model corresponding to each read request sent by a user in real time, based on multiple read requests. The arrival envelope model indicates the volatility and rate information of the data requested by the user. Additionally, a service envelope model corresponding to the storage resource pool can be obtained. The service envelope indicates the bandwidth information of the first storage medium and the second storage medium in the storage resource pool. Then, based on the arrival envelope model, the service envelope model, and the read request response latency threshold, the capacity of the first storage medium allocated to the user is determined. It is evident that this method considers the user's actual data reading situation and the service provided by the storage resource pool to jointly determine the storage resources allocated to the user, thus ensuring that the allocated storage resources better meet the user's actual needs.
[0072] The method for allocating storage resources according to embodiments of this application will now be described with reference to the accompanying drawings. This method can be implemented by a computing device, which can be the aforementioned storage resource pool management device, or it can be both a network device and a storage resource pool management device. The method will first be described using the storage resource pool management device as an example.
[0073] Referring to Figure 3, the processing flow of this method may include the following steps:
[0074] Step 201: Receive multiple read requests sent by the target user.
[0075] The target user can be any user.
[0076] In practice, when a target user needs to read data from the storage system, they can send a read request to the computing device. The read request can carry the amount of data to be read, which indicates the size of the data to be read in the read request.
[0077] After receiving a read request, the computing device can execute the read request, read the corresponding data from the storage resource pool, and return it to the target user.
[0078] The computing device can also periodically optimize the allocation of storage resources to a target user based on read requests sent by that user. Specifically, the computing device can be configured with an optimization period. At the end of each optimization period, the computing device acquires the read requests received from the target user during that optimization period and executes step 202 as follows. The optimization period can be configured according to actual needs. This application embodiment does not limit the specific value of the optimization period. As an example, the optimization period can be 12 hours, 24 hours, 36 hours, etc.
[0079] Step 202: Based on the request time point and the amount of data read for each read request, determine the arrival envelope model corresponding to the read request sent by the target user.
[0080] In this context, the request time point corresponding to a read request can be either the time the read request was sent or the time the computing device received the read request. If the request time point is the time the read request was sent, then the read request can carry that sending time point. If the request time point is the time the read request was received, then the computing device can record the current time point when it receives the read request, and use it as the receiving time point for that read request. The arrival envelope model can be denoted as (σ... A (θ),ρ A (θ)), σ A (θ) is used to indicate the volatility of the data requested by the target user, ρ A(θ) is used to indicate the rate at which the target user requests to read data.
[0081] In implementation, at the end of each optimization cycle, the computing device can perform feature extraction on the read requests sent by the target user received during that optimization cycle. Specifically, the feature extraction process can be as follows:
[0082] For two consecutive read requests sent by the target user, calculate the request time interval between these two read requests. If the request time point is the same as the sending time point, the process for calculating the request time interval between these two read requests can be: calculate the time interval between the sending times of these two read requests, and use this as the request time interval; if the request time point is the same as the receiving time point, the process for calculating the request time interval between these two read requests can be: calculate the time interval between the receiving times of these two read requests, and use this as the request time interval.
[0083] Then, based on the amount of data read for each read request sent by the target user within the optimization period, and the request time interval between any two adjacent read requests, the computing device determines the arrival envelope model corresponding to the read requests sent by the target user. There are several methods for determining the arrival envelope; two examples are provided below:
[0084] Method 1 for determining the arrival envelope:
[0085] It can pre-store various arrival envelope model templates with different arrival processes, and the arrival envelope model templates include the parameters to be estimated.
[0086] At the end of each optimization cycle, nonparametric estimations are performed on the amount of data read from read requests received from the target user during that cycle, as well as the time interval between two adjacent read requests, to determine the target arrival process type corresponding to the read requests sent by the target user. Specifically, nonparametric estimations can include the Kolmogorov-Smirnov (KS) test, the Chi-Square test, etc.
[0087] Then, the arrival envelope model template corresponding to the target arrival process type is obtained. Furthermore, based on the amount of data read from the read requests sent by the target user within the optimization period and the request time interval between two adjacent read requests, parameter estimation is performed to obtain the values of the parameters to be estimated in the arrival envelope model template, thus obtaining the arrival envelope model corresponding to the read requests sent by the target user.
[0088] The following are examples of arrival envelope model templates for several arrival process types:
[0089] 1. Poisson arrival process σ A(θ)=0
[0090] Where λ and ν are the parameters to be estimated.
[0091] λ: The request time interval of the read requests sent by the target user follows an exponential distribution with parameter λ. The parameter is estimated for the request time interval of the read requests sent by the target user to obtain the value of λ.
[0092] v: This represents the average amount of data read corresponding to all read requests received from the target user within the optimization period. In other words, it's the sum of the amounts of data read corresponding to all read requests received from the target user within the optimization period, divided by the number of read requests.
[0093] 2. The arrival process of the compound Poisson equation σ A (θ)=0
[0094] Where λ and ν are the parameters to be estimated.
[0095] λ: The request time interval of the read requests sent by the target user follows an exponential distribution with parameter λ. The parameter is estimated for the request time interval of the read requests sent by the target user to obtain the value of λ.
[0096] v: The amount of data to be read corresponding to the read request sent by the target user follows the parameter. The exponential distribution is used to estimate the parameters of the data volume corresponding to the read request sent by the target user, and thus obtain... The value of .
[0097] 3. Continuous Markov arrival process
[0098] Where r, λ, and μ are the parameters to be estimated.
[0099] r: The sending rate (or receiving rate) of read requests sent by the target user. The value of r can be obtained by performing maximum likelihood estimation on the request time interval of read requests sent by the target user.
[0100] μ: Assume the target user sends read requests in two states: state 1 and state 2. In state 1, the target user does not send read requests, meaning no read requests arrive or are not received. In state 2, the target user sends read requests at a rate of r. An optimization cycle is divided into multiple state statistical time periods. Within each statistical time period, the target user's read request state is determined to be either state 1 or state 2. At the end of an optimization cycle, the first number of transitions from state 1 to state 2 and the second number of transitions from state 2 to state 1 within that cycle are counted. The sum of the first and second counts is used as the third count. Dividing the first count by the third count yields μ, where μ represents the probability of transitioning from state 1 to state 2.
[0101] λ: Assume the target user sends read requests in two states: state 1 and state 2. In state 1, the target user does not send read requests, meaning no read requests arrive or are not received. In state 2, the target user sends read requests at a rate of r. An optimization cycle is divided into multiple state statistical time periods. Within each state statistical time period, the target user's read request state is determined as either state 1 or state 2. At the end of an optimization cycle, the first number of transitions from state 1 to state 2 and the second number of transitions from state 2 to state 1 within that cycle are counted. The sum of the first and second counts is used as the third count. Dividing the second count by the third count yields λ, where λ represents the probability of transitioning from state 2 to state 1.
[0102] 4. First-order autoregressive arrival process
[0103] in, μ and σ 2 These are the parameters to be estimated.
[0104] This indicates the degree of dependency between two adjacent request time intervals. It allows for maximum likelihood estimation of the request time intervals of read requests sent by the target user. The value of .
[0105] μ and σ 2 The first-order autoregressive arrival process can be represented as: Where a(t) = A(t-1,t), A(t-1,t) represents the amount of data requested by the target user in the read request from time t-1 to time t, ∈(t) represents noise, ∈(t) follows a normal distribution, μ represents the noise mean, and σ 2 This represents the noise variance. In estimating... After taking the values of a(t) and a(t-1), multiple sets of a(t) and a(t-1) are taken. For each set of a(t) and a(t-1), a value of ∈(t) can be calculated. In this way, multiple values of ∈(t) can be obtained. Then, a normal distribution is fitted to the multiple values of ∈(t) to obtain μ and σ. 2 The value of .
[0106] It is worth noting that the arrival envelope models of the above arrival processes are only examples. For all existing or future arrival processes, their arrival envelope templates can be pre-made and stored.
[0107] Method 2 for determining the arrival envelope:
[0108] The arrival envelope model corresponding to the read requests sent by the target user is obtained by directly estimating the data volume of read requests received from the target user within the optimization period and the request time interval between two adjacent read requests. Specifically, a Markov arrival process (MAP) can be used to extract features from the request time interval between two adjacent read requests to obtain the transition probability matrix, and a Hidden Markov Autoregressive model can be used to extract features from the data volume of read requests sent by the target user to obtain the data volume features. Furthermore, based on the transition probability matrix, the data volume features, and the asymptotically effective bandwidth theorem, the arrival envelope model corresponding to the read requests sent by the target user is obtained.
[0109] Step 203: Obtain the service envelope model corresponding to the storage resource pool.
[0110] The service envelope model corresponding to the storage resource pool can include a first service envelope model and a second service envelope model. The first service envelope model can be denoted as... Used to indicate the bandwidth fluctuation of the first storage medium. The second service envelope model, used to indicate the bandwidth of a single channel of the first storage medium, can be denoted as... Used to indicate the bandwidth fluctuation of the second storage medium. Used to indicate the bandwidth of a single channel of the second storage medium.
[0111] In one possible implementation, the above and It can take the value 0. The calculation can be performed as follows:
[0112] Where C1 is the total bandwidth of the first storage medium in the storage resource pool, C2 is the total bandwidth of the second storage medium in the storage resource pool, and k can be calculated based on the total number of channels k1 of the first storage medium and the total number of channels k2 of the second storage medium in the storage resource pool. Specifically, k is a common multiple of the total number of channels k1 of the first storage medium and the total number of channels k2 of the second storage medium, where the common multiple can be the least common multiple.
[0113] The following explains the processing of step 203:
[0114] Since the storage media in the storage resource pool is usually fixed, the service envelope model corresponding to the storage resource pool can be pre-calculated. When performing step 203, it is only necessary to read the service envelope model corresponding to the storage resource pool from the storage space of the service envelope model corresponding to the storage resource pool.
[0115] In one possible implementation, as shown in Figure 4, the first and second storage media in the storage resource pool can be deployed in a cascaded manner. That is, for a read request, if the data to be read by the read request is stored in the first storage media, the corresponding data is directly read from the first storage media and returned to the user. If the data to be read by the read request is not stored in the first storage media, the corresponding data is read from the second storage media, the read data is stored in the first storage media, and then the data is returned to the user.
[0116] Step 204: Based on the arrival envelope model, service envelope model, and read request response latency threshold, determine the capacity of the first storage medium allocated to the target user.
[0117] In implementation, based on the arrival envelope model obtained in step 202, the first arrival envelope model corresponding to the hot request sent by the target user and the second arrival envelope model corresponding to the warm / cold request can be further calculated. Here, a hot request refers to a read request for data stored in the first storage medium, and a warm / cold request refers to a read request for data stored in the second storage medium.
[0118] The first arrival envelope model can be denoted as... The second arrival envelope model can be denoted as... and The calculation formula is as follows:
[0119] Where r represents the probability that a read request hits the first storage medium, that is, the probability that the data requested by the read request is stored in the first storage medium, and r is a variable.
[0120] Based on the service envelope model obtained in step 203, the estimated service envelope can be further calculated. The estimated service envelope can be denoted as (σ). S (θ),ρ S (θ)), below is (σ) S (θ),ρ S The calculation of (θ) is achieved through the following formula:
[0121] Based on the Moment Generating Function-Stochastic Network Calculus (MGF-SNC) and the aforementioned first arrival envelope, second arrival envelope, and estimated service envelope, the formula for calculating the upper bound d of the read response delay is obtained. The calculation formula can be as follows: θ>0 (14)
[0122] Where ∈ is the violation probability, which is calculated based on the guarantee probability agreed in the SLA. For example, ∈ = 1 - 0.99, where 0.99 is the guarantee probability, and θ and p are the parameters to be optimized.
[0123] Multiple different hit rates are selected. For each selected hit rate, the hit rate is substituted into the above formula (11), and the values of θ and p are adjusted using a grid search algorithm to obtain the upper bound of the read response latency corresponding to that hit rate. In this way, the upper bound of the read response latency corresponding to each hit rate can be obtained.
[0124] Then, a polynomial fit is performed on the multiple different hit rates and the upper bound of the read response latency corresponding to each hit rate to obtain the correspondence between the hit rate and the upper bound of the read response latency. Next, the read response latency threshold is substituted into the above correspondence to obtain the corresponding target hit rate.
[0125] Furthermore, the correspondence between the hit rate and the capacity of the first storage medium allocated to the user can be pre-stored, as shown in formula (15) below. After obtaining the target hit rate, the value of r in formula (15) is taken as the target hit rate, and the value of s is obtained, which is the capacity of the first storage medium allocated to the target user. The correspondence between the hit rate and the capacity of the first storage medium allocated to the user can be shown in the following formula:
[0126] Where r is the hit rate and s is the capacity of the first storage medium allocated to the user.
[0127] In one possible implementation, after determining the capacity of the first storage medium allocated to the target user, the most frequently accessed data volume can be identified from the target user's data stored in the storage resource pool, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user. Then, the aforementioned target data volume is stored in the first storage medium, and the remaining data is stored in a second storage medium. Alternatively, the aforementioned target data volume can be stored in the first storage medium, and the entire target user data can be stored in the second storage medium as a backup.
[0128] In one possible implementation, in the scenario shown in Figure 1, steps 201 and 202 can be executed by the network device, which then sends the determined arrival envelope model to the storage resource pool management device, which then continues to execute steps 203 and 204.
[0129] Based on the same technical concept, this application embodiment also provides a storage resource allocation device. Referring to FIG5, the device may include a receiving module 610, a feature extraction module 620, and a resource allocation module 630, wherein:
[0130] The receiving module 610 is used to receive multiple read requests sent by the target user; specifically, this module can implement the processing in step 201 and its implicit steps mentioned above.
[0131] The feature extraction module 620 is used to determine the arrival envelope model corresponding to the read request sent by the target user based on the request time point and the amount of data read for each read request, wherein the arrival envelope model is used to indicate the volatility and rate information of the data requested by the target user; and to obtain the service envelope model corresponding to the storage resource pool, wherein the service envelope is used to indicate the bandwidth information of the first storage medium and the bandwidth information of the second storage medium; specifically, this module can implement the processing in steps 202, 203 and their implicit steps.
[0132] Resource allocation module 630 is used to determine the capacity of the first storage medium allocated to the target user based on the arrival envelope model, the service envelope model, and the read request response latency threshold. Specifically, this module can implement the processing in step 204 and its implicit steps described above.
[0133] In one possible implementation, the feature extraction module is used to:
[0134] Based on the request time point corresponding to each read request, determine the request time interval between two adjacent read requests;
[0135] Based on the request time interval and the amount of data read, determine the target arrival process type corresponding to the read request sent by the target user;
[0136] In the correspondence between arrival process type and arrival envelope model template, the arrival envelope model template corresponding to the target arrival process type is determined, wherein each arrival envelope model template includes parameters to be estimated;
[0137] Based on the request time interval and the amount of data read, the values of the parameters to be estimated in the arrival envelope model template corresponding to the target arrival process type are calculated to obtain the arrival envelope model corresponding to the read request sent by the target user.
[0138] In one possible implementation, the feature extraction module is used to:
[0139] Based on the arrival envelope model and the service envelope model, multiple different hit rates are calculated to correspond to upper bounds of read response latency, wherein the hit rate is used to indicate the probability that the data requested by the read request is stored in the first storage medium;
[0140] Based on multiple different upper bounds of read response latency corresponding to different hit rates, the correspondence between hit rate and upper bound of read response latency is determined;
[0141] Based on the correspondence between hit rate and upper bound of read response latency, determine the target hit rate corresponding to the read response latency threshold;
[0142] Based on the correspondence between the hit rate and the capacity of the first storage medium allocated to the user, the capacity corresponding to the target hit rate is determined as the capacity of the first storage medium allocated to the target user.
[0143] In one possible implementation, the feature extraction module is used to:
[0144] Based on the arrival envelope model, the service envelope model, and the MGF-SNC algorithm based on moment generation function, the upper bound of read response latency corresponding to multiple different hit rates is calculated.
[0145] In one possible implementation, the feature extraction module is used to:
[0146] Polynomial fitting was performed on the upper bounds of read response delay corresponding to multiple different hit rates to obtain the corresponding relationship between the hit rate and the upper bound of read response delay;
[0147] In the correspondence between hit rate and upper bound of read response latency, determining the target hit rate corresponding to the read response latency threshold includes:
[0148] Substituting the read response latency threshold into the corresponding formula yields the target hit rate corresponding to the read response latency threshold.
[0149] In one possible implementation, the service envelope is used to indicate bandwidth information for reading data from a single channel of the first storage medium, and bandwidth information for reading data from a single channel of the second storage medium.
[0150] In one possible implementation, the resource allocation module is further configured to:
[0151] Among the target user's data stored in the storage resource pool, the data with the highest popularity is identified, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user;
[0152] The target data volume is stored in the first storage medium, and the remaining data is stored in the second storage medium.
[0153] In the technical solution provided in this application embodiment, based on multiple read requests sent by the user, an arrival envelope model corresponding to each read request is generated in real time. The arrival envelope model indicates the volatility and rate information of the data requested by the user. Furthermore, a service envelope model corresponding to the storage resource pool can be obtained. The service envelope indicates the bandwidth information of the first storage medium and the second storage medium in the storage resource pool. Then, based on the arrival envelope model, the service envelope model, and the read request response latency threshold, the capacity of the first storage medium allocated to the user is jointly determined. It is evident that this method considers the actual data read situation of the user and combines it with the service provided by the storage resource pool to jointly determine the storage resources allocated to the user, thus ensuring that the allocated storage resources better meet the user's actual needs.
[0154] It should be noted that the storage resource allocation device provided in the above embodiments is only illustrated by the division of the above functional modules when allocating storage resources. In practical applications, the above functional allocation can be completed by different functional modules as needed, that is, the internal structure of the computing device can be divided into different functional modules to complete all or part of the functions described above. In addition, the storage resource allocation device and the storage resource allocation method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.
[0155] The receiving module 610, feature extraction module 620, and resource allocation module 630 can all be implemented in software or in hardware. For example, the implementation of feature extraction module 620 will be described below. Similarly, the implementation of receiving module 610 and resource allocation module 630 can refer to the implementation of feature extraction module 620.
[0156] As an example of a software functional unit, the feature extraction module 620 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, or a container. Further, the aforementioned computing instance may be one or more. For example, the feature extraction module 620 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.
[0157] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.
[0158] As an example of a hardware functional unit, the hinge module 640 may include at least one computing device, such as a server. Alternatively, the feature extraction module 620 may be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.
[0159] The feature extraction module 620 includes multiple computing devices that can be distributed in the same region or in different regions. Similarly, the feature extraction module 620 includes multiple computing devices that can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the hinge module 640 includes multiple computing devices that can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0160] This application also provides a computing device 700, which can be used as the aforementioned server or terminal. As shown in FIG6, the computing device 700 includes: a bus 702, a processor 704, a memory 706, and a communication interface 708. The processor 704, the memory 706, and the communication interface 708 communicate with each other via the bus 702. The computing device 700 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 700.
[0161] Bus 702 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 7, but this does not imply that there is only one bus or one type of bus. Bus 704 can include pathways for transmitting information between various components of computing device 700 (e.g., memory 706, processor 704, communication interface 708).
[0162] Processor 704 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0163] Memory 706 may include volatile memory, such as random access memory (RAM). Memory 706 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
[0164] The memory 706 stores executable program code, and the processor 704 executes this executable program code to implement the functions of the aforementioned receiving module 610, feature extraction module 620, and resource allocation module 630, thereby realizing the storage resource allocation method. That is, the memory 706 stores instructions for executing the storage resource allocation method.
[0165] Alternatively, the memory 706 stores executable code, and the processor 704 executes the executable code to implement the functions of the aforementioned storage resource allocation device, thereby implementing the storage resource allocation method. That is, the memory 706 stores instructions for executing the storage resource allocation method.
[0166] The communication interface 708 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 700 and other devices or communication networks.
[0167] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
[0168] As shown in Figure 7, the computing device cluster includes at least one computing device 700. The memory 706 in one or more computing devices 700 in the computing device cluster may store the same instructions for executing the allocation method of storage resources.
[0169] In some possible implementations, the memory 706 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing a storage resource allocation method. In other words, a combination of one or more computing devices 700 can jointly execute instructions for the storage resource allocation method.
[0170] It should be noted that the memory 706 in different computing devices 700 within the computing device cluster can store different instructions, each used for storing resource allocation functions. That is, the instructions stored in the memory 706 of different computing devices 700 can receive functions from one or more modules of the receiving module 610, feature extraction module 620, and resource allocation module 630.
[0171] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 8 illustrates one possible implementation. As shown in Figure 8, two computing devices 700A and 700B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this type of possible implementation, the memory 706 in computing device 700A stores instructions for performing the functions of the receiving module 610 and the resource allocation module 630. Simultaneously, the memory 706 in computing device 700B stores instructions for performing the functions of the feature extraction module 620.
[0172] The connection method between the computing device clusters shown in Figure 8 can be considered as taking into account that feature extraction requires a lot of computing resources, so the function of the feature extraction module 620 is to be performed by the computing device 700B.
[0173] It should be understood that the functions of computing device 700A shown in Figure 8 can also be performed by multiple computing devices 700. Similarly, the functions of computing device 700B can also be performed by multiple computing devices 700.
[0174] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items that have essentially the same function. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another.
[0175] It should also be understood that, in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0176] In this application, the term "at least one" means one or more, and the term "multiple" means two or more. For example, multiple second devices means two or more second devices. The terms "system" and "network" are often used interchangeably herein.
[0177] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0178] It should also be understood that the term "and / or" as used herein refers to and covers any and all possible combinations of one or more of the associated listed items. The term "and / or" describes an association between related objects, indicating that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this application generally indicates that the preceding and following related objects are in an "or" relationship.
[0179] It should also be understood that the terms “if” and “if” can be interpreted as meaning “when” or “upon”, or “in response to determination” or “in response to detection”. Similarly, depending on the context, the phrases “if determination…” or “if detection [the stated condition or event]” can be interpreted as meaning “when determination…”, or “in response to determination…”, or “when detection [the stated condition or event]” or “in response to detection [the stated condition or event]”.
[0180] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.
[0181] All information, data, and signals involved in this application are authorized by the user or by all parties, and the collection, use, and processing of such data must comply with the relevant laws, regulations, and standards of the relevant countries and regions.
[0182] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a storage resource allocation method.
[0183] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform a storage resource allocation method.
[0184] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.
[0185] All information, data, and signals involved in this application are authorized by the user or by all parties, and the collection, use, and processing of such data must comply with the relevant laws, regulations, and standards of the relevant countries and regions.
Claims
1. A method for allocating storage resources, characterized in that, The storage resources belong to a storage resource pool, and the storage resources include a first storage medium and a second storage medium. The read response latency of the first storage medium is less than the read response latency of the second storage medium. The method includes: Receive multiple read requests sent by the target user; Based on the request time point and the amount of data read for each read request, the arrival envelope model corresponding to the read request sent by the target user is determined, wherein the arrival envelope model is used to indicate the volatility and rate information of the data requested by the target user to read. Obtain the service envelope model corresponding to the storage resource pool, wherein the service envelope is used to indicate the bandwidth information of the first storage medium and the bandwidth information of the second storage medium; Based on the arrival envelope model, the service envelope model, and the read request response latency threshold, the capacity of the first storage medium allocated to the target user is determined.
2. The method according to claim 1, characterized in that, The step of determining the arrival envelope model corresponding to the read request sent by the target user based on the request time point and the amount of data read for each read request includes: Based on the request time point corresponding to each read request, determine the request time interval between two adjacent read requests; Based on the request time interval and the amount of data read, determine the target arrival process type corresponding to the read request sent by the target user; In the correspondence between arrival process type and arrival envelope model template, the arrival envelope model template corresponding to the target arrival process type is determined, wherein each arrival envelope model template includes parameters to be estimated; Based on the request time interval and the amount of data read, the values of the parameters to be estimated in the arrival envelope model template corresponding to the target arrival process type are calculated to obtain the arrival envelope model corresponding to the read request sent by the target user.
3. The method according to claim 1 or 2, characterized in that, The step of determining the capacity of the first storage medium allocated to the target user based on the arrival envelope model, the service envelope model, and the read request response latency threshold includes: Based on the arrival envelope model and the service envelope model, the upper bound of the read response latency corresponding to multiple different values of the hit rate is calculated, wherein the hit rate is used to indicate the probability that the data requested by the read request is stored in the first storage medium; Based on the upper bound of read response latency corresponding to multiple different values of the hit rate, the correspondence between the hit rate and the upper bound of read response latency is determined. Based on the correspondence between hit rate and upper bound of read response latency, determine the target hit rate corresponding to the read response latency threshold; Based on the correspondence between the hit rate and the capacity of the first storage medium allocated to the user, the capacity corresponding to the target hit rate is determined as the capacity of the first storage medium allocated to the target user.
4. The method according to claim 3, characterized in that, The calculation of upper bounds for read response latency corresponding to multiple different values of the hit rate based on the arrival envelope model and the service envelope model includes: Based on the arrival envelope model, the service envelope model, and the MGF-SNC algorithm based on moment generation function, the upper bound of read response latency corresponding to multiple different values of the hit rate is calculated.
5. The method according to claim 3 or 4, characterized in that, The upper bound of read response latency corresponding to multiple different values of the hit rate is used to determine the correspondence between the hit rate and the upper bound of the read response latency, including: Polynomial fitting was performed on multiple different values of the hit rate and their corresponding upper bounds of the read response delay to obtain the corresponding relationship between the hit rate and the upper bound of the read response delay. In the correspondence between hit rate and upper bound of read response latency, determining the target hit rate corresponding to the read response latency threshold includes: Substituting the read response latency threshold into the corresponding formula yields the target hit rate corresponding to the read response latency threshold.
6. The method according to any one of claims 1-5, characterized in that, The service envelope model is used to indicate the bandwidth information for reading data from a single channel of the first storage medium, and the bandwidth information for reading data from a single channel of the second storage medium.
7. The method according to any one of claims 1-6, characterized in that, The method further includes: Among the target user's data stored in the storage resource pool, the data with the highest popularity is identified, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user; The target data volume is stored in the first storage medium, and the remaining data is stored in the second storage medium.
8. A storage resource allocation device, characterized in that, The storage resources belong to a storage resource pool, and the storage resources include a first storage medium and a second storage medium. The read response latency of the first storage medium is less than the read response latency of the second storage medium. The device includes: The receiving module is used to receive multiple read requests sent by the target user; The feature extraction module is used to determine the arrival envelope model corresponding to the read request sent by the target user based on the request time point and the amount of data read for each read request, wherein the arrival envelope model is used to indicate the volatility and rate information of the data requested by the target user; and to obtain the service envelope model corresponding to the storage resource pool, wherein the service envelope is used to indicate the bandwidth information of the first storage medium and the bandwidth information of the second storage medium. The resource allocation module is used to determine the capacity of the first storage medium allocated to the target user based on the arrival envelope model, the service envelope model, and the read request response latency threshold.
9. The apparatus according to claim 8, characterized in that, The feature extraction module is used for: Based on the request time point corresponding to each read request, determine the request time interval between two adjacent read requests; Based on the request time interval and the amount of data read, determine the target arrival process type corresponding to the read request sent by the target user; In the correspondence between arrival process type and arrival envelope model template, the arrival envelope model template corresponding to the target arrival process type is determined, wherein each arrival envelope model template includes parameters to be estimated; Based on the request time interval and the amount of data read, the values of the parameters to be estimated in the arrival envelope model template corresponding to the target arrival process type are calculated to obtain the arrival envelope model corresponding to the read request sent by the target user.
10. The apparatus according to claim 8 or 9, characterized in that, The feature extraction module is used for: Based on the arrival envelope model and the service envelope model, multiple different hit rates are calculated to correspond to upper bounds of read response latency, wherein the hit rate is used to indicate the probability that the data requested by the read request is stored in the first storage medium; Based on multiple different upper bounds of read response latency corresponding to different hit rates, the correspondence between hit rate and upper bound of read response latency is determined; Based on the correspondence between hit rate and upper bound of read response latency, determine the target hit rate corresponding to the read response latency threshold; Based on the correspondence between the hit rate and the capacity of the first storage medium allocated to the user, the capacity corresponding to the target hit rate is determined as the capacity of the first storage medium allocated to the target user.
11. The apparatus according to claim 10, characterized in that, The feature extraction module is used for: Based on the arrival envelope model, the service envelope model, and the MGF-SNC algorithm based on moment generation function, the upper bound of read response latency corresponding to multiple different hit rates is calculated.
12. The apparatus according to claim 10 or 11, characterized in that, The feature extraction module is used for: Polynomial fitting was performed on the upper bounds of read response delay corresponding to multiple different hit rates to obtain the corresponding relationship between the hit rate and the upper bound of read response delay; In the correspondence between hit rate and upper bound of read response latency, determining the target hit rate corresponding to the read response latency threshold includes: Substituting the read response latency threshold into the corresponding formula yields the target hit rate corresponding to the read response latency threshold.
13. The apparatus according to any one of claims 8-12, characterized in that, The service envelope model is used to indicate the bandwidth information for reading data from a single channel of the first storage medium, and the bandwidth information for reading data from a single channel of the second storage medium.
14. The apparatus according to any one of claims 8-13, characterized in that, The resource allocation module is also used for: Among the target user's data stored in the storage resource pool, the data with the highest popularity is identified, wherein the target data volume is less than or equal to the capacity of the first storage medium allocated to the target user; The target data volume is stored in the first storage medium, and the remaining data is stored in the second storage medium.
15. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the storage resource allocation method as described in any one of claims 1 to 7.
16. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by a cluster of computing devices, enable the cluster of computing devices to perform the storage resource allocation method as described in any one of claims 1 to 7.
17. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster performs the storage resource allocation method as described in any one of claims 1 to 7.