IP Library Granted Patent US 9,348,682
Granted Patent B2
US 9,348,682 · App. 14/470,885 · Granted May 24, 2016

Methods for transitioning control between two controllers of a storage system

Inventors: Vikas Gupta (Santa Clara, CA); Ashutosh Tripathi (Union City, CA); Bob Fozard (Los Gatos, CA); Tomasz Barszczak (Palo Alto, CA)
Assignee: Nimble Storage, Inc.
G06F11/0757G06F11/0727G06F11/2092G06F2201/81
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,348,682
App. No.
14/470,885
Granted
May 24, 2016
Kind
B2
Abstract

Described herein are techniques for transitioning control between a first and second controller of a storage system. In such transition, the first controller transmits a message to a memory element shared by the first and second controllers, the message capable of notifying the second controller of an imminent failure of the first controller. The second controller receives the message from the shared memory element, the message notifying the second controller of an imminent failure of the first controller. Subsequent to transmitting the message to the shared memory element, the first controller becomes unavailable to facilitate access to the storage devices of the storage system. Subsequent to receiving the message from the shared memory element, the second controller becomes available to facilitate access to the storage devices of the storage system.

Claims (47)

1. A method for a storage system, the storage system including a first controller, a second controller and a plurality of storage devices, each of the first and second controllers communicatively coupled to each one of the storage devices, the method comprising:

by the first controller,

(i) starting a first timer that expires after a first time period;

(ii) subsequent to starting the first timer, transmitting a first message from the first controller to a memory element shared by the first and second controllers; and

(iii) subsequent to transmitting the first message to the shared memory element and before the first timer expires, entering a failure state in which the first controller has failed and is unavailable to facilitate access to the storage devices,

wherein the transmission of the first message is in anticipation of the imminent failure of the first controller and is not reactive to a detection of the failure of the first controller; and

by the second controller,

(i) receiving by the second controller the first message from the shared memory element, the first message notifying the second controller of the imminent failure of the first controller;

(ii) subsequent to receiving the first message, starting a second timer that expires after a second time period; and

(iii) upon the second timer expiring, entering an active state in which the second controller is active and is available to facilitate access to the storage devices.

2. The method of claim 1 , wherein a duration of the first time period is adjustable by the first controller.

3. The method of claim 1 , wherein the first message further notifies the second controller of a duration of the first time period.

4. The method of claim 1 , wherein a duration of the second time period is equal to or greater than a duration of the first time period.

5. The method of claim 1 , wherein after the second time period has elapsed following the reception of the first message, further transmitting, by the second controller, a second message to the shared memory element, the second message indicating that the second controller will start facilitating access to the storage devices.

6. The method of claim 1 , wherein the second controller enters the active state without confirming whether the first controller has failed.

7. The method of claim 6 , wherein the second controller does not confirm whether the first controller has failed based on a heartbeat signal of the first controller.

8. A storage system including a first controller, a second controller and a plurality of storage devices, each of the first and second controllers communicatively coupled to each one of the storage devices,

the first controller configured to:

(i) start a first timer that expires after a first time period;

(ii) subsequent to starting the first timer, transmit a first message from the first controller to a memory element shared by the first and second controllers; and

(iii) subsequent to transmitting the first message to the shared memory element and before the first timer expires, enter a failure state in which the first controller has failed and is unavailable to facilitate access to the storage devices,

wherein the transmission of the first message is in anticipation of the imminent failure of the first controller and is not reactive to a detection of the failure of the first controller; and

the second controller configured to:

(i) receive the first message from the shared memory element, the first message notifying the second controller of the imminent failure of the first controller;

(ii) subsequent to receiving the first message, start a second timer that expires after a second time period; and

(iii) upon the second timer expiring, enter an active state in which the second controller is active and is available to facilitate access to the storage devices.

9. The storage system of claim 8 , wherein a duration of the second time period is equal to or greater than a duration of the first time period.

10. The storage system of claim 8 , wherein the second controller enters the active state without confirming whether the first controller has failed.

11. The storage system of claim 10 , wherein the second controller does not confirm whether the first controller has failed based on a heartbeat signal of the first controller.

12. The storage system of claim 8 , wherein a duration of the first time period is adjustable by the first controller.

13. The storage system of claim 8 , wherein the first message further notifies the second controller of a duration of the first time period.

14. The storage system of claim 8 , wherein the second controller is further configured to, after the second time period has elapsed following the reception of the first message, transmit a second message to the shared memory element, the second message indicating that the second controller will start facilitating access to the storage devices.

15. A non-transitory machine-readable storage medium for a storage system having a first controller, a second controller and a plurality of storage devices, each of the first and second controllers communicatively coupled to each one of the storage devices, the non-transitory machine-readable storage medium comprising:

software instructions that, when executed by the first controller, cause the first controller to:

start a first timer that expires after a first time period;

subsequent to starting the first timer, transmit a first message from the first controller to a memory element shared by the first and second controllers; and

subsequent to transmitting the first message to the shared memory element and before the first timer expires, enter a failure state in which the first controller has failed and is unavailable to facilitate access to the storage devices,

wherein the transmission of the first message is in anticipation of the imminent failure of the first controller and is not reactive to a detection of the failure of the first controller; and

software instructions that, when executed by the second controller, cause the second controller to:

(i) receive the first message from the shared memory element, the first message notifying the second controller of the imminent failure of the first controller;

(ii) subsequent to receiving the first message, start a second timer that expires after a second time period; and

(iii) upon the second timer expiring, enter an active state in which the second controller is active and is available to facilitate access to the storage devices.

16. The non-transitory machine-readable storage medium of claim 15 , wherein a duration of the first time period is adjustable by the first controller.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the second controller enters the active state without confirming whether the first controller has failed.

18. The non-transitory machine-readable storage medium of claim 15 , wherein a duration of the second time period is equal to or greater than a duration of the first time period.

19. The non-transitory machine-readable storage medium of claim 15 , wherein the first message further notifies the second controller of a duration of the first time period.

20. The non-transitory machine-readable storage medium of claim 15 , further comprising software instructions that, when executed by the second controller, cause the second controller to, after the second time period has elapsed following the reception of the first message, transmit a second message to the shared memory element, the second message indicating that the second controller will start facilitating access to the storage devices.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2014
From: TRIPATHI, ASHUTOSH; GUPTA, VIKAS; FOZARD, BOB; BARSZCZAK, TOMASZ
To: NIMBLE STORAGE, INC.
Reel/Frame 033624/0580 →
Continuity (2)
Continuation 14015910 · Aug 30, 2013
Related Publication 20150067414A1 · Mar 5, 2015