IP Library Granted Patent US 7,847,801
Granted Patent B2
US 7,847,801 · App. 11/540,468 · Granted Dec 7, 2010

Method for reporting redundant controllers as independent storage entities

Assignee: LSI 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,847,801
App. No.
11/540,468
Granted
Dec 7, 2010
Kind
B2
Abstract

A computer implemented method, apparatus, and computer usable program code are provided for managing dual active controllers in a high availability storage configuration. Redundant dual active controllers in high availability storage configurations are made to appear as individual storage target devices to a host system. Each controller owns certain volumes of data storage. When a host system sends a request to identify available data volumes, the controller that owns certain volumes provides preferred paths to those owned volumes. The host system may also send an inquiry to a controller that asks the controller about data volumes not owned by the controller. For such inquiries, no paths to the non-owned data volumes are returned to the host system.

Claims (53)

1. A computer implemented method for managing a dual active controller array that includes a first controller and a second controller, the computer implemented method comprising:

receiving, by the first controller from an operating system, an inquiry that includes a specific logical unit number that identifies a particular one of a plurality of logical units;

responsive to receiving the inquiry, determining, by the first controller, whether the first controller is a preferred controller for the particular one of the plurality of logical units;

responsive to receipt of the inquiry and to the first controller determining that the first controller is the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a first peripheral qualifier to the operating system that indicates that the first controller is the preferred controller for the particular one of the plurality of logical units; and

responsive to receipt of the inquiry and to the first controller determining that the first controller is not the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a second peripheral qualifier to the operating system that indicates that the second controller is not the preferred controller for the particular one of the plurality of logical units.

2. The computer implemented method of claim 1 , further comprising:

responsive to determining that the first controller is the preferred controller for the particular one of the plurality of logical units, returning an optimized data path, wherein an optimized data path is a data path between an initiator port of the first controller and a target port of the first controller.

3. The computer implemented method of claim 2 , further comprising:

receiving an input/output request for the particular one of the plurality of logical units, wherein the input/output request corresponds to the optimized data path; and

transmitting the input/output request over the optimized data path.

4. The computer implemented method of claim 1 , wherein the owned logical unit is a virtual logical unit.

5. The computer implemented method of claim 1 , wherein the request is a small computer system interface inquiry command.

6. The computer implemented method of claim 1 , wherein the request is a small computer system interface report luns command.

7. The computer implemented method of claim 1 , wherein the request is received during a boot time.

8. The computer implemented method of claim 1 , further comprising:

wherein a data path exists between each one of a plurality of host ports included in a host computer system that is executing the operating system and at least one target port included in the first controller and between each one of the plurality of host ports and at least one target port included in the second controller;

receiving, by the second controller from the operating system, the inquiry;

responsive to receiving the inquiry, determining, by the second controller, whether the second controller is the preferred controller for the particular one of the plurality of logical units;

responsive to the second controller determining that the second controller is the preferred controller for the particular one of the plurality of logical units, returning, by the second controller, the first peripheral qualifier that indicates that second controller is the preferred controller for the particular one of the plurality of logical units;

responsive to the second controller determining that the second controller is not the preferred controller for the particular one of the plurality of logical units, returning the second peripheral qualifier that indicates that the second controller is not the preferred controller for the particular one of the plurality of logical units; and

discovering, by the operating system, only data paths between the host computer system and the preferred controller.

9. A computer program product comprising a computer usable medium including computer usable code for managing a dual active controller array that includes a first controller and a second controller, the computer program product comprising:

computer usable code for receiving, by the first controller from an operating system, an inquiry that includes a specific logical unit number that identifies a particular one of a plurality of logical units;

computer usable code for, responsive to receiving the inquiry, determining, by the first controller, whether the first controller is a preferred controller for the particular one of the plurality of logical units;

computer usable code for, responsive to receipt of the inquiry and to the first controller determining that the first controller is the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a first peripheral qualifier to the operating system that indicates that the first controller is the preferred controller for the particular one of the plurality of logical units; and

