# US 8,751,641 B2 · Optimizing clustered network attached storage (NAS) usage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,641 B2
- Document ID: US8751641B2
- Status: Granted
- Kind: B2
- Application number: 13/247,312
- Filed: 2011-09-28
- Published: 2013-03-21
- Granted: 2014-06-10
- Earliest claimed: 2011-09-15
- Assignees: International Business Machines Corporation
- Applicants: Cyril Collin; Edmond Plattier; Antoine J. Tabary
- Inventors: Cyril Collin; Edmond Plattier; Antoine J. Tabary
- Web page: https://patentgrep.com/patent/US8751641B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 3/0613: {in relation to throughput}
- G06F 3/0617: {in relation to availability}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/2025: {using centralised failover control functionality}
- G06F 11/2035: {without idle spare hardware}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 11/3485: {for I/O devices}
- G06F 16/10: File systems; File servers
- H04L 41/0823: characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability (for optimising operational conditions of wireless networks H04W24/02)
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/1034: Reaction to server failures by a load balancer
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- G06F 11/2046: {where the redundant components share persistent storage (G06F11/2043 takes precedence)}
- H04L 67/1029: using data related to the state of servers by a load balancer
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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).

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 4)

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.

### Claim 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).

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 6)

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.

### Claim 9 (depends on 6)

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.

### Claim 10 (depends on 9)

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.

### Claim 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).

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 11)

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.

### Claim 14 (depends on 11)

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.

### Claim 15 (depends on 14)

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.

### Claim 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).

### Claim 17 (depends on 16)

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

### Claim 18 (depends on 16)

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.

### Claim 19 (depends on 16)

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.

### Claim 20 (depends on 19)

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.
