# US 9,882,805 B2 · Dynamic path selection policy for multipathing in a virtualized environment

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

- Number: US 9,882,805 B2
- Document ID: US9882805B2
- Status: Granted
- Kind: B2
- Application number: 14/041,389
- Filed: 2013-09-30
- Published: 2015-04-02
- Granted: 2018-01-30
- Earliest claimed: 2013-09-30
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Sudhish Panamthanath Thankappan; Jinto Antony
- Web page: https://patentgrep.com/patent/US9882805B2

## CPC

- H04L 45/125: based on throughput or bandwidth
- H04L 45/22: {Alternate routing}
- 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 9/45533: {Hypervisors; Virtual machine monitors}
- 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

Particular embodiments change a current storage I/O path used by a host computer to access networked storage to an alternative storage I/O path by considering traffic load at a networked switch in the current storage I/O path. The host computer transmits a request to the networked switch in the current storage I/O path to provide network load information currently experiences by the networked switch. After receiving network load information from the networked switch, the host computer then evaluates whether the networked switch is overloaded based on the received network load information. Based on the evaluation, the host computer selects a new alternative storage I/O path to the networked storage that does not include the networked switch, and then forwards future storage I/O communications to the networked storage using the new alternative storage I/O path.

## Claims

### Claim 1

A method for changing a current storage I/O path used by a host computer to access networked storage to an alternative storage I/O path by considering traffic load at a networked switch in the current storage I/O path, wherein the host computer includes a processor, first and second host bus adapter ports, and the current storage I/O path from the host computer to the networked storage is established through the first host bus adapter port and the networked switch, the method comprising:
transmitting a request to the networked switch in the current storage I/O path to provide network load information currently experienced by the networked switch;
receiving network load information from the networked switch; evaluating whether the networked switch is overloaded based on the received network load information;
selecting a new alternative storage I/O path to the networked storage that does not include the networked switch based on the evaluation, the new alternative storage I/O path being established through the second host bus adapter port and a different networked switch that is networked with the second host bus adapter port;
forwarding future storage I/O communications to the networked storage through the second host bus adapter port and using the new alternative storage I/O path; and
wherein the evaluating step further comprises comparing the received network load information against a threshold value, and the threshold value is a maximum ratio of load at the networked switch in the current storage I/O path to an average load at any other networked switches including the different networked switch along any alternate storage I/O paths between the host computer and the networked storage.

### Claim 2 (depends on 1)

The method of claim 1, wherein the host computer includes a hypervisor that supports running of multiple virtual machines and the method for changing the current storage I/O path is carried out within a module of the hypervisor.

### Claim 3 (depends on 1)

The method of claim 1, wherein the request is transmitted and the network load information is received through an out-of-band channel between the host computer and the networked switch, wherein the out-of-band channel is separate from a network used by the host computer and networked storage to conduct I/O.

### Claim 4 (depends on 1)

The method of claim 1, wherein the evaluating step further comprises requesting network load information from other networked switches that are networked to the host computer and the networked storage and comparing network load information of the other networked switches to the network load information of the networked switch in the current storage I/O path.

### Claim 5 (depends on 1)

The method of claim 1, wherein the selecting step further comprises identifying as the different networked switch a second networked switch that is more lightly loaded than the networked switch in the current storage I/O path.

### Claim 6

One or more computer-readable non-transitory storage media embodying software to change a current storage I/O path used by a host computer to access networked storage to an alternative storage I/O path by considering traffic load at a networked switch in the current storage I/O path, the host computer comprising a processor and first and second host bus adapter ports, wherein the current storage I/O path from the host computer to the networked storage is established through the first host bus adapter port and the networked switch and the processor is configured to execute the software to:
transmit a request to the networked switch in the current storage I/O path to provide network load information currently experienced by the networked switch;
receive network load information from the networked switch;
evaluate whether the networked switch is overloaded based on the received network load information;
select a new alternative storage I/O path to the networked storage that does not include the networked switch based on the evaluation, the new alternative storage I/O path being established through the second host bus adapter port and a different networked switch that is networked with the second host bus adapter port;
forward future storage I/O communications to the networked storage through the second host bus adapter port and using the new alternative storage I/O path; and
wherein the processor is configured to execute the software to evaluate whether the networked switch is overloaded by comparing the received network load information against a threshold value, and the threshold value is a maximum ratio of load at the networked switch in the current storage I/O path to an average load at any other networked switches including the different networked switch along any alternate storage I/O paths between the host computer and the networked storage.

### Claim 7 (depends on 6)

The media of claim 6, wherein the software comprises a multipathing module in a hypervisor of the host computer that supports the running of multiple virtual machines.

### Claim 8 (depends on 6)

The media of claim 6, wherein the request is transmitted and the network load information is received through an out-of-band channel between the host computer and the networked switch, wherein the out-of-band channel is separate from a network used by the host computer and networked storage to conduct I/O.

### Claim 9 (depends on 6)

The media of claim 6, wherein the processor is configured to execute the software to evaluate whether the networked switch is overloaded by requesting network load information from other networked switches that are networked to the host computer and the networked storage and comparing the network load information of the other networked switches to the network load information of the networked switch in the current storage I/O path.

### Claim 10 (depends on 6)

The method of claim 6, wherein the processor is configured to execute the software to select a new alternative storage I/O path by identifying as the different networked switch a second networked switch that is more lightly loaded than the networked switch in the current storage I/O path.

### Claim 11

A host computer comprising:
one or more processors;
first and second host bus adapter ports; and
a memory coupled to the processors comprising instructions executable by the processors to change a current storage I/O path used by the host computer to access networked storage to an alternative storage I/O path by considering traffic load at a networked switch in the current storage I/O path, wherein the current storage I/O path from the host computer to the networked storage is established through the first host bus adapter port and the networked switch and the processors execute the instructions to:
transmit a request to the networked switch in the current storage I/O path to provide network load information currently experienced by the networked switch;
receive network load information from the networked switch; evaluate whether the networked switch is overloaded based on the received network load information;
select a new alternative storage I/O path to the networked storage that does not include the networked switch based on the evaluation, the new alternative storage I/O path being established through the second host bus adapter port and a different networked switch that is networked with the second host bus adapter port;
forward future storage I/O communications to the networked storage through the second host bus adapter port and using the new alternative storage I/O path; and
wherein the executed instructions to evaluate whether the networked switch is overloaded further comprise instructions to compare the received network load information against a threshold value and the threshold value is a maximum ratio of load at the networked switch in the current storage I/O path to an average load at any other networked switches including the different networked switch along any alternate storage I/O paths between the host computer and the networked storage.

### Claim 12 (depends on 11)

The host computer of claim 11, wherein the instructions are part of a multipathing module within a hypervisor of the host computer that supports running of multiple virtual machines.

### Claim 13 (depends on 11)

The host computer of claim 11, wherein the request is transmitted and the network load information is received through an out-of-band channel between the host computer and the networked switch, wherein the out-of-band channel is separate from a network used by the host computer and networked storage to conduct I/O.

### Claim 14 (depends on 11)

The host computer of claim 11, wherein the executed instructions to evaluate whether the networked switch is overloaded further comprise instructions to request network load information from other networked switches that are networked to the host computer and the networked storage and comparing network load information of the other networked switches to the network load information of the networked switch in the current storage I/O path.

### Claim 15 (depends on 11)

The host computer of claim 11, wherein the executed instructions to select a new alternative storage I/O path further comprise instructions to identify as the different networked switch a second networked switch that is more lightly loaded than the networked switch in the current storage I/O path.
