Method, apparatus, and program product for managing zones in a storage system

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

Patent Information

Application Number
CN202111228595.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-21
Publication Date
2026-11-03
Estimated Expiration
2041-10-21

AI Technical Summary

Technical Problem

As storage device capacity increases, the amount of metadata increases significantly, leading to excessive overhead in metadata storage and computing resources. Existing technologies struggle to effectively manage blocks in storage systems.

Method used

By setting different sizes for reserved blocks and data blocks in the storage system, with reserved blocks being smaller than data blocks, reserved areas and data areas are generated, reducing the total amount of metadata and improving the utilization rate of storage space.

Benefits of technology

It effectively reduces the storage and computing resource overhead of metadata, improves the overall performance of the storage system, and can meet the data reconstruction needs in the event of a failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116010161B_ABST
    Figure CN116010161B_ABST
Patent Text Reader

Abstract

The present disclosure relates to methods, apparatuses and program products for managing zones in a storage system. The storage system includes a plurality of storage devices supporting a redundancy storage policy, and in one method, a reserved area of the storage system is generated based on a set of first type of reserved zones respectively located in the plurality of storage devices, the set of first type of reserved zones being used to support a rebuild operation for a failed storage device when the failed storage device occurs in the plurality of storage devices. A data area of the storage system is generated based on a set of data zones respectively located in the plurality of storage devices other than the reserved area, the data area being used to provide data storage to a user of the storage system. Here, a reserved zone size of the set of first type of reserved zones is smaller than a data zone size of a data zone in the data area of the set of data zones. The number of zones of the storage system can be reduced, and in turn, the overhead of storage and computing resources involved by metadata associated with each zone can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

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

[0003] Mapped RAID has been developed, in which a disk is a logical concept and can comprise multiple blocks. The blocks within a logical disk can be distributed across different physical storage devices within the storage system's resource pool. For multiple blocks within a stripe of mapped RAID, these blocks should be distributed across different physical storage devices. This allows for a rebuild operation to be performed to recover data from the physical storage devices containing the other blocks when one of the blocks fails.

[0004] As storage capacity increases, storage devices can include more and more blocks. Consequently, the amount of metadata corresponding to each block also increases significantly. This leads to metadata storage and computation consuming substantial resources. Therefore, a more efficient way to partition blocks within storage devices is desired. Summary of the Invention

[0005] Therefore, it is desirable to develop and implement a technical solution for managing blocks in a storage system in a more efficient manner. This solution is expected to be compatible with existing storage systems and, by modifying various configurations of existing storage systems, manage blocks in the storage system more efficiently.

[0006] According to a first aspect of this disclosure, a method for managing blocks in a storage system is provided. Here, the storage system includes multiple storage devices supporting a redundant storage strategy, and in this method, a reserved area of ​​the storage system can be generated based on a set of reserved blocks of a first type located respectively in the multiple storage devices. This set of reserved blocks of the first type is used to support reconstruction operations for the failed storage device in the event of a failure among the multiple storage devices. A data area of ​​the storage system can be generated based on a set of data blocks other than the reserved area located respectively in the multiple storage devices. The data area is used to provide data storage to users of the storage system, wherein the reserved block size of the set of reserved blocks of the first type is smaller than the data block size of the data blocks in the data area of ​​the set of data blocks.

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

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

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

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

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

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

[0013] Figure 4 A block diagram of a storage system according to an exemplary implementation of the present disclosure is shown schematically;

[0014] Figure 5 A flowchart illustrating an exemplary implementation of this disclosure for managing a storage system is shown schematically;

[0015] Figure 6 A block diagram illustrating a support for an extended storage system according to an exemplary implementation of this disclosure is shown schematically.

[0016] Figure 7 A block diagram illustrating a reserved area in a storage system according to an exemplary implementation of the present disclosure is shown schematically.

[0017] Figure 8 A block diagram illustrating a data area in a storage system according to an exemplary implementation of the present disclosure is shown schematically; and

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

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

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

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

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

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

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

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

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

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

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

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

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

[0031] With the development of hardware storage technology, the capacity of storage devices is constantly increasing, allowing each storage device to include more blocks (including data blocks and reserved blocks). However, metadata needs to be maintained for each block during the operation of the storage system, and the increase in the number of blocks leads to a corresponding increase in the amount of metadata. Furthermore, the resource overhead associated with the storage and computation of metadata has also increased significantly. Technical solutions have been proposed to divide storage devices into blocks with larger sizes; however, the increase in block size leads to the underutilization of storage space within each storage device.

