IP Library Granted Patent US 11,010,259
Granted Patent B1
US 11,010,259 · App. 15/907,489 · Granted May 18, 2021

Container-based upgrades for appliances

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,010,259
App. No.
15/907,489
Filed
Feb 28, 2018
Granted
May 18, 2021
Kind
B1
Examiner
VU, TUAN A
Art Unit
2193
USPC
717/168
Abstract

Disclosed herein are methods, systems, and processes to perform container-based upgrades to an appliance operating system. An upgraded container is generated by producing a container image. Producing the container image includes generating a checkpoint of a portion of a file system associated with an appliance that includes a portion of an operating system. The container includes the container image and is designated for an upgrade operation that upgrades the portion of the operating system.

Claims (134)

1. A computer-implemented method, comprising:

generating a checkpoint of at least a portion of a file system of an appliance, wherein

the portion of the file system is checkpointed to include an existing running environment of the appliance,

the portion of the file system comprises at least a portion of an operating system of the appliance;

producing a container image from the checkpoint, wherein

the producing comprises

generating an archive file from the checkpoint, wherein

an internal structure of the archive file matches the portion of the file system in the existing running environment of the appliance, and

the archive file is configured to be loaded as a file system of a container;

generating a container at the appliance using the container image, wherein

the container includes a file system based on the archive file, and

at least a portion of the file system of the container matches the portion of the file system of the appliance;

executing an upgrade package, wherein

the upgrade package is executable to perform an upgrade operation that upgrades the portion of the file system of the container that matches the portion of the file system of the appliance;

determining whether the upgrade operation was successful; and

in response to a determination that the upgrade operation was successful,

saving the upgraded portion of the file system of the container to a new checkpoint, and

restoring the appliance to a new running environment based, at least in part, on the new checkpoint.

2. The computer-implemented method of claim 1 , wherein

the portion of the file system comprises at least a root file system and a boot directory.

3. The computer-implemented method of claim 2 , further comprising:

merging the root file system and the boot directory into the container image; and

mounting one or more host directories not captured by the checkpoint into the container.

4. The computer-implemented method of claim 1 , wherein

the upgrade operation comprises an incremental upgrade operation of the portion of the file system of the container.

5. The computer-implemented method of claim 4 , further comprising:

determining that the upgrade operation comprises the incremental upgrade operation; and

performing the incremental upgrade operation, comprising

deleting the container if the incremental upgrade operation is unsuccessful, and

saving the upgraded portion of the file system of the container executing in the container to a new checkpoint if the incremental upgrade operation is successful.

6. The computer-implemented method of claim 5 , further comprising:

determining that the upgrade operation comprises a migration upgrade operation;

accessing an upgrade container image from an upgrade package as the container image;

creating an upgrade container based on the upgrade container image;

backing up user configuration information associated with the appliance; and

re-configuring the user configuration information in the upgrade container.

7. The computer-implemented method of claim 6 , further comprising:

performing the migration upgrade operation, comprising

deleting the upgrade container and the upgrade container image if the migration upgrade operation is unsuccessful, and

saving a container file system stored in the upgrade container to a new checkpoint if the migration upgrade operation is successful.

8. The computer-implemented method of claim 7 , wherein

the upgrade container is a sandbox upgrade container,

the container file system is based on the container image,

the container file system is a copy of the file system associated with the appliance,

the checkpoint is configured to be loaded by a container daemon as a container root file system, and

performing the migration upgrade operation comprises replacing the operating system associated with the appliance.

9. A non-transitory computer readable storage medium comprising program instructions executable to perform a method comprising:

generating a checkpoint of at least a portion of a file system of an appliance, wherein

the portion of the file system is checkpointed to include an existing running environment of the appliance,

the portion of the file system comprises at least a portion of an operating system of the appliance;

producing a container image from the checkpoint, wherein

the producing comprises

generating an archive file from the checkpoint, wherein

an internal structure of the archive file matches the portion of the file system in the existing running environment of the appliance, and

the archive file is configured to be loaded as a file system of a container;

generating a container at the appliance using the container image, wherein

the container includes a file system based on the archive file, and

at least a portion of the file system of the container matches the portion of the file system of the appliance;

executing an upgrade package, wherein

an upgrade package is executable to perform an upgrade operation that upgrades a portion of the file system of the container that matches the portion of the file system of the appliance;

