CN116431345A - Load balancing method, device and equipment for multi-control array storage - Google Patents

Load balancing method, device and equipment for multi-control array storage Download PDF

Info

Publication number
CN116431345A
CN116431345A CN202310382704.9A CN202310382704A CN116431345A CN 116431345 A CN116431345 A CN 116431345A CN 202310382704 A CN202310382704 A CN 202310382704A CN 116431345 A CN116431345 A CN 116431345A
Authority
CN
China
Prior art keywords
main control
control module
module
service
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310382704.9A
Other languages
Chinese (zh)
Inventor
王志浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310382704.9A priority Critical patent/CN116431345A/en
Publication of CN116431345A publication Critical patent/CN116431345A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

The embodiment of the application discloses a load balancing method, a device and equipment of multi-control array storage, which are used for monitoring the load balancing condition among all main control modules by acquiring performance parameters of all main control modules in the multi-control array storage, actively neglecting destination addresses carried by service blocks per se under the condition that the load imbalance occurs among all the main control modules, sending all the service blocks to all the main control modules according to a first setting sequence, and timely balancing the load of all the main control modules, thereby improving the usability.

Description

Load balancing method, device and equipment for multi-control array storage
Technical Field
The present invention relates to the field of computer storage technologies, and in particular, to a load balancing method, apparatus, and device for multi-control array storage.
Background
Array storage (particularly multi-control array storage) has a large requirement on usability, and load balancing among multiple controllers is a necessary premise for realizing high usability of the whole machine.
In the related art, after service data (i.e., service Input/Output data) is sliced or segmented according to an Input/Output (IO) address, an IO block (i.e., service Input/Output data block) is directly issued to a destination controller corresponding to the IO address and a rear-end disk array thereof, so as to reduce data forwarding between the controllers and realize load balancing between the controllers.
However, in the case where the IO address distribution of the traffic data is extremely asymmetric and the IO blocks are too small, or the IO affinity address exists, the load pressure of the partial controller may be increased by this method, thereby causing load imbalance.
Disclosure of Invention
The embodiment of the application aims to provide a load balancing method, device and equipment for multi-control array storage, which can balance loads of a plurality of controllers and improve usability.
In order to solve the above technical problems, in a first aspect, an embodiment of the present application provides a load balancing method for multi-control array storage, where the method includes:
acquiring performance parameters of each main control module in the multi-control array storage;
detecting whether the performance parameters of each main control module are larger than a set performance threshold;
and under the condition that the performance parameters of the main control modules are larger than the set performance threshold, sequentially sending the service blocks to the main control modules according to a first set sequence, wherein the first set sequence describes the arrangement sequence of the main control modules.
Optionally, before obtaining the performance parameters of each master control module in the multi-control array storage, the method further includes:
initializing the multi-control array storage to a first mode;
Detecting whether the performance parameters of the main control modules are larger than a set performance threshold value comprises the following steps:
detecting whether a master control module with performance parameters larger than a first performance threshold exists in each master control module in a first time period;
triggering primary load unbalance early warning under the condition that a main control module with performance parameters larger than a first performance threshold exists in each main control module in the first time period, and detecting whether the triggering number of primary load unbalance early warning in a first time period of a first set number is larger than a first early warning frequency threshold or not;
and under the condition that the performance parameter of each main control module is larger than a set performance threshold, sequentially sending each service block to each main control module according to a first set sequence, wherein the method comprises the following steps:
and under the condition that the triggering number of the primary load unbalance pre-warning in the first time period of the first set number is larger than a first pre-warning frequency threshold value, sequentially sending each service block to each main control module according to a first set sequence.
Optionally, the method further comprises:
detecting whether a master control module with performance parameters larger than a second performance threshold exists in each master control module in a second time period;
Triggering primary load unbalance early warning and sending a mode switching query request under the condition that a main control module with performance parameters larger than a second performance threshold exists in each main control module in the second time period;
and under the condition that a first command aiming at the mode switching query request is received, switching the multi-control array from the first mode to a second mode, wherein the second mode is used for triggering and executing the operations of adjusting the size of the service blocks according to the distribution range of the service block issuing addresses and sequentially sending each target service block with the adjusted service block size to each main control module according to the first setting sequence.
Optionally, before obtaining the performance parameters of each master control module in the multi-control array storage, the method further includes:
initializing the multi-control array storage to a second mode;
detecting whether the performance parameters of the main control modules are larger than a set performance threshold value comprises the following steps:
detecting whether a master control module with performance parameters larger than a third performance threshold exists in each master control module;
and under the condition that the performance parameter of each main control module is larger than a set performance threshold, sequentially sending each service block to each main control module according to a first set sequence, wherein the method comprises the following steps:
Triggering secondary load unbalance early warning under the condition that a main control module with performance parameters larger than a third performance threshold exists in each main control module, and executing detection of set times aiming at the distribution range of service block issuing addresses in a third time period;
determining the size of a target block according to the obtained first detection result of the distribution range of the service block issuing address;
and adjusting the size of the service blocks according to the size of the target blocks, and sequentially sending each target service block with the adjusted size of the service blocks to each main control module according to a first setting sequence.
Optionally, determining the target block size according to the obtained first detection result for the distribution range of the service block issuing address includes:
according to the first detection result, a first distribution range corresponding to a set distribution ratio in the distribution range is determined;
determining the size of a first service segment according to the size of each service block corresponding to the first distribution range;
and determining the size of the target block according to the size of the first service segment and the number of the main control modules in the multi-control array storage.
Optionally, after each target service block after the service block size is adjusted is sequentially sent to each master control module according to the first setting sequence, the method further includes:
Detecting whether a master control module with performance parameters larger than a fourth performance threshold exists in each master control module;
triggering a three-level load unbalance warning and respectively associating each service block issuing address in the first distribution range with at least two main control modules under the condition that the main control modules with performance parameters larger than a fourth performance threshold exist in each main control module;
and for each service block to be transmitted corresponding to any service block issuing address in the first distribution range, sequentially transmitting each service block to be transmitted to each main control module associated with the service block issuing address according to a second set sequence, wherein the second set sequence describes the arrangement sequence of each main control module associated with the service block issuing address.
Optionally, determining the target block size according to the obtained first detection result for the distribution range of the service block issuing address includes:
determining a first block size according to the first detection result;
detecting whether the first block size is smaller than a set minimum block size;
determining the set minimum block size as the target block size if the first block size is smaller than the set minimum block size;
And determining the first block size as the target block size in the case that the first block size is not smaller than the set minimum block size.
Optionally, the service block is obtained by partitioning service input/output data by the target module associated with the multi-control array storage, where the target module is any one of the following: a business module; an exchange module; a front end module; a main control module; and a back end module.
In a second aspect, an embodiment of the present application further provides a load balancing apparatus for multi-control array storage, where the apparatus includes:
the first acquisition module is used for acquiring performance parameters of each main control module in the multi-control array storage;
the first detection module is used for detecting whether the performance parameters of each main control module are larger than a set performance threshold value or not;
and the first sending module is used for sequentially sending each service block to each main control module according to a first setting sequence under the condition that the performance parameter of each main control module is larger than a set performance threshold value, and the first setting sequence describes the arrangement sequence of each main control module.
In a third aspect, an embodiment of the present application further provides an electronic device, including a memory, a processor, and a computer program stored on the memory, where the processor executes the computer program to implement the load balancing method of multi-control array storage according to the first aspect.
In a fourth aspect, embodiments of the present application further provide a computer readable storage medium having stored thereon a computer program/instruction which, when executed by a processor, implements a load balancing method for multi-control array storage according to the first aspect.
In a fifth aspect, embodiments of the present application further provide a computer program product comprising a computer program/instruction which, when executed by a processor, implements a load balancing method for multi-control array storage according to the first aspect.
According to the technical scheme, the performance parameters of each main control module in the multi-control array storage are obtained, the load balancing condition among the main control modules is monitored, the destination addresses carried by the service blocks are actively ignored under the condition that the load imbalance occurs among the main control modules, the service blocks are sent to the main control modules according to the first setting sequence, and the load balancing is carried out on the main control modules in time, so that the usability is improved.
Drawings
For a clearer description of the embodiments of the present application, the drawings that are needed in the embodiments will be briefly described, it being apparent that the drawings in the following description are only some embodiments of the present application, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a flowchart of an implementation of a load balancing method of multi-control array storage according to an embodiment of the present application;
fig. 2 is a schematic diagram of a load balancing system according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of a load balancing device for multi-control array storage according to an embodiment of the present application;
fig. 4 is a schematic diagram of an electronic device according to an embodiment of the present application;
fig. 5 is a schematic diagram of a computer readable storage medium according to an embodiment of the present application.
Detailed Description
The following description of the technical solutions in the embodiments of the present application will be made clearly and completely with reference to the drawings in the embodiments of the present application, and it is apparent that the described embodiments are only some embodiments of the present application, but not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments herein without making any inventive effort are intended to fall within the scope of the present application.
The terms "comprising" and "having" and any variations thereof in the description and claims of the present application and in the foregoing drawings are intended to cover non-exclusive inclusions. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those steps or elements but may include other steps or elements not expressly listed.
Array storage (particularly multi-control array storage) has a large requirement on usability, and load balancing among multiple controllers is a necessary premise for realizing high usability of the whole machine.
In the related art, the service data is cut into slices or segmented according to the IO address by adopting the forms of a host side plug-in unit, a shared front-end card or a separate hardware chip and the like, and then is directly transmitted to the target controller and the rear-end disk array thereof, so that the IO forwarding among the controllers is reduced, and the load balancing among the controllers is realized.
However, in the case that the IO destination address itself is extremely asymmetric and the IO block is too small (or in the case that other conditions such as the IO affinity address exist), the method only increases the pressure of a certain controller, so that load imbalance is caused, and part of controllers are easy to be unable to normally bear front-end services, so that the usability of the whole system is affected.
Aiming at the problems in the related art, the method and the device realize the multiple load balancing optimization of the multiple controllers by sequentially sending the service according to the set sequence, dynamically adjusting the sizes of the blocks and the like, and can reduce the occurrence of serious load unbalance among the multiple controllers under the condition of not influencing the reliability of the storage cluster, thereby improving the usability of the whole system.
The load balancing method of the multi-control array storage provided by the embodiment of the application is described in detail below by means of some embodiments and application scenes thereof with reference to the accompanying drawings.
In a first aspect, referring to fig. 1, a flowchart of an implementation of a load balancing method for multi-control array storage according to an embodiment of the present application may include the following steps:
step S101: and acquiring performance parameters of each main control module in the multi-control array storage.
In a specific implementation, at least one performance data such as the number of times of performing read-write operations per second (IOPS, input/Output Operations Per Second), bandwidth, delay, CPU utilization, etc. may be obtained for each master control module (i.e., a controller) in the multi-control array storage, and the performance parameters of the master control module may be determined according to the obtained performance data, for example, the comprehensive performance parameters of the master control module may be determined, or the corresponding performance of the master control module in various aspects may be determined (for example, the performance parameters in the random access aspect may be determined according to the IOPS).
Step S102: and detecting whether the performance parameters of the main control modules are larger than a set performance threshold.
In specific implementation, the set performance threshold may be set to a fixed value, or may be dynamically set according to the current performance of other modules (such as a service module, a switching module, a front-end module, a back-end module, etc.) associated with the multi-control array storage. For example, the set performance threshold may be set as a ratio between the current performance of the traffic module and the number of master modules.
Step S103: and under the condition that the performance parameters of the main control modules are larger than the set performance threshold, sequentially sending the service blocks to the main control modules according to a first set sequence.
The first setting sequence describes the arrangement sequence of the main control modules.
For example, in the case where the performance parameter of each master module is greater than the set performance threshold, for the service block 1, the service block 2, the service block 3, and the service block 4 to be transmitted, the four service blocks are sequentially transmitted to the three master modules according to the order of the master modules 1 to 3 described in the first set order, that is: and correspondingly transmitting the service block 1, the service block 2 and the service block 3 to the main control module 1, the main control module 2 and the main control module 3, and correspondingly transmitting the service block 4 to the main control module 1.
It can be understood that by disregarding the destination address (such as the IO destination address, which is a logical address in the multi-control array storage) carried by the service block itself, it can be ensured that each service block is issued to each main control module in the multi-control array storage for processing, thereby realizing load balancing. And in the case that the IO address distribution of the service data is extremely asymmetric and the IO blocks are too small, or IO affinity addresses exist, and the like, that is, in the case that most of IO destination addresses carried by the service data are intensively distributed in a smaller IO address range, the serious load imbalance condition caused by frequently sending the service blocks to one or more controllers associated with the smaller IO address range can be avoided.
According to the technical scheme, the performance parameters of each main control module in the multi-control array storage are obtained, the load balancing condition among the main control modules is monitored, the destination address carried by the service block is actively ignored under the condition that the load imbalance is about to occur among the main control modules, and each service block is sent to each main control module according to the first setting sequence, so that the load balancing is carried out on each main control module, and the usability is improved.
As a possible implementation manner, the load balancing method of the multi-control array storage provided by the application may be executed by a performance affinity balancing (PAB, performance Affinity Balance) management module configured for the multi-control array storage.
In specific implementation, the multi-control array storage can be initialized to a first mode (a common mode) or a second mode (a high load balancing mode) by the PAB management module according to the load size required to be processed by each main control module in the multi-control array storage, so that the PAB management module accurately judges whether each main control module is unbalanced according to a set performance threshold corresponding to the current mode, and executes load balancing operation corresponding to the current mode when the load is unbalanced, thereby effectively realizing load balancing of each main control module.
The first mode and the second mode will be described below with reference to the first embodiment and the second embodiment.
Embodiment one
The present embodiment describes an example of the first mode (normal mode).
In this embodiment, after initializing the multi-control array storage to the first mode, each service block may be directly sent to a corresponding main control module according to data address information (i.e. an IO destination address) carried by each service block, and whether the performance parameter of each main control module is greater than a set performance threshold corresponding to the first mode is periodically detected, so as to determine whether a load imbalance situation occurs.
In one embodiment, to reduce misjudgment on the load imbalance condition, it may be detected whether a master control module with a performance parameter greater than a first performance threshold exists in each master control module in a first time period. And under the condition that the master control modules with performance parameters larger than a first performance threshold exist in each master control module in the first time period, triggering primary load unbalance early warning, and detecting whether the triggering number of the primary load unbalance early warning in the first time period of a first set number is larger than a first early warning frequency threshold or not.
If the triggering number of the primary load unbalance pre-warning in the first time period of the first set number is larger than the first pre-warning frequency threshold value, judging that a load unbalance condition exists, and executing load balancing operation corresponding to the first mode: and sequentially sending each service block to each main control module according to a first set sequence.
If the trigger number of the primary load unbalance pre-warning in the first time period is not greater than the first pre-warning frequency threshold value, judging that the load unbalance condition does not exist, deleting the trigger record of the primary load unbalance pre-warning, and continuously detecting whether the master control modules with the performance parameters greater than the first performance threshold value exist in each master control module in the first time period when the next first time period arrives.
As a possible implementation manner, considering that in the case that the load required to be processed by each master control module is large, a better load balancing effect may not be achieved through the load balancing operation corresponding to the first mode, mode switching (for example, switching to the second mode) may be performed at this time, so as to perform the load balancing operation more suitable for the high load situation, thereby implementing multi-mode-based multi-load balancing optimization.
In specific implementation, it may be detected whether a master control module having a performance parameter greater than a second performance threshold exists in each of the master control modules within a second time period. And under the condition that the main control modules with performance parameters larger than a second performance threshold exist in each main control module in a second time period, triggering primary load unbalance early warning, and sending a mode switching inquiry request, thereby informing the outside (such as a user) that the load unbalance condition exists currently, and inquiring whether to switch modes.
And under the condition that a first command aiming at the mode switching query request is received, switching the multi-control array from a first mode to a second mode, wherein the second mode is used for triggering and executing the operations of adjusting the size of the service block according to the distribution range of the service block issuing address (such as the IO starting address of the service input/output data block) and sequentially sending each target service block with the adjusted size of the service block to each main control module according to the first setting sequence. The second mode will be specifically described in the following second embodiment, and will not be described herein.
Second embodiment
This embodiment describes an example of the second mode (high load balancing mode).
It should be noted that the second mode may be entered in the following two ways: directly initializing the multi-control array storage into a second mode; the method of embodiment one switches the multi-control array memory from the first mode to the second mode.
Taking the initialization of the multi-control array storage as the second mode as an example, at this time, each service block can be directly sent to a corresponding main control module according to the data address information carried by each service block, and whether the performance parameter of each main control module is greater than the set performance threshold corresponding to the second mode is periodically detected, so as to judge whether the load unbalance condition occurs.
Specifically, it may be detected whether a master control module having a performance parameter greater than a third performance threshold exists in each of the master control modules. If the master control modules with performance parameters larger than the third performance threshold exist in the master control modules, the situation that load unbalance exists can be judged, at the moment, secondary load unbalance early warning is triggered, and load balancing operation corresponding to the second mode is executed:
and detecting the distribution range of the service block issuing address for the set times in a third time period, and determining the size of the target block according to the obtained first detection result of the distribution range of the service block issuing address. And adjusting the size of the service blocks according to the size of the target blocks, and sequentially sending each target service block with the adjusted size of the service blocks to each main control module according to a first setting sequence. It can be understood that, considering that when the service blocks are issued sequentially according to the first set sequence, excessive load is still borne by part of the main control modules due to unreasonable size of the service blocks (such as oversized service blocks), so that load imbalance is caused. Therefore, before the service blocks are sequentially issued according to the first set sequence, the sizes of the service blocks can be reasonably adjusted according to the distribution range of the issuing addresses of the service blocks so as to further realize load balancing optimization.
As a possible implementation manner, a first distribution range corresponding to a set distribution ratio in the distribution range may be determined according to the first detection result, where the set distribution ratio is used to find the first distribution range including more service block issuing addresses (i.e. the distribution ratio is relatively large) in the first detection result. And determining the size of a first service segment according to the size of each service block corresponding to the first distribution range, wherein the first service segment comprises a starting address and a terminating address of each issued service block corresponding to the first distribution range and is used for counting the size of each issued service block. And determining the target block size according to the size of the first service segment and the number of the main control modules in the multi-control array storage, for example, the ratio between the size of the first service segment and the number of the main control modules in the multi-control array storage can be used as the target block size so that the sum of the sizes of the service blocks received by each main control module in the follow-up process tends to be consistent.
In one embodiment, if a better load balancing effect is still not achieved after the block size is adjusted, part of the service blocks which should be sent to the master control module with larger load can be actively sent to other master control modules. Specifically, after each target service block after the service block size is adjusted is sequentially sent to each master control module according to the first setting sequence, whether a master control module with a performance parameter greater than a fourth performance threshold exists in each master control module can be detected.
And under the condition that the main control modules with performance parameters larger than a fourth performance threshold exist in the main control modules, triggering three-level load unbalance warning, respectively associating each service block issuing address in a first distribution range with at least two main control modules, and sequentially transmitting each service block to be transmitted corresponding to any service block issuing address in the first distribution range to each main control module associated with the service block issuing address according to a second setting sequence, wherein the second setting sequence describes the arrangement sequence of each main control module associated with the service block issuing address. And the other main control modules are scheduled to share a part of service blocks which are supposed to be processed by the main control module with larger load (namely, the service blocks send out the partial service blocks to be sent of the address in the first distribution range) by adjusting the association relation between the address and the main control module.
As a possible implementation, to avoid that the resized traffic block is too small to occupy too much of the blocking processing resources and transmission resources (e.g. resulting in too large total number of transmissions), a minimum blocking size may be set for limiting. Specifically, after determining the first block size (such as the ratio between the size of the first service segment and the number of the main control modules in the multi-control array storage) according to the first detection result, it may be detected whether the first block size is smaller than the set minimum block size, where the set minimum block size is determined as the target block size, and where the first block size is not smaller than the set minimum block size, the first block size is determined as the target block size.
The above technical scheme is further described below with reference to fig. 2. Taking the load balancing system shown in fig. 2 as an example, the PAB management module is configured to execute the load balancing method of multi-control array storage provided in the present application, so as to dynamically adjust the dividing and issuing processes of the service blocks. The business block is obtained by partitioning business input/output data through a target module which is related to the multi-control array storage and is scheduled by the PAB management module, and the target module is any one of the following: a business module; an exchange module; a front end module; a main control module; and a back end module.
The following first describes each module included in the load balancing system. The front end module, the main control module and the rear end module are components of multi-control array storage.
PAB management module:
the module is positioned on a board card stored by the multi-control array, and can dynamically manage the service module, the exchange module, the front end module, the main control module and the rear end module in a high load balancing mode and a common mode respectively.
And a service module:
the module is generally equipment such as a service server of a user and is connected with a front-end module stored in the multi-control array through a switching module. The PAB management module manages the traffic modules in the form of system plug-ins, such as multipath software, etc.
And (3) an exchange module:
the module is used for connecting the service module and the front-end module, and can be a high-speed switch based on protocols such as a mesh Channel (FC)/Internet protocol (IP, internet Protocol)/a remote memory direct access technology (RoCE, remote Direct Memory Access over Converged Ethernet) based on a converged Ethernet, and the like, and the PAB management module is used for managing the switching module in the form of customized FirmWare (FW, firmWare) or an independent programming logic module (such as an ARM processor).
Front end module:
the module is positioned in the multi-control array storage and is controlled by the PAB management module, and is generally a front-end interface card such as FC/IP/RoCE.
And the main control module:
the module is a controller for multi-control array storage and is used for bearing and storing system software.
And a back end module: the module is located on the storage and is controlled by the PAB management module, and is generally a back-end interface card such as SAS/PCIE/Ethernet.
An indication module: the module is positioned on the board and is directly controlled by the serial port module to externally indicate the real-time state of the current PAB management module.
And a wireless module:
the serial port module signals can be converted into wireless signals such as WIFI and the like, and the outside can interact information with the PAB management module without using an entity serial port line.
Serial port module:
information interaction between the outside and the PAB management module, parameter presetting and opening of related functions can be performed through the serial port module.
In the specific implementation, the management module acts on other modules in the load balancing system in the form of system software or an independent programming logic module, the PAB management module acquires performance data (such as IOPS, bandwidth, time delay, CPU utilization rate of each main control module and the like) of the service module, the front end module, the rear end module and the main control module in real time, and the PAB management module can send the service IO data in real time in blocks through the service module and can dynamically adjust the sizes of the blocks.
In addition, the PAB management module is embedded with theoretical load balancing performance A corresponding to the controller when processing loads under various service models (such as size data blocks, random/sequence and read/write). Meanwhile, the PAB management module can acquire the real-time performance B of each current controller through the main control module.
In the normal mode, the PAB management module includes the final data address information in the IO block issued by the service module in a blocking way, so that the IO block can be issued to the corresponding main control module directly.
In the time period T1 (i.e., the first time period may be 30 min), when the PAB detects that the real-time performance B of any controller is greater than a×c1 (i.e., the first performance threshold, such as a×1.2), a primary load imbalance early warning is triggered. If the early warning times in the following M (i.e. the first set number, such as 6) T1 periods are not more than N (i.e. the first early warning times threshold value, such as 3), the early warning is canceled; if the early warning times are greater than N in the following M T1 periods, the PAB management module actively ignores the final data address information contained in the issued IO blocks, and sequentially issues the IO blocks to each controller according to a first setting sequence.
If the real-time performance B of any controller detected by the PAB management module is greater than a×c2 (i.e. a second performance threshold, such as a×1.18) during a time period T2 (i.e. a second time period, such as 20 min), a primary load imbalance warning is triggered and an external inquiry is made as to whether to switch to the high load balancing mode.
In the high load balancing mode, the PAB management module can also directly issue the IO blocks to the corresponding main control modules through the final data address information contained in the IO blocks issued by the service module in a blocking mode.
When the PAB management module detects that the real-time performance B of any controller is greater than A×C3 (i.e. a third performance threshold is equal to A×1.15), triggering a secondary load unbalance warning, detecting the distribution range (i.e. 1ms sampling) of the IO target address for P times (i.e. set times, such as 1000) in a time period T3 (i.e. a third time period is equal to 1 s), counting the size of the IO section (i.e. a first service section) as E1 according to the area with the address distribution ratio of D (i.e. set distribution ratio, such as 85%), and if E1/Q (Q is the number of controllers) is not greater than the minimum section allowed by PAB (i.e. set minimum block size), directly adjusting the current block size to the minimum section size by the PAB management module; if E1/Q is greater than the minimum segmentation allowed by the PAB, the PAB adjusts the current block size to E1/Q. The PAB management module then ignores the final data address information contained in the issued IO blocks, and sequentially issues the adjusted IO blocks to each controller.
After the PAB management module adjusts the block size to E1/Q, when the PAB management module detects that any controller performance B is greater than a×c4 (i.e. a fourth performance threshold, such as a×1.12), a three-level load imbalance warning is triggered. Optionally, when the load unbalance warning of each stage is triggered, the PAB management module outputs alarm information of a corresponding stage to the outside for analysis and processing by a user.
Meanwhile, the PAB management module modifies the association relation between the IO address and the controller through the back-end module so as to move the data of the area corresponding to the first service segment. It can be understood that, although the actual address issued by the service block is changed (i.e. a part of the service block is sent to other controllers), statistics is still performed according to the address before the change during detection, so that when the distribution range of the IO target address is detected P times in the time period T3, the size of the IO segment is counted as k×e1×q (including the service blocks received by all the associated controllers) according to the area with the address distribution ratio of D, where K is a data shifting factor.
It should be noted that the above parameters (such as A, C, C2, C3, C4, D, T1, T2, T3, P, M, N, and K) are all preset parameters of the system, and can be adjusted by a serial port module in the system. The PAB management module is used for dynamically managing the service module, the exchange module, the front end module, the main control module and the rear end module, particularly for carrying out multiple load balancing optimization in a high load balancing mode, so that load unbalance among multiple controllers can be avoided under the condition that the reliability of a cluster is not affected, and the usability of the whole system is further improved.
In a second aspect, an embodiment of the present application provides a load balancing apparatus for multi-control array storage, as shown in fig. 3, where the apparatus includes:
the first obtaining module 11 is configured to obtain performance parameters of each main control module in the multi-control array storage;
a first detection module 12, configured to detect whether a performance parameter of each of the master control modules is greater than a set performance threshold;
and the first sending module 13 is configured to send each service block to each master control module in sequence according to a first setting sequence when the performance parameter of each master control module is greater than a set performance threshold, where the first setting sequence describes the arrangement sequence of each master control module.
Optionally, before acquiring the performance parameters of each master control module in the multi-control array storage, the apparatus further includes:
the first initialization module is used for initializing the multi-control array storage to a first mode;
the first detection module 12 includes:
the first detection sub-module is used for detecting whether a main control module with performance parameters larger than a first performance threshold exists in each main control module in a first time period;
the second detection sub-module is used for triggering primary load unbalance early warning when the main control modules with performance parameters larger than a first performance threshold exist in each main control module in the first time period, and detecting whether the triggering quantity of the primary load unbalance early warning in the first time period of a first set quantity is larger than a first early warning frequency threshold or not;
The first transmitting module 13 includes:
and the first sending sub-module is used for sequentially sending each service block to each main control module according to a first setting sequence under the condition that the triggering number of the primary load unbalance early warning in the first time period of the first setting number is larger than a first early warning frequency threshold value.
Optionally, the apparatus further comprises:
the second detection module is used for detecting whether the main control modules with performance parameters larger than a second performance threshold exist in the main control modules in a second time period;
the first query module is used for triggering primary load unbalance early warning and sending a mode switching query request under the condition that the main control modules with performance parameters larger than a second performance threshold exist in each main control module in the second time period;
and the first switching module is used for switching the multi-control array from the first mode to the second mode under the condition of receiving a first command aiming at the mode switching query request, and the second mode is used for triggering and executing the operations of adjusting the size of the service blocks according to the distribution range of the service block issuing addresses and sequentially sending each target service block with the adjusted size of the service blocks to each main control module according to the first setting sequence.
Optionally, before acquiring the performance parameters of each master control module in the multi-control array storage, the apparatus further includes:
the second initialization module is used for initializing the multi-control array storage to a second mode;
the first detection module 12 includes:
the third detection sub-module is used for detecting whether the main control modules with performance parameters larger than a third performance threshold exist in the main control modules;
the first transmitting module 13 includes:
the first processing module is used for triggering the secondary load unbalance early warning when the main control modules with the performance parameters larger than a third performance threshold exist in the main control modules, and executing detection of set times for the distribution range of the service block issuing addresses in a third time period;
the second processing module is used for determining the size of the target block according to the obtained first detection result of the distribution range of the service block issuing address;
and the third processing module is used for adjusting the size of the service block according to the size of the target block and sequentially sending each target service block with the adjusted size of the service block to each main control module according to the first setting sequence.
Optionally, the second processing module includes:
The first processing submodule is used for determining a first distribution range corresponding to a set distribution duty ratio in the distribution range according to the first detection result;
the second processing sub-module is used for determining the size of the first service segment according to the size of each service block corresponding to the first distribution range;
and the third processing sub-module is used for determining the size of the target block according to the size of the first service segment and the number of the main control modules in the multi-control array storage.
Optionally, after each target service block after the service block size is adjusted is sequentially sent to each master control module according to the first setting sequence, the apparatus further includes:
the third detection module is used for detecting whether a main control module with performance parameters larger than a fourth performance threshold exists in each main control module;
the first association module is used for triggering three-level load unbalance warning and associating each service block issuing address in the first distribution range with at least two main control modules respectively under the condition that the main control modules with performance parameters larger than a fourth performance threshold exist in each main control module;
and the second sending module is used for sequentially sending the business blocks to be sent to the main control modules associated with the business block issuing addresses according to a second set sequence for each business block to be sent corresponding to any business block issuing address in the first distribution range, wherein the second set sequence describes the arrangement sequence of the main control modules associated with the business block issuing addresses.
Optionally, the second processing module includes:
a fourth processing sub-module, configured to determine a first block size according to the first detection result;
a fifth processing sub-module, configured to detect whether the first block size is smaller than a set minimum block size;
a sixth processing sub-module configured to determine the set minimum block size as the target block size if the first block size is smaller than the set minimum block size;
a seventh processing sub-module, configured to determine the first block size as the target block size if the first block size is not smaller than the set minimum block size.
Optionally, the service block is obtained by partitioning service input/output data by the target module associated with the multi-control array storage, where the target module is any one of the following: a business module; an exchange module; a front end module; a main control module; and a back end module.
According to the technical scheme, the performance parameters of each main control module in the multi-control array storage are obtained, the load balancing condition among the main control modules is monitored, the destination address carried by the service block is actively ignored under the condition that the load imbalance is about to occur among the main control modules, and each service block is sent to each main control module according to the first setting sequence, so that the load balancing is carried out on each main control module, and the usability is improved.
It should be noted that, the device embodiment is similar to the method embodiment, so the description is simpler, and the relevant places refer to the method embodiment.
The embodiment of the application also provides an electronic device, and referring to fig. 4, fig. 4 is a schematic diagram of the electronic device according to the embodiment of the application. As shown in fig. 4, the electronic device 100 includes: the memory 110 and the processor 120 are connected through bus communication, and a computer program is stored in the memory 110 and can run on the processor 120, so that the steps in the load balancing method of the multi-control array storage disclosed in the embodiment of the application are realized.
The embodiment of the application also provides a computer readable storage medium, referring to fig. 5, and fig. 5 is a schematic diagram of the computer readable storage medium according to the embodiment of the application. As shown in fig. 5, a computer readable storage medium 200 has stored thereon a computer program/instruction 210, which computer program/instruction 210, when executed by a processor, implements steps in a load balancing method for multi-control array storage as disclosed in embodiments of the present application.
Embodiments of the present application also provide a computer program product comprising computer programs/instructions which, when executed by a processor, implement steps in a load balancing method of multi-control array storage as disclosed in embodiments of the present application.
In this specification, each embodiment is described in a progressive manner, and each embodiment is mainly described by differences from other embodiments, and identical and similar parts between the embodiments are all enough to be referred to each other.
It will be apparent to those skilled in the art that embodiments of the present application may be provided as a method, apparatus, or computer program product. Accordingly, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present application may take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
Embodiments of the present application are described with reference to flowchart illustrations and/or block diagrams of methods, systems, devices, storage media, and program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing terminal device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal device, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present embodiments have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. It is therefore intended that the following claims be interpreted as including the preferred embodiments and all such alterations and modifications as fall within the scope of the embodiments of the present application.
Finally, it is further noted that relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or terminal that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or terminal. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article or terminal device comprising the element.
The load balancing method, device and equipment for multi-control array storage provided by the application are described in detail, and specific examples are applied to illustrate the principle and implementation of the application, and the description of the above examples is only used for helping to understand the method and core ideas of the application; meanwhile, as those skilled in the art will have modifications in the specific embodiments and application scope in accordance with the ideas of the present application, the present description should not be construed as limiting the present application in view of the above.