[0032] To address at least some of the shortcomings of the aforementioned technical solutions, according to an exemplary implementation of this disclosure, a technical solution for managing blocks in a storage system is provided. See below. Figure 4 A summary of an exemplary implementation according to this disclosure is provided. Figure 4 A block diagram of a storage system 400 according to an exemplary implementation of this disclosure is shown schematically. Figure 4As shown, a storage system 400 is proposed, which may include multiple storage devices 210, 211, 212, 213, ..., and 217, etc. It will be understood that the number of storage devices is determined based on the redundancy storage strategy supported by the storage system 400. Assuming the storage system 400 is based on a 4D+1P storage system, the minimum number of storage devices is 4+1=5. Considering the provision of reserved storage space, the reserved area of ​​the storage system includes at least the capacity of one storage device. In this case, the minimum number of storage devices in the storage system is 5+1=6. Furthermore, for ease of management, the maximum number of storage devices included in the storage system 400 is typically set to 64 (or other values).

[0033] In storage system 400, a reserved area 410 and a data area 420 can be provided. Here, assuming each storage system has the same capacity, the same number of reserved blocks can be allocated in each storage device to generate the reserved area 410, and the same number of data blocks can be allocated in each storage device to generate the data area 420. For example... Figure 4 As shown, the reserved blocks in the reserved area 410 and the blocks in the data area 420 can have different sizes. For example, the size of the reserved block can be smaller than the size of the data block.

[0034] Using the exemplary implementation of this disclosure, by setting different sizes for reserved blocks and data blocks, data blocks can be set to a larger number and reserved blocks to a smaller number without sacrificing the existing performance of the storage system. In this case, each storage device can include a smaller total number of blocks. By reducing the total number of blocks, the total amount of metadata associated with each block can be reduced, thereby reducing various resource overheads related to metadata storage and computation. Furthermore, setting different block sizes can more effectively utilize the storage space in each storage device.

[0035] See below. Figure 5 Further details describe an exemplary implementation according to this disclosure. Figure 5 A flowchart illustrating a method 500 for managing blocks in a storage system according to an exemplary implementation of this disclosure is shown schematically. At block 510, a reserved area 410 of the storage system is generated based on a set of reserved blocks of a first type located in multiple storage devices. Here, the set of reserved blocks of the first type is used to support reconstruction operations for failed storage devices in the event of a failure among the multiple storage devices. It will be understood that the reserved blocks here may have a smaller size compared to data blocks. Further details regarding the generation of reserved area 410 will be provided below.

[0036] It will be understood that the basic function of storage system 400 is to support data reconstruction operations for failed storage devices when one fails among multiple storage devices. Therefore, the size and number of reserved blocks in the storage system must meet the basic requirements for data reconstruction. According to an exemplary implementation of this disclosure, the size of the reserved blocks under different conditions can be considered. Assuming the storage system includes n storage devices, the reserved area will be provided by n storage devices. Typically, in a 4D+1P storage system, the total capacity of the reserved area is the capacity of one storage device, assuming the capacity of the storage device is Size. disk Each storage device can then include Size disk / (n-1) of reserved capacity.

[0037] In the extreme case where the storage system includes 64 (maximum number) storage devices, 64-1=63 storage devices will provide reserved areas for rebuild operations. This extreme case involves the maximum size of the reserved blocks. According to an exemplary implementation of this disclosure, to determine the maximum size of the first type of reserved blocks, the maximum number of storage devices corresponding to the redundant storage strategy can be determined. Furthermore, the maximum size of the first type of reserved blocks can be determined based on the maximum number and the capacity of the storage devices.

[0038] In the following text, we will return Figure 4 Describe the situation where the maximum scale is determined. For example... Figure 6 As shown, assuming the storage system includes 64 (maximum number) storage devices 210, 211, 212, 213, ..., 217, the maximum size of the reserved block can be determined based on this extreme case. In this case, each storage device will need to provide a Size... disk The reserved capacity is 64-1. Specifically, the maximum size of the reserved block can be determined based on the following formula 1:

[0039]

[0040] Size de_small This represents the maximum size of the first type of reserved block, denoted as Size. disk n represents the maximum capacity of the storage device. max This represents the maximum number of storage devices included in the storage system, where m is a positive integer. Using the exemplary implementation of this disclosure, the maximum size of a reserved block can be quickly determined based on simple mathematical operations. It will be understood that Formula 1 merely illustrates an example for determining the maximum size; the maximum size can be determined when m = 1, and m can be set to other values, such as when m = 2, where a combination of two reserved blocks can correspond to a reserved block with the maximum size.

[0041] According to an exemplary implementation of this disclosure, after the maximum size of the reserved blocks has been determined, the minimum number of first-type reserved blocks in each storage device can be further determined. In the context of this disclosure, each storage device may include the same number of reserved blocks. At this point, the minimum number of reserved blocks included in each storage device can be determined based on the predetermined capacity of the reserved area and the maximum size of the first-type reserved blocks. It will be understood that the minimum number here refers to the number of reserved blocks included in each storage device that must be greater than or equal to this minimum number to support fault recovery operations; otherwise, the storage space in the reserved area will be insufficient to store the reconstructed data.

