IP Library Granted Patent US 10,185,639
Granted Patent B1
US 10,185,639 · App. 15/143,882 · Granted Jan 22, 2019

Systems and methods for performing failover in storage system with dual storage controllers

Inventors: Paresh Chatterjee (Fremont, CA); Vijayarankan Muthirisavenugopal (Duluth, GA); Jomy Jose Maliakal (Duluth, GA); Sharon Samuel Enoch (Duluth, GA)
Assignee: AMERICAN MEGATRENDS, INC.
G06F11/2092G06F11/2023G06F11/2033G06F2201/805
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 10,185,639
App. No.
15/143,882
Granted
Jan 22, 2019
Kind
B1
Abstract

An example computer-implemented method for performing failover operations in a data storage system is described herein. The data storage system can include a first storage controller and a second storage controller for processing input/output (“I/O”) operations for the data storage system. The method can include, in response to a failure of the first storage controller, performing failover operations with the second storage controller, and processing the I/O operations with the second storage controller. The failover operations can include preparing a disk subsystem layer for I/O operations, preparing a device manager layer for the I/O operations, and preparing a network layer for the I/O operations. The disk subsystem, device manager, and network layers can be prepared for the I/O operations without dependencies. In particular, preparation of the network layer is not dependent on preparation of the disk subsystem layer or the device manager layer.

Claims (45)

1. A computer-implemented method for performing faster failover operations in a dual controller data storage system including a first storage controller and a second storage controller, comprising:

in response to a failure of the first storage controller, performing failover operations with the second storage controller, wherein the failover operations comprise:

preparing a disk subsystem layer for input/output (“I/O”) operations,

preparing a device manager layer for the I/O operations, and

preparing a network layer for the I/O operations;

creating one or more pseudo devices for fielding the I/O operations before completing preparation of the disk subsystem and device manager layers for the I/O operations, wherein the one or more pseudo devices are created using in-memory device metadata information synchronized between the first and second storage controllers, and wherein preparing the network layer for the I/O operations comprises exposing the one or more pseudo devices to an initiator of the I/O operations;

receiving an I/O operation directed to the one or more pseudo devices; and

processing the I/O operations with the second storage controller after the disk subsystem layer, the device manager layer, and the network layer are prepared for the I/O operations, wherein preparing the network layer for the I/O operations is not dependent on preparing the disk subsystem layer or the device manager layer for the I/O operations.

2. The computer-implemented method of claim 1 , wherein preparation of the network layer for the I/O operations begins before completing preparation of the disk subsystem layer or the device manager layer for the I/O operations.

3. The computer-implemented method of claim 1 , wherein the network layer is prepared for the I/O operations in parallel with preparing the disk subsystem and device manager layers for the I/O operations.

4. The computer-implemented method of claim 1 , further comprising synchronizing data between the first and second storage controllers before the failure of the first storage controller, wherein the one or more pseudo devices are created using the synchronized data, and wherein the synchronized data includes the in-memory device metadata information.

5. The computer-implemented method of claim 4 , wherein the synchronized data comprises volume data, volume metadata, cache data, or cache metadata.

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

maintaining the received I/O operation in a queue, wherein the received I/O operation is processed from the queue after the disk subsystem layer, the device manager layer, and the network layer are prepared for the I/O operations.

7. The computer-implemented method of claim 1 , wherein preparing the device manager layer comprises mounting a block device or file system.

8. The computer-implemented method of claim 1 , wherein preparing the disk subsystem layer comprises abstracting organization of a redundant array of inexpensive disks (“RAID”).

9. A non-transitory computer-readable recording medium having computer-executable instructions stored thereon for performing faster failover operations in a dual controller data storage system including a first storage controller and a second storage controller that, when executed by the second storage controller, cause the second storage controller to:

in response to a failure of the first storage controller, perform failover operations comprising:

preparing a disk subsystem layer for input/output (“I/O”) operations,

preparing a device manager layer for the I/O operations, and

preparing a network layer for the I/O operations;