responsive to receipt of the inquiry and to the first controller determining that the first controller is not the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a second peripheral qualifier to the operating system that indicates that the second controller is not the preferred controller for the particular one of the plurality of logical units.

10. The computer program product of claim 9 , further comprising:

computer usable code for, responsive to determining that the first controller is the preferred controller for the particular one of the plurality of logical units, returning an optimized data path, wherein an optimized data path is a data path between an initiator port of the first controller and a target port of the first controller.

11. The computer program product of claim 10 , further comprising:

computer usable code for receiving an input/output request for the particular one of the plurality of logical units, wherein the input/output request corresponds to the optimized data path; and

computer usable code for transmitting the input/output request over the optimized data path.

12. The computer program product of claim 9 , wherein the owned logical unit is a virtual logical unit.

13. The computer program product of claim 9 , wherein the request is a small computer system interface inquiry command.

14. The computer program product of claim 9 , wherein the request is a small computer system interface report luns command.

15. The computer program product of claim 9 , wherein the request is received during a boot time.

16. The computer program product of claim 9 , further comprising:

wherein a data path exists between each one of a plurality of host ports included in a host computer system that is executing the operating system and at least one target port included in the first controller and between each one of the plurality of host ports and at least one target port included in the second controller;

computer usable code for receiving, by the second controller from the operating system, the inquiry;

responsive to receiving the inquiry, computer usable code for determining, by the second controller, whether the second controller is the preferred controller for the particular one of the plurality of logical units;

responsive to the second controller determining that the second controller is the preferred controller for the particular one of the plurality of logical units, returning, by the second controller, the first peripheral qualifier that indicates that second controller is the preferred controller for the particular one of the plurality of logical units;

responsive to the second controller determining that the second controller is not the preferred controller for the particular one of the plurality of logical units, computer usable code for returning the second peripheral qualifier that indicates that the second controller is not the preferred controller for the particular one of the plurality of logical units; and

computer usable code for discovering, by the operating system, only data paths between the host computer system and the preferred controller.

17. A data processing system for managing a dual active controller array that includes a first controller and a second controller, the data processing system comprising:

first receiving means for receiving, by the first controller from an operating system, an inquiry that includes a specific logical unit number that identifies a particular one of a plurality of logical units;

determining means for, responsive to receiving the inquiry, determining, by the first controller, whether the first controller is a preferred controller for the particular one of the plurality of logical units;

first returning means for, responsive to receipt of the inquiry and to the first controller determining that the first controller is the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a first peripheral qualifier to the operating system that indicates that the first controller is the preferred controller for the particular one of the plurality of logical units; and

responsive to receipt of the inquiry and to the first controller determining that the first controller is not the preferred controller for the particular one of the plurality of logical units: returning, by the first controller, a second peripheral qualifier to the operating system that indicates that the second controller is not the preferred controller for the particular one of the plurality of logical units.

18. The data processing system of claim 17 , further comprising:

second returning means responsive to determining that the first controller is the preferred controller for the particular one of the plurality of logical units, returning an optimized data path, wherein an optimized data path is a data path between an initiator port of the first controller and a target port of the particular one of the plurality of logical units.

19. The data processing system of claim 18 , further comprising:

second receiving means for receiving an input/output request for the particular one of the plurality of logical units, wherein the input/output request corresponds to the optimized data path; and

transmitting means for transmitting the input/output request over the optimized data path.

20. The data processing system of claim 17 , wherein the owned logical unit is a virtual logical unit.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2011
From: LSI CORPORATION
To: NETAPP, INC.
Reel/Frame 026656/0659 →
CHANGE OF NAME Recorded Oct 27, 2010
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 025206/0149 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2006
From: QI, YANLING
To: LSI LOGIC CORPORATION
Reel/Frame 018377/0492 →
Continuity (1)
Related Publication 20080086618A1 · Apr 10, 2008