[0042] It will be understood that, given a determined reserved block size, the minimum number of reserved blocks in a storage device depends on the capacity of the storage system's reserved area. That is, the minimum number should be greater than or equal to the number of blocks on the failed drive. In extreme cases, this number is determined by the predetermined capacity of the reserved area (typically the capacity of a storage device) and the maximum size of the reserved blocks. Since the above is an extreme case, as long as the minimum number satisfies this extreme condition, the total capacity of the reserved area generated in this way can meet the needs of data reconstruction. In a 4D+1P storage system, a minimum of 5 storage devices and 1 backup storage device are required. In this case, the minimum number of the first type of reserved blocks included in each storage device can be determined based on the following formula 2:

[0043]

[0044] Where n de_spare Size represents the minimum number of reserved blocks of the first type used to support faulty data reconstruction. disk_max Size indicates the maximum capacity of the storage device. de_small This indicates the size of the first type of reserved block (this size can be less than or equal to the maximum size of the reserved block determined by Formula 1), and Width raid Indicates the width of the storage system (in this example, Width). raid =4+1=5).

[0045] After determining the maximum size of the first type of reserved blocks and the minimum number of reserved blocks included in each storage device based on Formulas 1 and 2 respectively, at least one first type of reserved block can be determined from the storage device based on the maximum size and minimum number to generate reserved area 410. Using the exemplary implementation of this disclosure, the maximum size and minimum number determined based on the above formulas are merely illustrative, and the formulas represent minimum requirements in extreme cases. When generating reserved area 410, the size of the reserved block can be set to any value not greater than the maximum size (e.g., half, quarter, or other proportion of the maximum size). Alternatively and / or additionally, the number of reserved blocks in each storage device can be set to any value not less than the minimum number.

[0046] Using the exemplary implementation of this disclosure, the first type of reserved area 410 generated based on the method described above can meet the basic requirements for fault data reconstruction. In other words, when a faulty storage device occurs in the storage system, the data in the faulty storage device can be reconstructed into the reserved area 410 based on RAID principles. At this time, the reserved area 410 will be sufficient to accommodate all the reconstructed data corresponding to the faulty storage device. It will be understood that the above description uses a 4D+1P storage system as an example to illustrate the specific implementation method. When the storage system adopts other redundant storage strategies (e.g., 6D+1P+1Q, etc.), formulas 1 and 2 above can be modified accordingly.

[0047] The basic requirements for using the first type of reserved area 410 to support fault recovery operations have been described above. Further requirements for using the reserved area to support storage system expansion will be described below. It will be understood that the number of storage devices in storage system 400 may change as storage system 400 is used. For example, when the available storage space in storage system 400 is insufficient, backup storage devices can be added to storage system 400 to expand its space. According to one exemplary implementation of this disclosure, the reserved area may include a second type of reserved area to support storage system expansion. See below for more details. Figure 6 Describe more details about storage system expansion.

[0048] Figure 6 A block diagram 600 illustrating a scalable storage system according to an exemplary implementation of this disclosure is shown. Figure 6As shown, in addition to the first type of reserved area 410, each storage system may also include a second type of reserved area 610, which can support expansion operations in the storage system when the number of multiple storage devices changes. During expansion, more storage devices can be added to the storage system. The number of storage devices added can vary; for example, one, two, or more storage devices can be added to the storage system.

[0049] The following section describes the expansion process in more detail, considering the extreme case where all storage devices in the storage system are "full". Assuming multiple storage devices are added to the storage system simultaneously, and the number of these devices is greater than or equal to the RAID width, the free storage space in the newly added devices can be directly utilized to construct stripes spanning multiple storage devices without data migration. However, if the number of newly added storage devices is less than the RAID width, all free blocks reside in the newly added free storage devices, and therefore, stripes spanning multiple storage devices and meeting the RAID width cannot be generated immediately. Data needs to be migrated within the storage system before using the storage space in the free storage devices to form stripes that meet the RAID width requirements of the storage system. See below for more details. Figure 7 Describe more details about data migration in the reserved area.

[0050] Figure 7 A block diagram 700 schematically illustrates a reserved area in a storage system according to an exemplary implementation of the present disclosure. Specifically, Figure 7 The illustration schematically depicts the extreme case of adding only one storage device 710 to the storage system. The storage system initially includes multiple storage devices 210, 211, 212, 213, ..., 217, and each storage device may include a first-type reserved area 410, a second-type reserved area 710, and a data area 420. A free storage device 710, the same size as the other storage devices, can be added to the storage system.

