IP Library Granted Patent US 7,694,063
Granted Patent B1
US 7,694,063 · App. 11/584,309 · Granted Apr 6, 2010

System and method for dynamically loadable storage device I/O policy modules

Assignee: Symantec Operating 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 7,694,063
App. No.
11/584,309
Granted
Apr 6, 2010
Kind
B1
Abstract

Systems, methods, apparatus and software can implement a multipathing driver using dynamically loadable device policy modules that provide device specific functionality for providing at least one of input/output (I/O) operation scheduling, path selection, and I/O operation error analysis. Because the device policy modules include device specific functionality, various different devices from different manufacturers can be more efficiently and robustly supported.

Claims (74)

1. An apparatus comprising:

means for storage device discovery configured to gather information regarding at least one storage device, wherein

a distributed computing system is comprised of the at least one storage device;

means for directing input/output (I/O) operations along at least one of a plurality of communication pathways to the at least one storage device;

means for providing storage-device-specific I/O operation scheduling and communication pathway selection in conjunction with the means for directing I/O operations;

means for selectively making the means for providing storage-device-specific I/O operation scheduling and communication pathway selection available to the means for directing I/O operations; and

multipath driver in communication with the means for storage device discovery and configured to direct input/output (I/O) operations along at least one of the communication pathways to the at least one storage device.

2. The apparatus of claim 1 further comprising:

means for discovering the presence of at least one storage device belonging to a distributed computing system; and

means for communicating information about the at least one storage device to the means for directing I/O operations.

3. The apparatus of claim 1 further comprising:

means for registering the means for providing storage-device-specific I/O operation scheduling and communication pathway selection with the means for directing I/O operations.

4. The apparatus of claim 1 wherein the means for directing I/O operations further comprises means for providing a fixed set of I/O policies including at least one of a function, a procedure, and an object-oriented method operable to perform at least one of I/O operation scheduling, path selection, and I/O operation error analysis.

5. The apparatus of claim 1 , further comprising:

means for loading the means for directing I/O operations along the at least one of the plurality of communication pathways to the at least one storage device.

6. A method comprising:

gathering information regarding at least one storage device, wherein

the gathering is performed by a storage device discovery module, and

a distributed computing system comprises the at least one storage device;

directing input/output (I/O) operations along at least one of a plurality of communication pathways to the at least one storage device, wherein

the directing is performed by a multipath driver, and

the storage device discovery module and multipath driver are coupled to one another;

providing storage-device-specific I/O operation scheduling and communication pathway selection in conjunction with the directing the I/O operations, wherein

the providing is performed by a device policy module; and

selectively making the device policy module available to the multipath driver.

7. The method of claim 6 further comprising:

discovering the presence of at least one storage device belonging to a distributed computing system; and

communicating information about the at least one storage device to the multipath driver.

8. The method of claim 6 further comprising:

registering the device policy module with the multipath driver.

9. The method of claim 6 , wherein the directing I/O operations further comprises:

providing a fixed set of I/O policies including at least one of a function, a procedure, and an object-oriented method operable to perform at least one of I/O operation scheduling, path selection, and I/O operation error analysis.

10. The method of claim 6 , further comprising:

loading the multipath driver along the at least one of the plurality of communication pathways to the at least one storage device.

11. The computer system comprising:

at least one processor;

a computer-readable storage medium coupled to the at least one processor; and

computer-code, encoded in the computer-readable storage medium, configured to cause the at least one processor to

gather information regarding at least one storage device, wherein the gathering is performed by a storage device discovery module, and

a distributed computing system comprises the at least one storage device,

direct input/output (I/O) operations along at least one of a plurality of communication pathways to the at least one storage device, wherein

the directing is performed by a multipath driver, and

the storage device discovery module and multipath driver are coupled to one another,

provide storage-device-specific I/O operation scheduling and communication pathway selection in conjunction with the directing I/O operations, wherein

the providing is performed by a device policy module, and

selectively make the device policy module available to the multipath driver.

12. The computer system of claim 11 , wherein the computer code is further configured to cause the processor to:

discover the presence of at least one storage device belonging to a distributed computing system; and

communicate information about the at least one storage device to the multipath driver.

13. The computer system of claim 11 , wherein the computer code is further configured to cause the processor to:

register the device policy module with the multipath driver.

14. The computer system of claim 11 , wherein the computer code configured to direct I/O operations is further configured to cause the processor to

provide a fixed set of I/O policies including at least one of a function, a procedure, and an object-oriented method operable to perform at least one of I/O operation scheduling, path selection, and I/O operation error analysis.

15. The computer system of claim 11 , wherein the computer code is further configured to cause the processor to:

load the multipath driver along the at least one of the plurality of communication pathways to the at least one storage device.

16. A computer-readable storage medium comprising computer code, when executed, the computer code is configured to cause a processor to

gather information regarding at least one storage device, wherein

the gathering is performed by a storage device discovery module, and

a distributed computing system comprises the at least one storage device;

direct input/output (I/O) operations along at least one of a plurality of communication pathways to the at least one storage device, wherein

the directing is performed by a multipath driver, and

the storage device discovery module and multipath driver are coupled to one another;

provide storage-device-specific I/O operation scheduling and communication pathway selection in conjunction with the directing the I/O operations, wherein

the providing is performed by a device policy module; and

selectively make the device policy module available to the multipath driver.

17. The computer-readable storage medium of claim 16 , wherein the computer code, when executed, is further configured to cause the processor to

discover the presence of at least one storage device belonging to a distributed computing system; and

communicate information about the at least one storage device to the multipath driver.

18. The computer-readable storage medium of claim 16 , wherein the computer code, when executed, is further configured to cause the processor to

register the device policy module with the multipath driver.

19. The computer-readable storage medium of claim 16 , wherein the computer code configured to direct I/O operations, when executed, is further configured to cause the processor to:

provide a fixed set of I/O policies including at least one of a function, a procedure, and an object-oriented method operable to perform at least one of I/O operation scheduling, path selection, and I/O operation error analysis.

20. The computer-readable storage medium of claim 16 , wherein the computer code, when executed, is further configured to cause the processor to:

load the multipath driver along the at least one of the plurality of communication pathways to the at least one storage device.

Assignments (15)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
Continuity (1)
Division 1071703700 · Nov 19, 2003