create one or more pseudo devices for fielding the I/O operations before completing preparation of the disk subsystem and device manager layers for the I/O operations, wherein the one or more pseudo devices are created using in-memory device metadata information synchronized between the first and second storage controllers, and wherein preparing the network layer for the I/O operations comprises exposing the one or more pseudo devices to an initiator of the I/O operations;

receive an I/O operation directed to the one or more pseudo devices; and

process the I/O operations after the disk subsystem layer, the device manager layer, and the network layer are prepared for the I/O operations, wherein preparing the network layer for the I/O operations is not dependent on preparing the disk subsystem layer or the device manager layer for the I/O operations.

10. The non-transitory computer-readable recording medium of claim 9 , wherein:

preparation of the network layer for the I/O operations begins before completing preparation of the disk subsystem layer or the device manager layer for the I/O operations; or

the network layer is prepared for the I/O operations in parallel with preparing the disk subsystem and device manager layers for the I/O operations.

11. The non-transitory computer-readable recording medium of claim 9 , having further computer-executable instructions stored thereon that, when executed by the second storage controller, cause the second storage controller to synchronize data between the first and second storage controllers before the failure of the first storage controller, wherein the one or more pseudo devices are created using the synchronized data, wherein the synchronized data includes the in-memory device metadata information.

12. The non-transitory computer-readable recording medium of claim 11 , wherein the synchronized data comprises volume data, volume metadata, cache data, or cache metadata.

13. The non-transitory computer-readable recording medium of claim 9 , having further computer-executable instructions stored thereon that, when executed by the second storage controller, cause the second storage controller to:

maintain the received I/O operation in a queue, wherein the received I/O operation is processed from the queue after the disk subsystem layer, the device manager layer, and the network layer are prepared for the I/O operations.

14. The non-transitory computer-readable recording medium of claim 9 , wherein preparing the device manager layer comprises mounting a block device or file system, and wherein preparing the disk subsystem layer comprises abstracting organization of a redundant array of inexpensive disks (“RAID”).

15. A system for performing faster failover operations in a dual controller data storage system, comprising:

a first storage controller; and

a second storage controller, wherein, in response to a failure of the first storage controller, the second storage controller is configured to perform failover operations comprising:

preparing a disk subsystem layer for input/output (“I/O”) operations,

preparing a device manager layer for the I/O operations, and

preparing a network layer for the I/O operations, wherein the second storage controller is further configured to:

create one or more pseudo devices for fielding the I/O operations before completing preparation of the disk subsystem and device manager layers for the I/O operations, wherein the one or more pseudo devices are created using in-memory device metadata information synchronized between the first and second storage controllers, and wherein preparing the network layer for the I/O operations comprises exposing the one or more pseudo devices to an initiator of the I/O operations;

receive an L/O operation directed to the one or more pseudo devices; and

process the I/O operations after the disk subsystem layer, the device manager layer, and the network layer are prepared for the I/O operations, wherein preparing the network layer for the I/O operations is not dependent on preparing the disk subsystem layer or the device manager layer for the I/O operations.

16. The system of claim 15 , wherein:

preparation of the network layer for the I/O operations begins before completing preparation of the disk subsystem layer or the device manager layer for the I/O operations; or

the network layer is prepared for the I/O operations in parallel with preparing the disk subsystem and device manager layers for the I/O operations.

17. The system of claim 15 , wherein the second storage controller is further configured to synchronize data between the first and second storage controllers before the failure of the first storage controller, wherein the one or more pseudo devices are created using the synchronized data, wherein the synchronized data includes the in-memory device metadata information.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: MUTHIRISAVENUGOPAL, VIJAYARANKAN; MALIAKAL, JOMY JOSE; ENOCH, SHARON SAMUEL
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 039676/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: CHATTERJEE, EXECUTRIX OF THE ESTATE OF PARESH CHATTERJEE, UDITA
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 039677/0056 →
Continuity (1)
Provisional Application 62158620 · May 8, 2015
Cited By (3)
US 12,292,806 US 12,367,115 US 12,632,332