Chain File System for Container Layer Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing containerized storage solutions face challenges in interoperability and efficiency due to issues like inode proliferation, incorrect file semantics, and inefficient memory usage when managing multiple layers of software containers across different computing environments.
Innovation Solution
The implementation of a chain image layer storage driver that creates file snapshots and uses inode numbers to manage data blocks, allowing for efficient loading and writing to files across layers without copying entire files, thus reducing memory usage and performance penalties.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional containerized storage solutions are used to manage multiple layers of software containers, then file system operations can be performed across different computing environments, but inode proliferation occurs and memory usage increases due to copying entire files across layers
Solution Approach 1:
The patent implements a nested layer structure where multiple software container layers are organized hierarchically, with each layer containing files and sublayers. This nesting allows files to be shared across layers through references rather than physical copies, reducing memory usage while maintaining the ability to access files from any layer in the hierarchy.
Solution Approach 2:
The patent uses copy-on-write technology where files are not physically copied across layers until modification is needed. Instead, layer files contain references to base files, and only when a file is modified does the system create a actual copy. This eliminates inode proliferation while preserving the ability to have multiple layer versions.
2Ease of operation
If files are copied across multiple container layers to ensure data availability, then file access is simplified, but performance degrades due to the overhead of copying and managing duplicate files
Solution Approach 1:
The system implements lazy copying where file data is not physically copied until modification occurs. Layer files maintain references to base files, and the copy-on-write mechanism ensures that copying only happens when necessary, eliminating the performance overhead of pre-copying files while maintaining simple file access through the layered structure.
Solution Approach 2:
The patent pre-establishes the layered file structure and reference relationships before actual file operations occur. This preliminary organization allows the system to quickly determine file locations and access patterns without performing expensive copy operations during runtime, improving overall file operation performance.
3Ease of operation
If union file system technology is used to combine multiple container layers, then files from different layers can be accessed uniformly, but incorrect file semantics occur and memory efficiency decreases
Solution Approach 1:
The patent implements a nested layer hierarchy where each layer is properly contained within the structure, maintaining clear parent-child relationships. This nested organization preserves correct file semantics by ensuring that file operations respect the layer hierarchy, while simultaneously improving memory efficiency through reference-based file sharing instead of physical copying.
Solution Approach 2:
The system uses copy-on-write to avoid unnecessary file copying while maintaining uniform access. Files are shared across layers through references until modification is needed, at which point a copy is created. This approach maintains memory efficiency while preserving the uniform file access interface that union file systems provide.
Data Source
AI summary
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.


