Method, device, and program product for creating stripes based on a dynamic window

By adopting a dynamic window-based method in the storage system, dynamically selecting storage devices to create strips, the problem of load imbalance in the use of storage devices in the prior art is solved, and more efficient storage space utilization and system scalability are achieved.

CN115113803BActive Publication Date: 2025-06-03EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110307472.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-23
Publication Date
2025-06-03
Estimated Expiration
2041-03-23

AI Technical Summary

Technical Problem

When creating stripes, existing storage systems are difficult to effectively utilize the storage space of all storage devices, resulting in unbalanced load on storage devices, affecting the scalability and data reliability of the system.

Method used

Using a dynamic window-based approach, create stripes in the storage system. Load balancing is ensured by selecting appropriate storage devices from multiple storage devices and determining an associated storage device sequence based on a predetermined window size.

Benefits of technology

It realizes more efficient use of the storage space of the storage device, avoids the imbalance of the load used by the storage device, and improves the scalability and data reliability of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115113803B_ABST
    Figure CN115113803B_ABST
Patent Text Reader

Abstract

A method, apparatus, and program product for creating stripes based on a dynamic window are disclosed. In one method, in response to a request to create a stripe in the storage system, a first storage device for creating the stripe is selected from the plurality of storage devices. A first block in the first storage device is added to the stripe. A first storage device sequence associated with the first storage device is determined based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device among the plurality of storage devices. At least one other storage device for creating the stripe is determined based on other storage devices in the first storage device sequence other than the first storage device. Each storage device in the storage system can be used in a more balanced manner.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Various implementations of the present disclosure relate to storage management, and more particularly, to a method, apparatus, and computer program product for creating stripes in a storage system based on a dynamic window. Background Art

[0002] With the development of data storage technology, various data storage devices have been able to provide users with increasingly high data storage capabilities. While improving the data storage capabilities, users also have increasingly high requirements for data reliability and the scalability of the storage system. 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 the storage system fail, the data in the failed disks can be reconstructed from the data on other normally operating disks.

[0003] Currently, Mapped Redundant Array of Independent Disks (Mapped RAID) has been developed. In this Mapped RAID, a disk is a logical concept and can include multiple extents. The multiple extents included in a logical disk can be distributed on different physical storage devices in the storage system. For multiple extents in a stripe of the Mapped RAID, the multiple extents should be distributed on different physical storage devices so that when the physical storage device where one of the multiple extents is located fails, a reconstruction operation can be performed to recover the data from the physical storage devices where other extents are located.

[0004] To facilitate the management of multiple storage devices in the storage system, currently, it has been proposed to divide multiple storage devices into at least one group according to grouping thresholds (including an upper threshold and a lower threshold). Stripes in the user storage system can be created based on each storage device in each group. Due to the limitation of the number of storage devices in a group, in some cases, not every storage device in the storage system can be divided into the corresponding group. Further, there may be a situation where the usage loads of the storage devices in each group are severely unbalanced. At this time, how to create stripes in a more effective manner and thus make the most effective use of the storage space in each storage device has become a technical problem. Summary of the Invention

[0005] Therefore, it is desirable to develop and implement a technical solution for creating stripes in a storage system in a more effective manner. It is desirable that this technical solution can be compatible with the existing storage system and manage storage devices in a more effective manner by modifying various configurations of the existing storage system.

[0006] According to a first aspect of the present disclosure, there is provided a method for creating a stripe in a storage system, the storage system including a plurality of storage devices. In this method, in response to a request to create a stripe in the storage system, a first storage device for creating the stripe is selected from the plurality of storage devices. A first block in the first storage device is added to the stripe. A first storage device sequence associated with the first storage device is determined based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device among the plurality of storage devices. At least one other storage device for creating the stripe is determined based on other storage devices in the first storage device sequence other than the first storage device.

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

[0008] According to a third aspect of the present disclosure, there is provided a computer program product, the computer program product being tangibly stored on a non-transitory computer-readable medium and including machine-executable instructions for executing the method according to the first aspect of the present disclosure. Description of the Drawings

[0009] In conjunction with the drawings and with reference to the following detailed description, the features, advantages and other aspects of various implementations of the present disclosure will become more apparent. Several implementations of the present disclosure are shown herein by way of example and not limitation. In the drawings:

[0010] Figure 1 A schematic diagram of a storage system according to one technical solution is schematically shown;

[0011] Figure 2 A block diagram of a process for creating a stripe based on a dynamic window according to one implementation of the present disclosure is schematically shown;

[0012] Figure 3 A flowchart of a method for creating a stripe based on a dynamic window according to one implementation of the present disclosure is schematically shown;

[0013] Figure 4 A block diagram of a process for determining the relevance between two storage devices according to one implementation of the present disclosure is schematically shown;

[0014] Figure 5 A block diagram of a dynamic window according to one implementation of the present disclosure is schematically shown;

[0015] Figures 6A to 6E A block diagram schematically showing a process for selecting respective blocks in a stripe according to one implementation of the present disclosure; and

[0016] Figure 7 A block diagram schematically showing a device for managing a stripe based on a dynamic window according to one implementation of the present disclosure. Detailed implementation manners

[0017] 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 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.

[0018] As used herein, the term "including" and its variations mean open inclusion, that is, "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 "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. There may be other explicit and implicit definitions hereinafter.

[0019] First, refer to Figure 1 Describe the application environment of the storage system. Figure 1 A schematic diagram schematically showing a storage system 100 according to one technical solution is shown. As Figure 1 shown, the storage system 100 may include a resource pool 110, and the resource pool 110 may include a plurality of storage devices. For ease of management, the plurality of storage devices may be divided into one or more groups. For example, the storage devices 122,..., 124,..., and 126 may be divided into the group 120, and the storage devices 132,..., 134,..., and 136 may be divided into the group 130.

