End-to-End Encryption in Linux Multi-Pathing via IO Stack Checks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a Linux native multi-pathing environment, conventional approaches often fail to provide adequate data security for logical storage devices, leading to potential corruption of data during end-to-end encryption.

Innovation Solution

Implementing end-to-end encryption techniques within a multi-path layer of host devices configured to communicate over a storage area network (SAN) with storage arrays, using a multi-path input-output (MPIO) driver and check modules inserted in the IO stack to verify the origin of IO operations, ensuring that they come from the expected overlying device to prevent data corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If end-to-end encryption is implemented in a Linux native multi-pathing environment, then data security is improved, but data corruption risk increases due to improper IO operation handling

Engineering Contradiction:
Improvedata securityVSAvoiddata corruption
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces check modules as intermediary components within the IO stack that mediate between encryption devices and multi-path devices. These check modules verify the origin of IO operations and ensure proper routing, preventing data corruption while maintaining encryption security. The intermediary validates that IO operations originate from expected devices and prevents improper handling that would cause corruption.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms through check modules that monitor and verify IO operation origins throughout the IO stack. The check modules provide feedback by confirming whether IO operations come from expected overlying devices, allowing the system to detect and prevent improper IO handling that would lead to data corruption while maintaining encryption integrity.

Inventive Principle:
Principle #23Feedback

2Reliability

If check modules are inserted in the IO stack to verify IO operation origins, then data corruption is prevented, but device complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidIO stack complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the IO stack into segmented functional components with check modules inserted at specific points between encryption devices and multi-path devices. Rather than implementing a monolithic complex verification system, the check modules are segmented into discrete verification points that independently validate IO origins, reducing overall system complexity while maintaining data integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The check modules perform self-service verification by autonomously checking the origin of IO operations without requiring external intervention. Each check module independently validates whether IO operations originate from expected devices, eliminating the need for complex external verification mechanisms and reducing overall system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12001595B2End-to-end encryption of logical storage devices in a Linux native multi-pathing environment
Publication Date: 2024.06.04 DELL PROD LP
  • US12001595B2 patent drawing
  • US12001595B2 patent drawing
  • US12001595B2 patent drawing

AI summary

An apparatus comprises at least one processing device comprising a processor coupled to a memory, with the at least one processing device being configured to provide at least a portion of an input-output (IO) stack for processing of IO operations in a host device for delivery to a storage system over selected ones of a plurality of paths through a network. The IO stack comprises at least a multi-path device overlying one or more logical storage devices. The at least one processing device is further configured to perform a check at each of one or more points in the IO stack to confirm that a given IO operation directed to a given device of the IO stack is received from an expected overlying device of the IO stack. The IO stack illustratively comprises an encryption device overlying the multi-path device, supporting end-to-end encryption for one or more logical storage devices.