IP Library Granted Patent US 6,968,401
Granted Patent B2
US 6,968,401 · App. 10/607,516 · Granted Nov 22, 2005

Method, system, and program for maintaining and swapping paths in an MPIO environment

Assignee: International Business Machines Corporation
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 6,968,401
App. No.
10/607,516
Granted
Nov 22, 2005
Kind
B2
Abstract

A path control module manages a set of primary paths and a set of standby paths for a target device. When a path in the set of primary paths fails, the path control module may failover to the set of standby paths. Alternatively, when a path in the set of primary paths fails, the path control module may failover that path to a single path from the set of standby paths. The sets of primary paths and standby paths may be set by an administrator to control load balancing of resources in the storage area network. The primary set of paths for a first disk may be the standby set of paths for a second disk. Similarly, the primary set of paths for the second disk may be the standby set of paths for the first disk.

Claims (63)

1. A method for performing multiple path input/output, the method comprising:

receiving a selection of a set of primary paths to be used for issuing transactions to the device, wherein the set of primary paths is a first subset of all available paths for the device;

receiving a selection of a set of standby paths to be used for failover, wherein the set of standby paths is a second subset of all available paths for the device, wherein the first subset and the second subset have no paths in common;

configuring a path control module for a device with the set of primary paths to be used for issuing transactions to the device;

configuring the path control module with the set of standby paths for the device to be used for failover;

issuing transactions to the device using the set of primary paths; and

responsive to a path in the primary set of paths failing, failing over using at least one path in the set of standby paths.

2. The method of claim 1 , wherein the step of failing over using at least one path in the set of standby paths includes:

determining a first path within the set of primary paths;

issuing a transaction to the device using the first path; and

responsive to the transaction failing, marking the first path as down or inactive and configuring the path control manager to issue transactions to the set of standby paths.

3. The method of claim 2 , further comprising:

determining a second path within the set of standby paths; and

issuing the transaction to the device using the second path.

4. The method of claim 2 , further comprising:

responsive to the first path being restored, failing back to the set of primary paths.

5. The method of claim 2 , wherein first path is determined using a round robin approach.

6. The method of claim 1 , wherein the step of failing over using at least one path in the set of standby paths includes:

determining a first path within the set of primary paths;

issuing a transaction to the device using the first path;

responsive to the transaction failing, marking the first path as down or inactive;

determining a second path within the set of standby paths; and

issuing the transaction to the device using the second path, wherein the path control module remains configured to use the set of primary paths to issue transactions.

7. The method of claim 6 , further comprising:

responsive to the first path being restored, adding the first path back to the set of primary paths and adding the second path back to the set of standby paths.

8. The method of claim 6 , wherein first path is determined using a round robin approach.

9. The method of claim 1 , wherein the device is a first device and the path control module is a first path control module, the method further comprising:

configuring a second path control module for the second device with a set of primary paths for the second device, wherein the set of primary paths for the second device is the set of standby paths for the first device; and

configuring the path control module with the set of standby paths for the second device, wherein the set of standby paths for the second device is the set of primary paths for the first device.

10. The method of claim 1 , wherein the path control module is a dynamically loaded extension of a device driver for the device.

11. An apparatus for performing multiple path input/output, the apparatus comprising:

a path control module for a device, wherein the path control module is configured with a set of primary paths to be used for issuing transactions to the device, wherein the set of primary paths is a first subset selected from a set of all available paths for the device, and a set of standby paths for the device to be used for failover, wherein the set of standby paths is a second subset selected from the set of all available paths for the device, wherein the first subset and the second subset have no paths in common; and

a device driver for the device, wherein the device driver issues transactions to the device using paths selected from the set of primary paths and, responsive to a path in the primary set of paths failing, fails over using at least one path in the set of standby paths.

12. The apparatus of claim 11 , wherein the path control module receives a transaction request from the device driver and determines a first path within the set of primary paths;

wherein the device driver issues a transaction to the device using the first path;

wherein, responsive to the transaction failing, the path control module marks the first path as down or inactive; and

wherein the path control module is configured to issue transactions to the set of standby paths responsive to the transaction failing.

13. The apparatus of claim 12 , wherein the path control module determines a second path within the set of standby paths and wherein the device driver issues the transaction to the device using the second path.

14. The apparatus of claim 12 , wherein the path control module fails back to the set of primary paths responsive to the first path being restored.

15. The apparatus of claim 11 , wherein the path control module determines a first path within the set of primary paths;

wherein the device driver issues a transaction to the device using the first path;

wherein the path control module marks the first path as down or inactive, responsive to the transaction failing;

wherein the path control module determines a second path within the set of standby paths; and

wherein the device driver issues the transaction to the device using the second path, wherein the path control module remains configured to use the set of primary paths to issue transactions.

16. The apparatus of claim 15 , wherein the path control modules adds the first path back to the set of primary paths and adds the second path back to the set of standby paths responsive to the first path being restored.

17. A computer program product, in a computer storage medium, for performing multiple path input/output, the computer program product comprising:

instructions for receiving a selection of a set of primary paths to be used for issuing transactions to the device, wherein the set of primary paths is a first subset of all available paths for the device;

instructions for receiving a selection of a set of standby paths to be used for failover, wherein the set of standby paths is a second subset of all available paths for the device, wherein the first subset and the second subset have no paths in common;

instructions for configuring a path control module for a device with the set of primary paths to be used for issuing transactions to the device;

instructions for configuring the path control module with the set of standby paths for the device to be used for failover;

instructions for issuing transactions to the device using paths selected from the set of primary paths; and

instructions, responsive to a path in the primary set of paths failing, for failing over using at least one path in the set of standby paths.

18. The computer program product of claim 17 , wherein the instructions for failing over using at least one path in the set of standby paths include:

instructions for determining a first path within the set of primary paths;

instructions for issuing a transaction to the device using the first path; and

instructions, responsive to the transaction failing, for marking the first path as down or inactive and configuring the path control manager to issue transactions to the set of standby paths.

19. The computer program product of claim 17 , wherein the instructions for failing over using at least one path in the set of standby paths include:

instructions for determining a first path within the set of primary paths;

instructions for issuing a transaction to the device using the first path;

instructions, responsive to the transaction failing, for marking the first path as down or inactive;

determining a second path within the set of standby paths; and

instructions for issuing the transaction to the device using the second path, wherein the path control module remains configured to use the set of primary paths to issue transactions.

20. The computer program product of claim 17 , wherein the path control module is a dynamically loaded extension of a device driver for the device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2003
From: MCBREARTY, GERALD FRANCIS; SCHWENDIMAN, CHRIS ALAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014240/0882 →
Continuity (1)
Related Publication 20040267980A1 · Dec 30, 2004