CN114860634B - Forwarding and current limiting method and device for write IO between storage controllers and storage medium - Google Patents

Forwarding and current limiting method and device for write IO between storage controllers and storage medium Download PDF

Info

Publication number
CN114860634B
CN114860634B CN202210466249.6A CN202210466249A CN114860634B CN 114860634 B CN114860634 B CN 114860634B CN 202210466249 A CN202210466249 A CN 202210466249A CN 114860634 B CN114860634 B CN 114860634B
Authority
CN
China
Prior art keywords
forwarding
node
write
forwarding module
writing
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.)
Active
Application number
CN202210466249.6A
Other languages
Chinese (zh)
Other versions
CN114860634A (en
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 CN202210466249.6A priority Critical patent/CN114860634B/en
Publication of CN114860634A publication Critical patent/CN114860634A/en
Application granted granted Critical
Publication of CN114860634B publication Critical patent/CN114860634B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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

Abstract

The invention relates to a forwarding and current limiting method, a forwarding and current limiting device and a storage medium for write IO among storage controllers. The method comprises the following steps: detecting whether all node caches in the cluster are full; if yes, notifying the buffer write-up to the IO forwarding module of each node, and switching the IO forwarding module of the node to execute a second write mode; the IO forwarding module of the forwarding node in the second writing mode forwards the writing IO without data issued by the host to the IO forwarding module of the destination node, the destination node determines the whole limiting capacity according to the buffer idle capacity of the writing IO without data, the whole limiting capacity is divided into sub-limiting capacities, the IO forwarding module of the destination node requests the IO forwarding module of the forwarding node for writing IO data according to the sub-limiting capacities, and the IO forwarding module of the forwarding node requests the host for writing IO data according to the sub-limiting capacities and transmits the IO data to the IO forwarding module of the destination node; otherwise, the IO forwarding module of the node executes the first write mode. The destination node decides the whole limited traffic according to the buffer idle traffic, and ensures the full utilization of the write IO processing capacity of the destination node.

Description

Forwarding and current limiting method and device for write IO between storage controllers and storage medium
Technical Field
The present invention relates to the field of write IO forwarding current limiting control, and in particular, to a method, an apparatus, and a storage medium for forwarding current limiting of write IOs between storage controllers.
Background
In a common SAN storage device, in order to achieve the purpose of load balancing, an IO forwarding module is required to be used for forwarding write IOs among a plurality of storage controllers of the SAN storage device, namely when write IOs issued from a host arrive at one storage controller of the SAN storage device, the IO forwarding module of the storage controller forwards the issued write IOs to other storage controller IO forwarding modules for processing, so that each storage controller can participate in the host write IO processing process, and load balancing is achieved.
For the process of forwarding the write IO, in order to improve the performance of the system, the storage controller responds to the host as soon as possible, the storage controller A issued by the write IO generally acquires write data from the host, then the storage controller A forwards the write data to the storage controller B to which the write IO is forwarded, the storage controller B writes the write data into the cache, replies to the storage controller A that the write IO is completed, and finally the storage controller A replies to the host that the write IO is successful. In practical applications, the buffer write-up is performed when the buffers managed by the storage controllers a and B are full, and the host IO needs to be limited. Based on the above scenario, the mainstream design is that the storage controller a to which the write IO is issued by the host performs IO current limiting, that is, the storage controller a limits the bandwidth issued by the host to achieve the purpose of IO current limiting, at this time, the current limiting right of the host IO is at the forwarding node, the forwarding node executes a preset limiting amount, if the current limiting amount still causes the buffer memory to accumulate and the forwarding congestion, the limiting amount is reduced layer by layer based on the preset layered limiting amount, the processing capability of the destination node to which the write IO is forwarded is not considered by the current limiting control policy, and the processing capability of the destination node is not matched, which may cause the current limiting to limit the processing efficiency of the write IO of the destination node, and the processing efficiency of the write IO cannot be maximized.
Disclosure of Invention
In order to solve the technical problems or at least partially solve the technical problems, the invention provides a forwarding and current limiting method, a forwarding and current limiting device and a storage medium for write IO between storage controllers.
In a first aspect, the present invention provides a forwarding and current limiting method for write IO between storage controllers, including:
detecting whether all node caches in the SAN storage cluster are full;
if yes, notifying the buffer fullness to the IO forwarding module of each node, and responding the buffer fullness switching by the IO forwarding module of the node to execute a second writing mode, wherein the second writing mode comprises: the IO forwarding module of at least one forwarding node forwards write IO sent by a host without data to the IO forwarding module of a destination node, the destination node determines overall limiting capacity according to the buffer idle capacity of the IO forwarding module, the overall limiting capacity is divided into sub-limiting capacities distributed to all forwarding nodes, the IO forwarding module of the destination node requests the IO forwarding module of the corresponding forwarding node to write IO data according to the sub-limiting capacities, and the IO forwarding module of the forwarding node requests the host to write IO data according to the sub-limiting capacities and transmits the IO data to the IO forwarding module of the destination node;
otherwise, the IO forwarding module of the node responds to the buffer underfilling switching to execute the first writing mode, and exits the current limit of the writing IO.
Further, a buffer threshold value for representing the occupation space of the write buffer in the buffer is preset for each node respectively; when the occupied space of the write cache in the node cache is larger than the cache threshold value, judging that the node cache is full; and when the occupied space of the write cache in the node cache is lower than the cache threshold value, judging that the node cache is not fully written.
Still further, the first write mode includes:
the host computer transmits the write IO to an IO forwarding module of at least one forwarding node;
the IO forwarding module of the forwarding node acquires corresponding write IO data from the host according to the received write IO;
the IO forwarding module of the forwarding node forwards the write IO and the corresponding write IO data to the IO forwarding module of the destination node;
the IO forwarding module of the destination node submits the write IO and write IO data forwarded by the IO forwarding module of the forwarding node to a cache;
after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node;
the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the successful writing, and the forwarding module of the forwarding node responds to the host computer for the successful writing.
Still further, the second write mode includes:
the host computer transmits the write IO to an IO forwarding module of at least one forwarding node;
the IO forwarding module of the forwarding node forwards the obtained write IO without data to the IO forwarding module of the destination node;
the destination node determines the whole limiting capacity according to the buffer idle capacity of the destination node, and distributes the whole limiting capacity into sub-limiting capacities distributed to all forwarding nodes of the destination node;
the IO forwarding module of the destination node requests IO write data to the IO forwarding module of the corresponding forwarding node according to the sub-limit flow;
the IO forwarding module of the forwarding node requests the host to write IO data according to the sub-limit flow;
the host computer issues the write IO data according to the request of the IO forwarding module of the forwarding node;
the IO forwarding module of the forwarding node transmits the write IO data issued by the host to the IO forwarding module of the destination node;
the IO forwarding module of the destination node submits the write IO data forwarded by the IO forwarding module of the forwarding node to a cache;
after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node;
the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the success of IO writing, and the forwarding module of the forwarding node responds to the host computer with the success of IO writing.
Further, when the whole limited traffic is divided into sub-limited traffic distributed to each forwarding node, the whole limited traffic is divided into a plurality of sub-limited traffic according to the data volume duty ratio of the write IO forwarded by each forwarding node.
Furthermore, under the condition of the write IO current limit, a forwarding node forwards the write IO to a plurality of destination nodes, and the sub-current limit amounts of all destination nodes forwarded by the forwarding node at the same time are overlapped to form the total write IO current limit amount of the forwarding node to the host.
In a second aspect, the present invention provides a forwarding and current limiting device for write IO between storage controllers based on a forwarding and current limiting method for write IO between storage controllers, including: at least two nodes configured with an IO forwarding module and a cache, wherein the IO forwarding module is configured with a first write mode and a second write mode; and, a step of, in the first embodiment,
the host computer of the coupling node, the said host computer issues and writes IO to the node and issues and writes IO data of IO according to the node request; and, a step of, in the first embodiment,
the cache fullness detection module detects whether the caches of all the nodes are full;
the IO forwarding module is coupled with the buffer memory full detection module, and is switched to the second write mode when the full detection module detects that all the node buffers are full, and is switched to the first write mode when the full detection module does not detect that all the node buffers are full.
Further, when the node where the IO forwarding module is located is a forwarding node and executes the second writing mode, forwarding the writing IO issued by the host to the IO forwarding module of the destination node without data, requesting the host for writing IO data by the IO forwarding module of the forwarding node according to the sub-limit flow transmitted by the IO forwarding module of the destination node, forwarding the writing IO data received from the host to the IO forwarding module of the destination node, and responding to the success of writing IO by the host after the success of writing IO is notified by the IO forwarding module of the destination node;
when the node where the IO forwarding module is located is a destination node and executes the second writing mode, the IO forwarding module of the destination node receives writing IO without writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO to a cache, the integral limiting quantity is determined according to the buffer idle quantity of the destination node, the integral limiting quantity is distributed to sub-limiting quantities distributed to all forwarding nodes, the IO forwarding module of the destination node requests data to the IO forwarding module of the corresponding forwarding node according to the sub-limiting quantities, the IO forwarding module of the destination node receives writing IO data transmitted by the IO forwarding module of the forwarding node according to the sub-limiting quantities and provides the writing IO data to the cache, and the IO forwarding module of the forwarding node is informed of successful IO writing when the feedback IO writing of the writing IO data written into the nonvolatile memory by the cache is received.
Further, when the node where the IO forwarding module is located is a forwarding node and executes the first writing mode, the IO forwarding module of the forwarding node receives writing IO issued by the host, requests writing IO data to the host according to the writing IO, the IO forwarding module of the forwarding node receives the writing IO data issued by the host, forwards the writing IO and the writing IO data received from the host to the IO forwarding module of the destination node, and responds to the success of writing IO of the host after the IO forwarding module of the destination node notifies that the writing IO is successful;
when the node where the IO forwarding module is located is a destination node and the first writing mode is executed, the IO forwarding module of the destination node receives the writing IO and writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO and writing IO data to the cache, and when receiving feedback IO writing success of writing the writing IO data into the nonvolatile memory by the cache, the IO forwarding module of the destination node informs the IO forwarding module of the forwarding node that IO writing is successful.
In a third aspect, the present invention provides a storage medium for implementing a method for forwarding and limiting write IO between storage controllers, where the storage medium implementing the method for forwarding and limiting write IO between storage controllers stores at least one instruction, and reads and executes the instruction to implement the method for forwarding and limiting write IO between storage controllers.
Compared with the prior art, the technical scheme provided by the embodiment of the invention has the following advantages:
in the invention, before triggering the write IO current limiting, the IO forwarding module is switched to the first write mode, the IO forwarding modules of the forwarding nodes of the write IO of each receiving host request the write IO data from the host, and forward the write IO and the write IO data to the IO forwarding module of the destination node at one time, so that the interaction flow between the forwarding nodes and the destination node can be reduced, and the write IO data forwarding can be completed at one time, thereby being simple and efficient. When the situation that the buffer memory is full and the write IO current limit is needed is met, the second write mode is switched to, so that the target node controls the transmission time of the write data, the control right of the write IO current limit is transferred from the forwarding node to the target node, the target node for processing the write IO determines the whole current limit according to the buffer memory idle quantity and the processing capacity of the target node, and the write IO processing capacity of the target node can be completely released. And the limited traffic is not required to be adjusted step by the forwarding node, so that the system is stable and faster, and forwarding congestion is avoided.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and together with the description, serve to explain the principles of the invention.
In order to more clearly illustrate the embodiments of the invention or the technical solutions of the prior art, the drawings which are used in the description of the embodiments or the prior art will be briefly described, and it will be obvious to a person skilled in the art that other drawings can be obtained from these drawings without inventive effort.
FIG. 1 is a flow chart of a method for forwarding and limiting write IO between storage controllers according to an embodiment of the present invention;
FIG. 2 is a flow chart providing a method for constructing a preprocessing strategy based on a preprocessing configuration in accordance with an embodiment of the present invention;
FIG. 3 is a schematic diagram of a streaming packet including original video data and pre-processed video data according to an embodiment of the present invention;
fig. 4 is a schematic diagram of a forwarding and current limiting device for write IO between storage controllers according to an embodiment of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus 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 apparatus. 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 apparatus that comprises the element.
Example 1
Referring to fig. 1, an embodiment of the present invention provides a forwarding and current limiting method for write IO between storage controllers, including:
s100, a buffer threshold value which indicates the occupation space condition of the write buffer in the buffer and is used for detecting whether the buffer is full is preset for each node. The cache threshold is configured based on the individual node cache parameters.
S200, detecting whether all node caches in the SAN storage cluster are fully written according to comparison of the occupied space of the write cache in the cache and a cache threshold; if yes, S300 is executed, otherwise S400 is executed. Specifically, when the occupied space of the write cache in a node cache is larger than a cache threshold value, judging that the node cache is full; and when the occupied space of the write cache in the node cache is lower than the cache threshold value, judging that the node cache is not fully written.
S300, notifying the IO forwarding module of each node of the buffer fullness, and responding the buffer fullness switching by the IO forwarding module of the node to execute a second writing mode.
In the implementation, referring to fig. 2, the second writing mode includes:
s301, the host computer issues the write IO to an IO forwarding module of at least one forwarding node.
S302, an IO forwarding module of the forwarding node forwards the obtained write IO without data to an IO forwarding module of the destination node.
S303, the destination node determines the whole limited traffic according to the buffer idle amount, and divides the whole limited traffic into sub-limited traffic distributed to each forwarding node. Specifically, when the host transmits the write IO, the size of the write IO data is transmitted, and when the integral limiting capacity is distributed to the sub-limiting capacity of each forwarding node, the integral limiting capacity is divided into a plurality of sub-limiting capacities according to the data volume ratio of the write IO data forwarded by each forwarding node.
S304, the IO forwarding module of the destination node requests IO write data to the IO forwarding module of the corresponding forwarding node according to the sub-limit flow.
S305, the IO forwarding module of the forwarding node requests the host to write IO data according to the sub-limit flow.
S306, the host computer issues the write IO data according to the request of the IO forwarding module of the forwarding node.
S307, the IO forwarding module of the forwarding node transmits the write IO data issued by the host to the IO forwarding module of the destination node.
S308, the IO forwarding module of the destination node submits the write IO data forwarded by the IO forwarding module of the forwarding node to the cache.
S309, after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node.
S310, the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the success of IO writing, and the forwarding module of the forwarding node responds to the host computer that the IO writing is successful.
Under the condition of write IO current limiting, a forwarding node forwards write IO to a plurality of destination nodes, and the sub-current limiting quantities of all destination nodes forwarded by the forwarding node at the same moment are overlapped to form the total write IO current limiting quantity of the forwarding node to a host.
S400, notifying the IO forwarding module of each node of the buffer underwrite, and executing a first write mode by the IO forwarding module of the node in response to the buffer underwrite switching, and exiting the current limit of the write IO.
In the implementation, referring to fig. 3, the first writing mode includes:
s401, the host computer issues the write IO to an IO forwarding module of at least one forwarding node.
S402, the IO forwarding module of the forwarding node acquires corresponding write IO data from the host according to the received write IO.
S403, the IO forwarding module of the forwarding node forwards the write IO and the corresponding write IO data to the IO forwarding module of the destination node.
S404, the IO forwarding module of the destination node submits the write IO and the write IO data forwarded by the IO forwarding module of the forwarding node to the cache.
S405, after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node.
S406, the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the successful writing, and the forwarding module of the forwarding node responds to the host computer for the successful writing.
Example 2
The embodiment of the invention provides a forwarding and current limiting device of write IO between storage controllers based on a forwarding and current limiting method of write IO between storage controllers, which comprises the following steps:
the system comprises at least two nodes configured with an IO forwarding module and a cache, wherein the IO forwarding module is configured with a first write mode and a second write mode. And, a step of, in the first embodiment,
the host computer of the coupling node, the said host computer issues and writes IO to the node and issues and writes IO data of IO according to the node request; in the implementation process, the host computer issues write IO to the node serving as the forwarding node, and issues write IO data according to the request of the forwarding node. And, a step of, in the first embodiment,
the cache fullness detection module detects whether the caches of all the nodes are full;
the IO forwarding module is coupled with the buffer memory full detection module, and is switched to the second write mode when the full detection module detects that all the node buffers are full, and is switched to the first write mode when the full detection module does not detect that all the node buffers are full.
When the node where the IO forwarding module is located is a forwarding node and executes the second writing mode, forwarding the writing IO issued by the host to the IO forwarding module of the destination node without data, requesting the host for writing IO data by the IO forwarding module of the forwarding node according to the sub-limit flow transmitted by the IO forwarding module of the destination node, forwarding the writing IO data received from the host to the IO forwarding module of the destination node, and responding to the success of writing IO by the host after the IO forwarding module of the forwarding node notifies success of writing IO;
when the node where the IO forwarding module is located is a destination node and executes the second writing mode, the IO forwarding module of the destination node receives writing IO without writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO to a cache, the integral limiting quantity is determined according to the buffer idle quantity of the destination node, the integral limiting quantity is distributed to sub-limiting quantities distributed to all forwarding nodes, the IO forwarding module of the destination node requests data to the IO forwarding module of the corresponding forwarding node according to the sub-limiting quantities, the IO forwarding module of the destination node receives writing IO data transmitted by the IO forwarding module of the forwarding node according to the sub-limiting quantities and provides the writing IO data to the cache, and the IO forwarding module of the forwarding node is informed of successful IO writing when the feedback IO writing of the writing IO data written into the nonvolatile memory by the cache is received.
When the node where the IO forwarding module is located is a forwarding node and executes a first writing mode, the IO forwarding module of the forwarding node receives writing IO issued by a host and requests writing IO data to the host according to the writing IO, the IO forwarding module of the forwarding node receives the writing IO data issued by the host and forwards the writing IO and the writing IO data received from the host to the IO forwarding module of the destination node, and after the IO forwarding module of the forwarding node notifies that the writing IO is successful, the IO forwarding module of the forwarding node responds to the success of the host writing IO;
when the node where the IO forwarding module is located is a destination node and the first writing mode is executed, the IO forwarding module of the destination node receives the writing IO and writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO and writing IO data to the cache, and when receiving feedback IO writing success of writing the writing IO data into the nonvolatile memory by the cache, the IO forwarding module of the destination node informs the IO forwarding module of the forwarding node that IO writing is successful.
Example 3
The embodiment of the invention provides a storage medium for realizing a forwarding and current limiting method of write IO among storage controllers, which stores at least one instruction, reads and executes the instruction to realize the forwarding and current limiting method of write IO among the storage controllers.
In the invention, before triggering the write IO current limiting, the IO forwarding module is switched to the first write mode, the IO forwarding modules of the forwarding nodes of the write IO of each receiving host request the write IO data from the host, and forward the write IO and the write IO data to the IO forwarding module of the destination node at one time, so that the interaction flow between the forwarding nodes and the destination node can be reduced, and the write IO data forwarding can be completed at one time, thereby being simple and efficient. When the situation that the buffer memory is full and the IO current limit needs to be written is met, the second writing mode is switched to, the target node is enabled to control the transmission time of the writing data, the control right of the IO current limit is transferred from the forwarding node to the target node, the target node for processing the writing IO determines whether to initiate transmission or not according to the buffer memory idle quantity and the processing capacity of the target node, and therefore the writing IO processing capacity of the target node can be guaranteed to be completely released. And the system is stable and faster without the need of a forwarding node to gradually adjust the limited traffic.
In the embodiments provided in the present invention, it should be understood that the disclosed structure and method may be implemented in other manners. For example, the above-described embodiments of structures and methods are merely illustrative, e.g., the division of the elements is merely a logical functional division, and there may be additional divisions when actually implemented, e.g., multiple elements or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via interfaces, structures or units, which may be in electrical, mechanical or other forms.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present invention may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The foregoing is only a specific embodiment of the invention to enable those skilled in the art to understand or practice the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (6)

1. The forwarding and current limiting method for write IO between storage controllers is characterized by comprising the following steps:
detecting whether all node caches in the SAN storage cluster are full;
if yes, notifying the buffer fullness to the IO forwarding module of each node, and responding the buffer fullness switching by the IO forwarding module of the node to execute a second writing mode, wherein the second writing mode comprises: the host computer transmits the write IO to the IO forwarding module of at least one forwarding node, the IO forwarding module of the forwarding node transmits the write IO obtained by the IO forwarding module to the IO forwarding module of the destination node without data, the destination node determines the whole limiting quantity according to the buffer idle quantity of the IO forwarding module, the whole limiting quantity is divided into a plurality of sub limiting quantities according to the data quantity duty ratio of the write IO data forwarded by each forwarding node, the IO forwarding module of the destination node requests the write IO data to the IO forwarding module of the corresponding forwarding node according to the sub limiting quantity, the IO forwarding module of the forwarding node requests the write IO data to the host computer according to the sub limiting quantity, and the host computer transmits the write IO data according to the request of the IO forwarding module of the forwarding node; the IO forwarding module of the forwarding node transmits the write IO data issued by the host to the IO forwarding module of the destination node; the IO forwarding module of the destination node submits the write IO data forwarded by the IO forwarding module of the forwarding node to a cache; after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node; the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the success of IO writing, and the forwarding module of the forwarding node responds to the host computer with the success of IO writing; the forwarding node forwards the write IO to a plurality of destination nodes, and the sub-current limiting quantities of all destination nodes forwarded by the forwarding node at the same moment are overlapped to form a total write IO limiting quantity of the forwarding node to the host;
otherwise, the IO forwarding module of the node responds to the buffer underfilling switching to execute the first writing mode, and exits the current limit of the writing IO.
2. The method for limiting forwarding of write IO between storage controllers according to claim 1, wherein a buffer threshold value representing a condition of occupied space of write buffer in the buffer is preset for each node; when the occupied space of the write cache in the node cache is larger than the cache threshold value, judging that the node cache is full; and when the occupied space of the write cache in the node cache is lower than the cache threshold value, judging that the node cache is not fully written.
3. The method for forwarding and limiting a write IO between storage controllers of claim 1 wherein the first write mode comprises:
the host computer transmits the write IO to an IO forwarding module of at least one forwarding node;
the IO forwarding module of the forwarding node acquires corresponding write IO data from the host according to the received write IO;
the IO forwarding module of the forwarding node forwards the write IO and the corresponding write IO data to the IO forwarding module of the destination node;
the IO forwarding module of the destination node submits the write IO and write IO data forwarded by the IO forwarding module of the forwarding node to a cache;
after the cache writes the write data into the nonvolatile memory, the IO write success is fed back to the forwarding module of the destination node;
the forwarding module of the destination node informs the forwarding module of the corresponding forwarding node of the successful writing, and the forwarding module of the forwarding node responds to the host computer for the successful writing.
4. A forwarding and current limiting device for write IO between storage controllers based on the forwarding and current limiting method for write IO between storage controllers according to any one of claims 1 to 3, comprising: at least two nodes configured with an IO forwarding module and a cache, wherein the IO forwarding module is configured with a first write mode and a second write mode; and, a step of, in the first embodiment,
the host computer of the coupling node, the said host computer issues and writes IO to the node and issues and writes IO data of IO according to the node request; and, a step of, in the first embodiment,
the cache fullness detection module detects whether the caches of all the nodes are full;
the IO forwarding module is coupled with the buffer memory full-filling detection module, and is switched to the second writing mode when the full-filling detection module detects that all the node buffers are full, and is switched to the first writing mode when the full-filling detection module does not detect that all the node buffers are full:
when the node where the IO forwarding module is located is a forwarding node and the second writing mode is executed, forwarding writing IO issued by the host without data to the IO forwarding module of the destination node; the IO forwarding module of the forwarding node requests the host to write IO data according to the sub-limit flow transmitted by the IO forwarding module of the destination node, forwards the IO data received from the host to the IO forwarding module of the destination node, and responds to the success of the host to write IO after the IO forwarding module of the forwarding node is informed of the success of the IO writing by the IO forwarding module of the destination node; the forwarding node forwards the write IO to a plurality of destination nodes, and the sub-current limiting quantities of all destination nodes forwarded by the forwarding node at the same moment are overlapped to form a total write IO limiting quantity of the forwarding node to the host;
when the node where the IO forwarding module is located is a destination node and executes the second writing mode, the IO forwarding module of the destination node receives the writing IO without writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO to a cache, the destination node determines the whole limiting quantity according to the cache idle quantity of the writing IO data, the whole limiting quantity is divided into a plurality of sub-limiting quantities according to the data quantity ratio of the writing IO data forwarded by each forwarding node and is distributed to each forwarding node, and the IO forwarding module of the destination node requests the writing IO data to the IO forwarding module of the corresponding forwarding node according to the sub-limiting quantities; the IO forwarding module of the destination node receives the write IO data transmitted by the IO forwarding module of the forwarding node according to the sub-limit flow and provides the write IO data to the cache, and notifies the IO forwarding module of the forwarding node that IO writing is successful when receiving feedback IO writing success that the cache writes the write IO data into the nonvolatile memory.
5. The device for limiting the forwarding of write IO between storage controllers according to claim 4, wherein when the node where the IO forwarding module is located is a forwarding node and the first write mode is executed, the IO forwarding module of the forwarding node receives write IO issued by a host and requests write IO data to the host according to the write IO, the IO forwarding module of the forwarding node receives the write IO data issued by the host and forwards the write IO and the write IO data received from the host to the IO forwarding module of the destination node, and the IO forwarding module of the forwarding node responds to the success of write IO of the host after the IO forwarding module of the destination node notifies that the write IO is successful;
when the node where the IO forwarding module is located is a destination node and the first writing mode is executed, the IO forwarding module of the destination node receives the writing IO and writing IO data forwarded by the IO forwarding module of the forwarding node and provides the writing IO and writing IO data to the cache, and when receiving feedback IO writing success of writing the writing IO data into the nonvolatile memory by the cache, the IO forwarding module of the destination node informs the IO forwarding module of the forwarding node that IO writing is successful.
6. A storage medium for implementing a method for forwarding and limiting a flow of write IO between storage controllers, wherein the storage medium implementing the method for forwarding and limiting a flow of write IO between storage controllers stores at least one instruction, reads and executes the instruction to implement the method for forwarding and limiting a flow of write IO between storage controllers according to any one of claims 1 to 3.
CN202210466249.6A 2022-04-29 2022-04-29 Forwarding and current limiting method and device for write IO between storage controllers and storage medium Active CN114860634B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210466249.6A CN114860634B (en) 2022-04-29 2022-04-29 Forwarding and current limiting method and device for write IO between storage controllers and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210466249.6A CN114860634B (en) 2022-04-29 2022-04-29 Forwarding and current limiting method and device for write IO between storage controllers and storage medium

Publications (2)

Publication Number Publication Date
CN114860634A CN114860634A (en) 2022-08-05
CN114860634B true CN114860634B (en) 2023-08-04

Family

ID=82636377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210466249.6A Active CN114860634B (en) 2022-04-29 2022-04-29 Forwarding and current limiting method and device for write IO between storage controllers and storage medium

Country Status (1)

Country Link
CN (1) CN114860634B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577278A (en) * 2009-10-19 2012-07-11 国际商业机器公司 Dynamic resource allocation for distributed cluster storage network
CN106886368A (en) * 2016-12-30 2017-06-23 北京同有飞骥科技股份有限公司 A kind of block device writes IO shapings and multi-controller synchronization system and synchronous method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430110B2 (en) * 2017-12-19 2019-10-01 Robin Systems, Inc. Implementing a hybrid storage node in a distributed storage system
US11144461B2 (en) * 2020-03-09 2021-10-12 EMC IP Holding Company LLC Bandwidth efficient access to persistent storage in a distributed storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577278A (en) * 2009-10-19 2012-07-11 国际商业机器公司 Dynamic resource allocation for distributed cluster storage network
CN106886368A (en) * 2016-12-30 2017-06-23 北京同有飞骥科技股份有限公司 A kind of block device writes IO shapings and multi-controller synchronization system and synchronous method

Also Published As

Publication number Publication date
CN114860634A (en) 2022-08-05

Similar Documents

Publication Publication Date Title
JP3517245B2 (en) Coordination method and apparatus for routing device output access in a packet switching network
US5809078A (en) Relay node system and relay control method of the same system
JP4014923B2 (en) Shared memory control method and control system
JP4160642B2 (en) Network data transfer method
US9183169B2 (en) SAS expander based persistent connections
CN102577278B (en) For the Dynamic Resource Allocation for Multimedia of distributed cluster storage network
US20050210144A1 (en) Load balancing method and system
JPS61196644A (en) Apparatus and method for controlling traffic
CN106603692B (en) Data storage method and device in distributed storage system
JPH09224044A (en) Distribution system
US10162775B2 (en) System and method for efficient cross-controller request handling in active/active storage systems
CN105141603A (en) Communication data transmission method and system
JP4494905B2 (en) Information processing system, management computer, and remote copy method
US6826622B2 (en) Method of transferring data between memories of computers
JP4474356B2 (en) Computer system and storage virtualization apparatus
US7043603B2 (en) Storage device control unit and method of controlling the same
US6741561B1 (en) Routing mechanism using intention packets in a hierarchy or networks
CN114860634B (en) Forwarding and current limiting method and device for write IO between storage controllers and storage medium
US20060271639A1 (en) Multipath control device and system
CN110471627B (en) Method, system and device for sharing storage
US7143250B1 (en) Methods and systems for improving mirror performance via optimized multi-channel utilization
JP3584710B2 (en) Disk array control device and control method
CN111190546B (en) Distributed block storage performance optimization method based on ALUA and local cache
CN113849129B (en) IO request forwarding method, device and equipment among storage controllers
CN114615208B (en) Back pressure information transmission and request sending method and device and network chip

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
GR01 Patent grant
GR01 Patent grant