IP Library Granted Patent US 9,864,663
Granted Patent B2
US 9,864,663 · App. 15/048,795 · Granted Jan 9, 2018

Storage controller failover system

Inventors: Lucky Pratap Khemani (Bangalore, IN); Kala Sampathkumar (Bangalore, IN)
Assignee: Dell Products L.P.
G06F11/2094G06F11/2092G06F12/0893G06F17/30312G06F2201/85G06F2212/604
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 9,864,663
App. No.
15/048,795
Granted
Jan 9, 2018
Kind
B2
Abstract

A storage controller failover system includes servers, storage controllers coupled to storage subsystems, and a switching system coupling the servers to the storage controllers. A storage controller configurations and storage controller caches for each of the storage controllers are stored in one or more database. A failure is detected of a first storage controller that has provided first storage communications along a first path between a first server and a first storage subsystem and, in response, a second storage controller that is configured to take over the first storage communications from the first storage controller is determined based on its second storage controller configuration. A first storage controller cache for the first storage controller is provided to the second storage controller, and the second storage controller is caused to provide the first storage communications along a second path between the first server and the first storage subsystem.

Claims (51)

1. A storage controller failover system, comprising:

a chassis;

a plurality of servers housed in the chassis;

a plurality of storage controllers that are housed in the chassis and coupled to a plurality of storage subsystems that are housed in the chassis;

a switching system that is housed in the chassis and that couples the plurality of servers to the plurality of storage controllers, wherein the switching system is configured to enable the storage of a respective storage controller cache for each of the plurality of storage controllers in a cache database; and

a controller system that is housed in the chassis and that is coupled to the plurality of servers, the plurality of storage controllers, and the switching system, wherein the controller system is configured to:

store a respective storage controller configuration for each of the plurality of storage controllers in a storage controller database;

determine that a first storage controller of the plurality of storage controllers that has provided first storage communications along a first path between a first server of the plurality of servers and a first storage subsystem of the plurality of storage subsystems has failed and, in response, determine a second storage controller of the plurality of storage controllers that is configured to take over the first storage communications from the first storage controller based on a second storage controller configuration for the second storage controller that is stored in the storage controller database;

provide a first storage controller cache for the first storage controller that is stored in the cache database to the second storage controller; and

cause the second storage controller to provide the first storage communications along a second path between the first server and the first storage subsystem.

2. The system of claim 1 , wherein each of the plurality of servers is configured to receive the respective storage controller configuration from at least one of the plurality of storage controllers in response to a configuration change in that storage controller and, in response, provide that respective storage controller configuration to the controller system.

3. The system of claim 1 , wherein the first server is configured to report the failure of the first storage controller to the controller system.

4. The system of claim 1 , wherein the controller system is configured to determine that the second storage controller is configured to take over the first storage communications from the first storage controller in response to determining that a communication load handled by the second storage controller is less than communication loads handled by the others of the plurality of storage controllers.

5. The system of claim 1 , wherein the second storage controller is configured to:

provide at least one active virtual function for a second server of the plurality of servers to provide second storage communications along a third path between the second server of the plurality of servers and a second storage subsystem of the plurality of storage subsystems;

hold at least one reserved virtual function prior to the failure of the first storage controller; and

provide the at least one reserved virtual function for the first server to provide the first storage communications along the second path between the first server and the first storage subsystem subsequent to the failure of the first storage controller.

6. The system of claim 1 , wherein the second storage controller is configured as a redundant storage controller that is configured to provide storage communications along at least one path between at least one of the plurality of servers and at least one of the plurality of storage subsystems prior to the failure of the first storage controller.

7. The system of claim 1 , wherein the cache database is included on a storage device that is external to the switching system.

8. An information handling system (IHS), comprising:

a switching system that is configured to couple a plurality of servers to a plurality of storage controllers, wherein the switching system is configured to enable the storage of a respective storage controller cache for each of the plurality of storage controllers in a cache database; and

a controller system that is coupled to the switching system and configured to couple to the plurality of servers, wherein the controller system:

stores a respective storage controller configuration for each of the plurality of storage controllers in a storage controller database;

