Method, device and product for selecting input / output array

By acquiring and analyzing the status change information of multiple storage volumes and similarity change information of the storage array, dynamically selecting a storage array suitable for IO, solving the problem of low performance and availability of data replication and backup systems in the prior art when replication link failure is failed, and achieving better performance and high availability.

CN119536622APending Publication Date: 2025-02-28DELL PROD LP
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311121939.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-31
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

Existing data replication and backup systems fail to provide better performance and high availability when replication links between storage arrays fail, resulting in IO service interruptions and performance degradation.

Method used

By acquiring the state of multiple sets of storage volumes of the target storage volumes of multiple storage volumes in the multiple storage arrays, the state change information of the target storage volume and the similarity change information of the storage array are determined, thereby dynamically selecting a storage array suitable for IO.

Benefits of technology

It realizes dynamically determining whether the storage array is suitable for IO at the storage volume level, improving the flexibility and accuracy of the system, thereby providing better performance and high availability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119536622A_ABST
    Figure CN119536622A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a method, apparatus, and product for selecting an input / output (IO) array from a plurality of memory arrays. The method may include obtaining a plurality of groups of storage volume states of a target storage volume in a plurality of storage volumes in a plurality of storage arrays. The method further includes determining a plurality of pieces of state change information of the target storage volume in the plurality of storage arrays based on the plurality of sets of storage volume states. The method may also include determining a plurality of similarities between the plurality of sets of array states of the plurality of memory arrays and similarity change information between the plurality of similarities. The method may include selecting an input / output (IO) array for the IO from the plurality of memory arrays based on the similarity change information and a plurality of state change information corresponding to the plurality of memory arrays. According to the method and the device, the IO array for the IO can be selected based on the information of the volume dimension and the information of the storage array dimension, so that whether the storage array is suitable for the IO or not is dynamically judged at the level of the volume, the method and the device are more flexible and accurate, and better performance and high availability are provided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computer technology, and more particularly to a method, device, and product for selecting an input-output array. Background Art

[0002] In data replication and backup systems, multiple storage arrays are usually set up, and data is stored in these multiple storage arrays to avoid input and output (IO) problems of user devices when some storage arrays fail. Sometimes, there are replication links between these multiple storage arrays for replicating data, so that when data is updated in a storage array, the updated content can be synchronized to all storage arrays.

[0003] In this case, once the replication link between storage arrays fails, only the selected storage array will continue to provide IO services to users, and the unselected storage array will be moved to an offline state. In order to ensure that IO does not go wrong, the system needs to constantly switch the IO array currently providing IO. Therefore, the current data replication and backup system cannot provide good performance and high availability. Summary of the invention

[0004] According to an example embodiment of the present disclosure, a technical solution for selecting an input and output array is provided, which can select an IO array for IO based on the state change information of the storage volume dimension and the similarity change information of the storage array dimension, so as to dynamically determine whether the storage array is suitable for IO at the storage volume level, which is more flexible and accurate, and can therefore provide better performance and high availability.

[0005] In a first aspect of the present disclosure, a method for backup is provided, which may include obtaining multiple groups of storage volume states of a target storage volume among multiple storage volumes in multiple storage arrays. Each group of storage volume states includes multiple storage volume states at different time points. The method also includes determining multiple state change information of the target storage volume in multiple storage arrays based on the multiple groups of storage volume states. The method may also include determining multiple similarities between the multiple groups of array states of the multiple storage arrays and similarity change information between the multiple similarities. The array state of each storage array is based on the set of storage volume states of the multiple storage volumes in each storage array, and then the method may include selecting an IO array for IO from the multiple storage arrays based on the similarity change information and the multiple state change information corresponding to the multiple storage arrays.

[0006] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes: a processor, and a memory coupled to the processor, the memory having instructions stored therein, the instructions causing the electronic device to perform operations when executed by the electronic device, the operations may include obtaining multiple groups of storage volume states of a target storage volume in multiple storage arrays. Each group of storage volume states includes multiple storage volume states at different time points. The operations may also include determining multiple state change information of the target storage volume in multiple storage arrays based on the multiple groups of storage volume states, and determining multiple similarities between the multiple groups of array states of the multiple storage arrays and similarity change information between the multiple similarities. The array state of each storage array is based on a set of storage volume states of the multiple storage volumes in each storage array. The operations may also include selecting an IO array for IO from multiple storage arrays based on the similarity change information and the multiple state change information corresponding to the multiple storage arrays.

[0007] In a third aspect of the present disclosure, there is provided a computer program product, which is tangibly stored on a computer-readable medium and comprises computer-executable instructions which, when executed, cause a computer to perform the method according to the first aspect of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0009] Figure 1 An architectural diagram of a data replication and backup system according to some embodiments of the present disclosure is shown;

[0010] Figure 2 shows a working sequence diagram of a data replication and backup system according to some embodiments of the present disclosure;

[0011] Figure 3 A schematic diagram showing a change in obtaining similarity according to some embodiments of the present disclosure is shown;

[0012] Figure 4 A schematic flow chart showing the operation of a system according to some embodiments of the present disclosure is shown;

[0013] Figure 5 Another schematic flow chart showing the operation of the system according to some embodiments of the present disclosure;

[0014] Fig. 6A and Figure 6B A schematic diagram showing simulation results according to some embodiments of the present disclosure is shown;

