IP Library Granted Patent US 7,783,663
Granted Patent B2
US 7,783,663 · App. 12/029,202 · Granted Aug 24, 2010

Dynamic path partitioning to multipath storage devices

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 7,783,663
App. No.
12/029,202
Granted
Aug 24, 2010
Kind
B2
Abstract

A mechanism is provided for balancing I/O among available paths connected to a device. The mechanism partitions paths so a device can use all or only a subset of available paths to a device, depending on the load of I/O for other devices that are sharing the paths. The partitioning of paths is dynamic, readjusting as I/O loads change for the devices.

Claims (33)

1. A data processing system, comprising:

a bus system;

a plurality of host bus adapters, wherein each host bus adapter within the plurality of host bus adapters forms a path to one or more of a plurality of devices;

a memory connected to the bus system, wherein the memory includes a set of instructions;

a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to collect configuration information for a plurality of paths connecting a host to a plurality of devices in response to expiration of a partitioning interval, identify a throughput for each path within the plurality of paths based on the configuration information, identify a load for each device with the plurality of devices based on the configuration information, and selectively disable paths for devices based on the throughput for each path and the load for each device;

wherein the processing unit executes the set of instructions to select a highest throughput path from within the plurality of paths, identify a highest load device connected to the highest throughput path from within the plurality of devices, and attempt to disable the highest throughput path for each device, other than the highest load device, connected to the highest throughput path; and

wherein the processing unit executes the set of instructions to identify, for each path within the plurality of paths, a device list defining a subset of devices within the plurality of devices connected to a given path and identify, for each device within the plurality of devices, a path list defining a subset of paths within the plurality of paths connected to a given device.

2. The data processing system of claim 1 , wherein the processing unit executes the set of instructions to consult the path list for each device other than the highest load device and disable the highest throughput path in response to there being more than one path in the path list.

3. A computer product comprising:

a computer storage medium having computer executable instructions, when the computer executable instructions are executed by a processor cause a computer to, dynamically partition paths to multi path storage devices, the computer program product including:

computer executable instructions for, in response to expiration of a partitioning interval, collecting configuration information for a plurality of paths connecting a host to a plurality of devices;

computer executable instructions for identifying a throughput for each path within the plurality of paths based on the configuration information;

computer executable instructions for identifying a load for each device within the plurality of devices based on the configuration information; and

computer executable instructions for selectively disabling paths for devices based on the throughput for each path and the load for each device;

wherein the computer executable instructions for selectively disabling paths includes:

computer executable instructions for selecting a highest throughput path from within the plurality of paths;

computer executable instructions for identifying a highest load device connected to the highest throughput path from within the plurality of devices; and

computer executable instructions for attempting to disable the highest throughput path for each device, other than the highest load device, connected to the highest throughput path; and

wherein the computer executable instructions code for collecting configuration information includes:

computer executable instructions for identifying the plurality of paths;

computer executable instructions for identifying, for each path within the plurality of paths, a device list defining a subset of devices within the plurality of devices connected to a given path; and

wherein the computer executable instructions for collecting configuration information includes:

computer executable instructions for identifying the plurality of devices; and

computer executable instructions for identifying, for each device within the plurality of devices, a path list defining a subset of paths within the plurality of paths connected to a given device.

4. The computer program product of claim 3 , further comprising:

computer executable instructions for, in response to the identified highest load device being the only device in the device list for the highest throughput path, selecting a next highest throughput path.

5. The computer program product of claim 3 , wherein the computer executable instructions for attempting to disable the highest throughput path for each device, other than the highest load device, connected to the highest throughput path includes:

computer executable instructions for consulting the path list for each device other than the highest load device; and

computer executable instructions for, in response to there being more than one path in the path list, disabling the highest throughput path.

6. The computer program product of claim 3 , further comprising:

computer executable instructions for in response to disabling a path for a device, updating a corresponding path list and a corresponding device list.

7. The computer program product of claim 3 , further comprising:

computer executable instructions for repeating the steps of selecting a highest throughput path remaining in the plurality of paths, identifying a highest load device connected to the selected highest throughput path, and attempting to disable the selected highest throughput path for each device, other than the identified highest load device, connected to the selected highest throughput path until all paths are considered.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 027991/0416 →