Arrangement group splitting capacity expansion method and device, computer equipment and storage medium
By calculating the number of first placement groups and designing a splitting scheme, creating a new placement group and performing balanced distribution, the resource inequality and load imbalance caused by placement group expansion in the existing technology is solved, and the scalability of the cluster is improved. stability.
Patent Information
- Application Number
- CN202411352905.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-26
- Publication Date
- 2024-12-27
AI Technical Summary
The existing technology has problems of uneven resource allocation, load imbalance and performance fluctuations in the management and expansion of the substation group. It is impossible to intelligently adjust the load according to real-time load and performance differences, resulting in unbalanced load after expansion, affecting cluster stability.
By obtaining cluster operation information, calculating the number of first placement groups, performing feasibility evaluation and splitting scheme design, creating a new placement group, and using a progressive balancing method for distribution to ensure reasonable resource allocation and load balancing.
It realizes flexible adjustment of the number of substation groups according to the dynamic changes of the cluster, avoids excessive or insufficient expansion, reduces resource waste and performance fluctuations, and improves the scalability and stability of the cluster.
Smart Images

Figure CN119200997A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of placement group splitting and capacity expansion, and in particular to a placement group splitting and capacity expansion method, device, computer equipment and storage medium. Background Art
[0002] In the cluster architecture of distributed storage systems, placement groups (PGs) are key logical units that divide and distribute data between multiple storage nodes (such as object daemons, or OSDs), which directly affect cluster performance, load balancing, and data reliability. As cluster size and data volume continue to grow, the system needs to improve storage capacity and processing performance through capacity expansion.
[0003] However, existing technologies have obvious limitations in the management and expansion of placement groups. Traditional methods usually preset the number of placement groups through manual configuration or fixed algorithms. This static setting is difficult to adapt to dynamic changes in the cluster, and often leads to uneven resource allocation and load imbalance after expansion. At the same time, when expanding capacity, a large number of placement groups are created and migrated at one time, which fails to fully consider the real-time load and performance of the cluster, easily causing instantaneous high load and cluster performance fluctuations, affecting the overall business stability.
[0004] In addition, the load balancing mechanism of the cluster in the existing technology often relies on simple hash algorithms or predefined rules, and fails to make intelligent adjustments based on the real-time load and performance differences of each storage node, resulting in some nodes being overloaded after expansion, while other nodes have insufficient resource utilization. In addition, there is a lack of effective system load and expansion value evaluation before expansion, and it is difficult to achieve the best effect in the number and distribution of placement groups after expansion. Summary of the invention
[0005] Based on this, it is necessary to provide a placement group splitting and expansion method, device, computer equipment and storage medium that can dynamically and intelligently adjust the number of placement groups, perform balanced adjustments according to the actual operating status of the cluster, achieve reasonable allocation of resources after expansion, and improve the scalability and stability of the cluster in response to the above technical problems.
[0006] On the one hand, a method for splitting and expanding a placement group is provided, the method comprising:
[0007] Get cluster operation information and calculate the number of the first placement group;
[0008] Performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result;
[0009] In response to the feasibility assessment result being feasible, designing a placement group splitting scheme based on the first number of placement groups to obtain a placement group splitting scheme;
[0010] According to the placement group splitting scheme, create several new placement groups;
[0011] Based on a progressive balancing method, the plurality of new placement groups are evenly distributed.
[0012] In one of the embodiments, the cluster operation information includes: storage pool information, cluster global information;
[0013] Get cluster operation information, calculate the number of first placement groups, and also include:
[0014] Acquire the storage pool information, wherein the storage pool information includes: the number of copies;
[0015] Acquire the cluster global information, wherein the cluster global information includes: the total number of object daemons, historical load and performance data, and data growth rate;
[0016] Obtaining the number of basic placement groups according to the number of replicas and the total number of object daemons;
[0017] Obtaining a historical load optimization factor according to the historical load and performance data, and a data growth rate;
[0018] The theoretical first placement group quantity and the historical load optimization factor are combined to obtain the first placement group quantity.
[0019] In one embodiment, obtaining cluster operation information and calculating the number of first placement groups further includes:
[0020] According to the number of replicas and the total number of object daemons, the number of basic placement groups is calculated based on the formula:
[0021]
[0022] , among which, PG num Indicates the number of basic placement groups, OSD count represents the total number of object daemons, R represents the number of replicas, and T represents the target placement group ratio for each object daemon;
[0023] According to the historical load and performance data, as well as the data growth rate, a historical load optimization factor is obtained, based on the formula:
[0024]
[0025] , where Γ represents the historical load optimization factor, LOAD is a collection of system load and performance data, including time series data of multiple load dimensions, k represents the kth load dimension in LOAD, and α k represents the weight coefficient of the kth load dimension, f(k) is the characteristic statistical function of the kth load dimension, U kis the system threshold of the kth load dimension, δ represents the data growth rate, and β is the weight coefficient of the data growth rate;
[0026] Combining the theoretical first placement group number and the historical load optimization factor, the first placement group number is obtained based on the formula: PG opt =PG num ×Γ, where PG opt Indicates the number of the first placement group.
[0027] In one embodiment, performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result includes:
[0028] Obtain cluster operation information, wherein the cluster operation information includes: the current number of placement groups and cluster configuration information;
[0029] Obtaining a placement group extension value according to the first placement group number and the current placement group number;
[0030] Based on the placement group extension value, an extension value evaluation is performed to obtain an extension value evaluation result, wherein the extension value evaluation result includes at least one of the following: over-extension and moderate extension;
[0031] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, wherein the predicted load evaluation result includes at least one of the following: excessive load and moderate load;
[0032] In response to the predicted load evaluation result being a moderate load, the feasibility evaluation result being feasible;
[0033] In response to the expansion value evaluation result being moderate expansion, performing a predicted load evaluation based on the placement group expansion value to obtain a predicted load evaluation result, including:
[0034] According to the cluster configuration information, current resource load and resource performance parameters are obtained;
[0035] Obtaining a predicted resource load according to the current resource load and the placement group expansion value;
[0036] Obtaining a resource carrying threshold according to the resource performance parameter;
[0037] A predicted load evaluation is performed according to the resource carrying threshold and the predicted resource load. In response to the resource carrying threshold being greater than the predicted resource load, the predicted load evaluation result is a moderate load. Otherwise, the predicted load evaluation result is an excessive load.
[0038] In one embodiment, in response to the feasibility assessment result being feasible, a placement group splitting scheme is designed to obtain a placement group splitting scheme, including:
[0039] Broadcasting the first placement group number to all object daemons;
[0040] The object daemon performs local split calculation according to the first number of placement groups to obtain the number of placement groups that need to be split;
[0041] The object daemon performs a placement group appropriateness check according to its own storage status, and selects a placement group that is suitable for splitting;
[0042] In combination with the number of placement groups to be split and the placement groups suitable for splitting, a split mapping relationship is established to obtain the placement group splitting solution.
[0043] In one embodiment, according to the placement group splitting scheme, several new placement groups are created, including:
[0044] According to the placement group splitting scheme, the number of the placement groups to be split, the suitable splitting placement groups and the splitting mapping relationship are obtained;
[0045] Based on the split mapping relationship, split the suitable split placement groups in sequence to generate new placement groups, wherein the suitable split placement groups are recorded as parent placement groups, and the corresponding new placement groups are recorded as child placement groups, and the sum of the number of the child placement groups generated by all the parent placement groups is equal to the number of the placement groups to be split;
[0046] Based on the self-managed raw device space, the data in the parent placement group is migrated to the child placement group, and data integrity and consistency checks are performed.
[0047] In one embodiment, the plurality of new placement groups are evenly distributed based on a progressive balancing method, including:
[0048] Get the current placement group distribution status of the cluster and the current object daemon load ratio;
[0049] Obtain the amount of data stored in the current object daemon process of the cluster, and determine whether there is an object daemon process under high load based on the current object daemon process load ratio;
[0050] In response to the existence of an object daemon process being under high load, the placement groups under the object daemon process under high load are gradually migrated out through the CRUSH algorithm and allocated to the object daemon process under low load.
[0051] On the other hand, a placement group splitting and capacity expansion device is provided, the device comprising:
[0052] A first placement group quantity calculation module, used to obtain cluster operation information and obtain the first placement group quantity by calculation;
[0053] A feasibility assessment module, used to perform a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result;
[0054] a splitting scheme generating module, configured to design a placement group splitting scheme based on the first number of placement groups in response to the feasibility assessment result being feasible, and obtain a placement group splitting scheme;
[0055] A splitting scheme execution module, used for creating a plurality of new placement groups according to the placement group splitting scheme;
[0056] The balanced distribution module is used to evenly distribute the plurality of new placement groups based on a progressive balancing method.
[0057] In another aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the following steps are implemented:
[0058] Get cluster operation information and calculate the number of the first placement group;
[0059] Performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result;
[0060] In response to the feasibility assessment result being feasible, designing a placement group splitting scheme based on the first number of placement groups to obtain a placement group splitting scheme;
[0061] According to the placement group splitting scheme, create several new placement groups;
[0062] Based on a progressive balancing method, the plurality of new placement groups are evenly distributed.
[0063] In another aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:
[0064] Get cluster operation information and calculate the number of the first placement group;
[0065] Performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result;
[0066] In response to the feasibility assessment result being feasible, designing a placement group splitting scheme based on the first number of placement groups to obtain a placement group splitting scheme;
[0067] According to the placement group splitting scheme, create several new placement groups;
[0068] Based on a progressive balancing method, the plurality of new placement groups are evenly distributed.
[0069] The above-mentioned placement group splitting and expansion method, device, computer equipment and storage medium can adapt to the dynamic changes of the cluster and flexibly adjust the number of placement groups by obtaining the operation information of the cluster to calculate the first placement group number, which is conducive to achieving reasonable resource allocation and load balancing after expansion; at the same time, by performing a feasibility assessment on the number of first placement groups, the feasibility of the expansion plan is ensured, and the waste of resources caused by excessive expansion and the excessive load caused by insufficient expansion are avoided, which is conducive to ensuring the optimal effect of the number and distribution of placement groups after expansion; in addition, a progressive balancing method is adopted to gradually migrate and allocate placement groups, which not only reduces the cluster performance fluctuation and resource waste caused by the simultaneous creation and migration of a large number of placement groups, but also realizes intelligent adjustment according to the real-time load and performance differences of each storage node, thereby improving the scalability and stability of the cluster. BRIEF DESCRIPTION OF THE DRAWINGS
[0070] Figure 1 This is an application environment diagram of a placement group splitting and capacity expansion method in one embodiment;
[0071] Figure 2 A schematic diagram of a process of a placement group splitting and capacity expansion method in one embodiment;
[0072] Figure 3 It is a structural block diagram of a placement group splitting and capacity expansion device in one embodiment;
[0073] Figure 4 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0074] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0075] The present application provides a placement group splitting and expansion method, which can be applied to Figure 1In the application environment shown. The terminal 102 communicates with the server 104 through the network to achieve management and monitoring of the storage cluster. The terminal 102 may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, and portable wearable devices, which are used to send management instructions to the server 104, receive cluster status information, and display expansion results, etc. The server 104 can be implemented with an independent server or a server cluster composed of multiple servers. The server 102 is responsible for obtaining cluster operation information, calculating the number of first placement groups, performing feasibility assessment, executing placement group splitting scheme design, creating new placement groups, and balancing the new placement groups based on a progressive balancing method. At the same time, the server 102 communicates with each object daemon in the storage cluster to coordinate and manage the splitting and migration process of the placement group.
[0076] In one embodiment, Figure 2 As shown, a placement group splitting and expansion method is provided, and the method is applied to Figure 1 The server 104 in the example is used as an example to illustrate, and the following steps are included:
[0077] Step 201, obtain cluster operation information, and calculate the number of first placement groups.
[0078] Specifically, storage pool information and cluster global information are obtained; the number of replicas and the total number of object daemons are obtained based on the storage pool information and the cluster global information, and the number of basic placement groups is calculated; historical load-related data is extracted from the cluster global information, and the number of basic placement groups is optimized based on the historical load-related data to obtain the first number of placement groups.
[0079] Step 202: Perform a feasibility assessment on the number of first placement groups to obtain a feasibility assessment result.
[0080] Specifically, a placement group expansion value is obtained according to the difference between the first placement group number and the current placement group number; based on the placement group expansion value, expansion value evaluation and predicted load evaluation are performed respectively; in response to the expansion value evaluation result being moderate expansion and the predicted load evaluation result being moderate load, the feasibility evaluation result is feasible.
[0081] Step 203: In response to the feasibility assessment result being feasible, a placement group splitting scheme is designed based on the first number of placement groups to obtain a placement group splitting scheme.
[0082] Specifically, in response to the feasibility assessment result being feasible, all object daemons in the cluster receive the first number of placement groups to perform local split calculations to obtain a placement group split plan; wherein the placement group split plan includes at least one of the following: a suitable split placement group, the number of placement groups to be split, and a split mapping relationship.
[0083] Step 204: Create several new placement groups according to the placement group splitting plan.
[0084] Specifically, according to the number of placement groups to be split, suitable split placement groups and split mapping relationships in the placement group splitting plan, splitting operations are performed on the suitable split placement groups in turn to generate several new placement groups; after the several new placement groups are created, data migration is performed, and data integrity and consistency checks are performed.
[0085] Step 205: Balance the distribution of the new placement groups based on a progressive balancing method.
[0086] Specifically, check the current load status of the cluster and select the object daemons with high load; adopt a progressive balancing method to gradually migrate the placement groups under the object daemons with high load and allocate them to the object daemons with low load.
[0087] In the above-mentioned placement group splitting and expansion method, the number of first placement groups is calculated by obtaining the operation information of the cluster, which can adapt to the dynamic changes of the cluster and flexibly adjust the number of placement groups, thereby facilitating the realization of reasonable resource allocation and load balancing after expansion; at the same time, by conducting a feasibility assessment on the number of first placement groups, the feasibility of the expansion plan is ensured, and the waste of resources caused by over-expansion and the excessive load caused by insufficient expansion are avoided, which is conducive to ensuring the optimal effect of the number and distribution of placement groups after expansion; in addition, a progressive balancing method is adopted to gradually migrate and allocate placement groups, which not only reduces the cluster performance fluctuation and resource waste caused by the simultaneous creation and migration of a large number of placement groups, but also realizes intelligent adjustment according to the real-time load and performance differences of each storage node, thereby improving the scalability and stability of the cluster.
[0088] In one embodiment, the cluster operation information includes: storage pool information, cluster global information;
[0089] Get cluster operation information, calculate the number of first placement groups, and also include:
[0090] Obtain storage pool information, where the storage pool information includes: number of copies;
[0091] Get cluster global information, including: total number of object daemons, historical load and performance data, and data growth rate;
[0092] According to the number of replicas and the total number of object daemons, the number of basic placement groups is obtained;
[0093] According to the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained;
[0094] The number of first placement groups is obtained by combining the theoretical number of first placement groups and the historical load optimization factor.
[0095] Specifically, this embodiment calculates the number of first placement groups by introducing storage pool information and cluster global information (such as the total number of object daemons, historical load, and data growth rate). The optimal expansion strategy can be comprehensively evaluated based on multi-dimensional information such as the number of replicas, historical load optimization factors, and the total number of object daemons to ensure that the dynamic adjustment of the number of placement groups matches the actual operating conditions, avoiding resource waste and load imbalance caused by a fixed number of placement groups, thereby improving the utilization of cluster resources and enhancing the scalability of the system.
[0096] In one embodiment, obtaining cluster operation information and calculating the number of first placement groups further includes:
[0097] Based on the number of replicas and the total number of object daemons, the number of basic placement groups is calculated based on the formula:
[0098]
[0099] , among which, PG num Indicates the number of basic placement groups, OSD count represents the total number of object daemons, R represents the number of replicas, and T represents the target placement group ratio for each object daemon;
[0100] Based on the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained based on the formula:
[0101]
[0102] , where Γ represents the historical load optimization factor, LOAD is a collection of system load and performance data, including time series data of multiple load dimensions, k represents the kth load dimension in LOAD, and α k represents the weight coefficient of the kth load dimension, f(k) is the characteristic statistical function of the kth load dimension, U k is the system threshold of the kth load dimension, δ represents the data growth rate, and β is the weight coefficient of the data growth rate;
[0103] Combining the theoretical number of first placement groups and the historical load optimization factor, the number of first placement groups is obtained based on the formula: PG opt =PG num ×Γ, where PG opt Indicates the number of the first placement group.
[0104] Specifically, in this embodiment, a formula is given to calculate the number of basic placement groups, and a historical load optimization factor is introduced to make the calculation of the number of placement groups more targeted; by considering the system's load history and performance data, and optimizing in combination with the data growth rate, it is ensured that the placement group splitting and expansion strategy is more forward-looking and reasonable. At the same time, the calculated number of first placement groups can better adapt to the actual situation of the cluster, realize refined expansion adjustment, and improve the scalability of the cluster.
[0105] In one embodiment, a feasibility assessment is performed on the number of first placement groups to obtain a feasibility assessment result, including:
[0106] Get cluster operation information, where the cluster operation information includes: the current number of placement groups and cluster configuration information;
[0107] According to the first placement group number and the current placement group number, obtain a placement group extension value;
[0108] Based on the placement group extension value, an extension value evaluation is performed to obtain an extension value evaluation result, wherein the extension value evaluation result includes at least one of the following: over-extension and moderate extension;
[0109] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, wherein the predicted load evaluation result includes at least one of the following: excessive load and moderate load;
[0110] In response to the predicted load assessment result being a moderate load, the feasibility assessment result is feasible;
[0111] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, including:
[0112] According to the cluster configuration information, obtain the current resource load and resource performance parameters;
[0113] Get the predicted resource load based on the current resource load and the placement group expansion value;
[0114] According to the resource performance parameters, a resource carrying threshold is obtained;
[0115] A predicted load evaluation is performed based on the resource carrying threshold and the predicted resource load. In response to the resource carrying threshold being greater than the predicted resource load, the predicted load evaluation result is a moderate load. Otherwise, the predicted load evaluation result is an excessive load.
[0116] It is worth noting that, based on the placement group extension value, the extension value evaluation is performed to obtain the extension value evaluation result, which further includes:
[0117] The placement group extension value is obtained according to the extension value calculation formula, where the extension value formula is: PG exp =PG opt -PG now , among which, PG exp Indicates the placement group extension value, PG opt Indicates the number of the first placement group, PG now Indicates the current number of placement groups;
[0118] When PG exp >0, indicating that the cluster needs to expand the placement group; when PG exp When ≤0, it means that the cluster does not need to expand the placement group;
[0119] Set the extension value threshold, denoted as U exp , which indicates the maximum number of placement groups that can be expanded at one time. It is set by the system administrator based on experience or historical data to avoid system instability or a sharp increase in resource consumption caused by expanding too many placement groups at one time;
[0120] When PG exp ≤U exp When , the placement group expansion value is within the expansion value threshold, and the expansion value evaluation result is moderate expansion;
[0121] When PG exp >U exp , that is, the placement group expansion value exceeds the expansion value threshold, and the expansion value evaluation result is over-expansion.
[0122] It is worth noting that in response to the expansion value evaluation result being over-expansion, a step-by-step placement group expansion strategy is adopted, that is, the placement group is gradually expanded to reduce the instantaneous pressure on system resources and ensure stability, including the following steps:
[0123] The placement group extension value is divided to obtain several placement group incremental extension values, wherein the several placement group incremental extension values all satisfy the formula:
[0124]
[0125] Among them, ΔPG i Indicates the incremental expansion value of the i-th placement group, that is, the number of placement groups expanded for the i-th time; Indicates the total number of placement groups that have been expanded in the previous i-1 expansions; i+1 is the proportional factor of the decreasing division, indicating that the expansion value decreases by half, one third, one quarter, etc.
[0126] According to the obtained multiple placement group expansion values, subsequent steps are performed in sequence, including placement group splitting scheme design, new placement group creation and balanced distribution;
[0127] The expansion values of the original over-expanded placement groups are all expanded, or the expansion values of the remaining placement groups are extremely small, or the predicted load assessment result during a certain expansion is excessive load. In response to at least one of the above events, the step-by-step placement group expansion strategy is executed.
[0128] It is worth noting that this formulaic strategy of decreasing segmentation can ensure that the expansion amount of each placement group will not exceed the set maximum threshold, and the system load pressure can be alleviated by gradually decreasing the expansion ratio to ensure the robustness of the expansion.
[0129] Specifically, this embodiment performs a feasibility assessment before executing the expansion operation, obtains the current number of placement groups in the cluster, and performs expansion value assessment and predicted load assessment in combination with the number of first placement groups. This can prevent over-expansion or under-expansion, ensure that the expansion strategy is reasonable and feasible, reduce the risk of load imbalance after system expansion, and ensure system performance and stability.
[0130] In one embodiment, in response to the feasibility assessment result being feasible, a placement group splitting scheme is designed to obtain a placement group splitting scheme, including:
[0131] Broadcast the first placement group number to all object daemons;
[0132] The object daemon performs local split calculation based on the number of the first placement group to obtain the number of placement groups that need to be split;
[0133] The object daemon checks the appropriateness of the placement group division according to its own storage status and selects the appropriate placement group for splitting;
[0134] Based on the number of placement groups that need to be split and the placement groups that are suitable for splitting, a split mapping relationship is established to obtain a placement group splitting plan.
[0135] It is worth noting that the steps of local split calculation include:
[0136] The object daemon compares the current number of placement groups with the number of the first placement groups received to obtain the number of placement groups to be split;
[0137] The split coefficient is obtained based on the number of placement groups to be split, that is, the multiples of each existing placement group that needs to be split are calculated. Generally, the placement group split is performed in multiples, preferably multiples of 2;
[0138] Based on the split coefficient, the object daemon decides whether to split some placement groups twice or more to ensure that the number of placement groups can accurately meet the number of the first placement groups.
[0139] It is worth noting that the steps of checking the suitability of the placement group include:
[0140] Perform an object daemon load check to obtain the resource load of the current object daemon, including CPU, memory, I / O performance, and disk occupancy. If the current object daemon load is too high, placement group splitting will increase the load and cause performance problems. Therefore, the heavily loaded object daemon will limit its placement group splitting operation.
[0141] Perform a placement group status check to obtain placement group status information, including data replica status, whether it is active, and whether there are delays or other problems. Only when the placement group is healthy and active is it suitable for splitting;
[0142] Check the storage capacity of the object daemon. Since the placement group split will generate additional data and storage overhead, it is necessary to check the storage capacity of the current object daemon. If the capacity is close to the upper limit, the placement group split operation will be limited or postponed.
[0143] Check data distribution. The splitting of placement groups needs to take into account the current data distribution to prevent excessive concentration of data in certain object daemons. If the data is relatively evenly distributed, other placement groups suitable for splitting can be selected first.
[0144] Based on the above check results, the placement group that passes the appropriateness check is marked as a suitable split placement group for splitting operation.
[0145] It is worth noting that the steps for establishing the placement group split mapping relationship include:
[0146] Combine the number of placement groups that need to be split and the number of placement groups that are suitable for splitting, and match the calculated number of placement groups that need to be split with the number of placement groups that are suitable for splitting to ensure that the split can be completed as needed;
[0147] Determine the split multiple of each placement group based on the split coefficient calculated by local split;
[0148] A mapping relationship table is established for each placement group that needs to be split, and the table records the mapping relationship between each original placement group and its corresponding placement group after splitting, so as to obtain a placement group splitting plan, wherein the mapping relationship table at least includes: the ID of the original placement group, the ID of the newly generated placement group, the split multiple, and the replica allocation strategy of the new placement group;
[0149] Synchronize the placement group split plan to other object daemons in the cluster to ensure that the entire cluster remains consistent and performs placement group splits according to the established plan.
[0150] Specifically, this embodiment adopts a distributed computing method to broadcast the first placement group number to all object daemons, allowing them to perform local split calculations. Combined with storage status checking and the establishment of split mapping relationships, it can achieve targeted and efficient placement group splitting, thereby effectively reducing the performance bottleneck brought about by centralized expansion solutions, and reducing the impact of data migration on system performance through localized operations, thereby improving the speed and efficiency of expansion.
[0151] In one embodiment, according to the placement group splitting scheme, several new placement groups are created, including:
[0152] According to the placement group splitting plan, the number of placement groups to be split, the suitable placement groups to be split, and the splitting mapping relationship are obtained;
[0153] Based on the split mapping relationship, split the suitable split placement groups in turn to generate new placement groups, where the suitable split placement groups are recorded as parent placement groups, and the corresponding new placement groups are recorded as child placement groups. The sum of the number of child placement groups generated by all parent placement groups is equal to the number of placement groups to be split;
[0154] Based on the self-managed raw device space, migrate the data in the parent placement group to the child placement group, and perform data integrity and consistency checks.
[0155] Specifically, this embodiment uses self-managed raw device space to migrate the data of the parent placement group to the child placement group, ensuring data integrity and consistency checks, avoiding the performance overhead caused by traditional file system management, making the data migration process more efficient, reducing system resource consumption, and improving the overall efficiency of placement group splitting and data balancing.
[0156] In one embodiment, a plurality of new placement groups are evenly distributed based on a progressive balancing method, including:
[0157] Get the current placement group distribution status of the cluster and obtain the current object daemon load ratio, where the current object daemon load ratio represents the ratio of the number of placement groups of the current object daemon load to the storage capacity of the current object daemon, and is used to reflect the relative load of the object daemon;
[0158] Get the amount of data stored by the current object daemon process in the cluster, and combine it with the current object daemon process load ratio to determine whether there is an object daemon process with a high load.
[0159] According to the actual cluster usage requirements, a storage data volume threshold and a load ratio threshold are set. When the storage data volume of an object daemon exceeds the storage data volume threshold and the load ratio of the object daemon also exceeds the load ratio threshold, it is considered to be high load.
[0160] In response to the existence of an object daemon process being under high load, the placement groups under the object daemon process under high load are gradually migrated out through the CRUSH algorithm and allocated to the object daemon process under low load.
[0161] Specifically, this embodiment obtains the current placement group distribution status and object daemon load ratio of the cluster, gradually migrates the placement groups on the high-load object daemon to the low-load object daemon, and adopts a progressive balancing method to effectively avoid performance fluctuations caused by one-time large-scale data migration, ensure the load balance of the cluster after expansion, and further improve resource utilization and the overall performance of the cluster.
[0162] It should be understood that although Figure 2 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 2 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.
[0163] In one embodiment, Figure 3 As shown, a placement group splitting and capacity expansion device is provided, comprising: a first placement group quantity calculation module, a feasibility assessment module, a splitting scheme generation module, a splitting scheme execution module and a balanced distribution module, wherein:
[0164] A first placement group quantity calculation module, used to obtain cluster operation information and obtain the first placement group quantity by calculation;
[0165] A feasibility assessment module, used to perform a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result;
[0166] A splitting scheme generating module is used for designing a placement group splitting scheme based on the number of first placement groups in response to the feasibility assessment result being feasible, and obtaining a placement group splitting scheme;
[0167] A splitting scheme execution module, used for creating a number of new placement groups according to the placement group splitting scheme;
[0168] The balanced distribution module is used to evenly distribute a number of new placement groups based on a progressive balancing method.
[0169] In one embodiment, the first placement group data calculation module is used to obtain cluster operation information, wherein the cluster operation information includes: storage pool information, cluster global information; obtaining cluster operation information, calculating the number of first placement groups, and further comprising: obtaining storage pool information, wherein the storage pool information includes: the number of replicas; obtaining cluster global information, wherein the cluster global information includes: the total number of object daemons, historical load and performance data, and data growth rate; obtaining the basic placement group number based on the number of replicas and the total number of object daemons; obtaining the historical load optimization factor based on the historical load and performance data, as well as the data growth rate; and obtaining the first placement group number by combining the theoretical first placement group number and the historical load optimization factor.
[0170] In one embodiment, the feasibility assessment module is used to obtain cluster operation information, wherein the cluster operation information includes: the current number of placement groups, cluster configuration information; obtaining a placement group extension value based on the first number of placement groups and the current number of placement groups; performing an extension value assessment based on the placement group extension value to obtain an extension value assessment result, wherein the extension value assessment result includes at least one of the following: over-extension, moderate expansion; in response to the extension value assessment result being moderate expansion, performing a predicted load assessment based on the placement group extension value to obtain a predicted load assessment result, wherein the predicted load assessment result includes at least one of the following: overload, moderate load; in response to the predicted load assessment result being moderate load, the feasibility assessment result is feasible.
[0171] In one embodiment, the feasibility assessment module is also used to obtain the current resource load and resource performance parameters based on the cluster configuration information; obtain the predicted resource load based on the current resource load and the placement group extension value; obtain the resource carrying threshold based on the resource performance parameters; perform a predicted load assessment based on the resource carrying threshold and the predicted resource load, and in response to the resource carrying threshold being greater than the predicted resource load, the predicted load assessment result is a moderate load, otherwise, the predicted load assessment result is an excessive load.
[0172] In one embodiment, the splitting scheme generating module is used to broadcast the first placement group number to all object daemons; the object daemons perform local splitting calculations based on the first placement group number to obtain the number of placement groups that need to be split; the object daemons perform placement group appropriateness checks based on their own storage states to screen out placement groups that are suitable for splitting; a splitting mapping relationship is established based on the number of placement groups that need to be split and the placement groups that are suitable for splitting to obtain a placement group splitting scheme.
[0173] In one embodiment, the splitting scheme execution module is used to obtain the number of placement groups to be split, suitable splitting placement groups and splitting mapping relationships according to the placement group splitting scheme; based on the splitting mapping relationships, splitting operations are performed on the suitable splitting placement groups in sequence to generate new placement groups, wherein the suitable splitting placement groups are recorded as parent placement groups, and the corresponding generated new placement groups are recorded as child placement groups, and the sum of the number of child placement groups generated by all parent placement groups is equal to the number of placement groups to be split; based on the self-managed raw device space, data in the parent placement groups are migrated to the child placement groups, and data integrity and consistency checks are performed.
[0174] In one embodiment, the balanced distribution module is used to obtain the current placement group distribution status of the cluster and obtain the current object daemon load ratio; obtain the amount of data stored in the current object daemon of the cluster, and determine whether there is an object daemon under high load in combination with the current object daemon load ratio; in response to the existence of an object daemon under high load, the CRUSH algorithm is used to gradually migrate out the placement groups under the object daemon under high load and allocate them to the object daemon under low load.
[0175] For the specific definition of the placement group splitting and capacity expansion device, please refer to the definition of the placement group splitting and capacity expansion method above, which will not be repeated here. The various modules in the above-mentioned placement group splitting and capacity expansion device can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
[0176] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 4 As shown. The computer device includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store placement group split expansion data. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a placement group split expansion method is implemented.
[0177] Those skilled in the art will understand that Figure 4The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0178] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program:
[0179] Get cluster operation information and calculate the number of the first placement group;
[0180] Performing a feasibility assessment on the number of first placement groups to obtain a feasibility assessment result;
[0181] In response to the feasibility assessment result being feasible, designing a placement group splitting plan based on the first number of placement groups to obtain a placement group splitting plan;
[0182] Create several new placement groups according to the placement group splitting plan;
[0183] Based on the progressive balancing method, several new placement groups are evenly distributed.
[0184] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0185] Get cluster operation information and calculate the number of first placement groups, including:
[0186] Obtain storage pool information, where the storage pool information includes: number of copies;
[0187] Get cluster global information, including: total number of object daemons, historical load and performance data, and data growth rate;
[0188] According to the number of replicas and the total number of object daemons, the number of basic placement groups is obtained;
[0189] According to the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained;
[0190] The number of first placement groups is obtained by combining the theoretical number of first placement groups and the historical load optimization factor.
[0191] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0192] Based on the number of replicas and the total number of object daemons, the number of basic placement groups is calculated based on the formula:
[0193]
[0194] , among which, PG num Indicates the number of basic placement groups, OSD count represents the total number of object daemons, R represents the number of replicas, and T represents the target placement group ratio for each object daemon;
[0195] Based on the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained based on the formula:
[0196]
[0197] , where Γ represents the historical load optimization factor, LOAD is a collection of system load and performance data, including time series data of multiple load dimensions, k represents the kth load dimension in LOAD, and α k represents the weight coefficient of the kth load dimension, f(k) is the characteristic statistical function of the kth load dimension, U k is the system threshold of the kth load dimension, δ represents the data growth rate, and β is the weight coefficient of the data growth rate;
[0198] Combining the theoretical number of first placement groups and the historical load optimization factor, the number of first placement groups is obtained based on the formula: PG opt =PG num ×Γ, where PG opt Indicates the number of the first placement group.
[0199] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0200] Get cluster operation information, where the cluster operation information includes: the current number of placement groups and cluster configuration information;
[0201] According to the first placement group number and the current placement group number, obtain a placement group extension value;
[0202] Based on the placement group extension value, an extension value evaluation is performed to obtain an extension value evaluation result, wherein the extension value evaluation result includes at least one of the following: over-extension and moderate extension;
[0203] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, wherein the predicted load evaluation result includes at least one of the following: excessive load and moderate load;
[0204] In response to the predicted load assessment result being a moderate load, the feasibility assessment result is feasible;
[0205] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, including:
[0206] According to the cluster configuration information, obtain the current resource load and resource performance parameters;
[0207] Get the predicted resource load based on the current resource load and the placement group expansion value;
[0208] According to the resource performance parameters, a resource carrying threshold is obtained;
[0209] A predicted load evaluation is performed based on the resource carrying threshold and the predicted resource load. In response to the resource carrying threshold being greater than the predicted resource load, the predicted load evaluation result is a moderate load. Otherwise, the predicted load evaluation result is an excessive load.
[0210] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0211] Broadcast the first placement group number to all object daemons;
[0212] The object daemon performs local split calculation based on the number of the first placement group to obtain the number of placement groups that need to be split;
[0213] The object daemon checks the appropriateness of the placement group division according to its own storage status and selects the appropriate placement group for splitting;
[0214] Based on the number of placement groups that need to be split and the placement groups that are suitable for splitting, a split mapping relationship is established to obtain a placement group splitting plan.
[0215] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0216] According to the placement group splitting plan, the number of placement groups to be split, the suitable placement groups to be split, and the splitting mapping relationship are obtained;
[0217] Based on the split mapping relationship, split the suitable split placement groups in turn to generate new placement groups, where the suitable split placement groups are recorded as parent placement groups, and the corresponding new placement groups are recorded as child placement groups. The sum of the number of child placement groups generated by all parent placement groups is equal to the number of placement groups to be split;
[0218] Based on the self-managed raw device space, migrate the data in the parent placement group to the child placement group, and perform data integrity and consistency checks.
[0219] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0220] Get the current placement group distribution status of the cluster and the current object daemon load ratio;
[0221] Obtain the amount of data stored by the current object daemon process in the cluster, and determine whether any object daemon process is under high load based on the current object daemon process load ratio;
[0222] In response to the existence of an object daemon process being under high load, the placement groups under the object daemon process under high load are gradually migrated out through the CRUSH algorithm and allocated to the object daemon process under low load.
[0223] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:
[0224] Get cluster operation information and calculate the number of the first placement group;
[0225] Performing a feasibility assessment on the number of first placement groups to obtain a feasibility assessment result;
[0226] In response to the feasibility assessment result being feasible, designing a placement group splitting plan based on the first number of placement groups to obtain a placement group splitting plan;
[0227] Create several new placement groups according to the placement group splitting plan;
[0228] Based on the progressive balancing method, several new placement groups are evenly distributed.
[0229] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0230] Get cluster operation information and calculate the number of first placement groups, including:
[0231] Obtain storage pool information, where the storage pool information includes: number of copies;
[0232] Get cluster global information, including: total number of object daemons, historical load and performance data, and data growth rate;
[0233] According to the number of replicas and the total number of object daemons, the number of basic placement groups is obtained;
[0234] According to the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained;
[0235] The number of first placement groups is obtained by combining the theoretical number of first placement groups and the historical load optimization factor.
[0236] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0237] Based on the number of replicas and the total number of object daemons, the number of basic placement groups is calculated based on the formula:
[0238]
[0239] , among which, PG num Indicates the number of basic placement groups, OSD count represents the total number of object daemons, R represents the number of replicas, and T represents the target placement group ratio for each object daemon;
[0240] Based on the historical load and performance data, as well as the data growth rate, the historical load optimization factor is obtained based on the formula:
[0241]
[0242] , where Γ represents the historical load optimization factor, LOAD is a collection of system load and performance data, including time series data of multiple load dimensions, k represents the kth load dimension in LOAD, and α k represents the weight coefficient of the kth load dimension, f(k) is the characteristic statistical function of the kth load dimension, U k is the system threshold of the kth load dimension, δ represents the data growth rate, and β is the weight coefficient of the data growth rate;
[0243] Combining the theoretical number of first placement groups and the historical load optimization factor, the number of first placement groups is obtained based on the formula: PG opt =PG num ×Γ, where PG opt Indicates the number of the first placement group.
[0244] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0245] Get cluster operation information, where the cluster operation information includes: the current number of placement groups and cluster configuration information;
[0246] According to the first placement group number and the current placement group number, obtain a placement group extension value;
[0247] Based on the placement group extension value, an extension value evaluation is performed to obtain an extension value evaluation result, wherein the extension value evaluation result includes at least one of the following: over-extension and moderate extension;
[0248] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, wherein the predicted load evaluation result includes at least one of the following: excessive load and moderate load;
[0249] In response to the predicted load assessment result being a moderate load, the feasibility assessment result is feasible;
[0250] In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, including:
[0251] According to the cluster configuration information, obtain the current resource load and resource performance parameters;
[0252] Get the predicted resource load based on the current resource load and the placement group expansion value;
[0253] According to the resource performance parameters, a resource carrying threshold is obtained;
[0254] A predicted load evaluation is performed based on the resource carrying threshold and the predicted resource load. In response to the resource carrying threshold being greater than the predicted resource load, the predicted load evaluation result is a moderate load. Otherwise, the predicted load evaluation result is an excessive load.
[0255] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0256] Broadcast the first placement group number to all object daemons;
[0257] The object daemon performs local split calculation based on the number of the first placement group to obtain the number of placement groups that need to be split;
[0258] The object daemon checks the appropriateness of the placement group division according to its own storage status and selects the appropriate placement group for splitting;
[0259] Based on the number of placement groups that need to be split and the placement groups that are suitable for splitting, a split mapping relationship is established to obtain a placement group splitting plan.
[0260] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0261] According to the placement group splitting plan, the number of placement groups to be split, the suitable placement groups to be split, and the splitting mapping relationship are obtained;
[0262] Based on the split mapping relationship, split the suitable split placement groups in turn to generate new placement groups, where the suitable split placement groups are recorded as parent placement groups, and the corresponding new placement groups are recorded as child placement groups. The sum of the number of child placement groups generated by all parent placement groups is equal to the number of placement groups to be split;
[0263] Based on the self-managed raw device space, migrate the data in the parent placement group to the child placement group, and perform data integrity and consistency checks.
[0264] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0265] Get the current placement group distribution status of the cluster and the current object daemon load ratio;
[0266] Obtain the amount of data stored by the current object daemon process in the cluster, and determine whether any object daemon process is under high load based on the current object daemon process load ratio;
[0267] In response to the existence of an object daemon process being under high load, the placement groups under the object daemon process under high load are gradually migrated out through the CRUSH algorithm and allocated to the object daemon process under low load.
[0268] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in the present application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
[0269] The technical features of the above embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0270] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.
Claims
1. A placement group splitting and capacity expansion method, characterized in that: include: Get cluster operation information and calculate the number of the first placement group; Performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result; In response to the feasibility assessment result being feasible, designing a placement group splitting scheme based on the first number of placement groups to obtain a placement group splitting scheme; According to the placement group splitting scheme, create several new placement groups; Based on a progressive balancing method, the plurality of new placement groups are evenly distributed.
2. A placement group splitting and capacity expansion method according to claim 1, characterized in that: The cluster operation information includes: storage pool information and cluster global information; Get cluster operation information and calculate the number of first placement groups, including: Acquire the storage pool information, wherein the storage pool information includes: the number of copies; Acquire the cluster global information, wherein the cluster global information includes: the total number of object daemons, historical load and performance data, and data growth rate; Obtaining the number of basic placement groups according to the number of replicas and the total number of object daemons; Obtaining a historical load optimization factor according to the historical load and performance data, and a data growth rate; The theoretical first placement group quantity and the historical load optimization factor are combined to obtain the first placement group quantity.
3. A placement group splitting and capacity expansion method according to claim 2, characterized in that: Obtaining cluster operation information and calculating the number of first placement groups further includes: According to the number of replicas and the total number of object daemons, the number of basic placement groups is calculated based on the formula: , among which, PG num Indicates the number of basic placement groups, OSD count represents the total number of object daemons, R represents the number of replicas, and T represents the target placement group ratio for each object daemon; According to the historical load and performance data, as well as the data growth rate, a historical load optimization factor is obtained, based on the formula: , where Γ represents the historical load optimization factor, LOAD is a collection of system load and performance data, including time series data of multiple load dimensions, k represents the kth load dimension in LOAD, α k represents the kth load dimension weight coefficient, f(k) is the characteristic statistical function of the kth load dimension, and U k is the system threshold of the kth load dimension, δ represents the data growth rate, and β is the weight coefficient of the data growth rate; Combining the theoretical first placement group number and the historical load optimization factor, the first placement group number is obtained based on the formula: PG opt =PG num ×Γ, where PG opt Indicates the number of the first placement group.
4. The method for expanding capacity by splitting a placement group according to claim 1, characterized in that: Performing a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result includes: Obtain cluster operation information, wherein the cluster operation information includes: the current number of placement groups and cluster configuration information; Obtaining a placement group extension value according to the first placement group quantity and the current placement group quantity; Based on the placement group extension value, an extension value evaluation is performed to obtain an extension value evaluation result, wherein the extension value evaluation result includes at least one of the following: over-extension and moderate extension; In response to the expansion value evaluation result being moderate expansion, a predicted load evaluation is performed based on the placement group expansion value to obtain a predicted load evaluation result, wherein the predicted load evaluation result includes at least one of the following: excessive load and moderate load; In response to the predicted load evaluation result being a moderate load, the feasibility evaluation result being feasible; In response to the expansion value evaluation result being moderate expansion, performing a predicted load evaluation based on the placement group expansion value to obtain a predicted load evaluation result, including: According to the cluster configuration information, current resource load and resource performance parameters are obtained; Obtaining a predicted resource load according to the current resource load and the placement group expansion value; Obtaining a resource carrying threshold according to the resource performance parameter; A predicted load evaluation is performed according to the resource carrying threshold and the predicted resource load. In response to the resource carrying threshold being greater than the predicted resource load, the predicted load evaluation result is a moderate load. Otherwise, the predicted load evaluation result is an excessive load.
5. The method for expanding capacity by splitting a placement group according to claim 1, characterized in that: In response to the feasibility assessment result being feasible, a placement group splitting scheme is designed to obtain a placement group splitting scheme, including: Broadcasting the first placement group number to all object daemons; The object daemon performs local split calculation according to the first number of placement groups to obtain the number of placement groups that need to be split; The object daemon performs a placement group appropriateness check based on its own storage status and selects a placement group that is suitable for splitting; In combination with the number of placement groups to be split and the placement groups suitable for splitting, a split mapping relationship is established to obtain the placement group splitting solution.
6. A placement group splitting and capacity expansion method according to claim 5, characterized in that: According to the placement group splitting scheme, several new placement groups are created, including: According to the placement group splitting scheme, the number of the placement groups to be split, the suitable splitting placement groups and the splitting mapping relationship are obtained; Based on the split mapping relationship, split the suitable split placement groups in sequence to generate new placement groups, wherein the suitable split placement groups are recorded as parent placement groups, and the corresponding new placement groups are recorded as child placement groups, and the sum of the number of the child placement groups generated by all the parent placement groups is equal to the number of the placement groups to be split; Migrate the data in the parent placement group to the child placement group, and perform data integrity and consistency checks.
7. A placement group splitting and capacity expansion method according to claim 1, characterized in that: Based on a progressive balancing method, the plurality of new placement groups are evenly distributed, including: Get the current placement group distribution status of the cluster and the current object daemon load ratio; Obtain the amount of data stored in the current object daemon process of the cluster, and determine whether there is an object daemon process under high load based on the current object daemon process load ratio; In response to the existence of an object daemon process being under high load, the placement groups under the object daemon process under high load are gradually migrated out through the CRUSH algorithm and allocated to the object daemon process under low load.
8. A placement group splitting and capacity expansion device, characterized in that: The device comprises: A first placement group quantity calculation module, used to obtain cluster operation information and obtain the first placement group quantity by calculation; A feasibility assessment module, used to perform a feasibility assessment on the number of the first placement groups to obtain a feasibility assessment result; a splitting scheme generating module, configured to design a placement group splitting scheme based on the first number of placement groups in response to the feasibility assessment result being feasible, and obtain a placement group splitting scheme; A splitting scheme execution module, used for creating a plurality of new placement groups according to the placement group splitting scheme; The balanced distribution module is used to evenly distribute the plurality of new placement groups based on a progressive balancing method.
9. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