[0051] It will be understood that each storage device can have a similar structure. Similarly, storage device 710 may include a first type of reserved area 732, a second type of reserved area 734, and a data area 730. After the expansion operation is performed, data area 420 and data area 730 together serve as the data area of ​​the expanded storage system, reserved areas 710 and 734 together serve as the second type of reserved area of ​​the expanded storage system, and reserved areas 410 and 732 together serve as the first type of reserved area of ​​the expanded storage system.

[0052] After adding storage device 710, all free space is located within storage device 710. Therefore, a data migration operation should be performed first to create stripes that meet the RAID width requirements. Specifically, data in blocks 730, 732, 734, 736, and 738 (located in storage devices 210, 211, 212, 213, and 217, respectively) can be migrated to blocks 720, 722, 724, 726, and 728 in reserved area 734 to create a free stripe 740 spanning five storage devices in the expanded storage system. Figure 7 As can be seen, the second type of reserved area 734 needs to include at least 5 blocks (i.e., the RAID width supported by the storage system) to accommodate data from the 5 migrated blocks. In other words, the number of second-type reserved blocks in the storage device can be determined based on the minimum number of multiple storage devices corresponding to the redundant storage strategy (i.e., the RAID width of a 4D+1P storage system). Specifically, the number of blocks included in the second type of reserved area 734 can be determined based on the following formula 3:

[0053] n de_provisioning ≥m*Width raid Formula 3

[0054] Where n de_provisionig Width represents the number of second-type reserved blocks in a storage device used to support expansion operations. m is a positive integer. raid This indicates the RAID width supported by the redundant storage strategy of the storage system.

[0055] The extreme case of adding only one storage device 710 to the storage system has been described above. This extreme case involves the worst-case scenario of data migration, and the minimum number of type II reserved blocks has been determined based on this worst-case scenario. In other cases (e.g., adding two or more storage devices to the storage system), less data migration is required, and therefore the number of type II reserved blocks involved will be smaller. Thus, as long as the number of type II reserved blocks in each storage device is greater than or equal to n... de_provisioning This can meet the requirements for expanding the storage system.

[0056] According to an exemplary implementation of this disclosure, the second type of reserved blocks can be set to have the same size as the first type of reserved blocks. That is, both types of reserved blocks have the same size. In this case, the total number of reserved blocks in each storage device can be determined based on the sum of the numbers of the two types of reserved blocks. Specifically, the number of reserved blocks in each storage device can be determined based on the following formula 4:

[0057] nde_small =n de_spare +n de_provisioning Formula 4

[0058] Where n de_small n represents the number of reserved blocks in a storage device. de_spare n represents the number of reserved blocks of type 1 in a storage device (e.g., it can be determined based on Formula 2). de_provisioning This represents the number of second-type reserved blocks in a storage device (e.g., it can be determined based on Formula 3). In this way, the problem of determining the number of reserved blocks can be transformed into a simple mathematical problem, thereby determining how many reserved blocks to use to generate the reserved area.

[0059] The specific process for determining the first type and the second type of reserved areas in the storage system has been described above. See below for further details. Figure 7 Describe more details used to determine the data areas of the storage system. Return Figure 5 At box 520, a data region 420 of the storage system is generated based on a set of data blocks located outside of reserved areas in multiple storage devices. Data region 420 is used to provide data storage to users of the storage system. It will be understood that the data blocks here can have a relatively large size. In other words, the reserved block size of the reserved blocks is smaller than the data block size of the data blocks in the data region.

[0060] According to an exemplary implementation of this disclosure, when generating data region 420, the minimum data block size can be determined based on a multiple of the maximum size of the reserved block. Specifically, the minimum data block size can be determined based on the following formula 5:

[0061] Size de_large =m×SiZe de_small Formula 5

[0062] Size de_large This indicates the size of the data block. de_small This represents the minimum size of the reserved block (e.g., determined based on Formula 1), and m represents a positive integer. Using an exemplary implementation of this disclosure, the data block and the reserved block do not need to have the same size; instead, the size of the data block can be set to a multiple of the reserved block size. For example, setting the size of the data block to twice the size of the reserved block (or another multiple) can significantly reduce the number of data blocks in each storage device (e.g., by half), thereby reducing the total number of blocks and thus reducing the storage and computational resource overhead associated with block-related data.

[0063] According to an exemplary implementation of this disclosure, predetermined conditions associated with the number of data blocks can be determined based on the minimum number of multiple storage devices corresponding to a storage strategy. Furthermore, the number of data blocks in each storage device can be determined based on the capacity, minimum value, and predetermined conditions of the storage devices among the multiple storage devices. It will be understood that the total capacity of each storage device is equal to the sum of the capacity of the reserved area and the capacity of the data area. Therefore, the maximum size of the data block is affected by the total capacity of the storage devices and the capacity of the reserved area. Specifically, the maximum size of the data block can be determined based on the following formula 6.

[0064] Size de_large <= (Size) disk -Size de_small *n de_small ) / n de_large Formula 6

[0065] Size de_large Size indicates the size of the data block. disk Size indicates the capacity of the storage device. de_small Indicates the size of the reserved block, n de_small This represents the number of reserved blocks in the storage device, and n. de_large This indicates the number of data blocks in the storage device. That is, the size of the data blocks should simultaneously satisfy the requirements of Formulas 5 and 6. According to an exemplary implementation of this disclosure, the size of the data blocks can be selected such that the size simultaneously satisfies the requirements of both Formulas 5 and 6.

[0066] Furthermore, the number of data blocks located in the data blocks of a storage device can be determined based on the minimum value of the capacity and data block size of the storage devices among multiple storage devices. See below for more details. Figure 8 Describe more details about the generated data area. Figure 8 A block diagram 800 of a data area in a storage system according to an exemplary implementation of the present disclosure is shown schematically. Figure 8 More details of the data area 730 in the storage device 710 are shown. (Continue) Figure 7 For example, suppose storage devices 210, 211, 212, 213, ..., 217 are already "full". After adding storage device 710 to the storage system, only the data area 730 of storage device 710 includes multiple free blocks 820, 822, 824, 826, and 828. Therefore, before using these free blocks, the data in storage devices 210, 211, 212, 213, ..., 217 needs to be migrated to the newly added storage device 710, thereby forming stripes that meet the RAID width requirements in the expanded storage system.

[0067] Specifically, data in blocks 830, 832, 834, 836, and 838 (located in storage devices 210, 211, 212, 213, and 217, respectively) can be migrated to blocks 820, 822, 824, 826, and 828 in data block 730 to create a free stripe 840 spanning five storage devices in the storage system. Figure 8 As can be seen, data area 730 needs to include at least 5 blocks (i.e., the RAID width supported by the storage system) to accommodate the data from the 5 migrated blocks. In other words, the number of data blocks in each storage device can be determined based on the minimum number of multiple storage devices corresponding to the redundant storage strategy (i.e., the RAID width of a 4D+1P storage system). Specifically, the number of data blocks included in data area 730 can be determined based on the following formula 7:

[0068] n de_large ≥m*Width raid Formula 7

[0069] Where n de_large Width represents the number of data blocks in the storage device, where m is a positive integer. raid This indicates the RAID width supported by the redundant storage strategy of the storage system. In this way, the number of data blocks in each storage device can be determined simply and effectively. According to an exemplary implementation of this disclosure, the size of the data blocks and the number of data blocks included in each storage device can be determined based on formulas 5, 6, and 7. This method allows the generated data area to support the expansion needs of the storage system while ensuring that the number of data blocks is kept as small as possible. This method reduces the amount of metadata involved in the storage system and the corresponding storage and computational overhead, while improving the utilization rate of each storage device.

[0070] It will be understood that the above description of the process for generating reserved areas and data areas uses only a 4D+1P storage system as an example. According to one exemplary implementation of this disclosure, the method described above can also be applied to storage systems based on other redundancy storage rules. For example, in a 6D+1P+1Q storage system, the RAID width becomes 6+1+1=8, and those skilled in the art can modify the various formulas accordingly based on the principles described above to suit a 6D+1P+1Q storage system.

[0071] It will be understood that the storage devices in the examples above may have the same or different capacities. According to an exemplary implementation of this disclosure, the minimum capacity can be used as the capacity of each storage device, and the method described above can be applied. According to an exemplary implementation of this disclosure, to further utilize the storage space of each storage device, storage devices with different capacities may include different numbers of data blocks. For example, a storage device with a smaller capacity may include fewer data blocks, and a storage device with a larger capacity may include more data blocks.

[0072] The following section uses a storage system comprising six storage devices (each with a capacity of 12TB) as a specific example to describe the execution process of applying the method described above. When generating the reserved area and data area according to the existing technical solution (reserved blocks and data blocks have the same size), each storage device can include 488 blocks (including both reserved blocks and data blocks). In this case, the storage system will include 488 * 6 = 2928 blocks. These blocks will involve a large amount of metadata, and when the number of storage devices in the storage system is larger (e.g., hundreds or thousands), the amount of metadata will be even greater.

[0073] The method 500 described above can be applied to the aforementioned storage system. Specifically, the size and number of reserved blocks and the size and number of data blocks can be determined based on the formula described above. In this case, each storage device can include 216 blocks (including 186 reserved blocks and 30 data blocks). Specifically, the size of the reserved blocks can be set to no more than 12*1024 / (64-1) = 195GB. Any value among 195, 97, 48, etc., can be selected. Assuming the reserved block size is set to 97GB, each storage device will include at least 12*1024 / 5 / 97 = 26 first-type reserved blocks. Furthermore, to support the expansion operation of the storage system, each storage device can include 5 second-type reserved blocks.

