CHAIN FILE SYSTEM
First Claim
1. A method comprising:
- retrieving from a storage device instructions for implementing a containerized application, the instructions being arranged in a plurality of layers, the layers being ordered from lowest to highest, each layer including a respective plurality of files, a designated file capable of being included in more than one of the layers;
loading each layer into memory, wherein loading a designated layer into memory includes creating a file snapshot and a file inode number for each file in the designated layer that is either not present in a lower level layer or that is present in a lower level layer but modified by the designated layer, the file snapshot including one or more data blocks, each of the data blocks in the file snapshot including data that is additional to or different than any data associated with the file in a lower level layer, the file inode number providing a unique identifier for accessing the file, the file inode number corresponding to the file snapshot; and
executing the containerized application when it is loaded into memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and mechanisms described herein facilitate the execution of a software program container having a plurality of layers. Each layer may include a plurality of files. For instance, a base layer may include a version of an operating system, while an upper layer may include a software program configured to run within the operating system. Different layers may store, create, or modify the same file. However, the precedence of the version of the data for the file may be based on an ordering of the layers. For example, the version of the file in a higher layer should supersede the version of the file in a lower layer. In some implementations, a privileged storage container that runs atop a virtualization layer may manage storage resources for other containers. The privileged storage container may store each file in a software program container as a snapshotable object.
-
Citations
20 Claims
-
1. A method comprising:
-
retrieving from a storage device instructions for implementing a containerized application, the instructions being arranged in a plurality of layers, the layers being ordered from lowest to highest, each layer including a respective plurality of files, a designated file capable of being included in more than one of the layers; loading each layer into memory, wherein loading a designated layer into memory includes creating a file snapshot and a file inode number for each file in the designated layer that is either not present in a lower level layer or that is present in a lower level layer but modified by the designated layer, the file snapshot including one or more data blocks, each of the data blocks in the file snapshot including data that is additional to or different than any data associated with the file in a lower level layer, the file inode number providing a unique identifier for accessing the file, the file inode number corresponding to the file snapshot; and executing the containerized application when it is loaded into memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20)
-
-
11. A system comprising:
-
a storage device configured to store instructions for implementing a containerized application, the instructions being arranged in a plurality of layers, the layers being ordered from lowest to highest, each layer including a respective plurality of files, a designated file capable of being included in more than one of the layers; memory configured to load each layer, wherein loading a designated layer into memory includes creating a file snapshot and a file inode number for each file in the designated layer that is either not present in a lower level layer or that is present in a lower level layer but modified by the designated layer, the file snapshot including one or more data blocks, each of the data blocks in the file snapshot including data that is additional to or different than any data associated with the file in a lower level layer, the file inode number providing a unique identifier for accessing the file, the file inode number corresponding to the file snapshot; and a processor configured to execute the containerized application when it is loaded into memory.
-
-
19. One or more non-transitory computer readable media having instructions stored thereon for performing a method, the method comprising:
-
retrieving from a storage device instructions for implementing a containerized application, the instructions being arranged in a plurality of layers, the layers being ordered from lowest to highest, each layer including a respective plurality of files, a designated file capable of being included in more than one of the layers; and loading each layer into memory, wherein loading a designated layer into memory includes creating a file snapshot and a file inode number for each file in the designated layer that is either not present in a lower level layer or that is present in a lower level layer but modified by the designated layer, the file snapshot including one or more data blocks, each of the data blocks in the file snapshot including data that is additional to or different than any data associated with the file in a lower level layer, the file inode number providing a unique identifier for accessing the file, the file inode number corresponding to the file snapshot; and executing the containerized application when it is loaded into memory.
-
Specification