Claims (10)

1. A load balancing method for multi-control array storage, the method comprising:
acquiring performance parameters of each main control module in the multi-control array storage;
detecting whether the performance parameters of each main control module are larger than a set performance threshold;
and under the condition that the performance parameters of the main control modules are larger than the set performance threshold, sequentially sending the service blocks to the main control modules according to a first set sequence, wherein the first set sequence describes the arrangement sequence of the main control modules.
2. The method of claim 1, wherein prior to obtaining performance parameters of each master module in the multi-control array storage, the method further comprises:
initializing the multi-control array storage to a first mode;
detecting whether the performance parameters of the main control modules are larger than a set performance threshold value comprises the following steps:
detecting whether a master control module with performance parameters larger than a first performance threshold exists in each master control module in a first time period;
triggering primary load unbalance early warning under the condition that a main control module with performance parameters larger than a first performance threshold exists in each main control module in the first time period, and detecting whether the triggering number of primary load unbalance early warning in a first time period of a first set number is larger than a first early warning frequency threshold or not;
And under the condition that the performance parameter of each main control module is larger than a set performance threshold, sequentially sending each service block to each main control module according to a first set sequence, wherein the method comprises the following steps:
and under the condition that the triggering number of the primary load unbalance pre-warning in the first time period of the first set number is larger than a first pre-warning frequency threshold value, sequentially sending each service block to each main control module according to a first set sequence.
3. The method according to claim 2, wherein the method further comprises:
detecting whether a master control module with performance parameters larger than a second performance threshold exists in each master control module in a second time period;
triggering primary load unbalance early warning and sending a mode switching query request under the condition that a main control module with performance parameters larger than a second performance threshold exists in each main control module in the second time period;
and under the condition that a first command aiming at the mode switching query request is received, switching the multi-control array from the first mode to a second mode, wherein the second mode is used for triggering and executing the operations of adjusting the size of the service blocks according to the distribution range of the service block issuing addresses and sequentially sending each target service block with the adjusted service block size to each main control module according to the first setting sequence.
4. The method of claim 1, wherein prior to obtaining performance parameters of each master module in the multi-control array storage, the method further comprises:
initializing the multi-control array storage to a second mode;
detecting whether the performance parameters of the main control modules are larger than a set performance threshold value comprises the following steps:
detecting whether a master control module with performance parameters larger than a third performance threshold exists in each master control module;
and under the condition that the performance parameter of each main control module is larger than a set performance threshold, sequentially sending each service block to each main control module according to a first set sequence, wherein the method comprises the following steps:
triggering secondary load unbalance early warning under the condition that a main control module with performance parameters larger than a third performance threshold exists in each main control module, and executing detection of set times aiming at the distribution range of service block issuing addresses in a third time period;
determining the size of a target block according to the obtained first detection result of the distribution range of the service block issuing address;
and adjusting the size of the service blocks according to the size of the target blocks, and sequentially sending each target service block with the adjusted size of the service blocks to each main control module according to a first setting sequence.
5. The method of claim 4, wherein determining the target block size based on the obtained first detection result for the distribution range of the service block delivery addresses comprises:
according to the first detection result, a first distribution range corresponding to a set distribution ratio in the distribution range is determined;
determining the size of a first service segment according to the size of each service block corresponding to the first distribution range;
and determining the size of the target block according to the size of the first service segment and the number of the main control modules in the multi-control array storage.
6. The method of claim 5, wherein after sequentially transmitting each target service block after the service block size adjustment to each master control module according to the first set order, the method further comprises:
detecting whether a master control module with performance parameters larger than a fourth performance threshold exists in each master control module;
triggering a three-level load unbalance warning and respectively associating each service block issuing address in the first distribution range with at least two main control modules under the condition that the main control modules with performance parameters larger than a fourth performance threshold exist in each main control module;
And for each service block to be transmitted corresponding to any service block issuing address in the first distribution range, sequentially transmitting each service block to be transmitted to each main control module associated with the service block issuing address according to a second set sequence, wherein the second set sequence describes the arrangement sequence of each main control module associated with the service block issuing address.
7. The method of claim 4, wherein determining the target block size based on the obtained first detection result for the distribution range of the service block delivery addresses comprises:
determining a first block size according to the first detection result;
detecting whether the first block size is smaller than a set minimum block size;
determining the set minimum block size as the target block size if the first block size is smaller than the set minimum block size;
and determining the first block size as the target block size in the case that the first block size is not smaller than the set minimum block size.
8. The method according to any one of claims 1-7, wherein the service block is obtained by blocking service input/output data by the multi-control array storage associated target module, the target module being any one of: a business module; an exchange module; a front end module; a main control module; and a back end module.
9. A load balancing apparatus for multi-control array storage, the apparatus comprising:
the first acquisition module is used for acquiring performance parameters of each main control module in the multi-control array storage;
the first detection module is used for detecting whether the performance parameters of each main control module are larger than a set performance threshold value or not;
and the first sending module is used for sequentially sending each service block to each main control module according to a first setting sequence under the condition that the performance parameter of each main control module is larger than a set performance threshold value, and the first setting sequence describes the arrangement sequence of each main control module.
10. An electronic device comprising a memory, a processor and a computer program stored on the memory, wherein the processor executes the computer program to implement a load balancing method of multi-control array storage as claimed in any one of claims 1 to 8.
CN202310382704.9A 2023-04-11 2023-04-11 Load balancing method, device and equipment for multi-control array storage Pending CN116431345A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310382704.9A CN116431345A (en) 2023-04-11 2023-04-11 Load balancing method, device and equipment for multi-control array storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310382704.9A CN116431345A (en) 2023-04-11 2023-04-11 Load balancing method, device and equipment for multi-control array storage