[0074] At this point, the remaining storage space in each storage device can be represented as (12*1024–97*(26+5)) / 5 = 1856GB. Therefore, the size of the data block can be set to 1856, 928, 464, 232, ..., etc. Furthermore, the size of the data block should be a multiple of the size of the reserved block (i.e., 97GB), so the value closest to the maximum data block size of 1856GB, 1843GB, can be chosen as the data block size. Although there is waste in the storage system, each storage device now includes only 5 data blocks. The total number of blocks in the storage system (including reserved blocks and data blocks) is: (5+26+5)*6 = 216. Compared to the 2928 blocks generated using existing technical solutions, the exemplary implementation of this disclosure can reduce the total number of blocks to 216. This significantly reduces the amount of metadata in the storage system. In this way, the overhead of storage and computing resources related to metadata can be reduced, thereby improving the overall performance of the storage system.

[0075] Examples of the methods according to this disclosure have been described in detail above with reference to the accompanying drawings; implementations of corresponding apparatus will be described below. According to an exemplary implementation of this disclosure, an apparatus for managing blocks in a storage system is provided. Here, the storage system includes multiple storage devices supporting a redundant storage strategy, and the apparatus includes: a reserved area generation module configured to generate a reserved area of ​​the storage system based on a set of reserved blocks of a first type located in the multiple storage devices, the set of reserved blocks of the first type used to support reconstruction operations for the failed storage device in the event of a failure in the multiple storage devices; and a data area generation module configured to generate a data area of ​​the storage system based on a set of data blocks located outside the reserved areas in the multiple storage devices, the data area used to provide data storage to users of the storage system. According to an exemplary implementation of this disclosure, the reserved block size of the set of reserved blocks of the first type is smaller than the data block size of the data blocks in the data area of ​​the set of data blocks. According to an exemplary implementation of this disclosure, the apparatus further includes modules for performing other steps in the method 500 described above.

[0076] Figure 9A block diagram of a device 900 for managing blocks in a storage system, according to an exemplary implementation of the present disclosure, is shown schematically. 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 read-only memory (ROM) 902 or loaded from storage unit 908 into random access memory (RAM) 903. Various programs and data required for the operation of the device 900 may also be stored in RAM 903. The CPU 901, ROM 902, and RAM 903 are interconnected via bus 904. An input / output (I / O) interface 905 is also connected to bus 904.

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

[0078] The various processes and procedures described above, such as method 500, can be executed by processing unit 901. For example, in some implementations, method 500 can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 908. In some implementations, part or all of the computer program can 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 can be performed. Alternatively, in other implementations, CPU 901 can also be configured in any other suitable manner to implement the above-described processes / methods.

[0079] According to an exemplary implementation of this disclosure, an electronic device is provided, comprising: at least one processor; volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, cause the device to perform an action for managing blocks in a storage system, the storage system including a plurality of storage devices supporting a redundant storage strategy. The action includes: generating a reserved area of ​​the storage system based on a set of reserved blocks of a first type located in the plurality of storage devices, the set of reserved blocks of the first type being used to support a rebuild operation for a failed storage device in the event of a failure in the plurality of storage devices; and generating a data area of ​​the storage system based on a set of data blocks other than the reserved area located in the plurality of storage devices, the data area being used to provide data storage to users of the storage system, wherein the reserved block size of the set of reserved blocks of the first type is smaller than the data block size of a data block in the data area of ​​the set of data blocks.

[0080] According to an exemplary implementation of this disclosure, generating a reserved area includes: determining the maximum size of a first type of reserved block; determining the minimum number of first type of reserved blocks in a plurality of storage devices; and determining at least one first type of reserved block from the storage devices based on the maximum size and the minimum number for generating the reserved area.

[0081] According to an exemplary implementation of this disclosure, determining the maximum size includes: determining the maximum number of multiple storage devices corresponding to a redundant storage strategy; and determining the maximum size of a first type of reserved block based on the maximum number and the capacity of the storage devices.

[0082] According to an exemplary implementation of this disclosure, determining the minimum quantity includes: determining the minimum quantity based on the predetermined capacity of the reserved area and the maximum size of the reserved block of the first type.

[0083] According to an exemplary implementation of this disclosure, generating a reserved area further includes: generating a reserved area based on a set of second-type reserved blocks located in multiple storage devices, the set of second-type reserved blocks being used to support expansion operations in the storage system when the number of multiple storage devices changes.

