IP Library Granted Patent US 10,606,646
Granted Patent B1
US 10,606,646 · App. 15/456,702 · Granted Mar 31, 2020

Systems and methods for creating a data volume from within a software container and initializing the data volume with data

Inventor: Aaron Christensen (Apple Valley, MN)
Assignee: Veritas Technologies LLC
G06F9/5016G06F9/4843
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,606,646
App. No.
15/456,702
Granted
Mar 31, 2020
Kind
B1
Abstract

The disclosed computer-implemented method for creating a data volume from within a software container and initializing the data volume with data may include (i) running, from a volume creation container image, a volume creation container that isolates user space of the volume creation container from other processes while sharing kernel space with the other processes, (ii) creating a new data volume from within the volume creation container, and (iii) executing, from within the volume creation container, a run command to run a data initialization container from the volume creation container image and mount the new data volume to a target mount point in the data initialization container, the data initialization container executing a data initialization command to copy data to the new data volume. Various other methods, systems, and computer-readable media are also disclosed.

Claims (39)

1. A computer-implemented method for creating a data volume from within a software container and initializing the data volume with data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

running, from a volume creation container image, a volume creation container comprising a virtual environment that isolates user space of the volume creation container from other processes while sharing kernel space with the other processes;

creating a new data volume from within the volume creation container; and

executing, from within the volume creation container, a run command to run a data initialization container from the volume creation container image and mount the new data volume to a target mount point in the data initialization container, the data initialization container executing a data initialization command to copy data to the new data volume;

wherein user space of the volume creation container is isolated from user space of the data initialization container.

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

determining, from within the volume creation container, a container identifier for the volume creation container; and

inspecting, from within the volume creation container, the volume creation container image based on the container identifier to obtain an image identifier for the volume creation container image.

3. The computer-implemented method of claim 2 , wherein executing the run command to run the data initialization container from the volume creation container image comprises utilizing the image identifier to locate the volume creation container image.

4. The computer-implemented method of claim 1 , wherein running the volume creation container further comprises running a script within the volume creation container.

5. The computer-implemented method of claim 4 , wherein the script executes the run command to run the data initialization container from the volume creation container image and mount the new data volume to the target mount point in the data initialization container.

6. The computer-implemented method of claim 4 , wherein running the data initialization container further comprises running another instance of the script within the data initialization container.

7. The computer-implemented method of claim 1 , wherein the data initialization container is run while the volume creation container is running.

8. The computer-implemented method of claim 1 , wherein creating the new data volume comprises executing, from within the volume creation container, a volume creation command.

9. The computer-implemented method of claim 1 , wherein executing the run command to run the data initialization container from the volume creation image and mount the new data volume to the target mount point in the data initialization container further comprises passing a parameter that is utilized by the data initialization container to execute the data initialization command.

10. The computer-implemented method of claim 9 , wherein the parameter is utilized by the data initialization container to execute the data initialization command instead of a volume creation command.

11. The computer-implemented method of claim 1 , wherein the data copied to the new data volume comprises data included in the volume creation container image.

12. The computer-implemented method of claim 1 , further comprising executing, from within the volume creation container or the data initialization container, an additional run command to run a data copying container from the volume creation container image and mount the new data volume to a target mount point in the data copying container, the data copying container executing a copy command to copy additional data from a data source outside the data copying container to the new data volume.

13. The computer-implemented method of claim 12 , wherein executing the additional run command to run the data copying container from the volume creation container image and mount the new data volume to the target mount point in the data copying container further comprises passing a parameter that is utilized by the data copying container to execute the copy command.

14. A system for creating a data volume from within a software container and initializing the data volume with data, the system comprising:

a running module, stored in memory, that runs, from a volume creation container image, a volume creation container comprising a virtual environment that isolates user space of the volume creation container from other processes while sharing kernel space with the other processes;

a creation module, stored in memory, that creates a new data volume from within the volume creation container;

an executing module, stored in memory, that executes, from within the volume creation container, a run command to run a data initialization container from the volume creation container image and mount the new data volume to a target mount point in the data initialization container, the data initialization container executing a data initialization command to copy data to the new data volume; and

at least one physical processor that executes the running module, the creation module, and the executing module;

wherein user space of the volume creation container is isolated from user space of the data initialization container.

15. The system of claim 14 , wherein:

the system further comprises:

a determining module, stored in memory, that determines, from within the volume creation container, a container identifier for the volume creation container; and

an inspecting module, stored in memory, that inspects, from within the volume creation container, the volume creation container image based on the container identifier to obtain an image identifier for the volume creation container image; and

the physical processor further executes the determining module and the inspecting module.

16. The system of claim 15 , wherein the executing module executes the run command to run the data initialization container from the volume creation container image by utilizing the image identifier to locate the volume creation container image.

17. The system of claim 14 , wherein the data initialization container is run while the volume creation container is running.

18. The system of claim 14 , wherein the data copied to the new data volume comprises data included in the volume creation container image.

19. The system of claim 14 , wherein the executing module further executes, from within the volume creation container or the data initialization container, an additional run command to run a data copying container from the volume creation container image and mount the new data volume to a target mount point in the data copying container, the data copying container executing a copy command to copy additional data from a data source outside the data copying container to the new data volume.

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

run, from a volume creation container image, a volume creation container comprising a virtual environment that isolates user space of the volume creation container from other processes while sharing kernel space with the other processes;

create, a new data volume from within the volume creation container; and

execute, from within the volume creation container, a run command to run a data initialization container from the volume creation container image and mount the new data volume to a target mount point in the data initialization container, the data initialization container executing a data initialization command to copy data to the new data volume;

wherein user space of the volume creation container is isolated from user space of the data initialization container.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 13, 2017
From: CHRISTENSEN, AARON
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041554/0346 →
Cited By (8)
US 12,190,144 US 12,236,103 US 12,321,449 US 12,386,556 US 12,430,156 US 12,443,401 US 12,443,424 US 12,670,035