System and method for efficient failover/failback techniques for fault-tolerant data storage system
First Claim
1. A method for efficient failover/failback in a data storage system, the data storage system managed in a dual-active controller configuration, the method comprising:
- defining a stripe lock data structure to maintain reservation status or stripe locks of cache lines within data extents that are part of a logical unit or storage volume;
when a controller fails, taking over dirty cache line data of a failed controller by a survivor controller; and
using the stripe lock data structure to process I/O requests from a host system, by the failed controller, until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller.
1 Assignment
0 Petitions
Accused Products
Abstract
Structure and method for efficient failover and failback techniques in a data storage system utilizing a dual-active controller configuration for minimizing a delay in responding to I/O requests from a host system following a controller failure is described. A stripe lock data structure is defined to maintain reservation status or stripe locks of cache lines within data extents that are part of a logical unit or storage volume. When a controller fails, dirty cache line data of a failed controller is taken over by a survivor controller. The stripe lock data structure is used to process I/O requests from a host system, by the failed controller. The data storage system functions in a single-active configuration until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller. The inventive structure and method provide utilize a storage volume reservation system. The stripe lock data structure is defined in memory within each of the two or more caching controllers. The stripe lock data structure is used to provide consistent information within each of the two or more caching controllers, and the stripe lock data structure is used by a failed controller to process I/O requests from a host system until dirty cache line data is flushed to one or more storage volumes by a survivor controller. Provides a method and structure which minimizes a delay required to begin processing of host I/O request following a controller failure.
-
Citations
15 Claims
-
1. A method for efficient failover/failback in a data storage system, the data storage system managed in a dual-active controller configuration, the method comprising:
-
defining a stripe lock data structure to maintain reservation status or stripe locks of cache lines within data extents that are part of a logical unit or storage volume;
when a controller fails, taking over dirty cache line data of a failed controller by a survivor controller; and
using the stripe lock data structure to process I/O requests from a host system, by the failed controller, until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller. - View Dependent Claims (2, 3, 4)
-
-
5. A computer program product for efficient failover/failback in a data storage system, the data storage system managed in dual active controller configuration, the computer program product including a computer readable medium and a computer mechanism stored thereon, the computer mechanism comprising:
-
defining a stripe lock data structure to maintain reservation status or stripe locks of cache lines within data extents that are part of a logical unit or storage volume;
when a controller fails, taking over dirty cache line data of a failed controller by a survivor controller; and
using the stripe lock data structure to process I/O requests from a host system, by the failed controller, until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller. - View Dependent Claims (6, 7, 8)
-
-
9. In a computing environment that allows data access through two or more caching controllers, a storage volume reservation system comprising:
-
a stripe lock data structure defined in memory within each of said two or more caching controllers;
said stripe lock data structure providing consistent information within each of the two or more caching controllers; and
said stripe lock data structure being used by a failed controller to process I/O requests from a host system until dirty cache line data is flushed to one or more storage volumes by a survivor controller.
-
-
10. A caching storage controller device, comprising:
-
a memory defining a stripe lock data structure and storing stripe locks of cache lines within data extents that are part of a logical unit or storage volume shared by a plurality of caching storage controller devices;
the caching storage controller device configured to use the stripe lock data structure to process I/O requests from a host system until dirty cache line data is flushed to one or more storage volumes by a survivor controller following a controller failure. - View Dependent Claims (11, 14, 15)
-
-
12. A method for using a caching storage controller device, the method comprising:
-
defining a stripe lock data structure in a memory of the caching storage controller to maintain reservation status or stripe locks of cache lines within data extents that are part of a logical unit or storage volume shared by a plurality of caching storage controller devices;
when a controller fails, taking over dirty cache line data of a failed controller by a survivor controller; and
using the stripe lock data structure to process I/O requests from a host system, by the failed controller, until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller.
-
-
13. In a computer system having a host computer and a data storage system having storage units coupled to the host through first and second multi-active data storage system controllers, a method for redirecting input/output requests from an intended first controller to a survivor second controller when said intended first controller is unavailable, the method comprising:
-
defining a data structure to store and maintain status of cache lines within data extents that are part of a storage unit;
when said intended first controller fails, taking over dirty cache line data of said failed intended first controller by said survivor second controller; and
processing input/output requests from said host system by said failed first controller using said stripe lock data structure to process input/output requests from said host system, by the failed controller, until the dirty cache line data is flushed to one or more storage volumes, by the survivor controller.
-
Specification