[0084] According to an exemplary implementation of this disclosure, generating a reserved area based on a set of second-type reserved blocks includes: determining the number of second-type reserved blocks located in the storage devices based on the minimum number of multiple storage devices corresponding to the storage policy.

[0085] According to an exemplary implementation of this disclosure, the second type of reserved blocks and the first type of reserved blocks have the same size, and generating the reserved area further includes: for the storage device, determining the number of reserved blocks located in the storage device based on the minimum number of the first type of reserved blocks and the sum of the number of the second type of reserved blocks.

[0086] According to an exemplary implementation of this disclosure, generating a data region includes: determining a maximum data block size based on a multiple of the maximum size of a reserved block; and determining the number of data blocks located in the data blocks of a storage device based on the maximum capacity of the storage device and the maximum data block size among multiple storage devices.

[0087] According to an exemplary implementation of this disclosure, determining the number of data blocks located in a storage device further includes: determining predetermined conditions associated with the number of data blocks based on a minimum number of multiple storage devices corresponding to a storage policy; and determining the number of data blocks based on the capacity, maximum value, and predetermined conditions of the storage devices among the multiple storage devices.

[0088] According to an exemplary implementation of this disclosure, the predetermined conditions include: the number of data blocks is an integer multiple of the minimum number of multiple storage devices corresponding to the storage policy.

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

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

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

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

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

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

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

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

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

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

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

Claims

1. A method for managing blocks in a storage system, the storage system comprising a plurality of storage devices supporting a redundancy storage strategy, the method comprising: Each of the plurality of storage devices is divided into a set of reserved blocks of a first type and a set of data blocks, wherein the data blocks have a data block size; The reserved area of ​​the storage system is generated based at least on the set of first-type reserved blocks located in the plurality of storage devices, the set of first-type reserved blocks being used to support the reconstruction operation for the failed storage device when a failed storage device occurs in the plurality of storage devices; A data region of the storage system is generated based on a set of data blocks located outside the reserved areas in the plurality of storage devices, and the data region is used to provide data storage to users of the storage system. Perform the rebuild operation for the failed storage device, the execution of the rebuild operation including: selecting a first type of reserved block in the reserved area that has a reserved block size smaller than the data block size of the data block in the data area; as well as The blocks in the faulty storage device are rebuilt using the selected first type of reserved blocks with smaller reserved block sizes.

2. The method according to claim 1, wherein generating the reserved area comprises: Determine the maximum size of the reserved block of the first type; Determine the minimum number of reserved blocks of the first type in the storage devices located in the plurality of storage devices; as well as Based on the maximum size and the minimum quantity, at least one reserved block of the first type is selected from the storage device for generating the reserved area.

3. The method of claim 2, wherein determining the maximum size comprises: Determine the maximum number of the plurality of storage devices corresponding to the redundant storage strategy; as well as The maximum size of the reserved block of the first type is determined based on the maximum quantity and the capacity of the storage device.

4. The method of claim 2, wherein determining the minimum quantity comprises: The minimum quantity is determined based on the predetermined capacity of the reserved area and the maximum size of the reserved block of the first type.

5. The method according to claim 4, further comprising: Each of the plurality of storage devices is divided into a group of reserved blocks of the second type. in Generating the reserved area further includes: The reserved area is generated based on the set of second-type reserved blocks located in the plurality of storage devices, the set of second-type reserved blocks being used to support expansion operations in the storage system when the number of the plurality of storage devices changes.

6. The method of claim 5, wherein generating the reserved area based on the set of reserved blocks of the second type comprises: The number of reserved blocks of the second type located in the storage devices is determined based on the minimum number of the plurality of storage devices corresponding to the storage strategy.

7. The method of claim 6, wherein the second type of reserved block and the first type of reserved block have the same smaller reserved block size, wherein the generation of the reserved area further comprises: For the storage device, the number of reserved blocks located in the storage device is determined based on the minimum number of reserved blocks of the first type and the sum of the number of reserved blocks of the second type. The method further includes: Perform the expansion operation in the storage system, the execution of the expansion operation including: adding storage devices to the plurality of storage devices, and after adding the storage devices to the plurality of storage devices, determining whether the number of the plurality of storage devices obtained is greater than, equal to or less than the RAID width of the storage system; If the number of the plurality of storage devices obtained is greater than or equal to the RAID width, then a RAID stripe is constructed spanning the plurality of storage devices, while avoiding data migration within the storage system; and If the number of the plurality of storage devices obtained is less than the RAID width, then a RAID stripe that satisfies the RAID width is constructed by migrating data within the storage system.

8. The method of claim 2, wherein generating the data region comprises: The maximum size of the data block is determined based on a multiple of the maximum size of the reserved block; as well as The number of data blocks located in the data blocks of the storage devices is determined based on the maximum value of the capacity of the storage devices among the plurality of storage devices and the data block size.

