IP Library Granted Patent US 10,534,677
Granted Patent B2
US 10,534,677 · App. 15/909,538 · Granted Jan 14, 2020

Providing high availability for applications executing on a storage system

Inventors: Jonathan Curley (Menlo Park, CA); Yuchen Jin (San Jose, CA); Christopher Lumb (San Francisco, CA); Alexei Potashnik (Palo Alto, CA); Dilip Kumar Uppugandla (Milpitas, CA); Christian Zankel (Sunnyvale, CA); Xiaojing Zheng (San Jose, CA)
Assignee: Pure Storage, Inc.
G06F11/2092G06F3/0604G06F3/0647G06F3/067G06F2201/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,534,677
App. No.
15/909,538
Granted
Jan 14, 2020
Kind
B2
Abstract

Migrating applications executing on a storage system, including: detecting, by the storage system, that an application executing on a first platform within the storage system should be migrated to a second platform within the storage system; rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first platform; and initiating, by the storage system, execution of the application on the second platform.

Claims (36)

1. A method of providing high availability for applications executing on a storage system, the method comprising:

detecting that an application executing on redundant resources within a first storage controller should be migrated to redundant resources within a second storage controller, including detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller;

in response to detecting the failover, migrating the application to redundant resources within the second storage controller including:

rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller; and

initiating, by the storage system, execution of the application on the second redundant resources within the second storage controller.

2. The method of claim 1 wherein rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller further comprises blocking the application executing on the first storage controller from accessing a logical unit number (‘LUN’).

3. The method of claim 1 wherein detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller further comprises detecting a failover from the second storage system controller to the first storage system controller.

4. The method of claim 1 wherein:

detecting that the application executing on redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller further comprises receiving, from an application monitor that is external to the storage system, an indication that the application executing on the redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller; and

initiating, by the storage system, execution of the application on the redundant resources within the second storage controller further comprises notifying, by the storage system, the application monitor that the application is executing on the redundant resources within the second storage controller.

5. The method of claim 1 wherein configuration information for each storage controller is stored on one or more of the storage devices in the storage system.

6. The method of claim 1 wherein configuration information for the application is stored on one or more of the storage devices in the storage system.

7. An apparatus for providing high availability for applications executing on a storage system, the apparatus including a computer processor and a computer memory, the computer memory including computer program instructions that, when executed, cause the apparatus to carry out the steps of:

detecting that an application executing on redundant resources within a first storage controller should be migrated to redundant resources within a second storage controller, including detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller;

in response to detecting the failover, migrating the application to redundant resources within the second storage controller including:

rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller; and

initiating, by the storage system, execution of the application on the redundant resources within the second storage controller.

8. The apparatus of claim 7 wherein rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller further comprises blocking the application executing on the first storage controller from accessing a logical unit number (‘LUN’).

9. The apparatus of claim 7 wherein detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller further comprises detecting a failover from the second storage system controller to the first storage system controller.

10. The apparatus of claim 7 wherein:

detecting that the application executing on redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller further comprises receiving, from an application monitor that is external to the storage system, an indication that the application executing on the redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller; and

initiating, by the storage system, execution of the application on the redundant resources within the second storage controller further comprises notifying, by the storage system, the application monitor that the application is executing on the redundant resources within the second storage controller.

11. The apparatus of claim 7 wherein configuration information for each storage controller is stored on one or more of the storage devices in the storage system.

12. The apparatus of claim 7 wherein configuration information for the application is stored on one or more of the storage devices in the storage system.

13. A storage system configured for providing high availability for applications, the storage system including a plurality of storage devices, the storage system also including a computer processor and a computer memory, the computer memory including computer program instructions that, when executed, cause the storage system to carry out the steps of:

detecting that an application executing on redundant resources within a first storage controller should be migrated to redundant resources within a second storage controller, including detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller;

in response to detecting the failover, migrating the application to redundant resources within the second storage controller including:

rejecting, by the storage system, pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller; and

initiating, by the storage system, execution of the application on the redundant resources within the second storage controller.

14. The storage system of claim 13 wherein rejecting, by the storage system, all pending input/output (‘I/O’) requests received by the storage system from the application executing on the first storage controller further comprises blocking the application executing on the first storage controller from accessing a logical unit number (‘LUN’).

15. The storage system of claim 13 wherein detecting a failover from active resources within the second storage controller to redundant resources within the first storage controller further comprises detecting a failover from the second storage system controller to the first storage system controller.

16. The storage system of claim 13 wherein:

detecting that the application executing on redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller further comprises receiving, from an application monitor that is external to the storage system, an indication that the application executing on the redundant resources within the first storage controller should be migrated to redundant resources within the second storage controller; and

initiating, by the storage system, execution of the application on the redundant resources within the second storage controller further comprises notifying, by the storage system, the application monitor that the application is executing on the redundant resources within the second storage controller.

17. The storage system of claim 13 wherein configuration information for each storage controller is stored on one or more of the storage devices in the storage system.

18. The storage system of claim 13 wherein configuration information for the application is stored on one or more of the storage devices in the storage system.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR XIAOJING ZHENG'S NAME PREVIOUSLY RECORDED ON REEL 045080 FRAME 0762. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 27, 2018
From: CURLEY, JONATHAN; JIN, YUCHEN; LUMB, CHRISTOPHER; POTASHNIK, ALEXEI; UPPUGANDLA, DILIP KUMAR; ZANKEL, CHRISTIAN; ZHENG, XIAOJING
To: PURE STORAGE, INC.
Reel/Frame 046450/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2018
From: CURLEY, JONATHAN; JIN, YUCHEN; LUMB, CHRISTOPHER; POTASHNIK, ALEXEI; UPPUGANDLA, DILIP KUMAR; ZANKEL, CHRISTIAN; ZENG, XIAOJING
To: PURE STORAGE, INC.
Reel/Frame 045080/0762 →
Continuity (3)
Continuation 15499462 · Apr 27, 2017
Provisional Application 62483797 · Apr 10, 2017
Related Publication 20180293017A1 · Oct 11, 2018