Methods, apparatus, and computer programs for managing the wear and tear of storage systems

By analyzing the access history of storage devices to predict future wear increments and migrating data, the problem of uneven wear on devices in storage systems is solved, achieving more efficient wear leveling management, extending device lifespan, and improving system reliability.

CN114385406BActive Publication Date: 2026-04-03EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-22
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively manage uneven wear and tear on various storage devices within a storage system, leading to excessive wear on some devices and impacting device lifespan and data security.

Method used

By analyzing the access history of storage devices, future wear increments can be predicted, and data can be migrated in the storage system to achieve wear leveling. Load balancing technology can be used to optimize the load on the devices.

Benefits of technology

It improves the wear leveling of storage devices, extends device lifespan, reduces the risk of data loss, and enhances the reliability and stability of storage systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114385406B_ABST
    Figure CN114385406B_ABST
Patent Text Reader

Abstract

This disclosure relates to a method, apparatus, and computer program product for managing wear and tear on a storage system. In one method, for multiple storage devices in a storage system, multiple access histories of the multiple storage devices over a previous time period are received. Based on the multiple access histories of the multiple storage devices, multiple wear increments of the multiple storage devices at future time points are determined. Based on the multiple wear increments of the multiple storage devices at future time points, a wear leveling degree of the storage system at the future time points is obtained. In response to determining that the wear leveling degree meets predetermined conditions, data is migrated among the multiple storage devices in the storage system. Corresponding apparatus and computer program products are provided according to other exemplary implementations of this disclosure. The wear and tear of each storage device in the storage system can be determined more accurately, and the wear and tear of the various storage devices can be ensured to be balanced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The various implementations of this disclosure relate to storage management, and more specifically, to methods, apparatus, and computer program products for managing the wear and tear of a storage system. Background Technology

[0002] With the development of data storage technology, various data storage devices are now able to provide users with increasingly higher data storage capabilities, and data access speeds have also improved significantly. While improving data storage capabilities, users are also placing increasingly higher demands on data reliability and the response time of storage systems. Currently, various data storage systems based on Redundant Array of Independent Disks (RAID) have been developed to improve data reliability. When one or more disks in a storage system fail, the data on the failed disks can be reconstructed from data on other normally functioning disks.

[0003] Mapped RAID (Mapped Independent Disk Redundancy Array) has been developed. In Mapped RAID, a disk is a logical concept and can comprise multiple extents. The multiple extents within a logical disk can be distributed across different physical storage devices in a resource pool. For multiple blocks within a stripe of Mapped RAID, these blocks should be distributed across different physical storage devices. This allows for a rebuild operation to recover data from the physical storage devices containing the other blocks if one of the blocks fails. During storage system operation, the wear and tear on each storage device varies due to differences in data access load. Managing the workload of each storage device to maintain similar wear levels becomes a significant technical challenge. Summary of the Invention

[0004] Therefore, it is desirable to develop and implement a technical solution for managing the wear and tear of storage systems in a more efficient manner. This solution is expected to be compatible with existing storage systems and, by modifying various configurations of existing storage systems, achieve wear and tear balancing in a more efficient way.

[0005] According to a first aspect of this disclosure, a method for managing wear and tear in a storage system is provided. In this method, for multiple storage devices in the storage system, multiple access histories of the multiple storage devices over a previous time period are received. Based on the multiple access histories of the multiple storage devices, multiple wear increments of the multiple storage devices at future time points are determined. Based on the multiple wear increments of the multiple storage devices at future time points, a wear leveling degree of the storage system at the future time points is obtained. In response to determining that the wear leveling degree meets predetermined conditions, data is migrated among the multiple storage devices in the storage system.

[0006] According to a second aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions, when executed by the at least one processor, causing the device to perform a method according to the first aspect of this disclosure.

[0007] According to a third aspect of this disclosure, a computer program product is provided, which is tangibly stored on a non-transient computer-readable medium and includes machine-executable instructions for performing the method according to a first aspect of this disclosure. Attached Figure Description

[0008] The features, advantages, and other aspects of various implementations of this disclosure will become more apparent from the accompanying drawings and the following detailed description, which illustrate, by way of example and not limitation, several implementations of this disclosure. In the drawings:

[0009] Figure 1A and 1B Block diagrams of storage systems in which implementations of the present disclosure can be carried out are shown schematically.

[0010] Figure 2 A block diagram schematically illustrates an exemplary environment in which implementations of this disclosure may be carried out;

[0011] Figure 3 Schematic illustration Figure 2 A diagram of the storage resource pool in the image;

[0012] Figure 4 A block diagram illustrating a process for determining wear increments of a storage device according to one implementation of the present disclosure is shown schematically.

[0013] Figure 5 A block diagram illustrating a method for managing wear and tear of a storage system according to one implementation of the present disclosure is shown schematically.

[0014] Figure 6A block diagram illustrating a process for determining wear increments of a storage device according to one implementation of the present disclosure is shown schematically.

[0015] Figure 7 A block diagram illustrating a process for determining wear increments of a storage device according to one implementation of the present disclosure is shown schematically.

[0016] Figure 8 A block diagram illustrating a process for determining the correlation between two storage devices according to one implementation of this disclosure is shown.

[0017] Figure 9 A flowchart illustrating a method for performing wear balancing according to one implementation of this disclosure is shown schematically; and

[0018] Figure 10 A block diagram of an exemplary implementation of a device for managing wear and tear on a storage system, according to the present disclosure, is shown schematically. Detailed Implementation

[0019] Preferred implementations of this disclosure will now be described in more detail with reference to the accompanying drawings. While preferred implementations of this disclosure are shown in the drawings, it should be understood that this disclosure may be implemented in various forms and should not be limited to the implementations set forth herein. Rather, these implementations are provided to make this disclosure more thorough and complete, and to fully convey the scope of this disclosure to those skilled in the art.

[0020] The term “comprising” and its variations, as used herein, signify open inclusion, i.e., “including but not limited to.” Unless otherwise stated, the term “or” means “and / or.” The term “based on” means “at least partially based on.” The terms “one example implementation” and “one implementation” mean “at least one example implementation.” The term “another implementation” means “at least one additional implementation.” The terms “first,” “second,” etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0021] In the context of this disclosure, the storage system can be a RAID-based storage system. A RAID-based storage system combines multiple storage devices into a single disk array. By providing redundant storage devices, the reliability of the entire disk group can be significantly greater than that of a single storage device. RAID can offer various advantages over a single storage device, such as enhanced data consolidation, enhanced fault tolerance, increased throughput or capacity, and so on. Multiple RAID standards exist, such as RAID-1, RAID-2, RAID-3, RAID-4, RAID-5, RAID-6, RAID-10, RAID-50, and so on.