9. The method of claim 8, wherein determining the number of data blocks located in the storage device further comprises: Based on the minimum number of the plurality of storage devices corresponding to the storage strategy, a predetermined condition associated with the number of data blocks is determined; as well as The number of data blocks is determined based on the capacity of the storage devices among the plurality of storage devices, the maximum value, and the predetermined conditions.

10. The method of claim 9, wherein the predetermined conditions include: The number of data blocks is an integer multiple of the minimum number of the plurality of storage devices corresponding to the storage strategy.

11. An electronic device, 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 an action for managing blocks in a storage system, the storage system including multiple storage devices supporting a redundant storage strategy, the action including: Each of the plurality of storage devices is divided into a set of reserved blocks of a first type and a set of data blocks, wherein the data blocks have a data block size; The reserved area of ​​the storage system is generated based at least on the set of first-type reserved blocks located in the plurality of storage devices, the set of first-type reserved blocks being used to support the reconstruction operation for the failed storage device when a failed storage device occurs in the plurality of storage devices; A data region of the storage system is generated based on a set of data blocks located outside the reserved areas in the plurality of storage devices, and the data region is used to provide data storage to users of the storage system; and Perform the rebuild operation for the failed storage device, the rebuild operation comprising: selecting a reserved block of the first type in the reserved area that has a reserved block size smaller than the data block size of the data block in the data area; and The blocks in the faulty storage device are rebuilt using the selected first type of reserved blocks with smaller reserved block sizes.

12. The device of claim 11, wherein generating the reserved area comprises: Determine the maximum size of the reserved block of the first type; Determine the minimum number of reserved blocks of the first type in the storage devices located in the plurality of storage devices; as well as Based on the maximum size and the minimum quantity, at least one reserved block of the first type is determined from the storage device for generating the reserved area.

13. The device of claim 12, wherein determining the maximum size comprises: Determine the maximum number of the plurality of storage devices corresponding to the redundant storage strategy; as well as The maximum size of the reserved block of the first type is determined based on the maximum quantity and the capacity of the storage device.

14. The device of claim 12, wherein determining the minimum quantity comprises: The minimum quantity is determined based on the predetermined capacity of the reserved area and the maximum size of the reserved block of the first type.

15. The device of claim 14, wherein the action further comprises: Each of the plurality of storage devices is divided into a group of reserved blocks of the second type, and The generation of the reserved area further includes: The reserved area is generated based on the set of second-type reserved blocks located in the plurality of storage devices, the set of second-type reserved blocks being used to support expansion operations in the storage system when the number of the plurality of storage devices changes.

16. The device of claim 15, wherein generating the reserved area based on the set of reserved blocks of the second type comprises: The number of reserved blocks of the second type located in the storage devices is determined based on the minimum number of the plurality of storage devices corresponding to the storage strategy.

17. The device of claim 16, wherein the second type of reserved block and the first type of reserved block have the same smaller reserved block size, wherein the generation of the reserved area further comprises: For the storage device, the number of reserved blocks located in the storage device is determined based on the minimum number of reserved blocks of the first type and the sum of the number of reserved blocks of the second type. The actions mentioned above also include: Perform the expansion operation in the storage system, the execution of the expansion operation including: adding storage devices to the plurality of storage devices, and after adding the storage devices to the plurality of storage devices, determining whether the number of the plurality of storage devices obtained is greater than, equal to or less than the RAID width of the storage system; If the number of the plurality of storage devices obtained is greater than or equal to the RAID width, then a RAID stripe is constructed spanning the plurality of storage devices, while avoiding data migration within the storage system; and If the number of the plurality of storage devices obtained is less than the RAID width, then a RAID stripe that satisfies the RAID width is constructed by migrating data within the storage system.

18. The device of claim 12, wherein generating the data area comprises: The maximum size of the data block is determined based on a multiple of the maximum size of the reserved block; as well as The number of data blocks located in the data blocks of the storage devices is determined based on the maximum value of the capacity of the storage devices among the plurality of storage devices and the data block size.

19. The apparatus of claim 18, wherein determining the number of data blocks located in the storage device further comprises: Based on the minimum number of the plurality of storage devices corresponding to the storage strategy, predetermined conditions associated with the number of data blocks are determined, wherein the predetermined conditions include: the number of data blocks is an integer multiple of the minimum number of the plurality of storage devices corresponding to the storage strategy; and The number of data blocks is determined based on the capacity of the storage devices among the plurality of storage devices, the maximum value, and the predetermined conditions.

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

Citation Information

Patent Citations

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

    CN110413208A

  • Method and apparatus for managing storage system, and computer program product

    CN111857541A