IP Library Granted Patent US 11,055,012
Granted Patent B2
US 11,055,012 · App. 16/853,197 · Granted Jul 6, 2021

Systems and methods for performing live migrations of software containers

Inventors: Gaurav Makin (Shoreview, MN); Kody Kantor (Saint Paul, MN); Hao Wen (Falcon Heights, MN); Zhichao Cao (Falcon Heights, MN); Vallari Mehta (Mountain View, CA)
Assignee: Veritas Technologies LLC
G06F3/0647G06F3/0604G06F3/067G06F3/0644G06F9/4856H04L67/142H04L67/34G06F11/1438G06F11/1446G06F11/3688
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 11,055,012
App. No.
16/853,197
Granted
Jul 6, 2021
Kind
B2
Abstract

The disclosed computer-implemented method for performing live migrations of software containers may include (i) identifying a request to migrate a software container from a source computing system to a target computing system while a process executes within the software container, (ii) creating a checkpoint of the process in execution (iii) transferring the checkpoint to the target computing system, (iv) updating the checkpoint recurrently by recurrently creating an incremental checkpoint of the process and merging the incremental checkpoint into the checkpoint, (v) predicting, before updating the checkpoint with an iteration of the incremental checkpoint and based on a size of the iteration of the incremental checkpoint, that finalizing a migration of the software container to the target computing system would meet a predetermined time objective, and (vi) finalizing the migration of the software container to the target computing system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (53)

1. A computer-implemented method, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

migrating a software container from a source computing system to a target computing system while a process executes within the software container, the migrating comprising:

creating a checkpoint comprising a representation of a state of the process;

transferring the checkpoint to the target computing system;

subsequent to creating the checkpoint, creating an incremental checkpoint comprising a representation of at least one change in the state of the process;

determining, based on the incremental checkpoint, that migrating the software container from the source computing system to the target computing system will be completed within a specified time objective; and

based on the determining:

transferring the incremental checkpoint to the target computing system;

merging the incremental checkpoint with the checkpoint; and

transferring the software container from the source computing system to the target computing system.

2. The computer-implemented method of claim 1 , wherein the migrating further comprises maintaining, by the process, a stateful session with a client system that begins with the client system communicating with the process at the source computing system and concludes with the client system communicating with the process at the target computing system.

3. The computer-implemented method of claim 1 , further comprising enabling the migrating of the software container from the source computing system to the target computing system to be completed within the specified time objective by reducing access to a computing resource for the software container.

4. The computer-implemented method of claim 3 , wherein throttling the software container at the source computing system reduces the access to the computing resource for the software container.

5. The computer-implemented method of claim 4 , wherein reducing the access to the computer resource for the software container comprises at least one of decreasing processor availability to one or more processes within the software container, decreasing network availability to one or more processes within the software container, decreasing storage input/output bandwidth to one or more processes within the software container, and reducing access to one or more computing resources for a control group associated with one or more processes executing within the software container.

6. The computer-implemented method of claim 1 , wherein the software container comprises a sandboxed environment wherein the process executing within the software container performs system calls to an operating system that hosts the software container.

7. The computer-implemented method of claim 1 , wherein the incremental checkpoint comprises a representation of a difference between a current state of the process and a most recent previous version of the checkpoint.

8. The computer-implemented method of claim 1 , wherein the migrating further comprises finalizing the migration by:

restoring the checkpoint into a new software container at the target computing system; and

redirecting a communication path to point to the new software container at the target computing system instead of pointing to the software container at the source computing system.

9. The computer-implemented method of claim 8 , wherein redirecting the communication path comprises reassigning, within a software defined network, an internet protocol address previously allocated to the software container at the source computing system to the new software container at the target computing system.

10. The computer-implemented method of claim 1 , wherein the checkpoint comprises a stored representation of at least one of:

a state of application memory of the process;

a process handle of the process;

a file handle held by the process; and

a socket held by the process.