[0022] Figure 1A A schematic diagram of a storage system 100A in which the methods of this disclosure may be implemented is shown. Figure 1A The storage system shown uses a RAID-5 (4D+1P, where 4D indicates four storage devices for data storage and 1P indicates one storage device for P-parity storage) array, comprising five independent storage devices (110, 112, 114, 116, and 118), as an example to illustrate the working principle of RAID. It should be noted that although... Figure 1A The diagram schematically shows five storage devices; in other implementations, depending on the RAID level, more or fewer storage devices may be included. Although Figure 1A The diagram shows stripes 120, 122, 124, ..., 126. In other examples, the RAID system may include different numbers of stripes.

[0023] In RAID, stripes can span multiple physical storage devices (e.g., stripe 120 spans storage devices 110, 112, 114, 116, and 118). A stripe can be simply understood as a storage region across multiple storage devices that meets a certain address range. The data stored in stripe 120 comprises several parts: data block D00 stored on storage device 110, data block D01 stored on storage device 112, data block D02 stored on storage device 114, data block D03 stored on storage device 116, and data block P0 stored on storage device 118. In this example, data blocks D00, D01, D02, and D03 are the stored data, while data block P0 is the P-parity checksum of the stored data.

[0024] Data is stored in the other stripes 122 and 124 in a similar manner to stripe 120, except that checksums for other data blocks can be stored on a different storage device than storage device 118. In this way, if one of the storage devices 110, 112, 114, 116, and 118 fails, the data from the failed device can be recovered from the other working storage devices.

[0025] Figure 1B A schematic diagram 100B illustrates the reconstruction process of storage system 110A. (As shown...) Figure 1B As shown, when a storage device (e.g., storage device 116 shown in shaded area) fails, data can be recovered from the remaining, normally functioning storage devices 110, 112, 114, and 118. In this case, a new backup storage device 118B can be added to the RAID to replace storage device 118. In this way, the recovered data can be written to 118B, and the system can be rebuilt.

[0026] It should be noted that, although seen above Figure 1A and Figure 1B This describes a RAID-5 storage system comprising five storage devices (four devices (4D) for data storage and one device (1P) for parity storage). Depending on the definitions of other RAID levels, storage systems with varying numbers of storage devices are also possible. For example, based on the definition of RAID-6, two storage devices can be used to store parity values ​​(P and Q) separately. As another example, based on the definition of triple-parity RAID, three storage devices can be used to store parity values ​​(P, Q, and R) separately.

[0027] With the development of distributed storage technology Figure 1A and 1B The storage devices 110, 112, 114, 116, and 118 in the illustrated storage system are not limited to physical storage devices, but can be virtual storage devices. For example, the blocks on storage device 110 can come from different physical storage devices (hereinafter referred to as storage devices) in the resource pool. Figure 2 A block diagram schematically illustrates an exemplary environment in which the methods of this disclosure can be implemented. (See diagram for example.) Figure 2 As shown, storage resource pool 270 may include multiple physical storage devices 210, 211, 212, 213, 214, 215, 216, and 217. Storage space in these multiple storage devices can be allocated to storage systems 290, ..., 292 of multiple users. User storage systems 290, ..., 292 can access the storage space in each storage device of storage resource pool 270 via network 280. It will be understood that although... Figure 2 The illustration only shows the case where storage resource pool 270 includes 8 storage devices. According to the exemplary implementation of this disclosure, storage resource pool 270 may also include more or fewer storage devices.

[0028] Figure 3 Schematic illustration as follows Figure 2The illustration provides further information about the storage resource pool 270. Resource pool 270 may include multiple storage devices 210 to 217. Each storage device may include multiple blocks, where Figure 320 represents an idle block, Figure 322 represents a block used for RAID stripe 1, and Figure 324 represents a block used for RAID stripe 2. In this case, blocks D11, D22, D33, and D44 for RAID stripe 1 are used to store the data blocks for that stripe, while block D75 is used to store data verification. Similarly, blocks D01, D12, D23, and D34 for RAID stripe 2 are used to store the data blocks for that stripe, while block D45 is used to store data verification.

[0029] like Figure 3 As shown, address mapping 330 illustrates the association between the addresses of stripes and the blocks within those stripes. For example, RAID stripe 1 may include five blocks: D11, D22, D33, D44, and D75, located on storage devices 211, 212, 213, 214, and 217, respectively. Specifically, as shown... Figure 3 As shown, block D11 is the first block in storage device 211, and block D22 is the second block in storage device 212. Figure 3 As shown, each storage device may also have a reserved free portion 310, so that when a storage device in the resource pool fails, blocks in the free portion 310 of each storage device can be selected to rebuild the blocks in the failed storage device.

[0030] It should be noted that Figure 3 The example of a 4D+1P RAID-5 storage system illustrates how blocks in each stripe are distributed across multiple storage systems in a resource pool. When using other RAID levels, those skilled in the art can implement the specific details based on the principles described above. For example, in a 6D+1P+1Q RAID-6 storage system, the eight blocks in each stripe can be distributed across multiple storage devices.

[0031] It will be understood that as a storage system operates, the workload of multiple storage devices will vary, resulting in some storage devices having higher workloads. Uneven workloads may cause these storage devices to have significantly higher utilization and read / write volumes than others. Since storage devices have a limited number of read / write cycles, excessive read / write volumes will cause some storage devices to experience excessive wear and tear compared to others. Furthermore, this may lead to a higher risk of data loss for these storage devices. Wear and tear is an indicator of the lifespan of a storage device; higher wear and tear means a reduced remaining lifespan. When the wear and tear reaches a certain threshold, it indicates that the storage device's lifespan is nearing its end and it needs to be replaced promptly.

[0032] Currently, technical solutions have been proposed to perform wear balancing across multiple storage devices based on their usage load within a storage system. However, the performance of these solutions is unsatisfactory, and they cannot guarantee that the wear levels of each storage device will remain as similar as possible. One approach is to trigger the load balancing process based on the wear levels of multiple storage devices in the storage system. For example, when a storage device is found to have high wear, data from that device can be moved to a storage device with lower wear. Typically, data access in a storage system fluctuates, and triggering the load balancing process based on currently measured wear levels may result in difficulties in effectively performing load balancing operations.

[0033] In a technical solution that periodically performs load balancing, assuming the current storage system is at a low point in access load, it might be determined not to perform load balancing based on the current wear level. However, if a data access peak occurs immediately after the current point in time, this could cause severe wear on one or more storage devices. Alternatively, in a solution that determines whether to perform load balancing based on the current access load of the storage system, assuming the current access load is low and therefore the wear rate is slow, it might be determined to perform load balancing only on certain storage devices. After the load balancing process has already been performed, a peak in access load might immediately occur. This could lead to a significant difference in the increase in wear level among the storage devices before the next load balancing process, resulting in variations in the wear levels of each storage device.