Publications (1)

Publication Number Publication Date
CN116431345A true CN116431345A (en) 2023-07-14

Family

ID=87084950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310382704.9A Pending CN116431345A (en) 2023-04-11 2023-04-11 Load balancing method, device and equipment for multi-control array storage

Country Status (1)

Country Link
CN (1) CN116431345A (en)

Similar Documents

Publication Publication Date Title
US8732380B2 (en) System and method for using a multipath
US20180052789A1 (en) Direct Memory Access Transmission Control Method and Apparatus
CN111190745B (en) Data processing method, device and computer readable storage medium
CN110224944B (en) Distributed network flow control method and device
US9128633B2 (en) Semiconductor memory device and method of operating the semiconductor memory device
CN107395521B (en) Big data information processing method and system based on Internet of things
CN112565035B (en) Data transmission method, device and storage medium
CN112737940A (en) Data transmission method and device
CN116248699B (en) Data reading method, device, equipment and storage medium in multi-copy scene
CN116431345A (en) Load balancing method, device and equipment for multi-control array storage
CN1829231B (en) Method and apparatus for direct reception of inbound data
CN102546652A (en) System and method for server load balancing
CN113923222B (en) Data processing method and device
US11106680B2 (en) System, method of real-time processing under resource constraint at edge
CN104468337A (en) Message transmission method and device, message management center device and data centers
CN113992609A (en) Method and system for processing multilink service data disorder
CN112653717B (en) Multi-cloud cooperation distributed system and application distribution method
CN113485749A (en) Data management and control system and data management and control method
CN112131154A (en) DMA transmission control method for dynamically matching channel and service
CN110309225B (en) Data processing method and system
CN113141267A (en) Firmware upgrading and information processing method, device and equipment
CN110798242A (en) Circuit, multi-channel device and multi-channel short message sending method
CN106559351B (en) Message processing method, SDN controller and network element
US7380030B2 (en) Method and system for using an in-line credit extender with a host bus adapter
CN116048413B (en) IO request processing method, device and system for multipath storage and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination