IP Library Granted Patent US 7,318,138
Granted Patent B1
US 7,318,138 · App. 11/215,467 · Granted Jan 8, 2008

Preventing undesired trespass in storage arrays

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,318,138
App. No.
11/215,467
Granted
Jan 8, 2008
Kind
B1
Abstract

Procedures and systems for avoiding undesired trespass may be deployed in host processors that use storage arrays with automated fail-back and fail-over functions. In one embodiment, a method may synchronize path records in a storage array with path records in a host processor. The method may detect a failure of a first data path through a first controller on the storage array to a logical unit (LUN) on the storage array. In response to the failure, the host processor may initiate a failover on the storage array of the LUN, so that the LUN is accessed through a backup controller on the storage array. The host processor may also issue commands to pin the failed-over LUN to the backup controller. For example, the host processor may issue commands to set the default owner of the LUN to be the backup controller.

Claims (76)

1. A method comprising:

detecting a failure of a first data path to a logical unit (LUN) on a storage array with trespass-based failover, where:

the first data path includes a first controller on the storage array; and in response to the detecting the failure,

locking a record in the storage array to designate a second controller on the storage array for communication with the LUN, where:

the locking prevents the storage array from resetting the record in the storage array to designate the first controller for communication with the LUN, and

communicating with the LUN through a second data path that includes the second controller on the storage array.

2. The method of claim 1 , further comprising setting a current record in the storage array to designate the second controller for communication with the LUN.

3. The method of claim 1 , where the locking comprises setting a default record in the storage array to designate the second controller for communication with the LUN.

4. The method of claim 1 , where the locking comprises setting a default record in the storage array to designate the second controller for communication with the LUN, the method further comprising:

setting a current record in the storage array to designate the second controller for communication with the LUN.

5. The method of claim 1 , where the locking comprises updating a group membership of the LUN to associate the LUN with the second controller.

6. The method of claim 1 , where the locking comprises updating a group membership of the LUN to associate the LUN with the second controller, the method further comprising:

setting a current record in the storage array to designate the second controller for communication with the LUN.

7. The method of claim 1 , where communicating with the LUN through the second data path induces a trespass-based fail-over in the storage array.

8. The method of claim 1 , where communicating with the LUN through the second data path induces a trespass-based fail-over in the storage array and sets a current record in the storage array to designate the second controller for communication with the LUN.

9. The method of claim 1 , further comprising:

in response to the detecting the failure,

a host processor deferring an update in the host processor of a record designating a controller on the storage array for communication with an idle LUN associated with the failed first data path.

10. The method of claim 1 , further comprising:

in response to the detecting the failure,

a host processor maintaining a record in the host processor as designating the first controller for communication with an idle LUN associated with the failed first data path;

in response to an instruction to communicate with the idle LUN,

the host processor attempting to communicate with the idle LUN through the first data path, and

the host processor communicating with the idle LUN through the second data path if the first data path remains unavailable.

11. A system comprising:

a memory comprising ownership records designating a controller on a storage array with trespass-based failover;

a dynamic multipath module configured to communicate with a logical unit (LUN) on the storage array through the controller designated in the memory; and

a path monitor module configured to detect a failure of a first data path to the LUN;

where:

the first data path includes the controller designated in the memory; and

in response to the path monitor module detecting a failure of the first data path to the LUN, the dynamic multipath module is further configured to:

update the ownership records in the memory to designate an alternate controller on the storage array to be used for communication with the LUN, and

update a record in the storage array to designate the alternate controller as a default owner for the LUN.

12. The system of claim 11 , where:

the ownership records in the memory designate a primary controller and a secondary controller on the storage array;

the dynamic multipath module is further configured to communicate with the LUN initially through the primary controller, and through the secondary controller in response to the path monitor module detecting a failure of a data path using the primary controller.

13. The system of claim 12 , where the dynamic multipath module is further configured to update the record in the storage array to designate the secondary controller as the default owner for the LUN.

14. The system of claim 11 , where in response to the path monitor module detecting a failure of the first data path to the LUN, the dynamic multipath module is further configured to:

maintain the ownership records in the memory for an idle LUN on the storage array;

attempt to communicate with the idle LUN through the first data path in response to an instruction to communicate with the idle LUN; and

update the ownership records in the memory to designate the alternate controller if the attempt fails.

15. The system of claim 11 , where in response to the path monitor module detecting the failure of the first data path to the LUN, the dynamic multipath module is further configured to communicate with the LUN through the second data path, thereby inducing a trespass-based fail-over in the storage array.

16. A computer readable medium comprising program instructions executable on a processor, the computer readable medium being at least one of an electronic storage medium, a magnetic storage medium, an optical storage medium, and a communications medium conveying signals encoding the instructions, where the program instructions are operable to implement each of:

detecting a failure of a first data path to a logical unit (LUN) on a storage array with trespass-based failover, where:

the first data path includes a first controller on the storage array; and

in response to the detecting the failure,

locking a record in the storage array to designate a second controller on the storage array for communication with the LUN, where:

the locking prevents the storage array from resetting the record in the storage array to designate the first controller for communication with the LUN, and

communicating with the LUN through a second data path that includes the second controller on the storage array.

17. The computer readable medium of claim 16 , where communicating with the LUN through the second data path induces a trespass-based fail-over in the storage array and sets a current record in the storage array to designate the second controller for communication with the LUN.

18. The computer readable medium of claim 16 , where the program instructions are further operable to implement each of:

in response to the detecting the failure,

a host processor maintaining a record in the host processor as designating the first controller for communication with an idle LUN associated with the failed first data path;

in response to an instruction to communicate with the idle LUN,

the host processor attempting to communicate with the idle LUN through the first data path, and

the host processor communicating with the idle LUN through the second data path if the first data path remains unavailable.

19. An apparatus comprising:

a memory comprising ownership records, where the ownership records designate a controller on a storage array;

a first means for communicating with a logical unit (LUN) on the storage array through the controller designated in the memory; and

a second means for detecting a failure of a first data path to the LUN;

where:

the first data path includes the controller designated in the memory; and

in response to the second means detecting a failure of the first data path to the LUN, the first means is configured to:

update the ownership records in the memory to designate an alternate controller on the storage array to be used for communication with the LUN,

initiate a trespass-initiated failover on the storage array for the LUN by communicating with the LUN through the alternate controller, and

update a record in the storage array to designate the alternate controller as a default owner for the LUN.

20. The system of claim 19 , where:

the ownership records in the memory designate a primary controller and a secondary controller on the storage array;

the ownership records initially designate the primary controller as the default owner for the LUN;

first means is further configured to update the record in the storage array to designate the secondary controller as the default owner for the LUN in response to the failure of the first data; and

the first means is further configured to communicate with the LUN through the default owner for the LUN.

21. The system of claim 19 , where in response to the second means detecting a failure of the first data path to the LUN, the first means is further configured to:

maintain the ownership records in the memory for an idle LUN on the storage array;

attempt to communicate with the idle LUN through the first data path in response to an instruction to communicate with the idle LUN; and

update the ownership records in the memory to designate the alternate controller if the attempt fails.

22. The system of claim 19 , where in response to the second means detecting the failure of the first data path to the LUN, the first means is further configured to communicate with the LUN through the alternate controller, thereby inducing a trespass-based fail-over in the storage array.

Assignments (17)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2005
From: USGAONKAR, AMEYA P.
To: VERITAS OPERATING CORPORATION
Reel/Frame 016947/0873 →