[0034] To at least partially address the shortcomings of the aforementioned technical solutions, according to an exemplary implementation of this disclosure, the future wear increment of the storage devices is determined based on their access history, and thereby, it is determined whether a load balancing process should be performed. Utilizing the exemplary implementation of this disclosure, the wear increment of each storage device can be effectively predicted based on historical data statistics, thereby determining in a more accurate and effective manner whether a load balancing process is needed. Furthermore, during the time period between this load balancing and the next load balancing, it can be ensured that the wear of each storage device remains within an acceptable range. In this way, throughout the entire operation of the storage system, it can be ensured that the wear of all multiple storage devices remains at a relatively balanced level.

[0035] First see Figure 4 A summary of the methods described according to exemplary implementations of this disclosure. Figure 4 A block diagram schematically illustrates a process 400 for determining the wear increment of a storage device according to one implementation of this disclosure. It will be understood that the wear of a storage device is closely related to the access load of the storage device; the higher the access load, the higher the wear. Figure 4 The process for determining the wear increment of a single storage device is shown only. Similar operations can be performed on other storage devices to determine the wear increment of each storage device in the storage system. Figure 4 As shown, the horizontal axis represents time (e.g., in units of "day", "week", or "month"), and the vertical axis represents the access history for a storage device (e.g., in units of access count).

[0036] Figure 4 A technical solution for periodically executing a load balancing process is illustrated, wherein reference numeral 410 represents the current time point at which the current round of the load balancing process will be executed, and reference numeral 420 represents the future time point at which the next round of the load balancing process will be executed. According to an exemplary implementation of this disclosure, the access history 440 of a storage device among multiple storage devices within a previous time period 430 can be determined. Further, the wear increment 450 of the storage device at a future time point 420 can be determined based on the access history 440. For example, a function 442 describing the trend of access history changes can be fitted based on multiple access loads at multiple time points in the access history 440, thereby determining the wear increment 450 caused by the access load during the time period between the current time point 410 and the future time point 420.

[0037] Wear leveling of a storage system at a future point in time (420) can be predicted based on wear increments from multiple storage devices. For example, the average wear increment of multiple storage devices can be determined, and the wear leveling of the storage system can be determined based on the wear increments of each storage device and this average. If the wear leveling meets predetermined conditions, it indicates that the wear of the various storage devices is not uniform, thus requiring data migration between the multiple storage devices in the storage system.

[0038] Using the exemplary implementation of this disclosure, it is possible to determine whether a load balancing process needs to be triggered based on the predicted wear increment of each storage device at a future time point 420. Compared to existing solutions that determine whether to trigger a load balancing process based on the current wear level and / or access load, the predicted wear increment can more accurately reflect the wear status of multiple storage devices at a future time point 420, thus allowing for a more accurate determination of whether to perform a load balancing process. Furthermore, after the load balancing process is triggered and executed, the storage system can be ensured to be in a good balanced state during the period before the next load balancing execution (i.e., the period between the current time point 410 and the future time point 420). In other words, the balance of wear status of multiple storage devices can be maintained within an acceptable range during the future period. Even if it is determined not to perform a load balancing process at this time, since this determination is based on the predicted wear increment at a future time point 420, multiple storage devices can maintain similar wear levels during the future period.

[0039] See below. Figure 5 Further details describe the methods according to exemplary implementations of this disclosure. Figure 5 A block diagram of a method 500 for managing the load balancing of a storage system according to one implementation of the present disclosure is illustrated. At block 510, multiple access histories of multiple storage devices in the storage system over a previous time period are received, respectively. Here, the access history can be obtained separately for each of the multiple storage devices. For simplicity, only one storage device will be used as an example in the following description.

[0040] return Figure 4 Describe more details about the previous time period 430. To more clearly understand the changing patterns of access load, the length of the previous time period 430 can be greater than the length between the current time point 410 and the future time point 420. Assume... Figure 4Each tick on the horizontal axis represents one week, and the next load balancing process is scheduled to be executed at a future time point 420 (three weeks later). Therefore, the length of the previous time period 430 can be set to be greater than three weeks. According to an exemplary implementation of this disclosure, the length of the previous time period 430 can be set to nine weeks (or another time length). In this case, the access history within the past nine weeks can be retrieved.

[0041] Will understand, although Figure 4 The illustration schematically shows a previous time period 430 immediately preceding the current time point 410. According to an exemplary implementation of this disclosure, there may be a time interval between the previous time period 430 and the current time point 410. The access history 440 here may include multiple access loads collected at multiple time points within the previous time period 430.

[0042] See also Figure 5 At box 520, based on multiple access histories of multiple storage devices, multiple wear increments 450 for the multiple storage devices at future time points 420 are determined. Specifically, the wear increment 450 can be determined for each of the multiple storage devices. Since the access load of storage devices varies, to more accurately determine the wear increment 450, the variation pattern of the access load of the storage devices at multiple time points within a previous time period 430 can first be determined. Generally, the variation pattern can include trend variation patterns (e.g., increasing or decreasing), periodic variation patterns, and irregular variation patterns. The determination of wear increments will be described below for each of these variation patterns.

[0043] According to an exemplary implementation of this disclosure, the wear increment history of a storage device within a previous time period 430 can be determined based on multiple access loads and change patterns. Return Figure 4 This describes the case where the change pattern is a trend-based change pattern. The change pattern of access load can be determined based on existing data analysis methods. Furthermore, if the change pattern of the storage device is determined to be a trend-based change pattern, the wear increment history can be determined based on a linear fit of multiple access loads (e.g., a function 442 represented by a slant line). Here, the slant line can represent the trend of access load change, and therefore, the access load of the storage device at a future point in time 420 can be predicted based on this slant line.

[0044] It will be understood that the wear and tear of storage devices is closely related to their access load; the higher the access load, the higher the wear and tear. Therefore, the wear increment 450 of the storage device can be determined using the access load generated over a future time period. Specifically, the wear increment of the storage device at the future time point 420 can be determined based on the historical wear increment and the future time point 420. In such cases... Figure 4In the incremental trend change pattern shown, the slash 442 represents the trend of access load change, so the wear increment 450 can be determined based on the portion below the slash 442 between the current time point 410 and the future time point 420.

