Load-balancing input/output requests in clustered storage systems
First Claim
1. A computer-implemented method for load-balancing client input/output (I/O) requests in a clustered storage system comprising:
- receiving a request by a first node of a clustered storage system from a client to initiate a session between the client and the first node, the clustered storage system having a plurality of nodes and the request specifying a multi-channel communication session;
in response to receiving the request, transmitting an internet protocol (IP) address of the first node and an IP address of at least a second node to the client by the first node;
establishing the multi-channel communication session between the client and the first and second nodes in which the client communicates with the first node using a first communication channel and communicates with the second node using a second communication channel;
transmitting to the second node from the first node session data determined at the first node and transmitting to the first node from the second node session data determined at the second node;
determining a first I/O request limit for the clustered storage system;
determining a second I/O request limit for the first node and determining a third I/O request limit for the second node; and
in response to the determining of the first, second, and third I/O request limits, granting the client a first quantity of I/O requests for the client to transmit to the first node and granting the client a second quantity of I/O requests for the client to transmit to the second node, wherein the first quantity of I/O requests do not surpass the first or second I/O request limits and the second quantity of I/O requests do not surpass the first or third I/O request limits.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer-implemented method for load-balancing client input/output (I/O) requests in a clustered storage system may include receiving a request by a first node of a clustered storage system from a client to initiate a session between the client and the first node. The request may specify a multi-channel communication session. In response to receiving the request, an Internet Protocol (IP) address of the first and at least a second node may be transmitted to the client. The multi-channel communication session may be established between the client and the first and second nodes in which the client communicates with the first node using a first communication channel and communicates with the second node using a second communication channel. The first node may transmit to the second node session data determined at the first node. The second node may transmit to the first node session data determined at the second node.
-
Citations
17 Claims
-
1. A computer-implemented method for load-balancing client input/output (I/O) requests in a clustered storage system comprising:
-
receiving a request by a first node of a clustered storage system from a client to initiate a session between the client and the first node, the clustered storage system having a plurality of nodes and the request specifying a multi-channel communication session; in response to receiving the request, transmitting an internet protocol (IP) address of the first node and an IP address of at least a second node to the client by the first node; establishing the multi-channel communication session between the client and the first and second nodes in which the client communicates with the first node using a first communication channel and communicates with the second node using a second communication channel; transmitting to the second node from the first node session data determined at the first node and transmitting to the first node from the second node session data determined at the second node; determining a first I/O request limit for the clustered storage system; determining a second I/O request limit for the first node and determining a third I/O request limit for the second node; and in response to the determining of the first, second, and third I/O request limits, granting the client a first quantity of I/O requests for the client to transmit to the first node and granting the client a second quantity of I/O requests for the client to transmit to the second node, wherein the first quantity of I/O requests do not surpass the first or second I/O request limits and the second quantity of I/O requests do not surpass the first or third I/O request limits. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for load-balancing client I/O requests in a clustered storage system, comprising:
-
a first node of a clustered storage system having plurality of nodes, the first node configured to receive a request from a client to initiate a session between the client and the first node, the request specifying a multi-channel communication session; at least a second node, wherein the first node is further configured to transmit an internet protocol (IP) address of the first node and an IP address of the second node to the client in response to receiving the request; wherein the first and second nodes are further configured to establish the multi-channel communication session between the client and the first and second nodes in which the client communicates with the first node using a first communication channel and communicates with the second node using a second communication channel; wherein the first node is further configured to transmit to the second node session data determined at the first node and the second node is further configured to transmit to the first node session data determined at the second node; a buffer credit coordinator configured to determine a first I/O request limit for the clustered storage system; wherein the buffer credit coordinator is further configured to determine a second I/O request limit for the first node and determine a third I/O request limit for the second node; and wherein the buffer credit coordinator is further configured to, in response to the determining of the first, second, and third I/O request limits, grant the client a first quantity of I/O requests for the client to transmit to the first node and to grant the client a second quantity of I/O requests for the client to transmit to the second node, wherein the first quantity of I/O requests do not surpass the first or second I/O request limits and the second quantity of I/O requests do not surpass the first or third I/O request limits. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer program product for load-balancing client I/O requests in a clustered storage system, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a clustered storage system to cause the clustered storage system to:
-
receive a request by a first node of the clustered storage system from a client to initiate a session between the client and the first node, the clustered storage system having a plurality of nodes and the request specifying a multi-channel communication session; transmit, in response to the receiving of the request, an internet protocol (IP) address of the first node and an IP address of at least a second node to the client by the first node; establish the multi-channel communication session between the client and the first and second nodes in which the client communicates with the first node using a first communication channel and communicates with the second node using a second communication channel; transmit to the second node from the first node session data determined at the first node and transmit to the first node from the second node session data determined at the second node; determine a first I/O request limit for the clustered storage system; determine a second I/O request limit for the first node and determine a third I/O request limit for the second node; and grant the client, in response to the determining of the first, second, and third I/O request limits, a first quantity of I/O requests for the client to transmit to the first node and grant the client a second quantity of I/O requests for the client to transmit to the second node, wherein the first quantity of I/O requests do not surpass the first or second I/O request limits and the second quantity of I/O requests do not surpass the first or third I/O request limits. - View Dependent Claims (14, 15, 16, 17)
-
Specification