Kernel-Endpoints for SCSI Volume Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems face scalability issues when the number of volumes exceeds 20,000, leading to memory and CPU usage problems due to duplicated front-end configurations in the kernel driver, which affects performance and increases memory consumption.

Innovation Solution

The introduction of Kernel-Endpoints (KEs) abstracts the front-end configuration from the kernel, replacing the per-volume interface with a set of KEs that are not affected by system scale, allowing for efficient routing of IOs based on LUN IDs and reducing kernel interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If per-volume interface is used in kernel driver, then each volume can be configured separately with dedicated command queue, but memory consumption and CPU usage increase significantly when number of volumes exceeds 20,000

Engineering Contradiction:
Improvevolume configuration flexibilityVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts the front-end configuration data structure from the kernel space and places it in user space. The kernel driver no longer maintains per-volume configuration structures, file descriptors, or command queues. Instead, it uses a simplified interface that references volumes by ID, eliminating the memory overhead of duplicating configuration data in kernel space for each volume.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a universal volume handle mechanism where a single kernel driver instance manages all volumes through a common interface. Instead of having separate kernel configurations for each volume, the system uses a unified volume identification scheme (volume ID) that works across all volumes, allowing the kernel driver to serve multiple volumes with a single configuration structure.

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

2Reliability

If per-volume interface is used in kernel driver, then separate command queue per volume can be maintained for fairness, but context switches and CPU overhead increase with system scale

Engineering Contradiction:
Improvecommand queue fairnessVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent removes the command queue infrastructure from the kernel driver entirely. Instead of maintaining separate command queues in kernel space for each volume, the system uses user-space command queues that are managed by the user-space daemon. The kernel driver processes commands synchronously without requiring kernel-space queue structures, eliminating the associated context switch overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a user-space daemon as an intermediary between the application layer and the kernel driver. This daemon handles command queue management, volume configuration, and I/O scheduling in user space, allowing the kernel driver to focus solely on executing I/O operations without the overhead of maintaining complex queue structures and performing context switches.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If front-end configuration is duplicated in kernel driver, then each volume can be created in both kernel and storage system software, but system complexity and memory usage increase

Engineering Contradiction:
Improvevolume creation flexibilityVSAvoidkernel driver complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts all front-end configuration data structures from the kernel driver, including volume configuration, initiator group configuration, and mapping information. These configurations are now maintained exclusively in user space by the storage system software, simplifying the kernel driver to a stateless I/O execution engine that receives commands with volume IDs and executes them without maintaining configuration copies.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12067291B2System and method for improving SCSI scale support by implementing kernel-endpoints instead of per volume interface
Publication Date: 2024.08.20 EMC IP HLDG CO LLC
  • US12067291B2 patent drawing
  • US12067291B2 patent drawing
  • US12067291B2 patent drawing

AI summary

A method, computer program product, and computer system for placing, by a computing device, an IO in a Kernel-Endpoint (KE) of a plurality of KEs, wherein the IO may be sent by a host and received in a kernel. The IO in the KE may be pulled from a kernel volume specific handle. The IO may be routed to a corresponding user volume associated with the IO.