[0015] Figure 7 A flow chart showing selection of an IO array according to some embodiments of the present disclosure is shown; and

[0016] Figure 8 A schematic structural diagram of a device that can be used to implement an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0018] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0019] When switching, current data replication and backup systems usually need to select the IO array currently serving the user based on predefined switching logic, and the change of switching logic can only be manually operated by the user. In addition, the switching logic can only be set on all storage volumes of a storage array to serve IO through user preconfiguration or static system configuration. If any failure occurs, this means that the current data replication and backup system performance indicators or failure severity levels will not be taken into account, so the current data replication and backup system cannot provide better performance and high availability.

[0020] The present disclosure proposes a method, device and product for selecting an IO array from multiple storage arrays. The method includes obtaining multiple groups of storage volume states of a target storage volume in multiple storage arrays. Each group of storage volume states includes multiple storage volume states at different time points. The method also includes determining multiple state change information of the target storage volume in multiple storage arrays based on the multiple groups of storage volume states. The method also includes determining multiple similarities between multiple groups of array states of multiple storage arrays and similarity change information between multiple similarities. The array state of each storage array is based on the storage volume state set of multiple storage volumes in each storage array, and based on the similarity change information and multiple state change information corresponding to the multiple storage arrays, an IO array for IO is selected from multiple storage arrays. According to the scheme of the embodiment of the present disclosure, the IO array for IO can be selected based on the state change information of the storage volume dimension and the similarity change information of the storage array dimension, so as to dynamically judge whether the storage array is suitable for IO at the storage volume level, which is more flexible and accurate, and thus can provide better performance and high availability.

[0021] Reference below Figure 1 The method proposed in the present disclosure is described. Figure 11 shows a data replication and backup system 100 that can implement the method provided by the present disclosure. The data replication and backup system 100 includes a user device 102, an arbitrator 104, a master IO array 106, a slave IO array 108, and a database 110. The user device 102 can be linked to the master IO array 106 and the slave IO array 108 through the arbitrator 104, and a replication link 112 for replicating data can exist between the master IO array 106 and the slave IO array 108. In some embodiments, the system 100 can be in the form of a dual-active storage array, the master IO array 106 can be a local storage array, and the slave IO array 108 can be a remote storage array, and both storage arrays can serve IO. In the master IO array 106 and the slave IO array 108, there are storage volumes 1061-106n and 1081-108n, respectively, wherein each pair of storage volumes with the same tail number is used to store the same data, therefore, the storage volumes with the same tail number can be considered as the entities of the storage volumes with the tail number (also called the number) in different storage arrays, and are used to store the content associated with each number / tail number. For example, storage volume 1061 and storage volume 1081 can be used to store the same data, and storage volume 1061 and storage volume 1081 can be considered as the entities of the storage volume numbered 1 in the master IO array 106 and the slave IO array 108, respectively, and are used to store the content associated with the numbered 1. The arbitrator 104 is used to select a storage volume of each number / tail number from the storage volumes 1061-106n and 1081-108n that provides IO for the user device 102 (the storage volume that provides IO may also be called a bias) to provide data associated with each number / tail number (for example, a storage volume for providing data associated with number 1 is selected from storage volumes 1061 and 1081, and a storage volume for providing data associated with number 2 is selected from storage volumes 1062 and 1082, etc.).

[0022] In order to select a target IO array for IO from the master IO array 106 and the slave IO array 108, the arbitrator 104 may obtain information for selecting the target IO array from the database 110, such as information on changes in similarity between array states of storage arrays within a time window described below (also referred to as similarity change information), etc.

[0023] The user device 102 may be a desktop computer, a laptop computer, a tablet computer, a smart phone, a wearable device, or any other device. Figure 1 Only two storage arrays 106 and 108 are shown in the figure, but in other embodiments, the data replication and backup system 100 may include more than two storage arrays, for example, three, four, etc., multiple storage arrays. Figure 1The two storage arrays 106 and 108 are shown for the convenience of the following description and understanding, and the number of storage arrays should not be regarded as a limitation of the present disclosure. Figure 1 The arbitrator 104 is shown as an independent module connected between the user device 102 and the storage arrays 106 and 108, but this is not a limitation of the present disclosure. For example, the arbitrator 104 can be integrated into the user device 102, or integrated into the storage array, etc.

[0024] For ease of understanding, combined Figure 1 and timing Figure 2 202 and 204. The description of selecting the target IO array is given in the order of actions in 204. When the data replication and backup system 100 is working (for example, after initialization), the arbitrator 104 can collect 202 (for example, regularly collect) the storage volume status of the storage volumes 1061-106n in the primary IO array 106 over time and collect 204 the storage volume status of the storage volumes 1081-108n in the slave IO array 108. It can be understood that the order between actions 202 and 204 is not limited. The storage volume status only needs to be able to represent the operating status of the storage volume. For example, in some embodiments, the storage volume status may include the processing resource utilization rate, capacity utilization rate, network port utilization rate, object storage number (object scale number), system-related alarms and volume-related alarms, the number of input / output operations per second (IOPS) of the storage volume, storage volume bandwidth, storage volume latency and / or storage volume queue depth (volume queue depth) of the corresponding volume in the storage array.