[0020] The storage system 100 may be a RAID-based storage system. A RAID-based storage system may combine a plurality of storage devices into a disk array. By providing redundant storage devices, the reliability of the entire disk group can be greatly improved compared to a single storage device. RAID can provide various advantages over a single storage device, such as enhanced data integration, enhanced fault tolerance, increased throughput or capacity, and so on. 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 so on.

[0021] Based on the mapping RAID technology, the storage space in each storage device in a group can be utilized to create a user storage system. For example, user storage systems 140, …, and 142 can be respectively created based on each storage device in group 120. At this time, for a stripe in the user storage system, only free blocks can be selected from each storage device in one group to create the stripe. In other words, multiple blocks in the stripe can only come from one group and cannot span multiple groups.

[0022] It will be understood that the number of storage devices included in a group has a threshold range (e.g., including an upper threshold and a lower threshold). Generally speaking, the upper threshold can be set to 64 or other values, and the lower threshold can be determined according to the stripe width of the storage system and the number of required backup storage devices. For example, in a 4D + 1P storage system, the stripe width is 4 + 1 = 5, and the number of backup storage devices is 1. Then, the lower threshold can be determined based on the sum of the two: 5 + 1 = 6. At this time, each group can include 6 to 64 storage devices. When the number of storage devices included in resource pool 110 exceeds 64, there can be multiple groups.

[0023] It will be understood that the threshold range may impose many restrictions on the management of the storage system. For example, when expanding the number of storage systems in resource pool 110, there may be a situation where the newly added storage system cannot be divided into a certain group. Another example is that the storage devices in each group may have a serious imbalance in usage load, which will cause a serious imbalance in the available storage space and service life of each storage device in the storage system, and so on.

[0024] To at least partially address the deficiencies in the above technical solutions, according to an exemplary implementation of the present disclosure, a technical solution for creating stripes in a storage system based on a dynamic window is provided. In the following, the process according to an exemplary implementation of the present disclosure will be described with reference to Figure 2 Generally describe the process according to an exemplary implementation of the present disclosure. Figure 2 A block diagram of process 200 for creating stripes based on a dynamic window according to an implementation of the present disclosure is schematically shown. As Figure 2 shown, storage devices for creating stripes can be selected based on a dynamic window (e.g., windows 210 and 220). According to an exemplary implementation of the present disclosure, the concept of "group" in the existing technical solution is abandoned, and blocks for creating stripes can be selected from all storage devices in the resource pool (rather than storage devices in one group).

[0025] In the following, only a 4D+1P storage system will be described as an example. Each block in a stripe can be selected in multiple rounds. In the first round, an idle block in storage device 126 can be selected as the first block in the stripe. A window 210 including the storage device 126 can be determined, and the window 210 can have a predetermined width. Subsequently, other storage devices for creating the stripe can be determined based on storage devices in the window 210 that are different from the storage device 126. In the second round, an idle block in another storage device 124 can be selected as the second block in the stripe. Further, another window 220 including the storage device 124 can be determined, and in subsequent steps, other storage devices for creating the stripe can be determined based on storage devices in the intersection 230 of the two windows.

[0026] With the exemplary implementation of the present disclosure, the grouping in the existing storage system is abandoned, which can uniformly manage all storage devices in the storage system in a more flexible manner. The situation where all storage devices cannot be divided into corresponding groups when the number of storage devices in the storage system changes can be avoided. Further, since the position of the window can change with the position of the previously selected storage device, the next storage device for creating the stripe can be selected from more storage devices in a more flexible manner. In this way, the imbalance in the usage load of each storage device in the storage system can be avoided, and thus the storage space in each storage device can be utilized more fully.

[0027] In the following, reference will be made to Figure 3 describe more details of an exemplary implementation of the present disclosure. Figure 3 The flowchart of a method 300 for creating a stripe based on a dynamic window according to an implementation of the present disclosure is schematically shown. At block 310, in response to a request to create a stripe in the storage system 110, a first storage device for creating the stripe is selected from multiple storage devices. In a 4D+1P storage system, a stripe includes 4+1 = 5 blocks, so 5 storage devices need to be selected. At this time, block 310 involves selecting a first storage device for creating the stripe from all storage devices in the storage system.

[0028] According to an exemplary implementation of the present disclosure, the first storage device can be randomly selected. Alternatively and / or additionally, the first storage device can be selected from multiple storage devices in the storage system based on the relevance of each storage device. To ensure the workload balance of each storage device, the concept of device relevance of storage devices is proposed. Here, the device relevance of a specific storage device represents the distribution of a set of stripes that have been created in the storage system between the specific storage device and other storage devices other than the specific storage device.

[0029] When a request to create a stripe in a storage system is received, the device relevance of storage devices among multiple storage devices can be determined. Here, there can be a one-to-one correspondence between the device relevance and the storage devices. For example, based on the distribution of a set of already created stripes among storage devices and other storage devices, the device relevance of a storage device can be determined. Similarly, the device relevance of storage devices can be determined, and further, the device relevance of each storage device can be determined.

[0030] According to an exemplary implementation of the present disclosure, the device relevance can be determined based on the relevance between two storage devices. Hereinafter, the concept of the relevance between two storage devices will be introduced first. A 4D + 1P RAID stripe includes 5 blocks, and the data in the 5 blocks is usually accessed associatively. This results in an increase in the access volume of 5 storage devices each including 5 blocks. Generally speaking, for any two storage devices, the more stripes that the two storage devices jointly serve, the greater the possibility that the two storage devices are accessed simultaneously, and the higher the workload of the two storage devices. Therefore, it should be avoided as much as possible that two storage devices serve too many stripes simultaneously.

