Distributed data reconstruction method using SSD controller computing resources in SSA
By utilizing the computing power of embedded SSD controllers in the SSA storage system, the data reconstruction task is diverted in a distributed manner, and the problem of long data reconstruction time in the SSA storage system is solved, and accelerated data reconstruction and efficient guarantees are achieved.
Patent Information
- Application Number
- CN202210316580.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-29
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2042-03-29
AI Technical Summary
In SSA storage systems, when some SSDs fail, the data reconstruction process requires a large amount of computing and IO resources, resulting in a long data reconstruction time for the failed disk, which affects the efficiency of the system, especially when the system is under heavy load.
By leveraging the computing power of an embedded SSD controller in SSA, the data reconstruction task is diverted to the SSD controller in a distributed manner, and the data reconstruction process is accelerated, and based on the application load and SSD controller computing resource management model, the division of labor and collaboration between the data reconstruction task and IO load task between the SSA RAID controller and the SSD controller is controlled.
It realizes the acceleration of data reconstruction process, reduces data reconstruction time, ensures the efficiency of the system, and effectively manages data reconstruction tasks under heavy load conditions to avoid IO blockage.
Smart Images

Figure CN114675951B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of redundant array of flash solid state disks. The present invention utilizes the computing power of an embedded SSD controller in an SSA to distribute data reconstruction tasks to the SSD controller in a distributed manner, thereby accelerating the data reconstruction process and ensuring the high efficiency of the system. The present invention controls the division of labor and collaboration between the SSA RAID controller and the SSD controller for data reconstruction tasks and IO load tasks based on an application load and an SSD controller computing resource management model. Background Art
[0002] The statements in this section merely provide background art related to the present invention and do not necessarily constitute prior art.
[0003] Big data application environments represented by cloud computing and high-performance computing centers have become an important driving force for innovation in the new generation of information technology. These big data applications all require highly reliable, large-capacity, and high-performance storage systems. In order to meet the growing low-latency and high-throughput storage requirements of various big data applications (such as virtualization, data analysis, and graph computing), Flash-based SSD RAID Arrays (SSA) are increasingly being used in enterprise-level storage environments such as data centers. It is estimated that the SSA market will grow from US$2.7 billion in 2015 to US$9.67 billion in 2020, accounting for about 50% of the entire storage array market.
[0004] SSA contains multiple solid-state drives (SSDs) and uses data block technology to store data crosswise in multiple SSDs, allowing multiple drives to operate in parallel. The SSA RAID controller is responsible for the allocation of data and tasks in the SSD group. In the SSD, the embedded SSD controller is mainly responsible for the allocation and management of flash storage units. Compared with HDD redundant arrays, SSA has the advantages of high IO performance, high storage capacity, low energy consumption, low cooling and low rack space costs. However, SSA also brings new challenges with different characteristics from HDD redundant arrays.
[0005] When some SSDs in SSA fail and are damaged, the data in the failed disk needs to be restored and rebuilt. The data reconstruction process of SSA consumes a lot of computing and IO resources. Therefore, the data reconstruction of the failed disk not only takes a lot of reconstruction time, but also affects the performance of other normal IO requests, reducing the efficiency of the system. Although when the SSA storage system is in an idle or light IO load state, the distributed RAID technology proposed by IBM and others can greatly shorten its data reconstruction time. However, when the system is under heavy load, the RAID controller is completely occupied by IO tasks and cannot effectively handle other tasks. Data reconstruction still takes a long time (for example, it takes more than 10 hours to restore a 4TB failed disk), thus affecting the efficiency of the system.
[0006] Optimization research for SSA storage systems is a new research direction in recent years. The data reconstruction mechanism is crucial to ensuring the reliability and efficiency of SSA. In order to optimize data reconstruction in SSA systems, HPE, Huawei, IBM and other companies have proposed the concept of flash virtual pool from a system perspective, reducing data reconstruction time by improving IO parallelism during data reconstruction. Professor David HCDu's team proposed an adaptive predictive data block cache mechanism to accelerate data reconstruction by reducing the read amplification of data blocks. Professor Yong Xu's team completes data migration in advance by predicting the SSD failure model, thereby ensuring system performance. These optimization solutions can effectively accelerate the data reconstruction process when the SSA system is under a light load. However, when the system is under heavy load, data reconstruction still takes a long time. Summary of the invention
[0007] In order to address the deficiencies in the prior art, the present invention provides a distributed data reconstruction method using the computing resources of an SSD controller in an SSA. The computing power of an embedded SSD controller in the SSA is utilized to offload data reconstruction tasks to the SSD controller in a distributed manner, thereby accelerating the data reconstruction process and ensuring the efficiency of the system. Based on an application load and an SSD controller computing resource management model, the present invention controls the division of labor and collaboration between the SSA RAID controller and the SSD controller for data reconstruction tasks and IO load tasks.
[0008] In order to achieve the above object, the present invention adopts the following technical solution:
[0009] A first aspect of the present invention provides a distributed data reconstruction method using SSD controller computing resources in an SSA.
[0010] A distributed data reconstruction method using SSD controller computing resources in SSA includes the following processes:
[0011] The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain solid-state drive. These subtasks are scheduled by the RAID controller and executed in different SSD controllers.
[0012] When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the subtask scheduling strategy is determined according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask.
[0013] The subtask scheduling strategy described in the present invention needs to ensure that the data reconstruction task does not reduce the execution efficiency of the system's original normal IO tasks; since the data reconstruction subtask is assigned to each SSD controller for execution, the longer the IO scheduling queue, the heavier the workload of the system operation can be considered, and the data reconstruction subtask should be reduced at this time to avoid IO blocking; in addition, according to the characteristics of the data reconstruction subtask, the SSD controller that is idle or has a smaller IO load at this time can be selected to complete the data reconstruction subtask.
[0014] As an optional specific implementation method, based on the SSA fault model of the SSD program / erase cycle, the SSD that is about to fail is obtained, and the data stored in the SSD that is about to fail is combined with the data reconstruction task in advance to perform data transfer.
[0015] As an optional specific implementation method, the data reconstruction task is completed in parallel, including:
[0016] Data blocks A1, A2, A3 and Ap form a data stripe. When the first SSD storing data block A1 fails, the SSD controller cooperates with the second SSD, the third SSD and the fourth SSD to transmit data blocks A2, A3 and Ap in parallel to the fifth SSD in a parallel manner, and then the controller of the fifth SSD is used to complete the recovery of data block A1.
[0017] Among them, Ap is the parity information of A1, A2 and A3, the complete data A is divided into A1, A2 and A3, Ap is used for data reconstruction, and Ap, A1, A2 and A3 are stored on different SSDs.
[0018] As an optional specific implementation method, the data reconstruction task is completed in a serial manner, including:
[0019] In the serial mode, the parity calculation is performed independently in each SSD using a controller, and the result is then transferred to the next SSD.
[0020] As an optional specific implementation method, the data reconstruction task is scheduled to an SSD that is idle or has a load less than a preset value.
[0021] As an optional specific implementation method, the data reconstruction task is mapped to different SSDs in the system through a bipartite graph.
[0022] As an optional specific implementation method, in the bipartite graph, each edge represents a scheduling scheme for allocating data reconstruction tasks to a certain SSD, and the weight of the edge represents the computational consumption of this scheduling scheme.
[0023] As an optional specific implementation method, when performing a data reconstruction task, data is read from multiple SSDs with different and dynamically changing workloads.
[0024] A second aspect of the present invention provides a distributed data reconstruction system in an SSA using computing resources of an SSD controller.
[0025] A distributed data reconstruction system using SSD controller computing resources in SSA, comprising at least: an SSD controller and a RAID controller:
[0026] The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain SSD. These subtasks are scheduled by the RAID controller and executed in different SSD controllers.
[0027] When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the RAID controller determines the subtask scheduling strategy according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask.
[0028] As an optional specific implementation method, based on the SSA fault model of the SSD program / erase cycle, the SSD that is about to fail is obtained, and the data stored in the SSD that is about to fail is combined with the data reconstruction task in advance to perform data transfer.
[0029] Compared with the prior art, the present invention has the following beneficial effects:
[0030] 1. The distributed data reconstruction method using the computing resources of the SSD controller in the SSA described in the present invention utilizes the computing power of the embedded SSD controller in the SSA to offload the data reconstruction task to the SSD controller in a distributed manner, thereby accelerating the data reconstruction process and ensuring the efficiency of the system.
[0031] 2. The distributed data reconstruction method using SSD controller computing resources in SSA described in the present invention controls the division of labor and collaboration between the SSA RAID controller and the SSD controller for data reconstruction tasks and IO load tasks based on the application load and SSD controller computing resource management model, thereby further improving the efficiency of the system.
[0032] 3. The distributed data reconstruction method using SSD controller computing resources in the SSA described in the present invention uses an SSA fault model based on the SSD programming / erase cycle to design an active data reconstruction strategy. In the active data reconstruction strategy, the SSD that is about to fail is actively judged, and its stored data is combined with the data reconstruction task in advance for data transfer, which further improves the security of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] The accompanying drawings in the specification, which constitute a part of the present invention, are used to provide a further understanding of the present invention. The exemplary embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute improper limitations on the present invention.
[0034] Figure 1 This is a schematic diagram of the data reconstruction process of the traditional RAID provided in Example 1 of the present invention.
[0035] Figure 2 A schematic diagram of the data reconstruction process of the improved RAID method provided in Embodiment 1 of the present invention.
[0036] Figure 3 A schematic diagram comparing different strategies for data reconstruction provided in Example 1 of the present invention.
[0037] Figure 4 Schematic diagram of the bipartite graph matching algorithm provided in Example 1 of the present invention. DETAILED DESCRIPTION
[0038] The present invention will be further described below in conjunction with the accompanying drawings and embodiments.
[0039] It should be noted that the following detailed descriptions are all illustrative and intended to provide further explanation of the present invention. Unless otherwise specified, all technical and scientific terms used herein have the same meanings as those commonly understood by those skilled in the art to which the present invention belongs.
[0040] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit exemplary embodiments according to the present invention. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprising" and / or "including" are used in this specification, it indicates the presence of features, steps, operations, devices, components and / or combinations thereof.
[0041] In the absence of conflict, the embodiments of the present invention and the features of the embodiments may be combined with each other.
[0042] Embodiment 1:
[0043] like Figure 1 and Figure 2As shown, Embodiment 1 of the present invention provides a distributed data reconstruction method using SSD controller computing resources in SSA, including the following process:
[0044] The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain solid-state drive. These subtasks are scheduled by the RAID controller and executed in different SSD controllers.
[0045] When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the subtask scheduling strategy is determined according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask.
[0046] Specifically, it includes the following:
[0047] S1: Data reconstruction task scheduling strategy to reduce RAID controller computing consumption
[0048] Offloading the data reconstruction subtasks to the SSD controller can reduce the computational load of the RAID controller. However, these data reconstruction subtasks need to be scheduled intelligently, otherwise, they may cause task blocking and reduce the performance of normal IO.
[0049] A basic problem that needs to be solved in this embodiment is how to complete all data reconstruction tasks within the specified time while minimizing IO overhead. In order to solve this problem, this embodiment designs a specific scheduling strategy to determine the scheduling timing of normal IO tasks and data reconstruction subtasks, and dynamically adjusts the scheduling scheme according to the current IO load and data reconstruction tasks.
[0050] When there are many sequentially executed IO tasks in the IO scheduling queue of the system, since the system can effectively handle sequential tasks, the scheduling plan can be adjusted to allow the system to perform more data reconstruction tasks. When formulating the scheduling plan, the length of the IO scheduling queue and the characteristics of the data reconstruction subtasks are comprehensively considered.
[0051] In this embodiment, an active data reconstruction strategy is designed using an SSA fault model based on the SSD program / erase cycle. In the active data reconstruction strategy, the SSD that is about to fail is actively determined, and its stored data is combined with the data reconstruction task in advance for data transfer.
[0052] S2: Efficient execution mechanism for data reconstruction tasks with reduced communication overhead
[0053] The data reconstruction task is decomposed into a set of subtasks, and each subtask only recovers part of the data in the failed SSD. In order to recover the data, the other data in the stripe where it is located needs to be read out, and the parity algorithm is used to calculate the failed data.
[0054] Assume that data blocks A1, A2, A3, and Ap form a data stripe. When SSD1 storing data block A1 fails, A1 needs to be rebuilt through calculation.
[0055] Different from the traditional reconstruction method, in the solution of this embodiment, a data reconstruction task can be completed in two ways: "parallel" and "serial", such as Figure 3 shown.
[0056] In the "parallel" mode, the RAID controller can cooperate with SSD2, SSD3 and SSD4 to transmit data blocks A2, A3 and Ap in parallel to SSD5, and then use the controller of SSD5 to complete the recovery of data block A1.
[0057] In the "serial" approach, the parity calculation is performed independently in each SSD using the controller, and the result is then transferred to the next SSD.
[0058] Compared with the "serial" method, the "parallel" method does not require scheduling of the SSD controller, and if the SSD5 is idle, the data reconstruction speed is also faster. However, the "parallel" method will also trigger more bursty communication traffic, exceeding the acceptance capacity of the SSD5.
[0059] S3: Data reconstruction task scheduling and allocation mechanism that efficiently utilizes the computing power of the SSD controller
[0060] After offloading the data reconstruction task to the SSD, some SSDs need to perform data reconstruction tasks and normal IO tasks at the same time, resulting in SSD overload. On the other hand, SSA consists of multiple SSDs, and the system will have some idle or lightly loaded SSDs while processing intensive IO tasks.
[0061] Therefore, in this embodiment, it is necessary to schedule the data reconstruction tasks to these idle or lightly loaded (ie, the load is less than a preset value) SSDs, thereby reducing the computational overhead of other SSD controllers.
[0062] In order to better map the data reconstruction tasks to different SSDs in the system, a bipartite graph is constructed, such as Figure 4 As shown in the figure, in this bipartite graph, each edge represents a scheduling scheme for allocating data reconstruction tasks to a certain SSD, and the weight of the edge represents the computational consumption of this scheduling scheme. By integrating communication, IO load and other factors, the optimal scheduling scheme can be obtained at the lowest cost.
[0063] Specifically, in the bipartite graph matching algorithm for data reconstruction task scheduling, the node sets are the data reconstruction task set X = {X1, X2, …, X m} and the SSD controller set Y = {Y1,Y2,…,Y n}, all vertices in the X set have edges to all vertices in the Y set, and the two factors of quantized communication and SSD controller workload are used as the weights of the connections in the bipartite graph {W i,j , i = {1,2,…,m}, j = {1,2,…,n}}, and obtain an optimal match that makes W i,j The sum of the values is maximum.
[0064] Weight W i,j Defined as: W i,j =a*C_Value+b*S_Value. C_Value is the value obtained by taking the inverse of the delay of transmitting the data required for the data reconstruction task to the SSD controller and normalizing it to between 0 and 100. The shorter the required delay, the larger the C_Value. S_Value is the value obtained by multiplying the percentage of the remaining computing resources of the current SSD controller by 100. The more remaining computing resources, the larger the S_Value. a and b are ratios, which are decimals between 0 and 1, and the sum is 1. The values of a and b are adjusted with the current system environment. When the system communication is poor, the ratio of a is relatively reduced; when the system workload is large, the ratio of b is relatively reduced.
[0065] In this embodiment, in order to complete the data reconstruction task, it is necessary to read data from multiple SSDs with different and dynamically changing workloads.
[0066] Embodiment 2:
[0067] Embodiment 2 of the present invention provides a distributed data reconstruction system using SSD controller computing resources in SSA.
[0068] A distributed data reconstruction system using SSD controller computing resources in SSA, comprising at least: an SSD controller and a RAID controller:
[0069] The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain SSD. These subtasks are scheduled by the RAID controller and executed in different SSD controllers.
[0070] When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the RAID controller determines the subtask scheduling strategy according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask.
[0071] The specific working method is the same as the distributed data reconstruction method provided in Example 1, and will not be repeated here.
[0072] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.
Claims
1. A distributed data reconstruction method using SSD controller computing resources in SSA, characterized in that: The process includes: The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain solid-state drive. These subtasks are scheduled by the RAID controller and executed in different SSD controllers. When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the subtask scheduling strategy is determined according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask; Specifically, they include: S1: Data reconstruction task scheduling strategy that reduces the computational consumption of RAID controllers; Based on the SSA fault model of the SSD program / erase cycle, the SSD that is about to fail is obtained, and the data stored in the SSD that is about to fail is combined with the data reconstruction task in advance to perform data transfer; S2: Efficient execution mechanism for data reconstruction tasks with reduced communication overhead; The data reconstruction task is completed in parallel, including: Data blocks A1, A2, A3 and Ap form a data stripe. When the first SSD storing data block A1 fails, the SSD controller cooperates with the second SSD, the third SSD and the fourth SSD to transmit data blocks A2, A3 and Ap in parallel to the fifth SSD in a parallel manner, and then the controller of the fifth SSD is used to complete the recovery of data block A1. The data reconstruction task is completed in a serial manner, including: In the serial mode, the parity calculation is performed independently in each SSD using the controller, and then the result is transferred to the next SSD; S3: Data reconstruction task scheduling and allocation mechanism that efficiently utilizes the computing power of the SSD controller; Map the data reconstruction tasks to different SSDs in the system through a bipartite graph; In the bipartite graph, each edge represents a scheduling scheme for allocating data reconstruction tasks to a certain SSD, and the weight of the edge represents the computational cost of this scheduling scheme; In the bipartite graph matching algorithm for data reconstruction task scheduling, the node sets are the data reconstruction task set X = {X1, X2, …, X m } and the SSD controller set Y = {Y1,Y2,…,Y n }, all vertices in the X set have edges to all vertices in the Y set, and the two factors of quantized communication and SSD controller workload are used as the weights of the connections in the bipartite graph {W i,j , i = {1,2,…,m}, j = {1,2,…,n}}, and obtain an optimal match that makes W i,j The sum of the values is the largest; Weight W i,j Defined as: W i,j =a*C_Value+b*S_Value; wherein, C_Value is the value obtained by taking the inverse of the delay for transmitting the data required for the data reconstruction task to the SSD controller and normalizing it to a value between 0 and 100. The shorter the required delay, the larger the C_Value. S_Value is the value obtained by multiplying 100 by the percentage of the remaining computing resources of the current SSD controller. The more remaining computing resources, the larger the S_Value. a and b are ratios, which are decimals between 0 and 1, and their sum is 1. The values of a and b are adjusted with the current system environment. When the system communication is poor, the ratio of a is relatively reduced; when the system workload is heavy, the ratio of b is relatively reduced.
2. The distributed data reconstruction method using SSD controller computing resources in SSA according to claim 1, characterized in that: Schedule the data reconstruction task to the SSD that is idle or has a load less than the preset value.
3. The distributed data reconstruction method using SSD controller computing resources in SSA according to claim 1, characterized in that: When performing data reconstruction tasks, data is read from multiple SSDs with different and dynamically changing workloads.
4. A distributed data reconstruction system using SSD controller computing resources in SSA, characterized in that: At least: SSD Controller and RAID Controller: The data reconstruction task is decomposed into multiple independent subtasks. Each subtask is used to restore a data block in a certain SSD. These subtasks are scheduled by the RAID controller and executed in different SSD controllers. When there are multiple sequentially executed IO tasks in the IO scheduling queue of the system, the RAID controller determines the subtask scheduling strategy according to the length of the IO scheduling queue and the characteristics of the data reconstruction subtask; Specifically, they include: S1: Data reconstruction task scheduling strategy that reduces the computational consumption of RAID controllers; Based on the SSA fault model of the SSD program / erase cycle, the SSD that is about to fail is obtained, and the data stored in the SSD that is about to fail is combined with the data reconstruction task in advance to perform data transfer; S2: Efficient execution mechanism for data reconstruction tasks with reduced communication overhead; The data reconstruction task is completed in parallel, including: Data blocks A1, A2, A3 and Ap form a data stripe. When the first SSD storing data block A1 fails, the SSD controller cooperates with the second SSD, the third SSD and the fourth SSD to transmit data blocks A2, A3 and Ap in parallel to the fifth SSD in a parallel manner, and then the controller of the fifth SSD is used to complete the recovery of data block A1. The data reconstruction task is completed in a serial manner, including: In the serial mode, the parity calculation is performed independently in each SSD using the controller, and then the result is transferred to the next SSD; S3: Data reconstruction task scheduling and allocation mechanism that efficiently utilizes the computing power of the SSD controller; Map the data reconstruction tasks to different SSDs in the system through a bipartite graph; In the bipartite graph, each edge represents a scheduling scheme for allocating data reconstruction tasks to a certain SSD, and the weight of the edge represents the computational cost of this scheduling scheme; In the bipartite graph matching algorithm for data reconstruction task scheduling, the node sets are the data reconstruction task set X = {X1, X2, …, X m } and the SSD controller set Y = {Y1,Y2,…,Y n }, all vertices in the X set have edges to all vertices in the Y set, and the two factors of quantized communication and SSD controller workload are used as the weights of the connections in the bipartite graph {W i,j , i = {1,2,…,m}, j = {1,2,…,n}}, and obtain an optimal match that makes W i,j The sum of the values is the largest; Weight W i,j Defined as: W i,j =a*C_Value+b*S_Value; wherein, C_Value is the value obtained by taking the inverse of the delay for transmitting the data required for the data reconstruction task to the SSD controller and normalizing it to a value between 0 and 100. The shorter the required delay, the larger the C_Value. S_Value is the value obtained by multiplying 100 by the percentage of the remaining computing resources of the current SSD controller. The more remaining computing resources, the larger the S_Value. a and b are ratios, which are decimals between 0 and 1, and their sum is 1. The values of a and b are adjusted with the current system environment. When the system communication is poor, the ratio of a is relatively reduced; when the system workload is heavy, the ratio of b is relatively reduced.
5. The distributed data reconstruction system using SSD controller computing resources in SSA as claimed in claim 4, characterized in that: Based on the SSA fault model of the SSD program / erase cycle, the SSD that is about to fail is obtained, and the data stored in the SSD that is about to fail is combined with the data reconstruction task in advance to perform data transfer.
Citation Information
Patent Citations
Method and apparatus for flexible raid in ssd
CN103718162A
RAID architecture based on SSD and HDD and backup and reconstruction methods thereof
CN109032513A