IP Library Granted Patent US 8,751,641
Granted Patent B2
US 8,751,641 · App. 13/247,312 · Granted Jun 10, 2014

Optimizing clustered network attached storage (NAS) usage

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,751,641
App. No.
13/247,312
Granted
Jun 10, 2014
Kind
B2
Abstract

A system and associated method for optimizing usage of a clustered-network attached storage (NAS). An administration module of the clustered NAS calculates a number of nodes in the clustered NAS necessary to service a required amount of load for a specific number of client systems, and a number of addresses associated with the nodes through which the client systems accesses the clustered NAS. The load is evenly shared by all client systems and uniformly serviced by the nodes of the clustered NAS. When a node fails, the rest of operating nodes in the clustered NAS take over addresses associated with the failed node and evenly share additional load associated with an address taken from the failed node to provide seamless services for the production by the client systems.

Claims (77)

1. A method for optimizing usage of a clustered-network attached storage (NAS), said method comprising:

configuring the clustered NAS by determining A number of addresses and N number of nodes in the clustered NAS that produces L amount of load for P number of client systems producing each an equivalent and constant load, and coupled to the clustered NAS such that said A number of addresses enables said P number of client systems to evenly access said N number of nodes for sharing said L amount of load, wherein each node of said N number of nodes is configured to produce a respective h amount of load, and wherein N is greater than 2;

configuring a respective set of addresses selected from said A number of addresses such that said P number of client systems accesses said N number of nodes via the respective set of addresses during production of said L amount of load by said P number of client systems; and

administering service of the clustered NAS, concurrently with the production by said P number of client systems, by monitoring and optimizing the service of said N number of nodes in the clustered NAS such that the clustered NAS compensates a failure of a node in the clustered NAS and such that the clustered NAS seamlessly services the production of said L amount of load by said P number of client systems,

wherein said configuring the clustered NAS comprises:

computing said L as a maximum amount of load that said P number of client systems generate to be serviced by the clustered NAS;

computing said N as a function of L/h to represents a number of nodes in the clustered NAS to service the computed L amount of load; and

calculating said A that represents a number of addresses necessary for the computed N number of nodes in the clustered NAS as A=N(N−1).

2. The method of claim 1 , wherein the function of L/h is Roundup (L/h)+1.

3. The method of claim 1 , wherein said configuring the respective set of addresses comprises:

distributing said A number of addresses over said N number of nodes by round-robin (RR), wherein the addresses are consecutive within a list of addresses, such that said each node is associated with a respective set of (N−1) addresses, and such that any two individual addresses in the respective set of (N−1) addresses are distant from each other by N number of entries in the list of addresses;

assigning a respective set of N consecutive addresses in the list to each client system of said P number of client systems by RR, wherein the N consecutive addresses in the list respectively corresponds to said each node, such that said each client system has access to all nodes in the clustered NAS by use of the N consecutive addresses in the respective set, and such that a respective address for said each node uniformly shares L/N amount of load for said each node.

4. The method of claim 1 , wherein said administering comprises:

monitoring said N number of nodes in the clustered NAS during the production by said P number of client systems;

determining that a first node of said N number of nodes has failed based on said monitoring; and

redistributing a first set of (N−1) addresses and corresponding load previously associated with the first node to the rest of (N−1) nodes of the clustered NAS such that said P number of client systems access the rest of (N−1) nodes by use of said A number of addresses during the production by said P number of client systems.

5. The method of claim 4 , wherein said redistributing comprises:

distributing the first set of (N−1) addresses to the rest of (N−1) nodes that are normally operating by round-robin (RR) such that each operating node of the rest of (N−1) nodes is associated with a new respective set of N addresses, and such that the new respective set of N addresses further comprises a respective additional address from the first set of (N−1) addresses for the first node selected by RR for said each operating node;

assigning a respective load associated with each address of the first set of (N−1) addresses to said each operating node such that said each operating node services the new respective set of N addresses for uniformly shared (L/(N−1)) load for the production by said P number of client systems.

6. A computer program product, comprising:

a computer readable memory unit that embodies a computer readable program code, said computer readable program code containing instructions that perform optimizing usage of a clustered-network attached storage (NAS), said optimizing comprising:

configuring the clustered NAS by determining A number of addresses and N number of nodes in the clustered NAS that produces L amount of load for P number of client systems producing each an equivalent and constant load, and coupled to the clustered NAS such that said A number of addresses enables said P number of client systems to evenly access said N number of nodes for sharing said L amount of load, wherein each node of said N number of nodes is configured to produce a respective h amount of load, and wherein N is greater than 2;