[0031] For the i-th storage device and the j-th storage device (i ≠ j) among multiple storage devices, the relevance between the two storage devices can be expressed as γ Disk i,Disk j . According to the exemplary implementation of the present disclosure, the relevance of a storage device itself can be set to 0, that is, γ Disk i,Disk i = 0. As the storage system is used, some stripes will be created in the storage system. Hereinafter, it will be described with reference to Figure 4 how to determine the relevance between storage devices.

[0032] Figure 4 FIG. schematically shows a block diagram of a process 400 for determining the relevance between two storage devices according to an implementation of the present disclosure. As Figure 4 shown, it is assumed that the storage system includes N (N is a positive integer) storage devices D0 to DN-1. Three stripes 410, 420, and 430 have been created in the storage system. The relevance γ Disk i,Disk j can be determined based on the number of stripes that jointly involve the i-th storage device and the j-th storage device. If it is desired to determine the relevance between storage device D0 and storage device D1 (that is, i = 0, j = 1), it can be found that only stripe 410 uses the blocks in both storage device D0 and storage device D1. Therefore, γ Disk 0,Disk 1 = 1.

[0033] For another example, if it is desired to determine the relevance between storage device D1 and storage device D2 (i.e., i = 1, j = 2), it can be found that stripe 410 uses blocks in both storage device D1 and storage device D2, and stripe 420 also uses blocks in both storage device D1 and storage device D2. Thus, γ Disk 1,Disk 2 = 2. Similarly, the relevance between any two storage devices among multiple storage devices can be determined. The mapping relationship between a stripe and the blocks in the stripe can be conveniently obtained from the address mapping of the storage system. Thus, using the exemplary implementation of the present disclosure, the relevance γ between any two storage devices can be determined in a simple and effective manner Disk 1,Disk 2 .

[0034] According to the exemplary implementation of the present disclosure, based on the relevance between two storage devices, the device relevance of a specific storage device among multiple storage devices can be determined. Specifically, the relevance between the specific storage device and each other storage device other than the specific storage device can be determined respectively. Further, based on the determined relevance, the device relevance of the specific storage device can be determined

[0035] According to the exemplary implementation of the present disclosure, the device relevance can be set to be proportional to the relevance between the storage device and each other storage device. For example, the sum of multiple relevances can be obtained, and the device relevance can be determined based on the summation operation. Using the exemplary implementation of the present disclosure, based on simple mathematical operations, the device relevance of a specific storage device can be determined based on the relevance between the specific storage device and other storage devices. Assume that it is desired to determine the device relevance of the i-th storage device. The relevance between the i-th storage device and the other j-th storage device (0 ≤ j ≤ N - 1, and i ≠ j) can be determined based on the method described above with reference to Figure 4 the method described above. According to the exemplary implementation of the present disclosure, the device relevance γ of the i-th storage device can be determined based on the following formula 1 Disk i :

[0036]

[0037] where γ Disk i , represents the device relevance of the i-th storage device, and γ Diski,Disk j represents the relevance between the i-th storage device and the j-th storage device, and N represents the number of storage devices in the resource pool

[0038] Using the exemplary implementation of the present disclosure, for the i-th storage device, the device relevance γ of the device Disk iIt represents the sum of the relevance degrees between the i-th storage device and the other N - 1 storage devices. At this time, the device relevance degree can accurately measure the degree of relevance between the i-th storage device and other storage devices, and can reflect the workload of this storage device. Selecting the storage device for creating a stripe based on the device relevance degree can accurately select a suitable storage device that helps achieve load balancing based on the workloads of individual storage devices.

[0039] It will be understood that the above formula 1 only schematically shows a specific example for determining the device relevance degree. According to the exemplary implementation manners of the present disclosure, other formulas can also be used to determine the device relevance degree. For example, the device relevance degree can be determined based on the product of multiple relevance degrees. It has been described above how to determine the device relevance degree γ of the i-th storage device Disk i, , after the device relevance degrees of each storage device have been determined, a storage device can be selected from multiple storage devices based on the device relevance degree. In the case where the device relevance degrees of each storage device have been determined, the respective device relevance degrees can be compared in order to select a first storage device from multiple storage devices.

[0040] According to an exemplary implementation manner of the present disclosure, a storage device with a lower device relevance degree can be selected from multiple storage devices. Assume that the device relevance degree γ of the i-th storage device among multiple storage devices Disk i, is less than the device relevance degree γ of the j-th storage device among multiple storage devices Disk j , then the i-th storage device can be selected. By using the exemplary implementation manner of the present disclosure, a storage device with the lowest workload can be preferentially selected based on the device relevance degree, so that the created stripe can make the best use of the storage devices in the resource pool with better working states as much as possible. According to the exemplary implementation manner of the present disclosure, the device relevance degrees of each storage device can be compared, and a block in the storage device with the smallest device relevance degree can be selected as the first block in the stripe. In this way, a block in the storage device with the lowest workload can be used as much as possible to create a stripe.