[0025] During the collection process, the arbitrator 104 may determine whether enough samples have been collected in the window. Exemplarily, the arbitrator 104 may determine whether the number of storage volume states currently collected for each storage volume has met a preset number condition. In some embodiments, the preset number condition may refer to the number of storage volume states collected having reached a preset number threshold. If it has been met, the arbitrator 104 may arrange 206 all samples collected for each storage array at each time point in the window (i.e., samples of all storage volumes in the storage array at each time point, which may also be referred to as a storage volume state set) in the order of collection time as a total state sequence of all storage volumes in each storage array (which may also be referred to as an array state of each storage array). At the same time, the arbitrator 104 may also arrange the samples collected by each storage volume in each storage array in the window (which may also be referred to as a group of storage volume states or a storage volume state group) in the order of collection time as a single volume state sequence of each storage volume in each storage array for evaluating the separate running state of each storage volume in each storage array. Alternatively, the arbitrator 104 may subsequently filter out samples collected from each storage volume in each storage array within a window to evaluate the individual operating status of each storage volume in each storage array.

[0026] For example, in some embodiments, when the number of storage volume states of storage volumes 1061-106n and 1081-108n within the window has satisfied a preset number condition, all storage volume states (i.e., storage volume state sets) of storage volumes 1061-106n at each time point may be arranged in chronological order into an overall state sequence of the master IO array 106, and all storage volume states (i.e., storage volume state sets) of storage volumes 1081-108n at each time point may be arranged in chronological order into an overall state sequence of the slave IO array 108. These overall state sequences may be used to characterize the overall operation of the storage array. At the same time, the arbitrator 104 may also arrange the samples collected in the window of each storage volume in the main IO array 106 of the storage volumes 1061-106n in the order of collection time into a single volume state sequence of each storage volume in the main IO array 106, and arrange the samples collected in the window of each storage volume in the slave IO array 108 of the storage volumes 1081-108n in the order of collection time into a single volume state sequence of each storage volume in the slave IO array 108, so as to evaluate the separate running state of each storage volume in each storage array. Alternatively, the arbitrator 104 may also perform the operation of obtaining the single volume state sequence later. In some embodiments, the obtained sequence may refer to the state vector obtained by arranging the storage volume state (or set) after vectorization processing.

[0027] Subsequently, the arbitrator 104 may calculate 208 the change in similarity between the volume state sets in the overall state sequence of the master IO array 106 and the overall state sequence of the slave IO array 108 at different time points, so as to evaluate the operation of the master IO array 106 and the slave IO array 108. In some embodiments, the overall state sequence of the master IO array 106 and the storage volume state sets in the overall state sequence of the slave IO array 108 may be grouped by time points, and then the storage volume state set pairs at N time points may be selected therefrom, and similarity calculation may be performed, so as to determine the change in similarity based on the calculated similarity. For example, in some embodiments, the arbitrator 104 may select the volume state set pairs at the beginning and the end time points from the overall state sequence of the master IO array 106 and the overall state sequence of the slave IO array 108, calculate the similarity between the volume state set pairs at the beginning time point, and the similarity between the volume state set pairs at the end time point, and use the magnitude relationship between the two similarities as the change in similarity.

[0028] For ease of understanding, refer to Figure 3 This is explained by way of example. Assuming that the overall status sequence 302 of the master IO array 106 and the overall status sequence 304 of the slave IO array 108 between 14:00 and 14:02 are obtained, then the volume status set 3021 of the storage volumes 1061-106n at 14:00 and the volume status set 3041 of the 1081-108n in the overall status sequence 304 can be selected from the overall status sequence 302, and the volume status set 3022 of the storage volumes 1061-106n at 14:05 and the volume status set 3042 of the 1081-108n in the overall status sequence 304 can be selected. Then, the arbitrator 104 calculates the similarity 306 between the volume status set 3021 and the volume status set 3041, and the similarity 308 between the volume status set 3022 and the volume status set 3042, and finally the magnitude relationship 310 between the similarity 306 and the similarity 308 is used as the change of the similarity. In some embodiments, the similarity between volume status sets can be obtained based on the distance between storage volumes with tail numbers paired. In this case, the similarity at each time point can be calculated based on formula (1):

[0029]

[0030] where x i It may refer to the storage volume status of the i-th storage volume in the storage volume status set of the primary IO array 106 at the corresponding time point, y iIt may refer to the storage volume status of the i-th storage volume in the storage volume status set of the IO array 108 at the corresponding time point, n is the number of storage volumes in the storage array, and d(x, y) may refer to the similarity of the storage volume status set at the corresponding time point. For example, in some embodiments, when the time point is 14:00, x i It may refer to the storage volume status of the i-th storage volume in the volume status set of the primary IO array 106 at 14:00, y i It may refer to the storage volume state of the i-th storage volume in the storage volume state set of the IO array 108 at 14:00, and d(x, y) may refer to the similarity of the storage volume state set at 14:00. It should be noted that, although the above description is given by taking the selection of storage volume state set pairs at N time points as an example, it is also possible to determine the change of similarity based on the storage volume state set pairs at all time points without selection.

