Opportunistic Container Image Sharing via Shared Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Kubernetes systems, network saturation and non-deterministic deployment times occur due to opaque image caches, leading to inefficient image duplication across nodes, which complicates scheduling and wastes disk space.

Innovation Solution

A clustered container host system with a shared storage device and virtualization layer that opportunistically shares container images by creating virtual disks and updating metadata caches to associate images, allowing for efficient fetching and mounting of images across virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If container images are pre-seeded in the image cache of each node, then network saturation is alleviated and deployment speed is improved, but disk space is wasted due to duplication of images across N nodes

Engineering Contradiction:
Improvedeployment speedVSAvoiddisk space
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent merges the image caching functionality across multiple nodes by introducing a centralized image cache service. Instead of each node maintaining separate image caches, the system consolidates image storage in a shared location that all nodes can access, eliminating redundant storage while maintaining fast deployment capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The centralized image cache service provides universal access to container images for all nodes in the Kubernetes cluster. This single image cache serves multiple functions: storing images, managing image lifecycle, and providing fast access to all nodes, replacing the need for individual node-specific caches.

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

2Ease of operation

If image caches are maintained on each node, then local image access is enabled, but the deployment time becomes non-deterministic because some nodes may have images cached and some may not

Engineering Contradiction:
Improvelocal image accessVSAvoiddeployment time variability
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system implements feedback mechanisms where the centralized image cache service tracks which images are cached and provides this information to the scheduler. This feedback loop enables deterministic scheduling decisions by providing visibility into image availability across the cluster, eliminating the non-deterministic deployment times caused by opaque node-level caches.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The centralized image cache service acts as an intermediary between the Kubernetes scheduler and the actual image storage. It provides a unified interface that abstracts away the complexity of distributed image caching, allowing the scheduler to make informed decisions without directly querying each node's cache status.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If each node maintains its own image cache, then image fetching can be done locally, but the image cache is opaque to the user and scheduling decisions become difficult

Engineering Contradiction:
Improvelocal image fetchingVSAvoidimage cache visibility
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The centralized image cache service serves as an intermediary that provides users and the scheduler with visibility into image cache status. It maintains the local fetching capability while adding a layer of transparency that allows users to query which images are cached and where, solving the opacity problem of distributed node-level caches.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11809751B2Image file optimizations by opportunistic sharing
Publication Date: 2023.11.07 VMWARE INC
  • US11809751B2 patent drawing
  • US11809751B2 patent drawing
  • US11809751B2 patent drawing

AI summary

Container images are fetched in a clustered container host system with a shared storage device. Fetching a first container image in a first virtual machine includes creating a first virtual disk in the shared storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate the image of the first container to the first virtual disk. Fetching a second container image in a second virtual machine includes checking the metadata cache to determine that a portion of the image of the second container is stored in the first virtual disk, creating a second virtual disk in the shared storage device, adding a reference to the first virtual disk in a metadata of the second virtual disk, and mounting the second virtual disk to the second virtual machine.