[0045] Using the exemplary implementation of this disclosure, the wear increment 450 can be determined in a more accurate and reliable manner. According to existing technical solutions, the formula for calculating the wear increment at a future time point 420 based on the access load (e.g., 50) at the current time point 410 can be expressed as 50*3 = 150 (i.e., the number of accesses at the current time point * the length of the future time period). According to the exemplary implementation of this disclosure, the wear increment 450 determined based on the wear increment history represented by a slash can be expressed as (50+60) / 2*3 = 165. It is evident that the wear increment 450 determined according to the exemplary implementation of this disclosure better reflects the historical access load change trend in the storage system, and thus can better predict the wear increment 450 at the future time point 420.

[0046] Will understand, Figure 4 The example shown is merely illustrative; according to exemplary implementations of this disclosure, trend change patterns may include decreasing or flat patterns (i.e., the trend is not significant but remains essentially unchanged). The treatment of other trend change patterns is similar and will not be described further.

[0047] According to an exemplary implementation of this disclosure, if the change pattern of the storage device is determined to be a periodic change pattern, the wear increment history can be determined based on extreme values ​​among multiple access loads. See below for further details. Figure 6 Describe specific details about the cyclical variation pattern. Figure 6 A block diagram illustrating a process 600 for determining wear increments of a storage device according to one implementation of the present disclosure is shown schematically. Figure 6 and Figure 4 Similar, the difference lies in Figure 6 The access history 610 shown changes periodically. Based on data analysis, the change cycle of access history 610 is 3 weeks. At this time, the wear increment history 640 (shown as a dashed line) can be determined based on the maximum value 620 and the minimum value 622 in access history 610.

[0048] Furthermore, based on the difference (3 weeks) between the future time point 420 and the current time point 410, a time period corresponding to that difference can be determined within the previous time period 430. For example... Figure 6As shown, the future time period corresponds exactly to a change cycle (3 weeks), so it can be determined that the wear increment 630 in the future time period is exactly the increment within one cycle. Then, based on the historical increments shown in the wear increment history and the position of the future time period relative to the change cycle, the wear increment 630 of the storage device at the future time point 420 can be determined. According to existing technical solutions, the calculation formula for determining the wear increment at the future time point 420 based on the access load (e.g., 10) at the current time point 410 can be expressed as 10*3 = 30. Since the current time point 410 is exactly at the trough of the cycle, a large error will occur. According to the exemplary implementation of this disclosure, based on the periodic changes shown in the wear increment history 640, the determined wear increment 630 can be expressed as (10+55) / 2*3 = 112.5. It can be seen that the wear increment 630 determined according to the exemplary implementation of this disclosure fully considers the peaks, troughs, and length of the cycle, and therefore can better predict the wear increment 630 at the future time point 420.

[0049] Will understand, although Figure 6 An example is shown where the future time period coincides with a cycle of access load variation. According to an exemplary implementation of this disclosure, the future time period can be longer or shorter than the access load variation cycle, and the future time period can begin at a position different from the start of the cycle. In this case, the corresponding wear increment can be determined based on the offset of the future time period within the cycle.

[0050] According to an exemplary implementation of this disclosure, if the change pattern of the storage device is determined to be an irregular change pattern, the wear increment history can be determined based on multiple access loads. See below for further details. Figure 7 Describe specific details regarding the irregular variation pattern. Figure 7 A block diagram illustrating a process 700 for determining wear increments of a storage device according to one implementation of this disclosure is shown schematically.

[0051] Figure 7 and Figure 4 Similar, the difference lies in Figure 7 The access history 710 shown varies irregularly. Based on data analysis, if it is determined that the changes in access history 710 do not follow a regular pattern, the wear increment history 730 can be determined based on the accumulation of multiple access loads within access history 710. In other words, access history 710 can be integrated to determine the wear increment history within a previous time period 430. Subsequently, the mean wear increment 720 can be determined based on the wear increment history, and the wear increment 730 at a future time point 420 can be determined based on this mean.

[0052] like Figure 7As shown, according to existing technical solutions, the formula for calculating the wear increment at a future time point 420 based on the access load (e.g., 25) at the current time point 410 can be expressed as 25*3 = 75. According to an exemplary implementation of this disclosure, the wear increment 730 determined based on the mean expressed as a straight line can be expressed as 30*3 = 90. It is evident that the wear increment 730 determined according to the exemplary implementation of this disclosure is more consistent with the historical access load in the storage system, and therefore can better predict the wear increment 730 at the future time point 420.

[0053] The above have been referred to separately. Figure 4 , Figure 6 and Figure 7 The description covers determining wear increments for trend-based, periodic, and irregular change patterns. Using the exemplary implementations of this disclosure, corresponding wear increments can be determined based on different change patterns in access load. This improves the accuracy of wear increment determination, thereby enhancing the performance of the load balancing process.

[0054] Having determined the wear increments of multiple storage devices individually, the wear leveling of the storage system can be determined based on these wear increments. This will be discussed in the following section. Figure 5 Describe more information about determining wear evenness. For example... Figure 5 At frame 530, based on multiple wear increments of multiple storage devices at future time point 420, the wear level of the storage system at future time point 420 is obtained. Assuming the storage system includes M storage devices, the wear level of the storage system can be determined based on the following formula 1.

[0055]

[0056] Where δ represents the wear leveling of the storage system, M represents the number of storage devices in the storage system, and W Disk i W represents the wear degree of the i-th storage device determined based on the wear increment described above. Disk average This represents the average wear level of each storage device. Using the exemplary implementation of this disclosure, based on the wear increment at a future time point 420, the wear level of the storage system at that future time point 420 can be determined more accurately and reliably. Determining whether to perform a load balancing process based on a more accurate and reliable wear level ensures that the wear level of the storage system remains relatively balanced until the next load balancing process. It will be understood that Formula 1 above is merely illustrative of an example for determining wear level, and calculations can be performed based on other formulas according to the exemplary implementation of this disclosure.

[0057] At box 540, in response to determining that the wear leveling meets a predetermined condition, data is migrated among multiple storage devices in the storage system. According to an exemplary implementation of this disclosure, the predetermined condition can be set based on a predetermined threshold. A larger value of the wear leveling determined based on Formula 1 indicates a more uneven wear among the multiple storage devices; a smaller value of the wear leveling determined based on Formula 1 indicates a more uniform wear among the multiple storage devices.

[0058] According to the exemplary implementation of this disclosure, a predetermined threshold of 15% (or another value) can be specified. If the wear leveling determined based on Formula 1 is higher than this threshold, it indicates that the storage system's leveling will become unbalanced before the next load balancing time point based on the predicted access load change trend, and therefore the load balancing process should be performed immediately. If the wear leveling determined based on Formula 1 is lower than this threshold, it indicates that the storage system's leveling will remain at an acceptable level before the next load balancing time point based on the predicted access load change trend, and therefore the load balancing process does not need to be performed at present. Using the exemplary implementation of this disclosure, it is possible to determine whether to perform load balancing in a more accurate and efficient manner.

