Method, apparatus and program product for managing access requests in a storage system
By determining whether the address range involved in the access request in the storage system is performing garbage collection operations, identifying the access type and selecting the address range that does not perform garbage collection operations to respond to the request, the access delay problem caused by garbage collection in the storage system is solved, and the system is improved response speed and efficiency.
Patent Information
- Application Number
- CN201911176961.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-11-26
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2039-11-26
AI Technical Summary
When existing storage systems perform garbage collection operations, they are prone to delay access requests, and administrators cannot modify the internal settings of the storage device to optimize garbage collection performance. How to effectively manage garbage collection and access requests in the storage system to reduce latency.
By obtaining the address range of data objects involved in the access request, determine whether a garbage collection operation is being performed, identify the access request type based on this, and respond to the access request using the address range where the garbage collection operation is not performed, avoiding delays.
It improves the response speed and efficiency of the storage system, reduces the impact of garbage collection operations on access requests, and improves the user experience.
Smart Images

Figure CN112948279B_ABST
Abstract
Description
Technical Field
[0001] Implementations of the present disclosure relate to management of storage systems, and more particularly, to methods, devices, and computer program products for managing access requests in storage systems. Background Art
[0002] With the development of data storage technology, various data storage devices have been able to provide users with higher and higher data storage capabilities, and the access request speed has also been greatly improved. As users continue to write and delete data in the storage system, fragmentation will appear in the storage space in the storage system. Fragmentation here means that the free storage space in the storage system is not continuous, but there is a situation where the size of the free storage space and the allocated storage space is too small and intertwined. At this time, it is necessary to perform garbage collection (Garbage Collection) on the storage system to ensure that the free blocks and allocated blocks in the storage system are distributed as continuously as possible. At this time, how to manage garbage collection and subsequent access request operations in the storage system in a more effective way has become a research hotspot. Summary of the invention
[0003] 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 tasks in the storage system in a more efficient manner by modifying various configurations of the existing storage systems.
[0004] According to a first aspect of the present disclosure, a method for managing access requests in a storage system is provided. In the method, based on an access request to the storage system, an address range of a data object involved in the access request is obtained. Based on an association relationship between a set of address ranges and a set of operations performed on a set of data blocks within the address range, it is determined whether a garbage collection operation is being performed on the data blocks within the address range. Based on determining that a garbage collection operation is being performed on the data blocks within the address range, an access type of the access request is identified. Based on the access type, the access request is responded to using data blocks within the address range in the storage system that have not been subjected to a garbage collection operation.
[0005] According to a second aspect of the present disclosure, an electronic device is provided, the electronic device comprising: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the electronic device to perform an action for managing access requests in a storage system when executed by the at least one processor. The action comprises: based on an access request to the storage system, obtaining an address range of a data object involved in the access request; based on describing an association relationship between a set of address ranges and a set of operations performed on a set of data blocks within the set of address ranges, determining whether a garbage collection operation is being performed on data blocks within the address range; based on determining that a garbage collection operation is being performed on data blocks within the address range, identifying an access type of the access request; and based on the access type, responding to the access request using data blocks within the address range in the storage system that have not been subjected to a garbage collection operation.
[0006] 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
[0007] 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:
[0008] Figure 1A and 1B Schematic diagrams of storage systems in which implementations of the present disclosure may be implemented are schematically shown respectively;
[0009] Figure 2 A block diagram schematically illustrates an exemplary environment in which implementations of the present disclosure may be implemented;
[0010] Figure 3 Schematically shows Figure 2 A diagram of the storage resource pool in ;
[0011] Figure 4 A block diagram schematically illustrates a process for managing access requests in a storage system according to an exemplary implementation of the present disclosure;
[0012] Figure 5 A flowchart of a method for managing access requests in a storage system according to an exemplary implementation of the present disclosure is schematically shown;
[0013] Fig. 6A A block diagram schematically illustrates an example of performance features according to an exemplary implementation of the present disclosure;
[0014] Figure 6B A block diagram schematically illustrates another example of performance features according to an exemplary implementation of the present disclosure;
[0015] Figure 7 A block diagram schematically illustrates a process for establishing an association relationship between performance characteristics and garbage collection status according to an exemplary implementation of the present disclosure;
[0016] Figure 8 A block diagram schematically illustrates a process of executing an access request on a storage system according to an access type according to an exemplary implementation of the present disclosure; and
[0017] Fig. 9 A block diagram of a device for managing access requests in a storage system according to an exemplary implementation of the present disclosure is schematically shown. DETAILED DESCRIPTION
[0018] 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.
[0019] 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.
[0020] It will be appreciated that during the operation of the storage system, in order to ensure the efficiency of the storage system and the continuity of the allocatable storage space, a garbage collection operation is usually performed in the background. In the garbage collection operation, it is necessary to perform the migration of data blocks so that the scattered allocated data blocks can be, for example, migrated to a continuous storage space. In this way, it can be ensured that the allocated blocks are distributed continuously, and the free blocks available for allocation can also be distributed continuously. The garbage collection operation is usually performed in the background of the storage system and will cause a delay in the access request operation performed on the data blocks in the storage system.
[0021] Currently, technical solutions for improving the performance of garbage collection have been provided. In one technical solution, a storage device provider has proposed a technical solution for improving the performance of garbage collection by optimizing firmware. However, the technical solution is implemented inside the storage device. After the storage device has been deployed in the storage system, the administrator of the storage system cannot modify the settings inside the storage device.
[0022] In another technical solution, garbage collection management at the storage system level has been proposed. For example, it is possible to avoid performing large-scale garbage collection after there is too much garbage in the storage system, and instead perform small-scale garbage collection in the storage system at any time. Although this technical solution can avoid access request delays during a long period of time caused by large-scale garbage collection. However, if a user happens to access data in the storage system during a small-scale garbage collection, the access request will also be delayed. At this time, how to handle access to data blocks in the storage system in order to reduce the delay caused by garbage collection has become a research hotspot.
[0023] In the following, the application environment of the present disclosure will be described first. In the context of the present disclosure, the storage system may be a RAID-based storage system. A RAID-based storage system may combine multiple storage devices into a disk array. By providing redundant storage devices, the reliability of the entire disk group may be greatly improved over a single storage device. RAID may provide various advantages over a single storage device, such as enhanced data integrity, enhanced fault tolerance, increased throughput or capacity, and the like. There are multiple standards for RAID, such as RAID-1, RAID-2, RAID-3, RAID-4, RAID-5, RAID-6, RAID-10, RAID-50, and the like. For more details about RAID levels, those skilled in the art may refer to, for example, https: / / en.wikipedia.org / wiki / Standard_RAID_levels, and https: / / en.wikipedia.org / wiki / Nested_RAID_levels, and the like.
[0024] Figure 1A A schematic diagram of a storage system 100A in which the method of the present disclosure can be implemented is schematically shown. Figure 1A In the storage system shown, a RAID-5 (4D+1P, where 4D means that the storage system includes four storage devices for storing data, and 1P means that the storage system includes one storage device for storing P parity) array including five independent storage devices (110, 112, 114, 116, and 118) is used as an example to illustrate the working principle of RAID. It should be noted that although Figure 1AFive storage devices are schematically shown in FIG. 1 . In other implementations, more or fewer storage devices may be included depending on the level of the RAID. Figure 1A , 126 are shown. In other examples, the RAID system may include a different number of stripes.
[0025] In RAID, a stripe 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 area in multiple storage devices that satisfies a certain address range. The data stored in stripe 120 includes multiple 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 stored data, and data block P0 is the P check of the stored data.
[0026] The manner of storing data in the other stripes 122 and 124 is also similar to the stripe 120, except that the checksums for the other data blocks may be stored on a storage device different from the storage device 118. In this way, when a storage device among the plurality of storage devices 110, 112, 114, 116, and 118 fails, the data in the failed device may be recovered from other normal storage devices.
[0027] Figure 1B A schematic diagram 100B schematically shows a reconstruction process of the storage system 100A. Figure 1B As shown, when a storage device (e.g., the storage device 116 shown in shadow) fails, data can be recovered from the remaining normally operating multiple storage devices 110, 112, 114, and 118. At this time, a new backup storage device 118B can be added to the RAID to replace the storage device 118, so that the recovered data can be written to 118B and the system can be rebuilt.
[0028] It should be noted that although in the above reference Figure 1A and Figure 1BA storage system of RAID-5 including 5 storage devices (4 of which are used to store data and 1 storage device to store parity) is described. According to the definition of other RAID levels, there may also be storage systems including other numbers of storage devices. For example, based on the definition of RAID-6, two storage devices may be used to store parity P and Q respectively. For another example, based on the definition of triple-parity RAID, three storage devices may be used to store parity P, Q, and R respectively.
[0029] With the development of distributed storage technology, Figure 1A and 1B The storage devices 110, 112, 114, 116 and 118 in the storage system shown are no longer limited to physical storage devices, but can be virtual storage devices. For example, each block on the storage device 110 can come from different physical storage devices (hereinafter referred to as storage devices) in the resource pool. Figure 2 Schematically shows a block diagram of an exemplary environment in which the method of the present disclosure can be implemented. Figure 2 As shown, the storage resource pool 270 may include multiple physical storage devices 210, 220, 230, 240, 250, ..., 260. At this time, the storage space in the multiple storage devices may be allocated to multiple user storage systems 290, ..., 292. At this time, the user storage systems 290, ..., 292 may access the storage space in each storage device in the storage resource pool 270 via the network 280.
[0030] Figure 3 The schematic diagram shows Figure 2 1 is a diagram of more information about the storage resource pool 270 shown. The resource pool 270 may include multiple storage devices 210, 220, 230, 240, 250, ..., 260. Each storage device may include multiple blocks, wherein legend 320 represents a free block, legend 322 represents a block for RAID stripe 1 of the storage system 100A in FIG. 1, and legend 324 represents a block for RAID stripe 2 of the storage system 100A in FIG. 1. At this time, blocks D11, D22, D33, and D44 for RAID stripe 1 are respectively used to store data blocks of the stripe, and block D55 is used to store data verification. Blocks D01, D12, D23, and D34 for RAID stripe 2 are respectively used to store data blocks of stripe 2, and block D45 is used to store data verification.
[0031] like Figure 3As shown in , the address map 330 shows the association between the stripe and the address of the block in the stripe. For example, RAID stripe 1 may include 5 blocks: D11, D22, D33, D44 and D55, which are located in storage devices 210, 220, 230, 240 and 250 respectively. Figure 3 As shown, block D11 is the first block in storage device 220, and block D22 is the second block in storage device 230. Figure 3 As shown, there may also be a reserved free portion 310 in each storage device, so that when a storage device in the resource pool fails, blocks in the free portion 310 in each storage device can be selected to rebuild each block in the failed storage device.
[0032] It should be noted that Figure 3 Only the 4D+1P RAID-5 storage system is used as an example to illustrate how the blocks in each stripe are distributed in multiple storage systems in the resource pool. When other RAID levels are used, those skilled in the art can implement specific details based on the above principles. For example, in a 6D+1P+1Q RAID-6 storage system, the 8 blocks in each stripe can be distributed on multiple storage devices, thereby ensuring load balancing of multiple storage devices.
[0033] In the following, we will refer to Figure 4 Describes the high-level process for managing access requests. Figure 4 A block diagram 400 schematically illustrates a process for managing access requests in a storage system according to an exemplary implementation of the present disclosure. Figure 4 As shown, an access request 410 may be obtained, where the access request 410 may come from a user of the storage system 290. Alternatively and / or additionally, the access request 410 may also come from the storage system 290 itself, for example, an access request for maintaining the operation of the storage system 290 itself. An address range 420 of a data object desired to be accessed in the access request 410 may be determined.
[0034] The data object expected to be accessed may be located in any storage device in the storage system, and the storage device may be undergoing a garbage collection operation. According to an exemplary implementation of the present disclosure, an association relationship 430 is proposed, where the association relationship 430 may describe the association between a set of address ranges and a set of operations performed on a set of data blocks within the set of address ranges. The association relationship 430 may be obtained based on machine learning technology, and the garbage collection status 440 may be obtained based on the obtained association relationship 430, that is, it may be determined whether the address range 420 involved in the access request 410 is being subjected to a garbage collection operation. Since the garbage collection operation will greatly reduce the read / write performance of the data, when it is determined that the address range 420 expected to be accessed is undergoing a garbage collection operation, a set of storage devices 460 in the storage system that are not currently undergoing a garbage collection operation may be utilized to serve the access request 410.
[0035] By using the exemplary implementation of the present disclosure, since the access speed of a group of storage devices 460 that have not been subjected to garbage collection operations is relatively fast, such storage devices are used to serve the access request 410, so that the delay caused by the garbage collection operation can be avoided and the access request 410 can be responded to at a relatively high speed. Figure 5 Describes more details about managing access requests.
[0036] Figure 5 Schematically shows a flow chart of a method 500 for managing access requests in a storage system according to an exemplary implementation of the present disclosure. Figure 5 At block 510 in FIG. 4 , based on the access request 410 for the storage system, the address range 420 of the data object involved in the access request 410 is obtained. Based on the format of the access request 410, the address range 420 of the data object can be directly obtained from the access request 410. For example, the format of the read request is usually READ (obj, start_add, len), and the address range of the data object is the area starting from start_address and having a length of len. The format of the write request is similar, so the address range 420 involved in the write request can be obtained in a similar manner.
[0037] At block 520, it may be determined whether a garbage collection operation is being performed on a data block within the address range 420 based on an association relationship 430 between a set of address ranges and a set of operations performed on a set of data blocks within the set of address ranges. The association relationship 430 here may be obtained based on a machine learning method. Fig. 6A and Figure 6B To describe the performance characteristics used to obtain the association relationship 430.
[0038] According to an exemplary implementation of the present disclosure, in order to generate an association relationship between the performance characteristics of an address range in a storage system and the garbage collection state, a set of performance characteristics may be generated based on a set of address ranges. Fig. 6A and Figure 6B to describe more details about the performance characteristics. Fig. 6A Schematically illustrates a block diagram of an example of a performance feature 600A according to an exemplary implementation of the present disclosure. Fig. 6A As shown, the performance characteristics may include at least any one of a delay time 610 , a variation 620 , and a data flow 630 .
[0039] According to an exemplary implementation of the present disclosure, a performance feature in a set of performance features may include multiple contents. Fig. 6A As shown, the performance characteristics may include: a delay time 610, which represents the delay of accessing a data block in a group of data blocks. In the case where no garbage collection operation is performed, assuming that an access request is performed on the data block, the result will be obtained after a time period T1. When a garbage collection operation is being performed on the data block, if the same access request is performed on the data block, the result will be obtained after a time period T2. At this time, ΔT=T2-T1 is the access delay time 610.
[0040] According to an exemplary implementation of the present disclosure, the performance feature 600A may include a change 620 of the delay time 610 within a predetermined time period. For example, the change 620 here may be calculated based on the variance. In other words, the change may be determined based on the average of the squared values of the difference between each sample value and the average of all sample values within the predetermined time period. For another example, the change may be determined based on the difference from the average value.
[0041] According to an exemplary implementation of the present disclosure, the performance feature 600A may further include the amount of data 630 of the data block being accessed. The amount of data 630 here is the amount of data to be accessed as defined by the access request. For a read request, the amount of data may represent the size of the data object to be read from the storage system as specified by the read request; for a write request, the amount of data may represent the size of the data object to be written to the storage system as specified by the write request.
[0042] It will be understood that the access request may be a write request and the write request may specify writing a data object to the storage system, however, a portion of the data object may have already been stored in the storage system. The above situation is particularly common in backup systems. For example, the backup system may regularly back up a user's file system, and only a small number of data objects in the file system may have been modified since the last backup. In this case, it is not necessary to rewrite the entire file system to the storage system, but the write request may be executed in an incremental manner. In this case, the data object specified by the write request may be large, but the actual amount of data written may be small.
[0043] See also Figure 6B ,Should Figure 6B Schematically shows a block diagram of another example of performance characteristics 600B according to an exemplary implementation of the present disclosure. According to an exemplary implementation of the present disclosure, the performance characteristics further include a payload in the amount of data. Figure 6B The meanings of the elements denoted by reference numerals 610 to 630 are the same as those in Fig. 6A , except that performance characteristic 600B also includes a net load 640. The net load 640 here represents the amount of data actually involved in the access request. For example, for a write request, the net load can be the amount of data that actually needs to be written to the storage system. In order to determine the net load, the difference between the amount of data accessed in the data block and the target data object in the storage system can be determined, and the net load can be determined based on the difference. Using the exemplary implementation of the present disclosure, the amount of data involved in the interaction with the data in the storage system can be more accurately measured, and then the association relationship 430 can be generated in a manner that is more in line with the actual operating conditions of the storage system.
[0044] According to an exemplary implementation of the present disclosure, a set of performance characteristics associated with a set of data blocks can be obtained based on the historical performance of the storage system in the past period of time. For example, corresponding performance characteristics can be obtained for each data block in a set of data blocks, for example, a set of performance characteristics as shown in Table 1 below can be obtained. Column 1 in Table 1 shows the identifier of the data block, and columns 2 to 5 show the identifiers of the data blocks as shown in Table 1 below. Figure 6B Individual performance characteristics shown.
[0045] Table 1 Examples of performance characteristics
[0046] Data Block Delay time change Data Flow Payload block_1 block_2 block_3 … … … … … block_n
[0047] Furthermore, it is also possible to determine that a group of data blocks are being executed with a group of operations. The garbage collection state of each data block, that is, whether the data block is currently undergoing a garbage collection operation, can be determined based on the underlying function call to the storage device. Then, based on the performance characteristics shown in Table 1 and the determined garbage collection state, a machine learning method can be used to train the association relationship 430. Specifically, the association relationship can be trained based on a group of performance characteristics and a group of operations associated with a group of data blocks, so that a group of operation state estimates obtained based on the trained association relationship and a group of performance characteristics match the group of operations. In the following, reference will be made to Figure 7 Describes more details about training associations.
[0048] Figure 7 A block diagram 700 schematically illustrates a process for establishing an association relationship 430 between performance characteristics and garbage collection status according to an exemplary implementation of the present disclosure. Figure 7 As shown, multiple impact factors 720, 722, ..., and 724 can be set. Each impact factor can represent the impact of a corresponding attribute in the feature on an aspect of the association relationship 430, and a corresponding weight can be set for each impact factor. For example, a weight W1 can be set for the impact factor 720, a weight W2 can be set for the impact factor 722, ..., and a weight Wm can be set for the impact factor 724.
[0049] Based on machine learning technology, a state function 730 can be constructed. It is expected that the state function 730 can describe the association relationship between multiple performance characteristics 710, 712, 714, ..., and 716 and the corresponding garbage collection state 740. After the association relationship 430 has been trained based on historical data, if the performance characteristics 710, 712, 714, ..., and 716 are respectively input into the association relationship 430, the garbage collection state 740 determined by the association relationship 430 tends to be consistent with the garbage collection state in the corresponding history collected in the storage system.
[0050] For example, suppose that the influence factor (where xi represents the i-th influence factor) and the corresponding weight (where wi represents the weight of the i-th influence factor) are respectively represented by Formula 1 and Formula 2, wherein the integer m (for example, in the example of Table 1 above, m=4) represents the number of influence factors. In this case, the vector X T Represents a set of influencing factors, vector W T Indicates the corresponding weight.
[0051] X T =[x1 x2 … x m ] Formula 1
[0052] W T=[w1 w2 … w m ] Formula 2
[0053] The state function 730 may be expressed using the following formula 3, where z represents the state function and b represents a constant.
[0054]
[0055] The Sigmoid function can be used as the activation function of the association relationship 430. Further, a cost function can be established to represent the difference between the historical performance characteristics in the collected historical data and the garbage collection state estimation determined based on the association relationship 430. The collected historical data can be used to iteratively train the association relationship 430 based on the formula described above until the cost function meets the predetermined conditions. It will be understood that the above only schematically illustrates the general principle for establishing the association relationship 430. In the context of the present disclosure, there is no restriction on the method used to train the association relationship 430, but the association relationship 430 can be obtained based on a variety of training techniques that have been developed so far and / or will be developed in the future.
[0056] According to an exemplary implementation of the present disclosure, the current set of performance characteristics can be continuously used to train the association relationship 430. Further, as time goes by, the association relationship 430 can also be updated based on the newly collected performance characteristics and the corresponding garbage collection status. In the case where the association relationship 430 has been obtained, it can be determined whether a garbage collection operation is being performed within the address range specified by the access request based on the association relationship 430 and the performance characteristics of the specified range. Specifically, the performance characteristics associated with the data blocks within the address range can be first determined. The performance characteristics here are of the same dimension as the performance characteristics collected when generating the association relationship 430. According to Figure 6B In the data structure shown, if the performance characteristics include four attributes, then at this time, for the data block in the address range specified in the access request, the delay time, change, data volume and net load associated with the data block can be obtained respectively.
[0057] According to an exemplary implementation of the present disclosure, an operating state estimation associated with the performance feature can be obtained based on the determined performance feature and the association relationship 430. Specifically, the obtained performance characteristics can be input into the association relationship 430 to determine whether a garbage collection operation is being performed on a data block within the address range. It will be understood that since the association relationship 430 is trained based on past historical performance characteristics and historical garbage collection states, the association relationship 430 can accurately reflect the association between the performance feature and the garbage collection state. Therefore, based on the association relationship 430, it can be predicted whether a garbage collection operation is currently being performed on a data block based on the performance characteristics of the data block.
[0058] It will be understood that since the garbage collection operation is a background operation inside the storage device in the storage system, it is not possible to determine which data block in which storage device in the storage system is being subjected to the garbage collection operation at the storage system level. By using the exemplary implementation of the present disclosure, it is possible to estimate whether a data block is undergoing the garbage collection operation at the storage system level in a more convenient and quicker manner based on machine learning technology without calling the underlying functions of the storage device.
[0059] return Figure 5 At block 530, based on determining that a garbage collection operation is being performed for a data block within the address range, an access type for the access request may be identified. It will be appreciated that multiple types of access requests may be performed for a storage system. For example, a read request may be performed that may define reading a data object from a specified address range in the storage system. For another example, a write request may be performed that may define writing a data object to a specified address range in the storage system. For another example, a space allocation request may be performed that may define allocating a predetermined size of storage space from the storage system.
[0060] At block 540, an access request may be executed against the storage system based on the access type. In the following, more details will be described for read requests, write requests, and space allocation requests, respectively. Figure 3 The exemplary implementation of the present disclosure can be implemented in a storage system based on a redundant array of independent disks, so there will be redundant data in the storage system. If a read request is expected to read data in a data block that is being garbage collected, a group of blocks including redundant data associated with the data in the data block can be found, and then the data in the data block expected to be read can be restored based on the data in the found group of blocks.
[0061] In the context of the present disclosure, a storage system may be a redundant array of independent disks, and the storage system may include multiple stripes. Figure 8, which schematically shows a block diagram 800 of a process of executing an access request on a storage system according to an access type according to an exemplary implementation of the present disclosure. Figure 8 A stripe 820 in a storage system is shown, where the width of the storage system is 5 (4D+1P), and the stripe 820 may include data blocks 810, 812, 814, 816, and 818. Assume that a read request is expected to read data in data block 812, and at this time, the address range where the data block 812 is located is undergoing a garbage collection operation. If the data in the data block 812 is read directly, a large time delay will be generated and it will take a long time to return the data to the requester.
[0062] According to an exemplary implementation of the present disclosure, the stripe 820 where the data block 812 in the address range where the garbage collection operation is being performed is located can be determined. A group of data is read from a group of data blocks 810, 814, 816, and 818 other than the data block 812 in the stripe 820. In a 4D+1P storage system, an XOR operation can be performed on the data in the group of data blocks 810, 814, 816, and 818 to reconstruct the data in the data block 812.
[0063] By using the exemplary implementation of the present disclosure, it is not necessary to read data from the storage device that is being garbage collected. In this way, although reading data from a group of other data blocks and restoring the data will cause a certain amount of time and computing resource overhead, compared with the time delay caused by the garbage collection operation, the above overhead will not cause too much workload to the storage system, but can greatly improve the response speed to the read request and improve the user experience.
[0064] According to an exemplary implementation of the present disclosure, when it is determined that the access type is a write type, if data is written directly to a data block that is being garbage collected, a large time delay will be caused. Therefore, at this time, a temporary data block that has not been garbage collected can be selected from the storage system, and the data object is written to the selected temporary data block. It will be understood that the location and type of the temporary data block are not limited according to the exemplary implementation of the present disclosure, and the temporary data block can be an ordinary data block in the storage system. Alternatively and / or additionally, the temporary data block can also be a data block in a dedicated high-speed memory with a higher data access speed in the storage system.
[0065] It will be understood that in a RAID storage system, it is necessary to ensure that multiple data blocks in a stripe are located in different storage devices. Therefore, when selecting a temporary data block, it is necessary to ensure that the storage device where the temporary data block is located is different from the other data blocks in the stripe.
[0066] According to an exemplary implementation of the present disclosure, the stripe where the data block in the address range is located can be determined first. Figure 8 , assuming that the write request expects to write data into data block 812, but the data block 812 is being subjected to garbage collection operation. At this point, a group of other data blocks 810, 814, 816 and 818 in the stripe 820 where the data block 812 is located can be determined. A storage device different from the data blocks 810, 814, 816 and 818 can be selected from the storage system as a temporary storage device, and an idle data block can be selected from the temporary storage device to serve as a temporary data block. After data has been written to the temporary data block, the address mapping corresponding to the data object can also be updated. Specifically, the address of the data object can be set to the address range in the temporary data block where the data object is written.
[0067] By using the exemplary implementation of the present disclosure, it is not necessary to write data to the storage device that is being garbage collected, but the data to be written can be written to a temporary storage area with a faster access speed. In this way, although the temporary storage area will occupy storage space in the storage system, the overhead of the above storage space will not cause too much workload to the storage system. Instead, relative to the time delay caused by the garbage collection operation, the above implementation can greatly improve the response speed to the write request and improve the user experience.
[0068] The situation that the data block specified by the write request is being subjected to garbage collection operation has been described above, and at this moment, the data object is written to the temporary data block. When the garbage collection operation has been completed, it is also necessary to migrate the data object from the temporary data block to the address range specified by the write request, and then the address mapping can be updated to set the address of the data object to the address range specified by the write request. At this moment, the data object is written in the data block 812 specified by the write request, and the address mapping of the data object also points to the address range specified by the write request. After the migration operation has been performed, the storage space occupied by the temporary data block can be released.
[0069] According to an exemplary implementation of the present disclosure, if the access type is determined to be a space allocation type, a group of storage devices can be selected from multiple storage devices in the storage system that are not currently garbage collected to serve the space allocation request. It will be understood that a space allocation request is usually followed by a write request. By allocating storage space in a group of storage devices that are not currently garbage collected to the requester, the delay of the garbage collection operation for subsequent write requests can be avoided as much as possible, thereby improving the operating efficiency of the storage system.
[0070] According to an exemplary implementation of the present disclosure, the number of storage devices to be selected can be determined according to the width of the storage system, and then a group of storage devices that meet the number can be selected from multiple storage devices that are not currently performing garbage collection operations. Further, a group of free data blocks can be selected from a group of storage devices respectively, so as to be used to allocate the selected group of data blocks to the requester of the space allocation request.
[0071] Using the exemplary implementation of the present disclosure, on the one hand, it is possible to estimate whether a garbage collection operation is being performed in the storage system based on the association relationship 430. In this way, the garbage collection state of the storage device can be effectively determined at the level of the storage system without calling the underlying functions of the storage device. On the other hand, if the address range involved in the access request is being subjected to a garbage collection operation, it is possible to avoid using a storage device that is undergoing a garbage collection operation, and instead, a storage device that is not undergoing a garbage collection operation can be selected to serve the access request. In this way, the operating efficiency of the storage system can be improved and the response speed of the storage system can be improved.
[0072] See above for Figures 2 to 8 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 access requests in a storage system is provided. The device includes: an acquisition module, configured to acquire the address range of the data object involved in the access request based on the access request to the storage system; a determination module, configured to determine whether a garbage collection operation is being performed on the data blocks within the address range based on an association relationship between a set of address ranges and a set of operations performed on a set of data blocks within the address range; an identification module, configured to identify the access type of the access request based on determining that a garbage collection operation is being performed on the data blocks within the address range; and a response module, configured to respond to the access request based on the access type, using the data blocks within the address range in the storage system that have not been subjected to the garbage collection operation.
[0073] According to an exemplary implementation of the present disclosure, the storage system is a redundant array of independent disks, and the storage system includes multiple stripes; and the response module includes a reading module. The reading module includes: a stripe determination module, configured to determine the stripe where the data block in the address range is located according to determining that the access type is a read type; a data reading module, configured to read a group of data from a group of data blocks other than the data blocks in the stripe; and a reconstruction module, configured to reconstruct the data object based on the read group of data.
[0074] According to an exemplary implementation of the present disclosure, the storage system is a redundant array of independent disks, and the storage system includes a plurality of stripes; and the response module includes a write module. The write module includes: a selection module configured to select a temporary data block that has not been subjected to a garbage collection operation from the storage system according to determining that the access type is a write type; a data writing module configured to write a data object to the selected temporary data block; and an update module configured to update an address mapping corresponding to the data object to set the address of the data object to the address range to which the data object is written.
[0075] According to an exemplary implementation of the present disclosure, the selection module is configured to determine the stripe where the data blocks within the address range are located; determine a group of data blocks outside the data blocks in the stripe; and select a temporary data block from a storage device other than a group of storage devices where a group of data blocks in the storage system are respectively located.
[0076] According to an exemplary implementation of the present disclosure, the device further includes: a migration module configured to migrate the data object from the temporary data block to the address range based on determining that the garbage collection operation has been completed; and a mapping update module configured to update the address mapping to set the address of the data object to the address range.
[0077] According to an exemplary implementation of the present disclosure, the storage system is a redundant array of independent disks, and the storage system includes a plurality of stripes; and the response module includes an allocation module. The allocation module includes: a block selection module configured to select a group of data blocks that have not been subjected to garbage collection operations from the storage system according to determining that the access type is a space allocation type; and a block allocation module configured to allocate the selected group of data blocks to a requester of the access request.
[0078] According to an exemplary implementation of the present disclosure, the device further includes: a sample acquisition module, configured to respectively acquire a set of performance characteristics associated with a set of data blocks and a set of operations being executed on the set of data blocks; and a training module, configured to train association relationships based on a set of performance characteristics associated with the set of data blocks and a set of operations, so that a set of operation state estimates acquired based on the trained association relationships and a set of performance characteristics match a set of operations.
[0079] According to an exemplary implementation of the present disclosure, a performance feature in a set of performance features includes at least any one of the following: a delay time for accessing a data block in a set of data blocks, a variation in the delay time within a predetermined time period, and an amount of data accessed in the data block.
[0080] According to an exemplary implementation of the present disclosure, a set of performance characteristics in the performance characteristics further includes a net load in the data volume, and the device further includes: a difference determination module, configured to determine the difference between the data volume accessed by the data block and the target data object in the storage system; and a net load determination module, configured to determine the net load based on the difference.
[0081] According to an exemplary implementation of the present disclosure, the determination module includes: a characteristic determination module, configured to determine performance characteristics associated with data blocks within an address range; and an estimation module, configured to obtain an operating state estimate associated with the performance characteristics based on the determined performance characteristics and an association relationship.
[0082] Fig. 9 A block diagram of a device 900 for managing a storage system according to an exemplary implementation of the present disclosure is schematically shown. As shown, the device 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 902 or computer program instructions loaded from a storage unit 908 into a random access memory (RAM) 903. In the RAM 903, various programs and data required for the operation of the device 900 can also be stored. The CPU 901, the ROM 902, and the RAM 903 are connected to each other via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.
[0083] A number of components in the device 900 are connected to the I / O interface 905, including: an input unit 906, such as a keyboard, a mouse, etc.; an output unit 907, such as various types of displays, speakers, etc.; a storage unit 908, such as a disk, an optical disk, etc.; and a communication unit 909, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 909 allows the device 900 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0084] The various processes and processing described above, such as method 500, may be performed by processing unit 901. For example, in some implementations, method 500 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 908. In some implementations, part or all of the computer program may be loaded and / or installed on device 900 via ROM 902 and / or communication unit 909. When the computer program is loaded into RAM 903 and executed by CPU 901, one or more steps of method 500 described above may be performed. Alternatively, in other implementations, CPU 901 may also be configured in any other appropriate manner to implement the above process / method.
[0085] According to an exemplary implementation of the present disclosure, an electronic device is provided, the electronic device comprising: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the electronic device to perform an action for managing access requests in a storage system when executed by the at least one processor. The action comprises: based on an access request to the storage system, obtaining an address range of a data object involved in the access request; based on describing an association relationship between a set of address ranges and a set of operations performed on a set of data blocks within the set of address ranges, determining whether a garbage collection operation is being performed on a data block within the address range; based on determining that a garbage collection operation is being performed on a data block within the address range, identifying an access type of the access request; and based on the access type, responding to the access request using data blocks within the address range in the storage system that have not been subjected to a garbage collection operation.
[0086] According to an exemplary implementation of the present disclosure, the storage system is an independent disk redundant array, the storage system includes multiple stripes; and wherein based on the access type, responding to the access request using the data blocks in the address range that have not been subjected to garbage collection operations in the storage system includes: determining the stripe where the data blocks in the address range are located based on determining that the access type is a read type; reading a group of data from a group of data blocks other than the data blocks in the stripe respectively; and reconstructing the data object based on the read group of data.
[0087] According to an exemplary implementation of the present disclosure, the storage system is an independent disk redundant array, the storage system includes multiple stripes; and wherein based on the access type, responding to the access request using the data blocks in the address range in the storage system that have not been subjected to the garbage collection operation includes: based on determining that the access type is a write type, selecting a temporary data block in the storage system that has not been subjected to the garbage collection operation; writing a data object to the selected temporary data block; and updating the address mapping corresponding to the data object to set the address of the data object to the address range to which the data object is written.
[0088] According to an exemplary implementation of the present disclosure, selecting a temporary data block on which no garbage collection operation has been performed from a storage system includes: determining a stripe where a data block within an address range is located; determining a group of data blocks other than the data blocks in the stripe; and selecting a temporary data block from a storage device other than a group of storage devices where a group of data blocks in the storage system are respectively located.
[0089] According to an exemplary implementation of the present disclosure, the action further includes: migrating the data object from the temporary data block to the address range based on determining that the garbage collection operation has been completed; and updating the address map to set the address of the data object to the address range.
[0090] According to an exemplary implementation of the present disclosure, the storage system is an independent disk redundant array, the storage system includes multiple stripes; and wherein according to the access type, executing an access request for the storage system includes: according to determining that the access type is a space allocation type, selecting a group of data blocks that have not been subjected to garbage collection operations from the storage system; and allocating the selected group of data blocks to the requester of the access request.
[0091] According to an exemplary implementation of the present disclosure, the action further includes: respectively acquiring a set of performance characteristics associated with a set of data blocks and a set of operations being executed on the set of data blocks; and training association relationships based on a set of performance characteristics associated with the set of data blocks and a set of operations, so that a set of operation state estimates acquired based on the trained association relationships and a set of performance characteristics match the set of operations.
[0092] According to an exemplary implementation of the present disclosure, a performance feature in a set of performance features includes at least any one of the following: a delay time for accessing a data block in a set of data blocks, a variation in the delay time within a predetermined time period, and an amount of data accessed in the data block.
[0093] According to an exemplary implementation of the present disclosure, the performance characteristics in a set of performance characteristics further include a net load in a data volume, and the action further includes: determining a difference between a data volume accessed by a data block and a target data object in a storage system; and determining the net load based on the difference.
[0094] According to an exemplary implementation of the present disclosure, determining whether a garbage collection operation is being performed on a data block within an address range includes: determining a performance characteristic associated with the data block within the address range; and based on the determined performance characteristic and the association relationship, obtaining an operating state estimate associated with the performance characteristic.
[0095] According to an exemplary implementation of the present disclosure, a computer program product is provided, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing a method according to the present disclosure.
[0096] 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.
[0097] 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.
[0098] 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.
[0099] 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.
[0100] 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.
[0101] 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.
[0102] 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.
[0103] 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.
[0104] 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.
[0105] 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 access requests in a storage system, comprising: Based on an access request to the storage system, obtaining an address range of a data object involved in the access request; determining whether a garbage collection operation is being performed on any data block within the address range based on an association relationship describing a set of address ranges and a set of operations performed on a set of data blocks within the address ranges; identifying an access type of the access request based on determining that the garbage collection operation is being performed on a data block within the address range; Based on the access type, responding to the access request using data blocks within an address range in the storage system that have not been garbage collected; Respectively obtaining a set of performance characteristics associated with the set of data blocks and a set of operations being performed on the set of data blocks; as well as The association relationship is trained based on the set of performance characteristics associated with the set of data blocks and the set of operations, so that a set of operation state estimates obtained based on the trained association relationship and the set of performance characteristics matches the set of operations.
2. The method according to claim 1, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a read type, Determine the stripe where the data block within the address range is located; Reading a group of data from a group of data blocks other than the data block in the stripe respectively; and The data object is reconstructed based on the set of data read.
3. The method according to claim 1, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a write type, Selecting a temporary data block on which no garbage collection operation has been performed from the storage system; Writing the data object to the selected temporary data block; as well as An address map corresponding to the data object is updated to set the address of the data object to a second address range in which the data object is written.
4. The method according to claim 3, wherein selecting the temporary data block on which no garbage collection operation has been performed from the storage system comprises: Determine the stripe where the data block is located; determining a group of data blocks other than the data block in the stripe; The temporary data block is selected from a storage device other than a group of storage devices in the storage system where the determined group of data blocks are respectively located.
5. The method according to claim 3, further comprising: Migrating the data object from the temporary data block to the address range based on determining that the garbage collection operation has been completed; as well as The address map is updated to set the address of the data object to the address range.
6. The method according to claim 1, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a space allocation type, Selecting a group of data blocks that have not been garbage collected from the storage system; as well as The selected set of data chunks is allocated to a requestor of the access request.
7. The method of claim 1, wherein the performance characteristics in the set of performance characteristics further include at least any one of the following: A delay time for accessing a data block in the set of data blocks, a change in the delay time within a predetermined time period, and an amount of data accessed in the data block.
8. The method of claim 7, wherein the performance characteristics in the set of performance characteristics further include a payload in the amount of data, and the method further comprises: determining a difference between the amount of data accessed by the data block and a target data object in the storage system; as well as The payload is determined based on the difference.
9. The method of claim 1 , wherein determining whether a garbage collection operation is being performed on data blocks within the address range comprises: determining performance characteristics associated with the blocks of data within the address range; as well as Based on the determined performance feature and the association, the operating state estimate associated with the performance feature is obtained.
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, the instructions, when executed by the at least one processor, causing the electronic device to perform a method for managing access requests in a storage system, the method comprising: Based on an access request to the storage system, obtaining an address range of a data object involved in the access request; determining whether a garbage collection operation is being performed on a data block within the address range based on an association relationship between a set of address ranges and a set of operations performed on a set of data blocks within the address ranges; identifying an access type of the access request based on determining that the garbage collection operation is being performed on a data block within the address range; Based on the access type, responding to the access request using data blocks within an address range in the storage system that have not been garbage collected; Respectively obtaining a set of performance characteristics associated with the set of data blocks and a set of operations being performed on the set of data blocks; and The association relationship is trained based on the set of performance characteristics associated with the set of data blocks and the set of operations, so that a set of operation state estimates obtained based on the trained association relationship and the set of performance characteristics matches the set of operations.
11. The electronic device according to claim 10, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a read type, Determine the stripe where the data block within the address range is located; Reading a group of data from a group of data blocks other than the data block in the stripe respectively; and The data object is reconstructed based on the set of data read.
12. The electronic device according to claim 10, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a write type, Selecting a temporary data block on which no garbage collection operation has been performed from the storage system; Writing the data object to the selected temporary data block; as well as An address map corresponding to the data object is updated to set the address of the data object to a second address range in which the data object is written.
13. The electronic device according to claim 12, wherein selecting the temporary data block on which no garbage collection operation has been performed from the storage system comprises: Determine the stripe where the data block is located; determining a group of data blocks other than the data block in the stripe; The temporary data block is selected from a storage device other than a group of storage devices in the storage system where the determined group of data blocks are respectively located.
14. The electronic device of claim 12, wherein the method further comprises: Migrating the data object from the temporary data block to the address range based on determining that the garbage collection operation has been completed; as well as The address map is updated to set the address of the data object to the address range.
15. The electronic device according to claim 10, The storage system is a redundant array of independent disks. wherein the storage system comprises a plurality of stripes; and Wherein, based on the access type, responding to the access request by using data blocks in an address range in the storage system that have not been subjected to a garbage collection operation comprises: According to determining that the access type is a space allocation type, Selecting a group of data blocks that have not been garbage collected from the storage system; as well as The selected set of data chunks is allocated to a requestor of the access request.
16. The electronic device of claim 10, wherein the performance characteristics in the set of performance characteristics further include at least any one of the following: A delay time for accessing a data block in the set of data blocks, a change in the delay time within a predetermined time period, and an amount of data accessed in the data block.
17. The electronic device of claim 16, wherein the performance characteristics in the set of performance characteristics further include a payload in the amount of data, and the method further comprises: determining a difference between the amount of data accessed by the data block and a target data object in the storage system; as well as The payload is determined based on the difference.
18. A computer program product 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-9.
Citation Information
Patent Citations
METHOD,equipment AND COMPUTER PROGRAM PRODUCT FOR MANAGING A STORAGE SYSTEM
CN110413201A