configuring a respective set of addresses selected from said A number of addresses such that said P number of client systems accesses said N number of nodes via the respective set of addresses during production of said L amount of load by said P number of client systems; and

administering service of the clustered NAS, concurrently with the production by said P number of client systems, by monitoring and optimizing the service of said N number of nodes in the clustered NAS such that the clustered NAS compensates a failure of a node in the clustered NAS and such that the clustered NAS seamlessly services the production of said L amount of load by said P number of client systems,

wherein said configuring the clustered NAS comprises:

computing said L as a maximum amount of load that said P number of client systems generate to be serviced by the clustered NAS;

computing said N as a function of L/h to represents a number of nodes in the clustered NAS to service the computed L amount of load; and

calculating said A that represents a number of addresses necessary for the computed N number of nodes in the clustered NAS as A=N(N−1).

7. The computer program product of claim 6 , wherein the function of L/h is Roundup (L/h)+1.

8. The computer program product of claim 6 , wherein said configuring the respective set of addresses comprises:

distributing said A number of addresses over said N number of nodes by round-robin (RR), wherein the addresses are consecutive within a list of addresses, such that said each node is associated with a respective set of (N−1) addresses, and such that any two individual addresses in the respective set of (N−1) addresses are distant from each other by N number of entries in the list of addresses;

assigning a respective set of N consecutive addresses in the list to each client system of said P number of client systems by RR, wherein the N consecutive addresses in the list respectively corresponds to said each node, such that said each client system has access to all nodes in the clustered NAS by use of the N consecutive addresses in the respective set, and such that a respective address for said each node uniformly shares L/N amount of load for said each node.

9. The computer program product of claim 6 , wherein said administering comprises:

monitoring said N number of nodes in the clustered NAS during the production by said P number of client systems;

determining that a first node of said N number of nodes has failed based on said monitoring; and

redistributing a first set of (N−1) addresses and corresponding load previously associated with the first node to the rest of (N−1) nodes of the clustered NAS such that said P number of client systems access the rest of (N−1) nodes by use of said A number of addresses during the production by said P number of client systems.

10. The computer program product of claim 9 , wherein said redistributing comprises:

distributing the first set of (N−1) addresses to the rest of (N−1) nodes that are normally operating by round-robin (RR) such that each operating node of the rest of (N−1) nodes is associated with a new respective set of N addresses, and such that the new respective set of N addresses further comprises a respective additional address from the first set of (N−1) addresses for the first node selected by RR for said each operating node;

assigning a respective load associated with each address of the first set of (N−1) addresses to said each operating node such that said each operating node services the new respective set of N addresses for uniformly shared (L/(N−1)) load for the production by said P number of client systems.

11. A computer system comprising a processor, a memory coupled to the processor, and a computer readable storage device coupled to the processor, said storage device containing computer readable program code configured to be executed by the processor via the memory to implement a method for optimizing usage of a clustered-network attached storage (NAS), said method comprising:

configuring the clustered NAS by determining A number of addresses and N number of nodes in the clustered NAS that produces L amount of load for P number of client systems producing each an equivalent and constant load, and coupled to the clustered NAS such that said A number of addresses enables said P number of client systems to evenly access said N number of nodes for sharing said L amount of load, wherein each node of said N number of nodes is configured to produce a respective h amount of load, and wherein N is greater than 2;

configuring a respective set of addresses selected from said A number of addresses such that said P number of client systems accesses said N number of nodes via the respective set of addresses during production of said L amount of load by said P number of client systems; and

administering service of the clustered NAS, concurrently with the production by said P number of client systems, by monitoring and optimizing the service of said N number of nodes in the clustered NAS such that the clustered NAS compensates a failure of a node in the clustered NAS and such that the clustered NAS seamlessly services the production of said L amount of load by said P number of client systems,

wherein said configuring the clustered NAS comprises:

computing said L as a maximum amount of load that said P number of client systems generate to be serviced by the clustered NAS;

computing said N as a function of L/h to represents a number of nodes in the clustered NAS to service the computed L amount of load; and

calculating said A that represents a number of addresses necessary for the computed N number of nodes in the clustered NAS as A=N(N−1).

12. The computer system of claim 11 , wherein the function of L/h is Roundup(L/h)+1.

13. The computer system of claim 11 , wherein said configuring the respective set of addresses comprises:

distributing said A number of addresses over said N number of nodes by round-robin (RR), wherein the addresses are consecutive within a list of addresses, such that said each node is associated with a respective set of (N−1) addresses, and such that any two individual addresses in the respective set of (N−1) addresses are distant from each other by N number of entries in the list of addresses;

