IP Library › Granted Patent US 6,928,514
Granted Patent B2
US 6,928,514 · App. 10/212,359 · Granted Aug 9, 2005

Method and apparatus for teaming storage controllers

Assignee: LSI Logic 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,928,514
App. No.
10/212,359
Granted
Aug 9, 2005
Kind
B2
Abstract

A high availability storage system is provided in a server. The server includes a plurality of storage controllers. The storage controllers may be connected to storage enclosures that house the physical devices. If one controller fails, the second controller assumes command of the drive array handled by the failed controller with no interruption of server operation or loss of data. The controllers are connected to the physical drives via a channel or bus, such as a small computer systems interface bus. When two or more teaming controllers are active, the channel or bus may be split to increase throughput. A team driver is provided to direct and redirect requests to the appropriate controllers. The team drive may detect a failed controller, rejoin the bus, and assign control of all logical or physical drives to the remaining active controller. The team driver may also detect a new controller being added to the system, slit the bus, and divide the logical drives between the teaming controllers.

Claims (87)

1. A method for teaming storage controllers comprising:

assigning control of a plurality of drives to a first storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor;

in response to detecting a second storage controller, distributing the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller; and

redirecting access requests for the second subset of drives to the second storage controller,

wherein the step of distributing the plurality of drives comprises issuing a SCSI split command to the enclosure processor.

2. The method of claim 1 , wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers.

3. The method of claim 1 , further comprising:

in response to detecting a failed controller within the first controller and the second controller, directing all access requests to a remaining active controller within the first controller and the second controller.

4. The method of claim 3 , wherein the step of directing all access requests to the remaining active controller comprises issuing a SCSI rejoin command to the enclosure processor.

5. The method of claim 1 , wherein the first controller has a first memmory and the second controller has a second memory.

6. The method of claim 5 , wherein at least one drive within the plurality of drives is configured as a WRITE-BACK drive, the method further comprising:

dividing the first memory into a first cache memory and a first mirror memory;

dividing the second memory into a second cache memory and a second mirror memory;

mirroring the second cache memory in the first mirror memory; and

mirroring the first cache memory in the second mirror memory.

7. A method for teaming storeage controllers comprising:

assigning control of a plurality of drives to a first storage controller, wherein the plurality of drives are logical drives and wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers;

in response to detecting a second storage controller, distributing the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller, and

redirecting access requests for the second subset of drives to the second storage controller.

8. A method for teaming storage controllers comprising:

assigning control of a plurality of drives to a first storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor,

in response to detecting second storage controller, distributing the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller; and

redirecting access requests for the second subset of drives to the second storage controller,

wherein the plurality of drives are physical drives that form a logical drive, wherein the step of distributing the plurality of drives comprises dividing the logical drive into a plurality of portions, and wherein the plurality of portions comprises at least a first portion for the first storage controller and at least a second portion for the second storage controller.

9. The method of claim 8 , wherein the logical drive is configured as a WRITE-THROUGH drive.

10. A method for teaming storage controllers comprising:

distributing a plurality of drives into a first subset of drives for a first storage controller and a second subset of drives for the second storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor;

directing access requests for the first subset of drives to the first storage controller,

directing access requests for the second subset of drives to the second storage controller; and

in response to detecting a failed controller within the first controller and the second controller, redirecting all access requests to a remaining active controller within the first controller and the second controllers,

wherein the step of distributing the plurality of drives comprises issuing a SCSI split command to the enclosure processor.

11. The method of claim 10 , wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers.

12. The method of claim 10 , wherein the step of redirecting all access requests to the remaining active controller comprises issuing a SCSI rejoin command to the enclosure processor.

13. The method of claim 10 , further comprising:

in response to detecting a replacement storage controller, redirecting access requests for the second subset of drives to the replacement storage controller.

14. A method for teaming storage controllers comprising:

distributing a plurality of drives into a first subset of drives for a first storage controller and a second subset of drives for the second storage controller, wherein the plurality of drives are logical drives and wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers;

directing access requests for the first subset of drives to the first storage controller,

directing access requests for the second subset of drives to the second storage controller; and

in response to detecting a failed controller within the first controller and the second controller, redirecting all access requests to a remaining active controller within the first controller and the second controller.

15. A storage system comprising:

a host device;

a first storage controller coupled to the host computer;

a second storage controller coupled to the host computer; and

a plurality of drives coupled to the first storage controller and the second storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor,

wherein the host device assigns control of the plurality of drives to a first storage controller, distributes the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller in response to detecting a second storage controller, and redirects access requests for the second subset of drives to the second storage controller, and

wherein the host device distributes the plurality of drives by issuing a SCSI split command to the enclosure processor.