[0031] In addition, the arbitrator 104 may also determine 210 the individual operating status of each storage volume in the primary IO array 106 and the secondary IO array 108 to help select a suitable target IO array. In some embodiments, the individual operating status may include a change trend and a distribution deviation of the storage volume status of the storage volume within the window, wherein the distribution deviation may indicate a degree of deviation of the storage volume status of the storage volume. The degree of deviation may indicate a dramatic change in the storage volume during the window, and the change trend may indicate whether the storage volume status of the storage volume is stable.

[0032] In some embodiments, for each storage array, the distribution deviation of the storage volume status of each storage volume may be determined based on formula (2) and the storage volume status of each storage volume at each time point:

[0033]

[0034] Where D M (x, y) may refer to a distribution deviation, x and y may refer to storage volume states in a storage volume state group of each storage volume, or y may refer to a mean of the storage volume states in the storage volume state group, ∑ -1 It may refer to the covariance matrix of the group of storage volume states. For example, in some embodiments, all storage volume states in the storage volume state group corresponding to the 14:00 to 14:05 window of each storage volume in the storage volumes 1061-106n and 1081-108n may be processed based on formula (2) to obtain the distribution deviation of the storage volume state of each storage volume in the storage volumes 1061-106n and 1081-108n.

[0035] In some embodiments, the change trend of each storage volume can be determined based on the storage volume status at the first and last time points of each storage volume in the window. For example, in some embodiments, the storage volume status at the first and last time points can be processed respectively by formula (3), and then the change trend can be determined based on the comparison results between the processed data:

[0036] a·b=(a T )*b Formula (3)

[0037] Wherein a and b are both storage volume states at corresponding time points. For example, in some embodiments, the arbitrator 104 may use the storage volume state of each storage volume in the storage volumes 1061-106n and 1081-108n in the primary IO array 106 at 14:00 as a and b, and use formula (3) to calculate and process to obtain data 1 of each storage volume, use the storage volume state at 14:05 as a and b, and use formula (3) to calculate and process to obtain data 2 of each storage volume, use the storage volume state of each storage volume in the storage volumes 1061-106n and 1081-108n in the secondary IO array 108 at 14:00 as a and b, and use formula (3) to calculate and process to obtain data 3 of each storage volume, and use the storage volume state at 14:05 as a and b, and use formula (3) to calculate and process to obtain data 4 of each storage volume. Then, the arbitrator 104 may compare the difference between data 2 (e.g., data obtained by processing the storage volume status of storage volume 1061 in the primary IO array 106 at 14:05) and data 1 (e.g., data obtained by processing the storage volume status of storage volume 1061 in the primary IO array 106 at 14:00) of each numbered storage volume (e.g., storage volume 1), so as to determine the change trend of the storage volume status of each numbered storage volume in the primary IO array 106 during the window. The arbitrator 104 may also compare the difference between data 4 (e.g., data obtained by processing the storage volume status of storage volume 1081 in the secondary IO array 108 at 14:05) and data 3 (e.g., data obtained by processing the storage volume status of storage volume 1081 in the secondary IO array 108 at 14:00) of each numbered storage volume (e.g., storage volume 1), so as to determine the change trend of the storage volume status of each numbered storage volume in the secondary IO array 108 during the window. The change trend may indicate the operation stability of the storage volume in the storage array, thereby providing a basis for selecting a target IO array. After obtaining the similarity change information, distribution deviation, and change trend in the window, the arbitrator 104 may associate the similarity change information with the window time and store 212 it in the database 110 .

[0038] refer to Figure 4 , Figure 4An exemplary flow chart of the above process is shown in . At box 402, the system 100 is initialized. The process then proceeds to box 404. At box 404, the arbitrator 104 can collect storage volume status of the storage volume over time, and determine at box 406 whether sufficient storage volume status has been collected. If so, the process proceeds to box 408, at which the arbitrator 104 calculates similarity change information, distribution deviation and change trend in the window based on the collected storage volume status, and stores these calculated metrics in the database 110 at box 410. On the contrary, if sufficient storage volume status has not been collected, the process returns to box 404 and continues to collect until sufficient storage volume status has been collected.

[0039] In some embodiments, when a failure occurs in the system 100 (e.g., when the replication link 112 between the primary IO array 106 and the secondary IO array 108 is interrupted), the arbitrator 104 may send 214 a request to the database 110 based on the time of occurrence of the failure, and the database 110 sends 216 the similarity change information, distribution deviation, and change trend of the association time closest to the time of occurrence of the failure to the arbitrator 104, and the arbitrator 104 may judge the operation health of the primary IO array 106 and the secondary IO array 108 based on these metrics to select a suitable target IO array for each numbered storage volume. In some embodiments, the arbitrator 104 may also first determine a target IO array for IO based on manual settings when a failure occurs, and then dynamically switch the target IO array based on these metrics during the interruption to avoid low performance and low availability caused by manually setting the target IO array.

[0040] In some embodiments, these metrics can be mapped to a predetermined state transition table to select a target IO array for each numbered storage volume. The state transition table includes a mapping relationship between various metrics and the selected target IO array. Referring to Table 1, an example of a state transition table is provided in Table 1.

[0041] Table 1 State transition table

[0042]

[0043]

[0044] In some embodiments, s_dev is the similarity at the start time point, e_dev is the similarity at the end time point, a1_dis is the distribution deviation of the main IO array 106, a2_dis is the distribution deviation of the slave IO array 108, s_a1 is the data obtained after processing the storage volume status of the main IO array 106 based on formula (3) at the start time point, e_a1 is the data obtained after processing the storage volume status of the main IO array 106 based on formula (3) at the end time point, s_a2 is the data obtained after processing the storage volume status of the slave IO array 108 based on formula (3) at the start time point, and e_a2 is the data obtained after processing the storage volume status of the slave IO array 108 based on formula (3) at the end time point.

[0045] After these metrics are mapped to the state transition table to determine the corresponding state, the storage array indicated by the state can be used as the target IO array for each numbered storage volume. For example, in some embodiments, for the storage volume numbered 1, if the state determined after mapping is 14 in Table 1, the main IO array 106 is used as the target IO array, that is, the storage volume 1061 is used as the storage volume currently used for IO data associated with number 1. For the storage volume numbered 2, if the state determined after mapping is 16 in Table 1, the slave IO array 108 is used as the IO array, that is, the storage volume 1082 is used as the storage volume currently used for the data corresponding to IO number 2. After such processing, the system 100 can select the target IO array for IO based on the state change information of the target storage volume dimension and the similarity change information of the storage array dimension, so as to determine whether the storage array is suitable for the data corresponding to different IO numbers at the storage volume level, thereby dynamically determining the same or different target IO arrays for each numbered storage volume, which is more flexible and accurate, and can therefore provide better performance and high availability. For example, in some embodiments, the system 100 may respectively set the storage volumes 1061 , 1082 , 1083 , 1064 . . . to provide IOs for the user device 102 based on the metrics.

[0046] refer to Figure 5 , Figure 5, a schematic flow chart of the above process is shown in FIG. At block 502, the arbitrator 104 collects the storage volume state and pre-processes it into a vector sequence at block 504. Then, based on the obtained vector sequence, the arbitrator 104 uses algorithms such as formula (1) to formula (3) at block 506 to calculate the above-mentioned various metrics, and these calculated metrics can be stored in the database 110 for subsequent use. When it is necessary to select a target IO array, at block 508, the arbitrator 104 maps these metrics to a state transition table to determine the state corresponding to each numbered storage volume, and at block 510, the storage array recommended by the state is used as the target IO array of each numbered storage volume, and the storage array not recommended / not recommended by the state is used as the non-IO array of each numbered storage volume. It should be noted that the condition for the process to reach block 508 may not be limited to the failure of the system 100, but may also be the need to balance the load between the primary IO array 106 and the secondary IO array 108, so as to balance the load by selecting a suitable target IO array for each numbered storage volume based on the minimum state distance.

[0047] From the above description, it can be seen that according to the solutions of the various embodiments of the present disclosure, the IO array used for IO can be selected based on the state change information of the storage volume dimension and the similarity change information of the storage array dimension, so as to dynamically judge whether the storage array is suitable for IO at the storage volume level, which is more flexible and accurate, and thus can provide better performance and high availability. It should be understood that the invention summary section is provided to introduce the selection of concepts in a simplified form, which will be further described in the specific implementation methods below. The invention summary section is not intended to identify the key features or main features of the present disclosure, nor is it intended to limit the scope of the present disclosure.

[0048] Take the fault scenario as an example, refer to Fig. 6A and Figure 6B , Fig. 6A and Figure 6B FIG. 1 shows the IOPS and bandwidth of the simulated master IO array 106 and slave IO array 108 when the IO arrays of the target numbered storage volumes are different before and after the selection, wherein the solid line represents the slave IO array 108 and the dotted line represents the master IO array 106. It should be noted that, except Fig. 6A and Figure 6B In addition, the simulation results can be presented through histograms of processing resource usage, line graphs of network port usage, line graphs of latency, line graphs of queue depth, etc. Fig. 6A and Figure 6B This is just for illustration. And in the simulation of load balancing, this method can also achieve the same effect in the simulation as in the failure scenario.

[0049] The simulation interrupts the replication link 112 at the 400th sample point (time point). Assuming that the state transition table indicates that the primary IO array 106 is the IO array of the storage volume with the target number at this time (or the primary IO array 106 can be manually set to be selected when a failure occurs), it can be seen that at the 400th sample point, the primary IO array 106 begins to provide IO for the data associated with the target number, the IOPS and bandwidth of the primary IO array 106 increase, and the secondary IO array 108 no longer provides IO for the data associated with the target number, and the IOPS and bandwidth of the secondary IO array 108 decrease. Assuming that at the 600th sample point, the state transition table indicates that the secondary IO array 108 is the IO array of the storage volume with the target number, it can be seen that the secondary IO array 108 begins to provide IO for the data associated with the target number, the IOPS and bandwidth of the secondary IO array 108 begin to appear, the primary IO array 106 no longer provides IO for the data associated with the target number, and the IOPS and bandwidth of the primary IO array 106 decrease. At the 800th sample point, the simulation restores the replication link 112, thus restoring to the situation before the replication link 112 is interrupted, and the primary IO array 106 and the secondary IO array 108 continue to serve IO as before the interruption occurs. In this simulation, the storage volume size is 100GB, the IO mode is: random, 70% read, IO size 8K, 50 storage volume range. The IO array manually set when the failure occurs is the primary IO array 106. The IO hosts are uniformly connected.

