# US 11,909,669 B2 · Host input/output based load balancing on fibre channel N_port virtualizer switch uplinks

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

- Number: US 11,909,669 B2
- Document ID: US11909669B2
- Status: Granted
- Kind: B2
- Application number: 17/705,994
- Filed: 2022-03-28
- Published: 2022-07-07
- Granted: 2024-02-20
- Earliest claimed: 2019-08-05
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Harsha Bharadwaj; Santhosh Hanumana Gowda
- Web page: https://patentgrep.com/patent/US11909669B2

## CPC

- H04L 49/357: {Fibre channel switches}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- H04L 43/0888: Throughput
- H04L 43/16: Threshold monitoring
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 49/50: Overload detection or protection within a single switching element
- H04L 49/70: {Virtual switches}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- 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: 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 method includes measuring input/output traffic for respective hosts that are connected to a Fibre Channel N_Port Virtualizer (FC-NPV) switch, which is in communication with a first N_Port ID Virtualization (NPIV) core switch via a first port channel and with a second NPIV core switch via a second port channel; determining that traffic carried on the first port channel between the FC-NPV switch and the first NPIV Core switch exceeds a predetermined threshold compared to traffic carried on the second port channel; and re-assigning traffic from a given host carried on the first port channel to the second port channel between the FC-NPV switch and the second NPIV core switch.

## Claims

### Claim 1

A method comprising:
measuring input/output traffic for respective hosts that are connected to a Fibre Channel N_Port Virtualizer switch, which is in communication with a first N_Port ID Virtualization core switch via a first port channel and with a second N_Port ID Virtualization core switch via a second port channel, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch are in communication with a same target device, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch have a first bandwidth capability and perform the measuring of the input/output traffic to obtain input/output traffic metrics, and the Fibre Channel N_Port Virtualizer switch has a second bandwidth capability lower than the first bandwidth capability;
receiving, from the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch, the input/output traffic metrics at the Fibre Channel N_Port Virtualizer switch;
determining, by the Fibre Channel N_Port Virtualizer switch, and based on the input/output traffic metrics, that a traffic imbalance existing between average uplink traffic carried on the first port channel between the Fibre Channel N_Port Virtualizer switch and the first N_Port ID Virtualization core switch and average uplink traffic carried on the second port channel between the Fibre Channel N_Port Virtualizer switch and the second N_Port ID Virtualization core switch exceeds a predetermined threshold; and
based on the determining, re-assigning, via fabric login operations, traffic from a given host carried on the first port channel to the second port channel between the Fibre Channel N_Port Virtualizer switch and the second N_Port ID Virtualization core switch,
wherein the re-assigning is based, at least in part, on an operational port speed of each of the first port channel and the second port channel, wherein an operational port speed of the first port channel is different from an operational port speed of the second port channel.

### Claim 2 (depends on 1)

The method of claim 1, wherein the input/output traffic (T) is defined by an equation T=m+s, wherein m is a sample mean of the input/output traffic, and s is one sample standard deviation of the input/output traffic.

### Claim 3 (depends on 2)

The method of claim 2, wherein the sample mean of the input/output traffic is calculated over a 24 hour period.

### Claim 4 (depends on 1)

The method of claim 1, further comprising evenly distributing fabric logins from the respective hosts over the first port channel and the second port channel.

### Claim 5 (depends on 1)

The method of claim 1, wherein the measuring is performed on a per-virtual storage area network basis.

### Claim 6 (depends on 1)

The method of claim 1, wherein the predetermined threshold is 40%.

### Claim 7 (depends on 1)

The method of claim 1, further comprising monitoring down events for the first port channel and the second port channel, and when a down event is detected, stopping the measuring and restarting the measuring once the down event is cleared.

### Claim 8

An apparatus comprising:
an interface unit configured to enable network communications;
a memory; and
one or more processors coupled to the interface unit and the memory, and configured to:
receive input/output traffic metrics of input/output traffic for respective hosts, which are in communication with a first N_Port ID Virtualization core switch via a first port channel and with a second N_Port ID Virtualization core switch via a second port channel, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch are in communication with a same target device, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch have a first bandwidth capability and generate the input/output traffic metrics, and the apparatus has a second bandwidth capability lower than the first bandwidth capability;
determine, based on the input/output traffic metrics, that a traffic imbalance existing between average uplink traffic carried on the first port channel and average uplink traffic carried on the second port channel exceeds a predetermined threshold; and
in response to determining that the predetermined threshold has been exceeded, re-assign, via fabric login operations, traffic from a given host carried on the first port channel to the second port channel,
wherein the one or more processors are configured to re-assign the traffic based, at least in part, on an operational port speed of each of the first port channel and the second port channel, wherein an operational port speed of the first port channel is different from an operational port speed of the second port channel.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the input/output traffic (T) is defined by an equation T=m+s, wherein m is a sample mean of the input/output traffic, and s is one sample standard deviation of the input/output traffic.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the sample mean of the input/output traffic is calculated over a 24 hour period.

### Claim 11 (depends on 8)

The apparatus of claim 8, wherein the one or more processors are further configured to evenly distribute fabric logins from the respective hosts over the first port channel and the second port channel.

### Claim 12 (depends on 8)

The apparatus of claim 8, wherein the apparatus comprises a Fibre Channel N_Port Virtualization switch.

### Claim 13 (depends on 8)

The apparatus of claim 8, wherein the input/output traffic metrics are collected on a per-virtual storage area network basis.

### Claim 14 (depends on 8)

The apparatus of claim 8, wherein the input/output traffic metrics are based on link level buffer-to-buffer credits.

### Claim 15 (depends on 8)

The apparatus of claim 8, wherein the one or more processors are further configured to establish a port monitoring policy that is configured to maintain an upper and lower threshold for an imbalance between the first port channel and the second port channel.

### Claim 16 (depends on 8)

The apparatus of claim 8, wherein the one or more processors are further configured to monitor down events for the first port channel and the second port channel, and when a down event is detected to reset measurement calculations.

### Claim 17

A non-transitory computer readable storage media encoded with instructions that, when executed by a processor, cause the processor to:
receive input/output traffic metrics of input/output traffic for respective hosts, which are in communication with a first N_Port ID Virtualization core switch via a first port channel and with a second N_Port ID Virtualization core switch via a second port channel, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch are in communication with a same target device, wherein the first N_Port ID Virtualization core switch and the second N_Port ID Virtualization core switch have a first bandwidth capability and generate the input/output traffic metrics, and an apparatus on which the processor executes has a second bandwidth capability lower than the first bandwidth capability;
determine, based on the input/output traffic metrics, that traffic carried on the first port channel exceeds traffic carried on the second port channel by a predetermined threshold; and
in response to determining that the predetermined threshold has been exceeded, re-assign, via fabric login operations, traffic from a given host carried on the first port channel to the second port channel, wherein the instructions to re-assign are configured to take into account an operational port speed of each of the first port channel and the second port channel, wherein an operational port speed of the first port channel is different from an operational port speed of the second port channel.

### Claim 18 (depends on 17)

The non-transitory computer readable storage media of claim 17, wherein the instructions, when executed by the processor, cause the processor to evenly distribute fabric logins from the respective hosts over the first port channel and the second port channel.