16. The storage system of claim 15 , wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers.

17. The storage system of claim 15 , wherein the host device directs all access requests to a remaining active controller within the first controller and the second controller in response to detecting a failed controller within the first controller and the second controller.

18. The storage system of claim 15 , wherein the first controller has a first memory and the second controller has a second memory.

19. The storage system of claim 18 , wherein at least one drive within the plurality of drives is configured as a WRITE-BACK drive, wherein the first memory is divided into a first cache memory and a first mirror memory, wherein the second memory is divided into a second cache memory and a second mirror memory, wherein the second cache memory is mirrored in the first mirror memory, and wherein the first cache memory is mirrored in the second mirror memory.

20. The storage system of claim 15 , wherein the host, in response to detecting a failed controller within the first controller and the second controller, directs all access requests to a remaining active controller within the first controller and the second controller by issuing a SCSI rejoin command to the enclosure processor.

21. A storage system comprising:

a host device;

a first storage controller coupled to the host computer;

a second storage controller coupled to the host computer, wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers; and

a plurality of drives counted to the first storage controller and the second storage controller, wherein the plurality of drives are logical drives,

wherein the host device assigns control of the plurality of drives to a first storage controller, distributes the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller in response to detecting a second storage controller, and redirects access requests for the second subset of drives to the second storage controller.

22. A storage system comprising:

a host device;

a first storage controller coupled to the host computer;

a second storage controller coupled to the host computer; and

a plurality of drives coupled to the first storage controller and the second storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor,

wherein the host device distributes the plurality of drives into a first subset of drives for a first storage controller and a second subset of drives for the second storage controller, directs access requests for the first subset of drives to the first storage controller, directs access requests for the second subset of drives to the second storage controller, and redirects all access requests to a remaining active controller within the first controller and the second controller in response to detecting a failed controller within the first controller and the second controller, and

wherein the host device distributes the plurality of drives by issuing a SCSI split command to the enclosure processor.

23. The storage system of claim 22 , wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers.

24. The storage system of claim 22 , wherein the host device redirects access requests for the second subset of drives to the replacement storage controller in response to detecting a replacement storage controller.

25. The storage system of claim 22 , wherein the host redirects all access requests to the remaining active controller by issuing a SCSI rejoin command to the enclosure processor.

26. A storage system comprising:

a host device;

a first storage controller coupled to the host computer;

a second storage controller coupled to the host computer; and

a plurality of drives coupled to the first storage controller and the second storage controller, wherein the plurality of drives are logical drives and wherein the first storage controller and the second storage controller are Redundant Array of Independent Disk controllers,

wherein the host device distributes the plurality of drives into a first subset of drives for a first storage controller and a second subset of drives for the second storage controller, directs access requests for the first subset of drives to the first storage controller, directs access requests for the second subset of drives to the second storage controller, and redirects all access requests to a remaining active controller within the first controller and the second controller in response to detecting a failed controller within the first controller and the second controller.

27. A computer program product, in a computer readable medium, for teaming storage controllers comprising:

instructions for assigning control of a plurality of drives to a first storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor;

instructions for distributing the plurality of drives into a first subset of drives for the first storage controller and a second subset of drives for the second storage controller in response to detecting a second storage controller, wherein distributing the plurality of drives comprises issuing a SCSI split command to the enclosure processor; and

instructions for redirecting access requests for the second subset of drives to the second storage controller.

28. The computer program product of claim 27 , further comprising:

instructions for directing all access requests to a remaining active controller within the first controller and the second controller in response to detecting a failed controller within the first controller and the second controller,

wherein directing all access requests to the remaining active controller comprises issuing a SCSI rejoin command to the enclosure processor.

29. A computer program product, in a computer readable medium, for teaming storage controllers comprising:

instructions for distributing a plurality of drives into a first subset of drives for a first storage controller and a second subset of drives for the second storage controller, wherein the plurality of drives are physical drives connected to a Small Computer System Interface (SCSI) bus in an enclosure having an enclosure processor and wherein distributing the plurality of drives comprises issuing a SCSI split command to the enclosure processor;

instructions for directing access requests for the first subset of drives to the first storage controller;

instructions for directing access requests for the second subset of drives to the second storage controller; and

instructions for redirecting all access requests to a remaining active controller within the first controller and the second controller in response to detecting a failed controller within the first controller and the second controller.

30. The computer program product of claim 29 , wherein redirecting all access requests to the remaining active controller comprises issuing a SCSI rejoin command to the enclosure processor.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2002
From: CHATTERJEE, PARESH; MAHARANA, PARAG RANJAN
To: LSI LOGIC CORPORATION
Reel/Frame 013172/0415 →
Continuity (1)
Related Publication 20040024962A1 · Feb 5, 2004