IP Library Granted Patent US 10,447,614
Granted Patent B2
US 10,447,614 · App. 15/631,747 · Granted Oct 15, 2019

Providing high availability for a thin-provisioned container cluster

Inventors: Huamin Chen (Westborough, MA); Jay Vyas (Concord, MA)
Assignee: Red Hat, Inc.
H04L47/76G06F9/4843G06F9/5083H04L43/0805H04L47/823G06F9/50G06Q20/145
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,447,614
App. No.
15/631,747
Granted
Oct 15, 2019
Kind
B2
Abstract

A system and method for providing high availability for a thin-provisioned container cluster includes a memory, one or more processors in communication with the memory, a scheduler executing on the one or more processors, and a spot instance market monitor. The spot instance market monitor receives market information about spot instances in a cloud system at a first time. The spot instances are available to a client at the first time. The spot instance market monitor determines, based on the market information, a respective reliability value for each of the spot instances at the first time. Then, the scheduler selects one spot instance among the spot instances based on the reliability value of the spot instance. In response to the selection of the spot instance, the scheduler schedules a container on the spot instance and executes the container on the spot instance.

Claims (59)

1. A system for executing containers, the system comprising:

a memory;

one or more processors in communication with the memory;

a scheduler executing on the one or more processors; and

a spot instance market monitor,

wherein the spot instance market monitor:

receives market information about a first plurality of spot instances in a cloud system at a first time, wherein the first plurality of spot instances are available to a client at the first time; and

determines, based on the market information, a respective reliability value of each of the first plurality of spot instances at the first time, wherein each respective reliability value corresponds to a respective likelihood of a respective spot instance being terminated by a second time after the first time;

wherein the scheduler:

selects a first spot instance in the first plurality of spot instances based on a first reliability value of the first spot instance;

responsive to the selection of the first spot instance, schedules a container on the first spot instance; and

executes the container on the first spot instance.

2. The system of claim 1 , wherein the first spot instance has the greatest reliability value among the first plurality of spot instances at the first time.

3. The system of claim 1 , wherein the spot instance market monitor determines the respective reliability value of each of the first plurality of spot instances by using an age of each of the first plurality of spot instances.

4. The system of claim 1 , wherein the spot instance market monitor determines the respective reliability value of each of the first plurality of spot instances periodically.

5. The system of claim 1 , wherein the spot instance market monitor determines a respective reliability value of each of a second plurality of spot instances in the cloud system at a third time after the first time, wherein the second plurality of spot instances are available to the client at the third time.

6. The system of claim 5 , wherein the scheduler:

selects a second spot instance in the second plurality of spot instances based on a second reliability value of the second spot instance; and

migrates the container from the first spot instance to the second spot instance.

7. The system of claim 6 , wherein the second spot instance has the greatest reliability value among the second plurality of spot instances at the third time.

8. The system of claim 6 , wherein the scheduler migrates the container from the first spot instance to the second spot instance by:

starting execution of the container on the second spot instance while the container is executing on the first spot instance; and

terminating the first spot instance once the second spot instance is fully executing on the second spot instance.

9. The system of claim 5 , wherein the scheduler sends a request to the container to take a snapshot of the container.

10. The system of claim 9 , wherein the container takes the snapshot more frequently as the first reliability value of the first spot instance decreases.

11. The system of claim 9 , wherein the scheduler:

detects that the first spot instance is terminated;

responsive to detecting that the first spot instance is terminated, selects a second spot instance in the second plurality of spot instances based on a second reliability value of the second spot instance; and

migrates the container to the second spot instance by:

pulling a latest version of the snapshot of the container; and

starting execution of the container on the second spot instance using the latest version of the snapshot of the container.

12. A method for executing containers, the method comprising:

receiving, by a spot instance market monitor, market information about a first plurality of spot instances in a cloud system at a first time, wherein the first plurality of spot instances are available to a client at the first time;

determining, by the spot instance market monitor, based on the market information, a respective reliability value of each of the first plurality of spot instances at the first time, wherein each respective reliability value corresponds to a likelihood of a respective spot instance being terminated by a second time after the first time;

selecting, by a scheduler executing on one or more processors in communication with a memory, a first spot instance in the first plurality of spot instances based on a first reliability value of the first spot instance;

responsive to the selection of the first spot instance, scheduling, by the scheduler, a container on the first spot instance; and

executing, by the scheduler, the container on the first spot instance.

13. The method of claim 12 , wherein the first spot instance has the greatest reliability value among the first plurality of spot instances at the first time.

14. The method of claim 12 , wherein the spot instance market monitor determines the respective reliability value of each of the first plurality of spot instances by using an age of each of the first plurality of spot instances.

15. The method of claim 12 , further comprising determining, by the spot instance market monitor, a respective reliability value of each of a second plurality of spot instances in the cloud system at a third time after the first time, wherein the second plurality of spot instances are available to the client at the third time.

16. The method of claim 15 , further comprising:

selecting, by the scheduler, a second spot instance in the second plurality of spot instances based on a second reliability value of the second spot instance;

migrating, by the scheduler, the container from the first spot instance to the second spot instance.

17. The method of claim 16 , wherein the scheduler migrates the container from the first spot instance to the second spot instance by:

starting execution of the container on the second spot instance while the container is executing on the first spot instance; and

terminating the first spot instance once the second spot instance is fully executing on the second spot instance.

18. The method of claim 15 , further comprising sending, by the scheduler, a request to the container to take a snapshot of the container.

19. The method of claim 18 , further comprising:

detecting, by the scheduler, that the first spot instance is terminated;

responsive to detecting that the first spot instance is terminated, selecting, by the scheduler, a second spot instance in the second plurality of spot instances based on a second reliability value of the second spot instance; and

migrating, by the scheduler, the container to the second spot instance by:

pulling a latest version of the snapshot of the container; and

starting execution of the container on the second spot instance using the latest version of the snapshot of the container.

20. A non-transitory machine readable medium storing instructions, which when executed by one or more processors, cause the one or more processors to:

receive, by a spot instance market monitor, market information about a first plurality of spot instances in a cloud system at a first time, wherein the first plurality of spot instances are available to a client at the first time;

determine, by the spot instance market monitor, based on the market information, a respective reliability value of each of the first plurality of spot instances at the first time, wherein each respective reliability value corresponds to a likelihood of a respective spot instance being terminated by a second time after the first time;

select, by a scheduler executing on the one or more processors, a first spot instance in the first plurality of spot instances based on a first reliability value of the first spot instance;

responsive to the selection of the first spot instance, schedule, by the scheduler, a container on the first spot instance; and

execute, by the scheduler, the container on the first spot instance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2017
From: CHEN, HUAMIN; VYAS, JAY
To: RED HAT, INC.
Reel/Frame 042829/0371 →
Continuity (1)
Related Publication 20180375787A1 · Dec 27, 2018