[0041] The process of selecting the first storage device for creating a stripe has been described. In the following, return Figure 3 to describe the subsequent operations related to creating a stripe. At block 320, the first block in the first storage device is added to the stripe. At this time, an idle block can be selected from the first storage device for creating a stripe. The selected block can be used as the first block and added to the stripe. At block 330, a first storage device sequence associated with the first storage device is determined based on a predetermined window size. In the following, more details about the predetermined window will be referred to Figure 5 to describe more details about the predetermined window. Figure 5A block diagram schematically showing a dynamic window 500 according to an implementation of the present disclosure is provided. Assume that the storage system includes 160 storage devices (i.e., storage devices D0 to D159), and the coordinate axes show the respective storage devices arranged in sequence, where the coordinate points show the IDs of the storage devices. As Figure 5 shown, the black dots represent the storage devices selected for creating stripes. At this time, the storage device 510 (D80) in the storage system is selected as the first storage device.

[0042] According to an exemplary implementation of the present disclosure, a first sequence associated with the storage device can be determined based on the position of the first storage device (as shown by window 512). Here, the first storage device sequence includes the first storage device and a set of consecutive storage devices adjacent to the first storage device among the multiple storage devices. The width of window 512 can be specified in advance. For example, the width of the window can be set based on the upper threshold of grouping in existing technical solutions and / or other values. According to an exemplary implementation of the present disclosure, the window width can be specified as 64 (or other values).

[0043] According to an exemplary implementation of the present disclosure, the first storage device sequence can be determined based on a predetermined window size so that the first storage device is close to the center of the first storage device sequence. For example, 32 storage devices can be selected from the left side of the first storage device, and 31 storage devices can be selected from the right side of the first storage device. At this time, the first storage device sequence will include 64 storage devices. In Figure 5 this example, the first storage device sequence can include storage devices D48 to D111. For another example, 31 storage devices can be selected from the left side of the first storage device, and 32 storage devices can be selected from the right side of the first storage device.

[0044] It will be understood that although the above schematically shows determining the storage device sequence in a substantially symmetric manner from both sides of the selected storage device. According to an exemplary implementation of the present disclosure, the sliding range of window 512 can be specified to ensure that the sliding window includes a sufficient number of storage devices for creating stripes. For example, 30 storage devices can be selected from the left side of the storage device, and 33 storage devices can be selected from the right side of the storage device. For another example, 29 storage devices can be selected from the left side of the storage device, and 34 storage devices can be selected from the right side of the storage device.

[0045] It will be understood that in a 4D+1P stripe, the stripe includes 5 blocks. At this time, after determining the first storage device sequence associated with the first storage device, it is necessary to select the subsequent 4 storage devices based on the intersection of the first storage device sequence and other storage device sequences. Therefore, it should be ensured that in the extreme case (each time a storage device at the edge of the intersection is selected), there is at least one storage device in the intersection when the last storage device is selected. Therefore, the sliding range of the window should be greater than or equal to 5 - 1 = 4. That is, when determining the first storage device sequence, the distance between the window edge and the first storage device should be greater than or equal to 4.

[0046] According to an exemplary implementation of the present disclosure, for a stripe with a width of M, when determining the storage device sequence associated with each selected storage device, it should be ensured that the distance between the window edge and the selected storage device is greater than or equal to M - 1. It will be understood that the window edge here includes the left edge and the right edge of the window. That is, in the extreme case, the storage device sequence may include: M - 1 storage devices on the left (or right) side of the selected storage device, and 64 - (M - 1) - 1 storage devices on the right (or left) side of the selected storage device. Using the exemplary implementation of the present disclosure, it can be ensured that there is at least 1 storage device in the intersection of each storage device sequence when determining the last block in the stripe.

[0047] According to an exemplary implementation of the present disclosure, to ensure that the storage device sequence can be determined in a continuous manner, multiple storage devices can be arranged in a circular manner. It will be understood that if the number of multiple storage devices in the storage system is less than the upper threshold (for example, 64), then no matter how the window slides, the multiple storage devices will be within the same grouping threshold range. If the number of multiple storage devices is greater than the upper threshold, the sliding of the window will enable more storage devices to be used to create stripes, thereby improving the utilization efficiency and balance of the storage system.

[0048] After the first storage device sequence has been determined, other blocks in the stripe can be created based on other storage devices in the first storage device sequence. Return Figure 3 , at Figure 3 In block 340, based on other storage devices in the first storage device sequence other than the first storage device, determine at least one other storage device for creating the stripe. It will be understood that based on the principle of RAID, each block in the stripe should come from a different storage device. Therefore, at this time, it is necessary to select unselected storage devices from the first storage device sequence.

[0049] According to an exemplary implementation of the present disclosure, a second storage device for creating a stripe can be selected from other storage devices. For example, the second storage device can be selected from other storage devices based on a random manner. Alternatively and / or additionally, to ensure the performance of the stripe, the second storage device can be selected based on stripe relevance. Here, the stripe relevance describes the relevance between a storage device and multiple storage devices where a stripe is located. The higher the stripe relevance, the closer the relationship between the storage device and the stripe. For example, the stripe relevance γ between the i-th storage device and the k-th stripe can be determined based on the following formula 2 Disk i,RE k .

[0050]

[0051] where γ Disk i,RE k represents the stripe relevance between the i-th storage device and the k-th stripe, γ Disk i,Disk j represents the relevance between the i-th storage device and the j-th storage device, and the j-th storage device represents each storage device including the blocks in the k-th stripe. Using the exemplary implementation of the present disclosure, the relevance between a storage device and the storage devices where each block in the stripe is located can reflect the closeness between the storage device and each storage device involved in the stripe. By summing multiple relevances, the closeness between the device and the stripe can be determined in a simple and effective manner.