[0059] Once it has been determined that a load balancing process is needed, source and destination storage devices can be selected from multiple storage devices based on their load balancing metrics. Specifically, the storage device with the worst or poorest load balancing metrics can be selected as the source storage device, and the storage device with the best or goodest load balancing metrics can be selected as the destination storage device. The following section will first explain how to determine the load balancing metrics of storage devices.

[0060] To more effectively perform the load balancing process, a concept of load balancing metrics for storage devices is proposed according to an exemplary implementation of this disclosure. Load balancing metrics may include one or more factors: device correlation, device wear and tear, and access load. Here, device correlation refers to the distribution of a set of stripes involved in the storage system among storage devices and other storage devices besides the storage devices. For ease of description, the following description will use only a 4D+1P RAID stripe as an example to illustrate further details of the exemplary implementation of this disclosure. A 4D+1P RAID stripe comprises 5 blocks, and the data in the 5 blocks is typically accessed correlatedly. This results in an increased access load on the 5 storage devices, each comprising 5 blocks. In general, for any two storage devices, the more stripes they share, the greater the likelihood that the two storage devices will be accessed simultaneously, and the higher the access load on the two storage devices. Therefore, it is advisable to avoid two storage devices simultaneously serving too many stripes.

[0061] According to an exemplary implementation of this disclosure, the device dependency of the storage devices can be determined first. In the context of this disclosure, M represents the number of storage devices in the storage system, and N represents the stripe width. Assuming the storage system includes 8 storage devices 210 to 217, then M = 8. When using 4D+1P RAID, N = 4 + 1 = 5. The dependency between the i-th and j-th storage devices (i ≠ j) can be expressed as γ. Disk i,Disk j According to an exemplary implementation of this disclosure, the correlation of the storage device itself can be set to 0, that is, γ Disk i,Disk i =0. See below for more details. Figure 8 Describe how to determine the correlation γ between the i-th storage device and the j-th storage device. Disk i,Disk j .

[0062] Figure 8 A block diagram illustrating a process 800 for determining the correlation between two storage devices according to one implementation of this disclosure is shown. Figure 8 As shown, three stripes 810, 820, and 830 have been created in the storage system. The relevance γ can be determined based on the number of stripes that commonly involve the i-th and j-th storage devices. Disk i,Disk j If we want to determine the correlation between storage device 210 and storage device 211 (i.e., i = 0, j = 1), we can find that only stripe 810 uses blocks from both storage device 210 and storage device 211 simultaneously, therefore γ Disk 0,Disk 1 =1.

[0063] For example, if we want to determine the correlation between storage devices 211 and 212 (i.e., i = 1, j = 2), we can find that stripe 810 uses blocks from both storage devices 210 and 211, and stripe 820 also uses blocks from both storage devices 210 and 211. Therefore, γ Disk 1,Disk 2 =2. Similarly, the correlation between any two storage devices among a plurality of storage devices can be determined. It will be understood that the mapping relationship between stripes and blocks within stripes can be readily obtained from the address mapping 330 of the storage system. Therefore, the correlation between any two storage devices can be determined in a simple and efficient manner using the exemplary implementation of this disclosure.

[0064] According to an exemplary implementation of this disclosure, the device correlation of a specific storage device among a plurality of storage devices can be determined based on the correlation between two storage devices. Specifically, the correlation between the specific storage device and each other storage device can be determined separately. Furthermore, the device correlation of a specific storage device can be determined based on the determined multiple correlations.

[0065] According to an exemplary implementation of this disclosure, the device relevance can be set to be proportional to the relevance between the storage device and each other storage device. For example, to obtain multiple relevances, the device relevance can be determined based on a summation operation. Using an exemplary implementation of this disclosure, the device relevance of a particular storage device can be determined based on the relevance between a particular storage device and other storage devices based on simple mathematical operations.

[0066] Suppose we want to determine the device relevance of the i-th storage device, we can refer to the above. Figure 8 The described method determines the relevance between the i-th storage device and other j-th storage devices (0 ≤ j ≤ M-1, and i ≠ j). According to an exemplary implementation of this disclosure, the device relevance γ of the i-th storage device can be determined based on the following formula 2. Disk i :

[0067]

[0068] Where γ Disk i γ represents the device relevance of the i-th storage device. Disk i,Disk j Let represent the correlation between the i-th and j-th storage devices, and M represent the number of storage devices in the resource pool. It will be understood that Formula 2 above merely illustrates a specific example for determining device correlation. Other formulas can be used to determine device correlation according to exemplary implementations of this disclosure. For example, device correlation can be determined based on the product of multiple correlations.

[0069] According to the exemplary implementation of this disclosure, the device correlation of multiple storage devices can be determined based on Formula 2 described above, and the load balancing index of the storage devices can be determined based on the device correlation. For example, the load balancing index C of the i-th storage device can be determined based on the following Formula 3. Disk i :

[0070]

[0071] Where C Disk i γ represents the load balancing metric for the i-th storage device. Disk iLet γ represent the device relevance of the i-th storage device, and M represent the number of storage devices in the resource pool. Using an exemplary implementation of this disclosure, the numerator γ... Disk i It can represent the distribution of a set of stripes involved in the i-th storage device, with the denominator being... It can represent the distribution of all stripes involved in all storage devices in the storage system, so the ratio of the two can accurately reflect the balance of the i-th storage device in terms of stripe distribution.

[0072] It will be understood that the load balancing metrics shown above only represent the impact of striping distribution on the capacity of storage devices. According to the exemplary implementation of this disclosure, other factors may also affect the workload. For example, when the access load on a storage device is high, the performance of the storage device will degrade. As another example, when the wear and tear on a storage device is high, the reliability of the storage device will decrease.

[0073] According to the exemplary implementation of this disclosure, load balancing metrics can be updated based on the access load of storage devices. Specifically, the access load of storage devices can be determined, and the access load of multiple storage devices can be determined separately. Access load can be represented in various ways, such as using at least any of the following: number of accesses per unit time, data access volume per unit time, total number of accesses, and total data access volume, etc. Subsequently, the load balancing metrics of the storage devices can be updated based on the access load of the storage devices and the access load of multiple storage devices. According to the exemplary implementation of this disclosure, the load balancing metric C of the i-th storage device can be determined based on the following formula 4. Disk i .

[0074]

