IP Library Granted Patent US 10,175,886
Granted Patent B1
US 10,175,886 · App. 15/476,343 · Granted Jan 8, 2019

Systems and methods for handling missing storage image layers while provisioning containers in computer clusters

Inventors: Kody Kantor (Saint Paul, MN); Gaurav Makin (Shoreview, MN); John Kjell (Forest Lake, MN)
Assignee: Veritas Technologies LLC
G06F3/0604G06F3/067G06F3/0665G06F3/065G06F3/0647G06F17/30079
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,175,886
App. No.
15/476,343
Granted
Jan 8, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for provisioning containers in computer clusters may include (1) identifying a request to provision a container on a host system within a cluster, (2) determining that a missing storage layer image is not locally stored at the host system and initiating a transfer of the missing storage layer image to the host system, (3) creating the container and executing an application within the container on the host system before the missing storage layer image has been transferred to the host system, (4) remotely resolving a read request by reading from an instance of the missing storage layer image that is stored at a separate host system within the cluster, and (5) resolving a subsequent read request by reading from an instance of the missing storage layer image that is locally stored at the host system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (52)

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

identifying a request to provision a container on a host system within a cluster comprising a plurality of host systems, the container to comprise a plurality of storage layer images, each successive storage layer image within the plurality of storage layer images describing a set of differences applied to a storage view from within the container by the storage layer image;

determining, in response to the request, that a missing storage layer image within the plurality of storage layer images is not locally stored at the host system and initiating a transfer of the missing storage layer image to the host system;

creating the container on the host system and executing an application within the container on the host system before the missing storage layer image has been transferred to the host system;

receiving, from within the container, a read request that implicates the missing storage layer image and remotely resolving the read request by reading from an instance of the missing storage layer image that is stored at a separate host system within the cluster of host systems; and

resolving a subsequent read request that implicates the missing storage layer image after the missing storage layer image has been transferred to the host system by reading from an instance of the missing storage layer image that is locally stored at the host system.

2. The computer-implemented method of claim 1 , wherein the missing storage layer image is stored at each host system within a subset of the plurality of host systems.

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

determining that a present storage layer image within the plurality of storage layer images is locally stored at the host system; and

resolving a read request that implicates the present storage layer image by reading from an instance of the present storage layer image locally stored at the host system.

4. The computer-implemented method of claim 1 , wherein the cluster comprises:

a compute tier that comprises the plurality of host systems and that provides primary storage for applications executing on the plurality of host systems; and

a data tier that comprises a plurality of data nodes and that provides secondary storage for data generated by the applications executing on the plurality of host systems.

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

determining, in response to the request, that an additional missing storage layer image within the plurality of storage layer images is not available at any host system within the plurality of host systems; and

receiving, from within the container, an additional read request that implicates the additional missing storage layer image and remotely resolving the additional read request by reading from an instance of the additional missing storage layer image that is stored at a data node within the plurality of data nodes.

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

determining, in response to the request, that an additional missing storage layer image within the plurality of storage layer images is not locally stored at the host system and initiating a transfer of the additional missing storage layer image to the host system; and

receiving, from within the container, an additional read request that implicates the additional missing storage layer image and remotely resolving the additional read request by reading from an instance of the additional missing storage layer image that is stored at a third host system within the cluster of host systems.

7. The computer-implemented method of claim 6 , further comprising selecting the third host system instead of the separate host system for resolving the additional read request to balance a load imposed on the separate host system and a load imposed on the third host system.

8. The computer-implemented method of claim 1 , further comprising receiving, at the host system, a manifest of storage layer images stored locally for each host system within the plurality of host systems.

9. The computer-implemented method of claim 1 , wherein the cluster implements storage reflection to store multiple instances of a volume across different host systems within the plurality of host systems when the volume is stored within the cluster.

10. The computer-implemented method of claim 9 , wherein the cluster determines how many instances of the volume to store within the cluster based at least in part on a type of the volume.

11. The computer-implemented method of claim 10 , wherein the cluster stores volumes comprising storage layer images at a greater rate than at least one additional type of volume that is also subject to storage reflection.