determining whether the upgrade operation was successful; and

in response to a determination that the upgrade operation was successful,

saving the upgraded portion of the file system of the container to a new checkpoint, and

restoring the appliance to a new running environment based, at least in part, on the new checkpoint.

10. The non-transitory computer readable storage medium of claim 9 , wherein

the portion of the file system comprises at least a root file system and a boot directory.

11. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises:

merging the root file system and the boot directory into the container image; and

mounting one or more host directories not captured by the checkpoint into the container.

12. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises:

determining that the upgrade operation comprises an incremental upgrade operation; and

performing the incremental upgrade operation, comprising

deleting the container if the incremental upgrade operation is unsuccessful, and

saving the upgraded portion of the file system of the container executing in the container to a new checkpoint if the incremental upgrade operation is successful.

13. The non-transitory computer readable storage medium of claim 12 , wherein the method further comprises:

determining that the upgrade operation comprises a migration upgrade operation;

accessing an upgrade container image from an upgrade package as the container image;

creating an upgrade container based on the upgrade container image;

backing up user configuration information associated with the appliance; and

re-configuring the user configuration information in the container.

14. The non-transitory computer readable storage medium of claim 13 , wherein the method further comprises:

performing the migration upgrade operation, comprising

deleting the upgrade container and the upgrade container image if the migration upgrade operation is unsuccessful, and

saving a container file system stored in the upgrade container to a new checkpoint if the migration upgrade operation is successful.

15. The non-transitory computer readable storage medium of claim 14 , wherein

the upgrade container is a sandbox upgrade container,

the container file system is based on the container image,

the container file system is a copy of the file system associated with the appliance,

the checkpoint is configured to be loaded by a container daemon as a container root file system, and

performing the migration upgrade operation comprises

replacing the operating system associated with the appliance.

16. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to perform a method comprising

generating a checkpoint of at least a portion of a file system of an appliance, wherein

the portion of the file system is checkpointed to include an existing running environment of the appliance,

the portion of the file system comprises at least a portion of an operating system of the appliance,

producing a container image from the checkpoint, wherein

the producing comprises

generating an archive file from the checkpoint, wherein

an internal structure of the archive file matches the portion of the file system in the existing running environment of the appliance, and

the archive file is configured to be loaded as a file system of the container;

generating a container at the appliance using the container image, wherein

the container includes a file system based on the archive file, and

at least a portion of the file system of the container matches the portion of the file system of the appliance;

executing an upgrade package, wherein

the upgrade package is executable to perform an upgrade operation that upgrades the portion of the file system of the container that matches the portion of the file system of the appliance;

determining whether the upgrade operation was successful; and

in response to a determination that the upgrade operation was successful,

saving the upgraded portion of the file system of the container to a new checkpoint, and

restoring the appliance to a new running environment based, at least in part, on the new checkpoint.

17. The system of claim 16 , wherein the portion of the file system comprises at least a root file system and a boot directory, the method further comprising:

merging the root file system and the boot directory into the container image; and

mounting one or more host directories not captured by the checkpoint into the container.

18. The system of claim 17 , wherein the method further comprises:

determining that the upgrade operation comprises an incremental upgrade operation; and

performing the incremental upgrade operation, comprising

deleting the container if the incremental upgrade operation is unsuccessful, and

saving the upgraded portion of the file system of the container executing in the container to a new checkpoint if the incremental upgrade operation is successful.

19. The system of claim 17 , wherein the method further comprises:

determining that the upgrade operation comprises a migration upgrade operation;

accessing an upgrade container image from an upgrade package as the container image;

creating an upgrade container based on the upgrade container image;

backing up user configuration information associated with the appliance;

re-configuring the user configuration information in the upgrade container;

deleting the upgrade container and the upgrade container image if the migration upgrade operation is unsuccessful; and

saving a container file system stored in the upgrade container to a new checkpoint if the migration upgrade operation is successful.

20. The system of claim 19 , wherein

the upgrade container is a sandbox upgrade container,

the container file system is based on the container image,

the container file system is a copy of the file system associated with the appliance,

the checkpoint is configured to be loaded by a container daemon as a container root file system, and

performing the migration upgrade operation comprises

replacing the operating system associated with the appliance.