[0075] Where C Disk i γ represents the load balancing metric for the i-th storage device. Disk i γ represents the device relevance of the i-th storage device. Disk j T represents the device relevance of the j-th storage device, M represents the number of storage devices in the resource pool, and T represents the device relevance of the j-th storage device. Disk i This represents the access load of the i-th storage device. ω represents the sum of access loads for all M storage devices. γ and ω T These represent the weights related to device relevance and access load, respectively. It will be understood that Formula 4 above is merely an illustrative way to determine load balancing metrics. According to the exemplary implementation of this disclosure, load balancing metrics can be determined based on other formulas; for example, they can be determined based on the product of device relevance and access load.

[0076] According to an exemplary implementation of this disclosure, load balancing metrics can be updated based on the wear level of storage devices. Specifically, the wear level of storage devices can be determined, and the wear levels of multiple storage devices can be determined separately. The wear level can be represented in various ways, such as using at least any of the following: the number of write operations performed, the ratio of the number of write operations performed to a predetermined threshold, and the wear increment determined according to the method described above, etc. Subsequently, the load balancing metrics of the storage device can be updated based on the wear level of the storage device and the wear levels of multiple storage devices. According to an exemplary implementation of this disclosure, the load balancing metric C of the i-th storage device can be determined based on the following formula 5. Disk i .

[0077]

[0078] Where C Disk i γ represents the load balancing metric for the i-th storage device. Disk i γ represents the device relevance of the i-th storage device. Disk j Let W represent the device relevance of the j-th storage device, M represent the number of storage devices in the resource pool, and W represent the device relevance of the j-th storage device. Disk i This represents the wear level of the i-th storage device. ω represents the sum of wear and tear on all M storage devices. γ and ω W These represent the weights related to equipment relevance and wear and tear, respectively. It will be understood that Formula 5 above is merely an illustrative way of determining load balancing metrics. According to the exemplary implementation of this disclosure, load balancing metrics can be determined based on other formulas, for example, based on the product of equipment relevance and wear and tear.

[0079] According to the exemplary implementation of this disclosure, the load balancing metric C of the i-th storage device can be determined based on the following formula 6. Disk i .

[0080]

[0081] Where C Disk i γ represents the load balancing metric for the i-th storage device. Disk i γ represents the device relevance of the i-th storage device. Disk j T represents the device relevance of the j-th storage device, M represents the number of storage devices in the resource pool, and T represents the device relevance of the j-th storage device. Disk i This represents the access load of the i-th storage device. W represents the sum of access loads for all M storage devices. Disk i This represents the wear level of the i-th storage device. ω represents the sum of wear and tear on all M storage devices. γ ω T and ω W These represent the weights related to device relevance, access load, and wear and tear, respectively.

[0082] It will be understood that Formula 6 above is merely an illustrative way of determining load balancing metrics. According to the exemplary implementation of this disclosure, load balancing metrics can be determined based on other formulas, for example, based on the product of stripe distribution, access load, and wear. According to the exemplary implementation of this disclosure, ω can be set... γ ω T and ω W The range of values ​​for ω can be defined, for example, ω can be defined. γ +ω T +ω W =1. According to an exemplary implementation of this disclosure, a range of values ​​can be specified for each weight. For example, the range of values ​​for each weight can be determined based on Table 1 below.

[0083] Table 1. Range of weight values

[0084] Weight Range of values <![CDATA[ω W ]]> 0.6-1 <![CDATA[ω T ]]> 0-0.2 <![CDATA[ω γ ]]> 0-0.2

[0085] It will be understood that Table 1 above merely illustrates one specific example of the range of values. Since the exemplary implementation according to this disclosure focuses more on the wear and tear of the device, the weight ω of the wear and tear can be... W Set to a higher value.

[0086] The preceding text described how to determine the load balancing metrics for each storage device. The following text will describe how to select source and destination storage devices based on these load balancing metrics. It will be understood that C... Disk i The larger the value of , the more the workload of the i-th storage device deviates from the average. According to the exemplary implementation of this disclosure, a storage device with a higher load balancing index can be selected as the source storage device, and a storage device with a lower load balancing index can be selected as the destination storage device.

[0087] Specifically, if the load balancing metric C of the i-th storage device Disk i The load balancing metric C is higher than that of the j-th storage device among multiple storage devices. Disk jIf so, the i-th storage device can be selected. In this way, storage devices with poor load balancing can be identified first, and blocks from those devices can be moved to other storage devices to reduce their workload. According to an exemplary implementation of this disclosure, load balancing metrics for each storage device can be compared, and the storage device with the highest load balancing metric can be selected. In this way, the storage device with the worst load balancing can be quickly and conveniently identified.

[0088] Furthermore, a source block can be selected from a set of already allocated blocks in the source storage device. It will be understood that the source storage device is currently the storage device with the worst load balancing metrics among the multiple storage devices; moving any block from this source storage device to another storage device will improve the load balancing metrics of the source storage device. According to an exemplary implementation of this disclosure, to achieve faster source-source balancing, the block with the greatest impact on load balancing metrics can be selected from the source storage device, and the data in that block can be moved to another storage device.

[0089] It will be understood that the load balancing metrics of a storage device are associated with the stripe in which each block in that storage device belongs, and the impact of the stripe in which each block belongs on the load balancing metrics can be determined one by one. Specifically, for a given block in a set of allocated blocks in the source storage device, the impact of the stripe in which the given block belongs on the load balancing metrics of the storage device can be determined, and thus the block with the greatest impact on the load balancing metrics of the source storage device can be selected as the source block.

[0090] After determining the source and destination storage devices, data from the source block can be moved to free blocks on the destination storage device. It will be understood that because moving data will alter the stripe distribution in the storage system, it's necessary to determine the predicted load balancing metrics of the destination storage device after moving the source block to a free block. If the load balancing metrics of the source storage device are higher than the predicted load balancing metrics, the data from the source block is moved to a free block on the destination storage device. Here, a higher load balancing metrics for the source storage device than the predicted load balancing metrics for the destination storage device indicates that moving data can improve the load balancing metrics of the storage device, thus allowing the data to be moved. Conversely, a lower load balancing metrics for the source storage device would cause a more severe imbalance, therefore the data movement operation is not performed.

[0091] The following will describe in detail a method for performing rebalancing according to an exemplary implementation of this disclosure. Figure 9A flowchart illustrating a method 900 for performing load balancing according to one implementation of this disclosure is shown schematically. At block 910, it can be determined whether the wear leveling of the storage system meets a threshold condition. If it does, method 900 proceeds to block 920. At block 920, the storage device with the highest load balancing metric among a plurality of storage devices (i.e., the source storage device) can be determined. The load balancing metric for each storage device can be determined based on any of Equations 2 to 6 described above, and the storage device with the highest load balancing metric is selected as the source storage device.

