# US 11,445,012 B2 · Proactive load balancer for data storage system

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

- Number: US 11,445,012 B2
- Document ID: US11445012B2
- Status: Granted
- Kind: B2
- Application number: 17/105,162
- Filed: 2020-11-25
- Published: 2022-05-26
- Granted: 2022-09-13
- Earliest claimed: 2020-11-25
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Nilesh Govande; Basavaraj Kirunge
- Web page: https://patentgrep.com/patent/US11445012B2

## CPC

- H04L 67/1029: using data related to the state of servers by a load balancer
- G06F 3/061: {Improving I/O performance}
- 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/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- 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/3466: {Performance evaluation by tracing or monitoring}
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 41/0896: Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities (flow or congestion control using dynamic resource allocation, e.g. in-call renegotiation, H04L47/76)
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- 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]
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- 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

Load balancing technology is used to distribute tasks requested of a data storage network across the connected storage nodes within the data storage network. Conventional load balancing technology is not proactive. Storage nodes within a data storage network may have different performance characteristics and/or current loads created by various demands on the storage nodes and connected servers. The proactive load balancers and corresponding load balancer agents disclosed herein are used to detect these variations in performance characteristics and/or current loads in the storage nodes and connected servers to inform decisions made by the proactive load balancer in distributing incoming access requests across the storage nodes and connected servers.

## Claims

### Claim 1

A data storage system comprising:
a first node including:
one or more servers, each connected to a data storage resource; and
a first load-balancing agent;
a second node including:
one or more servers, each connected to a data storage resource; and
a second load-balancing agent; and
a proactive load balancer to receive a first node performance metric from the first load-balancing agent and a second node performance metric from the second load-balancing agent, the proactive load balancer further to direct an incoming access request to the data storage system to a specific one or more of the servers connected to the first node and the second node based on the first node performance metric and the second node performance metric, wherein the first node performance metric includes one or more current load metrics specific to each of the servers connected to the first node and the second node performance metric includes one or more current load metrics specific to each of the servers connected to the second node.

### Claim 2 (depends on 1)

The data storage system of claim 1, wherein a set of current load metrics include one or more performance characteristics of a server.

### Claim 3 (depends on 1)

The data storage system of claim 1, wherein a weighted average function is applied to a set of the current load metrics to yield a calculated current load on a server.

### Claim 4 (depends on 3)

The data storage system of claim 3, wherein different weight parameters are used in the weighted average function to generate different calculated current loads for read requests, write requests, and administrative requests.

### Claim 5 (depends on 3)

The data storage system of claim 3, wherein the proactive load balancer is further to direct the incoming access request to a server having a lowest calculated current load.

### Claim 6 (depends on 1)

The data storage system of claim 1, wherein the incoming access request is one of a read request, a write request, and an administrative request.

### Claim 7 (depends on 1)

The data storage system of claim 1, wherein the current load metrics include one or more of central processing unit usage, memory usage, storage access bandwidth, process load specific to a server.

### Claim 8 (depends on 1)

The data storage system of claim 1, wherein the first node performance metric includes overall load on the first node and the second node performance metric includes overall load on the second node.

### Claim 9 (depends on 1)

The data storage system of claim 1, wherein the proactive load balancer is to receive the first node performance metric from the first load-balancing agent and the second node performance metric from the second load-balancing agent on a periodically repeating basis.

### Claim 10 (depends on 1)

The data storage system of claim 1, wherein the proactive load balancer is to receive the first node performance metric from the first load-balancing agent and the second node performance metric from the second load-balancing agent prior to each subsequent access request incoming to the data storage system.

### Claim 11

A method of operating a proactive load balancer within a data storage network comprising:
sending a current load query from the proactive load balancer to:
a first node including:
one or more servers, each connected to a data storage resource; and
a first load-balancing agent;
a second node including:
one or more servers, each connected to a data storage resource; and
a second load-balancing agent;
receiving a response from the first load-balancing agent including a first node performance metric and from the second load-balancing agent including a second node performance metric;
receiving an access request from a client at the proactive load balancer for the data storage network; and
directing the access request to a specific one or more of the servers connected to the first node and the second node based on the received first node performance metric and the second node performance metric, wherein the first node performance metric includes one or more current load metrics specific to each of the servers connected to the first node and the second node performance metric includes one or more current load metrics specific to each of the servers connected to the second node.

### Claim 12 (depends on 11)

The method of claim 11, wherein a set of current load metrics include one or more performance characteristics of a server.

### Claim 13 (depends on 11)

The method of claim 11, wherein a weighted average function is applied to a set of the current load metrics to yield a calculated current load on a server.

### Claim 14 (depends on 13)

The method of claim 13, wherein different weight parameters are used in the weighted average function to generate different calculated current loads for read requests, write requests, and administrative requests.

### Claim 15

One or more computer-readable storage media encoding computer-executable instructions for executing on a computer system a computer process for operating a proactive load balancer within a data storage network, the computer process comprising:
sending a current load query from the proactive load balancer to:
a first node including:
one or more servers, each connected to a data storage resource; and
a first load-balancing agent;
a second node including:
one or more servers, each connected to a data storage resource; and
a second load-balancing agent;
receiving a response from the first load-balancing agent including a first node performance metric and from the second load-balancing agent including a second node performance metric;
receiving an access request from a client at the proactive load balancer for the data storage network; and
directing the access request to a specific one or more of the servers connected to the first node and the second node based on the received first node performance metric and the second node performance metric, wherein the first node performance metric includes one or more current load metrics specific to each of the servers connected to the first node and the second node performance metric includes one or more current load metrics specific to each of the servers connected to the second node.

### Claim 16 (depends on 15)

The computer-readable storage media of claim 15, wherein a set of current load metrics include one or more performance characteristics of a server.

### Claim 17 (depends on 15)

The computer-readable storage media of claim 15, wherein a weighted average function is applied to a set of the current load metrics to yield a calculated current load on a server.