stores a respective storage controller cache for each of the plurality of storage controllers in a cache database;

determines that a first storage controller of the plurality of storage controllers that has provided first storage communications along a first path between a first server of the plurality of servers and a first storage subsystem of the plurality of storage subsystems has failed and, in response, determines a second storage controller of the plurality of storage controllers that is configured to take over the first storage communications from the first storage controller based on a second storage controller configuration for the second storage controller that is stored in the storage controller database;

provides a first storage controller cache for the first storage controller that is stored in the cache database to the second storage controller; and

causes the second storage controller to provide the first storage communications along a second path between the first server and the first storage subsystem.

9. The IHS of claim 8 , wherein the controller system receives the respective storage controller configuration for each of the plurality of storage controllers from at least one of the plurality of servers in response to a configuration change in that storage controller.

10. The IHS of claim 8 , wherein the controller system determines the first storage controller has failed in response to a communication received from the first server.

11. The IHS of claim 8 , wherein the controller system determines that the second storage controller is configured to take over the first storage communications from the first storage controller in response to determining that a communication load handled by the second storage controller is less than communication loads handled by the others of the plurality of storage controllers.

12. The IHS of claim 8 , wherein controller system configures the second storage controller as a redundant storage controller that provides storage communications along at least one path between at least one of the plurality of servers and at least one of the plurality of storage subsystems prior to the failure of the first storage controller.

13. The IHS of claim 8 , wherein the cache database is included on a storage device that is external to the switching system.

14. A method for providing storage controller failover, comprising:

storing, by a controller system in a storage controller database, a respective storage controller configuration for each of a plurality of storage controllers that are coupled to a switching system;

storing, through a switching system in a cache database, a respective storage controller cache for each of the plurality of storage controllers;

determining, by the controller system, a failure of a first storage controller of the plurality of storage controllers that has provided first storage communications along a first path between a first server of a plurality of servers that are coupled to the switching system and a first storage subsystem of a plurality of storage subsystems at are coupled to the switching system and, in response, determining a second storage controller of the plurality of storage controllers that is configured to take over the first storage communications from the first storage controller based on a second storage controller configuration for the second storage controller that is stored in the storage controller database;

providing, by the controller system, a first storage controller cache for the first storage controller that is stored in the cache database to the second storage controller; and

causing, by the controller system, the second storage controller to provide the first storage communications along a second path between the first server and the first storage subsystem.

15. The method of claim 14 , further comprising:

receiving, by each of the plurality of servers, the respective storage controller configuration from at least one of the plurality of storage controllers in response to a configuration change in that storage controller and, in response, providing that respective storage controller configuration to the controller system.

16. The method of claim 14 , further comprising:

reporting, by the first server, the failure of the first storage controller to the controller system.

17. The method of claim 14 , further comprising:

determining, by the controller system, that the second storage controller is configured to take over the first storage communications from the first storage controller in response to determining that a communication load handled by the second storage controller is less than communication loads handled by the others of the plurality of storage controllers.

18. The method of claim 14 , further comprising:

providing, by the second storage controller, at least one active virtual function for a second server of the plurality of servers to provide second storage communications along a third path between the second server of the plurality of servers and a second storage subsystem of the plurality of storage subsystems;

holding, by the second storage controller, at least one reserved virtual function prior to the failure of the first storage controller; and

providing, by the second storage controller, the at least one reserved virtual function for the first server to provide the first storage communications along the second path between the first server and the first storage subsystem subsequent to the failure of the first storage controller.

19. The method of claim 14 , further comprising:

configuring, by the controller system, the second storage controller as a redundant storage controller that provides storage communications along at least one path between at least one of the plurality of servers and at least one of the plurality of storage subsystems prior to the failure of the first storage controller.

20. The method of claim 14 , wherein the cache database is included on a storage device that is external to the switching system.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2016
From: KHEMANI, LUCKY PRATAP; SAMPATHKUMAR, KALA
To: DELL PRODUCTS L.P.
Reel/Frame 037780/0333 →
Continuity (1)
Related Publication 20170242771A1 · Aug 24, 2017