IP Library Granted Patent US 10,203,890
Granted Patent B1
US 10,203,890 · App. 15/271,156 · Granted Feb 12, 2019

Multi-tier mechanism to achieve high availability in a multi-controller system

Inventors: Chirag Lathia (San Bruno, CA); Amar Vutukuru (San Jose, CA)
Assignee: Tintri Inc.
G06F3/0619G06F3/0665G06F3/0689
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,203,890
App. No.
15/271,156
Granted
Feb 12, 2019
Kind
B1
Abstract

Techniques to achieve high availability in a multi-controller system are disclosed. In various embodiments, an indication is received that a network ping-based heartbeat mechanism has failed. In response to said indication, an alternative heartbeat is provided at least in part by periodically updating a heartbeat data stored in an on-disk heartbeat data structure, in a portion of a disk that is available to both an active controller and a standby controller of the multi-controller system.

Claims (31)

1. A multi-controller system, comprising:

a processor configured to:

receive an indication that a network ping-based heartbeat mechanism has failed; and

in response to said indication, providing an alternative heartbeat at least in part by periodically updating a heartbeat data stored in an on-disk heartbeat data structure, in a portion of a disk that is available to both an active controller and a standby controller of the multi-controller system; and

a memory coupled to the processor and configured to provide the processor with instructions;

wherein the processor is further configured to detect that the on-disk heartbeat data structure-based alternative heartbeat has failed and in response switch over to a SCSI key refresh-based heartbeat mechanism.

2. The system of claim 1 , wherein the standby controller is configured to read the updated heartbeat data from the on-disk heartbeat data structure.

3. The system of claim 2 , wherein the standby controller is configured to read the heartbeat data from the on-disk heartbeat data structure; determine whether the heartbeat data read from the on-disk heartbeat data structure has been updated within a prescribed interval; and conclude based at least in part on the determination whether the active controller remains alive.

4. The system of claim 3 , wherein the standby controller is further configured to update a standby controller portion of the on-disk heartbeat data structure, based at least in part on a determination that the heartbeat data read by the standby controller from the on-disk heartbeat data structure has been updated within the prescribed interval.

5. The system of claim 4 , wherein the active controller is configured to read the standby controller portion of the on-disk heartbeat data structure; determine based at least in part on the data read from the whether the standby controller portion of the on-disk heartbeat data structure has been updated within a prescribed interval; and conclude based at least in part on the determination whether the standby controller is using the on-disk heartbeat data structure to determine whether the active controller is still alive.

6. The system of claim 1 , wherein the on-disk heartbeat data structure comprises an identical data structure stored on each of a plurality of storage disks comprising the multi-controller system.

7. The system of claim 1 , wherein the standby controller is configured to check to determine whether a key refresh has been performed by the active controller, and to determine based at least in part on a detected key refresh that the active controller is still alive.

8. The system of claim 7 , wherein the standby controller concludes upon detecting a first refreshed key, without checking one or more other keys, that the active controller is still alive.

9. The system of claim 1 , wherein the active controller is configured to refresh the respective SCSI key of a subset of disks comprising a storage array with which the multi-controller system is associated.

10. A method to achieve high availability in a multi-controller system, comprising:

receiving an indication that a network ping-based heartbeat mechanism has failed;

in response to said indication, providing an alternative heartbeat at least in part by periodically updating a heartbeat data stored in an on-disk heartbeat data structure, in a portion of a disk that is available to both an active controller and a standby controller of the multi-controller system; and

in response to detecting that the on-disk heartbeat data structure-based alternative heartbeat has failed, switching over to a SCSI key refresh-based heartbeat mechanism.

11. The method of claim 10 , wherein the standby controller is configured to read the updated heartbeat data from the on-disk heartbeat data structure.

12. The method of claim 11 , wherein the standby controller is configured to read the heartbeat data from the on-disk heartbeat data structure; determine whether the heartbeat data read from the on-disk heartbeat data structure has been updated within a prescribed interval; and conclude based at least in part on the determination whether the active controller remains alive.

13. The method of claim 12 , wherein the standby controller is further configured to update a standby controller portion of the on-disk heartbeat data structure, based at least in part on a determination that the heartbeat data read by the standby controller from the on-disk heartbeat data structure has been updated within the prescribed interval.

14. The method of claim 13 , wherein the active controller is configured to read the standby controller portion of the on-disk heartbeat data structure; determine based at least in part on the data read from the whether the standby controller portion of the on-disk heartbeat data structure has been updated within a prescribed interval; and conclude based at least in part on the determination whether the standby controller is using the on-disk heartbeat data structure to determine whether the active controller is still alive.

15. The method of claim 10 , wherein the on-disk heartbeat data structure comprises an identical data structure stored on each of a plurality of storage disks comprising the multi-controller system.

16. The method of claim 10 , wherein the standby controller is configured to check to determine whether a key refresh has been performed by the active controller, and to determine based at least in part on a detected key refresh that the active controller is still alive.

17. The method of claim 16 , wherein the standby controller concludes upon detecting a first refreshed key, without checking one or more other keys, that the active controller is still alive.

18. A computer program product to achieve high availability in a multi-controller system, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving an indication that a network ping-based heartbeat mechanism has failed;

in response to said indication, providing an alternative heartbeat at least in part by periodically updating a heartbeat data stored in an on-disk heartbeat data structure, in a portion of a disk that is available to both an active controller and a standby controller of the multi-controller system; and

in response to detecting that the on-disk heartbeat data structure-based alternative heartbeat has failed, switching over to a SCSI key refresh-based heartbeat mechanism.

19. The computer program product of claim 18 , wherein the standby controller is configured to read the updated heartbeat data from the on-disk heartbeat data structure.

20. The computer program product of claim 19 , wherein the standby controller is configured to read the heartbeat data from the on-disk heartbeat data structure; determine whether the heartbeat data read from the on-disk heartbeat data structure has been updated within a prescribed interval; and conclude based at least in part on the determination whether the active controller remains alive.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
SECOND AMENDMENT TO SECURITY AGREEMENT Recorded May 1, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 042380/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2016
From: LATHIA, CHIRAG; VUTUKURU, AMAR
To: TINTRI INC.
Reel/Frame 040761/0489 →
Cited By (1)
US 12,461,802