Container Layer Block Storage Conversion for Faster Startup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The process of creating and managing containers is complex and time-consuming, requiring significant technical expertise, and there is a need for a more efficient and user-friendly method.
Innovation Solution
A system and method for instantiating containers that simplifies the process by using a container manager for high-level abstraction, a container registry for storage, and a container orchestrator for automated deployment and scaling, which includes converting container layers to a block storage format for faster startup times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If container layers are stored in traditional file system format, then storage compatibility is maintained, but container startup time is slow
Solution Approach 1:
The patent changes the storage format parameter from traditional file system (ext4, xfs) to block storage format (raw, qcow2). This parameter change enables direct block-level access to container layers, eliminating the need for file system traversal and mounting operations, thereby significantly reducing container startup time while maintaining storage compatibility through standardized block device interfaces
Solution Approach 2:
The patent replaces the mechanical file system access mechanism with a direct block storage access mechanism. Instead of using file system calls, directory traversal, and mounting operations, the system directly accesses container layers through block devices using read/write operations at specific block offsets, substituting complex file system mechanics with simpler block-level operations
2Speed
If container layers are converted to block storage format, then read speed is improved, but conversion time and processing overhead increase
Solution Approach 1:
The patent performs the conversion from file system format to block storage format in advance, during the container image build or import phase, rather than at container startup time. This preliminary action ensures that when containers need to start, the block storage format is already prepared and can be directly used, eliminating conversion time from the critical startup path
Solution Approach 2:
The patent introduces an intermediary conversion tool or plugin that handles the format transformation. This intermediary component can perform the conversion asynchronously or in the background, and can also handle incremental conversions where only changed layers are reconverted, reducing the overall time impact on container operations
3Ease of operation
If container management is simplified with high-level abstraction, then ease of operation is improved, but control precision and flexibility are reduced
Solution Approach 1:
The patent segments the container management system into distinct layers: a high-level container manager for simplified operations, a block storage layer for efficient data handling, and an underlying file system layer for compatibility. This segmentation allows each layer to operate independently at its optimal level, maintaining both simplicity and flexibility
Solution Approach 2:
The patent introduces an intermediary layer that translates between high-level container management operations and low-level block storage operations. This intermediary maintains abstraction for ease of operation while preserving the ability to perform detailed control operations when needed, acting as a bridge between simplicity and precision
Data Source
AI summary
A method, device, and system for starting containers is provided. The method includes (i) in response to determining to start a container, determining whether a container layer for the container has been previously converted to a block storage format; (ii) in response to determining that the container layer has not been previously converted to a block storage format, downloading an archived version of the container layer, converting the archived version into a block storage format version of the container layer, storing the block storage format version of the container layer into a blob storage, and starting the container; and (iii) in response to determining that the container layer has been previously converted to a block storage format, starting the container based at least in part on the block storage format version.