[0050] For ease of understanding, refer to Figure 7 , Figure 7 A schematic flow chart of a method 700 for selecting an IO array from multiple storage arrays is provided. It should be noted that the order of the steps included in method 700 cannot be used as a limitation on method 700. For example, in some embodiments, the order between boxes 702-704 and box 706 can be interchanged. At box 702, multiple groups of storage volume states of target storage volumes among multiple storage volumes in multiple storage arrays are obtained. Each group of storage volume states includes multiple storage volume states at different time points. For example, in some embodiments, the storage volume numbered 1 can be used as the target storage volume, and multiple storage volume states of storage volume 1061 at different time points in the main IO array 106 can be obtained, and multiple storage volume states of storage volume 1081 at different time points in the slave IO array 108 can be obtained. In some embodiments, the steps of box 702 can be performed by the arbitrator 104. In some embodiments, the storage volume status of all storage volumes in the master IO array 106 and the slave IO array 108 at different time points may be first obtained to obtain a set of storage volume status at different time points, and then the storage volume status of each numbered storage volume at different time points may be determined therefrom. Alternatively, the storage volume status of each numbered storage volume at different time points may be obtained separately.

[0051] At block 704, based on the multiple groups of storage volume states, multiple state change information of the target storage volume in the multiple storage arrays is determined. For example, in some embodiments, when the storage volume numbered 1 is used as the target storage volume, the distribution deviation of the storage volume 1061 and the storage volume 1081 and the change trend of the storage volume 1061 and the storage volume 1081 at different time points in the primary IO array 106 and the secondary IO array 108 can be determined based on the above formulas (2) and (3), and the storage volume states of the storage volume 1061 and the storage volume 1081 in the primary IO array 106 and the secondary IO array 108, respectively, and the distribution deviation and the change trend are used as the state change information. In some embodiments, the step of block 704 can be performed by the arbitrator 104.

[0052] At box 706, multiple similarities between multiple groups of array states of multiple storage arrays and similarity change information between the multiple similarities are determined. The array state of each storage array is based on a set of storage volume states of multiple storage volumes in each storage array. For example, in some embodiments, the storage volume state sets of all storage volumes in the master IO array 106 and the slave IO array 108 at different time points described in the description at box 702 can be vectorized and then distributed and arranged in chronological order into the array states of the master IO array 106 and the slave IO array 108. In some embodiments, the storage volume state sets in the array state can be grouped based on time, and then similarity change information is determined based on the similarities between the storage volume state sets in each group of storage volume state sets. For example, in some embodiments, for Figure 1 In the scenario, the storage volume status set at the first and last time points can be obtained by grouping, including the storage volume status of storage volumes 1061-106n and storage volumes 1081-108n at the start time point, and the storage volume status of storage volumes 1061-106n and storage volumes 1081-108n at the end time point. Then, the distance between the storage volumes with the tail numbers paired at the start time point and the distance at the end time point are determined, and the similarity between the storage volume status sets at the start time point and the end time point is determined based on the obtained distance, and finally the size relationship between the similarities is determined as the similarity change information. In some embodiments, the step of box 706 can be performed by the arbitrator 104.

[0053] At box 708, an IO array for IO is selected from multiple storage arrays based on the similarity change information and multiple state change information corresponding to the multiple storage arrays. In some embodiments, the similarity change information, the comparison results between the multiple distribution deviations of the multiple storage arrays, and the change trend of the storage volume in each storage array can be mapped to a state transition table to obtain the IO array indicated by the state transition table in the multiple storage arrays. For example, in some embodiments, these metrics can be mapped to state transition table 1 to obtain the IO array indicated in the last column of Table 1. Assuming that the IO array indicated for the storage volume numbered 1 is the slave IO array 108, the current IO array can be switched from the master IO array 106 to the slave IO array 108, that is, the storage volume 1081 is used as the storage volume of the IO, and the storage volume 1061 is no longer the storage volume of the IO.

[0054] According to the various embodiments of the present disclosure described above and their combined embodiments, better performance and high availability can be provided. Figures 1 to 7 The implementation method shown in the figure is only for reference. Figures 1 to 7 The architecture or process illustrated in the figure may have other different forms, and may also include more or fewer functional modules and / or units. These modules and / or units may be partially or fully implemented as hardware modules, software modules, firmware modules or any combination thereof, and the embodiments of the present disclosure are not limited to this.

[0055] It is to be understood that the specific names and / or protocols of the various components in the system described herein are only to help those skilled in the art to better understand the concept of the present disclosure, and are not intended to limit the scope of the present disclosure in any way. Moreover, in other embodiments, more or better components may be included, and alternative components with the same or similar functions may also be included.

[0056] Figure 8 800 is a schematic structural diagram of an example device 800 that can be used to implement some embodiments of the present disclosure. The device 800 can be implemented as a server or a PC, etc. The embodiments of the present disclosure do not limit the specific implementation type of the device 800. Figure 8 As shown, the device 800 includes a central processing unit (CPU) 801, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 802 or computer program instructions loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the device 800 can also be stored. The CPU 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0057] A number of components in the device 800 are connected to the I / O interface 805, including: an input unit 806, such as a keyboard, a mouse, etc.; an output unit 807, such as various types of displays, speakers, etc.; a storage unit 808, such as a disk, an optical disk, etc.; and a communication unit 809, such as a network card, an update modem, a wireless communication transceiver, etc. The communication unit 809 allows the device 800 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0058] The processing unit 801 can execute the various methods and / or processes described above, for example Figure 7 For example, in some embodiments, the method may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 800 via the ROM 802 and / or the communication unit 809. When the computer program is loaded into the RAM 803 and executed by the CPU 801, one or more steps of the method described above may be performed. Alternatively, in other embodiments, the CPU 801 may be configured to perform the method in any other suitable manner (e.g., by means of firmware, etc.).

