Privileged Container Kernel Driver Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users face difficulties in installing and loading third-party kernel drivers on container-based operating systems due to immutable file systems, which restrict file installations and compilation, especially for hardware elements like GPUs that require specific drivers not originally provided in the host operating system.

Innovation Solution

A system and method that utilize containers to load kernel drivers into the host operating system, where a privileged container abstracts hardware elements and loads the necessary kernel drivers without requiring administrative privileges, allowing users to execute workloads on hardware elements like GPUs without direct access to the host machine.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If containers use immutable file systems to maintain security and stability, then system security and reliability are improved, but the ability to install and load third-party kernel drivers is restricted

Engineering Contradiction:
Improvesystem securityVSAvoiddriver installation capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system segments the container into two distinct types: standard containers with immutable file systems for security, and privileged containers with mutable file systems that can load kernel drivers. This segmentation allows the system to maintain security for most operations while providing driver installation capability when needed through the privileged container type.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The privileged container acts as an intermediary between the host system and standard containers. It loads kernel drivers into the host kernel on behalf of applications in standard containers, allowing driver functionality to be provided without compromising the immutable file system security model of standard containers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If administrative privileges are required to load kernel drivers, then system security is maintained, but user accessibility and ease of operation deteriorate

Engineering Contradiction:
Improvesystem securityVSAvoiddriver loading accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system enables self-service driver loading by allowing applications to request driver loading through the container runtime, which then automatically creates a privileged container to perform the driver installation. Users do not need to manually acquire or enter administrative credentials; the system handles the privileged operation automatically in response to application requests.

Inventive Principle:
Principle #25Self-service

3Reliability

If kernel drivers are pre-loaded on each host operating system, then hardware element functionality is ensured, but system complexity and deployment time increase

Engineering Contradiction:
Improvehardware element functionalityVSAvoiddeployment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The privileged container provides universal driver loading capability that can serve multiple different applications and hardware elements on the same host. Instead of pre-loading drivers for every possible hardware configuration, the system provides a on-demand driver loading mechanism that can adapt to various hardware elements as needed, reducing deployment complexity while maintaining functionality.

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

Data Source

PatentUS10949216B2Support for third-party kernel modules on host operating systems
Publication Date: 2021.03.16 RED HAT INC
  • US10949216B2 patent drawing
  • US10949216B2 patent drawing
  • US10949216B2 patent drawing

AI summary

An example method of running an application workload includes detecting a request from a client for a hardware element for executing a workload of an application, the hardware element using a kernel driver to communicate with a host operating system and being abstracted by a node running on the host operating system. The method also includes creating a container on the node. The method further includes allocating the hardware element for the workload to execute in the container. The method also includes loading, by the container, the kernel driver into the host operating system. The method further includes running, by the container, the workload inside the container using the hardware element.