[0092] At box 930, the impact of each block in the source storage device on the load balancing metrics can be determined. At box 940, the block with the greatest impact can be selected. At box 950, the storage device with the best load balancing metrics is selected as the destination storage device from the set of storage devices that can be used as the copy destination. At box 960, the predicted load balancing metrics of the destination storage device after copying can be determined and compared with the load balancing metrics of the source storage device. If the predicted load balancing metrics of the destination storage device are less than the load balancing metrics of the source storage device, then method 900 proceeds to box 970 to move the data in the source blocks to free blocks in the destination storage device.

[0093] According to the exemplary implementation of this disclosure, the move operation can be performed in multiple rounds. For example, after box 970, method 900 can return to box 920 and perform the operation of the next round until the judgment result at box 960 is "no", at which point method 900 advances to box 980 and stops. Using the exemplary implementation of this disclosure, the load balancing process in multiple rounds can be executed centrally. In this way, it can be ensured that the load balancing metrics of the storage system remain in good condition over a long period of time, and the load balancing process is not executed frequently.

[0094] As mentioned above Figures 2 to 9Examples of methods according to this disclosure have been described in detail, and implementations of corresponding apparatus will be described below. According to an exemplary implementation of this disclosure, an apparatus for managing wear and tear of a storage system is provided. The apparatus includes: for a plurality of storage devices in the storage system, receiving multiple access histories of the plurality of storage devices over a previous time period; a determination module configured to determine multiple wear increments of the plurality of storage devices at future time points based on the multiple access histories of the plurality of storage devices; an acquisition module configured to acquire a wear leveling degree of the storage system at future time points based on the multiple wear increments of the plurality of storage devices at future time points; and a migration module configured to migrate data among the plurality of storage devices in the storage system in response to determining that the wear leveling degree meets predetermined conditions. According to an exemplary implementation of this disclosure, the apparatus further includes modules for performing methods 500 and 900 described above.

[0095] Figure 10 A block diagram of a device 1000 for managing load balancing in a storage system, according to an exemplary implementation of the present disclosure, is shown schematically. As shown, the device 1000 includes a central processing unit (CPU) 1001, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 1002 or loaded from storage unit 1008 into random access memory (RAM) 1003. Various programs and data required for the operation of the device 1000 may also be stored in RAM 1003. The CPU 1001, ROM 1002, and RAM 1003 are interconnected via bus 1004. An input / output (I / O) interface 1005 is also connected to bus 1004.

[0096] Multiple components in device 1000 are connected to I / O interface 1005, including: input unit 1006, such as keyboard, mouse, etc.; output unit 1007, such as various types of monitors, speakers, etc.; storage unit 1008, such as disk, optical disk, etc.; and communication unit 1009, such as network card, modem, wireless transceiver, etc. Communication unit 1009 allows device 1000 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0097] The various processes and procedures described above, such as methods 500 and 900, can be executed by processing unit 1001. For example, in some implementations, methods 500 and 900 can be implemented as computer software programs tangibly contained in a machine-readable medium, such as storage unit 1008. In some implementations, part or all of the computer program can be loaded and / or installed on device 1000 via ROM 1002 and / or communication unit 1009. When the computer program is loaded into RAM 1003 and executed by CPU 1001, one or more steps of methods 500 and 900 described above can be performed. Alternatively, in other implementations, CPU 1001 can also be configured in any other suitable manner to implement the above-described processes / methods.

[0098] According to an exemplary implementation of this disclosure, an electronic device is provided. The electronic device includes: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, cause the device to perform actions for managing load balancing of a storage system. The actions include: receiving, for each of a plurality of storage devices in the storage system, multiple access histories of the plurality of storage devices over a previous time period; determining, based on the multiple access histories of the plurality of storage devices, multiple wear increments of the plurality of storage devices at future time points; obtaining a wear level of the storage system at future time points based on the multiple wear increments of the plurality of storage devices at future time points; and migrating data among the plurality of storage devices in response to determining that the wear level meets predetermined conditions.

[0099] According to an exemplary implementation of this disclosure, determining multiple wear increments of multiple storage devices at future points in time includes: for a storage device among the multiple storage devices, determining multiple access load change patterns of the storage device at multiple points in time within a previous time period based on the access history of the storage device in multiple access histories; determining the wear increment history of the storage device in the previous time period based on the multiple access loads and change patterns; and determining the wear increment of the storage device at future points in time based on the wear increment history.

[0100] According to an exemplary implementation of this disclosure, determining the wear increment history includes: in response to determining that the change pattern of the storage device is a trend change pattern, determining the wear increment history based on a linear fit of multiple access loads.

[0101] According to an exemplary implementation of this disclosure, determining the wear increment history includes: in response to determining that the change pattern of the storage device is a periodic change pattern, determining the wear increment history based on extreme values ​​among multiple access loads.

[0102] According to an exemplary implementation of this disclosure, determining the wear increment of a storage device at a future point in time includes: determining a time period corresponding to the difference between the future point in time and the current point in time within a previous time period, wherein the length of the previous time period is greater than the difference; and determining the wear increment of the storage device at a future point in time based on the time period and the wear increment history.

[0103] According to an exemplary implementation of this disclosure, determining the wear increment history includes: in response to determining that the change pattern of the storage device is an irregular change pattern, determining the wear increment history based on the accumulation of multiple access loads.

[0104] According to an exemplary implementation of this disclosure, data in a storage system is stored in a set of stripes, the stripes in the set of stripes including multiple blocks from at least a portion of multiple storage devices, and migrating data between multiple storage devices in a storage system includes: selecting a source storage device and a destination storage device from the multiple storage devices based on load balancing metrics of the storage devices; and moving data from the source storage device to a free block in the destination storage device.

[0105] According to an exemplary implementation of this disclosure, moving data includes: selecting, for multiple blocks in a source storage device, a block that has a greater impact on the load balancing index of the storage device as a source block; determining, after moving data from the source block to a free block in the destination storage device, a load balancing index prediction of the destination storage device; and moving data from the source block to a free block in the destination storage device based on the determination that the load balancing index of the source storage device is higher than the predicted load balancing index of the destination storage device.

[0106] According to an exemplary implementation of this disclosure, the load balancing metric for a storage device includes device relevance, where device relevance represents the distribution of a set of stripes involved in the storage system among the storage device and other storage devices besides the storage device.

[0107] According to an exemplary implementation of this disclosure, the load balancing metrics of the storage device further include at least one of the storage device's access load and wear and tear.

[0108] According to an exemplary implementation of this disclosure, a computer program product is provided, which is tangibly stored on a non-transient computer-readable medium and includes machine-executable instructions for performing a method according to this disclosure.