[0052] It will be understood that since multiple blocks in the stripe need to be located in different storage devices, blocks need to be selected from other storage devices not involved in the stripe to create the stripe. At this time, a set of storage devices involved in the stripe and a set of storage devices not involved in the stripe can be determined. In the initial stage of creating the stripe, the stripe only includes blocks in the first storage device. The subsequent second, third, fourth, and fifth blocks can be determined step by step. According to an exemplary implementation of the present disclosure, when selecting the second to fifth storage devices for creating the stripe, the stripe relevance between each alternative storage device and the current stripe can be determined first, and the storage device with a lower (or the lowest) stripe relevance can be preferentially selected.

[0053] According to an exemplary implementation of the present disclosure, the second block in the second storage device can be added to the stripe. Further, it can be determined whether the number of blocks in the current stripe reaches the predetermined width of the stripe. If the number of blocks in the stripe is lower than the predetermined width of the stripe, based on the respective storage device sequences associated with the respective blocks in the stripe, the next storage device for creating the stripe is determined. In other words, the storage device sequence of each block in the stripe can be determined respectively, and the determined respective storage device sequences are used to determine the next storage device.

[0054] According to an exemplary implementation of the present disclosure, intersections of respective storage device sequences associated with respective blocks in a stripe can be determined, and a next storage device can be selected from other storage devices in the intersections that are different from the storage devices where the respective blocks in the stripe are located. For example, any storage device can be randomly selected from the intersections, or for another example, based on the stripe relevance described above, a storage device with the minimum stripe relevance can be selected from the intersections.

[0055] According to an exemplary implementation of the present disclosure, for a first group of storage devices in the intersections that do not include any block in the stripe, the stripe relevance between a given storage device in the first group of storage devices and the stripe can be determined. According to the exemplary implementation of the present disclosure, it is desirable that the overall relevance between the storage devices where the blocks in the stripe to be created are located is as small as possible. Therefore, a block in a storage device with a smaller stripe relevance can be preferentially selected. Further, an idle block in the selected storage device can be added to the stripe. Using the exemplary implementation of the present disclosure, when selecting the next block in the stripe each time, the stripe relevance can be used to simply and effectively select a block in a storage device with a smaller relevance. In this way, storage devices that are relatively distant from one or more storage devices involved in the current stripe can be utilized as much as possible, which enables the stripe to operate with higher performance.

[0056] For ease of description, the symbol γ Disk i,RE current can be used to represent the stripe relevance between the i-th storage device and the current stripe. Where RE current represents the storage device where the block in the current stripe is located. To determine the second block in the stripe, a storage device with the minimum stripe relevance can be selected.

[0057] It will be understood that since the number of blocks in the stripe is determined by the stripe width, when the number of blocks in the stripe is less than the stripe width, the above steps can be continuously repeated. According to the exemplary implementation of the present disclosure, the width of the stripe can be first determined, and based on the comparison between the number of blocks in the current stripe and the width, it can be determined whether to perform the selection step. Specifically, if the number of blocks is less than the stripe width, the next block is selected; otherwise, the selection operation stops. To select one or more subsequent blocks, the stripe relevance between each selectable storage device and the current stripe can be continuously determined based on the above formula 2, and then an idle block in a storage device with the minimum stripe relevance can be selected.

[0058] Using the exemplary implementation of the present disclosure, each block in the stripe can be determined one by one only through simple mathematical calculations. In this way, it can be ensured that each time a block in a storage device that is most helpful for achieving load balancing is selected from multiple storage devices to create a stripe.

[0059] The selection of one or more subsequent blocks based on stripe relevance has been described above. According to an exemplary implementation of the present disclosure, storage devices can also be selected based on both the stripe relevance and device relevance of the storage device. It will be understood that multiple blocks in a stripe will be accessed associatively, and selecting storage devices based on stripe relevance can consider the mutual influence among the individual storage devices in the created stripe. During subsequent operations, the performance of a storage device will also be affected by the relevance (i.e., device relevance) between this storage device and other storage devices. Therefore, storage devices can be selected based on both stripe relevance and device relevance. Using the exemplary implementation of the present disclosure, the above two aspects of factors can be fully considered, thereby improving the overall performance of the storage system.

[0060] According to an exemplary implementation of the present disclosure, the combined relevance γ′ between the i-th storage device and the current stripe can be determined based on Formula 3 Disk i,RE k 。

[0061] γ′ Disk i,REcurrent =γ Disk i,RE current +γ Disk i

[0062] Formula 3

[0063] where γ′ Disk i,RE current represents the combined relevance between the i-th storage device and the current stripe, γ Disk i,RE current represents the stripe relevance between the i-th storage device and the current stripe, and γ Disk i represents the device relevance of the i-th storage device. It will be understood that Formula 3 is merely a specific example for calculating the combined relevance. According to an exemplary implementation of the present disclosure, other formulas can be used to determine the combined relevance. For example, the combined relevance can be determined based on the product of the stripe relevance and the device relevance.

[0064] Above, how to determine the stripe relevance between each storage device in the intersection and the current stripe has been described based on Formula 2 and Formula 3. According to an exemplary implementation of the present disclosure, the stripe relevance of each storage device that can be used to create a stripe can be determined based on Formula 2 or 3, and then the storage device with the lower (lowest) stripe relevance can be selected to create the stripe.

[0065] Above, the process for determining each block in the stripe has been described. In the following, how to determine the 1st to 5th blocks in the stripe will be described respectively in combination with Figures 6A to 6E description. Figure 6AA block diagram schematically showing process 600A for selecting the first block in a stripe. Assuming storage device 610 (D80) is selected based on device relevance, at this time, the range of storage device sequence 612 associated with storage device 610 can be determined as: storage devices D48 to D111 (select 32 storage devices from the left side of storage device 610 and 31 storage devices from the right side of storage device 610). At this time, the storage devices used to create the stripe include: storage device D80.

