Redundancy conversion method and device based on two-level mapping in distributed storage system
Patent Information
- Application Number
- CN202611138616.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-29
- Publication Date
- 2026-10-30
AI Technical Summary
[0004]本发明的目的是针对上述现有技术存在的不足,提出一种分布式存储系统中的冗余编码数据转换方法及装置,旨在解决现有技术存在的在连续多轮转换场景下跨机架传输流量较大、转换过程中的机架级和节点级负载难以均衡以及转换后布局难以兼顾后续轮次兼容性的问题
[0051]第一,本发明根据条带集合的校验重叠度序列,构造递归边界结构,支持多轮冗余转换,使当前轮转换后的布局可直接作为下一轮合并输入,克服了现有技术主要针对单轮转换进行优化、难以在连续多轮冗余转换的过程中保持布局兼容性的缺陷,使得本发明能够适应连续冗余转换场景,并在多轮转换过程中保持较低的数据迁移开销。
Smart Images

Figure CN123019756A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of electronic data technology, and further relates to the field of distributed storage technology, specifically a redundancy conversion method and apparatus based on two-level mapping in a distributed storage system. This invention can be used to solve the problems of high cross-rack transmission traffic overhead and unbalanced load between racks in the storage redundancy conversion of erasure coding storage systems. Background Technology
[0002] With the continuous growth of data volume, distributed storage systems have become a crucial infrastructure for applications such as cloud computing, big data analytics, and artificial intelligence. By distributing data across multiple storage nodes, distributed storage systems can achieve horizontal scaling of capacity and bandwidth, and leverage redundancy mechanisms such as multiple replicas or erasure coding to improve data reliability and system availability. In practical applications, data access patterns, reliability requirements, and system resource status change dynamically over time. A single redundancy coding method cannot simultaneously meet the requirements of high performance, low cost, and high reliability. Therefore, coding redundancy conversion technology is used to dynamically adjust redundancy strategies based on data lifecycle and business needs. For example, hot data can use multiple replicas to reduce access latency, while cold data can be converted to erasure coding to reduce storage costs; the system can also switch between different erasure coding parameters to adapt to different reliability and performance requirements. Traditional methods typically require decoding to recover the original data and then re-encoding to generate the target encoded data, resulting in significant disk I / O, network transmission, and computational overhead. While some optimization methods can reduce data transfer or computation during the conversion process, they usually depend on specific coding types, coding parameters, or conversion scenarios, lacking versatility. Meanwhile, encoding conversion often needs to be completed during the online operation of the system, which can easily compete with front-end business for resources and may cause problems such as load imbalance, increased conversion latency, and decreased service quality.
[0003] Xiamen University disclosed a method and apparatus for balanced redundancy conversion in a cross-rack-aware erasure coding storage system in its patent application, "Method and Apparatus for Balanced Redundancy Conversion in Cross-Rack Aware Erasure Coding Storage System" (Application Date: 2023-06-02, Application No.: 202310648438.X, Authorization Announcement No.: CN 116909475 B). The method includes: establishing a balanced data layout between racks and an aggregated parity block layout within each rack, and maintaining this layout during the redundancy conversion process to reduce cross-rack transmission traffic caused by data block relocation and parity block updates; designing data block selection and parity block incremental update strategies to further reduce cross-rack transmission traffic for parity block updates; and proposing a heuristic algorithm to select stripe groups for parallel redundancy conversion to balance the traffic load of each rack. This method balances the load between racks while suppressing cross-rack transmission traffic caused by redundancy conversion, thus shortening the redundancy conversion time. Stretched Reed-Solomon (SRS) codes eliminate data relocation overhead during the initial conversion, while Elastic Reed-Solomon (ERS) codes further reduce parity update traffic by extending the coding matrix. However, these methods still have shortcomings. On the one hand, these methods mainly optimize the redundant conversion process from the perspective of rack-level layout maintenance and heuristic parallel scheduling, without further combining node-level block placement and parity update task distribution mechanisms. Therefore, uneven block distribution and local hotspots may still occur at the node level. On the other hand, these methods mainly optimize for the current round of redundant conversion. Their heuristic stripe group selection results depend on the candidate stripe set, making it difficult to guarantee that the stripe merging relationship between rounds remains compatible throughout multiple rounds of conversion. This results in the layout after the previous round of conversion failing to meet the structural conditions required for subsequent conversions, and the original locality advantage cannot be naturally carried over to subsequent rounds. Therefore, in continuous conversion scenarios, large cross-rack transmission traffic is still likely to occur. It is evident that existing technologies still struggle to simultaneously achieve low cross-rack transmission overhead and rack-level and node-level load balancing during continuous multi-round redundancy switching. Summary of the Invention
[0004] The purpose of this invention is to address the shortcomings of the existing technology by proposing a method and apparatus for converting redundant coded data in a distributed storage system. This invention aims to solve the problems of large cross-rack transmission traffic in continuous multi-round conversion scenarios, difficulty in balancing rack-level and node-level loads during the conversion process, and difficulty in ensuring compatibility of subsequent rounds with the post-conversion layout.
[0005] The technical approach to achieving the objectives of this invention is as follows: Because this invention employs a recursive boundary structure construction technique based on stripe set check overlap sequence, it can predetermine the data group overlap relationship at the boundary of stripe redundancy conversion in different rounds, ensuring that the layout after the current round of conversion directly meets the merging input requirements of the next round. Therefore, it guarantees layout compatibility in consecutive multi-round conversions and reduces data migration overhead in subsequent rounds. Because this invention uses rack-level and node-level mapping arrays constructed based on orthogonal arrays for deterministic mapping at the rack and node levels, it can deterministically map stripe groups and their data blocks and check blocks to the target rack and target storage node while satisfying rack-aware placement constraints. Therefore, it can achieve a relatively uniform distribution of data blocks and check blocks at the rack and node levels. Because this invention uses a deterministic redundancy conversion mechanism and utilizes the linearity of the systematic Vandermonde Reed-Solomon code to perform local updates on check blocks, it can pre-align related check blocks participating in the same check update process and prioritize local updates. Therefore, it can reduce the dependence on cross-rack data acquisition during the conversion process and reduce cross-rack transmission overhead.
[0006] To achieve the above objectives, the specific implementation steps of the method of the present invention include the following:
[0007] Step 1: Divide all raw strips into strip sets and determine the conversion rounds between adjacent raw strips within each strip set;
[0008] Step 2: Calculate the check overlap sequence for each stripe set, and group the data blocks and check blocks within each original stripe;
[0009] Step 3: Construct the recursive boundary structure between the original stripes within each stripe set;
[0010] Step 4: Perform rack-level deterministic mapping between check groups and data groups in the original stripes within each stripe set;
[0011] Step 5: Perform node-level deterministic mapping for the check blocks and data blocks in the check groups and data groups of each determined mapping rack;
[0012] Step 6: Based on the rack-level deterministic mapping results and the node-level deterministic mapping results, migrate the data blocks on racks where the total number of data blocks and check blocks in each transformed stripe exceeds the single rack fault tolerance limit to racks that do not exceed the single rack fault tolerance limit, and update the check blocks of the transformed stripe based on the linearity of the Vandermonde Reed-Solomon code.
[0013] Step 7: Write the updated striped data blocks and check blocks back to the target location to update the metadata of the distributed storage system.
[0014] Furthermore, dividing all original strips into strip sets means dividing all original strips according to each Divide into groups of one, where... This indicates the maximum number of transformations supported by the distributed storage system.
[0015] The maximum number of conversions supported by the distributed storage system To meet The largest positive integer, where, This indicates a round-up operation. This indicates the number of data blocks in each raw strip. This indicates the number of check blocks in each raw stripe. Each raw stripe has the same number of data blocks and check blocks. This indicates the total number of racks deployed in a distributed storage system.
[0016] Furthermore, the step of determining the conversion round between adjacent original stripes within each strip set is as follows:
[0017] The first step is to number the original stripes in each stripe set sequentially, starting from 1;
[0018] The second step is to determine the round in which any two adjacent original strips are first assigned to the same strip by merging adjacent original strips in round by round, and to use the round as the conversion round between the two adjacent original strips.
[0019] Furthermore, the calculation of the check overlap sequence for each stripe set is obtained by the following formula:
[0020] , , ;
[0021] in, This represents the check overlap sequence for each stripe set. This represents the check overlap of each stripe set during the t-th transformation. This represents the check overlap of each stripe set during the Tth transformation.
[0022] Furthermore, the step of grouping the data blocks and check blocks within each original stripe is as follows:
[0023] The first step is to determine the maximum number of transformations supported by the distributed storage system. If the value is 1, proceed to step two; otherwise, proceed to step four.
[0024] The second step is to determine whether the check overlap sequence of each stripe set is 2. If it is, proceed to the third step; otherwise, proceed to the fourth step.
[0025] The third step is to divide the data blocks and check blocks within each original stripe into two check groups and In the data sets, In this case, a check set consists of two check blocks and The other check group consists of one data block and is composed of... Each check block consists of one data block and the remaining data blocks are divided into... In a set of data groups, the difference in the number of data blocks between any two data groups does not exceed 1;
[0026] The fourth step is to divide all check blocks within each original stripe into a check group, and to divide all data blocks within each original stripe into... In the data sets, This ensures that the difference in the number of data blocks between any two data groups does not exceed 1.
[0027] Furthermore, the steps for constructing the recursive boundary structure between the original stripes within each stripe set are as follows:
[0028] The first step is to determine the maximum number of transformations supported by the distributed storage system. If the value is 1, proceed to step two; otherwise, proceed to step three.
[0029] The second step is to align the check sets of all the original stripes in each strip set with the check set of the first original stripe in that strip set, and to arrange the data sets of all the original stripes in each strip set in order of their numbering within the strip set, without overlapping each other.
[0030] The third step is to align the check sets of all original stripes within each strip set with the check set of the first original stripe in that strip set, and then align them according to the conversion rounds between adjacent original stripes within each strip set and the check overlap sequence of each strip set. The number of overlapping data sets at the boundaries of adjacent original stripes is determined as follows: The remaining data groups from all the original strips within each strip set are arranged sequentially and do not overlap with each other. This represents the first interval between two adjacent original stripes in the strip set. Verification of overlap during the transformation.
[0031] Furthermore, the step of performing rack-level deterministic mapping between check groups and data groups in the original stripes within each stripe set is as follows:
[0032] The first step is to define in In an orthogonal array of symbols, each row contains identical elements. Row deletion is performed, preserving the relative order of the remaining rows in the orthogonal array. The preserved rows form a rack-level mapping array, where each symbol corresponds to a rack. This represents the number of symbols in the orthogonal array. This indicates the number of rows where all elements are identical after deletion. ;
[0033] The second step involves selecting rack mapping rows starting from the first row of the rack-level mapping array, with one rack mapping row assigned to each stripe set; the node mapping rows start from the first row of the node-level mapping array and rotate sequentially according to the order of the rows; once the node mapping rows have completed one rotation of each row in the node-level mapping array, the rack mapping rows switch to the next row in the rack-level mapping array, and the node mapping rows are selected again starting from the first row of the node-level mapping array.
[0034] The third step is to select the front column in the rack mapping row with the same number of check groups as the number of check groups, based on the number of check groups in the original stripe within the stripe set, and use the rack corresponding to the selected front column as the mapping rack of the check group. Check groups aligned in the same stripe set are selected from the same rack.
[0035] The fourth step is to map the data groups arranged in the original stripes within the strip set to the racks corresponding to the remaining columns in the rack mapping row in the order of arrangement. Overlapping data groups are selected to use the same rack.
[0036] Furthermore, the step of performing node-level deterministic mapping on the check blocks and data blocks in the check group and data group of each determined mapping rack is as follows:
[0037] The first step is to define in In an orthogonal array of symbols, each row contains identical elements. Row deletion preserves the relative order of the remaining rows in the orthogonal array, and the preserved rows form a node-level mapping array, where each symbol corresponds to a storage node. This represents the number of symbols in the orthogonal array. This indicates the number of rows where all elements are identical after deletion. , The number of storage nodes deployed in each rack, with each rack having the same node size;
[0038] The second step is to select a node mapping row starting from the first row of the node-level mapping array, and rotate the rows in turn according to their order, assigning one node mapping row to each stripe set;
[0039] The third step is to select the first column in the mapping row of the allocation node that has the same number of verification blocks as the number of verification blocks in each verification group of the determined mapping rack, and then use the node corresponding to the selected first column as the mapping node of the verification block.
[0040] The fourth step is to arrange the data blocks in the check group according to the numbering order of their original stripes in the stripe set, and map the data blocks to the nodes corresponding to the remaining columns in the node mapping row, excluding those already assigned to the check blocks, according to the column order.
[0041] The fifth step is to map the data blocks in each data group of the identified mapping rack to the nodes corresponding to each column of the mapping row of the allocation node in the order of columns.
[0042] The redundancy conversion device of the present invention includes the following modules:
[0043] The strip organization module is used to divide all the original strips into strip sets according to a predetermined number, number the original strips in each strip set, and determine the conversion round between adjacent original strips in each strip set.
[0044] The verification overlap calculation and grouping module is used to calculate the verification overlap sequence of each stripe set, and group the data blocks and verification blocks in each original stripe according to the maximum number of transformations supported by the distributed storage system and the verification overlap sequence to obtain verification groups and data groups.
[0045] The recursive boundary construction module is used to construct the recursive boundary structure between the original stripes in each strip set based on the conversion rounds between adjacent original stripes in each strip set and the verification overlap sequence of each strip set.
[0046] The rack-level mapping module is used to construct a rack-level mapping array based on an orthogonal array, and to perform rack-level deterministic mapping between the check group and the data group in the original stripe within each stripe set;
[0047] The node-level mapping module is used to construct a node-level mapping array based on an orthogonal array, and to perform node-level deterministic mapping on the check blocks and data blocks in the check group and data group of each determined mapping rack.
[0048] The conversion execution module is used to migrate data blocks on racks where the total number of data blocks and check blocks in each converted stripe exceeds the single rack fault tolerance limit to racks where the single rack fault tolerance limit is not exceeded, based on rack-level deterministic mapping results and node-level deterministic mapping results, and to update the check blocks of the converted stripe based on the linearity of Vandermonde Reed-Solomon codes.
[0049] The write-back update module is used to write the updated stripe data blocks and check blocks back to the target location and update the metadata of the distributed storage system.
[0050] Compared with the prior art, the present invention has the following advantages:
[0051] First, the present invention constructs a recursive boundary structure based on the verification overlap sequence of the strip set, which supports multi-round redundant transformation. This allows the layout after the current round of transformation to be directly used as the merging input for the next round. This overcomes the shortcomings of existing technologies that mainly optimize for single-round transformation and are difficult to maintain layout compatibility in the process of continuous multi-round redundant transformation. This enables the present invention to adapt to continuous redundant transformation scenarios and maintain low data migration overhead in the process of multi-round transformation.
[0052] Second, this invention uses a rack-level mapping array and a node-level mapping array constructed based on orthogonal arrays to perform deterministic mapping between the rack level and the node level. This overcomes the shortcomings of existing technologies that can only take into account the rack-level placement balance in redundancy conversion and are difficult to guarantee the node-level block distribution balance. This invention enables the invention to achieve strip grouping and the uniform distribution of data blocks and check blocks within the group at the rack level and node level while satisfying rack-aware fault tolerance constraints, thereby improving the load balancing capability of the distributed storage system.
[0053] Third, the present invention adopts a deterministic redundancy conversion mechanism, which utilizes the linearity of the systematic Vandermonde Reed-Solomon code to achieve local update of the parity block. This overcomes the shortcomings of existing technologies, which involve a large amount of cross-rack data acquisition and high network communication overhead during the parity block update process. As a result, the present invention can achieve local update of the parity block, reduce the amount of cross-rack data transmission during the conversion process, reduce network bandwidth usage, and shorten the redundancy conversion completion time. Attached Figure Description
[0054] Figure 1 This is a flowchart of the redundancy conversion method of the present invention;
[0055] Figure 2 This is a schematic diagram of the strip set grouping and check block grouping strategy in an embodiment of the present invention;
[0056] Figure 3 This is a schematic diagram of rack-level deterministic mapping in an embodiment of the present invention;
[0057] Figure 4 This is a schematic diagram of node-level deterministic mapping in an embodiment of the present invention;
[0058] Figure 5 This is a schematic diagram of the recursive boundary structure and data migration of multi-round redundant conversion in an embodiment of the present invention;
[0059] Figure 6 This is a schematic diagram of the strip redundancy conversion zero-migration layout in an embodiment of the present invention;
[0060] Figure 7 This is a graph showing the results of continuous redundancy conversion flow rate in a large-scale simulation experiment of redundancy conversion according to the present invention; wherein, Figure 7 (a) is a graph showing the cross-rack conversion flow results; Figure 7 (b) is a diagram showing the cross-node conversion traffic results;
[0061] Figure 8 This is a diagram showing the load balancing results during the transmission process of a large-scale simulation experiment of redundancy conversion in this invention; wherein, Figure 8 (a) is a graph showing the rack-level read / write CV results; Figure 8 (b) is a diagram of node-level read / write CV results;
[0062] Figure 9 This is a diagram showing the impact of code parameters on the prototype experiment of redundancy conversion in this invention;
[0063] Figure 10 This is a graph showing the network bandwidth results in the prototype experiment of redundancy conversion of this invention;
[0064] Figure 11 This is a diagram showing the effect of the number of stripes on the redundancy conversion prototype experiment of this invention;
[0065] Figure 12 This is a diagram showing the effect of block size on the prototype experiment of redundant coding conversion in this invention. Detailed Implementation
[0066] The technical solution of the present invention will be clearly and completely described below with reference to the embodiments and accompanying drawings. It should be understood that the described embodiments are only for illustrating the present invention and are not intended to limit the scope of protection of the present invention.
[0067] Embodiments of the present invention use Vandermonde-based generation matrices. and Let's take code as an example. The distributed storage system consists of 8 racks, and each rack contains 4 storage nodes.
[0068] Reference Figure 1 The implementation steps of the redundancy conversion method of the present invention will be further described below.
[0069] Step 1. Divide the original strips into strip sets and determine the conversion rounds between adjacent original strips within each strip set.
[0070] In the current scale of distributed storage systems, regarding parameters Maximum number of conversions supported : Therefore, two stripes form a stripe set, and within this stripe set... and The transition cycle between them is 1. For the parameters... Maximum number of conversions supported : Therefore, four stripes form a stripe set, and within this stripe set... and The transition round between them is 1. and The transition rounds between them are 2. and The number of transition rounds between them is 1.
[0071] Step 2. Calculate the check overlap sequence for each stripe set, and group the data blocks and check blocks within each original stripe.
[0072] calculate Verification overlap Therefore, the four check blocks in each strip are divided into two check groups, each containing two check blocks and one data block. The remaining data blocks are further divided into data groups according to rack-aware constraints. Thus, each strip is divided into four groups: [2+1, 2+1, 4, 4], where the first two groups are check groups and the last two groups are data groups. Calculation Validation overlap sequence The check blocks of each stripe are grouped into a check group, and the data blocks are divided into two data groups. Thus, the stripe can be divided into three groups: [4, 3, 4]. The first group contains four check blocks, and the latter two groups are data groups. This grouping method provides the foundation for subsequent multi-round boundary structure construction. Figure 2 An intra-strip grouping strategy is illustrated in an embodiment of the present invention.
[0073] Step 3. Construct the recursive boundary structure.
[0074] Only need to Construct a recursive boundary structure, the overlap sequence corresponding to this strip set is: ,in This indicates that during the first round of transformation, adjacent strip boundaries do not overlap in data sets. This indicates that a data group overlap structure needs to be pre-constructed at the transformation boundary during the second round of transformation. Specifically, stripes. and strips Using a 4-3-4 grouping method, strips and strips A 4-4-3 grouping method is adopted. The first group of each strip is a check group, which is placed independently and does not participate in boundary overlap. Strips and The transition cycle between them is 2, therefore the stripe Data group With strip Data group Overlap. Figure 5 The structure of the strip boundary in an embodiment of the present invention is shown.
[0075] Step 4. Construct rack-level mapping.
[0076] Based on orthogonal arrays defined on 8 symbols Construct rack-level mapping array This maps each group within the stripe set to eight racks. Specifically, a row from the rack-level mapping array is selected as the mapping template for the current stripe pair. under parameters in strip and strips Taking the set of strips as an example, strips The two verification groups are mapped to the racks based on the first two columns of the selected mapping rows. and The two data sets are mapped to racks based on the third and fourth columns, respectively. and strip Two check groups and stripes Maintain alignment at the rack level and map to the racks respectively. and The two data sets are then mapped to racks based on the fifth and sixth columns, respectively. and . Figure 3 The rack-level deterministic mapping process in an embodiment of the present invention is illustrated. Under these parameters, additionally at the boundary of the second-round transformation, the stripe Data group With strip Data group Mapped to the same boundary rack . Figure 5 The structure of the recursive boundary in an embodiment of the present invention is shown.
[0077] Step 5. Construct node-level mappings.
[0078] Based on orthogonal arrays defined on 4 symbols Construct rack-level mapping array This maps blocks from groups within the same stripe set to storage nodes on each rack: groups within the same stripe set select the same row, such as... Figure 4 As shown. For rack On the verification group and The node-level mapping result of the blocks within the group according to the mapping rules is as follows:
[0079] ;
[0080] ;
[0081] For data groups The node-level mapping result of the data blocks within the group is as follows:
[0082] ;
[0083] Node-level mapping can further achieve a balanced distribution of data blocks and check blocks within a group among nodes, avoiding some nodes from bearing too many transformation or update tasks.
[0084] Step 6. Perform deterministic redundancy conversion.
[0085] Data blocks that do not meet the single-rack fault tolerance requirement will be migrated to a rack that does not exceed the single-rack fault tolerance limit. Figure 5 Steps three and four show what needs to be done during the second round of conversion. and Migrate to rack and The process involves aligning the corresponding parity blocks in the stripe set at the rack and node levels. The system can leverage the linearity of the Vandermonde Reed-Solomon code to perform a local linear combination of the corresponding parity blocks in the two stripes, generating the parity block of the merged target stripe, thus completing a single-round redundancy conversion. Figure 6 The illustration shows a single-wheel stripe redundancy conversion layout in an embodiment of the present invention, wherein, under the premise of satisfying the target layout constraints, the stripe redundancy conversion process does not require the introduction of additional cross-rack data migration, thereby reducing conversion traffic overhead.
[0086] Step 7. Update metadata.
[0087] Update the stripe metadata of the transformed stripe. At this point, the redundancy encoding transformation is complete.
[0088] The effectiveness of this invention can be further demonstrated through the following large-scale simulation experiments and prototype experiments.
[0089] A. Large-scale simulation experiment
[0090] 1. Large-scale simulation experimental conditions. The platform for the large-scale simulation experiment of this invention is the Windows 11 operating system and Python 3.
[0091] 2. Large-scale simulation experiment content and result analysis. This invention includes two large-scale simulation experiments.
[0092] The large-scale simulation experiment 1 of this invention is a continuous redundancy conversion traffic experiment. 100,000 data stripes are simulated in a storage system containing 16 racks (each rack containing 8 storage nodes); four encoding configurations are evaluated: (4,2), (6,3), (10,4), and (12,4); for each configuration, two consecutive data stripe merging operations are performed; the total number of data blocks transmitted across racks and across nodes is measured.
[0093] The large-scale simulation experiment 1 of this invention uses the method of this invention and three existing technologies to perform two consecutive redundant encoding conversions on four encoding parameters, and plots the total number of data blocks transmitted across racks and nodes. Figure 7 The bar chart shown.
[0094] The three existing technologies used in large-scale simulation experiment 1 are:
[0095] Prior art 1 refers to a method and apparatus for equalizing redundancy in a cross-rack-aware erasure coding storage system, proposed by Xiamen University in its patent application document "Method and apparatus for equalizing redundancy in a cross-rack-aware erasure coding storage system" (application date 2023-06-02, application number 202310648438.X, authorization announcement number CN116909475 B).
[0096] Prior art 2 refers to a method proposed by Konstantin Taranov et al. in their paper "Fast and strongly-consistent per-item resilience in key-value stores" that eliminates data relocation overhead during the initial transformation process.
[0097] Existing technology 3 refers to the method proposed by Shen Zhirong et al. in their paper "Enabling I / O-EfficientRedundancy Transitioning in Erasure-Coded KV Stores via Elastic Reed-SolomonCodes", which eliminates data relocation overhead during the first transformation process and further reduces parity update traffic by extending the coding matrix.
[0098] Large-scale simulation experiment 2 is a load balancing experiment during the transmission process. The scale and parameter selection of the distributed storage system used are the same as those in large-scale simulation experiment 1.
[0099] The large-scale simulation experiment 2 of this invention uses the method of this invention and three existing technologies to perform two consecutive redundant coding transformations on four coding parameters, and plots the load imbalance between rack level and node level quantified by the coefficient of variation (CV). Figure 8 The bar chart shown.
[0100] In large-scale simulation experiment 2, the three existing techniques used are the same as those used in large-scale simulation experiment 1.
[0101] The following is combined Figure 7 and Figure 8 The large-scale simulation experiment diagrams further illustrate the effects of the present invention.
[0102] Depend on Figure 7 As can be seen, the method of the present invention consistently exhibits the lowest conversion traffic. Compared with prior art 2 and prior art 3, the method of the present invention can reduce cross-rack and cross-node traffic by more than 89%; compared with prior art 1, the method of the present invention has a more significant advantage at the node level, while the cumulative reduction in cross-rack traffic, although smaller, remains stable.
[0103] Depend on Figure 8 As can be seen, the method of this invention consistently exhibits lower CV values than the three existing technologies at both levels. Under different encoding parameter settings and two consecutive merge operations, the CV value of the method of this invention remains at a low level, indicating that it achieves a more uniform read / write load distribution during conversion. This advantage is mainly attributed to its two-layer mapping design—which not only balances I / O traffic across racks but also further distributes the load evenly to each node within each rack.
[0104] B. Prototype test.
[0105] 1. Prototype experimental conditions.
[0106] The prototype platform for this invention is the Emulab cluster of the CloudLab test platform. Each node is equipped with a single 8-core CPU, 4 GB of memory, and an Ubuntu 22.04.2 operating system. The prototype program of this invention comprises four components: a client, a coordinator, data nodes, and a proxy server. The coordinator is responsible for managing metadata and data scheduling, while the client performs most of the system operations.
[0107] 2. Analysis of the content and results of the prototype experiment.
[0108] There are four prototype experiments for this invention.
[0109] Prototype Experiment 1 is an experiment on the effects of code parameters.
[0110] The prototype experiment 1 of this invention was implemented in a storage system containing 16 racks (each rack containing 8 storage nodes); three initial encoding configurations were evaluated: RS(4,2), RS(6,3) and RS(10,4); for each configuration, two consecutive data stripe merging operations were performed.
[0111] The prototype experiment 1 of this invention uses the method of this invention and three existing technologies to perform two consecutive redundant encoding conversions on three different encoding parameters, and measures the redundancy conversion time under different stripe parameters. The result is the average of five runs, and the error range is marked. The results are plotted as follows: Figure 9 The bar chart shown.
[0112] In Prototype Experiment 1, the three existing technologies used were the same as those used in Large-Scale Simulation Experiment 1.
[0113] Prototype Experiment 2 is a network bandwidth impact experiment. Using the method of this invention and three existing technologies, the intra-rack bandwidth was fixed at 10 Gb / s using the tc tool, while the inter-rack bandwidth was adjusted from 0.5 Gb / s to 10 Gb / s. Two consecutive redundant encoding conversions were performed on the (10,4) encoding parameters under the aforementioned different bandwidths, and the redundancy conversion time was measured under different bandwidths. The result was the average of five runs, and the error range was marked. The results were plotted as follows: Figure 10 The bar chart shown.
[0114] The three existing technologies used in Prototype Experiment 2 are the same as those used in Large-Scale Simulation Experiment 1.
[0115] Prototype Experiment 3 is an experiment on the effect of the number of stripes. Using the method of this invention and three existing technologies, the number of stripes was adjusted from 500 to 2000 with the (10,4) encoding parameter, and two consecutive redundant encoding conversions were performed. The redundancy conversion time for different stripe numbers was measured, and the result was the average of five runs, with the error range marked. The results were plotted as follows: Figure 11 The bar chart shown.
[0116] In prototype experiment 3, the three existing technologies used are the same as those used in large-scale simulation experiment 1.
[0117] Prototype Experiment 4 is an experiment on the effect of block size.
[0118] Experiment 4 of this invention uses the method of this invention and three existing technologies to perform two consecutive redundancy coding conversions on five block sizes (256KB, 512KB, 1MB, 2MB, and 4MB) with the (10,4) coding parameter. The redundancy conversion time for different block sizes is measured, and the average of the five runs is taken, with the error range marked. The results are plotted as follows: Figure 12 The bar chart shown.
[0119] In prototype experiment 4, the three existing technologies used were the same as those used in large-scale simulation experiment 1.
[0120] The following is combined Figures 9 to 12 The prototype experimental results are shown in the figure to further describe the effects of the present invention.
[0121] from Figure 9 As can be seen, the method of the present invention achieves the shortest conversion time in all cases. Compared with the prior art 1, 2 and 3, the method of the present invention can reduce the conversion time by an average of 38.32%, 57.13% and 94.35%, respectively.
[0122] from Figure 10 As can be seen, the switching time of all solutions is shortened with the increase of inter-rack bandwidth. Under all bandwidth settings, the method of this invention consistently outperforms the other three existing technologies, especially when inter-rack bandwidth is limited. This is mainly because the method of this invention significantly reduces inter-rack migration traffic while maintaining near-balanced load among nodes, making it particularly effective in bandwidth-constrained environments. As inter-rack bandwidth increases, network bottlenecks are gradually alleviated, and the performance gap narrows accordingly. Nevertheless, the method of this invention still performs best overall: compared with existing technologies 1, 2, and 3, its average switching time is reduced by 35.95%, 60.54%, and 96.28%, respectively.
[0123] from Figure 11 As can be seen, the conversion time of all schemes increases with the number of stripes—because more stripes participate in parity updates, recoding, and possible block migration operations, thus increasing the overall conversion overhead. The scheme of this invention consistently maintains the lowest conversion time in all test scenarios: compared to the three existing technical schemes, its conversion time is reduced by an average of 40.18%, 66.68%, and 96.49%, respectively.
[0124] Figure 12 The results show that for all schemes, the conversion time increases with increasing block size, with the method of the present invention consistently performing optimally in all settings; its advantage is even more significant with larger block sizes. Compared with three existing technologies, the method of the present invention can reduce the conversion time by an average of 37.69%, 65.49%, and 96.4%, respectively.
[0125] The large-scale simulation experiments and prototype tests above demonstrate that the method of this invention, utilizing a stripe set grouping mechanism based on check overlap sequences, can reduce the number of data blocks that need to be migrated during continuous redundancy conversion; by employing a two-level deterministic mapping mechanism composed of rack-level orthogonal arrays and node-level orthogonal arrays, it can achieve a balanced distribution of data blocks and check blocks at the rack and node levels; and by utilizing a pre-constructed recursive boundary structure, it can maintain the compatibility of the layout of successive rounds during continuous multi-round redundancy conversion. Through the above mechanisms, this invention can simultaneously reduce cross-rack and cross-node transmission traffic, reduce the degree of read / write load imbalance during conversion, and significantly shorten the redundancy conversion time. It solves the problems of large traffic volume, obvious node-level hotspots, and insufficient compatibility of subsequent rounds in existing technologies, making it a very practical redundancy conversion method for distributed storage systems.
Claims
1. A redundancy conversion method based on two-level mapping in a distributed storage system, characterized in that, The steps of the redundancy conversion method include the following: Step 1: Divide all raw strips into strip sets and determine the conversion rounds between adjacent raw strips within each strip set; Step 2: Calculate the check overlap sequence for each stripe set, and group the data blocks and check blocks within each original stripe; Step 3: Construct the recursive boundary structure between the original stripes within each stripe set; Step 4: Perform rack-level deterministic mapping between check groups and data groups in the original stripes within each stripe set; Step 5: Perform node-level deterministic mapping for the check blocks and data blocks in the check groups and data groups of each determined mapping rack; Step 6: Based on the rack-level deterministic mapping results and the node-level deterministic mapping results, migrate the data blocks on racks where the total number of data blocks and check blocks in each transformed stripe exceeds the single rack fault tolerance limit to racks that do not exceed the single rack fault tolerance limit, and update the check blocks of the transformed stripe based on the linearity of the Vandermonde Reed-Solomon code. Step 7: Write the updated striped data blocks and check blocks back to the target location to update the metadata of the distributed storage system.
2. The redundancy conversion method according to claim 1, characterized in that, The step 1, which involves dividing all the original strips into strip sets, means dividing all the original strips according to each... Divide into groups of one, where... This indicates the maximum number of transformations supported by the distributed storage system.
3. The redundancy conversion method according to claim 2, characterized in that, The maximum number of conversions supported by the distributed storage system To meet The largest positive integer, where, This indicates a round-up operation. This indicates the number of data blocks in each raw strip. This indicates the number of check blocks in each raw stripe. Each raw stripe has the same number of data blocks and check blocks. This indicates the total number of racks deployed in a distributed storage system.
4. The redundancy conversion method according to claim 3, characterized in that, The steps described in step 1 for determining the conversion rounds between adjacent original stripes within each strip set are as follows: The first step is to number the original stripes in each stripe set sequentially, starting from 1; The second step is to determine the round in which any two adjacent original strips are first assigned to the same strip by merging adjacent original strips in round by round, and to use the round as the conversion round between the two adjacent original strips.
5. The redundancy conversion method according to claim 4, characterized in that, The calculation of the check overlap sequence for each stripe set in step 2 is obtained by the following formula: , , ; in, This represents the check overlap sequence for each stripe set. This represents the check overlap of each stripe set during the t-th transformation. This represents the check overlap of each stripe set during the Tth transformation.
6. The redundancy conversion method according to claim 5, characterized in that, The steps for grouping data blocks and check blocks within each original stripe as described in step 2 are as follows: The first step is to determine the maximum number of transformations supported by the distributed storage system. Is the value 1? If yes, proceed to step two. Otherwise, proceed to step four; The second step is to determine whether the check overlap sequence of each stripe set is 2. If it is, proceed to the third step; otherwise, proceed to the fourth step. The third step is to divide the data blocks and check blocks within each original stripe into two check groups and In the data sets, In this case, a check set consists of two check blocks and The other check group consists of one data block and is composed of... Each check block consists of one data block and the remaining data blocks are divided into... In a set of data groups, the difference in the number of data blocks between any two data groups does not exceed 1; The fourth step is to divide all check blocks within each original stripe into a check group, and to divide all data blocks within each original stripe into... In the data sets, This ensures that the difference in the number of data blocks between any two data groups does not exceed 1.
7. The redundancy conversion method according to claim 6, characterized in that, The steps for constructing the recursive boundary structure between the original stripes within each stripe set, as described in step 3, are as follows: The first step is to determine the maximum number of transformations supported by the distributed storage system. If the value is 1, proceed to step two; otherwise, proceed to step three. The second step is to align the check sets of all the original stripes in each strip set with the check set of the first original stripe in that strip set, and to arrange the data sets of all the original stripes in each strip set in order of their numbering within the strip set, without overlapping each other. The third step is to align the check sets of all original stripes within each strip set with the check set of the first original stripe in that strip set, and then align them according to the conversion rounds between adjacent original stripes within each strip set and the check overlap sequence of each strip set. The number of overlapping data sets at the boundaries of adjacent original stripes is determined as follows: The remaining data groups from all the original strips within each strip set are arranged sequentially and do not overlap with each other. This represents the first interval between two adjacent original stripes in the strip set. Verification of overlap during the transformation.
8. The redundancy conversion method according to claim 7, characterized in that, The steps described in step 4 for performing rack-level deterministic mapping between check groups and data groups in the original stripes within each stripe set are as follows: The first step is to define in In an orthogonal array of symbols, each row contains identical elements. Row deletion is performed, preserving the relative order of the remaining rows in the orthogonal array. The preserved rows form a rack-level mapping array, where each symbol corresponds to a rack. This represents the number of symbols in the orthogonal array. This indicates the number of rows where all elements are identical after deletion. ; The second step involves selecting rack mapping rows starting from the first row of the rack-level mapping array, with one rack mapping row assigned to each stripe set; the node mapping rows start from the first row of the node-level mapping array and rotate sequentially according to the order of the rows; once the node mapping rows have completed one rotation of each row in the node-level mapping array, the rack mapping rows switch to the next row in the rack-level mapping array, and the node mapping rows are selected again starting from the first row of the node-level mapping array. The third step is to select the front column in the rack mapping row with the same number of check groups as the number of check groups, based on the number of check groups in the original stripe within the stripe set, and use the rack corresponding to the selected front column as the mapping rack of the check group. Check groups aligned in the same stripe set are selected from the same rack. The fourth step is to map the data groups arranged in the original stripes within the strip set to the racks corresponding to the remaining columns in the rack mapping row in the order of arrangement. Overlapping data groups are selected to use the same rack.
9. The redundancy conversion method according to claim 1, characterized in that, The steps described in step 5 for performing node-level deterministic mapping of check blocks and data blocks in the check and data groups of each determined mapping rack are as follows: The first step is to define in In an orthogonal array of symbols, each row contains identical elements. Row deletion preserves the relative order of the remaining rows in the orthogonal array, and the preserved rows form a node-level mapping array, where each symbol corresponds to a storage node. This represents the number of symbols in the orthogonal array. This indicates the number of rows where all elements are identical after deletion. , The number of storage nodes deployed in each rack, with each rack having the same node size; The second step is to select a node mapping row starting from the first row of the node-level mapping array, and rotate the rows in turn according to their order, assigning one node mapping row to each stripe set; The third step is to select the first column in the mapping row of the allocation node that has the same number of verification blocks as the number of verification blocks in each verification group of the determined mapping rack, and then use the node corresponding to the selected first column as the mapping node of the verification block. The fourth step is to arrange the data blocks in the check group according to the numbering order of their original stripes in the stripe set, and map the data blocks to the nodes corresponding to the remaining columns in the node mapping row, excluding those already assigned to the check blocks, according to the column order. The fifth step is to map the data blocks in each data group of the identified mapping rack to the nodes corresponding to each column of the mapping row of the allocation node in the order of columns.
10. A redundancy conversion device based on two-level mapping in a distributed storage system, characterized in that, Based on the redundancy conversion method according to any one of claims 1-9, the device comprises the following modules: The strip organization module is used to divide all the original strips into strip sets according to a predetermined number, number the original strips in each strip set, and determine the conversion round between adjacent original strips in each strip set. The verification overlap calculation and grouping module is used to calculate the verification overlap sequence of each stripe set, and group the data blocks and verification blocks in each original stripe according to the maximum number of transformations supported by the distributed storage system and the verification overlap sequence to obtain verification groups and data groups. The recursive boundary construction module is used to construct the recursive boundary structure between the original stripes in each strip set based on the conversion rounds between adjacent original stripes in each strip set and the verification overlap sequence of each strip set. The rack-level mapping module is used to construct a rack-level mapping array based on an orthogonal array, and to perform rack-level deterministic mapping between the check group and the data group in the original stripe within each stripe set; The node-level mapping module is used to construct a node-level mapping array based on an orthogonal array, and to perform node-level deterministic mapping on the check blocks and data blocks in the check group and data group of each determined mapping rack. The conversion execution module is used to migrate data blocks on racks where the total number of data blocks and check blocks in each converted stripe exceeds the single rack fault tolerance limit to racks where the single rack fault tolerance limit is not exceeded, based on rack-level deterministic mapping results and node-level deterministic mapping results, and to update the check blocks of the converted stripe based on the linearity of Vandermonde Reed-Solomon codes. The write-back update module is used to write the updated stripe data blocks and check blocks back to the target location and update the metadata of the distributed storage system.
Citation Information
Patent Citations
Method and apparatus for balancing redundancy conversion of cross-rack aware erasure code storage system
CN116909475B
