Container Filesystem Sharing via Initialization Directory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing method of creating separate filesystems for each container in operating systems like Linux leads to reduced launch speed, increased memory usage, and higher disk access, limiting the number of containers that can be launched simultaneously.

Innovation Solution

Sharing a root filesystem among containers by creating a single initialization layer or directory, allowing subsequent containers to launch faster and consume less memory without additional disk accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate filesystems are created for each container to ensure isolation, then container isolation and security are improved, but launch speed decreases and memory usage increases

Engineering Contradiction:
Improvecontainer isolationVSAvoidcontainer launch speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent merges the filesystem resources of multiple containers by implementing a shared filesystem mechanism where multiple container processes access a common filesystem namespace. This allows containers to share the same filesystem infrastructure rather than each having separate copies, directly reducing memory usage and improving launch speed while maintaining process isolation through other kernel mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared filesystem mechanism serves multiple containers simultaneously with a single filesystem instance, making the filesystem resource universal across multiple container contexts. This multi-functionality allows the same filesystem to be mounted and accessed by multiple container processes, eliminating the need for separate filesystem creations and thereby improving launch performance.

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

2Reliability

If separate filesystems are created for each container, then container isolation is improved, but memory usage increases

Engineering Contradiction:
Improvecontainer isolationVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the filesystem resources of multiple containers by implementing a shared filesystem mechanism where multiple container processes access a common filesystem namespace. This allows containers to share the same filesystem infrastructure rather than each having separate copies, directly reducing memory usage and improving launch speed while maintaining process isolation through other kernel mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of creating actual copies of filesystem data for each container, the patent uses namespace mechanisms that provide virtual copies or references to the same underlying filesystem data. This allows each container to have its own filesystem view without duplicating the actual file data in memory, significantly reducing memory consumption while maintaining isolation.

Inventive Principle:
Principle #26Copying

3Reliability

If separate filesystems are created for each container, then container isolation is improved, but the number of containers that can be launched simultaneously is limited

Engineering Contradiction:
Improvecontainer isolationVSAvoidnumber of simultaneous containers
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the filesystem resources of multiple containers by implementing a shared filesystem mechanism where multiple container processes access a common filesystem namespace. This allows containers to share the same filesystem infrastructure rather than each having separate copies, directly reducing memory usage and improving launch speed while maintaining process isolation through other kernel mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared filesystem mechanism serves multiple containers simultaneously with a single filesystem instance, making the filesystem resource universal across multiple container contexts. This multi-functionality allows the same filesystem to be mounted and accessed by multiple container processes, eliminating the need for separate filesystem creations and thereby improving launch performance.

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

4Reliability

If separate filesystems are created for each container, then container isolation is improved, but disk access increases

Engineering Contradiction:
Improvecontainer isolationVSAvoiddisk access
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent merges the filesystem resources of multiple containers by implementing a shared filesystem mechanism where multiple container processes access a common filesystem namespace. This allows containers to share the same filesystem infrastructure rather than each having separate copies, directly reducing memory usage and improving launch speed while maintaining process isolation through other kernel mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11537652B2Sharing filesystems between containers
Publication Date: 2022.12.27 RED HAT INC
  • US11537652B2 patent drawing
  • US11537652B2 patent drawing
  • US11537652B2 patent drawing

AI summary

A filesystem can be shared between containers. For example, a computing device having a host filesystem can launch a first container from an image file. Launching the first container can include creating an initialization directory for the first container on the host filesystem. The initialization directory can include a filesystem to be shared between containers. Launching the first container can also include creating a first filesystem directory for the first container on the host filesystem and mounting the initialization directory to the first filesystem directory. The computing device can also launch a second container from the image file. Launching the second container can include creating a second filesystem directory for the second container on the host filesystem and mounting the initialization directory to the second filesystem directory to enable the second container to access the filesystem.