11. A system for performing live migrations of software containers, the system comprising:

a creation module, stored in memory, that creates a checkpoint of a process in execution within a software container of a source computing system, the checkpoint comprising a representation of a state of the process in execution;

a transferring module, stored in memory, that transfers the checkpoint from the source computing system to a target computing system;

an updating module, stored in memory, that updates the checkpoint by creating an incremental checkpoint of the process in execution, the incremental checkpoint comprising a representation of at least one change in the state of the process;

a prediction module, stored in memory, that predicts that a migration of the software container to the target computing system would be completed within a specified time objective based on the incremental checkpoint of the process in execution; and

a finalizing module, stored in memory, that migrates the software container to the target computing system by:

transferring the incremental checkpoint to the target computing system;

merging the incremental checkpoint with the checkpoint; and

transferring the software container from the source computing system to the target computing system; and

at least one physical processor configured to execute the creation module, the transferring module, the updating module, the prediction module, and the finalizing module.

12. The system of claim 11 , wherein the finalizing module further migrates the software container to the target computing system by having the process in execution maintain a stateful session with a client system that begins with the client system communicating with the process at the source computing system and concludes with the client system communicating with the process at the target computing system.

13. The system of claim 11 , wherein the updating module enables the migrating of the software container from the source computing system to the target computing system to be completed within the specified time objective by reducing access to a computing resource for the software container.

14. The system of claim 13 , wherein the updating module throttles the software container at the source computing system to reduce the access to the computing resource for the software container.

15. The system of claim 14 , wherein reducing the access to the computer resource for the software container comprises at least one of decreasing processor availability to one or more processes within the software container, decreasing network availability to one or more processes within the software container, decreasing storage input/output bandwidth to one or more processes within the software container, and reducing access to one or more computing resources for a control group associated with one or more processes executing within the software container.

16. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

migrate a software container from a source computing system to a target computing system while a process executes within the software container, the migrating comprising:

creating a checkpoint comprising a representation of a state of the process;

transferring the checkpoint to the target computing system;

subsequent to creating the checkpoint, creating an incremental checkpoint comprising a representation of at least one change in the state of the process;

determining, based on the incremental checkpoint, that migrating the software container from the source computing system to the target computing system will be completed within a specified time objective; and

based on the determining:

transferring the incremental checkpoint to the target computing system;

merging the incremental checkpoint with the checkpoint; and

transferring the software container from the source computing system to the target computing system.

17. The non-transitory computer-readable medium of claim 16 , wherein the migrating further comprises maintaining, by the process, a stateful session with a client system that begins with the client system communicating with the process at the source computing system and concludes with the client system communicating with the process at the target computing system.

18. The non-transitory computer-readable medium of claim 16 , wherein the computer-readable instructions further cause the computing device to enable the migrating of the software container from the source computing system to the target computing system to be completed within the specified time objective by reducing access to a computing resource for the software container.

19. The non-transitory computer-readable medium of claim 18 , wherein throttling the software container at the source computing system reduces the access to the computing resource for the software container.

20. The non-transitory computer-readable medium of claim 19 , wherein reducing the access to the computer resource for the software container comprises at least one of decreasing processor availability to one or more processes within the software container, decreasing network availability to one or more processes within the software container, decreasing storage input/output bandwidth to one or more processes within the software container, and reducing access to one or more computing resources for a control group associated with one or more processes executing within the software container.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0951 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELESAE OF SECURITY INTEREST IN PATENTS AT R/F 053640/0780 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0492 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053640/0780 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 053373/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2020
From: MAKIN, GAURAV; KANTOR, KODY; WEN, HAO; CAO, ZHICHAO; MEHTA, VALLARI
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 052455/0968 →
Continuity (3)
Continuation 16197344 · Nov 20, 2018
Continuation 15261596 · Sep 9, 2016
Related Publication 20200249864A1 · Aug 6, 2020
Cited By (1)
US 12,307,277