[0066] Figure 6B A block diagram schematically showing process 600B for selecting the second block in a stripe. The storage device for providing the second block (different from storage device 610) can be selected from storage device sequence 612 based on the method described above. Assuming storage device 620 (D96) is selected, the range of storage device sequence 622 associated with storage device 620 can be determined as: D64 to D127. At this time, the intersection 624 of the two storage device sequences 612 and 622 includes: D64 to D111; and the storage devices used to create the stripe include: D80 and D96.

[0067] Figure 6C A block diagram schematically showing process 600C for selecting the third block in a stripe. The storage device for providing the third block (different from storage devices 610 and 620) can be selected from intersection 624 based on the method described above. Assuming storage device 630 (D100) is selected, the range of storage device sequence 632 associated with storage device 630 can be determined as: D68 to D131. At this time, the intersection 634 of the three storage device sequences 612, 622, 632 includes: D68 to D111; and the storage devices used to create the stripe include: D80, D96, and D100.

[0068] Figure 6D A block diagram schematically showing process 600D for selecting the fourth block in a stripe. The storage device for providing the fourth block (different from storage devices 610, 620, and 630) can be selected from intersection 634 based on the method described above. Assuming storage device 640 (D70) is selected, the range of storage device sequence 642 associated with storage device 640 can be determined as: D38 to D101. At this time, the intersection 644 of the four storage device sequences 612, 622, 632, and 642 includes: D68 to D101; and the storage devices used to create the stripe include: D80, D96, D100, and D70.

[0069] Figure 6E A block diagram schematically shows a process 600E for selecting the 5th block in a stripe. A storage device (different from storage devices 610, 620, 630, and 640) for providing the 5th block can be selected from the intersection 644 based on the method described above. Suppose storage device 650 (D90) is selected. At this time, 5 storage devices for creating a stripe have been selected: D80, D96, D100, D70, and D90 storage devices. With the exemplary implementation of the present disclosure, 5 storage devices for creating a stripe can be selected in a convenient and efficient manner. At this time, compared with creating a stripe within a group in the prior art solution, the positions of the storage devices in the stripe created by the Figures 6A to 6E process shown are no longer limited within a single group, thereby ensuring the workload balance of each storage device in the storage system.

[0070] According to an exemplary implementation of the present disclosure, one or more stripes can be created based on the number of stripes included in the user storage system. If another request to create another stripe in the storage system is received, storage devices for creating the other stripe can be selected from storage devices outside the first storage device sequence among multiple storage devices. In this way, it can be ensured that each stripe in the user storage system is distributed among storage devices spanning a larger location range as much as possible, thereby making the workload of each storage device as balanced as possible.

[0071] For example, when creating the first stripe, the range of the first storage device sequence includes: D48 to D111. When creating the second stripe, multiple storage devices for creating the second stripe can be selected as much as possible from storage devices outside the first storage device sequence. For example, D0 can be selected as the first storage device for creating the second stripe. At this time, the storage device sequence associated with the first storage device in the second stripe will include D128 to D31. At this time, the blocks in the second stripe will come from D128 to D31. When creating subsequent stripes, storage devices not covered by the storage device sequence of the previous stripe can be used as the first storage device for the subsequent stripe as much as possible.

[0072] With the exemplary implementation of the present disclosure, as the number of stripes in the storage system increases, the usage load of each storage device will be evenly distributed throughout the storage system. In this way, the situation of uneven usage load of each storage device caused by the existing storage system that creates stripes based on groups will be avoided.

[0073] It has been referred to above Figure 2Examples of the method according to the present disclosure are described in detail with reference to FIGS. 1 to 6, and the implementation of the corresponding device will be described hereinafter. According to an exemplary implementation of the present disclosure, a device for creating a stripe in a storage system is provided, the storage system including a plurality of storage devices. The device includes: a selection module configured to, in response to a request to create a stripe in the storage system, select a first storage device for creating the stripe from the plurality of storage devices; an addition module configured to add a first block in the first storage device to the stripe; a sequence determination module configured to determine a first storage device sequence associated with the first storage device based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device among the plurality of storage devices; and a device determination module configured to determine at least one other storage device for creating the stripe based on other storage devices other than the first storage device in the first storage device sequence. According to an exemplary implementation manner of the present disclosure, the device further includes a module for performing other steps in the method described above.

[0074] Figure 7 FIG. 4 schematically shows a block diagram of a device 700 for managing a stripe based on a dynamic window according to an exemplary implementation of the present disclosure. As shown in the figure, the device 700 includes a central processing unit (CPU) 701, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 702 or computer program instructions loaded from a storage unit 708 into a random access memory (RAM) 703. In the RAM 703, various programs and data required for the operation of the device 700 can also be stored. The CPU 701, the ROM 702, and the RAM 703 are connected to each other through a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.

[0075] A plurality of components in the device 700 are connected to the I / O interface 705, including: an input unit 706, such as a keyboard, a mouse, etc.; an output unit 707, such as various types of displays, speakers, etc.; a storage unit 708, such as a magnetic disk, an optical disk, etc.; and a communication unit 709, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 709 allows the device 700 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0076] Each of the processes and treatments described above, such as method 300, may be executed by processing unit 701. For example, in some implementations, method 300 may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as storage unit 708. In some implementations, part or all of the computer program may be loaded and / or installed onto device 700 via ROM 702 and / or communication unit 709. When the computer program is loaded into RAM 703 and executed by CPU 701, one or more steps of method 300 described above may be executed. Alternatively, in other implementations, CPU 701 may also be configured in any other suitable manner to implement the above processes / methods.