12. A system for provisioning containers in computer clusters, the system comprising:

an identification module, stored in memory, that identifies a request to provision a container on a host system within a cluster comprising a plurality of host systems, the container to comprise a plurality of storage layer images, each successive storage layer image within the plurality of storage layer images describing a set of differences applied to a storage view from within the container by the storage layer image;

a determination module, stored in memory, that determines, in response to the request, that a missing storage layer image within the plurality of storage layer images is not locally stored at the host system and initiates a transfer of the missing storage layer image to the host system;

a creation module, stored in memory, that creates the container on the host system and execute an application within the container on the host system before the missing storage layer image has been transferred to the host system;

a receiving module, stored in memory, that receives, from within the container, a read request that implicates the missing storage layer image and remotely resolves the read request by reading from an instance of the missing storage layer image that is stored at a separate host system within the cluster of host systems;

a resolving module, stored in memory, that resolves a subsequent read request that implicates the missing storage layer image after the missing storage layer image has been transferred to the host system by reading from an instance of the missing storage layer image that is locally stored at the host system; and

at least one physical processor configured to execute the identification module, the determination module, the creation module, the receiving module, and the resolving module.

13. The system of claim 12 , wherein the missing storage layer image is stored at each host system within a subset of the plurality of host systems.

14. The system of claim 12 , wherein:

the determination module further determines that a present storage layer image within the plurality of storage layer images is locally stored at the host system; and

the resolving module further resolves a read request that implicates the present storage layer image by reading from an instance of the present storage layer image locally stored at the host system.

15. The system of claim 12 , wherein the cluster comprises:

a compute tier that comprises the plurality of host systems and that provides primary storage for applications executing on the plurality of host systems; and

a data tier that comprises a plurality of data nodes and that provides secondary storage for data generated by the applications executing on the plurality of host systems.

16. The system of claim 15 , wherein:

the determination module further determines, in response to the request, that an additional missing storage layer image within the plurality of storage layer images is not available at any host system within the plurality of host systems; and

the receiving module further receives, from within the container, an additional read request that implicates the additional missing storage layer image and remotely resolves the additional read request by reading from an instance of the additional missing storage layer image that is stored at a data node within the plurality of data nodes.

17. The system of claim 12 , wherein:

the determination module further determines, in response to the request, that an additional missing storage layer image within the plurality of storage layer images is not locally stored at the host system and initiating a transfer of the additional missing storage layer image to the host system; and

the receiving module further receives, from within the container, an additional read request that implicates the additional missing storage layer image and remotely resolves the additional read request by reading from an instance of the additional missing storage layer image that is stored at a third host system within the cluster of host systems.

18. The system of claim 17 , wherein the receiving module selects the third host system instead of the separate host system for resolving the additional read request to balance a load imposed on the separate host system and a load imposed on the third host system.

19. The system of claim 12 , the determination module receives, at the host system, a manifest of storage layer images stored locally for each host system within the plurality of host systems.

20. 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:

identify a request to provision a container on a host system within a cluster comprising a plurality of host systems, the container to comprise a plurality of storage layer images, each successive storage layer image within the plurality of storage layer images describing a set of differences applied to a storage view from within the container by the storage layer image;

determine, in response to the request, that a missing storage layer image within the plurality of storage layer images is not locally stored at the host system and initiate a transfer of the missing storage layer image to the host system;

create the container on the host system and executing an application within the container on the host system before the missing storage layer image has been transferred to the host system;

receive, from within the container, a read request that implicates the missing storage layer image and remotely resolve the read request by reading from an instance of the missing storage layer image that is stored at a separate host system within the cluster of host systems; and

resolve a subsequent read request that implicates the missing storage layer image after the missing storage layer image has been transferred to the host system by reading from an instance of the missing storage layer image that is locally stored at the host system.

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/0931 →
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 RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
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 Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: KANTOR, KODY; MAKIN, GAURAV; KJELL, JOHN
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041814/0709 →
Cited By (3)
US 12,236,103 US 12,321,449 US 12,386,556