[0109] According to an exemplary implementation of this disclosure, a computer-readable medium is provided. The computer-readable medium stores machine-executable instructions that, when executed by at least one processor, cause the at least one processor to implement the method according to this disclosure.

[0110] This disclosure can be a method, apparatus, system, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.

[0111] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination thereof. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0112] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0113] The computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some implementations, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is customized by utilizing the status information of the computer-readable program instructions to execute the computer-readable program instructions, thereby implementing various aspects of this disclosure.

[0114] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0115] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0116] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0117] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0118] Various implementations of this disclosure have been described above. The foregoing description is exemplary and not exhaustive, nor is it limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the implementations disclosed herein.

Claims

1. A method for managing wear and tear on a storage system, comprising: For multiple storage devices in the storage system, multiple access histories of the multiple storage devices within a previous time period are received respectively; Based on the multiple access histories of the multiple storage devices, multiple wear increments of the multiple storage devices at future points in time are determined respectively; Based on the multiple wear increments of the multiple storage devices at the future time point, the wear level of the storage system at the future time point is obtained; as well as In response to determining that the wear leveling meets a predetermined condition, data is migrated among the plurality of storage devices in the storage system; The determination of the plurality of wear increments of the plurality of storage devices at the future time point includes: for each of the plurality of storage devices... Based on the access history of the storage device in the multiple access histories, determine the change patterns of multiple access loads of the storage device at multiple time points within the previous time period; Based on the multiple access loads and the change patterns, determine the wear increment history of the storage device within the previous time period; and Based on the wear increment history, the wear increment of the storage device at the future time point is determined.

2. The method of claim 1, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is a trend change pattern, the wear increment history is determined based on a linear fit of the plurality of access loads.

3. The method of claim 1, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is a periodic change pattern, the wear increment history is determined based on the extreme values ​​among the plurality of access loads.

4. The method of claim 3, wherein determining the wear increment of the storage device at the future time point comprises: Based on the difference between the future time point and the current time point, a time period corresponding to the difference is determined within the previous time period, wherein the length of the previous time period is greater than the difference; as well as Based on the time period and the wear increment history, the wear increment of the storage device at the future time point is determined.

5. The method of claim 1, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is an irregular change pattern, the wear increment history is determined based on the sum of the multiple access loads.

6. The method of claim 1, wherein the data in the storage system is stored in a set of stripes, the stripes comprising multiple blocks from at least a portion of the plurality of storage devices, and migrating the data between the plurality of storage devices in the storage system comprises: Based on the load balancing metrics of the storage devices among the plurality of storage devices, source storage devices and destination storage devices are selected from the plurality of storage devices respectively; as well as Move the data from the source storage device to a free block in the destination storage device.

7. The method of claim 6, wherein moving the data comprises: For multiple blocks in the source storage device, select the block that has a greater impact on the load balancing index of the storage device as the source block; The predicted load balancing metrics of the destination storage device after determining the data in the source block to the free block in the destination storage device; as well as Based on the prediction that the load balancing index of the source storage device is higher than the load balancing index of the destination storage device, the data in the source block is moved to the free block in the destination storage device.

8. The method of claim 6, wherein the load balancing metric of the storage device includes device relevance, the device relevance representing the distribution of the set of stripes involved in the storage system among the storage device and other storage devices besides the storage device.

9. The method of claim 8, wherein the load balancing metric of the storage device further comprises: The storage device's access load and wear level are at least one of the following:

10. An electronic device, comprising: At least one processor; as well as A memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, cause the device to perform actions for managing the wear and tear of the storage system, the actions including: For multiple storage devices in the storage system, multiple access histories of the multiple storage devices within a previous time period are received respectively; Based on the multiple access histories of the multiple storage devices, multiple wear increments of the multiple storage devices at future points in time are determined respectively; Based on the multiple wear increments of the multiple storage devices at future time points, obtain the wear levelness of the storage system at those future time points; and In response to determining that the wear leveling meets a predetermined condition, data is migrated among the plurality of storage devices in the storage system; The determination of the plurality of wear increments of the plurality of storage devices at the future time point includes: for each of the plurality of storage devices... Based on the access history of the storage device in the multiple access histories, determine the change patterns of multiple access loads of the storage device at multiple time points within the previous time period; Based on the multiple access loads and the change patterns, determine the wear increment history of the storage device within the previous time period; and Based on the wear increment history, the wear increment of the storage device at the future time point is determined.

11. The device of claim 10, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is a trend change pattern, the wear increment history is determined based on a linear fit of the plurality of access loads.

12. The device of claim 10, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is a periodic change pattern, the wear increment history is determined based on the extreme values ​​among the plurality of access loads.

13. The device of claim 12, wherein determining the wear increment of the storage device at the future point in time comprises: Based on the difference between the future time point and the current time point, a time period corresponding to the difference is determined within the previous time period, wherein the length of the previous time period is greater than the difference; as well as Based on the time period and the wear increment history, the wear increment of the storage device at the future time point is determined.

14. The device of claim 10, wherein determining the wear increment history comprises: In response to determining that the change pattern of the storage device is an irregular change pattern, the wear increment history is determined based on the sum of the multiple access loads.

15. The apparatus of claim 10, wherein data in the storage system is stored in a set of stripes, the stripes comprising multiple blocks from at least a portion of the plurality of storage devices, and migrating the data between the plurality of storage devices in the storage system comprises: Based on the load balancing metrics of the storage devices among the plurality of storage devices, source storage devices and destination storage devices are selected from the plurality of storage devices respectively; as well as Move the data from the source storage device to a free block in the destination storage device.

16. The device of claim 15, wherein moving the data comprises: For multiple blocks in the source storage device, select the block that has a greater impact on the load balancing index of the storage device as the source block; as well as The predicted load balancing metrics of the destination storage device after determining the data in the source block to the free block in the destination storage device; as well as Based on the prediction that the load balancing index of the source storage device is higher than the load balancing index of the destination storage device, the data in the source block is moved to the free block in the destination storage device.

17. The device of claim 15, wherein the load balancing metric of the storage device includes device relevance, wherein the device relevance represents the distribution of the set of stripes involved in the storage system among the storage device and other storage devices besides the storage device; The load balancing metrics of the storage device further include: The storage device's access load and wear level are at least one of the following:

18. A computer program product tangibly stored on a non-transient computer-readable medium and comprising machine-executable instructions for performing the method according to any one of claims 1-9.

Citation Information

Patent Citations

  • METHOD, equipment AND COMPUTER PROGRAM PRODUCT FOR MANAGING A STORAGE SYSTEM

    CN110413198A

  • Method, device and apparatus for predicting service life of solid state disk

    CN110413430A