assigning a respective set of N consecutive addresses in the list to each client system of said P number of client systems by RR, wherein the N consecutive addresses in the list respectively corresponds to said each node, such that said each client system has access to all nodes in the clustered NAS by use of the N consecutive addresses in the respective set, and such that a respective address for said each node uniformly shares L/N amount of load for said each node.

14. The computer system of claim 11 , wherein said administering comprises:

monitoring said N number of nodes in the clustered NAS during the production by said P number of client systems;

determining that a first node of said N number of nodes has failed based on said monitoring; and

redistributing a first set of (N−1) addresses and corresponding load previously associated with the first node to the rest of (N−1) nodes of the clustered NAS such that said P number of client systems access the rest of (N−1) nodes by use of said A number of addresses during the production by said P number of client systems.

15. The computer system of claim 14 , wherein said redistributing comprises:

distributing the first set of (N−1) addresses to the rest of (N−1) nodes that are normally operating by round-robin (RR) such that each operating node of the rest of (N−1) nodes is associated with a new respective set of N addresses, and such that the new respective set of N addresses further comprises a respective additional address from the first set of (N−1) addresses for the first node selected by RR for said each operating node;

assigning a respective load associated with each address of the first set of (N−1) addresses to said each operating node such that said each operating node services the new respective set of N addresses for uniformly shared (L/(N−1)) load for the production by said P number of client systems.

16. A process for supporting computer infrastructure, said process comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable code in a computing system, wherein the code in combination with the computing system is configured to perform a method for optimizing usage of a clustered-network attached storage (NAS), said method comprising:

configuring the clustered NAS by determining A number of addresses and N number of nodes in the clustered NAS that produces L amount of load for P number of client systems producing each an equivalent and constant load, and coupled to the clustered NAS such that said A number of addresses enables said P number of client systems to evenly access said N number of nodes for sharing said L amount of load, wherein each node of said N number of nodes is configured to produce a respective h amount of load, and wherein N is greater than 2;

configuring a respective set of addresses selected from said A number of addresses such that said P number of client systems accesses said N number of nodes via the respective set of addresses during production of said L amount of load by said P number of client systems; and

administering service of the clustered NAS, concurrently with the production by said P number of client systems, by monitoring and optimizing the service of said N number of nodes in the clustered NAS such that the clustered NAS compensates a failure of a node in the clustered NAS and such that the clustered NAS seamlessly services the production of said L amount of load by said P number of client systems,

wherein said configuring the clustered NAS comprises:

computing said L as a maximum amount of load that said P number of client systems generate to be serviced by the clustered NAS;

computing said N as a function of L/h to represents a number of nodes in the clustered NAS to service the computed L amount of load; and

calculating said A that represents a number of addresses necessary for the computed N number of nodes in the clustered NAS as A=N(N−1).

17. The process of claim 16 wherein the function of L/h is Roundup (L/h)+1.

18. The process of claim 16 , wherein said configuring the respective set of addresses comprises:

distributing said A number of addresses over said N number of nodes by round-robin (RR), wherein the addresses are consecutive within a list of addresses, such that said each node is associated with a respective set of (N−1) addresses, and such that any two individual addresses in the respective set of (N−1) addresses are distant from each other by N number of entries in the list of addresses;

assigning a respective set of N consecutive addresses in the list to each client system of said P number of client systems by RR, wherein the N consecutive addresses in the list respectively corresponds to said each node, such that said each client system has access to all nodes in the clustered NAS by use of the N consecutive addresses in the respective set, and such that a respective address for said each node uniformly shares L/N amount of load for said each node.

19. The process of claim 16 , wherein said administering comprises:

monitoring said N number of nodes in the clustered NAS during the production by said P number of client systems;

determining that a first node of said N number of nodes has failed based on said monitoring; and

redistributing a first set of (N−1) addresses and corresponding load previously associated with the first node to the rest of (N−1) nodes of the clustered NAS such that said P number of client systems access the rest of (N−1) nodes by use of said A number of addresses during the production by said P number of client systems.

20. The process of claim 19 , wherein said redistributing comprises:

distributing the first set of (N−1) addresses to the rest of (N−1) nodes that are normally operating by round-robin (RR) such that each operating node of the rest of (N−1) nodes is associated with a new respective set of N addresses, and such that the new respective set of N addresses further comprises a respective additional address from the first set of (N−1) addresses for the first node selected by RR for said each operating node;

assigning a respective load associated with each address of the first set of (N−1) addresses to said each operating node such that said each operating node services the new respective set of N addresses for uniformly shared (L/(N−1)) load for the production by said P number of client systems.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2011
From: COLLIN, CYRIL; PLATTIER, EDMOND; TABARY, ANTOINE J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026983/0413 →