[0077] According to an exemplary implementation of the present disclosure, there is provided an electronic device, the device including: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions, when executed by the at least one processor, causing the device to execute a method for creating a stripe in a storage system, the storage system including a plurality of storage devices. The method includes: in response to a request to create a stripe in the storage system, selecting a first storage device for creating the stripe from the plurality of storage devices; adding a first block in the first storage device to the stripe; determining a first storage device sequence associated with the first storage device based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device among the plurality of storage devices; and determining at least one other storage device for creating the stripe based on other storage devices other than the first storage device in the first storage device sequence.

[0078] According to an exemplary implementation of the present disclosure, determining at least one other storage device includes: selecting a second storage device for creating the stripe from the other storage devices; adding a second block in the second storage device to the stripe; and in response to determining that the number of blocks in the stripe is less than the predetermined width of the stripe, determining a next storage device for creating the stripe based on each storage device sequence associated with each block in the stripe.

[0079] According to an exemplary implementation of the present disclosure, determining the next storage device includes: determining the intersection of each storage device sequence associated with each block in the stripe; and

[0080] selecting the next storage device from other storage devices in the intersection that are different from each storage device where each block in the stripe is located.

[0081] According to an exemplary implementation of the present disclosure, selecting a next storage device includes: determining a stripe relevance between a given storage device in a first group of storage devices that do not include any block in the stripe in the intersection; and selecting a next storage device from the first group of storage devices based on the determined stripe relevance.

[0082] According to an exemplary implementation of the present disclosure, determining a stripe relevance between a given storage device and a stripe includes: in the intersection, determining a second group of storage devices that respectively include each block in the stripe; and determining a stripe relevance between the given storage device and the stripe based on the relevance between the given storage device and each storage device in the second group of storage devices.

[0083] According to an exemplary implementation of the present disclosure, selecting a next storage device from the first group of storage devices based on the determined stripe relevance includes: selecting a next storage device based on the stripe relevance and the device relevance of the next storage device.

[0084] According to an exemplary implementation of the present disclosure, selecting a first storage device from multiple storage devices includes: determining a device relevance of the storage devices in the multiple storage devices, where the device relevance represents the distribution of a set of stripes that have been created in the storage system between the storage devices and other storage devices outside the storage devices; and selecting a first storage device from the multiple storage devices based on the determined device relevance.

[0085] According to an exemplary implementation of the present disclosure, determining a first storage device sequence associated with the first storage device based on a predetermined window size includes: determining a first storage device sequence based on the predetermined window size such that the first storage device is close to the center of the first storage device sequence.

[0086] According to an exemplary implementation of the present disclosure, the method further includes: in response to receiving another request to create another stripe in the storage system, selecting a storage device for creating the another stripe from storage devices outside the first storage device sequence among the multiple storage devices.

[0087] According to an exemplary implementation of the present disclosure, the multiple storage devices are arranged in a ring, the stripe is a stripe in a redundant array of independent disks, the number of the multiple storage devices is greater than a threshold upper limit of the number of storage devices included in a group for forming the redundant array of independent disks, and the predetermined window size is determined based on the threshold upper limit.

[0088] According to an exemplary implementation of the present disclosure, there is provided a computer program product, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing the method according to the present disclosure.

[0089] According to an exemplary implementation of the present disclosure, a computer-readable medium is provided. Machine-executable instructions are stored on the computer-readable medium, and when the machine-executable instructions are executed by at least one processor, the at least one processor is caused to implement the method according to the present disclosure.

[0090] 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 having thereon computer-readable program instructions for performing various aspects of the present disclosure.

[0091] A computer-readable storage medium may be a tangible device that can retain and store instructions for use 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 (a non-exhaustive list) of the computer-readable storage medium 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 disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as a punch card or raised structures in a groove having instructions stored thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not construed to be a transitory 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., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0092] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to respective computing / processing devices, or may be 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 may include copper transmission cables, optical fiber 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 the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device.

[0093] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine - related 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 the "C" language or similar programming languages. The computer - readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as a stand - alone software package, partially on the user's computer and 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 through any type of network, including a local area network (LAN) or a wide area network (WAN), or, alternatively, may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some implementations, by using the state information of the computer - readable program instructions to customize an electronic circuit, such as a programmable logic circuit, a field - programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer - readable program instructions to implement various aspects of the present disclosure.

[0094] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to the present 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.

[0095] 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 the instructions, when executed by the processing unit of the computer or other programmable data - processing apparatus, create a means for implementing the functions / acts 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, which causes a computer, a programmable data - processing apparatus, and / or other devices to operate in a particular manner, so that the computer - readable medium storing the instructions comprises a manufacture, which includes instructions for implementing various aspects of the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0096] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, causing 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 such that the instructions executed on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0097] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various implementations of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of code, or a portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending upon the functionality involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or by combinations of special purpose hardware and computer instructions.

[0098] The implementations of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is 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 choice of terms used herein is intended to best explain the principles of the implementations, the practical application, or improvements made to the technology in the marketplace, or to enable other ordinary skill in the art to understand the implementations disclosed herein.

Claims

1. A method for creating a stripe in a storage system, the storage system including a plurality of storage devices, the method comprises: In response to a request to create a stripe in the storage system, selecting a first storage device from the plurality of storage devices for creating the stripe; Adding a first block in the first storage device to the stripe; Determining a first storage device sequence associated with the first storage device based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device in the plurality of storage devices; and Determining at least one other storage device for creating the stripe based on other storage devices in the first storage device sequence other than the first storage device.

