A data processing method, device, data storage system and electronic device
By performing load requirements analysis and processing capability detection on the storage controller in the data storage device, and performing two adjustments, the problem of load imbalance between storage controllers is solved and the equipment performance is improved.
Patent Information
- Application Number
- CN202411722174.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-28
- Publication Date
- 2025-07-04
- Estimated Expiration
- 2044-11-28
AI Technical Summary
In the prior art, the data storage devices of multiple storage controllers have load imbalance problems, resulting in performance degradation.
By performing load requirements analysis and current data processing capability detection on the to be processed data packets, two adjustments are made to achieve load balancing of each storage controller.
It improves the performance of data storage devices, ensures the load balancing of data processing of each storage controller, and improves the overall working efficiency of the device.
Smart Images

Figure CN119201798B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular, to a data processing method, apparatus, data storage system, and electronic device. Background Art
[0002] With the continuous upgrading of data storage devices, the bandwidth resources of storage devices, the number of supported external cards, and the number of hard disks are continuously increasing, and the load of data storage devices is also increasing accordingly. Therefore, how to achieve load balancing of data storage devices has become the focus of research.
[0003] In related technologies, when a data storage device includes multiple storage controllers, the data to be stored is usually allocated by means of round-robin distribution of storage controllers.
[0004] However, due to the different data processing capabilities of different storage controllers and the different load requirements of different data, the existing load distribution method still has the defect of uneven load between storage controllers. Therefore, there is an urgent need for a data processing method that can achieve load balancing of each controller, which is of great significance for improving the performance of data storage devices. Summary of the Invention
[0005] This application provides a data processing method, apparatus, data storage system, and electronic device to solve the defects such as uneven load between storage controllers in related technologies.
[0006] The first aspect of this application provides a data processing method, including:
[0007] Obtain initial data packets to be sent and stored in each storage controller of the data storage device;
[0008] For any one of the storage controllers, perform load requirement analysis on the initial data packets to be processed by the storage controller to obtain a load analysis result corresponding to each storage controller;
[0009] According to the load analysis results corresponding to each storage controller, perform a first adjustment on the initial data packets to be processed, so that each storage controller obtains intermediate data packets to be processed;
[0010] Detect the current data processing capabilities of each storage controller;
[0011] According to the current data processing capabilities of each storage controller, perform a second adjustment on the intermediate data packets to be processed, so that each storage controller obtains target data packets to be processed;
[0012] Based on the storage controller, perform data processing on the target data packets to be processed.
[0013] In an alternative embodiment, the obtaining of the initial packets to be processed and stored in each storage controller of the data storage device includes:
[0014] Obtaining the data to be sent and stored in the data storage device to obtain an overall data packet;
[0015] Dividing the overall data packet into a corresponding number of initial packets to be processed according to the number of storage controllers in the data storage device;
[0016] Allocating the initial packets to be processed to the corresponding storage controllers.
[0017] In an alternative embodiment, the obtaining of the data to be sent and stored in the data storage device to obtain an overall data packet includes:
[0018] Obtaining the data to be sent and stored in the data storage device;
[0019] When a packaging instruction is obtained, summarizing the obtained data to be sent and stored in the data storage device to obtain a data summarization result;
[0020] Performing data packaging according to the data summarization result to obtain an overall data packet;
[0021] Wherein, the packaging instruction is issued according to a preset period and a preset packaging principle.
[0022] In an alternative embodiment, the performing of data packaging according to the data summarization result to obtain an overall data packet includes:
[0023] Obtaining a preset data volume threshold;
[0024] Judging whether the total amount of data represented by the data summarization result reaches the preset data volume threshold;
[0025] When the total amount of data represented by the data summarization result reaches the preset data volume threshold, performing data packaging on the data to be sent and stored in the data storage device to obtain an overall data packet.
[0026] In an alternative embodiment, dividing the overall data packet into a corresponding number of initial packets to be processed according to the number of storage controllers in the data storage device includes:
[0027] Determining a target time period according to the data transmission time requirement corresponding to the preset data volume threshold;
[0028] Split the target time period according to the number of storage controllers in the data storage device to obtain a time period splitting result;
[0029] Divide the overall data packet into the corresponding number of initial data packets to be processed according to the time period splitting result;
[0030] Among them, the acquisition times of the data to be processed in the same initial data packet to be processed are continuous.
[0031] In an optional implementation manner, for any one of the storage controllers, perform a load demand analysis on the initial data packet to be processed of the storage controller to obtain a load analysis result corresponding to each storage controller, including:
[0032] For any one of the storage controllers, determine the load demand of each data to be processed according to the complexity of each data to be processed in the initial data packet to be processed of the storage controller;
[0033] According to the load demand of each data to be processed, the load analysis result corresponding to the storage controller.
[0034] In an optional implementation manner, the first adjustment of the initial data packet to be processed according to the load analysis result corresponding to each storage controller to enable each storage controller to obtain an intermediate data packet to be processed includes:
[0035] According to the load analysis result corresponding to each storage controller, perform a load level division on the data to be processed in the initial data packet to be processed to obtain a load level division result of the data to be processed corresponding to each storage controller;
[0036] According to the load level division result of the data to be processed corresponding to each storage controller, perform a first adjustment on the initial data packet to be processed to enable each storage controller to obtain an intermediate data packet to be processed.
[0037] In an optional implementation manner, the first adjustment of the initial data packet to be processed according to the load level division result of the data to be processed corresponding to each storage controller to enable each storage controller to obtain an intermediate data packet to be processed includes:
[0038] For any one of the storage controllers, determine the data volume of the data to be stored in each load level according to the load level division result of the data to be processed corresponding to the storage controller;
[0039] For any one of the load levels, divide the data volume of the data to be stored in the load level equally according to the number of storage controllers in the data storage device to obtain the data equal share amount of each load level;
[0040] Perform a first adjustment on the initial data packet to be processed according to the data average component of each load level, so that each storage controller obtains an intermediate data packet to be processed.
[0041] In an alternative embodiment, the performing a first adjustment on the initial data packet to be processed according to the data average component of each load level, so that each storage controller obtains an intermediate data packet to be processed, includes:
[0042] For any one of the storage controllers, according to the data average component of each load level corresponding to the storage controller, evenly distribute the data to be processed of each load level to each storage controller, so as to perform a first adjustment on the initial data packet to be processed of each storage controller, and make each storage controller obtain an intermediate data packet to be processed.
[0043] In an alternative embodiment, the detecting the current data processing capabilities of each storage controller includes:
[0044] Obtain the current operating parameters and current status information of each storage controller;
[0045] Determine the current data processing capabilities of each storage controller according to the current operating parameters and current status information of each storage controller.
[0046] In an alternative embodiment, the determining the current data processing capabilities of each storage controller according to the current operating parameters and current status information of each storage controller includes:
[0047] For any one of the storage controllers, determine the simulation result of the data processing capabilities of the storage controller according to the current operating parameters and current status information of the storage controller;
[0048] Determine the current data processing capabilities of each storage controller according to the simulation results of the data processing capabilities of each storage controller;
[0049] The current operating parameters of the storage controller include the current rate value, and the current status information of the storage controller includes at least the health status index of the storage controller.
[0050] In an alternative embodiment, the for any one of the storage controllers, determine the simulation result of the data processing capabilities of the storage controller according to the current operating parameters and current status information of the storage controller, includes:
[0051] Based on the network links between the storage controllers, share the current operating parameters and current status information between the storage controllers, so that each storage controller can obtain the current operating parameters and current status information of all the storage controllers;
[0052] Based on any one of the storage controllers, simulate the data processing flows of the storage controllers according to the obtained current operating parameters and current status information of all the storage controllers, so that the storage controller can obtain a simulated result data set; wherein, the simulated result data set includes the simulation results of the data processing flows of the storage controllers;
[0053] Summarize the simulated result data sets obtained by each storage controller to obtain the simulation results of the data processing capabilities of the storage controllers.
[0054] In an alternative embodiment, the second adjustment of the intermediate data packet to be processed according to the current data processing capabilities of the storage controllers, so that each storage controller can obtain a target data packet to be processed, includes:
[0055] Determine the second adjustment weight coefficients of the storage controllers according to the current data processing capabilities of the storage controllers; wherein, the second adjustment weight coefficients are positively correlated with the current data processing capabilities;
[0056] Perform a second adjustment on the intermediate data packet to be processed of each storage controller according to the second adjustment weight coefficients of the storage controllers, so that each storage controller can obtain a target data packet to be processed.
[0057] In an alternative embodiment, the data processing of the target data packet to be processed based on the storage controller includes:
[0058] For any one of the storage controllers, determine the current module processing capabilities of the internal processing modules according to the current processing parameters of the internal processing modules in the storage controller;
[0059] Perform a normalization process on the current module processing capabilities of the internal processing modules to obtain the current module equivalent processing capabilities of the internal processing modules;
[0060] Determine the target channel numbers of the internal processing modules according to the current module equivalent processing capabilities of the internal processing modules, so that each processing module processes the target data packet to be processed according to the target channel numbers.
[0061] In an alternative embodiment, the determination of the target channel numbers of the internal processing modules according to the current module equivalent processing capabilities of the internal processing modules includes:
[0062] Determine multiple groups of candidate channel allocation combinations that meet the preset internal module load balancing constraint conditions according to the current module equivalent processing capabilities of the internal processing modules;
[0063] Use the candidate channel allocation combination with the largest cumulative value of the target channel numbers as the target channel allocation combination;
[0064] Wherein, the target channel allocation combination includes the target channel numbers of the internal processing modules, and the preset internal module load balancing constraint conditions include that the ratio of the target channel number of each internal processing module to the total channel number is equal.
[0065] The second aspect of the present application provides a data processing device, including:
[0066] An acquisition module, configured to acquire initial to-be-processed data packets to be sent and stored in each storage controller of a data storage device;
[0067] An analysis module, configured to perform load demand analysis on the initial to-be-processed data packets of any one of the storage controllers to obtain load analysis results corresponding to the storage controllers;
[0068] A first adjustment module, configured to perform a first adjustment on the initial to-be-processed data packets according to the load analysis results corresponding to the storage controllers, so that each storage controller obtains intermediate to-be-processed data packets;
[0069] A detection module, configured to detect the current data processing capabilities of the storage controllers;
[0070] A second adjustment module, configured to perform a second adjustment on the intermediate to-be-processed data packets according to the current data processing capabilities of the storage controllers, so that each storage controller obtains target to-be-processed data packets;
[0071] A processing module, configured to perform data processing on the target to-be-processed data packets based on the storage controllers.
[0072] The third aspect of the present application provides a data storage system, including: a host side and a data storage device, where the data storage device includes a plurality of storage controllers;
[0073] The host side allocates target to-be-processed data packets to each storage controller in the data storage device based on the method described in the first aspect above and various possible designs of the first aspect, so as to perform data processing on the target to-be-processed data packets based on the storage controllers.
[0074] The fourth aspect of the present application provides an electronic device, including: at least one processor and a memory;
[0075] The memory stores computer-executable instructions;
[0076] The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the method described in the first aspect above and various possible designs of the first aspect.
[0077] A fifth aspect of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When a processor executes the computer-executable instructions, the method described in the first aspect above and various possible designs of the first aspect is implemented.
[0078] A sixth aspect of the present application provides a computer program product, including computer instructions for causing a computer to execute the method described in the first aspect above and various possible designs of the first aspect.
[0079] The technical solution of the present application has the following advantages:
[0080] The present application provides a data processing method, apparatus, data storage system and electronic device. The method includes: obtaining initial to-be-processed data packets to be sent and stored in each storage controller of a data storage device; for any storage controller, performing load requirement analysis on the initial to-be-processed data packets of the storage controller to obtain load analysis results corresponding to each storage controller; according to the load analysis results corresponding to each storage controller, performing a first adjustment on the initial to-be-processed data packets so that each storage controller obtains intermediate to-be-processed data packets; detecting the current data processing capabilities of each storage controller; according to the current data processing capabilities of each storage controller, performing a second adjustment on the intermediate to-be-processed data packets so that each storage controller obtains target to-be-processed data packets; and performing data processing on the target to-be-processed data packets based on the storage controller. The method provided by the above solution performs two load balancing adjustments on the initial to-be-processed data packets of each storage controller respectively according to the load requirements of the to-be-processed data and the processing capabilities of the processor itself, so as to ensure the load balance of data processing of each storage controller, laying a foundation for improving the performance of the data storage device. Description of the Drawings
[0081] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for use in the description of the embodiments or related technologies. Obviously, the drawings in the following description are some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained according to these drawings.
[0082] Figure 1 It is a schematic flowchart of the data processing method provided by the embodiment of the present application;
[0083] Figure 2 Schematic diagram of the overall process of the first adjustment provided by the embodiments of the present application;
[0084] Figure 3 Schematic diagram of the overall process of the second adjustment provided by the embodiments of the present application;
[0085] Figure 4 Schematic diagram of the overall process of the data processing method provided by the embodiments of the present application;
[0086] Figure 5 Schematic diagram of the overall process of the internal resource load balancing distribution provided by the embodiments of the present application;
[0087] Figure 6 Schematic diagram of the structure of the data processing device provided by the embodiments of the present application;
[0088] Figure 7 Schematic diagram of the structure of the data storage system provided by the embodiments of the present application;
[0089] Figure 8 Schematic diagram of the structure of the electronic device provided by the embodiments of the present application.
[0090] Through the above-mentioned drawings, specific embodiments of the present application have been shown, and more detailed descriptions will be given later. These drawings and written descriptions are not intended to limit the scope of the concept of the present disclosure in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. Detailed implementation manners
[0091] To make the objectives, technical solutions, and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Apparently, the described embodiments are some but not all of the embodiments of the present application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present application without creative efforts shall fall within the scope of protection of the present application.
[0092] In addition, terms such as "first" and "second" are only used for descriptive purposes and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. In the description of the following embodiments, "a plurality" means more than two unless otherwise specifically defined.
[0093] In the era of big data, higher requirements are put forward for the reliability and high performance of storage arrays. Especially in high-end storage devices, it is required that the read / write rate and IOPS of the storage device reach high baseline standards. For example, high-end storage requires more than 1 million IOPS, and terminal storage requires more than 400,000 IOPS, and continuous data read / write operations can be carried out at this rate to meet the increasing demand for the user data volume. To this end, the CPUs of storage devices are constantly updated, and the bandwidth resources of CPUs are continuously doubled and improved. However, with the doubling of bandwidth resources, the number of external plug-in cards and hard disks supported by storage devices is constantly increasing, and the problem of uneven data reading capabilities among various loads is gradually exposed. As an integrated device as a whole, when the data reading capabilities of one or two of the loads are uneven, the overall working efficiency of the device will be affected, which will further lead to a reduction in the user's business processing ability. When the load imbalance is nearly half serious, it will even lead to key problems at the service level.
[0094] In view of the above problems, the embodiments of the present application provide a data processing method, device, data storage system and electronic device. The method includes: obtaining initial packets to be sent and stored in each storage controller of the data storage device; for any storage controller, performing load demand analysis on the initial packets to be processed of the storage controller to obtain load analysis results corresponding to each storage controller; according to the load analysis results corresponding to each storage controller, performing a first adjustment on the initial packets to be processed to enable each storage controller to obtain intermediate packets to be processed; detecting the current data processing capabilities of each storage controller; according to the current data processing capabilities of each storage controller, performing a second adjustment on the intermediate packets to be processed to enable each storage controller to obtain target packets to be processed; and performing data processing on the target packets to be processed based on the storage controller. The method provided by the above solution performs two load balancing adjustments on the initial packets to be processed of each storage controller respectively according to the load demand of the data to be processed and the processing capabilities of the processor itself, so as to ensure the load balance of data processing of each storage controller, laying a foundation for improving the performance of the data storage device.
[0095] The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of the present invention will be described below with reference to the accompanying drawings.
[0096] The embodiments of the present application provide a data processing method for performing load balancing allocation on storage controllers inside a data storage device. The execution subject of the embodiments of the present application is an electronic device, such as a server, a desktop computer, a laptop computer, a tablet computer, and other electronic devices that can be used to perform load balancing allocation on storage controllers inside a data storage device.
[0097] Such asFigure 1 As shown in the figure, it is a schematic flowchart of the data processing method provided by the embodiment of the present application. The method includes:
[0098] Step 101: Obtain the initial to-be-processed data packets to be sent and stored in each storage controller of the data storage device.
[0099] Specifically, the to-be-processed data to be sent and stored in the data storage device can be evenly divided according to a preset load balancing rule, so that each storage controller in the data storage device obtains an equal amount of initial to-be-processed data packets.
[0100] Step 102: For any storage controller, perform a load requirement analysis on the initial to-be-processed data packets of the storage controller to obtain the load analysis results corresponding to each storage controller.
[0101] Specifically, the load requirement analysis can be performed on each piece of data in the initial to-be-processed data packets according to the source and processing requirements of the data in the initial to-be-processed data packets, etc., to obtain the load analysis results of the initial to-be-processed data packets of each storage controller.
[0102] Step 103: According to the load analysis results corresponding to each storage controller, perform a first adjustment on the initial to-be-processed data packets so that each storage controller obtains intermediate to-be-processed data packets.
[0103] Specifically, the initial to-be-processed data packets can be adjusted for the first time according to the load differences between the storage controllers characterized by the load analysis results corresponding to each storage controller, so that each storage controller obtains intermediate to-be-processed data packets, and the data load requirements within the packets of the intermediate to-be-processed data packets reach equilibrium.
[0104] Step 104: Detect the current data processing capabilities of each storage controller.
[0105] It should be noted that after the data storage device has been running for a long time, there are differences in the performance of the multiple storage controllers configured therein. Therefore, the current data processing capabilities of each storage controller can be further detected to determine the differences in the processing capabilities of the storage controllers themselves.
[0106] Step 105: According to the current data processing capabilities of each storage controller, perform a second adjustment on the intermediate to-be-processed data packets so that each storage controller obtains target to-be-processed data packets.
[0107] Specifically, the intermediate to-be-processed data packets can be adjusted for the second time according to the differences in the processing capabilities of each storage controller themselves, so that each storage controller finally obtains target to-be-processed data packets that match its current data processing capabilities.
[0108] Step 106, perform data processing on the target data packet to be processed based on the storage controller.
[0109] Specifically, data processing such as mean calculation, variance calculation, normalization, and data conversion can be performed on the data in the target data packet to be processed based on the storage controller, and the processed data can be stored in the corresponding storage disk to store the data in the data storage device.
[0110] Based on the above embodiments, in order to further ensure the load balancing of the storage controller, as an implementable manner, in one embodiment, obtaining the initial data packets to be sent and stored in each storage controller in the data storage device includes:
[0111] Step 1011, obtain the data to be sent and stored in the data storage device to obtain the overall data packet;
[0112] Step 1012, divide the overall data packet into the corresponding number of initial data packets to be processed according to the number of storage controllers in the data storage device;
[0113] Step 1013, allocate the initial data packets to be processed to the corresponding storage controllers.
[0114] Exemplarily, taking the data storage device in the embodiments of the present application as an example with four storage controllers, the multiple storage controllers are redundant with each other in terms of hardware, supporting a structure of three out of four failures. Any storage controller shares the data information of the other storage controllers, and two storage controllers are cascaded through Roce. After obtaining the overall data packet, the overall data packet is divided into four parts to obtain the initial data packets to be processed corresponding to each storage controller.
[0115] Specifically, in one embodiment, the data to be sent and stored in the data storage device can be obtained; in the case of obtaining the packaging instruction, the obtained data to be sent and stored in the data storage device is summarized to obtain the data summary result; data packaging is performed according to the data summary result to obtain the overall data packet.
[0116] Among them, the packaging instruction is issued according to a preset period and a preset packaging principle.
[0117] It should be noted that the preset data packaging principle of the data storage device is that the data processed by the storage controller at the current time is the data that the controller needs to synchronize to the other controllers in the next time period, that is, it is necessary to ensure the continuity of the storage service. The length of each time period is negotiated and confirmed with the server side (host side). The storage side (data storage device) sends a data packaging instruction to the server side, and after receiving the instruction, the server side summarizes the current service data to obtain the data summary result.
[0118] Specifically, data packaging can be performed according to the total amount of data to be sent and stored in the data storage device characterized by the data aggregation result.
[0119] Specifically, in one embodiment, a preset data volume threshold can be obtained; it can be determined whether the total amount of data characterized by the data aggregation result reaches the preset data volume threshold; when the total amount of data characterized by the data aggregation result reaches the preset data volume threshold, the data to be sent and stored in the data storage device is packaged to obtain an overall data packet.
[0120] Specifically, in order to ensure the business continuity of the data storage device, the preset data volume threshold can be determined according to the necessary time for the current business to be completed as required by the user. During the process of aggregating the data to be sent and stored in the data storage device, it can be determined whether the total amount of data characterized by the data aggregation result reaches the preset data volume threshold; when the total amount of data characterized by the data aggregation result reaches the preset data volume threshold, the data to be sent and stored in the data storage device is packaged to obtain an overall data packet.
[0121] Specifically, in one embodiment, in order to further ensure the business continuity of the data storage device, a target time period can be determined according to the data transmission time requirement corresponding to the preset data volume threshold; according to the number of storage controllers in the data storage device, the target time period is split to obtain a time period splitting result; according to the time period splitting result, the overall data packet is evenly divided into the corresponding number of initial data packets to be processed.
[0122] Among them, the acquisition times of the data to be processed in the same initial data packet to be processed are continuous.
[0123] Specifically, after the preset data volume threshold is set, the data aggregation result is compared with the preset data volume threshold. When the total amount of data characterized by the data aggregation result is lower than the threshold, the time taken for the host to transfer the threshold data to the data storage device is used as the first time period (target time period). When the total amount of service data reaches the threshold data, the first time period is used as the current time period, and the current time period is split. Taking the data storage device including 4 storage controllers as an example, the current time period is evenly divided into four time periods to obtain a time period splitting result, and subsequent data packet division is performed according to the time period splitting result; that is, the data packets statistically obtained during the current time period are divided into four parts, that is, divided into four initial data packets to be processed and sent to each controller end (data storage controller) for processing respectively.
[0124] Based on the above embodiments, in order to further ensure the load balance of the storage controller, as an implementable manner, in one embodiment, for any storage controller, a load demand analysis is performed on the initial data packet to be processed of the storage controller to obtain the load analysis results corresponding to each storage controller, including:
[0125] Step 1021: For any storage controller, determine the load requirements of each data to be processed according to the complexity of each data to be processed in the initial data packet to be processed of this storage controller.
[0126] Step 1022: Store the load analysis result corresponding to the storage controller according to the load requirements of each data to be processed.
[0127] Specifically, the complexity of each data to be processed can be determined according to the data processing logic, data type, etc. of each data to be processed in the initial data packet to be processed, and the complexity level division is performed according to the complexity, such as being divided into three complexity levels: low, medium, and high. Then, according to the complexity level division result, the load requirements of the data to be processed are determined to determine the specific traffic values of the data to be processed at different complexity levels. The load requirements correspond to the complexity levels to obtain the load analysis results corresponding to each storage controller.
[0128] Among them, the complexity of the data to be processed can be quantified by a complexity coefficient, which are coefficients of three different complexities: low, medium, and high.
[0129] Furthermore, in an embodiment, the data to be processed in the initial data packet to be processed can be divided into load levels according to the load analysis results corresponding to each storage controller to obtain the load level division results of the data to be processed corresponding to each storage controller; according to the load level division results of the data to be processed corresponding to each storage controller, the initial data packet to be processed is subjected to a first adjustment so that each storage controller obtains an intermediate data packet to be processed.
[0130] Specifically, the data to be processed in the initial data packet to be processed can be divided into load levels according to the complexity level division result of the data to be processed, and the obtained load level division result is consistent with the complexity level division result. The load level division result of the data to be processed is to divide the data in the initial data packet to be processed into three load levels: low, medium, and high, and determine the data volume of each complex level, so as to perform a first adjustment on the initial data packet to be processed.
[0131] Specifically, in an embodiment, for any storage controller, the data volume of the data to be stored at each load level can be determined according to the load level division result of the data to be processed corresponding to this storage controller; for any load level, the data volume of the data to be stored at this load level is evenly divided according to the number of storage controllers in the data storage device to obtain the data equal share amount at each load level; according to the data equal share amount at each load level, the initial data packet to be processed is subjected to a first adjustment so that each storage controller obtains an intermediate data packet to be processed.
[0132] Specifically, when determining the data volume of the data to be stored at any load level, the data volume is evenly divided according to the number of storage controllers in the data storage device. Taking the number of storage controllers being 4 as an example, the data volume of the data to be stored at any load level is evenly divided into 4 parts, and the quantity of each part is the data average quantity of that load level.
[0133] Further, in an embodiment, for any storage controller, according to the data average quantity of each load level corresponding to the storage controller, the data to be processed at each load level can be evenly distributed to each storage controller to perform a first adjustment on the initial data packets to be processed at each storage controller, so that each storage controller obtains an intermediate data packet to be processed.
[0134] Specifically, according to the data average quantity of each load level corresponding to any storage controller, the specific traffic value of each load level for each of the other storage controllers can be determined, so as to evenly divide the data under each complexity level into 4 parts and then perform data coupling again to obtain 4 packed coupled data packets. The coupled data packets include the data to be processed with the data average quantity of each load level. One of them is reserved for the local storage controller, and the remaining 3 parts are distributed to other storage controllers. When the response signal from the other storage controller ends this data packing process, that is, each storage controller obtains an intermediate data packet to be processed. Among them, the intermediate data packet of any storage controller is composed of the coupled data packet reserved locally and the 3 coupled data packets sent by the other 3 storage controllers.
[0135] Among them, as Figure 2 shown, it is a schematic diagram of the overall process of the first adjustment provided by the embodiment of the present application. The process is successively processing threshold setting, business data comparison with threshold data, data packet sending to the controller end, data complexity level extraction, and data evenly dividing and coupling according to the complexity level. Among them, the processing threshold is the preset data volume threshold, and the controller end is the storage controller.
[0136] Based on the above embodiment, in order to further ensure the load balance of the storage controllers, as an implementable method, in an embodiment, the current data processing capabilities of each storage controller are detected, including:
[0137] Step 1041, obtain the current operating parameters and current status information of each storage controller;
[0138] Step 1042, determine the current data processing capabilities of each storage controller according to the current operating parameters and current status information of each storage controller.
[0139] It should be noted that even storage controllers with the same configuration may exhibit different performance after a long period of operation. Therefore, by determining the current data processing capabilities of each storage controller based on its current operating parameters and current status information, it is beneficial to improve the accuracy and reliability of the detection results of data processing capabilities.
[0140] Specifically, in one embodiment, for any storage controller, the simulation result of the data processing capability of the storage controller can be determined according to the current operating parameters and current status information of the storage controller; based on the simulation results of the data processing capabilities of each storage controller, the current data processing capabilities of each storage controller can be determined.
[0141] Among them, the current operating parameters of the storage controller include the current rate value, and the current status information of the storage controller includes at least the health status index of the storage controller. The current status information of the storage controller may also include status information such as temperature and voltage.
[0142] Specifically, the data processing process of the storage controller can be simulated according to the current operating parameters and current status information of the storage controller to obtain the simulation result of the data processing capability of the storage controller.
[0143] Specifically, in one embodiment, the sharing of the current operating parameters and current status information among the storage controllers can be carried out based on the network links between the storage controllers, so that each storage controller can obtain the current operating parameters and current status information of all storage controllers; based on any storage controller, the data processing processes of each storage controller can be simulated according to the obtained current operating parameters and current status information of all storage controllers, so that the storage controller can obtain a simulation result dataset; among them, the simulation result dataset includes the simulation results of the data processing processes of each storage controller; the simulation result datasets obtained by each storage controller are summarized to obtain the simulation results of the data processing capabilities of each storage controller.
[0144] Specifically, the controller side (storage controller) first shares its status through the network links between each pair, sending its own status information (current operating parameters and current status information) to the paired controller. At the same time, the paired controller sends the obtained information to the other end controller, so that each controller knows the status information of other controllers. Based on the current status information, the CPU of the controller itself will perform data simulation processing, that is, establish a four - controller system model in the CPU according to the parameters and status information of the four controllers, and calculate the allocation of tasks that each controller should handle according to the current status. With the optimal total processing capacity of the four controllers as the simulation optimization goal, the result simulated in the CPU of the controller is finally obtained. The four controllers execute this simulation calculation in turn to obtain four simulation results (simulation results of the data processing process). Based on this result, they are merged to obtain a final simulation result of the data processing capacity of the four controllers, that is, the simulation result of the data processing capacity of each storage controller.
[0145] Further, in an embodiment, the second adjustment weight coefficient of each storage controller can be determined according to the current data processing capacity of each storage controller; wherein, the second adjustment weight coefficient is positively correlated with the current data processing capacity; according to the second adjustment weight coefficient of each storage controller, the intermediate data packets to be processed by each storage controller are second - adjusted to enable each storage controller to obtain the target data packets to be processed.
[0146] It should be noted that by first performing the first adjustment on the initial data packets to be processed and then performing the second adjustment on the intermediate data packets to be processed obtained after the first adjustment, not only can the load balancing degree be improved, but also the load of the second adjustment can be reduced, so as to improve the overall efficiency of the load balancing adjustment.
[0147] Specifically, the weight value (second adjustment weight coefficient) is obtained by dividing according to the simulation result of the data processing capacity of each storage controller; after the weight values of the storage controllers are obtained, they are sent to each controller side in turn through the associated network links. The data packets are adjusted according to the weights of the controllers, and the adjusted data packets are distributed to their corresponding controller sides. Each controller side performs a second adjustment on the intermediate data packets to be processed according to its own weight value. Specifically, by using the current data packet (intermediate data packet to be processed) as a reference and comparing it with this weight value, if the current weight value is the highest among the weight values of the four controllers, the data packets with lower weight values are transferred to the data packets with higher weight values. The final result is that the size of the data packets processed by each controller should be in a proportional relationship with the weight value of the controller. Among them, which load level of the data to be processed is specifically transferred can be selected according to the actual situation, and the embodiments of the present application do not make any limitations.
[0148] Among them, such as Figure 3As shown in the figure, it is a schematic diagram of the overall process of the second adjustment provided by the embodiment of the present application. The process sequentially includes sharing of controller status information, establishing a four-control model at the CPU end, integrating and processing simulation results, obtaining weights, and adjusting data packets according to the weights.
[0149] Based on the above embodiments, the storage controller includes a variety of internal resources. The storage controller processes and stores data based on its internal resources. In order to further ensure the load balance of the internal resources of the storage controller, as an implementable method, in one embodiment, data processing of the target data packet to be processed is performed based on the storage controller, including:
[0150] Step 1061: For any storage controller, determine the current module processing capabilities of each internal processing module according to the current processing parameters of each internal processing module in the storage controller;
[0151] Step 1062: Perform normalization processing on the current module processing capabilities of each internal processing module to obtain the current module equivalent processing capabilities of each internal processing module;
[0152] Step 1063: Determine the target number of channels for each internal processing module according to the current module equivalent processing capabilities of each internal processing module, so that each processing module processes the target data packet to be processed according to the target number of channels.
[0153] Among them, the internal processing modules of the storage controller are its internal resources. The internal processing modules include an internal CPU, memory, I / O card, switch module, etc. Since different internal processing modules have different characteristics, in order to realize the equivalent comparison of their processing capabilities, after obtaining the current module processing capabilities of each internal processing module, normalization processing is performed on the current module processing capabilities of each internal processing module to obtain the current module equivalent processing capabilities of each internal processing module.
[0154] Specifically, after each storage controller obtains the target data packet to be processed through data packet adjustment, the storage controller processes the current data by invoking internal resources for the data transmitted in a packaged manner on the server side (host side), and ensures the balance of internal resource processing. Specifically, the processing capabilities of the CPU, memory, I / O card, and switch module inside the controller are statistically prioritized to obtain the current module processing capabilities of each internal processing module. The CPU side reads the parameter values of the current data processing through internal registers, and at the same time sends a traffic acquisition instruction to the memory, I / O card, and switch module through the I2C link to read the current data processing rate values of each module; after the reading is completed, the data stream planning for each stage is carried out. The data stream planning preferentially establishes a data stream model, that is, the CPU unit is equivalent to an input / output unit, the I / O card is equivalent to an input / output unit, the switch module is equivalent to an output unit, and the hard disk is equivalent to an I / O stream input unit. After the data stream model is established, the current module processing capabilities of each module are normalized to obtain the current module equivalent processing capabilities of each internal processing module. The normalization is achieved by equating the data traffic to the average channel speed per channel × the number of channels. During the equivalent process, the data transmission rates of all current modules are obtained. After the acquisition is completed, according to the total number of channels provided by the CPU side during the R & D design process, the division calculation is performed to obtain the average channel speed of each current channel. Based on this, the average speed per channel × the number of channels after equivalence for each module is obtained, so as to quantify the object to be optimized into the target number of channels that can be provided for data transmission; after the normalization is completed, with load balancing as the optimization goal, a dynamic diagram of the processing capabilities of each module after optimization is given, that is, the transmission channels (target channels) of each load module are optimized, and the optimization constraint condition is load balancing.
[0155] Exemplarily, as Figure 4 shown, it is a schematic diagram of the overall process of the data processing method provided by the embodiment of the present application. After the data is operated in time periods, data is processed in a packaged manner, and data weighted round-robin processing is performed on the controller side on the server side, each storage controller obtains the target data packet to be processed, and finally the internal balance of the controller load is processed to further ensure the load balance of the internal resources of the storage controller.
[0156] Specifically, in one embodiment, multiple groups of candidate channel allocation combinations that meet the preset internal module load balancing constraint conditions can be determined according to the current module equivalent processing capabilities of each internal processing module; the candidate channel allocation combination with the largest cumulative value of the target channel number is used as the target channel allocation combination.
[0157] Among them, the target channel allocation combination includes the target channel numbers of each internal processing module, and the preset internal module load balancing constraint condition includes that the ratio of the target channel number of each internal processing module to the total number of channels is equal.
[0158] Specifically, the optimization objective of the embodiments of the present application is to maximize the number of channels, that is, to maximize the cumulative value of the target channel numbers. The sum of the channel numbers in each module directly output from the CPU is equal to the number of channels that can be provided by the current CPU side. In addition, for each module, the result of the current channel number / the theoretical total channel number is equal, that is, the ratio of the target channel number of each internal processing module to the total channel number is equal. This is the constraint condition for the internal resource load balancing provided by the embodiments of the present application. The optimization objective is to maximize the cumulative value of the target channel numbers. Based on this, dynamic channel number adjustment is performed. After the adjustment is completed, the target channel numbers of each load module are obtained. At this time, multiplying the target channel number by the current average transmission rate can return the optimized transmission rate of each module. This transmission rate is the optimal transmission rate under the premise of ensuring load balancing.
[0159] Among them, as Figure 5 shown, it is a schematic diagram of the overall process of internal resource load balancing allocation provided by the embodiments of the present application. The process is successively the statistics of the processing capabilities of the internal modules of the controller, the establishment of a data flow model, the normalization processing of the processing capabilities of the data modules, the establishment of an optimization model with load balancing as a constraint, and the result of optimizing the transmission rate.
[0160] The data processing method provided by the embodiments of the present application includes obtaining the initial packets to be processed of each storage controller to be sent and stored in the data storage device; for any storage controller, performing load demand analysis on the initial packets to be processed of the storage controller to obtain the load analysis results corresponding to each storage controller; according to the load analysis results corresponding to each storage controller, performing a first adjustment on the initial packets to be processed so that each storage controller obtains intermediate packets to be processed; detecting the current data processing capabilities of each storage controller; according to the current data processing capabilities of each storage controller, performing a second adjustment on the intermediate packets to be processed so that each storage controller obtains target packets to be processed; and performing data processing on the target packets to be processed based on the storage controller. The method provided by the above solution, by respectively performing two load balancing adjustments on the initial packets to be processed of each storage controller according to the load demand of the data to be processed and the processing capabilities of the processor itself, ensures the load balancing of data processing of each storage controller, solves the problem of reduced data processing capabilities of the storage device caused by load imbalance, and lays a foundation for improving the performance of the data storage device. Moreover, from the data packaging on the server side, the data to be processed is subdivided, and then the multi-controllers of the storage device are used as the optimization object. Through weighted balancing in the algorithm, appropriate task data is provided for each controller, and then further refined to the processing capabilities of various loads (internal resources) in the controller. From the local to the whole, it ensures that the load processing data capabilities at each level are kept in a balanced state.
[0161] An embodiment of the present application provides a data processing device for executing the data processing method provided in the above embodiment.
[0162] As Figure 6 shown, it is a schematic structural diagram of the data processing device provided in the embodiment of the present application. The data processing device 60 includes: an acquisition module 601, an analysis module 602, a first adjustment module 603, a detection module 604, a second adjustment module 605, and a processing module 606.
[0163] Among them, the acquisition module is used to acquire the initial to-be-processed data packets to be sent and stored in each storage controller of the data storage device; the analysis module is used to perform load demand analysis on the initial to-be-processed data packets of any storage controller to obtain the load analysis results corresponding to each storage controller; the first adjustment module is used to perform a first adjustment on the initial to-be-processed data packets according to the load analysis results corresponding to each storage controller, so that each storage controller obtains intermediate to-be-processed data packets; the detection module is used to detect the current data processing capabilities of each storage controller; the second adjustment module is used to perform a second adjustment on the intermediate to-be-processed data packets according to the current data processing capabilities of each storage controller, so that each storage controller obtains target to-be-processed data packets; the processing module is used to perform data processing on the target to-be-processed data packets based on the storage controller.
[0164] Regarding the data processing device in this embodiment, the specific manners in which each module performs operations have been described in detail in the embodiment related to the method, and will not be elaborated here.
[0165] The data processing device provided in the embodiment of the present application is used to execute the data processing method provided in the above embodiment, and its implementation manner and principle are the same, and will not be repeated.
[0166] An embodiment of the present application provides a data storage system for executing the data processing method provided in the above embodiment.
[0167] As Figure 7 shown, it is a schematic structural diagram of the data storage system provided in the embodiment of the present application. The data storage system includes: a host side and a data storage device, and the data storage device includes a plurality of storage controllers;
[0168] Among them, the host side distributes target to-be-processed data packets to each storage controller in the data storage device based on the data processing method provided in the above embodiment, so as to perform data processing on the target to-be-processed data packets based on each storage controller.
[0169] Regarding the data storage system in this embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment related to the method, and will not be elaborated here.
[0170] The data storage system provided in the embodiment of the present application is used to execute the data processing method provided in the above embodiment. The implementation manner and principle are the same and will not be repeated.
[0171] The embodiment of the present application provides an electronic device for executing the data processing method provided in the above embodiment.
[0172] As Figure 8 shown, it is a schematic structural diagram of the electronic device provided in the embodiment of the present application. The electronic device 80 includes: at least one processor 81 and a memory 82.
[0173] The memory stores computer-executable instructions; the at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the data processing method provided in the above embodiment.
[0174] The electronic device provided in the embodiment of the present application is used to execute the data processing method provided in the above embodiment. The implementation manner and principle are the same and will not be repeated.
[0175] The embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When the processor executes the computer-executable instructions, the data processing method provided in any of the above embodiments is implemented.
[0176] The storage medium provided in the embodiment of the present application containing computer-executable instructions can be used to store the computer-executable instructions of the data processing method provided in the foregoing embodiment. The implementation manner and principle are the same and will not be repeated.
[0177] The embodiment of the present application provides a computer program product, including computer instructions, and the computer instructions are used to cause a computer to execute the data processing method provided in the foregoing embodiment.
[0178] The computer program product provided in the embodiment of the present application can be used to execute the computer instructions of the data processing method provided in the foregoing embodiment. The implementation manner and principle are the same and will not be repeated.
[0179] In several embodiments provided by the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed coupling, direct coupling, or communication connection to each other can be through some interfaces. The indirect coupling or communication connection of the devices or units can be in electrical, mechanical, or other forms.
[0180] The units described as separate components may or may not be physically separated. The components displayed as units may or may not be physical units, that is, they can be located in one place or distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0181] In addition, in each embodiment of the present application, the functional units can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of a combination of hardware and software functional units.
[0182] The above-mentioned integrated units implemented in the form of software functional units can be stored in a computer-readable storage medium. The above-mentioned software functional units stored in a storage medium include several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute some steps of the methods described in each embodiment of the present application. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical discs that can store program codes.
[0183] A part of this application can be applied as a computer program product, such as computer program instructions. When executed by a computer, through the operations of the computer, it can call or provide the methods and / or technical solutions according to the present invention. Those skilled in the art should understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executes the instructions, or the computer compiles the instructions and then executes the corresponding compiled program, or the computer reads and executes the instructions, or the computer reads and installs the instructions and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the computer.
[0184] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above division of each functional module is used as an example for illustration. In actual applications, the above functions can be allocated to different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. The specific working process of the device described above can refer to the corresponding process in the foregoing method embodiments and will not be elaborated herein.
[0185] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application and are not intended to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A data processing method, characterized in that, Including: Obtaining initial packets to be processed that are to be sent and stored in each storage controller of a data storage device; For any one of the storage controllers, performing a load requirement analysis on the initial packets to be processed of this storage controller to obtain a load analysis result corresponding to each storage controller; According to the load analysis results corresponding to each storage controller, performing a first adjustment on the initial packets to be processed so that each storage controller obtains intermediate packets to be processed; Detecting the current data processing capabilities of each storage controller; According to the current data processing capabilities of each storage controller, performing a second adjustment on the intermediate packets to be processed so that each storage controller obtains target packets to be processed; Based on the storage controller, performing data processing on the target packets to be processed; The performing a first adjustment on the initial packets to be processed according to the load analysis results corresponding to each storage controller so that each storage controller obtains intermediate packets to be processed includes: According to the load analysis results corresponding to each storage controller, performing a load level division on the data to be processed in the initial packets to be processed to obtain a load level division result of the data to be processed corresponding to each storage controller; According to the load level division results of the data to be processed corresponding to each storage controller, performing a first adjustment on the initial packets to be processed so that each storage controller obtains intermediate packets to be processed.
2. The method according to claim 1, wherein The obtaining initial packets to be processed that are to be sent and stored in each storage controller of a data storage device includes: Obtaining data to be sent and stored in the data storage device to obtain an overall packet; According to the number of storage controllers in the data storage device, evenly dividing the overall packet into a corresponding number of initial packets to be processed; Allocating the initial packets to be processed to the corresponding storage controllers.
3. The method according to claim 2, wherein The obtaining data to be sent and stored in the data storage device to obtain an overall packet includes: Obtaining data to be sent and stored in the data storage device; When a packing instruction is obtained, summarizing the data that has been obtained and is to be sent and stored in the data storage device to obtain a data summarization result; Performing data packing according to the data summarization result to obtain an overall packet; Wherein, the packing instruction is issued according to a preset period and a preset packing principle.
4. The method according to claim 3, characterized in that, The performing data packing according to the data summarization result to obtain an overall packet includes: Obtaining a preset data volume threshold; Judging whether the total amount of data represented by the data summarization result reaches the preset data volume threshold; When the total amount of data represented by the data summarization result reaches the preset data volume threshold, performing data packing on the data to be sent and stored in the data storage device to obtain an overall packet.
5. The method according to claim 4, characterized in that, According to the number of storage controllers in the data storage device, evenly dividing the overall packet into a corresponding number of initial packets to be processed includes: Determining a target time period according to the data transmission time requirement corresponding to the preset data volume threshold; Split the target time period according to the number of storage controllers in the data storage device to obtain a time period splitting result; Divide the overall data packet into the corresponding number of initial data packets to be processed according to the time period splitting result; Among them, the acquisition times of the data to be processed in the same initial data packet to be processed are continuous.
6. The method according to claim 1, characterized in that, For any one of the storage controllers, perform a load demand analysis on the initial data packets to be processed of the storage controller to obtain the load analysis results corresponding to each storage controller, including: For any one of the storage controllers, determine the load demands of the data to be processed according to the complexity of the data to be processed in the initial data packets to be processed of the storage controller; According to the load demands of the data to be processed, the load analysis results corresponding to the storage controller.
7. The method according to claim 1, wherein According to the load level division results of the data to be processed corresponding to each storage controller, perform a first adjustment on the initial data packets to be processed so that each storage controller obtains intermediate data packets to be processed, including: For any one of the storage controllers, determine the data volume of the data to be stored at each load level according to the load level division results of the data to be processed corresponding to the storage controller; For any one of the load levels, divide the data volume of the data to be stored at the load level equally according to the number of storage controllers in the data storage device to obtain the data equalization amounts at each load level; According to the data equalization amounts at each load level, perform a first adjustment on the initial data packets to be processed so that each storage controller obtains intermediate data packets to be processed.
8. The method according to claim 7, characterized in that, According to the data equalization amounts at each load level, perform a first adjustment on the initial data packets to be processed so that each storage controller obtains intermediate data packets to be processed, including: For any one of the storage controllers, according to the data equalization amounts at each load level corresponding to the storage controller, evenly distribute the data to be processed at each load level to each storage controller to perform a first adjustment on the initial data packets to be processed of each storage controller so that each storage controller obtains intermediate data packets to be processed.
9. The method according to claim 1, wherein Detect the current data processing capabilities of each storage controller, including: Obtain the current operating parameters and current status information of each storage controller; Determine the current data processing capabilities of each storage controller according to the current operating parameters and current status information of each storage controller.
10. The method according to claim 9, characterized in that, Determine the current data processing capabilities of each storage controller according to the current operating parameters and current status information of each storage controller, including: For any one of the storage controllers, determine the simulation result of the data processing capability of the storage controller according to the current operating parameters and current status information of the storage controller; Determine the current data processing capabilities of each storage controller according to the simulation results of the data processing capabilities of each storage controller; The current operating parameters of the storage controller include the current rate value, and the current status information of the storage controller includes at least the health status index of the storage controller.
11. The method according to claim 10, characterized in that, For any of the storage controllers, determining a simulation result of the data processing capability of the storage controller according to the current operating parameters and current status information of the storage controller includes: Based on the network links between the storage controllers, sharing the current operating parameters and current status information between the storage controllers, so that each storage controller obtains the current operating parameters and current status information of all the storage controllers; Based on any one of the storage controllers, simulating the data processing processes of the storage controllers according to the obtained current operating parameters and current status information of all the storage controllers, so that the storage controller obtains a simulation result data set; wherein, the simulation result data set includes the simulation results of the data processing processes of the storage controllers; Summarize the simulation result data sets obtained by each storage controller to obtain the simulation results of the data processing capabilities of the storage controllers.
12. The method according to claim 1, wherein The second adjustment of the intermediate data packets to be processed according to the current data processing capabilities of the storage controllers, so that each storage controller obtains a target data packet to be processed includes: Determine the second adjustment weight coefficients of the storage controllers according to the current data processing capabilities of the storage controllers; wherein, the second adjustment weight coefficients are positively correlated with the current data processing capabilities; According to the second adjustment weight coefficients of the storage controllers, perform a second adjustment on the intermediate data packets to be processed of the storage controllers, so that each storage controller obtains a target data packet to be processed.
13. The method according to claim 1, wherein The data processing of the target data packet to be processed based on the storage controller includes: For any one of the storage controllers, determine the current module processing capabilities of the internal processing modules according to the current processing parameters of the internal processing modules in the storage controller; Perform a normalization process on the current module processing capabilities of the internal processing modules to obtain the current module equivalent processing capabilities of the internal processing modules; Determine the target channel numbers of the internal processing modules according to the current module equivalent processing capabilities of the internal processing modules, so that each processing module processes the target data packet to be processed according to the target channel numbers.
14. The method according to claim 13, wherein The determination of the target channel numbers of the internal processing modules according to the current module equivalent processing capabilities of the internal processing modules includes: Determine multiple groups of candidate channel allocation combinations that satisfy the preset internal module load balancing constraint conditions according to the current module equivalent processing capabilities of the internal processing modules; Use the candidate channel allocation combination with the largest cumulative value of the target channel numbers as the target channel allocation combination; Wherein, the target channel allocation combination includes the target channel numbers of the internal processing modules, and the preset internal module load balancing constraint conditions include that the ratio of the target channel number of each internal processing module to the total channel number is equal.
15. A data processing device, characterized in that, Including: An acquisition module, configured to acquire the initial data packets to be processed of the storage controllers to be sent and stored in the data storage device; An analysis module, configured to perform load requirement analysis on the initial data packets to be processed of any one of the storage controllers, so as to obtain the load analysis results corresponding to each of the storage controllers; A first adjustment module, configured to perform a first adjustment on the initial data packets to be processed according to the load analysis results corresponding to each of the storage controllers, so that each of the storage controllers obtains intermediate data packets to be processed; A detection module, configured to detect the current data processing capabilities of each of the storage controllers; A second adjustment module, configured to perform a second adjustment on the intermediate data packets to be processed according to the current data processing capabilities of each of the storage controllers, so that each of the storage controllers obtains target data packets to be processed; A processing module, configured to perform data processing on the target data packets to be processed based on the storage controllers; The first adjustment module is specifically configured to: Perform load level division on the data to be processed in the initial data packets to be processed according to the load analysis results corresponding to each of the storage controllers, so as to obtain the load level division results of the data to be processed corresponding to each of the storage controllers; Perform a first adjustment on the initial data packets to be processed according to the load level division results of the data to be processed corresponding to each of the storage controllers, so that each of the storage controllers obtains intermediate data packets to be processed.
16. A data storage system, characterized in that, Comprising: A host side and a data storage device, the data storage device includes a plurality of storage controllers; The host side distributes target data packets to be processed to each of the storage controllers in the data storage device based on the method according to any one of claims 1 to 14, so as to perform data processing on the target data packets to be processed based on each of the storage controllers.
17. An electronic device, characterized in that, Comprising: At least one processor and a memory; The memory stores computer execution instructions; The at least one processor executes the computer execution instructions stored in the memory, so that the at least one processor executes the method according to any one of claims 1 to 14.
18. A computer-readable storage medium, characterized in that, Computer execution instructions are stored in the computer-readable storage medium, and when the processor executes the computer execution instructions, the method according to any one of claims 1 to 14 is implemented.
19. A computer program product, characterized in that, Comprising computer instructions, the computer instructions are used to cause a computer to execute the method according to any one of claims 1 to 14.
Citation Information
Patent Citations
Service data load balancing method and device
CN113504974A