Container Instantiation via Union File System Layer Mounts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container instantiation methods are slow due to the need to download and unpack all layer content before launching a container process, which can be time-consuming and inefficient, especially for cold-start containers without local caching.

Innovation Solution

Implementing a method that uses layer mounts to provide access to container image layers without downloading all layer content initially, creating a union file system spanning the layers, and launching the container process based on this system, thereby reducing the time required for instantiation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all layer content is downloaded and unpacked before launching a container process, then the container can be fully operational, but the instantiation time becomes excessively long

Engineering Contradiction:
Improvecontainer operational readinessVSAvoidcontainer instantiation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The container image is segmented into multiple layers, and instead of downloading all layers upfront, the system selectively mounts only the necessary layers (e.g., executable layers) from the registry. This segmentation allows the container to become operational with minimal layer content, significantly reducing instantiation time while maintaining reliability through on-demand layer loading.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The container registry pre-prepares layer mounts by maintaining layers in a mounted state within the registry itself. When a container needs to be instantiated, the runtime can immediately access pre-mounted layers without waiting for download and unpacking, achieving fast container startup while ensuring all necessary layers are available when needed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If layer content is transmitted through the network before container launch, then the container has all necessary files, but network bandwidth is consumed and instantiation is delayed

Engineering Contradiction:
Improvecontainer startup speedVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system extracts only the essential layer content needed for container execution from the full container image. By identifying and mounting only the critical layers (such as executable layers) directly from the registry, the system avoids transmitting unnecessary layer content over the network, reducing bandwidth consumption while maintaining container productivity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The container registry acts as an intermediary that holds layer content in a mounted state, allowing the container runtime to access layers directly without full network transmission. This intermediary approach enables selective layer mounting where only necessary layers are accessed through the registry, minimizing network bandwidth usage while ensuring container startup speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If a union file system is created spanning all layers, then the container can access all necessary files, but the complexity of managing layer mounts increases

Engineering Contradiction:
Improvelayer access flexibilityVSAvoidunion file system management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The container registry provides a universal layer mounting interface that handles multiple layer types and formats through a single standardized mechanism. This multi-functional approach allows the same layer mount infrastructure to serve different container images, layer configurations, and access patterns, reducing the complexity of managing union file systems while maintaining adaptability across diverse container scenarios.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11966769B2Container instantiation with union file system layer mounts
Publication Date: 2024.04.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11966769B2 patent drawing
  • US11966769B2 patent drawing
  • US11966769B2 patent drawing

AI summary

Computing system enhancements make container instantiation faster, reduce layer content storage demands, and make more container image formats available. A container instantiation location sends a container image pull request to a container registry, receives an image manifest, sends a layer mount request to the registry instead of a layer content download request, receives a layer mount, optionally repeats for additional layers, creates a union file system spanning the layers, and launches a container process based on the union file system without first downloading all the layer content. Inefficiencies and technical limitations of some other approaches are avoided, such as loopback mounts for snapshot expansion, creation or transmission of extra snapshots or extra container image clones, cluttering layer content with virtual machine settings, container system vendor lock-in, lack of container instantiation at a local system due to insufficient local storage, and lack of syscall optimization due to storage driver plugin usage.