[0059] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chip systems (SOCs), load programmable logic devices (CPLDs), and the like.

[0060] In some embodiments, the methods and processes described above may be implemented as a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.

[0061] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine as a stand-alone software package and partially on a remote machine, or entirely on a remote machine or server.

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

[0063] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, and conventional procedural programming languages. The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a separate software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server.

[0064] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer or other programmable data processing device, thereby producing a machine so that when these instructions are executed by the processing unit of a computer or other programmable data processing device, a device for realizing the functions / actions specified in one or more boxes in the flow chart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions make the computer, programmable data processing device and / or other equipment work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for realizing various aspects of the functions / actions specified in one or more boxes in the flow chart and / or block diagram. Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device, so that a series of operating steps are performed on the computer, other programmable data processing device or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable data processing device, or other device realize the functions / actions specified in one or more boxes in the flow chart and / or block diagram.

[0065] In the information disclosed herein, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, 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), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0066] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the equipment, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each frame in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the frame can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous frames can actually be executed substantially in parallel, and they can also be executed in the opposite order sometimes, depending on the functions involved. It should also be noted that each frame in the block diagram and / or flow chart, and the combination of frames in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0067] In addition, although each operation is described in a specific order, this should be understood as requiring such operation to be performed in the specific order shown or in a sequential order, or requiring that all illustrated operations should be performed to obtain desired results. Under certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although some specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Some features described in the information of a separate embodiment can also be implemented in a single implementation in combination. On the contrary, the various features described in the information of a single implementation can also be implemented in multiple implementations individually or in any suitable sub-combination mode.

[0068] Although the subject matter has been described in language specific to structural features and / or methodological logical actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms of implementing the claims.

[0069] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The choice of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for selecting an input-output (IO) array from a plurality of storage arrays, comprising: Acquire multiple groups of storage volume states of a target storage volume among multiple storage volumes in the multiple storage arrays, wherein each group of storage volume states includes multiple storage volume states at different time points; Based on the multiple groups of storage volume states, determining multiple state change information of the target storage volume in the multiple storage arrays; Determining a plurality of similarities between a plurality of groups of array states of the plurality of storage arrays and similarity change information between the plurality of similarities, wherein the array state of each storage array is based on a set of storage volume states of the plurality of storage volumes in each storage array; as well as The IO array for IO is selected from the multiple storage arrays based on the similarity change information and multiple pieces of state change information corresponding to the multiple storage arrays.

2. The method according to claim 1, wherein each state change information includes a distribution deviation and a change trend, and determining the plurality of state change information of the target storage volume in the plurality of storage arrays comprises: For each storage array of the plurality of storage arrays, based on the storage volume status of each corresponding group of volume statuses at each time point, determining a distribution deviation of the target storage volume in each storage array, wherein the distribution deviation indicates a deviation degree of the storage volume status of the storage volume in each storage array; Determine the storage volume status of the target storage volume in each storage array at the first and last time points; as well as Based on the difference between the storage volume states at the first and last time points, a change trend of the target storage volume in each storage array is determined.

3. The method of claim 2, wherein selecting the IO array from the plurality of storage arrays comprises: The similarity change information, the comparison results between the multiple distribution deviations of the multiple storage arrays, and the change trend of the target storage volume in each storage array are mapped to a state transition table to obtain the IO array indicated by the state transition table in the multiple storage arrays.

4. The method according to claim 1, further comprising: Collecting storage volume status sets of the plurality of storage volumes in the plurality of storage arrays over time; as well as In response to the number of storage volume status sets collected for each storage array of the multiple storage arrays satisfying a preset number condition, the storage volume status sets collected for each storage array are arranged as array states of each storage array according to time points.

5. The method according to claim 4, wherein determining the plurality of similarities between the plurality of groups of array states of the plurality of storage arrays and the similarity change information between the plurality of similarities comprises: Grouping storage volume status sets of the multiple storage arrays at the same time point; Determine the similarity between the storage volume status sets in each group of storage volume status sets; as well as The magnitude relationship between multiple similarities of multiple groups of storage volume status sets is determined as the similarity change information.

6. The method according to claim 1, further comprising: storing the similarity change information and the plurality of state change information in a database based on the determination time of the similarity change information and the plurality of state change information; as well as In response to a failure of a system to which the plurality of storage arrays belong, similarity change information and state change information for selecting the IO array are retrieved from the database based on the time of occurrence of the failure. 7 . The method of claim 6 , wherein the failure comprises an interruption of a link between the plurality of storage arrays for replicating data.

8. The method according to claim 1, wherein the storage volume status in the storage array includes processing resource utilization, capacity utilization, network port utilization, object storage number, system-related alarms and storage volume-related alarms, input / output operations per second (IOPS) of the storage volume, storage volume bandwidth, storage volume latency and / or storage volume queue depth of the corresponding storage volume in the storage array.

