Method, apparatus and product for managing scrubbing operations in a storage system
By dynamically adjusting the scrubbing interval and performing scrubbing operations for the faulty blocks, the problem of difficult to predict and avoid storage device failures in the prior art is solved, and more efficient storage system management is achieved, and the risk of data loss is reduced.
Patent Information
- Application Number
- CN201910871009.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-09-16
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2039-09-16
AI Technical Summary
When existing storage systems manage scrubbing operations, it is difficult to effectively predict and avoid potential failures of storage devices, resulting in the risk of data loss.
By obtaining the usage status of multiple blocks in the storage system, detect the target block where potential failures are about to occur, and dynamically adjust the scrubbing interval according to the detection results, and perform scrubbing operations for the faulty block.
It realizes more efficient management of scrubbing operations in the storage system, can timely detect and identify faulty blocks, reduce the risk of data loss, and avoids insufficient scrubbing and over-scrubbing.
Smart Images

Figure CN112506420B_ABST
Abstract
Description
Technical Field
[0001] Implementations of the present disclosure relate to storage management, and more particularly, to methods, devices, and computer program products for managing scrubbing operations in a storage system. Background Art
[0002] With the development of data storage technology, various data storage devices have been able to provide users with increasingly higher data storage capabilities, and data access speed has also been greatly improved. At present, the concept of a storage device pool has been proposed, in which a plurality of storage devices may be included, and each of the plurality of storage devices may include a plurality of extents. At this time, an extent may be allocated to a user storage system so that the user storage system can use storage space from each storage device in the storage device pool.
[0003] It will be understood that, due to differences in the time at which each storage device in the storage device pool is put into use and the difference in the usage status, the possibility of failure of each storage device is different. Furthermore, the usage status of each part in a storage device may also be different, and it may happen that a part of the storage device fails and cannot be used. Therefore, how to predict potential failures in the storage device and thus avoid data loss in the storage system has become a technical problem. Summary of the invention
[0004] Therefore, it is expected to develop and implement a technical solution for managing storage systems in a more efficient manner. It is expected that the technical solution can be compatible with existing storage systems and manage the storage systems in a more efficient manner by modifying various configurations of the existing storage systems.
[0005] According to a first aspect of the present disclosure, a method for managing scrubbing operations in a storage system is provided. In the method, for a plurality of blocks included in the storage system, respective usage states of the plurality of blocks are obtained. Based on the respective usage states of the plurality of blocks, a group of target blocks in which potential failures are about to occur are detected from the plurality of blocks. Based on the detection of the group of target blocks, a scrubbing interval for a scrubbing operation to be performed on the storage system is adjusted. Based on the adjusted scrubbing interval, a scrubbing operation is performed on at least a portion of the plurality of blocks in the storage system to identify a failed block.
[0006] According to a second aspect of the present disclosure, a device for managing scrubbing operations in a storage system is provided, the device comprising: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the device to perform an action when executed by the at least one processor. The action comprises: obtaining the respective usage status of the plurality of blocks included in the storage system; based on the respective usage status of the plurality of blocks, detecting a group of target blocks in which potential failures are about to occur from the plurality of blocks; adjusting the scrubbing interval of the scrubbing operation to be performed on the storage system according to the detection of the group of target blocks; and performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval to identify the failed blocks.
[0007] According to a third aspect of the present disclosure, there is provided a computer program product, which is tangibly stored on a non-transitory computer-readable medium and comprises machine-executable instructions for executing the method according to the first aspect of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The features, advantages and other aspects of various implementations of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings, which illustrate several implementations of the present disclosure in an exemplary and non-limiting manner. In the accompanying drawings:
[0009] Figure 1 A schematic diagram schematically illustrates a storage system in which the method of the present disclosure may be implemented;
[0010] Figure 2 A block diagram for managing scrubbing operations in a storage system according to one implementation of the present disclosure is schematically shown;
[0011] Figure 3 A flowchart of a method for managing scrubbing operations in a storage system according to an implementation of the present disclosure is schematically shown;
[0012] Figure 4 A block diagram schematically illustrates a method for detecting a group of target blocks in a storage system where potential failures are about to occur according to an implementation of the present disclosure;
[0013] Figure 5 A block diagram schematically illustrates a scan result of performing a background media scan on a storage device according to an implementation of the present disclosure;
[0014] Figure 6 A block diagram schematically illustrates features of a block according to one implementation of the present disclosure;
[0015] Figure 7A block diagram schematically shows an association relationship between characteristics of a block and faults obtained based on historical data training according to an implementation of the present disclosure;
[0016] Figure 8 A block diagram schematically illustrates a failure rate of a failure occurring in a storage device according to an implementation of the present disclosure;
[0017] Fig. 9 A flowchart schematically shows a method for performing subsequent processing on a faulty block according to an implementation of the present disclosure; and
[0018] Fig.10 A block diagram schematically illustrates a device for managing scrubbing operations in a storage system according to an exemplary implementation of the present disclosure. DETAILED DESCRIPTION
[0019] The preferred implementations of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred implementations of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the implementations set forth herein. On the contrary, these implementations are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0020] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example implementation" and "an 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] For the convenience of description, the application environment of the present disclosure is first introduced. Figure 1 Schematically shows a schematic diagram of a storage system 100 in which the method of the present disclosure can be implemented. Figure 1 As shown, the storage system 100 can provide storage space for one or more user storage systems. For example, there can be user storage systems 110, ..., and user storage system 112, etc. It will be understood that the storage system 100 here can be a centralized storage system or a distributed storage system. In the following, only a distributed storage system will be described as an example.
[0022] like Figure 1As shown, the user storage system 110 can access blocks 132, 134, etc. in the storage block pool 130 via the network 120. The storage block pool 130 here may include multiple blocks, and these blocks may be allocated to one or more storage systems. For example, blocks 132, 134, etc. may be allocated to the user storage system 110, while other blocks may be allocated to the user storage system 112. A storage device pool 140 may be set, and the storage device pool 140 may include multiple storage devices such as storage device 142, storage device 144, ..., and storage device 146. The multiple blocks in the storage block pool 130 may come from the same or different storage devices, respectively. At this time, multiple storage devices together provide storage space for the storage system 100.
[0023] It will be understood that the storage devices 142, 144, ..., and 146 are not usable indefinitely, but have a certain service life. When the wear level of the storage device reaches a certain level, it may face the end of life. Currently, a technical solution for monitoring the wear level of each storage device in the storage device pool 140, and then managing the storage device pool 140 and performing device updates has been proposed.
[0024] For example, it has been proposed to perform a scrubbing operation on a storage device to pre-detect and correct a latent sector error (LSE) in the storage device. For most storage systems, a scrubbing operation can be periodically performed on one or more storage devices in the storage system. For example, a scrubbing operation can be performed on all storage devices once a month. However, the scrubbing operation will result in additional overhead. Insufficient scrubbing operations will result in failures in the storage system to be detected in a timely manner, and excessive scrubbing operations will seriously reduce the performance of the storage system due to the scanning access of the scrubbing operation. Therefore, how to perform the scrubbing operation in a more effective manner has become a problem to be solved.
[0025] In order to solve the above-mentioned defects, the implementation of the present disclosure provides a method, device and computer program product for managing scrubbing operations in a storage system 100. With the implementation of the present disclosure, a fixed scrubbing interval is no longer used. Instead, the scrubbing interval is dynamically adjusted and the scrubbing operation is performed according to the usage status of multiple blocks in the storage system 100, so as to detect the faulty blocks in the storage system 100. Here, the scrubbing interval refers to the time interval between two consecutive scrubbing operations. In the following, first refer to Figure 2 An exemplary implementation according to the present disclosure is briefly described.
[0026] Figure 2A block diagram 200 for managing scrubbing operations in a storage system 100 according to an implementation of the present disclosure is schematically shown. Figure 2 As shown, for the multiple blocks 132, 134 in the storage block pool 130, the respective usage status 210 of the multiple blocks can be obtained. Then, based on the respective usage status 210 of the multiple blocks, a group of target blocks 220 in which potential failures will occur can be detected from the multiple blocks.
[0027] The scrubbing interval of the scrubbing operation to be performed on the storage system 100 can be adjusted according to the detection of a group of target blocks 220. Specifically, if a group of target blocks that are about to have a potential failure are detected, it means that a failure may occur in the storage device where the group of target blocks in the storage system 100 are located. At this time, the scrubbing interval 230 can be set to a smaller value, and a local scrubbing operation 240 can be performed on one or more storage devices where the group of target blocks 220 are located. If no target blocks that are about to have a potential failure are detected, it means that the storage system 100 is in a normal state as a whole. At this time, an appropriate scrubbing interval 230 can be selected and a global scrubbing operation 242 can be performed on the storage system 100. According to an exemplary implementation of the present disclosure, both the local scrubbing operation 240 and the global scrubbing operation 242 can detect the failed block 250.
[0028] By using the exemplary implementation of the present disclosure, the local scrubbing operation 240 can timely process the problematic address range (i.e., the address range where the detected set of target blocks 220 are located). On the other hand, the scrubbing interval 230 for performing the scrubbing operation can be determined according to the current usage state 210 of the storage system 100. In this way, insufficient scrubbing and excessive scrubbing can be avoided as much as possible, and the scrubbing operation can be performed in a more flexible manner. Figure 3 More details of exemplary implementations according to the present disclosure are described in detail.
[0029] Figure 3 Schematically shows a flow chart of a method 300 for managing scrubbing operations in a storage system 100 according to an implementation of the present disclosure. Figure 3As shown, at block 310, respective usage statuses of the plurality of blocks included in the storage system 100 may be obtained. It will be understood that the blocks in the storage system 100 may come from the plurality of storage devices 142, 144, ..., and 146 in the storage device pool 140. During operation of the respective storage devices 142, 144, ..., and 146 in the storage device pool 140, the respective storage devices 142, 144, ..., and 146 may involve various aspects of status, such as drive temperature, power on hours, allocated sectors counter, and the like.
[0030] Further, each of the storage devices 142, 144, ..., and 146 may include a plurality of blocks. It will be appreciated that each block may have a corresponding usage status. The usage status herein may include the above-mentioned status of the storage device where the block is located. In addition, the usage status may also include the status of the block itself, for example, the address of the block, whether there is a fault in the block, etc. It will be appreciated that the above only schematically illustrates the aspects that the usage status may include, and according to the exemplary implementation of the present disclosure, the usage status may include more or fewer aspects.
[0031] At block 320, a set of target blocks 220 in which potential failures will occur may be detected from the plurality of blocks based on the respective usage states 210 of the plurality of blocks. Figure 4 Further details regarding determining a set of target blocks 220 are described. Figure 4 A block diagram 400 is schematically shown for detecting a group of target blocks 220 in which potential failures are about to occur in a storage system 100 according to an implementation of the present disclosure. Figure 4 As shown, the respective features 410 of each block in the plurality of blocks can be determined based on the respective usage status 210 of the plurality of blocks. It will be understood that the feature 410 herein refers to an indication for describing the current usage status of the block. According to an exemplary implementation of the present disclosure, the feature may include multiple dimensions, and each dimension may represent data of one aspect of the usage status. In a simple example, a three-dimensional vector (address, temperature, whether there is a fault) may be used to represent the feature 410 of the block. According to an exemplary implementation of the present disclosure, a more complex data structure may also be used to represent the feature.
[0032] like Figure 4As shown, an association relationship 430 between a failure in a block in a storage device in the storage device pool 140 and a feature of the block can be obtained. It will be understood that the association relationship 430 here can be determined based on a block in a storage device of a specific model and historical experience of whether a failure occurs in the block. In this implementation, the association relationship 430 can be called using a machine learning module 420. Further, the machine learning module 420 can identify a target block that is about to fail from a plurality of blocks based on the respective features 420 and the association relationship 430 of the plurality of blocks.
[0033] use Figure 4 The implementation shown can predict which / which blocks in the multiple storage devices 142, 144, ..., and 146 in the storage device pool 140 may fail based on the association relationship 430. According to the exemplary implementation of the present disclosure, the fault identifier of each block can be obtained by scanning each block. Assume that a three-dimensional vector (address, fault identifier, whether there is a fault) is used to represent the feature 420 of the block, and the association relationship 430 defines that when the value of the fault identifier is a specific value, the block faces a risk of failure. At this time, the block with a fault identifier of a specific value can be identified as a target block. At this time, the characteristics of each block can be input into the machine learning module 420 respectively, and the machine learning module 420 can identify the target block that may fail based on the association relationship 430.
[0034] According to the exemplary implementation of the present disclosure, the association relationship can be trained based on the sample features of multiple sample blocks included in a set of sample storage devices and the faults in the multiple sample blocks. Machine learning technology has become a mature technical solution for dealing with various complex problems. Here, based on machine learning technology, the sample features of the blocks that cause faults and the sample features of the blocks that do not cause faults obtained in historical operations can be used to train the above association relationship 430. The above exemplary implementation can provide a more reliable basis for the subsequent operation of identifying faulty blocks.
[0035] It will be understood that the specific type of association relationship 430 is not limited in the context of the present disclosure, but the association relationship 430 can be defined by using a variety of machine learning techniques currently known or to be developed in the future. According to an exemplary implementation of the present disclosure, the association relationship 430 can be obtained based on a neural network model. Using the above exemplary implementation, the obtained association relationship 430 can describe which blocks with what characteristics are more prone to failure, and thus the association relationship 430 can be used to predict which blocks in other storage devices may fail. In this way, blocks in storage devices that may fail can be determined in a more accurate manner based on historical experience.
[0036] According to an exemplary implementation of the present disclosure, the usage status 210 may include the response time of each block in the plurality of blocks to an access request. It will be understood that since some areas in the storage device may fail and cause access requests to the area to be delayed, the response time may be an important indicator of whether the storage device fails. Based on the response time of each block, it is possible to more accurately determine whether there is a failure in each block.
[0037] According to an exemplary implementation of the present disclosure, the usage status further includes a fault identifier and fault information of each block in the plurality of blocks. Generally speaking, by scanning each block of the storage device, the fault identifier of each block can be obtained. The fault identifier here can generally indicate whether there is a fault in the area, whether the fault is recoverable, etc. Further, for different device providers, dedicated fields can also be defined to represent fault information associated with a certain model of storage device for describing more details of the fault. Using the above exemplary implementation, various aspects of the fault information can be described with a finer granularity, and the type of fault can be determined in a more accurate manner.
[0038] According to an exemplary implementation of the present disclosure, a background media scan (BMS) may be performed on a storage device to obtain a usage status. Background media scan is a method for scanning a storage device to obtain the usage status of each address segment in the storage device. By performing a scan on the storage device, the usage status of each address segment in the storage device may be obtained. Figure 5 The scan results shown are used to indicate the usage status of the storage device.
[0039] Figure 5 A block diagram schematically shows a scan result 500 of performing a background media scan on a storage device according to an implementation of the present disclosure. Figure 5 In the scan result 500 shown, the columns represent the numbers of the bytes in the data structure, and the rows represent the numbers of the bits in a byte. Figure 5As shown, the 16th to 23rd bytes of the scan result 500 (as shown in the reference numeral 530) show the logical block address in the storage device, which can identify the location of the block. The 8th to 10th bytes of the scan result 500 (as shown in the reference numeral 510) show the fault identifier 510 of the block at the logical block address 530. Specifically, the fault identifier 510 can also include detailed information such as reallocation status, sense key, additional sense code, and additional sense code qualifier. The 11th to 15th bytes of the scan result (as shown in the reference numeral 520) show a vendor specific field, which is customized by the provider of the storage device to describe more information about the fault. Those skilled in the art can refer to the definition of the BMS scan result to obtain the specific definition of the above dimensions, which will not be repeated in the context of the present disclosure.
[0040] According to an exemplary implementation of the present disclosure, for a given block among multiple blocks, if the response time of the block is higher than a predetermined threshold, the respective features of each block among the multiple blocks are determined. Since the response time is a key indicator indicating whether a block has a potential fault, the subsequent operation of determining the features can be triggered only when the response time is high. In this way, the faulty blocks can be detected more effectively.
[0041] According to the exemplary implementation of the present disclosure, the characteristics of each block can be determined one by one for each block in the plurality of blocks. Specifically, for a given block, a given characteristic of the given block can be determined based on the fault identifier and fault information of the given block. Since the fault identifier and fault information are key indicators indicating a fault, the faulty block can be determined more effectively and accurately using the exemplary implementation. Figure 6 Describes more details about the feature.
[0042] Figure 6 Schematically shows a block diagram of a data structure 600 of features of a block according to an implementation of the present disclosure. Figure 6 As shown, the feature can be represented by a vector, and each dimension in the vector can describe an aspect of the usage state. According to an exemplary implementation of the present disclosure, the feature can include five dimensions: reallocation state 610, sensor key 620, additional sensor code 630, qualification code 640, and provider specific field 650. It will be understood that Figure 6Only an example data structure 600 for representing a feature is schematically shown. According to an exemplary implementation of the present disclosure, other data structures may also be used. In an example, a vector for describing a feature may include more or fewer dimensions. For example, a vector may also include information about a storage device where a block is located.
[0043] According to an exemplary implementation of the present disclosure, the association relationship 430 may be trained based on the features of the multiple blocks included in the multiple storage devices and the failures in the multiple blocks included in the multiple devices. Figure 7 A block diagram 700 schematically shows the relationship between the characteristics of a block and a fault based on historical data training according to an implementation of the present disclosure. Figure 7 As shown, the historical usage status 710 of multiple blocks in the storage system 100 can be obtained, and the historical features 720 of the multiple blocks can be determined based on the historical usage status 710. The historical fault 730 can be determined based on the historical information, where the historical fault 730 indicates whether the multiple blocks have a fault during the time period of the collected historical status. Therefore, based on the historical features 720 and the historical fault 730 as training data, the association relationship 430 can be trained. Here, the trained association relationship 430 can represent the association relationship between the feature and the fault.
[0044] return Figure 3 In the box 330, the scrubbing interval 230 at which the scrubbing operation will be performed on the storage system 100 can be adjusted according to the detection of a group of target blocks 220. According to an exemplary implementation of the present disclosure, if it is determined that a group of target blocks 220 meets a predetermined condition, the scrubbing interval 230 is set to "execute immediately". For example, the predetermined condition may include a threshold number of blocks in which potential failures will occur. For example, if it is found that the number of blocks in a group of target blocks 220 reaches a threshold number, it is considered that there is a high risk in the storage system 100, and thus a scrubbing operation needs to be performed immediately. According to an exemplary implementation of the present disclosure, the predetermined condition may also include the capacity of the blocks in which potential failures will occur. If it is found that the storage space involved in a group of target blocks 220 reaches a threshold capacity, a scrubbing operation needs to be performed immediately.
[0045] At block 340, a scrubbing operation may be performed on at least a portion of the plurality of blocks in the storage system 100 according to the adjusted scrubbing interval to identify the faulty blocks 250. Here, a local scrubbing operation 240 may be performed immediately on a group of target blocks 220 to identify the faulty blocks.
[0046] See above for Figures 2 to 7 A specific example of performing a local scrubbing operation on the storage system 100 is described in detail. In the following, more details about the global scrubbing operation 242 will be described. Figure 3 If no target block in which a potential failure will occur is detected at block 320, it indicates that the multiple blocks in the multiple storage devices in the storage system 100 are in a normal state. At this time, it is not necessary to perform a local scrubbing operation 240 for the storage system 100, but a global scrubbing operation can be performed for the storage system 100 at the interval of a conventional scrubbing operation. It will be understood that since the wear level of the storage device will affect the error of the storage device, the scrubbing interval for performing the global scrubbing operation 242 can also be adjusted based on the wear level.
[0047] Figure 8 A block diagram 800 schematically illustrates a failure rate of a failure occurring in a storage device 100 according to an implementation of the present disclosure. Figure 8 As shown, the horizontal axis schematically shows a timeline of the entire life cycle of the storage device, the left side shows the early stage of the life cycle, and the right side shows the late stage of the life cycle. Figure 8 The vertical axis in schematically shows the probability of failure in the storage device. As shown by curve 810, there may be a higher failure rate at an earlier time when the storage device is put into use. As the storage device is continuously used, the failure rate is lower in the middle period of the life cycle. Further, when the use of the storage device enters the late stage of the life cycle, the failure rate will increase again due to reasons such as device wear.
[0048] Currently, a technical solution has been proposed for predicting the change point in the failure rate based on monitoring the usage status of the storage device. For example, two change points 820 and 830 in the curve 810 can be determined based on a comparison of the error rate of the read / write data in the most recent period and the error rate of the read / write data in the previous period. Based on the two change points 820 and 830, the life cycle of the storage device can be divided into three time periods: early, middle, and late. According to an exemplary implementation of the present disclosure, the wear level of multiple blocks can be determined, and based on the wear level, it can be determined which time period the storage device is in.
[0049] According to an exemplary implementation of the present disclosure, the wear level of the storage device can be determined based on the IO workload of the storage device. It will be understood that the IO workload here refers to how many read / write operations have been performed on the storage device. The life cycle of the storage device is closely related to the total amount of total read / write data that has been performed on the storage device. For a specific type of storage device, there is a corresponding threshold amount for read / write operations. Therefore, based on statistics on the total amount of read / write data, the wear level of the storage device can be determined. Figure 8The read / write data thresholds corresponding to the two change points 820 and 830 described above. During the operation of the storage system 100, the total amount of read / write data of each storage device can be monitored, and the monitored total amount of read / write data can be compared with the read / write data threshold to determine which time period each storage device is currently in, among the early, middle and late periods.
[0050] According to an exemplary implementation of the present disclosure, the wear level of the storage device can also be determined based on the power-on time of the storage device. Specifically, the power-on time of the storage system can be determined by monitoring the Self-Monitoring Analysis and Reporting Technology (SMART) attribute of the storage device. For a specific type of storage device, the power-on time can be determined based on the statistics of the power-on time. Figure 8 The power-on time thresholds corresponding to the two change points 820 and 830 described above. During the operation of the storage system 100, the power-on time of each storage device can be monitored, and the monitored power-on time can be compared with the power-on time threshold to determine which time period each storage device is currently in, among the early, middle and late periods.
[0051] According to an exemplary implementation of the present disclosure, if the wear level indicates that the storage device is currently in the early or late stages of its life cycle, the scrubbing interval 230 may be reduced. It will be appreciated that if the storage device is in the early or late stages of its life cycle, the probability of failure of the storage device is high, and thus reducing the scrubbing interval may allow scrubbing operations to be performed at a more frequent frequency. For example, if the conventional scrubbing interval is 30 days, during the early and late stages of the life cycle, the scrubbing interval 230 may be set to be lower than the conventional scrubbing interval, such as 20 days. In this way, the storage device may be scanned at a higher frequency, thereby increasing the likelihood of discovering a failure.
[0052] According to an exemplary implementation of the present disclosure, if it is determined that the wear level is in the middle of the life cycle, the scrubbing interval can be increased. As the usage time of the storage device increases, the storage device will enter the middle of the life cycle from the early stage, and the scrubbing interval 230 can be increased at this time. For example, the scrubbing interval can be restored to 30 days. For another example, if the storage device is in a stable state for a long time, the scrubbing interval 230 can be further increased. Using the exemplary implementation of the present disclosure, during the period of stable operation of the storage system 110, by increasing the scrubbing interval, the frequency of performing scrubbing operations can be reduced, thereby reducing the additional overhead caused by the scrubbing operation to the normal operation of the storage system 100.
[0053] See above for Figures 2 to 8How to determine the faulty block 250 in the storage system 100 is described in detail. After the faulty block 250 has been determined, further processing can be performed on the faulty block 250 to avoid data loss in the storage system 100. According to the exemplary implementation of the present disclosure, an idle storage device that does not include a faulty block or includes only a few faulty blocks can be selected from multiple storage devices. Further, the data in the faulty block can be reconstructed to the idle block in the idle storage device. Using the above exemplary implementation, the reliability of the storage device can be improved and data loss in the storage system can be avoided.
[0054] Fig. 9 The flowchart of a method 900 for performing subsequent processing on a faulty block according to an implementation of the present disclosure is schematically shown. Fig. 9 As shown, at box 910, a faulty device including a faulty block may be determined, where the faulty device refers to a storage device where the faulty block is located. At box 920, a free block may be selected from other storage devices other than the faulty device of the storage system 100. It will be understood that since multiple faulty blocks may be detected, and multiple faulty blocks may be distributed in different storage devices, free blocks may be preferentially selected from storage devices that do not include any faulty blocks (or only include fewer faulty blocks). Then, at box 930, data in the faulty block may be rebuilt to the selected free block.
[0055] It will be appreciated that the faults in the fault block 250 may be further subdivided into different fault levels. For example, the fault levels may be divided based on the response time and / or other parameters in the fault identifier 610. According to an exemplary implementation of the present disclosure, when the response time is used as the basis for dividing the fault level, if the response time becomes longer but the read and write operations can still be completed within an acceptable time range, the fault may be considered to be a lighter fault and may be processed with a lower priority. If the response time becomes longer and has reached the level of "no response", the fault may be considered to be a serious fault and needs to be processed with priority.
[0056] According to the exemplary implementation of the present disclosure, for a minor fault, the data in the faulty block 250 can be copied to a free block. At this time, although the response time of the faulty block 250 becomes longer, the read and write operations can still be performed, so the data in the faulty block 250 can be directly copied to the normal block.
[0057] According to an exemplary implementation of the present disclosure, the storage system 100 may be a storage system that does not include redundant data, or may be a storage system that includes redundant data. In the following, the relevant reconstruction processes will be described separately. When the storage system 100 is a storage system that does not include redundant data, the reconstruction operation may be performed based on the copy method. If the faulty block has been damaged and there is a "no response" situation, the copy operation will fail at this time and the data in the faulty block 250 may be at risk of being lost. When the storage system 100 is a storage system that includes redundant data, the data in the faulty block 250 may also be restored to a free block based on the data in other blocks in the storage system 100 that are associated with the faulty block. For example, assuming that the storage system 100 is a storage system based on an independent redundant array of disks, the data in the faulty block 250 may be restored based on the data in other normal storage devices.
[0058] According to an exemplary implementation of the present disclosure, when the number of failed blocks in a storage device reaches a predetermined threshold, a backup storage device may be used to replace the storage device, thereby reducing the risk of data loss in the storage system 100.
[0059] See above for Figures 2 to 9 An example of a method according to the present disclosure is described in detail, and the implementation of the corresponding device will be described below. According to an exemplary implementation of the present disclosure, a device for managing scrubbing operations in a storage system is provided. The device includes: an acquisition module, configured to acquire the respective usage status of multiple blocks included in the storage system; a detection module, configured to detect a group of target blocks in which potential failures will occur from the multiple blocks based on the respective usage status of the multiple blocks; an adjustment module, configured to adjust the scrubbing interval of the scrubbing operation to be performed on the storage system according to the detection of a group of target blocks; and an execution module, configured to perform a scrubbing operation on at least a portion of the multiple blocks in the storage system according to the adjusted scrubbing interval to identify the faulty blocks.
[0060] According to an exemplary implementation of the present disclosure, the adjustment module includes: a setting module, configured to set the scrubbing interval to "immediate execution" based on determining that a group of target blocks meet predetermined conditions; and the execution module includes: a local execution module, configured to immediately perform a local scrubbing operation on a group of target blocks to identify faulty blocks.
[0061] According to an exemplary implementation of the present disclosure, the detection module includes: a feature determination module, configured to determine the respective features of each block in the multiple blocks based on the respective usage status of the multiple blocks; an association acquisition module, configured to obtain the association between the faults in the multiple blocks and the respective features of the multiple blocks; and an identification module, configured to identify a group of target blocks in which potential faults are about to occur from the multiple blocks based on the respective features and the association relationships of the multiple blocks.
[0062] According to an exemplary implementation of the present disclosure, the usage status includes the response time of each block among the multiple blocks to an access request, wherein the feature acquisition module includes: a time feature determination module, configured to determine the respective features of each block among the multiple blocks for a given block among the multiple blocks, in response to the response time of the block being higher than a predetermined threshold.
[0063] According to an exemplary implementation of the present disclosure, the usage status further includes a fault identifier and fault information of each block in the multiple blocks; and the feature acquisition module includes: a fault feature determination module, configured to determine a given feature of a given block based on the fault identifier and fault information of the given block.
[0064] According to an exemplary implementation of the present disclosure, the association relationship acquisition module includes: the training association relationship acquisition module trains the association relationship based on the characteristics of the multiple blocks included in the multiple storage devices of the storage system and the failures in the multiple blocks included in the multiple storage devices.
[0065] According to an exemplary implementation of the present disclosure, the adjustment module includes: a wear determination module configured to determine the wear level of multiple blocks based on determining that a target block in which a potential failure is about to occur is not detected; and an interval adjustment module configured to adjust the scrubbing interval based on the determined wear level.
[0066] According to an exemplary implementation of the present disclosure, the interval adjustment module includes: a lowering module configured to lower the scrubbing interval based on determining that the wear level is in either the early or late stages of the life cycle of a storage device in the storage system; and an increasing module configured to increase the scrubbing interval based on determining that the wear level is in the middle of the life cycle.
[0067] According to an exemplary implementation of the present disclosure, the execution module includes: a global execution module configured to perform a global scrubbing operation on a plurality of blocks according to an adjusted time period to identify a faulty block.
[0068] According to an exemplary implementation of the present disclosure, it further includes: a selection module configured to select a free storage device from other storage devices including the faulty block among multiple storage devices in the storage system; and a reconstruction module to rebuild the data in the faulty block to a free block in the free storage device.
[0069] Fig.10 A block diagram of a device 1000 for managing a storage system according to an exemplary implementation of the present disclosure is schematically shown. 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 a read-only memory (ROM) 1002 or computer program instructions loaded from a storage unit 1008 into a random access memory (RAM) 1003. In the RAM 1003, various programs and data required for the operation of the device 1000 can also be stored. The CPU 1001, the ROM 1002, and the RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0070] A number of components in the device 1000 are connected to the I / O interface 1005, including: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a disk, an optical disk, etc.; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1009 allows the device 1000 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0071] The various processes and processing described above, such as methods 300 and 900, may be performed by the processing unit 1001. For example, in some implementations, methods 300 and 900 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 1008. In some implementations, part or all of the computer program may be loaded and / or installed on the device 1000 via the ROM 1002 and / or the communication unit 1009. When the computer program is loaded into the RAM 1003 and executed by the CPU 1001, one or more steps of the methods 300 and 900 described above may be performed. Alternatively, in other implementations, the CPU 1001 may also be configured in any other appropriate manner to implement the above-described processes / methods.
[0072] According to an exemplary implementation of the present disclosure, a device for managing scrubbing operations in a storage system is provided, the device comprising: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the device to perform an action when executed by the at least one processor. The action comprises: obtaining the respective usage status of the plurality of blocks included in the storage system; based on the respective usage status of the plurality of blocks, detecting a group of target blocks in which potential failures are about to occur from the plurality of blocks; adjusting the scrubbing interval of the scrubbing operation to be performed on the storage system according to the detection of the group of target blocks; and performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval to identify the failed blocks.
[0073] According to an exemplary implementation of the present disclosure, based on detecting a group of target blocks, adjusting the scrubbing interval of a scrubbing operation to be performed on a storage system includes: setting the scrubbing interval to "execute immediately" based on determining that a group of target blocks satisfy a predetermined condition; and based on the adjusted scrubbing interval, performing a scrubbing operation on at least a portion of a plurality of blocks in the storage system to identify faulty blocks includes: immediately performing a local scrubbing operation on a group of target blocks to identify the faulty blocks.
[0074] According to an exemplary implementation of the present disclosure, based on the respective usage states of the multiple blocks, detecting a group of target blocks in which potential faults will occur from the multiple blocks includes: determining respective characteristics of each of the multiple blocks based on the respective usage states of the multiple blocks; obtaining an association relationship between the faults in the multiple blocks and the respective characteristics of the multiple blocks; and identifying a group of target blocks in which potential faults will occur from the multiple blocks based on the respective characteristics and the association relationship of the multiple blocks.
[0075] According to an exemplary implementation of the present disclosure, the usage status includes a response time of each block among the multiple blocks to an access request, wherein determining the respective characteristics of each block among the multiple blocks includes: for a given block among the multiple blocks, in response to the response time of the block being higher than a predetermined threshold, determining the respective characteristics of each block among the multiple blocks.
[0076] According to an exemplary implementation of the present disclosure, the usage status further includes a fault identifier and fault information of each block in the multiple blocks; and wherein determining the respective characteristics of each block in the multiple blocks includes: for a given block, determining a given characteristic of the given block based on the fault identifier and fault information of the given block.
[0077] According to an exemplary implementation of the present disclosure, acquiring the association relationship includes: training the association relationship based on features of multiple blocks included in multiple storage devices of the storage system and faults in multiple blocks included in the multiple storage devices.
[0078] According to an exemplary implementation of the present disclosure, adjusting the scrubbing interval of a scrubbing operation to be performed on a storage system based on detecting a group of target blocks includes: determining the wear level of multiple blocks based on determining that target blocks in which potential failures are about to occur are not detected; and adjusting the scrubbing interval based on the determined wear level.
[0079] According to an exemplary implementation of the present disclosure, adjusting the scrubbing interval according to the determined wear level includes any of the following: reducing the scrubbing interval according to determining that the wear level is in any of the early and late stages of the life cycle of a storage device in the storage system; and increasing the scrubbing interval according to determining that the wear level is in the middle of the life cycle.
[0080] According to an exemplary implementation of the present disclosure, performing a scrubbing operation on at least a portion of a plurality of blocks in a storage system according to an adjusted scrubbing interval to identify faulty blocks includes: performing a global scrubbing operation on a plurality of blocks according to an adjusted time period to identify faulty blocks.
[0081] According to an exemplary implementation of the present disclosure, the action further includes: selecting a free storage device from other storage devices other than the storage device including the faulty block among multiple storage devices in the storage system; and rebuilding the data in the faulty block to a free block in the free storage device.
[0082] According to an exemplary implementation of the present disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing a method according to the present disclosure.
[0083] According to an exemplary implementation of the present disclosure, a computer-readable medium is provided. The computer-readable medium stores machine-executable instructions, and when the machine-executable instructions are executed by at least one processor, the at least one processor implements the method according to the present disclosure.
[0084] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.
[0085] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0086] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0087] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state 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 "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of 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., using an Internet service provider to connect via the Internet). In some implementations, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0088] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0089] 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 device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0090] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0091] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0092] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the marketplace, or to enable other persons of ordinary skill in the art to understand the implementations disclosed herein.
Claims
1. A method for managing scrubbing operations in a storage system, the method comprising: Obtaining the usage status of each of the plurality of blocks in the storage system, The multiple blocks are from the same or different storage devices respectively. The usage status of the block includes a first plurality of states of the block and a second plurality of states of the storage device to which the block belongs; determining characteristics of each of the plurality of blocks from usage states of each of the plurality of blocks; Determining historical features of the multiple blocks based on historical usage states of the multiple blocks, and training associations between faults in the multiple blocks and respective features of the multiple blocks based on the historical features of the multiple blocks and historical faults indicating whether the multiple blocks have faults within a time period from which the historical usage states are collected; Based on the respective characteristics of the plurality of blocks and the association relationship, a group of target blocks in which potential failures will occur are detected from the plurality of blocks, wherein the characteristic of the block comprises a multidimensional data structure reflecting values corresponding to at least a subset of a combination of the first plurality of states and the second plurality of states, the values corresponding to the block; adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system according to the detected set of target blocks; as well as performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval; as well as Based on the scrubbing operation, a failed block among the plurality of blocks is identified.
2. The method according to claim 1, wherein adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system according to detecting the set of target blocks comprises: According to determining that the group of target blocks meets a predetermined condition, setting the scrubbing interval to "execute immediately"; as well as Wherein, performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval includes: immediately performing a partial scrubbing operation on the group of target blocks.
3. The method according to claim 1, wherein the usage status of the plurality of blocks comprises a response time of each of the plurality of blocks to an access request, Determining the characteristics of each of the plurality of blocks includes: For a given block among the plurality of blocks, in response to a response time of the given block being higher than a predetermined threshold, a characteristic of the given block is determined.
4. The method according to claim 3, wherein the usage status of the plurality of blocks comprises a fault identifier and fault information of each of the plurality of blocks; and Determining the characteristic of a block in the plurality of blocks further comprises: For the given block, the feature of the given block is determined based on the fault identifier and the fault information of the given block.
5. The method according to claim 1, wherein adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system according to detecting the set of target blocks comprises: determining wear levels of the plurality of blocks based on determining that a target block in which a potential failure will occur is not detected; as well as Based on the determined wear level, the scrubbing interval is adjusted.
6. The method of claim 5, wherein adjusting the scrubbing interval according to the determined wear level comprises any one of the following: reducing the scrubbing interval based on determining the wear level at any one of an early stage and a late stage in a life cycle of a storage device in the storage system; and The scrubbing interval is increased based on determining the wear level in the middle of the life cycle of the storage device in the storage system.
7. The method according to claim 5, wherein performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval comprises: A global scrubbing operation is performed on the plurality of blocks according to the adjusted scrubbing interval.
8. The method according to claim 1, further comprising: Selecting a free storage device from other storage devices other than the storage device including the failed block among the plurality of storage devices in the storage system; as well as The data in the failed block is rebuilt into the free block in the free storage device.
9. An apparatus for managing scrubbing operations in a storage system, the apparatus comprising: at least one processor; Volatile memory; as well as 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 actions, the actions comprising: Obtaining the usage status of each of the plurality of blocks in the storage system, The multiple blocks are from the same or different storage devices respectively. The usage status of the block includes a first plurality of states of the block and a second plurality of states of the storage device to which the block belongs; determining respective characteristics of the plurality of blocks from respective usage states of the plurality of blocks; determining historical features of the multiple blocks based on historical usage states of the multiple blocks, and training associations between faults in the multiple blocks and respective features of the multiple blocks based on the historical features of the multiple blocks and historical faults indicating whether the multiple blocks have faults within a time period from which the historical usage states are collected, Based on the respective characteristics of the plurality of blocks and the association relationship, a group of target blocks in which potential failures will occur are detected from the plurality of blocks, wherein the characteristic of the block comprises a multidimensional data structure reflecting values corresponding to at least a subset of a combination of the first plurality of states and the second plurality of states, the values corresponding to the block; adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system based on detecting the set of target blocks; and performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval; and Based on the scrubbing operation, a failed block among the plurality of blocks is identified.
10. The apparatus according to claim 9, wherein adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system according to detecting the group of target blocks comprises: According to determining that the group of target blocks meets a predetermined condition, setting the scrubbing interval to "execute immediately"; as well as Wherein, performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval comprises: A local scrubbing operation is immediately performed on the set of target blocks.
11. The apparatus according to claim 9, wherein the usage status of the plurality of blocks comprises a response time of each of the plurality of blocks to an access request, wherein determining the characteristics of each of the plurality of blocks comprises: For a given block among the plurality of blocks, in response to a response time of the given block being higher than a predetermined threshold, a characteristic of the given block is determined.
12. The apparatus according to claim 11, wherein the usage status of the plurality of blocks comprises a fault identifier and fault information of each of the plurality of blocks; and Determining the characteristic of a block in the plurality of blocks includes: For the given block, the feature of the given block is determined based on the fault identifier and the fault information of the given block.
13. The apparatus according to claim 9, wherein adjusting a scrubbing interval of a scrubbing operation to be performed on the storage system according to detecting the group of target blocks comprises: determining wear levels of the plurality of blocks based on determining that a target block in which a potential failure will occur is not detected; as well as Based on the determined wear level, the scrubbing interval is adjusted.
14. The apparatus of claim 13, wherein adjusting the scrubbing interval according to the determined wear level comprises any one of: reducing the scrubbing interval based on determining the wear level at any one of an early stage and a late stage in a life cycle of a storage device in the storage system; and The scrubbing interval is increased based on determining the wear level in the middle of the life cycle of the storage device in the storage system.
15. The device according to claim 13, wherein performing the scrubbing operation on at least a portion of the plurality of blocks in the storage system according to the adjusted scrubbing interval comprises: A global scrubbing operation is performed on the plurality of blocks according to the adjusted scrubbing interval.
16. A computer program product comprising a computer program tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions for performing the method according to any one of claims 1-8.
Citation Information
Patent Citations
Disk sector fault detection method, device and equipment
CN109960598A
Control method of semiconductor memory device
JP2010160816A
Electronic device and method for controlling the same
JP2013137792A
Determination of faulty state of storage device
US20190205198A1