2. The method according to claim 1, wherein determining the at least one other storage device comprises: Selecting a second storage device from the other storage devices for creating the stripe; Adding a second block in the second storage device to the stripe; and In response to determining that the number of blocks in the stripe is less than a predetermined width of the stripe, determining a next storage device for creating the stripe based on respective storage device sequences associated with respective blocks in the stripe.

3. The method according to claim 2, wherein determining the next storage device comprises: Determining an intersection of respective storage device sequences associated with respective blocks in the stripe; and Selecting the next storage device from storage devices other than respective storage devices where respective blocks in the stripe are located in the intersection.

4. The method according to claim 3, wherein selecting the next storage device comprises: For a first set of storage devices in the intersection that do not include any block in the stripe, determining a stripe relevance between a given storage device in the first set of storage devices and the stripe; and Selecting the next storage device from the first set of storage devices based on the determined stripe relevance.

5. The method according to claim 4, wherein determining the stripe relevance between the given storage device and the stripe comprises: In the intersection, determining a second set of storage devices respectively including respective blocks in the stripe; and Determining the stripe relevance between the given storage device and the stripe based on the relevance between the given storage device and each storage device in the second set of storage devices.

6. The method according to claim 4, wherein selecting the next storage device in the first set of storage devices based on the determined stripe relevance comprises: Selecting the next storage device based on the stripe relevance and a device relevance of the next storage device.

7. The method according to claim 1, wherein selecting the first storage device from the plurality of storage devices comprises: Determine the device relevance of the storage devices among the multiple storage devices, where the device relevance indicates the distribution of a set of stripes that have been created in the storage system between the storage device and other storage devices outside the storage device; And Based on the determined device relevance, select the first storage device from the multiple storage devices.

8. The method according to claim 1, determining a first storage device sequence associated with the first storage device based on a predetermined window size Comprising: Determine the first storage device sequence based on the predetermined window size such that the first storage device is close to the center of the first storage device sequence.

9. The method according to claim 1, wherein the method further Comprising: In response to receiving another request to create another stripe in the storage system, select a storage device for creating the another stripe from the storage devices outside the first storage device sequence among the multiple storage devices.

10. The method according to claim 1, wherein the multiple storage devices are arranged in a ring manner, the stripe is a stripe in a redundant array of independent disks, the number of the multiple storage devices is greater than a threshold upper limit of the number of storage devices included in a group for forming the redundant array of independent disks, and the predetermined window size is determined based on the threshold upper limit.

11. An electronic device, the device Comprising: At least one processor; And A memory coupled to the at least one processor, the memory having instructions stored therein, the instructions when executed by the at least one processor cause the device to execute a method for creating a stripe in a storage system, the storage system including multiple storage devices, the method including: In response to a request to create a stripe in the storage system, select a first storage device for creating the stripe from the multiple storage devices; Add a first block in the first storage device to the stripe; Determine a first storage device sequence associated with the first storage device based on a predetermined window size, the first storage device sequence including the first storage device and a set of consecutive storage devices adjacent to the first storage device among the multiple storage devices; and Based on the storage devices other than the first storage device in the first storage device sequence, determine at least one other storage device for creating the stripe.

12. The device according to claim 11, wherein determining the at least one other storage device Comprising: Select a second storage device for creating the stripe from the other storage devices; Add a second block in the second storage device to the stripe; And In response to determining that the number of blocks in the stripe is less than the predetermined width of the stripe, determine the next storage device for creating the stripe based on the respective storage device sequences associated with the respective blocks in the stripe.

13. The device according to claim 12, wherein determining the next storage device Comprising: Determine the intersection of each storage device sequence associated with each block in the stripe; And Select the next storage device from other storage devices in the intersection that are different from the storage devices where each block in the stripe is located.

14. The apparatus according to claim 13, wherein selecting the next storage device Comprises: For a first set of storage devices in the intersection that do not include any block in the stripe, determine the stripe relevance between a given storage device in the first set of storage devices and the stripe; And Based on the determined stripe relevance, select the next storage device from the first set of storage devices.

15. The apparatus according to claim 14, wherein determining the stripe relevance between the given storage device and the stripe Comprises: In the intersection, determine a second set of storage devices that respectively include each block in the stripe; And Based on the relevance between the given storage device and each storage device in the second set of storage devices, determine the stripe relevance between the given storage device and the stripe.

16. The apparatus according to claim 14, wherein based on the determined stripe relevance, selecting the next storage device in the first set of storage devices Comprises: Based on the stripe relevance and the device relevance of the next storage device, select the next storage device.

17. The apparatus according to claim 11, wherein selecting the first storage device from the plurality of storage devices Comprises: Determine the device relevance of the storage devices in the plurality of storage devices, where the device relevance represents the distribution of a set of stripes that have been created in the storage system between the storage device and other storage devices outside the storage device; And Based on the determined device relevance, select the first storage device from the plurality of storage devices.

18. The apparatus according to claim 11, determining a first storage device sequence associated with the first storage device based on a predetermined window size Comprises: Based on the predetermined window size, determine the first storage device sequence such that the first storage device is close to the center of the first storage device sequence.

19. The apparatus according to claim 11, wherein the method further Comprises: In response to receiving another request to create another stripe in the storage system, select a storage device for creating the another stripe from storage devices outside the first storage device sequence among the plurality of storage devices.

20. A computer program product, the computer program product being 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-10.

Citation Information

Patent Citations

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

    CN110413203A

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

    CN110413216A