9. The method according to claim 1, further comprising: For other storage volumes among the multiple storage volumes except the target storage volume, corresponding IO arrays are respectively selected from the multiple storage arrays.

10. An electronic device comprising: processor; as well as A memory coupled to the processor, the memory having instructions stored therein, the instructions causing the electronic device to perform operations when executed by the processor, the operations comprising: Acquire multiple groups of storage volume states of a target storage volume among the multiple storage volumes in multiple storage arrays, wherein each group of storage volume states includes multiple storage volume states at different time points; Based on the multiple groups of storage volume states, determining multiple state change information of the target storage volume in the multiple storage arrays; Determining a plurality of similarities between a plurality of groups of array states of the plurality of storage arrays and similarity change information between the plurality of similarities, wherein the array state of each storage array is based on a set of storage volume states of the plurality of storage volumes in each storage array; and Based on the similarity change information and a plurality of state change information corresponding to the plurality of storage arrays, an IO array for input and output (IO) is selected from the plurality of storage arrays.

11. The electronic device according to claim 10, wherein each state change information comprises a distribution deviation and a change trend, and determining the plurality of state change information of the target storage volume in the plurality of storage arrays comprises: For each storage array of the plurality of storage arrays, based on the storage volume status of each corresponding group of volume statuses at each time point, determining a distribution deviation of the target storage volume in each storage array, wherein the distribution deviation indicates a deviation degree of the storage volume status of the storage volume in each storage array; Determine the storage volume status of the target storage volume in each storage array at the first and last time points; as well as Based on the difference between the storage volume states at the first and last time points, a change trend of the target storage volume in each storage array is determined.

12. The electronic device of claim 11, wherein selecting the IO array from the plurality of storage arrays comprises: The similarity change information, the comparison results between the multiple distribution deviations of the multiple storage arrays, and the change trend of the target storage volume in each storage array are mapped to a state transition table to obtain the IO array indicated by the state transition table in the multiple storage arrays.

13. The electronic device of claim 10, the operations further comprising: Collecting storage volume status sets of the plurality of storage volumes in the plurality of storage arrays over time; as well as In response to the number of storage volume status sets collected for each storage array of the multiple storage arrays satisfying a preset number condition, the storage volume status sets collected for each storage array are arranged as array states of each storage array according to time points.

14. The electronic device according to claim 13, wherein determining the plurality of similarities between the plurality of groups of array states of the plurality of storage arrays and the similarity change information between the plurality of similarities comprises: Grouping storage volume status sets of the multiple storage arrays at the same time point; Determine the similarity between the storage volume status sets in each group of storage volume status sets; as well as The magnitude relationship between multiple similarities of multiple groups of storage volume status sets is determined as the similarity change information.

15. The electronic device of claim 10, the operations further comprising: storing the similarity change information and the plurality of state change information in a database based on the determination time of the similarity change information and the plurality of state change information; as well as In response to a failure of a system to which the plurality of storage arrays belong, similarity change information and state change information for selecting the IO array are retrieved from the database based on the time of occurrence of the failure. 16 . The electronic device of claim 15 , wherein the failure comprises a disruption of a link between the plurality of storage arrays for replicating data.

17. An electronic device according to claim 10, wherein the storage volume status in the storage array includes processing resource utilization, capacity utilization, network port utilization, object storage number, system-related alarms and storage volume-related alarms, input / output operations per second (IOPS) of the storage volume, storage volume bandwidth, storage volume latency and / or storage volume queue depth of the corresponding storage volume in the storage array.

18. The electronic device of claim 10, the operations further comprising: For other storage volumes among the multiple storage volumes except the target storage volume, corresponding IO arrays are respectively selected from the multiple storage arrays.

19. A computer program product tangibly stored on a computer readable storage medium and comprising computer executable instructions which, when executed, cause a computer to: Acquire multiple groups of storage volume states of a target storage volume among the multiple storage volumes in multiple storage arrays, wherein each group of storage volume states includes multiple storage volume states at different time points; Based on the multiple groups of storage volume states, determining multiple state change information of the target storage volume in the multiple storage arrays; Determining a plurality of similarities between a plurality of groups of array states of the plurality of storage arrays and similarity change information between the plurality of similarities, wherein the array state of each storage array is based on a set of storage volume states of the plurality of storage volumes in each storage array; as well as Based on the similarity change information and a plurality of state change information corresponding to the plurality of storage arrays, an IO array for input and output (IO) is selected from the plurality of storage arrays.

20. The computer program product according to claim 19, wherein each state change information comprises a distribution deviation and a change trend, and determining the plurality of state change information of the target storage volume in the plurality of storage arrays comprises: For each storage array of the plurality of storage arrays, based on the storage volume status of each corresponding group of volume statuses at each time point, determining a distribution deviation of the target storage volume in each storage array, wherein the distribution deviation indicates a deviation degree of the storage volume status of the storage volume in each storage array; Determine the storage volume status of the target storage volume in each storage array at the first and last time points; as well as Based on the difference between the storage volume states at the first and last time points, a change trend of the target storage volume in each storage array is determined.

Citation Information

Cited By

  • Configurable Realms To Support Multi-Tenancy For Storage Resources

    US20260006028A1